Transcript Slide 1

CaDAnCE: A Criticality-aware Deployment And
Configuration Engine
Gan Deng, Douglas Schmidt & Aniruddha Gokhale
www.dre.vanderbilt.edu
Presented at ISORC 2008
Orlando, FL, USA, May 5-7, 2008
Institute for Software Integrated Systems
Vanderbilt University
Nashville, Tennessee
1
New Demands on Open Distributed Real-time
& Embedded (DRE) Systems
…
…
…
Container
…
Container
Middleware Bus
Open Distributed real-time &
embedded (DRE) systems
• Network-centric & larger-scale
“systems of systems”
• Dynamic context
• Stringent simultaneous QoS demands
• e.g., scalability, dependability,
throughput
Replication
2
Security
Persistence Transaction
NASA MMS Mission System Case Study
Operational String C
(Low Criticality)
Gizmo
C
Three
Operational
String
Example
A
Filtering
Data
Fusion
Gizmo
Operational String B
(Medium Criticality)
Messaging
Science
Agent
Filtering
Operational String A
(High Criticality)
Gizmo
Filtering
Trace
Detection
Control
Task
State
Estimate
Science
Agent
Data
Analysis
B
Comm
Monitor
• Operational String A  A mission-critical task that collects important field
data when a satellite moves to particular locations
– High criticality
• Operational String B  Domain-centric data analysis based on
predefined analysis models
– Medium criticality
• Operational String C  Collect auxiliary field data occasionally, such as
Sun zenith, satellite view zenith (only when requested by B)
– Low criticality
3
Operational String Deployment: OMG D&C
startLaunch
Event Sink
App
App
Node
Application
Facet
Domain
Application
Manager
Facet
install
Execution Manager
Event Sink
startLaunch startLaunch
App
Node Manager
Node
Application
Manager
Node Manager
Node
Application
Manager
App
Node
Application
spawn
spawn
• Operational string deployment via Synchronous Method Invocation (SMI)
– ExecutionManager (EM) iteratively makes synchronous invocation on
each NodeManager (NM) to install components
• Each NM propagates component port references back to the EM
– DAM dispatches component port object references to NMs for connection
establishment, i.e., fulfill dependency requirement between components
4
Challenge 1: Avoid Deployment Order Inversion
• Context
– A deployment order is the order in which operational strings are deployed,
which is determined by the dependencies between operational strings
• Problem
– Deployment order inversion happens when a higher criticality operational
string has a dependency to a lower criticality operational string
– A deployment order inversion can propagate across multiple operational
strings due to such dependencies
Operational String C
(Low Criticality)
Gizmo
Filtering
Data
Fusion
Gizmo
Operational String B
(Medium Criticality)
Messaging
Science
Agent
Filtering
Operational String A
(High Criticality)
Gizmo
Filtering
Trace
Detection
State
Estimate
Control
Task
Science
Agent
Data
Analysis
Comm
Monitor
5
Challenge 2: Preserve Predictability of Other Operational Strings
• Context
– The dynamic nature of open DRE systems requires on-demand
deployment of a number of operational strings in one request
– Each operational strings has certain utility value to the entire DRE
system
• Problem
– While the D&C framework improves the predictability of high-criticality
operational strings by minimizing their D&C latencies, it should also
preserve the D&C predictability of other operational strings
Operational String C
(Low Criticality)
Gizmo
Filtering
Data
Fusion
Gizmo
Operational String B
(Medium Criticality)
Messaging
Science
Agent
Filtering
Operational String A
(High Criticality)
Gizmo
Filtering
Trace
Detection
State
Estimate
Control
Task
Science
Agent
Data
Analysis
Comm
Monitor
6
Our Solution  The CaDAnCE Approach
• Develop an D&C framework called
Criticality-Aware Deployment And
Configuration Engine (CaDAnCE)
– Based on our prior work on
DAnCE
• Step 1  Convert a set of
operational strings (based on
XML-based deployment
descriptors) into a set of directed
graphs
• Step 2  Recompose the graphs
based on operational strings
criticalities & their dependency
relationships by promoting
components from one to another
1
2
3
• Step 3  Convert recomposed
graphs back into a new set of inmemory operational strings
Benefit: Minimize D&C latency of 7mission-critical operational strings
Overview of the Recomposition Algorithm in CaDAnCE
• Sort & iterate through all the
operational strings, from the highest
criticality to the lowest
– Process all the external
dependencies of each operational
string sequentially
– For each operational string,
identify the components causing
deployment order inversion by
tracing criticality-inverted
dependency trace
– Remove all external
dependencies causing
deployment order inversion by
promoting components from lower
criticality ones to higher criticality
ones
Medium Priority
High Criticality
CaDAnCE
(After Processing High Criticality String)
1st
Iteration
Medium Criticality
High Criticality
2nd
Iteration
Low Criticality
Low Criticality
Component Promoting
CaDAnCE
(After Processing Medium Criticality String)
High Criticality
Medium Criticality
Low Criticality
Component Promoting
Removing all criticality-inverted dependencies
avoids deployment order inversion
8
Predictability  Parallel Deployment via AMI/AMH
startLaunch
Execution Manager
Domain
Application
Manager
install
startLaunch
App
App
Node
Application
startLaunch
?
App
Node Manager
Node
Application
Manager
Node Manager
Node
Application
Manager
App
Node
Application
spawn
spawn
• Asynchronous deployment & serializability
– Apply Asynchronous Method Invocation (AMI) to take advantage of
parallel processing among many nodes
– AMI, however, does not provide a mechanism to coordinate different
nodes, which is required by D&C for connection establishment
– To ensure serializability of D&C process, we combine AMI with
Asynchronous Method Handling (AMH)
11
install
Empirical Evaluation of CaDAnCE – HW/SW Testbed
• Run experiments on a prototype
implementation of NASA MMS
Mission System
– 15 components in a sample
operational strings
– Experimented with up to 64
operational strings & 960
components in total
• Experiments performed in the
ISIS Lab
– Dual 2.8 GHz Xeon CPUs,
1GB of ram, 40GB HDD, &
gigabit ethernet cards
– Real-time Fedora Core 4 Linux
kernel version 2.6.20-rt8-UNI
– Used up to 6 nodes
Gizmo 1
Filter 1
Analysis 1
Gizmo 2
Filter 2
Analysis 2
Science
Agent
12
Comm
Gizmo 3
Filter 3
Analysis 3
Gizmo 4
Filter 4
Analysis 4
Ground
Effects on Operational String Recomposition
• Hypothesis
– CaDAnCE should not change the
functional correctness while
producing correct dependencies
between operational strings
Gizmo 1
Filter 1
Analysis 1
Gizmo 2
Filter 2
Analysis 2
Gizmo 3
Filter 3
Analysis 3
Gizmo 4
Filter 4
Analysis 4
Science
Agent
Comm
Ground
Low
• Experimental design
– The experiments consist of 3
operational strings with criticality level
of high, medium, and low,
respectively
13
Filter 1
Analysis 1
Gizmo 2
Filter 2
Analysis 2
Science
Agent
– Before the experiment, 2 arbitrary
criticality-inverted external
dependencies are populated
– Measure the total # of components &
# of dependencies (both internal &
external) of each operational string
before & after applying the CaDAnCE
algorithm
Gizmo 1
Comm
Gizmo 3
Filter 3
Analysis 3
Gizmo 4
Filter 4
Analysis 4
Gizmo 1
Filter 1
Analysis 1
Gizmo 2
Filter 2
Analysis 2
Science
Agent
Medium
Comm
Gizmo 3
Filter 3
Analysis 3
Gizmo 4
Filter 4
Analysis 4
Ground
Ground
High
Results & Analysis for the Experiment
Without
AMI/AMH
With
AMI/AMH
Latency (miliseconds)
End-to-End Deployment Latency of Operational Strings
5000
4000
3000
2000
1000
0
Low Priority
Medium Priority
High Priority
Low Priority-AMI
Med Priority-AMI
High Priority-AMI
Total Latency
Without CaDAnCE
650826
1303584
1908699
216942
434528
636233
3863109
With CaDAnCE
2010396
1605292
887649
670132
401323
211345
4503337
Low Priority
Medium Priority
High Priority
Low Priority-AMI
Med Priority-AMI
High Priority-AMI
Total Latency
Total Latency-AMI
• CaDAnCE reduced the D&C latency of high criticality operational strings
significantly (Both w/ AMI/AMH & w/o AMI/AMH)
• Without AMI/AMH, the total end-to-end latency of all operational strings
increased due to component distribution effect
• With AMI/AMH, the total end-to-end latency of all operational strings is
almost the same as without CaDAnCE
CaDAnCE minimizes D&C latency of
15 mission-critical operational strings
D&C Latency vs. Criticality
• Hypothesis
– CaDAnCE can avoid deployment order
inversion when higher criticality
operational strings have dependencies
on lower criticality operational strings
Filter 1
Analysis 1
Gizmo 2
Filter 2
Analysis 2
Gizmo 2
Filter 2
Analysis 2
Gizmo 2
Filter 2
Analysis 2
Gizmo 1
Filter 1
Analysis 1
Gizmo 2
Filter 2
Analysis 2
Gizmo 2
Filter 2
Analysis 2
Science
Agent
• Experimental design
– Two experiments with different
operational string configurations
Gizmo 1
Science
Agent
• Each string has 15 components
evenly distributed across 5 nodes
– The second experiment has 2 strings
with high operational string growth
effect (worst case scenario)
• Same configuration as above
16
Ground
Comm
Ground
High Growth Effect
Gizmo 2
– The first experiment has 3 operational
strings with low operational string
growth effect
Comm
Filter 2
Analysis 2
Low Growth Effect
Gizmo 1
Filter 1
Analysis 1
Gizmo 2
Filter 2
Analysis 2
Gizmo 2
Filter 2
Analysis 2
Gizmo 2
Filter 2
Analysis 2
Gizmo 1
Filter 1
Analysis 1
Gizmo 2
Filter 2
Analysis 2
Gizmo 2
Filter 2
Analysis 2
Gizmo 2
Filter 2
Analysis 2
Science
Agent
Science
Agent
Comm
Ground
Comm
Ground
Results & Analysis for the Second Experiment
Operational String Merge (Worst Case Scenario)
Latency (Miliseconds)
700
600
500
400
Low Priority
300
High Priority
200
100
0
Without
CaDAnCE
CaDAnCE w/o
Optimization
CaDAnCE w/
Optimization
Low Priority
216942
629922
220942
High Priority
636233
629922
625662
• The latency of deploying the high criticality operational string is nearly the
same as deploying it without applying the CaDAnCE algorithm
• However, the D&C latency of low criticality operational string increases &
becomes the same as that of high criticality string
– Due to the operational string merge effect
• In worse case scenario, CaDAnCE performs the same as baseline, i.e.,
without using CaDAnCE
CaDAnCE preserves predictability of 17
lower criticality strings in case of merge
Concluding Remarks
• Component middleware has already
received widespread acceptance in
enterprise business domains
1. Deploy an
component
assembly
System
Deployer
Node
Application
– e.g.,J2EE, Web Services
6. Create
containers
• Developers of DRE systems have
encountered limitations with the available
component middleware platforms
Domain
Application
Manager
D&C
ITS
D&C
Profile
Profile
3. Create
component server
Node Manager
Node
Application
Manager
4. configure component
server resources
5. Load and initialize
middleware services
7. Install
component
& homes
Standard
Configurator
Deployment Target Node
1
2. Container-based
publish/subscribe
service deployment
and configuration
Dissertation
Research
Dimenstions
2
3
Container
Priority High
…
Event
Sinks
– OMG CORBA Component Model
Service Usage
Metadata
.......
Event Service Lib
Priority Low
…
Operational String
Deployment
Via CaDAnCE
Middleware Service Configurator
Service Usage
Metadata
D&C
Profile
Event
Sources
Internal
Interfaces
Component Context
Receptacles
CCM
Component
RT-Event
Service Lib
– OSOA Service Component Architecture
(SCA)
3. Predictable D&C
middleware via
operational string
recompostion
ComponentServer
POA
• Our techniques are most relevant with
below two component models:
1. A standards-based
D&C framework for
real-time component
middleware
Repository
Manager
8. Configure
attributes
Facets
• This research applies methodologies &
techniques to improve both the human
productivity & computing performance
of D&C of component-based DRE
systems
Container
Execution Manager
Service Usage
Metadata
Notification
Service Lib
Priority High
…
Optimized
D&C
Profile
Priority Low
…
Object Request Broker
RT-Event
Service
Event Service
Notification
Service
Open-source software can be downloaded from
www.dre.vanderbilt.edu/CIAO &18www.dre.vanderbilt.edu/CoSMIC
Thank You
19