WebRTC

Volgende pagina

Mobile optimalisatie & Front-end development

WebRTC is een open HTML5-Framework om video audio dat direct tussen browsers te delen

Web Real-time Communicatie (WebRTC) API is van een betekenisvolle development wat browsers tussen elkaar laat communiceren en gebruikt maakt van HTML5 mogelijkheden. Gebruikers kunnen tussen de browsers peer-to-peer; spraak-, video- of  bestanden direct delen. Er is geen noodzaak meer om externe plug-ins of eigendomsmatige software te installeren. WebRTC-technologie is platform en apparaat onafhankelijk en een brug tussen telecom en webwereld.

Er zijn mensen die zeggen dat WebRTC en HTML5 net zo wereldschokkend kunnen zijn voor real-time communicatie als het web dat was voor informatie

Het doel van WebRTC

Het doel van WebRTC is om spraak-video-data en telefonie zo eenvoudig mogelijk en voor iedereen toegankelijk te maken. WebRTC is ook zo ontworpen dat het kan worden geïntegreerd met bestaande communicatiesystemen zoals: voice over IP (VOIP), verschillende SIP-clients, en met het openbare telefoonnet (PSTN), om er maar een paar te noemen.

HD-kwaliteit en een lage latentie via gewone datanetwerken naar ieder eindpunt

WebRTC-technologie biedt belangrijke voordelen ten opzichte van een centrale server aanpak, zoals meer privacy, veiligheid, lagere kosten en grotere schaalbaarheid. Daarnaast staat WebRTC-architectuur de mogelijkheid toe voor het snel creëren van diensten met JavaScript en HTML5. Hierdoor neemt de noodzaak voor ontwikkelaars af om het onderliggende platform te kennen of te onderhouden.

 Volledig naar wens aan te passen en te integreren

De kracht en de belofte van WebRTC  is dat men met tiental regels JavaScript-code een web-applicatie met een rijke teleconferentie ervaring gebouwd kan worden, dit via peer-to-peer-overdracht. Echter de realiteit is anders! de genoemde API’s zijn slechts het topje van de ijsberg, het onderliggende platform met de onderdelen zijn: signalering, peer-to-peer aansluitingen, veiligheid en op de applicatie laag dozijnen aan nieuwe protocollen. Dit zijn slechts maar een paar componenten die nodig zijn om deze rijke-gebruikers ervaring allemaal bij elkaar te brengen.

Alle updates 20-12-2014 WebRTC Nederland linkedin groep 

https://www.linkedin.com/groups/WebRTC-Nederland-4781078?gid=4781078&mostPopular=&trk=tyah&trkInfo=tarId%3A1419066090828%2Ctas%3Awebrtc%20nederlan%2Cidx%3A2-1-2

Nieuwe onderdelen van een WebRTC browser 

WebRTC levert rijke, hoge-kwaliteit RTC toepassingen zoals audio, video  en tele- conferencing en peer-to-peer in het uitwisselen van gegevens. Het geeft veel nieuwe functionaliteiten aan de browser o.a: audio en video processing, nieuwe API’s en een ondersteuning voor een dozijn aan nieuwe netwerkprotocollen.

Verstorende technologie

Het verouderd telecom model

Nog voordat er audio- en video gesprekken over het Internet werden gemaakt wist iedereen dat als een leverancier zijn eigen protocolstack zou ontwerpen, het systeem nooit zou werken. H.323 was de basis voor de eerste wijdverspreide Internet conferentiesystemen. Het bleef tot op heden de meest toegepaste oplossing om spraak over IP mogelijk te maken. Maar H.323 is een typisch telefoonmaatschappij product: groot, complex en niet flexibel. Daarom organiseerde het IETF een commissie om een simpeler en meer modulaire methode te ontwikkelen om spraak over IP (VOIP) mogelijk te maken. SIP (Session Initiation Protocol)  Dit protocol wordt beschreven hoe Internettelefoongesprekken, videoconferenties en andere multimediaverbindingen tot stand gebracht kunnen worden. Dit in tegenstelling tot H.323 dat een complete protocolsuite is, is SIP een enkele module die echter ook zo ontworpen is dat deze ook goed met bestaande internetapplicaties kan samenwerken.

