Mobile Agents for a Mobile World

Mobile Agents for a Mobile World

Oscar Urra, Sergio Ilarri, Raquel Trillo, Eduardo Mena
DOI: 10.4018/978-1-4666-6359-6.ch025
(Individual Chapters)
No Current Special Offers


Mobile devices such as smartphones and tablets have become very popular and together with the enhancements on mobile networks have changed the way the users interact. New applications and paradigms (such as social and collaborative networks) have appeared, and their development is now more important than ever. In this scenario, the technology of mobile software agents is an adequate option, since mobile agents can be used to overcome the difficulties and limitations of such an environment. Mobile software agents need a middleware (the agent execution platform) that allows them to exist and provides them the means to develop their potential. There exist a number of such platforms with different features but also some limitations. In this chapter, the authors discuss in detail all these questions and survey the most popular agent platforms from the point of view of their potential use in mobile environments.
Chapter Preview

1. Introduction

In the last years, the demand of mobile applications has grown considerably (Andersson et al., 2006) thanks to the miniaturization of devices (which are more and more powerful and cheaper) and the deployment of global wireless communication networks. It is now possible to access an increasing number of Internet-based services and applications, anytime and anywhere, in a fast and easy way. However, the development of more omplex and efficient services can be a challenging issue in such a mobile environment due to the existence of a high number of users, a variety of devices (in terms of features and computational capabilities), and mobile communication limitations. In order to deal with these issues, mobile agents (Milojicic et al., 1999) have been proposed as a promising technology that allows the development of distributed and intelligent systems in both a flexible and robust way. The great number of possibilities they offer has led to significant research in this field.

An agent (Woolridge & Wooldridge, 2001) is a software entity characterized by having a high autonomy and intelligence, which allows it to execute in a self-contained way. Agents can take their own decisions based on information received from their execution environment, from other agents, or from a previously existing knowledge base. Besides, their communication capabilities allow them to exchange efficiently information with other agents by means of the use of especially-structured communication languages. Moreover, there is another feature that, although it is not mandatory for agents, makes them special. This feature is mobility, which allows an agent to travel through a computer network from one execution environment to another. These are the so-called mobile agents (Braun & Rossak, 2005; Milojicic et al., 1999), in contrast to those that are executed always in the same environment and do not move, which are called stationary/static agents. A key component needed to build mobile agent-based systems is the middleware that they need to be executed (the mobile agent platform).

Many applications can take special advantage of the features of agents (Ferber, 1999; Luck et al., 2003; Valckenaers et al., 2007). For example, in the case of:

  • Problems where a solution can be reached after some kind of negotiation, which can be achieved thanks to the intelligence and communication capabilities of agents.

  • Problems that can be decomposed in different parts, which can be solved independently in parallel, and where the partial results can then be gathered to build the final solution.

  • Tasks where a large amount of data located in different places must be processed and where, due to different reasons (e.g., the need to minimize the communication cost), these data cannot be transmitted to a central location for processing.

  • Tasks where the data to process are scattered among many places or stored in many different formats, being very hard to find or process them in a uniform way.

For example, in the last case, mobile agents can visit the different places (thanks to their autonomy and mobility capabilities), evaluate locally their conditions (thanks to their intelligence), and bring the most appropriate algorithm to process that particular data format in the best possible way. In general, mobile agents can bring the processing wherever it is required.

In this chapter, we focus on mobile agents and their mobile agent platforms. The success or failure of mobile agent applications depends, in many cases, on the features provided by the mobile agent platform used. Thus, a mobile agent platform can ease the development and implementation of a system and will also have a great influence on its final performance.

Key Terms in this Chapter

Cyber Foraging: Is the transfer of heavy computational tasks from one resource-limited device to one or more resourceful servers in order to execute those tasks, and return the results to the initial device.

Vehicular Ad hoc Network (VANET): A particular type of MANET where the mobile nodes are vehicles travelling across a road or a street. The main characteristics of these networks are the high mobility speed of the nodes and their position constrained to the layout of the roads or streets.

Software Agent: A program that is executed in a certain environment autonomously and is capable of making decisions based on data obtained from the environment and from other agents.

Transparent Proxy: Proxy that is updated whenever the referenced agent moves, in order to keep the reference consistent. The update must be made by the platform automatically without the intervention of the programmer.

Mobile Ad Hoc Network (MANET): A particular type of ad hoc network where the intermediate nodes can move freely at any time. As a consequence, the connections established between the nodes are temporary and can be finished at any moment.

Agent Platform: Middleware that acts as an execution environment for software agents and provides them a number of services.

Agent: See software agent .

Ad Hoc Network: A network that does not need a preexisting infrastructure and instead uses temporary connections established dynamically between the nodes that participate in the network. These nodes act as relays forwarding the data they receive to one or more of their neighbors in order to route them to the destination.

Proxy: In the context of mobile agent platforms, a proxy is a reference to an agent, used by other agents and platform components to communicate with it.

Mobile Agent: A software agent with the ability to travel from one execution environment to another (i.e., it can move through a computer network).

Complete Chapter List

Search this Book: