以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
[情報処理システム]
図1は、本実施の形態における情報処理システム100のネットワーク構成を説明する図である。図1の情報処理システム100は、M2M(Machine to Machine:M2M)に基づくシステムである。M2Mは、機械同士がネットワークを介して互いに情報をやり取りすることにより、高度な制御や動作を行うシステムを示す。
図1の情報処理システム100は、センタサーバ(情報処理装置)10と、複数のゲートウェイ(中継装置)20−1〜20−3と、複数のデバイス30a〜30fとを有する。図1に示すセンタサーバ10は、例えば、クラウドコンピューティング等によって実現されるサーバを示す。ゲートウェイ20は、デバイス30とセンタサーバ10との通信を中継する装置である。
各デバイス30a〜30fは、近距離無線通信を介して、ゲートウェイ20−1〜20−3(ゲートウェイ20ともいう)と接続する(図中の点線)。近距離通信は、例えば、数十メートル程度の通信エリアの無線通信を示し、ジグビー(ZigBee(登録商標))、ブルートゥース(Bluetooth(登録商標))等に基づく無線通信を示す。また、ゲートウェイ20は、無線通信または有線通信を介して、センタサーバ10と接続する(図中の直線)。無線通信に基づく場合、ゲートウェイ20は、例えば、LTE(Long Term Evolution:LTE)や3G(3rd Generation)等の規格にしたがって、センタサーバ10と接続する。
図1に示す、各デバイス30は、センシングする場所に固定的に位置する。また、各デバイス30は、それぞれセンサを備え、センサが検出したデータを取得する。各デバイス30は、定期的に、データを取得し、ゲートウェイ20を経由して取得データ(センサデータともいう)をセンタサーバ10に送信する。
なお、各デバイス30は、必ずしもセンサを備えている必要はない。取得データは、デバイス30が備える、別の機器やプログラム等が検出したデータであってもよい。また、図1の例では、6つのデバイス30a〜30f(デバイス30ともいう)を例示しているが、情報処理システム100は、実際は、多量のデバイス30を有する。
センタサーバ10は、複数のデバイス30から収集した取得データに基づいて、所定の処理を行う。例えば、図1に示す情報処理システム100がマンホールの下水管理システムである場合、センタサーバ10は、マンホールに設置された水位センサが観測した水位データ(取得データ)を各デバイス30から収集する。そして、センタサーバ10は、収集した水位データのうち、閾値を超える水位データがある場合に、当該水位データのデバイス30の近隣の住民への警告通知等を行う。または、センタサーバ10は、収集した水位データを、作業員のための情報として出力する。
なお、情報処理システム100は、下水管理システムに限定されるものではない。情報処理システム100は、橋梁やトンネル等の振動管理システムであってもよい。振動管理システムのセンタサーバ10は、各デバイス30から振動データを収集し、収集した振動データに基づいて、点検業務や補修業務等を行う。
また、デバイス30のそれぞれは電池を備え、電池によって駆動する。デバイス30の電力消費は、データの送信処理による電力消費の割合が大きい。また、デバイス30の電池が切れると、作業員は、デバイス30が設置された場所に訪問し、電池の交換や充電等のメンテナンスを行う。デバイス30は、遠隔地や作業性の困難な場所に設置されている場合があり、作業員による電池の交換や充電等の作業の負荷に応じて、メンテナンスにかかるコストが増加する。
また、図1に示す情報処理システム100は、1つのデバイス30に対して、複数のゲートウェイ20を冗長して配置する。デバイス30とゲートウェイ20との無線環境は、設置環境の変化に応じて変動する。したがって、無線環境が悪化すると、ゲートウェイ20はデバイス30からデータを受信できないことがある。また、ゲートウェイ20が処理するデータ量が許容量を超えた場合、パケットの衝突が多発し、データの送信エラーが生じ易い。
したがって、情報処理システム100は、デバイス30からのデータの受信の信頼性を高め、各ゲートウェイ20が処理するデータ量を許容量に収めるために、1つのデバイス30に対して、複数のゲートウェイ20を冗長に配置する。複数のゲートウェイ20は、互いに異なる周波数チャンネル(CH)の設定を有する。
[自律制御]
それぞれのデバイス30は、例えば、接続可能な複数のゲートウェイ20から、最適なゲートウェイ20を選択する。各デバイス30は、例えば、電波強度や再送回数等に基づいて、接続先のゲートウェイ20を選択する。電波強度は、デバイス30とゲートウェイ20との無線通信の電波の強さを示す。電波強度が高いほど、送信エラーが発生する確率は低い。再送回数は、ゲートウェイ20へのデータの送信エラーに伴う再送の回数を示す。
各デバイス30は、接続中のゲートウェイ20との無線環境が悪化した場合に、無線環境の良い他のゲートウェイ20と接続する。これにより、デバイス30は、センサデータの再送回数を抑制する。デバイス30は、例えば、接続中のゲートウェイ20の電波強度が所定の閾値を下回ると、ゲートウェイ20との接続を切断し、周囲のゲートウェイ20の中から、電波強度が所定の閾値以上のゲートウェイ20を選択する。そして、デバイス30は、選択したゲートウェイと同一の周波数チャンネルを設定して接続する。または、各デバイス30は、再送回数の小さいゲートウェイ20を接続先として選択してもよい。
このように、デバイス30は、当該デバイス30にとって最適なゲートウェイ20を選択する。各デバイス30が自律的にゲートウェイ20を選択できることにより、センタサーバ10は、各デバイス30とゲートウェイ20との間の経路を制御しなくてもよい。これにより、センタサーバ10の処理の負荷を抑制可能になるとともに、経路の制御にかかる通信処理が発生しない。
一方、各デバイス30は、他のデバイス30を考慮せずに、接続先のゲートウェイ20を選択する。したがって、電池残量の少ないデバイス30の、接続するゲートウェイ20へのセンサデータの再送回数が多くなることがある。データの送信処理の増加に応じて電力消費が増加することにより、電池残量の少ないデバイス30の電池残量がさらに減少する。これにより、デバイス間で、電池残量の偏りが生じ易くなる。
図2は、図1に示した情報処理システム100のデバイス間の電池残量の偏りを説明する図である。図2において、図1で示したものと同一のものは、同一の記号で示す。図2は、図1に示したゲートウェイ20−1〜20−3のうち、ゲートウェイ20−1、20−2を示す。また、図2は、図1に示したデバイス30a〜30fに加えて、さらにデバイス30g、30hを示す。また、図2は、センタサーバ10の図示を省略している。
図2の例において、デバイス30a〜30fとゲートウェイ20−1との間の電波強度は高く、デバイス30a〜30fとゲートウェイ20−2との間の電波強度は低い。したがって、デバイス30a〜30fのそれぞれは、例えば、接続先のゲートウェイ20として、ゲートウェイ20−1を選択する。これにより、ゲートウェイ20−1に、複数のデバイス30a〜30fの接続が集中し、データ量が、ゲートウェイ20−1の処理能力及び無線容量の許容量を超える場合がある。これにより、パケットの衝突が多発し、センサデータの再送回数が増加することにより、通信のデータ量がさらに増加する。再送回数の増加が継続することにより、デバイス30a〜30fの電力消費が増加する。
また、例えば、デバイス30fは、再送回数を抑えるために、ゲートウェイ20−1より電波強度は弱いものの、再送回数が少ないゲートウェイ20−2を接続先に選択し直す。図2の例によると、デバイス30fの電池残量BPfは、デバイス30a〜30eの電池残量BPa〜BPeに対して少ない。したがって、電池残量BPa〜BPeが多いデバイス30a〜30eが、電波強度の高いゲートウェイ20−1と接続し、電池残量BPfが少ないデバイス30fが、電波強度の低いゲートウェイ20−2と接続する状態が発生する。
これにより、電池残量BPfが少ないデバイス30fの電力消費が増加し、デバイス30fの電池残量BPfがさらに減少することにより、デバイス間の電池残量に偏りが生じる。情報処理システム100は、デバイス30fの電池が切れた場合、全てのデバイス30a〜30h(デバイス30ともいう)のセンサデータを収集できなくなる。即ち、デバイス30fの電池残量が少なくなることにより、情報処理システム100の寿命が短くなる。
なお、デバイス30が備える電池の特性に応じて、送信処理にかかる電力消費が異なることがある。また、温度等のデバイス30の環境要因に応じて、電池の劣化度合いがデバイス間で異なることにより、送信処理による電力消費も異なる。このように、デバイス間の再送回数が同様であっても、デバイス間の電池残量に偏りが生じることがある。
[本実施の形態]
したがって、本実施の形態のセンタサーバ10は、いずれかのデバイス30の電池残量(残量情報)が、所定値を下回るか否かを判定し、下回ると判定した場合に、第1のモードから、第2のモードに切り替える。
センタサーバ10は、第1のモードでは、デバイス30が選択するゲートウェイ20を経由して、センサデータ(取得情報)と残量情報とを受信する。以下、各デバイス30が接続先のゲートウェイ20を選択する態様を自律制御と称する。センタサーバ10は、第2のモードでは、各デバイス30から、ゲートウェイ20との通信状態を示す通信情報(制御データ)をさらに受信し、残量情報と通信情報とに基づいて各デバイス30のゲートウェイ20を決定する。そして、センタサーバ10は、決定したゲートウェイ20を各デバイス30に通知し、センサデータと残量情報とを決定したゲートウェイ20を経由して受信する。以下、センタサーバ10が全てのデバイス30の接続先のゲートウェイ20を決定する態様を集中制御と称する。
集中制御によると、センタサーバ10は、電池残量BPfの少ないデバイス30fのみに、電波強度の強いゲートウェイ20−1を割り当てることができる。つまり、センタサーバ10は、デバイス30fの接続先をゲートウェイ20−1に決定し、電池残量BPa〜BPeが多いデバイス30a〜30eの接続先を、別のゲートウェイ20−2に決定する。
これにより、デバイス30fの再送回数を低減させ、データの送信処理にかかる電力消費を抑えることができる。電池残量BPfの少ないデバイス30fの電力消費が低減することにより、デバイス30fの寿命が長くなる。これにより、各デバイス30a〜30hの電池残量に基づく、情報処理システム100の寿命が長期化する。
図3は、本実施の形態のセンタサーバ10の制御の態様を模式的に説明する図である。図3において、図1、図2で示したものと同一のものは、同一の記号で示す。図3は、情報処理システム100が、図1に示したゲートウェイ20−1〜20−3に加えて、ゲートウェイ20−4〜20−8を有する場合を示す。
図3の上の模式図MD1は、自律制御(第1のモード)の態様を示す。模式図MD1によると、いずれのデバイス30a〜30hの電池残量BPa〜BPh(電池残量BPともいう)も十分である。つまり、模式図MD1によると、いずれのデバイス30a〜30hの電池残量BPa〜BPhも、所定値を下回っていない。したがって、センタサーバ10は、自律制御にしたがって、各デバイス30a〜30hが選択したゲートウェイ20−1〜20−8を経由して、センサデータを収集する。
各デバイス30は、例えば、接続可能なゲートウェイ20のうち、電波強度、再送回数のいずれかまたは両方に基づいて、デバイス30にとって最適な接続先のゲートウェイ20を選択する。これにより、デバイス30は、データ送信時のエラーの発生率を抑え、再送処理に伴う電力消費を抑えることができる。図3の模式図MD1の例によると、デバイス30aは、接続可能なゲートウェイ20−1、20−2から最適なゲートウェイ20を選択し、当該ゲートウェイ20を介してセンサデータを送信する。
図3の下の模式図MD2は、集中制御(第2のモード)の態様を示す。図2で説明したとおり、自律制御を採用する場合、デバイス間の電池残量BPの偏りが生じ易い。図3の模式図MD2は、自律制御を継続することにより、デバイス間の電池残量BPの偏りが生じた状態を示す。デバイス30bの電池残量BPb、及び、デバイス30gの電池残量BPgは、所定値を下回っているため、センタサーバ10は、自律制御から集中制御に切り替える。
集中制御によると、センタサーバ10は、全てのデバイス30a〜30hの接続先のゲートウェイ20−1〜20−8を決定する。センタサーバ10は、各デバイス30a〜30hから、接続可能なゲートウェイ20との通信状態を示す通信情報(制御データともいう)をさらに受信し、電池残量BPと制御データとに基づいて各デバイス30a〜30hの接続先のゲートウェイ20を決定する。通信状態を示す通信情報は、デバイス30が接続可能な1つまたは複数のゲートウェイ20との通信の状態を示す。通信情報は、例えば、再送回数等を含む。
図3の模式図MD2の例によると、センタサーバ10は、電池残量BPb、BPgの少ないデバイス30b、30gの接続先を、通信情報に基づいて通信状態の良いゲートウェイ20−2、20−7にそれぞれ優先的に決定する。また、センタサーバ10は、電池残量BPa、BPhの多いデバイス30a、30hの接続先を、ゲートウェイ20−2、20−7とは異なるゲートウェイ20−1、20−8にそれぞれ決定する。
これにより、センタサーバ10は、電池残量BPb、BPgが少ないデバイス30b、30gの電力消費を減少させることができる。したがって、センタサーバ10は、デバイス間の電池残量BPを平滑化し、デバイス30b、30gの寿命を長期化することができる。これにより、センタサーバ10は、デバイス30a〜30hの電池残量BPa〜BPhに基づく情報処理システム100の寿命を長期化することができる。
このように、センタサーバ10は、情報処理システム100の寿命が短くなってしまった場合に、集中制御に切り替えることによってデバイス間の電池残量BPの偏りを平滑化し、情報処理システム100の寿命を長期化できる。または、センタサーバ10は、情報処理システム100の寿命が短くなる傾向にある場合に、集中制御に切り替えることによってデバイス間の電池残量BPの偏りを平滑化し、情報処理システム100の寿命を長期化することができる。寿命の長期化により、電池のメンテナンスにかかるコストを抑えることが可能になる。
なお、集中制御に切り替えることにより、各デバイス30からの制御データの収集処理が生じ、通信のデータ量が増加する。ゲートウェイ20とセンタサーバ10との通信に、データ量の増加に応じて課金が生じる無線回線を採用する場合、通信のデータ量の増加に伴い、通信にかかるコストが増加する。
また、制御データの送信処理によって各デバイス30の電力消費が増加する。また、情報処理システム100が、例えば、膨大な量のゲートウェイ20を有する場合、各デバイス30から制御データの収集処理が生じることに伴う、センタサーバ10の通信処理の負荷は大きい。さらに、センタサーバ10が、デバイス30とゲートウェイ20との全ての組み合わせから最適な組み合わせを算出する処理の負荷も大きい。
これに対し、本実施の形態におけるセンタサーバ10は、いずれかのデバイス30の電池残量BPが所定値を下回った場合にのみ、集中制御に切り替える。これにより、センタサーバ10は、情報処理システム100の寿命を長期化する際の、通信コスト、センタサーバ10の通信処理や算出処理の負荷、及び、電力消費を抑えることができる。また、集中制御に基づくことにより、通信のコストが増加するものの、寿命の長期化により電池のメンテナンスにかかるコストが低減するため、総合的なコストを抑えることが可能になる。
次に、図4、図5にしたがって、本実施の形態におけるセンタサーバ10のハードウェア構成及びソフトウェアブロック図を説明する。また、図8、図9にしたがって、本実施の形態におけるデバイス30のハードウェア構成及びソフトウェアブロック図を説明する。
[センタサーバのハードウェア構成]
図4は、図1に示したセンタサーバ10のハードウェア構成図である。図4に示すセンタサーバ10は、例えば、CPU101、メモリ102、補助記憶装置103、通信インタフェース部104、入力装置105、出力装置106を有する。各部は、バス107を介して相互に接続する。メモリ102は、RAM(Random Access Memory:RAM)201や不揮発性メモリ202等を備える。入力装置105は、例えば、キーボードやマウス等を示し、出力装置106は、例えば、ディスプレイである。
CPU101は、バス107を介してメモリ102等と接続するとともに、センタサーバ10全体の制御を行う。通信インタフェース部104は、アンテナ108を介して、ゲートウェイ20や他の装置(図示せず)と無線通信にしたがってデータの送受信等を行う。アンテナ108は、無線電波による各種データの送受信を行う。なお、通信インタフェース部104は、有線通信にしたがって、ゲートウェイ20や他の装置(図示せず)と接続してもよい。メモリ102のRAM201は、CPU101が処理を行うデータ等を記憶する。補助記憶装置103は、例えば、各種情報を記憶するハードディスク(Hard disk drive:HDD)である。
メモリ102の不揮発性メモリ202は、CPU101が実行するOS(Operating System:OS)のプログラムを格納する領域(図示せず)を備える。また、不揮発性メモリ202は、データ収集プログラム格納領域210と、アプリケーションプログラム格納領域211とを備える。不揮発性メモリ202は、例えば、不揮発性半導体メモリ等を示す。
データ収集プログラム格納領域210のデータ収集プログラム(以下、データ収集プログラム210と称する)は、CPU101の実行によって、各デバイス30からデータを収集する。データ収集プログラム210の処理の詳細は、図5にしたがって説明する。アプリケーションプログラム格納領域211のアプリケーションプログラム(以下、アプリケーションプログラム211と称する)は、CPU101の実行によって、データ収集プログラム210が収集したデータの集計や分析処理を行う。
また、補助記憶装置103は、デバイス情報格納領域310(以下、デバイス情報テーブル310と称する)と、デバイス接続先制御情報格納領域311(以下、デバイス接続先制御情報テーブル311と称する)とを有する。デバイス情報テーブル310は、データ収集プログラム210が収集した各デバイス30のデータを記憶するテーブルである。デバイス情報テーブル310の詳細は、図6にしたがって後述する。デバイス接続先制御情報テーブル311は、各デバイス30の接続指定のゲートウェイ20の情報を記憶するテーブルである。デバイス接続先制御情報テーブル311の詳細は、図7にしたがって後述する。
[センタサーバのソフトウェアブロック]
図5は、図4に示したセンタサーバ10のデータ収集プログラム210のソフトウェアブロックの構成図である。図5において、図4で示したものと同一のものは、同一の記号で示す。
図5に示すように、図4に示したデータ収集プログラム210は、制御モジュール221、接続制御切り替えモジュール222、接続先最適化モジュール223を有する。各モジュール221〜223の処理の詳細は、図15、図16のフローチャート図で後述する。
制御モジュール221は、各モジュール222、223を制御するとともに、各デバイス30からゲートウェイ20を中継して受信するデータをデバイス情報テーブル310(図4)に記憶する。
接続制御切り替えモジュール222は、デバイス情報テーブル310を参照して、自律制御と集中制御との切り替えの有無を判定するとともに、各制御に応じた処理を行う。また、接続制御切り替えモジュール222は、自律制御から集中制御に切り替える場合に、接続先最適化モジュール223に、全てのデバイス30の接続先のゲートウェイ20の最適化を指示する。また、接続制御切り替えモジュール222は、決定した、各デバイス30の接続先のゲートウェイ20の情報を、デバイス接続先制御情報テーブル311(図4)に記憶する。
接続先最適化モジュール223は、接続制御切り替えモジュール222の指示に応答して、デバイス情報テーブル310を参照し、計算処理にしたがって、全てのデバイス30の接続先に指定するゲートウェイ20を決定する。
[デバイス情報テーブル]
図6は、図4、図5に示した、デバイス情報テーブル310の一例を説明する図である。デバイス情報テーブル310は、例えば、デバイス30のMAC(Media Access Control:MAC)アドレスを識別情報として、電池残量、送信頻度、再送回数、及び、電波強度の項目を有する。電池残量は、デバイス30を駆動する電池の残量情報を示す。送信頻度(回/sec)は、1秒当たりのセンサデータの送信回数を示す。再送回数は、所定の期間における、各ゲートウェイ20へのセンサデータの送信エラーに伴う再送回数を示す。電波強度(dBm(decibel-milliwatts))は、各ゲートウェイ20との間の電波強度を示す。
図6に示す、デバイスアドレス「aaaa」のデバイス30は、図1〜図3に示したデバイス30aを示す。また、デバイスアドレス「bbbb」のデバイス30は、デバイス30bを示し、デバイスアドレス「cccc」のデバイス30は、デバイス30cを示す。また、図6に示す、ゲートウェイ「GW1」〜「GW4」は、図3に示したゲートウェイ20−1〜20−4に対応する。図7で後述するデバイス接続先制御情報テーブル311についても同様である。
図6に示すデバイス情報テーブル310によると、デバイス30aの電池残量は90%であって、送信頻度は「0.1」である。即ち、デバイス30aは、10秒に1回、センサデータをセンタサーバ10に送信する。また、デバイス情報テーブル310によると、デバイス30aは、ゲートウェイ「GW1」20−1、ゲートウェイ「GW2」20−2、及びゲートウェイ「GW4」20−4と接続可能である。
また、図6に示すデバイス情報テーブル310によると、デバイス30aからゲートウェイ「GW1」20−1への再送回数は5回、ゲートウェイ「GW2」20−2への再送回数は1回、ゲートウェイ「GW4」20−4への再送回数は10回である。つまり、デバイス30aと接続可能なゲートウェイ20のうち、ゲートウェイ「GW2」20−2への再送回数が一番少ない。
また、図6に示すデバイス情報テーブル310によると、デバイス30aとゲートウェイ「GW1」20−1との電波強度は「−70dBm」である。また、デバイス30aとゲートウェイ「GW2」20−2との電波強度は「−45dBm」、ゲートウェイ「GW4」20−4との電波強度は「−88dBm」である。つまり、デバイス30aと接続可能なゲートウェイ20のうち、ゲートウェイ「GW2」20−2との電波強度が一番高い。
図6に示す、デバイス情報テーブル310は、他のデバイス30b、30cについても、同様にして、電池残量、送信頻度、再送回数、及び、電波強度の情報を有する。図6に示すデバイス情報テーブル310によると、デバイス30毎に、送信頻度が異なる。このように、各デバイス30は、異なる送信頻度にしたがって、異なる種類のセンサデータを送信してもよい。
[デバイス接続先制御情報テーブル]
図7は、図4、図5に示した、デバイス接続先制御情報テーブル311の一例を説明する図である。図7の(A)は、自律制御におけるデバイス接続先制御情報テーブル311aの一例を示し、図7の(B)は、集中制御におけるデバイス接続先制御情報テーブル311bの一例を示す。
デバイス接続先制御情報テーブル311a、311bは、各デバイス30の接続指定のゲートウェイ20の項目を有する。接続指定のゲートウェイ20は、センタサーバ10が決定した、各デバイス30の接続先のゲートウェイ20を示す。
図7の(A)に示すデバイス接続先制御情報テーブル311aは、自律制御を採用する場合のテーブルであるため、接続指定のゲートウェイ20の項目に情報を有しない。一方、図7の(B)に示すデバイス接続先制御情報テーブル311bは、集中制御を採用する場合のテーブルであるため、接続指定のゲートウェイ20の項目に情報を有する。具体的に、デバイス30aの接続指定のゲートウェイ20は、ゲートウェイ「GW1」20−1である。また、デバイス30bの接続指定のゲートウェイ20はゲートウェイ「GW2」20−2、デバイス30cの接続指定のゲートウェイ20はゲートウェイ「GW3」20−3である。
次に、図21、図22にしたがって、本実施の形態におけるゲートウェイ20のハードウェア構成及びソフトウェアブロック図を説明する。
[ゲートウェイのハードウェア構成図]
図21は、図1〜図3に示したゲートウェイ20のハードウェア構成図である。図21に示すゲートウェイ20は、例えば、CPU501、メモリ502、通信インタフェース部503を有する。各部は、バス505を介して相互に接続する。メモリ502は、RAM520や不揮発性メモリ521等を備える。
CPU501は、バス505を介してメモリ502等と接続するとともに、ゲートウェイ20全体の制御を行う。通信インタフェース部503は、アンテナ504を介して、デバイス30やセンタサーバ10とデータの送受信等を行う。アンテナ504は、無線電波による各種データの送受信を行う。なお、通信インタフェース部503は、有線通信にしたがって、センタサーバ10とデータの送受信等を行ってもよい。
メモリ502のRAM520は、CPU501が処理を行うデータ等を記憶する。メモリ502の不揮発性メモリ521は、CPU501が実行するOSのプログラムを格納する領域(図示せず)を備える。また、不揮発性メモリ521は、データ中継プログラム格納領域510を備える。不揮発性メモリ521は、例えば、不揮発性半導体メモリ等を示す。データ中継プログラム格納領域510のデータ中継プログラム(以下、データ中継プログラム510と称する)は、CPU101の実行によって、センサデータの中継処理を実現する。データ中継プログラム510の処理の詳細については、図22にしたがって説明する。
[ゲートウェイのソフトウェアブロック]
図22は、図21に示したゲートウェイ20のソフトウェアブロックの構成図である。図22に示すように、図21に示したデータ中継プログラム510は、制御モジュール511と中継モジュール512を有する。
制御モジュール511は、中継モジュール512の処理を管理する。また、中継モジュール512は、デバイス30からセンタサーバ10を宛先とするデータを受信すると、受信したデータを無線通信または有線通信にしたがってセンタサーバ10に送信する。また、中継モジュール512は、センタサーバ10からデバイス30を宛先とするデータを受信すると、受信したデータを近距離無線通信にしたがってデバイス30に送信する。
次に、デバイス30のハードウェア構成、及び、ソフトウェアブロック図を説明する。図8、図9は、図3に示した複数のデバイス30a〜30hのうち、デバイス30aの例を示すが、他のデバイス30b〜30hについても同様である。
[デバイスのハードウェア構成図]
図8は、図1〜図3に示したデバイス30aのハードウェア構成図である。図8に示すデバイス30aは、例えば、CPU301、メモリ302、センサ303、通信インタフェース部304、バッテリ305を有する。各部は、バス306を介して相互に接続する。メモリ302は、RAM401や不揮発性メモリ402等を備える。
CPU301は、バス306を介してメモリ302等と接続するとともに、デバイス30a全体の制御を行う。センサ303は、水位や、温度、振動等の計測情報を検出する検出手段である。センサ303は、例えば、水位センサ、温度センサ、振動センサ等である。通信インタフェース部304は、アンテナ307を介して、ゲートウェイ20と近距離無線通信にしたがってデータの送受信等を行う。アンテナ307は、無線電波による各種データの送受信を行う。バッテリ305は、デバイス30aを稼働させるための電力を供給する電源手段である。バッテリ305は、例えば、乾電池やリチウムイオン等の充電式電池を示すが、これに限定されるものではない。
メモリ302のRAM401は、CPU301が処理を行うデータ等を記憶する。メモリ302の不揮発性メモリ402は、CPU301が実行するOSのプログラムを格納する領域(図示せず)を備える。また、不揮発性メモリ402は、データ送信プログラム格納領域410、制御情報格納領域411を備える。不揮発性メモリ402は、例えば、不揮発性半導体メモリ等を示す。
データ送信プログラム格納領域410のデータ送信プログラム(以下、データ送信プログラム410と称する)は、CPU101の実行によって、センサデータの取得処理、及び、送信処理を実現する。データ送信プログラム410の処理の詳細については、図9にしたがって説明する。制御情報格納領域411(以下、制御情報テーブル411と称する)は、電池残量、制御データ(送信頻度、再送回数、電波強度)、及び、接続指定のゲートウェイ20の情報を記憶する。制御情報テーブル411の詳細は、図10にしたがって後述する。
[デバイスのソフトウェアブロック]
図9は、図8に示したデバイス30aのソフトウェアブロックの構成図である。図9において、図8で示したものと同一のものは、同一の記号で示す。図9に示すように、図8に示したデータ送信プログラム410は、制御モジュール421、センシングモジュール422、電池残量取得モジュール423、接続先制御切り替えモジュール424、接続先切り替えモジュール425を有する。各モジュール421〜425の処理の詳細については、図17〜図20にしたがって後述する。
制御モジュール421は、各モジュール422〜425を制御する。また、制御モジュール421は、定期的に、センシングモジュール422に対するセンサデータの取得指示や、電池残量取得モジュール423に対する電池の残量情報の取得指示を行う。また、制御モジュール421は、取得したセンサデータ及び残量情報の送信処理を制御し、送信処理の再送回数や残量情報を制御情報テーブル411(図8)に記憶する。
センシングモジュール422は、制御モジュール421の指示に応じて、センサ303(図8)が検出したセンサデータを取得する。電池残量取得モジュール423は、制御モジュール421の指示に応じて、バッテリ305(図8)の電池の残量情報(電池残量ともいう)を取得する。
接続先制御切り替えモジュール424は、センタサーバ10による自律制御と集中制御との切り替え指示に応答して、制御情報テーブル411を更新する。また、接続先制御切り替えモジュール424は、センタサーバ10からの要求に応じて、制御データをセンタサーバ10に送信する。接続先切り替えモジュール425は、制御情報テーブル411を更新するとともに、自律制御の場合に、ゲートウェイ20を選択する。
[制御情報テーブル]
図10は、図8、図9に示した制御情報テーブル411の一例を説明する図である。図10の(A)は、自律制御における制御情報テーブル411aの一例を示し、図10の(B)は、集中制御における制御情報テーブル411bの一例を示す。
制御情報テーブル411a、411bは、電池残量、送信頻度、再送回数、電波強度の情報及び、接続指定のゲートウェイ20の項目を有する。各項目は、図6のデバイス情報テーブル310及び図7のデバイス接続先制御情報テーブル311a、311bで説明したとおりである。
図10の(A)(B)に示す制御情報テーブル411a、411bは、デバイス30aの制御情報テーブル411であるため、図6に示したデバイス情報テーブル310が含むデバイス30aの情報と同様の情報を有する。
また、図10の(A)に示す、自律制御における制御情報テーブル411aは、図7の(A)で説明したデバイス接続先制御情報テーブル311aと同様にして、接続指定のゲートウェイ20の項目に情報を有しない。また、図10の(B)に示す、集中制御における制御情報テーブル411bは、図7の(B)で説明したデバイス接続先制御情報テーブル311bと同様にして、接続指定のゲートウェイ20の項目に情報を有する。
次に、図11にしたがって自律制御から集中制御への切り替え処理の流れを、図12にしたがって集中制御から自律制御への切り替え処理の流れを説明する。
[自律制御から集中制御への切り替え]
図11は、自律制御から集中制御への切り替え処理の流れを説明するシーケンス図である。図11において、図3で示したものと同一のものは、同一の記号で示す。図11は、複数のデバイス30a〜30h(デバイス群30、各デバイス30ともいう)とセンタサーバ10と間の信号の送受信の流れにしたがって、自律制御から集中制御への切り替え処理の流れを説明する。また、各デバイス30はゲートウェイ20を介してセンタサーバ10に情報を送信するが、説明を簡易にするために、図11はゲートウェイ20の図示を省略する。
デバイス群30は、10秒等の所定の時間毎に、センサデータ及び残量情報を取得して送信センサデータを生成し、当該デバイス30が選択したゲートウェイ(図11に図示せず)20を介して、センタサーバ10に送信する(a1)。送信センサデータのフォーマットは、図14にしたがって後述する。
センタサーバ10は、デバイス群30から送信センサデータを受信し、各デバイス30のセンサデータ及び残量情報を取得する(a2)。なお、各デバイス30は、センタサーバ10や他の装置(図示せず)から受信した取得指示に応答して、センサデータ及び残量情報を取得し、センタサーバ10に送信してもよい。
センタサーバ10は、受信したデバイス群30の残量情報に基づいて、電池残量の平均(以下、平均電池残量と称する)を算出する(a3)。そして、センタサーバ10は、いずれかのデバイス30の電池残量が、所定値を下回るか否かを判定し、下回ると判定した場合に自律制御から集中制御に切り替える。所定値は、閾値、または、平均電池残量から所定の度合いを減じた値を示す。つまり、センタサーバ10は、いずれかのデバイス30の電池残量が、閾値を下回るか否か、または、平均電池残量から所定の度合い以上、下回るか否かを判定し、下回ると判定した場合に自律制御から集中制御に切り替える。閾値、及び、所定の度合いは、例えば、予め、検証等にしたがって設定される値を示す。
いずれかのデバイス30の電池残量が閾値を下回る状態は、少なくとも1つのデバイス30の寿命が短くなることにより、情報処理システム100の寿命が所定の期間以下に短くなった場合を示す。また、いずれかのデバイス30の電池残量が、平均電池残量から所定の度合いを減じた値を下回る状態は、少なくとも1つのデバイス30の電池残量が他のデバイス30の電池残量に対して乖離して減少している場合を示す。または、デバイス群30の電池残量の標準偏差が大きい場合を示す。つまり、デバイス間の電池残量に偏りが生じ、情報処理システム100の寿命が短くなる傾向にあることを示す。
したがって、センタサーバ10は、情報処理システム100の寿命が短くなった場合、または、情報処理システム100の寿命が短くなる傾向にある場合に、自律制御から集中制御に切り替える。これにより、センタサーバ10は、電池残量の少ないデバイス30の電力消費を抑制してデバイス間の電池残量を平滑化し、情報処理システム100の寿命を長期化する。なお、センタサーバ10は、いずれかのデバイス30の電池残量が、閾値を下回り、かつ、平均電池残量から所定の度合いを減じた値を下回る場合に、自律制御から集中制御に切り替えてもよい。
本実施の形態における閾値は、「20%」である。また、本実施の形態における所定の度合いは、「25%」である。図6で説明したデバイス情報テーブル310によると、デバイス30aの電池残量は「90%」、デバイス30bの電池残量は「40%」、デバイス30cの電池残量は「80%」である。したがって、いずれのデバイス30a〜30cの電池残量も、閾値「20%」を下回っていない。一方、デバイス30a〜30cの平均電池残量は、「70%(=(90%+40%+80%)÷3)」であって、デバイス30bの電池残量「40%」は、平均電池残量「70%」から所定の度合い「25%」を減算した値「45%」を下回っている。したがって、センタサーバ10は、集中制御に切り替える。
集中制御に切り替える場合、センタサーバ10は、集中制御への切り替えを指示する制御情報通知要求を、ゲートウェイ20を介してデバイス群30に送信する(a4)。制御情報通知要求のフォーマットは、図14にしたがって後述する。デバイス群30は、制御情報通知要求の受信に応答して、制御データ(送信頻度、再送回数、電波強度)を取得する(a5)。そして、各デバイス30は、制御データを含む送信制御データを生成し、各デバイス30が選択したゲートウェイ20を介して、センタサーバ10に送信する(a6)。送信制御データのフォーマットについては、図14にしたがって後述する。
センタサーバ10は、デバイス群の送信制御データを受信すると(a7)、デバイス群30の残量情報と制御データとに基づいて、全てのデバイス30の接続先のゲートウェイ20を最適化し、決定する(a8)。
本実施の形態のセンタサーバ10は、電池残量が他のデバイス(第1のデバイス)30より少ないデバイス(第2のデバイス)30の接続先を、接続可能なゲートウェイ20のうち再送回数が少ないゲートウェイ20に決定する。つまり、センタサーバ10は、電池残量の少ないデバイス30に、再送回数が少ないゲートウェイ20を優先的に割り当てる。これにより、センタサーバ10は、電力残量の少ないデバイス30の電力消費を抑制し、デバイス間の電力残量を平滑化できる。全てのデバイス30の接続先のゲートウェイ20の最適化処理の詳細は、図15で後述する。
なお、センタサーバ10は、電池残量の少ないデバイス30に、距離が近く電波環境の良いゲートウェイ20を優先的に割り当ててもよい。または、センタサーバ10は、電池残量の少ないデバイス30に、再送回数が少ないゲートウェイ20か、距離が近く電波環境の良いゲートウェイ20のいずれかまたは両方を優先的に割り当ててもよい。
センタサーバ10は、決定した各デバイス30の接続先のゲートウェイ20の情報を、デバイス接続先制御情報テーブル311(図7)に記憶し、接続先のゲートウェイ20の情報を含む接続先制御通知をそれぞれデバイス30に送信する(a9)。接続先制御通知のフォーマットについては、図14にしたがって後述する。各デバイス30は、接続先制御通知の受信に応答して、接続先制御通知が含む接続指定のゲートウェイ20の情報を、制御情報テーブル411b(図10)に記憶し、接続先のゲートウェイ20を変更する(a10)。
このように、本実施の形態におけるセンタサーバ10は、いずれかのデバイス30の電池残量が所定値を下回った場合に、自律制御から集中制御に切り替える。これにより、センタサーバ10は、情報処理システム100の寿命の終盤に集中制御に切り替え、寿命を長期化することができる。これにより、電池のメンテナンスにかかるコストを抑えることが可能になる。
また、センタサーバ10は、いずれかのデバイス30の電池残量が、閾値を下回るか否か、または、平均電池残量から所定の度合い以上、下回るか否かを判定し、下回ると判定した場合に自律制御から集中制御に切り替える。これにより、センタサーバ10は、情報処理システム100の寿命が短くなった場合、または、短くなる傾向がある場合を検知し、寿命を長期化することができる。
また、センタサーバ10は、いずれかのデバイス30の電池残量が所定値を下回った場合にのみ、集中制御に切り替える。これにより、寿命の長期化を実現しながら、制御データの収集による通信のコストや電力消費、センタサーバ10の負荷等の増加度合いを抑制可能になる。また、メンテナンスにかかるコストを抑制できることにより、通信及びメンテナンスのコストを含む、総合的なコストを抑えることが可能になる。
[集中制御から自律制御への切り替え]
センタサーバ10は、自律制御から集中制御に切り替えた後、さらに、判定処理を行い、下回っていないと判定した場合、集中制御から自律制御に切り替えてもよい。図11で説明したとおり、いずれかのデバイス30の電池残量が、平均電池残量から所定の度合い以上、下回る状態は、デバイス間の電池残量に偏りが生じ、情報処理システム100の寿命が短くなる傾向にあることを示す。
したがって、平均電池残量から所定の度合い以上下回ったことにより集中制御に切り替えた場合、集中制御を継続することによってデバイス間の電池残量が平滑化され、いずれのデバイス30の電池残量も所定値を下回っていない状態に遷移する場合がある。即ち、平均電池残量から所定の度合い以上、下回っていない状態に遷移する場合がある。したがって、センタサーバ10は、集中制御から自律制御に戻し、集中制御による消費リソース(通信のコストやセンタサーバ10の負荷、デバイス30の電力消費等)を抑制する。
集中制御に基づく消費リソースの増加と、情報処理システム100の寿命の長期化とは、トレードオフの関係にある。つまり、自律制御に基づくことにより、通信コストやセンタサーバ10の負荷、制御データの収集に基づくデバイス30の電力消費等を抑えることができるものの、デバイス間の電池残量の偏りが生じ易く、電池残量に基づく情報処理システム100の寿命が短くなる。
一方、集中制御に基づくことにより、情報処理システム100の寿命を長期化できるものの、通信コストやセンタサーバ10の負荷、電力消費等が増加する。なお、デバイス30とゲートウェイ20との間の無線環境の変化に追従するために、高頻度に、全てのデバイス30の接続先のゲートウェイ20を決定する場合がある。これにより、さらに、集中制御に基づく消費リソースが増加する。
したがって、本実施の形態におけるセンタサーバ10は、デバイス群30の電池残量の変化に応じて、さらに、集中制御から自律制御に切り替える。つまり、センタサーバ10は、電池残量の変化に応じて、自律制御と集中制御とを適宜、切り替える。これにより、センタサーバ10は、効率的に、情報処理システム100の寿命と、通信コスト等との最適化を実現できる。
図12は、集中制御から自律制御への切り替え処理の流れを説明するシーケンス図である。図12において、図11で示したものと同一のものは、同一の記号で示す。図11と同様にして、図12はゲートウェイ20の図示を省略する。
デバイス群30は、定期的に、センサデータ及び残量情報を取得して送信センサデータを生成し、センタサーバ10が決定したゲートウェイ(図12に図示せず)20を介して、センタサーバ10に送信する(a11)。
センタサーバ10は、デバイス群30から送信センサデータを受信し、各デバイス30のセンサデータ及び残量情報を取得する(a12)。センタサーバ10は、受信したデバイス群30の残量情報に基づいて、平均電池残量を算出する(a13)。そして、図11で説明したとおり、センタサーバ10は、いずれかのデバイス30の電池残量が、閾値を下回るか否か、または、平均電池残量から所定の度合い以上下回るか否かを判定し、下回ると判定した場合は継続して、集中制御を採用する。一方、下回っていないと判定した場合、センタサーバ10は、集中制御から自律制御に切り替える。
図13は、集中制御に切り替えた後のデバイス情報テーブル310−1を示す図である。図13に示すデバイス情報テーブル310−1は、図6に示したデバイス情報テーブル310の、ある期間経過後のテーブルを示す。
デバイス30aの電池残量は、図6のデバイス情報テーブル310では「90%」であるのに対し、図13のデバイス情報テーブル310−1では「70%」に減少している。また、デバイス30bの電池残量は、図6のデバイス情報テーブル310では「40%」であるのに対し、図13のデバイス情報テーブル310−1では「30%」に減少している。また、デバイス30cの電池残量は、図6のデバイス情報テーブル310では「80%」であるのに対し、図13のデバイス情報テーブル310−1では「50%」に減少している。
図13のデバイス情報テーブル310−1に示すように、集中制御に基づくことにより、電池残量の少ないデバイス30bの電池の減少度合いが小さく、デバイス間の電池残量が平滑化している。したがって、いずれのデバイス30a〜30cの電池残量も、平均電池残量「50%(=(70%+30%+50%)÷3)」から所定の度合い「25%」以上、下回っていない。また、いずれのデバイス30a〜30cの電池残量も、閾値「20%」を下回っていない。したがって、センタサーバ10は、集中制御から自律制御に切り替える。
図12に戻り、自律制御に切り替える場合、センタサーバ10は、自律制御への切り替えを指示する接続先制御通知を、各デバイス30に送信する(a14)。接続先制御通知のフォーマットについては、図14にしたがって後述する。各デバイス30は、接続先制御通知の受信に応答して、制御情報テーブル411b(図10)に記憶した、接続指定のゲートウェイ20の情報を削除する(a15)。これにより、各デバイス30は、デバイス30が選択したゲートウェイ20を介して、センサデータ及び残量情報をセンタサーバ10に送信する。
なお、センタサーバ10は、集中制御から自律制御に戻した後、再び、いずれかのデバイス30の電池残量が所定値を下回った場合には、図11で説明したように、自律制御から集中制御に再度、切り替える。このように、センタサーバ10は、情報処理システム100と、通信のコストやセンタサーバ10の負荷、電力消費等とを、容易に最適化できる。
[データのフォーマット]
図14は、図11、図12で説明した、送信センサデータ、制御情報通知要求、送信制御データ、及び、接続先制御通知のフォーマットの一例を示す図である。
図14の(A)は、送信センサデータのフォーマットの一例を示す。図14の(A)に示す送信センサデータは、ヘッダ部(図示せず)に、送信元アドレスMa1、宛先アドレスMa2、及び、残量情報Ma3を有し、ボディ部(図示せず)にセンサデータMa4を有する。送信元アドレスMa1はデバイス30のアドレスを示し、宛先アドレスMa2はセンタサーバ10のアドレスを示す。残量情報Ma3及びセンサデータMa4は、前述したとおりである。
図14の(B)は、制御情報通知要求のフォーマットの一例を示す。制御情報通知要求は、ヘッダ部(図示せず)に、送信元アドレスMb1、宛先アドレスMb2を有し、ボディ部(図示せず)に制御情報通知要求指示Mb3を有する。送信元アドレスMb1はセンタサーバ10のアドレスを示し、宛先アドレスMb2はデバイス30のアドレスを示す。制御情報通知要求指示Mb3は、制御データのセンタサーバ10への送信指示を示す。
図14の(C)は、送信制御データのフォーマットの一例を示す。送信制御データは、ヘッダ部(図示せず)に、送信元アドレスMc1、宛先アドレスMc2を有し、ボディ部(図示せず)に、送信頻度Mc3、再送回数Mc4、電波強度Mc5を有する。送信元アドレスMc1はデバイス30のアドレスを示し、宛先アドレスMc2はセンタサーバ10のアドレスを示す。送信頻度Mc3、再送回数Mc4、電波強度Mc5は、図6で説明したとおりである。
図14の(D)は、接続先制御通知のフォーマットの一例を示す。接続先制御通知は、ヘッダ部(図示せず)に、送信元アドレスMd1、宛先アドレスMd2を有し、ボディ部(図示せず)に接続先制御指示Md3を有する。送信元アドレスMd1はセンタサーバ10のアドレスを示し、宛先アドレスMd2はデバイス30のアドレスを示す。接続先制御指示Md3は、自律制御から集中制御への切り替え時は、接続指定のゲートウェイ20の情報を有し、集中制御から自律制御への切り替え時は、接続指定のゲートウェイ20の情報を有しない。
次に、センタサーバ10の処理の詳細を、図15〜図16のフローチャート図にしたがって説明する。また、デバイス30の処理の詳細を図17〜図20のフローチャート図にしたがって説明する。図15〜図16では、図6、図13に示したデバイス情報テーブル310、及び、図7に示したデバイス接続先制御情報テーブル311にしたがって説明する。
[センタサーバ:制御の切り替え処理]
図15は、図5に示したセンタサーバ10のデータ収集プログラム210の、制御の切り替え判定処理の流れを説明するフローチャート図である。
S11:データ収集プログラム210の接続制御切り替えモジュール222は、制御モジュール221の指示に応答して、デバイス情報テーブル310(図6)から、全てのデバイス30の電池残量を取得する。また、接続制御切り替えモジュール222は、全てのデバイス30の電池残量の平均値を、平均電池残量として算出する。
S12:接続制御切り替えモジュール222は、いずれかのデバイス30の電池残量が所定値を下回ったか否かを判定する。具体的に、接続制御切り替えモジュール222は、いずれかのデバイス30の電池残量が閾値を下回る、または、工程S11で算出した平均電池残量から所定の度合い以上下回るか否かを判定する。
S13:工程S12の判定の結果、下回ると判定した場合(S12のYes)、接続制御切り替えモジュール222は、全てのデバイス30に、制御情報通知要求(図14の(B))を送信する。接続制御切り替えモジュール222は、自律制御を採用していた場合は、自律制御から集中制御に切り替え、既に集中制御を採用している場合は、継続して集中制御を採用する。
図11で説明したとおり、図6で説明したデバイス情報テーブル310によると、デバイス30bの電池残量「40%」は、平均電池残量「70%」から所定の度合い「25%」を減算した値「45%」を下回る(S12のYes)。したがって、接続制御切り替えモジュール222は、全てのデバイス30a〜30cに、制御情報通知要求(図14の(B))を送信する(S13)。各デバイス30a〜30cは、制御情報通知要求の受信に応答して、送信制御データ(図14の(C))をセンタサーバ10に送信する。デバイス30a〜30cの処理の詳細は、図19のフローチャート図にしたがって後述する。
S14:接続制御切り替えモジュール222は、デバイス30から、送信制御データ(図14の(C))を受信し、送信制御データが含む制御データをデバイス情報テーブル310(図6)に格納する。そして、接続制御切り替えモジュール222は、全てのデバイス30の接続先のゲートウェイ20の最適化処理を、接続先最適化モジュール223に指示する。
継続して集中制御を採用する場合、接続制御切り替えモジュール222は、再び、全てのデバイス30の接続先のゲートウェイ20の最適化処理を、接続先最適化モジュール223に指示する。これにより、定期的に、各デバイス30の接続先のゲートウェイ20を、電波環境の変化に応じた最適なゲートウェイ20に更新することが可能になる。
接続先最適化モジュール223は、デバイス情報テーブル310(図6)を参照して、各デバイス30の電池残量及び制御データを取得し、計算処理にしたがって、全てのデバイス30の接続先のゲートウェイ20を決定する。接続先最適化モジュール223は、電池残量が少ないデバイス30の接続先のゲートウェイ20を再送回数の少ないゲートウェイ20に優先的に決定することにより、全てのデバイス30の接続先のゲートウェイ20を最適化する。
(最適化処理)
具体的に、本実施の形態では、接続先最適化モジュール223は、デバイス30とゲートウェイ20の組み合わせパターンを複数、抽出する。次に、接続先最適化モジュール223は、電池残量、送信頻度、再送回数に基づいて、各組み合わせパターンにおける、各デバイス30の稼働時間を算出する。そして、接続先最適化モジュール223は、電池残量の少ないデバイス30の稼働時間が長くなる組み合わせパターンを選択し、各デバイス30の接続先のゲートウェイ20を決定する。
再送回数が大きくなるほど、稼働時間は短くなる。したがって、電池残量の少ないデバイス30の稼働時間が長くなる組み合わせパターンは、電池残量の少ないデバイス30の再送回数が少なくなる組み合わせパターンを示す。接続先最適化モジュール223は、例えば、式1「b/p/(t+r)」にしたがって、各デバイス30の稼働時間(秒)を算出する。
式1における値「b%」は、バッテリ305の蓄電可能容量における、1回のセンサデータの送信処理の電力消費の割合を示し、値「p%」は、バッテリ305の電池残量を示す。したがって、部分式「b/p」は、電池残量が「0%」になるまでの所要送信回数を示す。また、式1における値「t(回/sec)」は、データの収集頻度を示し、値「r(回/sec)」は、1秒当たりの、送信処理に伴う再送頻度を示す。したがって、部分式「(t+r)」は、再送を含む、1秒当たりの送信頻度を示す。
つまり、式1は、電池残量が「0%」になるまでの所要送信回数「b/p」を、1秒当たりの再送を含む送信頻度「(t+r)」にしたがって除算することにより、電池残量が「0%」になるまでの所要時間、即ち、稼働時間(秒)を算出する式である。
接続先最適化モジュール223は、例えば、式2「同時接続数×(再送回数/最大同時接続数)」にしたがって、1回の送信処理当たりの再送頻度「r(回/sec)」を算出する。式2は、同時接続数が複数の場合における再送頻度の算出式を示し、同時接続数に応じて、再送回数を線形増加させることにより、再送頻度を算出する式である。
式2における最大同時接続数は、デバイス30の接続候補のゲートウェイ20が接続可能なデバイス30の総数を示す。また、式2における同時接続数は、組み合わせパターンにおける、接続候補のゲートウェイ20と接続するデバイス30の総数を示す。再送回数は、最大同時接続数の状況下の再送回数を示す。
例えば、接続候補のゲートウェイ20の最大同時接続数が値「10」、同時接続数が値「3」、再送回数が「5」回の場合、接続先最適化モジュール223は、再送頻度「1.5{=3×(5/10)}(回/sec)」を算出する。再送頻度「1.5(回/sec)」は、1秒当たり1.5回の再送が生じ得ることを示す。また、接続候補のゲートウェイ20の最大同時接続数が値「10」、同時接続数が値「8」、再送回数が「5」回の場合、接続先最適化モジュール223は、再送頻度「4{=8×(5/10)}(回/sec)」を算出する。
なお、接続候補のゲートウェイ20と未接続であるため再送回数が不明の場合、接続先最適化モジュール223は、接続候補のゲートウェイ20との電波強度が同程度のゲートウェイ20への再送回数を、再送回数として取得する。
なお、最適化処理の方法は、上記の方法に限定されるものではない。接続先最適化モジュール223は、デバイス間の稼働時間のばらつきが少なくなるように、各デバイス30の接続先のゲートウェイ20を決定してもよい。また、接続先最適化モジュール223は、稼働時間に基づくことなく、電池残量の少ないデバイス30に再送回数が少ないゲートウェイ20を割り当てることによって、最適化処理を行ってもよい。または、接続先最適化モジュール223は、電池残量の少ないデバイス30に再送回数が少なく電波強度の高いゲートウェイ20を割り当てることによって、最適化処理を行ってもよい。
S15:工程S14の後、接続制御切り替えモジュール222は、デバイス接続先制御情報テーブル311(図7)を参照し、自律制御を採用しているか否かを判定する。接続制御切り替えモジュール222は、デバイス接続先制御情報テーブル311が接続指定のゲートウェイ20の情報を有する場合、集中制御を採用している旨、判定し、有していない場合、自律制御を採用している旨、判定する。
S16:集中制御を採用していると判定した場合(S15のNo)、接続制御切り替えモジュール222は、接続先のゲートウェイ20が変更になるデバイス30を抽出する。即ち、接続制御切り替えモジュール222は、継続して集中制御を採用する場合、接続指定のゲートウェイ20が変化したデバイス30を抽出する。
S17:接続制御切り替えモジュール222は、工程S16で抽出したデバイス30を対象として、接続指定のゲートウェイ20の情報を含む接続先制御通知(図14の(D))を送信する。これにより、通信のデータ量を抑制することが可能になる。一方、自律制御を採用していると判定した場合(S15のYes)、接続制御切り替えモジュール222は、全てのデバイス30を対象として、工程S14で決定した、接続指定のゲートウェイ20の情報を含む接続先制御通知(図14の(D))を送信する。
接続制御切り替えモジュール222は、決定した、全てのデバイス30の接続先のゲートウェイ20を、デバイス接続先制御情報テーブル311b(図7)に更新する。図7の(B)のデバイス接続先制御情報テーブル311bによると、電池残量の少ないデバイス30bの接続先は、再送回数の少ないゲートウェイ「GW2」20−2である。また、他のデバイス30a、30cの接続先は、ゲートウェイ「GW2」20−2以外のゲートウェイ20である。つまり、デバイス30bのみが、再送回数の少ないゲートウェイ「GW2」20−2と接続する。
これにより、接続制御切り替えモジュール222は、デバイス30bの電力消費を抑え、デバイス30bの寿命を長期化できる。つまり、デバイス間の電池残量を平滑化し、情報処理システム100の寿命を長期化することが可能になる。なお、図7の例では、デバイス30bのみが、再送回数の少ないゲートウェイ「GW2」20−2と接続するがこの例に限定されるものではない。例えば、デバイス30bの再送回数が増加しないのであれば、他のデバイス30a、30cがゲートウェイ「GW2」20−2と接続してもよい。
S18:工程S12の判定によって、いずれのデバイス30の残量情報も閾値を下回っていない、かつ、平均電池残量から所定の度合い以上下回っていないと判定した場合(S12のNo)、接続制御切り替えモジュール222は、自律制御を採用する。接続制御切り替えモジュール222は、デバイス接続先制御情報テーブル311(図7)を参照し、自律制御を採用していたか否かを判定する。
S19:自律制御を採用していなかった場合(S18のNo)、即ち、集中制御を採用していた場合、接続制御切り替えモジュール222は、集中制御から自律制御に切り替える。図13で説明したデバイス情報テーブル310によると、前述したとおり、いずれのデバイス30a〜30cの電池残量も、閾値「20%」、及び、平均電池残量「50%」から所定の度合い「25%」を減算した値「25%」を下回っていない(S12のNo)。したがって、接続制御切り替えモジュール222は、集中制御から自律制御に切り替える旨、判定する。
具体的に、接続制御切り替えモジュール222は、全てのデバイス30に、接続指定のゲートウェイ20の情報を有してない接続先制御通知(図14の(D))を送信する。各デバイス30は、接続先制御通知に応答して、図10に示す制御情報テーブル411の接続指定のゲートウェイ20の情報を削除する。
一方、自律制御を採用していた場合(S18のYes)、即ち、自律制御を継続して採用する場合、接続制御切り替えモジュール222は、工程S19の処理を行わない。
[センタサーバ:送信センサデータ、送信制御データの受信処理]
図16は、図5に示したデータ収集プログラム210の、送信センサデータ及び送信制御データの受信処理の流れを説明するフローチャート図である。図16の(A)は、送信センサデータの受信処理を説明するフローチャート図である。
S21:制御モジュール221は、送信センサデータ(図14の(A))を受信すると、ヘッダ部が含む残量情報を取得する。そして、制御モジュール221は、残量情報を、送信元のデバイス30のMACアドレスを識別情報として、デバイス情報テーブル310(図6)に記憶する。
S22:制御モジュール221は、送信センサデータのボディ部が含むセンサデータを取得し、アプリケーションプログラム211に送信する。アプリケーションプログラム211は、センサデータの処理を開始する。アプリケーションプログラム211は、センサデータに基づいて分析や集計処理を行う。
なお、送信センサデータ(図14の(A))は、ヘッダ部に残量情報を有するが、ボディ部に残量情報を有していてもよい。制御モジュール221は、ボディ部が含む残量情報を取得し、残量情報を除外したボディ部のデータをアプリケーションプログラム211に送信してもよい。
図16の(B)は、送信制御データの受信処理を説明するフローチャート図である。
S31:制御モジュール221は、送信制御データ(図14の(C))を受信すると、送信制御データが含む制御データ(送信頻度、再送回数、電波強度)を取得する。そして、制御モジュール221は、制御データを、送信元のデバイス30のMACアドレスを識別情報として、デバイス情報テーブル310(図6)に記憶する。
[デバイス:センサデータの送信処理]
図17は、図9に示したデバイス30のデータ送信プログラム410の、センサデータの送信処理の流れを説明するフローチャート図である。
S41:データ送信プログラム410の制御モジュール421は、送信頻度に応じた所定の時間毎に、センシングモジュール422に指示し、センサ303が観測したセンサデータを取得する。
S42:データ送信プログラム410の制御モジュール421は、送信頻度に応じた所定の時間毎に、電池残量取得モジュール423に指示し、バッテリ305の残量情報を取得する。
S43:制御モジュール421は、工程S41で取得したセンサデータ、及び、工程S42で取得した残量情報を含む、送信センサデータ(図14の(A))を生成する。
S44:制御モジュール421は、生成した送信センサデータを、センタサーバ10に送信する。制御情報テーブル411(図10)が接続指定のゲートウェイ20の情報を有する場合、制御モジュール421は、接続指定のゲートウェイ20を介して、送信データをセンタサーバ10に送信する。一方、制御情報テーブル411が接続指定のゲートウェイ20の情報を有していない場合、制御モジュール421は、接続先のゲートウェイ20を選択し、当該ゲートウェイ20を介して送信データをセンタサーバ10に送信する。
S45:制御モジュール421は、送信時のMAC層における再送回数を、制御情報テーブル411(図10)に再送回数として記憶する。また、制御モジュール421は、送信頻度を制御情報テーブル411に記憶する。
[デバイス:接続先制御通知の受信時の処理]
図18は、図9に示したデバイス30のデータ送信プログラム410の、接続先制御通知の受信に応答した制御切り替え処理の流れを説明するフローチャート図である。
S51:制御モジュール421は、接続先制御通知(図14の(D))の受信に応答して、接続先制御切り替えモジュール424に、接続先制御の切り替えを指示する。接続先制御切り替えモジュール424は、接続先制御通知の接続先制御指示が、接続先のゲートウェイ20の情報を有するか否かに基づいて、自律制御への切り替えを指示する通知であるか否かを判定する。
S52:自律制御への切り替えを指示する通知である場合(S51のYes)、接続先制御切り替えモジュール424は、制御情報テーブル411(図10)が有する接続指定のゲートウェイ20の情報を削除する。
S53:一方、集中制御を指示する通知である場合(S51のNo)、接続先制御切り替えモジュール424は、接続先制御通知が含む接続指定のゲートウェイ20の情報を制御情報テーブル411(図10)に記憶(更新)する。
S54:制御情報テーブル411の更新に応じて、接続先制御切り替えモジュール424は、接続先を更新後の接続指定のゲートウェイ20に切り替える。
[デバイス:制御情報通知要求受信時の処理]
図19は、図9に示したデバイス30のデータ送信プログラム410の、制御情報通知要求受信時の処理の流れを説明するフローチャート図である。
S61:接続先制御切り替えモジュール424は、制御情報通知要求(図14の(B))の受信に応答して、制御情報テーブル411(図10)を参照し、周囲のゲートウェイ20との電波強度を取得する。
S62:接続先制御切り替えモジュール424は、制御情報テーブル411(図10)を参照し、周囲のゲートウェイ20への再送回数を取得する。
S63:接続先制御切り替えモジュール424は、制御情報テーブル411(図10)を参照し、ゲートウェイ20へのセンサデータの送信頻度を取得する。
S64:接続先制御切り替えモジュール424は、工程S61〜S63で取得した制御データ(電波強度、再送回数、送信頻度)を含む送信制御データ(図14の(C))を生成する。
S65:接続先制御切り替えモジュール424は、制御情報テーブル411(図10)が接続指定のゲートウェイ20の情報を有する場合、当該ゲートウェイ20の情報を取得し、ゲートウェイ20の情報を有していない場合、ゲートウェイ20を選択する。
S66:接続先制御切り替えモジュール424は、工程S65で取得または選択したゲートウェイ20を介して、工程S64で生成した送信制御データ(図14の(C))を、センタサーバ10に送信する。
[デバイス:接続先切り替え処理]
図20は、図9に示したデバイス30のデータ送信プログラム410の、接続先切り替え処理の流れを説明するフローチャート図である。
S71:データ送信プログラム410の接続先切り替えモジュール425は、定期的に、制御情報テーブル411(図10)が接続指定のゲートウェイ20の情報を記憶していないかを判定する。
S72:接続先のゲートウェイ20を記憶していない場合(S71のYes)、即ち、自律制御に基づく場合、接続先切り替えモジュール425は、接続中のゲートウェイ20との電波環境が悪化したか否かを判定する。例えば、接続先切り替えモジュール425は、電波強度に基づいて、電波環境が悪化したか否かを判定する。
S73:接続中のゲートウェイ20の電波環境が悪化した場合(S72のYes)、接続先切り替えモジュール425は、周囲のゲートウェイ20との電波強度等の電波環境を測定し、制御情報テーブル411a(図10)に記憶する。なお、接続先切り替えモジュール425は、電波環境を制御情報テーブル411aに記憶せずに、センタサーバ10からの制御情報通知要求の受信時に、電波環境を測定してもよい。
S74:接続先切り替えモジュール425は、電波環境の良いゲートウェイ20を接続先のゲートウェイ20として選択し、接続する。例えば、接続先切り替えモジュール425は、電波強度、再送回数のいずれかまたは両方に基づいてゲートウェイ20を選択する。
S75:工程S71の判定の結果、接続指定のゲートウェイ20の情報を記憶している場合(S71のNo)、即ち、集中制御に基づく場合、接続先切り替えモジュール425は、周囲のゲートウェイ20との電波環境を測定する。そして、接続先切り替えモジュール425は、測定した電波環境を制御情報テーブル411b(図10)に記憶する。
なお、工程S72の判定の結果、接続中のゲートウェイ20との電波環境が悪化していない場合(S72のNo)、接続先切り替えモジュール425は、工程S73、S74の処理を行わない。
[他の実施の形態]
図15のフローチャート図によると、接続制御切り替えモジュール222は、いずれかのデバイス30の電池残量が所定値を下回ると判定する都度(S12のYes)、全てのデバイス30の接続先のゲートウェイ20の最適化処理を行う(S13、S14)。即ち、接続制御切り替えモジュール222は、集中制御を継続する場合、デバイス群30の送信センサデータを受信する間隔毎に、最適化処理を行う。
したがって、特に、デバイス群30の送信センサデータの送信間隔が短い場合、通信コストやセンタサーバ10の負荷が高くなる。したがって、接続制御切り替えモジュール222は、送信センサデータの受信頻度よりも、少ない頻度にしたがって、最適化処理を行ってもよい。例えば、接続制御切り替えモジュール222は、下回ると判定した場合に、前回の最適化処理から所定の期間、経過している場合にのみ、各デバイス30に制御情報通知要求を送信し、最適化処理を行う。
これにより、集中制御に伴う、通信コストやセンタサーバ10の負荷等の増加度合いを抑制することが可能になる。したがって、センタサーバ10は、より効果的に、各デバイス30の制御データの送信処理によるコストの増加を抑えながら、情報処理システム100の寿命を長期化することができる。
なお、本実施の形態は、複数のデバイス30を経由する経路を含むマルチホップ環境における経路生成にも適用可能である。センタサーバ10は、経路のうち、ゲートウェイ20と、当該ゲートウェイ20と直接、接続するデバイス30との部分経路の生成処理に、本実施の形態の処理を適用する。これにより、デバイス30の電力消費を抑えながら、情報処理システム100を長寿命化する、マルチホップ環境の部分経路を生成可能になる。
以上の実施の形態をまとめると、次の付記のとおりである。
(付記1)
複数のデバイスから、前記デバイスが取得した取得情報と前記デバイスの電池の残量を示す残量情報とを、中継装置を経由して受信する処理部と、
受信した前記取得情報と前記残量情報とを記憶する記憶部と、を有し、
前記処理部は、いずれかのデバイスの前記残量情報が所定値を下回る場合に、前記デバイスが選択する中継装置を経由して前記取得情報と前記残量情報とを受信する第1のモードから、前記複数のデバイスから1つまたは複数の前記中継装置との通信状態を示す通信情報をさらに受信し、前記残量情報と前記通信情報とに基づいて前記複数のデバイスの中継装置を決定し、決定した前記中継装置を前記複数のデバイスに通知し、前記取得情報と前記残量情報とを、決定した前記中継装置を経由して受信する、第2のモードに切り替える、
情報処理装置。
(付記2)
付記1において、
前記処理部は、いずれかのデバイスの前記残量情報が前記所定値を示す閾値を下回るか、または、いずれかのデバイスの前記残量情報が、前記複数のデバイスの残量情報の平均から所定の度合いを減じた前記所定値を下回る場合に、前記第1のモードから前記第2のモードに切り替える、
情報処理装置。
(付記3)
付記1または2において、
前記処理部は、前記第2のモードに切り替えた後、前記残量情報が前記所定値を下回らなくなった場合に、前記第2のモードから前記第1のモードに切り替える、
情報処理装置。
(付記4)
付記1乃至3のいずれかにおいて、
前記処理部は前記第2のモードにおいて、前記デバイスから前記中継装置への無線通信の再送回数を含む前記通信情報をさらに受信し、前記残量情報が第1のデバイスより少ない第2のデバイスの前記中継装置を、前記第2のデバイスが接続する複数の前記中継装置のうち前記再送回数が少ない前記中継装置に決定する、
情報処理装置。
(付記5)
付記1乃至4のいずれかにおいて、
前記処理部は前記第1のモードにおいて、前記デバイスが、1つまたは複数の前記中継装置との無線通信の電波強度、前記デバイスから前記中継装置への無線通信の再送回数のいずれかまたは両方に基づいて選択する前記中継装置を介して、前記取得情報と前記残量情報とを受信する、
情報処理装置。
(付記6)
付記3において、
前記処理部は、前記第2のモードに切り替えた後、前記残量情報が前記所定値を下回る場合に前記第2のモードの処理を行う、
情報処理装置。
(付記7)
複数のデバイスから、前記デバイスが取得した取得情報と前記デバイスの電池の残量を示す残量情報とを、前記デバイスが選択する中継装置を経由して受信する第1のモードを実行し、
いずれかのデバイスの前記残量情報が所定値を下回る場合に、前記第1のモードから、前記複数のデバイスから1つまたは複数の前記中継装置との通信状態を示す通信情報をさらに受信し、前記残量情報と前記通信情報とに基づいて前記複数のデバイスの中継装置を決定し、決定した前記中継装置を前記複数のデバイスに通知し、前記取得情報と前記残量情報とを、決定した前記中継装置を経由して受信する、第2のモードに切り替える、
処理をコンピュータに実行させる制御プログラム。
(付記8)
付記7において、
前記切り替えは、いずれかのデバイスの前記残量情報が前記所定値を示す閾値を下回るか、または、いずれかのデバイスの前記残量情報が、前記複数のデバイスの残量情報の平均から所定の度合いを減じた前記所定値を下回る場合に、前記第1のモードから前記第2のモードに切り替える、
制御プログラム。
(付記9)
付記7または8において、
前記切り替えは、前記第2のモードに切り替えた後、前記残量情報が前記所定値を下回らなくなった場合に、前記第2のモードから前記第1のモードに切り替える、
制御プログラム。
(付記10)
付記7乃至9のいずれかにおいて、
前記切り替えは、前記第2のモードにおいて、前記デバイスから前記中継装置への無線通信の再送回数を含む前記通信情報をさらに受信し、前記残量情報が第1のデバイスより少ない第2のデバイスの前記中継装置を、前記第2のデバイスが接続する複数の前記中継装置のうち前記再送回数が少ない前記中継装置に決定する、
制御プログラム。
(付記11)
付記7乃至10のいずれかにおいて、
前記切り替えは、前記第1のモードにおいて、前記デバイスが、1つまたは複数の前記中継装置との無線通信の電波強度、前記デバイスから前記中継装置への無線通信の再送回数のいずれかまたは両方に基づいて選択する前記中継装置を介して、前記取得情報と前記残量情報とを受信する、
制御プログラム。
(付記12)
付記9において、
前記切り替えは、前記第2のモードに切り替えた後、前記残量情報が前記所定値を下回る場合に前記第2のモードの処理を行う、
制御プログラム。
(付記13)
処理部が、複数のデバイスから、前記デバイスが取得した取得情報と前記デバイスの電池の残量を示す残量情報とを、前記デバイスが選択する中継装置を経由して受信する第1のモードを実行し、
処理部が、いずれかのデバイスの前記残量情報が所定値を下回る場合に、前記第1のモードから、前記複数のデバイスから1つまたは複数の前記中継装置との通信状態を示す通信情報をさらに受信し、前記残量情報と前記通信情報とに基づいて前記複数のデバイスの中継装置を決定し、決定した前記中継装置を前記複数のデバイスに通知し、前記取得情報と前記残量情報とを、決定した前記中継装置を経由して受信する、第2のモードに切り替える、
情報処理装置の制御方法。
(付記14)
付記13において、
前記切り替えは、いずれかのデバイスの前記残量情報が前記所定値を示す閾値を下回るか、または、いずれかのデバイスの前記残量情報が、前記複数のデバイスの残量情報の平均から所定の度合いを減じた前記所定値を下回る場合に、前記第1のモードから前記第2のモードに切り替える、
情報処理装置の制御方法。
(付記15)
付記13または14において、
前記切り替えは、前記第2のモードに切り替えた後、前記残量情報が前記所定値を下回らなくなった場合に、前記第2のモードから前記第1のモードに切り替える、
情報処理装置の制御方法。
(付記16)
付記13乃至15のいずれかにおいて、
前記切り替えは、前記第2のモードにおいて、前記デバイスから前記中継装置への無線通信の再送回数を含む前記通信情報をさらに受信し、前記残量情報が第1のデバイスより少ない第2のデバイスの前記中継装置を、前記第2のデバイスが接続する複数の前記中継装置のうち前記再送回数が少ない前記中継装置に決定する、
情報処理装置の制御方法。
(付記17)
付記13乃至16のいずれかにおいて、
前記切り替えは、前記第1のモードにおいて、前記デバイスが、1つまたは複数の前記中継装置との無線通信の電波強度、前記デバイスから前記中継装置への無線通信の再送回数のいずれかまたは両方に基づいて選択する前記中継装置を介して、前記取得情報と前記残量情報とを受信する、
情報処理装置の制御方法。
(付記18)
付記15において、
前記切り替えは、前記第2のモードに切り替えた後、前記残量情報が前記所定値を下回る場合に前記第2のモードの処理を行う、
情報処理装置の制御方法。
(付記19)
取得情報と電池の残量を示す残量情報とをそれぞれ送信する複数のデバイスと、
前記複数のデバイス受信した前記取得情報と前記残量情報を、中継して情報処理装置に送信する複数の中継装置と、
前記取得情報と前記残量情報とを受信する前記情報処理装置と、を有し
前記情報処理装置は、
受信した前記取得情報と前記残量情報とを記憶する記憶部と、
いずれかのデバイスの前記残量情報が所定値を下回る場合に、前記デバイスが選択する中継装置を経由して前記取得情報と前記残量情報とを受信する第1のモードから、前記複数のデバイスから1つまたは複数の前記中継装置との通信状態を示す通信情報をさらに受信し、前記残量情報と前記通信情報とに基づいて前記複数のデバイスの中継装置を決定し、決定した前記中継装置を前記複数のデバイスに通知し、前記取得情報と前記残量情報とを、決定した前記中継装置を経由して受信する、第2のモードに切り替える処理部と、を有する、
情報処理システム。
(付記20)
付記19において、
前記情報処理装置の前記処理部は、前記第2のモードに切り替えた後、前記残量情報が前記所定値を下回らなくなった場合に、前記第2のモードから前記第1のモードに切り替える、
情報処理システム。