JP2012175274A - コンテンツ配信システム、コンテンツ配信方法、ならびにコンテンツ配信システムに用いられるピア、アプリケーションサーバ及びキャッシュサーバ - Google Patents

コンテンツ配信システム、コンテンツ配信方法、ならびにコンテンツ配信システムに用いられるピア、アプリケーションサーバ及びキャッシュサーバ Download PDF

Info

Publication number
JP2012175274A
JP2012175274A JP2011033734A JP2011033734A JP2012175274A JP 2012175274 A JP2012175274 A JP 2012175274A JP 2011033734 A JP2011033734 A JP 2011033734A JP 2011033734 A JP2011033734 A JP 2011033734A JP 2012175274 A JP2012175274 A JP 2012175274A
Authority
JP
Japan
Prior art keywords
content
data
peer
distribution
unit
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.)
Withdrawn
Application number
JP2011033734A
Other languages
English (en)
Inventor
Kei Fujimoto
圭 藤本
Takeshi Miyasaka
武志 宮坂
Koichi Genda
浩一 源田
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011033734A priority Critical patent/JP2012175274A/ja
Publication of JP2012175274A publication Critical patent/JP2012175274A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

【課題】事前にコンテンツを集約して配備する必要がなく、また、コンテンツ数や容量が増加したり、突発的に視聴数が増加した場合でも滞ることなくコンテンツを配信することができる。
【解決手段】コンテンツ配信システム100に用いられるコンテンツ配信方法は、視聴数が少ない間は、同一のコンテンツのデータをキャッシュしている3つのピア10からコンテンツのデータを同時配信することで、ピア10相互間でコンテンツの配信を行い、視聴数が増加してきたら(上り帯域を圧迫してきたら)、当該コンテンツのデータをキャッシュサーバ30に配備し、新しい視聴要求に対してキャッシュサーバ30からピア10にコンテンツのデータを配信する。
【選択図】図1

Description

