tools & techniques for deployment & configuration …...ciao – qos-enabled component...

24
23 September 2004 Tools & Techniques for Deployment & Configuration of QoS Tools & Techniques for Deployment & Configuration of QoS Tools & Techniques for Deployment & Configuration of QoS Tools & Techniques for Deployment & Configuration of QoS Tools & Techniques for Deployment & Configuration of QoS Tools & Techniques for Deployment & Configuration of QoS Tools & Techniques for Deployment & Configuration of QoS Tools & Techniques for Deployment & Configuration of QoS - - - - - - enabled Component Applications enabled Component Applications enabled Component Applications enabled Component Applications enabled Component Applications enabled Component Applications enabled Component Applications enabled Component Applications Dr. Douglas C. Schmidt [email protected] www.dre.vanderbilt.edu/~schmidt Vanderbilt University Nashville, Tennessee Institute for Software Integrated Systems Jaiganesh Balasubramanian [email protected] www.dre.vanderbilt.edu/~jai Dr. Aniruddha Gokhale [email protected] www.dre.vanderbilt.edu/~gokhale Gan Deng [email protected] www.dre.vanderbilt.edu/~dengg

Upload: others

Post on 11-Jul-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

23 September 2004

Tools & Techniques for Deployment & Configuration of QoSTools & Techniques for Deployment & Configuration of QoSTools & Techniques for Deployment & Configuration of QoSTools & Techniques for Deployment & Configuration of QoSTools & Techniques for Deployment & Configuration of QoSTools & Techniques for Deployment & Configuration of QoSTools & Techniques for Deployment & Configuration of QoSTools & Techniques for Deployment & Configuration of QoS--------enabled Component Applicationsenabled Component Applicationsenabled Component Applicationsenabled Component Applicationsenabled Component Applicationsenabled Component Applicationsenabled Component Applicationsenabled Component Applications

Dr. Douglas C. Schmidt [email protected]

www.dre.vanderbilt.edu/~schmidt

Vanderbilt University Nashville, Tennessee

Institute for Software Integrated Systems

Jaiganesh [email protected]

www.dre.vanderbilt.edu/~jai

Dr. Aniruddha [email protected]

www.dre.vanderbilt.edu/~gokhale

Gan [email protected]

www.dre.vanderbilt.edu/~dengg

Page 2: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Motivation for Deployment & Configuration• Goals

– Promote component reuse– Build complex applications by

assembling existing components

– Automate middleware services configuration

– Inject “real-time” QoS policies into applications declaratively

– Dynamically deploy components to target heterogeneous domains

– Defer system optimization later based on particular component configuration & deployment settings

Client

Middleware Bus

Platform/Resource

Configuration

System Development

Field RadarControlSystem

Real-TimeFlightStatus

DataCenterComponent

Assembly

FlightScheduling

AirportApproachControl

ComponentRepository

Deploy:InstallationInstantiation

Interconnection

Real-timeQoS policies

Page 3: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

CCM Deployment & Configuration (D&C) Spec“D&C” spec was adopted by OMG in

2003Intended to replace Packaging &

Deployment chapter of CCM (CORBA 3.0) specification

Supports …–Hierarchical assemblies–Resource management–QoS characteristics–Automated deployment–Vendor-independent

deployment infrastructure

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 4: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

D&C & Model-Driven ArchitectureD&C is specified using a platform-

independent model–Defines “deployment” model–Independent of CORBA & CCM

(specified in UML)Can be refined into CCM-specific model (T1)Uses standard mappings to generate

–IDL (for “on-line” data)• using UML Profile for CORBA (M1)

–XML Schema (for “off-line” data)• using XMI (M2)

Intermediate transformation T2–Transforms PSM for CCM into suitable

input for M1 & M2

PlatformIndependentModel (PIM)

Platform Specific Model(PSM) for CCM

PSM forCCM for

IDL

PSM forCCM for

XML

IDL XMLSchema

T1

T2

M1 M2

Page 5: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Deployment & Configuration “Segments”

Execution Manager interfaces to prepare environment, execute deployment plan on target, manage lifecycle

Metadata to describe a specific deployment plan for an application into a distributed system

Execution

Run-time ModelData ModelPIM

Target Manager interfaces to collect & retrieve such metadata & commit resources

Metadata to describe heterogeneous distributed systems & their capabilities

Target

Repository Manager interfaces to browse, store, & retrieve such metadata

Metadata to describe component-based applications & their requirements

Component Software

Data model– Metadata, usually in XML format

