Sun's announcement of the programming language Java more than anything popularized the notion of mobile code, that is, programs traveling on a heterogeneous network and automatically executing upon arrival at the destination. We describe several classes of mobile code and extract their common characteristics, where security proves to be one of the major concerns. With these characteristics as reference points, we examine six representative languages proposed for mobile code. The conclusion of this study leads to our recommendations for future work, illustrated by examples of ongoing research. Additional Key Words and Phrases: Distribution, formal methods, Java, Limbo, mobile code, network programming, Objective Caml, Obliq, object orientation, portability, Safe-Tcl, safety, security, Telescript
WHY MOBILE CODE?The expression "mobile code" has various different meanings in the literature. Just to take three examples, let us cite the following.-The term mobile code describes any program that can be shipped unchanged to a heterogeneous collection of processors and executed with identical semantics on each processor [Adl-Tabatabai et al. 1996]. -Mobile code is an approach where programs are considered as documents, and should therefore be accessible, transmitted, and displayed (i.e., evaluated) as any other document [Rouaix 1996]. -Mobile agents are code-containing objects that may be transmitted between communicating participants in a distributed system [Knabe 1996].In this survey we refer to mobile code as software that travels on a heterogeneous network, crossing protection domains, and automatically executed upon arrival at the destination. Protection domains can be as big as a corporate network and as small as a personal hand-held digital assistant. We believe that this characterization is general enough to encompass most usages and This work was performed under the auspices of Dyade (an R&D joint venture between Bull and Inria). Author's address: T. Thorn, Inria/Irisa, Campus de Beaulieu, 35042 Rennes Cedex, France; email: ͗thorn@irisa.fr͘. Permission to make digital / hard copy of part or all of this work for personal or classroom use is granted without fee provided that the copies are not made or distributed for profit or commercial advantage, the copyright notice, the title of the publication, and its date appear, and notice is given that copying is by permission of the ACM, Inc. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and / or a fee. © 1997 ACM 0360-0300/97/0300-0213 $03.50 ACM Computing Surveys, Vol. 29, No. 3, September 1997 precise enough to exhibit the distinctive features of this technique. For example, it excludes the cases where code is loaded from a shared disk or downloaded (manually) from the Web.Mobile code supports a flexible form of distributed systems where the desired nonlocal computations need not be known in advance at the execution site. The advantages of this model are many, including: -Efficiency. When repe...