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) Gj.snittlig gjennomstrømning (Mbit/s) Akseptabel bitfeil rate Akseptabel pakke feil rate Audio 0.25 10 0.064 < 10-2 < 10-1 Video (TV kvalitet) 0.25 100 100 10-3 10-3 Komprimert video 0.25 100 2-10 10-9 -10-5 10-9 Data (filoverføing) 1-2 - 100 0 0 Sann-tids data 0.001-1 - < 10 0 0 Bilde 1-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 OS Ende-til-ende protokoller Ende-til-ende protokoller OS Nettverksgrensesnitt Nettverksgrensesnitt Nettverk
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 Common Facilities (CORBA Facilities) high level facilities for applications horizontal and vertical category Object Request Broker (ORB) Object Services (CORBA Services) naming (X.500), event, persistence, transactions, relationships, concurrency control,
Object Request Broker Client Object implementation Dynamic invoke Client stubs ORB interface Implement. Skeletons Object adapter ORB core 1 interface 1 interface/adaptor 1 interface/operation Proprietary interface Normal call interface 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 for a video service Implementation of receiving peer entity Compression MPEG Decomp. Protocol Function Protocol Mechanism Sending Module Receiving Module Error handling Instantiation Flow control Rate Control Abstract Concrete Transmission IIPv6 & RSVP
Da CaPo Configuration Application Application QoS Requirements MPEG FEC Flow Cntr. - check resources - check End-to-end available - modules install module graph communication - select support and negotiate optimal protocol configuration MPEG FEC Flow Cntr. Network
Da CaPo Configuration Application Application MPEG FEC Flow Cntr. - install module graph - exchange data MPEG FEC 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 Client Object Implementation Dynamic Invocation Client IDL Stubs Server IDL Stubs Object Adapter TCP IP Object Request Broker Core TCP IP
CORBA extension: OMG A/V Streams Flow Source Stream Adaptor Stream I.f. Ctrl Object Adaptor Ctrl & Mgnt Stream I.f. Ctrl Object Adaptor Flow Sink 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 IIOP Generic Message Protocol COOL Protocol QIOP COOL extensions Transport level TCP/IP Generic Transport Protocol Chorus IPC Da CaPo (v1) Da CaPo (v2) Flexible protocol framework Chorus OS
Lack in CORBA revisited MULTE-ORB v1 Flexible protocol QoS specification and negotiation Client MULTE-ORB v2 Efficient adapter and stubs Buffer management Object Implementation Dynamic Invocation Client IDL Stubs Server IDL Stubs Object Adapter TCP IP Object Request Broker Core 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 setqosparameter(q 1 ) object.method() object.method() setqosparameter(q 2 ) object.method() binding established
QoS Negotiation at the Message Layer Client GIOP Request with QoS parameters Server Client Server GIOP Request with QoS parameters NACK GIOP Reply (i) (ii)
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 IDL stub GIOP Transport GIOP IDL skeleton Object Layer Implement. setqospar. inv. method marshal QoS and method request connection with QoS 1 establish connection send message transport receive messsage unmarshal QoS and method 1 handle request marshal results send message transport receive messsage method call returns unmarshal results 1 The operation will be aborted if the requested QoS cannot be supported and an exception will be returned to the client
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