GPGP 2 Project Documentation

GPGP 2 Project Documentation

What is GPGP2

The GPGP2 project page is at /research/gpgp2_project.html. The GPGP2 project aims at providing domain-independent coordination components to the Java Agent Framework. The role of these coordination components, aka "coordination beans", are sketched in the following picture (a real agent would have more components, of course):

Basically, across the agent domain, the agents coordinate with each other by exchanging special kinds of KQMLMessages. Inside the agent, however, things are a little complicated. An agent consists of several beans, and the beans communicate with each other by posting and listening to the events that interest them. The coordination bean interacts with other agent component (such as the problem solver bean) by using a special type of event -- CoordinateEvent.

The coordination bean has some internal structures as well. As we know, coordination activities are understood only when they follow a certain protocol. A coordination bean may implement of one or more coordination protocols. These protocols are specified as finite state machines (FSM), which defines the protocol states and transition rules. As a part of the GPGP2 project, we created a FSM specification tool that generates Java classes according to the FSM specification. FSMs communicate with the coordination bean by exchanging another type of events -- FSMEvent.

A typical session of coordination may include the following sequence:

  1. The problem solver posts an CoordinateEvent, indicating a need to carry out a coordination sesssion.

  2. The coordination bean receives that event, decides which protocol (FSM) to handle this event, and produces FSMEvent for the FSM to start with.

  3. The FSM makes transtions according to its specification. During the transition, the FSM may post KQMLMessages to other agents.

  4. Other agents receive the KQMLMessage and find out which FSM to interact with that message. The FSMs in different agents can then interact with each other according to the protocols.

  5. During the course of interact, an FSM may exchange FSMEvent with the coordination bean.

  6. Furthermore, when necessary, the coordination bean can also post CoordinateEvent to other agent components (ProblemSolver, Scheduler, to name a few).