以下、図面を参照して、本発明の一実施形態について説明する。
図1に示すように、本発明の一実施形態に係る無線通信システムを構成する無線通信端末(以下、単にノードと称する)は、CPU10、メモリ20、ディスク30、GPS受信機40及び無線通信部50を有する。ノード内の各要素は例えばバスによって相互に接続され、データのやり取りが可能である。
CPU10は、数値演算、条件判定及び入出力データの受け渡しなどの様々な処理を行う。より詳細には、CPU10は、図2に示されるようにエリアの分割を行うエリア分割部11、自ノードの子管理ノードを選択するノード選択部12及び自ノードの位置情報とエリアの座標情報から自ノードの存在するエリアを判断するエリア判断部13などとして機能する。また、後述する管理ノードは、エリア判断部13によって他ノードの位置情報と管理するエリアの座標情報から当該他ノードが上記エリア内に存在するか否かを把握することができる。
メモリ20には、CPU10が上記様々な処理を行う際に必要とするデータが一時的に保存される。ディスク30には、自ノードの識別情報であるノードIDを含む様々な情報が記憶される。
GPS(Global Positioning System)受信機40は、人工衛星から受信した電波によって、自ノードの現在位置を示す位置情報を取得する。この位置情報は例えば緯度及び経度を座標軸とする座標情報であるが、これに限らず例えば上記座標情報に所定の変換を施してもよい。以下の説明では、位置情報として緯度及び経度を座標軸とする座標情報を用いる例について述べる。GPS受信機40によって受信された位置情報は、メモリ20またはディスク30に記憶される。
無線通信部50は、無線信号の電力増幅、フィルタリング、周波数変換及び変復調など他ノードとデータを送受信するための処理を行う。
図1に示すノードは、例えば図2に示すような環境で用いられる。図2では、ノードA乃至Lが矩形状のエリア200に散在している。これらノードA乃至Lは例えば人間が携帯する計算機であり、人間の移動に伴って移動する。各ノードA乃至Lの無線通信部50の無線通信範囲全体でエリア200の全域をカバーしているものとする。
また、エリア200は各ノードA乃至LのGPS受信機40が取得した位置情報で指定される、変動の無い静的な領域である。即ち、エリア200の範囲は形状と位置情報により一意に決まり、例えば矩形状のエリアであれば頂点の位置情報によってエリアは一意に決まる。エリアの形状は矩形状に限られないが、以下の説明では一例として矩形状のエリアを用いて4頂点の位置情報をエリアの座標情報として扱うものとする。
本実施形態に係る無線通信システムでは、エリア200内に1つのルート管理ノードを設ける。ルート管理ノードはエリア200内の他の全てのノードを管理対象とする管理ノードであり、管理対象ノードの無線通信の中継を含む管理を行う。ルート管理ノードのメモリ20またはディスク30には管理対象ノードのノードIDが記憶されている。ルート管理ノードは、定期的にキープアライブ(KA)要求を管理対象ノードにブロードキャストし、各管理対象ノードからKA応答を受信することで各管理対象ノードが正常に動作しているか否かを確認する。
以下、図2に示す環境におけるKA要求及びKA応答のやりとりについて図3を用いて説明する。尚、ノードAはルート管理ノードであるとする。図3に示すように、ルート管理ノードAの無線通信部50は、定期的にKA要求を管理対象ノードB乃至Sにブロードキャストする。上記KA要求を受信した各管理対象ノードB乃至Sの無線通信部50は、KA応答をルート管理ノードAに返信する。各管理対象ノードB乃至SからのKA応答には、自ノードのノードIDが夫々付加されている。従って、ルート管理ノードAのCPU10は、上記KA応答に付加されたノードIDと、メモリ20またはディスク30に記憶されている管理対象ノードのノードIDとを照合し、各管理対象ノードが動作しているか否かを確認する。KA応答が一定時間返ってこないノードは正常に動作していないと考えられるため、ルート管理ノードAのCPU10は当該ノードIDをメモリ20またはディスク30から削除し、管理対象ノードから除外する。
図4に示すように、ルート管理ノードはKA応答を全ての管理対象ノードから受信するため、管理対象ノード数の増加に伴って通信負荷が増大する。従って、本実施形態ではルート管理ノードの通信容量等に応じて閾値が設定され、管理対象ノードの数が当該閾値を超えるとルート管理ノードは通信負荷を分散させるべくエリアの分割処理を行う。
この分割処理ではエリアを所定形状に分割するが、分割後のエリア間に物理的な隙間及び重複が生じないよう敷き詰められる形状にエリアを分割することが望ましい。互いに物理的な隙間及び重複が生じないようにエリアの分割を行えば、後述するように各ノードは各エリアの座標情報及びGPS受信機40により取得した位置情報によって所属するエリアを判断することができる。また、分割後のエリアの座標情報の演算を簡単にするため、分割後のエリア形状は分割前のエリア形状の相似形であることが望ましい。以下の説明では、一例として矩形状のエリアを十字に4等分して矩形状のエリアを得る分割手法について説明する。この分割手法は分割後のエリア間に物理的な隙間及び重複が生じない点及び分割後のエリア形状が分割前のエリア形状の相似形である点で望ましい。尚、本実施形態に適用可能な分割手法はこれに限られるものでない。
エリア分割処理が開始すると、ルート管理ノードのCPU10は分割後のエリアの座標情報を演算する。この座標情報は分割前のエリアの座標情報及びルート管理ノードが行う分割手法によって決まる。また、ルート管理ノードのCPU10は、分割後のエリアに夫々エリアIDを付与する。次に、ルート管理ノードの無線通信部50は、1つの管理対象ノードに対して分割要求を送信する。この分割要求には分割後の各エリアの座標情報及びエリアIDが含まれている。
ルート管理ノードからの分割要求を受信すると、管理対象ノードのCPU10は各エリアの座標情報及びエリアIDをメモリ20またはディスク30に記憶する。また、上記管理対象ノードのCPU10は、GPS受信機40が取得した位置情報及び上記各エリアの座標情報を照合して、自ノードの存在するエリアを確認する。
次に、上記管理対象ノードの無線通信部50は、自ノードの存在するエリアのエリアID及びノードIDを含む分割応答をルート管理ノードに返信する。ルート管理ノードは、上記分割応答を受信すると、他の管理対象ノードに対して分割要求を送信する。このように分割要求及び分割応答の送受信を繰り返して全ての管理対象ノードから分割応答を受信すると、ルート管理ノードはエリア毎に管理ノードを選択する。即ち、ルート管理ノードのCPU10は、分割応答に含まれているエリアIDで管理対象ノードをグループ化し、このグループの管理ノードを当該グループ内の管理対象ノードから選択する。上記管理ノードはランダムに選択されてもよいし、所定の条件に従って選択されてもよい。ルート管理ノードのメモリ20またはディスク30には、子管理ノードとして上記管理ノードのノードIDが記憶される。本実施形態に係る無線通信システムにおいて子管理ノードは親管理ノードと同様の権限を持ち、後述するようにエリアの分割及び統合を行うことができる。また、ルート管理ノードの無線通信部50は、管理対象ノードの各々に順に分割要求を送信せずに、全ての管理対象ノードを対象として分割要求をブロードキャストしてもよい。
子管理ノードの選択が終了すると、ルート管理ノードの無線通信部50は、自ノードのノードID、各エリアの管理ノードのノードID及び当該エリアに存在する他の全てのノードのノードIDを含む分割完了通知を全ての管理対象ノードに送信する。ルート管理ノードから分割完了通知を受信した各管理対象ノードのCPU10は上記分割完了通知中の各エリアの管理ノードのノードIDを参照して、自ノードが管理ノードとして選択されているか否かを確認する。
管理ノードとして選択されたノードのメモリ20またはディスク30には、管理対象ノードとして自エリアに存在するノードのノードIDが記憶される。また、上記ノードのメモリ20またはディスク30には、親管理ノードとしてルート管理ノードのノードIDが記憶され、他エリアの管理ノードのノードIDも記憶される。管理ノードとして選択されなかったノードのメモリ20またはディスク30には、自エリアの管理ノードのノードIDが記憶される。
以下、図5及び図6を用いて本実施形態に係る無線通信システムにおける分割処理の一連の流れについて具体的に説明する。図2に示す環境において、ルート管理ノードAの管理対象ノード数が所定の閾値を超えているため、ルート管理ノードAのCPU10がエリアの分割を決定する。分割処理が開始すると、ルート管理ノードAのCPU10は、分割後のエリアの座標情報を演算する。図6に示すように、ルート管理ノードAは矩形状のエリア200を十字に4等分してエリアa、b、c及びdを得る。また、ルート管理ノードAのCPU10は上記エリアa、b、c及びdに対してエリアIDとして例えばa、b、c及びdを夫々付与する。
以上のように分割後のエリアの座標情報の演算及びエリアIDの付与が終了すると、図5に示すようにルート管理ノードAは管理対象ノードBに対してルート管理ノードAのノードID、分割後のエリアa、b、c及びdの座標情報及びエリアIDを含む分割要求を送信する。
分割要求を受信すると、管理対象ノードBのCPU10は上記分割要求に含まれるエリアa、b、c及びdの座標情報と、GPS受信機40が取得した自ノードの位置情報とを照合して、自ノードがエリアaに存在していることを確認する。管理対象ノードBの無線通信部50は、自ノードのノードID及び自ノードの存在するエリアaのエリアIDaを含む分割応答をルート管理ノードAに返信する。また、管理対象ノードBのCPU10は、各エリアa、b、c及びdの座標情報及びエリアIDをメモリ20またはディスク30に記憶する。
管理対象ノードBから分割応答を受信すると、ルート管理ノードAは以下同様に管理対象ノードC乃至Sに対して分割要求及び分割応答を送受信する。全ての管理対象ノードC乃至Sから分割応答を受信すると、ルート管理ノードAのCPU10は各エリアa、b、c及びdにおける管理ノードとして、ノードO、M、G及びEを夫々選択する。これらノードO、M、G及びEのノードIDは、子管理ノードとしてルート管理ノードAのメモリ20またはディスク30に記憶される。
子管理ノードの選択が終了すると、ルート管理ノードAの無線通信部50は、自ノードのノードID、各エリアa、b、c及びdの管理ノードのノードID及び当該エリアに存在する他の全てのノードのノードIDを含む分割完了通知を全ての管理対象ノードB乃至Sに送信する。ルート管理ノードAから分割完了通知を受信した各管理対象ノードB乃至SのCPU10は上記分割完了通知中の各エリアa、b、c及びdの管理ノードO、M、G及びEのノードIDを参照して、自ノードが管理ノードとして選択されているか否かを確認する。
管理ノードとして選択されたノードO、M、G及びEのメモリ20またはディスク30には、管理対象ノードとして自エリアに存在するノードのノードIDが記憶される。また、上記ノードのメモリ20またはディスク30には、親管理ノードとしてルート管理ノードAのノードIDが記憶され、他エリアの管理ノードのノードIDも記憶される。管理ノードとして選択されなかったノードのメモリ20またはディスク30には、自エリアの管理ノードのノードIDが記憶される。
例えば、管理ノードOのメモリ20またはディスク30には、他エリアb、c及びdの管理ノードM、G及びEのノードID、管理対象ノードとしてノードB及びノードNのノードID及び親管理ノードとしてルート管理ノードAのノードIDが記憶される。また、ノードB及びノードNのメモリ20またはディスク30には管理ノードとして管理ノードOのノードIDが記憶される。
以上のようにエリアの分割が行われると、前述したKAの流れが変化する。具体的には、ルート管理ノードが定期的にKA要求を全ての管理対象ノードにブロードキャストする点は同じであるが、ルート管理ノードに対するKA応答の返信の流れが以下に説明するように変化する。
エリア分割後にKA要求を受信すると、各エリアにおいて管理ノード以外のノードの無線通信部50はKA応答を自エリアの管理ノードに送信する。各エリアの管理ノードは、管理対象ノードからのKA応答を一定時間待つ。管理ノードの無線通信部50は、上記一定時間内に受信したKA応答を統合したKA統合応答をルート管理ノードに送信する。具体的には、KA統合応答には各管理ノードのノードID及び当該管理ノードが上記一定時間内に受信したKA応答中のノードIDが含まれる。ルート管理ノードのCPU10は、上記KA統合応答中のノードIDを参照して正常に動作しているノードを確認する。このように、ルート管理ノードが本来受信しなければならないKA応答を各エリアの管理ノードにて統合することにより、ルート管理ノードの通信負荷を各エリアの管理ノードに分散させることができる。
以下、図7及び図8を用いて本実施形態に係る無線通信システムにおけるエリア分割後のKA処理の一連の流れについて具体的に説明する。図7に示すようにエリアaでは、ルート管理ノードAによってブロードキャストされたKA要求を受信したノードB及びNの無線通信部50が、自ノードのノードIDを含むKA応答をエリアaの管理ノードOに送信する。
管理対象ノードB及びNからKA応答を受信すると、管理ノードOの無線通信部50は上記KA応答から取得した管理対象ノードB及びNのノードID及び自ノードのノードIDを含むKA統合応答をルート管理ノードAに送信する。
図8に示すように、ルート管理ノードAのCPU10は、各エリアa、b、c及びdの管理ノードO、M、G及びEからKA統合応答を受信して、管理対象ノードB乃至Sの動作状況を確認する。ルート管理ノードAは、エリア分割前は管理対象ノードB乃至Sの計18個のKA応答を受信しなければならなかったが、エリア分割後は各エリアa、b、c及びdから計4個のKA応答を受信するだけでよい。以上からエリア分割によってルート管理ノードAの通信負荷が各エリアの管理ノードO、M、G及びEに分散されていることがわかる。
また、本実施形態に係る無線通信システムでは子管理ノードは親管理ノードと同様の権限を持つため、各エリアの管理ノードがルート管理ノードと同様にエリアの分割を行ってもよい。即ち、各エリアの管理ノードは管理対象ノード数が閾値を超えるとルート管理ノードと同様のエリアの分割を行う。以下、各エリアの管理ノードによるエリアの分割について図9を用いて具体的に説明する。
図8では、エリア200がエリアa、b、c及びdに分割され各エリアにおいて管理ノードO、M、G及びEが選択されているが、エリアdの管理ノードEの管理対象ノード数が閾値を越えているため、管理ノードEのCPU10はエリアdの分割を決定する。
分割処理が開始すると、管理ノードEのCPU10は分割後のエリアの座標情報を演算し、矩形状のエリアdを十字に4等分してエリアIDを付与する。ここで、エリアIDを付与する手法は特に限定しないが、ルート管理ノードと共通の手法を用いたほうが処理を単純化できる。従って、図9に示すように管理ノードEのCPU10はルート管理ノードAと同様に分割後の4つのエリアについて、左上のエリアから反時計回りにエリアIDa、b、c及びdを夫々付与する。従って、分割後のエリアIDはda、db、dc及びddとなる。
以上のように分割後のエリアの座標情報及びエリアIDの付与が終了すると、管理ノードEは管理対象ノードCに対して管理ノードEのノードID、分割後のエリアda、db、dc及びddの座標情報及びエリアIDを含む分割要求を送信する。
分割要求を受信すると、管理対象ノードCのCPU10は上記分割要求に含まれるエリアda、db、dc及びddの座標情報と、GPS受信機40が取得した自ノードの位置情報とを照合して、自ノードがエリアdaに存在していることを確認する。管理対象ノードCの無線通信部50は、自ノードのノードID及び自ノードの存在するエリアdaのエリアIDdaを含む分割応答を管理ノードEに返信する。また、管理対象ノードCのCPU10は、各エリアda、db、dc及びddの座標情報及びエリアIDをメモリ20またはディスク30に記憶する。
管理対象ノードCから分割応答を受信すると、管理ノードEは以下同様に管理対象ノードD、F、P、Q、R及びSに対して分割要求及び分割応答を送受信する。全ての管理対象ノードC、D、F、P、Q、R及びSから分割応答を受信すると、管理ノードEのCPU10は各エリアda、db、dc及びddにおける管理ノードとして、ノードC、Q、F及びPを夫々選択する。これらノードC、Q、F及びPのノードIDは、子管理ノードとして管理ノードEのメモリ20またはディスク30に記憶される。
子管理ノードの選択が終了すると、管理ノードEの無線通信部50は、自ノードのノードID、各エリアda、db、dc及びddの管理ノードのノードID及び当該エリアに存在する他の全てのノードのノードIDを含む分割完了通知を全ての管理対象ノードC、D、F、P、Q、R及びSに送信する。管理ノードEから分割完了通知を受信した各管理対象ノードC、D、F、P、Q、R及びSのCPU10は上記分割完了通知中の各エリアda、db、dc及びddの管理ノードC、Q、F及びPのノードIDを参照して、自ノードが管理ノードとして選択されているか否かを確認する。
管理ノードとして選択されたノードC、Q、F及びPのメモリ20またはディスク30には、管理対象ノードとして自エリアに存在するノードのノードIDが記憶される。また、上記ノードのメモリ20またはディスク30には、親管理ノードとして管理ノードEのノードIDが記憶され、他エリアの管理ノードのノードIDも記憶される。管理ノードとして選択されなかったノードのメモリ20またはディスク30には、自エリアの管理ノードのノードIDが記憶される。
例えば、管理ノードCのメモリ20またはディスク30には、他エリアdb、dc及びddの管理ノードQ、F及びPのノードID、管理対象ノードとしてノードRのノードID及び親管理ノードとして管理ノードEのノードIDが記憶される。また、ノードRのメモリ20またはディスク30には管理ノードとして管理ノードEのノードIDが記憶される。
このような分割処理が終了すると、図10に示すように管理ノードEのCPU10は、各エリアda、db、dc及びddの管理ノードC、Q、F及びPからKA統合応答を受信して、管理対象ノードC、D、F、P、Q、R及びSの動作状況を確認する。管理ノードEは、エリア分割前は管理対象ノード管理対象ノードC、D、F、P、Q、R及びSの計7個のKA応答を受信しなければならなかったが、エリア分割後は各エリアda、db、dc及びddから計4個のKA応答を受信するだけでよい。以上からエリア分割によって管理ノードEの通信負荷が各エリアの管理ノードC、Q、F及びPに分散されていることがわかる。
ルート管理ノード及び各管理ノードは、管理対象ノード数が減少して通信負荷が軽減すれば、分割したエリアを統合できる。具体的には、ルート管理ノード及び管理ノードは、自ノードの子管理ノードからのKA統合通知によって管理対象ノード数を把握し、当該管理対象ノード数が閾値を下回ればエリアの統合処理を行う。
統合処理が開始すると、ルート管理ノードまたは管理ノードの無線通信部50は、自ノードの子管理ノードへ統合通知を送信する。統合通知には統合したいエリアのエリアIDが含まれる。統合通知を受信した管理ノードの無線通信部50は管理対象ノードに当該統合通知を転送する。また、上記子管理ノードのCPU10は管理対象ノードのノードID及び統合されるエリアの座標情報をメモリ20またはディスク30から削除する。
上記管理ノードから統合通知を受信した各管理対象ノードのCPU10は、統合されるエリアの座標情報及び管理ノードのノードIDをメモリ20またはディスク30から削除する。以降、統合されたエリア内の各ノードはエリアの統合を行った管理ノードへKA応答を送信する。
以下、一例として図6に示す無線通信環境においてルート管理ノードAが行うエリアの統合処理を説明する。統合処理が開始すると、ルート管理ノードAの無線通信部50は、自ノードの子管理ノードO、M、G及びEへ統合通知を送信する。統合通知には統合したいエリアa、b、c及びdのエリアIDa、b、c及びdが含まれる。
図11に示すように、エリアaではルート管理ノードAから統合通知を受信した子管理ノードOの無線通信部50が管理対象ノードB及びNに当該統合通知を転送する。また、子管理ノードOのCPU10は管理対象ノードB及びNのノードID、エリアa、b、c及びdの座標情報をメモリ20またはディスク30から削除する。管理ノードOから統合通知を受信したノードB及びNのCPU10は、統合されるエリアa、b、c及びdの座標情報及び管理ノードO、M、G及びEのノードIDをメモリ20またはディスク30から削除する。以降、ノードB及びNはエリアの統合を行ったルート管理ノードAへKA応答を送信する。
次に、図9に示す無線通信環境において管理ノードEが行うエリアの統合処理を説明する。統合処理が開始すると、管理ノードEの無線通信部50は自ノードの子管理ノードC、Q、F及びPへ統合通知を送信する。統合通知には統合したいエリアda、db、dc及びddのエリアIDda、db、dc及びddが含まれる。各エリアda、db、dc及びddでは管理ノードEから統合通知を受信した子管理ノードの無線通信部50が管理対象ノードに当該統合通知を転送する。また、子管理ノードのCPU10は自ノードの管理対象ノードのノードID及び自エリアの座標情報をメモリ20またはディスク30から削除する。自エリアの管理ノードから統合通知を受信した各ノードのCPU10は、統合されるエリアda、db、dc及びdd及び管理ノードC、Q、F及びPのノードIDをメモリ20またはディスク30から削除する。以降、エリアd内の各ノードはエリアの統合を行った管理ノードEへKA応答を送信する。
次に、本実施形態に係る無線通信システムが行うアドホックネットワークに新たにノードが参加する手順について説明する。新たにアドホックネットワークに参加するノード(以下、単に新規参加ノードと称する)は、自ノードのノードID及びGPS受信機40が取得した位置情報を含む参加要求をブロードキャストする。ルート管理ノードのCPU10は、上記参加要求中のノードIDを管理対象ノードとしてメモリ20またはディスク30に記憶する。また、ルート管理ノードの無線通信部50は新規参加ノードに自ノードのノードID及び自エリアの座標情報を含む参加応答を返信する。
各エリアの管理ノードのCPU10は上記参加要求中の位置情報及び自エリアの座標情報を照合して新規参加ノードが自エリアに存在するか否かを判断する。各エリアの管理ノードのCPU10は新規参加ノードが自エリアに存在すれば、ルート管理ノードと同様に上記参加要求中のノードIDを管理対象ノードとしてメモリ20またはディスク30に記憶する。また、上記管理ノードの無線通信部50は新規参加ノードに自ノードのノードID及び自エリアの座標情報を含む参加応答を返信する。
このようにルート管理ノード及び各エリアの管理ノードのメモリ20またはディスク30には新規参加ノードのノードIDが管理対象ノードとして記憶され、他の管理対象ノードと同様に扱われる。
新規参加ノードのCPU10は、参加応答の受信によって自ノードの存在するエリア及び当該エリアの管理ノードを認識する。また、新規参加ノードは、参加応答中のエリアの座標情報から最も広いエリアの管理ノードを検出することによってルート管理ノードを認識し、最も狭いエリアの管理ノードを検出することによってKA応答を送信すべき管理ノードを認識する。
以下、一例として図6に示す無線通信環境において、ノードKが新たにアドホックネットワークに参加する場合の手順について説明する。新規参加ノードKは、図12に示すように自ノードのノードID及びGPS受信機40が取得した位置情報を含む参加要求をブロードキャストする。ルート管理ノードAのCPU10は、上記参加要求中のノードIDを管理対象ノードとしてメモリ20またはディスク30に記憶する。また、ルート管理ノードAの無線通信部50は新規参加ノードKに自ノードのノードID及び自エリア200の座標情報を含む参加応答を返信する。
エリアbの管理ノードMのCPU10は上記参加要求中の位置情報及び自エリアbの座標情報を照合して新規参加ノードKが自エリアに存在すると判断し、ルート管理ノードと同様に上記参加要求中のノードIDを管理対象ノードとしてメモリ20またはディスク30に記憶する。また、管理ノードMの無線通信部50は新規参加ノードKに自ノードのノードID及び自エリアbの座標情報を含む参加応答を返信する。
これら参加応答を受信した新規参加ノードKは、自ノードの存在するエリア200及びbと当該エリアの管理ノードA及びMを認識する。また、新規参加ノードKは、上記参加応答中のエリアの座標情報から最も広いエリア200の管理ノードAを検出することによってルート管理ノードを認識し、最も狭いエリアbの管理ノードMを検出することによってKA応答を送信すべき管理ノードを認識する。
尚、前述した参加手順は(a)エリアの分割が行われていない場合または(b)新規参加ノードの存在するエリア内にKA応答を送信すべき管理ノードが存在する場合を想定している。一方、(c)新規参加ノードの存在するエリア内にKA応答を送信すべき管理ノードが存在しない場合には、上記エリアの親管理ノードは、参加応答に代えて自ノードのノードID及び上記エリアの座標情報を含む管理ノード任命要求を送信する。
親管理ノードから管理ノード任命要求を受信すると、新規参加ノードのメモリ20またはディスク30には親管理ノードとして上記管理ノード任命要求中のノードIDが記憶されると共にエリアの座標情報も記憶される。また、新規参加ノードの無線通信部50は親管理ノードへ自ノードのノードIDを含む管理ノード任命応答を返信する。管理ノード任命応答を受信すると、親管理ノードのCPU10は新規参加ノードのノードIDを子管理ノードとしてメモリ20またはディスク30に記憶する。
以下、一例として図9に示す無線通信環境において、ノードQが新たにアドホックネットワークに参加する場合の手順について説明する。管理ノードEは、新規参加ノードQが存在するエリアdbに管理ノードが存在しないことを確認すると、新規参加ノードQからの参加要求に対して自ノードのノードID及びエリアdbの座標情報を含む管理ノード任命要求を送信する。
親管理ノードEから管理ノード任命要求を受信すると、新規参加ノードQのメモリ20またはディスク30には親管理ノードとして管理ノードEのノードIDが記憶されると共にエリアdbの座標情報も記憶される。また、新規参加ノードQの無線通信部50は親管理ノードEへ自ノードのノードIDを含む管理ノード任命応答を返信する。管理ノード任命応答を受信すると、親管理ノードEのCPU10は新規参加ノードQのノードIDを子管理ノードとしてメモリ20またはディスク30に記憶する。
次に、図13を用いて本実施形態に係る無線通信システムが行うアドホックネットワークからノードが脱退する手順について説明する。脱退するノード(以下、単に脱退ノードと称する)が管理ノードであって(ステップS301)、管理対象ノードが存在する場合(ステップS302)、当該脱退ノードは管理対象ノードから1つのノードを選択して管理ノード任命要求を送信する(ステップS303)。この管理ノード任命要求は前述した通り脱退ノードのノードID、当該脱退ノードの管理するエリアの座標情報及びエリアIDを含む。一方、管理対象ノードが存在しなければ(ステップS302)、脱退ノードは何もせず、脱退処理が完了する。
ステップS303にて送信した管理ノード任命要求に対して管理ノード任命応答が得られ(ステップS304)、脱退ノードに親管理ノードが存在する場合(ステップS305)、脱退ノードは上記親管理ノードに子管理ノード変更通知を送信する(ステップS306)。この子管理ノード変更通知には脱退ノードのノードID及び変更後の子管理ノードのノードIDが含まれ、ステップS303にて管理ノード任命要求を送信したノードが上記変更後の子管理ノードとして扱われる。子管理ノード変更通知を受信した親管理ノードのCPU10は、メモリ20またはディスク30に記憶されている子管理ノードのノードIDを書き換える。一方、脱退ノードに親管理ノードが存在しない場合(ステップS305)、処理はステップS307に進む。
脱退ノードに子管理ノードが存在する場合(ステップS307)、脱退ノードは上記子管理ノードに親管理ノード変更通知を送信する(ステップS308)。この親管理ノード変更通知には脱退ノードのノードID及び変更後の親管理ノードのノードIDが含まれ、ステップS303にて管理ノード任命要求を送信したノードが上記変更後の親管理ノードとして扱われる。親管理ノード変更通知を受信した子管理ノードのCPU10は、メモリ20またはディスク30に記憶されている親管理ノードのノードIDを書き換え、脱退処理が完了する。
一方、脱退ノードに子管理ノードが存在しない場合(ステップS307)、脱退ノードは管理対象ノードに管理ノード変更通知を送信する(ステップS310)。この管理ノード変更通知には脱退ノードのノードID及び変更後の管理ノードのノードIDが含まれ、ステップS303にて管理ノード任命要求を送信したノードが上記変更後の管理ノードとして扱われる。管理ノード変更通知を受信した管理対象ノードのCPU10は、メモリ20またはディスク30に記憶されている管理ノードのノードIDを書き換え、脱退処理が完了する。
一方、ステップS303にて送信した管理ノード任命要求に対する管理ノード任命応答が得られなければ(ステップS304)、脱退ノードのCPU10は上記管理ノード任命要求を送信したノードのノードIDをメモリ20またはディスク30から削除する(ステップS312)。以降、脱退ノードは管理ノード任命応答が得られるまでステップS302以降の処理を繰り返し、管理対象ノードが無くなると(ステップS302)、脱退処理は完了する。
一方、脱退ノードが管理ノードでなければ(ステップS301)、脱退ノードは自ノードを管理する管理ノード、即ちKA応答を返すべき管理ノードに脱退通知を送信する(ステップS309)。脱退通知を受信した管理ノードのCPU10は、メモリ20またはディスク30から脱退ノードのノードIDを削除し、脱退処理が完了する。
次に、図14を用いて本実施形態に係る無線通信システムにおいて、ノードが異なるエリアへ移動する場合の処理の手順について説明する。異なるエリアへ移動するノード(以下、単に移動ノードと称する)のメモリ20またはディスク30に移動先エリアの管理ノードのノードIDが記憶されていれば(ステップS401)、移動ノードの無線通信部50は当該管理ノードに自ノードのノードID及び位置情報を含む移動通知を送信する(ステップS402)。
移動先エリアの管理ノードとの無線通信が成功し(ステップS403)、移動応答を受信する場合(ステップS404)、移動ノードのメモリ20またはディスク30には当該移動応答中のノードIDが新たな管理ノードとして記憶されると共に、移動先エリアの座標情報及びエリアIDが記憶され、処理はステップS406へ進む(ステップS405)。
ここで、管理ノードとの無線通信が失敗する例として、(a)管理ノードが正常に動作していない場合、(b)管理ノードが既に存在しない場合及び(c)移動先エリアの管理ノードが変更されている場合などが考えられる。(a)または(b)に関しては、移動ノードは一定時間待っても移動応答または管理ノード任命要求が得られなければ、無線通信の失敗を検出する。(c)に関しては、上記移動通知を受信したノードが既に管理ノードでない場合、当該ノードの無線通信部50は移動ノードに通知エラーを送信するので、上記通知エラーによって移動ノードは無線通信の失敗を検出する。また、移動通知を受信した管理ノードが更に子管理ノードを持つ場合は、当該移動通知を適切な子管理ノードに転送する。従って、移動通知を受信したノードと移動応答または管理ノード任命要求を返信するノードとは必ずしも一致しない。
一方、移動応答は受信できないものの(ステップS404)、管理ノード任命要求を受信する場合(ステップS416)、移動ノードのメモリ20またはディスク30には管理ノード任命要求中のノードIDが親管理ノードとして記憶されると共に、自ノードが新たに管理するエリアの座標情報及びエリアIDが記憶される(ステップS417)。移動ノードの無線通信部50は、上記親管理ノードに管理ノード任命応答を返信し、処理はステップS406へ進む。ステップS416において、管理ノード任命要求を受信できない場合、処理はステップS418へ進む。
また、移動ノードのメモリ20またはディスク30に移動先エリアの管理ノードのノードIDが記憶されていない場合(ステップS401)、移動ノードの無線通信部50はルート管理ノードに移動通知を送信する。ルート管理ノードとの通信に成功し(ステップS419)、移動応答を受信できれば、処理はステップS405へと進む(ステップS420)。一方、移動応答を受信できないものの(ステップS420)、管理ノード任命要求を受信できれば、処理はステップS417へと進む(ステップS421)。ステップS421において管理ノード任命要求を受信できない場合、移動ノードは何もせず(ステップS422)、処理は終了する。
一方、ルート管理ノードとの無線通信が失敗すると(ステップS419)、移動ノードの無線通信部50は参加要求をブロードキャストする(ステップS422)。ステップS422にてブロードキャストした参加要求に対して参加応答を受信する場合(ステップS424)、移動ノードのメモリ20またはディスク30には当該参加応答中のノードIDが新たな管理ノードとして記憶されると共に、移動先エリアの座標情報及びエリアIDが記憶され、処理はステップS406へ進む(ステップS405)。一方、参加応答を受信できない場合(ステップS424)、処理はステップS421へと進む。
移動ノードが移動元エリアにおいて管理ノードであり(ステップS406)、管理対象ノードを持っていた場合(ステップS407)、移動ノードの無線通信部50は自ノードの代わりとなるノードを任命するために上記管理対象ノードの1つに管理ノード任命要求を送信する(ステップS408)。
ステップS408にて送信した管理ノード任命要求に対する管理ノード任命応答が受信できれば(ステップS409)、移動ノードの無線通信部50は移動元エリアにおける親管理ノードへ子管理ノード変更通知を送信し、メモリ20またはディスク30から上記親管理ノードのノードIDが削除される(ステップS410)。また、移動ノードが移動元エリアにおいて子管理ノードを持っていた場合(ステップS411)、移動ノードの無線通信部50は上記子管理ノードに親管理ノード変更通知を送信し、メモリ20またはディスク30から上記子管理ノード及び管理対象ノードのノードIDが削除され(ステップS412)、処理が終了する。一方、移動ノードが移動元エリアにおいて子管理ノードを持っていない場合(ステップS411)、移動ノードの無線通信部50は残りの管理対象ノードへ管理ノード変更通知を送信し、メモリ20またはディスク30から上記管理対象ノードのノードIDが削除され(ステップS414)、処理が終了する。
ステップS408にて送信した管理ノード任命要求に対する管理ノード任命応答が受信できなければ(ステップS409)、上記管理ノード任命要求を送信した管理対象ノードのノードIDが移動ノードのメモリ20またはディスク30からを削除され、処理はステップS407に戻る(ステップS415)。
一方、移動ノードが移動元エリアにおいて管理対象ノードを持たない場合(ステップS407)、移動ノードのメモリ20またはディスク30から親管理ノードのノードIDが削除され、処理が終了する。また、移動ノードが移動元エリアにおいて管理ノードでなかった場合(ステップS406)、移動ノードの無線通信部50が移動元エリアの管理ノードに自ノードのノードIDを含む移動完了通知を送信し(ステップS413)、処理が終了する。
以下、一例として図9に示す無線通信環境においてノードBがエリアaからエリアdaに移動する場合の処理の流れについて図14のフローチャートに沿って説明する。まず、ノードBのCPU10は、GPS受信機40が取得した位置情報及びメモリ20またはディスク30に記憶されているエリアaの座標情報を照合してエリアの移動を検出する。ルート管理ノードAがエリア200をエリアa、b、c及びdに分割した際にノードBのメモリ20またはディスク30にはエリアdの座標情報が記憶されており、ノードBのCPU10はこのエリアdの座標情報とGPS受信機40の位置情報からエリアdへ移動したと判断する。従って、移動ノードBの無線通信部50は管理ノードEへ移動通知を送信する(ステップS402)。
管理ノードEは子管理ノードC、Q、F及びPを持ち、これらの管理するエリアda、db、dc及びddの座標情報がメモリ20またはディスク30に記憶されているため、管理ノードEのCPU10は上記移動通知中の位置情報と上記座標情報とを照合し、移動ノードBがエリアdaに存在していると判断する。従って、管理ノードEの無線通信部50は、エリアdaの管理ノードCに上記移動通知を転送する。また、管理ノードEのCPU10は移動ノードBのノードIDを管理対象ノードとしてメモリ20またはディスク30に記憶する。
親管理ノードEから転送された移動通知を受信すると、子管理ノードCの無線通信部50は自ノードのノードID及び自エリアdaの座標情報及びエリアIDを含む移動応答を移動ノードBに返信する。また、管理ノードCのCPU10は移動ノードBのノードIDを管理対象ノードとしてメモリ20またはディスク30に記憶する。
移動応答を受信できたので(ステップS404)、移動ノードBのメモリ20またはディスク30には管理ノードとして管理ノードCのノードIDが記憶されると共に、エリアdaの座標情報及びエリアIDが記憶される(ステップS405)。
移動ノードBは移動元エリアaにおいて管理ノードではなかったので(ステップS406)、移動元エリアaの管理ノードOに自ノードのノードIDを含む移動完了通知を送信する(ステップS413)。移動ノードBから移動完了通知を受信すると、管理ノードOのCPU10は移動ノードBのノードIDをメモリ20またはディスク30から削除する。
以上説明したように本実施形態に係る無線通信システムでは、緯度及び経度などの位置情報で指定されるエリアという静的な物理領域を分割または統合することによりノードをグルーピングしている。従って本実施形態に係る無線通信システムによれば、各ノードが自ノードの存在するエリアを判断できるため、定期的な通信を行わずにグループを維持して通信負荷を分散させられる。また、本実施形態に係る無線通信システムにおいて用いられるメッセージ及び当該メッセージに含まれる情報は図15に示す通りである。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また上記実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、上記実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。
一例として、上記実施形態ではKAをについて説明したが、KA以外であってもルート管理ノードのブロードキャストに対して各管理対象ノードが応答する処理であれば、同様の効果が得られる。
その他、本発明の要旨を逸脱しない範囲で種々の変形を施しても同様に実施可能であることはいうまでもない。