ConcordiaTM as Enabling Technology
for Cooperative Information Gathering

Alberto Castillo, Masataka Kawaguchi, Noemi Paciorek, David Wong
Mitsubishi Electric ITA
Horizon Systems Laboratory
300 Third Avenue
Waltham, MA 02154, USA
{castillo, kawaguti, noemi,
wong}@meitca.com

Abstract

Concordia provides a framework for the development and execution of secure, intelligent, mobile agent applications. We discuss how Concordia’s collaboration and Service Bridge features can be used as an enabling technology for Cooperative Information Gathering. Such an approach to information retrieval is becoming increasingly important because of complex information sources like the World Wide Web.

1. Introduction

Concordia provides a robust and highly reliable framework for the development and execution of secure, intelligent, mobile agent applications. Furthermore, Concordia’s collaboration and Service Bridge features provide an ideal framework for enabling Cooperative Information Gathering, a multi-agent based approach for combining information from multiple, heterogeneous, information sources. The need for an efficient approach to information gathering is becoming increasingly important because of the changing and growing amount of information available in the World Wide Web and other complex information spaces.

2. Concordia System Overview

Concordia is a framework for developing and executing mobile agents. It has been designed to provide flexible agent mobility and agent autonomy within a highly robust and secure environment.

The Concordia V1.1 product release consists of a set of Java class libraries for server execution, agent application development, and agent activation. Each node in a Concordia system consists of a number of interacting component servers that could execute on one or more Java virtual machines as shown in Fig. 1.

Concordia supports the basic communication plumbing needed for agent mobility. In Concordia, this propagation server is called the Agent Manager.

The Agent Manager serves as the communication server for agent transfer. It provides the basic mobility support needed to ensure that code as well as data is always where it is supposed to be. It also provides the basic execution context for agents. Moreover, Concordia’s agent mobility mechanism offers a flexible scheme to dynamically invoke arbitrary method entry points within a common agent application.

Concordia provides two forms of inter-agent communication: distributed events and agent collaboration. Distributed events are scheduled and managed by the Event Manager. Agent collaboration, which makes use of this event mechanism, allows agents to interact, modify external states (e.g., a database), as well as internal agent states.

Concordia system administration is handled by the Administration Manager. The Administration Manager starts up and shuts down the other servers in the Concordia agent system. It also manages changes in the security profile of both agents and servers in the system and makes requests to the Security Manager on behalf of the agent or server. The Administration Manager also monitors the progress of agents throughout the network and maintains agent and system statistics.

The Concordia Service Bridge component makes it possible for mobile agents to interact with existing native applications or Legacy systems.

The Directory Manager enables mobile agents to locate the application servers they wish to interact with on each host. It maintains a registry of application services available on each host it manages. Application servers export their services to mobile agents by registering them with the Directory Manager. Mobile agents then obtain references to application servers via the Directory Manager's lookup operation.

Concordia’s security model provides support for three types of protection: (1) agent storage protection, (2) agent transmission protection, (3) server resource protection. Agent storage protection requires use of encryption. Transmission protection support utilizes digital certificates for verification of user identity, encryption of agents while in transit, and symmetric key exchanges to authenticate sender and receiver. The protocol used is very similar to SSL (Secure Socket Layer). The Concordia server resource protection model extends beyond the Java sandbox model to provide flexible user-based access control.

Concordia agent mobility can extend to a number of local as well as wide area networks. To prevent potential performance and reliability problems associated with the transmission of agents across networks with different characteristics in the underlying communication medium, Concordia also provides support for transactional queuing of agents between Agent Managers residing on different networks. This functionality has been realized as the Queue Manager.

Agent persistence is required to ensure that agents can recover successfully from system crashes. The Persistent Store Manager allows the internal state of agent objects to be persisted on disk.

More detailed discussion about the Concordia architecture can be found in [5, 6].

3. Cooperative Information Gathering

