AGENT TCL: Targeting the Needs of Mobile Computers

Mobile computers have become increasingly popular as users discover the benefits of having their electronic work available at all times. Using Internet resources from a mobile platform, however, is a major challenge. Mobile computers do not have a permanent network connection and are often disconnected for long periods. When the computer is connected, the connection is often prone to sudden failure, such as when a physical obstruction blocks the signal from a cellular modem. In addition, the network connection often performs poorly and can vary dramatically from one session to the next, since the computer might use different transmission channels at different locations. Finally, depending on the transmission channel, the computer might be assigned a different network address each time it reconnects. Mobile agents are one way to handle these unforgiving network conditions. A mobile agent is an autonomous program that can move from machine to machine in a heterogeneous network under its own control. It can suspend its execution at any point, transport itself to a new machine, and resume execution on the new machine from the point at which it left off. Agent Tcl is a mobile agent system whose agents can be written in Tcl, Java, and Scheme. Agent Tcl has extensive navigation and communication services, security mechanisms, and debugging and tracking tools. We focus on Agent Tcl's architecture and security mechanisms, its RPC system, and its docking system, which lets an agent move transparently among mobile computers, regardless of when they are connected to the network.