7 WebRTC
7.1 Aplikácie

S využitím WebRTC môžu byť vytvorené rôzne aplikácie a použitie nie je obmedzené len na komunikačné účely. WebRTC nie je (iba/najmä) o volaní v rámci prehliadačov ale aj o tom, aby weboví vývojári mohli pristupovať k vstupným audio/video zariadeniam cez JavaScript a tiež, aby sa odstránil problém komunikácie medzi prehliadačmi pre obyčajných webových vývojárov.

Ako náhle je problém komunikácie medzi prehliadačmi vyriešený, WebRTC poskytuje dátový kanál pre dátové komunikácie v reálnom čase ale tiež dátový kanál na posielanie akýchkoľvek ďalších dát medzi jednotlivými stranami (partnermi).

Všetko toto väčšinou nevyžaduje pluginy, ale je prirodzene podporované v prehliadačoch (v súčasnosti Google Chrome, Mozilla Firefox, Opera, Microsoft Edge).

Aplikácie pre hlasovú komunikáciu a video chat v rámci prehliadačov

Najjednoduchšou aplikáciou WebRTC je audio/video komunikácia medzi prehliadačmi. Vstavané schopnosti WebRTC poskytujú prístup k mikrofónu (audio) a kamere (video). Používateľ si samozrejme môže vybrať zariadenie a udeliť mu právomoc.

Dôležité funkcie API pre tento prípad použitia sú:

Skôr než bol getUserMedia dostupný, prehliadače pracovali so statickými mediálnymi objektami (<img>, <video>, <audio>). Tieto objekty mohli byť zobrazené ale aj manipulovateľné (napr. identifikátor <img> je možné meniť pomocou atribútu width="400"). Rozhranie getUserMedia pridáva prístup k dynamickým zdrojom ako mikrofóny a kamery. Charakteristiky týchto zdrojov môže meniť ako odpoveď na požiadavky aplikácie. MediaConstraints sa používajú štandardným spôsobom na obmedzovanie prístupu k prostriedkom.

PeerConnection je technológia pre média, ktorá umožňuje dvom používateľom komunikovať priamo medzi dvomi prehliadačmi. Táto komunikácia je riadená cez signalizačný kanál, ktorý je poskytovaný nešpecifikovanými prostriedkami, ale vo všeobecnosti skriptom na webovej stránke, ktorá bola poskytnutá webovým serverom. Veľa webových sídiel už má možnosť vymieňať správy medzi webovým klientom a serverom (napr. cez webové sokety).

Príklady týchto služieb sú:

Zdieľanie súborov na báze P2P

Dátový kanál (RTCDataChannel) dovoľuje webovej aplikácii posielať a prijímať aplikačné dáta priamo medzi partnermi (peers).

Rozhranie dátového kanála reprezentuje obojsmerný dátový kanál medzi dvomi partnermi. Kým PeerConnection je kanál iba pre RTC, DataChannel môže prenášať akýkoľvek typ dát.

Príkladom tejto služby je sharefest.me.

Zdieľanie obrazovky

Rozhranie getUserMedia nielenže dokáže sprístupniť kameru/mikrofón ako zdroje médií, ale taktiež aj zdieľanú obrazovku. Z bezpečnostných dôvodov je na prístup k obrazovke potrebný zásuvný modul (plug-in). Tento modul ale neposkytuje zdieľanie obrazovky ako také (to je robené WebRTC časťou prehliadača), ale iba pristupuje k API prehliadača pre určité oblasti, ktoré sú explicitne povolené pre modul.

Väčšina služieb, ktoré ponúkajú audio/video komunikáciu tiež ponúkajú aj zdieľanie obrazovky.

Spoločná zdieľaná (elektronická) tabuľa

Okrem audio/video komunikácií a zdieľania obrazovky vytvorený dátový kanál môže byť použitý na prenos nielen súborov ale aj riadiacich informácií. Tieto riadiace informácie môžu byť použité na modifikáciu zobrazeného obsahu prehliadača.

Príkladom takejto aplikácie môže byť spoločná zdieľaná tabuľa. Posielaním vstupov z jednej tabule (editora) ku všetkým ďalším tabuliam v rámci rovnakej linky aplikácia prehliadača môže vystupovať ako zdieľanie spoločnej tabule. Webové sídlo podporené takouto WebRTC funkciou môže byť využité napr. v rámci elektronického vzdelávania.

Konferencie

Z pohľadu obyčajného prehliadača WebRTC je koncipovaný ako P2P komunikácia nevyžadujúca dodatočnú infraštruktúru.

Tento architektonický prístup ale sťažuje realizáciu relácií s viacerými tokmi pre napr. skupinovú video konferenciu alebo iné scenáre vysielania od N pre M účastníkov.

Toto je priestor, kde prichádzajú do úvahy stavebné bloky konferencie. Tieto stavebné bloky sa starajú o distribúciu mediálnej premávky ku skupine účastníkov. Táto distribúcia je možná tromi odlišnými spôsobmi, ktoré sa primárne líšia v ich požiadavkách na dodatočné servery.

Začnime s koncepciou P2P, ktorá má za následok prístup založený na mriežkovej topológii siete.

Najväčšou výhodou tohto prístupu je jeho jednoduchosť implementácie vývojármi, keďže nepožaduje žiadny druh distribučného bodu v strede siete (Obr. 12).

Na druhej strane táto jednoduchosť je na úkor veľkých požiadaviek na výkonnosť siete. Čím viac účastníkov navštevuje konferenciu, tým vyššia výkonnosť siete je vo všeobecnosti požadovaná.

image
Obr. 12 – Sieťový prístup na báze P2P

Na rozdiel od P2P prístupu zakomponovanie selektívnej preposielacej jednotky (SFU, selective forwarding unit) alebo jednotky na riadenie médií (MCU, media control unit) vyžaduje dodatočné servery (Obr. 13). SFU funguje rovnako ako smerovač alebo proxy, ktorý príjme mediálny tok od jedného účastníka a vysiela (distribuuje) ho všetkým zvyšným účastníkom.

Na jednej strane to znižuje nároky na výkonnosť siete v dôsledku odosielania iba jedného mediálneho toku na jedného účastníka.

Na druhej strane požadovaná výkonnosť siete je iba presunutá na SFU.

V prípade jednotky na riadenie médií (MCU) centrálna jednotka prijíma všetky mediálne toky od účastníkov podobne ako u SFU. Ale v druhom kroku je premávka spracovaná v MCU, aby vybudovala jeden samostatný tok pre každého účastníka. Nakoniec MCU vysiela iba jeden samostatný výsledný tok ku každému jednému účastníkovi, čo má za následok významné zlepšenie z pohľadu požadovanej výkonnosti siete. Navyše tento prístup tiež dovoľuje veľkú rôznorodosť prípadov aplikácií použitím odlišného spracovania rôznych typov médií v centrálnej jednotke.

image
Obr. 13 – Prístupy na báze SFU a MCU