TacomaOS (The old version)

Introduction

The TacomaOS (TOS) is a lightweight mobile code platform. TacomaOS is implemented in Java and support mobile entities, called carriers, that are written in Java. The name carrier is motivated by the intended usage of carrying software written in any language among computers for installation, execution or other purposes.

There are two references associated with every carrier, which move along when the carrier moves. First, the path is an ordered list of hosts which the carrier will visit. Second, the data is a hashtable structure where serializable objects can be stored.

Application programmers are supposed to implement subclasses of the tos.Carrier class. These subclasses must provide implementations of the method begin before they can be instantiated. The begin method is the entry point of the carrier and is executed at every site the carrier visits. When the begin method returns, the TOS runtime system moves the carrier according to its path.

Example 1: The "Hello, world" carrier

The example shows a very simple carrier, which only purpose is to display the message "Hello, world". This carrier does not set or update its path, it is left to the application launching the Hello carrier (example 2).
public class Hello extends Carrier {
  public void begin {
    System.out.println("Hello, world");
  }
}

Example 2: Launching the "Hello, world" carrier

The example shows how the typical steps involved in launching a carrier into the network. These steps include instantiating the carrier, setting its path, launching and error checking. The Shell instance represent the runtime context of the carrier. After the start method in the shell has been issued, the carrier is transferred to the first host in its path, where it is executed.
...
Carrier ca = new Hello();
ca.path.addElement("host0");
ca.path.addElement("host2");
...
Shell sh = new Shell(ca);
sh.start();
sh.join();
if (sh.status() != null)
  sh.status().printStackTrace();
...

Publications

Distribution



Kåre Jørgen Lauvset [kaare@cs.uit.no]