JP2011002932A - コンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法 - Google Patents

コンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法 Download PDF

Info

Publication number
JP2011002932A
JP2011002932A JP2009144298A JP2009144298A JP2011002932A JP 2011002932 A JP2011002932 A JP 2011002932A JP 2009144298 A JP2009144298 A JP 2009144298A JP 2009144298 A JP2009144298 A JP 2009144298A JP 2011002932 A JP2011002932 A JP 2011002932A
Authority
JP
Japan
Prior art keywords
content data
acquisition
content
distribution
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009144298A
Other languages
English (en)
Inventor
Masahiro Kamei
雅弘 亀井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2009144298A priority Critical patent/JP2011002932A/ja
Publication of JP2011002932A publication Critical patent/JP2011002932A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】複数のノード装置において迅速にコンテンツデータを取得すること。
【解決手段】情報処理装置であるセンタサーバ10は、ネットワークを介して相互にコンテンツデータを送受信可能なノード装置である複数の配信サーバ1それぞれのコンテンツデータの配信能力に基づいて、複数の配信サーバ1を複数のグループに分け、グループごとにコンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を生成する。各配信サーバ1は、ダウンロード情報をネットワーク8を介してセンタサーバ10から取得する。各配信サーバ1は、ダウンロード情報に基づいた取得タイミングで、他の配信サーバ1へコンテンツデータの取得要求を行い、その後、他の配信サーバ1におけるコンテンツデータの配信能力が低いと判定されたとき、ダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、他の配信サーバ1へコンテンツデータの取得要求を行う。
【選択図】図6

Description

