Top Banner
1 Using Quality Objects (QuO) Middleware for QoS Control of Video Streams BBN Technologies Cambridge, MA http://www.dist-systems.bbn.com/tech/QuO/ Craig Rodrigues [email protected] OMG’s Third Workshop on Real-Time and Embedded Distributed Object Computing January 7-10, 2002 Burlingame, California, USA
23

Powerpoint

Apr 11, 2017

Download

Documents

Ronny72
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Powerpoint

1

Using Quality Objects (QuO) Middleware for QoS Control of Video Streams

BBN TechnologiesCambridge, MA

http://www.dist-systems.bbn.com/tech/QuO/

Craig [email protected]

OMG’s Third Workshop on Real-Time andEmbedded Distributed Object Computing

January 7-10, 2002Burlingame, California, USA

Page 2: Powerpoint

2

US Navy UAV Characteristics

*From the World Wide Web site for official information about Unmanned Aerial Vehicles, http://uav.navair.navy.mil/home.htm

QoS

Limited Off-Board Links

Varying Missions

Contention with other

Subsystems

Constrained Shipboard Resources

Streaming Video

COTS

Page 3: Powerpoint

3

• Video feed from off-board source (unmanned aerial vehicle)

• Users interact with UAV in real time• Users’ hosts receive video and display it• Video Distributor sends video to hosts via ship’s network

UAV Basic Scenario

Page 4: Powerpoint

4

Highest priority frames must reach the receiver

Importance• Receiving or collecting

sufficient imagery (e.g., surveillance)

Importance Invariant

{ f | f Frames(U) Importance(f) > I f Frames(R) }

Example Dynamic Variations in UAV Mission Requirements

Trading off these properties, while maintaining invariants, under dynamic conditions is crucial to mission success

End-to-end latency + processing time at distributor and display, must be below threshold

Timeliness• An out-of-the-window view of

UAV imagery (e.g., piloting, targeting)

Timeliness Invariant

L(UD) + P(D) + L(DR) + P(R) < T

Image precision at display must approximate that at the UAV source

Fidelity• Determining relative

importance of time-critical targets (e.g., commander)

Fidelity Invariant

Fidelity(R) / Fidelity(U) > Q

Different mission requirements require optimizing an aspect or aspects,

possibly trading off others

Page 5: Powerpoint

5

Example Variations & Adaptations in UAV Scenario

DistributorI PB

II

IIIIIIP P P

P PP P P

PP

B

B BBBBBB BBBBB

BBBBBB

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

BBB BBBBBBBBBBBBBBBBBBBBBBBBBBBBBP P P P P P P P P PIBBPBBPBBPBBPBBPBBIBBPB

NETWORK RESERVATION• Condition: excessive Network load • Action: Use IntServ to reserve bandwidth

Distributor...PBBPBBPBBI I I IDATA FILTERING• Condition: When excessive network or CPU

load• Action: Drop selective frames

Dynamic Variations inOperating Conditions

Missionrequirements

of UAV scenario

Fidelity• Image fidelity

must be maintained

LOAD BALANCING• Condition: Excessive

CPU load • Action: Migrate distributor

to a lightly loaded host

X X

Timeliness• Maintain an out-

of-the-window view of UAV imagery

Importance• Important

imagery must be received

Page 6: Powerpoint

6

UAV Application: A View of the Software Components

VideoSourceProcess

UAV SIMULATION HOST

UAVVideoFile

VideoDIstributor

VIDEO DISTRIBUTIONHOST

QuOContract

Video Display

VIDEO DISPLAY HOST 1

VideoDisplayProxy

CORBA A/V Streaming Service

VIDEO DISPLAY HOST 2

VIDEO DISPLAY HOST N

Reused Off the Shelf Software• DVDView video player

Common middleware services• TAO CORBA A/V Service• QuO• AQoSA• TAO Naming Service

Frame filtering commands

Observed throughput

Reservation requests

QuOContract

• •

Page 7: Powerpoint

7

Functional description of UAV architecture

VideoSourceProcess

UAV SIMULATION HOST

Video DistributorProcess

VIDEO DISTRIBUTION HOST

Video DisplayProcess

VIDEO DISPLAY HOST 1

Display ProxyProcess

VIDEO DISPLAY HOST N

Functionality• Read bytes from a file• Convert into frames• Send out pipe•Timing and sequencing of frames sent out

Base Functionality• Receive frames• Send frames to registered receivers

QuO Functionality

QuO Delegate:• Frame filtering (i.e., frame dropping)

