ICEを用いた通信経路探索
ICEとはInteractive Connectivity Establishmentの略語で、IETFのMMUSICワーキンググループによって開発されているNATを越えて通信経路を確立するための技術を指します。
ICEを用いて通信経路を探索し、ネットワーク的に最短の通信経路を選択する必要があります。
- (1)まずクライアント同士の直接P2P接続を試みる
- (2)直接経路が確立できなかった場合、次に外部のSTUN(注3)サーバを用いて外部からみたIPアドレスとポートによるP2P接続を試みる
- (3)それでも接続できなかった場合、TURN(注4)サーバを経由した接続を試みる
STUN : Simple Traversal of UDP through NATs。
TURN : Traversal Using Relay NAT。
多段NATの下にいるブラウザと通信する場合など、ネットワークの状況次第ではSTUNサーバを用いても直接接続する通信経路が取れない場合があります。この場合、外部のTURNサーバにパケットを中継させることでブラウザ間を接続することもできますが、TURNサーバに負荷が集中するためWebRTCのメリットが享受できません。TURNサーバを使用しても問題ないのか、あるいはネットワーク構成を見直すほうが良いのか、十分検討すべきでしょう。
WebRTCを活用して実現する遠隔作業支援システムの全体像
これまで説明したように、WebRTCを活用すれば、これまで専用アプリケーションを構築しなければ扱えなかった映像や音声といったストリームデータを、ブラウザ上で簡単に扱うことができるようになります。
それではWebRTCを活用したブラウザアプリの具体例として、遠隔作業支援システムを作ってみましょう。以下は実装する遠隔作業支援システムの全体像です。
作業準備
最初に、スマートグラスに内蔵されたブラウザと監視端末のブラウザをWebRTCで接続しペアリングします。
通常作業
通常作業時は、スマートグラスのカメラから得た作業者の視界を支援者の監視端末上に表示します。
トラブル発生
トラブル発生時は、支援者は作業者との音声通話を開始し指示を出します。テキストメッセージを作業者のスマートグラスへ転送し、文字で指示を出すこともできます。必要であればスマートグラスから得た作業者の視界をキャプチャし、フリーハンドでキャプチャ画像に指示を書き込み(ココに注意!と赤丸と付けるなど)、作業者のスマートグラスへ転送することもできるようにしましょう。
作業終了
作業が終了すると、スマートグラスと監視端末のWebRTC接続を切断し、ペアリングを解除します。