Cooperative Distributed Problem Solving (CDPS), describes an agent-based approach to solving distributed search [3]. In CDPS, multiple semi-autonomous agents are created and released into the distributed information space where they can search in a cooperative manner to solve the problem. CDPS differs from distributed processing in the amount of interaction required of the agents. Distributed processing involves the division of a complex problem among multiple agents, each working independently of each other to achieve the final goal. In CDPS, multiple agents work cooperatively to reach a common goal, and may require the communication of partial solutions to the problem from other agents before continuing their search.

A specific use of CDPS is in Cooperative Information Gathering (CIG) [4], a model where agents are used to combine information from multiple, heterogeneous, information sources spread around a network.

CIG is a promising application of intelligent mobile agent technology. Several benefits of CIG are presented in [1]:

One solution to the problem of combining and processing information from various distributed, heterogeneous information sources is to organize them into a hierarchy of information agents [2]. In this model, each information agent is responsible for providing information about a specific domain. Information agents further down the hierarchy provide more specialized information about a domain. In response to a query, an information agent may cooperate with information agents in other domains or sub-domains, in order to generate a response.

The concept of an information agent provides a useful abstraction for CIG by building a wrapper around an existing information source. This provides a common intelligent interface for accessing the information, regardless of the underlying system. The hierarchy of information agents also provides a method of organizing various information sources.

4. Enabling CIG with Concordia

Concordia’s features for mobility, collaboration and interaction with existing systems, make it an ideal framework for building CIG applications. It is important to emphasize the two types of ‘agents’ in this system: Information agents, which provide a model of abstraction over information sources; and Concordia mobile agents, which travel to different nodes and interact with information agents there.

4.1. Concordia Services as Information Agents

Information agents can be implemented in Concordia by creating a Service Bridge as a wrapper around an existing information source and viewing the information agent as a service that a Concordia mobile agent can interact with.

We can construct a hierarchy of Concordia Servers in a network, where each Concordia Server provides one or more information agents as their services. Concordia Servers in this network can receive mobile agents, which then query the information agents. As a result of this query, mobile agents are potentially spawned by the information agent to retrieve data from other information agents, further dividing the problem into sub-tasks which can be worked on in parallel.

For example, an information agent specializing in providing weather forcasts may provide a response to a weather query by combining its local data with more specific information obtained by collaborating with other information agents, such as a Dopplar radar service and a satellite image service.

When the mobile agent receives and processes a response from the information agent, it too may decide to spawn other mobile agents to help solve the problem. Eventually, the results of these subtasks need to be combined. Concordia’s collaboration framework can be used to facilitate this type of interaction.

4.2. Collaboration

Consider the following example of an application of CIG. A user wishes to determine the best package price for a ski trip given the following criteria: a resort in the Alps; for a week in February; slopeside lodging; and the lowest price for all expenses. The user also specifies the following criteria: at least 30% of the terrain designated for experts and a top-ten ski school.

To solve this problem, a user interacts with a travel application and enters the relevant information described above. The application then launches an agent that queries a database to determine the top-rated ski schools at resorts in the Alps. Another agent then queries a different database, in a potentially different format, to determine the terrain at each of the resorts located by the previous query. A list of suitable ski resorts is then obtained from the results of both queries.

The application then spawns other agents to query travel databases, possibly in different formats, for package prices at those resorts in February. Agents can perform this task more efficiently when they can correlate their results and adjust their computations based on the outcome of that collaboration.

Suppose the agents visit local travel agencies and then share their intermediate results and collaborate before migrating to travel agency sites in other cities. If an agent determines that a particular resort does not have any available lodging meeting the user’s criteria, the agents may determine to drop queries about trips to that destination. As more information is gathered, agents may also make other decisions. As this example demonstrates, agents can perform complex distributed problem solving more effectively if they correlate their results and alter their behavior based on the combined results [4]. Concordia’s collaboration framework facilitates this process.

The class of application described above divides a complex task into smaller pieces and delegates them to agents that migrate throughout the network to accomplish them. These agents perform computations, synchronously share results, and either collaboratively or individually determine any changes to future actions.

