COBMAF-Web: A new Web Agents Framework

1. Overview | Download Project PDF

The following proposed web model is aimed at mapping our current research on Intelligent Agent Middleware in the form of Virtual Enterprise over COBMAF to the internet and thereby setting up an actual company called which would provide a working implementation of our work to the masses. This web-model isn't a one-to-one mapping for our actual research work but has its own innovative and unique architecture. What is mapped though are the java classes (comprising of all agent related code) which my team wrote and the underlying CORBA architecture upon which our middleware is based. This no way is a replacement to our work but only a marketable deploy ready solution for Dynamically interacting Enterprises on the Internet.

The basic idea of our research is to develop a Virtual Enterprise over the middleware COBMAF so that different enterprises can interact with each other over a common platform and do business in terms of locating suppliers and buyers. Manufacturing or supplier companies participate to sell their products while procurement of buyer companies look for sellers providing goods at the best possible price. Click here to visit our research page for more information. Since this model was initially planned with the idea of developing standalone server/client or seller/buyer user interfaces, it can easily be mapped to the resources of the internet. Hence this marketable deploy-ready web-based model has been proposed.

Architecture (The Web-based model)


The architecture though complex at first sight is rather simple at its core with the basic idea being that there are in essence two interacting entities participating in the model. The first is the company (setup by us) which would have all the agent related code which our team wrote and thereby acting at the server side. The second is any Company X (supplier or buyer) who wants to participate in the dynamic enterprise to locate other buyers and sellers. Hence such a Company X or LocalAMS (Local Agent Management System) is the customer for our parent company which is also the GlobalAMS (Global Agent Management System) as defined in our research work. The GlobalAMS and all its server-side architecture and functioning is described in the next section.

The GlobalAMS (Server-Side Architecture)

Servlet Hosting and Deployment

The server-side architecture consists of any servlet enabled web server such as Apache Tomcat which would host and deploy all servlets related to the respective client companies such as Company X. More on how servlets are used is explained later. Each company who joins the dynamic enterprise is allotted its own registered user space where servlets corresponding to that company are stored on the web server.

The ORB and Naming Service

Since our current research work makes all ORBs and Naming Services compatible to work with the Virtual Enterprise (this is made possible due to the middleware we have developed i.e. COBMAF) supporting different ORBs and Naming Services in the web-based model was a natural extension. The server-side GlobalAMS therefore has the option of using various kinds of ORBs such as Visibroker, OpenORB and naming services such as JNDI and others.


The Administrator is any person in charge of setting up and managing the web server as well as initializing the Naming Service. The ORB is automatically initialized through the port values present in the code.

LocalAMSServlet (Common)

The LocalAMSServlet is common to all the LocalAMSs and acts as the intermediary between each LocalAMS and the GlobalAMS. It registers each LocalAMS on the naming service

GlobalAMS agent

The GlobalAMS agent does the following things :

1) Initializes the ORB
2) Registers on the naming service with id "globalAMS"
3) Starts the GlobalAgentManager which invokes another GlobalAgentListener class (agent) and handles registration of all LocalAMSs.

The use of Servlets

The Servlets such as Listener Servlet, Resource Management Servlet, Procurement Servlet and Sales Servlet have been employed to implement all the agent related class files which our team wrote and making our standalone code compatible in the web world. Each of the above servlets are stored on the registered user space for each company and these servlets can be downloaded by the LocalAMSs so that they can tailor it to their exact preference and upload them back on the web server.

The LocalAMS (Client-Side Architecture)

Since all our core agent related class files have been migrated to the server side, the client side architecture is kept clean in the form of simple html pages which request and receive data through the servlet processing at the server side.

How our Web-Model works


The following procedure makes it clear to see how our Virtual Enterprise would actually function over the internet :

1) The Administrator at Company first gets the servlet enabled web server up and running and manually initializes the Naming Service which is used by different participating companies to find each other and communicate.

2) Next the Administrator runs the GlobalAgent class file (agent) which initializes the ORB and registers itself on the naming service with id "globalAMS" and represents our company By registering itself this agent makes itself available to all other participating companies. It then automatically starts the GlobalAgentManager class file (agent) which invokes the GlobalAgentListener class and handles registration of all LocalAMSs in the gams database containing entries in the form of LocalAMS name - IP. Now the server side startup is complete and our Company is ready to listen to incoming registration requests from the client side.

3) Now the Company X or LocalAMS who wishes to participate in the Virtual Enterprise first visits our Company site : (currently assumed to be fictitious) and is presented with a License buying screen as seen in Fig 1.1. When it clicks on Buy now, it is taken to the Registration page (Fig 1.2) where it enters its name and selects its mode of payment. Then it clicks on the button 'Register with GlobalAMS' to send it registration request to the GlobalAMS. This registration request is processed by the common LocalAMSServlet which finds the ORB and the Naming Service and registers Company X on the Naming Service with id passed in the 'Company Name' field through the get and post methods.

4) Next the LocalAMSServlet extracts the ids globalAMS and the recently registered "Company X" from the naming service. It then uses the available interface gint to send a 'REGISTER performative' to the listening GlobalAMSListener and also sets up LocalAMS interface to listen to the corresponding response from the GlobalAMS.

5) The GlobalAgentListener which is part of the GlobalAgentManager now received the performative "REGISTER" after which it makes an entry of the type Company X name - IP in the gams directory. This confirmation goes back to the LocalAMS listener as success = 1 or success = 0. If the company is registered it is then taken to a login screen else an error message is displayed.

6) Once the registration procedure is complete, the Company X logs into the system at its sub domain : If it has chosen the option of hosting its agent related servlet code on the remote side then it simply downloads the servlet files diplayed on the screen, makes suitable changes to the code, and uploads the files back to's web server. These changes are required because the idea is that the Company X should also be able to act like another GlobalAMS providing custom Agent classes to its intranet participants. However if the Company X has chosen the option of hosting servlets on its own web server then it only needs to download the template servlets and does not have to upload any files since the servlets now become locally available.

7) A Company Y who is part of the seller-buyer network of Company X now acts like the LocalAMS and Company X acts like the GlobalAMS and the procedure is exactly the same as that for - Company X.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License