
NOTES
=====

1. The Agent Tcl system is an *alpha* release.  It could install easily or
   it could require quite a bit of time and effort.  Be prepared either way.
 
2. Your are not alone however.  If you have any problems compiling or using 
   the system, please contact me.  I will do everything I can to help.  My
   e-mail address is

     robert.s.gray@dartmouth.edu

3. Even if you have no problems or worked through them yourself, I would
   appreciate hearing how it went, what changes you had to make, what you
   like, what you hate, etc.

4. Finally, if you want to be on our mailing list and receive bug reports,
   updates, etc., just send me your preferred e-mail address.


Agent Tcl (Alpha Release 1.1)
=============================

  A transportable agent system that is based around Tcl 7.4 and Tk 4.0


Contact
=======

  Feedback, bug reports, questions, etc. should be directed to ...

  Bob Gray
  Department of Computer Science, Dartmouth College
  6211 Sudikoff Laboratory
  Hanover, New Hampshire 03755 

  Voice: (603)-646-1694
  Email: robert.s.gray@dartmouth.edu

  My turnaround time is excellent.


What is Agent Tcl?
==================

  A transportable agent is an autonomous program that can migrate UNDER ITS
  OWN CONTROL from machine to machine in a heterogeneous network.  The agent
  interacts with other agents at each network site in other to accomplish its
  given task.  Agent Tcl is a transportable agent system in which the agents 
  are written in Tcl 7.4 and Tk 4.0.  Agent Tcl is under continuous use at
  Dartmouth in a range of information-retrieval and information-management
  applications. 


Components of Agent Tcl
=======================

   - A server that sits at each network site to which agents can be sent.  
     The server provides a namespace for agents, accepts and executes 
     incoming agents, and handles agent-to-agent communication.

   - Extended Tcl and Tk interpreters that provide agent-related commands


Features of Agent Tcl
=====================

   - Agents are written in standard Tcl 7.4 and Tk 4.0.

   - An agent migrates to a new machine with the agent_jump instruction.
     agent_jump transparently captures all of the agent's current state and
     sends the state to the new machine.  The agent is restored on the new
     machine and continues execution at the statement immediately after the 
     agent_jump.

   - An agent can clone itself with the agent_fork command and can create
     child agents with the agent_submit command.

   - Agents communicate by sending messages and event notifications to each
     other or by establishing direct TCP/IP connections for extended
     interaction.

   - There are generic retry and timeout mechanisms.

   - Agents can be written in an event-driven style and can display GUI
     interfaces on their home machine or on remote machines using the normal
     features of Tk (event handlers can be associated with incoming
     communication from other agents).

Main deficiency
===============

  Agent Tcl is far from complete.  The main deficiency at this time is the
  lack of security features.  Currently the only security feature is an
  access list for each server.  The servers will only accept agents that
  come from one of the machines on their access list.  This means that Agent
  Tcl is suitable for experimentation, research and development, and certain 
  controlled, localized applications.  It is NOT YET suitable for widearea, 
  public applications unless you extend it with appropriate security 
  mechanisms.  The security components of Agent Tcl are under development.


Installation
============

  - Agent Tcl runs on standard Unix platforms.  It is known to compile 
    on the following platforms using gcc 2.6.

    1. Intel 486 running Linux 1.2.8
    2. IBM RISC 6000 running AIX 3.2.5
    3. SGI Indy running IRIX System V.4
    4. DecStation 5000 running ULTRIX V4.3
    5. DEC alpha running OSF/1 V3.2
    6. Intel Pentium running FreeBsd 2.1
 
    It should be easily portable to any Unix platform that provides TCP/IP
    and Berkeley sockets.

  - Up-to-date information on Agent Tcl can be found on the WWW at

      http://www.cs.dartmouth.edu/~rgray/transportable.html

    Source code for the Agent Tcl system is available at

      ftp://bald.cs.dartmouth.edu/pub/agents/agent.1.1.tar.gz

    Documentation is included with the system or is available separately at

      ftp://bald.cs.dartmouth.edu/pub/agents/doc.1.1.ps.gz 

    The documentation includes detailed installation instructions.

    NOTE that you do NOT need to obtain and install Tcl 7.4 and Tk 4.0 
    separately.  In fact the system will not even work with standard Tcl 
    and Tk.  Modified (but fully compatible) versions of Tcl 7.4 and Tk 4.0
    are included in the distribution.
