IC Online
//begin sidebar
on the Web//
More Online:
Communication-Based Agent systems
JATLite is <<TBA: statement that describes it and refers to the full article, as well as resources at CDR>>.
Agent Wrapper Tools
One 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 agent communication language (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. KATS3 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 .
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.
S Warren is a type of 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 is thus more suitable for the integration of legacy software tools, especially relatively simple engineering software packages such as finite element analysis.
Other recent tools focus on the coordination mechanism. Magenta 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 Kaos9 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.
There have been attempts to integrate KQML with agent mobility. TKQML10 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. The commercial version, Afterburner,11 provides a set of Java libraries for communication based on KQML including an ANS as well as basic agent mobility functions. This is distinct, however, from JATLite's notion of agent migration.
Jafmas12 is a Java-based system 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.
FIPA Specifications
Starting in 1997, FIPA began developing the specifications for a new ACL,13 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. //Needs a ref.// JATLite is 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. FIPA specifications do not offer JATLite’s novel message routing and buffering services, nor the resultant functionality.
FIPA has treated administrative functions, including agent registration, as high-level objects on a par with other language primitives. There is some movement in this direction in the KQML community. JACKAL is a relatively new Java-based system published only in workshop working notes,14 but seems to include a new ANS, called KNS.15 //Please define acronym.// 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.
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;
also 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 L. and 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. //Need an author and title.//; 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; also available online at http://cdr.stanford.edu/ABE/pubs/Frost-Cutkosky.ps.
5, K. Decker et al., "Designing Behaviors for Information Agents," Proc. First Int'l Conf. on Autonomous Agents (AGENTS-97), //Publisher and City of Publication (not conference)//; 1997, pp. xx-yy; also available online at http://www.cs.cmu.edu/~softagents/papers/autoag96.ps.gz.
6. 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.
See also http://logic.stanford.edu/software/magenta/.
7. M. Barbuceanu and M.S. Fox, "COOL: A Language for Describing Coordination in Multi-agent Systems", Proc. 1st Int'l Conf. on Multiagent Systems (ICMAS-95), //Proceedings Publisher and City of Publication (not conference)//, 1995, p. 17-24.
8. //Need an author and title.//; available online at http://ksi.cpsc.ucalgary.ca/KAW/KAW96/bradshaw/KAW.html.
9. R.S. Cost et al., "Agent Development Support for Tcl," Proc. 5th TCL/TK //Please define acronym.// Workshop, //Publisher and City of Publication (not conference)//, 1997 pp. 177-178.
10. //Need an author and title.//; available online at http://riz.saic.com/AIT/agentref.html/saafbck.html.
11. //Need an author and title.//; available online at http://www.ececs.uc.edu/~abaker/JAFMAS/.
12, //Need an author and title.//; available online at http://www.fipa.org/.
13. 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 Press, City of Publication, 1998.
14, //Need
an author and title.//; available online at http://jackal.cs.umbc.edu/KNS/.
//end sidebar//
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. 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.
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. Petrie has a BS in mathematics and
an MS and PhD in computer science. 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, 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.
Readers may
contact the Jeon and Cutkosky at {jhc, mrc@cdr.stanford.edu and Petrie at petrie@stanford.edu.