本発明は、コンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法に関する。詳細には、ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置にコンテンツデータを配信するコンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法に関する。
この種のシステムに関し、特許文献1には、ピアツーピア型のコンテンツ配信に関する技術が開示されている。具体的に、この技術においては、各ノード装置がコンテンツデータを記憶している他のノード装置を検索し、検索されたノード装置のうち何れかのノード装置にコンテンツデータを要求する。これにより、各ノード装置はコンテンツデータを取得するようになっている。
特開2006−197400号公報
ところで、同一のコンテンツデータを複数のノード装置に配信したい場合がある。この場合において、あるコンテンツデータを記憶しているノード装置に対して多数のノード装置がコンテンツデータの要求を一斉に行うと、そのコンテンツデータを記憶しているノード装置に負荷が集中してしまう。そこで、コンテンツデータを配信する際、例えば、最初のうちはコンテンツデータの要求を行うノード装置を少数とし、時間の経過に従ってコンテンツデータの要求を行うノード装置を増加させていくようにすることが考えられる。コンテンツデータの要求を行って、コンテンツデータを取得したノード装置は、他のノード装置に対してコンテンツデータを配信可能になる。従って、コンテンツデータを取得したノード装置が増えるほど、配信可能なノード装置が増える。
しかしながら、先に他のノード装置に対して配信可能になったノード装置の配信能力が低くなってしまったとき、後からコンテンツデータを要求し取得しようとするノード装置へのコンテンツデータの配信が遅れる問題がある。
そこで、本発明は、他のノード装置に対して先に配信可能になったノード装置の配信能力が低くなってしまった場合であっても、迅速にコンテンツデータを配信することができるコンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法を提供することを目的とする。
上記目的を達成するために、請求項1に記載の発明は、ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力の情報を取得する配信能力取得手段と、前記配信能力取得手段により取得された各前記ノード装置の配信能力の情報に基づき、前記複数のノード装置が複数のグループに分けられて、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を生成するダウンロード情報生成手段と、前記ダウンロード情報を前記ノード装置へ送信するダウンロード情報送信手段と、を備える情報処理装置と、前記ダウンロード情報を前記ネットワークを介して取得するダウンロード情報取得手段と、前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第1コンテンツ取得手段と、前記他のノード装置における前記コンテンツデータの配信能力を判定する判定手段と、前記判定手段により前記配信能力が低いと判定されたとき、前記ダウンロード情報取得手段により取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記第1コンテンツ取得手段により前記コンテンツデータを記憶している他の前記ノード装置へ前記コンテンツデータの取得要求を行う第2コンテンツ取得処理手段と、をそれぞれ備える複数の前記ノード装置と、を有することを特徴とするコンテンツ配信システムとした。
また、請求項2に記載の発明は、請求項1に記載のコンテンツ配信システムにおいて、前記情報処理装置のダウンロード情報生成手段は、前記配信能力の高いノード装置ほど前記コンテンツデータの取得タイミングが早くなるように前記ダウンロード情報を生成することを特徴とする。
また、請求項3に記載の発明は、請求項1に記載のコンテンツ配信システムにおいて、前記情報処理装置のダウンロード情報生成手段は、前記配信能力が所定値未満のノード装置よりも前記配信能力が所定値以上のノード装置の方が前記コンテンツデータの取得タイミングが早くなるように前記ダウンロード情報を生成することを特徴とする。
また、請求項4に記載の発明は、請求項2又は3に記載のコンテンツ配信システムにおいて、前記ダウンロード情報生成手段は、前記コンテンツデータの取得タイミングが早い順に、前記複数のグループを識別するグループ番号の値が小さくなるように、前記複数のグループを分け、前記ノード装置の前記第1コンテンツ取得処理手段又は前記第2コンテンツ取得処理手段は、前記コンテンツデータを記憶するノード装置のうちその属するグループ番号がより小さいノード装置から優先して前記コンテンツデータを取得することを特徴とする。
また、請求項5に記載の発明は、請求項1〜4のいずれか1項に記載のコンテンツ配信システムにおいて、前記ノード装置は、前記第1コンテンツ取得手段または前記第2コンテンツデータ取得手段により、前記コンテンツデータを取得すると、他の前記ノード装置へ前記ノード装置が前記コンテンツデータを取得したことを通知する通知手段を備え、前記第2コンテンツ取得手段は、前記通知手段により通知されたノード装置を含む前記コンテンツデータを記憶している他の前記ノード装置とへコンテンツデータの取得要求を行うことを特徴とする。
また、請求項6に記載の発明は、ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力に基づいて、前記複数のノード装置が複数のグループに分けられ、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を、前記ネットワークを介して取得するダウンロード情報取得手段と、前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第1コンテンツ取得処理手段と、前記他のノード装置における前記コンテンツデータの配信能力を判定する判定手段と、前記判定手段により前記配信能力が低いと判定されたとき、前記ダウンロード情報取得手段により取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記第1コンテンツ取得手段により前記コンテンツデータを記憶している他の前記ノード装置へ前記コンテンツデータの取得要求を行う第2コンテンツ取得処理手段と、を備えるノード装置とした。
また、請求項7に記載の発明は、ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力に基づいて、前記複数のノード装置が複数のグループに分けられ、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を、前記ネットワークを介して取得するダウンロード情報取得ステップと、前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第1コンテンツ取得ステップと、前記他のノード装置における前記コンテンツデータの配信能力を判定する判定ステップと、前記判定ステップにより前記配信能力が低いと判定されたとき、前記ダウンロード情報取得ステップにより取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記コンテンツデータを記憶している他の前記ノード装置へコンテンツデータの取得要求を行う第2コンテンツ取得処理ステップと、をコンピュータに実現させることを特徴とするプログラムとした。
また、請求項8に記載の発明は、コンテンツデータの配信方法であって、複数のノード装置が複数のグループに分けられて、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を情報処理装置が生成するステップと、前記情報処理装置が、前記ダウンロード情報を前記ノード装置へネットワークを介して送信するステップと、前記ノード装置が、前記ダウンロード情報を前記情報処理装置から前記ネットワークを介して取得するステップと、前記ノード装置が、前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ前記コンテンツデータの送信を前記ネットワークを介して要求して、当該コンテンツデータを前記ネットワークを介して取得要求を行うステップと、前記ノード装置が、前記コンテンツデータの送信を要求した前記他のノード装置における前記コンテンツデータの配信能力を判定するステップと、前記ノード装置が、前記コンテンツデータの送信を要求した前記他のノード装置の配信能力が低いと判定したとき、前記ダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記コンテンツデータを記憶している前記他のノード装置へコンテンツデータの取得要求を行うステップと、を有することを特徴とするコンテンツデータの配信方法とした。
本発明によれば、コンテンツ配信システムを構成する複数のノード装置(例えば、サーバや端末装置)において迅速にコンテンツデータを取得することができるコンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法を提供することができる。
本発明の一実施形態におけるコンテンツ配信システムの各配信サーバ及びセンタサーバの接続態様の一例を示す図である。 ダウンロード指示書の説明図である。 配信サーバがコンテンツデータを取得する様子を示す図である。 配信サーバがコンテンツデータを取得する様子を示す図である。 配信実績テーブルの内容を示す図である。 ダウンロード指示書の生成方法の説明図である。 配信サーバがコンテンツデータを取得する様子を示す図である。 配信サーバの構成を示す図である。 配信サーバにおけるメイン処理フローチャートである。 配信サーバにおけるコンテンツ取得処理フローチャートである。 配信サーバにおけるコンテンツホルダの検索処理フローチャートである。 センタサーバの構成を示す図である。 センタサーバのメイン処理フローチャートである。
[1.コンテンツ配信システムSの構成等]
まず始めに、図1を参照して、本発明の一実施形態におけるコンテンツ配信システムの概要について説明する。図1は、本実施形態におけるコンテンツ配信システムSの各配信サーバ(ノード装置の一例)及びセンタサーバ(情報処理装置の一例)の接続態様の一例を示す図である。
図1の下部枠51内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者の装置5、FTTH(Fiber To The Home)回線事業者の装置6、及び通信回線7等によって、インターネット等のネットワーク(現実世界のネットワーク)8が構築されている。通信回線7として、例えば、電話回線や光ケーブル等がある。
コンテンツ配信システムSは、コンテンツデータを配信するためのシステムである。図1の上部枠50内に示すように、ネットワーク8を介して相互に接続された複数の配信サーバ1a,1b,1c,1d,・・・と、センタサーバ10と、図示しない複数の端末装置とを備えて、コンテンツ配信システムSは構成される。これらの装置には、各装置を示す情報としての固有の製造番号(例えば、MACアドレス)及びIP(Internet Protocol)アドレスが割り当てられている。なお、製造番号及びIPアドレスは、複数の装置間で重複しないものである。また、以下の説明において、配信サーバ1a,1b,1c,1d,・・のうち何れかの配信サーバ又は全ての配信サーバを示す場合には、便宜上、配信サーバ1という場合がある。また、コンテンツデータは、例えば、映画データ、音楽データ、文書データなどである。
本実施形態のコンテンツ配信システムSにおいては、図1の上部枠50内に示すような、オーバーレイネットワーク9が構築される。つまり、このオーバーレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味している。オーバーレイネットワーク9は、複数の配信サーバ1a,1b,1c,1d,・・・から形成されている。なお、以下において、オーバーレイネットワーク9上に配置された配信サーバ1をコンテンツ配信システムSに参加している配信サーバ1という。また、各配信サーバ1には固有の識別情報(以下、「サーバID」とする)がそれぞれ割り当てられている。この識別情報は、例えば、装置のMACアドレス又はIPアドレスを所定のハッシュ関数でハッシュ化して生成される。
コンテンツ配信システムSでは、各配信サーバ1でコンテンツデータを記憶しており、図示しない端末装置から要求に応じてコンテンツデータを送信する。各配信サーバ1でコンテンツデータを記憶するために、本実施形態に係るコンテンツ配信システムSでは、まず、センタサーバ10から一部の配信サーバ1にコンテンツデータを送信する。その後、全ての配信サーバ1でコンテンツデータが取得されるまで、配信サーバ1間でコンテンツデータが送受信される。
このとき、端末装置からの要求に対応するためには、全ての配信サーバ1において迅速にコンテンツデータの取得を終了することが望ましい。
そこで、コンテンツ配信システムSにおいては、各配信サーバ1の取得タイミングの情報を含むダウンロード指示書(ダウンロード情報の一例)が用いられる。ダウンロード指示書により、迅速かつ効率的にコンテンツデータが複数の配信サーバ1により取得される。
ダウンロード指示書には、コンテンツデータの識別情報(以下、「コンテンツID」とする)及びコンテンツデータの配信開始時間の他、コンテンツデータの取得タイミングの情報を含んでいる。この取得タイミングは、複数の配信サーバ1が複数のグループに分けられ、グループごとに異なっている。図2に示す例では、取得タイミングの情報として第1番から第n番までのグループと各配信サーバ1(例えば、サーバID)とが関連づけられている。各配信サーバ1は、この取得タイミングの情報に基づき、自配信サーバ1に割り当てられたグループ番号に所定時間X(例えば、10秒)を乗算した時間だけ遅れた取得タイミングでコンテンツデータを取得する。すなわち、所定時間Xとグループ番号とにより取得遅延時間が規定される。なお、本実施形態では、1台の配信サーバ1が同時に4台の配信サーバ1へコンテンツデータを送信することができるものとして説明する。また、所定時間Xはダウンロード指示書に含まれる情報としてもよい。
図3に示すように、センタサーバ10は、コンテンツデータの配信開始時間になると、第1番のグループに属する配信サーバ1(ここでは、3台の配信サーバ1)へコンテンツデータを送信し、これらの配信サーバ1にコンテンツデータを記憶させる。以下、このようにコンテンツデータを記憶することとなった配信サーバ1をコンテンツホルダともいう。
その後、第2番から第n番のグループに属する配信サーバ1は、ダウンロード指示書に基づき、コンテンツホルダからコンテンツデータを取得する。すなわち、図3に示すように、まず、第2番のグループに属する配信サーバ1は、配信開始時間から所定時間Xだけ遅れて、第1番のグループに属してコンテンツホルダとなった配信サーバ1へコンテンツデータの取得要求を行ってコンテンツデータを取得する。次に、第3番のグループに属する配信サーバ1は、配信開始時間から所定時間2Xだけ遅れて、第2番のグループに属してコンテンツホルダとなった配信サーバ1へコンテンツデータの取得要求を行ってコンテンツデータを取得する。以降、同様に、第n番のグループに属する配信サーバ1まで配信開始時間から所定時間(n−1)Xだけ遅れて、コンテンツデータの取得処理が行われる。以下、このようにコンテンツホルダへコンテンツデータの取得要求を行う配信サーバ1をリクエスタともいう。
ところで、コンテンツデータは、例えばドラマや映画などの動画データを含むような場合には、数百M〜数Gバイトのデータとなる場合があることから、多くの配信時間を要する。そのため、配信サーバ1において完全にコンテンツデータを取得した後に、コンテンツデータの送信処理を行った場合、配信サーバ1の数が多いと、すべての配信サーバ1にコンテンツデータが行き渡るまでに時間がかかり、迅速性に欠ける。
そこで、本実施形態に係るコンテンツ配信システムSでは、センタサーバ10において、コンテンツデータを複数に分割して分割コンテンツデータを生成して配信するようにしている。ダウンロード指示書では、コンテンツデータの識別情報として各分割コンテンツデータのコンテンツIDと配信開始時間の情報とが関連づけられている。各配信サーバ1は、図3(a),(b)に示すように、ダウンロード指示書に従って複数の分割コンテンツデータを先頭から順次取得していく。なお、同図では、所定時間Xの間に、所定基準の配信能力以上の配信サーバ1からは1台の配信サーバ1に対して少なくとも3つの分割コンテンツデータが送信されるものとしている。
以上のように、コンテンツ配信システムSでは、配信サーバ1を取得タイミングが早い順に第1〜第n(nは2以上の整数)グループに分けている。さらに、第m+1グループ(1≦m≦(n−1))の配信サーバ1は、リクエスタとしてダウンロード指示書に基づいて第m+1番目に遅い取得タイミングで、コンテンツホルダである第1〜第mグループの配信サーバ1のいずれかへコンテンツデータの取得要求を行って、コンテンツデータを取得する。これにより、迅速かつ効率的にコンテンツデータの配信を行うことができる。
コンテンツデータの取得タイミングは、上述のようにダウンロード指示書により規定されるものであるが、このダウンロード指示書は、センタサーバ10により生成され、配信サーバ1へ送信される。
センタサーバ10は、ダウンロード指示書の生成を、配信サーバ1が過去に配信したコンテンツデータの配信実績に応じて生成するようにしている。これは、配信能力が低い配信サーバ1が存在する場合には、配信効率が悪くなるからである。例えば、図4に示すように、グループ番号が小さいグループに属する配信サーバ1(ここでは、1番目のグループに属する配信サーバ1c)の配信能力が低い場合、この配信サーバ1cからコンテンツデータを取得する次のグループ番号に属する配信サーバ1では、コンテンツデータを取得するための時間がかかってしまう。
そこで、センタサーバ10では、配信サーバ1におけるコンテンツデータの配信実績に基づき、配信能力の高い配信サーバ1ほどコンテンツデータの取得タイミングが早くなるようにダウンロード指示書を生成する。換言すれば配信能力が低い配信サーバ1はできるだけグループ番号が大きいグループに属させるようにダウンロード指示書を生成する。
コンテンツデータの配信実績は、例えば1つのコンテンツデータが配信されるごとに、各配信サーバが配信実績の情報(以下、「配信実績情報」とする。)をセンタサーバ10へ送信することによって実現している。配信実績情報は、配信サーバ1の配信能力を示す情報である。例えば、リクエスタがコンテンツホルダからの分割コンテンツデータを取得するときの受信速度とコンテンツホルダのサーバIDとが関連づけられた情報である。上述した配信実績情報は、リクエスタから送信される。なお、配信実績情報を、コンテンツホルダがリクエスタへ分割コンテンツデータを配信するときの送信速度とコンテンツホルダのサーバIDとが関連づけられた情報とし、コンテンツホルダから送信されるものとしてもよい。
各配信サーバ1は、コンテンツデータごとに配信実績情報をセンタサーバ10へ送信する。配信実績情報を取得したセンタサーバ10は、取得した配信実績情報を、図5に示すように、配信サーバ1のサーバIDに関連づけた配信実績テーブルが内部の記憶部に記憶する。なお、配信サーバ1a〜1dのサーバIDを「1a」〜「1d」としている。図5に示す例では、例えば、配信サーバ1aに対するリクエスタの受信速度が「8.9Mbps」、「8.5Mbps」、・・・といった順の配信実績情報をセンタサーバ10が受信したことを示す。また、配信実績テーブルには、配信実績情報に含まれる受信速度を平均した値(以下、「配信実績平均値」とする。)も含まれる。この配信実績平均値は、センタサーバ10で演算される。
そして、配信実績情報に基づき、配信能力が高い配信サーバ1から順にグループ番号の小さいグループからグループを割り当てていく。「配信能力」が高いとは、配信実績情報に受信速度が含まれる場合には、受信速度が速いことを意味する。センタサーバ10は、配信実績テーブルに基づき、図6の左図に示すように、受信速度の平均値である配信実績平均値が大きいサーバIDの配信サーバ1ほど、グループ番号が小さくなるようにグループを割り当てる。なお、受信速度に代えて送信速度の情報を配信実績情報に含ませる場合には、配信実績テーブルにはサーバID毎に、送信速度と、送信速度の平均値である配信実績平均値が含まれる。そして、受信速度の場合と同様に、送信速度が速いときに「配信能力」が高いとする。
センタサーバ10は、上述のように各配信サーバ1をグループ分けした後、図6の右図に示すように、次に配信するコンテンツデータに関するダウンロード指示書を生成する。
各配信サーバは、このダウンロード指示書に従った取得タイミングでコンテンツデータを取得することで、配信能力の低い配信サーバが早いタイミングでコンテンツホルダとなることを防止している。これにより、コンテンツホルダが増加したときに配信能力の低い配信サーバがコンテンツホルダとなってコンテンツデータの配信が遅延してしまうのを防止することができ、効率的な配信を行うことができる。
なお、例えば、配信能力が所定値以上であれば、安定してコンテンツデータを配信できるとする。その場合、配信能力が所定値未満のノード装置よりも配信能力が所定値以上のノード装置の方がコンテンツデータの取得タイミングが早くなるようにダウンロード情報を生成するようにしてもよい。すなわち、配信サーバ1を配信能力が所定値以上の配信サーバ1と配信能力が所定値未満の配信サーバ1に分け、配信能力が所定値以上の配信サーバ1をグループ番号の小さいグループから割り当てるようにしてもよい。このようにすることで、グループ分けが容易となり、処理負荷を低減することができる。
次に、リクエスタとなる配信サーバ1がコンテンツホルダとなった配信サーバ1からコンテンツデータを取得する手順を説明する。
上述したように、配信サーバ1及びコンテンツデータにそれぞれ固有の識別情報が割り当てられている。固有の識別情報として、配信サーバ1にはサーバID、コンテンツデータにはコンテンツIDが割り当てられる。この識別情報に基づいて、配信サーバ1間でデータの送受信が行われる。本実施形態においては、各識別情報は例えば、2桁の16進数で規定される。そして、コンテンツIDを超えず、このコンテンツIDに最も近いサーバIDを有する配信サーバ1がそのコンテンツIDに対応するコンテンツホルダの所在情報を記憶するものとしており、ここではルートノードということとする。なお、コンテンツホルダとは、コンテンツデータを記憶する配信サーバ1を意味する。また、各配信サーバ1は、一部の配信サーバ1のサーバIDと所在情報とを関連づけたテーブル(以下、「ルーティングテーブル」という)を記憶している。所在情報を記憶した配信サーバ1のうち宛先IDに最も近いサーバIDの配信サーバ1がルーティングテーブルから選択されてメッセージを送信、または、転送する。なお、コンテンツID、ノードID(サーバID)、インデックステーブル及びルーティングテーブルについては、特開2008−250570号公報等に記載された技術と同様である。
各配信サーバ1は、コンテンツデータを取得すると、コンテンツホルダとなる。このコンテンツデータのコンテンツIDを宛先IDとし、ルーティングテーブルに記憶したサーバIDのうち、宛先IDに最も近いサーバIDの配信サーバ1へ、自配信サーバ1の所在情報やグループ番号などを含む登録メッセージを送信する。この登録メッセージは、他の配信サーバ1により転送されてルートノードに到達し、ルートノードでコンテンツホルダの所在情報やグループ番号などが記憶される。
一方、各配信サーバ1は、リクエスタとしてコンテンツデータを取得しようとするとき、そのコンテンツデータのコンテンツIDを宛先IDとし、ルーティングテーブルに記憶したサーバIDのうち、宛先IDに最も近いサーバIDの配信サーバ1に探索メッセージを送信する。この探索メッセージは、他の配信サーバ1により転送されてルートノードに到達する。ルートノードは、コンテンツホルダの所在情報をリクエスタへ送信する。これにより、リクエスタは、コンテンツホルダの所在情報やグループ番号を知ることになり、コンテンツホルダにコンテンツデータの取得要求を行って、コンテンツデータを取得する。
このように、コンテンツ配信システムSに属する複数の配信サーバ1をグループに分けて、グループごとにコンテンツデータの取得タイミングを異ならせるようにしている。このようにすることで、効率的にコンテンツデータの配信を行うことができる。しかし、通常では配信能力が高い配信サーバ1であっても、次のような問題がある。例えば、ネットワーク8に接続するための通信路においてトラフィックが混雑したり、配信サーバ1の内部の処理負荷が大きくなっているような場合がある。この場合、一時的に配信能力が低くなるようなことがある。このように一時的に配信能力が低くなると、上述のようにダウンロード指示書を生成しても、迅速かつ効率的にコンテンツデータを取得することができなくなる恐れがある。例えば、図4に示すように、グループ番号が先頭側の配信サーバ1(ここでは、1番目の配信サーバ1c)の配信能力が低い場合、この配信サーバ1cからコンテンツデータを取得するための時間がかかってしまう。その結果、その次のグループ番号の一部の配信サーバ1も同様にコンテンツデータの取得が遅れる。また、配信サーバ1からコンテンツデータを取得できないときに、センタサーバ10に対してコンテンツデータの取得要求を行うようにした場合、センタサーバ10に負荷がかかってしまう。
そこで、配信サーバ1は、ダウンロード指示書に基づいた取得タイミングで取得要求を行ったコンテンツホルダの配信能力が低いときにはこのコンテンツホルダからのコンテンツデータの取得を一時停止する。取得タイミングよりも遅い取得タイミングで、コンテンツホルダの取得要求を行う。例えば、図7に示すように、1番のグループに属する配信サーバ1cの配信能力が低い場合に、この配信サーバ1をコンテンツホルダとしてコンテンツデータの取得を開始するとコンテンツデータの取得(ダウンロード)が遅延して滞ったとする。そこで、1番目の配信サーバ1cをコンテンツホルダとした第2番のグループに属する配信サーバ1(図7において円で囲んだ部分の配信サーバ1)は、第3番のグループに属する配信サーバと同じ取得タイミングでコンテンツデータの取得要求を行うようにしている。
このようにコンテンツホルダの配信能力が低いときにはこのコンテンツホルダからのコンテンツデータの取得を中止することで、コンテンツデータの配信が滞ることを抑制することができる。また、配信サーバ1からコンテンツデータを取得できないときに、センタサーバ10に対してコンテンツデータの取得要求を行う場合に比べて、センタサーバ10にかかる負荷を抑制することができる。
[1.2.配信サーバ1の具体的構成及び動作]
まず、配信サーバ1の具体的構成及び動作の一例について説明する。
(配信サーバ1の構成について)
まず、配信サーバ1の具体的構成について説明する。図8は、本実施形態のコンテンツ配信システムSにおける配信サーバ1の構成を示す図である。
配信サーバ1は、一般のサーバコンピュータを適用可能であり、図8に示すように、制御部11と、記憶部12と、通信部13とを備えており、これらはシステムバス15を介して相互に接続されている。制御部11は、配信サーバ1全体を制御する。また、記憶部12は、各種情報を記憶する記憶領域を有する書き換え可能な記憶部である。また、通信部13は、センタサーバ10や図示しない端末装置と通信するための通信インターフェイスである。
制御部11は、CPU(Central Processing Unit)、内部メモリなどから構成される。この内部メモリには、センタサーバ10や図示しない端末装置との間でコンテンツデータや各種メッセージなどを送受信するための情報処理プログラムが格納されている。CPUは内部メモリに記憶されている情報処理プログラムを読み出して実行することによって、ダウンロード情報取得手段、第1コンテンツ取得処理手段、判定手段、第2コンテンツ取得処理手段、通知手段等として機能する。なお、この情報処理プログラムは、例えば、ネットワーク8に接続されたセンタサーバ10などから、通信部13を介して、制御部11の内部メモリにダウンロードされるようにしてもよい。また、この情報処理プログラムは、CD−ROM等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、制御部11の内部メモリに読み込まれるようにしてもよい。また、CPU11は、内部にタイマを有しており、計時動作を行う。
また、記憶部12は、コンテンツデータ、ルーティングテーブル及びインデックステーブル、ダウンロード指示書などを記憶する記憶手段として機能する。
(配信サーバ1の具体的動作について)
以上のように構成された配信サーバ1の動作の一例を図面を参照して具体的に説明する。図9は本実施形態における配信サーバ1のメイン処理フローチャートである。なお、以下の各処理は、配信サーバ1の制御部11が上述した各手段等として機能することによって実行されるものである。
配信サーバ1においてメイン電源スイッチ(図示せず)がONされたときやリセットスイッチ(図示せず)が操作されたとき、制御部11のCPUは、内部メモリに記憶した情報処理プログラムを実行状態とする。これにより、制御部11は、制御部11としての機能を動作状態として処理を開始し、タイマのカウントを開始する。
図9に示すように、制御部11は、タイマのカウントにより一定時間が経過したかを判定する(ステップS10)。一定時間が経過したと判定すると(ステップS10:Yes)、制御部11は、センタサーバ10からダウンロード指示書が投入されたかを検索し(ステップS11)、ダウンロード指示書がセンタサーバ10からオーバーレイネットワーク9に投入されたか否かを判定する(ステップS12)。ステップS11において、制御部11は、コンテンツデータを探索するための探索メッセージと同様に、ダウンロード指示書を検索するための指示書検索メッセージを送信する。探索メッセージと指示書検索メッセージとは、記憶部12に記憶したルーティングテーブルに基づき通信部13を介して送信される。指示書検索メッセージに基づいて、制御部11は、ダウンロード指示書を記憶する配信サーバ1の所在情報を取得する。制御部11は、ダウンロード指示書を記憶する配信サーバ1の所在情報が取得できたときに、ダウンロード指示書が投入されたと判定する。なお、ダウンロード指示書には、所定のIDが割り当てられており、コンテンツデータと同様に、この所定のIDに最も近いサーバIDを有する配信サーバ1がダウンロード指示書を記憶している配信サーバ1の所在情報を記憶している。
ダウンロード指示書が投入されたと判定すると(ステップS12:Yes)、制御部11は、ダウンロード指示書を取得する(ステップS13)。ステップS12においてダウンロード指示書を記憶する配信サーバ1の所在情報を取得しており、制御部11は、この所在情報の配信サーバ1にダウンロード指示書の取得要求を通信部13を介して行う。これにより、制御部11は、ダウンロード指示書を通信部13を介して取得して、記憶部12に記憶する。このように、制御部11は、センタサーバ10又は配信サーバ1からダウンロード指示書をネットワーク8を介して取得するダウンロード情報取得手段として機能する。
ダウンロード指示書を取得すると、制御部11は、コンテンツホルダの所在情報を登録するための登録メッセージと同様に、ダウンロード指示書の記憶を通知するためのダウンロード指示書登録メッセージを送信する。このダウンロード指示書登録メッセージは、記憶部12に記憶したルーティングテーブルに基づき通信部13を介して送信される。これにより、制御部11は、ダウンロード指示書の記憶する配信サーバ1としてその所在情報を登録する。なお、上述においてはダウンロード指示書は、コンテンツデータと同様に検索や登録を行うこととしたが、各配信サーバ1の制御部11が一定時間ごとにセンタサーバ10に問い合わせして、センタサーバ10から取得するようにしてもよい。
次に、制御部11は、取得したダウンロード指示書を解析し(ステップS14)、このダウンロード指示書で指示された取得タイミングになるまで待機する(ステップS15)。すなわち、制御部11は、ダウンロード指示書に含まれる配信開始時間の情報とグループ番号とから、新しく投入されるコンテンツデータの取得タイミングを解析する。例えば、上記配信開始時間が2009年6月1日午後11時00分00秒、自配信サーバ1のグループ番号が第2番、所定時間Xが10秒であるとき、新しく投入されるコンテンツデータの取得タイミングを2009年6月1日午後11時00分20秒であると判定し、2009年6月1日午後11時00分20秒になるまで待機する。このように、制御部11は、ダウンロード指示書に基づいた取得タイミングで、複数の配信サーバ1のうちコンテンツホルダとなっている配信サーバ1へ、コンテンツデータの取得要求を行う第1コンテンツ取得処理手段として機能する。なお、制御部11は、コンテンツデータの取得を開始するときには、ダウンロード指示書に規定された自配信サーバ1のグループ番号を用いる。但し、その後、制御部11は、ステップS40の処理を行った後は、次のコンテンツデータの取得を開始するまで、その処理後のグループ番号を自配信サーバ1のグループ番号として用いる。
ダウンロード指示書で指示された取得タイミングとなると、制御部11は、コンテンツデータを取得するコンテンツ取得処理を開始する(ステップS16)。このコンテンツ取得処理は、図10のステップS30〜S40の処理であり、後で詳述する。
ステップS10において一定時間が経過していないと判定したとき(ステップS10:No)、ステップS12においてダウンロード指示書が投入されていないと判定したとき(ステップS12:No)、制御部11は、通信部13を介して他の配信サーバ1からメッセージを受信したか否かを判定する(ステップS17)。メッセージを受信したと判定すると(ステップS17:Yes)、制御部11は、メッセージ処理を行う(ステップS18)。
受信したメッセージが登録メッセージであるとき、制御部11は、自配信サーバ1が登録メッセージに対応するコンテンツデータのルートノードであるか否かを判定する。このとき、自配信サーバ1がルートノードであると判定すると、制御部11は、登録メッセージに含まれるコンテンツホルダの所在情報やグループ番号を記憶部12に記憶する。また、受信したメッセージが探索メッセージであるとき、制御部11は、自配信サーバ1が探索メッセージに対応するコンテンツデータのルートノードであるか否かを判定する。このとき、自配信サーバ1がルートノードであると判定すると、制御部11は、記憶部12から読み出したコンテンツホルダの所在情報を、探索メッセージの送信元であるリクエスタの配信サーバ1へ通信部13よりネットワーク8を介して送信する。一方、受信したメッセージに対するルートノードでないときには、このメッセージを記憶部12に記憶したルーティングテーブルに基づき通信部13を介して転送する。
メッセージを受信していないと判定すると(ステップS17:No)、制御部11は、他の配信サーバ1から通信部13を介してコンテンツデータの取得要求があったか否かを判定する(ステップS19)。この処理において、コンテンツデータの取得要求があったと判定すると(ステップS19:Yes)、制御部11は、記憶部12から取得要求に応じたコンテンツデータを読み出して、取得要求元の配信サーバ1にコンテンツデータを通信部13を介して送信する(ステップS20)。なお、リクエスタからコンテンツデータを取得可能か否かの問い合わせがあったとき、制御部11は、すでに所定数(ここでは、4台)のリクエスタに対してコンテンツデータの送信を行っているときには、取得可能でない旨の返信を行う。一方、コンテンツデータの送信を行っていないとき、或いは所定数未満のリクエスタに対してコンテンツデータの送信を行っているときには、制御部11は、取得可能である旨の返信を行う。
ステップS16,S18,S20の処理が終了したとき、又は、コンテンツデータの取得要求がないと判定したとき(ステップS19:No)、制御部11は、サーバ処理の終了指示を検出したかを判定する(ステップS21)。例えば、自配信サーバ1の電源がOFF状態へ移行したとき、制御部11は、終了指示を検知する。制御部11は、終了指示を検知したと判定すると(ステップS21:Yes)、処理を終了し、一方、終了指示を検知していないと判定すると(ステップS21:No)、ステップS10からの処理を繰り返す。
次に、ステップS16で実行されるコンテンツ取得処理について図10のフローチャートを参照して具体的に説明する。図10は配信サーバ1におけるコンテンツ取得処理のフローチャートである。
図10に示すように、コンテンツ取得処理を開始すると、制御部11は、カウンタ値iを初期値「1」に設定し(ステップS30)、コンテンツホルダの探索処理を実行する(ステップS31)。この探索処理は、図11のステップS50〜S54の処理であり、後で詳述する。
次に、制御部11は、コンテンツホルダの探索処理により、探索が成功したかを判定する(ステップS32)。探索が成功したと判定すると(ステップS32:Yes)、制御部11は、コンテンツデータのうちi番目の分割コンテンツデータの取得要求をコンテンツホルダへ行って、i番目の分割コンテンツデータの取得を開始する(ステップS33)。分割コンテンツデータにはコンテンツデータの先頭から分割番号が「1」から順に付されており、ダウンロード指示書には、分割番号が各分割コンテンツデータのコンテンツIDと分割番号とが含まれる。制御部11は、ダウンロード指示書に含まれるコンテンツIDのうち「i」番が付された分割番号に対応するコンテンツIDに基づき、i番目の分割コンテンツデータの取得を開始する。i番目の分割コンテンツデータの取得を開始した後、制御部11は、取得(ダウンロード)が停滞しているか否かを判定する(ステップS34)。この処理において、制御部11は、分割コンテンツデータのパケットが遅延しているとき、或いはそのパケットの損失が多いときに、取得が停滞していると判定する。なお、パケットのデータ量は規定されており、制御部11は、例えば、所定期間内に分割コンテンツデータのパケットを規定した数以上受信できないときなどに、「分割コンテンツデータのパケットが遅延」していると判定する。このように、制御部11は、コンテンツホルダである他の配信サーバ1におけるコンテンツデータの配信能力を判定する判定手段として機能する。
取得が停滞していないと判定したとき(ステップS34:No)、制御部11は、i番目の分割コンテンツデータの取得が終了したか否かを判定する(ステップS35)。ダウンロード指示書には、各分割コンテンツデータのデータ容量がコンテンツIDと関連づけられて含まれており、制御部11は、ダウンロード指示書に応じたデータ量のデータを受信したときに、i番目の分割コンテンツデータの取得が終了したと判定する。なお、各分割コンテンツデータの最後尾に終了フラグを付し、制御部11はこの終了フラグを取得したときに、i番目の分割コンテンツデータの取得が終了したと判定するようにしてもよい。制御部11は、分割コンテンツデータの取得が終了していないと判定すると(ステップS35:No)、ステップS34の処理を繰り返し行い、一方で、取得が終了したと判定する(ステップS35:Yes)、制御部11は、コンテンツデータの記憶を通知するための登録メッセージを通信部13を介してルートノードへ送信する。この登録メッセージは、コンテンツデータを記憶した配信サーバ1の所在情報及びグループ番号を含むメッセージである。その後、制御部11は、コンテンツデータの取得を終了したか否か、すなわち、コンテンツデータを構成する全ての分割コンテンツデータの取得が終了したか否かを判定する(ステップS36)。ダウンロード指示書には、各分割コンテンツデータのコンテンツIDが含まれており、制御部11は、ダウンロード指示書に含まれるコンテンツIDの分割コンテンツデータをすべて取得したときに、全ての分割コンテンツデータの取得が終了したと判定する。このように、制御部11は、コンテンツデータを受信すると、ルートノードである他の配信サーバ1へコンテンツデータの取得を通知する通知手段として機能する。
コンテンツデータの取得を終了していないと判定すると(ステップS36:No)、制御部11は、カウンタ値iを1だけインクリメントして(ステップS37)、処理をステップS31に戻す。一方、コンテンツデータの取得を終了したと判定すると(ステップS36:Yes)、制御部11は、配信実績情報をセンタサーバ10へ送信し(ステップS38)、コンテンツ取得処理を終了する。配信実績情報は、配信サーバ1の配信能力を示す情報であり、例えば、リクエスタとしてコンテンツホルダから各分割コンテンツデータを取得したときの受信速度とコンテンツホルダのサーバIDとが関連づけられた情報であり、リクエスタから送信される。この「受信速度」は複数の分割コンテンツデータを取得したときの平均受信速度としている。なお、複数の分割コンテンツデータのそれぞれを取得するときの受信速度であってもよい。
ステップS32において探索が成功していないと判定すると(ステップS32:No)、又は、ステップS34でコンテンツデータの取得が停滞したと判定すると(ステップS34:Yes)、制御部11は、次の取得タイミングまで取得を一時停止(ステップS39)する。さらに、自配信サーバ1のグループ番号pを1だけインクリメントして(ステップS40)、処理をステップS31へ戻して、コンテンツホルダの探索処理を行う。このように制御部11は、コンテンツホルダからのコンテンツデータの取得が停滞したとき、すなわちコンテンツホルダである他の配信サーバ1におけるコンテンツデータの配信能力が低いと判定されたとき、ダウンロード指示書に基づいた取得タイミングよりも遅い取得タイミングで、コンテンツホルダである他の配信サーバ1へコンテンツデータの取得要求を行う第2コンテンツ取得処理手段として機能する。
次に、ステップS31で実行されるコンテンツホルダの探索処理について図11のフローチャートを参照して具体的に説明する。図11は配信サーバ1におけるコンテンツホルダの探索処理のフローチャートである。
図11に示すように、コンテンツホルダの探索処理を開始すると、制御部11は、通信部13を介して探索メッセージを送信する(ステップS50)。この処理において、制御部11は、i番目の分割コンテンツデータのコンテンツIDを宛先IDとし、このコンテンツID、自配信サーバ1の所在情報などを含む探索メッセージを生成する。この探索メッセージを記憶部12に記憶したルーティングテーブルに基づき通信部13を介して送信する。
次に、制御部11は、コンテンツホルダを発見したか否かを判定する(ステップS51)。この処理において、制御部11は、ステップS50において送信した探索メッセージに対して、ルートノードからコンテンツホルダの所在情報及びグループ番号を通信部13を介して受信したときに、コンテンツホルダを発見したと判定する。コンテンツホルダを発見すると(ステップS51:Yes)、制御部11は、グループ番号の最も小さいコンテンツホルダを選択(ステップS52)する。選択されたコンテンツホルダの所在情報を記憶部12から読み出して、選択したコンテンツホルダに通信部13を介してコンテンツデータを取得可能か否かを問い合わせる(ステップS53)。例えば、各配信サーバ1が同時に最大4台の配信サーバ1までコンテンツデータを送信するものであると規定されているとする。このとき、コンテンツデータを取得可能か否かの問い合わせを受信したときに、すでに4台の配信サーバ1にコンテンツデータを送信している最中であるときには、コンテンツホルダの制御部11は、コンテンツデータを取得可能でないとの応答を返す。一方、コンテンツホルダの制御部11は、コンテンツデータの配信先が3台以下であるとき、コンテンツデータを取得可能であるとの応答を返す。選択したコンテンツホルダからコンテンツデータを取得可能であるとの返信があると(ステップS53:Yes)、制御部11は、コンテンツホルダの探索処理を終了する。一方、選択したコンテンツホルダからコンテンツデータを取得可能ではないとの返信があると(ステップS53:No)、取得可能か否かを問い合わせていないコンテンツホルダが存在するかを判定する(ステップS54)。この処理において、取得可能か否かを問い合わせていないコンテンツホルダが存在すると判定すると(ステップS54:Yes)、制御部11は、処理をステップS52へ戻す。一方、取得可能か否かを問い合わせていないコンテンツホルダが存在しないと判定すると(ステップS54:No)、制御部11は、コンテンツホルダの探索処理を終了する。このように、制御部11は、第1及び第2コンテンツ取得処理手段として、所在情報を取得したコンテンツホルダのうちその属するグループ番号がより小さいコンテンツホルダから優先してコンテンツデータを取得する。
[1.3.センタサーバ10の具体的構成及び動作の説明]
以下、図面を参照して、上述したセンタサーバ10の具体的構成及び動作の一例について説明する。
(センタサーバ10の構成について)
まず、センタサーバ10の構成について説明する。図12は、センタサーバ10の具体的構成を示す図である。
センタサーバ10は、専用のコンピュータの他、一般のサーバコンピュータを適用可能であり、図12に示すように、センタサーバ10全体を制御する制御部21と、各種情報を記憶する記憶領域を有する書き換え可能な記憶部22と、配信サーバ1のサーバIDに配信実績情報を関連づけて記憶するデータベース23と、配信サーバ1などと通信するための通信部24と、各種設定入力を行うための操作部25とを備えており、これらはシステムバス26を介して相互に接続されている。
制御部21は、CPU(Central Processing Unit)、内部メモリから構成される。この内部メモリには、配信サーバ1にコンテンツデータやダウンロード指示書などを送信する情報処理プログラムが格納されている。CPUは内部メモリに記憶されている情報処理プログラムを読み出して実行することによって、配信能力取得手段、ダウンロード情報生成手段、ダウンロード情報送信手段等として機能する。なお、この情報処理プログラムは、例えば、ネットワーク8に接続された他のサーバから、通信部24を介して、制御部21の内部メモリにダウンロードされるようにしてもよい。また、この情報処理プログラムは、CD−ROM等の記録媒体に記録されてから図示しない記録媒体ドライブを介して、制御部21の内部メモリに読み込まれるようにしてもよい。
(センタサーバ10の具体的動作について)
以上のように構成されたセンタサーバ10の動作を図面を参照して具体的に説明する。図13はセンタサーバ10のメイン処理フローチャートである。なお、以下の各処理は、センタサーバ10の制御部21が上述した各手段等として機能することによって実行されるものである。なお、センタサーバ10は、配信サーバ1などからコンテンツデータの取得要求に対してコンテンツデータの送信処理なども行うがここでは省略している。
センタサーバ10においてメイン電源スイッチ(図示せず)がONされたときやリセットスイッチ(図示せず)が操作されたとき、制御部21のCPUは内部メモリに記憶した情報処理プログラムを実行状態として、制御部21としての機能を動作状態にして、処理を開始する。
処理を開始すると、制御部21は、コンテンツ投入指示を受けたか否かを判定する(ステップS60)。この処理において、制御部21は、例えば、操作部25への入力操作によってコンテンツデータの投入指示があったときに、コンテンツ投入指示を受けたと判定する。
コンテンツ投入指示があったと判定すると(ステップS60:Yes)、制御部21は、データベース23から配信サーバ1の配信実績情報等を読み出し(ステップS61)、配信サーバ1の配信実績からダウンロード指示書を作成する(ステップS62)。すなわち、制御部21は、配信実績情報から配信能力が高い配信サーバ1から順にグループ番号の小さいグループを割り当てていき、配信サーバ1のサーバIDとグループ番号とを関連づけた情報と、分割コンテンツデータのコンテンツID、配信開始時間の情報などを含むダウンロード指示書を生成する。このように、制御部21は、ダウンロード情報を生成するダウンロード情報生成手段として機能する。このダウンロード情報には、各配信サーバ1の配信能力の情報に基づき、複数の配信サーバ1が複数のグループに分けられて、グループごとにコンテンツデータの取得タイミングを異ならせる情報を含んでいる。また、制御部21は、ダウンロード情報生成手段として、配信能力の高い配信サーバ1ほどコンテンツデータの取得タイミングが早くなるようにダウンロード情報を生成する。なお、制御部21は、ダウンロード情報生成手段として、配信能力が所定値以上か未満かによって配信サーバ1を各グループに振り分けてダウンロード情報を生成することもできる。例えば、制御部21は、配信能力が所定値未満の配信サーバ1よりも配信能力が所定値以上の配信サーバ1の方がコンテンツデータの取得タイミングが早くなるようにダウンロード情報を生成する。
ダウンロード指示書の作成を終了すると、制御部21は、オーバーレイネットワーク9にダウンロード指示書を投入する(ステップS63)。すなわち、制御部21は、オーバーレイネットワーク9の一部の配信サーバ1をランダムに選択して、選択した配信サーバ1へ通信部24を介してダウンロード指示書を送信する。このように、制御部21は、ダウンロード指示書(ダウンロード情報)を配信サーバ1へ送信するダウンロード情報送信手段として機能する。
その後、制御部21は、コンテンツデータを通信部24を介してオーバーレイネットワーク9に投入する(ステップS64)。この処理において、制御部21は、通信部24を介してオーバーレイネットワーク9の一部の配信サーバ1をランダムに選択し、ステップS60でコンテンツ投入指示を受けたコンテンツデータを構成する各分割コンテンツデータをそれぞれ選択した配信サーバ1へ通信部24を介して送信する。
ステップS60において、コンテンツ投入指示がないと判定すると(ステップS60:No)、制御部21は、通信部24を介して配信サーバ1から配信実績情報を受信したか否かを判定する(ステップS65)。この処理において、配信実績情報を受信したと判定すると(ステップS65:Yes)、制御部21は、受信した配信実績情報を送信元の配信サーバ1のサーバIDに関連づけてデータベース23へ記憶し、配信実績テーブルを更新する(ステップS66)。このように、制御部21は、各配信サーバ1のコンテンツデータの配信能力の情報を取得する配信能力取得手段として機能する。
ステップS64,S66の処理が終了したとき、又は、ステップS65において配信実績情報を受信していないと判定したとき(ステップS65:No)、制御部21は、サーバ処理の終了指示を検出したかを判定する(ステップS67)。例えば、自センタサーバ10の電源がOFF状態へ移行したとき、制御部21は、終了指示を検知する。終了指示を検知したと判定すると(ステップS67:Yes)、制御部21は、サーバ処理を終了し、一方、終了指示を検知していないと判定すると(ステップS67:No)、制御部21は、ステップS60からの処理を繰り返す。
[3.その他の実施形態]
上述の実施形態においては、ルートノードの制御部11は、リクエスタのグループ番号とは無関係にコンテンツホルダの所在情報を所定数分だけリクエスタへ送信して知らせるようにしているが、これに限られない。例えば、リクエスタの制御部11は、探索メッセージに自配信サーバ1のグループ番号を含ませる。さらに、ルートノードの制御部11は、リクエスタのグループ番号よりも一つ小さい番号のコンテンツホルダの所在情報を所定数分だけルートノードの記憶部12から読み出し、通信部13を介してコンテンツホルダの所在情報をリクエスタへ通知する。なお、この「所定数」は、予め規定された2以上の数であり、例えば、「3」である。コンテンツホルダの所在情報を1つだけ知らせるようにすると、このコンテンツホルダからコンテンツデータを取得できないとき、リクエスタは再度探索メッセージを送信する必要がある。しかし、コンテンツホルダの所在情報を複数知らせるので、リクエスタが再度探索メッセージを送信するのを抑制できる。ダウンロード指示書で指定された自配信サーバ1のグループ番号がm+1(1<m≦n−1)番であるとき、ダウンロード指示書に基づいて第m+1番目に遅い取得タイミングで、第mグループの配信サーバ1へコンテンツデータの取得要求を行うことができる。従って、より迅速かつ効率的にコンテンツデータの配信が可能となる。
ルートノードにおいて、リクエスタのグループ番号よりも一つ小さい番号のコンテンツホルダの所在情報が記憶部12に上記所定数分だけ記憶されていないときがある。このとき、ルートノードの制御部11は、記憶されている分の所在情報に加え、その不足分のコンテンツホルダの所在情報を選択する。具体的には、ルートノード11の制御部11は、リクエスタのグループ番号よりも2以上小さい番号のコンテンツホルダのうち最も小さい番号のコンテンツホルダから順に選択する。そして、ルートノードの制御部11は、選択したコンテンツホルダの所在情報を通信部13を介してリクエスタへ通知する。この場合、リクエスタの制御部11が最もグループ番号の小さいグループに属するコンテンツホルダから順にコンテンツデータの取得要求を行う。
なお、リクエスタのグループ番号よりも一つ小さい番号のコンテンツホルダの所在情報をリクエスタへ通知することに代えて、ルートノードの制御部11は、複数のコンテンツホルダの所在情報とグループ番号とをリクエスタに通知してもよい。この場合、例えば、リクエスタの制御部11は、自配信サーバ1のグループ番号よりも一つ小さい番号のコンテンツホルダを選択してコンテンツデータの取得要求を行う。
また、上述においては、ダウンロード指示書に基づいてコンテンツデータを同時期に配信サーバ1に配信する例を説明したが、配信サーバ1以外のノード装置にも適用可能である。例えば、コンテンツ配信システムSを構成する端末装置のすべてに同じコンテンツデータを配信するような場合には、同様な処理を行うことで迅速かつ効率的にコンテンツデータを端末装置へ配信することができる。また、情報処理装置として、センタサーバ10を設けた例を説明したが、配信サーバ1や端末装置などにこのセンタサーバ10の機能を持たせるようにしてもよい。
また、上述においては、ダウンロード指示書をセンタサーバ10から一部の配信サーバ1に送信し、その後、配信サーバ1間で送受信させることとしたが、配信サーバ1でダウンロード指示書が取得できればよく、例えば、センタサーバ10から全ての配信サーバ1へダウンロード指示書を送信するようにしてもよい。
また、上述においては、受信速度や送信速度を配信実績情報としたが、これに限られない。例えば、リクエスタがコンテンツホルダからの分割コンテンツデータを取得するときの受信時間、或いは、コンテンツホルダがリクエスタへ分割コンテンツデータを送信するときの送信時間などを配信実績情報とすることもできる。なお、受信時間や送信時間を配信実績情報とする場合には、受信時間や送信時間が短いほど、「配信能力」が高いことになる。
また、センタサーバ10は、配信実績情報に基づいて各配信サーバ1の配信能力を判定するようにしているが、これに限られない。例えば、各配信サーバ1が所定タイミングで図示しない計測用サーバへ所定容量のデータを送信し、この送信速度又は送信時間を計測用サーバ又は配信サーバ1の制御部11で計測する。配信サーバ1の制御部11は、送信速度又は送信時間の情報を配信能力情報としてセンタサーバ10へ送信する。センタサーバ10はこの配信能力情報に応じて、各配信サーバ1の配信能力を判定する。
また、上述においては、第1番目のグループに属する配信サーバ1は、センタサーバ10からコンテンツデータを投入されるため、ダウンロード指示書に基づいたコンテンツデータの取得は行わないが、これに限れない。例えば、センタサーバ10は、任意の配信サーバ1にコンテンツデータを投入し、第1番目のグループに属する配信サーバ1からダウンロード指示書に基づいたコンテンツデータの取得を行うようにしてもよい。
1 配信サーバ
10 センタサーバ
11 配信サーバの制御部
12 配信サーバの記憶部
21 センタサーバの制御部
22 センタサーバの記憶部

