Multi-agent platforms gain popularity. One of the most interesting products is JADE, a platform conceived and developed in Italy.
Multi-agent platform, that is platforms able to register and coordinate multiple agents, are hardly a new thing. Also, the concept of software agent and the Agent-Oriented Programming approach are not new either. However, these are increasingly popular ideas, a bit like artificial intelligence is.
Brief history of agents and multi-agent platforms
The concept is most likely born of Bratman’s theory of human practical reasoning, also known as BDI (Belief-Desire-Intention), which in turn was inspired by Dennett’s ideas on intentional stance. This work was an attempt to explain and predict the behavior of rational “agents”.
The main idea was to impute “beliefs” and “desires” to an actor (the rational agent) and to predict its behavior by implementing practical reasoning in it. Bratman added that the notion of “intention” was fundamental to explain the behavior of those agents, that is the desires on which the agent decides to commit. The intention would then be translated into a plan to accommodate these desires.
The term “Agent-Oriented Programming” (AOP) was coined by Shoham in 19931. His idea was that cognitive structures like beliefs, desires, and intentions could be used not only to predict and explain the behavior of certain agents but also to program them. Shoham conceived and proposed AGENT-0, an ad-hoc programming language, in which those notions were incorporated as first-class structures.
Following AGENT-0, more high-level programming languages were developed, such as AgentSpeak, GOAL, 3APL, 2APL, SARL (of which Janus is one of the most used run-times)2. However, several research results suggested the importance of using already consolidated main-stream languages as representation languages3. This led to implement platforms of a certain success like Jason/AgentSpeak, JADE, WADE, Jack AOS, Netlogo, Jiac, Jadex.
Standardization
The creation of the FIPA (Foundation for Intelligent Physical Agents) in 1995 was an important step towards standardization. FIPA defined an architectural standard for the implementation and execution of agents, as well as an inter-agent communication standard (ACL). Since 2005, FIPA has ceased to be autonomous and has joined the IEEE Computer Society as the 11th standardization committee. However, those projects have kept gaining traction in recent years. A good example is JADE, developed by Telecom Italia Lab, which is considered the most widespread multi-agent platform to this day.
So, what is an agent?
We can define a software agent as a system that acts on behalf of a user (or another system), which is autonomous, social, reactive and proactive4.
Intelligent agents at work in World War Z (Crowd scenes created with Cinesite’s Alice crowd simulator)
Nowadays the use of software agents has become more widespread, from web crawlers to chatbots, to content editing bots5, to crowd simulation software in cinema (famous in some scenes of mass in the movie World War Z). To get a general idea of the areas of application, just take a look at the AAMAS 2017 call for papers page.
Intelligent agents at work in World War Z (Crowd scenes created with Cinesite’s Alice crowd simulator)
Multi-Agent Platforms (MAS)
Basically, when we talk about MAS we are talking about a platform able to manage the execution of agents and their interactions. Moreover, this kind of systems allows the management of very complex interactions between autonomous agents, as well as their movements from one container to another (mobile agents).
ARCHITECTURE
FIPA defines a set of components for agent platforms:

- One or more Directory Facilitator (DF): naming service that holds the updated list of agents
- One Agent Management System (AMS): mandatory service that manages all the operations related to agents (creation, destruction, migration..)
- The Message Transport Service (MTS): service provided by the platform to transport messages in FIPA-ACL format. This service is mandatory for the cross-platform communication and runs over the MTP (Message Transfer Protocol). The Internal Message Transfer Protocol (IMTP) is not required to communicate with external platforms, therefore it is not defined and left free to optimizations.

Development methodologies
Multi-agent systems have been developed for years according to a very well tested methodology, known as PASSI (Process for Agent Societies Specification and Implementation), for which an AGILE evolution has also recently been proposed.

JADE
A detailed analysis of the theory and architecture of multi-agent systems is outside the scope of this article. However, I will make an exception for JADE, as it is not only one of the most used and known platforms today, but also totally developed in Italy.
JADE (Java Agent Development framework) as a platform was created 1998, with the goal of validating the FIPA specifications, conceived by Fabio Bellifemine, Agostino Poggi and Giovanni Rimassa within Telecom Italia Lab. and subsequently led by Giovanni Caire. The project was strongly stimulated by wide-ranging initiatives such as FACTS and Agentcities.

