(57)【要約】【課題】センサノードノードから送信される情報を可能な限りリアルタイムで転送しながら、センサネットシステムの通信経路の負荷が過大になるのを抑制する。【解決手段】境界ノードＤＲがゲートウェイＧＷ側へ転送するイベントの転送レートが制限転送レートＶＬを超えたときに、センサノードＳ側のノードのうち、送出レートが予め設定した条件を満たすノードを送出レート超過ノードとして特定し、送出レート超過ノードまたは送出レート超過ノードを除くノードのうち、送出レートを抑制する対象となるノードを減速ノードとして選択し、減速ノードからのイベントの送出レートまたは該イベントの転送レートを抑制するノードを減速処理実行ノードとして選択し、減速処理実行ノードに予め設定した処理の実行を指令する。【選択図】図１２
2008042458.tif 000002
【特許請求の範囲】
【請求項１】
取得した情報をイベントとして送出するセンサノードと、
前記イベントを受信しサーバ計算機側へ転送する中継ノードと、を備えたセンサネットワークシステムにおいて、
前記中継ノードは、
前記イベントの転送レートが予め設定した制限転送レートを超えたか否かを判定する制限転送レート判定部と、
前記制限転送レート判定部により前記転送レートが前記制限転送レートを超えたと判定されたとき、当該中継ノードに接続されるセンサノードからのイベントの送出レートが所定の条件を満たすセンサノードを送出レート超過ノードとして特定する送出レート超過ノード特定部と、
前記送出レート超過ノードまたは前記送出レート超過ノードを除くセンサノードの何れか一方から送出レートを抑制するセンサノードを減速ノードとして選択する減速ノード選択部と、
前記減速ノードまたは前記減速ノードに接続される中継ノードの何れかを減速処理実行ノードとして選択する減速処理実行ノード選択部と、
前記減速処理実行ノードに所定の処理の実行を指令する減速開始部と、を備えることを特徴とするセンサネットワークシステム。
【請求項２】
前記減速ノード選択部は、
前記送出レート超過ノードを前記減速ノードとして選択し、
前記減速処理実行ノード選択部は、
当該中継ノードを前記減速処理実行ノードとして選択することを特徴とする請求項１に記載のセンサネットワークシステム。
【請求項３】
前記減速ノード選択部は、
前記送出レート超過ノードを除くセンサノードを前記減速ノードとして選択し、
前記減速処理実行ノード選択部は、
当該中継ノードを前記減速処理実行ノードとして選択することを特徴とする請求項１に記載のセンサネットワークシステム。
【請求項４】
前記減速ノード選択部は、
前記送出レート超過ノードを前記減速ノードとして選択し、
前記減速処理実行ノード選択部は、
前記送出レート超過ノードを減速処理実行ノードとして選択することを特徴とする請求項１に記載のセンサネットワークシステム。
【請求項５】
前記減速ノード選択部は、
前記送出レート超過ノードを除くセンサノードを前記減速ノードとして選択し、
前記減速処理実行ノード選択部は、
前記送出レート超過ノードを除くセンサノードを前記減速処理実行ノードとして選択することを特徴とする請求項１に記載のセンサネットワークシステム。
【請求項６】
前記減速ノード選択部は、
前記送出レート超過ノードを前記減速ノードとして選択し、
前記減速処理実行ノード選択部は、
当該中継ノードよりもセンサノード側で前記減速ノードのイベントを中継する中継ノードを減速処理実行ノードとして選択することを特徴とする請求項１に記載のセンサネットワークシステム。
【請求項７】
前記減速ノード選択部は、
前記送出レート超過ノードを減速ノードとして選択し、
前記減速処理実行ノード選択部は、
前記送出レート超過ノードに直属の中継ノードを減速処理実行ノードとして選択することを特徴とする請求項１に記載のセンサネットワークシステム。
【請求項８】
取得した情報をイベントとして送出するセンサノードと、
前記イベントを受信しサーバ計算機側へ転送する中継ノードと、を備えたセンサネットワークシステムにおいて、
前記中継ノードは、
前記イベントの転送レートが予め設定した制限転送レートを超えたか否かを判定する制限転送レート判定部と、
前記制限転送レート判定部により前記転送レートが前記制限転送レートを超えたと判定されたとき、当該中継ノードに接続されるセンサノードに直属の中継ノードに減速指令を送信する減速指令部と、を備え、
前記センサノードは、
前記直属の中継ノードと通信を行う通信処理部と、
前記通信処理部が前記減速指令を受信したとき、前記イベントに所定の処理を行って該イベントの送出レートを抑制する減速処理実行部と、
を備えたことを特徴とするセンサネットワークシステム。
【請求項９】
前記制限転送レート判定部により前記転送レートが前記制限転送レートを超えたと判定されたときであって、当該中継ノードに直属のセンサノードの送出レート及び直属の中継ノードの転送レートが前記制限転送レート未満である場合、当該中継ノードを境界ノードとすることを特徴とする請求項１乃至８の何れかに記載のセンサネットワークシステム。
【請求項１０】
前記減速処理実行ノードは、
前記イベントを蓄積するイベント蓄積部を有し、
前記イベント蓄積部に蓄積されたイベントが前記予め設定した数になると、これらのイベントをまとめて送信することを特徴とする請求項１乃至９の何れかに記載のセンサネットワークシステム。
【請求項１１】
前記中継ノードは、
前記制限転送レート判定部により前記転送レートが前記制限転送レートを超えたと判定された後、当該中継ノードが前記サーバ計算機側へ転送するイベントの転送レートが前記制限転送レート未満になったとき、前記センサノードに直属の中継ノードに減速解除の指令を送信することを特徴とする請求項８乃至１０の何れかに記載のセンサネットワークシステム。
【請求項１２】
センサノードから受信したイベントを転送する中継ノードと、
前記転送されたイベントを受信しサーバ計算機へ送信するサーバノードと、を備えたセンサネットワークシステムにおいて、
前記サーバノードは、
当該サーバノードが前記サーバ計算機へ転送するイベントの転送レートが予め設定した制限転送レートを超えたか否かを判定する制限転送レート判定部と、
前記制限転送レート判定部により前記転送レートが前記制限転送レートを超えたと判定されたときに、当該サーバノードに接続される中継ノードからのイベントの転送レートが所定の条件を満たす中継ノードを送出レート超過ノードとして特定する送出レート超過ノード特定部と、
前記送出レート超過ノードまたは前記送出レート超過ノードを除く中継ノードのうち、転送レートを抑制する中継ノードを減速ノードとして選択する減速ノード選択部と、
前記減速ノードまたは前記減速ノードに接続されるサーバノードの何れかを減速処理実行ノードとして選択する減速処理実行ノード選択部と、
前記減速処理実行ノードに所定の処理の実行を指令する減速開始部と、を備えることを特徴とするセンサネットワークシステム。
【請求項１３】
センサノードが取得した情報をイベントとして中継ノードからサーバ計算機側へ転送する転送レートが予め設定した制限転送レートを超えたか否かを判定し、
前記転送レートが前記制限転送レートを超えたと判定されたとき、前記中継ノードに接続されるセンサノードからのイベントの送出レートが所定の条件を満たすセンサノードを送出レート超過ノードとして特定し、
前記送出レート超過ノードまたは前記送出レート超過ノードを除くセンサノードのいずれか一方から送出レートを抑制するセンサノードを減速ノードとして選択し、
前記減速ノードまたは前記減速ノードに接続される中継ノードの何れかを減速処理実行ノードとして選択し、
前記減速処理実行ノードに所定の処理の実行を指令することを特徴とするセンサネットワークのデータ処理方法。
【請求項１４】
前記送出レート超過ノードを前記減速ノードとして選択し、
当該中継ノードを前記減速処理実行ノードとして選択することを特徴とする請求項１３に記載のセンサネットワークのデータ処理方法。
【請求項１５】
前記送出レート超過ノードを除くセンサノードを減速ノードとして選択し、
当該中継ノードを前記減速処理実行ノードとして選択することを特徴とする請求項１２に記載のセンサネットワークのデータ処理方法。
【請求項１６】
センサノードが取得した情報をイベントとして中継ノードからサーバ計算機側へ転送する転送レートが予め設定した制限転送レートを超えたか否かを判定し、
前記転送レートが前記制限転送レートを超えたと判定されたとき、当該中継ノードに接続されるセンサノードに直属の中継ノードに減速指令を送信し、
前記センサノードは、前記直属の中継ノードから前記減速指令を受信したとき、前記イベントに所定の処理を行って該イベントの送出レートを抑制することを特徴とするセンサネットワークのデータ処理方法。
【請求項１７】
前記転送レートが前記制限転送レートを超えたと判定されたときであって、当該中継ノードに直属のセンサノードの送出レート及び直属の中継ノードの転送レートが前記制限転送レート未満である場合、当該中継ノードを境界ノードとすることを特徴とする請求項１３乃至１６の何れかに記載のセンサネットワークのデータ処理方法。
【請求項１８】
前記転送レートが前記制限転送レートを超えたと判定された後、当該中継ノードが前記サーバ計算機側へ転送するイベントの転送レートが前記制限転送レート未満になったとき、前記センサノードに直属の中継ノードに減速解除の指令を送信することを特徴とする請求項１６または１７に記載のセンサネットワークのデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続した多数のセンサノードからの情報を利用する技術に関し、特に、センサノードが送信した情報を円滑に配信するセンサネットワークシステムに関する。
【背景技術】
【０００２】
近年、多数のセンサノードから得られるセンシングデータを、ネットワークを通じて取得するセンサネットワークシステム（以下、センサネットシステム）の技術が発展しつつある。センサネットシステムは、多数のセンサノードが取得した情報を、ネットワークを通してセンサノードから離れた場所の計算機や装置で利用する。
【０００３】
センサネットシステムでは、多数のセンサノードが取得した情報を、中継局や基地局を介してサーバ計算機などへ送信し、サーバ計算機が各センサノードの情報を収集する。このような構成のセンサネットシステムでは、一つのセンサノードが送信する情報量が過大になると、情報を転送する中継局や基地局の処理負荷が過大になってしまい、他のセンサノードの情報を収集できなくなるなどの障害が生じる恐れがある。このような障害を防ぐため、通信特性（送信間隔など）が平均通信特性から所定量以上ずれた端末を異常と判定し、サーバ計算機から端末へのデータ送信を抑制する技術が知られている（例えば、特許文献１）。
【０００４】
あるいは、送信する情報量が多いセンサノードを異常と判定し、異常なセンサノードからの情報を廃棄し、正常なセンサノードからの情報を伝送する技術が知られている（例えば、特許文献２）。
【特許文献１】特開２００５−１５９６４６号公報
【特許文献２】特開平１１−１２０１０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
センサネットシステムでは、センサノードとサーバ計算機の間の通信経路の中継局や基地局などのルータ装置において、単位時間当たりに所定量以上のデータの転送が要求された時、ルータ装置の処理負荷や通信負荷が限界を超えると、通信に障害が発生する可能性がある。さらに、ひとつのルータ装置に障害が発生すると、この障害がセンサネットシステム全体に波及して、システムが停止する可能性もある。
【０００６】
上記従来例では、ひとつのセンサノードの通信量が所定値を超えると異常なセンサノードと判定して、このセンサノードからの情報を破棄したり、このセンサノードに対する情報送信を抑制したりすることで、センサネットシステムの通信経路の負荷が過大になるのを防いでいる。しかしながら、上記従来例では、センサノード自体は正常であっても、通信経路上のルータ装置の負荷が過大になった場合、各センサノードに異常はないので通信を許容することになり、ルータ装置に通信の障害が発生するのを抑制することができない、という問題があった。
【０００７】
例えば、人体に装着するセンサノードの場合では、企業や施設内に中継局や基地局などの中継ノードを配置して、従業員や利用者が装着したセンサノードが測定した情報を中継ノードからサーバ計算機へ伝送する。会議場などに設置された中継ノードでは、会議の開催時には多数のセンサノードが配下の無線ネットワークに参加する。このとき、センサネットシステムの設計時に想定した会議場の入場者数を超える数のセンサノードが中継ノードのルータ装置の配下に参加した場合では、個々のセンサノードは正常であるが、ルータ装置が中継すべき情報量は設計値を超えてしまい、ルータ装置に通信障害が発生するなどの問題点があった。
【０００８】
センサノードの情報の測定間隔や情報の送信条件は、センサネットシステムの利用者が適宜設定を変更することが可能であり、例えば、温度センサを備えたセンサノードの測定間隔と送信条件を、測定した温度が所定の高温未満の場合には測定した温度を送信せずに５分間隔で測定を実行し、所定の高温となった場合には測定間隔を１０秒に変更し、測定した温度を送信する、と設定することでセンサノードを火災報知に利用することができる。このセンサノードの設置場所で実際に火災が発生すると、センサノードからのデータ転送要求は急激に増大することになるが、上記従来例の場合では、このセンサノードのデータ転送要求が所定値を超えると異常なセンサノードと判定され、たとえ緊急を要しユーザにとって有用な情報であってもデータが破棄されてしまう、という問題があった。
【０００９】
上記従来例では、所定量以上のデータ転送要求が、センサノードの暴走によるものか、ユーザの操作によるものかは容易に判定できず、センサノードが正常か異常かは分からない。そして、センサネットシステムでは、センサノードが観測した現象を詳細かつリアルタイムに通達するという要求から、センサノードが出力する観測情報はできるだけ廃棄や遅延送信してはならない。特に、上述したような警報を伝達するセンサノードを含むセンサネットシステムでは、データ転送要求が急増したからといって、上記従来例のように安易にセンサノードを異常と判定してデータを破棄することはできないという問題がある。
【００１０】
そこで本発明は、上記問題点に鑑みてなされたもので、センサノードノードから送信される情報を可能な限りリアルタイムで転送しながら、センサネットシステムの通信経路の負荷が過大になるのを抑制することを目的とする。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記のとおりである。本発明は、中継ノードの転送レートが予め設定した制限転送レートを超えたとき、送出レートが所定の条件を満たすセンサノードを送出レート超過ノードとして特定し、送出レート超過ノードまたは送出レート超過ノードを除くセンサノードの何れか一方から送出レートを抑制するセンサノードを減速ノードとして選択し、減速ノードまたは減速ノードに接続される中継ノードの何れかを減速処理実行ノードとして選択し、減速処理実行ノードに所定の処理の実行を指令する。
【発明の効果】
【００１２】
本発明は、中継ノードで転送レートが過大となってセンサネットワークが不安定になるのを防ぎながら、センサノードから送信される情報をすべて廃棄することなく、可能な限りリアルタイムで転送することで、信頼性を確保できる。
【００１３】
また、ユーザにとって緊急を要する有用な情報を抑制することなく、転送することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１５】
図１は、本発明を適用するセンサネットワークシステム（以下、センサネットシステム）の一例を示すブロック図である。
【００１６】
センサネットシステムは、環境に分散する多数のセンサノード１に設けたセンサにより環境情報を観測し、無線ネットワーク６で接続されたルータノード２とゲートウェイ３を経由して観測情報をセンサネットサーバ４に配送する。そして、センサネットサーバ４に観測情報を収集することで、ユーザの意思決定の支援などを実現する計算機システムである。センサネットサーバ４は、収集した観測情報を格納するデータベース５を備える。
【００１７】
センサノード１は、温度センサや湿度センサなどのセンサや、個人（または個体）を識別する識別子を有し、無線ネットワーク６を介してルータノード２に接続される。ルータノード２には複数のセンサノード１が接続され、これらセンサノード１からの観測情報を収集する。
【００１８】
ルータノード２は、配下（直属）のセンサノード１から収集した観測情報を隣り合うルータノード２またはゲートウェイ３と無線ネットワーク６を介して接続され、センサノード１から受信した観測情報をゲートウェイ３へ向けて転送する。
【００１９】
なお、図１は、センサネットサーバ４に１つのゲートウェイ３が接続されている例を示すが、センサネットサーバ４に複数のゲートウェイ３が接続されて、各ゲートウェイ３がそれぞれ無線ネットワーク６を備えるようにしても良い。また、ルータノード２やゲートウェイ３は、配下にセンサノード１が接続されていない場合もあり、このようなルータノード２やゲートウェイ３では観測情報やコマンドの転送を行う中継ノードとして機能する。また、センサノード１を配下に備えるルータノード２やゲートウェイ３も、他のルータノード２を接続して中継ノードして機能することができる。
【００２０】
本明細書では、センサノードのデータの送信をデータの送出、中継ノードのデータの送信をデータの転送と表現する。また、中継ノードにセンサが設けられ当該中継ノードが取得した情報をサーバ計算機側に送信する場合、当該中継ノードのハードウェアの故障やソフトウェアのバグにより異常を示す情報をサーバ計算機側に送信する場合など、配下のノードからのデータをサーバ計算機側に転送するとともに、当該中継ノードが情報を送出する場合には、当該中継ノードをセンサノードと考える。
【００２１】
ゲートウェイ３は、有線ネットワーク７を介してセンサネットサーバ４に接続され、無線ネットワーク６を介して各ルータノード２から受信した観測情報をセンサネットサーバ４に転送する。なお、以下の説明では、複数のセンサノード１を識別する際にはＳ１〜Ｓｎの符号を付し、複数のルータノード２を識別する際にはＲ１〜Ｒｎの符号を付して説明する。また、本実施形態では、無線ネットワーク６をメッシュ配置のマルチホップ型で構成し、ルータノード２同士で観測情報などの通信を行う。ここで、ルータノード２とセンサノード１やルータノード２間の無線ネットワーク６は、例えば、ＰＡＮ（Personal Area Network）で構成することができる。
【００２２】
有線ネットワーク７には、ゲートウェイ３とセンサネットサーバ４が接続され、さらに、センサネットサーバ４からの指令に応じて動作するアラーム１１やエアコンディショナ１２及びユーザ端末１３が接続される。
【００２３】
センサネットサーバ４は、所定のセンサノード１の観測情報が所定の温度を超えると、アラーム１１に動作開始の指令を送信し警報を発し、所定のセンサノード１の観測情報が所定の温度を超えると、エアコンディショナ１２へ動作開始を指令する。ユーザ端末１３は、ユーザまたは管理者がセンサネットシステムの設定や管理を行ったり、センサネットサーバ４に蓄積された観測情報を利用する。また、ユーザ端末１３は、センサネットサーバ４を介してゲートウェイ３やルータノード２またはセンサノード１の設定を変更することができる。例えば、ユーザ端末１３は、特定のセンサノード１のセンサの測定間隔を設定し、センサノード１の識別子と共に測定間隔の設定指令（コマンド）をセンサネットサーバ４に送信する。センサネットサーバ４は、ユーザ端末１３からの設定指令を特定のセンサノード１に送信し、設定の変更を指令する。このとき、ゲートウェイ３とルータノード２は指定されたセンサノード１へ向けてセンサネットサーバ４からのコマンドを上流側に転送する。
【００２４】
なお、図１において、センサノード１側を観測情報の上流とし、センサネットサーバ４側を下流とする。例えば、図１において、ルータノードＲ１は上流側のルータノードであり、ルータノードＲ４は下流のルータノードとなる。また、センサノード１からセンサネットサーバへ向かうにつれて、上位の計算機となる。
【００２５】
また、センサネットサーバ４は、ユーザ端末１３に対して収集した観測情報の提供や、有線ネットワーク７上の装置に対して観測情報に基づく指令や通知を行うサーバノードとして機能する。
【００２６】
＜センサネットシステムの構成＞
次に、図１に示したセンサネットシステムの各構成要素の詳細について、以下に説明する。
【００２７】
＜センサノードのハードウェア構成＞
図２は、センサノード１の構成を示すブロック図である。センサノード１は、環境を観測し、観測情報をイベントとして発行するノードである。センサノード１は、メモリ１０１とＣＰＵ１０３と、データの長期記録を行う不揮発性の外部記憶装置１０２と、環境の観測を行うセンサ１０７と、センサノード１を周期的に起動させるタイマ１０４と、ルータノード２等と無線通信を行う無線通信装置１０５と、センサノード１の各部に電力を供給する電池１０６とを含む。
【００２８】
なお、イベントとは、ノード（センサノード１またはルータノード２あるいはゲートウェイ３、以下同様）が自発的に発行する状態や状態変化を表す情報を格納した通信フレームを示し、コマンドはノードに対して何らかの処理を依頼するための通信フレームを示す。
【００２９】
センサノード１の起動時に、フラッシュメモリなどで構成された外部記憶装置１０２に記録されているプログラムをメモリ１０１上に読み込み、ＣＰＵ１０３で実行することにより、後述するように所定の周期（測定間隔）でセンサ１０７を駆動して観測情報を取得し、イベントとしてルータノード２へ送出する。センサノード１では、電池１０６の無駄な消耗を防いで、長期間の使用を実現するためタイマ１０４に予め設定された測定間隔毎にＣＰＵ１０３を起動して観測情報の取得と送信を行い、その後、ＣＰＵ１０３及び各部はスリープ状態に移行する処理を繰り返して実行する。なお、センサノード１の測定間隔は、例えば、５分などに設定され、間欠的にまたはイベント駆動的に観測情報をルータノード２へ送信する。
【００３０】
また、センサ１０７は、例えば温度センサ、湿度センサ、照度センサ、ボルトの緩みを検知するひずみセンサ、椅子への着座や扉の開閉を検知する圧力センサ、人の存在を検知する赤外線センサ、脈拍を検知する赤外線センサなどがあげられる。また、衣服などに装着する名札ノードもセンサノードの一種であり、ユーザのボタン操作による入力を検知するスイッチがセンサデバイスとなる。
【００３１】
＜ルータノードのハードウェア構成＞
図３は、ルータノード２の構成を示すブロック図である。ルータノード２は、通信を中継するノードであり、メモリ２０１、ＣＰＵ２０３、タイマ２０４、データの長期記録を行う不揮発性の外部記憶装置２０２、無線ネットワーク６を介して通信を行う無線通信装置２０５及びルータノード２の各部に電力を供給するＡＣアダプタ２０７、から構成される。ルータノード２の起動時には、ＣＰＵ２０３がフラッシュメモリなどで構成された外部記憶装置２０２に記録されているプログラムをメモリ２０１上に読み込み、ＣＰＵ２０３で実行することにより処理を行う。
【００３２】
ルータノード２は、センサノード１が発行した観測情報をイベントとして受信し、下流のルータノード２やゲートウェイ３へイベントを転送する。なお、各ルータノード２がゲートウェイ３やセンサノード１へ向けてイベントやコマンドの転送を行う通信経路は、ユーザ端末１３等から予め設定されたものである。
【００３３】
ルータノード２では、センサノード１からのイベントを下流のルータノード２やゲートウェイ３へ転送し、下流のルータノード２やゲートウェイ３からのコマンドを上流のルータノード２やセンサノード１に転送する。
【００３４】
また、ルータノード２は、イベントの転送レート（単位時間当たりのデータ転送量または通信速度）を監視して、所定の制限転送レート（または制限速度）ＶＬを超えていないかを判定する。さらに、ルータノード２は、当該ルータノードに直属の任意のノードからの流入速度が制限転送レートを超えない場合に、減速処理の主体である境界ノードであると判定する。つまり、下流のルータノード２で重複して減速処理の主体となることを防ぐ。なお、減速処理の主体とは、後述する減速量の決定、減速処理実行ノードの選択などの処理を行うルータノードを意味する。
【００３５】
なお、制限転送レートＶＬはルータノード（または、ゲートウェイ３）において、単位時間あたりに処理可能なイベント転送量に所定の安全率を見込んだものであり、ＣＰＵ２０３や通信装置２０５の処理性能通に応じた速度で、各ルータノード２にそれぞれ予め設定した値である。
【００３６】
また、転送レート（受信速度、送信速度）、制限転送レートＶＬは例えば、毎秒のパケット数や、毎秒のオクテット数などで表現することができる。
【００３７】
減速処理の主体と判定したルータノード２は、転送レートが過大になるのを防ぐために減速処理を行う。減速処理の概略は次の通りである。
【００３８】
（１）境界ノードの判定処理
イベントの転送レートが制限転送レートＶＬを超える転送レートの異常を検知したルータノード２の上流のルータノード２でも、転送レートの異常を検知している可能性があるので、自ノードが減速処理の主体となるのか否かを判定する。このため、自ノードより上流のノードからのデータの流入速度（センサノード１からのデータの場合は送出レート、ルータノード２からのデータの場合は転送レート）が正常で、自ノードから下流のノードの転送レートが過大であれば、自ノードは境界ノードであると判定し、減速処理の指令の主体となる。過大になった転送レートを検知しても、自ノードが境界ノードでなければ減速処理の指令の主体とはならない。
【００３９】
（２）減速処理の対象の選択
減速処理を実行するのは、境界ノード自身、境界ノードよりも上流のルータノード２またはセンサノード１のいずれかで減速処理を実行することができる。
【００４０】
さらに、減速処理を実行するノードがその減速処理の対象とするノード（減速ノード）は、送出レートが過大である特定のセンサノード（送出レート超過ノード）か、送出レート超過ノード以外のセンサノード何れか一方から選択することができる。
【００４１】
ここで、送出レート超過ノードは、センサノード１のうち、単位時間当たりのデータ送出量（送出レート）が後述する（５）式を満たすセンサノードである。送出レート超過ノードの一例としては、次のようなものがあげられる。
Ａ．ソフトウェアのバグやハードウェアの故障などで多量のデータを送信するセンサノード。すなわち、異常が発生したセンサノード１。
Ｂ．間欠型センサノードであって、ユーザ端末１３からの設定によって送出レートが過度に高く設定されたセンサノード１（例えば、測定間隔が数秒などに設定された場合）。
Ｃ．不正に設置された悪意のあるセンサノード１であって、センサネットシステムを停止させるために大量のイベントを発行するセンサノード１。
Ｄ．上記図７のような間欠型ではなく、連続的にセンサ１０７の観測を行い所定の条件を満足したときにのみ送信を行う場合であって（イベント駆動型）、条件を連続的に満足した結果、大量のイベントを送信するセンサノード１。
Ｅ．１のルータノードに集合した多数のセンサノード。例えば、人間が装着するセンサノード１で、会議室などに設定したルータノード２に多数の装着者が集合した場合。
【００４２】
以上のように、故障により送出レートが過大となるセンサノードだけでなく、正常であっても設定された条件により送出レートが過大となるセンサノード及び通常の送出レートであるセンサノードであっても、ルータノードの転送レートが制限転送レートを超えかつ上記（５）式を満たすセンサノードは送出レート超過ノードに含まれる。
【００４３】
そのため、送出レート超過ノードからのイベントを優先することが要求されることがありうる。例えば上記Ｄのように、イベント駆動型センサノードであって、そもそもユーザが所望の条件を満たすセンサノードのイベントを要求している場合がある。一方、上記Ｂのように間欠型センサノードであって、ユーザが非常に短期間のデータを要求する場合もある。さらには、上記Ｅにおいても、上述したＢやＤの場合であれば、送出レート超過ノードからのイベントを優先することが要求される。
【００４４】
よって、減速ノードとして送出レート超過ノードを選択するかどうかは、センサノードが測定するイベントがユーザにとって緊急を要するか否か、つまりユーザにとって有用か否かにより定まる。例えば、火災発生により温度を測定するセンサノードからイベントが大量に送出される場合、食品を適切な温湿度で管理しなければならない空間で温湿度が所定の値を超え、センサノードからイベントが大量に送出される場合、地震発生により加速度を測定するセンサノードからイベントが大量に送出される場合など、緊急を要するイベントの場合には該イベントを優先して下流に転送することが要求される。
【００４５】
一方、単にある空間に間欠型センサノードが集中したためルータノードの転送レートが過大になった場合、温湿度を管理している空間で照度センサの故障によりセンサノードから大量のイベントが送出される場合など、緊急を要しないイベントの場合は、該イベントの下流への転送を抑制することが要求される。
【００４６】
このように、ユーザの目的によって、送出レート超過ノードもしくはそれ以外のセンサノードの何れかが減速ノードとして設定される。
【００４７】
（３）減速処理実行ノードの選択
減速処理を実行するノードは、境界ノード、境界ノードよりも上流のルータノード、送出レート超過ノード、送出レート超過ノード以外のセンサノードの何れかから選択することができる。
【００４８】
ここで、センサノード１で実行される減速処理とは、センサノード１がルータノード２やゲートウェイ３へイベントを送出するデータレート（送出レート）を抑制することを意味する。また、ルータノード２やゲートウェイ３で実行される減速処理とは、ルータノード２やゲートウェイ３へイベントを転送するデータレート（転送レート）を抑制することを意味する。
【００４９】
なお、（２）と（３）における減速ノード及び減速処理実行ノードの組み合わせは、後述するルール１−６により規定される。
【００５０】
（４）減速処理の内容
減速処理の内容は、上述したようにセンサノード１自身が送出レートを抑制する処理と、センサノード１からデータを受信したルータノード２が転送レートを抑制する処理がありうる。
【００５１】
センサノード１自身が送出する単位時間あたりのデータ量を抑制する減速処理としては、次のものがあげられる。
ａ１：センサノード１の測定間隔を増大する。
ａ２：観測情報のまとめ送りを行う。
ａ３：センサノード１とルータノード２の間で見なし通信を行う。
【００５２】
ルータノード２が転送するデータ量を抑制する減速処理としては、次のものがあげられる。
ｂ１：減速ノードからの観測情報の最大値、最小値、平均値の３つに削減する。
ａ２：観測情報のまとめ送りを行う。
【００５３】
以上のように、減速処理では主体となる境界ノードの決定と、減速ノードの決定と、減速処理実行ノードの決定と、減速内容の決定を行って減速処理を実行する。
【００５４】
この減速処理により、中継ノードで転送レートが過大となってセンサネットワークが不安定になるのを防ぎながら、センサノードから送出される情報を完全に破棄することなく、可能な限りリアルタイムで転送することができる。
【００５５】
さらには、緊急を要するか否かにより送出レート超過ノードもしくはそれ以外のセンサノードを減速対象とするため、ユーザにとって有用である送出レート超過ノードからのイベントを抑制することなく、下流に転送することが可能となる。
【００５６】
＜ゲートウェイのハードウェア構成＞
図４は、ゲートウェイ３の構成を示すブロック図である。ゲートウェイ３はルータノード２と同様には、通信を中継するノードであるが、無線ネットワーク６と有線ネットワーク７の双方と通信を行う点がルータノード２と相違する。
【００５７】
ゲートウェイ３は、メモリ３０１、ＣＰＵ３０３、タイマ３０４、データの長期記録を行う不揮発性の外部記憶装置３０２、無線ネットワーク６を介して通信を行う無線通信装置３０５、ゲートウェイ３の各部に電力を供給するＡＣアダプタ３０７、有線ネットワーク７と通信を行うシリアル通信インターフェース３０８から構成される。ゲートウェイ３の起動時には、ＣＰＵ３０３がフラッシュメモリなどで構成された外部記憶装置３０２に記録されているプログラムをメモリ３０１上に読み込み、ＣＰＵ３０３で実行することにより処理を行う。
【００５８】
ゲートウェイ３は、ルータノード２からのイベントを無線ネットワーク６から受信して、このイベントを有線ネットワーク７からセンサネットサーバ４へ転送する。また、ゲートウェイ３は、センサネットサーバ４からのコマンドを有線ネットワーク７から受信し、無線ネットワーク６を介して上流のルータノード２へ転送する。
【００５９】
さらに、ゲートウェイ３は、イベントの転送レート（単位時間当たりのデータ転送量）を監視して、所定の制限転送レートＶＬを超えていないかを判定する。なお、制限転送レートＶＬはゲートウェイ３において、単位時間あたりに処理可能なイベント転送量に安全率を見込んだ転送レートであり、ＣＰＵ３０３の処理性能や無線通信装置３０５の転送レートに応じた安全率を繰り込んだ速度で、ゲートウェイ３に予め設定した値である。
【００６０】
ゲートウェイ３は、受信したイベントの転送レートが制限転送レートＶＬを超え、かつ境界ノードであれば、上流のルータノード２やセンサノード１のいずれかに大量のイベントを発行するノードがあると判定し、上記ルータノード２と同様に、転送レートが過大になるのを防ぐために減速処理を行う。
【００６１】
＜サーバのハードウェア構成＞
図５は、センサネットサーバ４の構成を示すブロック図である。
【００６２】
図５において、センサネットサーバ４は、観測情報の収集・蓄積・配信を行うサーバノードであり、メモリ４０１、ＣＰＵ４０３、データの長期記録を行う外部記憶装置４０２、通信を行う通信装置４０５、センサネットサーバ４内に電力を供給するＡＣアダプタ４０７、管理者の操作を受け付けるキーボード４０８、情報を表示するディスプレイ４０９から構成される。センサネットサーバ４の起動時には、ディスク装置などで構成された外部記憶装置４０２に記録されているプログラムをメモリ４０２上に読み込み、ＣＰＵ４０３で実行することにより所定の処理を行う。なお、センサネットサーバ４内のディスク装置に代わって、ＳＡＮやＮＡＳのストレージ装置を用いるようにしても良い。
【００６３】
メモリ４０２上に読み込まれるプログラムは、ゲートウェイ３から受信したイベントをデータベース５に格納し、ユーザ端末１３からの要求に応じてデータベース５の観測情報を提供する。また、センサネットサーバ４は、受信したイベントに対するアクションと、アクションの実行条件をユーザ端末１３から予め受け付けておき、到着したイベントがアクションの実行条件を満たすときに、予め設定されたアクションを実行するサービスを提供する。
【００６４】
上記予め設定するアクション及びアクションの実行条件は、例えば、Ａさんが装着するセンサノード１が会議室Ｂに到着したら、Ｃさんのユーザ端末１３にメールを送信する、というものである。この例では、Ａさんのセンサノード１が会議室Ｂに到着したら、という実行条件で、メールの送信というアクションが実行される。
【００６５】
＜センサノードのソフトウェア構成＞
次に、センサノード１のソフトウェアの機能要素を図６に示し、センサノード１で実行される処理の一例を図７のフローチャートに示す。
【００６６】
センサノード１で実行されるソフトウェアの要素は、センサネットサーバ４（ユーザ端末１３）からコマンドを受信するコマンド受信部１１１と、受信したコマンドを実行してセンサノード１の設定やイベントの加工を実行するイベント加工部１１２と、センサ１０７が測定した観測情報やイベント加工部１１２が生成した情報を不揮発性メモリ１０２やメモリ１０１へ格納するイベント蓄積部１１３と、センサ１０７を駆動して観測情報を取得するセンサ観測部１１４と、センサ観測部１１４が取得した観測情報またはイベント蓄積部１１３が保持する情報をルータノード２へ送信するイベント送信部１１５と、を主体に構成される。そして、センサノード１では、上述したように所定の周期毎に上記各部を実行して、観測情報の取得と送信を行う。
【００６７】
センサノード１で実行される処理の一例について、図７を参照しながら説明する。
【００６８】
センサノード１では、タイマ１０４に予め設定された周期（測定間隔）が経過すると、タイマ１０４がＣＰＵ１０３に割り込みを発行し、スリープ状態のＣＰＵ１０３を起動する（１２１、１２２）。
【００６９】
ＣＰＵ１０３は、センサ１０７を駆動して環境の測定を行う（１２３）。ＣＰＵ１０３は、センサ１０７が測定した観測情報をメモリ１０１へ一旦格納する。次に、メモリ１０１または不揮発性メモリ１０２に予め格納された動作モードテーブル１４０を参照し、現在の動作モードを決定して観測情報を送信するか否かを判定する（１２４）。動作モードテーブル１４０は、図８で示すように、観測情報を送信するモード１４１と、観測情報をイベントとして送信する条件１４２が格納されている。そして、モード１４１は、ＣＰＵ１０３が間欠的に起動する度に常に観測情報を送信する間欠型と、観測情報が条件１４２を満たしたときに観測情報を送信するイベント駆動型などが設定されており、ユーザ端末１３からの要求に応じていずれかのモードが選択される。なお、初期状態では間欠型が設定されている。間欠型では、条件１４２は常に真に設定される。
【００７０】
イベント駆動型などが使用する条件１４２には、観測情報の値（観測値）が所定の閾値を超えたときにイベントの送信を行ったり、現在の観測値と前回値の差分が所定の閾値を超えたときにイベントの送信を行ったりするように、任意の条件式が格納される。これらの条件１４２は、ユーザ端末１３やセンサネットサーバ４から設定することができる。
【００７１】
動作モードが間欠型であれば、イベント送信処理（１２５）を常に実行する。一方、動作モードがイベント駆動型であれば、観測情報が条件１４２を満たしたときにイベント送信処理を実行し、条件１４２を満たしていなければ観測情報の送信は行わず、コマンド要求を行う（１２６）。
【００７２】
コマンド要求処理１２６では、当該センサノード１宛のコマンドなどがルータノード２に蓄積されていれば、ダウンロードを要求してコマンドを一つ受信する（１２７）。センサノード１は、電池１０６の無駄な消耗を抑制するため、自ノード宛の情報を常にルータノード２へ要求することはなく、イベント送信に引き続いて、コマンドの受信処理を行うことでルータノード２との接続回数を削減し、電池１０６の消費を抑制する。
【００７３】
次に、コマンドの受信の結果、ルータノード２に当該センサノード１宛のコマンドの有無を判定する（１２８）。受信したコマンドがあれば、コマンドの実行を行って（１２９）、実行した結果をルータノード２に送信する（１３０）。そして、再びコマンドの要求処理（１２６）に戻って、ルータノード２に蓄積されたコマンドがなくなるまで、上記１２６〜１３０の処理を繰り返す。
【００７４】
ルータノード２に自ノード宛のコマンドがなくなると、ＣＰＵ１０３はタイマ１０４を除く各部を停止させてからスリープ状態へ移行する（１３１）。
【００７５】
上記処理を繰り返すことで、所定の観測間隔でＣＰＵ１０３を起動して観測情報の取得とイベントの送信を実行し、センサノード１は間欠的にイベントを送信することができる。また、ユーザ端末１３やセンサネットサーバ４からのコマンドを受信して、観測間隔や動作モードあるいは条件１４２の設定変更を行うことができる。
【００７６】
イベント駆動型モードには、図８に示した他に、複数回の観測情報をメモリ１０１に角のしておき、一回の通信で送信するまとめ送りモードや、観測情報の値の変化率が変わったときに観測情報（または変化率）を送信する見なし通信モードなどが含まれる。
【００７７】
なお、いずれの動作モードであっても、センサネットサーバ４は、タイマ１０４に設定した周期毎にＣＰＵ１０３を起動してセンサ１０７から観測情報を取得する。なお、まとめ送りモードは、所定の周期でセンサ１０７が測定した観測情報をメモリ１０１に格納し、観測情報の数が所定の値になると、これらの観測情報を一回の通信でまとめてルータノード２に送信する。そして、メモリ１０１の観測情報をクリアした後、上記の動作を繰り返す動作モードである。
【００７８】
なお、上記図７のフローチャートでは、間欠的にセンサ１０７の観測を行う例を示したが、この他に、常時センサ１０７による観測を行って、図８に示したイベント駆動型の条件１４２を満足したときにのみ送信を行うようにしても良い。
【００７９】
＜センサネットシステムにおける転送レートの異常パターン＞
次に、センサネットシステムに発生する転送レートが過大になるパターンについて以下に説明する。センサネットシステムに発生する過大な転送レートは、上述したように、センサノード１の故障だけではなく、正常なセンサノードであっても転送レートが制限転送レートＶＬを超える状態が発生する場合がある。
【００８０】
図９はセンサ１０７に温度センサを備えたセンサノードＳ１〜Ｓ１６を建造物内に配置して、各センサノードをルータノードＲ１〜Ｒ３及びゲートウェイ３（ＧＷ）に接続した状態を示している。
【００８１】
そして、センサノードＳ１〜Ｓ１６には、イベント駆動型に設定されており、例えば、所定の温度を超えたら、ルータノード（またはゲートウェイ）に観測情報を送信する設定となっている。図中ルータノードの中ではＲ１が最も上流に位置し、Ｒ２、Ｒ３が下流に位置しており、ルータノードＲ３がゲートウェイＧＷに接続されている例を示す。
【００８２】
図中円形の範囲で火災が発生すると、この範囲に含まれるセンサノードＳ６、Ｓ７、Ｓ１０、Ｓ１１の４つのセンサノードの観測情報の値（以下、観測値）が所定の温度を超えて、ルータノード２へイベントを送信する。４つのセンサノードは正常であるが、これらのセンサノードＳ６、Ｓ７、Ｓ１０、Ｓ１１を配下に持つルータノードＲ２は、上流のルータノードＲ１からのイベントに加え、火災によるイベントの大量発生で下流のルータノードＲ３への転送レートが制限転送レートを超えて転送レートの過大となる。ひとつのルータノード２で転送レートが過大になると、下流のルータノードＲ３やゲートウェイＧＷでも転送レートが制限転送レートを超えることになり、過大な転送レートが下流へ波及することになる。
【００８３】
この場合、転送レートが過大になったノードは、図中ルータノードＲ２であり、転送レートが過大になった原因がセンサノードＳ６、Ｓ７、Ｓ１０、Ｓ１１である。センサノードＳ６、Ｓ７、Ｓ１０、Ｓ１１のイベントは、緊急を要する情報を含むため減速処理の対象とせず、センサノードＳ６、Ｓ７、Ｓ１０、Ｓ１１以外のセンサノードと、ルータノード２よりも上流のノードを減速処理の対象とすることが望ましい。
【００８４】
次に、人体などに装着されてルータノード間を移動可能なセンサノードよるセンサネットシステムの転送レートの異常について図１０を参照しながら以下に説明する。
【００８５】
図１０は、人体に装着したセンサノードＳ１〜Ｓ８の例を示し、会議室Room＃１〜＃４及び廊下にルータノードＲ１〜Ｒ５を配置したものである。ルータノードＲ５はゲートウェイＧＷに接続され、各会議室Room＃１〜＃４のルータノードＲ１〜Ｒ４はそれぞれ下流のルータノードＲ５と接続しており、ルータノードＲ５は下流のゲートウェイＧＷに接続されたスター型の例を示す。センサノードＳ１〜Ｓ８は人の移動に伴って、ルータノードＲ１〜Ｒ５等の間を移動する。
【００８６】
図中会議室Room＃１に多数の人が集まっており、センサノードＳ１〜Ｓ６がルータノードＲ１に接続する。ルータノードＲ１は、多数の人と共に会議室Room＃１へ移動して来たセンサノードＳ１〜Ｓ６と接続し、センサノードＳ１〜Ｓ６から受信したイベントをルータノードＲ５を介してゲートウェイＧＷに送信する。
【００８７】
このとき、ルータノードＲ１は多数のセンサノードＳ１〜Ｓ６からのイベントによって、下流のルータノードＲ５へ転送する転送レートが制限転送レートを超える場合がある。そして、ルータノードＲ１の下流のルータノードＲ５とゲートウェイＧＷにおける転送レートも制限転送レートを超えて、ルータノードＲ１の以上が下流のルータノードに波及する。この例では、図９に示した異常現象や人体に異常が生じることなく、単に会議室Room＃１にセンサノードＳ１〜Ｓ６移動してきたため、センサノードＳ１〜Ｓ６やルータノードＲ１は正常であるが、センサネットシステムの転送レートが過大となる場合を示す。
【００８８】
この場合、上述したように、緊急を要するイベントではないため、ルータノードＲ１がセンサノードＳ１〜Ｓ６を減速ノードとして選択することが望まれる。これにより、センサノードＳ１〜Ｓ６の送出レートを制限したり、ルータノードＲ１の転送レートを制限したりすることで、過大なった転送レートを抑制することができる。
【００８９】
センサノードＳ１〜Ｓ６で送出レートを制限する例としては、上記ａ１の測定間隔の増大や、ａ２のまとめ送りや、ａ３の見なし通信を行うことができる。また、ルータノードＲ１における転送レートの制限は、上記ｂ１の最大値、最小値、平均値のみの送信や、ａ２のイベントのまとめ送りを行うことができる。
【００９０】
本発明ではセンサネットシステムの転送レートが過大になると、ルータノード２またはゲートウェイ３が転送レートの異常を検知し、送出レートが過大になった送出レート超過ノードから転送レートの異常を検知したノードの間に減速処理実行ノードを設定し、この減速処理実行ノードが減速処理を実行する。または、送出レート超過ノードを減速処理実行ノードとして設定し、この送出レート超過ノードが送出レートを抑制するようにしてもよい。以下、ルータノード２またはゲートウェイ３で行われる減速処理を以下に説明する。
【００９１】
＜ソフトウェア構成＞
ルータノード２とゲートウェイ３の構成は、図３、図４に示したとおりであり、ルータノード２が無線ネットワーク６のみと通信を行うのに対して、ゲートウェイ３が無線ネットワーク６と有線ネットワーク７の双方で通信を行う点で相違するが、ルータノード２及びゲートウェイ３で実行される処理は、イベントまたはコマンドの転送処理と、転送レートの異常発生時の減速処理を同様に行う。以下の説明では、ルータノード２で実行される処理を説明し、ゲートウェイ３でも同様の処理を行うものとする。
【００９２】
図１１は、ルータノード２で実行されるソフトウェアの機能ブロック図である。図１１において、ルータノード２は、上流のノードからイベントを受信するイベント受信部２１７と、受信したイベントを下流のノードに送信するイベント転送部２１６と、下流のノードからコマンドを受信するコマンド受信部２２０と、受信したコマンドを上流のノードに送信するコマンド転送部２２１と、を備えてイベントとコマンドの転送を行う。なお、コマンド受信部２２０は、ルータノード２にセンサノード１が接続されている場合、このセンサノード１からコマンドも受信する。
【００９３】
ユーザ端末１３やセンサネットサーバ４から、当該ルータノード２に対するコマンドが送られてきた場合には、イベント加工部２１８により当該ルータノード２で実行する処理が設定される。例えば、当該ルータノード２がまとめ送りを行うコマンドを受信すると、イベント加工部２１８では、上流のノードから受信したイベントを一旦イベント蓄積部２１９にセンサノード１のＩＤ毎に格納する。そして、各ＩＤ毎に所定の数のイベントがイベント蓄積部２１９に蓄積されると、イベント加工部２１８は当該ＩＤの複数のイベントをまとめて下流のノードに送信する。
【００９４】
あるいは、当該ルータノード２が最大、最小、平均値で転送を行うコマンドを受信すると、イベント加工部２１８では、上流のノードから受信したイベントを一旦イベント蓄積部２１９にセンサノード１のＩＤ毎に格納する。そして、各ＩＤ毎に所定の数のイベントがイベント蓄積部２１９に蓄積されると、イベント加工部２１８は当該ＩＤのイベントに含まれる観測値の最大値と、最小値と平均値を演算し、これら３つのイベントをまとめて下流のノードに送信する。つまり、ひとつのセンサノード１からの情報量を削減して下流のノードに転送する。
【００９５】
あるいは、当該ルータノード２が見なし通信を行うコマンドを受信すると、イベント加工部２１８では、上流のセンサノードから受信したイベントを一旦イベント蓄積部２１９にセンサノード１のＩＤ毎に格納する。そして、イベント加工部２１８は各ＩＤ毎に変化率を演算し、センサノード１が起動する所定の周期毎にイベント加工部２１８が前回の値に変化率を乗じたものを、センサノード１の観測値として下流のルータノード２へ出力する。センサノード１は、上記所定の周期毎に起動して観測値を取得し、観測値の変化率が変化したときのみルータノード２へ観測値を送信する。この見なし通信では、センサノード１とルータノード２間のデータ転送量を削減することができる。
【００９６】
次に、ＰＲ（Parent Router）ブロック２１２は、上流のノードにセンサノード１が接続されているときに機能するものである。ＰＲブロック２１２は、コマンド受信部２２０が下流のノードから受信したコマンドのうち、当該ルータノード２の配下のセンサノード１宛のコマンドを抽出するコマンド抽出部２２２と、抽出したコマンドを格納するコマンド蓄積部２２３と、配下のセンサノード１からコマンドのダウンロード要求を受け付けて、このセンサノード１宛のコマンドがコマンド蓄積部２２３にあれば送信するコマンド要求受信部２２４と、を含む。
【００９７】
上記図７で説明したように、センサノード１は間欠的に起動してルータノード２と通信を行い、コマンドを要求する。コマンド要求受信部２２４は、コマンド抽出部２２２を介して要求元のセンサノード１のＩＤに対応するコマンドをコマンド蓄積部２２３から取得してセンサノード１に転送する。なお、コマンド要求受信部２２４は、センサノード１とのコマンドの送受信を、上記コマンド受信部２２０とコマンド転送部２２１から実行する。なお、コマンド蓄積部２２３は、例えば外部記憶装置２０２にコマンドを格納する。
【００９８】
次に、ルータノード２は、センサネットシステムの障害を検知して、減速処理の指令を行うＤＲ（Detected Router）ブロック２１１を備える。
【００９９】
ＤＲブロック２１１は、イベント受信部２１７が受信したイベントを解析して自ノードの転送レートが制限転送レートを超えたか否かを判定する制限転送レート判定部と、転送レートの異常を検知した場合には、当該ルータノード２が減速処理を指令する主体つまり境界ノードであるか否かを判定する境界ノード判定部と、当該ルータノードに接続されるセンサノードから送出レート超過ノードを特定する送出レート超過ノード特定部と、送出レート超過ノードまたは送出レート超過ノードを除くセンサノードの何れか一方から減速ノードを選択する減速ノード選択部と、減速ノードまたは減速ノードに接続される中継ノードの何れかから減速処理実行ノードを選択する減速処理実行ノード選択部と、を有するイベント解析部２１４を含む。さらに、イベント受信部２１７が受信したイベントの流入速度（転送レート）を測定し、測定結果を保持する流入量統計部２１３と、イベント解析部２１４により当該ルータノード２が減速処理の主体であると判定された場合に、減速処理を指令するコマンド発行部２１５を含んで構成される。
【０１００】
ルータノード２のＤＲブロック２１１で行われる減速処理は、転送レートの異常の検知及び減速処理の主体の決定と、送出レート超過ノードの決定と、減速量の決定からなり、以下に説明する。
【０１０１】
＜減速処理のフロー＞
図１２にルータノード２またはゲートウェイ３で実行される転送レートの異常検知と減速処理のフローチャートを示す。なお、この処理は所定の周期で繰り返して実行されるものである。以下では、減速処理の概要を説明した後に、各処理の詳細について説明していく。
【０１０２】
ルータノード２（またはゲートウェイ３）のＤＲブロック２１１では、受信したイベントの転送レート（以下、流入速度）を監視して、流入速度が所定の制限転送レートＶＬ以上となるとセンサネットシステムの転送レートに異常が発生したことを検知する（ステップ１００１）。
【０１０３】
次に、転送レートの異常を検知したノードのうち、いずれのノードで減速処理を実施するのかを判定するために転送レートの異常を検知した自ノードが、境界ノードであるか否かを判定する（ステップ１００２）。制限転送レートＶＬが各ルータノード２で共通である場合、自ノードで転送レートの異常を検知した場合には、下流のノードでも転送レートの異常を検知する。このため、減速処理の主体となるノードをひとつに絞るため、自ノードよりも下流で流入速度が異常となるノードを境界ノードとし、この境界ノードを減速処理の主体とする。
【０１０４】
境界ノードと判定されると、制限転送レートＶＬを超えた分の転送レートを低減するために、自ノードまたは自ノードよりも上流のノードで減速すべき転送レートを減速量ＶＲとして求める（ステップ１００３）。
【０１０５】
次に、境界ノードが受信したイベントに含まれるセンサノード１の識別子（ＩＤ）毎に流入速度（単位時間当たりのデータ送出量）を求め、この流入速度が後述する所定値を超えるセンサノード１を送出レートが過大なセンサノード（送出レート超過ノード）として特定する（ステップ１００４）。
【０１０６】
次に、境界ノードは予め設定された減速処理ルールから、送出レート抑制の対象となる減速ノードを選択する（ステップ１００５）。そして、減速処理を実行する減速処理実行ノードを予め設定した減速処理ルールから決定する（ステップ１００６）。これらの処理では、後述するように、送出レートが過大となった送出レート超過ノードが必ず抑制の対象となる訳ではなく、送出レート超過ノードのイベントを優先させる場合には、送出レート超過ノード以外のノードを減速ノードとして、送出レート超過ノードからの緊急のイベントを下流に転送する。また、減速ノードのイベントについて転送レートの削減を実行する減速処理実行ノードは、送出レート超過ノードが減速処理実行ノードとなる場合もあるが、境界ノードＤＲや親ルータＰＲや子ルータＣＲ等が減速処理実行ノードとなる場合もある。
【０１０７】
次に、ＤＲブロック２１１では、減速処理実行ノードで行う経路毎の減速量を比例減速量ｖRiとしてそれぞれ演算する（ステップ１００７）。比例減速量ｖRiは、上記ステップ１００３で求めた減速量ＶＲから、減速処理実行ノードに接続された上流のセンサノードの送出レートに比例した減速量をそれぞれ設定する。なお、減速処理実行ノードがひとつのセンサノード１の場合、比例減速量ｖRi＝減速量ＶＲとなる。
【０１０８】
そして、ＤＲブロック２１１では、決定した減速量でイベントの送出レートまたは転送レートを抑制するため、上記（３）のａ１〜ａ３、ｂ１に示した減速処理の内容を設定する（ステップ１００８）。なお、設定する減速処理の内容は減速処理実行ノードの種類に応じて設定してもよい。例えば、減速処理実行ノードがセンサノードであれば、ａ１の測定間隔の増大を設定し、ルータノード２であればａ２のまとめ送りを設定する。
【０１０９】
以上のように、境界ノードは減速処理実行ノードと送出レートの抑制対象となる減速ノードと、減速処理の内容を決定すると、減速処理実行ノードに対して減速処理のコマンドと減速ノードの情報を送信し、その情報を受信した減速処理実行ノードは減速処理を開始する（ステップ１００９）。
【０１１０】
次に、上記フローチャートの各ステップで行われる処理の詳細を以下に述べる。
【０１１１】
＜異常の検知及び境界ノードの決定＞
上記図１２のステップ１００１、１００２で行われる転送レートの異常検知の処理と、境界ノードの決定について説明する。
【０１１２】
ルータノード２のＤＲブロック２１１では、イベント受信部２１７がセンサノード１または上流のルータノード２から受信したイベントを、イベント解析部２１４が解析して単位時間当たりのデータ転送量が過大になったことを検知する。イベント解析部２１４は、流入量統計部２１３が測定したイベントの流入量（受信量）から単位時間当たりの受信量の総和を当該ルータノード２におけるイベントの流入速度（受信速度）として求める。ここで、イベントの受信量（流入量）は、例えば、パケット数やバイト数（またはオクテット数）で表すことができる。
【０１１３】
いま、図１３で示すように、無線ネットワーク６に６つのルータノードＲ２〜Ｒ７と、ゲートウェイＧＷ及びセンサノードＳ１を配置し、最も上流のルータノードＲ５にセンサノードＳ１とルータノードＲ２を接続し、ルータノードＲ５の下流にルータノードＲ６を接続している。なお、ルータノードＲ２には、図示しないセンサノードが接続されている。
【０１１４】
以下、センサノードの送出レートをvi、ルータノードの転送レートをＶiと表記する
。つまり、各Ｖiはそのルータノードに直属として接続されるセンサノードの送出レートviと上流のルータノードの転送レートの合計となる。例えばルータノードＲ2に2個の
センサノードが接続されており、それぞれの送出レートがｖ2とｖ3の場合、転送レートＶ2=ｖ2+ｖ3となる。
【０１１５】
ルータノードＲ５は、上流のセンサノードＳ１から流入速度ｖ１でイベントを受信し、上流のルータノードＲ２から流入速度Ｖ２でイベントを受信して、ｖ１＋Ｖ２の速度で下流のルータノードＲ６にイベントを転送する。
【０１１６】
ルータノードＲ６はルータノードＲ５とルータノードＲ３からイベントを受信し、下流のルータノードＲ７にイベントを転送する。ルータノードＲ３も図示しないセンサノードが接続されている。
【０１１７】
ルータノードＲ６は、上流のルータノードＲ５から流入速度ｖ１＋Ｖ２でイベントを受信し、上流のルータノードＲ３から流入速度Ｖ３でイベントを受信して、ｖ１＋Ｖ２＋Ｖ３の速度で下流のルータノードＲ７にイベントを送信する。
【０１１８】
ルータノードＲ７はルータノードＲ６とルータノードＲ４からイベントを受信し、下流のルーゲートウェイＧＷにイベントを転送する。ルータノードＲ４も図示しないセンサノードが接続されている。
【０１１９】
ルータノードＲ７は、上流のルータノードＲ６から流入速度ｖ１＋Ｖ２＋Ｖ３でイベントを受信し、上流のルータノードＲ４から流入速度Ｖ４でイベントを受信して、ｖ１＋Ｖ２＋Ｖ３＋Ｖ４の速度で下流のゲートウェイＧＷにイベントを送信する。
【０１２０】
いま、ルータノードＲ６のＤＲブロック２１１について着目する。センサネットシステムの異常を検知するには、図１１の流入量統計部２１３が測定した当該ルータノードＲ６へのセンサノードからの流入速度ｖｉの合計値Σｖｉと、予め設定した制限転送レートＶＬをイベント解析部２１４で比較する。また、各センサノード１のＩＤ毎に流入速度ｖｉを後述の（５）式で所定値εと比較する。
【０１２１】
イベント解析部２１４は、流入速度ｖｉの合計値Σｖｉが予め設定した制限転送レートＶＬ以上であれば、転送レートが過大であるためセンサネットシステムの異常と判定する。そして、各流入速度ｖｉのうち、後述する（５）式に該当するセンサノード１があれば、当該センサノード１のＩＤを転送レートな過大なノードとして特定する。つまり、流入量統計部２１３では、受信したイベントからセンサノード１のＩＤを抽出し、このＩＤ毎に流入速度を保持しておく。そして、イベント解析部２１４では、各センサノード１を送出レートのうち、後述する（５）式に該当するノードを送出レートが過大なセンサノード１として特定する。
【０１２２】
ここで、現在着目しているルータノードＲ６の流入速度ｖｉの合計値Σｖｉは、ｖ１＋Ｖ２＋Ｖ３であり、このルータノードＲ６の流入速度ｖiの合計値が制限転送レートＶＬ
以上であれば、下流のルータノードＲ７とゲートウェイＧＷもイベントの流入速度の合計値Σｖｉが制限転送レートＶＬ以上となり、ルータノードＲ６の下流のイベント転送経路上の全てのノードがセンサネットシステムの異常を判定する。センサネットシステムの異常を判定したルータノードいずれもが減速処理の主体となって減速処理の指令を出すことも可能であるが、減速処理の指令の重複を避けるため、以下のように自ノードが減速処理の主体であるかを判定する。
【０１２３】
あるノードに接続された直属のノードからの流入速度を∀ｖｎ、とすると自ノードの上流からの流入速度が正常（制限転送レートＶＬ未満）で、自ノードから下流への流入速度（転送レート）が制限転送レートＶＬ以上となるノードを、減速処理の主体となる境界ノードとする。直属のノードからの流入速度∀ｖｎが正常な場合の境界ノードの判定は次式により行う。
【０１２４】
【数１】
2008042458.tif 000003
【０１２５】
あるノードの直属のノードの流入速度∀ｖｎは、制限転送レートＶＬ未満であるが、各センサノードの流入速度ｖｉの合計値Σｖｉが制限転送レートＶＬ以上となるノードが、減速処理の主体となるべき境界ノードとして判定できる。つまり、上記（１）式を満足するノードが境界ノードとなる。なお、図１３のルータノードＲ６において、
ｎ＝１：ｖ１＋Ｖ２、
ｎ＝２：Ｖ３
として扱う。他のノードでも同様であり、ｎは上流側とのひとつの接続を示す。
【０１２６】
例えば、図１３において、
ルータノードＲ５から流入速度ｖ１＋Ｖ２＜ＶＬ
配下のルータノードＲ３からの流入速度Ｖ３＜ＶＬ
の状態で、いずれの流入速度ｖｎも制限転送レートＶＬ未満で正常な場合でも、
合計値Σｖｉ＝ｖ１＋Ｖ２＋Ｖ３＞ＶＬ
となる場合には、ルータノードＲ６のイベント解析部２１４は、自ノードが境界ノードと判定できる。この場合、ルータノードＲ６の下流のルータノードＲ７、ゲートウェイＧＷでは、上流からの一つの流入速度ｖｎが制限転送レートＶＬ以上となり上記（１）式を満足しないため、センサネットシステムの異常は検知するものの、減速処理の主体にはならないことを判定できる。つまり、ルータノードＲ７、ゲートウェイＧＷでは、ルータノードＲ６から受信するイベントの流入速度が制限転送レートＶＬを超えてしまうので、上記（１）を満たさない。
【０１２７】
このように、減速処理の主体となるルータノードの重複を避けることにより、減速処理を実行するセンサノードまたは中継ノード（減速処理実行ノード）に重複して減速指令が出されることを防ぐことができ、センサノードが送出する情報をできるだけ廃棄または遅延送信することなく、サーバ計算機側に転送することができる。
【０１２８】
なお、境界ノードでは、上流から受信したイベントについて、センサノード１のＩＤ毎に流入速度を求め、流入速度が後述の（５）式を満足するセンサノード１があれば、このセンサノード１の識別子を送出レートが過大なセンサノード１として特定しておく。
【０１２９】
また、上記制限転送レートＶＬはルータノード２の処理能力の上限値から、所定の安全率などを考慮して決定したもので、流入速度ｖｉの合計値Σｖｉが制限転送レートＶＬを超えても即座にルータノード２が停止しない値に予め設定したものである。
【０１３０】
＜減速量の演算＞
次に、上記ステップ１００３で行われる減速量の演算処理について説明する。自ノードが境界ノードと判定したルータノード２のイベント解析部２１４では、自ノードまたは自ノードよりも上流のノードで流入速度ｖｉを抑制すべき減速量ＶＲを次式により求める。
【０１３１】
【数２】
2008042458.tif 000004
【０１３２】
減速量ＶＲは、送出レート超過ノードの流入速度ｖｉを減算する値であり、自ノードから下流のノードへの流入速度（転送レート）＝Σｖｉが制限転送レートＶＬを超えた分を設定する。
【０１３３】
このように、比例減速量を定めることによりデータが完全に破棄されることを防ぎ、できる限り下流へ転送することが可能になる。
【０１３４】
＜比例減速量の演算＞
続いて、上記ステップ１００７で行われる比例減速量の演算処理について説明する。減速処理実行ノードのイベント解析部２１４では、自ノードが下流に転送する転送レートΣｖｉと、センサノードが送出するそれぞれのイベントの送出レートｖｉとから、次式によりそれぞれのイベント流入速度の比例減速量ｖRiを求める。
【０１３５】
【数３】
2008042458.tif 000005
【０１３６】
すなわち、図１３では、ルータノードＲ６が境界ノードの場合では、ルータノードＲ６の配下にある各センサノードの送出レートｖiと合計値Σｖｉに対する比率に応じた比例
減速量ｖRiを、上記（３）式から算出する。つまり、送出レートｖｉが大きいほどセンサノードの比例減速量ｖRiも大きくなる。
【０１３７】
＜送出レート超過ノードの特定＞
イベントの流入速度を上記（３）式で一律に規制してもよいが、正常なセンサノードからのイベントが取得できなくなる可能性がある。そこで、以下のように正常なセンサノードと送出レート超過ノードの特定を行う。
【０１３８】
正常なセンサノードからのイベントの流入速度ｖｉは低いため、次式により送出レート（流入速度ｖｉ）の低いセンサノードを正常なセンサノードとして特定し、この正常なセンサノードに対する減速処理を解除しておく。
【０１３９】
【数４】
2008042458.tif 000006
【０１４０】
上記（４）式において、εはルータノード２の性能やセンサネットシステムの仕様などに応じて予め設定した値であり、送出レートの低い正常なセンサノードの比例減速量ｖRiを０と見なして送出レート超過ノードから除外するための値である。
【０１４１】
なお、上記（４）式で比例減速量ｖRiを０に設定したセンサノードの送出レートｖｉは、上記（２）式と（３）式の合計値Σｖｉから除外しておく。
【０１４２】
次に、送出レート超過ノードは、次式により特定する。
【０１４３】
【数５】
2008042458.tif 000007
【０１４４】
すなわち、上記（５）式により、単位時間当たりのデータ送出量の合計値Σｖｉと該当ノードの単位時間当たりのデータ送出量ｖｉの比に、減速量ＶＲを乗じた値が所定値εを超えるセンサノードを、送出レート超過ノードとして特定する。
【０１４５】
＜減速処理ルール＞
次に、上記図１２のステップ１００５、１００６で行われる減速ノードの選択と減速処理実行ノードの選択処理について説明する。
【０１４６】
ここで、送出レート超過ノードと減速処理実行ノードの関係を説明するため、無線ネットワーク６上の各ノードを図１４のように定義する。図１４において、転送レートの異常を検知して、かつ、境界ノードとなったルータノード２を転送レート超過検出ルータ（Detected Router）ＤＲとする。転送レート超過検出ルータＤＲのひとつ上流のルータノードを子ルータ（Child Router）ＣＲとする。送出レートを減速する対象となったセンサノード１を送出レート超過センサノードとし、送出レート超過センサノードを配下に接続したルータノード２を送出レート超過センサノードの親ルータ（Parent Router）ＰＲとする。なお、転送レートの異常を検知して、かつ、境界ノードとなったゲートウェイ３は転送レート超過検出ゲートウェイとなる。
【０１４７】
次に、減速処理実行ノードの一例としては、図１５に示すように、減速処理のルール名２１０１と、速度規制を実施するノードの種類を示した減速ノード２１０２と、減速処理を行う減速処理実行ノード２１０３を定義した減速処理ルールテーブル２１００を用いることができる。この減速処理ルールテーブル２１００は、ルータノード２及びゲートウェイ３のＤＲブロック２１１にそれぞれ予め設定されたものである。そして、本実施形態では、減速処理ルールテーブル２１００をイベント解析部２１４に格納しておき、予め設定された減速処理ルール（以下、単にルールと呼ぶ）１〜６のうち、使用するルールをユーザ端末１３等から予め設定しておく。図１５に例示した各ルールの概要は、次の通りである。
【０１４８】
ルール１は、送出レートが過大となった送出レート超過ノードを減速ノードとし、転送レート超過検出ルータＤＲを減速処理実行ノードとする。送出レート超過ノードからのイベントを境界ノードＤＲで減速する。図１４において、例えば、送出レート超過センサノードや親ルータＰＲ、子ルータＣＲから受信したイベントについて、転送レート超過検出ルータＤＲが当該イベントの転送レートを減速する。なお、減速の処理については後述する。
【０１４９】
ルール２は、送出レートが過大となった送出レート超過ノードを除くノードを減速ノードとし、転送レート超過検出ルータＤＲを減速処理実行ノードとする。例えば、図９において、送出レート超過ノードがセンサノードＳ６、Ｓ７、Ｓ１０、Ｓ１１でルータノードＲ２が境界ノードの場合、ルータノードＲ２は、送出レート超過ノード以外のセンサノードＳ２、Ｓ３、Ｓ１４、Ｓ１５からのイベントに対して減速処理を実行することで、送出レート超過ノードからのイベントを優先して転送する。すなわち、観測値を伝えたいセンサノードを優先することができ、例えば、火災などの警報（あるいは緊急事態）を検知するセンサノードの観測値を伝達するのに適する。
【０１５０】
ルール３は、送出レートが過大となった送出レート超過ノードで減速処理を実行する。つまり、送出レート超過センサノードで測定間隔を増大したり、まとめ送りや見なし通信を実行したりすることで、送出レートが過大となったセンサノードからのイベントの流入速度を低減する。
【０１５１】
ルール４は、送出レートが過大となった送出レート超過ノード以外のノードを減速ノードとし、送出レート超過ノード以外のノードで減速を実行する。例えば、図９において、送出レート超過ノードがセンサノードＳ６、Ｓ７、Ｓ１０、Ｓ１１の場合、送出レート超過ノード以外のセンサノードＳ２、Ｓ３、Ｓ１４、Ｓ１５で減速処理（送出レートの低減）を実行することで、送出レート超過ノードのイベントを優先して転送する。この場合もルール２と同様に、観測値を伝えたいノードを優先することができ、例えば、火災などの警報（あるいは緊急事態）を検知するセンサノードの観測値を伝達するのに適する。
【０１５２】
ルール５は、送出レートが過大となった送出レート超過ノードを減速ノードとし、境界ノードＤＲの子ルータＣＲが送出レート超過ノードからのイベントについて減速処理を実行する。
【０１５３】
ルール６は、送出レートが過大となった送出レート超過ノードを減速ノードとし、送出レート超過ノードの親ルータＰＲが、送出レート超過ノードからのイベントについて減速処理を実行する。
【０１５４】
上述したように、送出レート超過ノードを減速ノードとするルール１、３、５、６（以下ルールＡ）は、送出レート超過ノードの情報が緊急でない場合に選択され、送出レート超過ノード以外のセンサノードを減速ノードとするルール２、４（以下ルールＢ）は、送出レート超過ノードの情報が緊急である場合に選択されることが望ましい。
【０１５５】
上記緊急であるか否かの判断をシステムで具体的に実行する構成としては、予めユーザ端末で設定することができる。例えば、ユーザにとってイベント型のセンサノードから送出される情報が重要なら予めルールＢを設定することができるし、消費電力を抑えるためにセンサノードをイベント型に設定している場合には、大量に送出されるイベントを重要でないため、予めルールＢを設定することができる。さらには、間欠型のセンサノードから送出される情報は重要でないとみなして、予めルールＡを設定することができる。さらには、イベントごとつまりセンサノードのセンサのＩＤごとにルール１〜６の何れかを設定しておくことも可能である。
【０１５６】
さらに、境界ノードが所定の規則に基づいて何れか一つのルールを選択することもできる。例えば、センシング対象のデータ種類に対応するフラグがデータに付されている場合、境界ノードのイベント解析部は記憶されたフラグとルールの対応テーブルに基づいて、何れかのルールを選択することができる。
【０１５７】
また、センサノードのイベント加工部がイベントを解析し、所定の条件を満たすイベント（例えば、測定値が急激に変化したイベント）に対応するルールを示すフラグを付け、境界ノードのイベント解析部が該フラグに基づいて該ルールを選択することができる。
【０１５８】
また、サーバが受信したイベントを解析し、所定の条件を満たすイベント（例えば、測定値が急激に変化しているイベントなど）を発行するセンサノードを特定し、該センサノードの情報を優先するルールを選択する旨のコマンドを上流のルータノードに送ることもできる。
【０１５９】
以上のように、複数のセンサノードが混在するセンサネットシステムにおいても、状況に応じて優先すべきデータを収集することができる。
【０１６０】
図１２のステップ１００５、１００６では、以上のように減速処理ルールテーブル２１００に設定されたルールから境界ノードが減速ノードと減速処理実行ノードを選択する。
【０１６１】
次に、上記各ルール１〜６の詳細について、以下に説明する。
【０１６２】
＜ルール１＞
図１６は上記ルール１を適用したセンサネットシステムの減速処理の一例を示す。図中ルータノードＲ１にはセンサノードＳ１、Ｓ２が接続され、ルータノードＲ２にはセンサノードＳ３、Ｓ４が接続され、ルータノードＲ３にはセンサノードＳ５、Ｓ６が接続され、ルータノードＲ４にはセンサノードＳ７、Ｓ８が接続される。そしてルータノードＲ１、Ｒ２の下流にはルータノードＲ５が接続され、ルータノードＲ３、Ｒ４の下流にはルータノードＲ６が接続される。さらに、ルータノードＲ５、Ｒ６の下流にはルータノードＲ７が接続されて、ルータノードＲ７の下流にはルータノードＲ８とゲートウェイＧＷが直列に接続される。
【０１６３】
図中ルータノードＲ７は、上記（１）式よりルータノードＲ５、Ｒ６の流入速度の和が制限転送レートＶＬ以上となり、かつ、ルータノードＲ５からの流入速度とルータノードＲ６からの流入速度がそれぞれ制限転送レートＶＬ未満であるので、境界ノードとなる。
【０１６４】
ルール１では、境界ノードＤＲであるルータノードＲ７が特定した送出レート超過ノードからのイベントを、境界ノードＤＲで転送レートを抑制する。このため、境界ノードＤＲと判定されたルータノードＲ７では、上流のルータノードＲ５、Ｒ６からのイベントのうち、受信したイベントに含まれるセンサノード１のＩＤ毎に求めた送出レートｖｉから上記（５）式を満足するノードを減速ノード＝送出レート超過ノードとして判定する。
【０１６５】
ルール１を適用する図１６の例では、センサノードＳ３からの単位時間当たりのデータ転送量が上記（５）式を満足し、過大となっていた場合を示す。ルータノードＲ７では、上記図１２のステップ１００７で求めた比例減速量ｖRiとなるように、減速処理を実施する。
【０１６６】
ルータノードＲ７では、上記＜ルータノードのハードウェア構成＞の（３）で述べた減速処理のうち、
ｂ１：送出レート超過ノードからの観測情報の最大値、最小値、平均値の３つに削減
ａ２：観測情報のまとめ送り
のいずれかを実行する。上記３つの処理の何れを選択するかについては、センサネットシステムの管理者などがユーザ端末１３等から予め設定した処理を実行する。
【０１６７】
例えば、このルール１の減速処理として、上記ｂ１の減速処理が設定されていた場合、送出レート超過となったセンサノードＳ３からの観測値をルータノードＲ７で一旦記憶し、上記図１２のステップ１００７で求めた比例減速量ｖRiとなるような周期で、記憶した観測値の最大値、最小値、平均値を求め、下流のルータノードＲ８へ出力することで、ルータノードＲ７の下流へのデータ転送量が制限転送レートＶＬを超えるのを抑制する。
【０１６８】
上記ａ２のまとめ送りの場合も、センサノードＳ３からのイベントをルータノードＲ７で一旦記憶し、上記図１２のステップ１００７で求めた比例減速量ｖRiとなるような周期で、下流のルータノードＲ８へ複数の観測値をまとめて送信する。
【０１６９】
このルール１では、以上のｂ１、ａ２のいずれかの処理により、ルータノードＲ７から下流のノードへのデータ転送量が過大になるのを抑制できる。なお、ルータノードＲ７では、減速処理を開始した後には、後述する減速処理からの復帰処理を実行して、送出レート超過となったセンサノードＳ３からのデータ送出量が所定のしきい値未満または上記（４）式を満足する時点で、減速処理を終了して通常の処理に復帰すればよい。
【０１７０】
＜ルール２＞
図１７は上記ルール２を適用したセンサネットシステムの減速処理の一例を示す。センサノードＳ１〜Ｓ８、ルータノードＲ１〜Ｒ８及びゲートウェイＧＷの構成は、上記図１６と同様である。
【０１７１】
図１７の例では、ルータノードＲ２に接続されたセンサノードＳ３からの単位時間当たりのデータ転送量が上記（５）式を満足し、過大となっていた場合を示す。
【０１７２】
ルータノードＲ７は、上記（１）式よりルータノードＲ５、Ｒ６の流入速度の和が制限転送レートＶＬ以上となり、かつ、ルータノードＲ５からの流入速度とルータノードＲ６からの流入速度がそれぞれ制限転送レートＶＬ未満であるので、境界ノードとなる。
【０１７３】
ルール２では、境界ノードＤＲが特定した送出レート超過ノード以外のノードを減速ノードとし、これらのノード１からのイベントを、境界ノードＤＲで転送レートを抑制する。このため、境界ノードＤＲと判定されたルータノードＲ７では、上流のルータノードＲ５、Ｒ６からのイベントのうち、送出レートが上記（５）式に該当するセンサノードＳ３以外のセンサノードＳ１、Ｓ２、Ｓ４〜Ｓ８を減速ノードとして判定する。ルータノードＲ７は、これらの減速ノードからのデータ転送量について、上記（３）式から求めた比例減速量ｖRiとなるように減速処理を実施する。
【０１７４】
ルータノードＲ７では、上記＜ルータノードのハードウェア構成＞の（３）で述べた減速処理のうち、
ｂ１：送出レート超過ノード以外からの観測情報の最大値、最小値、平均値の３つに削減
ａ２：観測情報のまとめ送り
のいずれかを実行する。上記３つの処理の何れを選択するかについては、センサネットシステムの管理者などがユーザ端末１３等から予め設定した処理を実行する。
【０１７５】
例えば、このルール２の減速処理として、上記ｂ１の減速処理が設定されていた場合には、減速ノードであるセンサノードＳ１、Ｓ２、Ｓ４〜Ｓ８のそれぞれについて、上記図１２のステップ１００７で比例減速量ｖRiを求める。
【０１７６】
そして、減速ノードであるセンサノードＳ１、Ｓ２、Ｓ４〜Ｓ８からの観測値をルータノードＲ７で一旦記憶し、上記比例減速量ｖRiとなるような周期で、記憶した観測値の最大値、最小値、平均値を求め、下流のルータノードＲ８へ出力することで、ルータノードＲ７の下流へのデータ転送量が制限転送レートＶＬを超えるのを抑制する。
【０１７７】
上記ａ２のまとめ送りの場合も、減速ノードのセンサノードＳ１、Ｓ２、Ｓ４〜Ｓ８からのイベントをルータノードＲ７で一旦記憶し、上記図１２のステップ１００７で求めた比例減速量ｖRiとなるような周期で、下流のルータノードＲ８へ複数の観測値をまとめて送信する。
【０１７８】
このルール２では、以上のｂ１、ａ２のいずれかの処理により、ルータノードＲ７から下流のノードへのデータ転送量が過大になるのを抑制しながら、送出レート超過が発生したセンサノードＳ３の観測値をセンサネットサーバ４へ送信することができる。なお、ルータノードＲ７では、減速処理を開始した後には、後述する減速処理からの復帰処理を実行して、送出レート超過となったセンサノードＳ３からのデータ転送量が上記（４）式を満足する時点で、減速ノードに設定されたセンサノードＳ１、Ｓ２、Ｓ４〜Ｓ８の減速処理を終了して通常の処理に復帰すればよい。
【０１７９】
このような処理により、例えば火災の発生による温度の急激な上昇といった緊急の情報を優先してサーバ計算機側に転送することができ、ユーザにとって重要な情報を破棄または遅延送信することなく、伝達することができる。
【０１８０】
＜ルール３＞
図１８は上記ルール３を適用したセンサネットシステムの減速処理の一例を示す。センサノードＳ１〜Ｓ８、ルータノードＲ１〜Ｒ８及びゲートウェイＧＷの構成は、上記図１６と同様である。
【０１８１】
図中ルータノードＲ７は、上記（１）式よりルータノードＲ５、Ｒ６の流入速度の和が制限転送レートＶＬ以上となり、かつ、ルータノードＲ５からの流入速度とルータノードＲ６からの流入速度がそれぞれ制限転送レートＶＬ未満であるので、境界ノードとなる。
【０１８２】
ルール３では、境界ノードＤＲが特定した送出レート超過ノードを減速ノードとして、送出レート超過ノードに減速を指令し、転送レートを抑制させる。このため、境界ノードＤＲと判定されたルータノードＲ７では、上流のルータノードＲ５、Ｒ６からのイベントのうち、受信したイベントに含まれるセンサノード１のＩＤ毎に求めた転送レートが上記（５）式を満足し、過大となっていたノードを送出レート超過ノードとして判定する。この例では、センサノードＳ３からの単位時間当たりのデータ転送量が過大となっていた場合を示す。そして、ルータノードＲ７では、センサノードＳ３のデータ転送量に基づいて比例減速量ｖRiを求める。ルータノードＲ７は、センサノードＳ３にデータ転送量が比例減速量ｖRiの分だけ低減するよう減速処理の実行を指令する。ルータノードＲ７は、上記＜ルータノードのハードウェア構成＞の（３）で述べた減速処理のうち、
ａ１：センサノード１の測定間隔を増大
ａ２：観測情報のまとめ送り
ａ３：センサノード１とルータノード２の間で見なし通信
のいずれかを、減速ノードであるセンサノードＳ３に指令する。上記３つの処理の何れを選択するかについては、センサネットシステムの管理者などがユーザ端末１３等から予め設定した処理を実行する。
【０１８３】
例えば、このルール３の減速処理として、上記ａ１の減速処理が設定されていた場合、ルータノードＲ７は、上記図１２のステップ１００７で求めた比例減速量ｖRiとなるようなセンサノードＳ３の測定間隔を演算し、センサノードＳ３に対して測定間隔を演算した値へ変更するようにコマンドを送信する。これにより、センサノードＳ３は測定間隔を増大することで単位時間当たりのデータ送出量を削減し、この結果、ルータノードＲ７における単位時間当たりのデータ転送量を制限転送レートＶＬ未満に抑制できる。
【０１８４】
ルール３の減速処理として上記ａ２のまとめ送りが設定されていた場合は、上記図１２のステップ１００７で求めた比例減速量ｖRiとなるように、センサノードＳ３が観測値を保持する個数を、まとめて送る観測値の数として求める。つまり、求めた個数にセンサノードＳ３の測定間隔を乗じた値が、センサノードＳ３がイベントをまとめて送信する間隔となる。ルータノードＲ７は、センサノードＳ３に対して上記求めたまとめ送りの個数と、まとめ送りの個数を指令する。
【０１８５】
これにより、センサノードＳ３は測定間隔毎に観測値を保持し、観測値が上記まとめ送りの個数に達する度に、一つのイベントで複数の観測値を送信することで単位時間当たりのデータ転送量を削減し、この結果、ルータノードＲ７における単位時間当たりのデータ転送量を制限転送レートＶＬ未満に抑制できる。
【０１８６】
ルール３の減速処理として上記ａ３のみなし通信が設定されていた場合は、ルータノードＲ７はセンサノードＳ３に対してみなし通信の開始を指令する。
【０１８７】
これにより、センサノードＳ３は所定の測定間隔毎に観測値を取得し、前回の観測値との差分（変化率）が変化していなければ観測値の送信を行わずにスリープ状態に移行する。一方、センサノードＳ３は、取得した観測値と前回の観測値との差分（変化率）が変化していたときにのみ観測値を送信する。
【０１８８】
ルータノードＲ７では、少なくとも２つの観測値をセンサノードＳ３から取得した後は、この２つの観測値の差分を変化率とし、センサノードＳ３の所定の測定間隔毎に観測値を変化率に基づいて演算して下流のルータノードＲ８へ送信する。
【０１８９】
したがって、観測値の変化率が変わらない期間では、送出レート超過ノードとなったセンサノードＳ３はイベントを送信することがなくなって、センサノードＳ３からの単位時間当たりのデータ送出量を削減し、この結果、ルータノードＲ７へ流入する単位時間当たりのデータ転送量を制限転送レートＶＬ未満に抑制できる。
【０１９０】
このルール３では、以上のａ１、ａ２、ａ３のいずれかの処理により、ルータノードＲ７へ流入するイベントのデータ転送量が過大になるのを抑制できる。なお、ルータノードＲ７では、減速処理を開始した後には、後述する減速処理からの復帰処理を実行して、送出レート超過となったセンサノードＳ３からのデータ転送量が上記（４）式を満足する時点で、減速処理を終了して通常の処理に復帰すればよい。
【０１９１】
また、上記減速処理の内容（ａ１〜ａ３）については境界ノードＤＲで設定せずに、減速ノードであるセンサノード１で設定または選択するようにしても良い。この場合、境界ノードＤＲは、比例減速量ｖRi（または減速量ＶＲ）と減速開始のコマンドをセンサノードＳ３へ送ればよい。
【０１９２】
すなわち、図２２で示すように、上記図１２のステップ１００６〜１００８を省略し、ステップ１００９Ａでは、境界ノードＤＲから減速ノードであるセンサノードＳ３に減速コマンドを送信する。
【０１９３】
減速コマンドを受信したセンサノードＳ３では（１０１１）、減速処理の内容を選択（または設定）し（１０１２）、送出レートの抑制を開始する（１０１３）。
【０１９４】
このような処理により、センサノード自身が送出レートを調整することができ、センサノードがデータを大量に送出する状況が一時的ではなく継続する場合にも、通信障害の発生を防ぐことができる。
【０１９５】
＜ルール４＞
図１９は上記ルール４を適用したセンサネットシステムの減速処理の一例を示す。センサノードＳ１〜Ｓ８、ルータノードＲ１〜Ｒ８及びゲートウェイＧＷの構成は、上記図１６と同様である。
【０１９６】
図中ルータノードＲ７は、上記（１）式よりルータノードＲ５、Ｒ６の流入速度の和が制限転送レートＶＬ以上となり、かつ、ルータノードＲ５からの流入速度とルータノードＲ６からの流入速度がそれぞれ制限転送レートＶＬ未満であるので、境界ノードとなる。
【０１９７】
ルール４では、境界ノードＤＲが特定した送出レート超過ノードを除くセンサノードを減速ノードとし、減速処理の実行ノードは減速ノードとなる。図１９の例では、センサノードＳ３が送出レート超過ノードとなった例を示し、ルータノードＲ７が送出レート超過ノード以外のセンサノードＳ１、Ｓ２、Ｓ４〜Ｓ８に送出レートの抑制を指令し、送出レート超過ノードを除くセンサノードのデータ送出レートを抑制させる。
【０１９８】
このため、境界ノードＤＲと判定されたルータノードＲ７では、上流のルータノードＲ５、Ｒ６からのイベントのうち、受信したイベントに含まれるセンサノード１のＩＤ毎に求めた転送レートが上記（５）式を満足し、転送レートが過大となっていたセンサノードＳ３を送出レート超過ノードとして判定する。
【０１９９】
そして、ルール４では、上記図１２のステップ１００５において、ルータノードＲ７は、受信したイベントに含まれるセンサノードのＩＤが送出レート超過ノードであるセンサノードＳ３を除くＳ１、Ｓ２、Ｓ４〜Ｓ８を減速ノードとして選択する。また、図１２のステップ１００６では、ルータノードＲ７は、減速処理実行ノードとして減速ノードを設定する。ルータノードＲ７は、上記図１２のステップ１００７で、これらの減速ノードからのデータ転送量について、上記（３）式から求めた比例減速量ｖRiとなるように減速処理を指令する。
【０２００】
ルータノードＲ７では、上記＜ルータノードのハードウェア構成＞の（３）で述べた減速処理のうち、
ａ１：センサノード１の測定間隔を増大
ａ２：観測情報のまとめ送り
ａ３：センサノード１とルータノード２の間で見なし通信
のいずれかを、減速ノードであるセンサノードＳ１、Ｓ２、Ｓ４〜Ｓ８にそれぞれ指令する。上記３つの処理の何れを選択するかについては、センサネットシステムの管理者などがユーザ端末１３等から予め設定した処理を実行する。
【０２０１】
例えば、このルール４の減速処理として、上記ａ１の減速処理が設定されていた場合、ルータノードＲ７は、それぞれの減速ノードについて上記図１２のステップ１００７で求めた比例減速量ｖRiとなるようなセンサノードの測定間隔を演算し、センサノードＳ１、Ｓ２、Ｓ４〜Ｓ８に対して測定間隔を上記演算した値へ変更するようにコマンドを送信する。これにより、センサノードＳ１、Ｓ２、Ｓ４〜Ｓ８は測定間隔を増大することで単位時間当たりのデータ転送量を削減し、この結果、ルータノードＲ７における単位時間当たりのデータ転送量を制限転送レートＶＬ未満に抑制できる。
【０２０２】
ルール４の減速処理として上記ａ２のまとめ送りが設定されていた場合は、ルータノードＲ７は各減速ノードのデータ転送量が上記図１２のステップ１００７で求めた比例減速量ｖRiとなるように、センサノードＳ３が観測値を保持する個数を、まとめて送る観測値の数として求める。つまり、求めた個数にセンサノードＳ３の測定間隔を乗じた値が、センサノードＳ１、Ｓ２、Ｓ４〜Ｓ８がイベントをまとめて送信する間隔となる。ルータノードＲ７は、センサノードＳ１、Ｓ２、Ｓ４〜Ｓ８に対して上記求めたまとめ送りの個数と、まとめ送りの個数を指令する。
【０２０３】
これにより、センサノードＳ１、Ｓ２、Ｓ４〜Ｓ８は測定間隔毎に観測値を保持し、観測値が上記まとめ送りの個数に達する度に、一つのイベントで複数の観測値を送信することで単位時間当たりのデータ転送量を削減し、この結果、ルータノードＲ７における単位時間当たりのデータ転送量を制限転送レートＶＬ未満に抑制できる。
【０２０４】
ルール４の減速処理として上記ａ３のみなし通信が設定されていた場合は、ルータノードＲ７はセンサノードＳ１、Ｓ２、Ｓ４〜Ｓ８に対してみなし通信の開始を指令する。
【０２０５】
これにより、センサノードＳ１、Ｓ２、Ｓ４〜Ｓ８は所定の測定間隔毎に観測値を取得し、前回の観測値との差分（変化率）が変化していなければ観測値の送信を行わずにスリープ状態に移行する。一方、センサノードＳ１、Ｓ２、Ｓ４〜Ｓ８は、取得した観測値と前回の観測値との差分（変化率）が変化していたときにのみ観測値を送信する。
【０２０６】
ルータノードＲ７では、少なくとも２つの観測値をセンサノードＳ１、Ｓ２、Ｓ４〜Ｓ８から取得した後は、この２つの観測値の差分を変化率とし、センサノードＳ１、Ｓ２、Ｓ４〜Ｓ８の所定の測定間隔毎に観測値を変化率に基づいて演算して下流のルータノードＲ８へ送信する。
【０２０７】
したがって、観測値の変化率が変わらない期間では、送出レート超過ノードとなったセンサノードＳ１、Ｓ２、Ｓ４〜Ｓ８はイベントを送信することがなくなって、センサノードＳ１、Ｓ２、Ｓ４〜Ｓ８からの単位時間当たりのデータ転送量を削減し、この結果、ルータノードＲ７へ流入する単位時間当たりのデータ転送量を制限転送レートＶＬ未満に抑制できる。
【０２０８】
このルール４では、以上のａ１、ａ２、ａ３のいずれかの処理により、ルータノードＲ７へ流入するイベントのデータ転送量が過大になるのを抑制できる。なお、ルータノードＲ７では、減速処理を開始した後には、後述する減速処理からの復帰処理を実行して、送出レート超過となったセンサノードＳ３からのデータ転送量が上記（４）式を満足するようになった時点で、減速ノードであるセンサノードＳ１、Ｓ２、Ｓ４〜Ｓ８に対して減速処理を終了するコマンドを送信して通常の処理に復帰すればよい。
【０２０９】
また、上記減速処理の内容（ａ１〜ａ３）については境界ノードＤＲで設定せずに、上記ルール３の図２２と同様に、減速ノードであるセンサノード１で設定または選択するようにしても良い。この場合、境界ノードＤＲは、比例減速量ｖRiと減速開始のコマンドを減速ノードのセンサノードへ送ればよい。
【０２１０】
このような処理により、ルール２と同様にユーザにとって有用な情報を破棄または遅延送信することなく、伝達することができる。さらにはルール３と同様に、センサノードがデータを大量に送出する状況が一時的ではなく継続する場合にも、通信障害の発生を防ぐことができる。
【０２１１】
＜ルール５＞
図２０は上記ルール５を適用したセンサネットシステムの減速処理の一例を示す。センサノードＳ１〜Ｓ８、ルータノードＲ１〜Ｒ８及びゲートウェイＧＷの構成は、上記図１６と同様である。
【０２１２】
図中ルータノードＲ７は、上記（１）式よりルータノードＲ５、Ｒ６の流入速度の和が制限転送レートＶＬ以上となり、かつ、ルータノードＲ５からの流入速度とルータノードＲ６からの流入速度がそれぞれ制限転送レートＶＬ未満であるので、境界ノードとなる。
【０２１３】
ルール５では、境界ノードＤＲが特定した送出レート超過ノードの下流にあるノードのうち、境界ノードＤＲの子ルータＣＲを減速処理実行ノードとする。境界ノードＤＲは、送出レート超過ノードの下流にあたる子ルータＣＲに対して減速処理を指令する。
【０２１４】
このため、境界ノードＤＲと判定されたルータノードＲ７では、上流のルータノードＲ５、Ｒ６からのイベントのうち、受信したイベントに含まれるセンサノード１のＩＤ毎に求めた送出レートが上記（５）式を満足し、過大となっているノードを送出レート超過ノードとして判定する。この例では、センサノードＳ３からの単位時間当たりのデータ転送量が過大となっていた場合を示す。そして、ルータノードＲ７では、センサノードＳ３のデータ転送量に基づいて比例減速量ｖRiを求める。ルータノードＲ７は、送出レート超過ノードとして特定したセンサノードＳ３のデータを送信する子ルータＣＲとしてルータノードＲ５を減速処理実行ノードとして選択する。
【０２１５】
境界ノードＤＲのルータノードＲ７は、データ転送量が比例減速量ｖRiの分だけ低減するよう減速処理の実行を指令する。ルータノードＲ７は、上記＜ルータノードのハードウェア構成＞の（３）で述べた減速処理のうち、
ｂ１：送出レート超過ノードからの観測情報の最大値、最小値、平均値の３つに削減
ａ２：観測情報のまとめ送り
のいずれかを実行する。上記３つの処理の何れを選択するかについては、センサネットシステムの管理者などがユーザ端末１３等から予め設定した処理を実行する。
【０２１６】
例えば、このルール５の減速処理として、上記ｂ１の減速処理が設定されていた場合、送出レート超過となったセンサノードＳ３からの観測値を子ルータＣＲであるルータノードＲ５で一旦記憶し、上記図１２のステップ１００７で求めた比例減速量ｖRiとなるような周期で、記憶した観測値の最大値、最小値、平均値を求め、下流の境界ノードＤＲであるルータノードＲ７へ出力することで、ルータノードＲ７の下流へのデータ転送量が制限転送レートＶＬを超えるのを抑制する。
【０２１７】
上記ａ２のまとめ送りの場合も、センサノードＳ３からのイベントを子ルータＣＲであるルータノードＲ５で一旦記憶し、上記図１２のステップ１００７で求めた比例減速量ｖRiとなるような周期で、下流のルータノードＲ７へ複数の観測値をまとめて送信する。
【０２１８】
このルール５では、以上のｂ１、ａ２のいずれかの処理により、ルータノードＲ５から下流のノードへのデータ転送量が過大になるのを抑制できる。なお、ルータノードＲ５では、減速処理を開始した後には、後述する減速処理からの復帰処理を実行して、送出レート超過となったセンサノードＳ３からのデータ転送量が上記（４）式を満たすようになった時点で、減速処理を終了して通常の処理に復帰すればよい。
また、上記減速処理の内容（ｂ１、ａ２）については境界ノードＤＲで設定せずに、減速ノードである子ルータＣＲで設定または選択するようにしても良い。この場合、境界ノードＤＲは、減速量ＶＲと減速開始のコマンドをセンサノードＳ３へ送ればよい。
【０２１９】
すなわち、図２３で示すように、上記図１２のステップ１００６〜１００８を省略し、ステップ１００９Ｂでは、境界ノードＤＲから減速ノードである子ルータＣＲに減速コマンドを送信する。
【０２２０】
減速コマンドを受信した子ルータＣＲでは（１０２１）、減速処理の内容を選択（または設定）し（１０２２）、転送レートを抑制する（１０２３）。
【０２２１】
＜ルール６＞
図２１は上記ルール６を適用したセンサネットシステムの減速処理の一例を示す。センサノードＳ１〜Ｓ８、ルータノードＲ１〜Ｒ８及びゲートウェイＧＷの構成は、上記図１６と同様であり、ルータノードＲ２に移動可能なセンサノードＳ３、Ｓ４に加えてＳ９〜Ｓ１２が接続した例を示す。
【０２２２】
図中ルータノードＲ７は、上記（１）式よりルータノードＲ５、Ｒ６の流入速度の和が制限転送レートＶＬ以上となり、かつ、ルータノードＲ５からの流入速度とルータノードＲ６からの流入速度がそれぞれ制限転送レートＶＬ未満であるので、境界ノードとなる。
【０２２３】
ルール６では、境界ノードＤＲが特定した送出レート超過ノードの上流にあるセンサノードのうち、送出レート超過ノードの下流で接続した親ルータＰＲを減速処理実行ノードとする。境界ノードＤＲは、送出レート超過ノードの下流で接続された親ルータＰＲに対して減速処理を指令する。
【０２２４】
このため、境界ノードＤＲと判定されたルータノードＲ７では、上流のルータノードＲ５、Ｒ６からのイベントのうち、受信したイベントに含まれるセンサノード１のＩＤ毎に求めた送出レートが上記（５）式を満足し、過大となっているノードを送出レート超過ノードとして判定する。この例では、センサノードＳ３、Ｓ４、Ｓ９〜Ｓ１２からの単位時間当たりのデータ転送量が過大となっていた場合を示す。そして、ルータノードＲ７では、センサノードＳ３、Ｓ４、Ｓ９〜Ｓ１２のデータ転送量に基づいて比例減速量ｖRiを求める。ルータノードＲ７は、送出レート超過ノードとして特定したセンサノードＳ３、Ｓ４、Ｓ９〜Ｓ１２のデータを転送する親ルータＰＲとしてルータノードＲ２を減速処理実行ノードとして選択する。
【０２２５】
境界ノードＤＲのルータノードＲ７は、データ転送量が比例減速量ｖRiの分だけ低減するよう減速処理の実行を親ルータであるルータノードＲ２に指令する。ルータノードＲ７は、上記＜ルータノードのハードウェア構成＞の（３）で述べた減速処理のうち、
ｂ１：送出レート超過ノードからの観測情報の最大値、最小値、平均値の３つに削減
ａ２：観測情報のまとめ送り
のいずれかを実行する。上記３つの処理の何れを選択するかについては、センサネットシステムの管理者などがユーザ端末１３等から予め設定した処理を実行する。
【０２２６】
例えば、このルール６の減速処理として、上記ｂ１の減速処理が設定されていた場合、送出レート超過となったセンサノードＳ３、Ｓ４、Ｓ９〜Ｓ１２からの観測値を親ルータＰＲであるルータノードＲ２で一旦記憶し、上記図１２のステップ１００７で求めた比例減速量ｖRiとなるような周期で、記憶した観測値の最大値、最小値、平均値を求め、下流の境界ノードＤＲであるルータノードＲ７へ出力することで、ルータノードＲ７の下流へのデータ転送量が制限転送レートＶＬを超えるのを抑制する。
【０２２７】
上記ａ２のまとめ送りの場合も、センサノードＳ３、Ｓ４、Ｓ９〜Ｓ１２からのイベントを親ルータＰＲであるルータノードＲ２で一旦記憶し、上記図１２のステップ１００７で求めた比例減速量ｖRiとなるような周期で、下流のルータノードＲ７へ複数の観測値をまとめて送信する。
【０２２８】
このルール５では、以上のｂ１、ａ２のいずれかの処理により、ルータノードＲ２から下流のノードへのデータ転送量が過大になるのを抑制できる。なお、ルータノードＲ２では、減速処理を開始した後には、後述する減速処理からの復帰処理を実行して、送出レート超過となったセンサノードＳ３、Ｓ４、Ｓ９〜Ｓ１２からのデータ転送量がそれぞれ上記（４）式を満たすようになった時点で、減速処理を終了して通常の処理に復帰すればよい。
【０２２９】
このような処理は、多数のセンサノードが１のルータノードに集中して接続した場合に特に有効である。
【０２３０】
なお、図２１において、一つのルータノードＲ２に多数のセンサノードＳ３、Ｓ４、Ｓ９〜Ｓ１２が集中して接続した場合で、各センサノードからのデータ転送量がそれぞれ上記（４）式を満たし、かつ、ルータノードＲ２の下流へのデータ転送量が制限転送レートＶＬ以上の場合には、親ルータＰＲであるルータノードＲ２が境界ノードＤＲとなり、上記ルール１を適用してルータノードＲ２で減速処理を行うことができる。
【０２３１】
また、上記減速処理の内容（ｂ１、ａ２）については境界ノードＤＲで設定せずに、上記ルール５の図２３と同様に、減速ノードである親ルータＰＲで設定または選択するようにしても良い。この場合、境界ノードＤＲは、比例減速量ｖRiと減速開始のコマンドを減速処理実行ノードの親ルータＰＲへ送ればよい。
【０２３２】
次に、親ルータＰＲで減速処理としてまとめ送りを行う場合の処理の一例について以下に説明する。
【０２３３】
図２４〜図２７は、親ルータＰＲで実行される処理の一例を示すフローチャートである。図２４は、上流のノードからイベントを受信する度に実行される処理である。図２４のステップ１０３１で上流のノードからイベントを受信すると、親ルータＰＲは予め設定したカウンタをインクリメントする（１０３２）。そして、現在、まとめ送り処理が選択されているか否かを判定し（１０３３）、まとめ送り処理が選択されていればメモリ２０１等にイベントを蓄積し（１０３４）、まとめ送り処理が選択されていなければイベントを下流のルータノードへ転送する（１０３５）。
【０２３４】
図２５は、下流の境界ノードＤＲから減速コマンドを受信したときに実行される処理である。親ルータＰＲは減速コマンドを受信すると（１０４１）、予め設定したタイマ２を起動する（１０４２）。タイマ２は所定の周期（例えば１分）で割り込みを発生して後述する処理を実行する。また、親ルータＰＲは、タイマ２がセットされると、予め設定されたタイマ１を起動して、減速処理（まとめ送り）の監視を所定の周期（例えば、１分）で実行する。
【０２３５】
図２６は、タイマ２の割り込みによって実行されるまとめ送り処理の一例を示すフローチャートである。タイマ２は所定の周期毎に割り込みを発生して当該処理を起動する（１０５１）。ステップ１０５２では、メモリ２０１上に蓄積されたイベントの有無を判定し、イベントが蓄積されていれば、複数のイベント（観測値など）をまとめたイベントを生成し（１０５３）、下流のルータノードへ複数のイベントをまとめた情報を送信する（１０５４）。
【０２３６】
次に、図２７は、上記タイマ２の割り込みにより周期的に実行される監視処理である。タイマ１の割り込みによって当該処理が起動される（１０６１）。図２４のステップ１０３２でイベントの数をカウントするカウンタの値が制限転送レートＶＬよりも大きいか否かを判定する（１０６２）。ここで、カウンタはタイマ１の周期（ここでは、１分）毎の受信イベント数を示し、単位時間当たりのデータ転送量として扱う。そして、制限転送レートＶＬは、単位時間当たりのイベント転送量として親ルータＰＲに予め設定されたものである。カウンタの値が制限転送レートＶＬよりも大きければ、減速処理を継続するためにステップ１０６５へ進んでまとめ送り処理を設定する。その後、カウンタを０にリセットして処理を終了する（１０６６）。
【０２３７】
一方、上記ステップ１０６２カウンタの値が制限転送レートＶＬ以下の場合には、ステップ１０６３へ進み、減速処理を解除するための上記しきい値ＶＬａと比較する（１０６４）。現在のデータ転送量（カウンタの値）がしきい値ＶＬａ未満であれば減速処理を終了するため、まとめ送り処理を解除し（１０６４）、カウンタを０にリセットして処理を終了する。一方、現在のデータ転送量（カウンタの値）がしきい値ＶＬａ以上であれば減速処理を継続するため、まとめ送り処理を設定し（１０６５）、カウンタを０にリセットして処理を終了する。
【０２３８】
以上の処理により、親ルータＰＲでは、減速処理を受けるとまとめ送り処理を開始し、現在のデータ転送量を示すカウンタの値が所定のしきい値ＶＬａ未満になると、まとめ送り処理を終了して減速処理を停止し、通常の動作（イベントの転送）に復帰するのである。
【０２３９】
＜減速処理からの復帰処理＞
次に、上記ルール１、２、５、６の減速処理実行ノードで行われる復帰処理の一例を図２８のフローチャートに示す。図２８は、減速処理実行ノードがルータノード２またはゲートウェイ３の場合の処理を示す。
【０２４０】
減速処理を開始してから（１０１１）、ルータノード２では送出レート超過ノードからの流入速度を検出する（１０１２）。そして、ステップ１０１３では、減速処理を終了するためのしきい値ＶＬａと送出レート超過ノードの流入速度ｖｉを比較して、流入速度ｖｉがしきい値ＶＬａ未満であれば正常な状態に復帰したと判定する。流入速度ｖｉがしきい値ＶＬａ以上であれば、送出レートが過大な状態が継続しているので、ステップ１０１１に復帰して上記処理を繰り返す。一方、送出レート超過ノードからの流入速度ｖｉがしきい値ＶＬａ未満になっていれば、減速処理を停止し（１０１４）、通常の動作に復帰する（１０１５）。なお、しきい値ＶＬａは、制限転送レートＶＬよりも小さい値に設定し、減速処理と通常動作のハンチングが生じるのを防ぐ。
【０２４１】
また、ルール１、２のように減速処理実行ノードが境界ノードの場合には、該境界ノードの転送レートが制限転送レートＶＬよりも小さくなった場合に、減速処理を停止してもよい。
【０２４２】
また、ルール３、４のように減速処理実行ノードがセンサノード１の場合、自ノードが送信する送出レートが過大であるか否かを判定しないため、当該センサノード１の親ルータＰＲ（あるいは境界ノードＤＲ）が所定の時間間隔（例えば、３０分）毎に、一旦減速処理を中断して通常動作に戻す。そして、通常動作の送出レートがしきい値ＶＬａ以上であれば、再びセンサノード１の減速処理を再開させる。一方、通常動作に戻したときの送出レートがしきい値ＶＬａ未満であれば、そのまま通常動作に復帰させて減速処理を終了させるようにしても良い。
【０２４３】
＜データフォーマット＞
本発明のセンサネットシステムで使用するパケットのデータフォーマットについて以下に説明する。
【０２４４】
図２９は、パケット８のデータフォーマットを示し、パケット８はヘッダ８１とペイロード８２及びチェックサム８３から構成される。ヘッダ８１は、プリアンブル８１１と、ペイロードの容量を示すサイズ８１２と、送信先のＩＤ（例えば、ＭＡＣアドレス）を格納する送信先ＩＤ８１３と、送信元のＩＤ（例えば、ＭＡＣアドレス）を格納する送信元ＩＤ８１４と、パケットの種別を示す識別子を格納するメッセージＩＤ８１５と、メッセージの種類を格納するメッセージ種類８１６と、パケット８のシーケンス番号を格納するシーケンス番号８１７を含む。
【０２４５】
単独のパケットでひとつの観測値を送信する際のパケット８を図３０に示す。送信元ＩＤ８１４には、センサノード１のＩＤが格納され、送信先ＩＤにはゲートウェイ３のＩＤが格納される。そして、メッセージＩＤ８１５には観測値を示す「OBSERVED」が格納され、メッセージ種類８１６にはイベントを示す「ＥＶＴ」が格納される。ペイロード８２には、観測値８２１と観測値を取得した時刻８２２が格納される。
【０２４６】
次に、上記まとめ送り処理で用いられるパケット８のデータフォーマットを図３１、図３２に示す。まとめ送り処理では、図３１で示すように、一つのセンサノード１からの観測値を測定間隔毎に複数個まとめた時間方向まとめ送りイベントと、図３２で示すように、複数のセンサノード１の観測値をまとめた空間方向まとめ送りイベントの２つがある。
【０２４７】
時間方向まとめ送りイベントのフォーマットは、図３１で示すように。送信元ＩＤには、ひとつのセンサノード１のＩＤが格納され、メッセージＩＤ８１５には時間方向まとめ送りイベントを示す「ＧＡＴＦＨＥＲＤ−Ｔ」が格納される。
【０２４８】
ペイロード８２には、データの繰り返し数８２０と、繰り返し数８２０に応じた複数組の観測値８２１と時刻８２２が格納される。この時間方向まとめ送りイベントにより、一回の送信でひとつのセンサノード１の複数のイベントを送信することができる。
【０２４９】
空間方向まとめ送りイベントのフォーマットは、図３２で示すように。送信元ＩＤには、複数のセンサノード１が接続された親ルータＰＲのＩＤが格納され、メッセージＩＤ８１５には空間方向まとめ送りイベントを示す「ＧＡＴＦＨＥＲＤ−Ｓ」が格納される。
【０２５０】
ペイロード８２には、データの繰り返し数８２０と、繰り返し数８２０に応じた複数組のノードＩＤ８２３、観測値８２１と時刻８２２が格納される。この空間方向まとめ送りイベントにより、一回の送信で複数のセンサノード１のイベントを送信することができる。
【０２５１】
次に、ペイロード８２に格納される観測値や時刻を表すために用いられる可変バイト長整数（MBI：Multi Byte Integer）を図３３、図３４に示す。図３３は、可変バイト長整数のフォーマットを示し、０ビットに継続フラグを格納し、１〜７ビットに整数部を格納する。継続フラグが１であれば、１〜７ビットの整数部と、後に続く１バイト（オクテット）のデータの１〜７ビットの整数部を結合すること意味する。そして、図３４で示すように、継続フラグが０のバイトまでがひとつのデータとなる。図３４では、３バイトの可変バイト長整数を結合した例を示し、継続フラグが０のバイトの７ビット目を最下位ビットとして、３つのバイトの１〜７ビット目を結合した値がひとつの整数を示す。
【０２５２】
図３５は、データの表記を示し、温度と時刻を絶対値と相対値で示したものである。相対値ｒはある基準値からの差分のみを記載することでデータ長を短くすることができる。そして、ＭＢＩと組み合わせることで、まとめ送りイベントのデータ量を削減できる。
【０２５３】
図３６は、単独のイベントを格納したパケット８を１０回送る例を示す。パケット８のペイロード８２には、絶対値で格納された観測値８２１が２バイト、時刻が４バイトでヘッダー８１が１０バイト、チェックサム８３が２バイトの計１８バイト（オクテット）でひとつのデータを構成する。このパケット８を１０個送信すると、１８０バイトとなる。
【０２５４】
図３７は時間方向まとめ送りイベントのパケット８を示し、ペイロード８２には、基準となる観測値Ｖａ８２１が絶対値で２バイト、基準となる時刻Ｔａ８２２が絶対値で４バイトのデータ格納され、その後方には、繰り返し数８２０に応じた組数の観測値の相対値Ｖｒ８２４と時刻の相対値Ｔｒ８２５がそれぞれ１バイトで格納される。ヘッダー８１が１０バイト、ＩＤが２バイト、繰り返し数８２０が１バイトとすると、１０組の観測値と時刻を示すまとめ送りイベントは、３９バイトとなり、図３６に示した単独観測イベントを１０回送るよりも遙かに少ないデータ量で同量のデータ（イベント）を送信することができ、単位時間当たりのデータ転送量を削減できるのである。
【０２５５】
図３８は、空間方向まとめ送りイベントのパケット８を示す。ペイロード８２には、基準となるノードのＩＤ８１４と基準となる観測値Ｖａ８２１が絶対値で２バイト、基準となる時刻Ｔａ８２２が絶対値で４バイトのデータ格納され、その後方に繰り返し数８２０に応じた組数の、ノードＩＤ８２６が２バイト、観測値の相対値Ｖｒ８２４と時刻の相対値Ｔｒ８２５がそれぞれ１バイトで格納される。ヘッダー８１が１０バイト、ＩＤ８１３が２バイト、繰り返し数８２０が１バイトとすると、１０組の観測値と時刻を示すまとめ送りイベントは、５９バイトとなり、図３６に示した単独観測イベントを１０回送るよりも遙かに少ないデータ量で同量のデータ（イベント）を送信することができ、単位時間当たりのデータ転送量を削減できるのである。    ＜第２実施形態＞
図３９は、第２の実施形態を示し、前記第１の実施形態では送出レート超過ノードを特定してから減速ノードや減速処理実行ノードを決定していたのに対し、本第２の実施形態では送出レート超過ノードを特定せずに減速処理を行う点で相違する。その他の構成は前記第１実施形態と同様である。
【０２５６】
図３９は、第２の実施形態を適用するセンサネットシステムの減速処理の一例を示す。センサノードＳ１〜Ｓ８、ルータノードＲ１〜Ｒ８及びゲートウェイＧＷの構成は、前記第１実施形態の図１６と同様である。
【０２５７】
図中センサノードＳ３、Ｓ５、Ｓ６は単位時間当たりのデータ転送量が過大になった送出レート超過ノードであり、ルータノードＲ７は、上記（１）式よりルータノードＲ５、Ｒ６の流入速度の和が制限転送レートＶＬ以上となり、かつ、ルータノードＲ５からの流入速度とルータノードＲ６からの流入速度がそれぞれ制限転送レートＶＬ未満であるので、境界ノードとなった例を示す。
【０２５８】
第２の実施形態では、境界ノードＤＲは送出レート超過ノードを特定せず、上流のセンサノード１の全てを減速ノード及び減速処理実行ノードとみなして送出レートの抑制を指令する。センサノード１では、上記図７で示したように、所定の測定間隔（例えば、５分）毎にタイマの割り込みで起動して、観測値の測定及び送信と、コマンドの受信と実行を終えると再び休眠状態に移行する。すなわち、図４０で示すように、所定の測定間隔Ｔが経過すると、休眠状態のセンサノードＳ１は起動して、センサか観測値を取得してイベントとして親ルータＰＲへ送信する（Ｔ１）。イベントの送信が完了すると、センサノードＳ１は、自ノード宛のコマンドを要求し、親ルータＰＲに自ノード宛のコマンドがあれば、親ルータＰＲから当該コマンドを取得して実行する（Ｔ２）。このＴ２の処理を、自ノード宛のコマンドがなくなるまで繰り返した後（Ｔ３）、再び休眠状態へ移行する。
【０２５９】
ここで、センサノード１の単位時間当たりのデータ転送量が過大なるときには、センサノード１の測定間隔Ｔが通常よりも大幅に短くなり、例えば、通常の測定間隔が５分の場合、送出レート超過ノードの測定間隔が１０秒などになる。このためセンサノード１が送信するデータ転送量が過大になるのである。
【０２６０】
このような送出レート超過ノードでは、図４０のＴ２に示したコマンド要求の間隔Ｔ２’−Ｔ２も、測定間隔Ｔの短縮に応じて短くなる。そこで、第２の実施形態では、送出レート超過ノードが発生すると、境界ノードＤＲは、当該境界ノードＤＲよりも上流の親ルータＰＲに対して全てのセンサノードに対する減速コマンドを発行しておく。この後、送出レート超過ノードは測定間隔Ｔが非常に短いため、親ルータＰＲに対して頻繁にコマンドを要求する。このため、測定間隔Ｔが短い送出レート超過ノードは、高い確率で減速コマンドを受信し、当該減速コマンド実行することになる。
【０２６１】
そして、境界ノードＤＲの単位時間当たりのデータ転送量が制限転送レートＶＬ未満になると、上流の親ルータＰＲに対して減速コマンドの削除を発行する。減速正常なセンサノードの測定間隔Ｔは、送出レート超過ノードよりも長い周期であるため、親ルータＰＲにコマンドを要求したときには、高い確率で減速コマンドが削除されているため、減速コマンドを受信する可能性が低くなり、通常の動作を継続することができる。
【０２６２】
以上の例を図３９で説明する。境界ノードＤＲと判定されたルータノードＲ７では、上流のルータノードＲ５、Ｒ６からのイベントが過大になっている。このとき、センサノードＳ３、Ｓ５、Ｓ６が上記（５）式を満たす送出レート超過ノードであるが、ルータノードＲ７は送出レート超過ノードを特定していない。
【０２６３】
ルータノードＲ７は、上流のルータノードＲ５、Ｒ６へイベントを出力する各センサノードＳ１〜Ｓ８の親ルータＰＲとしてのルータノードＲ１〜Ｒ４に対して、全てのセンサノードＳ１〜Ｓ８に当てて減速コマンドを発行する。
【０２６４】
減速コマンドを受信した親ルータＰＲは、センサノードＳ１〜Ｓ８がコマンドを要求するのを待つ。送出レート超過ノードであるセンサノードＳ３、Ｓ５、Ｓ６は、測定間隔Ｔが極めて短いので、センサノードＳ３が親ルータＰＲであるルータノードＲ２から減速コマンドを受信して実行し、センサノードＳ５、Ｓ６が親ルータＰＲであるルータノードＲ３から減速コマンドを受信して実行する。この結果、境界ノードＤＲの単位時間当たりのデータ転送量は制限転送レートＶＬ未満となる。境界ノードＤＲは、転送レートが制限転送レートＶＬを下回ったことから、上流の親ルータＰＲに対して減速コマンドの削除を指令する。この時点で、図３９の送出レート超過ノードであるセンサノードＳ３宛の減速コマンドと、センサノードＳ５、Ｓ６宛の減速コマンドは、既に受信されているのでルータノードＲ２、Ｒ３には存在しない。したがって、親ルータＰＲのうち、ルータノードＲ２ではセンサノードＳ４宛の減速コマンドを削除し、ルータノードＲ１、Ｒ４では全ての減速コマンドを削除する。
【０２６５】
この後に、正常なセンサノードＳ１、Ｓ２、Ｓ４、Ｓ７、Ｓ８が親ルータＰＲにコマンドを要求しても、減速コマンドは削除されているので、これらの正常なセンサノードは減速を実施することがない。
【０２６６】
したがって、境界ノードＤＲは送出レート超過ノードを特定することなく、単位時間当たりのデータ送出量が過大になったセンサノード１のみを減速（送出レートの抑制）させて、当該境界ノードＤＲの単位時間当たりのデータ転送量を制限転送レートＶＬ未満に抑制することができるのである。
【０２６７】
図４１は、境界ノードＤＲと親ルータＰＲ及びセンサノード１で実行される処理の一例を示すフローチャートである。
【０２６８】
境界ノードＤＲとなるルータノード２では、前記第１実施形態の（１）式から自ノードへのイベントの流入速度が制限転送レートＶＬ以上で、かつ、各入力が制限転送レートＶＬ未満であれば自ノードが境界ノードＤＲであると判定し、減速処理を開始する（１１０１）。
【０２６９】
境界ノードＤＲでは、前記第１実施形態と同様に、上記（２）式及び（３）式から減速量ＶＲと比例減速量ｖRiを演算する（１１０２、１１０３）。そして、境界ノードＤＲは上流の全てのセンサノード宛に比例減速量ｖRiを含む減速コマンドを送信する（１１０４）。
【０２７０】
図４２は、減速コマンドのパケット８のデータフォーマットを示し、パケット８は前記第１実施形態の図２９と同様に、ヘッダ８１とペイロード８２及びチェックサム８３から構成される。ヘッダ８１は、プリアンブル８１１と、ペイロードの容量を示すサイズ８１２と、送信先のＩＤ（例えば、ＭＡＣアドレス）を格納する送信先ＩＤ８１３と、送信元のＩＤ（例えば、ＭＡＣアドレス）を格納する送信元ＩＤ８１４と、パケットの種別を示す識別子を格納するメッセージＩＤ８１５と、メッセージの種類を格納するメッセージ種類８１６と、パケット８のシーケンス番号を格納するシーケンス番号８１７を含む。送信先ＩＤには境界ノードＤＲの上流の親ルータＰＲのＩＤが格納され、送信元ＩＤには当該境界ノードＤＲのＩＤが格納される。そして、メッセージＩＤ８１５には減速を示す「ＬＩＭＩＴ」が格納され、メッセージ種類８１６にはコマンドを示す「ＣＭＤ」が格納される。ペイロード８２には、比例減速量ｖRiが格納される。
【０２７１】
図４１において、境界ノードＤＲは、減速コマンドを発行した後には、流入速度ｖｉの合計値Σｖiを監視して、前記第１実施形態と同様に、この合計値Σｖｉが所定のしきい
値ＶＬ未満になると、流入速度ｖｉが正常になったことを判定する（１１０５）。つまり、減速コマンドにより上流のセンサノードで減速（送出レートの抑制）が完了したことを判定する。
【０２７２】
次に、境界ノードＤＲは、減速コマンドを削除するコマンド（減速キャンセルコマンド）を上流のノードに送信する（１１０６）。これにより、正常なセンサノードで送出レートの抑制が行われるのを抑制する。
【０２７３】
図４３は、減速キャンセルコマンドのパケット８のデータフォーマットを示し、パケット８は上記図４２と同様に、ヘッダ８１とペイロード８２及びチェックサム８３から構成される。送信先ＩＤには境界ノードＤＲの上流の親ルータＰＲのＩＤが格納され、送信元ＩＤには当該境界ノードＤＲのＩＤが格納される。そして、メッセージＩＤ８１５には減速のキャンセルを示す「ＣＡＮＣＥＬ」が格納され、メッセージ種類８１６にはコマンドを示す「ＣＭＤ」が格納される。この場合、ペイロード８２はない。
【０２７４】
上記ステップ１１０４で境界ノードＤＲが発行した減速コマンドは、上流のノード間で順次転送されて親ルータＰＲへ配信される。例えば、図３９に示すセンサネットシステムでは、境界ノードＤＲとなったルータノードＲ７が、ルータノードＲ５、Ｒ６へ減速コマンドを送信する。ルータノードＲ５、Ｒ６は受信した減速コマンドを、上流のノードへ転送し、また、自ノードにセンサノード１が接続されていれば減速コマンドを蓄積する。
【０２７５】
ルータノードＲ５、Ｒ６の上流のルータノードＲ１〜Ｒ４は、自ノードよりも上流にルータノード２がないので、減速コマンドを蓄積する。センサノードＳ１〜Ｓ８の親ルータＰＲであるルータノードＲ１〜Ｒ４では、図４１のステップ１２０１〜１２０６の処理を実行する。
【０２７６】
まず、親ルータＰＲは下流のノードから減速コマンドを受信し（１２０１）、当該減速コマンドを図１１に示したＰＲブロック２１２のコマンド蓄積部２２３に蓄積する。そして、親ルータＰＲは、配下のセンサノードが所定の測定間隔で起動して、コマンド要求を受信すると（１２０３）、コマンド蓄積部２２３に格納されている減速コマンドをセンサノードへ送信する（１２０４）。
【０２７７】
親ルータＰＲで蓄積される減速コマンドの一例を図４４に示す。親ルータＰＲのコマンド蓄積部２２３では、境界ノードＤＲから配信された減速コマンドから制限値である比例減速量ｖRiを抽出する。そして、比例減速量ｖRiに親ルータＰＲの配下のセンサノード数に応じたコマンドフラグをセットする。なお、コマンドフラグは、センサノードのＩＤと一意に対応付けておく。そして、センサノードが減速コマンドを受信すると、このセンサノードのＩＤに対応するフラグをセットして、コマンドを与えたセンサノードを識別する。
【０２７８】
図４１において、親ルータＰＲは、下流のノードから減速キャンセルコマンドを受信すると（１２０５）、コマンド蓄積部２２３に格納されていた減速コマンドを削除する（１２０６）。したがって、減速キャンセルコマンドを受信した後に、親ルータＰＲにコマンドを要求したセンサノードには減速コマンドを送信することはない。
【０２７９】
次に、センサノードで行われる処理の一例を、図４１のフローチャートに基づいて説明する。センサノードは前記第１実施形態でも述べたように、所定の測定間隔で割り込みをかけるタイマによって間欠的に起動する（１３０１、１３０２）。センサ１０７から観測値を取得すると、センサノードは観測値をイベントとして親ルータＰＲであるルータノードＲ２に送信する（１３０３）。センサノードは、イベントの送信が完了すると、当該センサノード宛のコマンドをルータノードＲ２に要求する（１３０４）。そして、この時点でルータノードＲ２に減速コマンドが蓄積されていればセンサノードは減速コマンドを受信する（１３０５）。
【０２８０】
次に、センサノードは、減速処理の内容を決定する（１３０６）。減速処理の内容は前記第１実施形態と同様に、
ａ１：センサノード１の測定間隔を増大
ａ２：観測情報のまとめ送り
ａ３：見なし通信
のいずれか一つである。なお、減速処理の内容決定は、比例減速量ｖRiの大きさに応じて上記ａ１〜ａ３のいずれかを選択しても良いし、予め設定された処理を行うようにしても良い。
【０２８１】
次に、センサノードは決定した減速処理を実行して減速を開始し（１３０７）、その後休眠状態へ移行する（１３０８）。この減速の開始は、例えば、減速処理が上記ａ１であれば、測定間隔を増大してタイマにセットし、上記ａ２であれば、まとめて送るイベントの数をセットする。あるいは、減速処理が上記ａ３であれば、観測値の前回値と現在値を比較して変化率を求め、変化率が更新されたときに、親ルータＰＲであるルータノードＲ２に観測値を送信するように設定する。
【０２８２】
図４５は、上記図３９に示したセンサネットシステムで境界ノードＤＲ（ルータノードＲ７）が減速コマンドを発行する際のタイムチャートである。
【０２８３】
図４５においてルータノードＲ７は、上流のセンサノードＳ３から大量のイベントを受信し、時刻Ｔ１０で、ルータノードＲ７はイベントの流入速度ｖｉの合計値Σｖｉが制限転送レートＶＬを超え、センサネットシステムの転送レートに異常が発生したことを検知する。そして、ルータノードＲ７は自ノードが境界ノードＤＲであることを判定すると、時刻Ｔ１１で減速コマンドを上流の親ルータＰＲであるルータノードＲ１、ルータノードＲ２に送信する。
【０２８４】
親ルータＰＲであるルータノードＲ１、Ｒ２では、ルータノードＲ７から受信した減速コマンドを一旦蓄積し、センサノードがアクセスするまで待機する。ここで、送出レート超過ノードとなっているセンサノードＳ３は、極めて短い測定周期ＴａでルータノードＲ２へイベントを送信し、コマンドを要求する。このため、ルータノードＲ２が減速コマンドを蓄積した直後の時刻Ｔ１２で、センサノードＳ３はルータノードＲ２にコマンドを要求し、減速コマンドを取得する。減速コマンドを取得したセンサノードＳ３は、減速コマンドを実行し、上述のように所定の減速処理を実施する。減速処理の内容が例えば測定間隔の増大の場合は、測定間隔を図中Ｔｂに拡大して、このセンサノードＳ３が送信する単位時間当たりのデータ転送量を低減する（時刻Ｔ１３）。
【０２８５】
境界ノードＤＲであるルータノードＲ７は、減速コマンドを発行した後、イベントの流入速度ｖｉを監視して合計値Σｖｉが制限転送レートＶＬを下回ると、センサネットシステムの転送レートが正常な状態に復帰したと判定する（時刻Ｔ１４）。ルータノードＲ７は、センサネットシステムの転送レートが正常に復帰したので、時刻Ｔ１５で減速キャンセルコマンドを上流の親ルータＰＲに発行して、これ以上の減速（送出レートの抑制）を防ぐ。
【０２８６】
そして、正常なセンサノードＳ１は、通常の測定間隔（例えば、５分）毎に親ルータＰＲであるルータノードＲ１にアクセスし、イベントの送信後にコマンドを要求する（時刻Ｔ１６）。このときルータノードＲ１は、ルータノードＲ７からの指令で減速コマンドの削除が完了されているため、正常なセンサノードが減速処理を開始することを防ぐのである。
【０２８７】
以上のように、第２実施形態によれば、送出レート超過ノードの特定などを行うことなく単位時間当たりのデータ送出量が過大となったセンサノードの減速を実現できる。つまり、送出レートを抑制するセンサノードを上記（５）式を満たすか満たさないかで一律に決定することなく、単位時間当たりのデータ送出量が過大である順に送出レートを抑制することができる。そして、送出レートが過大でないセンサノードが減速コマンドを受信する確率は低いため、該センサノードから送信される情報を可能な限りリアルタイムで転送しながら、センサネットシステムの通信経路の負荷が過大になるのを防ぐことができる。例えば、複数のセンサノードの単位時間当たりのデータ送出量がほとんど同じである場合であっても、転送レートを抑制するために必要十分なセンサノードを送出レート抑制の対象とするができ、センサノードからの情報を可能な限り転送することができる。
【０２８８】
＜第３実施形態＞
図４６、図４７は、第３の実施形態を示し、前記第１の実施形態に示したゲートウェイ３及びセンサネットサーバ４を複数備えたセンサネットシステムを示す。本第３実施形態では、サーバ間で行われるイベントの転送について、前記第１実施形態に示したルータノード間の減速処理を適用する例を示す。
【０２８９】
ゲートウェイ３の上流には前記第１実施形態の図１に示したセンサノード１とルータノード２及び無線ネットワーク６からなるＰＡＮ（Personal Area Network）６０が接続され、センサノード１からのイベントが下流のゲートウェイ３に転送される。
【０２９０】
各ゲートウェイ３の下流には、上流から転送されたイベントを収集するセンサネットサーバ４が有線ネットワーク７を介して接続される。
【０２９１】
センサネットサーバ４の下流には、センサネットサーバ４が収集したイベントを利用する上位サーバ４１が有線ネットワーク７を介して接続される。なお、上位サーバ４１は、複数のセンサネットサーバ４からイベントを受信する。上位サーバ４１の下流には、アプリケーションサーバ４２が有線ネットワーク７を介して接続される。アプリケーションサーバ４２は、上位サーバ４１からのイベントを受信し、図示しない下流の計算機へイベントを転送する。上位サーバ４１やアプリケーションサーバ４２あるいはセンサネットサーバ４では、受信したイベントに加工を施した情報を新たなイベントして下流の計算機へ送信することができる。
【０２９２】
ＰＡＮ６０から送信されたセンサノード１からのイベントは、ゲートウェイ３から下流のセンサネットサーバ４に収集され、さらに上位サーバ４１及びアプリケーションサーバ４２へイベントが転送される。
【０２９３】
ここで、上位サーバ４１及びアプリケーションサーバ４２の構成は、図４７で示すように、センサネットサーバ４と同様の構成である。
【０２９４】
図４７は、上位サーバ４１またはアプリケーションサーバ４２の構成を示すブロック図である。
【０２９５】
図４７において、上位サーバ４１またはアプリケーションサーバ４２は、サーバ間でイベントの転送を行う上位のサーバノードとして機能し、情報を格納するメモリ５０１、演算処理を行うＣＰＵ５０３、データの長期記録を行う外部記憶装置５０２、通信を行う通信装置５０５、サーバ４１，４２内に電力を供給するＡＣアダプタ５０７、管理者等の操作を受け付けるキーボード５０８、情報を表示するディスプレイ５０９から構成される。上位サーバ４１またはアプリケーションサーバ４２の起動時には、ディスク装置などで構成された外部記憶装置５０２に記録されているプログラムをメモリ５０２上に読み込み、ＣＰＵ５０３で実行することにより所定の処理を行う。
【０２９６】
メモリ５０２上に読み込まれるプログラムは、上流のサーバから受信したイベントを参照あるいは加工して新たなイベントを送信する。
【０２９７】
このようなセンサネットシステムのサーバノードでは、前記第１実施形態のルータノード２と同様に、上流から受信する各サーバノードからのイベントの流入速度の和が制限転送レートＶＬを超えると、サーバ間の通信に障害が発生する恐れがある。そこで、ゲートウェイ３よりも下流のサーバノードを前記第１実施形態のルータノード２及びセンサノード１と同様に扱い、前記第１実施形態の（１）式により、転送レート超過が発生する境界に位置するサーバノードを境界サーバノードとする。なお、サーバノードは、前記第１実施形態のルータノード２に比してＣＰＵの処理能力やメモリの搭載量を多く設定できるので、制限転送レートＶＬをサーバノードの性能に応じて増大した制限転送レートＶＬ’としてもよい。
【０２９８】
そして、前記第１実施形態の（５）式を用いて、送出レートが過大であるセンサノードまたは転送レートが過大である中継ノードを送出レート超過ノードとして特定する。なお、中継ノードがセンサノードからのイベントを転送する際に自分のＩＤを付与することにより、境界サーバノードは中継ノードを送出レート超過ノードとして特定できる。また、前記第１実施形態の図１５で示したように、境界サーバノードが減速対象となるサーバノードを減速サーバノードとして決定し、減速処理を実行するサーバノードを減速処理実行ノードとして決定し、減速処理を実行する。
【０２９９】
境界サーバノードは、イベントの転送量が過大になって減速処理を開始したことを示す警報イベントを下流のサーバノードに対して送信する。また、警報イベントを受信したサーバノードでは、さらに下流にサーバノード（あるいはユーザ端末）に対して警報イベントを送信する。
【０３００】
例えば、センサネットサーバ４が複数のゲートウェイ３から大量のイベントを受信した場合、センサネットサーバ４で減速処理を実施し、下流の上位サーバ４１に警報イベントを送信する。これにより、転送レート超過を検出したサーバノードの下流のサーバノードへのイベントが制限転送レートを超えるのを抑制する。また、下流のサーバノードは、警報イベントを受信することで、異常が発生した通信経路を識別することができる。なお、サーバノードで実施する減速処理としては、前記第１実施形態の（３）減速処理の内容で示したｂ１，ａ２を行うことができる。
【０３０１】
さらにサーバノードの減速処理としては、次のような処理を行うことができる。
ｃ１：下流のノードに転送するイベントを削減し、削減したイベントを全て外部記憶装置５０５へ格納する。そして、サーバノードはルータノード２やゲートウェイ３に比して処理能力に余裕があるので、受信したイベントから異常の原因を解析する。
ｃ２：上記ｃ１で外部記憶装置５０５へ格納したイベントを、遅延して送信する。
【０３０２】
また、減速処理を実行するサーバノードや、境界サーバノードでは、受信した全てのイベントを解析してフィルタリングを実施するイベントを特定するようにしても良い。
【０３０３】
以上のように、第３実施形態では、有線ネットワーク７で接続されたサーバノード間でも転送レート超過の検出と、減速処理を実行することでセンサネットシステムのサーバ間の通信に障害が発生するのを抑制できる。
【０３０４】
＜変形例1＞
前記第１実施形態においては、図１２のステップ１００８で適用する減速処理の内容を、上記（３）減速処理の内容に示したａ１〜ａ３またはｂ１のうち、予め設定した処理内容を用いたが、境界ノードＤＲとなったルータノード２やゲートウェイ３、あるいは減速処理実行ノードとなったルータノード２やセンサノード１が所定の規則に基づいてａ１〜ａ３またはｂ１のいずれか一つの処理内容を選択するようにしても良い。
【０３０５】
また、減速処理の内容のうち、センサノードで実行する減速処理と、ルータノード２で実行する減速処理のいずれかを、境界ノードＤＲが決定するようにしても良い。
【０３０６】
＜変形例２＞
前記第３実施形態においては、境界サーバノードが下流のサーバノードに対して警報イベントを送信したが、前記第１実施形態の境界ノードにおいても、下流のルータノード２やゲートウェイ３に対して警報イベントを送信するようにしても良い。これにより、境界ノードのよりも下流のルータノード２またはゲートウェイ３は、異常が発生した通信経路を識別することができる。
【産業上の利用可能性】
【０３０７】
以上のように、本発明では、センサネットシステム上の経路で単位時間当たりのデータ送出量が過大になるのを防ぎながら、センサノードから送信される情報を完全に破棄することなく可能な限りリアルタイムで転送できるので、健康状態を管理するセンサネットシステムや、建造物の環境を管理するセンサネットシステムなどに適用することができる。
【図面の簡単な説明】
【０３０８】
【図１】本発明の第１の実施形態を示すセンサネットシステムのブロック図の一例である。
【図２】同じく第１実施形態におけるセンサノードのハードウェアを示すブロック図の一例である。
【図３】同じく第１実施形態におけるルータノードのハードウェアを示すブロック図の一例である。
【図４】同じく第１実施形態におけるゲートウェイのハードウェアを示すブロック図の一例である。
【図５】同じく第１実施形態におけるセンサネットサーバのハードウェアを示すブロック図の一例である。
【図６】同じく第１実施形態におけるセンサノードのソフトウェアの機能要素を示すブロック図の一例である。
【図７】同じく第１実施形態におけるセンサノードで行われる処理の一例を示すフローチャート。
【図８】同じく第１実施形態におけるセンサノードで使用される動作モードテーブルの説明図の一例である。
【図９】同じく第１実施形態におけるセンサネットシステムの一例を示すブロック図で、ルータノードを構造物内に設置した例を示す。
【図１０】同じく第１実施形態におけるセンサネットシステムの一例を示すブロック図で、ルータノードを会議室内に設置した例を示す。
【図１１】同じく第１実施形態におけるルータノードまたはゲートウェイのソフトウェアの機能要素を示すブロック図の一例である。
【図１２】同じく第１実施形態におけるルータノードまたはゲートウェイで実行される処理の一例を示すフローチャート。
【図１３】同じく第１実施形態におけるセンサノード、ルータノード、ゲートウェイと境界ノードの関係を示す説明図の一例である。
【図１４】同じく第１実施形態におけるセンサノード、ルータノード、ゲートウェイと送出レート超過ノード、境界ノード、親ルータ、子ルータの関係を示す説明図の一例である。
【図１５】同じく第１実施形態における減速処理ルールテーブルの一例を示す説明図である。
【図１６】同じく第１実施形態における減速処理ルール１を示すセンサネットシステムのブロック図の一例である。
【図１７】同じく第１実施形態における減速処理ルール２を示すセンサネットシステムのブロック図の一例である。
【図１８】同じく第１実施形態における減速処理ルール３を示すセンサネットシステムのブロック図の一例である。
【図１９】同じく第１実施形態における減速処理ルール４を示すセンサネットシステムのブロック図の一例である。
【図２０】同じく第１実施形態における減速処理ルール５を示すセンサネットシステムのブロック図の一例である。
【図２１】同じく第１実施形態における減速処理ルール６を示すセンサネットシステムのブロック図の一例である。
【図２２】同じく第１実施形態における境界ノードＤＲとセンサノードで実行される処理の一例を示すフローチャート。
【図２３】同じく第１実施形態における境界ノードＤＲとセンサノードで実行される処理の他の例を示すフローチャート。
【図２４】同じく第１実施形態における親ルータで行われるイベントの受信処理の一例を示すフローチャート。
【図２５】同じく第１実施形態における親ルータで行われる減速コマンドの受信処理の一例を示すフローチャート。
【図２６】同じく第１実施形態における親ルータで行われるタイマ２の割り込み処理の一例を示すフローチャート。
【図２７】同じく第１実施形態における親ルータで行われるタイマ１の割り込み処理の一例を示すフローチャート。
【図２８】同じく第１実施形態における減速処理実行ノードで行われる復帰処理の一例を示すフローチャート。
【図２９】同じく第１実施形態におけるパケットのデータフォーマットの一例を示す説明図。
【図３０】同じく第１実施形態における単独観測イベントのパケットのデータフォーマットの一例を示す説明図。
【図３１】同じく第１実施形態における時間方向まとめ送りイベントのパケットのデータフォーマットの一例を示す説明図。
【図３２】同じく第１実施形態における空間方向まとめ送りイベントのパケットのデータフォーマットの一例を示す説明図。
【図３３】同じく第１実施形態における可変データ長整数のデータフォーマットの一例を示す説明図。
【図３４】同じく第１実施形態における可複数バイトで構成された変データ長整数のデータフォーマットの一例を示す説明図。
【図３５】同じく第１実施形態における観測値の一例を示し、絶対値の表記と相対値の表記を示す説明図。
【図３６】同じく第１実施形態における単独観測イベントのパケットのデータフォーマットの一例を示す説明図。
【図３７】同じく第１実施形態における時間方向まとめ送りイベントのパケットのデータフォーマットの一例を示す説明図。
【図３８】同じく第１実施形態における空間方向まとめ送りイベントのパケットのデータフォーマットの一例を示す説明図。
【図３９】第２実施形態における減速処理ルールを示すセンサネットシステムのブロック図の一例である。
【図４０】第２実施形態におけるセンサノードとルータノードの通信処理の一例を示すタイムチャート。
【図４１】第２実施形態における境界ノードＤＲと親ルータＰＲとセンサノードで実行される処理の一例を示すフローチャート。
【図４２】同じく第２実施形態における減速コマンドのパケットのデータフォーマットの一例を示す説明図。
【図４３】同じく第２実施形態における減速キャンセルコマンドのパケットのデータフォーマットの一例を示す説明図。
【図４４】同じく第２実施形態における親ルータＰＲに蓄積される減速コマンドの一例を示す説明図。
【図４５】同じく第２実施形態における境界ノードＤＲと親ルータＰＲとセンサノードで実行される処理の一例を示すタイムチャート。
【図４６】第３実施形態を示すセンサネットシステムのブロック図の一例である。
【図４７】同じく第３実施形態におけるサーバノードのブロック図の一例である。
【符号の説明】
【０３０９】
１、Ｓ１〜Ｓ８  センサノード
２、Ｒ１〜Ｒ８  ルータノード
３、ＧＷ  ゲートウェイ
４  センサネットサーバ
５  データベース
６  無線ネットワーク
７  有線ネットワーク
１３  ユーザ端末
【図１】
2008042458.tif 000008
【図２】
2008042458.tif 000009
【図３】
2008042458.tif 000010
【図４】
2008042458.tif 000011
【図５】
2008042458.tif 000012
【図６】
2008042458.tif 000013
【図７】
2008042458.tif 000014
【図８】
2008042458.tif 000015
【図９】
2008042458.tif 000016
【図１０】
2008042458.tif 000017
【図１１】
2008042458.tif 000018
【図１２】
2008042458.tif 000019
【図１３】
2008042458.tif 000020
【図１４】
2008042458.tif 000021
【図１５】
2008042458.tif 000022
【図１６】
2008042458.tif 000023
【図１７】
2008042458.tif 000024
【図１８】
2008042458.tif 000025
【図１９】
2008042458.tif 000026
【図２０】
2008042458.tif 000027
【図２１】
2008042458.tif 000028
【図２２】
2008042458.tif 000029
【図２３】
2008042458.tif 000030
【図２４】
2008042458.tif 000031
【図２５】
2008042458.tif 000032
【図２６】
2008042458.tif 000033
【図２７】
2008042458.tif 000034
【図２８】
2008042458.tif 000035
【図２９】
2008042458.tif 000036
【図３０】
2008042458.tif 000037
【図３１】
2008042458.tif 000038
【図３２】
2008042458.tif 000039
【図３３】
2008042458.tif 000040
【図３４】
2008042458.tif 000041
【図３５】
2008042458.tif 000042
【図３６】
2008042458.tif 000043
【図３７】
2008042458.tif 000044
【図３８】
2008042458.tif 000045
【図３９】
2008042458.tif 000046
【図４０】
2008042458.tif 000047
【図４１】
2008042458.tif 000048
【図４２】
2008042458.tif 000049
【図４３】
2008042458.tif 000050
【図４４】
2008042458.tif 000051
【図４５】
2008042458.tif 000052
【図４６】
2008042458.tif 000053
【図４７】
2008042458.tif 000054