Portable Resource Reification in Java-Based Mobile Agent Systems
Resource awareness is an important step towards the realization of adaptable software, something which is particularly desirable in the context of mobile code and mobile agent environments. Since resources (CPU, memory, network bandwidth, etc.) are not available and manipulable as first-class entities in standard programming models, such as in the Java language, some kind of reification seems indispensable. This is however diffcult to achieve, especially if portability is a requirement. In this paper we describe a mobile agent execution environment that reifies several aspects of both the execution environment itself and of the mobile agents it hosts. We explain how resources consumed by an agent are reified directly from the agent code. Performance measurements show that our approach incurs only moderate overhead.
KeywordsMobile Agent Network Bandwidth Execution Environment Resource Control Java Virtual Machine
Unable to display preview. Download preview PDF.
- G. Back, W. Hsieh, and J. Lepreau. Processes in KaffeOS: Isolation, resource management, and sharing in Java. In Proceedings of the Fourth Symposium on Operating Systems Design and Implementation (OSDI’2000), San Diego, CA, USA, Oct. 2000.Google Scholar
- J. Baumann. Control Algorithms for Mobile Agents. PhD thesis, University of Stuttgart, Germany, 1999.Google Scholar
- W. Binder. Design and implementation of the J-SEAL2 mobile agent kernel. In The 2001 Symposium on Applications and the Internet (SAINT-2001), San Diego, CA, USA, Jan. 2001.Google Scholar
- W. Binder, J. Hulaas, A. Villazón, and R. Vidal. Portable resource control in Java: The J-SEAL2 approach. In ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’01), Tampa Bay, Florida, USA, Oct. 2001.Google Scholar
- G. Blair, G. Coulson, P. Robin, and M. Papathomas. An Architecture for Next Generation Middleware. In N. Davies, K. Raymond, and J. Seitz, editors, IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing (Middleware’98), Lake District, UK, 1998. Springer-Verlag.Google Scholar
- J. Bredin, D. Kotz, and D. Rus. Market-based resource control for mobile agents. In Second International Conference on Autonomous Agents, Minneapolis,USA, May 1998.Google Scholar
- C. Bryce and J. Vitek. The JavaSeal mobile agent kernel. In First International Symposium on Agent Systems and Applications (ASA’99)/Third International Symposium on Mobile Agents (MA’99), Palm Springs, CA, USA, Oct. 1999.Google Scholar
- S. Chiba. Load-time structural reflection in Java. In ECOOP, pages 313–336, 2000.Google Scholar
- M. F. Costa, H. Duran, N. Parlavantzas, K. Saikoski, G. Blair, and G. Coulson. The Role of Reflective Middleware in Supporing the Engineering of Complex Applications. In W. Cazzola, R. Stroud, and F. Tisato, editors, OOPSLA’99, Workshop on Object-Oriented Reflection and Software Engineering, Denver, Colorado, USA, Nov. 1999.Google Scholar
- G. Czajkowski and T. von Eicken. JRes: A resource accounting interface for Java. In OOPSLA-98, pages 21–35, New York, USA, Oct. 18–22 1998. ACM Press.Google Scholar
- M. Dahm. Byte code engineering. In Java-Information-Tage 1999 (JIT’99), Sept. 1999. http://bcel.sourceforge.net/.
- J. Gosling, B. Joy, and G. L. Steele. The Java Language Specification. The Java Series. Addison-Wesley, Reading, MA, USA, 1996.Google Scholar
- T. Ledoux and N. Bouraqadi-Saâdani. Adaptability in mobile agent systems using reflection. In ECOOP 2000, Workshop on Reflection and Metalevel Architectures, Cannes, France, 2000.Google Scholar
- T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley, Reading, MA, USA, second edition, 1999.Google Scholar
- P. Maes. Concepts and experiments in computation reflection. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’87), Orlando, Florida, USA, Oct. 1987.Google Scholar
- H. Okamura, Y. Ishikawa, and M. Tokoro. AL-1/D: A distributed programming sysyem with multi-model reflection framework. In Workshop on New Models for Software Architecture, Nov. 1992.Google Scholar
- N. Suri, J. M. Bradshaw, M. R. Breedy, P. T. Groth, G. A. Hill, R. Jeffers, T. S. Mitrovich, B. R. Pouliot, and D. S. Smith. NOMADS: toward a strong and safe mobile agent system. In C. Sierra, G. Maria, and J. S. Rosenschein, editors, Proceedings of the 4th International Conference on Autonomous Agents (AGENTS-00), pages 163–164, NY, June 3–7 2000. ACM Press.Google Scholar
- M. Tatsubori. An Extension Mechanism for the Java Language. Master’s thesis, Graduate School of Engineering, University of Tsukuba, Ibaraki, Japan, Feb. 1999.Google Scholar
- The Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks. Web pages at http://www.spec.org/osg/jvm98/, 1998.
- C. F. Tschudin. Funny money arbitrage for mobile code. In Proceedings of the Second Dartmouth Workshop on Transportable Agents, Sept. 1997.Google Scholar
- C. F. Tschudin. Open resource allocation for mobile code. In Proceedings of The First Workshop on Mobile Agents, Berlin, Germany, Apr. 1997.Google Scholar
- J. Vitek and G. Castagna. Seal: A framework for secure mobile computations. In Internet Programming Languages, 1999.Google Scholar
- T. Watanabe, A. Noriki, and K. Shinbori. A Reflective Framework for Reliable Mobile Agent. In ECOOP 2000, Workshop on Reflection and Metalevel Architectures, Cannes, France, 2000.Google Scholar
- I. Welch and R. J. Stroud. Using reflection as a mechanism for enforcing security policies in mobile code. In ESORICS, pages 309–323, 2000.Google Scholar