Go to the first, previous, next, last section, table of contents.


Metaglue Overview

The Metaglue system is a set of Java classes designed to make the development of software agents easy and straightforward. Metaglue agents can communicate with each other, collaborating whether on the same machine or miles apart, across a wide variety of different hardware. Agents can also specify that they run on a specific machine, or that they run only in conjunction with other agents.(1)

In order to work properly, the Metaglue system requires that a catalog be up and running. The catalog contains a list of the agents currently in the system and helps agents to find each other.

Agents run on top of a substrate called the Metaglue Virtual Machine, or MVM. One of these machines (sometimes known as a MetaglueAgent, after its Java class name) must be running on every machine where an agent will run. A running agent uses the MVM to communicate with the catalog and handle the details of agent interactions.

Agents use two main primitives to handle configuration and connections. The first, tiedTo, will ensure that an agent is running on a given machine or concurrently with another agent. Agents that encounter a tiedTo primitive will contact the MVM running on the target host, start a copy of it on that machine (if the agent is not currently running there), and then shut down the initial, misplaced copy.

The second main primitive, reliesOn, opens a connection to another agent, whether it is running on the same MVM or on an MVM across the network. The primitive returns a placeholder object for the target agent, which implements all the methods that the target agent can handle. Calling the method on the placeholder will pass any arguments across the network and invoke the method on the target agent. In this way, working with a remote agent is as easy as working with any other object on the system.

Agents also have facilities for persistently storing their own state, broadcasting messages to any interested parties, and automatically getting restarted if a machine or MVM suddenly goes down. The catalog also saves its state, so if the catalog machine resets due to a power glitch, the catalog can be restarted and the entire system will continue merrily on.


Go to the first, previous, next, last section, table of contents.