İçeriğe atla

WebRTC

WebRTC
Orijinal yazar(lar)Justin Uberti
Peter Thatcher
İlk yayınlanma2011 (13 yıl önce) (2011)
Güncel sürüm1.0[1] / 4 Mayıs 2018 (6 yıl önce) (2018-05-04)
Programlama diliC++,[2] JavaScript
Resmî sitesiwebrtc.org
Kod deposu Bunu Vikiveri'de düzenleyin

WebRTC (Web Gerçek Zamanlı İletişimi), web tarayıcılarına ve mobil uygulamalara basit uygulama geliştirme arayüzü (API'ler) aracılığıyla gerçek zamanlı iletişim (RTC) sağlayan ücretsiz, açık kaynaklı bir projedir. Direkt olarak eşler arası iletişime izin vermesi ile, eklenti yükleme veya uygulama indirme ihtiyacını ortadan kaldırarak, ses ve video iletişiminin web sayfalarında kolaylıkla kullanılmasını sağlar. Apple, Google, Microsoft, Mozilla ve Opera tarafından desteklenen WebRTC, World Wide Web Konsorsiyumu (W3C) ve İnternet Mühendisliği Görev Gücü (IETF) aracılığıyla standartlaştırılmaktadır.[3]

Temel hedefi, "Tarayıcı, mobil cihazlar ve IoT cihazları için yüksek kaliteli RTC uygulamalarının geliştirilmesini ve hepsinin ortak bir protokol seti aracılığıyla iletişim kurmasını sağlamaktır".[3]

  • WebRTC için geliştirilen referans kod, BSD lisansı koşulları altında özgür yazılım olarak yayınlanmıştır.
  • GStreamer kütüphanesi, 1.14 sürümünden bu yana, doğrudan ücretsiz bir WebRTC uygulaması için bir altyapı sağlamaktadır.[4]

Tarihçe

Google, Mayıs 2010'da RTC için gerekli olan codec'ler ve yankı giderme teknikleri gibi birçok bileşen geliştiren ve halihazırda VoIP ve video konferans yazılım şirketi olan Global IP Solutions'ı (GIPS)'i satın aldı. Daha sonra Google, GIPS teknolojisini açık kaynak haline getirdi ve ortak bir standart üretmek için IETF ve W3C'deki ilgili birimlerle iletişime geçti.[5][6] Google Mayıs 2011'de, WebRTC olarak bilinen tarayıcı tabanlı gerçek zamanlı iletişim için açık kaynaklı bir proje yayınladı. Devamında IETF'de WebRTC için bir takım protokoller geliştirildi ve W3C'de tarayıcı API'lerini standardize etmek çalışmalar yürütüldü.

Ericsson Labs, Mayıs 2011'de bir WebKit kütüphanesi kullanarak WebRTC için ilk uygulamayı oluşturdu.[7] Ekim 2011'de W3C, şartname için ilk taslağını yayınladı.[8] WebRTC için diğer önemli tarihler ise; ilk tarayıcılar arası videolu aramanın yapılması (Şubat 2013), ilk tarayıcılar arası veri aktarımının yapılması (Şubat 2014) ve Google Hangouts'un hayata geçirilmesidir (Temmuz 2014).[9]

W3C'nin taslak API'si, Web Hypertext Application Technology Working Group'ta (WHATWG)'de yapılan ön çalışmalara dayanmaktadır. Ericsson Labs'de, standart öncesinde konsept bir uygulama oluşturuldu ve ConnectionPeer API olarak adlandırıldı. WebRTC Çalışma Grubu, bu standardın aşağıdaki maddelere dayanarak gelişmesini istemektedir:

  • IETF'deki RTCWEB grubu ile ortaklaşa olarak yapılan çalışmalarda bir protokol kümesinin oluşturulması ve bu protokollerin, standart dokümanı ile birlikte web tarayıcılarında gerçek zamanlı iletişimin gerçekleştirilmesini sağlamasıdır. Hiçbir sinyalleşme protokolü zorunlu olarak tutulmasa da, WebSocket üzerinden SIP ve açık kaynaklı JsSIP yaygın olarak kullanılabilir.
  • Yerel yetenekleri ve yerel akışları ortaya koyarken ortaya çıkan gizlilik sorunları giderilmelidir.
  • Özellikle veri kanallarının uygulanmasına ilişkin grup içinde teknik tartışmalar yürütülmelidir.
  • Erken süreçte deneyler ile edinilen deneyimler incelenmelidir.
  • Diğer gruplardan ve bireylerden geri bildirimler dikkate alınmalıdır.

Kasım 2017'de WebRTC 1.0 spesifikasyonunun durumu, Çalışma Taslağından (Working Draft) Aday Tavsiyesine (Candidate Recommendation) geçmiştir.[10]

Genel bakış

Tasarım

WebRTC'nin ana bileşenleri, aşağıda yer alan JavaScript API'lerini içerir :

  • getUserMedia metodu kullanıcının ses ve video verisini alır (Cihazın kamerasına ve mikrofonuna erişim isteği göndererek).
  • RTCPeerConnection eşler arasında ses ve video iletişimini sağlar ve geriye bir nesne döndürür. Sinyal işleme, codec yönetimi, eşler arası iletişim, güvenlik ve bant genişliği yönetimini bu nesne üzerinden gerçekleştirir.
  • RTCDataChannel eşler arasında gerçekleşen harici verilerin çift yönlü iletişimine izin verir. WebSockets ile aynı API'yi kullanır ve çok düşük bir gecikme süresine sahiptir .

WebRTC API'si ayrıca istatistik verilerinin alınması için bir fonksiyonu da içerir:

  • getStats metodu, web uygulamasının WebRTC oturumlarıyla ilgili bir dizi istatistik verilerinin alınmasını sağlar. Bu istatistikî verilerin tanımı, ayrı bir W3C dokümanında açıklanmaktadır.

W3C, WebRTC için ORTC (Nesne Gerçek Zamanlı İletişim) geliştirmektedir.

Örnekler

WebRTC, Başlangıçta web tarayıcıları için geliştirilmesine rağmen, mobil platformlar ve IoT cihazları da dahil olmak üzere diğer birçok cihaz için uygulamalara sahiptir. Örnek olarak, bir web tarayıcısı üzerinden arama işlemlerini gerçekleştiren VoIP telefonları verilebilir.[11]

Cihaz ve tarayıcı desteği

WebRTC aşağıdaki tarayıcılar tarafından desteklenmektedir:

Gizlilik konusunda endişeler

Ocak 2015'te TorrentFreak sitesi, WebRTC'yi destekleyen tarayıcılarda ciddi bir güvenlik açığı bildirdi ve bir kullanıcının gerçek IP adresini göstererek VPN tünellerinin güvenliğini tehlikeye attığını söyledi. Tarayıcılarda varsayılan olarak IP adresi okuma istekleri tarayıcının geliştirici konsolunda görüntülenmemekte ve çoğu reklam engelleme / gizlilik / güvenlik eklentisi tarafından engellenememektedir. Bu önlemlere rağmen Google gibi reklam verenler ve diğer varlıklar tarafından çevrimiçi izlemeyi mümkün kılmıştır (ancak uBlock Origin eklentisi bu sorunu çözmektedir). Eylül 2019 itibarıyla, bu WebRTC kusuru hala Firefox 69.x'te ortaya çıkmakta ve buna rağmen varsayılan olarak kullanıcının dahili IP adresini web'e maruz bırakılmaktadır.[12]

Ayrıca bakınız

Kaynakça

  1. ^ "WebRTC 1.0: Real-time Communication Between Browsers". World Wide Web Consortium. 27 Eylül 2018. 7 Nisan 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Mart 2019. 
  2. ^ "Src/webrtc - Git at Google". 23 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Nisan 2020. 
  3. ^ a b "WebRTC". WebRTC. 9 Ocak 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Şubat 2018. 
  4. ^ "GStreamer 1.14 release notes". gstreamer.freedesktop.org. 20 Mart 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 19 Aralık 2019. 
  5. ^ "Are the WebRTC components from Google's acquisition of Global IP Solutions?". WebRTC. 7 Haziran 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Şubat 2018. 
  6. ^ Wauters (18 Mayıs 2010). "Google makes $68.2 million cash offer for Global IP Solutions". TechCrunch. 7 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Şubat 2018. 
  7. ^ Stefan Håkansson (26 Mayıs 2011). "Beyond HTML5: Experiment with Real-Time Communication in a Browser". Ericsson Research blog. 7 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Şubat 2018. 
  8. ^ "WebRTC 1.0: Real-time Communication Between Browsers (W3C Working Draft 27 October 2011)". World Wide Web Consortium. 27 Ekim 2011. 29 Ekim 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Şubat 2018. 
  9. ^ "WebRTC: So Much More Than Videoconferencing". GitHub. 7 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Şubat 2018. 
  10. ^ "WebRTC 1.0: Real-time Communication Between Browsers (W3C Candidate Recommendation 02 November 2017)". 2 Kasım 2017. 2 Kasım 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Nisan 2020. 
  11. ^ "Catch the Babelfish: Irish telco devises a new kind of cloud phone". Kasım 2017. 1 Kasım 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Nisan 2020. 
  12. ^ "Prevent WebRTC from leaking local IP address". uBlock Origin documentation. 26 Mart 2016. 21 Şubat 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Eylül 2016. 

Daha fazlası

  • Proust, S., ed. (May 2016). Additional WebRTC Audio Codecs for Interoperability. IETF. doi:10.17487/RFC7875. RFC 7875. Retrieved 2016-10-12.
  • Valin, J. M.; Bran, C. (May 2016). WebRTC Audio Codec and Processing Requirements. IETF. doi:10.17487/RFC7874. RFC 7874. Retrieved 2016-10-12.
  • Roach, A. B. (March 2016). WebRTC Video Processing and Codec Requirements. IETF. doi:10.17487/RFC7742. RFC 7742. Retrieved 2016-10-12.
  • Perumal, M.; Wing, D.; Ravindranath, R.; Reddy, T.; Thomson, M. (October 2015). Session Traversal Utilities for NAT (STUN) Usage for Consent Freshness. IETF. doi:10.17487/RFC7675. RFC 7675. Retrieved 2016-10-12.
  • Holmberg, C.; Hakansson, S.; Eriksson, G. (March 2015). Web Real-Time Communication Use Cases and Requirements. IETF. doi:10.17487/RFC7478. RFC 7478. Retrieved 2016-10-12.

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Mozilla Firefox</span> yazılım

Mozilla Firefox, Mozilla Vakfı ve onun alt kuruluşu Mozilla Corporation tarafından geliştirilen, özgür ve açık kaynak kodlu bir web tarayıcısıdır. Firefox; Windows, macOS, Linux, Android ve iOS işletim sistemlerinde kullanabilir. Yazılımın Windows, macOS, Linux, Android sürümlerinde web sayfalarının oluşturulması için Gecko motoru kullanılır. Mozilla tarafından geliştirilen Gecko, mevcut ve planlanmış web standartlarıyla uyumludur. 2015'te çıkan iOS için Firefox uygulamasında ise Apple'ın getirdiği kısıtlamalar nedeniyle iOS'in bütünleşik WebKit motoru kullanılır.

<span class="mw-page-title-main">HTTP</span> iletişim protokolü

HTTP bir kaynaktan dağıtılan ve ortak kullanıma açık olan hiperortam bilgi sistemleri için uygulama seviyesinde bir iletişim protokolüdür. HTTP, World Wide Web için veri iletişiminin temelidir; burada köprü metni belgeleri, örneğin bir fare tıklamasıyla veya bir web tarayıcısında ekrana dokunarak kullanıcının kolayca erişebileceği diğer kaynaklara köprüler içerir.

HTTPS bir bilgisayar ağı üzerinden güvenli iletişim için internet üzerinde yaygın olarak kullanılan bir HTTP uzantısıdır. HTTPS'te, iletişim protokolü Taşıma Katmanı Güvenliği (TLS) veya öncesinde, onun öncülü/selefi olan Güvenli Soket Katmanı (SSL) ile şifrelenir. Bu nedenle protokol sık sık TLS üzerinden HTTP veya SSL üzerinden HTTP olarak da adlandırılır.

<span class="mw-page-title-main">SIP</span>

Oturum başlatma Protokolü (SIP), ses, video ve mesajlaşma uygulamalarını içeren gerçek zamanlı oturumları başlatmak, sürdürmek ve sonlandırmak için kullanılan bir sinyal protokolüdür. VoIP gibi IP üzerinden üzerinden ses, görüntü ve anlık mesaj iletişimi yanı sıra LTE (VoLTE) üzerinden cep telefonu araması için multimedya iletişim oturumlarını sinyalize etmek ve kontrol etmek için kullanılır. Günümüz IP Telefonlarının çoğunluğu SIP Protokolü ile çalışmaktadır. Cisco gibi bazı üreticiler SIP kullanmakla beraber bazı telefon modellerinde SCCP tercih etmektedir.

<span class="mw-page-title-main">Ölçeklenebilir Vektör Grafikleri</span> 1999 yılından bu yana W3C Konsorsiyumu tarafından geliştirilen açık standart XML tabanlı bir vektörel grafik biçimi

Ölçeklenebilir Vektör Grafikleri, 1999 yılından bu yana W3C Konsorsiyumu tarafından geliştirilen açık standart XML tabanlı bir vektörel grafik biçimidir. W3C Konsorsiyumu tarafından kullanımı tavsiye edilen bir dosya biçimidir.

<span class="mw-page-title-main">World Wide Web</span> internet kullanarak ulaşılan, birbirine bağlı belgelerden oluşan küresel sistem

World Wide Web, Dünya Çapında Ağ (kısaca WWW veya Web), İnternet üzerinde yayınlanan birbirleriyle bağlantılı hiper-metin dokümanlarından oluşan bir bilgi sistemidir. Bu dokümanların her birine Web sayfası adı verilir ve Web sayfalarına İnternet kullanıcısının bilgisayarında çalışan Web tarayıcısı adı verilen bilgisayar programları aracılığıyla erişilir. Web sayfalarında metin, imaj, video ve diğer multimedya ögeleri bulunabilir ve diğer bağlantı ya da link adı verilen hiper-bağlantılar ile başka Web sayfalarına geçiş yapılabilir.

<span class="mw-page-title-main">HTML5</span> web programlama dili HTMLnin en güncel sürümü

HTML5, İnternet'in çekirdek teknolojilerinden HTML işaretleme standardının beşinci sürümüdür. Internet Explorer, Mozilla Firefox ve Opera tarayıcılarının güncel sürümleri tarafından kısmen desteklenmektedir. Kısaca H5 Google Chrome ve Safari tarayıcılarının güncel sürümleri üzerinde deneme aşamasında da olsa çok daha iyi bir şekilde çalışmaktadır. Günümüzde kullanılan HTML 4.1 sürümü, CSS desteğiyle ne kadar düzenli ve sağlam bir yapıda kodlanırsa kodlansın, yine de fazladan yazılan kodların fonksiyonelliğini bozduğu bilinmektedir. Bu yüzden HTML5, bu ihtiyaçları karşılamak adına geliştirilmeye başlanmıştır. Video paylaşım sitesi YouTube, deneme aşamasında HTML5'i kullanıcılarına sunmaktadır.

WebRTC Geçidi WebRTC ve SIP olarak kurulmuş VoIP teknolojisini bağlar. WebRTC World Wide Web Konsorsiyumu (W3C)tarafından hazırlanmış API tanımlamadır ve Web Tarayıcı'dan-Web Tarayıcı'ya uygulamalar için sesli arama, video sohbet ve gerek iç veya dış eklentiler olmadan mesajlaşmayı destekler.

<span class="mw-page-title-main">Google Duo</span>

Duo Google tarafından geliştirilen bir görüntülü sohbet uygulamasıdır. Bu, 18 Mayıs 2016 yılında Google I/O-da açıklandı ve 16 Ağustos 2016 yılında kullanıma açıldı. Google; benzer görüntülü görüşme uygulamaları olan Meet ve Duo'yu tek çatı altında Google Meet'de birleştirdi.

<span class="mw-page-title-main">Nokia Asha platform</span>

Nokia Asha platform, düşük sınırlı akıllı telefonlar için tasarlanmış bir mobil işletim sistemi (OS) ve bilgisayar platformudur, Nokia tarafından satın alınmış Norveç merkezli Smarterphone yazılımına dayalıdır. Nokia Asha serisi telefonlarında desteklenmekdedir. Platform Symbian, Maemo ve MeeGo sistemlerinden UI benzerliklerini devralır ve Nokia low-end cihazlarında Seri 40-ın yerini alır. Kullanıcı arayüzünün tasarım ekibine open webOS ve Nokia N9 için MeeGo tasarımında işinde çalışmış Peter Skillman, başkanlık etti. Platform, Nokianın Seri 40 sisteminin yerine bir Linux platformu olarak geliştirdiği Meltemi projesinin halefidir, ancak Temmuz 2012'de iptal edildi.

<span class="mw-page-title-main">Internet Explorer Mobile</span>

Internet Explorer Mobile Microsoft Trident düzen motorunun sürümlerine dayalı olarak Microsoft tarafından geliştirilen durdurulan bir mobil tarayıcıdır. IE Mobile varsayılan olarak Windows Phone ve Windows CE ile yüklenir. Internet Explorer Mobile'nin geçerli sürümleri, Internet Explorer'ın masaüstü sürümünü temel alır. Bununla birlikte, Pocket Internet Explorer olan eski sürümler, aynı düzen motoruna dayanmaz.

<span class="mw-page-title-main">İOS için Firefox</span>

iOS için Firefox Apple iPhone, iPad ve iPod Touch mobil cihazları için Mozilla'nın bir tarayıcısı. Firefox'ta masaüstü ve mobil için kullanılan Gecko düzen motorunu kullanmayan ilk Firefox markalı tarayıcıdır. Apple tarafından seçilen iOS güvenlik kısıtlamaları nedeniyle Firefox, Gecko'nun yerine yerleşik iOS WebKit tabanlı işleme çerçevesini kullandı. IOS for Firefox, Firefox Sync'i destekler ve Firefox'un tarama geçmişini, yer imlerini ve son sekmeleri senkronize edebilir.

<span class="mw-page-title-main">Android için Google Chrome</span>

Google Chrome Android Android sistemi için piyasaya sürülen Google Chrome'un bir sürümüdür. Google, 7 Şubat 2012 tarihinde, Android Ice Cream Sandwich cihazları için, seçilen ülkeler için Google Chrome Beta sürümünü piyasaya sürdü. Tarayıcının ilk kararlı sürümü 27 Haziran 2012'de piyasaya sürüldü. 26.02.2012 tarihinde piyasaya sürülen Chrome 18.0.1026.311, Android için Chrome'un Intel x86 tabanlı mobil cihazlarını destekleyen ilk sürümü idi.

<span class="mw-page-title-main">WebSocket</span> bilgisayar iletişim protokolü

WebSocket, tek bir TCP bağlantısı üzerinden tam çift yönlü iletişim kanalı sağlayan bir bilgisayar iletişim protokolüdür. WebSocket protokolü IETF tarafından 2011 yılında RFC 6455 ile standart hale getirilmiş ve WebIDL içerisindeki WebSocket API W3C tarafından standart hale getirilmektedir.

HTTP Katı Taşıma Güvenliği (HSTS), web sitelerini protokol indirgeme ve oturum çalma saldırılarına karşı korumaya yardımcı olan bir web güvenlik politikası mekanizmasıdır. Web sunucuları, kendisine gönderilen isteklerin yalnızca HTTPS üzerinden olması gerektiğini web tarayıcılarına bu mekanizma ile belirtir. Bu sayede kullanıcı, herhangi bir güvenlik çözümü sunmayan HTTP yerine Taşıma Katmanı Güvenliği (TLS/SSL) sağlayan HTTPS kullanarak ilgili web sitesine erişim sağlar. HSTS, RFC 6797 ile detaylandırılan bir IETF Standards Track protokolüdür.

Gerçek zamanlı iletişim, gerçek zaman sistemleri için anlık iletişimi garantisini vermek amacıyla oluşturulmuş yazılım protokollerinin veya donanımlarının yer aldığı kategoridir.

Puffin Browser, CloudMosa tarafından geliştirilen bir web tarayıcısıdır.

<span class="mw-page-title-main">Matrix (protokol)</span>

Matrix gerçek zamanlı iletişim için açık bir standart ve iletişim protokolüdür. Standart SMTP e-postasının şu anda depola ve ilet e-posta hizmeti için yaptığı şekilde, farklı hizmet sağlayıcılar arasında gerçek zamanlı iletişimin sorunsuz bir şekilde çalışmasını sağlamayı amaçlar ve tek bir iletişim hizmet sağlayıcısında hesapları olan kullanıcıların kullanıcılarla çevrimiçi sohbet, IP üzerinden ses ve görüntülü telefon yoluyla farklı bir servis sağlayıcının iletişim kurmasına izin verir. Bu nedenle, XMPP gibi protokollere benzer bir amaca hizmet eder, ancak mevcut herhangi bir iletişim protokolünü temel almaz.

Web'de kullanıcı aracısı, kullanıcı adına hareket eden ve "Web içeriğini alan, işleyen ve son kullanıcı etkileşimini kolaylaştıran" herhangi bir yazılımdır. Bu nedenle kullanıcı aracısı özel bir yazılım aracısı türüdür.

<span class="mw-page-title-main">Web geliştirme araçları</span>

Web geliştirme araçları, web geliştiricilerinin kaynak kodlarını test etmelerine ve hata ayıklamalarına olanak tanır. Bir web sayfasının doğrudan oluşturulmasına yardımcı olmamaları, bunun yerine bir web sitesinin veya web uygulamasının kullanıcı arayüzünü test etmek için kullanılan araçlar olmaları bakımından web sitesi oluşturuculardan ve entegre geliştirme ortamlarından (IDE'ler) farklıdırlar.