LXF169:Что за штука
|
|
|
Что за штука...WebRTC
Марко Фиоретти изучает WebRTC – проект, который обещает сделать связь в реальном времени доступной через браузеры и другие web-приложения.
В
Какие возможности предоставляет этот WebRTC?
О
Самый простой, хоть и обтекаемый ответ – видеозвонки в реальном времени и обмен данными через браузеры.
В
Но ведь это уже возможно в Сети. Мне известны такие сайты.
О
Строго говоря, вы правы. Но на практике это возможно только между двумя пользователями и при условии совпадения браузера, ОС, внешних плагинов, знака Зодиака, группы крови и прочих недокументированных требований – также меняющихся в зависимости от сайта. В то время как с WebRTC максимальное количество кода, необходимого для осуществления коммуникации, стандартизовано и собрано вместе, чтобы можно было его интегрировать в любой современный сетевой обозреватель.
В
С тем, чтобы у разработчиков приложений и web-дизайнеров было меньше хлопот, верно?
О
Именно! Цель – создание открытых библиотек, которые позволят несколькими строчками JavaScript выразить что-то вроде «отправить вывод локальной web-камеры в окно удаленного браузера». И быть уверенным, что все будет работать вне зависимости от того, какой именно там браузер. Можете представить, сколько web-сервисов смогут это использовать?
В
Много. Пожалуй, так много, что конкретно и не сообразить. Пример не приведете?
О
Ограничимся семейными потребностями? Ну, вообразите онлайн-игры, обучение, интернет-магазины и сервисы вроде «щелкните здесь и покажите нам, как бы вы хотели изменить дизайн своей куртки».
В
Ну ясно. Даже социальные сети могут применять WebRTC, да?
О
Конечно. Сделать видеозвонок одним щелчком по контакту будет быстрее и проще, чем сейчас, в любой социальной сети. Или между разными социальными сетями.
В
Похоже, WebRTC составит конкуренцию и профессиональным приложениям для видеоконференций.
О
И да, и нет. Конечно, Web-RTC годится и для этого, и наверняка кто-то его применит. Но похоже, что прямой конкуренции не будет. Профессиональные продукты для сетевых видеоконференций имеют свою специфику и целевую аудиторию. Суть WebRTC в унификации коммуникаций в реальном времени. Как именно – это другой вопрос, по крайней мере, в средне/долгосрочной перспективе.
В
Здорово. Значит, я смогу подключаться к сайтам WebRTC через Skype?
О
Поговаривали, что Skype планирует создать клиент на основе браузера, способный подключаться напрямую к клиентам Skype. Такой клиент может использовать и WebRTC. Но напомню, что смысл WebRTC – в упразднении автономных и несовместимых программ наподобие Skype, через перевод их функций в браузеры.
В
Понятно. Но сможет ли браузер с WebRTC позвонить на обычный телефон?
О
Такие инструменты уже существуют – например, webrtc2sip (http//code.google.com/p/webrtc2sip), программа, выполняющая функции шлюза между соответствующе укомплектованными браузерами и традиционными телефонными сетями. Будут ли и насколько будут такие инструменты масштабироваться и применяться, пока не известно.
В
Давайте заглянем под капот. Каковы основные компоненты WebRTC?
О
Это три интерфейса программирования приложений: MediaStream, RTCPeerConnection и RTCDataChannel.
В
Чем занимается, например, первый из них, MediaStream?
О
MediaStream предоставляет доступ (с разрешения пользователя) к таким потокам данных, как выводы web-камеры и микрофона. Благодаря MediaStream, приложения на базе браузера могут также управлять этими потоками в реальном времени, например, добавлять спецэффекты.
В
Это касается исключительно аудио и видео?
О
Нет. Согласно спецификации, в финале MediaStream должен включать и поддерживать любые потоки в реальном времени, в том числе данные сенсоров и подключаемых устройств.
В
Прямо технократия!.. Ну, а что у нас с RTC PeerConnection?
О
Эта часть WebRTC позволит браузерам делать нечто трудновыполнимое сейчас: напрямую обмениваться медиа-данными в реальном времени по каналам, являющимся одновременно зашифрованными и динамически оптимизированными, чтобы поддерживать наилучшее качество с доступным расширением.
В
А каким образом мне может пригодиться Data Channel?
О
Рано или поздно, общаясь с друзьями в вашем браузере, вы захотите обмениваться с ними файлами, возможно, просто перетаскивая иконки. Как раз Data Channel и добавит такую возможность в WebRTC-общение. Однако по состоянию на январь 2013 его внедрение все еще под большим вопросом.
В
Так ведь браузеры зачастую защищены межсетевыми экранами, либо не имеют публичных IP-адресов. Будет ли при этом работать WebRTC?
О
Если ваш босс велит системному администратору компании заблокировать все интернет-соединения, то ничего не поделаешь. В других, менее радикальных условиях, WebRTC должен работать без проблем, поскольку в нем есть соответствующие технологии.
В
Поясните, пожалуйста, как эти технологии работают.
О
Через серверы, помогающие, к примеру, одноранговым узлам WebRTC, упрятанным за NAT, определять свои публичные IP. Если вам непременно нужны все эти гнусные, маловразумительные технические подробности, обратитесь к разделам сайта, посвященным протоколам TURN, STUN и ICE.
В
WebRTC, надеюсь, является открытым проектом?
О
Да, предложение W3C по стандартам вы найдете на www.w3.org/TR/webrtc. Код представлен в виде сборки библиотек JavaScript, которые используют, или будут использовать, несколько API.
В
Есть ли у WebRTC за спиной какие-нибудь известные компании-разработчики?
О
Ключевые фигуры – Mozilla, Opera и Google: им эта технология может пригодиться для пользователей Talk и Hangout.
В
А как насчет Apple? Или Microsoft, который, вдобавок, владеет Skype?
О
Apple, похоже, пока выбрали позицию «поживем – увидим». Microsoft и Skype подключились к официальной дискуссии позднее прочих и предложили собственный подход.
В
И в чем этот собственный подход заключается?
О
Предложение Microsoft носит название Customizable, Ubiquitous Real-Time Communication [Настраиваемые повсеместные коммуникации в реальном времени], или коротко CU-RTC. Предполагается, что этот проект будет менее амбициозен и более прост в реализации, нежели WebRTC, однако зависимость от браузера будет такой же, как сейчас, а может, и увеличится. Mozilla и их соратники, естественно, утверждают, что и с WebRTC все не так уж сложно, а ограничения если и наличествуют, то временные. Поживем –увидим.
В
Станет ли WebRTC глобальным решением для общения в реальном времени, или что-то существенное ему не охватить?
О
Ну, WebRTC представляет собой набор спецификаций, касающихся только технических вопросов передачи голоса, видео и данных между приложениями в реальном времени. И если бы возникло желание или потребность перевести все наши голосовые и видеозвонки на WebRTC и браузер, было бы две проблемы: первая касается формальной стандартизации, и ею ни в коем случае нельзя пренебрегать, дабы защитить пользователей от несовместимостей версий.
А если бы общение через браузер должно было заменить нынешние стационарные или мобильные телефонные звонки, понадобилось бы создать всю остальную инфраструктуру, от прямых экстренных вызовов до списков абонентов и соглашений на уровне услуг. Но ведь пока такого желания и такой потребности нет, верно?
В
Верно. Но мне чрезвычайно любопытно. Могу я уже сегодня попробовать WebRTC?
О
Конечно, можете – на последней версии Chrome (или, приложив малость усилий, на Internet Explorer). Заходите на http://www.webrtc.org/demo, убедитесь, что ваша web-камера, микрофон и колонки подключены и попробуйте одну из предложенных там демок.
На устройствах Android или iOS можете попробовать обозреватель Bowser (https://labs.ericsson.com/apps/bowser), но поскольку в нем пока используется старый протокол сигнализации, вы не сможете связаться с пользователями Chrome.
В
Ну, а что будет со звонками на обычные телефоны?
О
Разработчики открытого приложения sipml5 (http://sipml5.org) говорят, что с его помощью можно прямо из браузера получать доступ как к сетям мгновенных сообщений, так и к SIP-шлюзам, которые способны переадресовать ваши звонки в простые телефонные сети.
В
После всего этого я хочу знать больше о WebRTC!
О
За более полной информацией о том, как устроен WebRTC, обратитесь к весьма объемному, но доходчивому учебнику на www.html5rocks.com/en/tutorials/webrtc/basics. Чтобы быть в курсе последних новостей, следите за официальным блогом WebRTC (www.webrtc.org/blog) или @webrtc в Twitter. |