Touching hands
3.5.2Mobility and Ubiquity
Navigation:

Back to the previous page Previous page

To the Table of Contents of this chapter Chapter ToC

To the Table of Contents of this paper Paper ToC

Earlier on in this chapter the concepts of agency and (intelligent) software agents have been covered. Both concepts need or rely on code or computing that is - to a certain degree - mobile and of a ubiquitous nature. Note that the concept of "ubiquitous computing" will be looked at more closely in chapter four and five, but as the first forms of it are already present in today's developments it seemed only logical to have a look at it in this chapter as well. Apart from this logical entailment, this first look should fortify the idea that ubiquitous computing is not some vague concept of the future, but rather that it is playing a part in the developments as they can be discerned right now.

The main focus in this section will lie on two terms: mobile computing and mobile (software) agents.
At first sight, these two terms may look interchangeable. And in media coverage about mobile code, mobile computing and/or mobile agents, the terms are often used as if they are synonyms. Yet, the terms are really about quite different matters.
Mobile computing refers to giving (ubiquitous) access to information and services "anytime, anywhere", e.g. from cellular phones to desktop PC's, from disconnected operation to fast network links, etcetera. Whereas the term "mobile agents" refers to itinerant programs, capable of roaming networks by migrating code and program state (thereby minimising network usage).
What's more, the mobility part of both terms is of a different kind: "mobility" in the context of "mobile computing" is largely of a physical and continuous nature, whereas the mobility in "mobile agents" is more of a logical and discrete nature.

The so-much talked about programming language Java is a clear example of a technique that is closely related to, and showing the possibilities of, mobile computing1: because of its (sheer) platform-independence, applications can be built that do not need to pay much attention to the exact (type of) computer that is used to execute them. Not only does this make a programmer's job easier, it also enables the users of such applications to access and execute these applications regardless of their location (i.e. the computing becomes ubiquitous). Current Web browsers show this functionality as well: you can get information and services from virtually anywhere on the network as long as you have access to some device equipped with a browser (or similar application).2
In mobile computing the user himself will typically be supervising the activity (or activities); the main aim of mobile agents is to let them do as much of the (supervision) of an activity themselves, so their users can spend their time doing other, more challenging things. Picture the situation where a user wants to query a search engine for certain information3. The user can query the search engine himself, but this can take up a lot of time and the user will probably have to go through long lists of results. This person would probably be much happier if he or she could send a mobile agent to the search engine, where this agent - probably using a search engine interface especially designed for agents - will query the search engine (possibly using its own set of search methods, instead of the ones that are normally offered to human users). This has two major advantages: the user does not have to stay online while the agent is working on the query (so if the agent uses a search method that takes more time, the user will not be affected by this), and the agent can process the (intermediate) result(s) locally, on the server, and will only return to its user with the (final) results of the query (thus saving a lot of network bandwidth).

An important concern often voiced with regard to mobile agents (and to a lesser degree with regard to mobile computing) is the issue of security;

"Although there is no shortage of potential applications for mobile agents, the technology raises a few concerns -- probably the biggest being security. With an established infrastructure of mobile agent hosts that give agents access to local resources, virus writers and other rogue programmers could have a lot of fun."
quote taken from an article in JavaWorld

Most of the security issues, however, do not seem unsolvable. What's more, quite a lot of the security issues regarding mobile agents are general Internet security issues. Many other applications and techniques, 'suffering' from these same security threats or problems, are continued to be developed. There seems to be no valid reason to treat mobile agents differently in this regard.
So, assuming the security issues surrounding mobile agents can be adequately addressed, what are powerful mobile agents' applications? In an IBM paper on mobile agents, this question is answered in the following way:

"While none of the individual advantages of mobile agents [...] is overwhelmingly strong, we believe that the aggregate advantages of mobile agents is overwhelmingly strong, because they can provide a pervasive, open, generalized framework for the development and personalization of network services. And while alternatives to mobile agents can be advanced for each of the individual advantages, there is no single alternative to all of the functionality supported by a mobile agent framework."
from "Mobile Agents: Are they a good idea?"
by Harrison, Chess, and Kershenbaum

In other words, the point of mobile agents - and of mobile computing as well - may not be any individual potential application, each of which could alternatively be implemented using a more traditional distributed processing scheme. Rather, the point may be that both have so many potential applications that it would seem most unwise to ignore them or to leave their potential unused.


In [GREE97] an in-depth look is taken at distributed agent technology and mobile agents. Those interested in details regarding the current status quo in these two fields as well as examples of mobile agent implementations, should read this paper (especially chapter four and five). Here, a summary of the most interesting findings of the paper will be given.
Green et al name four concepts that are vitally important to multi-agent systems: co-ordination, co-operation, negotiation and communication. For single mobile agents, these concepts need not be of importance (as they could do all the work on their own), but in the context of information brokering (and similar applications) their importance becomes evident; (standards-based) mechanisms and means to communicate and negotiate with all kinds of parties (e.g. humans, mobile agents) are at the root of such services and applications.
An important issue, concerning all four concepts, is the issue of trust. As ideal as an environment of co-operative and honest participants (e.g. software agents, humans) may be, the online market place may be expected to be one inhabited by different parties, each with their own goals in mind. The application of game theoretic techniques and reliance on conventional social rules and conventions are named as the best and most prominent means to tackle the issue of trust.


1= Java and mobile agents are related as well, but the current implementation of Java is not fully capable of providing the technical basis that is needed to make real mobile agents.
2= One of Sunís latest Java innovations, Java Beans, takes this idea to the next stage: with Beans not only can the program run on virtually any machine, but the parts that make up the program (the modules or classes) can be anywhere on the network and can be called upon when necessary.
3= In the line of developments as described (predicted) in section 3.3, instead of a "search engine" an agent may be expected to (also) query an information broker or similar service.
On to the next page Next page
To the Hermans' Home Page Home Page
Chapter 3 - From Internet to Online Market Place "Desperately Seeking: Helping Hands and Human Touch" -
by Björn Hermans