This Article 
 Bibliographic References 
 Add to: 
Understanding Code Mobility
May 1998 (vol. 24 no. 5)
pp. 342-361

Abstract—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] G.H. Forman and J. Zahorjan, “The Challenges of Mobile Computing,” Computer, pp. 38-47, Apr. 1994.
[2] T. Imielinski and B.R. Badrinath, “Wireless Computing: Challenges in Data Management,” Comm. ACM, vol. 37, no. 10, Oct. 1994.
[3] Object Management Group, CORBA: Architecture and Specification. Aug. 1995.
[4] A. Carzaniga, G.P. Picco, and G. Vigna, "Designing Distributed Applications with Mobile Code Paradigms," Proc. 19th Conf. Software Eng. (ICSE'97), R. Taylor, ed., pp. 22-32, ACM Press, 1997.
[5] J.K. Boggs, "IBM Remote Job Entry Facility: Generalize Subsystem Remote Job Entry Facility," IBM Technical Disclosure Bulletin 752, IBM, Aug. 1973.
[6] Adobe Systems Inc., PostScript Language Reference Manual. Addison-Wesley, 1985.
[7] M. Nuttall, "Survey of Systems Providing Process or Object Migration," Technical Report Doc 94/10, Dept. of Computing, Imperial College, May 1994.
[8] G. Thiel, "Locus Operating System, A Transparent System," Computer Comm., vol. 14, no. 6, pp. 336-346, 1991.
[9] E. Jul, H. Levy, N. Hutchinson, and A. Black, “Fine-Grained Mobility in the Emerald System,” ACM Trans. Computer Systems, vol. 6, no. 1, pp. 109–133, Feb. 1988.
[10] R. Lea, C. Jacquemont, and E. Pillevesse, "COOL: System Support for Distributed Object-Oriented Programming," Comm. ACM, vol. 36, no. 9, pp. 37-46, Nov. 1993.
[11] M. Rozier, V. Abrossimov, F. Armand, I. Boule, M. Gien, M. Guillemont, F. Herrmann, C. Kaiser, P. Leonard, S. Langlois, and W. Neuhauser, "Chorus Distributed Operating Systems," Computing Systems, vol. 1, pp. 305-379, Oct. 1988.
[12] C.G. Harrison, D.M. Chess, and A. Kershenbaum, "Mobile Agents: Are They a Good Idea?" Mobile Object Systems: Toward the Programmable Internet, vol. 1,222 of Lecture Notes in Computer Science, J. Vitek and C. Tschudin, eds., Springer-Verlag, New York, 1997, pp. 25-47.
[13] L.F. Bic, M. Fukuda, and M.B. Dillencourt, “Distributed Computing Using Autonomous Objects,” Computer, Aug. 1996.
[14] J.W. Stamos and D.K. Gifford, "Implementing Remote Evaluation," IEEE Trans. Software Eng., vol. 16, no. 7, pp. 710-722, July 1990.
[15] A. Birrell and B. Nelson, "Implementing Remote Procedure Calls," ACM Trans. Computer Systems," vol. 2, pp. 39-59, 1984.
[16] E.J.H. Chang, "Echo Algorithms: Depth Parallel Operations on General Graphs," IEEE Trans. Software Eng., July 1982.
[17] D. Johansen, R. van Renesse, and F.B. Schneider, "An Introduction to the TACOMA Distributed System—Version 1.0," Technical Report 95-23, Dept. of Computer Science, Univ. of Tromsøand Cornell Univ., Tromsø, Norway, June 1995.
[18] A.S. Park and S. Leuker, "A Multi-Agent Architecture Supporting Services Access," Rothermel and Popescu-Zeletin [72], pp. 62-73.
[19] J.E. White, "Telescript Technology: Mobile Agents," Software Agents, J. Bradshaw, ed. AAAI Press/MIT Press, 1996.
[20] P. Maes, "Agents That Reduce Work and Information Overload," Comm. ACM, Vol. 37, No. 7, July 1994, p. 31-40.
[21] M. Genesereth and S. Ketchpel, "Software Agents," Comm. ACM, July 1994, pp. 48-53.
[22] M. Wooldridge and N.R. Jennings, "Intelligent Agents: Theory and Practice," Knowledge Eng. Rev., vol. 10, no. 2, June 1995.
[23] F.C. Knabe, "Language Support for Mobile Agents," PhD thesis, Carnegie Mellon Univ., Pittsburgh, Penn., Dec. 1995. Also available as Carnegie Mellon School of Computer Science Technical Report CMU-CS-95-223 and European Computer Industry Centre Technical Report ECRC-95-36.
[24] H. Peine and T. Stolpmann, "The Architecture of the Ara Platform for Mobile Agents," Rothermel and Popescu-Zeletin [72], pp. 50-61.
[25] D. Wong et al. “Concordia: An Infrastructure for Collaborating Mobile Agents,” Proc. First Int'l Workshop Mobile Agents (MA '97), Apr. 1997.
[26] M. Fukuda, L. Bic, M. Dillencourt, and F. Merchant, "Intra- Inter-Object Coordination with MESSENGERS," First Int'l Conf. Coordination Models and Languages (COORDINATION'96), 1996.
[27] J. Kiniry and D. Zimmerman, "A Hands-On Look at Java Mobile Agents," IEEE Internet Computing, vol. 1, no. 4, pp. 21-30, 1997.
[28] D. Volpano, "Provably-Secure Programming Languages for Remote Evaluation," ACM Computing Surveys, vol. 28A, Dec. 1996. Participation statement for ACM Workshop on Strategic Directions in Computing Research.
[29] G. Cugola, C. Ghezzi, G. Picco, and G. Vigna, "Analyzing Mobile Code Languages," Mobile Object Systems: Towards the Programmable Internet, J. Vitek and C. Tschudin, eds., Lecture Notes in Computer Science, 1222, pp. 93-111, Springer-Verlag, Apr. 1997.
[30] R.S. Gray, "Agent Tcl: A Transportable Agent System," Proc. CIKM Workshop on Intelligent Information Agents,Baltimore, Md., Dec. 1995.
[31] B. Thomsen, L. Leth, S. Prasad, T.-M. Kuo, A. Kramer, F.C. Knabe, and A. Giacalone, "Facile Antigua Release Programming Guide," Technical Report ECRC-93-20, European Computer Industry Research Centre,Munich, Germany, Dec. 1993.
[32] Sun Microsystems, "The Java Language: An Overview," Technical Report, Sun Microsystems, 1994.
[33] D.B. Lange, "Java Aglets Application Programming Interface (J-AAPI)," IBM Corp. white paper, Feb. 1997.
[34] D.B. Lange and D.T. Chang, "IBM Aglets Workbench—Programming Mobile Agents in Java," IBM Corp. white paper, Sept. 1996.
[35] C. Tschudin, An Introduction to theM0Messenger Language, Univ. of Geneva, Switzerland, 1994.
[36] C. Tschudin, "OO-Agents and Messengers," ECOOP'95 Workshop W10 on Objects and Agents, Aug. 1995.
[37] M. Straßer, J. Baumann, and F. Hohl, "Mole—A Java Based Mobile Agent System," Special Issue Object-Oriented Programming: Workshop Reader of the 10th European Conf. Object-Oriented Programming ECOOP'96, M. Mühlaüser, ed., pp. 327-334, July 1996, dpunkt.
[38] J. Baumann, F. Hohl, N. Radouniklis, K. Rothermel, and S. Strafier, “Communication Concepts for Mobile Agent Systems,” Proc. First Int'l Workshop Mobile Agents, Apr. 1997.
[39] J. Hogg, "Island: Aliasing Protection in Object-Oriented Languages," Proc. OOPSLA'91, 1991.
[40] L. Cardelli, "A Language with Distributed Scope," Computing Systems, vol. 8, no. 1, pp. 27-59, 1995.
[41] N. Borenstein, "EMail with A Mind of Its Own: The Safe-Tcl Language for Enabled Mail," technical report, First Virtual Holdings, Inc, 1994.
[42] J. Ousterhout, Tcl and the Tk Toolkit, Addison Wesley Longman, Reading, Mass., 1994.
[43] J.K. Ousterhout, J.Y. Levy, and B.B. Welch, "The Safe-Tcl Security Model," Tech. Report TR-97-60, Sun Microsystems Laboratories, 1997; available at.
[44] A. Acharya, M. Ranganathan, and J. Saltz, "Sumatra: A Language for Resource-Aware Mobile Programs," Vitek and Tschudin [73], pp. 111-130.
[45] M. Shaw and D. Garlan, Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996.
[46] G. Abowd, R. Allen, and D. Garlan,“Using style to understand descriptions of software architecture,”inProc. First ACM SIGSOFT Symp. Foundations of Software Eng., Dec. 1993.
[47] J. Waldo et al., A Note on Distributed Computing, tech. report SMLI TR-94-29, Sun Microsystems Laboratories, Mountain View, Calif., 1994; .
[48] G.P. Picco, G.-C. Roman, and P.J. McCann, "Expressing Code Mobility in Mobile UNITY," Proc. Sixth European Software Eng. Conf. held jointly with the Fifth ACM SIGSOFT Symp. Foundations of Software Eng. (ESEC/FSE'97), M. Jazayeri and H. Schauer, eds., Zürich, Switzerland, Sept. 1997, Lecture Notes in Computer Science 1301, pp. 500-518. Springer-Verlag.
[49] C. Ghezzi and G. Vigna, “Mobile Code Paradigms and Technologies: A Case Study,” K. Rothermel and R. Popescu-Zeletin, eds., Proc. First Int'l Workshop Mobile Agents (MA '97), 1997.
[50] M. Baldi, S. Gai, and G.P. Picco, "Exploiting Code Mobility in Decentralized and Flexible Network Management," Rothermel and Popescu-Zeletin [72], pp. 13-26.
[51] K.A. Bharat and L. Cardelli, "Migratory Applications," Technical Report 138, Digital Equipment Corp., Systems Research Center, Feb. 1996.
[52] Mobile Agents and Security, G. Vigna, ed., Lecture Notes in Computer Science, State-of-the-Art Survey, vol. 1419. Springer-Verlag, 1998.
[53] P. Knudsen, "Comparing Two Distributed Computing Paradigms—A Performance Case Study," MS thesis, Univ. of Tromsø, 1995.
[54] A. Limongiello, R. Melen, M. Roccuzzo, A. Scalisi, V. Trecordi, and J. Wojtowicz, "ORCHESTRA: An Experimental Agent-Based Service Control Architecture for Broadband Multimedia Networks," GLOBAL Internet'96, Nov. 1996.
[55] T. Magedanz, K. Rothermel, and S. Krause, "Intelligent Agents: An Emerging Technology for Next Generation Telecommunications?" INFOCOM'96,San Francisco, Mar. 1996.
[56] R.S. Gray, D. Kotz, S. Nog, D. Rus, and G. Cybenko, "Mobile Agents for Mobile Computing," Proc. Second Aizu Int'l Symp. Parallel Algorithms/Architectures Synthesis,Fukushima, Japan, Mar. 1997.
[57] Y. Yemini, "The OSI Network Management Model," IEEE Comm., pp. 20-29, May 1993.
[58] G. Goldszmidt and Y. Yemini, "Distributed Management by Delegation," Proc. 15th Int'l Conf. Distributed Computing, June 1995.
[59] T. Cai, P. Gloor, and S. Nog, "DataFlow: A Workflow Management System on the Web Using Transportable Agents," Technical Report TR96-283, Dept. of Computer Science, Dartmouth College, Hanover, N.H., 1996.
[60] D.L. Tennenhouse, J.M. Smith, W.D. Sincoskie, D.J. Wetherall, and G.J. Minden, “A Survey of Active Network Research,” IEEE Comm. Magazine, vol. 35, no. 1, pp. 80-86, Jan. 1997.
[61] Y. Yemini and S. da Silva, "Towards Programmable Networks," IFIP/IEEE Int'l Workshop Distributed Systems: Operations and Management,L'Aquila, Italy, Oct. 1996.
[62] S. Bhattacharjee, K.L. Calvert, and E.W. Zegura, "An Architecture for Active Networking," High Performance Networking (HPN'97), Apr. 1997.
[63] D.J. Wetherall, J. Guttag, and D.L. Tennenhouse, "ANTS: A Toolkit for Building and Dynamically Deploying Network Protocols," Technical Report, MIT, 1997, in Proc. OPENARCH'98.
[64] J.E. White, "Telescript Technology: The Foundation for the Electronic Marketplace," Technical Report, General Magic, Inc., 1994, white paper.
[65] M. Merz and W. Lamersdorf, "Agents, Services, and Electronic Markets: How Do They Integrate?" Proc. Int'l Conf. Distributed Platforms, IFIP/IEEE, 1996.
[66] M. Baldi and G.P. Picco, “Evaluating the Tradeoffs of Mobile Code Design Paradigms in Network Management Applications,” Proc. Conf. Software Eng., pp. 146-155, Apr. 1998.
[67] J.D. Case, M. Fedor, M. L. Schoffstall, and C. Davin, "Simple Network Management Protocol," RFC 1157, May 1990.
[68] OSI, "ISO 9595 Information Technology, Open System Interconnection, Common Management Information Protocol Specification," 1991.
[69] J.D. Case, K. McCloghrie, M. Rose, and S. Waldbusser, "Structure of Management Information for Version 2 of the Simple Network Management Protocol," RFC 1902, Jan. 1996.
[70] S. Waldbusser, "Remote Network Monitoring Management Information Base," RFC 1757, Feb. 1995.
[71] C. Ghezzi and M. Jazayeri, Programming Language Concepts, third edition. John Wiley&Sons, 1997.
[72] Mobile Agents: First Int'l Workshop MA'97, K. Rothermel and R. Popescu-Zeletin, eds., Lecture Notes in Computer Science 1219. Springer-Verlag, Apr. 1997.
[73] Mobile Object Systems: Towards the Programmable Internet, J. Vitek and C. Tschudin, eds., Lecture Notes in Computer Science 1222. Springer-Verlag, Apr. 1997.

Index Terms:
Mobile code, mobile agent, distributed application, design paradigm.
Alfonso Fuggetta, Gian Pietro Picco, Giovanni Vigna, "Understanding Code Mobility," IEEE Transactions on Software Engineering, vol. 24, no. 5, pp. 342-361, May 1998, doi:10.1109/32.685258
Usage of this product signifies your acceptance of the Terms of Use.