Standards for Agents: MASIF
and FIPA Specifications
An agent platform is a
software environment in which software agents run. It provides support for software agents to execute, to manage
their execution, to access system resources, and to guarantee integrity and
protection of agents and the platform itself.
Agents platforms also provide support for migration, naming, location
and communication services. Examples of
agent platforms are:
IBM's Aglets
General Magic's Odyssey
ObjectSpace's Voyager
IKV's Grasshopper
Mitsubishi's Concordia
UCI's Messengers (?)
These systems differ widely
in architecture and implementation, thereby impeding interoperability and rapid
deployment of mobile agent technology in the marketplace. To promote interoperability, some aspects of
mobile agent technology needs to be standardized.
Currently there are two
standards for mobile agent technology: The Object Management Group's Mobile
Agent System Interoperability Facility and the specifications promulgated by
the Foundation for Intelligent Physical Agents.
Object Management Group
(OMG) was formed in 1989 by 11 companies including 3Com, HP, Canon, Sun, Unisys
and American Airlines. Now it includes
about 800 members. It is a not-for-profit
corporation. Its most famous standard
perhaps is CORBA. The OMG was formed
to create a component-based software marketplace by hastening the introduction
of standardized object software. Its
charter includes the establishment of industry guidelines and detailed object
management specifications to provide a common framework for application
development. Conformance to these
specifications will amke it possible to develop a heterogenous computing
environment across all major hardware platforms and operating systems.
In 1995 the OMG started working on a standard, called Mobile Agent Facility (MAF), in order to promote interoperability among agent platforms. In 1997, a joint submission by IBM, General Magic, The Open Group, GMD FOKUS, and etc was presented to the OMG. And the standard's name was changed from MAF to Mobile Agent System Interoperability Facility (MASIF). In 1998 this specification was accepted as an OMG standard. The current edition was issued in 2000. IKV's Grasshopper agent system (version 1 available in 1998) is conformant to MASIF. It is a mobile agent and runtime platform developed in Java, built upon a distributed object-oriented middleware. As submitters of the MASIF standard, IBM and GMD FOKUS agreed to implement the MASIF spec within their own agent platforms. (GMD stands for German National Research Center for Information Technology, FOKUS stands for Research Institute for Open Communication Systems.) There is aother mobile agent system called Secure and Open Mobile Agent (SOMA) System, developed by Universita' di Bologna in Italy. SOMA has been developed by "closely considering compliance with MASIF."
The Foundation for
Intelligent Physical Agents (FIPA) was formed in 1996 to produce software
standards for heterogenous and interacting agents and agent-based systems. It is a non-profit association formed under
Swiss law. Its members include
companies and universities.
FIPA identified a list of
agent technologies deemed to be specifiable in 1997 and standardization work
started. There is a set of spec called
FIPA 97 and another called FIPA 98, both are now on Obsolete Status. The current spec is FIPA 2000, half of which
is in the Preliminary Staus, another half on Experimental Status.
At this time, the FIPA's
specifications are grouped into 5 categories:
1. Applications
2. Abstract Architecture
3. Agent Communication
4. Agent Management
5. Agent Message Transport
In this presentation, we
will talk more about the latter three. They are further subdivided into a
number of areas:
Agent Communication: FIPA ACL Message Structure Spec
Interaction Protocols: FIPA Interaction Protocol Library Spec
FIPA
Request Interaction Protocol Spec
FIPA
Query Interaction Protocol Spec
FIPA
Request When Interaction Protocol Spec
FIPA
Contract Net Interaction Protocol Spec
FIPA
Iterated Contract Net Interaction Protocol Spec
FIPA
English Auction Interaction Protocol Spec
FIPA
Dutch Auction Interaction Protocol Spec
FIPA
Brokering Interaction Protocol Spec
FIPA
Recruiting Interaction Protocol Spec
FIPA
Subscribe Interaction Protocol Spec
FIPA
Propose Interaction Protocol Spec
Communicative Acts: FIPA
Communicative Acts Library Spec
Content Languages: FIPA
Content Languages Spec
FIPA
SL Content Language Spec
FIPA
CCL Content Language Spec
FIPA
KIF Content Language Spec
FIPA
RDF Content Language Spec
Agent Management: FIPA Agent Management Spec
FIPA Agent Management
Support for Mobility Spec
Agent Message Transport:
FIPA Agent Message Transport Service Spec
ACL Representations FIPA
ACL Message Representation in Bit-Efficient Spec
FIPA
ACL Message Representation in String Spec
FIPA
ACL Message Representation in XML Spec
Envelope Representations FIPA Agent Message Transport Envelope Rep in XML Spec
FIPA
Agent Message Transport Envelope Rep in Bit-Efficient Spec
Transport Protocols FIPA
Wireless Message Transport Protocol Spec
FIPA
Agent Message Transport Protocol for IIOP Spec
FIPA
Agent Message Transport Protocol for WAP Spec
FIPA
Agent Message Transport Protocol for HTTP Spec
About 16 FIPA-compliant
platforms have been implemented by diverse companies, 4 of which are freely
accessible under open source code: Nortel Network's FIPA-OS, Fujitsu
Laboratories of America's April Agent Platform, CSELT(Italy)'s Java Agent
Development Framework (JADE), and Comtec (Japan)'s Comtec Agent Platform . FIPA-OS is an agent runtime and development
platform using Java.
MASIF in more details
The MASIF identifies a
Distributed Agent Environment (DAE) and a Distributed Processing Environment
(DPE). In a DAE, there are the
following elements:
Place: A place is a context
in which an agent can execute, so a place is an execution environment.
Agency: An agency is an
agent system. An agency can have
several places. An agent system
represent a platform that can create, interpret, execute, and transfer agents.
Region: A region is a group of agencies that belong
to a single authority.
Two interfaces represent
the core of the MASIF standard:
1. MAFAgentSystem: It is
associated with every agency and provides operations for the management and
transfer of agents. The following
methods provided by the MAFAgentSystem interface offer a basic set of
operations for agent management and transport:
create _agent
fetch_class
find_nearby_agent_system
get_agent_status
get_agent_system_info
get_authinfo
get_MAFFinder
list_all_agents
list_all_agents_of_authority
list_all_places
receive_agent
resume_agent
suspend_agent
terminate_agent
terminate_agent_system
2. MAFFinder: It is
associated with a region. It supports
localization of agents, agencies, and places in the scope of a region. It offers the following methods:
register_agent
register_agent_system
register_place
lookup_agent
lookup_agent_system
lookup_place
unregister_agent
unregister_agent_system
unregister_place
The following agent functionalities
are covered by MASIF:
1. Agent management: This
comprises the creation, termination, suspension, and resumption of agents. The MAFAgentSystem provides several methods
for this purpose.
2. Agent tracking:
Agencies, places and agents are registered in a region registration component
via MAFFinder.
3. Agent transport:
MAFAgentSystem ofers two methods to support agent migration: receive_agent for
transferring an agent's state and other required data, and fetch_class for
additionally retrieving an agent's code, if needed.
4. Agent and agency naming:
Standardized syntax and semantics of agent and agency names enable agents and
agencies to identify each other and allow clients to identify agents and
agencies.
5. Agent type and location
syntax: Agency types provide information about important aspects of specific
agencies, such as the used implementation language. The location is standardized in order to enable to locate each
other.
MASIF relies on CORBA to
handle agent security. MASIF does not
address the agent communication aspect.
FIPA Spec in more details
In addition to agent
management, the FIPA spec cover agent communication and agent message transport
that MASIF does not cover. FIPA
developed an Agent Communication Language (ACL). It is a high level language with a precise syntax and semantics
allowing agents to communicate. An
agent message consists of two parts.
The envelope conveys information for the transportation. The message body contains the actual
message. The FIPA ACL is based on the
Speech Act Theory: message are actions, or "comunicative acts", as
they are intended to perform a specific action by virtue of being sent. FIPA ACL derives from Knowledge Query and
Manipulation Language (KQML).
Comparison of MASIF and
FIPA Spec
A commentator says that
MASIF is based on agent platforms and it enables agents to migrate from one
platform to another. FIPA spec is based
on remote communication services. The
former is primarily based on mobile agents travelling amongst agent system via
CORBA interfaces and does not address inter-agent communication. The latter focus on intelligent agent
communication via content languages and do not say much about mobility (but see
below about FIPA 2000). FIPA adopts an
agent communication paradigm, which can better express the nature of
cooperation and is more suitable for integration with other AI
technologies. MASIF adopts a mobile
agent paradigm which is more appropriate in situations where dynamic and autonomous
swapping, replacement, modification, and updating of application components are
required.
Integration
A FIPA 2000 spec deals with
the mobility aspect of agents. It tries
to integrate FIPA and MASIF.
An Annex of the ACTS
(Advanced Communications, Technologies and Services - an European research
collaborative program) baseline document analyzes the possibilities of
MASIF/FIPA integration.
Grasshopper-2 has been
available since 2000 and is both MASIF- and FIPA-compliant, through a MASIF
add-on and an FIPA add-on.