〔実施形態1〕
以下、本発明の実施形態1について図面を参照して説明する。以下の説明では同一の部材には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図1は、本発明の実施形態1におけるデータ処理システムの全体概要の一例を示す図である。図1に示されるように、データ処理システム1は、情報処理装置としてのサーバ200と、複数のセンサ100とを含む。サーバ200は、複数のセンサ100それぞれと通信が可能である。通信は、無線回線を利用してもよいし、有線回線を利用してもよい。ここでは、無線回線を利用する場合を例に説明する。なお、本実施の形態においては、サーバ200と通信するセンサを複数のセンサ100としたが、センサの数を限定するものではない。
複数のセンサ100それぞれは、計測対象を計測するセンサであり、例えば、温度センサ、湿度センサ、照度センサ、フローセンサ、圧力センサ、地温センサ、パーティクルセンサ等の物理系センサ、またはCO2センサ、pHセンサ、ECセンサ、土壌水分センサ等の化学系センサである。
複数のセンサ100それぞれは、計測により得られたデータ(以下、計測データという)を、設定された送信時間間隔(以下、送信間隔という)でサーバ200に送信する。ここで、複数のセンサ100それぞれが計測データをサーバ200に送信するタイミングは、互いに異なる日時の場合、一部が同じ日時の場合、またはすべてが同じ日時の場合がある。複数のセンサ100が計測データを送信するタイミングが同じ日時の場合、データの衝突が生じ、サーバ200との通信状態が悪くなる場合がある。この場合、サーバ200は、同じタイミングで送信された複数の計測データの一部または全てを受信できないことがある。そのため、サーバ200による計測データの受信が失敗した場合、センサ100は、計測データを再送信するように設計されている。なお、計測データの再送信は、計測データがサーバ200により受信されるまで繰り返すようにしてもよいし、所定回数(N回)に達するまで繰り返すようにしてもよい。なお、以下では、所定回数(N回)だけ再送信を試みる場合を例にとり説明する。
このように、計測データの再送信を行う場合、センサ100の消費電力が増えることとなり、なるべく避ける方が好ましい。また、所定回数だけ再送信したが全て失敗すると、計測データがセンサ100に蓄積されてしまい、センサ100の計測データ用記憶領域を超えるおそれがある。この場合、計測データがサーバ200に送信されることなく削除されてしまう。そこで、本実施形態では、サーバ200は、複数のセンサ100の各々について、当該センサ100における計測データの送信失敗の頻度に応じて変化する特徴量に基づいて、計測データの送信間隔を決定する。
具体的には、サーバ200は、各センサ100について、上記特徴量により示される送信失敗の頻度が高いほど、相対的に小さい送信間隔を設定し、送信失敗の頻度が低いほど、相対的に大きい送信間隔を設定する。これにより、送信失敗の頻度が高いセンサ100と送信失敗の頻度が低いセンサ100との送信間隔をずらすことができるとともに、送信失敗の頻度の高いセンサ100に対して優先的に計測データを送信させることができる。その結果、複数のセンサ100の全てから均一に計測データを取得することができる。
<センサのハードウェア構成について>
図2は、センサの構成の一例を示すブロック図である。図2に示されるように、センサ100は、センサ100の全体を制御するセンサ制御部101と、電源部110と、センサ部120と、無線通信部130と、記憶部(計測データ記憶手段)150とを含む。
無線通信部130は、無線回線を利用して、TCPまたはUDP等の通信プロトコルによって通信する。無線通信部130は、センサ制御部101からの指示に従って、無線回線により接続された外部の機器との間でデータを送受信する。
無線通信部130は、サーバ200からデータを受信した場合、サーバ200に当該データを受信したことを示す信号、ここではACK信号を送信する。これにより、ACK信号を受信したサーバ200は、センサ100がデータを受信したことを認識することができる。
無線通信部130は、サーバ200にデータを送信した場合、サーバ200がデータを受信したことを示すACK信号をサーバ200から受信する。これにより、ACK信号を受信したセンサ100は、サーバ200がデータを受信したことを認識することができる。
記憶部150は、センサ制御部101が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶するものであり、HDDやROM、RAM等で構成される。
記憶部150は、センサ部120により生成された計測データ181、次に計測データの送信処理を開始する日時を示す送信日時情報173、計測データの送信間隔を示す送信間隔情報171を記憶している。また、記憶部150は、計測データ181を記憶するための、予め定められた容量を有する計測データ用記憶領域を有している。
センサ部120は、計測対象を計測し、それにより計測データを生成する。センサ部120は、生成した計測データを記憶部150に記憶する。計測データには、センサ部120により計測された日時を示す計測日時情報が含まれる。なお、センサ部120は、予め定められた計測時間間隔(以下、計測間隔という)で計測データを生成する。この計測間隔は、送信間隔と同一であってもよいし、異なっていてもよい。以下では、特に言及しない限り、計測間隔は、送信間隔と異なり、予め定められた間隔(例えば10秒など)であるとする。
センサ部120は、新たに計測した計測データを記憶部150に格納する際、計測データ181の合計データ量が計測データ用記憶領域の容量を超える場合には計測日時の最も古い計測データ181を記憶部150から削除する。そして、センサ部120は、新たな計測データ181を記憶部150に格納するものとする。
電源部110は、センサ100の駆動源であり、本実施の形態においては交換可能な電池である。ただし、電源部110は、本発明において電池に限定されるものではなく、商用電源であってもよい。
センサ制御部101は、電源部110を制御して、センサ部120および無線通信部130に供給する電力を制御する。具体的には、電源部110は、センサ部120および無線通信部130への電力の供給を遮断しており、上記の計測間隔により決定される第1のタイミングでセンサ部120に電力を供給し、記憶部150に格納された送信間隔情報171により決定される第2のタイミングで無線通信部130に電力を供給する。第1のタイミングと第2のタイミングとは、同じタイミングであってもよいし、異なるタイミングであってもよい。ここでは、第1のタイミングと第2のタイミングが異なる場合を例に説明する。
本実施の形態においては、複数のセンサ100それぞれが、第1のタイミング(つまり、計測間隔により決定されるタイミング)で計測データを生成し、生成した計測データを記憶部150に記憶する。そして、第2のタイミング(後述するように、送信日時情報173および送信間隔情報171により決定されるタイミング)で、記憶部150に記憶された計測データ181をサーバ200に送信する送信処理を開始する。第1のタイミングおよび第2のタイミングは、複数のセンサ100それぞれにおいて個別に決定される日時である。
<センサが備えるセンサ制御部が有する機能について>
次に、センサ制御部101における計測データを送信する処理(送信処理)に関する機能について説明する。センサ制御部101は、間隔更新部161と、送信日時決定部163と、データ送信部165と、判定情報生成部(特徴量生成部)167と、リトライ回数カウント部169を含む。
間隔更新部161は、無線通信部130を介して、サーバ200から送信された送信間隔情報を受取る。そして、間隔更新部161は、送信間隔情報が無線通信部130から入力されると、入力された送信間隔情報により、記憶部150に格納された送信間隔情報171を更新する。間隔更新部161は、記憶部150の送信間隔情報171を更新すると、送信日時決定部163に対して決定指示を出力する。
送信日時決定部163は、間隔更新部161またはデータ送信部165から決定指示が入力されると、記憶部150に記憶された送信日時情報173および送信間隔情報171に基づいて、次回の送信処理を開始する次回送信開始日時を決定する。具体的には、送信日時情報173で示される日時に送信間隔情報171で示される送信間隔を加算した日時を次回送信開始日時として決定する。送信日時決定部163は、決定した次回送信開始日時を示す情報を新たな送信日時情報173として記憶部150を更新する。また、送信日時決定部163は、決定した次回送信開示日時をデータ送信部165に通知するとともに、更新通知をリトライ回数カウント部169に出力する。
なお、記憶部150に記憶された送信日時情報173は、送信日時決定部163により決定された次回送信開始日時を示す情報としたが、データ送信部165により計測データが送信された日時または再送信された日時を示す情報であってもよい。
データ送信部165は、記憶部150に記憶された計測データ181と、後述する判定情報生成部167により生成された判定情報との組をサーバ200に送信する。判定情報は、データ送信部165が判定情報生成部167に判定情報を要求する要求信号を出力することにより取得する。
ここで、データ送信部165は、送信日時決定部163より通知された次回送信開始日時に、判定情報が付加された計測データ181を送信する。すなわち、データ送信部165は、現在の日時が送信日時決定部163により決定された次回送信開始日時になったか否かを判断する。現在の日時が次回送信開始日時になると、データ送信部165は、計測データ181を記憶部150から抽出し、抽出した計測データ181に判定情報を付加して、無線通信部130を介してサーバ200に送信する。
また、データ送信部165は、計測データ181を送信したときから計時を開始し、所定の時間Tが経過するまでに無線通信部130がサーバ200からACK信号を受信したか否かを判断する。データ送信部165は、所定の時間Tが経過するまでに無線通信部130がACK信号を受信していないならばACK未受信信号をリトライ回数カウント部169に出力する。また、データ送信部165は、所定の時間Tが経過するまでに無線通信部130がACK信号を受信していると、ACK受信信号をリトライ回数カウント部169に出力するとともに、送信した計測データ181を記憶部150から削除する。
また、データ送信部165は、所定の時間Tが経過するまでに無線通信部130がACK信号を受信していない場合、リトライ回数カウント部169によりカウントされるリトライ回数が所定回数N(Nは自然数)よりも大きいか否かを判断する。ここで、リトライ回数とは、計測データ181がサーバ200に再送信された回数を示すものである。
リトライ回数カウント部169によりカウントされるリトライ回数が所定回数N以下である場合、データ送信部165は、計測データ181をサーバ200に再送信する。ただし、この際、データ送信部165は、後述する判定情報生成部167が新たに生成する判定情報を計測データ181に付加して送信する。
一方、リトライ回数カウント部169によりカウントされるリトライ回数が所定回数Nよりも大きい場合、データ送信部165は、送信日時決定部163に対して決定指示を出力し、計測データ181の再送信を行わない。
このように、データ送信部165は、計測データ181の送信を所定回数Nに達するまで繰り返す。なお、回数Nは、ユーザにより予め定められた回数である。
また、データ送信部165は、送信日時決定部163より通知された次回送信開始日時に到達したとき、リトライ回数カウント部169に対してリセット指示を通知する。
リトライ回数カウント部169は、計測データがサーバ200に再送信された回数であるリトライ回数をカウントするものである。リトライ回数カウント部169は、データ送信部165からACK未受信信号が入力されるごとに、リトライ回数に「1」加算する。また、リトライ回数カウント部169は、データ送信部165からリセット指示を受けると、リトライ回数を「0」にリセットする。
判定情報生成部167は、計測データの送信間隔を決定するための判定情報を生成するものである。判定情報は、計測データの送信失敗の頻度に応じて変化する特徴量を示すものである。このような判定情報としては、様々な情報が考えられるが、ここでは、判定情報生成部167は、リトライ回数カウント部169によりカウントされるリトライ回数を示す情報を判定情報として生成するものとする。リトライ回数は、計測データ181を送信したがACK信号を受信できなかった場合に再送された回数であり、送信失敗の回数を直接的に表す特徴量である。判定情報生成部167は、データ送信部165から要求信号が入力されるごとに判定情報を生成し、生成した判定情報をデータ送信部165に出力する。
<サーバのハードウェア構成について>
図3は、サーバの構成の一例を示すブロック図である。図3に示されるように、サーバ200は、サーバ200の全体を制御するサーバ制御部201と、無線通信部(計測データ受信部)210と、記憶部(特徴量記憶手段、対応情報記憶手段)220とを含む。
記憶部220は、サーバ制御部201が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。サーバ制御部201は、RAM(図示せず)等を作業領域として用いることによりプログラムを実行する。
無線通信部210は、無線回線を利用して、TCPまたはUDP等の通信プロトコルによって通信する。無線通信部210は、サーバ制御部201からの指示に従って、無線回線により接続された外部の機器との間でデータを送受信する。
無線通信部210は、外部の機器からデータを受信した場合、データを送信した機器にデータを受信したことを示す信号、ここではACK信号を送信する。これにより、ACK信号を受信した機器は、サーバ200がデータを受信したことを認識する。
無線通信部210は、外部の機器にデータを送信した場合、データの送信の対象となった機器がデータを受信すると、その機器が送信するACK信号を受信する。これにより、ACK信号を受信したサーバ200は、データの送信の対象となった機器がデータを受信したことを認識する。
<サーバが備えるサーバ制御部が有する機能について>
サーバ制御部201は、データ書込部(計測データ受信部)221と、テーブル管理部223と、間隔決定部(間隔設定部)225と、間隔送信部(間隔設定部)227とを含む。
データ書込部221は、無線通信部210を介して、複数のセンサ100のそれぞれから、判定情報が付加された計測データを受信する。データ書込部221は、判定情報が付加された計測データを受信すると、その計測データを送信したセンサ100を識別するためのセンサ識別情報と当該計測データとを関連付けて記憶部220に記憶する。これにより、記憶部220に計測データ231が記憶される。
また、データ書込部221は、判定情報が付加された計測データを受信すると、現在の日時を受信日時とし、計測データを送信したセンサ100のセンサ識別情報と判定情報と受信日時との組をテーブル管理部223に出力する。なお、上述したように、ここでは、判定情報はリトライ回数を示す情報である。
テーブル管理部223は、記憶部220に格納されている間隔制御テーブル233を管理するものである。また、テーブル管理部223は、ユーザからの指示にしたがって、記憶部220に格納されている間隔対応テーブル235を編集してもよい。
テーブル管理部223は、間隔制御テーブル233を更新するための判定情報更新部(正規化部)241を備えている。判定情報更新部241は、データ書込部221から入力された、センサ識別情報と判定情報と受信日時との組に基づいて間隔制御テーブル233を更新する。
図4は、間隔制御テーブルの一例を示す図である。図4に示されるように、間隔制御テーブル233は、複数のセンサ100それぞれのセンサ識別情報ごとの間隔制御レコードを含む。
間隔制御レコードは、センサIDの項目と、最新受信日時の項目と、判定情報(ここではリトライ回数)の項目と、正規化判定情報の項目とを含む。センサIDの項目は、複数のセンサ100それぞれのセンサ識別情報が設定される。センサIDは、シリアル番号である。ここでは、複数のセンサ100それぞれのセンサ識別情報は、「1」〜「8」に対応している。最新受信日時の項目は、センサ識別情報で特定されるセンサ100から計測データを受信したときの受信日時が設定される。判定情報の項目は、センサ識別情報で特定されるセンサ100から受信した判定情報(リトライ回数)が設定される。正規化判定情報の項目は、センサ識別情報で特定されるセンサ100から受信したリトライ回数を正規化した後のリトライ回数が設定される。リトライ回数の正規化は、間隔制御テーブル233に含まれるすべてのリトライ回数のうち最小のリトライ回数で、間隔制御テーブル233に含まれるすべてのリトライ回数を減算することをいう。
判定情報更新部241は、データ書込部221からセンサ識別情報と判定情報と受信日時との組が入力されると、当該センサ識別情報を含む間隔制御レコードを、記憶部220に記憶された間隔制御テーブル233から抽出する。判定情報更新部241は、抽出された間隔制御レコードの最新受信日時の項目にデータ書込部221から入力された受信日時を設定し、判定情報の項目にデータ書込部221から入力された判定情報(リトライ回数)を設定する。これにより、間隔制御テーブル233において受信日時および判定情報(リトライ回数)が更新される。
また、判定情報更新部241は、いずれか一組の判定情報(リトライ回数)および受信日時を更新した段階において、間隔制御テーブル233に含まれるすべての判定情報(リトライ回数)を正規化する。具体的には、間隔制御レコードごとに、間隔制御レコードに含まれるリトライ回数を、間隔制御テーブル233に含まれるすべてのリトライ回数のうち最小のもので減算し、正規化判定情報の項目に減算後のリトライ回数を設定する。これにより、間隔制御テーブル233において更新後のリトライ回数の正規化がされる。テーブル管理部223は、間隔制御テーブル233の更新が終了すると、データ書込部221から入力されたセンサ識別情報を含む更新終了信号を間隔決定部225に出力する。
間隔決定部225は、記憶部220に記憶された間隔対応テーブル(対応情報)235および間隔制御テーブル233を参照して、送信間隔を決定する。
図5は、間隔対応テーブルの一例を示す図である。図5に示されるように、間隔対応テーブル235は、リトライ回数ごとに間隔対応レコードを含む。ここで、間隔対応レコードは、リトライ回数の項目と、送信間隔の項目とを含む。リトライ回数の項目は、回数が設定されている。ここでは、リトライ回数の項目に0〜7のいずれかの回数が設定されている。リトライ回数は、それが大きいほど、計測データの送信失敗の頻度が高いことを示す。送信間隔の項目は、時間の間隔が設定されている。ここでは、送信間隔の項目に60〜67秒のいずれかの時間の間隔が設定されている。そして、リトライ回数が多いほど、送信間隔が短くなるように、間隔対応テーブル235が設定されている。
間隔決定部225は、テーブル管理部223から更新終了信号が入力されると、テーブル管理部223から入力された更新終了信号に含まれるセンサ識別情報が設定されている間隔制御レコードを間隔制御テーブル233から抽出する。そして、間隔決定部225は、抽出された間隔制御レコードに含まれる正規化判定情報で示される正規化後のリトライ回数を特定する。その後、間隔決定部225は、特定した正規化後のリトライ回数に対応する送信間隔を、間隔対応テーブル235から抽出する。そして、間隔決定部225は、抽出された送信間隔とテーブル管理部223から入力された更新終了信号に含まれるセンサ識別情報との組を間隔送信部227に出力する。
間隔送信部227は、間隔決定部225から送信間隔とセンサ識別情報との組が入力される。間隔送信部227は、間隔決定部225から送信間隔とセンサ識別情報との組が入力されると、複数のセンサ100のうち間隔決定部225から入力されたセンサ識別情報で特定されるセンサ100に送信間隔を示す送信間隔情報を送信する。
<データ処理システムの処理の流れ>
次に、データ処理システム1における処理の流れについて、図6および図7のフローを参照しながら説明する。図6は、センサ100における処理の流れを示すフローチャートであり、図7は、サーバ200における処理の流れを示すフローチャートである。
まず、図6を参照しながらセンサ100における計測データの送信処理の流れを説明する。なお、センサ100では、センサ部120が所定の計測間隔(たとえば10秒)で計測対象を計測し、その計測データを記憶部150に格納している。
データ送信部165は、現在の日時が送信日時決定部163から通知された次回送信開始日時になったか否かを判断する(S1)。データ送信部165は、現在の日時が次回送信開始日時より前である場合、現在の日時が次回送信開始日時になるまで待機する。
現在の日時が次回送信開始日時になると(S1でYes)、データ送信部165は、無線通信部130に電力が供給されるように電源部110を制御する(S2)。
次に、データ送信部165は、リセット指示をリトライ回数カウント部169に通知する。これにより、リトライ回数カウント部169は、リトライ回数を「0」にリセットする(S3)。
その後、データ送信部165は、判定情報生成部167に要求信号を出力する。これにより、判定情報生成部167は、判定情報を生成してデータ送信部165に出力する(S4)。なお、この段階では、リトライ回数カウント部169は、S3においてリトライ回数を「0」にリセットしている。そのため、判定情報生成部167は、リトライ回数「0」を判定情報として生成することとなる。
データ送信部165は、判定情報(リトライ回数)を受けると、記憶部150から計測データ181を抽出する。データ送信部165は、抽出した計測データ181に判定情報を付加して、無線通信部130を介してサーバ200に送信する(S5)。
その後、データ送信部165は、データ送信が成功したか失敗したかを判断する(S6)。具体的には、データ送信部165は、計測データ181を送信したときから計時を開始し、所定の時間Tが経過するまでに無線通信部130がサーバ200からACK信号を受信したか否かを判断する。データ送信部165は、所定の時間T内にサーバ200からACK信号を受信すると、データ送信が成功したものと判断し、所定の時間T内にサーバ200からACK信号を受信しないと、データ送信が失敗したものと判断する。
データ送信に失敗した場合(S6でNo)、データ送信部165は、ACK未受信信号をリトライ回数カウント部169に出力する。これにより、リトライ回数カウント部169は、リトライ回数に「1」だけ加算する(S7)。
次に、データ送信部165は、リトライ回数カウント部169により更新されたリトライ回数が所定回数N(Nは自然数)よりも大きいか否かを判断する(S8)。
リトライ回数が所定回数N以下である場合(S8でNo)、データ送信部165は、判定情報生成部167に要求信号を出力し、判定情報生成部167から新たな判定情報を受取る(S9)。ここでは、判定情報生成部167は、リトライ回数カウント部169によりS7にて更新されたリトライ回数を判定情報として生成する。そして、S5の処理に戻り、データ送信部165は、新たな判定情報(リトライ回数)が付加された計測データ181をサーバ200に再送信する。
なお、再送信してもデータ送信に失敗した場合には、再度S7〜S9の処理が行われる。ただし、S8の処理を行うため、再送信の回数は、N回までとなる。つまり、リトライ回数が所定回数Nよりも大きい場合(S8でYes)、データ送信部165は、計測データの再送を行うことなく、決定指示を送信日時決定部163に出力する。そして、S12の処理に移行する。
一方、データ送信に成功した場合(S6でYes)、間隔更新部161は、サーバ200から無線通信部130が送信間隔情報を受信したか否かを判断し(S10)、受信していない場合は、送信間隔情報を受信するまで待機する。
無線通信部130が送信間隔情報を受信すると、間隔更新部161は、受信した送信間隔情報により、記憶部150に格納された送信間隔情報171を更新する。さらに、無線通信部130は、送信間隔情報を受信した旨のACK信号をサーバ200に送信する(S11)。その後、間隔更新部161は、決定指示を送信日時決定部163に出力する。そして、S12の処理に移行する。
S12では、データ送信部165または間隔更新部161から決定指示を受けた送信日時決定部163が、記憶部150に記憶された送信日時情報173で示される日時に送信間隔情報171で示される送信間隔を加算した日時を次回送信開始日時として決定する。このとき、送信日時決定部163は、決定した次回送信開始日時を示す情報を新たな送信日時情報173として記憶部150を更新するとともに、決定した次回送信開示日時をデータ送信部165に通知する。
その後、センサ制御部101は、無線通信部130への電力供給を停止するように電源部110を制御する(S13)。
なお、本明細書では、S1〜S13の一連の処理を送信処理という。
続いて、図7を参照しながらサーバ200における送信間隔情報の決定・送信処理の流れを説明する。
サーバ200において、データ書込部221は、無線通信部210がいずれか一つのセンサ100から判定情報が付加された計測データを受信したか否かを判断する(S21)。計測データが受信されない場合(S21でNo)、データ書込部221は、計測データを受信するまで待機する。
計測データが受信された場合(S21でYes)、データ書込部221は、計測データを送信したセンサ100を識別するセンサ識別情報を無線通信部210から取得する(S22)。なお、無線通信部210は、通信相手であるセンサ100のアドレスと当該センサ100のセンサ識別情報とを対応付けた情報を管理しており、通信相手であるセンサ100に対応するセンサ識別情報をデータ書込部221に出力すればよい。
続いて、データ書込部221は、現在の日時を示す情報を図示しない時計部から取得し、取得した日時を受信日時とする(S23)。そして、データ書込部221は、計測データを送信したセンサ100のセンサ識別情報と判定情報と受信日時との組をテーブル管理部223に出力する。
判定情報更新部241は、データ書込部221から受けたセンサ識別情報を含む間隔制御レコードを、記憶部220に記憶された間隔制御テーブル233から読み出す(S24)。そして、判定情報更新部241は、抽出された間隔制御レコードの最新受信日時の項目にデータ書込部221から入力された受信日時を設定し(S25)、判定情報の項目にデータ書込部221から入力された判定情報(リトライ回数)を設定する(S26)。
次に、判定情報更新部241は、間隔制御テーブル233の中の何れか一つの間隔制御レコードを選択する(S27)。そして、判定情報更新部241は、選択した間隔制御レコードに含まれるリトライ回数を、間隔制御テーブル233に含まれるすべてのリトライ回数のうち最小のもので減算し、正規化判定情報の項目に減算後のリトライ回数を設定する(S28)。その後、未選択の間隔制御レコードがあるか否かを判断し(S29)、ある場合にはS27の処理に戻る。これにより、S27およびS28の処理が、全ての間隔制御レコードに対して実行される。
全ての間隔制御レコードに対してS28の判定情報正規化の処理が実行されると(S29でNo)、テーブル管理部223は、データ書込部221から受けたセンサ識別情報を含む更新終了信号を間隔決定部225に出力する。間隔決定部225は、更新終了信号が入力されると、更新終了信号に含まれるセンサ識別情報が設定されている間隔制御レコードを間隔制御テーブル233から抽出する。そして、間隔決定部225は、間隔対応テーブル235を参照して、抽出された間隔制御レコードに含まれる正規化判定情報で示される正規化後のリトライ回数に対応する間隔を送信間隔として決定する(S30)。間隔決定部225は、決定した送信間隔を示す送信間隔情報と、更新終了信号に含まれるセンサ識別情報とを間隔送信部227に出力する。
その後、間隔送信部227は、複数のセンサ100のうち間隔決定部225から出力されたセンサ識別情報で特定されるセンサ100に対して、間隔決定部225から受けた送信間隔情報を送信する(S31)。続いて、無線通信部210は、ACK信号をセンサ100から受信し、送信間隔情報が正常に受信されたことを認識する(S32)。
このように、本実施形態によれば、サーバ200は、各センサ100における計測データの送信失敗の頻度に応じて変化する特徴量(ここではリトライ回数)である判定情報を各センサ100から受信する。そして、サーバ200において、間隔決定部225は、送信失敗の頻度が相対的に高いことを示す判定情報に対応するセンサ100に対して、相対的に短い送信間隔を決定する。
具体的には、サーバ200は、複数のセンサ100それぞれに対して、リトライ回数に応じた送信間隔を決定する。リトライ回数が大きいほど、小さい送信間隔に決定し、リトライ回数が小さいほど、大きい送信間隔に決定する。このため、計測データ181の再送信が多いセンサ100は、小さい送信間隔に基づいて送信日時を決定し、計測データ181の再送信が少ないセンサ100は、大きい送信間隔に基づいて送信日時を決定することができる。これにより、複数のセンサ100それぞれは、リトライ回数に応じて、計測データを送信するタイミングが決定されるので、データの衝突による送信失敗の頻度を下げることができる。したがって、サーバ200は、複数のセンサ100から均一にデータを収集することができる。
<変形例1−1>
上記の説明では、判定情報がリトライ回数である場合を例に説明した。しかしながら、判定情報は、リトライ回数に限定されるものではない。本変形例1−1は、記憶部150に記憶されている複数の計測データ181のうち未だ送信できずに残っている計測データ181のデータ量(未送信データ量)を判定情報として用いる場合である。
本変形例では、データ送信部165がS5の処理で送信できるデータ量の上限値(以下、送信限界データ量という)が予め定められていることが前提となる。この送信限界データ量は、記憶部150に格納される送信間隔情報171で示されうる最大の送信間隔内にセンサ部120が計測する全ての計測データの合計データ量以上に設定されている。例えば、センサ部120が10秒間隔で計測し、送信間隔情報で示されうる最大の送信間隔が70秒であり、センサ部120が一回の計測で生成する計測データの量がAバイトである場合、送信限界データ量は、(70/10)×A バイト以上に設定される。
そのため、1回の送信処理において計測データを送信できている限り、データ送信直後には、記憶部150に未送信の計測データが残ることがない。しかしながら、データ送信部165がN回の再送信を行ってもデータ送信できない場合(つまり、S1からS13の一連の送信処理で計測データを送信できなかった場合)、記憶部150には未送信の計測データが蓄積されることとなる。その結果、送信限界データ量を超える計測データ181が記憶部150に蓄積される可能性がある。計測データの送信失敗が繰り返されると、計測データ用記憶領域の容量まで計測データ181が蓄積され、サーバ200に送信されることなく記憶部150から計測データ181が削除される可能性がある。
このようなセンサ100については、優先度を高めてデータ送信処理を実行させる必要がある。また、このようなセンサ100から送信される計測データは、他のセンサ100から送信される計測データと衝突している可能性がある。そのため、このようなセンサ100の送信間隔を他のセンサ100の送信間隔からずらす必要がある。
そこで、本変形例では、記憶部150の中に、未だサーバ200に送信されずに残っている計測データ181のデータ量である未送信データ量を判定情報として使用する。なお、未送信データ量は、センサ100において計測データの送信失敗の頻度に応じて増えるものであり、上記の特徴量であるといえる。
この場合、データ送信部165は、送信限界データ量より大きい量の計測データ181が記憶部150に存在する場合、送信限界データ量分の、計測時刻の古い計測データ181を送信対象として選択する。なお、データ送信部165は、送信限界データ量以下の計測データ181のみが記憶部150に存在する場合、記憶部150に格納された全ての計測データ181を送信対象として選択する。
また、判定情報生成部167は、記憶部150に記憶される計測データ181のうち、データ送信部165により選択された計測データ181以外の計測データ181の合計データ量を、未送信データ量として算出する。そして、判定情報生成部167は、算出した未送信データ量を判定情報として生成する。データ送信部165は、当該判定情報(未送信データ量)とともに、上記選択された計測データ181をサーバ200に送信する。
さらに、サーバ200において、記憶部220は、図4に示す間隔制御テーブル233の代わりに、図8に示す間隔制御テーブル233Aを記憶する。図8は、変形例1−1における間隔制御テーブルの一例を示す図である。図8に示されるように、間隔制御テーブル233Aは、複数のセンサ100それぞれのセンサ識別情報ごとに間隔制御レコードを含む。間隔制御レコードは、図4に示す間隔制御テーブルと同様に、センサIDの項目と、最新受信日時の項目と、判定情報の項目と、正規化判定情報の項目とを含む。ただし、判定情報の項目は、センサ識別情報で特定されるセンサ100から受信した未送信データ量が設定される。正規化判定情報の項目は、センサ識別情報で特定されるセンサ100から受信した未送信データ量を正規化した後の未送信データ量が設定される。未送信データ量の正規化は、間隔制御テーブル233Aに含まれるすべての未送信データ量のうち最小の未送信データ量で、間隔制御テーブル233Aに含まれるすべての未送信データ量を減算することをいう。
また、サーバ200において、記憶部220は、図5に示す間隔対応テーブル235の代わりに、図9に示す間隔対応テーブル235Aを記憶する。図9は、変形例1−1における間隔対応テーブルの一例を示す図である。図9に示されるように、間隔対応テーブル235Aは、データ量の範囲ごとに間隔対応レコードを含む。ここで、間隔対応レコードは、未送信データ量の項目と、送信間隔の項目とを含む。未送信データ量の項目は、データ量の範囲が設定されている。未送信データ量は、それが大きいほど、センサ100に未送信の計測データが多く蓄積されていることを示す。送信間隔の項目は、時間の間隔が設定されている。ここでは、未送信データ量が大きいほど、送信間隔が小さくなるように設定されている。
そして、間隔決定部225は、正規化判定情報である正規化後の未送信データ量に対応する間隔を間隔対応テーブルから読み出し、読み出した間隔を送信間隔として決定する。
このように、本変形例によれば、サーバ200は、複数のセンサ100それぞれに対して、未送信データ量に応じた送信間隔を決定する。具体的には、未送信データ量が大きいほど、小さい送信間隔に決定し、未送信データ量が小さいほど、大きい送信間隔に決定する。このため、計測データ181の送信失敗の頻度の高いセンサ100は、小さい送信間隔に基づいて送信日時を決定し、計測データ181の送信失敗の頻度の低いセンサ100は、大きい送信間隔に基づいて送信日時を決定することができる。これにより、データの衝突による送信失敗の頻度を下げることができるとともに、送信失敗の頻度の高いセンサ100を優先してデータ送信させることができる。したがって、送信失敗の頻度の高いセンサ100において、サーバ200に送信されることなく記憶部220から計測データが削除されることを防止でき、サーバ200は、複数のセンサ100から均一にデータを収集することができる。
なお、上記の説明では、判定情報生成部167は、記憶部150に記憶される計測データ181のうち、データ送信部165により選択された計測データ181以外の計測データ181の合計データ量を、未送信データ量として算出するものとした。しかしながら、これに限らず、判定情報生成部167は、記憶部150に記憶される全ての計測データ181の合計データ量aと、データ送信部165により選択された計測データ181の合計データ量bとを求め、a−bにより、未送信データ量を求めてもよい。
<変形例1−2>
本変形例は、変形例1−1をさらに変形した例である。すなわち、判定情報生成部167は、未送信データ量ではなく、未送信データ量を送信限界データ量で割った値(未送信データ率)を判定情報として生成してもよい。なお、上述したように、送信限界データ量は、データ送信部165が1回のS5の処理で送信できるデータ量の上限値である。
各センサ100が配置されている環境や、各センサ100が備える無線通信部130の性能が同一であるとは限らない。例えば、複数のセンサ100において、送信限界データ量が異なる場合が考えられる。この場合、同じ未送信データ量であったとしても、送信限界データ量の小さいセンサ100の方が、サーバ200に送信されることなく記憶部220から削除される可能性が高くなる。そこで、本変形例では、未送信データ率を判定情報として用いる。そして、サーバ200の記憶部220は、未送信データ率が高いほど送信間隔が小さくなるように設定された間隔対応テーブルを記憶するものとする。これにより、同じ未送信データ量であったとしても、サーバ200に送信されることなく記憶部220から計測データ181が削除される可能性がより高いセンサ100の送信間隔を短く設定することができる。その結果、サーバ200に送信されることなく記憶部220から計測データが削除されることを防止でき、サーバ200は、複数のセンサ100から均一にデータを収集することができる。
<変形例1−3>
本変形例は、変形例1−1をさらに別に変形した例である。すなわち、判定情報生成部167は、未送信データ量ではなく、サーバ200に送信されることなく記憶部220から削除された計測データ181の合計データ量(削除データ量)を判定情報として生成してもよい。
センサ100の記憶部150の容量が比較的小さく、計測データの送信処理がある程度の頻度で失敗し、サーバ200に未送信の計測データ181がある程度の確率で記憶部220から削除されるデータ処理システムである場合に有効である。
本変形例では、判定情報生成部165は、直近の所定期間において、サーバ200に送信されることなく記憶部220から削除された計測データ181のデータ量の累計(削除データ量)をカウントしておき、当該削除データ量を判定情報として生成する。そして、サーバ200の記憶部220は、削除データ量が多いほど送信間隔が小さくなるように設定された間隔対応テーブルを記憶するものとする。これにより、削除データ量が多いセンサ100の送信間隔を短く設定することができる。その結果、サーバ200に送信されることなく記憶部220から削除される計測データの量を均一に減らすことができ、サーバ200は、複数のセンサ100から均一にデータを収集することができる。
<変形例1−4>
本変形例は、変形例1−3をさらに変形した例である。すなわち、判定情報生成部167は、削除データ量とともに、直近の所定期間において、サーバ200に送信された計測データ181のデータ量の累計(送信済データ量)をカウントしておく。そして、判定情報生成部167は、削除データ量ではなく、削除データ量を送信済データ量で割った値(削除データ率)を判定情報として生成してもよい。
各センサ100が一回の計測で生成する計測データのデータ量が異なる場合がある。この場合、同じ削除データ量であったとしても、一回の計測で生成する計測データのデータ量の小さいセンサ100の方が、サーバ200に送信されることなく記憶部220から削除される計測データの数が多くなる。そこで、本変形例では、削除データ率を判定情報として用いる。そして、サーバ200の記憶部220は、削除データ率が高いほど送信間隔が小さくなるように設定された間隔対応テーブルを記憶するものとする。これにより、同じ削除データ量であったとしても、サーバ200に送信されることなく記憶部220から計測データ181の数が多いセンサ100の送信間隔を短く設定することができる。その結果、サーバ200に送信されることなく記憶部220から削除される計測データの数を減らすことができ、サーバ200は、複数のセンサ100から均一にデータを収集することができる。
<変形例1−5>
本変形例においては、判定情報がサーバ200へのデータの送信に成功した確率である場合である。ここでは、サーバ200へのデータの送信に成功した確率をデータ送信成功率という。
本変形例では、判定情報生成部167は、直近の所定期間(例えば、現時点から1時間前までの期間)において、データ送信部165が計測データを送信したのべ回数(データ送信回数)(本変形例では再送する場合も1回としてカウントする)と、送信に成功した回数とをカウントしておく。具体的には、判定情報生成部167は、データ送信部165より出力されるACK受信信号の回数およびACK未受信信号の回数の合計値を、「計測データを送信したのべ回数」とすればよい。また、判定情報生成部167は、データ送信部165より出力されるACK受信信号の回数を、「送信に成功した回数」とすればよい。そして、判定情報生成部167は、「送信に成功した回数」を「計測データを送信したのべ回数」で割った商をデータ送信成功率とし、当該データ送信成功率を判定情報とする。なお、データ送信成功率は、センサ100において計測データの送信失敗の頻度に応じて増減するものであり、上記の特徴量であるといえる。
なお、判定情報生成部167は、「送信に成功した回数」と「計測データを送信したのべ回数」とに基づいてデータ送信成功率を求めるのではなく、別の方法であってもよい。すなわち、判定情報生成部167は、「送信に成功した回数」と「計測データを送信したのべ回数」と「送信に失敗した回数」とのうちの何れか2つを求め、その2つに基づいてデータ送信成功率を算出すればよい。ここで、「送信に失敗した回数」は、データ送信部165より出力されるACK未受信信号の回数となる。
また、サーバ200において、記憶部220は、図4に示す間隔制御テーブル233の代わりに、図10に示す間隔制御テーブル233Bを記憶する、図10は、本変形例における間隔制御テーブルの一例を示す図である。図10に示されるように、間隔制御テーブル233Bは、複数のセンサ100それぞれのセンサ識別情報ごとに間隔制御レコードを含む。間隔制御レコードは、図4に示す間隔制御テーブルと同様に、センサIDの項目と、最新受信日時の項目と、判定情報の項目と、正規化判定情報の項目とを含む。ただし、判定情報の項目は、センサ識別情報で特定されるセンサ100から受信したデータ送信成功率が設定される。正規化判定情報の項目は、センサ識別情報で特定されるセンサ100から受信したデータ送信成功率を正規化した後のデータ送信成功率が設定される。データ送信成功率の正規化は、間隔制御テーブル233Aに含まれるすべてのデータ送信成功率のうち最大のデータ送信成功率により、間隔制御テーブル233Aに含まれるすべてのデータ送信成功率を割算し、その商に100を乗じることをいう。もしくは、データ送信成功率の正規化は、間隔制御テーブル233Aに含まれるすべてのデータ送信成功率のうち最小のデータ送信成功率により、間隔制御テーブル233Aに含まれるすべてのデータ送信成功率を減算する方法であってもよい。
また、サーバ200において、記憶部220は、図5に示す間隔対応テーブル235の代わりに、図11に示す間隔対応テーブル235Bを記憶する。図11は、本変形例における間隔対応テーブルの一例を示す図である。図11に示されるように、間隔対応テーブル235Bは、確率の範囲ごとに間隔対応レコードを含む。間隔対応レコードは、データ送信成功率の項目と、送信間隔の項目とを含む。データ送信成功率の項目は、確率の範囲が設定されている。データ送信成功率は、それが大きいほど、サーバ200への計測データの送信が成功した可能性が高いことを示す。送信間隔の項目は、時間の間隔が設定されている。ここでは、データ送信成功率が小さいほど、送信間隔が小さくなるように設定されている。
そして、間隔決定部225は、正規化判定情報である正規化後のデータ送信成功率に対応する時間間隔を間隔対応テーブルから読み出し、読み出した時間間隔を送信間隔として決定する。
このように、本変形例によれば、サーバ200は、複数のセンサ100それぞれに対して、データ送信成功率に応じた送信間隔を決定する。具体的には、データ送信成功率が小さいほど、小さい送信間隔に決定し、データ送信成功率が大きいほど、大きい送信間隔に決定する。このため、計測データ181の送信失敗の回数が多いセンサ100は、小さい送信間隔に基づいて送信日時を決定し、計測データ181の送信失敗の回数が少ないセンサ100は、大きい送信間隔に基づいて送信日時を決定することができる。これにより、データの衝突による送信失敗の頻度を下げることができるとともに、送信失敗の回数の多いセンサ100を優先してデータ送信させることができる。したがって、送信失敗の回数の多いセンサ100において、サーバ200に送信されることなく記憶部220から計測データが削除されることを防止でき、サーバ200は、複数のセンサ100から均一にデータを収集することができる。
<変形例1−6>
本変形例は、変形例1−5をさらに変形した例である。すなわち、変形例1−5では、判定情報生成部167は、「送信に成功した回数」を「計測データを送信したのべ回数」で割った商をデータ送信成功率とするものとした。ここで、「計測データを送信したのべ回数」は、図6に示されるフローチャートにおいてS4の処理を行った回数となる。これに対し、本変形例では、判定情報生成部167は、「送信に成功した回数」を「送信処理の回数」で割った商をデータ送信成功率とする。ここで、「送信処理の回数」は、図6で示されるS1からS13までの一連の処理を1回の送信処理としたときの、当該送信処理の回数である。よって、「送信処理の回数」は、直近の所定期間に含まれる、送信日時決定部163により決定された次回送信開始日時の数と等しい。
この場合、判定情報生成部167は、直近の所定期間に含まれる、送信日時決定部163により決定された次回送信開始日時の数をカウントしておき、当該数を「送信処理の回数」とすればよい。
なお、判定情報生成部167は、「送信に成功した回数」と「送信処理の回数」とに基づいてデータ送信成功率を求めるのではなく、別の方法であってもよい。すなわち、判定情報生成部167は、「送信に成功した回数」と「送信処理の回数」と「送信に失敗した回数」とのうちの何れか2つを求め、その2つに基づいてデータ送信成功率を算出すればよい。ここで、「送信に失敗した回数」は、S6においてYesと判定した送信処理の回数となる。よって、判定情報生成部167は、データ送信部165が決定指示を送信日時決定部163に出力した回数を「送信に失敗した回数」としてカウントすればよい。
そして、サーバ200の記憶部220は、図11と同様に、データ送信成功率が小さいほど、送信間隔が小さくなるように設定されている間隔対応テーブルを記憶する。
これにより、送信失敗の回数の多いセンサ100において、サーバ200に送信されることなく記憶部220から計測データが削除されることを防止でき、サーバ200は、複数のセンサ100から均一にデータを収集することができる。
<変形例1−7>
本変形例は、変形例1−5または変形例1−6をさらに変形した例である。すなわち、判定情報生成部167は、直近の所定期間における「送信に成功した回数」または「送信に失敗した回数」を判定情報として生成してもよい。
なお、「送信に成功した回数」が判定情報である場合、サーバ200の記憶部220は、送信に成功した回数が小さいほど、送信間隔が小さくなるように設定されている間隔対応テーブルを記憶する。また、「送信に失敗した回数」が判定情報である場合、サーバ200の記憶部220は、送信に失敗した回数が大きいほど、送信間隔が小さくなるように設定されている間隔対応テーブルを記憶する。
これによっても、送信失敗の回数の多いセンサ100において、サーバ200に送信されることなく記憶部220から計測データが削除されることを防止でき、サーバ200は、複数のセンサ100から均一にデータを収集することができる。
<変形例1−8>
センサ100において、データ送信部165によるデータの再送処理の回数が多いと、電源部110である電池の消費率が高くなる。そのため、電源部110である電池残量を示す特徴量は、センサ100におけるデータ送信の失敗の頻度に応じて変化する値となる。具体的には、データの送信失敗の頻度が高いほど、電池残量が小さくなる。
そこで、判定情報生成部167は、判定情報として、電源部110である電池の残量を示す電池残量値を生成してもよい。電池残量値は、例えば、電源部110である電池の出力電圧値である。
この場合、サーバ200の記憶部220は、電池残量値が小さいほど、送信間隔が小さくなるように設定されている間隔対応テーブルを記憶する。
これによっても、送信失敗の頻度の高いセンサ100において、サーバ200に送信されることなく記憶部220から計測データが削除されることを防止でき、サーバ200は、複数のセンサ100から均一にデータを収集することができる。
〔実施形態2〕
本発明の別の実施形態2について説明する。なお、説明の便宜上、実施形態1にて説明した図面と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。上記の実施形態1では、サーバ200が複数のセンサ100それぞれが生成する判定情報に基づいて送信間隔を決定するようにした。これに対し、本実施形態2では、サーバが計測データの受信状況を基に判定情報を生成し、生成した判定情報に基づいて送信間隔を決定するものである。
本実施形態2に係るセンサは、図2に示すセンサ100と比較して、判定情報生成部167を備えていない点でのみ相違する。そのため、本実施形態2に係るセンサの構成の詳細な説明については省略する。
図12は、本実施形態2に係るサーバの構成の一例を示すブロック図である。本実施形態2に係るサーバ200Aは、図3に示す実施形態1のサーバ200と比較して、テーブル管理部223の代わりにテーブル管理部223Aを、間隔制御テーブル233および間隔対応テーブル235の代わりに間隔制御テーブル233Cおよび間隔対応テーブル235Cを備え、記憶部220がACK送信日時情報232および送信履歴情報234を記憶する点で相違する。ここでは、相違点について主に説明する。
なお、本実施形態では、無線通信部210は、センサ100から、判定情報が付加されていない計測データを受信する。そのため、データ書込部221は、計測データを送信したセンサ100のセンサ識別情報と受信日時との組をテーブル管理部223Aに出力する。
また、本実施形態では、データ書込部221は、計測データの受信に成功したときに無線通信部210が送信するACK信号の送信日時を示すACK送信日時情報232をセンサ100ごとに記憶部220に格納しておく。図13は、記憶部220に格納されるACK送信日時情報の一例を示す図である。なお、図13において、「yyyy-m-d 10:50:13」で示されるデータ片を、一つのACK送信日時情報という。
さらに、本実施形態では、間隔送信部227は、センサ100ごとに、当該センサ100に送信した送信間隔情報とその送信時刻とを対応付けた送信履歴情報を記憶部220に格納しておく。図14は、記憶部220に格納される送信履歴情報の一例を示す図である。
テーブル管理部223Aは、判定情報を生成するとともに、記憶部220に記憶された間隔制御テーブル233Cを更新する判定情報生成・更新部(特徴量取得部、正規化部)243を備えている。
図15は、本実施形態2における間隔制御テーブルの一例を示す図である。図13に示されるように、間隔制御テーブル233Cは、複数のセンサ100それぞれのセンサ識別情報ごとに間隔制御レコードを含む。間隔制御レコードは、センサIDの項目と、最新受信日時の項目と、判定情報(データ受信成功率)の項目と、正規化判定情報の項目とを含む。センサIDの項目は、複数のセンサ100それぞれのセンサ識別情報が設定される。センサIDは、シリアル番号である。最新受信日時の項目は、センサ識別情報で特定されるセンサ100から計測データを受信したときの受信日時が設定される。判定情報の項目は、ここでは、センサ識別情報で特定されるセンサ100に対応するデータ受信成功率が設定される。なお、判定情報は、データ受診成功率に限定されるものではない。正規化判定情報の項目は、センサ識別情報で特定されるセンサ100に対応する判定情報を正規化した後の判定情報が設定される。
判定情報生成・更新部243は、判定情報を生成し、生成した判定情報により、間隔制御テーブル233Cを更新する。判定情報は、各センサ100における計測データの送信失敗の頻度に応じて変化する特徴量であればよい。ここでは、判定情報が、サーバ200が計測データの受信に成功した確率であるデータ受信成功率であるとする。
具体的には、判定情報生成・更新部243は、以下のようにして、判定情報であるデータ受信成功率を生成する。
まず、判定情報生成・更新部243は、各センサ100について、当該センサ100に対応する送信履歴情報234を記憶部220から読み出す。そして、判定情報生成・更新部243は、送信履歴情報234に基づいて、直近の所定期間(例えば、現在の日時から過去1時間の期間)においてセンサ100が計測データの送信処理を行った回数(以下、データ受信想定数という)を見積もる。例えば、直近の所定期間が10:00:00〜11:00:00であり、送信履歴情報が図14のセンサID=1に対応する情報である場合は、以下のようにしてデータ受信想定数を求めることができる。9:50:00に送信間隔「60秒」を、10:30:00に送信間隔「70秒」を送信しているため、10:00:00〜10:30:00までの間、60秒間隔で計測データが送信され、10:30:00〜11:00:00までの間、70秒間隔で計測データが送信されているとみなすことができる。その結果、判定情報生成・更新部243は、所定期間/送信間隔を演算することにより、データ受信想定数を求めることができる。上記の例では、30×60/60+30×60/70≒26 がデータ受信想定数となる。
次に、判定情報生成・更新部243は、各センサ100について、当該センサ100に対応するACK送信日時情報232を記憶部220から読み出す。そして、判定情報生成・更新部243は、ACK送信日時情報232に基づいて、直近の所定期間(例えば、現在の日時から過去1時間の期間)において計測データの受信に成功した回数(以下、データ受信成功数という)を求める。具体的には、判定情報生成・更新部243は、直近の所定期間内に送信日時が含まれるACK送信日時情報の数を読み出し、当該数をデータ受信成功数とすればよい。
そして、判定情報生成・更新部243は、各センサ100について、データ受信成功数/データ受信想定数を演算することによりデータ受信成功率を求めることができる。このデータ受信成功率は、センサ100における計測データの送信失敗の頻度に応じて変化する特徴量であるといえる。
判定情報生成・更新部243は、生成した判定情報(ここではデータ受信成功率)と、データ書込部221から受けるセンサ識別情報と受信日時とに基づいて、間隔制御テーブル233Cを更新する。ここで、受信日時および判定情報の更新方法は、上記の実施形態1の判定情報更新部241の処理と同様であるため、ここでは説明を省略する。
また、判定情報生成・更新部243は、判定情報を正規化し、正規化後の判定情報を正規化判定情報の項目に設定する。ここで、データ受信成功率の正規化は、間隔制御テーブル233に含まれるすべてのデータ受信成功率のうち最小のデータ受信成功率により、間隔制御テーブル233Cに含まれるすべてのデータ受信成功率を減算する。そして、その差を、すべてのデータ受信成功率のうちの最大と最小のデータ受信成功率の差で割算し、その商に100を乗じることをいう。もしくは、データ受信成功率の正規化は、間隔制御テーブル233Cに含まれるすべてのデータ受信成功率のうち最小のデータ受信成功率により、間隔制御テーブル233Cに含まれるすべてのデータ受信成功率を減算する方法であってもよい。
そして、テーブル管理部223は、間隔制御テーブル233の更新が終了すると、データ書込部221から入力されたセンサ識別情報を含む更新終了信号を間隔決定部225に出力する。
図16は、本実施形態における間隔対応テーブルの一例を示す図である。図16に示されるように、間隔対応テーブル235Cは、確率の範囲ごとに間隔対応レコードを含む。間隔対応レコードは、データ受信成功率の項目と、送信間隔の項目とを含む。データ受信成功率の項目は、確率の範囲が設定されている。データ受信成功率は、それが高いほど、サーバ200が計測データの受信に成功した確率が高いことを示す。送信間隔の項目は、時間の間隔が設定されている。ここでは、データ受信成功率が大きいほど、送信間隔が長くなるように設定されている。
本実施形態では、間隔決定部225は、テーブル管理部223Aから更新終了信号が入力されると、テーブル管理部223Aから入力された更新終了信号に含まれるセンサ識別情報が設定されている間隔制御レコードを間隔制御テーブル233Cから抽出する。そして、間隔決定部225は、正規化判定情報である正規化後のデータ受信成功率に対応する時間間隔を間隔対応テーブル235Cから読み出し、読み出した時間間隔を送信間隔として決定する。
<データ処理システムの処理の流れ>
次に、本実施形態におけるデータ処理システム1における処理の流れについて、図17および図18のフローを参照しながら説明する。図17は、本実施形態のセンサにおける処理の流れを示すフローチャートであり、図18は、サーバ200Aにおける処理の流れを示すフローチャートである。
図17に示されるように、本実施形態のセンサの処理は、図6のフローと比較して、S4,S9の処理を実行せず、S5の代わりに、判定情報が付加されない計測データを送信する処理(S42)を実行する点でのみ相違する。そのため、ここでは詳細な説明を省略する。
次に、図18を参照しながらサーバ200Aにおける送信間隔情報の決定・送信処理の流れを説明する。
まず、サーバ200Aにおいて、データ書込部221は、無線通信部210がいずれか一つのセンサ100から計測データを受信したか否かを判断する(S51)。計測データが受信されない場合(S51でNo)、データ書込部221は、計測データを受信するまで待機する。
計測データが受信された場合(S51でYes)、実施形態1と同様に、S22〜S25の処理を行う。
次に、判定情報生成・更新部243は、間隔制御テーブル233の中の何れか一つの間隔制御レコードを選択する(S52)。そして、判定情報生成・更新部243は、選択した間隔制御レコードの含まれるセンサIDで示されるセンサ100に対応する判定情報(ここではデータ受信成功率)を求め、間隔制御レコードの中の判定情報を更新する(S53)。その後、未選択の間隔制御レコードがあるか否かを判断し(S54)、ある場合にはS52の処理に戻る。これにより、S52およびS53の処理が、全ての間隔制御レコードに対して実行される。
全ての間隔制御レコードに対してS53の判定情報更新の処理が実行されると(S54でNo)、判定情報更新部241は、間隔制御テーブル233の中の何れか一つの間隔制御レコードを選択する(S55)。そして、判定情報更新部241は、選択した間隔制御レコードの含まれる判定情報を正規化し、正規化判定情報の項目に正規化後のデータ受信成功率を設定する(S56)。その後、未選択の間隔制御レコードがあるか否かを判断し(S57)、ある場合にはS55の処理に戻る。これにより、S55およびS56の処理が、全ての間隔制御レコードに対して実行される。
全ての間隔制御レコードに対してS56の判定情報正規化の処理が実行されると(S57でNo)、テーブル管理部223は、データ書込部221から受けたセンサ識別情報を含む更新終了信号を間隔決定部225に出力する。そして、間隔決定部225は、更新終了信号が入力されると、更新終了信号に含まれるセンサ識別情報が設定されている間隔制御レコードを間隔制御テーブル233から抽出する。そして、間隔決定部225は、間隔対応テーブル235を参照して、抽出された間隔制御レコードに含まれる正規化判定情報で示される正規化後のデータ受信成功率に対応する間隔を送信間隔として決定する(S30)。その後、図7で示したS31およびS32の処理が実行される。
このように、本実施形態によれば、サーバ200は、各センサ100における計測データの送信失敗の頻度に応じて変化する特徴量であるデータ受信成功率を判定情報として生成する。そして、サーバ200において、間隔決定部225は、送信失敗の頻度が相対的に多いことを示す判定情報に対応するセンサ100に対して、相対的に短い送信間隔を決定する。
具体的には、サーバ200Aは、複数のセンサ100それぞれに対して、データ受信成功率に応じた送信間隔を決定する。具体的には、データ受信成功率が小さいほど、小さい送信間隔に決定し、データ受信成功率が大きいほど、大きい送信間隔に決定する。このため、計測データ181の送信失敗の頻度の高いセンサ100は、小さい送信間隔に基づいて送信日時を決定し、計測データ181の送信失敗の頻度の低いセンサ100は、大きい送信間隔に基づいて送信日時を決定することができる。これにより、データの衝突による送信失敗の頻度を下げることができるとともに、送信失敗の頻度の高いセンサ100を優先してデータ送信させることができる。したがって、送信失敗の頻度の高いセンサ100において、サーバ200Aに送信されることなく記憶部220から計測データが削除されることを防止でき、サーバ200Aは、複数のセンサ100から均一にデータを収集することができる。
<変形例2−1>
上記の説明では、判定情報生成・更新部243が判定情報としてデータ受信成功率を生成する場合を例に説明した。しかしながら、判定情報生成・更新部243は、判定情報として、データ受信成功率とは異なる特徴量を生成してもよい。本変形例では、判定情報生成・更新部243は、サーバ200が受信していない計測データの量を示す未受信データ量を判定情報として生成する場合である。
なお、本変形例を含み以下の変形例では、図12に示すACK送信日時情報232および送信履歴情報234を記憶部220が記憶していなくてもよい。
本変形例では、判定情報生成・更新部243は、以下のようにして、判定情報である未受信データ量を生成する。
判定情報生成・更新部243は、直近の所定期間(例えば、1時間前から現時点まで)において、記憶部220に書き込んだ計測データのデータ量(受信データ量)を、センサ100ごとにカウントしておく。例えば、判定情報生成・更新部243は、センサ100ごとに、当該センサ100を識別するセンサ識別情報と対応付けられた計測データ231を記憶部220の中から特定する。そして、判定情報生成・更新部243は、特定した計測データ231の中から、直近の所定期間内に受信時刻が含まれる計測データ231を抽出し、抽出した計測データ231の合計データ量を受信データ量とすればよい。
また、判定情報生成・更新部243は、センサ100ごとに、直近の所定期間で受信が想定される計測データの合計量である受信想定データ量を予め記憶しておく。なお、受信想定データ量は、例えば、センサ部120における計測時間間隔をM、直近の所定期間をP、センサ部120が一回の計測で生成する計測データのデータ量をDとするとき、D×P/Mで求めることができる。
そして、判定情報生成・更新部243は、センサ100ごとに、受信想定データ量から受信データ量を減算することにより、判定情報である未受信データ量を生成することができる。なお、未受信データ量は、センサ100において計測データの送信失敗の頻度が高いほど多くなる量であるため、上記の特徴量であるといえる。
判定情報生成・更新部243は、生成した判定情報(ここでは未受信データ量)と、データ書込部221から受けるセンサ識別情報と受信日時とに基づいて、間隔制御テーブル233Dを更新する。この更新方法は、上記と同様である。
また、記憶部220は、図15に示す間隔制御テーブル233Cの代わりに、図19に示す間隔制御テーブル233Dを記憶する。図19は、本変形例における間隔制御テーブルの一例を示す図である。図19に示されるように、間隔制御テーブル233Dは、複数のセンサ100それぞれのセンサ識別情報ごとに間隔制御レコードを含む。間隔制御レコードは、図15に示す間隔制御テーブル233Cと同様に、センサIDの項目と、最新受信日時の項目と、判定情報の項目と、正規化判定情報の項目とを含む。ただし、判定情報の項目は、上記のようにして求められた未受信データ量が設定される。正規化判定情報の項目は、未受信データ量を正規化した後のデータ受信成功率が設定される。未受信データ量の正規化は、間隔制御テーブル233Dに含まれるすべての未受信データ量のうちの最小値で、間隔制御テーブル233Dに含まれるすべての未受信データ量を減算することをいう。
また、記憶部220は、図16に示す間隔対応テーブル235Cの代わりに、図20に示す間隔対応テーブル235Dを記憶する。図20は、本変形例における間隔対応テーブルの一例を示す図である。図20に示されるように、間隔対応テーブル235Dは、データ量の範囲ごとに間隔対応レコードを含む。間隔対応レコードは、未受信データ量の項目と、送信間隔の項目とを含む。未受信データ量の項目は、データ量の範囲が設定されている。未受信データ量は、それが大きいほど、サーバ200への計測データの送信が失敗した可能性が高いことを示す。送信間隔の項目は、時間の間隔が設定されている。ここでは、未受信データ量が大きいほど、送信間隔が小さくなるように設定されている。
そして、間隔決定部225は、正規化判定情報である正規化後の未受信データ量に対応する時間間隔を間隔対応テーブルから読み出し、読み出した時間間隔を送信間隔として決定する。
このように、本変形例によれば、サーバ200は、複数のセンサ100それぞれに対して、未受信データ量に応じた送信間隔を決定する。未受信データ量が大きいほど、小さい送信間隔に決定し、未受信データ量が小さいほど、大きい送信間隔に決定する。このため、計測データ181の送信失敗の頻度が高いセンサ100は、小さい送信間隔に基づいて送信日時を決定し、計測データ181の送信失敗の頻度の低いセンサ100は、大きい送信間隔に基づいて送信日時を決定することができる。これにより、サーバ200Aは、複数のセンサ100から均一にデータを収集することができる。
<変形例2−2>
また、判定情報生成・更新部243は、データ受信成功率の代わりに、直近の所定期間におけるデータ受信成功数またはデータ受信失敗数を判定情報として生成してもよい。ここで、データ受信失敗数は、データ受信想定数からデータ受信成功数を減算することにより求まる。
なお、データ受信成功数が判定情報である場合、サーバ200Aの記憶部220は、データ受信成功数が小さいほど、送信間隔が小さくなるように設定されている間隔対応テーブルを記憶する。また、データ受信失敗数が判定情報である場合、サーバ200Aの記憶部220は、データ受信失敗数が大きいほど、送信間隔が小さくなるように設定されている間隔対応テーブルを記憶する。
これによっても、送信失敗の頻度が高いセンサ100において、サーバ200Aに送信されることなく記憶部220から計測データが削除されることを防止でき、サーバ200は、複数のセンサ100から均一にデータを収集することができる。
なお、本変形例は、各センサの送信間隔がほぼ同一である場合に有効である。
<変形例2−3>
また、判定情報生成・更新部243は、判定情報として、さらに別の特徴量を生成してもよい。本変形例は、計測データを受信することなく受信予定日時から経過した時間を判定情報として生成する場合である。データ送信に失敗した場合、本来送信すべき日時に計測データを送信できなくなる。そのため、計測データを受信することなく受信予定日時から経過した時間は、データ送信の失敗の回数に依存して大きくなる。そのため、計測データを受信することなく受信予定日時から経過した時間は、データ送信の失敗の回数に関した特徴量であるといえる。
本変形例では、記憶部220は、間隔制御テーブル233Cではなく、図21に示される間隔制御テーブル233Eを記憶する。図21に示されるように、間隔制御テーブル233Eは、複数のセンサ100それぞれのセンサ識別情報ごとに間隔制御レコードを含む。間隔制御レコードは、図15に示す間隔制御テーブル233Cと同様に、センサIDの項目と、最新受信日時の項目と、判定情報の項目と、正規化判定情報の項目とを含む。ただし、判定情報の項目は、受信予定日時からの経過時間が設定される。また、正規化判定情報の項目は、受信予定日時からの経過時間を正規化した後の経過時間が設定される。さらに、間隔制御テーブル233Eは、受信予定日時の項目も含む。
本変形例では、判定情報生成・更新部243は、各センサ100について、当該センサ100に対応する間隔制御レコードの中の最新受信日時に、間隔送信部227により送信された送信間隔情報で示される送信間隔を加えた日時を受信予定日時とし、間隔制御テーブル233Eの受信予定日時の項目に設定する。さらに、判定情報生成・更新部243は、受信予定日時からの経過時間を判定情報として生成し、判定情報の項目に設定する。なお、現在の日時が受信予定日時よりも前である場合、経過時間を「0」として設定してもよい。
また、本変形例では、判定情報生成・更新部243は、間隔制御テーブル233Eに含まれるすべての判定情報(経過時間)のうち最大の経過時間により、間隔制御テーブル233Eに含まれる各経過時間から減算した値を正規化判定情報として設定する。
また、記憶部220は、図に示す間隔対応テーブル235Cの代わりに、図22に示す間隔対応テーブル235Eを記憶する。図22は、本変形例における間隔対応テーブルの一例を示す図である。図22に示されるように、間隔対応テーブル235Eは、差分時間の範囲ごとに間隔対応レコードを含む。間隔対応レコードは、正規化後の経過時間の項目と、送信間隔の項目とを含む。正規化後の経過時間の項目は、時間の範囲が設定されている。正規化後の経過時間は、その絶対値が小さいほど、計測データの送信に連続して失敗している回数が多いことを示す。送信間隔の項目は、時間の間隔が設定されている。ここでは、正規化後の経過時間の絶対値が小さいほど、送信間隔が小さくなるように設定されている。
そして、間隔決定部225は、正規化判定情報である正規化後の経過時間に対応する時間間隔を間隔対応テーブルから読み出し、読み出した時間間隔を送信間隔として決定する。
このように、本変形例によれば、サーバ200Aは、複数のセンサ100それぞれに対して、受信予定日時からの経過時間に応じた送信間隔を決定する。具体的には、当該経過時間が小さいほど、大きい送信間隔に決定し、当該経過時間が大きいほど、小さい送信間隔に決定する。このため、計測データ181の送信が連続して失敗した回数が多いセンサ100は、小さい送信間隔に基づいて送信日時を決定し、計測データ181の送信失敗の回数が少ないセンサ100は、大きい送信間隔に基づいて送信日時を決定することができる。これにより、データの衝突による送信失敗の頻度を下げることができるとともに、送信失敗の回数の多いセンサ100を優先してデータ送信させることができる。したがって、送信失敗の回数の多いセンサ100において、サーバ200Aに送信されることなく記憶部220から計測データが削除されることを防止でき、サーバ200Aは、複数のセンサ100から均一にデータを収集することができる。
<変形例2−4>
本変形例は、変形例2−3と類似した例である。本変形例では、計測データを受信することなく最新受信日時から経過した時間を判定情報として生成する場合である。最新受信日時からの経過時間も、変形例2−3で記載した受信予定日時からの経過時間と同様に、データ送信の失敗の連続回数に依存して大きくなる。そのため、受信予定日時からの経過時間の代わりに、最新受信日時からの経過時間を用いても良い。
本変形例では、間隔制御レコードは、判定情報の項目には、最新受信日時からの経過時間が設定される。また、正規化判定情報の項目には、最新受信日時からの経過時間を正規化した後の経過時間が設定される。この正規化は、変形例2−3と同様の方法により行われる。
また、本変形例では、記憶部220は、正規化後の経過時間の絶対値が大きいほど、送信間隔が大きくなるように設定されている間隔対応テーブルを記憶する。
これにより、計測データ181の送信が連続して失敗した回数が多いセンサ100は、小さい送信間隔に基づいて送信日時を決定し、計測データ181の送信失敗の回数が少ないセンサ100は、大きい送信間隔に基づいて送信日時を決定することができる。その結果、データの衝突による送信失敗の頻度を下げることができるとともに、送信失敗の回数の多いセンサ100を優先してデータ送信させることができる。したがって、送信失敗の回数の多いセンサ100において、サーバ200に送信されることなく記憶部220から計測データが削除されることを防止でき、サーバ200は、複数のセンサ100から均一にデータを収集することができる。
<変形例2−5>
各センサ100において、センサ部120が、記憶部150に格納された送信間隔情報171で示される送信間隔と同じ計測時間間隔で計測する場合には、本変形例を適用することができる。
すなわち、本変形例では、データ書込部221は、センサ100から受けた計測データを記憶部220に格納する際、センサ識別情報とともに、その受信日時を示す受信日時情報を当該計測データに付加する。
そして、判定情報生成・更新部243は、センサごとに、最新の受信日時を示す受信日時情報が付加された計測データを特定し、当該計測データに含まれる計測日時情報で示される計測日時と、当該受信日時情報で示される受信日時との差分時間を求める。そして、当該差分時間を判定情報として生成する。このような差分時間は、センサ100においてデータの送信に失敗した回数が多くなるほど長くなるものである。したがって、当該差分時間は、計測データの送信失敗の頻度に応じて変化する特徴量であるといえる。
本変形例では、間隔制御レコードの判定情報の項目には、上記の差分時間が設定される。また、正規化判定情報の項目には、正規化した後の差分時間が設定される。この正規化は、変形例2−3と同様の方法により行えばよい。
また、本変形例では、記憶部220は、正規化後の差分時間の絶対値が大きいほど、送信間隔が大きくなるように設定されている間隔対応テーブルを記憶する。
これにより、計測データ181の送信が連続して失敗した回数が多いセンサ100は、小さい送信間隔に基づいて送信日時を決定し、計測データ181の送信失敗の回数が少ないセンサ100は、大きい送信間隔に基づいて送信日時を決定することができる。その結果、データの衝突による送信失敗の頻度を下げることができるとともに、送信失敗の回数の多いセンサ100を優先してデータ送信させることができる。したがって、送信失敗の回数の多いセンサ100において、サーバ200Aに送信されることなく記憶部220から計測データが削除されることを防止でき、サーバ200Aは、複数のセンサ100から均一にデータを収集することができる。
〔実施形態3〕
本発明のさらに別の実施形態3について説明する。なお、説明の便宜上、実施形態1、2にて説明した図面と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
上記の実施形態1・2では、サーバが、一種類の判定情報と用いて、各センサのデータの送信間隔を決定するものとした。しかしながら、これに限らず、複数種類の判定情報を用いて送信間隔を決定してもよい。
例えば、センサから送信されるリトライ回数を第1判定情報(第2特徴量)とし、サーバで生成するデータ受信成功率を第2判定情報(第1特徴量)とし、これら二つの判定情報を用いて送信間隔を決定する。以下、この例の実施形態について説明する。
本実施形態では、センサは、図2に示す構成と同じとなる。すなわち、計測データを送信する際に、第1判定情報としてリトライ回数を付加する。
一方、サーバは、実施形態1と実施形態2との構成をあわせもつ。図23は、本実施形態に係るサーバの構成を示すブロック図である。
本実施形態に係るサーバ200Bは、図3に示す実施形態1のサーバ200と比較して、テーブル管理部223の代わりにテーブル管理部223Bを、間隔決定部225の代わりに間隔決定部225Bを備える点で相違する。ここでは、相違点について主に説明する。
テーブル管理部223Bは、第1判定情報更新部241Bと、第2判定情報生成・更新部243Bとを備える。第1判定情報更新部241Bは、実施形態1で説明した判定情報更新部241と同様の機能を有するものであり、第1判定情報としてのリトライ回数を間隔制御テーブル233Fに設定するとともに正規化する。また、第2判定情報生成・更新部243Bは、実施形態2で説明した判定情報生成・更新部243と同様の機能を有すものであり、第2判定情報としてのデータ受信成功率を間隔制御テーブル233Fに設定するとともに正規化する。そのため、ここでは詳細な説明を省略する。
なお、本実施形態では、記憶部220は、図24に示されるような間隔制御テーブル233Fを記憶する。
また、記憶部220は、図25に示されるような第1間隔対応テーブル235Fと、図26に示されるような第2間隔対応テーブル235Gとを記憶している。
図25に示されるように、第1間隔対応テーブル235Fは、リトライ回数ごとに間隔対応レコードを含む。間隔対応レコードは、リトライ回数の項目と、送信間隔の調整量の項目とを含む。ここでは、リトライ回数が多いほど、調整量が大きくなるように、間隔対応テーブル235Fが設定されている。
図26に示されるように、第2間隔対応テーブル235Gは、確率の範囲ごとに間隔対応レコードを含む。間隔対応レコードは、データ受信成功率の項目と、送信間隔の項目とを含む。ここでは、データ受信成功率が大きいほど、送信間隔が長くなるように設定されている。
そして、間隔決定部225Bは、次のようにして送信間隔を決定する。
間隔決定部225Bは、テーブル管理部223Bから更新終了信号が入力されると、テーブル管理部223Bから入力された更新終了信号に含まれるセンサ識別情報が設定されている間隔制御レコードを間隔制御テーブル233Fから抽出する。そして、間隔決定部225Bは、抽出した間隔制御レコードの中から正規化後の第2判定情報であるデータ受信成功率を読み出す。さらに、間隔決定部225Bは、読み出した正規化後のデータ受信成功率に対応する送信間隔を第2間隔対応テーブル235Gから読み出し、読み出した送信間隔を間隔候補(時間間隔候補)とする。
次に、間隔決定部225Bは、更新終了信号に含まれるセンサ識別情報以外のセンサ識別情報が設定されている全ての間隔制御レコードを間隔制御テーブル233Fから抽出する。そして、抽出した全ての間隔制御レコードそれぞれについて、間隔決定部225Bは、抽出した間隔制御レコードの中から正規化後の第2判定情報であるデータ受信成功率を読み出し、読み出した正規化後のデータ受信成功率に対応する送信間隔を第2間隔対応テーブル235Gから特定する。その後、間隔決定部225Bは、特定したこれら送信間隔の中に、間隔候補と一致する送信間隔があるか確認する。間隔候補と一致する送信間隔が存在しない場合には、間隔決定部225Bは、間隔候補を、更新終了信号に含まれるセンサ識別情報に対応するセンサ100の送信間隔として決定する。
一方、間隔候補と一致する送信間隔が存在する場合には、間隔決定部225Bは、更新終了信号に含まれるセンサ識別情報に対応する正規化後の第1判定情報であるリトライ回数を間隔制御テーブル233Fから読み出す。そして、間隔決定部225Bは、読み出した正規化後のリトライ回数に対応する調整量を第1間隔対応テーブル235Fから特定する。間隔決定部225Bは、間隔候補から特定した調整量を減算した時間間隔を、更新終了信号に含まれるセンサ識別情報に対応するセンサ100の送信間隔として決定する。なお、上述したように、リトライ回数が多いほど、調整量が大きくなるように、間隔対応テーブル235Fが設定されている。そのため、リトライ回数が多いほど、送信間隔が短くなる。
次に、図27および図28を参照しながら、本実施形態におけるサーバの処理の流れについて説明する。
図27に示されるように、図18に示すS21からS25の処理が行われる。その後、S61において、第1判定情報更新部241Bは、判定情報の項目にデータ書込部221から入力された第1判定情報(ここではリトライ回数)を設定する(S61)。
次に、第2判定情報生成・更新部243Bは、何れか一つの間隔制御レコードを選択する(S62)。そして、第2判定情報生成・更新部243Bは、選択した間隔制御レコードの含まれるセンサIDで示されるセンサについての判定情報を生成し、制御レコードの中の第2判定情報(ここではデータ受信成功率)を更新する(S63)。その後、未選択の間隔制御レコードがあるか否かを判断し(S64)、ある場合にはS62の処理に戻る。これにより、S62およびS63の処理が、全ての間隔制御レコードに対して実行される。なお、S62からS64の処理は、図18で示すS52からS54と同様である。
続いて、テーブル管理部223Bは、間隔制御テーブル233Fの中の何れか一つの間隔制御レコードを選択する(S65)。そして、第1判定情報更新部241Bおよび第2判定情報生成・更新部243Bは、選択した間隔制御レコードの含まれる第1判定情報および第2判定情報の正規化を行い、正規化第1判定情報および正規化第2判定情報の項目に設定する(S66)。当該正規化の処理は、図7に示すS28および図18に示すS56と同様である。その後、未選択の間隔制御レコードがあるか否かを判断し(S67)、ある場合にはS65の処理に戻る。これにより、S65およびS66の処理が、全ての間隔制御レコードに対して実行される。
全ての間隔制御レコードに対して判定情報正規化の処理が実行されると(S67でNo)、テーブル管理部223は、データ書込部221から受けたセンサ識別情報を含む更新終了信号を間隔決定部225Bに出力する。
そして、間隔決定部225は、更新終了信号に含まれるセンサ識別情報で示されるセンサ100の送信間隔を決定する(S68)。その後、図18と同様にS31およびS32が実行される。
次に、S68の詳細な処理の流れについて説明する。図28は、S68の処理の詳細を示すフローチャートである。まず、間隔決定部225Bは、入力された更新終了信号に含まれるセンサ識別情報に対応する正規化後のデータ受信成功率を読み出す。そして、間隔決定部225Bは、当該正規化後のデータ受信成功率に対応する送信間隔を第2間隔対応テーブル235Gから読み出し、読み出した送信間隔を間隔候補とする(S71)。
次に、間隔決定部225Bは、他のセンサ識別情報に対応する正規化後のデータ受信成功率を読み出し、読み出した正規化後のデータ受信成功率に対応する送信間隔を第2間隔対応テーブル235Gから特定する。そして、間隔決定部225Bは、特定したこれら送信間隔の中に、間隔候補と一致する送信間隔があるか確認する(S72)。
間隔候補と一致する送信間隔が存在しない場合(S72でNo)、間隔決定部225Bは、S71で求めた間隔候補を、更新終了信号に含まれるセンサ識別情報に対応するセンサ100(設定対象のセンサ100)の送信間隔として決定する(S73)。
一方、間隔候補と一致する送信間隔が存在する場合(S72でYes)、間隔決定部225Bは、更新終了信号に含まれるセンサ識別情報に対応する正規化後のリトライ回数を間隔制御テーブル233Fから読み出す。さらに、間隔決定部225Bは、この正規化後のリトライ回数に対応する調整量を第1間隔対応テーブル235Fから特定し、間隔候補から当該調整量を減算した間隔を、設定対象のセンサ100の送信間隔として決定する(S74)。
このように、本実施形態によれば、設定対象のセンサ100について、第2判定情報(ここではデータ受信成功率)を基に間隔候補を決定する。この際、データ受信成功率が小さいほど間隔候補が短くなるように決定する。同様にして、設定対象以外のセンサ100についても、間隔候補を決定する。そして、設定対象のセンサ100の間隔候補と、設定対象以外のいずれか一つのセンサ100の間隔候補とが同一が判定し、同一ではない場合には、設定対象のセンサ100の送信間隔を、当該センサ100について求めた間隔候補とする。一方、同一のものがある場合には、設定対象のセンサ100の送信間隔を、当該センサ100について求めた間隔候補を、当該センサ100の正規化後の第1判定情報(ここではリトライ回数)に対応する調整量で調整した間隔とする。この際、リトライ回数が多くなるほど調整量を大きくし、間隔候補から調整量を減算する調整を行う。これにより、リトライ回数が多いほど送信間隔が短くなる。
その結果、第2判定情報から求めた送信間隔が同じであっても、第1判定情報を基に送信間隔をずらすことができる。これにより、センサ100間の計測データの衝突をより確実に避けることができる。
〔補足〕
上記の説明では、判定情報を正規化する際、全てのセンサに対応する判定情報で示される最大値(または最小値)で正規化したが、最小値(または最大値)で正規化してもよい。
例えば、実施形態1のリトライ回数、変形例1−1の未送信データ量、変形例1−3の削除データ量、変形例1−7の送信に成功した回数または送信に失敗した回数、変形例1−8の電池残量値、変形例2−1の未受信データ量、変形例2−2のデータ受信成功数またはデータ受信失敗数、変形例2−3,4の経過時間および変形例2−5の差分時間の場合、次の(1)および(2)のいずれの正規化であってもよい。(1)全てのセンサ100に対応する判定情報のうちの最小値により、各判定情報を減算する。(2)全てのセンサ100に対応する判定情報のうちの最大値と間隔対応テーブルの中の判定情報の項目の最大値との差分を求め、各判定情報に当該差分を加算する。
また、変形例1−2の未送信データ率、変形例1−4の削除データ率、変形例1−5,6のデータ送信成功率、実施形態2のデータ受信成功率の場合、上記の(1)、(2)、次の(3)および(4)のいずれの正規化であってもよい。(3)全てのセンサ100に対応する判定情報のうちの最大値により、各判定情報を割算し、その商に100を乗じる。(4)すべてのセンサ100に対応する判定情報のうちの最小値により、各判定情報を減算する。そして、その差を、すべてのセンサ100に対応する判定情報のうちの最大値と最小値との差で割算し、その商に100を乗じる。
上記の(1)および(4)は、すべてのセンサ100に対応する判定情報のうちの最小値を基準値として正規化しており、上記の(2)および(3)は、すべてのセンサ100に対応する判定情報のうちの最大値を基準値として正規化している。そのため、当該基準値に対する相対的な値(例えば差や割合)に応じて、送信間隔を設定することができる。
なお、正規化の際の基準値となる最大値または最小値の判定情報を有するセンサ100に対しては常に同一の送信間隔が設定されることとなる。そのため、当該基準値となる最大値または最小値が、計測データの送信失敗の頻度が最も高いことを示している場合、計測データの送信失敗の頻度が小さいセンサ100の送信間隔を長くすることになる。これにより、計測データの送信失敗の頻度が相対的に高いことを示しているセンサ100の送信間隔を相対的に短くすることとなる。
一方、当該基準値となる最大値または最小値が、計測データの送信失敗の頻度が最も低いことを示している場合、計測データの送信失敗の頻度が大きいセンサ100の送信間隔を短くすることになる。これによっても、計測データの送信失敗の頻度が相対的に高いことを示しているセンサ100の送信間隔を相対的に短くすることとなる。
また、複数のセンサ100のうち何れか一つが上記サーバ200、200A、200Bの機能を有していてもよい。もしくは、複数のセンサ100から受けた計測データを別の装置に中継する中継装置が上記サーバ200、200A、200Bの機能を有していてもよい。
また、上記の各実施形態では、サーバ200、200A、200Bの間隔決定部は、各センサ100の送信間隔を決定するものとした。この場合、当該送信間隔を受けた各センサ100は、次に送信間隔を受けるまでの間、設定された送信間隔にしたがって計測データを送信することとなる。
しかしながら、サーバ200、200A、200Bの間隔決定部は、各センサ100において、次に計測データを送信するまでの送信間隔に対するオフセット量を決定してもよい。この場合、各センサ100は、予め定められた一定の送信間隔(基準時間間隔)を記憶しておく。そして、当該オフセット量を受けた各センサ100は、次に計測データを送信するまでの送信間隔についてだけ、上記の一定の送信間隔に当該オフセット量を加算した間隔としてもよい。この場合、間隔決定部は、1回分の送信間隔のみを設定することとなる。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
最後に、サーバ200、200A、200Bの各ブロック、特にサーバ制御部201は、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、サーバ200、200A、200Bは、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるサーバ200、200A、200Bの制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記サーバ200、200A、200Bに供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、サーバ200、200A、200Bを通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。