本発明は、コンテンツのストリーミング配信を行うための、コンテンツ配信システム、コンテンツ配信方法、ならびにコンテンツ配信システムに用いられるピア、アプリケーションサーバ及びキャッシュサーバに関する。
コンテンツ配信方法として、「CDN(Contents Delivery Network)コンテンツ配信方法」と「P2P(Peer to Peer)コンテンツ配信方法」とがある。
CDNコンテンツ配信方法は、コンテンツを配信サーバに配備しユーザ端末に配信する。そしてこのCDNコンテンツ配信方法として、配信サーバを複数配備することで負荷分散を行う技術、コンテンツを先読みして端末側でバッファを蓄え、配信が滞った場合にバッファ対応時間内で配信サーバを切り替えることで信頼性を向上する技術、複数の配信サーバが同一のコンテンツを配信する多重配信を行うことで信頼性を向上する技術等が開示されている(例えば、非特許文献1参照)。
P2Pコンテンツ配信方法は、ユーザ端末(ピア)から他のユーザ端末にコンテンツを直接配信する。P2Pコンテンツ配信方法は、ユーザ端末(ピア)がコンテンツをキャッシュすることより配信ノードが増えるため、配信ノードにかかる負荷を分散させることができ、突発的な視聴数の増加に対応することができる(例えば、非特許文献2参照)。
また、コンテンツについて視聴数が少ない間はCDNコンテンツ配信方法で配信し、視聴数が増加し、ピアにキャッシュが拡散してきた段階で、P2Pコンテンツ配信方法に切り替える、CDNコンテンツ配信方法とP2Pコンテンツ配信方法を併用する方法もある。このCDNコンテンツ配信方法をP2Pコンテンツ配信方法に切り替えるコンテンツ配信方法を用いることにより、設備投資(配信サーバ増強)を抑制しつつ視聴数の増加に対応する技術が開示されている(例えば、非特許文献3参照)。
"CDN Web負荷分散"、[online]、株式会社Jストリーム、[平成23年2月1日検索]、インターネット、<http://www.jstream.jp/service/pc/delivery/cdn/> "mesh Cast"、[online]、NECビッグローブ株式会社、[平成23年2月1日検索]、インターネット、<http://business.biglobe.ne.jp/streaming/service/meshcast.html> "BitTorrentDNA"、[online]、BitTorrent,Inc.、[平成23年2月1日検索]、インターネット、<http://www.bittorrent.com/dna>
しかしながら、CDNコンテンツ配信方法、P2Pコンテンツ配信方法、及びコンテンツについて視聴数が少ない間はCDNコンテンツ配信方法で配信し、視聴数が増加し、ピアにキャッシュが拡散してきた段階で、P2Pコンテンツ配信方法に切り替えるコンテンツ配信方法には、種々の課題が存在する。以下、各コンテンツ配信方法の課題について説明する。
CDNコンテンツ配信方法には以下に示すような課題がある。
(課題1-1)
近年では、企業が配信する音楽や動画といったコンテンツに加え、携帯電話で撮影した動画といったユーザ投稿型のコンテンツが著しく増加しており、その容量も増大している。コンテンツを配信する配信サーバにそれら全てのコンテンツを配備するためには、必要となるサーバ能力や台数を大幅に増やさなくてはならない。そのため、将来は、全てのコンテンツを配信サーバに配備することが困難となり、一部のコンテンツをユーザ端末に配備することが想定される。
(課題1-2)
また、コンテンツは、口コミ、Twitter(登録商標)、テレビ等で紹介されることにより、突発的に視聴数が増加する可能性を持っている。CDNコンテンツ配信方法によるコンテンツの配信は、配信サーバの能力を向上させ、又は配信サーバの台数を増やすことで突発的な視聴数増加に対応可能だが、この対応にも限界がある。
(課題1-3)
また、CDNコンテンツ配信方法は、コンテンツを先読みしてユーザ端末側でバッファを蓄え、配信が滞った場合にバッファ対応時間内で配信サーバを切り替えることで信頼性を向上することが可能である。しかしながら、バッファを蓄えるために先読みダウンロードを行うため、再生ビットレートよりも大きな帯域を要し、バッファ対応時間内に代替サーバが見つからない場合は再生が滞ってしまう課題がある。また、複数の配信サーバが同一のコンテンツを配信する多重配信を行うことで信頼性を向上することが可能であるが、2重同時配信を行うとおよそ2倍の帯域を要す課題がある。
P2Pコンテンツ配信方法は、ユーザ端末(ピア)から直接コンテンツ配信を行うことが可能であり、突発的な視聴数増加に方式上対応可能であるが、以下に示すような課題がある。
(課題2-1)
P2Pコンテンツ配信方法では、ユーザ端末(ピア)は各々のユーザにより管理されているので、予期しないユーザ端末(ピア)の電源OFF等により配信が滞り、再生が停止してしまう可能性がある。
課題2-1を解決するための従来技術として、視聴端末側でバッファを蓄えることにより、配信が滞った場合にも、バッファ対応時間内で新しい配信ノードを探しつなぎ替える技術がある。しかし、この技術は、バッファ対応時間内に新しい配信ノードにつなぎ替えることができない場合に、再生が停止してしまう課題がある。また、バッファを蓄えるために先読みダウンロードを行うため、再生ビットレートよりも大きい帯域を要す課題がある。
(課題2-2)
P2Pコンテンツ配信方法は、視聴数の増加により、上り帯域を圧迫する可能性がある。ここで、下り帯域よりも上り帯域の圧迫が問題となるのは、一般的なネットワークでは、下り帯域よりも上り帯域の容量を低く抑えているためである。
コンテンツについて視聴数が少ない間はCDNコンテンツ配信方法で配信し、視聴数が増加し、ピアにキャッシュが拡散してきた段階で、P2Pコンテンツ配信方法に切り替えるコンテンツ配信方法は、以下に示すような課題がある。
(課題3-1)
CDNコンテンツ配信方法からP2Pコンテンツ配信方法に配信方法を切り替えるコンテンツ配信方法は、設備投資を抑制しつつ視聴数の増加に対応することができるが、このコンテンツ配信方法では、全てのコンテンツのデータを配信サーバに配備することを前提としており、コンテンツ数や容量の増加により、全てのコンテンツのデータを配信サーバに配備することが困難となる課題を解決することができない。
本発明は前記問題に鑑みてなされたものであり、事前にコンテンツを集約して配備する必要がなく、また、コンテンツ数や容量が増加したり、突発的に視聴数が増加した場合でも滞ることなくコンテンツを配信することができる、コンテンツ配信システム、コンテンツ配信方法、ならびにコンテンツ配信システムに用いられるピア、アプリケーションサーバ及びキャッシュサーバを提供することを課題とする。
前記課題を解決するために、本発明に係るコンテンツ配信システムは、複数のピア、キャッシュサーバ、及びアプリケーションサーバがネットワークに接続され、コンテンツのデータの配信に際して、前記ピアが前記アプリケーションサーバに配信を要求することで、前記ピア同士が前記コンテンツのデータの配信を直接行うコンテンツ配信システムであって、前記ピアは、前記コンテンツのデータが記憶される第1のキャッシュ部と、前記コンテンツの視聴要求を前記アプリケーションサーバに送信する視聴要求部と、前記アプリケーションサーバから前記コンテンツの配信指示を受信すると、前記第1のキャッシュ部に記憶される前記コンテンツのデータを、所定サイズのフレームに分割し時系列順に連続番号を付したフレーム群とし、前記フレーム群の内、奇数番号のフレームのデータである奇数フレームデータと、偶数番号のフレームのデータである偶数フレームデータと、前記奇数フレームデータと前記偶数フレームデータとの排他的論理和であるXORデータと、の3種類のデータに分割する分割部と、前記分割部で分割した前記3種類のデータの内、何れか1種類の前記コンテンツのデータを前記視聴要求を送信した前記ピアに配信する第1の配信部と、前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから受信し、前記受信した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記第1のキャッシュ部に復元したコンテンツのデータを記憶させる第1の統合部と、を備え、前記アプリケーションサーバは、前記コンテンツ毎に当該コンテンツのデータが記憶されている前記ピアを示す情報、及び当該コンテンツの配信数が記憶される配信管理テーブルと、前記ピアから前記コンテンツの視聴要求を受け付けると、前記配信管理テーブルの前記視聴要求に示されるコンテンツの配信数を参照し、当該配信数が所定の閾値を超えるか否かを判定する切替判定部と、前記切替判定部が、当該配信数が所定の閾値を超えていないと判定した場合に、前記配信管理テーブルを参照して、前記視聴要求に示されるコンテンツと同じコンテンツのデータを記憶する前記ピアを3つ選択し、前記選択したピアのそれぞれを当該コンテンツの奇数フレームデータを配信する第1のピアと、当該コンテンツの偶数フレームデータを配信する第2のピアと、当該コンテンツのXORデータを配信する第3のピアとして決定し、前記決定した当該第1のピア、当該第2のピア、当該第3のピアそれぞれに配信指示を行うと共に、前記配信管理テーブルの当該コンテンツの配信数を加算する管理部と、前記切替判定部が、当該配信数が所定の閾値を超えていると判定した場合に、当該コンテンツの当該視聴要求以後の視聴要求について、前記キャッシュサーバに配信指示をすることにより前記コンテンツのデータの配信元を前記キャッシュサーバに切り替える切替部と、を備え前記キャッシュサーバは、前記コンテンツのデータが記憶される第2のキャッシュ部と、前記アプリケーションサーバから前記配信指示を受信すると、前記配信数が所定の閾値を超えたコンテンツと同じコンテンツのデータを記憶する前記ピアから当該コンテンツのデータを取得し、前記第2のキャッシュ部に前記取得した当該コンテンツのデータを記憶させる第2の統合部と、前記第2のキャッシュ部に記憶された前記コンテンツのデータを、前記視聴要求を送信した前記ピアに配信する第2の配信部と、を備える、ことを特徴とする。
また、本発明に係るコンテンツ配信方法は、複数のピア、キャッシュサーバ、及びアプリケーションサーバがネットワークに接続され、コンテンツのデータの配信に際して、前記ピアが前記アプリケーションサーバに配信を要求することで、前記ピア同士が前記コンテンツのデータの配信を直接行うコンテンツ配信システムのコンテンツ配信方法であって、前記ピアは、前記コンテンツの視聴要求を前記アプリケーションサーバに送信し、前記アプリケーションサーバは、前記コンテンツ毎に当該コンテンツのデータが記憶されている前記ピアを示す情報、及び当該コンテンツの配信数が記憶される配信管理テーブルを備え、前記ピアから前記コンテンツの視聴要求を受け付けると、前記配信管理テーブルの前記視聴要求に示されるコンテンツの配信数を参照し、当該配信数が所定の閾値を超えるか否かを判定し、当該配信数が所定の閾値を超えていないと判定した場合に、前記配信管理テーブルを参照して、前記視聴要求に示されるコンテンツと同じコンテンツのデータを記憶する前記ピアを3つ選択し、前記選択したピアのそれぞれを当該コンテンツの奇数フレームデータを配信する第1のピアと、当該コンテンツの偶数フレームデータを配信する第2のピアと、当該コンテンツのXORデータを配信する第3のピアとして決定し、前記決定した当該第1のピア、当該第2のピア、当該第3のピアそれぞれに前記配信指示を行うと共に、前記配信管理テーブルの当該コンテンツの配信数を加算し、前記アプリケーションサーバにより決定された前記第1のピア、第2のピア、第3のピアのそれぞれは、前記コンテンツのデータが記憶される第1のキャッシュ部を備え、前記アプリケーションサーバから前記配信指示を受信すると、前記第1のキャッシュ部に記憶される前記コンテンツのデータを、所定サイズのフレームに分割し時系列順に連続番号を付したフレーム群とし、前記フレーム群の内、奇数番号のフレームのデータである奇数フレームデータと、偶数番号のフレームのデータである偶数フレームデータと、前記奇数フレームデータと前記偶数フレームデータとの排他的論理和であるXORデータと、の3種類のデータに分割し、分割した前記3種類のデータの内、何れか1種類の前記コンテンツのデータを前記視聴要求を送信した前記ピアに配信し、前記視聴要求を送信した前記ピアは、前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから受信し、前記受信した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記第1のキャッシュ部に復元したコンテンツのデータを記憶し、前記アプリケーションサーバは、当該配信数が所定の閾値を超えていると判定した場合に、当該コンテンツの当該視聴要求以後の視聴要求について、前記キャッシュサーバに配信指示をすることにより前記コンテンツのデータの配信元を前記キャッシュサーバに切り替え、前記キャッシュサーバは、前記コンテンツのデータが記憶される第2のキャッシュ部を備え、前記アプリケーションサーバから前記配信指示を受信すると、前記配信数が所定の閾値を超えたコンテンツと同じコンテンツのデータを記憶する前記ピアから当該コンテンツのデータを取得し、前記第2のキャッシュ部に前記取得した当該コンテンツのデータを記憶し、前記第2のキャッシュ部に記憶された前記コンテンツのデータを、前記視聴要求を送信した前記ピアに配信する、ことを特徴とする。
このようにすることで、本発明に係るコンテンツ配信システム及びコンテンツ配信方法は、コンテンツの視聴数が少ない間は各ピア相互間でコンテンツの配信を行う。よって、本発明に係るコンテンツ配信システム及びコンテンツ配信方法によれば、事前にコンテンツを集約して配備する必要がなく、また、コンテンツの突発的な視聴数増加に対応可能である。
また、本発明に係るコンテンツ配信システム及びコンテンツ配信方法は、コンテンツの視聴に際して、コンテンツの奇数フレームデータ、偶数フレームデータ、XORデータの3種類のデータが3つのピアから配信される(3重同時配信)。よって、本発明に係るコンテンツ配信システム及びコンテンツ配信方法によれば、コンテンツのデータを配信中のピアが突然に電源OFFされることにより、当該ピアからの配信が途絶えても、3ピアの内2ピアからの配信が継続する限りコンテンツのデータを復元することができるので、ユーザはコンテンツを滞ることなく視聴することができる。
また、本発明に係るコンテンツ配信システム及びコンテンツ配信方法は、3重同時配信のデータとして、オリジナルコンテンツのデータサイズと比較して0.5倍のデータサイズである奇数フレームデータ、偶数フレームデータ、及びXORデータを用いる。よって、本発明に係るコンテンツ配信システム及びコンテンツ配信方法によれば、1対1でコンテンツを配信する非多重化配信に対し、およそ1.5倍のトラヒック増で約2倍の信頼性を得ることができる。
また、本発明に係るコンテンツ配信システム及びコンテンツ配信方法は、コンテンツの視聴数が少ない間は各ピア相互間でコンテンツの配信を行い、当該コンテンツの視聴数が増加してきたらキャッシュサーバを併用してコンテンツの配信を行う。よって、本発明に係るコンテンツ配信システム及びコンテンツ配信方法によれば、各ピア相互間でコンテンツの配信を行うことにより発生する上り帯域の圧迫を軽減することができる。
また、本発明に係るコンテンツ配信システムは、複数のピア、キャッシュサーバ、及びアプリケーションサーバがネットワークに接続され、コンテンツのデータの配信に際して、前記ピアが前記アプリケーションサーバに配信を要求することで、前記ピア同士が前記コンテンツのデータの配信を直接行うコンテンツ配信システムであって、前記ピアは、前記コンテンツのデータが所定サイズのフレームに分割されて時系列順に連続番号が付されたフレーム群とされ、前記フレーム群の内、奇数番号のフレームのデータである奇数フレームデータと、偶数番号のフレームのデータである偶数フレームデータと、前記奇数フレームデータと前記偶数フレームデータとの排他的論理和であるXORデータと、の3種類のデータの内、何れか1種類が記憶される第1のキャッシュ部と、前記コンテンツの視聴要求を前記アプリケーションサーバに送信する視聴要求部と、前記アプリケーションサーバから前記コンテンツの配信指示を受信すると、前記第1のキャッシュ部に記憶される、何れか1種類の前記コンテンツのデータを前記視聴要求を送信した前記ピアに配信する第1の配信部と、前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから受信し、前記受信した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記受信した3種類のデータの内、何れか1種類を前記第1のキャッシュ部に記憶させる第1の統合部と、を備え、前記アプリケーションサーバは、前記コンテンツの前記奇数フレームデータ、前記偶数フレームデータ、前記XORデータの何れか1種類のデータが記憶されている前記ピアを示す情報、及び当該コンテンツの配信数が記憶される配信管理テーブルと、前記ピアから前記コンテンツの視聴要求を受け付けると、前記配信管理テーブルの前記視聴要求に示されるコンテンツの配信数を参照し、当該配信数が所定の閾値を超えるか否かを判定する切替判定部と、前記切替判定部が、当該配信数が所定の閾値を超えていないと判定した場合に、前記配信管理テーブルを参照して、前記視聴要求に示されるコンテンツと同じコンテンツの前記奇数フレームデータを記憶する前記ピア、当該コンテンツの前記偶数フレームデータを記憶する前記ピア、当該コンテンツの前記XORデータを記憶する前記ピアをそれぞれ選択し、前記選択したピアのそれぞれを当該コンテンツの前記奇数フレームデータを配信する第1のピアと、当該コンテンツの前記偶数フレームデータを配信する第2のピアと、当該コンテンツの前記XORデータを配信する第3のピアとして決定し、前記決定した当該第1のピア、当該第2のピア、当該第3のピアそれぞれに配信指示を行うと共に、前記配信管理テーブルの当該コンテンツの配信数を加算する管理部と、前記切替判定部が、当該配信数が所定の閾値を超えていると判定した場合に、当該コンテンツの当該視聴要求以後の視聴要求について、前記キャッシュサーバに配信指示をすることにより前記コンテンツのデータの配信元を前記キャッシュサーバに切り替える切替部と、を備え、前記キャッシュサーバは、前記コンテンツのデータが記憶される第2のキャッシュ部と、前記アプリケーションサーバから前記配信指示を受信すると、前記配信数が所定の閾値を超えたコンテンツと同じコンテンツの前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから取得し、前記取得した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記第2のキャッシュ部に復元した当該コンテンツのデータを記憶させる第2の統合部と、
前記第2のキャッシュ部に記憶された前記コンテンツのデータを、前記視聴要求を送信した前記ピアに配信する第2の配信部と、を備える、ことを特徴とする。
また、本発明に係るコンテンツ配信方法は、複数のピア、キャッシュサーバ、及びアプリケーションサーバがネットワークに接続され、コンテンツのデータの配信に際して、前記ピアが前記アプリケーションサーバに配信を要求することで、前記ピア同士が前記コンテンツのデータの配信を直接行うコンテンツ配信システムのコンテンツ配信方法であって、前記ピアは、前記コンテンツの視聴要求を前記アプリケーションサーバに送信し、前記アプリケーションサーバは、前記コンテンツのデータが所定サイズであるフレームに分割されて時系列順に連続番号が付されたフレーム群とされ、前記フレーム群の内、奇数番号のフレームのデータである奇数フレームデータと、偶数番号のフレームのデータである偶数フレームデータと、前記奇数フレームデータと前記偶数フレームデータとの排他的論理和であるXORデータとの3種類のデータの内、何れか1種類が記憶されている前記ピアを示す情報、及び当該コンテンツの配信数が記憶される配信管理テーブルを備え、前記ピアから前記コンテンツの視聴要求を受け付けると、前記配信管理テーブルの前記視聴要求に示されるコンテンツの配信数を参照し、当該配信数が所定の閾値を超えるか否かを判定し、当該配信数が所定の閾値を超えていないと判定した場合に、前記配信管理テーブルを参照して、前記視聴要求に示されるコンテンツと同じコンテンツの前記奇数フレームデータを記憶する前記ピア、当該コンテンツの前記偶数フレームデータを記憶する前記ピア、当該コンテンツの前記XORデータを記憶する前記ピアをそれぞれ選択し、前記選択したピアのそれぞれを当該コンテンツの前記奇数フレームデータを配信する第1のピアと、当該コンテンツの前記偶数フレームデータを配信する第2のピアと、当該コンテンツの前記XORデータを配信する第3のピアとして決定し、前記決定した当該第1のピア、当該第2のピア、当該第3のピアそれぞれに配信指示を行うと共に、前記配信管理テーブルの当該コンテンツの配信数を加算し、前記アプリケーションサーバにより決定された前記第1のピア、第2のピア、第3のピアのそれぞれは、前記奇数フレームデータ、前記偶数フレームデータ、前記XORデータの内、何れか1種類が記憶される第1のキャッシュ部を備え、前記第1のキャッシュ部に記憶される、何れか1種類の前記コンテンツのデータを前記アプリケーションサーバから配信指示を受信すると、前記視聴要求を送信した前記ピアに配信し、前記視聴要求を送信した前記ピアは、前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから受信し、前記受信した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記受信した3種類のデータの内、何れか1種類を前記第1のキャッシュ部に記憶し、前記アプリケーションサーバは、当該配信数が所定の閾値を超えていると判定した場合に、当該コンテンツの当該視聴要求以後の視聴要求について、前記キャッシュサーバに配信指示をすることにより前記コンテンツのデータの配信元を前記キャッシュサーバに切り替え、前記キャッシュサーバは、前記コンテンツのデータが記憶される第2のキャッシュ部を備え、前記アプリケーションサーバから前記配信指示を受信すると、前記配信数が所定の閾値を超えたコンテンツと同じコンテンツの前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから取得し、前記取得した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記第2のキャッシュ部に復元した当該コンテンツのデータを記憶し、前記第2のキャッシュ部に記憶された前記コンテンツのデータを、前記視聴要求を送信した前記ピアに配信する、ことを特徴とする。
このようにすることで、本発明に係るコンテンツ配信システム及びコンテンツ配信方法は、ユーザが管理する装置であるピアがコンテンツの一部のデータ(コンテンツの奇数フレームデータ、偶数フレームデータ、XORデータのいずれか)を保持する。よって、本発明に係るコンテンツ配信システム及びコンテンツ配信方法によれば、コンテンツの2次配布等といったコンテンツの不正利用を難しくすることができる。
本発明に係るコンテンツ配信システム、コンテンツ配信方法、ならびにコンテンツ配信システムに用いられるピア、アプリケーションサーバ及びキャッシュサーバによれば、事前にコンテンツを集約して配備する必要がなく、また、コンテンツ数や容量が増加したり、突発的に視聴数が増加した場合でも滞ることなくコンテンツを配信することができる。
本実施形態に係るコンテンツ配信システムの構成図である。 本実施形態に係るコンテンツ配信システムを構成するピアの構成図である。 本実施形態に係るコンテンツ配信システムを構成するピアに格納されるキャッシュ管理テーブルの構成図である。 本実施形態に係るコンテンツ配信システムを構成するピアが備える分割部の処理を説明するための図である。 本実施形態に係るコンテンツ配信システムを構成するキャッシュサーバの構成図である。 本実施形態に係るコンテンツ配信システムを構成するアプリケーションサーバ(AS)の構成図である。 本実施形態に係るコンテンツ配信システムを構成するアプリケーションサーバ(AS)に格納される配信管理テーブルの構成図である。 本実施形態に係るコンテンツ配信システムのコンテンツ公開処理を説明するための図である。 本実施形態に係るコンテンツ配信システムのコンテンツ公開処理後の配信管理テーブル及びキャッシュ管理テーブルを説明するための図である。 本実施形態に係るコンテンツ配信システムのコンテンツ視聴要求処理(1)を説明するための図である。 本実施形態に係るコンテンツ配信システムのコンテンツ視聴要求処理(1)後の配信管理テーブル及びキャッシュ管理テーブルを説明するための図である。 本実施形態に係るコンテンツ配信システムのコンテンツ視聴要求処理(2)を説明するための図である。 本実施形態に係るコンテンツ配信システムのコンテンツ視聴要求処理(2)後の配信管理テーブル及びキャッシュ管理テーブルを説明するための図である。 本実施形態に係るコンテンツ配信システムのコンテンツ視聴要求処理(3)を説明するための図である。 本実施形態に係るコンテンツ配信システムのコンテンツ視聴要求処理(3)後の配信管理テーブル及びキャッシュ管理テーブルを説明するための図である。 本実施形態に係るコンテンツ配信システムのキャッシュ削除処理を説明するための図である。 本実施形態に係るコンテンツ配信システムのキャッシュ削除処理前後の配信管理テーブル及びキャッシュ管理テーブルを説明するための図である。 本実施形態に係るコンテンツ配信システムのキャッシュサーバ併用処理(1)を説明するための図である。 本実施形態に係るコンテンツ配信システムのキャッシュサーバ併用処理(2)を説明するための図である。
以下、図面を参照して、本発明の実施の形態につき詳細に説明する。
なお、各図は、本発明を十分に理解できる程度に、概略的に示してあるに過ぎない。よって、本発明は、図示例のみに限定されるものではない。なお、各図において、共通する構成要素や同様な構成要素については、同一の符号を付し、それらの重複する説明を省略する。
[文言の定義]
本明細書で用いられる文言を以下のように定義する。
「ユーザ」とは、コンテンツを視聴する者をいう。例えば、ピア10がユーザ端末(例えば、PC(Personal Computer))である場合には、ユーザはユーザ端末の操作者であり、また、ピア10がHGW(Home Gateway)である場合には、ユーザはHGWの下流のホームネットワークに接続される図示しないテレビ、PC等の操作者である。
「コンテンツ」とは、リアルタイム性を有するコンテンツをいう。例えば、動画、音楽等が該当する。また、コンテンツの提供者が保有するコンテンツのことを、配信されたコンテンツと区別して「オリジナルコンテンツ」又は「オリジナル」と呼ぶ場合がある。
「コンテンツの公開」とは、ネットワーク90上でコンテンツのストリーミング配信を可能にするためにAS50にコンテンツに関する情報を登録することをいう。
「キャッシュ」とは、コンテンツを視聴するために記憶部12,32(後記参照)に一時的に記憶すること、又は記憶されたコンテンツのデータそのものをいう。
≪コンテンツ配信システムの構成≫
<概要>
以下、図1を参照して、本実施形態に係るコンテンツ配信システムの構成について説明する。なお、図1は、本実施形態に係るコンテンツ配信システムの構成図である。
コンテンツ配信システム100は、ピア10A,・・・,10X,10Y,10Z(以下、まとめて「ピア10」と呼ぶ場合がある)、キャッシュサーバ30a,・・・,30n(以下、まとめて「キャッシュサーバ30」と呼ぶ場合がある)、及びAS50がネットワーク90を介して通信可能に接続されている。
コンテンツ配信システム100は、原則として、ハイブリッド型P2P配信システムとして動作する。すなわち、AS50は、ピア10が何れのコンテンツをキャッシュしているかという情報を集約して持ち、ピア10からの視聴要求に応じて、ピア10のマッチングを行い、ピア10同士でコンテンツの配信を行うように管理する。ピア10は、コンテンツを再生すると共にキャッシュとして蓄え、新たな視聴要求に応じてコンテンツを配信する配信ノードとなる。ハイブリッド型P2P配信システムは、親から子、子から孫、孫から曾孫へとコンテンツを配信することで配信に要する負荷を分散し、突発的な視聴数増加に対応する。
このように、コンテンツ配信システム100が、ハイブリッド型P2P配信システムとして動作すると、あるコンテンツを複数のピア10が視聴する場合に、視聴しているピア10の全てに同一のコンテンツがキャッシュされるので、時間の変化と共に複数のピア10が同一のコンテンツをキャッシュするときがある。コンテンツ配信システム100では、同一のコンテンツをキャッシュするピア10の数に応じて配信方法を変える。
具体的には、同一のコンテンツを1つのピア10がキャッシュしている場合には、その1つのピア10からコンテンツを配信し(以下、「単独配信」と呼ぶ場合がある)、同一のコンテンツを2つのピア10がキャッシュしている場合には、その2つのピア10からコンテンツを同時配信し(以下、「2重同時配信」と呼ぶ場合がある)、同一のコンテンツを3つ以上のピア10がキャッシュしている場合には、その3つ以上のピア10の中から選択した3つのピア10からコンテンツを同時配信する(以下、「3重同時配信」と呼ぶ場合がある)。なお、3重同時配信では、配信するデータとして、コンテンツの奇数フレームデータ、偶数フレームデータ、XORデータを用いる。詳細は後記する。
また、コンテンツ配信システム100が、ハイブリッド型P2P配信システムとして動作すると、コンテンツを視聴する場合に、配信先のピア10の下り帯域に加えて、配信元のピア10の上り帯域を使用して配信するので、コンテンツの視聴数が増えると配信元のピア10の上り帯域を圧迫する可能性がある。
これに対して、キャッシュサーバ30からコンテンツを配信する場合は、配信先のピア10の下り帯域のみ使用し、配信元のピア10の上り帯域は使用しない。また、キャッシュサーバ30は、ピア10に比べ電源がOFF等される可能性が格段に低いと想定されるため、ネットワークの信頼性が十分に確保される場合、コンテンツのデータを多重に配信する必要がないため、多重化によるトラヒックの増加も無い。
コンテンツ配信システム100では、キャッシュサーバ30からの配信の帯域使用効率の高さを鑑み、視聴数が少ない間はピア10相互間でコンテンツの配信を行い、視聴数が増加してきたら(上り帯域を圧迫してきたら)、コンテンツをキャッシュサーバ30に配備し、新しい視聴要求に対してキャッシュサーバ30からコンテンツの配信を行う。また、視聴数が減った段階で、キャッシュサーバ30からの配信を停止し、キャッシュサーバ30から該当キャッシュを削除し、ピア10相互間による配信に戻す。
<ピア>
ピア10は、例えば、PC(Personal Computer)等のユーザ端末、HGW(Home Gateway)等である。また、ピア10には、ピアを一意に識別する識別情報であるピアIDが付与されている。図1では、ピアIDが「A」のピアをピア10Aと、ピアIDが「X」のピアをピア10Xと、ピアIDが「Y」のピアをピア10Yと、ピアIDが「Z」のピアをピア10Zと表記している。
図2を参照して、ピア10の構成を説明する。ピア10は、通信部11、記憶部12、及び制御部15を備えて構成される。通信部11は、ピア10をネットワーク90に接続する通信インタフェースである。
記憶部12は、HDD(Hard Disk Drive)等で構成される。記憶部12には、コンテンツがキャッシュ(記憶)されるキャッシュ部13が領域として確保され、キャッシュ部13に格納されるコンテンツのコンテンツIDが格納されるキャッシュ管理テーブル14が記憶されている。キャッシュ管理テーブル14の構成を図3に示す。コンテンツID141は、ネットワーク90内でコンテンツを一意に識別する識別情報である。コンテンツID141は、例えば、数桁の数字で構成される。コンテンツID141は、ピア10が、コンテンツの公開要求を行った場合に、AS50が当該コンテンツにコンテンツID141を割り振る。以下、コンテンツID141が「α」のコンテンツを、コンテンツαと呼ぶときがある。
図2に戻り、制御部15は、CPU(Central Processing Unit)、及びこれらの周辺回路等(いずれも図示せず)から構成される。また、制御部15は、通信制御部16、登録要求部17、視聴要求部18、分割部19、配信部20、統合部21、及び削除部22を含めて構成される。そして、この制御部15は、記憶部12に格納される図示しないプログラムをメモリ(不図示)に展開し、実行することにより実現される。
通信制御部16は、通信部11を介してキャッシュサーバ30及びAS50との間でデータの送受信を行う。
登録要求部17は、ユーザによりコンテンツが公開される場合に、AS50に対して、ピア10が有するオリジナルコンテンツをネットワーク90上で公開することを要求する公開要求を送信する。登録要求部17は、また、キャッシュ管理テーブル14のコンテンツID141に公開したコンテンツIDを登録する。なお、コンテンツIDは、AS50に対して送信した公開要求に対する応答として、公開要求を行ったコンテンツのコンテンツIDを受信するようにしてもよい。
視聴要求部18は、ユーザによりコンテンツが視聴される場合に、AS50に対して、ネットワーク90上に公開されているコンテンツの配信を要求する視聴要求を送信する。ここで、公開要求を受けたコンテンツは、例えば、図示しないWebサーバを用いてネットワーク90上で公開されている。
視聴要求部18は、また、AS50に対して送信した視聴要求に対する応答として、視聴要求を行ったコンテンツの配信元となるピアのピアIDと、ピアIDに対応したピアから配信されるコンテンツのデータの種類(以下、「データ種類」と呼ぶ場合がある)を受信する。コンテンツのデータ種類には、FULLデータ、奇数フレームデータ、偶数フレームデータ、及びXORデータの4種類がある。FULLデータは、コンテンツ全体のデータである。なお、その他のデータ種類の詳細については、分割部19で説明する。
ここで、視聴要求部18が受信する配信元となるピアのピアIDの数は、配信方法により異なる。具体的には、視聴要求部18は、単独配信の場合は1つのピアIDを受信し、2重同時配信の場合は2つのIDを受信し、3重同時配信の場合は3つのIDを受信する。
視聴要求部18は、また、コンテンツの配信元となるピアのピアIDを受信した場合に、受信したピアIDを参照し、コンテンツの配信元となるピアに対して、コンテンツの配信を要求する配信要求を送信する。ここで、視聴要求部18が配信要求を送信するピア10の数は、視聴要求部18が受信した配信元となるピアのピアIDの数に対応する。配信要求には、配信先となる自己のピアID、及び視聴要求に対する応答としてAS50から受信したデータ種類(FULLデータ、奇数フレームデータ、偶数フレームデータ、及びXORデータの4種類)を設定する。
図4を参照して、本実施形態に係る分割部19の処理について説明する。
分割部19は、自身以外のピア10から配信要求を受信した場合に、配信要求に設定されるデータ種類を参照し、データ種類に応じて異なる処理を行う。なお、キャッシュサーバ30から後記する取得要求を受信した場合も同様である。
なお、データ種類が「FULLデータ」のときには、分割部19は、分割処理を行わない。
まず、データ種類が「奇数フレームデータ」、「偶数フレームデータ」のときには、分割部19は、キャッシュ部13にキャッシュされるコンテンツのFULLデータを所定サイズのフレーム70a,70b,70c,70d,・・に分割し、時系列順に連続番号(例えば、昇順)を付したフレーム群70とする。次に、分割部19は、フレーム群70の内、奇数番号のフレーム群である奇数フレームデータ71と、偶数番号のフレーム群である偶数フレームデータ72とに分割する。
次に、データ種類が「XORデータ」のときには、分割部19は、FULLデータの分割処理をした後に、奇数フレームデータ71の内、時系列順に最初のフレーム70aと、偶数フレームデータ72の内、時系列順に最初のフレーム70bの排他的論理和であるXORフレーム80abを算出する。次に、分割部19は、奇数フレームデータ71の内、時系列順に2番目のフレーム70cと、偶数フレームデータ72の内、時系列順に2番目のフレーム70dの排他的論理和(XOR:exclusive or)であるXORフレーム80cdを算出する。以降、このように、分割部19は、全てのフレームについて処理を行い、奇数フレームデータ71と偶数フレームデータ72との排他的論理和のフレーム群であるXORデータ80を算出する。
配信部20(第1の配信部)は、分割部19がデータ種類に従った上記処理を行った後に、データ種類に応じて異なる処理を行う。
まず、データ種類が「FULLデータ」のときには、配信部20は、コンテンツの配信先となるピアに対して、キャッシュ部13にキャッシュされるコンテンツのFULLデータを配信する。
データ種類が「奇数フレームデータ」のときには、配信部20は、コンテンツの配信先となるピアに対して、キャッシュ部13にキャッシュされるコンテンツを分割部19が分割した内の奇数フレームデータ71(図4参照)を配信する。
データ種類が「偶数フレームデータ」のときには、配信部20は、コンテンツの配信先となるピアに対して、キャッシュ部13にキャッシュされるコンテンツを分割部19が分割した内の偶数フレームデータ72(図4参照)を配信する。
そして、データ種類が「XORデータ」のときには、配信部20は、コンテンツの配信先となるピアに対して、キャッシュ部13にキャッシュされるコンテンツを分割部19が処理したXORデータ80(図4参照)を配信する。
統合部21(第1の統合部)は、配信方法により異なる処理を行う。
まず、コンテンツの配信方法が「単独配信」のときには、統合部21は、1つの配信元のピア10から、コンテンツのFULLデータを受信する。そして、統合部21は、受信したコンテンツのFULLデータを再生すると共に、キャッシュ部13にFULLデータをキャッシュし、キャッシュ管理テーブル14のコンテンツID141に受信したコンテンツのコンテンツIDを登録する。
また、コンテンツの配信方法が「2重同時配信」のときには、統合部21は、異なる2つの配信元のピア10から、コンテンツのFULLデータを受信する。そして、統合部21は、受信した2つのFULLデータの内、いずれかを取捨選択し、取捨選択した一方のFULLデータを再生すると共に、キャッシュ部13にFULLデータをキャッシュし、キャッシュ管理テーブル14のコンテンツID141に受信したコンテンツのコンテンツIDを登録する。統合部21は、異なる2つの配信元のピア10の内、どちらかからの配信が滞った場合には、正常に配信されたFULLデータを取捨選択する。
そして、コンテンツの配信方法が「3重同時配信」のときには、統合部21は、異なる3つの配信元のピア10から、異なるデータ種類の奇数フレームデータ、偶数フレームデータ、及びXORデータを受信する。そして、統合部21は、奇数フレームデータ、偶数フレームデータ、及びXORデータの内、いずれか2種類を取捨選択し、取捨選択した2種類のデータをFULLデータに統合(復元)して再生すると共に、キャッシュ部13に統合(復元)したFULLデータをキャッシュし、キャッシュ管理テーブル14のコンテンツID141に受信したコンテンツのコンテンツIDを登録する。
具体的に、統合部21は、奇数フレームデータ、偶数フレームデータ、及びXORデータのすべてを受信した場合には、奇数フレームデータ、及び偶数フレームデータを取捨選択し、奇数フレームデータ、及び偶数フレームデータをマージすることでFULLデータに統合(復元)する。一方、奇数フレームデータ、及び偶数フレームデータのどちらか一方の配信が滞った場合には、正常に配信された奇数フレームデータ又は偶数フレームデータと、XORデータとを乗じることで配信が滞った奇数フレームデータ又は偶数フレームデータを算出する。そして、統合部21は、算出した奇数フレームデータ又は偶数フレームデータと、正常に配信された奇数フレームデータ又は偶数フレームデータをマージすることでFULLデータに統合(復元)する。
削除部22は、AS50から、キャッシュ部13にキャッシュされているコンテンツの内、削除するコンテンツのコンテンツIDを指定した削除指示を受信する。削除部22は、削除指示を受信した場合に、該当するコンテンツのデータをキャッシュ部13から削除すると共に、キャッシュ管理テーブル14のコンテンツID141から該当するコンテンツIDを削除する。そして、削除部22は、AS50に対して、削除指示を受けたコンテンツのデータの削除が完了したことを示す削除完了通知を送信する。
以上より、本実施形態に係るピア10は、コンテンツの視聴に際して、コンテンツの奇数フレームデータ、偶数フレームデータ、XORデータの3種類のデータを3つのピアから受信する(3重同時配信)。よって、本実施形態に係るピア10によれば、コンテンツのデータを配信中のピア10が突然に電源OFFされることにより、当該ピア10からの配信が途絶えても、3ピアの内2ピアからの配信が継続する限り、コンテンツのデータを復元することができるので、ユーザはコンテンツを滞ることなく視聴することができる。
また、本実施形態に係るピア10は、3重同時配信のデータとして、オリジナルコンテンツのデータサイズと比較して0.5倍のデータサイズである奇数フレームデータ、偶数フレームデータ、及びXORデータを用いる。よって、本実施形態に係るピア10によれば、1対1でコンテンツを配信する非多重化配信に対し、およそ1.5倍のトラヒック増で約2倍の信頼性を得ることができる。
以上で、ピア10の説明を終了する。
<キャッシュサーバ>
キャッシュサーバ30は、3つのピア10から3重同時配信でコンテンツのデータを取得し、配信要求があったピア10に対して単独配信でコンテンツのデータを配信する。その他の、コンテンツのデータを収集方法、及び配信方法については後記する変形例で説明する。
図5を参照して、本実施形態に係るキャッシュサーバ30について説明する。キャッシュサーバ30は、通信部31、記憶部32、及び制御部35を備えて構成される。
通信部31は、キャッシュサーバ30をネットワーク90に接続する通信インタフェースである。
記憶部32は、HDD(Hard Disk Drive)等で構成される。記憶部32には、コンテンツがキャッシュ(記憶)されるキャッシュ部33が領域として確保され、キャッシュ部33に格納されるコンテンツのコンテンツIDが格納されるキャッシュ管理テーブル34が記憶されている。ここで、キャッシュ管理テーブル34の構成は、ピア10に記憶されるキャッシュ管理テーブル14の構成と同様なので、説明を省略する。
制御部35は、CPU(Central Processing Unit)、及びこれらの周辺回路等(いずれも図示せず)から構成される。制御部35は、通信制御部36、取得部37、統合部38、配信部39、及び削除部40を含んで構成される。そして、この制御部35は、記憶部32に格納される図示しないプログラムをメモリ(不図示)に展開し、実行することにより実現される。
通信制御部36は、通信部31を介してピア10及びAS50との間でデータの送受信を行う。
取得部37は、AS50の決定によりキャッシュサーバ30からコンテンツを配信することになった場合に、AS50から、当該コンテンツのコンテンツIDと、当該コンテンツがキャッシュされる取得先となるピア10のピアIDと、ピアIDに対応したピアから配信されるコンテンツのデータ種類とが設定された収集要求を受信する。取得部37は、コンテンツのデータを3重同時配信で取得するので、収集要求には3つのピアIDと、3つのデータ種類(奇数フレームデータ、偶数フレームデータ、又はXORデータ)が設定されている。
取得部37は、また、AS50から収集要求を受信した場合に、収集要求に設定されたピアIDを参照し、コンテンツがキャッシュされる取得先のピア10に対して、コンテンツの取得を要求する取得要求を送信する。ここで、取得部37が取得要求を送信するピア10の数は、収集要求に設定されているピアIDの数に対応して3つである。取得要求には、取得元となる自己のピアID、及びAS50から受信した3種類のデータ種類(奇数フレームデータ、偶数フレームデータ、又はXORデータ)を設定する。
統合部38(第2の統合部)は、取得要求に対する応答として異なる3つの取得先のピア10から、異なるデータ種類の奇数フレームデータ、偶数フレームデータ、及びXORデータを受信する。そして、統合部38は、奇数フレームデータ、偶数フレームデータ、及びXORデータの内、いずれか2種類を取捨選択し、取捨選択した2種類のデータをFULLデータに統合(復元)すると共に、キャッシュ部33に統合(復元)したFULLデータをキャッシュし、キャッシュ管理テーブル34のコンテンツIDに受信したコンテンツのコンテンツIDを登録する。なお、受信データの取捨選択、及びFULLデータの統合(復元)については、ピア10が備える統合部21の処理と同様なので説明を省略する。
配信部39(第2の配信部)は、コンテンツの配信先となるピア10から配信要求を受信した場合に、配信先となるピア10に対して、統合部38で統合されキャッシュ部33にキャッシュされたコンテンツのFULLデータを配信する(単独配信)。
削除部40は、AS50から、キャッシュ部33にキャッシュされているコンテンツの内、削除するコンテンツのコンテンツIDを指定した削除指示を受信する。削除部40は、削除指示を受信した場合に、該当するコンテンツのデータをキャッシュ部33から削除すると共に、キャッシュ管理テーブル34のコンテンツIDから該当するコンテンツIDを削除する。そして、削除部40は、AS50に対して、削除指示を受けたコンテンツのデータの削除が完了したことを示す削除完了通知を送信する。
以上より、本実施形態にキャッシュサーバ30は、AS50から収集要求を受信した場合に、収集要求に設定されている3つの取得先(ピア)に対してコンテンツの取得要求を送信し、その応答として、3つの取得先(ピア)から、異なるデータ種類の奇数フレームデータ、偶数フレームデータ、及びXORデータを受信し、受信した3種類のデータからコンテンツのFULLデータを復元してキャッシュする。そして、ピア10から視聴要求があった場合に、キャッシュしたコンテンツのFULLデータを、当該コンテンツをキャッシュするピア10に代わって視聴要求があったピア10に配信する。よって、本実施形態に係るキャッシュサーバ30によれば、各ピア相互間でコンテンツの配信を行うことにより発生する上り帯域の圧迫を軽減することができる。
以上で、キャッシュサーバ30の説明を終了する。
<AS(アプリケーションサーバ)>
図6を参照して、本実施形態に係るAS50について説明する。AS50は、通信部51、記憶部52、及び制御部55を備えて構成される。通信部51は、AS50をネットワーク90に接続する通信インタフェースである。
記憶部52は、HDD(Hard Disk Drive)等で構成される。記憶部52には、コンテンツ毎に当該コンテンツがキャッシュされているピア10の情報が配信管理テーブル53として記憶されている。配信管理テーブル53の詳細を図7に示す。
図7を参照して、配信管理テーブル53の構成を説明する。
コンテンツID531は、ネットワーク90内でコンテンツを一意に識別する識別情報である。コンテンツID531は、例えば、数桁の数字で構成される。
ピアID532は、ネットワーク90内でピア10を一意に識別する識別情報である。ピアID532は、例えば、IPアドレス、電話番号、会員番号等が該当する。
キャッシュ保持期限533は、コンテンツがピア10にキャッシュされる時間である。なお、オリジナルコンテンツを保持するピア10には、キャッシュ保持期限533を設定しない(図7では「オリジナル」と表記)。
リソース提供者534は、コンテンツの配信元となるピア10、及び配信元となるピア10から配信されたデータのデータ種類である。図7では、データ種類は、()内に記載され、コンテンツのFULLデータが配信された場合に「FULL」と、奇数フレームデータが配信された場合に「奇数」と、偶数フレームデータが配信された場合に「偶数」と、XORデータが配信された場合に「XOR」と省略して記載している。また、オリジナルコンテンツを保持するピア10には、配信元となるピア10は存在しないので、データ種類のみ「オリジナル」と表記されている。例えば、ピアID532が「X」のピア10Xは、ピアID532が「A」のピア10Aからデータ種類が「FULLデータ」のコンテンツのデータが配信されていることを示している。
配信数535は、ピアID532に対応するピア10が、該当コンテンツを配信している数である。
配信上限数536は、ピアID532に対応するピア10が、該当コンテンツを配信可能な上限数である。配信上限数536には、例えば、ピア10の処理能力に応じた最大同時配信数が設定される。
なお、配信管理テーブル53のコンテンツID531に属するレコードの数は、当該コンテンツを視聴した(すなわち、当該コンテンツをキャッシュしている)ピア10の数に対応する。
図6に戻り、制御部55は、CPU(Central Processing Unit)、及びこれらの周辺回路等(いずれも図示せず)から構成される。また、制御部55は、通信制御部56、登録部57、管理部58、切替判定部59、切替部60、及び削除指示部61を含んで構成される。そして、この制御部55は、記憶部52に格納される図示しないプログラムをメモリ(不図示)に展開し、実行することにより実現される。
通信制御部56は、通信部51を介してピア10及びキャッシュサーバ30との間でデータの送受信を行う。
登録部57は、ユーザによりコンテンツが公開される場合に、ピア10から公開要求を受信する。また、登録部57は、配信管理テーブル53に公開するコンテンツの内容を登録する。なお、登録部57は、公開要求を受けた当該コンテンツにコンテンツIDを割り振り、公開要求をしたピア10に割り振ったコンテンツIDを送信するようにしてもよい。
具体的には、登録部57は、公開要求に設定されていたコンテンツIDを、ピアID532に公開要求をしたピア10のピアIDを、キャッシュ保持期限533及びリソース提供者534にオリジナルコンテンツである旨の情報を、配信数535に「0」を、配信上限数536に所定の値を書き込む。なお、登録部57が、コンテンツIDを割り振る場合には、コンテンツID531に割り振ったコンテンツIDを書き込んでもよい。
管理部58は、ユーザによりコンテンツが視聴される場合に、ピア10から視聴要求を受信する。次に、管理部58は、配信管理テーブル53の内、視聴要求があったコンテンツの項目を参照することで配信可能なピア10を抽出し、配信可能なピア10の数に応じた処理を行う。配信可能であるか否かは、配信数535が配信上限数536よりも小さければそのピア10は配信可能と判定し、配信数535が配信上限数536よりも小さくなければそのピア10は配信不能と判定する。
次に、コンテンツを配信可能なピア10の数が「1」の場合、「2」の場合、「3以上」の場合について説明する。
(コンテンツを配信可能なピア10の数が「1」の場合)
管理部58は、視聴要求をしたピア10に対して、単独配信を行うことを決定すると共に、コンテンツのデータの配信の管理を行う。
具体的には、管理部58は、配信管理テーブル53の内、視聴要求があったコンテンツの項目を参照し、配信可能なピア10を1つ抽出し、配信元となる1つのピア10のピアID532を取得する。そして、管理部58は、視聴要求をしたピア10に対して、視聴要求に対する応答として、配信元となるピア10のピアID532、及びデータ種類「FULLデータ」を設定した視聴要求応答を送信する。
また、管理部58は、配信管理テーブル53の内、視聴要求を受けたコンテンツに視聴要求があったピア10の新たなレコードを作成し、ピアID532に視聴要求があったピア10のピアIDを、キャッシュ保持期限533にキャッシュを保持する時間を、リソース提供者534に抽出した配信元となるピア10のピアID及びデータ種類「FULL」を、配信数535に「0」を、配信上限数536に所定の値を書き込む。また、管理部58は、抽出した配信元となるピア10に対応するレコードの配信数535に「1」を増加する。
(コンテンツを配信可能なピア10の数が「2」の場合)
管理部58は、視聴要求をしたピア10に対して、2重同時配信を行うことを決定すると共に、コンテンツのデータの配信の管理を行う。
具体的には、管理部58は、配信管理テーブル53の内、視聴要求があったコンテンツの項目を参照し、配信可能なピア10を2つ抽出し、配信元となる2つのピア10のピアID532を取得する。そして、管理部58は、視聴要求をしたピア10に対して、視聴要求に対する応答として、配信元となる2つのピア10のピアID532、及びデータ種類「FULLデータ」を設定した視聴要求応答を送信する。
また、管理部58は、配信管理テーブル53の内、視聴要求を受けたコンテンツに視聴要求があったピア10の新たなレコードを作成し、ピアID532に視聴要求があったピア10のピアIDを、キャッシュ保持期限533にキャッシュを保持する時間を、リソース提供者534に抽出した配信元となる2つのピア10のピアID及びデータ種類「FULL」を、配信数535に「0」を、配信上限数536に所定の値を書き込む。また、管理部58は、抽出した配信元となる2つのピア10に対応するレコードの配信数535に「1」を増加する。
(コンテンツを配信可能なピア10の数が「3以上」の場合)
管理部58は、視聴要求をしたピア10に対して、3重同時配信を行うことを決定すると共に、コンテンツのデータの配信の管理を行う。
具体的には、管理部58は、配信管理テーブル53の内、視聴要求があったコンテンツの項目を参照し、配信可能なピア10を3つ抽出し、配信元となる3つのピア10のピアID532を取得する。そして、管理部58は、視聴要求をしたピア10に対して、視聴要求に対する応答として、配信元となる3つのピア10のピアID532、及びデータ種類「奇数フレームデータ」、「偶数フレームデータ」、又は「XORデータ」を設定した視聴要求応答を送信する。
また、管理部58は、配信管理テーブル53の内、視聴要求を受けたコンテンツに視聴要求があったピア10の新たなレコードを作成し、ピアID532に視聴要求があったピア10のピアIDを、キャッシュ保持期限533にキャッシュを保持する時間を、リソース提供者534に抽出した配信元となる3つのピア10のピアID及びデータ種類「奇数」、「偶数」、又は「XOR」を、配信数535に「0」を、配信上限数536に所定の値を書き込む。また、管理部58は、抽出した配信元となる3つのピア10に対応するレコードの配信数535に「1」を増加する。
切替判定部59は、ピア10から配信要求を受信した場合に、配信管理テーブル53の内、配信要求があったコンテンツの配信数535をカウントし、配信数535が多い場合にキャッシュサーバ30に当該コンテンツを格納し、キャッシュサーバ30からピア10へ当該コンテンツの単独配信を行うように決定する。ここで、配信数535が多い場合とは、コンテンツ配信システム100の設計者等が定めた所定の閾値を配信数535が超えた場合、ネットワーク90の帯域を管理している図示しないネットワーク機能(ネットワーク管理装置等)から、上り帯域が圧迫している旨の通知を受けた(信号を受信した)場合等が想定される。
また、切替判定部59は、キャッシュサーバ30から配信を行っているコンテンツについてピア10から配信要求を受信した場合に、配信管理テーブル53の内、配信要求があったコンテンツのキャッシュサーバ30の配信数535をカウントし、配信数535が少ない場合にキャッシュサーバ30からピア10への当該コンテンツの単独配信を終了することを決定する。ここで、配信数535が少ない場合とは、コンテンツ配信システム100の設計者等が定めた所定の閾値を配信数535が下回った場合等が想定される。
切替部60は、切替判定部59がキャッシュサーバ30からピア10へのコンテンツの単独配信を行うことを決定した場合、当該コンテンツの配信を行うキャッシュサーバ30を選択する。ここで、キャッシュサーバ30の選択は、キャッシュサーバ30と当該コンテンツの配信先のピア10とのネットワーク距離、キャッシュサーバ30のリソース及び帯域の状況等を考慮し、適切なサーバをマッチングするとよい。なお、当該コンテンツが、既にキャッシュサーバ30にキャッシュされている場合は、そのキャッシュサーバ30を優先的に選択する。
また、切替部60は、配信管理テーブル53の内、キャッシュサーバ30からの配信を決定したコンテンツの項目を参照し、配信可能なピア10を3つ抽出し、コンテンツの取得先となる3つのピア10のピアID532を取得する。そして、切替部60は、選択したキャッシュサーバ30に対して、コンテンツの取得先となる3つのピア10のピアID532、及びデータ種類「奇数フレームデータ」、「偶数フレームデータ」、又は「XORデータ」が設定された収集要求を送信する。ここで、キャッシュサーバ30は、コンテンツのデータを3重同時配信で取得するので、収集要求には3つのピアIDと、3つのデータ種類(奇数フレームデータ、偶数フレームデータ、又はXORデータ)が設定されている。
また、切替部60は、配信管理テーブル53の内、キャッシュサーバ30からの配信を決定したコンテンツにキャッシュサーバ30の新たなレコードを作成し、ピアID532に選択したキャッシュサーバ30のピアIDを、キャッシュ保持期限533にキャッシュを保持する時間を、リソース提供者534に抽出した配信元となる3つのピア10のピアID及びデータ種類「奇数」、「偶数」、又は「XOR」を、配信数535に「0」を、配信上限数536に所定の値を書き込む。また、管理部58は、抽出した配信元となる3つのピア10に対応するレコードの配信数535に「1」を増加する。
切替部60は、キャッシュサーバ30から配信を行っているコンテンツについて視聴要求をしたピア10に対して、選択したキャッシュサーバ30から単独配信を行うことを決定すると共に、コンテンツのデータの配信の管理を行う。
具体的には、切替部60は、配信管理テーブル53の内、視聴要求があったコンテンツの項目を参照し、選択したキャッシュサーバ30を抽出し、配信元となる選択したキャッシュサーバ30のピアID532を取得する。そして、切替部60は、視聴要求をしたピア10に対して、視聴要求に対する応答として、配信元となる選択したキャッシュサーバ30のピアID532、及びデータ種類「FULLデータ」を送信する。
また、切替部60は、配信管理テーブル53の内、視聴要求を受けたコンテンツに視聴要求があったピア10の新たなレコードを作成し、ピアID532に視聴要求があったピア10のピアIDを、キャッシュ保持期限533にキャッシュを保持する時間を、リソース提供者534に抽出した配信元となる選択したキャッシュサーバ30のピアID及びデータ種類「FULL」を、配信数535に「0」を、配信上限数536に所定の値を書き込む。また、切替部60は、配信元となる選択したキャッシュサーバ30に対応するレコードの配信数535に「1」を増加する。
また、切替部60は、切替判定部59がキャッシュサーバ30からピア10へのコンテンツの単独配信を終了することを決定した場合、新たなピア10から当該コンテンツの視聴要求がされてもキャッシュサーバ30からの配信を行わないようにする。そして、切替部60は、配信管理テーブル53を参照し、キャッシュサーバ30の配信数535が「0」になった時点で、配信管理テーブル53からキャッシュサーバ30の情報を削除する。
削除指示部61は、配信管理テーブル53のキャッシュ保持期限533が切れており、かつ、配信数535が「0」のコンテンツをキャッシュしているピア10が存在するか否かを定期的に検査する。そして、削除指示部61は、当該削除対象のコンテンツをキャッシュしているピア10に対して、削除対象のコンテンツIDを設定した削除指示を送信する。
また、削除指示部61は、ピア10から、削除指示の応答として削除対象のコンテンツのデータの削除が完了したことを示す削除完了通知を受信する。削除指示部61は、削除完了通知を受信した場合に、配信管理テーブル53から、削除対象のコンテンツの項目を削除する。
以上より、本実施形態に係るAS50は、コンテンツの視聴に際して、コンテンツの奇数フレームデータ、偶数フレームデータ、XORデータの3種類のデータが3つのピアから配信されるように管理する(3重同時配信)。よって、本実施形態に係るAS50によれば、コンテンツのデータを配信中のピアが突然に電源OFFされることにより、当該ピアからの配信が途絶えても、3ピアの内2ピアからの配信が継続する限りコンテンツのデータを視聴要求を送信したピアに復元させることができる。
また、本実施形態に係るAS50は、コンテンツの配信数が所定の閾値を超えない場合に各ピア相互間でコンテンツの配信を行い、配信数が所定の閾値を超える場合にキャッシュサーバを併用してコンテンツの配信を行うように管理する。よって、本実施形態に係るAS50によれば、各ピア相互間でコンテンツの配信を行うことにより発生する上り帯域の圧迫を軽減することができる。
以上で、AS50の説明を終了し、本実施形態に係るコンテンツ配信システム100の構成の説明を終了する。
≪コンテンツ配信システムの動作≫
<概要>
図8ないし図18を参照して、本実施形態に係るコンテンツ配信システム100の動作について説明する。
最初に、コンテンツが公開される場合の処理について図8及び図9を参照して説明する。次に、視聴要求に対するコンテンツのデータの単独配信の処理について図10及び図11を参照して説明する。次に、視聴要求に対するコンテンツのデータの2重同時配信の処理について図12及び図13を参照して説明する。次に、視聴要求に対するコンテンツのデータの3重同時配信の処理について図14及び図15を説明する。次に、キャッシュの削除処理について図16及び図17を参照して説明する。次に、ピア10からキャッシュサーバ30への配信元の切替処理について図18を参照して説明する。
<コンテンツが公開される場合の処理>
図8及び図9を参照して、ピア10Aがコンテンツαを公開する場合の処理を説明する。
最初にピア10Aの登録要求部17は、AS50に対してコンテンツαの公開要求を送信する(ステップS101)。次に、ピア10Aからの公開要求を受信したAS50の登録部57は、配信管理テーブル53にコンテンツαに関する情報を登録する(ステップS102)。ステップS102の処理後の配信管理テーブル53の状態を図9(a)に示す。
次に、ピア10Aは、自己が保有するコンテンツαのコンテンツIDをキャッシュ管理テーブル14に登録する(ステップS103)。ステップS103の処理後のキャッシュ管理テーブル14の状態を図9(b)に示す。
以上で、コンテンツが公開される場合の処理の説明を終了する。
<視聴要求に対するコンテンツのデータの単独配信の処理>
図10及び図11を参照して、ピア10Aがコンテンツαを保有している状態で、ピア10Bがコンテンツαの視聴要求をした場合の単独配信の処理を説明する。
ステップS103に続いて、ピア10Bのユーザによりコンテンツαが視聴される場合、ピア10Bの視聴要求部18は、AS50に対して、コンテンツαの視聴要求を送信する(ステップS201)。
次に、ピア10Bからの視聴要求を受信したAS50の管理部58は、図9(a)に示す状態の配信管理テーブル53を参照し、コンテンツαの配信可能なピア10Aを抽出し、配信管理テーブル53のコンテンツαの項目にピア10Bに関する情報を登録すると共にピア10Aのレコードの配信数535に「1」を増加する(ステップS202)。ステップS202の処理後の配信管理テーブル53の状態を図11(a)に示す。
次に、AS50の管理部58は、ピア10Bに対して、視聴要求の応答として視聴要求応答を送信する(ステップS203)。次に、視聴要求応答を受信したピア10Bの視聴要求部18は、ピア10Aに対して、配信要求を送信する(ステップS204)。次に、配信要求を受信したピア10Aの配信部20は、ピア10Bに対して、配信要求の応答としてコンテンツαのFULLデータの配信を開始する(ステップS205)。
次に、ピア10Bの統合部21は、コンテンツαのFULLデータを再生しながら、キャッシュ部13にコンテンツαのFULLデータをキャッシュする。また、ピア10Bの統合部21は、キャッシュ管理テーブル14にコンテンツαに関する情報を登録する(ステップS206)。ステップS206の処理後のキャッシュ管理テーブル14の状態を図11(b)に示す。
以上で、視聴要求に対するコンテンツのデータの単独配信の処理の説明を終了する。
<視聴要求に対するコンテンツのデータの2重同時配信の処理>
図12及び図13を参照して、ピア10A,10Bがコンテンツαを保有又はキャッシュしている状態で、ピア10Cがコンテンツαの視聴要求をした場合の2重同時配信の処理を説明する。
ステップS206に続いて、ピア10Cのユーザによりコンテンツαが視聴される場合、ピア10Cの視聴要求部18は、AS50に対して、コンテンツαの視聴要求を送信する(ステップS301)。
次に、ピア10Cからの視聴要求を受信したAS50の管理部58は、図11(a)に示す状態の配信管理テーブル53を参照し、コンテンツαの配信可能なピア10A,10Bの2つを抽出し、配信管理テーブル53のコンテンツαの項目にピア10Cに関する情報を登録すると共にピア10A,10Bのレコードの配信数535に「1」を増加する(ステップS302)。ステップS302の処理後の配信管理テーブル53の状態を図13(a)に示す。
次に、AS50の管理部58は、ピア10Cに対して、視聴要求の応答として視聴要求応答を送信する(ステップS303)。次に、視聴要求応答を受信したピア10Cの視聴要求部18は、ピア10A,10Bに対して、配信要求を送信する(ステップS304)。次に、配信要求を受信したピア10A,10Bの配信部20は、ピア10Cに対して、配信要求の応答としてコンテンツαのFULLデータの配信を開始する(ステップS305)。
次に、ピア10Cの統合部21は、ピア10A,10Bのどちらか一方から配信されたコンテンツαのFULLデータを再生しながら、キャッシュ部13にコンテンツαのFULLデータをキャッシュする。また、ピア10Cの統合部21は、キャッシュ管理テーブル14にコンテンツαに関する情報を登録する(ステップS306)。ステップS306の処理後のキャッシュ管理テーブル14の状態を図13(b)に示す。
以上で、視聴要求に対するコンテンツのデータの2重同時配信の処理の説明を終了する。
<視聴要求に対するコンテンツのデータの3重同時配信の処理>
図14及び図15を参照して、ピア10A,10B,10Cがコンテンツαを保有又はキャッシュしている状態で、ピア10Dがコンテンツαの視聴要求をした場合の3重同時配信の処理を説明する。
ステップS306に続いて、ピア10Dのユーザによりコンテンツαが視聴される場合、ピア10Dの視聴要求部18は、AS50に対して、コンテンツαの視聴要求を送信する(ステップS401)。
次に、ピア10Dからの視聴要求を受信したAS50の管理部58は、図13(a)に示す状態の配信管理テーブル53を参照し、コンテンツαの配信可能なピア10A,10B,10Cの3つを抽出し、配信管理テーブル53のコンテンツαの項目にピア10Dに関する情報を登録すると共にピア10A,10B,10Cのレコードの配信数535に「1」を増加する(ステップS402)。ステップS402の処理後の配信管理テーブル53の状態を図15(a)に示す。なお、AS50の管理部58は、ピア10Aから奇数フレームデータを、ピア10Bから偶数フレームデータを、ピア10CからXORデータを配信するように決定したものとする。
次に、AS50の管理部58は、ピア10Dに対して、視聴要求の応答として視聴要求応答を送信する(ステップS403)。次に、視聴要求応答を受信したピア10Dの視聴要求部18は、ピア10A,10B,10Cに対して、配信要求を送信する(ステップS404)。
次に、配信要求を受信したピア10Aの配信部20は、ピア10Dに対して、配信要求の応答としてコンテンツαの奇数フレームデータの配信を開始する。また、配信要求を受信したピア10Bの配信部20は、ピア10Dに対して、配信要求の応答としてコンテンツαの偶数フレームデータの配信を開始する。また、配信要求を受信したピア10Cの配信部20は、ピア10Dに対して、配信要求の応答としてコンテンツαのXORデータの配信を開始する(ステップS405)。
次に、ピア10Dの統合部21は、ピア10Aから受信した奇数フレームデータ、ピア10Bから受信した偶数フレームデータ、ピア10Cから受信したXORデータの中から2種類を取捨選択して、取捨選択した2種類からコンテンツαのFULLデータを復元する(ステップS406)。
また、ピア10Dの統合部21は、復元したコンテンツαのFULLデータを再生しながら、キャッシュ部13にコンテンツαのFULLデータをキャッシュする。また、ピア10Dの統合部21は、キャッシュ管理テーブル14にコンテンツαに関する情報を登録する(ステップS407)。ステップS407の処理後のキャッシュ管理テーブル14の状態を図15(b)に示す。
以上で、視聴要求に対するコンテンツのデータの3重同時配信の処理の説明を終了する。
<キャッシュの削除処理>
図16及び図17を参照して、ピア10Bがキャッシュするコンテンツαのデータが削除対象の状態であるとして、キャッシュの削除処理を説明する。
AS50の削除指示部61は、定期的に配信管理テーブル53を参照し、キャッシュ保持期限533が切れており、かつ、配信数535が「0」のコンテンツをキャッシュしているピア10が存在するか否かを検査し、ピア10Bがキャッシュするコンテンツαのデータが削除対象であることを検知する(ステップS501)。
次に、AS50の削除指示部61は、ピア10Bに対してコンテンツαの削除指示を送信する(ステップS502)。次に、コンテンツαの削除指示を受信したピア10Bの削除部22は、コンテンツαのデータをキャッシュ部13から削除すると共に、キャッシュ管理テーブル14からコンテンツαの項目を削除する(ステップS503)。ステップS503の処理前のキャッシュ管理テーブル14の状態を図17(c)に、ステップS503の処理後のキャッシュ管理テーブル14の状態を図17(d)示す。
次に、ピア10Bの削除部22は、AS50に対して、コンテンツαのデータの削除が完了したことを示す削除完了通知を送信する(ステップS504)。次に、AS50の削除指示部61は、ピア10Bから削除指示の応答としてコンテンツαのデータの削除が完了したことを示す削除完了通知を受信する。そして、削除指示部61は、配信管理テーブル53から、コンテンツαの項目を削除する(ステップS505)。ステップS505の処理前の配信管理テーブル53の状態を図17(a)に、ステップS505の処理後の配信管理テーブル53の状態を図17(b)示す。
以上で、キャッシュの削除処理の説明を終了する。
<キャッシュサーバへの配信元の切替処理>
図18を参照して、多くのユーザがコンテンツαを視聴中のために、コンテンツαの配信数が所定の閾値を超え、ピア10Zが新たにコンテンツαの視聴要求をした場合に、コンテンツαの配信元をキャッシュサーバ30に切り替える切替処理を説明する。
ピア10Zのユーザによりコンテンツαが視聴される場合、ピア10Zの視聴要求部18は、AS50に対して、コンテンツαの視聴要求を送信する(ステップS601)。
次に、コンテンツαの視聴要求を受信したAS50の切替判定部59は、配信管理テーブル53の内、コンテンツαの配信数535をカウントし、コンテンツαの配信数が所定の閾値を超えたので、切替部60は、キャッシュサーバ30からピア10Zへ当該コンテンツの単独配信を行うことを決定する(ステップS602)。
次に、切替部60は、配信管理テーブル53を参照し、コンテンツαの配信可能なピア10A,10X,10Yの3つを抽出し、配信管理テーブル53のコンテンツαの項目にキャッシュサーバ30に関する情報を登録すると共にピア10A,10X,10Yのレコードの配信数535に「1」を増加する。なお、AS50の切替部60は、ピア10Aから奇数フレームデータを、ピア10Xから偶数フレームデータを、ピア10YからXORデータを配信するように決定したものとする。次に、AS50の切替部60は、配信管理テーブル53を参照し、配信管理テーブル53のコンテンツαの項目にピア10Zに関する情報を登録すると共にキャッシュサーバ30のレコードの配信数535に「1」を増加する(ステップS603)。
次に、AS50の切替部60は、キャッシュサーバ30に対して、収集要求を送信する(ステップS604)。次に、収集要求を受信したキャッシュサーバ30の取得部37は、ピア10A,10X,10Yに対して、取得要求を送信する(ステップS605)。
次に、取得要求を受信したピア10Aの配信部20は、キャッシュサーバ30に対して、取得要求の応答としてコンテンツαの奇数フレームデータの配信を開始する。また、取得要求を受信したピア10Xの配信部20は、キャッシュサーバ30に対して、取得要求の応答としてコンテンツαの偶数フレームデータの配信を開始する。また、取得要求を受信したピア10Yの配信部20は、キャッシュサーバ30に対して、取得要求の応答としてコンテンツαのXORデータの配信を開始する(ステップS606)。
次に、キャッシュサーバ30の統合部38は、ピア10Aから受信した奇数フレームデータ、ピア10Xから受信した偶数フレームデータ、ピア10Yから受信したXORデータの中から2種類を取捨選択して、取捨選択した2種類からコンテンツαのFULLデータを復元する。また、キャッシュサーバ30の統合部38は、復元したコンテンツαのFULLデータをキャッシュ部33にキャッシュする。また、キャッシュサーバ30の統合部38は、キャッシュ管理テーブル34にコンテンツαに関する情報を登録する(ステップS607)。
次に、AS50の切替部60は、配信管理テーブル53を参照し、ピア10Zに対して、視聴要求の応答として視聴要求応答を送信する(ステップS608)。次に、視聴要求応答を受信したピア10Zの視聴要求部18は、キャッシュサーバ30に対して、配信要求を送信する(ステップS609)。次に、配信要求を受信したキャッシュサーバ30の配信部39は、ピア10Zに対して、配信要求の応答としてコンテンツαのFULLデータの配信を開始する(ステップS610)。
次に、ピア10Zの統合部21は、コンテンツαのFULLデータを再生しながら、キャッシュ部13にコンテンツαのFULLデータをキャッシュする。また、ピア10Zの統合部21は、キャッシュ管理テーブル14にコンテンツαに関する情報を登録する(ステップS611)。なお、キャッシュサーバ30にあらかじめコンテンツαのデータがキャッシュされている場合、ステップS603〜ステップS607の処理は省略する。
以上で、キャッシュサーバ30への配信元の切替処理の説明を終了する。
以上のように、本実施形態に係るコンテンツ配信システム100は、コンテンツの視聴数が少ない間は各ピア相互間でコンテンツの配信を行う。よって、本発明に係るコンテンツ配信システム100によれば、事前にコンテンツを集約して配備する必要がなく、また、コンテンツの突発的な視聴数増加に対応可能である。
また、本実施形態に係るコンテンツ配信システム100は、コンテンツの視聴に際して、コンテンツの奇数フレームデータ、偶数フレームデータ、XORデータの3種類のデータが3つのピアから配信される(3重同時配信)。よって、本実施形態に係るコンテンツ配信システム100によれば、コンテンツのデータを配信中のピア10が突然に電源OFFされることにより、当該ピア10からの配信が途絶えても、3ピアの内2ピアからの配信が継続する限りコンテンツのデータを復元することができるので、ユーザは、コンテンツを滞ることなく視聴することができる。
また、本実施形態に係るコンテンツ配信システム100は、3重同時配信のデータとして、オリジナルコンテンツのデータサイズと比較して0.5倍のデータサイズである奇数フレームデータ71、偶数フレームデータ72、及びXORデータ80を用いる。よって、本実施形態に係るコンテンツ配信システム100によれば、1対1でコンテンツを配信する非多重化配信に対し、およそ1.5倍のトラヒック増で約2倍の信頼性を得ることができる。
また、本実施形態に係るコンテンツ配信システム100は、コンテンツの視聴数が少ない間は各ピア相互間でコンテンツの配信を行い、当該コンテンツの視聴数が増加してきたらキャッシュサーバを併用してコンテンツの配信を行う。よって、本実施形態に係るコンテンツ配信システム100によれば、各ピア相互間でコンテンツの配信を行うことにより発生する上り帯域の圧迫を軽減することができる。
[変形例]
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。本実施形態の変形例を以下に示す。
<変形例1>
(ピア10が備えるキャッシュ部13へのコンテンツのキャッシュ方法)
本実施形態では、ピア10は、コンテンツのFULLデータをキャッシュ部13にキャッシュしていたが、コンテンツの一部を保持する(コンテンツの奇数フレームデータ、偶数フレームデータ、XORデータのいずれかのキャッシュを持つ)ようにすることもできる。これにより、1つのピア10にコンテンツのFULLデータを持つ場合に比べて、コンテンツデータの2次配布等のコンテンツの不正利用を難しくすることができる。
その場合、コンテンツを視聴する3台までのピア10では、コンテンツの分割処理を行う必要があるが、その後は、ピア10での分割処理を行わなくてもよい。また、コンテンツを最初に何らかの方法を用いて分割しておけば、ピア10は、分割部19を備えない構成とすることもできる。
なお、AS50が格納する配信管理テーブル53の項目として、コンテンツの奇数フレームデータ、偶数フレームデータ、XORデータの何れか1種類のデータがキャッシュされているピア10を示す情報を備えるようにする必要がある。
また、キャッシュサーバ30のコンテンツデータの収集方法としては、3重同時配信を用いることになる。
<変形例2>
(キャッシュサーバ30によるコンテンツのデータの収集方法、及び配信方法)
本実施形態では、キャッシュサーバ30は、コンテンツのデータを、3重同時配信を用いて3つのピア10から収集し、単独配信を用いて視聴要求のあったピア10に配信していた。これ以外にも、キャッシュサーバ30は、コンテンツのデータを、単独配信を用いて1つのピア10から収集し、単独配信を用いて視聴要求のあったピア10に配信するようにしてもよい。その場合の処理を、図19を参照して説明する。
ステップS603に続いて、AS50は、ピア10Aに対して、コンテンツαのFULLデータのキャッシュサーバへの配信(アップロード)を要求する(ステップS704)。次に、ピア10Aは、キャッシュサーバに対してコンテンツαのFULLデータを配信する(ステップS705)。続いて、キャッシュサーバ30は、受信したコンテンツαのFULLデータをキャッシュ部33にキャッシュ(アップロード)する(ステップS706)。これで、キャッシュサーバ30は、視聴要求のあったピア10にコンテンツαを配信することができる。
また、図示を省略するが、キャッシュサーバ30は、コンテンツのデータを、3重同時配信を用いて視聴要求のあったピア10に配信することも可能である。例えば、キャッシュサーバ30を3台配設し、1台目のキャッシュサーバにコンテンツの奇数フレームデータをキャッシュし、2台目のキャッシュサーバに偶数フレームデータをキャッシュし、3台目のキャッシュサーバにXORデータをキャッシュし、この3台のキャッシュサーバから視聴要求を送信したピア10に対して、奇数フレームデータ、偶数フレームデータ、XORデータを配信するようにする。
また、キャッシュサーバ30を1台配設し、当該キャッシュサーバ30には、奇数フレームデータ、偶数フレームデータ、XORデータの何れか1種類のデータをキャッシュし、同一のコンテンツの奇数フレームデータ、及び偶数フレームデータをキャッシュするピア10と協働して3重同時配信を行うことも可能である。
<変形例3>
(AS50が備える切替判定部59の判定方法)
本実施形態では、切替判定部59は、コンテンツのデータの配信元をキャッシュサーバ30に切り替えるタイミングとして、コンテンツの配信数が所定の閾値を超えているか否かを判定していた。これに対して、切替判定部59は、図示しないネットワーク機能(ネットワーク管理装置等)から、上り帯域が圧迫している旨の通知を受けるまでは、コンテンツのデータの配信元をキャッシュサーバ30に切り替える処理を行わないようにしてもよい。そして、切替判定部59は、上り帯域が圧迫している旨の通知を受けた場合には、切替部60は、例えば、以下の処理を行う。
切替部60は、まず、視聴要求があったコンテンツの人気が高いか低いかについて配信管理テーブル53の配信数を参照して判定する。配信数が多ければ(所定の閾値を超えた場合)人気が高いコンテンツだと判定し、配信数が少なければ(所定の閾値を超えない場合)人気が低いコンテンツだと判定する。次に、切替部60は、人気が高いと判定したコンテンツについては、キャッシュサーバ30からの配信に切り替える。配信数が多い(人気が高い)コンテンツは、それだけ、帯域を利用しているからである。一方、切替部60は、人気が低いと判定したコンテンツについては、以下の何れかの処理を行う。
まず一つ目は、人気が低いと判定したコンテンツであっても、一様にキャッシュサーバ30からの配信に切り替える処理を行う。二つ目は、上り帯域が圧迫している旨の通知を通信に支障をきたす段階で受信するのではなく、少し帯域に余裕がある段階で受信するようにし、人気が低いと判定したコンテンツについては、ピア10相互間の配信を継続する処理を行う。三つ目は、人気が低いと判定したコンテンツについては、帯域の圧迫が回復するまで接続しない処理を行う。
<変形例4>
(コンテンツ配信システム100を利用した課金処理)
ネットワーク90のネットワーク事業者は、ユーザである視聴者に対し、コンテンツの視聴時間に応じた課金(時間課金)を行う場合がある。ここで、ネットワーク事業者は、ネットワーク90で視聴されるコンテンツの提供者、及びネットワーク90で用いるリソースの提供者に代わって料金回収の代行を行う。すなわち、ネットワーク事業者は、視聴者から時間課金で料金を徴収し、そのうちコンテンツの提供者に対してコンテンツの視聴時間に応じた報酬を、また、リソースの提供者に対してリソースの提供時間に応じたキャッシュバックを渡す。なお、ネットワーク事業者は、ネットワークの利用料を得る。
このことを具体的に説明すると、例えば、視聴者Cがコンテンツを10分間視聴し、100円をネットワーク事業者に支払ったとする。ネットワーク事業者は、視聴者Cから得た100円のうち70円を視聴時間に応じたコンテンツの報酬としてコンテンツの提供者Aに渡す。また、ネットワーク事業者は、視聴者Cから得た100円のうち10円をリソースの提供時間に応じたキャッシュバックをリソース提供者Bに渡す。なお、ネットワーク事業者は、ネットワークの利用料として100円のうち20円を得る。
コンテンツ配信システム100を用いてこのような時間課金を実現するために、AS50が備える配信管理テーブル53に、コンテンツの視聴開始時間、コンテンツの視聴終了時間、リソースの提供開始時間、及びリソースの提供終了時間を追加する構成とする。そして、AS50の管理部58は、例えば、コンテンツの視聴が開始された時点で開始時間をコンテンツの視聴開始時間及びリソースの提供開始時間に書き込み、視聴が終了した時点で終了時間をコンテンツの視聴終了時間、及びリソースの提供終了時間に書き込むようにする。なお、キャッシュ保持期限が切れて該当するテーブル項目を削除しても、これらの情報を失わないよう、退避して保持を行う。
<変形例5>
(コンテンツの配信方法)
本実施形態では、AS50は、視聴要求があったピア10に対して、配信元を通知し、配信先である視聴要求をしたピア10から配信元に配信要求を送信していた。これ以外にも、AS50が、配信元に対して、配信要求を送信し、配信元からいきなり配信先にコンテンツを配信するようにしてもよい。
<変形例6>
(キャッシュの管理方法)
本実施形態では、AS50がピア10にキャッシュするコンテンツの期限管理を行っていた(一元管理)。具体的には、AS50に記憶されるキャッシュ管理テーブル53にキャッシュ保持期限533を備える構成とし、削除指示部61が、配信管理テーブル53のキャッシュ保持期限533が切れており、かつ、配信数535が「0」のコンテンツをキャッシュしているピア10が存在するか否かを定期的に検査し、削除対象のコンテンツをキャッシュしているピア10に対してコンテンツの削除指示を行っていた。
このように、AS50がピア10にキャッシュされるコンテンツの一元管理を行うことで、ピア10は、自身がキャッシュするコンテンツの期限管理を行う必要がなかった。そのため、ピア10は、キャッシュ管理テーブル14にキャッシュ保持期限の項目を備える必要がなく、キャッシュ管理テーブル14の構成を簡素にすることができた。
一方、AS50によるコンテンツの一元管理以外にも、AS50とピア10の両方で、当該ピア10にキャッシュするコンテンツの期限管理を行うようにすることができる。
例えば、ピア10に記憶されるキャッシュ管理テーブル14にキャッシュ保持期限を備える構成とし、ピア10の削除部22が、自身がキャッシュするコンテンツの期限管理を行うようにする。
このように、ピア10が自身にキャッシュするコンテンツの期限管理を行うことで、AS50は、削除対象のコンテンツをキャッシュしているピア10に対してコンテンツの削除指示を行う必要がなくなる。そのため、AS50は、これらに関する一連の手順を省くことが可能になる。
10 ピア
11 通信部
12 記憶部
13 キャッシュ部(第1のキャッシュ部)
14 キャッシュ管理テーブル
15 制御部
16 通信制御部
17 登録要求部
18 視聴要求部
19 分割部
20 配信部(第1の配信部)
21 統合部(第1の統合部)
22 削除部
30 キャッシュサーバ
31 通信部
32 記憶部
33 キャッシュ部(第2のキャッシュ部)
34 キャッシュ管理テーブル
35 制御部
36 通信制御部
37 取得部
38 統合部(第2の統合部)
39 配信部(第2の配信部)
40 削除部
50 アプリケーションサーバ(AS)
51 通信部
52 記憶部
53 配信管理テーブル
55 制御部
56 通信制御部
57 登録部
58 管理部
59 切替判定部
60 切替部
61 削除指示部

