Open
architecture components need to provide higher levels of adaptability,
mobility, discovery, and intelligence in order to support applications that
exhibit emergent behavior or that need to function in volatile environments.
In
a multi-agent architecture components become agents embedded in an environment.
An agent is an active component that plays one or more roles in the
environment. Each role perpetually executes a control loop such as:
1.
Observe state of the environment
2. If environment state = goal state, then quit
3. Select an action
4. Perform action
5. Goto 1
An
agent may observe all or part of the environment in step 1. This may involve
observing what the other agents in the environment are up to.
Different
agents may have different goals.
The
action selected in step 3 depends on the observation made in step 1. It may
also depend on the internal state of the agent. This internal state could be a
simple one-bit memory or a complex knowledge base system.
Performing
the action in step 4 modifies the state of the environment. It may also modify
the agent's internal state and goals. The action may involve sending messages
to other agents.
In
the FIPA reference architecture the environment consists of interconnected
platforms. A platform provides communication services as well as white page and
yellow page services.
An
agent may play many roles. Each role has its own control loop like the one
described earlier. An agent merely acts as a job scheduler for these roles.
Roles are also called behaviors.
Roles
are often defined by the communication protocols in which they can participate.
A protocol defines the types of message exchanges between various roles.
FIPA
has defined a reference architecture for multi-agent
systems. There are several implementations of the FIPA architecture, including
JADE and Zeus. The Semantic Web Services Architecture (SWSA) is couched in the
concepts of multi-agent architectures.