CosMIC Tool-chain - Vanderbilt University

Download Report

Transcript CosMIC Tool-chain - Vanderbilt University

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
July 17, 2015
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 (DAnCE)
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
File
Print
Databas
e
Database Properties
Packaging & Deployment
Display
File
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
DLL
DLL
Implementation
QoS
Properties
Version
DLL
DLL
Implementation
QoS
Properties
Checksum
Dependencies
Version
Checksum
Dependencies
Meta-data
Meta-data
Component
Component
QoS Specs
List of Files
Component
Interconnections
Meta-data
• 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
Assembly
Assembly
Assembly
Deployment
Application
Deployer
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
deployment of an application into
a distributed system
Prepare environment, Execute
on target to Deployment plan,
manage lifecycle
Krishnakumar B et al
5
Model-driven Deployment & Configuration of Component-based Systems
PIM Mapping to CCM
• Physical viewpoint
Platform
Independent
Model (PIM)
– Mapping from PIM to platform
specific model (PSM) for CCM
T1
• Set of transformations
Platform Specific Model
(PSM) for CCM
– T1  PIM to PSM for CCM
– T2  PSM to
T2
• PSM for IDL
• PSM for XML
PSM for
CCM for
IDL
• Set of mapping rules
– M1  PSM to IDL
PSM for
CCM for
XML
M1
M2
– M2  PSM to XML schema
IDL
Krishnakumar B et al
XML
Schema
6
Model-driven Deployment & Configuration of Component-based Systems
Deployment & Configuration Activities
• Descriptors are passive
Impl
Impl
Impl
entities
Resource
Properties
Developer
Requirements
• Manipulated by Actors
• Different Stages
– Development
Uses
• Developer
Deployment Plan
• Assembler
• Packager Executor
– Target
Access
Deploys
Resources
• Domain
Administrator
– Deployment
Desktop
• Repository
Bridge
Administrator
• Planner
Domain
• Executor
Specifies
• Actors are abstract
Domain
Component
Creates
Printer
Laptop computer
Creates
Assembler
Component Assembly
Component
Component
Component
Component
Assembler
Creates
Packager
Planner
Component Packages
Repository
Administrator
Configures
COMPONENT REPOSITORY
Ethernet
Firewall
QoS Specs
Dependencies
Configurations
Administrator
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
DLL
DLL
Implementation
QoS
Properties
Version
Checksum
Dependencies
DLL
DLL
Implementation
QoS
Properties
Version
QoS Specs
List of Files
Checksum
Dependencies
Component
Interconnections
8
Model-driven Deployment & Configuration of Component-based Systems
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
Component
Development
Assembly
Constraints
Component
Assembler
Component
Impl
Impl
Resource
Requirements
Assembly
Meta-Model
Impl
Properties
Component Assembly
Component
Component
Component
Component
Component
Deployment
Component
Packager
Package
Meta-Model
Package
Constraints
Component Package
Component Assembly
Component Assembly
– “Correct-by-construction”
Krishnakumar B et al
9
Model-driven Deployment & Configuration of Component-based Systems
Example Application: RobotAssembly
Conveyor
Power Switching
Unit
Conveyor
Drive System
Management
Work
Instructions
Radio
Intrusion Alarm
Discretes
Pallet
Present
Switches
Human
Machine
Interface*
Off Enable
Off Enable
Fast
Watch
Setting
Manager*
Pallet
Conveyor
Manager
Pallet
Release
Switch
Assembly
Area
Intrusion
Robot
Manager*
Control Station
Disk Storage
Storage
Device
Controller
Robot in
Work
Area
Clock
Handler
Krishnakumar B et al
10
Model-driven Deployment & Configuration of Component-based Systems
RobotAssembly 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)
Component
Packaging
Component
Interface
Descriptors
(.ccd)
Running
Applications
Deployment
Plan
Descriptor
(.cdp)
Deployment
Tools
Component
Domain
Descriptor
(.cdd)
System
Deployment
Krishnakumar B et al
Component
Packages
(*.cpk)
Implementation
Artifact
Descriptors
(.iad)
Packaging
Tools
Assembly
Tools
Component
Package
Descriptors
(.cpd)
Component
Implementation
Descriptor
(*.cid)
Package
Configuration
Descriptor
(.pcd)
Application
Assembly
13
Model-driven Deployment & Configuration of Component-based Systems
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>
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 (CoSMIC)
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
DLL
DLL
Implementation
QoS
Properties
Version
Checksum
Dependencies
• Large no. of
components
DLL
DLL
Implementation
– Micro-management of
components
QoS
Properties
• Difficulty in reasoning
complete end-to-end
behaviour
– Manual deployment
inherently error-prone
– Ad hoc scripts no better
Krishnakumar B et al
Version
QoS Specs
List of Files
Checksum
Dependencies
Component
Interconnections
18
Model-driven Deployment & Configuration of Component-based Systems
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
Synergy between CIAO,
DAnCE and CoSMIC
CIAO
DAnCE
CoSMIC
– 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
• ApplicationManager
• 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
• 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
Krishnakumar B et al
21
Model-driven Deployment & Configuration of Component-based Systems
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
Krishnakumar B et al
22
Model-driven Deployment & Configuration of Component-based Systems
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
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
– DomainApplicationManager ensures tear down of NodeApplications
• It then tears down all the managers
Krishnakumar B et al
24