(57)【要約】【課題】ネットワークを介して互いに接続された複数の端末装置を備えたピアツーピア型のコンテンツ配信システムにおいて、端末装置間で送受信されるコンテンツデータの数を適切に調整すること。【解決手段】ネットワーク上に配置された複数の端末装置から構成され、端末装置間でコンテンツデータの送受信を行うコンテンツ配信システムにおいて、当該コンテンツ配信システムを構成する端末装置の数を検出する端末装置数検出手段と、端末装置数検出手段によって検出した端末装置の数に基づいて、端末装置間で送受信可能なコンテンツデータの数を決定するコンテンツ数決定手段と、コンテンツ数決定手段により決定したコンテンツデータの数に応じて、端末装置間で送受信可能なコンテンツデータの数を変更するコンテンツ数調整手段とを備えることとした。【選択図】図８
2008250569.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に配置された複数の端末装置から構成され、前記端末装置間でコンテンツデータの送受信を行うコンテンツ配信システムにおけるコンテンツを管理するコンテンツ管理装置において、
当該コンテンツ配信システムを構成する端末装置の数を検出する端末装置数検出手段と、
前記端末装置数検出手段によって検出した前記端末装置の数に基づいて、前記端末装置間で送受信可能なコンテンツデータの数を決定するコンテンツ数決定手段と、
前記コンテンツ数決定手段により決定した前記コンテンツデータの数に応じて、前記端末装置間で送受信可能なコンテンツデータの数を変更するコンテンツ数調整手段と、を備える
ことを特徴とするコンテンツ管理装置。
【請求項２】
単位時間当たりに予測される前記コンテンツデータの送受信率を設定する記憶手段を備え、
前記コンテンツ数決定手段は、
前記端末装置数検出手段によって検出した前記端末装置の数と前記記憶手段に設定した前記送受信率に基づいて、前記端末装置間で送受信可能なコンテンツデータの数を決定する
ことを特徴とする請求項１に記載のコンテンツ管理装置。
【請求項３】
前記端末装置数検出手段は、
当該コンテンツ配信システムを構成する端末装置の数の変化を所定期間毎に検出し、
前記コンテンツ数決定手段は、
前記端末装置数検出手段によって検出された前記端末装置の数の変化に応じて、前記端末装置間で送受信可能なコンテンツデータの増減数を決定し、
前記コンテンツ数調整手段は、
前記コンテンツ数決定手段により決定した前記コンテンツデータの数の増減数に応じて、前記端末装置間で送受信可能なコンテンツデータの数を変更する
ことを特徴とする請求項１又は請求項２に記載のコンテンツ管理装置。
【請求項４】
前記端末装置の数と前記コンテンツの数とを関連付けたテーブルを有し、
前記コンテンツ数決定手段は、
前記テーブルに基づいて、前記端末装置間で送受信可能なコンテンツデータの数の増減数を決定する
ことを特徴とする請求項３に記載のコンテンツ管理装置。
【請求項５】
前記端末装置間でコンテンツデータの送受信可能なコンテンツデータのリストであって、前記端末装置間でコンテンツデータの送受信を行うために前記端末装置で用いられるコンテンツリストを前記端末装置に提供するコンテンツリスト提供手段を備え、
前記コンテンツ数調整手段は、前記コンテンツリストを変更することによって、前記端末装置間で送受信可能なコンテンツデータの数を変更する
ことを特徴とする請求項１から４のいずれか一項に記載のコンテンツ管理装置。
【請求項６】
前記コンテンツデータを前記端末装置で再生するためのキー情報を、前記端末装置からの要求に応じて送信するキー情報提供手段を備え、
前記コンテンツ数調整手段は、前記キー情報提供手段を制御して前記キー情報の送信を制限することによって、前記当該コンテンツ配信システムで送受信可能なコンテンツデータの数を変更する
ことを特徴とする請求項１から４のいずれか一項に記載のコンテンツ管理装置。
【請求項７】
コンピュータを、請求項１から６のいずれか一項に記載の各手段として機能させるためのプログラム。
【請求項８】
ネットワーク上に配置された複数の端末装置から構成され、前記端末装置間でコンテンツデータの送受信を行うコンテンツ配信システムにおいて、
所望のコンテンツデータを他の端末装置から取得できない端末装置からの要求に応じて、前記コンテンツデータを前記ネットワークを介して前記要求を行った端末装置へ送信するコンテンツ供給手段を備えるコンテンツ供給装置と、
前記端末装置間で送受信可能なコンテンツデータの数を変更するコンテンツ管理装置と、を備え、
前記コンテンツ管理装置は、
当該コンテンツ配信システムを構成する端末装置の数を検出する端末装置数検出手段と、
前記端末装置数検出手段によって検出した前記端末装置の数に基づいて、前記端末装置間で送受信可能なコンテンツデータの数を決定するコンテンツ数決定手段と、
前記コンテンツ数決定手段により決定した前記コンテンツデータの数に応じて、前記端末装置間で送受信可能なコンテンツデータの数を変更するコンテンツ数調整手段と、を備える
ことを特徴とするコンテンツ配信システム。
【請求項９】
前記コンテンツ管理装置は、
前記端末装置間でコンテンツデータの送受信可能なコンテンツデータのリストであって、端末装置間でコンテンツデータの送受信を行うために前記端末装置で用いられるコンテンツリストを前記端末装置に提供するコンテンツリスト提供手段を備え、
前記コンテンツリストを変更することによって、前記端末装置間で送受信可能なコンテンツデータの数の変更を行う
ことを特徴とする請求項８に記載のコンテンツ配信システム。
【請求項１０】
前記コンテンツ管理装置は、
前記コンテンツデータを前記端末装置で再生するための再生キー情報を、前記端末装置からの要求に応じて送信するキー情報提供手段を備え、
前記キー情報の送信を制限することによって、前記端末装置間で送受信可能なコンテンツデータの数の変更を行う
ことを特徴とする請求項８に記載のコンテンツ配信システム。
【請求項１１】
ネットワーク上に配置された複数の端末装置から構成され、前記端末装置間でコンテンツデータの送受信を行うコンテンツ配信システムにおける情報処理方法であって、
当該コンテンツ配信システムを構成する端末装置の数を検出するステップと、
前記検出した端末装置の数に基づいて、前記端末装置間で送受信可能なコンテンツデータの数を決定するステップと、
前記決定したコンテンツデータの数に応じて、前記端末装置間で送受信可能なコンテンツデータの数を変更するステップと、を有する
ことを特徴とするコンテンツ配信システムにおける情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して互いに接続された複数の端末装置を備えたピアツーピア（Peer to Peer（P2P））型のコンテンツ配信システムの技術分野に関する。
【背景技術】
【０００２】
近年、インターネットなどのネットワークを介して、音楽、映画、トーク番組などのコンテンツデータを配信する、いわゆるコンテンツ配信システムの研究が盛んである。
【０００３】
そして、分散ハッシュテーブル（ＤＨＴ（Distributed Hash Table））を利用して論理的にオーバーレイネットワークを構築することにより、コンテンデータなどの情報を効率的に分散配置して負荷分散を図る技術が提案されている。
【０００４】
この種のコンテンツ配信システムにおいては、各端末装置が当該オーバーレイネットワークに参加している全ての端末装置へのリンク情報（例えば、ＩＰアドレス）を認識しているわけではなく、参加の際などに得られる一部の端末装置へのリンク情報だけを保持しており、かかるリンク情報に基づき、コンテンツデータの検索等を行うようになっている（特許文献１参照）。
【特許文献１】特開２００６−１９７４００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、このようなコンテンツ配信システムにおいては、端末装置間で送受信するコンテンツデータが増加したとき、端末装置全体でコンテンツデータを保持する記憶容量を増加させる必要がある。
【０００６】
しかしながら、これらの端末装置の記憶容量に制限がある場合、コンテンツ配信システムにおけるコンテンツデータの需要量に対して、供給量が不足してしまうことになる。このように供給量が不足すると、端末装置間でコンテンツデータの送受信ができない事態が発生する。
【０００７】
そこで、需要量に対する供給量を満たすために、コンテンツ供給装置を設ける方法がある。すなわち、所望のコンテンツデータを端末装置間の送受信によっては取得できない端末装置からの要求に応じて、コンテンツデータをその要求を行った端末装置へ送信するコンテンツ供給装置を設けるのである。
【０００８】
ところが、このようにコンテンツ供給装置を配置した場合に、コンテンツ配信システムにおいてさらに供給能力が不足しまうと、コンテンツ供給装置への負荷集中が発生してしまう。このように、上述のコンテンツ配信システムにおいては、供給できるコンテンツデータの数が制限されることになる。すなわち、コンテンツデータの数に対して端末装置の数が少なくなった場合、コンテンツデータの需要量に対して供給量が少なくなり、コンテンツ供給装置を配置した場合であってもコンテンツデータを供給できない可能性がある。
【０００９】
本発明は、以上の不都合に鑑みてなされたものであり、ネットワークを介して互いに接続された複数の端末装置を備えたピアツーピア型のコンテンツ配信システムにおいて、端末装置間で送受信されるコンテンツデータの数を適切に調整することができるコンテンツ配信システム及び方法等を提供することを課題とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、請求項１に記載の発明は、ネットワーク上に配置された複数の端末装置から構成され、前記端末装置間でコンテンツデータの送受信を行うコンテンツ配信システムにおけるコンテンツを管理するコンテンツ管理装置において、当該コンテンツ配信システムを構成する端末装置の数を検出する端末装置数検出手段と、前記端末装置数検出手段によって検出した前記端末装置の数に基づいて、前記端末装置間で送受信可能なコンテンツデータの数を決定するコンテンツ数決定手段と、前記コンテンツ数決定手段により決定した前記コンテンツデータの数に応じて、前記端末装置間で送受信可能なコンテンツデータの数を変更するコンテンツ数調整手段とを備えることを特徴とする。
【００１１】
また、請求項２に記載の発明は、請求項１に記載の発明において、単位時間当たりに予測される前記コンテンツデータの送受信率を設定する記憶手段を備え、前記コンテンツ数決定手段は、前記端末装置数検出手段によって検出した前記端末装置の数と前記記憶手段に設定した前記送受信率に基づいて、前記端末装置間で送受信可能なコンテンツデータの数を決定することを特徴とする。
【００１２】
また、請求項３に記載の発明は、請求項１又は請求項２に記載の発明において、前記端末装置数検出手段は、当該コンテンツ配信システムを構成する端末装置の数の変化を所定期間毎に検出し、前記コンテンツ数決定手段は、前記端末装置数検出手段によって検出された前記端末装置の数の変化に応じて、前記端末装置間で送受信可能なコンテンツデータの増減数を決定し、前記コンテンツ数調整手段は、前記コンテンツ数決定手段により決定した前記コンテンツデータの数の増減数に応じて、前記端末装置間で送受信可能なコンテンツデータの数を変更することを特徴とする。
【００１３】
また、請求項４に記載の発明は、請求項３に記載の発明において、前記端末装置の数と前記コンテンツの数とを関連付けたテーブルを有し、前記コンテンツ数決定手段は、前記テーブルに基づいて、前記端末装置間で送受信可能なコンテンツデータの数の増減数を決定することを特徴とする。
【００１４】
また、請求項５に記載の発明は、請求項１から４のいずれか一項に記載の発明において、前記端末装置間でコンテンツデータの送受信可能なコンテンツデータのリストであって、前記端末装置間でコンテンツデータの送受信を行うために前記端末装置で用いられるコンテンツリストを前記端末装置に提供するコンテンツリスト提供手段を備え、前記コンテンツ数調整手段は、前記コンテンツリストを変更することによって、前記端末装置間で送受信可能なコンテンツデータの数を変更することを特徴とする。
【００１５】
また、請求項６に記載の発明は、請求項１から４のいずれか一項に記載の発明において、前記コンテンツデータを前記端末装置で再生するためのキー情報を、前記端末装置からの要求に応じて送信するキー情報提供手段を備え、前記コンテンツ数調整手段は、前記キー情報提供手段を制御して前記キー情報の送信を制限することによって、前記当該コンテンツ配信システムで送受信可能なコンテンツデータの数を変更することを特徴とする。
【００１６】
また、請求項７に記載の発明は、コンピュータを、請求項１から６のいずれか一項に記載の各手段として機能させるためのプログラムである。
【００１７】
また、請求項８に記載の発明は、ネットワーク上に配置された複数の端末装置から構成され、前記端末装置間でコンテンツデータの送受信を行うコンテンツ配信システムにおいて、所望のコンテンツデータを他の端末装置から取得できない端末装置からの要求に応じて、前記コンテンツデータを前記ネットワークを介して前記要求を行った端末装置へ送信するコンテンツ供給手段を備えるコンテンツ供給装置と、前記端末装置間で送受信可能なコンテンツデータの数を変更するコンテンツ管理装置と、を備え、前記コンテンツ管理装置は、当該コンテンツ配信システムを構成する端末装置の数を検出する端末装置数検出手段と、前記端末装置数検出手段によって検出した前記端末装置の数に基づいて、前記端末装置間で送受信可能なコンテンツデータの数を決定するコンテンツ数決定手段と、前記コンテンツ数決定手段により決定した前記コンテンツデータの数に応じて、前記端末装置間で送受信可能なコンテンツデータの数を変更するコンテンツ数調整手段とを備えることを特徴とする。
【００１８】
また、請求項９に記載の発明は、請求項８に記載の発明において、前記コンテンツ管理装置は、前記端末装置間でコンテンツデータの送受信可能なコンテンツデータのリストであって、端末装置間でコンテンツデータの送受信を行うために前記端末装置で用いられるコンテンツリストを前記端末装置に提供するコンテンツリスト提供手段を備え、前記コンテンツリストを変更することによって、前記端末装置間で送受信可能なコンテンツデータの数の変更を行うことを特徴とする。
【００１９】
また、請求項１０に記載の発明は、請求項８に記載の発明において、前記コンテンツ管理装置は、前記コンテンツデータを前記端末装置で再生するための再生キー情報を、前記端末装置からの要求に応じて送信するキー情報提供手段を備え、前記キー情報の送信を制限することによって、前記端末装置間で送受信可能なコンテンツデータの数の変更を行うことを特徴とする。
【００２０】
また、請求項１１に記載の発明は、ネットワーク上に配置された複数の端末装置から構成され、前記端末装置間でコンテンツデータの送受信を行うコンテンツ配信システムにおける情報処理方法であって、当該コンテンツ配信システムを構成する端末装置の数を検出するステップと、前記検出した端末装置の数に基づいて、前記端末装置間で送受信可能なコンテンツデータの数を決定するステップと、前記決定したコンテンツデータの数に応じて、前記端末装置間で送受信可能なコンテンツデータの数を変更するステップとを有することを特徴とする。
【発明の効果】
【００２１】
請求項１，７，８，１１に記載の発明によれば、コンテンツ配信システムを構成する端末装置の数から、端末装置間で送受信可能なコンテンツデータの数を変更するので、コンテンツ供給装置の負荷を検出することなく、容易にコンテンツ供給装置のサーバ負荷状態を低減させることができる。
【００２２】
また、請求項２に記載の発明によれば、予めコンテンツデータの送受信率を記憶しておくようにしているため、この送受信率と参加端末数とに基づいて、端末装置間で送受信可能なコンテンツデータの決定をより適切に行うことができる。
【００２３】
また、請求項３に記載の発明によれば、コンテンツ供給装置における負荷状態の細かい変動に追従することなく、従って、端末装置間で送受信可能なコンテンツデータの数の変更処理が煩雑になることを防止することができる。
【００２４】
また、請求項４に記載の発明によれば、コンテンツ配信システムを構成する端末装置の数と公開すべきコンテンツ数とを関連づけたテーブルを用いて、端末装置間で送受信可能なコンテンツデータの数の増減を行うため、処理を簡易なものとすることができる。
【００２５】
また、請求項５，９に記載の発明によれば、コンテンツリストに掲載するコンテンツデータの数を増減させることによって、端末装置間で送受信可能なコンテンツデータを増減させるため、処理が複雑にならずに済む。
【００２６】
また、請求項６，１０に記載の発明によれば、コンテンツキーの送信を拒否する割合を増減させることによって、端末装置間で送受信するコンテンツデータの数を増減させるため、処理が複雑にならずに済む。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、配信する情報を音楽データや映像データなどのコンテンツデータとするコンテンツ配信システムに対して本発明を適用した場合の実施形態である。
【００２８】
［１．第1実施形態]
［１．１．コンテンツ配信システムＳの構成等］
まず始めに、図１を参照して、本実施形態に係るコンテンツ配信システムＳの概要構成等について説明する。図１は、本実施形態に係るコンテンツ配信システムＳにおける各端末装置の接続態様の一例を示す図である。このコンテンツ配信システムＳは、ネットワーク上に分散配置された複数の端末装置から構成され、端末装置間でコンテンツデータの送受信を行うものである。
【００２９】
図１の下部枠101内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Service Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者（の装置）５、ＦＴＴＨ（Fiber To The Home）回線事業者（の装置）６、及び通信回線（例えば、電話回線や光ケーブル等）７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。
【００３０】
コンテンツ配信システムＳは、図１の上部枠100内に示すように、ネットワーク８を介して相互に接続された複数の端末装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・を備えて構成され、ピアツーピア（Ｐ２Ｐ）方式のネットワークシステムとなっている。各端末装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・には、端末装置を示す情報としての固有の製造番号（例えば、ＭＡＣアドレス）及びＩＰ（Internet Protocol）アドレスが割り当てられている。なお、製造番号及びＩＰアドレスは、複数の端末装置間で重複しないものである。また、以下の説明において、端末装置１ａ，１ｂ，１ｃ・・・１ｘ，１ｙ，１ｚ・・・のうち何れかの端末装置又は全ての端末装置を示す場合には、便宜上、端末装置１という場合がある。
【００３１】
［１．１．１．ＤＨＴの概要］
以下に、本実施形態に係る分散ハッシュテーブル（以下、「ＤＨＴ」（Distributed Hash Table）と呼ぶ。）を利用したアルゴリズムについて説明する。
【００３２】
上述したコンテンツ配信システムＳにおいて、当該端末装置１同士が、互いに情報をやり取りする際には、お互いの所在情報であるＩＰアドレスを知っていなければならない。
【００３３】
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク８に参加している各端末装置１が互いにネットワーク８に参加している全ての端末装置１のＩＰアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全ての端末装置１のＩＰアドレスを覚えておくのは現実的ではない。また、任意の端末装置１の電源が頻繁にＯＮ或いはＯＦＦとすると、各端末装置１において記憶している当該任意の端末装置１のＩＰアドレスの更新が頻繁になり、運用上困難となる。
【００３４】
そこで、１台の端末装置１では、ネットワーク８に参加している全ての端末装置１のうち、必要最低限の一部の端末装置１のＩＰアドレスだけを記憶しておき、ＩＰアドレスを記憶していない端末装置１については、各端末装置１間で互いに情報を転送し合うことによりコンテンツを届けるシステムが考案されている。
【００３５】
このようなシステムの一例として、ＤＨＴを利用したアルゴリズムによって、図１の上部枠100内に示すような、オーバーレイネットワーク９が構築されることになる。つまり、このオーバーレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味する。
【００３６】
本実施形態においては、ＤＨＴを利用したアルゴリズムによって構築されたオーバーレイネットワーク９を前提としており、このオーバーレイネットワーク９上に配置された端末装置１を、コンテンツ配信システムＳに参加（言い換えれば、オーバーレイネットワーク９に参加）している端末装置という。
【００３７】
コンテンツ配信システムＳに参加している各端末装置１の識別番号である端末ＩＤとして、それぞれの端末装置１毎にユニークな番号（固有番号）を付与する。この番号は、端末装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、２128（２の１２８乗）≒340×1036（１０の３６乗）台の端末装置を運用できる。
【００３８】
より具体的には、各端末装置１の端末ＩＤは、それぞれの端末装置１のＩＰアドレス或いは製造番号等の端末装置１毎に固有の値を、共通のハッシュ関数（ハッシュアルゴリズム）によりハッシュ化して得たハッシュ値であり、一つのＩＤ空間に偏りなく分散して配置されることになる。
【００３９】
このように共通のハッシュ関数によりハッシュ化されて求められた端末ＩＤは、当該ＩＰアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。また、本実施形態では、ＩＰアドレス（グローバルＩＰアドレス）を共通のハッシュ関数によりハッシュ化した値を端末ＩＤとする。
【００４０】
また、コンテンツ配信システムＳに参加している複数の端末装置１には、一の端末装置１から他の端末装置１に配信される共用情報としてのコンテンツデータ（例えば、音楽データ、映画データ、文書データ等）が分散して記憶されているが、当該コンテンツデータにも、それぞれのコンテンツデータ毎の固有の識別番号（以下、「コンテンツＩＤ」と呼ぶ。）を付与する。
【００４１】
そして、当該コンテンツＩＤは、端末ＩＤと同様の長さ（例えば、128bit等）とし、コンテンツの名称（例えば、データファイル名）などが、上記端末ＩＤを得るときと共通のハッシュ関数によりハッシュ化される（つまり、端末装置１のＩＰアドレスのハッシュ値と同一のＩＤ空間に配置される）。
【００４２】
このように、各端末装置１及び各コンテンツデータに付与された端末ＩＤ及びコンテンツＩＤは、共通のハッシュ関数によって生成したため、図２に示すように、同一のリング状のＩＤ空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は32bitで端末ＩＤ及びコンテンツＩＤを付与し、図示したものである。図中丸点は端末ＩＤを、四角形はコンテンツＩＤを示し、反時計回りでＩＤが増加するものとする。
【００４３】
本実施形態においては、上述のように「あるコンテンツＩＤを有するコンテンツデータを管理する端末装置は、そのコンテンツＩＤに近い端末ＩＤを有する端末装置である」という規則を適用しており、「近い」ことの定義は、当該コンテンツＩＤを超えず、コンテンツＩＤと端末ＩＤとの差が一番少ないものとするが、実際には、各コンテンツデータの管理を各端末装置１に割り振る際に、一貫していれば他の定義でもよい。
【００４４】
図２に示す例では、この定義に基づいて、コンテンツＩＤａは、当該コンテンツＩＤａに近い端末ＩＤ（以下、「端末ＩＤａ」と呼ぶ。）を有する端末装置１に管理され、コンテンツＩＤｂは、当該コンテンツＩＤｂに近い端末ＩＤ（以下、「端末ＩＤｂ」と呼ぶ。）を有する端末装置１に管理され、コンテンツＩＤｃは、当該コンテンツＩＤｃに近い端末ＩＤ（以下、「端末ＩＤｃ」と呼ぶ。）を有する端末装置１に管理される。
【００４５】
ここで、「管理」とは、コンテンツデータを保持していることを意味するのではなく、「コンテンツデータが何れの端末装置１に保持されているかを知っている」ことを意味する。すなわち、コンテンツ配信システムＳ内で送受信するコンテンツデータを保持する端末装置１（以下、「コンテンツ保持端末装置」と呼ぶ。）へのリンク情報（コンテンツ保持端末装置の所在情報であるＩＰアドレス）を保持することを意味する。例えば、図２においては、端末ＩＤａを有する端末装置１は、コンテンツＩＤａを有するコンテンツデータが何れの端末装置１に保持されているかを知っており、端末ＩＤｂを有する端末装置１及び端末ＩＤｃを有する端末装置１も同様にそれぞれコンテンツＩＤｂを有するコンテンツデータ及びコンテンツＩＤｃを有するコンテンツデータが何れの端末装置１に保持されているかを知っている、ということになる。
【００４６】
このように、あるコンテンツデータが何れの端末装置１に保持されているかを知っている端末装置１を、そのコンテンツデータのルート端末装置と呼ぶ。つまり、端末ＩＤａを有する端末装置１は、コンテンツＩＤａを有するコンテンツデータのルート端末装置であって、端末ＩＤｂを有する端末装置１は、コンテンツＩＤｂを有するコンテンツデータのルート端末装置であって、端末ＩＤｃを有する端末装置１は、コンテンツＩＤｃを有するコンテンツデータのルート端末装置である。
【００４７】
また、コンテンツ配信システムＳには、図１及び図２に示すように、コンテンツ配信システムＳ内にコンテンツデータを投入する機能、すなわちコンテンツ配信システムＳ内の端末装置１をコンテンツ保持端末装置とするためにコンテンツデータを端末装置１へ配布する機能や、端末装置１からの要求に応じてコンテンツデータを送信する機能を有するコンテンツ供給手段としてコンテンツ供給装置１０と、コンテンツ配信システムＳにおいて端末装置間で送受信可能なコンテンツデータのリストであるコンテンツリスト（カタログ）を生成して端末装置１へ提供する機能と、端末装置１からの要求に応じてコンテンツデータを再生又は取得するためのコンテンツキー（キー情報の一例に相当）を送信する機能などを有し、コンテンツを管理するコンテンツ管理装置２０とが設けられている。なお、「コンテンツ配信システムＳにコンテンツを投入」とは、コンテンツ供給装置１０が、あるコンテンツデータに関して最初にコンテンツ保持端末装置となる端末装置１を決定し、当該決定した端末装置１にコンテンツデータを配布することを意味する。「コンテンツデータ数」とは、コンテンツリストに掲載されている全でのコンテンツの数であって、公開されているコンテンツ数である。
【００４８】
［１．１．２．ルーティングテーブルの作成］
ここで、図３を参照して、ＤＨＴで用いるルーティングテーブルの作成手法の一例について説明する。図３は、ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【００４９】
まず、図３（ａ）に示すように、ＩＤ空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは４分割とし、ＩＤをビット長８bitの４進数で表すことにする。そして、端末装置１Ｎの端末ＩＤを「1133」とし、この端末装置１Ｎのルーティングテーブルを作る例について説明する。
【００５０】
（レベル１のルーティング）
まず、ＩＤ空間を４分割とした場合、それぞれのエリアは４進数で表すと最大桁が異なる４つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」（Ｘは０から３の自然数、以下同様。）で分けられる。端末装置１Ｎは、当該端末装置１Ｎ自身の端末ＩＤが「1133」であるため、図３（ａ）中左下「1XXX」のエリアに存在することになる。そして、端末装置１Ｎは、参加要求を受信した他の端末装置１などから送信された情報等から、自分の存在するエリア（すなわち、「1XXX」のエリア）以外のエリア（すなわち、「0XXX」のエリア、「2XXX」のエリア、「3XXX」のエリア）に存在する端末装置１を選択し、当該端末装置１の端末ＩＤ及びＩＰアドレスをレベル１のテーブルに記憶する。図４がレベル１のテーブルの一例である。このテーブルでは、「0XXX」のエリアの端末ＩＤとして「0100」、「2XXX」のエリアの端末ＩＤとして「2133」、「3XXX」のエリアの端末ＩＤとして「3213」がそれぞれ選択されている状態を示している。なお、当該レベル１の２列目は端末装置１Ｎ自身を示しているため、ＩＰアドレスを記憶する必要はない。
【００５１】
（レベル２のルーティング）
次に、図３（ｂ）に示すように、上記ルーティングによって４分割したエリアのうち、自分の存在するエリア「1xxx」を更に４分割し、更に４つのエリア「10XX」、「11XX」、「12XX」、「13XX」と分ける。そして、上記と同様に自分の存在するエリア「11XX」以外のエリアに存在する端末装置１を適当に選択し、当該端末装置１の端末ＩＤ及びＩＰアドレスをレベル２のテーブルに記憶する。図４がレベル２のテーブルの一例である。このテーブルでは、「10XX」のエリアの端末ＩＤとして「1003」、「12XX」のエリアの端末ＩＤとして「1221」が、「13XX」のエリアの端末ＩＤとして「1313」がそれぞれ選択されている状態を示している。なお、レベル２の２列目は端末装置１Ｎが存在するエリア「11XX」であり、後述するレベル３にてテーブル化されるためＩＰアドレスを記憶していない。また、上記エリアに端末装置１が存在しない場合には、端末ＩＤ及びＩＰアドレスの欄は空白となる。
【００５２】
（レベル３のルーティング）
更に、上記ルーティングによって４分割したエリアのうち、自分の存在するエリア「11XX」を更に４分割し、更に４つのエリア「110X」「111X」、「112X」、「113X」と分ける。そして、上記と同様に自分の存在するエリア「113X」以外のエリアに存在する端末装置１を適当に選択し、当該端末装置１の端末ＩＤ及びＩＰアドレスをレベル３のテーブルに記憶する。図４がレベル３のテーブルの一例である。レベル３の４列目は端末装置１Ｎが存在するエリアであり、後述するレベル４にてテーブル化されるためＩＰアドレスを記憶していない。また、上記エリアに端末装置１が存在しない場合には、端末ＩＤ及びＩＰアドレスの欄は空白となる。
【００５３】
このようにして、レベル４まで同様にルーティングテーブルを図４に示すように作成することにより、８bitのＩＤ全てを網羅することができる。なお、レベルが上がる毎にテーブルの中に空白が目立つようになる。
【００５４】
以上説明した手法に従って作成したルーティングテーブルを、全ての端末装置１が夫々作成して所有することになる。このように、各端末装置１は、コンテンツ配信システムＳにおける複数の端末装置１のうち一部の端末装置１の識別情報である端末ＩＤ及びＩＰアドレスを関連付けたルーティングテーブルを有している。
【００５５】
［１．１．３．コンテンツデータの検索方法］
次に、図５を参照して、コンテンツデータを保持している端末装置１の検索方法の一例について説明する。図５は、ＤＨＴによりコンテンツデータを保持している端末装置１が検索される様子の一例を示す図である。
【００５６】
ここでは、端末ＩＤ「1133」の端末装置１Ｎが、コンテンツＩＤ「3020」を有するコンテンツデータを探す際の手順について説明する。なお、以下このようにコンテンツデータを探し、コンテンツデータの送信を要求する端末装置１をリクエスト端末装置と呼ぶ。
【００５７】
リクエスト端末装置１Ｎは、コンテンツＩＤ「3020」を宛先識別情報とし、自己が保持しているルーティングテーブルを参照して、コンテンツ保持端末装置の識別情報の送信要求（以下、「検索メッセージ」と呼ぶ。）を送信する。リクエスト端末装置１Ｎが、図４の例と同じ値のルーティングテーブルを持っていたとすると、コンテンツＩＤ「3020」は「3XXX」のエリアであるため、当該「3XXX」のエリアに属す端末装置１のうち、ＩＰアドレスを知っている（すなわち、自己が保持しているルーティングテーブルにＩＰアドレスが記憶されている）端末装置１Ａ（端末ＩＤ「3213」）に対して検索メッセージを送信する。このように、検索メッセージはコンテンツデータに対応する固有の識別情報であるコンテンツＩＤを含むものであり、このコンテンツＩＤは検索メッセージにおいて宛先識別情報として用いられる。
【００５８】
次に、検索メッセージを受信した端末装置１Ａは、この検索メッセージが自端末装置１Ａ宛のメッセージであるか否かを判定する。自端末装置１Ａ宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルとに基づいて行われる。具体的には、宛先識別情報が自端末装置１Ａの識別情報である端末ＩＤと近いか否かが判定される。即ち、宛先識別情報に対して、端末装置１Ａ自身が保持しているルーティングテーブル（テーブルの値は図示しない）に記憶されている端末装置１の端末ＩＤから、一番近い端末装置１の端末ＩＤが、自身であるか他の端末装置１であるかを判定する。
【００５９】
そして、自端末装置１Ａの端末ＩＤよりも他の端末装置１の端末ＩＤの方が、宛先識別情報に近いため、端末装置１Ａは、当該端末装置１Ａ自身が保持しているルーティングテーブルのレベル２のテーブルを参照して、「30XX」のエリアに属す端末装置１のうち、ＩＰアドレスを知っている端末装置１Ｂ（端末ＩＤ「3031」）に対して検索メッセージを転送する。
【００６０】
このように、コンテンツＩＤの桁を上から順に適合していく要領で検索メッセージの転送が進み、最終的に当該コンテンツデータを管理する端末装置１Ｃ、すなわちルート端末装置に辿り着くと、当該ルート端末装置は、検索メッセージに含まれるコンテンツＩＤ「3020」を、自身が管理している後述のインデックス情報の中から検索し、当該コンテンツデータを所有しているコンテンツ保持端末装置に関する情報（端末ＩＤやＩＰアドレス等）をリクエスト端末装置１Ｎに返信するようになっている。なお、検索メッセージなどのメッセージを目的の端末装置１へ辿り着くまでに、上述のように転送する仕組みをＤＨＴルーティングと呼ぶ。
【００６１】
こうして、リクエスト端末装置１Ｎは、上記ルート端末装置１Ｃから、コンテンツＩＤ「3020」のコンテンツデータを保持するコンテンツ保持端末装置に関する所在情報であるＩＰアドレスを受信して知ることになり、当該コンテンツ保持端末装置から、そのコンテンツデータを取得することになる。
【００６２】
［１．１．４．インデックステーブルへの登録方法］
このような構成のコンテンツ配信システムＳの中で、例えば、ある端末装置１が新しいコンテンツデータを、コンテンツ配信システムＳ上の他の端末装置１から検索可能とする際の手法について図面を参照して説明する。ここでは、コンテンツデータを保持することになった端末装置を端末ＩＤ「1301」の端末装置１Ｍ、コンテンツデータのコンテンツＩＤを「3020」、コンテンツＩＤ「3020」のルート端末装置を端末ＩＤ「3011」の端末装置ＩＣとして説明する。
【００６３】
図６に示すように、コンテンツ供給装置１０から配布されたコンテンツデータを記憶してコンテンツ保持端末装置となった端末装置１Ｍは、記憶したコンテンツデータのコンテンツＩＤ「3020」と同じ端末ＩＤを持つ端末装置１に向けて（この端末装置１が実在するか否かはこの時点ではわからない。）登録メッセージ（端末装置１Ｍの端末ＩＤ及びそのＩＰアドレス、コンテンツＩＤ「3020」を含む）を送信する。そして、この登録メッセージも、上記検索メッセージと同様にルーティングテーブルに従って、次々と転送されていき、当該登録メッセージに含まれるコンテンツＩＤに最も近い端末ＩＤを有する端末装置１Ｃまで転送されたところで、その端末装置１Ｃはもはや転送先の端末装置１が他にないと判断すると、当該端末装置１自身がそのコンテンツのルート端末装置となるべきだと判断し、当該登録メッセージに含まれる当該コンテンツＩＤ及びコンテンツ保持端末装置１Ｍの端末ＩＤやＩＰアドレス（以下、これらを「インデックス情報」と呼ぶ。）を記憶する。
【００６４】
ルート端末装置におけるインデックス情報の保持は、図７に示すようなインデックステーブルにより行われる。図７はルート端末装置１Ｃにおけるインデックステーブルの例を示したものであり、自端末装置１が管理対象であるコンテンツＩＤ「3020」のコンテンツに関するコンテンツ保持端末装置の端末ＩＤやＩＰアドレスなどを記憶している。
【００６５】
［１．１．５．端末装置１におけるコンテンツデータの取得・再生動作の概略］
次に、コンテンツ配信システムＳの端末装置１におけるコンテンツデータの取得・再生動作の概略について図面を参照して具体的に説明する。図８は、端末装置１におけるコンテンツデータの取得・再生動作の概略についての説明図である。ここでは、あるコンテンツＸのコンテンツデータ（以下、「コンテンツＸのデータ」と呼ぶ。）がコンテンツ配信システムＳに投入され、端末装置１によってコンテンツＸのデータが取得され再生される場合を例に挙げ説明する。また、図８においては、説明を簡易にするためＤＨＴルーティングの流れを省略している。
【００６６】
通常、リクエスト端末装置がコンテンツ保持端末装置からコンテンツＸのデータを取得して再生することになるが（以下、「コンテンツ保持端末装置からの取得・再生動作」とする。）、コンテンツ保持端末装置が過負荷状態にある等によりコンテンツＸのデータをリクエスト端末装置に送信できないときには、リクエスト端末装置はコンテンツ管理装置２０からコンテンツＸのデータを取得して再生することになる（（以下、「コンテンツ管理装置からの取得・再生動作」とする。）。以下、それぞれの取得動作について順に説明する。
【００６７】
（コンテンツ保持端末装置からの取得・再生動作）
まず、リクエスト端末装置がコンテンツ保持端末装置からコンテンツデータを取得する動作について図８を参照して説明する。図８に示すように、コンテンツＸのデータをコンテンツ配信システムＳに投入するために、コンテンツ供給装置１０は、コンテンツＸのデータを配布する端末装置１をランダムに決定する。ここでは、コンテンツ供給装置１０がコンテンツＸのデータを配布する端末装置１の数を１としているが、これに限られない。例えば投入するコンテンツＸが人気のコンテンツと推測できるものであれば、その数を増やすようにしてもよい。
【００６８】
次に、コンテンツ供給装置１０は、上記のように決定した端末装置１（ここでは、端末装置１ｒとする。）に対して、コンテンツＸのデータを配布する（図８中（１）参照。）。このようにコンテンツＸのデータが端末装置１ｐに配布されると、端末装置１間でのコンテンツＸのデータの送受信が可能となる。すなわち、コンテンツＸのデータが配布された端末装置１ｐは、コンテンツ保持端末装置として機能する。なお、図示しないが、コンテンツＸのデータが配布された端末装置１ｐは、コンテンツＸのルート端末装置（ここでは、端末装置１ｑとする。）へ向けて登録メッセージを送信するようにしており、これにより端末装置１ｐは自端末装置の所在情報であるＩＰアドレス等を含むインデックス情報をコンテンツＸのルート端末装置１ｑに登録する。
【００６９】
その後、コンテンツ保持端末装置でない端末装置１（ここでは、端末装置１ｒとする。）の利用者がコンテンツ配信システムＳに投入されたコンテンツＸのデータの取得するための操作（以下、「取得要求操作」とする。）を行うと、当該端末装置１ｒはリクエスト端末装置として、コンテンツＸのデータの取得動作を開始する。
【００７０】
コンテンツＸのデータを取得するために、リクエスト端末装置１ｒは、まず、コンテンツ管理装置２０に対して、取得要求操作に応じたコンテンツＸのコンテンツキーの送信を要求する（図８中（２）参照。）。
【００７１】
コンテンツ管理装置２０には、正当な利用者か否かを判定するための利用者リストが記憶されており、コンテンツＸのコンテンツキーの送信を要求したリクエスト端末装置が正当な利用者か否かを確認する（図８中（３）参照。）。
【００７２】
コンテンツ管理装置２０には、コンテンツ配信システムＳ内で配信可能なコンテンツデータに対応するコンテンツキーが記憶されており、リクエスト端末装置１ｒが正当な利用者であると判定すると、記憶しているコンテンツＸのコンテンツキーを取り出して、リクエスト端末装置１ｒへ送信する（図８中（４）参照。）。
【００７３】
リクエスト端末装置１ｒは、コンテンツ管理装置２０から送信されるコンテンツＸのコンテンツキーを受信すると、コンテンツＸのコンテンツ保持端末装置を検索するために検索メッセージをルーティングテーブルに基づいて送信する（図８（５）参照。）。
【００７４】
検索メッセージを受信したコンテンツＸのルート端末装置１ｑは、自装置のインデックステーブルから、コンテンツＸのデータを保持するコンテンツ保持端末装置の所在情報であるＩＰアドレスを検索し、リクエスト端末装置に対して、検索したコンテンツ保持端末装置のＩＰアドレスをいくつか送信する（図８中（６）参照。）。
【００７５】
リクエスト端末装置は、ルート端末装置からコンテンツ保持端末装置のＩＰアドレスをいくつか受信すると、これらのＩＰアドレスのうち一つのＩＰアドレスを宛先としてコンテンツＸのコンテンツ保持端末装置（ここでは、端末装置１ｐとする。）に対して、コンテンツＸのデータの送信要求を行う（図８中（７）参照。）。
【００７６】
コンテンツＸのコンテンツ保持端末装置１ｐは、リクエスト端末装置の要求に対して、記憶しているコンテンツＸのデータをストリーミング形式でリクエスト端末装置１ｒへ送信する（図８中（８）参照。）。
【００７７】
リクエスト端末装置１ｒは、コンテンツ保持端末装置１ｐからストリーミング形式で送信されるコンテンツＸのデータを受信する。コンテンツＸのデータは所定の暗号化方式で暗号化されており、リクエスト端末装置１ｒは、コンテンツ供給装置１０から受信したコンテンツキーを復号キーとして用いることによりコンテンツＸのデータ復号化してストリーム再生する。また、リクエスト端末装置１ｒは、受信したコンテンツデータを順次内部の記憶部に記憶していき、コンテンツデータを全て記憶したときに、自端末装置１をコンテンツ保持端末装置として動作させ登録メッセージを送信する。
【００７８】
（コンテンツ管理装置からの取得・再生動作）
次に、リクエスト端末装置がコンテンツ管理装置２０からコンテンツデータを取得する動作について図９を参照して説明する。図９には、コンテンツ保持端末装置１ｐにおける処理能力等の関係（例えば、コンテンツ保持端末装置１ｐにおいて他の端末装置へコンテンツＸのデータを複数送信しているために、リクエスト端末装置へのコンテンツＸのデータを供給する処理能力がないときなど）で、コンテンツ保持端末装置１ｐがリクエスト端末装置１ｒにコンテンツＸのデータを送信できない場合に、端末装置１によってコンテンツＸのデータが取得され再生される例が示されている。なお、図９における（１）〜（７）までの処理は、図８における（１）〜（７）までの処理と同様であるため、以下、図９における（８）〜（１０）の処理について説明する。
【００７９】
図９に示すように、コンテンツ保持端末装置１ｐの処理能力などの関係で、コンテンツ保持端末装置１ｐがリクエスト端末装置１ｒにコンテンツＸのデータを送信できないとき、コンテンツ保持端末装置１ｐからは、コンテンツＸのデータを送信することができない旨の通知（送信不可通知）がリクエスト端末装置１ｒに送信される（図９（８）参照）。
【００８０】
リクエスト端末装置１ｒは、コンテンツ保持端末装置１ｐから送信不可通知を受信すると、コンテンツ供給装置１０に対して、コンテンツＸのデータの送信要求を行う（図９中（９）参照。）。
【００８１】
コンテンツ供給装置１０は、リクエスト端末装置１ｒの要求に対して、記憶しているコンテンツＸのデータをストリーミング形式でリクエスト端末装置１ｒへ送信する（図９中（１０）参照。）。
【００８２】
リクエスト端末装置１ｒは、コンテンツ供給装置１０からストリーミング形式で送信されるコンテンツＸのデータを受信する。以降、コンテンツ保持端末装置１ｐからコンテンツＸのデータを受信した時と同様に、コンテンツ管理装置２０から受信したコンテンツキーを復号キーとして用いることによりコンテンツＸのデータ復号化してストリーム再生する。また、リクエスト端末装置１ｒは、受信したコンテンツデータを順次内部の記憶部に記憶していき、コンテンツデータを全て記憶したときに、自端末装置１をコンテンツ保持端末装置として動作させ登録メッセージを送信する。
【００８３】
［１．１．６．コンテンツ配信システムＳ内の端末装置１の数に応じた処理について］
本実施形態におけるコンテンツ配信システムＳにおいては、コンテンツデータの送受信を端末装置間で行うことを基本とするが、上述のように、コンテンツ保持端末装置からコンテンツデータを供給できない場合には、コンテンツ供給装置１０からコンテンツデータを供給することになる。
【００８４】
ところで、コンテンツ配信システムＳ内のコンテンツデータの数（以下、単に「コンテンツ数」とも呼ぶ。）とコンテンツ配信システムＳの端末装置１の数（以下、「参加端末数」とも呼ぶ。）との関係で、コンテンツ供給装置１０にアクセスが集中してしまう恐れがある。このようにコンテンツ供給装置１０にアクセスが集中すると、コンテンツ供給装置１０の処理負荷(以下、「サーバ負荷」と呼ぶ。)が増大し、その限界（以下、「サーバ性能限界」とする。）に達してしまう事態になるおそれがある。
【００８５】
図１０は、上記サーバ負荷と参加端末数との関係を、コンテンツ数毎にグラフ化した例を示した図である。この図に示すように、コンテンツ配信システムＳ内のコンテンツ数が多ければ多いほど、サーバ負荷が増加する。また、コンテンツ配信システムＳ内のコンテンツ数の増減がない状態で、参加端末数が多くなるに従いサーバ負荷が増加するが、参加端末数がある程度の数になるとそれを境にサーバ負荷が減少していく。このカーブの形状は、Ｐ２Ｐ型のコンテンツ配信システムに特有のものである。参加端末数が多くなればなるほど、端末装置間でコンテンツの融通が利くため、コンテンツ供給装置１０へのアクセスは少なくなる。逆に、参加端末数が非常に少ないうちは、コンテンツのリクエスト数自体が少ないため、コンテンツ供給装置１０へのアクセスも少なくなる。参加端末数が中間的な値のときに、コンテンツ供給装置１０へのアクセスが比較的多くなり、このような形状になる。例えば、図１０においてコンテンツ数が３万のときでは、参加端末数がＮ１とＮ４との間の略中央にあるときに、コンテンツ供給装置１０のサーバ負荷がピークとなっている。
【００８６】
このようにコンテンツ配信システムＳ内のコンテンツ数が端末装置１の数に比べて適正でない場合には、コンテンツ供給装置１０のサーバ負荷が図１０に示すようにサーバ性能限界を超えてしまうおそれがある。このような状態の時、コンテンツ配信システムＳにおいて利用可能なコンテンツ数（端末装置間で送受信可能なコンテンツデータの数であり、以下、「公開コンテンツ数」とも呼ぶ。）を増減させることにより、コンテンツ供給装置１０のサーバ負荷を低減することができる。
【００８７】
このコンテンツ供給装置１０のサーバ負荷は、コンテンツ配信システムＳに参加している端末装置１によるコンテンツデータの送信要求数（以下、「コンテンツ需要数」とする。）と、コンテンツ配信システムＳに参加している端末装置１によってコンテンツデータを送信できる送信可能数（以下、「コンテンツ供給数」とする。）との関係で決まる。
【００８８】
ここで、コンテンツ需要数は、参加端末数に推定視聴率を積算したものとして概ね捉えることができる。また、コンテンツ供給数は、参加端末数に各端末装置の配信能力（例えば、演算能力、ネットワーク速度、コンテンツデータの記憶数など）を積算したものとして概ね捉えることができる。
【００８９】
このように、コンテンツ供給装置１０のサーバ負荷は、公開コンテンツ数と参加端末数に依存して変化する。従って、参加端末数の変化に対して公開コンテンツ数を増減させることで、コンテンツ供給装置１０のサーバ負荷を調整することができる。本実施形態においては、参加端末数に応じて、公開コンテンツ数を変更するようにして、コンテンツ供給装置１０のサーバ負荷状態がサーバ性能限界を超えないようにしている。
【００９０】
コンテンツ管理装置２０による調整は、参加端末数と公開コンテンツ数との関係で参加端末数が少ないときには、公開コンテンツ数を減少させ、参加端末数と公開コンテンツ数との関係で参加端末数が多いときには、公開コンテンツ数を増加させることによって行われる。
【００９１】
コンテンツ管理装置２０による公開コンテンツ数の減少は、コンテンツ配信システムＳ内にて提供されているコンテンツ（すなわち、端末装置１間でコンテンツデータの送受信可能なコンテンツデータ）の名称がリスト化されたコンテンツリストの内容を変更することによって行う。例えば、コンテンツ配信システムＳ内に存在するコンテンツデータの数（以下、「全コンテンツ数」とする。）を１万としたときに、コンテンツリストに掲載するコンテンツデータの数（以下、「掲載コンテンツ数」とする。）を４０００ほど減少させることによって、公開コンテンツ数を実質的に２／５減少させることができる。
【００９２】
また、コンテンツ管理装置２０による公開コンテンツ数の増加は、コンテンツリストに掲載するコンテンツデータの制限を緩和或いは解除することによって行われる。例えば、全コンテンツ数を１万としたときの掲載コンテンツ数が６０００である状態で、掲載コンテンツ数を２０００ほど増加させることによって、公開コンテンツ数を実質的に４／３だけ増加させることができる。
【００９３】
なお、コンテンツリストに掲載するコンテンツデータの制限が行われていない状態（つまり、全コンテンツ数＝掲載コンテンツ数のとき）では、上述の方法では公開コンテンツ数の増加を行うことができない。そこで、本実施形態におけるコンテンツ管理装置２０では、コンテンツデータをコンテンツ供給装置１０に対して、所要の公開コンテンツ数の増加に応じた数のコンテンツデータを新たに投入するように要求するように設定することができるようにしている。この要求に応じてコンテンツ供給装置１０は、コンテンツデータを複数の端末装置１へ投入し、コンテンツ管理装置２０はこれに応じてコンテンツリストの掲載コンテンツ数を増加させる。なお、コンテンツデータを新たに投入するのに代えて、すでに投入しているコンテンツデータを端末装置へ送信するようにして、コンテンツ保持端末装置を増加させるようにすることもできる。
【００９４】
ところで、コンテンツ管理装置２０は、参加端末数を端末装置１のルーティングテーブルの状態から推測することができる。つまり、ルーティングテーブルに含まれる端末装置１の情報の数が多いときには参加端末数が多く、ルーティングテーブルに含まれる端末装置１の情報の数が少ないときには参加端末数が少ない。従って、コンテンツ管理装置２０は、ルーティングテーブルに含まれる端末装置の情報（例えば、端末ＩＤ）の数に所定の係数を積算することによって参加端末数を演算する。なお、端末装置１のルーティングテーブルは、端末装置１がコンテンツリストやコンテンツキーを要求するときに同時に端末装置１から送信させたり、所定の端末装置１に定期的にルーティングテーブルを送信させるように要求するようにしてもよい。また、コンテンツ配信システムＳへの参加又は脱退を行う端末装置１がコンテンツ管理装置２０にその参加・脱退を通知するようにしたり、コンテンツ配信システムＳに参加している端末装置１から定期的にコンテンツ管理装置２０に参加していることを通知するようにして、これらの通知に基づいてコンテンツ管理装置２０が参加端末数を検出するようにしてもよい。
【００９５】
以下、コンテンツ配信システムＳにおける各装置の構成及び動作について図面を参照して更に具体的に説明する。
【００９６】
［１．２．端末装置１の構成等の説明］
次に、図面を参照して、端末装置１の構成及び動作について説明する。図１１は、本実施形態に係るコンテンツ配信システムＳにおける端末装置１の概略構成を示す図である。
【００９７】
端末装置１は、専用のコンピュータの他、一般のパーソナルコンピュータを適用可能であり、図１１に示すように、ＣＰＵ（Central Processing Unit）１０２と、各種プログラム等を記憶する書き換え可能な主記憶装置としての第１記憶部１０３と、各種データ等を記憶するＨＤＤ（Hard Disk Drive）等から構成された第２記憶部１０４と、ルータ３０ａを介してネットワーク８に参加している他の端末装置１との間で通信を行うためのネットワークインターフェイス１０５と、ユーザによって端末装置１を遠隔操作するために所定の赤外線信号を送信及び受信するリモコン１０６と、このリモコン１０６と赤外線により通信を行うための赤外線ポート１０７と、赤外線ポート１０７を制御する周辺機器制御チップ１０８と、ＣＰＵ１０２の制御によりイメージデータを受け取り、内部のビデオメモリ（図示せず）に書き込み、このビデオメモリに書き込んだデータを後述の内蔵ディスプレイ１１０に表示するビデオチップ１０９と、内蔵ディスプレイ１１０と、ＦＭ音源やＷａｖｅ  Ｔａｂｌｅ音源などの音源を有し、オーディオ信号を内蔵スピーカ１１２に出力することによって内蔵スピーカ１１２から音波を出力させる音源チップ１１１と、内蔵スピーカ１１２とを備えて構成され、これらの各種構成要素はシステムバス１０１を介して相互に接続されている。なお、本実施形態においては、ＣＰＵ１０２と第１記憶部１０３とで制御部１１３を構成している。
【００９８】
（第１記憶部１０３について）
また、第１記憶部１０３には、端末装置１のコンピュータとしての基本的な機能を提供するためのオペレーティングシステム（ＯＳ）プログラム１１４、内蔵ディスプレイ１１０の制御等を行うための画面制御プログラム１１５、コンテンツ保持端末装置として機能する他の端末装置１から送信されるコンテンツデータを受信し、また自端末装置がコンテンツ保持端末装置として機能するときには第２記憶部１０４に記憶したコンテンツデータを配信するためのコンテンツ処理プログラム１１６、他の端末装置とメッセージの送受信を行うためのメッセージ処理プログラム１１７、配信されたコンテンツデータの再生等を行うための音楽デコーダプログラム１１８等を記憶しており、これらはＣＰＵ１０２によって読み出され、ＣＰＵ１０２によってこれらのプログラムに従った機能が実行される。また、第１記憶部１０３には、更にインデックステーブル（図７参照。）を記憶するためのインデックステーブル記憶領域１１９やルーティングテーブル（図４参照。）を記憶するためのルーティングテーブル記憶領域１２０が設けられている。
【００９９】
ここで、ＯＳプログラム１１４は、ＣＰＵ１０２によって読み出されて実行されることにより、リモコン１０６の入出力に関する機能や、第１記憶部１０３や第２記憶部１０４などのメモリ管理等の端末装置１であるコンピュータの基本的な機能を実行可能にするものである。そして、このＯＳプログラム１１４がＣＰＵ１０２によって実行された状態で、上述の画面制御プログラム１１５、コンテンツ処理プログラム１１６、メッセージ処理プログラム１１７、音楽デコーダプログラム１１８等が第１記憶部１０３から読み出されて実行される。なお、ここでは説明の便宜上各プログラムを分けたが、これらを一つのプログラムとしてもよく、或いは二つのプログラムとしても当然かまわない。
【０１００】
なお、ＯＳプログラム１１４、画面制御プログラム１１５、コンテンツ処理プログラム１１６、メッセージ処理プログラム１１７、音楽デコーダプログラム１１８等は、例えば、ネットワーク８に接続されたサーバ等から、ネットワークインターフェイス１０５を介して、第１記憶部１０３にダウンロードされるようにしてもよく、又ＣＤ−ＲＯＭ等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、第１記憶部１０３に読み込まれるようにしてもよい。
【０１０１】
（第２記憶部１０４について）
第２記憶部１０４には、コンテンツ供給装置１０から投入され、コンテンツ配信システムＳ内にて提供されているコンテンツの名称がリスト化されたコンテンツリストを記憶するコンテンツリスト記憶領域と、コンテンツ供給装置１０等から配信されたコンテンツデータを記憶するコンテンツデータ記憶手段として機能するコンテンツデータ記憶領域と、コンテンツ管理装置２０から受信したコンテンツキーを記憶するコンテンツキー記憶手段として機能するコンテンツキー記憶領域等を有している。
【０１０２】
（制御部１１３について）
制御部１１３は、上述のようにＣＰＵ１０２と第１記憶部１０３とから構成され、ＣＰＵ１０２が第１記憶部１０３に記憶された各種プログラム１１４〜１１８を読み出して実行することにより、端末装置１全体を統括制御し、かつ、後述する表示制御手段、コンテンツデータ取得要求検出手段、コンテンツデータ取得手段、コンテンツデータ送信手段、コンテンツキー取得手段、デコード手段、コンテンツデータ再生手段、メッセージ宛先判定手段、メッセージ転送手段、登録メッセージ送信手段、コンテンツ保持端末情報取得手段、端末識別情報送信手段等として機能するようになっている。
【０１０３】
なお、ＣＰＵ１０２が画面制御プログラム１１５を実行することによって、表示制御手段等として、またＣＰＵ１０２がコンテンツ処理プログラム１１６を実行することによって、コンテンツデータ取得要求検出手段、コンテンツデータ取得手段、コンテンツデータ送信手段、コンテンツキー取得手段、コンテンツデータ再生手段等として、またＣＰＵ１０２がメッセージ処理プログラム１１７を実行することによって、メッセージ宛先判定手段、メッセージ転送手段、登録メッセージ送信手段、コンテンツ保持端末情報取得手段、端末識別情報送信手段等として、またＣＰＵ１０２が音楽デコーダプログラム１１８を実行することによって、デコード手段等として、それぞれ機能するようになっている。
【０１０４】
（表示制御手段について）
表示制御手段は、ビデオチップ１０９及び内蔵ディスプレイ１１０を制御して、各種の映像情報（画像情報）を表示させる機能を有している。すなわち、表示制御手段は、内蔵ディスプレイ１１０にどのように映像を表示させるかを制御する。
【０１０５】
（コンテンツデータ取得要求検出手段について）
コンテンツデータ取得要求検出手段は、利用者によるコンテンツデータの取得要求操作を検出する。例えば、コンテンツ管理装置２０から端末装置１が取得したコンテンツリストが表示制御手段によって内蔵ディスプレイ１１０に表示されているときに、端末装置１の利用者がリモコン１０６を操作することによって、所望のコンテンツ名称を利用者が選択することによってコンテンツデータの取得要求操作がなされ、この操作をコンテンツデータ取得要求検出手段によって検出する。
【０１０６】
なお、コンテンツリストにはコンテンツ配信システムＳにおいて配信可能なコンテンツの名称などコンテンツデータを特定するための情報が含まれており、表示制御手段は、内蔵ディスプレイ１１０にコンテンツリストに含まれるコンテンツ名称の一覧を表示するようにしている。このコンテンツリストは、コンテンツデータ取得要求検出手段が定期的にコンテンツ管理装置２０に対して要求を行うことによって、端末装置１は最新のコンテンツリストを取得し、表示する。
【０１０７】
（コンテンツキー取得手段について）
コンテンツキー取得手段は、コンテンツデータ取得要求検出手段により取得要求操作が検出されたとき、取得要求操作に応じたコンテンツデータのコンテンツキーの送信を前記ネットワークを介してコンテンツ管理装置２０に要求する。また、コンテンツキー取得手段は、この要求に応じてコンテンツ管理装置２０から送信されるコンテンツキーを受信し、第２記憶部１０４のコンテンツキー記憶領域に記憶する。なお、コンテンツキー取得手段によるコンテンツキーの送信要求は、コンテンツキーに対応するコンテンツデータのコンテンツ名称又はコンテンツＩＤなどを特定して行う。
【０１０８】
（コンテンツデータ取得手段について）
コンテンツデータ取得手段は、ネットワークインターフェイス１０５を介して受信したメッセージがコンテンツ供給装置１０からのコンテンツデータの保持要求であるときに、このコンテンツデータをコンテンツ供給装置１０から取得する。そして、取得したコンテンツデータをコンテンツデータ記憶手段としての第２記憶部１０４に記憶する。
【０１０９】
また、コンテンツデータ取得手段は、コンテンツデータ取得要求検出手段により利用者による取得要求操作が検出されたときにコンテンツキー取得手段によってコンテンツキーが取得されると、この取得要求操作に応じたコンテンツデータをネットワーク８を介して他の端末装置１から取得する。
【０１１０】
ここで、他の端末装置１からコンテンツデータを取得するときには、取得しようとするコンテンツデータを保持するコンテンツ保持端末装置の所在情報であるＩＰアドレスを検索するための検索メッセージを生成する。検索メッセージは、要求するコンテンツデータの識別情報であるコンテンツＩＤを宛先識別情報とし、自端末装置の識別情報である端末ＩＤを要求元識別情報としたメッセージである。コンテンツデータ取得手段は、取得しようとするコンテンツデータのコンテンツ名称をコンテンツリストから取り出し、取り出したコンテンツ名称を端末ＩＤを得るときと共通のハッシュ関数によりハッシュ化することによってコンテンツＩＤを決定する。なお、コンテンツ管理装置２０において予めコンテンツリストにコンテンツデータに対応するコンテンツＩＤを含ませることにしてもよい。
【０１１１】
コンテンツデータ取得手段は、生成した検索メッセージの宛先識別情報であるコンテンツＩＤに基づいて所定条件を満たす送信先端末装置を選択して、検索メッセージを送信する。ここで、「所定条件」とは、ルーティングテーブルに記憶された端末ＩＤのうち、検索メッセージの宛先識別情報であるコンテンツＩＤと上位桁がより多く一致する端末ＩＤを選択するという条件である。
【０１１２】
コンテンツデータ取得手段は、送信した検索メッセージに対してルート端末装置から送信されるコンテンツ保持端末装置の所在情報であるＩＰアドレスを受信し、この情報に基づいてコンテンツ保持端末装置に対して取得要求操作に応じたコンテンツデータを要求する。この要求に応じてコンテンツ保持端末装置からコンテンツデータがストリーミング配信される。コンテンツデータ取得手段は、ストリーミング配信されるコンテンツデータを順次受信し、第２記憶部１０４に記憶していく。
【０１１３】
また、コンテンツデータ取得手段は、利用者による取得要求操作に対応するコンテンツデータがリクエスト端末装置から取得することができないとき、コンテンツ供給装置１０から取得要求操作に対応するコンテンツデータを取得する。
【０１１４】
（コンテンツデータ再生手段について）
コンテンツデータ再生手段は、取得要求操作に応じたコンテンツデータをコンテンツ保持端末装置から取得するときには、コンテンツ保持端末装置からストリーミング配信されるコンテンツデータを第２記憶部１０４のコンテンツキー記憶領域に記憶したコンテンツキーによって復号した後、デコード手段によってデコードし、ビデオチップ１０９及び音源チップ１１１を動作させることによりコンテンツデータを再生する。
【０１１５】
また、コンテンツデータ再生手段は、第２記憶部１０４に記憶されたコンテンツデータを再生するときにも、同様に、コンテンツデータを第２記憶部１０４のコンテンツキー記憶領域に記憶したコンテンツキーによって復号した後、デコード手段によってデコードし、再生する。
【０１１６】
（コンテンツデータ送信手段について）
コンテンツデータ送信手段は、コンテンツデータ記憶手段としての第２記憶部１０４に記憶したコンテンツデータの送信要求が他の端末装置１からあったとき、この送信要求に対応するコンテンツデータを第２記憶部１０４から取り出して送信要求をした他の端末装置１へ送信する。
【０１１７】
（デコード手段について）
デコード手段は、第２記憶部１０４に記憶したコンテンツデータ或いはコンテンツ保持端末装置からストリーミング送信されるコンテンツデータを内蔵ディスプレイ１１０に表示し、内蔵スピーカ１１２から出力するためにデコードする。すなわち、再生対象のコンテンツデータは、所定の形式でエンコードされており、このようにエンコードされているコンテンツデータを内蔵ディスプレイ１１０や内蔵スピーカ１１２から出力できるようにデコードする。
【０１１８】
（メッセージ宛先判定手段について）
メッセージ宛先判定手段は、ネットワーク８を介して受信したメッセージの宛先識別情報とルーティングテーブルとに基づいて、受信したメッセージが自端末装置宛であるか否かを判定する。このメッセージ宛先判定手段が判定するメッセージは、コンテンツ保持端末装置の識別情報をルート端末装置に要求するための検索メッセージ、ルート端末装置にコンテンツ保持端末装置の識別情報を登録するための登録メッセージなどである。
【０１１９】
受信したメッセージが自端末装置宛であるか否かの判定は、メッセージに含まれる宛先識別情報を取り出し、第１記憶部１０３に記憶したルーティングテーブルに基づいて行われる。すなわち、各種のメッセージをネットワークインターフェイス１０５を介して受信したとき、メッセージ宛先判定手段は、受信したメッセージに含まれる宛先識別情報とルーティングテーブルに記憶した端末ＩＤとを比較し、メッセージに含まれる宛先識別情報と一番近いルーティングテーブル上の端末ＩＤが自端末装置の端末ＩＤであると判定すると、自端末装置宛のメッセージであると判定する。
【０１２０】
（メッセージ転送手段について）
メッセージ転送手段は、メッセージ宛先判定手段によりネットワーク８を介して受信したメッセージが自端末装置宛ではないと判定されると、受信したメッセージの宛先識別情報に基づいて、ルーティングテーブルに記憶された端末装置１の識別情報から送信先端末装置を選択して、受信したメッセージを送信先端末装置へ転送する。すなわち、メッセージ転送手段は、ルーティングテーブルに記憶された端末装置１の端末ＩＤのうち、宛先識別情報に近い端末ＩＤを選択し、このように選択した端末ＩＤに対応する端末装置１のＩＰアドレスを知り、そのＩＰアドレスをＩＰパケットの宛先として、メッセージを転送する。
【０１２１】
（登録メッセージ送信手段について）
登録メッセージ送信手段は、コンテンツ供給装置１０から受信したコンテンツデータをコンテンツデータ記憶手段としての第２記憶部１０４に記憶したとき、当該コンテンツデータの識別情報であるコンテンツＩＤを宛先識別情報とし、自端末装置の識別情報である端末ＩＤ及びＩＰアドレスとを含む登録メッセージを生成して、ルーティングテーブルに基づいて選択した送信先端末装置へ送信する。また、他のコンテンツ保持端末装置からコンテンツデータを受信したときも同様に、受信したコンテンツデータをコンテンツデータ記憶手段としての第２記憶部１０４に記憶し、登録メッセージを生成して、ルーティングテーブルに基づいて選択した送信先端末装置へ送信する。
【０１２２】
（コンテンツ保持端末情報取得手段について）
コンテンツ保持端末情報取得手段は、自端末装置において、受信したメッセージが自端末装置宛の登録メッセージであるとき、登録メッセージに含まれるコンテンツ保持端末装置の識別情報である端末ＩＤやＩＰアドレスなどを取得する。そして、このように取得したインデックス情報をインデックステーブルに記憶する。
【０１２３】
（端末識別情報送信手段について）
端末識別情報送信手段は、検索メッセージによって要求されたコンテンツに対するコンテンツ保持端末装置の端末ＩＤが記憶されている場合、当該コンテンツ保持端末装置の所在情報であるＩＰアドレスを、当該検索メッセージを送信したリクエスト端末装置へ向けて送信する。
【０１２４】
［１．３．コンテンツ供給装置１０の構成等の説明］
次に、図面を参照して、コンテンツ供給装置１０の構成及び動作について説明する。図１２は、本実施形態に係るコンテンツ配信システムＳにおけるコンテンツ供給装置１０の概略構成を示す図である。
【０１２５】
コンテンツ供給装置１０は、専用のコンピュータの他、一般のサーバコンピュータを適用可能であり、図１２に示すように、ＣＰＵ（Central Processing Unit）２０２と、各種プログラム等を記憶する書き換え可能な主記憶装置としての第１記憶部２０３と、各種データ等を記憶するＨＤＤ等から構成された第２記憶部２０４と、ルータ３０ｂを介してネットワーク８に参加している他の端末装置１やコンテンツ管理装置２０との間で通信を行うためのネットワークインターフェイス２０５と、コンテンツ配信システムＳの管理者によってコンテンツ供給装置１０の制御を行うために情報を入力する入力手段であるキーボード２０７やマウス２０８と、入力手段から入力された情報を処理するための周辺機器制御チップ２０６と、ＣＰＵ２０２の制御によりイメージデータを受け取り、内部のビデオメモリ（図示せず）に書き込み、このビデオメモリに書き込んだデータを後述のディスプレイ２１０に表示するビデオチップ２０９と、ディスプレイ２１０等を備えて構成され、これらの各種構成要素はシステムバス２０１を介して相互に接続されている。なお、本実施形態においては、ＣＰＵ２０２と第１記憶部２０３とで制御部２１３を構成している。
【０１２６】
（第１記憶部２０３について）
また、第１記憶部２０３には、コンテンツ供給装置１０のコンピュータとしての基本的な機能を提供するためのオペレーティングシステム（ＯＳ）プログラム２１４、ディスプレイ２１０の制御等を行うための画面制御プログラム２１５、コンテンツ配信システムＳにコンテンツデータを新規に投入したり、端末装置１からの要求に応じてコンテンツデータを送信したりするためのコンテンツ供給プログラム２１６等を記憶しており、これらはＣＰＵ２０２によって読み出され、ＣＰＵ２０２によってこれらのプログラムに従った機能が実行される。
【０１２７】
ここで、ＯＳプログラム２１４は、ＣＰＵ２０２によって読み出されて実行されることにより、キーボード２０７やマウス２０８に関する機能や、第１記憶部２０３や第２記憶部２０４などのメモリ管理等のコンテンツ供給装置１０であるコンピュータの基本的な機能を実行可能にするものである。そして、このＯＳプログラム２１４がＣＰＵ２０２によって実行された状態で、上述の画面制御プログラム２１５、コンテンツ供給プログラム２１６等が第１記憶部２０３から読み出されて実行される。なお、ここでは説明の便宜上各プログラムを分けたが、これらを一つのプログラムとしてもよく、或いは二つのプログラムとしても当然かまわない。
【０１２８】
（第２記憶部２０４について）
第２記憶部２０４には、コンテンツ配信システムＳにおいて提供しているコンテンツデータや提供予定のコンテンツデータを記憶するコンテンツデータ記憶領域２１７を有している。
【０１２９】
（制御部２１３について）
制御部２１３は、上述のようにＣＰＵ２０２と第１記憶部２０３とから構成され、ＣＰＵ２０２が第１記憶部２０３に記憶された各種プログラム２１４〜２１６を読み出して実行することにより、コンテンツ供給装置１０全体を統括制御し、かつ、後述する表示制御手段、コンテンツ投入手段、コンテンツ送信手段等として機能するようになっている。
【０１３０】
なお、ＣＰＵ２０２が画面制御プログラム２１５を実行することによって表示制御手段等として、またＣＰＵ２０２がコンテンツ供給プログラム２１６を実行することによって、コンテンツ投入手段、コンテンツ送信手段等として、それぞれ機能するようになっている。
【０１３１】
（表示制御手段について）
表示制御手段は、ビデオチップ２０９及びディスプレイ２１０を制御して、各種の映像情報（画像情報）を表示させる機能を有している。すなわち、表示制御手段は、ディスプレイ２１０にどのように映像を表示させるかを制御する。
【０１３２】
（コンテンツ投入手段について）
コンテンツ投入手段は、コンテンツデータ記憶領域２１７に記憶したコンテンツデータを保持させる端末装置１、すなわちコンテンツ保持端末装置をランダムに決定し、決定したコンテンツ保持端末装置にコンテンツデータを送信する。なお、コンテンツ投入手段がランダムに決定するコンテンツ保持端末装置の数は、例えば、上述のよう１台とするようにしてもよく、また、投入するコンテンツの人気度が推測できるものであれば、上述のように推測した人気度に応じて増減させることができる。
【０１３３】
（コンテンツ送信手段について）
コンテンツ送信手段は、ネットワークを介して端末装置１からコンテンツデータの送信要求があると、コンテンツ記憶手段としての第２記憶部２０４から送信要求に対応するコンテンツデータを取り出して、要求元の端末装置１へ送信する。
【０１３４】
［１．４．コンテンツ管理装置２０の構成等の説明］
次に、図面を参照して、コンテンツ管理装置２０の構成及び動作について説明する。図１３は、本実施形態に係るコンテンツ配信システムＳにおけるコンテンツ管理装置２０の概略構成を示す図である。
【０１３５】
コンテンツ管理装置２０は、専用のコンピュータの他、一般のサーバコンピュータを適用可能であり、図１３に示すように、ＣＰＵ（Central Processing Unit）３０２と、各種プログラム等を記憶する書き換え可能な主記憶装置としての第１記憶部３０３と、各種データ等を記憶するＨＤＤ等から構成された第２記憶部３０４と、ルータ３０ｃを介してネットワーク８に参加している他の端末装置１との間で通信を行うためのネットワークインターフェイス３０５と、コンテンツ配信システムＳの管理者によってコンテンツ管理装置２０の制御を行うために情報を入力する入力手段であるキーボード３０７やマウス３０８と、入力手段から入力された情報を処理するための周辺機器制御チップ３０６と、ＣＰＵ３０２の制御によりイメージデータを受け取り、内部のビデオメモリ（図示せず）に書き込み、このビデオメモリに書き込んだデータを後述のディスプレイ３１０に表示するビデオチップ３０９と、ディスプレイ３１０等を備えて構成され、これらの各種構成要素はシステムバス３０１を介して相互に接続されている。なお、本実施形態においては、ＣＰＵ３０２と第１記憶部３０３とで制御部３１３を構成している。
【０１３６】
（第１記憶部３０３について）
また、第１記憶部３０３には、コンテンツ管理装置２０のコンピュータとしての基本的な機能を提供するためのオペレーティングシステム（ＯＳ）プログラム３１４、ディスプレイ３１０の制御等を行うための画面制御プログラム３１５、コンテンツ供給装置１０のサーバ負荷状態に基づいて、端末装置１間で送受信可能なコンテンツデータの数を変更するためのコンテンツ調整プログラム３１６等を記憶しており、これらはＣＰＵ３０２によって読み出され、ＣＰＵ３０２によってこれらのプログラムに従った機能が実行される。
【０１３７】
ここで、ＯＳプログラム３１４は、ＣＰＵ３０２によって読み出されて実行されることにより、キーボード３０７やマウス３０８に関する機能や、第１記憶部３０３や第２記憶部３０４などのメモリ管理等のコンテンツ管理装置２０であるコンピュータの基本的な機能を実行可能にするものである。そして、このＯＳプログラム３１４がＣＰＵ３０２によって実行された状態で、上述の画面制御プログラム３１５、コンテンツ調整プログラム３１６等が第１記憶部３０３から読み出されて実行される。なお、ここでは説明の便宜上各プログラムを分けたが、これらを一つのプログラムとしてもよく、或いは二つのプログラムとしても当然かまわない。
【０１３８】
なお、ＯＳプログラム３１４、画面制御プログラム３１５、コンテンツ調整プログラム３１６等は、例えば、ネットワーク８に接続されたサーバ等から、ネットワークインターフェイス３０５を介して、第１記憶部３０３にダウンロードされるようにしてもよく、又ＣＤ−ＲＯＭ等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、第１記憶部３０３に読み込まれるようにしてもよい。
【０１３９】
（第２記憶部３０４について）
第２記憶部３０４には、コンテンツ供給装置１０から投入され、コンテンツ配信システムＳにおいて提供されるコンテンツデータを復号するためのコンテンツキーがコンテンツデータ毎にそのコンテンツＩＤに対応してそれぞれ記憶されるコンテンツキー記憶手段としてのコンテンツキーデータベース領域３２０、コンテンツ配信システムＳ内にて提供されているコンテンツデータの名称がリスト化されたコンテンツリストを記憶するコンテンツリスト記憶手段としてのコンテンツリスト記憶領域３２１を有している。
【０１４０】
（制御部３１３について）
制御部３１３は、上述のようにＣＰＵ３０２と第１記憶部３０３とから構成され、ＣＰＵ３０２が第１記憶部３０３に記憶された各種プログラム３１４〜３１６を読み出して実行することにより、コンテンツ管理装置２０全体を統括制御し、かつ、後述する表示制御手段、端末装置数検出手段、コンテンツ数決定手段、コンテンツ数調整手段、コンテンツリスト提供手段、キー情報提供手段等として機能するようになっている。
【０１４１】
なお、ＣＰＵ３０２が画面制御プログラム３１５を実行することによって表示制御手段等として、またＣＰＵ３０２がコンテンツ調整プログラム３１６を実行することによって端末装置数検出手段、コンテンツ数決定手段、コンテンツ数調整手段、コンテンツリスト提供手段、キー情報提供手段等として、それぞれ機能するようになっている。
【０１４２】
（表示制御手段について）
表示制御手段は、ビデオチップ３０９及びディスプレイ３１０を制御して、各種の映像情報（画像情報）を表示させる機能を有している。すなわち、表示制御手段は、ディスプレイ３１０にどのように映像を表示させるかを制御する。
【０１４３】
（端末装置数検出手段について）
端末装置数検出手段は、当該コンテンツ配信システムＳを構成する端末装置１の数（参加端末数）を所定期間毎（例えば、３分毎）に検出する。
【０１４４】
この端末装置数検出手段による参加端末数の検出は、端末装置１のルーティングテーブルの状態から推測することによって行われる。すなわち、端末装置数検出手段は、ルーティングテーブルに含まれる端末装置の情報（端末ＩＤなど）の数に所定の係数を積算することによって参加端末数を演算するようにしている。なお、ＩＤ空間上の位置がそれぞれ大きく異なる複数の端末装置のルーティングテーブルを用いて演算することによって、ＩＤ空間上で端末ＩＤに偏りがあったときでも、精度よく参加端末数を検出することができる。
【０１４５】
このルーティングテーブルは、端末装置１がコンテンツリストやコンテンツキーを要求するときに同時に端末装置１から送信させたり、所定の端末装置１に定期的にルーティングテーブルを送信させるように要求することによって取得する。
【０１４６】
また、参加端末数をルーティングテーブルの状態からではなく、コンテンツリストの配布状態に応じて検出するようにしてもよい。このコンテンツリストは、コンテンツ配信システムＳに参加している端末装置１が定期的にコンテンツ管理装置２０から取得するものであり、端末装置数検出手段は所定期間内にどのくらいの数の端末装置１からコンテンツリストの要求があったかにより参加端末数の推定値を演算し、この値を参加端末数として検出するようにする。例えば、各端末装置１が１時間毎にコンテンツリストをコンテンツ管理装置２０から取得するように設定されている場合に、端末装置数検出手段は、１０分間でコンテンツリストの送信要求が２０００であったとき、２０００×６を演算して、その演算結果である１万２０００を参加端末数として検出する。
【０１４７】
また、コンテンツリストの要求数やルーティングテーブルの状態ではなく、コンテンツキーの要求数と時間帯に基づいて、参加端末数の推定値を演算し、この値を参加端末数として検出するようにしてもよい。例えば、参加端末数１万台当たりのコンテンツキーの要求率を、８時〜１０時の時間帯は５００、２０時〜２２時までの時間帯は７００と推定して設定しておく。そして、８時〜１０時までの時間帯に、コンテンツキーの要求が２００であったとき、端末装置数検出手段は、１万×２００／５００を演算し、その演算結果である６０００を参加端末数として検出する。
【０１４８】
また、ルーティングテーブルの状態、コンテンツリストやコンテンツキーの要求数ではなく、コンテンツ配信システムＳに参加する資格のある全端末装置の数と時間帯とに基づいて、参加端末数の推定値を演算し、この値を参加端末数として検出するようにしてもよい。例えば、コンテンツ配信システムＳに参加資格のある全端末装置の数を１０万とし、８時〜１０時の時間帯は１５％の参加率、２０時〜２２時までの時間帯は２５％の参加率と推定して設定しておき、端末装置数検出手段は、８時〜１０時までの時間帯では、１０万×０．１５を演算し、その演算結果である１万５０００を参加端末数として検出する。なお、コンテンツ配信システムＳに参加する資格のある端末装置の数は、コンテンツ配信システムＳの管理者などがキーボード３０７やマウス３０８などの入力手段を用いて入力することによって、第１記憶部３０３に設定されるものである。
【０１４９】
また、上述以外の方法として、コンテンツ配信システムＳに参加している端末装置１から定期的に参加している旨の情報をコンテンツ管理装置２０へ送信させ、端末装置数検出手段は、このように送信された情報に基づいて、参加端末数を検出するようにしてもよい。
【０１５０】
（コンテンツ数決定手段について）
コンテンツ数決定手段は、端末装置数検出手段によって検出した参加端末数に基づいて、端末装置１間で送受信可能なコンテンツデータの適正な数（以下、「適正コンテンツ数」とも呼ぶ。）を決定する。
【０１５１】
例えば、コンテンツ配信システムＳが図１０に示す特性を有しているとき、図１４に示すようなテーブルに基づいて、適正コンテンツ数を決定する。すなわち、コンテンツ管理装置２０は、このテーブルを参照し、参加端末数≦Ｎ１のとき又はＮ４＜参加端末数のとき適正コンテンツ数を３万に、Ｎ１＜参加端末数≦Ｎ２のとき又はＮ３＜参加端末数≦Ｎ４のとき適正コンテンツ数を２万に、Ｎ２＜参加端末数≦Ｎ３のとき適正コンテンツ数を１万にそれぞれ決定する。
【０１５２】
また、記憶手段である第１記憶部３０３に単位時間当たりに予測されるコンテンツデータの送受信率を設定しておき、コンテンツ数決定手段は、端末装置数検出手段によって検出した参加端末数と第１記憶部３０３に設定した送受信率に基づいて、適正コンテンツ数を決定するようにしてもよい。ここで、コンテンツデータの送受信率は、コンテンツ配信システムＳの管理者などがキーボード３０７やマウス３０８などの入力手段を用いて入力することによって、第１記憶部３０３に設定されるものである。
【０１５３】
（コンテンツ数調整手段について）
コンテンツ数調整手段は、コンテンツ数決定手段により決定したコンテンツデータの数（適正コンテンツ数）に応じて、端末装置１間で送受信可能なコンテンツデータの数（公開コンテンツ数）を変更する。
【０１５４】
コンテンツ数調整手段は、現時点においてコンテンツ配信システムＳの端末装置間で送受信可能なコンテンツデータの数（以下、「現コンテンツ数」とも呼ぶ。）が適正コンテンツ数よりも所定数以上多いと判定すると、公開コンテンツ数を所定数減少させる。例えば、図１０に示すような特性をコンテンツ配信システムＳが有しているときに、現コンテンツ数が２万５０００であり、かつＮ１＜参加端末数≦Ｎ２のとき、コンテンツ数調整手段は、公開コンテンツ数を５０００ほど減少させる。ここで、「現コンテンツ数」は、コンテンツ供給装置１０によってコンテンツ配信システムＳに投入された全コンテンツデータの数、時期及び視聴率（コンテンツデータの送受信率の予測値）からコンテンツ数調整手段が演算して求めることとするが、その他のパラメータを用いて演算するようにしてもよい。また、コンテンツデータを保持している端末装置１から定期的に保持内容を通知させるようにし、コンテンツ数調整手段がこれらを集計して現コンテンツ数として算出するようにしてもよい。
【０１５５】
また、コンテンツ数調整手段は、現コンテンツ数が適正コンテンツ数よりも所定以上少ないと判定すると、公開コンテンツ数を所定数増加させる。例えば、図１０に示すような特性をコンテンツ配信システムＳが有しているときに、コンテンツ数が１万８０００であり、かつＮ１＜参加端末数≦Ｎ２のとき、コンテンツ数調整手段は、公開コンテンツ数を２０００ほど増加させる。
【０１５６】
ここで、このコンテンツ数調整手段には、コンテンツリスト生成手段としての機能が含まれており、コンテンツ数調整手段による公開コンテンツ数の調整は、コンテンツリストのリスト内容を変更することによって行われる。
【０１５７】
コンテンツリスト生成手段は、現コンテンツ数と適正コンテンツ数に基づいて、公開コンテンツ数を増減させる。具体的には、現コンテンツ数が適正コンテンツ数よりも所定以上多いとき、コンテンツリスト生成手段は、掲載コンテンツ数を所定の割合で減少させたコンテンツリストを生成してコンテンツリストの更新を行う。また、現コンテンツ数が適正コンテンツ数よりも所定以上少ないとき、コンテンツリスト生成手段は、掲載コンテンツ数を所定の割合で増加させたコンテンツリストを生成してコンテンツリストの更新を行う。一方、現コンテンツ数が適正コンテンツ数の所定範囲内にあるとき、コンテンツリスト生成手段は、コンテンツリストの更新を行わない。
【０１５８】
このように、本実施形態におけるコンテンツ管理装置２０は、現コンテンツ数と適正コンテンツ数に基づいて、所定期間毎に端末装置間で送受信可能なコンテンツデータの数（公開コンテンツ数）を増減させるようにしている。従って、コンテンツ供給装置１０が過負荷によりダウンするなどの問題を事前に対応することができる。特に、公開コンテンツ数の増減は、コンテンツリストに掲載するコンテンツデータの数を増減させることによって行うものであるため、処理が複雑にならずに済む。また、上述のように参加端末数と適正コンテンツ数とを関連付けたテーブルを第２記憶部３０４に記憶しておき、このテーブルに基づいて、公開コンテンツ数を変更するようにしているので、公開コンテンツ数の変更を容易に行うことができる。
【０１５９】
ここで、公開コンテンツ数を増加させる所定数と、公開コンテンツ数を低減させる所定数とは異なるものであることが好ましい。すなわち、現コンテンツ数が適正コンテンツ数よりもかなり多い上限値を超えた場合は、緊急事態なので、多くのコンテンツデータを送受信されないように公開停止にする一方、公開コンテンツ数を増加させる、いわゆる再公開は少しずつ行い、サーバ負荷の微調整をすることで、効果的にサーバ負荷に対応することができる。
【０１６０】
なお、コンテンツリストから削除するコンテンツは、例えば、古いコンテンツ順、人気のないコンテンツ順など優先順位をつけるようにしてもよい。
【０１６１】
また、コンテンツリスト生成手段は、コンテンツ供給装置１０により新規にコンテンツデータがコンテンツ配信システムＳに投入される毎に第２記憶部３０４に記憶したコンテンツリストを更新する。このコンテンツリストへの更新は、新規に投入したコンテンツの名称などコンテンツデータを特定するための情報をコンテンツリストに追加することによって行われる。
【０１６２】
また、上述においては、コンテンツ数調整手段が現コンテンツ数と適正コンテンツ数との比較により公開コンテンツ数の増減数を決定するようにしたが、所定期間毎の参加端末数の変化に応じて、コンテンツ数決定手段が所定期間毎に公開コンテンツ数の増減数（例えば、参加端末数が１％増加したときには、１％公開コンテンツ数を減少）を判定し、この増減数に応じてコンテンツ数調整手段が公開コンテンツ数を増減してもよい。このようにすれば、コンテンツ供給装置１０のサーバ負荷状態を一定範囲に収めることができる。
【０１６３】
（コンテンツリスト提供手段について）
コンテンツリスト提供手段は、端末装置１からのコンテンツリスト配布要求に応じて、第２記憶部３０４に記憶したコンテンツリストを取り出し、配布要求を行った端末装置１へ配布する。
【０１６４】
（キー情報提供手段について）
キー情報提供手段は、端末装置１からコンテンツキーの要求があると、第２記憶部３０４から要求に応じたコンテンツキーを取り出して要求元の端末装置１へ送信する。なお、端末装置１からのコンテンツキーの要求には、要求に応じたコンテンツの名称やコンテンツＩＤなどを含んでおり、キー情報提供手段は、このコンテンツの名称やコンテンツＩＤに対応するコンテンツキーを第２記憶部３０４のコンテンツキーデータベースから取り出して、要求元の端末装置１へ送信する。
【０１６５】
［１．５．コンテンツ配信システムＳの動作］
以下、端末装置１、コンテンツ供給装置１０及びコンテンツ管理装置２０の詳細動作について、フローチャートを用いて更に具体的に説明する。
【０１６６】
（端末装置１の処理フローの説明）
まず、端末装置１の更に具体的な動作の一例について、図１５から図１７のフローチャートを参照して説明する。図１５から図１７は端末装置１における処理を示すフローチャートである。なお、以下の各処理は、端末装置１の制御部１１３が上述した手段等として機能することによって実行されるものである。
【０１６７】
図１５に示すように、端末装置１の電源がＯＮになると、端末装置１のＣＰＵ１０２は、第１記憶部１０３や第２記憶部１０４のアクセス許可、作業領域確保を初期化等の初期設定動作を実行し、各プログラム１１５〜１１８をＣＰＵ１０２による実行状態とし、制御部１１３としての機能を動作させた後（ステップＳ１００）、ステップＳ１０１に処理を移す。
【０１６８】
ステップＳ１０１において、制御部１１３は、コンテンツ管理装置２０からコンテンツリストを取得する。このコンテンツリストの取得は、制御部１１３がコンテンツ管理装置２０に対して、コンテンツリストを要求し、当該要求に対して送信されるコンテンツリストを受信することによって行う。また、制御部１１３は、以後定期的にコンテンツ管理装置２０からコンテンツリストを取得する。なお、制御部１１３は、コンテンツリストを取得するときに、自端末装置のルーティングテーブルをコンテンツ管理装置２０へ送信する。
【０１６９】
このコンテンツリストには、上述のようにコンテンツ配信システムＳにおいて取得可能な複数のコンテンツデータの名称等が含まれている。制御部１１３は、コンテンツ管理装置２０からこのコンテンツリストを取得し、コンテンツリストの内容を内蔵ディスプレイ１１０に表示する。端末装置１の利用者は内蔵ディスプレイ１１０に表示されているコンテンツリストの内容を見ながら、リモコン１０６等の操作を行って、コンテンツ配信システムＳで提供されているコンテンツデータを選択することができる。そして、リモコン１０６等の操作によって利用者からコンテンツデータの選択されたとき、制御部１１３は、利用者からのコンテンツの取得要求操作があったと判定する。
【０１７０】
制御部１１３は、ステップＳ１０２において、利用者からのあるコンテンツ（ここでは、コンテンツＸとする。）の取得要求操作があったか否かを判定する。
【０１７１】
この処理において、制御部１１３は、利用者からのコンテンツＸの取得要求操作があったと判定した場合には（ステップＳ１０２：ＹＥＳ）、コンテンツＸ取得再生処理に移行する（ステップＳ１０３）。このステップＳ１０３の処理は、図１６におけるＳ１５０〜Ｓ１５４，Ｓ１５６，Ｓ１５７，Ｓ１６０〜Ｓ１６３の処理であり、後で詳説する。
【０１７２】
一方、ステップＳ１０２において、利用者からのコンテンツＸの取得要求操作がなかったと判定すると（ステップＳ１０２：ＮＯ）、制御部１１３は、登録メッセージを受信したか否かを判定する（ステップＳ１１０）。登録メッセージを受信したか否かは、コンテンツ保持端末装置からネットワーク８を介して送信される登録メッセージが自端末装置で受信されたか否かによって判断される。
【０１７３】
この処理において、登録メッセージを受信したと判定すると（ステップＳ１１０：ＹＥＳ）、制御部１１３は、自端末装置がルート端末装置であるか否かを判定する（ステップＳ１１１）。端末装置１がルート端末装置であるか否かは、受信した登録メッセージの宛先識別情報と第１記憶部１０３に記憶したルーティングテーブルとに基づいて判断される。
【０１７４】
この処理において、制御部１１３は、自端末装置がルート端末装置であると判定すると（ステップＳ１１１：ＹＥＳ）、制御部１１３は、受信した登録メッセージに含まれるコンテンツ保持端末装置のＩＰアドレス及びコンテンツ保持端末装置が保持するコンテンツデータのコンテンツＩＤ等を関連付けて第１記憶部１０３のインデックステーブルに追加する（ステップＳ１１２）。一方、端末装置がルート端末装置でないと判定すると（ステップＳ１１１：ＮＯ）、第１記憶部１０３に記憶したルーティングテーブルに基づいて、登録メッセージを他の端末装置１へ転送する（ステップＳ１１３）。
【０１７５】
ステップＳ１１０において、登録メッセージを受信しなかったと判定すると（ステップＳ１１０：ＮＯ）、制御部１１３は、コンテンツ供給装置１０から投入されるコンテンツデータを受信したか否かを判定する（ステップＳ１２０）。
【０１７６】
この処理において、制御部１１３は、コンテンツ供給装置１０から投入されるコンテンツデータを受信したと判定すると（ステップＳ１２０：ＹＥＳ）、投入コンテンツ受信処理を行う（ステップＳ１２１）。この投入コンテンツ受信処理は、コンテンツ供給装置１０から投入されたコンテンツデータを第２記憶部１０４に記憶して保存するとともに、ルート端末装置のインデックステーブルに登録するものである。すなわち、制御部１１３は、ステップＳ１２０において受信した投入コンテンツデータを第２記憶部１０４のコンテンツデータ記憶領域に記憶し、保存する。また、制御部１１３は、自端末装置がルート端末装置ではないと判定したときに、ルーティングテーブルに基づいて、ネットワーク８を介して登録メッセージを他の端末装置１へ送信し、一方自端末装置がルート端末装置であると判定したときにはインデックステーブルにコンテンツＩＤと自端末装置のＩＰアドレスを追加して登録する。
【０１７７】
ステップＳ１２０において、投入されるコンテンツデータを受信しなかったと判定すると（ステップＳ１２０：ＮＯ）、制御部１１３は、他の端末装置１からコンテンツデータの送信要求があるか否かを判定する（ステップＳ１３０）。
【０１７８】
この処理において、制御部１１３は、他の端末装置１からコンテンツデータの送信要求があったと判定すると（ステップＳ１３０：ＹＥＳ）、ステップＳ１３１のコンテンツ送信処理に移行する。このステップＳ１３１のコンテンツ送信処理は、図１７におけるＳ１７０〜Ｓ１７２の処理であり、後で詳述する。
【０１７９】
また、ステップＳ１３０において、制御部１１３は、他の端末装置１からコンテンツデータの送信要求がなかったと判定すると（ステップＳ１３０：ＮＯ）、検索メッセージを受信したか否かを判定する（ステップＳ１４０）。検索メッセージを受信したか否かは、ネットワーク８を介してリクエスト端末装置から送信される検索メッセージが受信されたか否かによって判断される。
【０１８０】
この処理において、制御部１１３は、検索メッセージを受信したと判定すると（ステップＳ１４０：ＹＥＳ）、ステップＳ１４１においてコンテンツ検索処理を行う。このコンテンツ検索処理においては、まずステップＳ１４０において受信した検索メッセージからコンテンツＩＤを取得し、自端末装置１がこのコンテンツＩＤのコンテンツデータのルート端末装置であるときに、このコンテンツＩＤがインデックステーブルに存在するか否かを判定する。そして、検索メッセージから取得したコンテンツＩＤがインデックステーブルに存在すると判定すると、インデックステーブルからコンテンツ保持端末装置の所在情報であるＩＰアドレスを取得し、このコンテンツ保持端末装置のＩＰアドレスをネットワーク８を介してリクエスト端末装置へ送信する。一方、自端末装置１がこのコンテンツＩＤのコンテンツデータのルート端末装置ではないときには、ルーティングテーブルに基づいて検索メッセージを他の端末装置へ転送する。
【０１８１】
ステップＳ１４０において、検索メッセージを受信しなかったと判定されたとき（ステップＳ１４０：ＮＯ）、ステップＳ１０３、ステップＳ１１２、ステップＳ１１３、ステップＳ１２１、ステップＳ１３１、ステップＳ１４１の処理が終了したとき、制御部１１３は、自端末装置の電源がＯＦＦ状態へ移行したか否かを判定する（ステップＳ１４５）。
【０１８２】
ステップＳ１４５において、自端末装置の電源がＯＦＦ状態へ移行したと判定すると（ステップＳ１４５：ＹＥＳ）、制御部１１３は、メイン処理を終了し、一方、自端末装置の電源がＯＦＦ状態へ移行していないと判定すると（ステップＳ１４５：ＮＯ）、制御部１１３は、ステップＳ１０２からの処理を繰り返す。
【０１８３】
次に、Ｓ１０３におけるコンテンツＸ取得再生処理について図１６のフローチャートを参照して具体的に説明する。
【０１８４】
図１６に示すように、コンテンツＸ取得再生処理が開始されると、制御部１１３は、利用者の取得要求操作に応じたコンテンツＸのコンテンツキーをネットワーク８を介してコンテンツ管理装置２０に要求（ステップＳ１５０）し、処理をステップＳ１５１に移行する。
【０１８５】
ステップＳ１５１において、制御部１１３は、コンテンツＸのコンテンツキーの受信に成功したか否かを判定する。コンテンツキーの受信に成功したか否かは、制御部１１３が、コンテンツ管理装置２０からコンテンツＸのコンテンツキーを受信できたか否かによって行う。
【０１８６】
このステップＳ１５１の処理において、コンテンツＸのコンテンツキーの受信に成功したと判定すると（ステップＳ１５１：ＹＥＳ）、制御部１１３は、処理をステップＳ１５２に移行する。
【０１８７】
ステップＳ１５２において、制御部１１３は、第２記憶部１０４にコンテンツＸのデータを既に保持しているか否かを判定する。
【０１８８】
この処理において、第２記憶部１０４にコンテンツＸのデータを保持していないと判定すると（ステップＳ１５２：ＮＯ）、制御部１１３はコンテンツＸのデータを保持しているコンテンツ保持端末装置の所在情報であるＩＰアドレスを取得するために、コンテンツＸのコンテンツＩＤを宛先識別情報とした検索メッセージを、第１記憶部１０３に記憶したルーティングテーブルに基づいて送信する。この検索メッセージはコンテンツ配信システムＳのＤＨＴルーティングによってコンテンツＸのルート端末装置に到達する。ルート端末装置はこの検索メッセージに対して、コンテンツＸのデータを保持するコンテンツ保持端末装置の所在情報であるＩＰアドレスを送信し、制御部１１３は、ルート端末装置から送信されるコンテンツ保持端末装置の所在情報であるＩＰアドレスを取得し（ステップＳ１５３）、このコンテンツ保持端末装置がコンテンツＸのデータが送信可能であるか否かを判定する（ステップＳ１５４）。
【０１８９】
この処理において、制御部１１３は、コンテンツＸのデータを保持するコンテンツ保持端末装置に対して、コンテンツＸのデータの送信要求を行って、当該コンテンツ保持端末装置がコンテンツＸのデータが送信可能であるか否かを判定する。
【０１９０】
ステップＳ１５４において、コンテンツ保持端末装置がコンテンツＸのデータの送信可能であると判定すると（ステップＳ１５４：ＹＥＳ）、制御部１１３は、その処理をステップＳ１５６に移行する。
【０１９１】
ステップＳ１５６において、制御部１１３は、コンテンツ保持端末装置からストリーミング形式で送信されるコンテンツＸのデータを順次受信しつつ、第２記憶部１０４のコンテンツキー記憶領域に記憶したコンテンツキーによって復号した後、デコードし、ビデオチップ１０９及び音源チップ１１１を動作させることによりコンテンツデータをストリーム再生する。また、受信したコンテンツＸのデータを順次第２記憶部１０４に記憶していく。
【０１９２】
コンテンツデータのストリーム再生が終了し、受信したコンテンツＸのデータの第２記憶部１０４への記憶が終了してコンテンツＸの保存が完了すると、その旨をコンテンツ配信システムＳに通知する（ステップＳ１５７）。すなわち、コンテンツＸのコンテンツ保持端末装置として登録メッセージをコンテンツＸのルート端末装置へ送信する。
【０１９３】
また、ステップＳ１５４において、コンテンツ保持端末装置がコンテンツＸのデータの送信を行うことができないと判定すると（ステップＳ１５４：ＮＯ）、制御部１１３は、その処理をステップＳ１６０に移行する。
【０１９４】
ステップＳ１６０において、制御部１１３は、コンテンツ供給装置１０に対して、コンテンツＸのデータを送信するように要求し、この要求に応じてコンテンツ供給装置１０からストリーミング形式で送信されるコンテンツＸのデータを順次受信しつつ、第２記憶部１０４のコンテンツキー記憶領域に記憶したコンテンツキーによって復号した後、デコードし、ビデオチップ１０９及び音源チップ１１１を動作させることによりコンテンツデータをストリーム再生する（ステップＳ１６１）。また、受信したコンテンツＸのデータを順次第２記憶部１０４に記憶していく。その後、処理をステップＳ１５７に移行する。
【０１９５】
また、ステップＳ１５２において、第２記憶部１０４にコンテンツＸのデータを保持していると判定すると（ステップＳ１５２：ＹＥＳ）、制御部１１３は、第２記憶部１０４からコンテンツＸのデータを取り出し、第２記憶部１０４のコンテンツキー記憶領域に記憶したコンテンツキーによって復号した後、デコードし、ビデオチップ１０９及び音源チップ１１１を動作させることによりコンテンツデータを再生する（ステップＳ１６３）。
【０１９６】
従って、利用者の取得要求操作に応じたコンテンツＸのデータがコンテンツ供給装置１０から投入され自端末装置がコンテンツ保持端末装置として機能されているようなときには、他のコンテンツ保持端末装置へコンテンツＸのデータを取得する操作を行うことなく、コンテンツデータの再生を行うことができるので、端末装置１における処理負担を軽減することができる。また、ネットワークへの負荷も軽減することができる。
【０１９７】
また、ステップＳ１５１において、コンテンツＸのコンテンツキーの受信に成功しなかったと判定すると（ステップＳ１５１：ＮＯ）、制御部１１３は、コンテンツ管理装置２０からの通知を内蔵ディスプレイ１１０に表示する（ステップＳ１６２）。
【０１９８】
コンテンツＸのコンテンツキーの受信に成功しない場合としては、例えば、不正なリクエストなどがある。この不正なリクエストとは、コンテンツ管理装置２０へのアクセスに関して正当な権限がないことを意味するものであり、例えば、端末装置１がコンテンツ配信システムＳに参加する権限がなく不正に参加したときや、端末装置１がコンテンツＸを取得する権限がないときに通知される。
【０１９９】
ステップＳ１５７，Ｓ１６２，Ｓ１６３の処理が終了したとき、制御部１１３は、コンテンツＸ取得再生処理を終了する。
【０２００】
次に、Ｓ１３１におけるコンテンツ送信処理について図１７のフローチャートを参照して具体的に説明する。
【０２０１】
図１７に示すように、コンテンツ送信処理が開始されると、制御部１１３は、コンテンツ送信要求に対応するコンテンツデータを送信可能か否かを判定する（ステップＳ１７０）。
【０２０２】
この処理において、制御部１１３は、ステップＳ１３０において受信したコンテンツデータの送信要求に対し、対応するコンテンツデータが送信可能であるか否かを判定する（ステップＳ１７０）。
【０２０３】
ここで、制御部１１３は、対応するコンテンツデータが送信可能であるか否かを、自端末装置のＣＰＵの処理負荷、ネットワークの帯域状態などから判定する。
【０２０４】
ステップＳ１７０において、対応するコンテンツデータが送信可能であると判定すると（ステップＳ１７０：ＹＥＳ）、制御部１１３は、送信要求にかかるコンテンツデータを第２記憶部１０４から取り出して、要求元の端末装置１に対して送信する（ステップＳ１７１）。
【０２０５】
一方、対応するコンテンツデータが送信可能ではないと判定すると（ステップＳ１７０：ＮＯ）、制御部１１３は、問い合わせに対応するコンテンツデータが送信可能ではない旨を送信元の端末装置１に送信負荷通知を行う（ステップＳ１７２）。
【０２０６】
ステップＳ１７１，Ｓ１７２の処理が終了したとき、制御部１１３は、コンテンツ送信処理を終了する。
【０２０７】
以上のように、本実施形態における端末装置１は、利用者による取得要求操作が検出されたとき、取得要求操作に応じたコンテンツデータのコンテンツキーをネットワークを介してコンテンツ管理装置２０から取得した後、コンテンツデータを取得し、再生するようにしている。
【０２０８】
（コンテンツ供給装置１０の処理フローの説明）
次に、コンテンツ供給装置１０の更に具体的な動作について、図１８を参照して説明する。図１８はコンテンツ供給装置１０における処理全体を示すフローチャートである。なお、以下の各処理は、コンテンツ供給装置１０の制御部２１３が上述した手段等として機能することによって実行されるものである。
【０２０９】
図１８に示すように、コンテンツ供給装置１０の電源がＯＮになると、コンテンツ供給装置１０のＣＰＵ２０２は、第１記憶部２０３や第２記憶部２０４のアクセス許可、作業領域確保を初期化等の初期設定動作を実行し、各プログラム２１４〜２１６をＣＰＵ２０２による実行状態とし、制御部２１３としての機能を動作させた後（ステップＳ２００）、ステップＳ２０１に処理を移す。
【０２１０】
ステップＳ２０１において、制御部２１３は、コンテンツ投入指示があるか否かを判定する。ここで、制御部２１３は、コンテンツ投入指示があるか否かを、コンテンツ配信システムＳの運営者によるキーボード２０７やマウス２０８等の入力手段の操作によってコンテンツ投入の操作がなされたか否かにより判断する。このコンテンツ投入指示は、例えば、コンテンツの名称によってコンテンツデータを特定して行われるものである。
【０２１１】
この処理において、コンテンツ投入指示があると判定されると（ステップＳ２０１：ＹＥＳ）、制御部２１３は、コンテンツ管理装置２０にコンテンツ投入通知を行う。すなわち、コンテンツ投入指示によって特定されたコンテンツデータに対応するコンテンツの名称やコンテンツＩＤなどをコンテンツ管理装置２０に通知する（ステップＳ２０２）。
【０２１２】
その後、制御部２１３は、コンテンツ投入指示によって特定されたコンテンツデータをコンテンツ配信システムＳによって配信可能とするために、コンテンツ投入指示によって特定されたコンテンツデータのコンテンツ保持端末装置となる端末装置１をランダムに１以上決定する。このように決定した端末装置１に対して、制御部２１３は、コンテンツ投入指示によって特定されたコンテンツデータをネットワーク８を介して送信する（ステップＳ２０３）。
【０２１３】
一方、ステップＳ２０１において、コンテンツ投入指示がないと判定されると（ステップＳ２０１：ＮＯ）、制御部２１３は、端末装置１からコンテンツデータの送信要求があるか否かを判定する（ステップＳ２１０）。コンテンツデータの送信要求は、コンテンツの名称やコンテンツＩＤなどによってコンテンツデータを特定して行われるものである。
【０２１４】
この処理において、端末装置１からコンテンツデータの送信要求があったと判定されると（ステップＳ２１０：ＹＥＳ）、制御部２１３は、コンテンツデータの送信要求に対応するコンテンツデータを第２記憶部２０４から取り出し、ネットワーク８を介して端末装置１へ送信する（ステップＳ２１１）。
【０２１５】
ステップＳ２０３，Ｓ２１１の処理が終了したとき、或いはステップＳ２１０において端末装置１からコンテンツデータの送信要求がないと判定したとき（ステップＳ２１０：ＮＯ）、制御部２１３は、コンテンツ供給装置１０のサービス終了の操作が行われたか否かを判定する（ステップＳ２２０）。サービスの終了操作が行われていないと判定すると（ステップＳ２２０：ＮＯ）、ステップＳ２０１からの処理を繰り返し、コンテンツ供給装置１０のサービス終了の操作が行われたと判定すると（ステップＳ２２０：ＹＥＳ）、処理を終了する。
【０２１６】
以上のように、コンテンツ供給装置１０は、コンテンツ配信システムＳを構成する端末装置１に対してコンテンツデータを送信して投入した情報をコンテンツ管理装置２０に通知するようにしており、これによりコンテンツ管理装置２０は、コンテンツリストを生成及び更新し、端末装置１からの要求に応じて送信する。
【０２１７】
また、コンテンツ供給装置１０では、端末装置１の要求に応じてコンテンツデータを送信するようにしているため、端末装置１の利用者の取得要求操作に対応するコンテンツデータがネットワークを介して他の端末装置１から取得することができないときでも、コンテンツ供給装置１０から取得要求操作に対応するコンテンツデータを取得することができ、コンテンツデータの取得可能性を向上させることができる。
【０２１８】
（コンテンツ管理装置２０の処理フローの説明）
次に、コンテンツ管理装置２０の更に具体的な動作について、図１９及び図２０を参照して説明する。図１９はコンテンツ管理装置２０における処理全体を示すフローチャート、図２０はコンテンツリスト更新処理を示すフローチャートである。なお、以下の各処理は、コンテンツ管理装置２０の制御部３１３が上述した手段等として機能することによって実行されるものである。
【０２１９】
図１９に示すように、コンテンツ管理装置２０の電源がＯＮになると、コンテンツ管理装置２０のＣＰＵ３０２は、第１記憶部３０３や第２記憶部３０４のアクセス許可、作業領域確保を初期化等の初期設定動作を実行し、各プログラム３１４〜３１６をＣＰＵ３０２による実行状態とし、制御部３１３としての機能を動作させた後（ステップＳ３００）、ステップＳ３０１に処理を移す。
【０２２０】
ステップＳ３０１において、制御部３１３は、端末装置１からコンテンツに関するコンテンツキーの送信要求が受信されたか否かを判定する。この処理において、コンテンツＸに関するコンテンツキーの送信要求を受信したと判定すると（ステップＳ３０１：ＹＥＳ）、制御部３１３は、コンテンツキーの送信処理を行う（ステップＳ３０２）。すなわち、制御部３１３は、コンテンツキーを要求した端末装置が正当な（すなわち、コンテンツ配信システムＳに参加する正当な資格を有する）端末装置であるか否かを判定し、正当な端末装置であるとき、コンテンツＸのコンテンツキーを送信する。
【０２２１】
また、ステップＳ３０１において、コンテンツに関するコンテンツキーの送信要求が受信されていないと判定すると（ステップＳ３０１：ＮＯ）、制御部３１３は、コンテンツ供給装置１０からコンテンツ投入通知があるか否かを判定する（ステップＳ３１０）。この処理において、コンテンツ投入通知があったと判定すると（ステップＳ３１０：ＹＥＳ）、制御部３１３は、第２記憶部２０４に記憶したコンテンツリストを更新する（ステップＳ３１１）。このコンテンツリストへの更新は、コンテンツ投入通知に含まれる情報、すなわち新規に投入したコンテンツの名称などコンテンツデータを特定するための情報をコンテンツリストに追加することによって行われる。
【０２２２】
ステップＳ３１０において、コンテンツ投入通知がないと判定すると（ステップＳ３１０：ＮＯ）、制御部３１３は、端末装置１からコンテンツリストの送信要求があるか否かを判定する（ステップＳ３２０）。この処理において、端末装置１からコンテンツリストの送信要求があったと判定すると（ステップＳ３２０：ＹＥＳ）、制御部３１３は、第２記憶部からコンテンツリストを取り出し、要求元の端末装置１へコンテンツリストを送信する（ステップＳ３２１）。
【０２２３】
一方、ステップＳ３２０において、端末装置１からコンテンツリストの送信要求がないと判定すると（ステップＳ３２０：ＮＯ）、制御部３１３は、コンテンツリストの更新契機になったか否かを判定する（ステップＳ３３０）。この処理において、コンテンツリストの更新契機になったと判定すると（ステップＳ３３０：ＹＥＳ）、制御部３１３は、コンテンツリスト更新処理を行う（ステップＳ３３１）。このステップＳ３３１の処理は、図２０におけるＳ３５０，Ｓ３５２〜Ｓ３５７の処理であり、後で詳説する。なお、コンテンツリストの更新契機は、所定期間毎（例えば、３分毎）のタイミングに設定されており、制御部３１３がタイマーカウントを行い、所定のカウンタ値になったときに、コンテンツリストの更新契機になったと判定する。
【０２２４】
ステップＳ３０２，Ｓ３１１，Ｓ３２１，Ｓ３３１の処理が終了したとき、或いはコンテンツリストの更新契機になっていないと判定したとき（ステップＳ３３０：ＮＯ）、制御部３１３は、コンテンツ管理装置２０のサービス終了の操作が行われたか否かを判定する（ステップＳ３４０）。サービスの終了操作が行われていないと判定すると（ステップＳ３４０：ＮＯ）、ステップＳ３０１からの処理を繰り返し、コンテンツ供給装置１０のサービス終了の操作が行われたと判定すると（ステップＳ３４０：ＹＥＳ）、処理を終了する。
【０２２５】
次に、Ｓ３３１におけるコンテンツリストの更新処理について図２０のフローチャートを参照して具体的に説明する。
【０２２６】
図２０に示すように、コンテンツリストの更新処理が開始されると、制御部３１３は、参加端末数を検出する（ステップＳ３５０）。この参加端末数の検出は、上述したようにコンテンツ配信システムＳに参加している端末装置１のルーティングテーブルの状態からの推定値を演算することによって行う。
【０２２７】
次に、制御部３１３は、参加端末数から適正な公開コンテンツ数（適正コンテンツ数）を演算し（ステップＳ３５２）、処理をステップＳ３５３に移行する。また、現時点においてコンテンツ配信システムＳの端末装置間で送受信可能なコンテンツデータの数（現コンテンツ数）を演算する。なお、これらの演算は、上述したため説明を省略する。
【０２２８】
ステップＳ３５３において、制御部３１３は、現コンテンツ数が適正コンテンツ数よりも所定数以上多いか否かを判定する。この処理において、現コンテンツ数が適正コンテンツ数よりも所定数以上多いと判定すると（ステップＳ３５３：ＹＥＳ）、制御部３１３は、コンテンツリストに掲載するコンテンツデータの数（掲載コンテンツ数）を所定数だけ減少して、端末装置間で送受信可能なコンテンツデータの数である公開コンテンツ数を減少させる（ステップＳ３５４）。
【０２２９】
このように、現コンテンツ数が適正コンテンツ数よりも所定数以上多いとき、コンテンツリストに掲載するコンテンツデータの所定数減少させているため、端末装置１からコンテンツ管理装置２０へのコンテンツデータの送信要求を低減することができる。
【０２３０】
ステップＳ３５３において、現コンテンツ数が適正コンテンツ数よりも所定数以上多くはないと判定すると（ステップＳ３５３：ＮＯ）、制御部３１３は、現コンテンツ数が適正コンテンツ数よりも所定数以上少ないか否かを判定する（ステップＳ３５５）。この処理において、現コンテンツ数が適正コンテンツ数よりも所定数以上少ないと判定すると（ステップＳ３５５：ＹＥＳ）、制御部３１３は、さらに、コンテンツリストから情報を減少させている状態か否かを判定する（ステップＳ３５６）。ここで、「コンテンツリストから情報を減少させている状態」とは、コンテンツ配信システムＳ内のコンテンツデータのうち、コンテンツリストに掲載していないコンテンツデータがあることを意味する。
【０２３１】
ステップＳ３５６において、コンテンツリストから情報を減少させている状態であると判定すると（ステップＳ３５６：ＹＥＳ）、制御部３１３は、コンテンツリストに掲載するコンテンツデータの数（掲載コンテンツ数）を所定数だけ増加して、端末装置間で送受信可能なコンテンツデータの数を増加させる（ステップＳ３５７）。言い換えれば、ステップＳ３５５において減少させた掲載コンテンツ数を所定数だけ元に戻すのである。
【０２３２】
このように、現コンテンツ数が適正コンテンツ数よりも所定数以上少ないとき、コンテンツリストに掲載するコンテンツデータの所定数増加させているため、現コンテンツ数が適正コンテンツ数よりも所定数以上多くなったときに減少させた掲載コンテンツ数を所定数元に戻すことができる。従って、現コンテンツ数が適正コンテンツ数よりも所定数以上多くなった後に、コンテンツ配信システムＳに参加する端末装置１の数が増加してコンテンツ配信システムＳ内のコンテンツデータの数との関係で適切な数になったときなどにおいて、コンテンツ配信システムＳ内のコンテンツデータをすべて掲載したコンテンツリストを提供することができる。
【０２３３】
ステップＳ３５４，Ｓ３５７の処理が終了したとき、現コンテンツ数が適正コンテンツ数よりも所定数以上少なくはないと判定したとき（ステップＳ３５５：ＮＯ）、コンテンツリストから情報を減少させている状態でないと判定したとき（ステップＳ３５６：ＮＯ）、コンテンツリストの更新処理を終了する。
【０２３４】
以上のように、本実施形態におけるコンテンツ管理装置２０は、参加端末数に基づいて、端末装置間で送受信可能なコンテンツデータの数である公開コンテンツ数を変更して、コンテンツ供給装置１０のサーバ負荷状態を低減させるようにしており、コンテンツ供給装置１０が過負荷によりダウンするなどの問題を事前に対応することができる。
【０２３５】
[２．第２実施形態]
次に、本発明に係る第２実施形態について説明する。この第２実施形態のコンテンツ配信システムは、第１実施形態と同様に端末装置１とコンテンツ供給装置１０とコンテンツ管理装置２０とから構成されるものであるが、端末装置間で送受信可能なコンテンツデータの数（公開コンテンツ数）の調整方法が第１実施形態と異なる。すなわち、第１実施形態においては、端末装置間で送受信可能なコンテンツデータの数の変更を、コンテンツリストに掲載するコンテンツデータの数を調整することによって行うものであったが、第２実施形態においては、コンテンツキーの送信を制限することによって公開コンテンツ数を変更するものである。
【０２３６】
コンテンツ管理装置２０による公開コンテンツ数の減少は、コンテンツキーの送信を所定割合で制限することによって行われる。例えば、コンテンツキーの要求に対して３回に１回の割合でコンテンツキーの送信を行わないようにする。これにより、公開コンテンツ数を実質的に１／３減少させることができる。また、コンテンツキーの要求に対してコンテンツキーの送信を行わない期間を調整することにより、公開コンテンツ数を実質的に減少させるようにしてもよい。
【０２３７】
また、コンテンツ管理装置２０による公開コンテンツ数の増加は、コンテンツキーの送信制限を緩和或いは解除することによって行われる。例えば、コンテンツキーの要求に対して３回に１回の割合でコンテンツキーの送信を行わないようにしている（送信制限）状態から、６回に１回の割合での送信制限状態とすることによって、公開コンテンツ数を実質的に１／６だけ増加させることができる。
【０２３８】
なお、コンテンツキーの送信制限が行われていない状態では、このコンテンツキーの送信制限での公開コンテンツ数の増加を行うことができない。そこで、第１実施形態と同様に、コンテンツ管理装置２０は、コンテンツデータをコンテンツ供給装置１０に対して、所要の公開コンテンツ数の増加に応じた数のコンテンツデータを送信或いは追加投入するように要求するように設定することができるようにしている。この要求に応じてコンテンツ供給装置１０は、コンテンツデータを複数の端末装置へ送信或いは投入する。
【０２３９】
この第２実施形態のコンテンツ配信システムにおいては、端末装置１とコンテンツ供給装置１０の構成及び動作は第１実施形態で説明したものと同一であるため、ここではその説明を省略する。なお、説明の便宜上、ここでは、第１実施形態において各装置に付した符号と同一符号を用いるものとする。
【０２４０】
［２．１．コンテンツ管理装置２０の構成等の説明］
まず、第２実施形態のコンテンツ管理装置２０の構成について説明する。この第２実施形態のコンテンツ管理装置２０は、コンテンツ調整プログラム３１６の内容が一部異なる以外は、第１実施形態のものと異なるところがないため、ここでは、特に異なる部分のみを説明する。
【０２４１】
第１実施形態と同様に、ＣＰＵ３０２はコンテンツ調整プログラム３１６を実行することによって端末装置数検出手段、コンテンツ数決定手段、コンテンツ数調整手段等として、それぞれ機能するようになっている。なお、この端末装置数検出手段及びコンテンツ数決定手段については第１実施形態で説明した機能と同様であるため、ここでは、コンテンツ数調整手段について説明する。
【０２４２】
（コンテンツ数調整手段について）
コンテンツ数調整手段は、コンテンツ数決定手段により決定したコンテンツデータの数（適正コンテンツ数）に応じて、端末装置１間で送受信可能なコンテンツデータの数（公開コンテンツ数）を変更する。例えば、コンテンツ数調整手段は、コンテンツ配信システムＳにおける現時点において端末装置間で送受信可能なコンテンツデータの数（現コンテンツ数）が適正コンテンツ数よりも所定数以上多いと判定すると、公開コンテンツ数を所定数減少させる。また、現コンテンツ数が適正コンテンツ数よりも所定数以上少ないと判定すると公開コンテンツ数を所定数増加させる。
【０２４３】
ここで、公開コンテンツ数の変更は、キー情報提供手段によるコンテンツキーの送信規制による調整によって行う。
【０２４４】
まず、キー情報提供手段は、端末装置１からコンテンツキーの要求を受け付ける。このとき、キー情報提供手段は、参加端末数に応じて、コンテンツキーの送信を行うか否かを判定する。具体的には、現コンテンツ数が適正コンテンツ数よりも所定数以上少ないか否か、或いは多いか否かを判定する。ここで、「現コンテンツ数」は、コンテンツ供給装置１０によってコンテンツ配信システムＳに投入された全コンテンツデータの数、時期及び視聴率（コンテンツデータの送受信率の予測値）及び、後述するコンテンツキーの送信制限値に基づいてコンテンツ数調整手段が演算して求めることとするが、その他のパラメータを用いて演算するようにしてもよい。また、コンテンツデータを保持している端末装置１から定期的に保持内容を通知させるようにし、コンテンツ数調整手段がこれらを集計して現コンテンツ数として算出するようにしてもよい。
【０２４５】
次に、キー情報提供手段は、現コンテンツ数が適正コンテンツ数を基準として所定範囲内に入っているとき、第２記憶部３０４から要求に応じたコンテンツキーを取り出して要求元の端末装置１へ送信する。なお、端末装置１からのコンテンツキーの要求には、要求に応じたコンテンツＩＤが含まれており、キー情報提供手段はこのコンテンツＩＤに対応するコンテンツキーを第２記憶部３０４のコンテンツキーデータベースから取り出すことになる。
【０２４６】
一方、現コンテンツ数が適正コンテンツ数よりも所定数以上多いとき、キー情報提供手段は、コンテンツキーの要求に対して、所定の割合でコンテンツキーの送信を行わずに拒否する。これにより、公開コンテンツ数を前記所定の割合で減少させることができる。例えば、５つのコンテンツキーの要求のうち、１つのコンテンツキーの要求に対しては、コンテンツキーの送信を拒否するメッセージを送信し、４つのコンテンツキーの要求に対しては、第２記憶部３０４から要求に応じたコンテンツキーを取り出して要求元の端末装置１へ送信する。これにより、公開コンテンツ数の数を４／５に減少させることができる。
【０２４７】
また、このように所定の割合でコンテンツキーの送信を拒否している状態で、現コンテンツ数が適正コンテンツ数よりも所定数以上多いとき、キー情報提供手段は、コンテンツキーの送信を拒否する割合を増加させる。例えば、公開コンテンツ数を上述のように４／５に減少させても、まだ現コンテンツ数が適正コンテンツ数よりも所定数以上多いとき、キー情報提供手段は、コンテンツキーの送信を拒否する割合をさらに増加させる。例えば、５つのコンテンツキーの要求のうち、２つのコンテンツキーの要求に対しては、コンテンツキーの送信を拒否するメッセージを送信する。
【０２４８】
また、所定の割合でコンテンツキーの送信を拒否している状態で、現コンテンツ数が適正コンテンツ数よりも所定数以上少ないとき、キー情報提供手段は、コンテンツキーの送信を拒否する割合を減少させる。例えば、公開コンテンツ数を上述のように３／５に減少させたときに、コンテンツ供給装置１０のサーバ負荷状態が所定の下限値を下回ったとき、キー情報提供手段は、コンテンツキーの送信を拒否する割合を、５つのコンテンツキーの要求のうち１つのコンテンツキーの要求に対してのみ、コンテンツキーの送信を拒否するメッセージを送信する。
【０２４９】
このように本実施形態におけるコンテンツ管理装置２０は、コンテンツキーの送信を拒否する割合を増減させることによって、公開コンテンツ数を増減させるため、処理が複雑にならずに済む。
【０２５０】
また、上記のようにコンテンツキーの送信を拒否する割合を増減させるのではなく、コンテンツ供給装置１０のサーバ負荷状態が所定の上限値を超えているときには、コンテンツキーの送信を全て拒否するようにしてもよい。
【０２５１】
また、コンテンツキーの送信を拒否するのではなく、コンテンツキーの送信要求をストックしておき、コンテンツキーの送信のタイミングを遅延させるようにしてもよい。
【０２５２】
［２．２．コンテンツ管理装置２０の処理フローの説明］
次に、コンテンツ管理装置２０の更に具体的な動作について、図２１及び図２２を参照して説明する。図２１は第２実施形態のコンテンツ管理装置２０における処理全体を示すフローチャート、図２２は第２実施形態のコンテンツリスト更新の処理を示すフローチャートである。なお、以下の各処理は、コンテンツ管理装置２０の制御部３１３が上述した手段等として機能することによって実行されるものである。
【０２５３】
まず、コンテンツ管理装置２０におけるメイン処理について図２１を参照して説明する。この図２１に示すフローチャートと図１９に示すフローチャートとは、ステップＳ２０２及びステップＳ４０２の処理、ステップＳ２３０及びステップＳ４３０の処理、ステップＳ２３１及びステップＳ４３１の処理が異なり、その他の処理は同じであるため、ここではステップＳ４０２，ステップＳ４３０及びステップＳ４３１の処理についてのみ説明する。
【０２５４】
図２１に示すように、ステップＳ４０１において、コンテンツ投入指示があると判定される（ステップＳ４０１：ＹＥＳ）と、制御部３１３は、第１記憶部３０３に記憶した後述のコンテンツキー制限値に応じてコンテンツキーの送信の可否を決定し、コンテンツキーを送信する場合には、要求元の端末装置１へコンテンツキーを送信する。一方、コンテンツキーの送信を行わずに拒否する場合には、要求元の端末装置へその旨を通知する（ステップＳ４０２）。このように、コンテンツキー制限値に応じてコンテンツキーの送信制限を行なうことにより、公開コンテンツ数を変更するようにしている。
【０２５５】
また、ステップＳ４３０において、コンテンツキー制限値の更新契機になったか否かを判定する。この処理において、コンテンツキー制限値の更新契機になったと判定すると（ステップ４３０：ＹＥＳ）、制御部３１３は、コンテンツキー制限値設定処理を行う（ステップＳ４３１）。
【０２５６】
この処理は、図２２におけるＳ４５０，Ｓ４５２〜Ｓ４５８に具体的に示す処理であり、以下に図２２を参照して説明する。この図２２に示すフローチャートと図２０に示すフローチャートとは、ステップＳ３５４及びステップＳ４５４の処理、ステップＳ３５６及びステップＳ４５６の処理、ステップＳ３５７及びステップＳ４５７の処理が異なり、その他の処理は同じであるため、ここでは説明を省略し、ステップＳ４５４、ステップＳ４５６及びステップＳ４５７の処理を説明する。
【０２５７】
図２２に示すように、ステップＳ４５３において、現コンテンツ数が適正コンテンツ数よりも所定数以上多いと判定すると（ステップＳ４５３：ＹＥＳ）、制御部３１３は、上述したようにコンテンツキーの送信を所定の割合で制限するコンテンツキー制限値を設定する（ステップＳ４５４）。
【０２５８】
また、ステップＳ４５５において、現コンテンツ数が適正コンテンツ数よりも所定数以上少ないと判定すると（ステップＳ４５５：ＹＥＳ）、制御部３１３は、コンテンツ管理装置２０がコンテンツキーの送信を制限している状態であるか否かを判定する（ステップＳ４５６）。この処理において、コンテンツキーの送信制限が行われていると判定すると（ステップＳ４５６：ＹＥＳ）、制御部３１３は、上述したようにコンテンツキーの送信の制限を所定の割合で解除したコンテンツキー制限値を設定する（ステップＳ４５７）。
【０２５９】
ステップＳ４５４，Ｓ４５７の処理が終了したとき、コンテンツキーの送信制限が行われていないと判定したとき（ステップＳ４５６：ＮＯ）、或いは現コンテンツ数が適正コンテンツ数よりも所定数以上少なくはないと判定したとき（ステップＳ４５５：ＮＯ）、制御部３１３は、コンテンツリストの更新処理を終了する。
【０２６０】
以上のように、本実施形態におけるコンテンツ管理装置２０は、参加端末数に基づいて、コンテンツキーの送信制限を行うことで、端末装置間で送受信可能なコンテンツデーの数である公開コンテンツ数を変更し、コンテンツ供給装置１０のサーバ負荷を低減させるようにしており、コンテンツ供給装置１０が過負荷によりダウンするなどの問題を事前に対応することができる。
【０２６１】
また、上記第１及び第２実施形態においては、コンテンツ管理装置２０から端末装置１に対してコンテンツキーを送信する態様について説明したが、端末装置間で送受信可能なコンテンツデーの数である公開コンテンツ数の変更をコンテンツリストにより行う場合には、コンテンツキーを用いないコンテンツ配信システムとすることもできる。この場合、図８（２）〜図８（４）の処理は行う必要がないため、コンテンツデータの取得・再生処理が簡易になる。
【０２６２】
また、第１及び第２実施形態においては、コンテンツ供給装置１０とコンテンツ管理装置２０とを別体の装置として説明したがこれに限られるものではなく、これらを一体としたサーバ装置でもあってもよい。つまり、コンテンツ供給装置１０の機能とコンテンツ管理装置２０の機能とを実行できるのであればどのような形態であってもよい。
【０２６３】
また、第１及び第２本実施形態においては、端末装置１間でのコンテンツデータの送受信の形式をストリーミング形式として説明したがこれに限られるものではなく、ダウンロード形式であってもよい。
【０２６４】
また、第１及び第２実施形態においては、コンテンツキーをコンテンツデータを復号するための復号キーとした例を説明したが、これに限られるものではなく、例えば、リクエスト端末装置がコンテンツ保持端末装置からコンテンツデータを取得する際に用いるようにしてもよい。例えば、コンテンツ保持端末装置は正しいコンテンツキーが送信されてきたときに、リクエスト端末装置にコンテンツデータを送信するのである。この場合、コンテンツデータにはコンテンツキーに対応する情報が格納され、リクエスト端末装置はこの情報とリクエスト端末装置から送信されるコンテンツキーとが一致するときに、リクエスト端末装置へコンテンツデータを送信する。
【図面の簡単な説明】
【０２６５】
【図１】本実施形態に係るコンテンツ配信システムにおける各端末装置の接続態様の一例を示す図である。
【図２】ＩＤ空間の説明図である。
【図３】ＤＨＴによってルーティングテーブルが作成される様子の一例を示す図である。
【図４】ルーティングテーブルの一例である。
【図５】ＤＨＴによりコンテンツデータの保持元である端末装置が検索される様子の一例を示す図である。
【図６】コンテンツ保持端末の登録メッセージが転送される様子をスパニングツリー状に表した図である。
【図７】端末装置のインデックステーブルの一例である。
【図８】端末装置におけるコンテンツデータの取得・再生動作の概略を説明するための図である。
【図９】端末装置におけるコンテンツデータの取得・再生動作の概略を説明するための図である。
【図１０】サーバ負荷と参加端末数との関係をコンテンツ数毎にグラフ化した例を示した図である。
【図１１】端末装置の概略構成例を示す図である。
【図１２】コンテンツ供給装置の概略構成例を示す図である。
【図１３】コンテンツ管理装置の概略構成例を示す図である。
【図１４】参加端末数と公開コンテンツ数とを関連付けたテーブルである。
【図１５】端末装置におけるメイン処理を示すフローチャートである。
【図１６】端末装置におけるコンテンツ取得再生処理を示すフローチャートである。
【図１７】端末装置におけるコンテンツ送信処理を示すフローチャートである。
【図１８】コンテンツ供給装置におけるメイン処理を示すフローチャートである。
【図１９】コンテンツ管理装置におけるメイン処理を示すフローチャートである。
【図２０】コンテンツ管理装置におけるコンテンツリスト更新処理を示すフローチャートである。
【図２１】コンテンツ管理装置におけるメイン処理を示すフローチャートである。
【図２２】コンテンツ管理装置におけるコンテンツリスト更新処理を示すフローチャートである。
【符号の説明】
【０２６６】
Ｓ  コンテンツ配信システム
１  端末装置
２  コンテンツ供給装置
３  コンテンツキー管理装置
８  ネットワーク
１０２  端末装置のＣＰＵ
１０３  端末装置の第１記憶部
１０４  端末装置の第２記憶部
１１３  端末装置の制御部
２０２  コンテンツ供給装置のＣＰＵ
２０３  コンテンツ供給装置の第１記憶部
２０４  コンテンツ供給装置の第２記憶部
２１３  コンテンツ供給装置の制御部
３０２  コンテンツ管理装置のＣＰＵ
３０３  コンテンツ管理装置の第１記憶部
３０４  コンテンツ管理装置の第２記憶部
【図１】
2008250569.tif 000003
【図２】
2008250569.tif 000004
【図３】
2008250569.tif 000005
【図４】
2008250569.tif 000006
【図５】
2008250569.tif 000007
【図６】
2008250569.tif 000008
【図７】
2008250569.tif 000009
【図８】
2008250569.tif 000010
【図９】
2008250569.tif 000011
【図１０】
2008250569.tif 000012
【図１１】
2008250569.tif 000013
【図１２】
2008250569.tif 000014
【図１３】
2008250569.tif 000015
【図１４】
2008250569.tif 000016
【図１５】
2008250569.tif 000017
【図１６】
2008250569.tif 000018
【図１７】
2008250569.tif 000019
【図１８】
2008250569.tif 000020
【図１９】
2008250569.tif 000021
【図２０】
2008250569.tif 000022
【図２１】
2008250569.tif 000023
【図２２】
2008250569.tif 000024