Cougaar Mascot

Feature List

Cougaar Mascot

 Version 1.0 Release of 
The Cougaar Advanced Tutorial

** Updated from 8.2.1 for use w/ Cougaar Arch Version 8.4...(If you are using a later version and experience problems, try recompiling using the included make scripts.) **

"Books OnLine" represents the Cougaar Advanced Course, meant to be done on your own.  It is designed for developers who have either attended or taken on their own the Cougaar PlugIn Development Course.  If focuses on advanced topics like:

  • Designing distributed systems for modularity and scalability
  • Using generic PlugIns to rapidly build complex applications
  • Managing and coordinating resources across multiple agents
  • Building multiple inter-related user interfaces through PSPs
  • And much more...

Overview: Building an Agent-Based Bookseller

This is version 1.0 release of the BooksOnLine Cougaar society. The changes in this version from the last posted version (V1.0) are minimal, solely for compatibility with Cougaar V8.4. It has been broken down into five lessons, which hopefully represent more easily digestible chunks of the architecture functionality. Each lesson increases in the society complexity and realism. Lessons can be downloaded individually or as a complete set. Each is self-contained, and includes source, compilation and run scripts as well as pre-built class files. A brief description of the contents of each lesson is provided below. More detailed descriptions of the lessons are contained in the Tutorial document. These sections, while not a complete line-by-line code analysis, do provide a nitty gritty view of the functionality of each plugin, with code level descriptions of the significant features in each lesson.

For convenience, we have packaged up the document and lessons 1-4 Software and JavaDocs into a BOL_1.0_Full.ZIP, (Combined ZIP, 10.5MB)

Lesson 1: Setting Up Shop

It is assumed that adventurers into this advanced tutorial section have a good understanding of the basics of the Cougaar architecture. This can be achieved through reading the PDG, analyzing/building/running the basic tutorials, or attending one of the Cougaar training courses. Lesson 1 serves to pull together a lot of the basic architecture functionality. It illustrates the foundation concepts of Property groups, prototypes, task expansion, and allocation. In addition, it presents a basic PSP example to show how the Cougaar PlanServerPlugin can provide user interfaces by providing web server-like functionality. The society in Lesson 1 includes three interacting clusters: The OrderManager, the Warehouse, and the Payment clusters.

Lesson 2: Building Partnerships

This Lesson adds two additional clusters outside of the BooksOnLine corporate boundaries, the Shipper and the Publisher. In addition, it introduces the ability to customize allocation result parameters through the use of user-defined aspect types. Lesson 2 significantly extends the use of PSPs, notably using Javascript, framesets, cookies, communications from one PSP (BOL_UI in OrderManager) to another (CatalogSearch in Warehouse). Appendices B and C of the tutorial document show the user interfaces resulting from the output from these PSPs. Additionally, this lesson includes the generic LDM SQL plugin and the LDM XML plugin. Finally, the GenericRuleBasedPlugin is integrated with the Payment cluster to use rules to determine whether the customer has adequate credit. The GenericRuleBasedPlugin uses the JESS system, which is a Java derivation of the CLPS system.

Lesson 3: Expanding the Business

Lesson 3 adds the capability to have multiple Warehouses. This shows the Cougaar architecture role-relationship functionality, which would allow the Society to easily add as many warehouses, shippers, publishers, etc. as needed as the operation grows. Also demonstrated are the Cougaar concepts of Predictors (of cluster behavior), and KeepAlive PSPs (which provide dynamically updated information).

Lesson 4: Starting Operations

In this lesson, two new types of plugins are illustrated, the Assessor and the Aggregator plugins. Triggers are used in conjunction with Assessor plugins to exemplify the simulation of tasks actually being performed (or executed, in the Cougaar jargon). Another cluster is added, the ScaleTester, which lets us pump lots of orders into the society to simulate many web clients ordering books at very close and overlapping time intervals. Finally, the capabilities of the Cougaar persistence mechanism are exercised to show recovery capabilities of the architecture.

 

Lesson 5: Doing Business

Lesson 5 is not yet running with Cougaar 8.4. This download works with 8.2.1. We expect this to be fixed soon. Extends Lesson 4 by illustrating the use of the execution monitoring and event generation system, and the Vishnu Generic Scheduler provided by Cougaar. This allows simulation of external events being injected into the society, as well as variation of the rate of time passage and setting discrete time jumps, all of which are very useful when testing a society before it is actually fielded to real world loading. Vishnu is a powerful genetic algorithm-based set of plugins that do most of the work for you in scheduling many tasks to be performed by a set of assets. Still in the works for lesson five is the incorporation of the Generic Inventory Manager, which is a set of plugins and processors that provide the capability to easily add functions to manage inventory and reorder items automatically based on threshold stockage and demand levels.



 

Last Updated: 17 July 2001 (PKC)