Jadex is a rapidly evolving project. If you have used a previous version of Jadex, you
should read this section carefully, to learn what has changed since then. This section
shortly introduces important features that have been added and changes that have been
made to the API, which may cause incompatibilities to applications you may have
developed with an older Jadex version.
For a detailed description of the many single changes and numerous bug fixes, have
a look at the changes document (
changes.txt
), where you will find a history of all
important changes that have been made since the initial release.
Protocols Capability. The protocols capability provides a goal-oriented way to deal with various interaction protocols such as FIPA-Request, Contract-Net, Dutch- or English-Auction. Through predefines goals for initiator and responder sides of each protocol, the message-based communication becomes completely transparent to the developer. The protocols capability is described in the new chapter Chapter 16, Using Predefined Capabilities of the user guide.
Agent Configurations. As an extension of the initial states known from previous Jadex releases, agents now may have so called configurations including initial elements as well as end elements. End elements (e.g. end goals or end plans) are executed when the agent gets killed. They provide an easy way to perform complex agent-oriented cleanup operations. Agent configurations are described in chapter Chapter 13, Configurations of the user guide.
Agent Listeners. The new release adds the possibility to add listeners to agents and BDI-elements (e.g. beliefs or goals). These listeners get called when certain events happen on an element (e.g. a fact was added or a goal finished). This callback style of programming is especially useful for developing GUIs. For more details see section Section 15.2, “Agent Listeners”.
Agent Arguments. To simplify the specification of agent arguments, now all exported beliefs of an agent are considered as arguments, which can be set using the name of the belief. Therefore, e.g., when a new agent is created, a map of arguments (name-value-pairs) can be provided.
Detail Improvements. The new strong export (which is now the default) allows that instances of referenced elements are created outside a capability, even when the creation was triggered inside the capability (see Section 5.3, “Elements of a Capability”). Recur and recurdelay can now be used in all goal types (previously only in maintain goals). Custom match expressions can now be specified for message event types as well as plan triggers. These allow to define complex expressions, e.g., including more than one parameter. The nuggets codec has been added as a fast replacement for the slow java xml codec. With regard to programming plans, it should be noted that it is now possible to dispatch subgoals, wait for messages etc. also in the passed/failed/aborted methods of plans.
New and Improved Tools. With the Test Center and the DF Browser, two new tools have been added. The Test Center allows to execute agent-based unit-like tests. The DF Browser allows to inspect the current registrations In addition, Javadoc/Jadexdoc generation is now provided in a separate perspective, which has been completely rewritten. Improvements of existing tools include the ability to specify arguments und to start agents by double-click in the Starter perspective, a new goal/plan-hierarchy view in the Introspector as well as updated icons for Introspector and Tracer views. Moreover, the JCC startup time has been reduced by loading plugins on demand.
New Example "Book Trading". The booktrading example contains buyer and seller agents, which negotiate prices for goods such as books. The example thereby specifically shows how to use the new protocols capability.
Jadex is still in beta stage and to facilitate effective further development backwards compatibility is currently not explicitly addressed. As the concepts and the API undergoes continuous changes, applications developed with older versions of Jadex may not directly work with the current release. We hope that design issues will settle down until the release of version 1.0, at least for the common features.
Until then, this section tries to highlight the issues which might cause problems with your old code. Use this section as a hint how to adapt your Jadex applications to the new release.
ADF XML header. The new schema definition carries version number 0.96, therefore you have to update your XML headers, if you want your IDE (or other validation tools) to recognize the new or changed tags (see Figure A.1, “Header of an agent definition file”).
<agent xmlns="http://jadex.sourceforge.net/jadex" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jadex.sourceforge.net/jadex http://jadex.sourceforge.net/jadex-0.96.xsd" name=".." package="..">
Figure A.1. Header of an agent definition file
Initial States. The initial states have been renamed to configurations as they now also support end elements in addition to initial elements (see Figure A.2, “Example configurations section of an agent”).
<configurations> <configuration name="default"> <plans> <initialplan ref="initial_plan"/> </plans> </configuration> <configuration name="abc"> <plans> <initialplan ref="initial_plan"/> <endplan ref="initial_plan"/> </plans> </configuration> </configurations>
Figure A.2. Example configurations section of an agent
MobilePlan.passed()/failed()/aborted()
Plan.xxxAndWait()
IExpression.execute(Tuple[] params)
ICandidateInfo.getPlan()/getEvent()
caller
parameter,
of ICandidateInfo.getPlan()
and
CandidateInfo.getEvent()
as it is no longer necessary.