Java Agent Development Framework

Last updated
JADE
Stable release
4.6.0 / December 19, 2022;9 months ago (2022-12-19)
Written in Java
Platform Java SE
Type Multi-agent system, software framework
License GNU Lesser General Public License
Website jade-project.gitlab.io   OOjs UI icon edit-ltr-progressive.svg

Java Agent Development Framework, or JADE, is a software framework for the development of software agents, implemented in Java. JADE system supports coordination between several agents FIPA and provides a standard implementation of the communication language FIPA-ACL, which facilitates the communication between agents and allows the services detection of the system. JADE was originally developed by Telecom Italia and is distributed as free software.

Contents

Resume

JADE is a middleware which facilitates the development of multi-agent systems under the standard FIPA for which purpose it creates multiple containers for agents, each of them can run on one or more systems. It's understood that a set of containers constitutes a platform.

JADE provides:

History

JADE was initially developed by Telecom Italia Lab. This sector is the R & D branch of Telecom Italia Group which is responsible for promoting technological innovation. Telecom Italia conceived and promoted JADE by basing it in 2000. The latest available dates from December 2022 (version 4.6.0). The first version of JADE distributed as free software is available from February 2000 (versión 1.3).

In March 2003 Motorola and Telecom Italia created the JADE Governing Board with the objective of promoting the development and adoption of JADE in the mobile telecommunications industry as middleware based. The JADE Governing Board accepts any company and/or organization interested in the commercial use and exploitation of JADE to commit to its development and promotion.

In 2021, the team that successfully developed JADE announced that they could not continue to work on it anymore. A team of researchers forked it is now pursuing the platform development.

Platform

JADE is a distributed agents platform, which has a container for each host where you are running the agents. Additionally, the platform has various debugging tools, mobility of code and content agents, the possibility of parallel execution of the behavior of agents, as well as support for the definition of languages and ontologies. Each platform must have a parent container that has two special agents called AMS and DF.

DF Agent

To access the DF agent the class "jade.domain.DFService" and its static methods are used: register, deregister, modify and Search.

AMS agent

To access the AMS Service an agent is created which automatically runs the register method of the AMS by default before executing the method setup from the new agent. When an agent is destroyed it executes its takeDown() method by default and automatically calls the deregister method of the AMS.

Agent class

The Agent class is a superclass which allows the users to create JADE agents. To create an agent one needs to inherit directly from Agent. Normally, each agent recorder several services which they should be implemented by one or more behaviors.

This class provides methods to perform the basic tasks of the agents as:

JADE agent

The cycle of life of a JADE agent follows the cycle proposed by FIPA. These agents go through different states defined as:

  1. Initiated: The agent has been created but has not registered yet the AMS.
  2. Active: The agent has been registered and has a name. In this state, it can communicate with other agents.
  3. Suspended: The agent is stopped because its thread is suspended.
  4. Waiting: The agent is blocked waiting for an event.
  5. Deleted: The agent has finished and his thread ended his execute and there is not any more in the AMS.
  6. Transit: The agent is moving to a new location.

Agents' behaviour

The behavior defines the actions under a given event. This behavior of the agent is defined in the method setup using the method addBehaviour. The different behaviors that the agent will adopt are defined from the abstract class Behaviour. The class Behaviour contains the abstract methods:

A user can override the methods onStart () and OnEnd () property. Additionally, there are other methods such as block () and restart () used for modifying the agent's behavior. When an agent is locked it can be unlocked in different ways. Otherwise the user can override the methods onStart() and onEnd() the agent possess.

Unlock an agent

  1. Receiving a message.
  2. When the timeout happens associated with block ().
  3. Calling restart.

ACL messages

Message passing ACL (Agent Communication Language) is the base of communication between agents. Sending messages is done by the method send of the class Agent. In this method, you have to pass an object of type ACLMessage that contains the recipient information, language, coding and content of the message. These messages are sent asynchronously, while messages are received they will be stored in a message queue. There are two types of receiving ACL messages, blocking or non-blocking. For this provide methods blockingReceive () and receive () respectively. In both methods, you can make filtering messages to be retrieved from the queue by setting different templates.

Extensions

JADE has an extension denominated WADE (Workflows and Agents Development Environment) which is a system of workflow which allows create process by a graphic editor named WOLF.

See also

Related Research Articles

<span class="mw-page-title-main">Smalltalk</span> Object-oriented programming language first released in 1972

Smalltalk is a purely object oriented programming language (OOP), created in the 1970s for educational use, specifically for constructionist learning, at Xerox PARC by Learning Research Group (LRG) scientists, including Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Diana Merry, and Scott Wallace.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

The Foundation for Intelligent Physical Agents (FIPA) is a body for developing and setting computer software standards for heterogeneous and interacting agents and agent-based systems.

Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple operating systems and network protocols. The middleware creates a distributed communications layer that insulates the application developer from the details of the various operating systems and network interfaces. APIs that extend across diverse platforms and networks are typically provided by MOM.

