Acknowledgements Acknowl edgements Software M So ftware Mode odel Check Checking Us ng Using Bogor ng Bogor – a Mod Modular an r and E Extensible Model Model Che Checking ng F Frame amework � Work on Cadena has been carried out by the following team of people 3rd Estonian Summer School in Computer and System Science (ESSCaSS'04) � PIs: John Hatcliff, Matt Dwyer, Gurdip Singh Slide Set 08: Cadena Overview � Primary Developers: Jesse Greenwald, Venkatesh Ranganath, Adam Childs, Prashant http://bogor.projects.cis.ksu.edu Kumar Shanti http://www.cis.ksu.edu/~hatcliff/ESSCaSS04 � Students: Georg Jung, William Deng, Matt John Hatcliff Matthew B. Dwyer Robby Hoosier SAnToS Laboratory, Kansas State University, USA Support US Army Research Office (ARO) Boeing Lockheed Martin US National Science Foundation (NSF) Honeywell Technology Center NASA Langley IBM US Department of Defense Rockwell-Collins ATC Advanced Research Projects Agency (DARPA) Intel Sun Microsystems Goal Goals of the Cadena s of the Cadena Project Project Lecture Outline Lecture Outline An Integrated Development Environment for � Motivation for Middleware and Components Analysis, Synthesis, and Verification of � Broad themes of Cadena Component-based Systems � A real-world test-bed from the avionics domain � Main features of Cadena I. Platform for real-world experimentation with technologies for building � component development high-assurance distributed systems using CORBA Component Model � lightweight semantic annotations … robust tool environment suitable for … light-weight specification, analysis, and � intra-component dependences industrial experimentation verification techniques � intra-component transition semantics … customizable to different � system assembly … model-based development, domains/product lines middleware configuration, and code � Analysis, automated design device, analysis driven synthesis configuration and customization of middleware and services II. Avenue for collaborating with industrial research teams and middleware � Extending Bogor’s modeling language to support experts to guide next-generation component/middleware technology Cadena designs … collaborating with middleware experts … interacting with groups at Boeing, � Customizing Bogor’s scheduling and state-space search (e.g., ACE/TAO RT-middleware) to Rockwell-Collins, Lockheed-Martin to modules to Cadena/BoldStroke designs make frameworks more amenable to develop techniques that match fit into model-based configuration and analysis development process Distributed Components Distri buted Components Distributed Components Distri buted Components Java C++ C Java C++ C Event Service Transaction Service Network Middleware (e.g. CORBA) Naming Service Synchronization Service C Java C++ C Java C++ 1
Objects To Components Obj cts To Components Obj Objects To Components cts To Components Interfaces and event Interfaces and event Consider : group of objects required � Components collects required � working together to provide a related classes together service to clients to form a coarser-grain Objects are meant to be used � “as a team” composable unit unit of composition � Components explicitly � No language mechanism to define interfaces they � identify components as a � provide to their clients single group explicitly define interfaces � Components indicate the � explicitly define dependences other interfaces/events � on other ‘groups’ Interfaces Harder for 3 rd parties to reuse they depend on Interfaces Events Events � provided provided published and assemble published � Considerable auto-coding functionality provide Client Client Client Client Client Client Checki Checking CCM Systems ng CCM Systems Component-based Desi Component-based Design gn Modern Software Systems Issues Input Output � These systems are huge! event port event port Event Java C++ C � Extensive use of OO patterns & software layering Ports � What are appropriate CCM abstractions for formal Component Event Service Transaction Service Interface Middleware (e.g. CORBA) reasoning? Ports Naming Service Synchronization Service � How can we help developers write them? Require an Provide an interface interface Component Component � Useful properties? Development Development C Java C++ � How must conventional model-checking engines be Cadena development environment allows model-based development of extended? Bold Stroke applications using the CORBA Component Model (CCM) Component Development Component Development Leverage CORBA IDL Leverage CORBA IDL � Development of component interfaces CCM using CCM Interface Component Interface Definition Language IDL Compiler Component � Automatic generation of Automatic code Implementation Automatic code component + generation generation Stubs & Skeletons infrastructure code using Component Component CCM IDL compilers infrastructure infrastructure implementation dependen dependencydef a cydef aul t ul t implementation � Development of core == no == none; ne; behavi or { behavi or { i f ( m i f ( m ode ode==enab ==enabl ed) { l ed) { Model Builder dependen dependenci es { ci es { push out Dat aA push ou t Dat aAvai l ab vai l abl e; l e; functional code i nDat aA i nDat aAvai l ab vai l abl e l e el se el se - > - > … (business logic) using out Dat aAvai l out Dat aAvai l abl e; abl e; } Core functional } Core functional Dependency Analysis code written by Eclipse Java facilities Dependency Transition System code written by and component component Annotations Semantics Model-checking Engine developer developer 2
Incremental Specificati Incremental Speci ation Component Integration Component Integration Specifications Component Structure port action dependencies Increasing Effort refinement & Strength of Verification state-based Y dependencies …only in mode Y refinement Component Component Integration component transition Integration semantics Multiple views for allocating component instances and …state machines give connecting components together to form a system assembly abstract behavior Model Model-based Programming based Programming Model- Mode l-leve level Ana l Analys ysis is Connection Attributes Connection Attributes communication communication communication communication service service service service event event priority priority priority priority Component Attributes Component Attributes …up to 1000 distribution distribution distribution distribution components! location location location location …analysis-driven synthesis of attribute values based on heuristics Programming at a higher level of abstraction… Various analyses guide system development… Programming at a higher level of abstraction… Various analyses guide system development… Many system elements – configuration of communication services, Analysis facilities provides multiple forms of a design-level slicing, setting of QoS properties, etc. – are programmed by selecting particular chopping, etc. and model-checking of global temporal properties. attribute values at the model level. Packagi Packaging & Depl ng & Deployment oyment Lecture Outline Lecture Outline � Motivation for Middleware and Components Package Package � Broad themes of Cadena � A real-world test-bed from the avionics domain � Main features of Cadena Event Service Transaction Service Deploy Network Deploy CORBA Middleware � component development Naming Service Synchronization Service � lightweight semantic annotations � intra-component dependences � intra-component transition semantics � system assembly � Analysis, automated design device, analysis driven configuration and customization of middleware and <CONFIGURATION_PASS> automatic <CONFIGURATION_PASS> <HOME> <…> <HOME> <…> <COMPONENT> services generation <COMPONENT> <ID> <…></ID> <ID> <…></ID> <EVENT_SUPPLIER> <EVENT_SUPPLIER> <…events this component supplies…> � Extending Bogor’s modeling language to support <…events this component supplies…> </EVENT_SUPPLIER> </EVENT_SUPPLIER> </COMPONENT> CCM Deployment </COMPONENT> Cadena designs CCM Deployment </HOME> </HOME> </CONFIGURATION_PASS> </CONFIGURATION_PASS> Infrastructure � Customizing Bogor’s scheduling and state-space search Infrastructure XML-based modules to Cadena/BoldStroke designs Configuration and Deployment information 3
Recommend
More recommend