Agent-based computing is an approach to design and implementation that facilitates the design and development of sophisticated systems by viewing them as a society of independent communicating agents working together to meet the goals of the system. Java programming language's rich support for networking, security, and introspection make it well suited to implementing a distributed agent-based computing system. This article explores the basics of agent-based computing and examines an open source Java toolkit for building distributed agent societies. In the human world the concept of an agent is familiar to most people.
Travel agents make travel arrangements on behalf of their clients.
Real estate agents manage real estate transactions as representatives of their clients. Human agents generally possess some specialized expertise and use it as a representative of some client. Software agents are similar in that they usually contain specialized behavior and represent some entity as they carry out their actions. Most people agree that software agents exhibit some behaviors that distinguish them from other types of software. Each agent in a society of agents has one or more goals and strategies to achieve them.