Presentation is loading. Please wait.

Presentation is loading. Please wait.

Cougaar Overview John Zinky 1 Cougaar Overview Dr. John Zinky February, 2009.

Similar presentations


Presentation on theme: "Cougaar Overview John Zinky 1 Cougaar Overview Dr. John Zinky February, 2009."— Presentation transcript:

1 Cougaar Overview John Zinky 1 Cougaar Overview Dr. John Zinky February, 2009

2 Cougaar Overview John Zinky 2 Multiple Roles Need to Understand Cougaar Architect –What are Cougaar’s subsystems? –How can Cougaar be interface to existing subsystems? Researcher –How does Cougaar push the State-of-the art? –Is Cougaar an agent system, adaptive middleware, a knowledge sharing system, or an aspect-oriented programming environment? Developer –What Cougaar Design patterns and services are available? –How do I get Cougaar to work in my Eclipse IDE? Installer –How do I configure a Cougaar Agent Society –Which feature should I add to the Environment to handle my situation? Operator –How do I know if Cougaar Society is working? –How do I change a Cougaar Society dynamically? Manager –How can Cougaar save development effort or time to market? –Who else is using Cougaar and for what purpose?

3 Cougaar Overview John Zinky 3 1.Cougaar Agent Middleware 2.Target Applications 3.Agent Programming 4.Environment Programming 5.Deployment and Operations Tools 6.Example Application 7.Management Background Outline

4 Cougaar Overview John Zinky 4 What Is Cougaar? Cougaar is an open-source agent architecture. Agents are autonomous software entities which communicate with other agents or external services to achieve domain-specific functionality. Agent-based computing is a programming methodology which facilitates straightforward decomposition of complex tasks. Cougaar includes the infrastructure and core services Cougaar supports highly distributed, survivable applications

5 Cougaar Overview John Zinky 5 Cougaar Agent Reference Model component servic e BB Behavior effector coordinator sensor component service component library Agent BB Behavior effector coordinator sensor component service library Agent Abstracted Environment Local Behavior (plugin) State (BB) Pub/Sub Black Board (BB) API Environment Distributed Services Components Imported libraries Service oriented API Agent/Env. API sensor effector coordinator active API Agents Application domain specific System specific Infrastructure Cyber Resource Physical Elastic Boundary

6 Cougaar Overview John Zinky 6 Separation of Application from Environment Agents handle Application Behavior Environment handles Systemic Adaptation Agents and Environment can be independently developed, tested, and configured, but run together Host IP Node Process MTS Agent Coordination BB Behavior BB Behavior Network

7 Cougaar Overview John Zinky 7 Cougaar Agent Architecture Innovations Two levels of agent interactions –Intra-agent publish/subscribe blackboard for tightly-coupled interactions between an agents components (“plugins”) –Inter-agent message passing for scalable, loosely-coupled interactions Multiple Domain Knowledge Representation –Prototype/delegation data model –Capability-based representations –Frame-based knowledge representation Reusable Component framework –Components advertise and obtain local services from their peer components –Binders can block or modify service requests (for security or aspects) –All agent capabilities are pluggable components and services (message transport, naming, logging, etc) TRANSCOM 1BDE 2BDE

8 Cougaar Overview John Zinky 8 Creating a Cougaar Agent Domain Specific Agent Generic Agent Business Rules & Processes PlugIn + Allocator Assessor Expande r = Weather Status A/C Availability Mission Assignment Mission Planning Mission Management Agent += Mission BehaviorsAgent Architecture

9 Cougaar Overview John Zinky 9 Agents Construct Dynamic Communities of Interest: Logistics Domain Example Organization-Level (Community) Allocator Assessor Expander Air Scheduler CENTCOM TRANSCOM FORSCOM AF AMC MSC Army AMC Wings Div FSB Domain Specific Agent Air Scheduler Route Planner Rail Planner Port Planner Mode Selection TRANSCOM Transportation Planning and Execution Logistics Planning and Execution Society

