Separation of Concerns in Mobile Agent Applications
Using mobile agent systems, cooperative distributed applications that run over the Internet can be constructed flexibly.However, there are some problems: it is difficult to understand collaborations among agents and travels of individual agents as a whole because mobility/collaboration functions tend to be intertwined in the code; it is difficult to define behaviors of agents explicitly because they are influenced by their external context dynamically.Man y aspects of mobility/ collaboration strategies including traveling, coordination constraints, synchronization constraints and security-checking strategies should be considered when mobile agent applications are constructed.
In this paper, the concept of RoleEP(Role Based Evolutionary Programming) is proposed in order to alleviate these problems.In RoleEP, a field where a group of agents roam around hosts and collaborate with each other is regarded as an environment and mobility/collaboration functions that an agent should assume in an environment are defined as roles. An object becomes an agent by binding itself to a role that is defined in an environment, and acquires mobility/collaboration functions dynamically. RoleEP provides a mechanism for separating concerns about mobility/collaboration into environments and a systematic evolutionary programming style.Distributed applications based on mobile agent systems, which may change their functions dynamically in order to adapt themselves to their external context, can be constructed by synthesizing environments dynamically.
KeywordsMobile Agent Information Searcher Mobility Function External Context Role Class
Unable to display preview. Download preview PDF.
- 1.Akist, M. and Tripathi, A.: Data Abstraction Mechanisms in Sina/ST, Proceedings of the Conference on Object-Oriented Programming Systems, Language, and Applications (OOPSLA’88), pp.265–275, 1988.Google Scholar
- 3.Aridor, Y. and Lange, D.B.: Agent design patterns: Elements of agent application design, Proceedings of Agents’98, 1998.Google Scholar
- 4.Asp ectJ. http://aspectj.org/.
- 5.Bardou, D. and Dony, C.: Split Objects: a Disciplined Use of Delegation within Objects, Proceedings of the Conference on Object-Oriented Programming Systems, Language, and Applications (OOPSLA’96), pp.122–137, 1996.Google Scholar
- 6.Bardou, D.: Roles, Subjects and Aspects: How do they relate?, Proceedings of the Aspect-Oriented Programming Workshop at ECOOP’98, 1998.Google Scholar
- 7.Cardelli, L. and Gordon, A.D.: Mobile Ambients (Extended Abstract), the proceedings of the workshop on Higher Order Operational Techniques in Semantics, 1997.Google Scholar
- 8.Czarnecki, K. and Eisenecker, U.W.: Generative Programming, Addison-Wesley, 2000.Google Scholar
- 9.Fowler, M.: Dealing with Roles, Proceedings of the 4th Annual Conference on Pattern Languages of Programs, 1997.Google Scholar
- 11.Gamma, E., Helm, R., Johnson, R., and Vlissides, J.: Design Patterns, Addison-Wesley Publishing Company, Inc., 1995.Google Scholar
- 12.Genesereth, M.R. and Ketchpel, S.P.: Software Agents, Communications of the ACM, vol.37, No.7, pp.48–53, 1994.Google Scholar
- 14.Harrison, W. and Ossher, H.: Subject-oriented Programming, Proceedings of the 8th Conference on Object-Oriented Programming Systems, Language, and Applications (OOPSLA’93), pp.411–428, 1993.Google Scholar
- 15.IBM: Aglets Software Development Kit Home Page, http://www.trl.ibm.co.jp/aglets/index.html, 1999.
- 16.Kendall, E.A.: Role Model Designs and Implementations with Aspect-oriented Programming, Proceedings of the Conference on Object-Oriented Programming Systems, Language, and Applications (OOPSLA’99), pp.353–369, 1999.Google Scholar
- 17.Kiczales, G., Lamping, J., Mendhekar A., Maeda, C., Lopes, C., Loingtier, J., and Irwin, J.: Aspect-Oriented Programming, Proceedings of the European Conference on Object-Oriented Programming (ECOOP’97), Lecture Notes in Computer Science, Springer, vol.1241, pp.220–242, 1997.Google Scholar
- 18.Kiniry, J. and Zimmerman, D.: A Hands-On Look at Java Mobile Agents, IEEE Internet Computing, vol.1, No.4, 1997.Google Scholar
- 19.Kristensen, B.B.: Object-oriented Modeling with Roles, Proceedings of the 2nd International Conference on Object-oriented Information Systems (OOIS’95), 1996.Google Scholar
- 20.Kristensen, B.B. and Osterbye, K.: Roles: Conceptual Abstraction Theory and Practical Language Issues, Special Issue of Theory and Practice of Object Systems (TAPOS) on Subjectivity in Object-oriented Systems, 1996.Google Scholar
- 21.Kristensen, B.B. and May, D.C.M.: Activities: Abstractions for Collective Behavior, Proceedings of the European Conference on Object-Oriented Programming (ECOOP’96), Lecture Notes in Computer Science, Springer, vol.1098, pp.472–501, 1996.Google Scholar
- 22.Lange, D. and Oshima M.: Programming and Deploying Java Mobile Agents with Aglets, Addison-Wesley, 1998.Google Scholar
- 23.Mezini, M., Seiter, L. and Lieberherr, K.: Component Integration with Pluggable Composite Adapters, Software Architectures and Component Technology: The State of the Art in Research and Practice, Mehmet Aksit, editor, Kluwer Academic Publishers, 2000.Google Scholar
- 24.Murillo, J.M., Hernandez, J., Sanchez, F., and Alvarez, L.A.: Coordinated Roles: Promoting Re-usability of Coordinated Active Objects Using Event Notification Protocols, COORDINATION’99 Proceedings, pp.53–68, 1999.Google Scholar
- 26.Smith, R.B. and Ungar, D.: Programming as an Experience: The Inspiration for Self, Proceedings of the European Conference on Object-Oriented Programming (ECOOP’95), Lecture Notes in Computer Science, Springer, vol.952, pp.303–330, 1995.Google Scholar
- 28.Ubayashi, N. and Tamai, T.: An Evolutional Cooperative Computation Based on Adaptation to Environment, Proceedings of Sixth Asia Pacific Software Engineering Conference (APSEC’99), IEEE Computer Society, pp.334–341, 1999.Google Scholar
- 29.VanHilst, M. and Notkin, D.: Using Role Components to Implement Collaboration-Based Designs, Proceedings of the Conference on Object-Oriented Programming Systems, Language, and Applications (OOPSLA’96), pp.359–369Google Scholar