(57)【要約】【課題】コンテンツの配信中に発生しうる負荷を考慮して配信元となるピアを決定できるコンテンツ配信システムを提供する。【解決手段】ピア２ＤがコンテンツＣ１をダウンロードするとき、ピア２Ｄはセンタサーバ１にコンテンツ情報リスト１２を要求する（１）。センタサーバ１は、コンテンツ情報リスト１２を更新し（２）、ピア２Ｄに通知する（３）。ピア２Ｄはコンテンツ情報リスト１２を用いて、コンテンツＣ１の配信元候補として、ピア２Ａ〜２Ｃを特定する。ピア２Ｄはさらに、各ピア２Ａ〜２Ｃに現在かかる負荷（実働負荷）及び配信実行中に各ピア２Ａ〜２Ｃに発生する可能性のある負荷（予測負荷）を比較し、実働負荷及び予測負荷が最も低いピア２Ｃを配信元に決定する。ピア２Ｄは決定されたピア２ＣからコンテンツＣ１をダウンロードする。【選択図】図６
2007087281.tif 000002
【特許請求の範囲】
【請求項１】
互いに接続される複数のピアと、前記複数のピアに接続されるセンタサーバとを備えたコンテンツ配信システムであって、
前記センタサーバは、
前記複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、前記各ピアの動作履歴とを記憶するためのサーバ記憶手段と、
前記動作履歴に基づいて前記ピアにかかる負荷を予測する負荷予測手段とを備え、
前記センタサーバ又は複数のピアの各々は、
前記コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する特定手段と、
前記特定された複数のピアの前記予測された負荷に基づいて、前記特定された複数のピアの中から１つのピアを決定する配信元決定手段とを備え、
前記複数のピアの各々は、
前記複数のコンテンツを記憶するためのピア記憶手段と、
前記決定された１つのピアから前記所望のコンテンツをダウンロードする手段とを備えることを特徴とするコンテンツ配信システム。
【請求項２】
請求項１に記載のコンテンツ配信システムであって、
前記サーバ記憶手段はさらに、
前記各ピアにかかる負荷の予測値である予測負荷に関する予測負荷情報を記憶し、
前記負荷予測手段は、
前記動作履歴を解析する解析手段と、
解析結果に基づいて各ピアの予測負荷を決定する予測負荷決定手段とを備え、
前記センタサーバはさらに、
前記決定された予測負荷に基づいて前記予測負荷情報を前記サーバ記憶手段に登録する登録手段を備え、
前記配信元決定手段は、前記予測負荷情報から前記特定された複数のピアの予測負荷を取得し、取得した予測負荷に基づいて前記１つのピアを決定することを特徴とするコンテンツ配信システム。
【請求項３】
請求項２に記載のコンテンツ配信システムであって、
前記複数のピアの各々はさらに、
自身の動作状況を前記センタサーバに通知する手段を備え、
前記センタサーバはさらに、
前記各ピアから通知された動作状況に基づいて前記各ピアの動作履歴を更新する履歴更新手段を備えることを特徴とするコンテンツ配信システム。
【請求項４】
請求項２に記載のコンテンツ配信システムであって、
前記予測負荷決定手段は、前記解析結果に基づいて各時間帯における各ピアの予測負荷を決定し、
前記配信元決定手段は、前記予測負荷情報内の前記特定されたピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得した予測負荷に基づいて前記１つのピアを決定することを特徴とするコンテンツ配信システム。
【請求項５】
請求項４に記載のコンテンツ配信システムであって、
前記解析手段は、前記動作履歴を解析して各時間帯で各ピアが再生を実行する再生確率を求め、
前記予測負荷決定手段は、前記再生確率に基づいて前記予測負荷を決定することを特徴とするコンテンツ配信システム。
【請求項６】
請求項４に記載のコンテンツ配信システムであって、
前記予測負荷決定手段は、前記解析結果に基づいて各曜日の各時間帯の予測負荷を決定し、
前記配信元決定手段は、前記予測負荷情報内の前記特定されたピアの予測負荷のうち現在の曜日と現在時刻を含む時間帯とに対応する予測負荷を取得することを特徴とするコンテンツ配信システム。
【請求項７】
請求項１に記載のコンテンツ配信システムであって、
前記複数のピアの各々はさらに、
自身の動作状況を前記センタサーバに通知する手段を備え、
前記センタサーバはさらに、
前記通知された動作状況に基づいて、現在ピアにかかっている実働負荷を決定する実働負荷決定手段を備え、
前記配信元決定手段は、前記特定された複数のピアの前記予測された負荷と前記実働負荷とに基づいて、前記１つのピアを決定することを特徴とするコンテンツ配信システム。
【請求項８】
互いに接続される複数のピアと、前記複数のピアに接続されるセンタサーバとを備えたコンテンツ配信システムであって、
前記センタサーバは、
前記複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、各時間帯で前記各ピアにかかる予測負荷に関する予測負荷情報とを記憶するためのサーバ記憶手段を備え、
前記センタサーバ又は前記複数のピアの各々は、
前記コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する特定手段と、
前記予測負荷情報に基づいて、前記特定された複数のピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得された予測負荷に基づいて前記特定された複数のピアの中から１つのピアを決定する配信元決定手段とを備え、
前記複数のピアの各々は、
前記複数のコンテンツを記憶するためのピア記憶手段と、
前記決定された１つのピアから前記所望のコンテンツをダウンロードする手段とを備えることを特徴とするコンテンツ配信システム。
【請求項９】
互いに接続される複数のピアと、前記複数のピアに接続されるセンタサーバとを備えたコンテンツ配信システムによるコンテンツ配信方法であって、
前記複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、前記各ピアの動作履歴とを前記センタサーバに記憶するステップと、
前記動作履歴に基づいて前記ピアにかかる負荷を予測するステップと、
前記コンテンツ情報に基づいて、前記ピアに配信する所望のコンテンツを保存している複数の当該他のピアを特定するステップと、
前記特定された前記当該他のピアの前記予測された負荷に基づいて、前記特定された複数の当該他のピアの中から１つのピアを決定するステップと、
前記決定された１つのピアから配信先のピアに前記所望のコンテンツを配信するステップとを備えることを特徴とするコンテンツ配信方法。
【請求項１０】
請求項９に記載のコンテンツ配信方法であってさらに、
前記各ピアの動作状況を前記各ピアから前記センタサーバに通知するステップと、
前記通知された動作状況に基づいて、現在ピアにかかっている実働負荷を決定するステップとを備え、
前記１つのピアを決定するステップは、前記特定された複数の当該他のピアの予測された負荷と実働負荷とに基づいて、前記１つのピアを決定することを特徴とするコンテンツ配信方法。
【請求項１１】
請求項１〜請求項８のいずれか１項に記載のコンテンツ配信システムに使用されるセンタサーバ。
【請求項１２】
請求項１〜請求項８いずれか１項に記載のコンテンツ配信システムに使用されるピア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ配信システム、本システムに使用されるセンタサーバ及びピア、並びにコンテンツ配信方法に関し、さらに詳しくは、互いに接続された複数のピアと、複数のピアに接続されたセンタサーバとを備えたコンテンツ配信システム、本システムに使用されるセンタサーバ及びピア、並びにコンテンツ配信方法に関する。
【背景技術】
【０００２】
ピアツーピア型コンテンツ配信システムは、相互に接続された複数のピアを含む。各ピアは他のピアからコンテンツをダウンロードするとともに、他のピアから要求されたコンテンツをそのピアに返信する。ピアツーピア型コンテンツ配信システムでは、このようにコンテンツがピア間で配信され、ダウンロード負荷が各ピアに分散されるため、クライアントサーバ型コンテンツ配信システムに比べ、はるかに多くのピア（クライアント）にコンテンツを配信することができる。
【０００３】
しかしながら、コンテンツの配信元となるピアは、コンテンツの配信だけでなく、コンテンツの再生やダウンロードも行う。そのため、コンテンツの再生やダウンロードを実行中のピアにコンテンツの配信を要求すれば、そのピアの負荷が過剰になる。したがって、コンテンツをダウンロードする場合、負荷の低いピアを配信元とする方が好ましい。
【０００４】
上記課題を解決するために、本出願人は特願２００４−２５１５４１号（下記関連出願１）において、配信元となるピアを決定する時点での各ピアの負荷状況を比較して最も負荷の低いピアを配信元に特定するコンテンツ配信システムを提案している。このシステムにより、コンテンツの配信開始時に負荷の低いピアを配信元のピアに選ぶことができる。
【０００５】
しかしながら、配信元となるピアは、コンテンツの配信中にコンテンツを再生したりダウンロードしたりする場合がある。この場合、配信元のピアの負荷は、コンテンツの配信開始時では低いものの、配信途中で高くなる。配信中に負荷が過剰に高くなれば、コンテンツの配信処理が中断される可能性がある。
【特許文献１】特開平９−１３５２５９号公報
【０００６】
［関連出願１］特願２００４−２５１５４１号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、コンテンツの配信中に発生しうる負荷を考慮して配信元となるピアを決定できるコンテンツ配信システムを提供することである。
【課題を解決するための手段及び発明の効果】
【０００８】
本発明によるコンテンツ配信システムは、互いに接続される複数のピアと、複数のピアに接続されるセンタサーバとを備える。センタサーバは、サーバ記憶手段と、負荷予測手段とを備える。サーバ記憶手段は、複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、各ピアの動作履歴とを記憶する。負荷予測手段は、動作履歴に基づいてピアにかかる負荷を予測する。センタサーバ又は複数のピアの各々は、コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する特定手段と、配信元決定手段とを備える。配信元決定手段は、特定された複数のピアの予測された負荷に基づいて、特定された複数のピアの中から１つのピアを決定する。複数のピアの各々は、複数のコンテンツを記憶するためのピア記憶手段と、配信元決定手段により決定された１つのピアから所望のコンテンツをダウンロードする手段とを備える。ここで、特定手段及び配信元決定手段のうちの一方がセンタサーバに含まれ、他方が各ピアに含まれてもよい。各ピアが特定手段を有し、センタサーバからコンテンツ情報を取得して所望のコンテンツを保有している複数の当該他のピアを特定してもよい。また、各ピアが配信元決定手段を有し、負荷予測手段により予測された負荷に基づいて配信元となる１つのピアを決定してもよい。
【０００９】
本発明によるコンテンツ配信システムは、ピアの動作履歴からピアにかかる負荷を予測し、予測した負荷に基づいて配信元となるピアを決定する。動作履歴に基づいて負荷を予測することにより、コンテンツの配信中に発生し得る負荷を考慮して配信元のピアを決定できる。
【００１０】
好ましくは、サーバ記憶手段はさらに、各ピアにかかる負荷の予測値である予測負荷に関する予測負荷情報を記憶する。負荷予測手段は、解析手段と予測負荷決定手段とを備える。解析手段は動作履歴を解析する。予測負荷決定手段は、解析結果に基づいて各ピアの予測負荷を決定する。センタサーバはさらに、登録手段を備える。登録手段は、決定された予測負荷に基づいて予測負荷情報をサーバ記憶手段に記憶する。配信元決定手段は、予測負荷情報から特定された複数のピアの予測負荷を取得し、取得した予測負荷に基づいて１つのピアを決定する。
【００１１】
この場合、センタサーバは各ピアの予測負荷に関する予測負荷情報を保存し、その予測負荷情報を利用して配信元となるピアを決定できる。配信元を決定するときに負荷予測手段により負荷を予測するのではなく、予め予測負荷を保存しているため、配信元を決定するときにより速く配信元となる１つのピアを決定できる。予測負荷情報はセンタサーバから各ピアへ送信されてもよい。たとえば、各ピアが配信元決定手段を備え、センタサーバから予測負荷情報を取得して配信元となる１つのピアを決定してもよい。また、センタサーバが配信元決定手段を備え、予測負荷情報に基づいて配信元となる１つのピアを決定し、その結果を所望のコンテンツをダウンロードするピアに通知してもよい。
【００１２】
好ましくは、複数のピアの各々はさらに、自身の動作状況をセンタサーバに通知する手段を備える。センタサーバはさらに、各ピアから通知された動作状況に基づいて各ピアの動作履歴を更新する。
【００１３】
この場合、各ピアは動作状況を通知し、センタサーバは各ピアの動作履歴を更新する。そのため、センタサーバは更新された動作履歴を用いて各ピアの予測負荷を決定し、予測負荷情報を更新できる。そのため、ピアの過去の動作実績を反映した予測負荷を得ることができる。
【００１４】
好ましくは、予測負荷決定手段は、解析結果に基づいて各時間帯における各ピアの予測負荷を決定し、配信元決定手段は、予測負荷情報内の特定されたピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得した予測負荷に基づいて１つのピアを決定する。
【００１５】
この場合、たとえば１時間ごと、３０分ごと、１０分ごと等の時間帯ごとに各ピアの予測負荷が決定され、現在時刻を含む時間帯の予測負荷を用いて配信元となるピアを決定する。ユーザがピアを利用する時間帯はある程度パターン化されるため、ピアにかかる負荷も時間帯ごとにある程度パターン化される。そのため、動作履歴を解析して各時間帯での予測負荷を決定すれば、ピアの動作傾向を反映した予測結果を得ることができる。
【００１６】
好ましくは、解析手段は、動作履歴を解析して各時間帯で各ピアが再生を実行する再生確率を求め、予測負荷決定手段は、再生確率に基づいて予測負荷を決定する。
【００１７】
ピアの動作実績のうち、コンテンツの再生実績が最もパターン化される。利用者がピアを用いてコンテンツを視聴する時間帯は利用者の生活パターンに対応してパターン化されやすいからである。したがって、各時間帯での再生確率に基づいて予測負荷を決定することにより、予測の精度が上がる。
【００１８】
好ましくは、予測負荷決定手段は、各曜日の各時間帯の予測負荷を決定し、配信元決定手段は、予測負荷情報から現在の曜日と現在時刻を含む時間帯とに対応する予測負荷を取得する。
【００１９】
ピアの動作状況は、利用者の生活パターンに対応して各時間帯でパターン化されるだけでなく、各曜日についてもパターン化される。たとえば、平日は夜に稼働する傾向にあり、休日は昼間に稼働する傾向があるといったように、ピアの動作状況は曜日に基づいてもパターン化される。したがって、各曜日の各時間帯で予測負荷を決定することにより、予測の精度が上がる。
【００２０】
好ましくは、複数のピアの各々はさらに、自身の動作状況をセンタサーバに通知する手段を備え、センタサーバはさらに、実働負荷決定手段を備える。実働負荷決定手段は、通知された動作状況に基づいて、現在ピアにかかっている実働負荷を決定する。配信元決定手段は、特定された複数のピアの予測された負荷と実働負荷とに基づいて、１つのピアを決定する。
【００２１】
この場合、実働負荷により現在のピアにかかっている負荷を把握し、さらに予測された負荷により配信中にピアに発生する可能性のある負荷を予測して、配信元のピアを決定できる。
【００２２】
本発明によるコンテンツ配信システムは、互いに接続される複数のピアと、複数のピアに接続されるセンタサーバとを備える。センタサーバは、サーバ記憶手段を備える。サーバ記憶手段は、複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、各時間帯で各ピアにかかる予測負荷に関する予測負荷情報とを記憶する。センタサーバ又は複数のピアの各々は、特定手段と配信元決定手段とを備える。特定手段は、コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する。配信元決定手段は、予測負荷情報に基づいて、特定されたピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得された予測負荷に基づいて特定されたピアの中から１つのピアを決定する。複数のピアの各々は、複数のコンテンツを記憶するためのピア記憶手段と、決定された１つのピアから所望のコンテンツをダウンロードする手段とを備える。ここで、予測負荷はたとえばセンタサーバの管理者により入力されてもよいし、センタサーバ自身が計算等により予測負荷を求め、予測負荷情報をサーバ記憶手段に登録してもよい。各ピアは特定手段を有し、センタサーバからコンテンツ情報を取得して所望のコンテンツを保有している複数の他のピアを特定してもよい。各ピアが配信元決定手段を有し、センタサーバから予測負荷情報を取得して配信元となる１つのピアを決定してもよい。
【００２３】
本発明によるコンテンツ配信システムは、各時間帯で各ピアにかかる負荷（予測負荷）を予め予測負荷情報として保有し、現在時刻を含む時間帯の予測負荷に基づいて配信元となるピアを決定する。そのため、配信中にピアに発生し得る負荷を考慮して配信元となるピアを決定できる。
【００２４】
本発明によるコンテンツ配信方法は、上記コンテンツ配信システムの動作方法である。また、本発明によるセンタサーバは、上記コンテンツ配信システムに使用されるサーバであり、本発明によるピアは、上記コンテンツ配信システムに使用されるピアである。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【００２６】
［全体構成］
図１を参照して、コンテンツ配信システムは、センタサーバ（コンピュータ）１と、複数のピア（コンピュータ）２とを備える。これらはインターネット３で相互に接続されるが、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、その他のコンピュータネットワーク経由で相互に接続されてもよい。
【００２７】
特に限定されないが、通常、センタサーバ１はサービスプロバイダにより運用され、ピア２は一般利用者により操作される。センタサーバ１は、各ピア２によるコンテンツの配信を管理するために、各ピア２に記憶されたコンテンツの詳細に関する情報を収集し、収集した情報に基づいてコンテンツ情報リストを作成する。センタサーバ１は各ピア２にコンテンツ情報リストを通知する。
【００２８】
各ピア２は、自身が保有しているコンテンツに関する情報をセンタサーバ１に通知するとともに、コンテンツ情報リストを取得する。したがって、各ピア２はセンタサーバ１に対してクライアントとしても機能する。各ピア２は、センタサーバ１から取得したコンテンツ情報リストに基づいて、所望のコンテンツを他のピア２からダウンロードする。
【００２９】
［センタサーバの構成］
センタサーバ（コンピュータ）１は、サーバデータベース１０と、データベースアプリケーション１４とを備える。これらは図示しないハードディスクに記憶される。
【００３０】
サーバデータベース１０は、ピア情報リスト１１と、コンテンツ情報リスト１２と、予測負荷情報データベース１３と、履歴データベース１５と、実働負荷情報データベース１６とを備える。
【００３１】
ピア情報リスト１１は、各ピアに関する情報（以下、ピア情報という）を含む。ピア情報リスト１１の構成を図２に示す。各ピア情報ＰＩは、ピア２を特定するためのピアＩＤと、そのピア２の利用者の氏名と、ピア２の接続回線の品種（ＦＴＴＨ、ＡＤＳＬ、ＣＡＢＬＥ等）と、そのピア２の予測負荷情報ＰＬ及び実働負荷とを含む。
【００３２】
履歴データベース１５は、各ピア２の動作履歴（以下、ピア動作履歴という）を記憶する。ピア動作履歴には、コンテンツの再生、ダウンロード、配信といった動作の履歴が登録される。ピア動作履歴は、各ピア２から通知される動作状況（以下、ピア動作状況という）に基づいて更新される。ピア動作状況は、各ピア２が動作を開始又は終了するごとに送信される。たとえば、ピア２がコンテンツの再生、ダウンロード、配信を開始及び終了したときに送信される。
【００３３】
予測負荷情報データベース１３は、各ピア２の予測負荷情報ＰＬを有する。予測負荷情報ＰＬには、ピア２にかかる負荷の予測値である予測負荷が時間帯ごとに登録される。予測負荷情報ＰＬを図３に示す。予測負荷情報ＰＬ内の各レコードは、曜日を登録するためのフィールドと、時間帯を登録するためのフィールドと、予測負荷を登録するためのフィールドとを含む。要するに、予測負荷情報ＰＬは、各ピアの各曜日の各時間帯における予測負荷を示す情報である。たとえば、図３の予測負荷情報ＰＬ１に対応するピア２は、日曜日の０時〜３時の時間帯では負荷が「０」と予測され、１８時〜２１時では負荷が「２０」と予測されている。なお、上述のとおり、予測負荷情報ＰＬは対応するピア２のピア情報ＰＩにも登録される。
【００３４】
予測負荷は、ピア動作履歴に基づいて決定される。つまり、ピア２の過去の動作実績に基づいて各時間帯でのピア２の動作状況を解析し、その解析結果に基づいて予測負荷が決定される。たとえば、過去の実績において、平日の夜にピア２が常時稼働していれば、その時間帯の予測負荷は高くなり、平日の昼間にピア２がほとんど稼働していなければ、その時間帯の予測負荷は低くなる。
【００３５】
ユーザがピア２を利用する時間帯は、そのユーザの生活パターン対応してある程度パターン化される。そのため、ピア動作履歴に基づいて決定される各時間帯の予測負荷はある程度パターン化される。そのため、予測負荷により各時間帯でのピア２の動作を予測できる。
【００３６】
実働負荷情報データベース１６は、各ピア２に現在かかっている負荷（以下、実働負荷という）を含む。実働負荷は、ピア動作状況に基づいて算出される。なお、上述のとおり、実働負荷は対応するピアのピア情報ＰＩにも登録される。
【００３７】
コンテンツ情報リスト１２は、図４に示すように複数のコンテンツ情報ＣＩを含む。コンテンツ情報ＣＩは、コンテンツを特定するためのコンテンツＩＤと、コンテンツのタイトルと、公開開始日時と、公開終了日時とを含む。コンテンツ情報ＣＩはさらに、そのコンテンツの配信元となるピア２に関する情報（以下、配信元情報ＤＩという）を列挙した配信元リストを含む。コンテンツの配信元となるピア２とは、要するにそのコンテンツを保有するピア２であり、配信元情報ＤＩはコンテンツの所在を示す情報である。
【００３８】
配信元情報ＤＩは、図５に示すように、配信元となるピアのピアＩＤと、配信するコンテンツのコンテンツＩＤとを含む。配信元情報ＤＩはさらに、ピアＩＤのピア２の実働負荷と予測負荷とを含む。予測負荷は予測負荷情報ＰＬ内から取得され、配信元情報ＤＩに登録される。配信元情報ＤＩ内の実働負荷及び予測負荷は、配信元となるピア２を決定するときに利用される。
【００３９】
データベースアプリケーション１４は、各ピア２からピアに関する情報（ピアＩＤ、ピアの利用者の氏名等）を受け付け、受け付けた情報に基づいてピア情報ＰＩを作成し、ピア情報リスト１１に登録する。また、ピア２が新たに登録したコンテンツに関する情報を受け付け、コンテンツ情報リスト１２に登録する。
【００４０】
データベースアプリケーション１４はさらに、各ピア２からピア動作状況を受け付け、ピア動作状況に基づいてピア２の実働負荷を算出し、実働負荷情報データベース１６に登録する。データベースアプリケーション１４はまた、受け付けたピア動作状況に基づいてピア動作履歴を更新する。データベースアプリケーション１４はまた、ピア動作履歴に基づいて、予測負荷情報ＰＬを更新する。
【００４１】
データベースアプリケーション１４はさらに、ピア２から送信されたコンテンツ情報リストの送信要求に応じて、コンテンツ情報リスト１２を更新してピア２に送信する。
【００４２】
［ピアの構成］
ピア２は、複数のコンテンツ（ファイル）を蓄積するピアデータベース２１と、受信アプリケーション（プログラム）２２と、配信アプリケーション（プログラム）２３とを含む。これらは、図示しないハードディスクに記憶される。
【００４３】
受信アプリケーション２２は、センタサーバ１にコンテンツ情報リスト１２を要求し、受信する。また、コンテンツ情報リスト１２内の実働負荷及び予測負荷に基づいて所望のコンテンツの配信元となる他のピア２を決定し、決定したピア２から所望のコンテンツをダウンロードする。受信アプリケーション２２はまた、ダウンロードしたコンテンツをピアデータベース２１に記憶する。
【００４４】
配信アプリケーション２３は、他のピア２からのコンテンツの配信要求に応答して自身が蓄積するコンテンツを配信する。
【００４５】
［動作］
［動作概要］
ピア２が所望のコンテンツの配信を他のピア２に要求する場合、ピア２は実働負荷及び予測負荷が最も低いピア２を配信元に決定する。
【００４６】
図６を参照して、複数のピア２のうち、ピア２Ａ〜２Ｃが同じ内容のコンテンツＣ１を保有しており、ピア２Ｄは所望のコンテンツＣ１をダウンロードすると仮定する。このとき、ピア２Ｄはまず、センタサーバ１にコンテンツ情報リスト１２を要求する（１）。センタサーバ１は、ピア２Ｄからの要求を受け、コンテンツ情報リスト１２を更新する（２）。センタサーバ１は、ピア動作状況を受けて随時更新される実働負荷情報データベース１６と、所定期間ごとに更新される予測負荷情報データベース１３とに基づいて、コンテンツ情報リスト１２内のピア２の配信元情報ＤＩを更新する。具体的には、各配信元情報ＤＩ内の実働負荷を最新の実働負荷に更新し、予想負荷を現在時刻（つまりコンテンツ情報リスト１２の更新時）を含む時間帯の予想負荷に更新する。
【００４７】
センタサーバ１は更新されたコンテンツ情報リスト１２をピア２Ｄに通知する（３）。ピア２Ｄはコンテンツ情報リスト１２を用いて、コンテンツＣ１の配信元となりうるピア２として、ピア２Ａ〜２Ｃを選択する。
【００４８】
ピア２Ｄはさらに、選択されたピア２Ａ〜２Ｃのうち、１つのピア２を配信元に決定する（４）。ピア２Ｄはまず、各ピア２Ａ〜２Ｃに現在かかる負荷（つまり実働負荷）を比較し、実働負荷が最も低いピア２を選択する。ここでは、ピア２Ｂ及び２Ｃの実働負荷がともに「０」で最も低い。そのため、ピア２Ｄはピア２Ｂ及びピア２Ｃを選択する。続いて、ピア２Ｄは、ピア２Ｂ及び２Ｃが配信実行中にピア２Ｂ及び２Ｃに発生する可能性のある負荷（つまり予測負荷）を比較し、予測負荷が最も低いピア２を選択する。図６では、ピア２Ｃの予測負荷が「１０」で最も低い。したがって、ピア２Ｄは配信元をピア２Ｃに決定する。
【００４９】
ピア２Ｄは配信元に決定されたピア２ＣにコンテンツＣ１の配信を要求し、コンテンツＣ１をダウンロードする（５）。
【００５０】
以上の動作により、ピア２Ｄは、各ピア２Ａ〜２Ｃの実働負荷及び予測負荷に基づいて、配信元となるピア２を決定する。実働負荷は現時点での各ピア２にかかる負荷である。そのため、実働負荷のみに基づいて配信元となるピア２を決定すれば、配信中に配信元のピア２がコンテンツの再生を実施し、負荷が過剰になる場合がある。この場合、配信が中断される可能性もある。本実施の形態では、実働負荷だけでなく予測負荷に基づいて配信元となるピア２を決定する。そのため、配信中に発生する可能性のある負荷も予測した上で配信元のピア２を決定できる。
【００５１】
なお、上述の例では、実働負荷及び予測負荷に基づいて配信元のピア２を決定したが、予測負荷のみに基づいて配信元を決定してもよい。この場合ピア２Ｄは、各ピア２Ａ〜２Ｃの配信元情報ＤＩを参照し、予測負荷が最も低いピア２を選択する。図６ではピア２Ｃの予想負荷が「１０」で最も低いため、ピア２Ｄはピア２Ｃを配信元に決定する。
【００５２】
以下、コンテンツ配信システムの動作の詳細を説明する。
【００５３】
［センタサーバの動作］
センタサーバ１は、ピア２から送信されるピア動作状況を受け付け、ピア動作履歴を更新し、更新されたピア動作履歴を用いて予測負荷情報ＰＬを更新する（予測負荷情報更新処理）。センタサーバ１はまた、ピア動作状況に基づいて実働負荷を更新する（実働負荷情報更新処理）。
【００５４】
センタサーバ１はさらに、ピア２からのコンテンツ情報リスト要求に応答して、コンテンツ情報リスト１２を更新し、更新したコンテンツ情報リスト１２を要求元のピア２に送信する（コンテンツ情報リスト更新処理）。
【００５５】
以下、予測負荷情報更新処理、実働負荷情報更新処理及びコンテンツ情報リスト更新処理について説明する。
【００５６】
［予測負荷情報更新処理］
データベースアプリケーション１４は、各ピア２から通知されるピア動作状況に基づいてピア動作履歴を更新する。これにより、ピア２の過去の動作実績が蓄積される。
【００５７】
データベースアプリケーション１４はさらに、ピア動作履歴を解析して各曜日の各時間帯の予測負荷を決定し、予測負荷情報を更新する（予測負荷情報更新処理）。予測負荷情報更新処理は定期的に実行される。
【００５８】
図７を参照して、データベースアプリケーション１４はまず、ピア情報番号ｊ＝０とする（Ｓ５１）。ピア情報リスト１１に登録されたピア情報ＰＩの数がピア情報番号ｊよりも大きいことを確認した後（Ｓ５２でＹＥＳ）、ピア情報ＰＩｊ（ＰＩ０）のピア２（たとえばピア２Ａ）のピア動作履歴を履歴データベース１５から取得する（Ｓ５３）。
【００５９】
データベースアプリケーション１４は、取得したピア動作履歴に基づいて、各曜日の各時間帯においてピア２Ａが再生を実行している確率（以下、再生確率という）を算出する（Ｓ５４）。具体的には、ピア２Ａのピア動作履歴に登録された日曜日のうち、０時〜３時の時間帯に再生が実施された日曜日の数をカウントし、そのカウント数をピア動作履歴に登録された日曜日の総数で除した値を日曜日の０時〜３時の時間帯の再生確率とする。データベースアプリケーション１４は、各曜日の各時間帯の再生確率を算出し、図示しないメモリに格納する。
【００６０】
続いて、データベースアプリケーション１４は、算出された再生確率に基づいて予測負荷を決定する（Ｓ５５）。具体的には、再生確率及び図８に示した負荷パラメータリストを用いて、式（１）より各曜日の各時間帯における予測負荷を算出する。
【００６１】
予測負荷＝再生負荷基準値（＝３０）×回線種別係数×再生確率  （１）
ここで、再生負荷基準値は、各ピアの動作状況（再生、ダウンロード、アップロード）に応じて決定される負荷基準値のうちの再生時の基準値である。回線種別係数は各ピア２の接続回線（ＦＴＴＨ、ＡＤＳＬ、ＣＡＢＬＥ）に応じて予め設定される重み係数であり、ピア２Ａの接続回線（たとえばＦＴＴＨ）に基づいて負荷パラメータリストから選択される。また、式（１）中の再生確率とは、算出する予測負荷の曜日及び時間帯に対応した再生確率であり、ステップＳ５４で求められる。負荷パラメータリストはサーバデータベース１０に記憶されている。
【００６２】
各曜日及び各時間帯の予測負荷を全て算出した後、データベースアプリケーション１４は、算出された予測負荷に基づいてピア２Ａのピア情報ＰＩ０内の予測負荷情報ＰＬを更新する（Ｓ５６）。更新後、ピア情報番号ｊをインクリメントしてｊ＝１とし（Ｓ５７）、ステップＳ５２に戻る。ピア情報リスト１１内の全てのピア情報ＰＩｊを更新したとき、データベースアプリケーション１４はステップＳ５２でピア情報番号ｊがピア情報ＰＩの数以上になったと判断し（Ｓ５２でＮＯ）、予測負荷情報更新処理を終了する。
【００６３】
データベースアプリケーション１４は、更新されたピア動作履歴に基づいて予測負荷情報を定期的に更新するため、ピア２の動作実績を反映した予測負荷を得ることができる。
【００６４】
各時間帯におけるピアの動作履歴には、コンテンツの再生実績、ダウンロード実績、アップロード（配信）実績等が含まれるが、この中でも再生実績が最もパターン化されている。ユーザがピアを用いてコンテンツを視聴する時間帯はユーザの生活パターンに対応してパターン化されているからである。したがって、再生確率に基づいて予測負荷を決定することにより、負荷の予測精度を上げることができる。
【００６５】
なお、再生確率以外のパラメータを用いて予測負荷を決定してもよい。たとえば、ピア動作履歴のうち、アップロード実績やダウンロード実績を用いて予測負荷を決定してもよいし、再生実績を含めたピア２の動作実績全てを考慮して予測負荷を決定してもよい。
【００６６】
［実働負荷更新処理］
続いて、実働負荷更新処理について説明する。
【００６７】
各ピア２は、再生、ダウンロード及びアップロードの開始時及び終了時等、自身の動作を変更するときに、動作の変更内容をピア動作状況としてセンタサーバ１に通知する。データベースアプリケーション１４は、受信したピア動作状況に基づいて各ピア２の現在の動作状況を把握し、以下の式（２）に基づいて実働負荷を算出する。
【００６８】
実働負荷＝負荷基準値×回線品種係数  （２）
負荷基準値及び回線品種係数は図８の負荷パラメータリストから選択される。たとえば、受信したピア動作状況が再生開始を示す場合、負荷基準値は「３０」である。また、ピア動作状況がダウンロード開始を示す場合、負荷基準値は「２０」である。一方、受信したピア動作状況が再生終了を示す場合、他の動作（ダウンロード、アップロード）が実行中でなければ、負荷基準値は「０」となる。再生及びダウンロードといった複数の動作を実行中の場合、それらの負荷基準値の合計が式（２）中の負荷基準値に代入される。
【００６９】
算出した実働負荷は実働負荷情報データベース１６に登録され、かつ、ピア情報ＰＩ内にも登録される。各ピア２からピア動作状況を受信するごとに実働負荷は算出される。換言すれば、各ピア２の動作状況が変化するごとに実働負荷は計算され、実働負荷情報データベース１６及び対応するピア情報ＰＩが更新される。
【００７０】
なお、新たなパラメータを式（１）及び式（２）に追加してもよい。たとえば、各ピアのハードウェアスペック（ＣＰＵの処理能力等）に応じて予め設定されるスペック係数等をパラメータとして用いてもよい。
【００７１】
［コンテンツリスト更新処理］
図９を参照して、データベースアプリケーション１４は、ピア２からのコンテンツ情報リスト要求を監視する（Ｓ１）。コンテンツ情報リスト要求を受信したとき（Ｓ１でＹＥＳ）、データベースアプリケーション１４はコンテンツ情報リスト１２を更新する（Ｓ２〜Ｓ８）。このとき、データベースアプリケーション１４は、リスト内のコンテンツ情報ＣＩごとに実働負荷及び予測負荷を更新する。
【００７２】
データベースアプリケーション１４はまず、コンテンツ情報リスト１２に登録されたコンテンツ情報ＣＩを特定するためのコンテンツ番号ｉを「０」にする（Ｓ２）。続いて、コンテンツ情報リスト１２内のコンテンツ情報ＣＩの数がコンテンツ番号ｉよりも大きいか否かを判断する（Ｓ３）。コンテンツ情報ＣＩの数の方がコンテンツ番号ｉよりも大きい場合（Ｓ３でＹＥＳ）、コンテンツ情報ＣＩｉ（つまりコンテンツ情報ＣＩ０）内の１又は複数の配信元情報ＤＩを更新する（Ｓ４〜Ｓ７）。
【００７３】
データベースアプリケーション１４はまず、配信元情報ＤＩを特定するための配信元番号ｎを「０」とする（Ｓ４）。続いて、コンテンツ情報ＣＩｉ内に含まれる配信元情報ＤＩの数が配信元番号ｎよりも大きいか否かを判断する（Ｓ５）。配信元情報ＤＩの数が配信元番号ｎよりも大きい場合（Ｓ５でＹＥＳ）、データベースアプリケーション１４は、配信元情報ＤＩｎ（つまりＤＩ０）の実働負荷及び予測負荷を更新する（負荷更新処理：Ｓ６）。具体的には、配信元情報ＤＩ内のピアＩＤに対応したピア情報ＰＩから実働負荷を取得して配信元情報ＤＩに登録する。また、ピア情報ＰＩ内の予測負荷情報ＰＬから現在の曜日及び現在時刻を含む時間帯の予測負荷を取得して配信元情報ＤＩに登録する。
【００７４】
更新後、配信元番号ｎをインクリメントしてｎ＝１とし（Ｓ７）、ステップＳ５に戻って次の配信元情報ＤＩｎ（つまりＤＩ１）について負荷更新処理を実行する（Ｓ５〜Ｓ７）。
【００７５】
コンテンツ情報ＣＩｉに含まれる全ての配信元情報ＤＩについて負荷更新処理を実行したとき、データベースアプリケーション１４はステップＳ５で配信元番号ｎの方が配信元情報ＤＩの数以上であると判断する（Ｓ５でＮＯ）。この場合、コンテンツ情報ＣＩ０の更新は全て完了したため、コンテンツ番号ｉをインクリメントしてｉ＝１とし（Ｓ８）、ステップＳ３に戻って次のコンテンツ情報ＣＩ１を更新する（Ｓ４〜Ｓ７）。
【００７６】
コンテンツ情報リスト１２に含まれる全てのコンテンツ情報ＣＩｉの更新が完了したとき、データベースアプリケーション１４は、ステップＳ３でコンテンツ番号ｉがコンテンツ情報ＣＩの数以上であると判断する（Ｓ３でＮＯ）。このとき、データベースアプリケーション１４はコンテンツ情報リスト１２の更新を終了し、コンテンツ情報リスト要求を送信したピア２に更新されたコンテンツ情報リスト１２を送信する（Ｓ９）。
【００７７】
次に、図９中のステップＳ６における負荷更新処理の詳細を説明する。負荷更新処理では、コンテンツ情報ＣＩｉ内の配信元情報ＤＩｎに含まれる予測負荷及び実働負荷を更新する。
【００７８】
図１０を参照して、データベースアプリケーション１４は、ピア情報ＰＩを特定するためのピア情報番号ｊを「０」とする（Ｓ６１）。続いて、ピア情報リスト１１に含まれるピア情報ＰＩの数がピア情報番号ｊよりも大きいか否か判断する（Ｓ６２）。大きい場合（Ｓ６２でＹＥＳ）、ピア情報ＰＩｊのピアＩＤが配信元情報ＤＩｎのピアＩＤと一致するか否か判断する（Ｓ６３）。一致しない場合（Ｓ６３でＮＯ）、ピア情報番号ｊをインクリメントしてｊ＝１とし（Ｓ６６）、ステップＳ６２に戻る。要するに、ピア情報ＰＩｊのピアＩＤが配信元情報ＤＩのピアＩＤと一致するまでピア情報番号ｊをインクリメントする。
【００７９】
ステップＳ６３でピアＩＤが一致したとき（Ｓ６３でＹＥＳ）、データベースアプリケーション１４は、ピア情報ＰＩｊ内の予測負荷情報ＰＬのうち、現在の曜日及び現在時刻を含む時間帯に対応する予測負荷を取得し（Ｓ６４）、取得した予測負荷を配信元情報ＤＩに登録する（Ｓ６５）。たとえば、現在時刻が日曜日の１９時１０分であり、ピア情報ＰＩｊ内の予測負荷情報ＰＬ１（図３）を利用する場合、データベースアプリケーション１４は、予測負荷「２０」を取得し、配信元情報ＤＩに登録する。
データベースアプリケーション１４はさらに、ピア情報ＰＩｊ内の実働負荷を取得し、取得した実働負荷を配信元情報ＤＩｎに登録する（Ｓ６６）。以上の動作により、配信元情報ＤＩｎに最新の予測負荷及び実働負荷が登録される。
【００８０】
なお、ステップＳ６２の判断の結果、ピア情報番号ｊがピア情報ＰＩの数以上となる場合（Ｓ６２でＮＯ）、配信元情報ＤＩｎ内のピアＩＤに対応するピア情報ＰＩが存在しない。この場合、対応するピア２がコンテンツ配信システムから離脱した等により、システム上に存在しない。そのため、予測負荷及び実働負荷を「１００」として登録する（Ｓ６８）。これにより、この配信元情報ＤＩｎに対応するピア２が配信元に決定されるのを防止する。
【００８１】
［ピアの動作］
ピア２は、他のピア２から所望のコンテンツをダウンロードするとき、コンテンツ情報リスト１２をセンタサーバ１から取得する。ピア２は、取得したコンテンツ情報リスト１２に基づいて所望のコンテンツを保存する複数のピア２を選択する。ピア２はさらに、選択された複数のピア２の中から配信元となる他のピア２を決定し、コンテンツをダウンロードする（ダウンロード処理）。以下、ダウンロード処理について説明する。
【００８２】
図１１を参照して、ピア２の受信アプリケーション２２はまず、コンテンツ情報リスト要求をセンタサーバ１に送信し、コンテンツ情報リスト１２を取得する（Ｓ１１）。
【００８３】
コンテンツ情報リスト１２は複数のコンテンツ情報ＣＩを有するため、ピア２は、コンテンツ情報ＣＩごとに配信元となる他のピア２を決定し、決定された他のピア２からコンテンツ情報ＣＩ内のコンテンツＩＤで特定されるコンテンツをダウンロードする（Ｓ１２〜Ｓ２０）。
【００８４】
受信アプリケーション２２はまず、コンテンツ番号ｉ＝０とする（Ｓ１２）。つまり、配信を要求する所望のコンテンツをコンテンツ情報ＣＩ０のコンテンツＩＤで特定されるコンテンツとする。続いて、受信アプリケーション２２は、コンテンツ情報ＣＩの数がコンテンツ番号ｉよりも大きいことを確認する（Ｓ１３でＹＥＳ）。
【００８５】
受信アプリケーション２２は、コンテンツ情報ＣＩ０のコンテンツＩＤで特定される所望のコンテンツを既に自身のピアデータベース２１に保存しているか否か判断する（Ｓ１４）。既に登録している場合、ダウンロードする必要がないため、コンテンツ番号ｉをインクリメントしてｉ＝１とし（Ｓ２１）、次のコンテンツ情報ＣＩ１についてステップＳ１３以降の動作を実行する。
【００８６】
ステップＳ１４での判断の結果、コンテンツ情報ＣＩ０のコンテンツをピアデータベース２１に保存していない場合（Ｓ１４でＮＯ）、受信アプリケーション２２は、コンテンツ情報ＣＩ０に含まれる１又は複数の配信元情報ＤＩを取得する（Ｓ１５）。これにより、受信アプリケーション２２は、コンテンツの配信元候補となるピア２を特定する。
【００８７】
続いて、各配信元情報ＤＩ内の実測負荷及び予測負荷を比較して、配信元候補であるピア２の中から配信元となるピア２を決定する（Ｓ１６〜Ｓ１９）。
【００８８】
受信アプリケーション２２はまず、各配信元情報ＤＩ内の実働負荷を比較し、ステップＳ１５で特定された配信元候補のピア２のうち、実働負荷が最も低いピア２を選択し、選択されたピア２をリストアップする（第１配信元リスト作成処理：Ｓ１６）。具体的には、ステップＳ１５で取得した配信元情報ＤＩのうち、実働負荷が最も低い配信元情報ＤＩを特定し、第１配信元リストにリストアップする。図１２に示すように、ステップＳ１６の処理により、１又は複数の配信元情報ＤＩがリストアップされる。
【００８９】
ステップＳ１６の処理が完了した後、第１配信元リスト内に登録された配信元情報ＤＩが複数存在するか否かを判断する（Ｓ１７）。リストアップされた配信元情報ＤＩが１つである場合（Ｓ１７でＮＯ）、その配信元情報ＤＩ内のピアＩＤで特定されるピア２を配信元に決定する（Ｓ１９）。受信アプリケーション２２は、決定されたピア２から配信元情報ＤＩ内のコンテンツＩＤで特定されるコンテンツをダウンロードする（Ｓ２０）。
【００９０】
一方、第１配信元リストに配信元情報ＤＩが複数登録されているとき（Ｓ１７でＹＥＳ）、第１配信元リストに列挙された配信元情報ＤＩの予測負荷を比較し、最低の予測負荷を有する配信元情報ＤＩを第２配信元リストにピックアップする（第２配信元リスト作成処理：Ｓ１８）。第２配信元リストは、図１２に示した第１配信元リストと同様の構成であり、第１配信元リストに列挙された配信元情報ＤＩのうち最低の予測負荷を有する配信元リストＤＩが登録される。
【００９１】
ステップＳ１８で第２配信元リストを作成した後、受信アプリケーション２２は、作成したリストの初め（つまりリスト番号＝０）に登録された配信元情報ＤＩ内のピアＩＤで特定されるピア２を配信元に決定する（Ｓ１９）。受信アプリケーション２２は、決定されたピア２から配信元情報ＤＩ内のコンテンツＩＤで特定されるコンテンツをダウンロードする（Ｓ２０）。
【００９２】
ステップＳ２０でコンテンツをダウンロードした後、コンテンツ番号ｉをインクリメントしてｉ＝１とし（Ｓ２１）、ステップＳ１３に戻る。要するに、コンテンツ情報リスト１２内に含まれる全てのコンテンツ情報ＣＩについて、コンテンツをダウンロードする。
【００９３】
ステップＳ１３でコンテンツ番号ｉがコンテンツ情報ＣＩの数以上となったとき（Ｓ１３でＮＯ）、換言すれば、コンテンツ情報リスト１２内のコンテンツ情報ＣＩｉに関するコンテンツを全てダウンロードしたとき、受信アプリケーション２２はダウンロード処理を終了する。
【００９４】
このように、受信アプリケーション２２は、コンテンツ情報ＣＩに含まれる配信元情報ＤＩにより、所望のコンテンツの配信元候補となるピア２を特定し（Ｓ１５）、特定された配信元候補のピア２の実働負荷及び予測負荷に基づいて配信元のピア２を決定する。したがって、実働負荷により現在の負荷状況を考慮し、かつ、予測負荷によりダウンロード実行中に発生しうる負荷も予測して配信元となるピア２を決定できる。
【００９５】
次に、図１１中のステップＳ１６及びＳ１８で実施される第１及び第２配信元リスト作成処理について説明する。
【００９６】
［第１配信元リスト作成処理］
初めに、第１配信元リスト作成処理（Ｓ１６）について説明する。第１配信元リスト作成処理では、ステップＳ１５で取得された配信元情報ＤＩを処理対象とする。
【００９７】
図１３を参照して、受信アプリケーション２２は、配信元番号ｎ＝０とし（Ｓ１０１）、配信元情報ＤＩｎ（つまりＤＩ０）内の実働負荷を最低負荷ＭＬ（Minimum Load）に設定する（Ｓ１０２）。続いて、配信元番号ｎがステップＳ１５で取得した配信元情報ＤＩの数よりも小さいことを確認した後（Ｓ１０３でＹＥＳ）、配信元情報ＤＩ０の実働負荷が最低負荷ＭＬと等しいか否か判断する（Ｓ１０４）。判断の結果、実働負荷が最低負荷ＭＬと等しいため（Ｓ１０４でＹＥＳ）、第１配信元リストに配信元情報ＤＩ０を登録する（Ｓ１０５）。登録後、配信元番号ｎをインクリメントしてｎ＝１とし（Ｓ１０９）、ステップＳ１０３に戻って次の配信元情報ＤＩ１の実働負荷を最低負荷ＭＬと比較する（Ｓ１０４）。
【００９８】
比較した結果、配信元情報ＤＩ１の実働負荷が最低負荷ＭＬと等しい場合（Ｓ１０４でＹＥＳ）、第１配信元リストに配信元情報ＤＩ１を登録する（Ｓ１０５）。したがってこの場合、リストには２つの配信元情報ＤＩ０及びＤＩ１が登録される。
【００９９】
一方、配信元情報ＤＩ１の実働負荷が最低負荷ＭＬよりも小さい場合（Ｓ１０４でＮＯ、かつ、Ｓ１０６でＹＥＳ）、受信アプリケーション２２は第１配信元リストをリセットし、配信元情報ＤＩ１のみを登録する（Ｓ１０７）。登録後、配信元情報ＤＩ１の実働負荷を最低負荷ＭＬに設定する（Ｓ１０８）。
【０１００】
配信元情報ＤＩ１の実働負荷が最低負荷ＭＬよりも大きい場合（Ｓ１０４及びＳ１０６でともにＮＯ）、配信元情報ＤＩ１を登録せずにステップＳ１０９に進み、次の配信元情報ＤＩ２について同様の処理を実施する。
【０１０１】
以上の動作により、最低の実働負荷を有する配信元情報ＤＩのみが第１配信元リストに登録される。
【０１０２】
［第２配信元リスト作成処理］
第１配信元リストに複数の配信元情報ＤＩが登録された場合、第２配信元リスト作成処理が実行される（Ｓ１８）。第２配信元リスト作成処理の動作は、第１配信処理リスト作成処理の動作と同様である。ただし、第２配信元リスト作成処理では、第１配信元リストに登録された配信元情報ＤＩを処理対象とする。
【０１０３】
具体的には、第１配信元リストで最初に登録された配信元情報ＤＩの予測負荷を最低負荷ＭＬに設定し（図１３中のステップＳ１０２）、第１配信元リストに列挙された配信元情報ＤＩの予測負荷と最低負荷ＭＬとを順次比較して、最低の予測負荷を有する配信元情報ＤＩを第２配信元リストに登録する（Ｓ１０３〜Ｓ１０８）。これにより、第２配信元リストに最低の予測負荷を有する配信元情報ＤＩが登録され、登録された配信元情報ＤＩに基づいて配信元となるピア２が決定される。なお、第２配信元リスト作成処理では、第１配信元リスト中のリスト番号順に図１３中のステップＳ１０３〜Ｓ１０８の処理を実行する。
【０１０４】
以上、本実施の形態によるコンテンツ配信システムでは、配信元候補であるピア２のうち、まず最低の実働負荷を有するピア２を特定し、特定されたピア２の中からさらに最低の予測負荷を有するピア２を特定したが、予測負荷のみに基づいて配信元となるピア２を決定してもよい。この場合、コンテンツ受信処理は、図１１中のステップＳ１６及びステップＳ１７の動作をせず、ステップＳ１８において、ステップＳ１５で取得した配信元情報を対象として第２配信元リスト作成処理が実行される。
【０１０５】
また、実働負荷と予測負荷とを所定の重み係数で足し合わせた合計値を算出し、算出した合計値に基づいて配信元となるピア２を決定してもよい。
【０１０６】
また、ピア２は所望の１又は複数のコンテンツに関するコンテンツ情報リストを作成するようセンタサーバ１に要求し、センタサーバ１がピア２の要求に応じて所望のコンテンツのみに関するコンテンツ情報リスト１２を作成し、ピア２に通知してもよい。
【０１０７】
本実施の形態では、各ピア２で配信元となるピア２を決定したが、センタサーバ１で配信元となるピア２を決定してもよい。この場合、たとえば、センタサーバ１はピア２からそのピア２がダウンロードしたいコンテンツのコンテンツＩＤを受け取る。センタサーバ１は、自身が保有するコンテンツ情報リスト１２に基づいて受け取ったコンテンツＩＤのコンテンツ情報ＣＩを選択し、選択されたコンテンツ情報ＣＩ内の配信元情報ＤＩを特定する。さらに、特定された配信元情報ＤＩを処理対象として第１及び第２配信元リスト作成処理を実行し、配信元のピア２を決定する。センタサーバ１は決定されたピア２に関する情報をコンテンツＩＤを送信したピア２に通知する。これにより、ピア２は配信元に決定された当該他のピア２から所望のコンテンツをダウンロードできる。
【０１０８】
また、本実施の形態では、予測負荷情報ＰＬをサーバデータベース１０に記憶したが、予測負荷情報ＰＬを記憶せず、ピア２から要求を受けるごとにセンタサーバ１が予測負荷を算出してもよい。たとえば、ピア２から配信元のピア２を決定するよう要求を受けたとき、センタサーバ１が所望コンテンツを保存する当該他のピア２を特定し、特定されたピア２のピア動作履歴に基づいて、特定されたピア２の予測負荷を算出してもよい。同様に、実働負荷もサーバデータベース１０に記憶しなくてもよい。
【０１０９】
また、本実施の形態では、時間帯ごとの予測負荷を決定したが、他の方法により予測負荷を決定してもよい。たとえば、過去２４時間のピア２の動作履歴から１つの予測負荷を算出してもよい。この場合、算出された予測負荷は直近（過去２４時間分）のピア２の動作状況を反映する。この予測負荷を利用した場合、直近の稼働率が高いピア２は配信元として決定されない。
【０１１０】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【０１１１】
【図１】本発明の実施の形態によるコンテンツ配信システムの構成を示す機能ブロック図である。
【図２】図１に示したピア情報リストのレコード構成を示す図である。
【図３】図１に示したピア情報リスト及び予測負荷情報データベースに登録される予測負荷情報のレコード構成を示す図である。
【図４】図１に示したコンテンツ情報リストのレコード構成を示す図である。
【図５】図４に示したコンテンツ情報リストに含まれる配信元情報のレコード構成を示す図である。
【図６】図１に示したコンテンツ配信システムの動作の概略を説明するための図である。
【図７】図１に示したセンタサーバの動作のうち、予測負荷情報更新処理の詳細を示すフロー図である。
【図８】図７中のステップＳ５５で利用される負荷パラメータリストのレコード構成を示す図である。
【図９】図１に示したセンタサーバの動作のうち、コンテンツ情報リスト更新処理の詳細を示すフロー図である。
【図１０】図９中のステップＳ６に示した負荷更新処理の詳細を示すフロー図である。
【図１１】図１に示したピア２の動作のうち、ダウンロード処理の詳細を示すフロー図である。
【図１２】図１１中のステップＳ１６で作成される第１配信元リストのレコード構成を示す図である。
【図１３】図１１中のステップＳ１６及びステップＳ１８の動作の詳細を示すフロー図である。
【符号の説明】
【０１１２】
１  センタサーバ
２、２Ａ〜２Ｄ  ピア
１０  サーバデータベース
１１  ピア情報リスト
１２  コンテンツ情報リスト
１３  予測負荷情報データベース
１４  データベースアプリケーション
１５  履歴データベース
１６  実働負荷情報データベース
２１  ピアデータベース
２２  受信アプリケーション
２３  配信アプリケーション
ＣＩ  コンテンツ情報
ＰＬ  予測負荷情報
【図１】
2007087281.tif 000003
【図２】
2007087281.tif 000004
【図３】
2007087281.tif 000005
【図４】
2007087281.tif 000006
【図５】
2007087281.tif 000007
【図６】
2007087281.tif 000008
【図７】
2007087281.tif 000009
【図８】
2007087281.tif 000010
【図９】
2007087281.tif 000011
【図１０】
2007087281.tif 000012
【図１１】
2007087281.tif 000013
【図１２】
2007087281.tif 000014
【図１３】
2007087281.tif 000015