(57)【要約】【課題】  複数のノードからデータ収集する際に、短時間でデータ収集する。【解決手段】  本発明は、複数のノードを備え、最上位のノードの配下に下位のノードが複数段分岐して接続されているネットワークシステムに関する。そして、各下位のノードは、最上位のノードへ送信する送信データを保持する手段と、保持している送信データを最上位のノードへ向けて送出する手段と、自ノードから最上位のノードまでのデータ伝送品質に係る評価値を算出する手段と、自ノードにおいて下位に接続可能なノード数を算出する手段と、算出した評価値と接続可能なノード数に係る情報とを他ノードに通知する手段と、他ノードから通知された情報を有するノード情報テーブルを作成して保持する手段とを有することを特徴とする。【選択図】      図１
2010045720.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードを備え、最上位のノードの配下に下位のノードが複数段分岐して接続されているネットワークシステムにおいて、
上記各下位のノードは、
上記最上位のノードへ送信する送信データを保持している送信データ保持手段と、
上記送信データ保持手段が保持している送信データを、上記最上位のノードへ向けて送出する情報送信手段と
自ノードから上記最上位のノードまでのデータ伝送品質に係る評価値を算出する評価値算出手段と、
自ノードにおいて、直接下位に接続可能なノード数を算出する接続可能ノード数算出手段と、
少なくとも上記評価値算出手段が算出した情報と、上記接続可能ノード数算出手段が算出した情報とを、他ノードに通知する情報通知手段と、
他ノードから通知された情報を有するノード情報テーブルを作成して保持するテーブル保持手段と
を有することを特徴とするネットワークシステム。
【請求項２】
上記各下位のノードは、
自ノードが上記ネットワークシステムに参加しようとする場合には、いずれかの他ノードが保持しているノード情報テーブルを取得し、取得したノード情報テーブルの内容に基づいて、自ノードの接続先として１又は複数の他ノードを決定する接続ノード判定手段と、
上記接続ノード判定手段により決定した接続先の他ノードと接続する接続手段とを有する
ことを特徴とする請求項１に記載のネットワークシステム。
【請求項３】
上記接続ノード判定手段は、自ノードの接続先として複数の他ノードを決定する際、それぞれの接続先の他ノードを経由して上記最上位のノードへアクセスする場合の経路の重なりが、より少ない組合わせを決定することを特徴とする請求項２に記載のネットワークシステム。
【請求項４】
上記各下位のノードは、
自ノードが上記ネットワークシステムから離脱しようとする場合には、自ノードが離脱する旨を他ノードに通知する離脱通知手段と、
接続している他ノードとの接続を切断する接続切断手段と、
他ノードから離脱する旨の通知があった場合には、上記テーブル保持手段が保持しているノード情報テーブルから、その通知に係る他ノードの情報を消去する情報消去手段と
を有することを特徴とする請求項１〜３のいずれかに記載のネットワークシステム。
【請求項５】
上記各下位のノードは、
自ノードが直接下位に接続している他ノードから与えられた送信データ、及び、自ノードにおいて上記送信データ保持手段が保持している送信データを集計して、集計送信データを作成する送信データ集計手段をさらに有し、
上記情報送信手段は、上記送信データ集計手段が集計した情報を、自ノードが直接上位に接続している他ノードに与える
ことを特徴とする請求項１〜４のいずれかに記載のネットワークシステム。
【請求項６】
複数のノードを備え、最上位のノードの配下に下位のノードが複数段分岐して接続されているネットワークシステムを構成する上記各下位のノードにおいて、
上記最上位のノードへ送信する送信データを保持している送信データ保持手段と、
上記送信データ保持手段が保持している送信データを、上記最上位のノードへ向けて送出する情報送信手段と
自ノードから上記最上位のノードまでのデータ伝送品質に係る評価値を算出する評価値算出手段と、
自ノードにおいて、直接下位に接続可能なノード数を算出する接続可能ノード数算出手段と、
少なくとも上記評価値算出手段が算出した情報と、上記接続可能ノード数算出手段が算出した情報とを、他ノードに通知する情報通知手段と、
他ノードから通知された情報を有するノード情報テーブルを作成して保持するテーブル保持手段と
を有することを特徴とするノード。
【請求項７】
複数のノードを備え、最上位のノードの配下に下位のノードが複数段分岐して接続されているネットワークシステムを構成する上記各下位のノードに搭載されたコンピュータを、
上記最上位のノードへ送信する送信データを保持している送信データ保持手段と、
上記送信データ保持手段が保持している送信データを、上記最上位のノードへ向けて送出する情報送信手段と
自ノードから上記最上位のノードまでのデータ伝送品質に係る評価値を算出する評価値算出手段と、
自ノードにおいて、直接下位に接続可能なノード数を算出する接続可能ノード数算出手段と、
少なくとも上記評価値算出手段が算出した情報と、上記接続可能ノード数算出手段が算出した情報とを、他ノードに通知する情報通知手段と、
他ノードから通知された情報を有するノード情報テーブルを作成して保持するテーブル保持手段と
して機能させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステム、ノード及び通信プログラムに関し、例えば、複数のノードからデータを収集するネットワークシステムに適用し得る。
【背景技術】
【０００２】
ネットワーク上の複数のノード（端末）からデータを収集して集計する例として、テレビ放送の視聴チャンネル情報を各視聴端末から収集して視聴率情報を集計する視聴率調査サービスや、各視聴端末にて投票を行ってこれを集計する投票サービスなどがある。これらのサービスでは、データの収集と集計を行うデータ集計サーバがネットワーク上の各視聴端末よりデータを受信して集計を行うのが一般的である。
【０００３】
特許文献１では、ＩＰネットワーク上の複数のノードを有する対称型オーバーレイネットワークを構築することによって、ノード間の通信が可能になる通信ネットワークシステムを実現している。
【特許文献１】特開２００５−０４５５９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の通信ネットワークシステムを適用した場合でも、例えば、ネットワーク上に集計サーバと複数の視聴端末が存在する場合、視聴端末の台数が増大すると、集計サーバ付近のネットワークの輻輳を回避するために、待ち時間が大きくなってしまう。
【０００５】
そのため、複数のノードからデータ収集する際に、短時間でデータ収集することができるネットワークシステムが望まれている。
【課題を解決するための手段】
【０００６】
第１の本発明のネットワークシステムは、（１）複数のノードを備え、最上位のノードの配下に下位のノードが複数段分岐して接続されているネットワークシステムにおいて、（２）上記各下位のノードは、（２−１）上記最上位のノードへ送信する送信データを保持している送信データ保持手段と、（２−２）上記送信データ保持手段が保持している送信データを、上記最上位のノードへ向けて送出する情報送信手段と（２−３）自ノードから上記最上位のノードまでのデータ伝送品質に係る評価値を算出する評価値算出手段と、（２−４）自ノードにおいて、直接下位に接続可能なノード数を算出する接続可能ノード数算出手段と、（２−５）少なくとも上記評価値算出手段が算出した情報と、上記接続可能ノード数算出手段が算出した情報とを、他ノードに通知する情報通知手段と、（２−６）他ノードから通知された情報を有するノード情報テーブルを作成して保持するテーブル保持手段とを有することを特徴とするネットワークシステム。
【０００７】
第２の本発明のノードは、（１）複数のノードを備え、最上位のノードの配下に下位のノードが複数段分岐して接続されているネットワークシステムを構成する上記各下位のノードにおいて、（２）上記最上位のノードへ送信する送信データを保持している送信データ保持手段と、（３）上記送信データ保持手段が保持している送信データを、上記最上位のノードへ向けて送出する情報送信手段と（４）自ノードから上記最上位のノードまでのデータ伝送品質に係る評価値を算出する評価値算出手段と、（５）自ノードにおいて、直接下位に接続可能なノード数を算出する接続可能ノード数算出手段と、（６）少なくとも上記評価値算出手段が算出した情報と、上記接続可能ノード数算出手段が算出した情報とを、他ノードに通知する情報通知手段と、（７）他ノードから通知された情報を有するノード情報テーブルを作成して保持するテーブル保持手段とを有することを特徴とする。
【０００８】
第３の本発明の通信プログラムは、（１）複数のノードを備え、最上位のノードの配下に下位のノードが複数段分岐して接続されているネットワークシステムを構成する上記各下位のノードに搭載されたコンピュータを、（２）上記最上位のノードへ送信する送信データを保持している送信データ保持手段と、（３）上記送信データ保持手段が保持している送信データを、上記最上位のノードへ向けて送出する情報送信手段と（４）自ノードから上記最上位のノードまでのデータ伝送品質に係る評価値を算出する評価値算出手段と、（５）自ノードにおいて、直接下位に接続可能なノード数を算出する接続可能ノード数算出手段と、（６）少なくとも上記評価値算出手段が算出した情報と、上記接続可能ノード数算出手段が算出した情報とを、他ノードに通知する情報通知手段と、（７）他ノードから通知された情報を有するノード情報テーブルを作成して保持するテーブル保持手段として機能させることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、複数のノードからデータ収集する際に、短時間でデータ収集することができる。
【発明を実施するための最良の形態】
【００１０】
（Ａ）第１の実施形態
以下、本発明によるネットワークシステム、ノード及び通信プログラムの第１の実施形態を、図面を参照しながら詳述する。
【００１１】
（Ａ−１）第１の実施形態の構成
図１は、第１の実施形態に係るネットワークシステムの全体構成を示すブロック図である。
【００１２】
ネットワークシステム１には、１３のノード１０（１０−１１、１０−２１〜１０−２４、１０−３１〜ノード１０−３８）が配置されているものとして説明するが、ネットワークシステム１におけるノード１０の数は限定されないものである。ネットワークシステム１は、例えば、ＩＰネットワークのアプリケーションレイヤ上に構成されるオーバーレイネットワークであり、図１においてノード１０間の接続については、論理的なトポロジを示しており、物理的なトポロジは異なっていても良い。例えば、全てのノード１０は図１に示すような論理的にトポロジ接続しているノード１０とだけでなく、物理的には他のノード１０とも通信可能な構成であっても良い。
【００１３】
各ノード１０は、自ノードに係る情報を保持し、各ノードが保持している情報が、最上位のノード１０−１１に収集される。各ノード１０が、最上位のノード１０−１１に向けて保持している情報を送出するタイミングは、例えば、定期的に送出するようにしても良いし、定時に送出するようにしても良いし、保持している情報が変動した場合に送出するようにしても良いし、最上位のノード１０−１１の要求に応じて送出するようにしても良く、限定されないものである。
【００１４】
この実施形態においては、例として、各ノード１０は、テレビ放送の視聴チャンネル情報をテレビや、ハードディスクレコーダなどの視聴端末から収集して保持し、最上位のノード１０−１１に送信するものとして説明する。また、各ノード１０は、視聴端末に搭載するようにしても良い。
【００１５】
また、ネットワークシステム１において、各ノード１０は、図１に示すように階層的な構造により接続されているものとする。第１の実施形態では、説明を簡易にするため、最上位に位置する唯一のノード１０−１１から下位に向かって、ネットワークが５つの層（第１層、第２層、第３層、第４層、第５層）に分かれており、各層にあるノードは、隣接する（接続している）層にあるノードとの間で上位および下位の接続を持つものとする。以下の説明において、通常時自ノードがデータ送信する送信先のノード（図１においては、自ノードの上の層のノード）と接続することを「上位接続」といい、通常時自ノードがデータ受信をする受信元のノード（図１においては、自ノードの下の層のノード）と接続することを「下位接続」という。
【００１６】
最上位ノード（第１層）には上位接続はなく、最下位（第５層）には下位接続はない。なお、図１においては、説明を簡易にするため、ネットワークシステム１におけるノードの階層は５つまでとしているが、階層の数は限定されないものである。また、図１に示す通り、第１層にはノード１０−１１が配置され、第２層にはノード１０−２１〜１０−２４が配置され、第３層にはノード１０−３１〜ノード１０−３８が配置されている。図１では、ネットワークシステム１の初期状態において、３層目までしかノードが配置されていないことを表している。図１において各ノードに付されているアルファベットは、ネットワークシステム１内における各ノードの識別情報（以下、「ノードＩＤ」という）を示しており、例えば、ノード１０−１１のノードＩＤは「Ａ」となる。この実施形態では、初期のネットワークは、図１に示すように、第１層から第３層まで、計１３個のノード間の接続をあらかじめ手動で構築されたものとし、いずれのノードもネットワークから離脱することなく、常時動作しているものとする。
【００１７】
また、図１においては、各ノードは、原則として最大２本の上位接続と最大５本の下位接続を持つことができるものとして記載しているが、上位接続及び下位接続の最大数は限定されないものである。例えば、ノード１０−３１は、既にノード１０−２１、ノード１０−２２と上位接続しているので、さらに他のノードと上位接続することはできない。また、ノード１０−２２は、既にノード１０−３１〜１０−３５と下位接続しているので、さらに他のノードと下位接続することはできない。
【００１８】
なお、図１においては、最上位のノード１０−１１は、下位接続の最大数は、４本であるものとして説明する。また、第２層のノード１０−２１〜１０−２４においては、上位接続可能なノードはノード１０−１１のみであるため上位接続の最大数は１本であるものとして説明する。
【００１９】
図２は、各ノード１０−１１、１０−２１〜１０−２４、１０−３１〜ノード１０−３８の内部の機能的構成の例について示したブロック図である。各ノード１０は、上述のように接続最大数などの差異はあるものの、基本的には全て図２のような構成となっている。
【００２０】
各ノード１０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ、ハードディスクなどのプログラムの実行構成、及び、他の通信装置と通信をするためのインタフェースを有する装置（１台に限定されず、複数台を分散処理し得るようにしたものであっても良い。）に、実施形態の通信プログラム等をインストールすることにより構築されるものであり、機能的には上述の図２のように示すことができる。例えば、ノード１０に係る視聴端末が、プログラムの実施構成等を備えた端末（例えば、デジタル放送対応テレビ、テレビ視聴可能なパソコン、ハードディスクレコーダなど）であった場合には、その視聴端末におけるプログラムの実施構成に、実施形態の通信プログラム等をインストールすることにより構築しても良い。
【００２１】
それぞれのノード１０は、少なくとも制御部１０１、通信部１０２、経路情報管理部１０３、アドレステーブル管理部１０４を有している。
【００２２】
制御部１０１は、ノード１０全体の動作を制御する機能を担っている。
【００２３】
通信部１０２は、他のノード１０と通信するためのインタフェースの機能を担っている。この実施形態においては、各ノード１０の間はＩＰを用いて通信するものとして説明するが、ＩＰＸ／ＳＰＸなど他のプロトコルを用いて通信しても良く、通信するプロトコルは限定されないものである。
【００２４】
経路情報管理部１０３は、当該ノード１０において、他のノードとの通信に係る情報を管理する機能を担っている。
【００２５】
経路情報管理部１０３は、上位接続しているノード１０のノードＩＤ、ＩＰアドレス、伝送時間を登録している。
【００２６】
伝送時間は、各ノード１０間のデータ伝送品質に係る評価値の例である。伝送時間としては、例えば、当該ノード１０から上位接続しているノード１０へテストデータを伝送した場合にかかる伝送時間を適用しても良いし、ＩＣＭＰ  ＥＣＨＯ（ＩＥＴＦ  ＲＦＣ  ７９２参照）などの既存のノード間の疎通確認を行うプロトコルを用いて測定した時間を適用しても良く、各ノード１０間において伝送時間を測定する方法は限定されないものである。
【００２７】
又、経路情報管理部１０３は、上位のノード１０へ接続する際の経路の判断に係る情報（以下、「経路判断データ」という）の保持及び管理を行う。経路判断データは、例えば、以下の（１）式のように表される。
【００２８】
自ノードのノードＩＤ（最短伝送時間［秒］、接続順位が１位の上位ノードのノードＩＤ、接続順位が２位の上位ノードのノードＩＤ）  …（１）
「接続順位が１位の上位ノードのノードＩＤ」は、上位接続しているノードのうち、自ノードから最上位ノード１０−１１までデータを伝送する際に経由すると、伝送時間の合計が最も短くなるノードのノードＩＤであり、「接続順位が２位の上位ノードのノードＩＤ」は、２番目に伝送時間の合計が短いノードのノードＩＤである。この実施形態においては、各ノード１０の上位接続の最大数は２であるため、経路判断データにおいても、接続順位が２位の上位ノードまでしか設定されないが、自ノードの上位接続の最大数に応じた順位まで設定するようにしても良い。
【００２９】
「最短伝送時間」は、「接続順位が１位の上位ノードのノードＩＤ」を経由して、自ノードから最上位ノード１０−１１までデータを伝送した場合の伝送時間の合計を示している。この実施形態においては、最短伝送時間を表す単位は「秒」であるものとして説明するが、単位は限定されないものである。
【００３０】
例えば、ノード１０−３１（ノードＩＤ：Ｆ）における経路判断データは、ノード１０−２１（ノードＩＤ：Ｂ）を経由した場合の伝送時間の合計が０．４秒、ノード１０−２２（ノードＩＤ：Ｃ）を経由した場合の伝送時間の合計が０．３秒であった場合には、「Ｆ（０．３、Ｃ、Ｂ）」となる。
【００３１】
なお、各ノード１０において、経路判断データする方法、伝送時間の合計を算出する方法について後述する動作説明において詳述する。
【００３２】
アドレステーブル管理部１０４は、ネットワークシステム１における各ノード１０に係る情報を有するテーブル（以下、「アドレステーブル」という）を保持して管理する機能を担っている。
【００３３】
図３は、アドレステーブルの情報について示した説明図である。
【００３４】
アドレステーブルは、図３に示すように、各ノード１０のノードＩＤ、ＩＰアドレス、ポート番号、最短伝送時間、上位接続空き数、下位接続空き数の情報を有している。
【００３５】
ＩＰアドレス及びポート番号は、ネットワークシステム１において、各ノード１０間でアクセスするための情報であるが、各ノード１０間でアクセス可能な情報であれば、他の情報（例えば、ドメイン名や、ＩＰアドレスのみなど）を適用するようにしても良い。
【００３６】
アドレステーブルにおける最短伝送時間は、各ノード１０で保持している経路判断データにおける最短伝送時間と同じ内容である。上位接続空き数、下位接続空き数は、各ノード１０の経路情報管理部１０３において、管理している上位接続及び下位接続において、あといくつのノードを接続すると最大数に達するかを表している。
【００３７】
収集情報管理部１０５は、最上位のノード１０−１１に向けて送出するための情報を保持する機能を担っている。
【００３８】
（Ａ−２）第１の実施形態の動作
次に、以上のような構成を有する第１の実施形態のネットワークシステムの動作を説明する。
【００３９】
（Ａ−２−１）初期ネットワークにおける準備動作
まず、ネットワークシステム１の起動初期において、各ノード１０の準備動作について説明する。ここでは、説明を簡易にするためにネットワークシステム１における全てのノード１０が同時に起動したものとして説明するが、各ノード１０が起動するタイミングは限定されないものである。また、各ノード１０において、上位接続及び下位接続するノードは、起動初期においては図１に示す接続に予め設定されているものとして説明する。
【００４０】
図４は、ネットワークシステム１における各ノード１０の起動初期の準備動作について説明したフローチャートである。
【００４１】
図５は、ネットワークシステム１において、図４に示す準備動作が完了した後の状態を示している。
【００４２】
まず、各ノード１０は、接続している上位ノードとの間で、テストデータの伝送を行い、伝送時間を計測し、記憶する（Ｓ１０１）。図５においては、伝送時間をノード間の線分上に示している。例えば、ノード１０−１１とノード１０−２１の間の伝送時間は０．１秒である。
【００４３】
次に、各ノード１０は、上述の経路判断データを作成して保持する（Ｓ１０２）。図５においては、ステップＳ１０２の完了後における、各ノード１０に、経路判断データを付して記載している。例えば、ノード１０−１１の経路判断データは、「Ｆ（０．３、Ｃ，Ｂ）」である。
【００４４】
各ノード１０は、最上位ノード１０−１１までの伝送時間の合計、および、接続している上位ノードの接続順位を決定する。まず、初期値として、最上位ノード１０−１１の伝送時間を０とし、最上位ノード１０−１１における経路判断データの初期値をＡ（０、−、−）とする。次に、第２層の各ノード１０−２１〜１０−２４において、自ノードから最上位ノード１０−１１までの最短伝送時間を算出する。例えば、図５のノード１０−２１では、上位接続しているノードは、ノード１０−１１のみであるから、最短伝送時間は、ノード１０−１１とノード１０−２１の間の伝送時間０．１秒となり、接続順位としては、第１位がノードＡ、第２位は該当なし「−」となる。よって、ノード１０−２１において保持される経路判断データは、図５に示す通り、「Ｂ（０．１，Ａ，−）」となる。
【００４５】
そして、第２層の各ノードについて、同様の処理を行ったのち、次に第３層の各ノードにおいて処理が行われる。例えば、図５におけるノード１０−３１では、上位接続しているノードは、ノード１０−２１、１０−２２の２つである。ノード１０−３１は、ノード１０−２１、１０−２２に経路判断データを問い合わせることにより、ノード１０−２１での最短伝送時間は０．１秒、ノード１０−２２での最短伝送時間は０．１秒であることを確認し、さらに、自ノードからノード１０−２１までの伝送時間が０．３秒、ノード１０−２２までの伝送時間が０．２秒であることを考慮して、最上位ノード１０−１１までの最短伝送時間が０・３秒、第１位接続ノードがＣ、第２位接続ノードがＢであることを検出し、経路判断データとして「Ｆ（０．３，Ｃ，Ｂ）」を作成して保持する。
【００４６】
そして、同様に、第３層の各ノード１０−３１〜ノード１０−３８について処理を行う。これにより、第１層から第３層までのすべてのノード１０は、図５に示すように自ノードにおける経路判断データを作成して保持する。
【００４７】
以降、各ノード１０が最上位ノード１０−１１へ向けたデータ送信を行う際には、各ノード１０が保持している経路判断データに基づいて、その経路が決定される。例えば、ノード１０−３１における経路判断データは、図５に示すように「Ｆ（０．３，Ｃ，Ｂ）」であるので、ノード１０−３１が最上位ノード１０−１１へ向けたデータ送信を行う場合、そのデータは、接続順位が第１位のノード１０−２２（ノードＩＤ：Ｃ）を介して送信されることになる。
【００４８】
そして、各ノード１０は、アドレステーブル管理部１０４のアドレステーブルに、自ノードに係る情報を登録して、登録した内容を接続している他のノード１０に向けて送信する。また、各ノード１０は、接続しているノード１０から受信したアドレステーブルの情報を、さらに別の接続しているノード１０に送信するとともに、受信したアドレステーブルの情報を、自ノードのアドレステーブル管理部１０４に追加する。その結果、第１層から第３層のすべてのノード１０のアドレステーブル管理部１０４において、図３に示すように、１３個のエントリから構成される同一のアドレステーブルが保持されることになる。なお、初期ネットワークにおいては、第１層、第２層については、上下位とも接続空き数は０とし、第３層については、ノード毎、下位のみ５本の空き接続があるものとして表に記載している。
【００４９】
（Ａ−２−２）新規ノードがネットワークシステムに参加する場合の動作
次に、上述のステップＳ１０３の処理が終了した後において、ネットワークシステム１に新規にノード１０−４１が、参加した場合の動作について説明する。
【００５０】
図６は、新規にノード１０−４１が、ネットワークシステム１に参加しようとした場合の動作について示した説明図である。
【００５１】
新規にノード１０がネットワークシステム１に参加をしようとする場合、既にネットワークシステム１を構成しているいずれかのノード１０のノードのＩＰアドレスおよびポート番号が公開されているものとする。また、新規にノード１０をネットワークシステム１に参加させようとする場合、既にネットワークシステム１を構成しているいずれかのノード１０のノードのＩＰアドレスおよびポート番号を、手動で当該新規のノードに設定するようにしても良い。この実施形態においては、新規にネットワークシステム１に参加をしようとするノード１０−４１は、まず、ノード１０−３１にアクセスし、ノード１０−３１がアドレステーブル管理部１０４に保持しているアドレステーブルを取得するものとして説明する。なお、ノード１０−４１のノードＩＤは、図６に示す通り「Ｎ」であるものとする。
【００５２】
ノード１０−４１が、ノード１０−３１より、図３に示すアドレステーブルを取得すると、下位接続に空きがあるノードのうち、最短伝送時間が最も小さいものを接続候補ノードとして２つ選択する。図３に示すアドレステーブルの例では、下位接続に空きがあるのは、ノード１０−３１〜ノード１０−３８であり、まず、最短伝送時間が最も小さいノード１０−３２、１０−３３が選択される。
【００５３】
なお、図６においては、ノード１０−４１が接続候補ノードを選択する際には、最短伝送時間等の条件が同じである場合には、ノードＩＤが前のものを優先して選択するものとする。例えば、ノードＩＤがＦとＧで条件が同じ場合には、Ｆが選択されることになる。新規にネットワークシステム１に参加しようとするノードにおいて、接続候補ノードを選択する際に同条件のノードが複数あった場合の判断基準は、ノードＩＤだけでなく、ＩＰアドレスや処理能力などを用いても良く、一意に選択可能な基準であれば、その方法は限定されないものである。
【００５４】
次に、ノード１０−４１は、２つの接続候補のノード１０−３２、１０−３３に問い合わせて、ノード１０−３２、１０−３３さらに上位ノードが共通にならないかどうか確認し、共通になる場合には、接続候補ノードを選択しなおしても良い。すなわち、既に選択した接続候補ノード以外のノードで、下位接続に空きがあるノードのうち、最短伝送時間が最も小さいものを選択する。また、接続候補のノードの上位ノードが全て重ならない組み合わせが存在しない場合には、問い合わせを行った接続候補ノードの中で、一番その上位ノードが重ならない組み合わせを接続先として決定しても良い。すなわち、最上位ノード１０−１１への経路ができるだけ重ならない経路となるように、接続先ノードを決定する。
【００５５】
図６においては、ノード１０−４１が、が２つの接続候補ノード１０−３２、１０−３３に上位ノードを問合せた結果、ノード１０−３２、１０−３３は、いずれも、上位ノードとしてノード１０−２１、１０−２２を持つので、ノード１０−４１は、下位接続に空きがあり、最短伝送時間が小さいものの中から別の２つの接続候補ノードの組み合わせを選択し、再び上位ノードを問合せ、条件を満足するまで処理を繰り返す。
【００５６】
その結果、図６においては、ノード１０−４１は、ノード１０−３２、１０−３６が、接続相手として決定することになる。
【００５７】
そして、ノード１０−１１は、ノード１０−３２、１０−３６のそれぞれとの間で、ノード間伝送時間を計測し、これに基づいて経路判断データ「Ｎ（０．３，Ｇ，Ｋ）」を算出し、アドレステーブル管理部１０４のアドレステーブルを更新するとともに、更新データをノード１０−３２、１０−３６に送信する。ノード１０−３２、１０−３６はその更新データに基づき、自身のアドレステーブル管理部１０４のアドレステーブルを更新するとともに、その更新データを接続している他のノード１０にも送信する。更新データはノード１０−４１を中心とした所定の範囲に中継され、受信した各ノード１０は白身のアドレステーブル管理部１０４のアドレステーブルを更新する。
【００５８】
図７は、図３の初期ネットワークシステム１でのアドレステーブルを基に、ノード１０−４１がネットワークシステム１に参加した場合のアドレステーブルの内容を示すもので、ノード１０−４１（ノードＩＤ：Ｎ）の行が加わり、さらに、接続相手となるノード１０−３２（ノードＩＤ：Ｇ）、ノード１０−３６（ノードＩＤ：Ｋ）の下位接続空き数が１だけ減算されている。
【００５９】
なお、新規ノードがノードＦよりアドレステーブルを入力した際に、条件に合う接続相手が見つからない場合には、該アドレステーブルに記載された任意のノードから再度アドレステーブルを入手し、このアドレステーブルの記載内容を基に接続相手を選択するようにしても良い。
【００６０】
（Ａ−２−３）既存ノードがネットワークを離脱する場合の動作
次に、ネットワークシステム１から、いずれかのノード１０が離脱した場合の動作について説明する。
【００６１】
ここでは、例として、図１に示すネットワークシステム１の初期の状態に対して、第４層にノード１０−４１（ノードＩＤ：Ｎ）と、第５層にノード１０−５１（ノードＩＤ：Ｐ）が加わった後に、ノード１０−４１（ノードＩＤ：Ｎ）が、ネットワークシステム１から離脱する場合の動作につい説明する。
【００６２】
図８は、ノード１０−４１（ノードＩＤ：Ｎ）が、ネットワークシステム１から離脱する場合の動作について示した説明図である。
【００６３】
ノード１０−４１は離脱に先立ち、自身および接続しているノード１０−５１、１０−３２、１０−３６に対して、ノード１０−４１離脱に伴うアドレステーブルの更新情報を送信する。これにより、更新データはノード１０−４１を中心とした所定の範囲に中継され、受信した各ノード１０は自身のアドレステーブルを更新する。そののち、ノード１０−４１はネットワークから離脱する。
【００６４】
ノード１０−４１がネットワークを離脱することにより、ノード１０−５１は一方の上位接続を失う。そこで、ノード１０−５１は自己が保持するアドレステーブルに基づいて、上位接続可能なノード１０を検索し、接続を行う。
【００６５】
接続ノードの決定およびアドレステーブルの更新については、上述の新規ノードがネットワークシステムに参加する場合の動作と同様であるので、詳しい説明を省略する。
【００６６】
なお、ノード１０−４１が、通信障害や故障などの理由により、突然ネットワークシステム１から離脱する場合には、データの送受信の動作の際、データ通信が妨げられるが、その際、ノード１０−４１と接続関係にあったノード１０が、ノード１０−４１からの応答がないことを検出し、ノード１０−４１の離脱に相当するアドレステーブルの更新情報を接続しているノード１０に送信することにより、ネットワークシステム１全体のノード１０がノード１０−４１の離脱を認識し、ネットワークシステム１におけるトポロジが再構築されることになる。
【００６７】
以上の動作により、任意のノードがネットワークシステム１を離脱する際には、上位ノードを失ったノードから最上位ノードまでの伝送時間が短く、かつ、複数の上位経路がなるべく離れているような上位接続を再構築することとなる。
【００６８】
（Ａ−２−４）ノード間の状況確認の動作
次に、ノード１０間の状況確認の動作について説明する。
【００６９】
まず、ノード１０が、下位ノードに状況確認をする際の動作について説明する。
【００７０】
ノード１０は、下位接続しているノードに対して、データ送信の意思を問い合わせ、問い合わせたノードから、データ送信意思の返答があった場合、その問い合わせたノードからデータが与えられるのを待機する。一方、下位接続しているノードから、データ送信意思の返答がない場合には、その問い合わせたノードがネットワークから離脱しているか、若しくは、その問い合わせたノードが、他の上位ノードへのデータ送信意思があるものとみなして、以降そのノードからのデータを無視する。
【００７１】
また、ノード１０は、一定時間を経過しても問い合わせをした下位ノードからのデータ送信意思の問い合わせに応答がない場合には、問い合わせをした下位ノードが、ネットワークから離脱したものと認識する。
【００７２】
次に、ノード１０が、上位ノードの状況確認をする際の動作について説明する。
【００７３】
一定時間を経過しても、接続順位が第１位の上位ノードからデータ送信意思の問合せがない場合には、その上位ノードがネットワークシステム１から離脱したものと解釈し、接続順位が第２位の上位ノードに、データ送信の意思の問い合わせに対して返答する。これにより、当該ノード１０において保持されているデータは、当面接続順位が第２位のノードを介して最上位ノードへデータ送信を行い、その後、上述の新規ノードがネットワークシステムに参加する場合の動作と同様の処理により、接続順位が第１位と第２位の上位ノードが決定され、第１位のノードが現在データ送信を行っている上位ノードと異なる場合には、新しく接続順位が第１位となったノードに接続を変更するようにしても良い。
【００７４】
（Ａ−３）第１の実施形態の効果
第１の実施形態によれば、以下のような効果を奏することができる。
【００７５】
各ノードから最上位ノードまでデータを伝送する経路は、経路判断データに基づいて、伝送時間の短い経路を用いて上位ノードに送信するので、各ノードが保持しているデータを、短時間で伝送し、実時間に近いタイミングでデータ収集を完了させることができる。
【００７６】
また、ネットワークシステムにノードが新規に接続する場合や、再接続する場合には、アドレステーブルを参照することにより、下位接続に空きがあるノードに容易にアクセスして接続することができる。
【００７７】
さらに、ネットワークシステムに参加しようとするノードは、アドレステーブルの最短伝送時間を参照し、各ノードにおける最短伝送時間を把握することができるので、より短い伝送時間の経路で、最上位ノードへデータを伝送できる上位ノードに接続することができる。
【００７８】
さらにまた、ネットワークシステムに参加しようとするノードは、上述の図６、７に示すように、複数のノードと上位接続しようとする場合には、複数の上位経路の重なりが少なくなるように、接続する上位ノードを決定するようにしたので、最上位のノードへ接続する一方の経路で、通信断（例えば、上位ノードの離脱や通信障害）があった場合でも、他方の経路でデータ伝送を継続することができる。例えば、図６において、ノード１０−２２がネットワークを離脱し、かつ、その下位側に接続されたノード１０−３２から上位への経路（ノード１０−２１、１０−２２への経路）の通信が確保できない場合、該下位側に接続されたノード１０−３２からのデータは、一旦さらに下位例のノード１０−４１を経由し、次いで、離脱したノード１０−２２とはネットワーク上離れた上位ノード（例えば、ノード１０−２３）を経由して伝送できるので、ノードの離脱があった場合でも、途切れることなく継続してノード１０−１１へのデータの伝送を行うことができる。また、例えば、ノード１０−３２から上位への経路（ノード１０−２１、１０−２２への経路）が確保できない場合で、かつ、ノード１０−４１が、ノード１０−３２、１０−３３と上位接続していた場合には、再度他のノード１０と上位接続しなければ最上位ノード１０−１１へのデータ伝送はできないが、ノード１０−３２、１０−３６と最上位ノード１０−１１への経路が異なる離れたノードと上位接続している場合には、途切れることなく最上位ノード１０−１１へデータ伝送を行うことができる。
【００７９】
（Ｂ）第２の実施形態
以下、本発明によるネットワークシステム、ノード及び通信プログラムの第２の実施形態を、図面を参照しながら詳述する。
【００８０】
（Ｂ−１）第２の実施形態の構成
図９は、この実施形態のネットワークシステム１Ａの全体構成を示した説明図である。
【００８１】
図９に示すように、ネットワークシステム１Ａは、複数のノード１０Ａを備えている。
【００８２】
第１の実施形態のネットワークシステム１では、各ノード１０は保持している情報を単に最上位のノード１０−１１において収集するだけであったが、第２の実施形態のネットワークシステム２では、各ノード１０Ａが、下位のノード１０Ａから収集した情報と、自ノードが保持している情報を収集して上位ノードに送信する点で、第１の実施形態と異なっている。
【００８３】
第１の実施形態のネットワークシステム１では、初期状態において３層目までしかノード１０が配置されていなかったが、第２の実施形態のネットワークシステム１Ａでは、初期状態において図９に示すように、ノード１０Ａ−１１を最上位（１層目）のノードとして５層目まで配置されている。
【００８４】
また、図９において、ネットワークシステム１Ａでは、２層目には少なくともノード１０Ａ−２１が配置され、３層目には少なくともノード１０Ａ−３１が配置され、４層目には少なくともノード１０Ａ−４１が配置され、５層目には少なくともノード１０Ａ−５１が配置されているものとする。また、図９において、各ノード１０Ａに付されているアルファベットは、第１の実施形態における図１と同様に各ノード１０ＡのノードＩＤを示している。
【００８５】
図１０は、第２の実施形態における各ノード１０Ａ内部の機能的構成について示したブロック図である。
【００８６】
ノード１０Ａは、制御部１０１、通信部１０２、経路情報管理部１０３、アドレステーブル管理部１０４、収集情報管理部１０５、収集情報処理部１０６を有している。
【００８７】
制御部１０１、通信部１０２、経路情報管理部１０３、アドレステーブル管理部１０４、収集情報管理部１０５については第１の実施形態と同様のものであるので詳しい説明を省略する。
【００８８】
図１１は、第２の実施形態において、収集情報管理部１０５に保持される情報の例について示した説明図である。
【００８９】
各ノード１０Ａにおける収集情報管理部１０５は、図１１に示すように、自ノードに係る視聴端末のテレビ視聴状況に応じ、視聴時間帯毎、視聴チャンネルごとの視聴度数を記録しているものとする。視聴度数としては、該当する時間帯、チャンネル（コンテンツＩＤ）での視聴があれば世帯視聴度数として１を計数する。また、視聴者区分（性別と年代から分類される層）毎に視聴者数を計数する。各ノード１０Ａが視聴者区分を検出する方法としては、従来公知の方法を適用しても良いが、この実施形態においては、視聴端末ごとに個人別の押しボタンを備え、視聴者がテレビを視聴する際に、該当するボタンを操作することにより、視聴者区分を検出するものとする。
【００９０】
図１１では、視聴時間帯単位で伝送されるものとする。視聴時間帯毎のデータは、分単位の視聴時間帯データ（項目ＩＤ：１）、チャンネルを識別するコンテンツＩＤ（項目ＩＤ：１０、２０、…）、コンテンツＩＤ毎の世帯視聴度数（項目ＩＤ：１１、２１、…）、および、８種類の視聴者区分毎の視聴度数（項目ＩＤ：１２〜１９、２２〜２９、…）を有している。コンテンツＩＤおよび視聴度数のデータは、すべての放送中のチャンネルについて順番に記述されるものとする。
【００９１】
収集情報処理部１０６は、下位接続しているノード１０Ａから収集した情報、及び、自ノードの収集情報管理部１０５に保持されている情報を集計して、上位接続しているノード１０Ａにその集計した情報を与えるものである。収集情報処理部１０６における処理の詳細について後述する動作説明において詳述する。
【００９２】
（Ｂ−２）第２の実施形態の動作
次に、以上のような構成を有する第２の実施形態のネットワークシステム１Ａの動作を説明する。
【００９３】
第２の実施形態のネットワークシステム１Ａにおける、初期ネットワークにおける準備動作、新規ノードがネットワークシステムに参加する場合の動作（データの伝送経路の決定方法）、既存ノードがネットワークを離脱する場合の動作については、第１の実施形態と同様であるので説明を省略する。ここでは、第２の実施形態のネットワークシステム１Ａにおける、ノード１０Ａの情報収集及び集計の動作について説明する。
【００９４】
（Ｂ−２−１）各ノードの動作
まず、各ノード１０Ａの情報収集及び集計の動作について説明する。
【００９５】
図１２は、各ノード１０Ａにおけるデータの集計及び送信について説明したフローチャートである。
【００９６】
まず、下位接続している全てのノードからデータを取得して（Ｓ２０１）、取得したデータを集計する（Ｓ２０２）。
【００９７】
そして、ステップＳ２０２で集計したデータと、自ノードが保持しているデータを集計し（Ｓ２０３）、ステップＳ２０３で集計したデータを、上位接続しているノードに接続する。
【００９８】
（Ｂ−２−２）ネットワークシステム全体の動作
次に、ネットワークシステム１Ａの全体のノード１０Ａの動作について説明する。
【００９９】
ここでは、ノード１０Ａ−５１がデータ伝送する上位ノードは、ノード１０Ａ−４１であるものとする。ノード１０Ａ−４１がデータ伝送する上位ノードは、ノード１０Ａ−３１であるものとする。ノード１０Ａ−３１がデータ伝送する上位ノードは、ノード１０Ａ−２１であるものとする。
【０１００】
まず、ノード１０Ａ−５１は、各時間帯の視聴度数を計測して、収集情報管理部１０５に保持するデータを更新すると、ノード１０Ａ−４１と相互に疎通確認した後、収集情報管理部１０５に保持しているデータをノード１０Ａ−４１に送信する。
【０１０１】
ノード１０Ａ−４１は、各時間帯の視聴度数を計測して、収集情報管理部１０５に保持するデータを更新すると、下位接続しているノード（ノード１０Ａ−５１を含む）から受信したデータと、自ノードの収集情報管理部１０５に保持しているデータを併せて集計し、集計したデータを、ノード１０Ａ−３１に送信する。
【０１０２】
そして、ノード１０Ａ−３１においても同様に、下位接続しているノード（ノード１０Ａ−４１を含む）から受信したデータと、自ノードの収集情報管理部１０５に保持しているデータを併せて集計し、集計したデータを、ノード１０Ａ−２１に送信する。
【０１０３】
さらに、ノード１０Ａ−２１においても同様に、下位接続しているノード（ノード１０Ａ−３１を含む）から受信したデータと、自ノードの収集情報管理部１０５に保持しているデータを併せて集計し、集計したデータを、ノード１０Ａ−１１に送信する。
【０１０４】
そして、最上位のノード１０Ａ−１１では、下位接続しているノード（ノード１０Ａ−２１を含む）から受信したデータの集計が行われる。これにより、ノード１０Ａ−１１では、下位にある全てのノードの全てのデータを集計したデータを取得する。
【０１０５】
図１３は、ノード１０Ａ−２１（ノードＩＤ：Ｂ）が、送信するデータの例について示した説明図である。
【０１０６】
図１３では、ノード１０Ａ−２１において下位接続しているノード（ノード１０Ａ−３１を含む）から受信したデータを集計したデータと、ノード１０Ａ−２１が保持しているデータをと、ノード１０Ａ−２１がノード１０Ａ−１１に送信するデータとを示している。
【０１０７】
例えば、コンテンツＩＤが「１」の「世帯視聴度数」（項目ＩＤ：「１１」）のデータに着目すると、ノード１０Ａ−２１において下位接続しているノードから受信したデータを集計したデータでは「２５６」で、ノード１０Ａ−２１が保持しているデータでは「１」となっているため、ノード１０Ａ−２１がノード１０Ａ−１１に送信するデータでは、これらを加算して「２５７」となっている。このように、各ノード１０Ａでは、下位接続しているノードがある場合に、下位接続しているノードから受信したデータと、自ノードが保持しているデータを集計して、上位ノードに送信することを繰り返している。
【０１０８】
（Ｂ−３）第２の実施形態の効果
第２の実施形態によれば、第１の実施形態における効果に加えて、以下のような効果を奏することができる。
【０１０９】
各ノードにて下位ノードから受信したデータと、自ノードが保持しているデータとを集計して、上位ノードヘ伝送するようにしているので、ネットワークシステムを構成するノード数が増えても、データ伝送のトラフィックは最上位ノード近辺で増えることはなく、ネットワークシステム全体に分散させることにより、短時間でデータ伝送を完了させ、かつ、ネットワークシステムを構築するコストを低減することができる。
【０１１０】
また、各ノードにて下位ノードから受信したデータと、自ノードが保持しているデータとを集計して、上位ノードヘ伝送するようにしているため、それぞれのノードが保持しているデータを最上位ノードに集めて集計する場合と比較して、最上位ノードにおいて収集したデータの集計処理に要するコストを低減することができる。また、ネットワークシステムの全てのノードで集計に係る処理を分散して並列的に実行しているので、データの集計する時間を短縮し、より実時間に近いタイミングで集計したデータを取得することができる。
【０１１１】
（Ｃ）他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【０１１２】
（Ｃ−１）上記の各実施形態では、動作の説明を簡易にするため、ネットワークシステム１においてノードは階層構造で配置されていると説明したが、階層構造ではなく、木構造などであっても良く、最上位ノードより下位のノードが、上位および下位のノード間接続を持つネットワークにより構成されていれば、ネットワークシステムにおけるノード間の接続構造は限定されないものである。
【０１１３】
（Ｃ−２）上記の各実施形態においては、各ノードが接続可能な隣接ノードの最大数として、上位２本、下位５本の場合について説明したが、上述の接続最大数をネットワーク環境や用途に合わせて変更してもよい。例えば、各ノードの通信性能が高い場合には、下位への接続本数を増大させるようにしても良い。下位への接続本数を増大させることによって、任意のノードから最上位ノードまでの平均経路長が短くなるため、データ集計にかかる遅延時間をさらに短くすることができる。また、例えば、各ノードが、ノード自身の処理能力や接続ネットワークの伝送能力に応じて上下位の接続本数を動的に設定してもよい。
【０１１４】
また、例えば、ネットワーク上のすべてのノードがネットワークから離脱しないことが保証されている場合には、上位への接続は１本のみとしても良い。
【０１１５】
（Ｃ−３）第１の実施形態においては、初期ネットワークとして、第１層から第３層までの計１３ノードの接続をあらかじめ手動で構築するものとして説明したが、初期ネットワークの層数やノード数はこれに限定されない。初期ネットワークの構成は、ネットワーク環境や用途に合わせて変更しても良い。
【０１１６】
（Ｃ−４）上記の各実施形態においては、テレビ視聴率に関するデータを集計するシステムについて説明したが、データ収集などを目的としたネットワークシステムであれば、対象は視聴率に限定することなく適用できる。例えば、ネットワーク越しに投票を行い、これを集計するシステムや、情報家電機器の利用状況を統計分析するシステムなどに適用しても良い。
【０１１７】
上記の各実施形態では、視聴率に関するデータ収集を対象として伝送データの例を示したが、本発明を他の目的に適用する場合には、目的に応じた伝送データの形式を適宜選択すれば良い。
【０１１８】
（Ｃ−５）上記の各実施形態においては、各ノード間における「伝送時間」を、データ伝送品質の評価値として用いているが、エラー率や、インタフェースの種類に応じたコスト値など、他の評価値を用いて経路選択の評価値として用いても良い。
【０１１９】
インタフェースの種類に応じたコスト値とは、例えば、ノードが備えるインタフェースが１Ｇｂｐｓ対応の場合にはコスト値を１、１００Ｍｂｐｓの場合にはコスト値を１０にするなど、インタフェースが対応する速度やメディアの種類（例えば、光ファイバー、メタルなど）に応じたコスト値を設定することが挙げられる。そして、最もコスト値が少ない経路を、最も短時間でデータ伝送が可能な経路として選択するようにしても良い。
【図面の簡単な説明】
【０１２０】
【図１】第１の実施形態に係るネットワークシステムの全体構成を示した説明図である。
【図２】第１の実施形態に係るノードの機能的構成を示したブロック図である。
【図３】第１の実施形態に係るアドレステーブル管理部において保持される情報について示した説明図である。
【図４】第１の実施形態に係るネットワークシステムにおける各ノードの起動初期の準備動作について説明したフローチャートである。
【図５】第１の実施形態に係るネットワークシステムにおいて、起動初期の準備動作が完了した後の状態を示した説明図である。
【図６】第１の実施形態に係るネットワークシステムにおいて、新規にノードが、参加しようとした場合の動作について示した説明図である。
【図７】第１の実施形態に係るネットワークシステムにおいて、新規ノードが参加した後の、アドレステーブルの内容を示した説明図である。
【図８】第１の実施形態に係るネットワークシステムにおいて、ノードが離脱した場合の動作について示した説明図である。
【図９】第２の実施形態に係るネットワークシステムの全体構成を示した説明図である。
【図１０】第２の実施形態に係るノードの機能的構成を示したブロック図である。
【図１１】第２の実施形態に係る収集情報管理部に保持される情報の例について示した説明図である。
【図１２】第２の実施形態に係るノードにおけるデータの集計及び送信について説明したフローチャートである。
【図１３】第２の実施形態に係るノードが集計する情報の例について示した説明図である。
【符号の説明】
【０１２１】
１…ネットワークシステム、１０、１０−１１、１０−２１〜１０−２４、１０−３１〜１０−３８、１０−４１、１０−５１…ノード、１０１…制御部、１０２…通信部、１０３…経路情報管理部、１０４…アドレステーブル管理部、１０５…収集情報管理部。
【図１】
2010045720.tif 000003
【図２】
2010045720.tif 000004
【図３】
2010045720.tif 000005
【図４】
2010045720.tif 000006
【図５】
2010045720.tif 000007
【図６】
2010045720.tif 000008
【図７】
2010045720.tif 000009
【図８】
2010045720.tif 000010
【図９】
2010045720.tif 000011
【図１０】
2010045720.tif 000012
【図１１】
2010045720.tif 000013
【図１２】
2010045720.tif 000014
【図１３】
2010045720.tif 000015