8624ae512f25ed27a980c8da0d3cd902.ppt
- Количество слайдов: 44
Component Development and System Configuration in Cadena with Open. CCM KSU CCM Workshop May 19, 2003 John Hatcliff May 19, 2003 Jesse Greenwald KSU CCM Workshop -- Cadena http: //www. cis. ksu. edu/cadena Development
In this talk… n I’ll try not to bore those people who have already seen numerous talks about Cadena… n n n …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 Open. CCM Summarize how we think Cadena should interact with CIAO both in short-term (upcoming PI meeting) and longer term KSU CCM Workshop -- Cadena Development May 19, 2003 2
Big Picture Component Development System Configuration Component Property Specifications (extra semantic information) . idl 3 . cps Cadena. cad via Open. CCM IR
Boeing Basic. SP Example 1. Logical GPS component receives a periodic event Input indicating that it should read the physical GPS device. 1 2. Logical GPS publishes DATA_AVAILABLE event 2 3. Airframe component fetches GPS data by calling GPS Get. Data method 4. Airframe updates its position data and publishes DATA_AVAILABLE event 3 4 6 5. Nav. Display component fetches Air. Frame data by calling Air. Frame Get. Data method 4 5 Output KSU CCM Workshop -- Cadena Development 6. Nav. Display updates the physical display May 19, 2003 4
Closed. ED Component Type component BMClosed. ED { provides Read. Data data. Out; uses Read. Data data. In; publishes Data. Available out. Data. Available; consumes Data. Available in. Data. Available; }; home BMClosed. EDHome manages BMClosed. ED { }; n n n KSU CCM Workshop -- Cadena Development Eclipse editor Sends to Open. CCM Interface Repository (IR) Parsing and typechecking currently done by IR May 19, 2003 5
Interface Repository type-checking CORBA Interface Repository input to Open. CCM IDL compilers database of interface definitions n n 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) KSU CCM Workshop -- Cadena Development May 19, 2003 6
Use of Open. CCM IR …from Open. CCM documentation Tool Description ir 3_start Starts the Open. CCM's OMG IDL 3. 0 Repository (called IR 3). ir 3_started Checks if the Open. CCM's IR 3 is started. ir 3_stop Stops the Open. CCM's IR 3. idl 3_check Checks if the specified OMG IDL 3. 0 file is correct. ir 3_feed Feeds the specified OMG IDL 3. 0 file into the Open. CCM's IR 3. ir 3_destroy Destroys an IR 3 object from the Open. CCM's IR 3. ir 3_idl 3 Generates an OMG IDL 3. 0 file associated to an IR 3 object and its childs. ir 3_idl 2 Generates OMG IDL 2. 4 files associated to an IR 3 object and its childs. ir 3_java Generates all Java Open. CCM skeletons associated to an IR 3 object and its childs. ir 3_jimpl Generates all Java implementation templates associated to an IR 3 object and its childs. ir 3_xmi Generates an XMI 1. 1 UML document associated to an IR 3 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. …active links KSU CCM Workshop -- Cadena Development May 19, 2003 7
Demonstration Component Definition http: //cadena. projects. cis. ksu. edu/documentation/component-development. shtml KSU CCM Workshop -- Cadena Development May 19, 2003 8
CIDL Use in Cadena n n 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: n n what sort of developer support might we want to provide? e. g. , static analysis/checking for common errors? ? KSU CCM Workshop -- Cadena Development May 19, 2003 9
IR API in Cadena n n Currently we are hard-wired to the script-based interface of Open. CCM Moving toward… n n support for using any OMG conformant IR implementations publish standard interfaces for common development activites n n e. g. , compilation of IDL 3, CIDL, code generation, etc. In short term, we propose… n n no need to use CIAO’s IR simply emit IDL and CIAO’s compilation process takes over KSU CCM Workshop -- Cadena Development May 19, 2003 10
Impl Classes A lot of stuff gets generated! … KSU CCM Workshop -- Cadena Development …but there is a single class (Executor implementation) that contains templates that need to be filled in with the business logic. May 19, 2003 11
Push Method Implementation public void push(cisksu. basicsp. Data. Available event) { get receptacle reference Read. Data data. In = the_context_. get_connection_data. In(); make sure connection exists if(data. In == null) { System. err. println("The basicsp: : BMClosed. ED: : data. In receptacle is not set!"); return; } get data from data=data. In. get. Data(); } supplier (e. g. GPS) the_context_. push_out. Data. Available(new cisksu. basicsp. Data. Available. Impl( )); inform clients that data is available KSU CCM Workshop -- Cadena Development May 19, 2003 12
Component Properties IDL Compiler Component Implementation Stubs & Skeletons + dependencydefault == none; dependencies { in. Data. Available -> out. Data. Available; } Dependency Annotations behavior { if (mode==enabled) { push out. Data. Available; else … } Transition System Semantics Model Builder . cps KSU CCM Workshop -- Cadena Development Dependency Analysis and Model-checking Engine May 19, 2003 13
Incremental Specifications Increasing Effort & Strength of Verification Component Structure port action dependencies refinement mode-based dependencies refinement Y …only in mode Y component transition semantics KSU CCM Workshop -- Cadena Development …state machines give abstract behavior May 19, 2003 14
Dependency Specifications n n n Inter-component dependences are given by connection information (coming later) We now give notation for specifying intracomponent dependencies Light-weight specification layer that provides significant benefit … n n 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 KSU CCM Workshop -- Cadena Development May 19, 2003 15
Light-weight Dependency Specs dependencydefault == none; dependencies { data. Write. Out. set_data() -> out. Data. Available; } behavior {. . . call on set_data() } triggers KSU CCM Workshop -- Cadena Development out. Data. Available port action May 19, 2003 16
Mode-based Projections Scenario Diagram w/ Complete Connectivity Nav. Steering enabled Tactical. Steering disabled Nav. Steering disabled … Tactical. Steering enabled Enabled Connectivity for Different Modes KSU CCM Workshop -- Cadena Development May 19, 2003 17
Light-weight Dependency Specs triggers no other actions dependencydefault == all; dependencies { mode. Change() ->; case mode. Change. mode. Var of { enabled: in. Data. Available -> data. In. get_data(), out. Data. Available; disabled: in. Data. Available ->; } } behavior {. . . } KSU CCM Workshop -- Cadena Development May 19, 2003 18
Light-weight Dependency Specs dependencydefault == all; dependencies { mode. Change() ->; case mode. Change. mode. Var of { enabled: in. Data. Available -> data. In. get_data(), out. Data. Available; disabled: in. Data. Available ->; } } behavior {. . . in enabled mode, shows actions triggered by receipt of event on in. Data. Available port } KSU CCM Workshop -- Cadena Development May 19, 2003 19
Light-weight Dependency Specs dependencydefault == all; dependencies { mode. Change() ->; case mode. Change. mode. Var of { enabled: in. Data. Available -> data. In. get_data(), out. Data. Available; disabled: in. Data. Available ->; } } behavior {. . . } in disabled mode, in. Data. Available triggers no other port actions KSU CCM Workshop -- Cadena Development May 19, 2003 20
Demonstration CPS Definition KSU CCM Workshop -- Cadena Development May 19, 2003 21
Three Synchronized Views Scenario Description Graphical View Spreadsheet View Textual View Single Internal Representation KSU CCM Workshop -- Cadena Development May 19, 2003 22
Textual View KSU CCM Workshop -- Cadena Development May 19, 2003 23
Textual View KSU CCM Workshop -- Cadena Development May 19, 2003 24
Textual View …allocate Air. Frame component instance KSU CCM Workshop -- Cadena Development May 19, 2003 25
Textual View …connect event ports and facet/receptacles KSU CCM Workshop -- Cadena Development May 19, 2003 26
Textual View KSU CCM Workshop -- Cadena Development May 19, 2003 27
Textual View …component name & type KSU CCM Workshop -- Cadena Development May 19, 2003 28
Textual View …receptacle/facet & event source/sink connection outline KSU CCM Workshop -- Cadena Development May 19, 2003 29
Graphical View KSU CCM Workshop -- Cadena Development May 19, 2003 30
Graphical View …port names and connections KSU CCM Workshop -- Cadena Development May 19, 2003 31
Graphical View …correlators KSU CCM Workshop -- Cadena Development May 19, 2003 32
Graphical View KSU CCM Workshop -- Cadena Development …design-level analyses modebase views May 19, 2003 33
c! A ti toma u Mode-based Projections …possible values for mode variables Value Added: Multiple mode-based views are automatically created and synchronized through the design process. KSU CCM Workshop -- Cadena Development May 19, 2003 34
Spreadsheet View …ports for component type …port types RT Attributes …distribution sites KSU CCM Workshop -- Cadena Development …port connections …rate group May 19, 2003 35
Spreadsheet View Results of automatic rate group synthesis are fed back into spreadsheet KSU CCM Workshop -- Cadena Development May 19, 2003 36
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”. KSU CCM Workshop -- Cadena Development May 19, 2003 37
Demonstration System Configuration KSU CCM Workshop -- Cadena Development May 19, 2003 38
Configuration Output Java assembly program System. out. println("Instantiating components. . . "); Event. Channel event = sh. create(); BMClosed. ED airframe = bmclosed. create(); BMDevice gps = bmdevice. create(); BMDisplay nav. Display = bmdisplay. create(); // Connect event and interface ports event connections event. subscribe_time. Out 20(gps. get_consumer_time. Out 20()); gps. subscribe_out. Data. Available(airframe. get_consumer_in. Data. Available()); airframe. subscribe_out. Data. Available(nav. Display. get_consumer_in. Data. Available()); interface connections Read. Data data. Out = gps. provide_data. Out(); airframe. connect_data. In(data. Out); data. Out = airframe. provide_data. Out(); nav. Display. connect_data. In(data. Out); KSU CCM Workshop -- Cadena Development May 19, 2003 39
Future Goals n Moving to programmatic APIs for… n n 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 KSU CCM Workshop -- Cadena Development May 19, 2003 40
Cadena/CIAO Integration (PI Meeting) Cadena CIAO IDL 3 must be done manually by CIAO team CIDL Cadena might adapted to spit out something – let’s agree on a CCMcompliant format deployment and configuration Interaction Points KSU CCM Workshop -- Cadena Development May 19, 2003 41
Cadena/CIAO Integration (summer) Cadena CIAO IDL 3 Cadena can be extended with a CIDL editor Cadena will support CCM deployment and packaging artifacts CIDL deployment and configuration Interaction Points KSU CCM Workshop -- Cadena Development …and a variety of interactions possible on RT/Qo. S aspects! May 19, 2003 42
CIAO Integration -- this meeting n n 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 KSU CCM Workshop -- Cadena Development May 19, 2003 43
Cadena Site http: //www. cis. ksu. edu/cadena KSU CCM Workshop -- Cadena Development May 19, 2003 44