Example Repository

last updated May 5, 2003

Purpose

These pages describe a collection of simple systems built using Cadena. These examples are based directly on the Boeing Bold Stroke "scenarios" distributed as part of the DARPA PCES Boeing Open Experimental Platform (OEP). Currently, these are not available to the public --- they are only available to collaborators of the Cadena team that are members of the PCES project.

We have made several versions of each of the Bold Stroke scenarios. These versions differ in the underlying middleware infrastructure used to implement event-dispatch and threading.

The initial purpose of these examples is to

  • illustrate how various Bold Stroke OEP scenarios can be represented in CCM
  • provide some guidelines as to how other code-bases such as the CIAO CCM implementation can be integrated with Cadena.

Accordingly, the first set of examples to be posted uses OpenCCM's event dispatch mechanism (no RT event-channel). In this mechanism, every event dispath is an ORB call, which means that the POA threads run the 'push' methods of event subscribers -- there is no thread-pool as in the Boeing OEP. We have constructed versions of these examples that use a light-weight Java version (implemented at KSU) of the ACE/TAO RT-event-channel. These other examples will be posted as the documentation is completed.

We believe the best strategy for integrating with CIAO is to first resolve all pure CCM related issues (which can be done using the OpenORB based examples), and then consider how RT and QoS features can be added and integrated.

Examples (using OpenCCM ORB event dispatch)

Each of these examples has been tested using OpenCCM Version 0.5 running on OpenORB Version 1.3.0.

File Descriptions

Each of the examples above links to a page that provides several different types of files. Below is a brief description of IDL3, CAD (scenario), and CPS file types.

IDL3 (Interface Description Language) - CCM IDL (IDL3) files describe component interfaces. These interfaces include component ports both for publishing and consuming events, and also for providing and using interfaces. Each IDL3 file in the examples above represents the Cadena team's interpretation of the interfaces of the corresponding components used in the Boeing OEP. In particular, when correlation and mode variables are involved, there may be more than one reasonable way to map a Boeing component to a CCM representation.

CAD (Cadena Assembly Description) / Scenario - The scenario file specifies the component instances that form the system and the connections between them. The information in this file roughly corresponds to what is found in the OMG CCM .cad XML file and also the Bold Stroke OEP XML "configuration file". In fact, an XML file that is compliant with the Boeing XML format is auto-generated from each scenario file.

CPS (Cadena Property Specification) - CPS files specify various aspects of component behavior, such as intracomponent dependencies between ports and simple behavioral descriptions of a component's event handlers and other methods. The dependence declarations take the trigger-port-action/response-port-action form.

The Cadena dependency analyzer (model slicer) and model-checking engines work on representations built from both the structural specifications in IDL3 files (component structure) and CAD files (connection structure), and the semantic specifications in CPS files.