application of tao/ciao in uav-oep/capstone demo

15
Application of TAO/CIAO in UAV-OEP/Capstone demo

Upload: kory-stafford

Post on 05-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Application of TAO/CIAO in UAV-OEP/Capstone demo

Application of TAO/CIAO in

UAV-OEP/Capstone demo

Page 2: 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– 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

Page 3: Application of TAO/CIAO in UAV-OEP/Capstone demo

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

Page 4: Application of TAO/CIAO in UAV-OEP/Capstone demo

3

4. C2 instructs UAV ground station (GS), which instructs UAV (HITL) , to enter AOI and provide imagery

5. UAV moves to AOI and starts collecting imagery of terrorist cell

6. UAV sends imagery to UAV GS, which sends it on to the C2

7. Commander at the CAOC recognizes terrorist target (HITL)

8. C2 sends imagery and call for fire to Fire Effects Cell (FEC); C 2 directs UCAV GS to enter AOI

2. Simulated Satellite detects terrorist meeting and broadcasts an intel message

3. Joint Tactical Terminal (JTT) receives intel message

CAOCC2 FEC

HIMAR

Scenario Script for the Capstone Demo

1. UAV and Sim UAVs are surveilling theatre

21

9

10

87

6

5

4

3

4

6

9. (C2 will have some idea of airspace deconfliction); FEC will send restrictions on airspace to the C2 (e.g., a no-fly corridor)

10. C2 clears the area and creates a no-fly corridor

11. FEC directs HIMAR to fire (HITL); UCAV GS directs UCAV toward AOI

12. HIMAR launches ATACMS at target; UCAV moves toward AOI

13. UCAV collects Battle Damage Assessment (BDA) imagery; UAV and Sim UAVs collect surveillance imagery

14. UCAV delivers BDA imagery to UCAV GS, which sends it to C2, which sends it on to the FEC; UAV and SimUAVs deliver surveillance imagery to GS which sends it on to the C2

15. Commander at C2 recognizes fleeing SUVs (HITL)

16. C2 tasks UCAV GS to direct UCAV to track and destroy terrorist vehicles

17. UCAV tracks fleeing vehicles with Moving Target Radar and simulates launching a JDAM at the vehicles

8 12

9

10

11 12

12

11 12

12

12

1213 13

14

1415

Key:HITL = Human in the Loop

Page 5: Application of TAO/CIAO in UAV-OEP/Capstone demo

Demo Architecture

Page 6: Application of TAO/CIAO in UAV-OEP/Capstone demo

Demo Sequence of Operation

Page 7: Application of TAO/CIAO in UAV-OEP/Capstone demo

SimUAVSensorSimUAVSensor

CroppingQosket

CroppingQosket

ScalingQosketScalingQosket

CompressionQosket

CompressionQosket

PacingQosketPacingQosket

CPUBrokerQosket

CPUBrokerQosket

DiffservQosketDiffservQosket

LocalResourceManager

LocalResourceManager

LocalResourceManager

qosket attributes

AM1__ImageLogicalDeviceComponentLogical_Optical_Sensor

AM1__DataGeneratorQosketComponentOptical_Qosket

AM1__DataGeneratorComponentOptical_Sensor

AM1__CompressionProcessorImage_Compressor

AM1__ScalingProcessorImage_Scaling

OM1__MissionModeComponentMode_Controller

AM1__MissionBWComponentBandWidth_Controller

AM1__MissionCPUComponentCPU_Controller

OM1__ModeResourceMonitorComponentMode_Monitor

AM1__BWResourceMonitorComponentBandWidth_Monitor

AM1__CPUResourceMonitorComponentCPU_Monitor

5HZ

10HZ

20HZ

1HZ

10. Push()

11. Push()

12. GetImage()

4. Push()

5. Push()

6. GetBW_Utilization()

7. Push()

9. GetMode()

8. Push()

1. Push()

2. Push()3. GetCPU_Utilization()

13. GetValue()14. GetValue()

15. GetValue()

18*. UpdateImage()

