Wizard API updated!
Tim Boudreau has released a new version of the Swing Wizard library (version 0.997) that fixes the WizardException bug reported in JavaWorld's recent Open Source Java Project profile. The article's examples have been reworked to test out the new, improved WizardException. Thanks, Tim, for this helpful fix!
Open Source Java Projects: The Wizard API

Newsletter sign-up

Sign up for our technology specific newsletters.

Enterprise Java
View all newsletters

Email Address:

An introduction to agents

Find out what agents are and what they can do for us, and take the first steps toward building your own simple agent architecture in Java

The word agent has found its way into a number of technologies. It has been applied to aspects of artificial intelligence research and to constructs developed for improving the experience provided by collaborative online social environments (MUDS, MOOs, and the like). It is a branch on the tree of distributed computing. There are agent development toolkits and agent programming languages.

Hucksters claim that agents can sort your mail, buy you a car, and solve your distributed computing woes -- in one fell swoop. Agents have tremendous potential to be sure, but this claim is a little far fetched -- at least today.

What is an agent?

It's difficult to find a succinct definition for agent that includes all of the things that most researchers and developers consider agents to be, and excludes all of the things they aren't. I recommend you read "Is it an Agent, or just a Program? A Taxonomy for Autonomous Agents" by Stan Franklin and Art Graesser for a thorough, well-thought-out classification scheme. (See Resources.)

In this article, I'll limit myself to illustrating rather than defining.

Agents typically possess several (or all) of the following characteristics; they are:

  • Autonomous
  • Adaptive/learning
  • Mobile
  • Persistent
  • Goal oriented
  • Communicative/collaborative
  • Flexible
  • Active/proactive


Agents also tend to be small in size. They do not, by themselves, constitute a complete application. Instead, they form one by working in conjunction with an agent host and other agents. In many ways, agents are of the same scope as applets. Small and of limited functionality on their own.

Why study agents?

Agents make an interesting topic of study because they draw on and integrate so many diverse disciplines of computer science, including objects and distributed object architectures, adaptive learning systems, artificial intelligence, expert systems, genetic algorithms, distributed processing, distributed algorithms, collaborative online social environments, and security -- just to name a few.

Agent technology is significant because of the sustained commercial interest surrounding it. You've most likely heard of General Magic and Telescript, and maybe even IBM's Aglets Workbench (now called IBM Aglets SDK) and Mitsubishi's Concordia. Agent technology may not have hit prime time quite yet, but it does seem to be gathering its share of investment money. Take a gander at the Resources section for a host of other companies engaged in agent technology development.

Agent technology is also interesting for its potential to solve some nagging productivity problems that pester almost all modern computer users. Many agents are meant to be used as intelligent electronic gophers -- automated errand boys. Tell them what you want them to do -- search the Internet for information on a topic, or assemble and order a computer according to your desired specifications -- and they'll do it and let you know when they've finished.

What problems do agents solve?

Agent technology solves, or promises to solve, several problems on different fronts.

1 | 2 | 3 |  Next >
Resources
  • "Is it an Agent, or just a Program? A Taxonomy for Autonomous Agents" by Stan Franklin and Art Graesser from the Proceedings of the Third International Workshop on Agent Theories, Architectures, and Languages, Springer-Verlag, 1996 http://www.msci.memphis.edu/~franklin/AgentProg.html
  • Cetus Links provides super information on mobile agents http://www.cetus-links.org/oo_mobile_agents.html
  • The Distributed Systems Group (Technical University of Vienna) includes an interesting look at mobile code, agents and Java http://www.infosys.tuwien.ac.at/Research/Agents/
  • Check out the Centre for Advanced Learning Technologies' Information TechnologiesAgent Technologies page for everything related to agent technology http://www.insead.fr/CALT/Encyclopedia/ComputerSciences/Agents/
  • IBM Aglets SDK (formerly Aglets Workbench) is an environment for programming mobile Internet agents in Java http://www.trl.ibm.co.jp/aglets/
  • Find out more about agents and IBM's Aglets technology with the detailed article "AgentsNot just for Bond anymore," penned by Bret Sommers (JavaWorld, April 1997) http://www.javaworld.com/jw-04-1997/jw-04-agents.html
  • Bill Venners also examined IBM's agent technology in a two-part Under the Hood series (JavaWorld April/May 1997)
  • http://www.javaworld.com/jw-04-1997/jw-04-hood.html
  • http://www.javaworld.com/jw-05-1997/jw-05-hood.html
  • Mitsubishi's Concordia is a framework for development and management of network-efficient mobile agent applications http://www.meitca.com/HSL/Projects/Concordia/
  • JATLite is a package of programs written in Java that allow users to quickly create new software agents that communicate robustly over the Internet. http://java.stanford.edu/
  • General Magic provided much of the early commercial drive of agent technology http://www.genmagic.com
  • Previous How-To Java articles