JADE is a framework and platform for programming multi-agent systems. This project implements a hypermedia interface for the JADE platform.
A JADE application is composed of agents. Agents execute tasks and interact with one another through messages. Agents live in containers, which can be distributed across the Internet. In every deployment of the JADE platform, there is one main container that all other containers have to register with. The main container can be replicated for fault tolerance.
Image source: Tutorial 1: JADE Architecture Overview
The main container includes two special agents: one Agent Management System (AMS), which is the main authority in the system, and one Directory Facilitator (DF), which provides a yellow pages for services provided by agents on the platform. The AMS and DF are defined by the FIPA Agent Management Specification.
See JADE Tutorials and Guides for more information on JADE.
This project implements a Hypermedia Weaver Agent (HWA), a special type of JADE agent that helps construct a hypermedia interface for a distributed JADE platform. In a distributed deployment, there must be one HWA per machine to manage the hypermedia interface for all containers deployed on that machine.
First build the project with:
gradle shadowJar
Then start a main container:
gradle runMain
Open http://localhost:3000/ in your browser to navigate a Linked Data view of the system. The above task will also launch the JADE RMA GUI.
To configure the HTTP endpoints used by the HWAs when exposing the hypermedia interface, see
local-host
and http-port
in hypermedia-weaver-agent/main.properties
. The file contains a number
of other parameters.
To start regular containers on the same machine (run multiple times for multiple containers):
gradle runLocal
To start a peripheral container with an HWA that connects to a main container on a different host:
- set the
host
andport
parameters inhypermedia-weaver-agent/peripheral.properties
to point to the host of the main container (the default port used by JADE is 1099) - set the
local-host
andhttp-port
parameters inhypermedia-weaver-agent/peripheral.properties
- Then run:
gradle runRemoteHWA
To start a remote JADE container without an HWA, set the host
and port
parameters (Setp 1. from
above) and then run:
gradle runRemote
You can run the above task multiple times to start multiple containers on the same machine.