1 / 11

ICEIS 2007 Special Session 3 - Computer Supported Collaborative Editing Ansgar R.S.Gerlicher

TRANSPARENT EXTENSION OF SINGLE-USER APPLICATIONS TO MULTI-USER REAL-TIME COLLABORATIVE SYSTEMS An Aspect Oriented Approach to Framework Integration. ICEIS 2007 Special Session 3 - Computer Supported Collaborative Editing Ansgar R.S.Gerlicher gerlicher@hdm-stuttgart.de. Content. Introduction

hamal
Download Presentation

ICEIS 2007 Special Session 3 - Computer Supported Collaborative Editing Ansgar R.S.Gerlicher

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TRANSPARENT EXTENSION OF SINGLE-USER APPLICATIONS TO MULTI-USER REAL-TIME COLLABORATIVE SYSTEMSAn Aspect Oriented Approach to Framework Integration ICEIS 2007 Special Session 3 - Computer Supported Collaborative Editing Ansgar R.S.Gerlicher gerlicher@hdm-stuttgart.de

  2. Content • Introduction • Aspect Oriented Programming • The Application and the Framework used • Integration Steps • Conclusions • Demonstration Video ICEIS2007 - Ansgar Gerlicher

  3. Introduction The Challenge • Extend an existing single-user application with collaborative functionality • without changing the applications source code (transparent extension) and • with as little effort as possible The Approach • Concentrate on the data model manipulation concerns • and use aspect-oriented programming • to integrate a collaboration framework ICEIS2007 - Ansgar Gerlicher

  4. Aspect Oriented Programming (AOP) • A programming paradigm originated by Gregor Kiczales et al. at Xerox PARC, 1997* • Attempts to aid programmers in the separation of concerns, specifically crosscutting concerns • Aspects can alter the behavior of the base code by applying advices • Advices define additional behaviour at join points • Join points are specified by using a quantification or query called a pointcut • AOP extensions for many programming languages exist. AspectJ is the most popular AOP extension for the Java programming language * Kiczales, G.,et al. Aspect-Oriented Programming.In Proc. of ECOOP 1997, Springer-Verlag LNCS 1241. June 1997. ICEIS2007 - Ansgar Gerlicher

  5. The Application and the Framework used GLIPS Graffiti SVG graphics editing application • Open source graphics editor developed by ITRIS • Java based • Supports editing of SVG graphic documents • Uses the W3C DOM API internally for manipulation of the SVG documents Collaborative Editing Framework for XML (CEFX) • Real-Time collaboration on XML documents • Optional locking of nodes • Awareness support • Flexible plug-in architecture ICEIS2007 - Ansgar Gerlicher

  6. The Collaborative Editing Framework for XML (CEFX) CEFX Architecture Overview Other components Other components ICEIS2007 - Ansgar Gerlicher

  7. Integration Steps • 1. Identify the crosscutting concerns of data model manipulation of the single-user application (GLIPS uses the DOM API) • 2. Specify join points for the relevant calls to the data model manipulation API (DOM API) • 3. Define advices for delegating corresponding actions to the collaborative editing framework ICEIS2007 - Ansgar Gerlicher

  8. Call Interception Integrating CEFX into GLIPS using AOP Element CEFXDOMAdapter CEFXController Single-UserApplication Advice setAttribute setAttribute(name:String,value:String) setAttribute(target:Element,name:String,value:String) Element_setAttribute(target:Element,name:String,value:String) Operation= createUpdateOperation(...) executeOperation(op:Operation) JoinPoint: call(void setAttribute(String,String)...) Call interception, delegation to Advice: void around(Element p, String attr, String value) ICEIS2007 - Ansgar Gerlicher

  9. Conclusion Pros • Little programming effort: only seven advices where needed • No source-code modification necessary • Application-transparent • Reusable advices • Acceptable performance Cons • Still some AOP implementations require source code recompilation • AOP is still an immature technology, resulting in lack of tool support and adoption risks ICEIS2007 - Ansgar Gerlicher

  10. Collaborative Editing Demonstration ICEIS2007 - Ansgar Gerlicher

  11. Thank youfor your attention ICEIS 2007 Ansgar R.S.Gerlicher gerlicher@hdm-stuttgart.de Stuttgart Media University (HdM) and London College of Communication

More Related