The success of any business organization today lies not only in its strong foundation and individual genius but also in its ability to collaborate with the remaining business world and get the best out of it. With the arrival of networks and distributed systems, geographical dispersion of business organizations poses little hindrance now. Today, Virtual Enterprises (VEs) offer a platform for numerous inter-dependent organizations to come together, share resources, collaborate and negotiate with each other. The implementation of such a VE requires an infrastructure which is autonomous, accommodates heterogeneity and supports continual extension.

A Multi Agent System (MAS) represents a virtual society of pro-active participants reflecting situations in real-life VEs. The extensive research on Multi Agent Systems (MAS) going on in our Institute for the last few years offered us a big initiative to use this technology in implementing a VE. A previously developed agent coordination model - TSLM (an optimization over Linda-Mars) gave us some essential ideas about MAS design.

Even though Multi Agent Systems accommodate heterogeneity in terms of function, there is still a huge restriction on the heterogeneity of the design of the individual agents themselves i.e. they need to be homogenous in terms of language and platform. After working on a Java-RMI based client-sever system last year we noticed several short-comings of the technology and realized the importance of having a language and platform independent architecture for heterogeneous servers and clients to communicate. Such architecture is only offered by CORBA.

One major incentive that sealed the decision of this project was given by our external guide, who has personally worked in the same arena and created a Virtual Enterprise using a custom-made language called VEML which incorporated features of KQML as well.
With ideas of improving the current implementations of VEs, strongly supported with the knowledge gained from our previous work, we decided to undertake this project. We have built a Virtual Automobile Manufacturing Enterprise using a CORBA based Multi Agent System.

ABSTRACT

The rapid advancements in networking technologies have created the opportunity to use the combined computing and communication resources of computers and devices of different enterprises. These different enterprises, with their unique specializations and competency skills, can agglomerate to create a virtual environment that caters to the achievement of an integrated larger goal.

A Virtual Enterprise (VE) is an enterprise that has no resource of its own but consists of shared and coordinated activities that utilize the resources of the participating enterprises. These enterprises are distributed in nature. Adding together the resources of all constituent enterprises requires technology for networking, communication, co-ordination and decision-making.

The interaction between the enterprises in a VE is achieved through the use of software agents. In a multi-agent environment, each participating enterprise houses one or more agents. The agents perform certain specialized functions, both in terms of computation and communication, on behalf of their host enterprises. These agents can be implemented in any language, on any platform running any operating system, and hence are heterogeneous. Such heterogeneous agents provide autonomy, simplicity of communication, computation and well-developed semantics. They ensure the necessary flexibility and dynamism of a VE System. For the VE to function, the enterprises communicate with each other through their agents. The communication protocols designed have, therefore, to ensure coordination and teaming.

A variety of agent development environments exist that facilitate agent development in the one language. However, VE being a heterogeneous environment, needs to be provided with an Application Programming Interface(API) to enable the ease of agent design and efficient communication between agents coded in different languages on different platforms. To allow the heterogeneity the API uses the CORBA (Common Object Request Broker Architecture) middleware to build VE. CORBA has been designed to allow intelligent components to recognize each other. It specifies an extensive set of services for creating and deleting objects and accessing them via an object bus.

An agent can be considered as an intelligent object that can live anywhere on a network. By using CORBA, the language and compiler used to create the agents will be a transparent entity during inter-agent communication. In this type of interaction, an agent, irrespective of the language it has been coded in, need not know about the language or the platform of the agent it is communicating with.

In order to illustrate the working of such a communication model, our project will make use of an automobile manufacturing application of a VE System. An automobile manufacturing application requires different types of agents for different types of duties like :

Our aim in this project is to develop a model for heterogeneous agent communication in a Virtual Automobile Manufacturing Enterprise using CORBA.

The project has the following sub goals in their respective order:

1. Design the structure of an agent based Virtual Enterprise system that is distributed and heterogeneous, with the focus on Automobile Manufacturing, along with the components, services and features available.

2. Outline the agent interaction scenarios and develop a FIPA compliant ACL for communication between the agents with all the necessary performatives, the protocols and semantics for message passing and interaction between agents.

3. Build an Ontology for the above.

4. Design a negotiation algorithm for the agents involved.

5. Develop an underlying distributed message passing platform with all lower level primitives and semantics for agent communication in a heterogeneous environment - so CORBA is chosen as the underlying middleware.

6. Develop a set of APIs that provide a framework for building the above designed system comprising agents with specialized behaviors and both, synchronous and asynchronous communication abilities, which forms the basis of the Virtual Enterprise.

7. Develop a set of standardized agents using the framework to demonstrate the working of a full-fledged Virtual Enterprise.

Architecture

The architecture comprises of three layers shown in fig.1 and is explained below.

1. Application Layer

The application layer can be any virtual enterprise system requiring heterogeneity, distribution, authentication and privacy. From a business perspective it involves con-tracts, cross-organizational management and statutory obligations. Such an enterprise, implemented as a collection of multi agents, build using the COBMAF framework, allows heterogeneity as well as agents communication using message passing accord-ing to FIPA ACL [4]. The paper explains “VAME : Virtual Automobile Manufactur-ing Enterprise” a globally distributed system. The agents invoked using COBMAF– API use domain specific performatives for interaction.

