Injecting roles in Java agents through runtime bytecode manipulation

Agents are problem-solving entities that can be used to develop complex and distributed systems because they are autonomous, mobile, reactive, social, and proactive. Today's trends in agent technology include the development of applications as multi-agent systems, where several agents interact within the same application. In these systems, the interactions among agents must be carefully considered. Roles constitute a powerful paradigm for modeling interactions, allowing algorithmic issues and interaction-dependent issues to be handled independently. In this paper, we present the RoleX interaction infrastructure, which enables JavaTM agents to dynamically assume and use roles at runtime. Our approach is based on using bytecode manipulation to add (or remove) Java members from agents, changing their capabilities. We detail the main component of RoleX, the Role Loader, which performs the bytecode manipulation that allows agents to dynamically assume and release roles.

[1]  Naoyasu Ubayashi,et al.  RoleEP: role based evolutionary programming for cooperative mobile agent applications , 2000, Proceedings International Symposium on Principles of Software Evolution.

[2]  Franco Zambonelli,et al.  Separation of concerns in agent applications by roles , 2002, Proceedings 22nd International Conference on Distributed Computing Systems Workshops.

[3]  Ravi S. Sandhu,et al.  Role-Based Access Control Models , 1996, Computer.

[4]  Letizia Leonardi,et al.  Exploiting runtime bytecode manipulation to add roles to Java agents , 2005, Sci. Comput. Program..

[5]  Timothy W. Finin,et al.  KQML as an agent communication language , 1994, CIKM '94.

[6]  Dirk Riehle,et al.  The Role Object Pattern , 1997 .

[7]  Giacomo Cabri Role-based infrastructures for agents , 2001, Proceedings Eighth IEEE Workshop on Future Trends of Distributed Computing Systems. FTDCS 2001.

[8]  Wouter Joosen,et al.  Portable Support for Transparent Thread Migration in Java , 2000, ASA/MA.

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

[10]  Michael Luck,et al.  Agent technology: Enabling next generation computing , 2003 .

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

[12]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[13]  Martin Fowler,et al.  Dealing with Roles , 1997 .

[14]  Akinori Yonezawa,et al.  Bytecode Transformation for Portable Thread Migration in Java , 2000, ASA/MA.

[15]  Kasper Østerbye,et al.  Roles: Conceptual Abstraction Theory and Practical Language Issues , 1996, Theory and Practice of Object Systems.

[16]  CabriGiacomo,et al.  Exploiting runtime bytecode manipulation to add roles to Java agents , 2005 .

[17]  Letizia Leonardi,et al.  MailConfigurator: automatic configuration of e-mail accounts through Java mobile agents , 2004, PPPJ.

[18]  Manoj B Patel 2 K : A Component-Based Network-Centric Operating System for the Next Millennium , 2002 .

[19]  Franco Zambonelli,et al.  BRAIN: A Framework for Flexible Role-Based Interactions in Multiagent Systems , 2003, OTM.

[20]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[21]  Martin C. Rinard,et al.  Role-based exploration of object-oriented programs , 2002, ICSE '02.

[22]  G Cabri Role-Based Infrastructure for Agents , 2001 .

[23]  NICHOLAS R. JENNINGS,et al.  An agent-based approach for building complex software systems , 2001, CACM.

[24]  Letizia Leonardi,et al.  Role agent pattern: a developer guideline , 2003, SMC'03 Conference Proceedings. 2003 IEEE International Conference on Systems, Man and Cybernetics. Conference Theme - System Security and Assurance (Cat. No.03CH37483).

[25]  Elizabeth A. Kendall,et al.  Role modeling for agent system analysis, design, and implementation , 2000, IEEE Concurr..

[26]  Letizia Leonardi,et al.  Enabling mobile agents to dynamically assume roles , 2003, SAC '03.

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

[28]  Anand R. Tripathi,et al.  Design of a policy-driven middleware for secure distributed collaboration , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[29]  Letizia Leonardi,et al.  Agent role-based collaboration and coordination: a survey about existing approaches , 2004, 2004 IEEE International Conference on Systems, Man and Cybernetics (IEEE Cat. No.04CH37583).

[30]  Shigeru Chiba,et al.  A Bytecode Translator for Distributed Execution of "Legacy" Java Software , 2001, ECOOP.

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