Claims (9)

  1. 複数のピア、キャッシュサーバ、及びアプリケーションサーバがネットワークに接続され、コンテンツのデータの配信に際して、前記ピアが前記アプリケーションサーバに配信を要求することで、前記ピア同士が前記コンテンツのデータの配信を直接行うコンテンツ配信システムであって、
    前記ピアは、
    前記コンテンツのデータが記憶される第1のキャッシュ部と、
    前記コンテンツの視聴要求を前記アプリケーションサーバに送信する視聴要求部と、
    前記アプリケーションサーバから前記コンテンツの配信指示を受信すると、前記第1のキャッシュ部に記憶される前記コンテンツのデータを、所定サイズのフレームに分割し時系列順に連続番号を付したフレーム群とし、前記フレーム群の内、奇数番号のフレームのデータである奇数フレームデータと、偶数番号のフレームのデータである偶数フレームデータと、前記奇数フレームデータと前記偶数フレームデータとの排他的論理和であるXORデータと、の3種類のデータに分割する分割部と、
    前記分割部で分割した前記3種類のデータの内、何れか1種類の前記コンテンツのデータを前記視聴要求を送信した前記ピアに配信する第1の配信部と、
    前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから受信し、前記受信した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記第1のキャッシュ部に復元したコンテンツのデータを記憶させる第1の統合部と、を備え、
    前記アプリケーションサーバは、
    前記コンテンツ毎に当該コンテンツのデータが記憶されている前記ピアを示す情報、及び当該コンテンツの配信数が記憶される配信管理テーブルと、
    前記ピアから前記コンテンツの視聴要求を受け付けると、前記配信管理テーブルの前記視聴要求に示されるコンテンツの配信数を参照し、当該配信数が所定の閾値を超えるか否かを判定する切替判定部と、
    前記切替判定部が、当該配信数が所定の閾値を超えていないと判定した場合に、前記配信管理テーブルを参照して、前記視聴要求に示されるコンテンツと同じコンテンツのデータを記憶する前記ピアを3つ選択し、前記選択したピアのそれぞれを当該コンテンツの奇数フレームデータを配信する第1のピアと、当該コンテンツの偶数フレームデータを配信する第2のピアと、当該コンテンツのXORデータを配信する第3のピアとして決定し、前記決定した当該第1のピア、当該第2のピア、当該第3のピアそれぞれに配信指示を行うと共に、前記配信管理テーブルの当該コンテンツの配信数を加算する管理部と、
    前記切替判定部が、当該配信数が所定の閾値を超えていると判定した場合に、当該コンテンツの当該視聴要求以後の視聴要求について、前記キャッシュサーバに配信指示をすることにより前記コンテンツのデータの配信元を前記キャッシュサーバに切り替える切替部と、を備え
    前記キャッシュサーバは、
    前記コンテンツのデータが記憶される第2のキャッシュ部と、
    前記アプリケーションサーバから前記配信指示を受信すると、前記配信数が所定の閾値を超えたコンテンツと同じコンテンツのデータを記憶する前記ピアから当該コンテンツのデータを取得し、前記第2のキャッシュ部に前記取得した当該コンテンツのデータを記憶させる第2の統合部と、
    前記第2のキャッシュ部に記憶された前記コンテンツのデータを、前記視聴要求を送信した前記ピアに配信する第2の配信部と、を備える、
    ことを特徴とするコンテンツ配信システム。
  2. 複数のピア、キャッシュサーバ、及びアプリケーションサーバがネットワークに接続され、コンテンツのデータの配信に際して、前記ピアが前記アプリケーションサーバに配信を要求することで、前記ピア同士が前記コンテンツのデータの配信を直接行うコンテンツ配信システムであって、
    前記ピアは、
    前記コンテンツのデータが所定サイズのフレームに分割されて時系列順に連続番号が付されたフレーム群とされ、前記フレーム群の内、奇数番号のフレームのデータである奇数フレームデータと、偶数番号のフレームのデータである偶数フレームデータと、前記奇数フレームデータと前記偶数フレームデータとの排他的論理和であるXORデータと、の3種類のデータの内、何れか1種類が記憶される第1のキャッシュ部と、
    前記コンテンツの視聴要求を前記アプリケーションサーバに送信する視聴要求部と、
    前記アプリケーションサーバから前記コンテンツの配信指示を受信すると、前記第1のキャッシュ部に記憶される、何れか1種類の前記コンテンツのデータを前記視聴要求を送信した前記ピアに配信する第1の配信部と、
    前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから受信し、前記受信した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記受信した3種類のデータの内、何れか1種類を前記第1のキャッシュ部に記憶させる第1の統合部と、を備え、
    前記アプリケーションサーバは、
    前記コンテンツの前記奇数フレームデータ、前記偶数フレームデータ、前記XORデータの何れか1種類のデータが記憶されている前記ピアを示す情報、及び当該コンテンツの配信数が記憶される配信管理テーブルと、
    前記ピアから前記コンテンツの視聴要求を受け付けると、前記配信管理テーブルの前記視聴要求に示されるコンテンツの配信数を参照し、当該配信数が所定の閾値を超えるか否かを判定する切替判定部と、
    前記切替判定部が、当該配信数が所定の閾値を超えていないと判定した場合に、前記配信管理テーブルを参照して、前記視聴要求に示されるコンテンツと同じコンテンツの前記奇数フレームデータを記憶する前記ピア、当該コンテンツの前記偶数フレームデータを記憶する前記ピア、当該コンテンツの前記XORデータを記憶する前記ピアをそれぞれ選択し、前記選択したピアのそれぞれを当該コンテンツの前記奇数フレームデータを配信する第1のピアと、当該コンテンツの前記偶数フレームデータを配信する第2のピアと、当該コンテンツの前記XORデータを配信する第3のピアとして決定し、前記決定した当該第1のピア、当該第2のピア、当該第3のピアそれぞれに配信指示を行うと共に、前記配信管理テーブルの当該コンテンツの配信数を加算する管理部と、
    前記切替判定部が、当該配信数が所定の閾値を超えていると判定した場合に、当該コンテンツの当該視聴要求以後の視聴要求について、前記キャッシュサーバに配信指示をすることにより前記コンテンツのデータの配信元を前記キャッシュサーバに切り替える切替部と、を備え、
    前記キャッシュサーバは、
    前記コンテンツのデータが記憶される第2のキャッシュ部と、
    前記アプリケーションサーバから前記配信指示を受信すると、前記配信数が所定の閾値を超えたコンテンツと同じコンテンツの前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから取得し、前記取得した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記第2のキャッシュ部に復元した当該コンテンツのデータを記憶させる第2の統合部と、
    前記第2のキャッシュ部に記憶された前記コンテンツのデータを、前記視聴要求を送信した前記ピアに配信する第2の配信部と、を備える、
    ことを特徴とするコンテンツ配信システム。
  3. 複数のピア、キャッシュサーバ、及びアプリケーションサーバがネットワークに接続され、コンテンツのデータの配信に際して、前記ピアが前記アプリケーションサーバに配信を要求することで、前記ピア同士が前記コンテンツのデータの配信を直接行うコンテンツ配信システムのコンテンツ配信方法であって、
    前記ピアは、
    前記コンテンツの視聴要求を前記アプリケーションサーバに送信し、
    前記アプリケーションサーバは、
    前記コンテンツ毎に当該コンテンツのデータが記憶されている前記ピアを示す情報、及び当該コンテンツの配信数が記憶される配信管理テーブルを備え、
    前記ピアから前記コンテンツの視聴要求を受け付けると、前記配信管理テーブルの前記視聴要求に示されるコンテンツの配信数を参照し、当該配信数が所定の閾値を超えるか否かを判定し、
    当該配信数が所定の閾値を超えていないと判定した場合に、前記配信管理テーブルを参照して、前記視聴要求に示されるコンテンツと同じコンテンツのデータを記憶する前記ピアを3つ選択し、前記選択したピアのそれぞれを当該コンテンツの奇数フレームデータを配信する第1のピアと、当該コンテンツの偶数フレームデータを配信する第2のピアと、当該コンテンツのXORデータを配信する第3のピアとして決定し、前記決定した当該第1のピア、当該第2のピア、当該第3のピアそれぞれに前記配信指示を行うと共に、前記配信管理テーブルの当該コンテンツの配信数を加算し、
    前記アプリケーションサーバにより決定された前記第1のピア、第2のピア、第3のピアのそれぞれは、
    前記コンテンツのデータが記憶される第1のキャッシュ部を備え、
    前記アプリケーションサーバから前記配信指示を受信すると、前記第1のキャッシュ部に記憶される前記コンテンツのデータを、所定サイズのフレームに分割し時系列順に連続番号を付したフレーム群とし、前記フレーム群の内、奇数番号のフレームのデータである奇数フレームデータと、偶数番号のフレームのデータである偶数フレームデータと、前記奇数フレームデータと前記偶数フレームデータとの排他的論理和であるXORデータと、の3種類のデータに分割し、
    分割した前記3種類のデータの内、何れか1種類の前記コンテンツのデータを前記視聴要求を送信した前記ピアに配信し、
    前記視聴要求を送信した前記ピアは、
    前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから受信し、前記受信した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記第1のキャッシュ部に復元したコンテンツのデータを記憶し、
    前記アプリケーションサーバは、
    当該配信数が所定の閾値を超えていると判定した場合に、当該コンテンツの当該視聴要求以後の視聴要求について、前記キャッシュサーバに配信指示をすることにより前記コンテンツのデータの配信元を前記キャッシュサーバに切り替え、
    前記キャッシュサーバは、
    前記コンテンツのデータが記憶される第2のキャッシュ部を備え、
    前記アプリケーションサーバから前記配信指示を受信すると、前記配信数が所定の閾値を超えたコンテンツと同じコンテンツのデータを記憶する前記ピアから当該コンテンツのデータを取得し、前記第2のキャッシュ部に前記取得した当該コンテンツのデータを記憶し、
    前記第2のキャッシュ部に記憶された前記コンテンツのデータを、前記視聴要求を送信した前記ピアに配信する、
    ことを特徴とするコンテンツ配信方法。
  4. 複数のピア、キャッシュサーバ、及びアプリケーションサーバがネットワークに接続され、コンテンツのデータの配信に際して、前記ピアが前記アプリケーションサーバに配信を要求することで、前記ピア同士が前記コンテンツのデータの配信を直接行うコンテンツ配信システムのコンテンツ配信方法であって、
    前記ピアは、
    前記コンテンツの視聴要求を前記アプリケーションサーバに送信し、
    前記アプリケーションサーバは、
    前記コンテンツのデータが所定サイズであるフレームに分割されて時系列順に連続番号が付されたフレーム群とされ、前記フレーム群の内、奇数番号のフレームのデータである奇数フレームデータと、偶数番号のフレームのデータである偶数フレームデータと、前記奇数フレームデータと前記偶数フレームデータとの排他的論理和であるXORデータとの3種類のデータの内、何れか1種類が記憶されている前記ピアを示す情報、及び当該コンテンツの配信数が記憶される配信管理テーブルを備え、
    前記ピアから前記コンテンツの視聴要求を受け付けると、前記配信管理テーブルの前記視聴要求に示されるコンテンツの配信数を参照し、当該配信数が所定の閾値を超えるか否かを判定し、
    当該配信数が所定の閾値を超えていないと判定した場合に、前記配信管理テーブルを参照して、前記視聴要求に示されるコンテンツと同じコンテンツの前記奇数フレームデータを記憶する前記ピア、当該コンテンツの前記偶数フレームデータを記憶する前記ピア、当該コンテンツの前記XORデータを記憶する前記ピアをそれぞれ選択し、前記選択したピアのそれぞれを当該コンテンツの前記奇数フレームデータを配信する第1のピアと、当該コンテンツの前記偶数フレームデータを配信する第2のピアと、当該コンテンツの前記XORデータを配信する第3のピアとして決定し、前記決定した当該第1のピア、当該第2のピア、当該第3のピアそれぞれに配信指示を行うと共に、前記配信管理テーブルの当該コンテンツの配信数を加算し、
    前記アプリケーションサーバにより決定された前記第1のピア、第2のピア、第3のピアのそれぞれは、
    前記奇数フレームデータ、前記偶数フレームデータ、前記XORデータの内、何れか1種類が記憶される第1のキャッシュ部を備え、
    前記第1のキャッシュ部に記憶される、何れか1種類の前記コンテンツのデータを前記アプリケーションサーバから配信指示を受信すると、前記視聴要求を送信した前記ピアに配信し、
    前記視聴要求を送信した前記ピアは、
    前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから受信し、前記受信した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記受信した3種類のデータの内、何れか1種類を前記第1のキャッシュ部に記憶し、
    前記アプリケーションサーバは、
    当該配信数が所定の閾値を超えていると判定した場合に、当該コンテンツの当該視聴要求以後の視聴要求について、前記キャッシュサーバに配信指示をすることにより前記コンテンツのデータの配信元を前記キャッシュサーバに切り替え、
    前記キャッシュサーバは、
    前記コンテンツのデータが記憶される第2のキャッシュ部を備え、
    前記アプリケーションサーバから前記配信指示を受信すると、前記配信数が所定の閾値を超えたコンテンツと同じコンテンツの前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから取得し、前記取得した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記第2のキャッシュ部に復元した当該コンテンツのデータを記憶し、
    前記第2のキャッシュ部に記憶された前記コンテンツのデータを、前記視聴要求を送信した前記ピアに配信する、
    ことを特徴とするコンテンツ配信方法。
  5. 複数のピアとアプリケーションサーバとがネットワークを介して接続され、コンテンツのデータの配信に際して、前記ピアが前記アプリケーションサーバに配信を要求することで、前記ピア同士が前記コンテンツのデータの配信を直接行うコンテンツ配信システムであって、
    前記ピアは、
    前記コンテンツのデータが記憶される第1のキャッシュ部と、
    前記コンテンツの視聴要求を前記アプリケーションサーバに送信する視聴要求部と、
    前記アプリケーションサーバから前記コンテンツの配信指示を受信すると、前記第1のキャッシュ部に記憶される前記コンテンツのデータを、所定サイズのフレームに分割し時系列順に連続番号を付したフレーム群とし、前記フレーム群の内、奇数番号のフレームのデータである奇数フレームデータと、偶数番号のフレームのデータである偶数フレームデータと、前記奇数フレームデータと前記偶数フレームデータとの排他的論理和であるXORデータと、の3種類のデータに分割する分割部と、
    前記分割部で分割した前記3種類のデータの内、何れか1種類の前記コンテンツのデータを前記視聴要求を送信した前記ピアに配信する第1の配信部と、
    前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから受信し、前記受信した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記第1のキャッシュ部に復元したコンテンツのデータを記憶させる第1の統合部と、を備え、
    前記アプリケーションサーバは、
    前記コンテンツ毎に当該コンテンツのデータが記憶されている前記ピアを示す情報、及び当該コンテンツの配信数が記憶される配信管理テーブルと、
    前記ピアから前記コンテンツの視聴要求を受け付けると、前記配信管理テーブルを参照して、前記視聴要求に示されるコンテンツと同じコンテンツのデータを記憶する前記ピアを3つ選択し、前記選択したピアのそれぞれを当該コンテンツの奇数フレームデータを配信する第1のピアと、当該コンテンツの偶数フレームデータを配信する第2のピアと、当該コンテンツのXORデータを配信する第3のピアとして決定し、前記決定した当該第1のピア、当該第2のピア、当該第3のピアそれぞれに配信指示を行う管理部と、を備える、
    ことを特徴とするコンテンツ配信システム。
  6. 複数のピア、キャッシュサーバ、及びアプリケーションサーバがネットワークに接続され、コンテンツのデータの配信に際して、前記ピアが前記アプリケーションサーバに配信を要求することで、前記ピア同士が前記コンテンツのデータの配信を直接行うコンテンツ配信システムであって、
    前記ピアは、
    前記コンテンツのデータが記憶される第1のキャッシュ部と、
    前記コンテンツの視聴要求を前記アプリケーションサーバに送信する視聴要求部と、
    前記アプリケーションサーバから配信指示を受信すると、前記第1のキャッシュ部に記憶される前記コンテンツのデータを前記視聴要求を送信した前記ピアに配信する第1の配信部と、
    前記コンテンツのデータを受信し、前記第1のキャッシュ部に受信した前記コンテンツのデータを記憶させる第1の統合部と、を備え、
    前記アプリケーションサーバは、
    前記コンテンツ毎に当該コンテンツのデータが記憶されている前記ピアを示す情報、及び当該コンテンツの配信数が記憶される配信管理テーブルと、
    前記ピアから前記コンテンツの視聴要求を受け付けると、前記配信管理テーブルの前記視聴要求に示されるコンテンツの配信数を参照し、当該配信数が所定の閾値を超えるか否かを判定する切替判定部と、
    前記切替判定部が、当該配信数が所定の閾値を超えていないと判定した場合に、前記配信管理テーブルを参照して、前記視聴要求に示されるコンテンツと同じコンテンツのデータを記憶する前記ピアを選択し、当該選択したピアに配信指示を行うと共に、前記配信管理テーブルの当該コンテンツの配信数を加算する管理部と、
    前記切替判定部が、当該配信数が所定の閾値を超えていると判定した場合に、当該コンテンツの当該視聴要求以後の視聴要求について、前記キャッシュサーバに配信指示をすることにより前記コンテンツのデータの配信元を前記キャッシュサーバに切り替える切替部と、を備え
    前記キャッシュサーバは、
    前記コンテンツのデータが記憶される第2のキャッシュ部と、
    前記アプリケーションサーバから前記配信指示を受信すると、前記配信数が所定の閾値を超えたコンテンツと同じコンテンツのデータを記憶する前記ピアから当該コンテンツのデータを取得し、前記第2のキャッシュ部に前記取得した当該コンテンツのデータを記憶させる第2の統合部と、
    前記第2のキャッシュ部に記憶された前記コンテンツのデータを、前記視聴要求を送信した前記ピアに配信する第2の配信部と、を備える、
    ことを特徴とするコンテンツ配信システム。
  7. キャッシュサーバとアプリケーションサーバとにネットワークを介して接続され、コンテンツのデータの配信に際して、前記アプリケーションサーバに配信を要求することで、自身以外のピアから前記コンテンツのデータの配信を受ける前記ピアであって、
    前記コンテンツのデータが記憶される第1のキャッシュ部と、
    前記コンテンツの視聴要求を前記アプリケーションサーバに送信する視聴要求部と、
    前記アプリケーションサーバから前記コンテンツの配信指示を受信すると、前記第1のキャッシュ部に記憶される前記コンテンツのデータを、所定サイズのフレームに分割し時系列順に連続番号を付したフレーム群とし、前記フレーム群の内、奇数番号のフレームのデータである奇数フレームデータと、偶数番号のフレームのデータである偶数フレームデータと、前記奇数フレームデータと前記偶数フレームデータとの排他的論理和であるXORデータと、の3種類のデータに分割する分割部と、
    前記分割部で分割した前記3種類のデータの内、何れか1種類の前記コンテンツのデータを前記視聴要求を送信した前記ピアに配信する第1の配信部と、
    前記奇数フレームデータと、前記偶数フレームデータと、前記XORデータとを別々の前記ピアから受信し、前記受信した3種類のデータの内、少なくとも2種類のデータを統合して前記コンテンツのデータを視聴可能に復元し、前記第1のキャッシュ部に復元したコンテンツのデータを記憶させる第1の統合部と、
    を備えることを特徴とするピア。
  8. 複数のピアとキャッシュサーバとにネットワークを介して接続され、コンテンツのデータの配信に際して、前記ピアからの配信の要求を受け付けるアプリケーションサーバであって、
    前記コンテンツ毎に当該コンテンツのデータが記憶されている前記ピアを示す情報、及び当該コンテンツの配信数が記憶される配信管理テーブルと、
    前記ピアから前記コンテンツの視聴要求を受け付けると、前記配信管理テーブルの前記視聴要求に示されるコンテンツの配信数を参照し、当該配信数が所定の閾値を超えるか否かを判定する切替判定部と、
    前記切替判定部が、当該配信数が所定の閾値を超えていないと判定した場合に、前記配信管理テーブルを参照して、前記視聴要求に示されるコンテンツと同じコンテンツのデータを記憶する前記ピアを3つ選択し、前記選択したピアのそれぞれを当該コンテンツの奇数フレームデータを配信する第1のピアと、当該コンテンツの偶数フレームデータを配信する第2のピアと、当該コンテンツのXORデータを配信する第3のピアとして決定し、前記決定した当該第1のピア、当該第2のピア、当該第3のピアそれぞれに配信指示を行う共に、前記配信管理テーブルの当該コンテンツの配信数を加算する管理部と、
    前記切替判定部が、当該配信数が所定の閾値を超えていると判定した場合に、当該コンテンツの当該視聴要求以後の視聴要求について、前記キャッシュサーバに配信指示をすることにより前記コンテンツのデータの配信元を前記キャッシュサーバに切り替える切替部と、
    を備えることを特徴とするアプリケーションサーバ。
  9. 複数のピアとアプリケーションサーバとにネットワークを介して接続され、コンテンツのデータの配信に際して、前記ピアが前記アプリケーションサーバに配信を要求することで、前記ピア同士が前記コンテンツのデータの配信を直接行うコンテンツ配信システムに用いられるキャッシュサーバであって、
    前記コンテンツのデータが記憶される第2のキャッシュ部と、
    前記アプリケーションサーバからの前記ピア同士の配信から前記キャッシュサーバによる配信への切り替えを示す配信指示を受け、前記ピアが配信を要求したコンテンツと同じコンテンツのデータを記憶する前記ピアから当該コンテンツのデータを取得し、前記第2のキャッシュ部に前記取得した当該コンテンツのデータを記憶させる第2の統合部と、
    前記アプリケーションサーバからの前記配信指示を受信すると、前記第2のキャッシュ部に記憶された前記コンテンツのデータを、当該コンテンツのデータの配信を要求した前記ピアに配信する第2の配信部と、
    を備えることを特徴とするキャッシュサーバ。
