(57)【要約】  通信ノード（１０１−１）は、複数の通信ノード（１０１）のうちの応答可能な第１通信ノード（１０１）からの、送信された確認信号に対する応答信号を受信する。通信ノード（１０１−１）は、受信した応答信号の受信強度に基づいて、自通信ノード（１０１）からデータ処理の実行を依頼する第２通信ノード（１０１）を第１通信ノード（１０１）から選択する。通信ノード（１０１−１）は、選択した第２通信ノード（１０１）からの応答信号の受信強度に基づいて、第２通信ノード（１０１）と自通信ノード（１０１）との間で通信可能な送信強度を算出する。通信ノード（１０１−１）は、データ処理の実行を依頼する依頼信号を算出した送信強度によって第２通信ノード（１０１）へ送信する。
2014188550.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信ノードへ、応答可能か否かの確認信号を送信する第１送信部と、
前記複数の通信ノードのうちの応答可能な第１通信ノードからの、前記第１送信部が送信した前記確認信号に対する応答信号を受信する受信部と、
前記受信部が受信した前記応答信号の受信強度に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択する選択部と、
前記選択部が選択した前記第２通信ノードからの前記応答信号の受信強度に基づいて、前記第２通信ノードへの送信強度を算出する強度算出部と、
前記データ処理の実行を依頼する依頼信号を前記強度算出部が算出した前記送信強度に基づいて前記第２通信ノードへ送信する第２送信部と、
を有することを特徴とする通信ノード。
【請求項２】
前記第１通信ノードの各々について、前記受信部によって受信された前記応答信号の受信強度に基づいて、前記第１通信ノードと自通信ノードとの距離を算出する距離算出部を有し、
前記選択部は、前記距離算出部が算出した距離に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択し、
前記強度算出部は、前記第２通信ノードについて前記距離算出部が算出した距離に基づいて、前記第２通信ノードへの送信強度を算出することを特徴とする請求項１に記載の通信ノード。
【請求項３】
前記強度算出部は、前記第２通信ノードと自通信ノードとの間で直接通信可能な送信強度の中で、最小の送信強度を算出することを特徴とする請求項１または２に記載の通信ノード。
【請求項４】
前記データ処理は、自通信ノードのイベントに応じたデータ処理であって、所定数の部分処理に分割して並列処理可能なデータ処理であり、
前記選択部は、前記受信部が受信した前記応答信号の受信強度に基づいて、前記第１通信ノードから前記所定数以下の第２通信ノードを選択し、
前記第２送信部は、前記選択部が選択した前記第２通信ノードの各々に前記所定数の部分処理のうちの異なる部分処理を依頼する依頼信号を送信することを特徴とする請求項１〜３のいずれか一つに記載の通信ノード。
【請求項５】
前記選択部は、前記第２通信ノードを選択する際に、前記第１通信ノードの数が前記所定数より多い場合、前記受信部によって受信された前記応答信号の受信強度に基づいて、前記所定数の第１通信ノードを選択し、前記第１通信ノードの数が前記所定数以下の場合、前記第１通信ノードのすべてを選択することを特徴とする請求項４に記載の通信ノード。
【請求項６】
前記受信部が受信した前記応答信号の受信強度と、前記所定数の部分処理の各々の処理量に応じた情報と、に基づいて、前記選択部が選択した前記第２通信ノードの各々に前記所定数のデータ処理のいずれを依頼するかを決定する決定部を有し、
前記第２送信部は、前記第２通信ノードの各々へ、前記第２通信ノードについて前記決定部が決定したデータ処理を依頼する依頼信号を送信することを特徴とする請求項４または５に記載の通信ノード。
【請求項７】
前記決定部は、前記応答信号の受信強度が大きい順に前記所定数の部分処理のうちの依頼される部分処理の前記処理量が最も多くなるように、前記第２通信ノードの各々に前記所定数のデータ処理のいずれを依頼するかを決定することを特徴とする請求項６に記載の通信ノード。
【請求項８】
データ処理の実行を依頼する依頼信号を前記複数の通信ノードのうちの第３通信ノードから受信する第２受信部と、
前記第２受信部が受信した前記依頼信号によって依頼されたデータ処理を実行する実行部と、
を有し、
前記第２送信部は、前記実行部が実行した前記データ処理の処理結果を集約する通信装置への前記処理結果の転送を依頼する依頼信号を前記選択部が選択した前記第２通信ノードへ送信することを特徴とする請求項１〜３のいずれか一つに記載の通信ノード。
【請求項９】
データ処理の実行を依頼する依頼信号を前記複数の通信ノードのうちの第３通信ノードから受信する第２受信部と、
前記依頼信号によって依頼されたデータ処理うちの一部の処理を実行する実行部と、
を有し、
前記第２送信部は、前記データ処理の処理結果を集約する通信装置への前記実行部が実行した前記一部の処理の処理結果の転送と、前記データ処理のうちの前記一部の処理以外の処理の実行と、を依頼する依頼信号を、前記選択部が選択した前記第２通信ノードへ送信することを特徴とする請求項１〜３のいずれか一つに記載の通信ノード。
【請求項１０】
自発電した電力を蓄電する蓄電部と、
前記複数の通信ノードのうちの第３通信ノードから、自通信ノードが応答可能か否かの第２確認信号を受信する第２受信部と、
前記第２受信部が前記第２確認信号を受信すると、前記蓄電部に蓄電された電力量が閾値以上か否かを判断する判断部と、
を有し、
前記第２送信部は、前記電力量が前記閾値以上であると前記判断部が判断した場合、前記第２確認信号に対する応答信号を前記第３通信ノードへ送信し、前記電力量が前記閾値未満であると前記判断部が判断した場合、前記第２確認信号に対する応答信号を前記第３通信ノードへ送信しないことを特徴とする請求項１〜３のいずれか一つに記載の通信ノード。
【請求項１１】
前記強度算出部は、
前記選択部が選択した前記第２通信ノードからの前記応答信号の受信強度を、前記応答信号の受信強度を与えると自通信ノードから前記第２通信ノードへ前記依頼信号が到達可能な送信強度が得られる関数に与えることにより、前記第２通信ノードへの送信強度を算出することを特徴とする請求項１〜１０のいずれか一つに記載の通信ノード。
【請求項１２】
複数の通信ノードと、
前記複数の通信ノードからデータ処理の処理結果を集約する通信装置と、
を有するシステムであって、
前記複数の通信ノードのうちの第１通信ノードが、
複数の第２通信ノードへ、応答可能か否かの確認信号を送信し、
前記複数の第２通信ノードのうちの応答可能な第３通信ノードからの、送信した前記確認信号に対する応答信号を受信し、
受信した前記応答信号の受信強度に基づいて、前記第１通信ノードからデータ処理の実行を依頼する第４通信ノードを前記第３通信ノードから選択し、
選択した前記第４通信ノードからの前記応答信号の受信強度に基づいて、前記第４通信ノードへの送信強度を算出し、
前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第４通信ノードへ送信することを特徴とするシステム。
【請求項１３】
通信ノードが、
複数の通信ノードへ、応答可能か否かの確認信号を送信し、
前記複数の通信ノードのうちの応答可能な第１通信ノードからの、送信した前記確認信号に対する応答信号を受信し、
受信した前記応答信号の受信強度に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択し、
選択した前記第２通信ノードからの前記応答信号の受信強度に基づいて、前記第２通信ノードへの送信強度を算出し、
前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第２通信ノードへ送信する、
処理を実行することを特徴とする通信方法。
【請求項１４】
通信ノードは、
複数の通信ノードへ、応答可能か否かの確認信号を送信し、
前記複数の通信ノードのうちの応答可能な第１通信ノードからの、送信した前記確認信号に対する応答信号を受信し、
受信した前記応答信号の受信強度に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択し、
選択した前記第２通信ノードからの前記応答信号の受信強度に基づいて、前記第２通信ノードへの送信強度を算出し、
前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第２通信ノードへ送信する、
処理を実行させることを特徴とする通信プログラム。
【請求項１５】
応答可能か否かを示す確認信号を送信する第１送信部と、
前記確認信号を受信した複数の通信ノードから、応答可能であることを示す応答信号を受信する受信部と、
前記受信部が受信した前記応答信号の受信強度に基づき前記複数の通信ノードから選択した、データ処理を依頼する依頼先通信ノードへの送信強度を設定する制御部と、
設定した前記送信強度に基づき、前記依頼先通信ノードへデータ処理を依頼する依頼信号を送信する第２送信部と、
を有することを特徴とする通信ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ノード、システム、通信方法、および通信プログラムに関する。
【背景技術】
【０００２】
従来、無線通信手段を用いてワイヤレス通信によって接続された複数の通信ノードによって無線ネットワークが形成される技術がある（たとえば、下記特許文献１参照。）。また、無線ネットワークにおいて、離れた２つの通信ノード間で通信を行うために、他の通信ノードを中継するマルチホップ通信がある（たとえば、下記特許文献２参照。）。このような無線ネットワークでは、無線による通信ノード間の接続関係が頻繁に変化する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２８８２７６号公報
【特許文献２】特開２００８−１９３４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、通信ノードが他の通信ノードへデータ処理を依頼する依頼信号を無線送信する際、依頼信号のデータ量が大きいと、無線送信に要する消費電力量が大きくなるという問題点がある。【０００５】
１つの側面では、本発明は、適切な通信相手にデータ処理を実行させることができる通信ノード、システム、通信方法、および通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一の側面によれば、複数の通信ノードへ、応答可能か否かの確認信号を送信し、前記複数の通信ノードのうちの応答可能な第１通信ノードからの、送信した前記確認信号に対する応答信号を受信し、受信した前記応答信号の受信強度に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択し、選択した前記第２通信ノードからの前記応答信号の受信強度に基づいて、前記第２通信ノードへの送信強度を算出し、前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第２通信ノードへ送信する通信ノード、通信方法、および通信プログラムが提案される。【０００７】
本発明の他の側面によれば、複数の通信ノードと、前記複数の通信ノードからデータ処理の処理結果を集約する通信装置と、を有するシステムであって、前記複数の通信ノードのうちの第１通信ノードが、複数の第２通信ノードへ、応答可能か否かの確認信号を送信し、前記複数の第２通信ノードのうちの応答可能な第３通信ノードからの、送信した前記確認信号に対する応答信号を受信し、受信した前記応答信号の受信強度に基づいて、前記第１通信ノードからデータ処理の実行を依頼する第４通信ノードを前記第３通信ノードから選択し、選択した前記第４通信ノードからの前記応答信号の受信強度に基づいて、前記第４通信ノードへの送信強度を算出し、前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第４通信ノードへ送信するシステムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、適切な通信相手にデータ処理を実行させることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、通信ノードによる一動作例を示す説明図である。
【図２】図２は、システム例を示す説明図である。
【図３】図３は、通信ノードのハードウェア構成例を示す説明図である。
【図４】図４は、通信装置のハードウェア構成例を示す説明図である。
【図５】図５は、パラメータ例を示す図表である。
【図６】図６は、配置領域の面積例を示す説明図である。
【図７】図７は、運用前に通信ノードに設定される通信距離の例を示す説明図である。
【図８】図８は、パケットのフォーマット例を示す説明図である。
【図９】図９は、運用中の通信ノードの機能的構成例を示すブロック図である。
【図１０】図１０は、隣接ノード確認信号の送信例を示す説明図である。
【図１１】図１１は、隣接ノード確認信号に対する応答信号の送信例を示す説明図である。
【図１２】図１２は、通信ノード間の距離の算出を行う関数例を示す説明図である。
【図１３】図１３は、各部分処理と部分処理の処理量に応じた情報とを示す説明図である。
【図１４】図１４は、選択および決定例１を示す説明図である。
【図１５】図１５は、選択および決定例２を示す説明図である。
【図１６】図１６は、送信強度の算出例を示す説明図である。
【図１７】図１７は、処理引き継ぎ依頼例を示す説明図（その１）である。
【図１８】図１８は、処理引き継ぎ依頼例を示す説明図（その２）である。
【図１９】図１９は、処理引き継ぎ依頼信号の転送例を示す説明図である。
【図２０】図２０は、通信ノードによる通信処理手順例を示すフローチャート（その１）である。
【図２１】図２１は、通信ノードによる通信処理手順例を示すフローチャート（その２）である。
【図２２】図２２は、通信ノードによる通信処理手順例を示すフローチャート（その３）である。
【図２３】図２３は、通信ノードによる通信処理手順例を示すフローチャート（その４）である。
【図２４】図２４は、通信ノードによる通信処理手順例を示すフローチャート（その５）である。
【図２５】図２５は、通信ノードによる通信処理手順例を示すフローチャート（その６）である。
【図２６】図２６は、通信ノードによる通信処理手順例を示すフローチャート（その７）である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる通信ノード、システム、通信方法、および通信プログラムの実施の形態を詳細に説明する。
【００１１】
図１は、通信ノードによる一動作例を示す説明図である。複数の通信ノード１０１は所定領域に配置される。所定領域は、たとえば、コンクリート、土、水、空気などの物質で満たされた領域である。各通信ノード１０１はハーベスタとバッテリとを搭載し、ハーベスタによって得られた電力をバッテリに充電する。たとえば、通信ノード１０１−１は、複数の通信ノード１０１へ、応答可能か否かの確認信号ｓ１を送信する。ここでは、通信ノード１０１−１は、一定の強度により確認信号を送信する。そのため、一定の強度により定まる距離よりも遠くにある通信ノード１０１には確認信号ｓ１が到達しない。たとえば、通信ノード１０１−２〜１０１−６は通信ノード１０１−１からの確認信号ｓ１が到達可能な位置にある。
【００１２】
通信ノード１０１−１は、複数の通信ノード１０１のうちの応答可能な第１通信ノード１０１からの、送信された確認信号ｓ１に対する応答信号ｓ２を受信する。ここで、第１通信ノード１０１は、通信ノード１０１−２と通信ノード１０１−３と通信ノード１０１−５と、である。故障中の通信ノード１０１やバッテリの残量が不十分である通信ノード１０１は、確認信号ｓ１に対する応答が行えないため、応答信号ｓ２を送信しない。バッテリの残量が不十分とは、例えば、後述する依頼信号ｓ３の受信と、依頼信号ｓ３が依頼するデータ処理の実行と、に要する電力量を満たさないことを示す。
【００１３】
つぎに、通信ノード１０１−１は、受信した応答信号ｓ２の受信強度に基づいて、自通信ノード１０１からデータ処理の実行を依頼する第２通信ノード１０１を第１通信ノード１０１から選択する。ここで、受信強度とは、受信した信号の強度を示す。受信強度は、たとえば、ＲＳＳＩ（Ｒｅｃｅｉｖｅｄ  Ｓｉｇｎａｌ  Ｓｔｒｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）であり、受信電力［ｄＢｍ］である。受信強度は、たとえば、アンテナから得ることができる。たとえば、応答信号ｓ２の送信強度が同一であると、受信強度の損失が大きい通信ノード１０１ほど、自通信ノード１０１との距離が遠く、受信強度の損失が小さい通信ノード１０１ほど、自通信ノード１０１との距離が近い。そのため、受信強度の損失が小さい通信ノード１０１にデータ処理を依頼する際の送信強度を小さくすることができる。そこで、たとえば、通信ノード１０１−１は、受信強度の損失が最も小さい通信ノード１０１を選択する。ここでは、通信ノード１０１−１は第２通信ノード１０１として通信ノード１０１−５を選択する。
【００１４】
通信ノード１０１−１は、選択した第２通信ノード１０１からの応答信号ｓ２の受信強度に基づいて、第２通信ノード１０１への送信強度を算出する。ここで、送信強度とは、送信する信号の強度を示す。具体的には、通信ノード１０１−１は、応答信号ｓ２の受信強度を与えると、通信ノード１０１−１から応答信号ｓ２の送信元へ依頼信号ｓ３が到達可能な送信強度が得られる関数に基づいて算出する。依頼信号ｓ３は、データ処理の実行を依頼する信号である。また、たとえば、関数は、応答信号ｓ２の受信強度を与えると、通信ノード１０１−１から応答信号ｓ２の送信元へ依頼信号ｓ３が到達可能な送信強度の中で、最小な送信強度が得られる。関数は、予め通信ノード１０１内の記憶装置に記憶される。関数は、後述する第１関数から第４関数の合成関数である。
【００１５】
また、通信ノード１０１−１は、応答信号ｓ２の受信強度と、通信ノード１０１−１から応答信号ｓ２の送信元へ依頼信号ｓ３が到達可能な送信強度と、が対応付けられたテーブルに、応答信号ｓ２の受信強度を与える。これにより、通信ノード１０１−１は、第２通信ノード１０１への送信強度を算出してもよい。また、例えば、テーブルは、通信ノード１０１−１から応答信号ｓ２の送信元へ依頼信号ｓ３が到達可能な送信強度の中で、最小な送信強度が得られるように作成される。例えば、テーブルは、予め通信ノード１０１内の記憶装置に記憶される。つぎに、通信ノード１０１−１は、依頼信号ｓ３を算出した送信強度に基づいて第２通信ノード１０１へ送信する。
【００１６】
これにより、より近いと推定される通信ノードへ少ない電力で依頼信号を送信することができる。したがって、適切な通信相手にデータ処理を実行させることができ、無線送信による消費電力を低減することができる。
【００１７】
図２は、システム例を示す説明図である。システム２００は、たとえば、センサーネットワークＳＮＥＴと、通信装置２０１と、ＰＣと、などを有するセンサーネットワークシステムである。
【００１８】
センサーネットワークＳＮＥＴは複数の通信ノード１０１を有する。複数の通信ノード１０１は、無線通信端末であって、上述したような所定領域内に配置される。通信ノード１０１は、所定領域内に数百個〜数万個配置されることとする。通信ノード１０１は広範囲に設置されるため、すべての通信ノード１０１が通信装置２０１と直接データの送受信を行うことができない。そこで、システム２００では、センシング結果に対応するデータ処理の処理結果は、他の通信ノード１０１を経由してマルチホッピング通信によって通信装置２０１に到達することとする。
【００１９】
また、本実施の形態では、データ処理が複数の部分処理に分割して並列処理可能なデータ処理とする。そのため、本実施の形態では、センシングイベントに応じたデータ処理を複数の通信ノード１０１に分散して並列処理させ、データ処理の処理結果を複数の通信ノード１０１の間でのマルチホップ通信により通信装置２０１まで転送する。通信装置２０１は、複数の通信ノード１０１の少なくともいずれかのデータ処理の処理結果を集約する。サーバ２０２や利用者端末２０３は、たとえば、通信装置２０１から集約結果の受け付け、通信装置２０１への指示などを行う。
【００２０】
図３は、通信ノードのハードウェア構成例を示す説明図である。通信ノード１０１は、複数のハーベスタ３０１−１〜３０１−ｎと、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）３０２と、バッテリ３０３と、複数のセンサー３０４−１〜３０４−ｍと、ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）３０５と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０６と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０７と、不揮発メモリ３０８と、受信装置３１０と、送信装置３１１と、を有する。
【００２１】
各センサー３０４は、設置箇所における所定の変位量を検出する。センサー３０４は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。
【００２２】
受信装置３１０と送信装置３１１は、アンテナと無線通信回路（ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ））と、を有する。受信装置３１０は、アンテナにより無線電波を受信して受信信号として出力する受信部である。送信装置３１１は、送信信号を無線電波としてアンテナを介して送信する送信部である。送信装置３１１は、たとえば、送信強度をＭＣＵ３０５によって調整可能とする。
【００２３】
ＭＣＵ３０５は、センサー３０４が検出したセンシング結果に応じたデータ処理の実行を周辺の通信ノード１０１へ依頼する。ＲＡＭ３０６は、ＭＣＵ３０５における処理の一時データを格納する。たとえば、ＲＡＭ３０６には、ｓｔａｔｅが格納される。ｓｔａｔｅは、データ処理の依頼状態を管理する情報である。ｓｔａｔｅが「０」の場合、いずれの通信ノード１０１からもデータ処理の実行や処理結果の転送が依頼されていない状態であることを示す。ｓｔａｔｅが「１」の場合、後述する処理依頼時隣接ノード確認信号に対する応答信号を送信したことを示す。ｓｔａｔｅが「２」の場合、後述する処理引き継ぎ依頼信号または並列展開処理依頼信号によってデータ処理の実行または処理結果の転送を依頼されたことを示す。
【００２４】
ＲＯＭ３０７は、ＭＣＵ３０５が実行する処理プログラムや後述する第１関数から第４関数などを格納する。第１関数と第２関数の合成関数は、たとえば、受信強度に基づいて通信ノード１０１間の距離を算出可能な関数であり、第３関数と第４関数の合成関数は、通信ノード１０１間の距離に基づいて送信強度を算出可能な関数である。
【００２５】
不揮発メモリ３０８は、書き込み可能なメモリであって、電力供給が途絶えたときなどにおいても書き込まれた所定のデータを保持する。たとえば、書き込み可能な不揮発メモリ３０８は、フラッシュメモリが挙げられる。不揮発メモリ３０８には、たとえば、並列展開可能ノードを示す情報と、処理引き継ぎ元ノードを示す情報と、データ処理のプログラムと、通信プログラムと、などが記憶される。
【００２６】
ハーベスタ３０１は、通信ノード１０１の設置箇所における外部環境、たとえば、光、振動、温度、無線電波（受信電波）などのエネルギー変化に基づき発電を行う。ハーベスタ３０１は、複数設けられていてもよい。ハーベスタ３０１は、センサー３０４によって検出された変位量に応じて発電を行ってもよい。バッテリ３０３は、ハーベスタ３０１により発電された電力を蓄える蓄電部である。すなわち、通信ノード１０１は、二次電池や外部電源などが不要であり、各構成要素の動作のための電力を自通信ノード１０１の内部で生成する。
【００２７】
ＰＭＵ３０２は、バッテリ３０３によって蓄えられた電力を、通信ノード１０１の各部に駆動電源として供給する制御を行う。また、ＰＭＵ３０２は、受信装置３１０による信号の受信イベント、各センサー３０４によるセンシングイベント、タイマによる起動イベントなどのイベントの発生を検出する。そして、ＰＭＵ３０２は、各種イベントの発生を検出すると、ＭＣＵ３０５の起動を制御する。たとえば、ＰＭＵ３０２は、バッテリ３０３の残量がＭＣＵ３０５の起動に要する電力量よりも少なければ、ＭＣＵ３０５を起動させず、バッテリ３０３の残量がＭＣＵ３０５の起動に要する電力量よりも多ければ、ＭＣＵ３０５を起動させる。
【００２８】
図４は、通信装置のハードウェア構成例を示す説明図である。通信装置２０１は、通信ノード１０１と異なり、外部電源に基づき動作する。通信装置２０１は、通信ノード１０１のＭＣＵ３０５よりも高性能なＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１と、大容量のＲＯＭ４０２、ＲＡＭ４０３、および不揮発メモリ４０４と、インターフェースとなるＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）回路４０５と、を有する。通信装置２０１は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、不揮発メモリ４０４と、Ｉ／Ｏ回路４０５と、を接続するバス４０９を有する。
【００２９】
ここで、ＣＰＵ４０１は、通信装置２０１の全体の制御を司る。ＣＰＵ４０１は、ＲＯＭ４０２、ＲＡＭ４０３、不揮発メモリ４０４などの記憶装置に記憶されているプログラムなどの各種プログラムを実行することにより、記憶装置内のデータを読み出したり、実行結果となるデータを記憶装置に書き込んだりする。
【００３０】
また、Ｉ／Ｏ回路４０５には、無線通信回路（ＲＦ）４０６およびアンテナ４０７と、ネットワークＩ／Ｆ４０８と、が接続されている。これにより、通信装置２０１は、無線通信回路４０６およびアンテナ４０７を介して、通信ノード１０１と無線通信することができる。さらに、通信装置２０１は、ネットワークＩ／Ｆ４０８を介して、ＴＣＰ／ＩＰのプロトコル処理などにより、インターネットなどのネットワークＮＥＴを介してサーバ２０２や利用者端末２０３などの外部装置と通信を行うことができる。また、図示していないが、通信装置２０１はディスプレイやキーボード、またはタッチパネル式のディスプレイなどの入力装置や出力装置を有していてもよい。
【００３１】
（通信ノード１０１の配置前）
まず、通信ノード１０１の仕様およびプログラムの仕様から、通信ノード１０１の配置数や通信距離の設定が行われる。具体的には、通信装置２０１または利用者端末２０３などによって行われるが、ここでは、通信装置２０１によって行うこととする。つぎに、通信ノード１０１の配置数および通信距離の算出に用いられるパラメータと配置領域の面積例をそれぞれ図５と図６に示す。
【００３２】
図５は、パラメータ例を示す図表である。図６は、配置領域の面積例を示す説明図である。Ｃはバッテリ容量であり、Ｖは電圧であり、Ｒは単位データ量あたりの受信に要する消費電力量である。Ｔは単位データ量を１ｍ四方までに配置された通信ノードが受信可能な強度による送信に要する消費電力量である。Ｅは、単位処理量あたりのデータ処理に要する消費電力量である。ｄａは、データ量であり、ｄｉは、通信距離である。ｉは単位処理量であり、Ｉは全体の処理量である。Ｓは通信ノード１０１の配置領域の面積であり、図６に示す。Ｄｅｎｓｉｔｙは、マルチホップ通信などを行うための１平方ｍあたりの通信ノード１０１の個数（「配置密度」と称する。）［個／ｍ2］である。
【００３３】
通信ノード１０１が同一サイズのデータを受信する場合の最大受信可能数を以下式（１）に示す。
【００３４】
【数１】
2014188550.tif 000003
【００３５】
１通信ノード１０１当たりが処理可能な処理量を以下式（２）に示す。
【００３６】
【数２】
2014188550.tif 000004
【００３７】
データ処理の実行に要する通信ノード１０１数を以下式（３）に示す。
【００３８】
【数３】
2014188550.tif 000005
【００３９】
データ処理の各部分処理について通信ノード１０１間で行われるホップ数を以下式（４）に示す。
【００４０】
【数４】
2014188550.tif 000006
【００４１】
配置密度Ｄｅｎｓｉｔｙは、以下式（５）に示す。式（５）中配置密度Ｄｅｎｓｉｔｙを省略して配置密度Ｄと記載する。
【００４２】
【数５】
2014188550.tif 000007
【００４３】
どの程度の間隔で通信ノード１０１を配置させるかを定める距離ｄｉは、以下式（６）に示す。
【００４４】
【数６】
2014188550.tif 000008
【００４５】
式（１）〜（６）の算出結果に基づいて複数の通信ノード１０１が配置される。
【００４６】
（運用前）
図７は、運用前に通信ノードに設定される通信距離の例を示す説明図である。通信装置２０１は、通信距離の設定信号をシステム２００内の通信ノード１０１に対して送信する。設定信号については、マルチホップ通信によって通信ノード１０１間で伝搬されてもよいし、通信装置２０１によって全体に送信されてもよい。設定信号には、通信距離に基づく送信強度が含まれる。
【００４７】
各通信ノード１０１は、設定信号を受信する。そして、各通信ノード１０１は、ＭＣＵ３０５を起動する。各通信ノード１０１は、ＭＣＵ３０５によって設定信号に含まれる送信強度をＲＡＭ３０６や不揮発メモリ３０８などの記憶装置に記憶する。さらに、各通信ノード１０１は、ＭＣＵ３０５によって、送信装置３１１に設定信号に含まれる送信強度により信号を送信する。各通信ノード１０１は、隣接ノード確認信号、隣接ノード確認信号に対する応答信号、処理依頼時隣接ノード確認信号、および処理依頼時隣接ノード確認信号に対する応答信号、を、設定信号に含まれる送信強度によって送信する。また、通信ノード１０１は、並列展開処理依頼信号、および処理引き継ぎ依頼信号を送信する際に、受信した応答信号の受信強度によって送信する。
【００４８】
図８は、パケットのフォーマット例を示す説明図である。本実施の形態では、各通信ノード１０１が送信する信号は、隣接ノード確認信号ｓ１と、隣接ノード確認信号ｓ１への応答信号ｓ２と、並列展開処理依頼信号ｓ３と、がある。さらに、各通信ノード１０１が送信する信号は、処理依頼時隣接ノード確認信号ｓ４と、処理依頼時隣接ノード確認信号ｓ４への応答信号ｓ５と、処理引き継ぎ依頼信号ｓ６と、がある。各信号のパケットのフォーマットを説明する。
【００４９】
隣接ノード確認信号ｓ１は、自通信ノード１０１と直接無線通信可能な複数の通信ノード１０１の中で、応答可能か否かを確認するための信号である。具体的には、隣接ノード確認信号ｓ１は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｓｅｒｖｅｄと、を有する。隣接ノード確認信号ｓ１のＳｉｇｎａｌ  ＩＤは「０」とする。隣接ノード確認信号ｓ１のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは、隣接ノード確認信号ｓ１の送信元を示す識別情報である。各通信ノード１０１の識別情報は、運用前に各通信ノード１０１に予め付与されていることとする。各通信ノード１０１の識別情報としては、たとえば、製造時のシリアル番号などを用いてもよい。隣接ノード確認信号ｓ１のＲｅｓｅｒｖｅｄは、予備の領域である。また、各通信ノード１０１は送信先を指定せずに隣接ノード確認信号ｓ１を送信するため、隣接ノード確認信号ｓ１には、送信先を示す識別情報がない。
【００５０】
隣接ノード確認信号ｓ１に対する応答信号ｓ２は、応答可能である場合に送信される信号である。隣接ノード確認信号ｓ１に対する応答信号ｓ２は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｓｅｒｖｅｄと、を有する。隣接ノード確認信号ｓ１に対する応答信号ｓ２のＳｉｇｎａｌ  ＩＤは、「１」とする。応答信号ｓ２のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは応答信号ｓ２の送信元を示す識別情報である。応答信号ｓ２のＲｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤは応答信号ｓ２の送信先である隣接ノード確認信号ｓ１の送信元を示す識別情報である。応答信号ｓ２のＲｅｓｅｒｖｅｄは、予備の領域である。
【００５１】
並列展開処理依頼信号ｓ３は、データ処理を所定数の部分処理に分割可能な並列処理を他の通信ノード１０１へ依頼するための信号である。所定数については、予め並列度としてデータ処理についてのプログラムの設計者によって定められていることとする。並列展開処理依頼信号ｓ３は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤと、Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇと、Ｒａｗ  ｄａｔａと、を有する。並列展開処理依頼信号ｓ３のＳｉｇｎａｌ  ＩＤは、「２」とする。並列展開処理依頼信号ｓ３のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは、並列展開処理依頼信号ｓ３の送信元の識別情報である。並列展開処理依頼信号ｓ３のＲｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤは、部分処理の依頼先の識別情報である。
【００５２】
並列展開処理依頼信号ｓ３のＮｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇは、部分処理の実行を完了させるために要する通信ノード数である。Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇは、所要ホップ数とも呼ぶ。所要ホップ数は各部分処理についてデータ処理の設計時に予め決定済みである。ここでは、各通信ノード１０１は、並列展開処理依頼信号ｓ３のパケットを生成時に、部分処理を含むデータ処理のプログラムから所要ホップ数を特定してもよい。または、各部分処理についての所要ホップ数を予めＲＯＭ３０７や不揮発メモリ３０８などの記憶装置に格納しておき、各通信ノードは、並列展開処理依頼信号ｓ３のパケットを生成時に、記憶装置から部分処理の所要ホップ数を取得してもよい。並列展開処理依頼信号ｓ３のＲａｗ  ｄａｔａは、部分処理の実行に関する情報であり、たとえば、センシングイベントによって得られたセンシングデータを有し、さらに部分処理についてのプログラムデータそのものを有していてもよい。
【００５３】
処理依頼時隣接ノード確認信号ｓ４は、並列展開可能ノードへ部分処理を依頼可能か否か確認する信号である。処理依頼時隣接ノード確認信号ｓ４は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｓｅｒｖｅｄと、を有する。処理依頼時隣接ノード確認信号ｓ４のＳｉｇｎａｌ  ＩＤは「３」とする。処理依頼時隣接ノード確認信号ｓ４のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは、処理依頼時隣接ノード確認信号ｓ４の送信元の識別情報である。処理依頼時隣接ノード確認信号ｓ４のＲｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤは、処理依頼時隣接ノード確認信号ｓ４の送信先の識別情報であり、並列展開可能ノードの識別情報である。処理依頼時隣接ノード確認信号ｓ４のＲｅｓｅｒｖｅｄは、予備の領域である。
【００５４】
処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５は、応答可能である場合に送信される信号である。処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｓｅｒｖｅｄと、を有する。応答信号ｓ５のＳｉｇｎａｌ  ＩＤは「４」とする。応答信号ｓ５のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは、応答信号ｓ５の送信元の識別情報である。応答信号ｓ５のＲｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤは、応答信号ｓ５の送信先の識別情報であり、処理依頼時隣接ノード確認信号ｓ４の送信元の識別情報である。応答信号ｓ５のＲｅｓｅｒｖｅｄは、予備の領域である。
【００５５】
処理引き継ぎ依頼信号ｓ６は、部分処理の引き継ぎを依頼する信号である。処理引き継ぎ依頼信号ｓ６は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤと、Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇと、Ｈｏｐｐｉｎｇ  Ｃｏｕｎｔｅｒと、Ｒａｗ  ｄａｔａと、を有する。処理引き継ぎ依頼信号ｓ６のＳｉｇｎａｌ  ＩＤは「５」とする。処理引き継ぎ依頼信号ｓ６のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは、処理引き継ぎ依頼信号ｓ６の送信元の識別情報であり、部分処理の処理引き継ぎ依頼元ノードの識別情報である。処理引き継ぎ依頼信号ｓ６のＲｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤは、処理引き継ぎ依頼信号ｓ６の送信先の識別情報であり、部分処理の依頼先の識別情報である。
【００５６】
処理引き継ぎ依頼信号ｓ６のＮｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇは、部分処理の実行を完了させるために要する通信ノード数である。処理引き継ぎ依頼信号ｓ６のＨｏｐｐｉｎｇ  Ｃｏｕｎｔｅｒ（ホッピングカウンター）は、部分処理の実行を完了させるために要する通信ノード数のうち、部分処理を実行した通信ノード数がカウントされたカウント値である。たとえば、Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇの数と、Ｈｏｐｐｉｎｇ  Ｃｏｕｎｔｅｒの数と、が一致している場合、処理引き継ぎ依頼信号ｓ６は、Ｒａｗ  ｄａｔａを通信装置２０１への転送を依頼する信号である。処理引き継ぎ依頼信号ｓ６のＲａｗ  ｄａｔａは、部分処理の実行に関する情報であり、たとえば、センシングイベントに応じたセンシングデータを有し、さらに部分処理についてのプログラムデータそのものを有していてもよい。さらに、処理引き継ぎ依頼信号ｓ６のＲａｗ  ｄａｔａは、実行完了済みの部分処理の処理結果も含まれる。
【００５７】
（運用中の通信ノード１０１の機能的構成例）
図９は、運用中の通信ノードの機能的構成例を示すブロック図である。通信ノード１０１は、制御部９００と、第１受信部９０１と、第２受信部９０２と、第１送信部９０３と、第２送信部９０４と、信号種別判断部９０５と、並列展開ノード設定部９０６と、を有する。通信ノード１０１は、ノードステート制御部９１１と、バッテリ判断部９１２と、ホップカウンター判断部９１３と、実行部９１４と、ホップカウンター制御部９１５と、タイマ制御部９１６と、パケット生成部９１７と、を有する。
【００５８】
第１受信部９０１と、第２受信部９０２と、は、受信装置３１０によって実現される。第１送信部９０３と、第２送信部９０４と、は、送信装置３１１によって実現される。信号種別判断部９０５からパケット生成部９１７の処理は、たとえば、ＭＣＵ３０５がアクセス可能な不揮発メモリ３０８などの記憶装置に記憶された通信プログラムにコーディングされる。そして、ＭＣＵ３０５が不揮発メモリ３０８に記憶された通信プログラムを読み出して、通信プログラムにコーディングされている処理を実行する。これにより、信号種別判断部９０５からパケット生成部９１７の処理が実現される。また、バッテリ判断部９１２については、ＭＣＵ３０５が起動されていない場合、ＰＭＵ３０２によって実現される。また、信号種別判断部９０５からパケット生成部９１７までの処理結果は、ＲＡＭ３０６や不揮発メモリ３０８などの記憶装置に記憶される。
【００５９】
信号種別判断部９０５は、受信装置３１０が受信した信号の種別を判断する。上述したように、各信号に含まれるＳｉｇｎａｌ  ＩＤに基づいて、信号種別判断部９０５は、信号がいずれの種類の信号であるかを判断可能である。また、パケット生成部９１７は、送信装置３１１によって送信する信号のパケットを生成する。各信号のパケットは上述した通りである。以降信号種別判断部９０５と、パケット生成部９１７と、についての説明は省略する。
【００６０】
タイマ制御部９１６は、自通信ノード１０１が有するタイマによって一定期間ごとに隣接ノード確認信号ｓ１を送信させる制御を行う。第１送信部９０３は、タイマ制御部９１６の制御によって自通信ノード１０１と直接無線通信可能な複数の通信ノード１０１へ隣接ノード確認信号ｓ１を送信する。ここで、隣接ノード確認信号ｓ１の送信のための送信強度は、一定の強度であり、たとえば、運用前に設定信号によって設定された送信強度である。
【００６１】
第１受信部９０１は、隣接ノード確認信号ｓ１を受信した複数の通信ノード１０１から、第１送信部９０３によって送信された隣接ノード確認信号ｓ１に対する応答信号ｓ２を受信する。また、第１受信部９０１は、隣接ノード確認信号ｓ１を受信した複数の通信ノード１０１のうちの応答可能な第１通信ノード１０１からの、第１送信部９０３によって送信された隣接ノード確認信号ｓ１に対する応答信号ｓ２を受信してもよい。たとえば、受信しても応答可能でない通信ノード１０１としては、バッテリの残量が不十分である通信ノード１０１は、隣接ノード確認信号ｓ１を受信しても、隣接ノード確認信号ｓ１に対する応答が行えないため、応答信号ｓ２を送信しない。また、たとえば、故障している通信ノード１０１は、隣接ノード確認信号ｓ１を受信できない可能性が高いため、応答信号ｓ２を送信できない。そのため、隣接ノード確認信号ｓ１に対する応答信号ｓ２がない周辺の通信ノード１０１は故障しているとみなすことができる。
【００６２】
並列展開ノード設定部９０６は、第１受信部９０１によって受信された応答信号ｓ２の送信元である通信ノード１０１を並列展開可能ノードに設定する。具体的には、並列展開ノード設定部９０６は、第１受信部９０１によって受信された応答信号ｓ２の送信元である通信ノード１０１の識別情報と、応答信号ｓ２の受信強度と、を関連付けてＲＡＭ３０６、不揮発メモリ３０８などの記憶装置に記憶させる。不揮発メモリ３０８に記憶される並列展開可能ノードを示す情報が、応答信号ｓ２の送信元である通信ノード１０１の識別情報と、応答信号ｓ２の受信強度と、が関連付けられた情報である。また、応答信号ｓ２の受信強度に代わって、後述する距離算出部９０７によって算出された距離を応答信号ｓ２の送信元である通信ノード１０１の識別情報に関連付けてもよい。
【００６３】
また、第２受信部９０２は、複数の通信ノード１０１のいずれかから、隣接ノード確認信号ｓ１を受信する。バッテリ判断部９１２は、バッテリ３０３の電力残量が閾値以上であるか否かを判断する。閾値は、たとえば、データ処理に含まれる部分処理の実行に要する電力量と、並列展開処理依頼信号ｓ３の受信に要する電力量と、処理引き継ぎ依頼信号ｓ６の送信に要する電力量と、の合計値に基づく値である。閾値については、たとえば、不揮発メモリ３０８などの記憶装置に予め記憶される。これにより、バッテリ３０３の電力残量が、データ処理に含まれる部分処理の実行に要する電力量と、並列展開処理依頼信号ｓ３の受信に要する電力量と、処理引き継ぎ依頼信号ｓ６の送信に要する電力量と、の合計値に対して十分あるか否かが判断される。
【００６４】
バッテリ判断部９１２によって電力量が閾値以上であると判断された場合、パケット生成部９１７は、隣接ノード確認信号ｓ１に対する応答信号ｓ２を生成する。そして、第２送信部９０４は、パケット生成部９１７によって生成された隣接ノード確認信号ｓ１に対する応答信号ｓ２を隣接ノード確認信号ｓ１の送信元へ送信する。ここで、応答信号ｓ２の送信のための送信強度は、一定の強度であり、たとえば、運用前に設定された強度である。バッテリ判断部９１２によって電力量が閾値未満であると判断された場合、第２送信部９０４は、隣接ノード確認信号ｓ１に対する応答信号ｓ２を送信しない。
【００６５】
図１０は、隣接ノード確認信号の送信例を示す説明図である。たとえば、通信ノード１０１−１は、設定された送信強度によって通信ノード１０１−１から一定距離ｄ以内にある通信ノード１０１へ隣接ノード確認信号ｓ１を送信する。通信ノード１０１−１から一定距離ｄ以内にある通信ノード１０１は、通信ノード１０１−２〜１０１−１０である。
【００６６】
図１１は、隣接ノード確認信号に対する応答信号の送信例を示す説明図である。図１１の例では、通信ノード１０１−７，１０１−１０は、故障中またはバッテリ３０３の電力が閾値を満たさないため、隣接ノード確認信号ｓ１に対する応答信号ｓ２を送信しない。また、図１１の例では、通信ノード１０１−２〜１０１−６，１０１−８，１０１−９は、隣接ノード確認信号ｓ１に対する応答信号ｓ２を隣接ノード確認信号ｓ１の送信元である通信ノード１０１−１へ送信する。
【００６７】
制御部９００は、第１受信部９０１によって受信された応答信号ｓ２の受信強度に基づき応答信号ｓ２の送信元である複数の通信ノード１０１から選択した、データ処理を依頼する依頼先通信ノードへの送信強度を設定する。より具体的に、制御部９００は、距離算出部９０７と、選択部９０８と、決定部９０９と、強度算出部９１０と、を有する。
【００６８】
距離算出部９０７は、第１受信部９０１によって受信された応答信号ｓ２の受信強度に基づいて、自通信ノード１０１と、応答信号ｓ２の送信元と、の距離を算出する。受信強度については、受信装置３１０および送信装置３１１が有するアンテナから得られる。具体的には、距離算出部９０７は、応答信号ｓ２の受信強度と、応答信号ｓ２の送信強度［ｄＢｍ］と、送信アンテナ絶対利得［ｄＢｉ］と、受信アンテナ絶対利得［ｄＢｉ］と、に基づいて、応答信号ｓ２の受信強度の損失を算出する。距離算出部９０７は、受信強度を与えると受信強度の損失が得られる第１関数に、受信された応答信号ｓ２の受信強度を与えることにより、応答信号ｓ２の受信強度の損失を算出する。第１関数は、応答信号ｓ２の送信強度と、送信アンテナ絶対利得と、受信アンテナ絶対利得と、の合計値から、与えられた応答信号ｓ２の受信強度を引き算することにより、応答信号ｓ２の受信強度の損失を得る。送信アンテナ絶対利得と、受信アンテナ絶対利得とは、受信装置３１０および送信装置３１１が有するアンテナに基づく値であり、固定値であり、予め不揮発メモリ３０８などの記憶装置に記憶する。そして、距離算出部９０７は、損失を与えると通信ノード１０１間の距離を算出可能な以下式（７）に基づく第２関数に、算出した応答信号ｓ２の受信強度の損失を与えることにより、通信ノード１０１間の距離を算出する。式（７）内のＬは損失であり、ｄは距離［ｍ］であり、λは波長［ｍ］である。波長λは、固定値であり、予め不揮発メモリ３０８などの記憶装置に記憶する。たとえば、距離算出部９０７は、応答信号ｓ２の送信元の識別情報と、算出された距離と、を関連付けてＲＡＭ３０６や不揮発メモリ３０８などの記憶装置に記憶する。
【００６９】
【数７】
2014188550.tif 000009
【００７０】
図１２は、通信ノード間の距離の算出を行う関数例を示す説明図である。グラフ１２００は、通信ノード１０１間の距離の算出を行う関数に受信強度の損失を与えてプロットした例である。グラフ１２００は、各応答信号の受信強度の損失が大きいほど、通信ノード１０１間の距離が遠くなり、各応答信号の受信強度の損失が小さいほど、通信ノード１０１間の距離が近くなることを示す。
【００７１】
つぎに、センサー３０４によってセンシングイベントが発生する。そして、選択部９０８は、距離算出部９０７によって算出された自通信ノード１０１と並列展開可能ノードとの距離に基づいて、センシングイベントに応じたデータ処理の実行を依頼する依頼先を並列展開可能ノードから選択する。
【００７２】
また、センシングイベントに応じたデータ処理が所定数の部分処理に分割して並列処理可能なデータ処理である場合、選択部９０８は、受信された応答信号ｓ２の受信強度に基づいて、第１通信ノード１０１から所定数以下の第２通信ノード１０１を選択する。所定数については、予め並列度としてデータ処理についてのプログラムの設計者によって定められていることとする。所定数は、たとえば、ＲＯＭ３０７や不揮発メモリ３０８などの記憶装置に予め記憶される。具体的には、選択部９０８は、第２通信ノード１０１を選択する際に、第１通信ノード１０１の数が所定数より多い場合、第１受信部９０１によって受信された応答信号ｓ２の受信強度に基づいて、所定数の第１通信ノード１０１を選択する。また、選択部９０８は、第２通信ノード１０１を選択する際に、第１通信ノード１０１の数が所定数以下の場合、第１通信ノード１０１のすべてを選択する。
【００７３】
そして、決定部９０９は、受信された応答信号ｓ２の受信強度と、所定数の部分処理の各々の処理量に応じた情報と、に基づいて、選択部９０８によって選択された依頼先の各々に所定数のデータ処理のいずれを依頼するかを決定する。
【００７４】
図１３は、各部分処理と部分処理の処理量に応じた情報とを示す説明図である。たとえば、データ処理は、部分処理Ａと、部分処理Ｂと、部分処理Ｃと、部分処理Ｄと、の４つに分割して並列処理可能である。部分処理Ａの処理長は４である。ここで、処理長は、上述した所要ホップ数であり、部分処理の実行を完了させるために部分処理の実行を行う通信ノード１０１数である。部分処理Ｂの処理長は４であり、部分処理Ｃの処理長は６であり、部分処理Ｄの処理長は１である。
【００７５】
図１４は、選択および決定例１を示す説明図である。たとえば、並列展開可能ノードの数が７であり、並列度が４であるため、選択部９０８は、算出された距離が近い順に、並列展開可能ノードを４つ選択する。これにより、データ処理をより多く分散させることができる。
【００７６】
そして、決定部９０９は、距離が近い順に、処理長が大きい部分処理を割り当てることを決定する。たとえば、部分処理Ｃを通信ノード１０１−５へ割り当て、部分処理Ａを通信ノード１０１−８に割り当て、部分処理Ｂを通信ノード１０１−３に割り当て、部分処理Ｄを通信ノード１０１−２に割り当てる。
【００７７】
第２送信部９０４は、選択部９０８によって選択された第２通信ノード１０１の各々へ、第２通信ノード１０１について決定部９０９によって決定されたデータ処理を依頼する依頼信号を送信する。
【００７８】
図１５は、選択および決定例２を示す説明図である。たとえば、図１５に示すように、並列展開可能ノードの数が２であり、並列度が４である場合、選択部９０８は、２つの通信ノード１０１を選択する。決定部９０９は、距離が近い順に、合計の処理長が大きくなるように部分処理を割り当てることを決定する。たとえば、決定部９０９は、通信ノード１０１−５に部分処理Ａと部分処理Ｂとを割り当て、通信ノード１０１−２に部分処理Ｃと部分処理Ｄとを割り当てることを決定する。
【００７９】
強度算出部９１０は、選択部９０８によって選択された第２通信ノード１０１からの応答信号ｓ２の受信強度に基づいて、第２通信ノード１０１と自通信ノード１０１との間で通信可能な送信強度を算出する。ここでは、強度算出部９１０は、選択部９０８によって選択された第２通信ノード１０１と自通信ノード１０１との算出された距離に基づいて、第２通信ノード１０１と自通信ノード１０１との間で通信可能な送信強度を算出する。具体的には、強度算出部９１０は、選択部９０８によって選択された第２通信ノード１０１と自通信ノード１０１との算出された距離に基づいて、第２通信ノード１０１と自通信ノード１０１との間で通信可能な送信強度の中で、最小の送信強度を算出する。より具体的には、強度算出部９１０は、距離を与えると送信強度の損失が得られる後述する式（８）に基づく第３関数に、距離を与えることにより、送信強度の損失を算出する。そして、強度算出部９１０は、送信強度の損失が与えられると送信強度が得られる第４関数に、算出された送信強度の損失を与えることにより、送信強度を得る。第４関数は、与えられた送信強度の損失と、受信可能な最小の受信強度と、の合計値から、送信アンテナ絶対利得と、受信アンテナ絶対利得と、の合計値を引き算することにより、送信強度を得る。式（８）内のＬは損失であり、ｄは距離［ｍ］であり、λは波長［ｍ］である。波長λは、固定値であり、予め不揮発メモリ３０８などの記憶装置に記憶する。
【００８０】
【数８】
2014188550.tif 000010
【００８１】
図１６は、送信強度の算出例を示す説明図である。グラフ１６００は、送信強度の損失の算出を行う関数に通信ノード１０１間の距離を与えてプロットした例である。グラフ１６００は、通信ノード１０１間の距離が遠いほど、送信強度の損失が大きくなり、通信ノード１０１間の距離が近いほど、送信強度の損失が小さくなることを示す。
【００８２】
第２送信部９０４は、データ処理の実行を依頼する依頼信号を強度算出部９１０によって算出された送信強度によって第２通信ノード１０１へ送信する。
【００８３】
第２受信部９０２は、データ処理の実行を依頼する並列展開処理依頼信号ｓ３を周辺の通信ノード１０１のうちの第３通信ノード１０１から受信する。ノードステート制御部９１１は、受信された並列展開処理依頼信号ｓ３が示すデータ処理の実行の依頼先が自通信ノード１０１である場合、通信ノード１０１のｓｔａｔｅを「２」に設定する。そして、実行部９１４は、並列展開処理依頼信号ｓ３によって依頼されたデータ処理の一部を実行する。つぎに、ホップカウンター制御部９１５は、並列展開処理依頼信号ｓ３によって依頼されたデータ処理についてのホップカウンターの値を１インクリメントする。
【００８４】
そして、第１送信部９０３は、第１通信ノード１０１へ処理依頼時隣接ノード確認信号ｓ４を送信する。具体的には、第１送信部９０３は、記憶装置に記憶された並列展開可能ノードへ処理依頼時隣接ノード確認信号ｓ４を送信する。第１受信部９０１は、処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５を並列展開可能ノードのうちのいずれかから受信する。
【００８５】
距離算出部９０７は、応答信号ｓ５の受信強度に基づいて、応答信号ｓ５の送信元と、自通信ノード１０１と、の距離を算出する。そして、選択部９０８は、算出された距離が最も短い応答信号ｓ５の送信元を処理引き継ぎ依頼信号ｓ６の依頼先として選択する。
【００８６】
第２送信部９０４は、ホップカウンター制御部９１５によってカウントアップされたホップカウンターの値と実行部９１４による実行結果とを含む処理引き継ぎ依頼信号ｓ６を選択部９０８によって選択された通信ノード１０１へ送信する。これにより、第２送信部９０４は、実行部９１４によって実行された一部の処理以外のデータ処理の実行と、実行部９１４によって実行された一部の処理の通信装置２０１への転送と、を依頼する処理引き継ぎ依頼信号ｓ６を送信することとなる。
【００８７】
そして、ノードステート制御部９１１は、処理引き継ぎ依頼信号ｓ６が送信された後に、通信ノード１０１のｓｔａｔｅを「０」に設定する。
【００８８】
図１７および図１８は、処理引き継ぎ依頼例を示す説明図である。通信ノード１０１−５は、通信ノード１０１−１からの並列展開処理依頼信号ｓ３を受信する。そして、通信ノード１０１−５は、並列展開処理依頼信号ｓ３によって依頼されたデータ処理の一部を実行する。通信ノード１０１−５は、並列展開可能ノードへ処理依頼時隣接ノード確認信号ｓ４を送信する。通信ノード１０１−５の並列展開可能ノードは、通信ノード１０１−３，１０１−４，１０１−６,１０１−１１,１０１−１２である。
【００８９】
そして、たとえば、通信ノード１０１−５は、通信ノード１０１−５の並列展開可能ノードのすべてから処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５を受信することとする。通信ノード１０１−５は、応答信号ｓ５の受信強度に基づいて各並列展開可能ノードと自通信ノード１０１との距離を算出する。そして、通信ノード１０１−５は、最も距離が短い通信ノード１０１−６を処理引き継ぎ依頼信号ｓ６の送信先として選択する。通信ノード１０１−５は、通信ノード１０１−６へ処理引き継ぎ依頼信号ｓ６を送信する。
【００９０】
また、第２受信部９０２は、周辺の通信ノード１０１のうちの第３通信ノード１０１から処理引き継ぎ依頼信号ｓ６を受信する。そして、処理引き継ぎ依頼信号ｓ６に含まれるデータ処理の依頼先が自通信ノード１０１である場合、ホップカウンター判断部９１３は、処理引き継ぎ依頼信号ｓ６に含まれるホップカウンターの値が所要ホップ数以上であるか否かを判断する。
【００９１】
実行部９１４は、ホップカウンター判断部９１３によってホップカウンターの値が所要ホップ数未満であると判断された場合、処理引き継ぎ依頼信号ｓ６によって依頼されたデータ処理を実行する。そして、ホップカウンター制御部９１５は、ホップカウンターの値を１インクリメントする。その後、上述したように、通信ノード１０１は、処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５によって並列展開可能ノードから最も近い距離にある通信ノード１０１を選択し、選択した通信ノード１０１へ処理引き継ぎ依頼信号ｓ６を送信する。
【００９２】
ホップカウンター判断部９１３によってホップカウンターの値が所要ホップ数以上であると判断された場合、実行部９１４は、データ処理を実行しない。そして、通信ノード１０１は、処理依頼時隣接ノード確認信号ｓ４によって並列展開可能ノードから最も近い距離にある通信ノード１０１を選択し、選択した通信ノード１０１へ処理引き継ぎ依頼信号ｓ６を送信する。
【００９３】
また、第２受信部９０２は、処理依頼時隣接ノード確認信号ｓ４を受信する。そして、バッテリ判断部９１２は、第２受信部９０２によって処理依頼時隣接ノード確認信号ｓ４を受信すると、バッテリ３０３の残量が起動閾値以上であるか否かを判断する。起動閾値は、起動に要する電力量である。起動閾値以上であると判断された場合、そして、ノードステート制御部９１１は、処理依頼時隣接ノード確認信号ｓ４の送信元の識別情報を処理引き継ぎ元ノードとして、ＲＡＭ３０６、ディスクなどの記憶装置に記憶する。ノードステート制御部９１１は、ｓｔａｔｅを「１」に設定する。さらに、第２送信部９０４は、処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５を処理依頼時隣接ノード確認信号ｓ４の送信元に送信する。
【００９４】
図１９は、処理引き継ぎ依頼信号の転送例を示す説明図である。通信ノード１０１−１で発生したセンシングイベントに応じたデータ処理は通信ノード１０１−１から通信装置２０１までの間の通信ノード１０１に実行される。そして、当該データ処理の処理結果は通信ノード１０１−１から通信装置２０１までの間の通信ノード１０１にマルチホッピング通信によって転送される。図１９では、各通信ノード１０１が送信する信号のパケットｐ１〜ｐ６を示す。
【００９５】
たとえば、並列展開処理依頼信号ｓ３のパケットｐ１の「Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇ」の値が２である。そのため、通信ノード１０１−１から送信される並列展開処理依頼信号ｓ３を受信する通信ノード１０１−５と、通信ノード１０１−５から送信される処理引き継ぎ依頼信号ｓ６を受信する通信ノード１０１−６と、は、データ処理を実行する。その後、通信ノード１０１−６から送信される処理引き継ぎ依頼信号ｓ６のパケットｐ３の「Ｈｏｐｐｉｎｇ  Ｃｏｕｎｔｅｒ」の値と「Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇ」の値とが一致する。そのため、通信ノード１０１−１３と通信ノード１０１−１４と通信ノード１０１−１５は、処理引き継ぎ依頼信号ｓ６をデータ処理の処理結果の転送信号として処理引き継ぎ依頼信号ｓ６を通信装置２０１まで転送する。
【００９６】
（通信ノード１０１による通信処理手順例）
図２０〜図２６は、通信ノードによる通信処理手順例を示すフローチャートである。ここでは、ＭＣＵ３０５によるステップについてはＭＣＵ３０５によって実行されることを省略する。通信ノード１０１は、ＰＭＵ３０２によって、イベントの発生を検出したか否かを判断する（ステップＳ２００１）。イベントの発生を検出していない場合（ステップＳ２００１：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２００１へ戻る。
【００９７】
タイマによる起動イベントが発生した場合（ステップＳ２００１：タイマ起動）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２００２）。通信ノード１０１は、ＭＣＵ３０５によって、バッテリ３０３の残量＞起動閾値か否かを判断する（ステップＳ２００３）。バッテリ３０３の残量＞起動閾値でない場合（ステップＳ２００３：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。バッテリ３０３の残量＞起動閾値である場合（ステップＳ２００３：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５と送信装置３１１によって、隣接ノード確認信号ｓ１を送信する（ステップＳ２００４）。そして、通信ノード１０１は、受信装置３１０によって、隣接ノード確認信号ｓ１を送信してから一定時間内に応答信号ｓ２を受信したか否かを判断する（ステップＳ２００５）。
【００９８】
一定時間内である場合（ステップＳ２００５：一定時間内）、通信ノード１０１は、受信装置３１０によって、ステップＳ２００５へ戻る。一方、一定時間経過した場合（ステップＳ２００５：一定時間経過）、通信ノード１０１は、ＭＣＵ３０５によって、応答信号ｓ２の送信元の各々について、応答信号ｓ２の受信強度に基づいて、自通信ノード１０１との距離を算出する（ステップＳ２００６）。通信ノード１０１は、ＭＣＵ３０５によって、応答信号ｓ２の送信元を並列展開可能ノードとし、算出した距離を関連付けて出力する（ステップＳ２００７）。そして、通信ノード１０１は、ＭＣＵ３０５によって、Ｓｌｅｅｐ状態に遷移し（ステップＳ２０１２）、一連の処理を終了する。
【００９９】
また、隣接ノード確認信号ｓ１が受信された場合（ステップＳ２００１：隣接ノード確認信号の受信）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５が起動済みか否かを判断する（ステップＳ２００８）。起動済みの場合（ステップＳ２００８：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１１へ移行する。一方、起動済みでない場合（ステップＳ２００８：Ｎｏ）、ＰＭＵ３０２によって、バッテリ３０３の残量＞閾値であるか否かを判断する（ステップＳ２００９）。
【０１００】
バッテリ３０３の残量＞閾値である場合（ステップＳ２００９：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２０１０）。そして、通信ノード１０１は、ＭＣＵ３０５と送信装置３１１によって、隣接ノード確認信号ｓ１に対する応答信号ｓ２を送信し（ステップＳ２０１１）、ステップＳ２０１２へ移行する。一方、ステップＳ２００９において、バッテリ３０３の残量＞閾値でない場合（ステップＳ２００９：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２０１２へ移行する。
【０１０１】
センシングイベントが発生した場合（ステップＳ２００１：センシング）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２１０１）。通信ノード１０１は、ＭＣＵ３０５によって、バッテリ３０３の残量＞起動閾値であるか否かを判断する（ステップＳ２１０２）。バッテリ３０３の残量＞起動閾値でない場合（ステップＳ２１０２：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。バッテリ３０３の残量＞起動閾値である場合（ステップＳ２１０２：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、並列展開可能ノード数≧最大並列度であるか否かを判断する（ステップＳ２１０３）。
【０１０２】
並列展開可能ノード数≧最大並列度である場合（ステップＳ２１０３：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、並列展開可能ノードから、距離の近い順に最大並列度の並列展開可能ノードを依頼先として選択する（ステップＳ２１０４）。
【０１０３】
通信ノード１０１は、ＭＣＵ３０５によって、各部分処理の所要ホップ数を特定する（ステップＳ２１０５）。そして、通信ノード１０１は、ＭＣＵ３０５によって、選択した並列展開可能ノードに対する、距離と部分処理の所要ホップ数に基づいて、部分処理の割り当てを決定する（ステップＳ２１０６）。そして、通信ノード１０１は、ＭＣＵ３０５によって、選択した並列展開可能ノードについての距離に基づいて、送信強度を算出する（ステップＳ２１０７）。つぎに、通信ノード１０１は、ＭＣＵ３０５と送信装置３１１によって、算出した送信強度によって並列展開処理依頼を送信し（ステップＳ２１０８）、ステップＳ２０１２へ移行する。
【０１０４】
並列展開可能ノード数≧最大並列度でない場合（ステップＳ２１０３：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、すべての並列展開可能ノードを依頼先として選択する（ステップＳ２２０１）。つぎに、通信ノード１０１は、ＭＣＵ３０５によって、「割り当て処理単位＝並列度／並列展開可能ノード数」とする（ステップＳ２２０２）。そして、通信ノード１０１は、ＭＣＵ３０５によって、各部分処理の所要ホップ数を特定する（ステップＳ２２０３）。つづけて、通信ノード１０１は、ＭＣＵ３０５によって、選択した並列展開可能ノードに対する、距離と部分処理の所要ホップ数に基づいて、部分処理の割り当てを決定する（ステップＳ２２０４）。
【０１０５】
そして、通信ノード１０１は、ＭＣＵ３０５によって、「並列度／並列展開可能ノード数」の余り＝０であるか否かを判断する（ステップＳ２２０５）。「並列度／並列展開可能ノード数」の余り＝０でない場合（ステップＳ２２０５：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、距離が近い通信ノード１０１順に残余の部分処理の割り当てを決定し（ステップＳ２２０６）、ステップＳ２１０７へ移行する。残余の部分処理は、依頼先が決定していない部分処理である。「並列度／並列展開可能ノード数」の余り＝０である場合（ステップＳ２２０５：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２１０７へ移行する。
【０１０６】
また、並列展開処理依頼信号ｓ３を受信した場合（ステップＳ２００１：並列展開処理依頼信号の受信）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動済みか否かを判断する（ステップＳ２３０１）。起動済みである場合（ステップＳ２３０１：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２３０４へ移行する。
【０１０７】
起動済みでない場合（ステップＳ２３０１：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、バッテリ３０３の残量＞起動閾値であるか否かを判断する（ステップＳ２３０２）。バッテリ３０３の残量＞起動閾値でない場合（ステップＳ２３０２：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２０１２へ移行する。バッテリ３０３の残量＞起動閾値である場合（ステップＳ２３０２：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２３０３）。そして、通信ノード１０１は、ＭＣＵ３０５によって、依頼先が自通信ノード１０１か否かを判断する（ステップＳ２３０４）。ここでの依頼先の識別情報は、並列展開処理依頼信号ｓ３に含まれる「Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤ」である。依頼先の識別情報が自通信ノード１０１を示さない場合（ステップＳ２３０４：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。
【０１０８】
依頼先の識別情報が自通信ノード１０１を示す場合（ステップＳ２３０４：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅ＝２とする（ステップＳ２３０５）。そして、通信ノード１０１は、ＭＣＵ３０５によって、ホップカウンターの値≦所要ホップ数であるか否かを判断する（ステップＳ２３０６）。ホップカウンターの値≦所要ホップ数でない場合（ステップＳ２３０６：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２３０８へ移行する。
【０１０９】
ホップカウンターの値≦所要ホップ数である場合（ステップＳ２３０６：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、依頼されたデータ処理の実行を行う（ステップＳ２３０７）。その後、通信ノード１０１は、ＭＣＵ３０５によって、ホップカウンターの値をインクリメントする（ステップＳ２３０８）。
【０１１０】
つぎに、通信ノード１０１は、ＭＣＵ３０５によって、処理依頼時隣接ノード確認信号ｓ４を並列展開可能ノードへ送信する（ステップＳ２４０１）。通信ノード１０１は、ＭＣＵ３０５と受信装置３１０によって、処理依頼時隣接ノード確認信号ｓ４を送信してから一定時間内に応答信号ｓ５を受信したか否かを判断する（ステップＳ２４０２）。一定時間内の場合（ステップＳ２４０２：一定時間内）、通信ノード１０１は、ＭＣＵ３０５と受信装置３１０によって、ステップＳ２４０２へ戻る。一定時間経過した場合（ステップＳ２４０２：一定時間経過）、通信ノード１０１は、ＭＣＵ３０５によって、各応答信号ｓ５の受信強度に基づき、各応答信号ｓ５の送信元と自通信ノード１０１との距離を算出する（ステップＳ２４０３）。
【０１１１】
通信ノード１０１は、ＭＣＵ３０５によって、最短距離である送信元を依頼先の通信ノード１０１として選択する（ステップＳ２４０４）。そして、通信ノード１０１は、ＭＣＵ３０５によって、選択した通信ノード１０１の距離に基づき送信強度を算出する（ステップＳ２４０５）。通信ノード１０１は、ＭＣＵ３０５と送信装置３１１によって、算出した送信強度によって処理引き継ぎ依頼信号ｓ６を選択した通信ノード１０１へ送信する（ステップＳ２４０６）。そして、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅ＝０とし（ステップＳ２４０７）、ステップＳ２０１２へ移行する。
【０１１２】
また、処理引き継ぎ依頼信号ｓ６を受信した場合（ステップＳ２００１：処理引き継ぎ依頼信号の受信）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動済みか否かを判断する（ステップＳ２５０１）。起動済みである場合（ステップＳ２５０１：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２５０４へ移行する。
【０１１３】
起動済みでない場合（ステップＳ２５０１：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、バッテリ３０３の残量＞起動閾値であるか否かを判断する（ステップＳ２５０２）。バッテリ３０３の残量＞起動閾値でない場合（ステップＳ２５０２：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２０１２へ移行する。バッテリ３０３の残量＞起動閾値である場合（ステップＳ２５０２：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２５０３）。そして、通信ノード１０１は、ＭＣＵ３０５によって、依頼先が自通信ノード１０１であるか否かを判断する（ステップＳ２５０４）。
【０１１４】
依頼先が自通信ノード１０１である場合（ステップＳ２５０４：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２３０５へ移行する。依頼先が自通信ノード１０１でない場合（ステップＳ２５０４：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅが「１」であるか否かを判断する（ステップＳ２５０５）。
【０１１５】
ｓｔａｔｅが「１」でない場合（ステップＳ２５０５：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。ｓｔａｔｅが「１」である場合（ステップＳ２５０５：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、依頼元が記憶した処理引き継ぎ元ノードと同一か否かを判断する（ステップＳ２５０６）。依頼元が記憶した処理引き継ぎ元ノードと同一である場合（ステップＳ２５０６：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅ＝０とし（ステップＳ２５０７）、ステップＳ２０１２へ移行する。依頼元が記憶した処理引き継ぎ元ノードと同一でない場合（ステップＳ２５０６：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。
【０１１６】
処理依頼隣接ノード確認信号ｓ４を受信した場合（ステップＳ２００１：処理依頼隣接ノード確認信号の受信）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動済みか否かを判断する（ステップＳ２６０１）。起動済みである場合（ステップＳ２６０１：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２６０４へ移行する。
【０１１７】
起動済みでない場合（ステップＳ２６０１：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、バッテリ３０３の残量＞起動閾値であるか否かを判断する（ステップＳ２６０２）。バッテリ３０３の残量＞起動閾値でない場合（ステップＳ２６０２：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２０１２へ移行する。一方、バッテリ３０３の残量＞起動閾値である場合（ステップＳ２６０２：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２６０３）。そして、通信ノード１０１は、ＭＣＵ３０５によって、隣接ノードが自通信ノード１０１か否かを判断する（ステップＳ２６０４）。ここでの隣接ノードは、処理依頼隣接ノード確認信号ｓ４に含まれる「Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤ」が示す通信ノード１０１である。隣接ノードが自通信ノード１０１でない場合（ステップＳ２６０４：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。
【０１１８】
隣接ノードが自通信ノード１０１である場合（ステップＳ２６０４：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅが「０」であるか否かを判断する（ステップＳ２６０５）。ｓｔａｔｅが「０」でない場合（ステップＳ２６０５：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。ｓｔａｔｅが「０」である場合（ステップＳ２６０５：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅを「１」に設定する（ステップＳ２６０６）。通信ノード１０１は、ＭＣＵ３０５によって、処理依頼時隣接ノード確認信号ｓ４の送信元を処理引き継ぎ元ノードとして記憶する（ステップＳ２６０７）。そして、通信ノード１０１は、ＭＣＵ３０５と送信装置３１１によって、処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５を送信元へ送信し（ステップＳ２６０８）、ステップＳ２０１２へ移行する。
【０１１９】
以上説明したように、本実施の形態にかかる通信ノードが、応答可能か否かの確認信号に対する応答信号の受信強度に基づいて、データ処理の依頼信号の送信先および送信強度を決定する。これにより、より近いと推定される通信ノードへ少ない電力で依頼信号を送信することができる。したがって、適切な通信相手にデータ処理を実行させることができ、無線送信による消費電力を低減することができる。
【０１２０】
また、本実施の形態にかかる通信ノードは、応答信号の受信強度に基づいて応答信号の送信元と自通信ノードとの距離を算出し、当該送信元から距離が近い順にデータ処理を依頼する通信ノードを決定する。これにより、距離がより近い通信ノードへ少ない電力で依頼信号を送信することができ、無線送信による消費電力を低減させることができる。
【０１２１】
また、本実施の形態にかかる通信ノードは、応答信号の受信強度に基づいて、依頼先の通信ノードと自通信ノードとの間で通信可能な送信強度の中で、最小の送信強度を算出する。これにより、最小限の電力で依頼信号を送信することができ、無線送信による消費電力を低減させることができる。
【０１２２】
また、データ処理は、所定数の部分処理に分割して並列処理可能なデータ処理である場合、本実施の形態にかかる通信ノードは、応答信号の受信強度に基づいて、応答信号の送信元から所定数以下の通信ノードを部分処理の依頼先として選択する。これにより、並列処理可能なデータ処理を複数の通信ノードに分散させることができる。
【０１２３】
また、本実施の形態にかかる通信ノードは、依頼先の通信ノードを選択する際に、応答信号の送信元の通信ノード数が所定数より多い場合、応答信号の受信強度に基づいて、応答信号の送信元から所定数の通信ノードをデータ処理の依頼先として選択する。また、通信ノードは、依頼先の通信ノードを選択する際に、応答信号の送信元の通信ノード数が所定数以下の場合、応答信号の送信元をすべてデータ処理の依頼先として選択する。これにより、データ処理をより多く分散させることができ、データ処理の実行とデータ処理の処理結果の転送とを依頼する依頼信号の送受信に要する電力量を低減させることができる。
【０１２４】
また、本実施の形態にかかる通信ノードは、応答信号の受信強度と、所定数の部分処理の各々の処理量に応じた情報と、に基づいて、データ処理の依頼先として選択した通信ノードの各々に所定数のデータ処理のいずれを依頼するかを決定する。通信ノードは、応答信号の受信強度が大きい順に所定数の部分処理のうちの依頼される部分処理の処理量が最も多くなるように、データ処理の依頼先として選択した通信ノードの各々に所定数のデータ処理のいずれを依頼するかを決定する。
【０１２５】
また、本実施の形態にかかる通信ノードは、依頼されたデータ処理の実行が終了した場合、処理結果を集約する通信装置へ処理結果の転送を依頼する依頼信号を送信する。これにより、処理結果を通信装置まで転送させることができる。
【０１２６】
また、本実施の形態にかかる通信ノードは、依頼されたデータ処理の一部の実行が終了した場合、処理結果を集約する通信装置へ処理結果の転送と、データ処理の残余の処理の実行と、を依頼する依頼信号を送信する。これにより、最小限の電力で処理の引き継ぎを依頼する依頼信号を送信することができ、無線送信による消費電力を低減させることができる。
【０１２７】
また、本実施の形態にかかる通信ノードが、受信強度を与えると送信強度が得られる関数に、応答可能か否かの確認信号に対する応答信号の受信強度を与えることにより、データ処理の依頼信号の送信先への送信強度を得られる。
【０１２８】
また、本実施の形態にかかる通信ノードが、応答可能か否かの確認信号に対する応答信号の受信強度に基づいてデータ処理の依頼信号の送信先を選択し、選択した送信先への送信強度を制御する。これにより、適切な通信相手にデータ処理を実行させることができる。
【０１２９】
また、本実施の形態にかかる通信ノードは、確認信号を受信しても、バッテリの残量が少ない場合、確認信号に対する応答信号を送信しない。これにより、バッテリ切れによってデータ処理の実行が中断することを防ぎ、データ処理の処理結果をより早く通信装置へ転送させることができる。
【符号の説明】
【０１３０】
１０１  通信ノード
２００  システム
２０１  通信装置
９００  制御部
９０１  第１受信部
９０２  第２受信部
９０３  第１送信部
９０４  第２送信部
９０５  信号種別判断部
９０６  並列展開ノード設定部
９０７  距離算出部
９０８  選択部
９０９  決定部
９１０  強度算出部
９１１  ノードステート制御部
９１２  バッテリ判断部
９１３  ホップカウンター判断部
９１４  実行部
９１５  ホップカウンター制御部
９１６  タイマ制御部
９１７  パケット生成部
ｓ１  隣接ノード確認信号
ｓ２，ｓ５  応答信号
ｓ３  並列展開処理依頼信号
ｓ４  処理依頼時隣接ノード確認信号
ｓ６  処理引き継ぎ依頼信号
【図１】
2014188550.tif 000011
【図２】
2014188550.tif 000012
【図３】
2014188550.tif 000013
【図４】
2014188550.tif 000014
【図５】
2014188550.tif 000015
【図６】
2014188550.tif 000016
【図７】
2014188550.tif 000017
【図８】
2014188550.tif 000018
【図９】
2014188550.tif 000019
【図１０】
2014188550.tif 000020
【図１１】
2014188550.tif 000021
【図１２】
2014188550.tif 000022
【図１３】
2014188550.tif 000023
【図１４】
2014188550.tif 000024
【図１５】
2014188550.tif 000025
【図１６】
2014188550.tif 000026
【図１７】
2014188550.tif 000027
【図１８】
2014188550.tif 000028
【図１９】
2014188550.tif 000029
【図２０】
2014188550.tif 000030
【図２１】
2014188550.tif 000031
【図２２】
2014188550.tif 000032
【図２３】
2014188550.tif 000033
【図２４】
2014188550.tif 000034
【図２５】
2014188550.tif 000035
【図２６】
2014188550.tif 000036
【手続補正書】
【提出日】平成27年11月17日(2015.11.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の通信ノードへ、応答可能か否かの確認信号を送信する第１送信部と、
前記複数の通信ノードのうちの応答可能な第１通信ノードからの、前記第１送信部が送信した前記確認信号に対する応答信号を受信する受信部と、
前記受信部が受信した前記応答信号の受信強度に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択する選択部と、
前記選択部が選択した前記第２通信ノードからの前記応答信号の受信強度に基づいて、前記第２通信ノードへの送信強度を算出する強度算出部と、
前記データ処理の実行を依頼する依頼信号を前記強度算出部が算出した前記送信強度に基づいて前記第２通信ノードへ送信する第２送信部と、
を有することを特徴とする通信ノード。
【請求項２】
前記強度算出部は、前記第２通信ノードと自通信ノードとの間で直接通信可能な送信強度の中で、最小の送信強度を算出することを特徴とする請求項１に記載の通信ノード。
【請求項３】
前記データ処理は、自通信ノードのイベントに応じたデータ処理であって、所定数の部分処理に分割して並列処理可能なデータ処理であり、
前記選択部は、前記受信部が受信した前記応答信号の受信強度に基づいて、前記第１通信ノードから前記所定数以下の第２通信ノードを選択し、
前記第２送信部は、前記選択部が選択した前記第２通信ノードの各々に前記所定数の部分処理のうちの異なる部分処理を依頼する依頼信号を送信することを特徴とする請求項１または２に記載の通信ノード。
【請求項４】
前記選択部は、前記第２通信ノードを選択する際に、前記第１通信ノードの数が前記所定数より多い場合、前記受信部によって受信された前記応答信号の受信強度に基づいて、前記所定数の第１通信ノードを選択し、前記第１通信ノードの数が前記所定数以下の場合、前記第１通信ノードのすべてを選択することを特徴とする請求項３に記載の通信ノード。
【請求項５】
前記受信部が受信した前記応答信号の受信強度と、前記所定数の部分処理の各々の処理量に応じた情報と、に基づいて、前記選択部が選択した前記第２通信ノードの各々に前記所定数のデータ処理のいずれを依頼するかを決定する決定部を有し、
前記第２送信部は、前記第２通信ノードの各々へ、前記第２通信ノードについて前記決定部が決定したデータ処理を依頼する依頼信号を送信することを特徴とする請求項３または４に記載の通信ノード。
【請求項６】
前記決定部は、前記応答信号の受信強度が大きい順に前記所定数の部分処理のうちの依頼される部分処理の前記処理量が最も多くなるように、前記第２通信ノードの各々に前記所定数のデータ処理のいずれを依頼するかを決定することを特徴とする請求項５に記載の通信ノード。
【請求項７】
データ処理の実行を依頼する依頼信号を前記複数の通信ノードのうちの第３通信ノードから受信する第２受信部と、
前記第２受信部が受信した前記依頼信号によって依頼されたデータ処理を実行する実行部と、
を有し、
前記第２送信部は、前記実行部が実行した前記データ処理の処理結果を集約する通信装置への前記処理結果の転送を依頼する依頼信号を前記選択部が選択した前記第２通信ノードへ送信することを特徴とする請求項１または２に記載の通信ノード。
【請求項８】
データ処理の実行を依頼する依頼信号を前記複数の通信ノードのうちの第３通信ノードから受信する第２受信部と、
前記依頼信号によって依頼されたデータ処理うちの一部の処理を実行する実行部と、
を有し、
前記第２送信部は、前記データ処理の処理結果を集約する通信装置への前記実行部が実行した前記一部の処理の処理結果の転送と、前記データ処理のうちの前記一部の処理以外の処理の実行と、を依頼する依頼信号を、前記選択部が選択した前記第２通信ノードへ送信することを特徴とする請求項１または２に記載の通信ノード。
【請求項９】
自発電した電力を蓄電する蓄電部と、
前記複数の通信ノードのうちの第３通信ノードから、自通信ノードが応答可能か否かの第２確認信号を受信する第２受信部と、
前記第２受信部が前記第２確認信号を受信すると、前記蓄電部に蓄電された電力量が閾値以上か否かを判断する判断部と、
を有し、
前記第２送信部は、前記電力量が前記閾値以上であると前記判断部が判断した場合、前記第２確認信号に対する応答信号を前記第３通信ノードへ送信し、前記電力量が前記閾値未満であると前記判断部が判断した場合、前記第２確認信号に対する応答信号を前記第３通信ノードへ送信しないことを特徴とする請求項１または２に記載の通信ノード。
【請求項１０】
前記強度算出部は、
前記選択部が選択した前記第２通信ノードからの前記応答信号の受信強度を、前記応答信号の受信強度を与えると自通信ノードから前記第２通信ノードへ前記依頼信号が到達可能な送信強度が得られる関数に与えることにより、前記第２通信ノードへの送信強度を算出することを特徴とする請求項１〜９のいずれか一つに記載の通信ノード。
【請求項１１】
複数の通信ノードと、
前記複数の通信ノードからデータ処理の処理結果を集約する通信装置と、
を有するシステムであって、
前記複数の通信ノードのうちの第１通信ノードが、
複数の第２通信ノードへ、応答可能か否かの確認信号を送信し、
前記複数の第２通信ノードのうちの応答可能な第３通信ノードからの、送信した前記確認信号に対する応答信号を受信し、
受信した前記応答信号の受信強度に基づいて、前記第１通信ノードからデータ処理の実行を依頼する第４通信ノードを前記第３通信ノードから選択し、
選択した前記第４通信ノードからの前記応答信号の受信強度に基づいて、前記第４通信ノードへの送信強度を算出し、
前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第４通信ノードへ送信することを特徴とするシステム。
【請求項１２】
通信ノードが、
複数の通信ノードへ、応答可能か否かの確認信号を送信し、
前記複数の通信ノードのうちの応答可能な第１通信ノードからの、送信した前記確認信号に対する応答信号を受信し、
受信した前記応答信号の受信強度に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択し、
選択した前記第２通信ノードからの前記応答信号の受信強度に基づいて、前記第２通信ノードへの送信強度を算出し、
前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第２通信ノードへ送信する、
処理を実行することを特徴とする通信方法。
【請求項１３】
通信ノードは、
複数の通信ノードへ、応答可能か否かの確認信号を送信し、
前記複数の通信ノードのうちの応答可能な第１通信ノードからの、送信した前記確認信号に対する応答信号を受信し、
受信した前記応答信号の受信強度に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択し、
選択した前記第２通信ノードからの前記応答信号の受信強度に基づいて、前記第２通信ノードへの送信強度を算出し、
前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第２通信ノードへ送信する、
処理を実行させることを特徴とする通信プログラム。
【請求項１４】
応答可能か否かを示す確認信号を送信する第１送信部と、
前記確認信号を受信した複数の通信ノードから、応答可能であることを示す応答信号を受信する受信部と、
前記受信部が受信した前記応答信号の受信強度に基づき前記複数の通信ノードから選択した、データ処理を依頼する依頼先通信ノードへの送信強度を設定する制御部と、
設定した前記送信強度に基づき、前記依頼先通信ノードへデータ処理を依頼する依頼信号を送信する第２送信部と、
を有することを特徴とする通信ノード。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ノード、システム、通信方法、および通信プログラムに関する。
【背景技術】
【０００２】
従来、無線通信手段を用いてワイヤレス通信によって接続された複数の通信ノードによって無線ネットワークが形成される技術がある（たとえば、下記特許文献１参照。）。また、無線ネットワークにおいて、離れた２つの通信ノード間で通信を行うために、他の通信ノードを中継するマルチホップ通信がある（たとえば、下記特許文献２参照。）。このような無線ネットワークでは、無線による通信ノード間の接続関係が頻繁に変化する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２８８２７６号公報
【特許文献２】特開２００８−１９３４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、通信ノードが他の通信ノードへデータ処理を依頼する依頼信号を無線送信する際、依頼信号のデータ量が大きいと、無線送信に要する消費電力量が大きくなるという問題点がある。
【０００５】
１つの側面では、本発明は、適切な通信相手にデータ処理を実行させることができる通信ノード、システム、通信方法、および通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一の側面によれば、複数の通信ノードへ、応答可能か否かの確認信号を送信し、前記複数の通信ノードのうちの応答可能な第１通信ノードからの、送信した前記確認信号に対する応答信号を受信し、受信した前記応答信号の受信強度に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択し、選択した前記第２通信ノードからの前記応答信号の受信強度に基づいて、前記第２通信ノードへの送信強度を算出し、前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第２通信ノードへ送信する通信ノード、通信方法、および通信プログラムが提案される。
【０００７】
本発明の他の側面によれば、複数の通信ノードと、前記複数の通信ノードからデータ処理の処理結果を集約する通信装置と、を有するシステムであって、前記複数の通信ノードのうちの第１通信ノードが、複数の第２通信ノードへ、応答可能か否かの確認信号を送信し、前記複数の第２通信ノードのうちの応答可能な第３通信ノードからの、送信した前記確認信号に対する応答信号を受信し、受信した前記応答信号の受信強度に基づいて、前記第１通信ノードからデータ処理の実行を依頼する第４通信ノードを前記第３通信ノードから選択し、選択した前記第４通信ノードからの前記応答信号の受信強度に基づいて、前記第４通信ノードへの送信強度を算出し、前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第４通信ノードへ送信するシステムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、適切な通信相手にデータ処理を実行させることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、通信ノードによる一動作例を示す説明図である。
【図２】図２は、システム例を示す説明図である。
【図３】図３は、通信ノードのハードウェア構成例を示す説明図である。
【図４】図４は、通信装置のハードウェア構成例を示す説明図である。
【図５】図５は、パラメータ例を示す図表である。
【図６】図６は、配置領域の面積例を示す説明図である。
【図７】図７は、運用前に通信ノードに設定される通信距離の例を示す説明図である。
【図８】図８は、パケットのフォーマット例を示す説明図である。
【図９】図９は、運用中の通信ノードの機能的構成例を示すブロック図である。
【図１０】図１０は、隣接ノード確認信号の送信例を示す説明図である。
【図１１】図１１は、隣接ノード確認信号に対する応答信号の送信例を示す説明図である。
【図１２】図１２は、通信ノード間の距離の算出を行う関数例を示す説明図である。
【図１３】図１３は、各部分処理と部分処理の処理量に応じた情報とを示す説明図である。
【図１４】図１４は、選択および決定例１を示す説明図である。
【図１５】図１５は、選択および決定例２を示す説明図である。
【図１６】図１６は、送信強度の算出例を示す説明図である。
【図１７】図１７は、処理引き継ぎ依頼例を示す説明図（その１）である。
【図１８】図１８は、処理引き継ぎ依頼例を示す説明図（その２）である。
【図１９】図１９は、処理引き継ぎ依頼信号の転送例を示す説明図である。
【図２０】図２０は、通信ノードによる通信処理手順例を示すフローチャート（その１）である。
【図２１】図２１は、通信ノードによる通信処理手順例を示すフローチャート（その２）である。
【図２２】図２２は、通信ノードによる通信処理手順例を示すフローチャート（その３）である。
【図２３】図２３は、通信ノードによる通信処理手順例を示すフローチャート（その４）である。
【図２４】図２４は、通信ノードによる通信処理手順例を示すフローチャート（その５）である。
【図２５】図２５は、通信ノードによる通信処理手順例を示すフローチャート（その６）である。
【図２６】図２６は、通信ノードによる通信処理手順例を示すフローチャート（その７）である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる通信ノード、システム、通信方法、および通信プログラムの実施の形態を詳細に説明する。
【００１１】
図１は、通信ノードによる一動作例を示す説明図である。複数の通信ノード１０１は所定領域に配置される。所定領域は、たとえば、コンクリート、土、水、空気などの物質で満たされた領域である。各通信ノード１０１はハーベスタとバッテリとを搭載し、ハーベスタによって得られた電力をバッテリに充電する。たとえば、通信ノード１０１−１は、複数の通信ノード１０１へ、応答可能か否かの確認信号ｓ１を送信する。ここでは、通信ノード１０１−１は、一定の強度により確認信号を送信する。そのため、一定の強度により定まる距離よりも遠くにある通信ノード１０１には確認信号ｓ１が到達しない。たとえば、通信ノード１０１−２〜１０１−６は通信ノード１０１−１からの確認信号ｓ１が到達可能な位置にある。
【００１２】
通信ノード１０１−１は、複数の通信ノード１０１のうちの応答可能な第１通信ノード１０１からの、送信された確認信号ｓ１に対する応答信号ｓ２を受信する。ここで、第１通信ノード１０１は、通信ノード１０１−２と通信ノード１０１−３と通信ノード１０１−５と、である。故障中の通信ノード１０１やバッテリの残量が不十分である通信ノード１０１は、確認信号ｓ１に対する応答が行えないため、応答信号ｓ２を送信しない。バッテリの残量が不十分とは、例えば、後述する依頼信号ｓ３の受信と、依頼信号ｓ３が依頼するデータ処理の実行と、に要する電力量を満たさないことを示す。
【００１３】
つぎに、通信ノード１０１−１は、受信した応答信号ｓ２の受信強度に基づいて、自通信ノード１０１からデータ処理の実行を依頼する第２通信ノード１０１を第１通信ノード１０１から選択する。ここで、受信強度とは、受信した信号の強度を示す。受信強度は、たとえば、ＲＳＳＩ（Ｒｅｃｅｉｖｅｄ  Ｓｉｇｎａｌ  Ｓｔｒｅｎｇｔｈ  Ｉｎｄｉｃａｔｏｒ）であり、受信電力［ｄＢｍ］である。受信強度は、たとえば、アンテナから得ることができる。たとえば、応答信号ｓ２の送信強度が同一であると、受信強度の損失が大きい通信ノード１０１ほど、自通信ノード１０１との距離が遠く、受信強度の損失が小さい通信ノード１０１ほど、自通信ノード１０１との距離が近い。そのため、受信強度の損失が小さい通信ノード１０１にデータ処理を依頼する際の送信強度を小さくすることができる。そこで、たとえば、通信ノード１０１−１は、受信強度の損失が最も小さい通信ノード１０１を選択する。ここでは、通信ノード１０１−１は第２通信ノード１０１として通信ノード１０１−５を選択する。
【００１４】
通信ノード１０１−１は、選択した第２通信ノード１０１からの応答信号ｓ２の受信強度に基づいて、第２通信ノード１０１への送信強度を算出する。ここで、送信強度とは、送信する信号の強度を示す。具体的には、通信ノード１０１−１は、応答信号ｓ２の受信強度を与えると、通信ノード１０１−１から応答信号ｓ２の送信元へ依頼信号ｓ３が到達可能な送信強度が得られる関数に基づいて算出する。依頼信号ｓ３は、データ処理の実行を依頼する信号である。また、たとえば、関数は、応答信号ｓ２の受信強度を与えると、通信ノード１０１−１から応答信号ｓ２の送信元へ依頼信号ｓ３が到達可能な送信強度の中で、最小な送信強度が得られる。関数は、予め通信ノード１０１内の記憶装置に記憶される。関数は、後述する第１関数から第４関数の合成関数である。
【００１５】
また、通信ノード１０１−１は、応答信号ｓ２の受信強度と、通信ノード１０１−１から応答信号ｓ２の送信元へ依頼信号ｓ３が到達可能な送信強度と、が対応付けられたテーブルに、応答信号ｓ２の受信強度を与える。これにより、通信ノード１０１−１は、第２通信ノード１０１への送信強度を算出してもよい。また、例えば、テーブルは、通信ノード１０１−１から応答信号ｓ２の送信元へ依頼信号ｓ３が到達可能な送信強度の中で、最小な送信強度が得られるように作成される。例えば、テーブルは、予め通信ノード１０１内の記憶装置に記憶される。つぎに、通信ノード１０１−１は、依頼信号ｓ３を算出した送信強度に基づいて第２通信ノード１０１へ送信する。
【００１６】
これにより、より近いと推定される通信ノードへ少ない電力で依頼信号を送信することができる。したがって、適切な通信相手にデータ処理を実行させることができ、無線送信による消費電力を低減することができる。
【００１７】
図２は、システム例を示す説明図である。システム２００は、たとえば、センサーネットワークＳＮＥＴと、通信装置２０１と、ＰＣと、などを有するセンサーネットワークシステムである。
【００１８】
センサーネットワークＳＮＥＴは複数の通信ノード１０１を有する。複数の通信ノード１０１は、無線通信端末であって、上述したような所定領域内に配置される。通信ノード１０１は、所定領域内に数百個〜数万個配置されることとする。通信ノード１０１は広範囲に設置されるため、すべての通信ノード１０１が通信装置２０１と直接データの送受信を行うことができない。そこで、システム２００では、センシング結果に対応するデータ処理の処理結果は、他の通信ノード１０１を経由してマルチホッピング通信によって通信装置２０１に到達することとする。
【００１９】
また、本実施の形態では、データ処理が複数の部分処理に分割して並列処理可能なデータ処理とする。そのため、本実施の形態では、センシングイベントに応じたデータ処理を複数の通信ノード１０１に分散して並列処理させ、データ処理の処理結果を複数の通信ノード１０１の間でのマルチホップ通信により通信装置２０１まで転送する。通信装置２０１は、複数の通信ノード１０１の少なくともいずれかのデータ処理の処理結果を集約する。サーバ２０２や利用者端末２０３は、たとえば、通信装置２０１から集約結果の受け付け、通信装置２０１への指示などを行う。
【００２０】
図３は、通信ノードのハードウェア構成例を示す説明図である。通信ノード１０１は、複数のハーベスタ３０１−１〜３０１−ｎと、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）３０２と、バッテリ３０３と、複数のセンサー３０４−１〜３０４−ｍと、ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）３０５と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０６と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０７と、不揮発メモリ３０８と、受信装置３１０と、送信装置３１１と、を有する。
【００２１】
各センサー３０４は、設置箇所における所定の変位量を検出する。センサー３０４は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。
【００２２】
受信装置３１０と送信装置３１１は、アンテナと無線通信回路（ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ））と、を有する。受信装置３１０は、アンテナにより無線電波を受信して受信信号として出力する受信部である。送信装置３１１は、送信信号を無線電波としてアンテナを介して送信する送信部である。送信装置３１１は、たとえば、送信強度をＭＣＵ３０５によって調整可能とする。
【００２３】
ＭＣＵ３０５は、センサー３０４が検出したセンシング結果に応じたデータ処理の実行を周辺の通信ノード１０１へ依頼する。ＲＡＭ３０６は、ＭＣＵ３０５における処理の一時データを格納する。たとえば、ＲＡＭ３０６には、ｓｔａｔｅが格納される。ｓｔａｔｅは、データ処理の依頼状態を管理する情報である。ｓｔａｔｅが「０」の場合、いずれの通信ノード１０１からもデータ処理の実行や処理結果の転送が依頼されていない状態であることを示す。ｓｔａｔｅが「１」の場合、後述する処理依頼時隣接ノード確認信号に対する応答信号を送信したことを示す。ｓｔａｔｅが「２」の場合、後述する処理引き継ぎ依頼信号または並列展開処理依頼信号によってデータ処理の実行または処理結果の転送を依頼されたことを示す。
【００２４】
ＲＯＭ３０７は、ＭＣＵ３０５が実行する処理プログラムや後述する第１関数から第４関数などを格納する。第１関数と第２関数の合成関数は、たとえば、受信強度に基づいて通信ノード１０１間の距離を算出可能な関数であり、第３関数と第４関数の合成関数は、通信ノード１０１間の距離に基づいて送信強度を算出可能な関数である。
【００２５】
不揮発メモリ３０８は、書き込み可能なメモリであって、電力供給が途絶えたときなどにおいても書き込まれた所定のデータを保持する。たとえば、書き込み可能な不揮発メモリ３０８は、フラッシュメモリが挙げられる。不揮発メモリ３０８には、たとえば、並列展開可能ノードを示す情報と、処理引き継ぎ元ノードを示す情報と、データ処理のプログラムと、通信プログラムと、などが記憶される。
【００２６】
ハーベスタ３０１は、通信ノード１０１の設置箇所における外部環境、たとえば、光、振動、温度、無線電波（受信電波）などのエネルギー変化に基づき発電を行う。ハーベスタ３０１は、複数設けられていてもよい。ハーベスタ３０１は、センサー３０４によって検出された変位量に応じて発電を行ってもよい。バッテリ３０３は、ハーベスタ３０１により発電された電力を蓄える蓄電部である。すなわち、通信ノード１０１は、二次電池や外部電源などが不要であり、各構成要素の動作のための電力を自通信ノード１０１の内部で生成する。
【００２７】
ＰＭＵ３０２は、バッテリ３０３によって蓄えられた電力を、通信ノード１０１の各部に駆動電源として供給する制御を行う。また、ＰＭＵ３０２は、受信装置３１０による信号の受信イベント、各センサー３０４によるセンシングイベント、タイマによる起動イベントなどのイベントの発生を検出する。そして、ＰＭＵ３０２は、各種イベントの発生を検出すると、ＭＣＵ３０５の起動を制御する。たとえば、ＰＭＵ３０２は、バッテリ３０３の残量がＭＣＵ３０５の起動に要する電力量よりも少なければ、ＭＣＵ３０５を起動させず、バッテリ３０３の残量がＭＣＵ３０５の起動に要する電力量よりも多ければ、ＭＣＵ３０５を起動させる。
【００２８】
図４は、通信装置のハードウェア構成例を示す説明図である。通信装置２０１は、通信ノード１０１と異なり、外部電源に基づき動作する。通信装置２０１は、通信ノード１０１のＭＣＵ３０５よりも高性能なＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１と、大容量のＲＯＭ４０２、ＲＡＭ４０３、および不揮発メモリ４０４と、インターフェースとなるＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）回路４０５と、を有する。通信装置２０１は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、不揮発メモリ４０４と、Ｉ／Ｏ回路４０５と、を接続するバス４０９を有する。
【００２９】
ここで、ＣＰＵ４０１は、通信装置２０１の全体の制御を司る。ＣＰＵ４０１は、ＲＯＭ４０２、ＲＡＭ４０３、不揮発メモリ４０４などの記憶装置に記憶されているプログラムなどの各種プログラムを実行することにより、記憶装置内のデータを読み出したり、実行結果となるデータを記憶装置に書き込んだりする。
【００３０】
また、Ｉ／Ｏ回路４０５には、無線通信回路（ＲＦ）４０６およびアンテナ４０７と、ネットワークＩ／Ｆ４０８と、が接続されている。これにより、通信装置２０１は、無線通信回路４０６およびアンテナ４０７を介して、通信ノード１０１と無線通信することができる。さらに、通信装置２０１は、ネットワークＩ／Ｆ４０８を介して、ＴＣＰ／ＩＰのプロトコル処理などにより、インターネットなどのネットワークＮＥＴを介してサーバ２０２や利用者端末２０３などの外部装置と通信を行うことができる。また、図示していないが、通信装置２０１はディスプレイやキーボード、またはタッチパネル式のディスプレイなどの入力装置や出力装置を有していてもよい。
【００３１】
（通信ノード１０１の配置前）
まず、通信ノード１０１の仕様およびプログラムの仕様から、通信ノード１０１の配置数や通信距離の設定が行われる。具体的には、通信装置２０１または利用者端末２０３などによって行われるが、ここでは、通信装置２０１によって行うこととする。つぎに、通信ノード１０１の配置数および通信距離の算出に用いられるパラメータと配置領域の面積例をそれぞれ図５と図６に示す。
【００３２】
図５は、パラメータ例を示す図表である。図６は、配置領域の面積例を示す説明図である。Ｃはバッテリ容量であり、Ｖは電圧であり、Ｒは単位データ量あたりの受信に要する消費電力量である。Ｔは単位データ量を１ｍ四方までに配置された通信ノードが受信可能な強度による送信に要する消費電力量である。Ｅは、単位処理量あたりのデータ処理に要する消費電力量である。ｄａは、データ量であり、ｄｉは、通信距離である。ｉは単位処理量であり、Ｉは全体の処理量である。Ｓは通信ノード１０１の配置領域の面積であり、図６に示す。Ｄｅｎｓｉｔｙは、マルチホップ通信などを行うための１平方ｍあたりの通信ノード１０１の個数（「配置密度」と称する。）［個／ｍ2］である。
【００３３】
通信ノード１０１が同一サイズのデータを受信する場合の最大受信可能数を以下式（１）に示す。
【００３４】
【数１】
2014188550.tif 000037
【００３５】
１通信ノード１０１当たりが処理可能な処理量を以下式（２）に示す。
【００３６】
【数２】
2014188550.tif 000038
【００３７】
データ処理の実行に要する通信ノード１０１数を以下式（３）に示す。
【００３８】
【数３】
2014188550.tif 000039
【００３９】
データ処理の各部分処理について通信ノード１０１間で行われるホップ数を以下式（４）に示す。
【００４０】
【数４】
2014188550.tif 000040
【００４１】
配置密度Ｄｅｎｓｉｔｙは、以下式（５）に示す。式（５）中配置密度Ｄｅｎｓｉｔｙを省略して配置密度Ｄと記載する。
【００４２】
【数５】
2014188550.tif 000041
【００４３】
どの程度の間隔で通信ノード１０１を配置させるかを定める距離ｄｉは、以下式（６）に示す。
【００４４】
【数６】
2014188550.tif 000042
【００４５】
式（１）〜（６）の算出結果に基づいて複数の通信ノード１０１が配置される。
【００４６】
（運用前）
図７は、運用前に通信ノードに設定される通信距離の例を示す説明図である。通信装置２０１は、通信距離の設定信号をシステム２００内の通信ノード１０１に対して送信する。設定信号については、マルチホップ通信によって通信ノード１０１間で伝搬されてもよいし、通信装置２０１によって全体に送信されてもよい。設定信号には、通信距離に基づく送信強度が含まれる。
【００４７】
各通信ノード１０１は、設定信号を受信する。そして、各通信ノード１０１は、ＭＣＵ３０５を起動する。各通信ノード１０１は、ＭＣＵ３０５によって設定信号に含まれる送信強度をＲＡＭ３０６や不揮発メモリ３０８などの記憶装置に記憶する。さらに、各通信ノード１０１は、ＭＣＵ３０５によって、送信装置３１１に設定信号に含まれる送信強度により信号を送信する。各通信ノード１０１は、隣接ノード確認信号、隣接ノード確認信号に対する応答信号、処理依頼時隣接ノード確認信号、および処理依頼時隣接ノード確認信号に対する応答信号、を、設定信号に含まれる送信強度によって送信する。また、通信ノード１０１は、並列展開処理依頼信号、および処理引き継ぎ依頼信号を送信する際に、受信した応答信号の受信強度によって送信する。
【００４８】
図８は、パケットのフォーマット例を示す説明図である。本実施の形態では、各通信ノード１０１が送信する信号は、隣接ノード確認信号ｓ１と、隣接ノード確認信号ｓ１への応答信号ｓ２と、並列展開処理依頼信号ｓ３と、がある。さらに、各通信ノード１０１が送信する信号は、処理依頼時隣接ノード確認信号ｓ４と、処理依頼時隣接ノード確認信号ｓ４への応答信号ｓ５と、処理引き継ぎ依頼信号ｓ６と、がある。各信号のパケットのフォーマットを説明する。
【００４９】
隣接ノード確認信号ｓ１は、自通信ノード１０１と直接無線通信可能な複数の通信ノード１０１の中で、応答可能か否かを確認するための信号である。具体的には、隣接ノード確認信号ｓ１は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｓｅｒｖｅｄと、を有する。隣接ノード確認信号ｓ１のＳｉｇｎａｌ  ＩＤは「０」とする。隣接ノード確認信号ｓ１のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは、隣接ノード確認信号ｓ１の送信元を示す識別情報である。各通信ノード１０１の識別情報は、運用前に各通信ノード１０１に予め付与されていることとする。各通信ノード１０１の識別情報としては、たとえば、製造時のシリアル番号などを用いてもよい。隣接ノード確認信号ｓ１のＲｅｓｅｒｖｅｄは、予備の領域である。また、各通信ノード１０１は送信先を指定せずに隣接ノード確認信号ｓ１を送信するため、隣接ノード確認信号ｓ１には、送信先を示す識別情報がない。
【００５０】
隣接ノード確認信号ｓ１に対する応答信号ｓ２は、応答可能である場合に送信される信号である。隣接ノード確認信号ｓ１に対する応答信号ｓ２は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｓｅｒｖｅｄと、を有する。隣接ノード確認信号ｓ１に対する応答信号ｓ２のＳｉｇｎａｌ  ＩＤは、「１」とする。応答信号ｓ２のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは応答信号ｓ２の送信元を示す識別情報である。応答信号ｓ２のＲｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤは応答信号ｓ２の送信先である隣接ノード確認信号ｓ１の送信元を示す識別情報である。応答信号ｓ２のＲｅｓｅｒｖｅｄは、予備の領域である。
【００５１】
並列展開処理依頼信号ｓ３は、データ処理を所定数の部分処理に分割可能な並列処理を他の通信ノード１０１へ依頼するための信号である。所定数については、予め並列度としてデータ処理についてのプログラムの設計者によって定められていることとする。並列展開処理依頼信号ｓ３は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤと、Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇと、Ｒａｗ  ｄａｔａと、を有する。並列展開処理依頼信号ｓ３のＳｉｇｎａｌ  ＩＤは、「２」とする。並列展開処理依頼信号ｓ３のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは、並列展開処理依頼信号ｓ３の送信元の識別情報である。並列展開処理依頼信号ｓ３のＲｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤは、部分処理の依頼先の識別情報である。
【００５２】
並列展開処理依頼信号ｓ３のＮｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇは、部分処理の実行を完了させるために要する通信ノード数である。Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇは、所要ホップ数とも呼ぶ。所要ホップ数は各部分処理についてデータ処理の設計時に予め決定済みである。ここでは、各通信ノード１０１は、並列展開処理依頼信号ｓ３のパケットを生成時に、部分処理を含むデータ処理のプログラムから所要ホップ数を特定してもよい。または、各部分処理についての所要ホップ数を予めＲＯＭ３０７や不揮発メモリ３０８などの記憶装置に格納しておき、各通信ノードは、並列展開処理依頼信号ｓ３のパケットを生成時に、記憶装置から部分処理の所要ホップ数を取得してもよい。並列展開処理依頼信号ｓ３のＲａｗ  ｄａｔａは、部分処理の実行に関する情報であり、たとえば、センシングイベントによって得られたセンシングデータを有し、さらに部分処理についてのプログラムデータそのものを有していてもよい。
【００５３】
処理依頼時隣接ノード確認信号ｓ４は、並列展開可能ノードへ部分処理を依頼可能か否か確認する信号である。処理依頼時隣接ノード確認信号ｓ４は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｓｅｒｖｅｄと、を有する。処理依頼時隣接ノード確認信号ｓ４のＳｉｇｎａｌ  ＩＤは「３」とする。処理依頼時隣接ノード確認信号ｓ４のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは、処理依頼時隣接ノード確認信号ｓ４の送信元の識別情報である。処理依頼時隣接ノード確認信号ｓ４のＲｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤは、処理依頼時隣接ノード確認信号ｓ４の送信先の識別情報であり、並列展開可能ノードの識別情報である。処理依頼時隣接ノード確認信号ｓ４のＲｅｓｅｒｖｅｄは、予備の領域である。
【００５４】
処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５は、応答可能である場合に送信される信号である。処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｓｅｒｖｅｄと、を有する。応答信号ｓ５のＳｉｇｎａｌ  ＩＤは「４」とする。応答信号ｓ５のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは、応答信号ｓ５の送信元の識別情報である。応答信号ｓ５のＲｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤは、応答信号ｓ５の送信先の識別情報であり、処理依頼時隣接ノード確認信号ｓ４の送信元の識別情報である。応答信号ｓ５のＲｅｓｅｒｖｅｄは、予備の領域である。
【００５５】
処理引き継ぎ依頼信号ｓ６は、部分処理の引き継ぎを依頼する信号である。処理引き継ぎ依頼信号ｓ６は、Ｓｉｇｎａｌ  ＩＤと、Ｓｅｎｄｅｒ  Ｎｏｄｅ  ＩＤと、Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤと、Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇと、Ｈｏｐｐｉｎｇ  Ｃｏｕｎｔｅｒと、Ｒａｗ  ｄａｔａと、を有する。処理引き継ぎ依頼信号ｓ６のＳｉｇｎａｌ  ＩＤは「５」とする。処理引き継ぎ依頼信号ｓ６のＳｅｎｄｅｒ  Ｎｏｄｅ  ＩＤは、処理引き継ぎ依頼信号ｓ６の送信元の識別情報であり、部分処理の処理引き継ぎ依頼元ノードの識別情報である。処理引き継ぎ依頼信号ｓ６のＲｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤは、処理引き継ぎ依頼信号ｓ６の送信先の識別情報であり、部分処理の依頼先の識別情報である。
【００５６】
処理引き継ぎ依頼信号ｓ６のＮｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇは、部分処理の実行を完了させるために要する通信ノード数である。処理引き継ぎ依頼信号ｓ６のＨｏｐｐｉｎｇ  Ｃｏｕｎｔｅｒ（ホッピングカウンター）は、部分処理の実行を完了させるために要する通信ノード数のうち、部分処理を実行した通信ノード数がカウントされたカウント値である。たとえば、Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇの数と、Ｈｏｐｐｉｎｇ  Ｃｏｕｎｔｅｒの数と、が一致している場合、処理引き継ぎ依頼信号ｓ６は、Ｒａｗ  ｄａｔａを通信装置２０１への転送を依頼する信号である。処理引き継ぎ依頼信号ｓ６のＲａｗ  ｄａｔａは、部分処理の実行に関する情報であり、たとえば、センシングイベントに応じたセンシングデータを有し、さらに部分処理についてのプログラムデータそのものを有していてもよい。さらに、処理引き継ぎ依頼信号ｓ６のＲａｗ  ｄａｔａは、実行完了済みの部分処理の処理結果も含まれる。
【００５７】
（運用中の通信ノード１０１の機能的構成例）
図９は、運用中の通信ノードの機能的構成例を示すブロック図である。通信ノード１０１は、制御部９００と、第１受信部９０１と、第２受信部９０２と、第１送信部９０３と、第２送信部９０４と、信号種別判断部９０５と、並列展開ノード設定部９０６と、を有する。通信ノード１０１は、ノードステート制御部９１１と、バッテリ判断部９１２と、ホップカウンター判断部９１３と、実行部９１４と、ホップカウンター制御部９１５と、タイマ制御部９１６と、パケット生成部９１７と、を有する。
【００５８】
第１受信部９０１と、第２受信部９０２と、は、受信装置３１０によって実現される。第１送信部９０３と、第２送信部９０４と、は、送信装置３１１によって実現される。信号種別判断部９０５からパケット生成部９１７の処理は、たとえば、ＭＣＵ３０５がアクセス可能な不揮発メモリ３０８などの記憶装置に記憶された通信プログラムにコーディングされる。そして、ＭＣＵ３０５が不揮発メモリ３０８に記憶された通信プログラムを読み出して、通信プログラムにコーディングされている処理を実行する。これにより、信号種別判断部９０５からパケット生成部９１７の処理が実現される。また、バッテリ判断部９１２については、ＭＣＵ３０５が起動されていない場合、ＰＭＵ３０２によって実現される。また、信号種別判断部９０５からパケット生成部９１７までの処理結果は、ＲＡＭ３０６や不揮発メモリ３０８などの記憶装置に記憶される。
【００５９】
信号種別判断部９０５は、受信装置３１０が受信した信号の種別を判断する。上述したように、各信号に含まれるＳｉｇｎａｌ  ＩＤに基づいて、信号種別判断部９０５は、信号がいずれの種類の信号であるかを判断可能である。また、パケット生成部９１７は、送信装置３１１によって送信する信号のパケットを生成する。各信号のパケットは上述した通りである。以降信号種別判断部９０５と、パケット生成部９１７と、についての説明は省略する。
【００６０】
タイマ制御部９１６は、自通信ノード１０１が有するタイマによって一定期間ごとに隣接ノード確認信号ｓ１を送信させる制御を行う。第１送信部９０３は、タイマ制御部９１６の制御によって自通信ノード１０１と直接無線通信可能な複数の通信ノード１０１へ隣接ノード確認信号ｓ１を送信する。ここで、隣接ノード確認信号ｓ１の送信のための送信強度は、一定の強度であり、たとえば、運用前に設定信号によって設定された送信強度である。
【００６１】
第１受信部９０１は、隣接ノード確認信号ｓ１を受信した複数の通信ノード１０１から、第１送信部９０３によって送信された隣接ノード確認信号ｓ１に対する応答信号ｓ２を受信する。また、第１受信部９０１は、隣接ノード確認信号ｓ１を受信した複数の通信ノード１０１のうちの応答可能な第１通信ノード１０１からの、第１送信部９０３によって送信された隣接ノード確認信号ｓ１に対する応答信号ｓ２を受信してもよい。たとえば、受信しても応答可能でない通信ノード１０１としては、バッテリの残量が不十分である通信ノード１０１は、隣接ノード確認信号ｓ１を受信しても、隣接ノード確認信号ｓ１に対する応答が行えないため、応答信号ｓ２を送信しない。また、たとえば、故障している通信ノード１０１は、隣接ノード確認信号ｓ１を受信できない可能性が高いため、応答信号ｓ２を送信できない。そのため、隣接ノード確認信号ｓ１に対する応答信号ｓ２がない周辺の通信ノード１０１は故障しているとみなすことができる。
【００６２】
並列展開ノード設定部９０６は、第１受信部９０１によって受信された応答信号ｓ２の送信元である通信ノード１０１を並列展開可能ノードに設定する。具体的には、並列展開ノード設定部９０６は、第１受信部９０１によって受信された応答信号ｓ２の送信元である通信ノード１０１の識別情報と、応答信号ｓ２の受信強度と、を関連付けてＲＡＭ３０６、不揮発メモリ３０８などの記憶装置に記憶させる。不揮発メモリ３０８に記憶される並列展開可能ノードを示す情報が、応答信号ｓ２の送信元である通信ノード１０１の識別情報と、応答信号ｓ２の受信強度と、が関連付けられた情報である。また、応答信号ｓ２の受信強度に代わって、後述する距離算出部９０７によって算出された距離を応答信号ｓ２の送信元である通信ノード１０１の識別情報に関連付けてもよい。
【００６３】
また、第２受信部９０２は、複数の通信ノード１０１のいずれかから、隣接ノード確認信号ｓ１を受信する。バッテリ判断部９１２は、バッテリ３０３の電力残量が閾値以上であるか否かを判断する。閾値は、たとえば、データ処理に含まれる部分処理の実行に要する電力量と、並列展開処理依頼信号ｓ３の受信に要する電力量と、処理引き継ぎ依頼信号ｓ６の送信に要する電力量と、の合計値に基づく値である。閾値については、たとえば、不揮発メモリ３０８などの記憶装置に予め記憶される。これにより、バッテリ３０３の電力残量が、データ処理に含まれる部分処理の実行に要する電力量と、並列展開処理依頼信号ｓ３の受信に要する電力量と、処理引き継ぎ依頼信号ｓ６の送信に要する電力量と、の合計値に対して十分あるか否かが判断される。
【００６４】
バッテリ判断部９１２によって電力量が閾値以上であると判断された場合、パケット生成部９１７は、隣接ノード確認信号ｓ１に対する応答信号ｓ２を生成する。そして、第２送信部９０４は、パケット生成部９１７によって生成された隣接ノード確認信号ｓ１に対する応答信号ｓ２を隣接ノード確認信号ｓ１の送信元へ送信する。ここで、応答信号ｓ２の送信のための送信強度は、一定の強度であり、たとえば、運用前に設定された強度である。バッテリ判断部９１２によって電力量が閾値未満であると判断された場合、第２送信部９０４は、隣接ノード確認信号ｓ１に対する応答信号ｓ２を送信しない。
【００６５】
図１０は、隣接ノード確認信号の送信例を示す説明図である。たとえば、通信ノード１０１−１は、設定された送信強度によって通信ノード１０１−１から一定距離ｄ以内にある通信ノード１０１へ隣接ノード確認信号ｓ１を送信する。通信ノード１０１−１から一定距離ｄ以内にある通信ノード１０１は、通信ノード１０１−２〜１０１−１０である。
【００６６】
図１１は、隣接ノード確認信号に対する応答信号の送信例を示す説明図である。図１１の例では、通信ノード１０１−７，１０１−１０は、故障中またはバッテリ３０３の電力が閾値を満たさないため、隣接ノード確認信号ｓ１に対する応答信号ｓ２を送信しない。また、図１１の例では、通信ノード１０１−２〜１０１−６，１０１−８，１０１−９は、隣接ノード確認信号ｓ１に対する応答信号ｓ２を隣接ノード確認信号ｓ１の送信元である通信ノード１０１−１へ送信する。
【００６７】
制御部９００は、第１受信部９０１によって受信された応答信号ｓ２の受信強度に基づき応答信号ｓ２の送信元である複数の通信ノード１０１から選択した、データ処理を依頼する依頼先通信ノードへの送信強度を設定する。より具体的に、制御部９００は、距離算出部９０７と、選択部９０８と、決定部９０９と、強度算出部９１０と、を有する。
【００６８】
距離算出部９０７は、第１受信部９０１によって受信された応答信号ｓ２の受信強度に基づいて、自通信ノード１０１と、応答信号ｓ２の送信元と、の距離を算出する。受信強度については、受信装置３１０および送信装置３１１が有するアンテナから得られる。具体的には、距離算出部９０７は、応答信号ｓ２の受信強度と、応答信号ｓ２の送信強度［ｄＢｍ］と、送信アンテナ絶対利得［ｄＢｉ］と、受信アンテナ絶対利得［ｄＢｉ］と、に基づいて、応答信号ｓ２の受信強度の損失を算出する。距離算出部９０７は、受信強度を与えると受信強度の損失が得られる第１関数に、受信された応答信号ｓ２の受信強度を与えることにより、応答信号ｓ２の受信強度の損失を算出する。第１関数は、応答信号ｓ２の送信強度と、送信アンテナ絶対利得と、受信アンテナ絶対利得と、の合計値から、与えられた応答信号ｓ２の受信強度を引き算することにより、応答信号ｓ２の受信強度の損失を得る。送信アンテナ絶対利得と、受信アンテナ絶対利得とは、受信装置３１０および送信装置３１１が有するアンテナに基づく値であり、固定値であり、予め不揮発メモリ３０８などの記憶装置に記憶する。そして、距離算出部９０７は、損失を与えると通信ノード１０１間の距離を算出可能な以下式（７）に基づく第２関数に、算出した応答信号ｓ２の受信強度の損失を与えることにより、通信ノード１０１間の距離を算出する。式（７）内のＬは損失であり、ｄは距離［ｍ］であり、λは波長［ｍ］である。波長λは、固定値であり、予め不揮発メモリ３０８などの記憶装置に記憶する。たとえば、距離算出部９０７は、応答信号ｓ２の送信元の識別情報と、算出された距離と、を関連付けてＲＡＭ３０６や不揮発メモリ３０８などの記憶装置に記憶する。
【００６９】
【数７】
2014188550.tif 000043
【００７０】
図１２は、通信ノード間の距離の算出を行う関数例を示す説明図である。グラフ１２００は、通信ノード１０１間の距離の算出を行う関数に受信強度の損失を与えてプロットした例である。グラフ１２００は、各応答信号の受信強度の損失が大きいほど、通信ノード１０１間の距離が遠くなり、各応答信号の受信強度の損失が小さいほど、通信ノード１０１間の距離が近くなることを示す。
【００７１】
つぎに、センサー３０４によってセンシングイベントが発生する。そして、選択部９０８は、距離算出部９０７によって算出された自通信ノード１０１と並列展開可能ノードとの距離に基づいて、センシングイベントに応じたデータ処理の実行を依頼する依頼先を並列展開可能ノードから選択する。
【００７２】
また、センシングイベントに応じたデータ処理が所定数の部分処理に分割して並列処理可能なデータ処理である場合、選択部９０８は、受信された応答信号ｓ２の受信強度に基づいて、第１通信ノード１０１から所定数以下の第２通信ノード１０１を選択する。所定数については、予め並列度としてデータ処理についてのプログラムの設計者によって定められていることとする。所定数は、たとえば、ＲＯＭ３０７や不揮発メモリ３０８などの記憶装置に予め記憶される。具体的には、選択部９０８は、第２通信ノード１０１を選択する際に、第１通信ノード１０１の数が所定数より多い場合、第１受信部９０１によって受信された応答信号ｓ２の受信強度に基づいて、所定数の第１通信ノード１０１を選択する。また、選択部９０８は、第２通信ノード１０１を選択する際に、第１通信ノード１０１の数が所定数以下の場合、第１通信ノード１０１のすべてを選択する。
【００７３】
そして、決定部９０９は、受信された応答信号ｓ２の受信強度と、所定数の部分処理の各々の処理量に応じた情報と、に基づいて、選択部９０８によって選択された依頼先の各々に所定数のデータ処理のいずれを依頼するかを決定する。
【００７４】
図１３は、各部分処理と部分処理の処理量に応じた情報とを示す説明図である。たとえば、データ処理は、部分処理Ａと、部分処理Ｂと、部分処理Ｃと、部分処理Ｄと、の４つに分割して並列処理可能である。部分処理Ａの処理長は４である。ここで、処理長は、上述した所要ホップ数であり、部分処理の実行を完了させるために部分処理の実行を行う通信ノード１０１数である。部分処理Ｂの処理長は４であり、部分処理Ｃの処理長は６であり、部分処理Ｄの処理長は１である。
【００７５】
図１４は、選択および決定例１を示す説明図である。たとえば、並列展開可能ノードの数が７であり、並列度が４であるため、選択部９０８は、算出された距離が近い順に、並列展開可能ノードを４つ選択する。これにより、データ処理をより多く分散させることができる。
【００７６】
そして、決定部９０９は、距離が近い順に、処理長が大きい部分処理を割り当てることを決定する。たとえば、部分処理Ｃを通信ノード１０１−５へ割り当て、部分処理Ａを通信ノード１０１−８に割り当て、部分処理Ｂを通信ノード１０１−３に割り当て、部分処理Ｄを通信ノード１０１−２に割り当てる。
【００７７】
第２送信部９０４は、選択部９０８によって選択された第２通信ノード１０１の各々へ、第２通信ノード１０１について決定部９０９によって決定されたデータ処理を依頼する依頼信号を送信する。
【００７８】
図１５は、選択および決定例２を示す説明図である。たとえば、図１５に示すように、並列展開可能ノードの数が２であり、並列度が４である場合、選択部９０８は、２つの通信ノード１０１を選択する。決定部９０９は、距離が近い順に、合計の処理長が大きくなるように部分処理を割り当てることを決定する。たとえば、決定部９０９は、通信ノード１０１−５に部分処理Ａと部分処理Ｂとを割り当て、通信ノード１０１−２に部分処理Ｃと部分処理Ｄとを割り当てることを決定する。
【００７９】
強度算出部９１０は、選択部９０８によって選択された第２通信ノード１０１からの応答信号ｓ２の受信強度に基づいて、第２通信ノード１０１と自通信ノード１０１との間で通信可能な送信強度を算出する。ここでは、強度算出部９１０は、選択部９０８によって選択された第２通信ノード１０１と自通信ノード１０１との算出された距離に基づいて、第２通信ノード１０１と自通信ノード１０１との間で通信可能な送信強度を算出する。具体的には、強度算出部９１０は、選択部９０８によって選択された第２通信ノード１０１と自通信ノード１０１との算出された距離に基づいて、第２通信ノード１０１と自通信ノード１０１との間で通信可能な送信強度の中で、最小の送信強度を算出する。より具体的には、強度算出部９１０は、距離を与えると送信強度の損失が得られる後述する式（８）に基づく第３関数に、距離を与えることにより、送信強度の損失を算出する。そして、強度算出部９１０は、送信強度の損失が与えられると送信強度が得られる第４関数に、算出された送信強度の損失を与えることにより、送信強度を得る。第４関数は、与えられた送信強度の損失と、受信可能な最小の受信強度と、の合計値から、送信アンテナ絶対利得と、受信アンテナ絶対利得と、の合計値を引き算することにより、送信強度を得る。式（８）内のＬは損失であり、ｄは距離［ｍ］であり、λは波長［ｍ］である。波長λは、固定値であり、予め不揮発メモリ３０８などの記憶装置に記憶する。
【００８０】
【数８】
2014188550.tif 000044
【００８１】
図１６は、送信強度の算出例を示す説明図である。グラフ１６００は、送信強度の損失の算出を行う関数に通信ノード１０１間の距離を与えてプロットした例である。グラフ１６００は、通信ノード１０１間の距離が遠いほど、送信強度の損失が大きくなり、通信ノード１０１間の距離が近いほど、送信強度の損失が小さくなることを示す。
【００８２】
第２送信部９０４は、データ処理の実行を依頼する依頼信号を強度算出部９１０によって算出された送信強度によって第２通信ノード１０１へ送信する。
【００８３】
第２受信部９０２は、データ処理の実行を依頼する並列展開処理依頼信号ｓ３を周辺の通信ノード１０１のうちの第３通信ノード１０１から受信する。ノードステート制御部９１１は、受信された並列展開処理依頼信号ｓ３が示すデータ処理の実行の依頼先が自通信ノード１０１である場合、通信ノード１０１のｓｔａｔｅを「２」に設定する。そして、実行部９１４は、並列展開処理依頼信号ｓ３によって依頼されたデータ処理の一部を実行する。つぎに、ホップカウンター制御部９１５は、並列展開処理依頼信号ｓ３によって依頼されたデータ処理についてのホップカウンターの値を１インクリメントする。
【００８４】
そして、第１送信部９０３は、第１通信ノード１０１へ処理依頼時隣接ノード確認信号ｓ４を送信する。具体的には、第１送信部９０３は、記憶装置に記憶された並列展開可能ノードへ処理依頼時隣接ノード確認信号ｓ４を送信する。第１受信部９０１は、処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５を並列展開可能ノードのうちのいずれかから受信する。
【００８５】
距離算出部９０７は、応答信号ｓ５の受信強度に基づいて、応答信号ｓ５の送信元と、自通信ノード１０１と、の距離を算出する。そして、選択部９０８は、算出された距離が最も短い応答信号ｓ５の送信元を処理引き継ぎ依頼信号ｓ６の依頼先として選択する。
【００８６】
第２送信部９０４は、ホップカウンター制御部９１５によってカウントアップされたホップカウンターの値と実行部９１４による実行結果とを含む処理引き継ぎ依頼信号ｓ６を選択部９０８によって選択された通信ノード１０１へ送信する。これにより、第２送信部９０４は、実行部９１４によって実行された一部の処理以外のデータ処理の実行と、実行部９１４によって実行された一部の処理の通信装置２０１への転送と、を依頼する処理引き継ぎ依頼信号ｓ６を送信することとなる。
【００８７】
そして、ノードステート制御部９１１は、処理引き継ぎ依頼信号ｓ６が送信された後に、通信ノード１０１のｓｔａｔｅを「０」に設定する。
【００８８】
図１７および図１８は、処理引き継ぎ依頼例を示す説明図である。通信ノード１０１−５は、通信ノード１０１−１からの並列展開処理依頼信号ｓ３を受信する。そして、通信ノード１０１−５は、並列展開処理依頼信号ｓ３によって依頼されたデータ処理の一部を実行する。通信ノード１０１−５は、並列展開可能ノードへ処理依頼時隣接ノード確認信号ｓ４を送信する。通信ノード１０１−５の並列展開可能ノードは、通信ノード１０１−３，１０１−４，１０１−６,１０１−１１,１０１−１２である。
【００８９】
そして、たとえば、通信ノード１０１−５は、通信ノード１０１−５の並列展開可能ノードのすべてから処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５を受信することとする。通信ノード１０１−５は、応答信号ｓ５の受信強度に基づいて各並列展開可能ノードと自通信ノード１０１との距離を算出する。そして、通信ノード１０１−５は、最も距離が短い通信ノード１０１−６を処理引き継ぎ依頼信号ｓ６の送信先として選択する。通信ノード１０１−５は、通信ノード１０１−６へ処理引き継ぎ依頼信号ｓ６を送信する。
【００９０】
また、第２受信部９０２は、周辺の通信ノード１０１のうちの第３通信ノード１０１から処理引き継ぎ依頼信号ｓ６を受信する。そして、処理引き継ぎ依頼信号ｓ６に含まれるデータ処理の依頼先が自通信ノード１０１である場合、ホップカウンター判断部９１３は、処理引き継ぎ依頼信号ｓ６に含まれるホップカウンターの値が所要ホップ数以上であるか否かを判断する。
【００９１】
実行部９１４は、ホップカウンター判断部９１３によってホップカウンターの値が所要ホップ数未満であると判断された場合、処理引き継ぎ依頼信号ｓ６によって依頼されたデータ処理を実行する。そして、ホップカウンター制御部９１５は、ホップカウンターの値を１インクリメントする。その後、上述したように、通信ノード１０１は、処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５によって並列展開可能ノードから最も近い距離にある通信ノード１０１を選択し、選択した通信ノード１０１へ処理引き継ぎ依頼信号ｓ６を送信する。
【００９２】
ホップカウンター判断部９１３によってホップカウンターの値が所要ホップ数以上であると判断された場合、実行部９１４は、データ処理を実行しない。そして、通信ノード１０１は、処理依頼時隣接ノード確認信号ｓ４によって並列展開可能ノードから最も近い距離にある通信ノード１０１を選択し、選択した通信ノード１０１へ処理引き継ぎ依頼信号ｓ６を送信する。
【００９３】
また、第２受信部９０２は、処理依頼時隣接ノード確認信号ｓ４を受信する。そして、バッテリ判断部９１２は、第２受信部９０２によって処理依頼時隣接ノード確認信号ｓ４を受信すると、バッテリ３０３の残量が起動閾値以上であるか否かを判断する。起動閾値は、起動に要する電力量である。起動閾値以上であると判断された場合、そして、ノードステート制御部９１１は、処理依頼時隣接ノード確認信号ｓ４の送信元の識別情報を処理引き継ぎ元ノードとして、ＲＡＭ３０６、ディスクなどの記憶装置に記憶する。ノードステート制御部９１１は、ｓｔａｔｅを「１」に設定する。さらに、第２送信部９０４は、処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５を処理依頼時隣接ノード確認信号ｓ４の送信元に送信する。
【００９４】
図１９は、処理引き継ぎ依頼信号の転送例を示す説明図である。通信ノード１０１−１で発生したセンシングイベントに応じたデータ処理は通信ノード１０１−１から通信装置２０１までの間の通信ノード１０１に実行される。そして、当該データ処理の処理結果は通信ノード１０１−１から通信装置２０１までの間の通信ノード１０１にマルチホッピング通信によって転送される。図１９では、各通信ノード１０１が送信する信号のパケットｐ１〜ｐ６を示す。
【００９５】
たとえば、並列展開処理依頼信号ｓ３のパケットｐ１の「Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇ」の値が２である。そのため、通信ノード１０１−１から送信される並列展開処理依頼信号ｓ３を受信する通信ノード１０１−５と、通信ノード１０１−５から送信される処理引き継ぎ依頼信号ｓ６を受信する通信ノード１０１−６と、は、データ処理を実行する。その後、通信ノード１０１−６から送信される処理引き継ぎ依頼信号ｓ６のパケットｐ３の「Ｈｏｐｐｉｎｇ  Ｃｏｕｎｔｅｒ」の値と「Ｎｅｃｅｓｓａｒｙ  ｎｕｍｂｅｒ  ｏｆ  ｈｏｐｐｉｎｇ」の値とが一致する。そのため、通信ノード１０１−１３と通信ノード１０１−１４と通信ノード１０１−１５は、処理引き継ぎ依頼信号ｓ６をデータ処理の処理結果の転送信号として処理引き継ぎ依頼信号ｓ６を通信装置２０１まで転送する。
【００９６】
（通信ノード１０１による通信処理手順例）
図２０〜図２６は、通信ノードによる通信処理手順例を示すフローチャートである。ここでは、ＭＣＵ３０５によるステップについてはＭＣＵ３０５によって実行されることを省略する。通信ノード１０１は、ＰＭＵ３０２によって、イベントの発生を検出したか否かを判断する（ステップＳ２００１）。イベントの発生を検出していない場合（ステップＳ２００１：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２００１へ戻る。
【００９７】
タイマによる起動イベントが発生した場合（ステップＳ２００１：タイマ起動）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２００２）。通信ノード１０１は、ＭＣＵ３０５によって、バッテリ３０３の残量＞起動閾値か否かを判断する（ステップＳ２００３）。バッテリ３０３の残量＞起動閾値でない場合（ステップＳ２００３：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。バッテリ３０３の残量＞起動閾値である場合（ステップＳ２００３：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５と送信装置３１１によって、隣接ノード確認信号ｓ１を送信する（ステップＳ２００４）。そして、通信ノード１０１は、受信装置３１０によって、隣接ノード確認信号ｓ１を送信してから一定時間内に応答信号ｓ２を受信したか否かを判断する（ステップＳ２００５）。
【００９８】
一定時間内である場合（ステップＳ２００５：一定時間内）、通信ノード１０１は、受信装置３１０によって、ステップＳ２００５へ戻る。一方、一定時間経過した場合（ステップＳ２００５：一定時間経過）、通信ノード１０１は、ＭＣＵ３０５によって、応答信号ｓ２の送信元の各々について、応答信号ｓ２の受信強度に基づいて、自通信ノード１０１との距離を算出する（ステップＳ２００６）。通信ノード１０１は、ＭＣＵ３０５によって、応答信号ｓ２の送信元を並列展開可能ノードとし、算出した距離を関連付けて出力する（ステップＳ２００７）。そして、通信ノード１０１は、ＭＣＵ３０５によって、Ｓｌｅｅｐ状態に遷移し（ステップＳ２０１２）、一連の処理を終了する。
【００９９】
また、隣接ノード確認信号ｓ１が受信された場合（ステップＳ２００１：隣接ノード確認信号の受信）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５が起動済みか否かを判断する（ステップＳ２００８）。起動済みの場合（ステップＳ２００８：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１１へ移行する。一方、起動済みでない場合（ステップＳ２００８：Ｎｏ）、ＰＭＵ３０２によって、バッテリ３０３の残量＞閾値であるか否かを判断する（ステップＳ２００９）。
【０１００】
バッテリ３０３の残量＞閾値である場合（ステップＳ２００９：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２０１０）。そして、通信ノード１０１は、ＭＣＵ３０５と送信装置３１１によって、隣接ノード確認信号ｓ１に対する応答信号ｓ２を送信し（ステップＳ２０１１）、ステップＳ２０１２へ移行する。一方、ステップＳ２００９において、バッテリ３０３の残量＞閾値でない場合（ステップＳ２００９：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２０１２へ移行する。
【０１０１】
センシングイベントが発生した場合（ステップＳ２００１：センシング）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２１０１）。通信ノード１０１は、ＭＣＵ３０５によって、バッテリ３０３の残量＞起動閾値であるか否かを判断する（ステップＳ２１０２）。バッテリ３０３の残量＞起動閾値でない場合（ステップＳ２１０２：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。バッテリ３０３の残量＞起動閾値である場合（ステップＳ２１０２：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、並列展開可能ノード数≧最大並列度であるか否かを判断する（ステップＳ２１０３）。
【０１０２】
並列展開可能ノード数≧最大並列度である場合（ステップＳ２１０３：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、並列展開可能ノードから、距離の近い順に最大並列度の並列展開可能ノードを依頼先として選択する（ステップＳ２１０４）。
【０１０３】
通信ノード１０１は、ＭＣＵ３０５によって、各部分処理の所要ホップ数を特定する（ステップＳ２１０５）。そして、通信ノード１０１は、ＭＣＵ３０５によって、選択した並列展開可能ノードに対する、距離と部分処理の所要ホップ数に基づいて、部分処理の割り当てを決定する（ステップＳ２１０６）。そして、通信ノード１０１は、ＭＣＵ３０５によって、選択した並列展開可能ノードについての距離に基づいて、送信強度を算出する（ステップＳ２１０７）。つぎに、通信ノード１０１は、ＭＣＵ３０５と送信装置３１１によって、算出した送信強度によって並列展開処理依頼を送信し（ステップＳ２１０８）、ステップＳ２０１２へ移行する。
【０１０４】
並列展開可能ノード数≧最大並列度でない場合（ステップＳ２１０３：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、すべての並列展開可能ノードを依頼先として選択する（ステップＳ２２０１）。つぎに、通信ノード１０１は、ＭＣＵ３０５によって、「割り当て処理単位＝並列度／並列展開可能ノード数」とする（ステップＳ２２０２）。そして、通信ノード１０１は、ＭＣＵ３０５によって、各部分処理の所要ホップ数を特定する（ステップＳ２２０３）。つづけて、通信ノード１０１は、ＭＣＵ３０５によって、選択した並列展開可能ノードに対する、距離と部分処理の所要ホップ数に基づいて、部分処理の割り当てを決定する（ステップＳ２２０４）。
【０１０５】
そして、通信ノード１０１は、ＭＣＵ３０５によって、「並列度／並列展開可能ノード数」の余り＝０であるか否かを判断する（ステップＳ２２０５）。「並列度／並列展開可能ノード数」の余り＝０でない場合（ステップＳ２２０５：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、距離が近い通信ノード１０１順に残余の部分処理の割り当てを決定し（ステップＳ２２０６）、ステップＳ２１０７へ移行する。残余の部分処理は、依頼先が決定していない部分処理である。「並列度／並列展開可能ノード数」の余り＝０である場合（ステップＳ２２０５：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２１０７へ移行する。
【０１０６】
また、並列展開処理依頼信号ｓ３を受信した場合（ステップＳ２００１：並列展開処理依頼信号の受信）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動済みか否かを判断する（ステップＳ２３０１）。起動済みである場合（ステップＳ２３０１：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２３０４へ移行する。
【０１０７】
起動済みでない場合（ステップＳ２３０１：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、バッテリ３０３の残量＞起動閾値であるか否かを判断する（ステップＳ２３０２）。バッテリ３０３の残量＞起動閾値でない場合（ステップＳ２３０２：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２０１２へ移行する。バッテリ３０３の残量＞起動閾値である場合（ステップＳ２３０２：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２３０３）。そして、通信ノード１０１は、ＭＣＵ３０５によって、依頼先が自通信ノード１０１か否かを判断する（ステップＳ２３０４）。ここでの依頼先の識別情報は、並列展開処理依頼信号ｓ３に含まれる「Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤ」である。依頼先の識別情報が自通信ノード１０１を示さない場合（ステップＳ２３０４：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。
【０１０８】
依頼先の識別情報が自通信ノード１０１を示す場合（ステップＳ２３０４：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅ＝２とする（ステップＳ２３０５）。そして、通信ノード１０１は、ＭＣＵ３０５によって、ホップカウンターの値≦所要ホップ数であるか否かを判断する（ステップＳ２３０６）。ホップカウンターの値≦所要ホップ数でない場合（ステップＳ２３０６：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２３０８へ移行する。
【０１０９】
ホップカウンターの値≦所要ホップ数である場合（ステップＳ２３０６：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、依頼されたデータ処理の実行を行う（ステップＳ２３０７）。その後、通信ノード１０１は、ＭＣＵ３０５によって、ホップカウンターの値をインクリメントする（ステップＳ２３０８）。
【０１１０】
つぎに、通信ノード１０１は、ＭＣＵ３０５によって、処理依頼時隣接ノード確認信号ｓ４を並列展開可能ノードへ送信する（ステップＳ２４０１）。通信ノード１０１は、ＭＣＵ３０５と受信装置３１０によって、処理依頼時隣接ノード確認信号ｓ４を送信してから一定時間内に応答信号ｓ５を受信したか否かを判断する（ステップＳ２４０２）。一定時間内の場合（ステップＳ２４０２：一定時間内）、通信ノード１０１は、ＭＣＵ３０５と受信装置３１０によって、ステップＳ２４０２へ戻る。一定時間経過した場合（ステップＳ２４０２：一定時間経過）、通信ノード１０１は、ＭＣＵ３０５によって、各応答信号ｓ５の受信強度に基づき、各応答信号ｓ５の送信元と自通信ノード１０１との距離を算出する（ステップＳ２４０３）。
【０１１１】
通信ノード１０１は、ＭＣＵ３０５によって、最短距離である送信元を依頼先の通信ノード１０１として選択する（ステップＳ２４０４）。そして、通信ノード１０１は、ＭＣＵ３０５によって、選択した通信ノード１０１の距離に基づき送信強度を算出する（ステップＳ２４０５）。通信ノード１０１は、ＭＣＵ３０５と送信装置３１１によって、算出した送信強度によって処理引き継ぎ依頼信号ｓ６を選択した通信ノード１０１へ送信する（ステップＳ２４０６）。そして、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅ＝０とし（ステップＳ２４０７）、ステップＳ２０１２へ移行する。
【０１１２】
また、処理引き継ぎ依頼信号ｓ６を受信した場合（ステップＳ２００１：処理引き継ぎ依頼信号の受信）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動済みか否かを判断する（ステップＳ２５０１）。起動済みである場合（ステップＳ２５０１：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２５０４へ移行する。
【０１１３】
起動済みでない場合（ステップＳ２５０１：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、バッテリ３０３の残量＞起動閾値であるか否かを判断する（ステップＳ２５０２）。バッテリ３０３の残量＞起動閾値でない場合（ステップＳ２５０２：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２０１２へ移行する。バッテリ３０３の残量＞起動閾値である場合（ステップＳ２５０２：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２５０３）。そして、通信ノード１０１は、ＭＣＵ３０５によって、依頼先が自通信ノード１０１であるか否かを判断する（ステップＳ２５０４）。
【０１１４】
依頼先が自通信ノード１０１である場合（ステップＳ２５０４：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２３０５へ移行する。依頼先が自通信ノード１０１でない場合（ステップＳ２５０４：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅが「１」であるか否かを判断する（ステップＳ２５０５）。
【０１１５】
ｓｔａｔｅが「１」でない場合（ステップＳ２５０５：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。ｓｔａｔｅが「１」である場合（ステップＳ２５０５：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、依頼元が記憶した処理引き継ぎ元ノードと同一か否かを判断する（ステップＳ２５０６）。依頼元が記憶した処理引き継ぎ元ノードと同一である場合（ステップＳ２５０６：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅ＝０とし（ステップＳ２５０７）、ステップＳ２０１２へ移行する。依頼元が記憶した処理引き継ぎ元ノードと同一でない場合（ステップＳ２５０６：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。
【０１１６】
処理依頼隣接ノード確認信号ｓ４を受信した場合（ステップＳ２００１：処理依頼隣接ノード確認信号の受信）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動済みか否かを判断する（ステップＳ２６０１）。起動済みである場合（ステップＳ２６０１：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２６０４へ移行する。
【０１１７】
起動済みでない場合（ステップＳ２６０１：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、バッテリ３０３の残量＞起動閾値であるか否かを判断する（ステップＳ２６０２）。バッテリ３０３の残量＞起動閾値でない場合（ステップＳ２６０２：Ｎｏ）、通信ノード１０１は、ＰＭＵ３０２によって、ステップＳ２０１２へ移行する。一方、バッテリ３０３の残量＞起動閾値である場合（ステップＳ２６０２：Ｙｅｓ）、通信ノード１０１は、ＰＭＵ３０２によって、ＭＣＵ３０５を起動する（ステップＳ２６０３）。そして、通信ノード１０１は、ＭＣＵ３０５によって、隣接ノードが自通信ノード１０１か否かを判断する（ステップＳ２６０４）。ここでの隣接ノードは、処理依頼隣接ノード確認信号ｓ４に含まれる「Ｒｅｃｅｉｖｅｒ  Ｎｏｄｅ  ＩＤ」が示す通信ノード１０１である。隣接ノードが自通信ノード１０１でない場合（ステップＳ２６０４：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。
【０１１８】
隣接ノードが自通信ノード１０１である場合（ステップＳ２６０４：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅが「０」であるか否かを判断する（ステップＳ２６０５）。ｓｔａｔｅが「０」でない場合（ステップＳ２６０５：Ｎｏ）、通信ノード１０１は、ＭＣＵ３０５によって、ステップＳ２０１２へ移行する。ｓｔａｔｅが「０」である場合（ステップＳ２６０５：Ｙｅｓ）、通信ノード１０１は、ＭＣＵ３０５によって、ｓｔａｔｅを「１」に設定する（ステップＳ２６０６）。通信ノード１０１は、ＭＣＵ３０５によって、処理依頼時隣接ノード確認信号ｓ４の送信元を処理引き継ぎ元ノードとして記憶する（ステップＳ２６０７）。そして、通信ノード１０１は、ＭＣＵ３０５と送信装置３１１によって、処理依頼時隣接ノード確認信号ｓ４に対する応答信号ｓ５を送信元へ送信し（ステップＳ２６０８）、ステップＳ２０１２へ移行する。
【０１１９】
以上説明したように、本実施の形態にかかる通信ノードが、応答可能か否かの確認信号に対する応答信号の受信強度に基づいて、データ処理の依頼信号の送信先および送信強度を決定する。これにより、より近いと推定される通信ノードへ少ない電力で依頼信号を送信することができる。したがって、適切な通信相手にデータ処理を実行させることができ、無線送信による消費電力を低減することができる。
【０１２０】
また、本実施の形態にかかる通信ノードは、応答信号の受信強度に基づいて応答信号の送信元と自通信ノードとの距離を算出し、当該送信元から距離が近い順にデータ処理を依頼する通信ノードを決定する。これにより、距離がより近い通信ノードへ少ない電力で依頼信号を送信することができ、無線送信による消費電力を低減させることができる。
【０１２１】
また、本実施の形態にかかる通信ノードは、応答信号の受信強度に基づいて、依頼先の通信ノードと自通信ノードとの間で通信可能な送信強度の中で、最小の送信強度を算出する。これにより、最小限の電力で依頼信号を送信することができ、無線送信による消費電力を低減させることができる。
【０１２２】
また、データ処理は、所定数の部分処理に分割して並列処理可能なデータ処理である場合、本実施の形態にかかる通信ノードは、応答信号の受信強度に基づいて、応答信号の送信元から所定数以下の通信ノードを部分処理の依頼先として選択する。これにより、並列処理可能なデータ処理を複数の通信ノードに分散させることができる。
【０１２３】
また、本実施の形態にかかる通信ノードは、依頼先の通信ノードを選択する際に、応答信号の送信元の通信ノード数が所定数より多い場合、応答信号の受信強度に基づいて、応答信号の送信元から所定数の通信ノードをデータ処理の依頼先として選択する。また、通信ノードは、依頼先の通信ノードを選択する際に、応答信号の送信元の通信ノード数が所定数以下の場合、応答信号の送信元をすべてデータ処理の依頼先として選択する。これにより、データ処理をより多く分散させることができ、データ処理の実行とデータ処理の処理結果の転送とを依頼する依頼信号の送受信に要する電力量を低減させることができる。
【０１２４】
また、本実施の形態にかかる通信ノードは、応答信号の受信強度と、所定数の部分処理の各々の処理量に応じた情報と、に基づいて、データ処理の依頼先として選択した通信ノードの各々に所定数のデータ処理のいずれを依頼するかを決定する。通信ノードは、応答信号の受信強度が大きい順に所定数の部分処理のうちの依頼される部分処理の処理量が最も多くなるように、データ処理の依頼先として選択した通信ノードの各々に所定数のデータ処理のいずれを依頼するかを決定する。
【０１２５】
また、本実施の形態にかかる通信ノードは、依頼されたデータ処理の実行が終了した場合、処理結果を集約する通信装置へ処理結果の転送を依頼する依頼信号を送信する。これにより、処理結果を通信装置まで転送させることができる。
【０１２６】
また、本実施の形態にかかる通信ノードは、依頼されたデータ処理の一部の実行が終了した場合、処理結果を集約する通信装置へ処理結果の転送と、データ処理の残余の処理の実行と、を依頼する依頼信号を送信する。これにより、最小限の電力で処理の引き継ぎを依頼する依頼信号を送信することができ、無線送信による消費電力を低減させることができる。
【０１２７】
また、本実施の形態にかかる通信ノードが、受信強度を与えると送信強度が得られる関数に、応答可能か否かの確認信号に対する応答信号の受信強度を与えることにより、データ処理の依頼信号の送信先への送信強度を得られる。
【０１２８】
また、本実施の形態にかかる通信ノードが、応答可能か否かの確認信号に対する応答信号の受信強度に基づいてデータ処理の依頼信号の送信先を選択し、選択した送信先への送信強度を制御する。これにより、適切な通信相手にデータ処理を実行させることができる。
【０１２９】
また、本実施の形態にかかる通信ノードは、確認信号を受信しても、バッテリの残量が少ない場合、確認信号に対する応答信号を送信しない。これにより、バッテリ切れによってデータ処理の実行が中断することを防ぎ、データ処理の処理結果をより早く通信装置へ転送させることができる。
【０１３０】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１３１】
（付記１）複数の通信ノードへ、応答可能か否かの確認信号を送信する第１送信部と、
前記複数の通信ノードのうちの応答可能な第１通信ノードからの、前記第１送信部が送信した前記確認信号に対する応答信号を受信する受信部と、
前記受信部が受信した前記応答信号の受信強度に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択する選択部と、
前記選択部が選択した前記第２通信ノードからの前記応答信号の受信強度に基づいて、前記第２通信ノードへの送信強度を算出する強度算出部と、
前記データ処理の実行を依頼する依頼信号を前記強度算出部が算出した前記送信強度に基づいて前記第２通信ノードへ送信する第２送信部と、
を有することを特徴とする通信ノード。
【０１３２】
（付記２）前記第１通信ノードの各々について、前記受信部によって受信された前記応答信号の受信強度に基づいて、前記第１通信ノードと自通信ノードとの距離を算出する距離算出部を有し、
前記選択部は、前記距離算出部が算出した距離に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択し、
前記強度算出部は、前記第２通信ノードについて前記距離算出部が算出した距離に基づいて、前記第２通信ノードへの送信強度を算出することを特徴とする付記１に記載の通信ノード。
【０１３３】
（付記３）前記強度算出部は、前記第２通信ノードと自通信ノードとの間で直接通信可能な送信強度の中で、最小の送信強度を算出することを特徴とする付記１または２に記載の通信ノード。
【０１３４】
（付記４）前記データ処理は、自通信ノードのイベントに応じたデータ処理であって、所定数の部分処理に分割して並列処理可能なデータ処理であり、
前記選択部は、前記受信部が受信した前記応答信号の受信強度に基づいて、前記第１通信ノードから前記所定数以下の第２通信ノードを選択し、
前記第２送信部は、前記選択部が選択した前記第２通信ノードの各々に前記所定数の部分処理のうちの異なる部分処理を依頼する依頼信号を送信することを特徴とする付記１〜３のいずれか一つに記載の通信ノード。
【０１３５】
（付記５）前記選択部は、前記第２通信ノードを選択する際に、前記第１通信ノードの数が前記所定数より多い場合、前記受信部によって受信された前記応答信号の受信強度に基づいて、前記所定数の第１通信ノードを選択し、前記第１通信ノードの数が前記所定数以下の場合、前記第１通信ノードのすべてを選択することを特徴とする付記４に記載の通信ノード。
【０１３６】
（付記６）前記受信部が受信した前記応答信号の受信強度と、前記所定数の部分処理の各々の処理量に応じた情報と、に基づいて、前記選択部が選択した前記第２通信ノードの各々に前記所定数のデータ処理のいずれを依頼するかを決定する決定部を有し、
前記第２送信部は、前記第２通信ノードの各々へ、前記第２通信ノードについて前記決定部が決定したデータ処理を依頼する依頼信号を送信することを特徴とする付記４または５に記載の通信ノード。
【０１３７】
（付記７）前記決定部は、前記応答信号の受信強度が大きい順に前記所定数の部分処理のうちの依頼される部分処理の前記処理量が最も多くなるように、前記第２通信ノードの各々に前記所定数のデータ処理のいずれを依頼するかを決定することを特徴とする付記６に記載の通信ノード。
【０１３８】
（付記８）データ処理の実行を依頼する依頼信号を前記複数の通信ノードのうちの第３通信ノードから受信する第２受信部と、
前記第２受信部が受信した前記依頼信号によって依頼されたデータ処理を実行する実行部と、
を有し、
前記第２送信部は、前記実行部が実行した前記データ処理の処理結果を集約する通信装置への前記処理結果の転送を依頼する依頼信号を前記選択部が選択した前記第２通信ノードへ送信することを特徴とする付記１〜３のいずれか一つに記載の通信ノード。
【０１３９】
（付記９）データ処理の実行を依頼する依頼信号を前記複数の通信ノードのうちの第３通信ノードから受信する第２受信部と、
前記依頼信号によって依頼されたデータ処理うちの一部の処理を実行する実行部と、
を有し、
前記第２送信部は、前記データ処理の処理結果を集約する通信装置への前記実行部が実行した前記一部の処理の処理結果の転送と、前記データ処理のうちの前記一部の処理以外の処理の実行と、を依頼する依頼信号を、前記選択部が選択した前記第２通信ノードへ送信することを特徴とする付記１〜３のいずれか一つに記載の通信ノード。
【０１４０】
（付記１０）自発電した電力を蓄電する蓄電部と、
前記複数の通信ノードのうちの第３通信ノードから、自通信ノードが応答可能か否かの第２確認信号を受信する第２受信部と、
前記第２受信部が前記第２確認信号を受信すると、前記蓄電部に蓄電された電力量が閾値以上か否かを判断する判断部と、
を有し、
前記第２送信部は、前記電力量が前記閾値以上であると前記判断部が判断した場合、前記第２確認信号に対する応答信号を前記第３通信ノードへ送信し、前記電力量が前記閾値未満であると前記判断部が判断した場合、前記第２確認信号に対する応答信号を前記第３通信ノードへ送信しないことを特徴とする付記１〜３のいずれか一つに記載の通信ノード。
【０１４１】
（付記１１）前記強度算出部は、
前記選択部が選択した前記第２通信ノードからの前記応答信号の受信強度を、前記応答信号の受信強度を与えると自通信ノードから前記第２通信ノードへ前記依頼信号が到達可能な送信強度が得られる関数に与えることにより、前記第２通信ノードへの送信強度を算出することを特徴とする付記１〜１０のいずれか一つに記載の通信ノード。
【０１４２】
（付記１２）複数の通信ノードと、
前記複数の通信ノードからデータ処理の処理結果を集約する通信装置と、
を有するシステムであって、
前記複数の通信ノードのうちの第１通信ノードが、
複数の第２通信ノードへ、応答可能か否かの確認信号を送信し、
前記複数の第２通信ノードのうちの応答可能な第３通信ノードからの、送信した前記確認信号に対する応答信号を受信し、
受信した前記応答信号の受信強度に基づいて、前記第１通信ノードからデータ処理の実行を依頼する第４通信ノードを前記第３通信ノードから選択し、
選択した前記第４通信ノードからの前記応答信号の受信強度に基づいて、前記第４通信ノードへの送信強度を算出し、
前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第４通信ノードへ送信することを特徴とするシステム。
【０１４３】
（付記１３）通信ノードが、
複数の通信ノードへ、応答可能か否かの確認信号を送信し、
前記複数の通信ノードのうちの応答可能な第１通信ノードからの、送信した前記確認信号に対する応答信号を受信し、
受信した前記応答信号の受信強度に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択し、
選択した前記第２通信ノードからの前記応答信号の受信強度に基づいて、前記第２通信ノードへの送信強度を算出し、
前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第２通信ノードへ送信する、
処理を実行することを特徴とする通信方法。
【０１４４】
（付記１４）通信ノードは、
複数の通信ノードへ、応答可能か否かの確認信号を送信し、
前記複数の通信ノードのうちの応答可能な第１通信ノードからの、送信した前記確認信号に対する応答信号を受信し、
受信した前記応答信号の受信強度に基づいて、自通信ノードからデータ処理の実行を依頼する第２通信ノードを前記第１通信ノードから選択し、
選択した前記第２通信ノードからの前記応答信号の受信強度に基づいて、前記第２通信ノードへの送信強度を算出し、
前記データ処理の実行を依頼する依頼信号を算出した前記送信強度に基づいて前記第２通信ノードへ送信する、
処理を実行させることを特徴とする通信プログラム。
【０１４５】
（付記１５）応答可能か否かを示す確認信号を送信する第１送信部と、
前記確認信号を受信した複数の通信ノードから、応答可能であることを示す応答信号を受信する受信部と、
前記受信部が受信した前記応答信号の受信強度に基づき前記複数の通信ノードから選択した、データ処理を依頼する依頼先通信ノードへの送信強度を設定する制御部と、
設定した前記送信強度に基づき、前記依頼先通信ノードへデータ処理を依頼する依頼信号を送信する第２送信部と、
を有することを特徴とする通信ノード。
【符号の説明】
【０１４６】
１０１  通信ノード
２００  システム
２０１  通信装置
９００  制御部
９０１  第１受信部
９０２  第２受信部
９０３  第１送信部
９０４  第２送信部
９０５  信号種別判断部
９０６  並列展開ノード設定部
９０７  距離算出部
９０８  選択部
９０９  決定部
９１０  強度算出部
９１１  ノードステート制御部
９１２  バッテリ判断部
９１３  ホップカウンター判断部
９１４  実行部
９１５  ホップカウンター制御部
９１６  タイマ制御部
９１７  パケット生成部
ｓ１  隣接ノード確認信号
ｓ２，ｓ５  応答信号
ｓ３  並列展開処理依頼信号
ｓ４  処理依頼時隣接ノード確認信号
ｓ６  処理引き継ぎ依頼信号
【国際調査報告】
2014188550.tif 000045
2014188550.tif 000046
2014188550.tif 000047
2014188550.tif 000048