JACK is a new concept
— an environment for building, running and integrating
commercial Java-based multi-agent software using a component-based
approach. JACK is a third generation Agent system, incorporating
significant advances in Agent Research and Software Engineering.
It provides the core architecture and infrastructure for developing
and running software agents in distributed applications.
JACK incorporates
a new suite of graphical tools targeted at analysts as well
as programmers.
Provides a design
tool that allows components
to be laid out in diagrams that represent different
aspects of an application's design. These diagrams are
automatically converted to code and code
outlines. The design tool
uses drag-and-drop to manipulate objects, and provides
pan and zoom capabilities.
A plan
editing tool allows plan reasoning
to be laid out as simple diagrams without having to
sacrifice the power of the underlying JACK/Java language.
Plan reasoning can be entered in descriptive mode, allowing
non-programmers to outline the reasoning in natural
language.
As with the design tool, the plan
editing tool allows the user to manipulate objects with
drag-and-drop, along with pan and zoom capabilities.
Graphical plans are compiled directly to JACK code.
At run-time, these same plans
can be traced graphically
allowing an analyst or developer to observe their
plans as they execute. The values of variables used
in these plans can also be examined during execution,
along with the plan execution history.
JACK is
entirely written in Java which has several advantages:
Flexibility
JACK allows for many of types of software agent
to be layered on top of the base kernel, from simple
agents (e.g. information retrieval agents) through to
more capable agents using sophisticated reasoning models.
Extensibility
JACK uses a "component" philosophy to
facilitate integration with other software environments
or existing systems. If required, JACK's functionality
can be extended through the use of custom plugins.
Familiarity
JACK is based on a set of simple extensions to
the Java language, relating to agent-specific concepts.
JACK's familiarity to Java programmers not only reduces
the learning curve but, as with Java, JACK's type-safe
and object-oriented approach assists in the development
of reliable applications.
Portability
JACK is capable of running on any system on which
Java is available, from personal
organizers
such as the PSION, through laptop PCs to high-end multi-CPU
enterprise servers.
Light-Weight
- JACK is extremely light-weight and is designed to handle
thousands of agents running on relatively low-end hardware.
Java-Based
JACK allows access to all present and future Java
capabilities, including multiple threads (possibly running
on multiple CPUs), platform-independent GUIs and third
party libraries such as JDBC.
Interoperability
JACK allows easy integration with external packages
using standard infrastructure, such as CORBA, RMI, J2EE,
EJB, .NET, DCOM or HLA.
Other features
JACK agents can be
organized
into teams for
modeling
purposes or for performing actual joint tasks.
JACK has a language specification and
object oriented design targeted to allow easy extension
for new agent models, such as recognition of intentions,
or transaction-based agents.
JACK provides a light-weight and
flexible communications model. By default JACK uses a
fast TCP-based protocol for communicating with other agents,
back-end systems and GUIs. Other protocols can be layered
on top of this or can replace the default protocol entirely.
This can be used to provide secure communication between
agents.
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.