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 issue (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 includes several different types of files. Below with give a brief description of each of these file types.

IDL (Interface Description Language) - CCM IDL (IDL3) describes component interfaces including component ports for publishing and consuming events and for providing and using interfaces. Each IDL file in the examples above represent 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) - The CAD file specifies the component instances that form the system and the connections among them. The information in this file roughly corresponds to what one would find in the OMG CCM .cad XML file and also to what one would find in 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 CAD file and is included in each of the examples.

CPS (Cadena Property Specification)- The CPS file specifies various aspects of component behavior. In a CPS description, developers may declare intracomponent dependencies between ports and simple behavioral descriptions of a component's eevent handlers and other methods. The dependence declarations take the form trigger-port-action - response-port-action.

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