Upload
roxanne-lucas
View
216
Download
0
Embed Size (px)
Citation preview
1
Using Quality Objects (QuO) Middleware for QoS Control of Video Streams
BBN TechnologiesCambridge, MA
http://www.dist-systems.bbn.com/tech/QuO/
Craig Rodrigues
OMG’s Third Workshop on Real-Time and
Embedded Distributed Object Computing
January 7-10, 2002
Burlingame, California, USA
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
QoSQoS
Limited Off-Board Links
Limited Off-Board Links
Varying Missions
Varying Missions Contention
with other Subsystems
Contention with other
Subsystems
Constrained Shipboard Resources
Constrained Shipboard Resources
Streaming Video
Streaming Video
COTSCOTS
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
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
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
Different mission requirements require optimizing an aspect or aspects,
possibly trading off others
5
Example Variations & Adaptations in UAV Scenario
Distributor
I PB
II
IIIIIIP
PP
PPP P P
P
P
B
B BBBBB
B BBBBBBB
BBBBBBBBBBBBBBBBBBBBBBB
BBBBBBBBBBBBBBB
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 ConditionsDynamic 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
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
• •
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
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
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
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
OBJECTADAPTER
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
OBJECTADAPTER
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
11
CORBA Audio/Video Streaming Service
• Goals of OMG CORBA A/V Service Specification– Define standard mechanisms for:
Stream Establishment
Stream Control
Multiple Flows
Multiple Protocols
QoS
• Goals of TAO A/V Streaming Service Project– Implement OMG CORBA A/V Service Specification using TAO
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 control
reservationnotification
VideoSourceProcess
UAV Video File
VideoDistributor
VIDEO DISTRIBUTION HOST
QuO
Video Stream Video Display
VIDEO DISPLAY HOST
VideoDisplayProxy
QuO
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
• •
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
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
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”
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)
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
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)}
20
Integration of QuO QoS Components in UAV Application
POA::Sender_Control_Callback
Sender_Control_Callback Object
receiver.{h,cpp}
Receiver Code
Receive FrameEvent Callback
Contract
Normal
High
Excess
Contract
SendAllFrames
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)
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
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
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