A TACOMA retrospective

Dag Johansen, K�re J. Lauvset, Robbert van Renesse, Fred B. Schneider, Nils P. Sudmann, Kjetil Jacobsen
2002 Software, Practice & Experience  
For seven years, the TACOMA project has investigated the design and implementation of software support for mobile agents. A series of prototypes has been developed, with experiences in distributed applications driving the effort. This paper describes the evolution of these TACOMA prototypes, what primitives each supports, and how the primitives are used in building distributed applications. Each version of TACOMA has provided a framework to support the execution of programs, called agents, that
more » ... migrate from host to host in a computer network. Giving an agent explicit control over where it executes is attractive for a variety of technical reasons, as detailed below. • Agent-based applications can make more efficient use of available communication bandwidth. An agent can move to a processor where data is stored, scanning or otherwise digesting the data locally, and then move on, carrying with it only some relevant subset of what it has read. By moving the computation to the data-rather than moving the data to the computationsignificant bandwidth savings may result. • Because agents invoke operations on servers locally (hence cheaply), it becomes sensible for servers to provide low-level RISC-style APIs. An agent can synthesize from such an API operations specifically tailored to its task. Contrast this with traditional client-server distributed computing where, because communications cost must be amortized over each server operation invocation, servers provide general-purpose high-level APIs. • Agents execute autonomously and do not require continuous connectivity to all servers where they execute. This makes the agent abstraction ideal for settings in which network connections are intermittent, such as wireless and other forms of ad hoc networks.
doi:10.1002/spe.451 fatcat:2lznpoi6s5fdhchos2cs57oj7u