Notes on the "Worm" programs --
some early experience with a distributed computation

by John F. Shoch and Jon A. Hupp

SSL-80-3 and IEN 159    May 1980, revised September 1980

(c) Xerox Corporation 1980

[Note:  This file, IEN-159.TXT, contains only the abstract from the
paper.  For a complete version of the paper, please send a message
to Shoch@Parc, or send a note to:
        SSL Publications Coordinator
        Xerox Parc
        3333 Coyote Hill Road
        Palo Alto, California 94304.
Alternatively, people who can print files in "Press" format may
directly retrieve [Maxc]<RFC>]

Abstract: The "Worm" programs were an experiment in the
development of distributed computations -- programs that would
span machine boundaries, and also replicate themselves in idle
machines.  A "worm" is composed of multiple "segments" each
running on a different machine.  The underlying worm maintenance
mechanisms were responsible for maintaining the worm -- finding
free machines when needed, and replicating the program for each
additional segment.  The worm control procedures require some
careful design, but this mechanism made each worm a very dynamic
and robust program.

These techniques were then used to support several real
applications, ranging from a simple multi-machine test program to a
more sophisticated real-time animation system harnessing multiple

The worm programs have helped to demonstrate that the tools are at
hand for experimenting with distributed computations.

CR Categories: 3.81.

Key words and phrases: Distributed computations, distributed
computing, multi-machine programs, Ethernet local network, Pup
internetwork architecture.

This paper is to be presented at the Workshop on Fundamental
Issues in Distributed Computing, ACM/SIGOPS and ACM/SIGPLAN,
Pala Mesa Resort, December 1980.