JATLite provides a template for building JAVA-based agents. The technology is provided in layers so that as only much as required need be used. These layers are so-called because they build on each other.
There is an Abstract Layer that provides useful Java classes and allows protocols other than TCP/IP to be used, such as UDP, with extensions provided by the user.
The Basic Layer provides for TCP/IP agents making socket connections, but does not commit to a higher-level protocol, such as KQML.
The KQML Layer provides KQML message parsing and transmission.
The Router Layer povides the functionality of the Agent Message Router.
An FTP Layer will allow agents to use KQML for small messages with semantics, and pass large volumes of data via FTP.
The AMR is necessary to allow Java Applets to send KQML messages via socket connections. Netscape security restrictions allows applets to make a connection only to the server that spawned the applet. The AMR serves as a store-and-forward facility. All agents, whether applets or stand-alone agents, make a single conection to the AMR. It then forwards all messages automatically.
The AMR also buffers messages, which ensures that messages are not lost. This is important for software agents in projects of long duration because agents may "go down" and then recover. In recovery mode, they send a "ReConnect" message to the AMR which then sends all messages collected while the agent was away.
The AMR allows agents to move. By sending a "Disconnect" and a subsequent "ReConnect" message, a registered agent can not only collect messages, but announce a new IP address. This makes movement of agents invisible to the other connected agents. The identity of the agent is enforce via a user name plus a password.
The JATLite features are, in summary: