Collaborative Virtual Environment Development an Aspect-Oriented Approach

Download Collaborative Virtual Environment Development an Aspect-Oriented Approach

Post on 06-Apr-2018

221 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • 8/3/2019 Collaborative Virtual Environment Development an Aspect-Oriented Approach

    1/6

    Collaborative Virtual Environment Development: An Aspect-OrientedApproach *

    M. Pinto,M. Amor, L. Fuentes, J.M. TroyaDpto. de Lenguajes y Ciencias de la C omputacidn, Universidad de MalagaCampus de Teatinos, s/n. cp . 29071 Malaga (SPAIN)email:(pinto,pinilla,lBtroya)@lcc.uma.es

    AbstractNow aday s the interest in collab orative environments has

    increased considerably, proba bly due t o the current techno-logical advances specially on Internet computing. H owevel;the lack of a standard reference architecture fo r the deve l-opm ent of these systems m akes difJicult the developm ent ofuseful collaborative environments that can be used in realwork . Our goal is the development of a framework fo r theconstruction of collabor ative virtual environments. We con-sider that aspect-oriented programming is very suitable forboth the design and implementation of these systems, thenwe present in this pa per an aspect-oriented approach fo rthe development of collaborative virtual environments.

    1. IntroductionCurrent technological advances make possible the useof computers to collaborate and communicate with people

    who are geographically dispersed. Organizations want totake advantage of the possibilities offered by new tools liketextual chats, whiteboards, shared editors, and videocon-ferences, that allow distributed team members to work ingroup s, form ing virtual teams.In orde r to make possible the work of virtual team m em-

    bers without loss of efficiency and productivity, the systemmust offer a shared environment for the group and the ar-tifacts they use - individual tools, collaborative tools anddocumen ts of different types, where mem bers can com mu-nicate and collaborate with one another. The y need to inter-act with other team m embers using different medias - text,graphics, audio or video, and using different modes of com -munication - asynchronous or synchronous, unicast, broad-cast or multicast, scheduled or informal.

    "This research was funded in part by the ClCYT under grant TIC99-1083-CO2-01,and also by the telecommunication organization "FundacidnRetevisidn"

    0-7695-1080-9/01$10.00 0 001 IEEE

    The needs presented above have motivated great re-search [1 ] [131 [121 in the development of collaborativevirtual environments (CVE) in the last years. T he main ob-jective in the developm ent of these systems is to constructa secure, persistent and integrated shared environment thatprovides to the geographically dispersed users the aware-ness they need to communicate and collaborate as if theywere co-located in a real place. A nother important issue inthese systems are the users preferences. In order to be use-ful, the environment must be conjigurable, extensible, scal-able , adaptable and able to take into account the differentusers preferences and necessities.Object-Oriented (00)application frameworks [4] 5]provide an approach to build applications that are more ro-bust, more correct and with shorter development time thatthose built from scratch. A framework is a reusable designof all or part of a system that is represented by a se t of ab-stract classes and the w ay their instances interact [8]. Theprimary benefits of 00 application frameworks stem fromth e modularity, reusability, extensibility, an d inversion ofcontrol they provide to developers [3]. However, the de-velopment of a frame work and the subsequent instantiationor extension to build custom do main specific applications isnot a straightforward task and many times, the frameworkfails to provide the modularity needed to localize the im-pact of design and implementation changes. Th is decreasesframeworks reusability and extensibility. In addition, veryoften a mino r change in the functionality of the system canmean mayor changes in many components of the frame-work.The main com plexity in the development of a frameworkis the decomposition of the system functionality in com-ponents. Many system s have properties that do not nec-essarily align with the functional components of the sys-tem [ 2 ] . These properties normally are present across dif-ferent components of the system and are called aspects inthe Aspect-Oriented Programming (AOP) [9]. Example s ofaspects are synchronization, security, failure h andlin g,per -sistence, awa reness, authentication, resource m anagemen t,

    97

  • 8/3/2019 Collaborative Virtual Environment Development an Aspect-Oriented Approach

    2/6

    communication, an d coordination.Ou r goal is to use aspects to achieve separation of con-cerns in the development of CVE. We think that the com-plexity in the development of this kind of systems is in-creased due to the existence of a large number of aspectsthat cut across many components in the system, creatinginterdependences between them that make difficult the ex-tension and modification of these components. By usingAOP, components main functionality and aspects that arepresent in more that o ne com ponent are modeled separatelyresulting in mo re reusable, configurable and extensible sys-tems [ 11, promoting the instantiation of the environmentbased on the users needs and preferences.In this paper we try to identify some of the most char-acteristic aspects that cut across components in CV Es mak -ing the development of these systems mo re difficult. Ou rmain goal is the definition of an Aspect Oriented Frame-work that describes a common language for the develop-ment o f CV E sys tems that can be automatically instanti-ated based on the users needs and preferences. Using anaspect-oriented framework, the developer can focus on thedomain-specific issues and does not need to m anag e directlythe aspects that are present across the system functionality.We model components functionality and aspects as inde-pendent entities inside the framework that are compos ed byusing a composition mechanism that glue com ponents withaspects according t o the user profile of the service customer.2. Aspects in Collaborative Virtual Environ-

    mentsFirstly we are goin g to present which are the different as-pects that arise in CV Es. In order to identify these aspects,

    we mu st take into account those things that characterize as-pects:i. Aspects are moving targets. This m eans that differ-ent numbers of aspects can affect a variable numbe r

    of com ponents over time.ii. Aspects are quality facto rs in different com pone nts in asystem.iii. Aspects are goals an d purposes that the environmentmust achieve.iv. Aspects are processes or functions that cut across dif-

    ferent components.v. Aspects are enduring entities that remain stable over thetime.

    Likewise any other distributed system, some of the ba-sic issues of these systems like synchronization, commu-nication, coordination, security or failure handling can be

    modeled as aspects in CVE. In addition to these aspectswe have detected another ones that are more specific ofthese systems, like awareness, persistence an d authentica-tion. These are the aspects in which we are going to fo-cus in this paper. The se issues are present in some of themost w ell-known CV E, like DIVA 1131, TeamR ooms [ 111and TEAM Scope [141, but are hard-coded throughout com-ponents functionality, drastically decreasing the reusabilityand extensibility of th e environment.Regarding graphical representation we have found a ne waspect that we have called multiples views. In CVE systemsthe graphical representation is a very important issue to takeinto account in order to produ ce a more usable environmentfor human society. On e of our goals is to separate the graph-ical representation of a compone nt from its functionality,in a way that the system would be able to change dynami-cally or statically the graphical representation according t othe users preferences and resources, without changing thecomponents behavior. By this way, the CV E might be ableto offer different degrees of QoS even at runtime.

    Now we are going to present which are the reasons thatlead us to consider that awareness, persistence , authentica-tion an d multiples views can be m anaged like aspects in thedevelopment of CVEs. We are going to define each of theseaspects and the way they are m anaged in a CVE.

    1. Awareness: The provision of other members aware-ness is very important in a collaborative environment.There are different forms and levels of awareness. Itis very important to select carefully the informationtransmitted, because the system must provide aware-ness, but without invading the privacy of the senderor creating a disturbance for the receiver [7]. S o m eways of awareness are for instance, document updatesawareness. It is mandatory to assure the coherencyof the environment. Whe n a user works in a docu-ment, that user must know w hich are the last modifica-tions performed by other users, and perhaps some ex-tra information like the modification da te or the pagesmodified. However, other forms of awareness regard-ing privacy and accessibility could be configurable byeac h user. For instance, if a user wants to work inisolation without disturbance, he or she could decideno t to receive the awareness information about otherusers connections and disconnections, o r other usersactivities. Othe r exam ples of awareness informationarejo in ing or leaving the environment or what are youdoing for observational purposes. If we use aspectsto represent awareness, the configuration of the infor-mation that a specific user or artifact receives aboutthe rest of the environment is mo re straightforward be-cause is not hard-coded with the users or artifactscompone nts and can b e adde d, deleted or changed dy-namically at runtime.

    98

  • 8/3/2019 Collaborative Virtual Environment Development an Aspect-Oriented Approach

    3/6

    2. Persistence: Persisten ce is also an important issue in aCVE.The environment itself must be persistent since itmust exist even when n o user is connected to it. O therlevels of persistence are the configuration of the en-vironment for each user or the users actions, for in-stance, modifications in the user profile, or creationand modification of documents. In order to increasethe flexibility of the system, the level of persistencefor each compone nt in the environment should be con-figurable, and again aspects are the most appropriatetechnology t o achieve this flexibility. In addition, theuse of a spects provid es an extra level of configuration.Not only you can configure whether an object is persis-tent or not, but you can a lso configure the persistenc eprocess - automatically or driven by user actions. F orinstance , you cou ld configure the env ironmen t in sucha way that each time you join a chat application thecontent is autom atically saved and can be loaded later,it is saved only if the user selects the appropriate op-tion, or not saved at all. The most im portant benefitof this approach is that all these choices are availableindependently of the chat com ponent behavior.

    3 . Authentication: This aspect cuts across all the com-ponents in the virtual environment, because likewisea real work environment, the artifacts that constitutethe virtual environment will have owners and indeedsom e restrictions of access. The re will be objec ts thatare owned by the environm ent, being the system whichestablishe s access permissions. There will be objectsowned by specific users who will be changing accesspermission at runtime.

    4. Multiples Views: We want it to be pos sible for users tohave different views of the environmen t dependin g ontheir preferences and resource availability. This can betraduced in different views of each component that canbe changed dynamica lly at runtime. This feature cutsacross all the components in the system with graphi-cal representation, so we are going to consider multi-ple views anothe r aspect in ou r aspect-oriented frame-work.

    In order to have a better understanding of these aspectswe present the following example. A typical comp onentin a virtual environment, for instance, a virtual ofice isa meeting room in which participants collaborate sharingdocum ents and other resources. Firstly, when a user of theenvironment wants to access to the room, he m ust authen-ticate himself. This authentication m ay imply a differentrepresentation of the room and the eleme nts contained in itdepending on the user preferences represented in his userprofile. Also, different actions of the user in the room canbe made persistent. This persistence can depend on the en-vironment configuration but also on the users preferences,

    One option is to have a default set of persistence require-ments im pose by the environment that can be extended withthe preferences of each user. Another issue that have to betaken into account will be the location of each user and otherresources inside the room.

    Studying the characteristics described in the a bove para-graph for the meeting room, we can see that each of themcan be modeled by one of the aspects defined previously.In addition, it is very important to note that the aspects aresometimes no orthogonal and must b e evaluated in a spe-cific order. For instance, if the graphica l represent ation ofthe room (multiple views aspect) depends on the user pro-file, the authentication aspect must be evaluated before themultiple views aspect. In Figure 1 , we can see how to repre-sent graphically the composition between aspects and com-ponents and how to expre ss the evaluation o rder of the as-pects. A square will represent a component and a wrappingcircle will represent an aspec t . If several aspects must beevaluated in a specific order the first one in b eing evaluatedappear in the m ost external circle.

    Authentication-oom IMu1 i p l e sViewsFigure 1. Representation of the compositionbetween aspects and components

    In this examp le, in first place, the user authen ticates him-self in the environment. If he is accepte d, depending onhi s u ser pro j l e will vary the graphica l representation of themeeting room. It is not possible to evaluate the multipleviews aspects before the authentication aspect and the sys-tem mu st assure this evaluation order.3. Aspect-Oriented Virtual EnvironmentFramework

    Aspects are not new properties in complex, large-scalesystems. They are present, to some degree, in most sys-tems. However, with the traditional object-orien ted ap-proach, these propertie s do not have sp ecial relevance in thedesign and implementation phases of the system. T he sys-tem developers know the im portance of, for instance, syn-

    99

  • 8/3/2019 Collaborative Virtual Environment Development an Aspect-Oriented Approach

    4/6

    chronization, persistence, or failure handler issues but theyjust coded them a s part of the components. This means thatthe main contributio n of AOP is not the aspec ts themselves,but the modeling of these aspects in the framework as sepa-rate entities.

    The AOP is a design paradigm that aims the separationof components an d aspects from the early stages of the...

Recommended

View more >