AOCI: Weaving Components in a Distributed Environment

Mobile and embedded devices like PDAs, mobile phones, and all kinds of consumer hardware populate the world we live in. Despite the vision of ubiquitous computing and its idea of spontaneous interaction among these devices more than fifteen years ago, most of them are still isolated and restricted in their interaction capabilities. One reason for this limitation is the poor support for dynamic adaptation and evolution of software in distributed environments. This paper proposes AOCI, an Aspect-Oriented Component Infrastructure that takes the core ideas of AOP, the separation of concerns and system modularization to make them more adaptable and evolvable, to the domain of component systems. Components are usually considered as black boxes that can be combined to a complex system using their outer interfaces. In the context of our infrastructure, components export possible adaptation points, which are enriched by ontological information. This enables the application of AOP techniques without detailed knowledge about the component's internals, enabling dynamic and distributed adaptation. Our prototype is based on OSGi and provides a complete infrastructure to weave local as well as remote components. We demonstrate the feasibility of our approach by adapting the RUBiS infrastructure (a web-based bidding system) to support dynamic user-centric error detection.

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

[2]  Rüdiger Kapitza,et al.  Recoverable Class Loaders for a Fast Restart of Java Applications , 2008, Mob. Networks Appl..

[3]  Johann Blieberger,et al.  Reliable Software Technologies — Ada-Europe 2002 , 2002, Lecture Notes in Computer Science.

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

[5]  Satoshi Matsuoka,et al.  ECOOP'97 — Object-Oriented Programming , 1997, Lecture Notes in Computer Science.

[6]  Wolfgang Weck,et al.  A Plea for Grey-Box Components , 1997 .

[7]  Robert Wahbe,et al.  Efficient software-based fault isolation , 1994, SOSP '93.

[8]  Armin B. Cremers,et al.  Integrating aspect-orientation and structural annotations to support adaptive middleware , 2007, MAI '07.

[9]  Steffen Staab,et al.  International Handbooks on Information Systems , 2013 .

[10]  R. W. Peterson,et al.  OPTICAL INTERFEROMETRY OF SURFACES , 1991 .

[11]  Armin B. Cremers,et al.  Towards Context-Sensitive Service Aspects , 2006 .

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

[13]  Jeremy J. Carroll,et al.  Resource description framework (rdf) concepts and abstract syntax , 2003 .

[14]  Sean Bechhofer,et al.  OWL: Web Ontology Language , 2009, Encyclopedia of Database Systems.

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

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

[17]  Jørgen Lindskov Knudsen ECOOP 2001 — Object-Oriented Programming , 2001, Lecture Notes in Computer Science.

[18]  Dave Thomas ECOOP 2006 - Object-Oriented Programming, 20th European Conference, Nantes, France, July 3-7, 2006, Proceedings , 2006, ECOOP.

[19]  Thierry Coupaye,et al.  A Safe Aspect-Oriented Programming Support for Component-Oriented Programming , 2006 .

[20]  Alois Ferscha Contextware: Bridging Physical and Virtual Worlds , 2002, Ada-Europe.

[21]  Rüdiger Kapitza,et al.  AOCI : An Aspect-Oriented Component Infrastructure , 2007 .

[22]  Sean Bechhofer,et al.  OWL: Web Ontology Language , 2009, Encyclopedia of Database Systems.

[23]  Jia Xu,et al.  Understanding aspects via implicit invocation , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[24]  Grzegorz Czajkowski,et al.  Application isolation in the Java Virtual Machine , 2000, OOPSLA '00.

[25]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

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

[27]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[28]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[29]  Gustavo Alonso,et al.  Concierge: a service platform for resource-constrained devices , 2007, EuroSys '07.

[30]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[31]  James H. Aylor,et al.  Computer for the 21st Century , 1999, Computer.

[32]  Kim Mens,et al.  Managing the Evolution of Aspect-Oriented Software with Model-Based Pointcuts , 2006, ECOOP.

[33]  Luis Daniel Benavides Navarro,et al.  Explicitly distributed AOP using AWED , 2006, AOSD '06.

[34]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[35]  Gustavo Alonso,et al.  R-OSGi: Distributed Applications Through Software Modularization , 2007, Middleware.

[36]  A. Ferscha,et al.  Digital Aura , 2004 .

[37]  Ian Horrocks,et al.  OWL Web Ontology Language Reference-W3C Recommen-dation , 2004 .

[38]  Chantal Taconet,et al.  An architecture for supporting Development and Execution of Context-Aware Component applications , 2006, 2006 ACS/IEEE International Conference on Pervasive Services.

[39]  Fernando Asteasuain,et al.  Improving AOP Systems' Evolvability by Decoupling Advices from Base Code , 2006, RAM-SE.