(57)【要約】【課題】複数の分割コンテンツデータを管理することに伴い、分割コンテンツ識別情報の決定によりノード装置へのアクセスの集中を軽減することができる識別情報割当装置及びその情報処理方法並びにそのプログラムを提供する。【解決手段】識別情報割当装置は、ノード識別情報、コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定する。【選択図】図８
2008059398.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してそれぞれ接続された複数のノード装置間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、前記ノード装置へ前記コンテンツデータの配信を可能とし、各コンテンツデータには、コンテンツデータを識別するコンテンツ識別情報が付され、各ノード装置には、当該ノード装置を識別するノード識別情報が付され、コンテンツ識別情報との差が小さいノード識別情報が割り当てられたノード装置がコンテンツデータを管理対象とするコンテンツ管理ノード装置となるコンテンツ配信システムにおける前記コンテンツデータを対象としてコンテンツデータ識別情報を割り当てる識別情報割当装置において、
前記ノード装置を対象とするノード識別情報、前記コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、前記コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定する分割コンテンツ識別情報割当手段を備えたことを特徴とする識別情報割当装置。
【請求項２】
前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置の重複を判定する分割コンテンツ識別情報判定手段を備え、
前記分割コンテンツ識別情報割当手段は、前記分割コンテンツ識別情報判定手段によってコンテンツ管理ノード装置が重複しないと判定される分割コンテンツ識別情報を決定する機能を有することを特徴とする請求項１に記載の識別情報割当装置。
【請求項３】
前記ノード装置は、前記分割コンテンツ識別情報割当手段によって割り当てられた分割コンテンツ識別情報に基づいて検索情報を送信し、当該分割コンテンツ識別情報のコンテンツ管理ノード装置から、分割コンテンツ識別情報に対応する分割コンテンツデータが保存されているノード装置のノード識別情報を受信する機能を有することを特徴とする請求項２に記載の識別情報割当装置。
【請求項４】
前記割当識別情報領域の中から前記分割コンテンツ識別情報を仮に決定する分割コンテンツ識別情報仮決定手段と、
前記分割コンテンツ識別情報仮決定手段によって決定された前記分割コンテンツ識別情報の差が所定値以上であるか否かを判定する分割コンテンツ識別情報判定手段と、を備え、
前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、再度、前記分割コンテンツ識別情報を仮に決定する機能を有し、
前記分割コンテンツ識別情報割当手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値以上となると判定された場合には、当該分割コンテンツ識別情報を割り当てる機能を有することを特徴とする請求項１に記載の識別情報割当装置。
【請求項５】
前記複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出する分割コンテンツデータ抽出手段を備え、
前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツデータ抽出手段によって抽出されたデータから、前記複数の分割コンテンツデータのそれぞれを対象とした分割コンテンツ識別情報を仮に決定する機能を有することを特徴とする請求項４に記載の識別情報割当装置。
【請求項６】
前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、前記分割コンテンツデータ抽出手段によってデータが抽出される所定の抽出条件を変更する抽出条件変更手段を備え、
前記分割コンテンツデータ抽出手段は、前記複数の分割コンテンツデータから、前記抽出条件変更手段によって変更された所定の抽出条件に基づくデータを再度抽出する機能を有し、
前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツデータ抽出手段によって再度抽出されたデータから、再度、前記分割コンテンツ識別情報を仮に決定する機能を有することを特徴とする請求項５に記載の識別情報割当装置。
【請求項７】
前記複数の分割コンテンツデータには、分割コンテンツデータに対応する付加情報が含まれており、
前記分割コンテンツ識別情報仮決定手段は、前記付加情報から分割コンテンツ識別情報を仮に決定する機能を有することを特徴とする請求項４に記載の識別情報割当装置。
【請求項８】
前記複数の分割コンテンツデータには、前記付加情報として、前記複数の分割コンテンツデータを含むコンテンツデータに対応する第一の付加情報と、当該複数の分割コンテンツデータ毎に対応する第二の付加情報と、が含まれており、
前記分割コンテンツ識別情報仮決定手段は、前記第一の付加情報及び前記第二の付加情報から分割コンテンツ識別情報を仮に決定する機能を有することを特徴とする請求項７に記載の識別情報割当装置。
【請求項９】
前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、第二の付加情報を変更する付加情報変更手段を備え、
前記分割コンテンツ識別情報仮決定手段は、前記第一の付加情報と、前記付加情報変更手段によって変更された前記第二の付加情報とから、再度、前記分割コンテンツ識別情報を仮に決定する機能を有することを特徴とする請求項８に記載の識別情報割当装置。
【請求項１０】
前記分割コンテンツ識別情報を割り当てる複数の分割コンテンツデータの分割数を判定する分割数判定手段と、
前記分割数判定手段によって判定された複数の分割コンテンツデータの分割数に基づいて、前記割合識別情報領域を当該分割数に分けて、複数の分割割当識別情報領域として決定する分割割当識別情報領域決定手段と、を備え、
前記分割コンテンツ識別情報割当手段は、前記分割割当識別情報領域決定手段によって決定された複数の分割割当識別情報領域毎に、前記分割コンテンツ識別情報を割り当てる機能を有することを特徴とする請求項１から３のいずれかに記載の識別情報割当装置。
【請求項１１】
ネットワークを介してそれぞれ接続された複数のノード装置間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、前記ノード装置へ前記コンテンツデータの配信を可能とし、各コンテンツデータには、コンテンツデータを識別するコンテンツ識別情報が付され、各ノード装置には、当該ノード装置を識別するノード識別情報が付され、コンテンツ識別情報との差が小さいノード識別情報が割り当てられたノード装置がコンテンツデータを管理対象とするコンテンツ管理ノード装置となるコンテンツ配信システムにおける前記コンテンツデータを対象としてコンテンツデータ識別情報を割り当てる識別情報割当装置の情報処理方法において、
前記識別情報割当装置は、
前記ノード装置を対象とするノード識別情報、前記コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、前記コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノードがそれぞれ異なるように分割コンテンツ識別情報を決定する分割コンテンツ識別情報割当ステップを有することを特徴とするコンテンツ配信システムにおける識別情報割当装置の情報処理方法。
【請求項１２】
コンピュータに、請求項１から１０のいずれかに記載の識別情報割当装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、識別情報割当装置及びその情報処理方法並びにそのプログラムの技術分野に属し、より詳細には、ネットワーク上に分散配置された複数のノード装置から構成され、これらノード装置間でコンテンツデータの送受信を行うコンテンツ配信システムにおけるコンテンツデータのコンテンツ識別情報を割り当てる識別情報割当装置及びその情報処理方法並びにそのプログラムの技術分野に属する。
【背景技術】
【０００２】
近年、インターネットなどのネットワークを介して、音楽、映画、トーク番組などコンテンツデータ（以下、「コンテンツ」ともいう。）を配信する、いわゆるコンテンツ配信システムの研究が盛んである。
【０００３】
従来のコンテンツ配信システムの基本的構成として、特許文献１に示すように、分散ハッシュテーブル（ＤＨＴ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ））を利用して論理的にオーバーレイネットワークを構築することにより、情報を効率的に分散配置して負荷分散を図る技術が提案されている。
【０００４】
このシステムにおいては、端末装置である各ノード装置が、当該オーバーレイネットワークに参加している全てのノード装置へのリンク情報（例えば、ＩＰアドレス）を認識しているわけではなく、参加の際などに得られる一部のノード装置へのリンク情報だけを保持しており、かかるリンク情報に基づき、データの問い合わせ等を行うようになっている。
【０００５】
特許文献１のピアツーピア型のコンテンツ配信システムにおいては、各ノード装置がコンテンツデータを保持するコンテンツ配信サーバとなり、また、各ノード装置がコンテンツ配信要求クライアントにもなる。
【０００６】
また、このようなコンテンツ配信システムにおいて、コンテンツ配信サーバであるノード装置がコンテンツデータを保持しているだけでなく、ネットワーク上の他のノード装置もコンテンツデータの複製を保持しているものが知られている。以下、コンテンツデータの複製を保持しているノード装置をコンテンツ保持ノード装置ともいう。コンテンツ配信要求クライアントであるノード装置は、要求するコンテンツをこのようなコンテンツ保持ノード装置から入手することもできる。したがって、あるコンテンツに対する配信要求が増加した場合に、コンテンツ配信サーバであるノード装置だけでなく、その複製を保持しているコンテンツ保持ノード装置からもコンテンツを配信できるため、コンテンツ配信サーバであるノード装置へのアクセスの集中を回避できるものである。以下、コンテンツ配信サーバを含めてコンテンツ保持ノード装置と呼ぶ。
【０００７】
上述のようにピアツーピア型のコンテンツ配信システムにおいては、複数のコンテンツ保持ノード装置の位置情報を記憶するノード装置（以下、「ルートノード装置」と呼ぶ。）が決められており、リクエストノード装置は要求するコンテンツを保持するコンテンツ保持ノード装置の位置情報（以下、「インデックス情報」と呼ぶ。）をルートノード装置に対して要求することによって、インデックス情報を取得し、このインデックス情報に基づいてコンテンツ保持ノード装置へコンテンツデータの配信要求を行う構成をとる。
【０００８】
また、ノード装置を対象としたノードＩＤ（ノード識別情報）やコンテンツデータを対象としたコンテンツＩＤ（コンテンツ識別情報）として割当可能なように割当識別情報領域が設定されており、その割当識別情報領域の中から、ノード装置固有のノードＩＤや、コンテンツデータ固有のコンテンツＩＤが割り当てられる。また、ノード装置は、その装置のノードＩＤがコンテンツＩＤに近いことを条件として、そのコンテンツデータのルートノード装置として決定されることとなる。これによって、コンテンツＩＤから、ルートノード装置のノードＩＤを検索し易くなり、ルートノード装置の所在、コンテンツデータの所在をより効率良く管理することができる。
【特許文献１】特開２００６−１９７４００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
このようなネットワークにおいて、コンテンツデータを複数の分割コンテンツデータに分割し、それら複数の分割コンテンツデータを複数のノード装置に分散させて保存させたものがあり、それら複数の分割コンテンツデータのそれぞれを対象として複数のルートノード装置が設定される。この場合においても、複数の分割コンテンツデータのそれぞれに固有の分割コンテンツＩＤ（分割コンテンツ識別情報）が割り当てられ、ルートノード装置が決定されることとなる。
【００１０】
しかしながら、一つのコンテンツデータを分割させた複数の分割コンテンツデータのそれぞれに割り当てられる固有の分割コンテンツＩＤが、例えば１ずつ増加させるように決定されるなど、相互に近いＩＤとして決定された場合には、複数の分割コンテンツデータのルートノード装置が同じになる、又は、複数の分割コンテンツデータのルートノード装置が、ノードＩＤの近いノード装置となることがあり、複数の分割コンテンツデータの所在情報を得るためのインデックス情報の要求や、分割コンテンツデータが複製された旨の情報などで、ルートノード装置をはじめとするノード装置へのアクセスの集中を招くおそれがあった。
【００１１】
本発明は、上述したような課題に鑑みてなされたものであり、複数の分割コンテンツデータを管理することに伴い、分割コンテンツ識別情報の決定によりノード装置へのアクセスの集中を軽減することができる識別情報割当装置及びその情報処理方法並びにそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
以上のような目的を達成するために、本発明は、以下のようなものを提供する。
【００１３】
すなわち、請求項１記載の本発明では、ネットワークを介してそれぞれ接続された複数のノード装置間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、前記ノード装置へ前記コンテンツデータの配信を可能とし、各コンテンツデータには、コンテンツデータを識別するコンテンツ識別情報が付され、各ノード装置には、当該ノード装置を識別するノード識別情報が付され、コンテンツ識別情報との差が小さいノード識別情報が割り当てられたノード装置がコンテンツデータを管理対象とするコンテンツ管理ノード装置となるコンテンツ配信システムにおける前記コンテンツデータを対象としてコンテンツデータ識別情報を割り当てる識別情報割当装置において、前記ノード装置を対象とするノード識別情報、前記コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、前記コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定する分割コンテンツ識別情報割当手段を備えたことを特徴とするものである。
【００１４】
また、請求項２記載の本発明では、請求項１に記載の発明において、前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置の重複を判定する分割コンテンツ識別情報判定手段を備え、前記分割コンテンツ識別情報割当手段は、前記分割コンテンツ識別情報判定手段によってコンテンツ管理ノード装置が重複しないと判定される分割コンテンツ識別情報を決定する機能を有することを特徴とするものである。
【００１５】
また、請求項３記載の本発明では、請求項２に記載の発明において、前記ノード装置は、前記分割コンテンツ識別情報割当手段によって割り当てられた分割コンテンツ識別情報に基づいて検索情報を送信し、当該分割コンテンツ識別情報のコンテンツ管理ノード装置から、分割コンテンツ識別情報に対応する分割コンテンツデータが保存されているノード装置のノード識別情報を受信する機能を有することを特徴とするものである。
【００１６】
また、請求項４記載の本発明では、請求項１に記載の発明において、前記割当識別情報領域の中から前記分割コンテンツ識別情報を仮に決定する分割コンテンツ識別情報仮決定手段と、前記分割コンテンツ識別情報仮決定手段によって決定された前記分割コンテンツ識別情報の差が所定値以上であるか否かを判定する分割コンテンツ識別情報判定手段と、を備え、前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、再度、前記分割コンテンツ識別情報を仮に決定する機能を有し、前記分割コンテンツ識別情報割当手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値以上となると判定された場合には、当該分割コンテンツ識別情報を割り当てる機能を有することを特徴とするものである。
【００１７】
また、請求項５記載の本発明では、請求項４に記載の発明において、前記複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出する分割コンテンツデータ抽出手段を備え、前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツデータ抽出手段によって抽出されたデータから、前記複数の分割コンテンツデータのそれぞれを対象とした分割コンテンツ識別情報を仮に決定する機能を有することを特徴とするものである。
【００１８】
また、請求項６記載の本発明では、請求項５に記載の発明において、前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、前記分割コンテンツデータ抽出手段によってデータが抽出される所定の抽出条件を変更する抽出条件変更手段を備え、前記分割コンテンツデータ抽出手段は、前記複数の分割コンテンツデータから、前記抽出条件変更手段によって変更された所定の抽出条件に基づくデータを再度抽出する機能を有し、前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツデータ抽出手段によって再度抽出されたデータから、再度、前記分割コンテンツ識別情報を仮に決定する機能を有することを特徴とするものである。
【００１９】
また、請求項７記載の本発明では、請求項４に記載の発明において、前記複数の分割コンテンツデータには、分割コンテンツデータに対応する付加情報が含まれており、前記分割コンテンツ識別情報仮決定手段は、前記付加情報から分割コンテンツ識別情報を仮に決定する機能を有することを特徴とするものである。
【００２０】
また、請求項８記載の本発明では、請求項７に記載の発明において、前記複数の分割コンテンツデータには、前記付加情報として、前記複数の分割コンテンツデータを含むコンテンツデータに対応する第一の付加情報と、当該複数の分割コンテンツデータ毎に対応する第二の付加情報と、が含まれており、前記分割コンテンツ識別情報仮決定手段は、前記第一の付加情報及び前記第二の付加情報から分割コンテンツ識別情報を仮に決定する機能を有することを特徴とするものである。
【００２１】
また、請求項９記載の本発明では、請求項８に記載の発明において、前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、第二の付加情報を変更する付加情報変更手段を備え、前記分割コンテンツ識別情報仮決定手段は、前記第一の付加情報と、前記付加情報変更手段によって変更された前記第二の付加情報とから、再度、前記分割コンテンツ識別情報を仮に決定する機能を有することを特徴とするものである。
【００２２】
また、請求項１０記載の本発明では、請求項１から３のいずれかに記載の発明において、前記分割コンテンツ識別情報を割り当てる複数の分割コンテンツデータの分割数を判定する分割数判定手段と、前記分割数判定手段によって判定された複数の分割コンテンツデータの分割数に基づいて、前記割合識別情報領域を当該分割数に分けて、複数の分割割当識別情報領域として決定する分割割当識別情報領域決定手段と、を備え、前記分割コンテンツ識別情報割当手段は、前記分割割当識別情報領域決定手段によって決定された複数の分割割当識別情報領域毎に、前記分割コンテンツ識別情報を割り当てる機能を有することを特徴とするものである。
【００２３】
また、請求項１１記載の本発明では、ネットワークを介してそれぞれ接続された複数のノード装置間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、前記ノード装置へ前記コンテンツデータの配信を可能とし、各コンテンツデータには、コンテンツデータを識別するコンテンツ識別情報が付され、各ノード装置には、当該ノード装置を識別するノード識別情報が付され、コンテンツ識別情報との差が小さいノード識別情報が割り当てられたノード装置がコンテンツデータを管理対象とするコンテンツ管理ノード装置となるコンテンツ配信システムにおける前記コンテンツデータを対象としてコンテンツデータ識別情報を割り当てる識別情報割当装置の情報処理方法において、前記識別情報割当装置は、前記ノード装置を対象とするノード識別情報、前記コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、前記コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノードがそれぞれ異なるように分割コンテンツ識別情報を決定する分割コンテンツ識別情報割当ステップを有することを特徴とするものである。
【００２４】
また、請求項１２記載の本発明では、コンピュータに、請求項１から１０のいずれかに記載の識別情報割当装置の各手段として機能させるためのものである。
【発明の効果】
【００２５】
請求項１、１１又は１２に記載の発明によれば、コンテンツ識別情報との差が小さいノード識別情報が割り当てられたノード装置がコンテンツデータを管理対象とするコンテンツ管理ノード装置となる。ノード識別情報、コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定する。従って、コンテンツデータを管理対象とするコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定するため、コンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【００２６】
請求項２に記載の発明によれば、複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置の重複を判定し、コンテンツ管理ノード装置が重複しないと判定される分割コンテンツ識別情報を決定する。従って、コンテンツ管理ノード装置の重複の判定が行われることによって、確実に、コンテンツ管理ノード装置がそれぞれ異ならせて、分割コンテンツ識別情報を決定するため、コンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を防止することができる。
【００２７】
請求項３に記載の発明によれば、割り当てられた分割コンテンツ識別情報に基づいて検索情報を送信し、その分割コンテンツ識別情報のコンテンツ管理ノード装置から、分割コンテンツ識別情報に対応する分割コンテンツデータが保存されているノード装置のノード識別情報を受信する。従って、検索情報が送信され、分割コンテンツデータが保存されているノード装置のノード識別情報を送信するコンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を防止することができる。
【００２８】
請求項４に記載の発明によれば、割当識別情報領域の中から分割コンテンツ識別情報を仮に決定し、その分割コンテンツ識別情報の差が所定値未満となると判定された場合には、再度、分割コンテンツ識別情報を仮に決定し、その分割コンテンツ識別情報の差が所定値以上となると判定された場合には、その分割コンテンツ識別情報を割り当てる。従って、分割コンテンツ識別情報の差が所定値以上となるか否かの判定を行って、分割コンテンツ識別情報の差が所定値以上とするため、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【００２９】
請求項５に記載の発明によれば、複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出し、その抽出されたデータから、複数の分割コンテンツデータのそれぞれを対象とした分割コンテンツ識別情報を仮に決定する。従って、複数の分割コンテンツデータ毎に、それら複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出し、分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性が低くなり、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【００３０】
請求項６に記載の発明によれば、分割コンテンツ識別情報の差が所定値未満となると判定された場合には、所定の抽出条件を変更し、複数の分割コンテンツデータから、変更された所定の抽出条件に基づくデータを再度抽出し、再度抽出されたデータから、再度、分割コンテンツ識別情報を仮に決定する。従って、複数の分割コンテンツデータ毎に、それら複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出し、分割コンテンツ識別情報を仮に決定し、その結果、分割コンテンツ識別情報の差が所定値未満となると判定された場合には、所定の抽出条件を変更させて、その変更させた所定の抽出条件に基づくデータを再度抽出し、分割コンテンツ識別情報を再度仮に決定するため、分割コンテンツ識別情報が同一となることがなく、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【００３１】
請求項７に記載の発明によれば、複数の分割コンテンツデータには、分割コンテンツデータに対応する付加情報が含まれており、付加情報から分割コンテンツ識別情報を仮に決定する。従って、複数の分割コンテンツデータに対応する付加情報から分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性が低くなり、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【００３２】
請求項８に記載の発明によれば、複数の分割コンテンツデータには、付加情報として、複数の分割コンテンツデータを含むコンテンツデータに対応する第一の付加情報と、それら複数の分割コンテンツデータ毎に対応する第二の付加情報と、が含まれており、第一の付加情報及び第二の付加情報から分割コンテンツ識別情報を仮に決定する。従って、コンテンツデータに対応する第一の付加情報と、複数の分割コンテンツデータのそれぞれに対応する第二の付加情報と、から分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性が低くなり、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【００３３】
請求項９に記載の発明によれば、分割コンテンツ識別情報の差が所定値未満となると判定された場合には、第二の付加情報を変更し、第一の付加情報と変更された第二の付加情報とから、再度、分割コンテンツ識別情報を仮に決定する。従って、コンテンツデータに対応する第一の付加情報と、複数の分割コンテンツデータのそれぞれに対応する第二の付加情報と、から分割コンテンツ識別情報を仮に決定し、その結果、分割コンテンツ識別情報の差が所定値未満となると判定された場合には、第二の付加情報を変更させ、再度、第一の付加情報と、変更させた第二の付加情報と、から分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性がなく、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【００３４】
請求項１０に記載の発明によれば、分割コンテンツ識別情報を割り当てる複数の分割コンテンツデータの分割数を判定し、その判定された複数の分割コンテンツデータの分割数に基づいて、割合識別情報領域を分割数に分けて、複数の分割割当識別情報領域として決定し、複数の分割割当識別情報領域毎に分割コンテンツ識別情報を割り当てる。従って、複数の分割コンテンツ識別情報の分割数に割合識別情報領域が分けられ、その分けられた複数の分割割当識別情報領域毎に、複数の分割コンテンツ識別情報のそれぞれを割り当てるため、分割コンテンツ識別情報の差を小さくすることを防止し、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【発明を実施するための最良の形態】
【００３５】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、配信する情報を音楽データや映像データなどのコンテンツデータとしたコンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００３６】
［１．コンテンツ配信システムの構成等］
まず始めに、図１を参照して、情報配信システムとしてのコンテンツ配信システムの概要構成等について説明する。図１は、本実施形態に係るコンテンツ配信システムにおける端末装置である各ノード装置の接続態様の一例を示す図である。このコンテンツ配信システムは、ネットワーク上に分散配置された複数のノード装置などから構成され、ノード装置間でコンテンツデータの送受信を行うものである。また、詳しく後述するが、本実施形態におけるコンテンツ配信システムは、複数のノード装置やコンテンツデータに対応する識別情報を割り当て、コンテンツデータを投入するコンテンツデータ管理装置１０などから構成されている。
【００３７】
図１の下部枠内に示すように、ＩＸ（Internet  eＸchange）３、ＩＳＰ（Internet  Service  Provider）４、ＤＳＬ（Digital  Subscriber  Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber  To  The  Home）回線事業者（の装置）６、および通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。なお、ＤＳＬ回線業者の装置には、ＲＡＤＳＬ（Rate  adaptive  Asymmetric  Digital  Subscriber  Line）回線の装置も含まれる。
【００３８】
コンテンツ配信システムＳは、図１の上部枠内に示すように、ネットワーク８を介して相互に接続された端末装置としての複数のノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・を備えて構成され、ピアツーピア（Ｐ２Ｐ）方式のネットワークシステムとなっている。各ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・には、ノード装置を示す情報としての固有の製造番号（たとえば、ＭＡＣアドレス）およびＩＰ（Internet  Protocol）アドレスが割り当てられている。なお、製造番号およびＩＰアドレスは、複数のノード装置１間で重複しないものである。また、以下の説明において、ノード装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置１という場合がある。
【００３９】
［１．１．ＤＨＴの概要］
以下に、本実施形態に係る分散ハッシュテーブル（以下、「ＤＨＴ」（Distributed  Hash  Table）と呼ぶ。）を利用したアルゴリズムについて説明する。
【００４０】
上述したコンテンツ配信システムＳにおいて、それらノード装置１同士が、互いに情報をやり取りする際には、お互いの位置情報としてのＩＰアドレスを認識可能な状態でなければならない。
【００４１】
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク８に参加している各ノード装置１が互いにネットワーク８に参加している全てのノード装置１のＩＰアドレスを知っておくのが単純な手法であるが、端末数が何万何十万などと多数になると、その全てのノード装置１のＩＰアドレスを覚えておくのは現実的ではない。また、任意のノード装置の電源が頻繁にＯＮ或いはＯＦＦとすると、各ノード装置１において記憶している当該任意のノード装置のＩＰアドレスの更新が頻繁になり、運用上困難となる。
【００４２】
そこで、１台のノード装置１では、ネットワーク８に参加している全てのノード装置１のうち、必要最低限の一部のノード装置１のＩＰアドレスだけを記憶しておき、ＩＰアドレスを記憶していないノード装置１については、各ノード装置１間で互いに情報を転送し合うことによりコンテンツを供給するシステムが考案されている。
【００４３】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図１の上部枠内に示すような、オーバーレイネットワーク９が構築されることになる。つまり、このオーバーレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【００４４】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提としており、このオーバーレイネットワーク９上に配置されたノード装置１を、コンテンツ配信システムＳに参加（言い換えれば、オーバーレイネットワーク９に参加）しているノード装置１という。
【００４５】
コンテンツ配信システムＳに参加している各ノード装置１の識別番号であるノードＩＤとして、それぞれのノード装置１毎にユニークな番号（固有番号）を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのｂｉｔ数を持たせる必要がある。例えば、１２８ｂｉｔの番号とすれば、２１２８＝３４０×１０３６台のノード装置を運用できる。
【００４６】
より具体的には、各ノード装置１のノードＩＤは、それぞれのノード装置１のＩＰアドレスあるいは製造番号等のノード装置１毎に固有の値を、共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して得たハッシュ値であり、一つのＩＤ空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数によりハッシュ化されて求められたノードＩＤは、当該ＩＰアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。また、本実施形態では、ＩＰアドレス（グローバルＩＰアドレス）を共通のハッシュ関数によりハッシュ化した値をノードＩＤとする。
【００４７】
また、コンテンツ配信システムＳに参加している複数のノード装置１には、一のノード装置１から他のノード装置１に配信される共用情報としてのコンテンツデータ（例えば、音楽データ、映画データ、文書データ等）が分散して記憶されているが、当該コンテンツデータにも、それぞれのコンテンツデータ毎の固有の識別番号（以下、「コンテンツＩＤ」と呼ぶ。）が付与される。また、このコンテンツＩＤは、後述するコンテンツデータ管理装置１０によって、コンテンツ配信システムＳにおけるコンテンツデータ（分割された分割コンテンツデータを含む）を対象として割り当てられる。
【００４８】
そして、このコンテンツＩＤは、ノードＩＤと同様の長さ（例えば、１２８ｂｉｔ等）とし、例えば、コンテンツの名称（コンテンツタイトル）やコンテンツの概要情報（あらすじ）等のキーワードが、ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化され（つまり、ノード装置１のＩＰアドレスのハッシュ値と同一のＩＤ空間に配置）、そのハッシュ値と最も近い（例えば、上位桁がより多く一致する）ノードＩＤを有するノード装置１が、コンテンツデータを保持するノード装置１（以下、「コンテンツ保持ノード装置」と呼ぶ。）へのリンク情報、すなわちコンテンツ保持ノード装置の位置情報であるＩＰアドレスを保持する。つまり、このコンテンツ配信システムＳにおいては、コンテンツＩＤとの差が小さいノードＩＤが割り当てられたノード装置１がコンテンツデータを管理対象とするルートノード装置（コンテンツ管理ノード装置）となる。このコンテンツ保持ノード装置は、一定の規則の下（例えば、ルートノード装置がランダムに選択する規則の下）で決定される。これにより、コンテンツデータが偏りなくコンテンツ配信システムＳ上に分散して配置される。なお、異なるコンテンツデータであっても、同一のキーワード（例えば、コンテンツの名称）になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツの名称と著作権情報（例えば、出演者名、監督名、原作者名、歌手名、作曲者名、または作詞者名等）の組み合わせとすればよい。また、一つのコンテンツデータが複数に分割された複数の分割コンテンツデータを対象とするコンテンツＩＤの決定方法については詳しく後述する。
【００４９】
このように、各ノード装置１および各コンテンツデータに付与されたノードＩＤおよびコンテンツＩＤは、共通のハッシュ関数によって生成するため、図２に示すように、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は３２ｂｉｔでノードＩＤおよびコンテンツＩＤを付与し、図示したものである。図中丸点はノードＩＤを、四角形はコンテンツＩＤを示し、反時計回りでＩＤが増加するものとする。
【００５０】
次に、どのノード装置１に、どのコンテンツデータが保持されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツＩＤを有するコンテンツデータを管理するノード装置１は、そのコンテンツＩＤに近いノードＩＤを有するノード装置１である」という規則とする。ここで、「近い」ことの定義は、当該コンテンツＩＤを超えず、コンテンツＩＤとノードＩＤとの差が一番少ないものとするが、実際には、各コンテンツデータの管理を各ノード装置１に割り振る際に、一貫していればよく、例えば、当該コンテンツＩＤを超えるか否かは関することなく、コンテンツＩＤとノードＩＤとの差が一番少ないものとしてもよい。図２に示す例では、この定義に基づいて、コンテンツＩＤａは、当該コンテンツＩＤａに近いノードＩＤ（以下、「ノードＩＤａ」と呼ぶ。）を有するノード装置１に管理され、コンテンツＩＤｂは、当該コンテンツＩＤｂに近いノードＩＤ（以下、「ノードＩＤｂ」と呼ぶ。）を有するノード装置１に管理され、コンテンツＩＤｃは、当該コンテンツＩＤｃに近いノードＩＤ（以下、「ノードＩＤｃ」と呼ぶ。）を有するノード装置１に管理される。
【００５１】
なお、ここで「管理」というのは、コンテンツデータを保持していることを意味するのではなく、「コンテンツデータが何れのノード装置１に保持されているかを認識している」ことを意味する。すなわち、図２において、ノードＩＤａを有するノード装置１は、コンテンツＩＤａを有するコンテンツデータが何れのノード装置１に保持されているかを認識しており、ノードＩＤｂを有するノード装置１およびノードＩＤｃを有するノード装置１も同様にそれぞれコンテンツＩＤｂを有するコンテンツデータおよびコンテンツＩＤｃを有するコンテンツデータが何れのノード装置１に保持されているかを認識している、ということになる。このように、あるコンテンツデータが何れのノード装置１に保持されているかを認識しているノード装置１を、そのコンテンツデータのルートノード装置（コンテンツ管理ノード装置の一例）と呼ぶ。つまり、ノードＩＤａを有するノード装置１は、コンテンツＩＤａを有するコンテンツデータのルートノード装置であって、ノードＩＤｂを有するノード装置１は、コンテンツＩＤｂを有するコンテンツデータのルートノード装置であって、ノードＩＤｃを有するノード装置１は、コンテンツＩＤｃを有するコンテンツデータのルートノード装置である。
【００５２】
また、コンテンツ配信システムＳには、コンテンツ配信システムＳ内のノード装置をコンテンツ保持ノード装置とするためにコンテンツデータをルートノード装置へ配布する機能と、カタログリストを生成してノード装置へ提供する機能を有するコンテンツデータ管理装置１０が設けられている。
【００５３】
このように、このコンテンツ配信システムＳは、複数のノード装置間で、各ノード装置が保持しているコンテンツデータ（分割された分割コンテンツデータを含む）を互いに送受信することにより、前記ノード装置へ前記コンテンツデータの配信を可能とするシステムである。
【００５４】
［１．２．ルーティングテーブルの作成］
ここで、図３を参照して、ＤＨＴで用いるルーティングテーブルの作成手法の一例について説明する。図３は、ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【００５５】
まず、図３（ａ）に示すように、ＩＤ空間を幾つかのエリアに分割する。実際には、１６分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長８ｂｉｔの４進数で表すことにする。そして、ノード装置１ＮのノードＩＤを「１１３３」とし、このノード装置１Ｎのルーティングテーブルを作る例について説明する。
【００５６】
（レベル１のルーティング）
まず、ＩＤ空間を４分割とした場合、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「０ＸＸＸ」「１ＸＸＸ」、「２ＸＸＸ」、「３ＸＸＸ」（Ｘは０から３の自然数、以下同様。）で分けられる。ノード装置１Ｎは、当該ノード装置１Ｎ自身のノードＩＤが「１１３３」であるため、図３（ａ）中左下「１ＸＸＸ」のエリアに存在することになる。そして、ノード装置１Ｎは、自分の存在するエリア（すなわち、「１ＸＸＸ」のエリア）以外のエリア（すなわち、「０ＸＸＸ」のエリア、「２ＸＸＸ」のエリア、「３ＸＸＸ」のエリア）に存在するノード装置１を適当に選択し、当該ノードＩＤの位置情報、すなわち、当該ノードＩＤのＩＰアドレスをレベル１のテーブルに記憶する。図４がレベル１のテーブルの一例である。このテーブルでは、「０ＸＸＸ」のエリアのノードＩＤとして「０１００」、「２ＸＸＸ」のエリアのノードＩＤとして「２１３３」、「３ＸＸＸ」のエリアのノードＩＤとして「３２１３」がそれぞれ選択されている状態を示している。なお、当該レベル１の２列目はノード装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要は無い。
【００５７】
（レベル２のルーティング）
次に、図３（ｂ）に示すように、上記ルーティングによって４分割したエリアのうち、自分の存在するエリア「１１ＸＸ」を更に４分割し、更に４つのエリア「１０ＸＸ」「１１ＸＸ」、「１２ＸＸ」、「１３ＸＸ」と分ける。そして、上記と同様に自分の存在するエリア「１１ＸＸ」以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤの位置情報であるＩＰアドレスをレベル２のテーブルに記憶する。図４がレベル２のテーブルの一例である。このテーブルでは、「１０ＸＸ」のエリアのノードＩＤとして「１００３」、「１２ＸＸ」のエリアのノードＩＤとして「１２２１」が、「１３ＸＸ」のエリアのノードＩＤとして「１３１３」がそれぞれ選択されている状態を示している。なお、レベル２の２列目はノード装置１Ｎが存在するエリア「１１ＸＸ」であり、後述するレベル３にてテーブル化されるためＩＰアドレスを記憶していない。また、上記エリアにノード装置が存在しない場合には、ノードＩＤ及びＩＰアドレスの欄は空白となる。
【００５８】
（レベル３のルーティング）
さらに、上記ルーティングによって４分割したエリアのうち、自分の存在するエリア「１１３Ｘ」を更に４分割し、更に４つのエリア「１１０Ｘ」「１１１Ｘ」、「１１２Ｘ」、「１１３Ｘ」と分ける。そして、上記と同様に自分の存在するエリア「１１３Ｘ」以外のエリアに存在するノード装置１を適当に選択し、当該ノードＩＤの位置情報であるＩＰアドレスをレベル３のテーブルに記憶する。図４がレベル３のテーブルの一例である。レベル３の４列目はノード装置１Ｎが存在するエリアであり、後述するレベル４にてテーブル化されるためＩＰアドレスを記憶していない。また、上記エリアにノード装置が存在しない場合には、ノードＩＤ及びＩＰアドレスの欄は空白となる。
【００５９】
このようにして、レベル４まで同様にルーティングテーブルを図４に示すように作成することにより、８ｂｉｔのＩＤ全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【００６０】
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置１が夫々作成して所有することになる。このように、各ノード装置１は、コンテンツ配信システムＳにおける複数のノード装置１のうち一部のノード装置１のノードＩＤ（識別情報）とＩＰアドレス（位置情報）とを関連付けたルーティングテーブルを有しており、このルーティングテーブルは後述のルーティングテーブル記憶手段に記憶される。
【００６１】
［１．３．コンテンツデータの検索方法］
次に、図５を参照して、コンテンツデータを保持しているノード装置１の検索方法の一例について説明する。図５は、ＤＨＴによりコンテンツデータを保持しているノード装置１が検索される様子の一例を示す図である。
【００６２】
ここでは、ノードＩＤ「１１３３」のノード装置１Ｎが、コンテンツＩＤ「３０２０」を有するコンテンツデータを探す際の手順について説明する。なお、以下このようにコンテンツデータを探し、コンテンツデータの受信を要求するノード装置を「リクエストノード装置」と呼ぶ。
【００６３】
リクエストノード装置１Ｎは、自己が保持しているルーティングテーブルのレベル１のテーブルを参照して、コンテンツＩＤ「３０２０」と同じエリアのノードＩＤを持つノード装置のノードＩＤを宛先識別情報としてコンテンツデータ配信元情報（コンテンツ保持ノード装置の位置情報を含む情報）の送信要求（以下、「コンテンツ検索メッセージ」と呼ぶ。）を送信する。すなわち、コンテンツＩＤ「３０２０」は「３ＸＸＸ」のエリアであるため、当該「３ＸＸＸ」のエリアに属すノード装置１のうち、ＩＰアドレスを知っている（すなわち、自己が保持しているルーティングテーブルにＩＰアドレスが記憶されている）ノード装置１Ａ（ノードＩＤ「３２１３」）に対してコンテンツ検索メッセージを送信する。このように、コンテンツ検索メッセージはコンテンツに対応する固有の識別情報であるコンテンツＩＤを含むものであり、このコンテンツＩＤはコンテンツ検索メッセージにおいて宛先識別情報として用いられる。
【００６４】
図５に示す例によれば、ノードＩＤが「３２１３」であるノード装置１ＡのＩＰアドレスがリクエストノード装置１Ｎのルーティングテーブル（図４参照。）に記憶されているので、リクエストノード装置１Ｎは、ノードＩＤが「３２１３」であるノード装置１Ａに対してコンテンツ検索メッセージを送信する。
【００６５】
次に、コンテンツ検索メッセージを受信したノード装置１Ａは、このコンテンツ検索メッセージが自ノード装置１Ａ宛のメッセージであるか否かを判定する。自ノード装置１Ａ宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルとに基づいて行われる。具体的には、宛先識別情報が自ノード装置１Ａの識別情報と近いか否かが判定される。即ち、宛先識別情報に対して、ノード装置１Ａ自身が保持しているルーティングテーブルに記憶されているノード装置の識別情報から、一番近いノード装置の識別情報が、自身であるか他のノード装置であるかを判定する。ここでは、自ノード装置１Ａの識別情報よりも他のノード装置の識別情報の方が、宛先識別情報に近いため、ノード装置１Ａは、当該ノード装置１Ａ自身が保持しているルーティングテーブルのレベル２のテーブルを参照して、「３０ＸＸ」のエリアに属すノード装置１のうち、ＩＰアドレスを知っているノード装置１Ｂ（ノードＩＤ「３０３１」）に対してコンテンツ検索メッセージを転送する。
【００６６】
このように、コンテンツＩＤの桁を上から順に適合していく要領でコンテンツ検索メッセージの転送が進み、最終的に当該コンテンツデータを管理するノード装置１Ｃ、すなわちルートノード装置に辿り着くと、当該ルートノード装置は、コンテンツ検索メッセージに含まれるコンテンツＩＤ「３０２０」を、自身が管理している後述のインデックス情報の中から検索し、当該コンテンツデータを所有しているコンテンツ保持ノード装置１のＩＰアドレス等をリクエストノード装置１Ｎに返信するようになっている。なお、コンテンツ検索メッセージなどのメッセージを目的のノード装置へ辿り着くまでに、上述のように転送する仕組みをＤＨＴルーティングと呼ぶ。
【００６７】
こうして、リクエストノード装置１Ｎは、上記ルートノード装置１Ｃから、コンテンツＩＤ「３０２０」のコンテンツデータの位置情報、即ち、コンテンツＩＤ「３０２０」のコンテンツデータを保持するコンテンツ保持ノード装置１のＩＰアドレスを受信して知ることになり、当該コンテンツ保持ノード装置１から、そのコンテンツデータをダウンロードして取得することになる。
【００６８】
［１．４．インデックステーブルへの登録方法］
このような構成のコンテンツ配信システムＳの中で、例えば、あるノード装置１が新しいコンテンツデータを、コンテンツ配信システムＳ上の他のノード装置１から検索可能となるように公開する際の手法について述べる。このノード装置１がコンテンツデータを記憶し、保持するコンテンツ保持ノード装置となる。
【００６９】
コンテンツデータ管理装置１０から配布されたコンテンツデータを記憶するコンテンツ保持ノード装置は、記憶したコンテンツデータのコンテンツＩＤと同じノードＩＤを持つノード装置に向けて（このノード装置が実在するか否かはこの時点ではわからない。）登録メッセージを送信する。そして、この登録メッセージも、上記コンテンツ検索メッセージと同様にルーティングテーブルに従って、次々と転送されていき、当該登録メッセージに含まれるコンテンツＩＤに最も近いノードＩＤを有するノード装置１まで転送されたところで、そのノード装置１はもはや転送先のノード装置１が他にないと判断すると、当該ノード装置１自身がそのコンテンツのルートノード装置となるべきだと判断し、当該登録メッセージに含まれる当該コンテンツＩＤ及びコンテンツ保持ノードのノードＩＤやＩＰアドレス（以下、これらを「インデックス情報」と呼ぶ。）をインデックス情報として記憶する。
【００７０】
更にまた、本実施形態では、登録メッセージがルートノード装置へ転送される経路の途中のノード装置１でも、登録メッセージに含まれるインデックス情報をキャッシュとして保持するように構成されており、このようなノード装置をキャッシュノード装置という。これにより、ルートノード装置がコンテンツを検索するためのコンテンツ検索メッセージを受信するより前に、キャッシュノード装置にコンテンツ検索メッセージが転送された時点でキャッシュノード装置がコンテンツ保持ノード装置のＩＰアドレスやノードＩＤを、コンテンツの所在を検索したリクエストノード装置に返信することが可能になる。なお、本実施形態においては、コンテンツ検索メッセージに対して少なくともコンテンツ保持ノード装置のＩＰアドレスを返信することとするが、ノードＩＤをコンテンツ保持ノード装置のＩＰアドレスと共に返信するようにしてもよい。
【００７１】
登録メッセージを転送していく際には、通常、上述のようにキャッシュノード装置が登録メッセージに基づいたインデックス情報を保持していく。
【００７２】
ここで、図６（ａ）に示すように、ノードＩＤが「１３０１」であるノード装置１ＭをコンテンツＩＤ「３０２０」であるコンテンツを保持するコンテンツ保持ノード装置とし、ノードＩＤが「３０１１」であるノード装置１ＣをコンテンツＩＤ「３０２０」であるコンテンツのルートノード装置とした場合におけるインデックス情報の保持について図６（ａ）、（ｂ）を参照して説明する。
【００７３】
図６（ａ）、（ｂ）に示すように、コンテンツ保持ノード装置であるノード装置１Ｍがインデックス情報を含む登録メッセージを送信すると、これを受け取ったノード装置１Ａは、当該インデックス情報を保持することによりキャッシュノード装置（１）として機能する。キャッシュノード装置（１）は、当該登録メッセージを転送する。当該登録メッセージを受け取ったノード装置１Ｂは、当該インデックス情報を保持することによりキャッシュノード装置（２）として機能する。キャッシュノード装置（２）は、当該登録メッセージを転送する。当該登録メッセージを受け取ったノード装置１Ｃは、当該インデックス情報を保持することによりルートノード装置として機能する。このようにノード装置１Ａ，１Ｂ，１Ｃは登録メッセージに含まれるインデックス情報を保持することになる。
【００７４】
ところで、ルートノード装置やキャッシュノード装置におけるインデックス情報の保持は、図７に示すようなインデックステーブルにより行われる。図７はルートノード装置１Ｃにおけるインデックステーブルの例を示したものであり、自ノード装置が管理対象であるコンテンツＩＤ「３０２０」のコンテンツに関するコンテンツ保持ノード装置のノードＩＤやＩＰアドレスなどを記憶する他、キャッシュノード装置としてコンテンツＩＤ「２０２１」のコンテンツに関するコンテンツ保持ノード装置の識別情報を記憶している。なお、インデックステーブルには、コンテンツＩＤ、コンテンツ保持ノード装置のノードＩＤやＩＰアドレスの他、著作権情報なども記憶することができる。
【００７５】
［１．５．コンテンツＩＤの決定方法］
このように配信されるコンテンツデータを対象として、ＩＤ空間にコンテンツＩＤが決定され、割り当てられるが、このようなコンテンツデータが複数に分割された分割コンテンツデータを対象とする場合におけるコンテンツＩＤの決定方法について図８を用いて以下に説明する。
【００７６】
複数の分割コンテンツデータというのは、一つのコンテンツデータを複数に分割されたコンテンツデータである。具体的には、一つのコンテンツデータが大きなサイズである場合には、そのコンテンツデータを分割コンテンツデータとして分割して保存させたり、予め複数に分割され、相互に関連のある分割コンテンツデータ（例えば、４つに分けられた連続映像データなど）をそれぞれ別々に保存させたりすることによって、コンテンツデータの配信を容易とすることができる。
【００７７】
しかし、コンテンツＩＤが連番で決定され、又は、ある程度同じ範囲として決定されてしまうと、図８（ａ）に示すように、分割コンテンツデータ（分割コンテンツデータを保存しているコンテンツ保持ノード装置）が分散されていても、コンテンツＩＤが近い、即ち、ルートノード装置が重複する、又は、ルートノード装置が近くに配置されることによって、例えば、その分割コンテンツデータを実際に保存しているコンテンツ保持ノード装置からルートノード装置に向かって発行される登録メッセージや、分割コンテンツデータを要求するためにコンテンツ保持ノード装置の位置情報をルートノード装置に問い合わせるコンテンツ検索メッセージなど、ルートノード装置へのアクセス集中や、そのルートノード装置のコンテンツＩＤに相対的に近いノード装置へのアクセス集中が生ずるおそれがあった。
【００７８】
そこで、本実施形態におけるコンテンツ配信システムＳにおいては、図８（ｂ）に示すように、複数の分割コンテンツデータを対象とするコンテンツＩＤを分散させることによって、ルートノード装置を分散させ、登録メッセージやコンテンツ検索メッセージなど、ルートノード装置へのアクセス集中や、そのルートノード装置のノードＩＤに相対的に近いノード装置へのアクセス集中を軽減することができる。
【００７９】
［２．コンテンツデータ管理装置１０の構成等の説明］
次に、図面を参照して、コンテンツデータ管理装置１０の構成及び動作について説明する。図９は、本実施形態に係るコンテンツ配信システムＳにおけるコンテンツデータ管理装置１０の概略構成を示す図である。
【００８０】
コンテンツデータ管理装置１０は、専用のコンピュータの他、一般のサーバコンピュータを適用可能であり、図９に示すように、ＣＰＵ（Central  Processing  Unit）１０２と、各種プログラム等を記憶（記憶）する書き換え可能な主記憶装置としての第１記憶部１０３と、各種データ等を記憶するＨＤＤ等から構成された第２記憶部１０４と、ルータ１２０を介してネットワーク８に参加している他のノード装置１との間で通信を行うためのネットワークインターフェイス１０５と、コンテンツ配信システムＳの管理者によってコンテンツデータ管理装置１０の制御を行うために情報を入力する入力手段であるマウス１０７ａやキーボード１０７ｂと、入力手段から入力された情報を処理するための周辺機器制御チップ１０６と、ＣＰＵ１０２の制御によりイメージデータを受け取り、内部のビデオメモリ（図示せず）に書き込み、このビデオメモリに書き込んだデータを後述のディスプレイ１０９に表示するビデオチップ１０８等を備えて構成され、これらの各種構成要素はシステムバス１０１を介して相互に接続されている。なお、本実施形態においては、ＣＰＵ１０２と第１記憶部１０３とで制御手段１１４を構成している。
【００８１】
（第１記憶部１０３について）
また、第１記憶部１０３には、ノード装置１のコンピュータとしての基本的な機能を提供するためのオペレーティングシステム（ＯＳ）プログラム１１０、ディスプレイ１０９の制御等を行うための画面制御プログラム１１１、コンテンツ配信システムＳにコンテンツを投入する毎にコンテンツの一覧表であるカタログリストを更新するためのカタログ更新プログラム１１２と、コンテンツ配信システムＳにコンテンツを新規に投入するための新規投入コンテンツプログラム１１３等を記憶しており、これらはＣＰＵ１０２によって読み出され、ＣＰＵ１０２によってこれらのプログラムに従った機能が実行される。なお、「コンテンツ配信システムＳにコンテンツを投入」とは、コンテンツデータ管理装置１０が、あるコンテンツに関してコンテンツ保持ノード装置となるノード装置１を決定し、当該決定したノード装置１にコンテンツデータを配布することを意味する。
【００８２】
ここで、ＯＳプログラム１１０は、ＣＰＵ１０２によって読み出されて実行されることにより、マウス１０７ａやキーボード１０７ｂに関する機能や、第１記憶部１０３や第２記憶部１０４などのメモリ管理等のコンテンツデータ管理装置１０であるコンピュータの基本的な機能を実行可能にするものである。そして、このＯＳプログラム１１０がＣＰＵ１０２によって実行された状態で、上述の画面制御プログラム１１１、カタログ更新プログラム１１２、新規投入コンテンツプログラム１１３等が第１記憶部１０３から読み出されて実行される。
【００８３】
なお、ＯＳプログラム１１０、画面制御プログラム１１１、カタログ更新プログラム１１２、新規投入コンテンツプログラム１１３等は、例えば、ネットワーク８に接続されたサーバ等から、ネットワークインターフェイス１０５を介して、第１記憶部１０３にダウンロードされるようにしてもよく、又ＣＤ−ＲＯＭ等の記録媒体に記録されてから当該記録媒体のドライブを介して、第１記憶部１０３に読み込まれるようにしてもよい。
【００８４】
（第２記憶部１０４について）
第２記憶部１０４には、カタログ更新プログラムによって生成され、コンテンツ配信システムＳ内にて提供されているコンテンツがリスト化されたカタログリストを記憶するカタログリスト記憶領域１１５と、コンテンツ配信システムＳにおいて提供されているコンテンツのデータを記憶する投入済コンテンツデータ記憶領域１１６と、コンテンツ配信システムＳにおいて新規に提供されるコンテンツのデータを記憶するコンテンツデータ記憶手段としての新規コンテンツデータ記憶領域１１７とを有している。
【００８５】
（制御手段１１４について）
制御手段１１４は、上述のようにＣＰＵ１０２と第１記憶部１０３とから構成され、ＣＰＵ１０２が第１記憶部１０３に記憶された各種プログラム１１０〜１１３を読み出して実行することにより、ノード装置１全体を統括制御し、かつ、後述する表示制御手段、コンテンツデータ識別情報決定手段、分割コンテンツ識別情報割当手段、分割コンテンツ識別情報仮決定手段、分割コンテンツ識別情報判定手段、付加情報変更手段、コンテンツ保持ノード装置決定手段、コンテンツ保持要求手段等として機能するようになっている。
【００８６】
なお、ＣＰＵ１０２が画面制御プログラム１１１を実行することによって表示制御手段等として、またＣＰＵ１０２がカタログ更新プログラム１１２を実行することによってカタログ更新手段等として、またＣＰＵ１０２が新規投入コンテンツプログラム１１３を実行することによって、コンテンツデータ識別情報決定手段、分割コンテンツ識別情報割当手段、分割コンテンツ識別情報仮決定手段、分割コンテンツ識別情報判定手段、付加情報変更手段、コンテンツ保持ノード装置決定手段、コンテンツ保持要求手段等として、それぞれ機能するようになっている。
【００８７】
（表示制御手段について）
表示制御手段は、ビデオチップ１０８及びディスプレイ１０９を制御して、各種の映像情報（画像情報）を表示させる機能を有している。すなわち、表示制御手段は、ディスプレイ１０９にどのように映像を表示させるかを制御する。
【００８８】
（コンテンツデータ識別情報決定手段について）
コンテンツデータ識別情報決定手段は、新規にコンテンツ配信システムＳに投入するコンテンツデータの識別情報であるコンテンツＩＤを決定する機能を有する。
【００８９】
より具体的には、コンテンツデータ識別情報決定手段は、ランダム演算によってランダムな値を算出し、このようにランダムに算出した値を、上記ノードＩＤを得るときと共通のハッシュ関数によりハッシュ化することによってコンテンツＩＤを決定する。
【００９０】
（分割コンテンツ識別情報割当手段について）
特に、分割コンテンツ識別情報割当手段は、一つのコンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象とするコンテンツＩＤを決定し、割り当てる機能を有する。この分割コンテンツ識別情報割当手段は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツＩＤのルートノード装置がそれぞれ異なるようにコンテンツＩＤを決定することとなる。
【００９１】
（分割コンテンツ識別情報仮決定手段について）
分割コンテンツ識別情報仮決定手段は、一つのコンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象とするコンテンツＩＤを仮に決定する機能を有する。
【００９２】
（分割コンテンツ識別情報判定手段について）
分割コンテンツ識別情報判定手段は、複数の分割コンテンツデータのそれぞれを対象として仮に決定されたコンテンツＩＤのルートノード装置の重複を判定する機能を有する。
【００９３】
（付加情報変更手段について）
付加情報変更手段は、複数の分割コンテンツデータのそれぞれを対象として、仮に決定されたコンテンツＩＤのルートノード装置が重複する、又は、コンテンツＩＤが所定値未満であると判定された場合に、複数の分割コンテンツデータのそれぞれに付されている付加情報を変更する機能を有する。
【００９４】
（コンテンツ保持ノード装置決定手段について）
コンテンツ保持ノード装置決定手段は、新規コンテンツデータ記憶領域１１７に記憶したコンテンツデータを保持させるノード装置、すなわちコンテンツ保持ノード装置を決定する機能を有している。
【００９５】
このコンテンツ保持ノード装置決定手段は、コンテンツ保持ノード装置を決定するにあたり、ランダムにノードＩＤ（識別情報）を算出し、このように算出したノードＩＤを有するノード装置１をコンテンツ保持ノード装置とする。
【００９６】
（コンテンツ保持要求手段について）
コンテンツ保持要求手段は、コンテンツ保持ノード装置決定手段によって決定したコンテンツ保持ノード装置にコンテンツデータの保持要求を行う。このコンテンツデータの保持要求は、本実施形態においては、上記の如く決定したコンテンツ保持ノード装置とすべきノード装置に対してコンテンツデータを保持させるための要求であり、ＤＨＴルーティングによって送信される。この要求に対してコンテンツ保持ノード装置となるべきノード装置は、コンテンツデータ管理装置１０のＩＰアドレスをコンテンツデータの保持要求の中から取り出し、当該ＩＰアドレス宛に前記保持要求に対応するコンテンツデータの送信要求を送信する。コンテンツ保持要求手段は、コンテンツデータの送信要求を受信すると、保持させようとするコンテンツデータを送信要求元のノード装置へ送信する。このようにコンテンツデータ管理装置１０とノード装置１との通信においては、ＤＨＴルーティングによる通信や１対１の通信など複数種類の通信形態が適宜使い分けられる。
【００９７】
［３．ノード装置１の構成等の説明］
次に、図面を参照して、ノード装置１の構成及び動作について説明する。図１０は、本実施形態に係るコンテンツ配信システムＳにおけるノード装置１の概略構成を示す図である。
【００９８】
ノード装置１は、専用のコンピュータの他、一般のパーソナルコンピュータを適用可能であり、図１０に示すように、ＣＰＵ（Central  Processing  Unit）２０２と、各種プログラム等を記憶（記憶）する書き換え可能な主記憶装置としての第１記憶部２０３と、各種データ等を記憶するＨＤＤ等から構成された第２記憶部２０４と、ルータ２２４を介してネットワーク８に参加している他のノード装置１との間で通信を行うためのネットワークインターフェイス２０５と、ユーザによってノード装置１を遠隔操作するために所定の赤外線信号を送信及び受信するリモコン２０６と、このリモコン２０６と赤外線により通信を行うための赤外線ポート２０７と、赤外線ポート２０７を制御する周辺機器制御チップ２０８と、ＣＰＵ２０２の制御によりイメージデータを受け取り、内部のビデオメモリ（図示せず）に書き込み、このビデオメモリに書き込んだデータを後述のディスプレイ２１０に表示するビデオチップ２０９と、ＦＭ音源やＷａｖｅ  Ｔａｂｌｅ音源などの音源を有し、オーディオ信号をスピーカ２１２に出力することによってスピーカ２１２から音波を出力させる音源チップ２１１と、を備えて構成され、これらの各種構成要素はシステムバス２０１を介して相互に接続されている。なお、本実施形態においては、ＣＰＵ２０２と第１記憶部２０３とで制御手段２１３を構成している。
【００９９】
（第１記憶部２０３について）
また、第１記憶部２０３には、ノード装置１のコンピュータとしての基本的な機能を提供するためのオペレーティングシステム（ＯＳ）プログラム２１４、ディスプレイ２１０の制御等を行うための画面制御プログラム２１５、コンテンツ保持ノード装置として機能する他のノード装置から送信されるコンテンツデータをストリーミング受信し、また自ノード装置がコンテンツ保持ノード装置として機能するときには第２記憶部２０４に記憶したコンテンツデータをストリーミング配信するためのストリーム制御プログラム２１６、他のノード装置とメッセージの送受信を行うためのメッセージ監視プログラム２１７、配信されたコンテンツデータの再生等を行うためのプレイヤプログラム２１８等を記憶しており、これらはＣＰＵ２０２によって読み出され、ＣＰＵ２０２によってこれらのプログラムに従った機能が実行される。また、第１記憶部２０３には、更にインデックステーブル（図７参照）を記憶するためのインデックステーブル記憶領域２１９やルーティングテーブル（図４参照）を記憶するためのルーティングテーブル記憶領域２２０が設けられている。
【０１００】
ここで、ＯＳプログラム２１４は、ＣＰＵ２０２によって読み出されて実行されることにより、リモコン２０６の入出力に関する機能や、第１記憶部２０３や第２記憶部２０４などのメモリ管理等のノード装置１であるコンピュータの基本的な機能を実行可能にするものである。そして、このＯＳプログラム２１４がＣＰＵ２０２によって実行された状態で、上述の画面制御プログラム２１５、ストリーム制御プログラム２１６、メッセージ監視プログラム２１７、プレイヤプログラム２１８等が第１記憶部２０３から読み出されて実行される。
【０１０１】
なお、ＯＳプログラム２１４、画面制御プログラム２１５、ストリーム制御プログラム２１６、メッセージ監視プログラム２１７、プレイヤプログラム２１８等は、例えば、ネットワーク８に接続されたサーバ等から、ネットワークインターフェイス２０５を介して、第１記憶部２０３にダウンロードされるようにしてもよく、又ＣＤ−ＲＯＭ等の記録媒体に記録されてから当該記録媒体のドライブを介して、第１記憶部２０３に読み込まれるようにしてもよい。
【０１０２】
（第２記憶部２０４について）
第２記憶部２０４には、コンテンツデータ管理装置１０から投入され、コンテンツ配信システムＳ内にて提供されているコンテンツがリスト化されたカタログリストを記憶するカタログリスト記憶領域２２２と、コンテンツデータ管理装置１０等から配信されたコンテンツデータを記憶するコンテンツデータ記憶手段として機能するコンテンツデータ記憶領域２２３等を有している。
【０１０３】
（制御手段２１３について）
制御手段２１３は、上述のようにＣＰＵ２０２と第１記憶部２０３とから構成され、ＣＰＵ２０２が第１記憶部２０３に記憶された各種プログラム２１４〜２１８を読み出して実行することにより、ノード装置１全体を統括制御し、かつ、後述する表示制御手段、ストリーム制御手段、メッセージ宛先判定手段、メッセージ転送手段、コンテンツデータ取得手段、登録メッセージ生成手段、登録メッセージ送信手段、削除メッセージ生成手段、削除メッセージ送信手段、コンテンツ保持ノード情報取得手段、コンテンツ保持ノード要求情報生成手段、コンテンツ保持ノード要求情報送信手段、判断手段、ノード識別情報送信手段、デコード手段、コンテンツ再生手段等として機能するようになっている。
【０１０４】
なお、ＣＰＵ２０２が画面制御プログラム２１５を実行することによって、表示制御手段等として、またＣＰＵ２０２がストリーム制御プログラム２１６を実行することによって、ストリーム制御手段等として、またＣＰＵ２０２がメッセージ監視プログラム２１７を実行することによって、メッセージ宛先判定手段、メッセージ転送手段、コンテンツデータ取得手段、登録メッセージ生成手段、登録メッセージ送信手段、削除メッセージ生成手段、削除メッセージ送信手段、コンテンツ保持ノード情報取得手段、コンテンツ保持ノード要求情報生成手段、コンテンツ保持ノード要求情報送信手段、判断手段、ノード識別情報送信手段等として、またＣＰＵ２０２がプレイヤプログラム２１８を実行することによって、デコード手段及びコンテンツ再生制御手段等として、それぞれ機能するようになっている。
【０１０５】
（表示制御手段について）
表示制御手段は、ビデオチップ２０９及びディスプレイ２１０を制御して、各種の映像情報（画像情報）を表示させる機能を有している。すなわち、表示制御手段は、ディスプレイ２１０にどのように映像を表示させるかを制御する。
【０１０６】
（ストリーム制御手段）
ストリーム制御手段は、他のノード装置１からストリーミング配信されるコンテンツデータを受信するコンテンツデータ受信手段、及び第２記憶部２０４に記憶したコンテンツデータを他のノード装置１へストリーミング配信するコンテンツデータ配信手段等としての機能を有している。
【０１０７】
コンテンツデータ受信手段は、他のノード装置１から配信されるパケットがコンテンツパケットであると判定されたときに、そのコンテンツパケットを１パケットずつ受信し、図示しない第１記憶部２０３のリングバッファに一時的に記憶し、その後第２記憶部２０４に記憶する。また、コンテンツ配信手段は、第２記憶部２０４に記憶したコンテンツデータをコンテンツパケットに変換し、１パケットずつネットワークインターフェイス２０５を介して他のノード装置１へ送信する。なお、コンテンツデータ受信手段やコンテンツデータ配信手段は、公知のストリーミング配信用プロトコルを用いることができる他、独自の専用プロトコルを用いるようにすることもできる。
【０１０８】
（メッセージ宛先判定手段について）
メッセージ宛先判定手段は、ネットワーク８を介して受信したメッセージの宛先識別情報とルーティングテーブルとに基づいて、受信したメッセージが自ノード装置１宛であるか否かを判定する。このメッセージ宛先判定手段が判定するメッセージは、コンテンツ保持ノード装置の識別情報をルートノード装置に要求するためのコンテンツ検索メッセージ、ルートノード装置にコンテンツ保持ノード装置の識別情報を登録するための登録メッセージなどである。
【０１０９】
受信したメッセージが自ノード装置１宛であるか否かの判定は、メッセージに含まれる宛先ノードＩＤ（宛先識別情報）を取り出し、第１記憶部２０３に記憶したルーティングテーブルに基づいて後述の制御手段２１３が判定する。すなわち、各種のメッセージをネットワークインターフェイス２０５を介して受信したとき、メッセージ宛先判定手段は、受信したメッセージに含まれる宛先識別情報とルーティングテーブルに記憶したノードＩＤとを比較し、メッセージに含まれる宛先識別情報と一番近いルーティングテーブル上のノードＩＤが自ノード装置１のノードＩＤであると判定すると、自ノード装置１宛のメッセージであると判定する。
【０１１０】
（メッセージ転送手段について）
メッセージ転送手段は、メッセージ宛先判定手段によりネットワーク８を介して受信したメッセージが自ノード装置宛ではないと判定されると、受信したメッセージの宛先識別情報に基づいて、前記ルーティングテーブルに記憶されたノード装置の識別情報から送信先ノード装置を選択して、受信したメッセージを送信先ノード装置へ転送する。すなわち、メッセージ転送手段は、ルーティングテーブルに記憶されたノード装置のノードＩＤのうち、宛先識別情報に近いノードＩＤを選択し、このように選択したノードＩＤに対応するノード装置のＩＰアドレスを知り、そのＩＰアドレスをＩＰパケットの宛先として、メッセージを転送する。
【０１１１】
（コンテンツデータ取得手段について）
コンテンツデータ取得手段は、ネットワークインターフェイス２０５を介して受信したメッセージがコンテンツデータ管理装置１０からのコンテンツデータの保持要求であるときに、このコンテンツデータの保持要求に対応するコンテンツデータをコンテンツデータ管理装置１０から取得する。そして、取得したコンテンツデータをコンテンツデータ記憶手段である第２記憶部２０４に記憶する。なお、上述のように、コンテンツデータの保持要求はＤＨＴルーティングによって送受信され、コンテンツデータの送受信は１対１通信で行われる。
【０１１２】
（登録メッセージ生成手段について）
登録メッセージ生成手段は、コンテンツデータ管理装置１０から受信したコンテンツデータをコンテンツデータ記憶手段である第２記憶部２０４に記憶したとき、当該コンテンツデータの識別情報であるコンテンツＩＤを宛先識別情報とし、自ノード装置１の識別情報であるノードＩＤ及びＩＰアドレスとを含む登録メッセージを生成する。また、他のコンテンツ保持ノード装置からコンテンツデータを受信したときも同様に、受信したコンテンツデータをコンテンツデータ記憶手段である第２記憶部２０４に記憶し、登録メッセージを生成する。
【０１１３】
（登録メッセージ送信手段について）
登録メッセージ送信手段は、登録メッセージ生成手段によって生成した登録メッセージを、第２記憶部２０４に記憶したコンテンツデータのコンテンツＩＤに基づいて、ルーティングテーブルに記憶されたノード装置の識別情報から送信先ノード装置を選択して送信する。
【０１１４】
（削除メッセージ生成手段について）
削除メッセージ生成手段は、コンテンツデータ記憶手段である第２記憶部２０４に記憶したコンテンツデータを削除したとき、当該コンテンツデータの識別情報であるコンテンツＩＤと、自ノード装置１の識別情報であるノードＩＤ及びＩＰアドレスとを含む削除メッセージを生成する。
【０１１５】
（削除メッセージ送信手段について）
削除メッセージ送信手段は、削除メッセージ生成手段によって生成した削除メッセージを、第２記憶部２０４から削除したコンテンツデータのコンテンツＩＤに基づいて、ルーティングテーブルに記憶されたノード装置の識別情報から送信先ノード装置を選択して送信する。
【０１１６】
（コンテンツ保持ノード情報取得手段について）
コンテンツ保持ノード情報取得手段は、自ノード装置１において、受信したメッセージが登録メッセージであるとき、登録メッセージに含まれるコンテンツ保持ノード装置の識別情報であるノードＩＤやＩＰアドレスなどと、同じく登録メッセージに含まれるコンテンツＩＤの組からなるインデックス情報を取得する。そして、このように取得したインデックス情報をコンテンツ保持ノード情報記憶手段であるインデックステーブル記憶領域２１９に記憶する。
【０１１７】
（コンテンツ保持ノード要求情報生成手段について）
コンテンツ保持ノード要求情報生成手段は、コンテンツ検索メッセージを生成する。例えば、コンテンツデータ管理装置１０から受信したカタログリストをディスプレイ２１０に表示した後、ノード装置１のユーザによるリモコン２０６の操作によって、カタログリストの中から所望のコンテンツが選択されると、コンテンツ保持ノード要求情報生成手段は、当該選択されたコンテンツを保持するコンテンツ保持ノード装置の所在情報を検索するためのコンテンツ保持ノード要求情報であるコンテンツ検索メッセージを生成する。コンテンツ検索メッセージは、要求するコンテンツデータの識別情報であるコンテンツＩＤを宛先識別情報とし、自ノード装置１の識別情報であるノードＩＤを要求元識別情報としたメッセージである。
【０１１８】
（コンテンツ保持ノード要求情報送信手段について）
コンテンツ保持ノード要求情報送信手段は、コンテンツ検索メッセージの宛先識別情報であるコンテンツデータの識別情報と所定条件とによってルーティングテーブルに記憶されたノード装置の識別情報であるノードＩＤから送信先ノード装置を選択して、コンテンツ保持ノード要求情報であるコンテンツ検索メッセージを送信する。ここで、「所定条件」とは、ルーティングテーブルに記憶されたノードＩＤのうち、コンテンツ検索メッセージの宛先識別情報であるコンテンツＩＤと上位桁がより多く一致するノードＩＤを選択するという条件である。
【０１１９】
（判断手段について）
判断手段は、ノード装置１がネットワークインターフェイス２０５を介して、コンテンツ保持ノード要求情報であるコンテンツ検索メッセージを受信した際に、コンテンツ保持ノード情報記憶手段であるインデックステーブルに記憶されたインデックス情報、すなわちコンテンツ保持ノード装置のノードＩＤの中に、要求されたコンテンツに対するコンテンツ保持ノード装置のノードＩＤと一致する情報があるか否かを判断する。
【０１２０】
（ノード識別情報送信手段について）
ノード識別情報送信手段は、コンテンツ検索メッセージによって要求されたコンテンツに対するコンテンツ保持ノード装置のノードＩＤが記憶されている場合、当該コンテンツ保持ノード装置のノードＩＤを、当該コンテンツ検索メッセージを送信したリクエストノード装置へ向けて送信する。このときの送信先ノード装置は、コンテンツ検索メッセージに含まれる送信元識別情報、すなわちリクエストノード装置の識別情報に基づいて、他のメッセージと同様にルーティングテーブルから選択したノード装置である。このように送信することによって、コンテンツ保持ノード装置のノードＩＤを当該コンテンツ検索メッセージの送信元ノード装置へ届ける。
【０１２１】
（デコード手段について）
デコード手段は、他のノード装置１から送信されるコンテンツデータ等をディスプレイ２１０に表示し、スピーカ２１２から出力するためにデコードする。すなわち、他のノード装置１から送信されるコンテンツデータは、ストリーミング配信用のデータ形式、例えばＡＳＦ、ＷＭＡ、ＷＭＶ等のデータ形式でエンコードされており、このようにエンコードされているコンテンツデータをディスプレイ２１０やスピーカ２１２から出力できるようにデコードする。
【０１２２】
（コンテンツ再生手段について）
コンテンツ再生手段は、第１記憶部２０３のリングバッファから成るバッファ領域に順次記憶されたコンテンツデータを、順次コンテンツ再生手段により再生するものであり、このとき制御手段２１３は、ストリーム制御プログラム２１６に基づいてビデオチップ２０９及び音源チップ２１１を動作させることによりコンテンツデータが再生される。
【０１２３】
［４．コンテンツデータ管理装置１０の処理の説明］
以下、コンテンツデータ管理装置１０の詳細動作について、図１１から図１３のフローチャートを用いて更に具体的に説明する。図１１はコンテンツデータ管理装置における分割コンテンツ投入時のメイン処理を示すフローチャート、図１２はメイン処理で呼び出される分割コンテンツＩＤ決定処理を示すフローチャート、図１３は分割コンテンツＩＤ決定処理で呼び出される分割コンテンツＩＤ確認処理を示すフローチャートである。
【０１２４】
尚、制御手段１１４は、コンテンツデータ管理装置１０の管理者の操作等によって、一つのコンテンツデータを複数の分割コンテンツデータとして分割させた状態で投入する処理が選択された場合に、本メイン処理を実行することとなる。具体的には、制御手段１１４は、マウス１０７ａやキーボード１０７ｂなどの入力手段が操作されることによって、新規コンテンツデータ記憶領域１１７に記憶した新規コンテンツデータを分割して、コンテンツ配信システムＳ内に投入するために、新規コンテンツデータを指定し、その指定したコンテンツデータを保持させるコンテンツ保持ノード装置の配置数を指定したとき、メイン処理を選択したと判定することとなる。
【０１２５】
まず、制御手段１１４は、図１１に示すように、指定された分割数でコンテンツを分割する（ステップＳ１１）。この処理において、制御手段１１４は、例えば、マウス１０７ａやキーボード１０７ｂなどの入力手段を操作することによって指定された分割数を決定する。そして、制御手段１１４は、新規コンテンツデータ記憶領域１１７に記憶した新規コンテンツデータを読み出し、その指定された分割数に分割し、分割コンテンツデータとして新規コンテンツデータ記憶領域１１７に記憶する。そして、制御手段１１４は、第１記憶部１０３における所定領域に位置付けられたＮＵＭに“０”をセットする（ステップＳ１２）。
【０１２６】
そして、制御手段１１４は、ＮＵＭが分割数より小さいか否かを判定する（ステップＳ１３）。制御手段１１４は、第１記憶部１０３における所定領域に位置付けられたＮＵＭと、入力手段を操作することによって指定された分割数と、を比較することによって、ＮＵＭが分割数より小さいか否かを判定することとなる。制御手段１１４は、ＮＵＭが分割数より小さいと判定した場合には（ステップＳ１３：ＹＥＳ）、ステップＳ１４に処理を移し、ステップＳ１４に続けて、ステップＳ１５からステップＳ１７を実行し、再度、本判定を行うこととなる。一方、制御手段１１４は、ＮＵＭが分割数以上であると判定した場合には（ステップＳ１３：ＮＯ）、ステップＳ１４からステップＳ１７を実行することなく、本処理を終了する。
【０１２７】
ステップＳ１４において、制御手段１１４は、分割コンテンツＩＤ決定処理を実行する。詳しくは図１２を用いて後述するが、制御手段１１４は、ステップＳ１１において分割した複数の分割コンテンツデータのいずれかに対して、コンテンツＩＤを決定する。そして、制御手段１１４は、コンテンツＩＤの使用リストに追加する（ステップＳ１５）。この処理において、制御手段１１４は、複数に分割された分割コンテンツデータのいずれかに対して決定されたコンテンツＩＤを、第２記憶部１０４におけるその使用リストに追加する。そして、制御手段１１４は、決定したコンテンツＩＤに基づいて、分割コンテンツデータを分散ストレージシステムに投入する（ステップＳ１６）。そして、制御手段１１４は、第１記憶部１０３における所定領域に位置付けられたＮＵＭの値を“１”増加させて（ステップＳ１７）、再度、ステップＳ１３に処理を移す。このように、制御手段１１４は、ステップＳ１４からステップＳ１７を、指定した分割数だけ実行することとなる。
【０１２８】
（分割コンテンツＩＤ決定処理について）
次に、ステップＳ１４における分割コンテンツＩＤ決定処理について図１２を参照して具体的に説明する。
【０１２９】
まず、制御手段１１４は、図１２に示すように、コンテンツのタイトルにソルトを付ける（ステップＳ３１）。この処理において、制御手段１１４は、複数に分割された分割コンテンツデータのうち、第１記憶部１０３における所定領域に位置付けられたＮＵＭにセットされた値に対応して、ソルトを決定する。このソルトとは、タイトルに付加されるものであり、例えば、「その１」であったり、「Ｖｏｌ．１」であったりする。具体的には、制御手段１１４は、ＮＵＭの値を参照し、その値に“１”を加えた値を算出する。そして、制御手段１１４は、分割する前のコンテンツデータに付されたタイトル情報に、算出された値に基づくソルト情報（例えば、「その１」など）を加えて、分割コンテンツデータに対応するタイトル情報を決定し、分割コンテンツデータに含ませて記憶する。尚、このような分割コンテンツデータに対応するタイトル情報は、分割コンテンツデータに対応する付加情報である。また、分割する前のコンテンツデータに対応するタイトル情報は、コンテンツデータに対応する第一の付加情報、分割コンテンツデータに対応するソルト情報は、第二の付加情報であり、上述した付加情報は、これら第一の付加情報、第二の付加情報を含む。
【０１３０】
そして、制御手段１１４は、分割コンテンツデータに対応するタイトル情報を読み出し、そのタイトル情報に基づいて、ハッシュ関数からコンテンツＩＤを求める（ステップＳ３２）。つまり、制御手段１１４（分割コンテンツ識別情報仮決定手段）は、分割コンテンツデータのタイトル情報（第一の付加情報及び前記第二の付加情報を含む付加情報）から、コンテンツＩＤが付加可能な領域（割当識別情報領域）の中から、分割コンテンツデータを対象とするコンテンツＩＤ（分割コンテンツ識別情報）を仮に決定することとなる。このように、コンテンツデータに対応する第一の付加情報と、複数の分割コンテンツデータのそれぞれに対応する第二の付加情報と、を含む複数の分割コンテンツデータに対応する付加情報から分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性が低くなり、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。また、詳しくは後述するが、制御手段１１４は、仮に決定されたコンテンツＩＤが適正なＩＤではないと判定された場合には、ソルト情報を変更して、再度、このステップＳ３２を実行することとなる。つまり、制御手段１１４（分割コンテンツ識別情報仮決定手段）は、分割コンテンツデータに対応し、後述するように変更されたソルト情報（第二の付加情報）と、コンテンツデータに対応するタイトル情報（第一の付加情報）と、から、再度、分割コンテンツデータに対応するコンテンツＩＤ（分割コンテンツ識別情報）を仮に決定することとなる。
【０１３１】
そして、制御手段１１４は、コンテンツＩＤが他のコンテンツＩＤと重複しているか否かを判定する（ステップＳ３３）。制御手段１１４は、複数の分割コンテンツデータのそれぞれに対応するコンテンツＩＤを参照し、ステップＳ３２において複数の分割コンテンツデータのいずれかに対応して仮に決定したコンテンツＩＤと、今までに同じコンテンツデータを対象として決定された他のコンテンツＩＤと重複しているか否かを判定することとなる。制御手段１１４は、コンテンツＩＤが他のコンテンツＩＤと重複していると判定した場合には（ステップＳ３３：ＹＥＳ）、ステップＳ３４に処理を移す。一方、制御手段１１４は、コンテンツＩＤが他のコンテンツＩＤと重複していないと判定した場合には（ステップＳ３３：ＮＯ）、ステップＳ３５に処理を移す。
【０１３２】
ステップＳ３５において、制御手段１１４は、コンテンツＩＤ確認処理を実行する。詳しくは図１３を用いて詳しく後述するが、制御手段１１４は、仮に決定したコンテンツＩＤを割り当てた場合に、ルートノード装置が重複するか否かを判定することとなる。そして、制御手段１１４は、返り値がＴｒｕｅであるか否かを判定する（ステップＳ３６）。制御手段１１４は、ルートノード装置が重複すると判定された場合には（ステップＳ３６：ＮＯ）、ステップＳ３４に処理を移す。一方、制御手段１１４は、ルートノード装置が重複しないと判定された場合には（ステップＳ３５：ＹＥＳ）、仮に決定したコンテンツＩＤが確定し、本サブルーチンを終了する。
【０１３３】
一方、ステップＳ３４において、制御手段１１４は、ソルトを変更し、再度、ステップＳ３２に処理を移す。この処理において、制御手段１１４は、仮に決定した分割コンテンツデータに対応するソルト情報を変更させることによって、分割コンテンツデータに対応するタイトル情報を変更させ、ルートノード装置が重複しないようにコンテンツＩＤを決定させることとなる。つまり、このような処理を実行する制御手段１１４（分割コンテンツ識別情報仮決定手段、付加情報変更手段）は、分割コンテンツデータに対応するコンテンツＩＤの差が所定値未満（同一も含む）となると判定された場合には、ソルト情報（第二の付加情報）を変更することとなる。このように、コンテンツデータに対応する第一の付加情報と、複数の分割コンテンツデータのそれぞれに対応する第二の付加情報と、から分割コンテンツ識別情報を仮に決定し、その結果、分割コンテンツ識別情報の差が所定値未満となるなど、適正な分割コンテンツ識別情報ではないと判定された場合には、第二の付加情報を変更させ、再度、第一の付加情報と、変更させた第二の付加情報と、から分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性がなく、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【０１３４】
（分割コンテンツＩＤ確認処理について）
次に、ステップＳ３５における分割コンテンツＩＤ決定処理について図１３を参照して具体的に説明する。
【０１３５】
まず、制御手段１１４は、図１３に示すように、指定されたコンテンツＩＤのルートノード装置を求める（ステップＳ４１）。この処理において、制御手段１１４は、ステップＳ３２において分割コンテンツデータに対応して仮に決定されたコンテンツＩＤを読み出し、そのコンテンツＩＤを付した場合におけるルートノード装置を検索する。そして、制御手段１１４は、コンテンツＩＤを付した場合におけるルートノード装置を示すルートノードリストに記憶されているルートノード装置がないか否か、即ち、第２記憶部１０４に記憶されるルートノードリストが空きであるか否かを判定する（ステップＳ４２）。制御手段１１４は、ルートノードリストが空きであると判定した場合には（ステップＳ４２：ＹＥＳ）、ステップＳ４５に処理を移す。一方、制御手段１１４は、ルートノードリストが空きではないと判定した場合には（ステップＳ４２：ＮＯ）、第１記憶部１０３における所定領域に位置付けられたＩに“０”をセットし（ステップＳ４３）、ステップＳ４４に処理を移す。
【０１３６】
ステップＳ４４において、制御手段１１４は、Ｉがルートノードリストに登録してある数より小さいか否かを判定する。制御手段１１４は、第１記憶部１０３における所定領域に位置付けられたＩと、同じコンテンツデータから分割された分割コンテンツデータに対応するルートノードリストに登録されているルートノード装置の数と、を比較することによって、Ｉがルートノードリストに登録してある数より小さいか否かを判定することとなる。制御手段１１４は、Ｉがルートノードリストに登録してある数より小さいと判定した場合には（ステップＳ４４：ＹＥＳ）、ステップＳ４６に処理を移す。一方、制御手段１１４は、Ｉがルートノードリストに登録してある数以上であると判定した場合には（ステップＳ４４：ＮＯ）、ステップＳ４５に処理を移す。
【０１３７】
ステップＳ４６において、制御手段１１４は、Ｉ番目のルートノード装置と、今回のルートノード装置と、が同じであるか否かを判定する。この処理において、制御手段１１４は、Ｉ番目のルートノード装置と、ステップＳ４１において検索され、今回決定したコンテンツＩＤに対応するルートノード装置と、が同じであるか否かを判定することとなる。つまり、制御手段１１４（分割コンテンツ識別情報判定手段）は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツＩＤ（分割コンテンツ識別情報）のルートノード装置（コンテンツ管理ノード装置）の重複を判定することとなる。制御手段１１４は、Ｉ番目のルートノード装置と、今回のルートノード装置と、が同じであると判定した場合には（ステップＳ４５：ＹＥＳ）、返り値をＦａｌｓｅとして、本サブルーチンを終了する。これによって、上述したステップＳ３２において、再度、コンテンツＩＤを仮に決定させることとなる。一方、制御手段１１４は、Ｉ番目のルートノード装置と、今回のルートノード装置と、が同じではないと判定した場合には（ステップＳ４４：ＮＯ）、第１記憶部１０３における所定領域に位置付けられたＩの値を“１”増加させて（ステップＳ４７）、再度、ステップＳ４４に処理を移す。このように、制御手段１１４は、ステップＳ４４からステップＳ４７を、ルートノードリストに登録したある数だけ実行することとなる。
【０１３８】
また、ステップＳ４５において、制御手段１１４は、ルートノードリストに追加し、返り値をＴｒｕｅとして、本サブルーチンを終了する。これによって、上述したステップＳ３２において仮に決定されたコンテンツＩＤを確定させることとなる。つまり、制御手段１１４（分割コンテンツ識別情報割当手段）は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツＩＤ（分割コンテンツ識別情報）のルートノード装置（コンテンツ管理ノード装置）が重複しないと判定されるコンテンツＩＤ（分割コンテンツ識別情報）を決定することとなる。言い換えると、制御手段１１４は、複数の分割コンテンツデータのそれぞれを対象としてコンテンツＩＤ（分割コンテンツ識別情報）を割り当てる際に、複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のルートノード装置（コンテンツ管理ノード装置）がそれぞれ異なるようにコンテンツＩＤ（分割コンテンツ識別情報）を決定することとなる。
【０１３９】
従って、コンテンツデータを管理対象とするコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定するため、コンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。また、コンテンツ管理ノード装置の重複の判定が行われることによって、確実に、コンテンツ管理ノード装置がそれぞれ異ならせて、分割コンテンツ識別情報を決定するため、コンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を防止することができる。
【０１４０】
［５．ノード装置１の処理の説明］
以下、ノード装置１の詳細動作について、図１４及び図１５のフローチャートを用いて更に具体的に説明する。図１４はノード装置１におけるシステム参加時におけるノードＩＤ決定のメイン処理を示すフローチャート、図１５はメイン処理で呼び出されるノードＩＤ決定処理を示すフローチャートである。
【０１４１】
尚、制御手段２１３は、ノード装置１のユーザの操作等によって、本システムに参加する処理が選択された場合に、本メイン処理を実行することとなる。具体的には、制御手段２１３は、リモコン２０６などの入力手段が操作されることによって、本コンテンツ配信システムＳに参加するために、メイン処理を選択したと判定することとなる。また、その他の処理については説明を省略する。
【０１４２】
まず、制御手段２１３は、図１４に示すように、ノードＩＤ決定処理を実行する（ステップＳ６１）。詳しくは図１５を用いて後述するが、制御手段２１３は、ノード装置１を対象とする固有のノードＩＤを決定する。そして、制御手段２１３は、ノード装置１の不揮発性メモリなどに、決定したノードＩＤを記憶させる（ステップＳ６２）。この処理が終了した場合には、メイン処理を終了する。
【０１４３】
（ノードＩＤ決定処理について）
次に、ステップＳ６１におけるノードＩＤ決定処理について図１５を参照して具体的に説明する。
【０１４４】
まず、制御手段２１３は、図１５に示すように、端末固有な値を取得する（ステップＳ６６）。この処理において、制御手段２１３は、ノード装置１の固有な値（例えば、ＩＰアドレスあるいは製造番号等）を取得する。そして、制御手段２１３は、ステップＳ６６において取得された固有な値からノードＩＤを決める（ステップＳ６７）。この処理において、制御手段２１３は、それぞれのノード装置１のＩＰアドレスあるいは製造番号等のノード装置１毎に固有の値を、共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して、ノードＩＤを決める。そして、制御手段２１３は、ノードＩＤが他のノードＩＤと重複しているか否かを判定する（ステップＳ６８）。制御手段２１３は、ノードＩＤが他のノードＩＤと重複していると判定した場合には、固有な値を変更し（ステップＳ６９）、再度、ステップＳ６７に処理を移す。一方、制御手段２１３は、ノードＩＤが他のノードＩＤと重複していないと判定した場合には、決定したノードＩＤが確定され、本サブルーチンを終了する。これによって、制御手段２１３は、ノード装置１毎に固有のノードＩＤを決定することとなる。
【０１４５】
（その他の実施形態）
尚、上述した実施形態において、複数の分割コンテンツデータのそれぞれに対応するコンテンツＩＤに基づくルートノード装置が重複するか否かを判定していたが、これに限らず、例えば、複数の分割コンテンツデータのそれぞれに対応するコンテンツＩＤの差が、所定値以上であるか否かを判定してもよい。
【０１４６】
具体的な実施形態について以下に説明する。ここで、上述した実施形態とは異なる構成等について以下に説明し、それ以外の構成等については、説明を省略する。
【０１４７】
（分割コンテンツＩＤ確認処理について）
ステップＳ３５における分割コンテンツＩＤ確認処理について図１６を参照して具体的に説明する。図１６は分割コンテンツＩＤ決定処理で呼び出される分割コンテンツＩＤ確認処理を示すフローチャートである。
【０１４８】
まず、制御手段１１４は、分割コンテンツデータのそれぞれに対応するコンテンツＩＤリストに、今回仮に決定したコンテンツＩＤが登録されるコンテンツＩＤリストに、コンテンツＩＤが記憶されているか否か、即ち、第２記憶部１０４に記憶されているコンテンツＩＤリストが空であるか否かを判定する（ステップＳ５１）。制御手段１１４は、コンテンツＩＤリストが空であると判定した場合には（ステップＳ５１：ＹＥＳ）、ステップＳ５４に処理を移す。一方、制御手段１１４は、コンテンツＩＤリストが空ではないと判定した場合には（ステップＳ５１：ＮＯ）、第１記憶部１０３における所定領域に位置付けられたＩに“０”をセットし（ステップＳ５２）、ステップＳ５３に処理を移す。
【０１４９】
ステップＳ５３において、制御手段１１４は、ＩがコンテンツＩＤリストに登録してある数より小さいか否かを判定する。制御手段１１４は、第１記憶部１０３における所定領域に位置付けられたＩと、同じコンテンツデータから分割された分割コンテンツデータに対応するコンテンツＩＤリストに登録してあるコンテンツＩＤの数と、を比較することによって、ＩがコンテンツＩＤリストに登録してある数より小さいか否かを判定することとなる。制御手段１１４は、ＩがコンテンツＩＤリストに登録してある数より小さいと判定した場合には（ステップＳ５３：ＹＥＳ）、ステップＳ５５に処理を移す。一方、制御手段１１４は、ＩがコンテンツＩＤリストに登録してある数以上であると判定した場合には（ステップＳ５３：ＮＯ）、ステップＳ５４に処理を移す。
【０１５０】
ステップＳ５５において、制御手段１１４は、Ｉ番目のコンテンツＩＤと、今回のコンテンツＩＤと、が一定以上の差があるか否かを判定する。この処理において、制御手段１１４は、Ｉ番目のコンテンツＩＤと、上述した実施形態におけるステップＳ３２において決定されたコンテンツＩＤと、を参照し、それらの差が一定以上であるか否かを判定することとなる。つまり、制御手段１１４（分割コンテンツ識別情報判定手段）は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツＩＤ（分割コンテンツ識別情報）の差が所定値以上であるか否かを判定することとなる。制御手段１１４は、Ｉ番目のコンテンツＩＤと、今回のコンテンツＩＤと、が一定以上の差があると判定した場合には（ステップＳ５５：ＹＥＳ）、第１記憶部１０３における所定領域に位置付けられたＩの値を“１”増加させて（ステップＳ５６）、再度、ステップＳ５３に処理を移す。このように、制御手段１１４は、ステップＳ５３からステップＳ５６を、コンテンツＩＤリストに登録したある数だけ実行することとなる。一方、制御手段１１４は、Ｉ番目のコンテンツＩＤと、今回のコンテンツＩＤと、が一定以上の差がないと判定した場合には（ステップＳ５５：ＮＯ）、返り値をＦａｌｓｅとして、本サブルーチンを終了する。これによって、上述したステップＳ３２において、再度、コンテンツＩＤを仮に決定させることとなる。
【０１５１】
また、ステップＳ５４において、制御手段１１４は、分割コンテンツデータに対応するコンテンツＩＤをコンテンツＩＤリストに追加し、返り値をＴｒｕｅとして、本サブルーチンを終了する。これによって、上述したステップＳ３２において仮に決定されたコンテンツＩＤを確定させることとなる。つまり、制御手段１１４（分割コンテンツ識別情報割当手段）は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツＩＤ（分割コンテンツ識別情報）の差が所定値以上となると判定された場合には、そのコンテンツＩＤを割り当てることとなる。言い換えると、制御手段１１４は、複数の分割コンテンツデータのそれぞれを対象としてコンテンツＩＤ（分割コンテンツ識別情報）を割り当てる際に、複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のルートノード装置（コンテンツ管理ノード装置）がそれぞれ異なるようにコンテンツＩＤ（分割コンテンツ識別情報）を決定することとなる。
【０１５２】
従って、コンテンツデータを管理対象とするコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定するため、コンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。また、分割コンテンツ識別情報の差が所定値以上となるか否かの判定を行って、分割コンテンツ識別情報の差が所定値以上とするため、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【０１５３】
尚、上述した実施形態において、分割コンテンツデータに対応するタイトル情報などの付加情報に基づいて、複数の分割コンテンツデータのそれぞれに対応するコンテンツＩＤを決定したが、これに限らず、例えば、分割コンテンツデータから抽出される一部のデータに基づいて、複数の分割コンテンツデータのそれぞれに対応するコンテンツＩＤを決定してもよい。
【０１５４】
具体的な実施形態について以下に説明する。ここで、上述した実施形態とは異なる構成等について以下に説明し、それ以外の構成等については、説明を省略する。
【０１５５】
（分割コンテンツＩＤ決定処理について）
ステップＳ３５における分割コンテンツＩＤ決定処理について図１７を参照して具体的に説明する。図１７はメイン処理で呼び出される分割コンテンツＩＤ決定処理を示すフローチャートである。
【０１５６】
まず、制御手段１１４は、図１７に示すように、分割コンテンツの史書の数バイトを取得する（ステップＳ３７）。この処理において、制御手段１１４は、複数に分割された分割コンテンツデータのうち、第１記憶部１０３における所定領域に位置付けられたＮＵＭにセットされた値に対応する分割コンテンツデータの最初の数バイトを抽出し、取得する。つまり、制御手段１１４（分割コンテンツデータ抽出手段）は、複数の分割コンテンツデータから、最初の数バイトというように所定の抽出条件に基づくデータを抽出することとなる。
【０１５７】
そして、制御手段１１４は、分割コンテンツデータから抽出した最初の数バイトのデータに基づいて、ハッシュ関数からコンテンツＩＤを求める（ステップＳ３２）。つまり、制御手段１１４（分割コンテンツ識別情報仮決定手段）は、分割コンテンツデータから抽出されたデータから、コンテンツＩＤが付加可能な領域（割当識別情報領域）の中から、複数の分割コンテンツデータのそれぞれを対象としたコンテンツＩＤ（分割コンテンツ識別情報）を仮に決定することとなる。このように、複数の分割コンテンツデータ毎に、それら複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出し、分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性が低くなり、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。また、詳しくは後述するが、制御手段１１４は、仮に決定されたコンテンツＩＤが適正なＩＤではないと判定された場合には、このデータを抽出する条件を変更して、再度、このステップＳ３２を実行することとなる。つまり、制御手段１１４（分割コンテンツ識別情報仮決定手段）は、再度抽出されたデータから、再度、分割コンテンツデータに対応するコンテンツＩＤ（分割コンテンツ識別情報）を仮に決定することとなる。
【０１５８】
そして、制御手段１１４は、コンテンツＩＤが他のコンテンツＩＤと重複しているか否かを判定する（ステップＳ３３）。制御手段１１４は、コンテンツＩＤが他のコンテンツＩＤと重複していると判定した場合には（ステップＳ３３：ＹＥＳ）、ステップＳ３８に処理を移す。一方、制御手段１１４は、コンテンツＩＤが他のコンテンツＩＤと重複していないと判定した場合には（ステップＳ３３：ＮＯ）、ステップＳ３５に処理を移す。
【０１５９】
ステップＳ３５において、制御手段１１４は、詳しくは図１３などを用いて上述したが、コンテンツＩＤ確認処理を実行する。そして、制御手段１１４は、返り値がＴｒｕｅであるか否かを判定する（ステップＳ３６）。制御手段１１４は、ルートノード装置が重複すると判定された場合には（ステップＳ３６：ＮＯ）、ステップＳ３８に処理を移す。一方、制御手段１１４は、ルートノード装置が重複しないと判定された場合には（ステップＳ３５：ＹＥＳ）、仮に決定したコンテンツＩＤが確定し、本サブルーチンを終了する。
【０１６０】
一方、ステップＳ３８において、制御手段１１４は、抽出条件を変更して、再度、データを取得し、再度、ステップＳ３２に処理を移す。この処理において、制御手段１１４は、分割コンテンツデータから抽出するための抽出条件を変更する。具体的には、制御手段１１４は、分割コンテンツデータの最初の数バイトを抽出したが、これを、分割コンテンツデータの最初から数バイト後から、数バイトを抽出したり、分割コンテンツデータの最初の数十バイトを抽出したりしてもよい。言い換えると、制御手段１１４は、分割コンテンツデータから抽出する抽出位置や抽出サイズを変更させる。つまり、このような処理を実行する制御手段１１４（抽出条件変更手段）は、コンテンツＩＤ（分割コンテンツ識別情報）に対応するルートノード装置（コンテンツ管理ノード装置）が重複すると判定した場合、又は、コンテンツＩＤの差が所定値未満となると判定された場合には、データが抽出される所定の抽出条件を変更することとなる。そして、制御手段１１４は、このように変更された抽出条件に基づいて、分割コンテンツデータから一部のデータを再度抽出する。つまり、このような処理を実行する制御手段１１４（分割コンテンツデータ抽出手段）は、複数の分割コンテンツデータから、変更された所定の抽出条件に基づくデータを再度抽出することとなる。このように、複数の分割コンテンツデータ毎に、それら複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出し、分割コンテンツ識別情報を仮に決定し、その結果、分割コンテンツ識別情報に対応するコンテンツ管理ノード装置が重複すると判定した場合、又は、分割コンテンツ識別情報の差が所定値未満となると判定された場合には、所定の抽出条件を変更させて、その変更させた所定の抽出条件に基づくデータを再度抽出し、分割コンテンツ識別情報を再度仮に決定するため、分割コンテンツ識別情報が同一となることがなく、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【０１６１】
尚、上述した実施形態において、複数の分割コンテンツデータのそれぞれを対象としてコンテンツＩＤを割り当てる際に、分割コンテンツデータを対象とするコンテンツＩＤに対応するルートノード装置が重複するか、分割コンテンツデータを対象とするコンテンツＩＤの差が所定値以上であるかによって、複数の分割コンテンツデータのそれぞれを対象として割り当てられたルートノード装置がそれぞれ異なるようにコンテンツＩＤを決定したが、これに限らず、例えば、複数の分割コンテンツデータの分割数に基づいて、ノードＩＤ、コンテンツＩＤとして割当可能に配列された割合識別情報領域をその分割数に分けて、複数の分割割当識別情報領域として決定し、それら複数の分割割当識別情報領域毎に、複数の分割コンテンツデータのそれぞれを対象とするコンテンツＩＤを割り当てることによって、複数の分割コンテンツデータのそれぞれを対象として割り当てられたルートノード装置がそれぞれ異なるようにコンテンツＩＤを決定してもよい。
【０１６２】
具体的な実施形態について以下に説明する。ここで、上述した実施形態とは異なる構成等について以下に説明し、それ以外の構成等については、説明を省略する。
【０１６３】
（分割コンテンツＩＤ決定処理について）
ステップＳ１４における分割コンテンツＩＤ決定処理について図１８を参照して具体的に説明する。図１８はメイン処理で呼び出される分割コンテンツＩＤ決定処理を示すフローチャートである。
【０１６４】
まず、制御手段１１４は、図１８に示すように、ＮＵＭが“０”であるか否かを判定する（ステップＳ２１）。この処理において、制御手段１１４は、第１記憶部１０３における所定領域に位置付けられたＮＵＭの値を読み出し、ＮＵＭが“０”であるか否かを判定することとなる。制御手段１１４は、ＮＵＭが“０”であると判定した場合には（ステップＳ２１：ＹＥＳ）、コンテンツのＩＤ空間をコンテンツの分割数で分割し（ステップＳ２２）、ステップＳ２３に処理を移す。この処理において、制御手段１１４は、ステップＳ１１において決定された分割コンテンツデータの分割数を判定する。つまり、制御手段１１４（分割数判定手段）は、複数の分割コンテンツデータのそれぞれを対象とするコンテンツＩＤを割り当てる複数の分割コンテンツデータの分割数を判定することとなる。そして、制御手段１１４は、その分割数でＩＤ空間を分けて、その分けられた分割ＩＤ空間を、第１記憶部１０３における所定領域に記憶する。このように、制御手段１１４（分割割当識別情報領域決定手段）は、複数の分割コンテンツデータの分割数に基づいて、ＩＤ領域（割合識別情報領域）をその分割数に分けて、複数の分割ＩＤ領域（分割割当識別情報領域）として決定することとなる。一方、制御手段１１４は、ＮＵＭが“０”ではないと判定した場合には（ステップＳ２１：ＮＯ）、ステップＳ２２を実行することなく、ステップＳ２３に処理を移す。
【０１６５】
ステップＳ２３において、制御手段１１４は、ＮＵＭ番目のエリアにＩＤの空きがあるか否かを判定する。この処理において、制御手段１１４は、ＮＵＭ番目の分割ＩＤ空間（エリア）にコンテンツＩＤを設定するための空きがあるか否かを判定することとなる。制御手段１１４は、ＮＵＭ番目のエリアにＩＤの空きがあると判定した場合には（ステップＳ２３：ＹＥＳ）、ステップＳ２４に処理を移す。制御手段１１４は、ＮＵＭ番目のエリアにＩＤの空きがないと判定した場合には（ステップＳ２３：ＮＯ）、ステップＳ２６に処理を移す。
【０１６６】
ステップＳ２４において、制御手段１１４は、ＮＵＭ番目の分割エリア内でランダムにコンテンツＩＤを決定する。つまり、制御手段１１４（分割コンテンツ識別情報判定手段）は、ＩＤ空間（割当識別情報領域のいずれか）のうち、決定した分割ＩＤ空間（複数の分割割当識別情報領域のいずれか）から、分割コンテンツデータのいずれかを対象とするコンテンツＩＤ（分割コンテンツ識別情報）を仮に決定することとなる。そして、制御手段１１４は、ステップＳ２４において仮に決定した分割コンテンツデータのいずれかを対象とするコンテンツＩＤが、他のコンテンツデータ（分割コンテンツデータを含む）を対象とするコンテンツＩＤと重複しているか否かを判定する（ステップＳ２５）。制御手段１１４は、コンテンツＩＤが他のコンテンツＩＤと重複していると判定した場合には（ステップＳ２５：ＹＥＳ）、再度、ステップＳ２４に処理を移す。これによって、制御手段１１４（分割コンテンツ識別情報判定手段）は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツＩＤの重複を判定することとなり、重複していると判定された場合には、再度、コンテンツＩＤを決定し直し、重複しないコンテンツＩＤを決定することとなる。一方、制御手段１１４は、コンテンツＩＤが他のコンテンツＩＤと重複していないと判定した場合には（ステップＳ２５：ＮＯ）、仮に決定したコンテンツＩＤが確定し、本サブルーチンを終了する。
【０１６７】
一方、ステップＳ２６において、制御手段１１４は、ＩＤ空間全体の中からランダムにコンテンツＩＤを決定する。つまり、制御手段１１４（分割コンテンツ識別情報仮決定手段）は、ＩＤ空間（割当識別情報領域）の中から、分割コンテンツデータのいずれかを対象とするコンテンツＩＤ（分割コンテンツ識別情報）を仮に決定することとなる。そして、制御手段１１４は、ステップＳ２６において仮に決定した分割コンテンツデータのいずれかを対象とするコンテンツＩＤが、他のコンテンツデータ（分割コンテンツデータを含む）を対象とするコンテンツＩＤと重複しているか否かを判定する（ステップＳ２７）。制御手段１１４は、コンテンツＩＤが他のコンテンツＩＤと重複していると判定した場合には（ステップＳ２７：ＹＥＳ）、再度、ステップＳ２６に処理を移す。これによって、制御手段１１４は（分割コンテンツ識別情報判定手段）、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツＩＤの重複を判定することとなり、重複していると判定された場合には、再度、コンテンツＩＤを決定し直し、重複しないコンテンツＩＤを決定することとなる。一方、制御手段１１４は、コンテンツＩＤが他のコンテンツＩＤと重複していないと判定した場合には（ステップＳ２７：ＮＯ）、仮に決定したコンテンツＩＤが確定し、本サブルーチンを終了する。
【０１６８】
このように、制御手段１１４（分割コンテンツ識別情報割当手段）は、決定された複数の分割ＩＤ空間（分割割当識別情報領域）毎に、分割コンテンツデータを対象とするコンテンツＩＤ（分割コンテンツ識別情報）を割り当てることとなる。従って、複数の分割コンテンツ識別情報の分割数に割合識別情報領域が分けられ、その分けられた複数の分割割当識別情報領域毎に、複数の分割コンテンツ識別情報のそれぞれを割り当てるため、分割コンテンツ識別情報の差を小さくすることを防止し、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【０１６９】
また、上述した実施形態において、ノードＩＤをノード装置１が決定していたが、これに限らず、例えば、ノードＩＤを決定するノードＩＤ決定サーバのような装置を備えたシステムであってもよい。もちろん、上述した実施形態におけるコンテンツデータ管理装置１０がノードＩＤを決定してもよい。
【０１７０】
具体的な実施形態について以下に説明する。ここで、上述した実施形態とは異なる構成等について以下に説明し、それ以外の構成等については、説明を省略する。
【０１７１】
（ノード装置におけるノードＩＤ決定のメイン処理について）
まず、制御手段２１３は、図１９に示すように、ノードＩＤが記憶されているか否かを判定する（ステップＳ７１）。制御手段２１３は、ノード装置１の不揮発性メモリなどに既にノードＩＤが記憶されているか否かによって、ノードＩＤが記憶されているか否かを判定することとなる。制御手段２１３は、ノードＩＤが記憶されていると判定した場合には、後述するステップＳ７２及びステップＳ７３を実行することなく、ステップＳ７４に処理を移す。一方、制御手段２１３は、ノードＩＤが記憶されていないと判定した場合には、ステップＳ７２に処理を移す。
【０１７２】
ステップＳ７２において、制御手段２１３は、ノードＩＤ決定サーバ（図示せず）へノードＩＤ取得依頼メッセージを送信する。尚、このノードＩＤ取得依頼メッセージには、そのノード装置１の固有な値（例えば、ＩＰアドレスあるいは製造番号等）が含まれている。そして、制御手段２１３は、ノードＩＤ決定サーバからノードＩＤを受信する（ステップＳ７３）。この処理が終了した場合には、ステップＳ７４に処理を移す。
【０１７３】
ステップＳ７４において、制御手段２１３は、システムへの参加処理を実行する。これによって、ノード装置１は、ステップＳ７３においてノードＩＤ決定サーバから受信したノードＩＤでコンテンツ配信システムＳに参加することとなる。この処理が終了した場合には、メイン処理を終了する。
【０１７４】
（ノードＩＤ決定サーバのメイン処理について）
まず、ノードＩＤ決定サーバの制御手段（図示せず）は、図２０に示すように、電源オフであるか否かを判定する（ステップＳ８１）。この処理において、制御手段は、電源オフであると判定した場合には、本メイン処理を終了する。一方、制御手段は、電源オフではないと判定した場合には、ステップＳ８２に処理を移す。
【０１７５】
ステップＳ８２において、制御手段は、ノード装置１からノードＩＤ取得依頼メッセージを受信したか否かを判定する。この処理において、制御手段は、ノード装置１からノードＩＤ取得依頼メッセージを受信したと判定した場合には、ノードＩＤ決定処理を実行し（ステップＳ８４）、決まったノードＩＤを依頼されたノード装置１に送信する（ステップＳ８５）。尚、ノードＩＤ決定処理においては、図１５に示すような処理をノードＩＤ決定サーバの制御手段が実行することとなる。一方、制御手段は、ノード装置１からノードＩＤ取得依頼メッセージを受信していないと判定した場合には、その他の処理を実行し（ステップＳ８３）、再度、ステップＳ８２に処理を移す。このように、ノードＩＤ決定サーバによってノード装置１のノードＩＤが重複しないように決定されることとなる。
【０１７６】
また、上述した実施形態においては、コンテンツデータを保持させるコンテンツ保持ノード装置のノードＩＤを認識するために、そのコンテンツデータのルートノード装置に検索情報などの問い合わせをしたが、これに限らず、例えば、コンテンツデータ管理装置１０がコンテンツ保持ノード装置のノードＩＤを予め記憶しており、ノード装置１からコンテンツデータ管理装置１０へ検索情報などの問い合わせをしてもよい。
【０１７７】
以上、本発明の実施の形態のうちのいくつかを図面に基づいて詳細に説明したが、これらは例示であり、前記［発明の開示］の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【図面の簡単な説明】
【０１７８】
【図１】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図２】ＩＤ空間の説明図である。
【図３】ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【図４】本実施形態に係るノード装置のルーティングテーブルの一例である。
【図５】ＤＨＴによりコンテンツデータの保持元であるノード装置１が検索される様子の一例を示す図である。
【図６】コンテンツ保持ノードの登録メッセージが転送される様子をスパニングツリー状に表した図である。
【図７】本実施形態に係るノード装置のインデックステーブルの一例である。
【図８】コンテンツＩＤの決定方法を示す図である。
【図９】本実施形態におけるコンテンツデータ管理装置の概略構成例を示す図である。
【図１０】本実施形態におけるノード装置の概略構成例を示す図である。
【図１１】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図１２】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図１３】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図１４】ノード装置において実行される処理を示すフローチャートである。
【図１５】ノード装置において実行される処理を示すフローチャートである。
【図１６】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図１７】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図１８】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図１９】ノード装置において実行される処理を示すフローチャートである。
【図２０】ノードＩＤ決定サーバにおいて実行される処理を示すフローチャートである。
【符号の説明】
【０１７９】
Ｓ  コンテンツ配信システム
１  ノード装置
１０  コンテンツデータ管理装置
１１４，２１３  制御部
【図１】
2008059398.tif 000003
【図２】
2008059398.tif 000004
【図３】
2008059398.tif 000005
【図４】
2008059398.tif 000006
【図５】
2008059398.tif 000007
【図６】
2008059398.tif 000008
【図７】
2008059398.tif 000009
【図８】
2008059398.tif 000010
【図９】
2008059398.tif 000011
【図１０】
2008059398.tif 000012
【図１１】
2008059398.tif 000013
【図１２】
2008059398.tif 000014
【図１３】
2008059398.tif 000015
【図１４】
2008059398.tif 000016
【図１５】
2008059398.tif 000017
【図１６】
2008059398.tif 000018
【図１７】
2008059398.tif 000019
【図１８】
2008059398.tif 000020
【図１９】
2008059398.tif 000021
【図２０】
2008059398.tif 000022