本発明の一実施形態を、図面を参照して説明する。図1に示すように、本実施形態の通信システムは、制御(監視または操作)対象となるクライアント機1と、クライアント機1をリモートモニタリングまたはリモートコントロールする者が使用する端末であるコントロール機2と、クライアント機1とコントロール機2との仲立ちをするサーバ装置3とを主たる構成要素とし、クライアント機1とサーバ装置3との間、及びコントロール機2とサーバ装置3との間でそれぞれ情報通信が可能であるように、これらを電気通信回線4を介して接続して構築されるものである。
特に、本実施形態では、電気通信回線4として、インターネット、公衆電話網や、携帯電話網、PHS網、公衆無線LAN、WiMAX(登録商標)その他の移動体無線通信網のような、公開のネットワークを利用することを想定している。尤も、クライアント機1とサーバ装置3とを繋ぐ通信路の全体が公開ネットワークであるとは限られず、コントロール機2とサーバ装置3とを繋ぐ通信路の全体が公開ネットワークであるとも限られない。例えば、クライアント機1やコントロール機2は、直接には非公開の有線LANまたは無線LANに接続しており、そのLANを経由して間接的にインターネット等の公開ネットワークに接続することがある。
クライアント機1は、何らかの作動を行う作動機構1q、及び各種の情報を取得するセンサ1k、1l、1m、1n、1o、1pを有した、遠隔操縦可能なロボット、作業用機器または監視用機器である。作動機構の具体例としては、クライアント機1自身を移動させるための車輪(駆動輪)1qや無限軌道、回転翼及び舵を含む飛行機構といった移動用の機構、クライアント機1の周囲に存在する物に対して物理的な作業を行うためのロボットアーム等の作業用の機構、太陽光発電パネルや風力発電用風車等の発電用の機構、等が挙げられる。
センサ1k、1l、1m、1n、1o、1pは、クライアント機1の所在する場所に関する情報を収集するためのものであったり、クライアント機1自身の状況を知得するためのものであったりする。センサの具体例としては、クライアント機1の周辺を撮影するカメラ(イメージセンサ)1k、音声を録音するマイク1lの他、温度センサ1m、湿度センサ、気圧センサ、照度センサ、二酸化炭素や酸素等の所定種類のガスの濃度を計測するセンサ、クライアント機1の付近に存在する何らかの物と当該クライアント機1との距離を計測する対物距離センサ(測距センサ)1n、降雨の有無または降雨量を検出する降雨センサ、クライアント機1が所在する場所の土壌に含まれる水分量を計測するセンサ、クライアント機1の周囲にいる人または動物の存在を感知する人感センサ(パッシブ赤外線センサ)、クライアント機1の所在する位置座標を知得するためのGPS(Global Positioning System)信号受信装置1o、クライアント機1の移動方向や移動速度を検出するための加速度センサ(モーションセンサ、慣性センサまたはジャイロセンサ)1p、ロボットアームの姿勢を決定するサーボモータまたはステッピングモータのコントローラ(ロボットアームに設けられたモータの回転量等を出力する)、ロボットアームに加えられている荷重の大きさを計測する重量センサ、発電機構による発電量(電圧及び/または電流)を検出する回路、クライアント機1に実装されたバッテリの現在の充電量(バッテリ電圧及び/またはバッテリ電流)を検出する回路、等が挙げられる。
クライアント機1を制御しようとする者は、コントロール機2を使用し、電気通信回線4、特にインターネット等の公開のネットワークを経由して、対象のクライアント機1にコマンドを送信する。コマンドは、クライアント機1の有する作動機構1qやセンサを作動させまたはその作動を停止させるための指令、例えばクライアント機1の移動方向、移動距離または移動速度の指定を含む移動命令や、ロボットアームの駆動命令、カメラ1kによる撮影及び撮影した静止画像または動画像の送出命令、等である。
そして、クライアント機1は、当該コントロール機2に対し、インターネット等の公開のネットワークを経由して、レポートを送信する。レポートは、クライアント機1がセンサ1k、1l、1m、1n、1o、1pにより撮影、録音、計測等して取得した各種の情報や、コントロール機2から与えられた指令に従い作動を実行した結果の情報、または作動実行中の自身若しくは作動機構1qの状態を示す情報等である。レポートの多くは、コントロール機2から与えられたコマンドに対する応答でもある。コントロール機2を制御する者は、このレポートをコントロール機2により受信して、その内容を確認する。
尤も、クライアント機1とコントロール機2とがP2P(Peer To Peer)でコマンドやレポートをやり取りするわけではない。コントロール機2が発信するコマンドは、一旦サーバ装置3に受信され、このサーバ装置3からクライアント機1に送信される。クライアント機1が発信するレポートもまた、一旦サーバ装置3に受信され、このサーバ装置3からコントロール機2に送信される。
クライアント機1とサーバ装置3との通信、及びコントロール機2とサーバ装置3との通信はそれぞれ、インターネット等の公開ネットワークにおいて普遍的に用いられるリクエスト/レスポンス型の通信プロトコルに則って行う。特に、本実施形態では、その通信プロトコルとして、HTTPまたは(コマンドやレポートの暗号化が必要であれば)HTTPSを用いることとしている。
本実施形態のクライアント機1は、作動機構1q及び各種センサ1k、1l、1m、1n、1o、1pを備える本体11に汎用の情報処理端末12を搭載して構成される。情報処理端末12の具体例としては、携行可能な小形のパーソナルコンピュータ、ワークステーション、PDA、携帯電話端末(特に、スマートフォン)、タブレット型端末、ビデオゲーム機、等が挙げられる。
図2に示すように、情報処理端末12は、CPU(Central Processing Unit)1a、メインメモリ1b、補助記憶デバイス1c、操作入力デバイス1d、オーディオコーデック1e、ビデオコーデック1f、通信インタフェース1g、スピーカ1h、ディスプレイ1i等のハードウェア資源を備え、これらがコントローラ(システムコントローラ、I/Oコントローラ等)1jにより制御されて連携動作するものである。
補助記憶デバイス1cは、ハードディスクドライブ、フラッシュメモリ、光学ディスクドライブ、その他である。操作入力デバイス1dは、手指で操作可能なタッチパネル、トラックパッド、マウス、押下ボタンやキーボード等である。オーディオコーデック1eは、符号化されている音声データを復号化してスピーカ1hから音声出力する。ビデオコーデック1fは、CPU1aより受けた描画指示をもとに表示させるべき画面を生成しその画面信号をディスプレイ1iに向けて送出するGPU(Graphics Processing Unit)、画面や画像のデータを一時的に格納しておくビデオメモリ等を要素とする。オーディオコーデック1e、ビデオコーデック1fはそれぞれ、ハードウェアでなくソフトウェアとして実装することも可能である。
通信インタフェース1gは、外部と情報の授受を行うためのデバイスであって、Ethernet(登録商標)用のNIC(Network Interface Card)や無線LAN用のWi−Fi(登録商標)デバイス、移動体無線通信網用の無線デバイス、短距離通信用のBluetooth(登録商標)トランシーバ等である。これら以外に、USB(Universal Serial Bus)、IEEE1394等のインタフェースを実装していることもある。
また、図3に示すように、クライアント機1の本体11は、カメラ1k、マイク1l、温度センサ1m、測距センサ1n、GPS信号受信装置1o、加速度センサ1p、バッテリ充電量検出回路等の各種センサ、移動機構1qやロボットアーム、発電機構等の作動機構、並びに、通信インタフェース1r及びこれらを制御する制御回路1sを備えている。
クライアント機1の本体11と情報処理端末12とは、Bluetooth(登録商標)やUSB等の通信インタフェース1g、1rを介して接続する。
CPU1aによって実行されるべきプログラムは補助記憶デバイス1cに格納されており、プログラムの実行の際には補助記憶デバイス1cからメインメモリ1bに読み込まれ、CPU1aによって解読される。本実施形態では、既知のOS(Operating System)プログラムやこれに付帯する各種デバイスドライバプログラムが予めインストールされ、他のプログラムによる上記ハードウェア資源の利用を仲介する。
しかして、情報処理端末12には、本実施形態の通信システムを構築するために必要となるクライアント機1用プログラムがインストールされる。当該情報処理端末12は、プログラムに従い、図4に示すレポート送信部101及びコマンド受信部102としての機能を発揮する。
レポート送信部101は、情報処理端末12の通信インタフェース1gを利用し、クライアント機1からコントロール機2に伝達するべきレポートを、電気通信回線4経由で送信する。クライアント機1の情報処理端末12は、クライアント機1の本体11のセンサ1k、1l、1m、1n、1o、1pが取得した情報等を含むレポートを生成し(その過程で、必要に応じ、センサ1k、1l、1m、1n、1o、1pが取得した信号を符号化することがある)、これをHTTPリクエスト(例えば、POSTメソッド)の形でサーバ装置3に向けてアップロード送信する。因みに、情報処理端末12自身にカメラやマイク等のセンサが実装されている場合には、当該センサが取得した情報を含むレポートを送信することもできる。要するに、センサ1k、1l、1m、1n、1o、1pは本体11にのみ設けられるとは限られない。
コマンド受信部102は、情報処理端末12の通信インタフェース1gを利用し、コントロール機2から与えられるコマンドを、電気通信回線4経由で受信する。クライアント機1の情報処理端末12は、サーバ装置3に対し、サーバ装置3がコントロール機2から受信したコマンドの転送即ちダウンロードを要求するHTTPリクエスト(例えば、POSTメソッドまたはGETメソッド)を送信して、これに対するHTTPレスポンスを待ち受ける。
このとき、情報処理端末12は、サーバ装置3からのHTTPレスポンスを普通のポーリングよりも長い時間待ち続ける(HTTPレスポンスがもたらされなくとも一定時間以上の間タイムアウトせず、またHTTPリクエストも再送しない)ロングポーリングを実施する。HTTPレスポンスを待ち受ける時間の長さは、最短でも10秒以上とする。無論、より長く設定することも可能であり、数分以上、あるいは数十分以上に亘ってHTTPレスポンスの待ち受けを続けるようにすることも考えられる。ロングポーリングにおいても、十分な長さの待ち受け時間が経過したにもかかわらず依然としてHTTPレスポンスを受信できないのであれば、サーバ装置3に向けてHTTPリクエストを再送することはある。
HTTPリクエストに対応してサーバ装置3から返信されるHTTPレスポンスを受信した情報処理端末12は、これに含まれるコマンドを参照し、当該コマンドの内容に対応した処理や動作を実現するべく、本体11の作動機構1q及び/またはセンサ1k、1l、1m、1n、1o、1pを制御するための信号を制御回路1sに与える。因みに、情報処理端末12自身にカメラやマイク等のセンサが実装されており、当該センサを介して撮影や録音等を行うべき旨のコマンドを受信した場合には、当該センサを制御して対応した処理を実行することとなる。
さらに、コマンド受信部102は、コマンドを含んだHTTPレスポンスをサーバ装置3から受信した後、可及的速やかに、コマンドの転送を要求するHTTPリクエストをサーバ装置3に再送信する。つまり、クライアント機1は、概ね常時サーバ装置3からのHTTPレスポンスを待ち受けている状態となる。
本実施形態のコントロール機2は、汎用の情報処理端末2を用いて構成される。情報処理端末2は、クライアント機1の情報処理端末12と同様、パーソナルコンピュータ、ワークステーション、PDA、携帯電話端末、タブレット型端末、ビデオゲーム機等である。図5に示すように、情報処理端末2は、CPU2a、メインメモリ2b、補助記憶デバイス2c、操作入力デバイス2d、オーディオコーデック2e、ビデオコーデック2f、通信インタフェース2g、スピーカ2h、ディスプレイ2i等のハードウェア資源を備え、これらがコントローラ2jにより制御されて連携動作するものである。
CPU2aによって実行されるべきプログラムは補助記憶デバイス2cに格納されており、プログラムの実行の際には補助記憶デバイス2cからメインメモリ2bに読み込まれ、CPU2aによって解読される。本実施形態では、既知のOSプログラムやこれに付帯する各種デバイスドライバプログラムが予めインストールされ、他のプログラムによる上記ハードウェア資源の利用を仲介する。
しかして、情報処理端末2には、本実施形態の通信システムを構築するために必要となるコントロール機2用プログラムがインストールされる。なお、このプログラムは、サーバ装置3から電気通信回線4を介して提供され、ウェブブラウザ上で起動する(ウェブブラウザにより解釈、実行される)、HTML(HyperText Markup Language)やJavaScript(登録商標)等で記述されたスクリプトであることがある。当該情報処理端末2は、プログラムに従い、図4に示すコマンド送信部201及びレポート受信部202としての機能を発揮する。
コマンド送信部201は、通信インタフェース2gを利用し、コントロール機2からクライアント機1に伝達するべきコマンドを、電気通信回線4経由で送信する。コントロール機である情報処理端末2は、クライアント機1を制御しようとする利用者の手による操作を操作入力デバイス2dを介して受け付け、その操作に応じたコマンド、即ちクライアント機1の有する作動機構1qやセンサ1k、1l、1m、1n、1o、1pを作動させまたはその作動を停止させるための指令を生成し、これをHTTPリクエスト(例えば、POSTメソッド)の形でサーバ装置3に向けてアップロード送信する。
レポート受信部202は、通信インタフェース2gを利用し、クライアント機1からもたらされるレポートを、電気通信回線4経由で受信する。コントロール機である情報処理端末2は、サーバ装置3に対し、サーバ装置3がクライアント機1から受信したレポートの転送即ちダウンロードを要求するHTTPリクエスト(例えば、POSTメソッドまたはGETメソッド)を送信して、これに対するHTTPレスポンスを待ち受ける。
このとき、情報処理端末2は、サーバ装置3からのHTTPレスポンスを普通のポーリングよりも長い時間待ち続けるロングポーリングを実施する。HTTPレスポンスを待ち受ける時間の長さは、最短でも10秒以上とする。無論、より長く設定することも可能であり、数分以上、あるいは数十分以上に亘ってHTTPレスポンスの待ち受けを続けるようにすることも考えられる。ロングポーリングにおいても、十分な長さの待ち受け時間が経過したにもかかわらず依然としてHTTPレスポンスを受信できないのであれば、サーバ装置3に向けてHTTPリクエストを再送することはある。
HTTPリクエストに対応してサーバ装置3から返信されるHTTPレスポンスを受信した情報処理端末2は、これに含まれるレポートを、視覚及び/または聴覚に訴えかける態様にて出力する。即ち、クライアント機1が撮影、録音、計測等した画像や音声その他各種の情報を、ディスプレイ2iの画面に表示したり、スピーカ2hから音声出力したりする。
さらに、レポート受信部202は、レポートを含んだHTTPレスポンスをサーバ装置3から受信した後、可及的速やかに、レポートの転送を要求するHTTPリクエストをサーバ装置3に再送信する。つまり、コントロール機2は、概ね常時サーバ装置3からのHTTPレスポンスを待ち受けている状態となる。
本実施形態のサーバ装置3は、汎用的なウェブサーバまたはパーソナルコンピュータ、ワークステーション等である。図6に示すように、サーバ装置3は、CPU3a、メインメモリ3b、補助記憶デバイス3c、操作入力デバイス3d、通信インタフェース3e等のハードウェア資源を備え、これらがコントローラ3fにより制御されて連携動作するものである。
CPU3aによって実行されるべきプログラムは補助記憶デバイス3cに格納されており、プログラムの実行の際には補助記憶デバイス3cからメインメモリ3bに読み込まれ、CPU3aによって解読される。本実施形態では、既知のOSプログラムやこれに付帯する各種デバイスドライバプログラムが予めインストールされ、他のプログラムによる上記ハードウェア資源の利用を仲介する。
しかして、サーバ装置3には、本実施形態の通信システムを構築するために必要となるサーバ用プログラムがインストールされる。サーバ装置3は、プログラムに従い、図4に示すコマンド中継部301及びレポート中継部302としての機能を発揮する。
コマンド中継部301は、通信インタフェース3eを利用し、コントロール機2からクライアント機1に伝達するべきコマンドを、電気通信回線4経由で受信する。既に述べた通り、本実施形態では、コントロール機2から、コマンドを含んだHTTPリクエストがサーバ装置3に向けて発信される。HTTPサーバとして働くサーバ装置3は、HTTPに則ってこれを受信する。その後、当該HTTPリクエストの受信に成功した旨を示すHTTPレスポンスを、当該コントロール機2に向けて返信する。
並びに、コマンド中継部301は、コントロール機2から受信したコマンドを、電気通信回線4経由でクライアント機1に送信する。本実施形態では、クライアント機1から、コマンドの転送を要求するHTTPリクエストがサーバ装置3に向けて発信される。HTTPサーバとして働くサーバ装置3は、HTTPに則ってこれを受信するとともに、コントロール機2からもたらされたコマンドを、当該HTTPリクエストに対するHTTPレスポンスとして、当該クライアント機1に返信する。クライアント機1からのHTTPリクエストを受け付けた時点で、当該クライアント機1に向けて送信するべきコマンドをコントロール機2から受け取っていない場合には、当該コマンドを受信するまでの間、クライアント機1からのHTTPリクエストへの応答を留保する。即ち、コマンドを受信したならば即時に当該コマンドを含むHTTPレスポンスをクライアント機1に送信できるように待機する。
クライアント機1にコマンドを転送すると、間を置かずして当該クライアント機1から新たなコマンドを要求するHTTPリクエストがもたらされる。これにより、サーバ装置3は、概ね常時クライアント機1に向けたHTTPレスポンスの返信に備えている状態となる。
レポート中継部302は、通信インタフェース3eを利用し、クライアント機1からコントロール機2に伝達するべきレポートを、電気通信回線4経由で受信する。本実施形態では、クライアント機1から、レポートを含んだHTTPリクエストがサーバ装置3に向けて発信される。HTTPサーバとして働くサーバ装置3は、HTTPに則ってこれを受信する。その後、当該HTTPリクエストの受信に成功した旨を示すHTTPレスポンスを、当該クライアント機1に向けて返信する。
並びに、レポート中継部302は、クライアント機1から受信したレポートを、電気通信回線4経由でコントロール機2に送信する。本実施形態では、コントロール機2から、レポートの転送を要求するHTTPリクエストがサーバ装置3に向けて発信される。HTTPサーバとして働くサーバ装置3は、HTTPに則ってこれを受信するとともに、クライアント機1からもたらされたレポートを、当該HTTPリクエストに対するHTTPレスポンスとして、当該コントロール機2に返信する。コントロール機2からのHTTPリクエストを受け付けた時点で、当該コントロール機2に向けて送信するべきレポートをクライアント機1から受け取っていない場合には、当該レポートを受信するまでの間、コントロール機2からのHTTPリクエストへの応答を留保する。即ち、レポートを受信したならば即時に当該レポートを含むHTTPレスポンスをコントロール機2に送信できるように待機する。
コントロール機2にレポートを転送すると、間を置かずして当該コントロール機2から新たなレポートを要求するHTTPリクエストがもたらされる。これにより、サーバ装置3は、概ね常時コントロール機2に向けたHTTPレスポンスの返信に備えている状態となる。
以降、本実施形態の通信システムによる通信の枠組みを詳述する。初めに、本実施形態の通信システムを利用してクライアント機1のリモートモニタリングまたはリモートコントロールを実施する者は、本通信システムを利用した通信に先んじて、制御対象となるクライアント機1の個体識別情報、及び自己の権限を証明するユーザアカウント情報の登録を行う。
サーバ装置3は、メインメモリ3b若しくは補助記憶デバイス3cの所要の記憶領域を利用して、クライアント機1の個体識別情報及びユーザアカウント情報を格納する登録情報データベースを構成する。図7に、登録情報の内容を例示する。登録情報データベースは、ユーザアカウント情報として、本通信システムを利用する各利用者毎の識別ID、及び当該利用者しか知り得ないパスコード(または、当該利用者しか持ち得ないバイオメトリック情報等)を記憶保持する。なおかつ、各利用者毎に、当該利用者が制御して利用することが許可される一または複数のクライアント機1の個体識別情報(UUID(Universally Unique IDentifier)またはデバイスキー)や、そのクライアント機1についての説明の情報(クライアント機1の名称、所在地、種類等)を、当該利用者の識別IDに関連付けて記憶保持する。個体識別情報は、クライアント機1毎に異なっており、クライアント機1が備える記憶デバイス(情報処理端末12のメインメモリ1b若しくは補助記憶デバイス1c、または本体11の制御回路1に設けられたROM(Read Only Memory)等)に書き込まれている。
次に、クライアント機1とコントロール機2とのマッチングの手順を述べる。マッチングとは、あるクライアント機1とあるコントロール機2との間でコマンド及びレポートの送受信が可能な状況を具現することである。起動して制御を受け付ける状態となっているクライアント機1(の情報処理端末12)は、HTTPリクエストをサーバ装置3に向けて送信する。リクエストには、当該クライアント機1が記憶保持している自身の個体識別情報と、現在当該クライアント機1に付与されているネットワークアドレスとが付随する。本実施形態にあって、ネットワークアドレスとは、HTTP通信で用いられるIPアドレス及びTCP(Transmission Control Protocol)ポート番号である。
サーバ装置3は、クライアント機1から送信される上記のHTTPリクエストを受信して参照することで、起動して利用可能となっているクライアント機1の個体識別情報、即ち現在どのクライアント機1が制御可能となっているかを知得でき、さらには、当該クライアント機1のネットワークアドレスを知得できる。サーバ装置3は、現在制御可能なクライアント機1の個体識別情報及びネットワークアドレスを、メインメモリ3b若しくは補助記憶デバイス3cに記憶する。
他方、クライアント機1の制御を開始しようとする利用者は、コントロール機2を使用してサーバ装置3にアクセスし、ユーザ認証を受ける。その際、コントロール機である情報処理端末2は、利用者の手によるユーザアカウント情報(識別ID及びパスコード等)の入力を操作入力デバイス2dを介して受け付け、当該ユーザアカウント情報を含むHTTPリクエストをサーバ装置3に向けて送信する。
サーバ装置3は、コントロール機2から送信される上記のHTTPリクエストを受信して参照し、当該コントロール機2を使用している利用者が本通信システムを利用する権限を有する者であるか否かを判断する。即ち、受信したHTTPリクエストに含まれるユーザアカウント情報が、登録情報データベースに登録されているかどうかを確認し、登録されているのであれば正当な権限を有する利用者であり、さもなくば正当な権限を有しない利用者であると判断する。
コントロール機2を使用する利用者が正当な権限を有する者であると認証したサーバ装置3は、登録情報データベースに登録されている、当該利用者のユーザアカウント情報に関連付けられた一または複数のクライアント機1の個体識別情報を読み出す。そして、これを、先にメインメモリ3b若しくは補助記憶デバイス3cに記憶した、現在起動しているクライアント機1の個体識別情報と比較して、重複する個体識別情報、即ち当該利用者による制御が許可されかつ現在起動して制御可能となっているクライアント機1に係る個体識別情報を知得する。
その上で、サーバ装置3は、上記の個体識別情報に関連付けられている当該クライアント機1についての説明の情報を登録情報データベースから読み出し、当該個体識別情報及び読み出した説明の情報を含むHTMLページを生成して、HTTPレスポンスとしてコントロール機2に返信する。
サーバ装置3から送信されたHTMLページを受信したコントロール機2は、当該コントロール機2の利用者が制御することのできる一または複数のクライアント機1に関する情報をディスプレイ2iの画面に表示し、利用者が何れのクライアント機1の制御を開始するのか、その選択を促す。コントロール機である情報処理端末2は、利用者の手によるクライアント機1の選択操作を操作入力デバイス2dを介して受け付け、選択されたクライアント機1に係る個体識別情報を含むHTTPリクエストをサーバ装置3に向けて送信する。クライアント機1の選択の受け付け及び選択されたクライアント機1の個体識別情報の送信は、上記のHTMLページ内に記述されたウェブフォーム(HTMLフォーム)により実現することが可能である。リクエストには、現在当該コントロール機2に付与されているネットワークアドレス(IPアドレス及びTCPポート番号)とが付随する。
サーバ装置3は、コントロール機2から送信される上記のHTTPリクエストを受信して参照することで、当該コントロール機2を使用している利用者が選択したクライアント機1に係る個体識別情報、即ちコントロール機2の利用者がどのクライアント機1の制御を開始したいのかを知得でき、さらには、当該コントロール機2のネットワークアドレスを知得できる。これにより、コントロール機2とクライアント機1とのマッチングが可能となる。向後、当該コントロール機2からもたらされるコマンドは、当該利用者が選択したクライアント機1に転送する。また、当該クライアント機1からもたらされるレポートは、当該利用者が使用するコントロール機2に転送する。
そのために、サーバ装置3は、マッチングしたコントロール機2とクライアント機1との組を識別するセッションIDを発行し(但し、ユーザアカウント情報(特に、識別ID)または個体識別情報をセッションIDとして代用することを妨げない)、利用者が使用しているコントロール機2、利用者が選択したクライアント機1の各々に送信する。このセッションIDの送信は、コントロール機2及びクライアント機1からもたらされたHTTPリクエストに対するHTTPレスポンスとして実行することができる。加えて、サーバ装置3は、図8に例示するように、コントロール機2とクライアント機1との関係を示すマッチング情報として、コントロール機2の利用者のユーザアカウント情報(識別ID)、当該コントロール機2の現在のネットワークアドレス、当該利用者が制御するクライアント機1の個体識別情報、及び当該クライアント機1の現在のネットワークアドレスを、当該セッションIDに関連付けてメインメモリ3b若しくは補助記憶デバイス3cに記憶保持する。
コントロール機である情報処理端末2は、サーバ装置3からもたらされたセッションIDをメインメモリ2b若しくは補助記憶デバイス2cに記憶する。そして、向後サーバ装置3に向けて送信するHTTPリクエスト(コマンドをアップロードする目的のものと、レポートのダウンロードを要求する目的のものとの両方)に、当該セッションIDを含めるようにする。当該セッションIDは、HTTPリクエストとして発信するコマンドの転送の宛先のクライアント機1を指し示す識別子となり、また、HTTPリクエストを通じて要求するレポートの発信元のクライアント機1を指し示す識別子となる。
同様に、クライアント機1の情報処理端末12も、サーバ装置3からもたらされたセッションIDをメインメモリ1b若しくは補助記憶デバイス1cに記憶し、向後サーバ装置3に向けて送信するHTTPリクエスト(レポートをアップロードする目的のものと、コマンドのダウンロードを要求する目的のものとの両方)に、当該セッションIDを含めるようにする。当該セッションIDは、HTTPリクエストとして発信するレポートの転送の宛先のコントロール機2を指し示す識別子となり、また、HTTPリクエストを通じて要求するコマンドの発信元のコントロール機2を指し示す識別子となる。
コントロール機2からクライアント機1にコマンドを伝達する際の処理手順を述べる。利用者により制御対象として選択されたクライアント機1は、予め、当該利用者が使用するコントロール機2からのコマンドの転送を要求するHTTPリクエストをサーバ装置3に送信し、サーバ装置3から返信されるHTTPレスポンスをロングポーリングで待ち受ける。当該HTTPリクエストには、メインメモリ1b若しくは補助記憶デバイス1cに記憶している、コマンドの発信元のコントロール機2を指し示すセッションIDを含めておく。
クライアント機1が送信したHTTPリクエストを受信したサーバ装置3は、これに対するHTTPレスポンスを返信可能な状態で待機する。このとき、当該クライアント機1の現在のネットワークアドレスが、メインメモリ3b若しくは補助記憶デバイス3cに記憶保持するマッチング情報(図8に例示)に記述されている同クライアント機1のネットワークアドレスから変化していないかどうかを確認する。即ち、受信したリクエストに含まれるセッションIDをキーとしてマッチング情報を検索し、当該セッションIDに関連付けられたクライアント機1のネットワークアドレスを抽出して、そのアドレスと受信したHTTPリクエストの発信元アドレスとを比較する。両者が相異している場合には、マッチング情報中の当該セッションIDに関連付けられているクライアント機1のアドレスを、今般受信したリクエストにより示された最新のアドレスに書き換える。この処理により、クライアント機1(の情報処理端末12)のネットワークアドレスが変化したとしても、当該クライアント機1に対して適切にコマンドを送り届けることが可能になる。
利用者が操作するコントロール機2は、当該利用者が制御するクライアント機1に与えるべきコマンドをHTTPリクエストとしてサーバ装置3に送信する。当該HTTPリクエストには、メインメモリ2b若しくは補助記憶デバイス2cに記憶している、コマンドの送信の宛先のクライアント機1を指し示すセッションIDを含めておく。
コントロール機2が送信したHTTPリクエストを受信したサーバ装置3は、これに含まれるセッションIDをキーとしてマッチング情報を検索し、当該セッションIDに関連付けられた、コマンドの送信の宛先となるクライアント機1及びその現在のネットワークアドレスを知得する。そして、コントロール機2から受信したHTTPリクエストに含まれるコマンドを、宛先のクライアント機1に対するHTTPレスポンスとして送信する。
なお、サーバ装置3は、コントロール機2からHTTPリクエスト受信したときに、当該コントロール機2の現在のネットワークアドレスが、メインメモリ3b若しくは補助記憶デバイス3cに記憶保持するマッチング情報に記述されている同コントロール機2のネットワークアドレスから変化していないかどうかを確認する。即ち、受信したリクエストに含まれるセッションIDをキーとしてマッチング情報を検索し、当該セッションIDに関連付けられたコントロール機2のネットワークアドレスを抽出して、そのアドレスと受信したHTTPリクエストの発信元アドレスとを比較する。両者が相異している場合には、マッチング情報中の当該セッションIDに関連付けられているコントロール機2のアドレスを、今般受信したリクエストにより示された最新のアドレスに書き換える。この処理により、コントロール機(情報処理端末)2のネットワークアドレスが変化したとしても、当該コントロール機2に対して適切にレポートを送り届けることが可能になる。
サーバ装置3からHTTPレスポンスとして返信される、コントロール機2からのコマンドを受信したクライアント機1は、その後速やかに同コントロール機2からのコマンドを要求する(コマンドの発信元を指し示すセッションIDを含んだ)HTTPリクエストをサーバ装置3に向けて再送信し、これに対するHTTPレスポンスのロングポーリングによる待ち受けを再開する。
引き続き、クライアント機1からコントロール機2にレポートを伝達する際の処理手順を述べる。利用者が使用するコントロール機2は、予め、当該利用者が制御対象として選択したクライアント機1からのレポートの転送を要求するHTTPリクエストをサーバ装置3に送信し、サーバ装置3から返信されるHTTPレスポンスをロングポーリングで待ち受ける。当該HTTPリクエストには、メインメモリ2b若しくは補助記憶デバイス2cに記憶している、レポートの発信元のクライアント機1を指し示すセッションIDを含めておく。
コントロール機2が送信したHTTPリクエストを受信したサーバ装置3は、これに対するHTTPレスポンスを返信可能な状態で待機する。このとき、当該コントロール機2の現在のネットワークアドレスが、メインメモリ3b若しくは補助記憶デバイス3cに記憶保持するマッチング情報に記述されている同コントロール機2のネットワークアドレスから変化していないかどうかを確認し、変化しているのであればそのネットワークアドレスを現在のものに更新することは既に述べた通りである。
利用者が制御するクライアント機1は、当該利用者が使用しているコントロール機2に提供するべきレポートをHTTPリクエストとしてサーバ装置3に送信する。当該HTTPリクエストには、メインメモリ1b若しくは補助記憶デバイス1cに記憶している、レポートの送信の宛先のコントロール機2を指し示すセッションIDを含めておく。
クライアント機1が送信したHTTPリクエストを受信したサーバ装置3は、これに含まれるセッションIDをキーとしてマッチング情報を検索し、当該セッションIDに関連付けられた、レポートの送信の宛先となるコントロール機2及びその現在のネットワークアドレスを知得する。そして、クライアント機1から受信したHTTPリクエストに含まれるレポートを、宛先のコントロール機2に対するHTTPレスポンスとして送信する。
なお、サーバ装置3がクライアント機1からHTTPリクエスト受信したときに、当該クライアント機1の現在のネットワークアドレスが、メインメモリ3b若しくは補助記憶デバイス3cに記憶保持するマッチング情報に記述されている同クライアント機1のネットワークアドレスから変化していないかどうかを確認し、変化しているのであればそのネットワークアドレスを現在のものに更新することは既に述べた。
サーバ装置3からHTTPレスポンスとして返信される、クライアント機1からのレポートを受信したコントロール機2は、その後速やかに同クライアント機1からのレポートを要求する(レポートの発信元を指し示すセッションIDを含んだ)HTTPリクエストをサーバ装置3に向けて再送信し、これに対するHTTPレスポンスのロングポーリングによる待ち受けを再開する。
本実施形態の通信システムのフェイルセーフに関して補記する。例えば、コントロール機2からの制御を受け付けている(コマンドを受信しかつレポートを送信する)クライアント機1が、当該コントロール機2とのマッチング中に何らかのトラブルに見舞われて機能の一部または全部が停止する等し、その後再起動した場合、当該コントロール機2とのマッチングが切断されて制御の続行が不可能になるおそれがある。
だが、再起動したクライアント機1の情報処理端末12は、可及的速やかに、自身の個体識別情報及び/または(再起動後にも記憶保持していれば)その直前にマッチングしていたコントロール機2を指し示すセッションIDを含めたHTTPリクエストをサーバ装置3に送信する。これを受信したサーバ装置3は、当該HTTPリクエストに基づいて、再起動したクライアント機1の現在のネットワークアドレスを知得するとともに、マッチング情報として記憶保持している当該クライアント機1の(受信したHTTPリクエストに含まれる個体識別情報及び/またはセッションIDに関連付けられた)ネットワークアドレスを現在のものに更新することができる。
さらに、サーバ装置3は、HTTPレスポンスとして、当該クライアント機1と直前までマッチングしていた(コマンドの発信元でありレポートの送信の宛先である)コントロール機2を指し示すセッションIDをマッチング情報のリストから抽出して当該クライアント機1に再送することができ、これを受信したクライアント機1は再び当該セッションIDをメインメモリ1b若しくは補助記憶デバイス1cに記憶保持することができる。かくして、コントロール機2とクライアント機1とのマッチングが回復する。
クライアント機1を制御している(コマンドを送信しかつレポートを受信する)コントロール機2が、当該クライアント機1とのマッチング中に再起動した場合も、全く同じである。即ち、再起動したコントロール機たる情報処理端末2は、可及的速やかに、自身の個体識別情報及び/または(再起動後にも記憶保持していれば)その直前にマッチングしていたクライアント機1を指し示すセッションIDを含めたHTTPリクエストをサーバ装置3に送信する。これを受信したサーバ装置3は、当該HTTPリクエストに基づいて、再起動したコントロール機2の現在のネットワークアドレスを知得するとともに、マッチング情報として記憶保持している当該コントロール機2の(受信したHTTPリクエストに含まれる個体識別情報及び/またはセッションIDに関連付けられた)ネットワークアドレスを現在のものに更新することができる。
さらに、サーバ装置3は、HTTPレスポンスとして、当該コントロール機2と直前までマッチングしていた(レポートの発信元でありコマンドの送信の宛先である)クライアント機1を指し示すセッションIDをマッチング情報のリストから抽出して当該コントロール機2に再送することができ、これを受信したコントロール機2は再び当該セッションIDをメインメモリ2b若しくは補助記憶デバイス2cに記憶保持することができる。かくして、コントロール機2とクライアント機1とのマッチングが回復する。
サーバ装置3が何らかのトラブルに見舞われて機能の一部または全部が停止する等し、その後再起動した場合には、再起動前に当該サーバ装置3が記憶保持していたマッチング情報が失われる可能性がある。となれば、そのマッチング情報を復旧しない限り、サーバ装置3がコマンド及びレポートを中継できなくなり、コントロール機2とクライアント機1との間の通信が途絶する。
だが、サーバ装置3の再起動前にマッチングされていたコントロール機2及びクライアント機1はそれぞれ、セッションIDを含んだHTTPリクエスト(特に、コントロール機2がレポートの転送を要求するもの、及びクライアント機1がコマンドの転送を要求するもの)をサーバ装置3に向けて間欠的に送信し続ける。従って、再起動したサーバ装置3は、コントロール機2及びクライアント機1からの各HTTPリクエストを受信することができ、それらリクエストに基づいて、セッションID及び当該セッションIDによって紐付けされたコントロール機2及びクライアント機1の現在のネットワークアドレスを知得し、マッチング情報を再構築してメインメモリ3b若しくは補助記憶デバイス3cに記憶保持することができる。マッチング情報が復旧されれば、サーバ装置3の再起動前と同様に、コントロール機2がクライアント機1にコマンドを送信し、クライアント機1がコントロール機2にレポートを送信する状況が回復する。
本実施形態では、何らかの情報を取得するセンサ1k、1l、1m、1n、1o、1pまたは何らかの作動を行う作動機構1qを有したクライアント機1と、前記クライアント機1のリモートモニタリングまたはリモートコントロールのために用いられるコントロール機2と、前記クライアント機1及び前記コントロール機2の各々と電気通信回線4を介して接続し、コントロール機2からクライアント機1に伝達されるコマンドを中継するとともに、クライアント機1からコントロール機2に伝達されるレポートを中継するサーバ装置3とを具備する通信システムであって、前記クライアント機1と前記サーバ装置3との間の通信、及び前記コントロール機2と前記サーバ装置3との間の通信をそれぞれ、リクエスト/レスポンス型の通信プロトコルに則って実行するものとし、前記コントロール機2は、クライアント機1に伝達するべきコマンドを前記通信プロトコルに則ったリクエストとしてサーバ装置3に送信するコマンド送信部と、サーバ装置3がクライアント機1から受信したレポートを取得するために前記通信プロトコルに則ったリクエストをサーバ装置3に送信し、当該リクエストに対するレスポンスをロングポーリング状態で待ち受け、当該レスポンスとしてサーバ装置3から送信されるレポートを受信し、かつ当該レポートの受信後速やかに次のレポートを取得するための前記通信プロトコルに則ったリクエストをサーバ装置3に再送信してロングポーリング状態の待ち受けを再開するレポート受信部とを備え、前記クライアント機1は、コントロール機2に伝達するべきレポートを前記通信プロトコルに則ったリクエストとしてサーバ装置3に送信するレポート送信部と、サーバ装置3がコントロール機2から受信したコマンドを取得するために前記通信プロトコルに則ったリクエストをサーバ装置3に送信し、当該リクエストに対するレスポンスをロングポーリング状態で待ち受け、当該レスポンスとしてサーバ装置3から送信されるコマンドを受信し、かつ当該コマンドの受信後速やかに次のコマンドを取得するための前記通信プロトコルに則ったリクエストをサーバ装置3に再送信してロングポーリング状態の待ち受けを再開するコマンド受信部とを備え、前記サーバ装置3は、コントロール機2から受信したコマンドをクライアント機1から受信したリクエストに対するレスポンスとしてクライアント機1に送信するコマンド中継部と、クライアント機1から受信したレポートをコントロール機2から受信したリクエストに対するレスポンスとしてコントロール機2に送信するレポート中継部とを備えている通信システムを構成した。
本実施形態の通信システムによれば、コントロール機2からクライアント機1に向けたコマンドの伝達のリアルタイム性、及びクライアント機1からコントロール機2に向けたレポートの伝達のリアルタイム性を確保できる。即ち、コマンドまたはレポートの発信時点と受信時点との時間差を十分に少なくできる。また、コントロール機2やクライアント機1の各々に、固定のグローバルIPアドレスを付与することができず、コントロール機2やクライアント機1のIPアドレスが時に変化することがあったとしても(移動体無線通信網では顕著である)、コントロール機2とクライアント機1とのマッチングを維持し続けることが可能である。
そして、前記通信プロトコルをHTTP(HTTPSであることがある)としていることから、クライアント機1及び/またはコントロール機2が非公開のLANに接続し、そのLANとインターネット等の公開ネットワークとの間にファイアウォールが設置されているような場合にも、公開ネットワークを介したコマンド及びレポートの授受が可能となる。
また、前記クライアント機1における前記レポート送信部及び前記コマンド受信部、前記コントロール機2における前記コマンド送信部及び前記レポート受信部をそれぞれ、電気通信回線4を介した情報通信機能を有する汎用の情報処理端末(特に、スマートフォン等の移動体無線通信網への接続が可能な端末)12、2を用いて構成しており、システム構築に費やすコストを低廉化できる。
なお、本発明は以上に詳述した実施形態に限られるものではない。例えば、コントロール機2からクライアント機1に伝達するコマンド、及び/または、クライアント機1からコントロール機2に伝達するレポートに優先度を設定しておき、サーバ装置3がその優先度の高低に応じてコマンド/レポートの転送を実行するか否かを変えるようにすることが考えられる。
コントロール機2からクライアント機1に与えるコマンドのうち、クライアント機1の遠隔操縦のための移動方向、移動速度等の指令や、ロボットアームの操作指令のような物理的動作に関わるコマンドは、その伝達に高いリアルタイム性が要求される。換言すれば、この種のコマンドは、コントロール機2からクライアント機1に到達するまでに長い時間がかかった場合、クライアント機1に到達した時点で既に有用性が失われていることが少なくない。走行しているクライアント機1を障害物の手前で制動するコマンドは、クライアント機1が障害物に衝突する前にクライアント機1に伝達されなければならず、障害物に到達した後に伝達されても意味をなさない。
これに対し、土壌水分量センサによりクライアント機1の所在地の土壌の水分量を計測するべき旨の指令等は、たとえクライアント機1への伝達が遅れたとしても特段の問題はない。土壌の水分量は極短時間には変化しないと考えられるからである。
クライアント機1からコントロール機2に送るレポートにも、リアルタイム性が要求されるものとそうでないものとが存在する。クライアント機1がカメラ1kで撮影した動画像をコントロール機2のディスプレイ2iの画面に表示させ利用者の閲覧に供するためには、当該動画像の構成要素である連続した複数枚のフレームの各々をレポートとしてクライアント機1からコントロール機2に送信する必要があるが、そのうちの一部のフレーム(に係るレポート)が他のフレーム(に係るレポート)よりも著しく遅延してコントロール機2に到達した場合、当該遅延したフレームをコントロール機2のディスプレイ2iに出力する機会は失われる。つまり、遅延したフレームの送受信は無駄となる。
これに対し、クライアント機1において土壌水分量センサにより計測した土壌の水分量のレポートは、たとえコントロール機2への伝達が遅れたとしても特段の問題はない。
総じて言えば、コマンドやレポートには、伝達が遅れてしまっては意味がないものと、伝達が遅れたとしても送り届ける意味はあるものとが存在する。そして、前者に分類されるコマンドやレポートは、もしもその伝達が遅れてしまうのであれば、寧ろその伝達を完遂せずに破棄し、電気通信回線4の帯域幅を確保したり、サーバ装置3の処理負荷を軽減したりする方がよいということになる。
そこで、コントロール機2は、コマンドを発信するにあたり、遅延したとしても確実にクライアント機1に送り届けるべきコマンドには高い優先度の値を付加し、遅延するならばクライアント機1へ送り届けることなく破棄することを容認するコマンドには低い優先度の値を付加した上で、これをサーバ装置3に向けてHTTPリクエストとして送信する。
コントロール機2から発信された上記のコマンドを受信したサーバ装置3は、優先度の値を参照して、当該コマンドを宛先のクライアント機1に送信する処理を完遂するか否かを判断する。具体的には、コントロール機2からクライアント機1にコマンドを伝達するために費やされる遅延時間を判定閾値と比較し、遅延時間が判定閾値を上回る場合には、コントロール機2から受信したコマンドをクライアント機1に送信する処理を打ち切る。
その上で、判定閾値を、当該コマンドに付加された優先度の値が高いほど大きくする。即ち、優先度の高いコマンドは遅延時間が大きくともクライアント機1への送信を完遂する(最高の優先度が与えられたコマンドは、遅延時間如何によらず必ずクライアント機1に送り届ける)が、優先度の低いコマンドは遅延時間が大きくなると判定閾値を容易に上回るようになるので、クライアント機1への送信を完遂せずにこれを破棄する可能性が高くなる。
判定閾値と比較する遅延時間の態様は、幾つか考えられる。列挙すると、
・過去にサーバ装置3からクライアント機1にコマンドを送信したときの(サーバ装置3−クライアント機1間の)所要時間を計測し、計測した所要時間またはその平均値を、当該クライアント機1の個体識別情報またはセッションIDに関連付けてメインメモリ3b若しくは補助記憶デバイス3cに記憶しておく。サーバ装置3からクライアント機1へのコマンドの送信の所要時間は、当該コマンドの送信に係るHTTPレスポンスを構成するTCPセグメント(パケット)のうちの最初のセグメントの送信開始から最後のセグメントの送信完了までの時間をサーバ装置3において計測することで知得できる。当該クライアント機1に送り届けるべきコマンドをコントロール機2から受信した暁には、コマンドの宛先となるクライアント機1の個体識別情報またはセッションIDに関連付けて記憶していた過去の所要時間または平均値を読み出し、これを遅延時間として判定閾値と比較する。遅延時間が判定閾値以下であれば、サーバ装置3からクライアント機1へのコマンドの送信を開始するが、遅延時間が判定閾値を上回るのであれば、サーバ装置3からクライアント機1へのコマンドの送信を開始しない。
・クライアント機1に送り届けるべきコマンドがコントロール機2からサーバ装置3に送信されたときの(コントロール機2−サーバ装置3間の)所要時間を計測し、その所要時間を遅延時間として判定閾値と比較する。コントロール機2からサーバ装置3へのコマンドの送信の所要時間は、当該コマンドの送信に係るHTTPリクエストを構成するTCPセグメントのうちの最初のセグメントの受信開始から最後のセグメントの受信完了までの時間をサーバ装置3において計測することで知得できる。遅延時間が判定閾値以下であれば、サーバ装置3からクライアント機1へのコマンドの送信を開始するが、遅延時間が判定閾値を上回るのであれば、サーバ装置3からクライアント機1へのコマンドの送信を開始しない。
・クライアント機1に送り届けるべきコマンドをコントロール機2から受信したサーバ装置3は、まずは当該コマンドのクライアント装置への送信を開始する。そして、送信の開始時点(HTTPレスポンスを構成するTCPセグメントのうちの最初のセグメントの送信開始時点)からの経過時間を計数し、その経過時間を遅延時間して判定閾値と比較する。遅延時間が判定閾値を上回ってもなお当該コマンドの送信が完了しない(HTTPレスポンスを構成する最後のセグメントの送信を完了していない)ならば、当該コマンドの送信を中断する。
・上述したコントロール機2−サーバ装置3間の所要時間と、サーバ装置3−クライアント機1間の所要時間(または、サーバ装置3からクライアント機1へのコマンドの送信を開始した後の経過時間)とを合算したものを、遅延時間として判定閾値と比較する。遅延時間が判定閾値を上回るのであれば、サーバ装置3からクライアント機1へのコマンドの送信を開始しないか、開始したコマンドの送信を中断する。
レポートの伝達でも、同様の処理を実施することができる。即ち、クライアント機1は、レポートを発信するにあたり、遅延したとしても確実にコントロール機2に送り届けるべきレポートには高い優先度の値を付加し、遅延するならばコントロール機2へ送り届けることなく破棄することを容認するレポートには低い優先度の値を付加した上で、これをサーバ装置3に向けてHTTPリクエストとして送信する。
クライアント機1から発信された上記のレポートを受信したサーバ装置3は、優先度の値を参照して、当該レポートを宛先のコントロール機2に送信する処理を完遂するか否かを判断する。具体的には、クライアント機1からコントロール機2にレポートを伝達するために費やされる遅延時間を判定閾値と比較し、遅延時間が判定閾値を上回る場合には、クライアント機1から受信したレポートをコントロール機2に送信する処理を打ち切る。
その上で、判定閾値を、当該レポートに付加された優先度の値が高いほど大きくする。即ち、優先度の高いレポートは遅延時間が大きくともコントロール機2への送信を完遂する(最高の優先度が与えられたレポートは、遅延時間如何によらず必ずコントロール機2に送り届ける)が、優先度の低いレポートは遅延時間が大きくなると判定閾値を容易に上回るようになるので、コントロール機2への送信を完遂せずにこれを破棄する可能性が高くなる。
判定閾値と比較する遅延時間の態様は、コマンドの伝達における遅延時間と同様とすることができるので、説明を割愛する。
あるいは、コントロール機2からクライアント機1に複数のコマンドを順次伝達するケースにおいて、サーバ装置3が先のコマンドのクライアント機1への送信を完了する前に次のコマンドをコントロール機2から受信した場合、当該次のコマンドの優先度が低ければこれをクライアント機1に送信せずに破棄する一方、当該次のコマンドの優先度が高ければ先のコマンドに引き続いて当該次のコマンドをクライアント機1に送信するようにしてもよい。
クライアント機1からコントロール機2に複数のレポートを順次伝達するケースにおいても、サーバ装置3が先のレポートのコントロール機2への送信を完了する前に次のレポートをクライアント機1から受信した場合、当該次のレポートの優先度が低ければこれをコントロール機2に送信せずに破棄する一方、当該次のレポートの優先度が高ければ先のレポートに引き続いて当該次のレポートをコントロール機2に送信するようにしてもよい。
クライアント機1とサーバ装置3とを繋ぐ電気通信回線4、またはコントロール機2とサーバ装置3とを繋ぐ電気通信回線4に、インターネット等の公開ネットワークが必ず含まれるとは限られない。例えば、サーバ装置3がいわゆる無線LANルータであり、この無線LANルータから無線接続可能な距離内にクライアント機1及び/またはコントロール機2が所在している場合、当該クライアント機1及び/またはコントロール機2とサーバ装置3との間は無線LANで接続され、インターネット等の公開ネットワークは介在しないこととなる。また、サーバ装置3がDHCP(Dynamic Host Configuration Protocol)機能を有し、サーバ装置がクライアント機1及び/またはコントロール機2にネットワークアドレス(IPアドレス)を付与することがある。
その他、各部の具体的構成や処理の手順等は、本発明の趣旨を逸脱しない範囲で種々変形が可能である。