A jabber-based multi-agent system platform
Proceedings of the fifth international joint conference on Autonomous agents and multiagent systems AAMAS 06 (2006)
- ISBN: 1595933034
- DOI: 10.1145/1160633.1160866
Available from portal.acm.org
or
Abstract
This paper presents a new multi-agent system platform that takes advantage of XMPP. Among the new message transport protocols that have been recently developed, Jabber (XMPP) is a protocol that is based on Instant Messaging networks that use real-time ...
Available from portal.acm.org
Page 1
A jabber-based multi-agent system platform
A Jabber-based Multi-Agent System Platform ∗
Miguel Escriva´ Gregori
Dept. de Sistemas
Informa´ticos y Computacio´n
Universidad Polite´cnica de
Valencia
Camino de Vera s/n
Valencia, Spain
mescriva@dsic.upv.es
Javier Palanca Ca´mara
Dept. de Sistemas
Informa´ticos y Computacio´n
Universidad Polite´cnica de
Valencia
Camino de Vera s/n
Valencia, Spain
jpalanca@dsic.upv.es
Gustavo Aranda Bada
Dept. de Sistemas
Informa´ticos y Computacio´n
Universidad Polite´cnica de
Valencia
Camino de Vera s/n
Valencia, Spain
garanda@dsic.upv.es
ABSTRACT
This paper presents a new multi-agent system platform that
takes advantage of XMPP. Among the new message trans-
port protocols that have been recently developed, Jabber
(XMPP) is a protocol that is based on Instant Messaging
networks that use real-time messaging between applications.
This platform is fully FIPA compliant and provides a sim-
ple interface to create agents using this new communication
concept.
1. INTRODUCTION
In this paper we introduce a new multiagent-system plat-
form (called SPADE) that takes advantages of a new com-
munication model and that provides a simple interface to
create agents using this new communication concept. This
communication model is based on Instant Messaging pro-
tocols that use real-time messaging between applications.
Agent communication is improved by using this protocol
due to its new features, such as the Contact List manage-
ment for agents, the ability to receive a notification when-
ever any other known agent (included in its Contact List)
comes online or the possibility of engaging a simultaneous
multi-conference with many agents.
This new platform is fully FIPA compliant to allow inter-
operability with other platforms. Its main objective is to
provide good performance while retaining strong scalability
options and to provide an open design that allows the im-
plementation of platform components in several high-level
programming languages.
Our proposal provides a human-like framework to commu-
nicate agents. It allows them to have a conversation (with
all the meta-information required in a real conversation in-
cluded) with any other ’entity’. This platform is described
∗This work is partially supported by the TIC2003-07369-
C02-01 and TIN2005-03395 projects of the spanish govern-
ment.
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that copies
bear this notice and the full citation on the first page. To copy otherwise, to
republish, to post on servers or to redistribute to lists, requires prior specific
permission and/or a fee.
AAMAS’06 May 8–12 2006, Hakodate, Hokkaido, Japan.
Copyright 2006 ACM 1-59593-303-4/06/0005 ...$5.00.
in depth in the following section.
2. SPADE
SPADE (a Smart Python multi-Agent Development Envi-
ronment) is a new platform aimed at solving the drawbacks
of the communication models from other platforms. The
multi-agent system platform SPADE is built around a new
communication framework (Jabber[1]) which provides new
and powerful capabilities to the communication layer. The
platform core is designed over this layer, which communi-
cates the platform elements with one another.
2.1 The Communication Model
Communications in SPADE are handled by means of the
Jabber protocol. Jabber is the Internet standard protocol
for instant messaging and presence communication[1, 2]. Its
base technology is the Extensible Messaging and Presence
Protocol (XMPP) standard, a set of streaming XML pro-
tocols and technologies that enable any two entities on the
Internet to exchange messages, presence, and other struc-
tured information in close to real-time.
Presence notification is one of the most useful Jabber
features that SPADE provides. It is a system by which an
entity involved in a Jabber communication can know at any
time what the current status of any of the other entities in-
volved is. Jabber entities can declare what their current sta-
tus is and all other entities who share a bond with them will
automatically be notified. An entity status usually indicates
its availability and readiness to engage in a communication
(e.g. ’Available’, ’Busy’, ’Don’t disturb’, . . . ), but it is not
closed to a short predefined list. Entities can define their
own status and their meanings. Two or more Jabber enti-
ties can be bonded (or subscribed) to each other. Entities
that share a bond may make use of presence notification as
described above.
Another interesting SPADE feature is Multi-user Con-
ference (MUC). MUC features can be used to create forums
for agents to connect to when performing a multi-agent ac-
tivity. For instance, in a virtual auction scenario performed
by agents, an agent playing the role of the auctioneer can
create a password-protected channel and give the password
only to previously certified agents. Then, in the channel, the
auctioner can give the right to speak only to agents who are
going to play the bidder role, leaving the rest of the agents
in spectator mode. Once the auction starts, every time a
bidder wants to place a bid, the agent only needs to ’speak’
in the channel, and all the other bidders and the auctioneer
1282
Miguel Escriva´ Gregori
Dept. de Sistemas
Informa´ticos y Computacio´n
Universidad Polite´cnica de
Valencia
Camino de Vera s/n
Valencia, Spain
mescriva@dsic.upv.es
Javier Palanca Ca´mara
Dept. de Sistemas
Informa´ticos y Computacio´n
Universidad Polite´cnica de
Valencia
Camino de Vera s/n
Valencia, Spain
jpalanca@dsic.upv.es
Gustavo Aranda Bada
Dept. de Sistemas
Informa´ticos y Computacio´n
Universidad Polite´cnica de
Valencia
Camino de Vera s/n
Valencia, Spain
garanda@dsic.upv.es
ABSTRACT
This paper presents a new multi-agent system platform that
takes advantage of XMPP. Among the new message trans-
port protocols that have been recently developed, Jabber
(XMPP) is a protocol that is based on Instant Messaging
networks that use real-time messaging between applications.
This platform is fully FIPA compliant and provides a sim-
ple interface to create agents using this new communication
concept.
1. INTRODUCTION
In this paper we introduce a new multiagent-system plat-
form (called SPADE) that takes advantages of a new com-
munication model and that provides a simple interface to
create agents using this new communication concept. This
communication model is based on Instant Messaging pro-
tocols that use real-time messaging between applications.
Agent communication is improved by using this protocol
due to its new features, such as the Contact List manage-
ment for agents, the ability to receive a notification when-
ever any other known agent (included in its Contact List)
comes online or the possibility of engaging a simultaneous
multi-conference with many agents.
This new platform is fully FIPA compliant to allow inter-
operability with other platforms. Its main objective is to
provide good performance while retaining strong scalability
options and to provide an open design that allows the im-
plementation of platform components in several high-level
programming languages.
Our proposal provides a human-like framework to commu-
nicate agents. It allows them to have a conversation (with
all the meta-information required in a real conversation in-
cluded) with any other ’entity’. This platform is described
∗This work is partially supported by the TIC2003-07369-
C02-01 and TIN2005-03395 projects of the spanish govern-
ment.
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that copies
bear this notice and the full citation on the first page. To copy otherwise, to
republish, to post on servers or to redistribute to lists, requires prior specific
permission and/or a fee.
AAMAS’06 May 8–12 2006, Hakodate, Hokkaido, Japan.
Copyright 2006 ACM 1-59593-303-4/06/0005 ...$5.00.
in depth in the following section.
2. SPADE
SPADE (a Smart Python multi-Agent Development Envi-
ronment) is a new platform aimed at solving the drawbacks
of the communication models from other platforms. The
multi-agent system platform SPADE is built around a new
communication framework (Jabber[1]) which provides new
and powerful capabilities to the communication layer. The
platform core is designed over this layer, which communi-
cates the platform elements with one another.
2.1 The Communication Model
Communications in SPADE are handled by means of the
Jabber protocol. Jabber is the Internet standard protocol
for instant messaging and presence communication[1, 2]. Its
base technology is the Extensible Messaging and Presence
Protocol (XMPP) standard, a set of streaming XML pro-
tocols and technologies that enable any two entities on the
Internet to exchange messages, presence, and other struc-
tured information in close to real-time.
Presence notification is one of the most useful Jabber
features that SPADE provides. It is a system by which an
entity involved in a Jabber communication can know at any
time what the current status of any of the other entities in-
volved is. Jabber entities can declare what their current sta-
tus is and all other entities who share a bond with them will
automatically be notified. An entity status usually indicates
its availability and readiness to engage in a communication
(e.g. ’Available’, ’Busy’, ’Don’t disturb’, . . . ), but it is not
closed to a short predefined list. Entities can define their
own status and their meanings. Two or more Jabber enti-
ties can be bonded (or subscribed) to each other. Entities
that share a bond may make use of presence notification as
described above.
Another interesting SPADE feature is Multi-user Con-
ference (MUC). MUC features can be used to create forums
for agents to connect to when performing a multi-agent ac-
tivity. For instance, in a virtual auction scenario performed
by agents, an agent playing the role of the auctioneer can
create a password-protected channel and give the password
only to previously certified agents. Then, in the channel, the
auctioner can give the right to speak only to agents who are
going to play the bidder role, leaving the rest of the agents
in spectator mode. Once the auction starts, every time a
bidder wants to place a bid, the agent only needs to ’speak’
in the channel, and all the other bidders and the auctioneer
1282
Page 2
will know the bid at the same time. MUC channels can also
be used for broadcasting announcements, public platform
information, selected distribution lists, etc.
2.2 The Platform Model
The SPADE platform is modeled according to the FIPA
standard proposal for a multi-agent platform [3]. It features
standard basic services (such as an Agent Management Sys-
tem and a Directory Facilitator) that are designed as Jabber
server components (or add-ins). Although the core commu-
nication system relies on the Jabber technology, other mes-
sage transport protocols, such as the HTTP protocol[4], are
also supported.
A brief schema of the SPADE Platform can be viewed in
Figure 1.
Figure 1: Platform Model
The main platform element is the XML Router, which
the rest of the platform components and agents are con-
nected to. It is a standard XMPP server[1] that routes all
the messages from its sender to the specified receiver with
no user intervention. This XML Router acts as the Mes-
sage Transport System (MTS) and is the only ’third-party’
component of the platform. One of this components con-
nected to the router is the SPADE Agent Communi-
cation Channel (ACC), which manages all the communi-
cation within the platform. It receives the FIPA-ACL1[5]
messages that arrive to the platform and it redirects them
to the correct destination element. This destination can be
either an agent or another component.
2.2.1 Security Concerns
The SPADE framework provides some built-in security
mechanisms that help to maintain the system’s integrity.
These mechanisms are developed in different security levels:
♠ Logging to the XML Router requires a username and
a password. This mechanism prevents an unautho-
rized connection to the platform if it is not approved
by the platform administrator.
♠ A connection to the XML Router can be encoded with
a symmetric cryptographic algorithm using SSL (Se-
cure Socket Layer). SSL provides data cyphering,
server authentication, message integrity and, op-
tionally, client authentication for TCP-IP connections.
1FIPA Agent Communication Language
Figure 2: SPADE Agent Model
♠ To ensure the authentication of a message, the XML
Router provides another mechanism to avoid identity
theft. The platform prevents identity spoofing by over-
riding a ’from’ field that does not match the sender’s.
2.2.2 Platform Inter-operability
The Message Transport System can manage as many MTPs
as there are plugged to the platform. If the protocol is
XMPP (Jabber protocol), the MTS delivers the message
directly to the receiver agent. This feature allows SPADE
to communicate with any kind of FIPA compliant platform
that supports the XMPP Message Transport Protocol.
We have also developed a new JADE plug-in that provides
a MTP implementing the XMPP protocol. This plug-in
has been accepted by the JADE Team and is published in
[6]. Thanks to this new MTP, a SPADE platform and a
JADE platform can communicate with each other using the
Jabber protocol. Actually, two JADE platforms can use this
new XMPP plug-in to communicate their agents and take
advantage of this new proposed Transport Protocol.
2.3 The Agent Model
Every component inside the platform is built as an agent.
SPADE agents are elements that are connected to the MTS
that can send messages to each other and to other platforms.
The Agent Model is basically composed of a connection
mechanism to the platform, a message dispatcher, and a set
of different tasks that the dispatcher gives the messages to
(–see Figure 2). Every agent needs an identifier called Jab-
ber ID (JID) and a valid password to establish a connection
with the platform. If the platform registration process is
disabled, then the platform administrator should define the
registration policies. An agent can run serveral tasks simul-
taneously. A task is a process that an agent can execute
using repeating patterns. SPADE provides some predefined
task types: Cyclic, One-Shot, Periodic, Time-Out, and Fi-
nite State Machine Task. Those task types help to imple-
ment different the tasks that an agent can perform. Every
agent can have as many tasks as desired. When a message
arrives to the agent, the message dispatcher redirects it to
the correct task queue (–see Figure 2).
1283
be used for broadcasting announcements, public platform
information, selected distribution lists, etc.
2.2 The Platform Model
The SPADE platform is modeled according to the FIPA
standard proposal for a multi-agent platform [3]. It features
standard basic services (such as an Agent Management Sys-
tem and a Directory Facilitator) that are designed as Jabber
server components (or add-ins). Although the core commu-
nication system relies on the Jabber technology, other mes-
sage transport protocols, such as the HTTP protocol[4], are
also supported.
A brief schema of the SPADE Platform can be viewed in
Figure 1.
Figure 1: Platform Model
The main platform element is the XML Router, which
the rest of the platform components and agents are con-
nected to. It is a standard XMPP server[1] that routes all
the messages from its sender to the specified receiver with
no user intervention. This XML Router acts as the Mes-
sage Transport System (MTS) and is the only ’third-party’
component of the platform. One of this components con-
nected to the router is the SPADE Agent Communi-
cation Channel (ACC), which manages all the communi-
cation within the platform. It receives the FIPA-ACL1[5]
messages that arrive to the platform and it redirects them
to the correct destination element. This destination can be
either an agent or another component.
2.2.1 Security Concerns
The SPADE framework provides some built-in security
mechanisms that help to maintain the system’s integrity.
These mechanisms are developed in different security levels:
♠ Logging to the XML Router requires a username and
a password. This mechanism prevents an unautho-
rized connection to the platform if it is not approved
by the platform administrator.
♠ A connection to the XML Router can be encoded with
a symmetric cryptographic algorithm using SSL (Se-
cure Socket Layer). SSL provides data cyphering,
server authentication, message integrity and, op-
tionally, client authentication for TCP-IP connections.
1FIPA Agent Communication Language
Figure 2: SPADE Agent Model
♠ To ensure the authentication of a message, the XML
Router provides another mechanism to avoid identity
theft. The platform prevents identity spoofing by over-
riding a ’from’ field that does not match the sender’s.
2.2.2 Platform Inter-operability
The Message Transport System can manage as many MTPs
as there are plugged to the platform. If the protocol is
XMPP (Jabber protocol), the MTS delivers the message
directly to the receiver agent. This feature allows SPADE
to communicate with any kind of FIPA compliant platform
that supports the XMPP Message Transport Protocol.
We have also developed a new JADE plug-in that provides
a MTP implementing the XMPP protocol. This plug-in
has been accepted by the JADE Team and is published in
[6]. Thanks to this new MTP, a SPADE platform and a
JADE platform can communicate with each other using the
Jabber protocol. Actually, two JADE platforms can use this
new XMPP plug-in to communicate their agents and take
advantage of this new proposed Transport Protocol.
2.3 The Agent Model
Every component inside the platform is built as an agent.
SPADE agents are elements that are connected to the MTS
that can send messages to each other and to other platforms.
The Agent Model is basically composed of a connection
mechanism to the platform, a message dispatcher, and a set
of different tasks that the dispatcher gives the messages to
(–see Figure 2). Every agent needs an identifier called Jab-
ber ID (JID) and a valid password to establish a connection
with the platform. If the platform registration process is
disabled, then the platform administrator should define the
registration policies. An agent can run serveral tasks simul-
taneously. A task is a process that an agent can execute
using repeating patterns. SPADE provides some predefined
task types: Cyclic, One-Shot, Periodic, Time-Out, and Fi-
nite State Machine Task. Those task types help to imple-
ment different the tasks that an agent can perform. Every
agent can have as many tasks as desired. When a message
arrives to the agent, the message dispatcher redirects it to
the correct task queue (–see Figure 2).
1283
Sign up today - FREE
Mendeley saves you time finding and organizing research. Learn more
- All your research in one place
- Add and import papers easily
- Access it anywhere, anytime
Start using Mendeley in seconds!
Readership Statistics
8 Readers on Mendeley
by Discipline
by Academic Status
50% Student (Master)
50% Ph.D. Student
by Country
25% Germany
13% Denmark
13% Canada


