Fleksibel støtte for tjenestekvalitet i mellomvare Tom Kristensen

advertisement
Fleksibel støtte for
tjenestekvalitet i mellomvare
Tom Kristensen
Universitetet i Oslo, Institutt for Informatikk
Universitetsstudiene på Kjeller
tomkri@unik.no
http://www.unik.no/~tomkri
Oversikt
•
•
•
•
•
•
Multimedia
Tjenestekvalitet
Distribuerte systemer
Mellomvare
Kommunikasjons-protokoller
Vår tilnærming og første prototype
Hva er multimedia?
• Digital multimedia
– Datamaskin-kontrollert integrasjon av tekst, grafikk,
stillbilder, bevegelige bilder, animasjon, lyd og etthvert
annet medium
– Alle datatypene over representeres, lagres, overføres,
og prosesseres digitalt.
• Kontinuerlig vs diskret media
– En kontinuerlig media type har en implisitt tidsmessig
dimensjon, mens en diskret type har det ikke.
Utfording fra multimedia til mellomvare
• Støtte for multimedia
– programmeringsmodell
– systemstøtte for kontinuerlige media
• strømmer (enkle og sammensatte)
• QoS forvaltning (management)
– statisk og dynamisk
• Synkronisering i sann tid
– intra- og inter-synkronisering
• gruppekommunikasjon
– programmeringsmodel
– QoS forvaltning av grupper
• gruppemedlemmer med ulike QoS krav
• Krav
Støtte for multimedia:
Systemstøtte
– Kontinuerlige media krever en forpliktelse til å yte et
gitt nivå av tjeneste
• f.eks. 25 rammer per sekund for video
– Denne forpliktelsen må vare i hele interaksjonens
levetid
• Analyse
– Eksisterende mellomvare kan ikke tilfredstille de
ønskede sanntidskrav fra multimedia
– Eksisterende mellomvaresystemer gir ingen garantier
Tjenestekvalitet og multimedia
QoS
Max
forsinkelse (s)
Max
jitter
(ms)
Audio
0.25
10
Video (TV kvalitet)
0.25
Komprimert video
0.25
Data (filoverføing)
1
Sann-tids data
Bilde
0.001 - 1
1
Akseptabel
bitfeil
rate
Akseptabel
pakke
feil rate
0.064
< 10-2
< 10-1
100
100
10-3
10-3
100
2 - 10
-
Gj.snittlig
gjennomstrømning
(Mbit/s)
10-9-10-5 10-9
2 - 100
0
0
-
< 10
0
0
-
2 - 10
10-4
10-9
Oppgaver i QoS forvaltning
– QoS spesifikasjon
– QoS parameter oversetting og distribusjon
– QoS forhandling
• adgangskontroll/reservering
– QoS monitorering
– QoS reforhandling/ressurs adaptering
– ressurs deallokering
Distribuerte multimediasystemer
• Ende-til-ende QoS-støtte
MMI
MMI
Applikasjon
Applikasjon
Ende-til-ende
protokoller
Ende-til-ende
protokoller
Nettverksgrensesnitt
Nettverksgrensesnitt
OS
Nettverk
OS
Programmeringsabstraksjoner
• Maskinvare og nettverk
– billigere, raskere, mindre
• Distribuert programvare
– dyrere å utvikle/vedlikeholde, treigere, større
• Må redusere kompleksitet for utviklere
– heterogenitet, portabilitet, lavnivå abstraksjoner
• Økt gjenbruk
– objekter Å komponenter
• Objektorientert mellomvare
– distribuerte objekter
CORBA-arkitekturen
Developed by
vendors,e.g.,
spreadsheets,
CAD tools, etc.
Application
Objects
high level facilities
for applications
horizontal and
Common Facilities vertical category
(CORBA Facilities)
Object Request Broker (ORB)
Object Services
(CORBA Services)
naming (X.500),
event, persistence,
transactions,
relationships,
concurrency control,
…
Object Request Broker
Object
implementation
Client
Dynamic
invoke
Client
stubs
ORB
interface
Implement.
Skeletons
Object
adapter
ORB core
1 interface
Proprietary interface
1 interface/adaptor
Normal call interface
1 interface/operation
Upcall interface
Da CaPo - Dynamic
Configuration of Protocols
• General goal: flexible protocol support for
multimedia applications
– Quality-of-Service (QoS)
– functional behaviour
• Principles:
– decomposition of complex protocols into finegranular micro-protocols
– selection of optimal protocol configuration
– run-time configuration & re-configuration
– implementing open and explicit bindings
Protocol Functions
Function
De-/Encryption
Segmentation/Reassembly
Mechanisms
DES SW, DES HW, PGP, …
Segmentation/Reassembly, …
Packet Corruption Detection CRC16, Parity bit, …
Error Control
Selective Retransmission,
Idle Repeat Request,
FEC, …
Flow Control
Non-traditional
Rate Based, Credit Based, …
A/V Compression, Filters, Media
Conversion, …
Da CaPo Abstractions
Protocol graph
Implementation of
for a video service receiving peer entity
Compression
MPEG
Decomp.
Instantiation
Protocol
Function
Protocol
Mechanism
Sending Receiving
Module Module
Error
handling
Flow
control
Abstract
Rate
Control
Concrete
Transmission
IIPv6 &
RSVP
Da CaPo Configuration
Application
Application
QoS Requirements
MPEG
FEC
Flow Cntr.
- check resources
- check
available
End-to-end
- modules
install module graph
communication
- select support
and negotiate
optimal protocol
configuration
Network
MPEG
FEC
Flow Cntr.
Da CaPo Configuration
Application
Application
MPEG
MPEG
FEC
- install module graph
- exchange data
FEC
Flow Cntr.
Flow Cntr.
Network
Enabling Flexible QoS Support
in the
Object Request Broker COOL
Tom Kristensen and Thomas Plagemann
University of Oslo, Center for Technology at Kjeller (UniK)
{tomkri, plageman}@unik.no
International Workshop on Distributed Real-Time Systems (IWDRS 2000)
at 20th International Conference on Distributed Computing Systems (ICDCS’00)
Outline
• Role of middleware in general
• How CORBA fails to support QoS
• MULTE-ORB
– approach
– QoS specification and negotiation
– flexible protocol framework
– status and further work
• Conclusion
The Problems to Solve by the Middleware
Heterogeneity of user requirements:
→ user preferences, QoS, cost
→ user needs, blind students don’t
need video but good audio
Play-out
Multimedia Middleware
Heterogeneity of equipment and network:
→ network access, LAN or modem?
→ Intel Pentium III or 486 based PC?
→ which video formats are supported?
Lack of Existing CORBA Implementations
• Known problems
– streams
– QoS & realtime: CPU scheduling, FIFO queues, TCP/IP
– performance optimizations: de-multiplexing, de-marshalling
Object
Implementation
Client
Dynamic
Invocation
Client
IDL
Stubs
TCP
IP
Server
IDL Stubs
Object Request
Broker Core
Object
Adapter
TCP
IP
CORBA extension: OMG A/V Streams
Flow
Source
Stream
I.f. Ctrl
Stream
Adaptor
Object
Adaptor
Ctrl &
Mgnt
Stream
I.f. Ctrl
Flow
Sink
Object
Adaptor
Stream
Adaptor
ORB Core
•
•
•
•
•
Control and Management of Audio/Visual Streams
QoS specification
ORB for management
Data on separate connections
SFP (Simple Flow Protocol) over several transport
protocols
CORBA extension: Real-Time CORBA
• CORBA extension
–
–
–
–
end to end priority propagation (fixed priority)
thread pools (different models)
explicit binding
protocol policies and configuration
• protocol and implementation specific
– scheduling service
• Requirements on other system components
– OS, communication, applications, ...
• Implementations
– TAO, ORBexpress, LM HardPack
MULTE-ORB: General Principles
• General goal: flexible protocol support for
multimedia applications
– decomposition of complex protocols into finegranular micro-protocols
– Quality-of-Service (QoS)
– functional behaviour
• Principles:
– run-time configuration & re-configuration
– selection of optimal protocol configuration
– implementing open and explicit bindings
• Prototype integrates Da CaPo and COOL
MULTE-ORB Architecture
• Based on commercial CORBA
implementation COOL Enables objects to specify QoS
and performs QoS negotiation
Object
and
message
level
Generic Message Protocol
IIOP
IIOP
COOL
Protocol
QIOP
Generic Transport Protocol
Transport
level
TCP/IP
TCP/IP
Chorus
IPC
COOL
extensions
Da CaPo
(v1)
Chorus OS
Da CaPo
(v2)
Flexible protocol
framework
Lack in CORBA revisited
• MULTE-ORB v2
• MULTE-ORB v1
– Flexible protocol
– QoS specification and
negotiation
– Efficient adapter and stubs
– Buffer management
Object
Implementation
Client
Dynamic
Invocation
Client
IDL
Stubs
TCP
IP
Server
IDL Stubs
Object Request
Broker Core
Object
Adapter
TCP
IP
QoS Specification at
Object and Message Layer - I
• QoS per object:
– to coarse solution
• QoS per binding:
– changes in QoS requirements require renegotiation of
binding
• QoS per method invocation:
– each method invocation results in a request and reply
message
– messages are transported over one transport connection
• QoS per parameter:
– most flexible and most complex approach
– multiplexing different parameters with different QoS over one
transport connection? or using multiple connections?
• QoS per binding and per method invocation
QoS Specification at
Object and Message Layer - II
• QoS per binding and per method invocation
– setQoSParameter(struct QoSparameter **qp)
to inform stub about QoS requirements
object.method()
object.method()
setQoSParameter(Q1)
binding established
object.method()
setQoSParameter(Q2)
QoS Negotiation at the
Message Layer
C lie n t
G IO P R e qu e s t
w ith Q oS pa ra m e te rs
NAC K
(i)
S e r ve r
C lie n t
G IO P R e q u e s t
with Q o S p a r a m e te r s
G IO P R e ply
(ii)
S e r ve r
Extensions in GIOP
• Differentiating GIOP and QIOP:
– use of version field in GIOP header:
standard GIOP: major 1, minor 0
QIOP: major 9, minor 1
• Integrating QoS parameters in QIOP
messages
– extended header of request message QoS
parameter spec.
– IDL compiler has been extended to marshal
method invocation and QoS parameter into the
extended request message
Client
setQoSPar.
inv. method
IDL stub
marshal QoS
and method
GIOP
request
connection
with QoS
send
message
Transport
Layer
GIOP
establish
connection
transport
transport
method call
returns
Object
Implement.
1
receive
messsage
unmarshal
results
IDL skeleton
send
message
unmarshal QoS
and method
marshal results
receive
messsage
The operation will be aborted if the requested QoS cannot be supported
1 and an exception will be returned to the client
1
handle
request
Related research
• Lancaster University
– Ensemble + COOL
• Focus on group communication
• Coarse grained modules
• No dynamic QoS specification and negotiation
• Electra ORB
– Ensemble based
• Focus on security and reliability
• Operation invocation
Status
• Implemented
– QIOP
– Da CaPo integration v1
• Ongoing
– Perform measurements and evaluation
– Da CaPo integration v2
Further work
• Multimedia stream adapter
• Open signalling protocol
– build signalling protocol from modules
– connection management
– binding protocol
– QoS and configuration negotiation
– resource reservation
Summary and conclusion
• Presented
– today’s middleware fails
– solutions to the problem
– our approach
• Basis in CORBA implementation
– conforms to standard
• Able to support QoS
–
–
–
–
specify dynamic QoS
flexible protocol in ORB core
minor changes to extend the ORB
backwards compatible
Download