WebRTC

Wikipedia, Entziklopedia askea
Jump to navigation Jump to search
WebRTC
WebRTC Logo.svg
Garatzailea Justin Uberti
Peter Thatcher
Informazio orokorra
Sistema eragilea Multiplataforma
Lizentzia BSD lizentzia
webrtc.org

WebRTC (Denbora errealeko Web Komunikazioa, edo Web Real-Time Communication ingelesez) kode-iriki proiektu bat da, denbora errealeko multimedia aplikazioak zuzenean web arakatzaileetan garatzea ahalbidetzen duena, inongo pluginen beharrik gabe; Horretarako hainbat API (Application Programming Interface) eskaintzen ditu. Kideen arteko komunikazio zuzena (P2P) ahalbidetzen du arakatzailean bertan, inongo plugin-ik instalatu behar gabe [1]. Google, Microsoft, Mozilla eta Operak babesten dute, eta World Wide Web Consortium (W3C) eta Internet Engineering Task Force (IETF) erakundeak WebRTC estandarizatzen ari dira[2].

WebRTC-ren helburua “Kalitate handiko RTP aplikazioak arakatzaile, gailu mugikor eta IoT gailuetarako garatzea ahalbidetzea, eta aplikazio hauek guztiak protokolo multzo estandar baten bidez komunikatzeko bidea ematea” da [3]. Erreferentziako inplementazio bat software aske moduan publikatu da, BSD lizentziapean. OpenWebRTC-k beste inplementazio aske bat da, GStreamer multimedia framework-ean oinarritua. Brendan Eich-ek, JavaScript-en sortzailea, esan zuen proiektua “web aske eta garbi baten aldeko gudu luzean fronte berri bat” dela [4].

Historia[aldatu | aldatu iturburu kodea]

2010eko maiatzan, Google-ek Global IP Solutions edo GIPS enpresa, VoIP teknologietan aritzen zena, erosi zuen. Enpresa honek RTC egiteko behar diren hainbat osagai garatuak zituen, besteak beste codec-ak eta oihartzun kanzelazio (echo cancellation) teknikak. Google-ek teknologia hau open-source bihurtu zuen eta harremanetan jarri zen W3C eta IETF erakundeekin industrian estandarizazioa ziurtatzeko [5]. 2011-ko maiatzan Google-ek arakatzaileetan denbora errealeko komunikazioa egiteko kode-irikiko proiektu bat publikatu zuen, WebRTC izenekoa [6]. Honen ondoren lan gehiago egon da IETF-ren partez beharrezko protokoloak estandarizatzeko, eta W3C-ren partez arakatzaile API-ak estandarizatzeko. W3C-k espezifikazioa garatzen du [7], eta IETF-k batera denbora errealeko komunikazioa ahalbidetuko duten protokolo multzoa zehazten du [8].

2011ko maiatzan, Ericcson Labs enpresak WebRTC-ren lehen inplementazioa garatu zuen eraldatutako WebKIT liburutegi bat erabiliz [9]. 2011ko urrian, espezifikazioaren lehen zirriborroa publikatu zuen W3C-k. 2013ko otsailan arakatzaile desberdinen arteko lehen deia egin zen WebRTC bitartez, 2014ko otsailan lehen arakatzaile desberdinen arteko datu transferentzia, eta urte bereko uztaila iristean Google Hangouts-ek “gutxi gorabehera” WebRTC erabiltzen zuen.

W3Ck egindako zirriborroa aribidean dago [10], eta Chrome eta Firefox arakatzaileek inplementazio aurreratuak eskaintzen dituzte. API-a WHATWG-ak egindako aurretiko lanean oinarritzen da. WebRTC Working Group-ak espezifikazioak bilakaera nabarmenak jasango dituela espero du, hurrengo faktoreen ondorioz:

  • IETF erakundeko RTCWEB taldean hartutako erabakiak, espezifikazioarekin batera RTC komunikazioak definituko duen protokolo multzoa definitzeko.
  • Sistemen gaitasun eta stream lokalak kanpora erakustean sortutako pribatutasun arazoak.
  • Taldean edukitako eztabaida teknikoak, partikularki data channel-en inplementazioari buruzkoak.[11]
  • Hasierako esperimentazioan lortutako esperientzia.
  • Beste talde eta pertsonek emandako feedback-a.

