deutsch english

Uni K'lautern
Dept.ofComputerScience
[Homepage]

[News]
[Staff]
[Research]
[Lectures]
[Publications]

[Ara]
   Documents
   Members
   Related Projects

[GeneSys]
[B10]
[Squirrel]
[SFB 501]
[SysAdmin]

[CaberNet]
[Links]


  webmaster

   

The Ara Platform for Mobile Agents

[Logo: ARA - Agents for Remote Action] Zoologically, an ara (also called a macaw) is a member of a large, multi-colored genus of parrot as pictured here, a family of birds renowned for their intelligence and longevity.

Overview

Ara is a platform for the portable and secure execution of mobile agents in heterogeneous networks. Mobile agents in this sense are programs with the ability to change their host machine during execution while preserving their internal state. This enables them to handle interactions locally which otherwise had to be performed remotely. Ara's specific aim in comparison to similar platforms is to provide full mobile agent functionality while retaining as much as possible of established programming models and languages.

Application Domain | Programming Model | System Architecture
Source Code Example | Development Status | Software Distribution





Application domain

Ara is primarily concerned with system support for general mobile agents regarding secure and portable execution, and much less with application-level features of agents, such as agent cooperation patterns, intelligent behaviour, user modeling etc. The application focus of Ara is on weak-connection/high-volume systems such as wirelessly or intermittently connected computers, or globally distributed large data bases. Such environments with intrinsic restrictions regarding the ratio of bandwidth/connectivity vs. data volume seem particularly well suited for mobile agent applications.

Programming model

The programming model of Ara consists of agents autonomously moving between an staying at places, where they use certain services, provided by the host or other agents, to do their job. A place is physically located on some host machine, and may impose specific security restrictions on the agents entering that place in the form of a local allowance limiting the agent's resource accesses while staying at that place. Besides that, an agent may also be equipped with a global allowance by its principal, controlling the agent's behavior throughout its lifetime. Keeping this in mind, agents are programmed much like conventional programs in all other respects, i.e. they work with a file system, user interface and network interface.

High level view of the programming model:

[Programming model picture]

System architecture

The architecture of the Ara system is constituted by a core and several processes. Agents are executed as processes, facilitating their independent execution and mutual protection. The process abstraction is provided by the core in a portable and highly efficient form. The complete Ara system including core and agents runs as a single application process on top of an unmodified host operating system.

While stationary agents may be compiled to native code, mobile agents usually execute within an interpreter for their respective programming language (see current set of languages on top of Ara) for reasons of portability and system security. Ara defines a clear interface to adapt interpreters for established programming languages to the core by extending them by certain functions for program control and state saving, such that in principle, any interpreted language can be used for mobile agent programming with Ara. Without regarding their implementation language, all agents on a node can interact with the host system and as clients and server with each other.

The core enforces security in all agent actions, providing agent authentication (under construction), and authorization and accounting of resource usage. Basic services are offered by the core, while higher-level ones are accessed through server agents. Basic services include inquiries about local server agents, meetings and interaction with local agents, access to a user interface, to a file system and to external applications, as well as migration to remote nodes. Migration is orthogonal to conventional program execution, i.e. an agent can migrate at any point in its execution and then continue from the same state.

High level view of the system architecture:

[Archtitecure diagram]


A source code example

Here is the source code for a simple Ara agent written in the Tcl scripting language. The agent will migrate to a place named thor (simply a machine name here) and print a message there:
ara_agent {
    set home [ara_here]
    ara_go thor
    puts "Hello at thor, I've come from $home!"
    ara_exit
}
The same can be achieved by a C language agent.


Current development status

Most components of the Ara platform have been implemented, including the larger part of the core providing agent execution, interaction, checkpointing, and migration; the same holds for the Tcl and C/C++ interpreters. Most of the security features are still under construction, including multiple places per system with user-defined security policies. You may want to look at a more detailed status account.

Ara software distribution

The Ara software currently runs on various types of Unix operating systems (Sparc Solaris, Intel Linux, and Sparc SunOS) and can be downloaded free for any non-commercial purpose (see the copyright statement for details).


Ara is a project within the Distributed Systems Group in the Computer Science Department of the University of Kaiserslautern, Germany.


copyright © 1997 The University of Kaiserslautern.

Holger Peine
21-Oct-1997