Configuration tutorial TOC

BOL Configuration

A step by step guide to configuring the BOL Society.
  Step 1. Create the Node Configuration file
  Step 2. Create the Society's Domain Configuration file
  Step 3: Create the Agent Configuration files and their associated Prototype-ini.dat Configuration files
  Step 4: Run the society
  Step 1. Create the Node Configuration file
The BOL Society consists of five seperate logical clusters: OrderManager, Payment, Warehouse, Publisher, and Shipper. Since, the BOL Society will consist of only one Node, all of these agents must be represented in the Node configuration file. Update the BOLNode.ini file to include entries for all five agents.
Starter BOLNode.ini file
Solution
  Step 2: Create the Society's Domain Configuration file
BOL needs to have access to three domains: The PlanningDomain, BOLDomain and the GLMDomain. By default, the PlanningDomain is added to a Cougaar Society for you, so the BOLDomain and GLMDomain need to be added to the LDMDomains.ini file.
Starter LDMDomains.ini file
Solution
  Step 3: Create the Agent Configuration files and their associated Prototype-ini.dat Configuration files
Now we must create an Agent Configuration file and a corresponding prototype-ini.dat configuration file for each agent. For each agent use the org.cougaar.core.agent.SimpleAgent class as your Agent Implemententation and be sure the MessageAddress of each agent matches the name of the cluster int the Node Configuration file (BOLNode.ini). Also, for each agent we will add two common debugging components: The org.cougaar.planning.servlet.PlanViewServlet Servlet and the org.cougaar.planning.servlet.CompletionServlet.
In the OrderManager.ini file add the class=org.cougaar.core.agent.SimpleAgent entry and the MessageAddress = OrderManager. Then add the two plugin components using the plugin class org.cougaar.core.servlet.SimpleServletComponent and passing in the following parameters:
For the PlanViewServlet : org.cougaar.planning.servlet.PlanViewServlet, /tasks
For the CompletionViewServlet: org.cougaar.planning.servlet.CompletionServlet, /completion

Starter files:
OrderManager
Publisher
Payment
Warehouse
Shipper

Solutions:
OrderManager
Publisher
Payment
Warehouse
Shipper

At this point you should have the LDMDomains.ini, BOLNode.ini and the Agent .ini files completed. The next step is to define replationships between the Organizations within the BOLSociety so Tasks can be allocated from one organization to another. The prototype-ini.dat will identify the relationships each agent has with other agents within the BOLSociety. Lets take the Shipper agent as an example. The shipper organization supports the Publisher and Warehouse Organizations by providing a shipping service. Therefore in the Shipper agent's prototype-ini.dat file, it must be identified that the Shipper agent supports the "ShipmentVendor" to the Payment and Warehouse Agents. Doing this will enable plugins on the Publisher and Payment agents to find an organization that fullfills the role of "ShipmentVendor" and will find the Shipper Agent's Organization. Now that the Organization can be found on the Blackboard, Tasks can be allocated to the Shipper. Here is the Shipper's prototype-ini.dat file:
		   			[Prototype]			Organization

					[UniqueId]      "UTC/CivilianOrg"

					[UIC]           "UIC/Shipper"

					[Relationship]
					Supporting      "Warehouse"              "ShipmentVendor"
					Supporting      "Warehouse2"              "ShipmentVendor"
					Supporting      "Publisher"              "ShipmentVendor"

					[TypeIdentificationPG]                      
					TypeIdentification          String  "UTC/RTOrg"
					Nomenclature                String  "Shipper"
					AlternateTypeIdentification String  "SRC/Shipper"

					[ClusterPG]
					MessageAddress MessageAddress "Shipper"

					[OrganizationPG]
					Roles                Collection   "ShipmentVendor"
		   			

In order for the Organzation Assets to be successfully created and propagated to the correct agents, two plugins must be added to each agent:
1. org.cougaar.mlm.plugin.organization.OrgRTDataPlugin
2. org.cougaar.mlm.plugin.organization.OrgReportPlugin
Add these two plugins to each agent's ini file (if you fail to do this, no Organization Assets will show up on the Blackboard)
For a more details about the prototype-ini.dat file see The prototype lesson


Next, complete the OrderManager Agent's prototype-ini.dat file, it does not support any other Organzation.
Next, complete the Payment Agent's prototype-ini.dat file, it provides the supporting Role of "PaymentAuthority" to the OrderManager Agent.
Next, complete the Publisher Agent's prototype-ini.dat file, it provide the supporting Role of "PublishingHouse" to the Warehouse Agent.
Finally, complete the Warehouse Agent's prototype-ini.data file, it provides the supporting Role of "WarehouseControl" to the OrderManager Agent.

br>Starter files:
OrderManager
Publisher
Payment
Warehouse
Shipper

Solutions:
OrderManager
Publisher
Payment
Warehouse
Shipper
  Step 4: Run the society
At this point all of the configuration files are ready, so lets run the BOL Society. Run the snode.bat or snode.sh from the command line, passing in BOLNode as an argument to start the BOL society. Once the society is started, browse to [host]:8800, and you should see all of the agents. Browse to an agent and click the /tasks link to see Assets and Tasks. You should see Organization Assets on the blackboard of the agents as a result of the prototype-ini.dat files.

Now that the basic configuration of the BOL Society is completed, lets create the web tier of the BOL Society in lesson 2.