1 / 12

Component-Based Dynamic QoS Adaptation

Component-Based Dynamic QoS Adaptation. Praveen Sharma, George Heinman, Joseph Loyall, Prakash Manghwani, Matthew Gillen, Jianming Ye, Krishnakumar Balasubramanian TAO Workshop July 16, 2004. Overview. UAV-OEP/Capstone Demo – PCES Objective: Operational Capabilities and Technical Story

kaloni
Download Presentation

Component-Based Dynamic QoS Adaptation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Component-Based Dynamic QoS Adaptation Praveen Sharma, George Heinman, Joseph Loyall, Prakash Manghwani, Matthew Gillen, Jianming Ye, Krishnakumar Balasubramanian TAO Workshop July 16, 2004

  2. Overview • UAV-OEP/Capstone Demo – PCES Objective: Operational Capabilities and Technical Story • Demo Architecture and End-to-End QoS Management • Constituent Technologies in the Demo • CIAO Components • Qosket Components • Empirical Evaluation based on CCMPerf • Modeling and Synthesis • Summary • Publications

  3. UAV-OEP/Capstone Demo –PCES Objective: Operational Capabilities: Time critical target engagement, Combined USAF and Army operations Technical Story: Dynamic end-to-end mission-driven QoS management,Software engineering of DRE systems

  4. Demonstration Architecture SimUCAV SimUAV SimC2 Army FEC

  5. System resource manager determines allocation of resources to participants and roles Local resource manager configures qoskets to enforce resource management Qoskets control resources and shape imagery • Assigns a weight to each role based on its relative importance (from the blue controller) • Divides the total amount of resources (e.g., Mbps or %CPU) by the number of participants in all roles multiplied by their weight to get a resource unit • Each participant is allocated a resource unit times the weight of its role • Diffserv Code Point • CPU reservation • Rate, compression level, amount to scale or crop System resource manager pushes policy to each participant (SimUAVs and SimUCAVs) Local resource manager determines how best to utilize allocated resources • Diffserv Code Point (based on relative importance of role) • CPU reservation • Shaping data to fit allocated CPU and bandwidth: rate, size (cropping or scale), compression • Chooses based on resource allocation and mission needs of the role • Role • Relative importance • Resource allocation • Min and Max allowed (from mission requirements) Dynamic End-to-End QoS Management

  6. Constituent Technologies (1/2) • Component-based middleware • CIAO components • Functional components • SimUAV sender, SimUAV receiver • Qosket components • CPU reservation (CPU broker Qosket) • Network priority (Diffserv Qosket) • Application/Data management • Image compression • Rate shaping and pacing • Scaling • Cropping

  7. Functional Components Qosket Components QoS Management Components Constituent Technologies (2/2) • Multi-layer QoS management • System resource manager • Local resource manager • Modeling and synthesis using DQME, CADML

  8. Approaches to encapsulating QoS behaviors as components Encapsulate QoS artifacts as components Encapsulate one QoS artifact for each component Create Specialized CCM container Encapsulate all QoS control into single, centralized controller Qosket Components • Presented at CBSE 7 • We prototyped this one in the QuO software • Works with existing assembly tools • Allows QoS to be distributed where needed • The assembly of Qoskets can run in a single component server unless necessitated by application to run otherwise • Are general QoS provisioning components, i.e., can be reused with any other application with minimum changes • Implemented for CIAO and Prism and used in the Demo

  9. This is the model we use in Demonstration 3, because it is more representative of a UAV pushing imagery • Insertion of an extra component added modest overhead • 4.2% and 2.6%, respectively • The adaptation provided by the qosket component more than makes up for the extra component overhead • Scaling the image reduces the latency by 33.5 – 37.8% No qosket Qosket component; no adaptation Qosket component with scaling Event push data pull Event with payload Qosket Component Performance • Based on CCMPerf • Component version of the distributed UAV software includes • Functionality components (i.e., senders, distributors, receivers) • Qosket components • Two alternatives for sending imagery using components • Event push, data pull (similar to the Prism model) • Event push with image payload Event push, Data pull Model Event push with image payload

  10. Modeling and Synthesis: How We Constructed the Demonstration <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE componentassembly SYSTEM "componentassembly.dtd"> <componentassembly id="Stream"> <componentfiles> <componentfile id="com-SystemResourceManager"> <fileinarchive name="SystemResourceManager.csd"/> </componentfile> <componentfile id="com-Sender"> <fileinarchive name="Sender.csd"/> </componentfile> <componentfile id="com-croppingQosPredictor"> <fileinarchive name="QosPredictorComponent.csd"/> </componentfile> <componentfile id="com-scalingQosPredictor"> <fileinarchive name="QosPredictorComponent.csd"/> </componentfile> <componentfile id="com-compressionQosPredictor"> <fileinarchive name="QosPredictorComponent.csd"/> </componentfile> <componentfile id="com-ScaleQosket"> <fileinarchive name="ScaleQosket.csd"/> </componentfile> <componentfile id="com-CropQosket"> <fileinarchive name="CropQosket.csd"/> </componentfile> <componentfile id="com-CompressQosket"> <fileinarchive name="CompressQosket.csd"/> </componentfile> <componentfile id="com-LocalResourceManagerComponent"> <fileinarchive name="LRM.csd"/> </componentfile> <componentfile id="com-DiffServQosket"> <fileinarchive name="DiffServQosket.csd"/> </componentfile> <componentfile id="com-Receiver"> <fileinarchive name="Receiver.csd"/> </componentfile> </componentfiles> <partitioning> <processcollocation id="Process_Location1"> <homeplacement id="a_ReceiverHome"> <componentfileref idref="com-Receiver"/> <componentinstantiation id="a_Receiver"/> </homeplacement> <destination>Default</destination> </processcollocation> <processcollocation id="Process_Location2"> <homeplacement id="a_CropQosketHome"> <componentfileref idref="com-CropQosket"/> <componentinstantiation id="a_CropQosket"/> </homeplacement> <homeplacement id="a_compressionQosPredictorHome"> <componentfileref idref="com-compressionQosPredictor"/> <componentinstantiation id="a_compressionQosPredictor"/> </homeplacement> <homeplacement id="a_scalingQosPredictorHome"> <componentfileref idref="com-scalingQosPredictor"/> <componentinstantiation id="a_scalingQosPredictor"/> </homeplacement> <homeplacement id="a_croppingQosPredictorHome"> <componentfileref idref="com-croppingQosPredictor"/> <componentinstantiation id="a_croppingQosPredictor"/> </homeplacement> <homeplacement id="a_LocalResourceManagerComponentHome"> <componentfileref idref="com-LocalResourceManagerComponent"/> <componentinstantiation id="a_LocalResourceManagerComponent"> <registercomponent> <writeiortofile name="lrm.ior"/> </registercomponent> </componentinstantiation> </homeplacement> <homeplacement id="a_SenderHome"> <componentfileref idref="com-Sender"/> <componentinstantiation id="a_Sender"> <registercomponent> <writeiortofile name="sender.ior"/> </registercomponent> </componentinstantiation> </homeplacement> <homeplacement id="a_CompressQosketHome"> <componentfileref idref="com-CompressQosket"/> <componentinstantiation id="a_CompressQosket"/> </homeplacement> <homeplacement id="a_ScaleQosketHome"> <componentfileref idref="com-ScaleQosket"/> <componentinstantiation id="a_ScaleQosket"/> </homeplacement> <homeplacement id="a_DiffServQosketHome"> <componentfileref idref="com-DiffServQosket"/> <componentinstantiation id="a_DiffServQosket"/> </homeplacement> <destination>Default</destination> </processcollocation> <processcollocation id="Process_Location3"> <homeplacement id="a_SystemResourceManagerHome"> <componentfileref idref="com-SystemResourceManager"/> <componentinstantiation id="a_SystemResourceManager"> <registercomponent> <writeiortofile name="srm.ior"/> </registercomponent> </componentinstantiation> </homeplacement> <destination>Default</destination> </processcollocation> </partitioning> <connections> <connectevent> <consumesport> <consumesidentifier>imageEvt</consumesidentifier> <componentinstantiationref idref="a_Receiver"/> </consumesport> <publishesport> <publishesidentifier>outgoing_Evt</publishesidentifier> <componentinstantiationref idref="a_CompressQosket"/> </publishesport> </connectevent> <connectevent> <consumesport> <consumesidentifier>incoming_Evt</consumesidentifier> <componentinstantiationref idref="a_LocalResourceManagerComponent"/> </consumesport> <publishesport> <publishesidentifier>imageEvt</publishesidentifier> <componentinstantiationref idref="a_Sender"/> </publishesport> <connectevent> <consumesport> <consumesidentifier>policyChangeEvent</consumesidentifier> <componentinstantiationref idref="a_LocalResourceManagerComponent"/> </consumesport> <publishesport> <publishesidentifier>policy_evt</publishesidentifier> <componentinstantiationref idref="a_SystemResourceManager"/> </publishesport> </connectevent> <connectevent> <consumesport> <consumesidentifier>incoming_Evt</consumesidentifier> <componentinstantiationref idref="a_ScaleQosket"/> </consumesport> <publishesport> <publishesidentifier>outgoing_Evt</publishesidentifier> <componentinstantiationref idref="a_CropQosket"/> </publishesport> </connectevent> <connectevent> <consumesport> <consumesidentifier>incoming_Evt</consumesidentifier> <componentinstantiationref idref="a_CropQosket"/> </consumesport> <publishesport> <publishesidentifier>outgoing_Evt</publishesidentifier> <componentinstantiationref idref="a_LocalResourceManagerComponent"/> </publishesport> </connectevent> <connectevent> <consumesport> <consumesidentifier>incoming_Evt</consumesidentifier> <componentinstantiationref idref="a_CompressQosket"/> </consumesport> <publishesport> <publishesidentifier>outgoing_Evt</publishesidentifier> <componentinstantiationref idref="a_ScaleQosket"/> </publishesport> </connectevent> <connectevent> <consumesport> <consumesidentifier>resourceAllocationEvt</consumesidentifier> <componentinstantiationref idref="a_LocalResourceManagerComponent"/> </consumesport> <publishesport> <publishesidentifier>resource_evt</publishesidentifier> <componentinstantiationref idref="a_SystemResourceManager"/> </publishesport> </connectevent> <connectinterface> <usesport> <usesidentifier>scalingQosPredictor</usesidentifier> <componentinstantiationref idref="a_LocalResourceManagerComponent"/> </usesport> <providesport> <providesidentifier>qosLevels</providesidentifier> <componentinstantiationref idref="a_scalingQosPredictor"/> </providesport> </connectinterface> <connectinterface> <usesport> <usesidentifier>scalingQosket</usesidentifier> <componentinstantiationref idref="a_LocalResourceManagerComponent"/> </usesport> <providesport> <providesidentifier>currentLevelValue</providesidentifier> <componentinstantiationref idref="a_ScaleQosket"/> </providesport> </connectinterface> <connectinterface> <usesport> <usesidentifier>croppingQosket</usesidentifier> <componentinstantiationref idref="a_LocalResourceManagerComponent"/> </usesport> <providesport> <providesidentifier>currentLevelValue</providesidentifier> <componentinstantiationref idref="a_CropQosket"/> </providesport> </connectinterface> <connectinterface> <usesport> <usesidentifier>compressionQosket</usesidentifier> <componentinstantiationref idref="a_LocalResourceManagerComponent"/> </usesport> <providesport> <providesidentifier>currentLevelValue</providesidentifier> <componentinstantiationref idref="a_CompressQosket"/> </providesport> </connectinterface> <connectinterface> <usesport> <usesidentifier>diffservQosket</usesidentifier> <componentinstantiationref idref="a_LocalResourceManagerComponent"/> </usesport> <providesport> <providesidentifier>currentLevelValue</providesidentifier> <componentinstantiationref idref="a_DiffServQosket"/> </providesport> </connectinterface> <connectinterface> <usesport> <usesidentifier>compressionQosPredictor</usesidentifier> <componentinstantiationref idref="a_LocalResourceManagerComponent"/> </usesport> <providesport> <providesidentifier>qosLevels</providesidentifier> <componentinstantiationref idref="a_compressionQosPredictor"/> </providesport> </connectinterface> <connectinterface> <usesport> <usesidentifier>croppingQosPredictor</usesidentifier> <componentinstantiationref idref="a_LocalResourceManagerComponent"/> </usesport> <providesport> <providesidentifier>qosLevels</providesidentifier> <componentinstantiationref idref="a_croppingQosPredictor"/> </providesport> </connectinterface> </connections> </componentassembly> CADML model (one SimUAV visible) • Assembly of the system using CADML • Generated XML CAD file • Transitioning to use PICML • End-to-end QoS using DQME • Used for documentation and design • Code generation work in progress • Application of MoBIES tools DQME Modeling CAD file (XML) <componentfile id="com-ScaleQosket"> <fileinarchive name="ScaleQosket.csd"/> </componentfile> <componentfile id="com-CropQosket"> <fileinarchive name="CropQosket.csd"/> </componentfile> <homeplacement id="a_ScaleQosketHome"> <componentfileref idref="com-ScaleQosket"/> <componentinstantiation id="a_ScaleQosket"/> </homeplacement> <homeplacement id="a_DiffServQosketHome"> <componentfileref idref="com-DiffServQosket"/> <componentinstantiation id="a_DiffServQosket"/> </homeplacement>

  11. Publications • Joseph Loyall, Jianming Ye, Sandeep Neema, and Nagabhushan Mahadevan. Model-Based Design of End-to-End Quality of Service in a Multi-UAV Surveillance and Target Tracking Application. Second RTAS Workshop on Model-Driven Embedded Systems (MoDES '04), Toronto, Canada, May 25-28, 2004. • George T. Heineman and William T. Councill, Component-Based Software Engineering: Putting the Pieces Together, Addison Wesley, June 2001. • Jianming Ye, Joseph P. Loyall, Richard Shapiro, Sandeep Neema, N. Mahadevan, S. Abdelwahed, M. Koets,and W. Denise. A Model-Based Approach to Designing QoS Adaptive Applications. 2004. Submitted for publication. • Praveen K. Sharma, Joseph P. Loyall, George T. Heineman, Richard E. Schantz, Richard Shapiro, Gary Duzan Component-Based Dynamic QoS Adaptations in Distributed Real-Time and Embedded Systems – submitted to DOA

  12. Summary • We have developed a complex DRE application built using components • Functional components, Qosket components and QoS Management components to provide • Dynamic end-to-end mission-driven QoS management • Time critical target engagement • Combined USAF and Army operations • Components assembled using CADML, DQME • Qosket Components • Key to end-to-end QoS Management • Combines CIAO and QuO technology • Modeling Tools • Easy to assemble, reusable in different scenarios • Minimal overhead for increased flexibility and control

More Related