(57)【要約】  センサーノード（１０１−ｋ）は、センシング（ｅｖ）の発生を検出し、該センシング（ｅｖ）に対応するデータ処理が、該センシング（ｅｖ）のつぎのセンシング（ｅｖ）の発生時までに終了するか否かを、センシング（ｅｖ）の発生が検出された時間間隔に基づいて判断する。センサーノード（１０１−ｋ）は、該データ処理が終了すると判断した場合、該データ処理を実行し、該データ処理の実行結果をセンサーノード（１０１−ｋ）と直接通信可能な第１装置（１０１−ｌ）へ送信する。センサーノード（１０１−ｋ）は、該データ処理が終了しないと判断した場合、該データ処理を第１装置（１０１−ｌ）に実行させる依頼情報であって、第１装置（１０１−ｌ）と直接通信可能な第２装置へ該データ処理の実行結果を送信させる依頼情報を第１装置（１０１−ｌ）へ送信する。
2014016912.tif 000002
【特許請求の範囲】
【請求項１】
イベントの発生を検出する検出部と、
前記検出部によって検出されたイベントに対応するデータ処理が、前記検出されたイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、前記検出部によってイベントの発生が検出された時間間隔に基づいて出力する判断部と、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行するデータ処理部と、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する送信部と、
を有することを特徴とする通信装置。
【請求項２】
前記第１装置によって検出されたイベントに対応するデータ処理を実行させるとともに、前記第１装置に前記対応するデータ処理の実行結果を送信させる第１依頼情報を、前記第１装置から受信する受信部を有し、
前記データ処理部は、
前記第１依頼情報が示すデータ処理を実行し、
前記送信部は、
前記データ処理部による実行結果を、前記第１装置に送信する請求項１に記載の通信装置。
【請求項３】
情報を記憶する記憶装置をさらに有し、
前記判断部は、
前記判断情報を前記記憶装置に書き込み、
前記データ処理部は、
前記記憶装置に記憶されている前記判断情報が前記対応するデータ処理が終了しない旨を示している場合、前記第１依頼情報が示すデータ処理を実行せず、
前記送信部は、
前記記憶装置に記憶されている前記判断情報が前記対応するデータ処理が終了しない旨を示している場合、前記第１依頼情報を前記第１装置に送信することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記自通信装置に供給される電力を蓄電する蓄電部と、
前記第１依頼情報が示すデータ処理にかかる消費電力量と、前記第１依頼情報が示すデータ処理の実行結果の送信にかかる消費電力量と、の合計電力量を取得する取得部と、
前記蓄電部によって蓄電された電力量が、前記合計電力量以上であるか否かを示す判定信号を出力する判定部と、
を有し、
前記データ処理部は、
前記蓄電された電力量が前記合計電力量以上であることを示す前記判定信号が入力された場合に、前記第１依頼情報が示すデータ処理を実行し、前記蓄電された電力量が前記合計電力量未満であることを示す前記判定信号が入力された場合に、前記受信部によって受信された前記第１依頼情報が示すデータ処理を実行せず、
前記送信部は、
前記蓄電された電力量が前記合計電力量以上であることを示す前記判定情報が入力された場合に、前記データ処理部による実行結果を前記第１装置に送信し、前記蓄電された電力量が前記合計電力量未満であることを示す前記判定信号が入力された場合に、前記第１依頼情報を前記第１装置に送信することを特徴とする請求項２または３に記載の通信装置。
【請求項５】
前記データ処理部は、
前記対応するデータ処理が終了しないことを示す判断情報が入力された場合に、前記対応するデータ処理のうち一部のデータ処理を実行し、
前記送信部は、
前記対応するデータ処理のうち前記一部のデータ処理以外のデータ処理を前記第１装置に実行させるとともに、前記第２装置に、前記対応するデータ処理の実行結果を送信させる第２依頼情報と、前記データ処理部による前記一部のデータ処理の実行結果と、を前記第１装置に送信することを特徴とする請求項１〜４のいずれか一つに記載の通信装置。
【請求項６】
イベントの発生を検出し、
検出したイベントに対応するデータ処理が、前記検出したイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、イベントの発生が検出された時間間隔に基づいて出力し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する、
処理を各々が実行する複数の第１通信装置と、
前記複数の第１通信装置から送信された前記対応するデータ処理の実行結果を前記複数の第１通信装置のうち自通信装置と通信可能な第１通信装置から受信して、受信した実行結果に基づくデータ処理を実行する第２通信装置と、
を有することを特徴とするシステム。
【請求項７】
前記複数の第１通信装置の各々が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を、直接または前記複数の第１通信装置のうちの他の第１通信装置を介して前記第２通信装置へ送信し、
前記第２通信装置が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を受信し、
前記複数の第１通信装置のうちの所定数以上の第１通信装置からの前記対応するデータ処理が終了しない旨を示す前記判断情報を受信したか否かを判定し、
前記所定数以上の第１通信装置からの前記対応するデータ処理が終了しない旨を示す前記判断情報を受信したと判定した場合、前記複数の第１通信装置に、前記第１通信装置が前記対応するデータ処理が終了しないと判断しても、前記依頼情報を前記第１通信装置と通信可能な周辺の装置に送信させない依頼禁止状態にする要求情報を送信することを特徴とする請求項６に記載のシステム。
【請求項８】
前記複数の第１通信装置の各々が、
前記対応するデータ処理が終了する旨を示す前記判断情報を、直接または前記複数の第１通信装置のうちの他の第１通信装置を介して前記第２通信装置へ送信し、
前記第２通信装置が、
前記対応するデータ処理が終了する旨を示す前記判断情報を受信し、
前記複数の第１通信装置のうちの所定数以上の第１通信装置からの前記対応するデータ処理が終了する旨を示す前記判断情報が受信されたか否かを判定し、
前記所定数以上の第１通信装置からの前記対応するデータ処理が終了する旨を示す前記判断情報を受信したと判定した場合、前記複数の第１通信装置に、前記依頼禁止状態を解除させる要求情報を送信することを特徴とする請求項７に記載のシステム。
【請求項９】
前記複数の第１通信装置の各々が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を、直接または前記複数の第１通信装置のうちの他の第１通信装置を介して前記第２通信装置へ送信し、
前記第２通信装置が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を受信し、
前記対応するデータ処理が終了しない旨を示す前記判断情報の受信結果に基づいて、前記複数の第１通信装置の中で前記対応するデータ処理が終了しない旨を示す前記判断情報を送信した第１通信装置の数を判定し、
前記複数の第１通信装置に、判定した数に基づく判定情報を送信し、
前記複数の第１通信装置の各々が、
前記判定情報を受信し、
前記対応するデータ処理が終了しないと判断した場合、前記対応するデータ処理のうち前記判定情報に基づく割合の一部のデータ処理を実行し、
前記対応するデータ処理のうち前記一部のデータ処理以外のデータ処理を前記第１装置に実行させる依頼情報であって、前記第２装置に、前記対応するデータ処理の実行結果を送信させる依頼情報と、前記一部のデータ処理の実行結果と、を前記第１装置に送信することを特徴とする請求項６に記載のシステム。
【請求項１０】
通信装置が、
イベントの発生を検出し、
検出したイベントに対応するデータ処理が、前記検出したイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、イベントの発生が検出された時間間隔に基づいて出力し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する、
処理を実行することを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、システム、および通信方法に関する。
【背景技術】
【０００２】
従来、携帯無線端末において、基地局から直接にデータ転送が行えない端末があっても、他の端末を親機とし、当該親機を中継してデータ転送を行う技術が知られている（たとえば、下記特許文献１を参照。）。【０００３】
また、サーバークライアントシステムにおいて、セキュリティー性の高いアプリケーションプログラムはサーバに実行させ、セキュリティー性の低いアプリケーションプログラムはクライアントに実行させることにより、負荷を分散する技術が知られている（たとえば、下記特許文献２を参照。）。【０００４】
また、複数のセンサー付無線端末を所定空間に散在させ、それらが協調して環境や物理的状況を採取することを可能とするセンサネットワーク（ＷＳＮ：Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ）が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２３５６９４号公報
【特許文献２】特開２０１０−１８２１７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、イベントの発生時にデータ処理を実行する際に、データ処理がつぎのイベントの発生までに終了しない場合、データ処理の実行が放棄される場合がある。【０００７】
１つの側面では、本発明は、イベント発生時におけるデータ処理の実行の放棄を低減することができる通信装置、システム、および通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、イベントの発生を検出し、検出したイベントに対応するデータ処理が、前記検出したイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、イベントの発生が検出された時間間隔に基づいて出力し、前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行し、前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する通信装置、および通信方法が提案される。【０００９】
また、本発明の一側面によれば、イベントの発生を検出し、検出したイベントに対応するデータ処理が、前記検出したイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、イベントの発生が検出された時間間隔に基づいて出力し、前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行し、前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する、処理を各々が実行する複数の第１通信装置と、前記複数の第１通信装置から送信された前記対応するデータ処理の実行結果を前記複数の第１通信装置のうち自通信装置と通信可能な第１通信装置から受信して、受信した実行結果に基づくデータ処理を実行する第２通信装置と、を有するシステムが提案される。
【発明の効果】
【００１０】
本発明の一態様によれば、イベント発生時におけるデータ処理の実行の放棄を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、センサーネットワークシステムの一動作例を示す説明図である。
【図２】図２は、イベント発生間隔例を示す説明図である。
【図３】図３は、センサーノードのハードウェア構成例を示すブロック図である。
【図４】図４は、親機のハードウェア構成例を示すブロック図である。
【図５】図５は、センサーノードの機能的構成例を示すブロック図である。
【図６】図６は、親機の機能的構成例を示すブロック図である。
【図７】図７は、送信データ例を示す説明図である。
【図８】図８は、依頼禁止状態にする例を示す説明図である。
【図９】図９は、依頼禁止状態を解除する例を示す説明図である。
【図１０】図１０は、実施例１にかかるセンシング時のセンサーノードの動作を示す説明図である。
【図１１】図１１は、実施例１にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。
【図１２】図１２は、実施例１にかかる高負荷状態の割合によるデータ送信可能条件を示す説明図である。
【図１３】図１３は、実施例１にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。
【図１４】図１４は、実施例１にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。
【図１５】図１５は、実施例１にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。
【図１６】図１６は、実施例１にかかる親機が行う処理手順例を示すフローチャートである。
【図１７】図１７は、処理転送禁止フラグの設定例を示す説明図である。
【図１８】図１８は、実施例２にかかるセンシング時のセンサーノードの動作を示す説明図である。
【図１９】図１９は、実施例２にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。
【図２０】図２０は、実施例２にかかる高負荷状態の割合によるデータ送信可能条件を示す説明図である。
【図２１】図２１は、実施例２にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。
【図２２】図２２は、実施例２にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。
【図２３】図２３は、実施例２にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。
【図２４】図２４は、実施例２にかかる親機が行う処理手順例を示すフローチャートである。
【図２５】図２５は、実施例３にかかる処理転送禁止フラグの設定例を示す説明図である。
【図２６】図２６は、実施例３にかかるセンシング時のセンサーノードの動作を示す説明図である。
【図２７】図２７は、実施例３にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。
【図２８】図２８は、実施例３にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。
【図２９】図２９は、実施例３にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。
【図３０】図３０は、実施例３にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。
【図３１】図３１は、実施例３にかかる親機が行う処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本発明にかかる通信装置、システム、および通信方法の実施の形態を詳細に説明する。本実施の形態で説明するセンサーネットワークシステムでは、多数のセンサーを所定領域に設置して、各センサーがそれぞれ検出した検出情報を無線送信し、配置領域内のセンサーと無線通信可能な親機により検出情報を収集する。ここで、センサーとセンサーが検知したデータを処理可能なプロセッサを搭載した装置をセンサーノードと称する。たとえば、センサーノードは、所定領域内に数百個〜数万個配置されることとする。
【００１３】
図１は、センサーネットワークシステムの一動作例を示す説明図である。図２は、イベント発生間隔例を示す説明図である。センサーネットワークシステム１００は、たとえば、複数の第１通信装置である複数のセンサーノード１０１と、第２通信装置である親機１０２と、を有する。親機１０２も複数設けられていてもよい。複数のセンサーノード１０１は、所定領域Ａ内に配置されている。センサーノード１０１は広範囲に設置されるため、すべてのセンサーノード１０１が親機１０２に直接データを送信することは困難である。センシング結果に対応するデータ処理の結果は、他のセンサーノード１０１を経由してリレー転送によって親機１０２に到達することとする。
【００１４】
センサーノード１０１は、センシングｅｖと、データ処理と、送信と、を行う。センシングｅｖは、センサーノード１０１が有するセンサーによって発生したセンシングイベントを示す。データ処理は、センシングｅｖによるセンシング結果に対応するデータ処理を示す。送信とは、データ処理の実行結果の送信を示す。低負荷状態の場合には、センシングｅｖと、データ処理と、送信と、が順次繰り返し行われる。そして、センサーノード１０１は、データ処理の実行結果を親機１０２に送信するために、自センサーノード１０１と直接通信可能な装置に実行結果を送信する。当該直接通信可能な装置とは、親機１０２と複数のセンサーノード１０１とのうち、自センサーノード１０１の周辺にあるため、自センサーノード１０１と直接無線通信可能な装置である。
【００１５】
図２の低負荷状態で示すように、センシングｅｖの時間間隔ｔ１がデータ処理にかかる時間ｔ０よりも短い。一方、図２の高負荷状態で示すように、センシングｅｖの時間間隔ｔ２がデータ処理にかかる時間ｔ０よりも短い場合がある。センシングｅｖの時間間隔ｔ２がデータ処理にかかる時間ｔ０よりも短いと、データ処理がセンシングｅｖに追いつかないため、図２の×印で示すように、データ処理が放棄される。すなわち、センシング結果が破棄されなければならない。
【００１６】
上述したように、センサーノード１０１は、データ処理の結果を他のセンサーノード１０１を経由してリレー転送によって親機１０２に送信する。そこで、本実施の形態では、センシングｅｖの時間間隔がデータ処理にかかる時間よりも短いセンサーノード１０１は、センサーノード１０１−ｋから親機１０２までの中継センサーノード１０１にデータ処理を代わりに実行してもらう。図１の例では、中継センサーノード１０１−ｌが代わりにデータ処理を実行し、その実行結果を中継センサーノード１０１−ｍに送信する。そして、中継センサーノード１０１−ｍは、他のセンサーノード１０１に受信した実行結果を送信する。これにより、中継センサーノード１０１−ｌから親機１０２までに実行結果がリレー転送される。
【００１７】
または、センシングｅｖの時間間隔がデータ処理にかかる時間よりも短いセンサーノード１０１−ｋは、センサーノード１０１−ｋから親機１０２までの中継センサーノード１０１にデータ処理のうちの一部のデータ処理を代わりに実行してもらう。これにより、データ処理の実行の放棄を低減させることができる。したがって、センシング結果の破棄を低減させることができる。
【００１８】
たとえば、センシング結果に異常がある場合に、センシングｅｖに対応するデータ処理をセンサーノード１０１内のプロセッサに実行させる可能性が高くなる。温度センサーを例に挙げると、温度が閾値以上である場合にプロセッサへ割り込みを入れる場合、温度センサーからイベントが何度も発生する場合、センサーノード１０１が設置されている箇所に異常がある可能性がある。したがって、センシング結果に異常がある場合に高負荷状態になる可能性が高い。親機１０２は、センシング結果やセンシング結果に対応するデータ処理の実行結果を解析したり、利用者端末に当該実行結果に送信する。たとえば、センシング結果やセンシング結果に対応するデータ処理の実行結果に基づいて時系列で解析が行われる場合、センシング結果が破棄されると、解析精度が低下する。したがって、図１に示すように、センシング結果の破棄を低減させることにより、解析精度を向上させることができる。
【００１９】
図３は、センサーノードのハードウェア構成例を示すブロック図である。センサーノード１０１は、センサー３０１と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）３０２と、無線通信回路３０３と、マイクロプロセッサ（ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ））３０５と、を有する。センサーノード１０１は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０６と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０７と、不揮発メモリ３０８と、アンテナ３１０と、を有する。センサーノード１０１は、センサー３０１と、無線通信回路３０３と、マイクロプロセッサ（ＭＣＵ）３０５と、ＲＡＭ３０６と、ＲＯＭ３０７と、不揮発メモリ３０８と、を接続する内部バス３０９を有する。さらに、センサーノード１０１は、ハーベスタ３１１と、バッテリ３１２と、を有する。
【００２０】
センサー３０１は、設置箇所における所定の変位量を検出する。センサー３０１は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。アンテナ３１０は、親機１０２と無線通信する電波を送受信する。無線通信回路（ＲＦ）３０３は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ３１０を介して送信する。
【００２１】
マイクロプロセッサ（ＭＣＵ）３０５は、センサー３０１が検出したデータを処理する。ＲＡＭ３０６は、ＭＣＵ３０５における処理の一時データを格納する。ＲＯＭ３０７は、ＭＣＵ３０５が実行する処理プログラムなどを格納する。不揮発メモリ３０８は、電力供給が途絶えたときなどにおいても書き込まれた所定のデータを保持する。
【００２２】
ハーベスタ３１１は、センサーノード１０１の設置箇所における外部環境、たとえば、光、振動、温度、無線電波（受信電波）などのエネルギー変化に基づき発電を行う。ハーベスタ３１１は、センサー３０１によって検出された変位量に応じて発電を行ってもよい。バッテリ３１２は、ハーベスタ３１１により発電された電力を蓄える。すなわち、センサーノード１０１は、二次電池や外部電源などが不要であり、動作に必要な電力を自装置の内部で生成する。
【００２３】
ＰＭＵ３０２は、バッテリ３１２が蓄えた電力、またはハーベスタ３１１で得た電力を、センサーノード１０１の各部の駆動電源として供給する制御を行う。たとえば、ＰＭＵ３０２は、センサー３０１がセンシング処理を行うと、ＭＣＵ３０５を動作させるために、ＭＣＵ３０５へ電源を供給する。または、ＭＣＵ３０５がいずれの処理も行っていない場合には、ＰＭＵ３０２は、ＭＣＵ３０５への電源供給をやめる。
【００２４】
図４は、親機のハードウェア構成例を示すブロック図である。親機１０２は、センサーノード１０１と異なり、外部電源に基づき動作する。親機１０２は、センサーノード１０１のプロセッサ（ＭＣＵ３０５）よりも高性能なプロセッサ（ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１）と、大容量のＲＯＭ４０２およびＲＡＭ４０３と、を有する。親機１０２は、不揮発メモリ４０９と、インターフェース（Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ））回路４０４と、を有する。親機１０２は、ＣＰＵ４０１とＲＯＭ４０２とＲＡＭ４０３とＩ／Ｏ回路４０４と不揮発メモリ４０９とを接続するバス４０５を有する。
【００２５】
また、Ｉ／Ｏ回路４０４には、アンテナ４０６および無線通信回路（ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ））４０７と、ネットワークＩ／Ｆ４０８が接続されている。これにより、親機１０２は、アンテナ４０６および無線通信回路４０７を介して、センサーノード１０１と無線通信することができる。さらに、親機１０２は、ネットワークＩ／Ｆ４０８を介して、ＴＣＰ／ＩＰのプロトコル処理などにより、インターネットなどのネットワークＮＥＴを介してサーバ４１２や利用者端末４１１などの外部装置と通信を行うことができる。
【００２６】
（センサーノード１０１の機能的構成例）
図５は、センサーノードの機能的構成例を示すブロック図である。センサーノード１０１は、検出部５０１と、判断部５０２と、データ処理部５０３と、送信部５０４と、受信部５０５と、取得部５０６と、判定部５０７と、蓄電部５０８と、を有する。さらに、各センサーノード１０１は、繁忙フラグｂｆと、処理転送禁止フラグｔｆと、時間間隔ｉｔｖと、第１関数ｆ１（ｄｓ）と、第２関数ｆ２（ｄｓ）と、をＲＡＭ３０６、不揮発メモリ３０８などの記憶装置５１０に記憶する。図５に示す記憶装置５１０の各記憶内容については、後述する。蓄電部５０８は、たとえば、バッテリ３１２である。送信部５０４と受信部５０５とは、たとえば、無線通信回路３０３およびアンテナ３１０である。たとえば、検出部５０１から判定部５０７と、についての処理がコーディングされたプログラムがＲＯＭ３０７や不揮発メモリ３０８などの記憶装置５１０に記憶されている。ＭＣＵ３０５が当該記憶装置５１０からプログラムを読み出して、当該プログラムにコーディングされた処理を実行することにより、各部の処理が実現される。
【００２７】
（親機１０２の機能的構成例）
図６は、親機の機能的構成例を示すブロック図である。親機１０２は、受信部６０１と、判定部６０２と、送信部６０３と、を有する。親機１０２は、非繁忙ノード割合カウンタｃｔと、処理転送禁止フラグｔｆと、をＲＡＭ４０３、不揮発メモリ４０９などの記憶装置６１０に有する。非繁忙ノード割合カウンタｃｔについては、後述する。受信部６０１および送信部６０３は、たとえば、無線通信回路４０７およびアンテナ４０６である。判定部６０２についての処理がコーディングされたプログラムがＲＯＭ４０２や不揮発メモリ４０９などの記憶装置に記憶されている。ＣＰＵ４０１が当該記憶装置からプログラムを読み出して、当該プログラムにコーディングされた処理を実行することにより、判定部６０２の処理が実現される。または、ＣＰＵ４０１が、ネットワークＩ／Ｆ４０８を介して当該プログラムにコーディングされた処理を実行してもよい。
【００２８】
検出部５０１は、イベントの発生を検出する。各センサーノード１０１では、具体的には、検出部５０１は、センサーノード１０１内のセンサー３０１によるセンシングｅｖを検出する。
【００２９】
判断部５０２は、検出部５０１によって検出されたイベントに対応するデータ処理が、検出されたイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、検出部５０１によってイベントの発生が検出された時間間隔ｉｔｖに基づいて出力する。
【００３０】
たとえば、判断部５０２は、検出部５０１によるセンシングｅｖの発生が検出される都度、センシングｅｖの発生時刻を不揮発メモリ３０８などの記憶装置に記憶させてもよい。そして、判断部５０２は、直前に検出されたセンシングｅｖの発生時刻と、今回検出されたイベントの発生時刻と、の時間間隔ｉｔｖが、閾値以下であるか否かを判断してもよい。閾値は、たとえば、センシングｅｖに対応する処理にかかる時間であってもよい。閾値については、予めＲＯＭ３０７、不揮発メモリ３０８などの記憶装置に記憶されていることとする。または、たとえば、時刻が近い２つのイベントの時間間隔ｉｔｖを記憶装置に複数記憶させておき、判断部５０２は、該時間間隔ｉｔｖの平均値が、閾値以下であるか否かを判断してもよい。
【００３１】
対応するデータ処理が終了しない旨を示す判断情報が判断部５０２によって出力された場合、送信部５０４は、依頼情報を自通信装置と直接通信可能な第１装置へ送信する。直接通信可能な第１装置とは、自装置の周辺の通信装置であって、他のセンサーノード１０１または親機１０２である。依頼情報は、対応するデータ処理を他のセンサーノード１０１に実行させる情報であって、当該第１装置と直接通信可能な第２装置へ対応するデータ処理の実行結果を送信させる情報である。ここで、第２装置とは、他のセンサーノード１０１の周辺の通信装置である。
【００３２】
さらに、送信部５０４は、自センサーノード１０１が判断情報と、当該依頼情報と、を併せて第１装置に送信してもよい。たとえば、判断情報が対応するデータ処理が終了しない旨を示している場合、センサーノード１０１が高負荷状態であることを示す。一方、判断情報が対応するデータ処理が終了する旨を示している場合、センサーノード１０１が低負荷状態であることを示す。
【００３３】
また、判断部５０２は、センシングｅｖに対応するデータ処理が終了するか否かを示す判断情報を自センサーノード１０１の記憶装置５１０に記憶させる。具体的には、たとえば、判断部５０２は、繁忙フラグｂｆをセットすることにより、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が記憶装置５１０に記憶されたこととする。これにより、自センサーノード１０１が高負荷状態であることを示す。より具体的には、たとえば、判断部５０２は、繁忙フラグｂｆを“１”にすることにより、繁忙フラグｂｆをセットする。
【００３４】
また、具体的には、たとえば、判断部５０２は、繁忙フラグｂｆをアンセットすることにより、センシングｅｖに対応するデータ処理が終了する旨を示す判断情報が記憶装置５１０に記憶されたこととする。これにより、自センサーノード１０１が低負荷状態であることを示す。より具体的には、たとえば、判断部５０２は、繁忙フラグｂｆを“０”にすることにより、繁忙フラグｂｆをアンセットする。
【００３５】
データ処理部５０３は、センシングｅｖに対応するデータ処理が終了する旨を示す判断情報が判断部５０２によって出力された場合、センシングｅｖに対応するデータ処理を実行する。また、データ処理部５０３は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が判断部５０２によって出力された場合、センシングｅｖ対応するデータ処理の一部のデータ処理について実行する。一部のデータ処理については、たとえば、センシングｅｖの時間間隔ｉｔｖで可能な処理であってもよい。
【００３６】
そして、送信部５０４は、依頼情報と、一部のデータ処理の実行結果と、を自センサーノード１０１と直接通信可能な第１装置に送信する。ここでの依頼情報は、対応するデータ処理の一部のデータ処理以外の残余のデータ処理を他のセンサーノード１０１に実行させる情報であって、第１装置と直接通信可能な第２装置に、実行結果を送信させる情報である。
【００３７】
図７は、送信データ例を示す説明図である。たとえば、送信データは、データ本体と、繁忙フラグｂｆと、処理フラグｐｆと、を有する。データ本体には、たとえば、センサーノード１０１の識別情報、センシング結果、データ処理に関する情報、データ処理結果、後述する依頼情報などの情報が含まれる。さらに、データ本体は、センシング結果やデータ処理結果を識別するための識別情報が含まれていてもよい。判断部５０２によってセンシングｅｖに対応するデータ処理が終了しないと判断された場合、送信部５０４は、繁忙フラグｂｆをセットにし、処理フラグｐｆをアンセットにした送信データを送信する。
【００３８】
受信部５０５は、自センサーノード１０１の周辺のセンサーノード１０１から他のセンサーノード１０１についての依頼情報を受信する。具体的には、受信部５０５は、他のセンサーノード１０１からの送信データに含まれる処理フラグｐｆがアンセットである場合に、当該他のセンサーノード１０１によって検出されたイベントに対応するデータ処理を実行させる依頼情報を受信したと判断する。
【００３９】
そして、データ処理部５０３は、依頼情報が示すデータ処理を実行する。送信部５０４は、データ処理部５０３による実行結果を自センサーノード１０１と直接通信可能な周辺の通信装置に送信する。ここで、データ処理部５０３によって実行が完了している場合には、送信部５０４は、処理フラグｐｆをセットにして送信する。
【００４０】
また、記憶装置５１０にセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が記憶されている場合、データ処理部５０３は、受信部５０５によって受信された依頼情報が示すデータ処理を実行せず。そして、送信部５０４は、受信された依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。上述したように、記憶装置５１０にセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が記憶されている場合とは、繁忙フラグｂｆがセットである場合である。
【００４１】
また、取得部５０６は、受信部５０５によって受信された依頼情報が示すデータ処理にかかる消費電力量と、依頼情報が示すデータ処理の実行結果の送信にかかる消費電力量と、の合計値を取得する。
【００４２】
たとえば、データ処理のデータサイズによって変化するデータ処理に要する電力量の第１関数ｆ１（ｄｓ）と、データ送信のデータサイズによって変化するデータ送信に要する電力量の第２関数ｆ２（ｄｓ）と、を記憶装置５１０に記憶させておいてもよい。各関数内のｄｓはデータサイズによって各関数の値が変化することを示している。取得部５０６は、第１消費電力量と第２消費電力量との合計値を取得する。第１消費電力量は、依頼情報を示すデータ処理に関する情報のデータサイズが第１関数ｆ１（ｄｓ）に与えられて得られる。第２消費電力量は、依頼情報を示すデータ処理の実行結果の予測データサイズが第２関数ｆ２（ｄｓ）に与えられて得られる。また、センサーノード１０１が、第１消費電力量と第２消費電力量とを算出することにより、当該合計値を算出してもよい。
【００４３】
判定部５０７は、蓄電部５０８によって蓄電された電力量が、取得部５０６によって取得された合計値以上であるか否かを判定する。
【００４４】
判定部５０７によって蓄電された電力量が合計値以上であると判定された場合に、データ処理部５０３は、受信部５０５によって受信された依頼情報が示すデータ処理を実行する。そして、送信部５０４は、データ処理部５０３による実行結果を、自センサーノード１０１と直接通信可能な第１装置に送信する。
【００４５】
判定部５０７によって蓄電された電力量が合計値未満であると判定された場合に、データ処理部５０３は、受信部５０５によって受信された依頼情報が示すデータ処理を実行しない。そして、送信部５０４は、受信部５０５によって受信された依頼情報を、自センサーノード１０１と直接通信可能な第１装置に送信する。
【００４６】
また、たとえば、取得部５０６と判定部５０７についての処理は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が記憶装置５１０に記憶されていない場合に行う。一方、取得部５０６と判定部５０７についての処理は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が記憶装置５１０に記憶されている場合には行わなくてよい。
【００４７】
（実施例１）
センサーノード１０１が高負荷状態であるにも関わらず、未処理のデータがセンサーネットワークシステム１００において大量に転送されると、各センサーノード１０１が受信処理を何度も行わなければならず、負荷がかかる。さらに、未処理のデータが親機１０２に到達してしまう。そこで、実施例１では、親機１０２が、高負荷状態であるセンサーノード１０１が多い場合に、親機１０２が他のセンサーノード１０１へ未処理データの転送を禁止する要求情報を複数のセンサーノード１０１に送信する。
【００４８】
上述したように、送信部５０４は、依頼情報に、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を併せて自センサーノード１０１と直接通信可能な通信装置に送信する。ここでは、繁忙フラグｂｆがセットに設定されることにより、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を表す。具体的には、送信部５０４は、送信データ内の繁忙フラグｂｆをセットにして送信する。
【００４９】
受信部６０１は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を受信する。判定部６０２は、複数のセンサーノード１０１のうちの所定数以上のセンサーノード１０１からセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を受信したか否かを判定する。ここで、所定数については、たとえば、センサーネットワークシステム１００の設計者が決定し、ＲＯＭ４０２や不揮発メモリ４０９などの記憶装置に予め記憶されていることとする。これにより、判定部６０２は、高負荷状態であるセンサーノード１０１が所定数以上あるか否かを判定する。
【００５０】
図８は、依頼禁止状態にする例を示す説明図である。より具体的には、親機１０２は、非繁忙ノード割合カウンタｃｔを有する。非繁忙ノード割合カウンタｃｔは、複数のセンサーノード１０１のうち、低負荷状態であるセンサーノード１０１の割合をカウントする。
【００５１】
判定部６０２は、受信部６０１によって受信された送信データに含まれる繁忙フラグｂｆがセットである場合、非繁忙ノード割合カウンタｃｔをダウンさせる。たとえば、非繁忙ノード割合カウンタｃｔの値が所定数以下となった場合に、判定部６０２は、繁忙フラグｂｆがセットである送信データを所定数以上受信したと判定する。判定部６０２によって所定数以上のセンサーノード１０１からセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を受信したと判定された場合、送信部６０３は、複数のセンサーノード１０１に、依頼禁止状態にする要求情報を送信する。依頼禁止状態とは、判断部５０２が対応するデータ処理が終了しないと判断しても、自センサーノード１０１と直接通信可能な第１装置へ依頼情報を送信させない状態である。具体的には、依頼禁止状態にする要求情報とは、各センサーノード１０１が有する処理転送禁止フラグｔｆをセットにする情報である。たとえば、送信部６０３は、処理転送禁止フラグｔｆをアンセットからセットにして、すべてのセンサーノード１０１に送信する。具体的には、たとえば、送信部６０３は、“１”に設定した処理転送禁止フラグｔｆをすべてのセンサーノード１０１に送信する。
【００５２】
たとえば、受信部５０５は、依頼禁止状態にする要求情報を受信すると、処理転送禁止フラグｔｆをセットする。より具体的には、受信部５０５は、セットされた処理転送禁止フラグｔｆを受信し、受信部５０５によって受信された処理転送禁止フラグｔｆを記憶装置５１０に記憶させる。
【００５３】
たとえば、検出部５０１によってセンシングｅｖの発生が検出された場合に、処理転送禁止フラグｔｆがセットされていると、データ処理部５０３は、判断部５０２による判断に関係なく、検出されたセンシングｅｖに対応するデータ処理を行う。送信部５０４は、データ処理部５０３による実行結果を自センサーノード１０１と直接通信可能な第１装置に送信する。
【００５４】
また、同一のセンサーノード１０１についての送信データを親機１０２が複数回受信する場合があるため、親機１０２は、センサーノード１０１の識別情報ごとに最新の送信データに含まれる繁忙フラグｂｆを親機１０２の記憶装置６１０に記憶してもよい。そして、親機１０２は、記憶装置６１０に記憶された繁忙フラグｂｆがセットである割合を算出してもよい。
【００５５】
これにより、各センサーノード１０１の負荷が受信処理にかかるのを防止すると共に、これにより、未処理状態のデータが親機１０２に到達するのを防止することができる。
【００５６】
また、送信部５０４は、センシングｅｖに対応するデータ処理が終了する旨を示す判断情報が判断部５０２によって出力された場合、当該判断情報を、直接または複数のセンサーノード１０１のうちの他のセンサーノード１０１を介して親機１０２へ送信する。具体的には、送信部５０４は、判断部５０２によってセンシングｅｖに対応するデータ処理が終了すると判断された場合、データ処理部５０３による実行結果に併せて、セットにした処理フラグｐｆとアンセットにした繁忙フラグｂｆとを送信する。より具体的には、送信部５０４は、“０”に設定された繁忙フラグｂｆを実行結果に併せて送信する。
【００５７】
受信部６０１は、センシングｅｖに対応するデータ処理が終了する旨を示す判断情報を受信する。判定部６０２は、複数のセンサーノード１０１のうちの所定数以上のセンサーノード１０１からのセンシングｅｖに対応するデータ処理が終了する旨を示す判断情報が受信されたか否かを判定する。ここで、所定数については、たとえば、センサーネットワークシステム１００の設計者が決定し、ＲＯＭ４０２や不揮発メモリ４０９などの記憶装置に予め記憶されていることとする。これにより、判定部６０２は、低負荷状態であるセンサーノード１０１が所定数以上あるか否かを判定する。
【００５８】
図９は、依頼禁止状態を解除する例を示す説明図である。具体的には、判定部６０２は、受信部６０１によって受信された送信データに含まれる繁忙フラグｂｆがアンセットである場合、非繁忙ノード割合カウンタｃｔをアップさせる。
【００５９】
たとえば、非繁忙ノード割合カウンタｃｔの値が所定数より大きい場合に、判定部６０２は、繁忙フラグｂｆがアンセットである送信データを所定数以上受信したと判断する。
【００６０】
所定数以上のセンサーノード１０１からセンシングｅｖに対応するデータ処理が終了する旨を示す判断情報を受信したと判定部６０２によって判定された場合、送信部６０３は、複数のセンサーノード１０１に、依頼禁止状態を解除させる要求情報を送信する。具体的には、送信部６０３は、セットからアンセットにした処理転送禁止フラグｔｆをすべてのセンサーノード１０１に送信する。具体的には、たとえば、送信部６０３は、“０”に設定された処理転送禁止フラグｔｆをすべてのセンサーノード１０１に送信する。
【００６１】
受信部５０５は、依頼禁止状態を解除させる要求情報を受信する。具体的には、受信部５０５は、アンセットされた処理転送禁止フラグｔｆを受信して、記憶装置５１０に記憶させる。そして、検出部５０１によってセンシングｅｖの発生が検出された場合、処理転送禁止フラグｔｆがアンセットに設定されている。そのため、判断部５０２は、検出部５０１によるイベントの発生が検出された時間間隔ｉｔｖに基づいて、検出部５０１によって検出されたイベントのつぎに発生するイベントまでに、検出されたイベントに対応するデータ処理が終了するか否かを判断する。
【００６２】
また、同一のセンサーノード１０１についての送信データを親機１０２が複数回受信する場合があるため、親機１０２は、センサーノード１０１の識別情報ごとに最新の送信データに含まれる繁忙フラグｂｆを親機１０２の記憶装置６１０に記憶してもよい。そして、判定部６０２は、記憶装置６１０に記憶された繁忙フラグｂｆがアンセットである割合を算出する。判定部６０２は、算出した割合が所定割合以上であるか否かの判定によって、複数のセンサーノード１０１のうちの所定数以上のセンサーノード１０１からのセンシングｅｖに対応するデータ処理が終了する旨を示す判断情報が受信されたか否かを判定してもよい。
【００６３】
図１０は、実施例１にかかるセンシング時のセンサーノードの動作を示す説明図である。表１０００は、処理転送禁止フラグｔｆと、繁忙フラグｂｆと、の状態に基づくセンサーノード１０１の動作を示している。たとえば、処理転送禁止フラグｔｆがアンセットであり、繁忙フラグｂｆがアンセットである場合、センサーノード１０１は、センシングｅｖ、データ処理、送信を順に行う。
【００６４】
たとえば、処理転送禁止フラグｔｆがアンセットであり、繁忙フラグｂｆがセットである場合、センサーノード１０１は、データ処理を行わず、センシングｅｖ、送信を順に行う。または、センサーノード１０１は、センシングｅｖ、データ処理のうちの一部のデータ処理、送信を順に行う。
【００６５】
たとえば、処理転送禁止フラグｔｆがセットの場合、繁忙フラグｂｆの状態に関わらず、センサーノード１０１は、センシングｅｖ、すべてのデータ処理、送信を順に行う。
【００６６】
図１１は、実施例１にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。表１１００は、あるセンサーノード１０１から親機１０２までの中継センサーノード１０１が当該あるセンサーノード１０１からの依頼情報を受信した場合における、各フラグとバッテリ３１２残量とに基づくセンサーノード１０１の動作を示している。
【００６７】
まず、処理転送禁止フラグｔｆがアンセットの場合について説明する。たとえば、自センサーノード１０１の繁忙フラグｂｆがアンセットであり、受信した依頼情報の処理フラグｐｆがセットである場合、センサーノード１０１は、受信した依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。
【００６８】
たとえば、センサーノード１０１の繁忙フラグｂｆがアンセットであり、処理フラグｐｆがアンセットである場合、センサーノード１０１は、バッテリ３１２残量が十分であれば、受信した依頼情報が示すデータ処理を実行する。そして、センサーノード１０１は、実行結果に、セットにした処理フラグｐｆを併せて、自センサーノード１０１と直接通信可能な第１装置に送信する。バッテリ３１２残量が十分であるとは、データ送信に要する電力量と、データ処理に要する電力量と、の合計値が、バッテリ３１２残量以下の場合である。
【００６９】
たとえば、センサーノード１０１の繁忙フラグｂｆがアンセットであり、処理フラグｐｆがアンセットである場合、センサーノード１０１は、バッテリ３１２の残量が不十分である場合、受信した依頼情報を直接通信可能な第１装置に送信する。バッテリ３１２残量が不十分であるとは、データ送信に要する電力量と、データ処理に要する電力量と、の合計値が、バッテリ３１２残量より大きい場合である。
【００７０】
たとえば、センサーノード１０１の繁忙フラグｂｆがセットであり、処理フラグｐｆがセットである場合、センサーノード１０１は、受信した依頼情報を自センサーノード１０１の周辺のセンサーノード１０１に送信する。たとえば、センサーノード１０１の繁忙フラグｂｆがセットであり、処理フラグｐｆがアンセットである場合、センサーノード１０１は、受信した依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。
【００７１】
つぎに、処理転送禁止フラグｔｆがセットの場合について説明する。処理転送禁止フラグｔｆがセットの場合、自センサーノード１０１の繁忙フラグｂｆおよび処理フラグｐｆの状態に関係なく、センサーノード１０１は、受信した依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。
【００７２】
図１２は、実施例１にかかる高負荷状態の割合によるデータ送信可能条件を示す説明図である。表１２００は、複数のセンサーノード１０１のうちの高負荷状態のセンサーノード１０１の割合に応じたデータ送信の条件を示す。たとえば、複数のセンサーノード１０１のうち、高負荷状態であるセンサーノード１０１の割合が、所定割合未満の場合、各センサーノード１０１は、データ送信に関して禁止条件がない。そのため、データ処理の実行結果、データ処理の依頼情報、データ処理の一部のデータ処理の実行結果と残余のデータ処理の依頼情報のいずれであってもセンサーノード１０１は、自センサーノード１０１と直接通信可能な第１装置に送信してもよい。所定割合未満の場合とは、たとえば、上述したように、複数のセンサーノード１０１のうちセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を送信したセンサーノード１０１が所定数以上でない場合である。
【００７３】
また、たとえば、複数のセンサーノード１０１のうち、高負荷状態であるセンサーノード１０１の割合が、所定割合以上の場合、各センサーノード１０１は、依頼情報の送信が禁止となり、データ処理がすべて完了した実行結果のみを送信することができる。
【００７４】
（実施例１にかかるセンサーノード１０１が行う処理手順）
図１３は、実施例１にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ１３０１）、センシングｅｖの発生を検出したか否かを判断する（ステップＳ１３０２）。センシングｅｖの発生が検出されない場合（ステップＳ１３０２：Ｎｏ）、ステップＳ１３０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【００７５】
センシングｅｖの発生が検出された場合（ステップＳ１３０２：Ｙｅｓ）、センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖを更新する（ステップＳ１３０３）。たとえば、センサーノード１０１は、過去のセンシングｅｖの発生時刻を記憶しておき、過去の時刻が近い発生時刻と、あらたに検出されたセンシングｅｖの発生時刻と、の差分を算出することにより、センシングｅｖの時間間隔ｉｔｖを算出してもよい。さらに、たとえば、センサーノード１０１は、過去のセンシングｅｖの時間間隔ｉｔｖの平均値を算出してもよい。
【００７６】
センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖが閾値未満であるか否かを判断する（ステップＳ１３０４）。閾値は、たとえば、データ処理にかかる時間であってもよい。これにより、センサーノード１０１は、検出されたイベントに対応するデータ処理が、検出されたイベントのつぎのイベントの発生時までに終了するか否かを判断することができる。センシングｅｖの時間間隔ｉｔｖが閾値未満である場合（ステップＳ１３０４：Ｙｅｓ）、センサーノード１０１は、繁忙フラグｂｆをセットに設定する（ステップＳ１３０５）。センシングｅｖの時間間隔ｉｔｖが閾値未満でない場合（ステップＳ１３０４：Ｎｏ）、センサーノード１０１は、繁忙フラグｂｆをアンセットに設定する（ステップＳ１３０６）。
【００７７】
ステップＳ１３０５、またはステップＳ１３０６のつぎに、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ１３０７）。処理転送禁止フラグｔｆがアンセットの場合（ステップＳ１３０７：アンセット）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ１３０８）。
【００７８】
繁忙フラグｂｆがセットの場合（ステップＳ１３０８：セット）、センサーノード１０１は、センシングの時間間隔ｉｔｖ以内で処理可能な一部のデータ処理を実行し（ステップＳ１３０９）、処理フラグｐｆを設定する（ステップＳ１３１１）。ここでは、データ処理が完了していないため、処理フラグｐｆは、アンセットが設定される。センサーノード１０１は、一部のデータ処理の実行結果と、依頼情報と、を併せて、自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ１３１２）、ステップＳ１３０１へ戻る。ここでの依頼情報には、データ処理のうちの一部のデータ処理以外のデータ処理を実行させる情報と、当該一部のデータ処理以外のデータ処理を直接通信可能な装置に送信させる情報と、が含まれる。図１３の例では、繁忙フラグｂｆにセットが設定されていても、Ｓ１３０９のように、データ処理のうちの一部のデータ処理が実行されているが、これに限らず、センサーノード１０１は、データ処理を実行せずに直ちに依頼情報を送信してもよい。
【００７９】
処理転送禁止フラグｔｆがセットの場合（ステップＳ１３０７：セット）、または繁忙フラグｂｆがアンセットの場合（ステップＳ１３０８：アンセット）、センサーノード１０１は、データ処理のすべてを実行する（ステップＳ１３１０）。そして、センサーノード１０１は、処理フラグｐｆを設定する（ステップＳ１３１１）。ここで、データ処理がすべて実行されるため、処理フラグｐｆはセットが設定される。センサーノード１０１は、データ処理の実行結果を自センサーノード１０１と直接通信可能な装置に送信する（ステップＳ１３１２）。
【００８０】
図１４は、実施例１にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ１４０１）、自センサーノード１０１の周辺のセンサーノード１０１からデータを受信したか否かを判断する（ステップＳ１４０２）。自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信されていない場合（ステップＳ１４０２：Ｎｏ）、ステップＳ１４０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【００８１】
自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信された場合（ステップＳ１４０２：Ｙｅｓ）、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ１４０３）。処理転送禁止フラグｔｆがセットの場合（ステップＳ１４０３：セット）、センサーノード１０１は、受信したデータを自センサーノード１０１と直接通信可能な装置に送信する（ステップＳ１４０９）。処理転送禁止フラグｔｆがアンセットの場合（ステップＳ１４０３：アンセット）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ１４０４）。繁忙フラグｂｆがセットの場合（ステップＳ１４０４：セット）、ステップＳ１４０９へ移行する。
【００８２】
繁忙フラグｂｆがアンセットの場合（ステップＳ１４０４：アンセット）、センサーノード１０１は、受信したデータの処理フラグｐｆをチェックする（ステップＳ１４０５）。処理フラグｐｆにセットが設定されている場合（ステップＳ１４０５：セット）、受信したデータについてのデータ処理が終了しているため、ステップＳ１４０９へ移行する。処理フラグｐｆにセットが設定されていない場合（ステップＳ１４０５：アンセット）、センサーノード１０１は、バッテリ３１２の電力量残量をチェックする（ステップＳ１４０６）。このとき、センサーノード１０１は、受信したデータが示すデータ処理の実行にかかる電力量と、受信したデータが示すデータ処理の実行結果の送信にかかる電力量と、の合計値を見積もる。センサーノード１０１は、バッテリ３１２の電力量が合計値以上であるか否かに基づいて、バッテリ３１２の電力量が十分か不十分かを判定する。たとえば、バッテリ３１２の電力量が合計値以上であれば、センサーノード１０１は、十分であると判定し、バッテリ３１２の電力量が合計値未満であれば、センサーノード１０１は、不十分であると判定する。
【００８３】
十分である場合（ステップＳ１４０６：十分）、センサーノード１０１は、受信したデータが示すデータ処理を実行し、処理フラグｐｆを更新する（ステップＳ１４０７）。そして、センサーノード１０１は、データ処理の実行結果を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ１４０８）、ステップＳ１４０１へ戻る。一方、不十分である場合（ステップＳ１４０６：不十分）、ステップＳ１４０９へ移行する。
【００８４】
図１５は、実施例１にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ１５０１）、親機１０２からの通信を受信したか否かを判断する（ステップＳ１５０２）。センサーノード１０１は、親機１０２からの通知を受信していない場合（ステップＳ１５０２：Ｎｏ）、ステップＳ１５０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【００８５】
センサーノード１０１は、親機１０２からの通信を受信した場合（ステップＳ１５０２：Ｙｅｓ）、処理転送禁止フラグｔｆのセット通知であるかアンセット通知であるかを判断する（ステップＳ１５０３）。処理転送禁止フラグｔｆのアンセット通知である場合（ステップＳ１５０３：Ｎｏ）、センサーノード１０１は、自センサーノード１０１の記憶装置５１０に記憶された処理転送禁止フラグｔｆをアンセットに設定し（ステップＳ１５０４）、ステップＳ１５０１へ戻る。処理転送禁止フラグｔｆのセット通知である場合（ステップＳ１５０３：Ｙｅｓ）、センサーノード１０１は、自センサーノード１０１の記憶装置５１０に記憶された処理転送禁止フラグｔｆをセットに設定し（ステップＳ１５０５）、ステップＳ１５０１へ戻る。
【００８６】
（実施例１にかかる親機１０２が行う処理手順）
図１６は、実施例１にかかる親機が行う処理手順例を示すフローチャートである。まず、親機１０２は、センサーノード１０１からのデータを受信したか否かを判断する（ステップＳ１６０１）。親機１０２は、センサーノード１０１からのデータを受信していない場合（ステップＳ１６０１：Ｎｏ）、ステップＳ１６０１へ戻る。親機１０２は、センサーノード１０１からのデータを受信した場合（ステップＳ１６０１：Ｙｅｓ）、受信したデータに含まれる繁忙フラグｂｆに基づいて非繁忙ノード割合カウンタｃｔを更新する（ステップＳ１６０２）。たとえば、親機１０２は、受信したデータに含まれるセンサーノード１０１の識別情報と繁忙フラグｂｆとを関連付けて記憶する。そして、親機１０２は、センサーノード１０１の数と、繁忙フラグｂｆがアンセットである数と、に基づいて、非繁忙ノード割合カウンタｃｔの値を設定してもよい。
【００８７】
親機１０２は、通知中の処理転送禁止フラグｔｆをチェックする（ステップＳ１６０３）。たとえば、親機１０２が処理転送禁止フラグｔｆを記憶装置６１０に記憶し、親機１０２が当該記憶装置６１０を参照することにより、通知中の処理転送禁止フラグｔｆをチェックしてもよい。通知中の処理転送禁止フラグｔｆがセットの場合（ステップＳ１６０３：セット）、親機１０２は、非繁忙ノード割合カウンタｃｔをチェックする（ステップＳ１６０４）。
【００８８】
非繁忙ノード割合カウンタｃｔが閾値以上である場合（ステップＳ１６０４：閾値以上）、親機１０２は、処理転送禁止フラグｔｆのアンセットを複数のセンサーノード１０１に通知する（ステップＳ１６０５）。これにより、直接通信可能な装置へ依頼情報を送信させない依頼禁止状態を解除する要求情報が複数のセンサーノード１０１に送信される。親機１０２は、通知中の処理転送禁止フラグｔｆの状態をアンセットに更新し（ステップＳ１６０６）、ステップＳ１６０１へ戻る。ステップＳ１６０４において、非繁忙ノード割合カウンタｃｔが閾値未満である場合（ステップＳ１６０４：閾値未満）、ステップＳ１６０１へ戻る。
【００８９】
通知中の処理転送禁止フラグｔｆがアンセットの場合（ステップＳ１６０３：アンセット）、親機１０２は、非繁忙ノード割合カウンタｃｔをチェックする（ステップＳ１６０７）。非繁忙ノード割合カウンタｃｔが閾値未満である場合（ステップＳ１６０７：閾値未満）、親機１０２は、処理転送禁止フラグｔｆのセットを複数のセンサーノード１０１に通知する（ステップＳ１６０８）。これにより、センサーノード１０１が検出されたイベントに対応するデータ処理がつぎのイベントの発生までに終了しないと判断しても、依頼情報を直接通信可能な装置へ送信させない依頼禁止状態にする要求情報が複数のセンサーノード１０１に送信される。親機１０２は、通知中の処理転送禁止フラグｔｆの状態をセットに更新し（ステップＳ１６０９）、ステップＳ１６０１へ戻る。ステップＳ１６０７において、非繁忙ノード割合カウンタｃｔが閾値以上である場合（ステップＳ１６０７：閾値以上）、ステップＳ１６０１へ戻る。
【００９０】
（実施例２）
実施例２では、高負荷状態であるセンサーノード１０１の割合に応じて、センシングノードが実施するデータ処理量を２段階に分ける。これにより、高負荷状態であるセンサーノード１０１の数が少なければ、高負荷状態であるセンサーノード１０１の負荷量を他のセンサーノード１０１に分散させることができる。高負荷状態であるセンサーノード１０１の数が多ければ、他のセンサーノード１０１に依頼するデータ処理量を減少させることにより、未処理のデータ処理が親機１０２に送信されることを防止することができる。
【００９１】
送信部５０４は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が判断部５０２によって出力された場合、当該判断情報を、直接または複数のセンサーノード１０１のうちの他のセンサーノード１０１を介して親機１０２へ送信する。
【００９２】
受信部６０１は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を受信する。判定部６０２は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報の受信結果に基づいて、複数のセンサーノード１０１の中でセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を送信したセンサーノード１０１の数を判定する。送信部６０３は、複数のセンサーノード１０１に、判定した数に基づく判定情報を送信する。判定情報は、たとえば、判定した数でもよいし、複数のセンサーノード１０１のうちの判定した数に基づく割合でもよいし、当該割合を示す情報でもよい。ここでは、たとえば、判定情報は、処理転送禁止フラグｔｆである。実施例２では、処理転送禁止フラグｔｆは、２ビットのデータとする。
【００９３】
図１７は、処理転送禁止フラグの設定例を示す説明図である。表１７００は、各割合に応じて決定される処理転送禁止フラグｔｆの値を示す。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が、１／３未満であれば、親機１０２は、処理転送禁止フラグｔｆを“００”に設定する。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が、１／３以上であり２／３未満であれば、親機１０２は、処理転送禁止フラグｔｆを“０１”に設定する。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が、２／３以上であれば、親機１０２は、処理転送禁止フラグｔｆを“１１”に設定する。
【００９４】
受信部５０５は、判定情報を受信する。具体的には、受信部５０５は、親機１０２から処理転送禁止フラグｔｆを受信する。データ処理部５０３は、判断部５０２によって対応するデータ処理が終了しないと判断された場合、対応するデータ処理のうち判定情報が示す割合の一部のデータ処理を実行する。
【００９５】
送信部５０４は、依頼情報と、一部のデータ処理の実行結果と、を自センサーノード１０１の周辺のセンサーノード１０１に送信する。ここでの依頼情報は、当該一部のデータ処理以外のデータ処理を自センサーノード１０１と直接通信可能な装置に実行させる情報であって、当該直接通信可能な装置と直接通信可能な装置に、データ処理の実行結果を送信させる情報である。
【００９６】
図１８は、実施例２にかかるセンシング時のセンサーノードの動作を示す説明図である。表１８００は、処理転送禁止フラグｔｆと、繁忙フラグｂｆと、の状態に基づくセンサーノード１０１の動作を示す。たとえば、処理転送禁止フラグｔｆが“００”であり、繁忙フラグｂｆがセットである場合、センサーノード１０１は、センシングｅｖ、データ処理のうちの一部のデータ処理を実行、送信を順に行う。たとえば、一部のデータ処理については、イベントの発生の時間間隔ｉｔｖで処理可能なデータ処理量である。または、センサーノード１０１は、データ処理を行わず、センシングｅｖ、送信を順に行う。
【００９７】
たとえば、処理転送禁止フラグｔｆが“０１”であり、繁忙フラグｂｆがセットである場合、センサーノード１０１は、センシングｅｖ、データ処理のうちの１／２以上のデータ処理を実行、送信を順に行う。
【００９８】
たとえば、処理転送禁止フラグｔｆが“１１”である場合、繁忙フラグｂｆの状態に拘わらず、センサーノード１０１は、センシングｅｖ、データ処理のうちのすべてのデータ処理を実行、送信を順に行う。
【００９９】
また、表１８００に記載以外の各フラグの状態の場合には、センサーノード１０１は、センシングｅｖ、データ処理のうちのすべてのデータ処理を実行、送信を順に行う。
【０１００】
図１９は、実施例２にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。表１９００は、あるセンサーノード１０１から親機１０２までの中継センサーノード１０１が当該あるセンサーノード１０１からの依頼情報を受信した場合における、各フラグとバッテリ３１２残量とに基づくセンサーノード１０１の動作を示している。
【０１０１】
たとえば、処理転送禁止フラグｔｆが“００”であり、自センサーノード１０１の繁忙フラグｂｆがアンセットであり、受信した依頼情報の処理フラグｐｆがアンセットである。さらに、バッテリ３１２の残量が十分である場合、センサーノード１０１は、受信した依頼情報が示すデータ処理を可能な限り（イベントの発生の時間間隔ｉｔｖ等を参考にするなどする）実行する。センサーノード１０１は、受信した依頼情報が示すデータ処理のうち実行が終了したデータ処理を除いたデータ処理を自センサーノードと直接通信可能な第１装置に実行させる依頼情報と、実行結果と、を併せて第１装置に送信する。
【０１０２】
処理転送禁止フラグｔｆが“０１”であり、自センサーノード１０１の繁忙フラグｂｆがアンセットである。さらに、受信した依頼情報の処理フラグｐｆがアンセットであり、バッテリ３１２残量が十分である場合、センサーノード１０１は、受信した依頼情報が示すデータ処理の全体量の１／２の処理量までのデータ処理を実行する。そして、センサーノード１０１は、自センサーノード１０１と直接通信可能な第１装置に、依頼情報が示すデータ処理のうち実行が終了したデータ処理を除いたデータ処理に関する依頼情報と、実行結果と、を併せて第１装置に送信する。また、たとえば、受信した依頼情報がすでに１／２まで実行が終了している場合、センサーノード１０１は、受信した依頼情報が示すデータ処理をすべて実行する。
【０１０３】
また、表１９００に記載以外の各フラグおよびバッテリ３１２残量の場合には、センサーノード１０１は、受信した依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。
【０１０４】
図２０は、実施例２にかかる高負荷状態の割合によるデータ送信可能条件を示す説明図である。表２０００は、複数のセンサーノード１０１のうちの高負荷状態のセンサーノード１０１の割合に応じたデータ送信の条件を示す。たとえば、複数のセンサーノード１０１のうち、高負荷状態であるセンサーノード１０１の割合が、１／３未満の場合、各センサーノード１０１は、データ送信に関して禁止条件がない。そのため、データ処理の実行結果、データ処理の依頼情報、データ処理の一部のデータ処理の実行結果と残余のデータ処理の依頼情報のいずれであってもセンサーノード１０１は、自センサーノード１０１と直接通信可能な第１装置に送信してもよい。
【０１０５】
また、たとえば、複数のセンサーノード１０１のうち、高負荷状態であるセンサーノード１０１の割合が１／３以上の割合であり２／３未満の割合である場合、各センサーノード１０１は、データ処理のうち１／２以上のデータ処理を実行する。そして、センサーノード１０１は、１／２以上のデータ処理が完了した場合の依頼情報および実行結果を送信できる。
【０１０６】
また、たとえば、複数のセンサーノード１０１のうち、高負荷状態であるセンサーノード１０１の割合が、２／３以上の割合である場合、各センサーノード１０１は、データ処理がすべて完了した実行結果のみを送信することができる。
【０１０７】
（実施例２にかかるセンサーノード１０１が行う処理手順）
図２１は、実施例２にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ２１０１）、センシングｅｖの発生を検出したか否かを判断する（ステップＳ２１０２）。センシングｅｖの発生が検出されない場合（ステップＳ２１０２：Ｎｏ）、ステップＳ２１０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１０８】
センシングｅｖの発生が検出された場合（ステップＳ２１０２：Ｙｅｓ）、センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖを更新する（ステップＳ２１０３）。たとえば、センサーノード１０１は、過去のセンシングｅｖの発生時刻を記憶しておき、過去の時刻が近い発生時刻と、あらたに検出されたセンシングｅｖの発生時刻と、の差分を算出することにより、センシングｅｖの時間間隔ｉｔｖを算出してもよい。さらに、たとえば、センサーノード１０１は、過去のセンシングｅｖの時間間隔ｉｔｖの平均値を算出してもよい。
【０１０９】
センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖが閾値未満であるか否かを判断する（ステップＳ２１０４）。閾値は、たとえば、データ処理にかかる時間であってもよい。これにより、センサーノード１０１は、検出されたイベントに対応するデータ処理が、検出されたイベントのつぎのイベントの発生時までに終了するか否かを判断することができる。センシングｅｖの時間間隔ｉｔｖが閾値未満である場合（ステップＳ２１０４：Ｙｅｓ）、センサーノード１０１は、繁忙フラグｂｆをセットに設定する（ステップＳ２１０５）。センシングｅｖの時間間隔ｉｔｖが閾値未満でない場合（ステップＳ２１０４：Ｎｏ）、センサーノード１０１は、繁忙フラグｂｆをアンセットに設定する（ステップＳ２１０６）。
【０１１０】
ステップＳ２１０５、またはステップＳ２１０６のつぎに、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ２１０７）。処理転送禁止フラグｔｆが“０１”の場合（ステップＳ２１０７：“０１”）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２１０８）。繁忙フラグｂｆがセットの場合（ステップＳ２１０８：セット）、センサーノード１０１は、データ処理のうちの半分のデータ処理を実行し（ステップＳ２１０９）、処理フラグｐｆを設定する（ステップＳ２１１３）。ここでは、すべてのデータ処理が完了していないため、処理フラグｐｆがアンセットに設定される。そして、ステップＳ２１１４へ移行する。繁忙フラグｂｆがアンセットの場合（ステップＳ２１０８：アンセット）、ステップＳ２１１２へ移行する。
【０１１１】
処理転送禁止フラグｔｆが“００”の場合（ステップＳ２１０７：“００”）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２１１０）。繁忙フラグｂｆがセットの場合（ステップＳ２１１０：セット）、センサーノード１０１は、データ処理のうちのセンシングｅｖの時間間隔ｉｔｖ以内で処理可能な一部のデータ処理を実行し（ステップＳ２１１１）、処理フラグｐｆを設定する（ステップＳ２１１３）。ここでは、すべてのデータ処理が完了していないため、処理フラグｐｆがアンセットに設定される。そして、センサーノード１０１は、一部のデータ処理の実行結果と、依頼情報と、を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２１１４）、ステップＳ２１０１へ戻る。繁忙フラグｂｆがアンセットの場合（ステップＳ２１１０：アンセット）、ステップＳ２１１２へ移行する。
【０１１２】
処理転送禁止フラグｔｆが“１１”の場合（ステップＳ２１０７：“１１”）、センサーノード１０１は、すべてのデータ処理を実行し（ステップＳ２１１２）、処理フラグｐｆを設定する（ステップＳ２１１３）。ここでは、すべてのデータ処理が完了しているため、処理フラグｐｆにセットが設定される。センサーノード１０１は、実行結果を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２１１４）、ステップＳ２１０１へ戻る。
【０１１３】
図２２は、実施例２にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ２２０１）、自センサーノード１０１の周辺のセンサーノード１０１からデータを受信したか否かを判断する（ステップＳ２２０２）。自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信されていない場合（ステップＳ２２０２：Ｎｏ）、ステップＳ２２０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１１４】
自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信された場合（ステップＳ２２０２：Ｙｅｓ）、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ２２０３）。処理転送禁止フラグｔｆが“１１”の場合（ステップＳ２２０３：“１１”）、センサーノード１０１は、受信したデータを自センサーノード１０１と直接通信可能な装置に送信する（ステップＳ２２１０）。処理転送禁止フラグｔｆが“００”または“０１”の場合（ステップＳ２２０３：“００”または“０１”）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２２０４）。繁忙フラグｂｆがセットの場合（ステップＳ２２０４：セット）、ステップＳ２２１０へ移行する。
【０１１５】
繁忙フラグｂｆがアンセットの場合（ステップＳ２２０４：アンセット）、センサーノード１０１は、受信したデータの処理フラグｐｆをチェックする（ステップＳ２２０５）。処理フラグｐｆにセットが設定されている場合（ステップＳ２２０５：セット）、受信したデータについてのデータ処理が終了しているため、ステップＳ２２１０へ移行する。
【０１１６】
処理フラグｐｆにセットが設定されていない場合（ステップＳ２２０５：アンセット）、センサーノード１０１は、バッテリ３１２の電力量残量をチェックする（ステップＳ２２０６）。このとき、センサーノード１０１は、受信したデータが示すデータ処理の実行にかかる電力量と、受信したデータが示すデータ処理の実行結果の送信にかかる電力量と、の合計値を見積もる。センサーノード１０１は、バッテリ３１２の電力量が合計値以上であるか否かに基づいて、バッテリ３１２の電力量が十分か不十分かを判定する。たとえば、バッテリ３１２の電力量が合計値以上であれば、センサーノード１０１は、十分であると判定し、バッテリ３１２の電力量が合計値未満であれば、センサーノード１０１は、不十分であると判定する。
【０１１７】
十分である場合（ステップＳ２２０６：十分）、センサーノード１０１は、処理転送禁止フラグｔｆの値に応じて、受信したデータが示すデータ処理を実行し（ステップＳ２２０７）、処理フラグｐｆを更新する（ステップＳ２２０８）。そして、センサーノード１０１は、データ処理の実行結果を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２２０９）、ステップＳ２２０１へ戻る。一方、不十分である場合（ステップＳ２２０６：不十分）、ステップＳ２２１０へ移行する。
【０１１８】
図２３は、実施例２にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ２３０１）、親機１０２からの通信を受信したか否かを判断する（ステップＳ２３０２）。センサーノード１０１は、親機１０２からの通知を受信していない場合（ステップＳ２３０２：Ｎｏ）、ステップＳ２３０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１１９】
センサーノード１０１は、親機１０２からの通信を受信した場合（ステップＳ２３０２：Ｙｅｓ）、親機１０２から通知された値を処理転送禁止フラグｔｆに設定し（ステップＳ２３０３）、ステップＳ２３０１へ移行する。
【０１２０】
（実施例２にかかる親機１０２が行う処理手順）
図２４は、実施例２にかかる親機が行う処理手順例を示すフローチャートである。まず、親機１０２は、センサーノード１０１からのデータを受信したか否かを判断する（ステップＳ２４０１）。親機１０２は、センサーノード１０１からのデータを受信していない場合（ステップＳ２４０１：Ｎｏ）、ステップＳ２４０１へ戻る。親機１０２は、センサーノード１０１からのデータを受信した場合（ステップＳ２４０１：Ｙｅｓ）、受信したデータに含まれる繁忙フラグｂｆに基づいて非繁忙ノード割合カウンタｃｔを更新する（ステップＳ２４０２）。たとえば、親機１０２は、受信したデータに含まれるセンサーノード１０１の識別情報と繁忙フラグｂｆとを関連付けて記憶する。そして、親機１０２は、センサーノード１０１の数と、繁忙フラグｂｆがアンセットである数と、に基づいて、非繁忙ノード割合カウンタｃｔの値を設定してもよい。
【０１２１】
親機１０２は、非繁忙ノード割合カウンタｃｔをチェックする（ステップＳ２４０３）。非繁忙ノード割合カウンタｃｔに基づいて高負荷状態のセンサーノード１０１の割合が１／３未満である場合（ステップＳ２４０３：１／３未満）、親機１０２は、処理転送禁止フラグｔｆが“００”であるか否かを判断する（ステップＳ２４０４）。処理転送禁止フラグｔｆが“００”である場合（ステップＳ２４０４：Ｙｅｓ）、ステップＳ２４０１へ戻る。処理転送禁止フラグｔｆが“００”でない場合（ステップＳ２４０４：Ｎｏ）、親機１０２は、全センサーノード１０１に“００”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ２４０５）。そして、親機１０２は、通知中の処理転送禁止フラグｔｆを“００”に更新し（ステップＳ２４０６）、ステップＳ２４０１へ戻る。
【０１２２】
非繁忙ノード割合カウンタｃｔに基づいて高負荷状態のセンサーノード１０１の割合が１／３以上２／３未満である場合（ステップＳ２４０３：１／３〜２／３）、親機１０２は、処理転送禁止フラグｔｆが“０１”であるか否かを判断する（ステップＳ２４０７）。処理転送禁止フラグｔｆが“０１”である場合（ステップＳ２４０７：Ｙｅｓ）、ステップＳ２４０１へ戻る。処理転送禁止フラグｔｆが“０１”でない場合（ステップＳ２４０７：Ｎｏ）、親機１０２は、全センサーノード１０１に“０１”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ２４０８）。親機１０２は、通知中の処理転送禁止フラグｔｆを“０１”に更新し（ステップＳ２４０９）、ステップＳ２４０１へ戻る。
【０１２３】
非繁忙ノード割合カウンタｃｔに基づいて高負荷状態のセンサーノード１０１の割合が２／３以上である場合（ステップＳ２４０３：２／３以上）、親機１０２は、処理転送禁止フラグｔｆが“１１”であるか否かを判断する（ステップＳ２４１０）。処理転送禁止フラグｔｆが“１１”である場合（ステップＳ２４１０：Ｙｅｓ）、ステップＳ２４０１へ戻る。処理転送禁止フラグｔｆが“１１”でない場合（ステップＳ２４１０：Ｎｏ）、親機１０２は、全センサーノード１０１に“１１”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ２４１１）。親機１０２は、通知中の処理転送禁止フラグｔｆを“１１”に更新し（ステップＳ２４１２）、ステップＳ２４０１へ戻る。
【０１２４】
（実施例３）
実施例３では、高負荷状態であるセンサーノード１０１の割合に応じて、センシングノードが実施するデータ処理量をｎ段階に分ける。これにより、高負荷状態であるセンサーノード１０１の数が少なければ、高負荷状態であるセンサーノード１０１の負荷量を他のセンサーノード１０１に分散させることができる。高負荷状態であるセンサーノード１０１の数が多ければ、他のセンサーノード１０１に依頼するデータ処理量を減少させることにより、未処理のデータ処理が親機１０２に送信されることを防止することができる。
【０１２５】
送信部５０４は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が判断部５０２によって出力された場合、当該判断情報を、直接または複数のセンサーノード１０１のうちの他のセンサーノード１０１を介して親機１０２へ送信する。
【０１２６】
受信部６０１は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を受信する。判定部６０２は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報の受信結果に基づいて、複数のセンサーノード１０１の中で当該判断情報を送信したセンサーノード１０１の数を判定する。送信部６０３は、複数のセンサーノード１０１に、判定した数に基づく情報を送信する。判定した数に基づく情報は、たとえば、処理転送禁止フラグｔｆである。実施例３では、処理転送禁止フラグｔｆは、Ｘビットのデータとする。「Ｘ＞ｌｏｇ２（ｎ＋１）」である。
【０１２７】
図２５は、実施例３にかかる処理転送禁止フラグの設定例を示す説明図である。表２５００は、複数のセンサーノード１０１のうちの高負荷状態のセンサーノード１０１の割合に応じたデータ送信の条件を示す。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が、１／ｎ未満であれば、親機１０２は、Ｘビットの処理転送禁止フラグｔｆをすべて“０”に設定する。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が、１／ｎ以上であり２／ｎ未満であれば、親機１０２は、Ｘビットの処理転送禁止フラグｔｆのうち、最下位ビットを“１”にし、それ以外すべて“０”に設定する。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が２／ｎ以上３／ｎ未満であれば、親機１０２は、処理転送禁止フラグｔｆをＸビットの処理転送禁止フラグｔｆのうち、下位ビットを“１０”に設定する。そして、親機１０２は、Ｘビットの処理転送禁止フラグｔｆのうち、それ以外すべて“０”に設定する。たとえば、（ｍ−１）／ｎ以上ｍ／ｎ未満であれば、親機１０２は、Ｘビットの処理転送禁止フラグｔｆのうち、下位ビットを２進数の（ｍ−１）にし、余りの上位ビットを“０”にする。
【０１２８】
受信部５０５は、判定した数に基づく情報を受信する。具体的には、受信部５０５は、親機１０２から処理転送禁止フラグｔｆを受信する。
【０１２９】
データ処理部５０３は、判断部５０２によって対応するデータ処理が終了しないと判断された場合、対応するデータ処理のうち判定した数に基づく情報が示す一部のデータ処理を実行する。送信部５０４は、依頼情報と、一部のデータ処理の実行結果と、を自センサーノード１０１の周辺のセンサーノード１０１に送信する。依頼情報は、対応するデータ処理のうち一部のデータ処理以外のデータ処理を自センサーノード１０１と直接通信可能な第１装置に実行させる情報であって、第１装置と直接通信可能な第２装置に、実行結果を送信させる情報である。
【０１３０】
図２６は、実施例３にかかるセンシング時のセンサーノードの動作を示す説明図である。表２６００は、処理転送禁止フラグｔｆと、繁忙フラグｂｆと、の状態に基づくセンサーノード１０１の動作を示す。たとえば、Ｘビットの処理転送禁止フラグｔｆがすべて“０”であり、繁忙フラグｂｆがセットである場合、センサーノード１０１は、センシングｅｖ、データ処理のうちの一部のデータ処理を実行、送信を順に行う。または、センサーノード１０１は、データ処理を行わず、センシングｅｖ、送信を順に行う。たとえば、一部のデータ処理については、イベントの発生の時間間隔ｉｔｖで処理可能なデータ処理量である。
【０１３１】
たとえば、処理転送禁止フラグｔｆのうち下位２ビットが“０１”であり、残りの上位ビットが“０”であり、繁忙フラグｂｆがセットである場合、センサーノード１０１は、センシングｅｖ、データ処理のうちの１／ｎ以上のデータ処理を実行、送信を順に行う。
【０１３２】
たとえば、Ｘビットの処理転送禁止フラグｔｆがすべて“１”である場合、繁忙フラグｂｆの状態によらずに、センサーノード１０１は、センシングｅｖ、データ処理のうちのすべてのデータ処理を実行、送信を順に行う。表２６００以外の条件である繁忙フラグｂｆがアンセットの場合、センサーノード１０１は、センシングｅｖ、データ処理のうちのすべてのデータ処理を実行、送信を順に行う。
【０１３３】
図２７は、実施例３にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。表２７００は、あるセンサーノード１０１から親機１０２までの中継センサーノード１０１が当該あるセンサーノード１０１からの依頼情報を受信した場合における、各フラグとバッテリ３１２残量とに基づくセンサーノード１０１の動作を示している。
【０１３４】
たとえば、処理転送禁止フラグｔｆがすべて“０”であり、自センサーノード１０１の繁忙フラグｂｆがアンセットである。さらに、受信した依頼情報の処理フラグｐｆがアンセットであり、バッテリ３１２残量が十分である場合、センサーノード１０１は、受信した依頼情報が示すデータ処理を可能な限り（イベントの発生の時間間隔ｉｔｖ等を参考にするなどする）実行する。そして、センサーノード１０１は、自センサーノード１０１と直接通信可能な第１装置に、依頼情報が示すデータ処理のうち実行が終了したデータ処理を除いたデータ処理に関する依頼情報と、実行結果と、を併せて第１装置に送信する。
【０１３５】
また、たとえば、処理転送禁止フラグｔｆのうち最下位ビットが“１”であり、残りのビットが“０”であり、自センサーノード１０１の繁忙フラグｂｆがアンセットである。さらに、受信した依頼情報の処理フラグｐｆがアンセットであり、バッテリ３１２の残量が十分である場合、センサーノード１０１は、受信した依頼情報が示すデータ処理の処理量全体の（ｎ−１）／ｎの量のデータ処理を実行する。そして、センサーノード１０１は、自センサーノード１０１と直接通信可能な第１装置に、依頼情報が示すデータ処理のうち実行が終了したデータ処理を除いたデータ処理に関する依頼情報と、実行結果と、を併せて第１装置に送信する。また、たとえば、受信した依頼情報がすでに（ｎ−１）／ｎまで実行が終了している場合、センサーノード１０１は、受信した依頼情報が示すデータ処理をすべて実行する。
【０１３６】
また、表２７００に記載以外の各フラグおよびバッテリ３１２の残量の条件の場合には、センサーノード１０１は、受信した依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。
【０１３７】
（実施例３にかかるセンサーノード１０１が行う処理手順）
図２８は、実施例３にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ２８０１）、センシングｅｖの発生を検出したか否かを判断する（ステップＳ２８０２）。センシングｅｖの発生が検出されない場合（ステップＳ２８０２：Ｎｏ）、ステップＳ２８０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１３８】
センシングｅｖの発生が検出された場合（ステップＳ２８０２：Ｙｅｓ）、センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖを更新する（ステップＳ２８０３）。たとえば、センサーノード１０１は、過去のセンシングｅｖの発生時刻を記憶しておき、過去の時刻が近い発生時刻と、あらたに検出されたセンシングｅｖの発生時刻と、の差分を算出することにより、センシングｅｖの時間間隔ｉｔｖを算出してもよい。さらに、たとえば、センサーノード１０１は、過去のセンシングｅｖの時間間隔ｉｔｖの平均値を算出してもよい。
【０１３９】
センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖが閾値未満であるか否かを判断する（ステップＳ２８０４）。閾値は、たとえば、データ処理にかかる時間であってもよい。これにより、センサーノード１０１は、検出されたイベントに対応するデータ処理が、検出されたイベントのつぎのイベントの発生時までに終了するか否かを判断することができる。センシングｅｖの時間間隔ｉｔｖが閾値未満である場合（ステップＳ２８０４：Ｙｅｓ）、センサーノード１０１は、繁忙フラグｂｆをセットに設定する（ステップＳ２８０５）。センシングｅｖの時間間隔ｉｔｖが閾値未満でない場合（ステップＳ２８０４：Ｎｏ）、センサーノード１０１は、繁忙フラグｂｆをアンセットに設定する（ステップＳ２８０６）。
【０１４０】
ステップＳ２８０５、またはステップＳ２８０６のつぎに、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ２８０７）。処理転送禁止フラグｔｆが“００・・・０１”の場合（ステップＳ２８０７：“００・・・０１”）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２８０８）。繁忙フラグｂｆがセットの場合（ステップＳ２８０８：セット）、センサーノード１０１は、データ処理のうちの処理量全体の１／ｎの量のデータ処理を実行し（ステップＳ２８０９）、処理フラグｐｆを設定する（ステップＳ２８１３）。ここでは、すべてのデータ処理が完了していないため、処理フラグｐｆがアンセットに設定される。そして、ステップＳ２８１４へ移行する。繁忙フラグｂｆがアンセットの場合（ステップＳ２８０８：アンセット）、ステップＳ２８１２へ移行する。
【０１４１】
同様に、処理転送禁止フラグｔｆの値に基づいて、データ処理のうちの一部のデータ処理の量が決定される。
【０１４２】
処理転送禁止フラグｔｆがすべて“０”の場合（ステップＳ２８０７：“００・・・００”）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２８１０）。繁忙フラグｂｆがセットの場合（ステップＳ２８１０：セット）、センサーノード１０１は、データ処理のうちのセンシングｅｖの時間間隔ｉｔｖ以内で処理可能な一部のデータ処理を実行し（ステップＳ２８１１）、処理フラグｐｆを設定する（ステップＳ２８１３）。ここでは、すべてのデータ処理が完了していないため、処理フラグｐｆがアンセットに設定される。そして、センサーノード１０１は、一部のデータ処理の実行結果と、依頼情報と、を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２８１４）、ステップＳ２８０１へ戻る。繁忙フラグｂｆがアンセットの場合（ステップＳ２８１０：アンセット）、ステップＳ２８１２へ移行する。
【０１４３】
処理転送禁止フラグｔｆがすべて“１”の場合（ステップＳ２８０７：“１１・・・１１”）、センサーノード１０１は、すべてのデータ処理を実行し（ステップＳ２８１２）、処理フラグｐｆを設定する（ステップＳ２８１３）。ここでは、すべてのデータ処理が完了しているため、処理フラグｐｆにセットが設定される。センサーノード１０１は、実行結果を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２８１４）、ステップＳ２８０１へ戻る。
【０１４４】
図２９は、実施例３にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ２９０１）、自センサーノード１０１の周辺のセンサーノード１０１からデータを受信したか否かを判断する（ステップＳ２９０２）。自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信されていない場合（ステップＳ２９０２：Ｎｏ）、ステップＳ２９０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１４５】
自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信された場合（ステップＳ２９０２：Ｙｅｓ）、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ２９０３）。処理転送禁止フラグｔｆがすべて“１”の場合（ステップＳ２９０３：“１１・・・１１”）、センサーノード１０１は、受信したデータを自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２９１０）、ステップＳ２９０１へ戻る。処理転送禁止フラグｔｆがすべて“１”以外の場合（ステップＳ２９０３：“１１・・・１１”以外の値）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２９０４）。繁忙フラグｂｆがセットの場合（ステップＳ２９０４：セット）、ステップＳ２９１０へ移行する。
【０１４６】
繁忙フラグｂｆがアンセットの場合（ステップＳ２９０４：アンセット）、センサーノード１０１は、受信したデータの処理フラグｐｆをチェックする（ステップＳ２９０５）。処理フラグｐｆにセットが設定されている場合（ステップＳ２９０５：セット）、受信したデータについてのデータ処理が終了しているため、ステップＳ２９１０へ移行する。処理フラグｐｆにセットが設定されていない場合（ステップＳ２９０５：アンセット）、センサーノード１０１は、バッテリ３１２の電力量残量をチェックする（ステップＳ２９０６）。このとき、センサーノード１０１は、受信したデータが示すデータ処理の実行にかかる電力量と、受信したデータが示すデータ処理の実行結果の送信にかかる電力量と、の合計値を見積もる。センサーノード１０１は、バッテリ３１２の電力量が合計値以上であるか否かに基づいて、バッテリ３１２の電力量が十分か不十分かを判定する。たとえば、バッテリ３１２の電力量が合計値以上であれば、センサーノード１０１は、十分であると判定し、バッテリ３１２の電力量が合計値未満であれば、センサーノード１０１は、不十分であると判定する。
【０１４７】
十分である場合（ステップＳ２９０６：十分）、センサーノード１０１は、処理転送禁止フラグｔｆの値に応じて、受信したデータが示すデータ処理を実行し（ステップＳ２９０７）、処理フラグｐｆを更新する（ステップＳ２９０８）。そして、センサーノード１０１は、データ処理の実行結果を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２９０９）、ステップＳ２９０１へ戻る。一方、不十分である場合（ステップＳ２９０６：不十分）、ステップＳ２９１０へ移行する。
【０１４８】
図３０は、実施例３にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ３００１）、親機１０２からの通信を受信したか否かを判断する（ステップＳ３００２）。センサーノード１０１は、親機１０２からの通知を受信していない場合（ステップＳ３００２：Ｎｏ）、ステップＳ３００１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１４９】
センサーノード１０１は、親機１０２からの通信を受信した場合（ステップＳ３００２：Ｙｅｓ）、親機１０２から通知された値を処理転送禁止フラグｔｆに設定し（ステップＳ３００３）、ステップＳ３００１へ移行する。
【０１５０】
（実施例３にかかる親機１０２が行う処理手順）
図３１は、実施例３にかかる親機が行う処理手順例を示すフローチャートである。まず、親機１０２は、センサーノード１０１からのデータを受信したか否かを判断する（ステップＳ３１０１）。親機１０２は、センサーノード１０１からのデータを受信していない場合（ステップＳ３１０１：Ｎｏ）、ステップＳ３１０１へ戻る。親機１０２は、センサーノード１０１からのデータを受信した場合（ステップＳ３１０１：Ｙｅｓ）、受信したデータに含まれる繁忙フラグｂｆに基づいて非繁忙ノード割合カウンタｃｔを更新する（ステップＳ３１０２）。たとえば、親機１０２は、受信したデータに含まれるセンサーノード１０１の識別情報と繁忙フラグｂｆとを関連付けて記憶する。そして、親機１０２は、センサーノード１０１の数と、繁忙フラグｂｆがアンセットである数と、に基づいて、非繁忙ノード割合カウンタｃｔの値を設定してもよい。
【０１５１】
親機１０２は、非繁忙ノード割合カウンタｃｔをチェックする（ステップＳ３１０３）。非繁忙ノード割合カウンタｃｔに基づいて判断された高負荷状態のセンサーノード１０１の割合が１／ｎ未満である場合（ステップＳ３１０３：１／ｎ未満）、親機１０２は、処理転送禁止フラグｔｆがすべて“０”であるか否かを判断する（ステップＳ３１０４）。処理転送禁止フラグｔｆがすべて“０”である場合（ステップＳ３１０４：Ｙｅｓ）、ステップＳ３１０１へ戻る。処理転送禁止フラグｔｆがすべて“０”でない場合（ステップＳ３１０４：Ｎｏ）、親機１０２は、全センサーノード１０１にすべて“０”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ３１０５）。そして、親機１０２は、通知中の処理転送禁止フラグｔｆをすべて“０”に更新し（ステップＳ３１０６）、ステップＳ３１０１へ戻る。
【０１５２】
非繁忙ノード割合カウンタｃｔに基づいて判断された高負荷状態のセンサーノード１０１の割合が１／ｎ以上２／ｎ未満である場合（ステップＳ３１０３：１／ｎ〜２／ｎ）、親機１０２は、処理転送禁止フラグｔｆが“００・・・０１”であるか否かを判断する（ステップＳ３１０７）。処理転送禁止フラグｔｆが“００・・・０１”である場合（ステップＳ３１０７：Ｙｅｓ）、ステップＳ３１０１へ戻る。処理転送禁止フラグｔｆが“００・・・０１”でない場合（ステップＳ３１０７：Ｎｏ）、親機１０２は、全センサーノード１０１に“００・・・０１”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ３１０８）。親機１０２は、通知中の処理転送禁止フラグｔｆを“００・・・０１”に更新し（ステップＳ３１０９）、ステップＳ３１０１へ戻る。高負荷状態のセンサーノード１０１の割合が（ｍ−１）／ｎ〜ｍ／ｎである場合も同様に、処理が行われる。
【０１５３】
非繁忙ノード割合カウンタｃｔに基づいて判断された高負荷状態のセンサーノード１０１の割合が（ｎ−１）／ｎ以上である場合（ステップＳ３１０３：（ｎ−１）／ｎ以上）、親機１０２は、処理転送禁止フラグｔｆがすべて“１”であるか否かを判断する（ステップＳ３１１０）。処理転送禁止フラグｔｆがすべて“１”である場合（ステップＳ３１１０：Ｙｅｓ）、ステップＳ３１０１へ戻る。処理転送禁止フラグｔｆがすべて“１”でない場合（ステップＳ３１１０：Ｎｏ）、親機１０２は、全センサーノード１０１にすべて“１”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ３１１１）。親機１０２は、通知中の処理転送禁止フラグｔｆをすべて“１”に更新し（ステップＳ３１１２）、ステップＳ３１０１へ戻る。
【０１５４】
以上説明したように、通信装置、システム、および通信方法によれば、イベント発生時に行うデータ処理にかかる時間に対してイベント発生間隔が短い場合、自通信装置から親機までの中継通信装置に該データ処理と処理結果の送信とを依頼する。これにより、イベント発生時のデータ処理の放棄を低減させることができる。たとえば、データ処理の実行結果を親機や利用者端末が時系列で解析する場合、データ処理の実行が放棄されると、解析精度が低下する。そのため、イベントの発生時についてのデータ処理の実行が放棄される回数が低減されることにより、解析精度を向上させることができる。
【０１５５】
たとえば、センサーネットワークシステムであれば、イベントはセンシングである。たとえば、センサーネットワークシステムにおける通信装置であるセンサーノードは、搭載されるプロセッサの能力が低い。そのため、通常のパーソナルコンピュータのように、処理を大量に待機させることができない。したがって、センシング間隔がデータ処理にかかる時間に対して短いと、センシング結果が破棄されてしまう。さらに、センサーノードは、無線通信で遠くにある親機やセンサーノードと通信を行うことが困難である。そのため、センシング結果やデータ処理の実行結果は、他のセンサーノードを介して親機までリレー転送される。センサーノードから親機までの中継センサーノードにデータ処理を依頼することができる。したがって、センシング結果の破棄を低減させることができる。
【０１５６】
また、中継通信装置は、データ処理の依頼情報を受信すると、当該データ処理を実行して、実行結果を送信する。これにより、センサーノードから親機までの中継センサーノードがデータ処理を行うことにより、センシング結果の破棄を低減させることができる。
【０１５７】
また、中継通信装置は、高負荷状態でない場合に、他の通信装置から依頼されたデータ処理を実行する。これにより、低負荷状態である通信装置にデータ処理が依頼される。
【０１５８】
たとえば、センサーネットワークシステムの各センサーノードは、発電された電力をバッテリによって蓄えて動作する。そのため、センサーノードは、依頼されたデータ処理を実行中にバッテリ切れになってしまう可能性がある。実行中にバッテリが切れると、実行途中までの結果が無駄になってしまう。そこで、中継通信装置は、バッテリ残量が十分にある場合、他の通信装置から依頼されたデータ処理を実行し、バッテリ残量が不十分である場合、依頼情報をそのまま他のセンサーノードに送信する。これにより、依頼されたデータ処理によってバッテリが切れるのを防止することができる。
【０１５９】
また、通信装置は、イベント発生時に行うデータ処理にかかる時間に対してイベント発生間隔が短い場合、当該発生間隔で処理可能な一部のデータ処理を実行し、残余のデータ処理について自通信装置から親機までの中継通信装置に依頼する。これにより、他の通信装置に依頼するデータ処理量を低減させることができる。
【０１６０】
システムにある通信装置の中で、高負荷状態である通信装置の数が増大すると、親機は、未処理のデータ処理が大量に受信する可能性がある。そこで、通信装置は、自通信装置から親機までの中継通信装置にデータ処理を依頼する場合、自通信装置が高負荷状態であることを親機に伝える。親機は、高負荷状態である通信装置の数が閾値以上である場合には他の通信装置にデータ処理を依頼することを禁止する。これにより、未処理のデータ処理が親機に大量に送信されることを防止することができる。
【０１６１】
また、通信装置は、自通信装置から親機までの中継通信装置にデータ処理を依頼しない場合、自通信装置が低負荷状態であることを親機に伝える。親機は、低負荷状態である通信装置の数が閾値以上である場合に、他の通信装置にデータ処理を依頼することを禁止されていたら、解除する。これにより、未処理のデータ処理が親機に送信されることを防止し、かつデータ処理の放棄を低減させることができる。
【０１６２】
また、通信装置は、自通信装置から親機までの中継通信装置にデータ処理を依頼する場合、自通信装置が高負荷状態であることを親機に伝える。親機は、高負荷状態である通信装置の数に基づいて、他の通信装置に依頼してもよいデータ処理量を決定する。これにより、高負荷状態である通信装置の数が少なければ、高負荷状態である通信装置の負荷量を他の通信装置に分散させることができる。高負荷状態である通信装置の数が多ければ、他の通信装置に依頼するデータ処理量を減少させることにより、未処理のデータ処理が親機に送信されることを防止することができる。
【符号の説明】
【０１６３】
１０１  センサーノード
１０２  親機
１００  センサーネットワークシステム
３０３，４０７  無線通信回路
３０５  ＭＣＵ
３１２  バッテリ
３０６  ＲＡＭ
３０７  ＲＯＭ
３０８  不揮発メモリ
４０１  ＣＰＵ
５０１  検出部
５０２  判断部
５０３  データ処理部
５０４，６０３  送信部
５０５，６０１  受信部
５０６  取得部
５０７，６０２  判定部
５０８  蓄電部
ｅｖ  センシング
ｔｆ  処理転送禁止フラグ
ｂｆ  繁忙フラグ
ｉｔｖ  時間間隔
【図１】
2014016912.tif 000003
【図２】
2014016912.tif 000004
【図３】
2014016912.tif 000005
【図４】
2014016912.tif 000006
【図５】
2014016912.tif 000007
【図６】
2014016912.tif 000008
【図７】
2014016912.tif 000009
【図８】
2014016912.tif 000010
【図９】
2014016912.tif 000011
【図１０】
2014016912.tif 000012
【図１１】
2014016912.tif 000013
【図１２】
2014016912.tif 000014
【図１３】
2014016912.tif 000015
【図１４】
2014016912.tif 000016
【図１５】
2014016912.tif 000017
【図１６】
2014016912.tif 000018
【図１７】
2014016912.tif 000019
【図１８】
2014016912.tif 000020
【図１９】
2014016912.tif 000021
【図２０】
2014016912.tif 000022
【図２１】
2014016912.tif 000023
【図２２】
2014016912.tif 000024
【図２３】
2014016912.tif 000025
【図２４】
2014016912.tif 000026
【図２５】
2014016912.tif 000027
【図２６】
2014016912.tif 000028
【図２７】
2014016912.tif 000029
【図２８】
2014016912.tif 000030
【図２９】
2014016912.tif 000031
【図３０】
2014016912.tif 000032
【図３１】
2014016912.tif 000033
【手続補正書】
【提出日】平成27年1月28日(2015.1.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
イベントの発生を検出する検出部と、
前記検出部によって検出されたイベントに対応するデータ処理が、前記検出されたイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、前記検出部によってイベントの発生が検出された時間間隔に基づいて出力する判断部と、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行するデータ処理部と、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する送信部と、
を有することを特徴とする通信装置。
【請求項２】
前記第１装置によって検出されたイベントに対応するデータ処理を実行させるとともに、前記第１装置に前記対応するデータ処理の実行結果を送信させる第１依頼情報を、前記第１装置から受信する受信部を有し、
前記データ処理部は、
前記第１依頼情報が示すデータ処理を実行し、
前記送信部は、
前記データ処理部による実行結果を、前記第１装置に送信することを特徴とする請求項１に記載の通信装置。
【請求項３】
情報を記憶する記憶装置をさらに有し、
前記判断部は、
前記判断情報を前記記憶装置に書き込み、
前記データ処理部は、
前記記憶装置に記憶されている前記判断情報が前記対応するデータ処理が終了しない旨を示している場合、前記第１依頼情報が示すデータ処理を実行せず、
前記送信部は、
前記記憶装置に記憶されている前記判断情報が前記対応するデータ処理が終了しない旨を示している場合、前記第１依頼情報を前記第１装置に送信することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記自通信装置に供給される電力を蓄電する蓄電部と、
前記第１依頼情報が示すデータ処理にかかる消費電力量と、前記第１依頼情報が示すデータ処理の実行結果の送信にかかる消費電力量と、の合計電力量を取得する取得部と、
前記蓄電部によって蓄電された電力量が、前記合計電力量以上であるか否かを示す判定信号を出力する判定部と、
を有し、
前記データ処理部は、
前記蓄電された電力量が前記合計電力量以上であることを示す前記判定信号が入力された場合に、前記第１依頼情報が示すデータ処理を実行し、前記蓄電された電力量が前記合計電力量未満であることを示す前記判定信号が入力された場合に、前記受信部によって受信された前記第１依頼情報が示すデータ処理を実行せず、
前記送信部は、
前記蓄電された電力量が前記合計電力量以上であることを示す前記判定信号が入力された場合に、前記データ処理部による実行結果を前記第１装置に送信し、前記蓄電された電力量が前記合計電力量未満であることを示す前記判定信号が入力された場合に、前記第１依頼情報を前記第１装置に送信することを特徴とする請求項２または３に記載の通信装置。
【請求項５】
イベントの発生を検出し、
検出したイベントに対応するデータ処理が、前記検出したイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、イベントの発生が検出された時間間隔に基づいて出力し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する、
処理を各々が実行する複数の第１通信装置と、
前記複数の第１通信装置から送信された前記対応するデータ処理の実行結果を前記複数の第１通信装置のうち自通信装置と通信可能な第１通信装置から受信して、受信した実行結果に基づくデータ処理を実行する第２通信装置と、
を有することを特徴とするシステム。
【請求項６】
前記複数の第１通信装置の各々が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を、直接または前記複数の第１通信装置のうちの他の第１通信装置を介して前記第２通信装置へ送信し、
前記第２通信装置が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を受信し、
前記複数の第１通信装置のうちの所定数以上の第１通信装置からの前記対応するデータ処理が終了しない旨を示す前記判断情報を受信したか否かを判定し、
前記所定数以上の第１通信装置からの前記対応するデータ処理が終了しない旨を示す前記判断情報を受信したと判定した場合、前記複数の第１通信装置に、前記第１通信装置が前記対応するデータ処理が終了しないと判断しても、前記依頼情報を前記第１通信装置と通信可能な周辺の装置に送信させない依頼禁止状態にする要求情報を送信することを特徴とする請求項５に記載のシステム。
【請求項７】
前記複数の第１通信装置の各々が、
前記対応するデータ処理が終了する旨を示す前記判断情報を、直接または前記複数の第１通信装置のうちの他の第１通信装置を介して前記第２通信装置へ送信し、
前記第２通信装置が、
前記対応するデータ処理が終了する旨を示す前記判断情報を受信し、
前記複数の第１通信装置のうちの所定数以上の第１通信装置からの前記対応するデータ処理が終了する旨を示す前記判断情報が受信されたか否かを判定し、
前記所定数以上の第１通信装置からの前記対応するデータ処理が終了する旨を示す前記判断情報を受信したと判定した場合、前記複数の第１通信装置に、前記依頼禁止状態を解除させる要求情報を送信することを特徴とする請求項６に記載のシステム。
【請求項８】
前記複数の第１通信装置の各々が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を、直接または前記複数の第１通信装置のうちの他の第１通信装置を介して前記第２通信装置へ送信し、
前記第２通信装置が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を受信し、
前記対応するデータ処理が終了しない旨を示す前記判断情報の受信結果に基づいて、前記複数の第１通信装置の中で前記対応するデータ処理が終了しない旨を示す前記判断情報を送信した第１通信装置の数を判定し、
前記複数の第１通信装置に、判定した数に基づく判定情報を送信し、
前記複数の第１通信装置の各々が、
前記判定情報を受信し、
前記対応するデータ処理が終了しないと判断した場合、前記対応するデータ処理のうち前記判定情報に基づく割合の一部のデータ処理を実行し、
前記対応するデータ処理のうち前記一部のデータ処理以外のデータ処理を前記第１装置に実行させる依頼情報であって、前記第２装置に、前記対応するデータ処理の実行結果を送信させる依頼情報と、前記一部のデータ処理の実行結果と、を前記第１装置に送信することを特徴とする請求項５に記載のシステム。
【請求項９】
通信装置が、
イベントの発生を検出し、
検出したイベントに対応するデータ処理が、前記検出したイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、イベントの発生が検出された時間間隔に基づいて出力し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する、
処理を実行することを特徴とする通信方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、システム、および通信方法に関する。
【背景技術】
【０００２】
従来、携帯無線端末において、基地局から直接にデータ転送が行えない端末があっても、他の端末を親機とし、当該親機を中継してデータ転送を行う技術が知られている（たとえば、下記特許文献１を参照。）。
【０００３】
また、サーバークライアントシステムにおいて、セキュリティー性の高いアプリケーションプログラムはサーバに実行させ、セキュリティー性の低いアプリケーションプログラムはクライアントに実行させることにより、負荷を分散する技術が知られている（たとえば、下記特許文献２を参照。）。
【０００４】
また、複数のセンサー付無線端末を所定空間に散在させ、それらが協調して環境や物理的状況を採取することを可能とするセンサネットワーク（ＷＳＮ：Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ）が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２３５６９４号公報
【特許文献２】特開２０１０−１８２１７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、イベントの発生時にデータ処理を実行する際に、データ処理がつぎのイベントの発生までに終了しない場合、データ処理の実行が放棄される場合がある。
【０００７】
１つの側面では、本発明は、イベント発生時におけるデータ処理の実行の放棄を低減することができる通信装置、システム、および通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、イベントの発生を検出し、検出したイベントに対応するデータ処理が、前記検出したイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、イベントの発生が検出された時間間隔に基づいて出力し、前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行し、前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する通信装置、および通信方法が提案される。
【０００９】
また、本発明の一側面によれば、イベントの発生を検出し、検出したイベントに対応するデータ処理が、前記検出したイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、イベントの発生が検出された時間間隔に基づいて出力し、前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行し、前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する、処理を各々が実行する複数の第１通信装置と、前記複数の第１通信装置から送信された前記対応するデータ処理の実行結果を前記複数の第１通信装置のうち自通信装置と通信可能な第１通信装置から受信して、受信した実行結果に基づくデータ処理を実行する第２通信装置と、を有するシステムが提案される。
【発明の効果】
【００１０】
本発明の一態様によれば、イベント発生時におけるデータ処理の実行の放棄を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、センサーネットワークシステムの一動作例を示す説明図である。
【図２】図２は、イベント発生間隔例を示す説明図である。
【図３】図３は、センサーノードのハードウェア構成例を示すブロック図である。
【図４】図４は、親機のハードウェア構成例を示すブロック図である。
【図５】図５は、センサーノードの機能的構成例を示すブロック図である。
【図６】図６は、親機の機能的構成例を示すブロック図である。
【図７】図７は、送信データ例を示す説明図である。
【図８】図８は、依頼禁止状態にする例を示す説明図である。
【図９】図９は、依頼禁止状態を解除する例を示す説明図である。
【図１０】図１０は、実施例１にかかるセンシング時のセンサーノードの動作を示す説明図である。
【図１１】図１１は、実施例１にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。
【図１２】図１２は、実施例１にかかる高負荷状態の割合によるデータ送信可能条件を示す説明図である。
【図１３】図１３は、実施例１にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。
【図１４】図１４は、実施例１にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。
【図１５】図１５は、実施例１にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。
【図１６】図１６は、実施例１にかかる親機が行う処理手順例を示すフローチャートである。
【図１７】図１７は、処理転送禁止フラグの設定例を示す説明図である。
【図１８】図１８は、実施例２にかかるセンシング時のセンサーノードの動作を示す説明図である。
【図１９】図１９は、実施例２にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。
【図２０】図２０は、実施例２にかかる高負荷状態の割合によるデータ送信可能条件を示す説明図である。
【図２１】図２１は、実施例２にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。
【図２２】図２２は、実施例２にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。
【図２３】図２３は、実施例２にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。
【図２４】図２４は、実施例２にかかる親機が行う処理手順例を示すフローチャートである。
【図２５】図２５は、実施例３にかかる処理転送禁止フラグの設定例を示す説明図である。
【図２６】図２６は、実施例３にかかるセンシング時のセンサーノードの動作を示す説明図である。
【図２７】図２７は、実施例３にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。
【図２８】図２８は、実施例３にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。
【図２９】図２９は、実施例３にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。
【図３０】図３０は、実施例３にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。
【図３１】図３１は、実施例３にかかる親機が行う処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本発明にかかる通信装置、システム、および通信方法の実施の形態を詳細に説明する。本実施の形態で説明するセンサーネットワークシステムでは、多数のセンサーを所定領域に設置して、各センサーがそれぞれ検出した検出情報を無線送信し、配置領域内のセンサーと無線通信可能な親機により検出情報を収集する。ここで、センサーとセンサーが検知したデータを処理可能なプロセッサを搭載した装置をセンサーノードと称する。たとえば、センサーノードは、所定領域内に数百個〜数万個配置されることとする。
【００１３】
図１は、センサーネットワークシステムの一動作例を示す説明図である。図２は、イベント発生間隔例を示す説明図である。センサーネットワークシステム１００は、たとえば、複数の第１通信装置である複数のセンサーノード１０１と、第２通信装置である親機１０２と、を有する。親機１０２も複数設けられていてもよい。複数のセンサーノード１０１は、所定領域Ａ内に配置されている。センサーノード１０１は広範囲に設置されるため、すべてのセンサーノード１０１が親機１０２に直接データを送信することは困難である。センシング結果に対応するデータ処理の結果は、他のセンサーノード１０１を経由してリレー転送によって親機１０２に到達することとする。
【００１４】
センサーノード１０１は、センシングｅｖと、データ処理と、送信と、を行う。センシングｅｖは、センサーノード１０１が有するセンサーによって発生したセンシングイベントを示す。データ処理は、センシングｅｖによるセンシング結果に対応するデータ処理を示す。送信とは、データ処理の実行結果の送信を示す。低負荷状態の場合には、センシングｅｖと、データ処理と、送信と、が順次繰り返し行われる。そして、センサーノード１０１は、データ処理の実行結果を親機１０２に送信するために、自センサーノード１０１と直接通信可能な装置に実行結果を送信する。当該直接通信可能な装置とは、親機１０２と複数のセンサーノード１０１とのうち、自センサーノード１０１の周辺にあるため、自センサーノード１０１と直接無線通信可能な装置である。
【００１５】
図２の低負荷状態で示すように、センシングｅｖの時間間隔ｔ１がデータ処理にかかる時間ｔ０よりも短い。一方、図２の高負荷状態で示すように、センシングｅｖの時間間隔ｔ２がデータ処理にかかる時間ｔ０よりも短い場合がある。センシングｅｖの時間間隔ｔ２がデータ処理にかかる時間ｔ０よりも短いと、データ処理がセンシングｅｖに追いつかないため、図２の×印で示すように、データ処理が放棄される。すなわち、センシング結果が破棄されなければならない。
【００１６】
上述したように、センサーノード１０１は、データ処理の結果を他のセンサーノード１０１を経由してリレー転送によって親機１０２に送信する。そこで、本実施の形態では、センシングｅｖの時間間隔がデータ処理にかかる時間よりも短いセンサーノード１０１は、センサーノード１０１−ｋから親機１０２までの中継センサーノード１０１にデータ処理を代わりに実行してもらう。図１の例では、中継センサーノード１０１−ｌが代わりにデータ処理を実行し、その実行結果を中継センサーノード１０１−ｍに送信する。そして、中継センサーノード１０１−ｍは、他のセンサーノード１０１に受信した実行結果を送信する。これにより、中継センサーノード１０１−ｌから親機１０２までに実行結果がリレー転送される。
【００１７】
または、センシングｅｖの時間間隔がデータ処理にかかる時間よりも短いセンサーノード１０１−ｋは、センサーノード１０１−ｋから親機１０２までの中継センサーノード１０１にデータ処理のうちの一部のデータ処理を代わりに実行してもらう。これにより、データ処理の実行の放棄を低減させることができる。したがって、センシング結果の破棄を低減させることができる。
【００１８】
たとえば、センシング結果に異常がある場合に、センシングｅｖに対応するデータ処理をセンサーノード１０１内のプロセッサに実行させる可能性が高くなる。温度センサーを例に挙げると、温度が閾値以上である場合にプロセッサへ割り込みを入れる場合、温度センサーからイベントが何度も発生する場合、センサーノード１０１が設置されている箇所に異常がある可能性がある。したがって、センシング結果に異常がある場合に高負荷状態になる可能性が高い。親機１０２は、センシング結果やセンシング結果に対応するデータ処理の実行結果を解析したり、利用者端末に当該実行結果に送信する。たとえば、センシング結果やセンシング結果に対応するデータ処理の実行結果に基づいて時系列で解析が行われる場合、センシング結果が破棄されると、解析精度が低下する。したがって、図１に示すように、センシング結果の破棄を低減させることにより、解析精度を向上させることができる。
【００１９】
図３は、センサーノードのハードウェア構成例を示すブロック図である。センサーノード１０１は、センサー３０１と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）３０２と、無線通信回路３０３と、マイクロプロセッサ（ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ））３０５と、を有する。センサーノード１０１は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０６と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０７と、不揮発メモリ３０８と、アンテナ３１０と、を有する。センサーノード１０１は、センサー３０１と、無線通信回路３０３と、マイクロプロセッサ（ＭＣＵ）３０５と、ＲＡＭ３０６と、ＲＯＭ３０７と、不揮発メモリ３０８と、を接続する内部バス３０９を有する。さらに、センサーノード１０１は、ハーベスタ３１１と、バッテリ３１２と、を有する。
【００２０】
センサー３０１は、設置箇所における所定の変位量を検出する。センサー３０１は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。アンテナ３１０は、親機１０２と無線通信する電波を送受信する。無線通信回路（ＲＦ）３０３は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ３１０を介して送信する。
【００２１】
マイクロプロセッサ（ＭＣＵ）３０５は、センサー３０１が検出したデータを処理する。ＲＡＭ３０６は、ＭＣＵ３０５における処理の一時データを格納する。ＲＯＭ３０７は、ＭＣＵ３０５が実行する処理プログラムなどを格納する。不揮発メモリ３０８は、電力供給が途絶えたときなどにおいても書き込まれた所定のデータを保持する。
【００２２】
ハーベスタ３１１は、センサーノード１０１の設置箇所における外部環境、たとえば、光、振動、温度、無線電波（受信電波）などのエネルギー変化に基づき発電を行う。ハーベスタ３１１は、センサー３０１によって検出された変位量に応じて発電を行ってもよい。バッテリ３１２は、ハーベスタ３１１により発電された電力を蓄える。すなわち、センサーノード１０１は、二次電池や外部電源などが不要であり、動作に必要な電力を自装置の内部で生成する。
【００２３】
ＰＭＵ３０２は、バッテリ３１２が蓄えた電力、またはハーベスタ３１１で得た電力を、センサーノード１０１の各部の駆動電源として供給する制御を行う。たとえば、ＰＭＵ３０２は、センサー３０１がセンシング処理を行うと、ＭＣＵ３０５を動作させるために、ＭＣＵ３０５へ電源を供給する。または、ＭＣＵ３０５がいずれの処理も行っていない場合には、ＰＭＵ３０２は、ＭＣＵ３０５への電源供給をやめる。
【００２４】
図４は、親機のハードウェア構成例を示すブロック図である。親機１０２は、センサーノード１０１と異なり、外部電源に基づき動作する。親機１０２は、センサーノード１０１のプロセッサ（ＭＣＵ３０５）よりも高性能なプロセッサ（ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１）と、大容量のＲＯＭ４０２およびＲＡＭ４０３と、を有する。親機１０２は、不揮発メモリ４０９と、インターフェース（Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ））回路４０４と、を有する。親機１０２は、ＣＰＵ４０１とＲＯＭ４０２とＲＡＭ４０３とＩ／Ｏ回路４０４と不揮発メモリ４０９とを接続するバス４０５を有する。
【００２５】
また、Ｉ／Ｏ回路４０４には、アンテナ４０６および無線通信回路（ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ））４０７と、ネットワークＩ／Ｆ４０８が接続されている。これにより、親機１０２は、アンテナ４０６および無線通信回路４０７を介して、センサーノード１０１と無線通信することができる。さらに、親機１０２は、ネットワークＩ／Ｆ４０８を介して、ＴＣＰ／ＩＰのプロトコル処理などにより、インターネットなどのネットワークＮＥＴを介してサーバ４１２や利用者端末４１１などの外部装置と通信を行うことができる。
【００２６】
（センサーノード１０１の機能的構成例）
図５は、センサーノードの機能的構成例を示すブロック図である。センサーノード１０１は、検出部５０１と、判断部５０２と、データ処理部５０３と、送信部５０４と、受信部５０５と、取得部５０６と、判定部５０７と、蓄電部５０８と、を有する。さらに、各センサーノード１０１は、繁忙フラグｂｆと、処理転送禁止フラグｔｆと、時間間隔ｉｔｖと、第１関数ｆ１（ｄｓ）と、第２関数ｆ２（ｄｓ）と、をＲＡＭ３０６、不揮発メモリ３０８などの記憶装置５１０に記憶する。図５に示す記憶装置５１０の各記憶内容については、後述する。蓄電部５０８は、たとえば、バッテリ３１２である。送信部５０４と受信部５０５とは、たとえば、無線通信回路３０３およびアンテナ３１０である。たとえば、検出部５０１から判定部５０７と、についての処理がコーディングされたプログラムがＲＯＭ３０７や不揮発メモリ３０８などの記憶装置５１０に記憶されている。ＭＣＵ３０５が当該記憶装置５１０からプログラムを読み出して、当該プログラムにコーディングされた処理を実行することにより、各部の処理が実現される。
【００２７】
（親機１０２の機能的構成例）
図６は、親機の機能的構成例を示すブロック図である。親機１０２は、受信部６０１と、判定部６０２と、送信部６０３と、を有する。親機１０２は、非繁忙ノード割合カウンタｃｔと、処理転送禁止フラグｔｆと、をＲＡＭ４０３、不揮発メモリ４０９などの記憶装置６１０に有する。非繁忙ノード割合カウンタｃｔについては、後述する。受信部６０１および送信部６０３は、たとえば、無線通信回路４０７およびアンテナ４０６である。判定部６０２についての処理がコーディングされたプログラムがＲＯＭ４０２や不揮発メモリ４０９などの記憶装置に記憶されている。ＣＰＵ４０１が当該記憶装置からプログラムを読み出して、当該プログラムにコーディングされた処理を実行することにより、判定部６０２の処理が実現される。または、ＣＰＵ４０１が、ネットワークＩ／Ｆ４０８を介して当該プログラムにコーディングされた処理を実行してもよい。
【００２８】
検出部５０１は、イベントの発生を検出する。各センサーノード１０１では、具体的には、検出部５０１は、センサーノード１０１内のセンサー３０１によるセンシングｅｖを検出する。
【００２９】
判断部５０２は、検出部５０１によって検出されたイベントに対応するデータ処理が、検出されたイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、検出部５０１によってイベントの発生が検出された時間間隔ｉｔｖに基づいて出力する。
【００３０】
たとえば、判断部５０２は、検出部５０１によるセンシングｅｖの発生が検出される都度、センシングｅｖの発生時刻を不揮発メモリ３０８などの記憶装置に記憶させてもよい。そして、判断部５０２は、直前に検出されたセンシングｅｖの発生時刻と、今回検出されたイベントの発生時刻と、の時間間隔ｉｔｖが、閾値以下であるか否かを判断してもよい。閾値は、たとえば、センシングｅｖに対応する処理にかかる時間であってもよい。閾値については、予めＲＯＭ３０７、不揮発メモリ３０８などの記憶装置に記憶されていることとする。または、たとえば、時刻が近い２つのイベントの時間間隔ｉｔｖを記憶装置に複数記憶させておき、判断部５０２は、該時間間隔ｉｔｖの平均値が、閾値以下であるか否かを判断してもよい。
【００３１】
対応するデータ処理が終了しない旨を示す判断情報が判断部５０２によって出力された場合、送信部５０４は、依頼情報を自通信装置と直接通信可能な第１装置へ送信する。直接通信可能な第１装置とは、自装置の周辺の通信装置であって、他のセンサーノード１０１または親機１０２である。依頼情報は、対応するデータ処理を他のセンサーノード１０１に実行させる情報であって、当該第１装置と直接通信可能な第２装置へ対応するデータ処理の実行結果を送信させる情報である。ここで、第２装置とは、他のセンサーノード１０１の周辺の通信装置である。
【００３２】
さらに、送信部５０４は、自センサーノード１０１が判断情報と、当該依頼情報と、を併せて第１装置に送信してもよい。たとえば、判断情報が対応するデータ処理が終了しない旨を示している場合、センサーノード１０１が高負荷状態であることを示す。一方、判断情報が対応するデータ処理が終了する旨を示している場合、センサーノード１０１が低負荷状態であることを示す。
【００３３】
また、判断部５０２は、センシングｅｖに対応するデータ処理が終了するか否かを示す判断情報を自センサーノード１０１の記憶装置５１０に記憶させる。具体的には、たとえば、判断部５０２は、繁忙フラグｂｆをセットすることにより、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が記憶装置５１０に記憶されたこととする。これにより、自センサーノード１０１が高負荷状態であることを示す。より具体的には、たとえば、判断部５０２は、繁忙フラグｂｆを“１”にすることにより、繁忙フラグｂｆをセットする。
【００３４】
また、具体的には、たとえば、判断部５０２は、繁忙フラグｂｆをアンセットすることにより、センシングｅｖに対応するデータ処理が終了する旨を示す判断情報が記憶装置５１０に記憶されたこととする。これにより、自センサーノード１０１が低負荷状態であることを示す。より具体的には、たとえば、判断部５０２は、繁忙フラグｂｆを“０”にすることにより、繁忙フラグｂｆをアンセットする。
【００３５】
データ処理部５０３は、センシングｅｖに対応するデータ処理が終了する旨を示す判断情報が判断部５０２によって出力された場合、センシングｅｖに対応するデータ処理を実行する。また、データ処理部５０３は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が判断部５０２によって出力された場合、センシングｅｖ対応するデータ処理の一部のデータ処理について実行する。一部のデータ処理については、たとえば、センシングｅｖの時間間隔ｉｔｖで可能な処理であってもよい。
【００３６】
そして、送信部５０４は、依頼情報と、一部のデータ処理の実行結果と、を自センサーノード１０１と直接通信可能な第１装置に送信する。ここでの依頼情報は、対応するデータ処理の一部のデータ処理以外の残余のデータ処理を他のセンサーノード１０１に実行させる情報であって、第１装置と直接通信可能な第２装置に、実行結果を送信させる情報である。
【００３７】
図７は、送信データ例を示す説明図である。たとえば、送信データは、データ本体と、繁忙フラグｂｆと、処理フラグｐｆと、を有する。データ本体には、たとえば、センサーノード１０１の識別情報、センシング結果、データ処理に関する情報、データ処理結果、後述する依頼情報などの情報が含まれる。さらに、データ本体は、センシング結果やデータ処理結果を識別するための識別情報が含まれていてもよい。判断部５０２によってセンシングｅｖに対応するデータ処理が終了しないと判断された場合、送信部５０４は、繁忙フラグｂｆをセットにし、処理フラグｐｆをアンセットにした送信データを送信する。
【００３８】
受信部５０５は、自センサーノード１０１の周辺のセンサーノード１０１から他のセンサーノード１０１についての依頼情報を受信する。具体的には、受信部５０５は、他のセンサーノード１０１からの送信データに含まれる処理フラグｐｆがアンセットである場合に、当該他のセンサーノード１０１によって検出されたイベントに対応するデータ処理を実行させる依頼情報を受信したと判断する。
【００３９】
そして、データ処理部５０３は、依頼情報が示すデータ処理を実行する。送信部５０４は、データ処理部５０３による実行結果を自センサーノード１０１と直接通信可能な周辺の通信装置に送信する。ここで、データ処理部５０３によって実行が完了している場合には、送信部５０４は、処理フラグｐｆをセットにして送信する。
【００４０】
また、記憶装置５１０にセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が記憶されている場合、データ処理部５０３は、受信部５０５によって受信された依頼情報が示すデータ処理を実行せず。そして、送信部５０４は、受信された依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。上述したように、記憶装置５１０にセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が記憶されている場合とは、繁忙フラグｂｆがセットである場合である。
【００４１】
また、取得部５０６は、受信部５０５によって受信された依頼情報が示すデータ処理にかかる消費電力量と、依頼情報が示すデータ処理の実行結果の送信にかかる消費電力量と、の合計値を取得する。
【００４２】
たとえば、データ処理のデータサイズによって変化するデータ処理に要する電力量の第１関数ｆ１（ｄｓ）と、データ送信のデータサイズによって変化するデータ送信に要する電力量の第２関数ｆ２（ｄｓ）と、を記憶装置５１０に記憶させておいてもよい。各関数内のｄｓはデータサイズによって各関数の値が変化することを示している。取得部５０６は、第１消費電力量と第２消費電力量との合計値を取得する。第１消費電力量は、依頼情報を示すデータ処理に関する情報のデータサイズが第１関数ｆ１（ｄｓ）に与えられて得られる。第２消費電力量は、依頼情報を示すデータ処理の実行結果の予測データサイズが第２関数ｆ２（ｄｓ）に与えられて得られる。また、センサーノード１０１が、第１消費電力量と第２消費電力量とを算出することにより、当該合計値を算出してもよい。
【００４３】
判定部５０７は、蓄電部５０８によって蓄電された電力量が、取得部５０６によって取得された合計値以上であるか否かを判定する。
【００４４】
判定部５０７によって蓄電された電力量が合計値以上であると判定された場合に、データ処理部５０３は、受信部５０５によって受信された依頼情報が示すデータ処理を実行する。そして、送信部５０４は、データ処理部５０３による実行結果を、自センサーノード１０１と直接通信可能な第１装置に送信する。
【００４５】
判定部５０７によって蓄電された電力量が合計値未満であると判定された場合に、データ処理部５０３は、受信部５０５によって受信された依頼情報が示すデータ処理を実行しない。そして、送信部５０４は、受信部５０５によって受信された依頼情報を、自センサーノード１０１と直接通信可能な第１装置に送信する。
【００４６】
また、たとえば、取得部５０６と判定部５０７についての処理は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が記憶装置５１０に記憶されていない場合に行う。一方、取得部５０６と判定部５０７についての処理は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が記憶装置５１０に記憶されている場合には行わなくてよい。
【００４７】
（実施例１）
センサーノード１０１が高負荷状態であるにも関わらず、未処理のデータがセンサーネットワークシステム１００において大量に転送されると、各センサーノード１０１が受信処理を何度も行わなければならず、負荷がかかる。さらに、未処理のデータが親機１０２に到達してしまう。そこで、実施例１では、親機１０２が、高負荷状態であるセンサーノード１０１が多い場合に、親機１０２が他のセンサーノード１０１へ未処理データの転送を禁止する要求情報を複数のセンサーノード１０１に送信する。
【００４８】
上述したように、送信部５０４は、依頼情報に、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を併せて自センサーノード１０１と直接通信可能な通信装置に送信する。ここでは、繁忙フラグｂｆがセットに設定されることにより、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を表す。具体的には、送信部５０４は、送信データ内の繁忙フラグｂｆをセットにして送信する。
【００４９】
受信部６０１は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を受信する。判定部６０２は、複数のセンサーノード１０１のうちの所定数以上のセンサーノード１０１からセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を受信したか否かを判定する。ここで、所定数については、たとえば、センサーネットワークシステム１００の設計者が決定し、ＲＯＭ４０２や不揮発メモリ４０９などの記憶装置に予め記憶されていることとする。これにより、判定部６０２は、高負荷状態であるセンサーノード１０１が所定数以上あるか否かを判定する。
【００５０】
図８は、依頼禁止状態にする例を示す説明図である。より具体的には、親機１０２は、非繁忙ノード割合カウンタｃｔを有する。非繁忙ノード割合カウンタｃｔは、複数のセンサーノード１０１のうち、低負荷状態であるセンサーノード１０１の割合をカウントする。
【００５１】
判定部６０２は、受信部６０１によって受信された送信データに含まれる繁忙フラグｂｆがセットである場合、非繁忙ノード割合カウンタｃｔをダウンさせる。たとえば、非繁忙ノード割合カウンタｃｔの値が所定数以下となった場合に、判定部６０２は、繁忙フラグｂｆがセットである送信データを所定数以上受信したと判定する。判定部６０２によって所定数以上のセンサーノード１０１からセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を受信したと判定された場合、送信部６０３は、複数のセンサーノード１０１に、依頼禁止状態にする要求情報を送信する。依頼禁止状態とは、判断部５０２が対応するデータ処理が終了しないと判断しても、自センサーノード１０１と直接通信可能な第１装置へ依頼情報を送信させない状態である。具体的には、依頼禁止状態にする要求情報とは、各センサーノード１０１が有する処理転送禁止フラグｔｆをセットにする情報である。たとえば、送信部６０３は、処理転送禁止フラグｔｆをアンセットからセットにして、すべてのセンサーノード１０１に送信する。具体的には、たとえば、送信部６０３は、“１”に設定した処理転送禁止フラグｔｆをすべてのセンサーノード１０１に送信する。
【００５２】
たとえば、受信部５０５は、依頼禁止状態にする要求情報を受信すると、処理転送禁止フラグｔｆをセットする。より具体的には、受信部５０５は、セットされた処理転送禁止フラグｔｆを受信し、受信部５０５によって受信された処理転送禁止フラグｔｆを記憶装置５１０に記憶させる。
【００５３】
たとえば、検出部５０１によってセンシングｅｖの発生が検出された場合に、処理転送禁止フラグｔｆがセットされていると、データ処理部５０３は、判断部５０２による判断に関係なく、検出されたセンシングｅｖに対応するデータ処理を行う。送信部５０４は、データ処理部５０３による実行結果を自センサーノード１０１と直接通信可能な第１装置に送信する。
【００５４】
また、同一のセンサーノード１０１についての送信データを親機１０２が複数回受信する場合があるため、親機１０２は、センサーノード１０１の識別情報ごとに最新の送信データに含まれる繁忙フラグｂｆを親機１０２の記憶装置６１０に記憶してもよい。そして、親機１０２は、記憶装置６１０に記憶された繁忙フラグｂｆがセットである割合を算出してもよい。
【００５５】
これにより、各センサーノード１０１の負荷が受信処理にかかるのを防止すると共に、これにより、未処理状態のデータが親機１０２に到達するのを防止することができる。
【００５６】
また、送信部５０４は、センシングｅｖに対応するデータ処理が終了する旨を示す判断情報が判断部５０２によって出力された場合、当該判断情報を、直接または複数のセンサーノード１０１のうちの他のセンサーノード１０１を介して親機１０２へ送信する。具体的には、送信部５０４は、判断部５０２によってセンシングｅｖに対応するデータ処理が終了すると判断された場合、データ処理部５０３による実行結果に併せて、セットにした処理フラグｐｆとアンセットにした繁忙フラグｂｆとを送信する。より具体的には、送信部５０４は、“０”に設定された繁忙フラグｂｆを実行結果に併せて送信する。
【００５７】
受信部６０１は、センシングｅｖに対応するデータ処理が終了する旨を示す判断情報を受信する。判定部６０２は、複数のセンサーノード１０１のうちの所定数以上のセンサーノード１０１からのセンシングｅｖに対応するデータ処理が終了する旨を示す判断情報が受信されたか否かを判定する。ここで、所定数については、たとえば、センサーネットワークシステム１００の設計者が決定し、ＲＯＭ４０２や不揮発メモリ４０９などの記憶装置に予め記憶されていることとする。これにより、判定部６０２は、低負荷状態であるセンサーノード１０１が所定数以上あるか否かを判定する。
【００５８】
図９は、依頼禁止状態を解除する例を示す説明図である。具体的には、判定部６０２は、受信部６０１によって受信された送信データに含まれる繁忙フラグｂｆがアンセットである場合、非繁忙ノード割合カウンタｃｔをアップさせる。
【００５９】
たとえば、非繁忙ノード割合カウンタｃｔの値が所定数より大きい場合に、判定部６０２は、繁忙フラグｂｆがアンセットである送信データを所定数以上受信したと判断する。
【００６０】
所定数以上のセンサーノード１０１からセンシングｅｖに対応するデータ処理が終了する旨を示す判断情報を受信したと判定部６０２によって判定された場合、送信部６０３は、複数のセンサーノード１０１に、依頼禁止状態を解除させる要求情報を送信する。具体的には、送信部６０３は、セットからアンセットにした処理転送禁止フラグｔｆをすべてのセンサーノード１０１に送信する。具体的には、たとえば、送信部６０３は、“０”に設定された処理転送禁止フラグｔｆをすべてのセンサーノード１０１に送信する。
【００６１】
受信部５０５は、依頼禁止状態を解除させる要求情報を受信する。具体的には、受信部５０５は、アンセットされた処理転送禁止フラグｔｆを受信して、記憶装置５１０に記憶させる。そして、検出部５０１によってセンシングｅｖの発生が検出された場合、処理転送禁止フラグｔｆがアンセットに設定されている。そのため、判断部５０２は、検出部５０１によるイベントの発生が検出された時間間隔ｉｔｖに基づいて、検出部５０１によって検出されたイベントのつぎに発生するイベントまでに、検出されたイベントに対応するデータ処理が終了するか否かを判断する。
【００６２】
また、同一のセンサーノード１０１についての送信データを親機１０２が複数回受信する場合があるため、親機１０２は、センサーノード１０１の識別情報ごとに最新の送信データに含まれる繁忙フラグｂｆを親機１０２の記憶装置６１０に記憶してもよい。そして、判定部６０２は、記憶装置６１０に記憶された繁忙フラグｂｆがアンセットである割合を算出する。判定部６０２は、算出した割合が所定割合以上であるか否かの判定によって、複数のセンサーノード１０１のうちの所定数以上のセンサーノード１０１からのセンシングｅｖに対応するデータ処理が終了する旨を示す判断情報が受信されたか否かを判定してもよい。
【００６３】
図１０は、実施例１にかかるセンシング時のセンサーノードの動作を示す説明図である。表１０００は、処理転送禁止フラグｔｆと、繁忙フラグｂｆと、の状態に基づくセンサーノード１０１の動作を示している。たとえば、処理転送禁止フラグｔｆがアンセットであり、繁忙フラグｂｆがアンセットである場合、センサーノード１０１は、センシングｅｖ、データ処理、送信を順に行う。
【００６４】
たとえば、処理転送禁止フラグｔｆがアンセットであり、繁忙フラグｂｆがセットである場合、センサーノード１０１は、データ処理を行わず、センシングｅｖ、送信を順に行う。または、センサーノード１０１は、センシングｅｖ、データ処理のうちの一部のデータ処理、送信を順に行う。
【００６５】
たとえば、処理転送禁止フラグｔｆがセットの場合、繁忙フラグｂｆの状態に関わらず、センサーノード１０１は、センシングｅｖ、すべてのデータ処理、送信を順に行う。
【００６６】
図１１は、実施例１にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。表１１００は、あるセンサーノード１０１から親機１０２までの中継センサーノード１０１が当該あるセンサーノード１０１からの依頼情報を受信した場合における、各フラグとバッテリ３１２残量とに基づくセンサーノード１０１の動作を示している。
【００６７】
まず、処理転送禁止フラグｔｆがアンセットの場合について説明する。たとえば、自センサーノード１０１の繁忙フラグｂｆがアンセットであり、受信した依頼情報の処理フラグｐｆがセットである場合、センサーノード１０１は、受信した依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。
【００６８】
たとえば、センサーノード１０１の繁忙フラグｂｆがアンセットであり、処理フラグｐｆがアンセットである場合、センサーノード１０１は、バッテリ３１２残量が十分であれば、受信した依頼情報が示すデータ処理を実行する。そして、センサーノード１０１は、実行結果に、セットにした処理フラグｐｆを併せて、自センサーノード１０１と直接通信可能な第１装置に送信する。バッテリ３１２残量が十分であるとは、データ送信に要する電力量と、データ処理に要する電力量と、の合計値が、バッテリ３１２残量以下の場合である。
【００６９】
たとえば、センサーノード１０１の繁忙フラグｂｆがアンセットであり、処理フラグｐｆがアンセットである場合、センサーノード１０１は、バッテリ３１２の残量が不十分である場合、受信した依頼情報を直接通信可能な第１装置に送信する。バッテリ３１２残量が不十分であるとは、データ送信に要する電力量と、データ処理に要する電力量と、の合計値が、バッテリ３１２残量より大きい場合である。
【００７０】
たとえば、センサーノード１０１の繁忙フラグｂｆがセットであり、処理フラグｐｆがセットである場合、センサーノード１０１は、受信した依頼情報を自センサーノード１０１の周辺のセンサーノード１０１に送信する。たとえば、センサーノード１０１の繁忙フラグｂｆがセットであり、処理フラグｐｆがアンセットである場合、センサーノード１０１は、受信した依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。
【００７１】
つぎに、処理転送禁止フラグｔｆがセットの場合について説明する。処理転送禁止フラグｔｆがセットの場合、自センサーノード１０１の繁忙フラグｂｆおよび処理フラグｐｆの状態に関係なく、センサーノード１０１は、受信した依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。
【００７２】
図１２は、実施例１にかかる高負荷状態の割合によるデータ送信可能条件を示す説明図である。表１２００は、複数のセンサーノード１０１のうちの高負荷状態のセンサーノード１０１の割合に応じたデータ送信の条件を示す。たとえば、複数のセンサーノード１０１のうち、高負荷状態であるセンサーノード１０１の割合が、所定割合未満の場合、各センサーノード１０１は、データ送信に関して禁止条件がない。そのため、データ処理の実行結果、データ処理の依頼情報、データ処理の一部のデータ処理の実行結果と残余のデータ処理の依頼情報のいずれであってもセンサーノード１０１は、自センサーノード１０１と直接通信可能な第１装置に送信してもよい。所定割合未満の場合とは、たとえば、上述したように、複数のセンサーノード１０１のうちセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を送信したセンサーノード１０１が所定数以上でない場合である。
【００７３】
また、たとえば、複数のセンサーノード１０１のうち、高負荷状態であるセンサーノード１０１の割合が、所定割合以上の場合、各センサーノード１０１は、依頼情報の送信が禁止となり、データ処理がすべて完了した実行結果のみを送信することができる。
【００７４】
（実施例１にかかるセンサーノード１０１が行う処理手順）
図１３は、実施例１にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ１３０１）、センシングｅｖの発生を検出したか否かを判断する（ステップＳ１３０２）。センシングｅｖの発生が検出されない場合（ステップＳ１３０２：Ｎｏ）、ステップＳ１３０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【００７５】
センシングｅｖの発生が検出された場合（ステップＳ１３０２：Ｙｅｓ）、センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖを更新する（ステップＳ１３０３）。たとえば、センサーノード１０１は、過去のセンシングｅｖの発生時刻を記憶しておき、過去の時刻が近い発生時刻と、あらたに検出されたセンシングｅｖの発生時刻と、の差分を算出することにより、センシングｅｖの時間間隔ｉｔｖを算出してもよい。さらに、たとえば、センサーノード１０１は、過去のセンシングｅｖの時間間隔ｉｔｖの平均値を算出してもよい。
【００７６】
センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖが閾値未満であるか否かを判断する（ステップＳ１３０４）。閾値は、たとえば、データ処理にかかる時間であってもよい。これにより、センサーノード１０１は、検出されたイベントに対応するデータ処理が、検出されたイベントのつぎのイベントの発生時までに終了するか否かを判断することができる。センシングｅｖの時間間隔ｉｔｖが閾値未満である場合（ステップＳ１３０４：Ｙｅｓ）、センサーノード１０１は、繁忙フラグｂｆをセットに設定する（ステップＳ１３０５）。センシングｅｖの時間間隔ｉｔｖが閾値未満でない場合（ステップＳ１３０４：Ｎｏ）、センサーノード１０１は、繁忙フラグｂｆをアンセットに設定する（ステップＳ１３０６）。
【００７７】
ステップＳ１３０５、またはステップＳ１３０６のつぎに、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ１３０７）。処理転送禁止フラグｔｆがアンセットの場合（ステップＳ１３０７：アンセット）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ１３０８）。
【００７８】
繁忙フラグｂｆがセットの場合（ステップＳ１３０８：セット）、センサーノード１０１は、センシングの時間間隔ｉｔｖ以内で処理可能な一部のデータ処理を実行し（ステップＳ１３０９）、処理フラグｐｆを設定する（ステップＳ１３１１）。ここでは、データ処理が完了していないため、処理フラグｐｆは、アンセットが設定される。センサーノード１０１は、一部のデータ処理の実行結果と、依頼情報と、を併せて、自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ１３１２）、ステップＳ１３０１へ戻る。ここでの依頼情報には、データ処理のうちの一部のデータ処理以外のデータ処理を実行させる情報と、当該一部のデータ処理以外のデータ処理を直接通信可能な装置に送信させる情報と、が含まれる。図１３の例では、繁忙フラグｂｆにセットが設定されていても、Ｓ１３０９のように、データ処理のうちの一部のデータ処理が実行されているが、これに限らず、センサーノード１０１は、データ処理を実行せずに直ちに依頼情報を送信してもよい。
【００７９】
処理転送禁止フラグｔｆがセットの場合（ステップＳ１３０７：セット）、または繁忙フラグｂｆがアンセットの場合（ステップＳ１３０８：アンセット）、センサーノード１０１は、データ処理のすべてを実行する（ステップＳ１３１０）。そして、センサーノード１０１は、処理フラグｐｆを設定する（ステップＳ１３１１）。ここで、データ処理がすべて実行されるため、処理フラグｐｆはセットが設定される。センサーノード１０１は、データ処理の実行結果を自センサーノード１０１と直接通信可能な装置に送信する（ステップＳ１３１２）。
【００８０】
図１４は、実施例１にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ１４０１）、自センサーノード１０１の周辺のセンサーノード１０１からデータを受信したか否かを判断する（ステップＳ１４０２）。自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信されていない場合（ステップＳ１４０２：Ｎｏ）、ステップＳ１４０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【００８１】
自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信された場合（ステップＳ１４０２：Ｙｅｓ）、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ１４０３）。処理転送禁止フラグｔｆがセットの場合（ステップＳ１４０３：セット）、センサーノード１０１は、受信したデータを自センサーノード１０１と直接通信可能な装置に送信する（ステップＳ１４０９）。処理転送禁止フラグｔｆがアンセットの場合（ステップＳ１４０３：アンセット）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ１４０４）。繁忙フラグｂｆがセットの場合（ステップＳ１４０４：セット）、ステップＳ１４０９へ移行する。
【００８２】
繁忙フラグｂｆがアンセットの場合（ステップＳ１４０４：アンセット）、センサーノード１０１は、受信したデータの処理フラグｐｆをチェックする（ステップＳ１４０５）。処理フラグｐｆにセットが設定されている場合（ステップＳ１４０５：セット）、受信したデータについてのデータ処理が終了しているため、ステップＳ１４０９へ移行する。処理フラグｐｆにセットが設定されていない場合（ステップＳ１４０５：アンセット）、センサーノード１０１は、バッテリ３１２の電力量残量をチェックする（ステップＳ１４０６）。このとき、センサーノード１０１は、受信したデータが示すデータ処理の実行にかかる電力量と、受信したデータが示すデータ処理の実行結果の送信にかかる電力量と、の合計値を見積もる。センサーノード１０１は、バッテリ３１２の電力量が合計値以上であるか否かに基づいて、バッテリ３１２の電力量が十分か不十分かを判定する。たとえば、バッテリ３１２の電力量が合計値以上であれば、センサーノード１０１は、十分であると判定し、バッテリ３１２の電力量が合計値未満であれば、センサーノード１０１は、不十分であると判定する。
【００８３】
十分である場合（ステップＳ１４０６：十分）、センサーノード１０１は、受信したデータが示すデータ処理を実行し、処理フラグｐｆを更新する（ステップＳ１４０７）。そして、センサーノード１０１は、データ処理の実行結果を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ１４０８）、ステップＳ１４０１へ戻る。一方、不十分である場合（ステップＳ１４０６：不十分）、ステップＳ１４０９へ移行する。
【００８４】
図１５は、実施例１にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ１５０１）、親機１０２からの通信を受信したか否かを判断する（ステップＳ１５０２）。センサーノード１０１は、親機１０２からの通知を受信していない場合（ステップＳ１５０２：Ｎｏ）、ステップＳ１５０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【００８５】
センサーノード１０１は、親機１０２からの通信を受信した場合（ステップＳ１５０２：Ｙｅｓ）、処理転送禁止フラグｔｆのセット通知であるかアンセット通知であるかを判断する（ステップＳ１５０３）。処理転送禁止フラグｔｆのアンセット通知である場合（ステップＳ１５０３：Ｎｏ）、センサーノード１０１は、自センサーノード１０１の記憶装置５１０に記憶された処理転送禁止フラグｔｆをアンセットに設定し（ステップＳ１５０４）、ステップＳ１５０１へ戻る。処理転送禁止フラグｔｆのセット通知である場合（ステップＳ１５０３：Ｙｅｓ）、センサーノード１０１は、自センサーノード１０１の記憶装置５１０に記憶された処理転送禁止フラグｔｆをセットに設定し（ステップＳ１５０５）、ステップＳ１５０１へ戻る。
【００８６】
（実施例１にかかる親機１０２が行う処理手順）
図１６は、実施例１にかかる親機が行う処理手順例を示すフローチャートである。まず、親機１０２は、センサーノード１０１からのデータを受信したか否かを判断する（ステップＳ１６０１）。親機１０２は、センサーノード１０１からのデータを受信していない場合（ステップＳ１６０１：Ｎｏ）、ステップＳ１６０１へ戻る。親機１０２は、センサーノード１０１からのデータを受信した場合（ステップＳ１６０１：Ｙｅｓ）、受信したデータに含まれる繁忙フラグｂｆに基づいて非繁忙ノード割合カウンタｃｔを更新する（ステップＳ１６０２）。たとえば、親機１０２は、受信したデータに含まれるセンサーノード１０１の識別情報と繁忙フラグｂｆとを関連付けて記憶する。そして、親機１０２は、センサーノード１０１の数と、繁忙フラグｂｆがアンセットである数と、に基づいて、非繁忙ノード割合カウンタｃｔの値を設定してもよい。
【００８７】
親機１０２は、通知中の処理転送禁止フラグｔｆをチェックする（ステップＳ１６０３）。たとえば、親機１０２が処理転送禁止フラグｔｆを記憶装置６１０に記憶し、親機１０２が当該記憶装置６１０を参照することにより、通知中の処理転送禁止フラグｔｆをチェックしてもよい。通知中の処理転送禁止フラグｔｆがセットの場合（ステップＳ１６０３：セット）、親機１０２は、非繁忙ノード割合カウンタｃｔをチェックする（ステップＳ１６０４）。
【００８８】
非繁忙ノード割合カウンタｃｔが閾値以上である場合（ステップＳ１６０４：閾値以上）、親機１０２は、処理転送禁止フラグｔｆのアンセットを複数のセンサーノード１０１に通知する（ステップＳ１６０５）。これにより、直接通信可能な装置へ依頼情報を送信させない依頼禁止状態を解除する要求情報が複数のセンサーノード１０１に送信される。親機１０２は、通知中の処理転送禁止フラグｔｆの状態をアンセットに更新し（ステップＳ１６０６）、ステップＳ１６０１へ戻る。ステップＳ１６０４において、非繁忙ノード割合カウンタｃｔが閾値未満である場合（ステップＳ１６０４：閾値未満）、ステップＳ１６０１へ戻る。
【００８９】
通知中の処理転送禁止フラグｔｆがアンセットの場合（ステップＳ１６０３：アンセット）、親機１０２は、非繁忙ノード割合カウンタｃｔをチェックする（ステップＳ１６０７）。非繁忙ノード割合カウンタｃｔが閾値未満である場合（ステップＳ１６０７：閾値未満）、親機１０２は、処理転送禁止フラグｔｆのセットを複数のセンサーノード１０１に通知する（ステップＳ１６０８）。これにより、センサーノード１０１が検出されたイベントに対応するデータ処理がつぎのイベントの発生までに終了しないと判断しても、依頼情報を直接通信可能な装置へ送信させない依頼禁止状態にする要求情報が複数のセンサーノード１０１に送信される。親機１０２は、通知中の処理転送禁止フラグｔｆの状態をセットに更新し（ステップＳ１６０９）、ステップＳ１６０１へ戻る。ステップＳ１６０７において、非繁忙ノード割合カウンタｃｔが閾値以上である場合（ステップＳ１６０７：閾値以上）、ステップＳ１６０１へ戻る。
【００９０】
（実施例２）
実施例２では、高負荷状態であるセンサーノード１０１の割合に応じて、センシングノードが実施するデータ処理量を２段階に分ける。これにより、高負荷状態であるセンサーノード１０１の数が少なければ、高負荷状態であるセンサーノード１０１の負荷量を他のセンサーノード１０１に分散させることができる。高負荷状態であるセンサーノード１０１の数が多ければ、他のセンサーノード１０１に依頼するデータ処理量を減少させることにより、未処理のデータ処理が親機１０２に送信されることを防止することができる。
【００９１】
送信部５０４は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が判断部５０２によって出力された場合、当該判断情報を、直接または複数のセンサーノード１０１のうちの他のセンサーノード１０１を介して親機１０２へ送信する。
【００９２】
受信部６０１は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を受信する。判定部６０２は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報の受信結果に基づいて、複数のセンサーノード１０１の中でセンシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を送信したセンサーノード１０１の数を判定する。送信部６０３は、複数のセンサーノード１０１に、判定した数に基づく判定情報を送信する。判定情報は、たとえば、判定した数でもよいし、複数のセンサーノード１０１のうちの判定した数に基づく割合でもよいし、当該割合を示す情報でもよい。ここでは、たとえば、判定情報は、処理転送禁止フラグｔｆである。実施例２では、処理転送禁止フラグｔｆは、２ビットのデータとする。
【００９３】
図１７は、処理転送禁止フラグの設定例を示す説明図である。表１７００は、各割合に応じて決定される処理転送禁止フラグｔｆの値を示す。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が、１／３未満であれば、親機１０２は、処理転送禁止フラグｔｆを“００”に設定する。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が、１／３以上であり２／３未満であれば、親機１０２は、処理転送禁止フラグｔｆを“０１”に設定する。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が、２／３以上であれば、親機１０２は、処理転送禁止フラグｔｆを“１１”に設定する。
【００９４】
受信部５０５は、判定情報を受信する。具体的には、受信部５０５は、親機１０２から処理転送禁止フラグｔｆを受信する。データ処理部５０３は、判断部５０２によって対応するデータ処理が終了しないと判断された場合、対応するデータ処理のうち判定情報が示す割合の一部のデータ処理を実行する。
【００９５】
送信部５０４は、依頼情報と、一部のデータ処理の実行結果と、を自センサーノード１０１の周辺のセンサーノード１０１に送信する。ここでの依頼情報は、当該一部のデータ処理以外のデータ処理を自センサーノード１０１と直接通信可能な装置に実行させる情報であって、当該直接通信可能な装置と直接通信可能な装置に、データ処理の実行結果を送信させる情報である。
【００９６】
図１８は、実施例２にかかるセンシング時のセンサーノードの動作を示す説明図である。表１８００は、処理転送禁止フラグｔｆと、繁忙フラグｂｆと、の状態に基づくセンサーノード１０１の動作を示す。たとえば、処理転送禁止フラグｔｆが“００”であり、繁忙フラグｂｆがセットである場合、センサーノード１０１は、センシングｅｖ、データ処理のうちの一部のデータ処理を実行、送信を順に行う。たとえば、一部のデータ処理については、イベントの発生の時間間隔ｉｔｖで処理可能なデータ処理量である。または、センサーノード１０１は、データ処理を行わず、センシングｅｖ、送信を順に行う。
【００９７】
たとえば、処理転送禁止フラグｔｆが“０１”であり、繁忙フラグｂｆがセットである場合、センサーノード１０１は、センシングｅｖ、データ処理のうちの１／２以上のデータ処理を実行、送信を順に行う。
【００９８】
たとえば、処理転送禁止フラグｔｆが“１１”である場合、繁忙フラグｂｆの状態に拘わらず、センサーノード１０１は、センシングｅｖ、データ処理のうちのすべてのデータ処理を実行、送信を順に行う。
【００９９】
また、表１８００に記載以外の各フラグの状態の場合には、センサーノード１０１は、センシングｅｖ、データ処理のうちのすべてのデータ処理を実行、送信を順に行う。
【０１００】
図１９は、実施例２にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。表１９００は、あるセンサーノード１０１から親機１０２までの中継センサーノード１０１が当該あるセンサーノード１０１からの依頼情報を受信した場合における、各フラグとバッテリ３１２残量とに基づくセンサーノード１０１の動作を示している。
【０１０１】
たとえば、処理転送禁止フラグｔｆが“００”であり、自センサーノード１０１の繁忙フラグｂｆがアンセットであり、受信した依頼情報の処理フラグｐｆがアンセットである。さらに、バッテリ３１２の残量が十分である場合、センサーノード１０１は、受信した依頼情報が示すデータ処理を可能な限り（イベントの発生の時間間隔ｉｔｖ等を参考にするなどする）実行する。センサーノード１０１は、受信した依頼情報が示すデータ処理のうち実行が終了したデータ処理を除いたデータ処理を自センサーノードと直接通信可能な第１装置に実行させる依頼情報と、実行結果と、を併せて第１装置に送信する。
【０１０２】
処理転送禁止フラグｔｆが“０１”であり、自センサーノード１０１の繁忙フラグｂｆがアンセットである。さらに、受信した依頼情報の処理フラグｐｆがアンセットであり、バッテリ３１２残量が十分である場合、センサーノード１０１は、受信した依頼情報が示すデータ処理の全体量の１／２の処理量までのデータ処理を実行する。そして、センサーノード１０１は、自センサーノード１０１と直接通信可能な第１装置に、依頼情報が示すデータ処理のうち実行が終了したデータ処理を除いたデータ処理に関する依頼情報と、実行結果と、を併せて第１装置に送信する。また、たとえば、受信した依頼情報がすでに１／２まで実行が終了している場合、センサーノード１０１は、受信した依頼情報が示すデータ処理をすべて実行する。
【０１０３】
また、表１９００に記載以外の各フラグおよびバッテリ３１２残量の場合には、センサーノード１０１は、受信した依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。
【０１０４】
図２０は、実施例２にかかる高負荷状態の割合によるデータ送信可能条件を示す説明図である。表２０００は、複数のセンサーノード１０１のうちの高負荷状態のセンサーノード１０１の割合に応じたデータ送信の条件を示す。たとえば、複数のセンサーノード１０１のうち、高負荷状態であるセンサーノード１０１の割合が、１／３未満の場合、各センサーノード１０１は、データ送信に関して禁止条件がない。そのため、データ処理の実行結果、データ処理の依頼情報、データ処理の一部のデータ処理の実行結果と残余のデータ処理の依頼情報のいずれであってもセンサーノード１０１は、自センサーノード１０１と直接通信可能な第１装置に送信してもよい。
【０１０５】
また、たとえば、複数のセンサーノード１０１のうち、高負荷状態であるセンサーノード１０１の割合が１／３以上の割合であり２／３未満の割合である場合、各センサーノード１０１は、データ処理のうち１／２以上のデータ処理を実行する。そして、センサーノード１０１は、１／２以上のデータ処理が完了した場合の依頼情報および実行結果を送信できる。
【０１０６】
また、たとえば、複数のセンサーノード１０１のうち、高負荷状態であるセンサーノード１０１の割合が、２／３以上の割合である場合、各センサーノード１０１は、データ処理がすべて完了した実行結果のみを送信することができる。
【０１０７】
（実施例２にかかるセンサーノード１０１が行う処理手順）
図２１は、実施例２にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ２１０１）、センシングｅｖの発生を検出したか否かを判断する（ステップＳ２１０２）。センシングｅｖの発生が検出されない場合（ステップＳ２１０２：Ｎｏ）、ステップＳ２１０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１０８】
センシングｅｖの発生が検出された場合（ステップＳ２１０２：Ｙｅｓ）、センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖを更新する（ステップＳ２１０３）。たとえば、センサーノード１０１は、過去のセンシングｅｖの発生時刻を記憶しておき、過去の時刻が近い発生時刻と、あらたに検出されたセンシングｅｖの発生時刻と、の差分を算出することにより、センシングｅｖの時間間隔ｉｔｖを算出してもよい。さらに、たとえば、センサーノード１０１は、過去のセンシングｅｖの時間間隔ｉｔｖの平均値を算出してもよい。
【０１０９】
センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖが閾値未満であるか否かを判断する（ステップＳ２１０４）。閾値は、たとえば、データ処理にかかる時間であってもよい。これにより、センサーノード１０１は、検出されたイベントに対応するデータ処理が、検出されたイベントのつぎのイベントの発生時までに終了するか否かを判断することができる。センシングｅｖの時間間隔ｉｔｖが閾値未満である場合（ステップＳ２１０４：Ｙｅｓ）、センサーノード１０１は、繁忙フラグｂｆをセットに設定する（ステップＳ２１０５）。センシングｅｖの時間間隔ｉｔｖが閾値未満でない場合（ステップＳ２１０４：Ｎｏ）、センサーノード１０１は、繁忙フラグｂｆをアンセットに設定する（ステップＳ２１０６）。
【０１１０】
ステップＳ２１０５、またはステップＳ２１０６のつぎに、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ２１０７）。処理転送禁止フラグｔｆが“０１”の場合（ステップＳ２１０７：“０１”）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２１０８）。繁忙フラグｂｆがセットの場合（ステップＳ２１０８：セット）、センサーノード１０１は、データ処理のうちの半分のデータ処理を実行し（ステップＳ２１０９）、処理フラグｐｆを設定する（ステップＳ２１１３）。ここでは、すべてのデータ処理が完了していないため、処理フラグｐｆがアンセットに設定される。そして、ステップＳ２１１４へ移行する。繁忙フラグｂｆがアンセットの場合（ステップＳ２１０８：アンセット）、ステップＳ２１１２へ移行する。
【０１１１】
処理転送禁止フラグｔｆが“００”の場合（ステップＳ２１０７：“００”）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２１１０）。繁忙フラグｂｆがセットの場合（ステップＳ２１１０：セット）、センサーノード１０１は、データ処理のうちのセンシングｅｖの時間間隔ｉｔｖ以内で処理可能な一部のデータ処理を実行し（ステップＳ２１１１）、処理フラグｐｆを設定する（ステップＳ２１１３）。ここでは、すべてのデータ処理が完了していないため、処理フラグｐｆがアンセットに設定される。そして、センサーノード１０１は、一部のデータ処理の実行結果と、依頼情報と、を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２１１４）、ステップＳ２１０１へ戻る。繁忙フラグｂｆがアンセットの場合（ステップＳ２１１０：アンセット）、ステップＳ２１１２へ移行する。
【０１１２】
処理転送禁止フラグｔｆが“１１”の場合（ステップＳ２１０７：“１１”）、センサーノード１０１は、すべてのデータ処理を実行し（ステップＳ２１１２）、処理フラグｐｆを設定する（ステップＳ２１１３）。ここでは、すべてのデータ処理が完了しているため、処理フラグｐｆにセットが設定される。センサーノード１０１は、実行結果を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２１１４）、ステップＳ２１０１へ戻る。
【０１１３】
図２２は、実施例２にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ２２０１）、自センサーノード１０１の周辺のセンサーノード１０１からデータを受信したか否かを判断する（ステップＳ２２０２）。自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信されていない場合（ステップＳ２２０２：Ｎｏ）、ステップＳ２２０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１１４】
自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信された場合（ステップＳ２２０２：Ｙｅｓ）、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ２２０３）。処理転送禁止フラグｔｆが“１１”の場合（ステップＳ２２０３：“１１”）、センサーノード１０１は、受信したデータを自センサーノード１０１と直接通信可能な装置に送信する（ステップＳ２２１０）。処理転送禁止フラグｔｆが“００”または“０１”の場合（ステップＳ２２０３：“００”または“０１”）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２２０４）。繁忙フラグｂｆがセットの場合（ステップＳ２２０４：セット）、ステップＳ２２１０へ移行する。
【０１１５】
繁忙フラグｂｆがアンセットの場合（ステップＳ２２０４：アンセット）、センサーノード１０１は、受信したデータの処理フラグｐｆをチェックする（ステップＳ２２０５）。処理フラグｐｆにセットが設定されている場合（ステップＳ２２０５：セット）、受信したデータについてのデータ処理が終了しているため、ステップＳ２２１０へ移行する。
【０１１６】
処理フラグｐｆにセットが設定されていない場合（ステップＳ２２０５：アンセット）、センサーノード１０１は、バッテリ３１２の電力量残量をチェックする（ステップＳ２２０６）。このとき、センサーノード１０１は、受信したデータが示すデータ処理の実行にかかる電力量と、受信したデータが示すデータ処理の実行結果の送信にかかる電力量と、の合計値を見積もる。センサーノード１０１は、バッテリ３１２の電力量が合計値以上であるか否かに基づいて、バッテリ３１２の電力量が十分か不十分かを判定する。たとえば、バッテリ３１２の電力量が合計値以上であれば、センサーノード１０１は、十分であると判定し、バッテリ３１２の電力量が合計値未満であれば、センサーノード１０１は、不十分であると判定する。
【０１１７】
十分である場合（ステップＳ２２０６：十分）、センサーノード１０１は、処理転送禁止フラグｔｆの値に応じて、受信したデータが示すデータ処理を実行し（ステップＳ２２０７）、処理フラグｐｆを更新する（ステップＳ２２０８）。そして、センサーノード１０１は、データ処理の実行結果を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２２０９）、ステップＳ２２０１へ戻る。一方、不十分である場合（ステップＳ２２０６：不十分）、ステップＳ２２１０へ移行する。
【０１１８】
図２３は、実施例２にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ２３０１）、親機１０２からの通信を受信したか否かを判断する（ステップＳ２３０２）。センサーノード１０１は、親機１０２からの通知を受信していない場合（ステップＳ２３０２：Ｎｏ）、ステップＳ２３０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１１９】
センサーノード１０１は、親機１０２からの通信を受信した場合（ステップＳ２３０２：Ｙｅｓ）、親機１０２から通知された値を処理転送禁止フラグｔｆに設定し（ステップＳ２３０３）、ステップＳ２３０１へ移行する。
【０１２０】
（実施例２にかかる親機１０２が行う処理手順）
図２４は、実施例２にかかる親機が行う処理手順例を示すフローチャートである。まず、親機１０２は、センサーノード１０１からのデータを受信したか否かを判断する（ステップＳ２４０１）。親機１０２は、センサーノード１０１からのデータを受信していない場合（ステップＳ２４０１：Ｎｏ）、ステップＳ２４０１へ戻る。親機１０２は、センサーノード１０１からのデータを受信した場合（ステップＳ２４０１：Ｙｅｓ）、受信したデータに含まれる繁忙フラグｂｆに基づいて非繁忙ノード割合カウンタｃｔを更新する（ステップＳ２４０２）。たとえば、親機１０２は、受信したデータに含まれるセンサーノード１０１の識別情報と繁忙フラグｂｆとを関連付けて記憶する。そして、親機１０２は、センサーノード１０１の数と、繁忙フラグｂｆがアンセットである数と、に基づいて、非繁忙ノード割合カウンタｃｔの値を設定してもよい。
【０１２１】
親機１０２は、非繁忙ノード割合カウンタｃｔをチェックする（ステップＳ２４０３）。非繁忙ノード割合カウンタｃｔに基づいて高負荷状態のセンサーノード１０１の割合が１／３未満である場合（ステップＳ２４０３：１／３未満）、親機１０２は、処理転送禁止フラグｔｆが“００”であるか否かを判断する（ステップＳ２４０４）。処理転送禁止フラグｔｆが“００”である場合（ステップＳ２４０４：Ｙｅｓ）、ステップＳ２４０１へ戻る。処理転送禁止フラグｔｆが“００”でない場合（ステップＳ２４０４：Ｎｏ）、親機１０２は、全センサーノード１０１に“００”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ２４０５）。そして、親機１０２は、通知中の処理転送禁止フラグｔｆを“００”に更新し（ステップＳ２４０６）、ステップＳ２４０１へ戻る。
【０１２２】
非繁忙ノード割合カウンタｃｔに基づいて高負荷状態のセンサーノード１０１の割合が１／３以上２／３未満である場合（ステップＳ２４０３：１／３〜２／３）、親機１０２は、処理転送禁止フラグｔｆが“０１”であるか否かを判断する（ステップＳ２４０７）。処理転送禁止フラグｔｆが“０１”である場合（ステップＳ２４０７：Ｙｅｓ）、ステップＳ２４０１へ戻る。処理転送禁止フラグｔｆが“０１”でない場合（ステップＳ２４０７：Ｎｏ）、親機１０２は、全センサーノード１０１に“０１”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ２４０８）。親機１０２は、通知中の処理転送禁止フラグｔｆを“０１”に更新し（ステップＳ２４０９）、ステップＳ２４０１へ戻る。
【０１２３】
非繁忙ノード割合カウンタｃｔに基づいて高負荷状態のセンサーノード１０１の割合が２／３以上である場合（ステップＳ２４０３：２／３以上）、親機１０２は、処理転送禁止フラグｔｆが“１１”であるか否かを判断する（ステップＳ２４１０）。処理転送禁止フラグｔｆが“１１”である場合（ステップＳ２４１０：Ｙｅｓ）、ステップＳ２４０１へ戻る。処理転送禁止フラグｔｆが“１１”でない場合（ステップＳ２４１０：Ｎｏ）、親機１０２は、全センサーノード１０１に“１１”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ２４１１）。親機１０２は、通知中の処理転送禁止フラグｔｆを“１１”に更新し（ステップＳ２４１２）、ステップＳ２４０１へ戻る。
【０１２４】
（実施例３）
実施例３では、高負荷状態であるセンサーノード１０１の割合に応じて、センシングノードが実施するデータ処理量をｎ段階に分ける。これにより、高負荷状態であるセンサーノード１０１の数が少なければ、高負荷状態であるセンサーノード１０１の負荷量を他のセンサーノード１０１に分散させることができる。高負荷状態であるセンサーノード１０１の数が多ければ、他のセンサーノード１０１に依頼するデータ処理量を減少させることにより、未処理のデータ処理が親機１０２に送信されることを防止することができる。
【０１２５】
送信部５０４は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報が判断部５０２によって出力された場合、当該判断情報を、直接または複数のセンサーノード１０１のうちの他のセンサーノード１０１を介して親機１０２へ送信する。
【０１２６】
受信部６０１は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報を受信する。判定部６０２は、センシングｅｖに対応するデータ処理が終了しない旨を示す判断情報の受信結果に基づいて、複数のセンサーノード１０１の中で当該判断情報を送信したセンサーノード１０１の数を判定する。送信部６０３は、複数のセンサーノード１０１に、判定した数に基づく情報を送信する。判定した数に基づく情報は、たとえば、処理転送禁止フラグｔｆである。実施例３では、処理転送禁止フラグｔｆは、Ｘビットのデータとする。「Ｘ＞ｌｏｇ２（ｎ＋１）」である。
【０１２７】
図２５は、実施例３にかかる処理転送禁止フラグの設定例を示す説明図である。表２５００は、複数のセンサーノード１０１のうちの高負荷状態のセンサーノード１０１の割合に応じたデータ送信の条件を示す。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が、１／ｎ未満であれば、親機１０２は、Ｘビットの処理転送禁止フラグｔｆをすべて“０”に設定する。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が、１／ｎ以上であり２／ｎ未満であれば、親機１０２は、Ｘビットの処理転送禁止フラグｔｆのうち、最下位ビットを“１”にし、それ以外すべて“０”に設定する。たとえば、複数のセンサーノード１０１のうち、高負荷状態のセンサーノード１０１が占める割合が２／ｎ以上３／ｎ未満であれば、親機１０２は、処理転送禁止フラグｔｆをＸビットの処理転送禁止フラグｔｆのうち、下位ビットを“１０”に設定する。そして、親機１０２は、Ｘビットの処理転送禁止フラグｔｆのうち、それ以外すべて“０”に設定する。たとえば、（ｍ−１）／ｎ以上ｍ／ｎ未満であれば、親機１０２は、Ｘビットの処理転送禁止フラグｔｆのうち、下位ビットを２進数の（ｍ−１）にし、余りの上位ビットを“０”にする。
【０１２８】
受信部５０５は、判定した数に基づく情報を受信する。具体的には、受信部５０５は、親機１０２から処理転送禁止フラグｔｆを受信する。
【０１２９】
データ処理部５０３は、判断部５０２によって対応するデータ処理が終了しないと判断された場合、対応するデータ処理のうち判定した数に基づく情報が示す一部のデータ処理を実行する。送信部５０４は、依頼情報と、一部のデータ処理の実行結果と、を自センサーノード１０１の周辺のセンサーノード１０１に送信する。依頼情報は、対応するデータ処理のうち一部のデータ処理以外のデータ処理を自センサーノード１０１と直接通信可能な第１装置に実行させる情報であって、第１装置と直接通信可能な第２装置に、実行結果を送信させる情報である。
【０１３０】
図２６は、実施例３にかかるセンシング時のセンサーノードの動作を示す説明図である。表２６００は、処理転送禁止フラグｔｆと、繁忙フラグｂｆと、の状態に基づくセンサーノード１０１の動作を示す。たとえば、Ｘビットの処理転送禁止フラグｔｆがすべて“０”であり、繁忙フラグｂｆがセットである場合、センサーノード１０１は、センシングｅｖ、データ処理のうちの一部のデータ処理を実行、送信を順に行う。または、センサーノード１０１は、データ処理を行わず、センシングｅｖ、送信を順に行う。たとえば、一部のデータ処理については、イベントの発生の時間間隔ｉｔｖで処理可能なデータ処理量である。
【０１３１】
たとえば、処理転送禁止フラグｔｆのうち下位２ビットが“０１”であり、残りの上位ビットが“０”であり、繁忙フラグｂｆがセットである場合、センサーノード１０１は、センシングｅｖ、データ処理のうちの１／ｎ以上のデータ処理を実行、送信を順に行う。
【０１３２】
たとえば、Ｘビットの処理転送禁止フラグｔｆがすべて“１”である場合、繁忙フラグｂｆの状態によらずに、センサーノード１０１は、センシングｅｖ、データ処理のうちのすべてのデータ処理を実行、送信を順に行う。表２６００以外の条件である繁忙フラグｂｆがアンセットの場合、センサーノード１０１は、センシングｅｖ、データ処理のうちのすべてのデータ処理を実行、送信を順に行う。
【０１３３】
図２７は、実施例３にかかる依頼情報受信時のセンサーノードの動作を示す説明図である。表２７００は、あるセンサーノード１０１から親機１０２までの中継センサーノード１０１が当該あるセンサーノード１０１からの依頼情報を受信した場合における、各フラグとバッテリ３１２残量とに基づくセンサーノード１０１の動作を示している。
【０１３４】
たとえば、処理転送禁止フラグｔｆがすべて“０”であり、自センサーノード１０１の繁忙フラグｂｆがアンセットである。さらに、受信した依頼情報の処理フラグｐｆがアンセットであり、バッテリ３１２残量が十分である場合、センサーノード１０１は、受信した依頼情報が示すデータ処理を可能な限り（イベントの発生の時間間隔ｉｔｖ等を参考にするなどする）実行する。そして、センサーノード１０１は、自センサーノード１０１と直接通信可能な第１装置に、依頼情報が示すデータ処理のうち実行が終了したデータ処理を除いたデータ処理に関する依頼情報と、実行結果と、を併せて第１装置に送信する。
【０１３５】
また、たとえば、処理転送禁止フラグｔｆのうち最下位ビットが“１”であり、残りのビットが“０”であり、自センサーノード１０１の繁忙フラグｂｆがアンセットである。さらに、受信した依頼情報の処理フラグｐｆがアンセットであり、バッテリ３１２の残量が十分である場合、センサーノード１０１は、受信した依頼情報が示すデータ処理の処理量全体の（ｎ−１）／ｎの量のデータ処理を実行する。そして、センサーノード１０１は、自センサーノード１０１と直接通信可能な第１装置に、依頼情報が示すデータ処理のうち実行が終了したデータ処理を除いたデータ処理に関する依頼情報と、実行結果と、を併せて第１装置に送信する。また、たとえば、受信した依頼情報がすでに（ｎ−１）／ｎまで実行が終了している場合、センサーノード１０１は、受信した依頼情報が示すデータ処理をすべて実行する。
【０１３６】
また、表２７００に記載以外の各フラグおよびバッテリ３１２の残量の条件の場合には、センサーノード１０１は、受信した依頼情報を自センサーノード１０１と直接通信可能な第１装置に送信する。
【０１３７】
（実施例３にかかるセンサーノード１０１が行う処理手順）
図２８は、実施例３にかかるセンサーノードが行う処理手順例（その１）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ２８０１）、センシングｅｖの発生を検出したか否かを判断する（ステップＳ２８０２）。センシングｅｖの発生が検出されない場合（ステップＳ２８０２：Ｎｏ）、ステップＳ２８０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１３８】
センシングｅｖの発生が検出された場合（ステップＳ２８０２：Ｙｅｓ）、センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖを更新する（ステップＳ２８０３）。たとえば、センサーノード１０１は、過去のセンシングｅｖの発生時刻を記憶しておき、過去の時刻が近い発生時刻と、あらたに検出されたセンシングｅｖの発生時刻と、の差分を算出することにより、センシングｅｖの時間間隔ｉｔｖを算出してもよい。さらに、たとえば、センサーノード１０１は、過去のセンシングｅｖの時間間隔ｉｔｖの平均値を算出してもよい。
【０１３９】
センサーノード１０１は、センシングｅｖの時間間隔ｉｔｖが閾値未満であるか否かを判断する（ステップＳ２８０４）。閾値は、たとえば、データ処理にかかる時間であってもよい。これにより、センサーノード１０１は、検出されたイベントに対応するデータ処理が、検出されたイベントのつぎのイベントの発生時までに終了するか否かを判断することができる。センシングｅｖの時間間隔ｉｔｖが閾値未満である場合（ステップＳ２８０４：Ｙｅｓ）、センサーノード１０１は、繁忙フラグｂｆをセットに設定する（ステップＳ２８０５）。センシングｅｖの時間間隔ｉｔｖが閾値未満でない場合（ステップＳ２８０４：Ｎｏ）、センサーノード１０１は、繁忙フラグｂｆをアンセットに設定する（ステップＳ２８０６）。
【０１４０】
ステップＳ２８０５、またはステップＳ２８０６のつぎに、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ２８０７）。処理転送禁止フラグｔｆが“００・・・０１”の場合（ステップＳ２８０７：“００・・・０１”）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２８０８）。繁忙フラグｂｆがセットの場合（ステップＳ２８０８：セット）、センサーノード１０１は、データ処理のうちの処理量全体の１／ｎの量のデータ処理を実行し（ステップＳ２８０９）、処理フラグｐｆを設定する（ステップＳ２８１３）。ここでは、すべてのデータ処理が完了していないため、処理フラグｐｆがアンセットに設定される。そして、ステップＳ２８１４へ移行する。繁忙フラグｂｆがアンセットの場合（ステップＳ２８０８：アンセット）、ステップＳ２８１２へ移行する。
【０１４１】
同様に、処理転送禁止フラグｔｆの値に基づいて、データ処理のうちの一部のデータ処理の量が決定される。
【０１４２】
処理転送禁止フラグｔｆがすべて“０”の場合（ステップＳ２８０７：“００・・・００”）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２８１０）。繁忙フラグｂｆがセットの場合（ステップＳ２８１０：セット）、センサーノード１０１は、データ処理のうちのセンシングｅｖの時間間隔ｉｔｖ以内で処理可能な一部のデータ処理を実行し（ステップＳ２８１１）、処理フラグｐｆを設定する（ステップＳ２８１３）。ここでは、すべてのデータ処理が完了していないため、処理フラグｐｆがアンセットに設定される。そして、センサーノード１０１は、一部のデータ処理の実行結果と、依頼情報と、を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２８１４）、ステップＳ２８０１へ戻る。繁忙フラグｂｆがアンセットの場合（ステップＳ２８１０：アンセット）、ステップＳ２８１２へ移行する。
【０１４３】
処理転送禁止フラグｔｆがすべて“１”の場合（ステップＳ２８０７：“１１・・・１１”）、センサーノード１０１は、すべてのデータ処理を実行し（ステップＳ２８１２）、処理フラグｐｆを設定する（ステップＳ２８１３）。ここでは、すべてのデータ処理が完了しているため、処理フラグｐｆにセットが設定される。センサーノード１０１は、実行結果を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２８１４）、ステップＳ２８０１へ戻る。
【０１４４】
図２９は、実施例３にかかるセンサーノードが行う処理手順例（その２）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ２９０１）、自センサーノード１０１の周辺のセンサーノード１０１からデータを受信したか否かを判断する（ステップＳ２９０２）。自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信されていない場合（ステップＳ２９０２：Ｎｏ）、ステップＳ２９０１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１４５】
自センサーノード１０１の周辺のセンサーノード１０１からのデータが受信された場合（ステップＳ２９０２：Ｙｅｓ）、センサーノード１０１は、記憶装置５１０に記憶された処理転送禁止フラグｔｆをチェックする（ステップＳ２９０３）。処理転送禁止フラグｔｆがすべて“１”の場合（ステップＳ２９０３：“１１・・・１１”）、センサーノード１０１は、受信したデータを自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２９１０）、ステップＳ２９０１へ戻る。処理転送禁止フラグｔｆがすべて“１”以外の場合（ステップＳ２９０３：“１１・・・１１”以外の値）、センサーノード１０１は、記憶装置５１０に記憶された繁忙フラグｂｆをチェックする（ステップＳ２９０４）。繁忙フラグｂｆがセットの場合（ステップＳ２９０４：セット）、ステップＳ２９１０へ移行する。
【０１４６】
繁忙フラグｂｆがアンセットの場合（ステップＳ２９０４：アンセット）、センサーノード１０１は、受信したデータの処理フラグｐｆをチェックする（ステップＳ２９０５）。処理フラグｐｆにセットが設定されている場合（ステップＳ２９０５：セット）、受信したデータについてのデータ処理が終了しているため、ステップＳ２９１０へ移行する。処理フラグｐｆにセットが設定されていない場合（ステップＳ２９０５：アンセット）、センサーノード１０１は、バッテリ３１２の電力量残量をチェックする（ステップＳ２９０６）。このとき、センサーノード１０１は、受信したデータが示すデータ処理の実行にかかる電力量と、受信したデータが示すデータ処理の実行結果の送信にかかる電力量と、の合計値を見積もる。センサーノード１０１は、バッテリ３１２の電力量が合計値以上であるか否かに基づいて、バッテリ３１２の電力量が十分か不十分かを判定する。たとえば、バッテリ３１２の電力量が合計値以上であれば、センサーノード１０１は、十分であると判定し、バッテリ３１２の電力量が合計値未満であれば、センサーノード１０１は、不十分であると判定する。
【０１４７】
十分である場合（ステップＳ２９０６：十分）、センサーノード１０１は、処理転送禁止フラグｔｆの値に応じて、受信したデータが示すデータ処理を実行し（ステップＳ２９０７）、処理フラグｐｆを更新する（ステップＳ２９０８）。そして、センサーノード１０１は、データ処理の実行結果を自センサーノード１０１と直接通信可能な装置に送信し（ステップＳ２９０９）、ステップＳ２９０１へ戻る。一方、不十分である場合（ステップＳ２９０６：不十分）、ステップＳ２９１０へ移行する。
【０１４８】
図３０は、実施例３にかかるセンサーノードが行う処理手順例（その３）を示すフローチャートである。まず、センサーノード１０１は、ＳＬＥＥＰ状態で待機し（ステップＳ３００１）、親機１０２からの通信を受信したか否かを判断する（ステップＳ３００２）。センサーノード１０１は、親機１０２からの通知を受信していない場合（ステップＳ３００２：Ｎｏ）、ステップＳ３００１に戻ることにより、センサーノード１０１は、ＳＬＥＥＰ状態で待機する。
【０１４９】
センサーノード１０１は、親機１０２からの通信を受信した場合（ステップＳ３００２：Ｙｅｓ）、親機１０２から通知された値を処理転送禁止フラグｔｆに設定し（ステップＳ３００３）、ステップＳ３００１へ移行する。
【０１５０】
（実施例３にかかる親機１０２が行う処理手順）
図３１は、実施例３にかかる親機が行う処理手順例を示すフローチャートである。まず、親機１０２は、センサーノード１０１からのデータを受信したか否かを判断する（ステップＳ３１０１）。親機１０２は、センサーノード１０１からのデータを受信していない場合（ステップＳ３１０１：Ｎｏ）、ステップＳ３１０１へ戻る。親機１０２は、センサーノード１０１からのデータを受信した場合（ステップＳ３１０１：Ｙｅｓ）、受信したデータに含まれる繁忙フラグｂｆに基づいて非繁忙ノード割合カウンタｃｔを更新する（ステップＳ３１０２）。たとえば、親機１０２は、受信したデータに含まれるセンサーノード１０１の識別情報と繁忙フラグｂｆとを関連付けて記憶する。そして、親機１０２は、センサーノード１０１の数と、繁忙フラグｂｆがアンセットである数と、に基づいて、非繁忙ノード割合カウンタｃｔの値を設定してもよい。
【０１５１】
親機１０２は、非繁忙ノード割合カウンタｃｔをチェックする（ステップＳ３１０３）。非繁忙ノード割合カウンタｃｔに基づいて判断された高負荷状態のセンサーノード１０１の割合が１／ｎ未満である場合（ステップＳ３１０３：１／ｎ未満）、親機１０２は、処理転送禁止フラグｔｆがすべて“０”であるか否かを判断する（ステップＳ３１０４）。処理転送禁止フラグｔｆがすべて“０”である場合（ステップＳ３１０４：Ｙｅｓ）、ステップＳ３１０１へ戻る。処理転送禁止フラグｔｆがすべて“０”でない場合（ステップＳ３１０４：Ｎｏ）、親機１０２は、全センサーノード１０１にすべて“０”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ３１０５）。そして、親機１０２は、通知中の処理転送禁止フラグｔｆをすべて“０”に更新し（ステップＳ３１０６）、ステップＳ３１０１へ戻る。
【０１５２】
非繁忙ノード割合カウンタｃｔに基づいて判断された高負荷状態のセンサーノード１０１の割合が１／ｎ以上２／ｎ未満である場合（ステップＳ３１０３：１／ｎ〜２／ｎ）、親機１０２は、処理転送禁止フラグｔｆが“００・・・０１”であるか否かを判断する（ステップＳ３１０７）。処理転送禁止フラグｔｆが“００・・・０１”である場合（ステップＳ３１０７：Ｙｅｓ）、ステップＳ３１０１へ戻る。処理転送禁止フラグｔｆが“００・・・０１”でない場合（ステップＳ３１０７：Ｎｏ）、親機１０２は、全センサーノード１０１に“００・・・０１”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ３１０８）。親機１０２は、通知中の処理転送禁止フラグｔｆを“００・・・０１”に更新し（ステップＳ３１０９）、ステップＳ３１０１へ戻る。高負荷状態のセンサーノード１０１の割合が（ｍ−１）／ｎ〜ｍ／ｎである場合も同様に、処理が行われる。
【０１５３】
非繁忙ノード割合カウンタｃｔに基づいて判断された高負荷状態のセンサーノード１０１の割合が（ｎ−１）／ｎ以上である場合（ステップＳ３１０３：（ｎ−１）／ｎ以上）、親機１０２は、処理転送禁止フラグｔｆがすべて“１”であるか否かを判断する（ステップＳ３１１０）。処理転送禁止フラグｔｆがすべて“１”である場合（ステップＳ３１１０：Ｙｅｓ）、ステップＳ３１０１へ戻る。処理転送禁止フラグｔｆがすべて“１”でない場合（ステップＳ３１１０：Ｎｏ）、親機１０２は、全センサーノード１０１にすべて“１”を設定した処理転送禁止フラグｔｆを通知する（ステップＳ３１１１）。親機１０２は、通知中の処理転送禁止フラグｔｆをすべて“１”に更新し（ステップＳ３１１２）、ステップＳ３１０１へ戻る。
【０１５４】
以上説明したように、通信装置、システム、および通信方法によれば、イベント発生時に行うデータ処理にかかる時間に対してイベント発生間隔が短い場合、自通信装置から親機までの中継通信装置に該データ処理と処理結果の送信とを依頼する。これにより、イベント発生時のデータ処理の放棄を低減させることができる。たとえば、データ処理の実行結果を親機や利用者端末が時系列で解析する場合、データ処理の実行が放棄されると、解析精度が低下する。そのため、イベントの発生時についてのデータ処理の実行が放棄される回数が低減されることにより、解析精度を向上させることができる。
【０１５５】
たとえば、センサーネットワークシステムであれば、イベントはセンシングである。たとえば、センサーネットワークシステムにおける通信装置であるセンサーノードは、搭載されるプロセッサの能力が低い。そのため、通常のパーソナルコンピュータのように、処理を大量に待機させることができない。したがって、センシング間隔がデータ処理にかかる時間に対して短いと、センシング結果が破棄されてしまう。さらに、センサーノードは、無線通信で遠くにある親機やセンサーノードと通信を行うことが困難である。そのため、センシング結果やデータ処理の実行結果は、他のセンサーノードを介して親機までリレー転送される。センサーノードから親機までの中継センサーノードにデータ処理を依頼することができる。したがって、センシング結果の破棄を低減させることができる。
【０１５６】
また、中継通信装置は、データ処理の依頼情報を受信すると、当該データ処理を実行して、実行結果を送信する。これにより、センサーノードから親機までの中継センサーノードがデータ処理を行うことにより、センシング結果の破棄を低減させることができる。
【０１５７】
また、中継通信装置は、高負荷状態でない場合に、他の通信装置から依頼されたデータ処理を実行する。これにより、低負荷状態である通信装置にデータ処理が依頼される。
【０１５８】
たとえば、センサーネットワークシステムの各センサーノードは、発電された電力をバッテリによって蓄えて動作する。そのため、センサーノードは、依頼されたデータ処理を実行中にバッテリ切れになってしまう可能性がある。実行中にバッテリが切れると、実行途中までの結果が無駄になってしまう。そこで、中継通信装置は、バッテリ残量が十分にある場合、他の通信装置から依頼されたデータ処理を実行し、バッテリ残量が不十分である場合、依頼情報をそのまま他のセンサーノードに送信する。これにより、依頼されたデータ処理によってバッテリが切れるのを防止することができる。
【０１５９】
また、通信装置は、イベント発生時に行うデータ処理にかかる時間に対してイベント発生間隔が短い場合、当該発生間隔で処理可能な一部のデータ処理を実行し、残余のデータ処理について自通信装置から親機までの中継通信装置に依頼する。これにより、他の通信装置に依頼するデータ処理量を低減させることができる。
【０１６０】
システムにある通信装置の中で、高負荷状態である通信装置の数が増大すると、親機は、未処理のデータ処理が大量に受信する可能性がある。そこで、通信装置は、自通信装置から親機までの中継通信装置にデータ処理を依頼する場合、自通信装置が高負荷状態であることを親機に伝える。親機は、高負荷状態である通信装置の数が閾値以上である場合には他の通信装置にデータ処理を依頼することを禁止する。これにより、未処理のデータ処理が親機に大量に送信されることを防止することができる。
【０１６１】
また、通信装置は、自通信装置から親機までの中継通信装置にデータ処理を依頼しない場合、自通信装置が低負荷状態であることを親機に伝える。親機は、低負荷状態である通信装置の数が閾値以上である場合に、他の通信装置にデータ処理を依頼することを禁止されていたら、解除する。これにより、未処理のデータ処理が親機に送信されることを防止し、かつデータ処理の放棄を低減させることができる。
【０１６２】
また、通信装置は、自通信装置から親機までの中継通信装置にデータ処理を依頼する場合、自通信装置が高負荷状態であることを親機に伝える。親機は、高負荷状態である通信装置の数に基づいて、他の通信装置に依頼してもよいデータ処理量を決定する。これにより、高負荷状態である通信装置の数が少なければ、高負荷状態である通信装置の負荷量を他の通信装置に分散させることができる。高負荷状態である通信装置の数が多ければ、他の通信装置に依頼するデータ処理量を減少させることにより、未処理のデータ処理が親機に送信されることを防止することができる。
【０１６３】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１６４】
（付記１）イベントの発生を検出する検出部と、
前記検出部によって検出されたイベントに対応するデータ処理が、前記検出されたイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、前記検出部によってイベントの発生が検出された時間間隔に基づいて出力する判断部と、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行するデータ処理部と、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する送信部と、
を有することを特徴とする通信装置。
【０１６５】
（付記２）前記第１装置によって検出されたイベントに対応するデータ処理を実行させるとともに、前記第１装置に前記対応するデータ処理の実行結果を送信させる第１依頼情報を、前記第１装置から受信する受信部を有し、
前記データ処理部は、
前記第１依頼情報が示すデータ処理を実行し、
前記送信部は、
前記データ処理部による実行結果を、前記第１装置に送信することを特徴とする付記１に記載の通信装置。
【０１６６】
（付記３）情報を記憶する記憶装置をさらに有し、
前記判断部は、
前記判断情報を前記記憶装置に書き込み、
前記データ処理部は、
前記記憶装置に記憶されている前記判断情報が前記対応するデータ処理が終了しない旨を示している場合、前記第１依頼情報が示すデータ処理を実行せず、
前記送信部は、
前記記憶装置に記憶されている前記判断情報が前記対応するデータ処理が終了しない旨を示している場合、前記第１依頼情報を前記第１装置に送信することを特徴とする付記２に記載の通信装置。
【０１６７】
（付記４）前記自通信装置に供給される電力を蓄電する蓄電部と、
前記第１依頼情報が示すデータ処理にかかる消費電力量と、前記第１依頼情報が示すデータ処理の実行結果の送信にかかる消費電力量と、の合計電力量を取得する取得部と、
前記蓄電部によって蓄電された電力量が、前記合計電力量以上であるか否かを示す判定信号を出力する判定部と、
を有し、
前記データ処理部は、
前記蓄電された電力量が前記合計電力量以上であることを示す前記判定信号が入力された場合に、前記第１依頼情報が示すデータ処理を実行し、前記蓄電された電力量が前記合計電力量未満であることを示す前記判定信号が入力された場合に、前記受信部によって受信された前記第１依頼情報が示すデータ処理を実行せず、
前記送信部は、
前記蓄電された電力量が前記合計電力量以上であることを示す前記判定信号が入力された場合に、前記データ処理部による実行結果を前記第１装置に送信し、前記蓄電された電力量が前記合計電力量未満であることを示す前記判定信号が入力された場合に、前記第１依頼情報を前記第１装置に送信することを特徴とする付記２または３に記載の通信装置。
【０１６８】
（付記５）前記データ処理部は、
前記対応するデータ処理が終了しないことを示す判断情報が入力された場合に、前記対応するデータ処理のうち一部のデータ処理を実行し、
前記送信部は、
前記対応するデータ処理のうち前記一部のデータ処理以外のデータ処理を前記第１装置に実行させるとともに、前記第２装置に、前記対応するデータ処理の実行結果を送信させる第２依頼情報と、前記データ処理部による前記一部のデータ処理の実行結果と、を前記第１装置に送信することを特徴とする付記１〜４のいずれか一つに記載の通信装置。
【０１６９】
（付記６）イベントの発生を検出し、
検出したイベントに対応するデータ処理が、前記検出したイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、イベントの発生が検出された時間間隔に基づいて出力し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する、
処理を各々が実行する複数の第１通信装置と、
前記複数の第１通信装置から送信された前記対応するデータ処理の実行結果を前記複数の第１通信装置のうち自通信装置と通信可能な第１通信装置から受信して、受信した実行結果に基づくデータ処理を実行する第２通信装置と、
を有することを特徴とするシステム。
【０１７０】
（付記７）前記複数の第１通信装置の各々が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を、直接または前記複数の第１通信装置のうちの他の第１通信装置を介して前記第２通信装置へ送信し、
前記第２通信装置が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を受信し、
前記複数の第１通信装置のうちの所定数以上の第１通信装置からの前記対応するデータ処理が終了しない旨を示す前記判断情報を受信したか否かを判定し、
前記所定数以上の第１通信装置からの前記対応するデータ処理が終了しない旨を示す前記判断情報を受信したと判定した場合、前記複数の第１通信装置に、前記第１通信装置が前記対応するデータ処理が終了しないと判断しても、前記依頼情報を前記第１通信装置と通信可能な周辺の装置に送信させない依頼禁止状態にする要求情報を送信することを特徴とする付記６に記載のシステム。
【０１７１】
（付記８）前記複数の第１通信装置の各々が、
前記対応するデータ処理が終了する旨を示す前記判断情報を、直接または前記複数の第１通信装置のうちの他の第１通信装置を介して前記第２通信装置へ送信し、
前記第２通信装置が、
前記対応するデータ処理が終了する旨を示す前記判断情報を受信し、
前記複数の第１通信装置のうちの所定数以上の第１通信装置からの前記対応するデータ処理が終了する旨を示す前記判断情報が受信されたか否かを判定し、
前記所定数以上の第１通信装置からの前記対応するデータ処理が終了する旨を示す前記判断情報を受信したと判定した場合、前記複数の第１通信装置に、前記依頼禁止状態を解除させる要求情報を送信することを特徴とする付記７に記載のシステム。
【０１７２】
（付記９）前記複数の第１通信装置の各々が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を、直接または前記複数の第１通信装置のうちの他の第１通信装置を介して前記第２通信装置へ送信し、
前記第２通信装置が、
前記対応するデータ処理が終了しない旨を示す前記判断情報を受信し、
前記対応するデータ処理が終了しない旨を示す前記判断情報の受信結果に基づいて、前記複数の第１通信装置の中で前記対応するデータ処理が終了しない旨を示す前記判断情報を送信した第１通信装置の数を判定し、
前記複数の第１通信装置に、判定した数に基づく判定情報を送信し、
前記複数の第１通信装置の各々が、
前記判定情報を受信し、
前記対応するデータ処理が終了しないと判断した場合、前記対応するデータ処理のうち前記判定情報に基づく割合の一部のデータ処理を実行し、
前記対応するデータ処理のうち前記一部のデータ処理以外のデータ処理を前記第１装置に実行させる依頼情報であって、前記第２装置に、前記対応するデータ処理の実行結果を送信させる依頼情報と、前記一部のデータ処理の実行結果と、を前記第１装置に送信することを特徴とする付記６に記載のシステム。
【０１７３】
（付記１０）通信装置が、
イベントの発生を検出し、
検出したイベントに対応するデータ処理が、前記検出したイベントのつぎのイベントの発生時までに終了するか否かを示す判断情報を、イベントの発生が検出された時間間隔に基づいて出力し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記対応するデータ処理を実行し、
前記対応するデータ処理が終了する旨を示す前記判断情報が入力された場合、前記データ処理による前記対応するデータ処理の実行結果を自通信装置と通信可能な第１装置へ送信し、前記対応するデータ処理が終了しない旨を示す前記判断情報が入力された場合、前記対応するデータ処理を前記第１装置に実行させるとともに、前記第１装置と通信可能な第２装置へ前記対応するデータ処理の実行結果を送信させる依頼情報を前記第１装置へ送信する、
処理を実行することを特徴とする通信方法。
【符号の説明】
【０１７４】
１０１  センサーノード
１０２  親機
１００  センサーネットワークシステム
３０３，４０７  無線通信回路
３０５  ＭＣＵ
３１２  バッテリ
３０６  ＲＡＭ
３０７  ＲＯＭ
３０８  不揮発メモリ
４０１  ＣＰＵ
５０１  検出部
５０２  判断部
５０３  データ処理部
５０４，６０３  送信部
５０５，６０１  受信部
５０６  取得部
５０７，６０２  判定部
５０８  蓄電部
ｅｖ  センシング
ｔｆ  処理転送禁止フラグ
ｂｆ  繁忙フラグ
ｉｔｖ  時間間隔
【国際調査報告】
2014016912.tif 000034
2014016912.tif 000035