Date post: | 04-Jan-2016 |
Category: |
Documents |
Upload: | candace-dennis |
View: | 218 times |
Download: | 0 times |
1
Applying Adaptive Middleware, Modeling, and Real-Time CORBA Capabilities to Ensure End-to-
End QoS Capabilities of Video Streams
BBN TechnologiesCambridge, MA
http://www.dist-systems.bbn.com/tech/QuO/
Craig [email protected]
617-873-4725
2nd TAO WorkshopArlington, VA, U.S.A.
July 19, 2002
2
Unmanned Air Vehicle Scenario with ComplexEnd-to-End QoS Requirements
uav.navair.navy.mil/home.htm
3
We Are Trying to Solve QoS Problem at Multiple Levels
• Application adaptation, using QuO adaptive middleware• Software modeling of QoS requirements, using General
Modeling Environment (GME) • Resource management of the network, using RTCORBA
and Diffserv
4
Control Station Host 5
CORBA A/V Streaming Service
UAV Host 1
MPEGFile
Host 4
Wired
WirelessEthernet
VideoDistributorProcess 1
VideoDistributorProcess 2
VideoDistributorProcess 3
VideoSourceProcess
Filter
FilterContract
UAV Host 2
MPEGFile
VideoSourceProcess
Filter
FilterContract
UAV Host 3Video
SourceProcess
Scale/Compress
QualityContract
BandwidthManagement
BandwidthManagement
BandwidthManagement
ThroughputContracts
Displays
Control Station Host 6
ThroughputContracts
Displays
Control Station Host 7
ATRContract
ATRDisplay
High Level View of UAV Architecture using QuO Middleware (based on TAO)
… …
5
Quality Objects (QuO)
• What do you need to do QoS?– need a way to specify QoS requirements– need a way to measure system performance– need a way to take corrective action
• How does QuO help you develop QoS applications?– QuO Contracts– QuO Sysconds– QuO Delegate Callbacks
6
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
7
Application Level QoS Adaptation, Based on Recognition of a Target
ATR ATRQuoKernel
VideoQuality
Controller(MPEG)
Receiver(PPM)
VideoQuality
Controller(PPM)
Image Cropping
server
CameraDistributor
(PPM)
DVDview(PPM)
Distributor(MPEG)
Receiver(MPEG)
DVDview(MPEG)
Sender(MPEG)
(1) High grade, 10 fps, (2) Low grade, 2fps
(1) Low grade, ¼ size image filter, (2) High grade, remove filter
Filterqosket
Send frame Send alert
Video file
Change quality from (1) to (2)
Wireless
8
Software Modeling Enhancementsto Improve the Design of UAV OEP Software
• Problem: End-to-End behavior in current UAV OEP software is designed by hand which is very time-consuming and error prone
• Solution: use COTS modeling tools, and make improvements to these tools where there are deficiencies
9
Adaptive Quality Modeling Environment
• Software modeling tool from Vanderbilt University– Hierarchical dataflow
representationCompounds, primitives
– Parameters for component instrumentation and customization
• Middleware modeling– Services and system condition
objects
– Parameters for middleware instrumentation and customization
10
UAV Modeling using GME Interpreter Plugins
General ModelingEnvironment
IDL Interpreter QuO Interpreter
QuOContract
CORBA IDL filecontaining callbackInterface methods
Matlab Interpreter
Matlab Simulink simulation
New
• GME uses interpreter plugins to input/output data about the model
• Import CORBA IDL, export model to QuO or Matlab
11
Architecture of CORBA IDL Interpreter Plugin
• GME interpreters are based on Microsoft COM components
• CORBA IDL interpreter is a single Windows COM DLL which collocates IDL parser and Interface Repository
• IR is a database with a CORBA-based query API which can query the contents of an IDL file. After parsing IDL, we send interface information from IR to GME
• In future, we could create interfaces in the IR and export them to IDL files
TAO IDL compilerparser front-end
TAO CORBA InterfaceRepository
GME Interpreter API
IDL Interpreter DLL
12
Ongoing and Future Work to Apply Software Modeling Techniques to UAV OEP
• Ease-of-use enhancements to GME Interpreters to make it easier to design end-to-end QoS control strategies
• Make more use of COTS tools like Matlab Simulink to do online and offline analysis of QoS control strategies
• Better integration with TAO and CORBA Component Model
14
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
15
Enhanced RTCORBA with Diffserv Capability Preserving End-to-End Priorities
• Existing priority in RTCORBA used for OS-level task scheduling across distributed nodes
• Our enhancement to RTCORBA uses this priority to set Diffserv field in IP packets associated with a specific CORBA call
• Network treats packets differently based on value of Diffserv field; can be used as another mechanism for end-to-end QoS
Middle-tierServer
Client QNXpriority
= 16
LynxOSpriority = 128
Server Solarispriority = 136
ServiceContextpriority = 100
ServiceContextpriority = 100
Router
DiffservCodePoint
= EF
DiffservCodePoint
= EF
Router
16
Testing CORBA Calls with Diffserv Network Priorities
CORBA Request
CORBA Response
C++ Client(TAO)
C++ Server(TAO)
CORBA Request
CORBA Response
C++ Client(TAO)
Java Server(JDK 1.4)
CORBA Request
CORBA Response
C++ Client(TAO)
C++ Server(TAO)
1. Normal CORBA invocation
2. Diffserv Prioritized CORBA Invocation
3. Diffserv Prioritized CORBA Invocation against Java server
17
How can we apply Diffserv to solve End-to-End QoS Problem?
• Give different types of CORBA calls different network priorities
– Give command messages higher priority than data messages
• Give different clients different network priorities depending on the relative importance of the clients
Video display 1
Video display 2
Video display 3
Video display 4
Router
• Utilize scheduling tools like RapidRMA to combine network priorities and OS-scheduling priorities for end-to-end QoS
18
Distribution information
• Software available from our web site:
http://www.dist-systems.bbn.com/projects/AIRES/UAV/
• Help available from: [email protected]
• More information about QuO
http://quo.bbn.com