17*. UpdateImage()

20. Push()

21. GetImage()

AM1__DataDisseminatorComponentComm_Link

22. Push()23. GetImage()

ContractPrism_Contract

16. Eval ()

AM1__TiledImageProcessorLogical_Tiled_Optical_Sensor

19*. UpdateImage()

5HZ

AM1__PacingQosketComponentPacing_Qosket

24. Push()

25. GetImage()

26*. Push()

PCES_Imaging_Station_ComponentPCES_Imaging_Station

PCES_Asset_SRM_ComponentPCES_Asset_SRM

PCES_UCAV_Server_ComponentPCES_UCAV_Server

27*. GetImage()

images

policymissionmode

changes

ReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiver

SystemResourceManager

SystemResourceManager

images

policy

C2

Clie

nt

CFF

Status

TrackData

BDIImagery

BDIImagery

Embedded Battle

Command

3-DTerrain

Navigation

BDIImageDisplay

LauncherSimulator

2-DSituation

Awareness

TrackDistribution

CFF CFF

StatusStatus

TrackData

TrackDataimages

RT

EC

RT

EC

IntegratedDisplay

C4ISIM

Blue Controller

JBI

Demo 3 Sequence of OperationDemo 3 Sequence of OperationSystem resource manager determines allocation of resources to participants and roles• 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

End-to-End Quality of Service

System resource manager pushes policy to each participant (SimUAVs and SimUCAVs)

• Role• Relative importance• Resource allocation• Min and Max allowed (from mission requirements)

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

Local resource manager configures qoskets to enforce resource management

Qoskets control resources and shape imagery

• Diffserv Code Point • CPU reservation• Rate, compression level, amount to scale or

crop

Page 8: Application of TAO/CIAO in UAV-OEP/Capstone demo

SimUAVSensorSimUAVSensor

CroppingQosket

CroppingQosket

ScalingQosketScalingQosket

CompressionQosket

CompressionQosket

PacingQosketPacingQosket

CPUBrokerQosket

CPUBrokerQosket

DiffservQosketDiffservQosket

LocalResourceManager

LocalResourceManager

LocalResourceManager

qosket attributes

AM1__ImageLogicalDeviceComponentLogical_Optical_Sensor

AM1__DataGeneratorQosketComponentOptical_Qosket

AM1__DataGeneratorComponentOptical_Sensor

AM1__CompressionProcessorImage_Compressor

AM1__ScalingProcessorImage_Scaling

OM1__MissionModeComponentMode_Controller

AM1__MissionBWComponentBandWidth_Controller

AM1__MissionCPUComponentCPU_Controller

OM1__ModeResourceMonitorComponentMode_Monitor

AM1__BWResourceMonitorComponentBandWidth_Monitor

AM1__CPUResourceMonitorComponentCPU_Monitor

5HZ

10HZ

20HZ

1HZ

10. Push()

11. Push()

12. GetImage()

4. Push()

5. Push()

6. GetBW_Utilization()

7. Push()

9. GetMode()

8. Push()

1. Push()

2. Push()3. GetCPU_Utilization()

13. GetValue()14. GetValue()

15. GetValue()

18*. UpdateImage()

17*. UpdateImage()

20. Push()

21. GetImage()

AM1__DataDisseminatorComponentComm_Link

22. Push()23. GetImage()

ContractPrism_Contract

16. Eval ()

AM1__TiledImageProcessorLogical_Tiled_Optical_Sensor

19*. UpdateImage()

5HZ

AM1__PacingQosketComponentPacing_Qosket

24. Push()

25. GetImage()

26*. Push()

PCES_Imaging_Station_ComponentPCES_Imaging_Station

PCES_Asset_SRM_ComponentPCES_Asset_SRM

PCES_UCAV_Server_ComponentPCES_UCAV_Server

27*. GetImage()

images

policymissionmode

changes

ReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiver

SystemResourceManager

SystemResourceManager

images

policy

C2

Clie

nt

CFF

Status

TrackData

BDIImagery

BDIImagery

