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 Requirements:
 Collaboration with people
CVEs Characteristics:
Complex application domain
who are geographically
dispersed
 Awareness: Knowledge about users and
artifacts location
 Integrated Shared
Environment
 Persistence: Make the environment,
resources and user configuration persistent.
 Different medias: text,
graphics, audio, video
 Access Control: Check access permissions
to the resources in the environment
 Different communication
modes: asynchronous,
synchronous, unicast,
multicast, scheduled, casual
 Multiples Views: Different graphical
representation
M. Pinto, M. Amor, L. Fuentes, J.M. Troya
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
 Users Preferences: Environment User
specific configuration
CoopIS 2001
3/20
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
Components: Basic functionality in the
application domain
Component-Aspect Weaving
Static: Components and aspects are mixed in a
intermingled code that is compiled and executed
Aspects: Properties that cut across
different components
 Allow the use of specific aspect languages
 Highly optimized woven code
 security
 Difficult to distinguish between aspects and
components in the result code
 communication
 coordination
 awareness
Dynamic: Components and aspects integration at
runtime.
 Use of general-purpose languages
 authentication
 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
Synchronization, Communication,
Coordination, Security, Failure handling
can be modeled as aspects

CVEs specific 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:






Persistence:



Environment persistence
Changes in User Preferences
Authentication:




User connections and disconnections
User state (available, busy, disconnected ...)
User location
Document modifications (who, when and how)
Document versions
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
M. Pinto, M. Amor, L. Fuentes, J.M. Troya
CoopIS 2001
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
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
CVE Framework (Aspects + Components)
User
Room
invoke(user,room,enter,(login,passwd))
M.View
Both are
implemented using
the same generalpurpose language
(Java)
Aspects do not
have explicit
references to
components
eval(user,room,enter,(login,passwd))
Authent
execute(user,room,enter,(login,passwd))
Glue mechanism:
Dynamic Weaving
at runtime (e.g.
JAVA/RMI)
Components do
not know the
aspects are
affected by.
Middleware Layer
M. Pinto, M. Amor, L. Fuentes, J.M. Troya
VESite
CoopIS 2001
eval(user,room,enter,(login,passwd))
execute(c1,c2,m,args){
if(output_aspects(c1,m)
if(input_aspects(c2,m)
invoke(c2,m,args);
11/20
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)
Exit Aspect
Awareness must be
evaluated after the execution
of enter() to notify that the
user is in the room.
Aspect Application Order
Entry Aspect
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.
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
14/20
Architectural Description:
Component Definition
Service defined with a Service Description Language (LDS)
translation
Name
Interface
Implementation
privateroom
indroomint
indroomimpl
meetingroom
meetroomint
meetroomimpl
teacher
teacherint
teacherimpl
student
studentint
studentimpl
document
docint
docimpl
videoconftool
videoconfint
videoconfimpl
M. Pinto, M. Amor, L. Fuentes, J.M. Troya
CoopIS 2001
15/20
Architectural Description:
Aspect Definition
Name
Interface
Types
implementation
default
persistence
persistenceint
env
per_level1
per_level2
per_level1
2D
multipleviews
multipleviewsint user
2D
3D
virtualreality
awareness
awarenessint
type
aware_level1
aware_level2
awar_level1
comp
owner_auth,
accesslist_auth
LDAP_auth
LDAP_auth
authentication
autenticationint
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
Implementations
Persistence
Per_level1
Awareness
Awar_level2
Multipleviews
2D
Authentication
Owner_auth
M. Pinto, M. Amor, L. Fuentes, J.M. Troya
CVE application context
CoopIS 2001
17/20
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
Descargar

Document