Claims (8)

  1. ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力の情報を取得する配信能力取得手段と、
    前記配信能力取得手段により取得された各前記ノード装置の配信能力の情報に基づき、前記複数のノード装置が複数のグループに分けられて、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を生成するダウンロード情報生成手段と、
    前記ダウンロード情報を前記ノード装置へ送信するダウンロード情報送信手段と、
    を備える情報処理装置と、
    前記ダウンロード情報を前記ネットワークを介して取得するダウンロード情報取得手段と、
    前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第1コンテンツ取得手段と、
    前記他のノード装置における前記コンテンツデータの配信能力を判定する判定手段と、
    前記判定手段により前記配信能力が低いと判定されたとき、前記ダウンロード情報取得手段により取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記第1コンテンツ取得手段により前記コンテンツデータを記憶している他の前記ノード装置へ前記コンテンツデータの取得要求を行う第2コンテンツ取得処理手段と、
    をそれぞれ備える複数の前記ノード装置と、
    を有することを特徴とするコンテンツ配信システム。
  2. 前記情報処理装置のダウンロード情報生成手段は、前記配信能力の高いノード装置ほど前記コンテンツデータの取得タイミングが早くなるように前記ダウンロード情報を生成することを特徴とする請求項1に記載のコンテンツ配信システム。
  3. 前記情報処理装置のダウンロード情報生成手段は、前記配信能力が所定値未満のノード装置よりも前記配信能力が所定値以上のノード装置の方が前記コンテンツデータの取得タイミングが早くなるように前記ダウンロード情報を生成することを特徴とする請求項1に記載のコンテンツ配信システム。
  4. 前記ダウンロード情報生成手段は、前記コンテンツデータの取得タイミングが早い順に、前記複数のグループを識別するグループ番号の値が小さくなるように、前記複数のグループを分け、
    前記ノード装置の前記第1コンテンツ取得処理手段又は前記第2コンテンツ取得処理手段は、前記コンテンツデータを記憶するノード装置のうちその属するグループ番号がより小さいノード装置から優先して前記コンテンツデータを取得することを特徴とする請求項2又は3に記載のコンテンツ配信システム。
  5. 前記ノード装置は、
    前記第1コンテンツ取得手段または前記第2コンテンツデータ取得手段により、前記コンテンツデータを取得すると、他の前記ノード装置へ前記ノード装置が前記コンテンツデータを取得したことを通知する通知手段を備え、
    前記第2コンテンツ取得手段は、前記通知手段により通知されたノード装置を含む前記コンテンツデータを記憶している他の前記ノード装置とへコンテンツデータの取得要求を行うことを特徴とする請求項1〜4のいずれか1項に記載のコンテンツ配信システム。
  6. ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力に基づいて、前記複数のノード装置が複数のグループに分けられ、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を、前記ネットワークを介して取得するダウンロード情報取得手段と、
    前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第1コンテンツ取得処理手段と、
    前記他のノード装置における前記コンテンツデータの配信能力を判定する判定手段と、
    前記判定手段により前記配信能力が低いと判定されたとき、前記ダウンロード情報取得手段により取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記第1コンテンツ取得手段により前記コンテンツデータを記憶している他の前記ノード装置へ前記コンテンツデータの取得要求を行う第2コンテンツ取得処理手段と、
    を備えるノード装置。
  7. ネットワークを介して相互にコンテンツデータを送受信可能な複数のノード装置それぞれのコンテンツデータの配信能力に基づいて、前記複数のノード装置が複数のグループに分けられ、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を、前記ネットワークを介して取得するダウンロード情報取得ステップと、
    前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ、前記コンテンツデータの取得要求を行う第1コンテンツ取得ステップと、
    前記他のノード装置における前記コンテンツデータの配信能力を判定する判定ステップと、
    前記判定ステップにより前記配信能力が低いと判定されたとき、前記ダウンロード情報取得ステップにより取得されたダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記コンテンツデータを記憶している他の前記ノード装置へコンテンツデータの取得要求を行う第2コンテンツ取得処理ステップと、
    をコンピュータに実現させることを特徴とするプログラム。
  8. コンテンツデータの配信方法であって、
    複数のノード装置が複数のグループに分けられて、当該グループごとに前記コンテンツデータの取得タイミングを異ならせる情報を含むダウンロード情報を情報処理装置が生成するステップと、
    前記情報処理装置が、前記ダウンロード情報を前記ノード装置へネットワークを介して送信するステップと、
    前記ノード装置が、前記ダウンロード情報を前記情報処理装置から前記ネットワークを介して取得するステップと、
    前記ノード装置が、前記ダウンロード情報に基づいた取得タイミングで、前記複数のノード装置のうち前記コンテンツデータを記憶している他のノード装置へ前記コンテンツデータの送信を前記ネットワークを介して要求して、当該コンテンツデータを前記ネットワークを介して取得要求を行うステップと、
    前記ノード装置が、前記コンテンツデータの送信を要求した前記他のノード装置における前記コンテンツデータの配信能力を判定するステップと、
    前記ノード装置が、前記コンテンツデータの送信を要求した前記他のノード装置の配信能力が低いと判定したとき、前記ダウンロード情報に基づいた取得タイミングよりも遅い取得タイミングで、前記コンテンツデータを記憶している前記他のノード装置へコンテンツデータの取得要求を行うステップと、を有することを特徴とするコンテンツデータの配信方法。