Architecture
The architecture of Jade, entirely in Java, provides one main container, started first during the boot of the platform, and one or more secondary containers.

The main container has the following responsibilities:
- Host the Container Table (CT), which works as a registry of all the containers that make up the platform.
- Maintain the Global Agent Descriptor Table (GADT), which works as a registry of all the agents of the platform, including status and location.
- Maintain a Local Agent Descriptor Table (LADT), similar to the GADT, but related to locally hosted agents. This is a common responsibility for all containers.
In addition to application agents, it contains two special agents: the Directory Facilitator (DF), a sort of yellow pages service that maintains an updated list of all authorized agents and the Agent Management Service (AMS), which oversees the entire platform, managing the agents’ life cycle.
It is also possible to deploy JADE in “lightweight” environments (eg Android) with Java ME or.NET. through the LEAP add-on.
Communication
When the agents reside in the same Virtual Machine, the inter-agent communication happens directly through Java events, since they are all threads of the same process. On the other hand, the communication across different containers of the same platform uses IMTP, on top of Java RMI or socket TCP (eg in JME platforms, where RMI is not available).
Communication between agents across different platforms requires some interoperability, and the use of shared protocols (MTP: Message Transfer Protocol). To this date, JADE only supports HTTP, HTTPS, IIOP, and JMS.
Mobility
One of the most interesting features of JADE is the support to the mobility of agents, ie the ability to move an agent’s code and status between two JADE platforms, thanks to jipms, an add-on originally developed by the Universitat Autonoma de Barcelona.
Artificial intelligence
JADE provides the basic infrastructure for managing agents and executing behaviors, but it does not implement any form of “smart” behavior. However, there are possibilities to integrate JADE with different types of engines.
Here are some examples:
Rule-based reasoning
JADE can be easily integrated with JESS, a rule engine in Java, which implements the RETE algorithm.

In this way, the agents would be able to make inferences and manage rules-based behaviors. Furthermore, it is possible to create complex systems by integrating JADE + JESS with Knowledge bases of ontologies created with Protégé (see JadeJessProtege and the presentation on the Protégé website ).

BDI (Belief-Desire-Intention)
With Jadex it is possible to add BDI models to Jade agents.

Workflow
Though workflow management is not necessarily linked to artificial intelligence, it still is an important feature in that context. WADE (Workflow Agent Development Environment) has been implemented to add this feature to Jade, and has now become the most important extension of the whole platform.

Projects and use cases
WANTS-Assurance
WANTS is one of the mission-critical projects implemented by Telecom with WADE, and it has been successfully running in production since 2008.
The scope of the project is real-time monitoring of more than 3 million xDSL lines simultaneously.

Traditionally when the xDSL lines reach the central unit, they are split in two: the voice component is directed towards the traditional telephone line, while the data component is connected to a DSLAM, which then conveys up to 800 lines in the broadband network. When the project was started, Telecom Italia had more than 25,000 DSLAMs installed in Italy, for a total of over 8 million phone lines. At the time there was a process of migration from ATM to IP technology in progress and about 5000 IP DSLAM installed on 3 million lines.
The quality of the line can be affected by many factors (cable degradation, distance from the control cabinet, noise, etc.), and can be managed through a number of parameters. These parameters which must periodically be re-adjusted through what is called DLM (Dynamic Line Management) to maintain the quality of the line at acceptable levels. Consequently, given the order of magnitude of the number of lines involved, it was necessary to automate these procedures.
Wants architecture
Unlike the traditional DSLAM polling (not particularly efficient given the number of lines), a “push” approach was adopted. That is, the network devices would be queried only as a consequence of a notification sent by the DSLAM. The data returned by the devices would then be stored in a special database.
The main advantages were the possibility to intervene proactively even in the absence of trouble tickets, before any complaints from the user. Furthermore, the technician would have the entire historical data ready at hand.
Given the amount of traffic expected (over 15 million notifications per day, up to 500 per second), high scalability was required, and the architecture prepared was as shown below:

