Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, 2001. Trento, Italy M. Pinto, M. Amor, L. Fuentes,

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Collaboration OI - CHIL - CALLAS Glasgow, 2007 May 24th.
Architecture Representation
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Towards a Generic Platform for Developing CSCL Applications Using Grid Infrastructure by Santi Caballé Open University of Catalonia Barcelona, Spain with.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
11 1 Object oriented DB (not in book) Database Systems: Design, Implementation, & Management, 6 th Edition, Rob & Coronel Learning objectives: What.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
International Workshop on Web Engineering ACM Hypertext 2004 Santa Cruz, August 9-13 An Engineering Perspective on Structural Computing: Developing Component-Based.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
Secure Systems Research Group - FAU Aspects and mobile applications Sergio Soares Paulo Borba, “PaDA: A Pattern for Distribution Aspects” In Second Latin.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
Architecting Web Services Unit – II – PART - III.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Aspect Oriented Programming Gülşah KARADUMAN.
Event-Based Hybrid Consistency Framework (EBHCF) for Distributed Annotation Records Ahmet Fatih Mustacoglu Advisor: Prof. Geoffrey.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Component Oriented Programming 1 Introduction to COP.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Introducing Allors Applications, Tools & Platform.
Dynamic and Selective Combination of Extension in Component-based Applications Eddy Truyen, Bart Vanhaute, Wouter Joosen, Pierre Verbaeten, Bo N. Jørgensen.
MDD approach for the Design of Context-Aware Applications.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Secure middleware patterns E.B.Fernandez. Middleware security Architectures have been studied and several patterns exist Security aspects have not been.
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Basic Concepts and Definitions
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Context-Aware Middleware for Resource Management in the Wireless Internet US Lab 신현정.
Survey On Concern Separation in Service Integration by Tomas Cerny* and Michal J. Donahoo # * Czech Technical University, Czech Rep. # Baylor University,
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Supporting Mobile Collaboration with Service-Oriented Mobile Units
Complexity Time: 2 Hours.
OO Methodology OO Architecture.
Chapter 18 MobileApp Design
Automatic Derivation, Integration and Verification
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
The Islamia University Bahawalpur
Structuring Adaptive Applications using AspectJ and AOM
ONAP Architecture Principle Review
Presentation transcript:

Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes, J.M. Troya Dpto. de Lenguajes y Ciencias de la Computación E.T.S.I Informática, Universidad de Málaga

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 20012/20 Objectives and Motivation Main Objective: How to develop user-configurable Collaborative Virtual Environments (CVE) using Aspect-Oriented Programming (AOP) Motivation: The lack of a standard reference architecture Goals in this paper: Main CVE characteristics Why we use AOP? Relevant aspects in CVEs Our proposal: An AO Virtual Environment Framework Conclusions and Present/Future Work

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 20013/20 Collaborative Virtual Environments (CVE) CVE Development CVEs Requirements:  Collaboration with people who are geographically dispersed  Integrated Shared Environment  Different medias: text, graphics, audio, video  Different communication modes: asynchronous, synchronous, unicast, multicast, scheduled, casual CVEs Characteristics: Complex application domain  Awareness: Knowledge about users and artifacts location  Persistence: Make the environment, resources and user configuration persistent.  Access Control: Check access permissions to the resources in the environment  Multiples Views: Different graphical representation  Users Preferences: Environment User specific configuration CVEs Goals:  Construct a system highly configurable according to user preferences and resource restrictions.  High degree of reusability, extensibility, adaptability and scalability.  Short development time

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 20014/20 Collaborative Virtual Environments (II) CVE Development Software Technology?

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 20015/20 Aspect-Oriented Programming (AOP) Aspects complements the advantages of Component-Oriented Application Frameworks:  More robust, correct and with shorter development time applications  Provide high modularity, reusability, extensibility and inversion of control Aspects try to avoid some disadvantages of frameworks:  Sometimes the framework fails to provide the modularity needed to localize the impact of design and implementation changes, decreasing framework reusability and extensibility.  The main complexity in the development of a framework is the decomposition of the system functionality in components because some properties do not necessarily align with the functional components of the system. Aspects promotes:  Separation of concerns  Less interdependences between components and as a consequence easier extension and reusability. Aspect-Oriented Software Technology

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 20016/20 Aspect-Oriented Programming (II) Components: Basic functionality in the application domain Aspects: Properties that cut across different components  security  communication  coordination  awareness  authentication EntitiesComponent-Aspect Weaving Static: Components and aspects are mixed in a intermingled code that is compiled and executed  Allow the use of specific aspect languages  Highly optimized woven code  Difficult to distinguish between aspects and components in the result code Dynamic: Components and aspects integration at runtime.  Use of general-purpose languages  System more adaptable and extensible  Dynamic composition overload

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 20017/20 Aspect-Oriented Programming (III) Next Steps: Aspects detection in CVEs  Characteristics showed before (awareness, persistence, …) Aspects and Component Composition Our Proposal: An Aspect-Oriented Framework for the development of CVEs where components and aspects are composed dynamically at runtime through a middleware layer, with different configuration based-on a user profile

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 20018/20 Aspects in Collaborative Virtual Environments CVEs are distributed systems Synchronization, Communication, Coordination, Security, Failure handling can be modeled as aspects CVEs specific aspects Awareness, Persistence, Authentication, Multiples Views

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 20019/20 Aspects in Collaborative Virtual Environments (II) Awareness: User connections and disconnections User state (available, busy, disconnected...) User location Document modifications (who, when and how) Document versions Persistence: Environment persistence Changes in User Preferences Authentication: Checks logins into the environment Rights to open a tool or a document Rights to go into a room Multiples Views: 2D, 3D or Virtual Reality Combination of colors Using aspects these properties are implemented outside components increasing their reusability and extensibility. In addition, using dynamic composition, aspects behavior can change dynamically at runtime and can be configured differently for each user.

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS /20 Aspects in Collaborative Virtual Environments (III) Example: Authentication Aspect Access Control without AspectsAccess Control using Aspects

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS /20 Our Proposal: An AO Virtual Environment Framework Middleware Layer eval(user,room,enter,(login,passwd)) Glue mechanism: Dynamic Weaving at runtime (e.g. JAVA/RMI) CVE Framework (Aspects + Components) UserRoom VESite Components do not know the aspects are affected by. Authent M.View eval(user,room,enter,(login,passwd)) invoke(user,room,enter,(login,passwd)) execute(user,room,enter,(login,passwd)) execute(c1,c2,m,args){ if(output_aspects(c1,m) if(input_aspects(c2,m) invoke(c2,m,args); Components and Aspects are first order independent entities Both are implemented using the same general- purpose language (Java) Aspects do not have explicit references to components

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS /20 The Virtual Environment Site EnvironmentSite Components Aspects Architectural Constraints UserSite Components’ configuration Aspects’ configuration User specific composition Application Context

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS /20 Components & Aspects Composition Authentication: The user must have permissions to enter in the room Multiples Views: The room will offer different graphical representation depending on the user profile Awareness: The other members in the CVE must know that the user is in the room

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS /20 Aspect Application Order Authentication may imply a different representation of the room depending on the user preferences  The Authentication aspect must be applied before the Multiples Views aspect. Components & Aspects Composition (II) Entry Aspect Authentication must be evaluated before the execution of enter() to check if this user has access to the room. Exit Aspect Awareness must be evaluated after the execution of enter() to notify that the user is in the room.

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS /20 Architectural Description: Component Definition NameInterfaceImplementation privateroomindroomintindroomimpl meetingroommeetroomintmeetroomimpl teacherteacherintteacherimpl studentstudentintstudentimpl documentdocintdocimpl videoconftoolvideoconfintvideoconfimpl Service defined with a Service Description Language (LDS) translation

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS /20 Architectural Description: Aspect Definition NameInterfaceTypesimplementationdefault persistencepersistenceintenv per_level1 per_level2 per_level1 multipleviewsmultipleviewsintuser 2D 3D virtualreality 2D awarenessawarenessinttype aware_level1 aware_level2 awar_level1 authenticationautenticationintcomp owner_auth, accesslist_auth LDAP_auth

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS /20 The UserSite Component The UserSite contains CVE User preferences Components & Aspects configuration values CVE application context NameImplementations PersistencePer_level1 AwarenessAwar_level2 Multipleviews2D AuthenticationOwner_auth

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS /20 Architectural Description: Component-Aspect Composition Rules

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS /20 Conclusions Our proposal is an approach about how we have applied the aspect- oriented paradigm to the development of CVEs. We have seen some aspects specific of these systems: awareness, persistence, authentication and multiples views, and how can be adapted to user preferences. In this work we have focused in the mechanism to dynamically compose components & aspects. This mechanism allows the construction of configurable, extensible and adaptable CVEs. Due to the compositional characteristics of the model, users can develop partially-instantiated environments based on components and aspects, which could be dynamically instantiated at runtime, depending on user preferences.

M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS /20 Present and Future Work Complete the definition of the CVE Framework Architecture Complete the implementation of the Middleware Layer Definition of the architecture of the CVE framework Definition of component, aspect and services description languages using XML Implementation of a working prototype: a Virtual Office