WebRTC اکنون یک استاندارد W3C و IETF است

مروری کوتاه بر تاریخچه، معماری، موارد استفاده و آینده WebRTC.

هویب کلینهوت
Huib Kleinhout

فرآیند تعریف استاندارد وب یک فرآیند طولانی است که سودمندی، سازگاری و سازگاری را در بین مرورگرها تضمین می کند. امروزه W3C و IETF تکمیل شاید یکی از مهم‌ترین استانداردها در طول همه‌گیری است: WebRTC.

تاریخ

WebRTC پلتفرمی است که به مرورگرها، برنامه‌های موبایل و برنامه‌های دسکتاپ قابلیت‌های ارتباطی بلادرنگ را می‌دهد که معمولاً برای تماس ویدیویی استفاده می‌شود. این پلتفرم از مجموعه ای جامع از فناوری ها و استانداردها تشکیل شده است. گوگل ایده ایجاد WebRTC را در سال 2009 آغاز کرد، به عنوان جایگزینی برای Adobe Flash و برنامه های دسکتاپ که نمی توانستند در مرورگر اجرا شوند. نسل قبلی محصولات مبتنی بر مرورگر بر پایه فناوری اختصاصی دارای مجوز ساخته شده بودند. محصولات مختلفی با این فناوری ساخته شدند، از جمله Hangouts. سپس گوگل شرکت هایی را که مجوز این فناوری را از آن ها دریافت کرده بود، خریداری کرد و آن را به عنوان پروژه منبع باز WebRTC در دسترس قرار داد. این پایگاه کد در کروم یکپارچه شده است و توسط اکثر برنامه های کاربردی با استفاده از WebRTC استفاده می شود. به همراه سایر فروشندگان مرورگرها و پیشروان صنعت مانند موزیلا، مایکروسافت، سیسکو و اریکسون، استانداردسازی WebRTC در W3C و IETF آغاز شد. در سال 2013، موزیلا و گوگل تماس تصویری بین مرورگرهای خود را نشان دادند . از طریق تکامل استاندارد، بسیاری از بحث‌های معماری منجر به تفاوت‌های پیاده‌سازی در مرورگرها شده و سازگاری و قابلیت همکاری را به چالش می‌کشد. بسیاری از این اختلافات در نهایت با نهایی شدن استاندارد در سال های گذشته حل و فصل شدند. مشخصات WebRTC اکنون با مجموعه ای کامل از تست ها و ابزارهای پلتفرم برای رسیدگی به سازگاری همراه است و مرورگرها تا حد زیادی پیاده سازی های خود را بر این اساس تطبیق داده اند. این به یک دوره چالش برانگیز پایان می دهد که در آن توسعه دهندگان وب مجبور بودند به طور مداوم خدمات خود را برای پیاده سازی های مختلف مرورگر و تغییرات مشخصات بکار گیرند.

معماری و عملکرد

RTCPeerConnection API بخش مرکزی مشخصات WebRTC است. RTCPeerConnection با اتصال دو برنامه در نقاط پایانی مختلف برای برقراری ارتباط با استفاده از یک پروتکل همتا به همتا سروکار دارد. PeerConnection API با getUserMedia برای دسترسی به دوربین و میکروفون و getDisplayMedia برای ضبط محتوای صفحه تعامل نزدیک دارد. WebRTC به شما امکان می دهد جریان هایی را که شامل محتوای صوتی و/یا ویدیویی و همچنین داده های باینری دلخواه از طریق DataChannel هستند ارسال و دریافت کنید. عملکرد رسانه برای پردازش، رمزگذاری، و رمزگشایی صدا و تصویر، هسته اصلی هر پیاده سازی WebRTC را فراهم می کند. WebRTC از کدک های صوتی مختلف پشتیبانی می کند که Opus بیشترین استفاده و همه کاره بودن را دارد. پیاده‌سازی WebRTC برای پشتیبانی از کدک ویدیویی VP8 رایگان Google و H.264 برای پردازش ویدیو مورد نیاز است. اتصالات WebRTC همیشه رمزگذاری شده است که از طریق دو پروتکل موجود به دست می آید: DTLS و SRTP. WebRTC به شدت بر استانداردها و فناوری های موجود، از کدک های ویدیویی (VP8، H264)، پیمایش شبکه (ICE)، انتقال (RTP، SCTP)، تا پروتکل های توصیف رسانه (SDP) تکیه دارد. این در بیش از 50 RFC با هم گره خورده است.

موارد استفاده: زمانی که موضوع چند میلی ثانیه است

WebRTC به طور گسترده در برنامه‌های حساس زمانی مانند جراحی از راه دور، نظارت بر سیستم، و کنترل از راه دور اتومبیل‌های خودمختار، و تماس‌های صوتی یا تصویری ساخته‌شده بر روی UDP که در آن بافر امکان‌پذیر نیست، استفاده می‌شود. تقریباً تمام خدمات تماس ویدیویی مبتنی بر مرورگر از شرکت‌هایی مانند Google، Facebook، Cisco، RingCentral و Jitsi از WebRTC استفاده می‌کنند. Google Stadia و NVIDIA GeForce NOW از WebRTC استفاده می‌کنند تا جریان بازی را از ابر به مرورگر وب بدون تأخیر محسوس دریافت کنند.

Pandemic بر عملکرد تماس ویدیویی تمرکز می کند

در طول سال گذشته، WebRTC به دلیل افزایش تماس ویدیویی از داخل مرورگر، 100 برابر افزایش استفاده در کروم داشته است. فروشندگان مرورگرها با درک این موضوع که تماس ویدیویی به بخش اساسی زندگی بسیاری از مردم در طول همه‌گیری تبدیل شده است، شروع به بهینه‌سازی فناوری‌هایی کرده‌اند که تماس ویدیویی به آن بستگی دارد. زمانی که کارمندان و دانش‌آموزان شروع به کار و مطالعه از خانه کردند، این امر به‌ویژه مهم بود. در سال گذشته، Chrome تا 30 درصد برای تماس ویدیویی با باتری سازگارتر شده است، با بهینه‌سازی‌های بیشتری برای سناریوهای استفاده سنگین. موزیلا، اپل و مایکروسافت همگی پیشرفت‌های قابل توجهی در پیاده‌سازی WebRTC خود از طریق همه‌گیری ایجاد کرده‌اند ، به‌ویژه در حصول اطمینان از رعایت استانداردهای رسمی‌شده.

آینده WebRTC

در حالی که WebRTC اکنون به عنوان یک استاندارد W3C تکمیل شده است، پیشرفت ها همچنان ادامه دارد. کدک ویدیویی جدید AV1 که تا 50 درصد از پهنای باند را ذخیره می کند در WebRTC و مرورگرهای وب در دسترس است. انتظار می رود که بهبودهای مداوم در پایه کد منبع باز باعث کاهش بیشتر تاخیر و بهبود کیفیت ویدیوی قابل پخش شود. WebRTC NV ابتکار عمل را برای ایجاد API های تکمیلی برای فعال کردن موارد استفاده جدید جمع آوری می کند. اینها شامل برنامه‌های افزودنی برای APIهای موجود برای کنترل بیشتر بر عملکردهای موجود مانند کدگذاری ویدیوی مقیاس‌پذیر و همچنین APIهایی هستند که به اجزای سطح پایین‌تر دسترسی دارند. دومی انعطاف بیشتری به توسعه دهندگان وب می دهد تا با ادغام اجزای WebAssembly سفارشی با کارایی بالا، نوآوری کنند. با ظهور شبکه‌های 5G و تقاضا برای خدمات تعاملی بیشتر، انتظار داریم در سال آینده شاهد افزایش مستمر خدمات در بالای WebRTC باشیم.