10 Cougaar Overview John Zinky 10 1.Cougaar Agent Middleware 2.Target Applications 3.Agent Programming 4.Environment Programming 5.Deployment and Operations Tools 6.Example Application 7.Management Background Outline

11 Cougaar Overview John Zinky 11 Successful Uses of Cougaar Agent and Blackboard Programming Model –Large Logistics Application decomposed using agent and blackboard –Task/Allocation coordination abstractions built-in –Asset knowledge representation abstractions built-in Distributed Application Overlays –Extensible infrastructure pluggable adaptation and survivability components –Flexible Layout of application functionality to distributed resources. Embedding into Legacy Environment –Easy integration with libraries and other platforms –component-based middleware lighter weight than J2EE Emulation -> Field –Create reference implementation of application –Test application under test bed stresses. –Field by enhancing the environment, not the application

12 Cougaar Overview John Zinky 12 Target Applications have Extreme Requirements Realtime distributed P2P applications with severe resource constraints and with Scalability, Survivability, Security (S3) requirements Examples of Extreme Applications Mission Management Global network management and optimization Information Assurance Control Surveillance on UAV mobile sensor platforms Proactive content distribution Management Plane Management Plane Data Processing Plane

13 Cougaar Overview John Zinky 13 Properties of Extreme Applications Application Functional Requirements (addressed at programming/development phase) 1.Communication: client/server vs. P2P 2.Development cycle: waterfall vs. adaptive 3.Process during operational lifespan: fixed vs. evolving 4.Human participation level: none vs. sensor vs. model vs. cognitive 5.Cross-cyber resource load CPU vs. network vs. storage vs. all System Resource Constraints (exhibited during runtime) 1.Distributedness of cyber resources: centralized vs. LAN vs. WAN 2.Data plane speed: batch vs. online vs. realtime (superhuman) 3.Survivability (reliability & performance): non-crucial vs. exigent 4.Security adversary level: trust all vs. compartmentalized trust vs. malicious vs. insider threat 5.Scalability (hosts): 10s vs. 100s vs. 1000s vs. >10,000 Business Environment (Organizational constraints) 1.Market share: large vs. medium vs. small 2.Integration environment: standalone vs. stovepipe vs. new functionality w/ legacy system integration Web Service Grid Data Base Knowledge RepDistributed Hash Cougaar

14 Cougaar Overview John Zinky 14 1.Cougaar Agent Middleware 2.Target Applications 3.Agent Programming 4.Environment Programming 5.Deployment and Operations Tools 6.Example Application 7.Management Background Outline

15 Cougaar Overview John Zinky 15 Agent services Cougaar Agent Abstraction includes many advanced, built-in services –A publish/subscribe blackboard for plugin communication within an agent and between agents –A Servlet engine for HTTP-based UIs –Knowledge Representation Logistics Assets FrameSets OWL –Coordination between Agents via Blackboard Task Allocation Relay Coordination Plugins

16 Cougaar Overview John Zinky 16 Java Virtual Machine (JVM) Host “localhost” JVM Nodes, Agents, Plugins A Cougaar Agent runs on a Cougaar Node (Java Virtual Machine), which runs on a host. An agent is comprised of one or more Plugins, which define that agent's behavior. An agent with zero Plugins does nothing. Agent A Plugin X Node 1 Plugin Y Plugin Z Node 2 More agents Blackboard Agent B Plugin Q Blackboard

17 Cougaar Overview John Zinky 17 Blackboard service In contrast to other, entirely message- based architectures, Cougaar’s blackboard-based plugins are primarily data-driven –Plugins react to blackboard data add/change/remove notifications in a transactional “execute()” method –All inter-plugin coordination is performed through these asynchronous data subscriptions –As previously noted, the infrastructure translates certain blackboard data operations into inter-agent messages, but this is hidden from the plugin developer Blackboard add/change/remove notifications are batched by the infrastructure, which improves system performance, robustness, and scalability. Note that all state is saved on the blackboard, which is used to support persistence and crash recovery. Agent Plugin Blackboard Plugin Local Data Structures

