7WebRTC

Web Real-Time Communications (WebRTC) ist eine Sammlung von offenen Standards für Echtzeit-Kommunikation, die hauptsächlich von der WebRTC Wide Web Consortium (W3C) Arbeitsgruppe und der Real-Time Communication in Web-browsers (RTCWEB) Internet Engineering Task Force (IETF) Arbeitsgruppe.

Die W3C konzentriert ihre Arbeit mit WebRTC hauptsächlich auf die Browser Application Programming Interfaces (APIs), um mit den Audio- / Videoquellen zu interagieren. Die IETF hat die RTCweb-Gruppe gegründet, um sich auf die Inter-Browser-Schnittstelle und die Definition von (Signalisierungs-) Protokollen zu konzentrieren.

WebRTC [19] eröffnet Möglichkeiten für die Echtzeitkommunikation wie Audio- und Videoanrufe, Bildschirmfreigabe und Videokonferenzen in Webbrowsern, jedoch ohne zusätzliche Software (nur moderne Webbrowser sind erforderlich). Dies macht es für Webentwickler einfach, WebRTC-Funktionen nur unter Verwendung der Hypertext Markup LanguageVersion 5 (HTML5) und einer Vielzahl von JavaScript Application Programming Interfaces (API) zu implementieren.

Neben der Bereitstellung einer leistungsfähigen dezentralen Medien-Engine in Browsern, bietet WebRTC weitere Vorteile wie Open-Source-Code & APIs, kostenlose Audio- & Video-Codecs (adaptive, High Definition) und Netzwerkunterstützung eingebaut (z. B. Verschlüsselung, Netzwerk-Discovery).

Aufgrund seiner technischen Gestaltung ist WebRTC jedoch nicht auf die Verwendung in Browsern beschränkt. Es kann auch durch Apps und native Implementierungen genutzt werden, so dass fast jedes moderne angeschlossene Gerät - Computer, Tablets oder sogar Fernseher – als WebRTC-Peer arbeiten könnte und damit einen vollwertigen Kommunikationsgerät werden könnte. Diese Teilnehmer einer Kommunikation können als WebRTC-Peers oder kurz Peers bezeichnet werden, die auch als Synonym für das gesamte Kommunikationsgerät gesehen werden können. Darüber hinaus ist der revolutionärste Aspekt des WebRTC sein Kommunikationskonzept.

Im Gegensatz zu anderen Echtzeit-Kommunikationssystemen erfordert die Bereitstellung von Kommunikation mit WebRTC keine große Infrastruktur, die den Kommunikationsverkehr über die Peers verteilt.

Normalerweise gibt es zwei Kommunikationsmuster in WebRTC, das Grundmuster, genannt WebRTC Triangle und ein weiter fortgeschrittenes Muster, das WebRTC Trapezoid.

Im Fall eines Dreieckmusters (in Abb. 10 gezeigt) werden zunächst alle Peers bzw. Browser, die miteinander kommunizieren sollen, mit einem Webserver verbunden. Dieser Webserver stellt eine WebRTC-Webanwendung zur Verfügung, die oft als JavaScript-Datei implementiert ist und eine Reihe von APIs aufruft, die vom Webserver bereitgestellt werden. Zur Einrichtung der WebRTC-Sitzung werden diese API-Anfragen zur Einrichtung des Signalisierungskanals verwendet. Die Signalisierung im WebRTC ist nicht standardisiert und somit abhängig von der spezifischen WebRTC-Implementierung, zwischen den Peers über den Webserver. Der Transport von Benutzerdaten (wie Audio, Video oder andere) erfolgt über die PeerConnection, die direkt zwischen den beiden Peers aufgebaut wird.

image
Abb. 10 - WebRTC Dreieck

Abb. 11 zeigt das trapezförmige Kommunikationsmuster, das für die Kommunikation zwischen den Peers verwendet wird, die nicht mit demselben Webserver verbunden sind. In diesem Fall erfolgt die Kommunikation über die Webserver unter Verwendung eines standardisierten Signalisierungsprotokolls wie z.B. SIP. Die Nutzdatenübertragung über die PeerConnection bleibt jedoch unverändert und wird direkt zwischen den Peers durchgeführt.

image
Abb. 11 - WebRTC Trapezoid