説明

識別情報割当装置及びその情報処理方法並びにそのプログラム

【課題】複数の分割コンテンツデータを管理することに伴い、分割コンテンツ識別情報の決定によりノード装置へのアクセスの集中を軽減することができる識別情報割当装置及びその情報処理方法並びにそのプログラムを提供する。
【解決手段】識別情報割当装置は、ノード識別情報、コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、識別情報割当装置及びその情報処理方法並びにそのプログラムの技術分野に属し、より詳細には、ネットワーク上に分散配置された複数のノード装置から構成され、これらノード装置間でコンテンツデータの送受信を行うコンテンツ配信システムにおけるコンテンツデータのコンテンツ識別情報を割り当てる識別情報割当装置及びその情報処理方法並びにそのプログラムの技術分野に属する。
【背景技術】
【0002】
近年、インターネットなどのネットワークを介して、音楽、映画、トーク番組などコンテンツデータ(以下、「コンテンツ」ともいう。)を配信する、いわゆるコンテンツ配信システムの研究が盛んである。
【0003】
従来のコンテンツ配信システムの基本的構成として、特許文献1に示すように、分散ハッシュテーブル(DHT(Distributed Hash Table))を利用して論理的にオーバーレイネットワークを構築することにより、情報を効率的に分散配置して負荷分散を図る技術が提案されている。
【0004】
このシステムにおいては、端末装置である各ノード装置が、当該オーバーレイネットワークに参加している全てのノード装置へのリンク情報(例えば、IPアドレス)を認識しているわけではなく、参加の際などに得られる一部のノード装置へのリンク情報だけを保持しており、かかるリンク情報に基づき、データの問い合わせ等を行うようになっている。
【0005】
特許文献1のピアツーピア型のコンテンツ配信システムにおいては、各ノード装置がコンテンツデータを保持するコンテンツ配信サーバとなり、また、各ノード装置がコンテンツ配信要求クライアントにもなる。
【0006】
また、このようなコンテンツ配信システムにおいて、コンテンツ配信サーバであるノード装置がコンテンツデータを保持しているだけでなく、ネットワーク上の他のノード装置もコンテンツデータの複製を保持しているものが知られている。以下、コンテンツデータの複製を保持しているノード装置をコンテンツ保持ノード装置ともいう。コンテンツ配信要求クライアントであるノード装置は、要求するコンテンツをこのようなコンテンツ保持ノード装置から入手することもできる。したがって、あるコンテンツに対する配信要求が増加した場合に、コンテンツ配信サーバであるノード装置だけでなく、その複製を保持しているコンテンツ保持ノード装置からもコンテンツを配信できるため、コンテンツ配信サーバであるノード装置へのアクセスの集中を回避できるものである。以下、コンテンツ配信サーバを含めてコンテンツ保持ノード装置と呼ぶ。
【0007】
上述のようにピアツーピア型のコンテンツ配信システムにおいては、複数のコンテンツ保持ノード装置の位置情報を記憶するノード装置(以下、「ルートノード装置」と呼ぶ。)が決められており、リクエストノード装置は要求するコンテンツを保持するコンテンツ保持ノード装置の位置情報(以下、「インデックス情報」と呼ぶ。)をルートノード装置に対して要求することによって、インデックス情報を取得し、このインデックス情報に基づいてコンテンツ保持ノード装置へコンテンツデータの配信要求を行う構成をとる。
【0008】
また、ノード装置を対象としたノードID(ノード識別情報)やコンテンツデータを対象としたコンテンツID(コンテンツ識別情報)として割当可能なように割当識別情報領域が設定されており、その割当識別情報領域の中から、ノード装置固有のノードIDや、コンテンツデータ固有のコンテンツIDが割り当てられる。また、ノード装置は、その装置のノードIDがコンテンツIDに近いことを条件として、そのコンテンツデータのルートノード装置として決定されることとなる。これによって、コンテンツIDから、ルートノード装置のノードIDを検索し易くなり、ルートノード装置の所在、コンテンツデータの所在をより効率良く管理することができる。
【特許文献1】特開2006−197400号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
このようなネットワークにおいて、コンテンツデータを複数の分割コンテンツデータに分割し、それら複数の分割コンテンツデータを複数のノード装置に分散させて保存させたものがあり、それら複数の分割コンテンツデータのそれぞれを対象として複数のルートノード装置が設定される。この場合においても、複数の分割コンテンツデータのそれぞれに固有の分割コンテンツID(分割コンテンツ識別情報)が割り当てられ、ルートノード装置が決定されることとなる。
【0010】
しかしながら、一つのコンテンツデータを分割させた複数の分割コンテンツデータのそれぞれに割り当てられる固有の分割コンテンツIDが、例えば1ずつ増加させるように決定されるなど、相互に近いIDとして決定された場合には、複数の分割コンテンツデータのルートノード装置が同じになる、又は、複数の分割コンテンツデータのルートノード装置が、ノードIDの近いノード装置となることがあり、複数の分割コンテンツデータの所在情報を得るためのインデックス情報の要求や、分割コンテンツデータが複製された旨の情報などで、ルートノード装置をはじめとするノード装置へのアクセスの集中を招くおそれがあった。
【0011】
本発明は、上述したような課題に鑑みてなされたものであり、複数の分割コンテンツデータを管理することに伴い、分割コンテンツ識別情報の決定によりノード装置へのアクセスの集中を軽減することができる識別情報割当装置及びその情報処理方法並びにそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
以上のような目的を達成するために、本発明は、以下のようなものを提供する。
【0013】
すなわち、請求項1記載の本発明では、ネットワークを介してそれぞれ接続された複数のノード装置間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、前記ノード装置へ前記コンテンツデータの配信を可能とし、各コンテンツデータには、コンテンツデータを識別するコンテンツ識別情報が付され、各ノード装置には、当該ノード装置を識別するノード識別情報が付され、コンテンツ識別情報との差が小さいノード識別情報が割り当てられたノード装置がコンテンツデータを管理対象とするコンテンツ管理ノード装置となるコンテンツ配信システムにおける前記コンテンツデータを対象としてコンテンツデータ識別情報を割り当てる識別情報割当装置において、前記ノード装置を対象とするノード識別情報、前記コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、前記コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定する分割コンテンツ識別情報割当手段を備えたことを特徴とするものである。
【0014】
また、請求項2記載の本発明では、請求項1に記載の発明において、前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置の重複を判定する分割コンテンツ識別情報判定手段を備え、前記分割コンテンツ識別情報割当手段は、前記分割コンテンツ識別情報判定手段によってコンテンツ管理ノード装置が重複しないと判定される分割コンテンツ識別情報を決定する機能を有することを特徴とするものである。
【0015】
また、請求項3記載の本発明では、請求項2に記載の発明において、前記ノード装置は、前記分割コンテンツ識別情報割当手段によって割り当てられた分割コンテンツ識別情報に基づいて検索情報を送信し、当該分割コンテンツ識別情報のコンテンツ管理ノード装置から、分割コンテンツ識別情報に対応する分割コンテンツデータが保存されているノード装置のノード識別情報を受信する機能を有することを特徴とするものである。
【0016】
また、請求項4記載の本発明では、請求項1に記載の発明において、前記割当識別情報領域の中から前記分割コンテンツ識別情報を仮に決定する分割コンテンツ識別情報仮決定手段と、前記分割コンテンツ識別情報仮決定手段によって決定された前記分割コンテンツ識別情報の差が所定値以上であるか否かを判定する分割コンテンツ識別情報判定手段と、を備え、前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、再度、前記分割コンテンツ識別情報を仮に決定する機能を有し、前記分割コンテンツ識別情報割当手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値以上となると判定された場合には、当該分割コンテンツ識別情報を割り当てる機能を有することを特徴とするものである。
【0017】
また、請求項5記載の本発明では、請求項4に記載の発明において、前記複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出する分割コンテンツデータ抽出手段を備え、前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツデータ抽出手段によって抽出されたデータから、前記複数の分割コンテンツデータのそれぞれを対象とした分割コンテンツ識別情報を仮に決定する機能を有することを特徴とするものである。
【0018】
また、請求項6記載の本発明では、請求項5に記載の発明において、前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、前記分割コンテンツデータ抽出手段によってデータが抽出される所定の抽出条件を変更する抽出条件変更手段を備え、前記分割コンテンツデータ抽出手段は、前記複数の分割コンテンツデータから、前記抽出条件変更手段によって変更された所定の抽出条件に基づくデータを再度抽出する機能を有し、前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツデータ抽出手段によって再度抽出されたデータから、再度、前記分割コンテンツ識別情報を仮に決定する機能を有することを特徴とするものである。
【0019】
また、請求項7記載の本発明では、請求項4に記載の発明において、前記複数の分割コンテンツデータには、分割コンテンツデータに対応する付加情報が含まれており、前記分割コンテンツ識別情報仮決定手段は、前記付加情報から分割コンテンツ識別情報を仮に決定する機能を有することを特徴とするものである。
【0020】
また、請求項8記載の本発明では、請求項7に記載の発明において、前記複数の分割コンテンツデータには、前記付加情報として、前記複数の分割コンテンツデータを含むコンテンツデータに対応する第一の付加情報と、当該複数の分割コンテンツデータ毎に対応する第二の付加情報と、が含まれており、前記分割コンテンツ識別情報仮決定手段は、前記第一の付加情報及び前記第二の付加情報から分割コンテンツ識別情報を仮に決定する機能を有することを特徴とするものである。
【0021】
また、請求項9記載の本発明では、請求項8に記載の発明において、前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、第二の付加情報を変更する付加情報変更手段を備え、前記分割コンテンツ識別情報仮決定手段は、前記第一の付加情報と、前記付加情報変更手段によって変更された前記第二の付加情報とから、再度、前記分割コンテンツ識別情報を仮に決定する機能を有することを特徴とするものである。
【0022】
また、請求項10記載の本発明では、請求項1から3のいずれかに記載の発明において、前記分割コンテンツ識別情報を割り当てる複数の分割コンテンツデータの分割数を判定する分割数判定手段と、前記分割数判定手段によって判定された複数の分割コンテンツデータの分割数に基づいて、前記割合識別情報領域を当該分割数に分けて、複数の分割割当識別情報領域として決定する分割割当識別情報領域決定手段と、を備え、前記分割コンテンツ識別情報割当手段は、前記分割割当識別情報領域決定手段によって決定された複数の分割割当識別情報領域毎に、前記分割コンテンツ識別情報を割り当てる機能を有することを特徴とするものである。
【0023】
また、請求項11記載の本発明では、ネットワークを介してそれぞれ接続された複数のノード装置間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、前記ノード装置へ前記コンテンツデータの配信を可能とし、各コンテンツデータには、コンテンツデータを識別するコンテンツ識別情報が付され、各ノード装置には、当該ノード装置を識別するノード識別情報が付され、コンテンツ識別情報との差が小さいノード識別情報が割り当てられたノード装置がコンテンツデータを管理対象とするコンテンツ管理ノード装置となるコンテンツ配信システムにおける前記コンテンツデータを対象としてコンテンツデータ識別情報を割り当てる識別情報割当装置の情報処理方法において、前記識別情報割当装置は、前記ノード装置を対象とするノード識別情報、前記コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、前記コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノードがそれぞれ異なるように分割コンテンツ識別情報を決定する分割コンテンツ識別情報割当ステップを有することを特徴とするものである。
【0024】
また、請求項12記載の本発明では、コンピュータに、請求項1から10のいずれかに記載の識別情報割当装置の各手段として機能させるためのものである。
【発明の効果】
【0025】
請求項1、11又は12に記載の発明によれば、コンテンツ識別情報との差が小さいノード識別情報が割り当てられたノード装置がコンテンツデータを管理対象とするコンテンツ管理ノード装置となる。ノード識別情報、コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定する。従って、コンテンツデータを管理対象とするコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定するため、コンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【0026】
請求項2に記載の発明によれば、複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置の重複を判定し、コンテンツ管理ノード装置が重複しないと判定される分割コンテンツ識別情報を決定する。従って、コンテンツ管理ノード装置の重複の判定が行われることによって、確実に、コンテンツ管理ノード装置がそれぞれ異ならせて、分割コンテンツ識別情報を決定するため、コンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を防止することができる。
【0027】
請求項3に記載の発明によれば、割り当てられた分割コンテンツ識別情報に基づいて検索情報を送信し、その分割コンテンツ識別情報のコンテンツ管理ノード装置から、分割コンテンツ識別情報に対応する分割コンテンツデータが保存されているノード装置のノード識別情報を受信する。従って、検索情報が送信され、分割コンテンツデータが保存されているノード装置のノード識別情報を送信するコンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を防止することができる。
【0028】
請求項4に記載の発明によれば、割当識別情報領域の中から分割コンテンツ識別情報を仮に決定し、その分割コンテンツ識別情報の差が所定値未満となると判定された場合には、再度、分割コンテンツ識別情報を仮に決定し、その分割コンテンツ識別情報の差が所定値以上となると判定された場合には、その分割コンテンツ識別情報を割り当てる。従って、分割コンテンツ識別情報の差が所定値以上となるか否かの判定を行って、分割コンテンツ識別情報の差が所定値以上とするため、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【0029】
請求項5に記載の発明によれば、複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出し、その抽出されたデータから、複数の分割コンテンツデータのそれぞれを対象とした分割コンテンツ識別情報を仮に決定する。従って、複数の分割コンテンツデータ毎に、それら複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出し、分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性が低くなり、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【0030】
請求項6に記載の発明によれば、分割コンテンツ識別情報の差が所定値未満となると判定された場合には、所定の抽出条件を変更し、複数の分割コンテンツデータから、変更された所定の抽出条件に基づくデータを再度抽出し、再度抽出されたデータから、再度、分割コンテンツ識別情報を仮に決定する。従って、複数の分割コンテンツデータ毎に、それら複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出し、分割コンテンツ識別情報を仮に決定し、その結果、分割コンテンツ識別情報の差が所定値未満となると判定された場合には、所定の抽出条件を変更させて、その変更させた所定の抽出条件に基づくデータを再度抽出し、分割コンテンツ識別情報を再度仮に決定するため、分割コンテンツ識別情報が同一となることがなく、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【0031】
請求項7に記載の発明によれば、複数の分割コンテンツデータには、分割コンテンツデータに対応する付加情報が含まれており、付加情報から分割コンテンツ識別情報を仮に決定する。従って、複数の分割コンテンツデータに対応する付加情報から分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性が低くなり、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【0032】
請求項8に記載の発明によれば、複数の分割コンテンツデータには、付加情報として、複数の分割コンテンツデータを含むコンテンツデータに対応する第一の付加情報と、それら複数の分割コンテンツデータ毎に対応する第二の付加情報と、が含まれており、第一の付加情報及び第二の付加情報から分割コンテンツ識別情報を仮に決定する。従って、コンテンツデータに対応する第一の付加情報と、複数の分割コンテンツデータのそれぞれに対応する第二の付加情報と、から分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性が低くなり、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【0033】
請求項9に記載の発明によれば、分割コンテンツ識別情報の差が所定値未満となると判定された場合には、第二の付加情報を変更し、第一の付加情報と変更された第二の付加情報とから、再度、分割コンテンツ識別情報を仮に決定する。従って、コンテンツデータに対応する第一の付加情報と、複数の分割コンテンツデータのそれぞれに対応する第二の付加情報と、から分割コンテンツ識別情報を仮に決定し、その結果、分割コンテンツ識別情報の差が所定値未満となると判定された場合には、第二の付加情報を変更させ、再度、第一の付加情報と、変更させた第二の付加情報と、から分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性がなく、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【0034】
請求項10に記載の発明によれば、分割コンテンツ識別情報を割り当てる複数の分割コンテンツデータの分割数を判定し、その判定された複数の分割コンテンツデータの分割数に基づいて、割合識別情報領域を分割数に分けて、複数の分割割当識別情報領域として決定し、複数の分割割当識別情報領域毎に分割コンテンツ識別情報を割り当てる。従って、複数の分割コンテンツ識別情報の分割数に割合識別情報領域が分けられ、その分けられた複数の分割割当識別情報領域毎に、複数の分割コンテンツ識別情報のそれぞれを割り当てるため、分割コンテンツ識別情報の差を小さくすることを防止し、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【発明を実施するための最良の形態】
【0035】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、配信する情報を音楽データや映像データなどのコンテンツデータとしたコンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【0036】
[1.コンテンツ配信システムの構成等]
まず始めに、図1を参照して、情報配信システムとしてのコンテンツ配信システムの概要構成等について説明する。図1は、本実施形態に係るコンテンツ配信システムにおける端末装置である各ノード装置の接続態様の一例を示す図である。このコンテンツ配信システムは、ネットワーク上に分散配置された複数のノード装置などから構成され、ノード装置間でコンテンツデータの送受信を行うものである。また、詳しく後述するが、本実施形態におけるコンテンツ配信システムは、複数のノード装置やコンテンツデータに対応する識別情報を割り当て、コンテンツデータを投入するコンテンツデータ管理装置10などから構成されている。
【0037】
図1の下部枠内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者(の装置)5、FTTH(Fiber To The Home)回線事業者(の装置)6、および通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界のネットワーク)8が構築されている。なお、DSL回線業者の装置には、RADSL(Rate adaptive Asymmetric Digital Subscriber Line)回線の装置も含まれる。
【0038】
コンテンツ配信システムSは、図1の上部枠内に示すように、ネットワーク8を介して相互に接続された端末装置としての複数のノード装置1a,1b,1c・・・1x,1y,1z・・・を備えて構成され、ピアツーピア(P2P)方式のネットワークシステムとなっている。各ノード装置1a,1b,1c・・・1x,1y,1z・・には、ノード装置を示す情報としての固有の製造番号(たとえば、MACアドレス)およびIP(Internet Protocol)アドレスが割り当てられている。なお、製造番号およびIPアドレスは、複数のノード装置1間で重複しないものである。また、以下の説明において、ノード装置1a,1b,1c・・・1x,1y,1z・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置1という場合がある。
【0039】
[1.1.DHTの概要]
以下に、本実施形態に係る分散ハッシュテーブル(以下、「DHT」(Distributed Hash Table)と呼ぶ。)を利用したアルゴリズムについて説明する。
【0040】
上述したコンテンツ配信システムSにおいて、それらノード装置1同士が、互いに情報をやり取りする際には、お互いの位置情報としてのIPアドレスを認識可能な状態でなければならない。
【0041】
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク8に参加している各ノード装置1が互いにネットワーク8に参加している全てのノード装置1のIPアドレスを知っておくのが単純な手法であるが、端末数が何万何十万などと多数になると、その全てのノード装置1のIPアドレスを覚えておくのは現実的ではない。また、任意のノード装置の電源が頻繁にON或いはOFFとすると、各ノード装置1において記憶している当該任意のノード装置のIPアドレスの更新が頻繁になり、運用上困難となる。
【0042】
そこで、1台のノード装置1では、ネットワーク8に参加している全てのノード装置1のうち、必要最低限の一部のノード装置1のIPアドレスだけを記憶しておき、IPアドレスを記憶していないノード装置1については、各ノード装置1間で互いに情報を転送し合うことによりコンテンツを供給するシステムが考案されている。
【0043】
このようなシステムの一例として、DHTを利用したアルゴリズムによって、図1の上部枠内に示すような、オーバーレイネットワーク9が構築されることになる。つまり、このオーバーレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【0044】
本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提としており、このオーバーレイネットワーク9上に配置されたノード装置1を、コンテンツ配信システムSに参加(言い換えれば、オーバーレイネットワーク9に参加)しているノード装置1という。
【0045】
コンテンツ配信システムSに参加している各ノード装置1の識別番号であるノードIDとして、それぞれのノード装置1毎にユニークな番号(固有番号)を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2128=340×1036台のノード装置を運用できる。
【0046】
より具体的には、各ノード装置1のノードIDは、それぞれのノード装置1のIPアドレスあるいは製造番号等のノード装置1毎に固有の値を、共通のハッシュ関数(ハッシュアルゴリズム)によりハッシュ化して得たハッシュ値であり、一つのID空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数によりハッシュ化されて求められたノードIDは、当該IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。また、本実施形態では、IPアドレス(グローバルIPアドレス)を共通のハッシュ関数によりハッシュ化した値をノードIDとする。
【0047】
また、コンテンツ配信システムSに参加している複数のノード装置1には、一のノード装置1から他のノード装置1に配信される共用情報としてのコンテンツデータ(例えば、音楽データ、映画データ、文書データ等)が分散して記憶されているが、当該コンテンツデータにも、それぞれのコンテンツデータ毎の固有の識別番号(以下、「コンテンツID」と呼ぶ。)が付与される。また、このコンテンツIDは、後述するコンテンツデータ管理装置10によって、コンテンツ配信システムSにおけるコンテンツデータ(分割された分割コンテンツデータを含む)を対象として割り当てられる。
【0048】
そして、このコンテンツIDは、ノードIDと同様の長さ(例えば、128bit等)とし、例えば、コンテンツの名称(コンテンツタイトル)やコンテンツの概要情報(あらすじ)等のキーワードが、ノードIDを得るときと共通のハッシュ関数によりハッシュ化され(つまり、ノード装置1のIPアドレスのハッシュ値と同一のID空間に配置)、そのハッシュ値と最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノード装置1が、コンテンツデータを保持するノード装置1(以下、「コンテンツ保持ノード装置」と呼ぶ。)へのリンク情報、すなわちコンテンツ保持ノード装置の位置情報であるIPアドレスを保持する。つまり、このコンテンツ配信システムSにおいては、コンテンツIDとの差が小さいノードIDが割り当てられたノード装置1がコンテンツデータを管理対象とするルートノード装置(コンテンツ管理ノード装置)となる。このコンテンツ保持ノード装置は、一定の規則の下(例えば、ルートノード装置がランダムに選択する規則の下)で決定される。これにより、コンテンツデータが偏りなくコンテンツ配信システムS上に分散して配置される。なお、異なるコンテンツデータであっても、同一のキーワード(例えば、コンテンツの名称)になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツの名称と著作権情報(例えば、出演者名、監督名、原作者名、歌手名、作曲者名、または作詞者名等)の組み合わせとすればよい。また、一つのコンテンツデータが複数に分割された複数の分割コンテンツデータを対象とするコンテンツIDの決定方法については詳しく後述する。
【0049】
このように、各ノード装置1および各コンテンツデータに付与されたノードIDおよびコンテンツIDは、共通のハッシュ関数によって生成するため、図2に示すように、同一のリング状のID空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は32bitでノードIDおよびコンテンツIDを付与し、図示したものである。図中丸点はノードIDを、四角形はコンテンツIDを示し、反時計回りでIDが増加するものとする。
【0050】
次に、どのノード装置1に、どのコンテンツデータが保持されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツIDを有するコンテンツデータを管理するノード装置1は、そのコンテンツIDに近いノードIDを有するノード装置1である」という規則とする。ここで、「近い」ことの定義は、当該コンテンツIDを超えず、コンテンツIDとノードIDとの差が一番少ないものとするが、実際には、各コンテンツデータの管理を各ノード装置1に割り振る際に、一貫していればよく、例えば、当該コンテンツIDを超えるか否かは関することなく、コンテンツIDとノードIDとの差が一番少ないものとしてもよい。図2に示す例では、この定義に基づいて、コンテンツIDaは、当該コンテンツIDaに近いノードID(以下、「ノードIDa」と呼ぶ。)を有するノード装置1に管理され、コンテンツIDbは、当該コンテンツIDbに近いノードID(以下、「ノードIDb」と呼ぶ。)を有するノード装置1に管理され、コンテンツIDcは、当該コンテンツIDcに近いノードID(以下、「ノードIDc」と呼ぶ。)を有するノード装置1に管理される。
【0051】
なお、ここで「管理」というのは、コンテンツデータを保持していることを意味するのではなく、「コンテンツデータが何れのノード装置1に保持されているかを認識している」ことを意味する。すなわち、図2において、ノードIDaを有するノード装置1は、コンテンツIDaを有するコンテンツデータが何れのノード装置1に保持されているかを認識しており、ノードIDbを有するノード装置1およびノードIDcを有するノード装置1も同様にそれぞれコンテンツIDbを有するコンテンツデータおよびコンテンツIDcを有するコンテンツデータが何れのノード装置1に保持されているかを認識している、ということになる。このように、あるコンテンツデータが何れのノード装置1に保持されているかを認識しているノード装置1を、そのコンテンツデータのルートノード装置(コンテンツ管理ノード装置の一例)と呼ぶ。つまり、ノードIDaを有するノード装置1は、コンテンツIDaを有するコンテンツデータのルートノード装置であって、ノードIDbを有するノード装置1は、コンテンツIDbを有するコンテンツデータのルートノード装置であって、ノードIDcを有するノード装置1は、コンテンツIDcを有するコンテンツデータのルートノード装置である。
【0052】
また、コンテンツ配信システムSには、コンテンツ配信システムS内のノード装置をコンテンツ保持ノード装置とするためにコンテンツデータをルートノード装置へ配布する機能と、カタログリストを生成してノード装置へ提供する機能を有するコンテンツデータ管理装置10が設けられている。
【0053】
このように、このコンテンツ配信システムSは、複数のノード装置間で、各ノード装置が保持しているコンテンツデータ(分割された分割コンテンツデータを含む)を互いに送受信することにより、前記ノード装置へ前記コンテンツデータの配信を可能とするシステムである。
【0054】
[1.2.ルーティングテーブルの作成]
ここで、図3を参照して、DHTで用いるルーティングテーブルの作成手法の一例について説明する。図3は、DHTによってルーティングテーブルが作成される様子の一例を示す図である。
【0055】
まず、図3(a)に示すように、ID空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは4分割とし、IDをビット長8bitの4進数で表すことにする。そして、ノード装置1NのノードIDを「1133」とし、このノード装置1Nのルーティングテーブルを作る例について説明する。
【0056】
(レベル1のルーティング)
まず、ID空間を4分割とした場合、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」(Xは0から3の自然数、以下同様。)で分けられる。ノード装置1Nは、当該ノード装置1N自身のノードIDが「1133」であるため、図3(a)中左下「1XXX」のエリアに存在することになる。そして、ノード装置1Nは、自分の存在するエリア(すなわち、「1XXX」のエリア)以外のエリア(すなわち、「0XXX」のエリア、「2XXX」のエリア、「3XXX」のエリア)に存在するノード装置1を適当に選択し、当該ノードIDの位置情報、すなわち、当該ノードIDのIPアドレスをレベル1のテーブルに記憶する。図4がレベル1のテーブルの一例である。このテーブルでは、「0XXX」のエリアのノードIDとして「0100」、「2XXX」のエリアのノードIDとして「2133」、「3XXX」のエリアのノードIDとして「3213」がそれぞれ選択されている状態を示している。なお、当該レベル1の2列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無い。
【0057】
(レベル2のルーティング)
次に、図3(b)に示すように、上記ルーティングによって4分割したエリアのうち、自分の存在するエリア「11XX」を更に4分割し、更に4つのエリア「10XX」「11XX」、「12XX」、「13XX」と分ける。そして、上記と同様に自分の存在するエリア「11XX」以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDの位置情報であるIPアドレスをレベル2のテーブルに記憶する。図4がレベル2のテーブルの一例である。このテーブルでは、「10XX」のエリアのノードIDとして「1003」、「12XX」のエリアのノードIDとして「1221」が、「13XX」のエリアのノードIDとして「1313」がそれぞれ選択されている状態を示している。なお、レベル2の2列目はノード装置1Nが存在するエリア「11XX」であり、後述するレベル3にてテーブル化されるためIPアドレスを記憶していない。また、上記エリアにノード装置が存在しない場合には、ノードID及びIPアドレスの欄は空白となる。
【0058】
(レベル3のルーティング)
さらに、上記ルーティングによって4分割したエリアのうち、自分の存在するエリア「113X」を更に4分割し、更に4つのエリア「110X」「111X」、「112X」、「113X」と分ける。そして、上記と同様に自分の存在するエリア「113X」以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDの位置情報であるIPアドレスをレベル3のテーブルに記憶する。図4がレベル3のテーブルの一例である。レベル3の4列目はノード装置1Nが存在するエリアであり、後述するレベル4にてテーブル化されるためIPアドレスを記憶していない。また、上記エリアにノード装置が存在しない場合には、ノードID及びIPアドレスの欄は空白となる。
【0059】
このようにして、レベル4まで同様にルーティングテーブルを図4に示すように作成することにより、8bitのID全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
【0060】
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置1が夫々作成して所有することになる。このように、各ノード装置1は、コンテンツ配信システムSにおける複数のノード装置1のうち一部のノード装置1のノードID(識別情報)とIPアドレス(位置情報)とを関連付けたルーティングテーブルを有しており、このルーティングテーブルは後述のルーティングテーブル記憶手段に記憶される。
【0061】
[1.3.コンテンツデータの検索方法]
次に、図5を参照して、コンテンツデータを保持しているノード装置1の検索方法の一例について説明する。図5は、DHTによりコンテンツデータを保持しているノード装置1が検索される様子の一例を示す図である。
【0062】
ここでは、ノードID「1133」のノード装置1Nが、コンテンツID「3020」を有するコンテンツデータを探す際の手順について説明する。なお、以下このようにコンテンツデータを探し、コンテンツデータの受信を要求するノード装置を「リクエストノード装置」と呼ぶ。
【0063】
リクエストノード装置1Nは、自己が保持しているルーティングテーブルのレベル1のテーブルを参照して、コンテンツID「3020」と同じエリアのノードIDを持つノード装置のノードIDを宛先識別情報としてコンテンツデータ配信元情報(コンテンツ保持ノード装置の位置情報を含む情報)の送信要求(以下、「コンテンツ検索メッセージ」と呼ぶ。)を送信する。すなわち、コンテンツID「3020」は「3XXX」のエリアであるため、当該「3XXX」のエリアに属すノード装置1のうち、IPアドレスを知っている(すなわち、自己が保持しているルーティングテーブルにIPアドレスが記憶されている)ノード装置1A(ノードID「3213」)に対してコンテンツ検索メッセージを送信する。このように、コンテンツ検索メッセージはコンテンツに対応する固有の識別情報であるコンテンツIDを含むものであり、このコンテンツIDはコンテンツ検索メッセージにおいて宛先識別情報として用いられる。
【0064】
図5に示す例によれば、ノードIDが「3213」であるノード装置1AのIPアドレスがリクエストノード装置1Nのルーティングテーブル(図4参照。)に記憶されているので、リクエストノード装置1Nは、ノードIDが「3213」であるノード装置1Aに対してコンテンツ検索メッセージを送信する。
【0065】
次に、コンテンツ検索メッセージを受信したノード装置1Aは、このコンテンツ検索メッセージが自ノード装置1A宛のメッセージであるか否かを判定する。自ノード装置1A宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルとに基づいて行われる。具体的には、宛先識別情報が自ノード装置1Aの識別情報と近いか否かが判定される。即ち、宛先識別情報に対して、ノード装置1A自身が保持しているルーティングテーブルに記憶されているノード装置の識別情報から、一番近いノード装置の識別情報が、自身であるか他のノード装置であるかを判定する。ここでは、自ノード装置1Aの識別情報よりも他のノード装置の識別情報の方が、宛先識別情報に近いため、ノード装置1Aは、当該ノード装置1A自身が保持しているルーティングテーブルのレベル2のテーブルを参照して、「30XX」のエリアに属すノード装置1のうち、IPアドレスを知っているノード装置1B(ノードID「3031」)に対してコンテンツ検索メッセージを転送する。
【0066】
このように、コンテンツIDの桁を上から順に適合していく要領でコンテンツ検索メッセージの転送が進み、最終的に当該コンテンツデータを管理するノード装置1C、すなわちルートノード装置に辿り着くと、当該ルートノード装置は、コンテンツ検索メッセージに含まれるコンテンツID「3020」を、自身が管理している後述のインデックス情報の中から検索し、当該コンテンツデータを所有しているコンテンツ保持ノード装置1のIPアドレス等をリクエストノード装置1Nに返信するようになっている。なお、コンテンツ検索メッセージなどのメッセージを目的のノード装置へ辿り着くまでに、上述のように転送する仕組みをDHTルーティングと呼ぶ。
【0067】
こうして、リクエストノード装置1Nは、上記ルートノード装置1Cから、コンテンツID「3020」のコンテンツデータの位置情報、即ち、コンテンツID「3020」のコンテンツデータを保持するコンテンツ保持ノード装置1のIPアドレスを受信して知ることになり、当該コンテンツ保持ノード装置1から、そのコンテンツデータをダウンロードして取得することになる。
【0068】
[1.4.インデックステーブルへの登録方法]
このような構成のコンテンツ配信システムSの中で、例えば、あるノード装置1が新しいコンテンツデータを、コンテンツ配信システムS上の他のノード装置1から検索可能となるように公開する際の手法について述べる。このノード装置1がコンテンツデータを記憶し、保持するコンテンツ保持ノード装置となる。
【0069】
コンテンツデータ管理装置10から配布されたコンテンツデータを記憶するコンテンツ保持ノード装置は、記憶したコンテンツデータのコンテンツIDと同じノードIDを持つノード装置に向けて(このノード装置が実在するか否かはこの時点ではわからない。)登録メッセージを送信する。そして、この登録メッセージも、上記コンテンツ検索メッセージと同様にルーティングテーブルに従って、次々と転送されていき、当該登録メッセージに含まれるコンテンツIDに最も近いノードIDを有するノード装置1まで転送されたところで、そのノード装置1はもはや転送先のノード装置1が他にないと判断すると、当該ノード装置1自身がそのコンテンツのルートノード装置となるべきだと判断し、当該登録メッセージに含まれる当該コンテンツID及びコンテンツ保持ノードのノードIDやIPアドレス(以下、これらを「インデックス情報」と呼ぶ。)をインデックス情報として記憶する。
【0070】
更にまた、本実施形態では、登録メッセージがルートノード装置へ転送される経路の途中のノード装置1でも、登録メッセージに含まれるインデックス情報をキャッシュとして保持するように構成されており、このようなノード装置をキャッシュノード装置という。これにより、ルートノード装置がコンテンツを検索するためのコンテンツ検索メッセージを受信するより前に、キャッシュノード装置にコンテンツ検索メッセージが転送された時点でキャッシュノード装置がコンテンツ保持ノード装置のIPアドレスやノードIDを、コンテンツの所在を検索したリクエストノード装置に返信することが可能になる。なお、本実施形態においては、コンテンツ検索メッセージに対して少なくともコンテンツ保持ノード装置のIPアドレスを返信することとするが、ノードIDをコンテンツ保持ノード装置のIPアドレスと共に返信するようにしてもよい。
【0071】
登録メッセージを転送していく際には、通常、上述のようにキャッシュノード装置が登録メッセージに基づいたインデックス情報を保持していく。
【0072】
ここで、図6(a)に示すように、ノードIDが「1301」であるノード装置1MをコンテンツID「3020」であるコンテンツを保持するコンテンツ保持ノード装置とし、ノードIDが「3011」であるノード装置1CをコンテンツID「3020」であるコンテンツのルートノード装置とした場合におけるインデックス情報の保持について図6(a)、(b)を参照して説明する。
【0073】
図6(a)、(b)に示すように、コンテンツ保持ノード装置であるノード装置1Mがインデックス情報を含む登録メッセージを送信すると、これを受け取ったノード装置1Aは、当該インデックス情報を保持することによりキャッシュノード装置(1)として機能する。キャッシュノード装置(1)は、当該登録メッセージを転送する。当該登録メッセージを受け取ったノード装置1Bは、当該インデックス情報を保持することによりキャッシュノード装置(2)として機能する。キャッシュノード装置(2)は、当該登録メッセージを転送する。当該登録メッセージを受け取ったノード装置1Cは、当該インデックス情報を保持することによりルートノード装置として機能する。このようにノード装置1A,1B,1Cは登録メッセージに含まれるインデックス情報を保持することになる。
【0074】
ところで、ルートノード装置やキャッシュノード装置におけるインデックス情報の保持は、図7に示すようなインデックステーブルにより行われる。図7はルートノード装置1Cにおけるインデックステーブルの例を示したものであり、自ノード装置が管理対象であるコンテンツID「3020」のコンテンツに関するコンテンツ保持ノード装置のノードIDやIPアドレスなどを記憶する他、キャッシュノード装置としてコンテンツID「2021」のコンテンツに関するコンテンツ保持ノード装置の識別情報を記憶している。なお、インデックステーブルには、コンテンツID、コンテンツ保持ノード装置のノードIDやIPアドレスの他、著作権情報なども記憶することができる。
【0075】
[1.5.コンテンツIDの決定方法]
このように配信されるコンテンツデータを対象として、ID空間にコンテンツIDが決定され、割り当てられるが、このようなコンテンツデータが複数に分割された分割コンテンツデータを対象とする場合におけるコンテンツIDの決定方法について図8を用いて以下に説明する。
【0076】
複数の分割コンテンツデータというのは、一つのコンテンツデータを複数に分割されたコンテンツデータである。具体的には、一つのコンテンツデータが大きなサイズである場合には、そのコンテンツデータを分割コンテンツデータとして分割して保存させたり、予め複数に分割され、相互に関連のある分割コンテンツデータ(例えば、4つに分けられた連続映像データなど)をそれぞれ別々に保存させたりすることによって、コンテンツデータの配信を容易とすることができる。
【0077】
しかし、コンテンツIDが連番で決定され、又は、ある程度同じ範囲として決定されてしまうと、図8(a)に示すように、分割コンテンツデータ(分割コンテンツデータを保存しているコンテンツ保持ノード装置)が分散されていても、コンテンツIDが近い、即ち、ルートノード装置が重複する、又は、ルートノード装置が近くに配置されることによって、例えば、その分割コンテンツデータを実際に保存しているコンテンツ保持ノード装置からルートノード装置に向かって発行される登録メッセージや、分割コンテンツデータを要求するためにコンテンツ保持ノード装置の位置情報をルートノード装置に問い合わせるコンテンツ検索メッセージなど、ルートノード装置へのアクセス集中や、そのルートノード装置のコンテンツIDに相対的に近いノード装置へのアクセス集中が生ずるおそれがあった。
【0078】
そこで、本実施形態におけるコンテンツ配信システムSにおいては、図8(b)に示すように、複数の分割コンテンツデータを対象とするコンテンツIDを分散させることによって、ルートノード装置を分散させ、登録メッセージやコンテンツ検索メッセージなど、ルートノード装置へのアクセス集中や、そのルートノード装置のノードIDに相対的に近いノード装置へのアクセス集中を軽減することができる。
【0079】
[2.コンテンツデータ管理装置10の構成等の説明]
次に、図面を参照して、コンテンツデータ管理装置10の構成及び動作について説明する。図9は、本実施形態に係るコンテンツ配信システムSにおけるコンテンツデータ管理装置10の概略構成を示す図である。
【0080】
コンテンツデータ管理装置10は、専用のコンピュータの他、一般のサーバコンピュータを適用可能であり、図9に示すように、CPU(Central Processing Unit)102と、各種プログラム等を記憶(記憶)する書き換え可能な主記憶装置としての第1記憶部103と、各種データ等を記憶するHDD等から構成された第2記憶部104と、ルータ120を介してネットワーク8に参加している他のノード装置1との間で通信を行うためのネットワークインターフェイス105と、コンテンツ配信システムSの管理者によってコンテンツデータ管理装置10の制御を行うために情報を入力する入力手段であるマウス107aやキーボード107bと、入力手段から入力された情報を処理するための周辺機器制御チップ106と、CPU102の制御によりイメージデータを受け取り、内部のビデオメモリ(図示せず)に書き込み、このビデオメモリに書き込んだデータを後述のディスプレイ109に表示するビデオチップ108等を備えて構成され、これらの各種構成要素はシステムバス101を介して相互に接続されている。なお、本実施形態においては、CPU102と第1記憶部103とで制御手段114を構成している。
【0081】
(第1記憶部103について)
また、第1記憶部103には、ノード装置1のコンピュータとしての基本的な機能を提供するためのオペレーティングシステム(OS)プログラム110、ディスプレイ109の制御等を行うための画面制御プログラム111、コンテンツ配信システムSにコンテンツを投入する毎にコンテンツの一覧表であるカタログリストを更新するためのカタログ更新プログラム112と、コンテンツ配信システムSにコンテンツを新規に投入するための新規投入コンテンツプログラム113等を記憶しており、これらはCPU102によって読み出され、CPU102によってこれらのプログラムに従った機能が実行される。なお、「コンテンツ配信システムSにコンテンツを投入」とは、コンテンツデータ管理装置10が、あるコンテンツに関してコンテンツ保持ノード装置となるノード装置1を決定し、当該決定したノード装置1にコンテンツデータを配布することを意味する。
【0082】
ここで、OSプログラム110は、CPU102によって読み出されて実行されることにより、マウス107aやキーボード107bに関する機能や、第1記憶部103や第2記憶部104などのメモリ管理等のコンテンツデータ管理装置10であるコンピュータの基本的な機能を実行可能にするものである。そして、このOSプログラム110がCPU102によって実行された状態で、上述の画面制御プログラム111、カタログ更新プログラム112、新規投入コンテンツプログラム113等が第1記憶部103から読み出されて実行される。
【0083】
なお、OSプログラム110、画面制御プログラム111、カタログ更新プログラム112、新規投入コンテンツプログラム113等は、例えば、ネットワーク8に接続されたサーバ等から、ネットワークインターフェイス105を介して、第1記憶部103にダウンロードされるようにしてもよく、又CD−ROM等の記録媒体に記録されてから当該記録媒体のドライブを介して、第1記憶部103に読み込まれるようにしてもよい。
【0084】
(第2記憶部104について)
第2記憶部104には、カタログ更新プログラムによって生成され、コンテンツ配信システムS内にて提供されているコンテンツがリスト化されたカタログリストを記憶するカタログリスト記憶領域115と、コンテンツ配信システムSにおいて提供されているコンテンツのデータを記憶する投入済コンテンツデータ記憶領域116と、コンテンツ配信システムSにおいて新規に提供されるコンテンツのデータを記憶するコンテンツデータ記憶手段としての新規コンテンツデータ記憶領域117とを有している。
【0085】
(制御手段114について)
制御手段114は、上述のようにCPU102と第1記憶部103とから構成され、CPU102が第1記憶部103に記憶された各種プログラム110〜113を読み出して実行することにより、ノード装置1全体を統括制御し、かつ、後述する表示制御手段、コンテンツデータ識別情報決定手段、分割コンテンツ識別情報割当手段、分割コンテンツ識別情報仮決定手段、分割コンテンツ識別情報判定手段、付加情報変更手段、コンテンツ保持ノード装置決定手段、コンテンツ保持要求手段等として機能するようになっている。
【0086】
なお、CPU102が画面制御プログラム111を実行することによって表示制御手段等として、またCPU102がカタログ更新プログラム112を実行することによってカタログ更新手段等として、またCPU102が新規投入コンテンツプログラム113を実行することによって、コンテンツデータ識別情報決定手段、分割コンテンツ識別情報割当手段、分割コンテンツ識別情報仮決定手段、分割コンテンツ識別情報判定手段、付加情報変更手段、コンテンツ保持ノード装置決定手段、コンテンツ保持要求手段等として、それぞれ機能するようになっている。
【0087】
(表示制御手段について)
表示制御手段は、ビデオチップ108及びディスプレイ109を制御して、各種の映像情報(画像情報)を表示させる機能を有している。すなわち、表示制御手段は、ディスプレイ109にどのように映像を表示させるかを制御する。
【0088】
(コンテンツデータ識別情報決定手段について)
コンテンツデータ識別情報決定手段は、新規にコンテンツ配信システムSに投入するコンテンツデータの識別情報であるコンテンツIDを決定する機能を有する。
【0089】
より具体的には、コンテンツデータ識別情報決定手段は、ランダム演算によってランダムな値を算出し、このようにランダムに算出した値を、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化することによってコンテンツIDを決定する。
【0090】
(分割コンテンツ識別情報割当手段について)
特に、分割コンテンツ識別情報割当手段は、一つのコンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象とするコンテンツIDを決定し、割り当てる機能を有する。この分割コンテンツ識別情報割当手段は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツIDのルートノード装置がそれぞれ異なるようにコンテンツIDを決定することとなる。
【0091】
(分割コンテンツ識別情報仮決定手段について)
分割コンテンツ識別情報仮決定手段は、一つのコンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象とするコンテンツIDを仮に決定する機能を有する。
【0092】
(分割コンテンツ識別情報判定手段について)
分割コンテンツ識別情報判定手段は、複数の分割コンテンツデータのそれぞれを対象として仮に決定されたコンテンツIDのルートノード装置の重複を判定する機能を有する。
【0093】
(付加情報変更手段について)
付加情報変更手段は、複数の分割コンテンツデータのそれぞれを対象として、仮に決定されたコンテンツIDのルートノード装置が重複する、又は、コンテンツIDが所定値未満であると判定された場合に、複数の分割コンテンツデータのそれぞれに付されている付加情報を変更する機能を有する。
【0094】
(コンテンツ保持ノード装置決定手段について)
コンテンツ保持ノード装置決定手段は、新規コンテンツデータ記憶領域117に記憶したコンテンツデータを保持させるノード装置、すなわちコンテンツ保持ノード装置を決定する機能を有している。
【0095】
このコンテンツ保持ノード装置決定手段は、コンテンツ保持ノード装置を決定するにあたり、ランダムにノードID(識別情報)を算出し、このように算出したノードIDを有するノード装置1をコンテンツ保持ノード装置とする。
【0096】
(コンテンツ保持要求手段について)
コンテンツ保持要求手段は、コンテンツ保持ノード装置決定手段によって決定したコンテンツ保持ノード装置にコンテンツデータの保持要求を行う。このコンテンツデータの保持要求は、本実施形態においては、上記の如く決定したコンテンツ保持ノード装置とすべきノード装置に対してコンテンツデータを保持させるための要求であり、DHTルーティングによって送信される。この要求に対してコンテンツ保持ノード装置となるべきノード装置は、コンテンツデータ管理装置10のIPアドレスをコンテンツデータの保持要求の中から取り出し、当該IPアドレス宛に前記保持要求に対応するコンテンツデータの送信要求を送信する。コンテンツ保持要求手段は、コンテンツデータの送信要求を受信すると、保持させようとするコンテンツデータを送信要求元のノード装置へ送信する。このようにコンテンツデータ管理装置10とノード装置1との通信においては、DHTルーティングによる通信や1対1の通信など複数種類の通信形態が適宜使い分けられる。
【0097】
[3.ノード装置1の構成等の説明]
次に、図面を参照して、ノード装置1の構成及び動作について説明する。図10は、本実施形態に係るコンテンツ配信システムSにおけるノード装置1の概略構成を示す図である。
【0098】
ノード装置1は、専用のコンピュータの他、一般のパーソナルコンピュータを適用可能であり、図10に示すように、CPU(Central Processing Unit)202と、各種プログラム等を記憶(記憶)する書き換え可能な主記憶装置としての第1記憶部203と、各種データ等を記憶するHDD等から構成された第2記憶部204と、ルータ224を介してネットワーク8に参加している他のノード装置1との間で通信を行うためのネットワークインターフェイス205と、ユーザによってノード装置1を遠隔操作するために所定の赤外線信号を送信及び受信するリモコン206と、このリモコン206と赤外線により通信を行うための赤外線ポート207と、赤外線ポート207を制御する周辺機器制御チップ208と、CPU202の制御によりイメージデータを受け取り、内部のビデオメモリ(図示せず)に書き込み、このビデオメモリに書き込んだデータを後述のディスプレイ210に表示するビデオチップ209と、FM音源やWave Table音源などの音源を有し、オーディオ信号をスピーカ212に出力することによってスピーカ212から音波を出力させる音源チップ211と、を備えて構成され、これらの各種構成要素はシステムバス201を介して相互に接続されている。なお、本実施形態においては、CPU202と第1記憶部203とで制御手段213を構成している。
【0099】
(第1記憶部203について)
また、第1記憶部203には、ノード装置1のコンピュータとしての基本的な機能を提供するためのオペレーティングシステム(OS)プログラム214、ディスプレイ210の制御等を行うための画面制御プログラム215、コンテンツ保持ノード装置として機能する他のノード装置から送信されるコンテンツデータをストリーミング受信し、また自ノード装置がコンテンツ保持ノード装置として機能するときには第2記憶部204に記憶したコンテンツデータをストリーミング配信するためのストリーム制御プログラム216、他のノード装置とメッセージの送受信を行うためのメッセージ監視プログラム217、配信されたコンテンツデータの再生等を行うためのプレイヤプログラム218等を記憶しており、これらはCPU202によって読み出され、CPU202によってこれらのプログラムに従った機能が実行される。また、第1記憶部203には、更にインデックステーブル(図7参照)を記憶するためのインデックステーブル記憶領域219やルーティングテーブル(図4参照)を記憶するためのルーティングテーブル記憶領域220が設けられている。
【0100】
ここで、OSプログラム214は、CPU202によって読み出されて実行されることにより、リモコン206の入出力に関する機能や、第1記憶部203や第2記憶部204などのメモリ管理等のノード装置1であるコンピュータの基本的な機能を実行可能にするものである。そして、このOSプログラム214がCPU202によって実行された状態で、上述の画面制御プログラム215、ストリーム制御プログラム216、メッセージ監視プログラム217、プレイヤプログラム218等が第1記憶部203から読み出されて実行される。
【0101】
なお、OSプログラム214、画面制御プログラム215、ストリーム制御プログラム216、メッセージ監視プログラム217、プレイヤプログラム218等は、例えば、ネットワーク8に接続されたサーバ等から、ネットワークインターフェイス205を介して、第1記憶部203にダウンロードされるようにしてもよく、又CD−ROM等の記録媒体に記録されてから当該記録媒体のドライブを介して、第1記憶部203に読み込まれるようにしてもよい。
【0102】
(第2記憶部204について)
第2記憶部204には、コンテンツデータ管理装置10から投入され、コンテンツ配信システムS内にて提供されているコンテンツがリスト化されたカタログリストを記憶するカタログリスト記憶領域222と、コンテンツデータ管理装置10等から配信されたコンテンツデータを記憶するコンテンツデータ記憶手段として機能するコンテンツデータ記憶領域223等を有している。
【0103】
(制御手段213について)
制御手段213は、上述のようにCPU202と第1記憶部203とから構成され、CPU202が第1記憶部203に記憶された各種プログラム214〜218を読み出して実行することにより、ノード装置1全体を統括制御し、かつ、後述する表示制御手段、ストリーム制御手段、メッセージ宛先判定手段、メッセージ転送手段、コンテンツデータ取得手段、登録メッセージ生成手段、登録メッセージ送信手段、削除メッセージ生成手段、削除メッセージ送信手段、コンテンツ保持ノード情報取得手段、コンテンツ保持ノード要求情報生成手段、コンテンツ保持ノード要求情報送信手段、判断手段、ノード識別情報送信手段、デコード手段、コンテンツ再生手段等として機能するようになっている。
【0104】
なお、CPU202が画面制御プログラム215を実行することによって、表示制御手段等として、またCPU202がストリーム制御プログラム216を実行することによって、ストリーム制御手段等として、またCPU202がメッセージ監視プログラム217を実行することによって、メッセージ宛先判定手段、メッセージ転送手段、コンテンツデータ取得手段、登録メッセージ生成手段、登録メッセージ送信手段、削除メッセージ生成手段、削除メッセージ送信手段、コンテンツ保持ノード情報取得手段、コンテンツ保持ノード要求情報生成手段、コンテンツ保持ノード要求情報送信手段、判断手段、ノード識別情報送信手段等として、またCPU202がプレイヤプログラム218を実行することによって、デコード手段及びコンテンツ再生制御手段等として、それぞれ機能するようになっている。
【0105】
(表示制御手段について)
表示制御手段は、ビデオチップ209及びディスプレイ210を制御して、各種の映像情報(画像情報)を表示させる機能を有している。すなわち、表示制御手段は、ディスプレイ210にどのように映像を表示させるかを制御する。
【0106】
(ストリーム制御手段)
ストリーム制御手段は、他のノード装置1からストリーミング配信されるコンテンツデータを受信するコンテンツデータ受信手段、及び第2記憶部204に記憶したコンテンツデータを他のノード装置1へストリーミング配信するコンテンツデータ配信手段等としての機能を有している。
【0107】
コンテンツデータ受信手段は、他のノード装置1から配信されるパケットがコンテンツパケットであると判定されたときに、そのコンテンツパケットを1パケットずつ受信し、図示しない第1記憶部203のリングバッファに一時的に記憶し、その後第2記憶部204に記憶する。また、コンテンツ配信手段は、第2記憶部204に記憶したコンテンツデータをコンテンツパケットに変換し、1パケットずつネットワークインターフェイス205を介して他のノード装置1へ送信する。なお、コンテンツデータ受信手段やコンテンツデータ配信手段は、公知のストリーミング配信用プロトコルを用いることができる他、独自の専用プロトコルを用いるようにすることもできる。
【0108】
(メッセージ宛先判定手段について)
メッセージ宛先判定手段は、ネットワーク8を介して受信したメッセージの宛先識別情報とルーティングテーブルとに基づいて、受信したメッセージが自ノード装置1宛であるか否かを判定する。このメッセージ宛先判定手段が判定するメッセージは、コンテンツ保持ノード装置の識別情報をルートノード装置に要求するためのコンテンツ検索メッセージ、ルートノード装置にコンテンツ保持ノード装置の識別情報を登録するための登録メッセージなどである。
【0109】
受信したメッセージが自ノード装置1宛であるか否かの判定は、メッセージに含まれる宛先ノードID(宛先識別情報)を取り出し、第1記憶部203に記憶したルーティングテーブルに基づいて後述の制御手段213が判定する。すなわち、各種のメッセージをネットワークインターフェイス205を介して受信したとき、メッセージ宛先判定手段は、受信したメッセージに含まれる宛先識別情報とルーティングテーブルに記憶したノードIDとを比較し、メッセージに含まれる宛先識別情報と一番近いルーティングテーブル上のノードIDが自ノード装置1のノードIDであると判定すると、自ノード装置1宛のメッセージであると判定する。
【0110】
(メッセージ転送手段について)
メッセージ転送手段は、メッセージ宛先判定手段によりネットワーク8を介して受信したメッセージが自ノード装置宛ではないと判定されると、受信したメッセージの宛先識別情報に基づいて、前記ルーティングテーブルに記憶されたノード装置の識別情報から送信先ノード装置を選択して、受信したメッセージを送信先ノード装置へ転送する。すなわち、メッセージ転送手段は、ルーティングテーブルに記憶されたノード装置のノードIDのうち、宛先識別情報に近いノードIDを選択し、このように選択したノードIDに対応するノード装置のIPアドレスを知り、そのIPアドレスをIPパケットの宛先として、メッセージを転送する。
【0111】
(コンテンツデータ取得手段について)
コンテンツデータ取得手段は、ネットワークインターフェイス205を介して受信したメッセージがコンテンツデータ管理装置10からのコンテンツデータの保持要求であるときに、このコンテンツデータの保持要求に対応するコンテンツデータをコンテンツデータ管理装置10から取得する。そして、取得したコンテンツデータをコンテンツデータ記憶手段である第2記憶部204に記憶する。なお、上述のように、コンテンツデータの保持要求はDHTルーティングによって送受信され、コンテンツデータの送受信は1対1通信で行われる。
【0112】
(登録メッセージ生成手段について)
登録メッセージ生成手段は、コンテンツデータ管理装置10から受信したコンテンツデータをコンテンツデータ記憶手段である第2記憶部204に記憶したとき、当該コンテンツデータの識別情報であるコンテンツIDを宛先識別情報とし、自ノード装置1の識別情報であるノードID及びIPアドレスとを含む登録メッセージを生成する。また、他のコンテンツ保持ノード装置からコンテンツデータを受信したときも同様に、受信したコンテンツデータをコンテンツデータ記憶手段である第2記憶部204に記憶し、登録メッセージを生成する。
【0113】
(登録メッセージ送信手段について)
登録メッセージ送信手段は、登録メッセージ生成手段によって生成した登録メッセージを、第2記憶部204に記憶したコンテンツデータのコンテンツIDに基づいて、ルーティングテーブルに記憶されたノード装置の識別情報から送信先ノード装置を選択して送信する。
【0114】
(削除メッセージ生成手段について)
削除メッセージ生成手段は、コンテンツデータ記憶手段である第2記憶部204に記憶したコンテンツデータを削除したとき、当該コンテンツデータの識別情報であるコンテンツIDと、自ノード装置1の識別情報であるノードID及びIPアドレスとを含む削除メッセージを生成する。
【0115】
(削除メッセージ送信手段について)
削除メッセージ送信手段は、削除メッセージ生成手段によって生成した削除メッセージを、第2記憶部204から削除したコンテンツデータのコンテンツIDに基づいて、ルーティングテーブルに記憶されたノード装置の識別情報から送信先ノード装置を選択して送信する。
【0116】
(コンテンツ保持ノード情報取得手段について)
コンテンツ保持ノード情報取得手段は、自ノード装置1において、受信したメッセージが登録メッセージであるとき、登録メッセージに含まれるコンテンツ保持ノード装置の識別情報であるノードIDやIPアドレスなどと、同じく登録メッセージに含まれるコンテンツIDの組からなるインデックス情報を取得する。そして、このように取得したインデックス情報をコンテンツ保持ノード情報記憶手段であるインデックステーブル記憶領域219に記憶する。
【0117】
(コンテンツ保持ノード要求情報生成手段について)
コンテンツ保持ノード要求情報生成手段は、コンテンツ検索メッセージを生成する。例えば、コンテンツデータ管理装置10から受信したカタログリストをディスプレイ210に表示した後、ノード装置1のユーザによるリモコン206の操作によって、カタログリストの中から所望のコンテンツが選択されると、コンテンツ保持ノード要求情報生成手段は、当該選択されたコンテンツを保持するコンテンツ保持ノード装置の所在情報を検索するためのコンテンツ保持ノード要求情報であるコンテンツ検索メッセージを生成する。コンテンツ検索メッセージは、要求するコンテンツデータの識別情報であるコンテンツIDを宛先識別情報とし、自ノード装置1の識別情報であるノードIDを要求元識別情報としたメッセージである。
【0118】
(コンテンツ保持ノード要求情報送信手段について)
コンテンツ保持ノード要求情報送信手段は、コンテンツ検索メッセージの宛先識別情報であるコンテンツデータの識別情報と所定条件とによってルーティングテーブルに記憶されたノード装置の識別情報であるノードIDから送信先ノード装置を選択して、コンテンツ保持ノード要求情報であるコンテンツ検索メッセージを送信する。ここで、「所定条件」とは、ルーティングテーブルに記憶されたノードIDのうち、コンテンツ検索メッセージの宛先識別情報であるコンテンツIDと上位桁がより多く一致するノードIDを選択するという条件である。
【0119】
(判断手段について)
判断手段は、ノード装置1がネットワークインターフェイス205を介して、コンテンツ保持ノード要求情報であるコンテンツ検索メッセージを受信した際に、コンテンツ保持ノード情報記憶手段であるインデックステーブルに記憶されたインデックス情報、すなわちコンテンツ保持ノード装置のノードIDの中に、要求されたコンテンツに対するコンテンツ保持ノード装置のノードIDと一致する情報があるか否かを判断する。
【0120】
(ノード識別情報送信手段について)
ノード識別情報送信手段は、コンテンツ検索メッセージによって要求されたコンテンツに対するコンテンツ保持ノード装置のノードIDが記憶されている場合、当該コンテンツ保持ノード装置のノードIDを、当該コンテンツ検索メッセージを送信したリクエストノード装置へ向けて送信する。このときの送信先ノード装置は、コンテンツ検索メッセージに含まれる送信元識別情報、すなわちリクエストノード装置の識別情報に基づいて、他のメッセージと同様にルーティングテーブルから選択したノード装置である。このように送信することによって、コンテンツ保持ノード装置のノードIDを当該コンテンツ検索メッセージの送信元ノード装置へ届ける。
【0121】
(デコード手段について)
デコード手段は、他のノード装置1から送信されるコンテンツデータ等をディスプレイ210に表示し、スピーカ212から出力するためにデコードする。すなわち、他のノード装置1から送信されるコンテンツデータは、ストリーミング配信用のデータ形式、例えばASF、WMA、WMV等のデータ形式でエンコードされており、このようにエンコードされているコンテンツデータをディスプレイ210やスピーカ212から出力できるようにデコードする。
【0122】
(コンテンツ再生手段について)
コンテンツ再生手段は、第1記憶部203のリングバッファから成るバッファ領域に順次記憶されたコンテンツデータを、順次コンテンツ再生手段により再生するものであり、このとき制御手段213は、ストリーム制御プログラム216に基づいてビデオチップ209及び音源チップ211を動作させることによりコンテンツデータが再生される。
【0123】
[4.コンテンツデータ管理装置10の処理の説明]
以下、コンテンツデータ管理装置10の詳細動作について、図11から図13のフローチャートを用いて更に具体的に説明する。図11はコンテンツデータ管理装置における分割コンテンツ投入時のメイン処理を示すフローチャート、図12はメイン処理で呼び出される分割コンテンツID決定処理を示すフローチャート、図13は分割コンテンツID決定処理で呼び出される分割コンテンツID確認処理を示すフローチャートである。
【0124】
尚、制御手段114は、コンテンツデータ管理装置10の管理者の操作等によって、一つのコンテンツデータを複数の分割コンテンツデータとして分割させた状態で投入する処理が選択された場合に、本メイン処理を実行することとなる。具体的には、制御手段114は、マウス107aやキーボード107bなどの入力手段が操作されることによって、新規コンテンツデータ記憶領域117に記憶した新規コンテンツデータを分割して、コンテンツ配信システムS内に投入するために、新規コンテンツデータを指定し、その指定したコンテンツデータを保持させるコンテンツ保持ノード装置の配置数を指定したとき、メイン処理を選択したと判定することとなる。
【0125】
まず、制御手段114は、図11に示すように、指定された分割数でコンテンツを分割する(ステップS11)。この処理において、制御手段114は、例えば、マウス107aやキーボード107bなどの入力手段を操作することによって指定された分割数を決定する。そして、制御手段114は、新規コンテンツデータ記憶領域117に記憶した新規コンテンツデータを読み出し、その指定された分割数に分割し、分割コンテンツデータとして新規コンテンツデータ記憶領域117に記憶する。そして、制御手段114は、第1記憶部103における所定領域に位置付けられたNUMに“0”をセットする(ステップS12)。
【0126】
そして、制御手段114は、NUMが分割数より小さいか否かを判定する(ステップS13)。制御手段114は、第1記憶部103における所定領域に位置付けられたNUMと、入力手段を操作することによって指定された分割数と、を比較することによって、NUMが分割数より小さいか否かを判定することとなる。制御手段114は、NUMが分割数より小さいと判定した場合には(ステップS13:YES)、ステップS14に処理を移し、ステップS14に続けて、ステップS15からステップS17を実行し、再度、本判定を行うこととなる。一方、制御手段114は、NUMが分割数以上であると判定した場合には(ステップS13:NO)、ステップS14からステップS17を実行することなく、本処理を終了する。
【0127】
ステップS14において、制御手段114は、分割コンテンツID決定処理を実行する。詳しくは図12を用いて後述するが、制御手段114は、ステップS11において分割した複数の分割コンテンツデータのいずれかに対して、コンテンツIDを決定する。そして、制御手段114は、コンテンツIDの使用リストに追加する(ステップS15)。この処理において、制御手段114は、複数に分割された分割コンテンツデータのいずれかに対して決定されたコンテンツIDを、第2記憶部104におけるその使用リストに追加する。そして、制御手段114は、決定したコンテンツIDに基づいて、分割コンテンツデータを分散ストレージシステムに投入する(ステップS16)。そして、制御手段114は、第1記憶部103における所定領域に位置付けられたNUMの値を“1”増加させて(ステップS17)、再度、ステップS13に処理を移す。このように、制御手段114は、ステップS14からステップS17を、指定した分割数だけ実行することとなる。
【0128】
(分割コンテンツID決定処理について)
次に、ステップS14における分割コンテンツID決定処理について図12を参照して具体的に説明する。
【0129】
まず、制御手段114は、図12に示すように、コンテンツのタイトルにソルトを付ける(ステップS31)。この処理において、制御手段114は、複数に分割された分割コンテンツデータのうち、第1記憶部103における所定領域に位置付けられたNUMにセットされた値に対応して、ソルトを決定する。このソルトとは、タイトルに付加されるものであり、例えば、「その1」であったり、「Vol.1」であったりする。具体的には、制御手段114は、NUMの値を参照し、その値に“1”を加えた値を算出する。そして、制御手段114は、分割する前のコンテンツデータに付されたタイトル情報に、算出された値に基づくソルト情報(例えば、「その1」など)を加えて、分割コンテンツデータに対応するタイトル情報を決定し、分割コンテンツデータに含ませて記憶する。尚、このような分割コンテンツデータに対応するタイトル情報は、分割コンテンツデータに対応する付加情報である。また、分割する前のコンテンツデータに対応するタイトル情報は、コンテンツデータに対応する第一の付加情報、分割コンテンツデータに対応するソルト情報は、第二の付加情報であり、上述した付加情報は、これら第一の付加情報、第二の付加情報を含む。
【0130】
そして、制御手段114は、分割コンテンツデータに対応するタイトル情報を読み出し、そのタイトル情報に基づいて、ハッシュ関数からコンテンツIDを求める(ステップS32)。つまり、制御手段114(分割コンテンツ識別情報仮決定手段)は、分割コンテンツデータのタイトル情報(第一の付加情報及び前記第二の付加情報を含む付加情報)から、コンテンツIDが付加可能な領域(割当識別情報領域)の中から、分割コンテンツデータを対象とするコンテンツID(分割コンテンツ識別情報)を仮に決定することとなる。このように、コンテンツデータに対応する第一の付加情報と、複数の分割コンテンツデータのそれぞれに対応する第二の付加情報と、を含む複数の分割コンテンツデータに対応する付加情報から分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性が低くなり、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。また、詳しくは後述するが、制御手段114は、仮に決定されたコンテンツIDが適正なIDではないと判定された場合には、ソルト情報を変更して、再度、このステップS32を実行することとなる。つまり、制御手段114(分割コンテンツ識別情報仮決定手段)は、分割コンテンツデータに対応し、後述するように変更されたソルト情報(第二の付加情報)と、コンテンツデータに対応するタイトル情報(第一の付加情報)と、から、再度、分割コンテンツデータに対応するコンテンツID(分割コンテンツ識別情報)を仮に決定することとなる。
【0131】
そして、制御手段114は、コンテンツIDが他のコンテンツIDと重複しているか否かを判定する(ステップS33)。制御手段114は、複数の分割コンテンツデータのそれぞれに対応するコンテンツIDを参照し、ステップS32において複数の分割コンテンツデータのいずれかに対応して仮に決定したコンテンツIDと、今までに同じコンテンツデータを対象として決定された他のコンテンツIDと重複しているか否かを判定することとなる。制御手段114は、コンテンツIDが他のコンテンツIDと重複していると判定した場合には(ステップS33:YES)、ステップS34に処理を移す。一方、制御手段114は、コンテンツIDが他のコンテンツIDと重複していないと判定した場合には(ステップS33:NO)、ステップS35に処理を移す。
【0132】
ステップS35において、制御手段114は、コンテンツID確認処理を実行する。詳しくは図13を用いて詳しく後述するが、制御手段114は、仮に決定したコンテンツIDを割り当てた場合に、ルートノード装置が重複するか否かを判定することとなる。そして、制御手段114は、返り値がTrueであるか否かを判定する(ステップS36)。制御手段114は、ルートノード装置が重複すると判定された場合には(ステップS36:NO)、ステップS34に処理を移す。一方、制御手段114は、ルートノード装置が重複しないと判定された場合には(ステップS35:YES)、仮に決定したコンテンツIDが確定し、本サブルーチンを終了する。
【0133】
一方、ステップS34において、制御手段114は、ソルトを変更し、再度、ステップS32に処理を移す。この処理において、制御手段114は、仮に決定した分割コンテンツデータに対応するソルト情報を変更させることによって、分割コンテンツデータに対応するタイトル情報を変更させ、ルートノード装置が重複しないようにコンテンツIDを決定させることとなる。つまり、このような処理を実行する制御手段114(分割コンテンツ識別情報仮決定手段、付加情報変更手段)は、分割コンテンツデータに対応するコンテンツIDの差が所定値未満(同一も含む)となると判定された場合には、ソルト情報(第二の付加情報)を変更することとなる。このように、コンテンツデータに対応する第一の付加情報と、複数の分割コンテンツデータのそれぞれに対応する第二の付加情報と、から分割コンテンツ識別情報を仮に決定し、その結果、分割コンテンツ識別情報の差が所定値未満となるなど、適正な分割コンテンツ識別情報ではないと判定された場合には、第二の付加情報を変更させ、再度、第一の付加情報と、変更させた第二の付加情報と、から分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性がなく、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【0134】
(分割コンテンツID確認処理について)
次に、ステップS35における分割コンテンツID決定処理について図13を参照して具体的に説明する。
【0135】
まず、制御手段114は、図13に示すように、指定されたコンテンツIDのルートノード装置を求める(ステップS41)。この処理において、制御手段114は、ステップS32において分割コンテンツデータに対応して仮に決定されたコンテンツIDを読み出し、そのコンテンツIDを付した場合におけるルートノード装置を検索する。そして、制御手段114は、コンテンツIDを付した場合におけるルートノード装置を示すルートノードリストに記憶されているルートノード装置がないか否か、即ち、第2記憶部104に記憶されるルートノードリストが空きであるか否かを判定する(ステップS42)。制御手段114は、ルートノードリストが空きであると判定した場合には(ステップS42:YES)、ステップS45に処理を移す。一方、制御手段114は、ルートノードリストが空きではないと判定した場合には(ステップS42:NO)、第1記憶部103における所定領域に位置付けられたIに“0”をセットし(ステップS43)、ステップS44に処理を移す。
【0136】
ステップS44において、制御手段114は、Iがルートノードリストに登録してある数より小さいか否かを判定する。制御手段114は、第1記憶部103における所定領域に位置付けられたIと、同じコンテンツデータから分割された分割コンテンツデータに対応するルートノードリストに登録されているルートノード装置の数と、を比較することによって、Iがルートノードリストに登録してある数より小さいか否かを判定することとなる。制御手段114は、Iがルートノードリストに登録してある数より小さいと判定した場合には(ステップS44:YES)、ステップS46に処理を移す。一方、制御手段114は、Iがルートノードリストに登録してある数以上であると判定した場合には(ステップS44:NO)、ステップS45に処理を移す。
【0137】
ステップS46において、制御手段114は、I番目のルートノード装置と、今回のルートノード装置と、が同じであるか否かを判定する。この処理において、制御手段114は、I番目のルートノード装置と、ステップS41において検索され、今回決定したコンテンツIDに対応するルートノード装置と、が同じであるか否かを判定することとなる。つまり、制御手段114(分割コンテンツ識別情報判定手段)は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツID(分割コンテンツ識別情報)のルートノード装置(コンテンツ管理ノード装置)の重複を判定することとなる。制御手段114は、I番目のルートノード装置と、今回のルートノード装置と、が同じであると判定した場合には(ステップS45:YES)、返り値をFalseとして、本サブルーチンを終了する。これによって、上述したステップS32において、再度、コンテンツIDを仮に決定させることとなる。一方、制御手段114は、I番目のルートノード装置と、今回のルートノード装置と、が同じではないと判定した場合には(ステップS44:NO)、第1記憶部103における所定領域に位置付けられたIの値を“1”増加させて(ステップS47)、再度、ステップS44に処理を移す。このように、制御手段114は、ステップS44からステップS47を、ルートノードリストに登録したある数だけ実行することとなる。
【0138】
また、ステップS45において、制御手段114は、ルートノードリストに追加し、返り値をTrueとして、本サブルーチンを終了する。これによって、上述したステップS32において仮に決定されたコンテンツIDを確定させることとなる。つまり、制御手段114(分割コンテンツ識別情報割当手段)は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツID(分割コンテンツ識別情報)のルートノード装置(コンテンツ管理ノード装置)が重複しないと判定されるコンテンツID(分割コンテンツ識別情報)を決定することとなる。言い換えると、制御手段114は、複数の分割コンテンツデータのそれぞれを対象としてコンテンツID(分割コンテンツ識別情報)を割り当てる際に、複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のルートノード装置(コンテンツ管理ノード装置)がそれぞれ異なるようにコンテンツID(分割コンテンツ識別情報)を決定することとなる。
【0139】
従って、コンテンツデータを管理対象とするコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定するため、コンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。また、コンテンツ管理ノード装置の重複の判定が行われることによって、確実に、コンテンツ管理ノード装置がそれぞれ異ならせて、分割コンテンツ識別情報を決定するため、コンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を防止することができる。
【0140】
[5.ノード装置1の処理の説明]
以下、ノード装置1の詳細動作について、図14及び図15のフローチャートを用いて更に具体的に説明する。図14はノード装置1におけるシステム参加時におけるノードID決定のメイン処理を示すフローチャート、図15はメイン処理で呼び出されるノードID決定処理を示すフローチャートである。
【0141】
尚、制御手段213は、ノード装置1のユーザの操作等によって、本システムに参加する処理が選択された場合に、本メイン処理を実行することとなる。具体的には、制御手段213は、リモコン206などの入力手段が操作されることによって、本コンテンツ配信システムSに参加するために、メイン処理を選択したと判定することとなる。また、その他の処理については説明を省略する。
【0142】
まず、制御手段213は、図14に示すように、ノードID決定処理を実行する(ステップS61)。詳しくは図15を用いて後述するが、制御手段213は、ノード装置1を対象とする固有のノードIDを決定する。そして、制御手段213は、ノード装置1の不揮発性メモリなどに、決定したノードIDを記憶させる(ステップS62)。この処理が終了した場合には、メイン処理を終了する。
【0143】
(ノードID決定処理について)
次に、ステップS61におけるノードID決定処理について図15を参照して具体的に説明する。
【0144】
まず、制御手段213は、図15に示すように、端末固有な値を取得する(ステップS66)。この処理において、制御手段213は、ノード装置1の固有な値(例えば、IPアドレスあるいは製造番号等)を取得する。そして、制御手段213は、ステップS66において取得された固有な値からノードIDを決める(ステップS67)。この処理において、制御手段213は、それぞれのノード装置1のIPアドレスあるいは製造番号等のノード装置1毎に固有の値を、共通のハッシュ関数(ハッシュアルゴリズム)によりハッシュ化して、ノードIDを決める。そして、制御手段213は、ノードIDが他のノードIDと重複しているか否かを判定する(ステップS68)。制御手段213は、ノードIDが他のノードIDと重複していると判定した場合には、固有な値を変更し(ステップS69)、再度、ステップS67に処理を移す。一方、制御手段213は、ノードIDが他のノードIDと重複していないと判定した場合には、決定したノードIDが確定され、本サブルーチンを終了する。これによって、制御手段213は、ノード装置1毎に固有のノードIDを決定することとなる。
【0145】
(その他の実施形態)
尚、上述した実施形態において、複数の分割コンテンツデータのそれぞれに対応するコンテンツIDに基づくルートノード装置が重複するか否かを判定していたが、これに限らず、例えば、複数の分割コンテンツデータのそれぞれに対応するコンテンツIDの差が、所定値以上であるか否かを判定してもよい。
【0146】
具体的な実施形態について以下に説明する。ここで、上述した実施形態とは異なる構成等について以下に説明し、それ以外の構成等については、説明を省略する。
【0147】
(分割コンテンツID確認処理について)
ステップS35における分割コンテンツID確認処理について図16を参照して具体的に説明する。図16は分割コンテンツID決定処理で呼び出される分割コンテンツID確認処理を示すフローチャートである。
【0148】
まず、制御手段114は、分割コンテンツデータのそれぞれに対応するコンテンツIDリストに、今回仮に決定したコンテンツIDが登録されるコンテンツIDリストに、コンテンツIDが記憶されているか否か、即ち、第2記憶部104に記憶されているコンテンツIDリストが空であるか否かを判定する(ステップS51)。制御手段114は、コンテンツIDリストが空であると判定した場合には(ステップS51:YES)、ステップS54に処理を移す。一方、制御手段114は、コンテンツIDリストが空ではないと判定した場合には(ステップS51:NO)、第1記憶部103における所定領域に位置付けられたIに“0”をセットし(ステップS52)、ステップS53に処理を移す。
【0149】
ステップS53において、制御手段114は、IがコンテンツIDリストに登録してある数より小さいか否かを判定する。制御手段114は、第1記憶部103における所定領域に位置付けられたIと、同じコンテンツデータから分割された分割コンテンツデータに対応するコンテンツIDリストに登録してあるコンテンツIDの数と、を比較することによって、IがコンテンツIDリストに登録してある数より小さいか否かを判定することとなる。制御手段114は、IがコンテンツIDリストに登録してある数より小さいと判定した場合には(ステップS53:YES)、ステップS55に処理を移す。一方、制御手段114は、IがコンテンツIDリストに登録してある数以上であると判定した場合には(ステップS53:NO)、ステップS54に処理を移す。
【0150】
ステップS55において、制御手段114は、I番目のコンテンツIDと、今回のコンテンツIDと、が一定以上の差があるか否かを判定する。この処理において、制御手段114は、I番目のコンテンツIDと、上述した実施形態におけるステップS32において決定されたコンテンツIDと、を参照し、それらの差が一定以上であるか否かを判定することとなる。つまり、制御手段114(分割コンテンツ識別情報判定手段)は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツID(分割コンテンツ識別情報)の差が所定値以上であるか否かを判定することとなる。制御手段114は、I番目のコンテンツIDと、今回のコンテンツIDと、が一定以上の差があると判定した場合には(ステップS55:YES)、第1記憶部103における所定領域に位置付けられたIの値を“1”増加させて(ステップS56)、再度、ステップS53に処理を移す。このように、制御手段114は、ステップS53からステップS56を、コンテンツIDリストに登録したある数だけ実行することとなる。一方、制御手段114は、I番目のコンテンツIDと、今回のコンテンツIDと、が一定以上の差がないと判定した場合には(ステップS55:NO)、返り値をFalseとして、本サブルーチンを終了する。これによって、上述したステップS32において、再度、コンテンツIDを仮に決定させることとなる。
【0151】
また、ステップS54において、制御手段114は、分割コンテンツデータに対応するコンテンツIDをコンテンツIDリストに追加し、返り値をTrueとして、本サブルーチンを終了する。これによって、上述したステップS32において仮に決定されたコンテンツIDを確定させることとなる。つまり、制御手段114(分割コンテンツ識別情報割当手段)は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツID(分割コンテンツ識別情報)の差が所定値以上となると判定された場合には、そのコンテンツIDを割り当てることとなる。言い換えると、制御手段114は、複数の分割コンテンツデータのそれぞれを対象としてコンテンツID(分割コンテンツ識別情報)を割り当てる際に、複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のルートノード装置(コンテンツ管理ノード装置)がそれぞれ異なるようにコンテンツID(分割コンテンツ識別情報)を決定することとなる。
【0152】
従って、コンテンツデータを管理対象とするコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定するため、コンテンツ管理ノード装置へのアクセス集中や、そのコンテンツ管理ノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。また、分割コンテンツ識別情報の差が所定値以上となるか否かの判定を行って、分割コンテンツ識別情報の差が所定値以上とするため、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【0153】
尚、上述した実施形態において、分割コンテンツデータに対応するタイトル情報などの付加情報に基づいて、複数の分割コンテンツデータのそれぞれに対応するコンテンツIDを決定したが、これに限らず、例えば、分割コンテンツデータから抽出される一部のデータに基づいて、複数の分割コンテンツデータのそれぞれに対応するコンテンツIDを決定してもよい。
【0154】
具体的な実施形態について以下に説明する。ここで、上述した実施形態とは異なる構成等について以下に説明し、それ以外の構成等については、説明を省略する。
【0155】
(分割コンテンツID決定処理について)
ステップS35における分割コンテンツID決定処理について図17を参照して具体的に説明する。図17はメイン処理で呼び出される分割コンテンツID決定処理を示すフローチャートである。
【0156】
まず、制御手段114は、図17に示すように、分割コンテンツの史書の数バイトを取得する(ステップS37)。この処理において、制御手段114は、複数に分割された分割コンテンツデータのうち、第1記憶部103における所定領域に位置付けられたNUMにセットされた値に対応する分割コンテンツデータの最初の数バイトを抽出し、取得する。つまり、制御手段114(分割コンテンツデータ抽出手段)は、複数の分割コンテンツデータから、最初の数バイトというように所定の抽出条件に基づくデータを抽出することとなる。
【0157】
そして、制御手段114は、分割コンテンツデータから抽出した最初の数バイトのデータに基づいて、ハッシュ関数からコンテンツIDを求める(ステップS32)。つまり、制御手段114(分割コンテンツ識別情報仮決定手段)は、分割コンテンツデータから抽出されたデータから、コンテンツIDが付加可能な領域(割当識別情報領域)の中から、複数の分割コンテンツデータのそれぞれを対象としたコンテンツID(分割コンテンツ識別情報)を仮に決定することとなる。このように、複数の分割コンテンツデータ毎に、それら複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出し、分割コンテンツ識別情報を仮に決定するため、分割コンテンツ識別情報が同一となる可能性が低くなり、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。また、詳しくは後述するが、制御手段114は、仮に決定されたコンテンツIDが適正なIDではないと判定された場合には、このデータを抽出する条件を変更して、再度、このステップS32を実行することとなる。つまり、制御手段114(分割コンテンツ識別情報仮決定手段)は、再度抽出されたデータから、再度、分割コンテンツデータに対応するコンテンツID(分割コンテンツ識別情報)を仮に決定することとなる。
【0158】
そして、制御手段114は、コンテンツIDが他のコンテンツIDと重複しているか否かを判定する(ステップS33)。制御手段114は、コンテンツIDが他のコンテンツIDと重複していると判定した場合には(ステップS33:YES)、ステップS38に処理を移す。一方、制御手段114は、コンテンツIDが他のコンテンツIDと重複していないと判定した場合には(ステップS33:NO)、ステップS35に処理を移す。
【0159】
ステップS35において、制御手段114は、詳しくは図13などを用いて上述したが、コンテンツID確認処理を実行する。そして、制御手段114は、返り値がTrueであるか否かを判定する(ステップS36)。制御手段114は、ルートノード装置が重複すると判定された場合には(ステップS36:NO)、ステップS38に処理を移す。一方、制御手段114は、ルートノード装置が重複しないと判定された場合には(ステップS35:YES)、仮に決定したコンテンツIDが確定し、本サブルーチンを終了する。
【0160】
一方、ステップS38において、制御手段114は、抽出条件を変更して、再度、データを取得し、再度、ステップS32に処理を移す。この処理において、制御手段114は、分割コンテンツデータから抽出するための抽出条件を変更する。具体的には、制御手段114は、分割コンテンツデータの最初の数バイトを抽出したが、これを、分割コンテンツデータの最初から数バイト後から、数バイトを抽出したり、分割コンテンツデータの最初の数十バイトを抽出したりしてもよい。言い換えると、制御手段114は、分割コンテンツデータから抽出する抽出位置や抽出サイズを変更させる。つまり、このような処理を実行する制御手段114(抽出条件変更手段)は、コンテンツID(分割コンテンツ識別情報)に対応するルートノード装置(コンテンツ管理ノード装置)が重複すると判定した場合、又は、コンテンツIDの差が所定値未満となると判定された場合には、データが抽出される所定の抽出条件を変更することとなる。そして、制御手段114は、このように変更された抽出条件に基づいて、分割コンテンツデータから一部のデータを再度抽出する。つまり、このような処理を実行する制御手段114(分割コンテンツデータ抽出手段)は、複数の分割コンテンツデータから、変更された所定の抽出条件に基づくデータを再度抽出することとなる。このように、複数の分割コンテンツデータ毎に、それら複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出し、分割コンテンツ識別情報を仮に決定し、その結果、分割コンテンツ識別情報に対応するコンテンツ管理ノード装置が重複すると判定した場合、又は、分割コンテンツ識別情報の差が所定値未満となると判定された場合には、所定の抽出条件を変更させて、その変更させた所定の抽出条件に基づくデータを再度抽出し、分割コンテンツ識別情報を再度仮に決定するため、分割コンテンツ識別情報が同一となることがなく、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【0161】
尚、上述した実施形態において、複数の分割コンテンツデータのそれぞれを対象としてコンテンツIDを割り当てる際に、分割コンテンツデータを対象とするコンテンツIDに対応するルートノード装置が重複するか、分割コンテンツデータを対象とするコンテンツIDの差が所定値以上であるかによって、複数の分割コンテンツデータのそれぞれを対象として割り当てられたルートノード装置がそれぞれ異なるようにコンテンツIDを決定したが、これに限らず、例えば、複数の分割コンテンツデータの分割数に基づいて、ノードID、コンテンツIDとして割当可能に配列された割合識別情報領域をその分割数に分けて、複数の分割割当識別情報領域として決定し、それら複数の分割割当識別情報領域毎に、複数の分割コンテンツデータのそれぞれを対象とするコンテンツIDを割り当てることによって、複数の分割コンテンツデータのそれぞれを対象として割り当てられたルートノード装置がそれぞれ異なるようにコンテンツIDを決定してもよい。
【0162】
具体的な実施形態について以下に説明する。ここで、上述した実施形態とは異なる構成等について以下に説明し、それ以外の構成等については、説明を省略する。
【0163】
(分割コンテンツID決定処理について)
ステップS14における分割コンテンツID決定処理について図18を参照して具体的に説明する。図18はメイン処理で呼び出される分割コンテンツID決定処理を示すフローチャートである。
【0164】
まず、制御手段114は、図18に示すように、NUMが“0”であるか否かを判定する(ステップS21)。この処理において、制御手段114は、第1記憶部103における所定領域に位置付けられたNUMの値を読み出し、NUMが“0”であるか否かを判定することとなる。制御手段114は、NUMが“0”であると判定した場合には(ステップS21:YES)、コンテンツのID空間をコンテンツの分割数で分割し(ステップS22)、ステップS23に処理を移す。この処理において、制御手段114は、ステップS11において決定された分割コンテンツデータの分割数を判定する。つまり、制御手段114(分割数判定手段)は、複数の分割コンテンツデータのそれぞれを対象とするコンテンツIDを割り当てる複数の分割コンテンツデータの分割数を判定することとなる。そして、制御手段114は、その分割数でID空間を分けて、その分けられた分割ID空間を、第1記憶部103における所定領域に記憶する。このように、制御手段114(分割割当識別情報領域決定手段)は、複数の分割コンテンツデータの分割数に基づいて、ID領域(割合識別情報領域)をその分割数に分けて、複数の分割ID領域(分割割当識別情報領域)として決定することとなる。一方、制御手段114は、NUMが“0”ではないと判定した場合には(ステップS21:NO)、ステップS22を実行することなく、ステップS23に処理を移す。
【0165】
ステップS23において、制御手段114は、NUM番目のエリアにIDの空きがあるか否かを判定する。この処理において、制御手段114は、NUM番目の分割ID空間(エリア)にコンテンツIDを設定するための空きがあるか否かを判定することとなる。制御手段114は、NUM番目のエリアにIDの空きがあると判定した場合には(ステップS23:YES)、ステップS24に処理を移す。制御手段114は、NUM番目のエリアにIDの空きがないと判定した場合には(ステップS23:NO)、ステップS26に処理を移す。
【0166】
ステップS24において、制御手段114は、NUM番目の分割エリア内でランダムにコンテンツIDを決定する。つまり、制御手段114(分割コンテンツ識別情報判定手段)は、ID空間(割当識別情報領域のいずれか)のうち、決定した分割ID空間(複数の分割割当識別情報領域のいずれか)から、分割コンテンツデータのいずれかを対象とするコンテンツID(分割コンテンツ識別情報)を仮に決定することとなる。そして、制御手段114は、ステップS24において仮に決定した分割コンテンツデータのいずれかを対象とするコンテンツIDが、他のコンテンツデータ(分割コンテンツデータを含む)を対象とするコンテンツIDと重複しているか否かを判定する(ステップS25)。制御手段114は、コンテンツIDが他のコンテンツIDと重複していると判定した場合には(ステップS25:YES)、再度、ステップS24に処理を移す。これによって、制御手段114(分割コンテンツ識別情報判定手段)は、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツIDの重複を判定することとなり、重複していると判定された場合には、再度、コンテンツIDを決定し直し、重複しないコンテンツIDを決定することとなる。一方、制御手段114は、コンテンツIDが他のコンテンツIDと重複していないと判定した場合には(ステップS25:NO)、仮に決定したコンテンツIDが確定し、本サブルーチンを終了する。
【0167】
一方、ステップS26において、制御手段114は、ID空間全体の中からランダムにコンテンツIDを決定する。つまり、制御手段114(分割コンテンツ識別情報仮決定手段)は、ID空間(割当識別情報領域)の中から、分割コンテンツデータのいずれかを対象とするコンテンツID(分割コンテンツ識別情報)を仮に決定することとなる。そして、制御手段114は、ステップS26において仮に決定した分割コンテンツデータのいずれかを対象とするコンテンツIDが、他のコンテンツデータ(分割コンテンツデータを含む)を対象とするコンテンツIDと重複しているか否かを判定する(ステップS27)。制御手段114は、コンテンツIDが他のコンテンツIDと重複していると判定した場合には(ステップS27:YES)、再度、ステップS26に処理を移す。これによって、制御手段114は(分割コンテンツ識別情報判定手段)、複数の分割コンテンツデータのそれぞれを対象として割り当てられたコンテンツIDの重複を判定することとなり、重複していると判定された場合には、再度、コンテンツIDを決定し直し、重複しないコンテンツIDを決定することとなる。一方、制御手段114は、コンテンツIDが他のコンテンツIDと重複していないと判定した場合には(ステップS27:NO)、仮に決定したコンテンツIDが確定し、本サブルーチンを終了する。
【0168】
このように、制御手段114(分割コンテンツ識別情報割当手段)は、決定された複数の分割ID空間(分割割当識別情報領域)毎に、分割コンテンツデータを対象とするコンテンツID(分割コンテンツ識別情報)を割り当てることとなる。従って、複数の分割コンテンツ識別情報の分割数に割合識別情報領域が分けられ、その分けられた複数の分割割当識別情報領域毎に、複数の分割コンテンツ識別情報のそれぞれを割り当てるため、分割コンテンツ識別情報の差を小さくすることを防止し、分割コンテンツデータの管理対象となるノード装置へのアクセス集中や、そのノード装置のノード識別情報に相対的に近いノード装置へのアクセス集中を軽減することができる。
【0169】
また、上述した実施形態において、ノードIDをノード装置1が決定していたが、これに限らず、例えば、ノードIDを決定するノードID決定サーバのような装置を備えたシステムであってもよい。もちろん、上述した実施形態におけるコンテンツデータ管理装置10がノードIDを決定してもよい。
【0170】
具体的な実施形態について以下に説明する。ここで、上述した実施形態とは異なる構成等について以下に説明し、それ以外の構成等については、説明を省略する。
【0171】
(ノード装置におけるノードID決定のメイン処理について)
まず、制御手段213は、図19に示すように、ノードIDが記憶されているか否かを判定する(ステップS71)。制御手段213は、ノード装置1の不揮発性メモリなどに既にノードIDが記憶されているか否かによって、ノードIDが記憶されているか否かを判定することとなる。制御手段213は、ノードIDが記憶されていると判定した場合には、後述するステップS72及びステップS73を実行することなく、ステップS74に処理を移す。一方、制御手段213は、ノードIDが記憶されていないと判定した場合には、ステップS72に処理を移す。
【0172】
ステップS72において、制御手段213は、ノードID決定サーバ(図示せず)へノードID取得依頼メッセージを送信する。尚、このノードID取得依頼メッセージには、そのノード装置1の固有な値(例えば、IPアドレスあるいは製造番号等)が含まれている。そして、制御手段213は、ノードID決定サーバからノードIDを受信する(ステップS73)。この処理が終了した場合には、ステップS74に処理を移す。
【0173】
ステップS74において、制御手段213は、システムへの参加処理を実行する。これによって、ノード装置1は、ステップS73においてノードID決定サーバから受信したノードIDでコンテンツ配信システムSに参加することとなる。この処理が終了した場合には、メイン処理を終了する。
【0174】
(ノードID決定サーバのメイン処理について)
まず、ノードID決定サーバの制御手段(図示せず)は、図20に示すように、電源オフであるか否かを判定する(ステップS81)。この処理において、制御手段は、電源オフであると判定した場合には、本メイン処理を終了する。一方、制御手段は、電源オフではないと判定した場合には、ステップS82に処理を移す。
【0175】
ステップS82において、制御手段は、ノード装置1からノードID取得依頼メッセージを受信したか否かを判定する。この処理において、制御手段は、ノード装置1からノードID取得依頼メッセージを受信したと判定した場合には、ノードID決定処理を実行し(ステップS84)、決まったノードIDを依頼されたノード装置1に送信する(ステップS85)。尚、ノードID決定処理においては、図15に示すような処理をノードID決定サーバの制御手段が実行することとなる。一方、制御手段は、ノード装置1からノードID取得依頼メッセージを受信していないと判定した場合には、その他の処理を実行し(ステップS83)、再度、ステップS82に処理を移す。このように、ノードID決定サーバによってノード装置1のノードIDが重複しないように決定されることとなる。
【0176】
また、上述した実施形態においては、コンテンツデータを保持させるコンテンツ保持ノード装置のノードIDを認識するために、そのコンテンツデータのルートノード装置に検索情報などの問い合わせをしたが、これに限らず、例えば、コンテンツデータ管理装置10がコンテンツ保持ノード装置のノードIDを予め記憶しており、ノード装置1からコンテンツデータ管理装置10へ検索情報などの問い合わせをしてもよい。
【0177】
以上、本発明の実施の形態のうちのいくつかを図面に基づいて詳細に説明したが、これらは例示であり、前記[発明の開示]の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【図面の簡単な説明】
【0178】
【図1】本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。
【図2】ID空間の説明図である。
【図3】DHTによってルーティングテーブルが作成される様子の一例を示す図である。
【図4】本実施形態に係るノード装置のルーティングテーブルの一例である。
【図5】DHTによりコンテンツデータの保持元であるノード装置1が検索される様子の一例を示す図である。
【図6】コンテンツ保持ノードの登録メッセージが転送される様子をスパニングツリー状に表した図である。
【図7】本実施形態に係るノード装置のインデックステーブルの一例である。
【図8】コンテンツIDの決定方法を示す図である。
【図9】本実施形態におけるコンテンツデータ管理装置の概略構成例を示す図である。
【図10】本実施形態におけるノード装置の概略構成例を示す図である。
【図11】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図12】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図13】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図14】ノード装置において実行される処理を示すフローチャートである。
【図15】ノード装置において実行される処理を示すフローチャートである。
【図16】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図17】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図18】コンテンツデータ管理装置において実行される処理を示すフローチャートである。
【図19】ノード装置において実行される処理を示すフローチャートである。
【図20】ノードID決定サーバにおいて実行される処理を示すフローチャートである。
【符号の説明】
【0179】
S コンテンツ配信システム
1 ノード装置
10 コンテンツデータ管理装置
114,213 制御部