In computer science, a software agent or software AI is a computer program that acts for a user or other program in a relationship of agency, which derives from the Latin agere : an agreement to act on one's behalf. Such "action on behalf of" implies the authority to decide which, if any, action is appropriate. Some agents are colloquially known as bots, from robot. They may be embodied, as when execution is paired with a robot body, or as software such as a chatbot executing on a phone or other computing device. Software agents may be autonomous or work together with other agents or people. Software agents interacting with people may possess human-like qualities such as natural language understanding and speech, personality or embody humanoid form.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language or block coding is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

<span class="mw-page-title-main">Multi-agent system</span> Built of multiple interacting agents

A multi-agent system is a computerized system composed of multiple interacting intelligent agents. Multi-agent systems can solve problems that are difficult or impossible for an individual agent or a monolithic system to solve. Intelligence may include methodic, functional, procedural approaches, algorithmic search or reinforcement learning.

In computer science, message passing is a technique for invoking behavior on a computer. The invoking program sends a message to a process and relies on that process and its supporting infrastructure to then select and run some appropriate code. Message passing differs from conventional programming where a process, subroutine, or function is directly invoked by name. Message passing is key to some models of concurrency and object-oriented programming.

Cougaar is a Java agent architecture.

In computing and systems design, a loosely coupled system is one

  1. in which components are weakly associated with each other, and thus changes in one component least affect existence or performance of another component.
  2. in which each of its components has, or makes use of, little or no knowledge of the definitions of other separate components. Subareas include the coupling of classes, interfaces, data, and services. Loose coupling is the opposite of tight coupling.

Agent Communication Language (ACL), proposed by the Foundation for Intelligent Physical Agents (FIPA), is a proposed standard language for agent communications. Knowledge Query and Manipulation Language (KQML) is another proposed standard.

ARINC 661 is a standard which aims to normalize the definition of a Cockpit Display System (CDS), and the communication between the CDS and User Applications (UA) which manage aircraft avionics functions. The GUI definition is completely defined in binary Definition Files (DF).

<span class="mw-page-title-main">JADE (programming language)</span>

JADE is a proprietary object-oriented software development and deployment platform product from the New Zealand-based Jade Software Corporation, first released in 1996. It consists of the JADE programming language, Integrated development environment and debugger, integrated application server and object database management system.

IBM App Connect Enterprise is IBM's premier integration software offering, allowing business information to flow between disparate applications across multiple hardware and software platforms. Rules can be applied to the data flowing through user-authored integrations to route and transform the information. The product can be used as an Enterprise Service Bus supplying a communication channel between applications and services in a service-oriented architecture.

Knowledge Discovery Metamodel (KDM) is a publicly available specification from the Object Management Group (OMG). KDM is a common intermediate representation for existing software systems and their operating environments, that defines common metadata required for deep semantic integration of Application Lifecycle Management tools. KDM was designed as the OMG's foundation for software modernization, IT portfolio management and software assurance. KDM uses OMG's Meta-Object Facility to define an XMI interchange format between tools that work with existing software as well as an abstract interface (API) for the next-generation assurance and modernization tools. KDM standardizes existing approaches to knowledge discovery in software engineering artifacts, also known as software mining.

JACK Intelligent Agents is a framework in Java for multi-agent system development. JACK Intelligent Agents was built by Agent Oriented Software Pty. Ltd. (AOS) and is a third generation agent platform building on the experiences of the Procedural Reasoning System (PRS) and Distributed Multi-Agent Reasoning System (dMARS). JACK is one of the few multi-agent systems that uses the BDI software model and provides its own Java-based plan language and graphical planning tools.

Agent-oriented programming (AOP) is a programming paradigm where the construction of the software is centered on the concept of software agents. In contrast to object-oriented programming which has objects at its core, AOP has externally specified agents at its core. They can be thought of as abstractions of objects. Exchanged messages are interpreted by receiving "agents", in a way specific to its class of agents.

Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".

Enduro/X is an open-source middleware platform for distributed transaction processing. It is built on proven APIs such as X/Open group's XATMI and XA. The platform is designed for building real-time microservices based applications with a clusterization option. Enduro/X functions as an extended drop-in replacement for Oracle Tuxedo. The platform uses in-memory POSIX Kernel queues which insures high interprocess communication throughput.

MaSMT is a free, lightweight Multi-agent system development framework, design through the Java environment. The MaSMT3 framework provides three types of agents, namely ordinary agent and managing agent and root agent. The managing agent capable to handle set of ordinary agent and the root agent capable to handle set of manager agents. MaSMT3.0 includes few features than the previous versions. MaSMT 3.0 includes root agent to handle swam of agents, Environment handling features to dynamically store agent's ontology, and notice board has been introducing to see required messages and events. In addition to these main features, agent status monitor has been introducing to view transporting messages. Multi-agent technology is modern software palindrome that capable of handling the complexity of a software system and providing intelligent solutions through the power of agent communication. A framework is a useful tool to develop multi-agent system and it saves lot of programmer's time and provides standards for the agent development.

References