Understanding Code Mobility

The technologies, architectures, and methodologies traditionally used to develop distributed applications exhibit a variety of limitations and drawbacks when applied to large scale distributed settings (e.g., the Internet). In particular, they fail in providing the desired degree of configurability, scalability, and customizability. To address these issues, researchers are investigating a variety of innovative approaches. The most promising and intriguing ones are those based on the ability of moving code across the nodes of a network, exploiting the notion of mobile code. As an emerging research field, code mobility is generating a growing body of scientific literature and industrial developments. Nevertheless, the field is still characterized by the lack of a sound and comprehensive body of concepts and terms. As a consequence, it is rather difficult to understand, assess, and compare the existing approaches. In turn, this limits our ability to fully exploit them in practice, and to further promote the research work on mobile code. Indeed, a significant symptom of this situation is the lack of a commonly accepted and sound definition of the term mobile code itself. This paper presents a conceptual framework for understanding code mobility. The framework is centered around a classification that introduces three dimensions: technologies, design paradigms, and applications. The contribution of the paper is two-fold. First, it provides a set of terms and concepts to understand and compare the approaches based on the notion of mobile code. Second, it introduces criteria and guidelines that support the developer in the identification of the classes of applications that can leverage off of mobile code, in the design of these applications, and, finally, in the selection of the most appropriate implementation technologies. The presentation of the classification is intertwined with a review of state-of-the-art in the field. Finally, the use of the classification is exemplified in a case study.

[1]  John Zahorjan,et al.  The challenges of mobile computing , 1994, Computer.

[2]  Dennis M. Volpano,et al.  Provably secure programming languages for remote evaluation , 1996, CSUR.

[3]  David K. Gifford,et al.  Implementing Remote Evaluation , 1990, IEEE Trans. Software Eng..

[4]  Mario Baldi,et al.  Evaluating the tradeoffs of mobile code design paradigms in network management applications , 1998, Proceedings of the 20th International Conference on Software Engineering.

[5]  George Cybenko,et al.  Mobile agents: the next generation in distributed computing , 1997, Proceedings of IEEE International Symposium on Parallel Algorithms Architecture Synthesis.

[6]  Munehiro Fukuda,et al.  Distributed Computing Using Autonomous Objects , 1996, Computer.

[7]  Jeffrey D. Case,et al.  Simple network management protocol , 1995 .

[8]  Claude Kaiser,et al.  CHORUS Distributed Operating System , 1988, Comput. Syst..

[9]  G.J. Minden,et al.  A survey of active network research , 1997, IEEE Communications Magazine.

[10]  Rodger Lea,et al.  COOL: system support for distributed programming , 1993, CACM.

[11]  John K. Ousterhout,et al.  The Safe-Tcl Security Model , 1998, USENIX Annual Technical Conference.

[12]  Adobe Press,et al.  PostScript Language Reference Manual , 1985 .

[13]  Mark Nuttall,et al.  A brief survey of systems providing process or object migration facilities , 1994, OPSR.

[14]  Pattie Maes,et al.  Agents that reduce work and information overload , 1994, CACM.

[15]  Steven Waldbusser Remote Network Monitoring Management Information Base , 1991, RFC.

[16]  Peter A. Gloor,et al.  DartFlow: A Workflow Management System on the Web using Transportable Agents , 1996 .

[17]  Jim White,et al.  Telescript technology: mobile agent , 1999 .

[18]  John V. Guttag,et al.  ANTS: a toolkit for building and dynamically deploying network protocols , 1998, 1998 IEEE Open Architectures and Network Programming.

[19]  Tomasz Imielinski,et al.  Mobile wireless computing: challenges in data management , 1994, CACM.

[20]  Jim Waldo,et al.  A Note on Distributed Computing , 1996, Mobile Object Systems.

[21]  Carlo Ghezzi,et al.  Analyzing Mobile Code Languages , 1996, Mobile Object Systems.

[22]  Michael R. Genesereth,et al.  Software agents , 1994, CACM.

[23]  Yechiam Yemini,et al.  Distributed management by delegation , 1995, Proceedings of 15th International Conference on Distributed Computing Systems.

