This is an addendum to the article, "JATLite: A Java Agent Infrastructure with Message Routing," published in IEEE Internet Computing in March/April 2000, pp.87-96.

ACL-Based Agent Systems

Heecheol Jeon, Charles Petrie, and Mark R. Cutkosky  Stanford Center for Design Research and Stanford Networking Research Center

JATLite is a Java-based agent infrastructure that provides for the buffering and forwarding of agent communication language (ACL) messages, which in turn allows migrating agents (such as Java applets), robust distributed communications, unique agent identity, and facilitation of debugging as described in the main article. This novel functionality addresses problems approached in various ways by other systems in the past 10 years of development of ACL-based agent platforms for managing agent communications..

Basic Agent Communication Systems

ne of the earliest tools for agent development was the KQML application programming interface, KAPI, developed as part of the DARPA Shade project.[1,2] Like many other agent wrapper tools, KAPI assumes KQML as the ACL. Agent identity is established by an agent name server (ANS) via HTTP. KAPI is written in C and works with agents developed in C or any language that has a C interface. KAPI also provides a set of Lisp foreign function calls so that Lisp agents may be developed. KATS [3] is another tool of this kind for diverse platforms and various languages including C, Lisp, and Java. These systems assumed that each agent made a socket connection with every other agent with which it communicated.

The Java Agent Template was the first agent development tool written in Java.[4] JAT provided templates for newly developed Java agents, but it incorporated specific research theories that were not necessary in a general agent infrastructure. It was a traditional socket-to-socket agent communication model and did not support Java applet agent communication. This provided the motivation for the design and development of JATLite .

Warren is a KQML-based system that provides agents with enough individual intelligence and robustness in its coordination scheme to support uninterrupted distributed computation when individual agents fail.[6] The essential difference in JATLite is that it does not require this level of intelligence from the individual agents. JATLite thus facilitates the integration of legacy software tools, especially relatively simple engineering software packages such as finite element analysis.

Alternative Agent Communication Systems
Other systems focus on the coordination mechanism. Magenta is a KQML-based system that implements a coordination technology called Anonymous Agent Interaction.[7] Each agent uses a KIF-based ontology for query and notification together with a set of faciliators and brokers that manage interactions. JATLite and Magenta both make provision for the persistence of some objects in case of agent failure; but Magenta does this by providing functions that an individual agent may use to save to a file or database, while JATLite builds in message recovery with the AMR.

The agent development shell for Coordination Language (COOL) facilitates the design and simulation of protocols and the acquisition of cooperation knowledge through the domain-independent, high-level language.[8] As with Magneta, individual agents are programmed to handle error recovery.

The KAoS [9] agent development architecture similarly focuses on facilitating the development of agent conversations. Neither COOL nor KAoS have anything similar to JATLite's registration and reconnection schemes with agent names and passwords, much less the message buffering of the router. KAoS is notable though as an example of a ORB-based system with the CORBA standard object directory service.

Steve - I moved this to this new category.

JAFMAS [11] is a Java-based KQMLsystem that does not depend on any centralized server. It therefore does not include centralized message communication services. There is no message buffering or AMR-like support for message delivery failures. JAFMAS is intended to be more robust and scalable because it is distributed, but networks of centralized servers have proved to be very robust and scalable: consider Internet e-mail servers.

Mobile Agent Communication Systems
There have been attempts to integrate KQML with agent mobility. TKQML [10] integrates the highly portable script language Tcl with KQML, attempting to bridge the gaps between low-level mobile agent communication and a higher level language.

Steve - I moved this to this new category and added a new reference.

A store-and-forward paradigm similar to that of JATLite's Agent Message Router was previously used in April, [ 5] a process exchange system that could support mobile agents. However, unlike JATLite, April required installation of a mechanism on each participating host (as is necessary with all multihop mobile agent systems) and was not a complete agent infrastructure. As of March 2000, a new system based on April has been released: Inter Agent Communication Model (ICM) that may have message routing.[ 16]

FIPA Specifications
Starting in 1997, FIPA began developing the specifications for a new ACL, [12] similar to KQML, and an agent infrastructure, using the CORBA Internet inter-ORB protocol (IIOP) for communication with foreign agent systems. There are now some implementations such as JADE(open source Java-based).[13] JATLite and other systems, such as ICM, are not in theory inconsistent with the FIPA specifications, but it may require significant implementation effort to reach compliance, such as providing CORBA IIOP transport between AMRs. JATLite open source developers have generated FIPA ACL parsers (see paper) and it is possible that the IIOP requirement will be eased as these specifications are not yet fixed. In any case, FIPA specifications do not offer JATLite's novel message routing and buffering services, nor the resultant functionality. In order to accomodate store-and-forward functionality with minimal security, FIPA will have to add something similar to the JATLite password and the Connect performative.

In contrast to traditional KQML-based systems, FIPA has treated administrative functions, including agent registration, as high-level objects on a par with other language primitives. One very sophisticated system is JACKAL: a relatively new Java-based system published only in workshop working notes,[14] but which seems to include a new ANS, called KNS.[15] This design emphasizes distributed name management across different agent directories. It differs from the JATLite scheme of identification by password as well as name. Like most other directory schemes, including FIPA's, KNS requires an update protocol to change an agent's IP address. In JATLite , the current IP address is simply noted whenever the agent reconnects to get its messages, so there is no need for an update protocol.

JATLite is GNU free software available at http://java.stanford.edu, where there is also a jatlite-users email list, FAQ, and hypermail archive. The agent community is encouraged to join in the development of this open source software.                                      

References

