(57)【要約】【課題】複数のノード装置において迅速にコンテンツデータを取得すること。【解決手段】情報処理装置であるセンタサーバ１０は、ネットワークを介して相互にコンテンツデータを送受信可能なノード装置である複数の配信サーバ１それぞれのコンテンツデータの配信能力に基づいて、複数の配信サーバ１を複数のグループに分け、グループごとにコンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を生成する。各配信サーバ１は、ダウンロード情報をネットワーク８を介してセンタサーバ１０から取得する。各配信サーバ１は、ダウンロード情報に基づいた取得タイミングで、他の配信サーバ１へコンテンツデータの取得要求を行い、その後、他の配信サーバ１におけるコンテンツデータの配信能力が低いと判定されたとき、ダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、他の配信サーバ１へコンテンツデータの取得要求を行う。【選択図】図６
2011002932.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力の情報を取得する配信能力取得手段と、
前記配信能力取得手段により取得された各前記ノード装置の配信能力の情報に基づき、前記複数のノード装置が複数のグループに分けられて、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を生成するダウンロード情報生成手段と、
前記ダウンロード情報を前記ノード装置へ送信するダウンロード情報送信手段と、
を備える情報処理装置と、
前記ダウンロード情報を前記ネットワークを介して取得するダウンロード情報取得手段と、
前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第１コンテンツ取得手段と、
前記他のノード装置における前記コンテンツデータの配信能力を判定する判定手段と、
前記判定手段により前記配信能力が低いと判定されたとき、前記ダウンロード情報取得手段により取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記第１コンテンツ取得手段により前記コンテンツデータを記憶している他の前記ノード装置へ前記コンテンツデータの取得要求を行う第２コンテンツ取得処理手段と、
をそれぞれ備える複数の前記ノード装置と、
を有することを特徴とするコンテンツ配信システム。
【請求項２】
前記情報処理装置のダウンロード情報生成手段は、前記配信能力の高いノード装置ほど前記コンテンツデータの取得タイミングが早くなるように前記ダウンロード情報を生成することを特徴とする請求項１に記載のコンテンツ配信システム。
【請求項３】
前記情報処理装置のダウンロード情報生成手段は、前記配信能力が所定値未満のノード装置よりも前記配信能力が所定値以上のノード装置の方が前記コンテンツデータの取得タイミングが早くなるように前記ダウンロード情報を生成することを特徴とする請求項１に記載のコンテンツ配信システム。
【請求項４】
前記ダウンロード情報生成手段は、前記コンテンツデータの取得タイミングが早い順に、前記複数のグループを識別するグループ番号の値が小さくなるように、前記複数のグループを分け、
前記ノード装置の前記第１コンテンツ取得処理手段又は前記第２コンテンツ取得処理手段は、前記コンテンツデータを記憶するノード装置のうちその属するグループ番号がより小さいノード装置から優先して前記コンテンツデータを取得することを特徴とする請求項２又は３に記載のコンテンツ配信システム。
【請求項５】
前記ノード装置は、
前記第１コンテンツ取得手段または前記第２コンテンツデータ取得手段により、前記コンテンツデータを取得すると、他の前記ノード装置へ前記ノード装置が前記コンテンツデータを取得したことを通知する通知手段を備え、
前記第２コンテンツ取得手段は、前記通知手段により通知されたノード装置を含む前記コンテンツデータを記憶している他の前記ノード装置とへコンテンツデータの取得要求を行うことを特徴とする請求項１〜４のいずれか１項に記載のコンテンツ配信システム。
【請求項６】
ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力に基づいて、前記複数のノード装置が複数のグループに分けられ、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を、前記ネットワークを介して取得するダウンロード情報取得手段と、
前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第１コンテンツ取得処理手段と、
前記他のノード装置における前記コンテンツデータの配信能力を判定する判定手段と、
前記判定手段により前記配信能力が低いと判定されたとき、前記ダウンロード情報取得手段により取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記第１コンテンツ取得手段により前記コンテンツデータを記憶している他の前記ノード装置へ前記コンテンツデータの取得要求を行う第２コンテンツ取得処理手段と、
を備えるノード装置。
【請求項７】
ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力に基づいて、前記複数のノード装置が複数のグループに分けられ、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を、前記ネットワークを介して取得するダウンロード情報取得ステップと、
前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第１コンテンツ取得ステップと、
前記他のノード装置における前記コンテンツデータの配信能力を判定する判定ステップと、
前記判定ステップにより前記配信能力が低いと判定されたとき、前記ダウンロード情報取得ステップにより取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記コンテンツデータを記憶している他の前記ノード装置へコンテンツデータの取得要求を行う第２コンテンツ取得処理ステップと、
をコンピュータに実現させることを特徴とするプログラム。
【請求項８】
コンテンツデータの配信方法であって、
複数のノード装置が複数のグループに分けられて、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を情報処理装置が生成するステップと、
前記情報処理装置が、前記ダウンロード情報を前記ノード装置へネットワークを介して送信するステップと、
前記ノード装置が、前記ダウンロード情報を前記情報処理装置から前記ネットワークを介して取得するステップと、
前記ノード装置が、前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ前記コンテンツデータの送信を前記ネットワークを介して要求して、当該コンテンツデータを前記ネットワークを介して取得要求を行うステップと、
前記ノード装置が、前記コンテンツデータの送信を要求した前記他のノード装置における前記コンテンツデータの配信能力を判定するステップと、
前記ノード装置が、前記コンテンツデータの送信を要求した前記他のノード装置の配信能力が低いと判定したとき、前記ダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記コンテンツデータを記憶している前記他のノード装置へコンテンツデータの取得要求を行うステップと、を有することを特徴とするコンテンツデータの配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法に関する。詳細には、ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置にコンテンツデータを配信するコンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法に関する。
【背景技術】
【０００２】
この種のシステムに関し、特許文献１には、ピアツーピア型のコンテンツ配信に関する技術が開示されている。具体的に、この技術においては、各ノード装置がコンテンツデータを記憶している他のノード装置を検索し、検索されたノード装置のうち何れかのノード装置にコンテンツデータを要求する。これにより、各ノード装置はコンテンツデータを取得するようになっている。
【特許文献１】特開２００６−１９７４００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、同一のコンテンツデータを複数のノード装置に配信したい場合がある。この場合において、あるコンテンツデータを記憶しているノード装置に対して多数のノード装置がコンテンツデータの要求を一斉に行うと、そのコンテンツデータを記憶しているノード装置に負荷が集中してしまう。そこで、コンテンツデータを配信する際、例えば、最初のうちはコンテンツデータの要求を行うノード装置を少数とし、時間の経過に従ってコンテンツデータの要求を行うノード装置を増加させていくようにすることが考えられる。コンテンツデータの要求を行って、コンテンツデータを取得したノード装置は、他のノード装置に対してコンテンツデータを配信可能になる。従って、コンテンツデータを取得したノード装置が増えるほど、配信可能なノード装置が増える。
【０００４】
しかしながら、先に他のノード装置に対して配信可能になったノード装置の配信能力が低くなってしまったとき、後からコンテンツデータを要求し取得しようとするノード装置へのコンテンツデータの配信が遅れる問題がある。
【０００５】
そこで、本発明は、他のノード装置に対して先に配信可能になったノード装置の配信能力が低くなってしまった場合であっても、迅速にコンテンツデータを配信することができるコンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１に記載の発明は、ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力の情報を取得する配信能力取得手段と、前記配信能力取得手段により取得された各前記ノード装置の配信能力の情報に基づき、前記複数のノード装置が複数のグループに分けられて、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を生成するダウンロード情報生成手段と、前記ダウンロード情報を前記ノード装置へ送信するダウンロード情報送信手段と、を備える情報処理装置と、前記ダウンロード情報を前記ネットワークを介して取得するダウンロード情報取得手段と、前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第１コンテンツ取得手段と、前記他のノード装置における前記コンテンツデータの配信能力を判定する判定手段と、前記判定手段により前記配信能力が低いと判定されたとき、前記ダウンロード情報取得手段により取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記第１コンテンツ取得手段により前記コンテンツデータを記憶している他の前記ノード装置へ前記コンテンツデータの取得要求を行う第２コンテンツ取得処理手段と、をそれぞれ備える複数の前記ノード装置と、を有することを特徴とするコンテンツ配信システムとした。
【０００７】
また、請求項２に記載の発明は、請求項１に記載のコンテンツ配信システムにおいて、前記情報処理装置のダウンロード情報生成手段は、前記配信能力の高いノード装置ほど前記コンテンツデータの取得タイミングが早くなるように前記ダウンロード情報を生成することを特徴とする。
【０００８】
また、請求項３に記載の発明は、請求項１に記載のコンテンツ配信システムにおいて、前記情報処理装置のダウンロード情報生成手段は、前記配信能力が所定値未満のノード装置よりも前記配信能力が所定値以上のノード装置の方が前記コンテンツデータの取得タイミングが早くなるように前記ダウンロード情報を生成することを特徴とする。
【０００９】
また、請求項４に記載の発明は、請求項２又は３に記載のコンテンツ配信システムにおいて、前記ダウンロード情報生成手段は、前記コンテンツデータの取得タイミングが早い順に、前記複数のグループを識別するグループ番号の値が小さくなるように、前記複数のグループを分け、前記ノード装置の前記第１コンテンツ取得処理手段又は前記第２コンテンツ取得処理手段は、前記コンテンツデータを記憶するノード装置のうちその属するグループ番号がより小さいノード装置から優先して前記コンテンツデータを取得することを特徴とする。
【００１０】
また、請求項５に記載の発明は、請求項１〜４のいずれか１項に記載のコンテンツ配信システムにおいて、前記ノード装置は、前記第１コンテンツ取得手段または前記第２コンテンツデータ取得手段により、前記コンテンツデータを取得すると、他の前記ノード装置へ前記ノード装置が前記コンテンツデータを取得したことを通知する通知手段を備え、前記第２コンテンツ取得手段は、前記通知手段により通知されたノード装置を含む前記コンテンツデータを記憶している他の前記ノード装置とへコンテンツデータの取得要求を行うことを特徴とする。
【００１１】
また、請求項６に記載の発明は、ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力に基づいて、前記複数のノード装置が複数のグループに分けられ、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を、前記ネットワークを介して取得するダウンロード情報取得手段と、前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第１コンテンツ取得処理手段と、前記他のノード装置における前記コンテンツデータの配信能力を判定する判定手段と、前記判定手段により前記配信能力が低いと判定されたとき、前記ダウンロード情報取得手段により取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記第１コンテンツ取得手段により前記コンテンツデータを記憶している他の前記ノード装置へ前記コンテンツデータの取得要求を行う第２コンテンツ取得処理手段と、を備えるノード装置とした。
【００１２】
また、請求項７に記載の発明は、ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力に基づいて、前記複数のノード装置が複数のグループに分けられ、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を、前記ネットワークを介して取得するダウンロード情報取得ステップと、前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第１コンテンツ取得ステップと、前記他のノード装置における前記コンテンツデータの配信能力を判定する判定ステップと、前記判定ステップにより前記配信能力が低いと判定されたとき、前記ダウンロード情報取得ステップにより取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記コンテンツデータを記憶している他の前記ノード装置へコンテンツデータの取得要求を行う第２コンテンツ取得処理ステップと、をコンピュータに実現させることを特徴とするプログラムとした。
【００１３】
また、請求項８に記載の発明は、コンテンツデータの配信方法であって、複数のノード装置が複数のグループに分けられて、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を情報処理装置が生成するステップと、前記情報処理装置が、前記ダウンロード情報を前記ノード装置へネットワークを介して送信するステップと、前記ノード装置が、前記ダウンロード情報を前記情報処理装置から前記ネットワークを介して取得するステップと、前記ノード装置が、前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ前記コンテンツデータの送信を前記ネットワークを介して要求して、当該コンテンツデータを前記ネットワークを介して取得要求を行うステップと、前記ノード装置が、前記コンテンツデータの送信を要求した前記他のノード装置における前記コンテンツデータの配信能力を判定するステップと、前記ノード装置が、前記コンテンツデータの送信を要求した前記他のノード装置の配信能力が低いと判定したとき、前記ダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記コンテンツデータを記憶している前記他のノード装置へコンテンツデータの取得要求を行うステップと、を有することを特徴とするコンテンツデータの配信方法とした。
【発明の効果】
【００１４】
本発明によれば、コンテンツ配信システムを構成する複数のノード装置（例えば、サーバや端末装置）において迅速にコンテンツデータを取得することができるコンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態におけるコンテンツ配信システムの各配信サーバ及びセンタサーバの接続態様の一例を示す図である。
【図２】ダウンロード指示書の説明図である。
【図３】配信サーバがコンテンツデータを取得する様子を示す図である。
【図４】配信サーバがコンテンツデータを取得する様子を示す図である。
【図５】配信実績テーブルの内容を示す図である。
【図６】ダウンロード指示書の生成方法の説明図である。
【図７】配信サーバがコンテンツデータを取得する様子を示す図である。
【図８】配信サーバの構成を示す図である。
【図９】配信サーバにおけるメイン処理フローチャートである。
【図１０】配信サーバにおけるコンテンツ取得処理フローチャートである。
【図１１】配信サーバにおけるコンテンツホルダの検索処理フローチャートである。
【図１２】センタサーバの構成を示す図である。
【図１３】センタサーバのメイン処理フローチャートである。
【発明を実施するための形態】
【００１６】
［１．コンテンツ配信システムＳの構成等］
まず始めに、図１を参照して、本発明の一実施形態におけるコンテンツ配信システムの概要について説明する。図１は、本実施形態におけるコンテンツ配信システムＳの各配信サーバ（ノード装置の一例）及びセンタサーバ（情報処理装置の一例）の接続態様の一例を示す図である。
【００１７】
図１の下部枠５１内に示すように、ＩＸ（Internet eＸchange）３、ＩＳＰ（Internet Ｓervice Provider）４、ＤＳＬ（Digital Subscriber Line）回線事業者の装置５、ＦＴＴＨ（Fiber To The Home）回線事業者の装置６、及び通信回線７等によって、インターネット等のネットワーク（現実世界のネットワーク）８が構築されている。通信回線７として、例えば、電話回線や光ケーブル等がある。
【００１８】
コンテンツ配信システムＳは、コンテンツデータを配信するためのシステムである。図１の上部枠５０内に示すように、ネットワーク８を介して相互に接続された複数の配信サーバ１ａ，１ｂ，１ｃ，１ｄ，・・・と、センタサーバ１０と、図示しない複数の端末装置とを備えて、コンテンツ配信システムＳは構成される。これらの装置には、各装置を示す情報としての固有の製造番号（例えば、ＭＡＣアドレス）及びＩＰ（Internet Protocol）アドレスが割り当てられている。なお、製造番号及びＩＰアドレスは、複数の装置間で重複しないものである。また、以下の説明において、配信サーバ１ａ，１ｂ，１ｃ，１ｄ，・・のうち何れかの配信サーバ又は全ての配信サーバを示す場合には、便宜上、配信サーバ１という場合がある。また、コンテンツデータは、例えば、映画データ、音楽データ、文書データなどである。
【００１９】
本実施形態のコンテンツ配信システムＳにおいては、図１の上部枠５０内に示すような、オーバーレイネットワーク９が構築される。つまり、このオーバーレイネットワーク９は、既存のネットワーク８を用いて形成された仮想的なリンクを構成するネットワークを意味している。オーバーレイネットワーク９は、複数の配信サーバ１ａ，１ｂ，１ｃ，１ｄ，・・・から形成されている。なお、以下において、オーバーレイネットワーク９上に配置された配信サーバ１をコンテンツ配信システムＳに参加している配信サーバ１という。また、各配信サーバ１には固有の識別情報（以下、「サーバＩＤ」とする）がそれぞれ割り当てられている。この識別情報は、例えば、装置のＭＡＣアドレス又はＩＰアドレスを所定のハッシュ関数でハッシュ化して生成される。
【００２０】
コンテンツ配信システムＳでは、各配信サーバ１でコンテンツデータを記憶しており、図示しない端末装置から要求に応じてコンテンツデータを送信する。各配信サーバ１でコンテンツデータを記憶するために、本実施形態に係るコンテンツ配信システムＳでは、まず、センタサーバ１０から一部の配信サーバ１にコンテンツデータを送信する。その後、全ての配信サーバ１でコンテンツデータが取得されるまで、配信サーバ１間でコンテンツデータが送受信される。
【００２１】
このとき、端末装置からの要求に対応するためには、全ての配信サーバ１において迅速にコンテンツデータの取得を終了することが望ましい。
【００２２】
そこで、コンテンツ配信システムＳにおいては、各配信サーバ１の取得タイミングの情報を含むダウンロード指示書（ダウンロード情報の一例）が用いられる。ダウンロード指示書により、迅速かつ効率的にコンテンツデータが複数の配信サーバ１により取得される。
【００２３】
ダウンロード指示書には、コンテンツデータの識別情報（以下、「コンテンツＩＤ」とする）及びコンテンツデータの配信開始時間の他、コンテンツデータの取得タイミングの情報を含んでいる。この取得タイミングは、複数の配信サーバ１が複数のグループに分けられ、グループごとに異なっている。図２に示す例では、取得タイミングの情報として第１番から第ｎ番までのグループと各配信サーバ１（例えば、サーバＩＤ）とが関連づけられている。各配信サーバ１は、この取得タイミングの情報に基づき、自配信サーバ１に割り当てられたグループ番号に所定時間Ｘ（例えば、１０秒）を乗算した時間だけ遅れた取得タイミングでコンテンツデータを取得する。すなわち、所定時間Ｘとグループ番号とにより取得遅延時間が規定される。なお、本実施形態では、１台の配信サーバ１が同時に４台の配信サーバ１へコンテンツデータを送信することができるものとして説明する。また、所定時間Ｘはダウンロード指示書に含まれる情報としてもよい。
【００２４】
図３に示すように、センタサーバ１０は、コンテンツデータの配信開始時間になると、第１番のグループに属する配信サーバ１（ここでは、３台の配信サーバ１）へコンテンツデータを送信し、これらの配信サーバ１にコンテンツデータを記憶させる。以下、このようにコンテンツデータを記憶することとなった配信サーバ１をコンテンツホルダともいう。
【００２５】
その後、第２番から第ｎ番のグループに属する配信サーバ１は、ダウンロード指示書に基づき、コンテンツホルダからコンテンツデータを取得する。すなわち、図３に示すように、まず、第２番のグループに属する配信サーバ１は、配信開始時間から所定時間Ｘだけ遅れて、第１番のグループに属してコンテンツホルダとなった配信サーバ１へコンテンツデータの取得要求を行ってコンテンツデータを取得する。次に、第３番のグループに属する配信サーバ１は、配信開始時間から所定時間２Ｘだけ遅れて、第２番のグループに属してコンテンツホルダとなった配信サーバ１へコンテンツデータの取得要求を行ってコンテンツデータを取得する。以降、同様に、第ｎ番のグループに属する配信サーバ１まで配信開始時間から所定時間（ｎ−１）Ｘだけ遅れて、コンテンツデータの取得処理が行われる。以下、このようにコンテンツホルダへコンテンツデータの取得要求を行う配信サーバ１をリクエスタともいう。
【００２６】
ところで、コンテンツデータは、例えばドラマや映画などの動画データを含むような場合には、数百Ｍ〜数Ｇバイトのデータとなる場合があることから、多くの配信時間を要する。そのため、配信サーバ１において完全にコンテンツデータを取得した後に、コンテンツデータの送信処理を行った場合、配信サーバ１の数が多いと、すべての配信サーバ１にコンテンツデータが行き渡るまでに時間がかかり、迅速性に欠ける。
【００２７】
そこで、本実施形態に係るコンテンツ配信システムＳでは、センタサーバ１０において、コンテンツデータを複数に分割して分割コンテンツデータを生成して配信するようにしている。ダウンロード指示書では、コンテンツデータの識別情報として各分割コンテンツデータのコンテンツＩＤと配信開始時間の情報とが関連づけられている。各配信サーバ１は、図３（ａ）,（ｂ）に示すように、ダウンロード指示書に従って複数の分割コンテンツデータを先頭から順次取得していく。なお、同図では、所定時間Ｘの間に、所定基準の配信能力以上の配信サーバ１からは１台の配信サーバ１に対して少なくとも３つの分割コンテンツデータが送信されるものとしている。
【００２８】
以上のように、コンテンツ配信システムＳでは、配信サーバ１を取得タイミングが早い順に第１〜第ｎ（ｎは２以上の整数）グループに分けている。さらに、第ｍ＋１グループ（１≦ｍ≦（ｎ−１））の配信サーバ１は、リクエスタとしてダウンロード指示書に基づいて第ｍ＋１番目に遅い取得タイミングで、コンテンツホルダである第１〜第ｍグループの配信サーバ１のいずれかへコンテンツデータの取得要求を行って、コンテンツデータを取得する。これにより、迅速かつ効率的にコンテンツデータの配信を行うことができる。
【００２９】
コンテンツデータの取得タイミングは、上述のようにダウンロード指示書により規定されるものであるが、このダウンロード指示書は、センタサーバ１０により生成され、配信サーバ１へ送信される。
【００３０】
センタサーバ１０は、ダウンロード指示書の生成を、配信サーバ１が過去に配信したコンテンツデータの配信実績に応じて生成するようにしている。これは、配信能力が低い配信サーバ１が存在する場合には、配信効率が悪くなるからである。例えば、図４に示すように、グループ番号が小さいグループに属する配信サーバ１（ここでは、１番目のグループに属する配信サーバ１ｃ）の配信能力が低い場合、この配信サーバ１ｃからコンテンツデータを取得する次のグループ番号に属する配信サーバ１では、コンテンツデータを取得するための時間がかかってしまう。
【００３１】
そこで、センタサーバ１０では、配信サーバ１におけるコンテンツデータの配信実績に基づき、配信能力の高い配信サーバ１ほどコンテンツデータの取得タイミングが早くなるようにダウンロード指示書を生成する。換言すれば配信能力が低い配信サーバ１はできるだけグループ番号が大きいグループに属させるようにダウンロード指示書を生成する。
【００３２】
コンテンツデータの配信実績は、例えば１つのコンテンツデータが配信されるごとに、各配信サーバが配信実績の情報（以下、「配信実績情報」とする。）をセンタサーバ１０へ送信することによって実現している。配信実績情報は、配信サーバ１の配信能力を示す情報である。例えば、リクエスタがコンテンツホルダからの分割コンテンツデータを取得するときの受信速度とコンテンツホルダのサーバＩＤとが関連づけられた情報である。上述した配信実績情報は、リクエスタから送信される。なお、配信実績情報を、コンテンツホルダがリクエスタへ分割コンテンツデータを配信するときの送信速度とコンテンツホルダのサーバＩＤとが関連づけられた情報とし、コンテンツホルダから送信されるものとしてもよい。
【００３３】
各配信サーバ１は、コンテンツデータごとに配信実績情報をセンタサーバ１０へ送信する。配信実績情報を取得したセンタサーバ１０は、取得した配信実績情報を、図５に示すように、配信サーバ１のサーバＩＤに関連づけた配信実績テーブルが内部の記憶部に記憶する。なお、配信サーバ１ａ〜１ｄのサーバＩＤを「１ａ」〜「１ｄ」としている。図５に示す例では、例えば、配信サーバ１ａに対するリクエスタの受信速度が「８．９Ｍｂｐｓ」、「８．５Ｍｂｐｓ」、・・・といった順の配信実績情報をセンタサーバ１０が受信したことを示す。また、配信実績テーブルには、配信実績情報に含まれる受信速度を平均した値（以下、「配信実績平均値」とする。）も含まれる。この配信実績平均値は、センタサーバ１０で演算される。
【００３４】
そして、配信実績情報に基づき、配信能力が高い配信サーバ１から順にグループ番号の小さいグループからグループを割り当てていく。「配信能力」が高いとは、配信実績情報に受信速度が含まれる場合には、受信速度が速いことを意味する。センタサーバ１０は、配信実績テーブルに基づき、図６の左図に示すように、受信速度の平均値である配信実績平均値が大きいサーバＩＤの配信サーバ１ほど、グループ番号が小さくなるようにグループを割り当てる。なお、受信速度に代えて送信速度の情報を配信実績情報に含ませる場合には、配信実績テーブルにはサーバＩＤ毎に、送信速度と、送信速度の平均値である配信実績平均値が含まれる。そして、受信速度の場合と同様に、送信速度が速いときに「配信能力」が高いとする。
【００３５】
センタサーバ１０は、上述のように各配信サーバ１をグループ分けした後、図６の右図に示すように、次に配信するコンテンツデータに関するダウンロード指示書を生成する。
【００３６】
各配信サーバは、このダウンロード指示書に従った取得タイミングでコンテンツデータを取得することで、配信能力の低い配信サーバが早いタイミングでコンテンツホルダとなることを防止している。これにより、コンテンツホルダが増加したときに配信能力の低い配信サーバがコンテンツホルダとなってコンテンツデータの配信が遅延してしまうのを防止することができ、効率的な配信を行うことができる。
【００３７】
なお、例えば、配信能力が所定値以上であれば、安定してコンテンツデータを配信できるとする。その場合、配信能力が所定値未満のノード装置よりも配信能力が所定値以上のノード装置の方がコンテンツデータの取得タイミングが早くなるようにダウンロード情報を生成するようにしてもよい。すなわち、配信サーバ１を配信能力が所定値以上の配信サーバ１と配信能力が所定値未満の配信サーバ１に分け、配信能力が所定値以上の配信サーバ１をグループ番号の小さいグループから割り当てるようにしてもよい。このようにすることで、グループ分けが容易となり、処理負荷を低減することができる。
【００３８】
次に、リクエスタとなる配信サーバ１がコンテンツホルダとなった配信サーバ１からコンテンツデータを取得する手順を説明する。
【００３９】
上述したように、配信サーバ１及びコンテンツデータにそれぞれ固有の識別情報が割り当てられている。固有の識別情報として、配信サーバ１にはサーバＩＤ、コンテンツデータにはコンテンツＩＤが割り当てられる。この識別情報に基づいて、配信サーバ１間でデータの送受信が行われる。本実施形態においては、各識別情報は例えば、２桁の１６進数で規定される。そして、コンテンツＩＤを超えず、このコンテンツＩＤに最も近いサーバＩＤを有する配信サーバ１がそのコンテンツＩＤに対応するコンテンツホルダの所在情報を記憶するものとしており、ここではルートノードということとする。なお、コンテンツホルダとは、コンテンツデータを記憶する配信サーバ１を意味する。また、各配信サーバ１は、一部の配信サーバ１のサーバＩＤと所在情報とを関連づけたテーブル（以下、「ルーティングテーブル」という）を記憶している。所在情報を記憶した配信サーバ１のうち宛先ＩＤに最も近いサーバＩＤの配信サーバ１がルーティングテーブルから選択されてメッセージを送信、または、転送する。なお、コンテンツＩＤ、ノードＩＤ（サーバＩＤ）、インデックステーブル及びルーティングテーブルについては、特開２００８−２５０５７０号公報等に記載された技術と同様である。
【００４０】
各配信サーバ１は、コンテンツデータを取得すると、コンテンツホルダとなる。このコンテンツデータのコンテンツＩＤを宛先ＩＤとし、ルーティングテーブルに記憶したサーバＩＤのうち、宛先ＩＤに最も近いサーバＩＤの配信サーバ１へ、自配信サーバ１の所在情報やグループ番号などを含む登録メッセージを送信する。この登録メッセージは、他の配信サーバ１により転送されてルートノードに到達し、ルートノードでコンテンツホルダの所在情報やグループ番号などが記憶される。
【００４１】
一方、各配信サーバ１は、リクエスタとしてコンテンツデータを取得しようとするとき、そのコンテンツデータのコンテンツＩＤを宛先ＩＤとし、ルーティングテーブルに記憶したサーバＩＤのうち、宛先ＩＤに最も近いサーバＩＤの配信サーバ１に探索メッセージを送信する。この探索メッセージは、他の配信サーバ１により転送されてルートノードに到達する。ルートノードは、コンテンツホルダの所在情報をリクエスタへ送信する。これにより、リクエスタは、コンテンツホルダの所在情報やグループ番号を知ることになり、コンテンツホルダにコンテンツデータの取得要求を行って、コンテンツデータを取得する。
【００４２】
このように、コンテンツ配信システムＳに属する複数の配信サーバ１をグループに分けて、グループごとにコンテンツデータの取得タイミングを異ならせるようにしている。このようにすることで、効率的にコンテンツデータの配信を行うことができる。しかし、通常では配信能力が高い配信サーバ１であっても、次のような問題がある。例えば、ネットワーク８に接続するための通信路においてトラフィックが混雑したり、配信サーバ１の内部の処理負荷が大きくなっているような場合がある。この場合、一時的に配信能力が低くなるようなことがある。このように一時的に配信能力が低くなると、上述のようにダウンロード指示書を生成しても、迅速かつ効率的にコンテンツデータを取得することができなくなる恐れがある。例えば、図４に示すように、グループ番号が先頭側の配信サーバ１（ここでは、１番目の配信サーバ１ｃ）の配信能力が低い場合、この配信サーバ１ｃからコンテンツデータを取得するための時間がかかってしまう。その結果、その次のグループ番号の一部の配信サーバ１も同様にコンテンツデータの取得が遅れる。また、配信サーバ１からコンテンツデータを取得できないときに、センタサーバ１０に対してコンテンツデータの取得要求を行うようにした場合、センタサーバ１０に負荷がかかってしまう。
【００４３】
そこで、配信サーバ１は、ダウンロード指示書に基づいた取得タイミングで取得要求を行ったコンテンツホルダの配信能力が低いときにはこのコンテンツホルダからのコンテンツデータの取得を一時停止する。取得タイミングよりも遅い取得タイミングで、コンテンツホルダの取得要求を行う。例えば、図７に示すように、１番のグループに属する配信サーバ１ｃの配信能力が低い場合に、この配信サーバ１をコンテンツホルダとしてコンテンツデータの取得を開始するとコンテンツデータの取得（ダウンロード）が遅延して滞ったとする。そこで、１番目の配信サーバ１ｃをコンテンツホルダとした第２番のグループに属する配信サーバ１（図７において円で囲んだ部分の配信サーバ１）は、第３番のグループに属する配信サーバと同じ取得タイミングでコンテンツデータの取得要求を行うようにしている。
【００４４】
このようにコンテンツホルダの配信能力が低いときにはこのコンテンツホルダからのコンテンツデータの取得を中止することで、コンテンツデータの配信が滞ることを抑制することができる。また、配信サーバ１からコンテンツデータを取得できないときに、センタサーバ１０に対してコンテンツデータの取得要求を行う場合に比べて、センタサーバ１０にかかる負荷を抑制することができる。
【００４５】
［１．２．配信サーバ１の具体的構成及び動作］
まず、配信サーバ１の具体的構成及び動作の一例について説明する。
【００４６】
（配信サーバ１の構成について）
まず、配信サーバ１の具体的構成について説明する。図８は、本実施形態のコンテンツ配信システムＳにおける配信サーバ１の構成を示す図である。
【００４７】
配信サーバ１は、一般のサーバコンピュータを適用可能であり、図８に示すように、制御部１１と、記憶部１２と、通信部１３とを備えており、これらはシステムバス１５を介して相互に接続されている。制御部１１は、配信サーバ１全体を制御する。また、記憶部１２は、各種情報を記憶する記憶領域を有する書き換え可能な記憶部である。また、通信部１３は、センタサーバ１０や図示しない端末装置と通信するための通信インターフェイスである。
【００４８】
制御部１１は、ＣＰＵ（Central Processing Unit）、内部メモリなどから構成される。この内部メモリには、センタサーバ１０や図示しない端末装置との間でコンテンツデータや各種メッセージなどを送受信するための情報処理プログラムが格納されている。ＣＰＵは内部メモリに記憶されている情報処理プログラムを読み出して実行することによって、ダウンロード情報取得手段、第１コンテンツ取得処理手段、判定手段、第２コンテンツ取得処理手段、通知手段等として機能する。なお、この情報処理プログラムは、例えば、ネットワーク８に接続されたセンタサーバ１０などから、通信部１３を介して、制御部１１の内部メモリにダウンロードされるようにしてもよい。また、この情報処理プログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、制御部１１の内部メモリに読み込まれるようにしてもよい。また、ＣＰＵ１１は、内部にタイマを有しており、計時動作を行う。
【００４９】
また、記憶部１２は、コンテンツデータ、ルーティングテーブル及びインデックステーブル、ダウンロード指示書などを記憶する記憶手段として機能する。
【００５０】
（配信サーバ１の具体的動作について）
以上のように構成された配信サーバ１の動作の一例を図面を参照して具体的に説明する。図９は本実施形態における配信サーバ１のメイン処理フローチャートである。なお、以下の各処理は、配信サーバ１の制御部１１が上述した各手段等として機能することによって実行されるものである。
【００５１】
配信サーバ１においてメイン電源スイッチ（図示せず）がＯＮされたときやリセットスイッチ（図示せず）が操作されたとき、制御部１１のＣＰＵは、内部メモリに記憶した情報処理プログラムを実行状態とする。これにより、制御部１１は、制御部１１としての機能を動作状態として処理を開始し、タイマのカウントを開始する。
【００５２】
図９に示すように、制御部１１は、タイマのカウントにより一定時間が経過したかを判定する（ステップＳ１０）。一定時間が経過したと判定すると（ステップＳ１０：Ｙｅｓ）、制御部１１は、センタサーバ１０からダウンロード指示書が投入されたかを検索し（ステップＳ１１）、ダウンロード指示書がセンタサーバ１０からオーバーレイネットワーク９に投入されたか否かを判定する（ステップＳ１２）。ステップＳ１１において、制御部１１は、コンテンツデータを探索するための探索メッセージと同様に、ダウンロード指示書を検索するための指示書検索メッセージを送信する。探索メッセージと指示書検索メッセージとは、記憶部１２に記憶したルーティングテーブルに基づき通信部１３を介して送信される。指示書検索メッセージに基づいて、制御部１１は、ダウンロード指示書を記憶する配信サーバ１の所在情報を取得する。制御部１１は、ダウンロード指示書を記憶する配信サーバ１の所在情報が取得できたときに、ダウンロード指示書が投入されたと判定する。なお、ダウンロード指示書には、所定のＩＤが割り当てられており、コンテンツデータと同様に、この所定のＩＤに最も近いサーバＩＤを有する配信サーバ１がダウンロード指示書を記憶している配信サーバ１の所在情報を記憶している。
【００５３】
ダウンロード指示書が投入されたと判定すると（ステップＳ１２：Ｙｅｓ）、制御部１１は、ダウンロード指示書を取得する（ステップＳ１３）。ステップＳ１２においてダウンロード指示書を記憶する配信サーバ１の所在情報を取得しており、制御部１１は、この所在情報の配信サーバ１にダウンロード指示書の取得要求を通信部１３を介して行う。これにより、制御部１１は、ダウンロード指示書を通信部１３を介して取得して、記憶部１２に記憶する。このように、制御部１１は、センタサーバ１０又は配信サーバ１からダウンロード指示書をネットワーク８を介して取得するダウンロード情報取得手段として機能する。
【００５４】
ダウンロード指示書を取得すると、制御部１１は、コンテンツホルダの所在情報を登録するための登録メッセージと同様に、ダウンロード指示書の記憶を通知するためのダウンロード指示書登録メッセージを送信する。このダウンロード指示書登録メッセージは、記憶部１２に記憶したルーティングテーブルに基づき通信部１３を介して送信される。これにより、制御部１１は、ダウンロード指示書の記憶する配信サーバ１としてその所在情報を登録する。なお、上述においてはダウンロード指示書は、コンテンツデータと同様に検索や登録を行うこととしたが、各配信サーバ１の制御部１１が一定時間ごとにセンタサーバ１０に問い合わせして、センタサーバ１０から取得するようにしてもよい。
【００５５】
次に、制御部１１は、取得したダウンロード指示書を解析し（ステップＳ１４）、このダウンロード指示書で指示された取得タイミングになるまで待機する（ステップＳ１５）。すなわち、制御部１１は、ダウンロード指示書に含まれる配信開始時間の情報とグループ番号とから、新しく投入されるコンテンツデータの取得タイミングを解析する。例えば、上記配信開始時間が２００９年６月１日午後１１時００分００秒、自配信サーバ１のグループ番号が第２番、所定時間Ｘが１０秒であるとき、新しく投入されるコンテンツデータの取得タイミングを２００９年６月１日午後１１時００分２０秒であると判定し、２００９年６月１日午後１１時００分２０秒になるまで待機する。このように、制御部１１は、ダウンロード指示書に基づいた取得タイミングで、複数の配信サーバ１のうちコンテンツホルダとなっている配信サーバ１へ、コンテンツデータの取得要求を行う第１コンテンツ取得処理手段として機能する。なお、制御部１１は、コンテンツデータの取得を開始するときには、ダウンロード指示書に規定された自配信サーバ１のグループ番号を用いる。但し、その後、制御部１１は、ステップＳ４０の処理を行った後は、次のコンテンツデータの取得を開始するまで、その処理後のグループ番号を自配信サーバ１のグループ番号として用いる。
【００５６】
ダウンロード指示書で指示された取得タイミングとなると、制御部１１は、コンテンツデータを取得するコンテンツ取得処理を開始する（ステップＳ１６）。このコンテンツ取得処理は、図１０のステップＳ３０〜Ｓ４０の処理であり、後で詳述する。
【００５７】
ステップＳ１０において一定時間が経過していないと判定したとき（ステップＳ１０：Ｎｏ）、ステップＳ１２においてダウンロード指示書が投入されていないと判定したとき（ステップＳ１２：Ｎｏ）、制御部１１は、通信部１３を介して他の配信サーバ１からメッセージを受信したか否かを判定する（ステップＳ１７）。メッセージを受信したと判定すると（ステップＳ１７：Ｙｅｓ）、制御部１１は、メッセージ処理を行う（ステップＳ１８）。
【００５８】
受信したメッセージが登録メッセージであるとき、制御部１１は、自配信サーバ１が登録メッセージに対応するコンテンツデータのルートノードであるか否かを判定する。このとき、自配信サーバ１がルートノードであると判定すると、制御部１１は、登録メッセージに含まれるコンテンツホルダの所在情報やグループ番号を記憶部１２に記憶する。また、受信したメッセージが探索メッセージであるとき、制御部１１は、自配信サーバ１が探索メッセージに対応するコンテンツデータのルートノードであるか否かを判定する。このとき、自配信サーバ１がルートノードであると判定すると、制御部１１は、記憶部１２から読み出したコンテンツホルダの所在情報を、探索メッセージの送信元であるリクエスタの配信サーバ１へ通信部１３よりネットワーク８を介して送信する。一方、受信したメッセージに対するルートノードでないときには、このメッセージを記憶部１２に記憶したルーティングテーブルに基づき通信部１３を介して転送する。
【００５９】
メッセージを受信していないと判定すると（ステップＳ１７：Ｎｏ）、制御部１１は、他の配信サーバ１から通信部１３を介してコンテンツデータの取得要求があったか否かを判定する（ステップＳ１９）。この処理において、コンテンツデータの取得要求があったと判定すると（ステップＳ１９：Ｙｅｓ）、制御部１１は、記憶部１２から取得要求に応じたコンテンツデータを読み出して、取得要求元の配信サーバ１にコンテンツデータを通信部１３を介して送信する（ステップＳ２０）。なお、リクエスタからコンテンツデータを取得可能か否かの問い合わせがあったとき、制御部１１は、すでに所定数（ここでは、４台）のリクエスタに対してコンテンツデータの送信を行っているときには、取得可能でない旨の返信を行う。一方、コンテンツデータの送信を行っていないとき、或いは所定数未満のリクエスタに対してコンテンツデータの送信を行っているときには、制御部１１は、取得可能である旨の返信を行う。
【００６０】
ステップＳ１６，Ｓ１８，Ｓ２０の処理が終了したとき、又は、コンテンツデータの取得要求がないと判定したとき（ステップＳ１９：Ｎｏ）、制御部１１は、サーバ処理の終了指示を検出したかを判定する（ステップＳ２１）。例えば、自配信サーバ１の電源がＯＦＦ状態へ移行したとき、制御部１１は、終了指示を検知する。制御部１１は、終了指示を検知したと判定すると（ステップＳ２１：Ｙｅｓ）、処理を終了し、一方、終了指示を検知していないと判定すると（ステップＳ２１：Ｎｏ）、ステップＳ１０からの処理を繰り返す。
【００６１】
次に、ステップＳ１６で実行されるコンテンツ取得処理について図１０のフローチャートを参照して具体的に説明する。図１０は配信サーバ１におけるコンテンツ取得処理のフローチャートである。
【００６２】
図１０に示すように、コンテンツ取得処理を開始すると、制御部１１は、カウンタ値ｉを初期値「１」に設定し（ステップＳ３０）、コンテンツホルダの探索処理を実行する（ステップＳ３１）。この探索処理は、図１１のステップＳ５０〜Ｓ５４の処理であり、後で詳述する。
【００６３】
次に、制御部１１は、コンテンツホルダの探索処理により、探索が成功したかを判定する（ステップＳ３２）。探索が成功したと判定すると（ステップＳ３２：Ｙｅｓ）、制御部１１は、コンテンツデータのうちi番目の分割コンテンツデータの取得要求をコンテンツホルダへ行って、i番目の分割コンテンツデータの取得を開始する（ステップＳ３３）。分割コンテンツデータにはコンテンツデータの先頭から分割番号が「１」から順に付されており、ダウンロード指示書には、分割番号が各分割コンテンツデータのコンテンツＩＤと分割番号とが含まれる。制御部１１は、ダウンロード指示書に含まれるコンテンツＩＤのうち「ｉ」番が付された分割番号に対応するコンテンツＩＤに基づき、i番目の分割コンテンツデータの取得を開始する。i番目の分割コンテンツデータの取得を開始した後、制御部１１は、取得（ダウンロード）が停滞しているか否かを判定する（ステップＳ３４）。この処理において、制御部１１は、分割コンテンツデータのパケットが遅延しているとき、或いはそのパケットの損失が多いときに、取得が停滞していると判定する。なお、パケットのデータ量は規定されており、制御部１１は、例えば、所定期間内に分割コンテンツデータのパケットを規定した数以上受信できないときなどに、「分割コンテンツデータのパケットが遅延」していると判定する。このように、制御部１１は、コンテンツホルダである他の配信サーバ１におけるコンテンツデータの配信能力を判定する判定手段として機能する。
【００６４】
取得が停滞していないと判定したとき（ステップＳ３４：Ｎｏ）、制御部１１は、i番目の分割コンテンツデータの取得が終了したか否かを判定する（ステップＳ３５）。ダウンロード指示書には、各分割コンテンツデータのデータ容量がコンテンツＩＤと関連づけられて含まれており、制御部１１は、ダウンロード指示書に応じたデータ量のデータを受信したときに、i番目の分割コンテンツデータの取得が終了したと判定する。なお、各分割コンテンツデータの最後尾に終了フラグを付し、制御部１１はこの終了フラグを取得したときに、i番目の分割コンテンツデータの取得が終了したと判定するようにしてもよい。制御部１１は、分割コンテンツデータの取得が終了していないと判定すると（ステップＳ３５：Ｎｏ）、ステップＳ３４の処理を繰り返し行い、一方で、取得が終了したと判定する（ステップＳ３５：Ｙｅｓ）、制御部１１は、コンテンツデータの記憶を通知するための登録メッセージを通信部１３を介してルートノードへ送信する。この登録メッセージは、コンテンツデータを記憶した配信サーバ１の所在情報及びグループ番号を含むメッセージである。その後、制御部１１は、コンテンツデータの取得を終了したか否か、すなわち、コンテンツデータを構成する全ての分割コンテンツデータの取得が終了したか否かを判定する（ステップＳ３６）。ダウンロード指示書には、各分割コンテンツデータのコンテンツＩＤが含まれており、制御部１１は、ダウンロード指示書に含まれるコンテンツＩＤの分割コンテンツデータをすべて取得したときに、全ての分割コンテンツデータの取得が終了したと判定する。このように、制御部１１は、コンテンツデータを受信すると、ルートノードである他の配信サーバ１へコンテンツデータの取得を通知する通知手段として機能する。
【００６５】
コンテンツデータの取得を終了していないと判定すると（ステップＳ３６：Ｎｏ）、制御部１１は、カウンタ値ｉを１だけインクリメントして（ステップＳ３７）、処理をステップＳ３１に戻す。一方、コンテンツデータの取得を終了したと判定すると（ステップＳ３６：Ｙｅｓ）、制御部１１は、配信実績情報をセンタサーバ１０へ送信し（ステップＳ３８）、コンテンツ取得処理を終了する。配信実績情報は、配信サーバ１の配信能力を示す情報であり、例えば、リクエスタとしてコンテンツホルダから各分割コンテンツデータを取得したときの受信速度とコンテンツホルダのサーバＩＤとが関連づけられた情報であり、リクエスタから送信される。この「受信速度」は複数の分割コンテンツデータを取得したときの平均受信速度としている。なお、複数の分割コンテンツデータのそれぞれを取得するときの受信速度であってもよい。
【００６６】
ステップＳ３２において探索が成功していないと判定すると（ステップＳ３２：Ｎｏ）、又は、ステップＳ３４でコンテンツデータの取得が停滞したと判定すると（ステップＳ３４：Ｙｅｓ）、制御部１１は、次の取得タイミングまで取得を一時停止（ステップＳ３９）する。さらに、自配信サーバ１のグループ番号ｐを１だけインクリメントして（ステップＳ４０）、処理をステップＳ３１へ戻して、コンテンツホルダの探索処理を行う。このように制御部１１は、コンテンツホルダからのコンテンツデータの取得が停滞したとき、すなわちコンテンツホルダである他の配信サーバ１におけるコンテンツデータの配信能力が低いと判定されたとき、ダウンロード指示書に基づいた取得タイミングよりも遅い取得タイミングで、コンテンツホルダである他の配信サーバ１へコンテンツデータの取得要求を行う第２コンテンツ取得処理手段として機能する。
【００６７】
次に、ステップＳ３１で実行されるコンテンツホルダの探索処理について図１１のフローチャートを参照して具体的に説明する。図１１は配信サーバ１におけるコンテンツホルダの探索処理のフローチャートである。
【００６８】
図１１に示すように、コンテンツホルダの探索処理を開始すると、制御部１１は、通信部１３を介して探索メッセージを送信する（ステップＳ５０）。この処理において、制御部１１は、ｉ番目の分割コンテンツデータのコンテンツＩＤを宛先ＩＤとし、このコンテンツＩＤ、自配信サーバ１の所在情報などを含む探索メッセージを生成する。この探索メッセージを記憶部１２に記憶したルーティングテーブルに基づき通信部１３を介して送信する。
【００６９】
次に、制御部１１は、コンテンツホルダを発見したか否かを判定する（ステップＳ５１）。この処理において、制御部１１は、ステップＳ５０において送信した探索メッセージに対して、ルートノードからコンテンツホルダの所在情報及びグループ番号を通信部１３を介して受信したときに、コンテンツホルダを発見したと判定する。コンテンツホルダを発見すると（ステップＳ５１：Ｙｅｓ）、制御部１１は、グループ番号の最も小さいコンテンツホルダを選択（ステップＳ５２）する。選択されたコンテンツホルダの所在情報を記憶部１２から読み出して、選択したコンテンツホルダに通信部１３を介してコンテンツデータを取得可能か否かを問い合わせる（ステップＳ５３）。例えば、各配信サーバ１が同時に最大４台の配信サーバ１までコンテンツデータを送信するものであると規定されているとする。このとき、コンテンツデータを取得可能か否かの問い合わせを受信したときに、すでに４台の配信サーバ１にコンテンツデータを送信している最中であるときには、コンテンツホルダの制御部１１は、コンテンツデータを取得可能でないとの応答を返す。一方、コンテンツホルダの制御部１１は、コンテンツデータの配信先が３台以下であるとき、コンテンツデータを取得可能であるとの応答を返す。選択したコンテンツホルダからコンテンツデータを取得可能であるとの返信があると（ステップＳ５３：Ｙｅｓ）、制御部１１は、コンテンツホルダの探索処理を終了する。一方、選択したコンテンツホルダからコンテンツデータを取得可能ではないとの返信があると（ステップＳ５３：Ｎｏ）、取得可能か否かを問い合わせていないコンテンツホルダが存在するかを判定する（ステップＳ５４）。この処理において、取得可能か否かを問い合わせていないコンテンツホルダが存在すると判定すると（ステップＳ５４：Ｙｅｓ）、制御部１１は、処理をステップＳ５２へ戻す。一方、取得可能か否かを問い合わせていないコンテンツホルダが存在しないと判定すると（ステップＳ５４：Ｎｏ）、制御部１１は、コンテンツホルダの探索処理を終了する。このように、制御部１１は、第１及び第２コンテンツ取得処理手段として、所在情報を取得したコンテンツホルダのうちその属するグループ番号がより小さいコンテンツホルダから優先してコンテンツデータを取得する。
【００７０】
［１．３．センタサーバ１０の具体的構成及び動作の説明］
以下、図面を参照して、上述したセンタサーバ１０の具体的構成及び動作の一例について説明する。
【００７１】
（センタサーバ１０の構成について）
まず、センタサーバ１０の構成について説明する。図１２は、センタサーバ１０の具体的構成を示す図である。
【００７２】
センタサーバ１０は、専用のコンピュータの他、一般のサーバコンピュータを適用可能であり、図１２に示すように、センタサーバ１０全体を制御する制御部２１と、各種情報を記憶する記憶領域を有する書き換え可能な記憶部２２と、配信サーバ１のサーバＩＤに配信実績情報を関連づけて記憶するデータベース２３と、配信サーバ１などと通信するための通信部２４と、各種設定入力を行うための操作部２５とを備えており、これらはシステムバス２６を介して相互に接続されている。
【００７３】
制御部２１は、ＣＰＵ（Central Processing Unit）、内部メモリから構成される。この内部メモリには、配信サーバ１にコンテンツデータやダウンロード指示書などを送信する情報処理プログラムが格納されている。ＣＰＵは内部メモリに記憶されている情報処理プログラムを読み出して実行することによって、配信能力取得手段、ダウンロード情報生成手段、ダウンロード情報送信手段等として機能する。なお、この情報処理プログラムは、例えば、ネットワーク８に接続された他のサーバから、通信部２４を介して、制御部２１の内部メモリにダウンロードされるようにしてもよい。また、この情報処理プログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、制御部２１の内部メモリに読み込まれるようにしてもよい。
【００７４】
（センタサーバ１０の具体的動作について）
以上のように構成されたセンタサーバ１０の動作を図面を参照して具体的に説明する。図１３はセンタサーバ１０のメイン処理フローチャートである。なお、以下の各処理は、センタサーバ１０の制御部２１が上述した各手段等として機能することによって実行されるものである。なお、センタサーバ１０は、配信サーバ１などからコンテンツデータの取得要求に対してコンテンツデータの送信処理なども行うがここでは省略している。
【００７５】
センタサーバ１０においてメイン電源スイッチ（図示せず）がＯＮされたときやリセットスイッチ（図示せず）が操作されたとき、制御部２１のＣＰＵは内部メモリに記憶した情報処理プログラムを実行状態として、制御部２１としての機能を動作状態にして、処理を開始する。
【００７６】
処理を開始すると、制御部２１は、コンテンツ投入指示を受けたか否かを判定する（ステップＳ６０）。この処理において、制御部２１は、例えば、操作部２５への入力操作によってコンテンツデータの投入指示があったときに、コンテンツ投入指示を受けたと判定する。
【００７７】
コンテンツ投入指示があったと判定すると（ステップＳ６０：Ｙｅｓ）、制御部２１は、データベース２３から配信サーバ１の配信実績情報等を読み出し（ステップＳ６１）、配信サーバ１の配信実績からダウンロード指示書を作成する（ステップＳ６２）。すなわち、制御部２１は、配信実績情報から配信能力が高い配信サーバ１から順にグループ番号の小さいグループを割り当てていき、配信サーバ１のサーバＩＤとグループ番号とを関連づけた情報と、分割コンテンツデータのコンテンツＩＤ、配信開始時間の情報などを含むダウンロード指示書を生成する。このように、制御部２１は、ダウンロード情報を生成するダウンロード情報生成手段として機能する。このダウンロード情報には、各配信サーバ１の配信能力の情報に基づき、複数の配信サーバ１が複数のグループに分けられて、グループごとにコンテンツデータの取得タイミングを異ならせる情報を含んでいる。また、制御部２１は、ダウンロード情報生成手段として、配信能力の高い配信サーバ１ほどコンテンツデータの取得タイミングが早くなるようにダウンロード情報を生成する。なお、制御部２１は、ダウンロード情報生成手段として、配信能力が所定値以上か未満かによって配信サーバ１を各グループに振り分けてダウンロード情報を生成することもできる。例えば、制御部２１は、配信能力が所定値未満の配信サーバ１よりも配信能力が所定値以上の配信サーバ１の方がコンテンツデータの取得タイミングが早くなるようにダウンロード情報を生成する。
【００７８】
ダウンロード指示書の作成を終了すると、制御部２１は、オーバーレイネットワーク９にダウンロード指示書を投入する（ステップＳ６３）。すなわち、制御部２１は、オーバーレイネットワーク９の一部の配信サーバ１をランダムに選択して、選択した配信サーバ１へ通信部２４を介してダウンロード指示書を送信する。このように、制御部２１は、ダウンロード指示書（ダウンロード情報）を配信サーバ１へ送信するダウンロード情報送信手段として機能する。
【００７９】
その後、制御部２１は、コンテンツデータを通信部２４を介してオーバーレイネットワーク９に投入する（ステップＳ６４）。この処理において、制御部２１は、通信部２４を介してオーバーレイネットワーク９の一部の配信サーバ１をランダムに選択し、ステップＳ６０でコンテンツ投入指示を受けたコンテンツデータを構成する各分割コンテンツデータをそれぞれ選択した配信サーバ１へ通信部２４を介して送信する。
【００８０】
ステップＳ６０において、コンテンツ投入指示がないと判定すると（ステップＳ６０：Ｎｏ）、制御部２１は、通信部２４を介して配信サーバ１から配信実績情報を受信したか否かを判定する（ステップＳ６５）。この処理において、配信実績情報を受信したと判定すると（ステップＳ６５：Ｙｅｓ）、制御部２１は、受信した配信実績情報を送信元の配信サーバ１のサーバＩＤに関連づけてデータベース２３へ記憶し、配信実績テーブルを更新する（ステップＳ６６）。このように、制御部２１は、各配信サーバ１のコンテンツデータの配信能力の情報を取得する配信能力取得手段として機能する。
【００８１】
ステップＳ６４，Ｓ６６の処理が終了したとき、又は、ステップＳ６５において配信実績情報を受信していないと判定したとき（ステップＳ６５：Ｎｏ）、制御部２１は、サーバ処理の終了指示を検出したかを判定する（ステップＳ６７）。例えば、自センタサーバ１０の電源がＯＦＦ状態へ移行したとき、制御部２１は、終了指示を検知する。終了指示を検知したと判定すると（ステップＳ６７：Ｙｅｓ）、制御部２１は、サーバ処理を終了し、一方、終了指示を検知していないと判定すると（ステップＳ６７：Ｎｏ）、制御部２１は、ステップＳ６０からの処理を繰り返す。
【００８２】
［３．その他の実施形態］
上述の実施形態においては、ルートノードの制御部１１は、リクエスタのグループ番号とは無関係にコンテンツホルダの所在情報を所定数分だけリクエスタへ送信して知らせるようにしているが、これに限られない。例えば、リクエスタの制御部１１は、探索メッセージに自配信サーバ１のグループ番号を含ませる。さらに、ルートノードの制御部１１は、リクエスタのグループ番号よりも一つ小さい番号のコンテンツホルダの所在情報を所定数分だけルートノードの記憶部１２から読み出し、通信部１３を介してコンテンツホルダの所在情報をリクエスタへ通知する。なお、この「所定数」は、予め規定された２以上の数であり、例えば、「３」である。コンテンツホルダの所在情報を１つだけ知らせるようにすると、このコンテンツホルダからコンテンツデータを取得できないとき、リクエスタは再度探索メッセージを送信する必要がある。しかし、コンテンツホルダの所在情報を複数知らせるので、リクエスタが再度探索メッセージを送信するのを抑制できる。ダウンロード指示書で指定された自配信サーバ１のグループ番号がｍ＋１（１＜ｍ≦ｎ−１）番であるとき、ダウンロード指示書に基づいて第ｍ＋１番目に遅い取得タイミングで、第ｍグループの配信サーバ１へコンテンツデータの取得要求を行うことができる。従って、より迅速かつ効率的にコンテンツデータの配信が可能となる。
【００８３】
ルートノードにおいて、リクエスタのグループ番号よりも一つ小さい番号のコンテンツホルダの所在情報が記憶部１２に上記所定数分だけ記憶されていないときがある。このとき、ルートノードの制御部１１は、記憶されている分の所在情報に加え、その不足分のコンテンツホルダの所在情報を選択する。具体的には、ルートノード１１の制御部１１は、リクエスタのグループ番号よりも２以上小さい番号のコンテンツホルダのうち最も小さい番号のコンテンツホルダから順に選択する。そして、ルートノードの制御部１１は、選択したコンテンツホルダの所在情報を通信部１３を介してリクエスタへ通知する。この場合、リクエスタの制御部１１が最もグループ番号の小さいグループに属するコンテンツホルダから順にコンテンツデータの取得要求を行う。
【００８４】
なお、リクエスタのグループ番号よりも一つ小さい番号のコンテンツホルダの所在情報をリクエスタへ通知することに代えて、ルートノードの制御部１１は、複数のコンテンツホルダの所在情報とグループ番号とをリクエスタに通知してもよい。この場合、例えば、リクエスタの制御部１１は、自配信サーバ１のグループ番号よりも一つ小さい番号のコンテンツホルダを選択してコンテンツデータの取得要求を行う。
【００８５】
また、上述においては、ダウンロード指示書に基づいてコンテンツデータを同時期に配信サーバ１に配信する例を説明したが、配信サーバ１以外のノード装置にも適用可能である。例えば、コンテンツ配信システムＳを構成する端末装置のすべてに同じコンテンツデータを配信するような場合には、同様な処理を行うことで迅速かつ効率的にコンテンツデータを端末装置へ配信することができる。また、情報処理装置として、センタサーバ１０を設けた例を説明したが、配信サーバ１や端末装置などにこのセンタサーバ１０の機能を持たせるようにしてもよい。
【００８６】
また、上述においては、ダウンロード指示書をセンタサーバ１０から一部の配信サーバ１に送信し、その後、配信サーバ１間で送受信させることとしたが、配信サーバ１でダウンロード指示書が取得できればよく、例えば、センタサーバ１０から全ての配信サーバ１へダウンロード指示書を送信するようにしてもよい。
【００８７】
また、上述においては、受信速度や送信速度を配信実績情報としたが、これに限られない。例えば、リクエスタがコンテンツホルダからの分割コンテンツデータを取得するときの受信時間、或いは、コンテンツホルダがリクエスタへ分割コンテンツデータを送信するときの送信時間などを配信実績情報とすることもできる。なお、受信時間や送信時間を配信実績情報とする場合には、受信時間や送信時間が短いほど、「配信能力」が高いことになる。
【００８８】
また、センタサーバ１０は、配信実績情報に基づいて各配信サーバ１の配信能力を判定するようにしているが、これに限られない。例えば、各配信サーバ１が所定タイミングで図示しない計測用サーバへ所定容量のデータを送信し、この送信速度又は送信時間を計測用サーバ又は配信サーバ１の制御部１１で計測する。配信サーバ１の制御部１１は、送信速度又は送信時間の情報を配信能力情報としてセンタサーバ１０へ送信する。センタサーバ１０はこの配信能力情報に応じて、各配信サーバ１の配信能力を判定する。
【００８９】
また、上述においては、第１番目のグループに属する配信サーバ１は、センタサーバ１０からコンテンツデータを投入されるため、ダウンロード指示書に基づいたコンテンツデータの取得は行わないが、これに限れない。例えば、センタサーバ１０は、任意の配信サーバ１にコンテンツデータを投入し、第１番目のグループに属する配信サーバ１からダウンロード指示書に基づいたコンテンツデータの取得を行うようにしてもよい。
【符号の説明】
【００９０】
１  配信サーバ
１０  センタサーバ
１１  配信サーバの制御部
１２  配信サーバの記憶部
２１  センタサーバの制御部
２２  センタサーバの記憶部
【図１】
2011002932.tif 000003
【図２】
2011002932.tif 000004
【図３】
2011002932.tif 000005
【図４】
2011002932.tif 000006
【図５】
2011002932.tif 000007
【図６】
2011002932.tif 000008
【図７】
2011002932.tif 000009
【図８】
2011002932.tif 000010
【図９】
2011002932.tif 000011
【図１０】
2011002932.tif 000012
【図１１】
2011002932.tif 000013
【図１２】
2011002932.tif 000014
【図１３】
2011002932.tif 000015