7 WebRTC
7.1 Aplikace

WebRTC [20] je možno využít pro nejrůznější aplikace, které zdaleka nejsou omezeny jen na komunikační účely. WebRTC (jen/zvláště) záležitostí volání z prohlížečů, ale i toho, aby weboví vývojáři mohli přistupovat ke vstupním audio/video zařízením přes JavaScript a aby se běžní weboví vývojáři nemuseli zabývat problémy týkajícími se komunikace mezi prohlížeči.

Když je tedy problém komunikace mezi prohlížeči vyřešen, poskytuje WebRTC jak datový kanál pro uživatelskou komunikaci v reálném čase, tak datový kanál pro předávání jakýchkoliv dalších dat mezi jednotlivými stranami (peers).

K tomu obvykle nejsou vyžadovány zásuvné (plug-in) moduly – vše potřebné je nativně podporováno v prohlížečích (dnes jde o Google Chrome, Mozilla Firefox, Opera, Microsoft Edge).

Aplikace pro hovorovou komunikaci a video chat v rámci prohlížečů

Nejednoduší aplikací WebRTC je audio/video komunikace mezi prohlížeči. Zabudované schopnosti WebRTC podporují přístup k mikrofonu (audio) a kameře (video). Uživatel si samozřejmě může vybrat konkrétní zařízení a nastavit příslušná oprávnění.

V daném případě jsou důležité následující funkce API:

V době, kdy funkce getUserMedia ještě neexistovala, byly prohlížeče schopny pracovat se statickými mediálními objekty (<img>, <video>, <audio>). Tyto objekty mohly být nejen zobrazovány, ale též určitým způsobem zpracovávány (např. identifikátoru <img> může být přiřazeno měřítko pomocí atributu width="400"). Rozhraní getUserMedia přidává přístup k dynamickým zdrojům, jako jsou mikrofony a kamery. Charakteristiky těchto zdrojů se mohou měnit podle požadavků konkrétní aplikace. MediaConstraints se používají standardním způsobem pro omezování přístupu k prostředkům.

PeerConnection je technologie pro média, která umožňuje dvěma uživatelům přímou komunikaci mezi prohlížeči. Tato komunikace je řízena prostřednictvím signalizačního kanálu – ten je zajišťován nespecifikovanými prostředky, ale obecně se jedná o skript v rámci webové stránky na webovém serveru. Mnoho webů již disponuje možností vyměňovat zprávy mezi webovým klientem a serverem (např. přes webové sokety).

Příklady těchto služeb jsou:

Sdílení souborů na bázi P2P

Datový kanál RTCDataChannel umožňuje webové aplikaci odesílat a přijímat obecná aplikační data přímo mezi rovnocennými entitami (peer-to-peer).

Rozhraní datového kanálu představuje obousměrný datový okruh mezi dvěma partnery. Zatímco PeerConnection je kanál jen pro RTC, DataChannel může přenášet data libovolného typu.

Příkladem této služby je sharefest.me.

Sdílení obrazovky

API Rozhraní getUserMedia dokáže zpřístupnit jako zdroje médií nejen kameru či mikrofon, ale i sdílenou obrazovku. Z bezpečnostních důvodů je pro přístup k obrazovce vyžadován zásuvný modul (plug-in). Tento modul ale neposkytuje sdílení obrazovky jako takové (toto obstarává WebRTC jako součást prohlížeče), ale jen přístup k API prohlížeče, a to jen pro určité domény, které jsou prostřednictvím modulu explicitně povoleny.

Většina služeb, které využívají audio/video komunikaci, nabízí též sdílení obrazovky.

Sdílená (elektronická) tabule

Kromě audio/video komunikace a sdílení obrazovky může být vytvořený datový kanál použit nejen pro přenos souborů, ale i řídicích informací. Tyto řídicí informace mohou být využity k modifikaci obsahu zobrazeného prohlížečem.

Příkladem aplikace tohoto typu může být sdílená tabule pro společnou práci. Díky posílání vstupů z jedné tabule („editor“) všem dalším tabulím pod stejným odkazem („diváci“) může prohlížeč fungovat jako sdílená tabule. Takovouto webovou stránku s podporou komunikačních funkcí WebRTC lze využít například pro elektronické vzdělávání.

Konference

WebRTC je odvozen z koncepce založené čistě na prohlížeči jako systém komunikace P2P, který nevyžaduje žádnou přídavnou infrastrukturu.

S takovouto architekturou je však obtížné uskutečňovat relace s více toky, například skupinovou videokonferenci nebo podobné případy vysílání „od N pro M“ účastníků.

V této chvíli tedy do hry vstupuje konferenční relace. Tento prvek se stará o distribuci dat nesoucích multimediální (audiovizuální) obsah ke skupině komunikujících entit (P2P). Tato distribuce může mít tři různé podoby, které se liší v požadavcích na další servery.

Začněme s koncepcí P2P, která vede k pojetí sítě jako úplné mřížové struktury.

Největší výhodou tohoto přístupu je jednoduchost implementace, jelikož nevyžaduje žádný distribučního bod ve středu sítě (Obr. 12).

Na druhé straně je tato jednoduchost vykoupena vysokými nároky na výkonnost sítě. Čím více účastníků se připojí do konference, tím vyšší tyto nároky obecně budou.

image
Obr. 12 – Síťový přístup na bázi P2P

Na rozdíl od přístupu P2P vyžaduje začlenění selektivní přeposílací jednotky (SFU Selective Forwarding Unit) nebo jednotky řízení médií (MCU – Media Control Unit) dodatečné servery (Obr. 13). SFU funguje stejně jako směrovač nebo proxy – vysílá (distribuuje) každý mediální tok, který přijme od jednoho účastníka, ke všem ostatním účastníkům.

To na jedné straně snižuje nároky na výkonnost sítě, jelikož ke každému účastníkovi je odesílán pouze jeden mediální tok.

Na druhé straně jsou nároky týkající se výkonnosti sítě pouze přesunuty na SFU.

Pokud jde o jednotku řízení médií (MCU), centrální jednotka přijímá všechny mediální toky od účastníků, podobně jako SFU; avšak ve druhém kroku je provoz zpracováván v MCU, aby byl vytvořen jeden samostatný tok pro každého účastníka. Nakonec MCU vysílá pouze jeden samostatný výsledný tok ke každému účastníkovi, což vede k významnému zlepšení z pohledu požadované výkonnosti sítě. Navíc tento přístup umožňuje velkou různorodost možných aplikací díky použití různých typů zpracování médií v centrální jednotce.

image
Obr. 13 – Přístupy na bázi SFU a MCU