Features
The following sections highlight some of the current features of Jadex.
In summary, Jadex is a Java based, FIPA compliant agent environment,
and allows to develop goal oriented agents following the BDI model.
Jadex provides a framework and a set of development tools
to simplify the creation and testing of agents.
Java based
The Jadex project aims to make the development of agent based systems
as easy as possible without sacrificing the expressional power of the agent
paradigm. To foster a smooth transition from traditional distributed systems
to the development of (multi-) agent systems, well established object-oriented
concepts and technologies should be employed wherever possible.
With Jadex you are able to create agent systems without having to learn a new
programming language. Jadex is designed to facilitate the implementation of
agents in the widespread Java programming language, therefore allowing to
reuse a vast amout of existing tools and libraries.
FIPA Compliant
One of the primary success factors of a new technology is the
timely availability of standards to guarantee interoperability between
evolving products.
In order to facilitate the interoperability of independently developed
(multi-) agent systems, the Foundation
for Intelligent Physical Agents (FIPA) released a set of specifications,
which are commonly referred to as "the FIPA standard". As shown in the figure,
the FIPA standard specifies an agent platform architecture, which defines
services such as agent management and a directory facilitator. This architecture
enables agents to communicate using a common agent communication language.
|

FIPA Agent Management
|
To achieve FIPA-compliancy, Jadex is based on the JADE Agent Framework,
an open source development by the
Telecom Italia Lab. JADE provides the platform architecture and the core
services and message transport mechanisms as required by the FIPA specifications.
Further advantages of using JADE arise from its stability, features such as
agent deployment and debugging tools, and its large and active user base.
Goal Oriented Agents
The agent concept is regarded as a powerful software development paradigm,
well suited to address the complexity of todays large software systems.
It allows to view a system as being composed of autonomous interacting
entities which pursue their own goals and act in a rational manner.
The internal state and decision process of agents is therefore modelled
in an intuitive manner following the notion of mental attitudes.
Goal orientation means that, instead of directly requesting the agents to perform
certain actions, the developer can define more abstract goals for the agents,
thereby providing a certain degree of flexibility on how to achieve the goals.
|

Jadex BDI Architecture
|
The BDI Model, based on the mental attitudes belief, desire and intention,
was first introduced as a philosophical model for modelling rational (human) agents,
but later adopted and transformed into an execution model for software agents,
based on the notion of beliefs, goals, and plans.
Jadex incorporates this model into JADE agents, by introducing beliefs,
goals and plans as first class objects, that can be created an
manipulated inside the agent. In Jadex, agents have beliefs, which can be any
kind of Java object and are stored in a belief base. Goals are implicit or
explicit descriptions of states to be achieved. To achieve its goals the agent
executes plans, which a procedural recipes coded in Java.
Framework
The Jadex framework consists of an API, an execution model,
and predefined reusable generic functionality.
The API provides access to the Jadex concepts when programming plans.
Plans are plain Java classes, extending a specific abstract class, which
provides useful methods e.g. for sending messages, dispatching sub goals or waiting for events.
Plans able to read and alter the beliefs of the agent using the API of the belief base.
A special feature of Jadex is that in addition to directly retrieving stored facts,
an intuitive OQL-like query language allows to formulate arbitrary complex expressions
using the objects contained in the belief base.
In addition to the plans coded in Java, the developer provides an XML based
Agent Definition File (ADF), which specifies the initial beliefs, goals,
and plans of an agent. The Jadex runtime engine reads this file to instantiate
an agent model, and executes the agent by keeping track of its goals while
contiunously selecting and executing plan steps, based on internal events
and messages from other agents. Jadex is supplied with some predefined
functionality e.g. to access a directory facilitator service.
The functionality, coded in separate plans, is composed in reusable agent
modules called capabilities, described in a format similar to the ADF,
and can easily be plugged into existing agents.
Development Tools
|
An important quality aspect of any development environment is the available
tool support. For one, Jadex is built on top of JADE and therefore a lot of
readily available tools can also be used with Jadex. This is not only true for
the tools included in JADE, such as the Sniffer or the DummyAgent, but also
regards third party tools like the beangenerator plug-in for
the ontology design tool Protégé.
On the other hand, the new concepts introduced by Jadex have to be supported as
well. Therefore tools have been realized to aid the developer in dealing with
these aspects e.g. related to the BDI model. The BDI Viewer tool allows
to view the internal state of a Jadex agent, that is, its current beliefs, goals,
and plans (see picture). The Jadex Introspector is similar to the JADE
Introspector, allowing to monitor and influence the execution of an agent,
by observing and influencing how incoming events are handled. For debugging
purposes the Introspector also allows to put an agent into single-step mode
(shown in the screenshot).
In addition to the Jadex specific tools, a Logger Agent is provided,
which allows to collect and view log messages from JADE and Jadex agents,
following the Java Logging API.
|

BDI Viewer Screenshot

Introspector Screenshot
|
|