QuO Sysconds and Contract:• Measuring frame rate• Measuring resource usage and availability (CPU and network)• Adapting to performance degradation (e.g., frame dropping, load balancing)

Base Functionality• Receive frames• Display frames on the screen

QuO Functionality

QuO Sysconds and Contract:• Measuring frame rate

QuO Delegate:• Removing time stamp• Removing sequencing• Discarding frame if late or out of sequence

VIDEO DISPLAY HOST 2

Page 8: Powerpoint

8

COTS Middleware Components usedin the UAV Software

• Quality Objects (QuO)– provides higher level programming model for specifying application-level QoS and adaptation

• CORBA ORB technology and services– TAO RT-CORBA ORB– CORBA Audio/Video Service

Page 9: Powerpoint

9

Quality Objects (QuO)

• Provides a higher level programming model for specifying application QoS– operating regions specified in QuO Contracts– transitions between regions trigger adaptive behaviors

• Support for different middleware architectures– CORBA (Java and C++)– Java RMI– local method call

Page 10: Powerpoint

10

QuO Adds Specification, Measurement, and Adaptation to the Distributed Object Model

ApplicationDeveloper

MechanismDeveloper

CLIENT

Network

operation()in args

out args + return value

IDLSTUBS

IDLSKELETON OBJECT

ADAPTER

ORB IIOP ORBIIOP

CLIENT OBJECT(SERVANT)OBJECT(SERVANT)

OBJREF

CLIENT

DelegateContract

SysCond

Contract

Network

MECHANISM/PROPERTYMANAGER

operation()in args

out args + return value

IDLSTUBS

Delegate

SysCond

SysCond

SysCond

IDLSKELETON OBJECT

ADAPTER

ORB IIOP ORBIIOP

CLIENT OBJECT(SERVANT)OBJECT(SERVANT)

OBJREF

ApplicationDeveloper

QuODeveloper

MechanismDeveloper

CO

RB

A D

OC

MO

DE

LQ

UO

/CO

RB

A D

OC

MO

DE

L

Page 11: Powerpoint

11

CORBA Audio/Video Streaming Service

• Goals of OMG CORBA A/V Service Specification– Define standard mechanisms for:

Stream EstablishmentStream ControlMultiple FlowsMultiple ProtocolsQoS

• Goals of TAO A/V Streaming Service Project– Implement OMG CORBA A/V Service Specification using TAO

Page 12: Powerpoint

12

UAV Application High Level Design

Source Stream

Endpoint (distributor)

Stream Adaptor

Sink Stream EndPoint(Display)

Stream Adaptor

Video Stream

TAO A/V Streaming Service

ACE AQoSA API

RSVP-enabled routers

reservationrequest

requestreservation

accept/reject

eventnotifications

.. .. reservationsflows QoSupdates

QuO measurement and controlreservationnotification

VideoSourceProcess

UAV Video File

VideoDistributor

VIDEO DISTRIBUTION HOST

QuO

Video Stream Video Display

VIDEO DISPLAY HOST

VideoDisplayProxy

QuO

Page 13: Powerpoint

13

UAV Application: A View of the Software Components

VideoSourceProcess

UAV SIMULATION HOST

UAVVideoFile

VideoDIstributor

VIDEO DISTRIBUTIONHOST

QuOContract

Video Display

VIDEO DISPLAY HOST 1

VideoDisplayProxy

CORBA A/V Streaming Service

VIDEO DISPLAY HOST 2

VIDEO DISPLAY HOST N

Reused Off the Shelf Software• DVDView video player

Common middleware services• TAO CORBA A/V Service• QuO• AQoSA• TAO Naming Service

Frame filtering commands

Observed throughput

Reservation requests

QuOContract

• •

Page 14: Powerpoint

14

UAV Application: Managed Behavior for Computational Resources

• In order to preserve end-to-end QoS requirements, different technologies must be used to manage the behavior of computational resources

• Processor Resources– RT-CORBA

• Network Resources– RSVP– DiffServ

Page 15: Powerpoint

15

RT-CORBA and UAV application

• Distributor will need to perform real-time processing of video frames and/or sensor data which may accompany the video, or video frames

• Distributor invokes a method on an RT-CORBA servant which performs data processing

• Thread priority of task is requested in the CORBA invocation

FrameFilter

Delegate

TAO_AV_Protocol_Object

TAO_AV_UDP_Objecttransport->send()

distributor.{h,cpp}

Distributor Code

Receive FrameEvent Callback

wrapper-> send_frame()

RT-CORBAThread pool

RT-CORBA servant

RT-CORBA request

Video frames

Page 16: Powerpoint

16

What is RSVP?

• Resource Reservation Protocol, specified in IETF RFC 2205

