click
on the links to go there
|
|
|
|
A software agent is a program that works on behalf of a human user. A mobile
agent has the added ability to travel autonomously (under its own control)
from machine to machine on a network. Ajanta is a mobile agent programming
system being developed at the University of Minnesota. It allows agents
written in Java to securely migrate from machine to machine on the Internet.
The Ajanta project is aimed at building an infrastructure for mobile agent
execution that incorporates security and robustness features as an integral
part of the design. The system is being implemented using Java.
Ajanta is a system for programming agentbased applications over the
Internet. In a broad sense, a mobile agent is a program which represents
a user in a network and is capable of migrating autonomously from node
to node, performing computations on behalf of the user. The main advantages
of the mobile agent paradigm lie in its ability to move client code and
computation to remote server resources, and in permitting increased asynchrony
in clientserver interactions. Mobile agents introduce a higher level
of abstraction (in comparison to RPC and messagepassing), for which
many applications are naturally suited. The programmer can define agents
as active application components that traverse the network performing computations
relevant to their current location. The agent paradigm offers the promise
of utility in many potential applications. For example, agents can be used
for information searching, filtering and retrieval, and for electronic
commerce on the Web, thus acting as personal assistants for their owners.
As tools for system administration, they can be used in lowlevel network
maintenance, testing, fault diagnosis, and for installing or upgrading
software on remote machines. Agents are also useful for extending or modifying
the capabilities of existing services by dynamically adding to their functionality.
Security and robustness concerns about mobile agents are the biggest hurdle
preventing the widespread use of agentbased applications. The use
of mobile agents requires a participating host in the system to provide
a facility for executing them. It is generally required that only authorized
agents be able to execute on a host and perform any operations. Unless
some countermeasures are taken, agents can potentially leak, destroy or
alter sensitive data and disrupt the normal functioning of the host. Malicious
agents can also cause inordinate consumption of host resources, thereby
denying their use to other legitimate users. Security mechanisms are thus
necessary to safeguard hosts' resources. Similarly, agents themselves need
to be protected from their hosts, as an agent may carry sensitive information
about the user it represents. Robustness concerns in mobile agent execution
also require that an agent's owner have full control over its roaming agent.
An agent's owner should be able to monitor its agents periodically or recall
any of its mobile agents at any time.
The main focus of the Ajanta design is on mechanisms for secure and robust
executions of mobile agents in open systems. In Ajanta, the mobile agent
paradigm is based on the generic concept of a network mobile object. Agents
in this system are active mobile objects, which encapsulate code and execution
context along with data. Ajanta is implemented using the Java language
and its security mechanisms are designed based on Java's security model.
It also makes use of several other facilities of Java, such as object serialization,
reflection, and remote method invocation.
Current Projects
Agent Based Network Monitoring
Policy Driven Secure Distributed Collaboration
Secure
Context Aware Distributed Collaboration Systems
Sponsors
National Science Foundation (NSF) Grants: ANIR 9813703, EIA 9818338, ITR 0082215, ANI 0087514
, CNS 0411961
|
|