Run-time model– Deployment interfaces (similar to CORBA services)

Page 6: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Tech. Approach• Model-driven

weaving of crosscutting concerns for middleware & applications

CIAO

CoSMIC DAnCE

Domain

Access Resources

Assembler

Assembler

Planner

Domain Administrator

Specifies

CreatesComponent

ResourceRequirements

Impl Impl Impl

Properties

COMPONENT REPOSITORY

QoS Specs

Configurations

Dependencies

Developer

CreatesComponent Assembly

ComponentComponent

ComponentComponent

Creates Packager

Repository Administrator

Component Packages

Configures

Desktop Printer Laptop computer

Ethernet Bridge

Firewall

Creates

Executor

Deployment PlanUses

Deploys

<CONFIGURATION_PASS><HOME> <…>

<COMPONENT><ID> <…></ID><EVENT_SUPPLIER><…events this component

supplies…></EVENT_SUPPLIER></COMPONENT></HOME>

</CONFIGURATION_PASS>

<CONFIGURATION_PASS><HOME> <…>

<COMPONENT><ID> <…></ID><EVENT_SUPPLIER><…events this component

supplies…></EVENT_SUPPLIER></COMPONENT></HOME>

</CONFIGURATION_PASS>

Benchmarking

Weaver

Synthesis

FunctionalModel

SystemicModel

Analysis

CIAO – QoS-enabled component middlewareCoSMIC – Modeling development, configuration, &

deployment concernsDAnCE – Deployment And Configuration Engine

• QoS-enabled component middleware

Overview

Page 7: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

DAnCE Infrastructure Overview

Deployment Target Host

Node ManagerNode

ApplicationManager

ComponentRepositoryManager

Execution Manager

Executor

1. Deployassemblyxyz.cdp

6. return theassembly id

2. create node application (component server)

NodeApplication

2a. create

2b. Return node application reference

Container

3a.

crea

te

4a. Query implUUID

CCMHomeEnterprise

Component

4c.

crea

te

5a. create

3. create containers

4. Install homes

4b. Retrieve impl binaries

DomainApplicationManager

3b .R

eturnc on taine rin terf ace

4d.R

e tur nh om

eo bj ref

5. Install components

5b. Return comp objref

Execution Manager: Global/Domain level daemon process

Domain Application Manager: A global coordinator interface for deploying an application into the

target domainNode Application Manager:

A local coordinator interface for deploying an application into the

particular node

Node Application: A component server process

which hosts containers

Repository Manager: Stores component binaries &

metadata to describe components

Node Manager: Local/node level daemon process

CIAOCORE

Page 8: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Deployment & Configuration ProcessNodeApplication

Manager

NodeApplication

Container

Home

«instantiates»

«instantiates»

«instantiates»

Canonical steps in the application deployment & configuration process (performed by CCM Deployment & Configuration engine):

• Create the NodeApplicationenvironment within which containers reside

• Create containers for the components

• Create & register homes for components

• Create & register the componentsthemselves

• Establish connections between componentsComponent

«instantiates»

Page 9: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Deployment & Configuration Process – Step 1NodeApplication

Manager

NodeApplication

Container

Home

«instantiates»

«instantiates»

«instantiates»

Component«instantiates»

Canonical steps in the application deployment & configuration process (performed by CCM Deployment & Configuration engine):

• Create the NodeApplicationenvironment within which containers reside

• Create containers for the components

• Create & register homes for components

• Create & register the componentsthemselves

• Establish connections between components

Page 10: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Creating a NodeApplication

startLaunch()create_node_application()

NodeApplicationManagercreate NodeApplication process

create NodeApplication objref

get NodeApplication objref

startLaunch()finishLaunch()

DomainApplicationManager

init()install ()install _home()finishLaunch()

NodeApplication

Page 11: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Deployment & Configuration Process – Step 2NodeApplication

Manager

NodeApplication

Container

Home

«instantiates»

«instantiates»

«instantiates»

Component«instantiates»

Canonical steps in the application deployment & configuration process (performed by CCM Deployment & Configuration engine):

• Create the NodeApplicationenvironment within which containers reside

• Create containers for the components

• Create & register homes for components

• Create & register the componentsthemselves

• Establish connections between components

Page 12: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Creating a Container

startLaunch()create_node_application()

NodeApplicationManager

init()install ()install _home()

NodeApplication

ciao_install_home()install _servant()install _component()

Container

create container

Page 13: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Deployment & Configuration Process – Step 3NodeApplication

