Title: Distributed Object Applications
1Application of the QuO Quality-of-Service
Framework to a Distributed Video Application
Joe Loyall David Karr, Craig Rodrigues, Rick
Schantz BBN Technologies
Yamuna Krishnamurthy, Irfan Pyarali OOMWorks
Doug Schmidt UC, Irvine
http//www.dist-systems.bbn.com/tech/QuO
- Distributed Object Applications
- Rome, Italy
- September 18-20, 2001
2Outline
- Motivation context
- Overview of the QuO adaptive middleware framework
- Using QuO in an embedded streaming video
application - Conclusions
3Trends 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
4Challenges Facing Todays Wide-Area and Embedded
System Development
- Middleware support for WAN applications doesnt
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
5The 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.
6The 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
7Outline
- Motivation context
- Overview of the QuO adaptive middleware framework
- Using QuO in an embedded streaming video
application - Conclusions
8QuO Adds Specification, Measurement, and
Adaptation into the Distributed Object Model
Application Developer
CORBA DOC MODEL
Mechanism Developer
Application Developer
CLIENT
CLIENT
operation()
OBJ REF
out args return value
Delegate
Delegate
QuO Developer
SysCond
SysCond
SysCond
QUO/CORBA DOC MODEL
SysCond
IDL SKELETON
MECHANISM/PROPERTY MANAGER
IDL STUBS
OBJECT ADAPTER
Mechanism Developer
9Adaptation 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
10The 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
11QuO 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
Client Code
Qosket
Delegate
QuO Contract
Functional Behavior Adaptation
QoS Adaptive Behavior
SysCond
QoS Mechanisms
Object
12Outline
- Motivation context
- Overview of the QuO adaptive middleware framework
- Using QuO in an embedded streaming video
application - Conclusions
13Basic Streaming Video Scenario
- Video feed from remote source
- Video Distributor sends video to hosts on
embedded network
- Users hosts receive video and display it
- Users interact with remote video source in real
time
14Variations Adaptations in Streaming Video
Scenario
Operational requirements and tradeoffs
- Timeliness
- Maintain a current view of UAV imagery
- Importance
- Frames must be dropped in reverse order of
importance (B, then P)
- Fidelity
- Highest fidelity frames (i.e., I frames) must be
delivered
Dynamic Variations in Operating Conditions
15Architecture of the Embedded Video Streaming
Application
CORBA A/V Streaming Service AQoSA Resource
Reservation (IntServ)
CORBA A/V Streaming Service
Video Source Process
Video Distributor
Video Display Proxy
Video Display
VIDEO DISPLAY HOST 1
QuO
Video File
VIDEO DISTRIBUTION HOST
MOBILE VIDEO SOURCE HOST
- Reused Off the Shelf Software
- DVDView video player
- Common middleware services
- QuO adaptive middleware
- Real-time CORBA ORB (TAO)
- Naming Service
- A/V Streaming Service
- AQoSA
- Hand coded functionality
- video forwarding
- frame processing, filtering
- timestamping and sequencing
- connection, video transport
16Management and adaptation in UAV using the QuO
adaptive middleware
Video Distributor
Video Display Proxy
Video Source Process
Video Display
Video Stream
QuO
QuO
Video File
VIDEO DISTRIBUTION HOST
MOBILE VIDEO SOURCE HOST
VIDEO DISPLAY HOST
17Connecting and managing UAV video streams using
the CORBA A/V Streaming Service
Video Distributor
Video Display Proxy
Video Source Process
Video Display
Video Stream
QuO
QuO
Video File
VIDEO DISTRIBUTION HOST
MOBILE VIDEO SOURCE HOST
VIDEO DISPLAY HOST
18Reserving network resources using the AQoSA API
Video Distributor
Video Display Proxy
Video Source Process
Video Display
Video Stream
QuO
Video File
VIDEO DISTRIBUTION HOST
MOBILE VIDEO SOURCE HOST
VIDEO DISPLAY HOST
19Ability to Keep Video Current Using Middleware
Adaptation
35
- 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.
30
Without adaptation
25
20
Additional latency (secs)
15
Load
With adaptation
10
5
0
0
30
60
90
120
150
180
210
240
270
300
Execution time (secs)
Under load
20The Code to Measure, Control, and Adapt to
Changing Video QoS is Encapsulated in a Qosket
Video Distributor
send_frame()
BWReserveQosket
StreamEndpointDelegate
Normal
Filter?
reserve_ bandwidth()
Degraded
Timestamp
Unusable
Sequence no.
reservation status
request reservation
throughput
send_frame()
A/V Streaming Service
Video Display
AQoSA
RSVP
21Outline
- Motivation context
- Overview of the QuO adaptive middleware framework
- Using QuO in an embedded streaming video
application - Conclusions
22Conclusions
- 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 jloyall_at_bbn.com or quo-help_at_bbn.com for
more information