【文献】
藤本 貴也 他,P2P VoD Streamingにおける動画の人気度考慮によるピア帯域有効活用,電子情報通信学会技術研究報告,2011年 1月13日,第110巻,第372号,p.63〜68
【文献】
後藤 佑介 他,IPネットワークにおける分割放送型システムの途切れ時間に関する評価,電子情報通信学会技術研究報告,2008年 9月19日,第108巻,第223号,p.7〜12
【文献】
井上 誠一郎 他,P2P技術の基礎知識[2],UNIX MAGAZINE,2005年10月 1日,第20巻,第10号,p.91〜117
(58)【調査した分野】(Int.Cl.,DB名)
前記定数(c)は、前記流入率が高いほど相対的に大きい値に決定され、前記流入率が低いほど相対的に小さい値に決定されることを特徴とする請求項1または2に記載のパケット化システム。
前記定数(c)は、前記流入率が高いほど相対的に大きい値に決定され、前記流入率が低いほど相対的に小さい値に決定されることを特徴とする請求項4または5に記載のパケット化方法。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態を添付する図面を参照しながら詳細に説明する。
【0021】
図1は、本発明の一実施形態に係るP2P基盤のストリーミングサービスを提供するシステムの論理的な構成を示す図である。
図1は、メディアソース110、パケット化サーバ120、デリバリーサーバグループ130、クライアント140、および複数のピア150を示している。
【0022】
ここで、メディアソース110はデータストリームを提供するエンコーダを意味する。パケット化サーバ120は、このようなメディアソース110からデータストリームを受信してピースにインデックスしてもよい。データストリームをP2Pサービスを介して提供するためにピースにインデックスする方法は、既に公知された様々な方法の1つの方法を用いてもよい。パケット化サーバ120はメディアソース110ごとに1つずつ存在してもよい。例えば、プロ野球を中継するときに4つの試合が行われる場合、4つの試合に対して4つのメディアソース110が存在すれば、パケット化サーバ120も4つ用いてもよい。このようなパケット化サーバ120については
図3を参照してより詳しく説明する。
【0023】
デリバリーサーバグループ130は、少なくとも1つのデリバリーサーバ131から構成されてもよい。このとき、デリバリーサーバグループ130で動作するデリバリーサーバ131の数は同時接続者数に応じて調整してもよい。デリバリーサーバ131は、パケット化サーバ120からインデックスされたピースを受信し、これをバッファリングしてもよい。このとき、クライアント140のリクエストに応じてピースをクライアント140に送信してもよい。
【0024】
ここで、クライアント140はPCのようなユーザ端末を意味し、
図1に示すようにピア141とプレーヤ142を含んでもよい。ピア141は、デリバリーサーバ131と複数のピア150のうち、少なくとも1つからピースを受信してプレーヤ142にデータストリームを送信してもよい。一例として、ピア141は、クライアント140にインストールされて動作するプログラムであってもよい。複数のピア150も複数のクライアントにインストールされて動作してもよい。
【0025】
すなわち、パケット化サーバ120からピースに変換されたデータストリームは、デリバリーサーバグループ130を介して全体クライアントのうち少なくとも一部に送信されてもよく、1つのクライアント140の立場からは、デリバリーサーバ131と他のクライアントからピースを受信してデータストリームをプレーヤ142に送信することによって、ユーザはP2P基盤のストリーミングサービスが提供されるようになる。
【0026】
このとき、本発明の一実施形態に係るサーバ使用量調整システムは、
図1を参照して説明したシステムそのものを意味し、必要に応じて
図1を参照して説明したシステムに含まれたり関連してもよい。サーバ使用量調整システムは、同時接続者数を考慮して適応的にサーバ使用量を調整することによって、同時接続者数に関係なく常に低いサーバトラフィックを維持することができる。このとき、サーバ使用量は、同時接続者の流入率を用いて決定される定数の現在の同時接続者数の比率に基づいて調整されてもよい。一例として、サーバ使用量を下記の数式(1)のように算出されてもよい。
【0028】
ここで、「c」は同時接続者の流入率を用いて決定される定数、「n」は現在の同時接続者数をそれぞれ意味する。このとき、「c」は経験的テストを介して管理者やシステムによって決定される定数として、基本的には同時接続者の流入率が高いほど相対的に大きい値に決定されてもよく、流入率が低いほど相対的に小さい値に決定されてもよい。このような数式(1)は「c」名のトラフィックとして、「n」名のユーザをカバーすることを意味する。例えば、「c」が6であれば、6人に提供するためのトラフィックであり、「n」名(現在の同時接続者)の全てをカバーすることを意味する。
【0029】
すなわち、同時接続者の流入率が高まって現在の同時接続者数が増加しても、定数である「c」は固定される一方、「n」が増加するためサーバ使用量は次第に減少することになる。したがって、同時接続者数に関係なく、常に低いサーバ使用量を維持することができる。
【0030】
このために、サーバ使用量調整システムは、現在の同時接続者数を提供する現在の同時接続者数提供部(図示せず)および同時接続者の流入率を用いて決定される定数の現在の同時接続者数の比率に基づいて、サーバ使用量を調整するサーバ使用量調整部(図示せず)を備えてもよい。
【0031】
図2は、本発明の一実施形態に係るP2P基盤のストリーミングサービスを提供するシステムの物理的な構成を示す図である。
図2は、P2P基盤のストリーミングサービスのための装備を提供する外部IDC210、データストリームを提供するエンコーダ業者220、および外部IDC210がクライアント240にデータストリームを提供する過程を管理するための内部IDC230を示している。
【0032】
外部IDC210は、パケット化サーバ211、メインネットチェッカー213、サブネットチェッカー214、デリバリーサーバ212、およびインデックスサーバ215、並びに複数のスイッチ216を備えてもよい。ここで、パケット化サーバ211、デリバリーサーバ212、メインネットチェッカー213、サブネットチェッカー214、およびインデックスサーバ215は、それぞれ1つのサーバではない複数のサーバから構成されてもよく、複数のスイッチ216は、それぞれ複数のサーバのうち該当するサーバにデータを送信したり、該当するサーバからデータを受信するために用いられてもよい。複数のスイッチ216はそれぞれ一例としてL4スイッチを用いてもよい。
【0033】
パケット化サーバ211は、エンコーダ業者220のメディアエンコーダ221からデータストリームを受信し、受信されたデータストリームをシステムで用いるためのデータに加工する。すなわち、パケット化サーバ211はデータストリームを複数のピースに変換してもよい。既に説明したように、メディアエンコーダ221ごとに1つずつのパケット化サーバ211で実行されてもよい。
【0034】
デリバリーサーバ212は、パケット化サーバ211から受信したピースをクライアント240のリクエストに応じてクライアント240に送信する。また、インデックスサーバ215は、クライアント240のインデックスを維持して検索サービスを提供する。ここで、メインネットチェッカー213とサブネットチェッカー214はピア間の接続を中継する中継サーバを意味する。
【0035】
次の表1は、同時接続者数が15万人であり、コンテンツビットレートが500kbps、共有率が80%である場合に必要なサーバの数を示している。
【0037】
内部IDC230が含んでいるLMS231は、ピア管理システムを意味する。このようなLMS231は、パケット化サーバ211、デリバリーサーバ212、およびインデックスサーバ215を管理するサーバとして、サーバのアップロードやダウンロード状態またはトラフィック、クエリ数、リソース(CPU、メモリ)、共有率などをモニタリングしてもよい。また、LMS231は、同時接続者数、ユニーク訪問者数、共有率、ユーザの速度分布、平均視聴時間、および視聴チャネル数などの統計データを生成してDB232に格納してもよい。すなわち、DB232は統計データを格納するサーバを意味する。
【0038】
このとき、上述したように本発明の一実施形態に係るシステムは、同時接続者数を考慮して適応的にサーバ使用量を調整することによって、同時接続者数に関係なく、常に低いサーバトラフィックを維持することができる。このとき、サーバ使用量は、同時接続者の流入率を用いて決定される定数である現在の同時接続者数の比率に基づいて調整してもよい。一例として、サーバ使用量を前述した数式(1)のように算出してもよく、このようなサーバ使用量は、
図2を参照して説明したデリバリーサーバ212のトラフィックを意味する。また、
図1を参照して説明したサーバ使用量調整システムは、
図2を参照して説明したシステムそのものを意味し、前述したLMS231に含まれてもよい。
【0039】
図3は、本発明の一実施形態に係るパケット化サーバの二重化を説明するための図である。
図3は、4個のエンコーダ310〜340によってデータストリームが提供される場合、主パケット化サーバ群350で4個のパケット化サーバが動作する可能性があることを示している。すなわち、「PS−1」、「PS−2」、「PS−3」および「PS−4」は前述した4個のパケット化サーバを意味する。
【0040】
このとき、4個のパケット化サーバは、4個のエンコーダ310〜340から受信されるデータストリームをP2Pで用いられる形態のデータに変換し、全てのデリバリーサーバに変換されたデータを送信してもよい。このとき、4個のパケット化サーバと全てのデリバリーサーバは、スイッチ370を用いてデータを送受信してもよい。
【0041】
このようなパケット化サーバは、CPUやトラフィックなどのリソースの使用量が多くない。例えば、20台のデリバリーサーバ(同時接続者数15万人基準)が接続した場合、1Mbpsの大きさのコンテンツに対して20Mbpsのトラフィックのみを用いる。
【0042】
また、パケット化サーバごとに4個のエンコーダ310〜340から互いに異なるデータストリームが送信されるため、
図3に示すように、ピースは主パケット化サーバ群350と副パケット化サーバ群360のうち、1つのサーバ群でのみ生成されなければならない。したがって、主パケット化サーバ群350と副パケット化サーバ群360はアクティブ/スタンバイの形態で動作してもよい。副パケット化サーバ群360は、主パケット化サーバ群350の障害に対応するために用いられてもよい。
【0043】
図4は、本発明の一実施形態に係るデリバリーサーバの二重化を説明するための図である。パケット化サーバ群410で変換されたデータであるピースはデリバリーサーバ群420に送信される。このとき、「DS−n」は「n」番目のデリバリーサーバを意味し、デリバリーサーバ群420内に「n」個のデリバリーサーバが存在することを意味する。
【0044】
各デリバリーサーバは、パケット化サーバからピースが送信されて一定の数だけバッファリングを行って、クライアントのピアのリクエストに応じて該当ピースをピアに送信する。このとき、デリバリーサーバ群420のデリバリーサーバもスイッチ430にバインディングされてもよく、同時接続者数の増加に応じてデリバリーサーバを増加させることでトラフィックを調整することができる。
【0045】
図5は、本発明の一実施形態に係るインデックスサーバの二重化を説明するための図である。インデックスサーバ群510は、複数のインデックスサーバを含んでもよく、「IS−n」は「n」番目のインデックスサーバを意味し、インデックスサーバ群510内に「n」個のインデックスサーバが存在することを意味する。
【0046】
このとき、複数のインデックスサーバのそれぞれはクライアントのピアを管理する。より詳しくは、クライアントにインストールされたピアを管理し、ピアのリクエストに応じる検索結果を送信する。また、インデックスサーバはメッセージ送信を行なってもよく、ピアと持続的な接続を維持することができる。このようなインデックスサーバそれぞれはスイッチ520とバインディングしてもよく、同時接続者数に応じてインデックスサーバを増加させてもよい。
【0047】
図6は、本発明の一実施形態に係るピア管理システムを示す図である。
図6に示されたLMS610はピア管理システムを、IS620はインデックスサーバを、PS630はパケット化サーバを、DS640はデリバリーサーバをそれぞれ意味する。このとき、ピア管理システムは、インデックスサーバ、パケット化サーバ、およびデリバリーサーバに対する管理、配布、更新、およびモニタリングを行う機能を有し、ピアに対する統計収集および分析を行う機能を有してもよい。例えば、ピア管理システムは、CPUやメモリの使用量またはトラフィックのように前述したサーバの状態をモニタリングし、障害状況に対するイベント通知機能(SMS、e−mail)を提供してもよい。
【0048】
図7は、本発明の一実施形態に係るピアで利用可能なバッファを説明するための図である。ピアは上述したように、クライアントにインストールされて動作されるソフトウェアとして、いずれのピースをどこから受信するかを決定する。次の表2は、ピアにおけるピースの選択方法と受信可能なソースを示している。
【0050】
表2において「Rarest First」は、ネットワーク上で最も希有な(rare)ピースを先に受信するピース選択方法を意味し、「Progressive」は前から順次にピースを受信するピース選択方法を意味する。このとき、ピースはデリバリーサーバを介して受信したり他のピアから受信してもよい。
【0051】
このとき、ピアは再生を円滑にして共有効率を上げるために、受信されたピースを格納するバッファを用いてもよい。
図7は、第1バッファ710〜第3バッファ730を示している。
【0052】
まず、第1バッファ710は、「Progressive」を介して受信されたピースを格納するための第1範囲711と、「Rarest First」を介して受信されたピースを格納するための第2範囲712とに分類してもよい。同時に、第1バッファ710は、デリバリーサーバを介して受信されたピースを格納するための第3範囲713と他のピアを介して受信されたピースを格納するための第4範囲714とに分類してもよい。
【0053】
第2バッファ720は、実際に分離されたバッファの領域を示している。すなわち、第2バッファ720はデリバリーサーバを介して「Progressive」に受信されたピースを格納するための第1領域721、他のピアを介して「Progressive」に受信されたピースを格納するための第2領域722、および他のピアを介して「Rarest First」に受信されたピースを格納するための第3領域723に区分してもよい。
【0054】
第3バッファ730は、分離された領域の大きさが互いに異なることを示している。すなわち、第3バッファ730は、領域A731、領域B732、および領域C733がそれぞれ互いに異なる大きさの比率で構成された一例を示す。一例として、領域A731、領域B732、領域C733の大きさの比率は1:4:16の比率を有してもよい。このような比率は必要に応じて調整されてもよい。また、必要に応じて領域B732と領域C733にも一定部分のピースがデリバリーサーバから受信されて格納してもよい。
【0055】
後述する本発明の一実施形態に係るパケット化システムは、前述したパケット化サーバに対応してもよく、またはパケット化サーバに含まれたシステムであってもよい。上述したように、一定の大きさでピースを生成する場合にはエンコーダから送信されるデータストリームが一定ではないため、各ピースの生成時間が一定ではなくなり、ピアとの同期化が行われないため共有率の低下を招く恐れがある。
【0056】
図8は、一定の大きさでピースを生成する場合のグラフと、一定の時間間隔に応じてピースを生成する場合のグラフを示している。
図8に示した第1グラフ810及び第2グラフ820において、x軸はパケット化時間の流れ、y軸は生成されるピースの大きさをそれぞれ示す。
【0057】
第1グラフ810は、従来技術において、時間の経過とともに同一の大きさにピースを生成するが、ピースの生成時間が一定ではないことを示している。
【0058】
一方、第2グラフ820は、本発明の一実施形態に係るパケット化システムまたはパケット化方法において、一定の時間間隔ごとにピースを生成することによってピースの生成時間が一定であることを示している。この場合は、ピースの大きさはピースごとに差異がある。
【0059】
このように、一定の時間間隔ごとにピースを生成すると、一定ではないエンコーダのトラフィックに対応することができ、ビット率に関わらず、ストリーミングサービスを提供するシステムを運用することができる。また、VBR(Variable Bit Rate)を支援することができるようになる。
【0060】
しかし、このように一定の時間間隔ごとにパケット化を行う場合、エンコーダからデータストリームが全く受信されない時間間隔が生じることがある。この場合、ピースを生成することができないため、ピアとの同期化が行われずに共有率は低下してしまう。
【0061】
したがって、本発明の一実施形態に係るパケット化システムまたはパケット化方法によれば、データストリームが受信されない時間間隔においては空ピース(empty−piece)を生成してピアとの同期化を維持することにより、共有率の低下を防止することができる。
【0062】
図9は、特定の時間間隔においてデータストリームが存在しない場合のグラフと、空ピースを生成する場合のグラフを示している。第1グラフ910と第2グラフ920において、x軸はパケット化時間の流れ、y軸は生成されるピースの大きさをそれぞれ示す。
【0063】
ここで、第1グラフ910は、特定の時間間隔においてエンコーダからデータストリームが全く受信されることなく、当該時間間隔においてピースが生成されない場合を示す。このとき、当該時間間隔ではピースが生成されていないため、ピアとの同期化が難しく、これによって共有率の低下が生じる。
【0064】
一方、第2グラフ920は、当該時間間隔の間に空ピース930を生成する場合を示す。空ピース930を生成することによってピアとの同期化を維持し、共有率の低下を防止することができる。
【0065】
図10は、本発明の一実施形態に係るパケット化システムを説明するためのブロック図である。本実施形態に係るパケット化システム1000は、
図10に示すようにピース生成部1010を備える。
【0066】
パケット化システム1000は、エンコーダ1020から受信されたデータストリームをピースにインデックスし、これによりピース生成部1010は、予め設定された時間間隔ごとに受信されたデータストリームに対してピースを生成する。上述したように、データストリームのピースを一定の大きさに生成するのではなく、予め設定された時間間隔ごとに生成することによって、ピア(クライアント)との同期化を行なってもよい。
【0067】
また、ピース生成部1010は、データストリームが受信されない時間間隔においては空ピースを生成する。すなわち、ピース生成部1010でデータストリームが受信されない時間間隔においても空ピースを生成することによって、ピースを生成することができない場合にはピアとの同期化が行われないことから共有率が低下してしまうという問題を解決することができる。また、一定ではないエンコーダのトラフィックに対応することができるとともに、VBRを支援することができる。
【0068】
このとき、生成されたピースは、クライアントのリクエストに応じてデリバリーサーバ1030を介してクライアントに送信されてもよい。また、同時接続者の流入率を用いて決定される定数の現在の同時接続者数の比率に応じてサーバ使用量を調整してもよく、この場合、定数は流入率が高いほど相対的に大きい値に決定され、流入率が低いほど相対的に小さい値に決定されてもよい。このようなサーバ使用量の調整については既に詳しく説明したため、繰り返しの説明は省略する。
【0069】
本発明の実施形態に係るパケット化システムは、前述したパケット化サーバに対応してもよく、またはパケット化サーバに含まれて動作してもよい。
図10を参照して説明したパケット化システム1000は、パケット化サーバに含まれて動作する場合を説明したものであって、パケット化システム1000がパケット化サーバに対応するシステムである場合、パケット化システム1000はエンコーダ1020からデータストリームを受信する受信部(図示せず)とデリバリーサーバ1030で生成されたピースを送信する送信部(図示せず)をさらに備えてもよい。
【0070】
図11は、本発明の一実施形態に係るパケット化方法を説明するためのフローチャートである。本実施形態に係るパケット化方法は、
図10を参照して説明したパケット化システム1000によって行われてもよい。
図11ではパケット化システム1000によって行われるパケット化方法について説明する。
【0071】
ステップS1110において、パケット化システム1000はエンコーダからデータストリームを受信する。既に説明したように、エンコーダから受信されるデータストリームは同一の時間間隔に応じて一定のものではない。したがって、このようなデータストリームを、一定の大きさのピースで生成する場合、ピアとの同期化が行われないことから共有率が低下し得る。
【0072】
このような問題を解決するために本実施形態に係るパケット化方法は、次のステップS1120のように、一定の大きさではない予め設定された時間間隔ごとにピースを生成してもよい。
【0073】
すなわち、ステップS1120において、パケット化システム1000は、予め設定された時間間隔ごとに受信されたデータストリームに対してピースを生成する。上述したように、データストリームのピースを一定の大きさに生成するのではなく、予め設定された時間間隔ごとに生成することによってピア(クライアント)との同期化が行なわれ、一定ではないエンコーダのトラフィックに対応させることができるとともにVBRを支援できるようになる。
【0074】
また、パケット化システム1000は、データストリームが受信されない時間間隔においては空ピースを生成する。すなわち、パケット化システム1000でデータストリームが受信されない時間間隔においても空ピースを生成することによって、ピースを生成することができない場合にピアとの同期化が行われないことから共有率が低下してしまう問題を解決することができる。
【0075】
ステップS1130において、パケット化システム1000は、生成されたピースをクライアントのリクエストに応じてデリバリーサーバを介してクライアントに送信する。このとき、生成されたピースは、クライアントのリクエストに応じてデリバリーサーバを介してクライアントに送信されてもよい。また、同時接続者の流入率を用いて決定される定数の現在の同時接続者数の比率に応じてサーバ使用量を調整してもよく、この場合、定数は、流入率が高いほど相対的に大きい値に決定され、流入率が低いほど相対的に小さい値に決定されてもよい。このようなサーバ使用量の調整については既に詳しく説明したため、繰り返しの説明は省略する。
【0076】
図11ではパケット化サーバに対応するパケット化システム1000が行うパケット化方法について説明したが、パケット化システム1000がパケット化サーバに含まれて動作するシステムである場合、このようなパケット化システム1000が行うパケット化方法はステップS1120のみを含んでもよい。
【0077】
このように、本発明の一実施形態に係るパケット化システムおよび方法を用いると、一定の大きさにピースを生成するものではなく、一定の時間ごとに受信されたデータストリームに対してピースを生成することによって、一定ではないエンコーダトラフィックに対応することができ、ビット率に関わらずシステムの運用が可能となり、VBR(Variable Bit Rate)を支援することができる。また、ピースを生成する現在の時間間隔に受信されたデータストリームが存在しない場合、空ピースを生成してピアとの同期化を維持することができるため、共有率の低下を防止することができる。
【0078】
本発明の一実施形態に係る方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータ読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などのうちの1つまたはその組み合わせを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、光ディスクのような光磁気媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例としては、コンパイラによって生成されるような機械語コード(machine code)だけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コード(higher level code)を含む。上述したハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアのレイヤで動作するように構成されてもよい。
【0079】
上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
【0080】
したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。