コンテンツ配信システム、本システムに使用されるセンタサーバ及びピア、並びにコンテンツ配信方法
【課題】コンテンツの配信中に発生しうる負荷を考慮して配信元となるピアを決定できるコンテンツ配信システムを提供する。
【解決手段】ピア2DがコンテンツC1をダウンロードするとき、ピア2Dはセンタサーバ1にコンテンツ情報リスト12を要求する(1)。センタサーバ1は、コンテンツ情報リスト12を更新し(2)、ピア2Dに通知する(3)。ピア2Dはコンテンツ情報リスト12を用いて、コンテンツC1の配信元候補として、ピア2A〜2Cを特定する。ピア2Dはさらに、各ピア2A〜2Cに現在かかる負荷(実働負荷)及び配信実行中に各ピア2A〜2Cに発生する可能性のある負荷(予測負荷)を比較し、実働負荷及び予測負荷が最も低いピア2Cを配信元に決定する。ピア2Dは決定されたピア2CからコンテンツC1をダウンロードする。
【解決手段】ピア2DがコンテンツC1をダウンロードするとき、ピア2Dはセンタサーバ1にコンテンツ情報リスト12を要求する(1)。センタサーバ1は、コンテンツ情報リスト12を更新し(2)、ピア2Dに通知する(3)。ピア2Dはコンテンツ情報リスト12を用いて、コンテンツC1の配信元候補として、ピア2A〜2Cを特定する。ピア2Dはさらに、各ピア2A〜2Cに現在かかる負荷(実働負荷)及び配信実行中に各ピア2A〜2Cに発生する可能性のある負荷(予測負荷)を比較し、実働負荷及び予測負荷が最も低いピア2Cを配信元に決定する。ピア2Dは決定されたピア2CからコンテンツC1をダウンロードする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテンツ配信システム、本システムに使用されるセンタサーバ及びピア、並びにコンテンツ配信方法に関し、さらに詳しくは、互いに接続された複数のピアと、複数のピアに接続されたセンタサーバとを備えたコンテンツ配信システム、本システムに使用されるセンタサーバ及びピア、並びにコンテンツ配信方法に関する。
【背景技術】
【0002】
ピアツーピア型コンテンツ配信システムは、相互に接続された複数のピアを含む。各ピアは他のピアからコンテンツをダウンロードするとともに、他のピアから要求されたコンテンツをそのピアに返信する。ピアツーピア型コンテンツ配信システムでは、このようにコンテンツがピア間で配信され、ダウンロード負荷が各ピアに分散されるため、クライアントサーバ型コンテンツ配信システムに比べ、はるかに多くのピア(クライアント)にコンテンツを配信することができる。
【0003】
しかしながら、コンテンツの配信元となるピアは、コンテンツの配信だけでなく、コンテンツの再生やダウンロードも行う。そのため、コンテンツの再生やダウンロードを実行中のピアにコンテンツの配信を要求すれば、そのピアの負荷が過剰になる。したがって、コンテンツをダウンロードする場合、負荷の低いピアを配信元とする方が好ましい。
【0004】
上記課題を解決するために、本出願人は特願2004−251541号(下記関連出願1)において、配信元となるピアを決定する時点での各ピアの負荷状況を比較して最も負荷の低いピアを配信元に特定するコンテンツ配信システムを提案している。このシステムにより、コンテンツの配信開始時に負荷の低いピアを配信元のピアに選ぶことができる。
【0005】
しかしながら、配信元となるピアは、コンテンツの配信中にコンテンツを再生したりダウンロードしたりする場合がある。この場合、配信元のピアの負荷は、コンテンツの配信開始時では低いものの、配信途中で高くなる。配信中に負荷が過剰に高くなれば、コンテンツの配信処理が中断される可能性がある。
【特許文献1】特開平9−135259号公報
【0006】
[関連出願1]特願2004−251541号
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明の目的は、コンテンツの配信中に発生しうる負荷を考慮して配信元となるピアを決定できるコンテンツ配信システムを提供することである。
【課題を解決するための手段及び発明の効果】
【0008】
本発明によるコンテンツ配信システムは、互いに接続される複数のピアと、複数のピアに接続されるセンタサーバとを備える。センタサーバは、サーバ記憶手段と、負荷予測手段とを備える。サーバ記憶手段は、複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、各ピアの動作履歴とを記憶する。負荷予測手段は、動作履歴に基づいてピアにかかる負荷を予測する。センタサーバ又は複数のピアの各々は、コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する特定手段と、配信元決定手段とを備える。配信元決定手段は、特定された複数のピアの予測された負荷に基づいて、特定された複数のピアの中から1つのピアを決定する。複数のピアの各々は、複数のコンテンツを記憶するためのピア記憶手段と、配信元決定手段により決定された1つのピアから所望のコンテンツをダウンロードする手段とを備える。ここで、特定手段及び配信元決定手段のうちの一方がセンタサーバに含まれ、他方が各ピアに含まれてもよい。各ピアが特定手段を有し、センタサーバからコンテンツ情報を取得して所望のコンテンツを保有している複数の当該他のピアを特定してもよい。また、各ピアが配信元決定手段を有し、負荷予測手段により予測された負荷に基づいて配信元となる1つのピアを決定してもよい。
【0009】
本発明によるコンテンツ配信システムは、ピアの動作履歴からピアにかかる負荷を予測し、予測した負荷に基づいて配信元となるピアを決定する。動作履歴に基づいて負荷を予測することにより、コンテンツの配信中に発生し得る負荷を考慮して配信元のピアを決定できる。
【0010】
好ましくは、サーバ記憶手段はさらに、各ピアにかかる負荷の予測値である予測負荷に関する予測負荷情報を記憶する。負荷予測手段は、解析手段と予測負荷決定手段とを備える。解析手段は動作履歴を解析する。予測負荷決定手段は、解析結果に基づいて各ピアの予測負荷を決定する。センタサーバはさらに、登録手段を備える。登録手段は、決定された予測負荷に基づいて予測負荷情報をサーバ記憶手段に記憶する。配信元決定手段は、予測負荷情報から特定された複数のピアの予測負荷を取得し、取得した予測負荷に基づいて1つのピアを決定する。
【0011】
この場合、センタサーバは各ピアの予測負荷に関する予測負荷情報を保存し、その予測負荷情報を利用して配信元となるピアを決定できる。配信元を決定するときに負荷予測手段により負荷を予測するのではなく、予め予測負荷を保存しているため、配信元を決定するときにより速く配信元となる1つのピアを決定できる。予測負荷情報はセンタサーバから各ピアへ送信されてもよい。たとえば、各ピアが配信元決定手段を備え、センタサーバから予測負荷情報を取得して配信元となる1つのピアを決定してもよい。また、センタサーバが配信元決定手段を備え、予測負荷情報に基づいて配信元となる1つのピアを決定し、その結果を所望のコンテンツをダウンロードするピアに通知してもよい。
【0012】
好ましくは、複数のピアの各々はさらに、自身の動作状況をセンタサーバに通知する手段を備える。センタサーバはさらに、各ピアから通知された動作状況に基づいて各ピアの動作履歴を更新する。
【0013】
この場合、各ピアは動作状況を通知し、センタサーバは各ピアの動作履歴を更新する。そのため、センタサーバは更新された動作履歴を用いて各ピアの予測負荷を決定し、予測負荷情報を更新できる。そのため、ピアの過去の動作実績を反映した予測負荷を得ることができる。
【0014】
好ましくは、予測負荷決定手段は、解析結果に基づいて各時間帯における各ピアの予測負荷を決定し、配信元決定手段は、予測負荷情報内の特定されたピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得した予測負荷に基づいて1つのピアを決定する。
【0015】
この場合、たとえば1時間ごと、30分ごと、10分ごと等の時間帯ごとに各ピアの予測負荷が決定され、現在時刻を含む時間帯の予測負荷を用いて配信元となるピアを決定する。ユーザがピアを利用する時間帯はある程度パターン化されるため、ピアにかかる負荷も時間帯ごとにある程度パターン化される。そのため、動作履歴を解析して各時間帯での予測負荷を決定すれば、ピアの動作傾向を反映した予測結果を得ることができる。
【0016】
好ましくは、解析手段は、動作履歴を解析して各時間帯で各ピアが再生を実行する再生確率を求め、予測負荷決定手段は、再生確率に基づいて予測負荷を決定する。
【0017】
ピアの動作実績のうち、コンテンツの再生実績が最もパターン化される。利用者がピアを用いてコンテンツを視聴する時間帯は利用者の生活パターンに対応してパターン化されやすいからである。したがって、各時間帯での再生確率に基づいて予測負荷を決定することにより、予測の精度が上がる。
【0018】
好ましくは、予測負荷決定手段は、各曜日の各時間帯の予測負荷を決定し、配信元決定手段は、予測負荷情報から現在の曜日と現在時刻を含む時間帯とに対応する予測負荷を取得する。
【0019】
ピアの動作状況は、利用者の生活パターンに対応して各時間帯でパターン化されるだけでなく、各曜日についてもパターン化される。たとえば、平日は夜に稼働する傾向にあり、休日は昼間に稼働する傾向があるといったように、ピアの動作状況は曜日に基づいてもパターン化される。したがって、各曜日の各時間帯で予測負荷を決定することにより、予測の精度が上がる。
【0020】
好ましくは、複数のピアの各々はさらに、自身の動作状況をセンタサーバに通知する手段を備え、センタサーバはさらに、実働負荷決定手段を備える。実働負荷決定手段は、通知された動作状況に基づいて、現在ピアにかかっている実働負荷を決定する。配信元決定手段は、特定された複数のピアの予測された負荷と実働負荷とに基づいて、1つのピアを決定する。
【0021】
この場合、実働負荷により現在のピアにかかっている負荷を把握し、さらに予測された負荷により配信中にピアに発生する可能性のある負荷を予測して、配信元のピアを決定できる。
【0022】
本発明によるコンテンツ配信システムは、互いに接続される複数のピアと、複数のピアに接続されるセンタサーバとを備える。センタサーバは、サーバ記憶手段を備える。サーバ記憶手段は、複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、各時間帯で各ピアにかかる予測負荷に関する予測負荷情報とを記憶する。センタサーバ又は複数のピアの各々は、特定手段と配信元決定手段とを備える。特定手段は、コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する。配信元決定手段は、予測負荷情報に基づいて、特定されたピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得された予測負荷に基づいて特定されたピアの中から1つのピアを決定する。複数のピアの各々は、複数のコンテンツを記憶するためのピア記憶手段と、決定された1つのピアから所望のコンテンツをダウンロードする手段とを備える。ここで、予測負荷はたとえばセンタサーバの管理者により入力されてもよいし、センタサーバ自身が計算等により予測負荷を求め、予測負荷情報をサーバ記憶手段に登録してもよい。各ピアは特定手段を有し、センタサーバからコンテンツ情報を取得して所望のコンテンツを保有している複数の他のピアを特定してもよい。各ピアが配信元決定手段を有し、センタサーバから予測負荷情報を取得して配信元となる1つのピアを決定してもよい。
【0023】
本発明によるコンテンツ配信システムは、各時間帯で各ピアにかかる負荷(予測負荷)を予め予測負荷情報として保有し、現在時刻を含む時間帯の予測負荷に基づいて配信元となるピアを決定する。そのため、配信中にピアに発生し得る負荷を考慮して配信元となるピアを決定できる。
【0024】
本発明によるコンテンツ配信方法は、上記コンテンツ配信システムの動作方法である。また、本発明によるセンタサーバは、上記コンテンツ配信システムに使用されるサーバであり、本発明によるピアは、上記コンテンツ配信システムに使用されるピアである。
【発明を実施するための最良の形態】
【0025】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【0026】
[全体構成]
図1を参照して、コンテンツ配信システムは、センタサーバ(コンピュータ)1と、複数のピア(コンピュータ)2とを備える。これらはインターネット3で相互に接続されるが、LAN(Local Area Network)、WAN(Wide Area Network)、その他のコンピュータネットワーク経由で相互に接続されてもよい。
【0027】
特に限定されないが、通常、センタサーバ1はサービスプロバイダにより運用され、ピア2は一般利用者により操作される。センタサーバ1は、各ピア2によるコンテンツの配信を管理するために、各ピア2に記憶されたコンテンツの詳細に関する情報を収集し、収集した情報に基づいてコンテンツ情報リストを作成する。センタサーバ1は各ピア2にコンテンツ情報リストを通知する。
【0028】
各ピア2は、自身が保有しているコンテンツに関する情報をセンタサーバ1に通知するとともに、コンテンツ情報リストを取得する。したがって、各ピア2はセンタサーバ1に対してクライアントとしても機能する。各ピア2は、センタサーバ1から取得したコンテンツ情報リストに基づいて、所望のコンテンツを他のピア2からダウンロードする。
【0029】
[センタサーバの構成]
センタサーバ(コンピュータ)1は、サーバデータベース10と、データベースアプリケーション14とを備える。これらは図示しないハードディスクに記憶される。
【0030】
サーバデータベース10は、ピア情報リスト11と、コンテンツ情報リスト12と、予測負荷情報データベース13と、履歴データベース15と、実働負荷情報データベース16とを備える。
【0031】
ピア情報リスト11は、各ピアに関する情報(以下、ピア情報という)を含む。ピア情報リスト11の構成を図2に示す。各ピア情報PIは、ピア2を特定するためのピアIDと、そのピア2の利用者の氏名と、ピア2の接続回線の品種(FTTH、ADSL、CABLE等)と、そのピア2の予測負荷情報PL及び実働負荷とを含む。
【0032】
履歴データベース15は、各ピア2の動作履歴(以下、ピア動作履歴という)を記憶する。ピア動作履歴には、コンテンツの再生、ダウンロード、配信といった動作の履歴が登録される。ピア動作履歴は、各ピア2から通知される動作状況(以下、ピア動作状況という)に基づいて更新される。ピア動作状況は、各ピア2が動作を開始又は終了するごとに送信される。たとえば、ピア2がコンテンツの再生、ダウンロード、配信を開始及び終了したときに送信される。
【0033】
予測負荷情報データベース13は、各ピア2の予測負荷情報PLを有する。予測負荷情報PLには、ピア2にかかる負荷の予測値である予測負荷が時間帯ごとに登録される。予測負荷情報PLを図3に示す。予測負荷情報PL内の各レコードは、曜日を登録するためのフィールドと、時間帯を登録するためのフィールドと、予測負荷を登録するためのフィールドとを含む。要するに、予測負荷情報PLは、各ピアの各曜日の各時間帯における予測負荷を示す情報である。たとえば、図3の予測負荷情報PL1に対応するピア2は、日曜日の0時〜3時の時間帯では負荷が「0」と予測され、18時〜21時では負荷が「20」と予測されている。なお、上述のとおり、予測負荷情報PLは対応するピア2のピア情報PIにも登録される。
【0034】
予測負荷は、ピア動作履歴に基づいて決定される。つまり、ピア2の過去の動作実績に基づいて各時間帯でのピア2の動作状況を解析し、その解析結果に基づいて予測負荷が決定される。たとえば、過去の実績において、平日の夜にピア2が常時稼働していれば、その時間帯の予測負荷は高くなり、平日の昼間にピア2がほとんど稼働していなければ、その時間帯の予測負荷は低くなる。
【0035】
ユーザがピア2を利用する時間帯は、そのユーザの生活パターン対応してある程度パターン化される。そのため、ピア動作履歴に基づいて決定される各時間帯の予測負荷はある程度パターン化される。そのため、予測負荷により各時間帯でのピア2の動作を予測できる。
【0036】
実働負荷情報データベース16は、各ピア2に現在かかっている負荷(以下、実働負荷という)を含む。実働負荷は、ピア動作状況に基づいて算出される。なお、上述のとおり、実働負荷は対応するピアのピア情報PIにも登録される。
【0037】
コンテンツ情報リスト12は、図4に示すように複数のコンテンツ情報CIを含む。コンテンツ情報CIは、コンテンツを特定するためのコンテンツIDと、コンテンツのタイトルと、公開開始日時と、公開終了日時とを含む。コンテンツ情報CIはさらに、そのコンテンツの配信元となるピア2に関する情報(以下、配信元情報DIという)を列挙した配信元リストを含む。コンテンツの配信元となるピア2とは、要するにそのコンテンツを保有するピア2であり、配信元情報DIはコンテンツの所在を示す情報である。
【0038】
配信元情報DIは、図5に示すように、配信元となるピアのピアIDと、配信するコンテンツのコンテンツIDとを含む。配信元情報DIはさらに、ピアIDのピア2の実働負荷と予測負荷とを含む。予測負荷は予測負荷情報PL内から取得され、配信元情報DIに登録される。配信元情報DI内の実働負荷及び予測負荷は、配信元となるピア2を決定するときに利用される。
【0039】
データベースアプリケーション14は、各ピア2からピアに関する情報(ピアID、ピアの利用者の氏名等)を受け付け、受け付けた情報に基づいてピア情報PIを作成し、ピア情報リスト11に登録する。また、ピア2が新たに登録したコンテンツに関する情報を受け付け、コンテンツ情報リスト12に登録する。
【0040】
データベースアプリケーション14はさらに、各ピア2からピア動作状況を受け付け、ピア動作状況に基づいてピア2の実働負荷を算出し、実働負荷情報データベース16に登録する。データベースアプリケーション14はまた、受け付けたピア動作状況に基づいてピア動作履歴を更新する。データベースアプリケーション14はまた、ピア動作履歴に基づいて、予測負荷情報PLを更新する。
【0041】
データベースアプリケーション14はさらに、ピア2から送信されたコンテンツ情報リストの送信要求に応じて、コンテンツ情報リスト12を更新してピア2に送信する。
【0042】
[ピアの構成]
ピア2は、複数のコンテンツ(ファイル)を蓄積するピアデータベース21と、受信アプリケーション(プログラム)22と、配信アプリケーション(プログラム)23とを含む。これらは、図示しないハードディスクに記憶される。
【0043】
受信アプリケーション22は、センタサーバ1にコンテンツ情報リスト12を要求し、受信する。また、コンテンツ情報リスト12内の実働負荷及び予測負荷に基づいて所望のコンテンツの配信元となる他のピア2を決定し、決定したピア2から所望のコンテンツをダウンロードする。受信アプリケーション22はまた、ダウンロードしたコンテンツをピアデータベース21に記憶する。
【0044】
配信アプリケーション23は、他のピア2からのコンテンツの配信要求に応答して自身が蓄積するコンテンツを配信する。
【0045】
[動作]
[動作概要]
ピア2が所望のコンテンツの配信を他のピア2に要求する場合、ピア2は実働負荷及び予測負荷が最も低いピア2を配信元に決定する。
【0046】
図6を参照して、複数のピア2のうち、ピア2A〜2Cが同じ内容のコンテンツC1を保有しており、ピア2Dは所望のコンテンツC1をダウンロードすると仮定する。このとき、ピア2Dはまず、センタサーバ1にコンテンツ情報リスト12を要求する(1)。センタサーバ1は、ピア2Dからの要求を受け、コンテンツ情報リスト12を更新する(2)。センタサーバ1は、ピア動作状況を受けて随時更新される実働負荷情報データベース16と、所定期間ごとに更新される予測負荷情報データベース13とに基づいて、コンテンツ情報リスト12内のピア2の配信元情報DIを更新する。具体的には、各配信元情報DI内の実働負荷を最新の実働負荷に更新し、予想負荷を現在時刻(つまりコンテンツ情報リスト12の更新時)を含む時間帯の予想負荷に更新する。
【0047】
センタサーバ1は更新されたコンテンツ情報リスト12をピア2Dに通知する(3)。ピア2Dはコンテンツ情報リスト12を用いて、コンテンツC1の配信元となりうるピア2として、ピア2A〜2Cを選択する。
【0048】
ピア2Dはさらに、選択されたピア2A〜2Cのうち、1つのピア2を配信元に決定する(4)。ピア2Dはまず、各ピア2A〜2Cに現在かかる負荷(つまり実働負荷)を比較し、実働負荷が最も低いピア2を選択する。ここでは、ピア2B及び2Cの実働負荷がともに「0」で最も低い。そのため、ピア2Dはピア2B及びピア2Cを選択する。続いて、ピア2Dは、ピア2B及び2Cが配信実行中にピア2B及び2Cに発生する可能性のある負荷(つまり予測負荷)を比較し、予測負荷が最も低いピア2を選択する。図6では、ピア2Cの予測負荷が「10」で最も低い。したがって、ピア2Dは配信元をピア2Cに決定する。
【0049】
ピア2Dは配信元に決定されたピア2CにコンテンツC1の配信を要求し、コンテンツC1をダウンロードする(5)。
【0050】
以上の動作により、ピア2Dは、各ピア2A〜2Cの実働負荷及び予測負荷に基づいて、配信元となるピア2を決定する。実働負荷は現時点での各ピア2にかかる負荷である。そのため、実働負荷のみに基づいて配信元となるピア2を決定すれば、配信中に配信元のピア2がコンテンツの再生を実施し、負荷が過剰になる場合がある。この場合、配信が中断される可能性もある。本実施の形態では、実働負荷だけでなく予測負荷に基づいて配信元となるピア2を決定する。そのため、配信中に発生する可能性のある負荷も予測した上で配信元のピア2を決定できる。
【0051】
なお、上述の例では、実働負荷及び予測負荷に基づいて配信元のピア2を決定したが、予測負荷のみに基づいて配信元を決定してもよい。この場合ピア2Dは、各ピア2A〜2Cの配信元情報DIを参照し、予測負荷が最も低いピア2を選択する。図6ではピア2Cの予想負荷が「10」で最も低いため、ピア2Dはピア2Cを配信元に決定する。
【0052】
以下、コンテンツ配信システムの動作の詳細を説明する。
【0053】
[センタサーバの動作]
センタサーバ1は、ピア2から送信されるピア動作状況を受け付け、ピア動作履歴を更新し、更新されたピア動作履歴を用いて予測負荷情報PLを更新する(予測負荷情報更新処理)。センタサーバ1はまた、ピア動作状況に基づいて実働負荷を更新する(実働負荷情報更新処理)。
【0054】
センタサーバ1はさらに、ピア2からのコンテンツ情報リスト要求に応答して、コンテンツ情報リスト12を更新し、更新したコンテンツ情報リスト12を要求元のピア2に送信する(コンテンツ情報リスト更新処理)。
【0055】
以下、予測負荷情報更新処理、実働負荷情報更新処理及びコンテンツ情報リスト更新処理について説明する。
【0056】
[予測負荷情報更新処理]
データベースアプリケーション14は、各ピア2から通知されるピア動作状況に基づいてピア動作履歴を更新する。これにより、ピア2の過去の動作実績が蓄積される。
【0057】
データベースアプリケーション14はさらに、ピア動作履歴を解析して各曜日の各時間帯の予測負荷を決定し、予測負荷情報を更新する(予測負荷情報更新処理)。予測負荷情報更新処理は定期的に実行される。
【0058】
図7を参照して、データベースアプリケーション14はまず、ピア情報番号j=0とする(S51)。ピア情報リスト11に登録されたピア情報PIの数がピア情報番号jよりも大きいことを確認した後(S52でYES)、ピア情報PIj(PI0)のピア2(たとえばピア2A)のピア動作履歴を履歴データベース15から取得する(S53)。
【0059】
データベースアプリケーション14は、取得したピア動作履歴に基づいて、各曜日の各時間帯においてピア2Aが再生を実行している確率(以下、再生確率という)を算出する(S54)。具体的には、ピア2Aのピア動作履歴に登録された日曜日のうち、0時〜3時の時間帯に再生が実施された日曜日の数をカウントし、そのカウント数をピア動作履歴に登録された日曜日の総数で除した値を日曜日の0時〜3時の時間帯の再生確率とする。データベースアプリケーション14は、各曜日の各時間帯の再生確率を算出し、図示しないメモリに格納する。
【0060】
続いて、データベースアプリケーション14は、算出された再生確率に基づいて予測負荷を決定する(S55)。具体的には、再生確率及び図8に示した負荷パラメータリストを用いて、式(1)より各曜日の各時間帯における予測負荷を算出する。
【0061】
予測負荷=再生負荷基準値(=30)×回線種別係数×再生確率 (1)
ここで、再生負荷基準値は、各ピアの動作状況(再生、ダウンロード、アップロード)に応じて決定される負荷基準値のうちの再生時の基準値である。回線種別係数は各ピア2の接続回線(FTTH、ADSL、CABLE)に応じて予め設定される重み係数であり、ピア2Aの接続回線(たとえばFTTH)に基づいて負荷パラメータリストから選択される。また、式(1)中の再生確率とは、算出する予測負荷の曜日及び時間帯に対応した再生確率であり、ステップS54で求められる。負荷パラメータリストはサーバデータベース10に記憶されている。
【0062】
各曜日及び各時間帯の予測負荷を全て算出した後、データベースアプリケーション14は、算出された予測負荷に基づいてピア2Aのピア情報PI0内の予測負荷情報PLを更新する(S56)。更新後、ピア情報番号jをインクリメントしてj=1とし(S57)、ステップS52に戻る。ピア情報リスト11内の全てのピア情報PIjを更新したとき、データベースアプリケーション14はステップS52でピア情報番号jがピア情報PIの数以上になったと判断し(S52でNO)、予測負荷情報更新処理を終了する。
【0063】
データベースアプリケーション14は、更新されたピア動作履歴に基づいて予測負荷情報を定期的に更新するため、ピア2の動作実績を反映した予測負荷を得ることができる。
【0064】
各時間帯におけるピアの動作履歴には、コンテンツの再生実績、ダウンロード実績、アップロード(配信)実績等が含まれるが、この中でも再生実績が最もパターン化されている。ユーザがピアを用いてコンテンツを視聴する時間帯はユーザの生活パターンに対応してパターン化されているからである。したがって、再生確率に基づいて予測負荷を決定することにより、負荷の予測精度を上げることができる。
【0065】
なお、再生確率以外のパラメータを用いて予測負荷を決定してもよい。たとえば、ピア動作履歴のうち、アップロード実績やダウンロード実績を用いて予測負荷を決定してもよいし、再生実績を含めたピア2の動作実績全てを考慮して予測負荷を決定してもよい。
【0066】
[実働負荷更新処理]
続いて、実働負荷更新処理について説明する。
【0067】
各ピア2は、再生、ダウンロード及びアップロードの開始時及び終了時等、自身の動作を変更するときに、動作の変更内容をピア動作状況としてセンタサーバ1に通知する。データベースアプリケーション14は、受信したピア動作状況に基づいて各ピア2の現在の動作状況を把握し、以下の式(2)に基づいて実働負荷を算出する。
【0068】
実働負荷=負荷基準値×回線品種係数 (2)
負荷基準値及び回線品種係数は図8の負荷パラメータリストから選択される。たとえば、受信したピア動作状況が再生開始を示す場合、負荷基準値は「30」である。また、ピア動作状況がダウンロード開始を示す場合、負荷基準値は「20」である。一方、受信したピア動作状況が再生終了を示す場合、他の動作(ダウンロード、アップロード)が実行中でなければ、負荷基準値は「0」となる。再生及びダウンロードといった複数の動作を実行中の場合、それらの負荷基準値の合計が式(2)中の負荷基準値に代入される。
【0069】
算出した実働負荷は実働負荷情報データベース16に登録され、かつ、ピア情報PI内にも登録される。各ピア2からピア動作状況を受信するごとに実働負荷は算出される。換言すれば、各ピア2の動作状況が変化するごとに実働負荷は計算され、実働負荷情報データベース16及び対応するピア情報PIが更新される。
【0070】
なお、新たなパラメータを式(1)及び式(2)に追加してもよい。たとえば、各ピアのハードウェアスペック(CPUの処理能力等)に応じて予め設定されるスペック係数等をパラメータとして用いてもよい。
【0071】
[コンテンツリスト更新処理]
図9を参照して、データベースアプリケーション14は、ピア2からのコンテンツ情報リスト要求を監視する(S1)。コンテンツ情報リスト要求を受信したとき(S1でYES)、データベースアプリケーション14はコンテンツ情報リスト12を更新する(S2〜S8)。このとき、データベースアプリケーション14は、リスト内のコンテンツ情報CIごとに実働負荷及び予測負荷を更新する。
【0072】
データベースアプリケーション14はまず、コンテンツ情報リスト12に登録されたコンテンツ情報CIを特定するためのコンテンツ番号iを「0」にする(S2)。続いて、コンテンツ情報リスト12内のコンテンツ情報CIの数がコンテンツ番号iよりも大きいか否かを判断する(S3)。コンテンツ情報CIの数の方がコンテンツ番号iよりも大きい場合(S3でYES)、コンテンツ情報CIi(つまりコンテンツ情報CI0)内の1又は複数の配信元情報DIを更新する(S4〜S7)。
【0073】
データベースアプリケーション14はまず、配信元情報DIを特定するための配信元番号nを「0」とする(S4)。続いて、コンテンツ情報CIi内に含まれる配信元情報DIの数が配信元番号nよりも大きいか否かを判断する(S5)。配信元情報DIの数が配信元番号nよりも大きい場合(S5でYES)、データベースアプリケーション14は、配信元情報DIn(つまりDI0)の実働負荷及び予測負荷を更新する(負荷更新処理:S6)。具体的には、配信元情報DI内のピアIDに対応したピア情報PIから実働負荷を取得して配信元情報DIに登録する。また、ピア情報PI内の予測負荷情報PLから現在の曜日及び現在時刻を含む時間帯の予測負荷を取得して配信元情報DIに登録する。
【0074】
更新後、配信元番号nをインクリメントしてn=1とし(S7)、ステップS5に戻って次の配信元情報DIn(つまりDI1)について負荷更新処理を実行する(S5〜S7)。
【0075】
コンテンツ情報CIiに含まれる全ての配信元情報DIについて負荷更新処理を実行したとき、データベースアプリケーション14はステップS5で配信元番号nの方が配信元情報DIの数以上であると判断する(S5でNO)。この場合、コンテンツ情報CI0の更新は全て完了したため、コンテンツ番号iをインクリメントしてi=1とし(S8)、ステップS3に戻って次のコンテンツ情報CI1を更新する(S4〜S7)。
【0076】
コンテンツ情報リスト12に含まれる全てのコンテンツ情報CIiの更新が完了したとき、データベースアプリケーション14は、ステップS3でコンテンツ番号iがコンテンツ情報CIの数以上であると判断する(S3でNO)。このとき、データベースアプリケーション14はコンテンツ情報リスト12の更新を終了し、コンテンツ情報リスト要求を送信したピア2に更新されたコンテンツ情報リスト12を送信する(S9)。
【0077】
次に、図9中のステップS6における負荷更新処理の詳細を説明する。負荷更新処理では、コンテンツ情報CIi内の配信元情報DInに含まれる予測負荷及び実働負荷を更新する。
【0078】
図10を参照して、データベースアプリケーション14は、ピア情報PIを特定するためのピア情報番号jを「0」とする(S61)。続いて、ピア情報リスト11に含まれるピア情報PIの数がピア情報番号jよりも大きいか否か判断する(S62)。大きい場合(S62でYES)、ピア情報PIjのピアIDが配信元情報DInのピアIDと一致するか否か判断する(S63)。一致しない場合(S63でNO)、ピア情報番号jをインクリメントしてj=1とし(S66)、ステップS62に戻る。要するに、ピア情報PIjのピアIDが配信元情報DIのピアIDと一致するまでピア情報番号jをインクリメントする。
【0079】
ステップS63でピアIDが一致したとき(S63でYES)、データベースアプリケーション14は、ピア情報PIj内の予測負荷情報PLのうち、現在の曜日及び現在時刻を含む時間帯に対応する予測負荷を取得し(S64)、取得した予測負荷を配信元情報DIに登録する(S65)。たとえば、現在時刻が日曜日の19時10分であり、ピア情報PIj内の予測負荷情報PL1(図3)を利用する場合、データベースアプリケーション14は、予測負荷「20」を取得し、配信元情報DIに登録する。
データベースアプリケーション14はさらに、ピア情報PIj内の実働負荷を取得し、取得した実働負荷を配信元情報DInに登録する(S66)。以上の動作により、配信元情報DInに最新の予測負荷及び実働負荷が登録される。
【0080】
なお、ステップS62の判断の結果、ピア情報番号jがピア情報PIの数以上となる場合(S62でNO)、配信元情報DIn内のピアIDに対応するピア情報PIが存在しない。この場合、対応するピア2がコンテンツ配信システムから離脱した等により、システム上に存在しない。そのため、予測負荷及び実働負荷を「100」として登録する(S68)。これにより、この配信元情報DInに対応するピア2が配信元に決定されるのを防止する。
【0081】
[ピアの動作]
ピア2は、他のピア2から所望のコンテンツをダウンロードするとき、コンテンツ情報リスト12をセンタサーバ1から取得する。ピア2は、取得したコンテンツ情報リスト12に基づいて所望のコンテンツを保存する複数のピア2を選択する。ピア2はさらに、選択された複数のピア2の中から配信元となる他のピア2を決定し、コンテンツをダウンロードする(ダウンロード処理)。以下、ダウンロード処理について説明する。
【0082】
図11を参照して、ピア2の受信アプリケーション22はまず、コンテンツ情報リスト要求をセンタサーバ1に送信し、コンテンツ情報リスト12を取得する(S11)。
【0083】
コンテンツ情報リスト12は複数のコンテンツ情報CIを有するため、ピア2は、コンテンツ情報CIごとに配信元となる他のピア2を決定し、決定された他のピア2からコンテンツ情報CI内のコンテンツIDで特定されるコンテンツをダウンロードする(S12〜S20)。
【0084】
受信アプリケーション22はまず、コンテンツ番号i=0とする(S12)。つまり、配信を要求する所望のコンテンツをコンテンツ情報CI0のコンテンツIDで特定されるコンテンツとする。続いて、受信アプリケーション22は、コンテンツ情報CIの数がコンテンツ番号iよりも大きいことを確認する(S13でYES)。
【0085】
受信アプリケーション22は、コンテンツ情報CI0のコンテンツIDで特定される所望のコンテンツを既に自身のピアデータベース21に保存しているか否か判断する(S14)。既に登録している場合、ダウンロードする必要がないため、コンテンツ番号iをインクリメントしてi=1とし(S21)、次のコンテンツ情報CI1についてステップS13以降の動作を実行する。
【0086】
ステップS14での判断の結果、コンテンツ情報CI0のコンテンツをピアデータベース21に保存していない場合(S14でNO)、受信アプリケーション22は、コンテンツ情報CI0に含まれる1又は複数の配信元情報DIを取得する(S15)。これにより、受信アプリケーション22は、コンテンツの配信元候補となるピア2を特定する。
【0087】
続いて、各配信元情報DI内の実測負荷及び予測負荷を比較して、配信元候補であるピア2の中から配信元となるピア2を決定する(S16〜S19)。
【0088】
受信アプリケーション22はまず、各配信元情報DI内の実働負荷を比較し、ステップS15で特定された配信元候補のピア2のうち、実働負荷が最も低いピア2を選択し、選択されたピア2をリストアップする(第1配信元リスト作成処理:S16)。具体的には、ステップS15で取得した配信元情報DIのうち、実働負荷が最も低い配信元情報DIを特定し、第1配信元リストにリストアップする。図12に示すように、ステップS16の処理により、1又は複数の配信元情報DIがリストアップされる。
【0089】
ステップS16の処理が完了した後、第1配信元リスト内に登録された配信元情報DIが複数存在するか否かを判断する(S17)。リストアップされた配信元情報DIが1つである場合(S17でNO)、その配信元情報DI内のピアIDで特定されるピア2を配信元に決定する(S19)。受信アプリケーション22は、決定されたピア2から配信元情報DI内のコンテンツIDで特定されるコンテンツをダウンロードする(S20)。
【0090】
一方、第1配信元リストに配信元情報DIが複数登録されているとき(S17でYES)、第1配信元リストに列挙された配信元情報DIの予測負荷を比較し、最低の予測負荷を有する配信元情報DIを第2配信元リストにピックアップする(第2配信元リスト作成処理:S18)。第2配信元リストは、図12に示した第1配信元リストと同様の構成であり、第1配信元リストに列挙された配信元情報DIのうち最低の予測負荷を有する配信元リストDIが登録される。
【0091】
ステップS18で第2配信元リストを作成した後、受信アプリケーション22は、作成したリストの初め(つまりリスト番号=0)に登録された配信元情報DI内のピアIDで特定されるピア2を配信元に決定する(S19)。受信アプリケーション22は、決定されたピア2から配信元情報DI内のコンテンツIDで特定されるコンテンツをダウンロードする(S20)。
【0092】
ステップS20でコンテンツをダウンロードした後、コンテンツ番号iをインクリメントしてi=1とし(S21)、ステップS13に戻る。要するに、コンテンツ情報リスト12内に含まれる全てのコンテンツ情報CIについて、コンテンツをダウンロードする。
【0093】
ステップS13でコンテンツ番号iがコンテンツ情報CIの数以上となったとき(S13でNO)、換言すれば、コンテンツ情報リスト12内のコンテンツ情報CIiに関するコンテンツを全てダウンロードしたとき、受信アプリケーション22はダウンロード処理を終了する。
【0094】
このように、受信アプリケーション22は、コンテンツ情報CIに含まれる配信元情報DIにより、所望のコンテンツの配信元候補となるピア2を特定し(S15)、特定された配信元候補のピア2の実働負荷及び予測負荷に基づいて配信元のピア2を決定する。したがって、実働負荷により現在の負荷状況を考慮し、かつ、予測負荷によりダウンロード実行中に発生しうる負荷も予測して配信元となるピア2を決定できる。
【0095】
次に、図11中のステップS16及びS18で実施される第1及び第2配信元リスト作成処理について説明する。
【0096】
[第1配信元リスト作成処理]
初めに、第1配信元リスト作成処理(S16)について説明する。第1配信元リスト作成処理では、ステップS15で取得された配信元情報DIを処理対象とする。
【0097】
図13を参照して、受信アプリケーション22は、配信元番号n=0とし(S101)、配信元情報DIn(つまりDI0)内の実働負荷を最低負荷ML(Minimum Load)に設定する(S102)。続いて、配信元番号nがステップS15で取得した配信元情報DIの数よりも小さいことを確認した後(S103でYES)、配信元情報DI0の実働負荷が最低負荷MLと等しいか否か判断する(S104)。判断の結果、実働負荷が最低負荷MLと等しいため(S104でYES)、第1配信元リストに配信元情報DI0を登録する(S105)。登録後、配信元番号nをインクリメントしてn=1とし(S109)、ステップS103に戻って次の配信元情報DI1の実働負荷を最低負荷MLと比較する(S104)。
【0098】
比較した結果、配信元情報DI1の実働負荷が最低負荷MLと等しい場合(S104でYES)、第1配信元リストに配信元情報DI1を登録する(S105)。したがってこの場合、リストには2つの配信元情報DI0及びDI1が登録される。
【0099】
一方、配信元情報DI1の実働負荷が最低負荷MLよりも小さい場合(S104でNO、かつ、S106でYES)、受信アプリケーション22は第1配信元リストをリセットし、配信元情報DI1のみを登録する(S107)。登録後、配信元情報DI1の実働負荷を最低負荷MLに設定する(S108)。
【0100】
配信元情報DI1の実働負荷が最低負荷MLよりも大きい場合(S104及びS106でともにNO)、配信元情報DI1を登録せずにステップS109に進み、次の配信元情報DI2について同様の処理を実施する。
【0101】
以上の動作により、最低の実働負荷を有する配信元情報DIのみが第1配信元リストに登録される。
【0102】
[第2配信元リスト作成処理]
第1配信元リストに複数の配信元情報DIが登録された場合、第2配信元リスト作成処理が実行される(S18)。第2配信元リスト作成処理の動作は、第1配信処理リスト作成処理の動作と同様である。ただし、第2配信元リスト作成処理では、第1配信元リストに登録された配信元情報DIを処理対象とする。
【0103】
具体的には、第1配信元リストで最初に登録された配信元情報DIの予測負荷を最低負荷MLに設定し(図13中のステップS102)、第1配信元リストに列挙された配信元情報DIの予測負荷と最低負荷MLとを順次比較して、最低の予測負荷を有する配信元情報DIを第2配信元リストに登録する(S103〜S108)。これにより、第2配信元リストに最低の予測負荷を有する配信元情報DIが登録され、登録された配信元情報DIに基づいて配信元となるピア2が決定される。なお、第2配信元リスト作成処理では、第1配信元リスト中のリスト番号順に図13中のステップS103〜S108の処理を実行する。
【0104】
以上、本実施の形態によるコンテンツ配信システムでは、配信元候補であるピア2のうち、まず最低の実働負荷を有するピア2を特定し、特定されたピア2の中からさらに最低の予測負荷を有するピア2を特定したが、予測負荷のみに基づいて配信元となるピア2を決定してもよい。この場合、コンテンツ受信処理は、図11中のステップS16及びステップS17の動作をせず、ステップS18において、ステップS15で取得した配信元情報を対象として第2配信元リスト作成処理が実行される。
【0105】
また、実働負荷と予測負荷とを所定の重み係数で足し合わせた合計値を算出し、算出した合計値に基づいて配信元となるピア2を決定してもよい。
【0106】
また、ピア2は所望の1又は複数のコンテンツに関するコンテンツ情報リストを作成するようセンタサーバ1に要求し、センタサーバ1がピア2の要求に応じて所望のコンテンツのみに関するコンテンツ情報リスト12を作成し、ピア2に通知してもよい。
【0107】
本実施の形態では、各ピア2で配信元となるピア2を決定したが、センタサーバ1で配信元となるピア2を決定してもよい。この場合、たとえば、センタサーバ1はピア2からそのピア2がダウンロードしたいコンテンツのコンテンツIDを受け取る。センタサーバ1は、自身が保有するコンテンツ情報リスト12に基づいて受け取ったコンテンツIDのコンテンツ情報CIを選択し、選択されたコンテンツ情報CI内の配信元情報DIを特定する。さらに、特定された配信元情報DIを処理対象として第1及び第2配信元リスト作成処理を実行し、配信元のピア2を決定する。センタサーバ1は決定されたピア2に関する情報をコンテンツIDを送信したピア2に通知する。これにより、ピア2は配信元に決定された当該他のピア2から所望のコンテンツをダウンロードできる。
【0108】
また、本実施の形態では、予測負荷情報PLをサーバデータベース10に記憶したが、予測負荷情報PLを記憶せず、ピア2から要求を受けるごとにセンタサーバ1が予測負荷を算出してもよい。たとえば、ピア2から配信元のピア2を決定するよう要求を受けたとき、センタサーバ1が所望コンテンツを保存する当該他のピア2を特定し、特定されたピア2のピア動作履歴に基づいて、特定されたピア2の予測負荷を算出してもよい。同様に、実働負荷もサーバデータベース10に記憶しなくてもよい。
【0109】
また、本実施の形態では、時間帯ごとの予測負荷を決定したが、他の方法により予測負荷を決定してもよい。たとえば、過去24時間のピア2の動作履歴から1つの予測負荷を算出してもよい。この場合、算出された予測負荷は直近(過去24時間分)のピア2の動作状況を反映する。この予測負荷を利用した場合、直近の稼働率が高いピア2は配信元として決定されない。
【0110】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【0111】
【図1】本発明の実施の形態によるコンテンツ配信システムの構成を示す機能ブロック図である。
【図2】図1に示したピア情報リストのレコード構成を示す図である。
【図3】図1に示したピア情報リスト及び予測負荷情報データベースに登録される予測負荷情報のレコード構成を示す図である。
【図4】図1に示したコンテンツ情報リストのレコード構成を示す図である。
【図5】図4に示したコンテンツ情報リストに含まれる配信元情報のレコード構成を示す図である。
【図6】図1に示したコンテンツ配信システムの動作の概略を説明するための図である。
【図7】図1に示したセンタサーバの動作のうち、予測負荷情報更新処理の詳細を示すフロー図である。
【図8】図7中のステップS55で利用される負荷パラメータリストのレコード構成を示す図である。
【図9】図1に示したセンタサーバの動作のうち、コンテンツ情報リスト更新処理の詳細を示すフロー図である。
【図10】図9中のステップS6に示した負荷更新処理の詳細を示すフロー図である。
【図11】図1に示したピア2の動作のうち、ダウンロード処理の詳細を示すフロー図である。
【図12】図11中のステップS16で作成される第1配信元リストのレコード構成を示す図である。
【図13】図11中のステップS16及びステップS18の動作の詳細を示すフロー図である。
【符号の説明】
【0112】
1 センタサーバ
2、2A〜2D ピア
10 サーバデータベース
11 ピア情報リスト
12 コンテンツ情報リスト
13 予測負荷情報データベース
14 データベースアプリケーション
15 履歴データベース
16 実働負荷情報データベース
21 ピアデータベース
22 受信アプリケーション
23 配信アプリケーション
CI コンテンツ情報
PL 予測負荷情報
【技術分野】
【0001】
本発明は、コンテンツ配信システム、本システムに使用されるセンタサーバ及びピア、並びにコンテンツ配信方法に関し、さらに詳しくは、互いに接続された複数のピアと、複数のピアに接続されたセンタサーバとを備えたコンテンツ配信システム、本システムに使用されるセンタサーバ及びピア、並びにコンテンツ配信方法に関する。
【背景技術】
【0002】
ピアツーピア型コンテンツ配信システムは、相互に接続された複数のピアを含む。各ピアは他のピアからコンテンツをダウンロードするとともに、他のピアから要求されたコンテンツをそのピアに返信する。ピアツーピア型コンテンツ配信システムでは、このようにコンテンツがピア間で配信され、ダウンロード負荷が各ピアに分散されるため、クライアントサーバ型コンテンツ配信システムに比べ、はるかに多くのピア(クライアント)にコンテンツを配信することができる。
【0003】
しかしながら、コンテンツの配信元となるピアは、コンテンツの配信だけでなく、コンテンツの再生やダウンロードも行う。そのため、コンテンツの再生やダウンロードを実行中のピアにコンテンツの配信を要求すれば、そのピアの負荷が過剰になる。したがって、コンテンツをダウンロードする場合、負荷の低いピアを配信元とする方が好ましい。
【0004】
上記課題を解決するために、本出願人は特願2004−251541号(下記関連出願1)において、配信元となるピアを決定する時点での各ピアの負荷状況を比較して最も負荷の低いピアを配信元に特定するコンテンツ配信システムを提案している。このシステムにより、コンテンツの配信開始時に負荷の低いピアを配信元のピアに選ぶことができる。
【0005】
しかしながら、配信元となるピアは、コンテンツの配信中にコンテンツを再生したりダウンロードしたりする場合がある。この場合、配信元のピアの負荷は、コンテンツの配信開始時では低いものの、配信途中で高くなる。配信中に負荷が過剰に高くなれば、コンテンツの配信処理が中断される可能性がある。
【特許文献1】特開平9−135259号公報
【0006】
[関連出願1]特願2004−251541号
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明の目的は、コンテンツの配信中に発生しうる負荷を考慮して配信元となるピアを決定できるコンテンツ配信システムを提供することである。
【課題を解決するための手段及び発明の効果】
【0008】
本発明によるコンテンツ配信システムは、互いに接続される複数のピアと、複数のピアに接続されるセンタサーバとを備える。センタサーバは、サーバ記憶手段と、負荷予測手段とを備える。サーバ記憶手段は、複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、各ピアの動作履歴とを記憶する。負荷予測手段は、動作履歴に基づいてピアにかかる負荷を予測する。センタサーバ又は複数のピアの各々は、コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する特定手段と、配信元決定手段とを備える。配信元決定手段は、特定された複数のピアの予測された負荷に基づいて、特定された複数のピアの中から1つのピアを決定する。複数のピアの各々は、複数のコンテンツを記憶するためのピア記憶手段と、配信元決定手段により決定された1つのピアから所望のコンテンツをダウンロードする手段とを備える。ここで、特定手段及び配信元決定手段のうちの一方がセンタサーバに含まれ、他方が各ピアに含まれてもよい。各ピアが特定手段を有し、センタサーバからコンテンツ情報を取得して所望のコンテンツを保有している複数の当該他のピアを特定してもよい。また、各ピアが配信元決定手段を有し、負荷予測手段により予測された負荷に基づいて配信元となる1つのピアを決定してもよい。
【0009】
本発明によるコンテンツ配信システムは、ピアの動作履歴からピアにかかる負荷を予測し、予測した負荷に基づいて配信元となるピアを決定する。動作履歴に基づいて負荷を予測することにより、コンテンツの配信中に発生し得る負荷を考慮して配信元のピアを決定できる。
【0010】
好ましくは、サーバ記憶手段はさらに、各ピアにかかる負荷の予測値である予測負荷に関する予測負荷情報を記憶する。負荷予測手段は、解析手段と予測負荷決定手段とを備える。解析手段は動作履歴を解析する。予測負荷決定手段は、解析結果に基づいて各ピアの予測負荷を決定する。センタサーバはさらに、登録手段を備える。登録手段は、決定された予測負荷に基づいて予測負荷情報をサーバ記憶手段に記憶する。配信元決定手段は、予測負荷情報から特定された複数のピアの予測負荷を取得し、取得した予測負荷に基づいて1つのピアを決定する。
【0011】
この場合、センタサーバは各ピアの予測負荷に関する予測負荷情報を保存し、その予測負荷情報を利用して配信元となるピアを決定できる。配信元を決定するときに負荷予測手段により負荷を予測するのではなく、予め予測負荷を保存しているため、配信元を決定するときにより速く配信元となる1つのピアを決定できる。予測負荷情報はセンタサーバから各ピアへ送信されてもよい。たとえば、各ピアが配信元決定手段を備え、センタサーバから予測負荷情報を取得して配信元となる1つのピアを決定してもよい。また、センタサーバが配信元決定手段を備え、予測負荷情報に基づいて配信元となる1つのピアを決定し、その結果を所望のコンテンツをダウンロードするピアに通知してもよい。
【0012】
好ましくは、複数のピアの各々はさらに、自身の動作状況をセンタサーバに通知する手段を備える。センタサーバはさらに、各ピアから通知された動作状況に基づいて各ピアの動作履歴を更新する。
【0013】
この場合、各ピアは動作状況を通知し、センタサーバは各ピアの動作履歴を更新する。そのため、センタサーバは更新された動作履歴を用いて各ピアの予測負荷を決定し、予測負荷情報を更新できる。そのため、ピアの過去の動作実績を反映した予測負荷を得ることができる。
【0014】
好ましくは、予測負荷決定手段は、解析結果に基づいて各時間帯における各ピアの予測負荷を決定し、配信元決定手段は、予測負荷情報内の特定されたピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得した予測負荷に基づいて1つのピアを決定する。
【0015】
この場合、たとえば1時間ごと、30分ごと、10分ごと等の時間帯ごとに各ピアの予測負荷が決定され、現在時刻を含む時間帯の予測負荷を用いて配信元となるピアを決定する。ユーザがピアを利用する時間帯はある程度パターン化されるため、ピアにかかる負荷も時間帯ごとにある程度パターン化される。そのため、動作履歴を解析して各時間帯での予測負荷を決定すれば、ピアの動作傾向を反映した予測結果を得ることができる。
【0016】
好ましくは、解析手段は、動作履歴を解析して各時間帯で各ピアが再生を実行する再生確率を求め、予測負荷決定手段は、再生確率に基づいて予測負荷を決定する。
【0017】
ピアの動作実績のうち、コンテンツの再生実績が最もパターン化される。利用者がピアを用いてコンテンツを視聴する時間帯は利用者の生活パターンに対応してパターン化されやすいからである。したがって、各時間帯での再生確率に基づいて予測負荷を決定することにより、予測の精度が上がる。
【0018】
好ましくは、予測負荷決定手段は、各曜日の各時間帯の予測負荷を決定し、配信元決定手段は、予測負荷情報から現在の曜日と現在時刻を含む時間帯とに対応する予測負荷を取得する。
【0019】
ピアの動作状況は、利用者の生活パターンに対応して各時間帯でパターン化されるだけでなく、各曜日についてもパターン化される。たとえば、平日は夜に稼働する傾向にあり、休日は昼間に稼働する傾向があるといったように、ピアの動作状況は曜日に基づいてもパターン化される。したがって、各曜日の各時間帯で予測負荷を決定することにより、予測の精度が上がる。
【0020】
好ましくは、複数のピアの各々はさらに、自身の動作状況をセンタサーバに通知する手段を備え、センタサーバはさらに、実働負荷決定手段を備える。実働負荷決定手段は、通知された動作状況に基づいて、現在ピアにかかっている実働負荷を決定する。配信元決定手段は、特定された複数のピアの予測された負荷と実働負荷とに基づいて、1つのピアを決定する。
【0021】
この場合、実働負荷により現在のピアにかかっている負荷を把握し、さらに予測された負荷により配信中にピアに発生する可能性のある負荷を予測して、配信元のピアを決定できる。
【0022】
本発明によるコンテンツ配信システムは、互いに接続される複数のピアと、複数のピアに接続されるセンタサーバとを備える。センタサーバは、サーバ記憶手段を備える。サーバ記憶手段は、複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、各時間帯で各ピアにかかる予測負荷に関する予測負荷情報とを記憶する。センタサーバ又は複数のピアの各々は、特定手段と配信元決定手段とを備える。特定手段は、コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する。配信元決定手段は、予測負荷情報に基づいて、特定されたピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得された予測負荷に基づいて特定されたピアの中から1つのピアを決定する。複数のピアの各々は、複数のコンテンツを記憶するためのピア記憶手段と、決定された1つのピアから所望のコンテンツをダウンロードする手段とを備える。ここで、予測負荷はたとえばセンタサーバの管理者により入力されてもよいし、センタサーバ自身が計算等により予測負荷を求め、予測負荷情報をサーバ記憶手段に登録してもよい。各ピアは特定手段を有し、センタサーバからコンテンツ情報を取得して所望のコンテンツを保有している複数の他のピアを特定してもよい。各ピアが配信元決定手段を有し、センタサーバから予測負荷情報を取得して配信元となる1つのピアを決定してもよい。
【0023】
本発明によるコンテンツ配信システムは、各時間帯で各ピアにかかる負荷(予測負荷)を予め予測負荷情報として保有し、現在時刻を含む時間帯の予測負荷に基づいて配信元となるピアを決定する。そのため、配信中にピアに発生し得る負荷を考慮して配信元となるピアを決定できる。
【0024】
本発明によるコンテンツ配信方法は、上記コンテンツ配信システムの動作方法である。また、本発明によるセンタサーバは、上記コンテンツ配信システムに使用されるサーバであり、本発明によるピアは、上記コンテンツ配信システムに使用されるピアである。
【発明を実施するための最良の形態】
【0025】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【0026】
[全体構成]
図1を参照して、コンテンツ配信システムは、センタサーバ(コンピュータ)1と、複数のピア(コンピュータ)2とを備える。これらはインターネット3で相互に接続されるが、LAN(Local Area Network)、WAN(Wide Area Network)、その他のコンピュータネットワーク経由で相互に接続されてもよい。
【0027】
特に限定されないが、通常、センタサーバ1はサービスプロバイダにより運用され、ピア2は一般利用者により操作される。センタサーバ1は、各ピア2によるコンテンツの配信を管理するために、各ピア2に記憶されたコンテンツの詳細に関する情報を収集し、収集した情報に基づいてコンテンツ情報リストを作成する。センタサーバ1は各ピア2にコンテンツ情報リストを通知する。
【0028】
各ピア2は、自身が保有しているコンテンツに関する情報をセンタサーバ1に通知するとともに、コンテンツ情報リストを取得する。したがって、各ピア2はセンタサーバ1に対してクライアントとしても機能する。各ピア2は、センタサーバ1から取得したコンテンツ情報リストに基づいて、所望のコンテンツを他のピア2からダウンロードする。
【0029】
[センタサーバの構成]
センタサーバ(コンピュータ)1は、サーバデータベース10と、データベースアプリケーション14とを備える。これらは図示しないハードディスクに記憶される。
【0030】
サーバデータベース10は、ピア情報リスト11と、コンテンツ情報リスト12と、予測負荷情報データベース13と、履歴データベース15と、実働負荷情報データベース16とを備える。
【0031】
ピア情報リスト11は、各ピアに関する情報(以下、ピア情報という)を含む。ピア情報リスト11の構成を図2に示す。各ピア情報PIは、ピア2を特定するためのピアIDと、そのピア2の利用者の氏名と、ピア2の接続回線の品種(FTTH、ADSL、CABLE等)と、そのピア2の予測負荷情報PL及び実働負荷とを含む。
【0032】
履歴データベース15は、各ピア2の動作履歴(以下、ピア動作履歴という)を記憶する。ピア動作履歴には、コンテンツの再生、ダウンロード、配信といった動作の履歴が登録される。ピア動作履歴は、各ピア2から通知される動作状況(以下、ピア動作状況という)に基づいて更新される。ピア動作状況は、各ピア2が動作を開始又は終了するごとに送信される。たとえば、ピア2がコンテンツの再生、ダウンロード、配信を開始及び終了したときに送信される。
【0033】
予測負荷情報データベース13は、各ピア2の予測負荷情報PLを有する。予測負荷情報PLには、ピア2にかかる負荷の予測値である予測負荷が時間帯ごとに登録される。予測負荷情報PLを図3に示す。予測負荷情報PL内の各レコードは、曜日を登録するためのフィールドと、時間帯を登録するためのフィールドと、予測負荷を登録するためのフィールドとを含む。要するに、予測負荷情報PLは、各ピアの各曜日の各時間帯における予測負荷を示す情報である。たとえば、図3の予測負荷情報PL1に対応するピア2は、日曜日の0時〜3時の時間帯では負荷が「0」と予測され、18時〜21時では負荷が「20」と予測されている。なお、上述のとおり、予測負荷情報PLは対応するピア2のピア情報PIにも登録される。
【0034】
予測負荷は、ピア動作履歴に基づいて決定される。つまり、ピア2の過去の動作実績に基づいて各時間帯でのピア2の動作状況を解析し、その解析結果に基づいて予測負荷が決定される。たとえば、過去の実績において、平日の夜にピア2が常時稼働していれば、その時間帯の予測負荷は高くなり、平日の昼間にピア2がほとんど稼働していなければ、その時間帯の予測負荷は低くなる。
【0035】
ユーザがピア2を利用する時間帯は、そのユーザの生活パターン対応してある程度パターン化される。そのため、ピア動作履歴に基づいて決定される各時間帯の予測負荷はある程度パターン化される。そのため、予測負荷により各時間帯でのピア2の動作を予測できる。
【0036】
実働負荷情報データベース16は、各ピア2に現在かかっている負荷(以下、実働負荷という)を含む。実働負荷は、ピア動作状況に基づいて算出される。なお、上述のとおり、実働負荷は対応するピアのピア情報PIにも登録される。
【0037】
コンテンツ情報リスト12は、図4に示すように複数のコンテンツ情報CIを含む。コンテンツ情報CIは、コンテンツを特定するためのコンテンツIDと、コンテンツのタイトルと、公開開始日時と、公開終了日時とを含む。コンテンツ情報CIはさらに、そのコンテンツの配信元となるピア2に関する情報(以下、配信元情報DIという)を列挙した配信元リストを含む。コンテンツの配信元となるピア2とは、要するにそのコンテンツを保有するピア2であり、配信元情報DIはコンテンツの所在を示す情報である。
【0038】
配信元情報DIは、図5に示すように、配信元となるピアのピアIDと、配信するコンテンツのコンテンツIDとを含む。配信元情報DIはさらに、ピアIDのピア2の実働負荷と予測負荷とを含む。予測負荷は予測負荷情報PL内から取得され、配信元情報DIに登録される。配信元情報DI内の実働負荷及び予測負荷は、配信元となるピア2を決定するときに利用される。
【0039】
データベースアプリケーション14は、各ピア2からピアに関する情報(ピアID、ピアの利用者の氏名等)を受け付け、受け付けた情報に基づいてピア情報PIを作成し、ピア情報リスト11に登録する。また、ピア2が新たに登録したコンテンツに関する情報を受け付け、コンテンツ情報リスト12に登録する。
【0040】
データベースアプリケーション14はさらに、各ピア2からピア動作状況を受け付け、ピア動作状況に基づいてピア2の実働負荷を算出し、実働負荷情報データベース16に登録する。データベースアプリケーション14はまた、受け付けたピア動作状況に基づいてピア動作履歴を更新する。データベースアプリケーション14はまた、ピア動作履歴に基づいて、予測負荷情報PLを更新する。
【0041】
データベースアプリケーション14はさらに、ピア2から送信されたコンテンツ情報リストの送信要求に応じて、コンテンツ情報リスト12を更新してピア2に送信する。
【0042】
[ピアの構成]
ピア2は、複数のコンテンツ(ファイル)を蓄積するピアデータベース21と、受信アプリケーション(プログラム)22と、配信アプリケーション(プログラム)23とを含む。これらは、図示しないハードディスクに記憶される。
【0043】
受信アプリケーション22は、センタサーバ1にコンテンツ情報リスト12を要求し、受信する。また、コンテンツ情報リスト12内の実働負荷及び予測負荷に基づいて所望のコンテンツの配信元となる他のピア2を決定し、決定したピア2から所望のコンテンツをダウンロードする。受信アプリケーション22はまた、ダウンロードしたコンテンツをピアデータベース21に記憶する。
【0044】
配信アプリケーション23は、他のピア2からのコンテンツの配信要求に応答して自身が蓄積するコンテンツを配信する。
【0045】
[動作]
[動作概要]
ピア2が所望のコンテンツの配信を他のピア2に要求する場合、ピア2は実働負荷及び予測負荷が最も低いピア2を配信元に決定する。
【0046】
図6を参照して、複数のピア2のうち、ピア2A〜2Cが同じ内容のコンテンツC1を保有しており、ピア2Dは所望のコンテンツC1をダウンロードすると仮定する。このとき、ピア2Dはまず、センタサーバ1にコンテンツ情報リスト12を要求する(1)。センタサーバ1は、ピア2Dからの要求を受け、コンテンツ情報リスト12を更新する(2)。センタサーバ1は、ピア動作状況を受けて随時更新される実働負荷情報データベース16と、所定期間ごとに更新される予測負荷情報データベース13とに基づいて、コンテンツ情報リスト12内のピア2の配信元情報DIを更新する。具体的には、各配信元情報DI内の実働負荷を最新の実働負荷に更新し、予想負荷を現在時刻(つまりコンテンツ情報リスト12の更新時)を含む時間帯の予想負荷に更新する。
【0047】
センタサーバ1は更新されたコンテンツ情報リスト12をピア2Dに通知する(3)。ピア2Dはコンテンツ情報リスト12を用いて、コンテンツC1の配信元となりうるピア2として、ピア2A〜2Cを選択する。
【0048】
ピア2Dはさらに、選択されたピア2A〜2Cのうち、1つのピア2を配信元に決定する(4)。ピア2Dはまず、各ピア2A〜2Cに現在かかる負荷(つまり実働負荷)を比較し、実働負荷が最も低いピア2を選択する。ここでは、ピア2B及び2Cの実働負荷がともに「0」で最も低い。そのため、ピア2Dはピア2B及びピア2Cを選択する。続いて、ピア2Dは、ピア2B及び2Cが配信実行中にピア2B及び2Cに発生する可能性のある負荷(つまり予測負荷)を比較し、予測負荷が最も低いピア2を選択する。図6では、ピア2Cの予測負荷が「10」で最も低い。したがって、ピア2Dは配信元をピア2Cに決定する。
【0049】
ピア2Dは配信元に決定されたピア2CにコンテンツC1の配信を要求し、コンテンツC1をダウンロードする(5)。
【0050】
以上の動作により、ピア2Dは、各ピア2A〜2Cの実働負荷及び予測負荷に基づいて、配信元となるピア2を決定する。実働負荷は現時点での各ピア2にかかる負荷である。そのため、実働負荷のみに基づいて配信元となるピア2を決定すれば、配信中に配信元のピア2がコンテンツの再生を実施し、負荷が過剰になる場合がある。この場合、配信が中断される可能性もある。本実施の形態では、実働負荷だけでなく予測負荷に基づいて配信元となるピア2を決定する。そのため、配信中に発生する可能性のある負荷も予測した上で配信元のピア2を決定できる。
【0051】
なお、上述の例では、実働負荷及び予測負荷に基づいて配信元のピア2を決定したが、予測負荷のみに基づいて配信元を決定してもよい。この場合ピア2Dは、各ピア2A〜2Cの配信元情報DIを参照し、予測負荷が最も低いピア2を選択する。図6ではピア2Cの予想負荷が「10」で最も低いため、ピア2Dはピア2Cを配信元に決定する。
【0052】
以下、コンテンツ配信システムの動作の詳細を説明する。
【0053】
[センタサーバの動作]
センタサーバ1は、ピア2から送信されるピア動作状況を受け付け、ピア動作履歴を更新し、更新されたピア動作履歴を用いて予測負荷情報PLを更新する(予測負荷情報更新処理)。センタサーバ1はまた、ピア動作状況に基づいて実働負荷を更新する(実働負荷情報更新処理)。
【0054】
センタサーバ1はさらに、ピア2からのコンテンツ情報リスト要求に応答して、コンテンツ情報リスト12を更新し、更新したコンテンツ情報リスト12を要求元のピア2に送信する(コンテンツ情報リスト更新処理)。
【0055】
以下、予測負荷情報更新処理、実働負荷情報更新処理及びコンテンツ情報リスト更新処理について説明する。
【0056】
[予測負荷情報更新処理]
データベースアプリケーション14は、各ピア2から通知されるピア動作状況に基づいてピア動作履歴を更新する。これにより、ピア2の過去の動作実績が蓄積される。
【0057】
データベースアプリケーション14はさらに、ピア動作履歴を解析して各曜日の各時間帯の予測負荷を決定し、予測負荷情報を更新する(予測負荷情報更新処理)。予測負荷情報更新処理は定期的に実行される。
【0058】
図7を参照して、データベースアプリケーション14はまず、ピア情報番号j=0とする(S51)。ピア情報リスト11に登録されたピア情報PIの数がピア情報番号jよりも大きいことを確認した後(S52でYES)、ピア情報PIj(PI0)のピア2(たとえばピア2A)のピア動作履歴を履歴データベース15から取得する(S53)。
【0059】
データベースアプリケーション14は、取得したピア動作履歴に基づいて、各曜日の各時間帯においてピア2Aが再生を実行している確率(以下、再生確率という)を算出する(S54)。具体的には、ピア2Aのピア動作履歴に登録された日曜日のうち、0時〜3時の時間帯に再生が実施された日曜日の数をカウントし、そのカウント数をピア動作履歴に登録された日曜日の総数で除した値を日曜日の0時〜3時の時間帯の再生確率とする。データベースアプリケーション14は、各曜日の各時間帯の再生確率を算出し、図示しないメモリに格納する。
【0060】
続いて、データベースアプリケーション14は、算出された再生確率に基づいて予測負荷を決定する(S55)。具体的には、再生確率及び図8に示した負荷パラメータリストを用いて、式(1)より各曜日の各時間帯における予測負荷を算出する。
【0061】
予測負荷=再生負荷基準値(=30)×回線種別係数×再生確率 (1)
ここで、再生負荷基準値は、各ピアの動作状況(再生、ダウンロード、アップロード)に応じて決定される負荷基準値のうちの再生時の基準値である。回線種別係数は各ピア2の接続回線(FTTH、ADSL、CABLE)に応じて予め設定される重み係数であり、ピア2Aの接続回線(たとえばFTTH)に基づいて負荷パラメータリストから選択される。また、式(1)中の再生確率とは、算出する予測負荷の曜日及び時間帯に対応した再生確率であり、ステップS54で求められる。負荷パラメータリストはサーバデータベース10に記憶されている。
【0062】
各曜日及び各時間帯の予測負荷を全て算出した後、データベースアプリケーション14は、算出された予測負荷に基づいてピア2Aのピア情報PI0内の予測負荷情報PLを更新する(S56)。更新後、ピア情報番号jをインクリメントしてj=1とし(S57)、ステップS52に戻る。ピア情報リスト11内の全てのピア情報PIjを更新したとき、データベースアプリケーション14はステップS52でピア情報番号jがピア情報PIの数以上になったと判断し(S52でNO)、予測負荷情報更新処理を終了する。
【0063】
データベースアプリケーション14は、更新されたピア動作履歴に基づいて予測負荷情報を定期的に更新するため、ピア2の動作実績を反映した予測負荷を得ることができる。
【0064】
各時間帯におけるピアの動作履歴には、コンテンツの再生実績、ダウンロード実績、アップロード(配信)実績等が含まれるが、この中でも再生実績が最もパターン化されている。ユーザがピアを用いてコンテンツを視聴する時間帯はユーザの生活パターンに対応してパターン化されているからである。したがって、再生確率に基づいて予測負荷を決定することにより、負荷の予測精度を上げることができる。
【0065】
なお、再生確率以外のパラメータを用いて予測負荷を決定してもよい。たとえば、ピア動作履歴のうち、アップロード実績やダウンロード実績を用いて予測負荷を決定してもよいし、再生実績を含めたピア2の動作実績全てを考慮して予測負荷を決定してもよい。
【0066】
[実働負荷更新処理]
続いて、実働負荷更新処理について説明する。
【0067】
各ピア2は、再生、ダウンロード及びアップロードの開始時及び終了時等、自身の動作を変更するときに、動作の変更内容をピア動作状況としてセンタサーバ1に通知する。データベースアプリケーション14は、受信したピア動作状況に基づいて各ピア2の現在の動作状況を把握し、以下の式(2)に基づいて実働負荷を算出する。
【0068】
実働負荷=負荷基準値×回線品種係数 (2)
負荷基準値及び回線品種係数は図8の負荷パラメータリストから選択される。たとえば、受信したピア動作状況が再生開始を示す場合、負荷基準値は「30」である。また、ピア動作状況がダウンロード開始を示す場合、負荷基準値は「20」である。一方、受信したピア動作状況が再生終了を示す場合、他の動作(ダウンロード、アップロード)が実行中でなければ、負荷基準値は「0」となる。再生及びダウンロードといった複数の動作を実行中の場合、それらの負荷基準値の合計が式(2)中の負荷基準値に代入される。
【0069】
算出した実働負荷は実働負荷情報データベース16に登録され、かつ、ピア情報PI内にも登録される。各ピア2からピア動作状況を受信するごとに実働負荷は算出される。換言すれば、各ピア2の動作状況が変化するごとに実働負荷は計算され、実働負荷情報データベース16及び対応するピア情報PIが更新される。
【0070】
なお、新たなパラメータを式(1)及び式(2)に追加してもよい。たとえば、各ピアのハードウェアスペック(CPUの処理能力等)に応じて予め設定されるスペック係数等をパラメータとして用いてもよい。
【0071】
[コンテンツリスト更新処理]
図9を参照して、データベースアプリケーション14は、ピア2からのコンテンツ情報リスト要求を監視する(S1)。コンテンツ情報リスト要求を受信したとき(S1でYES)、データベースアプリケーション14はコンテンツ情報リスト12を更新する(S2〜S8)。このとき、データベースアプリケーション14は、リスト内のコンテンツ情報CIごとに実働負荷及び予測負荷を更新する。
【0072】
データベースアプリケーション14はまず、コンテンツ情報リスト12に登録されたコンテンツ情報CIを特定するためのコンテンツ番号iを「0」にする(S2)。続いて、コンテンツ情報リスト12内のコンテンツ情報CIの数がコンテンツ番号iよりも大きいか否かを判断する(S3)。コンテンツ情報CIの数の方がコンテンツ番号iよりも大きい場合(S3でYES)、コンテンツ情報CIi(つまりコンテンツ情報CI0)内の1又は複数の配信元情報DIを更新する(S4〜S7)。
【0073】
データベースアプリケーション14はまず、配信元情報DIを特定するための配信元番号nを「0」とする(S4)。続いて、コンテンツ情報CIi内に含まれる配信元情報DIの数が配信元番号nよりも大きいか否かを判断する(S5)。配信元情報DIの数が配信元番号nよりも大きい場合(S5でYES)、データベースアプリケーション14は、配信元情報DIn(つまりDI0)の実働負荷及び予測負荷を更新する(負荷更新処理:S6)。具体的には、配信元情報DI内のピアIDに対応したピア情報PIから実働負荷を取得して配信元情報DIに登録する。また、ピア情報PI内の予測負荷情報PLから現在の曜日及び現在時刻を含む時間帯の予測負荷を取得して配信元情報DIに登録する。
【0074】
更新後、配信元番号nをインクリメントしてn=1とし(S7)、ステップS5に戻って次の配信元情報DIn(つまりDI1)について負荷更新処理を実行する(S5〜S7)。
【0075】
コンテンツ情報CIiに含まれる全ての配信元情報DIについて負荷更新処理を実行したとき、データベースアプリケーション14はステップS5で配信元番号nの方が配信元情報DIの数以上であると判断する(S5でNO)。この場合、コンテンツ情報CI0の更新は全て完了したため、コンテンツ番号iをインクリメントしてi=1とし(S8)、ステップS3に戻って次のコンテンツ情報CI1を更新する(S4〜S7)。
【0076】
コンテンツ情報リスト12に含まれる全てのコンテンツ情報CIiの更新が完了したとき、データベースアプリケーション14は、ステップS3でコンテンツ番号iがコンテンツ情報CIの数以上であると判断する(S3でNO)。このとき、データベースアプリケーション14はコンテンツ情報リスト12の更新を終了し、コンテンツ情報リスト要求を送信したピア2に更新されたコンテンツ情報リスト12を送信する(S9)。
【0077】
次に、図9中のステップS6における負荷更新処理の詳細を説明する。負荷更新処理では、コンテンツ情報CIi内の配信元情報DInに含まれる予測負荷及び実働負荷を更新する。
【0078】
図10を参照して、データベースアプリケーション14は、ピア情報PIを特定するためのピア情報番号jを「0」とする(S61)。続いて、ピア情報リスト11に含まれるピア情報PIの数がピア情報番号jよりも大きいか否か判断する(S62)。大きい場合(S62でYES)、ピア情報PIjのピアIDが配信元情報DInのピアIDと一致するか否か判断する(S63)。一致しない場合(S63でNO)、ピア情報番号jをインクリメントしてj=1とし(S66)、ステップS62に戻る。要するに、ピア情報PIjのピアIDが配信元情報DIのピアIDと一致するまでピア情報番号jをインクリメントする。
【0079】
ステップS63でピアIDが一致したとき(S63でYES)、データベースアプリケーション14は、ピア情報PIj内の予測負荷情報PLのうち、現在の曜日及び現在時刻を含む時間帯に対応する予測負荷を取得し(S64)、取得した予測負荷を配信元情報DIに登録する(S65)。たとえば、現在時刻が日曜日の19時10分であり、ピア情報PIj内の予測負荷情報PL1(図3)を利用する場合、データベースアプリケーション14は、予測負荷「20」を取得し、配信元情報DIに登録する。
データベースアプリケーション14はさらに、ピア情報PIj内の実働負荷を取得し、取得した実働負荷を配信元情報DInに登録する(S66)。以上の動作により、配信元情報DInに最新の予測負荷及び実働負荷が登録される。
【0080】
なお、ステップS62の判断の結果、ピア情報番号jがピア情報PIの数以上となる場合(S62でNO)、配信元情報DIn内のピアIDに対応するピア情報PIが存在しない。この場合、対応するピア2がコンテンツ配信システムから離脱した等により、システム上に存在しない。そのため、予測負荷及び実働負荷を「100」として登録する(S68)。これにより、この配信元情報DInに対応するピア2が配信元に決定されるのを防止する。
【0081】
[ピアの動作]
ピア2は、他のピア2から所望のコンテンツをダウンロードするとき、コンテンツ情報リスト12をセンタサーバ1から取得する。ピア2は、取得したコンテンツ情報リスト12に基づいて所望のコンテンツを保存する複数のピア2を選択する。ピア2はさらに、選択された複数のピア2の中から配信元となる他のピア2を決定し、コンテンツをダウンロードする(ダウンロード処理)。以下、ダウンロード処理について説明する。
【0082】
図11を参照して、ピア2の受信アプリケーション22はまず、コンテンツ情報リスト要求をセンタサーバ1に送信し、コンテンツ情報リスト12を取得する(S11)。
【0083】
コンテンツ情報リスト12は複数のコンテンツ情報CIを有するため、ピア2は、コンテンツ情報CIごとに配信元となる他のピア2を決定し、決定された他のピア2からコンテンツ情報CI内のコンテンツIDで特定されるコンテンツをダウンロードする(S12〜S20)。
【0084】
受信アプリケーション22はまず、コンテンツ番号i=0とする(S12)。つまり、配信を要求する所望のコンテンツをコンテンツ情報CI0のコンテンツIDで特定されるコンテンツとする。続いて、受信アプリケーション22は、コンテンツ情報CIの数がコンテンツ番号iよりも大きいことを確認する(S13でYES)。
【0085】
受信アプリケーション22は、コンテンツ情報CI0のコンテンツIDで特定される所望のコンテンツを既に自身のピアデータベース21に保存しているか否か判断する(S14)。既に登録している場合、ダウンロードする必要がないため、コンテンツ番号iをインクリメントしてi=1とし(S21)、次のコンテンツ情報CI1についてステップS13以降の動作を実行する。
【0086】
ステップS14での判断の結果、コンテンツ情報CI0のコンテンツをピアデータベース21に保存していない場合(S14でNO)、受信アプリケーション22は、コンテンツ情報CI0に含まれる1又は複数の配信元情報DIを取得する(S15)。これにより、受信アプリケーション22は、コンテンツの配信元候補となるピア2を特定する。
【0087】
続いて、各配信元情報DI内の実測負荷及び予測負荷を比較して、配信元候補であるピア2の中から配信元となるピア2を決定する(S16〜S19)。
【0088】
受信アプリケーション22はまず、各配信元情報DI内の実働負荷を比較し、ステップS15で特定された配信元候補のピア2のうち、実働負荷が最も低いピア2を選択し、選択されたピア2をリストアップする(第1配信元リスト作成処理:S16)。具体的には、ステップS15で取得した配信元情報DIのうち、実働負荷が最も低い配信元情報DIを特定し、第1配信元リストにリストアップする。図12に示すように、ステップS16の処理により、1又は複数の配信元情報DIがリストアップされる。
【0089】
ステップS16の処理が完了した後、第1配信元リスト内に登録された配信元情報DIが複数存在するか否かを判断する(S17)。リストアップされた配信元情報DIが1つである場合(S17でNO)、その配信元情報DI内のピアIDで特定されるピア2を配信元に決定する(S19)。受信アプリケーション22は、決定されたピア2から配信元情報DI内のコンテンツIDで特定されるコンテンツをダウンロードする(S20)。
【0090】
一方、第1配信元リストに配信元情報DIが複数登録されているとき(S17でYES)、第1配信元リストに列挙された配信元情報DIの予測負荷を比較し、最低の予測負荷を有する配信元情報DIを第2配信元リストにピックアップする(第2配信元リスト作成処理:S18)。第2配信元リストは、図12に示した第1配信元リストと同様の構成であり、第1配信元リストに列挙された配信元情報DIのうち最低の予測負荷を有する配信元リストDIが登録される。
【0091】
ステップS18で第2配信元リストを作成した後、受信アプリケーション22は、作成したリストの初め(つまりリスト番号=0)に登録された配信元情報DI内のピアIDで特定されるピア2を配信元に決定する(S19)。受信アプリケーション22は、決定されたピア2から配信元情報DI内のコンテンツIDで特定されるコンテンツをダウンロードする(S20)。
【0092】
ステップS20でコンテンツをダウンロードした後、コンテンツ番号iをインクリメントしてi=1とし(S21)、ステップS13に戻る。要するに、コンテンツ情報リスト12内に含まれる全てのコンテンツ情報CIについて、コンテンツをダウンロードする。
【0093】
ステップS13でコンテンツ番号iがコンテンツ情報CIの数以上となったとき(S13でNO)、換言すれば、コンテンツ情報リスト12内のコンテンツ情報CIiに関するコンテンツを全てダウンロードしたとき、受信アプリケーション22はダウンロード処理を終了する。
【0094】
このように、受信アプリケーション22は、コンテンツ情報CIに含まれる配信元情報DIにより、所望のコンテンツの配信元候補となるピア2を特定し(S15)、特定された配信元候補のピア2の実働負荷及び予測負荷に基づいて配信元のピア2を決定する。したがって、実働負荷により現在の負荷状況を考慮し、かつ、予測負荷によりダウンロード実行中に発生しうる負荷も予測して配信元となるピア2を決定できる。
【0095】
次に、図11中のステップS16及びS18で実施される第1及び第2配信元リスト作成処理について説明する。
【0096】
[第1配信元リスト作成処理]
初めに、第1配信元リスト作成処理(S16)について説明する。第1配信元リスト作成処理では、ステップS15で取得された配信元情報DIを処理対象とする。
【0097】
図13を参照して、受信アプリケーション22は、配信元番号n=0とし(S101)、配信元情報DIn(つまりDI0)内の実働負荷を最低負荷ML(Minimum Load)に設定する(S102)。続いて、配信元番号nがステップS15で取得した配信元情報DIの数よりも小さいことを確認した後(S103でYES)、配信元情報DI0の実働負荷が最低負荷MLと等しいか否か判断する(S104)。判断の結果、実働負荷が最低負荷MLと等しいため(S104でYES)、第1配信元リストに配信元情報DI0を登録する(S105)。登録後、配信元番号nをインクリメントしてn=1とし(S109)、ステップS103に戻って次の配信元情報DI1の実働負荷を最低負荷MLと比較する(S104)。
【0098】
比較した結果、配信元情報DI1の実働負荷が最低負荷MLと等しい場合(S104でYES)、第1配信元リストに配信元情報DI1を登録する(S105)。したがってこの場合、リストには2つの配信元情報DI0及びDI1が登録される。
【0099】
一方、配信元情報DI1の実働負荷が最低負荷MLよりも小さい場合(S104でNO、かつ、S106でYES)、受信アプリケーション22は第1配信元リストをリセットし、配信元情報DI1のみを登録する(S107)。登録後、配信元情報DI1の実働負荷を最低負荷MLに設定する(S108)。
【0100】
配信元情報DI1の実働負荷が最低負荷MLよりも大きい場合(S104及びS106でともにNO)、配信元情報DI1を登録せずにステップS109に進み、次の配信元情報DI2について同様の処理を実施する。
【0101】
以上の動作により、最低の実働負荷を有する配信元情報DIのみが第1配信元リストに登録される。
【0102】
[第2配信元リスト作成処理]
第1配信元リストに複数の配信元情報DIが登録された場合、第2配信元リスト作成処理が実行される(S18)。第2配信元リスト作成処理の動作は、第1配信処理リスト作成処理の動作と同様である。ただし、第2配信元リスト作成処理では、第1配信元リストに登録された配信元情報DIを処理対象とする。
【0103】
具体的には、第1配信元リストで最初に登録された配信元情報DIの予測負荷を最低負荷MLに設定し(図13中のステップS102)、第1配信元リストに列挙された配信元情報DIの予測負荷と最低負荷MLとを順次比較して、最低の予測負荷を有する配信元情報DIを第2配信元リストに登録する(S103〜S108)。これにより、第2配信元リストに最低の予測負荷を有する配信元情報DIが登録され、登録された配信元情報DIに基づいて配信元となるピア2が決定される。なお、第2配信元リスト作成処理では、第1配信元リスト中のリスト番号順に図13中のステップS103〜S108の処理を実行する。
【0104】
以上、本実施の形態によるコンテンツ配信システムでは、配信元候補であるピア2のうち、まず最低の実働負荷を有するピア2を特定し、特定されたピア2の中からさらに最低の予測負荷を有するピア2を特定したが、予測負荷のみに基づいて配信元となるピア2を決定してもよい。この場合、コンテンツ受信処理は、図11中のステップS16及びステップS17の動作をせず、ステップS18において、ステップS15で取得した配信元情報を対象として第2配信元リスト作成処理が実行される。
【0105】
また、実働負荷と予測負荷とを所定の重み係数で足し合わせた合計値を算出し、算出した合計値に基づいて配信元となるピア2を決定してもよい。
【0106】
また、ピア2は所望の1又は複数のコンテンツに関するコンテンツ情報リストを作成するようセンタサーバ1に要求し、センタサーバ1がピア2の要求に応じて所望のコンテンツのみに関するコンテンツ情報リスト12を作成し、ピア2に通知してもよい。
【0107】
本実施の形態では、各ピア2で配信元となるピア2を決定したが、センタサーバ1で配信元となるピア2を決定してもよい。この場合、たとえば、センタサーバ1はピア2からそのピア2がダウンロードしたいコンテンツのコンテンツIDを受け取る。センタサーバ1は、自身が保有するコンテンツ情報リスト12に基づいて受け取ったコンテンツIDのコンテンツ情報CIを選択し、選択されたコンテンツ情報CI内の配信元情報DIを特定する。さらに、特定された配信元情報DIを処理対象として第1及び第2配信元リスト作成処理を実行し、配信元のピア2を決定する。センタサーバ1は決定されたピア2に関する情報をコンテンツIDを送信したピア2に通知する。これにより、ピア2は配信元に決定された当該他のピア2から所望のコンテンツをダウンロードできる。
【0108】
また、本実施の形態では、予測負荷情報PLをサーバデータベース10に記憶したが、予測負荷情報PLを記憶せず、ピア2から要求を受けるごとにセンタサーバ1が予測負荷を算出してもよい。たとえば、ピア2から配信元のピア2を決定するよう要求を受けたとき、センタサーバ1が所望コンテンツを保存する当該他のピア2を特定し、特定されたピア2のピア動作履歴に基づいて、特定されたピア2の予測負荷を算出してもよい。同様に、実働負荷もサーバデータベース10に記憶しなくてもよい。
【0109】
また、本実施の形態では、時間帯ごとの予測負荷を決定したが、他の方法により予測負荷を決定してもよい。たとえば、過去24時間のピア2の動作履歴から1つの予測負荷を算出してもよい。この場合、算出された予測負荷は直近(過去24時間分)のピア2の動作状況を反映する。この予測負荷を利用した場合、直近の稼働率が高いピア2は配信元として決定されない。
【0110】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図面の簡単な説明】
【0111】
【図1】本発明の実施の形態によるコンテンツ配信システムの構成を示す機能ブロック図である。
【図2】図1に示したピア情報リストのレコード構成を示す図である。
【図3】図1に示したピア情報リスト及び予測負荷情報データベースに登録される予測負荷情報のレコード構成を示す図である。
【図4】図1に示したコンテンツ情報リストのレコード構成を示す図である。
【図5】図4に示したコンテンツ情報リストに含まれる配信元情報のレコード構成を示す図である。
【図6】図1に示したコンテンツ配信システムの動作の概略を説明するための図である。
【図7】図1に示したセンタサーバの動作のうち、予測負荷情報更新処理の詳細を示すフロー図である。
【図8】図7中のステップS55で利用される負荷パラメータリストのレコード構成を示す図である。
【図9】図1に示したセンタサーバの動作のうち、コンテンツ情報リスト更新処理の詳細を示すフロー図である。
【図10】図9中のステップS6に示した負荷更新処理の詳細を示すフロー図である。
【図11】図1に示したピア2の動作のうち、ダウンロード処理の詳細を示すフロー図である。
【図12】図11中のステップS16で作成される第1配信元リストのレコード構成を示す図である。
【図13】図11中のステップS16及びステップS18の動作の詳細を示すフロー図である。
【符号の説明】
【0112】
1 センタサーバ
2、2A〜2D ピア
10 サーバデータベース
11 ピア情報リスト
12 コンテンツ情報リスト
13 予測負荷情報データベース
14 データベースアプリケーション
15 履歴データベース
16 実働負荷情報データベース
21 ピアデータベース
22 受信アプリケーション
23 配信アプリケーション
CI コンテンツ情報
PL 予測負荷情報
【特許請求の範囲】
【請求項1】
互いに接続される複数のピアと、前記複数のピアに接続されるセンタサーバとを備えたコンテンツ配信システムであって、
前記センタサーバは、
前記複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、前記各ピアの動作履歴とを記憶するためのサーバ記憶手段と、
前記動作履歴に基づいて前記ピアにかかる負荷を予測する負荷予測手段とを備え、
前記センタサーバ又は複数のピアの各々は、
前記コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する特定手段と、
前記特定された複数のピアの前記予測された負荷に基づいて、前記特定された複数のピアの中から1つのピアを決定する配信元決定手段とを備え、
前記複数のピアの各々は、
前記複数のコンテンツを記憶するためのピア記憶手段と、
前記決定された1つのピアから前記所望のコンテンツをダウンロードする手段とを備えることを特徴とするコンテンツ配信システム。
【請求項2】
請求項1に記載のコンテンツ配信システムであって、
前記サーバ記憶手段はさらに、
前記各ピアにかかる負荷の予測値である予測負荷に関する予測負荷情報を記憶し、
前記負荷予測手段は、
前記動作履歴を解析する解析手段と、
解析結果に基づいて各ピアの予測負荷を決定する予測負荷決定手段とを備え、
前記センタサーバはさらに、
前記決定された予測負荷に基づいて前記予測負荷情報を前記サーバ記憶手段に登録する登録手段を備え、
前記配信元決定手段は、前記予測負荷情報から前記特定された複数のピアの予測負荷を取得し、取得した予測負荷に基づいて前記1つのピアを決定することを特徴とするコンテンツ配信システム。
【請求項3】
請求項2に記載のコンテンツ配信システムであって、
前記複数のピアの各々はさらに、
自身の動作状況を前記センタサーバに通知する手段を備え、
前記センタサーバはさらに、
前記各ピアから通知された動作状況に基づいて前記各ピアの動作履歴を更新する履歴更新手段を備えることを特徴とするコンテンツ配信システム。
【請求項4】
請求項2に記載のコンテンツ配信システムであって、
前記予測負荷決定手段は、前記解析結果に基づいて各時間帯における各ピアの予測負荷を決定し、
前記配信元決定手段は、前記予測負荷情報内の前記特定されたピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得した予測負荷に基づいて前記1つのピアを決定することを特徴とするコンテンツ配信システム。
【請求項5】
請求項4に記載のコンテンツ配信システムであって、
前記解析手段は、前記動作履歴を解析して各時間帯で各ピアが再生を実行する再生確率を求め、
前記予測負荷決定手段は、前記再生確率に基づいて前記予測負荷を決定することを特徴とするコンテンツ配信システム。
【請求項6】
請求項4に記載のコンテンツ配信システムであって、
前記予測負荷決定手段は、前記解析結果に基づいて各曜日の各時間帯の予測負荷を決定し、
前記配信元決定手段は、前記予測負荷情報内の前記特定されたピアの予測負荷のうち現在の曜日と現在時刻を含む時間帯とに対応する予測負荷を取得することを特徴とするコンテンツ配信システム。
【請求項7】
請求項1に記載のコンテンツ配信システムであって、
前記複数のピアの各々はさらに、
自身の動作状況を前記センタサーバに通知する手段を備え、
前記センタサーバはさらに、
前記通知された動作状況に基づいて、現在ピアにかかっている実働負荷を決定する実働負荷決定手段を備え、
前記配信元決定手段は、前記特定された複数のピアの前記予測された負荷と前記実働負荷とに基づいて、前記1つのピアを決定することを特徴とするコンテンツ配信システム。
【請求項8】
互いに接続される複数のピアと、前記複数のピアに接続されるセンタサーバとを備えたコンテンツ配信システムであって、
前記センタサーバは、
前記複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、各時間帯で前記各ピアにかかる予測負荷に関する予測負荷情報とを記憶するためのサーバ記憶手段を備え、
前記センタサーバ又は前記複数のピアの各々は、
前記コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する特定手段と、
前記予測負荷情報に基づいて、前記特定された複数のピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得された予測負荷に基づいて前記特定された複数のピアの中から1つのピアを決定する配信元決定手段とを備え、
前記複数のピアの各々は、
前記複数のコンテンツを記憶するためのピア記憶手段と、
前記決定された1つのピアから前記所望のコンテンツをダウンロードする手段とを備えることを特徴とするコンテンツ配信システム。
【請求項9】
互いに接続される複数のピアと、前記複数のピアに接続されるセンタサーバとを備えたコンテンツ配信システムによるコンテンツ配信方法であって、
前記複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、前記各ピアの動作履歴とを前記センタサーバに記憶するステップと、
前記動作履歴に基づいて前記ピアにかかる負荷を予測するステップと、
前記コンテンツ情報に基づいて、前記ピアに配信する所望のコンテンツを保存している複数の当該他のピアを特定するステップと、
前記特定された前記当該他のピアの前記予測された負荷に基づいて、前記特定された複数の当該他のピアの中から1つのピアを決定するステップと、
前記決定された1つのピアから配信先のピアに前記所望のコンテンツを配信するステップとを備えることを特徴とするコンテンツ配信方法。
【請求項10】
請求項9に記載のコンテンツ配信方法であってさらに、
前記各ピアの動作状況を前記各ピアから前記センタサーバに通知するステップと、
前記通知された動作状況に基づいて、現在ピアにかかっている実働負荷を決定するステップとを備え、
前記1つのピアを決定するステップは、前記特定された複数の当該他のピアの予測された負荷と実働負荷とに基づいて、前記1つのピアを決定することを特徴とするコンテンツ配信方法。
【請求項11】
請求項1〜請求項8のいずれか1項に記載のコンテンツ配信システムに使用されるセンタサーバ。
【請求項12】
請求項1〜請求項8いずれか1項に記載のコンテンツ配信システムに使用されるピア。
【請求項1】
互いに接続される複数のピアと、前記複数のピアに接続されるセンタサーバとを備えたコンテンツ配信システムであって、
前記センタサーバは、
前記複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、前記各ピアの動作履歴とを記憶するためのサーバ記憶手段と、
前記動作履歴に基づいて前記ピアにかかる負荷を予測する負荷予測手段とを備え、
前記センタサーバ又は複数のピアの各々は、
前記コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する特定手段と、
前記特定された複数のピアの前記予測された負荷に基づいて、前記特定された複数のピアの中から1つのピアを決定する配信元決定手段とを備え、
前記複数のピアの各々は、
前記複数のコンテンツを記憶するためのピア記憶手段と、
前記決定された1つのピアから前記所望のコンテンツをダウンロードする手段とを備えることを特徴とするコンテンツ配信システム。
【請求項2】
請求項1に記載のコンテンツ配信システムであって、
前記サーバ記憶手段はさらに、
前記各ピアにかかる負荷の予測値である予測負荷に関する予測負荷情報を記憶し、
前記負荷予測手段は、
前記動作履歴を解析する解析手段と、
解析結果に基づいて各ピアの予測負荷を決定する予測負荷決定手段とを備え、
前記センタサーバはさらに、
前記決定された予測負荷に基づいて前記予測負荷情報を前記サーバ記憶手段に登録する登録手段を備え、
前記配信元決定手段は、前記予測負荷情報から前記特定された複数のピアの予測負荷を取得し、取得した予測負荷に基づいて前記1つのピアを決定することを特徴とするコンテンツ配信システム。
【請求項3】
請求項2に記載のコンテンツ配信システムであって、
前記複数のピアの各々はさらに、
自身の動作状況を前記センタサーバに通知する手段を備え、
前記センタサーバはさらに、
前記各ピアから通知された動作状況に基づいて前記各ピアの動作履歴を更新する履歴更新手段を備えることを特徴とするコンテンツ配信システム。
【請求項4】
請求項2に記載のコンテンツ配信システムであって、
前記予測負荷決定手段は、前記解析結果に基づいて各時間帯における各ピアの予測負荷を決定し、
前記配信元決定手段は、前記予測負荷情報内の前記特定されたピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得した予測負荷に基づいて前記1つのピアを決定することを特徴とするコンテンツ配信システム。
【請求項5】
請求項4に記載のコンテンツ配信システムであって、
前記解析手段は、前記動作履歴を解析して各時間帯で各ピアが再生を実行する再生確率を求め、
前記予測負荷決定手段は、前記再生確率に基づいて前記予測負荷を決定することを特徴とするコンテンツ配信システム。
【請求項6】
請求項4に記載のコンテンツ配信システムであって、
前記予測負荷決定手段は、前記解析結果に基づいて各曜日の各時間帯の予測負荷を決定し、
前記配信元決定手段は、前記予測負荷情報内の前記特定されたピアの予測負荷のうち現在の曜日と現在時刻を含む時間帯とに対応する予測負荷を取得することを特徴とするコンテンツ配信システム。
【請求項7】
請求項1に記載のコンテンツ配信システムであって、
前記複数のピアの各々はさらに、
自身の動作状況を前記センタサーバに通知する手段を備え、
前記センタサーバはさらに、
前記通知された動作状況に基づいて、現在ピアにかかっている実働負荷を決定する実働負荷決定手段を備え、
前記配信元決定手段は、前記特定された複数のピアの前記予測された負荷と前記実働負荷とに基づいて、前記1つのピアを決定することを特徴とするコンテンツ配信システム。
【請求項8】
互いに接続される複数のピアと、前記複数のピアに接続されるセンタサーバとを備えたコンテンツ配信システムであって、
前記センタサーバは、
前記複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、各時間帯で前記各ピアにかかる予測負荷に関する予測負荷情報とを記憶するためのサーバ記憶手段を備え、
前記センタサーバ又は前記複数のピアの各々は、
前記コンテンツ情報に基づいて、所望のコンテンツを保存している複数のピアを特定する特定手段と、
前記予測負荷情報に基づいて、前記特定された複数のピアの予測負荷のうち現在時刻を含む時間帯の予測負荷を取得し、取得された予測負荷に基づいて前記特定された複数のピアの中から1つのピアを決定する配信元決定手段とを備え、
前記複数のピアの各々は、
前記複数のコンテンツを記憶するためのピア記憶手段と、
前記決定された1つのピアから前記所望のコンテンツをダウンロードする手段とを備えることを特徴とするコンテンツ配信システム。
【請求項9】
互いに接続される複数のピアと、前記複数のピアに接続されるセンタサーバとを備えたコンテンツ配信システムによるコンテンツ配信方法であって、
前記複数のピアに保存されている複数のコンテンツの所在に関するコンテンツ情報と、前記各ピアの動作履歴とを前記センタサーバに記憶するステップと、
前記動作履歴に基づいて前記ピアにかかる負荷を予測するステップと、
前記コンテンツ情報に基づいて、前記ピアに配信する所望のコンテンツを保存している複数の当該他のピアを特定するステップと、
前記特定された前記当該他のピアの前記予測された負荷に基づいて、前記特定された複数の当該他のピアの中から1つのピアを決定するステップと、
前記決定された1つのピアから配信先のピアに前記所望のコンテンツを配信するステップとを備えることを特徴とするコンテンツ配信方法。
【請求項10】
請求項9に記載のコンテンツ配信方法であってさらに、
前記各ピアの動作状況を前記各ピアから前記センタサーバに通知するステップと、
前記通知された動作状況に基づいて、現在ピアにかかっている実働負荷を決定するステップとを備え、
前記1つのピアを決定するステップは、前記特定された複数の当該他のピアの予測された負荷と実働負荷とに基づいて、前記1つのピアを決定することを特徴とするコンテンツ配信方法。
【請求項11】
請求項1〜請求項8のいずれか1項に記載のコンテンツ配信システムに使用されるセンタサーバ。
【請求項12】
請求項1〜請求項8いずれか1項に記載のコンテンツ配信システムに使用されるピア。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2007−87281(P2007−87281A)
【公開日】平成19年4月5日(2007.4.5)
【国際特許分類】
【出願番号】特願2005−277816(P2005−277816)
【出願日】平成17年9月26日(2005.9.26)
【出願人】(000000273)オンキヨー株式会社 (502)
【Fターム(参考)】
【公開日】平成19年4月5日(2007.4.5)
【国際特許分類】
【出願日】平成17年9月26日(2005.9.26)
【出願人】(000000273)オンキヨー株式会社 (502)
【Fターム(参考)】
[ Back to top ]