(57)【要約】【課題】無線通信機能を備えた多機能情報携帯端末におけるブルートゥースモバイルアドホックネットワークアーキテクチャー及びブルートゥースモバイルアドホックネットワークアーキテクチャーの通信方法を提供する。【解決手段】下位層で構成されるモバイルアドホックネットワーク機能群を利用したサービス内容を実装し、他端末との通信に用いるデータがパケットに成型され，下位層に送信されるアプリケーション層と、モバイルアドホックネットワークルーティング上位、下位層から受け取ったパケットをどの端末に転送するかを決定するルーティング層と、端末の検出・接続処理を含み、コネクション指向であるブルートゥース通信を、端末の移動が伴うモバイルアドホックネットワークに適用するための機能を実装するとともに、ブルートゥースの検出で発生する可能性がある回避すべき衝突に対し、衝突回避手段を実装するデバイス層 とから構成される。【選択図】図１
2014138241.tif 000002
【特許請求の範囲】
【請求項１】
多機能情報端末に搭載されたブルートゥース通信機能を用いるモバイルアドホックネットワークアーキテクチャーであって、
下位層で構成されるモバイルアドホックネットワーク機能群を利用したサービス内容を実装し、他端末との通信に用いるデータがパケットに成型され，下位層に送信されるアプリケーション層と、
モバイルアドホックネットワークルーティング上位、下位層から受け取ったパケットをどの端末に転送するかを決定するルーティング層と、
前記端末の検出・接続処理を含み、コネクション指向であるブルートゥース通信を、前記端末の移動が伴うモバイルアドホックネットワークに適用するための機能を実装するとともに、ブルートゥースの検出で発生する可能性がある回避すべき衝突に対し、衝突回避手段を実装するデバイス層 と、を備えることを特徴とするモバイルアドホックネットワークアーキテクチャー
【請求項２】
前記ルーティング層が、移動を伴う前記端末のグループ化を行う自律分散クラスタリング手段を含むことを特徴とする請求項１記載のモバイルアドホックネットワークアーキテクチャー
【請求項３】
前記ルーティング層が、ネットワーク環境が疎密な環境通信の信頼性を維持するための遅延・切断耐性ネットワーク手段を含むことを特徴とする請求項１又は２記載のモバイルアドホックネットワークアーキテクチャー
【請求項４】
多機能情報端末に搭載されたブルートゥース通信機能を用いるモバイルアドホックネットワークアーキテクチャーの通信方法であって、前記アーキテクチャーは、下位層で構成されるモバイルアドホックネットワーク機能群を利用したサービス内容を実装し、他端末との通信に用いるデータがパケットに成型され、下位層に送信されるアプリケーション層と、モバイルアドホックネットワークルーティング上位、下位層から受け取ったパケットをどの端末に転送するかを決定するルーティング層と、端末の検出・接続処理を含み、コネクション指向であるブルートゥース通信を、端末の移動が伴うモバイルアドホックネットワークに適用するための機能を実装するとともに、ブルートゥースの検出で発生する可能性がある回避すべき衝突に対し、衝突回避手段を実装するデバイス層とを備え、前記多機能情報端末間で、一の多機能情報端末が、通信範囲内の他の多機能情報端末を検出するステップ、前記一の多機能情報端末が、検出した他の多機能情報端末に対して接続を行うステップ、及び前記他の多機能情報端末が、前記一の多機能情報端末の接続を受け付けるステップを含むことを特徴とするモバイルアドホックネットワークアーキテクチャーの通信方法
【請求項５】
前記ルーティング層が、移動を伴う前記端末のグループ化を行う自律分散クラスタリング手段を含むことを特徴とする請求項４記載のモバイルアドホックネットワークアーキテクチャーの通信方法
【請求項６】
前記ルーティング層が、ネットワーク環境が疎密な環境通信の信頼性を維持するための遅延・切断耐性ネットワーク手段を含むことを特徴とする請求項４又は５記載のモバイルアドホックネットワークアーキテクチャーの通信方法
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モバイルアドホックネットワークアーキテクチャー及びモバイルアドホックネットワークアーキテクチャーの通信方法に関する。
【背景技術】
【０００２】
近年、無線通信機能を備えた携帯端末が急速に普及している。その中でも、多機能形態電話（スマートフォン）、タブレットPC等携帯情報端末をターゲットとしたプラットフォームであるアンドロイド（Android：登録商標）を搭載した携帯端末（以下、単に端末という）が顕著であり、様々なサービスが開発されている。このような背景から、本発明者らは、 Android端末に搭載された無線通信機能を活用し、モバイルアドホックネットワーク（以下、MANETという）で構成された児童見守りシステムを開発した（特許文献１）。
【０００３】
Androidにおけるブルートゥース（Bluetooth：登録商標）の検出では、以下のような衝突が発生する可能性がある。すなわち検出を行っている端末を検出できない、検出を行っている端末に接続を行うと失敗するという問題がある。Bluetooth MANETを効率的に構成するためには、これらの衝突を回避する必要がある。またMANETでは端末が移動するため、定期的に検出と接続を行い通信する必要がある。本発明者らは、このような衝突問題を解決するために、各端末が隣接端末の状況を自律的に推測する衝突回避手法を前記特許文献１で提案したのである。
【０００４】
一方、MANETは各端末が移動し、自律的にネットワークを構成する性質をもつ。したがって、MANET に Bluetoothを適用したBluetooth MANETではこの性質を担保するために、これらの処理を定期的に行い、隣接端末の在を確認する技術が必要となる（非特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特願２０１２−４７４４４号
【非特許文献】
【０００６】
【非特許文献１】森井幸希、森雄一郎、武田航史、小島英春、角田良明、“AndroidAPIで実装するBluetooth MANETに適した衝突回 避手法の検討、”電子情報通信学会 第14 回ネットワークソフウェア研究会,pp.7-11,2011.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、MANETにおいて、共通の無線通信機能としてBluetooth MANETを用い、また機能を階層化して管理することで、共通機能であるBluetooth MANETをサービスの基盤として提供する。基盤となる機能を構築しておけば、その上位のサービスを選択するだけでよいため、効率的な開発を行うことができる。さらに本発明では、階層構造を提供する。すなわち一つのアプリケーションに対して複数の階層を用意することで、それぞれの層毎に多様な機能を入れ替えることができる。かつ、それらは MANETを構築するのに特化した設計とされる。例えば、MANETルーティングプロトコルを交換可能とするのである。
【０００８】
本発明は、これらの共通点を考慮して 効率的に複数のシステムを開発することを目的とし、これを 満たすBluetooth MANETに基づくネットワークアーキテクチャーを提供するものである。
【課題を解決するための手段】
【０００９】
本発明は、多機能情報端末に搭載されたブルートゥース通信機能を用いるモバイルアドホックネットワークアーキテクチャーであって、下位層で構成されるモバイルアドホックネットワーク機能群を利用したサービス内容を実装し、他端末との通信に用いるデータがパケットに成型され，下位層に送信されるアプリケーション層と、モバイルアドホックネットワークルーティング上位、下位層から受け取ったパケットをどの端末に転送するかを決定するルーティング層と、端末の検出・接続処理を含み、コネクション指向であるブルートゥース通信を、端末の移動が伴うモバイルアドホックネットワークに適用するための機能を実装するとともに、ブルートゥースの検出で発生する可能性がある回避すべき衝突に対し、衝突回避手段を実装するデバイス層と、を備えるものである。
【００１０】
また本発明は、前記ルーティング層が、移動を伴う前記端末のグループ化を行う自律分散クラスタリング手段を含むものである。
【００１１】
また、本発明は、前記ルーティング層が、ネットワーク環境が疎密な環境通信の信頼性を維持するための遅延・切断耐性ネットワーク手段を含むものである。
【００１２】
本発明は、多機能情報端末に搭載されたブルートゥース通信機能を用いるモバイルアドホックネットワークアーキテクチャーの通信方法であって、前記アーキテクチャーは、下位層で構成されるモバイルアドホックネットワーク機能群を利用したサービス内容を実装し、他端末との通信に用いるデータがパケットに成型され、下位層に送信されるアプリケーション層と、モバイルアドホックネットワークルーティング上位、下位層から受け取ったパケットをどの端末に転送するかを決定するルーティング層と、端末の検出・接続処理を含み、コネクション指向であるブルートゥース通信を、端末の移動が伴うモバイルアドホックネットワークに適用するための機能を実装するとともに、ブルートゥースの検出で発生する可能性がある回避すべき衝突に対し、衝突回避手段を実装するデバイス層とを備え、前記多機能情報端末間で、一の多機能情報端末が、通信範囲内の他の多機能情報端末を検出するステップ、前記一の多機能情報端末が、検出した他の多機能情報端末に対して接続を行うステップ、及び前記他の多機能情報端末が、前記一の多機能情報端末の接続を受け付けるステップを含むものである。
【００１３】
また本発明は、前記通信方法において、前記ルーティング層が、移動を伴う前記端末のグループ化を行う自律分散クラスタリング手段を含むものである。
【００１４】
さらに、本発明は、前記通信方法において、前記ルーティング層が、ネットワーク環境が疎密な環境通信の信頼性を維持するための遅延・切断耐性ネットワーク手段を含むものである。
【発明の効果】
【００１５】
本発明によれば、Android のBluetooth APIによって実現されるツリー構造のMANET構築方法により、近接距離通信によるシステムに応用でき、各端末が周期的に接続の処理を行うことで動的にn分木のツリー構造を構築することができる。
【００１６】
また本発明によれば、階層構造では各層において要素の交換を容易に行うことができるため、再利用性が向上する。したがって、仮にルーティング層で扱うプロトコルが変更になったとしても、上下層を変更することなく実装することができる。また、機能毎のテストやエラー検出に対応しやすく、保守性に優れる。すなわち処理時間計測などのデバッグ処理を、階層毎に独立して行うことができる。
【００１７】
イベント会場において参加者が少ない場合やBluetooth MANETの衝突特性による接続低下が起こった場合、疎なネットワーク環境となる。ルーティング層にDTN手段を内蔵させた場合は、このように周囲に評価情報を転送できるAndroid端末がしないときでも、各Android端末は、移動した後に、転送可能な周囲のAndroid端末へ転送し、評価情報をネットワーク内に伝播させることができる。
【図面の簡単な説明】
【００１８】
【図１】Bluetoothの接続手順を示す図である。
【図２】端末同士が接続するまでの流れを示すフローチャートである。
【図３】ツリー構造のトポロジ図である。
【図４】各端末のホップ数−RTT関係を示すグラフである。
【図５】階層構造のアーキテクチャーを示すブロック図である。
【図６】アーキテクチャーの実装構造を示すブロック図である。
【図７】児童見守りシステムを説明するための概略図である。
【図８】博覧会等イベント会場での情報通信サービスを説明するための概略図である。
【図９】Epidemic Routingを説明するための図である。
【図１０】Summary Vectorを利用したデータ転送を説明するための図である。
【図１１】検出にかかる時間と検出端末数の関係を示すグラフである。
【図１２】Bluetooth通信のスループット-同時送信数の関係を示すグラフである。
【図１３】受信時の階層ごとの処理時間を示すグラフである。
【発明を実施するための形態】
【００１９】
本発明実施の形態においては、Bluetooth通信を利用したBluetooth MANETについて述べる。Class2のBluetoothは、IEEE802.11b/g 等一般的な無線LANに比べ、電波出力が 小さく、想定される携帯端末を用いたMANETのモデルに適している。また、Bluetoothは採用されているスペクトラム拡散方式の特徴から、電波干渉にも比較的強い。
【００２０】
Bluetoothはコネクション指向の通信であることから、隣接端末と通信するために図１に示す手順（ステップS1〜S3）が必要である。図中、A、Bはそれぞれ端末を示す。端末Aの検出と接続はユーザの任意のタイミングで行うことができる。
S1 検出: 端末Aが、通信範囲内の端末Bを検出する。
S2 接続: 端末Aが、検出した端末Bに対して接続を行う。
S3 受付: 端末Bが、隣接端末Aの接続を受け付ける。
MANETは各端末が移動し、自律的にネットワークを構成する性質をもつから、Bluetooth MANETではこれを担保するために、これらの処理を定期的に行い、隣接端末の存在を確認する必要がある。
【００２１】
本実施形態では、ネットワークアーキテクチャーの無線通信にClass2
のBluetoothを用いる。これはIEEE802.11b/g
という一般的な無線 LAN に比べ、電波出力が小さく、想定される携帯端末を用いた MANETのモデルに適しているためである。加えて、上記の仕様や Bluetoothで採用されているスペクトラム拡散方式の特徴から、電波干渉にも比較的強い。
【００２２】
構築方法
以下、Bluetooth APIを用いたツリー構造MANETの構築方法について、具体的に使用している API及びアルゴリズムを述べる。また、類似のネットワーク構造の構築方法とも対比させて考察し、ツリー構造が有効な実際の適用例を述べる。
【００２３】
Bluetooth API 
Android Developersにより配布されているAndroid SDK のうち、前述した接続手順の処理を行うための基本APIとして、表 1（基本的なBluetooth  API）に示すメソッドが存在する。本方法はこれらのメソッドを用いて実現される。
【表１】
2014138241.tif 000003
【００２４】
アルゴリズム
ツリー構造を構築するためアルゴリズムについて述べる。図２に端末同士が接続するまでのフローチャートを示し、以下、その手順についてステップ(S11〜S16)順に述べる。
S11.各端末は、まず起動時に検出時間、検出周期を決定する。Android Bluetoothでは、検出の衝突に関する課題が存在する。検出時間と検出周期を動的に変化させて、効率的に相互接続を行う方法が採用され、この方法による値がこの処理で決定される。
S12. 検出を開始する。
S13. 端末を検出する。
S14．端末を検出した場合、検出済みリストに追加していく。
S15．端末が検出されない場合、検出を終了する。
S16. 検出が終了した時点で、検出済みリストを参照して接続要求を出す。
【００２５】
本方法では、その時点で未接続の端末に対して要求を出す。よって、リンク構造はあるn分木となり、ツリー構造を構築することができる。ここでは、検出しまだ接続していない端末全てに対して接続要求を行う。したがって、検出できる端末数の範囲内で、上限なく接続を試みてn分木を構築しようとする。Bluetoothには同時接続数に上限が存在するため、周囲のツリー構造を意識してn分木を構築することで、無駄な接続を削減することができる。具体的な方法として、自身の接続端末リストや近隣端末が管理している接続のリスト、検出済みリストを参照することで、数を限定した接続要求もしくは意図的な接続切断を行うことができる。
【００２６】
構築方法の特徴
ネットワーク構造のうち、ツリー構造でのネットワーク構築方法について述べる。なお、このほかに 具体例としてリング構造でのMANET構築も考えられる。リング構造では、リングを周回するようにデータ転送が行われる。前述の通りBluetoothには同時接続可能数に上限が存在するため、その対策が必要となるが、反面、転送のホップ数が増え、転送遅延も大きくなる。また、純粋なリング構造しかとらないネットワーク構造は、MANETとは言い難い。これを考慮した上で、MANETで最も典型的なツリー構造を構築する。
【００２７】
適用例
前述の方法によりツリー構造MANETを構築することによって、移動を伴う不特定複数の端末によるネットワークを構成することができる。これを応用して、各種博覧会等のイベント会場における情報伝搬システムや、安否情報に役立つ児童見守りシステムを実現することができる。前者のシステムでは、イベント参加者による展示品の評価情報を周囲に伝搬し、また後者システムでは、見守り対象者の情報を保護者に転送することができる。
【００２８】
動作実験
前述の方法よって構築されたツリー構造MANETにおいてAndroid端末実機を用いて動作実験を行った結果を、その挙動及び特性について述べる。
【００２９】
実験内容及び環境
ツリー構造をもつトポロジを図３に示す。端末Sを送信元端末とし、フラッディングにより全ての端末A、B、C、D、Eにデータを転送する。データを受信した端末A〜Eは送信元に対して確認応答を返信する。実験例では、各端末A〜Eの遅延確認応答時間（RTT:Round Trip Time）を測定した。測定のためのデータサイズを約50byteとし、７回実行しその平均値を結果とした。また、メー カ、Android OSのバージョンが異なる複数の実機端末を混在させて実行した。
【００３０】
実験結果
上記の結果を図４に示す。図中、横軸をホップ数、縦軸をRTTの測定値とする。各要素の上部に添えられたID  A、B、C、Dは図３における端末 ID  A、B、C、Dを示す。端末Eの結果はトポロジの状況からみて端末Aと同様の扱いのため、省略した。
【００３１】
図４に示すように、RTTはホップ数に比例して増加している。その値は概ねミリ秒のオーダであり、極めて短いことが分かる。このように問題なくデータが転送されていることから、ツリー構造のトポロジで正常にMANET機能が動作していることが分かる。また、同ホップ数同士の値に若干の差異がみられる。これは送信する端末のアプリケーション上ではパケットを複数端末に同時に送信しているが、Bluetooth通信において競合があり、若干の時間差が生まれたためと考えられる。
【００３２】
本実験例では、AndroidのBluetooth APIによって実現されるツリー構造のMANET構築方法について述べた。MANETの特徴的なネットワーク形態であるツリー構造をとることで、近接距離通信によるシステムに応用でき、各端末が周期的に接続の処理を行うことで動的にn分木のツリー構造を構築することができる。
【００３３】
ネットワークアーキテクチャー
次に、Bluetooth MANETに基づくネット ワークアーキテクチャーについて述べる。
【００３４】
各階層の機能
本発明に係るネットワークアーキテクチャーは、アプリケーション層、ルーティング層、デバイス層の 3 層にて構成され、各層は以下の機能をもつ。
【００３５】
アプリケーション層：サービスの提供
下位層で構成されるMANET機能群を利用したサービス内容を実装する。本実施形態では Android端末を利用しているため、そのユーザインタフェースが実装される。他端末との通信に用いるデータは、まずこの層で最初にパケットに成型され、下位層に送信される。
【００３６】
ルーティング層:MANETルーティング
上位、下位層から受け取ったパケットをどのようにどの端末に転送するかを決定する。具体的には、移動を伴う端末のグループ化を効率的に行う自律分散クラスタリング 、ネットワーク環境が疎密な環境で通信の信頼性を発揮する遅延・切断耐性ネットワーク（DTN: Delay and Disruption Tolerant Network)、その他の MANETルーティングプロトコルを実装することができる。
【００３７】
デバイス層:Bluetooth MANET
端末の検出・接続処理を含み、コネクション指向であるBluetooth通信を、端末の移動が伴うMANETに適用するための機能を実装する。AndroidにおけるBluetoothの検出で発生する可能性がある回避すべき衝突に対し、衝突回避手段を実装することができる。このように階層化して設計し、機能毎の実装を独立に行う。特に、ルーティング層では MANETルーティングプロトコルを実装できるよう特化されており、またデバイス層ではBluetooth MANETを実装でき、MANETを基盤とするシステムを効率的に設計できる。
【００３８】
階層構造
以下、図５を参照してアーキテクチャーの具体的な階層構造について述べる。3層からなる各層、すなわちアプリケーション層（Application Layer）１、ルーティング層（Routing Layer）２、デバイス層（Device Layer）３は、共通の通信機能を持つ抽象層をそれぞれ継承している。抽象層には、受信用バッファ(Receive Buffer)４、送信用バッファ(Send Buffer)５が用意されており、送受信する場合はこれらにパケット(packet)が挿入される。また、パケットの処理機能として、受信プロセス(receive Process)６、送信プロセス(send Process)７が抽象メソッドとして用意され、送受信時のあらゆる処理を受け持つ。例えばルーティング層２であれば、受信したパケットが自分宛でない場合、自身のルーティングテーブルを参照して、次の転送先に送信する、などの処理が受信プロセスに記述される。各層におけるパケットヘッダの付加および除去処理もこのプロセス内で行われる。
【００３９】
各層は下位層のインスタンスを保持し、これを元に別層のパケット送受信の処理を呼び出す。さらに、送受信用のバッファは各層それぞれのスレッドで監視されており、バッファにパケットが挿入されるまでスレッドは待つ。最も下位の層であるデバイス層３では、送信および受信は Androidで提供されているBluetooth８のAPIを通じて行われる。
【００４０】
階層間通信
階層間の通信は、独自に作成した共通のデータフォーマットを用いて行われる。これを抽象パケットとして用意し、全ての階層の全てのパケットが同じ抽象パケットを具象化している。したがって、パケットの追加が容易である。また、パケットの要素の格納方法はデータの型や数に依存しない設計とされており、どのような型でも、どれだけの数でも柔軟に格納でき、要素の追加変更にも強い。
【００４１】
実装方法
実装方法のイメージを図６に示す。図示のように、３つの階層、アプリケーション層（Application Layer）１、ルーティング層(Routing Layer)２及びデバイス層(Device Layer)３は共通の抽象層(Abstract Layer)９を継承している。実際にシステムに実装する場合は、これらの層をさらに継承することで最終的に利用される具象層が生成できる。さらに、各層をセットにしてこれをプロトコルスタック(Protocol Stack)１０として扱えば、システム全体を起動することができる。また、ネットワークアーキテクチャーは端末への実装が前提であるため、実装言語はJava（登録商標）である。
【００４２】
実装例
実施形態に係るネットワークアーキテクチャーを用いて開発した見守りシステム及び博覧会等イベント会場における情報伝播システム（ひろしま菓子博 2013 サービスシステムの例）の二つについて述べる。
【００４３】
児童見守りシステム
児童見守りシステムは、広島市児童見守りシステムモデル事業で得られた知見と経験に基づいて改良された MANETベースの見守りシステムである 。システムの目的は、登下校路における児童の見守り情報を効率的かつ安全に収集することであり、そのイメージを図７に示す。
【００４４】
システムは、Android端末１１で構成される
MANETと、電柱に取り付けられたタグ１２や、サーバ１３で構成されるメッシュネットワークからなる。多様な移動形態をとる端末１１を効率的に管理するために、自律的にグループを構成する自律分散クラスタリングを適用している。端末１１間で収集されたクラスタ情報は、見守り情報としてタグ１２に向けて送信され、メッシュネットワークを通じてサーバ１３に転送される。サーバ１３はインターネットに接続されており、保護者がインターネットを介して見守り情報を確認することができる。このネットワークアーキテクチャーはシステム内の端末１１に搭載するアプリケーションに適用する。児童見守りシステムに適用したネットワークアーキテクチャーにおける各層の機能を以下に示す。
【００４５】
アプリケーション層:タグ・端末間通信、各種 UI
タグ１２とAndroid端末１１間の通信管理機能や、各種設定や情報閲覧のためのユーザインタフェースが実装される。下位層で収集されたクラスタ情報をデータとし、タグ１２に対して定期的に送信する。
【００４６】
ルーティング層: 自律分散クラスタリング
各Android端末１１は多様な移動形態をとると想定される。したがって、これに効率的に対応するために、自律的にグループを構成できる自律分散クラスタリングを実装する。
【００４７】
デバイス層:Bluetooth MANET
デバイス層は、共通の無線通信機能として、Bluetooth MANETを実装する。また前述した衝突回避手段が適用される。
【００４８】
自律分散クラスタリング
クラスタリングとはネットワークをサブネットワークに分割することで階層化して管理する手法であり、サブネットワークをクラスタと呼ぶ。複数のクラスタが互いに重複することはなく、各端末は一つのクラスタにしか所属できない。
自律分散クラスタリングにおいて、各クラスタは一つのクラスタヘッドと複数のクラスタメンバによって構成される。クラスタヘッドは情報を交換して自身を根とする木構造を構成する。また、クラスタヘッドはクラスタメンバ数の下限値と上限値を用いて、クラスタの大きさを管理している。
【００４９】
ひろしま菓子博 2013 サービスシステム
発明者らは、博覧会「ひろしま菓子博 2013」を対象としたAndroid端末及び Bluetooth MANETを用いた菓子評価情報の伝搬・収集システムを開発した。「ひろしま菓子博 2013 サービスシステム」のイメージを図８に示す。
【００５０】
イベント会場において、参加者（来場者）１４は、多種多様な菓子を各店舗１５で試食し、移動する。その際、「美味しい」「綺麗」等の評価をすることが予想される。本システムは、これを評価情報として端末１１を利用した MANETにより、自動的に伝搬・収集する。端末１１には、参加者１３が評価情報を書き込む機能、MANETを介して評価情報を伝搬する機能、評価情報を収集する機能、評価情報を表示する機能を実装している。これにより、端末１１を持つ参加者にリアルタイムに評価情報を与えることができ、会場内で、ゲーム感覚でサービスを楽しむことができる。
【００５１】
一方、参加者１３が少ない場合やBluetooth MANETの衝突特性による接続性の低下も予想される。このような状況では疎なネットワーク環境となるため、遅延・切断耐性ネットワークDTNを適用して対応する。具体的には蓄積運搬型のデータ転送（Epidemic Routing）を行う。すなわち、図 ８に示すように、中央の Android携帯端末１１のように、周囲に評価情報を転送できるAndroid端末が存在しない場合でも、各 Android端末は移動した後に転送可能な周囲のAndroid端末へ転送し、評価情報をネットワーク内に伝搬させることができる。受信した評価情報はAndroid端末の画面に出力され、参加者はリアルタイムに評価情報を閲覧することができる。ネットワークアーキテクチャーはこのAndroidアプリケーションに対して適用する。
【００５２】
ネットワークアーキテクチャーにおける各層の機能を以下に示す。
アプリケーション層:デザイン、各種 UI
アプリケーションの画面遷移、ユーザインタフェース、データ入出力機能を実装する。参加者は様々な評価項目を入力することで、評価情報を作成する。作成された評価情報はデータとしてパケットに成型され、下位層に送信される。また、評価情報を受信した場合は、参加者が見やすいように画面に出力される。  
【００５３】
ルーティング層:DTN(Epidemic Routing)
蓄積運搬型のデータ転送方式を実装する。ルーティング層では上位、下位層から受け取ったデータを蓄積する。移動やBluetooth MANETによる接続状況に変化があった時に、通信可能、かつ自身が保持するデータを持っていない Android端末が存在した場合はデータを転送する。Epidemic Routingの動作例を図９に示す。図中○印にて端末を示す。端末Sから情報を受信した移動端末A は、そのデータを自身に蓄積している。時間経過とともに、端末Aと通信可能な端末が変動する。この時、隣接端末と保持しているデータ情報の差分をとることで、互いに保持していないデータを転送する。同様の動作を繰り返すことで端末Sのデータをネットワークに伝搬させることができる。
【００５４】
デバイス層:Bluetooth MANET
デバイス層は、共通の無線通信機能として、Bluetooth MANETを実装する。このサービスは、共通の Bluetooth MANET機能を用いるため、前述した児童見守りシステムのものと同様である。このように、基盤が同じであるにも関わらず、上位層を選択できる特徴を持つ。
【００５５】
DTN:遅延・切断耐性ネットワーグ
本システムでは、DTN技術の一つである Epidemic Routingを実装している。Epidemic Routingでは、端末内にデータを蓄積する。本システムでは、以下の場合にデータを蓄積する。
・ユーザによって情報が生成された。
・新しいデータを受信した。
データを受信した場合では、既に他の端末から同じデータを蓄積している場合が考えられる。この場合、データ生成端末のIDとタイムスタンプを用いて識別し、重複を回避している。また、現状の実装ではデータの蓄積時間は生成時間から30分間である。しかしながら、端末に蓄積されるデータ量は有限であることから、実際の運用ではこのパラメータは重要となる。したがって時間、数、容量などの観点で検討する必要がある。
【００５６】
蓄積データ情報の交換とデータ転送蓄積されたデータを隣接端末に転送するために、各端末で保持する SV(Summary Vector)と呼ばれる蓄積データリストが用いられる。各端末はSVを定期的に交換することで、自分が蓄積していないデータを取得することができる。また、SVはデータの識別子のみからなるリストであり、データそのものは含まれていない。そのため、単に蓄積しているデータを全て送信するのに比べてオーバヘッドを削減することができる。
【００５７】
本システムにおける SVを利用したデータ転送を、図１０を参照して説明する。同図において、各端末A,S,Bは互いに通信できる状況であるとする。まず端末Sが自身の保持するSVであるSVSをブロードキャストする。それを受信した端末Aは、自身の保持するSVAとの差分のSVである (~SVS・SVA)を生成する。これを元に差分のデータリストであるData(~SVS・SVA) を端末Sにユニキャストする。同様の処理を、端末Bでも行う。このような処理を各端末が定期的に行うことで、即時に受信できなかったデータを受信することができる。現状の実装では送信間隔30秒でSVを送信している。情報の普及速度とオーバヘッドにトレードオフ関係があるため、最適な送信間隔を検討する必要がある。
【００５８】
実装と動作実験
本発明に係るモバイルアドホックネットワークアーキテクチャーの特性及びシステム動作の確認を行う。
【００５９】
実験環境
全てAndroid端末の実機を用いた。端末は２種類用意し、適宜混在させて実験した。その仕様を表２に示す。また、実験は、Bluetoothと同周波数帯の電波（2.4GHz帯のIEEE802.11g/nなど）が混在する環境で行なった。
【表２】
2014138241.tif 000004
【００６０】
Bluetooth 通信に関する実験
本発明に係るネットワークアーキテクチャーの通信手段には Bluetooth通信を用いた。Bluetooth MANETを構築するにあたり、隣接端末との接続にどのような関係性があるかを実機実験により示す。以下、複数の隣接端末の検出に関する実験、データ転送におけるスループット測定の二つの実験について述べる。
【００６１】
検出に関する実験
端末を６台使用し、1台を、検出を行う端末とする。その他の5台を検出される端末とする。検出される端末は検出処理を行わず、常に検出されうる状態とした。一回の検出処理において、時間推移と検出端末数の関係を調べた。実験結果を図１１に示す。図中、横軸は時間、縦軸は 1 回の検出で発見した端末の合計数を示す。実験は100 回行い、平均値を実験結果とした。図に示すように検出開始直後から検出され始め、時間に比例して検出端末数が増加する。そして約６秒間検出を行えば、ほぼすべての端末が検出できることが分かった。この実験により得られた結果は、検出を行なう周期や検出時間を決定するのに利用される。また前述した衝突回避手段を応用することもできる。
【００６２】
Bluetooth通信のスループット計測
MANETを構築するという前提を考慮し、複数同時通信の際のスループットについて計測した。測定のためのデータサイズを約３０KBとし、１０回試行し平均値を結果とした。実験結果を図１２に示す。図中、横軸は同時送信数（concurrency）、縦軸はスループットを示す。同時送信数が１のとき、約１Mbpsのスループットがあり、Bluetooth2.0＋EDRの規格理論値３Mbpsから見ても、比較的高速に通信できることが分かる。加えて、正負で２００Kbps程度の誤差が認められる。これは実験環境で述べたような他の混在する電波の影響により、転送のタイミングによって数値の誤差が生まれたと考えられる。対照的に、同時送信数2、3では、急激にスループットが下がっている。これは、自端末が同時に同周波数帯で送信することで帯域の競合が起こっていると考えられる。このことから、同時に複数の端末にデータを転送する場合は、データサイズが大きいと不利といえる。
【００６３】
階層間通信の実験
ネットワークアーキテクチャーで提供される階層間通信に関する実験について述べる。各階層に実装されるプロトコルは、他の階層とは完全に独立している。したがって、このアーキテクチャーでは純粋な各プロトコルの処理時間を容易に計測することができる。具体的に、「ひろしま菓子博サービスシステム」を例にとり、各階層の受信処理に要する時間を計測しその効果を確認した。実験は、ある端末から任意の口コミ情報を送信し、それを受信する形式とした。なお、口コミ情報は受信処理時間の差異を示すために写真データ有り無し（データサイズ大小）の場合で計測した。以上の実験を10回行い、平均値をとった。実験結果を図１３に示す。図中、横軸は各階層、すなわち本実験の場合ではそれぞれ GUIの操作を行う層、DTNを適用したルーティング層、Bluetooth MANETを実装した層を表し、縦軸は処理時間を示す。
【００６４】
図１３から、デバイス層の処理時間は非常に短いことが分かる。現状の実装では、デバイス層ではデータ全体を受信した後、特別な処理を行うことなく単に上位層に転送しているためこのような結果となる。転送遅延は数値に含まれていない。他の層では、データサイズが大きな写真付きの口コミ情報の方がそうでない場合に比べて処理に時間がかかっていることが分かる。また、ルーティング層ではアプリケーション層に比べて時間がかかっていることが分かる。これは、受信時にパケット重複や現存の蓄積されたデータとの比較などの処理があるためと考えられる。このように、ネットワークアーキテクチャーを適用すること各層を切り分けて考察することができるため、保守性に優れているのである。
【産業上の利用可能性】
【００６５】
本発明は、前述した児童見守りシステムのように、複数の人間が一緒に移動するグループを見守るための情報を速やかに取得するシステム、また前述したひろしま菓子博2013サービスシステムのように、博覧会等イベント会場内で移動する互いに面識の無い人間にイベントのための情報を徐々に提供するシステムに使用できる。
【符号の説明】
【００６６】
S、A、B、C、D、１１     端末
１      アプリケーション層
２      ルーティング層
３      デバイス層
４      受信用バッファ  
５      送信用バッファ
６      受信プロセス手段
７      送信プロセス手段
８      Bluetooth
９      抽象層
１０    プロトコルスタック
１２    タグ
１３    サーバ
１４    参加者
１５    店舗
【図１】
2014138241.tif 000005
【図２】
2014138241.tif 000006
【図３】
2014138241.tif 000007
【図４】
2014138241.tif 000008
【図５】
2014138241.tif 000009
【図６】
2014138241.tif 000010
【図７】
2014138241.tif 000011
【図８】
2014138241.tif 000012
【図９】
2014138241.tif 000013
【図１０】
2014138241.tif 000014
【図１１】
2014138241.tif 000015
【図１２】
2014138241.tif 000016
【図１３】
2014138241.tif 000017