Vendor locked-in

Omdat het om licentie maatwerk software ging, ontstond er leverancier afhankelijkheid waarbij men in de zak van de leverancier zat en overstappen heel moeilijk of zelfs onmogelijk was zonder dat dit grote financiële gevolgen had.

Over-the-top (OTT)-aanbieders

Zo onstonden er Over-the-top (OTT) diensten maar deze diensten zijn niet managed, en worden via het open internet aangeboden. Zo hebben
WhatsAPP, Viber, Facebook en Google voor gebruikers duidelijke voordelen zoals een betrouwbare verbinding, goede gesprekskwaliteit en wat de traditionele telecom maatschappijen en hun business modellen onder druk zette. Tegelijkertijd dwingen zij traditionele operators zich te herdefiniëren; en gaat de nadruk naar nieuwe vormen van communicatie en dienstverlening.

OTT diensten zijn meestal duur  om te ontwikkelen, niet lager in kosten dan de traditionele methode van levering. OTT -API’s  kunnen worden verkregen via API-stores.

Door privacy kwesties zijn minder gebruikers “gratis” OTT-apps gaan gebruiken.

Voordelen van Cloud diensten

Van een Cloud-Based API hoeft de gebruiker geen eigenaar meer te zijn van de gebruikte hard- en software en is hij niet verantwoordelijk voor het onderhoud. Alle details van de informatietechnologische infrastructuur worden aan het oog ontrokken, de cloud is dus een begrip dat online diensten aanduidt en de gebruiker beschikt over een “eigen”, in omvang en mogelijkheden schaalbare, virtuele infrastructuur.

Telecommunicatie vs. OTT Providers

Vanaf het eerste moment vechten operators en OTT providers om dezelfde klanten. Om deze trend te kunnen keren, wilde consultants OTT-applicaties gaan bundelen met mobiele breedbandtoepassingen, zoals LTE-abonnementen. Daarnaast willen mobiele operators ook meer omzet gaan halen uit cloud gebaseerde diensten, zoals opslagdiensten voor content en back-up. Deze diensten moeten op den duur ook worden aangeboden als premium LTE-diensten. Met ‘niet-neutraliteit: zouden de telecomaanbieders met internetproviders afspraken mogen maken over de tarieven, kwaliteit van dienstverlening.

De OTT-aanbieders hadden een zeer sterke positie verworven en in de tussentijd hebben de telecom exploitanten verloren de Nederlandse overheid bepaalde in januari 2013 dat OTT Internetdiensten zoals Skype, Viber en WhatsAPP niet meer geblokkeerd of vertraagd mochten worden en dat de telecomaanbieders en providers geen extra geld mogen vragen voor het gebruik van nieuwe diensten. Voor ontwikkelaars blijft het lonend om nieuwe Internetdiensten te ontwikkelen maar wel met het gevolg dat er nu 2 aparte en onverenigbare ecosystemen zijn.

In sommige situaties mag een Internetprovider wel internetdiensten blokkeren of vertragen als het bv druk op het netwerk is.

Techniche aspecten van WebRTC.

 WebRTC API functies

  • GetuserMedia
  • Verkrijgen van audio en video wat toegang geeft aan de browser
  • PeerConnection
  • P2P communicatie
  • Codex en veiligheid
  • Media support en Bandbreedte management


WebRTC browserbased API

WebRTC is open source en organisaties hoeven zich niet te schikken naar standaard oplossingen. Ze hebben de mogelijkheid om de beste software en hardware te kiezen voor hun eigen organisatie. WebRTC is browser-based en werkend op elk platform (cross-platform) met alle mogelijkheden om verschillende apparaten (Cross-platform connectiviteit) aan elkaar te verbinden en samen te werken om aantrekkelijke gebruikerservaringen te leveren!’

De browser abstraheert de meeste van deze complexiteit achter drie primaire API’s:

  • MediaStream : verwerven van de audio-en videostream
  • RTCPeerConnection : communicatie audio-videogegevens
  • RTCDataChannel : communicatie van willekeurige applicatie data

WebRTC -RTCWEB

MediaStream API