1. J. McGuire et al., "SHADE: Technology for Knowledge-Based Collaborative Engineering," J. Concurrent Engineering: Applications and Research (CERA), Vol. 1, No. 2, Sept. 1993; available online at http://www-ksl.stanford.edu/
knowledge-sharing/papers/shade-cera.ps
. See also http://ksl-web.stanford.edu/knowledge-sharing/papers/
shade-overview.html
.

2. D. Kuokka and L. Harada, "A Communication Infrastructure for Concurrent Engineering," J. Artificial Intelligence for Engineering Design, Analysis and Manufacturing (AIEDAM), Vol. 9, No. X, 1995, pp. xx-yy.

3. T. Finin et al., "KQML Software Design Document," tech. spec., Unisys Corporation, 1995; available online at http://www.cs.umbc.edu/kqml/software/kats/kqml-sdd_ToC.html

4. H.R. Frost and M.R. Cutkosky, "Design for Manufacturability via Agent Interaction," paper no. 96-DETC/DFM-1302, Proc. 1996 ASME Computers in Engineering Conf., ASME, New York, 1996, pp. 1-8; available online at http://cdr.stanford.edu/ABE/pubs/Frost-Cutkosky.ps.

5. F.G. McCabe and K.L. Clark, "April-Agent Process Interaction Language," Intelligent Agents, Lecture Notes in Artificial Intelligence, 890, M.J. Wooldridge, and N.R. Jennings, eds., Springer-Verlag, 1995, pp. 324-340; available online at ftp://www.nar.fla.com/pub/papers/aprilsummary.html.

6. K. Decker et al., "Designing Behaviors for Information Agents," Proc. First Int'l Conf. on Autonomous Agents (Agents 97), ACM Press, New York; 1997, pp. xx-yy; available online at http://www.cs.cmu.edu/~softagents/papers/autoag96.ps.gz.

7. M. Genesereth, N. Singh, and M. Syed, "A Distributed and Anonymous Knowledge Sharing Approach to Software Interoperation", Int'l J. Cooperative Information Systems, Vol. 4, No. 4, Dec. 1995, pp. 339-367; available online at http://logic.stanford.edu/software/magenta/.

8. M. Barbuceanu and M.S. Fox, "COOL: A Language for Describing Coordination in Multi-agent Systems", Proc. 1st Int'l Conf. Multiagent Systems (ICMAS 95), AAAI/MIT Press, Cambridge, Mass., 1995, p. 17-24.

9. J. Bradshaw, "KAoS: An Open Agent Architecture Supporting Reuse, Interoperability, and Extensibility," available online at http://ksi.cpsc.ucalgary.ca/KAW/KAW96/bradshaw/KAW.html.

10. R.S. Cost et al., "Agent Development Support for Tcl," Proc. 5th TCL/TK Conference Workshop, Usenix, Berkeley, Calif., 1997 pp. 177-178.

11.  "JAFMAS: A Java-based Agent Framework for Multi-Agent Systems," development, implementation, and download page; available online at http://www.ececs.uc.edu/~abaker/JAFMAS/.

12. Foundation for Intelligent Physical Agents (FIPA) homepage. //Should this reference be to the spec? http://www.fipa.org/spec/ // STEVE - DID YOU TRY THIS URL? Possibly use instead http://www.fipa.org/spec/fipa99/fipa99Kawasaki.htm
Also note that you have a typo in the current url - click on it. PLEASE TEST ALL URLs. Thanks, Charles.
Available online at http://www.fipa.org/.

13. F. Bellifernine, G. Rimassa, and A. Poggi, "JADE: A FIPA-Compliant Agent Framwork," Proc. Fourth International Conference and Exhibition on the Practical Application of Intelligent Agents and Multi-Agents (PAAM 99), London, 1999. See also http://sharon.cselt.it/projects/jade/

14. R.S. Cost et al., "Jackal: A Java-based Tool for Agent Development," Working Notes of the Workshop on Tools for Developing Agents, WS-98-10, AAAI TR 73-82, AAAI/MIT Press, Cambridge, Mass., 1998.

15. R. Cost and I. Soboroff, "KNS," available online at http://jackal.cs.umbc.edu/KNS/ .

15. F. McCabe et al., "ICM Manual," available online at http://www.nar.fujitsulabs.com/icm/manual.html .

Steve - this server seems offline but is the right URL.



Heecheol Jeon is a principal technologist of Macroscape Inc. His research interests include Internet-based agent infrastructure, dynamic constraint management in collaborative design, process modeling, and Internet search. Dr.Jeon has a BS in naval architecture from Seoul National University and an MS and PhD in mechanical engineering from Stanford University.

Charles Petrie is executive director of the Stanford Networking Research Center (SNRC). He was previously a senior research scientist at the Stanford Center for Design Research (CDR). His research interest is distributed process coordination, with emphasis on concurrent design, planning, and scheduling. He also works on the use of XML for open interoperable workflow. Dr.Petrie has a BS in mathematics and an MS and PhD in computer science from the University of Texas at Austin. He is the editor-in-chief emeritus of IEEE Internet Computing.

Mark R. Cutkosky is the Charles M. Pigott professor and associate chair for design and manufacturing in the Dept. of Mechanical Engineering at Stanford University. He is also codirector of the Alliance for Innovative Manufacturing at Stanford (AIMS), an industry/academic partnership for manufacturing education and research. Cutkosky received his BS from the University of Rochester and his MS and PhD from Carnegie Mellon. He is a former NSF Presidential Young Investigator and Anderson Faculty Scholar at Stanford, and a member of ASME, IEEE, and Sigma Xi.