【特許請求の範囲】
【請求項1】
ネットワークを介してそれぞれ接続された複数のノード装置間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、前記ノード装置へ前記コンテンツデータの配信を可能とし、各コンテンツデータには、コンテンツデータを識別するコンテンツ識別情報が付され、各ノード装置には、当該ノード装置を識別するノード識別情報が付され、コンテンツ識別情報との差が小さいノード識別情報が割り当てられたノード装置がコンテンツデータを管理対象とするコンテンツ管理ノード装置となるコンテンツ配信システムにおける前記コンテンツデータを対象としてコンテンツデータ識別情報を割り当てる識別情報割当装置において、
前記ノード装置を対象とするノード識別情報、前記コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、前記コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置がそれぞれ異なるように分割コンテンツ識別情報を決定する分割コンテンツ識別情報割当手段を備えたことを特徴とする識別情報割当装置。
【請求項2】
前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノード装置の重複を判定する分割コンテンツ識別情報判定手段を備え、
前記分割コンテンツ識別情報割当手段は、前記分割コンテンツ識別情報判定手段によってコンテンツ管理ノード装置が重複しないと判定される分割コンテンツ識別情報を決定する機能を有することを特徴とする請求項1に記載の識別情報割当装置。
【請求項3】
前記ノード装置は、前記分割コンテンツ識別情報割当手段によって割り当てられた分割コンテンツ識別情報に基づいて検索情報を送信し、当該分割コンテンツ識別情報のコンテンツ管理ノード装置から、分割コンテンツ識別情報に対応する分割コンテンツデータが保存されているノード装置のノード識別情報を受信する機能を有することを特徴とする請求項2に記載の識別情報割当装置。
【請求項4】
前記割当識別情報領域の中から前記分割コンテンツ識別情報を仮に決定する分割コンテンツ識別情報仮決定手段と、
前記分割コンテンツ識別情報仮決定手段によって決定された前記分割コンテンツ識別情報の差が所定値以上であるか否かを判定する分割コンテンツ識別情報判定手段と、を備え、
前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、再度、前記分割コンテンツ識別情報を仮に決定する機能を有し、
前記分割コンテンツ識別情報割当手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値以上となると判定された場合には、当該分割コンテンツ識別情報を割り当てる機能を有することを特徴とする請求項1に記載の識別情報割当装置。
【請求項5】
前記複数の分割コンテンツデータから、所定の抽出条件に基づくデータを抽出する分割コンテンツデータ抽出手段を備え、
前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツデータ抽出手段によって抽出されたデータから、前記複数の分割コンテンツデータのそれぞれを対象とした分割コンテンツ識別情報を仮に決定する機能を有することを特徴とする請求項4に記載の識別情報割当装置。
【請求項6】
前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、前記分割コンテンツデータ抽出手段によってデータが抽出される所定の抽出条件を変更する抽出条件変更手段を備え、
前記分割コンテンツデータ抽出手段は、前記複数の分割コンテンツデータから、前記抽出条件変更手段によって変更された所定の抽出条件に基づくデータを再度抽出する機能を有し、
前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツデータ抽出手段によって再度抽出されたデータから、再度、前記分割コンテンツ識別情報を仮に決定する機能を有することを特徴とする請求項5に記載の識別情報割当装置。
【請求項7】
前記複数の分割コンテンツデータには、分割コンテンツデータに対応する付加情報が含まれており、
前記分割コンテンツ識別情報仮決定手段は、前記付加情報から分割コンテンツ識別情報を仮に決定する機能を有することを特徴とする請求項4に記載の識別情報割当装置。
【請求項8】
前記複数の分割コンテンツデータには、前記付加情報として、前記複数の分割コンテンツデータを含むコンテンツデータに対応する第一の付加情報と、当該複数の分割コンテンツデータ毎に対応する第二の付加情報と、が含まれており、
前記分割コンテンツ識別情報仮決定手段は、前記第一の付加情報及び前記第二の付加情報から分割コンテンツ識別情報を仮に決定する機能を有することを特徴とする請求項7に記載の識別情報割当装置。
【請求項9】
前記分割コンテンツ識別情報仮決定手段は、前記分割コンテンツ識別情報判定手段によって前記分割コンテンツ識別情報の差が所定値未満となると判定された場合には、第二の付加情報を変更する付加情報変更手段を備え、
前記分割コンテンツ識別情報仮決定手段は、前記第一の付加情報と、前記付加情報変更手段によって変更された前記第二の付加情報とから、再度、前記分割コンテンツ識別情報を仮に決定する機能を有することを特徴とする請求項8に記載の識別情報割当装置。
【請求項10】
前記分割コンテンツ識別情報を割り当てる複数の分割コンテンツデータの分割数を判定する分割数判定手段と、
前記分割数判定手段によって判定された複数の分割コンテンツデータの分割数に基づいて、前記割合識別情報領域を当該分割数に分けて、複数の分割割当識別情報領域として決定する分割割当識別情報領域決定手段と、を備え、
前記分割コンテンツ識別情報割当手段は、前記分割割当識別情報領域決定手段によって決定された複数の分割割当識別情報領域毎に、前記分割コンテンツ識別情報を割り当てる機能を有することを特徴とする請求項1から3のいずれかに記載の識別情報割当装置。
【請求項11】
ネットワークを介してそれぞれ接続された複数のノード装置間で、各ノード装置が保持しているコンテンツデータを互いに送受信することにより、前記ノード装置へ前記コンテンツデータの配信を可能とし、各コンテンツデータには、コンテンツデータを識別するコンテンツ識別情報が付され、各ノード装置には、当該ノード装置を識別するノード識別情報が付され、コンテンツ識別情報との差が小さいノード識別情報が割り当てられたノード装置がコンテンツデータを管理対象とするコンテンツ管理ノード装置となるコンテンツ配信システムにおける前記コンテンツデータを対象としてコンテンツデータ識別情報を割り当てる識別情報割当装置の情報処理方法において、
前記識別情報割当装置は、
前記ノード装置を対象とするノード識別情報、前記コンテンツ識別情報として割当可能な複数の割当識別情報が所定の規則に従って配列された割当識別情報領域の中から、前記コンテンツデータが複数に分割された複数の分割コンテンツデータのそれぞれを対象として分割コンテンツ識別情報を割り当てる際に、前記複数の分割コンテンツデータのそれぞれを対象として割り当てられた分割コンテンツ識別情報のコンテンツ管理ノードがそれぞれ異なるように分割コンテンツ識別情報を決定する分割コンテンツ識別情報割当ステップを有することを特徴とするコンテンツ配信システムにおける識別情報割当装置の情報処理方法。
【請求項12】
コンピュータに、請求項1から10のいずれかに記載の識別情報割当装置の各手段として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2008−59398(P2008−59398A)
【公開日】平成20年3月13日(2008.3.13)
【国際特許分類】
【出願番号】特願2006−237055(P2006−237055)
【出願日】平成18年8月31日(2006.8.31)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】