IberAgents as an Agent Framework

IberAgents can be used to build software agents in Java with minimal effort; the developer has only to concentrate on programming the required tasks.

Introduction

Interest in the field of software agents seems to have slowed down a bit in recent years. However, this area has produced many interesting results, including some real-world applications in wide use.

It is a difficult task to reach a consensus on what defines a software agent, and one that we will not attempt. Our approach is based on practical considerations, and the task of this page is to explain how IberAgents can help you build your own agents.

This document first explores the capabilities required by an agent, and then centers on what is offered by the framework. A brief discussion of agent standards follows.

Capabilities

Software agents may be thought of as programs that perform tasks on behalf of some party. This overbroad definition is usually refined with qualifiers such as:

The aim of IberAgents is quite modest: to allow modelling of distributed, autonomous and personal agents in Java. Any other capabilities will have to be added by the developer.

Framework

As explained in the architecture, IberAgents is based on a well-defined component model. Any agent capabilities must therefore be explained in terms of the available component types.

Autonomous Components

The main principle for any agent in the framework is its autonomy. The interface com.iberagents.Agent contains methods to control execution of a component. Its generic nature allows other periodic tasks to be modelled as agents.

The architecture guide explains the life cycle for agents.

Distributed Components

All components have access to services running on different nodes. The interface com.iberagents.Service must be implemented by a component before it can be accessed from outside its node.

Distributed agents are therefore trivial to write. The framework takes care of registering and locating remote components, and it encapsulates any communications that take place. The developer does not need to distinguish between local and remote methods. The user guide explains how to locate other components.

Personal Components

The interface com.iberagents.user.UserComponent must be implemented by any components that depend on user interaction. The pattern is usually: the user logs in, then accesses the component a number of times, until the user logs out (or the component expires).

Combination of user components with agents yields software that can act as a personal agent. A tutorial on building a personal agent is available.

Agent Standards

FIPA is a well-known standard for software agents. IberAgents does not implement it since we have not found any practical advantages in doing so; but we are open to suggestions.

Conclusion

Our goal is to make IberAgents a simple yet powerful platform to build software agents. Please contact us if you have any comments.


Updated: Dec 3 2004.
© 2004 Ibermática.
Webmaster

Valid XHTML 1.1!