JP2011033734A 2011-02-18 2011-02-18 コンテンツ配信システム、コンテンツ配信方法、ならびにコンテンツ配信システムに用いられるピア、アプリケーションサーバ及びキャッシュサーバ Withdrawn JP2012175274A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011033734A JP2012175274A (ja) 2011-02-18 2011-02-18 コンテンツ配信システム、コンテンツ配信方法、ならびにコンテンツ配信システムに用いられるピア、アプリケーションサーバ及びキャッシュサーバ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011033734A JP2012175274A (ja) 2011-02-18 2011-02-18 コンテンツ配信システム、コンテンツ配信方法、ならびにコンテンツ配信システムに用いられるピア、アプリケーションサーバ及びキャッシュサーバ

Publications (1)

Publication Number Publication Date
JP2012175274A true JP2012175274A (ja) 2012-09-10

Family

ID=46977769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011033734A Withdrawn JP2012175274A (ja) 2011-02-18 2011-02-18 コンテンツ配信システム、コンテンツ配信方法、ならびにコンテンツ配信システムに用いられるピア、アプリケーションサーバ及びキャッシュサーバ

Country Status (1)

Country Link
JP (1) JP2012175274A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104427353A (zh) * 2013-09-05 2015-03-18 北京大学 视频传输方法及设备
JP2022125359A (ja) * 2018-11-02 2022-08-26 株式会社東芝 送信装置、サーバ装置、送信方法およびプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104427353A (zh) * 2013-09-05 2015-03-18 北京大学 视频传输方法及设备
JP2022125359A (ja) * 2018-11-02 2022-08-26 株式会社東芝 送信装置、サーバ装置、送信方法およびプログラム
JP7302076B2 (ja) 2018-11-02 2023-07-03 株式会社東芝 送信装置、サーバ装置、送信方法およびプログラム