18 Cougaar Overview John Zinky 18 Blackboard v.s. Messaging Message Transport Agent A Blackboard Plugin Y Node 1 Relay Data Message Transport Agent B Blackboard Node 2 Relay Data Message Plugin Q Plugin X Local Data Each agent has a private publish/subscribe “blackboard” shared memory for use by its local Plugins. Plugins (should) only communicate with each other through their local blackboard. Certain blackboard objects (e.g. Relays) are observed by the infrastructure and turned into inter- agent messages. –The messaging is transparent to the Plugins. This is a Cougaar-specific “design pattern”.

19 Cougaar Overview John Zinky 19 Servlet Service Blackboard Tomcat Servlet Engine Agent A Blackboard Node 1 Servlet “/ping” Plugins can also act as “Servlets”, which listen for remote URL connections The “ServletService” is another built-in Cougaar service, analogous to the “BlackboardService” In the example below, agent A has a Servlet/Plugin that will listen for browser requests to: –http://localhost:8800/$A/pinghttp://localhost:8800/$A/ping This Servlet queries the blackboard and prints the data as HTML, for display in the browser. As another example, it could return XML or Java Objects to a Swing UI. This is Cougaar’s preferred “UI” design pattern. Data HTTP

20 Cougaar Overview John Zinky 20 Different Logistics Services Have Different Perspectives About Assets Maintenance Tasks Equipment Transport Tasks Fuel Transport Tasks S/N: A2709 Model: MEP-208A Generator S/N: T789 Model: M978 Truck MILITARY SEALIFT COMMAND S/N: T789 Model: M978 Truck S/N: A2709 Model: MEP-208A Generator PRIMEPWR- ENGCO POL- TRKCO S/N: T789 Model: M978 Truck S/N: A2709 Model: MEP-208A Generator MAINTCO

21 Cougaar Overview John Zinky 21 FrameSet Knowledge Representation Host Process Object Class Java Objects are code generated –Frames and relationships defined using XML –Support multiple Java interfaces Cougaar Blackboard, JESS Shadow Facts, Java Beans Applet viewer Slot inference (Real-time) –Type (is-a) –Containment (has-a) –Visitor Pattern (composed-of) –Aggregation (summary-of) Relationships are also Frames –Benefits from Frame inheritance Meta-data tags –Defined at compile-time Slots, frames, framesets –Example Slot meta-data Type, default-value, units, path, doc, member, warn, immutable, notify-blackboard, notify-listeners, transient Thing Equip Appl Frame name value Relationship parent-name value child-name value Containment inheritance Type inheritance

22 Cougaar Overview John Zinky 22 Provider Blackboard Assessor Requester Blackboard Predictor Expander Allocator Task Allocation Decomposition Task 1 1. Task created Allocation 2 2. Allocation predicted T 3 3. Task transferred T T 4 4. Task expanded A 5 5. Local Subtask allocated A 6 6. Remote Subtask transferred 7 7. Sub-allocations assessed A 8 8. Allocation Result published 9 9. Allocation transferred

23 Cougaar Overview John Zinky 23 Characteristics of Programming Models Programming Model Ops per Second IsolationThreadCallCrosscutCougaar usage Method ~10 7 noneCallerSyncAOPLibraries Service ~10 6 Bind to service CallerSyncBinder Aspects Core Services Event Listener ~10 5 Bind to publisher PublisherSyncMultiple Listeners FrameSet Enterprise Service Bus ~10 ? Bind to Topic IndependentAsyncMultiple Listeners Message transport Service Cougaar Blackboard ~10 4 Independent AsyncMultiple subscriptions LDM FrameSet OWL Inference Engine ~10 4 IndependentSingleAsyncMultiple rulesFrameSet OWL The programming model for interaction between components, should allow a range of flexibility vs efficiency tradeoffs

