SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所

WebRTC(PeerJS)で遠隔作業支援システムを作る(基礎知識編)

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所 第16回(前編)

ICEを用いた通信経路探索

 ICEとはInteractive Connectivity Establishmentの略語で、IETFのMMUSICワーキンググループによって開発されているNATを越えて通信経路を確立するための技術を指します。

 ICEを用いて通信経路を探索し、ネットワーク的に最短の通信経路を選択する必要があります。

ICEを用いた通信経路探索
ICEを用いた通信経路探索
  • (1)まずクライアント同士の直接P2P接続を試みる
  • (2)直接経路が確立できなかった場合、次に外部のSTUN(注3)サーバを用いて外部からみたIPアドレスとポートによるP2P接続を試みる
  • (3)それでも接続できなかった場合、TURN(注4)サーバを経由した接続を試みる

注3

 STUN : Simple Traversal of UDP through NATs。

注4

 TURN : Traversal Using Relay NAT。

 多段NATの下にいるブラウザと通信する場合など、ネットワークの状況次第ではSTUNサーバを用いても直接接続する通信経路が取れない場合があります。この場合、外部のTURNサーバにパケットを中継させることでブラウザ間を接続することもできますが、TURNサーバに負荷が集中するためWebRTCのメリットが享受できません。TURNサーバを使用しても問題ないのか、あるいはネットワーク構成を見直すほうが良いのか、十分検討すべきでしょう。

WebRTCを活用して実現する遠隔作業支援システムの全体像

 これまで説明したように、WebRTCを活用すれば、これまで専用アプリケーションを構築しなければ扱えなかった映像や音声といったストリームデータを、ブラウザ上で簡単に扱うことができるようになります。

 それではWebRTCを活用したブラウザアプリの具体例として、遠隔作業支援システムを作ってみましょう。以下は実装する遠隔作業支援システムの全体像です。

遠隔作業支援システムの全体像
遠隔作業支援システムの全体像

作業準備

 最初に、スマートグラスに内蔵されたブラウザと監視端末のブラウザをWebRTCで接続しペアリングします。

通常作業

 通常作業時は、スマートグラスのカメラから得た作業者の視界を支援者の監視端末上に表示します。

トラブル発生

 トラブル発生時は、支援者は作業者との音声通話を開始し指示を出します。テキストメッセージを作業者のスマートグラスへ転送し、文字で指示を出すこともできます。必要であればスマートグラスから得た作業者の視界をキャプチャし、フリーハンドでキャプチャ画像に指示を書き込み(ココに注意!と赤丸と付けるなど)、作業者のスマートグラスへ転送することもできるようにしましょう。

作業終了

 作業が終了すると、スマートグラスと監視端末のWebRTC接続を切断し、ペアリングを解除します。

次のページ
遠隔作業支援システムの環境準備

この記事は参考になりましたか?

近未来の技術トレンドを先取り! 「Tech-Sketch」出張所連載記事一覧

もっと読む

この記事の著者

松井 暢之(TIS株式会社)(マツイ ノブユキ)

TIS株式会社 コーポレート本部 戦略技術センターに所属。アーキテクチャ設計やデータモデル策定、フレームワーク構築などバックエンド側のアーキテクトとしてプロジェクトに従事していたが、現部門への異動を契機に戦略技術の検証や新規サービスの事業企画に軸足を移す。近頃はなぜか、インフラ・運用のパターン化と自動化を目...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8016 2014/09/25 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー