Table of Contents
This manual provides a reference for building agents using the Tryllian Agent Development Kit (ADK). It is assumed that the user of this manual has a thorough understanding of the Java programming language. This manual provides an introduction to using the ADK, including some basic concepts of agent technology, and information on how to develop and deploy agent applications.
Chapter 2, The ADK Environment: A non-technical overview of the ADK environment and its individual components is given in this chapter. Agents are the most important part of the ADK for the developers. This chapter will provide some background information on agents, discussing what they are and what they can do. Understanding the terms and concepts introduced in this chapter will be crucial to being a successful ADK developer.
Chapter 3, Technical Overview of the ADK: This chapter provides a high-level technical overview of the ADK. It describes the Agent Runtime Environment (ARE) and introduces the Agent Foundation Classes (AFC). It also gives an overview the agent template and mentions other tools and components distributed with the ADK.
Chapter 4, Developing with the ADK: This discusses some of the concepts involved with agent development, including agent addressing and persistence.
Chapter 5, Agent Creation: This chapter describes issues related to creating agents, including how to build your first agent. Discussion of editing code, compiling, debugging, and deploying is provided. It explains the provided ANT build script, describes how to use and configure it. It also describes habitat.properties, agent descriptors, habitat.xml, classes directory, jars directory, and agents directory. The DNAComposer, a command line tool that creates a DNA file, is described. The Deployment tool is also described in this chapter.
Chapter 6, Configuration Issues: This chapter discusses issues surrounding configuring the ADK. Includes information on JBuilder, as it relates to configuration of the runtime environment. It also contains information on how to set up networking environments using JXTA.
Chapter 7, The Agent Task Model: This chapter explains the task model which describes how an agent executes various tasks. The following sections explain the motivation for using this particular task model. The subsequent section explains how these considerations affect implementation of the task model. Additionally, interfaces, classes and models that enable you to get an agent to perform a task or series of tasks are explained.
Chapter 8, Programming with Tasks: This chapter introduces tasks and shows various ways of implementation. It shows how tasks can be structured and how to deploy them. It contains several examples for the developer to try. It also shows how to combine tasks, use TaskSchedulers and TaskListeners. Pitfalls, making tasks re-entrant, loops, dispatchers, parallelism, dynamic task creation are given, along with code examples and a complete listing of available standard tasks.
Chapter 9, Behind Agent Communication: This chapter introduces agent-to-agent communication and shows different ways of using it. Additionally, it discusses how developers can implement their own language.
???: This chapter describes agent addressing. It also includes some additional information on ARE Languages and AFC Protocols. Using JNDI is also mentioned along with code examples. AFC interaction and find tasks (tryllian.afc.task.interaction, tryllian.afc.task.find) is provided.
Chapter 10, Communicating with Agents: This chapter describes how agents actually communicate with each other using messaging. It includes topics on using a MessageFactory to create an OutgoingMessage, using FIPA Performatives, sending an OutgoingMessage, receiving an IncomingMessage, using Conversations and use of MessageFilters.
Chapter 11, Persistence: Persistence is an important feature of the ADK and is described in this chapter. Agents do not disappear when you shutdown your habitat; they can be stored in a database and can be restarted when you restart your habitat.
Chapter 12, Security: This chapter introduces agent security and explains to the developer how to deal with the various aspects of security. It shows how a certificate should be used with a developed agent and how the Agent Environment deals with these security issues. For the developer, security has been reduced to signing a agent using the DNA tool and Ant Task provided with the ADK.
Chapter 13, Habitat Monitoring and Management: This chapter describes the Logging mechanism used by the Agent Environment and shows developers how to create their own logging messages using channels, enabling developers to follow what the ADK software is doing. It also provides a framework for creating your own logging messages. In addition, the SNMP agent is described. The SNMP agent is a special agent that makes it possible to manage a habitat using the SNMP protocol. SNMP clients can communicate with this agent to get information from the habitat or to change settings within the habitat.
Chapter 14, Web Services: This chapter provides an overview of Web Services and how Web Swwwervices are integrated with the ADK. Some background information on Web Services is given with a discussion of the main technical components: SOAP, WSDL and UDDI. Finally, design issues related to Web Services and Agent integration are discussed.
Chapter 15, Using Web Services with the ADK: This chapter introduces how to use Web Services with the ADK and provides examples of how to implement Web Services using the ADK agents.
Chapter 16, Software Licensing Requirements: This chapter provides information on the software licensing issues for applications created with the ADK.
This manual uses the following typefaces described in following table to indicate special text.
| Typeface | Meaning |
|---|---|
| Italics | Newly introduced terms, concepts, file names and emphasis. |
| Monospace type | Code and console output, as well as code to be entered verbatim. It is also used to indicate filenames. |
| Keycaps | This typeface indicates a key on your keyboard. For example, "Press ESC to exit a menu." |
The Developer website at http://develop.tryllian.com is devoted to assisting ADK developers. It provides the latest news regarding current and future ADK releases, a faq and the archives of the Tryllian ADK-users mailing list. In addition, current reference documents for the ADK and several tools packaged with it are provided. Finally, the Javadoc of the ADK can be found at this site.
To facilitate the readability of this document, the command lines are written for Windows users. If you have install the ADK on a Unix system or a Unix-like system such as GNU/Linux, you should then translate the command line by changing :
| Windows | Unix |
|---|---|
| ; | : |
| \ | / |
| file.bat [1] | ./file.sh |
| SET | EXPORT [2] |
| %VARIABLE% | ${VARIABLE} |
For example :
set ADK_PATH=%ADK_PATH%;%ADK_ROOT%\lib\jdbc\classes12.zip (Windows)
ADK_PATH=${ADK_PATH}:${ADK_ROOT}/lib/jdbc/classes12.zip (Unix)
habitat helloworld.xml (Windows)
./habitat.sh helloworld.xml (Unix)
For consistency in the document, the directory where you have installed the ADK will be named <ADK_ROOT>. You need then to replace <ADK_ROOT> with the name of your directory. For example :
replace cd <ADK_ROOT>\bin
with cd c:\Tryllian\adk-2.1\bin
You can report bugs through the ADK Users Mailing list or by sending an email to Tryllian at info@tryllian.com. You can also contact us via regular mail at
Tryllian Solutions B.V.
Hogehilweg 21
1101 CB Amsterdam-Zuidoost
The Netherlands
(T) +31 (0)20 850 80 00
(F) +31 (0)20 850 80 80
All reported bugs are submitted to Tryllian developers who will investigate these reported bugs in order to improve the quality of the ADK.