TRANSPARENT EXTENSION OF SINGLE- USER APPLICATIONS TO MULTI-USER REAL-TIME COLLABORATIVE SYSTEMS An Aspect Oriented Approach to Framework Integration ICEIS.

Slides:



Advertisements
Similar presentations
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Advertisements

An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
1 An Aspect-Aware Outline Viewer Michihiro Horie and Shigeru Chiba Tokyo Institute of Technology, Japan.
Aspect Oriented Programming - AspectJ Radhika Rajput.
Secure Systems Research Group - FAU Aspect Oriented Programming Carlos Oviedo Secure Systems Research Group.
University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.
University of British Columbia Software Practices Lab 2005 CASCON A Fluid AOP Editor Terry Hon Gregor Kiczales.
Aspect-Oriented Programming: An Overview Brandon Wirick Feb
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
Supervised by Prof. LYU, Rung Tsong Michael Department of Computer Science & Engineering The Chinese University of Hong Kong Prepared by: Chan Pik Wah,
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Aspect-oriented programming Laura Ricci A.A
Harmless Advice Daniel S Dantas Princeton University with Prof. David Walker.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
UNIT-V The MVC architecture and Struts Framework.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Aspect Oriented Programming (AOP) in.NET Brent Krueger 12/20/13.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
Extensible Plug-ins for Aspect-Oriented Programming Macneil Shonle*Ankit Shah.
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering.
Vision The ultimate IDE/CASE tool should supports all steps in the software development process. Current tools perform only minimal semantic-level analysis.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
OOPSLA workshop on Domain-Specific Visual Languages 1 Juha-Pekka Tolvanen, Steven Kelly, Jeff Gray, Kalle Lyytinen.
Introduction into component programming based on Java beans Dušan Tošić
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Joel Phinney March 31, ◦ Concerns  Separation of Concerns, Tangled and Scattered Concerns, Cross-Cutting Concerns, Aspects ◦ Aspect-Oriented Software.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Aspect Oriented Programming An Introduction based on se-radio.net episode th October 2009 Aspect Oriented Programming - Nils Schmidt.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.
December 4, ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:
Aspect Oriented Architecture (AOA) Why – to alleviate crosscutting in a system Why – to alleviate crosscutting in a system When – When – 1984.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Glen Dobson, Lancaster University Service Grids Workshop NeSC Edinburgh 23/7/04 Endpoint Services Glen Dobson Lancaster University,
Development of e-Science Application Portal on GAP WeiLong Ueng Academia Sinica Grid Computing
AOSD'04, Lancaster, UK 1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori.
R R R A Brief Introduction to Aspect-Oriented Programming.
IWFST'2005, Shanghai Testing Aspect-Oriented Programs: Challenges and Opportunities Jianjun Zhao Department of Computer Science and Engineering Shanghai.
AspectScope: An Outline Viewer for AspectJ Programs Michihiro Horie, Shigeru Chiba Tokyo Institute of Technology, Japan.
1 An AOP Implementation Framework for Extending Join Point Models Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Hidehiko Masuhara(University.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
PPL 2004, Gamagori, AICHI1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech, Japan) Shigeru Chiba (Tokyo Tech, Japan)
 Is a programming paradigm  Extends OOP  Enables modularization of cross cutting concerns.
RoleEP: Role Based Evolutionary Programming for Cooperative Mobile Agent Applications Naoyasu UBAYASHI ( Toshiba Corporation) Tetsuo TAMAI ( University.
Software Engineering Lecture 7
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Dynamic Updates for Videogames
Demeter Aspects Who We Are Aspectual Collaborations
Structuring Adaptive Applications using AspectJ and AOM
Aspect-oriented programming
Execute your Processes
Chenchen Xi CNC Supervisor: Prof. John R. Gurd
Ponder policy toolkit Jovana Balkoski, Rashid Mijumbi
Presentation transcript:

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

ICEIS Ansgar Gerlicher Content Introduction Aspect Oriented Programming The Application and the Framework used Integration Steps Conclusions Demonstration Video

ICEIS Ansgar Gerlicher 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

ICEIS Ansgar Gerlicher 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 June 1997.

ICEIS Ansgar Gerlicher 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

ICEIS Ansgar Gerlicher The Collaborative Editing Framework for XML (CEFX) CEFX Architecture Overview Other components

ICEIS Ansgar Gerlicher 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

ICEIS Ansgar Gerlicher Call Interception Single-User Application Element Advice setAttribute CEFX DOMAdapter CEFX Controller 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)...)

ICEIS Ansgar Gerlicher 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

ICEIS Ansgar Gerlicher Collaborative Editing Demonstration

Thank you for your attention ICEIS 2007 Ansgar R.S.Gerlicher Stuttgart Media University (HdM) and London College of Communication