(57)【要約】【課題】センサノード及び中間ノードの無線通信の品質が低下した状態で放置されるのを防ぐ。【解決手段】センサの測定結果をセンシングデータとして送信するセンサノードと、このセンシングデータを中継する複数の中間ノードと、この中間ノードから中継されたセンシングデータを受信するサーバ計算機は、センサノードの運用中に、センサノードと中間ノードの通信品質を監視する通信品質モニタ部と、通信品質が予め設定した条件を満たして通信品質が悪化したと判定されたときには、センサノードが接続可能な中間ノードのうち、最も通信品質の高い中間ノードを選択する中間ノード選択部と、選択した中間ノードに対してセンサノードとの接続を許可する接続許可部と、センサノードに対して、複数の中間ノードと再度接続する指令を送信する再接続指令部とを備え、センサノードは、サーバ計算機からの前記指令に基づいて中間ノードに再接続を要求する。【選択図】図１
2009111455.tif 000002
【特許請求の範囲】
【請求項１】
センサを備えて所定の情報を測定し、測定結果をセンシングデータとして送信するセンサノードと、
前記センサノードに接続されて前記センシングデータを中継する複数の中間ノードと、
前記中間ノードに接続されて、前記中継されたセンシングデータを受信するサーバ計算機と
を備えたセンサネットシステムであって、
前記サーバ計算機は、
前記センサノードの運用中に、前記センサノードと中間ノードの通信品質を監視する通信品質モニタ部と、
前記通信品質が予め設定した条件を満たしたときに通信品質が悪化したことを判定する通信品質判定部と、
前記通信品質が悪化したと判定されたときには、当該通信品質のセンサノードが接続可能な中間ノードのうち、最も通信品質の高い中間ノードを選択する中間ノード選択部と、
前記選択した中間ノードに対して前記センサノードとの接続を許可する接続許可部と、
前記センサノードに対して、前記複数の中間ノードと再度接続する指令を送信する再接続指令部と
を備え、
前記センサノードは、
前記中間ノードと送受信を行う無線通信部と、
前記サーバ計算機からの前記指令に基づいて前記中間ノードに再接続を要求するセンサノード制御部と
を備えたことを特徴とするセンサネットシステム。
【請求項２】
請求項１において、
前記中間ノード選択部は、
前記センサノードの起動時または再接続時に接続すべき中間ノードを親ノードとし、当該親ノードの識別子をセンサノードの識別子に対応付けて予め設定したノード管理部と、
前記親ノードの中から最も通信品質の高い中間ノードを選択する親ノード選択部と
を含むことを特徴とするセンサネットシステム。
【請求項３】
請求項２において、
前記センサノードは、前記センシングデータに加えて接続中の中間ノードとの通信品質を示す通信品質情報を送信し、
前記通信品質モニタ部は、
前記中間ノードを介して前記センサノードから受信したセンシングデータより前記通信品質情報を抽出し、前記抽出した通信品質情報の履歴を格納する通信品質格納部を有し、
前記通信品質判定部は、
前記受信したセンシングデータから抽出した通信品質情報と、前記通信品質格納部に格納された通信品質情報とを比較して、比較結果が所定の条件を満足したときに通信品質の悪化を判定し、
前記親ノード選択部は、
前記ノード管理部から前記センサノードの親ノードを取得して、前記通信品質格納部から、通信品質情報の値が最も高い値を有する前記親ノードを選択する
ことを特徴とするセンサネットシステム。
【請求項４】
請求項１において、
前記センサノードは、前記センシングデータに加えて中間ノードとの通信品質を示す通信品質情報を送信し、
前記通信品質モニタ部は、
前記中間ノードを介して前記センサノードから受信したセンシングデータより前記通信品質情報を抽出し、前記抽出した通信品質情報の履歴を格納する通信品質格納部を有し、
前記通信品質判定部は、
前記受信したセンシングデータから抽出した通信品質情報と、前記通信品質格納部に格納された通信品質情報とを比較して、比較結果が所定の条件を満足したときに通信品質の悪化を判定し、
前記中間ノード選択部は、
前記通信品質格納部から、通信品質情報の値が最も高い値を有する中間ノードを選択する
ことを特徴とするセンサネットシステム。
【請求項５】
請求項１において、
前記中間ノード選択部は、
前記センサノードに対して、接続可能な中間ノードの通信品質を取得するアクティブスキャンを実行する指令を送信し、当該アクティブスキャンを実行したセンサノードから通信品質が最も高い中間ノードを取得する
ことを特徴とするセンサネットシステム。
【請求項６】
請求項５において、
前記センサノードは、
電力を供給する電池を備えて、前記センシングデータに加えて中間ノードとの通信品質を示す通信品質情報と電池残量を送信し、
前記通信品質モニタ部は、
前記受信したセンシングデータから前記通信品質情報を抽出し、前記抽出した通信品質情報の履歴を格納する通信品質格納部を有し、
前記通信品質判定部は、
前記受信したセンシングデータから抽出した通信品質情報と、前記通信品質格納部に格納された通信品質情報とを比較して、比較結果が所定の条件を満足したときに通信品質の悪化を判定し、
前記中間ノード選択部は、
前記センサノードの電池残量が予め設定した閾値を超えているか否かを判定する電池残量判定部と、
前記電池残量が予め設定したしきい値を超えているときには、前記アクティブスキャンによって通信品質が最も高い中間ノードを取得し、前記電池残量が前記しきい値を超えていないときには、前記通信品質格納部から、通信品質情報の値が最も高い値を有する中間ノードを選択する
ことを特徴とするセンサネットシステム。
【請求項７】
請求項６において、
前記中間ノード選択部は、
前記センサノードの起動時または再接続時に接続すべき中間ノードを親ノードとし、当該親ノードの識別子をセンサノードの識別子に対応付けて予め設定したノード管理部と、
前記電池残量が前記しきい値を超えていないときには、前記ノード管理部から前記センサノードの親ノードを取得して、前記通信品質格納部から通信品質情報の値が最も高い値を有する前記親ノードを選択する親ノード選択部と
を含むことを特徴とするセンサネットシステム。
【請求項８】
センサを備えて所定の情報を測定し、測定結果をセンシングデータとして送信するセンサノードに接続されて前記センシングデータを中継する複数の中間ノードに接続されて、前記中継されたセンシングデータを受信するサーバ計算機であって、
前記センサノードの運用中に、前記センサノードと中間ノードの通信品質を監視する通信品質モニタ部と、
前記通信品質が予め設定した条件を満たしたときに通信品質が悪化したことを判定する通信品質判定部と、
前記通信品質が悪化したと判定されたときには、当該通信品質のセンサノードが接続可能な中間ノードのうち、最も通信品質の高い中間ノードを選択する中間ノード選択部と、
前記選択した中間ノードに対して前記センサノードとの接続を許可する接続許可部と、
前記センサノードに対して、前記複数の中間ノードと再度接続する指令を送信する再接続指令部と
を備えたことを特徴とするサーバ計算機。
【請求項９】
請求項８において、
前記中間ノード選択部は、
前記センサノードの起動時または再接続時に接続すべき中間ノードを親ノードとし、当該親ノードの識別子をセンサノードの識別子に対応付けて予め設定したノード管理部と、
前記親ノードの中から最も通信品質の高い中間ノードを選択する親ノード選択部と
を含むことを特徴とするサーバ計算機。
【請求項１０】
請求項９において、
前記センサノードから、前記センシングデータに加えて中間ノードとの通信品質を示す通信品質情報を受信し、
前記通信品質モニタ部は、
前記受信したセンシングデータから前記通信品質情報を抽出し、前記抽出した通信品質情報の履歴を格納する通信品質格納部を有し、
前記通信品質判定部は、
前記受信したセンシングデータから抽出した通信品質情報と、前記通信品質格納部に格納された通信品質情報とを比較して、比較結果が所定の条件を満足したときに通信品質の悪化を判定し、
前記親ノード選択部は、
前記ノード管理部から前記センサノードの親ノードを取得して、前記通信品質格納部から、通信品質情報の値が最も高い値を有する前記親ノードを選択する
ことを特徴とするサーバ計算機。
【請求項１１】
請求項８において、
前記センサノードから、前記センシングデータに加えて中間ノードとの通信品質を示す通信品質情報を受信し、
前記通信品質モニタ部は、
前記受信したセンシングデータから前記通信品質情報を抽出し、前記抽出した通信品質情報の履歴を格納する通信品質格納部を有し、
前記通信品質判定部は、
前記受信したセンシングデータから抽出した通信品質情報と、前記通信品質格納部に格納された通信品質情報とを比較して、比較結果が所定の条件を満足したときに通信品質の悪化を判定し、
前記中間ノード選択部は、
前記通信品質格納部から、通信品質情報の値が最も高い値を有する中間ノードを選択する
ことを特徴とするサーバ計算機。
【請求項１２】
請求項８において、
前記中間ノード選択部は、
前記センサノードに対して、接続可能な中間ノードの通信品質を取得するアクティブスキャンを実行する指令を送信し、当該アクティブスキャンを実行したセンサノードから通信品質が最も高い中間ノードを取得する
ことを特徴とするサーバ計算機。
【請求項１３】
請求項１２において、
電力を供給する電池を備えた前記センサノードから前記センシングデータに加えて中間ノードとの通信品質を示す通信品質情報と電池残量とを受信し、
前記通信品質モニタ部は、
前記受信したセンシングデータから前記通信品質情報を抽出し、前記抽出した通信品質情報の履歴を格納する通信品質格納部を有し、
前記通信品質判定部は、
前記受信したセンシングデータから抽出した通信品質情報と、前記通信品質格納部に格納された通信品質情報とを比較して、比較結果が所定の条件を満足したときに通信品質の悪化を判定し、
前記中間ノード選択部は、
前記センサノードの電池残量が予め設定したしきい値を超えているか否かを判定する電池残量判定部と、
前記電池残量が前記しきい値を超えているときには、前記アクティブスキャンによって通信品質が最も高い中間ノードを取得し、前記電池残量が前記しきい値を超えていないときには、前記通信品質格納部から、通信品質情報の値が最も高い値を有する中間ノードを選択する
ことを特徴とするサーバ計算機。
【請求項１４】
請求項１３において、
前記中間ノード選択部は、
前記センサノードの起動時または再接続時に接続すべき中間ノードを親ノードとし、当該親ノードの識別子を予め設定したノード管理部を有し、前記電池残量が前記しきい値を超えていないときには、前記通信品質格納部から、通信品質情報の値が最も高い値を有する親ノードを選択する
ことを特徴とするサーバ計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信を用いてセンサノードと親ノードまたは基地局と通信を行うセンサネットワークシステムにおいて、複数の中間ノードとセンサノードの接続を制御する技術に関する。
【背景技術】
【０００２】
近年、センサと無線通信装置を組み合わせたセンサノードを多数配置して、センサノードが測定したデータを収集し、現実世界の様々な情報をリアルタイムに情報処理装置に取り込むネットワークシステム（以下、センサネットシステムという）が検討されている。センサネットシステムでは、多数のセンサネットシステムには幅広い応用が考えられており、例えば、無線回路、プロセッサ、センサ、電池を集積した小型電子回路によりセンサノードを構成し、このセンサノードが脈拍等の生体情報や温度や湿度などの環境情報等を観測し、観測結果を無線通信によりサーバ等に送信し、観測結果に基づいて健康状態や環境の状態監視を行う技術が種々提案されている。
【０００３】
このようなセンサネットシステムでは、センサノードが送信するデータを中間ノード（または中継ノード）で中継して情報処理装置へ転送している。なお、中間ノードは、複数のセンサノードからのデータを情報処理装置へ転送する無線通信装置で構成される。
【０００４】
センサノード及び中間ノードを電池で駆動することで、センサノード及び中間ノードの配置の自由度を高めることができる。そして、中間ノードがマルチホップによりセンサノードのデータを情報処理装置へ中継する場合、中間ノード及びセンサノードの電池の消耗を抑制するため、無線ノード１０の残存エネルギーの加重和を最大化するための目的関数に基づいて、将来の電力消費を考慮した効率的な通信経路を決定する技術が提案されている（例えば、特許文献１）。また、マルチホップにより中間ノード間を接続する際に、センサノードからのデータ伝送経路が最適となるように構成する技術が提案されている（例えば、特許文献１）。
【０００５】
また、マルチホップ環境でノードの電力消費に着目して通信経路を決定する技術も提案されている（例えば、特許文献２）。これは、他ノード宛の信号を受信し、他ノードの電池残量及び電波受信強度を取得し、それらが最適設定値以上であって、最も電池残量の大きいものを最適中継ノードとして決定するものである。
【０００６】
さらに、データを送信または中継するデータ送信ノードと、データを収集するデータ集約ノードとの接続を確実に行いながらも各ノードの電力消費を抑制する手法として、データ集約ノードが最大出力で所定の信号をブロードキャストし、この所定の信号を受信したデータ送信ノードはブロードキャストしたデータ収集ノードへシングルホップまたはマルチホップでデータを送信する技術が提案されている（例えば、特許文献３）。
【特許文献１】特開２００６−２１１３８９号公報
【特許文献２】特開２００６−２４６２０２号公報
【特許文献３】特開２００６−３４５４１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来例のように、センサノードが自律的に中間ノードを選択する構成では、センサノードから到達可能な中間ノードが複数存在する場合に、システムの運用を継続していくと、最も通信品質が良い中間ノードを経由しない状態になっている場合がある。例えば、センサノードが再接続を繰り返すうちに、電波がかろうじて届く中間ノードに接続している場合では、データの欠落や再送が発生する恐れがある。
【０００８】
センサネットシステムの管理者が、センサノード、中間ノード、情報処理装置のデータ伝達経路のトポロジを指定する場合では、管理者がデータ伝達経路の再構成を実行するタイミングでしかトポロジが変更されない。このため、通信品質が低下した状態でセンサノードと中間ノードが通信を行うと、データの再送などが発生して、電池の消耗が進んでしまうという問題がある。なお、通信品質は、例えば、無線通信の信号強度と再送回数などに基づいて決定される値である。
【０００９】
上述のように、センサネットシステムの運用中は、管理者が各センサノード及び中間ノードの無線通信の品質を定期的に評価して、必要に応じてデータ伝達経路の再構成を実行しなければならない。また、データ伝達経路のトポロジ構成の検討の際に、無線通信区間の通信品質を考慮するのに多大な労力を要する、という問題がある。すなわち、センサノード及び中間ノードが多数ある場合には、通信品質を評価すべき無線通信区間も多数存在するので、管理者は、各無線通信区間の無線通信品質を容易に評価することができない、という問題があった。
【００１０】
そこで本発明は、上記問題点に鑑みてなされたもので、センサノード及び中間ノードの無線通信の品質が低下した状態で放置されるのを防ぎ、人手によって無線通信の品質を評価することなく、自動的に無線通信の品質が最良となるようセンサノードと中間ノードの接続を制御することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のセンサネットシステムは、センサを備えて所定の情報を測定し、測定結果をセンシングデータとして送信するセンサノードと、前記センサノードに接続されて前記センシングデータを中継する複数の中間ノードと、前記中間ノードに接続されて、前記中継されたセンシングデータを受信するサーバ計算機とを備えたセンサネットシステムにであって、前記サーバ計算機は、前記センサノードの運用中に、前記センサノードと中間ノードの通信品質を監視する通信品質モニタ部と、前記通信品質と予め設定した条件を満たしたときに通信品質が悪化したことを検出する通信品質判定部と、前記通信品質が悪化したと判定されたときには、当該通信品質のセンサノードが接続可能な中間ノードのうち、最も通信品質の高い中間ノードを選択する中間ノード選択部と、前記選択した中間ノードに対して前記センサノードとの接続を許可する接続許可部と、前記センサノードに対して、前記複数の中間ノードと再度接続する指令を送信する再接続指令部とを備え、前記センサノードは、前記中間ノードと送受信を行う無線通信部と、前記サーバ計算機からの前記指令に基づいて前記中間ノードに再接続を要求するセンサノード制御部とを備えたことを特徴とする。
【００１２】
また、本発明のサーバ計算機は、センサを備えて所定の情報を測定し、測定結果をセンシングデータとして送信するセンサノードに接続されて前記センシングデータを中継する複数の中間ノードに接続されて、前記中継されたセンシングデータを受信するサーバ計算機であって、前記センサノードの運用中に、前記センサノードと中間ノードの通信品質を監視する通信品質モニタ部と、前記通信品質が予め設定した条件を満たしたときに通信品質が悪化したことを判定する通信品質判定部と、前記通信品質が悪化したと判定されたときには、当該通信品質のセンサノードが接続可能な中間ノードのうち、最も通信品質の高い中間ノードを選択する中間ノード選択部と、前記選択した中間ノードに対して前記センサノードとの接続を許可する接続許可部と、前記センサノードに対して、前記複数の中間ノードと再度接続する指令を送信する再接続指令部とを備えたことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、サーバ計算機がセンサノードと中間ノードの通信品質を監視して、センサノードと中間ノードの通信品質が悪化すると、センサノードの接続先を自動的に通信品質の良い中間ノードへ移すことが可能となり、特定の中間ノードにセンサノードが集中するのを防いで、バランスの良いセンサネットシステムを維持することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１５】
図１は、本発明を適用するセンサネットワークシステム（以下、センサネットシステム）の構成を示すブロック図である。
【００１６】
図１のセンサネットシステムは、複数の無線ネットワークＰＡＮ１、ＰＡＮ２を備えており、各無線ネットワークＰＡＮ１、ＰＡＮ２には、複数のセンサノードが配置され、センサネットサーバＳＶＲは、各無線ネットワークＰＡＮ１、ＰＡＮ２のセンサノードＳＳ１〜ＳＳ２ｎから送られたデータを収集し、格納する。なお、無線ネットワークＰＡＮ１、ＰＡＮ２は、例えば、ZigBeeなどのPersonal Area Networkで構成することができる。
【００１７】
無線ネットワークＰＡＮ１においては、複数のセンサノードＳＳ１〜ＳＳｎが測定したデータ（以下、センシングデータとする）は、無線ネットワークＰＡＮ１を介して中継ノードＲＴ１〜ＲＴ４に送信される。中継ノードＲＴ１〜ＲＴ４は、受信したセンシングデータを直接または他の中継ノードを介してゲートウェイ装置ＧＷ１へ送信する。ゲートウェイ装置ＧＷ１は、無線ネットワークＰＡＮ１と有線ネットワークＷＮ１を変換する装置であり、無線ネットワークＰＡＮ１から受信したセンシングデータをセンサネットサーバＳＶＲへ送信する。
【００１８】
無線ネットワークＰＡＮ２においては、複数のセンサノードＳＳ２１〜ＳＳ２ｎが測定したセンシングデータは、無線ネットワークＰＡＮ２を介してゲートウェイＧＷ２へ送信する。ゲートウェイＧＷ２は、無線ネットワークＰＡＮ２と有線ネットワークＷＮ１を変換する装置であり、無線ネットワークＰＡＮ２から受信したセンシングデータをセンサネットサーバＳＶＲへ送信する。
【００１９】
なお、ゲートウェイ装置ＧＷ１、ＧＷ２及び中継ノードＲＴ１〜ＲＴ４は、センサネットサーバＳＶＲからセンサノードＳＳ１〜ＳＳｎへ向けた通信も行うことができる。
【００２０】
図２は、センサノードＳＳ１〜ＳＳ２ｎの構成を示すブロック図である。センサノードＳＳ１〜ＳＳ２ｎは、環境の情報を測定するセンサ１００と、中継ノードＲＴ１〜ＲＴ４またはゲートウェイ装置ＧＷ２と通信を行う無線通信部１１０と、センサ１００と無線通信部１１０を制御する端末制御部１２０と、各部へ電力を供給する電池１３０を主体に構成される。なお、センサ１００は、温度センサや湿度センサ、加速度センサ、ＬＥＤ及びフォトダイオードなどで構成され、温度や湿度などの環境の状態やセンサノードＳＳ１〜ＳＳｎを装着した生体の脈拍数や体温、運動状態をセンシングデータとして測定する。
【００２１】
端末制御部１２０は、演算処理を行うＣＰＵ１２０１と、データやプログラムを一時的に格納する揮発性のＲＡＭ１２０２と、プログラムやデータを保持する不揮発性のＥ2ＰＲＯＭ１２０３を備え、ＲＡＭ１２０２に読み込んだプログラムを実行することで、所定の処理を実行する。
【００２２】
この所定の処理は、例えば、センサ１００を所定の周期（例えば、５分）で駆動してセンシングデータを取得し、次に、無線通信部１１０を駆動して中継ノードＲＴ１〜ＲＴ４の何れかと接続してから、取得したセンシングデータを接続した中継ノードへ送信するものである。センサノードＳＳ１〜ＳＳ２ｎは、センシングデータの送信が完了すると、センサ１００と無線通信部１１０及び端末制御部１２０をスリープ状態へ移行させて電池１３０の消耗を抑制する。そして、所定の周期になると、端末制御部１２０内のタイマ（図示省略）が割り込み信号を発生し、この割り込み信号に基づいて、ＣＰＵ１２０１をスリープ状態から起動状態へ移行させてからセンサ１００によるセンシングデータの測定と、センシングデータの送信及び中継ノードＲＴ１〜ＲＴ４から受信したコマンドを実行する。
【００２３】
また、端末制御部１２０は、中継ノードＲＴ１〜ＲＴ４やゲートウェイＧＷ１、ＧＷ２の中間ノードとの接続時に、これら中間ノードとの通信品質を示す情報（通信品質情報）を測定する。なお、中間ノードは、中継ノードＲＴ１〜ＲＴ４とゲートウェイＧＷ１、ＧＷ２の総称である。
【００２４】
ここで、接続中の中間ノードの通信品質を示す値としては、受信信号強度ＲＳＳＩ（Receive Signal Strength Indication）と、リトライ回数を用いる例を示す。端末制御部１２０は、中間ノードと通信を行ったときに無線通信部１１０から受信信号強度ＲＳＳＩとリトライ回数を取得する。そして、取得した受信信号強度ＲＳＳＩとリトライ回数を、センシングデータに付加して送信する。
【００２５】
また、端末制御部１２０は、センサネットサーバＳＶＲからアクティブスキャンコマンドを受信したときには、無線通信部１１０に中間ノードのスキャンを実行させ、応答のあった中間ノードの識別子（ＭＡＣアドレス）と受信信号強度ＲＳＳＩを取得する。そして、応答のあった中間ノードの中から受信信号強度ＲＳＳＩの最も高い中間ノードを再接続先の候補としてセンサネットサーバＳＶＲへ返信することができる。
【００２６】
図３は、中継ノードＲＴ１〜ＲＴ４の構成を示すブロック図である。中継ノードＲＴ１〜ＲＴ４は、センサノードＳＳ１〜ＳＳｎまたはゲートウェイ装置ＧＷ１と通信を行う無線通信部２１０と、無線通信部２１０を制御する端末制御部２２０と、各部へ電力を供給する電池２３０を主体に構成される。
【００２７】
端末制御部２２０は、演算処理を行うＣＰＵ２２０１と、データやプログラムを一時的に格納する揮発性のＲＡＭ２２０２と、プログラムやデータを保持する不揮発性のＥ2ＰＲＯＭ２２０３を備え、ＲＡＭ２２０２に読み込んだプログラムを実行することで、所定の処理を実行する。この所定の処理は、例えば、センサノードＳＳ１〜ＳＳｎから受信したセンシングデータをゲートウェイ装置ＧＷ１または他の中継ノードへ送信し、ゲートウェイ装置ＧＷ１から受信したコマンドなどを、宛先のセンサノードＳＳ１〜ＳＳｎまたは他の中継ノードへ送信する。なお、中継ノードＲＴ１〜ＲＴ４同士のマルチホップの経路の設定は、予めセンサネットサーバＳＶＲから指定されるものとする。
【００２８】
図４は、ゲートウェイ装置ＧＷ１、ＧＷ２の構成を示すブロック図である。ゲートウェイ装置ＧＷ１、ＧＷ２は、有線ネットワークＷＮ１を介してセンサネットサーバＳＶＲと通信を行う有線通信部３００と、無線ネットワークＰＡＮ１を介して中継ノードＲＴ１〜ＲＴ４とまたはセンサノードＳＳ１〜ＳＳｎと通信を行う無線通信部３１０と、有線通信部３００及び無線通信部３１０を制御する端末制御部３２０とを主体に構成される。
【００２９】
端末制御部３２０は、演算処理を行うＣＰＵ３２０１と、データやプログラムを一時的に格納する揮発性のＲＡＭ３２０２と、プログラムやデータを保持する不揮発性のＥ2ＰＲＯＭ３２０３を備え、ＲＡＭ３２０２に読み込んだプログラムを実行することで、所定の処理を実行する。この所定の処理は、例えば、中継ノードＲＴ１〜ＲＴ４から受信したセンシングデータをセンサネットサーバＳＶＲへ送信し、センサネットサーバＳＶＲから受信したコマンドなどを、パケットに含まれる宛先のセンサノードＳＳ１〜ＳＳｎまたは中継ノードへ送信する。
【００３０】
図５は、センサネットサーバＳＶＲの構成を示すブロック図である。センサネットサーバＳＶＲは、演算処理を行うＣＰＵ４００と、データやプログラムを格納するメモリ４１０と、有線ネットワークＷＮ１に接続されてゲートウェイ装置ＧＷ１、ＧＷ２と通信を行う有線通信部４２０と、データを格納するストレージ装置４３０を主体に構成される。
【００３１】
メモリ４１０には、無線ネットワークＰＡＮ１、ＰＡＮ２のセンサノードＳＳ１〜ＳＳ２ｎを管理し、センサノードＳＳ１〜ＳＳ２ｎからのセンシングデータを収集するミドルウェア５００が読み込まれ、ＣＰＵ４００によって実行される。
【００３２】
ＣＰＵ４００によって実行されるミドルウェア５００は、無線ネットワークＰＡＮ１、ＰＡＮ２の管理及びセンサノードＳＳ１〜ＳＳ２ｎからのセンシングデータを収集してストレージ装置４３０に設定されたデータベースであるセンシングデータテーブル５０１に格納する。
【００３３】
また、ミドルウェア５００は、センサノードＳＳ１〜ＳＳ２ｎを起動したときに、接続する中継ノードＲＴ１〜ＲＴ４またはゲートウェイ装置ＧＷ１、ＧＷ２を指定するためのノード管理テーブル５２０と、センサノードＳＳ１〜ＳＳ２ｎの通信品質（または通信環境）に応じて接続する中継ノードＲＴ１〜ＲＴ４またはゲートウェイ装置ＧＷ１、ＧＷ２を変更するための通信品質テーブル５１０をストレージ装置４３０に設定する。
【００３４】
まず、センサノードＳＳ１〜ＳＳ２ｎの起動時にミドルウェア５００が使用するノード管理テーブル５２０は、図６で示すように、センサノードＳＳ１〜ＳＳ２ｎの識別子を格納するＩＤ５２１と、ＩＤ５２１で特定されるセンサノードが起動したときに接続すべき中間ノードの識別子を格納する親ノード５２２と、を備えている。親ノード５２２は、センサネットサーバＳＶＲ側で想定するセンサノードＳＳ１〜ＳＳ２ｎの接続先の中間ノードであり、センサノードＳＳ１〜ＳＳ２ｎの起動時に接続すべき中間ノードを示す。なお、親ノード５２２には、複数の中間ノードを親ノードとして登録しておき、複数の親ノードのうちの何れかひとつを接続先とすることができる。一つの親ノードが故障しても、センサノードが親ノードと接続できなくなることを防止する。
【００３５】
図６において、センサノードＳＳ２は、起動したときに親ノードとして設定された中継ノードＲＴ３と接続するように設定される。なお、ノード管理テーブル５２０は、図示しないコンソールなどから管理者によって予め設定されるものである。
【００３６】
センサネットシステムでは、多数のセンサノードＳＳ１〜ＳＳ２ｎを運用する場合、特定の中間ノードに多数のセンサノードが接続すると、この中間ノードが過負荷に陥る恐れがある。このため、ノード管理テーブル５２０によって、センサノードＳＳ１〜ＳＳ２ｎが起動したときに接続すべき中間ノードを親ノード５２２として設定することで、各中間ノードに接続されるセンサノードノードの数が大きく偏るのを防ぐことができる。なお、親ノードは、センサノードＳＳ１〜ＳＳ２ｎが起動したときに接続が優先される中間ノードであり、親ノードと接続できないとき、センサノードＳＳ１〜ＳＳ２ｎは、ノード管理テーブル５２０に設定された親ノード以外の中間ノードと接続することができる。
【００３７】
ここで、センサノードＳＳ１が起動したときの処理について、以下に説明する。
【００３８】
センサノードＳＳ１の電源をＯＮにして起動すると、センサノードＳＳ１は接続要求（joinコマンド）を送信する。センサノードＳＳ１から接続要求を受信した中間ノードは、センサネットサーバＳＶＲのミドルウェア５００に、センサノードＳＳ１との接続許可を要求する。この接続許可要求には、センサノードＳＳ１のＩＤ（この例では「ＳＳ１」）、自中間ノードのＩＤが含まれる。
【００３９】
中間ノードから接続許可要求を受信したミドルウェア５００は、接続許可要求に含まれるセンサノードのＩＤ５２１をキーにして、ノード管理テーブル５２０を検索してセンサノードＳＳ１が接続すべき親ノード５２２を検索し、親ノードが中継ノードＲＴ１であることを取得する。ミドルウェア５００は、中継ノードＲＴ１からセンサノードＳＳ１の接続許可要求を受信していれば、中継ノードＲＴ１に接続許可を通知し、他の中間ノードに対して接続不要を通知する。以上の処理により、センサノードＳＳ１は、親ノードとして設定された中継ノードＲＴ１に接続し、以降、センサノードＳＳ１が送信したセンシングデータは、中継ノードＲＴ１、ゲートウェイ装置ＧＷ１を介してセンサネットサーバＳＶＲに転送される。
【００４０】
一方、センサノードＳＳ１からの接続要求に対して、親ノード５２２に設定された中間ノードから接続許可要求を受信できなかった場合、ミドルウェア５００は、センサノードＳＳ１に対する接続許可要求を受信した中間ノードのうち、通信品質テーブル５１０を検索して通信品質が最も良い（受信信号強度ＲＳＳＩが最も高い）中間ノードを選択し、この中間ノードに対してセンサノードＳＳ１との接続許可を通知する。これにより、センサノードＳＳ１は、親ノード５２２に設定された中継ノードＲＴ１と接続できなかった場合には、接続可能な中間ノードのうち最も通信品質の良い中間ノードと接続することができる。
【００４１】
ここで、通信品質テーブル５１０は、図７に示すように、レコード番号５１１と、センサノードの識別子を格納するＩＤ５１２と、ＩＤ５１２のセンサノードが過去に接続した中間ノードの識別子を格納する中間ノードＩＤ５１３と、中間ノードＩＤ５１３で特定される中間ノードとＩＤ５１２のセンサノードが接続したときの最良の通信品質を格納する通信品質最良値５１４と、中間ノードＩＤ５１３で特定される中間ノードのＭＡＣアドレスを格納するＭＡＣアドレス５１５と、中間ノードＩＤ５１３で特定されるセンサノードが接続している中間ノードを示す接続中フラグ５１６と、中間ノードＩＤ５１３で特定されるセンサノードと中間ノードＩＤ５１３で特定される中間ノードが接続したときのリトライ回数の最大値を格納するリトライ回数最大値５１７とを備える。ここで、通信品質を示す値として、通信品質最良値５１４には、受信信号強度ＲＳＳＩの最高値を格納し、この通信品質最良値５１４とリトライ回数最大値５１７の２つを用いて、ミドルウェア５００では後述するようにセンサノードＳＳ１と中間ノードの通信品質を評価する。
【００４２】
例えば、図７のＩＤ５１２が「ＳＳ１」のレコードでは、２つの中継ノードＲＴ１とＲＴ２と接続したことがあることを示しており、センサノードＳＳ１は、現在、中継ノードＲＴ１であることを示す。
【００４３】
通信品質テーブル５１０の通信品質最良値５１４とリトライ回数最大値５１７は、ミドルウェア５００がセンサノードからセンシングデータまたはハートビートを受信する度に更新されるものである。
【００４４】
センサノードＳＳ１〜ＳＳ２ｎから送信されるパケットは、図８で示すように、ペイロード中にセンサノードのＩＤ以降に複数のセンシングデータを格納し、さらに、現在接続中の中間ノードの通信品質情報であるＲＳＳＩとリトライ回数を格納する。ＲＳＳＩとリトライ回数は、例えば、前回の接続時の値を格納するものとする。また、センサノードＳＳ１〜ＳＳ２ｎが送信するパケットには、電池１３０の電池残量を格納する。この電池残量は、端末制御部１２０が測定した電池１３０の電圧等で構成することができる。
【００４５】
ミドルウェア５００は、センサノードＳＳ１〜ＳＳ２ｎからのパケットを受信すると、センシングデータをセンサノードのＩＤに対応付けてセンシングデータテーブル５０１へ格納し、ペイロード中のＲＳＳＩとリトライ回数及びセンサノードのＩＤを抽出し、通信品質テーブル５１０で比較を行ってから更新する。
【００４６】
ミドルウェア５００は、受信したパケットに含まれる送信元のセンサノードのＩＤで通信品質テーブル５１０を検索し、ＩＤ５１２が一致し、かつ接続中フラグ５１６が「ｏｎ」のレコードを抽出し、このレコードの通信品質最良値５１４と受信したパケットのＲＳＳＩを比較する。受信したパケットのＲＳＳＩ値が、通信品質最良値５１４の値よりも大きければ、通信品質を示す指標が向上したので、通信品質最良値５１４の値を受信したパケットのＲＳＳＩで更新する。
【００４７】
同様に、ミドルウェア５００は、受信したパケットに含まれる送信元のセンサノードのＩＤで通信品質テーブル５１０を検索し、ＩＤ５１２が一致し、かつ接続中フラグ５１６が「ｏｎ」のレコードを抽出し、このレコードのリトライ回数最大値５１７と受信したパケットのリトライ回数を比較する。受信したパケットのリトライ回数が、リトライ回数最大値５１７よりも大きければ、通信品質を示す指標が低下したので、リトライ回数最大値５１７の値を受信したパケットのリトライ回数で更新する。
【００４８】
このように、ミドルウェア５００は、センサノードからのパケットを受信する度に、上述のような比較を行って通信品質テーブル５１０を更新することで、センサノードの通信品質を監視する。
【００４９】
なお、上記通信品質テーブル５１０では、通信品質を示す指標としてＲＳＳＩを使用する例を示したが、これに限定されるものではなく、無線ネットワークがＺｉｇＢｅｅであればリンク品質ＬＱＩ（Link Quality Indicator）を用いても良いし、信号対雑音比などの指標を用いることができる。
【００５０】
センサノードＳＳ１〜ＳＳ２ｎは、上述したように所定の周期でスリープ状態から起動して、センシングデータを取得してから中間ノードとの再接続を行う。このとき、センサノードＳＳ１〜ＳＳ２ｎは、無線ネットワークＰＡＮ１、ＰＡＮ２へ再接続要求（rejoin）コマンドを送信し、再接続を要求する。
【００５１】
例えば、図１において、センサノードＳＳ２は親ノードとして中継ノードＲＴ３に接続しており、所定の周期毎に再接続要求を行って中継ノードＲＴ３からセンサネットサーバＳＶＲへセンシングデータを送信する。ここで、センサノードＳＳ２と中継ノードＲＴ３の間の無線通信品質は、常時一定ではなく変動する。上述のようにセンサノードＳＳ２は、親ノードと通信ができない場合には、他の中間ノードと接続してセンシングデータをセンサネットサーバＳＶＲへ送信する。しかしながら、センサノードＳＳ２は、一旦、親ノード以外の中間ノード（例えば、中継ノードＲＴ２）に接続されると、中継ノードＲＴ２における通信品質が悪化するまでは、本来接続すべき親ノードの通信品質が回復していても戻すことができない。この結果、中継ノードＲＴ２へ多数のセンサノードＳＳ１〜ＳＳ２ｎが接続されると、上述のように中継ノードＲＴ２の負荷が過大となる場合がある。そこで、ミドルウェア５００は次のような処理により、親ノードへの再接続を可能にする。
【００５２】
図９は、ミドルウェア５００で行われる処理の一例を示すフローチャートである。
【００５３】
ステップＳ１では、上述したように、センサノードＳＳ１〜ＳＳ２ｎから受信したパケットに含まれる通信品質情報（ＲＳＳＩ及びリトライ回数）と通信品質テーブル５１０の通信品質情報（通信品質最良値５１４、リトライ回数最大値５１７）を比較して、センサノードＳＳ１〜ＳＳ２ｎと中間ノードの通信品質を監視する。
【００５４】
ステップＳ２では、上記監視の結果、通信品質が劣化したセンサノードを検出する。この通信品質が劣化したセンサノードの検出は、上記受信したパケットに含まれる通信品質情報と通信品質テーブル５１０に格納された通信品質情報の比較に基づいて行う。例えば、以下の条件の何れかひとつを満足したときに、パケットを受信したセンサノードの通信品質が悪化したと判定する。
・リトライ回数が予め設定した規定時間内における閾値を超えた場合
・受信したパケットに含まれるＲＳＳＩが所定のしきい値を下回ったとき
・受信したパケットのＲＳＳＩと通信品質最良値５１４の差分が予め設定した値以上となったとき
この他、上述したリンク品質などの条件を組み合わせても良い。
【００５５】
通信品質の悪化が検出された場合にはステップＳ３へ進み、通信品質が悪化していない場合には、ステップＳ１へ戻って通信品質の監視を継続する。
【００５６】
通信品質が悪化したステップＳ３では、ミドルウェア５００は通信品質テーブル５１０から通信品質情報を比較したセンサノードのＩＤを含むレコードのうち、接続中フラグ５１６が「ｏｎ」のレコードを選択し、このレコードから現在このセンサノードが接続している中間ノードのＭＡＣアドレスを取得する。
【００５７】
次に、ステップＳ４では、通信品質テーブル５１０から、このセンサノードが過去に接続した親ノードのうち、最も通信品質の良い親ノードを選択する。この選択は、ノード管理テーブル５２０で現在着目しているセンサノードの識別子をＩＤ５１２に含むレコードから親ノード５２２に格納された中間ノードの識別子を親ノードの識別子として取得する。そして、通信品質テーブル５１０で、着目しているセンサノードの識別子をＩＤ５１２に含むレコードのうち、上記親ノードの識別子を中間ノードＩＤ５１３に含むレコードを抽出し、これらのレコードのうち、リトライ回数最大値５１７が最も小さく、通信品質最良値５１４が最も大きいレコードから中間ノードのＭＡＣアドレス５１５を選択する。なお、この条件に合致するレコードが無い場合、所定の親ノードを選択しても良いし、通信品質最良値５１４が最も大きいレコード、またはリトライ回数最大値５１７が最も小さいレコードから中間ノードのＭＡＣアドレスを取得すればよい。
【００５８】
次に、ステップＳ５では、上記ステップＳ３で取得した通信品質が悪化したセンサノードが現在接続している中間ノードのＭＡＣアドレスと、上記ステップＳ４で取得した通信品質が最も良かった中間ノードのＭＡＣアドレスとを比較して、これら２つのＭＡＣアドレスが同一であるか否かを判定する。２つのＭＡＣアドレスが同一であれば、センサノードは、通信品質が最も良い親ノードと既に接続しているので、接続先を変更することなく現在の接続を保持して終了する。
【００５９】
一方、センサノードが現在接続中の中間ノードのＭＡＣアドレスと、親ノードのＭＡＣアドレスが異なる場合には、ステップＳ６に進み、センサノードが現在接続中の中間ノード及び上記ステップＳ４で取得した親ノード以外の中間ノードを、現在着目しているセンサノードと接続不許可に設定する。この処理は、現在着目しているセンサノードと接続中の中間ノードと、当該センサノードの親ノード以外の中間ノードに対して当該センサノードとの接続を一時的に禁止するため、当該センサノードとの接続を不許可にするコマンドを送信する。ミドルウェア５００は、接続不許可のコマンドを送信した各中間ノードから応答（返戻）を受信したら、ステップＳ７へ進む。
【００６０】
ステップＳ７では、現在着目しているセンサノードに対して、無線ネットワークへ再接続（rejoinコマンド）を行うように指令する。センサノードは上述したように再接続要求を無線ネットワークＰＡＮ１へ送信し、各中間ノードが受信してセンサネットサーバＳＶＲのミドルウェア５００へ許可を要求する。
【００６１】
ここで、親ノード及び現在接続中の中間ノード以外の中間ノードは、ステップＳ６のコマンドによって、当該センサノードとの接続が一時的に禁止されている。このため、センサノードが再接続要求を送信すると、現在接続中の中間ノードと、図６に示す親ノードに設定された親ノードがミドルウェア５００に対してセンサノードとの接続許可を要求することになる。そして、ミドルウェア５００は、上述のように、センサノードの接続先として親ノードを優先させるので、再接続によってセンサノードは所定の親ノードに接続することになる。なお、親ノードに複数の中間ノードが設定されている場合には、複数の親ノードのうち、最も通信品質の良い親ノードを接続先として選択すればよい。
【００６２】
こうして、通信品質が悪化したセンサノードの接続先を、通信品質の良い親ノードへ戻した後には、ステップＳ８で、ミドルウェア５００が当該センサノードとの接続を不許可にしていた中間ノードに対して、当該センサノードとの接続を許可するコマンドを送信して処理を終了する。
【００６３】
上記処理を図１に示したセンサノードＳＳ２について適用した例を以下に示す。センサノードＳＳ２は、図６に示すように、中継ノードＲＴ３を親ノードとしている。センサノードＳＳ２は、稼働中の通信品質の変動などにより、図１の状態では本来の親ノードではない中継ノードＲＴ２に接続している。
【００６４】
センサノードＳＳ２の通信品質が悪化すると、センサネットサーバＳＶＲは上記ステップＳ３以降の処理を実行し、センサノードＳＳ２が現在接続している中間ノード（ＲＴ２）とセンサノードＳＳ２の親ノード（ＲＴ３）以外に対してセンサノードＳＳ２との接続を一時的に禁止する。
【００６５】
そして、センサネットサーバＳＶＲは、センサノードＳＳ２に対して無線ネットワークＰＡＮ１へ再接続するように指令する。センサノードＳＳ２が再接続を要求すると、親ノードとしての中継ノードＲＴ３と、現在接続中の中継ノードＲＴ２がセンサネットサーバＳＶＲに対して接続許可を要求する。センサネットサーバＳＶＲは、センサノードＳＳ２の親ノードである中継ノードＲＴ３に対して接続許可を通知し、センサノードＳＳ２の接続先を親ノードの中継ノードＲＴ３へ戻すことが可能となる。なお、親ノードが複数設定されている場合には、親ノードのうち最も通信品質の良い中間ノードに接続許可を付与すればよい。
【００６６】
以上のように、センサネットサーバＳＶＲは、センサノードと中間ノードの通信品質を監視して、センサノードと中間ノードの通信品質が悪化すると、センサノードの接続先を自動的に親ノードへ戻すことが可能となり、特定の中間ノードにセンサノードが集中するのを防いで、バランスの良いセンサネットシステムを維持することが可能となる。さらに、センサノードは、中間ノードとの無線通信品質をセンシングデータとともに送信するので、センサネットサーバＳＶＲのミドルウェア５００では、多数のセンサノードの通信品質を一元的に監視することができ、無線通信品質の悪化したときには、人手を要することなく極めて迅速にデータ伝送経路の再構築を実現できるのである。したがって、本発明を適用することで、センサネットシステムの保守、管理に要するコストを低減することが可能となるのである。
【００６７】
なお、上記では通信品質が最も良い親ノードと現在接続中の中間ノードに対してセンサノードの再接続を許可してから、センサノードに再接続を実行させたが、センサノードの接続先を現在接続中の中間ノードから新たな中間ノードへ即座に切り替える場合には、通信品質が最も良い親ノードに対して当該センサノードの再接続を許可し、他の中間ノードに当該センサノードとの接続を禁止してから、センサノードに再接続を実行させてもよい。
【００６８】
また、通信品質テーブル５１０は、最も高い通信品質を通信品質最良値５１４に格納する例を示したが、通信品質の履歴を格納し、これら履歴の中から通信品質が最も高い値を検索するようにしても良い。
【００６９】
＜第２実施形態＞
図１０は、第２の実施形態を示し、前記第１実施形態の図９に示した処理の一部を変更したもので、その他の構成は前記第１実施形態と同様である。
【００７０】
図１０は、センサネットサーバＳＶＲのミドルウェア５００で行われる処理の一例を示すフローチャートである。
【００７１】
ステップＳ１１〜Ｓ１３では、前記第１実施形態の図９と同様に、センサノードＳＳ１〜ＳＳ２ｎから受信したパケットに含まれる通信品質情報（ＲＳＳＩ及びリトライ回数）と通信品質テーブル５１０の通信品質情報（通信品質最良値５１４、リトライ回数最大値５１７）を比較して、センサノードＳＳ１〜ＳＳ２ｎと中間ノードの通信品質を監視して、通信品質が所定の条件となって悪化が判定された場合には、当該センサノードと接続先の中間ノードのＭＡＣアドレスを通信品質テーブル５１０から取得する。
【００７２】
次に、ステップＳ１４では、ミドルウェア５００が通信品質が悪化したセンサノードに対して、通信可能な中間ノードとの通信品質を検出するアクティブスキャンを実施するよう指令する。この指令を受信したセンサノードは、アクティブスキャンコマンドを実行し、最も通信品質のよい中間ノードのＭＡＣアドレスを取得する。すなわち、センサノードは、アクティブスキャンコマンドを実行して、中間ノードのスキャンを行い、スキャンの際に通信品質としてＲＳＳＩなどを測定し、最も通信品質の良い中間ノードのＭＡＣアドレスを取得して、センサネットサーバＳＶＲへ通知する。なお、この処理は、センサノードがアクティブスキャンコマンドを実行して、測定した通信品質をセンサネットサーバＳＶＲへ送信し、センサネットサーバＳＶＲが通信品質が最良の中間ノードを選択しても良い。
【００７３】
次に、ステップＳ１５では、上記ステップＳ１３で取得した通信品質が悪化したセンサノードと現在接続している中間ノードのＭＡＣアドレスと、上記ステップＳ１４で取得した通信品質が最も良かった中間ノードのＭＡＣアドレスとを比較して、これら２つのＭＡＣアドレスが同一であるか否かを判定する。
【００７４】
２つのＭＡＣアドレスが同一であれば、通信品質が悪化したセンサノードは、既に最も通信品質の良い中間ノードと接続しているので、接続先を変更することなく現在の接続を保持して終了する。
【００７５】
一方、センサノードが現在接続している中間ノードのＭＡＣアドレスと、通信品質が最も良い中間ノードのＭＡＣアドレスが異なる場合には、ステップＳ１６に進み、センサノードが現在接続中の中間ノード及び上記ステップＳ１４で取得した通信品質最良の中間ノード以外の中間ノードを現在着目しているセンサノードと接続不許可に設定する。このステップＳ１６の処理は、現在着目しているセンサノードと接続中の中間ノード及び通信品質最良の中間ノード以外の中間ノードに対して当該センサノードとの接続を一時的に禁止するため、当該センサノードとの接続を不許可にするコマンドを送信する。ミドルウェア５００は、接続不許可のコマンドを送信した各中間ノードから応答（返戻）を受信したら、ステップＳ１７へ進む。
【００７６】
ステップＳ１７では、現在着目しているセンサノードに対して、無線ネットワークへ再接続（rejoinコマンド）を行うように指令する。センサノードは上述したように再接続要求を無線ネットワークＰＡＮ１へ送信し、各中間ノードが受信してセンサネットサーバＳＶＲのミドルウェア５００へ許可を要求する。
【００７７】
ここで、通信品質が最良の中間ノードと現在接続中の中間ノード以外の中間ノードは、ステップＳ１６のコマンドによって、当該センサノードとの接続が一時的に禁止されている。このため、センサノードが再接続要求を送信すると、現在接続中の中間ノードと、通信品質最良の中間ノードがミドルウェア５００に対してセンサノードとの接続許可を要求することになる。そして、ミドルウェア５００は、センサノードの接続先として通信品質の良い中間ノードを優先させるので、再接続によってセンサノードはより通信品質の良い中間ノードに接続することになる。
【００７８】
こうして、通信品質が悪化したセンサノードの接続先を、より通信品質の良い中間ノードと接続へ変更した後には、ステップＳ１８で、ミドルウェア５００が当該センサノードとの接続を不許可にしていた中間ノードに対して、当該センサノードとの接続を許可するコマンドを送信して処理を終了する。
【００７９】
このように、第２の実施形態によれば、センサノードの通信品質が悪化すると、ミドルウェア５００はセンサノードに対してアクティブスキャンコマンドを実行して通信品質が最も良い中間ノードを選択し、この中間ノードと接続させることができ、センサノード及び中間ノードの無線通信の品質が低下した状態で放置されるのを防ぎ、人手によって無線通信の品質を評価することなく、自動的に無線通信の品質が最良となるようセンサノードと親ノードの接続を制御することが可能となるのである。
【００８０】
＜第３実施形態＞
図１１は、第３の実施形態を示し、前記第１実施形態の図９に示した処理の一部を変更したもので、その他の構成は前記第１実施形態と同様である。
【００８１】
図１１０は、センサネットサーバＳＶＲのミドルウェア５００で行われる処理の一例を示すフローチャートである。
【００８２】
ステップＳ２１〜Ｓ２３では、前記第１実施形態の図９のステップＳ１〜Ｓ３と同様に、センサノードＳＳ１〜ＳＳ２ｎから受信したパケットに含まれる通信品質情報（ＲＳＳＩ及びリトライ回数）と通信品質テーブル５１０の通信品質情報（通信品質最良値５１４、リトライ回数最大値５１７）を比較して、センサノードＳＳ１〜ＳＳ２ｎと中間ノードの通信品質を監視して、通信品質が所定の条件となって悪化が判定された場合には、当該センサノードと接続先の中間ノードのＭＡＣアドレスを通信品質テーブル５１０から取得する。
【００８３】
次に、ステップＳ２４では、ミドルウェア５００が通信品質の悪化したセンサノードの電池残量を取得する。ここで、電池残量は図８に示したように、センサノードＳＳ１〜ＳＳ２ｎが送信するパケットのペイロードに含まれる電池残量の値を取得する。
【００８４】
そして、ステップＳ２５では、取得した電池残量が予め設定したしきい値を超えているか否かを判定する。すなわち、通信品質が悪化したセンサノードの電池残量に余裕があるか否かを判定する。なお、この余裕は、後述するように、センサノードが通常のセンシングデータの送信に加えて、アクティブスキャンコマンドを実行するための電力があるか否かを示すものである。
【００８５】
センサノードの電池残量に所定の余裕がある場合には、ステップＳ２７へ進んで、前記第２実施形態と同様にアクティブスキャンコマンドを実行して現在の通信品質が最も良い中間ノードを選択する。一方、電池残量に余裕が無い場合にはステップＳ２６へ進んで、前記第１実施形態と同様に通信品質テーブル５１０から通信品質が良かった中間ノードを選択する。
【００８６】
ステップＳ２６では、前記第１実施形態の図９のステップＳ４と同様に、当該センサノードについて通信品質テーブル５１０から過去の通信品質最も良かった親ノードのＭＡＣアドレスを取得する。
【００８７】
ステップＳ２７では、前記第２実施形態の図１０のステップＳ１４と同様に、ミドルウェア５００がセンサノードへアクティブスキャンコマンドを実行させ、現在の通信品質が最も良い中間ノードのＭＡＣアドレスを取得する。
【００８８】
次に、ステップＳ２８では、上記ステップＳ２６またはＳ２７で取得したＭＡＣアドレスと、センサノードが現在接続中のＭＡＣアドレスが同一であるか否かを判定する。センサノードが現在接続中のＭＡＣアドレスとステップＳ２６、Ｓ２７で取得したＭＡＣアドレスが同一であれば、当該センサノードの接続先は、他の中間ノードよりも通信品質が良いのでそのまま処理を終了する。
【００８９】
一方、上記ステップＳ２６またはＳ２７で取得したＭＡＣアドレスと、センサノードが現在接続中のＭＡＣアドレスが一致しない場合には、ステップＳ２９へ進む。ステップＳ２９では、現在接続中の中間ノードと、ステップＳ２６で選択した親ノードまたはステップＳ２７で選択した中間ノードを除いた中間ノードに対して、現在着目しているセンサノードと接続不許可に設定する。このステップＳ２９の処理は、現在着目しているセンサノードと接続中の中間ノード及び通信品質最良の中間ノード（または親ノード）以外の中間ノードに対して当該センサノードとの接続を一時的に禁止するため、当該センサノードとの接続を不許可にするコマンドを送信する。ミドルウェア５００は、接続不許可のコマンドを送信した各中間ノードから応答（返戻）を受信したら、ステップＳ３０へ進む。
【００９０】
ステップＳ３０では、現在着目しているセンサノードに対して、無線ネットワークへ再接続（rejoinコマンド）を行うように指令する。センサノードは上述したように再接続要求を無線ネットワークＰＡＮ１へ送信し、各中間ノードが受信してセンサネットサーバＳＶＲのミドルウェア５００へ許可を要求する。
【００９１】
ここで、通信品質が最良の中間ノード（または親ノード）と現在接続中の中間ノード以外の中間ノードは、ステップＳ２９のミドルウェア５００からの指令によって、当該センサノードとの接続が一時的に禁止されている。このため、センサノードが再接続要求を送信すると、現在接続中の中間ノードと、通信品質最良の中間ノード（または親ノード）がミドルウェア５００に対してセンサノードとの接続許可を要求することになる。そして、ミドルウェア５００は、センサノードの接続先として通信品質の良い中間ノード（または親ノード）を優先させるので、再接続によってセンサノードはより通信品質の良い中間ノード（または親ノード）に接続することになる。
【００９２】
こうして、通信品質が悪化したセンサノードの接続先を、より通信品質の良い中間ノードと接続へ変更した後には、ステップＳ１８で、ミドルウェア５００が当該センサノードとの接続を不許可にしていた中間ノードに対して、当該センサノードとの接続を許可するコマンドを送信して処理を終了する。
【００９３】
このように、第３の実施形態によれば、センサノードの通信品質が悪化すると、センサノードの電池残量の余裕に応じて、通信品質のより良い中間ノード（または親ノード）を検索する処理をセンサノード側またはセンサネットサーバＳＶＲ側の何れで行うかを選択することにより、センサノードの電力の消費を最小にしながら、より通信品質の良い中間ノードに接続することが可能となるのである。
【００９４】
＜第４実施形態＞
図１２は、第４の実施形態を示し、前記第１実施形態のセンサネットサーバＳＶＲがセンサノードＳＳ１〜ＳＳ２ｎを配置した場所から離れた位置で、リモートによりセンサネットシステムの管理を行う例を示す。
【００９５】
センサノードＳＳ１〜ＳＳｎを備えた無線ネットワークＰＡＮ１は、ゲートウェイＧＷ１を介してネットワークＮＷに接続され、センサノードＳＳ２１〜ＳＳ２ｎを備えた無線ネットワークＰＡＮ２は、ゲートウェイＧＷ２を介してネットワークＮＷに接続される。ネットワークＮＷは、インターネットまたは専用線などで構成されデータセンタＤＣに配置されたセンサネットサーバＳＶＲに接続される。これらセンサネットサーバＳＶＲ、無線ネットワークＰＡＮ１、ＰＡＮ２、センサノードＳＳ１〜ＳＳ２ｎの構成は前記第１実施形態の図１と同様である。
【００９６】
データセンタＤＣには、センサネットサーバＳＶＲに接続されてセンサネットシステムを管理するセンサネット監視クライアントＣＬが接続され、ノード管理テーブル５２０の設定やセンサネットシステムの保守などを行う。
【００９７】
図１２の構成により、センサネットシステムの保守・管理をリモートにて行うことができる。
【００９８】
なお、図１２においては、センサネットサーバＳＶＲとゲートウェイＧＷ１、ＧＷ２をリモート接続している例を示したが、センサネット監視クライアントＣＬとセンサネットサーバＳＶＲの間をリモート接続としてもよい。
【００９９】
以上、本発明の上記各実施形態によれば、サーバ計算機がセンサノードと中間ノードの通信品質を監視して、センサノードと中間ノードの通信品質が悪化すると、センサノードの接続先を自動的に通信品質の良い中間ノードへ移すことが可能となり、特定の中間ノードにセンサノードが集中するのを防いで、バランスの良いセンサネットシステムを維持することが可能となる。さらに、センサノードは、中間ノードとの無線通信品質をセンシングデータとともに送信するので、サーバ計算機では、多数のセンサノードの通信品質を一元的に監視することができ、無線通信品質の悪化したときには、人手を要することなく極めて迅速にデータ伝送経路の再構築を実現できるのである。したがって、本発明を適用することで、センサネットシステムの保守、管理に要するコストを低減することが可能となるのである。
【０１００】
また、以上のように、本発明は、複数の中間ノードと多数のセンサノードを備えたセンサネットシステムに適用することができる。
【図面の簡単な説明】
【０１０１】
【図１】本発明の第１の実施形態を示し、センサネットシステムの構成を示すブロック図である。
【図２】同じく第１の実施形態を示し、センサノードの構成を示すブロック図である。
【図３】同じく第１の実施形態を示し、中継ノードの構成を示すブロック図である。
【図４】同じく第１の実施形態を示し、ゲートウェイの構成を示すブロック図である。
【図５】同じく第１の実施形態を示し、センサネットサーバの構成を示すブロック図である。
【図６】同じく第１の実施形態を示し、ミドルウェアが利用するノード管理テーブルの構成を示す説明図である。
【図７】同じく第１の実施形態を示し、ミドルウェアが更新する通信品質テーブルの構成を示す説明図である。
【図８】同じく第１の実施形態を示し、センサノードが送信するパケットの一例を示す説明図である。
【図９】同じく第１の実施形態を示し、ミドルウェアで行われる処理の一例を示すフローチャートである。
【図１０】同じく第２の実施形態を示し、ミドルウェアで行われる処理の一例を示すフローチャートである。
【図１１】同じく第３の実施形態を示し、ミドルウェアで行われる処理の一例を示すフローチャートである。
【図１２】同じく第４の実施形態を示し、センサネットシステムの構成を示すブロック図である。
【符号の説明】
【０１０２】
ＳＶＲ  センサネットサーバ
ＳＳ１〜ＳＳ２ｎ  センサノード
ＲＴ１〜ＲＴ４  中継ノード
ＧＷ１、２  ゲートウェイ
５００  ミドルウェア
５１０  通信品質テーブル
５２０  ノード管理テーブル
【図１】
2009111455.tif 000003
【図２】
2009111455.tif 000004
【図３】
2009111455.tif 000005
【図４】
2009111455.tif 000006
【図５】
2009111455.tif 000007
【図６】
2009111455.tif 000008
【図７】
2009111455.tif 000009
【図８】
2009111455.tif 000010
【図９】
2009111455.tif 000011
【図１０】
2009111455.tif 000012
【図１１】
2009111455.tif 000013
【図１２】
2009111455.tif 000014