An aspect-oriented software architecture for code mobility

Mobile agents have come forward as a technique for tackling the complexity of open distributed applications. However, the pervasive nature of code mobility implies that it cannot be modularized using only object-oriented (OO) concepts. In fact, developers frequently evidence the presence of mobility scattering in their system's modules. Despite these problems, they usually rely on OO application programming interfaces (APIs) offered by the mobility platforms. Such classical API-oriented designs suffer a number of architectural restrictions, and there is a pressing need for empowering developers with an architectural framework supporting a flexible incorporation of code mobility in the agent applications. This work presents an aspect-oriented software architecture, called ArchM, ensuring that code mobility has an enhanced modularization and variability in agent systems, and is straightforwardly introduced in otherwise stationary agents. It addresses OO APIs' restrictions and is independent of specific platforms and applications. An ArchM implementation also overcomes fine-grained problems related to mobility tangling and scattering at the implementation level. The usefulness and usability of ArchM are assessed within the context of two case studies and through its composition with two mobility platforms. Copyright © 2008 John Wiley & Sons, Ltd.

[1]  Carlos José Pereira de Lucena,et al.  Taming Heterogeneous Agent Architectures with Aspects , 2006 .

[2]  Paulo S. C. Alencar,et al.  Software Engineering for Multi-Agent Systems II , 2004 .

[3]  Danny B. Lange,et al.  Agent design patterns: elements of agent application design , 1998, AGENTS '98.

[4]  Carlos José Pereira de Lucena,et al.  Taming Heterogeneous Aspects with Crosscutting Interfaces , 2005 .

[5]  João Araújo,et al.  aspect- oriented pr ogramming , 2006 .

[6]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

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

[8]  Elizabeth A. Kendall,et al.  Role model designs and implementations with aspect-oriented programming , 1999, OOPSLA '99.

[9]  John Keeney,et al.  Chisel: a policy-driven, context-aware, dynamic adaptation framework , 2003, Proceedings POLICY 2003. IEEE 4th International Workshop on Policies for Distributed Systems and Networks.

[10]  Carlos José Pereira de Lucena,et al.  On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework , 2003, SBES.

[11]  I. Gorton,et al.  A quality-driven systematic approach for architecting distributed software applications , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[12]  Carlos José Pereira de Lucena,et al.  AJATO: an AspectJ Assessment Tool , 2006 .

[13]  Carlos José Pereira de Lucena,et al.  Modularizing design patterns with aspects: a quantitative study , 2005, AOSD '05.

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

[15]  Cláudio Sant'Anna,et al.  Reflections on architectural connection: seven issues on aspects and ADLs , 2006, EA '06.

[16]  Carlos José Pereira de Lucena,et al.  Engineering multi-agent systems with aspects and patterns , 2002, J. Braz. Comput. Soc..

[17]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[18]  Nicolas Lhuillier,et al.  FOUNDATION FOR INTELLIGENT PHYSICAL AGENTS , 2003 .

[19]  James E. White,et al.  Mobile Agents , 1997, Lecture Notes in Computer Science.

[20]  Giovanni Vigna,et al.  Understanding Code Mobility , 1998, IEEE Trans. Software Eng..

[21]  Carlos José Pereira de Lucena,et al.  On the Modular Representation of Architectural Aspects , 2006, EWSA.

[22]  Cesare Stefanelli,et al.  Policy-based separation of concerns for dynamic code mobility management , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[23]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[24]  Carlos José Pereira de Lucena,et al.  A modular implementation framework for code mobility , 2006, Mobility '06.

[25]  Donald D. Cowan,et al.  An interactive method for extracting grammar from programs , 2004 .

[26]  Uirá Kulesza,et al.  The Mobility Aspect Pattern , 2004 .

[27]  Carlos José Pereira de Lucena,et al.  Composing design patterns: a scalability study of aspect-oriented programming , 2006, AOSD.

[28]  Danny B. Lange,et al.  Programming and Deploying Java¿ Mobile Agents with Aglets¿ , 1998 .

[29]  Carlos José Pereira de Lucena,et al.  Towards a Method for the Development of Aspect-Oriented Generative Approaches , 2004 .

[30]  Cristina V. Lopes,et al.  A study on exception detection and handling using aspect-oriented programming , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[31]  Carlos José Pereira de Lucena,et al.  Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[32]  Daniel M. Zimmerman,et al.  benefits and drawbacks of current Java mobile agent systems , 1997 .

[33]  Aaron Kershenbaum,et al.  Mobile Agents: Are They a Good Idea? , 1996, Mobile Object Systems.

[34]  Lidia Fuentes,et al.  Training compositional agents in negotiation protocols using ontologies , 2004, Integr. Comput. Aided Eng..

[35]  Uirá Kulesza,et al.  Towards an Integrated Aspect-Oriented Modeling Approach for Software Architecture Design , 2006 .

[36]  Israel Ben-Shaul,et al.  Dynamic layout of distributed applications in FarGo , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[37]  Cecília M. F. Rubira,et al.  Exceptions and aspects: the devil is in the details , 2006, SIGSOFT '06/FSE-14.

[38]  Franco Zambonelli,et al.  Organizational Abstractions for the Analysis and Design of Multi-agent Systems , 2000, AOSE.

[39]  Naoyasu Ubayashi,et al.  Separation of Concerns in Mobile Agent Applications , 2001, Reflection.

[40]  T. Tamai,et al.  An adaptive object model with dynamic role binding , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[41]  Michael Rovatsos,et al.  Capturing agent autonomy in roles and XML , 2003, AAMAS '03.

[42]  Leon Sterling,et al.  Agent-oriented software analysis , 2004, 2004 Australian Software Engineering Conference. Proceedings..

[43]  Stefan Hanenberg,et al.  AspectJ Idioms for Aspect-Oriented Software Construction , 2003, EuroPLoP.

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

[45]  Agostino Poggi,et al.  Jade - a fipa-compliant agent framework , 1999 .

[46]  Carlos José Pereira de Lucena,et al.  Separation of Concerns in Multi-agent Systems: An Empirical Study , 2003, SELMAS.

[47]  Alessandro F. Garcia,et al.  Context-aware exception handling in mobile agent systems: the MoCA case , 2006, SELMAS '06.

[48]  Cecília M. F. Rubira,et al.  Aspectizing Exception Handling: A Quantitative Study , 2006, Advanced Topics in Exception Handling Techniques.

[49]  Carlos José Pereira de Lucena,et al.  On the Quantitative Assessment of Modular Multi-Agent Architectures , 2006, Multiagent Systems and Software Architecture.

[50]  Scott A. DeLoach,et al.  Multiagent Systems Engineering , 2001, Int. J. Softw. Eng. Knowl. Eng..

[51]  Fabio Kon,et al.  InteGrade: object‐oriented Grid middleware leveraging the idle computing power of desktop machines , 2004, Concurr. Pract. Exp..

[52]  Thomas Ledoux A Reflective Infrastructure for Coarse-Grained Strong Mobility and its Tool-Based Implementation , 2001 .

[53]  Alfredo Goldman,et al.  MobiGrid*: Framework for mobile agents on computer grid environments , 2004 .