Diseinua[aldatu | aldatu iturburu kodea]

WebRTC API-ak multimedia aplikazio bat garatzeko behar diren teknologia guztiak biltzen ditu: multimedia kaptura, kodetze/deskodetzea, garraioa, saio kontrola, etab. API-aren osagai nagusiak hurrengoak dira:

  • getUserMedia-k audio eta bideoa lortzen ditu, adibidez gailuaren kamera eta mikrofonoa atzituz. Hau aurrerapen handia da web aplikazioentzat, WebRTC garatu baino lehen normalean plugin bat instalatzea beharrezkoa izaten zelako gailuko kamera edo mikrofonoa atzitu ahal izateko.
  • RTCPeerConnection-ek kideen arteko audio eta bideo komunikazioa ahalbidetzen du. Protokolo hau seinale prozesamenduaz, codec-en tratamenduaz, kideen arteko komunikazioaz (P2P), segurtasunaz eta banda zabaleraren kudeaketaz arduratzen da. Seinalizazioa, berriz, ez da RTCPeerConnection API-aren parte. Izan ere, WebRTC espezifikazioan ez da seinalizazio protokolorik zehazten, eta aplikazio garatzaileek erabaki beharko dute zein protokolo erabili.
  • RTCDataChannel-ek kiden arteko edozein motako datuak komunikatzea ahalbidetzen du. WebSocket-ek erabiltzen duen api berdina erabiltzen du, eta oso latentzia txikia du.

Hauez gain API-ak estadistika funtzio bat ere eskaintzen du:

  • getStats-en bidez web aplikazioak WebRTC saioari buruzko hainbat estadistika atzitu ditzake. Datu estadistiko hauek beste dokumentu batean W3C dokumentu batean deskribatuko dira.

RFC 7874-k inplementazioek gutxienez PCMA/PCMU (RFC 3551), DTMF (RFC 4733) eta Opus (RFC 6716) audio codec-a eskaini behar dituztela ezartzen du. PeerConnection, data channel eta media kapturarako API-ak W3C-k zehazten ditu.

W3C ORTC (Objektuen denbora errealeko komunikazioa edo Object Real-Time Communications ingelesez) garatzen ari da WebRTC-rako [12]. Honi normalean WebRTC 1.1 deritzo. Bideo codec-ei dagokionez, une honetan WebRTC-k VP8, VP9 eta AVC onartzen ditu.

Aplikazioak garatzeko erabiltzen den maila altuko Web API-az gain, WebRTC-ren sortzaileek baila baxuagoko C++ API bat eskaintzen dute, arakatzaileen garatzaileek erabiltzeko pentsatua.

Adibideak[aldatu | aldatu iturburu kodea]

Hasiera batean WebRTC web arakatzaileetan erabiltzeko garatu arren, erabilia izan da ere beste hainbat gailutan, adibidez plataforma mugikorretan eta IoT (Gauzen Internet edo Internet of Things, ingelesez) gailuetan. WebRTC-ren aplikazioetako bat web-arakatzaileetan funtzionatzen duten VoIP telefonia sistemak dira. Aplikazio hauek gai dira zuzenean arakatzailetik deiak egin eta jasotzeko, inongo software extrarik (adibidez softphone bat) instalatu behar gabe[13].

Hedapena[aldatu | aldatu iturburu kodea]

Hurrengo arakatzaileek WebRTC inplementazioak eskaintzen dituzte:

Internet Explorer arakatzaileari WebRTC gaitasuna gehitzeko pluginak ere existitzen dira.

Segurtasun arazoak[aldatu | aldatu iturburu kodea]

