WebRTCとは?リアルタイム通信を支えるAPIの仕組みと、インターネットを変える可能性を徹底解説
今日のインターネットは、10年前とはまったく違う姿を見せています。当時、ビデオ会議のような少し野心的なことを実現したいなら、まともに動かないプラグインと格闘しなければなりませんでした。そう、Adobe Flashのことです。Flashは2010年、スティーブ・ジョブズによって「安全性に欠ける」「動作が遅い」「タッチデバイスの時代にそぐわない」と痛烈に批判されたことで有名になりました。
しかし今、より優れた選択肢が存在します。
それがWebRTCです。WebRTCの登場により、開発者はHTML5、JavaScript、CSSといったオープンなウェブ技術だけで、MMORPG(大規模多人数参加型オンラインロールプレイングゲーム)やビデオ会議ツールなどのリアルタイムアプリケーションを構築できるようになりました。
本記事では、WebRTCについて知っておくべきポイントをすべて解説します。
WebRTCで何ができるのか?
まず押さえておきたい最重要ポイントは、WebRTCが単一のAPI(アプリケーションプログラミングインターフェース)や製品ではないという点です。むしろWebRTCはAPIのファミリー(集合体)であり、それぞれ完成度が異なり、ブラウザごとの対応状況もまちまちで、担当する役割もまったく違います。
WebRTCのAPIの中には、PCのウェブカメラやマイクへのアクセスを取得するといった、地味な役割のものもあります。しかし、はるかに野心的な機能を持つものも存在します。
たとえば、あるAPIはユーザーの画面をリモートの相手と共有することを可能にします。別のAPIはシミュルキャストに対応し、品質や解像度の異なる複数の動画ストリームを配信できます。さらにMediaStream APIを使えば、開発者は音声をリアルタイムで処理し、ミュートや一時停止、トラックの追加などを必要に応じて行えます。
そして、これだけではありません。1,000語程度の記事で語り尽くせる範囲をはるかに超えた可能性が詰まっています。
要するに、WebRTCはリモートのコンピュータとリアルタイムで連携することを可能にする強力なAPI群なのです。非常にエキサイティングな技術であり、人々は思いもよらない革新的な用途に活用しています。
実際にどのように使われているのか?
WebRTCの成功事例として特に有名なのがAppear.inです。2012年のローンチ直後にレビューしましたが、ログインやアカウント登録、プラグインが一切不要で、洗練されたデザインのおかげでビデオ会議がぐっと快適になる点に感銘を受けました。ビデオチャットを始めるのは、ボタンを押して相手にリンクを共有するだけ。それだけのシンプルさです。
Appear.inだけがWebRTC対応のビデオ会議サービスではありません。大手企業による製品が次々と登場しています。CitrixのGoToMeeting FreeやFirefox Helloなどがその代表例で、Skype for WebもWebRTCを基盤としていると広く信じられています。
WebRTCは、ブラウザ上で動作する対戦型マルチプレイヤーゲームにも活用されています。その多くは低予算の作品ですが、大きな例外もあります。2014年末には、ピーター・ジャクソン監督の壮大なサーガの最終章に合わせたタイアップゲーム『ホビット:五軍の戦い』がリリースされました。
WebGLとWebRTCを駆使したこのゲームでは、プレイヤーは中つ国の勢力(オーク、エルフ、人間、ドワーフ)の一員となり、トールキンの幻想世界の正当な支配者の座を巡って他のプレイヤーと戦います。
しかし、WebRTCが驚くべき形で活用されている一方で、各種ブラウザでのサポート状況は決して十分とは言えません。
ブラウザの対応状況
予想通り、Google ChromeとFirefoxがWebRTCを最も包括的にサポートしていますが、両ブラウザとも目立つ欠落があります。たとえばFirefoxには、Chromeで利用できるSimulcast APIが実装されておらず、逆にChromeにはH.264動画ストリーミングがありません。
Operaのサポートも堅実ですが、Chromeと同じレンダリングエンジンを採用していることを考えれば、驚きではありません。
一方、Internet ExplorerとSafariは執筆当時WebRTCに非対応で、MicrosoftとAppleの陣営から将来の対応を示唆する動きも見られませんでした(※なお、その後Safariはバージョン11以降で標準対応しています)。ただし、WebRTC機能を後付けできるサードパーティ製ツールは存在します。
TemasysのSkylinkは、IEとSafariにWebRTC機能をもたらす無料プラグインです。ただし、動作するサイトが限られており、appear.inは対応外という難点があります。
セキュリティは大丈夫?
WebRTCは、かつてブラウザ内リアルタイム通信の定番だったAdobe Flashからすれば、明確な一大進歩です。Flashは脆弱性まみれで、ユーザーをハッカーやマルウェアの脅威に常に晒していました。この問題は、スティーブ・ジョブズが「なぜiPhoneにFlashが搭載されないのか」を説明した公開書簡の中でも指摘された点のひとつです。
幸い、WebRTCはFlash特有の問題を抱えていません。単体のソフトウェア——この場合はブラウザプラグイン——ではなく、APIだからです。
とはいえ、WebRTCにセキュリティ問題が皆無だったわけではありません。問題は発生しています。ただ、規模が違うのです。
昨年末、WebRTC APIの一部を利用したわずか数行のJavaScriptコードで、VPNユーザーの実際のIPアドレスを特定できてしまうことが発覚しました。
VPNは当然ながら、オンライン活動を秘匿したいプライバシー意識の高い人々に広く使われています。この問題を根本的に解決するアップデートは提供されておらず、当面はWebRTCを完全に無効化するしかありません。「Disable WebRTC」Firefox拡張機能やChrome用「Stop WebRTC」プラグインを使うか、あるいはJavaScript自体を無効化することで対応可能です。
今後の課題
WebRTCの持つ可能性は、いくら強調してもし過ぎることはありません。HTML5ファミリーの中でも、インターネットの使い方を変え、より協調的でインタラクティブなものへと進化させる可能性を最も秘めているのがWebRTCです。
しかしそのためには、乗り越えるべきハードルが山積みです。W3CはMicrosoftとAppleを巻き込み、対応ブラウザ間で一貫した体験を保証する必要があります。
それが実現するまで、WebRTCはニッチな技術にとどまり続けるでしょう。
同意しますか?反対ですか?ぜひコメント欄でお聞かせください。
-
「ドライブがオフライン」と表示される原因と解決方法
この記事では、iBoysoft Data Recovery for Macを使用してストレージデバイスのスキャンやデータ復元を行う際に表示される「ドライブがオフライン(The drive is offline)」というポップアップの意味について解説します。あわせて、ドライブをオンライン状態に戻すための実用的な対処法もご紹介します。目次:1. オフラインディスクとは?2. ドライブがオフラインになる問題の解決方法オフラインディスクとは?「ドライブがオフライン」は、iBoysoft Data Recovery for Macを使ってストレージデバイスから失われたデータをスキャンしているとき、または
-
VPNとは?その仕組みと活用法を徹底解説
「VPN」という言葉を聞いたことがある方は多く、実際に利用した経験がある方も少なくないでしょう。VPNは「Virtual Private Network(仮想プライベートネットワーク)」の略で、オンライン上のプライバシーを守るための技術です。かつては大企業や政府機関だけが利用するサービスでしたが、現在では一般ユーザーの間でもデータ保護のために広く使われています。VPNを活用すれば、位置情報を隠しながら、データを暗号化した状態で匿名のインターネット閲覧が可能になります。 テクノロジーが発展する現代において、インターネットに頼らない仕事はほとんどありません。もはやインターネットは生活の一部どこ