7WebRTC

WebRTC (Web Real-Time Communications) je soubor otevřených standardů pro komunikaci v reálném čase, vyvinutý zejména pracovními skupinami WebRTC konsorcia W3C (World Wide Web Consortium)RTCWEB (Real-Time Communication in Web-browsers) komunity IETF (Internet Engineering Task Force).

W3C soustřeďuje svoji práci ohledně WebRTC zejména na aplikační programová rozhraní (API – Application Programming Interfaces) prohlížeče, aby bylo možno mít přístup ke zdrojům videa a audia. IETF vytvořila skupinu RTCweb pro práci na rozhraní mezi prohlížeči a definování (signalizačních) protokolů.

WebRTC [19] otevírá možnosti pro komunikaci v reálném čase, jako např. audio a video hovory, sdílení obrazovek a videokonference v rámci webových prohlížečů, ale bez použití dodatečného software (jsou požadovány pouze moderní webové prohlížeče). Toto umožňuje webovým vývojářům snadnou implementaci funkcí WebRTC jen použitím HTML5 (Hypertext Markup Language version 5) a různých API jazyka JavaScript.

Kromě toho, že nabízí výkonný decentralizovaný mediální nástroj v rámci prohlížečů, má WebRTC i další výhody, jako otevřený kód a rozhraní API, volně šiřitelné audio a video kodeky (adaptivní, s vysokým rozlišením) a zabudovanou síťovou podporu (např. šifrování či prohledávání sítě).

Díky způsobu, jakým je navržen, však není WebRTC omezen pouze na použití v rámci prohlížečů. Může být použit prostřednictvím aplikací a nativních implementací, takže takřka každé moderní zařízení připojené k síti – počítače, tablety, nebo dokonce televizory – se může stát rovnocennou entitou WebRTC, a tedy plnohodnotným komunikačním zařízením. Tyto účastníky komunikace můžeme nazývat rovnocennými klienty (peer) WebRTC a chápat jako synonymum kompletního komunikačního zařízení. Nejrevolučnějším prvkem WebRTC je tedy jeho komunikační koncepce.

Na rozdíl od jiných systémů pro komunikaci v reálném čase nevyžaduje WebRTC rozsáhlou infrastrukturu, která by obstarávala komunikační provoz mezi jednotlivými stranami (peers).

Ve WebRTC se obvykle vyžívají dvě komunikační schémata – základní schéma, označované jako WebRTC trojúhelník, a vylepšené schéma, nazývané WebRTC lichoběžník.

V případě trojúhelníkového schématu (viz Obr. 10) se nejprve všechny navzájem komunikující strany (peers), respektive prohlížeče, připojí k webovému serveru. Tento server poskytuje webovou aplikaci WebRTC, často implementovanou jako kód v JavaScriptu, který volá sadu rozhraní API poskytovaných rovněž webovým serverem. Při spojování relace WebRTC se tyto požadavky na API používají k sestavování signalizačního kanálu. Signalizace pro WebRTC není standardizována, a proto závisí na konkrétní implementaci WebRTC. Přenos uživatelských dat (audio, video i jiných) se uskutečňuje prostřednictvím tzv. PeerConnection, tedy spojení, které je zřízeno přímo mezi jednotlivými rovnocennými partnery (peers).

image
Obr. 10 - WebRTC trojúhelník

Obr. 11 znázorňuje lichoběžníkové komunikační schéma, které se používá pro komunikaci mezi partnery, kteří nejsou připojení na stejný webový server. V tomto případě komunikace přes webové servery se děje pomocí signalizačního protokolu např. SIP. Ale přenos uživatelských dat přes relaci PeerConnection, zůstává nezměněný, a proto je realizován přímo mezi jednotlivými partnery (peers).

image
Obr. 11 - WebRTC lichoběžník