Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Mediavirtojen puskurointi. Multimedian vaikutukset. Selain-ohjelmistoarkkitehtuuri.

Samankaltaiset tiedostot
Verkotettu multimedia. Ohjelmistoarkkitehtuuri. Multimedian vaikutukset. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri. Mediavirtojen puskurointi

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri

Verkotettu multimedia. Ohjelmistoarkkitehtuuri. Mediavirtojen puskurointi. Multimedian vaikutukset. Selain-ohjelmistoarkkitehtuuri.

Ohjelmistoarkkitehtuuri

Verkotettu multimedia. Ohjelmistoarkkitehtuurin. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selainohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuurin

Multimediajärjestelmät

Mediakonvergenssi. Multimediajärjestelmät. Päätelaitteet. Palvelujen jakelu. Päätelaitteet. Multimediatietokoneet

Multimediajärjestelmät

T Multimediatekniikka

Sovellusarkkitehtuurit

Integrointi. Ohjelmistotekniikka kevät 2003

Multicast. Johdanto Ryhmien hallinta Reititys Reaaliaikaiset siirto- ja hallintaprotokollat Resurssien varaus Sessioiden hallinta

!?)&/&8-"1)#)7#-2-> ! 2-77""8"'+'0%/+-1#""8"'+'0%2/&-1#""8"'+'0%#)&##-8- !?)&/&8-"1)#)17+'%#-7&> ! 1$4##;*""##4($0%7&8+**)70%2-*8+*)0%#&"'+'%1$4##$6$

in condition monitoring

Multimediajärjestelmät. Mediakonvergenssi. Palvelujen jakelu. Päätelaitteet. Multimediatietokoneet. Päätelaitteet

Multimediajärjestelmät. Johdanto Päätelaitteet Verkkoteknologiat Palvelut Yhteenveto

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Johdanto. Multicast. Unicast. Broadcast. Protokollat. Multicast

Multicast. Johdanto Ryhmien hallinta Reititys Reaaliaikaiset siirto- ja hallintaprotokollat Resurssien varaus Sessioiden hallinta MBone

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

Tietojärjestelmäarkkitehtuurit

Hajautettujen järjestelmien rakentaminen - Jini. Ohjelmistotuotantovälineet-seminaarin esitelmä

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Multicast. Johdanto Ryhmien hallinta Reititys Reaaliaikaiset siirto- ja hallintaprotokollat Resurssien varaus Sessioiden hallinta

SAP. Lasse Metso

7. Palvelun laatu (QoS) Internetissä

7. Palvelun laatu (QoS) Internetissä

Videoneuvottelu. Johdanto. Järjestelmät. Telepresensce. Laitteisto. Ryhmäneuvottelut

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

HOJ J2EE & EJB & SOAP &...

Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla

HSMT J2EE & EJB & SOAP &...

MHP sovellusten synkronoituminen videokuvaan

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Järjestelmäarkkitehtuuri (TK081702)

Juha Peltomäki JAMK/Teknologia

Johdanto. Videoneuvottelu. Järjestelmät. Laitteisto. Monipisteneuvottelut. Ryhmäneuvottelut


IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

Johdanto. Mitä on multimedia Multimediajärjestelmät Palvelun laatu Synkronointi / orkestrointi Standardit Sovellukset Konvergenssi Arvoketju

Kaikki analogiset järjestelmät digitaalisiksi ja verkkokäyttöisiksi - jo tänään Kustannustekkuutta ja joustavuutta työskentelyyn

MHP sovellusten synkronoituminen videokuvaan

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

Johdanto. Agenda. Tuotantoprosessi. Historiallinen kehitys. Konsepti. Tuotantoprosessin vaiheet

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

TURVALLISEN TEKNIIKAN SEMINAARI Laitteiden etähallinta tietoverkkojen välityksellä Jani Järvinen, tuotepäällikkö

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

S Teletekniikan perusteet

Suunnitteluvaihe prosessissa

ZENworks Application Virtualization 11

HELIA 1 (19) Outi Virkki Käyttöliittymät ja ohjelman suunnittelu

Osittavat arkkitehtuurityylit. Palveluihin perustuvat arkkitehtuurityylit. Erikoisarkkitehtuurityylit

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Ohjelmistoarkkitehtuurit

Käyttöjärjestelmät: prosessit

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

OSI ja Protokollapino

Pertti Pennanen DOKUMENTTI 1 (5) EDUPOLI ICTPro

Siirtoformaatit. Johdanto Sovellusalueet Vaatimukset Raita- ja oliomalli Reaaliaikainen tiedonsiirto Erilaiset siirtoformaatit Vertailu

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

XML johdanto, uusimmat standardit ja kehitys

KODAK EIM & RIM VIParchive Ratkaisut

Videoneuvottelu. Johdanto Standardit Tuotteet Internet-puhelut CTI (Computer Telephony Integration) Petri Vuorimaa 1

ETÄTERMINAALIYHTEYS SELAIMELLA

Mitä on multimedia? Johdanto. Vuorovaikutus. Monta mediaa. Hypermedia. Aika

Tekijä / Aihe 1

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Uutuudet. Tosiaikapalvelut Liikkuvuus. Sanna Liimatainen T Tietokoneverkot

Ohjelma-ajanvälitys komponentti

ADDING MULTIMEDIA RESOURCE FUNCTION PROCESSOR FUNCTIONALITY TO MOBILE MEDIA GATEWAY. Teemu Hares

Tikon Ostolaskujenkäsittely versio SP1

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Telkkari tulee kännykkään. PacketVideo Finland Jarno Kallio

Teemu Kerola Orientointi Syksy 2018

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Käyttöliittymien uusi sukupolvi Logicalla Rondo-tuotteessa

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

Tällä kerralla esitellään. Uutuudet. Reaaliaikainen tiedonsiirto. Äänen ja videon siirto. Session Initiation Protocol (SIP) IP-puhelin

ISACA Finland OWASP The OWASP Foundation. Timo Meriläinen Antti Laulajainen.

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Toiminnallinen määrittely. XLet esimerkkisovellus

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Xlet

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Taustaa. CGI-ohjelmointi

Viestinvälitysarkkitehtuurit

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Aurinkoenergiajärjestelmien etäseurantajärjestelmä

Ongelma(t): Jotta tietokonetta voitaisiin käyttää monipuolisesti ja mahdollisimman yksinkertaisesti kaikkiin sille soveltuviin käyttötarkoituksiin,

Directory Information Tree

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Paikkatiedon tulevaisuus

Laiteriippumaton UI Ajaxilla ja Javalla

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

Transkriptio:

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