Algorithms implemented in the code of aglets enable them to make local decisions on what to do, where to go and when to go. Multiple aglets can be dispatched simultaneously to accomplish various parts of a task in parallel. The aglet runtime layer API is provided by a graphically enabled aglet server, called Tahiti, which provides basic functionality such as creation, dispatch and disposal of aglets.
Aglets use an event-driven model to listen for aglet mobility events.
When an event occurs, a method of the corresponding eventlistener object is invoked to perform housekeeping chores either before or after the aglet movement, as shown in Figure . Access by aglets to the basic functionality and runtime interfaces are defined by the Java Aglet, AgletProxy and AgletContext classes, as shown in Figure . The abstract class Aglet defines the fundamental methods to control the mobility and lifecycle of an aglet. The AgletContext interface class provides the runtime execution environment for aglets within the Tahiti server. The AgletProxy interface class provides a handle that is used to access the aglet.