Presentation is loading. Please wait.

Presentation is loading. Please wait.

Component Development and System Configuration in Cadena with OpenCCM John Hatcliff Jesse Greenwald KSU CCM Workshop May.

Similar presentations


Presentation on theme: "Component Development and System Configuration in Cadena with OpenCCM John Hatcliff Jesse Greenwald KSU CCM Workshop May."— Presentation transcript:

1 Component Development and System Configuration in Cadena with OpenCCM http://www.cis.ksu.edu/cadena John Hatcliff Jesse Greenwald KSU CCM Workshop May 19, 2003

2 KSU CCM Workshop -- Cadena Development 2 May 19, 2003 In this talk… I’ll try not to bore those people who have already seen numerous talks about Cadena… …but I am responding to requests from Doug to explain to some CIAO team members how Cadena is used for both component development and system configuration Show a little more about what happens “under the hood” wrt the interaction with OpenCCM Summarize how we think Cadena should interact with CIAO both in short-term (upcoming PI meeting) and longer term

3 KSU CCM Workshop -- Cadena Development 3 May 19, 2003.cps Component Property Specifications (extra semantic information) Component Property Specifications (extra semantic information) Big Picture Bold Stroke XML Configurator Info Java/C++ Component Code.java assembly program Cadena.cad.idl3 via OpenCCM IR Component Development System Configuration

4 KSU CCM Workshop -- Cadena Development 4 May 19, 2003 Boeing BasicSP Example 1. Logical GPS component receives a periodic event indicating that it should read the physical GPS device. 2. Logical GPS publishes DATA_AVAILABLE event 3. Airframe component fetches GPS data by calling GPS GetData method 4. Airframe updates its position data and publishes DATA_AVAILABLE event 5. NavDisplay component fetches AirFrame data by calling AirFrame GetData method 6. NavDisplay updates the physical display 1 2 3 4 4 5 6 Input Output

5 KSU CCM Workshop -- Cadena Development 5 May 19, 2003 ClosedED Component Type Eclipse editor Sends to OpenCCM Interface Repository (IR) Parsing and type- checking currently done by IR component BMClosedED { provides ReadData dataOut; uses ReadData dataIn; publishes DataAvailable outDataAvailable; consumes DataAvailable inDataAvailable; }; home BMClosedEDHome manages BMClosedED { };

6 KSU CCM Workshop -- Cadena Development 6 May 19, 2003 Interface Repository CORBA Interface Repository manages information about interface definitions, provides a means of type-checking of interface signatures, assists in checking the correctness of interface inheritance graphs, provides support for CASE environments (e.g., an interface browser) database of interface definitions type-checking input to OpenCCM IDL compilers

7 KSU CCM Workshop -- Cadena Development 7 May 19, 2003 Use of OpenCCM IR ToolDescription ir3_start Starts the OpenCCM's OMG IDL 3.0 Repository (called IR3). ir3_started Checks if the OpenCCM's IR3 is started. ir3_stop Stops the OpenCCM's IR3. idl3_check Checks if the specified OMG IDL 3.0 file is correct. ir3_feed Feeds the specified OMG IDL 3.0 file into the OpenCCM's IR3. ir3_destroy Destroys an IR3 object from the OpenCCM's IR3. ir3_idl3 Generates an OMG IDL 3.0 file associated to an IR3 object and its childs. ir3_idl2 Generates OMG IDL 2.4 files associated to an IR3 object and its childs. ir3_java Generates all Java OpenCCM skeletons associated to an IR3 object and its childs. ir3_jimpl Generates all Java implementation templates associated to an IR3 object and its childs. ir3_xmi Generates an XMI 1.1 UML document associated to an IR3 object and its childs. cidl_cif Compiles an OMG CIDL file and generates all associated OMG IDL and Java component executor skeleton files. cidl Compiles a file and regenerates the OMG CIDL part only. psdl Compiles a file and regenerates the OMG PSDL part only. …from OpenCCM documentation …active links

8 KSU CCM Workshop -- Cadena Development 8 May 19, 2003 Demonstration Component Definition http://cadena.projects.cis.ksu.edu/documentation/component-development.shtml

9 KSU CCM Workshop -- Cadena Development 9 May 19, 2003 CIDL Use in Cadena We currently use the jimpl instead of a CIDL/CIF framework. Currently generates code using the monolithic implementation strategy. We will be moving to the CIDL/CIF framework (this summer) Issues: what sort of developer support might we want to provide? e.g., static analysis/checking for common errors??