Concordia employs a simple programming paradigm for this type of collaboration. The goals of the collaboration framework include:

Agents within an application may form one or more collaboration units, known as agent groups. These groups are actually Java distributed objects that agents may carry references to as they travel. Collaboration is an operation on such a group, and requires each agent in the group to participate. Collaboration is implemented via a distributed synchronization point within the agent group, known as a collaboration point, and an application-specific software method that analyzes the collective results collaborated by all the agents in the group. The agent group abstraction provides the distributed synchronization. Each application need only supply its own method to analyze the collective results of the agents in the group and to allow each agent to adapt its behavior based on those results.

This distributed synchronization scheme requires that each agent "arrive" at the collaboration point (by invoking a method on the agent group) before collaboration may commence. Hence, it is ideally suited to both distributed processing and distributed problem solving applications. When each agent arrives at the collaboration point, it posts the results of its computation to the agent group and blocks until all the agents in the group arrive.

The agent group collects the results of the agents’ computations, and when all agents in the group arrive at a collaboration point, its collaborate method invokes the application’s analysis method, passing it the collective result set.

Concordia also provides both strong and weak collaboration models. Applications may specify (via an argument to the agent group’s constructor) whether collaboration should be allowed to continue if some agents in the group fail to arrive at the collaboration point. The weak collaboration paradigm is useful for cooperative information-gathering agents that may wish to coordinate with each other even if some agents have terminated prematurely or encountered network failures. Distributed problem solving agents that modify external states (e.g., updating a database) generally employ the strong collaboration paradigm, which aborts collaborations if all agents in the group do not arrive at the collaboration point.

5. Conclusion

Concordia provides an environment for the development of intelligent mobile agent applications in a highly secure and highly robust manner. In particular, Concordia is a very applicable enabling technology for cooperative information gathering applications.

An evaluation release of Concordia is available at the Mitsubishi Electric ITA Web site (URL= http://www.meitca.com/HSL/Projects/Concordia). Future extensions to the existing functionality will include support for resource allocation control, which is an underlying infrastructure to enable agent negotiation in Multi-Agent Systems.

6. Acknowledgments

The authors wish to thank other members of the Concordia team whose work has been cited in this paper: Joe DiCelie, Tom Walsh, and Mike Young.

7. References

  1. K. Decker, V. Lesser, M. V. Nagendra Prasad, T. Wagner. MACRON: An Architecture for Multi-agent Cooperative Information Gathering. In Proceedings of the CIKM Workshop on Intelligent Information Agents, Baltimore, Maryland, December, 1995.
  2. C. Knoblock, J. L. Ambite. "Agents for Information Gathering," in Software Agents, J. Bradshaw, ed., AAAI/MIT Press, 1997.
  3. V. Lesser. An Overview of DAI: Viewing Distributed AI as Distributed Search. Journal of Japanese Society
    for Artificial Intelligence-Special Issue on Distributed Artificial Intelligence, Vol. 5, No. 4, R. Nakano and S. Doshita (eds.), 1990, pp. 392-400.
  4. T. Oates, M. V. Nagendra Prasad, V. Lesser. Cooperative Information Gathering: A Distributed Problem Solving Approach. University of Massachusetts Computer Science Technical Report 94-66-version2. 1994.
  5. T. Walsh, N. Paciorek, D. Wong, "Security and Reliability in Concordia™", In Proceedings of the 31st
    Annual Hawaii International Conference on System Sciences (HICSS31)
    , Kohala Coast, Big Island,
    Hawaii, January 1998.
  6. D. Wong, N. Paciorek, T. Walsh, J. DiCelie, M. Young, B. Peet, "Concordia: An Infrastructure for Collaborating Mobile Agents", In Mobile Agents: First International Workshop, Lecture Notes
    in Computer Science, Vol. 1219, Springer-Verlag, Berlin, Germany, 1997.