(57)【特許請求の範囲】
【請求項１】
情報を記憶する記憶部を有するコンピュータが、
複数の通信ノードでのマルチホップ通信によってそれぞれ異なるデータを第１集約装置から第２集約装置へ伝搬させる複数の経路を示す経路情報を取得して前記記憶部に書き込み、
前記コンピュータから前記複数の通信ノードに実行が依頼される複数のデータ処理について、前記複数の経路のうちの、前記データ処理の実行を依頼する依頼情報および前記データ処理の処理結果を伝搬させる伝搬経路と、前記伝搬経路に含まれる通信ノードのうちの前記データ処理の実行の依頼先の通信ノードと、を示す伝搬情報を取得して前記記憶部に書き込み、
前記記憶部から読み出した前記経路情報および前記伝搬情報に基づく前記複数の通信ノードの各々の消費電力量を導出し、
導出した前記消費電力量に基づいて前記複数の通信ノードのうちのいずれかの通信ノードを選択し、
前記伝搬情報に基づいて、前記依頼情報または前記処理結果のうち、選択した前記通信ノードが転送する依頼情報または処理結果を選択し、
前記依頼情報を選択した場合に、前記複数の経路のいずれかの経路に含まれる経路であって、前記第１集約装置から、選択した前記依頼情報についてのデータ処理の依頼先の通信ノードまでの、選択した前記通信ノードを経由しない経路を特定し、
前記処理結果を選択した場合に、前記複数の経路のいずれかの経路に含まれる経路であって、前記処理結果についてのデータ処理の依頼先の通信ノードから、前記第２集約装置までの、選択した前記通信ノードを経由しない経路を特定し、
選択した前記依頼情報または前記処理結果の少なくとも一部を、特定した前記経路によって伝搬させることを示す情報を生成する、
処理を実行することを特徴とする情報処理方法。
【請求項２】
特定した前記経路に伝搬させることを示す情報を生成する処理では、
選択した前記依頼情報または前記処理結果の少なくとも一部が特定した前記経路によって伝搬されるように、前記伝搬経路が変更された伝搬情報を生成する処理を実行することを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記コンピュータが、
特定した前記経路上の通信ノードについて導出した最も多い消費電力量が閾値以上であるか否かを判断する処理を実行し、
特定した前記経路に伝搬させることを示す情報を生成する処理では、前記最も多い消費電力量が閾値未満である場合は、読み出された前記伝搬情報が示す前記伝搬経路を、選択した前記依頼情報または前記処理結果の少なくとも一部が特定した前記経路によって伝搬されるように変更した伝搬情報を生成し、前記最も多い消費電力量が閾値以上である場合は、読み出した前記伝搬情報が示す前記伝搬経路によって伝搬させることを示す情報を生成することを特徴とする請求項２に記載の情報処理方法。
【請求項４】
前記複数の通信ノードからいずれかの通信ノードを選択する処理では、導出した前記消費電力量に基づいて、前記複数の通信ノードのうちの、最も消費電力量が多い通信ノードを選択することを特徴とする請求項１〜３のいずれか一つに記載の情報処理方法。
【請求項５】
前記依頼情報または前記処理結果を選択する処理では、選択した前記通信ノードが転送する依頼情報または処理結果から、サイズが最も大きい依頼情報または処理結果を選択することを特徴とする請求項１〜４のいずれか一つに記載の情報処理方法。
【請求項６】
前記コンピュータが、
特定した前記経路が複数ある場合、特定した前記経路のうち、特定した前記経路上の通信ノードの導出した最も多い消費電力量が最も少ない経路を選択する処理を実行し、
特定した前記経路に伝搬させることを示す情報を生成する処理では、
選択した前記依頼情報または前記処理結果の少なくとも一部を、選択した前記経路によって伝搬させることを示す情報を生成することを特徴とする請求項１〜５のいずれか一つに記載の情報処理方法。
【請求項７】
前記コンピュータが、
導出した前記消費電力量のうち、選択した前記通信ノードの消費電力量と、特定した前記経路上の通信ノードの最も多い消費電力量と、の差分に基づいて、選択した前記依頼情報または前記処理結果のうち特定した前記経路によって伝搬させる情報を決定する処理を実行し、
特定した前記経路によって伝搬させることを示す情報を生成する処理では、
決定した前記情報を特定した前記経路によって伝搬させることを示す情報を生成することを特徴とする請求項１〜６のいずれか一つに記載の情報処理方法。
【請求項８】
前記コンピュータが、
選択した前記通信ノードについての導出した前記消費電力量のうちの、選択した前記通信ノードが転送する前記依頼情報または前記処理結果の転送に要する消費電力量が、前記複数のデータ処理のうちの選択した前記通信ノードが依頼されたデータ処理に要する消費電力量よりも多いか少ないかを判断する処理を実行し、
選択した前記通信ノードが転送する依頼情報または処理結果を選択する処理は、
前記転送に要する消費電力量が、前記データ処理に要する消費電力量よりも多い場合、取得した前記伝搬情報に基づいて、前記依頼情報または前記処理結果のうち、選択した前記通信ノードが転送する依頼情報または処理結果を選択することを特徴とする請求項１〜７のいずれか一つに記載の情報処理方法。
【請求項９】
前記コンピュータが、
前記転送に要する消費電力量が前記データ処理に要する消費電力量よりも少ない場合、前記依頼情報または前記処理結果を選択する処理と、選択した前記通信ノードを経由しない経路を特定する処理と、特定した前記経路によって伝搬させることを示す情報を生成する処理と、を実行せず、
導出した前記消費電力量に基づいて、前記複数の通信ノードのうちの選択した前記通信ノード（以下、「第１通信ノード」と称する）よりも消費電力量が少ない第２通信ノードを選択し、
前記複数の経路から、前記第２通信ノードを含む経路を特定し、
前記複数のデータ処理のうち、選択した前記第１通信ノードが依頼先であるデータ処理の一部の依頼先を、選択した前記第２通信ノードとすることを示し、選択した前記第１通信ノードが依頼先であるデータ処理の一部についての依頼情報と処理結果を特定した前記経路によって伝搬させることを示す情報を生成する、
処理を実行することを特徴とする請求項８に記載の情報処理方法。
【請求項１０】
情報を記憶する記憶部を有するコンピュータが、
第１集約装置から第２集約装置へ複数の通信ノードでのマルチホップ通信によってそれぞれ異なるデータを伝搬させる複数の経路を示す経路情報を取得して前記記憶部に書き込み、
前記コンピュータから前記複数の通信ノードに実行が依頼される複数のデータ処理について、前記複数の経路のうちの、前記データ処理の実行を依頼する依頼情報および前記データ処理の処理結果を伝搬させる伝搬経路と、前記伝搬経路に含まれる通信ノードのうちの前記データ処理を実行させる通信ノードと、を示す伝搬情報を取得して前記記憶部に書き込み、
前記記憶部から読み出した前記経路情報および前記伝搬情報に基づく前記複数の通信ノードの各々の消費電力量を導出し、
導出した前記消費電力量に基づいて、前記複数の通信ノードのうちの第１通信ノードと、前記複数の通信ノードのうちの選択した前記第１通信ノードよりも消費電力量が少ない第２通信ノードと、を選択し、
前記複数の経路から、前記第２通信ノードを含む経路を特定し、
前記複数のデータ処理のうち、選択した前記第１通信ノードが依頼先であるデータ処理の一部の依頼先を、選択した前記第２通信ノードとすることを示し、選択した前記第１通信ノードが依頼先であるデータ処理の一部についての前記依頼情報と前記処理結果を、特定した前記経路によって伝搬させることを示す情報を生成する、
処理を実行することを特徴とする情報処理方法。
【請求項１１】
前記コンピュータが、
読み出した前記伝搬情報が示す選択した前記第１通信ノードが依頼先であるデータ処理の一部のデータ処理の依頼先が、選択した前記第２通信ノードに変更され、読み出した前記伝搬情報が示す前記伝搬経路が、選択した前記第１通信ノードが依頼先であるデータ処理の一部についての前記依頼情報と前記処理結果を、特定した前記経路によって伝搬させるように変更された伝搬情報を生成することを特徴とする請求項１０に記載の情報処理方法。
【請求項１２】
前記第２通信ノードを選択する処理では、導出した前記消費電力量に基づいて前記複数の通信ノードのうちの最も消費電力量が少ない第２通信ノードを選択することを特徴とする請求項１０または１１に記載の情報処理方法。
【請求項１３】
前記コンピュータが、
特定した前記経路上の通信ノードについての導出した最も多い消費電力量が閾値以上であるか否かを判断する処理を実行し、
前記第２通信ノードを選択する処理では、特定した前記経路上の通信ノードの最も多い消費電力量が前記閾値以上である場合、導出した前記消費電力量に基づいて、前記複数の通信ノードのうちの選択済みの通信ノード以外の第２通信ノードをあらたに選択することを特徴とする請求項１０〜１２のいずれか一つに記載の情報処理方法。
【請求項１４】
前記コンピュータが、
前記複数の経路のいずれかの経路に含まれる経路であって、前記第１集約装置から、前記第２通信ノードまでの第１経路を特定し、
前記複数の経路のいずれかの経路に含まれる経路であって、前記第２通信ノードから、前記第２集約装置までの第２経路を特定し、
前記第１通信ノードについての導出した前記消費電力量と、前記第１経路上の通信ノードについての導出した最も多い消費電力量と、の差分に基づいて、選択した前記第１通信ノードが依頼先であるデータ処理のうち、依頼先を選択した前記第２通信ノードにするデータ処理の第１候補を決定し、
前記第１通信ノードについての導出した前記消費電力量と、前記第２経路上の通信ノードについての導出した最も多い消費電力量と、の差分に基づいて、選択した前記第１通信ノードが依頼先であるデータ処理のうち、依頼先を選択した前記第２通信ノードにするデータ処理の第２候補を決定する、
処理を実行し、
選択した前記第２通信ノードとすることを示す情報を生成する処理では、決定した前記第１候補と決定した前記第２候補のうち、処理量が少ない候補のデータ処理の依頼先を前記第２通信ノードにすることを示し、前記少ない候補のデータ処理についての前記依頼情報と前記処理結果とが前記第１経路と前記第２経路とによって伝搬されることを示す情報を生成することを特徴とする請求項１０〜１３のいずれか一つに記載の情報処理方法。
【請求項１５】
前記コンピュータが、
前記第１通信ノードについての導出した前記消費電力量と、前記第２通信ノードについての導出した前記消費電力量と、の差分に基づいて、選択した前記第１通信ノードが依頼先であるデータ処理のうち、依頼先を選択した前記第２通信ノードにするデータ処理の第３候補を決定する処理を実行し、
選択した前記第２通信ノードにすることを示す情報を生成する処理では、決定した前記第１候補と決定した前記第２候補と決定した前記第３候補のうち、処理量が最も少ない候補のデータ処理の依頼先を前記第２通信ノードにし、前記最も少ない候補のデータ処理についての前記依頼情報と前記処理結果とが前記第１経路と前記第２経路とによって伝搬されることを示す情報を生成することを特徴とする請求項１４に記載の情報処理方法。
【請求項１６】
前記コンピュータが、
前記複数の経路のいずれかの経路に含まれる経路であって、前記第１集約装置から、前記第２通信ノードまでの経路のうち、前記経路上の通信ノードの導出した最も多い消費電力量が最小の第１経路を特定し、
前記複数の経路のいずれかの経路に含まれる経路であって、前記第２通信ノードから、前記第２集約装置までの経路のうち、前記経路上の通信ノードの導出した最も多い消費電力量が最小の第２経路を特定することを特徴とする請求項１４または１５に記載の情報処理方法。
【請求項１７】
第１集約装置から第２集約装置へマルチホップ通信によってデータ処理の実行を依頼する依頼情報または前記データ処理の処理結果を伝搬させる経路上の各通信ノードが、
前記依頼情報または前記処理結果を含む経由情報を受信し、
受信した前記経由情報に含まれる前記依頼情報が示す依頼先が自通信ノードである場合、前記データ処理を前記依頼情報に基づいて実行し、
前記依頼情報または前記処理結果を分割して複数の伝搬先に伝搬させる前記経路上のいずれかの通信ノードが前記依頼情報または前記処理結果を分割する割合を示す分割情報が、受信した前記経由情報に含まれている場合、自通信ノードが前記いずれかの通信ノードであれば、前記複数の伝搬先の各々に対応する、前記分割情報が示す割合に基づいて分割した前記依頼情報または前記処理結果を含む経由情報を生成し、自通信ノードが前記いずれかの通信ノードでなければ、前記分割情報と、前記依頼情報または前記処理結果と、を含む経由情報を生成し、
前記経由情報に前記分割情報が含まれていない場合、前記依頼情報または前記処理結果を含む経由情報を生成し、
生成した前記経由情報を前記経路における自通信ノードの伝搬先に送信する、
処理を実行することを特徴とする通信方法。
【請求項１８】
第１集約装置から第２集約装置へマルチホップ通信によってデータ処理の実行を依頼する依頼情報または前記データ処理の処理結果を伝搬させる経路上の通信ノードであって、
前記依頼情報または前記処理結果を含む経由情報を受信する受信部と、
前記受信部によって受信した経由情報を記憶する記憶部と、
前記記憶部から読み出した前記経由情報に含まれる前記依頼情報が示す依頼先が自通信ノードである場合、前記データ処理を前記依頼情報に基づいて実行する実行部と、
前記依頼情報または前記処理結果を分割して複数の伝搬先に伝搬させる前記経路上のいずれかの通信ノードが前記依頼情報または前記処理結果を分割する割合を示す分割情報が、前記記憶部から読み出した前記経由情報に含まれている場合、自通信ノードが前記いずれかの通信ノードであれば、前記複数の伝搬先の各々に対応する、前記分割情報が示す割合に基づいて分割した前記依頼情報または前記処理結果を含む経由情報を生成し、自通信ノードが前記いずれかの通信ノードでなければ、前記分割情報と、前記依頼情報または前記処理結果と、を含む経由情報を生成し、前記経由情報に前記分割情報が含まれていない場合、前記依頼情報または前記処理結果を含む経由情報を生成する生成部と、
生成した前記経由情報を前記経路における自通信ノードの伝搬先に送信する送信部と、
を有することを特徴とする通信ノード。
【請求項１９】
第１集約装置と、
前記第１集約装置と異なる第２集約装置と、
マルチホップ通信によって前記第１集約装置から前記第２集約装置への複数の経路でそれぞれ異なるデータを伝搬させる複数の通信ノードと、
前記第１集約装置と前記第２集約装置との各々と通信可能であって、情報を記憶する記憶部を有する情報処理装置と、
を有するシステムであって、
前記情報処理装置が、
前記複数の通信ノードでのマルチホップ通信によってそれぞれ異なるデータを第１集約装置から第２集約装置へ伝搬させる複数の経路を示す経路情報を取得して前記記憶部に書き込み、
前記情報処理装置から前記複数の通信ノードに実行が依頼される複数のデータ処理について、前記複数の経路のうちの前記データ処理の実行を依頼する依頼情報および前記データ処理の処理結果を伝搬させる伝搬経路と、前記伝搬経路に含まれる通信ノードのうちの前記データ処理の依頼先の通信ノードと、を示す伝搬情報を取得して前記記憶部に書き込み、
前記記憶部から読み出した前記経路情報および前記伝搬情報に基づく前記複数の通信ノードの各々の消費電力量を導出し、
前記複数の通信ノードの各々の導出した前記消費電力量のうち最も多い消費電力量が閾値未満であるか否かを判断し、
前記最も多い消費電力量が閾値未満である場合、前記伝搬情報を前記第１集約装置に送信することにより、前記伝搬情報に基づいて前記複数のデータ処理を前記複数の通信ノードに実行させる、
処理を実行することを特徴とするシステム。
【請求項２０】
情報を記憶する記憶部を有するコンピュータに、
複数の通信ノードでのマルチホップ通信によってそれぞれ異なるデータを第１集約装置から第２集約装置へ伝搬させる複数の経路を示す経路情報を取得して前記記憶部に書き込み、
前記コンピュータから前記複数の通信ノードに実行が依頼される複数のデータ処理について、前記複数の経路のうちの、前記データ処理の実行を依頼する依頼情報および前記データ処理の処理結果を伝搬させる伝搬経路と、前記伝搬経路に含まれる通信ノードのうちの前記データ処理の依頼先の通信ノードと、を示す伝搬情報を取得して前記記憶部に書き込み、
前記記憶部から読み出した前記経路情報および前記伝搬情報に基づく前記複数の通信ノードの各々の消費電力量を導出し、
導出した前記消費電力量に基づいて前記複数の通信ノードのうちのいずれかの通信ノードを選択し、
前記伝搬情報に基づいて、前記依頼情報または前記処理結果のうち、選択した前記通信ノードが転送する依頼情報または処理結果を選択し、
前記依頼情報を選択した場合に、前記複数の経路のいずれかの経路に含まれる経路であって、前記第１集約装置から、選択した前記依頼情報についてのデータ処理の依頼先の通信ノードまでの、選択した前記通信ノードを経由しない経路を特定し、
前記処理結果を選択した場合に、前記複数の経路のいずれかの経路に含まれる経路であって、前記処理結果についてのデータ処理の依頼先の通信ノードから、前記第２集約装置までの、選択した前記通信ノードを経由しない経路を特定し、
選択した前記依頼情報または前記処理結果の少なくとも一部を、特定した前記経路によって伝搬させることを示す情報を生成する、
処理を実行させることを特徴とする情報処理プログラム。
【請求項２１】
情報を記憶する記憶部を有するコンピュータに、
第１集約装置から第２集約装置へ複数の通信ノードでのマルチホップ通信によってそれぞれ異なるデータを伝搬させる複数の経路を示す経路情報を取得して前記記憶部に書き込み、
前記コンピュータから前記複数の通信ノードに実行が依頼される複数のデータ処理について、前記複数の経路のうちの、前記データ処理の実行を依頼する依頼情報および前記データ処理の処理結果を伝搬させる伝搬経路と、前記伝搬経路に含まれる通信ノードのうちの前記データ処理を実行させる通信ノードと、を示す伝搬情報を取得して前記記憶部に書き込み、
前記記憶部から読み出した前記経路情報および前記伝搬情報に基づく前記複数の通信ノードの各々の消費電力量を導出し、
導出した前記消費電力量に基づいて、前記複数の通信ノードのうちの第１通信ノードと、前記複数の通信ノードのうちの選択した前記第１通信ノードよりも消費電力量が少ない第２通信ノードと、を選択し、
前記複数の経路から、前記第２通信ノードを含む経路を特定し、
前記複数のデータ処理のうち、選択した前記第１通信ノードが依頼先であるデータ処理の一部の依頼先を、選択した前記第２通信ノードとすることを示し、選択した前記第１通信ノードが依頼先であるデータ処理の一部についての前記依頼情報と前記処理結果を、特定した前記経路によって伝搬させることを示す情報を生成する、
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、通信方法、通信ノード、システム、および情報処理プログラムに関する。
【背景技術】
【０００２】
従来、バッテリ駆動する複数の機器を利用して並列処理を行う手法としては、機器のバッテリ残量と他の機器との通信距離に基づいて機器に割り当てる処理を決定する技術が知られている（たとえば、下記特許文献１を参照。）。【０００３】
また、複数のセンサー付無線端末を所定空間に散在させ、それらが協調して環境や物理的状況を採取することを可能とするセンサーネットワーク（ＷＳＮ：Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋｓ）システムが知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−６５１６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、マルチホップ通信によりデータが伝搬される場合は、データの伝搬経路によって通信ノード間のデータ転送量が異なるため、各通信ノードの消費電力量が不均一となるという問題がある。【０００６】
１つの側面では、本発明は、各通信ノードの消費電力量の均等化を図ることができる情報処理方法、通信方法、通信ノード、システム、および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、複数の通信ノードでのマルチホップ通信によってそれぞれ異なるデータを第１集約装置から第２集約装置へ伝搬させる複数の経路を示す経路情報を取得して、情報を記憶する記憶部に書き込み、自装置から前記複数の通信ノードに実行が依頼される複数のデータ処理について、前記複数の経路のうちの、前記データ処理の実行を依頼する依頼情報および前記データ処理の処理結果を伝搬させる伝搬経路と、前記伝搬経路に含まれる通信ノードのうちの前記データ処理の実行の依頼先の通信ノードと、を示す伝搬情報を取得して前記記憶部に書き込み、前記記憶部から読み出した前記経路情報および前記伝搬情報に基づく前記複数の通信ノードの各々の消費電力量を導出し、導出した前記消費電力量に基づいて前記複数の通信ノードのうちのいずれかの通信ノードを選択し、前記伝搬情報に基づいて、前記依頼情報または前記処理結果のうち、選択した前記通信ノードが転送する依頼情報または処理結果を選択し、前記依頼情報を選択した場合に、前記複数の経路のいずれかの経路に含まれる経路であって、前記第１集約装置から、選択した前記依頼情報についてのデータ処理の依頼先の通信ノードまでの、選択した前記通信ノードを経由しない経路を特定し、前記処理結果を選択した場合に、前記複数の経路のいずれかの経路に含まれる経路であって、前記処理結果についてのデータ処理の依頼先の通信ノードから、前記第２集約装置までの、選択した前記通信ノードを経由しない経路を特定し、選択した前記依頼情報または前記処理結果の少なくとも一部を、特定した前記経路によって伝搬させることを示す情報を生成する情報処理方法、および情報処理プログラムが提案される。【０００８】
本発明の他の側面によれば、第１集約装置から第２集約装置へ複数の通信ノードでのマルチホップ通信によってそれぞれ異なるデータを伝搬させる複数の経路を示す経路情報を取得して、情報を記憶する記憶部に書き込み、自装置から前記複数の通信ノードに実行が依頼される複数のデータ処理について、前記複数の経路のうちの、前記データ処理の実行を依頼する依頼情報および前記データ処理の処理結果を伝搬させる伝搬経路と、前記伝搬経路に含まれる通信ノードのうちの前記データ処理を実行させる通信ノードと、を示す伝搬情報を取得して前記記憶部に書き込み、前記記憶部から読み出した前記経路情報および前記伝搬情報に基づく前記複数の通信ノードの各々の消費電力量を導出し、導出した前記消費電力量に基づいて、前記複数の通信ノードのうちの第１通信ノードと、前記複数の通信ノードのうちの選択した前記第１通信ノードよりも消費電力量が少ない第２通信ノードと、を選択し、前記複数の経路から、前記第２通信ノードを含む経路を特定し、前記複数のデータ処理のうち、選択した前記第１通信ノードが依頼先であるデータ処理の一部の依頼先を、選択した前記第２通信ノードとすることを示し、選択した前記第１通信ノードが依頼先であるデータ処理の一部についての前記依頼情報と前記処理結果を、特定した前記経路によって伝搬させることを示す情報を生成する情報処理方法、および情報処理プログラムが提案される。【０００９】
また、本発明の他の側面によれば、第１集約装置から第２集約装置へマルチホップ通信によってデータ処理の実行を依頼する依頼情報または前記データ処理の処理結果を伝搬させる経路上の各通信ノードであって、前記依頼情報または前記処理結果を含む経由情報を受信し、受信した前記経由情報に含まれる前記依頼情報が示す依頼先が自通信ノードである場合、前記データ処理を前記依頼情報に基づいて実行し、前記依頼情報または前記処理結果を分割して複数の伝搬先に伝搬させる前記経路上のいずれかの通信ノードが前記依頼情報または前記処理結果を分割する割合を示す分割情報が、受信した前記経由情報に含まれている場合、自通信ノードが前記いずれかの通信ノードであれば、前記複数の伝搬先の各々に対応する、前記分割情報が示す割合に基づいて分割した前記依頼情報または前記処理結果を含む経由情報を生成し、自通信ノードが前記いずれかの通信ノードでなければ、前記分割情報と、前記依頼情報または前記処理結果と、を含む経由情報を生成し、前記経由情報に前記分割情報が含まれていない場合、前記依頼情報または前記処理結果を含む経由情報を生成し、生成した前記経由情報を前記経路における自通信ノードの伝搬先に送信する通信方法、通信ノードが提案される。【００１０】
また、本発明の他の側面によれば、第１集約装置と、前記第１集約装置と異なる第２集約装置と、マルチホップ通信によって前記第１集約装置から前記第２集約装置への複数の経路でそれぞれ異なるデータを伝搬させる複数の通信ノードと、前記第１集約装置と前記第２集約装置との各々と通信可能であって、情報を記憶する記憶部を有する情報処理装置と、を有するシステムであって、前記情報処理装置が、前記複数の通信ノードでのマルチホップ通信によってそれぞれ異なるデータを第１集約装置から第２集約装置へ伝搬させる複数の経路を示す経路情報を取得して前記記憶部に書き込み、前記情報処理装置から前記複数の通信ノードに実行が依頼される複数のデータ処理について、前記複数の経路のうちの前記データ処理の実行を依頼する依頼情報および前記データ処理の処理結果を伝搬させる伝搬経路と、前記伝搬経路に含まれる通信ノードのうちの前記データ処理の依頼先の通信ノードと、を示す伝搬情報を取得して前記記憶部に書き込み、前記記憶部から読み出した前記経路情報および前記伝搬情報に基づく前記複数の通信ノードの各々の消費電力量を導出し、前記複数の通信ノードの各々の導出した前記消費電力量のうち最も多い消費電力量が閾値未満であるか否かを判断し、前記最も多い消費電力量が閾値未満である場合、前記伝搬情報を前記第１集約装置に送信することにより、前記伝搬情報に基づいて前記複数のデータ処理を前記複数の通信ノードに実行させるシステムが提案される。
【発明の効果】
【００１１】
本発明の一態様によれば、各通信ノードの消費電力量の均等化を図ることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、消費電力量の均等化例を示す説明図である。
【図２】図２は、センサーネットワーク例を示す説明図である。
【図３】図３は、システムの一例を示す説明図である。
【図４】図４は、情報処理装置のハードウェア構成例を示すブロック図である。
【図５】図５は、センサーノードのハードウェア構成例を示すブロック図である。
【図６】図６は、集約装置のハードウェア構成例を示すブロック図である。
【図７Ａ】図７Ａは、情報処理装置の機能的構成を示すブロック図（その１）である。
【図７Ｂ】図７Ｂは、情報処理装置の機能的構成を示すブロック図（その２）である。
【図８】図８は、分割割合変更部の詳細なブロック図である。
【図９】図９は、処理量変更部の詳細なブロック図である。
【図１０】図１０は、消費電力量の算出例を示す説明図である。
【図１１】図１１は、伝搬情報例を示す説明図である。
【図１２】図１２は、分割割合変更例（その１）を示す説明図である。
【図１３】図１３は、分割割合変更例（その２）を示す説明図である。
【図１４】図１４は、分割割合変更例（その３）を示す説明図である。
【図１５】図１５は、処理量変更例（その１）を示す説明図である。
【図１６】図１６は、処理量変更例（その２）を示す説明図である。
【図１７】図１７は、センサーノードの機能的構成を示すブロック図である。
【図１８】図１８は、経由情報例を示す説明図である。
【図１９】図１９は、情報処理装置が行う全体の処理手順例を示すフローチャートである。
【図２０】図２０は、情報処理装置が行う均等化処理手順例を示すフローチャートである。
【図２１】図２１は、情報処理装置が行う分割割合変更処理手順例を示すフローチャート（その１）である。
【図２２】図２２は、情報処理装置が行う分割割合変更処理手順例を示すフローチャート（その２）である。
【図２３】図２３は、情報処理装置が行う処理量変更処理手順例を示すフローチャート（その１）である。
【図２４】図２４は、情報処理装置が行う処理量変更処理手順例を示すフローチャート（その２）である。
【図２５】図２５は、情報処理装置が行う処理量変更処理手順例を示すフローチャート（その３）である。
【図２６】図２６は、ネットワーク構成が複数ある場合の情報処理装置が行う処理手順例を示すフローチャート（その１）である。
【図２７】図２７は、ネットワーク構成が複数ある場合の情報処理装置が行う処理手順例を示すフローチャート（その２）である。
【図２８】図２８は、センサーノードが行う処理手順例を示すフローチャートである。
【図２９】図２９は、第１集約装置が行う処理手順例を示すフローチャートである。
【図３０】図３０は、第２集約装置が行う処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本発明にかかる情報処理方法、通信方法、通信ノード、システム、および情報処理プログラムの実施の形態を詳細に説明する。本実施の形態では、各通信ノードをセンサーネットワークシステム内のセンサーノードとする。たとえば、センサーネットワークでは、個々のセンサーノードが有するプロセッサの処理能力は高くないが、センサーノードの数が数千、数万と大量にあるため、センサーネットワークシステム全体の処理能力は高くなる。そこで、本実施の形態では、センサーノードがセンシング動作をしていない期間にセンサーネットワークを計算機資源として利用する。たとえば、イタレーション間に依存関係がないループ並列処理をセンサーネットワークに演算させる。
【００１４】
図１は、消費電力量の均等化例を示す説明図である。センサーネットワークでは、複数の通信ノードである複数のセンサーノード１０１のマルチホップ通信によってそれぞれ異なるデータが複数の経路によって第１通信装置である第１集約装置から第２通信装置である第２集約装置に伝搬される。そのため、各センサーノード１０１の消費電力量は、データ処理に要するデータ量と、データ処理に関するデータの送受信に要する通信量と、によって定まる。
【００１５】
伝搬経路によっては、各センサーノード１０１は、転送のデータ量が多いと、依頼されたデータ処理量が少なくても、消費電力量が多くなってしまう場合がある。そのため、一部のセンサーノード１０１において、依頼されたデータ処理とデータ転送を可能な電力量がバッテリの蓄電量を超えてしまう場合がある。マルチホップ通信によってデータが転送されるため、いずれかのセンサーノード１０１がバッテリ切れになってしまうと、データが転送されなくなってしまい、センサーネットワークに依頼したループ並列処理が完了しない可能性がある。そのため、バッテリに余裕のあるセンサーノード１０１が多数あったとしても、センサーネットワークにデータ処理を依頼できないこととなる。または、バッテリ切れになると、各センサーノード１０１の自ノードに関する処理が行えなくなってしまう。
【００１６】
そこで、本実施の形態では、各センサーノード１０１の消費電力量がバッテリに蓄電可能な電力量を超えないようにするために、情報処理装置１００によって各センサーノード１０１の消費電力量の均等化を図る。情報処理装置１００は、センサーノード１０１の消費電力量を均等化する処理を行うコンピュータである。図１には、センサーノード１０１−１からセンサーノード１０１−７がある。たとえば、センサーノード１０１−７に実行が依頼されるデータ処理についての依頼情報を送受信する経路は複数存在する。たとえば、センサーノード１０１−３からセンサーノード１０１−５を経由してセンサーノード１０１−７に到達する経路と、センサーノード１０１−３からセンサーノード１０１−６を経由してセンサーノード１０１−７に到達する経路と、の２つの経路がある。
【００１７】
たとえば、センサーノード１０１−５の消費電力量が多い場合に、情報処理装置１００は、センサーノード１０１−７に実行が依頼されるデータ処理についての依頼情報の一部を、センサーノード１０１−５を迂回した経路によって伝搬させる。具体的に、情報処理装置１００は、（１）センサーノード１０１−７に実行が依頼されるデータ処理についての依頼情報について分岐点であるセンサーノード１０１−３での分割割合を変更することにより、分配を変える。これにより、消費電力量を均一化させてもよい。
【００１８】
また、たとえば、センサーノード１０１−５の消費電力量が多い場合に、情報処理装置１００は、（２）センサーノード１０１−５に実行が依頼されるデータ処理の依頼先を別経路のセンサーノード１０１−６に変更する。これにより、消費電力量を均一化させてもよい。
【００１９】
図２は、センサーネットワーク例を示す説明図である。センサーネットワーク２００は、複数の通信ノードである複数のセンサーノード１０１を含む。センサーネットワーク２００には、第１集約装置２０１−１から第２集約装置２０１−２へ複数のセンサーノード１０１でのマルチホップ通信によってそれぞれ異なるデータを転送させる複数の経路（たとえば、ｒｘ−１，ｒｘ−２，・・・，ｒｘ−ｉ）がある。図２のセンサーノード１０１間が実線で結ばれているが、実際にはマルチホップ通信による経路を示している。複数の経路をネットワーク構成、またはネットワークトポロジと称し、複数の経路を示す情報を経路情報と称する。
【００２０】
センサーネットワーク２００の構築方法については特に限定しないが、ここで一例を簡単に説明する。たとえば、まず、各センサーノード１０１は、（ａ）近距離無線の届く範囲にいるすべての近隣のセンサーノード１０１と無線通信によって接続する。複数のセンサーノード１０１は、（ｂ）第１集約装置２０１−１から空のデータを周辺のセンサーノードに対してマルチホップ通信によってリレー転送させ、各センサーノード１０１は、第１集約装置２０１−１から自センサーノード１０１までの最短ホップ数を計測する。
【００２１】
各センサーノード１０１は、（ｃ）（ａ）において接続した近隣のセンサーノード１０１のうち自センサーノード１０１よりホップ数が少ないセンサーノード１０１を親ノードとする。各センサーノード１０１は、接続関係があるセンサーノード１０１−１のうち、ホップ数が多いセンサーノード１０１を子ノードとする。そして、各センサーノード１０１は、接続関係があるセンサーノード１０１−１のうち、ホップ数が同じノードを兄弟ノードとする。各センサーノード１０１は、このときに、兄弟ノードとの接続は切り、親ノードに対しては親ノードが一つだけなら接続を維持、親ノードが複数ある場合は最も第１集約装置２０１−１に近い親ノードとだけ接続を残し、それ以外は接続を切る。これにより、センサーネットワーク２００を構築できる。
【００２２】
また、第２集約装置２０１−２が、構築したネットワーク構成を各センサーノード１０１から接続しているセンサーノード１０１の情報を回収することにより、取得することができる。上述したように本実施の形態ではこの方法に限らず、様々な方法で構築されたネットワークを利用してもよい。
【００２３】
また、同一のセンサーネットワーク２００であっても、マルチホップ通信による経路によって、ネットワーク構成は複数ある。集約装置２０１については、ここでは、２つを挙げているが、単一であってもよいし、３つ以上であってもよい。
【００２４】
図３は、システムの一例を示す説明図である。システム３００では、ループ処理依頼を行う情報処理装置１００がセンサーネットワーク２００を利用してループ処理を実行させる。システム３００は、たとえば、センサーネットワーク２００と、複数の通信装置である複数の集約装置２０１と、情報処理装置１００と、を有する。情報処理装置１００は、ネットワークＮＥＴを介して複数の集約装置２０１の各々と接続されている。
【００２５】
（情報処理装置１００のハードウェア構成例）
図４は、情報処理装置のハードウェア構成例を示すブロック図である。図４において、情報処理装置１００は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、ディスクドライブ４０４と、ディスク４０５と、を有している。情報処理装置１００は、ネットワークＩ／Ｆ４０６と、入力装置４０７と、出力装置４０８と、を有している。また、各部はバス４００によってそれぞれ接続されている。
【００２６】
ここで、ＣＰＵ４０１は、情報処理装置１００の全体の制御を司る。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される記憶部である。ディスクドライブ４０４は、ＣＰＵ４０１の制御にしたがってディスク４０５に対するデータのリード／ライトを制御する。ディスク４０５は、ディスクドライブ４０４の制御で書き込まれたデータを記憶する。ディスク４０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００２７】
ネットワークＩ／Ｆ４０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークＮＥＴに接続され、このネットワークＮＥＴを介して他の装置に接続される。そして、ネットワークＩ／Ｆ４０６は、ネットワークＮＥＴと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。ネットワークＩ／Ｆ４０６には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２８】
入力装置４０７は、キーボード、マウス、タッチパネルなど利用者の操作により、各種データの入力を行うインターフェースである。また、入力装置４０７は、カメラから画像や動画を取り込むこともできる。また、入力装置４０７は、マイクから音声を取り込むこともできる。出力装置４０８は、ＣＰＵ４０１の指示により、データを出力するインターフェースである。出力装置４０８には、ディスプレイやプリンタが挙げられる。
【００２９】
（センサーノード１０１のハードウェア構成例）
図５は、センサーノードのハードウェア構成例を示すブロック図である。センサーノード１０１は、マイクロプロセッサ（以下、「ＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）」と称する。）５０１と、センサー５０２と、無線通信回路５０３と、ＲＡＭ５０４と、ＲＯＭ５０５と、不揮発メモリ５０６と、アンテナ５０７と、ハーベスタ５０８と、バッテリ５０９と、ＰＭＵ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）５１０と、を有する。センサーノード１０１は、ＭＣＵ５０１と、センサー５０２と、無線通信回路５０３と、ＲＡＭ５０４と、ＲＯＭ５０５と、不揮発メモリ５０６と、を接続する内部バス５００を有する。図５において点線の矢印は電力線を示し、図５において実線の矢印はデータ線を示す。
【００３０】
センサー５０２は、設置箇所における所定の変位量を検出する。センサー５０２は、たとえば、設置箇所の圧力を検出する圧電素子や、温度を検出する素子、光を検出する光電素子などを用いることができる。アンテナ５０７は、集約装置２０１と無線通信する電波を送受信する。無線通信回路５０３（ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ））は、受信した無線電波を受信信号として出力し、送信信号を無線電波としてアンテナ５０７を介して送信する。
【００３１】
ＭＣＵ５０１は、センサー５０２が検出したデータを処理する。ＲＡＭ５０４は、ＭＣＵ５０１における処理の一時データを格納する。ＲＡＭ５０４は、ＭＣＵ５０１における処理の一時データを格納する。ＲＯＭ５０５は、ＭＣＵ５０１が実行する処理プログラムなどを格納する。不揮発メモリ５０６は、書き込み可能なメモリであって、電力供給が途絶えたときなどにおいても書き込まれた所定のデータを保持する。たとえば、書き込みか可能な不揮発メモリ５０６は、フラッシュメモリが挙げられる。
【００３２】
ハーベスタ５０８は、センサーノード１０１の設置箇所における外部環境、たとえば、光、振動、温度、無線電波（受信電波）などのエネルギー変化に基づき発電を行う。ハーベスタ５０８は、センサー５０２によって検出された変位量に応じて発電を行ってもよい。バッテリ５０９は、ハーベスタ５０８により発電された電力を蓄える。すなわち、センサーノード１０１は、二次電池や外部電源などが不要であり、動作に必要な電力を自装置の内部で生成する。ＰＭＵ５１０は、バッテリ５０９によって蓄えられた電力を、センサーノード１０１の各部に駆動電源として供給する制御を行う。
【００３３】
（集約装置２０１のハードウェア構成例）
図６は、集約装置のハードウェア構成例を示すブロック図である。集約装置２０１は、センサーノード１０１と異なり、外部電源に基づき動作する。集約装置２０１は、センサーノード１０１のＭＣＵ５０１よりも高性能なプロセッサ（ＣＰＵ６０１）と、大容量のＲＯＭ６０２、ＲＡＭ６０３、および不揮発メモリ６０４と、インターフェース（Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ））回路６０５と、を有する。集約装置２０１は、ＣＰＵ６０１と、ＲＯＭ６０２と、ＲＡＭ６０３と、不揮発メモリ６０４と、Ｉ／Ｏ回路６０５と、を接続するバス６００を有する。
【００３４】
また、Ｉ／Ｏ回路６０５には、アンテナ６０６および無線通信回路（ＲＦ）６０７と、ネットワークＩ／Ｆ６０８が接続されている。これにより、集約装置２０１は、アンテナ６０６および無線通信回路６０７を介して、センサーノード１０１と無線通信することができる。さらに、集約装置２０１は、ネットワークＩ／Ｆ６０８を介して、ＴＣＰ／ＩＰのプロトコル処理などにより、インターネットなどのネットワークＮＥＴを介して情報処理装置１００、サーバ３０１や利用者端末などの外部装置と通信を行うことができる。
【００３５】
（情報処理装置１００の機能的構成例）
図７Ａおよび図７Ｂは、情報処理装置の機能的構成を示すブロック図である。図８は、分割割合変更部の詳細なブロック図である。図９は、処理量変更部の詳細なブロック図である。情報処理装置１００は、ユーザーインターフェイス部７１１と、伝搬情報生成部７１２と、送受信部７１３と、を有する。
【００３６】
ユーザーインターフェイス部７１１は、ユーザーからのデータ処理依頼などのコマンドを受け付ける。また、ユーザーインターフェイス部７１１は、データ処理依頼の処理結果の表示を行う。具体的には、ユーザーインターフェイス部７１１は、入力装置４０７を介してコマンドを受け付け、出力装置４０８によって処理結果を出力する。
【００３７】
伝搬情報生成部７１２は、センサーネットワーク２００にユーザーから依頼されたデータ処理についての伝搬情報を生成する。伝搬情報生成部７１２の詳細については、後述する。
【００３８】
送受信部７１３は、伝搬情報生成部７１２によって生成された伝搬情報を第１集約装置２０１−１に送信する。また、送受信部７１３は、処理結果を第２集約装置２０１−２から受信する。具体的に、送受信部７１３は、たとえば、ネットワークＩ／Ｆ４０６によって実現される。
【００３９】
つぎに、伝搬情報生成部７１２について詳細に説明する。図７Ｂに示すように、伝搬情報生成部７１２は、第１取得部７０１と、第２取得部７０２と、記憶部７０３と、初期配置部７０４と、導出部７０５と、ノード選択部７０６と、判断部７０７と、分割割合変更部７０８と、処理量変更部７０９と、を有する。記憶部７０３は、たとえば、ＲＡＭ４０３によって実現される。記憶部７０３以外の各部の処理は、たとえば、ＣＰＵ４０１がアクセス可能な記憶装置に記憶された情報処理プログラムにコーディングされている。そして、ＣＰＵ４０１が記憶装置から情報処理プログラムを読み出して、情報処理プログラムにコーディングされている処理を実行する。これにより、各部の処理が実現される。また、各部の処理結果は、たとえば、ＲＡＭ４０３、ディスク４０５などの記憶装置に記憶される。
【００４０】
第１取得部７０１は、第１集約装置２０１−１から第２集約装置２０１−２へ複数のセンサーノード１０１でのマルチホップ通信によってそれぞれ異なるデータを転送させる複数の経路を示す経路情報７００を取得して記憶部７０３に書き込む。複数の経路は、図２で説明したような例がある。取得形式としては、ネットワークＮＥＴを介してサーバ３０１などの他の装置から取得してもよいし、入力装置４０７による入力を受け付けてもよいし、ディスク４０５などの記憶装置から読み出してもよい。
【００４１】
＜初期配置＞
つぎに、情報処理装置１００は、初期配置部７０４によって初期配置を行う。初期配置方法としては、たとえば、初期配置部７０４は、ループに関するイタレーション数をＮ等分して、分割したイタレーション数に関するデータ処理を各センサーノード１０１に割り当てる。端数のイタレーションについては、初期配置部７０４は、各センサーノード１０１のループのイタレーション数がなるべく均一になるように各センサーノード１０１に振り分ける。たとえば、初期配置部７０４は、１０回転のループ処理を４分割する場合、２，２，３，３というように分割する。２，３，２，３に分割されても、３，３，２，２に分割されてもよく、初期配置の時点では特に限定しなくてよい。
【００４２】
第１集約装置２０１−１からあるセンサーノード１０１までの経路が１つの場合、経路上にあるセンサーノード１０１は、あるセンサーノード１０１に実行が依頼されるデータ処理の依頼情報を転送することとなる。ここで、データ処理の実行を依頼する依頼情報を入力データと称する。第１集約装置２０１−１からあるセンサーノード１０１までの経路が複数ある場合、経路の分岐点であるセンサーノード１０１において入力データが分割されてもよい。初期配置部７０４は、分岐点であるセンサーノード１０１での分岐数で入力データを等分割するように伝搬経路を決定する。
【００４３】
出力データについても同様に、あるセンサーノード１０１からみて第２通信経路までの経路が１つの場合、経路上にあるセンサーノード１０１は、あるセンサーノード１０１が依頼先であるデータ処理の処理結果を転送することとなる。ここで、データ処理の処理結果を出力データと称する。あるセンサーノード１０１から第２集約装置２０１−２までの経路が複数ある場合、経路の分岐点であるセンサーノード１０１において、あるセンサーノード１０１に実行された出力データが分割されてもよい。初期配置部７０４は、分岐点であるセンサーノード１０１での分岐数で出力データを等分割するように伝搬経路を決定する。
【００４４】
初期配置部７０４は、すべてのセンサーノード１０１の各々に実行が依頼される入力データと出力データの初期配置における伝搬経路を決定することにより、各センサーノード１０１を経由する入出力データ量（Ｄｈ）を算出することができる。そして、初期配置部７０４は、伝搬経路と、伝搬経路に含まれるセンサーノード１０１のうちのデータ処理を実行させるセンサーノード１０１と、を示す伝搬情報１１００を生成して、記憶部７０３に書き込む。
【００４５】
または、第２取得部７０２は、伝搬情報１１００を取得して記憶部７０３に書き込む。取得形式としては、利用者によって入力装置４０７を介して入力されてもよいし、ディスク４０５などの記憶装置に記憶された伝搬情報１１００を読み出すことにより、取得してもよい。ここで、取得される伝搬情報１１００は、初期配置部７０４によって得られる伝搬情報１１００であってもよいし、利用者によって作成された伝搬情報１１００であってもよい。または、取得される伝搬情報１１００は、後述する分割割合変更部７０８や処理量変更部７０９によって処理量や分割割合が変更された後の伝搬情報１１００を再度取得してもよい。伝搬情報１１００は、複数のデータ処理について、複数の経路のうちのデータ処理の依頼情報および処理結果を伝搬させる伝搬経路と、伝搬経路に含まれるセンサーノード１０１のうちのデータ処理を実行させるセンサーノード１０１と、を示す。伝搬情報１１００の詳細例は、図１１を用いて後述する。
【００４６】
図１０は、消費電力量の算出例を示す説明図である。図１０の例では、入力または出力は、入力データまたは出力データを示し、入力または出力に付された番号は、入力データまたは出力データについてのデータ処理の依頼先を示す。図１０の例では、たとえば、親ノードが複数あるような合流点のセンサーノード１０１−３については、通信量が増えるため、消費電力量が多くなってしまう。
【００４７】
導出部７０５は、経路情報７００および伝搬情報１１００に基づく複数のセンサーノード１０１の各々の消費電力量を導出する。たとえば、１イタレーション当たりの入出力データ量を予めＲＡＭ４０３、ディスク４０５などの記憶装置に記憶させる。導出部７０５は、１イタレーション当たりの入出力データ量に基づいて、各センサーノード１０１のデータ処理量（Ｃ）と依頼されたデータ処理についての入出力データ量（Ｄｈ）と、転送する入力データ量（Ｄｉ）と転送する出力データ量（Ｄｏ）を算出することができる。
【００４８】
マルチホップ通信方式のセンサーネットワーク２００では、入力データは第１集約装置２０１−１から幾つかの親ノードを経由して依頼先のセンサーノード１０１に辿り着く。上述したように、親ノードとは、第１集約装置２０１−１からデータ処理の依頼先までの経路上にある当該データ処理の入力データを転送するセンサーノード１０１を示す。そして、依頼先のセンサーノード１０１によってデータ処理した後の出力データは、幾つかの子ノードを経由して第２センサーノード１０１まで送信される。上述したように、子ノードとは、データ処理の依頼先から第２集約装置２０１−２までの経路上にある当該データ処理の出力データを転送するセンサーノード１０１を示す。
【００４９】
そのため、各センサーノード１０１の消費電力量は、データ処理に要する消費電力量と、そのデータ処理の入出力データの通信に要する消費電力量と、転送する入出力データの通信に要する消費電力量と、によって定まる。
【００５０】
そこで、導出部７０５は、センサーノード１０１の設計情報から、単位データ処理量当たりの消費電力量（Ｐｐ）と、単位データ量当たりの送信電力量（Ｐｓ）と、単位データ量当たりの受信電力量（Ｐｒ）を取得する。センサーノード１０１の設計情報については、ネットワークＮＥＴを介してサーバ３０１から取得してもよいし、利用者から入力されてもよい。設計情報については、予めＲＡＭ４０３、ディスク４０５などの記憶装置に記憶させる。導出部７０５は、各センサーノード１０１の消費電力量を以下式（１）に基づいて算出する。
【００５１】
センサーノード１０１の消費電力量＝Ｃ×Ｐｐ＋Ｉ×Ｐｒ＋Ｏ×Ｐｓ＋Ｄｈ×（Ｐｒ＋Ｐｓ）・・・（１）
【００５２】
Ｉは、受信するデータ量であり、Ｏは、送信するデータ量である。図１０のセンサーノード１０１−３を例に挙げると、出力データ１，２，４，５の受信に要する消費電力量と、各センサーノード１０１のデータ処理量（Ｃ）と入力データ量（Ｄｉ）と出力データ量（Ｄｏ）を算出することができる。導出部７０５は、入力データ３に基づいてデータ処理量（Ｃ）を算出し、入力データ３および出力データ３に基づいて入出力データ量（Ｄｈ）を算出する。導出部７０５は、出力データ１，２，４，５によって受信するデータ量（Ｉ）と送信するデータ量（Ｏ）を算出する。そして、導出部７０５は、算出した各情報を式（１）に与えることにより、センサーノード１０１−３の消費電力量を導出する。
【００５３】
図１１は、伝搬情報例を示す説明図である。伝搬情報１１００は、依頼するデータ処理についての入力データ１１０１と、当該入力データのサイズ１１０２と、分割情報１１０３と、ループ処理に関するデータ処理のプログラムコードもしくはプログラムの識別情報１１０４と、を含む。分割情報１１０３には、分岐点であるセンサーノード１０１、すなわち、子ノードを複数有するセンサーノード１０１においてそれぞれの子ノードにどの程度の割合で入力データまたは出力データを分割するかを示す情報が含まれる。たとえば、分割情報１１０３は、センサーノード１０１−３において、センサーノード１０１−１の出力データのうち、センサーノード１０１−４へ５０［％］のデータ、センサーノード１０１−５に５０［％］のデータに分割して送ることを示す情報である。伝搬情報１１００は、この出力データが経由するすべての分岐点であるセンサーノード１０１についての分割情報１１０３を有する。
【００５４】
つぎに、均等化について説明する。図１で説明したように、均等化には、データ処理量の変更と分岐点であるセンサーノード１０１における分割割合の変更とが挙げられる。情報処理装置１００は、データ処理量の変更と分岐点であるセンサーノード１０１での分割割合の変更と、のいずれか一方のみを行ってもよい。または、情報処理装置１００は、たとえば、いずれかを行って変更できなかった場合に、もう一方をおこなってもよい。そして、たとえば、情報処理装置１００は、それでも変更できない場合はこのセンサーネットワーク２００に対してはループ処理を依頼できないこととしてもよい。
【００５５】
まず、ノード選択部７０６は、導出した消費電力量に基づいて複数のセンサーノード１０１のうちのいずれかのセンサーノード１０１を選択する。たとえば、ノード選択部７０６は、導出された消費電力量に基づいて複数のセンサーノード１０１のうちの最も消費電力量が多いセンサーノード１０１を選択する。
【００５６】
また、判断部７０７は、選択されたセンサーノード１０１の消費電力量のうち、依頼先が他のセンサーノード１０１である入出力データの転送に要する消費電力量と、選択されたセンサーノード１０１が依頼されたデータ処理に要する消費電力量と、を比較する。たとえば、判断部７０７は、２つの消費電力量を比較することにより、いずれの消費電力量が多いかを判断する。
【００５７】
選択されたセンサーノード１０１が転送する入出力データの転送に要する消費電力量が多い場合、分割割合変更部７０８は、選択されたセンサーノード１０１が転送する入出力データの伝搬経路を変更する。分割割合変更部７０８は、データ選択部８０１と、特定部８０２と、経路選択部８０３と、判断部８０４と、情報決定部８０５と、生成部８０６と、を有する。
【００５８】
一方、選択されたセンサーノード１０１が依頼されたデータ処理に要する消費電力量が多い場合、処理量変更部７０９は、選択されたセンサーノード１０１に実行が依頼されるデータ処理の依頼先を、他のセンサーノード１０１に変更する。処理量変更部７０９は、第２ノード選択部９０１と、第１特定部９０２と、第２特定部９０３と、判断部９０４と、第１候補決定部９０５と、第２候補決定部９０６と、第３候補決定部９０７と、生成部９０８と、を有する。
【００５９】
ここでは、まず、分割割合変更部７０８による分割割合変更例を説明した後、処理量変更部７０９による処理量変更例について説明する。
【００６０】
＜分割割合変更例＞
図１２は、分割割合変更例（その１）を示す説明図である。上述したように、ノード選択部７０６は、導出した消費電力量に基づいて複数のセンサーノード１０１のうちのいずれかのセンサーノード１０１を選択する。図１２の例では、センサーノード１０１−Ｂが選択される。ここでは、選択されたセンサーノード１０１を省略して選択センサーノード１０１と称する。
【００６１】
つぎに、データ選択部８０１は、伝搬情報１１００に基づいて、入力データまたは出力データのうち、ノード選択部７０６によって選択センサーノード１０１が転送する入力データまたは出力データを選択する。センサーノード１０１−Ｂが転送するデータは、入力データＩＮＣ，ＩＮＤと、出力データＯＵＴＡと、である。入力データＩＮＢと出力データＯＵＴＢについては、データ処理の依頼先がセンサーノード１０１−Ｂであるデータであるため、転送するデータでない。たとえば、データ選択部８０１は、選択センサーノード１０１が転送する入力データまたは出力データのうち、サイズが最も大きい入力データまたは出力データを選択する。図１２の例では、センサーノード１０１−Ｄへの入力データＩＮＤが選択される。
【００６２】
図１３は、分割割合変更例（その２）を示す説明図である。特定部８０２は、入力データが選択された場合に、複数の経路のいずれかの経路に含まれる経路であって、第１集約装置２０１−１から、選択された入力データについてのデータ処理の依頼先のセンサーノード１０１までの経路を検索する。そして、特定部８０２は、検索した経路のうち、選択センサーノード１０１を経由しない経路を特定する。一方、特定部８０２は、出力データが選択された場合に、複数の経路のいずれかの経路に含まれる経路であって、出力データについてのデータ処理の依頼先のセンサーノード１０１から、第２集約装置２０１−２までの経路を検索する。そして、特定部８０２は、検索した経路のうち、選択センサーノード１０１を経由しない経路を特定する。図１３の例では、入力データＩＮＤが選択されているため、第１集約装置２０１−１からセンサーノード１０１−Ｄまでの経路ｒ１〜ｒ３のうち、選択センサーノード１０１を経由しない経路ｒ２，ｒ３が特定される。
【００６３】
特定された経路が複数あるため、経路選択部８０３は、特定された経路上のセンサーノード１０１の最も多い消費電力量が最も少ない経路を選択する。図１３の例では、特定された経路上における最も多い消費電力量は、経路ｒ２が７０、経路ｒ３が６０であるため、経路選択部８０３は、経路ｒ３を選択する。判断部８０４は、選択された経路上の最も多い消費電力量が閾値以上であるか否かを判断する。ここでの閾値は、たとえば、センサーノード１０１が有するバッテリ５０９が蓄電可能な電力量に基づく値である。より具体的には、たとえば、閾値は、蓄電可能な電力量そのものであってもよいし、見積もりの誤差が考慮され、蓄電可能な電力量から一定割合を減じた値であってもよい。
【００６４】
選択された経路上の最も多い消費電力量が閾値以上である場合、生成部８０６は、読み出した伝搬情報１１００が示す伝搬経路によって伝搬させることを示す情報を生成する。たとえば、生成部８０６は、分割割合の変更に失敗したことを示す情報を生成してもよい。
【００６５】
また、選択された経路上の最も多い消費電力量が閾値未満である場合、生成部８０６は、選択された入力データまたは出力データの少なくとも一部を、選択された経路によって伝搬させることを示す情報を生成する。
【００６６】
また、情報決定部８０５は、選択された入力データまたは出力データのうち、選択された経路によって伝搬させるデータを決定する。具体的には、情報決定部８０５は、選択センサーノード１０１の消費電力量と、選択された経路上のセンサーノード１０１の最も多い消費電力量と、の差分に基づいて選択された経路によって伝搬させるデータを決定する。より具体的には、たとえば、情報決定部８０５は、「（選択センサーノード１０１の消費電力量−選択された経路上のセンサーノード１０１の最も多い消費電力量）／２」を計算する。たとえば、情報決定部８０５は、計算した電力量に対応するデータ量を算出することにより、選択された入力データまたは出力データのうち、選択された経路によって伝搬させるデータを決定する。
【００６７】
そして、生成部８０６は、情報決定部８０５によって決定されたデータを選択された経路によって伝搬させることを示す情報を生成する。具体的には、生成部８０６は、伝搬情報１１００が示す伝搬経路が、決定されたデータが選択された経路によって伝搬されるように変更された伝搬情報１１００を生成する。より具体的には、生成部８０６は、伝搬情報１１００に含まれる分割情報の分割割合が変更された伝搬情報１１００をあらたに生成する。図１３の例では、選択センサーノード１０１の消費電力量である９０から経路ｒ３上のセンサーノード１０１の最も多い消費電力量である６０を引いた値を２で割った結果は、１５である。そして、１５の消費電力量に相当する分だけ経路ｒ１を流れている依頼情報の一部を経路ｒ３に流れるように、生成部８０６は、各分岐点であるセンサーノード１０１での分割割合を変更する。
【００６８】
図１４は、分割割合変更例（その３）を示す説明図である。図１４の例では、入力データＩＮＤが第１集約装置２０１−１によってＩＮＤ−１とＩＮＤ−２に分割される。入力データＩＮＤ−１が、センサーノード１０１−Ａを経由する経路によって伝搬され、入力データＩＮＤ−１が、センサーノード１０１−Ｅおよびセンサーノード１０１−Ｆを経由する経路によって伝搬される。図１４では、あらたに生成された伝搬情報１１００に基づいて、導出部７０５によって再度各センサーノード１０１の消費電力量が導出された例を示す。最も多い消費電力量であっても、７５となっている。そのため、変更前よりも、センサーネットワーク２００内の消費電力量が均等化する。
【００６９】
＜処理量変更例＞
図１５は、処理量変更例（その１）を示す説明図である。図１５の例では、第１集約装置２０１−１と第２集約装置２０１−２とＡ〜Ｉまでのセンサーノード１０１を示す。センサーノード１０１の消費電力量の詳細な導出方法は、上述した例と同一である。各センサーノード１０１の吹き出しでは、各センサーノード１０１での処理と通信に関わる消費電力量を示す。たとえば、センサーノード１０１−Ａでは、データ処理の消費電力量が１０で、データ処理の入出力データを送受信するための消費電力量（図中「Ａ：」で示す）が１０である。さらにセンサーノード１０１−Ａを経由する入力データを送受信するための消費電力量（図中それぞれ「Ｂ〜Ｅ：」で示す）がそれぞれ１０である。したがって、センサーノード１０１の消費電力量は、６０である。他のセンサーノード１０１の吹き出しについての詳細な説明は省略する。
【００７０】
まず、上述したように、ノード選択部７０６は、導出した消費電力量に基づいて複数のセンサーノード１０１のうちのいずれかのセンサーノード１０１を選択する。たとえば、ノード選択部７０６は、導出した消費電力量に基づいて複数のセンサーノード１０１のうちの最も消費電力量が多い第１センサーノード１０１を選択する。図１５の例では、第１センサーノード１０１として、センサーノード１０１−Ａが選択される。ここでは、第１センサーノード１０１が依頼先となるデータ処理を別のセンサーノード１０１に移動させることにより、各センサーノード１０１の消費電力量の均一化を図る。
【００７１】
つぎに、第２ノード選択部９０１は、センサーノード１０１の中で、消費電力量が第１センサーノード１０１よりも少ない第２センサーノード１０１を選択する。より具体的には、たとえば、第２ノード選択部９０１は、センサーノード１０１の中で、消費電力量が最も少ない第２センサーノード１０１を選択する。図１５の例では、第２センサーノード１０１として、センサーノード１０１−Ｇが選択される。
【００７２】
第１特定部９０２および第２特定部９０３は、複数の経路から、選択された第２センサーノードを含む経路を特定する。判断部９０４は、特定した経路上のセンサーノード１０１の最も多い消費電力量が閾値以上であるか否かを判断する。ここでの閾値は、たとえば、センサーノード１０１が有するバッテリ５０９が蓄電可能な電力量に基づく値である。特定された経路上のセンサーノード１０１の最も多い消費電力量が閾値以上である場合、第２ノード選択部９０１は、導出した消費電力量に基づいて選択済みのセンサーノード１０１以外のセンサーノード１０１をあらたに選択する。
【００７３】
また、第１特定部９０２は、複数の経路のいずれかの経路に含まれる経路であって、第１集約装置２０１−１から、第２センサーノード１０１までの第１経路ｒ２１を特定する。第１特定部９０２は、複数の経路のいずれかの経路に含まれる経路であって、第１集約装置２０１−１から、第２センサーノード１０１までの経路が複数ある場合、経路上のセンサーノード１０１の最も多い消費電力量が最も少ない経路を第１経路ｒ２１とする。
【００７４】
第２特定部９０３は、複数の経路のいずれかの経路に含まれる経路であって、第２センサーノード１０１から、第２集約装置２０１−２までの第２経路ｒ２２を特定する。第２特定部９０３は、複数の経路のいずれかの経路に含まれる経路であって、第２センサーノード１０１から、第２集約装置２０１−２までの経路が複数ある場合、経路上のセンサーノード１０１の最も多い消費電力量が最も少ない経路を第２経路ｒ２２とする。
【００７５】
判断部９０４は、特定した第１経路ｒ２１上のセンサーノード１０１の最も多い消費電力量が閾値以上であるか否かを判断し、特定した第２経路ｒ２２上のセンサーノード１０１の最も多い消費電力量が閾値以上であるか否かを判断する。ここでの２つの閾値は、たとえば、センサーノード１０１が有するバッテリ５０９が蓄電可能な電力量に基づく値である。第２ノード選択部９０１は、第１経路ｒ２１と第２経路ｒ２２とのいずれか一方の経路上のセンサーノード１０１の最も多い消費電力量が閾値以上である場合、導出した消費電力量に基づいて選択済み以外の第２センサーノード１０１をあらたに選択する。より具体的には、第２ノード選択部９０１は、導出した消費電力量に基づいて複数のセンサーノード１０１のうちの選択済みのセンサーノード１０１以外のセンサーノード１０１から、最も消費電力量が少ない第２センサーノード１０１をあらたに選択する。
【００７６】
図１５の例では、第２経路ｒ２２がなく、第１経路ｒ２１上のセンサーノード１０１の最も多い消費電力量が閾値を超えていないとする。第１経路ｒ２１と第２経路ｒ２２とのいずれの経路上のセンサーノード１０１の消費電力も閾値を超えていない場合、情報処理装置１００は、センサーノード１０１−Ａに実行が依頼されるデータ処理の依頼先を、センサーノード１０１−Ｇに移すことが可能である。そのため、つぎに、情報処理装置１００は、センサーノード１０１−Ａに実行が依頼されるデータ処理のうち、どの程度のデータ処理量を移動可能であるかを決定する。
【００７７】
センサーノード１０１−Ａに実行が依頼されるデータ処理の依頼先をセンサーノード１０１−Ｇに変更すると、センサーノード１０１−Ｇではデータ処理が増えた分だけ入出力データ量も増える。これに伴い、センサーノード１０１−Ｇを含む経路上にあるセンサーノード１０１もセンサーノード１０１−Ｇに関わる入出力データの送受信のための消費電力量が増加する。ここでは、演算の簡単化のために、増加分の入出力データは、特定した第１経路ｒ２１と第２経路ｒ２２を通るようにする。そのため、第１経路ｒ２１上のセンサーノード１０１では、センサーノード１０１−Ｇの入力データが増えた分だけ、その入力データの送受信に相当する消費電力量が増加する。第２経路ｒ２２上のセンサーノード１０１も同様に、センサーノード１０１−Ｇの出力データが増えた分だけ、その出力データの送受信に相当する消費電力量が増加する。
【００７８】
したがって、情報処理装置１００は、センサーノード１０１−Ａからセンサーノード１０１−Ｇにデータ処理を移すことにより消費電力量を均等化する場合、センサーノード１０１−Ｇの消費電力量が閾値を超えないようにする。ここでの閾値は、たとえば、センサーノード１０１が有するバッテリ５０９が蓄電可能な電力量に基づく値である。さらに、情報処理装置１００は、増加した入出力データによって増加する、第１経路ｒ２１および第２経路ｒ２２上のセンサーノード１０１の消費電力量が閾値を超えないようにする。ここでの閾値は、たとえば、センサーノード１０１が有するバッテリ５０９が蓄電可能な電力量に基づく値である。情報処理装置１００は、第１経路ｒ２１または第２経路ｒ２２上のセンサーノード１０１の消費電力量がデータ処理量を変更後のセンサーノード１０１−Ａの消費電力量を超えないデータ処理量を決定する。ただし、各経路上のセンサーノード１０１で消費電力の増加量は同じであるため、第１経路ｒ２１と第２経路ｒ２２とのそれぞれの経路上で最も消費電力量が大きなセンサーノード１０１について、消費電力量が閾値を超えないようにすればよい。
【００７９】
そこで、第１候補決定部９０５は、第１センサーノード１０１に実行が依頼されるデータ処理のうち、依頼先を第２センサーノード１０１にするデータ処理の第１候補を決定する。たとえば、第１候補決定部９０５は、第１センサーノード１０１の消費電力量と、第１経路ｒ２１上のセンサーノード１０１の最も多い消費電力量と、の差分に基づいて、第１候補を決定する。
【００８０】
具体的には、たとえば、第１候補決定部９０５は、データ処理を移動したことに伴うセンサーノード１０１−Ａの消費電力量の減少分からセンサーノード１０１−Ａとセンサーノード１０１−Ｆの消費電力量が均等になるようなイタレーション数を算出する。より具体的には、たとえば、第１候補決定部９０５は、「（第１センサーノード１０１の消費電力量−第１経路ｒ２１上のセンサーノード１０１の最も多い消費電力量）／２」を計算する。つぎに、たとえば、第１候補決定部９０５は、算出した電力量に対応する入力データ量を算出する。そして、たとえば、第１候補決定部９０５は、算出した入力データ量に対応する第１イタレーション数（ｉ１）を算出する。
【００８１】
第２候補決定部９０６は、第１センサーノード１０１に実行が依頼されるデータ処理のうち、依頼先を第２センサーノード１０１にするデータ処理の第２候補を決定する。第２候補決定部９０６は、第１センサーノード１０１の消費電力量と、第２経路ｒ２２上のセンサーノード１０１の最も多い消費電力量と、の差分に基づいて、第２候補を決定する。より具体的には、たとえば、第２候補決定部９０６は、「（第１センサーノード１０１の消費電力量−第２経路ｒ２２上のセンサーノード１０１の最も多い消費電力量）／２」を計算する。つぎに、たとえば、第２候補決定部９０６は、算出した電力量に対応する出力データ量を算出する。そして、たとえば、第２候補決定部９０６は、算出した出力データ量に対応する第２イタレーション数（ｉ２）を算出する。図の例では、第１経路ｒ２１上で最も消費電力量が大きなセンサーノード１０１はセンサーノード１０１−Ｆである。また、センサーノード１０１−Ｇが直接第２集約装置２０１−２と通信を行うため、センサーノード１０１−Ｇの出力データ増加の影響を受ける他のセンサーノード１０１がない。
【００８２】
また、第３候補決定部９０７は、第１センサーノード１０１に実行が依頼されるデータ処理のうち、依頼先を第２センサーノード１０１にするデータ処理の第３候補を決定する。具体的に、第１センサーノード１０１の消費電力量と、第２センサーノード１０１の消費電力量と、の差分に基づいて、第３候補を決定する。具体的には、第３候補決定部９０７は、センサーノード１０１−Ａからセンサーノード１０１−Ｇにデータ処理を移したときに、センサーノード１０１−Ａとセンサーノード１０１−Ｇの消費電力量が均等になるようなイタレーション数を算出する。具体的には、たとえば、第３候補決定部９０７は、「（第１センサーノード１０１の消費電力量−第２経路ｒ２２上のセンサーノード１０１の最も多い消費電力量）／２」を算出する。つぎに、たとえば、第３候補決定部９０７は、算出した電力量に対応するデータ処理量を算出する。そして、たとえば、第３候補決定部９０７は、算出したデータ処理量に対応する第３イタレーション数（ｉ３）を算出する。
【００８３】
生成部９０８は、第１候補と第２候補と第３候補とのうち、処理量が最も少ない候補に対応するデータ処理の依頼先を第２センサーノード１０１にすることを示す情報を生成する。具体的には、生成部９０８は、第１イタレーション数（ｉ１）と第２イタレーション数（ｉ２）と第３イタレーション数（ｉ３）とを比較し、最も小さいイタレーション数を選択する。そして、生成部９０８は、最も小さいイタレーション数に対応するデータ処理の依頼先を第２センサーノード１０１にすることを示す情報を生成する。さらに、生成部９０８は、第１経路ｒ２１上と第２経路ｒ２２上との他のセンサーノード１０１に当該最も小さいイタレーション数に対応するデータ処理についての入出力データが経由することを示す情報を生成する。
【００８４】
具体的には、生成部９０８は、伝搬情報１１００が示す第１センサーノード１０１に実行が依頼されるデータ処理の一部のデータ処理の依頼先を、第２センサーノード１０１に変更する。そして、生成部９０８は、読み出した伝搬情報１１００が示す伝搬経路を、第１センサーノード１０１に実行が依頼されるデータ処理の一部についての依頼情報と処理結果を特定した経路によって伝搬させるように変更する。これにより、生成部９０８は、あらたな伝搬情報１１００を生成する。
【００８５】
図１６は、処理量変更例（その２）を示す説明図である。図の例では、センサーノード１０１−Ａに実行が依頼されるデータ処理がすべてセンサーノード１０１−Ｇに移されている。そのため、センサーノード１０１−Ｇが依頼先となるデータ処理は「１０」から「２０」となり、センサーノード１０１−Ｆにおけるセンサーノード１０１−Ｇの入力データが「１０」から「２０」となる。
【００８６】
＜複数のネットワークＮＥＴ構成＞
また、ネットワークＮＥＴ構成が複数ある場合、情報処理装置１００は、各ネットワークＮＥＴ構成について初期配置処理と、消費電力量の見積もり処理と、平均化処理と、を行う。そして、情報処理装置１００は、消費電力量が多いセンサーノード１０１が最も小さいネットワークＮＥＴ構成を利用して、センサーネットワーク２００にループ処理を依頼してもよい。
【００８７】
（センサーノード１０１の機能的構成例）
図１７は、センサーノードの機能的構成を示すブロック図である。センサーノード１０１は、受信部１７０１と、記憶部１７０２と、実行部１７０３と、生成部１７０４と、送信部１７０５と、を含む。受信部１７０１と送信部１７０５は、たとえば、無線通信回路５０３とアンテナ５０７とによって実現される。記憶部１７０２は、たとえば、ＲＡＭ５０４や不揮発メモリ５０６によって実現される。
【００８８】
実行部１７０３と生成部１７０４との処理は、たとえば、ＭＣＵ５０１がアクセス可能なＲＯＭ５０５や不揮発性メモリ５０６などの記憶装置に記憶された通信プログラムにコーディングされる。そして、ＭＣＵ５０１が、記憶装置から通信プログラムを読み出して、通信プログラムにコーディングされている処理を実行する。これにより、実行部１７０３と生成部１７０４との処理が実現される。また、実行部１７０３と生成部１７０４との出力データは、たとえば、ＲＡＭ５０４、不揮発メモリ５０６などの記憶装置に記憶される。
【００８９】
受信部１７０１は、入力データまたは出力データを含む経由情報を受信して記憶部１７０２に書き込む。記憶部１７０２から読み出された経由情報に入力データが含まれている場合、実行部１７０３は、読み出された経由情報に含まれる入力データが示す依頼先が自センサーノード１０１であるか否かを判断する。ここで、読み出された経由情報を第１経由情報とする。実行部１７０３は、第１経由情報に含まれる入力データが示す依頼先が自センサーノード１０１である場合、データ処理を入力データに基づいて実行する。
【００９０】
第１経由情報に含まれる入力データの依頼先が自センサーノード１０１である場合、生成部１７０４は、実行部１７０３による出力データを含む第２経由情報を生成する。また、第１経由情報に依頼先が自センサーノード１０１でない入力データが含まれる場合、生成部１７０４は、第１経由情報に依頼先が自センサーノード１０１でない入力データを含む第２経由情報を生成する。また、第１経由情報に出力データが含まれる場合、生成部１７０４は、出力データを含む第２経由情報を生成する。
【００９１】
さらに、生成部１７０４は、第１経由情報に分割情報が含まれている場合、自センサーノード１０１が分割情報に基づいて分割を行うか否かを判断する。分割情報は、入力データまたは出力データを分割して複数の伝搬先に伝搬させる経路上のいずれかのセンサーノード１０１が入力データまたは出力データを分割する割合を示す。さらに、分割情報は、いずれの入力データまたはいずれの出力データについて分割を行うかを示す情報を有する。
【００９２】
生成部１７０４は、分割を行うと判断した場合、分割情報が示す分割割合に基づいて、入力データまたは出力データを分割する。第１経由情報に分割情報が含まれていても分割を行わないと判断した場合、その分割情報は転送データであるため、生成部１７０４は、当該分割情報を含む第２経由情報を生成する。
【００９３】
そして、送信部１７０５は、生成部１７０４によって生成された経由情報を自センサーノード１０１の伝搬先に送信する。
【００９４】
図１８は、経由情報例を示す説明図である。経由情報は、入出力データ１８０１と、分割サイズ１８０２と、分割情報１８０３と、プログラムコードまたはプログラムの識別情報１８０４と、を有する。分割サイズ１８０２は、入出力データのサイズである。分割情報１８０３には、分岐点であるセンサーノード１０１においてそれぞれの子ノードにどの程度の割合で入力データまたは出力データを分割して伝搬させるかの割合を示す情報が含まれる。
【００９５】
図１８では、たとえば、センサーノード１０１−１が、伝搬先であるセンサーノード１０１−３に送信するために生成された経由情報１８００を示す。また、たとえば、分割情報１８０３には、子ノードの有無に関わらず、伝搬経路に基づく伝搬先を示す情報が含まれていてもよい。これにより、各センサーノード１０１は、いずれのセンサーノード１０１が伝搬先であるかを判断することができる。
【００９６】
（情報処理装置１００が行う処理手順）
図１９は、情報処理装置が行う全体の処理手順例を示すフローチャートである。情報処理装置１００は、処理依頼可能なセンサーネットワーク２００を取得し（ステップＳ１９０１）、取得可能であるか否かを判断する（ステップＳ１９０２）。たとえば、センサーネットワーク２００が複数あってもよい。情報処理装置１００は、センサーネットワーク２００に処理を行わせるために、センシング動作をしていないセンサーネットワーク２００を探す。センサーネットワーク２００の動作としては、定期的にセンシングを行ってセンシングデータをサーバ３０１に送るものと、センサーノード１０１が何らかの異常を検出したときに検出情報をサーバ３０１に送るものの２種類が想定される。
【００９７】
特に、定期的にセンシングを行ってセンシングデータをサーバ３０１に送る場合、情報処理装置１００は、センシングの間隔や、前回センシングを行ってからの経過時間はサーバ３０１から取得することができる。そのため、ループ処理依頼を行うのに適している。たとえば、ステップＳ１９０２における、取得可能であるか否かの判定では、センシングの間隔や前回センシングを行ってからの経過時間に基づいて、データ処理を依頼可能であるか否かを判定している。さらに、たとえば、ステップＳ１９０２における、取得可能であるか否かの判定では、依頼したループ処理によりバッテリ５０９の蓄電力を使い果たしても、次回のセンシングまでに十分充電可能なセンサーネットワーク２００であるか否かを判定してもよい。
【００９８】
取得可能であれば（ステップＳ１９０２：Ｙｅｓ）、情報処理装置１００は、センサーノード１０１の蓄電容量と設計情報を取得し（ステップＳ１９０３）、初期配置を行う（ステップＳ１９０４）。そして、情報処理装置１００は、初期配置によって得られる伝搬情報１１００を取得して記憶部１７０２に記憶させる（ステップＳ１９０５）。これにより、ステップＳ１９０４によって、情報処理装置１００は、初期配置を行うことにより、伝搬経路を取得することができる。
【００９９】
そして、情報処理装置１００は、各センサーノード１０１の消費電力量を見積もり（ステップＳ１９０６）、ループ処理可能か否かを判断する（ステップＳ１９０７）。ループ処理可能か否かの詳細な判定方法については、図２０を用いて説明する。ループ処理可能でない場合（ステップＳ１９０７：Ｎｏ）、ステップＳ１９０１へ戻る。一方、ループ処理可能である場合（ステップＳ１９０７：Ｙｅｓ）、情報処理装置１００は、選択したセンサーネットワーク２００にループ処理を依頼し（ステップＳ１９０８）、一連の処理を終了する。取得可能でない場合（ステップＳ１９０２：Ｎｏ）、情報処理装置１００は、自装置でループ処理を行い（ステップＳ１９０９）、一連の処理を終了する。
【０１００】
図２０は、情報処理装置が行う均等化処理手順例を示すフローチャートである。情報処理装置１００は、未選択なセンサーノード１０１から最も消費電力量が多いセンサーノード１０１を選択する（ステップＳ２００１）。情報処理装置１００は、選択したセンサーノード１０１の経由データ送受信に要する消費電力量が依頼されたデータ処理に要する消費電力量より多いか否かを判断する（ステップＳ２００２）。
【０１０１】
選択したセンサーノード１０１の経由データ送受信に要する消費電力量が依頼されたデータ処理に要する消費電力量より多い場合（ステップＳ２００２：Ｙｅｓ）、情報処理装置１００は、分割割合を変更する処理を行い（ステップＳ２００３）、変更に成功したか否かを判断する（ステップＳ２００５）。変更に成功した場合（ステップＳ２００５：Ｙｅｓ）、ステップＳ２００１へ戻る。
【０１０２】
選択したセンサーノード１０１の経由データ送受信に要する消費電力量が依頼されたデータ処理に要する消費電力量以下の場合（ステップＳ２００２：Ｎｏ）、情報処理装置１００は、処理量を変更する処理を行い（ステップＳ２００４）、変更に成功したか否かを判断する（ステップＳ２００６）。変更に成功した場合（ステップＳ２００６：Ｙｅｓ）、ステップＳ２００１へ戻る。
【０１０３】
変更に成功しなかった場合（ステップＳ２００５：Ｎｏ）、情報処理装置１００は、処理量を変更する処理を行い（ステップＳ２００７）、ステップＳ２００９へ移行する。変更に成功しなかった場合（ステップＳ２００６：Ｎｏ）、情報処理装置１００は、分割割合を変更する処理を行い（ステップＳ２００８）、ステップＳ２００９へ移行する。
【０１０４】
ステップＳ２００７またはステップＳ２００８のつぎに、情報処理装置１００は、変更に成功したか否かを判断する（ステップＳ２００９）。変更に成功した場合（ステップＳ２００９：Ｙｅｓ）、ステップＳ２００１へ戻る。変更に成功しなかった場合（ステップＳ２００９：Ｎｏ）、情報処理装置１００は、最も多い消費電力量が閾値以下であるか否かを判断する（ステップＳ２０１０）。ここでの閾値は、たとえば、センサーノード１０１が有するバッテリ５０９が蓄電可能な電力量に基づく値である。
【０１０５】
最も多い消費電力量が閾値以下である場合（ステップＳ２０１０：Ｙｅｓ）、情報処理装置１００は、ループ処理可能と判定し（ステップＳ２０１１）、一連の処理を終了する。たとえば、情報処理装置１００は、ステップＳ２０１１において、ループ処理可能であることを示す情報を生成して出力してもよい。最も多い消費電力量が閾値以下でない場合（ステップＳ２０１０：Ｎｏ）、情報処理装置１００は、ループ処理不可能と判定し（ステップＳ２０１２）、一連の処理を終了する。たとえば、情報処理装置１００は、ステップＳ２０１２において、ループ処理可能でないことを示す情報を生成して出力してもよい。
【０１０６】
分割割合を変更する処理および当該変更の成功判定は、図２１および図２２を用いて詳細に説明し、処理量を変更する処理および当該変更の成功判定は、図２３〜図２５を用いて詳細に説明する。
【０１０７】
図２１および図２２は、情報処理装置が行う分割割合変更処理手順例を示すフローチャートである。情報処理装置１００は、初期配置に基づいて生成された伝搬情報１１００に基づいて、選択したセンサーノード１０１を経由するデータがあるか否かを判断する（ステップＳ２１０１）。選択したセンサーノード１０１を経由するデータがない場合（ステップＳ２１０１：Ｎｏ）、情報処理装置１００は、変更失敗と判定し（ステップＳ２１０９）、一連の処理を終了する。たとえば、情報処理装置１００は、ステップＳ２１０９において、変更失敗であることを示す情報を生成して出力してもよい。
【０１０８】
選択したセンサーノード１０１を経由するデータがある場合（ステップＳ２１０１：Ｙｅｓ）、情報処理装置１００は、選択したセンサーノード１０１を経由するデータのうち、サイズが最大のデータを選択する（ステップＳ２１０２）。情報処理装置１００は、選択したデータは入力データであるか否かを判断する（ステップＳ２１０３）。入力データである場合（ステップＳ２１０３：Ｙｅｓ）、第１集約装置２０１−１から選択したデータの依頼先までの経路を特定し（ステップＳ２１０４）、ステップＳ２１０６へ移行する。入力データでない場合（ステップＳ２１０３：Ｎｏ）、選択したデータの依頼先から第２集約装置２０１−２までの経路を特定し（ステップＳ２１０５）、ステップＳ２１０６へ移行する。
【０１０９】
ステップＳ２１０４またはステップＳ２１０５のつぎに、情報処理装置１００は、各経路上で消費電力量が最も多いセンサーノード１０１を特定し（ステップＳ２１０６）、特定したセンサーノード１０１の消費電力量が最も少ない経路を選択する（ステップＳ２１０７）。ステップＳ２１０６とステップＳ２１０７については、特定された経路が複数ある場合に行う。情報処理装置１００は、選択した経路上のセンサーノード１０１の消費電力量は閾値未満であるか否かを判断する（ステップＳ２１０８）。ここでの閾値は、たとえば、センサーノード１０１が有するバッテリ５０９が蓄電可能な電力量に基づく値である。選択した経路上のセンサーノード１０１の消費電力量が閾値未満でない場合（ステップＳ２１０８：Ｎｏ）、ステップＳ２１０９へ移行する。
【０１１０】
選択した経路上のセンサーノード１０１の消費電力量が閾値未満である場合（ステップＳ２１０８：Ｙｅｓ）、情報処理装置１００は、「（選択されたセンサーノード１０１の消費電力量−選択した経路上のセンサーノード１０１の最大の消費電力量）／２」を算出する（ステップＳ２２０１）。情報処理装置１００は、算出した電力量に対応するデータ量を算出し（ステップＳ２２０２）、算出したデータ量＞選択したデータのデータ量であるか否かを判断する（ステップＳ２２０３）。
【０１１１】
算出したデータ量＞選択したデータのデータ量である場合（ステップＳ２２０３：Ｙｅｓ）、情報処理装置１００は、選択した経路に選択したデータすべてが経由するように経路上の分岐点で分割割合を変更し（ステップＳ２２０４）、ステップＳ２２０６へ移行する。算出したデータ量＞選択したデータのデータ量でない場合（ステップＳ２２０３：Ｎｏ）、情報処理装置１００は、選択した経路に選択したデータのうちの算出したデータ量のデータが経由するように経路上の分岐点で分割割合を変更し（ステップＳ２２０５）、ステップＳ２２０６へ移行する。ステップＳ２２０４またはステップＳ２２０５のつぎに、情報処理装置１００は、変更成功と判定し（ステップＳ２２０６）、一連の処理を終了する。たとえば、情報処理装置１００は、ステップＳ２２０６において、変更成功であることを示す情報を生成して出力してもよい。
【０１１２】
図２３〜図２５は、情報処理装置が行う処理量変更処理手順例を示すフローチャートである。情報処理装置１００は、選択した第１センサーノード１０１が依頼先であるデータ処理があるか否かを判断する（ステップＳ２３０１）。ここでの第１センサーノード１０１とは、図２０のステップＳ２００１によって選択されたセンサーノード１０１である。
【０１１３】
選択した第１センサーノード１０１が依頼先であるデータ処理がない場合（ステップＳ２３０１：Ｎｏ）、情報処理装置１００は、変更失敗と判定し（ステップＳ２３０８）、一連の処理を終了する。たとえば、情報処理装置１００は、ステップＳ２３０８において、変更失敗であることを示す情報を生成して出力してもよい。選択した第１センサーノード１０１が依頼先であるデータ処理がある場合（ステップＳ２３０１：Ｙｅｓ）、情報処理装置１００は、未選択のセンサーノード１０１から、消費電力量が最も少ないセンサーノード１０１を第２センサーノード１０１に選択する（ステップＳ２３０２）。
【０１１４】
つぎに、情報処理装置１００は、第２センサーノード１０１の消費電力量が閾値未満であるか否かを判断する（ステップＳ２３０３）。ここでの閾値は、たとえば、センサーノード１０１が有するバッテリ５０９が蓄電可能な電力量に基づく値である。第２センサーノード１０１の消費電力量が閾値未満でない場合（ステップＳ２３０３：Ｎｏ）、情報処理装置１００は、ステップＳ２３０８へ移行する。第２センサーノード１０１の消費電力量が閾値未満である場合（ステップＳ２３０３：Ｙｅｓ）、情報処理装置１００は、第２センサーノード１０１について第１経路と第２経路を特定する（ステップＳ２３０４）。第１経路は、第１集約装置２０１−１から第２センサーノード１０１までの経路であり、第２経路は、第２センサーノード１０１から第２集約装置２０１−２までの経路である。
【０１１５】
情報処理装置１００は、各経路上で最も消費電力量が多いセンサーノード１０１を検索し（ステップＳ２３０５）、第１経路と第２経路のそれぞれで、経路上のセンサーノード１０１の最も多い消費電力量が最も少ない経路を１つずつ選択する（ステップＳ２３０６）。そして、情報処理装置１００は、第１経路と第２経路の両方の経路上で最も多い消費電力量が閾値を超えないか否かを判断する（ステップＳ２３０７）。ここでの閾値は、たとえば、センサーノード１０１が有するバッテリ５０９が蓄電可能な電力量に基づく値である。超える場合（ステップＳ２３０７：Ｎｏ）、ステップＳ２３０２へ戻る。
【０１１６】
超えない場合（ステップＳ２３０７：Ｙｅｓ）、情報処理装置１００は、「（第１センサーノード１０１の消費電力量−第１経路上の最も多い消費電力量）／２」を算出する（ステップＳ２４０１）。情報処理装置１００は、算出した消費電力量に対応する入力データ量を算出し（ステップＳ２４０２）、算出した入力データ量に対応する第１イタレーション数ｉ１を算出する（ステップＳ２４０３）。
【０１１７】
情報処理装置１００は、「（第１センサーノード１０１の消費電力量−第２経路上の最も多い消費電力量）／２」を算出し（ステップＳ２４０４）、算出した消費電力量に対応する出力データ量を算出する（ステップＳ２４０５）。そして、情報処理装置１００は、算出した出力データ量に対応する第２イタレーション数ｉ２を算出し（ステップＳ２４０６）、ステップＳ２５０１へ移行する。
【０１１８】
情報処理装置１００は、「（第１センサーノード１０１の消費電力量−第２センサーノード１０１の最も多い消費電力量）／２」を算出し（ステップＳ２５０１）、算出した消費電力量に対応するデータ処理量を算出する（ステップＳ２５０２）。情報処理装置１００は、算出したデータ処理量に対応する第３イタレーション数ｉ３を算出し（ステップＳ２５０３）、第１イタレーション数ｉ１から第３イタレーション数ｉ３を比較する（ステップＳ２５０４）。情報処理装置１００は、第１センサーノード１０１が依頼先のデータ処理のうち、最も小さいイタレーション数分のデータ処理を第２センサーノード１０１に移動し（ステップＳ２５０５）、移動した分のイタレーション数に対応する入出力データ量を算出する（ステップＳ２５０６）。ステップＳ２５０５での移動とは、依頼先を変更することを示す。
【０１１９】
情報処理装置１００は、第１経路と第２経路を通るように分岐点での分割割合を変更し（ステップＳ２５０７）、変更成功と判定し（ステップＳ２５０８）、一連の処理を終了する。たとえば、情報処理装置１００は、ステップＳ２５０８において、変更成功であることを示す情報を生成して出力してもよい。ステップＳ２４０１からＳ２４０３までの処理と、ステップＳ２４０４からＳ２４０６までの処理と、ステップＳ２５０１からＳ２５０３までの処理と、の実行順は特に限定しない。
【０１２０】
図２６および図２７は、ネットワーク構成が複数ある場合の情報処理装置が行う処理手順例を示すフローチャートである。情報処理装置１００は、処理依頼可能なセンサーネットワーク２００を取得し（ステップＳ２６０１）、取得可能であるか否かを判断する（ステップＳ２６０２）。たとえば、センサーネットワーク２００が複数あってもよい。また、ループ処理依頼が可能か否かの判定が行われていないセンサーネットワーク２００についてのネットワーク構成が、たとえば、サーバ３０１などの他の装置から取得される。取得可能でない場合（ステップＳ２６０２：Ｎｏ）、情報処理装置１００は、自装置でループ処理を行い（ステップＳ２６０７）、一連の処理を終了する。
【０１２１】
取得可能であれば（ステップＳ２６０２：Ｙｅｓ）、情報処理装置１００は、センサーノード１０１の蓄電容量と設計情報を取得し（ステップＳ２６０３）、情報処理装置１００は、ネットワーク構成を取得して１つを選択し（ステップＳ２６０４）、初期配置を行う（ステップＳ２６０５）。これにより、ステップＳ２６０５によって、情報処理装置１００は、初期配置を行うことにより、伝搬経路を取得することができる。そして、情報処理装置１００は、選択したネットワーク構成で各センサーノード１０１の消費電力量を見積もり（ステップＳ２６０６）、ステップＳ２７０１へ移行する。
【０１２２】
情報処理装置１００は、ループ処理可能であるか否かを判断する（ステップＳ２７０１）。ループ処理可能か否かの詳細な判定方法については、上述した図２０に示す。ループ処理可能でない場合（ステップＳ２７０１：Ｎｏ）、ステップＳ２７０６へ移行する。ループ処理可能である場合（ステップＳ２７０１：Ｙｅｓ）、情報処理装置１００は、ネットワーク構成の候補があるか否かを判断する（ステップＳ２７０２）。
【０１２３】
ネットワーク構成の候補がない場合（ステップＳ２７０２：Ｎｏ）、情報処理装置１００は、選択したネットワーク構成と見積もった消費電力量を候補として記録し（ステップＳ２７０５）、ステップＳ２７０６へ移行する。ネットワーク構成の候補がある場合（ステップＳ２７０２：Ｙｅｓ）、情報処理装置１００は、ネットワーク構成の候補と選択したネットワーク構成との各センサーノード１０１の見積もった最も多い消費電力量を比較する（ステップＳ２７０３）。
【０１２４】
情報処理装置１００は、選択したネットワーク構成のセンサーノード１０１の消費電力量の方が少ないか否かを判断する（ステップＳ２７０４）。選択したネットワーク構成のセンサーノード１０１の消費電力量の方が少ない場合（ステップＳ２７０４：Ｙｅｓ）、ステップＳ２７０５へ移行する。選択したネットワーク構成のセンサーノード１０１の消費電力量の方が少なくない場合（ステップＳ２７０４：Ｎｏ）、ステップＳ２７０６へ移行する。
【０１２５】
つぎに、情報処理装置１００は、未選択のネットワーク構成があるか否かを判断する（ステップＳ２７０６）。未選択のネットワーク構成がある場合（ステップＳ２７０６：Ｙｅｓ）、情報処理装置１００は、未選択のネットワーク構成の１つを選択し（ステップＳ２７０７）、ステップＳ２６０５へ戻る。
【０１２６】
未選択のネットワーク構成がない場合（ステップＳ２７０６：Ｎｏ）、情報処理装置１００は、ネットワーク構成の候補があるか否かを判断する（ステップＳ２７０８）。ネットワーク構成の候補がある場合（ステップＳ２７０８：Ｙｅｓ）、情報処理装置１００は、ネットワーク構成の候補を使って選択したセンサーネットワーク２００にループ処理を依頼し（ステップＳ２７０９）、一連の処理を終了する。ネットワーク構成の候補がない場合（ステップＳ２７０８：Ｎｏ）、ステップＳ２６０１へ戻る。
【０１２７】
（センサーノード１０１が行う処理手順例）
図２８は、センサーノードが行う処理手順例を示すフローチャートである。センサーノード１０１は、データを受信すると（ステップＳ２８０１）、受信済みのデータがあるか否かを判断する（ステップＳ２８０２）。ここで、受信するデータと受信済みのデータは、いずれも内容が異なる経由情報１８００である。受信済みのデータがある場合（ステップＳ２８０２：Ｙｅｓ）、センサーノード１０１は、受信データと受信済みのデータをマージする（ステップＳ２８０３）。たとえば、親ノードが複数あるセンサーノード１０１は、入力データや出力データが分割されて送信されてくる可能性があるため、ステップＳ２８０３によってマージを行う。
【０１２８】
受信済みのデータがない場合（ステップＳ２８０２：Ｎｏ）、またはステップＳ２８０３のつぎに、センサーノード１０１は、全親ノードからデータを受信したか否かを判断する（ステップＳ２８０４）。たとえば、センサーノード１０１は、予め伝搬経路を示す情報を有している場合、伝搬経路を示す情報に基づいてステップＳ２８０４における判断をおこなってもよい。または、たとえば、センサーノード１０１は、最後に受信したデータの受信時刻から所定時間経過したか否かに基づいて、ステップＳ２８０４における判断をおこなってもよい。
【０１２９】
全親ノードからデータを受信した場合（ステップＳ２８０４：Ｙｅｓ）、センサーノード１０１は、依頼先が自センサーノードである入力データに基づいてデータ処理を実行し（ステップＳ２８０５）、受信したデータに含まれる分割情報に基づいて経由情報を生成する（ステップＳ２８０６）。依頼先が自センサーノードである入力データがなければ、ステップＳ２８０５は行われない。センサーノード１０１は、生成した経由情報を伝搬先である子ノードに送信し（ステップＳ２８０７）、受信待機状態へ移行し（ステップＳ２８０８）、一連の処理を終了する。
【０１３０】
全親ノードからデータを受信していない場合（ステップＳ２８０４：Ｎｏ）、ステップＳ２８０８へ移行する。これにより、センサーノード１０１は、すべての経由情報を受信するまで、待機することができる。
【０１３１】
（第１集約装置２０１−１が行う処理手順例）
図２９は、第１集約装置が行う処理手順例を示すフローチャートである。第１集約装置２０１−１は、情報処理装置１００から伝搬情報１１００を受信し（ステップＳ２９０１）、伝搬情報１１００に含まれる分割情報に基づいて、子ノードごとに経由情報を生成する（ステップＳ２９０２）。そして、第１集約装置２０１−１は、生成した経由情報を子ノードに送信し（ステップＳ２９０３）、受信待機状態へ移行する（ステップＳ２９０４）。
【０１３２】
（第２集約装置２０１−２が行う処理手順例）
図３０は、第２集約装置が行う処理手順例を示すフローチャートである。第２集約装置２０１−２は、データを受信し（ステップＳ３００１）、受信済みのデータがあるか否かを判断する（ステップＳ３００２）。ここで、受信するデータと受信済みのデータは、いずれも内容が異なる経由情報１８００である。受信済みのデータがあると判断された場合（ステップＳ３００２：Ｙｅｓ）、第２集約装置２０１−２は、受信データと受信済みのデータをマージする（ステップＳ３００３）。たとえば、第２集約装置２０１−２は、イタレーションの順に出力データを並び替えてマージしてもよい。
【０１３３】
受信済みのデータがないと判断された場合（ステップＳ３００２：Ｎｏ）、またはステップＳ３００３のつぎに、第２集約装置２０１−２は、全親ノードからデータを受信したか否かを判断する（ステップＳ３００４）。全親ノードからデータを受信したと判断された場合（ステップＳ３００４：Ｙｅｓ）、第２集約装置２０１−２は、マージしたデータをサーバ３０１または情報処理装置１００に送信する（ステップＳ３００５）。
【０１３４】
全親ノードからデータを受信していないと判断された場合（ステップＳ３００４：Ｎｏ）、またはステップＳ３００５のつぎに、第２集約装置２０１−２は、受信待機状態へ移行し（ステップＳ３００６）、一連の処理を終了する。
【０１３５】
以上説明したように、情報処理装置は、仮決定した伝搬経路により見積もった消費電力量に基づきセンサーノードを選択し、該センサーノードによって転送されるデータの一部の転送経路を、該センサーノードを迂回する経路に変更することを示す情報を生成する。これにより、選択されたセンサーノードの転送に要する電力量の低減化を図ることができる。したがって、各センサーノードの消費電力量の均等化を図ることができる。
【０１３６】
具体的には、情報処理装置は、取得した伝搬情報と、特定した経路上のセンサーノードによって転送させることを示す情報と、に基づいてあらたな伝搬経路を示す伝搬情報を生成する。これにより、選択されたセンサーノードの転送に要する電力量の低減化を図ることができる。したがって、各センサーノードの消費電力量の均等化を図ることができる。
【０１３７】
また、情報処理装置は、特定した経路上のセンサーノードの導出した最も多い消費電力量が閾値以上である場合、取得した伝搬情報が示す伝搬経路によって伝搬させることを示す情報を生成する。これにより、依頼情報または処理結果の転送の移動先の消費電力量が多いと、移動させるとセンサーネットワークにデータ処理を依頼できなくなることを防ぐことができる。
【０１３８】
また、情報処理装置は、最も消費電力量が多いセンサーノードを選択することにより、消費電力量が多いセンサーノードの転送に要する電力量の低減化を図ることができる。したがって、各センサーノードの消費電力量の均等化を図ることができる。
【０１３９】
また、情報処理装置は、サイズが最も大きい依頼情報または処理結果を選択する。これにより、転送に要する消費電力量が他よりも多い依頼情報または処理結果を他の経路への移動の候補とすることにより、一度の移動処理によって移動可能なデータ量の増大化を図ることができる。これにより、消費電力の均等化に要する時間の短縮化を図ることができる。
【０１４０】
また、情報処理装置は、特定した経路が複数ある場合、特定した経路のうち、特定した経路上のセンサーノードの導出した最も多い消費電力量が最も少ない経路を選択して、選択した依頼情報または処理結果を選択した経路によって伝搬させる。これにより、各センサーノードの消費電力の均等化を図ることができる。
【０１４１】
また、情報処理装置は、選択したセンサーノードの消費電力量と、特定した経路上のセンサーノードの最も多い消費電力量と、の差分に基づいて、選択した依頼情報または処理結果のうち特定した経路によって伝搬させる情報を決定する。これにより、特定した経路上のセンサーノードの消費電力量が、依頼情報または処理結果の一部を特定した経路に移動した後の選択したセンサーノードの消費電力量を超えないようにすることができる。したがって、選択したセンサーノードと、特定した経路上のセンサーノードと、の消費電力量の均等化を図る。
【０１４２】
また、情報処理装置は、選択したセンサーノードの転送に要する消費電力量が、選択したセンサーノードが依頼されたデータ処理に要する消費電力量よりも多い場合、転送する依頼情報または処理結果の一部の経路を変更する。これにより、より多くの消費電力量を減少可能であると推定される方法を利用して、選択されたセンサーノードの消費電力量の低減化を図る。
【０１４３】
また、情報処理装置は、選択したセンサーノードの転送に要する消費電力量が、選択したセンサーノードが依頼されたデータ処理に要する消費電力量よりも少ない場合、選択したセンサーノードが依頼されたデータ処理の依頼先を変更する。これにより、より多くの消費電力量を減少可能であると推定される方法を利用して、選択されたセンサーノードの消費電力量の低減化を図ることができる。
【０１４４】
また、情報処理装置は、選択した第１センサーノードに依頼されたデータ処理の依頼先を、第１センサーノードよりも消費電力量が低い選択した第２センサーノードに変更する。これにより、第１センサーノードのデータ処理に要する消費電力量の低減化を図ることができる。
【０１４５】
また、情報処理装置は、消費電力量が最も低い第２センサーノードを選択することにより、一度の移動処理によって移動可能なデータ処理量の増大化を図ることができる。これにより、消費電力の均等化に要する時間の短縮化を図ることができる。
【０１４６】
また、情報処理装置は、第２センサーノードを含む経路上の最も多い消費電力量が閾値以上の場合、あらたな第２センサーノードを選択する。データ処理の依頼先を変更後もセンサーネットワーク内の各センサーノードの消費電力量が閾値を超えないようにデータ処理の依頼先を決定することができる。これにより、消費電力量の均等化を図ることができる。
【０１４７】
また、情報処理装置は、第１センサーノードの消費電力量と、第１集約装置から第２センサーノードまでの経路上の最も多い消費電力量と、の差分によって、依頼先を変更するデータ処理量の候補を決定する。これにより、第１センサーノードの消費電力量と、第１集約装置から第２センサーノードまでの経路上のセンサーノードの消費電力量と、の均等化を図ることができる。また、情報処理装置は、第１センサーノードの消費電力量と、第２センサーノードから第１集約装置までの経路上の最も多い消費電力量と、の差分によって、依頼先を変更するデータ処理量の候補を決定する。これにより、第１センサーノードの消費電力量と、第２センサーノードから第１集約装置までの経路上のセンサーノードの消費電力量と、の均等化を図ることができる。
【０１４８】
また、情報処理装置は、第１センサーノードの消費電力量と、第２センサーノードの消費電力量と、の差分によって、依頼先を変更するデータ処理量の候補を決定する。これにより、第１センサーノードの消費電力量と、第２センサーノードの消費電力量と、の均等化を図ることができる。
【０１４９】
また、情報処理装置は、伝搬情報が示す伝搬経路で伝搬させた際の各センサーノードの消費電力量を導出し、最も多い消費電力量が閾値未満の場合に、センサーネットワークにデータ処理を依頼する。これにより、バッテリ切れにならないであろうと推定されるセンサーネットワークにデータ処理が依頼され、データ処理の処理結果が正常に得ることができる精度を向上させることができる。
【０１５０】
また、センサーノードは、受信した経由情報に分割情報が含まれている場合、自ノードの伝搬先が複数あれば、分割情報に基づいて、依頼情報または処理結果を分割して伝搬先に送信する。これにより、依頼先が同一のデータ処理であっても、異なる経路を介して伝搬させることができる。
【０１５１】
なお、本実施の形態で説明した情報処理方法は、予め用意された情報処理プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１５２】
１００  情報処理装置
１０１  センサーノード
２０１−１  第１集約装置
２０１−２  第２集約装置
３００  システム
４０１  ＣＰＵ
４０３  ＲＡＭ
１７０１  受信部
１７０２  記憶部
１７０３  実行部
１７０４  生成部
１７０５  送信部
ｒｘ−１，ｒｘ−２，ｒｘ−ｉ，ｒ１，ｒ２，ｒ３  経路
ｒ２１  第１経路
ｒ２２  第２経路
ｉ１，ｉ２，ｉ３  イタレーション数
【図１】
0005924423.tif 000002
【図２】
0005924423.tif 000003
【図３】
0005924423.tif 000004
【図４】
0005924423.tif 000005
【図５】
0005924423.tif 000006
【図６】
0005924423.tif 000007
【図７Ａ】
0005924423.tif 000008
【図７Ｂ】
0005924423.tif 000009
【図８】
0005924423.tif 000010
【図９】
0005924423.tif 000011
【図１０】
0005924423.tif 000012
【図１１】
0005924423.tif 000013
【図１２】
0005924423.tif 000014
【図１３】
0005924423.tif 000015
【図１４】
0005924423.tif 000016
【図１５】
0005924423.tif 000017
【図１６】
0005924423.tif 000018
【図１７】
0005924423.tif 000019
【図１８】
0005924423.tif 000020
【図１９】
0005924423.tif 000021
【図２０】
0005924423.tif 000022
【図２１】
0005924423.tif 000023
【図２２】
0005924423.tif 000024
【図２３】
0005924423.tif 000025
【図２４】
0005924423.tif 000026
【図２５】
0005924423.tif 000027
【図２６】
0005924423.tif 000028
【図２７】
0005924423.tif 000029
【図２８】
0005924423.tif 000030
【図２９】
0005924423.tif 000031
【図３０】
0005924423.tif 000032