(57)【要約】【課題】サーバおよび各装置がデータを効率的に収集する。【解決手段】サーバ２は、複数の装置のそれぞれに、０からｍ−１までのエントリ識別子（Entry）と、当該装置の識別子に２Entryを加えた転送先装置の識別子と、当該転送先装置のアドレスとを対応づけた経路表データを出力する。装置１は、サーバ２から、当該装置の経路表データ１１を受信し、記憶する経路表制御手段２２と、サーバ２または他装置からリクエストデータを受信すると、経路表データ１１に従って、受信したリクエストデータを設定して、他装置に送信するとともに、受信したリクエストデータに対する応答データを、他装置またはサーバに送信する制御手段２１を備える。【選択図】      図１
2014160901.tif 000002
【特許請求の範囲】
【請求項１】
サーバと、当該サーバに接続する相互に通信可能な複数の装置とを備える通信システムであって、
前記複数の装置は、それぞれ、０から２ｍ−１までのいずれかの整数値の識別子が付与され、
前記サーバは、
前記複数の装置のそれぞれに、０からｍ−１までのエントリ識別子（Entry）と、当該装置の識別子に２Entryを加えた転送先装置の識別子と、当該転送先装置のアドレスとを対応づけた経路表データを出力する経路表出力手段と、
前記複数の装置のうち、代表装置とする１つの装置に、データの収集のためのリクエストデータを送信するリクエスト送信手段と、
前記装置から、前記データを受信するデータ受信手段とを備え、
前記装置は、
前記サーバから、当該装置の経路表データを受信し、
前記サーバまたは他装置からリクエストデータを受信すると、前記経路表データに従って、受信したリクエストデータを変更して、他装置に送信するとともに、受信したリクエストデータに対する応答データを、他装置またはサーバに送信する制御手段を備え、
前記サーバが前記代表装置に送信するリクエストデータは、
前記代表装置がデータを集約する装置の識別子の下限値および上限値を指定する、集約割当範囲と、
前記装置間において当該リクエストデータを拡散する範囲を示す、０からｍまでの値をとる転送深度と、
前記代表装置のアドレスを設定した集約送信先アドレスと、を含み、
前記装置の制御手段は、
（１）  前記リクエストデータを受信すると、
受信したリクエストデータの集約送信先アドレスと、集約割当範囲とを格納し、
（２）  受信したリクエストデータの転送深度が０の場合、
当該装置が集約した自装置集約データを含む応答データを生成して、前記集約送信先アドレスに送信し、
（３）  応答データを受信すると、
受信した応答データに含まれる集約データを、自装置集約データにマージし、
マージ後の前記自装置集約データが、前記受信したリクエストデータの集約割当範囲をすべて満たす場合、当該自装置集約データを含む応答データを、前記集約送信先アドレスに送信し、
（４）  受信したリクエストデータの転送深度が０でない場合、前記経路表データを参照して、
０以上前記転送深度未満の各エントリ識別子について、エントリ識別子の降順に、当該装置が受信した集約割当範囲内の装置の識別子を持つエントリ識別子について、受信したリクエストデータのうち、
前記集約送信先アドレスを、当該装置が受信した集約割当範囲の上限値に最も近い装置の識別子を持つエントリ識別子について、当該装置が受信した集約送信先アドレスを引き継いで設定し、それ以外のエントリ識別子について、前記経路表データにおいて、当該エントリ識別子をインクリメントしたエントリ識別子に対応づけられた装置のアドレスに設定し、
前記集約割当範囲を、前記経路表データにおいてエントリ識別子０の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、
前記転送範囲を、当該エントリ識別子に設定した、
変更後のリクエストデータを、前記経路表データにおいて当該エントリ識別子に対応する装置のアドレスに送信する処理を、繰り返す
ことを特徴とする通信システム。
【請求項２】
前記制御手段が、受信したリクエストデータから、前記変更後のリクエストデータを生成する際、当該装置が代表装置の場合、
前記集約送信先アドレスを、当該代表装置のアドレスに設定し、
前記集約割当範囲を、前記経路表データにおいて当該エントリ識別子−１の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、
前記転送範囲を、当該エントリ識別子に設定する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
サーバと、当該サーバに相互に通信可能な複数の装置とを備える通信システムにおける装置であって、
当該装置には、０から２ｍ−１のうちいずれかの整数値の識別子が付与され、
０からｍ−１までのエントリ識別子（Entry）と、当該装置の識別子に２Entryを加えた転送先装置の識別子と、当該転送先装置のアドレスとを対応づけた経路表データを、受信し、
前記サーバまたは他装置からリクエストデータを受信すると、前記経路表データに従って、受信したリクエストデータを変更して、他装置に送信するとともに、受信したリクエストデータに対する応答データを、他装置またはサーバに送信する制御手段を備え、
前記サーバが前記装置に送信するリクエストデータは、
当該装置がデータを集約する装置の識別子の下限値および上限値を指定する、集約割当範囲と、
当該装置が当該リクエストデータを拡散する範囲を示す、０からｍまでの値をとる転送深度と、
応答データの送信先である集約送信先アドレスと、を含み、
前記制御手段は、
（１）  前記リクエストデータを受信すると、
受信したリクエストデータの集約送信先アドレスと、集約割当範囲とを格納し、
（２）  受信したリクエストデータの転送深度が０の場合、
当該装置が集約した自装置集約データを含む応答データを生成して、前記集約送信先アドレスに送信し、
（３）  応答データを受信すると、
受信した応答データに含まれる集約データを、自装置集約データにマージし、
マージ後の前記自装置集約データが、前記受信したリクエストデータの集約割当範囲をすべて満たす場合、当該自装置集約データを含む応答データを、前記集約送信先アドレスに送信し、
（４）  受信したリクエストデータの転送深度が０でない場合、前記経路表データを参照して、
０以上前記転送深度未満の各エントリ識別子について、エントリ識別子の降順に、当該装置が受信した集約割当範囲内の装置の識別子を持つエントリ識別子について、受信したリクエストデータのうち、
前記集約送信先アドレスを、当該装置が受信した集約割当範囲の上限値に最も近い装置の識別子を持つエントリ識別子について、当該装置が受信した集約送信先アドレスを引き継いで設定し、それ以外のエントリ識別子について、前記経路表データにおいて、当該エントリ識別子をインクリメントしたエントリ識別子に対応づけられた装置のアドレスに設定し、
前記集約割当範囲を、前記経路表データにおいてエントリ識別子０の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、
前記転送範囲を、当該エントリ識別子に設定した、
変更後のリクエストデータを、前記経路表データにおいて当該エントリ識別子に対応する装置のアドレスに送信する処理を、繰り返す
ことを特徴とする装置。
【請求項４】
当該装置が、前記サーバからリクエストデータを受けた代表装置の場合、前記制御手段は、受信したリクエストデータから、前記変更後のリクエストデータを生成する際、
前記集約送信先アドレスを、当該装置のアドレスに設定し、
前記集約割当範囲を、前記経路表データにおいて当該エントリ識別子−１の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、
前記転送範囲を、当該エントリ識別子に設定する
ことを特徴とする請求項３に記載の装置。
【請求項５】
サーバと、当該サーバに接続する相互に通信可能な複数の装置とを備える通信システムにおける装置に用いられる通信方法であって、
当該装置には、０から２ｍ−１のうちいずれかの整数値の識別子が付与され、
０からｍ−１までのエントリ識別子（Entry）と、当該装置の識別子に２Entryを加えた転送先装置の識別子と、当該転送先装置のアドレスとを対応づけた経路表データを、受信するステップを備え、
前記サーバが前記装置に送信するリクエストデータは、
当該装置がデータを集約する装置の識別子の下限値および上限値を指定する、集約割当範囲と、
当該装置と前記他装置間において当該リクエストデータを拡散する範囲を示す、０からｍまでの値をとる転送深度と、
応答データの送信先である集約送信先アドレスと、を含み、
前記通信方法は、
（１）  前記装置が、前記リクエストデータを受信すると、
受信したリクエストデータの集約送信先アドレスと、集約割当範囲とを格納するステップと、
（２）  前記装置が、受信したリクエストデータの転送深度が０の場合、
当該装置が集約した自装置集約データを含む応答データを生成して、前記集約送信先アドレスに送信するステップと、
（３）  前記装置が、応答データを受信すると、
受信した応答データに含まれる集約データを、自装置集約データにマージし、
マージ後の前記自装置集約データが、前記受信したリクエストデータの集約割当範囲をすべて満たす場合、当該自装置集約データを含む応答データを、前記集約送信先アドレスに送信するステップと、
（４）  前記装置が、受信したリクエストデータの転送深度が０でない場合、前記経路表データを参照して、
０以上前記転送深度未満の各エントリ識別子について、エントリ識別子の降順に、当該装置が受信した集約割当範囲内の装置の識別子を持つエントリ識別子について、受信したリクエストデータのうち、
前記集約送信先アドレスを、当該装置が受信した集約割当範囲の上限値に最も近い装置の識別子を持つエントリ識別子について、当該装置が受信した集約送信先アドレスを引き継いで設定し、それ以外のエントリ識別子について、前記経路表データにおいて、当該エントリ識別子をインクリメントしたエントリ識別子に対応づけられた装置のアドレスに設定し、
前記集約割当範囲を、前記経路表データにおいてエントリ識別子０の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、
前記転送範囲を、当該エントリ識別子に設定した、
変更後のリクエストデータを、前記経路表データにおいて当該エントリ識別子に対応する装置のアドレスに送信する処理を、繰り返すステップ
を備えることを特徴とする通信方法。
【請求項６】
当該装置が、前記サーバからリクエストデータを受けた代表装置の場合、前記制御手段は、受信したリクエストデータから、前記変更後のリクエストデータを生成する際、
前記集約送信先アドレスを、当該代表装置のアドレスに設定し、
前記集約割当範囲を、前記経路表データにおいて当該エントリ識別子−１の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、
前記転送範囲を、当該エントリ識別子に設定する
ことを特徴とする請求項５に記載の通信方法。
【請求項７】
コンピュータに、請求項３または請求項４に記載の装置の各手段として機能させるための通信プログラム。
【請求項８】
サーバと、当該サーバに接続する代表装置を含み相互に通信可能な複数の装置とを備える通信システムのサーバであって、
前記複数の装置は、それぞれ、０から２ｍ−１までのいずれかの整数値の識別子が付与され、
前記複数の装置のそれぞれに、０からｍ−１までのエントリ識別子（Entry）と、当該装置の識別子に２Entryを加えた転送先装置の識別子と、当該転送先装置のアドレスとを対応づけた経路表データを出力する経路表出力手段と、
前記複数の装置のうち、代表装置とする１つの装置に、データの収集のためのリクエストデータを送信するリクエスト送信手段と、
前記装置から、前記データを受信するデータ受信手段とを備え、
前記サーバが前記代表装置に送信するリクエストデータは、
前記代表装置がデータを集約する装置を特定する、集約割当範囲と、
前記装置間において当該リクエストデータを拡散する範囲を示す、０からｍまでの値をとる転送深度と、
前記代表装置のアドレスを設定した集約送信先アドレスと、を含む
ことを特徴とするサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバと、当該サーバに接続する相互に通信可能な複数の装置とを備える通信システム、装置、通信方法、通信プログラムおよびサーバに関する。
【背景技術】
【０００２】
近年、大量のデータを収集し、収集したデータを利用したサービスが注目を集めている。インターネットなどの通信ネットワーク上に配置されたウェブサーバなどからのデータ収集が主流である。また将来的には、家庭内やオフィスに設置される家電機器やセンサなどの多種多様な機器が、データ発信源となると考えられる。これらの機器は、数が多い上に、定期的にその情報をサーバ等に送信する。
【０００３】
そこでこれらの機器からデータを収集するサーバ側設備は、膨大な機器からの高頻度なデータをロスなく収集する必要がある。従ってサーバには、大規模なリソースが要求されることが予想される。また、新しい機器が出現する度に、サーバにかかる負担は飛躍的に増大し、さらに、その負担に対応するべくさらにサーバを大規模化させるための投資が必要となる。
【０００４】
これに対し、膨大な機器からデータを効率良く収集する技術が期待されている。一般的に、家電機器やセンサなどからのデータは、家庭内やオフィスに設置される一台以上のゲートウェイ装置を介して、サーバに送信されることが一般的である。このゲートウェイ装置を利用して、サーバの低コスト化およびデータの収集性能の向上が期待される。
【０００５】
一般的に、リング構造のネットワークの装置に、効率的にデータをブロードキャストする方式を提案する（非特許文献１参照。）。また非特許文献１は、データに対する応答を送信する際、ブロードキャストの送信元に直接応答を送信する方法、あるいはブロードキャストの経路を逆に辿って応答を送信する方法を開示する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】El-Ansary, Sameh and Brand, Per and Haridi, Seif, et al. (2003) Efficient broadcast in structured P2P networks. 2nd International Workshop On Peer-To-Peer Systems (IPTPS'03), 20-21 Feb 2003, Berkeley, CA, USA.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ブロードキャストの送信元のサーバと、応答を送信するゲートウェイ装置間との通信において、非特許文献１に記載の方法を用いることができない問題がある。
【０００８】
ゲートウェイ装置からサーバに直接応答を送信する場合、サーバに、各ゲートウェイ装置からの応答が集中して発生するため、サーバが大量の応答を処理しなければならない問題がある。
【０００９】
仮に、上記の問題を解決するためにゲートウェイ装置が、ブロードキャストの経路を逆に辿って応答を送信するとした場合にも２つの問題がある。１つ目はサーバにより近いゲートウェイ装置に負荷が偏って集中し続ける問題である。ツリー構造で表されるブロードキャストの経路が変更されない限り、そのゲートウェイ装置に負荷が偏り続けてしまう。一般的に、家庭内やオフィスに設置されるゲートウェイ装置は、サーバや一般的なパーソナルコンピュータと比べ、大量の通信を扱うことは現実的に困難であるため、このような大量のデータを処理することは現実的に困難であると考えられる。
【００１０】
２つ目は、待ち時間の問題である。ツリー状のトポロジにおいて、各ゲートウェイ装置からサーバまで、ブロードキャスト送信と同じ数のゲートウェイ装置を経由することになる。そのため、サーバがすべての応答を受信するための待ち時間が大きくなってしまう。
【００１１】
そこで、サーバおよび各装置がデータを効率的に収集することが可能な通信方法が期待されている。
【００１２】
従って本発明の目的は、サーバおよび各装置がデータを効率的に収集することのできる通信システム、装置、通信方法、通信プログラムおよびサーバを提供することである。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明の第１の特徴は、サーバと、当該サーバに接続する相互に通信可能な複数の装置とを備える通信システムに関する。本発明の第１の特徴において、複数の装置は、それぞれ、０から２ｍ−１までのいずれかの整数値の識別子が付与される。サーバは、複数の装置のそれぞれに、０からｍ−１までのエントリ識別子（Entry）と、当該装置の識別子に２Entryを加えた転送先装置の識別子と、当該転送先装置のアドレスとを対応づけた経路表データを出力する経路表出力手段と、複数の装置のうち、代表装置とする１つの装置に、データの収集のためのリクエストデータを送信するリクエスト送信手段と、装置から、データを受信するデータ受信手段とを備える。装置は、サーバから、当該装置の経路表データを受信し、サーバまたは他装置からリクエストデータを受信すると、経路表データに従って、受信したリクエストデータを変更して、他装置に送信するとともに、受信したリクエストデータに対する応答データを、他装置またはサーバに送信する制御手段を備える。サーバが代表装置に送信するリクエストデータは、代表装置がデータを集約する装置の識別子の下限値および上限値を指定する、集約割当範囲と、装置間において当該リクエストデータを拡散する範囲を示す、０からｍまでの値をとる転送深度と、代表装置のアドレスを設定した集約送信先アドレスと、を含む。装置の制御手段は、（１）リクエストデータを受信すると、受信したリクエストデータの集約送信先アドレスと、集約割当範囲とを格納し、（２）受信したリクエストデータの転送深度が０の場合、当該装置が集約した自装置集約データを含む応答データを生成して、集約送信先アドレスに送信し、（３）応答データを受信すると、受信した応答データに含まれる集約データを、自装置集約データにマージし、マージ後の自装置集約データが、受信したリクエストデータの集約割当範囲をすべて満たす場合、当該自装置集約データを含む応答データを、集約送信先アドレスに送信し、（４）受信したリクエストデータの転送深度が０でない場合、経路表データを参照して、０以上転送深度未満の各エントリ識別子について、エントリ識別子の降順に、当該装置が受信した集約割当範囲内の装置の識別子を持つエントリ識別子について、受信したリクエストデータのうち、集約送信先アドレスを、当該装置が受信した集約割当範囲の上限値に最も近い装置の識別子を持つエントリ識別子について、当該装置が受信した集約送信先アドレスを引き継いで設定し、それ以外のエントリ識別子について、経路表データにおいて、当該エントリ識別子をインクリメントしたエントリ識別子に対応づけられた装置のアドレスに設定し、集約割当範囲を、経路表データにおいてエントリ識別子０の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、転送範囲を、当該エントリ識別子に変更した、変更後のリクエストデータを、経路表データにおいて当該エントリ識別子に対応する装置のアドレスに送信する処理を、繰り返す。
【００１４】
ここで制御手段が、受信したリクエストデータから、変更後のリクエストデータを生成する際、当該装置が代表装置の場合、集約送信先アドレスを、当該代表装置のアドレスに設定し、集約割当範囲を、経路表データにおいて当該エントリ識別子−１の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、転送範囲を、当該エントリ識別子に設定しても良い。
【００１５】
本発明の第２の特徴は、サーバと、当該サーバに相互に通信可能な複数の装置とを備える通信システムにおける装置に関する。本発明の第２の特徴に係る装置には、０から２ｍ−１のうちいずれかの整数値の識別子が付与される。装置は、０からｍ−１までのエントリ識別子（Entry）と、当該装置の識別子に２Entryを加えた転送先装置の識別子と、当該転送先装置のアドレスとを対応づけた経路表データを、受信し、サーバまたは他装置からリクエストデータを受信すると、経路表データに従って、受信したリクエストデータを変更して、他装置に送信するとともに、受信したリクエストデータに対する応答データを、他装置またはサーバに送信する制御手段を備える。サーバが装置に送信するリクエストデータは、当該装置がデータを集約する装置の識別子の下限値および上限値を指定する、集約割当範囲と、当該装置が当該リクエストデータを拡散する範囲を示す、０からｍまでの値をとる転送深度と、応答データの送信先である集約送信先アドレスと、を含む。制御手段は、（１）リクエストデータを受信すると、受信したリクエストデータの集約送信先アドレスと、集約割当範囲とを格納し、（２）受信したリクエストデータの転送深度が０の場合、当該装置が集約した自装置集約データを含む応答データを生成して、集約送信先アドレスに送信し、（３）応答データを受信すると、受信した応答データに含まれる集約データを、自装置集約データにマージし、マージ後の自装置集約データが、受信したリクエストデータの集約割当範囲をすべて満たす、当該自装置集約データを含む応答データを、集約送信先アドレスに送信し、（４）受信したリクエストデータの転送深度が０でない場合、経路表データを参照して、０以上転送深度未満の各エントリ識別子について、エントリ識別子の降順に、当該装置が受信した集約割当範囲内の装置の識別子を持つエントリ識別子について、受信したリクエストデータのうち、集約送信先アドレスを、当該装置が受信した集約割当範囲の上限値に最も近い装置の識別子を持つエントリ識別子について、当該装置が受信した集約送信先アドレスを引き継いで設定し、それ以外のエントリ識別子について、経路表データにおいて、当該エントリ識別子をインクリメントしたエントリ識別子に対応づけられた装置のアドレスに設定し、集約割当範囲を、経路表データにおいてエントリ識別子０の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、転送範囲を、当該エントリ識別子に変更した、変更後のリクエストデータを、経路表データにおいて当該エントリ識別子に対応する装置のアドレスに送信する処理を、繰り返す。
【００１６】
ここで当該装置が、サーバからリクエストデータを受けた代表装置の場合、制御手段は、受信したリクエストデータから、変更後のリクエストデータを生成する際、集約送信先アドレスを、当該装置のアドレスに設定し、集約割当範囲を、経路表データにおいて当該エントリ識別子−１の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、転送範囲を、当該エントリ識別子に設定しても良い。
【００１７】
本発明の第３の特徴は、サーバと、当該サーバに接続する相互に通信可能な複数の装置とを備える通信システムにおける装置に用いられる通信方法に関する。本発明の第３の特徴において、当該装置には、０から２ｍ−１のうちいずれかの整数値の識別子が付与され、０からｍ−１までのエントリ識別子（Entry）と、当該装置の識別子に２Entryを加えた転送先装置の識別子と、当該転送先装置のアドレスとを対応づけた経路表データを、受信するステップを備える。サーバが装置に送信するリクエストデータは、当該装置がデータを集約する装置の識別子の下限値および上限値を指定する、集約割当範囲と、当該装置と他装置間において当該リクエストデータを拡散する範囲を示す、０からｍまでの値をとる転送深度と、応答データの送信先である集約送信先アドレスと、を含む。通信方法は、（１）装置が、リクエストデータを受信すると、受信したリクエストデータの集約送信先アドレスと、集約割当範囲とを格納するステップと、（２）装置が、受信したリクエストデータの転送深度が０の場合、当該装置が集約した自装置集約データを含む応答データを生成して、集約送信先アドレスに送信するステップと、（３）装置が、応答データを受信すると、受信した応答データに含まれる集約データを、自装置集約データにマージし、マージ後の自装置集約データが、受信したリクエストデータの集約割当範囲をすべて満たす場合、当該自装置集約データを含む応答データを、集約送信先アドレスに送信するステップと、（４）装置が、受信したリクエストデータの転送深度が０でない場合、経路表データを参照して、０以上転送深度未満の各エントリ識別子について、エントリ識別子の降順に、当該装置が受信した集約割当範囲内の装置の識別子を持つエントリ識別子について、受信したリクエストデータのうち、集約送信先アドレスを、当該装置が受信した集約割当範囲の上限値に最も近い装置の識別子を持つエントリ識別子について、当該装置が受信した集約送信先アドレスを引き継いで設定し、それ以外のエントリ識別子について、経路表データにおいて、当該エントリ識別子をインクリメントしたエントリ識別子に対応づけられた装置のアドレスに設定し、集約割当範囲を、経路表データにおいてエントリ識別子０の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、転送範囲を、当該エントリ識別子に変更した、変更後のリクエストデータを、経路表データにおいて当該エントリ識別子に対応する装置のアドレスに送信する処理を、繰り返すステップを備える。
【００１８】
ここで、当該装置が、サーバからリクエストデータを受けた代表装置の場合、制御手段は、受信したリクエストデータから、変更後のリクエストデータを生成する際、集約送信先アドレスを、当該代表装置のアドレスに設定し、集約割当範囲を、経路表データにおいて当該エントリ識別子−１の装置の識別子から当該エントリ識別子に対応する装置の識別子の範囲に設定し、転送範囲を、当該エントリ識別子に設定しても良い。
【００１９】
本発明の第４の特徴は、コンピュータに、本発明の第２の特徴に係る装置の各手段として機能させるための通信プログラムに関する。
【００２０】
本発明の第５の特徴は、サーバと、当該サーバに接続する代表装置を含み相互に通信可能な複数の装置とを備える通信システムのサーバに関する。本発明の第５の特徴に関するサーバにおいて、複数の装置は、それぞれ、０から２ｍ−１までのいずれかの整数値の識別子が付与され、複数の装置のそれぞれに、０からｍ−１までのエントリ識別子（Entry）と、当該装置の識別子に２Entryを加えた転送先装置の識別子と、当該転送先装置のアドレスとを対応づけた経路表データを出力する経路表出力手段と、複数の装置のうち、代表装置とする１つの装置に、データの収集のためのリクエストデータを送信するリクエスト送信手段と、装置から、データを受信するデータ受信手段とを備える。サーバが代表装置に送信するリクエストデータは、代表装置がデータを集約する装置を特定する、集約割当範囲と、装置間において当該リクエストデータを拡散する範囲を示す、０からｍまでの値をとる転送深度と、代表装置のアドレスを設定した集約送信先アドレスと、を含む。
【発明の効果】
【００２１】
本発明によれば、サーバおよび各装置がデータを効率的に収集することのできる通信システム、装置、通信方法、通信プログラムおよびサーバを提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態に係る通信システムのシステム構成を説明する図である。
【図２】本発明の実施の形態に係る通信システムの装置のＩＤ空間を説明する図である。
【図３】本発明の実施の形態に係る通信システムのリクエストデータのデータ構造の一例を説明する図である。
【図４】本発明の実施の形態に係る通信システムの応答データのデータ構造の一例を説明する図である。
【図５】本発明の実施の形態に係るサーバのハードウェア構成と機能ブロックを説明する図である。
【図６】本発明の実施の形態に係るサーバの装置リストデータのデータ構造の一例を説明する図である。
【図７】本発明の実施の形態に係るサーバが生成する経路表データのデータ構造とデータの一例である。
【図８】本発明の実施の形態に係る装置のハードウェア構成と機能ブロックを説明する図である。
【図９】本発明の実施の形態に係る装置のシーケンス設定データのデータ構造の一例を説明する図である。
【図１０】本発明の実施の形態に係る装置の制御手段による制御処理を説明する図である。
【図１１】本発明の実施の形態に係る装置の拡散手段による拡散処理を説明する図である。
【図１２】本発明の実施の形態に係る装置の集約手段による集約処理を説明する図である。
【図１３】本発明の実施の形態に係る通信方法のデータの流れを説明する図である。
【図１４】本発明の実施の形態に係る通信方法の第１フェーズにおけるデータの流れを説明する図である。
【図１５】本発明の実施の形態に係る通信方法の第２フェーズにおけるデータの流れを説明する図である。
【図１６】本発明の実施の形態に係る通信方法の第３フェーズにおけるデータの流れを説明する図である。
【図１７】本発明の実施の形態に係る通信方法の第４フェーズにおけるデータの流れを説明する図である。
【図１８】本発明の実施の形態に係る通信方法の第５フェーズにおけるデータの流れを説明する図である。
【図１９】本発明の実施の形態に係る通信方法において、ＩＤが欠番した場合のデータの流れを説明する図である。
【図２０】本発明の第１の変形例に係る通信方法のデータの流れを説明する図である。
【図２１】本発明の第１の変形例に係る装置の拡散手段による拡散処理を説明する図である。
【図２２】本発明の実施の形態に係る通信方法と、第１の変形例に係る通信方法の効果を説明する図である。
【図２３】従来の通信方法のデータの流れを説明する図である。
【発明を実施するための形態】
【００２３】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００２４】
本発明の実施の形態において、［ａ，ｂ］の表記は、「ａ以上ｂ以下」であることを示し、［ａ，ｂ）の表記は、「ａ以上ｂ未満」であることを示す。
【００２５】
また本発明の実施の形態において、「拡散」は、サーバが送信したリクエストデータを、サーバが特定した複数の装置に行き渡らせることをいう。「集約」は、各装置が有するデータを、装置同士で、あるいは特定の装置にデータを集めることをいう。「収集」は、サーバが送信したリクエストデータに対して、このサーバが特定した複数の装置が収集したデータを、サーバが受信することをいう。
【００２６】
（通信システム）
本発明の実施の形態に係る通信システム３は、サーバ２と、複数の装置１ａ、１ｂ、１ｃ、…を備える。複数の装置１ａ、１ｂ、１ｃ、…を特に区別しない場合、単に装置１と記載する場合がある。本発明の実施の形態に係る通信システム３において、データの「拡散」、「集約」、および「収集」がなされる。
【００２７】
本発明の実施の形態において、装置１は例えば、家庭やオフィス等に設置されるゲートウェイ装置である。装置１は、家庭やオフィスに設置される家電機器やセンサなどの機器（図示せず）に接続する。装置１は、これらの機器から受信したデータを、直接サーバ２に送信したり、ほかの装置を介して間接的にサーバ２に送信したりする。本発明の実施の形態において、サーバ２からリクエストを受信する装置１を、特に、代表装置と称する場合がある。代表装置は、サーバ２によって定められる。代表装置は、常に同じ装置であっても良いし、リクエストの度に変更されても良い。代表装置を含む複数の装置は、互いに接続可能であり、かつ、サーバ２とも互いに接続可能である。
【００２８】
サーバ２は、各装置１にデータの送信をリクエストするとともに、そのリクエストに応じて収集されたデータを受信する。
【００２９】
図１に示す通信システム３において、サーバ２および装置１は、インターネット、ＮＧＮなどのＩＰネットワークにより接続される。各装置１は、少なくともＩＰ層レベルで相互に通信可能で、ＩＰネットワーク上で、オーバレイ（Ｐ２Ｐ）ネットワークを構築する。
【００３０】
各装置１は、少なくとも一以上のグループに分けられている。図１に示す例では、装置１ａ、１ｂおよび１ｃは、第１グループＧ１に属し、それ以外の装置は、第２グループＧ２に属する。サーバ２は、各グループに属する装置のリストと、各グループの大きさに対応するグループサイズｍを保持する。各グループに属する複数の装置は、それぞれ、０から２ｍ−１までのいずれかの整数値の装置ＩＤが、他装置と重複しないように付与される。
【００３１】
サーバ２は、グループごとに、独立してリクエストデータを送信し、そのグループに属する装置１のデータを収集する。サーバ２は、特定のグループの装置に対しリクエストデータを送信する際、そのグループの代表装置に送信する。その代表装置は、リクエストデータを、直接的または間接的にそのグループ内のほかの装置に送信する。この代表装置は、常に同じ装置であっても良いし、リクエストを送信する度に変更しても良い。代表装置は、各装置が送信したデータを、サーバ２あるいはサーバが指定するサーバに送信する。
【００３２】
本発明の実施の形態において、各グループは、図２に示すように、０から、２ｍ−１までの整数値を、装置１のＩＤ空間とする。各装置１は、論理的に、リング状のトポロジに配置される。各装置１は、論理的に、リング状のトポロジに配置されれば良く、実際には、ＩＰ層レベルで相互に通信可能なツリー状のトポロジに配置されても良い。
【００３３】
図２に示すグループは、ｍ＝４に対応する１６の装置を有しているので、各装置には、０から１５までのＩＤが付与される。図２に示す例において、ＩＤの昇順方向を順方向とし、この順方向において、ＩＤ＝２ｍ−１の次は、ＩＤ＝０に戻る。
【００３４】
本発明の実施の形態においてサーバ２は、代表装置にリクエストデータを送信する。代表装置は、受信したリクエストメッセージを適宜変更したリクエストデータをほかの装置１に送信したり、サーバ２に応答データを送信したりする。
【００３５】
図３を参照して、本発明の実施の形態に係るリクエストデータを説明する。リクエストデータは、シーケンス番号、集約割当範囲、転送深度、収集先アドレス、集約送信元、経路更新情報および収集対象リストの各項目を備える。
【００３６】
シーケンス番号は、サーバ２が送信するリクエストを識別する。シーケンス番号は、本明細書等において、”Sequence”で表記される場合がある。サーバ２は、リクエストを発する度に、シーケンス番号を単純増加する。シーケンス番号の増加方法としては、インクリメントする方法、シーケンス番号に、送信時刻やサーバ２のクロック値を設定する方法などが考えられる。シーケンス番号は、装置１がリクエストを拡散する際に書き換えられることはなく、一つのシーケンス番号に対して集約された各装置１の集約データは、最終的に、そのシーケンス番号に対応づけられた一つの応答データに含まれて、サーバ２に送信される。
【００３７】
集約割当範囲は、リクエストを受信した装置１がデータを集約装置について、装置ＩＤの下限値および上限値を指定する。集約割当範囲は、本明細書等において、”Allot”で表記される場合がある。また、集約対象の装置１のＩＤの範囲を、図２に示すリングの一部に限定する場合、集約割当範囲は、任意の下限値ｓから順方向に任意の上限値ｔまでを示す［ｓ、ｔ］となる。このとき、サーバ２は装置ＩＤがｓである装置を代表装置として、代表装置にリクエストデータを送信する。リクエストデータにおいて、集約割当範囲には、サーバ２がデータを収集したい装置１のＩＤが設定される。リクエストデータを受信した各装置１は、リクエストデータを拡散する際、リクエストデータの拡散先の装置が集約するべき装置１のＩＤの範囲を設定する。サーバ２がグループに属するすべての装置１からデータを集約する場合、サーバ２は、集約割当範囲として、代表装置のＩＤと、代表装置のＩＤに２ｍ−１を足した値を設定する。但し、代表装置のＩＤに２ｍ−１を足した後の値が２ｍ以上の場合、代表装置のＩＤに２ｍ−１を足した値から２ｍを引いた値、すなわち、代表装置のＩＤ−１の値とする。また、図２に示すような２４のＩＤ空間において、集約割当範囲［１３，２］と設定された場合、下限値１３から順方向に上限値２までの範囲を表し、装置ＩＤ＝１３、１４、１５、０、１、２の各装置を指すことになる。
【００３８】
転送深度は、リクエストを転送する深さを示す。転送深度は、本明細書等において、”Degree”で表記される場合がある。転送深度は、集約割当範囲に応じて決定される。例えば、集約割当範囲が［ｓ、ｔ］の場合、転送深度は、ｌｏｇ２（ｔ−ｓ＋１）の切り上げ数となる。また、集約割当範囲がグループに属するすべての装置１の場合、転送深度は、ｍとなる。
【００３９】
収集先アドレスは、リクエストの送信元のサーバ２が、自身以外のサーバに集約されたデータを収集させたい場合に指定する、収集先となるサーバのアドレスである。収集先アドレスは、本明細書等において、”Collector”で表記される場合がある。収集先アドレスは、ＩＰアドレスまたは、ＦＱＤＮ（Fully Qualified Domain Name）形式で、任意に指定される。
【００４０】
集約送信先は、集約データの送信先アドレスである。集約送信先は、本明細書等において、”Nexthop”で表記される場合がある。サーバ２が送信したリクエストデータにおいて、集約送信先として、代表装置のＩＰアドレスが設定される。装置１がほかの装置にリクエストデータを拡散する際、拡散する装置１が、集約送信先を適宜設定する。
【００４１】
経路更新情報は、グループの新たな装置１の加入や、装置１の離脱に伴って、任意に設定される。経路更新情報は、本明細書等において、”Updates”で表記される場合がある。経路更新情報は、後に詳述する。
【００４２】
収集対象リストは、各装置１が収集するべきデータの項目などである。収集対象リストは、例えば、収集対象のセンサの種別や、センサが取得したデータの項目などである。収集対象リストは、サーバ２が適宜設定する。
【００４３】
図４を参照して、本発明の実施の形態に係る応答データを説明する。応答データは、シーケンス番号、集約範囲および集約データの各項目を備える。
【００４４】
シーケンス番号は、集約データに対応するリクエストデータで設定されたシーケンス番号と同一の番号が付与される。シーケンス番号は、本明細書等において、”Sequence”で表記される場合がある。
【００４５】
集約範囲は、応答データに含まれる集約データを集約した装置の識別子を含む。集約範囲は、本明細書等において、”Range”で表記される場合がある。
【００４６】
集約データは、リクエストを送信したサーバ２に向けて送信するべき集約データである。集約データは、リクエストデータの収集対象リストに基づいて、各装置１が、収集対象のセンサなどから取得したデータである。集約データは、機器から取得した装置１のＩＤに対応して、設定されても良い。集約データにおいて、装置ＩＤと、この装置が機器から取得したデータとを対応づけて保持することにより、応答データを受信した装置は、集約範囲（”Range”）の設定データに依らずとも、応答データに含まれる集約データを集約した装置の識別子を特定することができる。
【００４７】
（サーバ）
図５を参照して、本発明の実施の形態に係るサーバ２を説明する。サーバ２は、記憶装置２１０、中央処理制御装置２２０および通信制御装置２３０などを備える一般的なコンピュータである。サーバ２は所定のプログラムを実行することにより、図５に示す各機能を実現する。
【００４８】
記憶装置２１０は、装置リストデータ２１１、更新データ２１２、経路表データ２１３ａ、２１３ｂ、…を記憶する。
【００４９】
装置リストデータ２１１は、所定のグループに属する装置の装置ＩＤとの、その装置のＩＰアドレスとを対応づけたデータである。装置リストデータ２１１は、図６に示すように、サーバ２がリクエストデータの送信対象とするグループ単位で、そのグループに属する装置１の装置ＩＤと、その装置のＩＰアドレスとを対応づける。装置リストデータ２１１における装置ＩＤは、連続して採番されていなくとも良く、欠番していても良い。
【００５０】
更新データ２１２は、グループの新たな装置１の加入や、装置１の離脱に関する情報を記憶する。
【００５１】
経路表データ２１３ａ、２１３ｂ、…は、所定のグループに属する複数の装置１のそれぞれに出力され、各装置がリクエストデータの送信先を決定する際に参照される。図７に示すように、経路表データ２１３ａ、２１３ｂ、…は、装置１ごとに用意される。経路表データ２１３ａ、２１３ｂ、…は、それぞれ、０からｍ−１までのエントリ識別子（Entry）と、当該装置の装置ＩＤに２Entryを加えた転送先装置のＩＤ（ID(Entry)）と、当該転送先装置のＩＰアドレス（IP(Entry)）とを対応づけたデータである。経路表データ２１３ａ、２１３ｂ、…は、サーバ２が装置１に送信した後は、記憶装置２１０に記憶されていなくとも良く、例えば、ＲＡＭ（Random Access Memory）などの作業用の記憶装置に記憶されても良い。
【００５２】
中央処理制御装置２２０は、装置リスト制御手段２２１、経路表出力手段２２２、リクエスト送信手段２２３およびデータ受信手段２２４を備える。
【００５３】
装置リスト制御手段２２１は、装置１やサーバ２自身が取得した、離脱した装置１や加入した装置１の情報を、更新データ２１２として記憶するとともに、装置リストデータ２１１を逐次更新する。
【００５４】
経路表出力手段２２２は、所定のグループに属する各装置について、経路表データ２１３ａ、２１３ｂ、…を生成し、各装置に出力する。
【００５５】
経路表出力手段２２２は、装置リストデータ２１１を参照して、以下の手順で経路表を生成する。ここで経路表出力手段２２２は、装置リストデータ２１１の装置ＩＤについて、２ｍ−１の次は、最も小さいＩＤである０に戻るように循環して参照する。
【００５６】
まず、経路表出力手段２２２は、装置１から接続通知を受信すると、この装置１の装置ＩＤをｘに決定し、装置リストデータ２１１に記憶する。ここで装置１の装置ＩＤは、装置１が決定して、サーバ２に送信しても良い。次に経路表出力手段２２２は、この装置ＩＤ＝ｘの経路表を、エントリ数０として作成し、変数Entryに”0”を設定する。
【００５７】
経路表出力手段２２２は、装置リストデータ２１１の線形探索の開始箇所を、装置ＩＤ＝ｘとする。装置リストデータ２１１は、装置ＩＤの昇順にソートされた状態で、装置ＩＤの最小値から最大値の方向を順方向とし、装置ＩＤの最大値から装置ＩＤの最小値へと循環させて参照される。
【００５８】
経路表出力手段２２２は、装置リストデータ２１１を順方向に線形探索し、装置ＩＤ＝ｘ＋２Entryの値を持つ装置を特定する。ここで、装置ＩＤ＝ｘ＋２Entryの値を持つ装置が存在しない場合、順方向にｘ＋２Entryを通り越して探索された装置ＩＤを持つ装置を特定する。経路表出力手段２２２は、特定した装置について、Entry、装置ＩＤおよびこの装置のＩＰアドレスを対応づけて、経路表データのエントリに追加する。
【００５９】
経路表データのエントリの追加の処理は、Entryが０から開始し、一つずつインクリメントしながら、Entry＝ｍ−１まで繰り返される。また、経路表出力手段２２２は、グループに属するすべての装置について、この処理を繰り返し、各装置の経路表データ２１３ａ、２１３ｂ、…を生成すると、生成した経路表データ２１３ａ、２１３ｂ、…を、それぞれの装置に送信する。
【００６０】
図７において、３種類の経路表データ２１３ａ、２１３ｂおよび２１３ｎを示す。図７（ａ）の経路表データ２１３ａは、ｍ＝４で装置ＩＤ＝０の装置に送信される。経路表データ２１３ａは、０から３までのEntryを有し、各EntryのＩＤ欄には、この装置の装置ＩＤ＝０に、２Entryを足した値が設定される。図７（ｂ）の経路表データ２１３ｂは、ｍ＝４で装置ＩＤ＝１の装置に送信される。経路表データ２１３ｂは、０から３までのEntryを有し、各EntryのＩＤ欄には、この装置の装置ＩＤ＝１に、２Entryを足した値が設定される。図７（ｃ）の経路表データ２１３ｎは、ｍ＝４で装置ＩＤ＝ｎの装置に送信される。経路表データ２１３ａは、０から３までのEntryを有し、各EntryのＩＤ欄には、この装置の装置ＩＤ＝ｎに、２Entryを足した値が設定される。
【００６１】
本発明の実施の形態において、任意の装置ＩＤ＝ｎの装置ＩＤは、図７（ｃ）に示すように、ＩＤｎまたはＩＤｎと表記される場合がある。装置ＩＤ＝ｎのＩＰアドレスは、ＩＰｎまたはＩＰｎと表記される場合がある。また、このＩＤｎの経路表データ２１３ｎにおいて、Entry＝ｉのレコードで対応づけられる装置ＩＤが、ＩＤｎ（ｉ）と表記され、この装置のＩＰアドレスが、ＩＰｎ（ｉ）と表記される場合がある。
【００６２】
リクエスト送信手段２２３は、グループ内の複数の装置のうち、代表装置とする１つの装置に、データの収集のためのリクエストデータを送信する。リクエスト送信手段２２３は、代表装置をランダムに選定しても良い。また、図２に示すグループにおいて、ＩＤ＝０の装置、ＩＤ＝１の装置…など、時計回りに順に選定しても良い。リクエスト送信手段２２３は、図３を参照して説明したリクエストデータに各データを設定して、代表装置に送信する。
【００６３】
リクエスト送信手段２２３は、シーケンス番号（Sequence）に、前回送信したリクエストのシーケンス番号よりも大きい番号を設定する。リクエスト送信手段２２３は、集約割当範囲（Allot）に、代表装置がデータを集約する装置を特定する情報を設定する。リクエスト送信手段２２３は、転送深度（Degree）に装置間において当該リクエストデータを拡散する範囲を示す、０からｍまでの値を設定する。リクエスト送信手段２２３は、集約送信先アドレス（Nexthop）に、代表装置のアドレスを設定する。このほかリクエスト送信手段２２３は、適宜必要なデータを設定する。
【００６４】
データ受信手段２２４は、グループ内の装置から、データを受信する。データ受信手段２２４は、図４を参照して説明した応答データを受信し、この応答データに設定された収集データを取得する。
【００６５】
（装置）
図８を参照して、本発明の実施の形態に係る装置１を説明する。装置１は、記憶装置１０、中央処理制御装置２０および通信制御装置３０などを備える一般的なコンピュータである。装置１は所定の通信プログラムを実行することにより、図８に示す各機能を実現する。
【００６６】
記憶装置１１０は、経路表データ１１、シーケンス設定データ１２、自装置集約データ１６を記憶する。
【００６７】
経路表データ１１は、図７に示すように、０からｍ−１までのエントリ識別子（Entry）と、当該装置の識別子に２Entryを加えた転送先装置の識別子（ID(Entry)）と、当該転送先装置のアドレス（IP(Entry)）とを対応づけたデータである。経路表データ１１は、サーバ２で生成され、サーバから送信される。
【００６８】
シーケンス設定データ１２は、サーバ２またはほかの装置から受信したリクエストデータに関連するデータを含む。シーケンス設定データ１２は、図９に示すように、リクエストデータに含まれるシーケンス番号ごとに設けられ、集約送信先アドレス１３、収集先アドレス１４および集約割当範囲データ１５を含む。
【００６９】
集約送信先アドレス１３は、受信したリクエストデータの”Nexthop”で設定されるデータである。収集先アドレス１４は、受信したリクエストデータの”Collector”で設定されるデータである。集約割当範囲データ１５は、受信したリクエストデータの”Allot”で設定されるデータに基づいて設定される。集約割当範囲データ１５は、集約割当範囲”Allot”で指定されるほかの装置の識別子と、このほかの装置から集約データを受信したか否かを示す受信フラグを対応づけたデータである。集約割当範囲データ１５は、リクエストデータの受信時、受信フラグが「未受信」に設定されて生成され、装置１がほかの装置から集約データを受信する度に、集約データの送信元の装置の装置ＩＤに対応づけられた受信フラグが「受信済」に更新される。
【００７０】
自装置集約データ１６は、装置１が接続する、家電機器やセンサなどから受信したデータである。自装置集約データ１６は、ほかの装置から集約データを受信すると、その集約データもマージされる。
【００７１】
中央処理制御装置２０は、本発明の実施の形態に係るリクエストデータ、応答データなどの処理を制御する制御手段２１およびデータ取得手段２５を備える。
【００７２】
データ取得手段２５は、装置１が接続する家電機器やセンサなどの機器からデータを取得する。データ取得手段２５は、リクエストデータの収集対象リストで設定された情報に従って、装置１が接続する機器にデータをリクエストし、取得する。データ取得手段２５は、取得したデータを自装置集約データ１６として記憶装置１０に記憶する。データ取得手段２５は、データの取得の元となったリクエストデータのシーケンス番号と対応づけて、自装置集約データ１６を記憶しても良い。
【００７３】
制御手段２１は、サーバ２から、当該装置の経路表データ１１を受信し、記憶装置１０に記憶する処理を制御する。制御手段２１は、サーバ２または他装置からリクエストデータを受信すると、経路表データ１１に従って、受信したリクエストデータを変更して、他装置に送信するとともに、受信したリクエストデータに対する応答データを、他装置またはサーバ２に送信する処理を制御する。
【００７４】
制御手段２１は、リクエストデータを受信すると、受信したリクエストデータの集約送信先アドレス（Nexthop）と、集約割当範囲（Allot）とを格納し、シーケンス設定データ１２に記憶する。また制御手段２１は、経路表制御手段２２、拡散手段２３および集約手段２４を備え、受信したデータの種別や設定値によって、経路表制御手段２２、拡散手段２３および集約手段２４のいずれかに処理させる。
【００７５】
経路表制御手段２２は、サーバ２から、当該装置の経路表データを受信し、記憶装置１０に記憶する。また経路表制御手段２２は、リクエストデータに経路更新情報”Updates”が含まれている場合、必要に応じて経路表データ１１を更新する。経路表データ１１の更新処理は、後に詳述する。
【００７６】
拡散手段２３は、サーバ２や他装置から受信したリクエストデータを、ほかの装置に転送する。拡散手段２３は、受信したリクエストデータの転送深度”Degree”が０の場合、新たに応答データを生成させるため、集約手段２４に処理させる。また拡散手段２３は、受信したリクエストデータの転送深度”Degree”が０でない場合、経路表データ１１を参照して、リクエストデータを変更して、変更後のリクエストデータを他装置に送信する。
【００７７】
拡散手段２３は、０以上かつ、受信したリクエストデータの転送深度（Degree）未満の各エントリ識別子（（０≦Entry＜Degreeを満たす各Entry=ｉ））について、エントリ識別子の降順に、受信したリクエストデータから変更後のリクエストデータを生成する。また拡散手段２３は、変更後のリクエストデータを、経路表データ１１において当該エントリ識別子（ｉ）に対応する装置のアドレス（IP (i)）に送信する処理を繰り返す。このとき、エントリ識別子が転送深度−１のエントリから降順に、処理する。拡散手段２３は、集約割当範囲外の装置ＩＤを持つエントリに関する処理をスキップする。例えば、エントリ識別子が転送深度−１の装置ＩＤが８のとき、集約割当範囲が［０，７］であれば、当該エントリに関する処理をスキップする。また、エントリ識別子が転送深度−２の装置ＩＤが４であれば、集約割当範囲内であるため、当該エントリについて拡散手段２３を実行する。
【００７８】
ここで拡散手段２３は、リクエストデータの集約送信先アドレス（Nexthop）、集約割当範囲（Allot）および転送範囲（Degree）の各項目を設定する。拡散手段２３は、集約送信先アドレス（Nexthop）を、受信したAllotの範囲内で、かつAllotの上限値に最も近い装置ＩＤ（ｉ）を持つエントリ識別子について、集約送信先アドレスに、受信した集約送信先アドレスをそのまま引き継ぎいで設定する。拡散手段２３は、それ以外のエントリ識別子について、集約送信先アドレスを当該エントリ識別子(i)をインクリメントしたエントリ識別子(i+1)に対応づけられた装置のアドレス(IP(i+1))に設定する。拡散手段２３は、集約割当範囲（Allot）を、経路表データ１１においてエントリ識別子０の装置の識別子（ID(0)）から当該エントリ識別子に対応する装置（ID(i)）の識別子の範囲に設定する。拡散手段２３は、転送範囲（Degree）を、当該エントリ識別子（ｉ）に設定する。
【００７９】
集約手段２４は、拡散先のないリクエストデータを受信した場合や、応答データを受信した場合、自装置集約データ１６とあわせて、応答データを他装置やサーバ２に送信する。
【００８０】
集約手段２４は、受信したリクエストデータの転送深度”Degree”が０の場合、新たに応答データを生成する。集約手段２４は、受信したリクエストデータの転送深度（Degree）が０の場合、装置１が集約した自装置集約データ１６を含む応答データを生成して、集約送信先アドレス（Nexthop）に送信する。
【００８１】
また集約手段２４は、他装置から応答データを受信すると、受信した応答データに含まれる集約データを、自装置集約データ１６にマージする。集約手段２４は、マージ後の自装置集約データ１６が、受信したリクエストデータの集約割当範囲（Allot）で特定された装置の集約データを含む場合、当該自装置集約データ１６を含む応答データを、集約送信先アドレス（Nexthop）に送信する。
【００８２】
ここで、図１０ないし図１２を参照して、制御手段２１の処理を説明する。図１０ないし図１２の処理の順序は一例であって、これに限られない。
【００８３】
図１０を参照して、制御手段２１による制御処理を説明する。制御手段２１は、受信したデータの種別に応じて、経路表制御手段２２、拡散手段２３および集約手段２４のいずれかに処理をさせる。
【００８４】
ステップＳ１において制御手段２１は、受信したデータの種別がリクエストデータの場合、ステップＳ２に進む。ステップＳ２において制御手段２１は、新たに受信したシーケンス番号が、前回受信したシーケンス番号より大きいか否かを判定する。新たに受信したシーケンス番号が、前回受信したシーケンス番号以下の場合、制御手段２１は、既にこのリクエストデータについては処理をしているので、受信したリクエストデータを破棄して処理を終了する。
【００８５】
一方、新たに受信したシーケンス番号が、前回受信したシーケンス番号より大きい場合、ステップＳ３に進む。ステップＳ３において制御手段２１は、受信したリクエストデータの経路更新情報”Updates”欄に、経路更新の内容が設定されている場合、ステップＳ４において、経路表データ１１を更新し、ステップＳ４に進む。この処理は、後に詳述する。
【００８６】
次に、受信したリクエストデータのシーケンス番号に対応して、シーケンス設定データ１２を生成する。具体的にはステップＳ５において制御手段２１は、受信したリクエストデータの集約送信先”Nexthop”の設定値を、集約送信先アドレス１３に設定する。ステップＳ６において制御手段２１は、受信したリクエストデータの収集先アドレス”Collector”が設定されている場合、収集先アドレス”Collector”の設定値を、収集先アドレス１４に設定する。ステップＳ７において制御手段２１は、受信したリクエストデータの集約割当範囲”Allot”に基づいて、集約割当範囲データ１５を生成する。ここで制御手段２１は、集約割当範囲”Allot”で特定される各装置１の識別子と、この装置から集約データを受信したか否かを示す受信フラグを対応づけたテーブルを生成するとともに、受信フラグを「未受信」に初期設定する。
【００８７】
次にステップＳ８において制御手段２１は、受信したリクエストデータの転送深度”Degree”が、０であるか否かを判定する。０でない場合、ステップＳ９に進む。ステップＳ９において拡散手段２３が、受信したリクエストを処理する。
【００８８】
ステップＳ８において、制御手段２１が受信したリクエストデータの転送深度”Degree”が０と判定された場合、または、ステップＳ１において、制御手段２１が受信したデータが応答データである場合、ステップＳ１０に進む。ステップＳ１０において、集約手段２４が、受信したリクエストデータまたは応答データを処理する。
【００８９】
一方ステップＳ１において、制御手段２１が受信したデータが経路表データの場合、ステップＳ１１において制御手段２１は、受信した経路表データ１１を記憶装置１０に記憶する。
【００９０】
図１１を参照して、本発明の実施の形態に係る拡散手段２３による拡散処理を説明する。ここで装置１は、ＩＤ＝ｎであり、図７（ｃ）に示す経路表データを保持しているとする。拡散手段２３は、受信したリクエストの所定の項目を設定して、ほかの装置にリクエストデータを送信する。
【００９１】
拡散手段２３は、経路表データ１１に基づいて、ｉ＝Degree−１から、０までの各ｉについて、ｉの降順で、ステップＳ１０１ないしステップＳ１０５の処理を繰り返す。ここで”Degree”は、受信したリクエストデータの転送深度の設定値である。また、あるEntryに対応する装置が、そのEntryより１大きいEntryに対応する装置と同一の場合、ＩＰｎ（ｉ）＝ＩＰｎ（ｉ＋１）の場合、このEntry＝ｉに関しては処理がスキップされ、重複リクエストが送信されない。
【００９２】
まずステップＳ１０１において拡散手段２３は、当該エントリ識別子に対応する装置のＩＤｎ（ｉ）が、集約割当範囲”Allot”の範囲内であるか否かを判断する。ＩＤｎ（ｉ）が、集約割当範囲”Allot”の範囲外である場合、当該エントリ識別子ｉに関する処理を終了し、次のｉ−１について処理する。ＩＤｎ（ｉ）が、集約割当範囲”Allot”の範囲内の場合、ステップＳ１０２に進む。
【００９３】
ステップＳ１０２において拡散手段２３は、当該エントリ識別子ｉのＩＤｎ（ｉ）が、集約割当範囲”Allot”の上限値に最も近い場合、集約送信先”Nexthop”を変更しない。一方、それ以外の場合、集約送信先”Nexthop”に、ＩＰｎ（ｉ＋１）を設定する。ステップＳ１０３において拡散手段２３は、集約割当範囲”Allot”に、［ＩＤｎ（０），ＩＤｎ（ｉ）］を設定する。さらに、ステップＳ１０４において拡散手段２３は、転送深度”Degree”に、ｉの値を設定する。
【００９４】
ステップＳ１０５において拡散手段２３は、ステップＳ１０２ないしステップＳ１０４の処理によって書き換えられたリクエストデータを、ＩＰｎ（ｉ）の装置に転送する。ここで、シーケンス番号”Sequence”、収集先アドレス”Collector”、経路更新情報”Updates”および収集対象リストの各項目は、書き換えられていない。
【００９５】
ｉ＝Degree−１から、０までの各ｉについて、デクリメントしながらステップＳ１０１ないしステップＳ１０５の処理が終了すると、拡散手段２３は処理を終了する。
【００９６】
図１２を参照して、本発明の実施の形態に係る集約手段２４による集約処理を説明する。ここで装置１は、ＩＤ＝ｎであり、図７（ｃ）に示す経路表データを保持しているとする。集約手段２４は、受信した応答データを自装置集約データ１６にマージしつつ、集約割当範囲のすべての装置の集約データを受信すると、応答データの所定の項目を設定して、ほかの装置に応答データを送信する。
【００９７】
まずステップＳ２０１において集約手段２４は、リクエストデータ受信後の処理であるか否かを判定する。集約手段２４は、リクエストデータ受信後の処理の場合、具体的には、受信したリクエストデータの転送深度”Degree”に０が設定され、図１０のステップＳ８の判定により集約処理をする場合、ステップＳ２０２に進む。
【００９８】
ステップＳ２０２ないしステップＳ２０４の処理において集約手段２４は、応答データを生成する。具体的にはステップＳ２０２において集約手段２４は、受信したリクエストデータのシーケンス番号”Sequence”の設定値を、応答データのシーケンス番号”Sequence”に設定する。ステップＳ２０３において集約手段２４は、集約範囲”Range”の設定値として、［ｎ，ＩＤｎ（０））を設定する。ステップＳ２０４において集約手段２４は、集約データ項目に、自装置が機器から取得したデータを設定する。
【００９９】
その後、ステップＳ２１１に進む。ステップＳ２１１において集約手段２４は、シーケンス設定データ１２の集約送信先アドレス１３で設定された値、具体的には、リクエストデータの”Nexthop”項目で設定されたアドレスに、ステップＳ２０２ないしステップＳ２０４で生成した応答データを送信する。
【０１００】
一方、ステップＳ２０１において、リクエストデータ受信後の処理でないと判定された場合、集約手段２４は、ステップＳ２０５に進む。ステップＳ２０５ないしステップＳ２１２の処理において集約手段２４は、ほかの装置で生成され、送信された応答データを処理する。
【０１０１】
まずステップＳ２０５において集約手段２４は、ステップＳ２０５において、自装置集約データ１６に、受信した応答データに含まれる集約データをマージする。さらにステップＳ２０６において集約手段２４は、受信した応答データに含まれるシーケンス番号”Sequence”の値に対応する集約割当範囲データ１５を更新する。具体的には集約手段２４は、受信した応答データの集約範囲”Range”で設定された装置の識別子に対応づけられた受信フラグを「受信済」に変更する。
【０１０２】
ステップＳ２０７において集約手段２４は、集約割当範囲データ１５を参照して、集約割当範囲データ１５の受信フラグがすべて「受信済」に設定されているか否かを判定する。受信済に設定されていない場合、「未受信」の装置からの応答データを待機するため、そのまま処理を終了する。
【０１０３】
一方、ステップＳ２０７において、集約割当範囲データ１５の受信フラグがすべて「受信済」に設定されていると判定された場合、ほかの装置に送信する応答データを生成する。具体的には、ステップＳ２０８において、受信した応答データの集約範囲”Range”を、ステップＳ２０５で生成した自装置集約データに対応する装置の範囲に更新する。例えば、受信した応答データの集約範囲”Range”が、［ｓ，ｎ）の場合、［ｓ，ＩＤｎ（０））に修正する。ステップＳ２０９において集約手段２４は、受信した応答データの集約データに、自装置集約データ１６を設定する。換言すると、この装置１が送信する応答データの集約データとして、この装置１が集約するべきすべての装置の集約データが設定される。
【０１０４】
次にステップＳ２１０において、自装置が、代表装置であるか否かを判定する。代表装置でない場合、ステップＳ２１１において集約手段２４は、シーケンス設定データ１２の集約送信先アドレス１３で設定されたアドレスに、ステップＳ２０８ないしステップＳ２０９で更新した応答データを送信する。一方、代表装置の場合、ステップＳ２１２において集約手段２４は、収集先アドレス１４が設定されている場合はその収集先アドレスに、設定されていない場合はサーバ２に、ステップＳ２０８ないしステップＳ２０９で更新した応答データを送信する。
【０１０５】
（具体例）
次に図１３ないし図１８を参照して、本発明の実施の形態に係る通信方法を説明する。この通信方法では、ｍ＝４で、アドレス空間がＩＤ＝０からＩＤ＝１５までの、それぞれの装置を備えるグループを前提として説明する。ここで、代表装置はＩＤ＝０の装置である。
【０１０６】
図１３ないし図１８に示す例において、一つの装置１の拡散処理または集約処理を、一つのフェーズで示す処理単位として説明する。例えば、一つの装置１が、拡散処理において複数のほかの装置にデータを送信する場合も、一つのフェーズ内での処理とする。また、一つの装置の処理と、ほかの装置の処理とを、並行して実施可能であれば、これらの装置の処理も一つのフェーズ内での処理とする。また図１３ないし図１８に示す例において、（ａ）は、拡散におけるデータの流れを示し、（ｂ）は、集約におけるデータの流れを示す。図１３は、第１フェーズから第５フェーズまでのデータの流れを示す。図１４ないし図１８は、それぞれ、第１フェーズから第５フェーズまでの各フェーズにおける装置間のデータの流れを示し、当該フェーズでのデータの流れを実線で、当該フェーズ以前のデータの流れを破線で示す。また、図１４ないし図１８の（ｂ）において、黒丸は、リクエストデータを受信済の装置を示す。
【０１０７】
＜第１フェーズ＞
まず第１フェーズを説明する。
【０１０８】
ＩＤ０の装置は、サーバ２からリクエストデータを受信する。リクエストデータの集約割当範囲”Allot”＝［ＩＤ０，ＩＤ１５］、転送深度”Degree”＝ｍ＝４、集約送信先アドレス”Nexthop”＝ＩＰ０が設定される。ここでＩＤ０の装置は、集約送信先アドレス”Nexthop”が、自身のＩＰアドレスであるため、自身が代表装置であると把握する。これにより、ＩＤ０の装置は、ＩＤ０の装置からＩＤ１５の集約データを、サーバ２または収集先アドレス１４に送信することになる。
【０１０９】
ＩＤ０の装置は、受信したリクエストデータから、シーケンス設定データ１２を抽出し、自身の記憶装置１０に記憶する。またＩＤ０の装置は、受信したリクエストデータのDegreeが０でないので、図１１の拡散処理を実行する。
【０１１０】
ＩＤ０の装置は、０≦ｉ＜Degreeの各ｉについて、降順に図１１のステップＳ１０１ないしステップＳ１０４の処理を繰り返す。これにより、図１３（ａ）の第１フェーズおよび図１４（ａ）に示すように、ＩＤ０の装置は、受信したリクエストデータを、ＩＤ８の装置、ＩＤ４の装置、ＩＤ２の装置およびＩＤ１の装置に送信する。この時点では、Degree＝０のリクエストデータを受信した装置はないので、図１３（ｂ）の第１フェーズおよび図１４（ｂ）には、何ら示されない。
【０１１１】
ここで、第１フェーズで送信されるリクエストデータを詳述する。
【０１１２】
（１−１）ＩＤ０の装置は、ｉ＝３の処理により、ＩＤ０（３）＝ＩＤ８の装置に、Degree＝３、Allot＝［ＩＤ０（０），ＩＤ０（３）］＝［ＩＤ１，ＩＤ８］、Nexthop＝ＩＰ０を設定したリクエストデータを送信する。これにより、ＩＤ０の装置は、ＩＤ８の装置に、ＩＤ１の装置からＩＤ８の装置の集約データを、ＩＤ０の装置に送信するよう、リクエストする。ここで、ｉ＝受信したリクエストデータのDegree−１のエントリにある装置ＩＤ８は受信した集約割当範囲［ＩＤ０，ＩＤ１５］内で、かつ集約割当範囲の上限値であるＩＤ１５に最も近いＩＤであるため、Nexthopは受信したアドレスＩＰ０を引き継いで設定する。
【０１１３】
（１−２）ＩＤ０の装置は、ｉ＝２の処理により、ＩＤ０（２）＝ＩＤ４の装置に、Degree＝２、Allot＝［ＩＤ０（０），ＩＤ０（２）］＝［ＩＤ１，ＩＤ４］、Nexthop＝ＩＰ０（２＋１）＝ＩＰ８を設定したリクエストデータを送信する。これにより、ＩＤ０の装置は、ＩＤ４の装置に、ＩＤ１の装置からＩＤ４の装置の集約データを、ＩＤ８の装置に送信するよう、リクエストする。
【０１１４】
（１−３）ＩＤ０の装置は、ｉ＝１の処理により、ＩＤ０（１）＝ＩＤ２の装置に、Degree＝１、Allot＝［ＩＤ０（０），ＩＤ０（１）］＝［ＩＤ１，ＩＤ２］、Nexthop＝ＩＰ０（１＋１）＝ＩＰ４を設定したリクエストデータを送信する。これにより、ＩＤ０の装置は、ＩＤ２の装置に、ＩＤ１の装置からＩＤ２の装置の集約データを、ＩＤ４の装置に送信するよう、リクエストする。
【０１１５】
（１−４）ＩＤ０の装置は、ｉ＝０の処理により、ＩＤ０（０）＝ＩＤ１の装置に、Degree＝０、Allot＝［ＩＤ０（０），ＩＤ０（０）］＝［ＩＤ１，ＩＤ１］、Nexthop＝ＩＰ０（０＋１）＝ＩＰ２を設定したリクエストデータを送信する。これにより、ＩＤ０の装置は、ＩＤ１の装置に、ＩＤ１の装置の集約データを、ＩＤ２の装置に送信するよう、リクエストする。
【０１１６】
＜第２フェーズ＞
第２フェーズを説明する。
【０１１７】
第１フェーズで、リクエストデータを受信したＩＤ８の装置、ＩＤ４の装置、ＩＤ２の装置およびＩＤ１の装置は、受信したリクエストデータから、シーケンス設定データ１２を抽出し、自身の記憶装置１０に記憶する。このうち、Degree＞０のリクエストデータを受信したＩＤ８の装置、ＩＤ４の装置およびＩＤ２の装置が、それぞれ拡散処理をし、Degree＝０のリクエストデータを受信したＩＤ１の装置が、集約処理をする。
【０１１８】
ＩＤ２の装置は、（１−３）の処理により、集約割当範囲”Allot”＝［ＩＤ１，ＩＤ２］、転送深度”Degree”＝１、集約送信先アドレス”Nexthop”＝ＩＰ４が設定されたリクエストデータを受信する。ＩＤ２の装置は、０≦ｉ＜Degreeの各ｉについて、降順に図１１のステップＳ１０１ないしステップＳ１０４の処理を繰り返す。これにより、図１３（ａ）および図１５（ａ）に示すように、ＩＤ２の装置は、受信したリクエストデータを、ＩＤ３の装置に送信する。
【０１１９】
ＩＤ４の装置は、（１−２）の処理により、集約割当範囲”Allot”＝［ＩＤ１，ＩＤ４］、転送深度”Degree”＝２、集約送信先アドレス”Nexthop”＝ＩＰ８が設定されたリクエストデータを受信する。ＩＤ４の装置は、０≦ｉ＜Degreeの各ｉについて、降順に図１１のステップＳ１０１ないしステップＳ１０４の処理を繰り返す。これにより、図１３（ａ）および図１５（ａ）に示すように、ＩＤ４の装置は、受信したリクエストデータを、ＩＤ６の装置およびＩＤ５の装置に送信する。
【０１２０】
ＩＤ８の装置は、（１−１）の処理により、集約割当範囲”Allot”＝［ＩＤ１，ＩＤ８］、転送深度”Degree”＝３、集約送信先アドレス”Nexthop”＝ＩＰ０が設定されたリクエストデータを受信する。ＩＤ８の装置は、０≦ｉ＜Degreeの各ｉについて、降順に図１１のステップＳ１０１ないしステップＳ１０４の処理を繰り返す。これにより、図１３（ａ）および図１５（ａ）に示すように、ＩＤ８の装置は、受信したリクエストデータを、ＩＤ１２の装置、ＩＤ１０の装置、およびＩＤ９の装置に送信する。
【０１２１】
一方、ＩＤ１の装置は、（１−４）の処理により、集約割当範囲”Allot”＝［ＩＤ１，ＩＤ１］、転送深度”Degree”＝０、集約送信先アドレス”Nexthop”＝ＩＰ２が設定されたリクエストデータを受信する。ここで、受信したリクエストデータのDegree＝０なので、図１２のステップＳ２０２ないしステップＳ２０４、およびステップＳ２１１の処理により、ＩＤ１の装置は、自装置集約データ１６を含む応答データを生成し、ＩＤ２の装置に送信する。
【０１２２】
ここで、第２フェーズで送信されるリクエストデータを詳述する。
【０１２３】
（２−１）ＩＤ２の装置は、（１−３）の処理を受けて、ｉ＝０の処理により、ＩＤ２（０）＝ＩＤ３の装置に、Degree＝０、Allot＝［ＩＤ２（０），ＩＤ２（０）］＝［ＩＤ３，ＩＤ３］、Nexthop＝ＩＰ４を設定したリクエストデータを送信する。これにより、ＩＤ２の装置は、ＩＤ３の装置に、ＩＤ３の装置の集約データを、ＩＤ４の装置に送信すよう、リクエストする。
【０１２４】
（２−２）ＩＤ４の装置は、（１−２）の処理を受けて、ｉ＝１の処理により、ＩＤ４（１）＝ＩＤ６の装置に、Degree＝１、Allot＝［ＩＤ４（０），ＩＤ４（１）］＝［ＩＤ５，ＩＤ６］、Nexthop＝ＩＰ８を設定したリクエストデータを送信する。これにより、ＩＤ４の装置は、ＩＤ６の装置に、ＩＤ５の装置からＩＤ６の装置の集約データを、ＩＤ８の装置に送信するよう、リクエストする。
【０１２５】
（２−３）ＩＤ４の装置は、（１−２）の処理を受けて、ｉ＝０の処理により、ＩＤ４（０）＝ＩＤ５の装置に、Degree＝０、Allot＝［ＩＤ４（０），ＩＤ４（０）］＝［ＩＤ５，ＩＤ５］、Nexthop＝ＩＰ４（０＋１）＝ＩＰ６を設定したリクエストデータを送信する。これにより、ＩＤ４の装置は、ＩＤ５の装置に、ＩＤ５の装置の集約データを、ＩＤ６の装置に送信するよう、リクエストする。
【０１２６】
（２−４）ＩＤ８の装置は、（１−１）の処理を受けて、ｉ＝２の処理により、ＩＤ８（２）＝ＩＤ１２の装置に、Degree＝２、Allot＝［ＩＤ８（０），ＩＤ８（２）］＝［ＩＤ９，ＩＤ１２］、Nexthop＝ＩＰ０を設定したリクエストデータを送信する。これにより、ＩＤ８の装置は、ＩＤ１２の装置に、ＩＤ９の装置からＩＤ１２の装置の集約データを、ＩＤ０の装置に送信するよう、リクエストする。
【０１２７】
（２−５）ＩＤ８の装置は、（１−１）の処理を受けて、ｉ＝１の処理により、ＩＤ８（１）＝ＩＤ１０の装置に、Degree＝１、Allot＝［ＩＤ８（０），ＩＤ８（１）］＝［ＩＤ９，ＩＤ１０］、Nexthop＝ＩＰ８（１＋１）＝ＩＰ１２を設定したリクエストデータを送信する。これにより、ＩＤ８の装置は、ＩＤ１０の装置に、ＩＤ９の装置からＩＤ１０の装置の集約データを、ＩＤ１２の装置に送信するよう、リクエストする。
【０１２８】
（２−６）ＩＤ８の装置は、（１−１）の処理を受けて、ｉ＝０の処理により、ＩＤ８（０）＝ＩＤ９の装置に、Degree＝０、Allot＝［ＩＤ８（０），ＩＤ８（０）］＝［ＩＤ９，ＩＤ９］、Nexthop＝ＩＰ８（０＋１）＝ＩＰ１０を設定したリクエストデータを送信する。これにより、ＩＤ８の装置は、ＩＤ９の装置に、ＩＤ９の装置の集約データを、ＩＤ１０の装置に送信するよう、リクエストする。
【０１２９】
ここで、第２フェーズで送信される応答データを詳述する。
【０１３０】
（２−７）ＩＤ１の装置は、（１−４）において、Nexthop＝ＩＰ２を設定したリクエストデータを受信する。そこでＩＤ１の装置は、（１−４）の処理を受けて、Nexthop＝ＩＰ２の装置に、集約範囲”Range”＝［ＩＤ０（０），ＩＤ１（０））＝［ＩＤ１，ＩＤ２）を設定し、このRangeの範囲の集約データを設定した応答データを送信する。これにより、（１−４）でリクエストされたように、ＩＤ１の装置は、ＩＤ１の装置の集約データを、ＩＤ２の装置に送信する。
【０１３１】
＜第３フェーズ＞
第３フェーズを説明する。
【０１３２】
第２フェーズで、リクエストデータを受信したＩＤ１２の装置、ＩＤ１０の装置、ＩＤ９の装置、ＩＤ６の装置、ＩＤ５の装置およびＩＤ３の装置は、受信したリクエストデータから、シーケンス設定データ１２を抽出し、自身の記憶装置１０に記憶する。このうち、Degree＞０のリクエストデータを受信したＩＤ１２の装置、ＩＤ１０の装置およびＩＤ６の装置が、それぞれ拡散処理をする。Degree＝０のリクエストデータを受信したＩＤ９の装置、ＩＤ５の装置、およびＩＤ３の装置が、それぞれ新たに応答データを生成して、集約処理をする。また、第２フェーズで応答データを受信したＩＤ２の装置も、集約処理をする。
【０１３３】
ＩＤ６の装置は、（２−２）の処理により、集約割当範囲”Allot”＝［ＩＤ５，ＩＤ６］、転送深度”Degree”＝１、集約送信先アドレス”Nexthop”＝ＩＰ８が設定されたリクエストデータを受信する。ＩＤ６の装置は、０≦ｉ＜Degreeの各ｉについて、降順に図１１のステップＳ１０１ないしステップＳ１０４の処理を繰り返す。これにより、図１３（ａ）および図１６（ａ）に示すように、ＩＤ６の装置は、受信したリクエストデータを、ＩＤ７の装置に送信する。
【０１３４】
ＩＤ１０の装置は、（２−５）の処理により、集約割当範囲”Allot”＝［ＩＤ９，ＩＤ１０］、転送深度”Degree”＝１、集約送信先アドレス”Nexthop”＝ＩＰ１２が設定されたリクエストデータを受信する。ＩＤ１０の装置は、０≦ｉ＜Degreeの各ｉについて、降順に図１１のステップＳ１０１ないしステップＳ１０４の処理を繰り返す。これにより、図１３（ａ）および図１６（ａ）に示すように、ＩＤ１０の装置は、受信したリクエストデータを、ＩＤ１１の装置に送信する。
【０１３５】
ＩＤ１２の装置は、（２−４）の処理により、集約割当範囲”Allot”＝［ＩＤ９，ＩＤ１２］、転送深度”Degree”＝２、集約送信先アドレス”Nexthop”＝ＩＰ０が設定されたリクエストデータを受信する。ＩＤ１２の装置は、０≦ｉ＜Degreeの各ｉについて、降順に図１１のステップＳ１０１ないしステップＳ１０４の処理を繰り返す。これにより、図１３（ａ）および図１６（ａ）に示すように、ＩＤ１２の装置は、受信したリクエストデータを、ＩＤ１３の装置、およびＩＤ１４の装置に送信する。
【０１３６】
一方、ＩＤ３の装置は、（２−１）の処理により、集約割当範囲”Allot”＝［ＩＤ３，ＩＤ３］、転送深度”Degree”＝０、集約送信先アドレス”Nexthop”＝ＩＰ４が設定されたリクエストデータを受信する。ここで、受信したリクエストデータのDegree＝０なので、図１２のステップＳ２０２ないしステップＳ２０４、およびステップＳ２１１の処理により、ＩＤ３の装置は、自装置集約データ１６を含む応答データを生成し、ＩＤ４の装置に送信する。
【０１３７】
ＩＤ５の装置は、（２−３）の処理により、集約割当範囲”Allot”＝［ＩＤ５，ＩＤ５］、転送深度”Degree”＝０、集約送信先アドレス”Nexthop”＝ＩＰ６が設定されたリクエストデータを受信する。ここで、受信したリクエストデータのDegree＝０なので、図１２のステップＳ２０２ないしステップＳ２０４、およびステップＳ２１１の処理により、ＩＤ５の装置は、自装置集約データ１６を含む応答データを生成し、ＩＤ６の装置に送信する。
【０１３８】
ＩＤ９の装置は、（２−６）の処理により、集約割当範囲”Allot”＝［ＩＤ９，ＩＤ９］、転送深度”Degree”＝０、集約送信先アドレス”Nexthop”＝ＩＰ１０が設定されたリクエストデータを受信する。ここで、受信したリクエストデータのDegree＝０なので、図１２のステップＳ２０２ないしステップＳ２０４、およびステップＳ２１１の処理により、ＩＤ９の装置は、自装置集約データ１６を含む応答データを生成し、ＩＤ１０の装置に送信する。
【０１３９】
またＩＤ２の装置は、（２−７）の処理により、ＩＤ１の装置から、ＩＤ１の装置の集約データを含み、集約範囲”Range”＝［ＩＤ１，ＩＤ２）が設定された応答データを受信する。ここでＩＤ２の装置は、（１−３）の処理により、ＩＤ１の装置からＩＤ２の装置の集約データを、ＩＤ４の装置に送信するようリクエストされている。従って、ＩＤ２の装置は、（２−７）の処理で受信したＩＤ１の装置の集約データと、自身の集約データとあわせて、ＩＤ１の装置からＩＤ２の装置の集約データを、ＩＤ４の装置に送信する。
【０１４０】
ここで、第３フェーズで送信されるリクエストデータを詳述する。
【０１４１】
（３−１）ＩＤ６の装置は、（２−２）の処理を受けて、ｉ＝０の処理により、ＩＤ６（０）＝ＩＤ７の装置に、Degree＝０、Allot＝［ＩＤ６（０），ＩＤ６（０）］＝［ＩＤ７，ＩＤ７］、Nexthop＝ＩＰ８を設定したリクエストデータを送信する。これにより、ＩＤ６の装置は、ＩＤ７の装置に、ＩＤ７の装置の集約データを、ＩＤ８の装置に送信するようリクエストする。
【０１４２】
（３−２）ＩＤ１０の装置は、（２−５）の処理を受けて、ｉ＝０の処理により、ＩＤ１０（０）＝ＩＤ１１の装置に、Degree＝０、Allot＝［ＩＤ１０（０），ＩＤ１０（０）］＝［ＩＤ１１，ＩＤ１１］、Nexthop＝ＩＰ１２を設定したリクエストデータを送信する。これにより、ＩＤ１０の装置は、ＩＤ１１の装置に、ＩＤ１１の装置の集約データを、ＩＤ１２の装置に送信するようリクエストする。
【０１４３】
（３−３）ＩＤ１２の装置は、（２−４）の処理を受けて、ｉ＝１の処理により、ＩＤ１２（１）＝ＩＤ１４の装置に、Degree＝１、Allot＝［ＩＤ１２（０），ＩＤ１２（１）］＝［ＩＤ１３，ＩＤ１４］、Nexthop＝ＩＰ０を設定したリクエストデータを送信する。これにより、ＩＤ１２の装置は、ＩＤ１４の装置に、ＩＤ１３の装置からＩＤ１４の装置の集約データを、ＩＤ０の装置に送信するよう、リクエストする。
【０１４４】
（３−４）ＩＤ１２の装置は、（２−４）の処理を受けて、ｉ＝０の処理により、ＩＤ１２（０）＝ＩＤ１３の装置に、Degree＝０、Allot＝［ＩＤ１２（０），ＩＤ１２（０）］＝［ＩＤ１３，ＩＤ１３］、Nexthop＝ＩＰ１２（０＋１）＝ＩＰ１４を設定したリクエストデータを送信する。これにより、ＩＤ１２の装置は、ＩＤ１３の装置に、ＩＤ１３の装置の集約データを、ＩＤ１４の装置に送信するようリクエストする。
【０１４５】
ここで、第３フェーズで送信される応答データを詳述する。
【０１４６】
（３−５）ＩＤ２の装置は、（２−７）の処理により、ＩＤ１の装置の集約データを含む応答データを受信する。ここでＩＤ２の装置は、（１−３）の処理により、ＩＤ１の装置からＩＤ２の装置の集約データを、ＩＤ４の装置に送信するようリクエストされている。従って、ＩＤ２の装置は、（２−７）で受信したＩＤ１の装置の集約データと、自身の集約データとあわせて、ＩＤ１の装置からＩＤ２の装置の集約データを、ＩＤ４の装置に送信する。
【０１４７】
（３−６）ＩＤ３の装置は、（２−１）において、Nexthop＝ＩＰ４を設定したリクエストデータを受信する。そこでＩＤ３の装置は、（２−１）の処理を受けて、Nexthop＝ＩＰ４の装置に、集約範囲”Range”＝［ＩＤ２（０），ＩＤ３（０））＝［ＩＤ３，ＩＤ４）を設定し、このRangeの範囲の集約データを設定した応答データを送信する。これにより、（２−１）でリクエストされたように、ＩＤ３の装置は、ＩＤ３の装置の集約データを、ＩＤ４の装置に送信する。
【０１４８】
（３−７）ＩＤ５の装置は、（２−３）において、Nexthop＝ＩＰ６を設定したリクエストデータを受信する。そこでＩＤ５の装置は、（２−３）の処理を受けて、Nexthop＝ＩＰ６の装置に、集約範囲”Range”＝［ＩＤ４（０），ＩＤ５（０））＝［ＩＤ５，ＩＤ６）を設定し、このRangeの範囲の集約データを設定した応答データを送信する。これにより、（２−３）でリクエストされたように、ＩＤ５の装置は、ＩＤ５の装置の集約データを、ＩＤ６の装置に送信する。
【０１４９】
（３−８）ＩＤ９の装置は、（２−６）において、Nexthop＝ＩＰ１０を設定したリクエストデータを受信する。そこでＩＤ９の装置は、（２−６）の処理を受けて、Nexthop＝ＩＰ１０の装置に、集約範囲”Range”＝［ＩＤ８（０），ＩＤ９（０））＝［ＩＤ９，ＩＤ１０）を設定し、このRangeの範囲の集約データを設定した応答データを送信する。これにより、（２−６）でリクエストされたように、ＩＤ９の装置は、ＩＤ９の装置の集約データを、ＩＤ１０の装置に送信する。
【０１５０】
＜第４フェーズ＞
第４フェーズを説明する。
【０１５１】
第３フェーズで、リクエストデータを受信したＩＤ１４の装置、ＩＤ１３の装置、ＩＤ１１の装置およびＩＤ７の装置は、受信したリクエストデータから、シーケンス設定データ１２を抽出し、自身の記憶装置１０に記憶する。このうち、Degree＞０のリクエストデータを受信したＩＤ１４の装置が、拡散処理をする。Degree＝０のリクエストデータを受信したＩＤ１３の装置、ＩＤ１１の装置、およびＩＤ７の装置が、それぞれ新たに応答データを生成して、集約処理をする。また、第３フェーズで応答データを受信したＩＤ４の装置、ＩＤ６の装置およびＩＤ１０の装置も、集約処理をする。
【０１５２】
ＩＤ１４の装置は、（３−３）の処理により、集約割当範囲”Allot”＝［ＩＤ１３，ＩＤ１４］、転送深度”Degree”＝１、集約送信先アドレス”Nexthop”＝ＩＰ０が設定されたリクエストデータを受信する。ＩＤ１４の装置は、０≦ｉ＜Degreeの各ｉについて、降順に図１１のステップＳ１０１ないしステップＳ１０４の処理を繰り返す。これにより、図１３（ａ）および図１７（ａ）に示すように、ＩＤ１４の装置は、受信したリクエストデータを、ＩＤ１５の装置に送信する。
【０１５３】
一方、ＩＤ７の装置は、（３−１）の処理により、集約割当範囲”Allot”＝［ＩＤ７，ＩＤ７］、転送深度”Degree”＝０、集約送信先アドレス”Nexthop”＝ＩＰ８が設定されたリクエストデータを受信する。ここで、受信したリクエストデータのDegree＝０なので、図１２のステップＳ２０２ないしステップＳ２０４、およびステップＳ２１１の処理により、ＩＤ７の装置は、自装置集約データ１６を含む応答データを生成し、ＩＤ８の装置に送信する。
【０１５４】
ＩＤ１１の装置は、（３−２）の処理により、集約割当範囲”Allot”＝［ＩＤ１１，ＩＤ１１］、転送深度”Degree”＝０、集約送信先アドレス”Nexthop”＝ＩＰ１２が設定されたリクエストデータを受信する。ここで、受信したリクエストデータのDegree＝０なので、図１２のステップＳ２０２ないしステップＳ２０４、およびステップＳ２１１の処理により、ＩＤ１１の装置は、自装置集約データ１６を含む応答データを生成し、ＩＤ１２の装置に送信する。
【０１５５】
ＩＤ１３の装置は、（３−４）の処理により、集約割当範囲”Allot”＝［ＩＤ１３，ＩＤ１３］、転送深度”Degree”＝０、集約送信先アドレス”Nexthop”＝ＩＰ１４が設定されたリクエストデータを受信する。ここで、受信したリクエストデータのDegree＝０なので、図１２のステップＳ２０２ないしステップＳ２０４、およびステップＳ２１１の処理により、ＩＤ１３の装置は、自装置集約データ１６を含む応答データを生成し、ＩＤ１４の装置に送信する。
【０１５６】
またＩＤ４の装置は、（３−５）の処理により、集約範囲”Range”＝［ＩＤ１，ＩＤ３）が設定された応答データを受信するとともに、（３−６）の処理により、集約範囲”Range”＝［ＩＤ３，ＩＤ４）が設定された応答データを受信する。ここでＩＤ４の装置は、（１−２）の処理により、ＩＤ１の装置からＩＤ４の装置の集約データを、ＩＤ８の装置に送信するようリクエストされている。従って、図１２のステップＳ２０５からステップＳ２１１の処理により、ＩＤ４の装置は、（３−５）および（３−６）で受信したＩＤ１の装置からＩＤ３の装置の集約データと、自身の集約データとあわせて、ＩＤ１の装置からＩＤ４の装置の集約データを、ＩＤ８の装置に送信する。
【０１５７】
ＩＤ６の装置は、（３−７）の処理により、集約範囲”Range”＝［ＩＤ５，ＩＤ６）が設定された応答データを受信する。ここでＩＤ６の装置は、（２−２）の処理により、ＩＤ５の装置からＩＤ６の装置の集約データを、ＩＤ８の装置に送信するようリクエストされている。従って、図１２のステップＳ２０５からステップＳ２１１の処理により、ＩＤ６の装置は、（３−７）で受信したＩＤ５の装置の集約データと、自身の集約データとあわせて、ＩＤ５の装置からＩＤ６の装置の集約データを、ＩＤ８の装置に送信する。
【０１５８】
ＩＤ１０の装置は、（３−８）の処理により、集約範囲”Range”＝［ＩＤ９，ＩＤ１０）が設定された応答データを受信する。ここでＩＤ１０の装置は、（２−５）の処理により、ＩＤ９の装置からＩＤ１０の装置の集約データを、ＩＤ１２の装置に送信するようリクエストされている。従って、図１２のステップＳ２０５からステップＳ２１１の処理により、ＩＤ１０の装置は、（３−８）で受信したＩＤ９の装置の集約データと、自身の集約データとあわせて、ＩＤ９の装置からＩＤ１０の装置の集約データを、ＩＤ１２の装置に送信する。
【０１５９】
ここで、第４フェーズで送信されるリクエストデータを詳述する。
【０１６０】
（４−１）ＩＤ１４の装置は、（３−３）の処理を受けて、ｉ＝０の処理により、ＩＤ１４（０）＝ＩＤ１５の装置に、Degree＝０、Allot＝［ＩＤ１４（０），ＩＤ１４（０）］＝［ＩＤ１５，ＩＤ１５］、Nexthop＝ＩＰ0を設定したリクエストデータを送信する。これにより、ＩＤ１４の装置は、ＩＤ１５の装置に、ＩＤ１５の装置の集約データを、ＩＤ０の装置に送信するようリクエストする。
【０１６１】
ここで、第４フェーズで送信される応答データを詳述する。
【０１６２】
（４−２）ＩＤ４の装置は、（３−５）の処理により、ＩＤ１の装置からＩＤ２の装置の集約データを含む応答データを受信するとともに、（３−６）の処理により、ＩＤ３の装置の集約データを含む応答データを受信する。ここでＩＤ４の装置は、（１−２）の処理により、ＩＤ１の装置からＩＤ４の装置の集約データを、ＩＤ８の装置に送信するようリクエストされている。従って、ＩＤ４の装置は、（３−５）および（３−６）で受信したＩＤ１の装置からＩＤ３の装置の集約データと、自身の集約データとあわせて、ＩＤ１の装置からＩＤ４の装置の集約データを、ＩＤ８の装置に送信する。
【０１６３】
（４−３）ＩＤ６の装置は、（３−７）の処理により、ＩＤ５の装置の集約データを含む応答データを受信する。ここでＩＤ６の装置は、（２−２）の処理により、ＩＤ５の装置からＩＤ６の装置の集約データを、ＩＤ８の装置に送信するようリクエストされている。従って、ＩＤ６の装置は、（３−７）で受信したＩＤ５の装置の集約データと、自身の集約データとあわせて、ＩＤ５の装置からＩＤ６の装置の集約データを、ＩＤ８の装置に送信する。
【０１６４】
（４−４）ＩＤ７の装置は、（３−１）において、Nexthop＝ＩＰ８を設定したリクエストデータを受信する。そこでＩＤ７の装置は、（３−１）の処理を受けて、Nexthop＝ＩＰ８の装置に、集約範囲”Range”＝［ＩＤ６（０），ＩＤ７（０））＝［ＩＤ７，ＩＤ８）を設定し、このRangeの範囲の集約データを設定した応答データを送信する。これにより、（３−１）でリクエストされたように、ＩＤ７の装置は、ＩＤ７の装置の集約データを、ＩＤ８の装置に送信する。
【０１６５】
（４−５）ＩＤ１０の装置は、（３−８）の処理により、ＩＤ９の装置の集約データを含む応答データを受信する。ここでＩＤ１０の装置は、（２−５）の処理により、ＩＤ９の装置からＩＤ１０の装置の集約データを、ＩＤ１２の装置に送信するようリクエストされている。従って、ＩＤ１０の装置は、（３−８）で受信したＩＤ９の装置の集約データと、自身の集約データとあわせて、ＩＤ９の装置からＩＤ１０の装置の集約データを、ＩＤ１２の装置に送信する。
【０１６６】
（４−６）ＩＤ１１の装置は、（３−２）において、Nexthop＝ＩＰ１２を設定したリクエストデータを受信する。そこでＩＤ１１の装置は、（３−２）の処理を受けて、Nexthop＝ＩＰ１２の装置に、集約範囲”Range”＝［ＩＤ１０（０），ＩＤ１１（０））＝［ＩＤ１１，ＩＤ１２）を設定し、このRangeの範囲の集約データを設定した応答データを送信する。これにより、（３−２）でリクエストされたように、ＩＤ１１の装置は、ＩＤ１１の装置の集約データを、ＩＤ１２の装置に送信する。
【０１６７】
（４−７）ＩＤ１３の装置は、（３−４）において、Nexthop＝ＩＰ１４を設定したリクエストデータを受信する。そこでＩＤ１３の装置は、（３−４）の処理を受けて、Nexthop＝ＩＰ１４の装置に、集約範囲”Range”＝［ＩＤ１２（０），ＩＤ１３（０））＝［ＩＤ１３，ＩＤ１４）を設定し、このRangeの範囲の集約データを設定した応答データを送信する。これにより、（３−４）でリクエストされたように、ＩＤ１３の装置は、ＩＤ１３の装置の集約データを、ＩＤ１４の装置に送信する。
【０１６８】
＜第５フェーズ＞
第５フェーズを説明する。
【０１６９】
第４フェーズで、リクエストデータを受信したＩＤ１５の装置は、受信したリクエストデータから、シーケンス設定データ１２を抽出し、自身の記憶装置１０に記憶する。Degree＝０のリクエストデータを受信したＩＤ１５の装置は、新たに応答データを生成して、集約処理をする。また、第４フェーズで応答データを受信したＩＤ８の装置、ＩＤ１２の装置およびＩＤ１４の装置も、集約処理をする。
【０１７０】
ＩＤ１５の装置は、（４−１）の処理により、集約割当範囲”Allot”＝［ＩＤ１５，ＩＤ１５］、転送深度”Degree”＝０、集約送信先アドレス”Nexthop”＝ＩＰ０が設定されたリクエストデータを受信する。ここで、受信したリクエストデータのDegree＝０なので、図１２のステップＳ２０２ないしステップＳ２０４、およびステップＳ２１１の処理により、ＩＤ１５の装置は、自装置集約データ１６を含む応答データを生成し、ＩＤ０の装置に送信する。
【０１７１】
またＩＤ８の装置は、（４−２）の処理により、集約範囲”Range”＝［ＩＤ１，ＩＤ５）が設定された応答データを受信するとともに、（４−３）の処理により、集約範囲”Range”＝［ＩＤ５，ＩＤ７）が設定された応答データを受信し、（４−４）の処理により、集約範囲”Range”＝［ＩＤ７，ＩＤ８）が設定された応答データを受信する。ここでＩＤ８の装置は、（１−１）の処理により、ＩＤ１の装置からＩＤ８の装置の集約データを、ＩＤ０の装置に送信するようリクエストされている。従って、図１２のステップＳ２０５からステップＳ２１１の処理により、ＩＤ８の装置は、（４−２）、（４−３）および（４−４）で受信したＩＤ１の装置からＩＤ７の装置の集約データと、自身の集約データとあわせて、ＩＤ１の装置からＩＤ８の装置の集約データを、ＩＤ０の装置に送信する。
【０１７２】
ＩＤ１２の装置は、（４−５）の処理により、集約範囲”Range”＝［ＩＤ９，ＩＤ１１）が設定された応答データを受信するとともに、（４−６）の処理により、集約範囲”Range”＝［ＩＤ１１，ＩＤ１２）が設定された応答データを受信する。ここでＩＤ１２の装置は、（２−４）の処理により、ＩＤ９の装置からＩＤ１２の装置の集約データを、ＩＤ０の装置に送信するようリクエストされている。従って、図１２のステップＳ２０５からステップＳ２１１の処理により、ＩＤ１２の装置は、（４−５）および（４−６）で受信したＩＤ９の装置からＩＤ１１の装置の集約データと、自身の集約データとあわせて、ＩＤ９の装置からＩＤ１２の装置の集約データを、ＩＤ０の装置に送信する。
【０１７３】
ＩＤ１４の装置は、（４−７）の処理により、集約範囲”Range”＝［ＩＤ１３，ＩＤ１４）が設定された応答データを受信する。ここでＩＤ１４の装置は、（３−３）の処理により、ＩＤ１３の装置からＩＤ１４の装置の集約データを、ＩＤ０の装置に送信するようリクエストされている。従って、図１２のステップＳ２０５からステップＳ２１１の処理により、ＩＤ１４の装置は、（４−７）で受信したＩＤ１３の装置の集約データと、自身の集約データとあわせて、ＩＤ１３の装置からＩＤ１４の装置の集約データを、ＩＤ０の装置に送信する。
【０１７４】
ここで、第５フェーズで送信される応答データを詳述する。
【０１７５】
（５−１）ＩＤ８の装置は、（４−２）、（４−３）および（４−４）の処理により、ＩＤ１の装置からＩＤ７の装置の集約データを含む応答データを受信する。ここでＩＤ８の装置は、（１−１）の処理により、ＩＤ１の装置からＩＤ８の装置の集約データを、ＩＤ０の装置に送信するようリクエストされている。従って、ＩＤ８の装置は、（４−２）、（４−３）および（４−４）で受信したＩＤ１の装置からＩＤ７の装置の集約データと、自身の集約データとあわせて、ＩＤ1の装置からＩＤ８の装置の集約データを、ＩＤ０の装置に送信する。
【０１７６】
（５−２）ＩＤ１２の装置は、（４−５）および（４−６）の処理により、ＩＤ９の装置からＩＤ１１の装置の集約データを含む応答データを受信する。ここでＩＤ１２の装置は、（２−４）の処理により、ＩＤ９の装置からＩＤ１２の装置の集約データを、ＩＤ０の装置に送信するようリクエストされている。従って、ＩＤ１２の装置は、（４−５）および（４−６）で受信したＩＤ９の装置からＩＤ１１の装置の集約データと、自身の集約データとあわせて、ＩＤ９の装置からＩＤ１２の装置の集約データを、ＩＤ０の装置に送信する。
【０１７７】
（５−３）ＩＤ１４の装置は、（４−７）の処理により、ＩＤ１３の装置の集約データを含む応答データを受信する。ここでＩＤ１４の装置は、（３−３）の処理により、ＩＤ１３の装置からＩＤ１４の装置の集約データを、ＩＤ０の装置に送信するようリクエストされている。従って、ＩＤ１３の装置は、（４−７）で受信したＩＤ１３の装置の集約データと、自身の集約データとあわせて、ＩＤ１３の装置からＩＤ１４の装置の集約データを、ＩＤ０の装置に送信する。
【０１７８】
（５−４）ＩＤ１５の装置は、（４−１）において、Nexthop＝ＩＰ０を設定したリクエストデータを受信する。そこでＩＤ１５の装置は、（４−１）の処理を受けて、Nexthop＝ＩＰ０の装置に、集約範囲”Range”＝［ＩＤ１４（０），ＩＤ１５（０））＝［ＩＤ１５，ＩＤ０）を設定し、このRangeの範囲の集約データを設定した応答データを送信する。これにより、（４−１）でリクエストされたように、ＩＤ１５の装置は、ＩＤ１５の装置の集約データを、ＩＤ０の装置に送信する。
【０１７９】
このように、ＩＤ０の装置は、第１のフェーズから第５のフェーズの処理により、ＩＤ１の装置からＩＤ１５の装置にリクエストデータを行き渡らせ、これらの装置の集約データを取得する。ここで、ＩＤ０の装置は、代表装置であるので、図１２のステップＳ２０５ないしステップＳ２１０およびステップＳ２１２の処理により、ＩＤ０の装置は、（５−１）、（５−２）、（５−３）および（５−４）で受信したＩＤ１の装置からＩＤ１５の装置の集約データと、自身の集約データとあわせて、ＩＤ０の装置からＩＤ１５の装置の集約データを、サーバ２に送信する。ここで、ＩＤ０の装置がサーバ２から受信したリクエストデータに、収集先アドレス”Collect”が設定されている場合、ＩＤ０の装置は、収集先アドレス”Collect”で指定されたアドレスに、ＩＤ０の装置からＩＤ１５の装置の集約データを送信する。
【０１８０】
（装置の加入および離脱）
上記においては、グループ内において、装置１に連続したＩＤが付与され、すべての装置が正常に通信した場合について説明したが、通信途中に電源断などにより、装置１が離脱した場合を説明する。
【０１８１】
例えば、集約中に装置１が離脱した場合、以下のように動作する。ある装置１が応答データの送信に失敗した場合、送信先の装置が離脱したと判断、それまでに集約した集約データをサーバ２に送信する。このとき装置１は、サーバ２に、離脱したと判断された送信先の情報を通知する。
【０１８２】
ここで、ある装置１が、集約割当範囲の集約データが揃った後、集約データの送信前に離脱した場合、通信システム３はこの装置１の離脱を検知することができない。これに対し各装置１はリクエストデータを受信すると、応答データを送信するまでの間、タイムアウトを設定する。各装置１は、タイムアウトすると、集約割当範囲の集約データが揃っているか否かを問わず、それまでの集約データをサーバ２に送信する。同様にサーバ２は、リクエストデータを代表装置に送信してから、ある一定時間、応答データの受信を待機する。当該時間経過後、サーバ２は、受信できていない範囲を判断するとともに、欠損している範囲をAllotに当該範囲を設定して、新たなリクエストデータを送信する。
【０１８３】
新たな装置がネットワークに接続され、新たにグループに加入する際、サーバ２は、この装置に装置ＩＤを付与するとともに、この装置の経路表データを生成し、この新たな装置に送信する。例えば、新たな装置が、サーバ２へ接続した旨を通知すると、サーバ２は新たな装置の装置ＩＤを決定し、当該装置ＩＤに対応する経路表データを構築して、この新たな装置に送信する。
【０１８４】
また、サーバ２は、離脱した装置１の情報や、グループに新たに加入する装置１の情報を取得すると、その次に送信するリクエストデータにおいて、各装置１に加入および離脱の装置１の情報を更新するよう経路更新情報を設定する。具体的にはサーバ２の装置リスト制御手段２２１は、離脱した装置の情報や加入する装置の情報を、更新データ２１２に記憶するとともに、装置リストデータ２１１を更新する。さらに、経路表出力手段２２２は、更新データ２１２を考慮して、リクエストデータの経路更新情報”Updates”に、データを設定して、グループに属する装置１に、装置１の加入及び離脱を周知する。
【０１８５】
新たに装置が加入した場合、”Updates”フィールドは、新規加入装置のＩＤ、新規加入装置のＩＰアドレスおよび新規加入装置のＩＤから順方向に存在する最初の隣接装置のＩＤを設定する。また装置が離脱した場合、”Updates”フィールドは、離脱装置のＩＤ、離脱装置のＩＤから順方向に存在する最初の隣接装置のＩＤおよびＩＰアドレスを設定する。
【０１８６】
各装置は、リクエストデータを受信すると、”Updates”フィールドを参照して、経路表データを更新する必要があるか否かを判定する。
【０１８７】
新たに装置が加入した場合、隣接装置に関連するレコードを経路表データ１１が有し、かつ隣接装置の経路表データにおけるEntry番号について新規加入装置のＩＤがリクエスト受信装置のＩＤから２Entryの距離以上離れている場合、当該Entryの経路表データ１１のレコードについて、新規加入装置の情報に置き換える。一方、この条件を満たさない場合、経路表データ１１は更新されない。
【０１８８】
一方装置が離脱した場合、離脱装置に関するレコードを経路表データ１１が有している場合、隣接装置の情報で、当該レコードを置き換える。これは、実施の形態に係る通信方法が、ＩＤ空間のサイズより装置数が少ない場合でも同様のツリー状を構成するため、ＩＤ空間以下の任意の数の装置に対応することに基づく。
【０１８９】
例えば、ＩＤ４の装置が存在しない場合を考える。図１９に示す例では、図１３に示す例と比べて、ＩＤ４の装置の欠番により、ＩＤ０の装置は、ＩＤ４の装置に送信するべきところ、ＩＤ５の装置に送信するので、ツリー状に変更はない。これは、各装置の経路表データにおいて、各エントリに一致するＩＤを持つ装置が存在しない場合、時計回りに最も近い装置を保持することから成り立つ。このとき、ＩＤ８の装置は、ＩＤ０の装置およびＩＤ７の装置から、重複してリクエストを受信する。しかしながら、図１０のステップＳ２で示したように、同一シーケンス番号のリクエストデータは、単純に破棄される。各装置は、経路表データを降順に検索してリクエストを転送するので、重複と判断されるべきリクエストが先に到着することはない。
【０１９０】
また、ＩＤ１の装置が存在しない場合、ＩＤ０の経路表データのEntry＝０およびEntry＝１はともにＩＤ２の装置を示す。従って、Entry＝０の示す装置は、Entry＝０＋１の示す装置と同じであるため、Entry=0における処理はスキップされる。
【０１９１】
本発明の実施の形態に係る通信方法は、サーバ２からリクエストデータを受信した代表装置がリクエストデータを拡散させつつ、非対称の経路でデータを集約することができる。これにより、図１３に示すように、第２フェーズないし第４フェーズにおいて、リクエストデータの拡散とデータの集約の同時並列実行数を増やすことができる。これに対し、図２３に示すように、拡散処理を逆に辿ってデータを集約する場合と比べて、ｍ−１回実行フェーズ数を削減し、処理時間を短縮することができる。
【０１９２】
このように、本発明の実施の形態に係る通信システム３は、例えばゲートウェイ装置などの装置を利用して、各装置が機器情報を集約し、かつ装置同士がＰ２Ｐネットワークを構築してデータを集約する。これにより、サーバ２のデータの収集の効率化およびサーバ２の収集負荷の低減を実現する。
【０１９３】
（変形例）
本発明の変形例において、本発明の実施の形態に係る通信方法と比べて、さらに処理効率を向上させる通信方法を説明する。本発明の変形例に係る通信方法のデータの流れを図２０に示す。図２０に示すデータの流れは、図１３を参照して説明した本発明の実施の形態に係る通信方法と比べて、（ｂ）の集約の処理において、代表装置ＩＤ０からリクエストデータを受信した装置ＩＤ１、２、４および８の各装置の振る舞いが異なる。代表装置（ＩＤ０の装置）からリクエストデータを受信した装置ＩＤ１、２、４および８の各装置は、集約データを直接代表装置に送信する。
【０１９４】
第２フェーズについて、図１３に示す例において、ＩＤ１の装置はＩＤ２の装置に応答データを送信する。これに対し、図２０に示す例において、ＩＤ１の装置は、ＩＤ１の装置の集約データを含む応答データを、代表装置に送信する。
【０１９５】
第３フェーズについて、図１３に示す例において、ＩＤ２の装置は、ＩＤ１の装置からの応答データの受信後、ＩＤ１の装置からＩＤ２の装置の集約データを含む応答データを、ＩＤ４の装置に送信する。これに対し図２０に示す例において、ＩＤ２の装置は、ＩＤ１の装置の集約データを待つことなく、ＩＤ２の装置の集約データを含む応答データを、代表装置に送信する。
【０１９６】
第４フェーズについて図１３に示す例において、ＩＤ４の装置は、ＩＤ２の装置およびＩＤ３の装置からの応答データの受信後、ＩＤ１の装置からＩＤ４の装置の集約データを含む応答データを、ＩＤ８の装置に送信していた。図２０に示す例において、ＩＤ４の装置は、ＩＤ２の装置の応答データの受信を待つことなく、ＩＤ３の装置からＩＤ４の装置の集約データを含む応答データを、代表装置に送信する。
【０１９７】
第５フェーズについて図１３に示す例において、ＩＤ８の装置は、ＩＤ４の装置、ＩＤ６の装置およびＩＤ７の装置からの応答データの受信後、ＩＤ１の装置からＩＤ８の装置の集約データを含む応答データを、ＩＤ０の装置に送信していた。図２０に示す例において、ＩＤ８の装置は、ＩＤ４の装置の応答データの受信を待つことなく、ＩＤ５の装置からＩＤ８の装置の集約データを含む応答データを、代表装置に送信する。
【０１９８】
このような変形例に係る通信方法おいて、各装置のAllotの範囲が、代表装置を除いて小さくなるので、各集約データのサイズは、本発明の実施の形態に係る通信方法と比べて小さくなる。これにより、通信システム全体として、総送出データ量を削減し、処理負荷を低減することができる。
【０１９９】
このような通信方法を実現するために、本発明の実施の形態と比べて、代表装置は、リクエストデータの拡散において、受信したリクエストデータの各項目の集約送信先アドレス（Nexthop）および集約割当範囲（Allot）の各項目の設定方法が異なる。代表装置の拡散手段２３は、受信したリクエストデータの集約送信先アドレス（Nexthop）を、当該代表装置のＩＰアドレスに設定する。代表装置の拡散手段２３は、受信したリクエストデータの集約割当範囲（Allot）を、経路表データ１１において当該エントリ識別子−１の装置の識別子（ID(i-1)）から当該エントリ識別子に対応する装置（ID(i)）の識別子の範囲に設定する。代表装置の拡散手段２３は、受信したリクエストデータの転送範囲（Degree）を、当該エントリ識別子（ｉ）に設定する。
【０２００】
図２１を参照して、変形例に係る拡散処理を説明する。変形例に係る拡散手段２３は、経路表データ１１に基づいて、ｉ＝Degree−１から、０までの各ｉについて、ステップＳ３０１ないしステップＳ３０８の処理を繰り返す。
【０２０１】
まず、ステップＳ３０１において拡散手段２３は、当該エントリ識別子に対応する装置のＩＤｎ（ｉ）が、集約割当範囲”Allot”の範囲内であるか否かを判断する。ＩＤｎ（ｉ）が、集約割当範囲”Allot”の範囲外である場合、当該エントリ識別子ｉに関する処理を終了し、次のｉ−１について処理する。ＩＤｎ（ｉ）が、集約割当範囲”Allot”の範囲内の場合、ステップＳ３０２に進む。
【０２０２】
ステップＳ３０２において拡散手段２３は、自装置が代表装置であるか否かを判定する。代表装置でない場合、ステップＳ３０３、ステップＳ３０４およびステップＳ３０７の処理によって変更後のリクエストデータを生成し、ステップＳ３０８において、変更後のリクエストデータを、他装置に送信する。この処理は、図１１のステップＳ１０２ないしステップＳ１０５の処理に対応する。
【０２０３】
一方、自装置が代表装置である場合、ステップＳ３０５ないしステップＳ３０７の処理によって変更後のリクエストデータを生成し、ステップＳ３０８において、変更後のリクエストデータを、他装置に送信する。
【０２０４】
これにより、代表装置からリクエストを受信した装置は、ステップＳ３０５で特定される装置の集約データのみを集約し、ステップＳ３０６で特定される代表装置のＩＰアドレスに、その集約データを送信することができる。
【０２０５】
（検証）
本発明の実施の形態に係る通信方法の効果を検証する。
【０２０６】
収集に要するトータル時間Ｔｇ’を以下の項目の和で表す。このとき、Ｓを１台の装置あたりのデータ量、２ｍを１グループ内の装置数、ｃを装置の内部処理時間、ｄを装置間の転送遅延、Ｂを装置間および装置とサーバ間の使用帯域とする。トータル時間Ｔｇ’を図２０のメッセージフローにおいて、実線で囲った範囲に要する時間として算出する。なお、枠外は並列の処理されるため、枠内の収集時間時間を左右しない。
【０２０７】
（１）逐次行うデータ送信の総量の帯域Bにおける送出時間
図２０（ｂ）の枠内の丸付き数字は、装置あたりのデータ量を示すとする。実線で囲った範囲のメッセージで送信されるデータ総量、具体的には図２０（ｂ）における丸数字の合計を求める。丸数字の合計は以下の式で、Ｎｇ’で表す。実際のデータ量にするためにＳを乗算し、ビットに直すために８を乗算する。これを帯域で除算して総送出時間とする。
【０２０８】
（２）逐次で行うデータ送信遅延の合計
送信回数の合計、具体的には図２０の実線で囲った範囲の矢印の数を、Ｎｒで表し、これに各装置間の転送遅延ｄを乗算する。これを総送信遅延とする。
【０２０９】
（３）データ送信に伴う装置内部処理時間の合計
Ｎｇ’に対して内部処理時間ｃを乗算し、これを総内部処理時間とする。
【０２１０】
（４）装置（同一グループ内）の集約データのサーバへの送信時間
以上の前提に基づくと、Ｔｇ’は以下のように算出される。
【０２１１】
Ｔｇ’＝Ｎｇ’＊８＊Ｓ／Ｂ＋Ｎｒ＊ｄ＋Ｎｇ’＊ｃ＋Ｓ＊２ｍ＊８／Ｂ＋ｄ＋ｃ
このとき、Ｎｇ＝２ｍ−１，Ｎｒ＝ｍ＊（ｍ＋１）／２とする。
【０２１２】
本発明の実施の形態における収集時間Ｔｇと、変形例における収集時間Ｔｇ’との比較結果を図２２に示す。ここで、横軸をｍの値、縦軸を収集時間とする。またパラメータをそれぞれ、Ｓを１ＫＢ、ｍを１０、ｃを１００ミリ秒、ｄを１秒、Ｂを１２８ｋｂｐｓとする。グループサイズ（ｍ）が大きくなるにつれ、変形例における効果が顕著になる。より多くの装置を対象にする場合、変形例に係る通信方法が、より有効である。なお、ｍ＝１０の場合、3分弱ほどの短縮効果が期待できる。
【０２１３】
（その他の実施の形態）
上記のように、本発明の実施の形態および変形例によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【０２１４】
例えば本発明の実施の形態において、サーバが複数の装置にリクエストデータを拡散し、各装置のデータを集約する場合を説明したが、これに限られない。サーバのリクエストデータの拡散ロジックを、サーバから複数の端末へのデータの送信に転用しても良い。
【０２１５】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【０２１６】
１  装置
２  サーバ
３  通信システム
１０、２１０  記憶装置
１１、２１３  経路表データ
１２  シーケンス設定データ
１３  集約送信先アドレス
１４  収集先アドレス
１５  集約割当範囲データ
１６  自装置集約データ
２０、２２０  中央処理制御装置
２１  制御手段
２２  経路表制御手段
２３  拡散手段
２４  集約手段
２５  データ取得手段
３０、２３０  通信制御装置
２１１  装置リストデータ
２１２  更新データ
２２１  装置リスト制御手段
２２２  経路表出力手段
２２３  リクエスト送信手段
２２４  データ受信手段
【図１】
2014160901.tif 000003
【図２】
2014160901.tif 000004
【図３】
2014160901.tif 000005
【図４】
2014160901.tif 000006
【図５】
2014160901.tif 000007
【図６】
2014160901.tif 000008
【図７】
2014160901.tif 000009
【図８】
2014160901.tif 000010
【図９】
2014160901.tif 000011
【図１０】
2014160901.tif 000012
【図１１】
2014160901.tif 000013
【図１２】
2014160901.tif 000014
【図１３】
2014160901.tif 000015
【図１４】
2014160901.tif 000016
【図１５】
2014160901.tif 000017
【図１６】
2014160901.tif 000018
【図１７】
2014160901.tif 000019
【図１８】
2014160901.tif 000020
【図１９】
2014160901.tif 000021
【図２０】
2014160901.tif 000022
【図２１】
2014160901.tif 000023
【図２２】
2014160901.tif 000024
【図２３】
2014160901.tif 000025