Software Agent-Oriented Frameworks
Meet Georeferenced Digital Library Interoperability

Zakaria Maamar, Bernard Moulin, Yvan Bédard, and Gilbert Babin
Computer Science Department and Research Center on Geomatics
Laval University, Ste-Foy, QC G1K 7P4, Canada
{maamar, moulin, babin},

D-Lib Magazine, September 1997

ISSN 1082-9873


A Georeferenced Digital Library (GDL) describes several geodocumentary resources available in an organization (maps, satellite images, aerial photographs, etc). The use of a single GDL is rather easy. However, the task becomes much more complex when several GDLs are required to satisfy a user's request. As a solution, we intend to set up Software Agent-Oriented Frameworks that support the interoperability of GDLs by providing users with services that will free them from worrying about information distribution and disparities. The design and management of such frameworks is based on a number of concepts related to the fields of distributed artificial intelligence and distributed-object technology.

Keywords: Interoperability; Distribution; Heterogeneity; Software Agent-Oriented Framework; Georeferenced Digital Library.

1. Introduction

Georeferenced Digital Libraries (GDLs) are information bases describing several geodocumentary resources (maps, satellite images, aerial photographs, etc.) available in an organization. While using only one GDL seems simple (see, for example,, the task becomes very complex when several GDLs are involved (Maamar and Moulin97a). Indeed, each GDL is characterized by its own informational content, its own vocabulary in term of metadata, its own presentation formats, and its own processing functions. In order to help users traverse multiple disparate datasets, we are working on developing an interoperable environment of GDLs in the SIGAL project (SIGAL stands for «Système d'Information Géographique et Agent Logiciel». This project is jointly undertaken by the Computer Science Department and the Research Center on Geomatics at Laval University). Such an interoperable environment will provide users with services which will not require them to know individual characteristics of the interconnected GDLs.

There exists a number of studies in the field of system interoperability, in particular those conducted by the Object Management Group (OMG) (Omg). OMG aims at adapting object-oriented technology to distributed contexts and hence setting up distributed systems offering services independently from the characteristics of each system. These systems are based on object-oriented client/server architecture. Furthermore, the suggested approach to create such systems is based on the creation of object-oriented frameworks (Orfali et al.96). However, there exists no complete design method for object-oriented frameworks; it is not an easy task for designers to develop such frameworks and monitor their evolution, especially when they must be distributed on communication networks. Therefore, our work aims at providing guidelines for such a method (Maamar and Moulin97b). One objective of the SIGAL project is to address the design methods issue. However, this paper addresses the architecture for dealing with interoperability among GDLs in a distributed and heterogeneous environment.

The interoperability process has to keep the local systems autonomous and independent. To reach this objective, we suggest introducing several specialized components called "software agents" (Hyacinth96) that are the front-ends for these systems and can act on their behalf. Furthermore, these software agents can be of different types. However, given the complexity of evolving distributed and heterogeneous environments, we propose to gather these agents into teams (Maamar and Moulin97a). Depending on the context in which they evolve, these teams will cooperate, negotiate and coordinate their actions, and possibly, resolve various conflicts.

Teams of software agents, in turn, evolve within what we call "software agent-oriented frameworks" (Maamar and Moulin97a), which expand the classical view of distributed object-oriented frameworks (Orfali et al.96). These software agent-oriented frameworks can interact in order to define a global behavior which is an outcome of such interactions. These frameworks can be adapted in terms of components (types of teams of agents and agents to integrate) and functionalities (types of services to offer). These frameworks can play several roles according to the application to be developed. Finally, our frameworks can constitute an interoperable multi-framework environment. To design software agent-oriented frameworks, we rely on different studies on cooperation, coordination, negotiation and conflict resolution conducted in the field of Distributed Artificial Intelligence (DAI) (Moulin and Chaib-draa96).

2. Relevant Aspects of Interoperability

The motivation for the development of an interoperable environment is to facilitate the exchange of information and services. However, to develop such an environment, we have to deal with the following issues:

  1. The disparities between multiple elements, like hardware platforms, software technologies, users knowledge about the analyzed domain, etc.

  2. The complexity of operations that require information from distributed and heterogeneous systems.

  3. The scarcity of design methods and tools for interoperable environment.

When dealing with the interoperability of distributed and heterogeneous systems, two main issues must be considered: communication mechanisms and common knowledge. The former allows the systems to cooperate efficiently, while the latter allows the resolution of knowledge misunderstanding. In the SIGAL project, we considered the following aspects :

  1. The cooperation of multiple systems implies the sharing of their operations. The DAI field (Moulin and Chaib-draa96) provides principles for an efficient specification of these operations, such as coordination, cooperation, interaction, conflict resolution protocols, etc.

  2. In order to exchange information in spite of system distribution, communication protocols are needed. The results from OMG are oriented towards this type of protocols.

  3. In order to interact efficiently, interoperable systems should agree on the conventions used for representing and understanding the knowledge they exchange. The formalization of this knowledge is part of the ontology domain (Gruber93).

3. A Software Agent-Oriented Framework

Designing software agent-oriented frameworks is a recursive activity that relies, in turn, on frameworks, teams of agents, and software agents. In this section, we present the main characteristics of a software agent-oriented framework and its operation mode from a generic point of view (Maamar and Moulin97a).

A "software agent-oriented framework" (Figure 1) offers a set of services that can be requested either by users or by other frameworks. A framework is an environment composed of a supervisor and one or several teams of software agents. The services provided by a framework are performed by different teams set up by the framework. These teams are composed of agents selected from a bank of software agents. This bank contains several agents having different functionalities which are specific to the application to be developed and to the characteristics of the information systems to be interconnected.

"Teams of agents" are composed of several software agents and are structured differently according to their responsibilities in the framework. A team is characterized by a team supervisor and a set of roles that agents must fulfill according to their capabilities. A "role" is identified by a list of parameters: role label, goals to achieve, and services offered by and required for the role. Considering these parameters, a framework selects appropriate agents from the bank of software agents. To fulfill their goals, agents need to cooperate and exchange information.

Services provided by a framework satisfy specific users' needs such as browsing, query formulation, information retrieval, etc. When a service is invoked by a user, the framework's supervisor agent activates a scripting procedure, called a "realization scenario", which specifies the characteristics and the interaction protocols of the teams of agents that will perform the various operations required to carry out the service. Interactions can be defined between various kinds of components: frameworks, teams, and agents. According to that realization scenario, the framework supervisor creates teams that will play roles specified in the scenario. At their own level, team supervisor agents activate realization scenarios in order to coordinate the activities of their software agents.

4. Presentation of the SIGAL Environment

4.1 SIGAL's Architecture

Before elaborating the SIGAL environment, we studied several issues such as the distribution of GDLs, their access rights, communication support channels (local and/or wide-area networks), and similar studies in the field of traditional information-systems interoperability.

Based on these considerations, we proposed an interoperable architecture for the SIGAL environment (Figure 2). It is characterized by the use of a client/server approach, by the introduction of the "mirror sites", by the proposition of three types of frameworks (server, client, local-source), and finally by the creation of client frameworks by the server frameworks, whenever it is necessary.

The local-source frameworks maintain the autonomy and the independence of the GDLs in the interoperable environment. Therefore, local-source frameworks interface the GDLs with communication networks and process the data requests sent by the client frameworks.

The server framework is the backbone of the SIGAL environment, since it monitors all the operations needed to support the services offered to the users and to other frameworks. In order to avoid overloading the server framework, we suggest duplicating it on mirror sites.

In highly distributed environments, setting up mirror servers is used to focus users towards less-loaded servers. However, in such an architecture, it is important to maintain the coherence of the information duplicated on the server frameworks and consequently to define reliable update protocols. In the SIGAL environment, these functions are implemented as a set of services supported by server frameworks: a service to modify the informational content of a GDL, and a service to connect a new GDL to the SIGAL environment.

When users need information from several GDLs, they invoke relevant services on the server framework. The invocation of such services on the server initiates the creation of a client framework generated on the user's machine. This client framework is composed of teams of software agents which are needed for fulfilling the service. Hence, the server framework delegates those operations to the client framework and limits its involvement to their monitoring. Once all those operations are executed, the client framework can be either deleted or recorded for further uses. Users would better choose the closest server site in order to reduce waiting delays when the server and client frameworks interact.

Two categories of services are offered by server frameworks : user services and SIGAL services. A user service fulfills a need that involves several GDLs. Users formulate their information requests independently from the distribution and heterogeneity constraints of the GDLs. SIGAL services support several operations that allow insertion or deletion of a GDL, as well as the modification of GDLs' informational content.

4.2 A Server Framework

A server framework (Figure 3) is responsible for carrying out services required by users, or necessary to maintain SIGAL's architecture.

A server framework gathers a team of several agents: Coordinator, Help, Scenario, Interaction, Domain and Learning agents. Moreover, this team has access to three informational resources; the Service, Scenario, and Ontology Bases. The Service Base is accessible through the Help-Agent and contains a list of user and SIGAL services offered by the server framework. The Scenario Base is accessible through the Scenario-Agent and contains the realization scenarios available to the teams. The Scenario Base contains several components: formulation patterns, characteristics of agent roles and agent's plans. The Ontology Base provides a detailed description of knowledge contained in each GDL.

In a server framework, the Coordinator-Agent acts as a global supervisor of realization scenarios initiated by this framework: it monitors the progress of the agent teams executing these scenarios. The Interaction-Agent allows the server framework to interact with client frameworks, local-source frameworks and other server frameworks (mirror sites and/or principal). Finally, Learning-Agent obtains new knowledge and transfers it to the agents of this framework.

4.3 A Local-Source Framework

Each Local-source framework (Figure 4) interfaces a GDL to the SIGAL environment. It is assigned to a specific server framework in order to keep it informed about the changes occurring in the informational content of the GDL. When such a change occurs, the Domain-Agent of the server framework updates its Ontology Base, and these updates are propagated to the other servers. This mechanism preserves the coherence of the various copies of the Ontology Base through the network. A local-source framework also processes the data requests directed to its associated GDL.

The local-source framework is composed of three agents (Coordinator, Interaction, and Knowledge). The Coordinator-Agent sets the other agents and monitors the operations performed in the local-source framework. The Knowledge-Agent interacts with the GDL in order to get the data requested by the Resolution-Agents of different teams. These data are transmitted by the Interaction-Agent.

4. 4 A Client Framework

The client framework is created by the server framework which has been accessed by the user who required a given service. A client framework (Figure 5) is set up temporarily on the user's computer in order to fulfill the user's need.

A client framework is composed of a Coordinator-Agent and of one or several agent teams according to the number of GDLs necessary to process the user's request. The Coordinator-Agent of the client framework is created by the server framework. Then this agent creates the main agent team and assigns it the activities prescribed in the realization scenario that identifies the invoked service. When required, the Coordinator-Agent also creates secondary teams.

The main team is composed of three agents (Interface, Resolution, and Interaction) and is responsible for processing the user's request as well as identifying which GDLs must be accessed. According to the number of GDLs needed, the main team asks the server framework for additional agents. One or several secondary teams are created and gather each an Interaction agent and a Resolution agent. The main team is the team allowed to communicate with the server framework. Each team main or secondary interacts with a specific local-source framework of the GDL in order to solve the sub-problem that has been assigned to it by the Resolution-Agent of the main team.

4.5 Prototype of the SIGAL Environment

In the development of the SIGAL prototype, we are currently using the ORB software VisiBroker for JAVA (An ORB is a software that respects the conventions defined by OMG for the development of an object-oriented distributed environment) developed by Visigenic Company; JAVA as a programming language (particularly, its applet mechanisms); and the JDBC driver in order to connect our several informational resources. We implement the three types of frameworks which compose a distributed system.

The SIGAL prototype is characterized by the following points:

  1. All the agents are implemented as Java classes.

  2. The client applet represents the client framework and runs on the user's computer. This applet, which integrates the JDBC driver, is able to invoke the services of the server framework and to send users' requests to the local-source frameworks, after their specifications are obtained from the server framework.

  3. The server framework is developed on a local Web site. This framework uses the JDBC driver in order to connect the Ontology Base.

  4. The ORB VisiBroker for JAVA is used to establish communications between the client applets, the server frameworks, and the local-source frameworks.

  5. Microsoft's Access database system is used to manage the Ontology Base.

5. Conclusion

In this paper, we presented the major characteristics of a software agent-oriented framework and its application to the SIGAL project. A framework is made up of teams of software agents, that are able to fulfill services offered to users by the framework. These agent teams can be set up in a unique framework or in several frameworks leading to the creation of an interoperable multi-framework environment.

In the SIGAL project, we have identified three kinds of frameworks: server, client, local-source. They are the basic components of an interoperable environment for GDLs. The SIGAL project has been the object of continuing research. We are currently implementing the framework architecture described in this paper. We use the ORB VisiBroker for Java, on top of which frameworks and agent teams are built. The ORB manages the distributed operations in the SIGAL environment.


Maamar and Moulin, 97a: Maamar Z. and B. Moulin. "Interoperability of Distributed and Heterogeneous Systems Based on Software Agent-Oriented Frameworks". In Peter Kandzia and Matthias Klusch, editors, International Workshop on Cooperative Information Agents '97 (CIA'97), number 1202 in Lecture Notes in Artificial Intelligence, Springer Verlag, pages 248-259, Kiel, Germany, February 1997.

Maamar and Moulin, 97b: Maamar Z. and B. Moulin. "C-FOAL: une méthode de Conception par Frameworks Orientés-Agents Logiciels de systèmes multiagents interopérables". In Third International Symposium on Programming and Systems '97 (ISPS'97), pages 374-396, Algiers, Algeria, April 1997.

Orfali et al. 96: Orfali, R., D. Harkey, and J. Edwards. "The Essential Distributed Objects Survival Guide". John Wiley & Sons, 1996.

Omg: OMG, Object Management Group,, 1996.

Hyacinth96: Hyacinth, S.-N. "Software Agents: An Overview". In Knowledge Engineering Review, 11(3), pages 1-40, September 1996.

Gruber93: Gruber, T.R. "Toward Principles for the Design of Ontologies Used for Knowledge Sharing" Technical report, Knowledge Systems Laboratory, KSL 93-04, Stanford University, Stanford, California 94305, August 1993.

Moulin and Chaib-draa96: Moulin, B. and B. Chaib-Draa. "An Overview of Distributed Artificial Intelligence". In Foundations of Distributed Artificial Intelligence, G.M.P. O'Hare and N.R. Jennings editors, Wiley, pages 3--55, 1996.

Copyright © 1997 Zakaria Maamar, Bernard Moulin, Yvan Bédard, Gilbert Babin

D-Lib Magazine |  Current Issue | Comments
Previous Story | Next Story