【文献】
河合佑介、ほか,「無線センサネットワークにおけるデータ集約方式に関する考察」,マルチメディア,分散,協調とモバイル(DICOMO2011)シンポジウム論文集 情報処理学会シンポジウムシリーズ,日本,一般社団法人情報処理学会,2011年 7月 6日,第2011巻、第1号
【文献】
塚本直幸、ほか,「センサネットワークにおけるパケット統合のための適応制御の検討」,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2010年 5月14日,第110巻、第50号,第21-24ページ,USN2010-5
【文献】
豊嶋聡,VANET環境における自律分散クラスタリングを用いた蓄積運搬型データ転送方式,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2011年 1月13日,第110巻、第377号,第95-100ページ
(58)【調査した分野】(Int.Cl.,DB名)
複数のセンサノードを備えるとともに、当該複数のセンサノードのそれぞれをノードとして用いる木構造を有するネットワークトポロジを形成するように、当該複数のセンサノードのそれぞれに対して親ノードを決定するように構成されたセンサネットワークシステムであって、
前記複数のセンサノードのそれぞれは、
物理量を検出し、当該検出された物理量を表すセンサデータを収容するパケットである集成前パケットを生成し、当該生成された集成前パケットを自ノードに対する親ノードへ送信する集成前パケット生成手段と、
自ノードが有する子ノードのそれぞれにより送信された前記集成前パケットを受信し、当該受信された集成前パケットのそれぞれが収容するセンサデータを収容するパケットである集成後パケットを生成し、当該生成された集成後パケットを自ノードに対する親ノードへ送信する集成後パケット生成手段と、
自ノードが有する子ノードのそれぞれにより送信された前記集成後パケットを受信し、当該受信された集成後パケットを自ノードに対する親ノードへ送信する集成後パケット転送手段と、
を備え、
前記センサネットワークシステムは、
前記複数のセンサノードのそれぞれに対して、当該センサノードが有する子ノードの数を、1つのパケットが収容可能なセンサデータの最大数である最大収容数に自然数を乗じた値を越えない範囲で当該最大収容数に自然数を乗じた値に近づけるように、前記ネットワークトポロジを形成するネットワークトポロジ形成手段を備える、センサネットワークシステム。
複数のセンサノードを備えるとともに、当該複数のセンサノードのそれぞれをノードとして用いる木構造を有するネットワークトポロジを形成するように、当該複数のセンサノードのそれぞれに対して親ノードを決定するように構成されたセンサネットワークシステムに適用されるセンサネットワーク制御方法であって、
前記複数のセンサノードのそれぞれが、物理量を検出し、当該検出された物理量を表すセンサデータを収容するパケットである集成前パケットを生成し、当該生成された集成前パケットを自ノードに対する親ノードへ送信し、
前記複数のセンサノードのそれぞれが、自ノードが有する子ノードのそれぞれにより送信された前記集成前パケットを受信し、当該受信された集成前パケットのそれぞれが収容するセンサデータを収容するパケットである集成後パケットを生成し、当該生成された集成後パケットを自ノードに対する親ノードへ送信し、
前記複数のセンサノードのそれぞれが、自ノードが有する子ノードのそれぞれにより送信された前記集成後パケットを受信し、当該受信された集成後パケットを自ノードに対する親ノードへ送信し、
前記複数のセンサノードのそれぞれに対して、当該センサノードが有する子ノードの数を、1つのパケットが収容可能なセンサデータの最大数である最大収容数に自然数を乗じた値を越えない範囲で当該最大収容数に自然数を乗じた値に近づけるように、前記ネットワークトポロジを形成する、センサネットワーク制御方法。
複数のセンサノードを備えるとともに、当該複数のセンサノードのそれぞれをノードとして用いる木構造を有するネットワークトポロジを形成するように、当該複数のセンサノードのそれぞれに対して親ノードを決定するように構成されたセンサネットワークシステムであって、
前記複数のセンサノードのそれぞれは、
物理量を検出し、当該検出された物理量を表すセンサデータを収容するパケットである集成前パケットを生成し、当該生成された集成前パケットを自ノードに対する親ノードへ送信する集成前パケット生成手段と、
自ノードが有する子ノードのそれぞれにより送信された前記集成前パケットを受信し、当該受信された集成前パケットのそれぞれが収容するセンサデータを収容するパケットである集成後パケットを生成し、当該生成された集成後パケットを自ノードに対する親ノードへ送信する集成後パケット生成手段と、
自ノードが有する子ノードのそれぞれにより送信された前記集成後パケットを受信し、当該受信された集成後パケットを自ノードに対する親ノードへ送信する集成後パケット転送手段と、
を備え、
前記センサネットワークシステムは、
前記複数のセンサノードのそれぞれに対して前記ネットワークトポロジを形成するネットワークトポロジ形成手段を備え、
前記ネットワークトポロジ形成手段は、
前記複数のセンサノードのそれぞれを処理対象ノードとして特定し、当該複数のセンサノードの中から、当該特定された処理対象ノードと通信可能なセンサノードである親ノード候補を抽出し、当該抽出された親ノード候補のそれぞれに対して、当該親ノード候補が有する子ノードの数に基づいてメトリック値を算出し、当該抽出された親ノード候補の中から、当該算出されたメトリック値に基づいて、当該処理対象ノードに対する親ノードを決定するように構成され、
前記ネットワークトポロジ形成手段は、前記抽出された親ノード候補の中から、前記算出されたメトリック値が最小である親ノード候補を、前記処理対象ノードに対する親ノードとして決定するように構成され、
前記メトリック値は、前記親ノード候補が有する子ノードの数に1を加えた値である仮子ノード数が、ある自然数から1を減じた値に前記最大収容数を乗じた値に1を加えた値から、当該自然数に当該最大収容数を乗じた値まで、の範囲において増加するにつれて減少するように構成されたセンサネットワークシステム。
【発明を実施するための形態】
【0028】
以下、本発明に係る、センサネットワークシステム、センサネットワーク制御方法、センサノード、センサノード制御方法、及び、センサノード制御プログラム、の各実施形態について
図1〜
図13を参照しながら説明する。
【0029】
<第1実施形態>
(構成)
図1に示したように、第1実施形態に係るセンサネットワークシステム1は、1つのシンクノード101と、複数のセンサノード201,202,…と、を備える。
【0030】
複数のセンサノード201,202,…は、互いに異なる位置に配置される。複数のセンサノード201,202,…のそれぞれは、他のセンサノード201,202,…との間で、無線による通信を行うように構成されている。
【0031】
複数のセンサノード201,202,…のそれぞれは、物理量を検出し、当該検出された物理量を表すセンサデータを取得する。複数のセンサノード201,202,…のそれぞれは、取得されたセンサデータを収容するパケットを、他のセンサノード201,202,…を介して、シンクノード101へ送信する。即ち、複数のセンサノード201,202,…は、無線マルチホップネットワークを構成している。
【0032】
シンクノード101は、複数のセンサノード201,202,…のそれぞれにより送信されたパケットを受信することにより、センサデータを収集する。
【0033】
更に、センサネットワークシステム1は、シンクノード101、及び、複数のセンサノード201,202,…のそれぞれをノードとして用いる木構造を有するネットワークトポロジを形成するように、複数のセンサノード201,202,…のそれぞれに対して親ノードを決定する。シンクノード101は、ルートノードを構成する。
【0034】
加えて、複数のセンサノード201,202,…のそれぞれは、自ノードに対する親ノードとして決定されたセンサノード201,202,…へ、センサデータを収容するパケットを送信する。
【0035】
図2は、センサネットワークシステム1により形成されるネットワークトポロジの一例を示した図である。
図2において、2つのノードを結ぶ直線は、当該2つのノードが親子関係を有することを表す。即ち、直線により結ばれた2つのノードのうちのルートノード側に位置するノードは、他方のノードを子ノードとして有している。換言すると、直線により結ばれた2つのノードのうちのルートノード側に位置するノードは、他方のノードに対する親ノードである。
【0036】
図3に示したように、センサノード201は、無線通信部310と、ルーティング機能部320と、センサ部330と、アプリケーション機能部340と、を備える。
【0037】
無線通信部310は、無線信号を送受信するためのアンテナ311を備える。無線通信部310は、他のノード(シンクノード101、及び、センサノード202,…)との間でアンテナ311を介して無線通信を行う。
【0038】
本例では、無線通信部310は、IEEE(Institute of Electrical and Electronics Engineers)802.11により定められた方式に従って無線通信を行う。なお、無線通信部310は、他の方式(例えば、IEEE802.15.1により定められた方式、IEEE802.15.4により定められた方式、Bluetooth(登録商標)、又は、ZigBee(登録商標)等)に従って無線通信を行うように構成されていてもよい。
【0039】
ルーティング機能部320は、周辺ノード情報取得部321と、メトリック値算出部322と、ルーティングテーブル記憶部323と、親ノード決定部324と、自ノード情報送信部325と、を備える。
【0040】
周辺ノード情報取得部321は、周辺ノードのそれぞれに対する周辺ノード情報を取得する。周辺ノードは、他のノード(シンクノード101、及び、センサノード202,…)のうちの、自ノード(センサノード201)と無線通信可能なノード(親ノード候補)である。
【0041】
周辺ノード情報は、第1の部分情報と、第2の部分情報と、を含む。第1の部分情報は、周辺ノードにより送信された情報である。第1の部分情報は、周辺ノードを識別するためのノード識別情報と、当該周辺ノードからシンクノード101までのホップ数を表すホップ数情報と、当該周辺ノードが有する子ノードの数(子ノード数)を表す子ノード数情報と、を含む。
【0042】
第2の部分情報は、周辺ノードから受信した無線信号の強度(受信強度)を表す情報である。周辺ノード情報取得部321は、第1の部分情報を受信する際に受信した無線信号の強度を取得し、取得された強度を表す情報を第2の部分情報として取得する。
【0043】
周辺ノード情報取得部321が周辺ノード情報を取得することは、自ノード(センサノード201)を処理対象ノードとして特定し、且つ、複数のセンサノード201,202,…の中から、当該特定された処理対象ノードと通信可能なセンサノードである親ノード候補(周辺ノード)を抽出(特定)することに対応している。
【0044】
メトリック値算出部322は、周辺ノード情報取得部321により取得された周辺ノード情報のそれぞれに対して、当該周辺ノード情報に基づいてメトリック値を算出する。メトリック値は、シンクノード101までの通信に要するコスト(パスコスト)を表す値である。本例では、メトリック値は、パスコストが小さくなるほど小さくなる値を有する。
【0045】
本例では、メトリック値算出部322は、メトリック値Mを算出する対象となる周辺ノード情報に含まれる、受信強度e(即ち、親ノード候補から受信された無線信号の強度)、及び、ホップ数h(即ち、親ノード候補からルートノードまでのホップ数)と、当該周辺ノード情報に含まれる子ノード数に1を加えた仮子ノード数nと、に基づいて、数式1に従ってメトリック値Mを算出する。
【数1】
【0046】
ここで、第1の部分メトリック値M
eh(e,h)は、受信強度eと、ホップ数hと、に応じて変化する値を有する関数である。また、第2の部分メトリック値M
n(n)は、仮子ノード数nに応じて変化する値を有する関数である。また、αは、予め設定された係数である。
【0047】
このように、本例では、メトリック値Mは、親ノード候補から受信された無線信号の強度e、及び、当該親ノード候補から、木構造におけるルートノードまでのホップ数h、の両方と、当該親ノード候補が有する子ノードの数と、に応じて変化する値である、と言うことができる。
【0048】
また、本例では、メトリック値算出部322は、周辺ノード情報に含まれる、受信強度、及び、ホップ数に基づく第1の部分メトリック値と、周辺ノード情報に含まれる子ノード数に基づく第2の部分メトリック値と、の線形和をメトリック値として算出している、と言うことができる。
【0049】
なお、メトリック値算出部322は、第2の部分メトリック値をメトリック値として算出するように構成されていてもよい。また、メトリック値算出部322は、第1の部分メトリック値を、受信強度eと、ホップ数hと、のいずれか一方のみに基づいて算出するように構成されていてもよい。また、メトリック値算出部322は、第1の部分メトリック値を、受信強度e、及び、ホップ数h、以外のパラメータ(例えば、遅延時間、及び、パケット誤り率等)にも基づいて算出するように構成されていてもよい。
【0050】
ところで、第1の部分メトリック値M
eh(e,h)は、公知のルーティングプロトコルにおいて用いられる関数と同一の関数である。従って、詳細な説明を省略する。
【0051】
また、数式1によれば、係数αの大きさを変更することにより、子ノード数の大きさがメトリック値Mに反映される程度を調整することができる。係数αを0に近づけるほど、子ノード数の大きさがメトリック値Mに反映される程度は小さくなる。
【0052】
本例では、第2の部分メトリック値M
n(n)は、数式2により表される。
【数2】
【0053】
ここで、Nは、1つのパケットが収容可能なセンサデータの最大数である最大収容数である。MOD(X,Y)は、整数Xを整数Yにより除する除算の剰余を値として有する関数である。数式2によれば、第2の部分メトリック値M
n(n)は、0から1の間の値を有することが分かる。
また、最大収容数Nは、数式3により算出される。
【数3】
【0054】
ここで、P
maxは、1つのパケットの最大のサイズ(データ量)である最大パケット長である。P
headerは、1つのパケットに含まれるヘッダのサイズであるヘッダ長である。P
dataは、1つのセンサデータのサイズ(センサデータサイズ)である。
【0055】
本例では、メトリック値算出部322は、最大パケット長P
max、ヘッダ長P
header、及び、センサデータサイズP
dataのそれぞれを予め記憶している。なお、メトリック値算出部322は、取得されたセンサデータに基づいてセンサデータサイズP
dataを取得するように構成されていてもよい。この場合において、複数の異なるセンサデータサイズが取得されたとき、メトリック値算出部322は、取得されたセンサデータサイズの最大値を、センサデータサイズP
dataとして取得するように構成されることが好適である。
【0056】
また、QUOTIENT(X,Y)は、整数Xを整数Yにより除する除算の商を値として有する関数である。最大パケット長は、無線通信の方式に従って予め定められている。また、ヘッダ長は、無線通信の方式、及び、センサネットワークシステム1が用いるパケットの形式(フォーマット)に従って予め定められている。
【0057】
例えば、最大パケット長が127Byteであり、ヘッダ長が20Byteであり、センサデータのサイズが10Byteである場合、最大収容数Nは、10である。
【0058】
図4は、第2の部分メトリック値M
n(n)の、仮子ノード数nに対する変化を示したグラフである。ここでは、最大収容数Nが10である場合を想定している。
【0059】
図4に示したように、第2の部分メトリック値M
n(n)は、仮子ノード数nが、ある自然数から1を減じた値に最大収容数Nを乗じた値に1を加えた値から、当該自然数に当該最大収容数Nを乗じた値まで、の範囲において増加するにつれて減少する。なお、本明細書において、自然数は、1以上の整数である。
【0060】
例えば、第2の部分メトリック値M
n(n)は、仮子ノード数nが、1から10までの範囲において増加するにつれて減少する。同様に、第2の部分メトリック値M
n(n)は、仮子ノード数nが、11から20までの範囲において増加するにつれて減少する。
【0061】
このように、最大収容数Nが10である場合を想定しているため、仮子ノード数nが、最大収容数Nに自然数を乗じた値である、10、20、又は、30である場合に、第2の部分メトリック値M
n(n)は最小となる。
【0062】
即ち、本例では、仮子ノード数nが、ある自然数から1を減じた値に最大収容数Nを乗じた値に1を加えた値から、当該自然数に当該最大収容数Nを乗じた値まで、の範囲において増加するにつれてメトリック値Mが減少するようにセンサネットワークシステム1が構成されている、と言うことができる。
【0063】
このように、メトリック値Mは、親ノード候補が有する子ノードの数を、最大収容数に自然数を乗じた値に近づけるための値である、と言うことができる。
【0064】
ルーティングテーブル記憶部323は、記憶装置により構成される。ルーティングテーブル記憶部323は、周辺ノード情報取得部321により取得された周辺ノード情報と、当該周辺ノード情報に基づいてメトリック値算出部322により算出されたメトリック値と、親子関係情報と、を対応付けたルーティングテーブルを記憶する。
【0065】
親子関係情報は、当該親子関係情報と対応付けて記憶されているノード識別情報(周辺ノード情報に含まれる)により識別されるノードが、自ノードに対する親ノードであるか否かを表す情報、及び、当該ノードが、自ノードに対する子ノードであるか否かを表す情報を含む。
【0066】
親ノード決定部324は、ルーティングテーブル記憶部323に記憶されているノード識別情報の中から、メトリック値が最小であるノード識別情報により識別されるノードを、自ノードに対する親ノードとして決定する。このように、周辺ノード情報取得部321、メトリック値算出部322、ルーティングテーブル記憶部323、及び、親ノード決定部324は、親ノード決定手段を構成している。
【0067】
ルーティングテーブル記憶部323は、親ノード決定部324により親ノードが決定された場合、当該親ノードを識別するためのノード識別情報と対応付けて記憶されている親子関係情報を、ノードが親ノードである旨を表す情報に更新する。
【0068】
自ノード情報送信部325は、親ノード決定部324により親ノードが決定された場合、当該親ノードへ、自ノードを識別するためのノード識別情報を含む親ノード決定通知を送信する。
【0069】
自ノード情報送信部325は、他のノードから親ノード決定通知を受信する。自ノード情報送信部325は、親ノード決定通知を受信した場合、当該親ノード決定通知に含まれるノード識別情報と対応付けてルーティングテーブル記憶部323に記憶されている親子関係情報を、ノードが子ノードである旨を表す情報に更新する。
【0070】
自ノード情報送信部325は、周辺ノードのそれぞれに対して自ノード情報(第1の部分情報)を送信する。自ノード情報は、自ノードを識別するためのノード識別情報と、自ノードからシンクノード101までのホップ数と、自ノードが有する子ノードの数(子ノード数)と、を含む。
【0071】
自ノード情報送信部325は、親ノード決定部324により決定された親ノードを識別するためのノード識別情報を含む周辺ノード情報に含まれるホップ数に1を加えた値を自ノード(ここでは、センサノード201)からシンクノード101までの(自ノードに対する)ホップ数として取得する。
【0072】
自ノード情報送信部325は、ルーティングテーブル記憶部323に記憶されているノード識別情報のうちの、ノードが子ノードである旨を表す親子関係情報と対応付けて記憶されているノード識別情報の数を、自ノードが有する子ノードの数として取得する。なお、自ノード情報送信部325は、子ノードとの間でセッションを確立する場合、確立されているセッションの数に基づいて子ノード数を取得するように構成されていてもよい。
【0073】
センサ部330は、物理量(本例では、温度)を検出する。なお、センサ部330は、物理量として、湿度、消費電力量(単位時間あたりに消費された電力の量)、ガスの使用量、水道の使用量、又は、音声等を検出するように構成されていてもよい。
【0074】
アプリケーション機能部340は、センサデータ取得部341と、パケット送信部342と、を備える。
【0075】
センサデータ取得部341は、予め設定された取得周期が経過する毎に、センサ部330により検出された物理量を表すセンサデータを取得する。本例では、センサデータは、検出された物理量そのものを表すデータである。なお、センサデータ取得部341は、予め設定された期間においてセンサ部330により検出された物理量に基づく値(例えば、平均値、及び、分散等)を表すセンサデータを取得するように構成されていてもよい。
【0076】
パケット送信部342は、センサデータ取得部341によりセンサデータが取得された場合、当該センサデータを収容するパケットである集成前パケットを生成する。パケット送信部342は、生成された集成前パケットを自ノードに対する親ノードへ送信する。このように、センサ部330、及び、パケット送信部342は、集成前パケット生成手段を構成している。
【0077】
パケット送信部342は、自ノードが有する子ノードのそれぞれにより送信された集成前パケットを受信する。パケット送信部342は、集成前パケットを受信した場合、受信された集成前パケットのそれぞれが収容するセンサデータを収容するパケットである集成後パケットを生成する。パケット送信部342は、生成された集成後パケットを自ノードに対する親ノードへ送信する。このように、パケット送信部342は、集成後パケット生成手段を構成している。
【0078】
パケット送信部342は、自ノードが有する子ノードのそれぞれにより送信された集成後パケットを受信する。パケット送信部342は、集成後パケットを受信した場合、受信された集成後パケットを自ノードに対する親ノードへ送信する。このように、パケット送信部342は、集成後パケット転送手段を構成している。
【0079】
なお、他のセンサノード202,203,…のそれぞれも、センサノード201と同様の構成を有している。
【0080】
このような構成により、センサネットワークシステム1は、複数のセンサノード201,202,…、及び、シンクノード101からなる複数のノードのそれぞれに対して、当該ノードが有する子ノードの数を、最大収容数に自然数を乗じた値に近づけるように、ネットワークトポロジを形成するネットワークトポロジ形成手段を備えている、と言うことができる。
【0081】
なお、複数のセンサノード201,202,…のそれぞれが親ノード決定手段を備えることは、センサネットワークシステム1がネットワークトポロジ形成手段を備えることに対応している。また、複数のセンサノード201,202,…のそれぞれがルーティングテーブル記憶部323を備えることは、センサネットワークシステム1が、ネットワークトポロジを表すトポロジ情報を記憶するトポロジ情報記憶手段を備えることに対応している。
【0082】
図5に示したように、シンクノード101は、無線通信部410と、ルーティング機能部420と、データベース部430と、アプリケーション機能部440と、を備える。
【0083】
無線通信部410は、無線通信部310と同様に構成される。
ルーティング機能部420は、ルーティング機能部320と同様に構成される。
【0084】
データベース部430は、記憶装置により構成される。データベース部430は、センサデータと、ノード識別情報と、を対応付けて記憶(蓄積)する。
アプリケーション機能部440は、パケット受信部441と、データベース管理部442と、を備える。
【0085】
パケット受信部441は、子ノードのそれぞれにより送信されたパケット(集成前パケット、及び、集成後パケット)を受信する。パケット受信部441は、受信されたパケットに含まれるセンサデータと、当該パケットを送信してきたノードを識別するためのノード識別情報と、を取得する。
【0086】
データベース管理部442は、パケット受信部441により取得された、センサデータ及びノード識別情報をデータベース部430に記憶させる(書き込む)。
【0087】
なお、シンクノード101は、取得されたセンサデータを自ノードが備える記憶装置に記憶するように構成されていたが、当該センサデータを他の装置(例えば、サーバ等)へ送信するように構成されていてもよい。
【0088】
また、シンクノード101は、センサ部330と同様の機能と、アプリケーション機能部340と同様の機能と、を有し、自ノードにおいてもセンサデータを取得するように構成されていてもよい。
【0089】
(作動)
次に、
図6を参照しながら、上述したセンサネットワークシステム1の作動のうちの、センサノード201が親ノードを決定する際の作動について説明する。
【0090】
センサノード201は、予め設定された更新周期が経過する毎に、周辺探索メッセージを、ブロードキャスト方式に従って送信する(ステップS101)。ブロードキャスト方式は、メッセージに含まれる宛先アドレスとして、ブロードキャストアドレスを設定することにより、すべてのノードを宛先として設定する方式である。
【0091】
従って、周辺探索メッセージは、センサノード201と通信可能なノード(本例では、シンクノード101、及び、センサノード202等)のそれぞれへ送信される。ここで、周辺探索メッセージは、センサノード201の自ノード情報を含む。自ノード情報は、自ノードを識別するためのノード識別情報と、自ノードからシンクノード101までのホップ数と、自ノードが有する子ノードの数(子ノード数)と、を含む。
【0092】
一方、シンクノード101は、センサノード201により送信された周辺探索メッセージを受信すると、当該周辺探索メッセージに応答するための周辺探索応答メッセージを、ユニキャスト方式に従って、当該周辺探索メッセージを送信してきたノード(センサノード201)へ送信する(ステップS102)。
【0093】
ユニキャスト方式は、メッセージに含まれる宛先アドレスとして、特定のノードのアドレスを設定することにより、当該ノードを宛先として設定する方式である。ここで、周辺探索応答メッセージは、シンクノード101の自ノード情報を含む。
【0094】
同様に、センサノード202は、センサノード201により送信された周辺探索メッセージを受信すると、当該周辺探索メッセージに応答するための周辺探索応答メッセージを、ユニキャスト方式に従って、当該周辺探索メッセージを送信してきたノード(センサノード201)へ送信する(ステップS103)。ここで、周辺探索応答メッセージは、センサノード202の自ノード情報を含む。
【0095】
これにより、センサノード201は、周辺ノード(親ノード候補)としての、シンクノード101、及び、センサノード202等のそれぞれから周辺探索応答メッセージを受信する。更に、センサノード201は、周辺ノード(シンクノード101、及び、センサノード202等)のそれぞれに対して、周辺ノード情報を取得する。
【0096】
このように、センサノード201は、周辺探索メッセージを送信するとともに、周辺探索応答メッセージを受信することにより、自ノードと通信可能な周辺ノードのそれぞれに対する周辺ノード情報を取得することができる。
【0097】
次いで、センサノード201は、周辺ノードのそれぞれに対して、取得された周辺ノード情報に基づいてメトリック値を算出する(ステップS104)。センサノード201は、周辺ノード情報、及び、メトリック値を記憶装置に記憶させる。そして、センサノード201は、算出されたメトリック値が最小である周辺ノード(ここでは、シンクノード101)を親ノードとして決定する(ステップS105)。
【0098】
そして、センサノード201は、決定された親ノード(シンクノード101)へ、自ノードを識別するためのノード識別情報を含む親ノード決定通知を送信する(ステップS106)。
【0099】
一方、シンクノード101は、センサノード201により送信された親ノード決定通知を受信すると、親ノード決定通知に含まれるノード識別情報(ここでは、センサノード201を識別するためのノード識別情報)と対応付けて記憶されている親子関係情報を、ノードが子ノードである旨を表す情報に更新する(ステップS107)。
【0100】
更に、センサノード201は、親ノード(シンクノード101)を識別するためのノード識別情報と対応付けて記憶されている親子関係情報を、ノードが親ノードである旨を表す情報に更新する(ステップS108)。
【0101】
センサネットワークシステム1は、このような処理を、複数のセンサノード201,202,…のそれぞれに対して、繰り返し実行する。これにより、複数のセンサノード201,202,…、及び、シンクノード101からなる複数のノードのそれぞれに対して、当該ノードが有する子ノードの数を、最大収容数に自然数を乗じた値に近づけるように、ネットワークトポロジが形成される。
【0102】
ここで、
図2に示したように、ネットワークトポロジが形成された場合を想定する。この場合、複数のセンサノード201,202,…のそれぞれは、上記取得周期が経過する毎に、検出された物理量を表すセンサデータを取得する。そして、複数のセンサノード201,202,…のそれぞれは、取得されたセンサデータを収容する集成前パケットを生成する。次いで、複数のセンサノード201,202,…のそれぞれは、生成された集成前パケットを親ノードへ送信する。
【0103】
より具体的に述べると、センサノード201、及び、センサノード203のそれぞれは、シンクノード101へ集成前パケットを送信する。
【0104】
センサノード202、及び、センサノード204のそれぞれは、センサノード201へ集成前パケットを送信する。センサノード201は、センサノード202、及び、センサノード204のそれぞれから集成前パケットを受信する。そして、センサノード201は、受信された集成前パケットのそれぞれに収容されるセンサデータを収容する集成後パケットを生成する。次いで、センサノード201は、生成された集成後パケットをシンクノード101へ送信する。
【0105】
また、センサノード210、及び、センサノード211のそれぞれは、センサノード202へ集成前パケットを送信する。センサノード202は、センサノード210、及び、センサノード211のそれぞれから集成前パケットを受信する。そして、センサノード202は、受信された集成前パケットのそれぞれに収容されるセンサデータを収容する集成後パケットを生成する。次いで、センサノード202は、生成された集成後パケットをセンサノード201へ送信する。そして、センサノード201は、センサノード202により送信された集成後パケットを受信し、受信された集成後パケットをシンクノード101へ転送(送信)する。
【0106】
同様に、センサノード207、及び、センサノード212のそれぞれは、センサノード204へ集成前パケットを送信する。センサノード204は、センサノード207、及び、センサノード212のそれぞれから集成前パケットを受信する。そして、センサノード204は、受信された集成前パケットのそれぞれに収容されるセンサデータを収容する集成後パケットを生成する。次いで、センサノード204は、生成された集成後パケットをセンサノード201へ送信する。そして、センサノード201は、センサノード204により送信された集成後パケットを受信し、受信された集成後パケットをシンクノード101へ転送(送信)する。
【0107】
センサノード205,206,208,209,213,214のそれぞれにより送信された集成前パケットも同様に処理される。
【0108】
なお、例えば、センサノード201が10個の子ノードを有し、且つ、最大収容数が10である場合を想定する。この場合、センサノード201は、10個の集成前パケットを受信する。そして、センサノード201は、受信された10個の集成前パケットに収容される10個のセンサデータを収容する集成後パケットを生成する。
【0109】
また、センサノード201が19個の子ノードを有し、且つ、最大収容数が10である場合を想定する。この場合、センサノード201は、19個の集成前パケットを受信する。そして、センサノード201は、受信された19個の集成前パケットのうちの、10個の集成前パケットに収容される10個のセンサデータを収容する第1の集成後パケットと、受信された19個の集成前パケットのうちの、残余の(9個の)集成前パケットに収容される9個のセンサデータを収容する第2の集成後パケットと、を生成する。
【0110】
ここで、第1実施形態に係るセンサネットワークシステム1(第1のセンサネットワークシステム)を模擬した計算(シミュレーション)により形成されたネットワークトポロジと、子ノード数に基づくことなくメトリック値を算出するセンサネットワークシステム(第2のセンサネットワークシステム)を模擬した計算により形成されたネットワークトポロジと、を比較して説明する。
【0111】
先ず、シミュレーションにおいて想定しているセンサネットワークシステムについて説明する。このセンサネットワークシステムは、
図7に示したようにノードが配置されている。ここで、中央に配置された四角形のマークは、シンクノードを表す。また、円形のマークは、センサノードを表す。各ノードが配置された領域は、1辺の長さが400mである正方形の領域である。また、100個のセンサノードが配置されている。更に、2つのノードの間の距離が80m以下である場合に、当該2つのノードが通信可能であることが想定されている。
【0112】
図8は、第2のセンサネットワークシステムを模擬した計算により形成されたネットワークトポロジを示している。この例では、第2のセンサネットワークシステムは、数式1における係数αを0に設定している。
図8において、2つのノードを結ぶ直線は、当該2つのノードのうちのシンクノード側のノードが、当該2つのノードの残余のノードに対する親ノードであることを表す。
【0113】
この例では、1つの子ノードのみを有するノードが比較的多い。従って、センサノードが親ノードへ送信するパケットの数が無駄に過大となる可能性が比較的高い。
【0114】
図9は、第1のセンサネットワークシステムを模擬した計算により形成されたネットワークトポロジを示している。この例では、第1のセンサネットワークシステムは、数式1における係数αを0よりも大きい値に設定している。
図9においても、2つのノードを結ぶ直線は、当該2つのノードのうちのシンクノード側のノードが、当該2つのノードの残余のノードに対する親ノードであることを表す。
【0115】
この例では、1つの子ノードのみを有するノードは、比較的少ない。即ち、各ノードが有する子ノードの数が、最大収容数に自然数を乗じた値に近づけられている。従って、集成後パケットに収容されるセンサデータの数を最大収容数に近づけることができる。これにより、通信負荷を低減することができる。
【0116】
以上、説明したように、本発明の第1実施形態に係るセンサネットワークシステム1は、複数のセンサノード201,202,…のそれぞれに対して、当該センサノードが有する子ノードの数を、最大収容数に自然数を乗じた値に近づけるように、ネットワークトポロジを形成する。
【0117】
これによれば、集成後パケットに収容されるセンサデータの数を最大収容数に近づけることができる。これにより、センサネットワークシステム1において、センサノード201,202,…が親ノードへ送信する集成後パケットの数を低減することができる。従って、通信負荷を低減することができる。
【0118】
更に、本発明の第1実施形態に係るセンサネットワークシステム1は、親ノード候補のそれぞれに対して、当該親ノード候補が有する子ノードの数に基づいてメトリック値を算出し、算出されたメトリック値に基づいて、処理対象ノードに対する親ノードを決定する。
【0119】
これによれば、親ノード候補としてのセンサノード201,202,…が有する子ノードの数をメトリック値に反映することができる。従って、処理対象ノードに対する親ノードを、当該親ノードが有する子ノードの数が、最大収容数に自然数を乗じた値に近づくように、決定することができる。この結果、通信負荷を低減することができる。
【0120】
更に、本発明の第1実施形態に係るセンサネットワークシステム1は、複数のセンサノード201,202,…のそれぞれが、メトリック値を算出するとともに、自ノードに対する親ノードを決定する。
【0121】
これによれば、各センサノード201,202,…が、自ノードに対する親ノードを決定することにより、ネットワークトポロジが形成される。即ち、各センサノード201,202,…が自律的にネットワークトポロジを形成することができる。換言すると、センサネットワークシステム1は、センサノード201,202,…以外の装置を設けることなく、ネットワークトポロジを形成することができる。
【0122】
なお、第1実施形態の第1変形例に係るセンサネットワークシステム1は、数式2に代えて、数式4を用いるように構成される。
【数4】
【0123】
図10は、数式4に示した第2の部分メトリック値M
n(n)の、仮子ノード数nに対する変化を示したグラフである。ここでは、最大収容数Nが10である場合を想定している。
【0124】
図10に示したように、第2の部分メトリック値M
n(n)は、仮子ノード数nが、ある自然数から1を減じた値に最大収容数Nを乗じた値に1を加えた値から、当該自然数に当該最大収容数Nを乗じた値まで、の範囲において増加するにつれて減少する。
【0125】
更に、第2の部分メトリック値M
n(n)は、1から最大収容数までの第1の範囲における最小値(即ち、仮子ノード数nが10である場合における第2の部分メトリック値M
n)よりも、当該最大収容数に1を加えた値から、当該最大収容数に2を乗じた値までの第2の範囲における最小値(即ち、仮子ノード数nが20である場合における第2の部分メトリック値M
n)が大きくなる。
【0126】
加えて、第2の部分メトリック値M
n(n)は、上記第2の範囲における最小値(即ち、仮子ノード数nが20である場合における第2の部分メトリック値M
n)よりも、当該最大収容数に2を乗じた値に1を加えた値から、当該最大収容数に3を乗じた値までの第3の範囲における最小値(即ち、仮子ノード数nが30である場合における第2の部分メトリック値M
n)が大きくなる。
【0127】
このように、メトリック値は、ある自然数から1を減じた値を、最大収容数に乗じた値に1を加えた値から、当該自然数を当該最大収容数に乗じた値までの範囲における最小値が、当該自然数が大きくなるほど大きくなる。
【0128】
これによれば、各センサノード201,202,…が有する子ノードの数を、最大収容数に近づけることができる。即ち、各センサノード201,202,…が有する子ノードの数が過大となることを回避することができる。
【0129】
これにより、子ノードのそれぞれから集成前パケットを受信した場合に、1つの集成後パケットのみを親ノードへ送信するセンサノードの数を増加させることができる。この結果、通信負荷をより一層低減することができる。
【0130】
また、第1実施形態の第2変形例に係るセンサネットワークシステム1は、数式2に代えて、数式5を用いるように構成される。
【数5】
【0131】
図11は、数式5に示した第2の部分メトリック値M
n(n)の、仮子ノード数nに対する変化を示したグラフである。ここでは、最大収容数Nが10である場合を想定している。
【0132】
図11に示したように、第2の部分メトリック値M
n(n)は、仮子ノード数nが、ある自然数から1を減じた値に最大収容数Nを乗じた値に1を加えた値である下限値から、当該自然数に当該最大収容数Nを乗じた値である上限値まで、の範囲において、当該下限値よりも当該上限値に近い値であるときに最小値を有する。
【0133】
例えば、第2の部分メトリック値M
n(n)は、仮子ノード数nが、下限値としての1から上限値としての10までの範囲において、当該下限値よりも当該上限値に近い値である8であるときに最小値を有する。同様に、第2の部分メトリック値M
n(n)は、仮子ノード数nが、下限値としての11から上限値としての20までの範囲において、当該下限値よりも当該上限値に近い値である18であるときに最小値を有する。
【0134】
このような構成によっても、各ノードが有する子ノードの数を、最大収容数に自然数を乗じた値に近づけることができる。
【0135】
また、第1実施形態の第3変形例に係るセンサネットワークシステム1は、数式2に代えて、数式6を用いるように構成される。
【数6】
【0136】
図12に示したように、第2の部分メトリック値M
n(n)は、仮子ノード数nが、ある自然数から1を減じた値に最大収容数Nを乗じた値に1を加えた値である下限値から、当該自然数に当該最大収容数Nを乗じた値である上限値まで、の範囲において、当該下限値よりも当該上限値に近い値であるときに最小値を有する。
【0137】
更に、第2の部分メトリック値M
n(n)は、1から最大収容数までの第1の範囲における最小値(即ち、仮子ノード数nが8である場合における第2の部分メトリック値M
n)よりも、当該最大収容数に1を加えた値から、当該最大収容数に2を乗じた値までの第2の範囲における最小値(即ち、仮子ノード数nが18である場合における第2の部分メトリック値M
n)が大きくなる。
【0138】
加えて、第2の部分メトリック値M
n(n)は、上記第2の範囲における最小値(即ち、仮子ノード数nが18である場合における第2の部分メトリック値M
n)よりも、当該最大収容数に2を乗じた値に1を加えた値から、当該最大収容数に3を乗じた値までの第3の範囲における最小値(即ち、仮子ノード数nが28である場合における第2の部分メトリック値M
n)が大きくなる。
【0139】
このように、メトリック値は、ある自然数から1を減じた値を、最大収容数に乗じた値に1を加えた値から、当該自然数を当該最大収容数に乗じた値までの範囲における最小値が、当該自然数が大きくなるほど大きくなる。
【0140】
これによれば、各センサノード201,202,…が有する子ノードの数を、最大収容数に近づけることができる。即ち、各センサノード201,202,…が有する子ノードの数が過大となることを回避することができる。
【0141】
これにより、子ノードのそれぞれから集成前パケットを受信した場合に、1つの集成後パケットのみを親ノードへ送信するセンサノードの数を増加させることができる。この結果、通信負荷をより一層低減することができる。
【0142】
また、第1実施形態に係るセンサネットワークシステム1は、複数のセンサノード201,202,…のそれぞれが自ノードに対する親ノードを決定するように構成されていた。ところで、第1実施形態の他の変形例に係るセンサネットワークシステム1は、センサノード201,202,…以外の管理装置(例えば、シンクノード101、又は、他の装置)が、複数のセンサノード201,202,…のそれぞれに対する親ノードを決定するように構成されていてもよい。
【0143】
<第2実施形態>
次に、本発明の第2実施形態に係るセンサネットワークシステムについて説明する。第2実施形態に係るセンサネットワークシステムは、上記第1実施形態に係るセンサネットワークシステムに対して、メトリック値を、ヘッドノード密度にも基づいて算出する点において相違している。ここで、ヘッドノード密度は、親ノード候補と通信可能なセンサノードの数に対する、当該親ノード候補と通信可能なセンサノードのうちの子ノードを有するセンサノードの数の割合を表す。以下、かかる相違点を中心として説明する。
【0144】
本例では、自ノード情報は、更に、周辺ノード数と、周辺ヘッドノード数と、を含む。ここで、周辺ノード数は、自ノードと通信可能なノードの数である。また、周辺ヘッドノード数は、自ノードと通信可能なノードのうちの、子ノードを少なくとも1つ有するノードの数である。
【0145】
従って、複数のセンサノード201,202,…のそれぞれは、自ノードと通信可能な周辺ノード(親ノード候補)のそれぞれに対して、周辺ノード数と、周辺ヘッドノード数と、を含む周辺ノード情報を取得する。
【0146】
更に、メトリック値算出部322は、数式1に代えて、数式7を用いることによりメトリック値Mを算出する。
【数7】
【0147】
ここで、βは、予め設定された係数である。また、第3の部分メトリック値M
c(m,c)は、周辺ノード数mと、周辺ヘッドノード数cと、に応じて変化する値を有する関数である。
【0148】
本例では、第3の部分メトリック値M
c(m,c)は、数式8により表される。
【数8】
【0149】
即ち、第3の部分メトリック値M
c(m,c)は、メトリック値Mを算出する対象となる親ノード候補と通信可能なセンサノードの数(周辺ノード数)mに対する、当該親ノード候補と通信可能なセンサノードのうちの子ノードを有するセンサノードの数(周辺ヘッダノード数)cの割合を表すヘッドノード密度である、と言うことができる。
【0150】
数式7によれば、係数βの大きさを変更することにより、ヘッドノード密度の大きさがメトリック値Mに反映される程度を調整することができる。係数βを0に近づけるほど、ヘッドノード密度の大きさがメトリック値Mに反映される程度は小さくなる。
【0151】
ところで、子ノードを有するセンサノード(ヘッドノード)は、子ノードを有しないセンサノード(非ヘッドノード)よりも通信量が多い。従って、子ノードを有するセンサノードが、過度に集中して分布すると、無線信号が干渉することにより、通信品質が劣化する虞がある。
【0152】
これに対し、第2実施形態に係るセンサネットワークシステム1によれば、子ノードを有するセンサノード201,202,…が、過度に集中して分布することを回避することができる。この結果、通信品質が劣化することを回避することができる。
【0153】
<第3実施形態>
次に、本発明の第3実施形態に係るセンサネットワークシステムについて説明する。第3実施形態に係るセンサネットワークシステムは、上記第1実施形態に係るセンサネットワークシステムに対して、複数の異なるセンサデータのサイズに応じて、複数の異なるネットワークトポロジを使い分ける点において相違している。以下、かかる相違点を中心として説明する。
【0154】
センサデータ取得部341は、サイズが異なる複数のセンサデータを取得する。本例では、上記複数のセンサデータは、それぞれ、複数の異なる期間において検出された物理量(例えば、30分間において検出された温度、1日間において検出された温度、及び、30日間に検出された温度等)を表す。なお、センサ部330が複数の異なる物理量(例えば、温度、湿度、及び、消費電力量等)を検出するように構成されている場合、上記複数のセンサデータは、複数の異なる物理量をそれぞれ表していてもよい。
【0155】
パケット送信部342は、サイズが異なる複数のセンサデータのそれぞれに対して、当該センサデータを収容する集成前パケットを生成する。
【0156】
センサネットワークシステム1は、上記複数のセンサデータのそれぞれのサイズに対してネットワークトポロジを形成する。
【0157】
具体的には、複数のノード(センサノード201,202,…)のそれぞれは、センサデータのサイズを特定するためのサイズ特定情報を含む周辺探索メッセージを送信する。更に、複数のノードのそれぞれは、受信した周辺探索メッセージに含まれるサイズ特定情報を含む、当該周辺探索メッセージに応答するための周辺探索応答メッセージを送信する。
【0158】
加えて、複数のノードのそれぞれは、受信した周辺探索応答メッセージに含まれるサイズ特定情報により特定されるセンサデータのサイズと、受信した周辺探索応答メッセージに基づいて取得される周辺ノード情報と、に基づいてメトリック値を算出する。
【0159】
また、複数のノードのそれぞれは、サイズ特定情報と、ルーティングテーブルと、を対応付けて記憶する。そして、複数のノードのそれぞれは、受信した周辺探索応答メッセージに含まれるサイズ特定情報と対応付けて記憶されているルーティングテーブルを、当該周辺探索応答メッセージに基づいて取得される周辺ノード情報、及び、当該周辺ノード情報に基づいて算出されたメトリック値により更新する。
【0160】
更に、複数のノードのそれぞれは、パケットを送信する際、当該パケットに収容されているセンサデータのサイズを取得する。そして、複数のノードのそれぞれは、取得されたサイズを特定するためのサイズ特定情報と対応付けて記憶されているトポロジ情報に基づいて親ノードを特定し、特定された親ノードへ、上記パケットを送信する。
【0161】
なお、センサネットワークシステム1は、センサデータを収容するパケットの送信を開始する前に、当該パケットに収容される予定のセンサデータのサイズを特定するためのサイズ特定情報を各ノードに通知するように構成されていてもよい。この場合、各ノードは、通知されたサイズ特定情報と対応付けて記憶されているトポロジ情報に基づいて親ノードを特定することが好適である。
【0162】
このようにして、センサネットワークシステム1は、記憶されているトポロジ情報が表すネットワークトポロジを用いることにより、当該トポロジ情報と対応付けて記憶されているサイズ特定情報により特定されるサイズのセンサデータを収容するパケットを伝送する。
【0163】
以上、説明したように、本発明の第3実施形態に係るセンサネットワークシステム1によれば、センサデータ毎に、当該センサデータに適したネットワークトポロジを用いて、当該センサデータを収容するパケットを伝送することができる。この結果、通信負荷を低減することができる。更に、センサデータのサイズが変化する毎に、ネットワークトポロジを形成し直す場合と比較して、ネットワークトポロジを形成するための処理負荷を軽減することができる。
【0164】
なお、本発明の第3実施形態の変形例に係るセンサネットワークシステム1は、サイズ特定情報に代えて、最大収容数を特定するための情報を用いるように構成されていてもよい。この場合、複数のセンサノード201,202,…のそれぞれが、複数の異なる最大パケット長を有するパケットを、センサデータを収容するパケットとして送信するように構成されていても、上述した作用及び効果を奏することができる。同様に、複数のセンサノード201,202,…のそれぞれが、複数の異なるヘッダ長を有するパケットを、センサデータを収容するパケットとして送信するように構成されていても、上述した作用及び効果を奏することができる。
【0165】
<第4実施形態>
次に、本発明の第4実施形態に係るセンサネットワークシステムについて
図13を参照しながら説明する。
第4実施形態に係るセンサネットワークシステム1000は、
複数のセンサノード1100,…を備えるとともに、当該複数のセンサノード1100,…のそれぞれをノードとして用いる木構造を有するネットワークトポロジを形成するように、当該複数のセンサノード1100,…のそれぞれに対して親ノードを決定するように構成されたシステムである。
【0166】
更に、複数のセンサノード1100,…のそれぞれは、
物理量を検出し、当該検出された物理量を表すセンサデータを収容するパケットである集成前パケットを生成し、当該生成された集成前パケットを自ノードに対する親ノードへ送信する集成前パケット生成部(集成前パケット生成手段)1101と、
自ノードが有する子ノードのそれぞれにより送信された上記集成前パケットを受信し、当該受信された集成前パケットのそれぞれが収容するセンサデータを収容するパケットである集成後パケットを生成し、当該生成された集成後パケットを自ノードに対する親ノードへ送信する集成後パケット生成部(集成後パケット生成手段)1102と、
自ノードが有する子ノードのそれぞれにより送信された上記集成後パケットを受信し、当該受信された集成後パケットを自ノードに対する親ノードへ送信する集成後パケット転送部(集成後パケット転送手段)1103と、
を備える。
【0167】
加えて、上記センサネットワークシステム1000は、
上記複数のセンサノード1100,…のそれぞれに対して、当該センサノード1100が有する子ノードの数を、1つのパケットが収容可能なセンサデータの最大数である最大収容数に自然数を乗じた値に近づけるように、上記ネットワークトポロジを形成するネットワークトポロジ形成部(ネットワークトポロジ形成手段)1200を備える。
【0168】
これによれば、集成後パケットに収容されるセンサデータの数を最大収容数に近づけることができる。これにより、センサネットワークシステム1000において、センサノード1100が親ノードへ送信する集成後パケットの数を低減することができる。従って、通信負荷を低減することができる。
【0169】
以上、上記実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成及び詳細に、本願発明の範囲内において当業者が理解し得る様々な変更をすることができる。
【0170】
例えば、センサデータは、検出された物理量を表す情報に加えて、物理量を検出したノードを識別するためのノード識別情報、当該ノードの(即ち、物理量が検出された)位置を表す位置情報、及び、物理量が検出された日時を表す日時情報等、の少なくとも1つを含んでいてもよい。
【0171】
なお、上記各実施形態においてセンサネットワークシステム1の各機能は、回路等のハードウェアにより実現されていた。ところで、センサノード201,202,…、及び、シンクノード101のそれぞれは、処理装置と、プログラム(ソフトウェア)を記憶する記憶装置と、を備えるとともに、処理装置がそのプログラムを実行することにより、各機能を実現するように構成されていてもよい。この場合、プログラムは、コンピュータが読み取り可能な記録媒体に記憶されていてもよい。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【0172】
また、上記実施形態の他の変形例として、上述した実施形態及び変形例の任意の組み合わせが採用されてもよい。
【0173】
<付記>
上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
【0174】
(付記1)
複数のセンサノードを備えるとともに、当該複数のセンサノードのそれぞれをノードとして用いる木構造を有するネットワークトポロジを形成するように、当該複数のセンサノードのそれぞれに対して親ノードを決定するように構成されたセンサネットワークシステムであって、
前記複数のセンサノードのそれぞれは、
物理量を検出し、当該検出された物理量を表すセンサデータを収容するパケットである集成前パケットを生成し、当該生成された集成前パケットを自ノードに対する親ノードへ送信する集成前パケット生成手段と、
自ノードが有する子ノードのそれぞれにより送信された前記集成前パケットを受信し、当該受信された集成前パケットのそれぞれが収容するセンサデータを収容するパケットである集成後パケットを生成し、当該生成された集成後パケットを自ノードに対する親ノードへ送信する集成後パケット生成手段と、
自ノードが有する子ノードのそれぞれにより送信された前記集成後パケットを受信し、当該受信された集成後パケットを自ノードに対する親ノードへ送信する集成後パケット転送手段と、
を備え、
前記センサネットワークシステムは、
前記複数のセンサノードのそれぞれに対して、当該センサノードが有する子ノードの数を、1つのパケットが収容可能なセンサデータの最大数である最大収容数に自然数を乗じた値に近づけるように、前記ネットワークトポロジを形成するネットワークトポロジ形成手段を備える、センサネットワークシステム。
【0175】
これによれば、集成後パケットに収容されるセンサデータの数を最大収容数に近づけることができる。これにより、センサネットワークシステムにおいて、センサノードが親ノードへ送信する集成後パケットの数を低減することができる。従って、通信負荷を低減することができる。
【0176】
(付記2)
付記1に記載のセンサネットワークシステムであって、
前記ネットワークトポロジ形成手段は、
前記複数のセンサノードのそれぞれを処理対象ノードとして特定し、当該複数のセンサノードの中から、当該特定された処理対象ノードと通信可能なセンサノードである親ノード候補を抽出し、当該抽出された親ノード候補のそれぞれに対して、当該親ノード候補が有する子ノードの数に基づいてメトリック値を算出し、当該抽出された親ノード候補の中から、当該算出されたメトリック値に基づいて、当該処理対象ノードに対する親ノードを決定するように構成されたセンサネットワークシステム。
【0177】
これによれば、親ノード候補としてのセンサノードが有する子ノードの数をメトリック値に反映することができる。従って、処理対象ノードに対する親ノードを、当該親ノードが有する子ノードの数が、最大収容数に自然数を乗じた値に近づくように、決定することができる。この結果、通信負荷を低減することができる。
【0178】
(付記3)
付記2に記載のセンサネットワークシステムであって、
前記ネットワークトポロジ形成手段は、前記抽出された親ノード候補の中から、前記算出されたメトリック値が最小である親ノード候補を、前記処理対象ノードに対する親ノードとして決定するように構成され、
前記メトリック値は、前記親ノード候補が有する子ノードの数に1を加えた値である仮子ノード数が、ある自然数から1を減じた値に前記最大収容数を乗じた値に1を加えた値から、当該自然数に当該最大収容数を乗じた値まで、の範囲において増加するにつれて減少するように構成されたセンサネットワークシステム。
【0179】
(付記4)
付記2に記載のセンサネットワークシステムであって、
前記ネットワークトポロジ形成手段は、前記抽出された親ノード候補の中から、前記算出されたメトリック値が最小である親ノード候補を、前記処理対象ノードに対する親ノードとして決定するように構成され、
前記メトリック値は、前記親ノード候補が有する子ノードの数に1を加えた値である仮子ノード数が、ある自然数から1を減じた値に前記最大収容数を乗じた値に1を加えた値である下限値から、当該自然数に当該最大収容数を乗じた値である上限値まで、の範囲において、当該下限値よりも当該上限値に近い値であるときに最小値を有するように構成されたセンサネットワークシステム。
【0180】
(付記5)
付記3又は付記4に記載のセンサネットワークシステムであって、
前記メトリック値は、1から前記最大収容数までの第1の範囲における最小値よりも、当該最大収容数に1を加えた値から、当該最大収容数に2を乗じた値までの第2の範囲における最小値が大きくなるように構成されたセンサネットワークシステム。
【0181】
これによれば、各センサノードが有する子ノードの数を、最大収容数に近づけることができる。これにより、子ノードのそれぞれから集成前パケットを受信した場合に、1つの集成後パケットのみを親ノードへ送信するセンサノードの数を増加させることができる。この結果、通信負荷をより一層低減することができる。
【0182】
(付記6)
付記2乃至付記5のいずれかに記載のセンサネットワークシステムであって、
前記ネットワークトポロジ形成手段は、前記複数のセンサノードのそれぞれが備える親ノード決定手段により構成され、
前記親ノード決定手段は、自ノードと通信可能なセンサノードである親ノード候補を前記複数のセンサノードの中から抽出し、当該抽出された親ノード候補のそれぞれから、当該親ノード候補が有する子ノードの数を表す子ノード数情報を受信し、当該抽出された親ノード候補のそれぞれに対して、当該受信された子ノード数情報が表す子ノードの数に基づいて前記メトリック値を算出し、当該抽出された親ノード候補の中から、当該算出されたメトリック値に基づいて、自ノードに対する親ノードを決定するように構成されたセンサネットワークシステム。
【0183】
これによれば、各センサノードが、自ノードに対する親ノードを決定することにより、ネットワークトポロジが形成される。即ち、各センサノードが自律的にネットワークトポロジを形成することができる。換言すると、センサネットワークシステムは、センサノード以外の装置を設けることなく、ネットワークトポロジを形成することができる。
【0184】
(付記7)
付記2乃至付記6のいずれかに記載のセンサネットワークシステムであって、
前記メトリック値は、前記親ノード候補から受信された無線信号の強度、及び、当該親ノード候補から、前記木構造におけるルートノードまでのホップ数、の少なくとも一方と、当該親ノード候補が有する子ノードの数と、に応じて変化する値であるセンサネットワークシステム。
【0185】
(付記8)
付記2乃至付記7のいずれかに記載のセンサネットワークシステムであって、
前記メトリック値は、前記親ノード候補と通信可能なセンサノードの数に対する、当該親ノード候補と通信可能なセンサノードのうちの子ノードを有するセンサノードの数の割合を表すヘッドノード密度に応じて変化する値であるセンサネットワークシステム。
【0186】
ところで、子ノードを有するセンサノード(ヘッドノード)は、子ノードを有しないセンサノード(非ヘッドノード)よりも通信量が多い。従って、子ノードを有するセンサノードが、過度に集中して分布すると、無線信号が干渉することにより、通信品質が劣化する虞がある。これに対し、上記構成によれば、子ノードを有するセンサノードが、過度に集中して分布することを回避することができる。この結果、通信品質が劣化することを回避することができる。
【0187】
(付記9)
付記1乃至付記8のいずれかに記載のセンサネットワークシステムであって、
前記集成前パケット生成手段は、サイズが異なる複数のセンサデータのそれぞれに対して、当該センサデータを収容する集成前パケットを生成するように構成され、
前記センサネットワークシステムは、
前記複数のセンサデータのそれぞれのサイズに対して、複数のネットワークトポロジを形成するように構成され、
前記センサデータのサイズを特定するためのサイズ特定情報と、当該サイズに対して前記形成されたネットワークトポロジを表すトポロジ情報と、を対応付けて記憶するように構成され、
前記記憶されているトポロジ情報が表すネットワークトポロジを用いることにより、当該トポロジ情報と対応付けて記憶されているサイズ特定情報により特定されるサイズのセンサデータを収容するパケットを伝送するように構成されたセンサネットワークシステム。
【0188】
これによれば、センサデータ毎に、当該センサデータのサイズに適したネットワークトポロジを用いて、当該センサデータを収容するパケットを伝送することができる。この結果、通信負荷を低減することができる。更に、センサデータのサイズが変化する毎に、ネットワークトポロジを形成し直す場合と比較して、ネットワークトポロジを形成するための処理負荷を軽減することができる。
【0189】
(付記10)
複数のセンサノードを備えるとともに、当該複数のセンサノードのそれぞれをノードとして用いる木構造を有するネットワークトポロジを形成するように、当該複数のセンサノードのそれぞれに対して親ノードを決定するように構成されたセンサネットワークシステムに適用されるセンサネットワーク制御方法であって、
前記複数のセンサノードのそれぞれが、物理量を検出し、当該検出された物理量を表すセンサデータを収容するパケットである集成前パケットを生成し、当該生成された集成前パケットを自ノードに対する親ノードへ送信し、
前記複数のセンサノードのそれぞれが、自ノードが有する子ノードのそれぞれにより送信された前記集成前パケットを受信し、当該受信された集成前パケットのそれぞれが収容するセンサデータを収容するパケットである集成後パケットを生成し、当該生成された集成後パケットを自ノードに対する親ノードへ送信し、
前記複数のセンサノードのそれぞれが、自ノードが有する子ノードのそれぞれにより送信された前記集成後パケットを受信し、当該受信された集成後パケットを自ノードに対する親ノードへ送信し、
前記複数のセンサノードのそれぞれに対して、当該センサノードが有する子ノードの数を、1つのパケットが収容可能なセンサデータの最大数である最大収容数に自然数を乗じた値に近づけるように、前記ネットワークトポロジを形成する、センサネットワーク制御方法。
【0190】
(付記11)
付記10に記載のセンサネットワーク制御方法であって、
前記複数のセンサノードのそれぞれを処理対象ノードとして特定し、当該複数のセンサノードの中から、当該特定された処理対象ノードと通信可能なセンサノードである親ノード候補を抽出し、当該抽出された親ノード候補のそれぞれに対して、当該親ノード候補が有する子ノードの数に基づいてメトリック値を算出し、当該抽出された親ノード候補の中から、当該算出されたメトリック値に基づいて、当該処理対象ノードに対する親ノードを決定するように構成されたセンサネットワーク制御方法。
【0191】
(付記12)
木構造を有するネットワークトポロジにおけるノードを構成するセンサノードであって、
物理量を検出し、当該検出された物理量を表すセンサデータを収容するパケットである集成前パケットを生成し、当該生成された集成前パケットを親ノードへ送信する集成前パケット生成手段と、
子ノードのそれぞれにより送信された集成前パケットを受信し、当該受信された集成前パケットのそれぞれが収容するセンサデータを収容するパケットである集成後パケットを生成し、当該生成された集成後パケットを親ノードへ送信する集成後パケット生成手段と、
子ノードのそれぞれにより送信された集成後パケットを受信し、当該受信された集成後パケットを親ノードへ送信する集成後パケット転送手段と、
自ノードと通信可能な他のセンサノードである親ノード候補を特定し、当該特定された親ノード候補のそれぞれに対して、当該親ノード候補が有する子ノードの数を、1つのパケットが収容可能なセンサデータの最大数である最大収容数に自然数を乗じた値に近づけるためのメトリック値を算出し、当該特定された親ノード候補の中から、当該算出されたメトリック値に基づいて、自ノードに対する親ノードを決定する親ノード決定手段と、
を備えるセンサノード。
【0192】
(付記13)
木構造を有するネットワークトポロジにおけるノードを構成するセンサノードに適用されるセンサノード制御方法であって、
物理量を検出し、当該検出された物理量を表すセンサデータを収容するパケットである集成前パケットを生成し、当該生成された集成前パケットを親ノードへ送信し、
子ノードのそれぞれにより送信された集成前パケットを受信し、当該受信された集成前パケットのそれぞれが収容するセンサデータを収容するパケットである集成後パケットを生成し、当該生成された集成後パケットを親ノードへ送信し、
子ノードのそれぞれにより送信された集成後パケットを受信し、当該受信された集成後パケットを親ノードへ送信し、
自ノードと通信可能な他のセンサノードである親ノード候補を特定し、当該特定された親ノード候補のそれぞれに対して、当該親ノード候補が有する子ノードの数を、1つのパケットが収容可能なセンサデータの最大数である最大収容数に自然数を乗じた値に近づけるためのメトリック値を算出し、当該特定された親ノード候補の中から、当該算出されたメトリック値に基づいて、自ノードに対する親ノードを決定する、センサノード制御方法。
【0193】
(付記14)
木構造を有するネットワークトポロジにおけるノードを構成するセンサノードに、
物理量を検出し、当該検出された物理量を表すセンサデータを収容するパケットである集成前パケットを生成し、当該生成された集成前パケットを親ノードへ送信し、
子ノードのそれぞれにより送信された集成前パケットを受信し、当該受信された集成前パケットのそれぞれが収容するセンサデータを収容するパケットである集成後パケットを生成し、当該生成された集成後パケットを親ノードへ送信し、
子ノードのそれぞれにより送信された集成後パケットを受信し、当該受信された集成後パケットを親ノードへ送信し、
自ノードと通信可能な他のセンサノードである親ノード候補を特定し、当該特定された親ノード候補のそれぞれに対して、当該親ノード候補が有する子ノードの数を、1つのパケットが収容可能なセンサデータの最大数である最大収容数に自然数を乗じた値に近づけるためのメトリック値を算出し、当該特定された親ノード候補の中から、当該算出されたメトリック値に基づいて、自ノードに対する親ノードを決定する、処理を実行させるためのセンサノード制御プログラム。