Manager

NodeApplication

Container

Home

«instantiates»

«instantiates»

«instantiates»

Component«instantiates»

Canonical steps in the application deployment & configuration process (performed by CCM Deployment & Configuration engine):

• Create the NodeApplicationenvironment within which containers reside

• Create containers for the components

• Create & register homes for components

• Create & register the componentsthemselves

• Establish connections between components

Page 14: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Creating a Home Executor & Home Servant

startLaunch()create_node_application()

NodeApplicationManager

init()install ()install _home()

NodeApplication

ciao_install_home()install _servant()install _component()

Container

open DLLs

create_component()create()_ciao_activate_component()

Home

create()Home Executor

create home executor

create home servant

activate home servant

create home objref

Page 15: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Deployment & Configuration Process – Step 4NodeApplication

Manager

NodeApplication

Container

Home

«instantiates»

«instantiates»

«instantiates»

Component«instantiates»

Canonical steps in the application deployment & configuration process (performed by CCM Deployment & Configuration engine):

• Create the NodeApplicationenvironment within which containers reside

• Create containers for the components

• Create & register homes for components

• Create & register the componentsthemselves

• Establish connections between components

Page 16: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Creating a Component

startLaunch()create_node_application()

NodeApplicationManager

init()install ()install _home()

NodeApplication

ciao_install_home()install _servant()install _component()

Container

create_component()create()_ciao_activate_component()

Home

create()Home Executor

create component objref

create component servant

activate component servant

create component executorgenerictype-specific

connect()connect_consumer()subscribe()

Component

Page 17: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Deployment & Configuration Process – Step 5NodeApplication

Manager

NodeApplication

Container

Home

«instantiates»

«instantiates»

«instantiates»

Component«instantiates»

Canonical steps in the application deployment & configuration process (performed by CCM Deployment & Configuration engine):

• Create the NodeApplicationenvironment within which containers reside

• Create containers for the components

• Create & register homes for components

• Create & register the componentsthemselves

• Establish connections between components

Page 18: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Establishing Connections

startLaunch()create_node_application()

NodeApplicationManager

startLaunch()finishLaunch()

DomainApplicationManager

init()install ()install _home()finishLaunch()

NodeApplication

get connection info

connect()connect_consumer()subscribe()

Componentuses portemits portpublishes port

Page 19: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Configuring Middleware Services (1/4)• Traditional middleware like CORBA 2.x provide applications

with access to common middleware services like naming and event service using the underlying ORB middleware.

• In contrast, in component middleware, the focus is on– Providing reusability of components by implementing just the

application business logic.– Enabling easier integration into different application run-time

environments and contexts.• Hence the component deployers have to provide mechanisms

to integrate common middleware services into component-based applications.

Page 20: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Configuring Middleware Services (2/4)•Capture usage of common middleware services and formulate as patterns.

– Example, need to create, initialize and configure the event channel properties before using the Real-time Event service.

•Encapsulate all the usage patterns to provide reusable service libraries.

– Example, the RT Event Service library encapsulates the usage patterns for the TAO RT Event Service

Page 21: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Configuring Middleware Services (3/4)•Service libraries

– Wrapper facades for the underlying traditional middleware services.

– Shields component developers from the tedious programming tasks for configuring and using the services.

•Need a service integration framework that can

– Automatically start these services.

– Configure the services based on the QoS properties specified by the component developers using the modeling tools

Page 22: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Configuring Middleware Services (4/4)•DAnCE Service Configurator

– Manages the configuration of services, which are exposed as service configuration files.

• Example, RT Event Service Config captures the various usage options for the RT Event Service Library.

– Gets instructed by NodeApplicationManager and NodeApplication to automatically load the service

– Loads the service and configures the service based on the usage options.

Page 23: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Conclusion• Conventional middleware lacks mechanisms to handle

deployment concerns in DRE systems.• DAnCE leverages modeling languages and component

middleware to support the– Efficient storage and retrieval of component

implementations.– Automatic deployment of components.– Integrating common middleware services into applications.

• Future work concentrate on:– Applying reliable multicast mechanisms to the various

managers to communicate.– Enhance DAnCE to support dynamic component

assembly reconfigurations, redeployments and migrations.

Page 24: Tools & Techniques for Deployment & Configuration …...CIAO – QoS-enabled component middleware CoSMIC – Modeling development, configuration, & deployment concerns DAnCE – Deployment

Vanderbilt University

Jaiganesh Balasubramanian Deployment and Configuration Engine

Conclusion