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