第 5 章 HTML5 技術を用いた仮想通信網上に 構築した応用システム構築手法構築した応用システム構築手法
5.4 実装
5.4.1 全体構成
実装したシステムの構成を図 5.2に示す.前章の通信モデルでは3カ所が接続している ことを示しているが,本実装および後の評価においては,2台のEdge Serverと1つのCore Serverによる構成で実装を行った. Edge Serverの数は論理的には制限はない.しかし,
Edge Serverの数が増えた場合,Core Serverに制御が集中するためCPU負荷やネットワー クトラフィックが増加する.この問題を回避するためには,負荷分散やトラフィック分散 などの技術を適用することも必要である.
5.4.2 仮想ネットワークの実装
通信モデルではHTTPトンネル技術によってセッションを開始する仮想ネットワークが 必要となる.第2章でも述べたとおり一般的な小学校では,インターネットへの接続には ファイヤウォール等が設置されており,エンドツーエンドのIP通信は困難である.そこ で,学校間をシームレスに接続できる仮想ネットワークであるedutabネットワークを使っ て構成した[48].edutabネットワークは学校で利用するPCのBrowserとData Centerに
配置したHTTP Serverの通信を想定して開発したものである.本研究では,学校に配置し
たEdge ServerとData Centerに配置したCore Server間の通信に機能拡張を行いServer 間でのedutabネットワークの構築を実現している.Edge Server A, BからCore Serverに
第5 章HTML5技術を用いた仮想通信網上に構築した応用システム構築手法
図5.2: 実装したシステムの構成
向けてHTTPトンネル技術を使って通信を開始する.また,教師や学生もCore Serverへ PCやTabletのBrowserを利用してedutabネットワークに接続を行う.
双方向の通信を実現する方法として,現在の実装ではWebSocketとXHR(XML Http Request)を利用できるようにした.HTTP ClientはHTTP Reverse Proxy Serverおよび HTTP Serverを介して,まずWebSocketでの通信を試みる.WebSocketでの通信が行え ない場合には,XHRでの擬似的な双方向通信を行うようにしている.XHRではHTTP ClientからHTTP Serverへ任意のタイミングでデータを送信し,HTTP Serverから返信 を受けることができる.そのためHTTP Clientから始まる通信は問題ない.
HTTP ServerからHTTP Clientへの通信について説明する.HTTP ServerはHTTP Clientからのリクエストにもとづいてパケットを返答する.そこで,HTTP Clientから定 期的に送信要求パケットを送信するようにしている.HTTP Clientは送信要求を送った後,
一定時間待ってもデータがHTTP Serverから送られてこない場合には,再度送信要求パ ケットを送信する.データが送られてきた場合は,データを受け取った後ただちに送信要 求パケットを送信し,また受信待ち状態となる.実装では受信待ち時間を10秒とした.
5.4.3 仮想ネットワーク通信の詳細
通信モデル上でDevice ManagerとDevice Controllerが実際に通信を開始するまでのプ ロセスをより詳細に図5.3を用いて説明する.ここではSchool Aに配置されたEdge Server
第5 章HTML5技術を用いた仮想通信網上に構築した応用システム構築手法
図5.3: WebSocket技術を用いて実装したedutabネットワークに遠隔装置を制御するため の仮想通信網をオーバーレイした通信網の詳細
AのDevice ControllerがCore ServerのDevice Managerと通信を開始するまでのプロセ スを例としている.そのため,図の中からはDevice Managerに指令を出す教師のPC,学 習者が利用するTabletは省略している.
1. School AのEdge Server A はHTTP Client Aを起動し,Data Center のHTTP Serverを経由してSession Controllerに通信開始リクエストを送る.
2. Session Controllerは通信が可能であれば仮想ネットワーク層(edutab network層)へ 通信を移行させる.
3. Session ControllerとHTTP Client Aでedutab network層の通信を開始する.
4. HTTP Client Aはユーザ情報をReflectorに送信する.
5. ReflectorはHTTP Client Aの情報を登録して,HTTP Client Aに応答を返す.
6. HTTP Client AとReflectorでの接続が完了しedutab network層での双方向の通信 が行える状態となる.
7. edutab network層を経由してDevice ManagerとDevice Controllerが通信を行う.
第5 章HTML5技術を用いた仮想通信網上に構築した応用システム構築手法
Session Controllerは各HTTP Clientとのedutabネットワーク通信のセッション管理,
維持を行う.具体的には,一度セッションが開始されると,Session Controllerは接続され
たHTTP Clientに対してポーリングを行う.ポーリングに対する応答がないとセッション
の終了を行う.現在の実装ではポーリングの間隔は25秒に設定している.
ReflectorはSession Controllerを通じてユーザ情報(利用者ID, Session ID,役割(教師,
生徒))に基づきHTTP Clientとの通信を行う.Session ControllerとReflectorの間の関 係は,ルータの役割と似ている.すなわち,Session Controllerは経路情報を構築するため の設定を行う部分であり,Reflectorは構築された経路情報に基づきパケットの転送を行う 転送エンジンである.