(57)【特許請求の範囲】
【請求項１】
複数の通信装置のうち直接通信可能な第１通信装置の各々と、前記複数の通信装置のいずれかのデータ処理の実行結果に応じた処理を実行する第２通信装置と、の通信に要するホップ数に基づく情報を記憶する記憶装置と、
前記第１通信装置のうちのいずれかの第１通信装置から、データ処理の実行依頼内容を示す第１依頼情報を受信する第１受信部と、
前記第１受信部が受信した前記第１依頼情報の示すデータ処理が、完了可能か否かを判断する判断部と、
前記判断部が完了可能でないと判断した場合、前記第１通信装置のうちの前記いずれかの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じていずれかの第１通信装置を選択する選択部と、
前記第１依頼情報が示すデータ処理のうち実行可能な一部のデータ処理以外のデータ処理の実行依頼内容を示す第２依頼情報を、前記選択部が選択した第１通信装置へ送信する送信部と、
前記第２依頼情報が示すデータ処理を前記複数の第１通信装置のうちの少なくともいずれかによって完了可能であることを示す確保完了通知を受信する第２受信部と、
前記第２受信部が前記確保完了通知を受信した場合に、前記一部のデータ処理の実行を開始する実行部と、
を有することを特徴とする通信装置。
【請求項２】
前記第２受信部は、
前記選択された第１通信装置から前記確保完了通知を受信し、
前記送信部は、
前記第２受信部が受信した前記確保完了通知を、前記第１依頼情報の送信元である前記いずれかの第１通信装置に送信することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第２受信部は、
前記選択された第１通信装置から、前記第２依頼情報が示すデータ処理を一部であっても実行できないことを示す実行不可通知を受信し、
前記選択部は、
前記第１通信装置のうちの前記いずれかの第１通信装置および前記選択部がすでに選択済みの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じてあらたに第１通信装置を選択し、
前記送信部は、
前記選択部があらたに選択した第１通信装置へ前記第２依頼情報を送信することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記送信部は、
前記判断部が完了可能であると判断した場合、前記第１依頼情報が示すデータ処理を完了可能な確保完了通知を前記いずれかの第１通信装置へ送信することを特徴とする請求項１に記載の通信装置。
【請求項５】
前記第２通信装置が複数であって、
前記記憶装置は、
前記第１通信装置の各々と前記複数の第２通信装置の各々との通信に要するホップ数に基づく情報を記憶し、
前記選択部は、
前記判断部が完了可能でないと判断した場合、前記第１通信装置のうちの前記いずれかの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じていずれかの第１通信装置を選択することを特徴とする請求項１〜４のいずれか一つに記載の通信装置。
【請求項６】
前記複数の通信装置の各々は、所定領域内に位置し、
前記複数の第２通信装置は、前記所定領域を囲うように配置され、
前記ホップ数に基づく情報は、前記第１通信装置の各々と前記複数の第２通信装置の各々との通信に要するホップ数の標準偏差であることを特徴とする請求項５に記載の通信装置。
【請求項７】
前記選択部は、
前記判断部が完了可能でないと判断した場合、前記第１通信装置のうちの前記いずれかの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく標準偏差が最も小さい第１通信装置を選択することを特徴とする請求項６に記載の通信装置。
【請求項８】
複数の通信装置のうちの自通信装置と直接通信可能な第１通信装置の各々について、前記複数の通信装置のいずれかのデータ処理の実行結果に応じた処理を実行する第２通信装置との通信に要するホップ数に基づく情報を記憶する記憶装置と、
自通信装置で発生したイベントに応じたデータ処理を自通信装置によって完了可能か否かを判断する判断部と、
前記判断部が完了可能でないと判断した場合、前記第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じていずれかの第１通信装置を選択する選択部と、
前記データ処理の実行依頼内容を示す依頼情報を、前記選択部が選択した第１通信装置へ送信する送信部と、
を有することを特徴とする通信装置。
【請求項９】
前記依頼情報は、前記データ処理のうち自通信装置によって実行可能な一部のデータ処理以外のデータ処理の実行を依頼する情報であって、
前記依頼情報が示すデータ処理を前記複数の第１通信装置のうちの少なくともいずれかの通信装置によって完了可能であることを示す確保完了通知を受信する受信部と、
前記受信部が前記確保完了通知を受信すると、前記データ処理のうち自通信装置によって実行可能な一部のデータ処理の実行を開始する実行部と、
を有することを特徴とする請求項８に記載の通信装置。
【請求項１０】
複数の第１通信装置と、
前記複数の第１通信装置のいずれかのデータ処理の実行結果に応じた処理を実行する複数の第２通信装置と、
を有し、
前記複数の第１通信装置の各々は、
前記複数の第１通信装置のうちの自通信装置と直接通信可能な第１通信装置の各々について、前記複数の第１通信装置のいずれかのデータ処理の実行結果に応じた処理を実行する第２通信装置との通信に要するホップ数に基づく情報を記憶する記憶装置を有し、
前記複数の第１通信装置のうちのいずれかの第１通信装置が、
前記直接通信可能な第１通信装置のうちのいずれかの第１通信装置から、データ処理の実行依頼内容を示す第１依頼情報を受信し、
受信した前記第１依頼情報が示すデータ処理の実行を自通信装置によって完了可能か否かを判断し、
完了可能でないと判断された場合、前記直接通信可能な第１通信装置のうちの前記いずれかの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じていずれかの第１通信装置を選択し、
前記第１依頼情報が示すデータ処理のうち自通信装置によって実行可能な一部のデータ処理以外のデータ処理の実行依頼内容を示す第２依頼情報を、選択した第１通信装置へ送信し、
前記第２依頼情報が示すデータ処理を前記複数の第１通信装置のうちの少なくともいずれかの通信装置によって完了可能であることを示す確保完了通知を受信し、
前記確保完了通知を受信すると、前記一部のデータ処理の実行を開始する、
処理を実行することを特徴とするシステム。
【請求項１１】
通信装置が、
複数の通信装置のうちの自通信装置と直接通信可能な第１通信装置の各々と、前記複数の第１通信装置のいずれかのデータ処理の実行結果に応じた処理を実行する第２通信装置と、の通信に要するホップ数に基づく情報を記憶する記憶装置を有し、
前記直接通信可能な第１通信装置のうちのいずれかの第１通信装置から、データ処理の実行依頼内容を示す第１依頼情報を受信し、
受信した前記第１依頼情報が示すデータ処理の実行を自通信装置によって完了可能か否かを判断し、
完了可能でないと判断した場合、前記直接通信可能な第１通信装置のうちの前記いずれかの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じていずれかの第１通信装置を選択し、
前記第１依頼情報が示すデータ処理のうち自通信装置によって実行可能な一部のデータ処理以外のデータ処理の実行依頼内容を示す第２依頼情報を、選択した第１通信装置へ送信し、
前記第２依頼情報が示すデータ処理を前記複数の第１通信装置のうちの少なくともいずれかの通信装置によって完了可能であることを示す確保完了通知を受信し、
前記確保完了通知を受信すると、前記一部のデータ処理の実行を開始する、
処理を実行することを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、システム、および通信方法に関する。
【背景技術】
【０００２】
従来、携帯端末と、携帯端末にコンテンツを配信する接続サーバと、接続サーバの位置情報およびコンテンツを管理するコントローラルサーバーと、を含むシステムが知られている。このシステムでは、携帯端末の移動先を予測してつぎに接続する接続サーバに要求コンテンツを配信する技術が知られている（たとえば、下記特許文献１を参照。）。
【０００３】
また、複数のセンサー付無線端末を所定空間に散在させ、それらが協調して環境や物理的状況を採取することを可能とするセンサーネットワーク（ＷＳＮ：Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ）システムが知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２２１６８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、端末のハードウェア資源によっては、端末が自端末のデータ処理を自端末で実行できない場合に、当該データ処理の処理結果に基づく処理を実行する装置に処理結果が到達しない可能性がある。
【０００６】
１つの側面では、本発明は、処理結果に基づく処理を実行する装置へ処理結果が到達する確度を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、自通信装置を含む複数の第１通信装置のうちの自通信装置と直接通信可能な第１通信装置の各々と、前記複数の第１通信装置のいずれかのデータ処理の実行結果に応じた処理を実行する第２通信装置と、の通信に要するホップ数に基づく情報を記憶する記憶装置を有し、前記直接通信可能な第１通信装置のうちのいずれかの第１通信装置から、データ処理の実行を自通信装置に依頼する第１依頼情報を受信し、受信した前記第１依頼情報が示すデータ処理の実行を自通信装置によって完了可能か否かを判断し、完了可能でないと判断した場合、前記直接通信可能な第１通信装置のうちの前記いずれかの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じていずれかの第１通信装置を選択し、前記第１依頼情報が示すデータ処理のうち自通信装置によって実行可能な一部のデータ処理以外のデータ処理の実行を依頼する第２依頼情報を、選択した第１通信装置へ送信し、前記第２依頼情報が示すデータ処理を前記複数の第１通信装置のうちの少なくともいずれかの通信装置によって完了可能であることを示す確保完了通知を受信し、前記確保完了通知を受信すると、前記一部のデータ処理の実行を開始する通信装置、システム、および通信方法が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、処理結果に基づく処理を実行する装置へ処理結果が到達する確度を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、依頼先が不足する例を示す説明図である。
【図２】図２は、本発明にかかるシステムの一動作例を示す説明図である。
【図３】図３は、センサーノードのハードウェア構成例を示すブロック図である。
【図４】図４は、受信機のハードウェア構成例を示すブロック図である。
【図５】図５は、センサーノードの機能的構成例を示すブロック図である。
【図６】図６は、システム運用前のランク付け方法を示す説明図（その１）である。
【図７】図７は、システム運用前のランク付け方法を示す説明図（その２）である。
【図８】図８は、システム運用前のランク付け方法を示す説明図（その３）である。
【図９】図９は、実施例１における依頼発生例を示す説明図である。
【図１０】図１０は、処理ブロック管理テーブルの一例を示す説明図である。
【図１１】図１１は、実施例１における依頼先の選定例１を示す説明図である。
【図１２】図１２は、実施例１における依頼受付例１を示す説明図である。
【図１３】図１３は、実施例１における依頼先の選定例２を示す説明図である。
【図１４】図１４は、実施例１における依頼受付例２を示す説明図である。
【図１５】図１５は、実施例１における依頼先の選定例３を示す説明図である。
【図１６】図１６は、実施例１における依頼受付例３を示す説明図である。
【図１７】図１７は、実施例１における確保完了後の処理例を示す説明図である。
【図１８】図１８は、データ処理の開始を確保完了まで待つ場合と待たない場合の比較例を示す説明図である。
【図１９】図１９は、実施例１におけるデータ処理の完了例を示す説明図（その１）である。
【図２０】図２０は、実施例１におけるデータ処理の完了例を示す説明図（その２）である。
【図２１】図２１は、実施例２における依頼発生例を示す説明図である。
【図２２】図２２は、依頼済み管理テーブルの一例を示す説明図である。
【図２３】図２３は、実施例２における依頼先の選定例１を示す説明図である。
【図２４】図２４は、実施例２における依頼受付例１を示す説明図である。
【図２５】図２５は、実施例２における依頼先の選定例２を示す説明図である。
【図２６】図２６は、実施例２における依頼先の選定例３を示す説明図である。
【図２７】図２７は、実施例２における依頼受付例２を示す説明図である。
【図２８】図２８は、実施例２における依頼先の選定例４を示す説明図である。
【図２９】図２９は、実施例２における依頼受付例３を示す説明図である。
【図３０】図３０は、実施例２における確保完了後の処理例を示す説明図である。
【図３１】図３１は、実施例２におけるデータ処理の完了例を示す説明図である。
【図３２】図３２は、センサーノードが行う処理手順例を示すフロチャート（その１）である。
【図３３】図３３は、センサーノードが行う処理手順例を示すフロチャート（その２）である。
【図３４】図３４は、センサーノードが行う処理手順例を示すフロチャート（その３）である。
【図３５】図３５は、センサーノードが行う処理手順例を示すフロチャート（その４）である。
【図３６】図３６は、センサーノードが行う処理手順例を示すフロチャート（その５）である。
【図３７】図３７は、センサーノードが行う処理手順例を示すフロチャート（その６）である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる通信装置、システム、および通信方法の実施の形態を詳細に説明する。
【００１１】
図１は、依頼先が不足する例を示す説明図である。図２は、本発明にかかるシステムの一動作例を示す説明図である。システム１００は、センサーネットワークシステムであって、複数の第１通信装置である複数のセンサーノード１０１と、複数の第２通信装置である複数の受信機１０２と、を有する。各受信機１０２は、複数のセンサーノード１０１の少なくともいずれかのデータ処理の実行結果に基づく処理を実行する。
【００１２】
複数のセンサーノード１０１は、無線通信端末であって、所定領域Ａ内に配置されている。所定領域Ａは、たとえば、コンクリート、土、水、空気などの物質で満たされた領域である。センサーノード１０１は、所定領域Ａ内に数百個〜数万個配置されることとする。センサーノード１０１は広範囲に設置されるため、すべてのセンサーノード１０１が受信機１０２と直接データの送受信を行うことができない。そこで、システム１００では、センシング結果に対応するデータ処理の実行結果は、他のセンサーノード１０１を経由してマルチホッピング通信によって受信機１０２に到達することとする。
【００１３】
たとえば、各センサーノード１０１は、高性能なプロセッサや大容量のメモリを搭載していない。そのため、センサーノード１０１は、自センサーノード１０１のデータ処理を完了できない場合がある。また、たとえば、センサーノード１０１は、搭載されたマイクロプロセッサ（以下、「ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）」と称する。）の性能が低いと、センサーイベントに対応するデータ処理の実行が完了する前に、つぎのセンサーイベントが発生する可能性がある。または、たとえば、センサーノード１０１は、後述するハーベスタを搭載することによって自センサーノード１０１で発電し、後述するバッテリによって発電した電力を蓄電する。各センサーノード１０１内のハーベスタによる発電量やバッテリによる蓄電量は多くないため、データ処理が完了する前にバッテリが切れてしまう可能性がある。バッテリへの蓄電には時間がかかるため、各センサーノード１０１は、データ処理を完了可能でない場合、他のセンサーノード１０１へ実行を依頼する。
【００１４】
たとえば、図１に示すように、センサーノード１０１−ｘは、データ処理を自ノードによって完了可能でないため、他のセンサーノード１０１にデータ処理の実行を依頼する。本実施の形態にかかるシステム１００では、依頼されたセンサーノード１０１がさらに依頼された処理を完了できない場合に、順次依頼していく。この場合、図１に示すように、各センサーノード１０１が、配置領域の端に向かうように依頼していくと、依頼が発生しても依頼先がないため、データ処理が継続できない可能性がある。
【００１５】
そこで、図２に示すように、各センサーノード１０１は、データ処理の実行開始前に自ノードによって完了できないと判断された際に、実行依頼を他センサーノード１０１へリレー転送して実行可能なセンサーノード１０１を実行完了に十分なだけ確保する。そして、確保した後、依頼を受け付けた各センサーノード１０１は、担当データ処理を実行する。
【００１６】
具体的に、各センサーノード１０１は、複数のセンサーノード１０１のうちの自ノードと直接通信可能なセンサーノード１０１の各々と、受信機１０２と、の通信に要するホップ数に基づく情報をアクセス可能な記憶装置に記憶させておく。ホップ数に基づく情報は、たとえば、ホップ数そのものでもよいし、ホップ数に基づいて算出された値であってもよい。詳細例については、後述する。
【００１７】
センサーノード１０１−ｘは、自ノードでのセンシングイベントに応じたデータ処理を自ノードによって完了可能か否かを判断する。たとえば、センサーノード１０１−ｘは、バッテリの蓄電された電力量と、データ処理に要する電力量と、の比較によって、完了可能か否かを判断してもよい。詳細例は、後述する。
【００１８】
センサーノード１０１−ｘは、自センサーノード１０１によって完了可能でないと判断された場合、記憶装置に記憶されホップ数に基づく情報に応じていずれか一つのセンサーノード１０１を選択する。自ノードと直接通信可能なセンサーノード１０１のうちの依頼元センサーノード１０１以外のセンサーノード１０１からいずれか一つのセンサーノード１０１が選択される。図２の例では、センサーノード１０１−ｙが選択される。
【００１９】
そして、センサーノード１０１−ｙは、直接通信可能なセンサーノード１０１−ｘから、自ノードへのデータ処理の実行依頼内容を示す依頼情報を受信する。センサーノード１０１−ｙは、依頼情報が示すデータ処理を自ノードによって完了可能か否かを判断する。
【００２０】
センサーノード１０１−ｙは、依頼されたデータ処理を自ノードによって完了可能でないと判断した場合、記憶装置に記憶されホップ数に基づく情報に応じていずれか一つのセンサーノード１０１を選択する。直接通信可能なセンサーノード１０１のうちの依頼情報の送信元以外のセンサーノード１０１からいずれか一つのセンサーノード１０１が選択される。複数の受信機１０２が所定領域Ａを囲うように配置されていると、複数の受信機１０２の各々との通信に要するホップ数が等しいセンサーノード１０１は、所定領域Ａ内で端に配置されている可能性が低い。そこで、たとえば、センサーノード１０１−ｙは、複数の受信機１０２の各々との通信に要するホップ数が大きいセンサーノード１０１−ｚをホップ数に基づく情報に応じて選択する。たとえば、ホップ数に基づく情報は、各受信機１０２とセンサーノード１０１とのホップ数の標準偏差とすれば、複数の受信機１０２の各々から同じくらい離れているか否かが判別される。センサーノード１０１−ｙは、依頼されたデータ処理のうち、自センサーノード１０１で実行可能な一部のデータ処理以外のデータ処理の実行を選択したセンサーノード１０１−ｚに依頼する依頼内容を示す依頼情報を送信する。
【００２１】
センサーノード１０１−ｚは、センサーノード１０１−ｙと同様に完了可能であるかを判断し、完了可能でなければ、依頼情報をホップ数に基づく情報に基づいて依頼先を選択して送信する。図２の例では、センサーノード１０１−ｚからセンサーノード１０１−ｐ、センサーノード１０１−ｑ、センサーノード１０１−ｒ、センサーノード１０１−ｓの順にデータ処理の実行が依頼される。たとえば、センサーノード１０１−ｓは、依頼されたデータ処理を完了可能であると判断すると、確保完了通知を依頼情報の送信元に送信する。たとえば、センサーノード１０１−ｓからセンサーノード１０１−ｒ、センサーノード１０１−ｑ、センサーノード１０１−ｐ、センサーノード１０１−ｚ、センサーノード１０１−ｙの依頼情報が送信される順と逆に転送されてもよい。そして、センサーノード１０１−ｙは、送信した依頼情報が示すデータ処理を複数のセンサーノード１０１のうちの少なくともいずれかのセンサーノード１０１によって完了可能であることを示す確保完了通知を受信する。センサーノード１０１−ｙは、確保完了通知を受信すると、一部のデータ処理の実行を開始する。さらに、センサーノード１０１−ｙは、確保完了通知をセンサーノード１０１−ｘに転送する。
【００２２】
これにより、依頼先での依頼先が不足することを防ぐことができる。直接通信可能なセンサーノード１０１の中で端に配置されている可能性が低いセンサーノード１０１に依頼を行うことにより、依頼先でさらに依頼が行われる際の依頼先が不足することを防ぐことができる。したがって、受信機１０２へデータ処理の実行結果が到達する確度を向上させることができる。さらに、データ処理を完了可能な数のノードの確保後に各センサーノード１０１の担当データ処理を開始することにより消費電力を抑止することができる。消費電力を抑止可能であることについての詳細な説明は、図１８に示す。
【００２３】
（センサーノード１０１のハードウェア構成例）
図３は、センサーノードのハードウェア構成例を示すブロック図である。センサーノード１０１は、ＭＣＵ３０１と、センサー３０２と、無線通信回路（ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ））３０３と、ＲＡＭ３０４と、ＲＯＭ３０５と、不揮発メモリ３０６と、アンテナ３０７と、ハーベスタ３０８と、バッテリ３０９と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）３１０と、を有する。センサーノード１０１は、ＭＣＵ３０１と、センサー３０２と、無線通信回路３０３と、ＲＡＭ３０４と、ＲＯＭ３０５と、不揮発メモリ３０６と、を接続する内部バス３１１を有する。
【００２４】
センサー３０２は、設置箇所における所定の変位量を検出する。センサー３０２は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。アンテナ３０７は、受信機１０２と無線通信する電波を送受信する。無線通信回路３０３は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ３０７を介して送信する。
【００２５】
ＭＣＵ３０１は、センサー３０２が検出したデータを処理する。ＲＡＭ３０４は、ＭＣＵ３０１における処理の一時データを格納する。ＲＯＭ３０５は、ＭＣＵ３０１が実行する処理プログラムなどを格納する。不揮発メモリ３０６は、書き込み可能なメモリであって、電力供給が途絶えたときなどにおいても書き込まれた所定のデータを保持する。たとえば、書き込み可能な不揮発メモリ３０６は、フラッシュメモリが挙げられる。
【００２６】
ハーベスタ３０８は、センサーノード１０１の設置箇所における外部環境、たとえば、光、振動、温度、無線電波（受信電波）などのエネルギー変化に基づき発電を行う。ハーベスタ３０８は、複数設けられていてもよい。ハーベスタ３０８は、センサー３０２によって検出された変位量に応じて発電を行ってもよい。バッテリ３０９は、ハーベスタ３０８により発電された電力を蓄える。すなわち、センサーノード１０１は、二次電池や外部電源などが不要であり、各構成要素の動作のための電力を自ノードの内部で生成する。ＰＭＵ３１０は、バッテリ３０９によって蓄えられた電力を、センサーノード１０１の各部に駆動電源として供給する制御を行う。
【００２７】
（受信機１０２のハードウェア構成例）
図４は、受信機のハードウェア構成例を示すブロック図である。受信機１０２は、センサーノード１０１と異なり、外部電源に基づき動作する。受信機１０２は、センサーノード１０１のＭＣＵ３０１よりも高性能なプロセッサ（ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））４０１と、大容量のＲＯＭ４０２、ＲＡＭ４０３、および不揮発メモリ４０４と、インターフェース（Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ））回路４０５と、を有する。受信機１０２は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、不揮発メモリ４０４と、Ｉ／Ｏ回路４０５と、を接続するバス４０９を有する。
【００２８】
ここで、ＣＰＵ４０１は、受信機１０２の全体の制御を司る。ＣＰＵ４０１は、ＲＯＭ４０２、ＲＡＭ４０３、不揮発メモリ４０４などの記憶装置に記憶されている判定プログラムなどの各種プログラムを実行することにより、記憶装置内のデータを読み出したり、実行結果となるデータを記憶装置に書き込んだりする。
【００２９】
また、Ｉ／Ｏ回路４０５には、アンテナ４０７および無線通信回路４０６（ＲＦ）と、ネットワークＩ／Ｆ４０８が接続されている。これにより、受信機１０２は、アンテナ４０７および無線通信回路４０６を介して、センサーノード１０１と無線通信することができる。さらに、受信機１０２は、ネットワークＩ／Ｆ４０８を介して、ＴＣＰ／ＩＰのプロトコル処理などにより、インターネットなどのネットワークＮＥＴを介してサーバや利用者端末などの外部装置と通信を行うことができる。また、図示していないが、受信機１０２はディスプレイやキーボード、またはタッチパネル式のディスプレイなどの入力装置や出力装置を有していてもよい。
【００３０】
（センサーノード１０１の機能的構成例）
図５は、センサーノードの機能的構成例を示すブロック図である。センサーノード１０１は、第１受信部５０１と、センシング部５０２と、蓄電部５０３と、判断部５０４と、選択部５０５と、分割部５０６と、登録部５０７と、送信部５０８と、第２受信部５０９と、実行部５１０と、記憶装置５００と、を有する。センシング部５０２は、センサー３０２によって実現され、第１受信部５０１と第２受信部５０９と送信部５０８とは、無線通信回路３０３とアンテナ３０７によって実現される。蓄電部５０３は、バッテリ３０９によって実現される。記憶装置５００は、図３に示した不揮発メモリ３０６によって実現される。
【００３１】
たとえば、ＲＡＭ３０４、ＲＯＭ３０５、不揮発メモリ３０６などの記憶装置に記憶された、各部の機能がコーディングされた通信プログラムをＭＣＵ３０１が読み出して、通信プログラムにコーディングされた処理を実行する。これにより、各部の機能が実現される。
【００３２】
（運用前）
図６は、システム運用前のランク付け方法を示す説明図（その１）である。まず、たとえば、所定領域Ａを囲うように均等距離離れて設けられた３つの受信機１０２−１〜１０２−３の各々は、キャリブレーション信号を複数のセンサーノード１０１へ送信する。複数のセンサーノード１０１は、受信機１０２に対応するキャリブレーション信号を受信すると、ホップ数をカウントアップさせながら、キャリブレーション信号をマルチホップ通信によって転送する。
【００３３】
図７は、システム運用前のランク付け方法を示す説明図（その２）である。たとえば、各センサーノード１０１は、受信機１０２ごとのホップ数の標準偏差または分散を算出する。図７の例では、ａ〜ｅのアルファベット順に、ａに近いほど標準偏差が小さく、ｅに近いほど標準偏差が大きい。所定領域Ａ内において、標準偏差が小さいほど端に配置されているセンサーノード１０１である可能性が低く、標準偏差が大きいほど端に配置されているセンサーノード１０１である可能性が高い。そして、この標準偏差を各センサーノード１０１のランク情報とする。
【００３４】
図８は、システム運用前のランク付け方法を示す説明図（その３）である。たとえば、各センサーノード１０１は、Ｐｉｎｇ−Ｐｏｎｇ通信によって、算出したランク情報を隣接するセンサーノード１０１とランク情報を交換する。そして、各センサーノード１０１は、交換したランク情報と隣接するセンサーノード１０１との識別情報とを関連付けて、記憶装置５００に記憶する。
【００３５】
（運用中）
つぎに、システム１００の運用時について詳細に説明する。システム１００では、受信機１０２とセンサーノード１０１とのホップ数に基づき受信機１０２から遠いセンサーノード１０１にデータ処理を依頼することにより、依頼先でのあらたな依頼先が不足することを防ぐことができる。さらに、システム１００では、データ処理を完了可能な数のセンサーノード１０１が確保された後、各センサーノード１０１の担当処理を開始することにより、消費電力を抑止することができる。本実施の形態では、データ処理が並列処理である実施例１と、データ処理が逐次処理である実施例２と、を説明する。
【００３６】
（実施例１）
図９は、実施例１における依頼発生例を示す説明図である。ランク情報の大小関係は「ａ＜ｂ＜ｃ＜ｄ＜ｅ＜ｆ＜ｇ」である。ランク情報が小さいほど、端である可能性が低く、ランク情報が大きいほど、端である可能性が高い。ランク情報は、運用前の例で示したように、たとえば、各センサーノード１０１が直接通信可能なセンサーノード１０１ごとに当該直接通信可能なセンサーノード１０１の識別情報に関連付けられて各センサーノード１０１が有する記憶装置５００に記憶される。ここでは、センサーノード１０１−０で発生したセンシングイベントに応じたデータ処理を他のセンサーノード１０１に実行を依頼する例を挙げる。センシング部５０２−０は、一定時間ごとに応じてまたは受信機１０２からの指示に応じて、センサーによってセンシングを行う。
【００３７】
判断部５０４−０は、自ノードで発生したセンシングイベントに応じたデータ処理を自ノードによって完了可能か否かを判断する。具体的には、たとえば、判断部５０４−０は、センシング部５０２によるセンシングイベントの発生を検出すると、当該センシングイベントに応じたデータ処理の処理量を導出する。データ処理の処理量は、たとえば、データ処理のデータサイズであってもよい。そして、判断部５０４−０は、導出した処理量に基づいて処理量の実行に要する電力量を導出する。たとえば、判断部５０４−０は、データサイズと、単位データサイズ当たりの実行に要する電力量に基づいて導出してもよい。
【００３８】
判断部５０４−０は、導出した電力量と、蓄電部５０３に蓄電された電力量と、を比較することにより、データ処理を自ノードによって完了可能か否かを判断する。さらに、たとえば、判断部５０４−０は、データ処理のうちのどの程度のデータ処理について実行可能か否かを判断する。判断部５０４−０は、データ処理が並列処理可能か否かを判断する。分割部５０６−０は、判断部５０４−０によって並列処理可能であると判断された場合、データ処理を並列可能な複数のブロックに分割して処理ブロック管理テーブルを作成する。
【００３９】
図１０は、処理ブロック管理テーブルの一例を示す説明図である。処理ブロック管理テーブル１０００は、データ処理のうちのいずれの処理をいずれのセンサーノード１０１が実行するかを管理するためのテーブルである。処理ブロック管理テーブル１０００は、処理ブロックＩＤ、処理量、結果データサイズ、および担当センサーノードＩＤのフィールドを有する。各フィールドに情報が設定されることにより、レコード（たとえば、１０００−１〜１０００−４）として記憶される。処理ブロック管理テーブル１０００は、たとえば、ＲＡＭ３０４や不揮発メモリ３０６などの記憶装置によって実現される。
【００４０】
処理ブロックＩＤは、データ処理が分割された各ブロックに付された識別情報である。処理量は、分割された各ブロックの処理量である。結果データサイズは、分割された各ブロックが実行された実行結果のデータサイズである。担当センサーノードＩＤは、各ブロックを実行するセンサーノード１０１の識別情報である。
【００４１】
判断部５０４−０は、分割部５０６−０によって分割された複数の処理ブロックの各々について自センサーノード１０１によって実行可能か否かを判断する。たとえば、判断部５０４−０は、処理ブロックのデータサイズの大小順に判断してもよいし、処理ブロックの組み合わせを含めて判断してもよい。ここでは、判断部５０４−０は、処理ブロック０について実行可能であるが、他の処理ブロックについては実行できないため、自ノードによってデータ処理を完了可能でないと判断する。
【００４２】
登録部５０７−０は、たとえば、判断部５０４−０によって処理ブロック０について実行可能であると判断された場合、処理ブロックＩＤが０であるレコードの、担当センサーノードＩＤに０を登録する。つぎに、登録部５０７−０は、自センサーノード１０１のＩＤを登録した経由センサーノードリスト９００を作成する。ここでの例では、データ処理のうちの一部のデータ処理については自ノードによって実行可能としているが、データ処理をすべて他のセンサーノード１０１に依頼してもよい。
【００４３】
図１１は、実施例１における依頼先の選定例１を示す説明図である。選択部５０５−０は、判断部５０４−０によってデータ処理を完了可能でないと判断された場合、直接通信可能なセンサーノード１０１から、記憶装置５００に記憶されたホップ数に基づく情報に応じていずれかの第１通信装置を選択する。上述したように、ホップ数に基づく情報は、ランク情報である。具体的に、たとえば、選択部５０５−０は、直接通信可能なセンサーノード１０１のうち、記憶装置５００に記憶されたランク情報が最も小さいセンサーノード１０１を依頼先として選択する。図１１の例では、センサーノード１０１−０と直接通信可能なセンサーノード１０１は、センサーノード１０１−１と、センサーノード１０１−５と、センサーノード１０１−６と、センサーノード１０１−７と、であり、ランク情報が最も小さい「ｄ」であるセンサーノード１０１−１が選択される。
【００４４】
送信部５０８−０は、データ処理のうち自ノードによって実行可能な一部のデータ処理以外のデータ処理の実行依頼内容を示す依頼情報を、選択部５０５−０によって選択されたセンサーノード１０１へ送信する。具体的には、送信部５０８−０は、処理ブロック管理テーブル１０００と、協調処理ＩＤと、処理種別フラグと、を関連付けて依頼情報（以下、「依頼通知」と称する。）として、選択部５０５−０によって選択されたセンサーノード１０１−１へ送信する。協調処理ＩＤは、当該データ処理の依頼時に付される識別情報であり、複数のデータ処理の実行依頼が重なった際のデータ処理の混同を防ぐために付される。
【００４５】
図１２は、実施例１における依頼受付例１を示す説明図である。第１受信部５０１−１は、直接通信可能なセンサーノード１０１のうちのいずれかのセンサーノード１０１から、データ処理を自ノードに依頼する依頼通知を受信する。各センサーノード１０１は、自センサーノード１０１の位置や他のセンサーノード１０１の位置を認識していない。そのため、送信部５０８−０は、依頼通知の宛先をセンサーノード１０１−１にして、周辺のセンサーノード１０１すべてに依頼通知を送信する。依頼通知を受信した各センサーノード１０１は、依頼通知の宛先に基づいて自ノードに依頼されたか否かを判断する。ここでは、依頼通知の宛先がセンサーノード１０１−１であるため、第１受信部５０１−１は、データ処理を自ノードに依頼する依頼通知であるとして受信する。
【００４６】
判断部５０４−１は、第１受信部５０１−１によって受信された依頼通知が示すデータ処理を自ノードによって完了可能か否かを判断する。より具体的には、判断部５０４−１は、依頼通知に基づいて依頼を受け付けるか否かを判断する。すでに他の協調処理を受け付けている場合には、送信部５０８−１は、依頼通知に対して応答しない、または依頼通知の送信元に対して依頼を受け付けない旨を示す実行不可通知を送信する。各センサーノード１０１が協調処理を受け付けているか否かについては、たとえば、各センサーノード１０１が、受付フラグを設け、協調処理を受け付けた場合にセットにし、協調処理を受けていない場合にアンセットにしてもよい。
【００４７】
他の協調処理を受け付けていない場合、判断部５０４−１は、蓄電部５０３−１に蓄電された電力量と、受信された依頼通知が示すデータ処理に要する電力量と、の比較に基づいて、受信された依頼通知が示すデータ処理を自ノードによって完了可能か否かを判断する。判断の際に、判断部５０４−１は、依頼通知が示すデータ処理のうちどの程度であれば、自ノードによって実行可能か判断する。具体的に、たとえば、判断部５０４−１は、自ノードのセンシング処理に要する電力量（Ｊｓ）と、処理ブロック管理テーブル１０００の各ブロックの処理量の実行に要する電力量（Ｊｐ）と、の各々を導出する。そして、たとえば、判断部５０４−１は、各ブロックの処理の実行結果の転送に要する電力量（Ｊｔ）と、バッテリ３０９に蓄電された電力量（Ｊｂ）と、の各々を導出する。そして、センサーノード１０１−１は、導出した各電力量に基づいて、以下式（１）を満たすか否かを判断する。
【００４８】
Ｊｂ≧Ｊｓ＋Ｊｔ＋Ｊｐ・・・（１）
【００４９】
上記式（１）を満たす場合、判断部５０４−１は、依頼されたデータ処理のうちの一部のデータ処理を行うために十分な電力量がバッテリ３０９に充電されていると判断する。一方、上記式（１）を満たさない場合、センサーノード１０１−１は、依頼されたデータ処理のうちの一部のデータ処理を行うために十分な電力量がバッテリ３０９に充電されていないと判断する。たとえば、判断部５０４−１は、式（１）を満たすか否かについては、処理ブロック管理テーブル１０００の処理ブロックごとに判断してもよい。さらに、たとえば、判断部５０４−１は、複数の処理ブロックについて実行可能か判断してもよい。
【００５０】
図示していないが、いずれの処理ブロックであっても実行可能でない場合、送信部５０８−１は、依頼通知が示すデータ処理を一部であっても実行できないことを示す実行不可通知を依頼通知の送信元であるセンサーノード１０１−０へ送信する。
【００５１】
ここでは、たとえば、処理ブロック２を判断部５０４−１によって実行可能であると判断された場合、送信部５０８−１は、（１）依頼受付通知を依頼元のセンサーノード１０１−０へ送信する。そして、第２受信部５０９−０が依頼受付通知を受信すると、送信部５０８−０は、（２）経由センサーノードリスト９００と、データ処理プログラムと、を関連付けてセンサーノード１０１−１へ送信する。第１受信部５０１−１によって受信されたデータ処理プログラムは、センサーノード１０１−１が有するＲＡＭ３０４、不揮発メモリ３０６などの記憶装置に記憶される。
【００５２】
そして、登録部５０７−１は、（３）処理ブロック管理テーブル１０００内の処理ブロックＩＤが２の担当センサーノードＩＤに１を登録することにより、処理ブロック管理テーブル１０００を更新する。判断部５０４−１は、処理ブロック管理テーブル１０００を参照して、すべての処理ブロックについて、実行を担当するセンサーノード１０１が決定しているか否かを判断することにより、依頼されたデータ処理がすべて完了可能か否かを判断する。
【００５３】
図１２の例では、判断部５０４−１は、処理ブロック１と処理ブロック３についての担当センサーノードＩＤが空欄であるため、データ処理を完了可能でないと判断する。そして、登録部５０７−１は、（４）第１受信部５０１−１によって受信された経由センサーノードリスト９００へ自センサーノード１０１の識別情報を登録することにより、経由センサーノードリスト９００を更新する。
【００５４】
図１３は、実施例１における依頼先の選定例２を示す説明図である。選択部５０５−１は、判断部５０４−１によって完了可能でないと判断された場合、記憶装置５００に記憶されたホップ数に基づく情報に応じていずれかのセンサーノード１０１を選択する。直接通信可能なセンサーノード１０１のうちの依頼通知の送信元以外のセンサーノード１０１からいずれかのセンサーノード１０１が選択される。
【００５５】
具体的には、たとえば、選択部５０５−１は、直接通信可能なセンサーノード１０１のうちの依頼通知の送信元以外のセンサーノード１０１から、記憶装置５００に記憶されたランク情報が最も小さいセンサーノード１０１を選択する。図１３の例では、ランク情報がｃであるセンサーノード１０１が２つあるが、選択部５０５−１は、いずれを選択してもよい。ここでは、センサーノード１０１−２が選択される。
【００５６】
送信部５０８−１は、受信された依頼通知が示すデータ処理のうち自ノードによって実行可能な一部のデータ処理以外のデータ処理の実行を依頼する依頼通知を、選択部５０５−１によって選択されたセンサーノード１０１−２へ送信する。送信される依頼通知は、たとえば、登録部５０７−１によって登録された後の処理ブロック管理テーブル１０００を含む依頼通知である。
【００５７】
図１４は、実施例１における依頼受付例２を示す説明図である。図１５は、実施例１における依頼先の選定例３を示す説明図である。センサーノード１０１−２は、センサーノード１０１−１と同様にいずれのブロックについての処理を受け付けるか判断する。図１４に示す（１）〜（４）は、図１２に示す（１）〜（４）と同様の処理であるため、詳細な説明を省略する。そして、センサーノード１０１−２は、担当するセンサーノード１０１が未決定なブロックがある場合、依頼するセンサーノード１０１を選定する。図１５の例では、処理ブロックＩＤが１であるブロックをセンサーノード１０１−２が実行を担当し、あらたな依頼先としてセンサーノード１０１−３が選択される。
【００５８】
図１６は、実施例１における依頼受付例３を示す説明図である。センサーノード１０１−３は、図１２と図１４で示した各センサーノード１０１の処理と同様に処理ブロック管理テーブル１０００内の担当が未決定のブロックについて処理可能か否かを判断する。図１６に示す（１）〜（４）は、図１２および図１４に示す（１）〜（４）と同様の処理であるため、詳細な説明を省略する。ここでは、センサーノード１０１−３は、処理ブロック３について、実行可能であると判断する。これにより、処理ブロック管理テーブル１０００内の担当センサーノードＩＤの欄が埋まる。そのため、判断部５０４−３は、第１受信部５０１−３によって受信された依頼通知が示すデータ処理を自ノードによって完了可能であると判断する。
【００５９】
図１７は、実施例１における確保完了後の処理例を示す説明図である。送信部５０８−３は、依頼元のセンサーノード１０１−２に対して、（１）確保完了通知を送信する。たとえば、確保完了通知には、処理ブロック管理テーブル１０００と、経由センサーノードリスト９００と、が含まれていてもよい。実行部５１０−３は、確保完了通知を送信すると、担当処理ブロックの実行を開始する。
【００６０】
第２受信部５０９−２は、複数のセンサーノード１０１のうちの一部のデータ処理以外のデータ処理の実行を完了可能なセンサーノード１０１−３から送信された確保完了通知を受信する。送信部５０８−２は、（２）第２受信部５０９−２によって受信した確保完了通知を依頼情報の依頼元のセンサーノード１０１−１に転送する。このように、経由されたセンサーノード１０１は、確保完了通知を受信すると、（２）各センサーノード１０１に対する依頼情報の送信元であるセンサーノード１０１に対して確保完了通知を転送する。実行部５１０−２は、第２受信部５０９−２によって確保完了通知を受信すると、一部のデータ処理の実行を開始する。たとえば、経由センサーノードリスト９００に基づいて、転送できる。
【００６１】
図１８は、データ処理の開始を確保完了まで待つ場合と待たない場合の比較例を示す説明図である。データ処理を完了させるのに十分なセンサーノード１０１が確保されるまでデータ処理の開始を待つ場合は、待たない場合よりも各センサーノード１０１での一部のデータ処理の終了が遅い。一方、実行が終了しても、依頼先の実行が完了するまで待機しなければならない。そのため、確保完了を待つ場合は、確保完了を待たない場合よりも実行結果の保持期間が短くなる。したがって、確保完了を待つ場合は、確保完了を待たない場合よりも実行結果を保持して確保完了を待機することに要する消費電力を抑止でき、実行結果を記憶するＲＡＭ３０４や不揮発メモリ３０６などの記憶装置の圧迫を抑止することができる。ここで、各センサーノード１０１は、データ処理プログラムの確保が完了し、かつ実行が完了するまで破棄しないこととする。
【００６２】
図１９および図２０は、実施例１におけるデータ処理の完了例を示す説明図である。各送信部５０８は、各実行部５１０によるデータ処理の実行が完了すると、経由センサーノードリスト９００に基づいて、実行結果を依頼元となるセンサーノード１０１へ送信する。依頼を行っているセンサーノード１０１の第２受信部５０９は、依頼先となるセンサーノード１０１からの実行結果を受信する。送信部５０８は、自センサーノード１０１の実行部５１０による実行結果と、第２受信部５０９によって受信された実行結果と、を併せて依頼元となるセンサーノード１０１へ送信する。
【００６３】
第２受信部５０９−０は、他のセンサーノード１０１へ依頼したデータ処理の実行結果を受信する。実行部５１０−０は、自センサーノード１０１の実行部５１０−０による実行結果と、第２受信部５０９−０によって受信された実行結果と、を処理ブロック管理テーブル１０００に基づいて実行結果の順序を並べ替えるなどを行うことにより、実行結果をまとめる。そして、送信部５０８−０は、まとめた実行結果を複数のセンサーノード１０１のマルチホップ通信により受信機１０２までリレー転送する。
【００６４】
これにより、依頼先の不足を防止することができ、データ処理を完了させることができる。したがって、データ処理の実行結果が受信機１０２へ到達する確度を向上させることができる。さらに、所定領域Ａ内の端に配置されたセンサーノード１０１は、依頼先が無い場合に、データ処理を破棄する可能性がある。しかしながら、各受信機１０２から離れた位置にあるセンサーノード１０１へ依頼するため、端に配置されたセンサーノード１０１へ依頼する可能性が低くなる。そのため、データ処理が破棄されるのを防止することができる。たとえば、受信機１０２や利用者端末がデータ処理の実行結果に基づいて時系列で解析を行う場合、データ処理が破棄されると、解析精度が低下する。したがって、センシングイベントに応じたデータ処理の破棄を低減させることにより、解析精度を向上させることができる。
【００６５】
（実施例２）
つぎに、実施例２では、データ処理が逐次処理の場合について説明する。逐次処理の場合、複数のセンサーノード１０１に分散して処理を依頼しても、同時に実行が行えない。そのため、実施例２では、データ処理を完了可能な数のセンサーノード１０１を確保してから順に実行を開始する。
【００６６】
図２１は、実施例２における依頼発生例を示す説明図である。センシング部５０２−０は、センサーによってセンシングを行う。判断部５０４−０は、センシング部５０２−０によってセンシングイベントに応じたデータ処理の処理量を導出する。データ処理の処理量は、たとえば、全処理ステップ数であってもよいし、データ処理のデータサイズであってもよい。ここでは、全処理のステップ数が４５である。そして、判断部５０４−０は、導出した処理量に基づいて処理量の実行に要する電力量を導出する。たとえば、判断部５０４−０は、ステップ数と１ステップ当たりの実行に要する電力量とに基づいて導出してもよいし、データサイズと、単位データサイズ当たりの実行に要する電力量に基づいて導出してもよい。
【００６７】
判断部５０４−０は、実行に要する電力量と、蓄電部５０３によって蓄電された電力量と、を比較することにより、センシングイベントに応じたデータ処理を自センサーノード１０１によって完了可能か否かを判断する。たとえば、判断部５０４−０は、データ処理が並列処理可能か否かを判断する。判断部５０４−０によって並列処理可能でないと判断された場合、登録部５０７−０は、データ処理の処理量に基づいて依頼済み管理テーブル２２００を作成する。
【００６８】
図２２は、依頼済み管理テーブルの一例を示す説明図である。依頼済み管理テーブル２２００は、依頼受付センサーノードＩＤ、および処理可能ステップ数のフィールドを有する。各フィールドに情報が設定されることにより、レコードとして記憶される。依頼済み管理テーブル２２００は、たとえば、ＲＡＭ３０４や不揮発メモリ３０６などの記憶装置によって実現される。
【００６９】
登録部５０７−０は、自センサーノード１０１によって処理可能な処理量を依頼済み管理テーブル２２００に登録する。たとえば、図２２の例では、判断部５０４−０によって全処理の４５ステップのうち１０ステップを実行可能であると判断されたため、登録部５０７−０は、依頼受付センサーノードＩＤが０の処理可能ステップ数に１０を登録する。また、判断部５０４−０は、残余の３５ステップについては実行可能でないため、自ノードによってデータ処理を完了可能でないと判断する。そして、登録部５０７−０は、図２１に示すように、自センサーノード１０１の識別情報が登録された経由センサーノードリスト９００を作成する。
【００７０】
図２３は、実施例２における依頼先の選定例１を示す説明図である。選択部５０５−０は、判断部５０４−０によって完了可能でないと判断された場合、直接通信可能なセンサーノード１０１のうちの依頼通知の送信元以外から、記憶装置５００に記憶されたホップ数に基づく情報に応じていずれかのセンサーノード１０１を選択する。具体的には、たとえば、選択部５０５−０は、記憶装置５００に記憶されたランク情報が最も小さいセンサーノード１０１−１を選択する。
【００７１】
送信部５０８−０は、データ処理のうち自センサーノード１０１によって実行可能な一部のデータ処理以外のデータ処理の実行を依頼する依頼通知を、選択部５０５−０によって選択されたセンサーノード１０１−１へ送信する。依頼通知には、たとえば、依頼済み管理テーブル２２００と、データ処理の全処理量と、協調処理ＩＤと、処理種別フラグと、が含まれる。協調処理ＩＤと、処理種別フラグと、については、並列処理で説明した例と同一の情報である。ここでは、処理種別フラグは、逐次処理であることを示す。
【００７２】
図２４は、実施例２における依頼受付例１を示す説明図である。依頼されたセンサーノード１０１による処理例は、並列処理と同様であるため、以降簡単に説明する。第１受信部５０１−１は、直接通信可能なセンサーノード１０１のうちのいずれかのセンサーノード１０１から、データ処理を自ノードに依頼する依頼通知を受信する。
【００７３】
判断部５０４−１は、第１受信部５０１−１によって受信された依頼通知が示すデータ処理を自ノードによって完了可能か否かを判断する。判断方法は並列処理で説明した上記式（１）を利用するため、詳細な説明を省略する。ここでは、判断部５０４−１は、一部のデータ処理について実行可能であると判断し、送信部５０８−１は、（１）依頼元であるセンサーノード１０１−０へ依頼受付通知を送信する。第２受信部５０９−０が依頼受付通知を受信すると、送信部５０８−０は、（２）経由センサーノードリスト９００とデータ処理プログラムとをセンサーノード１０１−１へ送信する。
【００７４】
判断部５０４−１は、依頼された３５ステップのうち２０ステップを実行可能であると判断し、依頼されたデータ処理を完了可能でないと判断する。登録部５０７−１は、（３）判断部５０４−１による判断結果に基づいて、依頼済み管理テーブル２２００を更新し、（４）経由センサーノードリスト９００を更新する。
【００７５】
図２５は、実施例２における依頼先の選定例２を示す説明図である。選択部５０５−０は、判断部５０４−０によって完了可能でないと判断された場合、直接通信可能なセンサーノード１０１から、記憶装置５００に記憶されたホップ数に基づく情報に応じていずれかのセンサーノード１０１を選択する。具体的には、たとえば、選択部５０５−０は、記憶装置５００に記憶されたランク情報が最も小さいセンサーノード１０１を選択する。送信部５０８−０は、データ処理のうち自センサーノード１０１によって実行可能な一部のデータ処理以外のデータ処理の実行を依頼する依頼通知を、選択部５０５−０によって選択されたセンサーノード１０１−４へ送信する。
【００７６】
たとえば、第１受信部５０１−４は、依頼通知を受信し、判断部５０４−４は、上述したように依頼通知が示すデータ処理を完了可能か、一部のデータ処理を実行可能かを判断する。ここでは、たとえば、判断部５０４−４は、依頼通知が示すデータ処理を一部であっても実行できないと判断する。そして、送信部５０８−４は、依頼通知が示すデータ処理を一部であっても実行できないことを示す実行不可通知を依頼通知の送信元であるセンサーノード１０１−１へ送信する。
【００７７】
第２受信部５０９−１は、依頼通知が示すデータ処理を一部であっても実行できないことを示す実行不可通知を選択部５０５−１によって選択されたセンサーノード１０１−４から受信する。
【００７８】
図２６は、実施例２における依頼先の選定例３を示す説明図である。選択部５０５−１は、直接通信可能なセンサーノード１０１のうちの依頼元と選択済みとを除くセンサーノード１０１から、記憶装置５００に記憶されたランク情報が最も小さいセンサーノード１０１をあらたに選択する。送信部５０８−１は、依頼されたデータ処理のうち自ノードによって実行可能な一部のデータ処理以外のデータ処理の実行を依頼する依頼通知を、選択部５０５−１によって選択されたセンサーノード１０１−２へ送信する。
【００７９】
図２７は、実施例２における依頼受付例２を示す説明図である。図２７の例では、図２４で示した例と同様に、センサーノード１０１−２が、依頼されたデータ処理の一部を受け付ける。図２７に示す（１）〜（４）は、図２４に示した（１）〜（４）と同様の処理であるため、詳細な説明を省略する。図２７に示す依頼済み管理テーブル２２００では、依頼受付センサーノードＩＤが２について、処理可能ステップ数のフィールドに１０が登録済みである。そして、経由センサーノードリスト９００には、２があらたに登録済みである。センサーノード１０１−２は、全処理の４５ステップのうちの５ステップが実行を担当するセンサーノード１０１が決定していないため、完了可能でないと判断する。
【００８０】
図２８は、実施例２における依頼先の選定例４を示す説明図である。図２９は、実施例２における依頼受付例３を示す説明図である。図２５、および図２６で示した例と同様に、完了可能でないと判断された場合、センサーノード１０１−２は、記憶装置５００に記憶されたランク情報に基づいて依頼先のセンサーノード１０１を選択する。ここでは、センサーノード１０１−３が選択され、センサーノード１０１−３は、依頼を受け付けることとする。図２９の例では、判断部５０４−３は、５ステップを処理可能と判断したため、依頼されたすべてのデータ処理を完了可能であると判断する。経由センサーノードリスト９００には、３が登録される。
【００８１】
図３０は、実施例２における確保完了後の処理例を示す説明図である。実行部５１０−３は、判断部５０４−３によって完了可能であると判断された場合、（１）担当のステップ数分のデータ処理を開始する。実行部５１０−３によって担当のステップ数分の実行が完了すると、送信部５０８−３は、実行部５１０−３による実行結果と、確保完了通知と、を関連付けて、経由センサーノードリスト９００に基づき依頼元のセンサーノード１０１−２へ送信する。
【００８２】
第２受信部５０９−２は、確保完了通知と、実行部５１０−３による実行結果と、を受信する。実行部５１０−２は、実行部５１０−３による実行結果に基づいて、未処理のデータ処理のうちの担当のステップ数分のデータ処理を実行する。実行部５１０−２による実行が終了すると、送信部５０８−２は、（２）実行部５１０−３による実行結果と、実行部５１０−２による実行結果と、確保完了通知と、を関連付けて、経由センサーノードリスト９００に基づき依頼元のセンサーノード１０１−１へ送信する。センサーノード１０１−１は、センサーノード１０１−２と同様に担当のデータ処理を実行して依頼元のセンサーノード１０１−０へ転送する。センサーノード１０１−０は、依頼したデータ処理の実行結果と、確保完了通知と、を受信すると、残りのデータ処理を実行する。
【００８３】
図３１は、実施例２におけるデータ処理の完了例を示す説明図である。送信部５０８−０は、実行部５１０−０による実行が完了すると、実行結果をマルチホップ通信により受信機１０２へ転送する。
【００８４】
（センサーノード１０１が行う処理手順例）
図３２〜図３７は、センサーノードが行う処理手順例を示すフロチャートである。まず、センサーノード１０１は、イベントの発生を検出したかを判断する（ステップＳ３２０１）。図示していないが、イベントが発生していない場合、センサーノード１０１は、スリープ状態で待機する。
【００８５】
センサーノード１０１は、キャリブレーション信号を受信した場合（ステップＳ３２０１：キャリブレーション信号）、同一のキャリブレーション信号を受信済みであるか否かを判断する（ステップＳ３２０２）。たとえば、キャリブレーション信号には、受信機１０２の識別情報が付されていて、受信機１０２ごとに異なることとする。センサーノード１０１は、同一のキャリブレーション信号を受信済みである場合（ステップＳ３２０２：Ｙｅｓ）、記録済みのホップ数より少ないホップ数でキャリブレーション信号が自ノードまで到達したか否かを判断する（ステップＳ３２０３）。
【００８６】
記録済みのホップ数より少ないホップ数で到達していないと判断された場合（ステップＳ３２０３：Ｎｏ）、ステップＳ３２０１へ戻る。記録済みのホップ数より少ないホップ数で到達したと判断された場合（ステップＳ３２０３：Ｙｅｓ）、センサーノード１０１は、ステップＳ３２０４へ移行する。同一のキャリブレーション信号を受信していない場合（ステップＳ３２０２：Ｎｏ）、センサーノード１０１は、ホップ数をキャリブレーション信号の送信元である受信機１０２の識別情報と関連付けて記録する（ステップＳ３２０４）。センサーノード１０１は、キャリブレーション信号のホップ数をカウントアップし（ステップＳ３２０５）、キャリブレーション信号を周辺のセンサーノード１０１へ送信する（ステップＳ３２０６）。
【００８７】
センサーノード１０１は、すべてのキャリブレーション信号を受信済みであるか否かを判断する（ステップＳ３２０７）。受信済みである場合（ステップＳ３２０７：Ｙｅｓ）、センサーノード１０１は、自ノードのランク情報を生成し（ステップＳ３２０８）、ステップＳ３２０１へ戻る。具体的には、センサーノード１０１は、受信機１０２ごとのホップ数の標準偏差や分散を算出することにより、ランク情報を生成する。一方、受信済みでない場合（ステップＳ３２０７：Ｎｏ）、ステップＳ３２０１へ戻る。
【００８８】
また、ステップＳ３２０１において、センサーノード１０１は、ランク情報の交換信号を受信した場合（ステップＳ３２０１：ランク情報交換信号）、直接通信可能なセンサーノード１０１とセンサーノード１０１ＩＤおよびランク情報を交換する（ステップＳ３２０９）。センサーノード１０１は、交換したセンサーノード１０１ＩＤおよびランク情報を記憶装置５００に記録し（ステップＳ３２１０）、ステップＳ３２０１へ戻る。
【００８９】
センシングイベントに応じたデータ処理が発生した場合（ステップＳ３２０１：データ処理）、センサーノード１０１は、蓄電された電力量を取得する（ステップＳ３３０１）。センサーノード１０１は、データ処理に要する電力量を算出し（ステップＳ３３０２）、蓄電された電力量がデータ処理に十分か否かを判断する（ステップＳ３３０３）。十分であると判断された場合（ステップＳ３３０３：Ｙｅｓ）、センサーノード１０１は、データ処理を実行し（ステップＳ３３０４）、ステップＳ３２０１へ戻る。
【００９０】
十分でないと判断された場合（ステップＳ３３０３：Ｎｏ）、センサーノード１０１は、並列処理可能か否かを判断する（ステップＳ３３０５）。並列処理可能でない場合（ステップＳ３３０５：Ｎｏ）、センサーノード１０１は、自ノードで実行可能なデータ処理量を登録した依頼済み管理テーブル２２００を作成し（ステップＳ３３０６）、ステップＳ３３０９へ移行する。並列処理可能である場合（ステップＳ３３０５：Ｙｅｓ）、センサーノード１０１は、データ処理を処理ブロックに分割し（ステップＳ３３０７）、処理ブロック管理テーブル１０００を作成し（ステップＳ３３０８）、ステップＳ３３０９へ移行する。
【００９１】
ステップＳ３３０６、またはステップＳ３３０８のつぎに、センサーノード１０１は、直接通信可能なセンサーノード１０１の中で依頼元と選択済み以外のセンサーノード１０１から、ランク情報が最小なセンサーノード１０１を選択する（ステップＳ３３０９）。センサーノード１０１は、選択したセンサーノード１０１へ依頼通知を送信し（ステップＳ３３１０）、受付可能通知を受信したか否かを判断する（ステップＳ３３１１）。依頼通知には、依頼済み管理テーブル２２００または処理ブロック管理テーブル１０００と、協調処理ＩＤと、協調処理種別と、を含む。依頼済み管理テーブル２２００の場合、依頼通知には、全データ処理量も含まれる。
【００９２】
センサーノード１０１は、受付可能通知を受信していない場合（ステップＳ３３１１：Ｎｏ）、ステップＳ３３０９へ戻る。受付可能通知を受信していない場合とは、依頼通知を送信してから所定時間経過しても受付可能通知を受信しない場合や選択されたセンサーノード１０１から実行不可通知を受信した場合である。
【００９３】
センサーノード１０１は、受付可能通知を受信した場合（ステップＳ３３１１：Ｙｅｓ）、協調処理に関する情報を選択したセンサーノード１０１へ送信し（ステップＳ３３１２）、ステップＳ３２０１へ戻る。ステップＳ３３１２において送信される協調処理に関する情報は、協調処理ＩＤと、処理種別フラグと、データ処理プログラムと、経由センサーノードリスト９００と、を含む。
【００９４】
また、ステップＳ３２０１において、依頼通知が受信された場合（ステップＳ３２０１：依頼通知）、センサーノード１０１は、他の依頼を受け付けているか否かを判断する（ステップＳ３４０１）。他の依頼を受け付けている場合（ステップＳ３４０１：Ｙｅｓ）、センサーノード１０１は、実行不可通知を依頼通知の送信元へ送信し（ステップＳ３４０２）、ステップＳ３２０１へ戻る。
【００９５】
他の依頼を受け付けていない場合（ステップＳ３４０１：Ｎｏ）、センサーノード１０１は、蓄電された電力量を取得し（ステップＳ３４０３）、依頼されたデータ処理に要する電力量を算出する（ステップＳ３４０４）。センサーノード１０１は、蓄電された電力量が依頼されたデータ処理の一部の実行に十分か否かを判断する（ステップＳ３４０５）。ステップＳ３４０５については、上述したように式（１）を判断してもよい。
【００９６】
依頼されたデータ処理の一部であっても実行できるほど電力量がない場合（ステップＳ３４０５：Ｎｏ）、ステップＳ３４０２へ移行する。依頼されたデータ処理の一部の実行に十分な電力量がある場合（ステップＳ３４０５：Ｙｅｓ）、センサーノード１０１は、受付可能通知を依頼元へ送信し（ステップＳ３４０６）、協調処理に関する情報を受信する（ステップＳ３４０７）。ステップＳ３４０７において受信する協調処理に関する情報は、たとえば、協調処理ＩＤと、処理種別フラグと、データ処理プログラムと、経由センサーノードリスト９００と、を含む。
【００９７】
センサーノード１０１は、受信した依頼通知に含まれるテーブルを更新し（ステップＳ３４０８）、経由センサーノードリスト９００に自ノードの識別情報を登録する（ステップＳ３４０９）。ステップＳ３４０８で更新されるテーブルは、処理ブロック管理テーブル１０００、または依頼済み管理テーブル２２００のいずれかである。
【００９８】
ステップＳ３４０９のつぎに、センサーノード１０１は、確保完了条件を満たしたか否かを判断する（ステップＳ３５０１）。確保完了条件は、たとえば、処理ブロック管理テーブル１０００内のすべての処理ブロックの実行担当が決定した場合や、依頼済み管理テーブル２２００内のステップ数の合計が全処理ステップ数となる場合である。確保完了条件が満たされていない場合（ステップＳ３５０１：Ｎｏ）、センサーノード１０１は、直接通信可能なセンサーノード１０１の中で依頼通知の送信元と選択済み以外のセンサーノード１０１から、ランク情報が最小なセンサーノード１０１を選択する（ステップＳ３５０２）。
【００９９】
そして、センサーノード１０１は、選択したセンサーノード１０１へ依頼通知を送信する（ステップＳ３５０３）。依頼通知には、依頼済み管理テーブル２２００または処理ブロック管理テーブル１０００と、協調処理ＩＤと、協調処理種別と、を含む。依頼済み管理テーブル２２００の場合、依頼通知には、全データ処理量も含まれる。つぎに、センサーノード１０１は、受付可能通知を受信したか否かを判断する（ステップＳ３５０４）。センサーノード１０１は、受付可能通知を受信していない場合（ステップＳ３５０４：Ｎｏ）、ステップＳ３５０２へ戻る。受付可能通知を受信していない場合とは、依頼通知を送信してから所定時間経過しても受付可能通知を受信しない場合や選択されたセンサーノード１０１から実行不可通知を受信した場合である。
【０１００】
一方、センサーノード１０１は、受付可能通知を受信した場合（ステップＳ３５０４：Ｙｅｓ）、協調処理に関する情報を選択したセンサーノード１０１へ送信し（ステップＳ３５０５）、ステップＳ３２０１へ戻る。ステップＳ３５０５における協調処理に関する情報は、たとえば、協調処理ＩＤと、処理種別フラグと、データ処理プログラムと、経由センサーノードリスト９００と、を含む。
【０１０１】
ステップＳ３５０１において、確保完了条件が満たされた場合（ステップＳ３５０１：Ｙｅｓ）、センサーノード１０１は、依頼されたデータ処理が並列処理か否かを判断する（ステップＳ３５０６）。依頼されたデータ処理が並列処理である場合（ステップＳ３５０６：並列）、センサーノード１０１は、確保完了通知を依頼通知の送信元へ送信し（ステップＳ３５０７）、担当処理ブロックを実行する（ステップＳ３５０８）。センサーノード１０１は、担当処理ブロックの実行が終了すると、経由センサーノードリスト９００に基づいて、依頼通知の送信元へ協調処理に関する情報を送信し（ステップＳ３５０９）、ステップＳ３２０１へ戻る。ステップＳ３５０９における協調処理に関する情報は、協調処理ＩＤと、処理種別フラグと、実行結果と、を含む。
【０１０２】
依頼されたデータ処理が逐次処理である場合（ステップＳ３５０６：逐次）、センサーノード１０１は、処理可能ステップ数分のステップを実行する（ステップＳ３５１０）。センサーノード１０１は、経由センサーノードリスト９００に基づいて、依頼通知の送信元へ協調処理に関する情報を送信し（ステップＳ３５１１）、ステップＳ３２０１へ戻る。ステップＳ３５１１における協調処理に関する情報は、協調処理ＩＤと、処理種別フラグと、確保完了通知と、実行結果と、を含む。
【０１０３】
また、ステップＳ３２０１において、センサーノード１０１は、確保完了通知または実行結果を受信した場合（ステップＳ３２０１：確保完了通知または実行結果）、自ノードが依頼した協調処理に関する情報であるか否かを判断する（ステップＳ３６０１）。ここでは、センサーノード１０１は、実行結果を協調処理に関する情報として受信する。
【０１０４】
自ノードが依頼した協調処理に関する情報でない場合（ステップＳ３６０１：Ｎｏ）、ステップＳ３２０１へ戻る。自ノードが依頼した協調処理に関する情報である場合（ステップＳ３６０１：Ｙｅｓ）、センサーノード１０１は、受信した信号が並列処理に関する確保完了通知であるか否かを判断する（ステップＳ３６０２）。並列処理に関する確保完了通知である場合（ステップＳ３６０２：Ｙｅｓ）、センサーノード１０１は、担当処理ブロックを実行し（ステップＳ３６０３）、ステップＳ３２０１へ戻る。
【０１０５】
並列処理に関する確保完了通知でない場合（ステップＳ３６０２：Ｎｏ）、センサーノード１０１は、並列処理結果の受信であるか逐次処理結果の受信であるかを判断する（ステップＳ３７０１）。並列処理結果の受信である場合（ステップＳ３７０１：並列）、センサーノード１０１は、自ノードで発生したデータ処理についての依頼であるか否かを判断する（ステップＳ３７０２）。自ノードで発生したデータ処理についての依頼でない場合（ステップＳ３７０２：Ｎｏ）、センサーノード１０１は、自ノードによる実行結果と、受信した実行結果と、を併せて経由センサーノードリスト９００に基づいて転送し（ステップＳ３７０３）、ステップＳ３２０１へ戻る。
【０１０６】
自ノードで発生したデータ処理についての依頼である場合（ステップＳ３７０２：Ｙｅｓ）、センサーノード１０１は、全処理ブロックの実行結果を受信したか否かを判断する（ステップＳ３７０４）。センサーノード１０１は、全処理ブロックの実行結果を受信した場合（ステップＳ３７０４：Ｙｅｓ）、受信結果を集約して受信機１０２へ転送し（ステップＳ３７０５）、ステップＳ３２０１へ戻る。センサーノード１０１は、全処理ブロックの実行結果を受信していない場合（ステップＳ３７０４：Ｎｏ）、受信結果を保存し（ステップＳ３７０６）、ステップＳ３２０１へ戻る。
【０１０７】
ステップＳ３７０１において、逐次処理結果の受信である場合（ステップＳ３７０１：逐次）、センサーノード１０１は、未完了なデータ処理のうち、実行可能なステップ数分実行する（ステップＳ３７０７）。そして、センサーノード１０１は、自ノードで発生したデータ処理についての依頼であるか否かを判断する（ステップＳ３７０８）。
【０１０８】
自ノードで発生したデータ処理についての依頼でない場合（ステップＳ３７０８：Ｎｏ）、センサーノード１０１は、協調処理に関する情報を経由センサーノードリスト９００に基づいて依頼通知の送信元のセンサーノード１０１へ送信し（ステップＳ３７０９）、ステップＳ３２０１へ戻る。ステップＳ３７０９における協調処理に関する情報は、協調処理ＩＤと、処理種別フラグと、確保完了通知と、実行結果と、を含む。自ノードで発生したデータ処理についての依頼である場合（ステップＳ３７０８：Ｙｅｓ）、センサーノード１０１は、受信結果を集約して受信機１０２へ転送し（ステップＳ３７１０）、ステップＳ３２０１へ戻る。
【０１０９】
以上説明したように、センサーノードは、受信機とセンサーノードとのホップ数に基づき受信機から遠いセンサーノードにデータ処理を依頼することにより、依頼先でのつぎの依頼先が不足することを防ぐことができる。したがって、受信機へデータ処理の実行結果が到達する確度を向上させることができる。さらに、データ処理を完了可能な数のセンサーノードが確保された後に、各センサーノードが担当データ処理を開始することにより、消費電力を抑止することができる。確保が完了した後に各センサーノードが担当データ処理を実行する場合、確保が完了する前に各センサーノードが担当データ処理を実行する場合よりも、実行結果を保持する期間が短いため、消費電力が少なくなる。
【０１１０】
また、センサーノードは、確保完了通知を依頼先のセンサーノードから受信したら、依頼された依頼通知の送信元へ確保完了通知を転送する。経由センサーノードへ確保完了通知が到達する確度が向上する。また、経由センサーノード以外のセンサーノードに対する負荷を低減させることができる。
【０１１１】
また、センサーノードは、依頼先のセンサーノードから、送信した依頼通知が示すデータ処理を一部であっても実行できないことを示す実行不可通知を受信したら、つぎに受信機から遠いセンサーノードに依頼通知を送信する。
【０１１２】
また、センサーノードは、受信した依頼通知が示すデータ処理を完了可能であると判断した場合、依頼通知の送信元へ確保完了通知を送信する。これにより、各センサーノードは、データ処理が完了可能な数のセンサーノードの確保が完了したことを確認できる。
【０１１３】
また、受信機が複数であって、センサーノードは、各受信機とセンサーノードとのホップ数に基づく情報によって依頼先のセンサーノードを選択することにより、複数の受信機の各々から離れたセンサーノードを依頼先にすることができる。
【０１１４】
また、センサーノードが配置される所定領域を囲うように複数の受信機が配置され、ホップ数に基づく情報が、ホップ数の標準偏差である。これにより、所定領域内の端に位置する可能性が高いか、所定領域の中央に位置する可能性が高いかを区別させることができる。たとえば、複数の受信機のすべてから同程度に離れているセンサーノードは、標準偏差が小さく、中央に位置する可能性が高い。一方、たとえば、複数の受信機のいずれかにだけ近く、他の受信機から遠いセンサーノードは、端に位置する可能性がある。
【０１１５】
また、センサーノードが配置される所定領域を囲うように複数の受信機が等間隔に配置されることにより、各センサーノードが、算出されるホップ数の標準偏差による所定領域内の端に位置するか、中央に位置するかを判定する確度を向上させることができる。
【０１１６】
また、センサーノードは、標準偏差が小さいセンサーノードを依頼先として選択することにより、中央に位置する可能性が高いセンサーノードが依頼先となる。中央に位置するセンサーノードは、あらたな依頼先がなくなる可能性が低いため、依頼先が不足することを防止することができる。
【０１１７】
また、センサーノードは、バッテリに蓄電された電力量と、データ処理に要する電力量と、の比較により、データ処理を完了可能か否か判断する。これにより、バッテリ切れによってデータ処理が破棄されるのを防ぐことができる。
【０１１８】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１９】
（付記１）複数の通信装置のうち直接通信可能な第１通信装置の各々と、前記複数の通信装置のいずれかのデータ処理の実行結果に応じた処理を実行する第２通信装置と、の通信に要するホップ数に基づく情報を記憶する記憶装置と、
前記第１通信装置のうちのいずれかの第１通信装置から、データ処理の実行依頼内容を示す第１依頼情報を受信する第１受信部と、
前記第１受信部が受信した前記第１依頼情報の示すデータ処理が、完了可能か否かを判断する判断部と、
前記判断部が完了可能でないと判断した場合、前記第１通信装置のうちの前記いずれかの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じていずれかの第１通信装置を選択する選択部と、
前記第１依頼情報が示すデータ処理のうち実行可能な一部のデータ処理以外のデータ処理の実行依頼内容を示す第２依頼情報を、前記選択部が選択した第１通信装置へ送信する送信部と、
前記第２依頼情報が示すデータ処理を前記複数の第１通信装置のうちの少なくともいずれかによって完了可能であることを示す確保完了通知を受信する第２受信部と、
前記第２受信部が前記確保完了通知を受信した場合に、前記一部のデータ処理の実行を開始する実行部と、
を有することを特徴とする通信装置。
【０１２０】
（付記２）前記第２受信部は、
前記選択された第１通信装置から前記確保完了通知を受信し、
前記送信部は、
前記第２受信部が受信した前記確保完了通知を、前記第１依頼情報の送信元である前記いずれかの第１通信装置に送信することを特徴とする付記１に記載の通信装置。
【０１２１】
（付記３）前記第２受信部は、
前記選択された第１通信装置から、前記第２依頼情報が示すデータ処理を一部であっても実行できないことを示す実行不可通知を受信し、
前記選択部は、
前記第１通信装置のうちの前記いずれかの第１通信装置および前記選択部がすでに選択済みの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じてあらたに第１通信装置を選択し、
前記送信部は、
前記選択部があらたに選択した第１通信装置へ前記第２依頼情報を送信することを特徴とする付記１または２に記載の通信装置。
【０１２２】
（付記４）前記送信部は、
前記判断部が完了可能であると判断した場合、前記第１依頼情報が示すデータ処理を完了可能な確保完了通知を前記いずれかの第１通信装置へ送信することを特徴とする付記１に記載の通信装置。
【０１２３】
（付記５）前記第２通信装置が複数であって、
前記記憶装置は、
前記第１通信装置の各々と前記複数の第２通信装置の各々との通信に要するホップ数に基づく情報を記憶し、
前記選択部は、
前記判断部が完了可能でないと判断した場合、前記第１通信装置のうちの前記いずれかの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じていずれかの第１通信装置を選択することを特徴とする付記１〜４のいずれか一つに記載の通信装置。
【０１２４】
（付記６）前記複数の通信装置の各々は、所定領域内に位置し、
前記複数の第２通信装置は、前記所定領域を囲うように配置され、
前記ホップ数に基づく情報は、前記第１通信装置の各々と前記複数の第２通信装置の各々との通信に要するホップ数の標準偏差であることを特徴とする付記５に記載の通信装置。
【０１２５】
（付記７）前記選択部は、
前記判断部が完了可能でないと判断した場合、前記第１通信装置のうちの前記いずれかの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく標準偏差が最も小さい第１通信装置を選択することを特徴とする付記６に記載の通信装置。
【０１２６】
（付記８）前記複数の第２通信装置の各々は等間隔で配置されることを特徴とする付記６または７に記載の通信装置。
【０１２７】
（付記９）自発電した電力を蓄電する蓄電部を有し、
前記判断部は、
前記蓄電部に蓄電された電力量と、前記第１依頼情報が示すデータ処理に要する電力量と、の比較に基づいて、前記第１依頼情報が示すデータ処理を自通信装置によって完了可能か否かを判断することを特徴とする付記１〜８のいずれか一つに記載の通信装置。
【０１２８】
（付記１０）複数の通信装置のうちの自通信装置と直接通信可能な第１通信装置の各々について、前記複数の通信装置のいずれかのデータ処理の実行結果に応じた処理を実行する第２通信装置との通信に要するホップ数に基づく情報を記憶する記憶装置と、
自通信装置で発生したイベントに応じたデータ処理を自通信装置によって完了可能か否かを判断する判断部と、
前記判断部が完了可能でないと判断した場合、前記第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じていずれかの第１通信装置を選択する選択部と、
前記データ処理の実行依頼内容を示す依頼情報を、前記選択部が選択した第１通信装置へ送信する送信部と、
を有することを特徴とする通信装置。
【０１２９】
（付記１１）前記依頼情報は、前記データ処理のうち自通信装置によって実行可能な一部のデータ処理以外のデータ処理の実行を依頼する情報であって、
前記依頼情報が示すデータ処理を前記複数の第１通信装置のうちの少なくともいずれかの通信装置によって完了可能であることを示す確保完了通知を受信する受信部と、
前記受信部が前記確保完了通知を受信すると、前記データ処理のうち自通信装置によって実行可能な一部のデータ処理以外の実行を開始する実行部と、
を有することを特徴とする付記１０に記載の通信装置。
【０１３０】
（付記１２）前記判断部が完了可能でないと判断した場合、前記データ処理を並列処理可能な複数のブロックに分割する分割部を有し、
前記送信部は、
前記分割部が分割した複数のブロックのうち、自通信装置によって実行可能な一部のブロック以外のブロックの実行依頼内容を示す依頼情報を、前記選択部が選択した第１通信装置へ送信することを特徴とする付記１１に記載の通信装置。
【０１３１】
（付記１３）複数の第１通信装置と、
前記複数の第１通信装置のいずれかのデータ処理の実行結果に応じた処理を実行する複数の第２通信装置と、
を有し、
前記複数の第１通信装置の各々は、
前記複数の第１通信装置のうちの自通信装置と直接通信可能な第１通信装置の各々について、前記複数の第１通信装置のいずれかのデータ処理の実行結果に応じた処理を実行する第２通信装置との通信に要するホップ数に基づく情報を記憶する記憶装置を有し、
前記複数の第１通信装置のうちのいずれかの第１通信装置が、
前記直接通信可能な第１通信装置のうちのいずれかの第１通信装置から、データ処理の実行依頼内容を示す第１依頼情報を受信し、
受信した前記第１依頼情報が示すデータ処理の実行を自通信装置によって完了可能か否かを判断し、
完了可能でないと判断された場合、前記直接通信可能な第１通信装置のうちの前記いずれかの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じていずれかの第１通信装置を選択し、
前記第１依頼情報が示すデータ処理のうち自通信装置によって実行可能な一部のデータ処理以外のデータ処理の実行依頼内容を示す第２依頼情報を、選択した第１通信装置へ送信し、
前記第２依頼情報が示すデータ処理を前記複数の第１通信装置のうちの少なくともいずれかの通信装置によって完了可能であることを示す確保完了通知を受信し、
前記確保完了通知を受信すると、前記一部のデータ処理の実行を開始する、
処理を実行することを特徴とするシステム。
【０１３２】
（付記１４）通信装置が、
複数の通信装置のうちの自通信装置と直接通信可能な第１通信装置の各々と、前記複数の第１通信装置のいずれかのデータ処理の実行結果に応じた処理を実行する第２通信装置と、の通信に要するホップ数に基づく情報を記憶する記憶装置を有し、
前記直接通信可能な第１通信装置のうちのいずれかの第１通信装置から、データ処理の実行依頼内容を示す第１依頼情報を受信し、
受信した前記第１依頼情報が示すデータ処理の実行を自通信装置によって完了可能か否かを判断し、
完了可能でないと判断した場合、前記直接通信可能な第１通信装置のうちの前記いずれかの第１通信装置以外の第１通信装置から、前記記憶装置に記憶された前記ホップ数に基づく情報に応じていずれかの第１通信装置を選択し、
前記第１依頼情報が示すデータ処理のうち自通信装置によって実行可能な一部のデータ処理以外のデータ処理の実行依頼内容を示す第２依頼情報を、選択した第１通信装置へ送信し、
前記第２依頼情報が示すデータ処理を前記複数の第１通信装置のうちの少なくともいずれかの通信装置によって完了可能であることを示す確保完了通知を受信し、
前記確保完了通知を受信すると、前記一部のデータ処理の実行を開始する、
処理を実行することを特徴とする通信方法。
【符号の説明】
【０１３３】
１００  システム
１０１  センサーノード
１０２  受信機
３０１  ＭＣＵ
３０３  無線通信回路
３０４  ＲＡＭ
３０６  不揮発メモリ
３０７  アンテナ
３０９  バッテリ
５０１  第１受信部
５０３  蓄電部
５０４  判断部
５０５  選択部
５０６  分割部
５０７  登録部
５０８  送信部
５０９  第２受信部
５１０  実行部
９００  経由センサーノードリスト
１０００  処理ブロック管理テーブル
２２００  依頼済み管理テーブル
Ａ  所定領域
【図１】
0006004005.tif 000002
【図２】
0006004005.tif 000003
【図３】
0006004005.tif 000004
【図４】
0006004005.tif 000005
【図５】
0006004005.tif 000006
【図６】
0006004005.tif 000007
【図７】
0006004005.tif 000008
【図８】
0006004005.tif 000009
【図９】
0006004005.tif 000010
【図１０】
0006004005.tif 000011
【図１１】
0006004005.tif 000012
【図１２】
0006004005.tif 000013
【図１３】
0006004005.tif 000014
【図１４】
0006004005.tif 000015
【図１５】
0006004005.tif 000016
【図１６】
0006004005.tif 000017
【図１７】
0006004005.tif 000018
【図１８】
0006004005.tif 000019
【図１９】
0006004005.tif 000020
【図２０】
0006004005.tif 000021
【図２１】
0006004005.tif 000022
【図２２】
0006004005.tif 000023
【図２３】
0006004005.tif 000024
【図２４】
0006004005.tif 000025
【図２５】
0006004005.tif 000026
【図２６】
0006004005.tif 000027
【図２７】
0006004005.tif 000028
【図２８】
0006004005.tif 000029
【図２９】
0006004005.tif 000030
【図３０】
0006004005.tif 000031
【図３１】
0006004005.tif 000032
【図３２】
0006004005.tif 000033
【図３３】
0006004005.tif 000034
【図３４】
0006004005.tif 000035
【図３５】
0006004005.tif 000036
【図３６】
0006004005.tif 000037
【図３７】
0006004005.tif 000038