• QoS properties are requested by an “out-of-band” signalling protocol

• Can be used to request a reserved bandwidth between a sender and receiver host

• Information about the reservation is stored in each intermediate router: “soft-state”

Page 17: Powerpoint

17

RSVP fragmentation problem

• MPEG in UDP packets were being fragmented by IP.• Routers did not know that fragmented IP packets were part of a RSVP

reservation of UDP packets.• Solution: QuO delegates for fragmentation/reassembly, so UDP packets are

not fragmented at IP level.

FrameFilter

Delegate

TAO_AV_Protocol_Object

TAO_AV_UDP_Objecttransport->send()

distributor.{h,cpp}

Distributor Code

Receive FrameEvent Callback

wrapper-> send_frame()

Host B (Distributor)

receiver.{h,cpp}

Receiver Code

Receive FrameEvent Callback

FragmentFrame

Delegate

ReassembleFrame

Delegate

Host C (Receiver)

Page 18: Powerpoint

18

What is Diffserv?

Diffserv Field(8-bits)

HeaderLength(4-bits)

Total Length(16-bits)

Source Address (32-bits)

Destination Address (32-bits)

TTL (8-bits) Protocol (8-bits) Checksum (16-bits)

Flags(3-bits)

Version(4-bits)

Identification (16-bits) Fragment offset (13-bits)

• Diffserv field: 6 bits of Diffserv Codepoint, 2 bits ECN• Each DSCP (0-63) specifies a Per-Hop-Behavior (PHB), which is a type of router-level QoS (RFC 2475)

IP Datagram Header

Page 19: Powerpoint

19

Specifying Diffserv QoS properties using the TAO AV Service

• CORBA IDL for AVStreams contains a method for changng the QoS characteristics of a stream:

• We have modified the TAO AV service, and use modify_QoS() to specify Diffserv codepoint values in video streams. AV service contributions are integrated in TAO 1.2.

typedef sequence<string> flowSpec;

struct QoS{ string QoSType CosPropertyService::Properties QoSParams;};

typedef sequence<QoS> streamQoS;

interface Basic_StreamCtrl{ boolean modify_QoS(inout streamQoS, in flowSpec) raises (noSuchFlow, QoSRequestFailed)}

Page 20: Powerpoint

20

Integration of QuO QoS Components in UAV Application

POA::Sender_Control_CallbackSender_Control_Callback Object

receiver.{h,cpp}

Receiver Code

Receive FrameEvent Callback

ContractNormal

High

Excess

ContractSendAllFrames

SendTenFrames

SendTwoFrames

FrameFilter

Delegate

ExpectedFrame Rate

Host A (Sender) Host C (Receiver)

ActualFrame Rate

• QuO provides higher level feedback and control as video frames are transmitted from sender to receiver

TAO_AV_Protocol_Object

TAO_AV_UDP_Objecttransport->send()

distributor.{h,cpp}

Distributor Code

Receive FrameEvent Callback

wrapper-> send_frame()

SenderControl

sender.{h,cpp}

Sender Code

wrapper-> send_frame()

HeaderDelegate

Host B (Distributor)

Page 21: Powerpoint

21

Creating RSVP and Diffserv Reusable Qoskets

• Desirable to create reusable network-centric QoS components (“Qoskets”), to make distributed, QoS enabled applications easier to develop.

• Code for RSVP qosket is currently being refactored out of existing application.

• Diffserv qosket needs to be rewritten.• Perhaps a good use for the CORBA Component Model?• New Qoskets paper available:

http://www.dist-systems.bbn.com/papers/

RSVPQosket

DiffservQosket

Page 22: Powerpoint

22

Some Future Directions and Questions

• CORBA seems to work well as a signalling platform for QoS. Can we use it to request higher level QoS strategies instead of protocols like RSVP?

– Create reusable Qosket components for RSVP, Diffserv, and other QoS properties

• How can we integrate with Resource Managers for requesting end-to-end QoS: network, CPU resources,….?

• How can we use more RT-CORBA features to deliver end-to-end QoS?

– integration of behaviors like adaptive filtering • How can we scale the application to send multiple

simultaneous data streams (video, sensor readings)?– use more advanced features of CORBA A/V service

Page 23: Powerpoint

23

Distribution information

• QuO software available from:

http://www.dist-systems.bbn.com/tech/QuO/

• UAV software available from:

http://www.dist-systems.bbn.com/projects/AIRES/UAV/

• Help available from: [email protected]

• Requires latest version of TAO ORB, version 1.2, available from:

http://deuce.doc.wustl.edu/Download.html