JP2009144298A 2009-06-17 2009-06-17 コンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法 Pending JP2011002932A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009144298A JP2011002932A (ja) 2009-06-17 2009-06-17 コンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009144298A JP2011002932A (ja) 2009-06-17 2009-06-17 コンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法

Publications (1)

Publication Number Publication Date
JP2011002932A true JP2011002932A (ja) 2011-01-06

Family

ID=43560853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009144298A Pending JP2011002932A (ja) 2009-06-17 2009-06-17 コンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法

Country Status (1)

Country Link
JP (1) JP2011002932A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012531146A (ja) * 2009-06-25 2012-12-06 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ユーザ感覚でのtcpスループットの推定
CN115277694A (zh) * 2022-06-29 2022-11-01 北京奇艺世纪科技有限公司 一种数据获取方法、装置、系统、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004519924A (ja) * 2001-02-23 2004-07-02 ボルボ テクノロジー コーポレイション 基地−車両間の通信の効率を最適化するためのシステムおよび方法
JP2004199578A (ja) * 2002-12-20 2004-07-15 Nippon Telegr & Teleph Corp <Ntt> コンテンツ配信方法及び装置並びにプログラム及び記録媒体
JP2004318274A (ja) * 2003-04-11 2004-11-11 Nippon Telegr & Teleph Corp <Ntt> 中継型コンテンツ配信方法及び装置並びにプログラム
JP2009048571A (ja) * 2007-08-22 2009-03-05 Brother Ind Ltd 通信時刻を通知するサーバ装置、通信時刻通知方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004519924A (ja) * 2001-02-23 2004-07-02 ボルボ テクノロジー コーポレイション 基地−車両間の通信の効率を最適化するためのシステムおよび方法
JP2004199578A (ja) * 2002-12-20 2004-07-15 Nippon Telegr & Teleph Corp <Ntt> コンテンツ配信方法及び装置並びにプログラム及び記録媒体
JP2004318274A (ja) * 2003-04-11 2004-11-11 Nippon Telegr & Teleph Corp <Ntt> 中継型コンテンツ配信方法及び装置並びにプログラム
JP2009048571A (ja) * 2007-08-22 2009-03-05 Brother Ind Ltd 通信時刻を通知するサーバ装置、通信時刻通知方法及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012531146A (ja) * 2009-06-25 2012-12-06 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ユーザ感覚でのtcpスループットの推定
CN115277694A (zh) * 2022-06-29 2022-11-01 北京奇艺世纪科技有限公司 一种数据获取方法、装置、系统、电子设备及存储介质
CN115277694B (zh) * 2022-06-29 2023-12-08 北京奇艺世纪科技有限公司 一种数据获取方法、装置、系统、电子设备及存储介质

