iceis 2007 special session 3 - computer supported collaborative editing ansgar r.s.gerlicher
DESCRIPTION
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 [email protected]. Content. Introduction - PowerPoint PPT PresentationTRANSCRIPT
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
15.06.2007 ICEIS2007 - Ansgar Gerlicher 2
Content
• Introduction
• Aspect Oriented Programming
• The Application and the Framework used
• Integration Steps
• Conclusions
• Demonstration Video
15.06.2007 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
15.06.2007 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.
15.06.2007 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 documentsCollaborative Editing Framework for XML (CEFX)• Real-Time collaboration on XML documents• Optional locking of nodes• Awareness support• Flexible plug-in architecture
15.06.2007 ICEIS2007 - Ansgar Gerlicher 6
The Collaborative Editing Framework for XML (CEFX)
CEFX Architecture Overviewdd Architecture Ov erv iew
Site1 Site2CEFXServ er Site
Single User Application 2
«artifact»
XML Document
CEFXClient 1
ModifyDocument
Propagate Operation
Receive Operation
CEFXDOMAdapter
Propagate Awareness Event
Receive Awareness Event
Single User Application 1
CEFXServ er
Receive Operation
«artifact»
XML Document
«artifact»
XML Document
ConcurrencyController
AwarenessController
CEFXClient 2
ModifyDocument
CEFXDOMAdapter
PropagateOperation
ReceiveOperation
Propagate Awareness Event
Receive Awareness Event
ConcurrencyController
AwarenessControllerOther components
Other components
15.06.2007 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
15.06.2007 ICEIS2007 - Ansgar Gerlicher 8
Call Interception
Single-UserApplication
Element Advice
setAttribute
CEFXDOMAdapter
CEFXController
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)
Integrating CEFX into GLIPS using AOP
Call interception, delegation to Advice:void around(Element p, String attr, String value)
JoinPoint: call(void setAttribute(String,String)...)
15.06.2007 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
15.06.2007 ICEIS2007 - Ansgar Gerlicher 10
Collaborative Editing Demonstration
Thank youfor your attention
ICEIS 2007Ansgar R.S.Gerlicher
[email protected] Media University (HdM)
andLondon College of Communication