Making agent roles perceivable through proxy bytecode manipulation

Roles represent a great model to deal with interactions and sociality of autonomous entities like agents, and in fact in order to ease their adoption several role approaches have been developed in the Role Based Collaboration (RBC) field. Some of the main difficulties in designing and developing agent role based approaches are the needs of providing a good dynamism and a good perception of the played role. The former (dynamism) is the capability of an agent to assume, use and release a role at run-time; while the latter (perception) is the capability of an agent to perceive the role played by another agent without having to explicitly query such agent or the role environment about. While dynamism has been achieved with several techniques, the role perception is more difficult to reach and often requires deep changes in agent structures, like class refactoring. Other difficulties arise when the agent is masqueraded, for security reasons, by a proxy. This paper presents a role approach that enables Java agents to dynamically play and perceive roles. This approach exploits a dynamic class refactoring performed on the fly, in order to make visible and perceivable assumed roles.

[1]  Elizabeth A. Kendall,et al.  Role modelling for agent system analysis, design, and implementation , 1999, Proceedings. First and Third International Symposium on Agent Systems Applications, and Mobile Agents.

[2]  Haibin Zhu,et al.  Role-based systems are autonomic , 2008, 2008 7th IEEE International Conference on Cognitive Informatics.

[3]  Letizia Leonardi,et al.  Injecting roles in Java agents through runtime bytecode manipulation , 2005, IBM Syst. J..

[4]  Franco Zambonelli,et al.  Uncoupling Coordination: Tuple-based Models for Mobility , 2006 .

[5]  Franco Zambonelli,et al.  Role-Based Approaches for Engineering Interactions in Large-Scale Multi-agent Systems , 2003, SELMAS.

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

[7]  Barbara Liskov,et al.  Data Abstraction and Hierarchy , 1987 .

[8]  Shigeru Chiba Javassist - A Reflection-based Programming Wizard for Java , 1998 .

[9]  MengChu Zhou,et al.  Roles in Information Systems: A Survey , 2008, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).

[10]  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).

[11]  Letizia Leonardi,et al.  Manipulation of Java agent bytecode to add roles , 2003, PPPJ.

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

[13]  Muga Nishizawa,et al.  An Easy-to-Use Toolkit for Efficient Java Bytecode Translators , 2003, GPCE.

[14]  Luca Ferrari,et al.  Binding agent roles to environments: the R4R approach , 2008, 2008 International Symposium on Collaborative Technologies and Systems.

[15]  MengChu Zhou,et al.  Role-based collaboration and its kernel mechanisms , 2006, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).