- Notification Handler Agents (NH): Agents intended to receive TRAP notifications from DSLAMs, about one every 1000 devices.
- Resource Proxy Agents (RP): a pool of about 200 agents was responsible for processing notifications and diagnosing any variation of the quality of the connectivity.
- Device Assignment Manager Agent (DAM): this is the agent that manages the assignations of the devices to the RP agents. In order to be able to intervene on a DSLAM, all the components of the platform must first obtain its reference from the DAM.
- Network Manager Agent (NM): Administrative Agent, it performs tasks such as assigning a new device to the system
- Dynamic Line Management Agent (DLM): These agents are in charge of the management of the line, applying the necessary configurations, as shown in the figure.

NFV Sentinel
NFV (Network Function Virtualization) is a concept that is increasingly gaining ground since the advent of the cloud, and whose expansion will probably be brought to its maximum power with the advent of 5G.
The basic concept is to progressively virtualize all network functions, replacing hardware devices with software functionality. Telecom has already released the first phase of the project in production, and plans to start replacing all “core” network functions (ex: DNS, HLR, etc.).

The project Service Guard (renamed in Sentinel) was released in production last year in 2016. The goal of the project is the monitoring of all the new NFV network of Telecom through WADE.

Other Projects
Multi-Agent Based Cloud Service Composition using the Net Contract for Information Retrieval Purpose : Multi-Agent System for Information Retrieving in the Medical Field, using JADE + JavaEE (pdf)
ACE-JADE: JADE extension that adds support to Autonomic Computing [source: “Enabling Autonomic Computing Support for the JADE Agent Platform“]
MACSimJX: Software that allows MATLAB models created with SimuLink to access JADE.
Other possible scenarios
IoT
JADE is implemented in Java, and as demonstrated by the two Telecom projects, it allows the mobility of agents between any platform and/or device that supports Java. Moreover, the integration between LEAP and Java ME paves the way virtually for any embedded solution. This is possible thanks to MIDP, that resides at the top of the CLDCs for small devices, and to CDC for devices a bit more capable, like smartphones and set-top boxes6.
Some examples:
Jade Implementation of Power Restoration in Automated Distributed System: System for managing and resolving faults in electrical networks, modeled and simulated with Simulink and implemented with JADE + MACSimJX.
IMAIS: proposed in A Mobile Multi-Agent Information System for Ubiquitous Fetal Monitoring, an agent system implemented with JADE, for the monitoring of fetus’ vital functions.
Efficient Model for Distributed Computing based on Smart Embedded Agent: an interesting parallel processing model in a distributed environment, realized with JADE on Raspberry PI.
Big Data
The high parallelism and the mobility allowed by the agent platforms allows optimizing resources by performing pre-analysis in the vicinity of the source. Furthermore, they can solve architectural problems such as Single Point of Failure. For example, Divya and Shunmuganathan at ISCO last year proposed an architectural modification to Hadoop replacing the JobTracker (which is the single point of failure) with JADE agents, which was able to process the queries and assign tasks to the various nodes independently.
Machine Learning
“We are working to extend JADE with artificial intelligence systems, and Big Data systems like Hadoop”7
Says Giovanni Caire of Telecom Italia, but the integration between Jade and neural networks has already stimulated various proposals and works8.
Notes:
1. Agent-oriented programming, Artificial Intelligence, 60(1):51-92
2. That proliferation of language programming was also stimulated by international workshops such as AAMAS (Autonomous Agents and Multi-Agent Systems, organized by IFAAMAS) and COIN (Coordination, Organization, Institution, and Norms in Agent Systems).
3. For the most part Java, even if there are implementations for example in Python as SPADE.
4. Autonomous: can set its own goals and plans, social: can interact and possibly cooperate with other agents, reactive: able to respond and adapt to external stimuli, proactive: able to act on their own initiative.
5. See the curious problem of “bickering” between bots in Wikipedia
6. MIDP: Mobile Information Device Profile, CLDC: Connected Limited Device Configuration, CDC: Connected Device Configuration
7. JADE today mainly provides the architectural infrastructure and support for mobility, but does not provide any explicit functionality of artificial reasoning.
8. Just as an example: DEIR: Multi-agent Software Control System with Hybrid Intelligence for Ubiquitous Intelligent Environments, which is a system for Ubiquitous Computing, implemented with JADE, UPnP (Universal Plug & Play), and an engine of inference called MAHIS, combining fuzzy inference and decision tree.
Andrea has been working in IT for almost 20 years, covering about everything, from development to business analysis, to project management.
Today we can tell he is a carefree gnome, passionate with Neurosciences, Artificial Intelligence, and photography