1 Ohjelmistoarkkitehtuuri Verkotettu multimedia Johdanto Selain-ohjelmistoarkkitehtuuri Hajautetut ohjelmistot Palvelimet Verkko Päätelaiteet Käyttöliittymä Middleware Tietoliikenne Verkotetulla multimedialla tarkoitetetaan multimedian sovelluksia ja palveluja, jotka on hajautettu verkkoon Esim. www-palvelut, digitaalinen televisio, WAP Petri Vuorimaa 1 Petri Vuorimaa 2 Multimedian vaikutukset Multimedia sisältää jatkuva-aikaisia mediaelementtejä, jotka on synkronoitu keskenään Media siirretään yleensä mediavirtoina (stream) Virrassa mediaelementin yksiköt (ääninäyte, videokuva ym). pysyvät järjestyksessä Mediavirrat voidaan synkronoida + Sisäinen synkronointi: isocronous + Mediavirtojen välinen synkronointi: syncronous Mediavirtojen puskurointi Mediavirtoja ei voi koskaan täydellisesti synkronoida Tiedonsiirron viive vaihtelee eli esiintyy huojuntaa Ihminen havaitsee vähäisenkin huojunnan Huojuntaa voidaan vähentää puskuroinnilla Puskurointia tarvitaan useassa eri vaiheessa Petri Vuorimaa 3 Petri Vuorimaa 4 Ohjelmointi Hajautettu multimediajärjestelmä voidaan toteuttaa kahdella eri tavalla: + asiakas / palvelin + hajautettu ohjelmisto Selain-ohjelmistoarkkitehtuuri on tyypillinen esimerkki asiakas/palvelin -arkkitehtuurista Hajautettu ohjelmisto tarkoittaa tyypillisesti olioohjelman hajauttamista verkkoon Selain-ohjelmistoarkkitehtuuri Internet ohjelmistot perustuvat asiakas/palvelin - arkkitehtuuriin Tyypillinen asiakasohjelma on www-selain Tyypillinen palvelin on www-palvelin Lisäksi on myös muita palvelimia (tietokanta, video on demand, videoneuvottelu jne.) Lisäksi tarvitaan apupalvelimia (proxyt, hakemistot jne.) Petri Vuorimaa 5 Petri Vuorimaa 6
2 WWW-arkkitehtuuri Realmedia Selain HTTP CGI/ Perl/ Java Tietokanta Ohjauslogiikka SQL RTSP WWWpalvelin Video Realmedia on tyypillinen esimerkki asiakas / palvelin -arkkihtehtuurista Järjestelmän avulla voi streamata eri medioita (ääni, video, grafiikka jne.) Järjestelmä koostuu tuotantotyökaluista, palvelimista, välipalvelimista ja asiaskasohjelmista Asiakasohjelman perusversiot ovat ilmaisia, mutta muut maksullisia tuotteita Petri Vuorimaa 7 Petri Vuorimaa 8 Realmedia-arkkitehtuuri Hajautetut ohjelmistot Oliopohjainen ohjelma voidaan hajauttaa usealle eri koneelle Olioiden pitää jotenkin löytää toisensa + Hakemistopalvelu Olioden metodikutsut ja -vastaukset pitää välittää oikealle koneelle + Object Request Broker (ORB) Kaupallisia ratkaisuja ovat esim. OMG Corba, Microsoft DCOM &.NET sekä Java RMI & Jini Petri Vuorimaa 9 Petri Vuorimaa 10 Corba-arkkitehtuuri Komponentit Dynamic invocation interface Client IDL stub ORB interface Dynamic skeleton interface ORB Core Object implementation IDL skeleton Object adapter Asiakas (client) ja hajautettu olio (object implementation) keskustelevat ORB:n välityksellä Rajapinnat on määritelty IDL-kielellä (Interface Desription Language) Normaalisti kutsutaan staattista tynkää (stub), joka välittää kutsun rungon (skelton) kautta oliolle Toteutus voi olla myös dynaaminen Oliot rekisteröityvät sovittimen (adapter) avulla Petri Vuorimaa 11 Petri Vuorimaa 12
3 Esimerkki: huulisynkronointi Oliot Elokuvassa puhe ja huulienliikkeet pitää synkronoida Toteutetaan sovellus hajautettuna sovelluksena Eri komponentit voidaan kuvat piirosmerkeillä + G. Blair & J-B Stefani, Open Distributed Processing and Multimedia, Addison-Wesley, 1998 virtarajapinta signaalirajapinta mediavirta signaali R reaktiivinen olio Petri Vuorimaa 13 Petri Vuorimaa 14 Videon ja audion synkrointi Ohjelmistoarkkitehtuurin toteutus videovirta videokamera videoikkuna R Ohjelmistoarkkitehtuurin toteutusta voidaan tarkastella myös järjestelmän komponenttitasolla Multimedialla on vaikutusta sekä palvelimiin, verkkoon että päätelaitteisiin Tehokas toteutus vaatii lisäominaisuuksia ja jopa em. komponenttien täydellistä uudelleen suunnittelua mikrofoni audiovirta kaiutin Petri Vuorimaa 15 Petri Vuorimaa 16 Palvelimet Palvelimet voidaan jakaa transaktio- (www, tietokanta) ja stream-palvelimiin (video) Transaktio-palvelimen tärkein ominaisuus on skaalautuvuus Tarvittaessa tehtävä voidaan jakaa useammalle palvelimelle (replikointi) Videopalvelimissa korostuu reaaliaikaisuus Käytännössä tämä tarkoittaa tehtävien skedulointia Petri Vuorimaa 17 Levyskedulointi Video-on-demand -palvelimen kovalevyjen käyttö tulee miettiä tarkkaan Tavallinen tiedostopalvelin pyrkii optimoimaan hakuaikaa ja tilan käyttöä + tällöin haut suoritetaan reiluus-periaatteella Videopalvelimen on pidettävä puskurit sopivan täynnä + reaaliaikaiset skedulointi-algoritmit + tiedostojen järjestys Petri Vuorimaa 18
4 Oracle Video Server Verkko Verkon pitää tukea multimedian siirtoa: + Quality of Service (QoS) + reaaliaikaiset mediavirrat + skaalautuvuus Mediavirtoja varten on varattava tietyt resurssit +ATM QoS + IP Intergrated Services + IP Differentiated Services Petri Vuorimaa 19 Petri Vuorimaa 20 Verkko (jatk.) Verkkoprotokollien on tuettava reaaliaikaisia mediavirtoja + esim. IP Real-Time Protocol (RTP), Real-Time Control Protocol (RTCP) ja Real-Time Streaming Protocol (RTSP) Lisäksi verkon on tuettavia useita yhtäaikaisia käyttäjiä + esim. IP Multicast Päätelaitteet Päätelaitteen suurin ongelma on rajalliset resurssit: + prosessoriaika, muisti ja tietoliikenneyhteydet Nykyiset päätelaitteiden käyttöjärjestelmät tukevat vuorovaikutteisia käyttöliittymiä Multimedian tuki on heikompi Reaaliaikaiset käyttöjärjestelmät sopivat paremmin multimedialle Petri Vuorimaa 21 Petri Vuorimaa 22 Mediavirran käsittelyvaiheet Pakettien vastaanotto Verkkoajurit IP/UDP -protokollat Reaaliaikaiset siirtoprotokollat Kodekki Audio, video ym. ajurit Toisto Käyttäjän vuorovaikutus Päätelaite myös seuraa käyttäjän toimenpiteitä + näppäimistö + hiiri + jne. Laitteet aiheuttavat keskeytyksiä Keskeytykset voivat helposti ruuhkautua verkkokeskeytysten ym. kanssa Petri Vuorimaa 23 Petri Vuorimaa 24
5 Ohjelmistoarkkitehtuuri Käyttöjärjestelmä Päätelaitteen ohjelmistoarkkitehtuuri voidaan toteuttaa monella eri tavalla + Käyttöjärjestelmä + ajurit + ikkunointi + Selain + Plug-In soittimet +Java +XML-selain Soittimet Ikkunointi Näyttöajurit Sovellus Kodekit Käyttöjärjestelmän ydin Mediaprotokollat IP-protokollat Verkkoajurit Näyttö Laitteisto Verkkokortti Petri Vuorimaa 25 Petri Vuorimaa 26 Selain Java Selain Java-tulkki JavaScript Tyylisivut HTML ActiveX PlugIns RealMedia VRML Sovellus JMF AWT IO NET Sovellusohjelmointirajapinnat Javatulkki Käyttöjärjestelmä Petri Vuorimaa 27 Käyttöjärjestelmä Petri Vuorimaa 28 Java Media Framework JMF mahdollistaa multimedian Java-sovelluksissa Reaaliaikaiset verkkoprotokollat Multipleksaus Kodekit Toistimet (renderer) Efektit Kaappaus Kontrolli Petri Vuorimaa 29 Multimedia Home Platform Yksi esimerkki Java-ympäristöistä on digitaalisen television Multimedia Home Platform (MHP) Ympäristö koostuu joukosta Java, JMF, TV, verkko, ym. ohjelmointirajapintoja (API) Sovelluksia kutsutaan nimellä Xlet Xlettejä lähetetään lähetysverkon kautta Data välitetään ns. data- ja objektikarusellin kautta Application Manager ohjaa sovelluksia Petri Vuorimaa 30
6 Application Manager Set-top box resources caching Properties Application manager AIT + code XletContext Object/Data carousel Properties Signal state changes Xlet Petri Vuorimaa 31 Käyttöjärjestelmät Nykyisissä ohjelmistoarkkitehtuureisssa käyttöjärjestelmällä on tärkeä rooli Suuri osa median käsittelystä tehdään käyttöjärjestelmäkutsuilla Sovellus toimii koordinaattorilla Datan kopionti sovelluksen ja käyttöjärjestelmän välillä on ongelma Käyttöjärjestelmä hallitsee resursseja huonosti Reaaliaikaiset käyttöjärjestelmät Pieni koko: ylimääräiset ominaisuudet on karsittu Keskeytysten käsittely: ruuhkautuminen estetty Reaaliaikainen skedulointi: suorituksen ajoitus Tehokas muistinhallinta: jaettu muistialue Nopea viestinvälitys: eri tasojen välinen kommunikointi on optimoitu Resurssien varaus: tehtävää ei oteta suoritettavaksi, jos sitä ei pystytä tekemään Petri Vuorimaa 35 Petri Vuorimaa 36
7 Microkernel Käyttöjärjestelmästä saadaan kompaktimpi karsimalla siitä kaikki turhat ominaisuudet + ikkunointi, hajautetut tiedostojärjestelmät ym. Yksi ratkaisu on ns. Microkernel + käyttöjärjestelmän ydin (kernel) on tehty mahdollisimman pieneksi ja reaaliaikaiseksi + muut ominaisuudet toteutetaan käyttäjäprosesseina + haluttu kokoonpano voidaan kasata eri moduleista Petri Vuorimaa 37 Sulautettu Linux Linux on kiinnostava vaihtoehto myös sulautetuissa päätelaitteissa Ylimääräiset ominaisuudet (esim. X-ikkunointi voidaan karsia pois) ja koko saadaan pieneksi Reaaliaikaisuuden toteuttaminen ytimeen (kernel) on erittäin vaikeaa, mutta ei aina välttämätöntä Esim. digiboksissa laitteisto vastaa videon ja audion käsittelyssä - vuorovaikutteisuus hoidetaan softalla Petri Vuorimaa 38 GO-MM -projekti Käyttöliittymä Kommunikaatioprotokollat Palvelut Dynaaminen Quality of Service Reaaliaikainen käyttöjärjestelmä Mobiilin multimedian ohjelmistoarkkitehtuuri Petri Vuorimaa 39 Tärkeimmät tulokset Käyttöjärjestelmä + Sulautettu Linux + Kaffe Java Virtual Machine Tietoliikenneprotokollat + Eri multimediaprotokollien integrointi Käyttöliittymät + X-Smiles XML-selain Multimediapalvelut Petri Vuorimaa 40 X-Smiles -selaimen historia X-Smiles XML-selaimen kehitys aloitettiin opiskelijaprojektina 1998 Kehitystyötä on jatkettu tutkimushankkeissa +GO + XML Devices Julkaistu avoimena koodina 2001 +www.x-smiles.org X-Smilesin ominaisuudet XSL-tyylisivut SMIL-multimedia SVG-grafiikka XForms-lomakkeet XHTML ja CSStyylisivut Käyttöliittymät eri päätelaitteille Petri Vuorimaa 41 Petri Vuorimaa 42
8 General GUI MLFC specific GUI User interface and interaction MLFCs source tree XSL FO MLFC MLFC MLFC Presentation Rendering SMIL MLFC Config Presentation SVG MLFC Presentation Rendering ECMAScript interpreter + extensions Rendering Browser core functionality XML Processing XML Broker ECMAScript Handling Event Broker General Functionality Browser Configuration DOM Builder XML Parser XSL Processor DOM Interface SAX Interface Käyttöliittymät Petri Vuorimaa 47