2. Basic Elements of the Ajanta System


A host in the Internet can provide services to mobile Agents by running an AgentServer.
An agent server creates a confined execution environment for visiting agents and allows
the local Resource owner to grant access of its resources to agents in a selective manner.
It provides primitive operations to agent programmers, such as those which allow agents
to migrate to other servers, communicate with each other, query their environment, etc.  A
set of these agent servers collectively constitute the mobile-agent programming environment,
in conjunction with ancillary servers such as name resolvers and public-key repositories.
Following are the important elements of Ajanta's computation model.

Principal: Actions in the system are always performed on  behalf of some authorized principal,
an entity which has a unique identity in the system.  Agents,  hosts, agent servers,  and human
users are some of the principals in the system. For each principal, the Ajanta system uses DSA
keys for signature and El-Gamal keys for encryption.

Creator: The agent is usually created by another principal, such as an application program, or
another agent -- we call this the creator of the agent.

Owner: This is the human user whom the agent represents. An agent's owner is different from
its creator.

Guardian: An application assigns to each of its agents a guardian object which is responsible
for dealing with exception conditions encountered by the agent.  If the agent encounters any
exceptions during its execution, it is transported to its guardian, which takes the appropriate
recovery actions. An agent's creator can also act as its guardian.

Agent Credentials: This is a signed certificate carried by each agent describing its identity and
origin. Its tampering can be detected.   It contains the names of the agent, its owner, creator, and
guardian.  Other information encoded into the credentials includes a digest  of the ``intentions" for
which the agent is created. The inclusion of a digest of the intentions places restrictions on the
rights granted to an agent by its creator. Typically, the intention is abstracted into an itinerary.

Code Base Server: Other information included in the credential is  the URL for agent's code base
server, which is a server that provides the code for the classes required by the mobile agent.
Typically the creator of an agent would act as its code base server.

At each server,  the agent environment object  acts as the interface between agents and the
services provided by that server. When an agent arrives at a server, an object references named
host is set to point to the server's agent environment object. An agent can invoke the primitives
provided by the  environment object to request migration, communication with other agents, or access
the resources at the server. The server's domain registry keeps track of the agents currently executing
on it,and responds to status queries from their owners.  The agent transfer component implements a
protocol that is responsible for the migration of agents from server to server.  A server may also provide
access to application-defined resources.  A resource is an object that acts as an interface to some
service or information available at the host.  The server maintains a resource registry which is used in
setting up  ``safe bindings" between resources and agents.


 GO  TO- Top of this page    Previous Chapter    Next  Chapter    Table of Contents of this Guide