Similar Documents

Publication Publication Date Title
US9621620B2 (en) Apparatus and method for providing content with a distributed architecture, and system for providing content with the said apparatus
US11102290B2 (en) Peer-to-peer network prioritizing propagation of objects through the network
CN101472166B (zh) 一种内容缓存、查询方法及点对点媒体传输系统
JP5970541B2 (ja) 情報処理システム、管理サーバ群、および、サーバ管理プログラム
JP5934828B2 (ja) P2p基盤のストリーミングサービスのデータストリームをパケット化するシステムおよび方法
CN102752381A (zh) 一种应用于分布式存储的多活动副本机制及其存取方法
CN107888666A (zh) 一种跨地域数据存储系统以及数据同步方法和装置
Liu et al. Fs2you: Peer-assisted semipersistent online hosting at a large scale
CN110493657A (zh) OnStream智能在线流媒体平台系统
KR20100094312A (ko) 파일관리 시스템 및 파일관리시스템의 컨텐츠 제공 방법
KR100823730B1 (ko) 피투피 기반의 스트리밍 서비스 제공 방법 및 장치, 이를이용한 스트리밍 서비스 시스템
CN102769666A (zh) 一种云存储方法及云存储系统
CN102118315B (zh) 数据流化方法、数据记录方法、数据读取方法及其系统
CN102006328A (zh) 一种p2p流媒体分布式网络系统及其数据传输方法
Li et al. Challenges, designs, and performances of large-scale open-P2SP content distribution
JP2009122981A (ja) キャッシュ配置方法
JP2021093016A (ja) ブロックチェーン技術と分散ストレージ技術とにより実現した分散型ストレージプラットフォームおよびアプリケーションプログラム
JP2012175274A (ja) コンテンツ配信システム、コンテンツ配信方法、ならびにコンテンツ配信システムに用いられるピア、アプリケーションサーバ及びキャッシュサーバ
CN103188278A (zh) 内容数据分发的方法和系统
US20160142476A1 (en) Method and apparatus for transferring content among large clusters of storage devices to achieve a target replication distribution
JP2021093104A (ja) ブロックチェーン技術と分散ストレージ技術とにより実現した分散型ストレージプラットフォームおよびアプリケーションプログラム
KR20130134911A (ko) 적응형 컨텐츠 제공을 위한 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치
JP4060807B2 (ja) コンテンツ流通管理システム、サービス管理装置、コンテンツ流通管理方法、およびプログラム
JP2011191907A (ja) データ配信システム,負荷分散方法及び蓄積サーバ
KR101479617B1 (ko) 유틸리티 컴퓨팅 서비스가 가능한 가상 스토리지 제공 방법및 그 시스템

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130201

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140513