(57)【特許請求の範囲】
【請求項１】
アプリケーションを配布するシステムであって、
前記システムは、ストリーミングサービスを提供するサーバまたは前記ストリーミングサービスが提供される少なくとも一つの他のピアからデータストリームのピースを受信して第１バッファに格納し、前記格納されたピースのうちコンテンツの再生に用いられたピースの少なくとも一部を第２バッファに格納するように、クライアントで動作する前記アプリケーションを前記クライアントに配布し、
前記第１バッファは、ピース選択方法であるプログレッシブを用いて前記サーバを介して受信されたピースが格納される第１領域、前記少なくとも一つの他のピアから前記プログレッシブを用いて受信されたピースが格納される第２領域、およびピース選択方法であるＲａｒｅｓｔＦｉｒｓｔを用いて前記少なくとも一つの他のピアから受信されたピースが格納される第３領域を含むことを特徴とするシステム。
【請求項２】
前記第１バッファおよび前記第２バッファに格納されたピースは、前記ストリーミングサービスが提供される少なくとも一つの他のクライアントに送信可能であることを特徴とする請求項１に記載のシステム。
【請求項３】
ネットワーク状況に応じて前記第１バッファの大きさが前記アプリケーションによって動的に調整されることを特徴とする請求項１に記載のシステム。
【請求項４】
前記アプリケーションは、前記第１バッファの大きさを増加させた分だけ前記第２バッファの大きさを減少させ、または前記第１バッファの大きさを減少させた分だけ前記第２バッファの大きさを増加させることにより、前記第１バッファおよび前記第２バッファを含む全体バッファの大きさを同一に維持することを特徴とする請求項３に記載のシステム。
【請求項５】
ネットワーク状況に応じて前記第３領域の大きさが前記アプリケーションによって動的に調整されて前記第１バッファの大きさが調整されることを特徴とする請求項１に記載のシステム。
【請求項６】
前記ネットワーク状況は、前記クライアントにおけるダウンロードの速度およびアップロードの速度のうち少なくとも一つを含むことを特徴とする請求項３または請求項５に記載のシステム。
【請求項７】
前記サーバは、複数のパケット化サーバを含み、
前記複数のパケット化サーバは、それぞれ同一数のパケット化サーバを含む主パケット化サーバ群と副パケット化サーバ群とに分類され、前記主パケット化サーバ群の障害発生時に前記副パケット化サーバ群が前記主パケット化サーバ群を代替することを特徴とする請求項１に記載のシステム。
【請求項８】
前記システムは、
前記サーバに同時に接続する複数の前記クライアントのサーバ使用量を調整することを含み、
前記複数のクライアントが前記サーバに同時に接続したときの現在の同時接続者数（ｎ）を提供する現在の同時接続者数提供部と、
同時接続者の流入率を用いて決定される定数（ｃ）の前記現在の同時接続者数（ｎ）に対する比率（ｃ／ｎ）に基づいて前記サーバ使用量を調整するサーバ使用量調整部と、
をさらに含むことを特徴とする請求項１に記載のシステム。
【請求項９】
前記サーバは、複数のデリバリーサーバを含み、
前記ストリーミングサービスを提供するシステムにおいて、前記サーバに同時に接続する複数の前記クライアントの同時接続者数に応じて前記複数のデリバリーサーバの数を調整することをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項１０】
バッファリングシステムによって実行されるバッファリング方法であって、
前記バッファリング方法は、ストリーミングサービスを提供するサーバまたは前記ストリーミングサービスが提供される少なくとも一つの他のピアから送信されたデータストリームのピースを第１バッファに格納することと、
前記格納されたピースのうちコンテンツの再生に用いられたピースの少なくとも一部を第２バッファに格納することと、
を含み、
前記第１バッファおよび前記第２バッファに格納されたピースは、前記ストリーミングサービスが提供される少なくとも一つの他のピアに送信可能であり、
前記第１バッファは、ピース選択方法であるプログレッシブを用いて前記サーバを介して受信されたピースが格納される第１領域、前記少なくとも一つの他のピアから前記プログレッシブを用いて受信されたピースが格納される第２領域、およびピース選択方法であるＲａｒｅｓｔＦｉｒｓｔを用いて前記少なくとも一つの他のピアから受信されたピースが格納される第３領域を含むことを特徴とするバッファリング方法。
【請求項１１】
ネットワーク状況に応じて前記第１バッファの大きさを動的に調整することをさらに含むことを特徴とする請求項１０に記載のバッファリング方法。
【請求項１２】
前記ネットワーク状況に応じて前記第１バッファの大きさを動的に調整することは、前記第１バッファの大きさを増加させた分だけ前記第２バッファの大きさを減少させ、または前記第１バッファの大きさを減少させた分だけ前記第２バッファの大きさを増加させることにより、前記全体バッファの大きさを同一に維持することを含むことを特徴とする請求項１１に記載のバッファリング方法。
【請求項１３】
ネットワーク状況に応じて前記第３領域の大きさを調整して前記第１バッファの大きさを調整することをさらに含むことを特徴とする請求項１０に記載のバッファリング方法。
【請求項１４】
前記ネットワーク状況は、前記ピアにおけるダウンロードの速度およびアップロードの速度のうち少なくとも一つを含むことを特徴とする請求項１１または請求項１３に記載のバッファリング方法 。
【請求項１５】
請求項１０乃至１４のいずれか一項に記載のバッファリング方法を行うプログラムを記録したコンピュータで読み出し可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、Ｐ２Ｐ基盤のストリーミングサービスでバッファリングを行うシステムおよび方法、並びにクライアントでバッファリングを処理するアプリケーションを配布するシステムに関する。
【背景技術】
【０００２】
Ｐ２Ｐサービス（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ  Ｓｅｒｖｉｃｅ）は、インターネット上の情報を検索エンジンを経由し検索しなければならない既存方式とは異なり、インターネットに接続された全てのパーソナルコンピュータから直接に情報の提供を受けるサービスである。
【０００３】
また、一般的に「ストリーミング」とは、ネットワークを介してファイルをリアルタイムに受信して再生する技術であり、最も多く用いられる技術としてプログレッシブストリーミング（ｐｒｏｇｒｅｓｓｉｖｅ  ｓｔｒｅａｍｉｎｇ）がある。
【０００４】
このようなストリーミング技術をＰ２Ｐ技術に用いる場合、サーバおよびサービス側の負荷を減らすことができるため、コスト軽減という効果を奏し得る。これを実現するために、Ｐ２Ｐ基盤のストリーミングサービスを用いるクライアントは、マルチメディアファイルのようなコンテンツを再生させる専用プレーヤに、Ｐ２Ｐ基盤のストリーミングサービスを用いるために必要な機能を搭載し、Ｐ２Ｐ基盤のストリーミングをサービスするサーバと通信してＰ２Ｐ基盤のストリーミングサービスの実現を図る。より具体的に説明すると、サーバがウェブページを介して提供可能なコンテンツインデックスをユーザに提供し、クライアントはこのインデックスからサービスされるコンテンツをクリックして選択する。そして、サービスされるコンテンツが選択されると、クライアントにインストールされている専用プレーヤが実行されて選択されたコンテンツが再生される。このとき、専用プレーヤは、Ｐ２Ｐ技術を用いて選択されたコンテンツをサーバおよび他のピア（ｐｅｅｒ）から受信して再生する。
【０００５】
Ｐ２Ｐ基盤のストリーミングサービスを利用しようとするユーザクライアントがサーバに接続された後、ユーザクライアントからコンテンツが選択されると、選択されたコンテンツを保有しているピアを検索してユーザクライアントにコンテンツが提供されるように連結させる。すなわち、ユーザクライアントの専用プレーヤは、選択されたコンテンツのファイルをサーバまたはコンテンツを保有している他のピアに受信して再生する。
【０００６】
このとき、従来技術に係るＰ２Ｐ基盤のストリーミングサービスでは、ピアのネットワーク状況に応じて、ピア間、およびピアとサーバとの間の同期化を維持することが困難になることがある。このような場合に、そのようなピア間、およびピアとサーバとの間の同期化が行われない場合、データの共有率が低下してしまう虞がある。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本明細書では、Ｐ２Ｐ基盤のストリーミングサービスにおいて、ピア間またはピアとサーバとの間に同期化を効率的に行ってデータの共有率を極大化することのできるシステムおよび方法が提供される。
【０００８】
本発明の目的は、ピア間の同期化が行われない場合にも、コンテンツの再生に既に用いられたピースを捨てることなく、一定の量を追加的にバッファリングすることによって、ピア間のデータの共有率を極大化することのできるバッファリングシステムおよび方法を提供する。
【０００９】
本発明の目的は、ネットワーク状況に応じて送信されたデータストリームのピースを格納するバッファの大きさを動的に調整することによって、ピア間の同期化およびピアとサーバとの間の同期化を維持して共有率の低下を防止することのできるバッファリングシステムおよび方法を提供する。
【００１０】
本発明の目的は、バッファの大きさを動的に増加（または減少）させるものの、コンテンツの再生に既に用いられたピースをバッファリングするバッファの大きさを同一の大きさだけ減少（または増加）させて、全体のバッファの大きさを同一に維持することのできるバッファリングシステムおよび方法を提供する。
【課題を解決するための手段】
【００１１】
アプリケーションを配布するシステムであって、ストリーミングサービスを提供するサーバまたはストリーミングサービスが提供される少なくとも一つの他のピアからデータストリームのピースを受信して第１バッファに格納し、格納されたピースのうちコンテンツの再生に用いられたピースの少なくとも一部を第２バッファに格納するようにクライアントで動作するアプリケーションをクライアントに配布することを特徴とするシステムが提供される。
【００１２】
本発明の一実施形態によると、第１バッファおよび第２バッファに格納されたピースは、ストリーミングサービスが提供される少なくとも一つの他のクライアントに送信可能であってもよい。
【００１３】
他の一実施形態によると、ネットワーク状況に応じて第１バッファの大きさがアプリケーションによって動的に調整されてもよい。
【００１４】
また、他の一実施形態によると、アプリケーションは、第１バッファの大きさを増加させた分だけ第２バッファの大きさを減少させ、または第１バッファの大きさを減少させた分だけ第２バッファの大きさを増加させることにより、第１バッファおよび第２バッファを含む全体バッファの大きさを同一に維持してもよい。
【００１５】
また、他の一実施形態によると、第１バッファは順次にピースを受信するためのピース選択方法であるプログレッシブを用いて、デリバリーサーバを介して受信されたピースが格納される第１領域、少なくとも一つの他のクライアントからプログレッシブを用いて受信されたピースが格納される第２領域、およびネットワーク上で最も希有なピースを先に受信するためのピース選択方法である「Ｒａｒｅｓｔ  Ｆｉｒｓｔ」を用いて少なくとも一つの他のクライアントから受信されたピースが格納される第３領域を含んでもよい。
【００１６】
また、他の一実施形態によると、ネットワーク状況に応じて第３領域の大きさがアプリケーションによって動的に調整されて第１バッファの大きさが調整されてもよい。
【００１７】
また、他の一実施形態によると、ネットワーク状況は、クライアントにおけるダウンロードの速度およびアップロードの速度のうち少なくとも一つを含んでもよく、第１バッファの大きさはダウンロードの速度およびアップロードの速度のうち少なくとも一つによってアプリケーションに応じて動的に調整されてもよい。
【００１８】
また、他の一実施形態によると、サーバは、複数のパケット化サーバを含み、複数のパケット化サーバは、それぞれ同一数のパケット化サーバを含む主パケット化サーバ群と副パケット化サーバ群とに分類され、主パケット化サーバ群の障害発生時に副パケット化サーバ群が主パケット化サーバ群を代替してもよい。
【００１９】
また、他の一実施形態によると、サーバは、複数のデリバリーサーバを含み、ストリーミングサービスを提供するシステムにおいて、同時接続者数に応じて用いられる複数のデリバリーサーバの数を調整することによってトラフィックが調整されてもよい。
【００２０】
ストリーミングサービスを提供するサーバまたはストリーミングサービスが提供される少なくとも一つの他のピアから送信されたデータストリームのピースを第１バッファに格納するステップと、格納されたピースのうちコンテンツの再生に用いられたピースの少なくとも一部を第２バッファに格納するステップとを含み、第１バッファおよび第２バッファに格納されたピースは、ストリーミングサービスが提供される少なくとも一つの他のピアに送信可能であることを特徴とするバッファリング方法が提供される。
【発明の効果】
【００２１】
本発明によると、ピア間に同期化が行われない場合にもコンテンツの再生に既に用いられたピースを捨てることなく一定の量を追加的にバッファリングすることによって、ピア間にデータの共有率を極大化することができる。
【００２２】
本発明によると、ネットワーク状況に応じて送信されたデータストリームのピースを格納するバッファの大きさを動的に調整することによって、ピア間の同期化およびピアとサーバとの間の同期化を維持して共有率の低下を防止することができる。
【００２３】
本発明によると、バッファの大きさを動的に増加（または減少）させるものの、コンテンツの再生に既に用いられたピースをバッファリングするバッファの大きさを同一の大きさだけ減少（または増加）させて、全体のバッファの大きさを同一に維持することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態に係るＰ２Ｐ基盤のストリーミングサービスを提供するシステムの論理的な構成を示す図である。
【図２】本発明の一実施形態に係るＰ２Ｐ基盤のストリーミングサービスを提供するシステムの物理的な構成を示す図である。
【図３】本発明の一実施形態に係るパケット化サーバの二重化を説明するための図である。
【図４】本発明の一実施形態に係るデリバリーサーバの二重化を説明するための図である。
【図５】本発明の一実施形態に係るインデックスサーバの二重化を説明するための図である。
【図６】本発明の一実施形態に係るピア管理システムを示す図である。
【図７】本発明の一実施形態に係るピアで利用可能なバッファを説明するための図である。
【図８】本発明の一実施形態に係るコンテンツの再生に用いられたピースをバッファリングするためのバッファの一例を示す図である。
【図９】本発明の一実施形態に係る領域ごとの大きさの調整が可能なピアのバッファの一例を示す図である。
【図１０】本発明の一実施形態に係るバッファリングシステムの内部構成を説明するためのブロック図である。
【図１１】本発明の一実施形態に係るバッファリング方法を示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の実施形態を添付する図面を参照しながら詳細に説明する。
【００２６】
図１は、本発明の一実施形態に係るＰ２Ｐ基盤のストリーミングサービスを提供するシステムの論理的な構成を示す図である。図１は、メディアソース１１０、パケット化サーバ１２０、デリバリーサーバグループ１３０、クライアント１４０、および複数のピア１５０を示している。
【００２７】
ここで、メディアソース１１０は、データストリームを提供するエンコーダを意味する。パケット化サーバ１２０は、このようなメディアソース１１０からデータストリームを受信してピースにインデックスしてもよい。データストリームをＰ２Ｐサービスを介して提供するためにピースにインデックスする方法は、既に公知された様々な方法の一つの方法を用いてもよい。パケット化サーバ１２０はメディアソース１１０ごとに一つずつ存在してもよい。例えば、プロ野球を中継するときに４つの試合が行われる場合、４つの試合に対して４つのメディアソース１１０が存在すれば、パケット化サーバ１２０も４つ用いてもよい。このようなパケット化サーバ１２０については図３を参照してより詳しく説明する。
【００２８】
デリバリーサーバグループ１３０は、少なくとも一つのデリバリーサーバ１３１から構成されてもよい。このとき、デリバリーサーバグループ１３０で動作するデリバリーサーバ１３１の数は同時接続者数に応じて調整してもよい。デリバリーサーバ１３１は、パケット化サーバ１２０からインデックスされたピースを受信し、これをバッファリングしてもよい。このとき、クライアント１４０のリクエストに応じてピースをクライアント１４０に送信してもよい。
【００２９】
ここで、クライアント１４０はＰＣのようなユーザ端末を意味し、図１に示すようにピア１４１とプレーヤ１４２を含んでもよい。ピア１４１は、デリバリーサーバ１３１と複数のピア１５０のうち、少なくとも一つからピースを受信してプレーヤ１４２にデータストリームを送信してもよい。一例として、ピア１４１は、クライアント１４０にインストールされて動作するプログラムであってもよい。複数のピア１５０も複数のクライアントにインストールされて動作するようにしてもよい。
【００３０】
すなわち、パケット化サーバ１２０からピースに変換されたデータストリームは、デリバリーサーバグループ１３０を介して全体クライアントのうち少なくとも一部に送信されてもよく、一つのクライアント１４０の立場からは、デリバリーサーバ１３１と他のクライアントからピースを受信してデータストリームをプレーヤ１４２に送信することによって、ユーザはＰ２Ｐ基盤のストリーミングサービスが提供されるようになる。
【００３１】
このとき、本発明の一実施形態に係るサーバ使用量調整システムは、図１を参照して説明したシステムそのものを意味し、必要に応じて図１を参照して説明したシステムに含まれ、関連していてもよい。サーバ使用量調整システムは、同時接続者数を考慮して適応的にサーバ使用量を調整することによって、同時接続者数に関係なく常に低いサーバトラフィックを維持することができる。このとき、サーバ使用量は、同時接続者の流入率を用いて決定される定数の現在の同時接続者数の比率に基づいて調整されてもよい。一例として、サーバ使用量を下記の数式（１）のように算出されてもよい。
【００３２】
サーバ使用量＝ｃ／ｎ      …数式（１）
【００３３】
ここで、「ｃ」は同時接続者の流入率を用いて決定される定数、「ｎ」は現在の同時接続者数をそれぞれ意味する。このとき、「ｃ」は経験的テストを介して管理者やシステムによって決定される定数として、基本的には同時接続者の流入率が高いほど相対的に大きい値に決定されてもよく、流入率が低いほど相対的に小さい値に決定されてもよい。このような数式（１）は「ｃ」名のトラフィックとして、「ｎ」名のユーザをカバーすることを意味する。例えば、「ｃ」が６であれば、６人に提供するためのトラフィックであり、「ｎ」名（現在の同時接続者）の全てをカバーすることを意味する。
【００３４】
すなわち、同時接続者の流入率が高まって現在の同時接続者数が増加しても、定数である「ｃ」は固定される一方、「ｎ」が増加するためサーバ使用量は次第に減少することになる。したがって、同時接続者数に関係なく、常に低いサーバ使用量を維持することができる。
【００３５】
このために、サーバ使用量調整システムは、現在の同時接続者数を提供する現在の同時接続者数提供部（図示せず）および同時接続者の流入率を用いて決定される定数の現在の同時接続者数の比率に基づいて、サーバ使用量を調整するサーバ使用量調整部（図示せず）を備えてもよい。
【００３６】
図２は、本発明の一実施形態に係るＰ２Ｐ基盤のストリーミングサービスを提供するシステムの物理的な構成を示す図である。図２は、Ｐ２Ｐ基盤のストリーミングサービスのための装備を提供する外部ＩＤＣ２１０、データストリームを提供するエンコーダ業者２２０、および外部ＩＤＣ２１０がクライアント２４０にデータストリームを提供する過程を管理するための内部ＩＤＣ２３０を示している。
【００３７】
外部ＩＤＣ２１０は、パケット化サーバ２１１、メインネットチェッカー２１３、サブネットチェッカー２１４、デリバリーサーバ２１２、およびインデックスサーバ２１５、並びに複数のスイッチ２１６を備えてもよい。ここで、パケット化サーバ２１１、デリバリーサーバ２１２、メインネットチェッカー２１３、サブネットチェッカー２１４、およびインデックスサーバ２１５は、それぞれ一つのサーバではない複数のサーバから構成されてもよく、複数のスイッチ２１６は、それぞれ複数のサーバのうち該当するサーバにデータを送信したり、該当するサーバからデータを受信するために用いられてもよい。複数のスイッチ２１６はそれぞれ一例としてＬ４スイッチを用いてもよい。
【００３８】
パケット化サーバ２１１は、エンコーダ業者２２０のメディアエンコーダ２２１からデータストリームを受信し、受信されたデータストリームをシステムで用いるためのデータに加工する。すなわち、パケット化サーバ２１１はデータストリームを複数のピースに変換してもよい。既に説明したように、メディアエンコーダ２２１ごとに一つずつのパケット化サーバ２１１で実行されてもよい。
【００３９】
デリバリーサーバ２１２は、パケット化サーバ２１１から受信したピースをクライアント２４０のリクエストに応じてクライアント２４０に送信する。また、インデックスサーバ２１５は、クライアント２４０のインデックスを維持して検索サービスを提供する。ここで、メインネットチェッカー２１３とサブネットチェッカー２１４はピア間の接続を中継する中継サーバを意味する。
【００４０】
次の表１は、同時接続者数が１５万人であり、コンテンツビットレートが５００ｋｂｐｓ、共有率が８０％である場合に必要なサーバの数を示している。
【００４１】
【表１】
0005529177.tif 000002
【００４２】
内部ＩＤＣ２３０が含んでいるＬＭＳ２３１は、ピア管理システムを意味する。このようなＬＭＳ２３１は、パケット化サーバ２１１、デリバリーサーバ２１２、およびインデックスサーバ２１５を管理するサーバとして、サーバのアップロードやダウンロード状態またはトラフィック、クエリ数、リソース（ＣＰＵ、メモリ）、共有率などをモニタリングしてもよい。また、ＬＭＳ２３１は、同時接続者数、ユニーク訪問者数、共有率、ユーザの速度分布、平均視聴時間、および視聴チャネル数などの統計データを生成してＤＢ２３２に格納してもよい。すなわち、ＤＢ２３２は統計データを格納するサーバを意味する。
【００４３】
このとき、上述したように本発明の一実施形態に係るシステムは、同時接続者数を考慮して適応的にサーバ使用量を調整することによって、同時接続者数に関係なく、常に低いサーバトラフィックを維持することができる。このとき、サーバ使用量は、同時接続者の流入率を用いて決定される定数である現在の同時接続者数の比率に基づいて調整してもよい。一例として、サーバ使用量を前述した数式（１）のように算出してもよく、このようなサーバ使用量は、図２を参照して説明したデリバリーサーバ２１２のトラフィックを意味する。また、図１を参照して説明したサーバ使用量調整システムは、図２を参照して説明したシステムそのものを意味し、前述したＬＭＳ２３１に含まれてもよい。
【００４４】
図３は、本発明の一実施形態に係るパケット化サーバの二重化を説明するための図である。図３は、４個のエンコーダ３１０〜３４０によってデータストリームが提供される場合、主パケット化サーバ群３５０で４個のパケット化サーバが動作する可能性があることを示している。すなわち、「ＰＳ−１」、「ＰＳ−２」、「ＰＳ−３」および「ＰＳ−４」は前述した４個のパケット化サーバを意味する。
【００４５】
このとき、４個のパケット化サーバは、４個のエンコーダ３１０〜３４０から受信されるデータストリームをＰ２Ｐで用いられる形態のデータに変換し、全てのデリバリーサーバに変換されたデータを送信してもよい。このとき、４個のパケット化サーバと全てのデリバリーサーバは、スイッチ３７０を用いてデータを送受信してもよい。
【００４６】
このようなパケット化サーバは、ＣＰＵやトラフィックなどのリソースの使用量が多くない。例えば、２０台のデリバリーサーバ（同時接続者数１５万人基準）が接続した場合、１Ｍｂｐｓの大きさのコンテンツに対して２０Ｍｂｐｓのトラフィックのみを用いる。
【００４７】
また、パケット化サーバごとに４個のエンコーダ３１０〜３４０から互いに異なるデータストリームが送信されるため、図３に示すように、ピースは主パケット化サーバ群３５０と副パケット化サーバ群３６０のうち、一つのサーバ群でのみ生成されなければならない。したがって、主パケット化サーバ群３５０と副パケット化サーバ群３６０はアクティブ／スタンバイの形態で動作してもよい。副パケット化サーバ群３６０は、主パケット化サーバ群３５０の障害に対応するために用いられてもよい。
【００４８】
図４は、本発明の一実施形態に係るデリバリーサーバの二重化を説明するための図である。パケット化サーバ群４１０で変換されたデータであるピースはデリバリーサーバ群４２０に送信される。このとき、「ＤＳ−ｎ」は「ｎ」番目のデリバリーサーバを意味し、デリバリーサーバ群４２０内に「ｎ」個のデリバリーサーバが存在することを意味する。
【００４９】
各デリバリーサーバは、パケット化サーバからピースが送信されて一定の数だけバッファリングを行って、クライアントのピアのリクエストに応じて該当ピースをピアに送信する。このとき、デリバリーサーバ群４２０のデリバリーサーバもスイッチ４３０にバインディングされてもよく、同時接続者数の増加に応じてデリバリーサーバを増加させることでトラフィックを調整することができる。
【００５０】
図５は、本発明の一実施形態に係るインデックスサーバの二重化を説明するための図である。インデックスサーバ群５１０は、複数のインデックスサーバを含んでもよく、「ＩＳ−ｎ」は「ｎ」番目のインデックスサーバを意味し、インデックスサーバ群５１０内に「ｎ」個のインデックスサーバが存在することを意味する。
【００５１】
このとき、複数のインデックスサーバのそれぞれはクライアントのピアを管理する。より詳しくは、クライアントにインストールされたピアを管理し、ピアのリクエストに応じる検索結果を送信する。また、インデックスサーバはメッセージ送信を行なってもよく、ピアと持続的な接続を維持することができる。このようなインデックスサーバそれぞれはスイッチ５２０とバインディングしてもよく、同時接続者数に応じてインデックスサーバを増加させてもよい。
【００５２】
図６は、本発明の一実施形態に係るピア管理システムを示す図である。図６に示されたＬＭＳ６１０はピア管理システムを、ＩＳ６２０はインデックスサーバを、ＰＳ６３０はパケット化サーバを、ＤＳ６４０はデリバリーサーバをそれぞれ意味する。このとき、ピア管理システムは、インデックスサーバ、パケット化サーバ、およびデリバリーサーバに対する管理、配布、更新、およびモニタリング機能を行い、ピアに対する統計収集および分析機能を行なってもよい。例えば、ピア管理システムは、ＣＰＵやメモリの使用量またはトラフィックのように前述したサーバの状態をモニタリングし、障害状況に対するイベント通知機能（例えば、ＳＭＳまたはｅ−ｍａｉｌなど）を提供してもよい。
【００５３】
図７は、本発明の一実施形態に係るピアで利用可能なバッファを説明するための図である。ピアは上述したように、クライアントにインストールされて動作できるソフトウェアとして、いずれのピースをどこから受信するかを決定する。次の表２は、ピアにおけるピースの選択方法と受信可能なソースを示している。
【００５４】
【表２】
0005529177.tif 000003
【００５５】
表２において「Ｒａｒｅｓｔ  Ｆｉｒｓｔ」は、ネットワーク上で最も希有な（ｒａｒｅ）ピースを先に受信するピース選択方法を意味し、「Ｐｒｏｇｒｅｓｓｉｖｅ」は前から順次にピースを受信するピース選択方法を意味する。このとき、ピースはデリバリーサーバを介して受信したり他のピアから受信してもよい。
【００５６】
このとき、ピアは再生を円滑にして共有効率を上げるために、受信されたピースを格納するバッファを用いてもよい。図７は、第１バッファ７１０〜第３バッファ７３０を示している。
【００５７】
まず、第１バッファ７１０は、「Ｐｒｏｇｒｅｓｓｉｖｅ」を介して受信されたピースを格納するための第１範囲７１１と、「Ｒａｒｅｓｔ  Ｆｉｒｓｔ」を介して受信されたピースを格納するための第２範囲７１２とに分類してもよい。同時に、第１バッファ７１０は、デリバリーサーバを介して受信されたピースを格納するための第３範囲７１３と他のピアを介して受信されたピースを格納するための第４範囲７１４とに分類してもよい。
【００５８】
第２バッファ７２０は、実際に分離されたバッファの領域を示している。すなわち、第２バッファ７２０はデリバリーサーバを介して「Ｐｒｏｇｒｅｓｓｉｖｅ」に受信されたピースを格納するための第１領域７２１、他のピアを介して「Ｐｒｏｇｒｅｓｓｉｖｅ」に受信されたピースを格納するための第２領域７２２、および他のピアを介して「Ｒａｒｅｓｔ  Ｆｉｒｓｔ」に受信されたピースを格納するための第３領域７２３に区分してもよい。
【００５９】
第３バッファ７３０は、分離された領域の大きさが互いに異なることを示している。すなわち、第３バッファ７３０は、領域Ａ７３１、領域Ｂ７３２、および領域Ｃ７３３がそれぞれ互いに異なる大きさの比率で構成された一例を示す。一例として、領域Ａ７３１、領域Ｂ７３２、領域Ｃ７３３の大きさの比率は１：４：１６の比率を有してもよい。このような比率は必要に応じて調整されてもよい。また、必要に応じて領域Ｂ７３２と領域Ｃ７３３にも一定部分のピースがデリバリーサーバから受信されて格納してもよい。
【００６０】
このとき、ピアとピアとの間の同期化が行われない場合には、共有率の低下が生じることがある。このような場合において、共有率を極大化するために、本発明の実施形態に係るピアは、コンテンツの再生されて用いられたピースを捨てることなく、一定の量をバッファリングするためのバッファ（以下、「Ｚ−Ｂｕｆｆｅｒ」という。）をさらに用いてもよい。
【００６１】
図８は、本発明の一実施形態に係るコンテンツの再生に用いられたピースをバッファリングするためのバッファの一例を示す図である。図８において、第１点線ボックス８１０は、第１ピアバッファおよび第２ピアバッファを示している。また、第１点線ボックス８１０には、第１ピアと第２ピアとの間に同期化が行われない場合の共有可能なバッファの大きさ８１１を示している。すなわち、第１ピアと第２ピアとの間に同期化が行われない場合、データの共有率は減少する。第２点線ボックス８２０は、「Ｚ−Ｂｕｆｆｅｒ」を用いることで共有可能なバッファの大きさ８２１を増加させることによって、データの共有率を極大化することが可能であることを示している。
【００６２】
一般的に、バッファリングは、ストリーミングサービスでコンテンツの再生を円滑にして共有効率も高めることができるが、ディレイによって画面が遅れる短所があることから、バッファリングの使用を最小化しなければならない。しかし、上述したように、バッファリングを最小化するためのバッファの大きさを用いる場合、ピア間の同期化が行われないのであれば、共有率が減少してしまう問題が発生する。したがって、本発明の実施形態に係るピアでは、既に再生したピースの一定の量を捨てることなく、追加的にバッファリングすることによって、バッファリングの使用を最小化すると同時に共有率を極大化することを可能にする。
【００６３】
また、Ｐ２Ｐストリーミングサービスでは、既に説明したように、ピアのネットワーク状況に応じて、ピア間、またはピアとサーバとの間の同期化を維持することが困難になり、これにより、共有率の低下が生じることがある。そこで、本発明の実施形態に係るピアは、全体のバッファの大きさは維持するものの、既存のバッファの大きさと「Ｚ−Ｂｕｆｆｅｒ」の大きさを動的に調整することによって、ピア間およびピアとサーバとの間の同期化を維持することを可能にする。
【００６４】
図９は、本発明の一実施形態に係る領域ごとの大きさの調整が可能なピアのバッファの一例を示す図である。ここで、領域Ｃ９１０は、図７において、他のピアを介して「Ｒａｒｅｓｔ  Ｆｉｒｓｔ」に受信されたピースを格納するための領域であることを既に説明したものである。図９に示す実施形態によれば、このような領域Ｃ９１０のバッファの大きさを第１大きさ９２０から第２大きさ９３０に増加させ、同時に「Ｚ−Ｂｕｆｆｅｒ」の大きさを第３大きさ９４０から第４大きさ９５０に減少させてもよい。これにより、全体のバッファの大きさが一定に維持され得る。
【００６５】
すなわち、ピアのネットワーク状況が悪い場合、ピア間およびピアとサーバとの間の同期化を維持することが困難であり、同期化が維持されない場合に共有率は低下する。したがって、本発明の実施形態に係るピアは、既存のバッファの大きさと「Ｚ−Ｂｕｆｆｅｒ」の大きさを動的に調整することによって、同期化を維持させることで共有率の低下を防止することができる。
【００６６】
言い換えれば、既に再生したピースの一定の量をバッファリングする「Ｚ−Ｂｕｆｆｅｒ」を用いることによりピア間に同期化が行われないためバッファリングされるピースがずれた場合にも、共有できる部分を増加させることによって共有率を極大化することができる。また、既存のバッファの大きさと「Ｚ−Ｂｕｆｆｅｒ」の大きさを動的に調整することによって、ピア間およびピアとサーバとの間の同期化を維持することができる。
【００６７】
前述したネットワーク状況は、ピアにおけるダウンロードの速度およびアップロードの速度のうち、少なくとも一つのネットワークの状態を、測定可能な全ての要素のうち少なくとも１つによって決定してもよく、このようなネットワーク状況に応じてバッファの大きさを決定してもよい。
【００６８】
図９には、領域Ｃ９１０の大きさと、「Ｚ−Ｂｕｆｆｅｒ」の大きさを同時に調整する一例のみを説明したが、必要に応じて領域Ａまたは領域Ｂの大きさを調整してもよく、３つの領域のうち２つ以上の領域の大きさを調整してもよい。
【００６９】
図１０は、本発明の一実施形態に係るバッファリングシステムの内部構成を説明するためのブロック図である。本実施形態に係るバッファリングシステム１０００は、前述したピア、すなわち、Ｐ２Ｐストリーミングサービスが提供されるクライアント端末のように、バッファリングが必要な端末に含まれて動作してもよい。このとき、バッファリングシステム１０００は、図１０に示すように、格納部１０１０を備え、必要に応じてバッファ大きさ調整部１０２０をさらに備える。
【００７０】
格納部１０１０は、ストリーミングサービスを提供するサーバ、またはストリーミングサービスが提供される少なくとも一つの他のピアから送信されたデータストリームのピースを第１バッファに格納し、格納されたピースのうち、コンテンツの再生に用いられたピースの少なくとも一部を第２バッファに格納する。このとき、第１バッファおよび第２バッファに格納されたピースは、ストリーミングサービスが提供される少なくとも一つの他のピアに提供されてもよい。すなわち、ピア間の同期化が合わない場合にも第２バッファを用いて既に再生に用いられたピースを捨てることなく一定の量を追加的にバッファリングすることによって、既に再生に用いられたピースをまだ受信されていない他のピアに送信することができることから、ピア間のデータの共有率を極大化することができる。
【００７１】
バッファ大きさ調整部１０２０は、ネットワーク状況に応じて第１バッファの大きさを動的に調整する。このとき、バッファ大きさ調整部１０２０は、第１バッファの大きさを増加させた分だけ第２バッファの大きさを減少させたり、第１バッファの大きさを減少させた分だけ第２バッファの大きさを増加させることにより、全体のバッファの大きさを同一に維持できるように調整する。ここで、一例として、ネットワーク状況は、ピアにおけるダウンロードの速度およびアップロードの速度のうち少なくとも一つを含んでもよい。この場合、バッファ大きさ調整部１０２０は、ダウンロードの速度およびアップロードの速度のうち少なくとも一つに応じて第１バッファおよび第２バッファの大きさを調整してもよい。例えば、ダウンロードの速度およびアップロードの速度のうち少なくとも一つの範囲に応じて予め第１バッファの大きさを決定してもよい。この場合、バッファ大きさ調整部１０２０は、現在のダウンロードの速度およびアップロードの速度のうち少なくとも一つによって予め決定された大きさに第１バッファの大きさを増加または減少させてもよい。
【００７２】
このとき、第１バッファは、順次にピースを受信するためのピース選択方法であるプログレッシブを用いてサーバから受信されたピースを格納するための第１領域、プログレッシブを用いて少なくとも一つの他のピアから受信されたピースを格納するための第２領域、およびネットワーク上で最も希有なピースを先に受信するためのピース選択方法である「Ｒａｒｅｓｔ  ｆｉｒｓｔ」を用いて、少なくとも一つの他のピアから受信されたピースを格納するための第３領域を含んでもよい。この場合、バッファ大きさ調整部１０２０は、第３領域の大きさを調整して第１バッファの大きさを調整してもよい。
【００７３】
図１１は、本発明の一実施形態に係るバッファリング方法を示すフローチャートである。本実施形態に係るバッファリング方法は、図１０を参照して説明したバッファリングシステム１０００によって行われてもよい。図１１を参照し、バッファリングシステム１０００によって各ステップが行われる過程を説明することにより、本発明の一実施形態に係るバッファリング方法について説明する。
【００７４】
ステップＳ１１１０において、バッファリングシステム１０００は、ストリーミングサービスを提供するサーバまたはストリーミングサービスが提供される少なくとも一つの他のピアから送信されたデータストリームのピースを第１バッファに格納する。
【００７５】
ステップＳ１１２０において、バッファリングシステム１０００は、格納されたピースのうちコンテンツの再生に用いられたピースの少なくとも一部を第２バッファに格納する。このとき、第１バッファおよび第２バッファに格納されたピースはストリーミングサービスが提供される少なくとも一つの他のピアに提供されてもよい。すなわち、ピア間の同期化が合わない場合にも第２バッファを用いて既に再生に用いられたピースを捨てることなく一定の量を追加的にバッファリングすることによって、既に再生に用いられたピースをまだ受信されていない他のピアに送信することができることから、ピア間のデータの共有率を極大化することができる。
【００７６】
ステップＳ１１３０において、バッファリングシステム１０００は、ネットワーク状況に応じて第１バッファの大きさを動的に調整する。このとき、バッファリングシステム１０００は、第１バッファの大きさを増加させた分だけ第２バッファの大きさを減少させ、または第１バッファの大きさを減少させた分だけ第２バッファの大きさを増加させることによって、全体のバッファの大きさが同一に維持されるように調整する。ここで、一例として、ネットワーク状況は、ピアにおけるダウンロードの速度およびアップロードの速度のうち少なくとも一つを含んでもよい。このとき、バッファリングシステム１０００は、ダウンロードの速度およびアップロードの速度のうち少なくとも一つに応じて第１バッファおよび第２バッファの大きさを調整してもよい。例えば、ダウンロードの速度およびアップロードの速度のうち少なくとも一つの範囲に応じて第１バッファの大きさを予め決定してもよい。このとき、バッファリングシステム１０００は、現在のダウンロードの速度およびアップロードの速度のうち少なくとも一つに応じて予め決定された大きさに第１バッファの大きさを増加または減少させてもよい。
【００７７】
このとき、第１バッファは、順次にピースを受信するためのピース選択方法であるプログレッシブを用いてサーバから受信されたピースを格納するための第１領域、プログレッシブを用いて少なくとも一つの他のピアから受信されたピースを格納するための第２領域、およびネットワーク上で最も希有なピースを先に受信するためのピース選択方法である「Ｒａｒｅｓｔ  Ｆｉｒｓｔ」を用いて少なくとも一つの他のピアから受信されたピースを格納するための第３領域を含んでもよい。この場合、バッファリングシステム１０００は、第３領域の大きさを調整することにより第１バッファの大きさを調整してもよい。
【００７８】
他の実施形態に係るバッファリング方法は、実質的にバッファリングシステム１０００の役割を担い、クライアント端末に設けられるアプリケーションによって行われてもよい。このとき、このようなアプリケーションをクライアントに配布するシステムは、Ｐ２Ｐ基盤のストリーミングサービスを提供するシステムに含まれていてもよく、またはＰ２Ｐ基盤のストリーミングサービスを提供するシステムに関連するシステムであってもよい。
【００７９】
前述したアプリケーションは、ストリーミングサービスを提供するサーバまたはストリーミングサービスが提供される少なくとも一つの他のピアからデータストリームのピースを受信して第１バッファに格納し、格納されたピースのうちコンテンツの再生に用いられたピースの少なくとも一部を第２バッファに格納するようにクライアントで動作してもよい。
【００８０】
第１バッファおよび第２バッファに格納されたピースは、ストリーミングサービスが提供される少なくとも一つの他のクライアントに送信可能であり、ネットワーク状況に応じて第１バッファの大きさがアプリケーションによって動的に調整されてもよい。このとき、アプリケーションは、第１バッファの大きさを増加させた分だけ第２バッファの大きさを減少させ、または第１バッファの大きさを減少させた分だけ第２バッファの大きさを増加させることにより、第１バッファおよび第２バッファを含む全体のバッファの大きさを同一に維持することができる。
【００８１】
また、第１バッファは、順次にピースを受信するためのピース選択方法であるプログレッシブを用いてデリバリーサーバによって受信されたピースが格納される第１領域、少なくとも一つの他のクライアントからプログレッシブを用いて受信されたピースが格納される第２領域、およびネットワーク上で最も希有なピースを先に受信するためのピース選択方法である「Ｒａｒｅｓｔ  Ｆｉｒｓｔ」を用いて、少なくとも一つの他のクライアントから受信されたピースが格納される第３領域を含んでもよい。この場合には、ネットワーク状況に応じて第３領域の大きさがアプリケーションによって動的に調整されて第１バッファの大きさを調整してもよい。
【００８２】
ネットワーク状況は、クライアントにおけるダウンロードの速度およびアップロードの速度のうち少なくとも一つを含んでもよく、この場合、第１バッファの大きさはダウンロードの速度およびアップロードの速度のうち少なくとも一つに応じてアプリケーションによって動的に調整されてもよい。
【００８３】
ストリーミングサービスを提供するサーバは、複数のパケット化サーバを含んでもよく、この場合、複数のパケット化サーバは、それぞれの同一数のパケット化サーバを含む主パケット化サーバ群と副パケット化サーバ群とに分類され、主パケット化サーバ群の障害時に副パケット化サーバ群が主パケット化サーバ群を代替してもよい。
【００８４】
また、ストリーミングサービスを提供するサーバは、複数のデリバリーサーバを含んでもよく、この場合、ストリーミングサービスを提供するシステムにおいて、同時接続者数に応じて用いられる複数のデリバリーサーバの数を調整することによってトラフィックを調整してもよい。
【００８５】
もちろん、ストリーミングサービスを提供するサーバは、複数のパケット化サーバと複数のデリバリーサーバとを全て含んでもよい。
【００８６】
このように、本発明の実施形態に係るバッファリングシステムおよび方法を用いると、ピア間に同期化が行われない場合にもコンテンツの再生に既に用いられたピースを捨てることなく一定の量を追加的にバッファリングすることによって、ピア間にデータの共有率を極大化することができる。また、ネットワーク状況に応じて送信されたデータストリームのピースを格納するバッファの大きさを動的に調整することによって、ピア間およびピアとサーバとの間の同期化を維持することにより、共有率の低下を防止することができる。また、バッファの大きさを動的に増加（または減少）させるものの、コンテンツの再生に既に用いられたピースをバッファリングするバッファの大きさを同一の大きさだけ減少（または増加）させることにより、全体のバッファの大きさを同一に維持することができる。
【００８７】
本発明の実施形態に係る方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータ読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などのうちの一つまたはその組合せを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、光ディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例としては、コンパイラによって生成されるような機械語コード（ｍａｃｈｉｎｅ  ｃｏｄｅ）だけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コード（ｈｉｇｈｅｒ  ｌｅｖｅｌ  ｃｏｄｅ）を含む。上述したハードウェア装置は、本発明の動作を行うために一つ以上のソフトウェアのレイヤで動作するように構成されてもよい。
【００８８】
上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
【００８９】
したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【００９０】
１０００      バッファリングシステム
１０１０      格納部
１０２０      バッファ大きさ調整部
【図１】
0005529177.tif 000004
【図２】
0005529177.tif 000005
【図３】
0005529177.tif 000006
【図４】
0005529177.tif 000007
【図５】
0005529177.tif 000008
【図６】
0005529177.tif 000009
【図７】
0005529177.tif 000010
【図８】
0005529177.tif 000011
【図９】
0005529177.tif 000012
【図１０】
0005529177.tif 000013
【図１１】
0005529177.tif 000014