The TACOMA Project Dag Johansen University of Tromso Dept. of Computer Science N-9037 Tromso, NORWAY Robbert van Renesse, Fred B. Schneider Cornell University Dept. of Computer Science Ithaca, NY, USA The TACOMA (Tromso And COrnell Moving Agents) project focuses on operating-system support for "agents", programs that traverse the hosts of a network in accomplishing some task. We are investigating efficient implementations of abstractions and services for agent-computing in a heterogeneous network having malicious hosts. Over the last three years, we have built a series of TACOMA system prototypes [JRS 95], which are publicly accessible (see http://www.cs.uit.no/DOS/Tacoma/). TACOMA is in daily use as a production platform and runs under HP-UX, Solaris, BSD Unix, and Linux. In contrast to other agent based approaches, TACOMA supports agents written in a variety of languages. Currently, these languages include C, Java, Perl, Scheme, Python, and Tcl/Tk. Also, we have developed schemes in which TACOMA agents can be launched from hosts that do not implement local TACOMA support but instead just have web browsers or regular mailers [JRS 96]. Surprisingly, just a few abstractions are sufficient to implement our basic computational metaphor: agents, folders (sets of uninterpreted data elements), and groups of folders (either as stationary file cabinets or movable briefcases). Services for agents -- communication, synchronization, and so on -- are provided directly by other agents. For example, an agent moves from one host to another by meeting with the "tac_firewall" agent on the destination host. The TACOMA "tac_firewall" agent logs the incoming briefcase to disk, performs security checks, and activates the appropriate compiler or interpreter to run the agent(s) found in the briefcase. We have already used TACOMA to implement distributed applications to gather and visualize Arctic weather data (see http://www.cs.uit.no/DOS/StormCast/), to provide matching between service providers and potential clients, to communicate and interact with users (i.e. active documents), and to manage software installation in a network. We find that agents are an attractive way to describe and implement network-wide computations. Currently, we are also investigating host-integrity issues, including the use of wrappers, whereby the TACOMA run-time system provides a firewall around an executing agent. Also, we are studying methods for replicating agents transparently to implement agent integrity [MRSS 96]. References [JRS 95] Johansen, D., R. van Renesse, and F.B. Schneider. Operating system support for mobile agents. Proc. Fifth Workshop on Hot Topics in Operating Systems (HOTOS-V), IEEE Press (May 1995), 42-45. [JRS 96] Johansen, D., R. van Renesse, and F.B. Schneider. Supporting Broad Internet Access to TACOMA. To appear, Proc. Seventh ACM SIGOPS European Workshop (September 1996). [MRSS] Minsky, Y., R. van Renesse, F.B. Schneider, and S.D. Stoller. Cryptographic Support for Fault-Tolerant Computing. To appear, Proc. Seventh ACM SIGOPS European Workshop (September 1996).