200 likes | 401 Views
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP. CoopIS 2001 September 5-7, 2001. 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. Objectives and Motivation.
E N D
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, 2001. 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
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 2001
Collaborative Virtual Environments (CVE) CVE Development 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 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 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 2001
Collaborative Virtual Environments (II) CVE Development Software Technology? M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001
Aspect-Oriented Programming (AOP) Aspect-Oriented Software Technology 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. M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001
Aspect-Oriented Programming (II) Entities Component-Aspect Weaving Components: Basic functionality in the application domain Aspects: Properties that cut across different components • security • communication • coordination • awareness • authentication 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 2001
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 2001
Aspects in Collaborative Virtual Environments • CVEs are distributed systems Synchronization, Communication, Coordination, Security, Failure handling can be modeled as aspects Awareness, Persistence, Authentication, Multiples Views • CVEs specific aspects M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001
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 2001
Aspects in Collaborative Virtual Environments (III) Example: Authentication Aspect Access Control without Aspects Access Control using Aspects M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001
Our Proposal: An AO Virtual Environment Framework Components do not know the aspects are affected by. Components and Aspects are first order independent entities CVE Framework(Aspects + Components) User Room invoke(user,room,enter,(login,passwd)) Aspects do not have explicit references to components M.View Both are implemented using the same general-purpose language (Java) eval(user,room,enter,(login,passwd)) Authent execute(user,room,enter,(login,passwd)) eval(user,room,enter,(login,passwd)) Glue mechanism: Dynamic Weaving at runtime (e.g. JAVA/RMI) execute(c1,c2,m,args){ if(output_aspects(c1,m) if(input_aspects(c2,m) invoke(c2,m,args); Middleware Layer VESite M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001
UserSite • Components’ configuration • Aspects’ configuration • User specific composition • Application Context The Virtual Environment Site • EnvironmentSite • Components • Aspects • Architectural Constraints M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001
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 2001
Components & Aspects Composition (II) Exit Aspect Awareness must be evaluated after the execution of enter() to notify that the user is in the room. 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. Entry Aspect Authentication must be evaluated before the execution of enter() to check if this user has access to the room. M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001
Architectural Description:Component Definition • Service defined with a Service Description Language (LDS) translation M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001
Architectural Description:Aspect Definition M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001
The UserSite Component The UserSite contains • CVE User preferences • Components & Aspects configuration values • CVE application context M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001
Architectural Description:Component-Aspect Composition Rules M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001
Conclusions • Our proposal is an approach about how we have applied theaspect-oriented paradigmto thedevelopment of CVEs. • We have seen some aspects specific of these systems:awareness, persistence, authentication andmultiples views, and how can be adapted to user preferences. • In this work we have focused in the mechanismtodynamically composecomponents & aspects. This mechanism allows the construction ofconfigurable, extensibleandadaptable CVEs. • Due to the compositional characteristics of the model, users can developpartially-instantiated environmentsbased 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 2001
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 M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001