Explicitly distributed AOP using AWED

Distribution-related concerns, such as data replication, often crosscut the business code of a distributed application. Currently such crosscutting concerns are frequently realized on top of distributed frameworks, such as EJBs, and initial AO support for the modularization of such crosscutting concerns, e.g., JBoss AOP and Spring AOP, has been proposed.Based on an investigation of the implementation of replicated caches using JBoss Cache, we motivate that crosscutting concerns of distributed applications benefit from an aspect language for explicit distributed programming. We propose AWED, a new aspect language with explicit distributed programming mechanisms, which provides three contributions. First, remote pointcut constructors which are more general than those of previous related approaches, in particular, supporting remote sequences. Second, a notion of distributed advice with support for asynchronous and synchronous execution. Third, a notion of distributed aspects including models for the deployment, instantiation and state sharing of aspects. We show several concrete examples how AWED can be used to modularly implement and extend replicated cache implementations. Finally, we present a prototype implementation of AWED, which we have realized by extending JAsCo, a system providing dynamic aspects for Java.

[1]  Sérgio Soares,et al.  Implementing distribution and persistence aspects with aspectJ , 2002, OOPSLA '02.

[2]  Ondrej Lhoták,et al.  Adding trace matching with free variables to AspectJ , 2005, OOPSLA '05.

[3]  Rémi Douence,et al.  Composition, reuse and interaction analysis of stateful aspects , 2004, AOSD '04.

[4]  Optimizing JAsCo dynamic AOP through HotSwap and Jutta , 2004 .

[5]  Ondrej Lhoták,et al.  abc: an extensible AspectJ compiler , 2005, AOSD '05.

[6]  Wim Vanderperren,et al.  Jumping Aspects Revisited , 2005 .

[7]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[8]  Wim Vanderperren,et al.  JAsCo: an aspect-oriented approach tailored for component based software development , 2003, AOSD '03.

[9]  Andrew Clement,et al.  Large-scale AOSD for middleware , 2004, AOSD '04.

[10]  Gregor Kiczales,et al.  D: A Language Framework for Distributed Programming , 1997 .

[11]  Mira Mezini,et al.  Variability management with feature-oriented programming and aspects , 2004, SIGSOFT '04/FSE-12.

[12]  Rémi Douence,et al.  A Framework for the Detection and Resolution of Aspect Interactions , 2002, GPCE.

[13]  Laurence Duchien,et al.  JAC: A Flexible Solution for Aspect-Oriented Programming in Java , 2001, Reflection.

[14]  G. Barish,et al.  World Wide Web caching: trends and techniques , 2000, IEEE Commun. Mag..

[15]  Jacky Estublier,et al.  Describing and using non functional aspects in component based applications , 2002, AOSD '02.

[16]  Wouter Joosen,et al.  Dynamic and selective combination of extensions in component-based applications , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[17]  Li Fan,et al.  Summary cache: a scalable wide-area web cache sharing protocol , 2000, TNET.

[18]  Gustavo Alonso,et al.  Dynamic weaving for aspect-oriented programming , 2002, AOSD '02.

[19]  Julia L. Lawall,et al.  Web cache prefetching as an aspect: towards a dynamic-weaving based solution , 2003, AOSD '03.

[20]  Mario Südholt,et al.  An expressive aspect language for system applications with Arachne , 2005, AOSD '05.

[21]  Éric Tanter,et al.  A Versatile Kernel for Distributed AOP , 2006, DAIS.

[22]  Lidia Fuentes,et al.  Separation of coordination in a dynamic aspect oriented framework , 2002, AOSD '02.

[23]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[24]  S. Chiba,et al.  Remote pointcut: a language construct for distributed AOP , 2004, AOSD '04.

[25]  Wim Vanderperren,et al.  Stateful Aspects in JAsCo , 2005, SC@ETAPS.

[26]  James H. Andrews,et al.  Process-Algebraic Foundations of Aspect-Oriented Programming , 2001, Reflection.

[27]  Joseph Gil,et al.  AspectJ2EE = AOP + J2EE: Towards an aspect based, programmable and extensible middleware framework , 2004 .

[28]  Sumit Mittal,et al.  AOP-Based Caching of Dynamic Web Content: Experience with J2EE Applications , 2005 .