Modeldriven Deployment Configuration of Componentbased Systems Krishnakumar Balasubramanian
Model-driven Deployment & Configuration of Component-based Systems Krishnakumar Balasubramanian, Boris Kolpackov, Tao Lu, Dr. Douglas C. Schmidt, Dr. Aniruddha Gokhale kitty@dre. vanderbilt. edu Institute for Software Integrated Systems, Vanderbilt University 3/3/2021
Model-driven Deployment & Configuration of Component-based Systems Overview • Deployment & Configuration of Component-based systems – Introduction – Challenges • Platform-Independent Component Modeling Language (PICML) • XML Schema Compiler (XSC) • Deployment And Configuration Engine (DAn. CE) Krishnakumar B et al 2
Model-driven Deployment & Configuration of Component-based Systems Motivation for Deployment & Configuration • Goals – Ease component reuse – Build complex applications by assembling existing components – Standardize deployment of applications into heterogeneous domains • Separation of concerns – Component development – Application assembly – Application deployment – Application configuration – Middleware configuration File Properties Display Print Databas e Database Properties Packaging & Deployment Display Print Component Assembly Databas e Component Properties Krishnakumar B et al 3
Model-driven Deployment & Configuration of Component-based Systems OMG Deployment & Configuration Spec • Specification defines deployment of component-based applications • Intended to replace Packaging & Deployment chapter of CCM specification • Meta-information is captured using XML descriptors • Platform Independent Model (PIM) • Defined in two dimensions – Data models vs. management (run-time) models – Component software vs. target vs. execution Krishnakumar B et al 4
Model-driven Deployment & Configuration of Component-based Systems Platform-independent Model (PIM) Dimensions • Modeling view-points – Conceptual, logical, & physical view-point • Platform-independent model – Conceptual & logical viewpoint of deployment & configuration • Defined in two-dimensions PIM Data Model Run-time Model Component Software Meta-data to describe component based applications and their requirements Interfaces to browse, store and retrieve such meta-data Target Meta-data to describe heterogeneous distributed systems & their capabilities Interfaces to collect & retrieve such meta-data and commit resources Execution Meta-data to describe a specific Prepare environment, Execute deployment of an application into a on target to Deployment plan, distributed system manage lifecycle Krishnakumar B et al 5
Model-driven Deployment & Configuration of Component-based Systems PIM Mapping to CCM • Physical viewpoint – Mapping from PIM to platform specific model (PSM) for CCM • Set of transformations – T 1 PIM to PSM for CCM – T 2 PSM to • PSM for IDL • PSM for XML • Set of mapping rules – M 1 PSM to IDL – M 2 PSM to XML schema Krishnakumar B et al 6
Model-driven Deployment & Configuration of Component-based Systems Deployment & Configuration Activities • Descriptors are passive entities • Manipulated by Actors • Different Stages – Development • Developer • Assembler • Packager – Target • Domain Administrator – Deployment • Repository Administrator • Planner • Executor • Actors are abstract Krishnakumar B et al 7
Model-driven Deployment & Configuration of Component-based Systems Configuration Challenges • Context – Configuring & composing component-based applications using XML meta-data • Problem – Meta-data split across multiple XML descriptors – Complex inter-dependencies between descriptors – XML is error-prone to read/write manually – No guarantees about semantic validity (only syntactic validation possible) – If meta-data is wrong, what about the application? Krishnakumar B et al 8
Model-driven Deployment & Configuration of Component-based Systems Platform-Independent Component Modeling Language • Solution – Pl. CML – Developed in Generic Modeling Environment (GME) – Core of Component Synthesis using Model-Integrated Computing (Co. SMIC) toolchain – Capture elements & dependencies visually – Define “static semantics” using Object Constraint Language (OCL) – Define “dynamic semantics” via model interpreters • Also used for generating domain specific meta-data – “Correct-by-construction” Krishnakumar B et al 9
Model-driven Deployment & Configuration of Component-based Systems Example Application: Robot. Assembly Conveyor Power Switching Unit Management Work Instructions Radio Intrusion Alarm Discretes Pallet Present Switches Human Machine Interface* Off Enable Fast Watch Setting Manager* Pallet Conveyor Manager Pallet Release Switch Assembly Area Intrusion Robot Manager* Control Station Disk Storage Conveyor Drive System Storage Device Controller Robot in Work Area Clock Handler Krishnakumar B et al 10
Model-driven Deployment & Configuration of Component-based Systems Robot. Assembly in PICML Krishnakumar B et al 11
Model-driven Deployment & Configuration of Component-based Systems Types Of Meta-data generated by PICML(1/2) • Component Interface Descriptor (. ccd) • • – Describes the interface, ports, properties of a single component Implementation Artifact Descriptor (. iad) – Describes the implementation artifacts (e. g. , DLLs, OS, etc. ) of a single component Component Package Descriptor (. cpd) – Describes multiple alternative implementations of a single component Package Configuration Descriptor (. pcd) – Describes a specific configuration of a component package Component Implementation Descriptor (. cid) – Describes a specific implementation of a component interface – Contains component inter-connection information Component Deployment Plan (. cdp) – Plan which guides the actual deployment Component Domain Descriptor (. cdd) – Describes the target domain of deployment Component Packages (. cpk) – Aggregation of all of the above Krishnakumar B et al 12
Model-driven Deployment & Configuration of Component-based Systems Types Of Meta-data generated by PICML(2/2) Krishnakumar B et al 13
Model-driven Deployment & Configuration of Component-based Systems Example output for Robot. Assembly <!–-Component Implementation Descriptor(. cid) associates components with impl. artifacts--> <Deployment: Component. Implementation. Description > <UUID>FB 9 D 7161 -1765 -4784 -BC 1 D-EA 9 EAAB 3 ED 2 A </UUID> <implements href="Robot. Manager. ccd" /> <monolithic. Impl> <primary. Artifact> <name>Robot. Manager_exec</name> <referenced. Artifact href="Robot. Manager_exec. iad" /> </primary. Artifact> <name>Robot. Manager_stub</name> <referenced. Artifact href="Robot. Manager_stub. iad" /> </primary. Artifact> <primary. Artifact> <name>Robot. Manager_svnt</name> <referenced. Artifact href="Robot. Manager_svnt. iad“ /> </primary. Artifact> </monolithic. Impl> </Deployment: Component. Implementation. Description > Krishnakumar B et al 14
Model-driven Deployment & Configuration of Component-based Systems Concluding Remarks • PICML – Models component-based systems – Improves design-time validation of systems – Generates component meta-data • Future work – Scalability issues – Traditional system analysis – Complete system generation aka “Middleware Compiler” – Generated optimized systems aka “Optimizing Middleware Compiler” • Available as open-source – http: //cvs. dre. vanderbilt. edu (Co. SMIC) Krishnakumar B et al 15
Model-driven Deployment & Configuration of Component-based Systems Questions? Krishnakumar B et al 16
Model-driven Deployment & Configuration of Component-based Systems XML Schema Compiler (XSC) • Context – Increasing use of XML as a data exchange format • Problem • – Standard XML parsing API such as DOM lacks element type information – Complex implementations to create in-memory representation Solution – XML Schema Compiler (XSC) – Static typing using a set of mapping rules – Generates C++ (Native/CORBA) from XML schema – Generates parser for creating inmemory representation of XML files – Customizable code generation using traversal mechanism Krishnakumar B et al 17
Model-driven Deployment & Configuration of Component-based Systems Deployment Challenges • Context – Deploying an application built using COTS components • Problem – Complex applications • Large no. of components – Micro-management of components • Difficulty in reasoning complete end-to-end behaviour – Manual deployment inherently error-prone – Ad hoc scripts no better Krishnakumar B et al 18
Model-driven Deployment & Configuration of Component-based Systems Deployment And Configuration Engine (DAn. CE) • Solution – Deployment & Configuration Engine (DAn. CE) – First-cut implementation of deployment infrastructure – Partial implementation of the following interfaces: • • • Repository. Manager Node. Application. Manager Domain. Application. Manager Node. Application Execution. Manager Synergy between CIAO, DAn. CE and Co. SMIC CIAO DAn. CE Co. SMIC – Processes XML meta-data generated by PICML Krishnakumar B et al 19
Model-driven Deployment & Configuration of Component-based Systems Node vs. Domain • Domain* provides functionality at the domain level • Node* provides similar functionality but are restricted to a Node • Application. Manager • Deals with application launch and tear-down • Application • Deals with creation, control of component homes & components Krishnakumar B et al 20
Model-driven Deployment & Configuration of Component-based Systems Planning • Component Packages are installed into the Component Repository • Repository. Manager parses XML meta-data into in-memory representation • Executor creates global deployment plan and passes it along to Domain. Application. Manager • Domain. Application. Manager splits it into multiple local plans • Contacts Node. Manager to create appropriate Node. Application. Managers Krishnakumar B et al 21
Model-driven Deployment & Configuration of Component-based Systems Initiating Application Launch • Executor initiates launching of the application • Domain. Application. Manager creates a Domain. Application object • Furthers application launch by contacting individual Node. Application. Managers • Node. Application. Managers create appropriate number of Node. Applications Krishnakumar B et al 22
Model-driven Deployment & Configuration of Component-based Systems Completing Application Launch • Executor notifies Domain. Application of completion of application launch • Domain. Application initiates Node. Applications to complete application launch • Connections between components are done at this stage • At the end of this stage, Components are ready to handle calls from clients Krishnakumar B et al 23
Model-driven Deployment & Configuration of Component-based Systems Application Teardown • Executor initiates tear-down by first terminating the running applications – Domain. Application. Manager ensures tear down of Node. Applications • It then tears down all the managers Krishnakumar B et al 24
- Slides: 24