The Mobile Agents List: FarGo

System Name: FarGo

Current Version: 0.2.2

Organization: Technion - Israel Institute of Technology

Entry status: authoritative

Supported platforms:
Java 1.1 (tested on Windows, Solaris, Linux)

Supported languages:
Java

Implemented standards: none

Type of migration:
weak

How many threads or processes are possible per agent? any number

Local communication mechanisms and format of data:
regular method invocation (remote-call sematics)

Global communication mechanisms:
regular method invocation (remote-call semantics)

How the communication partner can be addressed:
global DNS-based naming service

Resource access control mechanism:
policies

Agent tracking:
chain of tracking objects

Directory of services:
none

Type of code migration:
A configurable combination of all the above (currently in development)

Other special features:
A unique capability to control relocation by
specifying "movement" relationships between
components.

For example, if a reference from component A
to component
B is designated as a "pull" reference, then
when A moves, B
automatically follows to the (new) location
of A.

A simple and powerful programming model, which
completely adopts and supports regular Java
syntax

Applications are written in plain Java.
Mobile components
are instantiated like any regular Java object
with the new
operator, and are invoked as in regular Java.

An integrated single javac-like compiler is used
to
compile the whole application

No need to separately compile some of the
classes using a
separate compiler. No need to adopt
automatically-generated code to the program
in several
steps. Simply write your code and compile
once, as you
would do with any Java application or applet.

A built-in monitor that tracks the dynamic
behavior
of the system and its applications

The monitor can perform measurements, such as
loads on
links that connect components, average number
of
component invocations per time-unit, local
processing load
imposed by each component on each host, and
many more.

A special API for specifying smart relocation
policies
based on monitoring information

With the monitoring API, the application can
ask the monitor
to perform measurements on its behalf. It can
also register to
be notified of the occurrence of various
events (e.g., that
some threshold has elapsed, or that a certain
component has
moved) as means for implementing its
relocation policy.

A high-level and simple script language for
(dynamically) embedding relocation scripts to the
application

The scripts are written in a simple event
based language and
can statically or dynamically be attached to
applications. A
built-in script engine (itself a mobile
component) is used to
load and execute scripts.

A collection of development and deployment tools

A graphical monitor that depicts live
components and
provides point-and-click management
operations. A
command-line shell for remote application
management. A
daemon that can host, receive, execute, and
move
components.

Availability:
binary

License terms:
see license terms

Article that describe the current system best:
O. Holder, I. Ben-Shaul and H. Gazit, Dynamic Layout of Distributed
Applications in FarGo. Proceedings of the 21st International Conference on Software
Engineering (ICSE'99), Los Angeles, CA, USA, May 1999. To appear.
Available at: http://www.dsg.technion.ac.il/publications/icse99.ps

Year of first publication of systems description: 1998

Project URL: http://www.dsg.technion.ac.il/fargo

Contacts Email Address: holder@techunix.technion.ac.il

Last modification date of this entry: Tue Jun 29 18:28:08 MET DST 1999


This page was created automatically by a script. Last creation date of: Tue Jan 13 08:01:18 MET 2004 In case of problems please contact Fritz.Hohl@informatik.uni-stuttgart.de