Concordia includes a collaboration framework that enables multiple agents to work together and coordinate their actions. Agents within an application may form one or more collaboration units, known as agent groups. These agent groups coordinate work among a specialized class of agents, known as collaborator agents. Concordia provides base classes for collaborator agents and agent groups (i.e., CollaboratorAgent and AgentGroupImpl, respectively). Agent groups are implemented as distributed objects which export a simple interface to collaborator agents, which, in turn, hold remote references to agent groups.
The V1.1 release of Concordia includes a new collaboration API. The changes are relatively minor, but may require some small modifications to source code. The new API is described in this chapter. The changes are listed below for those familiar with the old API:
Collaboration consists of two pieces: a generic collaboration mechanism and an application-specific analysis policy. The collaboration mechanism is implemented by the CollaboratatorAgent's collaborate method, whereas the application-specific policy is provided by the Agent Group's analyzeResults method. This will be discussed in detail in the following subsections.