24 Cougaar Overview John Zinky 24 1.Cougaar Agent Middleware 2.Target Applications 3.Agent Programming 4.Environment Programming 5.Deployment and Operations Tools 6.Example Applications 7.Management Background Outline

25 Cougaar Overview John Zinky 25 Cougaar Core Services Too many to cover: –Agent mobility between nodes (including across hosts) –Agent state persistence and crash recovery –Distributed, replicated naming service –Message Transport with multiple protocol support –Metric Service with gossip –Threading Service with CPU monitoring and control –Logging –Directory services (UDDI) –Agent communities and “ABA” group messaging –Embedding a Cougaar node in an Applet, Bean Container, etc But they are all have a Component-based implementation

26 Cougaar Overview John Zinky 26 Generic SOA Life Cycle 1.Initialize 2.Register services 3.Request Service 4.Invoke Service 5.Disconnect Client Component Server Component Service Instance Service Factory Register Service() Service Broker Get Service() Invoke Service() Get Service() Container The interaction between client and server is regulated at key points in the life cycle. 1 1 2 2 3 3 4 4 5 5 1 1 5 5

27 Cougaar Overview John Zinky 27 Security binders wrap components to enforce behavior Client Component Service Broker Binder Container Binder Service Broker Get Service() Service Component Service Provider Binder Service Instance Service Provider Service Broker Register Service() Enhanced Service Service Proxy Client-side Service Proxy Server-side Security concerns Cross-Cuts Functional Decomposition Untrusted Domain code is implemented in components (SOA-style) Binders regulate interactions between components

28 Cougaar Overview John Zinky 28 Component Aspect Object QoS State QoS Services Work-flow between stations Component Aspect Object QoS State QoS Services Aspect Delegates Aspects Cross-Cutting Functionality

29 Cougaar Overview John Zinky 29 Incoming Email Link Protocol Message Transport Receiver Node Agent Receive Deliver MTS Provider Service Broker Agent Binder BBBB LPLP MMMM RecvLRecvL DelivrDelivr Email Input Stream Deliver Service Broker Services POP3 Node Transport Service Broker Round Trip Time Aspect Message Acking Aspect Message Ordering Aspect Agent BBBB MTS Provider Outgoing Email Link Protocol ServiceBroker Route Send Message Transport Sender Agent Binder LPLP MMMM SendQSendQ RouteRoute DestQDestQ Dest Link Hold Forward SMTP SendLSendL Services Email Output Stream Message Send History Aspect Message Numbering Aspect Adaptive Link Selection Policy Message Acking Aspect Round Trip Time Aspect Cougaar Message Transport has several unique features, such as cross-cutting protocols

30 Cougaar Overview John Zinky 30 1.Cougaar Agent Middleware 2.Target Applications 3.Agent Programming 4.Environment Programming 5.Deployment and Operations Tools 6.Example Application 7.Management Background Outline

31 Cougaar Overview John Zinky 31 Supporting Adaptation in the System Life Cycle Development Phase AgentEnvironment ProgramData Driven Blackboard Knowledge Rep Event Driven SOA ConfigurePluginsComponents Binders/Aspects DeploySociety Configuration Rules Environment Configuration Rules RunAgent Services Coordination Metric Service Management Society IDE Application Plugins Deploy Rules Spec Tool Run Server Cougaar Middleware Society Monitor

32 Cougaar Overview John Zinky 32 Cougaar XML-based configuration Cougaar agents are configured in XML society files, e.g.: Java System Properties are defined in XML runtime files, e.g.: The Cougaar node is typically started on the command line, e.g.: cougaar MySociety.xml MyRuntime.xml