[24]  Nicholas R. Jennings,et al.  Intelligent agents: theory and practice , 1995, The Knowledge Engineering Review.

[25]  Gregory D. Abowd,et al.  Using style to understand descriptions of software architecture , 1993, SIGSOFT '93.

[26]  Daniel M. Zimmerman,et al.  benefits and drawbacks of current Java mobile agent systems , 1997 .

[27]  Ernest J. H. Chang,et al.  Echo Algorithms: Depth Parallel Operations on General Graphs , 1982, IEEE Transactions on Software Engineering.

[28]  V. Trecordi,et al.  ORCHESTRA: an experimental agent-based service control architecture for broadband multimedia networks , 1996, Proceedings of GLOBECOM'96. 1996 IEEE Global Telecommunications Conference.

[29]  Keith McCloghrie,et al.  Structure of Management Information for version 2 of the Simple Network Management Protocol (SNMPv2) , 1993, RFC.

[30]  David Wong,et al.  Concordia: An Infrastructure for Collaborating Mobile Agents , 1997, Mobile Agents.

[31]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[32]  Holger Peine,et al.  The Architecture of the Ara Platform for Mobile Agents , 1999, Mobile Agents.

[33]  Gruia-Catalin Roman,et al.  Expressing code mobility in mobile UNITY , 1997, ESEC '97/FSE-5.

[34]  George Cybenko,et al.  Mobile agents for mobile computing , 1996 .

[35]  Carlo Ghezzi,et al.  Programming language concepts , 1982 .

[36]  Ellen W. Zegura,et al.  An architecture for active networking , 1997, HPN.

[37]  Giovanni Vigna,et al.  Designing Distributed Applications with Mobile Code Paradigms , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[38]  Winfried Lamersdorf,et al.  Agents, services, and electronic markets: how do they integrate? , 1996 .

[39]  Joel H. Saltz,et al.  Sumatra: A Language for Resource-Aware Mobile Programs , 1996, Mobile Object Systems.

[40]  Aaron Kershenbaum,et al.  Mobile Agents: Are They a Good Idea? , 1996, Mobile Object Systems.

[41]  Carlo Ghezzi,et al.  Mobile Code Paradigms and Technologies: A Case Study , 1997, Mobile Agents.

[42]  Jan Vitek,et al.  Mobile Object Systems Towards the Programmable Internet , 1996, Lecture Notes in Computer Science.

[43]  Andrew Birrell,et al.  Implementing remote procedure calls , 1984, TOCS.

[44]  Silvano Gai,et al.  Exploiting Code Mobility in Decentralized and Flexible Network Management , 1997, Mobile Agents.

[45]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[46]  Thomas Magedanz,et al.  Intelligent agents: an emerging technology for next generation telecommunications? , 1996, Proceedings of IEEE INFOCOM '96. Conference on Computer Communications.

[47]  Anthony Sang-Bum Park,et al.  A Multi-Agent Architecture Supporting Service Access , 1997, Mobile Agents.

[48]  Y. Yemini,et al.  The OSI network management model , 1993, IEEE Communications Magazine.

[49]  Luca Cardelli,et al.  Migratory applications , 1995, UIST '95.

[50]  Fritz Hohl,et al.  Communication Concepts for Mobile Agent Systems , 1997, Mobile Agents.

[51]  John K. Ousterhout,et al.  Tcl and the Tk Toolkit , 1994 .

[52]  José Legatheaux Martins,et al.  The CHORUS Distributed Operating System: Some Design Issues , 1987 .

[53]  Robbert van Renesse,et al.  An introduction to the TACOMA distributed system. Version 1.0 , 1995 .

[54]  Nathaniel S. Borenstein,et al.  EMail With A Mind of Its Own: The Safe-Tcl Language for Enabled Mail , 1994, ULPAA.

[55]  Greg Thiel,et al.  LOCUS operating system, a transparent system , 1991, Comput. Commun..

[56]  Munehiro Fukuda,et al.  Intra- and Inter-Object Coordination with MESSENGERS , 1996, COORDINATION.