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