2015eko urtarrilean WebRTC gaitasuna zuten arakatzaileen segurtasun akats larry bat salatu zuen TorrentFreak-ek, esanez VPN tunnel-en segurtasuna arriskuan jartzen zuela, erabiltzailearen benetako IPa erakustearen ondorioz [19]. IP helbidea irakurtzeko eskaerak ez dira arakatzaileko garatzaile kontsolan agertzen, eta iragarki blokeatzaile eta segurtasun/pribatutasun plugin gehienek ez dituzte eskaera hauek blokeatzen [20]. Honen ondorioz posible da erabiltzailearen jarraipena egitea. Hala ere, uBlock Origin plugin-ak arazo hau ekidin dezake[21].


Erreferentziak[aldatu | aldatu iturburu kodea]

  1. (Ingelesez)  «How WebRTC Is Revolutionizing Telephony» Trilogy-LTE . Noiz kontsultatua: 2019-01-16 .
  2.   «WebRTC Home | WebRTC» archive.is 2018-01-09 . Noiz kontsultatua: 2019-01-16 .
  3.   «WebRTC Home | WebRTC» archive.is 2018-01-09 . Noiz kontsultatua: 2019-01-16 .
  4.   io13webrtc.appspot.com . Noiz kontsultatua: 2019-01-16 .
  5.   «Frequent Questions | WebRTC» webrtc.org . Noiz kontsultatua: 2019-01-16 .
  6.   «Google release of WebRTC source code from Harald Alvestrand on 2011-05-31 (public-webrtc@w3.org from May 2011)» lists.w3.org . Noiz kontsultatua: 2019-01-16 .
  7.   «WebRTC 1.0: Real-time Communication Between Browsers» www.w3.org . Noiz kontsultatua: 2019-01-16 .
  8.   «Real-Time Communication in WEB-browsers (rtcweb) -» datatracker.ietf.org . Noiz kontsultatua: 2019-01-16 .
  9. (Ingelesez)  «Welcome to Ericsson blog» www.ericsson.com 2018-09-25 . Noiz kontsultatua: 2019-01-16 .
  10.   «WebRTC 1.0: Real-time Communication Between Browsers» w3c.github.io . Noiz kontsultatua: 2019-01-16 .
  11. (Ingelesez)  Loreto, Salvatore; Jesup, Randell; Tüxen, Michael «WebRTC Data Channel Protocol» tools.ietf.org . Noiz kontsultatua: 2019-01-16 .
  12. (Ingelesez)  ORTC (Object Real-time Communications) Community Group . Noiz kontsultatua: 2019-01-16 .
  13. (Ingelesez)  Kennedy, John (2017-11-01) «Catch the Babelfish: Irish telco devises a new kind of cloud phone» Silicon Republic . Noiz kontsultatua: 2019-01-16 .
  14. (Ingelesez)  «ORTC API is now available in Microsoft Edge» Microsoft Edge Blog 2015-09-18 . Noiz kontsultatua: 2019-01-16 .
  15. (Ingelesez)  «Firefox Notes - Desktop» website-archive.mozilla.org . Noiz kontsultatua: 2019-01-16 .
  16.    .
  17. (Ingelesez)  «Download Opera 18 for desktop» Opera News 2013-11-19 . Noiz kontsultatua: 2019-01-16 .
  18. (Ingelesez)  «Firefox Notes - Mobile» website-archive.mozilla.org . Noiz kontsultatua: 2019-01-16 .
  19. (Ingelesez)  «Huge Security Flaw Leaks VPN Users' Real IP-Addresses» TorrentFreak 2015-01-30 . Noiz kontsultatua: 2019-01-16 .
  20.   Roesler, Daniel (2019-01-16) Demo: https://diafygi.github.io/webrtc-ips/. Contribute to diafygi/webrtc-ips development by creating an account on GitHub . Noiz kontsultatua: 2019-01-16 .
  21.   Hill, Raymond (2019-01-16) uBlock Origin: An efficient blocker for Chromium and Firefox. Fast and lean. - gorhill/uBlock . Noiz kontsultatua: 2019-01-16 .