De MediaStream -interface vertegenwoordigt een stroom van media-inhoud. Een stroom bestaat uit verschillende tracks zoals video of audio tracks. Alle audio-en video-verwerking, zoals ruisonderdrukking, egalisatie, beeldverbetering en meer worden automatisch afgehandeld door de audio-en video-apperaten van de browser. De kern van de API  is het Media-object zelf met een URL-string wat verwijst waar de data is opgeslagen van een DOM file of het BLOB object.

GetuserMedia API

GetuserMedia API, is verantwoordelijk voor het verzoek tot de toegang van de microfoon en camera van de gebruiker. De webrowser voor multimedia streams (video, audio of beide).  Deze API is alleen geschikt voor het verwerven van audio en video en niet voor het verzenden van gegevens, of voor het opslaan van een bestand.

Een eenvoudige use case van een GetuserMedia API is de bewaking van en huis of werkplek.

Andere browser API’s waarmee je een mashup kunt samenstellen

  • Web Audio API  de verwerking van audio in de browser.
  • Canvas API  het vastleggen en de post-processing van individuele video frames.
  • CSS3 en WebGL API’s waarmee je een verscheidenheid van 2D/3D effecten toepassen op de output stream.

getUserMedia() is een eenvoudige API om audio en video streams van het onderliggende platform te verwerven. De media wordt automatisch geoptimaliseerd, gecodeerd en gedecodeerd door de WebRTC audio en video engine en wordt vervolgens geleid naar één of meer uitgangen.

Huidige WebRTC implementaties maken gebruik van de audio codecs opus en voor video VP8.

RTCDataChannel

Waarmee je bestanden kunt delen via peer-to -peer. RTCDataChannel maakt gebruik van de ingebouwde fuctie RTCPeerConnectie. Voor toepassingen waarin weinig vertraging van groot belang zijn oa voor gaming, remote desktop applicaties, real-time tekstchat en bestands- overdracht.

Datachannels functies

  • Wat toestaat om via browsers,via peer-to-peer te delen
  • Peer-to-peer DTMF
  • RTCSstatsReport
  • Identiteit


RTCpeerConnection API

Voor een conference call moeten we gegevens over het Internet versturen “Real-Time Communication Between Browsers”, dit kan met een RTCPeerConnection API. Met een RTCpeerConnection kun je met twee of meer communiceren van browser tot browser over het internet. De multimedia-conferentie wordt gecoördineerd via een signaalkanaal dit is in het algemeen een script in de pagina, bv. gebruikmakend van een XMLHttpRequest. Om gegevens op te slaan kunnen we gebruik maken van de MediaStreamRecorder API.

De RTCPeerConnection interface  is verantwoordelijk voor het beheer van de volledige levenscyclus van elke peer-to-peer-verbinding

Webbrowser

Een moderne webbrowser is een platform wat speciaal ontworpen is voor snelle, efficiënte en veilige levering van webapplicaties. In feite, onder de motorkap. Een moderne browser is een compleet besturingssysteem met honderden componenten.

De Web browser engines spelen een essentiële rol in het browser ecosysteem, deze engines zijn verantwoordelijk voor het converteren van data in een nuttig formaat voor een presentatie op het scherm van de gebruiker. De webbrowser maakt gebruikt van HTML in combinatie met CSS tot het creëren van gebruikers ervaring

Audio en Video in de webbrowser

Voor een rijke teleconferentie ervaring in de browser vereist dat de browser in staat is tot de toegang tot de systeem-hardware van zowel audio als video en dat er geen drivers nodig zijn of aangepaste drivers van hardware. Echter, ruwe audio-en video-streams zijn niet voldoende: elke stroom moet worden verwerkt om de kwaliteit te verbeteren, gesynchroniseerd en de output bitrate moeten zich kunnen aanpassen aan de voortdurend wisselende bandbreedte en vertragingen tussen de clients.

Aan de ontvangende kant wordt het proces omgekeerd, de klant moet de stromen decoderen in real-time en kunnen aanpassen op het netwerk tegen onregelmatigheden op respons tijden en tegen vertragingen. Het vastleggen en verwerken van audio en video is een complex probleem. Maar WebRTC biedt audio-en video- engines aan de browser , die zorg dragen voor signaalverwerking, en meer.

Browser rendering engines

Rendering engines die worden gebruikt in de vele webbrowsers zijn oa. Webkit, Blink, Trident, en Gecko.

Webkit - is de meest populaire rendering  engine. De goal van dit opensource project is om uit te groeien tot een algemeen gebruik van de interactieve presentatie machine voor software-applicaties. Deze browser-engine wordt gebruikt voor software-applicaties  en voor incl. e-mailclients en instant messengers.

Trident – Microsoft rendering engine MSHTML  een gesloten bron engine, wordt oa ook gebruikt in Google Talk, de software kangebruikt worden door de mshtml.dll librari. Microsoft laatste versie van IE gebruikt nog steeds Trident als core rendering engine.

Gecko - Firefox is de meest prominente softwareprogramma en gebruikt de open source Gecko engine, het is aanvankelijk ontworpen door Netscape in de jaren 90 voor de Netscape Navigator webbrowser.

Prestois de rendering engine van Opera onder voorbehoud want in 2013 het Opera publiekelijk aangekondigd dat het binnenkort presto rendering engine laat vallen en deze gaat migreren naar webkit Chromium package. Prseto is het laatste slachtoffer van de browser wars

Blink
- in 2013 heeft Google aangekondigd een nieuwe Blink rendering engine, het aanvankelijke doel is voor een beter support van Crome’s multi-process architectuur en het reduceren van complexiteit in in de Browser. Dat Google overbodige functionaliteiten af wilt is een goede start!

API 
Een application programming interface (API)  is een set van programma-instructies en normen voor de toegang tot een web-based software applicatie en/of webgereedschappen.

API’s zijn toepassingen die met elkaar praten zonder interventie.

VB. Als u online kaartjes voor de film koopt en je voert je credit card informatie in zal de API u vragen om uw creditcard gegevens te verzenden naar een externe applicatie en controleren of uw gegevens juist zijn. Zodra de betaling is bevestigd, stuurt de externe toepassing een antwoord terug naar de film ticket website die zegt; het is OK om de tickets af te geven.

Gegevens tussen een cliënt en een server.

XMLHttpRequest (XHR)- is een JavaScript object dat is ontwikkeld door Microsoft en aangepast is door Mozilla, Apple en Google. Het zorgt ervoor om informatie van een URL op te halen dit zonder de pagina te herladen. Een webpagina kan tussentijds een gedeelte van de pagina bijwerken zonder dat de gebruiker er last van heeft.

XMLHttpRequest word veel gebruikt in AJAX programmering. Ondanks de naam kan XMLHttpRequest gebruikt worden om elke soort van data op te halen, dus niet alleen XML het ondersteund ook protocollen anders dan HTTP (o.a FTP). Bijna alle netwerken use case (scripted downloads, uploads, streaming, en zelfs real-time meldingen) kunnen  zijn gebouwd op de top van XHR.

hoewerkthet2

Het signaal kanaal

WebRTC kan geen verbindingen maken zonder enige vorm van een server in het midden. We noemen dit het signal channel; het is een soort van communicatiekanaal om informatie uit te wisselen en voor het opzetten van een peer-verbinding tussen twee willekeurige browsers.

hpbn_1401

High-level browser netwerken API’s, protocollen en services

hpbn_1803

Websockets

WebSockets maken een TCP-verbinding met de server. WebSocket Framing is het maskeren van elk bericht wat wordt verzonden van cliënt naar de server, zodat de gegevens worden versleuteld.

De belangrijkste voordelen van WebSockets zijn: het stelt je in staat om grote prestaties, architectuur en schaalvoordelen te bereiken. Met Node.js (een platform dat gebaseerd is op de V8 JavaScript engine van Google) kun je hetzelfde geheugen voor verschillende socket verbindingen delen, zodat je op die manier je toegang krijgen tot gedeelde variabelen. Je kunt de gegevens op te slaan in het RAM, of publiceren tussen sockets.

ICE, STUN, TURN zijn nodig om peer-to-peer-verbinding over UDP vast te stellen en te onderhouden. DTLS wordt gebruikt om alle data overdracht tussen de clients te beveiligen: encryptie is een verplicht onderdeel van WebRTC. Tenslotte SCTP en SRTP zijn de applicatie protocollen die worden gebruikt om de verschillende stromen te multiplexen voor het bieden van congestie en flow control, een betrouwbare levering en andere aanvullende diensten bovenop UDP.

WebRTC lost problemen op met een ingebouwde ICE protocol wat de routing regelt en de connectiviteit regelt. Echter, de levering van meldingen (signalering) en de eerste sessie onderhandelingen wordt overgelaten aan de applicatie.

Met  een WebRTC applictie kan je kiezen uit bestaande signalering protocollen en gateways. Als alternatief kan het ervoor kiezen om een je ​​eigen signalering service met een eigen protocol te implementeren.
Een signalering server kan fungeren als een toegangspoort tot een bestaand communicatienetwerk.

De huidige stand van zaken van WebRTC

Standarisering

  • WebRTC (w3c) part of HTML5
  • RTCweb (IETF)
  • IMS_WebRTC(3GPP)


WebRTC-browsers

  • Desktop PC
  • Chrome
  • Firefox
  • Opera
  • Browser (Ericson Research)


Android

  • Google Crome 23
  •  Mozilla Firefox
  •  Opera Mobile


SWOT: sterke punten

  • Geen plugins
  • Geen Flash, Java, Silverlight etc.
  • Client kan overal voor worden ingezet
  • Client is altijd up to date (browser auto updates)
  • Multi Platform PC, mobiel, tablet
  • Veiligheid is verplicht
  • Peer-to-Peer
  • HD video (webcam, screencapture)
  • Wideband audio
  • Opt-Privancy
  • Open en gestandariseerd technologie
  • Niet gepatenteerd
  • Op standaard gebaseerden Firewall/Nat traversal
  • ICE (STUN/TURN)
  • IPv6 en IPv4 en de mogelijkheden van verschillende autonome
  • heterogene systemen, apparaten of andere eenheden
  •  WebRTC is gedeelte van HTML5
  • Web Javascript API is eenvoudig en verbergt complexiteit


Swot: zwakke punten

  • Eerste adoptie fase
  • Niet volwassen finale standaard (ontwerp), snel veranderde implementaties
  • Browser implementaties compabiliteit
  • STUN/TURN server, MCU, Gateway
  • Webapplication is not native
  • Codec oorlog (H.264 vs VP8) toekomst (H.265 vs VP9)
  • Veel verschillende nieuwe benaderingen voor signaling
  • JSON over WebSocket (Fall-back naar BOSH, COMET)
  • Sip over WebSocket
  • Websocket is nog niet geïmplementeerd in elke HTTP Proxy
  • Desktop delen, statistieken is nog niet geïmplementeerd in elke browser
  • Security zorgen
  • WebRTC mobile apparaten
  • Apple IOS en Microsoft Windows mobiel


SWOT: Kansen

  • WebRTC Hype
  • HTML 5 (WebRTV) als een universeel platform
  • Glocale IP oplossing media
  • Verstoren van de Communicatiemarkt
  • Transparant Standaard veilig platform voor RTC
  • Nieuwe mogelijkheden/nieuwe applicaties
  • Games, Video, Calcenters, helpdesks Klantenservices, lezing opnames etc.
  • Apps, mobiel, Tablet/Android
  • Videoconference voor iedereen die een webbrowser heeft


SWOT: Bedreigingen

  • Compatibiliteit met bestaande RTC leveranciers implementaties
  • klantloyaliteit, ook als er betere of goedkopere alternatieven zijn
  • Het negeren van WebRTC webblokades
  • Communicatie service providers
  • WebRTC implementaties IETF-standaarden

Binnenkort meer

  • Best practices voor het bouwen van WebRTC toepassingen
  • Het optimaliseren van code voor audio-en video-communicatie
  • Toekomstige mogelijkheden van WebRTC in ontwerp en ontwikkeling
  • Ontwerp use cases van WebRTC
  • Overwegingen infrastructuur
  • De kracht van WebRTC met behulp van HTML5 in de native mobiele
  • Applicaties
  • Impact op carrières
  • Impact op het Telecom Ecosysteem
  • Voorbeelden van Applicatie developers
Volgende pagina

Anysyncrone Frameworks