HOW-TO
This month's Under the Hood is the second in a two-part series of articles about aglets, an innovation
developed by IBM Japan. Last month I described the inner workings of aglets, this month I'll discuss the
ways in which mobile agent technologies, such as aglets, might t into the Java developer's toolbox.
Aglets: A refresher
An aglet is a Java-based autonomous software agent. (For more information, see Bret Sommers's
explanation of agents.) As used here, a software agent is a program that can halt itself, ship itself to
another computer on the network, and continue execution at the new computer. The key feature of this
kind of software agent is that both its code and state are mobile.
Aglets are autonomous because once you start them, they decide where they will go and what they will
do. They can receive requests from external sources, but each individual aglet decides whether or not to
comply with external requests. Also, aglets can decide to perform actions, such as travel across a
network to a new computer, independent of any external request.
20/03/2016 13:07
Once
an problems
infrastructure
mobile
agent
is
Solve
real
with of
aglets,
a type
of hosts
mobil...
established,
mobile agents undoubtedly will be built to
http://www.javaworld.com/article/2076918/learn...
Sign In
populate the infrastructure. But what will those mobile agents do? What will justify building
the| Register
infrastructure in the rst 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:
of application
highlights
the
asynchronous nature
of mobile agents. If you send out an agent,
SolveThis
realkind
problems
with aglets,
a type of
mobil...
http://www.javaworld.com/article/2076918/learn...
you needn't sit and wait for the results of its information gathering. You can program Sign
In | to
Register
an agent
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.
20/03/2016 13:07
One last example of a potential application for mobile agents is entertainment. In this scenario, agents
gamewith
players.
Thea agents
Solverepresent
real problems
aglets,
type of compete
mobil...
with onehttp://www.javaworld.com/article/2076918/learn...
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
Sign host
In | is
Register
executing on a computer in Las Vegas, then perhaps the agents could play for real money.
A higher
level ofwith
abstraction
Solve
real problems
aglets, a type of mobil...
http://www.javaworld.com/article/2076918/learn...
Sign In | Register
Another perspective comes from Danny Lange, the inventor of the aglet, who had this to say about
aglets:
When I invented the aglet, I was searching for a higher abstraction for network computing. To
me the aglet was an answer to some 15-year-old questions I had: What comes after objectoriented programming? What is the next paradigm shift?
The aglet is my key abstraction for "network computing"; not the applet, not the servlet, not
RPC, but the aglet. The aglet allows me to think in terms of the "network computer"; not the
NC, but all the NCs, PCs, workstations, and mainframes in one space. I don't care where the
aglet is running, nor does the aglet care. As we say about the aglet: "Create once, go anywhere".
So mobile agents provide a way to think about solving software problems in a networked environment
that ts more naturally with the real world. In the real world, people and objects move from place to
place. If you want to get some work done, sometimes you make a phone call, sometimes you send an
assistant to the work site, and sometimes you just go yourself.
Next month
Next month will be the nal article in my long series that covers Java bytecodes. It will discuss the
various ways the Java virtual machine invokes methods.
NEXT
View Comments
Copyright 1994 - 2016 JavaWorld, Inc. All rights reserved.
5 of 5
20/03/2016 13:07