Sign In

Communications of the ACM

Communications of the ACM

The Aglets Project

Mobile wallet

Credit: Google

When the Java programming language became available in 1995, IBM's Tokyo Research Laboratory decided to create a new system for mobile agents through a project called Aglets that would operate comfortably in the open system world of Java and the Internet. We designed Aglets by referring to Java's applet and event delegation model so Java programmers could learn and use it easily to take advantage of mobile agents. In 1996, we introduced the alpha version of Aglets, which we now call the Aglets Software Development Kit, as a freely downloadable software package ( It was one of the first Java-based mobile agent systems.

An Aglet is a composite Java object that includes mobility and persistence and its own thread of execution and can communicate with other Aglets. It also has its own credentials to indicate who implemented and instantiated it. Based on these credentials, a receiving computer can limit the behavior of incoming Aglets. Using Aglets, a programmer can readily implement autonomous objects in a distributed computing environment.

The life cycle of an Aglet starts with its creation or its cloning. It might be dispatched to another computer or deactivated to or activated from a secondary storage medium before finally being disposed of. Each Aglet is rendered through a programming style involving a call-back model based on the Java event delegation model. During its life cycle, an Aglet receives various kinds of events in response to its actions; for example, if it moves to another computer, a mobility event occurs just before and after the move, and corresponding call-back methods, such as onDispatching and onArrival, are invoked. In this way, each event gives an Aglet the opportunity to determine how to react. A programmer implements an Aglet by filing its call-back methods as appropriate.

In business. To demonstrate Aglet effectiveness, we have to persuasively show its value in real applications, as well as their existence. So, in addition to Aglets, IBM's Tokyo Research Laboratory is developing e-commerce applications to show the business advantages of Aglets. One example is TabiCan, an Internet site hosted by IBM Japan offering several merchant agents for companies selling tickets online: (in Japanese). When a user accesses TabiCan, a consumer agent is created and interacts with the merchant agents to find travel information, while living only 24 hours to monitor newly posted information.

When developing TabiCan, we assumed that independently developed agents would be able to interact with one another, because agents roam the Internet and meet unfamiliar agents at various sites. Therefore, we first developed an electronic marketplace framework, called e-Marketplace, on top of Aglets, to provide a meeting place for agents and define a high-level interaction protocol for interagent communication [1]. The framework also provides a swap-in and swap-out scheduling mechanism to accommodate thousands of consumer agents at the same site.

Mobile agents, like remote procedure calls, are among the fundamental technologies needed to build distributed applications. Today, a number of mobile agent systems have begun to emerge, though many have different application programming interfaces (APIs) and thus cannot interoperate with one another. Ultimately, we want to see one agent system accepting agents created by other agent systems so the systems interact, taking full advantage of mobility throughout the Internet. To achieve this vision, agent software vendors have to standardize the base agent API, which should be simple but extensible enough to allow agents to be mobile, persistent, active, secure, and interactive. The transfer and communication protocols should also be defined to preserve interoperability. The API may also define other service components, such as a directory service for finding agent systems and services and a tracking service for tracing the network locations of agents.

Middleware also has to be created by agent software vendors to reduce the gap between a bare mobile agent system and its applications. It has to be horizontal for multiple types of applications and vertical for specific types of applications to further accelerate the use of mobile agents. That's why we created Aglets and have made it publicly available. In view of feedback from users and our experience with TabiCan, we are quite confident that our dream can be realized.

However, a key question about Aglets, and about mobile agents in general, still needs to be answered: What is the killer application? Although many applications use mobile agents, the killer application has not been found yet. We remain optimistic, because if we create a standard agent API in Java, mobile agents will become more pervasive, spurring many researchers and developers to help create such an application.

Back to Top


1. IBM Research. Aglets-based e-Marketplace: Concept, Architecture, and Applications. Research Report RT-0253, Tokyo Research Laboratory, Japan, 1997.

Back to Top


Hideki Tai ( is an associate researcher in the Tokyo Research Laboratory of IBM Japan, Inc.

Kazuya Kosaka ( is project manager for object technology in the Tokyo Research Laboratory of IBM Japan, Inc.

©1999 ACM  0002-0782/99/0300  $5.00

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.

The Digital Library is published by the Association for Computing Machinery. Copyright © 1999 ACM, Inc.


No entries found

Sign In for Full Access
» Forgot Password? » Create an ACM Web Account
Article Contents: