IN DE SPOTLIGHT
Business • Whitepaper
Web Real-Time Communication Communiceren zonder beperkingen
1. Inleiding Bellen, video, chatten en bestanden uitwisselen zonder eerst speciale software of plug-ins te installeren, maar gewoon via de browser die standaard aanwezig is op je tablet, smartphone of laptop. Dat is de belofte van ‘Web Real-Time Communication’ (WebRTC), een opkomende standaard die softwareontwikkelaars in staat stelt om applicaties te ontwikkelen voor realtime communicatie via het web. WebRTC heeft alles in zich om de communicatiemarkt op zijn kop te zetten. Met WebRTC zit communicatie niet meer ‘opgesloten’ in de apparaten
of de platformen die worden geleverd door een handjevol leveranciers van communicatie-apparatuur. Met WebRCT is ieder willekeurig apparaat met een webbrowser geschikt als ‘telefoon’ of videoconferencingsysteem, en zijn bedrijven vrij om nieuwe vormen van communicatie te integreren in hun eigen IT-systemen en websites. In deze whitepaper laat SPING zien wat WebRTC is, welke toepassingen er mogelijk zijn met WebRTC, en welke tools ontwikkelaars tot hun beschikking hebben bij het realiseren van die toepassingen.
2. Wat is WebRTC? Real-Time Communicatie (RTC) via de webbrowser is vaak een moeizame exercitie. Om via een browsersomgeving te kunnen communiceren, moet de gebruiker eerst een plug-in zoals Adobe Flash of een specifieke browserextensie downloaden en installeren. Alleen dit downloaden en installeren kan al een complex, tijdrovend en foutgevoelig proces zijn. En dan is het nog maar de vraag of interoperabiliteitsproblemen een goede verbinding niet in de weg staan. Toepassingen zoals Skype en Apple FaceTime hebben weer de beperking dat er alleen communicatie mogelijk is met de personen in de contactlijst en dat aan beide kanten van de verbinding dezelfde applicatie aanwezig moet zijn.
Veel van deze problemen moeten tot het verleden behoren met WebRTC, een standaard die momenteel wordt ontworpen door het World Wide Web Consortium (W3C) en de Internet Engineering Task Force (IETF). Deze opkomende standaard
|2
IN DE SPOTLIGHT
Business • Whitepaper
stelt softwareontwikkelaars in staat om – met behulp van eenvoudige JavaScript API’s en HTML5 – webapplicaties voor spraak- en videogesprekken en p2p-bestandsuitwisseling te bouwen die direct in de browser zijn te gebruiken. Zo moet het mogelijk zijn om zonder de installatie van plug-ins of software van derden een videochat op te zetten tussen browsers. WebRTC moet de manier waarop we online communiceren drastisch veranderen. “WebRTC vormt het nieuw front in de lange oorlog voor een open web zonder beperkingen1”, zo is dan ook de stellige overtuiging van JavaScript-uitvinder Brendan Eich. Of zoals Phil Edholm, een blogger en consultant met een jarenlange ervaring in de communicatie-industrie, het enkele jaren geleden al verwoordde: “Samen met HTML5 kan WebRTC zorgen voor een transformatie van realtime communicatie vergelijkbaar met wat de originele browser heeft gedaan voor informatie.2”
Geschiedenis WebRTC WebRTC vindt zijn oorsprong bij het engineeringteam van Google Hangouts. Tijdens de ontwikkeling van de Google Video Chat-plug-in ontstond het idee om de video- en spraaktechnologie direct in de webbrowser te integreren. De videocodec om dit mogelijk te maken, kreeg Google in 2010 in bezit door de overname van On2, de eigenaar van de VP8-videocodec. Iets later nam Google het Zweedse GIPS (Global IP Solutions) over. De GIPS-technologie vormt de basis van de spraakgenerator in de Google Chrome-uitvoering van WebRTC. In 2011 stelde Google de technologieën als open source beschikbaar. In mei 2011 bouwde Ericsson de eerste implementatie van WebRTC 3.
3. Architectuur WebRTC Een groot voordeel van WebRTC is dat de communicatie niet meer afhankelijk is van clientsoftware of plug-ins of van een leverancier of communicatieplatform. Ieder apparaat met een browser – of dat nu een smartphone, tablet of zelfs een smart-tv is – kan deelnemen aan de realtime communicatie. En zoals we verderop nog zullen zien, is zelfs de aanwezigheid van een WebRTC-geschikte webbrowser geen strikte vereiste; de mogelijkheden om te communiceren via WebRTC kunnen ook zijn geïntegreerd in bijvoorbeeld een bedrijfsapplicatie of mobiele app.
De enige voorwaarde voor het succesvol opzetten van een verbinding is dat alle ‘peers’ die aan een gesprek deelnemen een fundamentele set aan Real-time Transport Protocol (RTP)- en Application Programming Interface (API)-standaarden ondersteunen. Binnen de browser gaat een groot deel van de complexiteit schuil achter een drietal JavaScript API’s: • MediaStream/getUserMedia. Deze API zorgt ervoor dat een webpagina of applicatie toegang krijgt tot bijvoorbeeld de camera en microfoon van de gebruiker, en dat de audio- en videostreams worden gesynchroniseerd. • RTCPeerConnection. Dit is het component binnen WebRTC dat de audio- en videocommunicatie tussen ‘peers’ (webbrowsers) afhandelt. Deze API ondersteunt functionaliteiten zoals signaalverwerking, codec handling, bandbreedtebeheer en security. De rol van RTCPeerConnection komt duidelijk naar voren in onderstaand architectuurdiagram. Overzicht van de architectuur van WebRTC (Bron: WebRTC.org4).
1. http://hacks.mozilla.org/2012/03/video-mobile-and-the-open-web/ 2. http://www.nojitter.com/post/232901042/webrtc-is-it-a-game-changer 3. https://labs.ericsson.com/developer-community/blog/beyond-html5-peer-peer-conversational-video 4. http://www.webrtc.org/reference/architecture
|3
IN DE SPOTLIGHT
Business • Whitepaper
• RTCDataChannel. Deze API maakt WebRTC geschikt voor het uitwisselen van data anders dan audio en video, en dat met een lage latency en een hoge doorvoer. De use cases voor deze API zijn onder andere gaming, remote-desktopapplicaties die direct vanuit de browser zijn te gebruiken, chat en de uitwisseling van bestanden. Om te komen tot een consistente werkwijze is de opzet van de RTCDataChannel API met opzet gelijk aan die van WebSockets. Het grote verschil tussen RTCDataChannel en WebSockets is dat RTCDataChannel direct tussen browsers werkt en daardoor sneller is dan WebSockets, zelfs als een relay-server nodig is om zaken als
firewalls en Network Address Translation te omzeilen. WebRTC stelt encryptie verplicht voor zowel de media als de data. De gebruikten encryptiemethoden zijn https voor de signaling, het Secure Real-Time Transport Protocol (SRTP) voor de audio en video en Datagram Transport Layer Security (DTLS) voor de data. Ook op het vlak van ‘connection establishment’ omarmt WebRTC een aantal geavanceerde technologieën die ervoor moeten zorgen dat de verbinding ook onder ongunstige netwerkomstandigheden succesvol kan worden opgezet.
4. Use cases De WebRTC-applicaties die beschikbaar komen, zullen voor een groot deel draaien om zakelijke toepassingen die de productiviteit verhogen of het contact met de klant verbeteren. Voorbeelden van zakelijke toepassingen rondom WebRTC zijn: • websites met ingebedde communicatiemogelijkheden. Door voice, video en berichten- en bestandsuitwisseling te integreren in een website kan bijvoorbeeld een webshop eenvoudiger contact onderhouden met zijn klanten. Een klant kan met een druk op de knop een videoverbinding opzetten met een support- of salesmedewerker. • (zakelijke) applicaties met ingebedde communicatiemogelijkheden. In dit geval is de ‘conversatie’ slechts een onderdeel van een groter geheel. • mobiele clients voor Voice over IP en Unified Communications waardoor zakelijke communi-
catie ook beschikbaar komt op de smartphones en tablets die door de werknemers worden meegenomen (Bring Your Own Device). • applicaties die de tools bieden voor het opzetten van bijvoorbeeld videovergaderingen, webinars, presentaties, et cetera.
5. Praktijkvoorbeelden De eerste concrete toepassingen van WebRTC zijn inmiddels op de markt verschenen. Mooie voorbeelden van ‘browser-to-browser’-communicatie met WebRTC zijn Jitsi Meet (meet.jit.si) en Talky (talky.io). Vonage, gespecialiseerd in bellen via een breedbandverbinding, gebruikt WebRTC in zijn Vonage Mobile-app voor Apple’s iOS en Google Android. Het spraakverkeer kan vervolgens met WebRTC of het Session Initiation Protocol (SIP) wor-
den afgeleverd op het netwerk van Vonage. Het Nederlandse PushCall werkt aan een mogelijkheid om via een gateway direct vanuit de browser naar een callcenter te bellen. Voor de bezoeker van een website wordt de drempel om contact op te nemen daarmee nog lager. Het bekendste voorbeeld van een WebRTC-toepassing is misschien wel de Mayday-knop op de Kindle Fire HDX van Amazon. Een gebruiker van deze tabletcomputer kan met
|4
IN DE SPOTLIGHT
Business • Whitepaper
een druk op de knop een videoverbinding opzetten met een supportmedewerker van Amazon. Deze medewerker kan de gebruiker vervolgens assisteren door bijvoorbeeld te ‘tekenen’ op het scherm van de gebruiker. Net als de oplossing van Vonage is dit een voorbeeld van het gebruik van WebRTC waarbij er geen gebruik wordt gemaakt van een browser.
Andere voorbeelden zijn: • De appear.in WebRTC-service van het Noorse Telenor waarmee videogesprekken via de browser kunnen worden opgezet. • De ‘social networking service’ Tuenti van Telefónica voor voice-gesprekken naar pc’s waarop een recente versie van de browsers Chrome of Opera draait. • Skyway, een WebRTC-gebaseerde video-chatroom van NTT DoCoMo Inc. • Comcast X1, een nieuw platform dat WebRTC-apps en videostreaming moet gaan bieden.
6. Brede ondersteuning WebRTC vereenvoudigt de manier waarop bedrijven met elkaar en met klanten communiceren en verkleint de afhankelijkheid van het huidige ecosysteem van hardware, carriers en serviceproviders. Met WebRTC komt de kracht van communicatie te liggen in de handen van de webdevelopers die met behulp van de geschetste HTML5- en JavaScript API’s realtime multimedia-applicaties kunnen ontwikkelen. De verwachting is dan ook dat er een rijk ecosysteem ontstaat van interoperabele WebRTC-applicaties en -diensten.
oplossingen bieden om WebRTC middels ‘service enablers’ te integreren binnen de zakelijk Unified Communications-omgeving. Een overzicht van het WebRTC-landschap wordt onder andere gegeven door Brad Bush, chief marketing officer van netwerkleverancier Genband en auteur van de blog ‘CIO2CMO’5.
WebRTC wordt inmiddels ondersteund door een hele reeks leveranciers van onder andere developertools, telco- en mediagateways en call center-, unified communications en video-oplossingen. Hieronder bevinden zich ook leveranciers die
Overzicht van het WebRTC-landschap per juni 2014.
5. http://www.cio2cmo.com/webrtc-landscape-infographic-june-2014/ 6. http://www.w3counter.com/globalstats.php 7. http://msopentech.com/blog/2014/08/19/microsoft-google-hookflash-others-co-author-real-time-communications-specification/
|5
IN DE SPOTLIGHT
Business • Whitepaper
De belangrijkste voorwaarde voor een succes van WebRTC is echter dat er voldoende browsers zijn die de nieuwe standaard ondersteunen zodat er een ‘kritische massa’ is die gebruik kan maken van de nieuwe technologie. De kritische massa die nodig is om de manier waarop we communiceren definitief te veranderen, lijkt inmiddels bereikt. WebRTC wordt ondersteund door de populaire webbrowsers Google Chrome, Mozilla Firefox en Opera, die in juni 2014 samen 58 procent van de markt voor desktopbrowsers in bezit hadden6. Daar komt bij dat Chrome ook de standaard browser is op tablets en smartphones met een recente versie van Google’s mobiele besturingssysteem Android.
Apple en Microsoft hebben WebRTC vooralsnog niet opgenomen in hun mobiele en desktopbrowsers. Microsoft schaart zich achter het vergelijkbare Object Real-Time Communications (ORTC) en maakte onlangs bekend dat deze technologie volwassen genoeg is voor integratie in Internet Explorer7. Naar verluidt streeft Google, dat ook heeft meegeschreven aan ORTC, ernaar om ORTC te integreren in versie 1.1 van WebRTC. Deze ontwikkelingen zullen de snelheid van acceptatie verder verhogen.
7. SPING wizards of WebRTC Volgens Disruptive Analysis gaat het aantal apparaten dat gebruik kan maken van WebRTC spectaculair toenemen. Volgens dit advies- en onderzoeksbureau waren er in het eerste kwartaal van 2014 ruim 1 miljard ‘WebRTC-devices’ in de handen van gebruikers. Begin 2017 zal dat aantal zijn gestegen naar ruim 5 miljard8. SPING is voorbereid op deze stormachtige ontwikkelingen rondom WebRTC. Binnen SPING hebben we diepgaande kennis opgebouwd rondom WebRTC en al diverse implementaties en integraties verzorgd. Graag denken we mee over de WebRTC-toepassing die waarde toevoegt aan uw business.
Eind 2016 zal het aantal WebRTC-devices zijn gestegen naar 3,5 miljard (Bron: Disruptive Analysis).
Over de auteur: Tom van der Geer is CTO van SPING.
8. http://disruptivewireless.blogspot.nl/p/blog-page.html
|3