A HANDS-ON LOOK at JAVA MOBILE AGENTS What Are the Benefits
Total Page:16
File Type:pdf, Size:1020Kb
. FEATURE A HANDS-ON LOOK AT JAVA MOBILE AGENTS What are the benefits and drawbacks of JOSEPH KINIRY AND DANIEL ZIMMERMAN California Institute of Technology current Java mobile agent systems? The authors installed everal companies riding the current wave of popularity of Java and evaluated three want to let you play in the mobile agent sandbox. Each claims Sthat mobile agent technologies are going to change the way we live and work, and each wants to be the company that provides the leading systems breakthrough system we all end up using. What do these agent sys- tems actually do and, more importantly, what distinguishes one agent system from another? available for download To help answer these questions, we downloaded three of the lead- ing commercial systems—General Magic’s Odyssey, IBM’s Aglets, and ObjectSpace’s Voyager—and looked at issues such as ease of from the Web. installation, feature set, documentation, and cost. We also discuss new capabilities of Java 1.1 that show promise as simple yet powerful means to create mobile agent systems. We conclude with a brief look at the ways in which mobile agents are currently being used and the limitations of today’s technologies. JAVA MOBILE AGENT SYSTEMS The current explosion of interest in mobile agent systems is due almost entirely to the widespread adoption of Java. As recently as three years ago, only a few mobile agent systems were under development based primarily on research languages like Tcl, Scheme, Oblique, and Rosette. Only one system was commercially available, Telescript from General Magic. Java has changed all that. During the past year over a dozen Java- based agent systems have been announced for developers to choose 1089-7801/97/$10.00 ©1997 IEEE http://computer.org/internet/ JULY • AUGUST 1997 21 . SPECIAL FEATURE from. The Java Virtual Machine and Java’s class loading agent domain, think of the software agent space as a dia- model, coupled with several of Java 1.1’s features—most mond with a property at each of the four corners: stationary importantly serialization, remote method invocation, mul- opposite mobile and cooperating opposite isolated. In subse- tithreading, and reflection—have made building first-pass quent sections we will address the issue of when and why mobile agent systems a fairly simple task. you might want to use a mobile agent system versus others in Our examination of the Java-based mobile agent systems the software agent space thus conceptualized. now commercially available showed that all share certain characteristics arising from their use of Java as a develop- CURRENT COMMERCIAL ENVIRONMENT ment platform. Most of the dozen or so mobile agent systems currently under development are in the early stages. Several compa- ■ They provide an agent server of some kind. The agent serv- nies have made software available for evaluation on the Web er is the point of contact on a given machine, the sand- with the implicit hope that developers will provide them box into which agents move and in which agents act. with both feedback and sufficient industry buzz to spark ■ Agents can migrate from server to server in some fashion, car- interest in the product when it hits the market. Of the many rying their state with them. Some systems automatically systems we looked at, we selected three relatively mature migrate the agents according to an itinerary of some kind, Java-based mobile agent systems that can now be down- while others let the agents determine their own “destiny.” loaded from the Web for evaluation: General Magic’s ■ Agents can load their code from a variety of sources. In gen- Odyssey, IBM’s Aglets, and ObjectSpace’s Voyager. eral, since all the agent systems use a specialized version Mitsubishi’s Concordia is another apparently interesting of the Java classloader, they can load Java class files from system scheduled for release in October 1997. Although we the local filesystem, Web, and ftp servers. were not able to obtain a copy of Concordia for hands-on ■ All are 100 percent pure Java and use features of JDK 1.1. evaluation, we did have the opportunity to talk in depth to This means that they should run on any computer with the engineers developing the system. You can read our report a 1.1-compatible Java runtime. Unfortunately, because based on these discussions in ICOnline.* of Java implementation oddities, many of the currently available systems only work properly in specific virtual General Magic’s Odyssey machines. General Magic’s Telescript, a proprietary language for creat- ing mobile agents, has been the industry’s most widely Because these qualities are common to all the Java mobile adopted agent system for several years. Indeed, General agent systems, we do not include them in the discussions of Magic first coined the term mobile agents, and in a contro- the individual systems. Instead, the survey highlights only versial move, applied for a patent on the concept in 1993. those features that distinguish each system from the others. In 1997 they received US patent 5,603,031. Unfortunately, one other common trait was the lack of With the advent of Java and its cross-platform promises, sophistication of the demo applications included in the sys- General Magic began developing Odyssey,* a new agent sys- tem documentation. Although some of these packages did tem implemented solely in Java that incorporates some of seem to have some impressive functionality, the demo appli- the concepts previously developed for Telescript. The cations overall failed to show this effectively. In addition, Odyssey development team has about a dozen members, documentation was often incomplete; in many cases, the including the recent addition of Danny Lange, formerly a API documentation (automatically generated by Javadoc) member of IBM’s Aglets project. So far, there have been two was the most informative supporting material included. public beta releases of Odyssey—we evaluated beta 2, which Before we turn to our discussion of specific Java mobile was released in early June. agents, a word on the current confusion about terminology Odyssey is distributed as a Unix- or Windows-friendly in the agent domain is warranted. It seems everyone has a archive, with a self-extracting installer available for the different definition of “agent.” (For a comprehensive list of Windows platform. It requires JDK 1.1 or higher due to its the systems currently available, see the Current Commercial extensive use of Java RMI. General Magic also provides extra Agent Systems and Current Research-Based Agent Systems software to support CORBA’s Internet Inter-ORB Protocol sidebars.) It’s used currently to refer to everything from (IIOP) and Microsoft’s Distributed Common Object Model robotic systems to e-mail filters to mobile code. The term (DCOM) for agent transport, making Odyssey the only sys- agent itself is only the beginning of the problem. Should you tem we examined that currently contains explicit support use mobile agents or stationary agents? What’s the difference for multiple agent transport mechanisms. between an intelligent agent and an autonomous agent? Do The archive decompresses into an Odyssey directory hier- agents cooperate or collaborate? Digging through the jargon is archy, including API documentation (in HTML), text files something of a challenge. To locate our topic in the general which briefly document how to set up the environment for JULY • AUGUST 1997 http://computer.org/internet/ IEEE INTERNET COMPUTING 22 . JAVA MOBILE AGENTS CURRENT COMMERCIAL AGENT SYSTEMS Note that “*” next to an entry means source code is available for download; “✝” means you can download software . ✝ Agentsoft tializing an aglet, message handling, and dispatching, retract- http://www.agentsoft.com ing, deactivating/activating, cloning, and disposing of the AgentSoft’s products, LiveAgent and SearchAgent, assist in aglet. Application developers can write platform-independent browsing and searching the World Wide Web. aglets and expect them to run on any host that supports J-AAPI. Autonomy✝ KYMA Software http://www.agentware.com/index.htm http://www.info.unicaen.fr/~serge/kyma.html Agentware i3 products use neural networks to customize KYMA Atlantis is a development platform for intelligent agents information retrieval and/or content delivery to individual user and personal assistants. Using a combination of rule-based infer- or enterprise requirements. encing, fuzzy logic. and neural network technology the product solves problems that require multiple reasoning methods. Crystaliz http://www.crystaliz.com/logicware/logicware.html Microelectronics & Computer Technology LogicWare is a programmable server based on an open Corporation (MCC) architecture and designed to enhance Web clients and servers, http://www.info.unicaen.fr/~serge/kyma.html with emphasis on support for interactive, collaborative Web Carnot enables the development and use of distributed, applications. knowledge-based, communicating agents. The agents interact by using Carnot’s actor-based Extensible Services Switch (ESS) Firefly Network to manage their communications through TCP/IP and OSI. http://www.firefly.com and http://www.firefly.net Firefly’s tools allow Web sites to present personalized con- Microsoft * tent to individuals, and enable users to find others who share http://www.microsoft.com/intdev/agent their interests. Products include a profile management tool Microsoft Agent is a set of programmable software services (Passport Office) and collaborative filtering technologies that supports the presentation of interactive animated charac- (Community Navigator, Catalog Navigator). ters within the Microsoft Windows interface. FTP Software Mitsubishi http://www.ftp.com/product/whitepapers/4agent.htm, http://www.meitca.com/HSL/Projects/Concordia http://www.ftp.com/product/whitepapers/vip_wp.htm Concordia is a full-featured framework for development The Virtual IP Network Agent Applications are agents that and management of network-efficient mobile agent applica- can be deployed in networks to extend traditional network tions for accessing information on any device supporting Java.