Features
The following sections highlight some of the current features of Jadex. In summary, Jadex is an agent- and Java-based, modular, conceptually leading, technology affine and standards compliant, agent environment, and allows to develop goal oriented agents following the BDI model. Jadex provides a framework approach including a runtime infrastructure for agents, the agent platform, and an extensive runtime tool suite.Agent-based
The agent concept is regarded as a powerful software development paradigm, well suited to address the complexity of todays large software systems. It can be considered as a natural extension to object-orientation, whereby an agent represents an object with control about its execution. The agent paradigm allows to view a system as being composed of autonomous interacting entities which pursue their own goals and act in a rational manner. Interestingsly, the agent metaphor fits perfectly to the demands of distributed and concurrent systems. In a multi-agent system each agent is autonomous from other agents and hence potentially concurrently executed to the others. In addition, agents communication via messages and do not need a shared memory environment (like objects using method calls).Java-based
The Jadex project aims to make the development of agent based systems as easy as possible without sacrificing the expressive 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.Modular Design
Jadex has been developed in a very modular fashion. This modular design has on major goal: the clean separation between the agent platform and the agent kernel. This separation allows a many-to-many relationship between agent platforms (i.e. Standalone or JADE) and kernels (i.e. BDI or Micro). I.e., on the one hand, on a specifc agent platform different kernels can be run (also concurrently) and hybrid agent applications can be built. On the other hand, a specifc agent kernel can also be run on different agent platforms (requirement is that a Jadex adapter has been built). This allows the execuation of e.g. BDI agent programs on the Standalone or JADE platform without requiring any changes to the agent code.Conceptually Leading
The Jadex framework is developed since 2003. From the beginning, the project has the aim to reveal and provide the best possible support for building distributed and concurrent programs. This class of software gains ever increasing importance by many factors and current trends such as ubiquitous computing and multicore processors. Hence, Jadex has alsways been driven by new research ideas and incorporates these as new features as soon as possible in the software. Some examples of these outstanding features are:- Incorporated event- and time-driven simulation support
- Multi agent kernel support
- Full BDI-reasoning cycle support (goal deliberation and means-end reasoning)
- Goal-oriented interaction protocols
- Many prebuilt functionalities readily available in capabilities
Technology Affine
Even though Jadex is driven by research ideas, the technology side is considered equally important and non-functional aspects like robustness, scalability, fault tolerance etc. have been targeted specifically in the new Jadex V2 design. It is always tried to exploit the best of breed software for Jadex and make use of proven technology. This is reflected e.g. by:- Maven is used as build and release tool
- The Standalone platform realizes a services based approach and can be configured e.g. with Spring Beans
- BDI kernel is built on established and efficient rule technology (RETE engine)
Standards CompliantStandards are important to ensure that agreed best practices are used and standards compliance allows consumers of technologies to exchange products of different vendors lowering the risks of a vendor lock-in. In the field of multi-agent systems only a few standards have been developed so far. Jadex aims at following standards whereever possible. This is not restricted to agent standards. Most important in the field of agent standards are the communication standards, which should enable interoperability between different agent platforms. These standards have been released by the Foundation for Intelligent Physical Agents (FIPA), 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. To achieve FIPA-compliancy, Jadex can be used with 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. |
|
Goal Oriented Agents
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. 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 by introducing beliefs, goals and plans as first class concepts 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 come in different flavors and allow to describe what an agent should achieve in a declarative manner. Goals do not include information about how it can be fulfilled. This kind of knowledge is encoded in plans. Hence, to achieve its goals the agent executes plans, which are procedural recipes coded in Java.Framework
Programming Jadex agents can be done by using the framework API and possibly predefined reusable generic functionality in form of capabilities. 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 continuously 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.An important quality aspect of any development environment is the available tool support. As Jadex uses the standard programming languages XML and Java existing IDEs like eclipse can be used for programming agents as well. Furthermore, Jadex offers a complete runtime tool suite for managing, testing and debugging agents. Basis of this suite is the Jadex Control Center tool (JCC), which is the access point for all the tools (realized as plugins). Currently the following tools are available:
- Starter for starting and stopping agents and viewing all agents currently living on the platform
- Directory Facilitator for viewing registered services of agents
- Conversation Center for directly sending messages to agents
- Comanalyer for sniffing and displaying message-based interactions
- Test Center for executing agent-based unit tests
- Simulation Control Center for executing applications in real-time or simulation modes (time- or event-driven)
- Introspector for introspecting agents and executing them stepwise
- Library Tool for managing the Java classpath at runtime by adding/removing libraries such as jar-files