(57)【特許請求の範囲】
【請求項１】
分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするためにコンピュータで実行される方法であって、
前記分散型コンテンツ配信ネットワーク内のノードを用いて、前記分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生するステップと、
前記分散型コンテンツ配信ネットワークのローカルネットワーク内のピアリーダーとして前記ノードを特定したときに、前記ノードを用いて、
前記コンテンツストリームをコンテンツソースから取得し、
前記コンテンツストリームを前記ローカルネットワーク内の他のノードにブロードキャストし、
前記コンテンツソースから前記コンテンツストリームを取得することに関連する１つ以上の属性に基づいて、前記コンテンツストリームのビットレートを調整するステップとを含む、コンピュータで実行される方法。
【請求項２】
前記ピアリーダーからの前記コンテンツストリームの受信者として前記ノードを特定したときに、前記ノードを用いて、前記ピアリーダーからまたは前記ノードがアクセス可能な１つ以上の他のピアリーダーから前記コンテンツストリームを受信するための最も有効なビットレートを選択するステップをさらに含む、請求項１に記載のコンピュータで実行される方法。
【請求項３】
前記ノードを一組のノードに対するピアリーダーとして特定することは、
前記ノードにおいて、前記他のノードのうちの１つ以上のノードからノード特徴の１つ以上の値を取得することと、
前記ノードのノード特徴の値と、前記他のノードのうちの１つ以上のノードからのノード特徴の１つ以上の値とに基づいて、前記ノードを前記ピアリーダーとして選択することとを含む、請求項１または２に記載のコンピュータで実行される方法。
【請求項４】
前記ノードを一組のノードに対するピアリーダーとして特定することは、
前記ノードを用いて、
前記ピアリーダーとしての前記ノードのステータスをブロードキャストすることと、
前記ピアリーダーとしての前記ノードのステータスを、前記ローカルネットワークの１つ以上のサブネット上のピアリーダーの１つ以上のクライアントに送信することとをさらに含み、前記ステータスは、前記１つ以上のクライアントによって前記１つ以上のサブネット内の他のクライアントにブロードキャストされる、請求項３に記載のコンピュータで実行される方法。
【請求項５】
前記ノードを一組のノードに対するピアリーダーとして特定することは、前記コンテンツソースから前記コンテンツストリームを取得することに関連する劣化が検出されたときに、前記ノードのノード特徴の値をリセットすることにより、前記他のノードのうちの１つ以上のノードから前記ピアリーダーを選択することを容易にすることをさらに含む、請求項３に記載のコンピュータで実行される方法。
【請求項６】
前記ノード特徴は、前記ノードにおける前記コンテンツストリームの受信期間を含む、請求項３〜５のいずれか１項に記載のコンピュータで実行される方法。
【請求項７】
前記ノードを用いて前記コンテンツストリームを他のノードにブロードキャストするステップは、前記ノードを用いて前記コンテンツストリームを前記他のノードの第１のサブセットに送信することを含み、前記コンテンツストリームは、前記他のノードに、前記他のノードの前記第１のサブセットと１つ以上の他のサブセットとを含む送信チェーンに沿って中継される、請求項１〜６のいずれか１項に記載のコンピュータで実行される方法。
【請求項８】
前記１つ以上の属性は、ネットワークレイテンシ、バースト帯域幅テストの結果、またはバッファ占有量を含む、請求項１〜７のいずれか１項に記載のコンピュータで実行される方法。
【請求項９】
前記ノードを用いて前記コンテンツストリームを再生するステップは、前記コンテンツストリームを、前記ノード上のプレーヤーに対し、前記ビットレートを前記プレーヤーに通知せずに提供することを含む、請求項１〜８のいずれか１項に記載のコンピュータで実行される方法。
【請求項１０】
分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするためのシステムであって、
前記分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生するように構成された、前記分散型コンテンツ配信ネットワーク内のノードを備え、前記ノードは、
前記分散型コンテンツ配信ネットワークのローカルネットワーク内のピアリーダーとして前記ノードを特定するように構成されたリーダーシップ管理装置と、
ブロードキャスト装置とを含み、前記ノードが前記ピアリーダーとして特定されたときに、前記ブロードキャスト装置は、
前記コンテンツストリームをコンテンツソースから取得し、
前記コンテンツストリームを前記ローカルネットワーク内の他のノードにブロードキャストし、
前記コンテンツソースから前記コンテンツストリームを取得することに関連する１つ以上の属性に基づいて、前記コンテンツストリームのビットレートを調整するように構成されている、システム。
【請求項１１】
請求項１〜９のいずれかに記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
分野
開示されている実施形態は、適応ビットレートストリーミングを提供するための技術に関する。より具体的には、開示されている実施形態は、分散型コンテンツ配信ネットワークにおけるブロードキャストレディネスをテストするための技術に関する。
【背景技術】
【０００２】
関連技術
電子機器の能力および台数の向上は、結果として電子機器に対するデジタルコンテンツの配信の増加をもたらした。たとえば、ビデオ、音声、および／またはその他の種類の媒体ストリームは、複数のパーソナルコンピュータ、ラップトップコンピュータ、携帯電話、タブレットコンピュータ、および／またはその他のネットワーク対応電子機器に、インターネットベースのコンテンツプロバイダおよび／またはコンテンツ配信ネットワークを用いて送信し得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、デジタルコンテンツ配信によって消費される帯域幅が、電子機器上でのコンテンツ再生および／またはその他のネットワークアクセスに干渉する場合がある。たとえば、企業環境においてビデオの需要が増大すると、企業ネットワーク内でのネットワークの使用は、小さなトランザクションペイロードから大きな分散ペイロードに移行する場合がある。そうすると、企業ネットワークはこのペイロードによって過負荷になり、企業ネットワーク内におけるビデオ体験に障害が発生するおよび／または機器に到達するために業務上不可欠なトラフィックが得られないという結果が生じ得る。
【０００４】
企業の中には、分散型コンテンツ配信ネットワークを創設することによってこの問題を解決しようと試みた企業がある。分散型コンテンツ配信ネットワークにおいて、クライアントはコンテンツを互いに共有するピアとして機能し得る。あるクライアントがファイルを中央サーバから受信すると、このクライアントは他のクライアントに対してこのファイルのサーバになり得る。クライアントがコンテンツをダウンロードすると、そのコンテンツのサーバになり得るクライアントの数が増し、それ以降のクライアントは、このコンテンツをワイドエリアネットワーク（ＷＡＮ）ではなくローカルエリアネットワーク（ＬＡＮ)から取得することができ、クライアントとＷＡＮとの間の輻輳は減少する。
【０００５】
一方、帯域幅および／またはプロセッサの利用は、個々のクライアントにおけるコンテンツの再生に影響し続ける場合がある。たとえば、ライブイベントのビデオは、何百または何千ものクライアントに対し、複数のネットワークおよび／または物理的な場所を通してストリーミングされることがある。クライアント、ネットワーク、および／または場所の数が増すと、１以上のクライアントおよび／またはネットワークがコンフィギュレーション不良または利用不能になる可能性が増す。また、クライアント間で帯域幅が異なっていると、一組のピア間で共有されるべきコンテンツの適切なビットレートの選択が難しくなる場合がある。
【０００６】
ゆえに、複数のネットワークおよび／または物理的な場所を通してコンテンツをクライアントに配信し再生することは、クライアントにおけるネットワークおよび／または再生の問題を動的に検出し管理するためのメカニズムによって容易になるであろう。
【課題を解決するための手段】
【０００７】
概要
開示されている実施形態は、分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするシステムを提供する。このシステムは分散型コンテンツ配信ネットワーク内のノードを含み、このノードは、分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生する。上記ノードはリーダーシップ管理装置を含み、この装置は上記ノードを分散型コンテンツ配信ネットワークのローカルネットワークのピアリーダーとして特定する。また、上記ノードはブロードキャスト装置を含む。ノードがピアリーダーとして特定されると、ブロードキャスト装置は、コンテンツストリームをコンテンツソースから取得し、ローカルネットワーク内の他のノードにブロードキャストし、コンテンツストリームをコンテンツソースから取得することに関連する１つ以上の属性に基づいてコンテンツストリームのビットレートを調整する。
【０００８】
いくつかの実施形態において、リーダーシップ管理装置はまた、ピアリーダーからのコンテンツストリームの受信者としてノードを特定する。コンテンツストリームの受信者としてノードが特定されたときに、ブロードキャスト装置は、ピアリーダーからまたはノードがアクセス可能な１つ以上の他のピアリーダーからコンテンツストリームを受信するための最も有効なビットレートを選択する。
【０００９】
いくつかの実施形態において、ノードを一組のノードに対するピアリーダーとして特定することは、ローカルネットワーク内の他のノードのうちの１つ以上のノードからノード特徴の１つ以上の値を取得することと、ノードのノード特徴の値と、他のノードのうちの１つ以上のノードからのノード特徴の１つ以上の値とに基づいて、ノードをピアリーダーとして選択することとを含む。
【００１０】
いくつかの実施形態において、ノードを一組のノードに対するピアリーダーとして特定することは、ピアリーダーとしてのノードのステータスをブロードキャストすることと、ピアリーダーとしてのノードのステータスを、ローカルネットワークの１つ以上のサブネット上のピアリーダーの１つ以上のクライアントに送信することとをさらに含み、ステータスは、１つ以上のクライアントによって１つ以上のサブネット内の他のクライアントにブロードキャストされる。
【００１１】
いくつかの実施形態において、ノードを一組のノードに対するピアリーダーとして特定することは、コンテンツソースからコンテンツストリームを取得することに関連する劣化が検出されたときに、ノードのノード特徴の値をリセットすることにより、他のノードのうちの１つ以上のノードからピアリーダーを選択することを容易にすることをさらに含む。
【００１２】
いくつかの実施形態において、上記１つ以上の属性は、ネットワークレイテンシ、バースト帯域幅テストの結果、またはバッファ占有量を含む。
【００１３】
いくつかの実施形態において、ノードを用いてコンテンツストリームを再生することは、コンテンツストリームを、ノード上のプレーヤーに対し、ビットレートをプレーヤーに通知せずに提供することを含む。
【図面の簡単な説明】
【００１４】
【図１】開示されている実施形態に従うシステムの概略図を示す。
【図２】開示されている実施形態に従う分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするためのシステムを示す。
【図３】開示されている実施形態に従う分散型コンテンツ配信ネットワークにおけるローカルネットワークの一組のノードにコンテンツを送信するための代表的な送信チェーンを示す。
【図４】開示されている実施形態に従う分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするプロセスを説明するフローチャートを示す。
【図５】開示されている実施形態に従う分散型コンテンツ配信ネットワーク内のノードのステータスを特定するプロセスを説明するフローチャートを示す。
【図６】開示されている実施形態に従うコンピュータシステムを示す。
【発明を実施するための形態】
【００１５】
図中、同様の参照番号は同一の図面要素を示す。
詳細な説明
以下の説明は、当業者が実施形態を実施し使用することを可能にするために述べられ、特定の用途およびその必要条件という文脈において提供される。開示される実施形態のさまざまな変形は、当業者には難なく明らかになるであろう。また、本明細書で定義される一般原則は、本開示の精神および範囲から逸脱することなく、他の実施形態および用途に適用し得る。よって、本発明は、示されている実施形態に限定されるのではなく、本明細書に開示される原則および特徴と合致する最も広い範囲に従うことを意図している。
【００１６】
この詳細な説明に記載されるデータ構造およびコードは、典型的にはコンピュータ読取可能な記憶媒体に格納されており、この媒体は、コンピュータシステムによって使用されるコードおよび／またはデータを格納できる何らかの装置または媒体であればよい。コンピュータ読取可能な記憶媒体は、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスクまたはデジタルビデオディスク）等の磁気および光記憶装置、または、現在周知のまたは今後開発されるコードおよび／またはデータを格納できるその他の媒体を含むが、これらに限定されない。
【００１７】
この詳細な説明のセクションに記載の方法およびプロセスは、上記コンピュータ読取可能な記憶媒体に格納できるコードおよび／またはデータとして実施することができる。コンピュータシステムは、コンピュータ読取可能な記憶媒体に格納されているコードおよび／またはデータを読取って実行するとき、データ構造およびコードとして実施され上記コンピュータ読取可能な記憶媒体に格納されている方法およびプロセスを実行する。
【００１８】
さらに、本明細書に記載の方法およびプロセスは、ハードウェアモジュールまたは装置に含めることができる。これらのモジュールまたは装置は、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定のソフトウェアモジュールまたは１つのコードを特定の時間に実行する専用もしくは共有プロセッサ、および／または現在周知のまたは今後開発されるその他のプログラマブルロジックデバイスを含み得るが、これらに限定されない。ハードウェアモジュールまたは装置は、起動されると、そこに含まれている方法またはプロセスを実行する。
【００１９】
図１は、本発明の実施形態に従う分散型コンテンツ配信ネットワーク１００を示す。分散型コンテンツ配信ネットワーク１００は、ピア１０１およびピア１０２を含む。ピア１０１および１０２は、分散型コンテンツ配信ネットワーク１００上のノードとして機能する、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、および／または携帯情報端末等のネットワーク対応電子装置であってもよい。より具体的には、ピア１０１および１０２は、クライアントとしても、コンテンツを他のクライアントに供給する候補サーバとしても機能し得る。図１はまた、ディレクトリサーバ１０４、１０６および１０８と、ロギングサーバ１１０と、オリジンサーバ１１２とを含む。サーバ１０４、１０６、１０８、１１０および１１２は、分散型コンテンツ配信ネットワーク１００内のクライアント（たとえばピア１０１〜１０２）からの要求を処理する物理および／または仮想サーバであってもよい。
【００２０】
１つ以上の実施形態において、ピア１０１はコンテンツの要求をディレクトリサーバ１０４に送信する。このコンテンツは、ビデオ、音声、および／またはマルチメディア等のストリーミング媒体を含み得る。たとえば、ピア１０１は、プレゼンテーション、発表、社内会議、式典、演説、ニュース放送、および／またはスポーツイベント等のライブイベント中に、ビデオコンテンツのストリーミングを要求してもよい。代わりに、ピア１０１は、ディレクトリサーバ１０４に、ビデオおよび／または音声コンテンツをオンデマンドで要求してもよい。
【００２１】
ディレクトリサーバ１０４は、任意で、この要求をディレクトリサーバ１０６またはディレクトリサーバ１０８に転送またはリダイレクトしてもよい。１つ以上のディレクトリサーバ１０４〜１０８は、この要求を、サーバになり得る候補サーバのリストをピア１０１に返送することによって処理してもよい。なお、ピアは、コンテンツを要求するときはいつでも、そのコンテンツのサーバになり得る候補サーバになり、他のクライアントに転送される、サーバになり得る候補サーバのリストの中に出現するであろう。このサーバになり得る候補サーバのリストは、任意で、このコンテンツのオリジナルソースとして機能し得るオリジンサーバ１１２および／またはオリジナルソースからのコンテンツをミラーリングするサーバを特定してもよい。
【００２２】
ピア１０１は、このリストを用いて、ピア１０２、オリジンサーバ１１２、および／またはリスト中の別の候補サーバにコンテンツを要求してもよい。コンテンツの受信中に、ピア１０１は、受信したコンテンツの部分とピア１０１がコンテンツをダウンロードしようと試みたサーバとを含むフィードバック情報を、ロギングサーバ１１０に提供してもよい。その後、ロギングサーバ１１０は、このピア１０１からのフィードバック情報をディレクトリサーバ１０４に転送してもよく、ディレクトリサーバ１０４は、このフィードバック情報を用いてコンテンツの将来の要求を処理してもよい。図１の構成要素は、本明細書に引用により援用する、２００３年６月３０日に出願され発明者がWade L. HennesseyおよびJohn B. Wainwrightであり「Method and Apparatus for Establishing Peering Rules for Distributed Content Delivery」と題された同時係属中の非仮出願第１０／６１１，７８３号（代理人整理番号ＫＯＮ０３−０００３）に，さらに詳細に記載されている。
【００２３】
図２は、開示されている実施形態に従う分散型コンテンツ配信ネットワーク（たとえば図１の分散型コンテンツ配信ネットワーク１００）におけるブロードキャスト送信を容易にするためのシステムを示す。図２に示されるように、オリジンサーバ（たとえば図１のオリジンサーバ１１２）等のコンテンツソース２２２からコンテンツ２２４（たとえばビデオ、音声、マルチメディア等）が、ピアリーダー２０２および受信者ノード２０４を含む、分散型コンテンツ配信ネットワーク内の一組のノードに提供されてもよい。たとえば、コンテンツソース２２２からのコンテンツ２２４は、１つ以上のコンテンツストリーム（たとえばコンテンツストリーム２３６〜２３８）として、分散型コンテンツ配信ネットワーク内のノードに、ライブイベントから予め指定された遅れ（たとえば３０秒）を伴ってブロードキャストされてもよい。コンテンツ２２４はこのライブイベントから記録または生成されたコンテンツである。これに代えて、１つ以上のメディアファイルからのコンテンツ２２４が、分散型コンテンツ配信ネットワーク内の１つ以上のノードにオンデマンドでストリーミングされてもよい。
【００２４】
ピアリーダー２０２および受信者ノード２０４は、分散型コンテンツ配信ネットワーク内のピア（たとえば図１のピア１０１および１０２）であってもよい。たとえば、ピアリーダー２０２および受信者ノード２０４は各々、電子装置上で実行される固有メディア配信アプリケーションを含み得る。これは、コンテンツを分散型コンテンツ配信ネットワークから取得し、この電子装置のユーザに対して再生し、および／またはこのコンテンツを分散型コンテンツ配信ネットワーク内の他のノードに提供する。ピアリーダー２０２は、コンテンツソース２２２からおよび／またはピアリーダー２０２が存在するローカルネットワークの外部の別のコンテンツソースから、コンテンツストリーム２３６としてコンテンツ２２４を取得してもよい。そうすると、ピアリーダー２０２は、受信者ノード２０４を含む、ローカルネットワーク内の他のノードおよび／またはピアに、コンテンツストリーム２３６をブロードキャストしてもよい。コンテンツ２２４はローカルネットワークに対して１度だけ送信されればよいので、ローカルネットワークとコンテンツの送信元であるワイドエリアネットワーク（ＷＡＮ）との間における帯域幅消費が減少するであろう。
【００２５】
加えて、コンテンツストリーム２３６は、構造化された送信チェーンに沿って、ピアリーダー２０２から受信者ノード２０４およびローカルネットワーク内の他のノードに送信されてもよい。たとえば、ローカルネットワーク内の各ノードは、予め規定されている、８〜１２の他のノードに対する供給能力を有していてもよい。ノード（たとえば受信者ノード２０４）がコンテンツストリーム２３６を求めてピアリーダー２０２に接続すると、その後のピアリーダー２０２の供給能力は１つ減少するであろう。ピアリーダー２０２に供給能力が残っていなければ（たとえば最大数のノードがピアリーダー２０２に接続された後）、ピアリーダー２０２は、コンテンツストリーム２３６を供給する役割を、ピアリーダー２０２に接続されているノードに委託してもよい。そうすると、委託されたノードは、供給能力がなくなり他のノードに供給する役割をローカルネットワーク内の他のノードに委託するまでの、ローカルネットワーク内の他のノードに対する供給能力を、通知してもよい。したがって、以下図３に関連してさらに詳細に説明するように、ローカルネットワーク内のノードがツリー状構造を形成し、コンテンツストリーム２３６がこのツリー状構造を通して供給されてもよい。
【００２６】
１つ以上の実施形態において、ローカルネットワーク内のノード（たとえばピアリーダー２０２、受信者ノード２０４等）のメンバシップは、ネットワークホップ、ラウンドトリップタイム（round-trip time：ＲＴＴ）、および／またはローカルネットワーク内のパケット送信に関連するその他のネットワークの特徴に対する制限に基づいて、動的に決定されてもよい。たとえば、あるノードは、ローカルネットワーク内の他のすべてのノードに予め指定されたミリ秒数またはネットワークホップ数未満で到達できる場合に、このローカルネットワークに属し得る。したがって、このローカルネットワークは、個々のブロードキャストドメインに限定される従来の定義のローカルエリアネットワーク（ＬＡＮ）よりも、多くのノードおよび／またはネットワークコンポーネントを含み得る。たとえば、このローカルネットワークは、同一建築物内の、複数のブロードキャストドメイン、スイッチ、および／またはＬＡＮを含み得る。なぜなら、この建築物内の電子装置間においてネットワークパケットを全帯域幅で送信できるからである。
【００２７】
加えて、複数のローカルネットワークからノードに予め指定された時間および／またはホップ数以内で到達できる場合、このノードは２つ以上のローカルネットワークのメンバシップを有し得る。ノードを２つ以上のローカルネットワークに含めることができる場合、このノードは、参加するローカルネットワークを選択し選択したローカルネットワークを通してコンテンツ２２４を受信すればよい。逆に、ノードが、何らかの既存のローカルネットワーク内の他のすべてのノードに到達できない場合は、他のノードが参加するための別のローカルネットワークを形成してもよい。
【００２８】
ローカルネットワークの中で、ピアリーダー２０２は、一組のノードから、これらのノードの１つ以上のノード特徴（たとえばノード特徴２１４〜２１６）に基づいて選択されてもよい。より具体的には、ピアリーダー１０２、受信者ノード２０４、および／またはローカルネットワーク内のピアリーダー２０２の候補となり得るその他のノードは、それらのノード特徴を互いに共有していてもよく、ピアリーダー２０２、受信者ノード２０４、および／またはその他のノードの中のリーダーシップ管理装置２０６〜２０８は、最も優れたノード特徴を有するノードをピアリーダー２０２として選択してもよい。
【００２９】
たとえば、複数のピアは、ピアリーダー２０２が選択される前に、コンテンツストリーム（たとえばコンテンツストリーム２３６〜２３８）としてのコンテンツ２２４を、コンテンツソース２２２からおよび／または互いから取得してもよい。結果として、ピアリーダー２０２が、バッファのコンテンツ２２４占有量が最大である、ローカルネットワーク内のノードとして選択されてもよい。これは、ピアリーダー候補のバッファ内のコンテンツ２２４のバイト数および／または秒数によって決まる。これに代えてまたはこれに加えて、ピアリーダー２０２は、コンテンツソース２２２への直接または間接接続が最も長いことに基づいて特定されてもよい。これは、各ノードが最初にコンテンツソース２２２および／またはコンテンツソース２２２への経路を有する別のノードに接続された時間を表わすタイムスタンプによって決まる。一方、受信者ノード２０４はピアリーダー２０２として選択されない場合がある。なぜなら、受信者ノード２０４は、ピアリーダー２０２のノード特徴２１４と比較して、バッファ占有量が少ない、コンテンツソース２２２への接続が短い、および／またはピアリーダーシップとして望ましくないその他のノード特徴を有する場合があるからである。
【００３０】
２つ以上のノードが同一のノード特徴を有しこれがピアリーダー２０２のためのタイ（tie）を形成している場合、各ノード内のリーダーシップ管理装置は、別々のメカニズムを用いてこのタイを切断し１つのノードをピアリーダーとして選択してもよい。たとえば、このタイにおける各ノードのグローバル一意識別子（globally unique identifier：ＧＵＩＤ）と、コンテンツ２２４のメディアオブジェクト識別子（media object identifier：ＭＯＩＤ）との近さを計算し、コンテンツ２２４のメディアオブジェクト識別子（ＭＯＩＤ）に最も近いＧＵＩＤを有するノードをピアリーダー２０２として選択することにより、このタイを切断してもよい。
【００３１】
さらに、ピアリーダー２０２を特定するためのノード特徴（たとえばノード特徴２１４〜２１６）を選択することにより、ピアリーダー２０２選択後の安定性を維持してもよい。たとえば、バッファ占有量および／またはコンテンツソース２２２への接続時間に基づいてピアリーダー２０２を選択することにより、最近ローカルネットワークに参加したノードがピアリーダー２０２を引き継ぐことを防止してもよい。なぜなら、最近参加したノードが、ピアリーダー２０２よりも占有量が多いバッファを有するおよび／または接続時間が長いことは、まずないからである。
【００３２】
一方、ノード特徴２１４は、コンテンツソース２２２からのコンテンツ２２４の取得に関連する劣化が検出されたら、ピアリーダー２０２によってリセットされてもよい。たとえば、ピアリーダー２０２が、コンテンツ２２４の通常再生を維持するレートでコンテンツ２２４をコンテンツソース２２２から受信するのに十分な帯域幅を有していない場合、ピアリーダー２０２は、ピアリーダー２０２からコンテンツソース２２２への最初の接続時間を表わすタイムスタンプを現在の時間にリセットしてもよい。そうすると、既にコンテンツソース２２２に接続している他のいずれかのピアが、コンテンツソース２２２への最初の接続時間がより早いかもしれず、そのピアがピアリーダー２０２を引き継げばよい。一方、ローカルネットワーク内においてピアリーダー２０２がコンテンツソース２２２に接続されている唯一のピアである場合は、ピアリーダー２０２が引続きコンテンツソース２２２からコンテンツストリーム２３５を直接受信すればよい。
【００３３】
ピアリーダー２０２がノード特徴２１４に基づいて特定された後に、リーダーシップ管理装置２０６は、ピアリーダー２０２のリーダーシップステータス２１８を、ローカルネットワーク内の他のピアに通知してもよい。他のピアは、たとえば、ピアリーダー２０２からのコンテンツストリーム２３６の受信者として、異なるステータス２２０を有する受信者ノード２０４である。最初に、ピアリーダー２０２は、ステータス２１８を、ピアリーダー２０２と同じサブネット上のノードにブロードキャストしてもよい。ステータス２１８をローカルネットワーク内の他のサブネットに伝えるために、ピアリーダー２０２は、ステータス２１８を直接接続を介して各サブネットのクライアントに送信してもよく、このクライアントは、ステータス２１８をサブネットにブロードキャストすることによってサブネット内の他のノードに中継してもよい。
【００３４】
１つ以上の実施形態において、コンテンツソース２２２は、ピアリーダー２０２および／または分散型コンテンツ配信ネットワーク内の他のピアリーダーに、コンテンツ２２４をあるビットレート（たとえばビットレート１：２２６、ビットレートｘ：２２８）で提供する。たとえば、コンテンツソース２２２は、２４０ｐ、３６０ｐ、４８０ｐ、７２０ｐおよび／または１０８０ｐというビデオ品質に対応するビットレートでビデオコンテンツ２２４を提供してもよい。各ビットレートは異なるフォーマットＭＯＩＤに関連していてもよく、同一コンテンツ２２４に対する一群のビットレートが同一固有コンテンツＭＯＩＤに関連していてもよい。
【００３５】
ピアリーダー２０２内のブロードキャスト装置２１０は、コンテンツストリーム２３６のビットレート２３２を、コンテンツソース２２２からのコンテンツストリームの取得に関連する１つ以上の属性２３０に基づいて選択および／または調整してもよい。たとえば、ブロードキャスト装置２１０は、コンテンツ２２４を含むネットワークパケットを調べることにより、コンテンツソース２２２からのネットワークパケットの受信に関連するネットワークレイテンシ等の属性２３０を求めてもよく、および／またはコンテンツソース２２２からのネットワークパケットのバースト帯域幅テストを実施してもよい。ブロードキャスト装置２１０はまた、コンテンツストリーム２３６を含むバッファをモニタリングすることにより、バッファ占有量および／またはバッファ占有量の増減等のその他の属性２３０を求めてもよい。次に、ブロードキャスト装置２１０は、ネットワークレイテンシ、バースト帯域幅テストの結果、バッファ占有量、および／またはバッファ占有量の変化を用いて、コンテンツ２２４のバッファリングおよび／またはその他の再生不良を招かない最高の可能なビットレート２３２でコンテンツストリーム２３６が取得されるように、ビットレート２３２を選択してもよい。
【００３６】
ブロードキャスト装置２１０は、利用できる帯域幅および／またはその他の属性２３０の変化に応じてビットレート２３２を調整してもよい。たとえば、ピアリーダー２０２の利用できる帯域幅および／またはバッファ占有量が減少すると、コンテンツソース２２２からのビットレート２３２は、次に最も低いビットレートに低下し得る。一方、ピアリーダー２０２の利用できる帯域幅および／またはバッファ占有量が増加すると、コンテンツソース２２２からのビットレート２３２は、次に最も高いビットレートに増加し得る。このようなビットレート２３２の変更は、現在のビットレート２３２が予め指定された期間使用された後に行なうことにより、ビットレート２３２の頻繁な変更および／または帯域幅、レイテンシ、および／またはその他の属性２３０の一時的な変動によって、ビットレート２３２の変化が生じないようにしてもよい。たとえば、ピアリーダー２０２は、コンテンツストリーム２３６を選択されたビットレート２３２で予め指定された秒数の時間受信することで、コンテンツソース２２２との新たな接続を確立してもよい、および／またはブロードキャスト装置２１０がコンテンツストリーム２３６に対して他のビットレートを使用すべきか否か判断する前に、コンテンツストリーム２３６の一定量のデータをビットレート２３２で受信してもよい。
【００３７】
ブロードキャスト装置２１０によってビットレート２３２が変更されると、新たなビットレート２３２のコンテンツストリーム２３６のデータが、前のビットレートのコンテンツストリーム２３６のデータと同じバッファによって受信される。次に、バッファの異なるビットレートに従ってバッファの占有量を計算してもよい。たとえば、バッファは、３０秒のコンテンツストリーム２３６を含む場合にその占有量が最大であってもよい。ブロードキャスト装置２１０は、バッファ占有量が８００ｋｂ／ｓの２０秒のコンテンツストリーム２３６に減少すると、ビットレート２３２を８００ｋｂ／ｓから４００ｋｂ／ｓに下げてもよい。ビットレート２３２が２分の１になった後に、ブロードキャスト装置２１０は、２倍の秒数のコンテンツストリーム２３６を同一量のデータで受信し得る。すると、５秒後に、バッファは、２４秒のバッファ占有量に対し、１５秒の８００ｋｂ／ｓのコンテンツストリームと９秒の４００ｋｂ／ｓのコンテンツストリームを含むであろう。ビットレートが異なるデータを相互に区別しバッファ占有量を計算するために、ブロードキャスト装置２１０は、コンテンツストリーム２３６のデータのフォーマットＭＯＩＤを、フォーマットＭＯＩＤが示すビットレートと一致させてもよい。その後、ブロードキャスト装置２１０が予め指定された期間（たとえば１２秒）４００ｋｂ／ｓというビットレート２３２でバッファを最大占有量または最大に近い占有量に保つことができる場合、ブロードキャスト装置２１０は、ビットレート２３２を増して８００ｋｂ／ｓに戻すことを試みてもよい。ブロードキャスト装置２１０は、引続き８００ｋｂ／ｓのビットレート２３２を使用してもよく、その間、コンテンツストリーム２３６は、バッファを最大占有量または最大に近い占有量に保つのに十分素早く受信される。
【００３８】
上記のように、ピアリーダー２０２は、コンテンツストリーム２３６を、受信者ノード２０４および／または同一ローカルネットワーク内の他のノードにブロードキャストし得る。結果として、ピアリーダー２０２に接続されているすべてのノードは、それらのコンテンツストリーム（たとえばコンテンツストリーム２３８）を、コンテンツストリーム２３６と同じビットレート２３２で受信し得る。逆に、受信者ノード２０４および／またはローカルネットワーク内の他の受信者ノードは、ピアリーダー２０２および／または受信者ノードがアクセス可能な他のピアリーダーからコンテンツストリーム（たとえばコンテンツストリーム２３８）を受信するための最も有効なビットレート（たとえば最も有効なビットレート２３４）を選択し得る。たとえば、受信者ノード２０４が複数のローカルネットワークに参加できる場合および／または受信者ノード２０４がメンバーである１つのローカルネットワークが一時的に複数のピアリーダーを有する場合（たとえばリーダーシップ交渉中および／またはローカルネットワーク内のノード間のリーダーシップ変更中）、受信者ノード２０４は複数のピアリーダーを利用できるであろう。受信者ノード２０４は、ピアリーダーから提供される、受信者ノード２０４上でコンテンツ２２４の通常再生が可能な最高ビットレートとして、コンテンツストリーム２３８の最も有効なビットレート２３４を選択してもよい。
【００３９】
ピアリーダー２０２から提供されるビットレート２３２は受信者ノード２０４上での通常再生には高すぎる場合があることを、当業者は理解するであろう。たとえば、受信者ノード２０４はピアリーダー２０２よりも利用できる帯域幅が小さい場合があり、その結果、受信者ノード２０４上でピアリーダー２０２からのコンテンツストリーム２３６がダウンロードおよび再生されている間にバッファリングおよび／またはストールが発生する場合がある。一方、このようなバッファリングおよび／またはストールは、ピアリーダー２０２がコンテンツストリーム２３６をコンテンツソース２２２から十分に速いレートでダウンロードできないことに原因がある場合がある。受信者ノード２０４および／またはピアリーダー２０２がビットレート２３２をサポートできないことに関連する再生の問題を緩和するために、受信者ノード２０４は、同一のローカルネットワークおよび／または異なるローカルネットワークのピアリーダー２０２になることを試みてもよい。一方、上記のように、ピアリーダー２０２は、コンテンツソース２２２からのコンテンツ２２４の取得に関連する劣化を検出したときに（たとえば、受信者ノード２０４および／またはその他の受信者ノードに対する供給帯域幅がコンテンツストリーム２３６のビットレート未満になった場合）、ノード特徴２１４をリセットしてもよい。結果として、ピアリーダーシップは、ピアリーダー２０２がローカルネットワーク上で最も帯域幅が制限されたノードを表わすまで、ローカルネットワークで持ち回りされるかもしれず、その場合は、ピアリーダー２０２からのビットレート２３２およびコンテンツストリーム２３６をローカルネットワーク上のすべてのノードが使用できる。なぜなら、他のノードはピアリーダー２０２よりも帯域幅が大きいからである。
【００４０】
ローカルネットワーク内のノードが受信するコンテンツストリーム（たとえばコンテンツストリーム２３６〜２３８）はさらに、これらのノード上のプレーヤーに対し、コンテンツストリームのビットレート（たとえばビットレート２３２、最も有効なビットレート２３４）を通知せずに提供してもよい。たとえば、各ノードは、受信したコンテンツストリームのビットレートを、プレーヤーが再生できる非圧縮形式にコンテンツストリームをデコードすることによって、このノード上のプレーヤーから隠してもよい。その代わりに、ノードが、コンテンツストリームをこのノード上のプレーヤーに提供する前に、コンテンツストリームを標準ビットレートで再度符号化してもよい。結果として、分散型コンテンツ配信ネットワーク内のビットレート適応化は、プレーヤーレベルでの知識または入力なしで実施し得る。
【００４１】
このようなビットレート２３２の動的適応化によって、ピアリーダー２０２は、ローカルネットワーク内のピアリーダーシップを放棄せずにコンテンツソース２２２からのコンテンツ２２４の受信に関連するネットワークの問題を処理するためにピアリーダー２０２が利用できるその他の情報（たとえばネットワークレイテンシ、バッファ占有量等）を用いることができる。たとえば、ピアリーダー２０２は、ネットワークレイテンシの増加に応じてビットレート２３２を下げることにより、ピアリーダーシップの喪失につながり得る、コンテンツストリーム２３６の再生中のバッファリングおよび／またはストールを防止し得る。そうすると、ピアリーダー２０２による適応ビットレートストリーミングは、プレーヤーがネットワーク情報なしで実行する従来の適応ビットレートストリーミングよりも優れた再生体験を提供し得る。加えて、ピアリーダー２０２を選択するおよび／またはピアリーダー２０２に異議を唱えるメカニズムにより、ローカルネットワーク内の他のノードもピアリーダー２０２と同じビットレート２３２でコンテンツ２２４をストリーミングし再生できることを保証し得る。言い換えると、図２のシステムは、ピアベースの分散型コンテンツ配信ネットワークにおけるコンテンツ２２２のブロードキャスト中に適応ビットレートストリーミングを実行し得る。
【００４２】
図２のシステムはさまざまなやり方で実装し得ることを当業者は理解するであろう。具体的には、コンテンツソース２２２は多数のハードウェアおよび／またはソフトウェアコンポーネントによって提供し得る。たとえば、コンテンツソース２２２は、コンテンツ２２４のオリジナルソースとして機能する中央オリジンサーバ、中央オリジンサーバからのコンテンツ２２４のコピーを含むキャッシングオリジンサーバ、および／またはコンテンツ２２４をオリジンサーバおよび／または別のＷＡＮピアから取得しコンテンツ２２４をＷＡＮを通してピアリーダー２０２に提供するＷＡＮピアであってもよい。
【００４３】
加えて、ピアリーダー２０２、受信者ノード２０４、および／または分散型コンテンツ配信ネットワーク内の他のノードのコンポーネントは、一緒におよび／または別々に、１つ以上のハードウェアおよび／またはソフトウェアコンポーネントおよび／またはレイヤによって実装されてもよい。たとえば、リーダーシップ管理装置２０６およびブロードキャスト装置２１０は同一のハードウェアまたはソフトウェアコンポーネントによって提供されてもよく、または、リーダーシップ管理装置２０６およびブロードキャスト装置２１０は別々のコンポーネントによって実装されてもよい。
【００４４】
図３は、開示されている実施形態に従う分散型コンテンツ配信ネットワークのローカルネットワーク内の一組のノードに対してコンテンツを送信するための代表的な送信チェーンを示す。コンテンツは、コンテンツストリームとして、ローカルネットワークの外部のコンテンツソースから、ピアリーダー３０２によって取得されてもよい。次に、コンテンツストリームは、ピアリーダー３０２からローカルネットワーク内の一組のクライアント３０４〜３２０に、ローカルネットワーク内のすべてのノード上でコンテンツが同時にストリーミングおよび／または再生されるように、ブロードキャストされてもよい。
【００４５】
上記のように、ローカルネットワーク内の各ノードは、予め指定された供給能力を有していてもよい。たとえば、ピアリーダー３０２およびクライアント３０４〜３２０は、ローカルネットワーク内の最大３つの他のクライアントに供給するように構成されてもよい。ノードの供給能力が使い尽くされると、このノードは、自身が供給する１つ以上の他のノードに、それぞれの供給能力を通知するように命令することによって、コンテンツを供給する役割を他のノードに委託してもよい。したがって、ノードの供給能力を通知せよという命令は、ピアリーダー３０２から１つ以上のクライアント３０４〜３２０に対し、利用できる供給能力を有するノードにこの命令が達するまで、送信されてもよい。
【００４６】
図３に示されるように、ピアリーダー３０２は、ピアリーダー３０２の供給能力を受け継ぐ３つのクライアント３０４〜３０８にコンテンツを提供する。ピアリーダー３０２はこのように、１つ以上のクライアント３０４〜３０８に対し、それぞれの供給能力をローカルネットワーク内の他のノードに公表することを定期的に命令する。他のノードは、ローカルネットワークに最近参加したノードを含む。クライアント３０４〜３０８の供給能力が通知された後、クライアント３０４は、他の１つのクライアント３１０にコンテンツを供給し残りの供給能力を２としてもよい。この場合、クライアント３１０がコンテンツを供給する他のクライアントはゼロなので残りの供給能力は３である。クライアント３１０は、この供給能力を、２つ以上のクライアントがクライアント３０４に接続してコンテンツをクライアント３０４から取得した後に、通知してもよい。クライアント３０８は、コンテンツを他の１つのクライアント３２０に提供し残りの供給能力を２としてもよい。クライアント３０４および３０８は供給能力を有するので、クライアント３０４および３０８は引続きそれぞれの供給能力をローカルネットワークに通知することにより、ローカルネットワーク内の他のノードがこれらのクライアントに接続してコンテンツをこれらのクライアントから取得できるようにしてもよい。
【００４７】
クライアント３０６は、コンテンツを他の３つのクライアント３１２〜３１６に供給して残りの供給能力をゼロとしてもよい。したがって、供給能力の通知命令は、ピアリーダー３０２からクライアント３０６へ、さらにクライアント３１２〜３１６に送られるであろう。クライアント３１２〜３１６の供給能力が通知された後、クライアント３１６はコンテンツを他の２つのクライアント３１８〜３２０に供給して残りの供給能力を１としてもよく、クライアント３１２〜３１４および３１８〜３２０は各々最大供給能力である３を有し得る。なぜなら、クライアント３１２〜３１４および３１８〜３２０は現在コンテンツを他のノードに供給していないからである。
【００４８】
ピアリーダー３０２およびクライアント３０４〜３２０はこのようにしてグラフ状の送信チェーンを形成し得る。この送信チェーンに沿ってコンテンツソースからコンテンツが送信される。たとえば、ピアリーダー３０２は、コンテンツをコンテンツソースから取得しクライアント３０４〜３０８にブロードキャストすることにより、送信チェーンのルートとして機能し得る。クライアント３０４〜３０８がコンテンツを受信した後に、クライアント３０４はコンテンツをクライアント３１０にブロードキャストしてもよく、クライアント３０６はコンテンツをクライアント３１２〜３１６にブロードキャストしてもよく、クライアント３０８はコンテンツをクライアント３２０にブロードキャストしてもよい。クライアント３１６は、コンテンツをクライアント３０６から受信した後に、コンテンツをクライアント３１８〜３２０にブロードキャストしてもよい。クライアント３０２〜３２０のいずれのサブセットも別のクライアントに対する供給能力を有することを保証するために、各クライアントの供給は、このクライアントが使用するコンテンツのソースの数を上回っている必要があるであろう。たとえば、クライアント３２０はコンテンツを２つのクライアント３０８および３１６から受けるので供給能力は３以上であってもよい。したがって、送信チェーンにより、ローカルネットワーク内のすべてのノードは、コンテンツ要求でローカルネットワーク内の個々のノードが過負荷になることなく、コンテンツを受信できるであろう。
【００４９】
図４は、開示されている実施形態に従う分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするプロセスを説明するフローチャートを示す。より具体的には、図４は分散型コンテンツ配信ネットワーク内のノードを動作させるためのフローチャートを示す。１つ以上の実施形態において、ステップのうちの１つ以上が、省略されてもよく、繰返されてもよく、および／または異なる順序で実行されてもよい。よって、図４に示されるステップの特定の構成は、実施形態の範囲を限定すると解釈されるべきではない。
【００５０】
最初に、ノードを用いて、分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生する（動作４０２）。たとえば、ノードを用いて、ライブイベントの音声および／またはビデオを、ライブイベントから予め指定された遅れを伴って再生してもよい。次に、分散型コンテンツ配信ネットワークのローカルネットワーク内のピアリーダーとして、または、ピアリーダーからのコンテンツストリームの受信者として、ノードをこのノードのステータスに基づいて動作させてもよい（動作４０４）。ピアリーダーとして、またはピアリーダーからのコンテンツストリームの受信者として、ノードを特定することは、ノードおよび／または同一ローカルネットワーク内の他のノードによって実施されてもよく、このことについては以下図５との関連でより詳細に説明する。
【００５１】
ノードがピアリーダーである場合、このノードを用いてコンテンツストリームをコンテンツソースから取得する（動作４０６）。たとえば、ノードは、コンテンツストリームを、オリジンサーバおよび／またはノードのローカルネットワークの外部のＷＡＮピアから、ダウンロードしてもよい。次に、このノードを用いてコンテンツストリームをローカルネットワーク内の他のノードにブロードキャストする（動作４０８）。上記のように、コンテンツストリームは、ノードに直接接続されている他のノードの第１のサブセットにコンテンツストリームを送信することによって他のノードにブロードキャストしてもよい。次に、コンテンツストリームを、送信チェーンに沿って、他のノードの残りに中継してもよい。この送信チェーンは、サブセットと、第１のサブセットに直接または間接的に接続される他のノードの１つ以上の他のサブセットとを含む。
【００５２】
また、ノードを用いて、コンテンツソースからコンテンツストリームを取得することに関連する１つ以上の属性に基づいて、コンテンツストリームのビットレートを調整してもよい（動作４１０）。たとえば、コンテンツストリームのビットレートを、ネットワークレイテンシおよび／またはバッファ占有量等の属性に基づいて増減してもよい。次に、選択されたビットレートのコンテンツストリームを、ピアリーダーに直接または間接的に接続されている他のノードに提供すると、ピアリーダーに接続されているすべてのノードはコンテンツストリームを同一のビットレートで受信することになる。加えて、コンテンツストリームは、各ノード上のプレーヤーに対し、プレーヤーにビットレートを通知せずに、提供されてもよい。
【００５３】
逆に、ノードがピアリーダーからのコンテンツストリームの受信者である場合、ノードを用いて、ピアリーダーからおよび／またはノードがアクセスできる他のピアリーダーからコンテンツを受信するのに最も有効なビットレートを選択する（動作４１２）。たとえば、ノードは、ノードが参加できる１つ以上のローカルネットワーク内の１つ以上のピアリーダーから、ノード上でコンテンツストリームの通常再生を実施できる最も高い有効ビットレートを選択してもよい。
【００５４】
コンテンツストリームはノード上で継続的に再生されてもよい（動作４１４）。たとえば、コンテンツストリームは、ノードによって取得され、ノード上のコンテンツストリームの再生が停止されるまでおよび／またはコンテンツストリームの最後に達するまで、再生されてもよい。コンテンツストリームを再生しようとするとき、ノードのステータス（動作４０４）を用いてノードをピアリーダーとして動作させる（動作４０６〜４１０）、またはピアリーダーからのコンテンツストリームの受信者として動作させる（動作４１２）。このように、ノードは、コンテンツストリームの再生に使用されなくなるまで動作し得る。
【００５５】
図５は、開示されている実施形態に従う分散型コンテンツ配信ネットワーク内のノードのステータスを識別するプロセスを説明するフローチャートを示す。１つ以上の実施形態において、ステップのうちの１つ以上が、省略されてもよく、繰返されてもよく、および／または異なる順序で実行されてもよい。よって、図５に示されるステップの特定の構成は、実施形態の範囲を限定すると解釈されるべきではない。
【００５６】
最初に、ノードを用いて、このノードと同じローカルネットワーク内の１つ以上の他のノードからノード特徴の１つ以上の値を取得する（動作５０２）。たとえば、このノードおよび／または他のノードは、タイムスタンプを互いに共有してもよく、各タイムスタンプはそのノードにおけるコンテンツの受信期間（たとえばコンテンツストリームを含むコンテンツソースに対するノードの接続の長さ）を表わしてもよい。次に、ノードは、このノードおよび他のノードのノード特徴の値に基づいてピアリーダーとして選択される（動作５０４）。上記例を続けると、このノードは、コンテンツストリームをコンテンツソースから最も長い時間にわたって受信しているという理由でピアリーダーとして選択されてもよい。
【００５７】
ノードは、ピアリーダーとして選択された後に、ピアリーダーとしてのノードのステータスをブロードキャストするために使用される（動作５０６）。たとえば、ノードはそのピアリーダーとしてのステータスを、このピアリーダーと同一のサブネット内の他のノードにブロードキャストしてもよい。ノードはまた、そのピアリーダーとしてのステータスを、ローカルネットワークの他のサブネット上のクライアント等の、ローカルネットワークの１つ以上のサブネット上の１つ以上のクライアントに送信してもよい（動作５０８）。そうすると、クライアントは、ピアリーダーとしてのノードのステータスを、他のサブネット内の他のクライアントにブロードキャストすることにより、他のクライアントにピアリーダーのアイデンティティを通知してもよい。
【００５８】
最後に、ノードは、任意で、そのノード特徴の値を、コンテンツソースからのコンテンツストリームの取得に関連する劣化を検出したときにリセットしてもよい（動作５１０）。たとえば、ノードは、コンテンツストリームのビットレートを適応させてまたは適応させずに、コンテンツストリームの通常の（たとえば非不良）再生をサポートするレートでコンテンツソースからコンテンツストリームを取得できない場合、コンテンツソースに対するノードの最初の接続を表わすタイムスタンプを、現在の時間に設定してもよい。ノード特徴の値をリセットすることにより、ノードは（たとえばローカルネットワーク内のノード間で後におよび／または定期的リーダーシップが決定されるラウンド中）他のノードからピアリーダーを選択することを容易にし得る。
【００５９】
図６は、ある実施形態に従うコンピュータシステム６００を示す。コンピュータシステム６００は、プロセッサ６０２、メモリ６０４、記憶装置６０６、および／または電子コンピューティングデバイス内にあるその他のコンポーネントを含む。プロセッサ６０２は、コンピュータシステム６００内の他のプロセッサとの並列処理および／またはマルチスレッドオペレーションをサポートし得る。コンピュータシステム６００はまた、キーボード６０８、マウス６１０、およびディスプレイ６１２等の入出力（Ｉ／Ｏ）装置を含み得る。
【００６０】
コンピュータシステム６００は、本実施形態のさまざまなコンポーネントを実行する機能を含み得る。具体的には、コンピュータシステム６００は、コンピュータシステム６００上のハードウェアおよびソフトウェアリソースの使用を調整するオペレーティングシステム（図示せず）と、ユーザのための専用タスクを実行する１つ以上のアプリケーションとを含み得る。ユーザのためのタスクを実行するために、アプリケーションは、オペレーティングシステムから、コンピュータシステム６００上のハードウェアリソースの使用権を取得するとともに、オペレーティングシステムが提供するハードウェアおよび／またはソフトウェアフレームワークを通してユーザと対話してもよい。
【００６１】
１つ以上の実施形態において、コンピュータシステム６００は、分散型コンテンツ配信ネットワークにおけるブロードキャスト送信を容易にするシステムを提供する。このシステムは、分散型コンテンツ配信ネットワークを通して受信したコンテンツストリームを再生する、分散型コンテンツ配信ネットワーク内のノードを含む。このノードはリーダーシップ管理装置を含み得る。リーダーシップ管理装置は、上記ノードを、分散型コンテンツ配信ネットワークのローカルネットワーク内のピアリーダーとして、および／またはピアリーダーからのコンテンツの受信者として特定する。
【００６２】
上記ノードはまた、ブロードキャスト装置を含み得る。ノードがピアリーダーとして特定されると、ブロードキャスト装置は、コンテンツストリームをコンテンツソースから取得し、ローカルネットワーク内の他のノードにブロードキャストし、コンテンツストリームをコンテンツソースから取得することに関連する１つ以上の属性に基づいてコンテンツストリームのビットレートを調整してもよい。ノードがピアリーダーからのコンテンツストリームの受信者として特定されると、ブロードキャスト装置は、上記ピアリーダーからまたはローカルネットワーク内の１つ以上の他のピアリーダーからコンテンツを受信するための最も有効なビットレートを選択してもよい。
【００６３】
加えて、コンピュータシステム６００の１つ以上のコンポーネントは、遠隔場所に位置し他のコンポーネントにネットワークを通して接続されてもよい。また、本実施形態のそれぞれの部分（たとえばコンテンツソース、ノード、リーダーシップ管理装置、ブロードキャスト装置等）は、実施形態を実装する分散型システムの異なるノード上に位置していてもよい。たとえば、本実施形態はクラウドコンピューティングシステムを用いて実装されてもよく、このクラウドコンピューティングシステムは、一組の遠隔ノードの中からピアリーダーを識別し、このピアリーダーを、コンテンツストリームを遠隔コンテンツソースから取得し同一ローカルネットワーク内の他の遠隔ノードにブロードキャストしコンテンツソースからのコンテンツストリームの取得に関連する属性に基づいてコンテンツストリームのビットレートを調整するように、構成する。
【００６４】
これまでのさまざまな実施形態の記載は、例示と説明のみを目的としている。これらの記載は、本発明を余すところなく述べることまたは開示されている形態に限定することを意図しているのではない。したがって、数多くの修正および変形が当業者には明白であろう。加えて、上記開示は本発明を限定することを意図しているのではない。
【図１】
0006523447.tif 000002
【図２】
0006523447.tif 000003
【図３】
0006523447.tif 000004
【図４】
0006523447.tif 000005
【図５】
0006523447.tif 000006
【図６】
0006523447.tif 000007