1 10/20/01 DOA 2001
http://www.dist-systems.bbn.com/tech/QuO
Application of the QuO Quality-of-Service Framework to a Distributed Video Application
Distributed Object ApplicationsRome, Italy
September 18-20, 2001
Joe LoyallDavid Karr, Craig Rodrigues, Rick Schantz
BBN Technologies
Yamuna Krishnamurthy, Irfan PyaraliOOMWorks
Doug SchmidtUC, Irvine
2 10/20/01 DOA 2001
Outline
Motivation & context
Overview of the QuO adaptive middleware framework
Using QuO in an embedded streaming video application
Conclusions
3 10/20/01 DOA 2001
Trends Motivating Development of QoS-Enabled, Adaptive Distributed Object Middleware
• Trends in technology development– Hardware keeps getting smaller, faster, and cheaper– Software keeps getting larger, slower, and more expensive
• Challenges in Software Development– Building distributed systems is difficult– Simultaneously the two dimensions of
Wider distribution across WANs, including wireless and satellite links
Smaller embedded environments with strict QoS and resource constraints
have made distributed systems development increasingly difficult
4 10/20/01 DOA 2001
Challenges Facing Today’s Wide-Area and Embedded System Development
• Middleware support for WAN applications doesn’t scale well up or down
– There is a gap between emerging low-level mechanisms to control some types of resources (e.g., bandwidth management, replication) and high-level application strategies
– Researchers are generally working on one piece of the solution, e.g., focusing on one critical QoS property, one time epoch
– Functional integration has taken precedence over system properties (e.g., CORBA IDL)
• Middleware support for embedded applications is just starting to emerge
– Many mission-critical distributed applications require real-time QoS guarantees
– Building embedded applications is currently done manually and is tedious, error-prone, and expensive
– Conventional middleware does not support embedded QoS requirements effectively
5 10/20/01 DOA 2001
The Overarching Challenge
The overarching challenge is to provide COTS middleware support for developing distributed applications for these
widely differing environments
• Middleware support for building integrated QoS, adaptive applications (with varying requirements on granularity of changing behavior):
– adaptable: change at runtime while application/service running– reconfigurable: change at runtime while application/service halted– evolvable: change at development time– rehostable: move from environment to environment, platform to platform, and domain to domain
with minimum effort and maximum reuse.
6 10/20/01 DOA 2001
The Quality Objects (QuO) Framework Supports Development of Distributed Applications with QoS
The QuO framework provides• Separation of concerns between software functional properties and QoS needs
• Consistent interfaces for QoS measurement and resource management control
• Standard middleware interfaces between application and QoS-provider layers
• Facilities to enable application- and system-level adaptation
QuO is being developed as a common approach to adaptable QoS for a number of projects focusing on different QoS dimensions:
• Dependability, replication, group communication (U.Illinois, Cornell, UCSB)• Managed bandwidth, resource reservation (CMU, Columbia Univ.)• Real-time behavior (Washington Univ in St. Louis)• Security, access control, survivability, intrusion detection (TIS)• Integrating different dimensions in an application, e.g., real-time and dependability• Suitability for supporting different approaches to a dimension
7 10/20/01 DOA 2001
Outline
Motivation & context
Overview of the QuO adaptive middleware framework
Using QuO in an embedded streaming video application
Conclusions
8 10/20/01 DOA 2001
QuO Adds Specification, Measurement, and Adaptation into 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
9 10/20/01 DOA 2001
Adaptation and Control in QuO
• In-band adaptation provided by the delegate and gateway
– A delegate decides what to do with a method call or return based upon the state of its contract
– Gateway enables control and adaptation at the transport layer
• Out-of-band adaptation triggered by transitions in contract regions
– Caused by changes in the system observed by system condition objects
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
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
10 10/20/01 DOA 2001
The QuO Toolkit Supports Building Adaptive Applications or Adding Adaptation to Existing Apps
• QuO aspect languages– Contract description language and
adaptive behavior description language
– Code generators that weave QuO code into Java and C++ applications
• System Condition Objects– Provide interfaces to resources,
managers, and mechanisms
• QuO Runtime Kernel– Contract evaluator– Factory object which instantiates
contract and system condition objects
• Instrumentation library• QuO gateway
– Insertion of special purpose transport layers and adaptation below the ORB
QuO GatewayQuO Gateway
IIOPGlue
Control
Clie
nt-S
ide
OR
B
IIOP Group Replication (AQuA)
WAN
Bandwidth Reservation (DIRM)
IIOP over TCP/IP (default)
IIOPGlue
Control
IIOP
Serv
er-S
ide
OR
B
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
CORBA IDL
CodeGenerators
CodeGenerators
Contract DescriptionLanguage (CDL)
Adaptive SpecificationLanguage (ASL)
QuO RuntimeQuO Runtime
Delegates Contracts
11 10/20/01 DOA 2001
QuO Components Are Packaged into Reusable Bundles of “Systemic Behavior” Called Qoskets
• The Qosket encapsulates a set of contracts (CDL), system condition objects (IDL), and QoS adaptive behavior (ASL)
• The Qosket exposes interfaces to access QuO controls and information (specified in IDL)
• The Qosket separates the functional adaptive behavior (business logic) from the QoS adaptive behavior and the middleware controls from the QoS mechanisms
Functional Behavior
Adaptation
QuO Contract
Object
QoS Adaptive Behavior
SysCond
QoSMechanisms
Client Code
Delegate Qosket
12 10/20/01 DOA 2001
Outline
Motivation & context
Overview of the QuO adaptive middleware framework
Using QuO in an embedded streaming video application
Conclusions
13 10/20/01 DOA 2001
• Video feed from remote source
• Users interact with remote video source in real time
• Users’ hosts receive video and display it
• Video Distributor sends video to hosts on embedded network
Basic Streaming Video Scenario
14 10/20/01 DOA 2001
Variations & Adaptations in Streaming Video 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
Operationalrequirementsand tradeoffs
Fidelity• Highest
fidelity frames (i.e., I frames) must be delivered
Timeliness• Maintain a
current view of UAV imagery
Importance• Frames must
be dropped in reverse order of importance (B, then P)
LOAD BALANCING• Condition: Excessive
CPU load • Action: Migrate distributor
to a lightly loaded host
X X
15 10/20/01 DOA 2001
CORBA A/V Streaming Service
+ AQoSA Resource Reservation (IntServ)
Architecture of the Embedded Video Streaming Application
• FeaturesReused Off the Shelf Software• DVDView video player
Hand coded functionality• video forwarding• frame processing, filtering• timestamping and sequencing• connection, video transport
Common middleware services• QuO adaptive middleware• Real-time CORBA ORB (TAO)
- Naming Service- A/V Streaming Service- AQoSA
VideoSourceProcess
MOBILE VIDEOSOURCE HOST
Video File
VideoDistributor
VIDEO DISTRIBUTION HOST
Video Display
VIDEO DISPLAY HOST 1
VideoDisplayProxy
CORBA A/V Streaming Service
VIDEO DISPLAY HOST 2
VIDEO DISPLAY HOST N
•
•
QuOObservedthroughput
Observedthroughput
Reservation requests
Reservation requestsFrame
filteringcommands
Framefilteringcommands
VIDEO DISTRIBUTION N
16 10/20/01 DOA 2001
VIDEO DISTRIBUTION HOST
Management and adaptation in UAV using the QuO adaptive middleware
VideoDistributor
Video Display
VIDEO DISPLAY HOST
VideoDisplayProxy
QuO
Video Stream
QuO
Distributor Display
Video Stream
Normal
Degraded
Unusable
ORB
AQoSA
A/V Streams
ConnectStream
ReserveBandwidth
Filter
Rehost
ORB
AQoSA
A/V Streams
Normal
Degraded
Unusable
FrameRate
VideoSourceProcess
MOBILE VIDEOSOURCE HOST
Video File
17 10/20/01 DOA 2001
Source Stream
Endpoint (Distributor)
Stream Interface Control ObjectStream
Adaptor
Sink Stream EndPoint(Display)
Stream Interface Control Object Stream
Adaptor
Video Stream
ORB
QuO measurement and control
Connecting and managing UAV video streams using the CORBA A/V Streaming Service
VideoDistributor
VIDEO DISTRIBUTION HOST
Video Stream Video Display
VIDEO DISPLAY HOST
VideoDisplayProxy
QuOQuO
VideoSourceProcess
MOBILE VIDEOSOURCE HOST
Video File
18 10/20/01 DOA 2001
Source Stream
Endpoint (distributor)
Stream Adaptor
Sink Stream EndPoint(Display)
Stream Adaptor
Video Stream
A/V Streaming Service
AQoSA API
RSVP-enabled routers
reservationrequest
requestreservation
accept/reject
eventnotifications
.. .. reservationsflows QoSupdates
QuO measurement and control
reservationnotification
Reserving network resources using the AQoSA API
VideoDistributor
VIDEO DISTRIBUTION HOST
QuO
Video Stream Video Display
VIDEO DISPLAY HOST
VideoDisplayProxy
QuO
VideoSourceProcess
MOBILE VIDEOSOURCE HOST
Video File
19 10/20/01 DOA 2001
Ability to Keep Video Current Using Middleware Adaptation
0
5
10
15
20
25
30
35
0 30 60 90 120
150
180
210
240
270
300
Without adaptation
With adaptationLoad
Adaptation
No adaptation
Mean lateness Max lateness
5.400 sec 32.696 sec
0.067 sec 1.930 sec
Execution time (secs)
Add
ition
al la
tenc
y (s
ecs)
•Video source process running on 3 200 MHz PCs (Linux), 128 MB memory, TCP/IP
•Additional 60% CPU load introduced on second stage (3 processes requesting 20% load each) starting at approx. 60 secs, removed at approx. 120 secs.
Under load
21 10/20/01 DOA 2001
Outline
Motivation & context
Overview of the QuO adaptive middleware framework
Using QuO in an embedded streaming video application
Conclusions
22 10/20/01 DOA 2001
Conclusions• QuO is adaptive middleware
– Enables the separation of QoS from functionality, e.g., throughput, timeliness, and network management in the streaming video application– Works with off-the-shelf software and standards, e.g., CORBA, A/V Streams, MPEG in the streaming video application
• QuO has been applied to Real-Time Embedded Systems (RES)– We illustrated one of these, the remote streaming video dissemination application– QuO adaptation is able to help maintain QoS requirements in the face of network and CPU load– The QuO frameworks eases the burden of programming adaptive behaviors, measurement, and control
• QuO is open-source– http://www.dist-systems.bbn.com/tech/QuO– E-mail [email protected] or [email protected] for more information