A programming language for service-oriented computing with mobile agents

We present MOB, a service-oriented scripting language, for programming mobile agents. We argue that combining the service-oriented and mobile agent paradigms provides a very natural model for programming a large class of distributed applications. In MOB, mobile agents in a network simultaneously provide and use services. The service interfaces constitute contracts that bind agents among themselves. The language features static type-checking to guarantee that contracts are respected at run-time. Other language features, such as redundant service providers, allow a certain degree of fault-tolerance by allowing applications to switch servers dynamically in case a failure is detected (e.g. a server crash). For these reasons, the target applications we envision more interesting to develop using MOB are services for networks with highly dynamic, volatile resources or simply highly adaptive, reconfigurable applications for more classical networks. The paper presents MOB and its implementation from an application programmer's and a systems developer's view. Copyright © 2007 John Wiley & Sons, Ltd.

[1]  David S. Platt,et al.  Introducing Microsoft® .NET , 2001 .

[2]  Son K. Dao,et al.  A "persistent connection" model for mobile and distributed systems , 1995, Proceedings of Fourth International Conference on Computer Communications and Networks - IC3N'95.

[3]  Xiliang Zhong,et al.  A reliable connection migration mechanism for synchronous transient communication in mobile codes , 2004 .

[4]  Rocco De Nicola,et al.  Klava: a Java package for distributed and mobile applications , 2002, Softw. Pract. Exp..

[5]  Sylvain Conchon,et al.  Jocaml: mobile agents for Objective-Caml , 1999, Proceedings. First and Third International Symposium on Agent Systems Applications, and Mobile Agents.

[6]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[7]  Marc Lacoste,et al.  An Abstract Machine for a Higher-Order Distributed Process Calculus , 2002, Electron. Notes Theor. Comput. Sci..

[8]  Vasco Thudichum Vasconcelos,et al.  Typed Concurrent Objects , 1994, ECOOP.

[9]  Viktor Vafeiadis,et al.  Acute: high-level programming language design for distributed computation , 2005, ICFP '05.

[10]  Jim Waldo,et al.  The Jini architecture for network-centric computing , 1999, CACM.

[11]  Peter Sewell,et al.  Nomadic Pict: language and infrastructure design for mobile agents , 2000, IEEE Concurr..

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

[13]  Mario Tokoro,et al.  An Object Calculus for Asynchronous Communication , 1991, ECOOP.

[14]  Hideyuki Tokuda,et al.  TCP-R: TCP mobility support for continuous operation , 1997, Proceedings 1997 International Conference on Network Protocols.

[15]  Hervé Paulino,et al.  A Multi-threaded Asynchronous Language , 2003, PaCT.

[16]  Hervé Paulino,et al.  A Mobile Agent Service-Oriented Scripting Language Encoded on a Process Calculus , 2006, JMLC.

[17]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[18]  Hervé Paulino,et al.  Mob: A Scripting Language for Mobile Agents Based on a Process Calculus , 2003, ICWE.

[19]  Fernando M. A. Silva,et al.  Distribution and Mobility with Lexical Scoping in Process Calculi , 1998, Electron. Notes Theor. Comput. Sci..

[20]  Alan Schmitt,et al.  The m-calculus: a higher-order distributed process calculus , 2003, POPL '03.

[21]  G. Plotkin,et al.  Proof, language, and interaction: essays in honour of Robin Milner , 2000 .

[22]  Hervé Paulino,et al.  A service-oriented language for programming mobile agents , 2006, AAMAS '06.

[23]  Álvaro Figueira,et al.  A Concurrent Programming Environment with Support for Distributed Computations and Code Mobility , 2000, CLUSTER.

[24]  Andrew Warfield,et al.  Xen and the art of virtualization , 2003, SOSP '03.

[25]  Rocco De Nicola,et al.  Mobile Distributed Programming in X-Klaim , 2005, SFM.

[26]  Liviu Iftode,et al.  Migratory TCP: connection migration for service continuity in the Internet , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[27]  Danny B. Lange,et al.  Programming and Deploying Java¿ Mobile Agents with Aglets¿ , 1998 .

[28]  SchmittAlan,et al.  The m-calculus , 2003 .

[29]  Benjamin C. Pierce,et al.  Pict: a programming language based on the Pi-Calculus , 2000, Proof, Language, and Interaction.

[30]  Álvaro Figueira,et al.  Distributed Typed Concurrent Objects: a Programming Language for Distributed Computations with Mobile Resources , 2003, J. Univers. Comput. Sci..