Scalable PlatfoRm for movINg Software (SPRINGS)

Sergio Ilarri <>
University of Zaragoza

Raquel Trillo <>
University of Zaragoza

Eduardo Mena <>
University of Zaragoza


In the recent years, mobile agents (MAs) have arised as a promising paradigm to build distributed applications. They provide a range of advantages, specially in pervasive and mobile environments. Thus, autonomy, load balancing, performance and flexibility are some of the benefits inherently associated to the use of mobile agents. However, we have found that most of these platforms do not perform efficiently nor reliably in environments with highly mobile and cooperative agents, specially when the number of agents increases. Thus, the development of a new MA platform is strongly motivated by needs detected in our research projects, where we frequently use mobile agent technology to build distributed applications. Thus, we propose SPRINGS (Scalable PlatfoRm for movINg Software), a novel MA platform featuring location transparency, automatic update of proxies, and scalability. Besides, livelock problems are minimized. The API of this platform is available here (updated on January 13, 2006). Our experimental study has proven the interest and usefulness of SPRINGS.


This project started with a Master Thesis number 42 by Alejandro Espín (, who developed a platform of mobile agents called Sping (finished on August 30, 2004). Although we have used some of the ideas of this initial project, we have re-implemented and re-design it completely from scratch. As a reference, we keep the API of Sping here, and more details about this seminal project can be obtained from the author. Among many other important changes, our new architecture and implementation simplifies the process of launching a new context, adds a mechanism for the remote loading of classes, deals with livelock problems, implement an efficient proxy update mechanism, and removes the use of LDAP (which was proved to be a bottleneck) and hash functions to assign trackers to agents. Also, we provide true location transparency: the programmer can survive without URLs and port numbers! Some features of Sping (such as persistency) are missing in the current project and will be the subject of future work. On the contrary, the new architecture is much more reliable.


Some Features

  1. Real location transparency! You don't need to specify the classical URL/port to contact an agent: our naming service does it for you! Besides, references to agents are automatically updated by the system: the reference will continue to be valid even if the holder or the target agent move.

  2. An automatic mechanism to deal with errors (retrying automatically according to a specified policy). This mechanism is implemented for: searching of agents, movements of agents, and remote communications
  3. Management of agent's schedules
  4. Message passing, support for synchronous and asynchronous operations
  5. A rich API aimed at easing the programmer's task (e.g. it includes a wide variety of methods for agents to travel (e.g. using a callback method or not). The API takes the best of many existing mobile agent platforms and add new of our own

Under Work (Private Documents, Password Protected)

SPRINGS in PDAs: experimental report.

SPRINGS in PDAs: paper-style summary.

Other tasks: Notes.

More tasks: More notes.

Others: MASIF Notes.

Papers of interest for the developers of SPRINGS: private page.

Google Doc With To-Do tasks.

Some Detailed Notes

  1. The constructor of a SpringsAgent_RMIImpl must capture RemoteException (because a SPRINGS agent is a remote RMI object and, therefore, its constructor can throw that exception).

  2. Class AgentReference refers to the classical concept of proxy used in some MA platforms.

  3. The programmer is responsible for terminating the agent's thread after a moveTo, as it is the case in other MA platforms.


  1. SPRINGS Programming Manual (v 1.0, October 10, 2006) .
  2. API of SPRINGS (updated on January 13, 2006) .
  3. Publications related to SPRINGS.


    If you would like to try it, please send us an email!

We thank Josť Ilarri for the logo.

Last update: November 19, 2008