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
www.dre.vanderbilt.edu/~dengg
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
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
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
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)
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
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
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»
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
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
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
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
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
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
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
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
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
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
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.
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
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
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.
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.
Vanderbilt University
Jaiganesh Balasubramanian Deployment and Configuration Engine
Conclusion