Intelligent Agent Technologies and JADE Framework: Part I

Introduction

In the recent past, development and deployment of software agents as digital assistants for managing electronic information has increased steadily. While corporate intranets and World Wide Web provide the appropriate infrastructure for agent-based applications, automating tasks like searching, accessing and filtering of information specifically relevant to the individual from diverse and distributed resources still pose significant hurdles.

We shall discuss the issues and design considerations for personalized information management frameworks in networked environments. We have also presented an implementation solution JADE, short for Java Agent Development Environment, that ensures privacy, promotes trust and achieves efficient information sharing among the software agents and users. Additionally, selected agent services in the framework to improve agent autonomy, quality of service and human-computer interface have been explicated.

It should be noted that Implementation of Agents through JADE has been explored from the beginner to professional levels.

Components, Middleware and Agents

Ø A software component is defined as a self-contained, customizable and large-grain building block for (possibly distributed) application systems. Some of the common characteristics of components include their ability to communicate by sending and receiving messages, possibility of having multiple components of the same type in a system and description of their state consisting of attributes and other aggregated components. Components encapsulate specific services or sets of services to provide reusable building blocks that can be composed to develop large-scale applications more rapidly and robustly than those built entirely from scratch. Component-based software engineering produces a set of reusable components that can be combined to obtain a high level of modularity and reuse while developing applications.

Ø Middleware is the reusable software that resides between applications and the underlying operating systems, network protocol stacks and hardware. It works as a bridge between application programs and the basic lower level hardware and software infrastructure that deals with how the parts of these applications are connected and interoperate.

Ø Software agents are essentially software modules with some intelligence that can perform tasks delegated to them at a high level. The agents are sufficiently autonomous to decide how and when they should perform the task, and some agents even have the ability to either negotiate the task or reject it.

Agent-oriented Software Development

Components and middleware can be used to develop agent-oriented software. Some advantages are:

Ø Compliance of components to message-oriented rather than method-oriented communication;

Ø Creation of more flexible, adaptable, robust and self-managing components yields the combination of agents and services;

Ø Dynamic registration and discovery of components by name and features, and loose coupling lead to a greater degree of independent
   development. For instance, agents can be loaded and activated while the system is running; and

Ø Exploitation of technologies such as patterns, micro-frameworks and generators to create multi-agent protocols and behaviors.

The agent system characteristics include the following:

Ø Autonomy: An agent is able to take the initiative and exercise a non-trivial degree of control over its own actions through the implemented roles; and

Ø Cooperation: An agent does not blindly obey commands but makes suggestions to modify requests or ask clarification questions. It also cooperates with other agents in managing the project. In order to communicate with one another, agents use language, protocol and ontology for exchanging information, knowledge and sharing common understanding of the structure of information.

The choice of agents as the solution technology is motivated by the following observations:

Ø The domain involves an inherent distribution of data and source of knowledge, both physically and logically;

Ø Integrity of the existing organizational structure and the autonomy of its sub-parts must be maintained; and

Ø Interactions are fairly sophisticated, including information sharing and coordination.

Intelligent Agents

Agent-based technology can be described as an evolution on the distributed object paradigm. Intelligent agents are software components that schedule and complete tasks on a user’s behalf autonomously or semi-autonomously. As with most systems, the level of autonomous processing will vary depending on the application domain and user.

Characteristics of the intelligent agent system include:

Ø Intelligence: The agent automatically customizes itself to users’ requests based on previous experience. The agent also automatically adapts to changes in its environment;

Ø Autonomy: An agent is able to take the initiative and exercise a non-trivial degree of control over its own actions through the implemented roles;

Ø Cooperation: An agent does not blindly obey commands but makes suggestions to modify requests or ask clarification questions. It also cooperates with other agents in managing the project. In order to communicate with one another, agents use language, protocol and ontology for exchanging information, knowledge and sharing common understanding of the structure of information; and

Ø Mobility: A single agent can be deployed in different processes with different interfaces.

There are two main configurations of agent-based systems – single agent systems (one agent carrying out tasks) or multi-agent systems (numerous agents cooperating to complete tasks).

Java-based Agent Environments

Ø Java Development (JADE) framework developed at CSELT in Torino, Italy, is a FIPA-compliant toolkit for creating multi-agent system applications. JADE provides a set of tools for debugging and deploying distributed agents. It supports RMI, CORBA IIOP and event notification transport protocols.

Ø IBM’s Agent Building and Learning Environment (ABLE) is a Java-based framework for developing and deploying hybrid intelligent agents and agent applications. ABLE provides a set of reusable JavaBean components, called AbleBeans, along with several flexible interconnection methods for combining those components to create software agents. AbleBeans implement data access, filtering and transformation, learning and reasoning capabilities. Functions are also provided for classification, clustering, prediction and genetic search, as well as for application-specific agents constructed using one or more AbleBeans. AbleAgent editor provides a GUI-based interactive environment.

Ø AgentBuilder, from Reticular Systems Inc., is an integrated software development toolkit for constructing agents in Java. Agent architecture in AgentBuilder is BDI and is based on Shoham’s Agent-0 model. The agents use KQML to communicate.

Ø Aglets are Java-based autonomous and mobile agents developed by IBM. Aglets communicate using a white board that enables agents to collaborate and share information asynchronously.

Ø FIPA Open Source (FIPA-OS) is an open-agent platform that supports communication by using the FIPA agent communication standards.

Ø Gossip is a demonstration application of Tryllian Inc.’s mobile agent software. Gossip agents use learning technology to create users’ profiles and to perform automated actions on the user’s behalf.

Ø Java Agent Template Lite (JATLite) is a set of lightweight Java packages that was developed at Stanford University. JATLite provides a layered architecture for building multi-agent systems that provide different communication protocols at each layer. The base layer uses TCP/IP as the communication mechanism and enables the agent implementers to define the message protocol. The KQML layer provides support for agents that use KQML messages while the Router layer adds message routing that enables messages to be queued for agents that are not active when the Router layer receives the message. The focus on JATLite is on communication.

Ø Java Expert System Shell (JESS) is a Java application that can be run from the command line. JESS is a Java implementation of the standard CLIPS rule-based environment developed by NASA. JESS was developed at the Sandia National Laboratories. While not an agent environment, JESS provides rule-based interfacing support in Java. 

Ø The Voyger system is an agent-enhanced ORB written in Java developed by ObjectSpace Inc. Voyger agents are autonomous and mobile, but not intelligent. 

Ø Zeus is a British Telecom agent building toolkit. Zeus is a framework for the development of collaborative agent systems that are constructed using large, coarse-grained agents that emphasize autonomy and cooperation. 

Note: For more details about any of the above tools and frameworks, please e-mail: skphind@yahoo.co.uk.

Before the year 2000, several of the agent tools focused more on the agent’s mobility. However, this trend seems to have changed and now the emphasis is on agent intelligence and reasoning. Also, KQML and closely related FIPA ACL are more popular as agent communication protocols. Most often, artificial intelligence is utilized through rule-based interfacing and neural learning.



Added on April 18, 2006 Comment

Comments

Post a comment

Your name:

Comment: