Mobile Agent Systems

Mobile Agent Systems

Farhan Siddiqui (Walden University, USA), Sherali Zeadally (University of the District of Columbia, USA) and Kashinath Basu (Oxford Brookes University, UK)
DOI: 10.4018/978-1-61350-107-8.ch002
OnDemand PDF Download:
No Current Special Offers


The mobile agent paradigm has received considerable attention in recent years for its wide applications in various areas of computing technology. This has led to the development of several commercial, as well as research oriented mobile agent systems. Recently, mobile agent technology is being employed for providing mobility support in networking and telecommunication environments. This article outlines various uses and types of mobile agents, along with their benefits, and limitations. The authors provide an insight into the application of mobile agents to support mobility management, focusing on ongoing research and recent research development efforts. Potential challenges associated with using mobile agents for mobility purposes are also discussed.
Chapter Preview

Overview Of Mobile Agent Technology

An agent is defined as an independent software program that runs on behalf of a network user. It can be characterized as having more or less intelligence and it has the ability to learn. An agent uses the internal world state information and inference engine to compute the actions to be performed on the environment either by sensing the environment or upon reception of messages from other agents/users (Manvi, 2004). Mobile agents (MAs) add to regular agents the ability to travel to multiple locations in the network, by saving their state and restoring it in the new host. As they travel they work on behalf of the user, such as collecting information or delivering requests. This mobility greatly enhances the productivity of each computing element in the network and creates a powerful computing environment. Mobile agents require a software infrastructure that provides them security and data protection. This infrastructure includes protocols, rules for safe mobility, and directions and directories with information about all available hosts. Mobile Code and mobile agents introduce a programming model that is alternative to the traditional programming techniques and models. (Paulino, 2002). The reason for this is not to gain in performance, or to make new applications possible but because it supplies a general framework in which distributed information-oriented applications can be implemented easily, efficiently, and robustly. Mobile agents can be considered to be an application of distributed artificial intelligence where the agent code (often small) is moved to the data (often large) and executed locally as opposed to conventional mechanisms which move large amounts of data to the code (Balamuru, 2000). An agent consists of three parts:

  • Agent code: the algorithm for the agent program.

  • Agent execution thread: the execution stack of the agent including the program counter.

  • Agent data: the values of the agent’s global variables.

Agents possess certain special properties that distinguish them from conventional programs. Some of these distinctive features of agents are as follows (Manvi, 2004):

  • Autonomy: agents are capable of operating without the direct intervention of humans or others, and have some kind of control over their actions and internal state.

  • Temporal Continuity: agents are continuously running processes (either running actively in the foreground or sleeping/passive in the background).

  • Goal oriented: an agent is capable of handling a task to meet its desired goal.

  • Mobility: agents are capable of roaming around in an electronic network.

  • Communicative: agents interact with other agents via some kind of agent communication language or a proxy.

  • Collaborative: an agent should be capable of computing the desired tasks of the users/ processes by cooperating with other agents.

  • Learning: agents can learn the environment factors, user preferences, etc, and develop a certain degree of reasoning to take intelligent decisions that improves the efficiency of the system.

Complete Chapter List

Search this Book: