IBM®
Skip to main content
    Country/region change    Terms of use
 
 
 
    Home    Products    Services & solutions    Support & downloads    My account    
IBM Research

Think Research


 


Featured Concept
The secrets of agents

By Rowan Dordick

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."





    About IBMPrivacyContact