Скачать презентацию Component Development and System Configuration in Cadena with Скачать презентацию Component Development and System Configuration in Cadena with

8624ae512f25ed27a980c8da0d3cd902.ppt

  • Количество слайдов: 44

Component Development and System Configuration in Cadena with Open. CCM KSU CCM Workshop May 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 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 Big Picture Component Development System Configuration Component Property Specifications (extra semantic information) . idl 3 . cps Cadena. cad via Open. CCM IR <…> Java/C++ Component Code KSU CCM Workshop -- Cadena Development . java assembly program May 19, 2003 <…> <…events this component supplies…> Bold Stroke XML Configurator Info 3

Boeing Basic. SP Example 1. Logical GPS component receives a periodic event Input indicating 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 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 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 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 -- 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 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 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 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 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 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 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) 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. 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. 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() 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. 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. 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 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 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 23

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

Textual View …allocate Air. Frame component instance KSU CCM Workshop -- Cadena Development May 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 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 KSU CCM Workshop -- Cadena Development May 19, 2003 27

Textual View …component name & type KSU CCM Workshop -- Cadena Development May 19, 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 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 KSU CCM Workshop -- Cadena Development May 19, 2003 30

Graphical View …port names and connections KSU CCM Workshop -- Cadena Development May 19, 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 …correlators KSU CCM Workshop -- Cadena Development May 19, 2003 32

Graphical View KSU CCM Workshop -- Cadena Development …design-level analyses modebase views May 19, 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: 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 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 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 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 Demonstration System Configuration KSU CCM Workshop -- Cadena Development May 19, 2003 38

Configuration Output Java assembly program System. out. println( 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 & 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 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 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 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 Cadena Site http: //www. cis. ksu. edu/cadena KSU CCM Workshop -- Cadena Development May 19, 2003 44