33 Cougaar Overview John Zinky 33 Cougaar XML-based configuration (continued) In addition to the node/agent/plugin XML files, Cougaar uses separate XSL “template” files to define the infrastructure components –All Cougaar infrastructure components are pluggable, such as: The “StandardBlackboard” component, which advertises the per-agent BlackboardService The “RootServletServiceComponent”, which advertises the ServletService The Cougaar message transport, naming service, etc –Template variables can be used to turn on/off components that are listed in the XSL template file –These XSL files can be modified to add custom services or replace the standard Cougaar services implementations –For details, see the template documentation.template documentation This componentization of the Cougaar infrastructure is a key strength – it makes it easy to tailor the Cougaar Node/Agent definitions to fit new environments!

34 Cougaar Overview John Zinky 34 Servlet-based Society Monitor

35 Cougaar Overview John Zinky 35 1.Cougaar Agent Middleware 2.Target Applications 3.Agent Programming 4.Environment Programming 5.Deployment and Operations Tools 6.Example Applications 7.Management Background Outline

36 Cougaar Overview John Zinky 36 Overlay Networks Same raw Instrumentation is used by multiple end-applications Systemic properties can not be met by single society Multiple societies customized to QoS-requirements and resource constraints Archive Collectors Configuration Assurance Status Collector Status Dissemination Archive Storage Configuration History Trend Analysis Configuration Specification Threshold Detector Alert Processor Status Displays Capacity Planning Configuration Control Data Processing Assets

37 Cougaar Overview John Zinky 37 Mission Management as Cougaar Society A Shared Blackboard is used to decompose task, manage inventories, and monitor to execution of subordinates High-level Ontologies and business rules represent domain knowledge Adaptable Knowledge Sharing converts raw data to application knowledge within the constraints imposed by resources Component Architecture allows easy insertion of domain knowledge and adaptive code Monitoring Agents Monitor Agent Blackboard Realtime System Model Servlets Coordination Control Agents Dissemination Agents FCAPS Agents Mission Planning Agents Observation Inference Cougaar Agents form a control society Data processing assets

38 Cougaar Overview John Zinky 38 Mission Model: Sites to Mission Mission –Generic Task Graph –Utility vs Latency Job-Flow –Route –Priority, deadline, CoS Processing –Service time by task –In/out Rate, backlog Equipment –Bandwidth –CPU –Storage Geographic –Location –Distance Resource Plane Processing Plane Job-flow Plane Resource Constraints Data Storage Movement Transformation Task Processing Mission Requirements Plane Geographic Plane Sites Utility Vs Job Latency or Throughput Requirements Constraints

39 Cougaar Overview John Zinky 39 SASSI Optimizer Analysis Environment

40 Cougaar Overview John Zinky 40 Plugins Implement Subsystems and GUI Blackboard GIS Layer Viewers Scenario.XML DD D D DD D D P P C C P P B B C Storm.Rules SASSI Optimizer Table Viewer Graph Viewer View Filter Experiment Control Window Manager Menu SASSI Optimizer SASSI Optimizer FrameSet Input Frames ResultsFrames Layout.Rules Optimizer Status Analysis Status Scenario Loader Jess Engine Optimizer Wrapper Sept 30, 06 Implementation

41 Cougaar Overview John Zinky 41 1.Cougaar Agent Middleware 2.Target Applications 3.Agent Programming 4.Environment Programming 5.Deployment and Operations Tools 6.Example Applications 7.Management Background Outline

42 Cougaar Overview John Zinky 42 Open Source Cougaar Release 12.2 on Mar 13, 2007 Release 12.4 on Sep 24, 2007 Release 12.6 due Spring 2009 http://cougaar.org Goals for Cougaar 12.6 Consistent set of high maturity features –Restrict new features in favor of making old features more robust and understandable –Remove chaff and mark low maturity subsystems Full-cycle Support for Couguaar roles –Developer, Installer, Operator, Architect Example Applications Update Documentation


Download ppt "Cougaar Overview John Zinky 1 Cougaar Overview Dr. John Zinky February, 2009."

Similar presentations


Ads by Google