Exploiting runtime bytecode manipulation to add roles to Java agents

  • Authors:
  • Giacomo Cabri;Luca Ferrari;Letizia Leonardi

  • Affiliations:
  • Dipartimento di Ingegneria dell'Informazione, Università di Modena e Reggio Emilia, Modena, Italy;Dipartimento di Ingegneria dell'Informazione, Università di Modena e Reggio Emilia, Modena, Italy;Dipartimento di Ingegneria dell'Informazione, Università di Modena e Reggio Emilia, Modena, Italy

  • Venue:
  • Science of Computer Programming - Special issue on principles and practice of programming in java (PPPJ 2003)
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Thanks to their sociality, agents can interact with other agents in a cooperative or competitive way. Such interactions must be carefully taken into consideration in the development of agent-based applications. A good paradigm for modeling such interactions is the one based on the concept of roles, which is fully exploited in the BRAIN framework. The use of roles achieves several advantages, from separation of concerns between the algorithmic issues and the interaction ones, to the reuse of solutions and experiences in different applications. In this paper, we propose an interaction infrastructure for enabling Java agents to dynamically assume roles at runtime and then to use them. Our approach is based on the capability of modifying the bytecode of Java agents at runtime in order to add the members of role classes. An application example and a comparison with other approaches show the effectiveness of our approach.