# Cougaar

Cougaar (acronym of Cognitive Agent Architecture) is a Java agent architecture.

## History of Cougaar

Cougaar Software Inc. was formed in 2001. Investment in this project dates back to 1996 through DARPA. DARPA began funding projects to develop what became Cougaar Open Source.

### Timeline

   * 1996 DARPA funds Advanced Logistics Program (ALP)
   ** Program invests $80 Million to develop core architecture technology
   * 2000 DARPA decides to release ALP technology as open source and renames to Cougaar
   * 2000 DARPA funds the Ultralog program to extend Cougaar security, scalability and survivability for global battlefield conditions.
   ** The program invest $70 Million to achieve ultimate survivability
   * 2001 Cougaar Software, Inc. starts to commercialize Cougaar Technology
   * 2004 CSI releases first commercial Cougaar based solution – ActiveEdge RFID Middleware
   * 2005 CSI releases first commercial Cougaar applications development environment
   ** ActiveEdge Intelligent Agent Platform v1.0 Released
   ** Three system integrator partner / customers choose the ActiveEdge platform for major operational initiatives
   * 2006 First Operational Instance of Solution based on ActiveEdge Solution provided through Partner for Major Retail Chain
   * 2007 Additional major partners and customers validate ActiveEdge
   ** ActiveEdge v1.5 released
   ** The Boeing Company licenses ActiveEdge
   ** Additional Defense Contractor licenses ActiveEdge
   ** CSI supports SAIC & Honeywell on ALCT application providing theater distribution planning:**El ejército de EE.UU. licencia ActiveEdge
   * 2008 ActiveEdge v1.6 released

## Features

Cougaar agent architecture is an open source, which includes infrastructure and core services. Agents are autonomous software entities that communicate with other agents or external services for a specific domain functionality. Computing agents are based on a programming methodology that facilitates direct decomposition of complex tasks. The agents manage application behavior and environment handles systemic adaptation. The agents and the environment can develop, test and configure independently, but run together. Cougaar agent abstraction includes several integrated advanced services, such as:
   * Blackboard publish / subscribe for communication within the agent itself and between agents
   * Http servlet engine for UIs based
   * Knowledge representation system: logistics assets, FrameSets…
   * Coordination between agents through slate coordination mechanisms, assignments, etc.
Cougaar agent running on a node Cougaar (Java Virtual Machine), which itself runs on a host. That agent agrees with one or more plugins, which define the behavior of the agent. An agent with zero plugins does nothing. Unlike other architectures based entirely on messages, Cougaar is based on blackboard plugins as main data managers. The plugins react to the data on the blackboard adding / changing / deleting notifications. The Cougaar platform infrastructure transforms the data to the blackboard in inter-dealer operations, but this is hidden from the developer API. All plugins interagency coordination is implemented through asynchronous data subscriptions. The infrastructure of the blackboard adds / changes / deletes batch notifications, providing greater robustness and scalability to the system. The entire state is stored in the blackboard, which provides support for failure recovery. The core services are Cougaar component-based implementation, covering many fields such as mobility of agents between nodes, the persistence of agent state and subsequent recovery after a crash, a transport of messages supporting multiple protocols, etc..

## Applications of Cougaar

* Integrated Critical Infrastructure Modeling and Simulation
* Logistics Modeling Tool for Highly Adaptable Military Organizations
* Logistics-Aided Battle Command Planning
* Supporting Robot Teams over Wireless Ad hoc Networks
* Control Surfaces
* Administrative Tool for Monitoring a Distributed Agent Society