2 BACKGROUND
This section defines the concepts that are part of the
patterns that enhance KQML with mobility features.
Agents and mobile agents are defined, as well as the
KQML agent communication language, and the envi-
ronment where our proposal is deployed.
Agents (Wooldridge and Jennings, 1995) are au-
tonomous software entities that act representing users.
These agents have functionalities in order to help the
users they represent. Agents are able to be station-
ary or mobile, depending on whether they can move
around different computers or not. Also, they are able
to communicate with other agents. The agents used
in this paper are defined as intelligent, autonomous,
social, able to learn, and mobile.
A mobile agent (Lange and Oshima, 1999) is a
process that can transport its state from one environ-
ment to another, with its data intact, and be capable
of performing appropriately in the new environment
the same activities as in the original one. Mobile
agents decide when (e.g., to look for a better resource
allocation, a less hostile environment to work, etc.)
and where to move. When a mobile agent decides
to move, it saves its own state, transports this saved
state to the new host, and resumes execution from
the saved state. This makes them a powerful tech-
nique for implementing distributed applications. Ad-
vantages of mobile agents are: computation bundles,
parallel processing, dynamic adaptation, tolerance to
network faults, flexible maintenance, and portability.
Knowledge Query and Manipulation Lan-
guage (KQML) (Finin et al., 1994) is an ACL to sup-
port communication between intelligent agents. Each
KQML message contains the action to be carried out
(also known as the performative) as well as the param-
eters of this communication (e.g., sender, receiver,
etc.). In this work, we propose a subset of KQML
patterns that require a facilitator: recommend, broker,
subscribe, recruit, and forward; and the point-to-point
communication pattern, which does not require it.
In the recommend pattern, the service provider
agent advertises one of its capabilities to the facilita-
tor. Then, the client agent queries the facilitator about
an agent that has to be able to develop the same capa-
bility. In this case, the facilitator will send the recom-
mendation to the client agent, and finally this agent
will send the query to the service provider. The bro-
ker pattern works in a similar way as the recommend
pattern. That is, the service provider advertises one of
its capabilities, and then the client queries the facilita-
tor to act as a broker for the same capability. Then, the
facilitator will ask the service provider and then col-
lects its answer and sends it to the client agent. This
is, the facilitator acts as a mediator in the communi-
cation process between client and service provider.
The subscribe pattern consists on the service
provider querying the facilitator to subscribe to all the
answers of a query. Then, the facilitator sends the
client all the answers it receives to the query. The re-
cruit pattern is similar to the broker pattern, but the
service provider sends the answer to the client di-
rectly. Finally, in the forward pattern, the client sends
a query to the facilitator, but asking it to forward the
query to a specific agent, because the client agent
knows a specific service provider agent, but for any
reason it does not know its location.
For the definition of the environment, this pro-
posal relies on the Agents & Artifacts conceptual
framework (Ricci et al., 2007). This framework rep-
resents and structures the environment by means of
an aggregation of workspaces. The workspace where
an agent is located is considered as its local environ-
ment, and its granularity can be chosen by the sys-
tem designer (e.g., a workspace could be a portion of
a machine, the whole machine, or a network of ma-
chines), being possible to make a scalable system.
Workspaces provide a physical description of the
environment, in a similar way as the real world is
described. Each workspace has an absolute posi-
tion inside the environment. Workspaces can be in-
tersected and nested between them, features that al-
low an agent to be located in different workspaces
at the same time, and to make the system extensible
(adding new workspaces, merging or splitting exist-
ing workspaces, etc.). An agent is placed, at least,
in one workspace, so this agent has a specific loca-
tion within the environment. It is also possible for an
agent to move inside a workspace if the workspace
is big enough. In this case, the position of the agent
will not be the position of the workspace it is located,
but a position inside the workspace. The proposed
approach assumes that each mobile agent knows the
facilitator located in their current environment using a
service discovery protocol via multicast communica-
tions. For example, each facilitator periodically issues
heartbeat messages with its agent identifier so newly
visiting agents receive the messages to know the fa-
cilitator that is available in their current locations.
The A&A framework also includes artifacts, enti-
ties located in the environment that are reactive (but
not proactive), and provide functionalities to agents
(that are able to use artifacts in order to achieve their
objectives). Artifacts feature: (i) observable proper-
ties, which are able to be checked by agents but not
directly modified by them; (ii) operations, which are
functions that agents can execute; and (iii) link oper-
ations, similar to operations but they require another
ICAART2014-InternationalConferenceonAgentsandArtificialIntelligence
132