A modular implementation framework for code mobility

With the growing popularity of open distributed applications, mobile agents have naturally emerged as the fundamental technique for tackling the complexity of the emerging applications. However, the pervasive nature of code mobility issues implies that their implementation cannot be modularized based only on object-oriented (OO) abstractions and mechanisms. In fact, programmers of complex mobile agent systems frequently evidence the presence of mobility tangling and scattering in the modules of their systems. Despite these modularity breakdowns caused by code mobility, the developers have mostly relied on OO application programming interfaces (APIs) from mobility platforms and on the Java programming language. As a consequence, there is a pressing need for empowering developers with a modular implementation framework that supports a transparent, flexible incorporation of code mobility-specific capabilities into their applications. This paper presents an aspect-oriented software framework, called AspectM, that ensures: (1) improved modularization of the code mobility issues, (2) a seamless introduction of code mobility into stationary agents, and (3) overall enhanced variability of the mobile agent systems, such as flexible integration of these systems with distinct mobility platforms. The usefulness and usability of the AspectM framework has been assessed in the context of two medium-sized case studies from different application domains, and through its composition with two mobility platforms.

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

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

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

[4]  Uirá Kulesza,et al.  Mobility as an Aspect : The AspectM Framework , 2004 .

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

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

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

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

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

[10]  Donald D. Cowan,et al.  Agents in object‐oriented software engineering , 2004, Softw. Pract. Exp..

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

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

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

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

[15]  Gian Pietro Picco,et al.  Understanding code mobility , 1998, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

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

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

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