Using JAVA for Artificial Intelligence and Intelligent Agent Systems
by Paolo Busetta, Ralph Rönnquist, Andrew Hodgson and Andrew
Lucas
Abstract & Introduction only
Intelligent Agents are being used for
modeling
simple rational
behaviors
in a wide range of distributed applications. In particular, agents
based on the Belief-Desire-Intention (BDI) architecture have been
used successfully in situations where some
modeling
of human reasoning and team cooperation has been needed, such as simulation
of tactical decision making in air operations and command and control
structures. Other applications include business process re-engineering,
telephone call
centers,
and air traffic management.
However, Intelligent Agent frameworks have so far been large, monolithic
software systems. With their origins in research on Distributed Artificial
Intelligence, these frameworks have generally been developed as research
environments in the research laboratory. Consequently they have been
unduly large, complex to use and based on non-mainstream AI languages.
The JACK framework presented in this paper
brings the concept of intelligent agents into the mainstream of software
engineering and Java. JACK is a third generation agent framework,
designed to be a set of lightweight components with high performance
and strong typing.
We discuss the advantages and issues of using Java to implement such
an Intelligent Agent framework. We present JACK's extensions to the
Java language for defining the extra concepts needed in for Intelligent
Agents. We discuss the benefits of our component based approach, both
for experts in artificial intelligence (such as the availability of
an ever increasing amount of commercial, industrial-strength software)
and the software engineer developing sophisticated distributed applications
(such as n-tier business systems).
1 Introduction and Overview
Artificial Intelligence is at the forefront of innovation in computing.
Recent examples of common technologies derived from, or heavily influenced
by, AI research include object oriented programming (Smalltalk being
a major case in point), graphical user interfaces, and neural networks.
A relatively recent area of research
centered
on intelligent agents and multi-agent systems is exploring the
modeling
of simple rational
behaviors
in distributed applications. This research is expanding the boundaries
and the technologies of what is currently considered distributed programming
by mainstream engineering practice, and shows the potential for practical
application in the near future.
Agent Oriented Software Pty. Ltd. (AOS), based in Melbourne, Australia
has built JACK ("JACK"), a framework in Java
for multi-agent system development. The company's aim is to provide
a platform for both industrial and research applications; consequently,
JACK has been built having in mind efficiency, extensibility and ease
of access to the Java community.
In Section 2, we contrast agent-oriented programming with traditional
distributed programming. In Section 3, we present the approach taken
to develop JACK. Section 4
summarizes
the major technical characteristics of JACK, while Section
5 discusses how to build an application; this is also illustrated
with a simple programming example. In Section 6, we present the Belief-Desire-Intention
(BDI) architecture, which is the agent model natively supported by
JACK. Finally, in Section 7 we
summarize
the benefits of using JACK while developing distributed applications.
An evaluation copy of JACK can be downloaded from the JACK
download page.
New in Jack v5.0:
The JACK Development Environment (JDE) has been extended to provide
the ability to trace execution using JACK Design Diagrams.
After configuring the JDE to trace certain diagrams, it can connect to a running JACK™ application and when any transitions occur that match links in the diagram, they will be highlighted.