Model-driven Deployment & Configuration of Component-based Systems

24
June 24, 2022 Model-driven Deployment & Model-driven Deployment & Configuration of Component- Configuration of Component- based Systems based Systems Krishnakumar Balasubramanian, Boris Kolpackov, Krishnakumar Balasubramanian, Boris Kolpackov, Tao Lu, Dr. Douglas C. Schmidt, Dr. Aniruddha Tao Lu, Dr. Douglas C. Schmidt, Dr. Aniruddha Gokhale Gokhale [email protected] [email protected] Institute for Software Integrated Systems, Institute for Software Integrated Systems, Vanderbilt University Vanderbilt University

description

Model-driven Deployment & Configuration of Component-based Systems. Krishnakumar Balasubramanian, Boris Kolpackov, Tao Lu, Dr. Douglas C. Schmidt, Dr. Aniruddha Gokhale [email protected] Institute for Software Integrated Systems, Vanderbilt University. Overview. - PowerPoint PPT Presentation

Transcript of Model-driven Deployment & Configuration of Component-based Systems

Page 1: Model-driven Deployment & Configuration of Component-based Systems

April 22, 2023

Model-driven Deployment & Model-driven Deployment & Configuration of Component-based Configuration of Component-based

SystemsSystems

Krishnakumar Balasubramanian, Boris Kolpackov, Tao Lu, Krishnakumar Balasubramanian, Boris Kolpackov, Tao Lu, Dr. Douglas C. Schmidt, Dr. Aniruddha GokhaleDr. Douglas C. Schmidt, Dr. Aniruddha Gokhale

[email protected]@dre.vanderbilt.eduInstitute for Software Integrated Systems,Institute for Software Integrated Systems,

Vanderbilt UniversityVanderbilt University

Page 2: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

2Krishnakumar B et al

Overview• Deployment & Configuration of Component-based systems

– Introduction

– Challenges

• Platform-Independent Component Modeling Language (PICML)

• XML Schema Compiler (XSC)

• Deployment And Configuration Engine (DAnCE)

Page 3: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

3Krishnakumar B et al

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

Packaging & Deployment

Component Properties

Display

Database

Print

FileComponent Assembly

Database

Display

PrintFile

File Properties

Database Properties

Page 4: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

4Krishnakumar B et al

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

Meta-data

Component ComponentMeta-data

Implementation

QoSProperties

Checksum

Version Dependencies

DLL DLL

List of FilesQoS Specs ComponentInterconnections

Assembly

DeploymentApplication

Assembly Assembly

ImplementationDLL DLL

Meta-data

QoSProperties

Checksum

Version Dependencies

Deployer

Page 5: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

5Krishnakumar B et al

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 ModelComponent 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 deployment of an application into a distributed system

Prepare environment, Execute on target to Deployment plan, manage lifecycle

Page 6: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

6Krishnakumar B et al

PIM Mapping to CCM• Physical viewpoint

–Mapping from PIM to platform specific model (PSM) for CCM

• Set of transformations

–T1 PIM to PSM for CCM

–T2 PSM to

• PSM for IDL

• PSM for XML

• Set of mapping rules

–M1 PSM to IDL

–M2 PSM to XML schema

PlatformIndependentModel (PIM)

Platform Specific Model(PSM) for CCM

PSM forCCM for

IDL

PSM forCCM for

XML

IDL XMLSchema

T1

T2

M1 M2

Page 7: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

7Krishnakumar B et al

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

CreatesComponent

ResourceRequirements

Impl Impl Impl

PropertiesDeveloper

Assembler

Creates

Assembler

Component Assembly

ComponentComponent

ComponentComponent

Creates Packager

Component Packages

COMPONENT REPOSITORY

QoS Specs

Configurations

Dependencies

RepositoryAdministrator

Configures

Domain

DomainAdministrator

Specifies

Desktop Printer Laptop computer

Ethernet Bridge

Firewall

Planner

AccessResources

Deployment Plan

Uses

Executor

Deploys

Page 8: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

8Krishnakumar B et al

Configuration Challenges• Context

– Configuring & composing component-based applications using XML meta-data

QoSProperties

Checksum

Version Dependencies

List of FilesQoS Specs ComponentInterconnections

ImplementationDLL DLL

QoSProperties

Checksum

Version Dependencies

ImplementationDLL DLL

• 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?

Page 9: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

9Krishnakumar B et al

Platform-Independent Component Modeling Language• Solution

– PlCML– Developed in Generic Modeling

Environment (GME)– Core of Component Synthesis

using Model-Integrated Computing (CoSMIC) 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”

Assembly Meta-Model

Component Assembler

Component Development

Component Deployment

AssemblyConstraints

ComponentPackager

Package Meta-Model

Component

ResourceRequirements

Impl Impl Impl

PropertiesComponent Assembly

ComponentComponent

ComponentComponent

PackageConstraints

Component Package

Component Assembly Component Assembly

Page 10: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

10Krishnakumar B et al

