The Artima Developer Community
Sponsored Link

The Point of Aglets
The Significance of Mobile Agents
by Bill Venners
First Published in JavaWorld, May 1997

<<  Page 2 of 4  >>

Advertisement

If you build it, they will come
Once an infrastructure of mobile agent hosts is established, mobile agents undoubtedly will be built to populate the infrastructure. But what will those mobile agents do? What will justify building the infrastructure in the first place?

Imagine for a moment that a widespread infrastructure of mobile agent hosts has been established on a network near you. How might you use it?

There are many applications for which mobile agents are claimed to be well-suited. Most of these applications tend to involve searching for information on behalf of a user and possibly performing some kind of transaction when appropriate information is encountered.

Here is a list of some of the more commonly mentioned applications for mobile agents:

Data collection from many places
One of the main differences between mobile code, such as applets, and mobile agents is itinerary. Whereas mobile code usually travels just from point A to point B, mobile agents have an itinerary and can travel sequentially to many sites. One natural application of mobile agents, therefore, is collecting information spread across many computers hooked to a network.

An example of this kind of application is a network backup tool that periodically must look at every disk attached to every computer hooked to a network. Here, a mobile agent could roam the network, collecting information about the backup status of each disk. It could then return to its point of origin and make a report.

Searching and filtering
Given the ever increasing amount of information available on the Internet and other networks, the activity of collecting information from a network often amounts to searching through vast amounts of data for a few relevant pieces of information. Filtering out the irrelevant information can be a very time-consuming and frustrating process. On behalf of a user, a mobile agent could visit many sites, search through the information available at each site, and build an index of links to pieces of information that match a search criterion.

Searching and filtering exhibits an attribute common to many potential applications of mobile agents: knowledge of user preferences. Although mobile agents do not have to be "representative" or "intelligent," they often are. Here, an agent is given knowledge of user preferences in terms of a search criterion and an itinerary, and sent out into the network on the user's behalf. It sifts through huge amounts of data for those pieces of information of particular interest to the user. At some point, it returns to the user to report its findings.

Monitoring
Sometimes information is not spread out across space (on the disks of many different computers hooked to the same network), but across time. New information is constantly being produced and published on the network. Agents can be sent out to wait for certain kinds of information to become available.

For example, an agent could go to a stock market host, wait for a certain stock to hit a certain price, then buy some of it on behalf of its user. Another example is personalized news gathering. An agent could monitor various sources of news for particular kinds of information of interest to its user, then report back when relevant information becomes available.

This kind of application highlights the asynchronous nature of mobile agents. If you send out an agent, you needn't sit and wait for the results of its information gathering. You can program an agent to wait as long as it takes for certain information to become available. Also, you needn't stay connected to the network until an agent returns. An agent can wait until you reconnect to the network before making its report to you.

Targeted information dissemination
Another potential use of mobile agents is to distribute interactive news or advertising to interested parties. Unfortunately, this means mobile agents, like e-mail, can be used for spam -- indiscriminate distribution of information, usually advertising. (There will likely be a market for agents that filter the spam out of incoming mobile agents.)

Negotiating
Besides searching databases and files, agents can gain information by interacting with other agents. If, for example, you want to schedule a meeting with several other people, you could send a mobile agent to interact with the representative agents of each of the people you want to invite to your meeting. The agents could negotiate and establish a meeting time.

In this case, each agent contains information about its user's schedule. To agree upon a meeting time, the agents exchange information.

Bartering
Electronic commerce is another good fit for mobile agent technology. A mobile agent could do your shopping for you, including making orders and potentially even paying. For example, if you wanted to fly from Silicon Valley to an island in the South Pacific, an agent could visit databases of flight schedules and prices for various airlines, find the best price and time, make reservations for you, and pay with your credit card number.

Electronic commerce also can take place between agents. For example, there could be an agent host dedicated to the buying and selling of automobiles. If you wanted to buy a car, you could give an agent knowledge of your preferences, including a price range and potentially a negotiation strategy. You would send your agent to the dedicated host, where it would mingle and haggle with agents seeking to sell a car.

If a potential match were found, your agent could report back to you, and you could contact each other in person to make the final arrangements. Alternatively, your agent potentially could consummate the deal on your behalf. If the opportunity is a good one, your agent may have only a few microseconds to act before someone else's agent buys the car.

Parallel processing
Given that mobile agents can move from node to node and can spawn subagents, one potential use of mobile agent technology is as a way to administer a parallel processing job. If a computation requires so much CPU time as to require breaking up across multiple processors, an infrastructure of mobile agent hosts could be an easy way to get the processes out there.

Entertainment
One last example of a potential application for mobile agents is entertainment. In this scenario, agents represent game players. The agents compete with one another on behalf of the players. Each player would program an agent with a strategy, then send the agent to a game host. If the game host is executing on a computer in Las Vegas, then perhaps the agents could play for real money.

<<  Page 2 of 4  >>


Sponsored Links



Google
  Web Artima.com   
Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us