Injecting roles in Java agents through runtime bytecode manipulation

  • Authors:
  • G. Cabri;L. Ferrari;L. Leonardi

  • Affiliations:
  • University of Modena and Reggio Emilia, Dipartimento di Ing. dell'Informazione, via Vignolese 905, 41100 Modena, Italy;University of Modena and Reggio Emilia, Dipartimento di Ing. dell'Informazione, via Vignolese 905, 41100 Modena, Italy;University of Modena and Reggio Emilia, Dipartimento di Ing. dell'Informazione, via Vignolese 905, 41100 Modena, Italy

  • Venue:
  • IBM Systems Journal
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.