Exploiting runtime bytecode manipulation to add roles to Java agents
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. (C) 2004 Elsevier B.V. All rights reserved.
roles java agents interactions dynamic bytecode modification