2. COBMAF : Framework Layer

This is heart of the entire system. The framework presents itself in the form of a set of APIs that the application developers can utilize to create agents. The framework is implemented in various languages so that agents can be language independent and yet share an identical structure and capabilities. The layer provides a mapping between the higher level agents that use message passing through FIPA ACL performatives and the lower level messaging layer that uses middleware functionalities through method invocation primitives.

3. CORBA message transport layer

The lowest layer is a message transport layer that handles the transmission and recep-tion of messages from the higher layers, translating higher level agent messages into lower level method invocation primitives across a heterogeneous medium. This layer is opaque to the existence of agents in the higher layers. It concerns with the task of delivering a message object wrapped as a CORBA object that makes use of the ORB to invoke the message passing primitives defined using the CORBA IDL. These mes-sage passing primitives provided by the underlying message transport layer are:

send(Message);

recv();

Here, the ‘send(Message)’ primitive takes an object of the Message class as input parameter and sends it to the destination through the CORBA ORB. The ‘recv()’ primitive receives a message from the destination. By using wrapper class over these basic message passing primitives the application developer has full access to the basic services of the underlying middleware as well as additional services such as:

Implicit initialization of the sender address of the message initiating agent.
Setting the content of the message.
Setting the Performative for the message.
Adding one or more receivers for the message.
Unicasting or Multicasting messages.
Retrieving the content of the message.
Retrieving the sender identity of the message.
Retrieving the performative of the message.

COBMAF API

The API allows the application developers to create and start agents from Class Agents which is the base class that every user agent class should extend and also lets the user define the behaviour [5, 7]. The API allows developer to choose specialized behaviour for every agent thus enabling the agent to execute predefined actions in a predefined manner.

Virtual Automobile Manufacturing Enterprise (VAME)

VE is a temporary aggregation of core competencies and associated resources collaborating to address a specific goal, presumed to be a business opportunity. VE is considered to exist in a number of forms and environments. This can be Internet communities sharing a common interest, Intra-enterprise groups of individuals lo-cated in a variety of locations but who share a common goal such as a project team, Inter-enterprise organizations with distributed independent support systems such as a firm with outsourced functions, Independent organizations that joined together to accomplish a particular project and many more. Due to the diversity of the application domains of a VE, the functionality and features of COBMAF can be fully exploited by its implementation. The main advantage of using a Multi-Agent System approach for implementing VE is that the structure of multiagent system provides a homogeneous communication modeling environment and traceability of the VE activities. Given the goal-oriented and distributed nature of a VE, the interactions that take place within it are, by nature, cooperative. This cooperative modeling of a VE can be achieved by using the agents provided in COBMAF. On the other hand, the versatility of COBMAF agents ensures that a competitive environment can also be setup to facilitate negotiation facilities. The nature of COBMAF agents enables decentralized control of the enterprise, which is desirable in a dynamic and flexible environment, and the behaviour of the complete enterprise emerges as a result of the behaviours of the individual agents. The scalabil-ity property of COBMAF seems particularly adequate to support dynamic VEs in which different levels of cooperation with different sets of partners might be estab-lished at different phases. On the other hand, each enterprise might itself be seen as composed by a network of semi-autonomous entities (departments). This can be con-veniently modeled using COBMAF.

COBMAF is used successfully in developing distributed application for Virtual Automobile Manufacturing Enterprise (VAME). VAME is an agglomeration of all companies that provide essential parts in the manufacturing of an automobile. The reasons for choosing such a VAME are the difficulties in implementing a generic Virtual Manufacturing Enterprise that caters to the demands of all users and the plethora of product types, complexity of manufacturing of an automobile which ex-ploits the various features of a Virtual Enterprise, relating the manufacturing of other products to that of an automobile and creating a hierarchy of VEs inside the VAME by delving into finer granularity of products. VAME has been realized by the mini-mum of four COBMAF agents (fig. 4), whose roles are as follows.

Resource Management Agent (RMA) : The RMA is responsible for keeping a track of the quantity of the various ready-made products in its organization. In addition, it maintains a record of the various spare-parts/raw materials required to manufacture each product. If the quantity of the ready-made products/spare-parts drops below the threshold set by its user, then it is responsible to procure the spare-parts/raw materials and manufacture the products.

Conclusion and Future Work

This paper presents COBMAF: A CORBA Based Multi Agent Framework. We have provided a distributed system architecture for virtual enterprise and discussed the framework layer in detail. We have considered virtual automobile manufacturing enterprise as an example scenario for COBMAF and have provided the roles played by four VAME agents, the strategy, local agent discovery, global agent interaction and local agent interaction. VE presents many challenges and opportunities for AI technology. Adding together the resources of all the participating enterprises of VE stresses technology for information retrieval, networking, communication, coordina-tion, decision making and so on. Satisfying diverse user needs calls for advanced interfaces, user modeling and other emerging techniques.

COBMAF has scope for further enhancements in the direction of AI and Stan-dardization. Our future work is to extend the framework to have ‘mobile’, `Self-Learning’ MAS and also facilities for Wrappers like Socket Wrapper, File Wrapper and General object wrapper to deal with Legacy Systems etc. Ontology needs to be developed for the specific domain for agent communication.