Mobile Software Agents for Mobile Applications

Mobile Software Agents for Mobile Applications

Oscar Urra (University of Zaragoza, Spain), Sergio Ilarri (University of Zaragoza, Spain), Raquel Trillo (University of Zaragoza, Spain) and Eduardo Mena (University of Zaragoza, Spain)
DOI: 10.4018/978-1-61520-655-1.ch039
OnDemand PDF Download:
$37.50

Abstract

Mobile applications are growing in importance due to the increasing popularity of mobile devices and the development of wireless and mobile networks, which allow fast and affordable communications. This scenario opens up new opportunities but also presents a number of limitations that prevent the development of its entire potential. On the other hand, mobile agents are an emerging software technology that has been proposed as a way of dealing with the difficulties present in mobile environments, such as the instability of network connections, or the limited computing capabilities of mobile devices. However, despite their multiple advantages, some practical questions arise. Mobile agents need an execution platform well suited to the mobile environment to allow agents to deploy all their capabilities. Are the existing agent platforms ready to accomplish this task? What features should they have to ease the development of mobile and distributed applications in this environment? In this chapter, the authors discuss in detail all these questions and survey the most popular agent platforms to find out how they can be used in mobile environments.
Chapter Preview
Top

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 complex 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 numerous research works focused on 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 specially 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

Ad Hoc Network: A network whose nodes may not be directly connected and need to use a number of other intermediate nodes as relays to transfer data.

Proxies: 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.

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.

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

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.

Agent: See software agent.

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:
Reset