Embedded Battle

Command

3-DTerrain

Navigation

BDIImageDisplay

LauncherSimulator

2-DSituation

Awareness

TrackDistribution

CFF CFF

StatusStatus

TrackData

TrackDataimages

RT

EC

RT

EC

IntegratedDisplay

C4ISIM

Blue Controller

JBI

Surveillance imagery displayed at C2 node

Demo Sequence of OperationDemo Sequence of OperationMission Mode Changes and Reconfiguration

SRM reallocates resources and pushes new policy to participantsWhen needed, LRM determines new adaptation and control

SimUAVs sending surveillance imagery Simulated intel alert indicates a mission mode

change; one SimUAV is directed to provide persistent coverage of target

SimUAV observing target sends higher quality images

C2 issues a call for fire (CFF)

SimUCAV sends Battle Damage Indication (BDI) imagesusing Prism components

LRM and qoskets on SimUCAV adjust resource and data management

Dynamic End-to-End QoS Management

FEC provides C2 with launch corridor

FEC initiates simulated missile launch

C2 deconflicts UAVs away from corridor

SRM receives information about mode change, reallocates resources, and pushes new policy to participants

Page 9: Application of TAO/CIAO in UAV-OEP/Capstone demo

Constituent Technologies in the Demo

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

Page 10: Application of TAO/CIAO in UAV-OEP/Capstone demo

SimUAVSensorSimUAVSensor

CroppingQosket

CroppingQosket

ScalingQosketScalingQosket

CompressionQosket

CompressionQosket

PacingQosketPacingQosket

CPUBrokerQosket

CPUBrokerQosket

DiffservQosketDiffservQosket

LocalResourceManager

LocalResourceManager

LocalResourceManager

qosket attributes

images

policy

missionmode

changes

ReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiverReceiver

SystemResourceManager

SystemResourceManager

IntegratedDisplay

C4ISIM

Blue Controller

Functional Components

Qosket Components QoS Management Components

Constituent Technologies in the Demo: CIAO Components

Page 11: Application of TAO/CIAO in UAV-OEP/Capstone demo

Qosket Components: key to the composed end-to-end

QoS management in Demo

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

QoSMaster

• 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

Page 12: Application of TAO/CIAO in UAV-OEP/Capstone demo

Qosket Components: Empirical Evaluation based on CCM-Perf Metrics

Latency Overhead due to Qosket Component using CIAO

110964811536981157195

1184180

719844767176

0

200000

400000

600000

800000

1000000

1200000

1400000

1 2

Component Models - Model 1: Event Push Data Pull Model 2: Data Tagged Event Push

Avera

ge L

ate

ncy (

mic

ro s

eco

nd

s)

.

Sender-Distriibutor-Receiver Sender-Distributor-Qosket-Receiver (Passive) Sender-Distributor-Qosket-Receiver (Active)

Event push data pull Event with payload

No qosket

Qosket component;no adaptation

Qosket component with scaling

Latency Overhead due to Qosket Component using CIAO

110964811536981157195

1184180

719844767176

0

200000

400000

600000

800000

1000000

1200000

1400000

1 2

Component Models - Model 1: Event Push Data Pull Model 2: Data Tagged Event Push

Avera

ge L

ate

ncy (

mic

ro s

eco

nd

s)

.

Sender-Distriibutor-Receiver Sender-Distributor-Qosket-Receiver (Passive) Sender-Distributor-Qosket-Receiver (Active)

Event push data pull Event with payload

No qosket

Qosket component;no adaptation

Qosket component with scaling

Our experiments indicate that qosket components impose small overhead and significant benefit (submitted for publication).

Page 13: Application of TAO/CIAO in UAV-OEP/Capstone demo

Modeling and Synthesis: How We Put This Together

Modeling and Synthesis: How We Put This Together

• 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

<?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)

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>

DQME Modeling

Page 14: Application of TAO/CIAO in UAV-OEP/Capstone demo

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

Page 15: Application of TAO/CIAO in UAV-OEP/Capstone demo

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