10 KSU CCM Workshop -- Cadena Development 10 May 19, 2003 IR API in Cadena Currently we are hard-wired to the script-based interface of OpenCCM Moving toward… support for using any OMG conformant IR implementations publish standard interfaces for common development activites e.g., compilation of IDL3, CIDL, code generation, etc. In short term, we propose… no need to use CIAO’s IR simply emit IDL and CIDL and CIAO’s compilation process takes over

11 KSU CCM Workshop -- Cadena Development 11 May 19, 2003 Impl Classes …but there is a single class (Executor implementation) that contains templates that need to be filled in with the business logic. …but there is a single class (Executor implementation) that contains templates that need to be filled in with the business logic. A lot of stuff gets generated! …

12 KSU CCM Workshop -- Cadena Development 12 May 19, 2003 Push Method Implementation public void push(cisksu.basicsp.DataAvailable event) { ReadData dataIn = the_context_.get_connection_dataIn(); if(dataIn == null) { System.err.println("The basicsp::BMClosedED::dataIn receptacle is not set!"); return; } data=dataIn.getData(); the_context_.push_outDataAvailable(new cisksu.basicsp.DataAvailableImpl( )); } get receptacle reference make sure connection exists inform clients that data is available get data from supplier (e.g. GPS)

13 KSU CCM Workshop -- Cadena Development 13 May 19, 2003 Component Properties Component Implementation Stubs & Skeletons IDL Compiler Dependency Analysis and Model-checking Engine Model Builder + dependencydefault == none; dependencies { inDataAvailable -> outDataAvailable; } behavior { if (mode==enabled) { push outDataAvailable; else … } Dependency Annotations Transition System Semantics.cps

14 KSU CCM Workshop -- Cadena Development 14 May 19, 2003 Incremental Specification port action dependencies Increasing Effort & Strength of Verification SpecificationsComponent Structure mode-based dependencies …only in mode Y Y component transition semantics …state machines give abstract behavior refinement

15 KSU CCM Workshop -- Cadena Development 15 May 19, 2003 Dependency Specifications Inter-component dependences are given by connection information (coming later) We now give notation for specifying intra- component dependencies Light-weight specification layer that provides significant benefit … In this case, component integrator leverages this info in a variety of ways to specify aspects such as rates/priorities, distribution, scheduling, etc. Used to visualize system behavior in different modes

16 KSU CCM Workshop -- Cadena Development 16 May 19, 2003 outDataAvailable port action triggers call on set_data() dependencydefault == none; dependencies { dataWriteOut.set_data() -> outDataAvailable; } behavior {... } Light-weight Dependency Specs

17 KSU CCM Workshop -- Cadena Development 17 May 19, 2003 Mode-based Projections Scenario Diagram w/ Complete Connectivity Enabled Connectivity for Different Modes … NavSteering enabled TacticalSteering disabled NavSteering enabled TacticalSteering disabled NavSteering disabled TacticalSteering enabled NavSteering disabled TacticalSteering enabled

18 KSU CCM Workshop -- Cadena Development 18 May 19, 2003 triggers no other actions Light-weight Dependency Specs dependencydefault == all; dependencies { modeChange() ->; case modeChange.modeVar of { enabled: inDataAvailable -> dataIn.get_data(), outDataAvailable; disabled: inDataAvailable ->; } behavior {... }

19 KSU CCM Workshop -- Cadena Development 19 May 19, 2003 in enabled mode, shows actions triggered by receipt of event on inDataAvailable port Light-weight Dependency Specs dependencydefault == all; dependencies { modeChange() ->; case modeChange.modeVar of { enabled: inDataAvailable -> dataIn.get_data(), outDataAvailable; disabled: inDataAvailable ->; } behavior {... }

20 KSU CCM Workshop -- Cadena Development 20 May 19, 2003 in disabled mode, inDataAvailable triggers no other port actions Light-weight Dependency Specs dependencydefault == all; dependencies { modeChange() ->; case modeChange.modeVar of { enabled: inDataAvailable -> dataIn.get_data(), outDataAvailable; disabled: inDataAvailable ->; } behavior {... }

21 KSU CCM Workshop -- Cadena Development 21 May 19, 2003 Demonstration CPS Definition

22 KSU CCM Workshop -- Cadena Development 22 May 19, 2003 Three Synchronized Views Scenario Description Scenario Description Single Internal Representation Spreadsheet View Spreadsheet View Graphical View Graphical View Textual View Textual View

23 KSU CCM Workshop -- Cadena Development 23 May 19, 2003 Textual View

24 KSU CCM Workshop -- Cadena Development 24 May 19, 2003 Textual View

25 KSU CCM Workshop -- Cadena Development 25 May 19, 2003 Textual View …allocate AirFrame component instance

26 KSU CCM Workshop -- Cadena Development 26 May 19, 2003 Textual View …connect event ports and facet/receptacles

27 KSU CCM Workshop -- Cadena Development 27 May 19, 2003 Textual View

28 KSU CCM Workshop -- Cadena Development 28 May 19, 2003 Textual View …component name & type

29 KSU CCM Workshop -- Cadena Development 29 May 19, 2003 Textual View …receptacle/facet & event source/sink connection outline …receptacle/facet & event source/sink connection outline

30 KSU CCM Workshop -- Cadena Development 30 May 19, 2003 Graphical View

31 KSU CCM Workshop -- Cadena Development 31 May 19, 2003 Graphical View …port names and connections

32 KSU CCM Workshop -- Cadena Development 32 May 19, 2003 Graphical View …correlators

33 KSU CCM Workshop -- Cadena Development 33 May 19, 2003 Graphical View …design-level analyses mode- base views

34 KSU CCM Workshop -- Cadena Development 34 May 19, 2003 Mode-based Projections …possible values for mode variables Automatic! Value Added: Multiple mode-based views are automatically created and synchronized through the design process.

35 KSU CCM Workshop -- Cadena Development 35 May 19, 2003 Spreadsheet View …ports for component type …port types …port connections …distribution sites …rate group RT Attributes

36 KSU CCM Workshop -- Cadena Development 36 May 19, 2003 Spreadsheet View Results of automatic rate group synthesis are fed back into spreadsheet

37 KSU CCM Workshop -- Cadena Development 37 May 19, 2003 Spreadsheet View Pull-down menus give type-correct connection possibilities Value Added: Incremental, iterative scenario construction with multiple forms of visualization, analyses, and automated “design advice”.

38 KSU CCM Workshop -- Cadena Development 38 May 19, 2003 Demonstration System Configuration

39 KSU CCM Workshop -- Cadena Development 39 May 19, 2003 Configuration Output System.out.println("Instantiating components..."); EventChannel event = sh.create(); BMClosedED airframe = bmclosed.create(); BMDevice gps = bmdevice.create(); BMDisplay navDisplay = bmdisplay.create(); // Connect event and interface ports event.subscribe_timeOut20(gps.get_consumer_timeOut20()); gps.subscribe_outDataAvailable(airframe.get_consumer_inDataAvailable()); airframe.subscribe_outDataAvailable(navDisplay.get_consumer_inDataAvailable()); ReadData dataOut = gps.provide_dataOut(); airframe.connect_dataIn(dataOut); dataOut = airframe.provide_dataOut(); navDisplay.connect_dataIn(dataOut); Java assembly program interface connections event connections

40 KSU CCM Workshop -- Cadena Development 40 May 19, 2003 Future Goals Moving to programmatic APIs for… accessing IR, IDL & CIDL type-checking and compilation, code generation, etc. Provide CCM-compliant packaging and deployment artifacts Configuration of correlation, filtering, synchronization, in RT event channel Tight integration of model-checking tools

41 KSU CCM Workshop -- Cadena Development 41 May 19, 2003 Cadena/CIAO Integration (PI Meeting) IDL3 CIDL deployment and configuration CadenaCIAO Interaction Points Cadena might adapted to spit out something – let’s agree on a CCM- compliant format must be done manually by CIAO team

42 KSU CCM Workshop -- Cadena Development 42 May 19, 2003 Cadena/CIAO Integration (summer) IDL3 CIDL deployment and configuration CadenaCIAO Interaction Points Cadena will support CCM deployment and packaging artifacts Cadena can be extended with a CIDL editor …and a variety of interactions possible on RT/QoS aspects!

43 KSU CCM Workshop -- Cadena Development 43 May 19, 2003 CIAO Integration -- this meeting Agree on an extension to the existing CCM specification for packing and deployment artifacts Getting an idea for CIAO group about how Cadena should support CIDL development

44 KSU CCM Workshop -- Cadena Development 44 May 19, 2003 Cadena Site http://www.cis.ksu.edu/cadena


Download ppt "Component Development and System Configuration in Cadena with OpenCCM John Hatcliff Jesse Greenwald KSU CCM Workshop May."

Similar presentations


Ads by Google