|
|
The Ara Platform for Mobile Agents
OverviewAra 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.
Source Code Example | Development Status | Software Distribution
High level view of the programming model:
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:
A source code exampleHere 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 statusMost 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 distributionThe 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 |