WebRTC - kolejny projekt open-source

WebRTC to – podobnie jak Cloud Computing oraz Big Data – pojęcie zyskujące w informatyce ostatnio bardzo dużą popularność. Czym jest i co dokładnie oznacza ten „webowy chat nowej generacji”? Użytkownicy pod koniec lat dziewięćdziesiątych przyzwyczajeni zostali do chatów bazujących na apletach (korzystających z Javy po stronie przeglądarki). Aktualnie prawie wszystkie nowoczesne usługi webowe odchodzą od tego rozwiązania, przenosząc mechanizmy przeglądarkowe na bazujące na rozwiązaniach dostarczanych przez HTML5, CSS3 oraz Javascript. W sieci coraz częściej pojawiają się jednak usługi jeszcze nowocześniejsze, które – poza transmisją tekstu i obrazu w czasie rzeczywistym – umożliwiają również nadawanie i odbiór materiałów audio oraz wideo. W tym właśnie momencie pojawia się WebRTC, które – oprócz dwóch wymienionych w poprzednim zdaniu przekazów – dodatkowo umożliwia również przesyłanie plików za pośrednictwem protokołu P2P.
Historia WebRTC rozpoczęła się w maju 2011, kiedy to Google Inc. zaprezentowało projekt open-source, mający na celu zrewolucjonizowanie komunikacji browser-to-browser. Trzy lata później projekt jest co prawda nadal wspierany przez Google Inc., ale także przez Mozilla Foundation oraz Operę. API oraz protokoły, które obsługują WebRTC, są natomiast dewelopowane wspólnie przez W3C oraz IETF, organizacje zajmujące się standaryzacją oraz rozwijaniem technologii webowych.
Z deweloperskiego punktu widzenia WebRTC to otwarty (umożliwiający swobodne używanie kodu źródłowego) framework dla środowisk webowych, który umożliwia komunikację w czasie rzeczywistym za pośrednictwem przeglądarki (Real Time Communication, który odpowiada za akronim RTC). Dla użytkownika oznacza on emisję i odbiór danych audiowizualnych bez użycia jakiegokolwiek zewnętrznego oprogramowania. Co należy podkreślić, aplikacje korzystające z WebRTC nie wymagają żadnych dodatkowych wtyczek. Jedyne, co jest konieczne, to korzystanie z aplikacji webowej (na przykład usługi www), która oferuję tę funkcjonalność, za pośrednictwem odpowiedniej przeglądarki. Aktualnie WebRTC jest implementowane między innymi w następujących aplikacjach:
Google Chrome 23 (i nowsze)
Mozilla Firefox 22 (i nowsze)
Opera 18 (i nowsze)
Przeglądarki Androidowe (Google Chrome 29, Mozilla Firefox 24, Opera Mobile 12).
Komponenty WebRTC, jeżeli są implementowane w przeglądarce, mogą być osiągnięcie poprzez API javascriptowe, umożliwiające deweloperom łatwą implementację ich własnych rozwiązań WebRTC. Dlaczego programiści powinni używać WebRTC? Między innymi dlatego, że technologie, których używa, są powszechnie znane, wspierane i „zaufane”: HTML, Javascript, HTTP oraz protokół TCP/IP od ponad dekady nalezą do najlepiej znanych i wspieranych składni/protokołów w świecie Internetu. WebRTC używa darmowego kodeka IETF RFC 6176. Wspiera on transmisje od 6 kbit/s do 510 kbit/s, długość jednej klatki od 2,5 ms do 60 ms oraz różnicowaną częstotliwość (od 8 kHz do 48 kHz), a także kodeków iSAC, VP8 oraz iLBC. Wśród komponentów WebRTC warto wymienić również getUserMedia, który pozwala przeglądarce osiągnąć kamerę i mikrofon, aby przechwycić dane z nich płynące, RTCPeerConnection, który otwiera połączenia audio/video, a także RTCDataChannels, który pozwala przeglądarkom dzielić się danymi poprzez protokół p2p. Jakie inne komponenty są implementowane w „paczce” WebRTC? Oczywiście pakiet technologii wspierających komunikację audio. Zawiera nie tylko niezbędne kodeki, ale również software bazujący na AEC oraz AGC, redukcję szumów oraz kontrolery umożliwiające funkcjonowanie pomiędzy różnymi platformami. Jak się powszechnie uważa, nie ma w tym momencie prawdopodobnie nie ma żadnego lepszego, darmowego i tak wysokiej jakości rozwiązania, które umożliwia komunikację audiowizualną za pośrednictwem wyłącznie przeglądarki internetowej.
Jak wspomnieliśmy, WebRTC bazuje na API, które nadal jest w budowie dzięki wysiłkowi organizacjom WHATWG, W3C oraz IETF. W jaki sposób samodzielnie można zainstalować bibliotekę? Po pierwsze, w kwestiach licencyjnych warto przypomnieć, że komponenty WebRTC są rozpowszechniane na licencjach typu open-source i dostępne na witrynie internetowej code.google.com/p/webrtc. Niemniej, mimo licznych tutoriali i bogatej dokumentacji, w tym momencie nadal trzeba posiadać przynajmniej podstawą wiedzę programistyczną, aby samodzielnie implementować WebRTC: konieczna jest znajomość między innymi wymienionego javascriptowego API, który „przywołuje” WebRTC w przeglądarkach. Warto zauważyć jednocześnie, że wymagania techniczne nie wykraczają jednak poza standardowe umiejętności web dewelopera.
Co ciekawe, istnieje rówineż AppRTC, odpowiednik WebRTC, dedykowany systemom mobilnym (apprtc.appspot.com). Rozwijane przez Google Inc. oraz Mozilla Foundation, również korzysta z API WebRTC. Aby samodzielnie wypróbować możliwości AppRTC, niezbędna jedna z następujących aplikacji: Firefox Nightly, Chrome Beta Android, lub dekstopowa przeglądarka Chrome. Z kodem źródłowym projektu można zapoznać się pod poniższym linkiem: https://code.google.com/p/webrtc/source/browse/#svn%2Ftrunk%2Fsamples%2Fjs%2Fapprtc.
Wydaje się, że WebRTC oraz AppRTC mają przed sobą naprawdę obiecującą przyszłość. Udostępnienie kodu na otwartej licencji umożliwia angażowanie się w projekt niezależnych programistów i organizacji, a wsparcie przez największe na świecie instytucje takie jak Mozilla Foundation, Google Inc, czy W3C zapewnia stabilny jego rozwój. Status najnowocześniejszego i zyskującego największą popularność frameworku umożliwiającego implementowanie audiowizualnych czatów dostępnych bezpośrednio za pośrednictwem przeglądarek internetowych, wydaje się być niezagrożony.
Autor & Źródło: Wojciech Scelina datalab.pl