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