Java aglets - small, Java-based agent programs that can be dispatched
across the Internet - can run on almost any kind of machine or operating
system, allowing users to automatically schedule meetings, search databases and
have the potential to transform the world of networked computing.
In Brief:
A team at IBM's Tokyo Research Laboratory has created a breed of mobile
agents. "Java aglets" can be sent out across the Internet to glean
information from Web sites, coordinate the activities of remote teams and even
participate in Internet auctions. The TRL team is developing standards for aglet
activity and collaborating with IBM development groups to simplify the creation
and use of aglets.
The Internet has changed the nature of computing. Yet it is widely agreed
that the possibilities it has opened up have hardly been tapped. Today, with the
aid of search engines, one can sift through huge troves of content and "pull"
information into one's browser by downloading files containing text and images
from the World Wide Web. The advent of the Java(TM) programming language has
even made it possible to readily download programs, or Java applets, that will
run on any machine, further enhancing the interactivity of the Web. It's
natural, then, to wonder, what's next?
Danny B. Lange, a visiting scientist at IBM's Tokyo Research Laboratory, and
his colleagues have an answer; one that highlights the emerging paradigm shift
that is changing the dominant metaphor of the Internet from pull to "push."
What this means can best be illustrated by an example.
Consider the task of setting up a meeting among several busy people who work
at remote locations and do not use the same software or hardware that would
enable a secretary to view entries in their online calendars, let alone make
any changes. One solution would be to send out a software agent, sometimes called an "intelligent agent," with the capability of scanning the participants' calendars,
choosing an optimal date and time and making an entry in their calendars. In
such a scenario, data is being pushed onto the participants' systems
without their active involvement.
While software agents are not new, so far their potential has outweighed
their actual accomplishments and commercial importance. Yet, with the
development of a suitable infrastructure -- the main obstacle to their
widespread deployment up to now -- they could soon become indispensable. Lange
and his colleagues have made significant progress in creating the necessary
infrastructure through standards proposals and through the creation of the code
needed to create and control a breed of mobile agents that they call Java
aglets.
The name "Java aglets" reflects the two-sided origin of the
concept. It began, says Lange, before Java had been announced. As so often
happens in science and technology, the idea of a programming language that would
allow applications written on it to run on any system was in the air. Lange and
his colleagues had developed their own language called Web Basic, and other
companies had similar projects. "All of these efforts," says Lange, "reflected
the awareness that the Internet was a repository of a vast amount of resources
that could not be easily shared because there were so many different platforms."
An application written in Java has the virtue of being able to run on a
multitude of platforms. "If you program the graphical user interface in
Java," explains Lange, "you can take the compiled program and run it
on OS/2®, Windows 95®, AXI®, Solaris(TM) or whatever without any
change of code." End-users typically encounter Java in the form of applets-small
programs that one can download into one's browser and run. "We realized
that you could do the opposite," says Lange. "You could have code and
put it up on some server to execute. But we decided that wasn't enough. What we
really wanted was data and Java program code that could move from computer to
computer and execute autonomously. That's the meaning of a mobile agent, or
aglet."
Enabling collaboration among distributed teams, as in the scheduling example
cited above, is one use of such agents, but their capabilities are really only
limited by the imagination of their programmers. Some applications are
especially intriguing. For example, instead of accessing a database remotely and
subjecting oneself to network delays and connection costs, one could dispatch an
aglet with the queries, which would return with the results. An added benefit of
that approach, notes Lange, is that one does not expose the data model of the
server as one would by making direct accesses over the network.
Anyone who has surfed the Web knows the speed with which Web sites can
change. If staying current is of value to one's business, there is often no
choice but to keep revisiting the sites. A Web server monitoring aglet can do
that for one, either by staying resident at a given site and reporting back when
it is updated or visiting a number of sites-even following links or
pointers - before returning with updates. Still another service aglets can
provide is acting as proxies at Internet auctions, buying, selling or simply
observing. By programming one's aglet with a clever negotiating strategy, it can
bargain down the price of goods.
Standards are essential
Clearly, finding innovative uses for aglets is not the challenge, and the
literature is full of additional suggestions. "We were not the first to try
to popularize agents," says Lange. "We are trying, however, not to be
the latest in what has been perceived as a not very successful enterprise."
In order for aglets to catch on, standards are essential, because the mere fact
that such objects are written in Java does not mean that they can arrive at a
computer and interact with it. In addition, protocols, or what is called an
Application Programming Interface (API), is needed. The API, in fact, is the key
to the ultimate success of aglets, because it is what enables users to interact
with aglets and enables the aglets to run on the various host computers they
encounter on their network travels.
Lange and his team plan to submit a proposed standard called Java Aglet API
(J-AAPI) to the relevant standards bodies; for example, the World Wide Web
Consortium, the Object Management Group (OMG) and the Internet Engineering Task
Force (IETF). The API would reside on the server software, and Lange
forthrightly states that his goal is to see J-AAPI installed on every Web server
in the universe.
The API is essential. J-APPI defines the means to create, dispatch, recall,
activate, clone, and even dispose of an aglet. It is not proprietary and is
available free from IBM on the Web. But it is just the first step in the
creation of a necessary infrastructure for aglets. "The tough part,"
says Lange, "is writing all the code that actually makes things work, that
is, the implementation." It includes the mechanism that allows the aglets
to move from one server to another, the graphical user interface (GUI) for
managing and monitoring the actions of aglets-for example, how many aglets
are running in one's server, what they are doing, etc.-and, finally, the
very important matter of security management.
Unlike the API, the implementation would not be a standard, according to
Lange. While IBM could license the code for its proprietary implementation,
anyone else could write their own. Already, several organizations have stated
their intention to create competitive implementations.
Security among agents
Given that security functions are controlled by the implementation, it is
natural to wonder how it is enforced. There are two separate issues, points out
Lange. The first is to protect the host from the aglet. "We are providing
in our implementation the same degree of security that a user enjoys when
downloading an applet and letting it run in one's Web browser. Generally,
that is a reasonably safe thing to do."
The other side of the coin is protecting the aglet from its environment,
when it is in transit or running in another machine. In the first case, one can
encrypt the aglet, so that no one can grab it and modify it. "But you
cannot protect your agent from a hostile host," says Lange. "What you
can do, however, is avoid sending your aglet to untrustworthy hosts, especially
if the aglet is carrying sensitive information, and you can interrogate the
aglet on its return to see if it's been tampered with."
In the end, Lange argues, one has to balance the risk versus the
opportunity. While agents can be harmful and in some instances probably will be,
normally they won't be, and their advantages will far outweigh the occasional
problems. In fact, aglets can provide a valuable security function in their own
right by monitoring the activity at a Web server and watching for malicious
intruders, whether other agents or even hackers.
Outfitting aglet builders
To bring the world of aglets a big step closer to full-scale deployment,
Lange and his colleagues at TRL are collaborating with development groups around
the company to create a set of support mechanisms that simplify the process of
creating and using aglets. Called Aglets Workbench, it is envisioned to comprise
a suite of components ranging from a visual builder to a Java-based version of
Knowledge Query Manipulation Language (KQML), which is analogous to hypertext
markup language (HTML) and allows agents to "talk" to other programs.
The visual builder eliminates the need for individuals to program a GUI in
order to monitor aglet activity. Another component, called design patterns,
contains a variety of standard agent activities that can be adapted to specific
uses. For instance, one common pattern specifies how an inactive agent is
activated and dispatched into the network to look for something. With the use of
the pattern, a user need only tell the aglet what to look for.
The components in the workbench will be menu-driven and require no special
programming skills, making it possible for almost anyone to use aglets. Who will
create the aglets? The most likely scenario is that, as in the case of applets,
a few people will actually write them, and others will simply copy them. What
really matters is how they are used. If the standards are adopted, and Java
aglets become as pervasive as applets, the Internet will become a richer, more
interactive environment. Without standards, says Lange, "Java aglets will
at best be a great idea but neither a great business nor a valuable tool for a
networked world."
So far, the outlook is encouraging, says Lange. "We have had
more than 10,000 downloads of the software, which is a lot for a development
kit. We also have an active forum for aglets with about 400 members that is
growing daily. And the first publicly available aglet server (or aglet host)
went online in Italy in February."