(57)【要約】 【課題】  ノード装置間の通信経路における通信負荷を考慮してオーバレイネットワークを構築することにより、通信負荷を低減させることを可能とした情報通信システム（コンテンツ配信システム）、情報通信システムに含まれる初期ゾーン管理ノード装置（デフォルトゾーンルートノード）等を提供することを課題とする。【解決手段】  本発明は、通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムであって、１の前記ノード装置と他の前記ノード装置との間の前記通信経路における通信負荷が所定範囲の場合には、前記１のノード装置と前記他のノード装置とを、前記オーバレイネットワークにおいて同一のゾーンに所属するよう配置させる。【選択図】  図１
2006217538.tif 000002
【特許請求の範囲】
【請求項１】
通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムであって、
１の前記ノード装置と他の前記ノード装置との間の前記通信経路における通信負荷が所定範囲の場合には、前記１のノード装置と前記他のノード装置とを、前記オーバレイネットワークにおいて同一のゾーンに所属するよう配置させることを特徴とする情報通信システム。
【請求項２】
請求項１に記載の情報通信システムにおいて、
新たなノード装置から前記情報通信システムへの参加要求がされると、前記新たなノード装置と、前記情報通信システム参加時に最初に所属される初期ゾーンに所属する前記ノード装置と、の間の前記通信経路における通信負荷が所定範囲の場合には、前記オーバレイネットワークに新たなゾーンを生成し、前記新たなノード装置と前記初期ゾーンに所属するノード装置とを前記生成した新たなゾーンに所属するよう配置させることを特徴とする情報通信システム。
【請求項３】
請求項１又は請求項２に記載の情報通信システムにおいて、
前記複数のゾーンにおける１のゾーンに所属するノード装置と、前記複数のゾーンにおける他のゾーンに所属するノード装置と、の間の前記通信経路における通信負荷が所定範囲の場合には、前記１のゾーンと前記他のゾーンとを併合することを特徴とする情報通信システム。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載の情報通信システムにおいて、
前記１のノード装置が前記複数のノード装置間で共用されるべき共用情報を共用可能に保持する場合に、当該１のノード装置が所属するゾーンと異なるゾーンに所属するノード装置に対して前記共用情報を複製して共用可能に保持させることを特徴とする情報通信システム。
【請求項５】
請求項１乃至請求項４のいずれか一項に記載の情報通信システムにおいて、
前記１のノード装置が前記複数のノード装置間で共用されるべき共用情報を共用可能に保持する場合に、前記他のノード装置から前記１のノード装置に対して前記共用情報の配信要求があった場合には、当該他のノード装置が所属するゾーンのゾーン要求数が所定範囲を超えた場合には、当該他のノード装置が所属するゾーンに所属する何れかの前記ノード装置に対して前記共用情報を複製して共用可能に保持させることを特徴とする情報通信システム。
【請求項６】
請求項１乃至請求項５のいずれか一項に記載の情報通信システムにおいて、
各前記ノード装置は、当該ノード装置が所属するゾーンを示すゾーン情報を含み、かつ前記複数のノード装置から当該ノード装置を一意に識別するための固有の装置識別情報を有し、前記各ノード装置をオーバレイネットワークに配置させる際には、当該各ノード装置が有する前記装置識別情報に含まれるゾーン情報に対応する何れかの前記ゾーンに配置させることを特徴とする情報通信システム。
【請求項７】
請求項１乃至請求項６のいずれか一項に記載の情報通信システムにおいて、
前記通信負荷は、前記通信経路上にある中継装置の数、または一定期間の通信応答時間の統計値に基づいて定められることを特徴とする情報通信システム。
【請求項８】
通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムであって、
前記情報通信システムを構成するに含まれるノード装置であり、前記情報通信システム参加時に最初に所属される初期ゾーンに所属し、当該初期ゾーンに所属するノード装置を管理する初期ゾーン管理ノード装置は、
新たなノード装置から当該ノード装置を一意に識別するための固有の装置識別情報を受信して前記情報通信システムへの参加要求を受けると、前記装置識別情報に基づいて前記初期ゾーンに前記新たなノード装置を配置させる配置制御手段と、
前記初期ゾーンに所属する何れかのノード装置から前記初期ゾーンの離脱を示す離脱情報を受信すると、当該離脱情報の送信元のノード装置に新規ゾーンを示すゾーン情報を送信するゾーン情報送信手段と、
を有し、
前記新たなノード装置は、
前記初期ゾーン管理ノード装置の前記配置制御手段によって前記初期ゾーンに配置されると、前記初期ゾーンに所属する他のノード装置との間の前記通信経路における通信負荷に関する通信負荷情報を取得する通信負荷情報取得手段と、
前記取得した通信負荷情報にかかる通信負荷が所定範囲の場合には、前記初期ゾーン管理ノード装置に前記離脱情報を送信する離脱情報送信手段と、
前記初期ゾーン管理ノード装置から前記ゾーン情報を受信すると、前記オーバレイネットワークに当該新たなノード装置自身と前記他のノード装置とが所属すべき新規ゾーンを、当該ゾーン情報に基づいて生成するゾーン生成手段と、
を有することを特徴とする情報通信システム。
【請求項９】
請求項８に記載の情報通信システムにおいて、
前記情報通信システムを構成するノード装置であり、前記複数のゾーンにおける１のゾーンに所属し、当該１のゾーンに所属するノード装置を管理するゾーン管理ノード装置は、
他の前記ゾーンに所属するノード装置との間の前記通信経路における通信負荷に関する通信負荷情報を取得する通信負荷情報取得手段と、
前記取得した通信負荷情報にかかる通信負荷が所定範囲の場合には、前記１のゾーンに所属するノード装置に前記他のゾーンを示すゾーン情報を送信するゾーン情報送信手段と、
前記複数のゾーンのうち、前記１のゾーン及び前記他のゾーン以外の各ゾーンを管理する各ゾーン管理ノード装置に前記１のゾーンの消滅を示すゾーン消滅情報を送信する消滅情報送信手段と、
を有し、
前記１のゾーンに所属するノード装置は、
前記複数のノード装置から当該ノード装置を一意に識別するための固有の装置識別情報を有し、前記ゾーン管理ノード装置から前記ゾーン情報を受信すると、当該ゾーン情報に基づいて前記装置識別情報を変更する識別情報変更手段と、
を有することを特徴とする情報通信システム。
【請求項１０】
請求項９に記載の情報通信システムにおいて、
前記複数のゾーンにおける１のゾーンに所属し、当該１のゾーンのゾーン管理ノード装置でない１のノード装置は、
前記他のゾーンに所属するノード装置との間の前記通信経路における通信負荷に関する通信負荷情報を取得する通信負荷情報取得手段と、
前記取得した通信負荷情報にかかる通信負荷が所定範囲の場合には、前記ゾーン管理ノード装置に前記他のゾーンを示すゾーン情報を送信するゾーン情報送信手段と、
前記他のゾーンを示すゾーン情報に基づいて、当該１のノード装置自身の前記装置識別情報を変更する識別情報変更手段と、
を有することを特徴とする情報通信システム。
【請求項１１】
請求項８乃至請求項１０の何れか一項に記載の情報通信システムにおいて、
前記複数のノード装置におけるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を管理する共用情報管理ノード装置は、
前記共用情報を記憶する情報記憶ノード装置が所属するゾーン以外の他のゾーンを管理する少なくとも１以上のゾーン管理ノード装置に、当該他のゾーンへ前記共用情報の複製の開始を指示する複製開始情報を送信する複製開始情報送信手段と、
前記ゾーン管理ノード装置から前記共用情報を複製して記憶すべき複製用ノード装置を示す複製用ノード情報を受信すると、当該複製用ノード装置に前記共用情報を記憶する情報記憶ノード装置の宛先情報を送信して複製指示する複製指示手段と、
を有し、
前記ゾーン管理ノード装置は、
前記共用情報管理ノード装置から複製開始情報を受信すると、当該ゾーン管理ノード装置が管理するゾーンに所属するノード装置から前記複製用ノード装置を選定する複製用ノード装置選定手段と、
前記選定した複製用ノード装置を示す前記複製用ノード情報を前記共用情報管理ノード装置に送信する複製用ノード情報送信手段と、を有し、
前記複製用ノード装置は、前記共用情報管理ノード装置から前記情報記憶ノード装置の宛先情報を受信して前記共用情報の複製が指示されると、前記情報記憶ノード装置に前記共用情報の複製を要求して、当該情報記憶ノード装置から前記共用情報を取得する共用情報取得手段を有し、
前記情報記憶ノード装置は、少なくとも１以上の前記複製用ノード装置から前記共用情報の複製の要求を受けると、前記共用情報を要求元の前記複製用ノード装置に送信する共用情報送信手段を有することを特徴とする情報通信システム。
【請求項１２】
請求項８乃至請求項１１のいずれか一項に記載の情報通信システムにおいて、
前記通信負荷は、前記通信経路上にある中継装置の数、または一定期間の通信応答時間の統計値に基づいて定められることを特徴とする情報通信システム。
【請求項１３】
通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムに含まれ、前記複数のゾーンに含まれる初期ゾーンに所属し、当該初期ゾーンに所属するノード装置を管理する初期ゾーン管理ノード装置であって、
新たなノード装置から当該ノード装置を一意に識別するための固有の装置識別情報を受信して前記情報通信システムへの参加要求を受けると、前記装置識別情報に基づいて前記初期ゾーンに前記新たなノード装置を配置させる配置制御手段と、
前記初期ゾーンに所属する何れかのノード装置から前記初期ゾーンの離脱を示す離脱情報を受信すると、当該離脱情報の送信元のノード装置に新規ゾーンを示すゾーン情報を送信するゾーン情報送信手段と、
を有することを特徴とする初期ゾーン管理ノード装置。
【請求項１４】
通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムに参加を要求する新たなノード装置であって、
前記情報通信システムを構成するノード装置であり、前記情報通信システム参加時に最初に所属される初期ゾーンに所属し、当該初期ゾーンに所属するノード装置を管理する初期ゾーン管理ノード装置によって前記初期ゾーンに配置されると、当該初期ゾーンに所属する他のノード装置との間の前記通信経路における通信負荷に関する通信負荷情報を取得する通信負荷情報取得手段と、
前記取得した通信負荷情報にかかる通信負荷が所定範囲の場合には、前記初期ゾーン管理ノード装置に前記離脱情報を送信する離脱情報送信手段と、
前記初期ゾーン管理ノード装置から新規ゾーンを示すゾーン情報を受信すると、前記オーバレイネットワークに当該新たなノード装置自身と前記他のノード装置とが所属すべき新規ゾーンを、当該ゾーン情報に基づいて生成するゾーン生成手段と、
を有することを特徴とするノード装置。
【請求項１５】
請求項１４に記載のノード装置において、
前記通信負荷は、前記通信経路上にある中継装置の数、または一定期間の通信応答時間の統計値に基づいて定められることを特徴とするノード装置。
【請求項１６】
通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムに含まれ、前記複数のゾーンにおける１のゾーンに所属し、当該１のゾーンに所属するノード装置を管理するゾーン管理ノード装置であって、
他の前記ゾーンに所属するノード装置との間の前記通信経路における通信負荷に関する通信負荷情報を取得する通信負荷情報取得手段と、
前記取得した通信負荷情報にかかる通信負荷が所定範囲の場合には、前記１のゾーンに所属するノード装置に前記他のゾーンを示すゾーン情報を送信するゾーン情報送信手段と、
前記複数のゾーンのうち、前記１のゾーン及び前記他のゾーン以外の各ゾーンを管理する各ゾーン管理ノード装置に前記１のゾーンの消滅を示すゾーン消滅情報を送信する消滅情報送信手段と、
を有することを特徴とするゾーン管理ノード装置。
【請求項１７】
請求項１６に記載のゾーン管理ノード装置において、
前記複数のノード装置間で共用されるべき共用情報を管理する共用情報管理ノード装置から複製開始情報を受信すると、当該ゾーン管理ノード装置が管理するゾーンに所属するノード装置から前記共用情報を複製して記憶すべき複製用ノード装置を選定する複製用ノード装置選定手段と、
前記選定した複製用ノード装置を示す複製用ノード情報を前記共用情報管理ノード装置に送信する複製用ノード情報送信手段とを有することを特徴とするゾーン管理ノード装置。
【請求項１８】
請求項１６又は請求項１７に記載のゾーン管理ノード装置において、
前記通信負荷は、前記通信経路上にある中継装置の数、または一定期間の通信応答時間の統計値に基づいて定められることを特徴とするゾーン管理ノード装置。
【請求項１９】
通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムに含まれ、前記複数のノード装置間で共用されるべき共用情報を管理する共用情報管理ノード装置であって、
前記共用情報を記憶する情報記憶ノード装置が所属するゾーン以外の他のゾーンを管理する少なくとも１以上のゾーン管理ノード装置に、当該他のゾーンへ前記共用情報の複製の開始を指示する複製開始情報を送信する複製開始情報送信手段と、
前記ゾーン管理ノード装置から前記共用情報を複製して記憶すべき複製用ノード装置を示す複製用ノード情報を受信すると、当該複製用ノード装置に前記共用情報を記憶する情報記憶ノード装置の宛先情報を送信して複製指示する複製指示手段と、を有することを特徴とする共用情報管理ノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア（Peer to Peer（P2P））型のコンテンツ配信システムに関し、特に、１のノード装置から他のノード装置に配信されるべきコンテンツデータが複数のノード装置に分散して保存された情報通信システム、情報通信システムに含まれる初期ゾーン管理ノード装置等の技術分野に関する。
【背景技術】
【０００２】
この種のコンテンツ配信システムにおいては、各ノード装置は、複数のノード装置に分散保存されているコンテンツデータに関する所在情報（例えば、コンテンツデータのタイトル等の補助情報を指定することにより、コンテンツデータを保存しているノード装置のＩＰアドレス等が特定できる情報：以下ではインデックス情報と言う。）が記述されたリストを有しており、当該リストに記述されたインデックス情報に基づき、ユーザが所望するコンテンツデータをダウンロードすることが可能になっている。このようなリストは、複数のノード装置において共通に使用されるべき共用情報であり、一般に、コンテンツ配信システム上に保存されている全てのコンテンツデータを管理する管理サーバにより管理され、当該管理サーバから各ノード装置に対して上記リストが配信されることになる。
【０００３】
また、管理サーバを用いない方法として、分散ハッシュテーブル（ＤＨＴ（Distributed Hash Table））を利用して論理的に構築されたオーバレイネットワークでは、コンテンツの配信を希望するリクエストノードは、コンテンツ情報を管理するノード装置からコンテンツ情報を記憶するノード装置の所在を聞いて、当該ノード装置にアクセスするようになっている。このようなオーバレイネットワークにおいては、ノード装置の参加及び脱退（離脱）が頻繁に行われても、負荷分散が適切に行われる必要があり、非特許文献１には、オーバレイネットワークにおいて、参加及び脱退（離脱）が頻繁に行われる場合であっても、適切に負荷分散を行うための技術が開示されている。
【０００４】
図２９は、従来の分散ハッシュテーブルを利用して論理的に構築されたオーバレイネットワークによるコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【０００５】
図２９の下部枠１０１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。
【０００６】
コンテンツ配信システムＳは、このようなネットワーク８を介して相互に接続された複数のノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・には、ＩＰアドレス等の宛先情報や装置情報を含むノード装置を示す情報（ノード情報）が割り当てられている。なお、装置情報及びＩＰアドレスは、複数のノード装置１間で重複しないものである。
【０００７】
このようなコンテンツ配信システムＳにおいて、ノード装置１が、他のノード装置１が保持する情報にアクセスする際には、その情報を持つノード装置１の宛先情報としてのＩＰアドレスを知っていなければならない。そのためにはネットワーク８に参加している各ノード装置１が互いにネットワーク８に参加している全てのノード装置１のＩＰアドレスと各装置が持つ情報の索引を知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノード装置１のＩＰアドレスを覚えておくのは現実的ではない。また、任意のノード装置の電源がON或いはOFFとすると、各ノード装置１にて記憶している当該任意のノード装置のＩＰアドレスの更新が頻繁になり、運用上困難となる。
【０００８】
そこで、１台のノード装置１では、ネットワーク８に参加している全てのノード装置１のうち、必要最低限のノード装置１のＩＰアドレスだけを覚えて（記憶して）おいて、ＩＰアドレスを知らない（記憶していない）ノード装置１については、各ノード装置１間で互いに情報を転送し合って届けてもらうというシステムが考案されている。
【０００９】
これまで、このようなシステムの一例として分散ハッシュテーブルを利用したアルゴリズムによって、図２９の上部枠１００内に示すような、オーバレイネットワーク９を構築する技術が用いられている。つまり、このオーバレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【非特許文献１】「分散ハッシュテーブルの軽量な負荷分散手法の検討」  社団法人  電子情報通信学会  信学技報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、分散ハッシュテーブル（ＤＨＴ）を用いたコンテンツ配信システムは、ノード装置１が所望のコンテンツの配信を要求する場合、コンテンツを所定の規則でハッシュ化して得られたコンテンツＩＤに基づいて自分が知っているノード装置１に対してコンテンツ問い合わせ情報（以下、「コンテンツ問い合わせ情報」を「クエリ」と言う。）を送信することにより、当該クエリがオーバレイネットワーク９内のノード装置１間を転送していき、最終的には該当するコンテンツのコンテンツデータが何れのノード装置１に保存されているかを知っているノード装置１に辿り着き、このノード装置１からコンテンツデータを保存するノード装置１の場所を教えてもらってアクセスする、という構成となっている。
【００１１】
この際、コンテンツを所望しているノード装置１と、実際にコンテンツを保存しているノード装置１とのネットワーク的な距離が遠いこともある。すなわち、図２９に示すノード装置１ｅとノード装置１ｈは、上部枠１００に示すオーバレイネットワーク９（仮想的なリンク）においては隣りあっているかのように見えるが、現実のネットワーク８では、ノード装置１ｅとノード装置１ｈとがコンテンツの授受を行なう際には、図２９の下部枠１０１に示す如く、先ずノード装置１ｅからＦＦＴＨ回線強者６へ、その後ＩＳＰ４、ＩＸ３、ＩＳＰ４、ＤＳＬ回線業者５を介してノード装置１ｈに辿り着くこととなり、多数の中継装置を介さなければならず、ネットワーク８の通信負荷を増大させるという問題がある。
【００１２】
本発明は、以上の問題等に鑑みてなされたものであり、ノード装置間の通信経路における通信負荷を考慮してオーバレイネットワークを構築することにより、通信負荷を低減させることを可能とした情報通信システム、情報通信システムに含まれる初期ゾーン管理ノード装置等を提供することを課題とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムであって、１の前記ノード装置と他の前記ノード装置との間の前記通信経路における通信負荷が所定範囲の場合には、前記１のノード装置と前記他のノード装置とを、前記オーバレイネットワークにおいて同一のゾーンに所属するよう配置させることを特徴とする。
【００１４】
これによれば、実際の通信経路における通信負荷が所定範囲（すなわち通信負荷が小さい）のノード装置同士がオーバレイネットワーク上でも同一のゾーンに所属するよう前記ノード装置を配置させることが可能になるため、当該オーバレイネットワークを利用した情報通信が行われる際に比較的通信負荷の小さいノード装置同士で情報の授受を行うよう制御させることが可能になり、システム全体の通信負荷を低減させることにより、システム全体の運用効率を向上させることができる。
【００１５】
上記課題を解決するために、請求項２に記載の発明は、請求項１に記載の情報通信システムにおいて、新たなノード装置から前記情報通信システムへの参加要求がされると、前記新たなノード装置と、前記情報通信システム参加時に最初に所属される初期ゾーンに所属する前記ノード装置と、の間の前記通信経路における通信負荷が所定範囲の場合には、前記オーバレイネットワークに新たなゾーンを生成し、前記新たなノード装置と前記初期ゾーンに所属するノード装置とを前記生成した新たなゾーンに所属するよう配置させることを特徴とする。
【００１６】
これによれば、新たなノード装置が情報通信システムに参加する際に、新たなノード装置は、初期ゾーンに所属しているノード装置の中で当該新たなノード装置との通信経路にかかる通信負荷が所定範囲のノード装置と新たなゾーンを生成することが可能になる。
【００１７】
上記課題を解決するために、請求項３に記載の発明は、請求項１又は請求項２に記載の情報通信システムにおいて、前記複数のゾーンにおける１のゾーンに所属するノード装置と、前記複数のゾーンにおける他のゾーンに所属するノード装置と、の間の前記通信経路における通信負荷が所定範囲の場合には、前記１のゾーンと前記他のゾーンとを併合することを特徴とする。
【００１８】
これによれば、異なるゾーンに所属する２以上のノード装置間における通信経路にかかる通信負荷が所定範囲の場合には、ゾーンを併合することにより、各ノード装置間における通信経路の通信負荷に基づいて各ノード装置をオーバレイネットワーク上に最適配置させることが可能になる。
【００１９】
上記課題を解決するために、請求項１乃至請求項３のいずれか一項に記載の情報通信システムにおいて、前記１のノード装置が前記複数のノード装置間で共用されるべき共用情報を共用可能に保持する場合に、当該１のノード装置が所属するゾーンと異なるゾーンに所属するノード装置に対して前記共用情報を複製して共用可能に保持させることを特徴とする。
【００２０】
これによれば、あるノード装置が共用情報を共用可能に保持（公開）した場合に、前記各ゾーンに含まれるノード装置に当該共用情報を複製して共用可能に保持（公開）するノード装置（コンテンツノード）となるよう制御させることが可能になるため、当該共用情報の配信を所望するノード装置は、自身が所属するゾーンのノード装置であって、当該共用情報を共用可能に保持するノード装置から配信を受けることが可能になる。
【００２１】
上記課題を解決するために、請求項５に記載の発明は、請求項１乃至請求項４のいずれか一項に記載の情報通信システムにおいて、前記１のノード装置が前記複数のノード装置間で共用されるべき共用情報を共用可能に保持する場合に、前記他のノード装置から前記１のノード装置に対して前記共用情報の配信要求があった場合には、当該他のノード装置が所属するゾーンのゾーン要求数が所定範囲を超えた場合には、当該他のノード装置が所属するゾーンに所属する何れかの前記ノード装置に対して前記共用情報を複製して共用可能に保持させることを特徴とする。
【００２２】
これによれば、あるノード装置が共用情報を共用可能に保持（公開）した場合に、当該共用情報の配信を所望するノード装置が所属するゾーンが所定範囲を越えるゾーンに含まれるノード装置に当該共用情報を複製して共用可能に保持（公開）するノード装置（コンテンツノード）となるよう制御させることが可能になるため、人気の高い共用情報を自律的に各ゾーンに配置させることができ、システム全体の通信負荷を抑え、かつ共用情報の配信要求に迅速に応じることが可能になる。
【００２３】
上記課題を解決するために、請求項６に記載の発明は、請求項１乃至請求項５のいずれか一項に記載の情報通信システムにおいて、各前記ノード装置は、当該ノード装置が所属するゾーンを示すゾーン情報を含み、かつ前記複数のノード装置から当該ノード装置を一意に識別するための固有の装置識別情報を有し、前記各ノード装置をオーバレイネットワークに配置させる際には、当該各ノード装置が有する前記装置識別情報に含まれるゾーン情報に対応する何れかの前記ゾーンに配置させることを特徴とする。
【００２４】
これによれば、各ノード装置が有する固有の装置識別情報にゾーン情報を含ませることにより、当該装置識別情報に基づいて、オーバレイネットワーク上の空間上に当該各ノード装置を的確に配置させることが可能になるため、特別なゾーン配置制御を必要とせず、比較的容易にノード装置をオーバレイネットワーク上の各ゾーンに配置させることが可能になる。
【００２５】
上記課題を解決するために、請求項７に記載の発明は、請求項１乃至請求項６のいずれか一項に記載の情報通信システムにおいて、前記通信負荷は、前記通信経路上にある中継装置の数、または一定期間の通信応答時間の統計値に基づいて定められることを特徴とする情報通信システム。
【００２６】
これによれば、通信負荷が通信経路上にある中継装置の数、または一定期間の通信応答時間の統計値に基づいて定められることにより、より一層、前記ノード装置間のネットワーク的な接続距離に基づいて前記通信負荷を定めることが可能になり、システムの運用効率の向上を実現することができる。
【００２７】
上記課題を解決するために、請求項８に記載の発明は通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムであって、前記情報通信システムを構成するに含まれるノード装置であり、前記情報通信システム参加時に最初に所属される初期ゾーンに所属し、当該初期ゾーンに所属するノード装置を管理する初期ゾーン管理ノード装置は、新たなノード装置から当該ノード装置を一意に識別するための固有の装置識別情報を受信して前記情報通信システムへの参加要求を受けると、前記装置識別情報に基づいて前記初期ゾーンに前記新たなノード装置を配置させる配置制御手段と、前記初期ゾーンに所属する何れかのノード装置から前記初期ゾーンの離脱を示す離脱情報を受信すると、当該離脱情報の送信元のノード装置に新規ゾーンを示すゾーン情報を送信するゾーン情報送信手段と、を有し、前記新たなノード装置は、前記初期ゾーン管理ノード装置の前記配置制御手段によって前記初期ゾーンに配置されると、前記初期ゾーンに所属する他のノード装置との間の前記通信経路における通信負荷に関する通信負荷情報を取得する通信負荷情報取得手段と、前記取得した通信負荷情報にかかる通信負荷が所定範囲の場合には、前記初期ゾーン管理ノード装置に前記離脱情報を送信する離脱情報送信手段と、前記初期ゾーン管理ノード装置から前記ゾーン情報を受信すると、前記オーバレイネットワークに当該新たなノード装置自身と前記他のノード装置とが所属すべき新規ゾーンを、当該ゾーン情報に基づいて生成するゾーン生成手段と、を有することを特徴とする。
【００２８】
上記課題を解決するために、請求項９に記載の発明は請求項８に記載の情報通信システムにおいて、前記情報通信システムを構成するノード装置であり、前記複数のゾーンにおける１のゾーンに所属し、当該１のゾーンに所属するノード装置を管理するゾーン管理ノード装置は、他の前記ゾーンに所属するノード装置との間の前記通信経路における通信負荷に関する通信負荷情報を取得する通信負荷情報取得手段と、前記取得した通信負荷情報にかかる通信負荷が所定範囲の場合には、前記１のゾーンに所属するノード装置に前記他のゾーンを示すゾーン情報を送信するゾーン情報送信手段と、前記複数のゾーンのうち、前記１のゾーン及び前記他のゾーン以外の各ゾーンを管理する各ゾーン管理ノード装置に前記１のゾーンの消滅を示すゾーン消滅情報を送信する消滅情報送信手段と、を有し、前記１のゾーンに所属するノード装置は、前記複数のノード装置から当該ノード装置を一意に識別するための固有の装置識別情報を有し、前記ゾーン管理ノード装置から前記ゾーン情報を受信すると、当該ゾーン情報に基づいて前記装置識別情報を変更する識別情報変更手段と、を有することを特徴とする。
【００２９】
上記課題を解決するために、請求項１０に記載の発明は請求項９に記載の情報通信システムにおいて、前記複数のゾーンにおける１のゾーンに所属し、当該１のゾーンのゾーン管理ノード装置でない１のノード装置は、前記他のゾーンに所属するノード装置との間の前記通信経路における通信負荷に関する通信負荷情報を取得する通信負荷情報取得手段と、前記取得した通信負荷情報にかかる通信負荷が所定範囲の場合には、前記ゾーン管理ノード装置に前記他のゾーンを示すゾーン情報を送信するゾーン情報送信手段と、前記他のゾーンを示すゾーン情報に基づいて、当該１のノード装置自身の前記装置識別情報を変更する識別情報変更手段と、を有することを特徴とする。
【００３０】
上記課題を解決するために、請求項１１に記載の発明は請求項８乃至請求項１０の何れか一項に記載の情報通信システムにおいて、前記複数のノード装置におけるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を管理する共用情報管理ノード装置は、前記共用情報を記憶する情報記憶ノード装置が所属するゾーン以外の他のゾーンを管理する少なくとも１以上のゾーン管理ノード装置に、当該他のゾーンへ前記共用情報の複製の開始を指示する複製開始情報を送信する複製開始情報送信手段と、前記ゾーン管理ノード装置から前記共用情報を複製して記憶すべき複製用ノード装置を示す複製用ノード情報を受信すると、当該複製用ノード装置に前記共用情報を記憶する情報記憶ノード装置の宛先情報を送信して複製指示する複製指示手段と、を有し、前記ゾーン管理ノード装置は、前記共用情報管理ノード装置から複製開始情報を受信すると、当該ゾーン管理ノード装置が管理するゾーンに所属するノード装置から前記複製用ノード装置を選定する複製用ノード装置選定手段と、前記選定した複製用ノード装置を示す前記複製用ノード情報を前記共用情報管理ノード装置に送信する複製用ノード情報送信手段と、を有し、前記複製用ノード装置は、前記共用情報管理ノード装置から前記情報記憶ノード装置の宛先情報を受信して前記共用情報の複製が指示されると、前記情報記憶ノード装置に前記共用情報の複製を要求して、当該情報記憶ノード装置から前記共用情報を取得する共用情報取得手段を有し、前記情報記憶ノード装置は、少なくとも１以上の前記複製用ノード装置から前記共用情報の複製の要求を受けると、前記共用情報を要求元の前記複製用ノード装置に送信する共用情報送信手段を有することを特徴とする。
【００３１】
上記課題を解決するために、請求項１２に記載の発明は請求項８乃至請求項１１のいずれか一項に記載の情報通信システムにおいて、前記通信負荷は、前記通信経路上にある中継装置の数、または一定期間の通信応答時間の統計値に基づいて定められることを特徴とする。
【００３２】
上記課題を解決するために、請求項１３に記載の発明は通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムに含まれ、前記複数のゾーンに含まれる初期ゾーンに所属し、当該初期ゾーンに所属するノード装置を管理する初期ゾーン管理ノード装置であって、新たなノード装置から当該ノード装置を一意に識別するための固有の装置識別情報を受信して前記情報通信システムへの参加要求を受けると、前記装置識別情報に基づいて前記初期ゾーンに前記新たなノード装置を配置させる配置制御手段と、前記初期ゾーンに所属する何れかのノード装置から前記初期ゾーンの離脱を示す離脱情報を受信すると、当該離脱情報の送信元のノード装置に新規ゾーンを示すゾーン情報を送信するゾーン情報送信手段と、を有することを特徴とする。
【００３３】
上記課題を解決するために、請求項１４に記載の発明は通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムに参加を要求する新たなノード装置であって、前記情報通信システムを構成するノード装置であり、前記情報通信システム参加時に最初に所属される初期ゾーンに所属し、当該初期ゾーンに所属するノード装置を管理する初期ゾーン管理ノード装置によって前記初期ゾーンに配置されると、当該初期ゾーンに所属する他のノード装置との間の前記通信経路における通信負荷に関する通信負荷情報を取得する通信負荷情報取得手段と、前記取得した通信負荷情報にかかる通信負荷が所定範囲の場合には、前記初期ゾーン管理ノード装置に前記離脱情報を送信する離脱情報送信手段と、前記初期ゾーン管理ノード装置から新規ゾーンを示すゾーン情報を受信すると、前記オーバレイネットワークに当該新たなノード装置自身と前記他のノード装置とが所属すべき新規ゾーンを、当該ゾーン情報に基づいて生成するゾーン生成手段と、を有することを特徴とする。
【００３４】
上記課題を解決するために、請求項１５に記載の発明は請求項１４に記載のノード装置において、前記通信負荷は、前記通信経路上にある中継装置の数、または一定期間の通信応答時間の統計値に基づいて定められることを特徴とする。
【００３５】
上記課題を解決するために、請求項１６に記載の発明は通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムに含まれ、前記複数のゾーンにおける１のゾーンに所属し、当該１のゾーンに所属するノード装置を管理するゾーン管理ノード装置であって、他の前記ゾーンに所属するノード装置との間の前記通信経路における通信負荷に関する通信負荷情報を取得する通信負荷情報取得手段と、前記取得した通信負荷情報にかかる通信負荷が所定範囲の場合には、前記１のゾーンに所属するノード装置に前記他のゾーンを示すゾーン情報を送信するゾーン情報送信手段と、前記複数のゾーンのうち、前記１のゾーン及び前記他のゾーン以外の各ゾーンを管理する各ゾーン管理ノード装置に前記１のゾーンの消滅を示すゾーン消滅情報を送信する消滅情報送信手段と、を有することを特徴とする。
【００３６】
上記課題を解決するために、請求項１７に記載の発明は請求項１６に記載のゾーン管理ノード装置において、前記複数のノード装置間で共用されるべき共用情報を管理する共用情報管理ノード装置から複製開始情報を受信すると、当該ゾーン管理ノード装置が管理するゾーンに所属するノード装置から前記共用情報を複製して記憶すべき複製用ノード装置を選定する複製用ノード装置選定手段と、前記選定した複製用ノード装置を示す複製用ノード情報を前記共用情報管理ノード装置に送信する複製用ノード情報送信手段とを有することを特徴とする。
【００３７】
上記課題を解決するために、請求項１８に記載の発明は請求項１６又は請求項１７に記載のゾーン管理ノード装置において、前記通信負荷は、前記通信経路上にある中継装置の数、または一定期間の通信応答時間の統計値に基づいて定められることを特徴とする。
【００３８】
上記課題を解決するために、請求項１９に記載の発明は通信経路を介して互いに接続された複数のノード装置の参加により形成されたオーバレイネットワークであって当該オーバレイネットワークが複数のゾーンを有するよう形成された情報通信システムに含まれ、前記複数のノード装置間で共用されるべき共用情報を管理する共用情報管理ノード装置であって、前記共用情報を記憶する情報記憶ノード装置が所属するゾーン以外の他のゾーンを管理する少なくとも１以上のゾーン管理ノード装置に、当該他のゾーンへ前記共用情報の複製の開始を指示する複製開始情報を送信する複製開始情報送信手段と、前記ゾーン管理ノード装置から前記共用情報を複製して記憶すべき複製用ノード装置を示す複製用ノード情報を受信すると、当該複製用ノード装置に前記共用情報を記憶する情報記憶ノード装置の宛先情報を送信して複製指示する複製指示手段と、を有することを特徴とする。
【発明の効果】
【００３９】
本発明によれば、実際の通信経路における通信負荷が小さいノード装置同士がオーバレイネットワーク上でも同一のゾーンに所属するようそれぞれのノード装置を配置させることが可能になるため、当該オーバレイネットワークを利用した情報通信が行われる際に比較的通信負荷の小さいノード装置同士で情報の授受を行うよう制御させることが可能になり、システム全体の通信負荷を低減させることにより、システム全体の運用効率を向上させることができる。
【発明を実施するための最良の形態】
【００４０】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００４１】
［１．コンテンツ配信システムの構成等］
始めに、図１を参照して、情報通信システムとしてのコンテンツ配信システムの概要構成等について説明する。
【００４２】
図１は、本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【００４３】
図１の下部枠１０１内に示すように、中継装置としてのＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５ａ及び５ｂ、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。なお、各ノード装置１及び中継装置は背景技術と同じ部材であるため、背景技術と同一の構成に関しては詳細な説明は省略する。
【００４４】
コンテンツ配信システムＳは、ＤＳＬ回線業者５ａを介してネットワーク８に接続されている複数のノード装置１をゾーン１に存在するノード装置とし、ＦＴＴＨ回線業者６を介してネットワーク８に接続されている複数のノード装置１をゾーン２に存在するノード装置とし、ＤＳＬ回線業者５ｂを介してネットワーク８に接続されている複数のノード装置１をゾーン３に存在するノード装置とする。
【００４５】
デフォルトゾーンは、コンテンツ配信システムＳに新たに参加したノード装置が最初に所属するオーバレイネットワーク９上の初期ゾーンである。尚、デフォルトゾーンについては後に詳述する。
【００４６】
そして、このようなネットワーク８を介して相互に接続された各ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・には、ＩＰ（Internet Protocol）アドレス等の宛先情報を含むノード装置を示す情報（ノード情報）が割り当てられており、更に各ノード装置を特定するための固有の値としてのノードＩＤ（ＩＤentifier）（装置識別情報）が割り当てられている。これらＩＰアドレス及びノードＩＤは複数のノード装置間で重複しないものである。なお、以下の説明において、ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置１という場合がある。
【００４７】
コンテンツ配信システムＳにおいて、当該ノード装置１が、他のノード装置１の持つ情報にアクセスする際には、その情報を持つノード装置１のＩＰアドレス等の宛先情報を知っていなければならない。
【００４８】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図１の上部枠１００内に示すような、オーバレイネットワーク９が構築されることになる。つまり、このオーバレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【００４９】
装置識別情報としてのノードＩＤは、各ノード装置を一意に識別することができるものであればよく、例えば、工場出荷時に予め割り振られる製造番号やマシン名等を利用することが可能である。より具体的には、情報通信システムとしてのコンテンツ配信システムＳへの参加時に最初に所属されるオーバレイネットワーク９のデフォルトゾーン（初期ゾーン）を示すゾーン情報としてのゾーンＩＤと、製造番号やマシン名等を共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して得たハッシュ値をＧＵＩＤ（Global Unique ＩＤentifier）として用い、これらを組み合わせて、ノードＩＤ［ゾーンＩＤ-ＧＵＩＤ］として各ノード装置１に用いることが可能である。そして、各ノード装置１が、後に詳述する[４．新規ゾーン生成処理動作]に基づいてデフォルトゾーンから新規ゾーンに配置される際には配置後のゾーンに対応するゾーンＩＤを用いて自己のノードＩＤを更新する。
【００５０】
またノードＩＤは、ノード装置の最大運用台数を収容できるだけのｂｉｔ数を持たせる必要がある。例えば、１２８ｂｉｔの番号とすれば、2＾128≒340×10＾36台のノード装置を運用できる。実際には既知のハッシュ関数であるＳＨＡ−１（Secure Hash Algorithm 1）（生成桁数１６０bit）やMD５（Message Digest 5）（生成桁数１２０Bit）を用いることが想定されるため、例えばMD5を使用した場合には、［ゾーンＩＤ（１２０Bit）―ＧＵＩＤ（１２０Bit）］を用いることとなる。また、上位又は下位のbitをマスクして例えば［ゾーンＩＤ（２０Bit）―ＧＵＩＤ（１００Bit）］として使用することも可能であるが、ノードＩＤの一意性確保の観点からすると、ハッシュ関数の仕様にあわせた長さの数列を使用するほうがよい。
【００５１】
以下にMD5を使用して取得したノードＩＤの一例を示す。
【００５２】
まず、ＧＵＩＤをマシン名から生成する場合には、
ＧＵＩＤ＝md5(“client00070512.beacon.net”)＝43ecabd445852e6eeaf684d103009d69
が得られ、ＧＵＩＤをグローバルＩＰアドレスから生成する場合には、
ＧＵＩＤ＝md5(“123.210.123.210”) ＝ 7bbbefcf537806afa2ae4f423d5d3d90
が得られる。
【００５３】
そして、ゾーン情報としてのゾーンＩＤを後に詳述するゾーン生成処理にてゾーンが誕生した日時(フォーマット付文字列)から生成する場合には、
ゾーンＩＤ＝md5(“2005年1月1日（土）22時15分30.000秒”) ＝0df71b25c05e1b2b4f2142237eee3184
が得られ、ゾーンＩＤをゾーンが誕生した日時(UTC（Coordinated Universal Time）)から生成する場合には、
ゾーンＩＤ＝md5(“1105683227”) ＝ fde4e1570c0d90549cf813e351a4885c
が得られる。
【００５４】
そして、これらを組み合わせて［ゾーンＩＤ-ＧＵＩＤ］として装置識別情報としてのノードＩＤを取得することにより、各ノード装置１の所属するゾーンを特定しつつ、各ノード装置を一意に識別することが可能になる。
【００５５】
このように本実施形態ではノードＩＤをゾーンＩＤを含めて生成するよう構成したので、各ノード装置１のノードＩＤが一つのＩＤ空間において、同一ゾーンに所属するノード装置１同士が集まりつつ、かつ、一つのゾーン内では偏りなく分散して配置されることになる。
【００５６】
［１−１．ＤＨＴの概要］
以下に、本実施形態に係る分散ハッシュテーブル（以下、ＤＨＴ（Distributed Hash Table）という）を利用したアルゴリズムについて説明する。
【００５７】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバレイネットワーク９を前提としており、このオーバレイネットワーク９上に配置されたノード装置１を、コンテンツ配信システムＳに参加（言い換えれば、オーバレイネットワーク９に参加）しているノード装置１という。なお、コンテンツ配信システムＳへの参加は、未だ参加していないノード装置が、デフォルトゾーンのノード装置１ｚに対して参加要求を送ることによって行われる。なお、以下の説明においてこのノード装置１ｚを初期ゾーン管理ノード装置としてのデフォルトゾーンルートノードＺＲｄと言う。
【００５８】
また、コンテンツ配信システムＳに参加している複数のノード装置１には、１のノード装置１から他のノード装置1に配信される共用情報としてのコンテンツ（例えば、映画や音楽等）データが分散して保存（格納）されているが、当該コンテンツデータにも、それぞれのコンテンツデータ毎にユニーク（固有）な番号（以下、コンテンツＩＤという。）を付与する。
【００５９】
そして、当該コンテンツＩＤは、ノードＩＤと同様の長さ（例えば、１２８ｂｉｔ等）とし、コンテンツを保存するノード装置１の所属するゾーンＩＤと、例えば、コンテンツの名称（コンテンツタイトル）やコンテンツの概要情報（あらすじ）等のキーワードが、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化され（つまり、ノード装置１のＩＰアドレスのハッシュ値と同一のＩＤ空間に配置）て得られたハッシュ値をコンテンツＧＵＩＤとして用い、これらを組み合わせて、コンテンツＩＤ［ゾーンＩＤ―コンテンツＧＵＩＤ］として各コンテンツに用いることが可能である。そしてコンテンツＩＤと最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノード装置１が、当該コンテンツデータを保存するノード装置の所在情報を管理する。
【００６０】
これにより、コンテンツデータを偏りなくコンテンツ配信システムＳ上に分散させることが可能となる。なお、異なるコンテンツデータであっても、同一のキーワード（例えば、コンテンツの名称）になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツの名称と著作権情報（例えば、出演者名、監督名、原作者名、歌手名、作曲者名、又は作詞者名等）の組合せとすればよい。
【００６１】
このように、各ノード装置１及び各コンテンツデータに付与されたノードＩＤ及びコンテンツＩＤは、共通のハッシュ関数によって生成したため、図２に示す如く、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は３２ｂｉｔでノードＩＤ及びコンテンツＩＤを付与し、図示したものである。図中黒点はノードＩＤを、黒ひし形はコンテンツＩＤを示し、反時計回りでＩＤが増加するものとする。
【００６２】
次に、どのノード装置１に、どのコンテンツデータが保存されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツＩＤを有するコンテンツデータを管理するノード装置は、そのコンテンツＩＤに近いノードＩＤを有するノード装置１である」という規則とする。ここで、「近い」ことの定義は、当該コンテンツＩＤを超えず、コンテンツＩＤとノードＩＤとの差が一番少ないものとするが、実際には、各コンテンツデータの管理を各ノード装置１に割り振る際に、一貫していればよい。同図に示す例では、この定義に基づいて、コンテンツＩＤａは、ノードＩＤａを有するノード装置に管理され、コンテンツＩＤｂは、ノードＩＤｂを有するノード装置に管理され、コンテンツＩＤｃは、ノードＩＤｃを有するノード装置１に管理される。なお、あるノード装置は複数の異なるコンテンツデータを管理することもある。
【００６３】
なお、ここで「管理」というのは、コンテンツデータを保存／保持していることを意味するのではなく、「コンテンツデータが何れのノード装置１に保存されているかを知っている」ことを言う。すなわち、図２において、ノードＩＤａを有するノード装置１は、コンテンツＩＤａを有するコンテンツデータが何れのノード装置１に保存されているかを知っており、ノードＩＤｂを有するノード装置１及びノードＩＤｃを有するノード装置１も同様にそれぞれコンテンツＩＤｂを有するコンテンツデータ及びコンテンツＩＤｃを有するコンテンツデータが何れのノード装置１に保存されているかを知っている、ということになる。このように、あるコンテンツデータが何れのノード装置１に保存されているかを知っているノード装置を、そのコンテンツデータのコンテンツルートノードＣＲ（共用情報管理ノード装置）と言う。つまり、ノードＩＤａを有するノード装置１は、コンテンツＩＤａを有するコンテンツデータのコンテンツルートノードＣＲであって、ノードＩＤｂを有するノード装置１は、コンテンツＩＤｂを有するコンテンツデータのコンテンツルートノードＣＲであって、ノードＩＤｃを有するノード装置１は、コンテンツＩＤｃを有するコンテンツデータのコンテンツルートノードＣＲである。
【００６４】
また、「あるコンテンツＩＤを有するコンテンツデータを管理するノード装置は、そのコンテンツＩＤに近いノードＩＤを有するノード装置１である」という規則の下にコンテンツデータとコンテンツルートノードＣＲの対が作成された場合であっても、あるコンテンツデータのコンテンツルートノードＣＲが突然機能停止したり、或いはコンテンツデータが保存されているノード装置（以下、単に「コンテンツノード」という。）にて当該コンテンツデータが消滅してしまう場合が考えられる。このような場合であっても、コンテンツルートノードＣＲが、コンテンツデータの生存を確認し、自己のインデックス情報等を更新しない限り、コンテンツルートノードＣＲの管理するコンテンツデータの情報はいつまでも残ることになる。そして、当該コンテンツデータが一旦は消滅したものの、再度同一コンテンツデータを登録する際には、改めて上記規則の下に再度コンテンツルートノードＣＲが選び出されることとなり、新しいノード装置の参加等によって以前のコンテンツルートノードＣＲとは異なるノード装置が新しいコンテンツルートノードＣＲとして選び出されることもありうる。
【００６５】
従って、コンテンツ配信システムＳが何百台何千台・・・と膨大なネットワークを構築していくに従って、ノード装置のコンテンツ配信システムＳからの脱退（ノード装置の電源断や故障、或いはネットワークの部分的な切断等による）及び参加が行なわれる頻度が高く、しかも、コンテンツデータのノード装置への新たな保存又は消去が行なわれる頻度が高くなるため、あるコンテンツデータの保存元であるコンテンツノードを知っているノード装置は１つではなく、現実的には多数のノード装置が存在することとなる。
【００６６】
また、あるコンテンツデータを保持するノード装置（コンテンツノード）は１台とは限らない。多数のノード装置が同一のコンテンツを保持してコンテンツ配信システムＳにそれぞれ参加する場合がある。このような場合も、各ノード装置が当該コンテンツ配信システムＳに参加するタイミングや、後に詳述するコンテンツ複製処理によるコンテンツ複製時の状況下によってコンテンツルートノードＣＲとなるべきノード装置が別々に決定されることもあるため、結果としてあるノード装置が同一のコンテンツデータを保持しているノード装置（コンテンツノード）を２つ以上知っている場合もある。
【００６７】
［１−２．ルーティングテーブルの作成］
ここで、図３を参照して、ＤＨＴで用いるルーティングテーブルの作成手法の一例について説明する。本実施形態においては、複数のノード装置１がコンテンツ配信システムＳに参加している状態において、あるノード装置１が後に詳述するゾーン生成処理において新たにゾーンを生成する際や、自己が所属するゾーンが他のゾーンと併合した際に、それまで所有していたルーティングテーブルを更新する際に使用する手法である。
【００６８】
図３は、ＤＨＴにおけるルーティングテーブルの構成の一例を示す図である。
【００６９】
まず、図３（Ａ）に示す如く、ＩＤ空間を幾つかのエリアに分割する。なお、このエリアはＩＤ空間上に複数設けられたゾーンとは異なるものでありルーティングテーブルを作成するためにＩＤ空間を分割したものであって、実際には、１６分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長１６Ｂｉｔの４進数で表すこととした。そして、ノード装置１ＮのノードＩＤを「10230210」とし、このノード装置１Ｎのルーティングテーブルを作る例について説明する。
【００７０】
（レベル１のルーティング）
まず、ＩＤ空間を４分割とすると、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「0XXXXXXX」「1XXXXXXX」、「2XXXXXXX」、「3XXXXXXX」（Xは０から３の自然数、以下同様。）で分けられる。ノード装置１Ｎは、当該ノード装置１Ｎ自身のノードＩＤが「10230210」であるため、図中左下「1XXXXXXX」のエリアに存在することになる。そして、ノード装置１Ｎは、自分の存在するエリア（すなわち、「1XXXXXXX」のエリア）以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図４（Ａ）がレベル１のテーブルの一例である。２列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無い。
【００７１】
（レベル２のルーティング）
次に、図３（Ｂ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「10XXXXXX」「11XXXXXX」、「12XXXXXX」、「13XXXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル２のテーブルに記憶する。図４（Ｂ）がレベル２のテーブルの一例である。１列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無い。
【００７２】
（レベル３のルーティング）
さらに、図３（Ｃ）に示す如く、上記ルーティングによって４分割したエリアのうち、自分の存在するエリアを更に４分割し、更に４つのエリア「100XXXXX」「101XXXXX」、「102XXXXX」、「103XXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図４（Ｃ）がレベル３のテーブルの一例である。３列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無く、２列目、４列目はそのエリアにノード装置が存在しないため空白となる。
【００７３】
このようにして、レベル４以下レベル８まで同様にルーティングテーブル図４（Ｄ）に示す如く作成することにより、１６ｂｉｔのＩＤ全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【００７４】
実際に、上述したような構成になるようにテーブルを作るには、まず、コンテンツ配信システムＳに参加する際に、接続したノード装置からルーティングテーブルをコピーさせてもらう。また、メッセージの転送などの際に、他のノード装置１の存在を知ったタイミングで、その装置のノードＩＤがテーブルのどのマス目に適合するかを判断して、各テーブルの内容を追記していく。また、他のノード装置が脱退したことを知ったタイミングで、当該装置のノードＩＤをテーブルから削除する。
【００７５】
以上説明した手法に従って、ノード装置１が使用するルーティングテーブルは作成、および更新されていく。
【００７６】
［２．ノード装置の構成等］
次に、ノード装置１の構成及び機能について説明する。尚、各ノード装置１は、それぞれが行う処理によって、各ゾーンを管理するゾーン管理ノード装置としてのゾーンルートノードＺＲ、リクエストノードや経路上の端末からクエリを受信する共用情報管理ノード装置としてのコンテンツルートノードＣＲ、リクエストノードによって問い合わせの対象とされている共用情報としてのコンテンツを保持する情報記憶ノード装置としてのコンテンツノードとして作用するが、その構成は同じである。
【００７７】
図５は、ノード装置１の概要構成例を示す図である。
【００７８】
各ノード装置１は、図５に示すように、演算機能を有するＣＰＵ，作業用ＲＡＭ，各種データ及びプログラムを記憶するＲＯＭ等から構成されたコンピュータとしての制御部１１と、上記コンテンツデータ、上記インデックス情報、上記ＤＨＴ及びプログラム等を記憶保存（格納）するためのＨＤＤ等から構成された記憶手段としての記憶部１２（上記コンテンツデータは、保存されていないノード装置１もある）と、受信されたコンテンツデータを一時蓄積するバッファメモリ１３と、コンテンツデータに含まれるエンコードされたビデオデータ（映像情報）及びオーディオデータ（音声情報）等をデコード（データ伸張や復号化等）するデコーダ部１４と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部１５と、当該映像処理部１５から出力されたビデオ信号に基づき映像表示するＣＲＴ，液晶ディスプレイ等の表示部１６と、上記デコードされたオーディオデータをアナログオーディオ信号にＤ（Digital）／Ａ（Analog）変換した後これをアンプにより増幅して出力する音声処理部１７と、当該音声処理部１７から出力されたオーディオ信号を音波として出力するスピーカ１８と、ネットワーク８を通じて他のノード装置１との間の情報の通信制御を行うための通信部２０と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部１１に対して与える入力部（例えば、キーボード、マウス、或いは、操作パネル等）２１と、を備えて構成され、制御部１１、記憶部１２、バッファメモリ１３、デコーダ部１４、及び通信部２０はバス２２を介して相互に接続されている。
【００７９】
図６に記憶部１２に記憶されるインデックス情報の一例を示す。インデックス情報には、自己が管理する情報記憶ノード装置としてのコンテンツノードのノード情報（ＩＰアドレス等の宛先情報を含む）を記憶している。そして、後述する[６−１−２．コンテンツデータの検索方法]に従ってコンテンツの所在情報を要求するクエリを受信した際に、当該インデックス情報を参照して該当するコンテンツを検索することになる。
【００８０】
また、記憶部１２にはコンテンツ配信システムＳ（オーバレイネットワーク９）に参加する際に最初にアクセスするデフォルトゾーンルートノードＺＲｄ（初期ゾーン管理ノード装置）のＩＰアドレス等の宛先情報が記憶されている。
【００８１】
さらに、自己のノードＩＤとしてコンテンツ配信システムＳ（オーバレイネットワーク９）に参加する際に最初に所属するデフォルトゾーンＩＤ「0000」と工場出荷時の製造番号をハッシュ化して得たＧＵＩＤ「XXXX」（Xは自然数であって、各ノード装置毎に固有の値である。）とを組み合わせたノードＩＤ［0000-XXXX］を有するものとする。
【００８２】
そして、制御部１１におけるＣＰＵが記憶部１２等に記憶された各種プログラムを実行することにより、本願における初期ゾーン管理ノード装置、又はゾーン管理ノード装置、又は共用情報管理ノード装置、情報記憶ノード装置としてノード装置１全体を統括制御するようになっている。
【００８３】
[３．コンテンツ配信システムＳへの参加処理動作]
次に、コンテンツ配信システムＳへの参加処理動作について説明する。
【００８４】
[３−１．コンテンツ配信システムＳへ参加する際のノード装置の処理]
先ず、図７乃至図９を用いてノード装置１がコンテンツ配信システムＳへ参加する際のノード装置１の処理について説明する。
【００８５】
図７は、ノード装置１の制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【００８６】
まず、ユーザが入力部２１を操作するなどして、コンテンツ配信システムＳへの参加が指示されると、デフォルトゾーンルートノードＺＲｄに自己のＧＵＩＤを送信して参加要求を送信する（ステップＳ１）。その後、デフォルトゾーンルートノードＺＲｄから近隣装置のＩＰアドレス等の宛先情報を受信すると（ステップＳ２）、当該宛先情報に基づいて近隣装置と接続してルーティングテーブルを取得する（ステップＳ３）。
【００８７】
図９に示すノード装置１がコンテンツ配信システムＳに参加する様子の一例を用いてより具体的に説明する。コンテンツ配信システムＳへの参加を所望するノード装置１は、最初にデフォルトゾーンに所属することになるが、デフォルトゾーンルートノードＺＲｄにアクセスしてコンテンツ配信システムＳへの参加を要求することにより、同図に示す如くＩＤ空間上ノードＩＤに対応する個所に配置される。例えば、先にＧＵＩＤが「０００１」のノードＩＤ［0000-0001］のノード装置１がコンテンツ配信システムＳへ参加しており、後からＧＵＩＤが「０００３」のノードＩＤ［0000-0003］のノード装置１が加わった場合には、デフォルトゾーンルートノードＺＲｄは、ノードＩＤ［0000-0003］のノード装置１に対してノードＩＤ［0000-0001］のノード装置１のＩＰアドレス等の宛先情報を送信する。そして、ノードＩＤ［0000-0003］のノード装置１は当該宛先情報に基づいてノード装置（ノードＩＤ［0000-0001］）にアクセスして、ノードＩＤ［0000-0001］のノード装置１が有するルーティングテーブルを複製して取得する。なお、同図に示す状況下では、ノードＩＤ［0000-0001］のノード装置１が所有するルーティングテーブルには、フォルトゾーンルートノードＺＲｄのノードＩＤ[0000-0000]しか記載されていないため、このルーティングテーブルを複製した後にノードＩＤ［0000-0001］のノード装置１のノードＩＤを記載して取得することになる。
【００８８】
次に、制御部１１が通信負荷情報取得手段として機能し、接続した近隣装置とのネットワーク距離を計測し（ステップＳ４）、所定範囲と比較してネットワーク距離が近いか否かを判定する（ステップＳ５）。
【００８９】
より具体的には、近隣装置との通信における中継装置を中継した回数を反映するホップ数（ＩＰパケット中のＴＴＬフィールドの減少量等から知る）や、一定期間の通信応答時間の統計値を、通信負荷を示す通信通信負荷情報として取得する。そして取得した通信負荷情報が予め定めた所定範囲（例えばホップ数が「２」など。）より大きい場合にはネットワーク距離が遠い（通信負荷が大きい）と判定し、所定範囲であれば近い（通信負荷が小さい）と判定する。
【００９０】
そしてネットワーク距離が遠い（通信負荷が大きい）と判定された場合（ステップＳ５：Ｎｏ）には、処理を終了し、他方、ネットワーク距離が近い（通信負荷が小さい）と判定された場合（ステップＳ５：Ｙｅｓ）には、新規ゾーン処理ルーチンに移行（ステップＳ６）して、ルーチン終了後に処理を終了する。
【００９１】
[３−２．ノード装置がコンテンツ配信システムＳへ参加する際のデフォルトゾーンルートノードの処理]
次に、図８乃至図１０を用いてノード装置がコンテンツ配信システムＳへ参加する際のデフォルトゾーンルートノードの処理について説明する。
【００９２】
図８は、デフォルトゾーンルートノードＺＲｄの制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【００９３】
この処理は、参加を所望するノード装置１から参加要求を受信することにより開始され、制御部１１が配置制御手段として機能する。
【００９４】
まず、デフォルトゾーンルートノードＺＲｄは参加要求を受信すると記憶部１２に記憶した所属ノードテーブルを参照して、参加要求の送信元ノード装置が接続するべき近隣装置の宛先情報を取得する（ステップＳ７）。
【００９５】
ノードＩＤ［0000-0003］のノード装置１がコンテンツ配信システムＳに参加する際に、デフォルトゾーンルートノードＺＲｄの記憶部１２に記憶された所属ノードテーブルの図１０（Ａ）の一例を示す。同図に示す如く、デフォルトゾーンルートノードＺＲｄは、自己が管理するゾーンに所属している全てのノード装置１のノード情報（ノードＩＤ、ＩＰアドレス（宛先情報）及びネットワーク参加日時）を有している。ノードＩＤ［0000-0003］のノード装置１がコンテンツ配信システムＳに参加する際にはデフォルトゾーンにはノードＩＤ［0000-0001］のノード装置１しか所属していないので図１０（Ａ）に示すような所属ノードテーブルとなり、デフォルトゾーンルートノードＺＲｄは、ノードＩＤ［0000-0001］のノード装置１の宛先情報としてＩＰアドレス「121.43.154.65」を取得することになる。
【００９６】
続いて、取得した宛先情報を参加要求の送信元ノード装置に送信する（ステップＳ８）。図９に示すノード装置１がコンテンツ配信システムＳに参加する様子の一例によれば、ノードＩＤ［0000-0001］のノード装置１のＩＰアドレス「121.43.154.65」を送信元ノード装置としてのノードＩＤ［0000-0003］のノード装置１に送信することになる。
【００９７】
そして、送信元ノード装置のノード情報を記憶部１２に記憶した所属ノードテーブルに追加（ステップＳ９）して処理を終了する。図１０（Ｂ）に送信元ノード装置であるノードＩＤ［0000-0003］のノード装置１のノード情報を追加した所属ノードテーブルの一例を示す。
【００９８】
[４．新規ゾーン生成処理動作]
次に、新規ゾーン生成処理動作について説明する。 
【００９９】
[４−１．新規ゾーンを生成する際のノード装置の処理]
先ず、図１１及び図１２を用いてノード装置１がデフォルトゾーンを離脱して新たにゾーンを生成する際のノード装置１の処理について説明する。
【０１００】
図１１は、ノード装置１の制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【０１０１】
この処理は図７のステップＳ５の処理において、近隣装置とのネットワーク距離が近い（通信負荷が小さい）と判定された場合に処理を開始する。
【０１０２】
まず、近隣装置と新規ゾーン生成について相互確認する（ステップＳ１０）。より具体的には、互いのノードＩＤを送受信して後の処理に備える。
【０１０３】
続いて自身のノードＩＤが近隣装置のノードＩＤより大きいか否かを判定し（ステップＳ１１）、大きい場合（ステップＳ１１：Ｙｅｓ）には、制御部１１が離脱情報送信手段として機能し、デフォルトゾーンルートノードＺＲｄに、現在のゾーンを離脱する旨のメッセージを送信（ステップＳ１２）する。ノードＩＤの大きい装置が、新規ゾーンのゾーンルートノードＺＲとなるのである。また、ゾーン離脱メッセージには、自己のノードＩＤだけでなく、共に新規ゾーンを生成する近隣装置のノードＩＤも含んで送信する。
【０１０４】
図１２を用いてより具体的に説明する。ＧＵＩＤが「0004」のノード装置１が、上述した [３−１．コンテンツ配信システムＳへ参加する際のノード装置１の処理]に基づいてデフォルトゾーンルートノードＺＲｄに参加要求をして当該コンテンツ配信システムＳに参加すると、近隣装置としてノードＩＤ［0000-0003］のノード装置１とのネットワーク的な距離を計測して近隣装置との通信経路における通信負荷を示す通信負荷情報を取得することとなる。そこで、ノードＩＤ［0000-0003］のノード装置１とのネットワーク的な距離が近いので、ノードＩＤ［0000-0004］のノード装置１は、近隣装置としてのノードＩＤ［0000-0003］のノード装置１と新規ゾーン生成について相互確認を行う。その後、自己のノードＩＤ［0000-0004］が近隣装置としてのノードＩＤ［0000-0003］のノード装置１よりも大きいので、デフォルトゾーンルートノードＺＲｄに、現在のゾーンを離脱する旨のゾーン離脱メッセージ（離脱情報）を図中一点鎖線で示す如く送信する。
【０１０５】
続いて、デフォルトゾーンルートノードＺＲｄから新規ゾーンＩＤを受信（ステップＳ１３）すると、受信した新規ゾーンＩＤを近隣装置に送信する（ステップＳ１４）。図１２を用いてより具体的に説明すると、実線で示す如く、ノードＩＤ［0000-0004］のノード装置１は、新規ゾーンＩＤ［1000］を受信し、受信した新規ゾーンＩＤ［1000］をノードＩＤ［0000-0003］のノード装置１に送信する。
【０１０６】
そして、ノードＩＤ［0000-0004］のノード装置１は、制御部１１がゾーン生成手段として機能し、自身のノードＩＤを［新ゾーンＩＤ-新ゾーンＩＤ］に変更（ステップＳ１５）して新ゾーンのゾーンルートノードＺＲとなる。図１２を用いて説明すると、ノードＩＤ［0000-0004］のノード装置１は自己のノードＩＤを［新ゾーンＩＤ-新ゾーンＩＤ］、すなわち、［1000-1000］に変更し、元のゾーンであるデフォルトゾーンを離脱して新ゾーン（ゾーンＩＤ1000）に所属すると共に、当該新ゾーン（ゾーンＩＤ1000）のゾーンルートノードＺＲとなる。
【０１０７】
そして、他のゾーンルートノードＺＲに新規ゾーン生成完了メッセージを送信（ステップＳ１６）して処理を終了する。図１２に示す如く、他のゾーンがデフォルトゾーンのみであればデフォルトゾーンに新規ゾーン生成完了メッセージを送信し、図１３に示すように、デフォルトゾーンの他に既に他のゾーン（ゾーンＩＤ0500）がある場合には、当該他のゾーンのゾーンルートノードＺＲ（ノードＩＤ［0500-0500］）に対しても新規ゾーン生成完了メッセージを送信する。なお、他のゾーンのゾーンルートノードＺＲのＩＰアドレス等の宛先情報は、上述したステップＳ１３の処理にて新ゾーンＩＤをデフォルトゾーンルートノードＺＲｄから取得する際に共に取得するよう構成すればよい。
【０１０８】
続いて、ステップＳ１１の処理において、自身のノードＩＤが近隣装置のノードＩＤより大きくない、すなわち、自身のノードＩＤが近隣装置のノードＩＤより小さい場合（ステップＳ１１：Ｎｏ）には、新規ゾーンＩＤを近隣装置から受信（ステップＳ１２）する。図１２に示す例によれば、ノードＩＤ［0000-0003］のノード装置１は、上述したノードＩＤ［0000-0004］のノード装置１よりノードＩＤが小さいため、ノードＩＤ［0000-0004］のノード装置１からの新規ゾーンＩＤの送信を待つことになる。
【０１０９】
そして、近隣装置から新規ゾーンＩＤを受信すると（ステップＳ１７）、自身のノードＩＤを［新ゾーンＩＤ-ＧＵＩＤ］に変更（ステップＳ１５）して処理を終了する。図１２を用いて説明すると、ノードＩＤ［0000-0003］のノード装置１は自己のノードＩＤを［新ゾーンＩＤ-ＧＵＩＤ］、すなわち、［1000-0003］に変更することにより、元のゾーンであるデフォルトゾーンを離脱して新ゾーン（ゾーンＩＤ「1000」）に所属することになる。
【０１１０】
なお、ゾーンの生成処理を行なったそれぞれのノード装置１は、自己が有するルーティングテーブルを破棄して新たに互いのノード情報を記録したルーティングテーブルを作成してもよく、或いは自己が有するルーティングテーブルを破棄せず、互いのノード情報のみを更新してもよい。さらに、ＩＤ空間上ある程度のゾーンが存在する場合には、上述した［１−２．ルーティングテーブルの作成］で説明した手順に従いルーティングテーブルを再構築してもよい。
【０１１１】
[４−２．新規ゾーンを生成する際のデフォルトゾーンルートノードＺＲｄの処理]
次に、図１４を用いてノード装置１がデフォルトゾーンを離脱して新たにゾーンを生成する際のデフォルトゾーンルートノードＺＲｄの処理について説明する。
【０１１２】
図１４は、デフォルトゾーンルートノードＺＲｄの制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【０１１３】
この処理は図１１のステップＳ１２の処理において、ゾーン離脱メッセージを受信した場合に処理を開始する。
【０１１４】
デフォルトゾーンルートノードＺＲｄは、制御部１１がゾーン情報送信手段として機能し、デフォルトゾーンに所属する何れかのノード装置１からゾーン離脱メッセージを受信すると、新規ゾーンＩＤを生成してゾーン離脱メッセージの送信元のノード装置１に送信する（ステップＳ３０）。
【０１１５】
その後、ゾーン離脱メッセージの送信元のノード装置１から、すなわち新規ゾーンのゾーンルートノードＺＲから新規ゾーン完了メッセージを受信（ステップＳ３１）すると、自己の記憶部１２に記憶した所属ノードテーブル及びゾーンルートノードテーブルを更新（ステップＳ３２）して処理を終了する。
【０１１６】
より具体的には、ステップＳ３０で受信したゾーン離脱メッセージには、自己のノードＩＤだけでなく、共に新規ゾーンを生成する近隣装置のノードＩＤも含まれるため、当該ゾーン離脱メッセージに基づいて離脱したノード装置１を記憶部１２に記憶した所属ノードテーブルから削除する。そして、新規ゾーン完了メッセージには、新規ゾーンのゾーンＩＤやゾーンルートノードのＩＰアドレス情報が記憶されているため、これを記憶部１２に記憶したゾーンルートノードテーブルに追加する。
【０１１７】
なお、新規ゾーン生成における他の実施例として、デフォルトゾーンルートノードＺＲｄが新規ゾーン生成を指示することも可能である。全てのノード装置１は、コンテンツ配信システムＳに参加する際には必ずデフォルトルートノードＺＲｄにアクセスする。このときデフォルトゾーンルートノードＺＲｄは全ノード装置１のネットワーク的な接続場所を当該ノード装置から送信されたＩＰアドレス等に基づいて把握しておくことで、図１５に示す如く新しいノード装置１（ＧＵＩＤが「0004」が参加したときに近隣装置を教え、さらに何れが新規ゾーンのゾーンルートノードＺＲとなるべきかも含めて教えることにより実現できる。
【０１１８】
なお、２つ以上の近隣装置にて新規ゾーンを生成すればよく、例えば同図に示す如く、３つ以上の近隣装置がそろったときに新規ゾーンを生成するよう指示することも可能である。
【０１１９】
以上説明したようなコンテンツ配信システムＳへの参加、新規ゾーンの生成を繰り返して作成されたＩＤ空間の一例を図１６に示す。
【０１２０】
図１６は、デフォルトゾーンを含む４つのゾーン（ゾーンＩＤ「0000」、ゾーンＩＤ「0500」、ゾーンＩＤ「1000」及びゾーンＩＤ「2000」）が形成されたコンテンツ配信システムＳのＩＤ空間である。これら各ゾーンの規模は、各回線業者に接続されたノード装置が集まるよう構成することが望ましい。このゾーンの規模は図７のフローチャートを用いて説明したステップＳ４及びステップＳ５の処理にて予め定めたネットワーク的な距離（通信負荷）の所定範囲に依存し、例えば所定範囲が“ホップ数が「２」以内”であれば、図１で示す如くＤＳＬ回線業者５ａ及びＦＴＴＨ回線業者６及びＤＳＬ回線業者５ｂ毎にゾーンが形成される。
【０１２１】
図１６において、ゾーンＩＤ「0000」のゾーン、すなわちデフォルトゾーンには、ノードＩＤ［0000-0000］のデフォルトゾーンルートノードＺＲｄと、ノードＩＤ［0000-0002］のノード装置１と、ノードＩＤ［0000-0055］のノード装置１と、ノードＩＤ［0000-0158］のノード装置１が所属している。
【０１２２】
そして、ゾーンＩＤ「0500」のゾーンには、ノードＩＤ［0500-0500］のゾーンルートノードＺＲと、ノードＩＤ［0500-0014］のノード装置１が所属している。
【０１２３】
そして、ゾーンＩＤ「1000」のゾーンには、ノードＩＤ［1000-1000］のゾーンルートノードＺＲと、ノードＩＤ［1000-0003］のノード装置１と、ノードＩＤ［1000-0003］のノード装置１が所属している。
【０１２４】
また、ゾーンＩＤ「2000」のゾーンには、ノードＩＤ［2000-2000］のゾーンルートノードＺＲと、ノードＩＤ［2000-0032］のノード装置１と、ノードＩＤ［2000-0250］のノード装置１が所属している。
【０１２５】
そして、各ゾーンのゾーンルートノードＺＲ（デフォルトゾーンルートノードＺＲｄを含む）は、ＩＤ空間上に存在する各ゾーンのゾーンルートノード情報を図１７に示す如くゾーンルートノードテーブルとして記憶している。
【０１２６】
図１７（Ａ）は、デフォルトゾーンルートノードＺＲｄの記憶部１２に記憶されたゾーンルートノードテーブルであり、図１７（Ｂ）は、ゾーンＩＤ「0500」のゾーンルートノードＺＲの記憶部１２に記憶されたゾーンルートノードテーブルであり、図１７（Ｃ）は、ゾーンＩＤ「1000」のゾーンルートノードＺＲの記憶部１２に記憶されたゾーンルートノードテーブルであり、図１７（Ｄ）は、ゾーンＩＤ「2000」のゾーンルートノードＺＲの記憶部１２に記憶されたゾーンルートノードテーブルである。
【０１２７】
さらに、各ゾーンのゾーンルートノードＺＲ（デフォルトゾーンルートノードＺＲｄを含む）は、図１８に示す如く、それぞれが管理するゾーンに所属するノード装置１のノード情報を所属ノードテーブルとして記憶する。
【０１２８】
図１８（Ａ）は、デフォルトゾーンルートノードＺＲｄの記憶部１２に記憶された所属ノードテーブルであり、図１８（Ｂ）は、ゾーンＩＤ「0500」のゾーンルートノードＺＲの記憶部１２に記憶された所属ノードテーブルであり、図１８（Ｃ）は、ゾーンＩＤ「1000」のゾーンルートノードＺＲの記憶部１２に記憶された所属ノードテーブルであり、図１８（Ｄ）は、ゾーンＩＤ「2000」のゾーンルートノードＺＲの記憶部１２に記憶された所属ノードテーブルである。それぞれ自己のゾーンに所属するノード装置１のノード情報としてノードＩＤとＩＰアドレスを記録している。なお、所属ノードテーブルには上記図１０の説明にて述べたように、各ノード装置１がネットワークに参加した日時も記憶してもよいが、以降の説明を簡略化するため省略する。
【０１２９】
［５．ゾーンの併合］
次に、図１６乃至図２２を用いてゾーンの併合について説明する。
【０１３０】
［５−１．ゾーン併合処理］
ゾーンの併合は、あるゾーンに所属するノード装置１と他のゾーンに所属するノード装置１とが相互に通信して、お互いのネットワーク的な距離が近い、言い変えれば、各ゾーンに所属するノード装置間における通信経路にある中継装置の数、または一定期間の通信応答時間の統計値が少なく通信負荷が小さいと判明したときにゾーン併合処理が開始されることにより生じる。このとき、ノード装置１の当該制御部１１が通信負荷情報取得手段として機能する。
【０１３１】
図１９はノード装置１の制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。この実施例では、ゾーンＩＤが小さい方のゾーンが、大きい方のゾーンを取り込む形になり、ゾーンＩＤが大きい方のゾーンは消滅する。
【０１３２】
まず、近隣装置とゾーン併合について相互確認する（ステップＳ４０）。より具体的には、ゾーン情報送信手段として機能し、互いのゾーンＩＤを含んで生成されているノードＩＤを送受信して後の処理に備える。
【０１３３】
続いて自身のゾーンＩＤが近隣装置のゾーンＩＤより大きいか否かを判定し（ステップＳ４１）、小さい場合（ステップＳ４１：Ｎｏ）には処理を終了し、大きい場合（ステップＳ４１：Ｙｅｓ）には現在自分はゾーン管理ノード装置としてのゾーンルートノードＺＲであるか否かを判定する（ステップＳ４２）。
【０１３４】
図２０を用いて具体的に説明すると、ゾーンＩＤ「0500」に所属するノードＩＤ［0500-0014］のノード装置１と、ゾーンＩＤ「1000」に所属するノードＩＤ［1000-0003］のノード装置１とが互いに通信し合いお互いのネットワーク的な距離が近い（通信負荷が小さい）ことが判明すると、ノードＩＤ［0500-0014］のノード装置１とノードＩＤ［1000-0003］のノード装置１の双方の制御部１１がそれぞれゾーン併合処理を開始する。そして同図一点鎖線で示す如くゾーン併合について相互確認がおこなわれ、ステップＳ４１の処理が実行されるとき、ノードＩＤ［0500-0014］のノード装置１の制御においては自身のゾーンＩＤが近隣装置のゾーンＩＤより小さいと判定し、ノードＩＤ［1000-0003］のノード装置１の制御においては自身のゾーンＩＤが近隣装置のゾーンＩＤより大きいと判定することになる。従って、この段階でノードＩＤ［0500-0014］のノード装置１によるゾーン併合処理は終了する。他方、ノードＩＤ［1000-0003］のノード装置１はステップＳ４２の処理に移行して自身がゾーンルートノードＺＲであるかを判定することになる。
【０１３５】
ステップＳ４２の処理においてゾーンルートノードＺＲでない場合（ステップＳ４２：Ｎｏ）には併合先ゾーンのゾーンＩＤを自身のゾーンのゾーンルートノードＺＲに送信する（ステップＳ４３）。これを受信したゾーンルートノードＺＲでは、フローの図示は省略するが、Ｓ４６、Ｓ４７と同様の処理を行い、ゾーン内の全てのノード装置のゾーンＩＤを変更せしめた後、ゾーンを消滅させる。より具体的に説明すると、図２０に破線で示す如く、ノードＩＤ［1000-0003］のノード装置１は自身のゾーンのゾーンルートノードＺＲであるノードＩＤ［1000-1000］のノード装置１に併合先のゾーンのゾーンＩＤ「0500」を送信する。
【０１３６】
ステップＳ４４に進み、制御部１１は識別情報変更手段として機能し、自身のノードＩＤを［併合先ゾーンＩＤ−ＧＵＩＤ］に変更し、併合先ゾーンのゾーンルートノードＺＲにゾーン参加要求メッセージを送信する（ステップＳ４４）。なお、各ゾーンのゾーンルートノードＺＲは、図１７に示す如く記憶部１１にゾーンルートノードテーブルを有しており、全てのゾーンのゾーンルートノードＺＲの宛先情報としてのＩＰアドレスを知っているため、併合先ゾーンのゾーンルートノードＺＲの宛先情報は自身のゾーンのゾーンルートノードＺＲに聞いて取得するよう構成する。
【０１３７】
そして、併合先ゾーンのゾーンルートノードＺＲからゾーン参加受諾メッセージを受信（ステップＳ４５）処理を終了する。
【０１３８】
ステップＳ４２の処理において、自分がゾーンルートノードＺＲであると判定された場合（ステップＳ４５：Ｙｅｓ）には、ゾーンに帰属する全てのノードに併合先のゾーンＩＤを含むノードＩＤ変更指示メッセージを送信する（ステップＳ４６）。これを受信したノードでは、フローの図示は省略するが、Ｓ４４、Ｓ４５と同様の処理を行う。
【０１３９】
図２１を用いて具体的に説明すると、ゾーンＩＤ「0500」に所属するノードＩＤ［0500-0014］のノード装置１と、ゾーンＩＤ「1000」に所属するノードＩＤ［1000-1000］のノード装置１(ゾーンルートノードＺＲ)とが互いに通信してお互いのネットワーク的な距離が近い（通信負荷が小さい）ことが判明すると、ノードＩＤ［0500-0014］のノード装置１とノードＩＤ［1000-1000］のノード装置１の双方の制御部１１がそれぞれゾーン併合処理を開始する。
【０１４０】
そして図２０を用いて上述した手順と同様に、図２１に一点鎖線で示す如くゾーン併合について相互確認が行われ、ステップＳ４１の処理においてはノードＩＤ［0500-0014］のノード装置１の制御においては自身のゾーンＩＤが近隣装置のゾーンＩＤより小さいと判定し、ノードＩＤ［1000-1000］のノード装置１の制御においては自身のゾーンＩＤが近隣装置のゾーンＩＤより大きいと判定することになる。この段階でノードＩＤ［0500-0014］のノード装置１によるゾーン併合処理は、自身のゾーンＩＤ「0500」が相手のゾーンＩＤ（図２１に示す例によればノードＩＤ［1000-1000］のノード装置１のゾーンＩＤ「1000」）より小さいため、ステップＳ４１の判定が「Ｎｏ」となり、当該処理を終了する。一方、ノードＩＤ［1000-1000］のノード装置１はステップＳ４２の処理に移行して自身がゾーンルートノードＺＲであると判定し、ステップＳ４６の処理に移行してゾーンに帰属するノードＩＤ［1000-0003］のノード装置１とノードＩＤ［1000-0003］のノード装置１に併合先のゾーンＩＤ「0500」を含むノードＩＤ変更指示メッセージを同図において破線で示す如く送信する。
【０１４１】
そして、ステップＳ４７の処理において、制御部１１は消滅情報送信手段として機能し、ゾーンルートノードテーブルを参照して、他のゾーンのゾーンルートノードＺＲ（デフォルトゾーンルートノードＺＲｄを含む）に、現在のゾーンが消滅する旨のゾーン消滅メッセージを送信する（ステップＳ４７）。
【０１４２】
図を用いてより具体的に説明すると、ノードＩＤ［1000-1000］のノード装置１は、図１８（Ｃ）に示すゾーンルートノードテーブルを参照して、ゾーンＩＤ「0000」のデフォルトゾーンルートノードＺＲｄであるノードＩＤ［0000-0000］のノード装置１と、ゾーンＩＤ「2000」のゾーンルートノードＺＲであるノードＩＤ［2000-2000］のノード装置１に、ゾーン消滅メッセージを図２０に実線で示す如く送信する。
【０１４３】
その後、上述したステップＳ４４及びステップＳ４５の処理を行う。
【０１４４】
なお、上述したステップＳ４６においてゾーンルートノードＺＲから併合先のゾーンＩＤを含むノードＩＤ変更指示メッセージを受信したノード装置１は、上述したステップＳ４４とステップＳ４５の処理を行なうが、ゾーンルートノードＺＲから受信した併合先のゾーンＩＤに基づいてステップＳ４４の処理を行なうよう構成する。
【０１４５】
図２２にゾーンＩＤ「0500」とゾーンＩＤ「1000」にてゾーン併合処理が完了した場合のＩＤ空間の例を示す。
図に示す如く、併合を行なう際には上述したようにノードＩＤに変更が生じるため、ＩＤ空間上での序列も変わる。
【０１４６】
なお、ゾーンの併合が行われると併合対象となったゾーン（図２２に示す例によればゾーンＩＤ「0500」とゾーンＩＤ「1000」）に所属する各ノード装置１は、［１−２．ルーティングテーブルの作成］で説明した手順に従いルーティングテーブルを再構築する。
【０１４７】
［６．コンテンツの公開］
［６−１−１．コンテンツデータの登録方法］
次に、このような構成のコンテンツ配信システムＳの中で、あるノード装置１が、自己が所有する共用情報としてのコンテンツを、コンテンツ配信システムＳ上の他のノード装置に共用可能に公開する際の手法について述べる。
【０１４８】
このノード装置１がコンテンツを保持する（記憶する）情報記憶ノード装置としてのコンテンツノードとなる。
【０１４９】
当該コンテンツノードは、コンテンツのタイトル等からコンテンツＩＤを求め、当該コンテンツＩＤと同じノードＩＤを持つノード装置に向けて（このノード装置が実在するか否かはこの時点ではわからない。）公開メッセージを送信する。そして、この公開メッセージはルーティングテーブルに従って、次々と転送されていき、当該公開メッセージに含まれるコンテンツＩＤに最も近いノードＩＤを有するノード装置１まで転送されたところで、そのノード装置１はもはや送信先のノード装置が他にないと判断すると、当該ノード装置１自身がそのコンテンツを管理するコンテンツルートノードＣＲとなるべきだと判断し、当該コンテンツＩＤ、補助情報（タイトル、ジャンル等の属性情報や、監督名等の著作権情報等）及びコンテンツノードのＩＰアドレス等の宛先情報を含むノード情報をインデックス情報（図６参照）として記憶する。
【０１５０】
図２３に示す如く、ノードＩＤ［1000-0003］のノード装置１がコンテンツを公開しようとする際には、まずコンテンツＩＤを生成する。
【０１５１】
コンテンツＩＤを生成するためには、先ず、コンテンツの名称（コンテンツタイトル）やコンテンツの概要情報（あらすじ）等のキーワードを上述したノードＩＤを得るときと共通のハッシュ関数によりハッシュ化されて得られたハッシュ値をコンテンツＧＵＩＤとして取得する。
【０１５２】
そして、最初にコンテンツが公開されるときには、コンテンツＩＤはデフォルトゾーンに配置されるよう構成する。すなわち、デフォルトゾーンのゾーンＩＤと取得したコンテンツＧＵＩＤを組み合わせて、コンテンツＩＤ［デフォルトゾーンＩＤ（0000）―コンテンツＧＵＩＤ］として公開される。
【０１５３】
以下にコンテンツタイトルからMD5を使用して取得したコンテンツＧＵＩＤの一例を示す。
【０１５４】
コンテンツＧＵＩＤ＝md5(“七人のロレンス”) ＝634f43265ecd4edd64843c0b8cfff23c
コンテンツＧＵＩＤ＝md5(“アラビアの侍”) ＝385c1853340575d5b79ce03233179215
コンテンツＧＵＩＤ＝md5(“Mozart Symphony No.41 Jupiter”) ＝d046ffd4a032b1cc3a46b86ee2b2642c
なお、以下の説明においては、コンテンツＧＵＩＤは説明の簡単のため４桁の自然数で表す。
【０１５５】
図２３に示す例によれば、ノードＩＤ［1000-0003］のノード装置１（以下、コンテンツノードと言う。）がコンテンツを公開する際にコンテンツＩＤ［0000-0056］を生成し当該コンテンツＩＤ［0000-0056］を自己の装置を特定するＩＰアドレス「255.62.14.102」（図１８（Ｃ）参照。）と共に公開メッセージを送信する。
【０１５６】
そして、ルーティングテーブルに従って公開メッセージが転々送信されてノードＩＤ［0000-0055］のノード装置１が受信したところで、当該ノードＩＤ［0000-0055］のノード装置１は公開メッセージを送信する先が無いので公開メッセージの転送が終了する。この時点でノードＩＤ［0000-0055］のノード装置１がコンテンツＩＤ［0000-0056］（図２３において黒ひし形で示す。）のコンテンツルートノードＣＲとなる。
【０１５７】
そしてコンテンツルートノードＣＲは、当該コンテンツＩＤ［0000-0056］、補助情報（タイトル、ジャンル等の属性情報や、監督名等の著作権情報等）及びコンテンツノードのノード情報（ＩＰアドレス「255.62.14.102」等の宛先情報を含む）をインデックス情報として記憶部１２に記憶する。以上により、コンテンツＩＤ［0000-0056］のコンテンツデータの登録が完了する。
【０１５８】
［６−１−２．コンテンツデータの検索方法］
なお、上述した手法に基づいて登録が完了すると、後に述べるコンテンツデータの複製登録処理が開始されるが、その前にコンテンツノードの検索方法の一例について説明する。
【０１５９】
図２３を用いて、ノードＩＤ［0500-0500］のノード装置１（以下、「リクエストノード」と言う。）が、コンテンツＩＤ「0000-0056」を有するコンテンツデータを保持するコンテンツノードを探す際の手順について説明する。コンテンツルートノードＣＲに至る経路を実線矢印で表す。
【０１６０】
まず、リクエストノードは所望のコンテンツのタイトル等を共通のハッシュ関数でハッシュ化してコンテンツＩＤ「0000-0056」を取得する。そして自己のルーティングテーブルを参照し、このコンテンツＩＤと同じエリアのノードＩＤを持つノード装置１に対してコンテンツ問い合わせ情報（以下、「コンテンツ問い合わせ情報」を「クエリ」と言う。）を送信する。
【０１６１】
同図においては、リクエストノードからノードＩＤ［0000-0000］のノード装置１にクエリが送信される。
【０１６２】
続いて当該ノードＩＤ［0000-0000］のノード装置１は、クエリに含まれるコンテンツＩＤを自己の記憶部１２に記憶したインデックス情報を参照して検索し、該当するコンテンツＩＤが無い（すなわち、コンテンツの所在を知るコンテンツルートノードＣＲではない。）ことを確認し、受信したクエリをノードＩＤ［0000-0055］のノード装置１に転送する。
【０１６３】
このように、上流のノード装置、すなわち自己とコンテンツルートノードＣＲの中間に介在するノード装置に対してクエリを転送し、コンテンツＩＤの桁を上から順に適合していく要領でコンテンツルートノードＣＲへ近づいていく。
【０１６４】
そして、クエリを受信したノードＩＤ［0000-0055］のノード装置１は、クエリに含まれるコンテンツＩＤを自己の記憶部１２に記憶したインデックス情報を参照して該当するコンテンツＩＤを発見し、コンテンツの所在を示すコンテンツノードのＩＰアドレス「255.62.14.102」等の宛先情報をリクエストノードに送信する。そしてこれを受けたリクエストノードは、取得したＩＰアドレスに基づいてコンテンツノードにアクセスし、図中一点鎖線で示す如くコンテンツデータの配信要求をして、配信要求を受けたコンテンツノードはリクエストノードに対して図中破線で示す如くコンテンツの配信を行う。
【０１６５】
［６−２．コンテンツデータの複製登録］
次に、図２４乃至図２７を用いてコンテンツデータが各ゾーンに複製される際の処理について説明する。
【０１６６】
図２４（Ａ）及び（Ｃ）は、コンテンツルートノードＣＲの制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートであり、図２４（Ｂ）は、デフォルトゾーンルートノードＺＲｄの制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートであり、図２４（Ｄ）は、コンテンツＩＤが所属していないゾーンのゾーンルートノードＺＲ（デフォルトゾーンルートノードＺＲｄを含む）の制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【０１６７】
新たにコンテンツが登録されると、共用情報管理ノード装置としてのコンテンツルートノードＣＲによって図２４（Ａ）の処理が開始される。より具体的には、コンテンツルートノードＣＲのインデックス情報に新たにコンテンツの情報（コンテンツＩＤ等）が登録されることにより開始する。
【０１６８】
先ず、コンテンツルートノードＣＲは、制御部１１が複製開始情報送信手段として機能し、デフォルトゾーンルートノードＺＲｄにデフォルトゾーンへのコンテンツの複製開始メッセージを送信する（ステップＳ６０）。図２５に示す例によれば図中鎖線で示す如くコンテンツルートノードＣＲ（ノードＩＤ［0000-0055］のノード装置１）からデフォルトゾーンルートノードＺＲｄ（ノードＩＤ［0000-0000］のノード装置１）に複製開始メッセージが送信される。
【０１６９】
すると、図２４（Ｄ）の処理に移行し、複製開始メッセージを受信したデフォルトゾーンルートノードＺＲｄは、コンテンツデータ登録履歴を参照し、直近に登録したノード装置以外のノード装置からランダムに選択して複製用のノード装置１を選定（ステップＳ７５）する。ここで、コンテンツデータ登録履歴とは、過去に行われたコンテンツデータの複製処理において、デフォルトゾーンルートノードＺＲｄが自己のゾーンに所属するノード装置１のうち、何れのノード装置を複製用のノード装置として選定したかを示す情報を記憶部１２に登録履歴として記憶したものである。ここでは、いつも同じノード装置が複製用のノード装置として選ばれないようにするため、直近に登録したノード装置以外のノード装置を選ぶようになっている。
【０１７０】
次に、新コンテンツＩＤを生成し、複製用のノード装置として選定されたノード装置１のノード情報（複製用ノード情報）と共にコンテンツルートノードＣＲに返信する（ステップＳ７６）。新コンテンツＩＤは、自己のゾーンＩＤに基づいて生成する。すなわち、図２６に示す例によればデフォルトゾーンのゾーンＩＤ「0000」とコンテンツＧＵＩＤ「0056」を組み合わせてコンテンツＩＤ「0000-0056」を生成し、図中実線で示す如くコンテンツルートノードＣＲに送信する。
【０１７１】
そして、コンテンツルートノードＣＲは、デフォルトゾーンルートノードＺＲｄから複製用ノード情報と新コンテンツＩＤを受信（ステップＳ６１）する。このときコンテンツルートノードＣＲは複製用ノード情報と新コンテンツＩＤとを自己のインデックス情報に追加する。
【０１７２】
そして、制御部１１が複製指示手段として機能し、複製用ノード情報に含まれるＩＰアドレスを宛先情報としてコンテンツ複製用のノード装置に対してコンテンツ複製指示メッセージを送信する（ステップＳ６２）。そして、デフォルトゾーンルートノードＺＲｄに他のゾーンへのコンテンツの複製を要求する複製要求メッセージを送信する（ステップＳ６３）。
【０１７３】
すると、図２４（Ｂ）の処理に移行し、複製要求メッセージを受信したデフォルトゾーンルートノードＺＲｄは、他にゾーンが在るか否かを自己のゾーンルートノードテーブル（図１７（Ａ））を参照して検索（ステップＳ７０）し、他のゾーンが無い場合（ステップＳ７０：Ｎｏ）は処理を終了し、他のゾーンがある場合（ステップＳ７０：Ｙｅｓ）にはゾーンルートノードテーブル（図１７（Ａ））を参照して他のゾーンルートノードＺＲにコンテンツの複製開始メッセージを送信する（ステップＳ７１）。図２５に示す例によれば、一点鎖線で示す如くデフォルトゾーンルートノードＺＲｄから各ゾーンのゾーンルートノードＺＲに複製開始メッセージが送信される。
【０１７４】
なお、コンテンツノードが存在するゾーンには既に当該コンテンツノードがコンテンツを存在しているため、デフォルトゾーンルートノードＺＲｄはコンテンツルートノードＣＲにコンテンツノードのノードＩＤを問い合わせ、当該このゾーンを除く他のゾーンのゾーンルートノードＺＲに対してコンテンツの複製開始メッセージを図２５中一点鎖線で示す如く送信するよう構成する。
【０１７５】
そして、図２４（Ｄ）の処理に移行し、複製開始メッセージを受信したゾーンルートノードＺＲは、制御部１１が複製用ノード装置選定手段として機能し、コンテンツデータ登録履歴を参照し、直近に登録したノード装置以外のノード装置からランダムに選択して複製用のノード装置１を選定（ステップＳ７５）する。次に、上述した如く新コンテンツＩＤを生成し、制御部１１が複製用ノード情報送信手段として機能し、複製用のノード装置として選定されたノード装置１のノード情報と共にコンテンツルートノードＣＲに返信する（ステップＳ７６）。
【０１７６】
そして、図２４（Ｃ）の処理に移行し、コンテンツルートノードＣＲは、ゾーンルートノードＺＲから複製用のノード情報と新コンテンツＩＤを受信（ステップＳ８０）する。このときコンテンツルートノードＣＲは複製用のノード情報と新コンテンツＩＤとを自己のインデックス情報に追加する。上記ステップＳ６２の処理と同様にコンテンツ複製用のノード情報に含まれるＩＰアドレスを宛先情報としてコンテンツ複製用のノード情報に対してコンテンツ複製指示メッセージを送信（ステップＳ８１）して処理を終了する。
【０１７７】
その後、コンテンツ複製指示メッセージを受信した各複製用のノード装置１は、制御部１１が共用情報取得手段として機能し、コンテンツノードからコンテンツデータを取得する。より具体的には、コンテンツ複製指示メッセージに含まれるコンテンツノードのＩＰアドレスに基づいてコンテンツノードにアクセスし、図２７に一点鎖線で示す如くコンテンツデータの送信要求すると、配信要求を受けたコンテンツノードは制御部１１が共用情報送信手段として機能し、各複製用のノード装置１に対して図中実線で示す如くコンテンツデータの送信を行う。
【０１７８】
以上説明したようにコンテンツノードが各ゾーンに存在するよう構成する。なお、この場合にはリクエストノードがコンテンツの配信（ストリーミング配信）を希望する場合と異なり、コンテンツデータを複製することが目的であるため、コンテンツデータのダウンロード処理を行えばよい。
【０１７９】
このように、コンテンツを保持するコンテンツノードを各ゾーンに配置することにより、コンテンツルートノードＣＲはリクエストノードからクエリが送信されると、リクエストノードのノードＩＤに含まれるゾーンＩＤを参照して、同じゾーンに所属するコンテンツノードのＩＰアドレス等の宛先情報をリクエストノードに送信する。これにより、リクエストノードは常に同じゾーンからコンテンツの配信を受けることが可能になる。つまり通信において中継回数が少ないなどネットワーク的距離の近い近隣のコンテンツノードから配信を受けることができるため、システム全体の通信負荷の低減を図ることが可能になる。
【０１８０】
なお、コンテンツルートノードＣＲは、クエリに含まれるコンテンツＩＤに対応する全てのコンテンツノードのコンテンツ情報をリクエストノードに送信するよう構成してもよい。このように構成することによって、リクエストノードは最初にリクエストノード自身が所属するゾーンと同じゾーンのコンテンツノードにアクセスしたが当該コンテンツノードがダウンしている場合など応答が無い場合等、アクセスに失敗した場合等に、他のゾーンのコンテンツノードにアクセスすることが可能になる。
【０１８１】
［６−３．コンテンツデータの自律最適化］
次に、図２８を用いてコンテンツデータが各ゾーンの利用頻度に応じて自律的に最適に複製される際の処理について説明する。
【０１８２】
図２８（Ａ）及び（Ｃ）は、コンテンツルートノードＣＲの制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートであり、図２８（Ｂ）及び（Ｄ）は、ゾーンルートノードＺＲ（デフォルトゾーンルートノードＺＲｄを含む）の制御部１１に記憶されたプログラムが当該制御部１１により実行されることにより行われる処理を示すフローチャートである。
【０１８３】
コンテンツルートノードＣＲがクエリを受信したことにより図２８（Ａ）の処理が開始される。
【０１８４】
先ず、コンテンツルートノードＣＲはクエリを受信した要求元ノードのゾーンＩＤを取得する（ステップＳ９０）。そして、同一ゾーンＩＤからの要求数（ゾーン要求数）が所定範囲を超えるか否かを判定（ステップＳ９１）し、所定範囲内である場合（ステップＳ９１：Ｎｏ）には処理を終了し、所定範囲を超える場合（ステップＳ９１：Ｙｅｓ）には、当該ゾーンのゾーンルートノードＺＲ（デフォルトゾーンルートノードＺＲｄである場合にはデフォルトゾーンルートノードＺＲｄ）にコンテンツの複製開始メッセージを送信する（ステップＳ９２）。つまり、ゾーンＩＤが「0500」であるゾーンからクエリが頻繁に送られてきているような場合には、ゾーンＩＤ「0500」であるゾーンにコンテンツノードを作成すべく、コンテンツデータ複製開始メッセージをゾーンＩＤ「0500」のゾーンルートノードＺＲに送信する。なお、ゾーンルートノードＺＲの宛先情報は、コンテンツルートノードＣＲが所属するゾーンのゾーンルートノードＺＲに問い合わせることにより取得することができる。なお、ゾーン要求数の所定範囲は例えば「過去１週間に１００回」等とする。
【０１８５】
続いて、図２８（Ｄ）の処理に移行し、複製開始メッセージを受信したゾーンルートノードＺＲは、コンテンツデータ登録履歴を参照し、直近に登録したノード装置以外のノード装置からランダムに選択して複製用のノード装置１を選定（ステップＳ１１０）し、選定した複製用のノード装置のノード情報と新コンテンツＩＤとをコンテンツルートノードＣＲへ送信する（ステップＳ１１１）。なお、ステップＳ１１０及びステップＳ１１１の具体的な処理は上述したステップＳ７５及びステップＳ７６と同様であるため詳細な説明は省略する。
【０１８６】
そして、コンテンツルートノードＣＲは、ゾーンルートノードＺＲから複製用のノード情報と新コンテンツＩＤを受信（ステップＳ９３）し、コンテンツ複製用のノード情報に含まれるＩＰアドレス情報を宛先情報としてコンテンツ複製用のノード情報に対してコンテンツ複製指示メッセージを送信する（ステップＳ９４）。そして、デフォルトゾーンルートノードＺＲｄに他のゾーンへのコンテンツの複製を要求する複製要求メッセージを送信する（ステップＳ９５）。なお、ステップＳ９３乃至ステップＳ９５の具体的な処理は上述したステップＳ６１乃至ステップＳ６３と同様であるため詳細な説明は省略する。
【０１８７】
そして、図２８（Ｂ）の処理に移行し、複製要求メッセージを受信したデフォルトゾーンルートノードＺＲｄは、他にゾーンが在るか否かを自己のゾーンルートノードテーブルを参照して検索（ステップＳ１００）し、他のゾーンが無い場合（ステップＳ１００：Ｎｏ）は処理を終了し、他のゾーンがある場合（ステップＳ１００：Ｙｅｓ）にはゾーンルートノードテーブルを参照して他のゾーンルートノードＺＲにコンテンツの複製開始メッセージを送信する（ステップＳ１０１）。なお、ステップＳ１００及びステップＳ１０１の具体的な処理は上述したステップＳ７０及びステップＳ７１と同様であるため詳細な説明は省略する。
【０１８８】
すなわち、あるゾーンからの要求数が所定範囲を越えたので、今後、他のゾーンからの要求も多くなるだろうという予想に基づいて他のゾーンにもコンテンツデータの複製を予め作成し、要求の増加に備えることが可能になる。
【０１８９】
そして、図２８（Ｄ）の処理に移行し、複製開始メッセージを受信したゾーンルートノードＺＲは、コンテンツデータ登録履歴を参照し、直近に登録したノード装置以外のノード装置からランダムに選択して複製用のノード装置１を選定（ステップＳ１１０）する。次に、上述した如く新コンテンツＩＤを生成し、複製用のノード装置として選定されたノード装置１のノード情報と共にコンテンツルートノードＣＲに返信する（ステップＳ１１１）。
【０１９０】
そして、図２８（Ｃ）の処理に移行し、コンテンツルートノードＣＲは、ゾーンルートノードＺＲから複製用のノード情報と新コンテンツＩＤを受信（ステップＳ１２０）する。このときコンテンツルートノードＣＲは複製用のノード情報と新コンテンツＩＤとを自己のインデックス情報に追加する。上記ステップＳ６２の処理と同様にコンテンツ複製用のノード情報に含まれるＩＰアドレス情報を宛先情報としてコンテンツ複製用のノード情報に対してコンテンツ複製指示メッセージを送信（ステップＳ１２１）して処理を終了する。
【０１９１】
その後、コンテンツ複製指示メッセージを受信した各複製用のノード装置１は、上述の［６−２．コンテンツデータの複製登録］にて説明した手法に基づいてコンテンツノードにアクセスし、コンテンツデータを取得し、コンテンツノードとなる。
【０１９２】
以上説明したように、コンテンツデータが各ゾーンの利用頻度に応じて自律的に最適に複製することにより、人気の高いコンテンツを各ゾーンに多く配置させることができ、システム全体の通信負荷を抑え、かつ、リクエストノードの要求により迅速に対応することが可能になる。
【０１９３】
なお、各ゾーンのゾーンルートノードＺＲは、ゾーンルートノードＺＲ同士で生存確認を行うことにより、ゾーンの監視をすることが可能になる。更に、各ゾーンのゾーンルートノードＺＲは、夫々が所有するゾーンルートノードテーブルを一定期間毎にバックアップが取れるよう構成する。これにより、ゾーンが生成されたときやゾーンが併合されたときにゾーンルートノードＺＲが一時的にダウンしているような状況にも対応することができる。
【０１９４】
また、１つのゾーンにノード装置１が多数になった場合（例えば１０００台等）には、ゾーンを分割するよう構成してもよい。
【図面の簡単な説明】
【０１９５】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ＩＤ空間の説明図である。
【図３】ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【図４】（Ａ）レベル１のテーブルの一例である。（Ｂ）レベル２のテーブルの一例である。（Ｃ）レベル３のテーブルの一例である。（Ｄ）完成したルーティングテーブルの一例である。
【図５】ノード装置１の概要構成例を示す図である。
【図６】記憶部１２に記憶されるインデックス情報の一例を示す。
【図７】ノード装置１がコンテンツ配信システムＳに参加する際のノード装置１の制御部１１における処理を示すフローチャートである。
【図８】ノード装置１がコンテンツ配信システムＳに参加する際のデフォルトゾーンルートノードＺＲｄの制御部１１における処理を示すフローチャートである。
【図９】ノード装置１がコンテンツ配信システムＳに参加する様子を示す図である。
【図１０】デフォルトゾーンルートノードＺＲｄの記憶部１２に記憶された所属ノードテーブルの説明図である。
【図１１】ノード装置１が新たにゾーンを生成する際のノード装置１の制御部１１における処理を示すフローチャートである。
【図１２】ノード装置１が新たにゾーンを生成する様子を示す図である。
【図１３】ノード装置１が新たにゾーンを生成する様子を示す図である。
【図１４】ノード装置１が新たにゾーンを生成する際のデフォルトゾーンルートノードＺＲｄの制御部１１における処理を示すフローチャートである。
【図１５】他の実施例によりノード装置１が新たにゾーンを生成する様子を示す図である。
【図１６】コンテンツ配信システムＳにおけるＩＤ空間の説明図である。
【図１７】（Ａ）デフォルトゾーンルートノードＺＲｄの記憶部１２に記憶されたゾーンルートノードテーブルの説明図である。（Ｂ）ゾーンＩＤ「0500」のゾーンルートノードＺＲの記憶部１２に記憶されたゾーンルートノードテーブルの説明図である。（Ｃ）ゾーンＩＤ「1000」のゾーンルートノードＺＲの記憶部１２に記憶されたゾーンルートノードテーブルの説明図である。（Ｄ）ゾーンＩＤ「2000」のゾーンルートノードＺＲの記憶部１２に記憶されたゾーンルートノードテーブルの説明図である。
【図１８】（Ａ）デフォルトゾーンルートノードＺＲｄの記憶部１２に記憶された所属ノードテーブルの説明図である。（Ｂ）ゾーンＩＤ「0500」のゾーンルートノードＺＲの記憶部１２に記憶された所属ノードテーブルの説明図である。（Ｃ）ゾーンＩＤ「1000」のゾーンルートノードＺＲの記憶部１２に記憶所属ノードテーブルの説明図である。（Ｄ）ゾーンＩＤ「2000」のゾーンルートノードＺＲの記憶部１２に記憶された所属ノードテーブルの説明図である。
【図１９】ゾーン併合処理を行なう際のノード装置１の制御部１１における処理を示すフローチャートである。
【図２０】ゾーン併合が行われる様子を示す図である。
【図２１】ゾーン併合が行われる様子を示す図である。
【図２２】ゾーンＩＤ「0500」とゾーンＩＤ「1000」にてゾーン併合処理が完了した場合の図である。
【図２３】ＤＨＴによりコンテンツデータの保存元であるノード装置１が検索される様子の一例を示す図である。
【図２４】（Ａ）及び（Ｃ）コンテンツデータが各ゾーンに複製される際のコンテンツルートノードＣＲの制御部１１における処理を示すフローチャートである。（Ｂ）コンテンツデータが各ゾーンに複製される際のデフォルトゾーンルートノードＺＲｄの制御部１１における処理を示すフローチャートである。（Ｄ）コンテンツデータが各ゾーンに複製される際のゾーンルートノードＺＲ（デフォルトゾーンルートノードＺＲｄを含む）の制御部１１における処理を示すフローチャートである。
【図２５】コンテンツデータが各ゾーンに複製される様子を示す図である。
【図２６】コンテンツデータが各ゾーンに複製される様子を示す図である。
【図２７】コンテンツデータが各ゾーンに複製される様子を示す図である。
【図２８】（Ａ）及び（Ｃ）コンテンツデータが各ゾーンに自律的に最適に複製される際のコンテンツルートノードＣＲの制御部１１における処理を示すフローチャートである。（Ｂ）及び（Ｄ）コンテンツデータが各ゾーンに自律的に最適に複製される際のゾーンルートノードＺＲ（デフォルトゾーンルートノードＺＲｄを含む）の制御部１１における処理を示すフローチャートである。
【図２９】従来のコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【符号の説明】
【０１９６】
１  ノード装置
８  ネットワーク
１１  制御部
１２  記憶部
１３  バッファメモリ
１４  デコーダ部
１５  映像処理部
１６  表示部
１７  音声処理部
１８  スーカ
２０  通信部
２１  入力部
２２  バス
Ｓ  コンテンツ配信システム
ＣＲ  コンテンツルートノード
ＺＲ  ゾーンルートノード
ＺＲｄ  デフォルトゾーンルートノード
【図１】
2006217538.tif 000003
【図２】
2006217538.tif 000004
【図３】
2006217538.tif 000005
【図４】
2006217538.tif 000006
【図５】
2006217538.tif 000007
【図６】
2006217538.tif 000008
【図７】
2006217538.tif 000009
【図８】
2006217538.tif 000010
【図９】
2006217538.tif 000011
【図１０】
2006217538.tif 000012
【図１１】
2006217538.tif 000013
【図１２】
2006217538.tif 000014
【図１３】
2006217538.tif 000015
【図１４】
2006217538.tif 000016
【図１５】
2006217538.tif 000017
【図１６】
2006217538.tif 000018
【図１７】
2006217538.tif 000019
【図１８】
2006217538.tif 000020
【図１９】
2006217538.tif 000021
【図２０】
2006217538.tif 000022
【図２１】
2006217538.tif 000023
【図２２】
2006217538.tif 000024
【図２３】
2006217538.tif 000025
【図２４】
2006217538.tif 000026
【図２５】
2006217538.tif 000027
【図２６】
2006217538.tif 000028
【図２７】
2006217538.tif 000029
【図２８】
2006217538.tif 000030
【図２９】
2006217538.tif 000031