Similar Documents

Publication Publication Date Title
Yang et al. An efficient hybrid peer-to-peer system for distributed data sharing
US9325786B2 (en) Peer-to-peer interactive media-on-demand
US8898232B2 (en) Contribution aware peer-to-peer live streaming service
US7782867B2 (en) Node device, memory medium saving computer program, information delivery system, and network participation method
JP5741150B2 (ja) 中継装置、中継プログラム、及び中継方法
CN108307198A (zh) 流服务节点调度方法、装置及调度节点
US9736236B2 (en) System and method for managing buffering in peer-to-peer (P2P) based streaming service and system for distributing application for processing buffering in client
JP2012078902A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2010157016A (ja) P2p配信システム及び配信方法
WO2012034414A1 (zh) 一种处理p2p业务的方法及系统
JP2004199578A (ja) コンテンツ配信方法及び装置並びにプログラム及び記録媒体
JP2011002932A (ja) コンテンツ配信システム、及びそのノード装置及び情報処理装置、並びにコンテンツデータの配信方法
US8762481B2 (en) Information distribution system, terminal apparatus used in same system, and recording medium on which information processing program is recorded so as to be computer readable, as well as information processing method
KR20120138546A (ko) 분산 네트워크에서 우선순위에 기반한 디스커버리를 수행하는 장치 및 방법과, 디스커버리 백오프 타임 결정 방법
JP2009230369A (ja) 共有データの同期方法、共有データを同期するためのプログラム、および共有データを同期して保持可能なネットワークシステム
WO2011082634A1 (zh) 资源定位和发现对等网络的对等节点及其配置的更新方法和系统
US20200186463A1 (en) Method and system for name-based in-networking processing
CN103179191A (zh) P2p网络管控装置及p2p网络管控架构
JP2007272540A (ja) データ配信方法及びデータ配信システム
WO2011009362A1 (zh) 下载数据的方法、装置和系统及节点
JP5168055B2 (ja) 通信システム、端末装置及びコンテンツ情報取得方法
JP2004135065A (ja) 送信端末、受信端末及びデータ伝送システム
JP5233799B2 (ja) コンテンツ配信システム、ノード装置、コンテンツ配信方法及びコンテンツ取得処理プログラム
CN101369915A (zh) 可运营p2p网络资源管理系统
JP2011055139A (ja) 情報通信システム、ノード装置及びそのプログラム、並びにコンテンツ取得方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130903