Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out

Supporting Heterogeneous Users in Collaborative Virtual

VIEWS: 6 PAGES: 20

									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

2/20

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
CoopIS 2001 3/20

CVEs Requirements:
 Collaboration with people

CVEs Goals:
 Construct a system highly

who are geographically dispersed
 Integrated Shared

Environment

configurable according to user preferences and resource restrictions. extensibility, adaptability and scalability.

 Different medias: text, graphics, audio, video  Different communication modes: asynchronous, synchronous, unicast, multicast, scheduled, casual

 High degree of reusability,

 Short development time

M. Pinto, M. Amor, L. Fuentes, J.M. Troya

Collaborative Virtual Environments (II)
CVE Development

Software Technology?

M. Pinto, M. Amor, L. Fuentes, J.M. Troya

CoopIS 2001

4/20

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 5/20

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

6/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 2001 7/20

Aspects in Collaborative Virtual Environments


CVEs are distributed systems
CVEs specific aspects

Synchronization, Communication, Coordination, Security, Failure handling can be modeled as aspects



Awareness, Persistence, Authentication, Multiples Views

Persistence Authentication Awareness Multiples Views User

Room

Document

Tool
M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001 8/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 Environment persistence Changes in User Preferences Checks logins into the environment Rights to open a tool or a document Rights to go into a room 2D, 3D or Virtual Reality Combination of colors
CoopIS 2001



Persistence:
 



Authentication:
  



Multiples Views:
 

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.
9/20

M. Pinto, M. Amor, L. Fuentes, J.M. Troya

Aspects in Collaborative Virtual Environments (III)
Example: Authentication Aspect

Access Control without Aspects
M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001

Access Control using Aspects
10/20

Our Proposal: An AO Virtual Environment Framework
Components and Aspects are first order independent entities Both are implemented using the same generalpurpose language (Java)
execute(user,room,enter,(login,passwd))

CVE Framework (Aspects + Components)

User

Room

Components do not know the aspects are affected by.

invoke(user,room,enter,(login,passwd))

M.View

Aspects do not have explicit references to components

eval(user,room,enter,(login,passwd))

Authent
eval(user,room,enter,(login,passwd))

Glue mechanism: Dynamic Weaving at runtime (e.g. JAVA/RMI)

Middleware Layer

VESite
CoopIS 2001

execute(c1,c2,m,args){ if(output_aspects(c1,m) if(input_aspects(c2,m) invoke(c2,m,args);
11/20

M. Pinto, M. Amor, L. Fuentes, J.M. Troya

The Virtual Environment Site
UserSite Components’ configuration Aspects’ configuration User specific composition Application Context

EnvironmentSite Components Aspects Architectural Constraints
M. Pinto, M. Amor, L. Fuentes, J.M. Troya CoopIS 2001 12/20

Components & Aspects Composition
Authentication: The user must have permissions to enter in the room

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

Multiples Views: The room will offer different graphical representation depending on the user profile
13/20

Components & Aspects Composition (II)
Awareness must be evaluated after the execution of enter() to notify that the user is in the room.

Exit 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

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.
14/20

Aspect Application Order

Architectural Description: Component Definition
Service defined with a Service Description Language (LDS)
translation
Name privateroom Interface indroomint Implementation indroomimpl

meetingroom
teacher student

meetroomint
teacherint studentint

meetroomimpl
teacherimpl studentimpl

document
videoconftool
M. Pinto, M. Amor, L. Fuentes, J.M. Troya

docint
videoconfint
CoopIS 2001

docimpl
videoconfimpl
15/20

Architectural Description: Aspect Definition
Name persistence Interface persistenceint Types env implementation per_level1 per_level2 2D 3D virtualreality aware_level1 aware_level2 owner_auth, accesslist_auth LDAP_auth default per_level1

multipleviews

multipleviewsint user

2D

awareness

awarenessint

type

awar_level1

authentication

autenticationint

comp

LDAP_auth

M. Pinto, M. Amor, L. Fuentes, J.M. Troya

CoopIS 2001

16/20

The UserSite Component
The UserSite contains CVE User preferences
Components & Aspects configuration values Name Persistence Awareness Multipleviews Authentication Implementations Per_level1 Awar_level2 2D Owner_auth
CoopIS 2001 17/20

CVE application context

M. Pinto, M. Amor, L. Fuentes, J.M. Troya

Architectural Description: Component-Aspect Composition Rules

M. Pinto, M. Amor, L. Fuentes, J.M. Troya

CoopIS 2001

18/20

Conclusions
Our proposal is an approach about how we have applied the aspectoriented 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 2001

19/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

M. Pinto, M. Amor, L. Fuentes, J.M. Troya

CoopIS 2001

20/20


								
To top