Example Application: RobotAssembly

Radio

ConveyorPower Switching

Unit

Control Station

Switches

ClockHandler

HumanMachine

Interface*

ManagementWork

Instructions

Disk Storage

StorageDevice

Controller

WatchSetting

Manager*

RobotManager*

PalletConveyorManager

ConveyorDrive System

PalletPresent

Pallet ReleaseSwitch

Off Enable

Fast

Off Enable

Discretes

AssemblyArea

Intrusion

Intrusion Alarm

Robot inWorkArea

Page 11: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

11Krishnakumar B et al

RobotAssembly in PICML

Page 12: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

12Krishnakumar B et al

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

Page 13: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

13Krishnakumar B et al

Types Of Meta-data generated by PICML(2/2)

Component Packaging

ApplicationAssemblySystem

Deployment

RunningApplications

Component Packages

(*.cpk)Deployment

Tools

Deployment Plan

Descriptor (.cdp)

Component Domain

Descriptor (.cdd)

AssemblyTools

Component Implementation

Descriptor(*.cid)

PackageConfiguration

Descriptor(.pcd)

Component Interface

Descriptors (.ccd)

Packaging Tools

Component Package

Descriptors (.cpd)

Implementation Artifact

Descriptors (.iad)

Page 14: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

14Krishnakumar B et al

Example output for RobotAssembly<!–-Component Implementation Descriptor(.cid) associates components with impl. artifacts--> <Deployment:ComponentImplementationDescription>  <UUID>FB9D7161-1765-4784-BC1D-EA9EAAB3ED2A</UUID>  <implements href="RobotManager.ccd" /> <monolithicImpl> <primaryArtifact>   <name>RobotManager_exec</name>   <referencedArtifact href="RobotManager_exec.iad" />   </primaryArtifact> <primaryArtifact>   <name>RobotManager_stub</name>   <referencedArtifact href="RobotManager_stub.iad" />   </primaryArtifact> <primaryArtifact>   <name>RobotManager_svnt</name>   <referencedArtifact href="RobotManager_svnt.iad“ />   </primaryArtifact>  </monolithicImpl></Deployment:ComponentImplementationDescription>

Page 15: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

15Krishnakumar B et al

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 (CoSMIC)

Page 16: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

16Krishnakumar B et al

Questions?

Page 17: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

17Krishnakumar B et al

XML Schema Compiler (XSC)• Context

– Increasing use of XML as a data exchange format

• Solution– XML Schema Compiler (XSC)– Static typing using a set of

mapping rules – Generates C++ (Native/CORBA)

from XML schema– Generates parser for creating in-

memory representation of XML files

– Customizable code generation using traversal mechanism

• Problem– Standard XML parsing API such

as DOM lacks element type information

– Complex implementations to create in-memory representation

Page 18: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

18Krishnakumar B et al

Deployment Challenges

• Context– Deploying an application

built using COTS components QoS

PropertiesChecksum

Version Dependencies

List of FilesQoS Specs ComponentInterconnections

ImplementationDLL DLL

QoSProperties

Checksum

Version Dependencies

ImplementationDLL DLL

• 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

Page 19: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

19Krishnakumar B et al

Deployment And Configuration Engine (DAnCE)• Solution

– Deployment & Configuration Engine (DAnCE)

– First-cut implementation of deployment infrastructure

– Partial implementation of the following interfaces:

• RepositoryManager• NodeManager• NodeApplicationManager• DomainApplicationManager• NodeApplication• ExecutionManager

– Processes XML meta-data generated by PICML

Synergy between CIAO, DAnCE and CoSMIC

CIAO

CoSMICDAnCE

Page 20: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

20Krishnakumar B et al

• Domain* provides functionality at the domain level• Node* provides similar functionality but are restricted to a Node• ApplicationManager

• Deals with application launch and tear-down • Application

• Deals with creation, control of component homes & components

Node vs. Domain

Page 21: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

21Krishnakumar B et al

Planning

• Component Packages are installed into the Component Repository• RepositoryManager parses XML meta-data into in-memory representation• Executor creates global deployment plan and passes it along to

DomainApplicationManager• DomainApplicationManager splits it into multiple local plans• Contacts NodeManager to create appropriate NodeApplicationManagers

Page 22: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

22Krishnakumar B et al

Initiating Application Launch

• Executor initiates launching of the application• DomainApplicationManager creates a DomainApplication object

• Furthers application launch by contacting individual NodeApplicationManagers

• NodeApplicationManagers create appropriate number of NodeApplications

Page 23: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

23Krishnakumar B et al

Completing Application Launch

• Executor notifies DomainApplication of completion of application launch• DomainApplication initiates NodeApplications 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

Page 24: Model-driven Deployment & Configuration of Component-based Systems

Model-driven Deployment & Configuration of Component-based Systems

24Krishnakumar B et al

Application Teardown

• Executor initiates tear-down by first terminating the running applications– DomainApplicationManager ensures tear down of NodeApplications

• It then tears down all the managers