160 likes | 346 Views
Application of TAO/CIAO in UAV-OEP/Capstone demo. RoadMap of the Presentation. UAV-OEP/Capstone Demo –PCES Objective: Operational Capabilities and Technical Story Demo Architecture and Sequence of Operation Constituent Technologies in the Demo CIAO Components
E N D
RoadMap of the Presentation • UAV-OEP/Capstone Demo –PCES Objective:Operational Capabilities and Technical Story • Demo Architecture and Sequence of Operation • Constituent Technologies in the Demo • CIAO Components • Qosket Components: key to the composed end-to-end QoS management in Demo • Qosket Components:Empirical Evaluation based on CCM-Perf Metrics • Modeling and Sysnthesis: How We Put This • Summary • Publications
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
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) Demo 3 Sequence of Operation End-to-End Quality of Service
Surveillance imagery displayed at C2 node Demo Sequence of Operation Mission Mode Changes and Reconfiguration Dynamic End-to-End QoS Management SimUAVs sending surveillance imagery SimUAV observing target sends higher quality images SimUCAV sends Battle Damage Indication (BDI) images using Prism components Simulated intel alert indicates a mission mode change; one SimUAV is directed to provide persistent coverage of target C2 issues a call for fire (CFF) C2 deconflicts UAVs away from corridor SRM reallocates resources and pushes new policy to participants When needed, LRM determines new adaptation and control LRM and qoskets on SimUCAV adjust resource and data management FEC provides C2 with launch corridor FEC initiates simulated missile launch SRM receives information about mode change, reallocates resources, and pushes new policy to participants
Constituent Technologies in the Demo • Component-based middleware – CIAO components running on TAO/RTTAO • Functional components • SimUAV sender, SimUAV receiver • Qosket components (provisioning end-to-end dynamic QoS management ) • CPU reservation (CPU broker Qosket) • Network priority (Diffserv Qosket) • Application/Data • Image compression • Rate shaping and pacing • Scaling • Cropping • Multi-layer QoS management • System resource manager • Local resource manager • Modeling and synthesis using DQME, CADML
Constituent Technologies in the Demo: CIAO Components Functional Components Qosket Components QoS Management 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 Demo 3 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: key to the composed end-to-endQoS management in Demo
Our experiments indicate that qosket components impose small overhead and significant benefit (submitted for publication). Qosket Components: Empirical Evaluation based on CCM-Perf Metrics
Modeling and Synthesis: How We Put This Together <?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) • Modeled assembly of the system using CADML • Generated XML CAD file • Next time use PICML • Modeled 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>
Summary • Demonstrated the use of CIAO components: functional components, Qosket comonents and QoS Management components to provide • Time critical target engagement, • Combined USAF and Army operations and • Dynamic end-to-end mission-driven QoS management • These components were assembled together using CADML and modelled using DQME • Show that the Qosket Components are • key to end-to-end QoS Management • are very general components that crosscuts CIAO and QuO technology • are easy to assemble and reuse for other applications • incurs a minimal overhead bit a significant benefit
Publications • 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