Information Technology Reference
In-Depth Information
2.2.2 Agent Components
The agent code is the core component of the agent and contains the agent's main func-
tionality. The code is developed and compiled using a programming language and com-
puter architecture supported by the hosting agent middlewares.
The agent code is usually interpreted code, since it must be easily separable from its
local agent platform for, later, being incorporated to a remote agent platform. This is the
main reason why most of the mobile agent systems run over an interpreter or a virtual
machine, e.g., the Java Runtime Environment.
The agent data are the movable resources associated to the mobile agent, i.e., all the
information used and, maybe, produced by the agent during its life, which is moved
along with it. In object oriented systems this is usually associated to the object instance.
How this information is encoded is completely dependent on each agent middleware,
e.g., in Java mobile agent systems the Java Serialisation mechanism is typically used.
The agent state is the information associated to the agent execution from a oper-
ating system point of view. It comprises the program counter, the heap, and so forth.
Nonetheless, most of the code interpreters used in mobile agent systems do not support
access to this information.
2.2.3 Agent Standards
Since currently several agent middleware implementations exist, a number of organ-
isations have initiated the development of agent standards in an attempt to deal with
the problem of incompatibility and interoperability. The most extended agent standards
are the ones proposed by IEEE Foundation for Intelligent Physical Agents (IEEE-FIPA,
http://www.fipa.org) , which is an organisation focused on the management and com-
munication of intelligent agents. The specifications standardised by IEEE-FIPA define
the basic components of an agent platform, an agent identification scheme, a complete
communication infrastructure, and several agent management services.
2.3
Agent Mobility
Agent mobility is the ability of agents to suspend their execution, move their code, data,
and state to another location, and there resume their execution. The set of actions in-
volved in the movement of an agent is called migration process . The complexity of this
process is variable and depends on the protocols and type of mobility chosen. A mobil-
ity mechanism that allows the use of different mobility protocols, and which is based
on the IEEE-FIPA standards, is the Inter-Platform Mobility Architecture (IPMA) [7].
2.3.1 Types of Agent Mobility
Not all the agent middlewares can deal with the agent state. Depending on this fact two
types of agent mobility [12] can be distinguished: strong and weak mobility.
Strong mobility allows agents to suspend their execution and resume it exactly at
the same point it was suspended. This is an advantage for the agent developer, who do
not need to add any special code to continue the execution at the appropriate place of
the code, see Algorithm 1 of Figure 1. However, strong mobility is complex to imple-
ment because of the need to capture and restore the agent state. Furthemore, this type
 
Search WWH ::




Custom Search