(57)【要約】【課題】センサノードの消費電力を削減しながら、欠損のない履歴データ及び最新の観測データを管理する。【解決手段】センサ端末と管理サーバからなるセンサネットシステムにおいて、センサ端末は、センサを用いて取得した観測データを前記管理サーバに送信し、管理サーバは、センサ端末から受信した観測データのうち最新の観測データを管理する最新データ蓄積管理部と、センサ端末から受信した任意の時刻の観測データから最新の観測データまでの履歴を履歴データとして管理する履歴データ蓄積管理部と、前記履歴データの欠損を管理し所定の規則に基づいて前記履歴データの欠損を補完するデータ欠損管理部と、を有し、観測データの要求を受けると、要求の種類に応じて最新データ蓄積管理部に管理される最新の観測データか、欠損が補完され履歴データ蓄積管理部で管理される履歴データの少なくとも何れか一方を出力する。【選択図】図４
2008071157.tif 000002
【特許請求の範囲】
【請求項１】
センサ端末と、管理サーバからなるセンサネットシステムであって、
前記センサ端末は、センサを用いて取得した観測データを前記管理サーバに送信し、
前記管理サーバは、前記センサ端末から受信した前記観測データのうち最新の観測データを管理する最新データ蓄積管理部と、前記センサ端末から受信した任意の時刻の前記観測データから前記最新の観測データまでの履歴を履歴データとして管理する履歴データ蓄積管理部と、前記履歴データの欠損を管理し所定の規則に基づいて前記履歴データの欠損を補完するデータ欠損管理部と、を有し、
前記観測データの要求を受けると、該要求の種類に応じて前記最新データ蓄積管理部に管理される最新の観測データか、前記欠損が補完され前記履歴データ蓄積管理部で管理される履歴データの少なくとも何れか一方を出力することを特徴とするセンサネットシステム。
【請求項２】
前記センサ端末は、通信を行う無線通信回路を有し、前記観測データを送信すると、前記管理サーバからの応答を受信したか否かに関らず、前記無線通信回路への電力供給を遮断することを特徴とする請求項１に記載のセンサネットシステム。
【請求項３】
前記観測データは、該観測データが取得された順序を示すシーケンス番号を含み、
前記データ欠損管理部は、前記履歴データとして格納されている観測データのシーケンス番号が連続しない場合、前記履歴データに欠損があると判定することを特徴とする請求項１または２に記載のセンサネットシステム。
【請求項４】
前記データ欠損管理部は、
前記格納されている履歴データに欠損がある場合、前記欠損している観測データのうち最も古い観測データの前記シーケンス番号と、前記最新の観測データの前記シーケンス番号との差が所定の閾値を超えたか否かを判定し、
前記シーケンス番号の差が所定の閾値を超えたと判定された場合、前記センサ端末に、前記欠損している観測データの送信を要求することを特徴とする請求項３に記載のセンサネットシステム。
【請求項５】
前記データ欠損管理部は、
前記観測データの要求を受けると、前記履歴データに欠損があるか否かを判定し、
前記履歴データに欠損があると判定された場合、前記センサ端末に、前記欠損している観測データの送信を要求することを特徴とする請求項１乃至４の何れかに記載のセンサネットシステム。
【請求項６】
前記データ欠損管理部は、
所定の時刻に前記履歴データに欠損があるか否かを判定し、
前記履歴データに欠損があると判定された場合、前記センサ端末に、前記欠損している観測データの送信を要求することを特徴とする請求項１乃至５の何れかに記載のセンサネットシステム。
【請求項７】
前記データ欠損管理部は、
前記センサ端末から予め定められた間隔で送信されるハートビート信号を受信し、
前記ハートビート信号の受信状況に基づいて、前記履歴データに欠損があるか否かを判定し、
前記履歴データに欠損があると判定された場合、前記センサ端末に、前記欠損している観測データの送信を要求することを特徴とする請求項１乃至６の何れかに記載のセンサネットシステム。
【請求項８】
前記センサ端末は、所定の間隔で前記観測データを送信し、
前記データ欠損管理部は、
前記センサ端末から送信される前記観測データを前記ハートビート信号として使用し、
前記ハートビート信号を前記所定の間隔で受信しないとき、前記履歴データに欠損があると判定し、
前記履歴データに欠損があると判定された場合、前記ハートビート信号を受信した後、前記センサ端末に、前記欠損している観測データの送信を要求することを特徴とする請求項７に記載のセンサネットシステム。
【請求項９】
前記センサ端末のメモリに格納された観測データは、該観測データが取得された時刻を示すタイムスタンプ、及び、前記タイムスタンプの値が前記管理サーバによって管理される時刻と同期しているか否かを示す時刻同期フラグと関連付けられ、
前記センサ端末は、前記タイムスタンプの値が前記管理サーバによって管理される時刻と同期していないことを示す時刻同期フラグと関連付けられた観測データの送信を禁止することを特徴とする請求項１乃至８の何れかに記載のセンサネットシステム。
【請求項１０】
前記センサ端末は、
前記管理サーバによって管理される時刻を示す時刻情報を取得すると、前記時刻情報に前記センサ端末が保持する時刻を同期させる時刻同期処理を実行し、
前記時刻情報が示す時刻と、前記時刻同期処理が実行される前の前記センサ端末が前記時刻情報を取得した時点で保持している時刻との差分を算出し、
前記算出された差分を、前記メモリに格納されている観測データに関連付けられたタイムスタンプに加算し、
前記差分が加算されたタイムスタンプと関連付けられた前記時刻同期フラグを、前記タイムスタンプの値が前記管理サーバによって管理される時刻と同期していることを示す値にすることを特徴とする請求項９に記載のセンサネットシステム。
【請求項１１】
前記管理サーバは、前記要求の種類と前記最新データ蓄積管理部または前記履歴データ蓄積管理部の少なくとも何れか一方との対応づけに基づいて、前記最新データ蓄積管理部に管理される最新の観測データか、前記欠損が補完され前記履歴データ蓄積管理部で管理される履歴データの少なくとも何れか一方を出力することを特徴とする請求項1乃至１０の何れかに記載のセンサネットシステム。
【請求項１２】
前記観測データの要求が、前記最新の観測データ及び前記履歴データをグラフ形式で表示することを要求するものである場合、
前記管理サーバは、前記履歴データ蓄積管理部に格納される履歴データを出力し、該履歴データを出力後は前記最新データ蓄積管理部に格納される前記最新の観測データを出力することを特徴とする請求項１乃至１１の何れかに記載のセンサネットシステム。
【請求項１３】
前記管理サーバは、接続される表示部に前記最新の観測データ及び前記履歴データを、前記最新の観測データ及び前記履歴データが取得された時刻を横軸とするグラフ形式で表示させることを特徴とする請求項１２に記載のセンサネットシステム。
【請求項１４】
前記管理サーバは、接続される表示部に、前記最新の観測データを前記センサ端末を識別する情報とともに、表形式で表示させることを特徴とする請求項１乃至１１の何れかに記載のセンサネットシステム。
【請求項１５】
前記管理サーバは、接続される表示部に、前記最新の観測データを前記センサ端末の位置を示すマップ上に表示させることを特徴とする請求項１乃至１１の何れかに記載のセンサネットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書で開示される技術は、センサネットワークシステムに関し、特に、センシングデータの管理方法に関する。
【背景技術】
【０００２】
近年、センサノード及びセンサネット管理サーバから構成されるセンサネットシステムの開発が進められている。センサノードは、人又は場所の状態等（センシングデータ）を観測し、観測したセンシングデータをセンサネット管理サーバに送信する。センサネット管理サーバは、受信したセンシングデータに基づいて、各種処理を実行する。
【０００３】
センシングデータは、最新の値のみが利用される場合と、過去の一定期間の履歴が利用される場合とがある。このため、最新のセンシングデータと、センシングデータの履歴とを管理するための技術が開示されている（例えば、特許文献１及び特許文献２参照）。
【０００４】
特許文献１によれば、子局が、タイムスタンプ付きのデータを所定の周期で蓄積する。親局は、子局に回線を接続して、子局が蓄積したデータを収集する。親局は、タイムスタンプに基づいて、データの欠損の有無を判定する。データの欠損があると判定された場合、親局は、時刻情報を子局に送信することによって、欠損したデータを子局から収集する。
【０００５】
特許文献２によれば、プラントサーバは蓄積情報を保持し、プラントコントローラはリアルタイム情報を収集する。センターサーバは、エンドユーザ端末からの要求に従って、蓄積情報又はリアルタイム情報のいずれかをエンドユーザ端末に送信する。
【特許文献１】特開２００４−２４７７８５号公報
【特許文献２】特開２００４−４６７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
人又は移動する物等に取り付けられるセンサノードは、通常、電池によって動作し、無線通信路を介してデータをセンサネット管理サーバに送信する。
【０００７】
電池交換に起因するコストを削減するためには、センサノードの消費電力を削減することによって、電池交換の頻度を小さくすることが求められる。そのためには、センサノードが動作している時間を可能な限り短縮することが望ましい。
【０００８】
一方、無線通信の品質は、センサノードと無線局との位置関係等、種々の要因に依存するため、一定しない。このため、移動するセンサノードから送信されたデータは、センサネット管理サーバまで到達しない場合もある。その結果、センシングデータの履歴に欠損が発生する。しかし、履歴の欠損によって、センサノードが取り付けられた人又は物の管理が困難になる場合が想定される。例えば、センシングデータは、製品の品質を保証するために使用されることがある。この場合、履歴の欠損によって品質の保証ができなくなるおそれがある。具体的には、例えば、温度によって品質が変化する製品の品質を保証するために、その製品が所定の範囲外の温度に晒されていないことを証明する場合がある。この場合、製品に温度を計測するセンサノードを取り付ければ、センシングデータの履歴によって製品の品質が保証される。しかし、履歴に欠損があると、品質を保証できなくなるおそれがある。上記の具体例以外にも、履歴の欠損によって、センサノードが取り付けられた物又は人の管理が困難になる場合が想定される。
【０００９】
このように、最新のデータがリアルタイムで表示される段階では、部分的なデータを表示できないことが止むを得ないとしても、データの履歴（例えば日次レポート等）においては、可能な限り欠損のないデータが表示されるべきである。
【００１０】
さらに、センサネットシステムにおいては、センサノードが観測した現象をリアルタイムに伝送するという要求から、センサノードが出力する観測情報はできるだけ遅延送信したりせず、リアルタイムに転送することが要求される。
【００１１】
履歴の欠損を防ぐためには、データを確実にセンサネット管理サーバに到達させる必要がある。通常、確実なデータ転送のために、送信元は送信先からの応答（ＡＣＫｎｏｗｌｅｄｇｅｍｅｎｔ）を待つ。そして、応答がなかった場合、センサノードは、再度データを送信する。しかし、センサノードは、センサネット管理サーバからの応答を待つ間、及び、再度データを送信するときに、電力を消費する。このため、センサノードの消費電力を削減することが困難である。
【００１２】
特許文献１が開示する技術は、回線接続時に子局が蓄積データを送信し、かつデータを補完してから親局が転送するためリアルタイム性に欠ける。さらに、常に補完されたデータが転送されるため、最新のデータと履歴データとを使い分けることができない。また、親局が主導で子局への回線接続を制御するため、子局の消費電力を削減することが困難である。
【００１３】
特許文献２が開示する技術は、ユーザ端末からの要求を受けてプラントがリアルタイム情報を転送するため、リアルタイム性に欠ける。また、データを補完する処理を行わないため、蓄積情報において履歴の欠損が生じうる。
【課題を解決するための手段】
【００１４】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記のとおりである。
【００１５】
本発明のセンサネットシステムはセンサ端末と管理サーバからなり、センサ端末は、センサを用いて取得した観測データを前記管理サーバに送信し、管理サーバは、センサ端末から受信した観測データのうち最新の観測データを管理する最新データ蓄積管理部と、センサ端末から受信した任意の時刻の観測データから最新の観測データまでの履歴を履歴データとして管理する履歴データ蓄積管理部と、履歴データの欠損を管理し所定の規則に基づいて履歴データの欠損を補完するデータ欠損管理部と、を有し、観測データの要求を受けると、要求の種類に応じて最新データ蓄積管理部に管理される最新の観測データか、欠損が補完され履歴データ蓄積管理部で管理される履歴データの少なくとも何れか一方を出力する。
【発明の効果】
【００１６】
本発明の一実施形態によれば、センサノードの消費電力を削減しながら、欠損のないセンシングデータの履歴を管理し、かつ最新のセンシングデータを提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１８】
図１は、本発明の実施の形態のセンサネットシステムの構成を示すブロック図である。
【００１９】
本実施の形態のセンサネットシステムは、センサネット管理サーバ１００、ＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ）サーバ１２０、メールサーバ１２５、ゲートウェイノード１３０、ルータノード１４０、センサノード１５０、管理クライアント１６０、業務クライアント１６５、有線センサ１７０、ＲＦＩＤリーダ１７５及びＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワーク１８０を備える。
【００２０】
ＩＰネットワーク１８０は、センサネット管理サーバ１００、ＲＤＢサーバ１２０、メールサーバ１２５、ゲートウェイノード１３０、管理クライアント１６０、業務クライアント１６５、有線センサ１７０及びＲＦＩＤリーダ１７５を相互に接続する。ＩＰネットワーク１８０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。
【００２１】
センサノード１５０は、本実施の形態のセンサネットシステムに分散されて設置される端末装置である。図１のセンサネットシステムには、９個のセンサノード１５０（ＳＳ１からＳＳ９）が設置されているが、いくつ設置されてもよい。各センサノード１５０は、ＺｉｇＢｅｅ通信部１５１、タスクマネージャ１５２、センサ制御部１５３及び電源管理部１５４を備える。
【００２２】
ＺｉｇＢｅｅ通信部１５１は、ＺｉｇＢｅｅプロトコルを用いて、ゲートウェイノード１３０又はルータノード１４０と通信する。タスクマネージャ１５２は、センサネット管理サーバ１００から発行された要求に従って、当該センサノード１５０に設定されている情報を変更する。なお、要求は、センサノード１５０に対して何らかの処理を依頼するための情報である。
【００２３】
センサ制御部１５３は、当該センサ制御部１５３に備わるセンサを用いて、環境情報を観測する。電源管理部１５４は、当該センサノード１５０の電源を制御する。例えば、電源管理部１５４は、設定されている起動間隔で電力を供給することによって、当該センサノード１５０を起動させる。
【００２４】
センサノード１５０は、当該センサノード１５０に備わるセンサを用いて、環境情報を観測する。観測される環境情報は、温度、湿度、加速度、又はその他のいかなる物理量であってもよい。センサノード１５０は、観測した環境情報を、観測イベントとして、ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１８５等の無線ネットワークを介してセンサネット管理サーバ１００に送信する。
【００２５】
センサノード１５０は、活動状態（ａｃｔｉｖａｔｅｄ）と休眠状態（ｓｌｅｅｐｉｎｇ）とを交互に繰り返す間欠動作（Ｉｎｔｅｒｍｉｔｔｅｎｔ  ｍｏｄｅ）をする。本実施の形態のセンサノード１５０は、タイマが計測する時刻に基づいて、所定の間隔で間欠動作をする。この場合、活動状態は、環境情報を観測するためにセンサが駆動されるとき、及び、観測データを送信するための無線通信をするときに相当する。この場合、センサノード１５０は、観測データの送信を終了すると、休眠状態となる。休眠状態において、センサノード１５０内のタイマ以外の部位が全て停止するため、タイマ以外の部位は電力を消費しない。このため、休眠状態のセンサノード１５０の消費電力は、活動状態のときと比較して、小さくなる。
【００２６】
以下の説明において、センサノード１５０が観測した環境情報を含むデータを、観測データと記載する。観測データは、環境情報に加えて、タイムスタンプ及びシーケンス番号（後述）を含んでもよい。また、過去から現在までのいずれかの時点の観測データ、または、それらの観測データの集合を、履歴データと記載する。
【００２７】
本実施の形態のセンサノード１５０は、環境情報を観測して観測データを送信するだけでなく、送信した観測データを履歴データとして蓄積する。そして、履歴データを要求するコマンドを受信すると、要求された履歴データを送信する。センサノード１５０の構成については、後で図２Ａ及び図２Ｂを参照して詳細に説明する。
【００２８】
ルータノード１４０は、ＺｉｇＢｅｅ通信部１４１及びルーティングマネージャ１４２を備える。ＺｉｇＢｅｅ通信部１４１は、ＺｉｇＢｅｅプロトコルを用いて、ゲートウェイノード１３０、センサノード１５０又は他のルータノード１４０と通信する。ルーティングマネージャ１４２は、外部から受信した情報の転送先を判定する。
【００２９】
ルータノード１４０は、無線ネットワークを形成し、センサノード１５０とゲートウェイノード１３０又は他のルータノード１４０との間のデータ通信を中継する。具体的には、ルータノード１４０は、センサノード１５０によって観測された環境情報又はセンサネット管理サーバ１００から発行された要求等を受信し、その要求等を、ゲートウェイノード１３０、センサノード１５０又は他のルータノード１４０に転送する。
【００３０】
ゲートウェイノード１３０は、ＺｉｇＢｅｅ通信部１３１、ＩＰ通信部１３２、ＰＡＮ制御部１３３及びルーティングマネージャ１３４を備える。
【００３１】
ＩＰ通信部１３２は、ＩＰネットワーク１８０を介して、センサネット管理サーバ１００と通信する。ルーティングマネージャ１３４は、外部から受信した情報の転送先を判定する。ＺｉｇＢｅｅ通信部１３１は、ＺｉｇＢｅｅプロトコルを用いて、ルータノード１４０又はセンサノード１５０と通信する。ＰＡＮ制御部１３３は、当該ゲートウェイノード１３０から構成されるＰＡＮ１８５を制御する。
【００３２】
ゲートウェイノード１３０は、ＩＰネットワーク１８０と、ＺｉｇＢｅｅ等の低電力無線ネットワークとを相互に接続する。具体的には、ゲートウェイノード１３０は、センサノード１５０によって観測された環境情報又はセンサネット管理サーバ１００から発行された要求等を受信し、その要求等を、センサネット管理サーバ１００、他のゲートウェイノード１３０、ルータノード１４０又はセンサノード１５０に転送する。
【００３３】
ＰＡＮ１８５は、複数のノードによって形成される無線のサブネットワークである。通常、ゲートウェイノード１３０がＰＡＮ１８５のコーディネータとなり、各ＰＡＮ１８５を管理する。ＰＡＮ１８５は、図１の「ＰＡＮ２」に示すようなツリー構造であってもよいし、「ＰＡＮ３」に示すようなメッシュ構造であってもよい。
【００３４】
センサネット管理サーバ１００は、オブジェクトマネージャ１０１、アクションマネージャ１０２、イベント配送部１０３、ＰＡＮマネージャ１０４、値変換部１０５、プロファイルドアダプタ１０６、ログマネージャ１０７及びＩＰ通信部１０８を含む計算機である。ＩＰ通信部１０８は、クライアントアダプタ１０９、ＲＤＢアダプタ１１０、ＳＭＴＰアダプタ１１１、ＺｉｇＢｅｅアダプタ１１２、有線センサアダプタ１１３及びＲＦＩＤアダプタ１１４を含む。
【００３５】
オブジェクトマネージャ１０１は、システムの構成情報及び各種のパラメータを管理する。例えば、オブジェクトマネージャ１０１は、イベント配送部１０３経由で受け取る各種イベントに基づいて、保持している情報を更新する。
【００３６】
アクションマネージャ１０２は、センサの観測結果に基づいて、各種の動作を管理する。
【００３７】
イベント配送部１０３は、観測データ等をイベントとして扱う。そして、イベント配送部１０３は、予め設定された条件に応じて、各マネージャ又は値変換部１０５にイベントを配信し、又は、アクションを起動する。
【００３８】
ＰＡＮマネージャ１０４は、ＰＡＮ１８５の状態を管理する。
【００３９】
値変換部１０５は、イベント配送部１０３経由で配信される観測データの単位変換等を実行する。変換されたデータは、例えば、イベント配送部１０３に戻されてもよい。
【００４０】
プロファイルドアダプタ１０６は、アプリケーションごとのデータ解釈ルール等を管理する。具体的には、プロファイルドアダプタ１０６は、ノードからのイベント又はコマンドに対する応答をサーバのデータ形式に変換し、あるいは、ノードに対するコマンドを無線通信のためのデータ形式に変換する。
【００４１】
ログマネージャ１０７は、イベント配送部１０３経由で配信されるノードからの各種イベント（例えば、観測データ）、及び、センサネット管理サーバ１００内のシステム動作状態等のログ出力を管理する。
【００４２】
ＩＰ通信部１０８は、ＩＰネットワーク１８０を介して各種クライアント又はサーバと通信するためのコンポーネント群である。
【００４３】
クライアントアダプタ１０９は、センサネット管理サーバ１００が管理クライアント１６０又は業務クライアント１６５と通信するためのインターフェースを提供する。ＲＤＢアダプタ１１０は、センサネット管理サーバ１００がＲＤＢサーバ１２０と通信するためのインターフェースを提供する。ＳＭＴＰアダプタ１１１は、センサネット管理サーバ１００が電子メールを送信するためのインターフェースを提供する。
【００４４】
ＺｉｇＢｅｅアダプタ１１２は、センサネット管理サーバ１００がＺｉｇＢｅｅ規格に準拠するネットワークと通信するためのインターフェースを提供する。ＺｉｇＢｅｅアダプタ１１２は、ＺｉｇＢｅｅネットワーク層以下のプロトコルを隠蔽する。
【００４５】
有線センサアダプタ１１３は、センサネット管理サーバ１００が有線センサ１７０と通信するためのインターフェースを提供する。有線センサアダプタ１１３は、接続される有線センサ１７０のネットワーク層以下のプロトコルを隠蔽する。有線センサアダプタ１１３は、有線センサ１７０と、無線通信するセンサノード１５０とが連携する応用システムにおいて使用される。
【００４６】
ＲＦＩＤアダプタ１１４は、センサネット管理サーバ１００がＲＦＩＤリーダ１７５又はＲＦＩＤライタ（図示省略）と通信するためのインターフェースを提供する。ＲＦＩＤアダプタ１１４は、接続されるＲＦＩＤリーダ１７５等のネットワーク層以下のプロトコルを隠蔽する。ＲＦＩＤアダプタ１１４は、ＲＦＩＤリーダ１７５とセンサノード１５０とが連携する応用システムにおいて使用される。
【００４７】
ＲＤＢサーバ１２０には、センサノード１５０によって観測された環境情報の履歴が格納される。これらの履歴は、例えば、ＲＤＢサーバ１２０が管理するハードディスクドライブ又はその他の記憶媒体に格納される。ＲＤＢサーバ１２０に格納される情報については、後で図１３Ｂ等を参照して詳細に説明する。
【００４８】
管理クライアント１６０は、センサネットシステムの管理者によって操作される計算機である。管理クライアント１６０は、管理者の操作を契機に、各種要求をセンサネット管理サーバ１００に送信する。
【００４９】
業務クライアント１６５は、センサネットシステムのクライアントによって操作される計算機である。業務クライアント１６５は、各種アプリケーションを実行する。
【００５０】
また、業務クライアント１６５は、センサノード１５０によって観測された環境情報を、センサネット管理サーバ１００から受信する。業務クライアント１６５は、受信した環境情報に基づいて、各種処理を実行する。
【００５１】
管理クライアント１６０及び業務クライアント１６５の少なくとも一方は、センサネット管理サーバ１００に対して、観測データを要求することができる。これらのクライアントは、センサネット管理サーバ１００から取得した観測データを表示してもよい。
【００５２】
有線センサ１７０は、環境情報を観測する。そして、有線センサ７０は、観測した環境情報を、ＩＰネットワーク１８０を介してセンサネット管理サーバ１００に送信する。
【００５３】
ＲＦＩＤリーダ１７５は、ＲＦＩＤ１７６を読み取り、読み取った結果を、ＩＰネットワーク１８０を介してセンサネット管理サーバ１００に送信する。
【００５４】
図２Ａは、本発明の実施の形態のセンサノード１５０の機能ブロック及びデータフローの説明図である。
【００５５】
本実施の形態のセンサノード１５０は、無線通信部２０１、センサ制御部２０２、最新データ組立部２０３、履歴データ応答部２０４、タイマ２０５及びデータ蓄積部２０６を含む。無線通信部２０１は、図１のＺｉｇＢｅｅ通信部１５１に相当する。センサ制御部２０２は、図１のセンサ制御部１５３に相当する。最新データ組立部２０３、履歴データ応答部２０４及びデータ蓄積部２０６は、図１のタスクマネージャ１５２に相当する。データ蓄積部２０６には、履歴データが蓄積される。データ蓄積部２０６に蓄積される履歴データの内容については、後で図２Ｂを参照して詳細に説明する。なお、データ蓄積部２０６は、ＥＥＰＲＯＭ等の不揮発メモリである。
【００５６】
次に、センサノード１５０が実行する処理を、ステップごとに説明する。
【００５７】
センサノード１５０は、自律的に（すなわち、他のノード又はサーバ等からの要求を受けずに）環境情報を観測し、観測データをセンサネット管理サーバ１００に送信することができる。さらに、センサノード１５０は、センサネット管理サーバ１００からの要求に従って、蓄積された観測データを管理サーバ１００に送信することもできる。
【００５８】
図２ＡのステップＡ２１１からＡ２１５は、センサノード１５０が自律的に環境情報を観測し、観測された値を含む観測データを送信するまでの処理を示す。
【００５９】
タイマ２０５は、時刻又は時間間隔を計測し、所定のタイミングで、センサ制御部２０２に指示を送信する（ステップＡ２１１）。例えば、タイマ２０５は、所定の時刻に指示を送信してもよいし、所定の時間間隔で指示を送信してもよい。
【００６０】
センサ制御部２０２は、タイマ２０５からの指示を受信すると、環境情報（例えば、温度及び湿度）を観測し、観測された環境情報を最新データ組立部２０３に送信する（ステップＡ２１２）。
【００６１】
最新データ組立部２０３は、受信した環境情報を含む観測データを生成し、その観測データをデータ蓄積部２０６に格納する（ステップＡ２１３）。このとき格納されるデータには、環境情報が観測された時刻を示すタイムスタンプ、及び、観測された順序を示すシーケンス番号が付与されている（図２Ｂ参照）。
【００６２】
次に、最新データ組立部２０３は、受信した観測データ（すなわち、ステップＡ２１３においてデータ蓄積部２０６に格納されたものと同じ観測データ）を、無線通信部２０１に送信する（ステップＡ２１４）。
【００６３】
無線通信部２０１は、受信した観測データを、ルータノード１４０又はゲートウェイノード１３０対して、無線によって送信する（ステップＡ２１５）。送信された観測データは、ルータノード１４０又はゲートウェイノード１３０によって受信された場合、ＩＰネットワーク１８０を経由してセンサネット管理サーバ１００に到達する。しかし、いずれのルータノード１４０又はゲートウェイノード１３０も観測データを受信できない場合もある。この場合、無線通信部２０１から送信された観測データは、センサネット管理サーバ１００に到達しない。
【００６４】
以下の説明において、ステップＡ２１５において送信された観測データは、リアルタイムデータとも記載される。
【００６５】
結局、センサ制御部２０２から送信されたリアルタイムデータは、データ蓄積部２０６に格納されるとともに、無線通信部２０１から送信される。
【００６６】
図２ＡのステップＢ２２１からＢ２２６は、センサノード１５０がセンサネット管理サーバ１００からコマンドを受信し、蓄積されたデータを送信するまでの処理を示す。
【００６７】
最初に、無線通信部２０１は、センサネット管理サーバ１００から、履歴データを取得するためのコマンドを受信する（ステップＢ２２１）。このコマンドは、センサネット管理サーバ１００から送信され、ＩＰネットワーク１８０及びゲートウェイノード１３０を経由して無線通信部２０１に到達する。このコマンドは、さらに一つ以上のルータノード１４０を経由してもよい。
【００６８】
次に、無線通信部２０１は、受信したコマンドを履歴データ応答部２０４に送信する（ステップＢ２２２）。
【００６９】
履歴データ応答部２０４は、受信したコマンドに従って、データを読み出すためのコマンドをデータ蓄積部２０６に送信し（ステップＢ２２３）、格納されているデータを取得する（ステップＢ２２４）。
【００７０】
次に、履歴データ応答部２０４は、取得したデータを無線通信部２０１に送信する（ステップＢ２２５）。
【００７１】
無線通信部２０１は、履歴データ応答部２０４から受信したデータを履歴データとして上位のノードに送信する（ステップＢ２２６）。ステップＢ２２１において複数の観測データを要求されている場合、ステップＢ２２６において、要求された複数の観測データがまとめて送信される。
【００７２】
なお、ステップＡ２１１からＡ２１５、及び、ステップＢ２２１からＢ２２６までのいずれの処理も実行されていないとき、センサノード１５０は休眠状態である。このとき、タイマ２０５以外の部位は、停止しているため、電力を消費しない。
【００７３】
図２Ｂは、本発明の実施の形態のセンサノード１５０のデータ蓄積部２０６に格納されたデータの説明図である。
【００７４】
データ蓄積部２０６に格納されたデータは、少なくとも、シーケンス番号２０７、タイムスタンプ２０８及び観測値２０９を含む。
【００７５】
シーケンス番号２０７は、各観測値２０９を識別するために、各観測値２０９が観測された順に付与される番号である。図２Ｂの例において、シーケンス番号２０７は、１６進数で表示されている。
【００７６】
タイムスタンプ２０８は、各観測値２０９が観測された日時を示す。
【００７７】
観測値２０９は、センサノード１５０が備えるセンサ（図１１のセンサ１１０３）によって観測された環境情報の値である。本実施の形態では、温度及び湿度が環境情報として観測されるが、その他の環境情報が観測されてもよい。
【００７８】
図２Ｂの例では、シーケンス番号２０７の値「００００」に対応するタイムスタンプ２０８及び観測値２０９として、それぞれ、「２００６０７１６Ｔ１０：００：０１」及び「２５．０、６０％」が格納されている。これは、２００６年７月１６日の１０時０分１秒に観測された温度及び湿度が、それぞれ、２５．０度及び６０％であったことを示す。
【００７９】
さらに、図２Ｂの例では、シーケンス番号２０７の値「０００１」に対応するタイムスタンプ２０８及び観測値２０９として、それぞれ、「２００６０７１６Ｔ１０：０５：０１」及び「２５．７、５８％」が格納されている。シーケンス番号２０７の値が「０００１」であることは、そのシーケンス番号に対応する観測値２０９が、シーケンス番号「００００」に対応する観測値２０９の次に観測されたことを示す。すなわち、２００６年７月１６日の１０時０分１秒の次に環境情報が観測されたのは２００６年７月１６日の１０時５分１秒であり、そのときに観測された温度及び湿度は、それぞれ、２５．７度及び５８％である。
【００８０】
このように、データ蓄積部２０６には、各時刻に観測された環境情報が、観測された順に格納され、その結果、所定の数の観測値２０９が蓄積される。図２Ｂの例では、シーケンス番号２０７が「００００」から「ＦＦＦＦ」までの６５５３６組の観測値２０９（温度及び湿度）が蓄積される。
【００８１】
後で説明するように、データ蓄積部２０６は、不揮発メモリ１１０４（図１１参照）に対応する。このため、図２Ｂに示す観測データは、実際には不揮発メモリ１１０４に格納される。
【００８２】
データ蓄積部２０６の容量（すなわち、データ蓄積部２０６に蓄積可能な観測データの量）は、ユーザ等からの要求と、許容されるコストとに基づいて決定される。一つのレコード当たりのデータは、例えば、１６ビットのシーケンス番号２０７と、３２ビットのタイムスタンプ２０８と、１６ビットの観測値２０９と、を含む。ここで、レコードとは、一つのシーケンス番号２０７に対応する観測データである。一つのレコードの観測値が複数の種類の物理量（例えば、温度と湿度）を含む場合、各物理量に１６ビットずつが割り当てられてもよい。
【００８３】
センサノード１５０が、観測間隔の異なる複数のセンサを備える場合、それぞれのセンサによって観測される観測値に独立したシーケンス番号２０７及びタイムスタンプ２０８が付与される。また、それぞれの観測データが格納される領域も独立していることが望ましい。
【００８４】
一方、複数のセンサが同一のタイミングで動作する場合、それらのセンサが観測した観測値は、共通のシーケンス番号２０７及びタイムスタンプ２０８によって管理されてもよい。図２Ｂの例では、「温度」及び「湿度」が共通のシーケンス番号２０７及びタイムスタンプ２０８によって管理される。
【００８５】
なお、データ蓄積部２０６は、リングバッファ形式で実現される。すなわち、シーケンス番号２０７が「００００」から「ＦＦＦＦ」までの全てのエントリに環境情報が格納された場合、その次に観測された環境情報は、再び、シーケンス番号２０７が「００００」であるエントリの観測値２０９に格納される。その後観測された環境情報は、シーケンス番号２０７が「０００１」であるエントリ以降のエントリに順次格納される。
【００８６】
図２Ｂの例では、シーケンス番号２０７の値「ＦＦＦＦ」に対応するタイムスタンプ２０８及び観測値２０９として、それぞれ、「２００６０７１６Ｔ０９：５５：０１」及び「２４．８、５９％」が格納されている。これは、図２Ｂの例において、シーケンス番号「００００」に対応する観測値２０９が、シーケンス番号「ＦＦＦＦ」に対応する観測値２０９の次に観測されたことを示す。
【００８７】
センサノード１５０は、後述する履歴データ要求コマンドを受信すると、要求された履歴データをデータ蓄積部２０６から読み出して送信する。履歴データ要求コマンドがシーケンス番号２０７を指定している場合、指定されたシーケンス番号２０７に対応するタイムスタンプ２０８及び観測値２０９が履歴データとして送信される。
【００８８】
次に、センサネット管理サーバ１００の構成及び処理について説明する。
【００８９】
センサネット管理サーバ１００は、センサノード１５０から送信されたデータを受信すると、そのデータを最新データとして格納するとともに、同じデータを、履歴データとして蓄積する。そして、センサネット管理サーバ１００は、ユーザから最新データを要求されると最新データを提供し、ユーザから履歴データを要求されると履歴データを提供する。ユーザとは、例えば、管理クライアント１６０を操作する管理者、又は、業務クライアント１６５を操作するユーザである。
【００９０】
既に説明したように、センサノード１５０から送信されたデータは、常にセンサネット管理サーバ１００に到達するとは限らない。このため、履歴データに欠損が生じる場合がある。センサネット管理サーバ１００は、履歴データに欠損があるか否かを判定する。そして、欠損がある場合、センサネット管理サーバ１００は、欠損した履歴データを再び送信することをセンサノード１５０に要求する。
【００９１】
このような欠損の有無の判定及び再送要求は、どの時点で実行されてもよい。例えば、これらの処理は、ユーザから履歴データを要求されたときに実行されてもよいし（図３及び図４参照）、定期的に又は所定の時刻に実行されてもよい（図５及び図６参照）。あるいは、これらの処理は、ハートビート監視の結果に基づいて実行されてもよいし（図７及び図８参照）、シーケンス番号に基づいて実行されてもよい（図９及び図１０参照）。また、これらの欠損の有無の判定及び再送要求の処理を組み合わせることも可能である。
【００９２】
センサネットシステムは、例えば現場監督者が食品管理のために食品工場内の環境を管理したり、施設管理のために施設内の環境を管理したりするのに利用される。その場合において、現場監督者はできる限りリアルタイムの環境情報を取得して適切なライン管理を行うことが重要である。また、例えば食品工場内において空調の異常や火災の発生により温度が異常を示す場合には、センサノードが観測した情報をリアルタイムに現場監督者に通達することが重要である。一方、食品工場管理者が食品の管理状況を把握し日報を作成するなど食品の品質を保証する場合、あるいは施設管理者が施設の管理状況を報告するためには、できる限り欠損のない正確な現在までの履歴データが要求される。そこで、本発明では、センサノード１５０から送信されるリアルタイムデータを、管理方法の異なる最新データ蓄積管理部と履歴データ蓄積管理部に分けて記憶管理することにより、ユーザからの最新の観測データあるいは履歴データの表示要求に応じて、所望のデータを提示することを可能にする。
【００９３】
本実施形態は、ユーザからの表示要求の種類に応じて最新データ蓄積管理部と履歴データ蓄積管理部に格納される観測データを使い分ける。また、ユーザからの要求は、２種類のデータ蓄積管理部に格納されるデータのうちどちらを用いるかを指示するものでもよい。例えば、「現場把握」や「日報作成」などユーザの使用目的に応じたメニューあるいはグラフ表示などの表示形式を指定できるメニューなど、ユーザの利用しやすいＧＵＩを提示し、そのメニューとセンサネット管理サーバ内の２種類のデータ蓄積管理部とを対応づけておくことができる。この場合、センサネット管理サーバは、メニューと２種類のデータ蓄積管理部とを対応づけるテーブルを保持しておく。これにより、センサネット管理サーバは、ユーザの要求に応じてテーブルを参照し、最新データ蓄積管理部に管理される観測データのみ、または履歴データ蓄積管理部に管理される観測データのみ、または最新データ蓄積管理部及び履歴データ蓄積管理部に格納される観測データを使い分けることができる。なお、観測データの表示形式については、図１５Ａ−図１７Ｂで説明する。
【００９４】
図３は、本発明の実施の形態において、ユーザからの要求をトリガとして履歴データを取得する場合の、センサネット管理サーバ１００の機能ブロック及びデータフローの説明図である。
【００９５】
センサネット管理サーバ１００は、外部要求受付部３０１、最新データ蓄積管理部３０２、履歴データ蓄積管理部３０３、イベント配送部３０４、データ欠損管理部３０５及びセンサネット通信部３０６を含む。
【００９６】
外部要求受付部３０１は、クライアントアダプタ１０９に相当する。最新データ蓄積管理部３０２は、オブジェクトマネージャ１０１に相当する。最新データ蓄積管理部３０２は、最新の観測データを格納するためのメモリ（例えば、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）（図示省略）を含む。履歴データ蓄積管理部３０３は、ＲＤＢアダプタ１１０及びＲＤＢサーバ１２０に相当する。イベント配送部３０４は、イベント配送部１０３に相当する。データ欠損管理部３０５は、ＰＡＮマネージャ１０４の一部に相当する。センサネット通信部３０６は、プロファイルドアダプタ１０６及びＺｉｇＢｅｅアダプタ１１２に相当する。
【００９７】
図３のステップＡ３１１からＡ３１４は、センサノード１５０から観測データ（この場合、リアルタイムデータ）を受信したセンサネット管理サーバ１００が実行する処理を示す。受信した観測データは、センサノード１５０が観測した環境情報を含む。
【００９８】
図２Ａにおいて説明したように、各センサノード１５０は、自律的なタイミングで間欠動作し、観測データをリアルタイムデータとして送信する。
【００９９】
最初に、センサネット通信部３０６は、センサノード１５０からリアルタイムデータとして送信された観測データを受信する（ステップＡ３１１）。
【０１００】
次に、センサネット通信部３０６は、受信した観測データを、イベント配送部３０４に送信する（ステップＡ３１２）。
【０１０１】
イベント配送部３０４は、受信した観測データを、最新データ蓄積管理部３０２に送信する（ステップＡ３１３）。その結果、受信した観測データが、最新の観測データとして最新データ蓄積管理部３０２のメモリに格納される。最新データ蓄積管理部３０２のメモリに前回の観測データが格納されている場合、最新の観測データが格納されるときに、前回の観測データが削除されてもよい。
【０１０２】
なお、センサノード１５０から送信された観測データは、常にセンサネット管理サーバ１００に到達するとは限らない。このため、最新データ蓄積管理部３０２には、常にセンサノード１５０から最後に送信された観測データが格納されているとは限らない。しかし、センサネット管理サーバ１００は、最新データ蓄積管理部３０２に格納されているデータ（すなわち、現時点で、センサネット管理サーバ１００が最後にセンサノードから受信したリアルタイムデータ）を最新の観測データとして取り扱う。なお、最新データ蓄積管理部は、センサノードごとに最新の観測データを格納する。
【０１０３】
さらに、イベント配送部３０４は、受信した観測データ（すなわち、ステップＡ３１３において送信されたものと同じデータ）を、履歴データ蓄積管理部３０３に送信する（ステップＡ３１４）。その結果、受信した観測データが履歴データ蓄積管理部３０３によって格納される。具体的には、ＲＤＢサーバ１２０が管理するデータベースに観測データが格納される。このとき、前回の観測データは、データベースから削除されない。データベースには、過去に受信した全ての観測データが履歴データとして蓄積されてもよいし、所定の数の観測データが履歴データとして蓄積されてもよい。データベースに所定の数の観測データが蓄積される場合、最新の観測データが格納されるときに、既に格納されている最も古い観測データが削除されてもよい。
【０１０４】
結局、センサノード１５０から送信されたリアルタイムデータは、最新データ蓄積管理部３０２が管理するメモリに、最新の観測データとして格納され、さらに、履歴データ蓄積管理部３０３が管理するデータベースに、履歴データとして格納される。データベースには、さらに過去の観測データも履歴データとして格納されている。メモリ及びデータベースに格納される観測データの例については、後で詳細に説明する（図１３Ａ及び図１３Ｂ参照）。
【０１０５】
図３のステップＢ３２１からＢ３３３は、ユーザから履歴データを要求されたセンサネット管理サーバ１００が実行する処理を示す。
【０１０６】
最初に、外部要求受付部３０１は、ユーザから履歴データの要求を受信する（ステップＢ３２１）。
【０１０７】
次に、外部要求受付部３０１は、受信した要求を履歴データ蓄積管理部３０３に送信する（ステップＢ３２２）。
【０１０８】
外部要求受付部３０１からの要求を受信した履歴データ蓄積管理部３０３は、データ欠損管理部３０５に、履歴データに欠損があるか否かを調査することを要求する（ステップＢ３２３）。データ欠損管理部３０５は、要求に従って、履歴データに欠損があるか否かを調査する（ステップＢ３２４）。例えば、データ欠損管理部３０５は、履歴データとして格納されている観測データのシーケンス番号（図１３のシーケンス番号１３１１）が連続しているか否かを判定してもよい。シーケンス番号が連続しない場合、履歴データに欠損があると判定される。
【０１０９】
例えば、履歴データ蓄積管理部３０３に格納されている履歴データにおいて、観測データをタイムスタンプの順に並べたときに、シーケンス番号「０００３」の次のシーケンス番号が「０００８」である場合、シーケンス番号「０００４」から「０００７」までの観測データが欠損している。データ欠損管理部３０５は、履歴データに欠損がある場合、欠損している観測データのシーケンス番号を保持する（図１４参照）。
【０１１０】
データ欠損管理部３０５は、履歴データに欠損があると判定された場合、欠損しているデータを再送することを要求するコマンドをセンサネット通信部３０６に対して発行する（ステップＢ３２５）。
【０１１１】
センサネット通信部３０６は、データ欠損管理部３０５から受信したコマンドを、センサノード１５０に対して発行する（ステップＢ３２６）。このコマンドは、図２ＡのステップＢ２２１において受信される。
【０１１２】
次に、センサネット通信部３０６は、センサノード１５０から送信された観測データ（履歴データ）を受信する（ステップＢ３２７）。ここで受信するデータは、図２ＡのステップＢ２２６において送信されたデータである。
【０１１３】
次に、センサネット通信部３０６は、受信した観測データを、イベント配送部３０４に送信する（ステップＢ３２８）。ステップＢ３２７において複数の観測データ（例えば、シーケンス番号「０００４」から「０００７」までの観測データ）を受信した場合、それらの観測データがステップＢ３２８においてまとめて送信される。
【０１１４】
イベント配送部３０４は、受信した観測データを、最新データ蓄積管理部３０２に送信する（ステップＢ３２９）。最新データ蓄積管理部３０２は、受信した観測データが、既に最新データ蓄積管理部３０２に格納されている観測データより新しい場合、受信した観測データを最新の観測データとして格納する。なお、センサネット通信部が観測データをまとめて送信する場合、イベント配送部は観測データをまとめて最新データ蓄積管理部に送信し、最新データ蓄積管理部は受信した観測データの中で格納されている観測データより新しいデータがある場合に、最新の観測データとして格納する。
【０１１５】
イベント配送部３０４は、受信した観測データ（すなわち、ステップＢ３２９において送信されたものと同じデータ）を、履歴データ蓄積管理部３０３に送信する（ステップＢ３３０）。その結果、受信した観測データが、履歴データ蓄積管理部３０３が管理するデータベースに履歴データとして格納される。これによって、履歴データの欠損が補完される。
【０１１６】
次に、イベント配送部３０４は、受信した観測データ（すなわち、ステップＢ３３０において送信されたものと同じデータ）を、データ欠損管理部３０５に送信する（ステップＢ３３１）。データ欠損管理部３０５は、受信した観測データのシーケンス番号２０７と同一の番号を、自らが保持しているシーケンス番号２０７から削除する（図１４参照）。
【０１１７】
履歴データ蓄積管理部３０３は、欠損が補完されたことによって完全になった履歴データを、外部要求受付部３０１に送信する（ステップＢ３３２）。
【０１１８】
外部要求受付部３０１は、履歴データ蓄積管理部３０３から受信した履歴データを、要求元に送信する（ステップＢ３３３）。
【０１１９】
また、履歴データ蓄積管理部３０３が外部要求受付部３０１から履歴データ要求を受信後（ステップＢ３２２）、すぐに格納されている履歴データを外部要求受付部３０１に送信することもできる。この場合、欠損のあるデータが外部要求受付部から要求元に送信されるが、ステップＢ３２３−Ｂ３３３により要求元には欠損が補完されたデータが送信される。これにより、要求元は、欠損がありながらも履歴データを迅速に閲覧することができ、さらに必ず欠損のない完全な履歴データを閲覧することができる。なお、履歴データ蓄積管理部３０３は、外部要求受付部３０１から履歴データ要求を受信後、所定の時間内に履歴データの補完がなされない場合に、格納されている履歴データを外部要求受付部３０１に送信してもよい。
【０１２０】
図３のステップＢ３４１からＢ３４４は、ユーザから最新の観測データを要求されたセンサネット管理サーバ１００が実行する処理を示す。
【０１２１】
最初に、外部要求受付部３０１は、ユーザから最新の観測データの要求を受信する（ステップＢ３４１）。
【０１２２】
次に、外部要求受付部３０１は、受信した要求を最新データ蓄積管理部３０２に送信する（ステップＢ３４２）。
【０１２３】
最新データ蓄積管理部３０２は、受信した要求に従って、最新の観測データを読み出して、外部要求受付部３０１に送信する（ステップＢ３４３）。
【０１２４】
外部要求受付部３０１は、最新データ蓄積管理部３０２から受信した観測データを要求元に送信する（ステップＢ３４４）。
【０１２５】
図４は、本発明の実施の形態において、ユーザからの要求をトリガとして実行される処理のコマンド発行シーケンスの説明図である。
【０１２６】
センサノード１５０は、自律的に環境情報を観測し、最新の観測データを送信する（ステップ４０１）。ステップ４０１に「＃３」と表示されているのは、この例において送信された観測データのシーケンス番号２０７が「０００３」であることを意味する。ステップ４０１の送信は、図２ＡのステップＡ２１５に相当する。
【０１２７】
ルータノード１４０は、ステップ４０１において送信された観測データを受信し、そのデータを送信する（ステップ４０３）。ゲートウェイノード１３０は、ステップ４０３において送信された観測データを受信し、そのデータをＩＰネットワーク１８０を経由してセンサネット管理サーバ１００に送信する（ステップ４０４）。センサネット管理サーバ１００は、ステップ４０４において送信された観測データを受信する。この受信は、図３のステップＡ３１１に相当する。観測データを受信したセンサネット管理サーバ１００は、図３のステップＡ３１２からＡ３１４までの処理を実行する。
【０１２８】
センサノード１５０は、ステップ４０１において観測データを送信するときに、さらに、コマンド要求を送信する（ステップ４０２）。ここで、コマンド要求について説明する。
【０１２９】
センサノード１５０は、既に説明したように、自律的に間欠動作をする。休眠状態のセンサノード１５０において、少なくとも、無線通信部２０１は停止している。このため、休眠状態のセンサノード１５０は、センサネット管理サーバ１００からのコマンドを受信することができない。さらに、センサネット管理サーバ１００は、現在センサノード１５０が活動状態であるか否かを知ることができない。このため、センサネット管理サーバ１００がセンサノード１５０にコマンドを送信する場合、そのコマンドは、ゲートウェイノード１３０又はルータノード１４０に保持される。そして、センサノード１５０は、活動状態のときにコマンド要求を送信する。
【０１３０】
コマンド要求を受信したゲートウェイノード１３０又はルータノード１４０は、センサネット管理サーバ１００からセンサノード１５０に対して送信されたコマンドを保持している場合、そのコマンドをセンサノード１５０に送信する。
【０１３１】
図４の例では、ステップ４０２において送信されたコマンド要求は、ルータノード１４０によって受信される。この時点で、ルータノード１４０はコマンドを保持していないため、センサノード１５０にコマンドを送信しない。
【０１３２】
その後、センサノード１５０は再び自律的に環境情報を観測し、最新の観測データ及びコマンド要求を送信する（ステップ４０５及び４０６）。このとき送信された観測データのシーケンス番号２０７は、「０００４」である。以下の説明において、シーケンス番号２０７が「０００３」である観測データを「観測データ＃３」、シーケンス番号２０７が「０００４」である観測データを「観測データ＃４」と記載する。その他のシーケンス番号についても同様である。
【０１３３】
ルータノード１４０は、ステップ４０５において送信された観測データを受信し、そのデータを送信する（ステップ４０７）。しかし、図４の例において、ステップ４０７の送信は失敗する。その結果、ステップ４０５において送信された観測データは、センサネット管理サーバ１００に到達しない。
【０１３４】
従来のセンサノードは、センサネット管理サーバ１００からのアプリケーション層のＡＣＫを待つ。そして、ＡＣＫがない場合、従来のセンサノードは、送信に失敗したと判定して、観測データを再度送信する。しかし、本実施の形態のセンサノード１５０は、センサネット管理サーバ１００からのアプリケーション層のＡＣＫを待たずに休眠状態になる。センサネット管理サーバ１００は、アプリケーション層のＡＣＫを送信してもよいが、本実施の形態のセンサノード１５０は、そのＡＣＫを受信したか否かに関らず、休眠状態になる。
【０１３５】
このため、本実施の形態のセンサノード１５０は、ＡＣＫを待つための待ち受け電力及びデータを再度送信するための送信電力を消費しない。また、センサノード１５０における通信の制御が簡素化される。なお、データを送信したセンサノード１５０が受信し得るＡＣＫには、センサネット管理サーバ１００からのアプリケーション層のＡＣＫと、ルータノード１４０（又はゲートウェイノード１３０）からのＭＡＣ層のＡＣＫとがある。本実施の形態のセンサノード１５０は、アプリケーション層のＡＣＫを待たないが、ＭＡＣ層のＡＣＫは待つことを前提とする。しかし、センサノード１５０がＭＡＣ層のＡＣＫを待たずに休眠状態になる場合にも、本発明を適用することができる。
【０１３６】
その後、センサノード１５０は、同様にして観測データ＃５から＃７を送信する（図示省略）。これらの観測データは、いずれも、送信失敗のため、センサネット管理サーバ１００に到達しない。したがって、この時点の履歴データ蓄積管理部３０３において、履歴データ＃４から＃７は、欠損している。
【０１３７】
その後、センサノード１５０は再び自律的に環境情報を観測し、最新の観測データ＃８及びコマンド要求を送信する（ステップ４０８及び４０９）。観測データ＃８は、ルータノード１４０及びゲートウェイノード１３０を経由してセンサネット管理サーバ１００に到達する（ステップ４１０及び４１１）。
【０１３８】
その後、管理クライアント１６０は、センサネット管理サーバ１００に、任意の範囲の履歴データを要求する（ステップ４１２）。この要求は、図３のステップＢ３２１に相当する。なお、図４には、管理クライアント１６０が履歴データを要求する場合を示すが、業務クライアント１６５が履歴データを要求する場合にも、同様の処理が実行される。後で説明する図６、図８及び図１０についても同様である。
【０１３９】
履歴データの要求を受信したセンサネット管理サーバ１００は、図３のステップＢ３２２からＢ３２５までの処理を実行する。ステップＢ３２４において、データ欠損管理部３０５は、管理クライアント１６０によって指定された範囲の履歴データに欠損があるか否かを判定する。
【０１４０】
図４の例は、管理クライアント１６０が、観測データ＃４から＃７を含む範囲を指定した場合について説明する。このため、データ欠損管理部３０５は、ステップＢ３２４において、履歴データの欠損があると判定する。この場合、センサネット管理サーバ１００は、履歴データ要求コマンドをセンサノード１５０に対して送信する（ステップ４１３）。ステップ４１３は、図３のステップＢ３２６に相当する。
【０１４１】
図４の例では、観測データ＃４から＃７までの送信に失敗している。このため、ステップ４１３において送信されたコマンドは、観測データ＃４から＃７を送信することをセンサノード１５０に要求する。ステップ４１３において送信されたコマンドは、ゲートウェイノード１３０を経由して、ルータノード１４０に到達し（ステップ４１４）、ルータノード１４０によって保持される。
【０１４２】
その後、センサノード１５０は再び自律的に環境情報を観測し、最新の観測データ＃９及びコマンド要求を送信する（ステップ４１５及び４１８）。観測データ＃９は、ルータノード１４０及びゲートウェイノード１３０を経由してセンサネット管理サーバ１００に到達する（ステップ４１６及び４１７）。ステップ４１７は、図３のステップＡ３１１に相当する。
【０１４３】
コマンド要求４１８を受信した時点で、ルータノード１４０はセンサノード１５０へのコマンドを保持している。このため、ルータノード１４０は、保持している履歴データ要求コマンドをセンサノード１５０に対して送信する（ステップ４１９）。
【０１４４】
センサノード１５０は、ステップ４１９において送信された履歴データ要求コマンドを受信する。この受信は、図２ＡのステップＢ２２１に相当する。その後、センサノード１５０は、受信したコマンドに従って、図２ＡのステップＢ２２２からＢ２２５までの処理を実行する。そして、センサノード１５０は、コマンドによって要求された履歴データを送信する（ステップ４２０）。ステップ４２０は、図２ＡのステップＢ２２６に相当する。ステップ４２０において送信される履歴データは、観測データ＃４から＃７を含む。
【０１４５】
このように、履歴データにおいて複数の観測データが欠損していた場合、ユーザからの履歴データ要求をトリガとしてそれらの複数の欠損したデータが一度にまとめて送信される。このため、送信に失敗するたびに再度データを送信する従来のセンサノードと比較して、本実施の形態のセンサノード１５０は、データを再度送信するための電力を削減することができる。
【０１４６】
センサノード１５０から送信された履歴データは、ルータノード１４０及びゲートウェイノード１３０を経由してセンサネット管理サーバ１００に到達する（ステップ４２１及び４２２）。この到達は、図３のステップＢ３２７に相当する。その後、センサネット管理サーバ１００は、図３のステップＢ３２８からＢ３３２までの処理を実行する。そして、センサネット管理サーバ１００は、要求された履歴データを管理クライアント１６０に送信する（ステップ４２３）。ステップ４２３は、図３のステップＢ３３３に相当する。
【０１４７】
なお、例えばセンサネット管理サーバ１００がセンサノード１５０からの観測データを長期間受信することができなかった場合、多数の観測データが欠損している。このような場合に多数の観測データの送信を要求すると、処理の渋滞を招き、望ましくない場合がある。このような場合、一度に送信される観測データの量を制限することもできる。
【０１４８】
例えば、センサネット管理サーバ１００は、ステップ４１３において、履歴データ要求コマンドが指定する観測データを制限してもよい。例えば、センサネット管理サーバ１００は、ステップ４１３において観測データ＃４及び＃５のみを要求してもよい。その場合、センサネット管理サーバ１００は、観測データ＃４及び＃５を取得した後で、観測データ＃６及び＃７を要求する。あるいは、センサノード１５０が送信する観測データの量を制限してもよい。このとき、センサノード１５０は、送信を要求された観測データのうち、特徴点に該当する観測データを優先して送信し、その後、特徴点に該当しない観測データを順次送信してもよい。
【０１４９】
ここで、特徴点は、所定の範囲外（又は範囲内）の観測値を含む観測データであってもよい。あるいは、特徴点は、直前の観測値からの変化量が所定の閾値を越える観測値を含む観測データであってもよい。あるいは、特徴点は、近似曲線を作成するためのパラメータであってもよい。あるいは、連続して欠損している観測データのうち所定の間隔（例えば、１分間隔で観測された観測データが２４時間分欠損している場合、特徴点は、１時間間隔又は１０分間隔等）の観測データであってもよい。あるいは、特徴点は、連続して欠損している観測データの中間時点の観測データであってもよい。
【０１５０】
特徴点が上記の所定の間隔の観測データ又は中間時点の観測データである場合、センサノード１５０ではなく、センサネット管理サーバ１００が特徴点を決定してもよい。
【０１５１】
センサノード１５０は、古い観測データの上に新しい観測データを上書きするとき、特徴点以外の古い観測データの上に優先して上書きしてもよい。
【０１５２】
なお、このセンサネット管理サーバが履歴データ要求コマンドで指定する観測データを制限する処理あるいはセンサノードが送信する観測データの量を制限する処理は、後述する定期的に又は所定の時刻に履歴データ要求コマンドを送信する場合（図５及び図６）、ハートビート監視の結果に基づいて履歴データ要求コマンドを送信する場合（図７及び図８参照）、シーケンス番号に基づいて履歴データ要求コマンドを送信する場合（図９及び図１０参照）も実行可能であることはいうまでもない。
【０１５３】
以上で、ユーザからの要求（ステップ４１２）をトリガとして実行される処理のコマンド発行シーケンスが終了する。
【０１５４】
以上の図３及び図４に示す処理によれば、履歴データがセンサノード１５０から削除されていない限り、ユーザからの要求に対して、必ず欠損のない完全な履歴データが応答される。さらに、ユーザからの履歴データ要求をトリガとして、欠損したデータを補完するため、ユーザが要求した時点で可能な限り補完されたデータを提供することが可能となる。
【０１５５】
図５は、本発明の実施の形態において、時刻情報をトリガとして履歴データを取得する場合の、センサネット管理サーバ１００の機能ブロック及びデータフローの説明図である。
【０１５６】
具体的には、図５には、定期的に又は所定の時刻に履歴データを取得するための機能ブロック及びデータフローを示す。図５において、図３と同様の部分及び処理については、詳細な説明を省略する。後で説明する図７及び図９についても同様である。
【０１５７】
センサネット管理サーバ１００は、外部要求受付部３０１、最新データ蓄積管理部３０２、履歴データ蓄積管理部３０３、イベント配送部３０４、データ欠損管理部３０５及びセンサネット通信部３０６を含む。これらの各部の説明は、すでに図３を参照してなされているため、省略する。
【０１５８】
図５のセンサネット管理サーバ１００は、さらに、時刻情報を管理するタイマ５０１を含む。
【０１５９】
図５のステップＡ５１１からＡ５１４は、それぞれ、図３のステップＡ３１１からＡ３１４と同じであるため、説明を省略する。
【０１６０】
図５のステップＢ５２１からＢ５２９は、時刻情報をトリガとしてセンサネット管理サーバ１００が実行する処理を示す。具体的には、これらのステップは、タイマ５０１からの要求に従って、定期的に、又は、所定の時刻に、センサネット管理サーバ１００が実行する処理を示す。
【０１６１】
最初に、タイマ５０１は、履歴データの欠損の有無を調査する要求をデータ欠損管理部３０５に送信する（ステップＢ５２１）。タイマ５０１は、所定の間隔で（すなわち、定期的に）ステップＢ５２１の要求を送信してもよい。あるいは、タイマ５０１は、所定の時刻にステップＢ５２１の要求を送信してもよい。
【０１６２】
データ欠損管理部３０５は、受信した要求に従って、履歴データに欠損があるか否かを調査する（ステップＢ５２２）。
【０１６３】
データ欠損管理部３０５は、履歴データに欠損があると判定された場合、欠損しているデータを再送することを要求するコマンドをセンサネット通信部３０６に対して発行する（ステップＢ５２３）。
【０１６４】
センサネット通信部３０６は、データ欠損管理部３０５から受信したコマンドを、センサノード１５０に対して発行する（ステップＢ５２４）。このコマンドは、図２ＡのステップＢ２２１において受信される。
【０１６５】
次に、センサネット通信部３０６は、センサノード１５０から送信された観測データ（履歴データ）を受信する（ステップＢ５２５）。ここで受信するデータは、図２ＡのステップＢ２２６において送信されたデータである。
【０１６６】
次に、センサネット通信部３０６は、受信した観測データを、イベント配送部３０４に送信する（ステップＢ５２６）。
【０１６７】
イベント配送部３０４は、受信した観測データを、最新データ蓄積管理部３０２に送信する（ステップＢ５２７）。最新データ蓄積管理部３０２は、受信した観測データが、既に最新データ蓄積管理部３０２に格納されている観測データより新しい場合、受信した観測データを最新の観測データとして格納する。
【０１６８】
イベント配送部３０４は、受信した観測データ（すなわち、ステップＢ５２７において送信されたものと同じデータ）を、履歴データ蓄積管理部３０３に送信する（ステップＢ５２８）。その結果、受信した観測データが、履歴データ蓄積管理部３０３が管理するデータベースに履歴データとして格納される。これによって、履歴データの欠損が補完される。
【０１６９】
次に、イベント配送部３０４は、受信した観測データ（すなわち、ステップＢ５２８において送信されたものと同じデータ）を、データ欠損管理部３０５に送信する（ステップＢ５２９）。
【０１７０】
なお、ステップＢ５２２からＢ５２９は、それぞれ、図３のステップＢ３２４からＢ３３１と同様である。
【０１７１】
図５において、外部要求受付部３０１は、履歴データの要求を受信すると（ステップＢ５３０）、その要求を履歴データ蓄積管理部３０３に送信する（ステップＢ５３１）。
【０１７２】
外部要求受付部３０１からの要求を受信した履歴データ蓄積管理部３０３は、その時点でデータベースに蓄積されている履歴データを外部要求受付部３０１に送信する（ステップＢ５３２）。
【０１７３】
外部要求受付部３０１は、履歴データ蓄積管理部３０３から受信した履歴データを、要求元に送信する（ステップＢ５３３）。
【０１７４】
ステップＢ５３０からＢ５３３までの処理は、ステップＢ５２１からＢ５２９までの処理と無関係に実行される。このため、ステップＢ５３１が実行された時点で、データベースに蓄積されている履歴データに欠損がある場合がある。この場合、履歴データ蓄積管理部３０３は、ステップ５３２において、欠損のある履歴データを送信する。
【０１７５】
最新の観測データを要求されたセンサネット管理サーバ１００が実行する処理は、図３のステップ３４１からステップ３４４と同様であるため、説明を省略する。後で説明する図７及び図９においても同様である。
【０１７６】
図６は、本発明の実施の形態において、時刻情報をトリガとして実行される処理のコマンド発行シーケンスの説明図である。
【０１７７】
図６において、ステップ６０１から６０７は、それぞれ、図４のステップ４０１から４０７と同じであるため、これらのステップの説明を省略する。ただし、ステップ６０４において送信されたデータは、図５のステップＡ５１１において受信される。
【０１７８】
また、図６の例では、図４と同様、観測データ＃４から＃７の送信に失敗している。観測データ＃４から＃７は、センサネット管理サーバ１００に到達していないため、履歴データ蓄積管理部３０３にまだ格納されていない。言い換えると、この時点の履歴データ蓄積管理部３０３において、履歴データ＃４から＃７は欠損している。
【０１７９】
その後、管理クライアント１６０は、センサネット管理サーバ１００に、任意の範囲の履歴データを要求する（ステップ６０８）。この要求は、図５のステップＢ５３０に相当する。図４の例と同様、この要求は、観測データ＃４から＃７を含む範囲を指定している。
【０１８０】
センサネット管理サーバ１００では、図５のステップＢ５３１及びＢ５３２の処理が実行される。そして、センサネット管理サーバ１００は、要求された履歴データを管理クライアント１６０に送信する（ステップ６０９）。ステップ６０９は、図５のステップＢ５３３に相当する。ただし、ここで送信される履歴データにおいて、観測データ＃４から＃７は欠損している。
【０１８１】
図６のステップ６１０から６１３は、それぞれ、図４のステップ４０８から４１１と同じであるため、これらのステップの説明を省略する。ただし、ステップ６１３において送信されたデータは、図５のステップＡ５１１において受信される。
【０１８２】
その後、タイマ５０１が、履歴データの欠損の有無を調査する要求をデータ欠損管理部３０５に送信する（ステップ６１４）。ステップ６１４は、図５のステップＢ５２１に相当する。データ欠損管理部３０５は、ステップＢ５２２において、履歴データの欠損があると判定し、ステップＢ５２３を実行する。
【０１８３】
次に、センサネット管理サーバ１００は、観測データ＃４から＃７を送信することを要求する履歴データ要求コマンドを、センサノード１５０に対して送信する（ステップ６１５）。ステップ６１５は、図５のステップＢ５２４に相当する。ステップ６１５において送信されたコマンドは、ゲートウェイノード１３０を経由してルータノード１４０に到達し（ステップ６１６）、ルータノード１４０によって保持される。
【０１８４】
その後実行されるステップ６１７から６２４は、それぞれ、図４のステップ４１５から４２２と同じであるため、これらのステップの説明を省略する。ただし、ステップ６１９において送信されたデータは、図５のステップＡ５１１において受信される。ステップ６２４において送信されたデータは、図５のステップＢ５２５において受信される。
【０１８５】
その後再び、管理クライアント１６０が、センサネット管理サーバ１００に任意の範囲の履歴データを要求する（ステップ６２５）。この要求は、図５のステップＢ５３０に相当する。ステップ６０８と同様、この要求は、観測データ＃４から＃７を含む範囲を指定している。
【０１８６】
センサネット管理サーバ１００では、図５のステップＢ５３１及びＢ５３２の処理が実行される。そして、センサネット管理サーバ１００は、要求された履歴データを管理クライアント１６０に送信する（ステップ６２６）。この時点で、欠損していた観測データ＃４から＃７は既に補完されている（ステップ６２４参照）。このため、ステップ６２６において、観測データ＃４から＃７を含む完全な履歴データが送信される。
【０１８７】
以上の図５及び図６に示す処理によれば、ユーザが履歴データを要求すると（ステップ６０８及び６２５）、管理サーバからすぐに履歴データが応答されるため（ステップ６０９及び６２６）、ユーザは迅速に履歴データを閲覧することができる。
【０１８８】
図７は、本発明の実施の形態において、ハートビート復旧をトリガとして履歴データを取得する場合の、センサネット管理サーバ１００の機能ブロック及びデータフローの説明図である。
【０１８９】
具体的には、図７には、ハートビートが一旦消失した後、復旧したときに履歴データを取得するための機能ブロック及びデータフローを示す。
【０１９０】
ここで、ハートビート判定について説明する。
【０１９１】
ハートビート判定は、遠隔で稼動している装置の異常を監視する手段の一つである。監視対象の装置は、所定の間隔で、特定のハートビート信号を送信する。監視装置（監視対象の装置を監視する側の装置）は、ハートビート信号の受信状況に基づいて、監視対象の装置の稼動状態を判定する。
【０１９２】
例えば、監視装置がハートビート信号の送信間隔を知っていれば、最後にハートビート信号を受信した時刻と、ハートビート信号の送信間隔とに基づいて、次にハートビート信号を受信する時刻を算出することができる。算出された時刻が現在時刻より前である場合、既に受信しているはずの次のハートビート信号をまだ受信していないことになる。このように、ハートビート信号が消失した（すなわち、ハートビート信号を上記の所定の間隔で受信しなくなった）場合、監視対象の装置に障害が発生したと判定される。一方、算出された時刻が現在時刻より前である場合、監視対象の装置は正常であると判定される。
【０１９３】
本実施の形態においてハートビート判定を実行する場合、監視対象の装置はセンサノード１５０である。すなわち、センサノード１５０がハートビート信号を送信する。しかし、観測データとは別にハートビート信号を送信することは、消費電力が増加するため、望ましくない。観測データが定期的に送信される場合、その観測データをハートビート信号として利用することができる。以下、観測データをハートビート信号として利用する場合を例として説明する。
【０１９４】
センサネット管理サーバ１００は、外部要求受付部３０１、最新データ蓄積管理部３０２、履歴データ蓄積管理部３０３、イベント配送部３０４、データ欠損管理部３０５及びセンサネット通信部３０６を含む。これらの各部の説明は、すでに図３を参照してなされているため、省略する。
【０１９５】
図７のセンサネット管理サーバ１００は、さらに、ノード状態判定部７０１を含む。ノード状態判定部７０１は、センサノード１５０から定期的に送信されるハートビート信号を監視する。そして、ハートビート信号が消失したとき（すなわち、ハートビート信号を所定の間隔で受信しなくなったとき）、ノード状態判定部７０１は、センサノード１５０自体、又は、センサノード１５０からセンサネット管理サーバ１００までの通信経路に障害が発生したと判定する。図７の例において、ノード状態判定部７０１は、センサノード１５０から定期的に送信される観測データをハートビート信号として利用する。
【０１９６】
図７のステップＡ７１１からＡ７１４は、それぞれ、図３のステップＡ３１１からＡ３１４と同じであるため、説明を省略する。
【０１９７】
図７のイベント配送部３０４は、センサネット通信部３０６から受信した最新の観測データを、ハートビート信号としてノード状態判定部７０１に送信する（ステップＡ７１５）。
【０１９８】
図７のステップＢ７２１からＢ７２８は、ハートビート復旧をトリガとしてセンサネット管理サーバ１００が実行する処理を示す。具体的には、これらのステップは、ノード状態判定部７０１からの要求に従って、センサノード１５０からセンサネット管理サーバ１００への通信が復旧したときにセンサネット管理サーバ１００が実行する処理を示す。
【０１９９】
センサノード１５０から定期的に送信される観測データがセンサネット管理サーバ１００に正常に到達している間、ノード状態判定部７０１は、イベント配送部３０４から定期的にハートビート信号を受信する。観測データがセンサネット管理サーバ１００に到達しなくなると、センサネット管理サーバ１００は、ハートビート信号を定期的に受信しなくなる。このように、ハートビート信号が消失したとき、ノード状態判定部７０１は、センサノード１５０又は通信経路に障害が発生したと判定する。
【０２００】
その後、再びハートビート信号を受信すると、ノード状態判定部７０１は、センサノード１５０又は通信経路が障害から復旧したと判定する。このとき、ノード状態判定部７０１は、履歴データの欠損の有無を調査する要求をデータ欠損管理部３０５に送信する（ステップＢ７２１）。
【０２０１】
データ欠損管理部３０５は、受信した要求に従って、履歴データに欠損があるか否かを調査する（ステップＢ７２２）。
【０２０２】
データ欠損管理部３０５は、履歴データに欠損があると判定された場合、欠損している履歴データを再送することを要求するための履歴データ要求コマンドをセンサネット通信部３０６に対して発行する（ステップＢ７２３）。
【０２０３】
センサネット通信部３０６は、データ欠損管理部３０５から受信したコマンドを、センサノード１５０に対して発行する（ステップＢ７２４）。このコマンドは、図２ＡのステップＢ２２１において受信される。
【０２０４】
次に、センサネット通信部３０６は、センサノード１５０から送信された観測データ（履歴データ）を受信する（ステップＢ７２５）。ここで受信するデータは、図２ＡのステップＢ２２６において送信されたデータである。
【０２０５】
次に、センサネット通信部３０６は、受信した観測データを、イベント配送部３０４に送信する（ステップＢ７２６）。
【０２０６】
イベント配送部３０４は、受信した観測データを、履歴データ蓄積管理部３０３に送信する（ステップＢ７２７）。その結果、受信した観測データが、履歴データ蓄積管理部３０３が管理するデータベースに格納される。これによって、履歴データの欠損が補完される。
【０２０７】
次に、イベント配送部３０４は、受信した観測データ（すなわち、ステップＢ７２７において送信されたものと同じデータ）を、データ欠損管理部３０５に送信する（ステップＢ７２８）。
【０２０８】
なお、ステップＢ７２２からＢ７２６は、それぞれ、図３のステップＢ３２４からＢ３２８と同様である。また、ステップＢ７２７からＢ７２８は、それぞれ、図３のステップＢ３３０からＢ３３１と同様である。
【０２０９】
図７において、外部要求受付部３０１は、履歴データの要求を受信すると（ステップＢ７２９）、その要求を履歴データ蓄積管理部３０３に送信する（ステップＢ７３０）。
【０２１０】
外部要求受付部３０１からの要求を受信した履歴データ蓄積管理部３０３は、その時点でデータベースに蓄積されている履歴データを外部要求受付部３０１に送信する（ステップＢ７３１）。なお、図５のステップＢ５３２と同様の理由によって、ステップＢ７３１において、欠損のある履歴データが送信される場合がある。
【０２１１】
外部要求受付部３０１は、履歴データ蓄積管理部３０３から受信した履歴データを、要求元に送信する（ステップＢ７３２）。
【０２１２】
図８は、本発明の実施の形態において、ハートビート復旧をトリガとして実行される処理のコマンド発行シーケンスの説明図である。
【０２１３】
図８において、ステップ８０１から８０７は、それぞれ、図４のステップ４０１から４０７と同じであるため、これらのステップの説明を省略する。ただし、ステップ８０４において送信されたデータは、図７のステップＡ７１１において受信される。
【０２１４】
また、図８の例では、図４と同様、観測データ＃４から＃７の送信に失敗している。このため、この時点の履歴データ蓄積管理部３０３において、履歴データ＃４から＃７は欠損している。
【０２１５】
ノード状態判定部７０１は、観測データ＃４を受信するべき時刻に受信しなかったとき、ハートビート信号の消失を検出する（ステップ８０８）。
【０２１６】
その後、管理クライアント１６０は、センサネット管理サーバ１００に、任意の範囲の履歴データを要求する（ステップ８０９）。この要求は、図７のステップＢ７２９に相当する。図４の例と同様、この要求は、観測データ＃４から＃７を含む範囲を指定している。
【０２１７】
センサネット管理サーバ１００では、図７のステップＢ７３０及びＢ７３１の処理が実行される。そして、センサネット管理サーバ１００は、要求された履歴データを管理クライアント１６０に送信する（ステップ８１０）。ステップ８１０は、図７のステップＢ７３２に相当する。ただし、ここで送信される履歴データにおいて、観測データ＃４から＃７は欠損している。
【０２１８】
その後、センサノード１５０は再び自律的に環境情報を観測し、最新の観測データ＃８及びコマンド要求を送信する（ステップ８１１及び８１２）。観測データ＃８は、ルータノード１４０及びゲートウェイノード１３０を経由してセンサネット管理サーバ１００に到達する（ステップ８１３及び８１４）。ステップ８１４において送信された観測データ＃８は、図７のステップＡ７１１において、センサネット通信部３０６によって受信される。
【０２１９】
センサネット通信部３０６が受信した観測データ＃８は、イベント配送部３０４を経由して、ノード状態判定部７０１にハートビート信号として送信される（ステップＡ７１５）。
【０２２０】
ノード状態判定部７０１は、観測データ＃８を受信すると、ハートビートが復旧した、すなわち、センサノード１５０又は通信経路が障害から復旧したと判定する。この場合、ノード状態判定部７０１は、履歴データの欠損の有無を調査する要求をデータ欠損管理部３０５に送信する（図７のステップＢ７２１）。データ欠損管理部３０５は、ステップＢ７２２において、履歴データの欠損があると判定し、ステップＢ７２３を実行する。
【０２２１】
次に、センサネット管理サーバ１００は、観測データ＃４から＃７を送信することを要求する履歴データ要求コマンドをセンサノード１５０に対して送信する（ステップ８１５）。ステップ８１５は、図７のステップＢ７２４に相当する。ステップ８１５において送信されたコマンドは、ゲートウェイノード１３０を経由してルータノード１４０に到達し（ステップ８１６）、ルータノード１４０によって保持される。
【０２２２】
その後実行されるステップ８１７から８２４は、それぞれ、図４のステップ４１５から４２２と同じであるため、これらのステップの説明を省略する。ただし、ステップ８１９において送信されたデータは、図７のステップＡ７１１において受信される。ステップ８２４において送信されたデータは、図７のステップＢ７２５において受信される。
【０２２３】
その後再び、管理クライアント１６０が、センサネット管理サーバ１００に任意の範囲の履歴データを要求する（ステップ８２５）。この要求は、図７のステップＢ７２９に相当する。ステップ８０９と同様、この要求は、観測データ＃４から＃７を含む範囲を指定している。このとき、ステップ８０９及び８１０と同様の処理が実行され、履歴データが送信される（ステップ８２６）。ただし、この時点で、欠損していた観測データ＃４から＃７は既に補完されている（ステップ８２４参照）。このため、ステップ８２６において、観測データ＃４から＃７を含む完全な履歴データが送信される。
【０２２４】
上記の図７及び図８は、観測データをハートビート信号として利用する場合について説明したものである。センサノード１５０が定期的に環境情報（例えば、温度又は湿度等）を観測する場合、観測データをハートビート信号として利用することができる。この場合、ハートビート信号が消失することは、観測データが到達しないこと、すなわち、履歴データが欠損することを意味する。したがって、この場合、履歴データの欠損を補完する処理（図７のステップＢ７２１からＢ７２８）を実行する必要がある。
【０２２５】
ただし、ハートビートが消失している間は、センサノード１５０からセンサネット管理サーバ１００まで信号が到達する可能性が低い。ハートビートが復旧すれば、信号が到達する可能性は高くなる。このため、履歴データ要求コマンドは、ハートビートが消失している間は送信されず、ハートビートが復旧した後で送信される（ステップ８１５）。このように、欠損を補完できる可能性が高い場合に欠損を補完するための履歴要求コマンドが発送されるため、管理サーバは効率的に欠損データを補完することができ、管理サーバの処理が軽減される。
【０２２６】
一方、上記の例とは異なり、観測データが定期的に送信されない場合も考えられる。例えば、観測対象の環境情報が、不定期に発生するイベント（例えば、ドアの開け閉め）である場合、センサノード１５０は、そのイベントを検出したときに観測データを送信する。このように、観測データを定期的に送信しないセンサノード１５０は、観測データと別に定期的にハートビート信号を送信する必要がある。この場合、ハートビート信号が消失したとしても、履歴データに欠損が生じるとは限らない。例えば、ハートビート信号が消失してから復旧するまでの間に一度もドアが開け閉めされなかった場合、履歴データは欠損しない。
【０２２７】
このような場合、ハートビート信号に、観測データと共通するシーケンス番号を付与することによって、履歴データが欠損したか否かを判定することができる。例えば、センサノード１５０は、最後に送信した観測データに付与したシーケンス番号２０７と同じシーケンス番号を、ハートビート信号に付与して送信してもよい。この場合、復旧して最初に受信したハートビート信号のシーケンス番号と同じ又はそれより古いシーケンス番号が付与された観測データをまだ受信していなければ、履歴データに欠損があると判定される。
【０２２８】
以上の図７及び図８に示す処理によれば、ユーザが履歴を要求すると（ステップ８０９及び８２５）、すぐに履歴データが応答されるため（ステップ８１０及び８２６）、ユーザは迅速に履歴データを閲覧することができる。
【０２２９】
図９は、本発明の実施の形態において、シーケンス番号をトリガとして履歴データを取得する場合の、センサネット管理サーバ１００の機能ブロック及びデータフローの説明図である。
【０２３０】
既に説明したように、センサノード１５０は、履歴データをデータ蓄積部２０６に蓄積する。しかし、データ蓄積部２０６のデータ容量は有限であるため、空き容量がない場合、新しい観測データが格納されるときに、最も古い履歴データが削除される。したがって、センサネット管理サーバ１００は、履歴データ蓄積管理部３０３に蓄積された履歴データに欠損がある場合、欠損している履歴データがデータ蓄積部２０６から削除される前に履歴データ要求コマンドを発行する必要がある。
【０２３１】
図９に示すセンサネット管理サーバ１００は、履歴データがデータ蓄積部２０６から削除される前にその履歴データを取得するために、シーケンス番号に基づいて、履歴データ要求コマンドを発行するタイミングを決定する。
【０２３２】
センサネット管理サーバ１００は、外部要求受付部３０１、最新データ蓄積管理部３０２、履歴データ蓄積管理部３０３、イベント配送部３０４、データ欠損管理部３０５及びセンサネット通信部３０６を含む。これらの各部の説明は、すでに図３を参照してなされているため、省略する。
【０２３３】
図９のステップＡ９１１からＡ９１４は、それぞれ、図３のステップＡ３１１からＡ３１４と同じであるため、説明を省略する。
【０２３４】
図９のイベント配送部３０４は、センサネット通信部３０６から受信した最新の観測データを、さらにデータ欠損管理部３０５に送信する（ステップＡ９１５）。
【０２３５】
図９のステップＢ９２１からＢ９２７は、シーケンス番号をトリガとしてセンサネット管理サーバ１００が実行する処理を示す。具体的には、これらのステップは、欠損している履歴データのシーケンス番号と、イベント配送部３０４から受信した最新の観測データのシーケンス番号とを比較した結果に基づいて、センサネット管理サーバ１００が実行する処理を示す。
【０２３６】
ステップＢ９２１は、ステップＡ９１５に相当する。データ欠損管理部３０５は、ステップＢ９２１において、イベント配送部３０４から最新の観測データを受信する。
【０２３７】
データ欠損管理部３０５は、受信した最新の観測データのシーケンス番号と、欠損している履歴データのシーケンス番号とを比較する。具体的には、データ欠損管理部３０５は、履歴データ蓄積管理部３０３に蓄積されている履歴データに欠損があるか否かを判定する。そして、欠損がある場合、データ欠損管理部３０５は、欠損している履歴データのうち最も古い履歴データのシーケンス番号と、受信した最新の観測データのシーケンス番号との差が所定の閾値を超えたか否かを判定する。所定の閾値は、データ蓄積部２０６のデータ容量に対する割合に基づいて定められる。
【０２３８】
例えば、図２Ｂの例では、データ蓄積部２０６は、シーケンス番号２０７が「００００」から、「ＦＦＦＦ」（十進数に換算すると、６５５３５）までの６５５３６個の観測データを蓄積することができる。例えば、データ容量に対する割合「５０％」に基づいて閾値を定める場合、閾値は、６５５３６の５０％である３２７６８となる。
【０２３９】
この場合、データ欠損管理部３０５は、欠損している最も古い履歴データのシーケンス番号と、受信した最新の観測データのシーケンス番号との差が３２７６８を超えたとき、履歴データ要求コマンドを発行する必要があると判定する。そして、データ欠損管理部３０５は、欠損している履歴データを再送することを要求するための履歴データ要求コマンドをセンサネット通信部３０６に対して発行する（ステップＢ９２２）。その結果、欠損している履歴データを、削除される前に取得することが期待される。
【０２４０】
センサネット通信部３０６は、データ欠損管理部３０５から受信したコマンドを、センサノード１５０に対して発行する（ステップＢ９２３）。このコマンドは、図２ＡのステップＢ２２１において受信される。
【０２４１】
次に、センサネット通信部３０６は、センサノード１５０から送信された観測データ（履歴データ）を受信する（ステップＢ９２４）。ここで受信するデータは、図２ＡのステップＢ２２６において送信されたデータである。
【０２４２】
次に、センサネット通信部３０６は、受信した観測データを、イベント配送部３０４に送信する（ステップＢ９２５）。
【０２４３】
イベント配送部３０４は、受信した観測データを、履歴データ蓄積管理部３０３に送信する（ステップＢ９２６）。その結果、受信した観測データが、履歴データ蓄積管理部３０３が管理するデータベースに履歴データとして格納される。これによって、履歴データの欠損が補完される。
【０２４４】
次に、イベント配送部３０４は、受信した観測データ（すなわち、ステップＢ９２６において送信されたものと同じデータ）を、データ欠損管理部３０５に送信する（ステップＢ９２７）。
【０２４５】
なお、ステップＢ９２２からＢ９２５は、それぞれ、図３のステップＢ３２５からＢ３２８と同様である。また、ステップＢ９２６からＢ９２７は、それぞれ、図３のステップＢ３３０からＢ３３１と同様である。
【０２４６】
図９において、外部要求受付部３０１は、履歴データの要求を受信すると（ステップＢ９２８）、その要求を履歴データ蓄積管理部３０３に送信する（ステップＢ９２９）。
【０２４７】
外部要求受付部３０１からの要求を受信した履歴データ蓄積管理部３０３は、その時点でデータベースに蓄積されている履歴データを外部要求受付部３０１に送信する（ステップＢ９３０）。なお、図５のステップＢ５３２と同様の理由によって、ステップＢ９３０において、欠損のある履歴データが送信される場合がある。
【０２４８】
外部要求受付部３０１は、履歴データ蓄積管理部３０３から受信した履歴データを、要求元に送信する（ステップＢ９３１）。
【０２４９】
図１０は、本発明の実施の形態において、シーケンス番号をトリガとして実行される処理のコマンド発行シーケンスの説明図である。
【０２５０】
図１０において、ステップ１００１から１００７は、それぞれ、図４のステップ４０１から４０７と同じであるため、これらのステップの説明を省略する。ただし、ステップ１００４において送信されたデータは、図９のステップＡ９１１において受信される。
【０２５１】
また、図１０の例では、図４と同様、観測データ＃４から＃７の送信に失敗している。このため、この時点の履歴データ蓄積管理部３０３において、履歴データ＃４から＃７は欠損している。
【０２５２】
その後、管理クライアント１６０は、センサネット管理サーバ１００に、任意の範囲の履歴データを要求する（ステップ１００８）。この要求は、図９のステップＢ９２８に相当する。図４の例と同様、この要求は、観測データ＃４から＃７を含む範囲を指定している。
【０２５３】
センサネット管理サーバ１００では、図９のステップＢ９２９及びＢ９３０の処理が実行される。そして、センサネット管理サーバ１００は、要求された履歴データを管理クライアント１６０に送信する（ステップ１００９）。ステップ１００９は、図９のステップＢ９３１に相当する。ただし、ここで送信される履歴データにおいて、観測データ＃４から＃７は欠損している。
【０２５４】
その後、センサノード１５０は再び自律的に環境情報を観測し、最新の観測データ＃８及びコマンド要求を送信する（ステップ１０１０及び１０１１）。観測データ＃８は、ルータノード１４０及びゲートウェイノード１３０を経由してセンサネット管理サーバ１００に到達する（ステップ１０１２及び１０１３）。ステップ１０１３において送信された観測データ＃８は、図９のステップＡ９１１において、センサネット通信部３０６によって受信される。
【０２５５】
センサネット通信部３０６が受信した観測データ＃８は、イベント配送部３０４を経由して、データ欠損管理部３０５に送信される（ステップＡ９１５）。
【０２５６】
データ欠損管理部３０５は、受信した観測データ＃８のシーケンス番号「０００８」と、欠損した最も古い履歴データ＃４のシーケンス番号「０００４」との差「４」が、所定の閾値を超えているか否かを判定する。仮に所定の閾値が「３」であったとすると、二つのシーケンス番号の差が閾値を超えていると判定され、ステップＢ９２２及びＢ９２３が実行される。その結果、センサネット管理サーバ１００は、観測データ＃４から＃７を送信することを要求する履歴データ要求コマンドをセンサノード１５０に対して送信する（ステップ１０１４）。ステップ１０１４は、図９のステップＢ９２３に相当する。
【０２５７】
ステップ１０１４において送信されたコマンドは、ゲートウェイノード１３０を経由してルータノード１４０に到達し（ステップ１０１５）、ルータノード１４０によって保持される。
【０２５８】
その後実行されるステップ１０１６から１０２３は、それぞれ、図４のステップ４１５から４２２と同じであるため、これらのステップの説明を省略する。ただし、ステップ１０１８において送信されたデータは、図９のステップＡ９１１において受信される。ステップ１０２３において送信されたデータは、図９のステップＢ９２４において受信される。
【０２５９】
その後再び、管理クライアント１６０が、センサネット管理サーバ１００に任意の範囲の履歴データを要求する（ステップ１０２４）。この要求は、図９のステップＢ９２８に相当する。ステップ１００８と同様、この要求は、観測データ＃４から＃７を含む範囲を指定している。このとき、ステップ１００８及び１００９と同様の処理が実行され、履歴データが送信される（ステップ１０２５）。ただし、この時点で、欠損していた観測データ＃４から＃７は既に補完されている（ステップ１０２３参照）。このため、ステップ１０２５において、観測データ＃４から＃７を含む完全な履歴データが送信される。
【０２６０】
以上の図９及び図１０に示す処理によれば、ユーザが履歴を要求すると（ステップ１００８及び１０２４）、すぐに履歴データが応答され（ステップ１００９及び１０２５）、ユーザは迅速に履歴データを閲覧することができる。さらに、センサノード１５０内のデータ蓄積部２０６のデータ容量を考慮して、最も古いセンサノード上に格納している履歴データが削除される前に欠損データを補完することができるため、欠損していた履歴データを補完し損なうことなくユーザに提供することが可能となる。
【０２６１】
図１１は、本発明の実施の形態のセンサノード１５０の構成を示すブロック図である。
【０２６２】
本実施の形態のセンサノード１５０は、アンテナ１１０１、ＲＦ回路１１０２、センサ１１０３、不揮発メモリ１１０４、電源１１０５、マイクロコンピュータ（ＭＣ）１１０６及びリアルタイムクロック（ＲＴＣ）１１０７を備える。
【０２６３】
ＲＦ回路１１０２は、アンテナ１１０１を介してルータノード１４０又はゲートウェイノード１３０と無線通信路を介して通信する高周波（ＲＦ）回路である。
【０２６４】
センサ１１０３は、環境情報を観測する。本実施の形態のセンサ１１０３は、少なくとも、温度及び湿度を観測する。センサ１１０３は、その他のいかなる種類のセンサ（例えば、加速度センサ等）であってもよい。
【０２６５】
不揮発メモリ１１０４は、例えば、ＥＥＰＲＯＭ等である。本実施の形態の不揮発メモリ１１０４は、図２Ａに示すデータ蓄積部２０６に相当する。すなわち、不揮発メモリ１１０４には、少なくとも、図２Ｂに示す観測データが格納される。不揮発メモリ１１０４には、さらに他のデータが格納されてもよい。図２Ｂに示すデータは、不揮発メモリ１１０４に格納されるため、センサノードの電源が遮断されても（例えば電池交換のため完全に電力供給が停止しても）消失しない。
【０２６６】
電源１１０５は、センサノード１５０の各部を駆動するための電力を供給する。本実施の形態の電源１１０５は、例えば電池であるが、その他の種類の電源であってもよい。
【０２６７】
ＲＴＣ１１０７は、時刻情報を管理する。具体的には、ＲＴＣ１１０７は、所定の時間を計測するタイマであってもよいし、現在時刻を計測する時計であってもよい。本実施の形態のＲＴＣ１１０７は、現在時刻を計測する時計である。ＲＴＣ１１０７は、図２Ａに示すタイマ２０５に相当する。
【０２６８】
なお、電池交換等のために電力供給が完全に停止すると、センサノード１５０はリセットされる。その結果、ＲＴＣ１１０７は、正確な時刻を保持しなくなる。ここで、正確な時刻とは、センサネット管理サーバ１００によって管理される時刻と同期した時刻である。一方、不揮発メモリ１１０４に格納されたデータは消失しない。電源が復旧した後、センサノード１５０が環境情報の観測を開始すると、観測データは、データ蓄積部２０６（すなわち、不揮発メモリ１１０４）に引き続き格納される。このとき、最初に格納される観測データのシーケンス番号２０７は、センサノード１５０がリセットされる直前に格納された値の次の値となる。
【０２６９】
また、タイムスタンプ２０８には、センサノード１５０がリセットされた後、時刻同期処理が実行されるまで、正確でない時刻情報（すなわち、センサネット管理サーバ１００によって管理される時刻と同期していない時刻）が格納される。時刻同期処理が実行される前に格納された観測データは、履歴データ要求コマンドによって送信を要求されたとしても、送信されない。その後に実行される時刻同期処理については、後で図２１Ａ及び２１Ｂを参照して説明する。
【０２７０】
ＭＣ１１０６は、センサノード１５０全体を制御する。ＭＣ１１０６は、ＣＰＵ（図示省略）、ＲＡＭ（図示省略）及びＲＯＭ（図示省略）を備えてもよい。その場合、ＣＰＵがＲＯＭに格納されたソフトウェアを実行することによって、種々の機能が実現される。図１１には、さらに、ＭＣ１１０６が実現する機能のブロック図を示す。
【０２７１】
ＭＣ１１０６は、タスク制御部１１１１、無線通信部１１１２、ＲＦ回路インターフェース（Ｉ／Ｆ）１１１３、センサ制御部１１１４、センサＩ／Ｆ１１１５、データ管理部１１１６、不揮発メモリＩ／Ｆ１１１７、電源制御部１１１８、電源回路切替Ｉ／Ｆ１１１９及びタイマ割り込みレジスタ１１２０を備える。
【０２７２】
タスク制御部１１１１は、無線通信部１１１２、センサ制御部１１１４、データ管理部１１１６及び電源制御部１１１８を制御する。
【０２７３】
無線通信部１１１２は、ＲＦ回路１１０２が実行する無線通信を制御する。無線通信部１１１２は、図２Ａに示す無線通信部２０１に相当する。ＲＦ回路Ｉ／Ｆ１１１３は、無線通信部１１１２がＲＦ回路１１０２を制御するために使用するレジスタである。
【０２７４】
センサ制御部１１１４は、センサ１１０３が実行する環境情報の観測を制御する。センサ制御部１１１４は、図２Ａに示すセンサ制御部２０２に相当する。センサ１１０３がデジタルセンサである場合，センサＩ／Ｆ１１１５は、センサ制御部１１１４がセンサ１１０３を制御するために使用するレジスタである。また，センサ１１０３がアナログセンサの場合，センサＩ／Ｆ１１１５は，Ａ／Ｄ（アナログ−デジタル）変換器に相当する。
【０２７５】
データ管理部１１１６は、不揮発メモリ１１０４に対するデータの書き込み及び読み出しを制御する。不揮発メモリ１１１７は、データ管理部１１１６が不揮発メモリに対するデータの書き込み及び読み出しを実行するために使用するレジスタである。
【０２７６】
電源制御部１１１８は、電源１１０５による各部への電源の投入及び遮断を制御する。電源回路切替Ｉ／Ｆは、電源制御部１１１８が電源１１０５を制御するために使用するレジスタである。
【０２７７】
タイマ割り込みレジスタ１１２０は、ＲＴＣ１１０７からの割り込みを受けて、タスク制御部１１１１を起動させる。
【０２７８】
図１１に示す各部は、協同して、図２Ａ及び図４等に示すセンサノード１５０の機能を実現する。
【０２７９】
例えば、図２ＡのステップＡ２１１において、タスク制御部１１１１は、タイマ１１２０を経由してＲＴＣ１１０７からの割り込みを受けると、電源制御部１１１８に対して、センサノード１５０の各部への電源投入を要求する。その結果、センサノード１５０が活動状態になる。さらに、タスク制御部１１１１は、センサ制御部１１１４に対して環境情報の観測を要求する。センサ制御部１１１４は、センサＩ／Ｆ１１１５を経由してセンサ１１０３を制御し、環境情報を観測する。
【０２８０】
ステップＡ２１２からＡ２１４において、タスク制御部１１１１は、センサ制御部１１１４が観測した環境情報を受け取り、その環境情報を含む環境データの送信を無線通信部１１１２に要求するとともに、環境データの格納をデータ管理部１１１６に要求する。
【０２８１】
さらに、図２ＡのステップＢ２２２からＢ２２３において、タスク制御部１１１１は、無線通信部１１１２が受信した要求に従って、データ管理部１１１６に不揮発メモリ１１０４から履歴データを読み出すことを要求する。そして、図２ＡのステップＢ２２４からＢ２２５において、タスク制御部１１１１は、データ管理部１１１６によって読み出された履歴データを送信することを無線通信部１１１２に要求する。
【０２８２】
上記の一連の処理が終了すると、タスク制御部１１１１は、電源制御部１１１８に対して、ＲＴＣ１１０７以外の各部への電源遮断を要求する。その結果、センサノード１５０が休眠状態になる。
【０２８３】
一方、センサノード１５０が不定期に間欠動作をする場合もある。例えば、センサノード１５０がドアの開閉を観測するセンサ１１０３を備える場合、そのセンサ１１０３がドアの開閉を観測したときにセンサノード１５０が活動状態となる。そして、センサノード１５０は、観測データを送信すると、休眠状態となる。この場合、休眠状態のセンサノード１５０において、少なくともセンサ１１０３は動作している必要がある。
【０２８４】
いずれの場合にも、休眠状態のセンサノード１５０において、少なくともＲＦ回路への電力供給は遮断される。このため、休眠状態のセンサノード１５０の消費電力は、活動状態のときと比較して、小さくなる。
【０２８５】
図１２は、本発明の実施の形態のセンサノード１５０が実行する履歴データ要求コマンド返答処理のフローチャートである。
【０２８６】
具体的には、図１２は、センサノードが履歴データ要求コマンド（図４のステップ４１３等）を受信したときに実行する処理を示す。この処理は、図２ＡのステップＢ２２１からＢ２２６に示す処理に相当する。
【０２８７】
センサノード１５０が履歴データ要求コマンドを受信したとき、図１２に示す処理が開始される（ステップ１２０１）。
【０２８８】
受信した履歴データ要求コマンドは、要求の対象である履歴データのシーケンス番号２０７を指定している。例えば、図４のステップ４１３に示すコマンドは、＃４から＃７まで（すなわち、「０００４」から「０００７」まで）のシーケンス番号２０７を指定している。センサノード１５０は、指定されたシーケンス番号２０７のうち、まだ処理が終了していないシーケンス番号２０７があるか否か（すなわち、まだ対応する返答データが作成されていないシーケンス番号２０７があるか否か）を判定する（ステップ１２０２）。
【０２８９】
ステップ１２０２において、まだ処理が終了していないシーケンス番号２０７があると判定された場合、センサノード１５０は、まだ処理が終了していないシーケンス番号２０７のうち先頭のシーケンス番号２０７を処理の対象として選択する。以下、処理の対象のシーケンス番号２０７を「該当シーケンス番号」、該当シーケンス番号が付与された観測データを「該当データ」と記載する。センサノード１５０は、該当シーケンス番号がデータ蓄積部２０６に蓄積されているか否かを判定する（ステップ１２０３）。
【０２９０】
ステップ１２０３において、該当シーケンス番号がデータ蓄積部２０６に蓄積されていないと判定された場合、該当データはデータ蓄積部２０６に蓄積されていない。したがって、センサノード１５０は該当データを返答することができない。この場合、センサノード１５０は、該当データがないことを示す返答データを作成する（ステップ１２０６）。そして、センサノード１５０は、該当シーケンス番号の処理を終了し、次のシーケンス番号を対象とする処理を実行するためにステップ１２０２に戻る。
【０２９１】
一方、ステップ１２０３において、該当シーケンス番号がデータ蓄積部２０６に蓄積されていると判定された場合、該当データはデータ蓄積部２０６に蓄積されている。この場合、センサノード１５０は、該当データのタイムスタンプ２０８が時刻同期済みであるか否かを判定する（ステップ１２０４）。
【０２９２】
センサノード１５０の電源１１０５は、電池である。電池が交換されたとき、ＲＴＣ１１０７の値はリセットされる。その後、管理サーバ１００によって時刻が同期されるまで、ＲＴＣ１１０７は正確な時刻を示さない。なお、時刻同期済みであるか否かは、観測データに付加されたフラグを参照することによって判定することができる（図２１Ａ及び図２１Ｂ参照）。
【０２９３】
ステップ１２０４において、時刻同期済みでないと判定された場合、該当データのタイムスタンプ２０８の値は正確でない。この場合、該当データを使用することができないため、ステップ１２０６が実行された後、処理はステップ１２０２に戻る。
【０２９４】
一方、ステップ１２０４において、時刻同期済みであると判定された場合、センサノード１５０は、返答データを作成する（ステップ１２０５）。具体的には、該当データが返答データに追加される。そして、センサノード１５０は、該当シーケンス番号の処理を終了し、次のシーケンス番号を対象とする処理を実行するためにステップ１２０２に戻る。
【０２９５】
ステップ１２０２において、処理が終了していないシーケンス番号がないと判定された場合、履歴データ要求コマンドによって指定された全てのシーケンス番号２０７に対応する返答データの作成が終了した。この場合、センサノード１５０は、作成した返答データを送信して（ステップ１２０７）、処理を終了する。ステップ１２０７は、図２ＡのステップＢ２２６、及び、図４のステップ４２０に相当する。
【０２９６】
図１３Ａは、本発明の実施の形態のセンサネット管理サーバ１００が管理する最新の観測データの説明図である。
【０２９７】
センサネット管理サーバ１００の最新データ蓄積管理部３０２には、各センサノード１５０から受信した最新の観測データが格納される。図１３Ａは、ある時点において最新データ蓄積管理部３０２に格納されている最新の観測データの例を示す。
【０２９８】
最新データ蓄積管理部３０２に格納されている最新の観測データは、ノード識別子（ＩＤ）１３０１、タイムスタンプ１３０２及び観測値１３０３からなる。最新の観測データは、さらにシーケンス番号を含んでもよいが、必要ではない。
【０２９９】
ノードＩＤ１３０１は、格納されている観測データの送信元のセンサノード１５０の識別子である。ノードＩＤ１３０１として、ＩＥＥＥ拡張アドレスが使用されてもよい。
【０３００】
タイムスタンプ１３０２は、送信元のセンサノード１５０によって観測データに付与されたものである。タイムスタンプ１３０２は、図２Ｂのタイムスタンプ２０８に対応する。
【０３０１】
観測値１３０３は、センサノード１５０によって観測された環境情報の値である。本実施の形態の観測値１３０３は、センサノード１５０が観測した温度及び湿度である。
【０３０２】
図１３Ａでは、例えば、ノードＩＤ１３０１の値「０００１０００２０００３０００４」に対応するタイムスタンプ１３０２及び観測値１３０３として、それぞれ、「２００６／７／１６  １０：４５：０１」及び「２５．６℃  ６１％」が格納されている。この場合、ノードＩＤ「０００１０００２０００３０００４」によって識別されるセンサノード１５０から最後に受信した観測データが、２００６年７月１６日の１０時４５分１秒に観測された温度「２５．６℃」及び湿度「６１％」である。
【０３０３】
図１３Ｂは、本発明の実施の形態のセンサネット管理サーバ１００が管理する履歴データの説明図である。
【０３０４】
センサネット管理サーバ１００の履歴データ蓄積管理部３０３が管理するデータベースには、各センサノード１５０から受信した観測データの履歴、すなわち履歴データが格納される。図１３Ｂは、ノードＩＤ「０００１０００２０００３０００４」によって識別されるセンサノード１５０から受信した観測データの履歴の例を示す。センサネット管理サーバ１００が複数のセンサノード１５０から観測データを受信する場合、センサノードごとに図１３Ｂと同様のテーブルが作成され、履歴データ蓄積管理部３０３によって管理される。
【０３０５】
本実施の形態の履歴データは、シーケンス番号１３１１、タイムスタンプ１３１２及び観測値１３１３からなる。
【０３０６】
シーケンス番号１３１１及びタイムスタンプ１３１２は、送信元のセンサノード１５０によって観測データに付与されたものである。シーケンス番号１３１１及びタイムスタンプ１３０２は、図２Ｂのシーケンス番号２０７及びタイムスタンプ２０８に対応する。
【０３０７】
観測値１３１３は、センサノード１５０によって観測された環境情報の値である。本実施の形態の観測値１３１３は、センサノード１５０が観測した温度及び湿度である。
【０３０８】
図１３Ｂでは、例えば、シーケンス番号１３１１の値「００００」に対応するタイムスタンプ１３１２及び観測値１３１３として、それぞれ、「２００６／７／１４  １８：００：０１」及び「２８．０℃  ６０％」が格納されている。この場合、２００６年７月１４日の１８時００分１秒にセンサノード１５０によって観測された温度及び湿度が、それぞれ、「２５．６℃」及び「６１％」である。
【０３０９】
図１３Ｂの例では、シーケンス番号１３１１が「０００４」から「０００７」までの観測データが欠損している。これは、センサネット管理サーバ１００が、観測データ＃４から＃７までを受信することができなかったことを意味する。
【０３１０】
図１４は、本発明の実施の形態のデータ欠損管理部３０５が管理するデータ欠損シーケンス番号の説明図である。
【０３１１】
データ欠損管理部３０５は、欠損している観測データのシーケンス番号を管理する。具体的には、例えば、データ欠損管理部３０５は、図３のステップＢ３２４において、欠損している履歴データを調査する。その結果、欠損している観測データのシーケンス番号を取得する。
【０３１２】
データ欠損管理部３０５が管理する情報は、図１４に示すように、少なくとも、ノードＩＤ１４０１及び欠損シーケンス番号１４０２からなる。
【０３１３】
ノードＩＤ１４０１は、各センサノード１５０の識別子である。
【０３１４】
欠損シーケンス番号１４０２は、各センサノード１５０に対応する履歴データのうち、欠損している観測データのシーケンス番号である。
【０３１５】
例えば、図１３Ｂによれば、ノードＩＤが「０００１０００２０００３０００４」であるセンサノード１５０の履歴データにおいて、シーケンス番号１３１１が「０００４」から「０００７」までの観測データが欠損している。この場合、図１４において、ノードＩＤ１４０１の値「０００１０００２０００３０００４」に対応する欠損シーケンス番号１４０２に、「０００４」から「０００７」までの値が含まれる。
【０３１６】
図３のステップＢ３３０において、シーケンス番号が「０００４」から「０００７」までの観測データ（履歴データ）が補完された場合、ステップＢ３１１において、欠損シーケンス番号１４０２から、「０００４」から「０００７」までの値が削除される。
【０３１７】
なお、何らかの原因によってセンサネット管理サーバ１００が再起動したとき、データ欠損管理部３０５はリセットされ、その結果、図１４に示すデータが全て失われる場合がある。このとき、データ欠損管理部３０５は、履歴データ蓄積管理部３０３が管理する履歴データを参照して、欠損シーケンス番号１４０２を取得し、格納してもよい。
【０３１８】
次に、データの表示画面について、図１５Ａから図１７Ｂまでを参照して説明する。これらの表示画面は、管理クライアント１６０又は業務クライアント１６５の表示装置（図示省略）に表示される。
【０３１９】
図１５Ａは、本発明の実施の形態において、最新の観測データを表形式で表示する画面の説明図である。本表示形式は、ユーザが最新データ要求で表形式を指定した場合もしくは例えば「現場把握」など最新の観測データを表形式で表示することを前提とするメニューを指定した場合に表示する画面であり、最新データ蓄積管理部に格納される最新の観測データが表示される。
【０３２０】
具体的には、図１５Ａは、図１３Ａに示す最新の観測データを表示する例である。図１５Ａの表示画面は、ノード番号１５０１、ノード名称１５０２、温度１５０３、湿度１５０４及び観測時刻１５０５からなる。  ノード番号１５０１及びノード名称１５０２は、表示対象である各センサノード１５０を識別する情報である。ノード番号１５０１の値「１」から「６」は、それぞれ、図１３ＡのノードＩＤ１３０１の値「０００１０００２０００３０００４」から「０００１０００２０００３０００９」に対応する。
【０３２１】
ノード名称１５０２は、各センサノード１５０が取り付けられている場所を示す。図１５Ａの例では、ノード番号１５０１の値「１」から「６」に対応するセンサノード１５０が、それぞれ、第１会議室、第２会議室、第３会議室、大会議室東側、大会議室西側及び廊下に取り付けられている。なお、ノード名称１５０２は、センサノード１５０が取り付けられている人又は物の名称、又は、ユーザが管理しやすいその他の名称であってもよい。
【０３２２】
温度１５０３及び湿度１５０４は、図１３Ａの観測値１３０３に対応する。
【０３２３】
観測時刻１５０５は、図１３Ａのタイムスタンプ１３０２に対応する。
【０３２４】
図１５Ｂは、本発明の実施の形態において、最新の観測データをマップ形式で表示する画面の説明図である。本表示形式は、ユーザが最新データ要求でマップ形式を指定した場合もしくは「現場全体把握」など最新の観測データをマップ形式で表示することを前提とするメニューを指定した場合に表示する画面であり、図１５Ａと同様に最新データ蓄積管理部に格納される最新の観測データが表示される。
【０３２５】
図１５Ｂは、図１５Ａと同じ観測データをマップ形式で表示する例である。図１５Ｂに示すように、画面にはフロア図が表示される。そして、センサノード１５０が取り付けられた位置に、そのセンサノードが観測した最新の観測データ（すなわち、温度及び湿度）及びノード名称等が表示される。
【０３２６】
図１６は、本発明の実施の形態において、履歴データをグラフ形式で表示する画面の説明図である。本表示形式は、ユーザが履歴データ要求でグラフ形式を指定した場合もしくは例えば「日報作成」など履歴データをグラフ形式で表示することを前提とするメニューを指定した場合に表示する画面であり、履歴データ蓄積管理部に格納される履歴データが表示される。
【０３２７】
図１６には、例として、２００６年７月１日に二つのセンサノード１５０（ノードＡ及びノードＢ）によって観測された全ての履歴データを表示する画面を示す。この例において、表示される履歴データは温度である。この場合、二つのセンサノード１５０によって２００６年７月１日０時０分から、同日の２４時０分までに観測された全ての温度が、２本の折れ線グラフによって表示される。
【０３２８】
図１６には、例えば日報を作成することを前提として、ある１日の０時から２４時までの期間の履歴データが表示されているが、ユーザは、履歴データを表示する任意の期間を指定することができる。
【０３２９】
図１７Ａは、本発明の実施の形態において、最新の観測データ及び履歴データをグラフ形式で表示する画面の説明図である。本表示形式は、ユーザが最新データ要求でグラフ形式を指定した場合もしくは「現在までの現場把握」など最新の観測データ及び履歴データをグラフ形式で表示することを前提とするメニューを指定した場合に表示する画面であり、最新データ蓄積管理部及び履歴データ蓄積管理部に格納される観測データが表示される。
【０３３０】
図１７Ａには、例として、二つのセンサノード１５０（ノードＡ及びノードＢ）によって観測された温度を表示する画面を示す。この例において、現在時刻は２００６年７月１６日１２時３０分である。図１７Ａの例は、二つのセンサノード１５０によって２００６年７月１６日９時０分から、現在時刻（同日の１２時３０分）までの間に観測された温度が、履歴データ蓄積管理部から読み出されて２本の折れ線グラフによって表示される。さらにこれ以後は、最新データ蓄積管理部から最新の観測データが読み出され、観測データが追加表示されることになる。これにより、履歴データ蓄積管理部に既に格納されている品質の高い履歴データを表示され、かつ、それ以後は最新の観測データによりリアルタイムに状況を把握することが可能となる。
【０３３１】
なお、図１７Ａに欠損があるのは、図６、８、１０で説明したユーザからの履歴データ要求のタイミングにより欠損のある履歴データがユーザに提供される場合であるからである。または、図３で説明したように、ユーザからの要求をトリガとして欠損したデータを補完する場合において、履歴データ蓄積管理部３０３が外部要求受付部３０１から履歴データ要求を受信後、すぐにもしくは所定時間後、格納されている欠損のある履歴データを外部要求受付部３０１に送信し、ユーザに提供される場合であるからである。
【０３３２】
図１７Ｂは、図１７Ａと同様に、本発明の実施の形態において、最新の観測データ及び履歴データをグラフ形式で表示する画面の説明図である。本表示形式も、ユーザが最新データ要求でグラフ形式を指定した場合もしくは「現在までの現場把握」など最新の観測データ及び履歴データをグラフ形式で表示することを前提とするメニューを指定した場合に表示する画面であり、最新データ蓄積管理部及び履歴データ蓄積管理部に格納される観測データが表示される。図１７Ｂの例は、図１７Ａから１時間半経過し、現在時刻（同日の１４時００分）までに観測された温度が表示されており、１時間半の間に欠損を補完する処理が行われ、欠損のない履歴データが表示されている。
【０３３３】
次に、センサネット管理サーバ１００内で扱われるコマンド又はイベントについて、図１８から図２０を参照して説明する。
【０３３４】
図１８は、本発明の実施の形態のセンサネット管理サーバ１００内で扱われる単一観測イベントの説明図である。
【０３３５】
単一観測イベントとは、センサノード１５０において観測されたリアルタイムデータをセンサネット管理サーバ１００が受信したときに発生するイベントである。本実施の形態の観測データは、センサノード１５０からゲートウェイノード１３０までの間は、ＺｉｇＢｅｅのような規格に準拠した無線通信によって伝送される。そして、観測データは、例えばＺｉｇＢｅｅアダプタ１１２又はプロファイルドアダプタ１０６において、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式に変換される。図１８に示す単一観測イベントは、例えば、図３のステップＡ３１２において送信される。
【０３３６】
図１８の例は、ノードＩＤが「０００１０００２０００３０００４」であるセンサノード１５０によって、２００６年１月１日１０時２分１秒に測定された温度「２３℃」が、シーケンス番号「００１Ｆ」とともに、「１３３．ｘｘｘ．ｙｙｙ．ｚｚｚ：５５５５」なる識別子を有するゲートウェイノード１３０を経由して送信されたことを示す。
【０３３７】
図１９は、本発明の実施の形態のセンサネット管理サーバ１００内で扱われる履歴データ要求コマンドの説明図である。
【０３３８】
図１９に示す履歴データ要求コマンドは、図３のステップＢ３２５等において送信されるコマンドの一例である。このコマンドは、ＸＭＬによって記述される。
【０３３９】
図１９の例は、ノードＩＤが「０００１０００２０００３０００４」であるセンサノード１５０に対して、シーケンス番号「００１０」及び「００２９」から「００２Ｂ」の履歴データの送信を要求するコマンドを示す。
【０３４０】
図２０は、本発明の実施の形態のセンサネット管理サーバ１００内で扱われるまとめ送りイベントの説明図である。
【０３４１】
まとめ送りイベントとは、履歴データ要求コマンドに応答して送信された履歴データをセンサネット管理サーバ１００が受信したときに発生するイベントである。図２０に示すまとめ送りイベントは、例えば、図３のステップＢ３２８において送信される。
【０３４２】
具体的には、図２０は、例として、図１９に示すコマンドに対する応答をセンサノード１５０から受信したセンサネット管理サーバ１００において発生するまとめ送りイベントを示す。
【０３４３】
図２０の例は、シーケンス番号「００１０」に対応する履歴データがセンサノード１５０に存在しなかったことを示す。不揮発メモリ１１０４の容量は有限であるため、古い履歴データが新しい履歴データによって上書きされる場合がある。その結果、要求された履歴データがセンサノード１５０に存在しない場合がある。このような場合、センサネット管理サーバ１００は、存在しなかったシーケンス番号（図２０の例では、「００１０」）を対象とする履歴データ要求コマンドをさらに発行することはない。
【０３４４】
さらに、図２０の例は、シーケンス番号「００２９」、「００２Ａ」及び「００２Ｂ」に対応する観測値が、それぞれ、温度「２３．０℃」、「２２．０℃」及び「２４．０℃」であることを示す。さらに、図２０の例は、シーケンス番号「００２９」、「００２Ａ」及び「００２Ｂ」に対応するタイムスタンプが、それぞれ、「２００６年１月１日１０時０分１秒」、「２００６年１月１日１０時１分１秒」及び「２００６年１月１日１０時２分１秒」であることを示す。
【０３４５】
次に、センサノード１５０の時刻同期処理について、図２１Ａ及び図２１Ｂを参照して説明する。
【０３４６】
センサノード１５０のＲＴＣ１１０７は、通常、常に正確な時刻（すなわち、センサネット管理サーバ１００によって管理される時刻に同期した時刻）を保持していることが期待される。しかし、ＲＴＣ１１０７に保持された時刻がリセットされる場合がある。例えば、電源１１０５が電池である場合、電池交換の際にＲＴＣ１１０７がリセットされる。その後、センサノード１５０は、センサネット管理サーバ１００から時刻情報を取得して、取得した時刻にＲＴＣ１１０７の時刻を同期させる。このような時刻同期処理が実行されるまでの間、ＲＴＣ１１０７は、正確な時刻を保持しない。このように、電池が交換された後、時刻同期処理が実行される前に観測された観測データのタイムスタンプは、センサネット管理サーバ１００によって管理される時刻に同期していないため、利用することができない。
【０３４７】
しかし、センサノード１５０は、センサネット管理サーバ１００から時刻情報を取得したときに、その取得した時刻情報と、それを取得した時点のＲＴＣ１１０７が保持している時刻との差分に基づいて、既に観測データとして格納されている不正確な（すなわち、センサネット管理サーバ１００によって管理される時刻に同期していない）タイムスタンプを修正することができる。具体的には、上記の差分を、既に格納されている不正確なタイムスタンプに加算することによって、タイムスタンプが修正される。修正された後のタイムスタンプは、利用することができる。
【０３４８】
図２１Ａは、本発明の実施の形態において、時刻同期処理が実行される前のセンサノード１５０のデータ蓄積部２０６に格納されたデータの説明図である。
【０３４９】
図２１に示すデータは、図２Ｂに示したデータに時刻同期フラグ２１０４を追加したものである。図２１Ａのうち、シーケンス番号２１０１、タイムスタンプ２１０２及び観測値２１０３は、それぞれ、図２Ｂのシーケンス番号２０７、タイムスタンプ２０８及び観測値２０９と同様であるため、説明を省略する。ただし、時刻同期処理がまだ実行されていないため、図２１Ａのタイムスタンプ２０８には、正確な値が格納されていない。
【０３５０】
本実施の形態において、センサノード１５０のＲＴＣ１１０７に保持された時刻は、リセットによって２０００年１月１日０時０分０秒となる。すなわち、ＲＴＣ１１０７は、リセットされると、２０００年１月１日０時０分０秒を基点として動作を開始する。
【０３５１】
時刻同期フラグ２１０４は、時刻同期処理が実行されたか否かを示すフラグである。時刻同期フラグ２１０４の値が「０」である場合、時刻同期処理がまだ実行されていない。すなわち、その時刻同期フラグ２１０４に対応するタイムスタンプの値は、センサネット管理サーバ１００によって管理される時刻に同期していない。一方、時刻同期フラグ２１０４の値が「１」である場合、時刻同期処理が既に実行されている。すなわち、その時刻同期フラグ２１０４に対応するタイムスタンプの値は、センサネット管理サーバ１００によって管理される時刻に同期している。
【０３５２】
センサノード１５０は、時刻同期処理がまだ実行されていなくても、ＲＴＣ１１０７からの要求に応じて環境情報を観測し、観測データを作成する。しかし、センサノード１５０は、センサネット管理サーバ１００によって管理される時刻に同期していないタイムスタンプに対応する観測データを送信することを禁止する。すなわち、センサノード１５０は、時刻同期処理がまだ実行されていないとき、観測データをリアルタイムデータとして送信せず、データ蓄積部２０６に格納する。
【０３５３】
さらに、センサノード１５０は、履歴データ要求コマンドによって、時刻同期フラグ２１０４の値が「０」である観測データの送信を要求されたとしても、その観測データを送信しない。あるいは、センサノード１５０は、観測データを送信するとともに、履歴データ要求コマンドを受信した時刻とその観測データが観測された時刻との差分を送信してもよい。この場合、センサネット管理サーバ１００は、その差分に基づいて正確なタイムスタンプを算出することができる。
【０３５４】
図２１Ａの例では、時刻同期処理がまだ実行されていないため、時刻同期フラグ２１０４の値が「０」である。上記のように、時刻同期フラグ２１０４の値が「０」である観測データは、利用することができない。これらの観測データは、図２１Ｂに示す時刻同期処理の対象となる。
【０３５５】
図２１Ｂは、本発明の実施の形態において、時刻同期処理が実行された後のセンサノード１５０のデータ蓄積部２０６に格納されたデータの説明図である。
【０３５６】
図２１Ｂは、図２１Ａに示すデータに対して時刻同期処理を実行することによって取得される、修正されたデータの例を示す。
【０３５７】
例えば、ＲＴＣ１１０７が時刻情報として「２０００年１月１日０時１０分１０秒」を保持しているときに、センサノード１５０が、センサネット管理サーバ１００から時刻情報「２００６年７月１６日１０時１０分１秒」を取得した場合、それらの二つの時刻の差分は、「６年６か月１５日９時間５９分５１秒」である。
【０３５８】
なお、センサネット管理サーバ１００から送信された時刻情報をセンサノード１５０が受信するまでに、ＩＰネットワーク１８０及びＰＡＮ１８５において遅延が発生する場合がある。この場合、上記の時刻情報「２００６年７月１６日１０時１０分１秒」は、センサネット管理サーバ１００から送信された時刻情報に、上記の遅延時間を加算することによって補正された値であってもよい。
【０３５９】
この場合、シーケンス番号「００００」、「０００１」及び「０００２」に対応するタイムスタンプ「２０００年１月１日０時０分１０秒」、「２０００年１月１日０時５分１０秒」及び「２０００年１月１日０時１０分１０秒」に上記の差分を加算することによって、正確なタイムスタンプ「２００６年７月１６日１０時０分１秒」、「２００６年７月１６日１０時５分１秒」及び「２００６年７月１６日１０時１０分１秒」が算出される。これらの算出された値によって、タイムスタンプ２１０２を修正することができる。
【０３６０】
タイムスタンプ２１０２が修正されると、時刻同期フラグ２１０４の値が「１」に更新される。時刻同期フラグ２１０４の値が「１」である観測データは、利用することができる。すなわち、センサノード１５０は、時刻同期処理が実行された後に作成された観測データを最新の観測データとして送信する。また、センサノード１５０は、履歴データ要求コマンドによって、時刻同期フラグ２１０４の値が「１」である観測データの送信を要求された場合、その観測データを送信する。
【０３６１】
なお、センサノード１５０がリセットされた時点で、時刻同期フラグ２１０４の値が「０」である観測データが既に格納されていた場合、その観測データの正確なタイムスタンプ２０８をその後の時刻同期処理によって算出することは不可能である。したがって、このような観測データは無効化される。
【０３６２】
上記のような時刻同期処理は、センサノード１５０がリセットされたときだけでなく、ＲＴＣ１１０７が保持している時刻と、センサネット管理サーバ１００によって管理される時刻との間に誤差が生じた場合に実行されてもよい。
【０３６３】
次に、センサノード１５０の外観について、図２２Ａ及び図２２Ｂを参照して説明する。
【０３６４】
図２２Ａは、本発明の実施の形態における、観測値が表示されたセンサノード１５０の外観の説明図である。
【０３６５】
本実施の形態のセンサノード１５０は、データ表示部２２０１、操作ボタン２２０２及び操作ボタン２２０３を備える。
【０３６６】
データ表示部２２０１は、例えば、液晶表示画面である。データ表示部には、操作ボタン２２０２等の操作に応じてデータが表示される。あるいは、センサネット管理サーバ１００から受信したコマンドに従って、データが表示されてもよい。この表示は、消費電力削減のため、所定の時間が経過した後自動的に消える。ただし、データ表示部が電子ペーパーのように電力を消費しない素子である場合、表示を持続してもよい。
【０３６７】
図２２Ａの例では、データ表示部２２０１に最新の観測値、すなわち、温度及び湿度が表示されている。例えば、操作ボタン２２０２を操作することによって、データ表示部２２０１に最新の観測値が表示されてもよい。あるいは，操作ボタン２２０２を操作することによって，蓄積されている過去の温度や湿度の観測値，蓄積されているデータの中の最大値や最小値，あるいは平均値が表示されても良い。あるいは、操作ボタン２２０２を操作することによって、センサネットに関する情報（例えば、チャンネルに関する情報又はＰＡＮ識別子）が表示されてもよい。操作ボタン２２０２を操作するごとに、これらの表示が切り替えられてもよい。
【０３６８】
図２２Ｂは、本発明の実施の形態における、蓄積データ数が表示されたセンサノード１５０の外観の説明図である。
【０３６９】
図２２Ｂは、図２２Ａと同様のセンサノード１５０のデータ表示部２２０１に、蓄積データ数が表示された例を示す。蓄積データ数とは、センサノード１５０のデータ蓄積部２０６に格納されている観測データ（履歴データ）の数である。例えば、操作ボタン２２０３を操作することによって、データ表示部２２０１に蓄積データ数が表示されてもよい。あるいは、操作ボタン２２０３を操作することによって、データ蓄積部２０６に格納されている観測データのタイムスタンプ２０８の範囲又はシーケンス番号２０７の範囲が表示されてもよい。操作ボタン２２０３を操作するごとに、これらの表示が切り替えられてもよい。
【０３７０】
あるいは、操作ボタン２２０２及び２２０３の操作の組み合わせによって、データ表示部２２０１に表示されるデータが決定されてもよい。センサノード１５０は、さらに多くの操作ボタンを備えてもよい。
【０３７１】
なお、本実施形態における処理フローはプログラムとして構成し、コンピュータでプログラムを読み取ることで実行することができる。
【０３７２】
以上、本発明の例を説明したが、本発明は上記実施例に限定されるものではなく種々変形実施可能であり、上述した各実施例を適宜組み合わせることが可能であることは当業者に理解されよう。
【０３７３】
以上の本発明の実施の形態によれば、センサノード１５０は、不揮発メモリ１１０４を備え、観測した環境情報を含む観測データを、センサネット管理サーバ１００に送信するとともに、不揮発メモリ１１０４にも履歴データとして格納する。そして、センサノード１５０は、センサネット管理サーバ１００からのＡＣＫを待たずに休眠状態となる。
【０３７４】
センサネット管理サーバ１００は、最新の観測データを格納するメモリと、観測データの履歴（すなわち、履歴データ）を管理するデータベースとを独立して管理する。そして、センサネット管理サーバ１００は、履歴データに欠損がある場合、センサノード１５０に履歴データの送信を要求する。
【０３７５】
センサノード１５０は、要求に応じて、不揮発メモリ１１０４に格納された履歴データをセンサネット管理サーバ１００に送信する。その結果、センサネット管理サーバ１００は、欠損のない完全な履歴データを取得することができる。
【０３７６】
したがって、本発明の実施の形態によれば、センサノード１５０がセンサネット管理サーバ１００からのＡＣＫを待たないため、活動状態の時間が短縮され、それによって、消費電力が削減される。その結果、センサノード１５０の電池交換のコストを低減することができる。
【０３７７】
さらに、センサネット管理サーバにおいて、最新の観測データと履歴データを分けて管理し、必要に応じてセンサノード１５０に格納された履歴データを取得するため、センサネット管理サーバ１００は、最新の観測データと完全な履歴データをユーザに提供することができる。
【０３７８】
ユーザは、仮に最新の観測データを取得できない場合であっても、後で、欠損のない完全な履歴データを取得することができる。このとき、複数の欠損があれば、それらの複数の欠損したデータを一度にまとめて送信することができる。このため、送信に失敗するたびにデータを再送する従来の方法と比較して、送信のための消費電力が削減される。
【０３７９】
また、センサネット管理サーバ１００は、センサノード１５０の不揮発メモリ１１０４に格納された履歴データをバックアップとして利用することができる。例えば、履歴データ蓄積管理部３０３が管理するデータベースの内容が消失した場合、不揮発メモリ１１０４に格納された履歴データから、過去の観測データを再構築することができる。
【図面の簡単な説明】
【０３８０】
【図１】本発明の実施の形態のセンサネットシステムの構成を示すブロック図の一例である。
【図２Ａ】本発明の実施の形態のセンサノードの機能ブロック及びデータフローの説明図の一例である。
【図２Ｂ】本発明の実施の形態のセンサノードのデータ蓄積部に格納されたデータの説明図の一例である。
【図３】本発明の実施の形態において、ユーザからの要求をトリガとして履歴データを取得する場合の、センサネット管理サーバの機能ブロック及びデータフローの説明図の一例である。
【図４】本発明の実施の形態において、ユーザからの要求をトリガとして実行される処理のコマンド発行シーケンスの説明図の一例である。
【図５】本発明の実施の形態において、時刻情報をトリガとして履歴データを取得する場合の、センサネット管理サーバの機能ブロック及びデータフローの説明図の一例である。
【図６】本発明の実施の形態において、時刻情報をトリガとして実行される処理のコマンド発行シーケンスの説明図の一例である。
【図７】本発明の実施の形態において、ハートビート復旧をトリガとして履歴データを取得する場合の、センサネット管理サーバの機能ブロック及びデータフローの説明図の一例である。
【図８】本発明の実施の形態において、ハートビート復旧をトリガとして実行される処理のコマンド発行シーケンスの説明図の一例である。
【図９】本発明の実施の形態において、シーケンス番号をトリガとして履歴データを取得する場合の、センサネット管理サーバの機能ブロック及びデータフローの説明図の一例である。
【図１０】本発明の実施の形態において、シーケンス番号をトリガとして実行される処理のコマンド発行シーケンスの説明図の一例である。
【図１１】本発明の実施の形態のセンサノードの構成を示すブロック図の一例である。
【図１２】本発明の実施の形態のセンサノードが実行する履歴データ要求コマンド返答処理のフローチャートの一例である。
【図１３Ａ】本発明の実施の形態のセンサネット管理サーバが管理する最新の観測データの説明図の一例である。
【図１３Ｂ】本発明の実施の形態のセンサネット管理サーバが管理する履歴データの説明図の一例である。
【図１４】本発明の実施の形態のデータ欠損管理部が管理するデータ欠損シーケンス番号の説明図の一例である。
【図１５Ａ】本発明の実施の形態において、最新の観測データを表形式で表示する画面の説明図の一例である。
【図１５Ｂ】本発明の実施の形態において、最新の観測データをマップ形式で表示する画面の説明図の一例である。
【図１６】本発明の実施の形態において、履歴データをグラフ形式で表示する画面の説明図の一例である。
【図１７Ａ】本発明の実施の形態において、欠損のある最新データ表示をする画面の説明図の一例である。
【図１７Ｂ】本発明の実施の形態において、欠損のない最新データ表示をする画面の説明図の一例である。
【図１８】本発明の実施の形態のセンサネット管理サーバ内で扱われる単一観測イベントの説明図の一例である。
【図１９】本発明の実施の形態のセンサネット管理サーバ内で扱われる履歴データ要求コマンドの説明図の一例である。
【図２０】本発明の実施の形態のセンサネット管理サーバ内で扱われるまとめ送りイベントの説明図の一例である。
【図２１Ａ】本発明の実施の形態において、時刻同期処理が実行される前のセンサノードのデータ蓄積部に格納されたデータの説明図の一例である。
【図２１Ｂ】本発明の実施の形態において、時刻同期処理が実行された後のセンサノードのデータ蓄積部に格納されたデータの説明図の一例である。
【図２２Ａ】本発明の実施の形態における、観測値が表示されたセンサノードの外観の説明図の一例である。
【図２２Ｂ】本発明の実施の形態における、蓄積データ数が表示されたセンサノードの外観の説明図の一例である。
【符号の説明】
【０３８１】
１００  センサネット管理サーバ
１０１  オブジェクトマネージャ
１０２  アクションマネージャ
１０３  イベント配送部
１０４  Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＰＡＮ）マネージャ
１０５  値変換部
１０６  プロファイルドアダプタ
１０７  ログマネージャ
１０８  ＩＰ通信部
１０９  クライアントアダプタ
１１０  Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ（ＲＤＢ）アダプタ
１１１  ＳＭＴＰアダプタ
１１２  ＺｉｇＢｅｅアダプタ
１１３  有線センサアダプタ
１１４  ＲＦＩＤアダプタ
１２０  ＲＤＢサーバ
１２５  メールサーバ
１３０  ゲートウェイノード
１３１、１４１、１５１  ＺｉｇＢｅｅ通信部
１３２  ＩＰ通信部
１３３  ＰＡＮ制御部
１３４、１４２  ルーティングマネージャ
１４０  ルータノード
１５０  センサノード
１５２  タスクマネージャ
１５３  センサ制御部
１５４  電源管理部
１６０  管理クライアント
１６５  業務クライアント
１７０  有線センサ
１７５  ＲＦＩＤリーダ
１８０  ＩＰネットワーク
１８５  ＰＡＮ
【図１】
2008071157.tif 000003
【図２Ａ】
2008071157.tif 000004
【図２Ｂ】
2008071157.tif 000005
【図３】
2008071157.tif 000006
【図４】
2008071157.tif 000007
【図５】
2008071157.tif 000008
【図６】
2008071157.tif 000009
【図７】
2008071157.tif 000010
【図８】
2008071157.tif 000011
【図９】
2008071157.tif 000012
【図１０】
2008071157.tif 000013
【図１１】
2008071157.tif 000014
【図１２】
2008071157.tif 000015
【図１３Ａ】
2008071157.tif 000016
【図１３Ｂ】
2008071157.tif 000017
【図１４】
2008071157.tif 000018
【図１５Ａ】
2008071157.tif 000019
【図１５Ｂ】
2008071157.tif 000020
【図１６】
2008071157.tif 000021
【図１７Ａ】
2008071157.tif 000022
【図１７Ｂ】
2008071157.tif 000023
【図１８】
2008071157.tif 000024
【図１９】
2008071157.tif 000025
【図２０】
2008071157.tif 000026
【図２１Ａ】
2008071157.tif 000027
【図２１Ｂ】
2008071157.tif 000028
【図２２Ａ】
2008071157.tif 000029
【図２２Ｂ】
2008071157.tif 000030