JAC: an aspect‐based distributed dynamic framework

In this paper, we present the Java Aspect Components (JAC) framework for building aspect‐oriented distributed applications in Java. This paper describes the aspect‐oriented programming model and the architectural details of the framework implementation. The framework enables extension of application semantics for handling well‐separated concerns. This is achieved with a software entity called an aspect component (AC). ACs provide distributed pointcuts, dynamic wrappers and metamodel annotations. Distributed pointcuts are a key feature of our framework. They enable the definition of crosscutting structures that do not need to be located on a single host. ACs are dynamic. They can be added, removed, and controlled at runtime. This enables our framework to be used in highly dynamic environments where adaptable software is needed. Copyright © 2004 John Wiley & Sons, Ltd.

[1]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[2]  Laurence Duchien,et al.  An Automatic Aspect Weaver with a Reflective Programming Language , 1999, Reflection.

[3]  Mira Mezini,et al.  Conquering aspects with Caesar , 2003, AOSD '03.

[4]  Miklós Espák Improving Efficiency by Weaving at Run-time , 2003 .

[5]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[6]  Thierry Coupaye,et al.  ASM: a code manipulation tool to implement adaptable systems , 2002 .

[7]  Gregor Kiczales,et al.  Back to the future: a retroactive study of aspect evolution in operating system code , 2003, AOSD '03.

[8]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[9]  Mira Mezini,et al.  Component Integration with Pluggable Composite Adapters , 2002 .

[10]  Chris Zimmermann Advances in Object-Oriented Metalevel Architectures and Reflection , 1996 .

[11]  Mira Mezini,et al.  Programming with Aspectual Components , 1999 .

[12]  Yoshikazu Yamamoto,et al.  Extending UML with Aspects: Aspect Support in the Design Phase , 1999, ECOOP Workshops.

[13]  Mira Mezini,et al.  Adaptive plug-and-play components for evolutionary software development , 1998, OOPSLA '98.

[14]  Lodewijk Bergmans,et al.  Composing crosscutting concerns using composition filters , 2001, CACM.

[15]  Stefan Hanenberg,et al.  A UML-based aspect-oriented design notation for AspectJ , 2002, AOSD '02.

[16]  Akinori Yonezawa,et al.  Abstracting Object Interactions Using Composition Filters , 1993, ECOOP Workshop.

[17]  Günter Kniesel,et al.  JMangler - a framework for load-time transformation of Java class files , 2001, Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation.

[18]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

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

[20]  William G. Griswold,et al.  Getting started with ASPECTJ , 2001, CACM.

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

[22]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[23]  Olivier Motelet,et al.  A Formal Definition of Crosscuts , 2001, Reflection.

[24]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[25]  Robert E. Filman,et al.  Inserting ilities by controlling communications , 2002, CACM.

[26]  MaesPattie Concepts and experiments in computational reflection , 1987 .

[27]  Günter Kniesel Type-Safe Delegation for Run-Time Component Adaptation , 1999, ECOOP.

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

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

[30]  Laurence Duchien,et al.  Distributed separation of concerns with aspect components , 2000, Proceedings 33rd International Conference on Technology of Object-Oriented Languages and Systems TOOLS 33.

[31]  Awais Rashid,et al.  A Hybrid Approach to Separation of Concerns: The Story of SADES , 2001, Reflection.

[32]  Shigeru Chiba,et al.  A Selective, Just-in-Time Aspect Weaver , 2003, GPCE.

[33]  João Araújo,et al.  Modularisation and composition of aspectual requirements , 2003, AOSD '03.

[34]  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.

[35]  Shigeru Chiba,et al.  Load-Time Structural Reflection in Java , 2000, ECOOP.

[36]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[37]  Lodewijk Bergmans,et al.  An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach , 1992, ECOOP.

[38]  Harold Ossher,et al.  Specifying Subject-Oriented Composition , 1996, Theory Pract. Object Syst..

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

[40]  Harold Ossher,et al.  Using multidimensional separation of concerns to (re)shape evolving software , 2001, CACM.

[41]  Harold Ossher,et al.  Multi-Dimensional Separation of Concerns and the Hyperspace Approach , 2002 .

[42]  Shmuel Katz,et al.  Architectural views of aspects , 2003, AOSD '03.

[43]  Gustavo Alonso,et al.  Just-in-time aspects: efficient dynamic weaving for Java , 2003, AOSD '03.

[44]  R. Pawlak,et al.  Dynamic wrappers: handling the composition issue with JAC , 2001, Proceedings 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems. TOOLS 39.

[45]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[46]  Gregory T. Sullivan Aspect-oriented programming using reflection and metaobject protocols , 2001, CACM.

[47]  Ralph E. Johnson,et al.  Wrappers to the Rescue , 1998, ECOOP.

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

[49]  Siobhán Clarke,et al.  Towards a standard design language for AOSD , 2002, AOSD '02.

[50]  Tzilla Elrad,et al.  Extending the object model to provide explicit support for crosscutting concerns , 2002, Softw. Pract. Exp..

[51]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[52]  Wolfgang Weck,et al.  Generic Wrappers , 2000, ECOOP.

[53]  Harold Ossher,et al.  Subject-oriented composition rules , 1995, OOPSLA.