Requirements for Mobile Agent Systems

While mobile agents are a useful approach to distributed computation, in practice they have seldom been used. There are many technical challenges to implementing mobile agent systems. Most of these problems are in the structure of the computational medium, the environment the agents operate in. Servers must be designed, implemented, and deployed that not only allow mobile agents to run, but allow them to run safely.

Portability

Mobile agent code itself must be portable; when an agent arrives at a server the server needs to be able to execute that agent. Commonly used computer languages such as C and C++ are not very portable. Compiled C code only works on the machine it was compiled for and the source form is notoriously unportable. Portability can be achieved by running computer programs inside virtual machines interpreters, but overhead has limited the use of interpreted languages. Most mobile agent systems under development now rely at least in part on virtual machines to standardize the execution environment.

Ubiquity

In order for mobile agents to be successful they need access to many different computer resources. Servers for agents must be commonplace; there needs to be a widely accepted framework for executing mobile agents deployed on many machines across the Internet. In practice the requirement of ubiquity means that the execution environment needs to have market acceptability, be freely available, and be unencumbered by restrictive intellectual property requirements.

Network Communication

Mobile agents that live in the network need to be written in a language that makes network access simple. It must be easy to transfer objects across the network and to invoke methods of remote objects. Traditional computer languages treat networking structures as an afterthought, usually providing only a minimal socket library. Languages that better support network access have typically not been widely used. This situation is improving with the current development of language-neutral distributed object frameworks such as CORBA and OLE.

Server Security

A major concern specific to mobile agents is the protection of the servers running the agents. Running arbitrary programs on a machine is dangerous: a hostile program could destroy the hard drive, steal data, or do all sorts of other undesirable things. This risk must be thoroughly addressed if mobile agent environments are to succeed. Two types of security are possible to protect servers from malfunctioning and hostile agents: physical and social.

Physical security refers to building servers for agents in such a way that the agents cannot harm the server. The ``laws of physics'' of the server execution environment can be designed to make dangerous operations difficult or impossible. Common approaches involve creating a ``sandbox'' for visiting agents, restricting access to resources (preventing disk writes, for instance) and ensuring the agent cannot escape those restrictions. This approach to security is attractive; when it works, it is entirely effective. But the viability of physical security in the face of design complexity and server implementation bugs is unclear. In addition, physical security is typically focussed on protecting some underlying aspect of the server from the sandbox the agent is trapped in. But if multiple agents are put in the same sandbox how can the server guarantee that one agent cannot harm another? As we put more trust in the computations that take place inside sandboxes, the security of those sandboxes themselves becomes important.

A second approach to server security is using social enforcement mechanisms to punish the creators of harmful agents. If a server administrator can find out who is responsible for a malicious agent, then that person can be held accountable via social mechanisms (such as lawsuits). Digital signature technology makes identifying the authors of agents possible. But there are limitations to a purely social approach to security. It may not be clear which agent is responsible for damage, nor will it be easy to determine ahead of time which agent authors are trustable. In practice some combination of social and physical enforcement of server security will be useful.

Agent Security

The complement of server security is agent security: whether the agent can trust the server on which it is executing. A mobile agent might contain secret information such as proprietary data and algorithms. Worse, servers might have an incentive to subvert the computation of a visiting agent. In the Internet-based DES cracking effort currently under design a major concern is protecting the computation from sites that pretend to do pieces of the problem but return false answers [Tre96]. Physical security answers to this problem are difficult. Secure, trusted hardware on the server could guarantee agent safety but is unlikely to be widely deployed. Agent programmers can protect their agents by obfuscating their code and verifying the results of the remotely-performed computation but the general applicability of these techniques are unknown. Social solutions may be possible in the form of reputation systems for servers. This area of security has largely been unexamined.

Resource Accounting

If economic control and incentive are going to be factors in net-wide resource use some mechanism to account for the resources that an agent uses and a way for receiving payment for those resources is necessary. In theory these requirements are not difficult to meet. Servers can keep track of the resource usage of agents, explicitly accounting CPU, memory, bandwidth and disk usage. Digital cash systems can be used to pay for services. In practice, these technologies are not widely deployed and the overhead they impose presents an engineering challenge.

Conclusions

Creating an effective infrastructure for distributed computation is not easy. Mobile agents are a viable paradigm for thinking about access to computational resources but in order for mobile agents to succeed many technologies need to be put into place. The shape of most of these pieces is fairly clear; however, the engineering and social barriers to their deployment are formidable. With the growth of the Internet there has been much interest in developing the necessary pieces.


next up previous
Next: Java as Technology Base Up: Computational Media for Mobile Previous: Computational Resources Distributed around

Formatted: Wed Jun 11 16:51:02 EDT 1997
Nelson Minar