(57)【要約】【課題】スケーラブルの分散型マルチメディアストリーミングシステム。【解決手段】システムは、メディアディレクタ、メディアエンジンを持つメディアステーションを用いる。メディアエンジンは、メディアコンテンツ記憶装置、ネットワークを介するメディアコンテンツの検索及びストリーミング用の通信チャンネルを含む。メディアディレクタのコントローラは、メディアエンジンによるメディアコンテンツの検索の指示、メディアエンジンに記憶したコンテンツの追跡、メディアステーションに接続したメディアコンソールからネットワークを介してストリーミング要求に対応するコンテンツを記憶するメディアエンジンへの、コンテンツ要求のリダイレクトをさせる。メディアステーションの全メディアコンテンツの位置を記憶する中央リポジトリとしてメディア位置レジストリを用いてネットワークを拡張するために複数のメディアステーションを用いる。【選択図】  図２
2005332373.tif 000002
【特許請求の範囲】
【請求項１】
スケーラブルの分散型マルチメディア・ストリーミング・システムであって、
メディア・ディレクタおよび複数のメディア・エンジンを有する少なくとも１つのメディア・ステーションを備え、
それぞれの前記メディア・エンジンは、
メディア・コンテンツを格納する手段と、
前記ネットワークを通じてメディア・コンテンツを取り出す手段と、
前記ネットワークを通じてメディア・コンテンツをストリーミングする手段と
を有するものであり、
前記メディア・ディレクタは、
選択されたメディア・エンジンによる前記ネットワークを通じてのメディア・コンテンツの取り出しを指令する手段と、
前記メディア・エンジンに格納されているコンテンツを追跡する手段と、
コンテンツ要求を、前記少なくとも１つのメディア・ステーションに接続されたメディア・コンソールから、ストリーミング要求に対応するコンテンツを格納する前記メディア・エンジンのうちの選択された１つへ、リダイレクトする手段と
を有するものであり、
それぞれのメディア・ステーションの前記メディア・ディレクタと通信し、かつ、前記メディア・ステーションにおける全ての前記メディア・コンテンツの前記位置を格納するメディア位置レジストリを備え、
呈示されるコンテンツをダウンロードする手段を備える、
スケーラブルの分散型マルチメディア・ストリーミング・システム。
【請求項２】
請求項１に記載のスケーラブルの分散型マルチメディア・ストリーミング・システムであって、コンテンツをダウンロードする前記手段は、
番組情報を前記メディア・ステーションへ提供するコンテンツ・マネージャと、
選択されたプロバイダからコンテンツをダウンロードするコンテンツ・エンジンと、
前記コンテンツ・エンジンによりダウンロードされたすべてのコンテンツを格納するためのホーム・メディア・ステーションと
を備える、
スケーラブルの分散型マルチメディア・ストリーミング・システム。
【請求項３】
請求項１に記載のスケーラブルの分散型マルチメディア・ストリーミング・システムであって、コンテンツを格納する前記手段は、同時の入力および出力を行うために複数の独立したＩ／Ｏチャネルを組み込む、スケーラブルの分散型マルチメディア・ストリーミング・システム。
【請求項４】
請求項１に記載のスケーラブルの分散型マルチメディア・ストリーミング・システムであって、更に、トークンを前記メディア・コンソールへ配給するため前記ネットワークを通じて通信する認証サーバを備えるスケーラブルの分散型マルチメディア・ストリーミング・システム。
【請求項５】
請求項１に記載のスケーラブルの分散型マルチメディア・ストリーミング・システムであって、前記メディア・ステーションは、複数のブレードを収納するシャーシを備え、第１のブレードは前記メディア・ディレクタとして機能し、複数のブレードはメディア・エンジンとして機能する、スケーラブルの分散型マルチメディア・ストリーミング・システム。
【請求項６】
請求項５に記載のスケーラブルの分散型マルチメディア・ストリーミング・システムであって、それぞれの前記ブレードは、通信エージェントを通じてネットワークと直接に通信し、前記システムは、更に、前記システムのすべてのコンポーネントに対するネットワーク管理システムを備える、スケーラブルの分散型マルチメディア・ストリーミング・システム。
【請求項７】
請求項５に記載のスケーラブルの分散型マルチメディア・ストリーミング・システムであって、それぞれの前記ブレードは、メディア・エンジンおよびメディア・ディレクタの機能のためにメイン・ボードおよび前記メディア・ステーションのシャーシ・バックプレーンを通じて通信するシャーシ・ブレード・コントローラを備える、スケーラブルの分散型マルチメディア・ストリーミング・システム。
【請求項８】
請求項２に記載のスケーラブルの分散型マルチメディア・ストリーミング・システムであって、更に、複数のメディア・ステーションを備えるスケーラブルの分散型マルチメディア・ストリーミング・システム。
【請求項９】
スケーラブルの分散型マルチメディア・ストリーミングを行う方法であって、
通信ネットワークを提供するステップと、
前記ネットワークにメディア・ディレクタおよび複数のメディア・エンジンを備える少なくとも１つのメディア・ステーションを接続するステップと、
メディア位置レジストリを提供するステップと、
呈示されるコンテンツをダウンロードするステップと、
それぞれのメディア・ステーションにおけるメディア・ディレクタへメディア位置レジストリから、配給される前記コンテンツを通信するステップと、
前記メディア・ステーションのメディア・ディレクタを通じて、前記ネットワークを通じての少なくとも１つの選択されたメディア・エンジンによるメディア・コンテンツの独立した取り出しを指令するステップと、
選択された前記メディア・エンジンに前記メディア・コンテンツを格納するステップと、
前記メディア・ディレクタの前記メディア・エンジンに格納されたコンテンツを追跡するステップと、
前記メディア・ステーションのすべてのメディア・コンテンツの位置を前記メディア位置レジストリに格納するステップと、
コンテンツ要求を、前記ネットワークを通じて、前記メディア・ステーションに接続されているメディア・コンソールから、ストリーミング要求に対応するコンテンツを格納する前記メディア・エンジンのうちの選択された１つへ、リダイレクトするステップと、
前記ネットワークを通じて、選択された前記メディア・エンジンから前記メディア・コンソールへ、メディア・コンテンツをストリーミングするステップと
を備える方法。
【請求項１０】
請求項９に記載の方法であって、複数のメディア・ステーションを採用するものであり、コンテンツをダウンロードする前記ステップは、
番組のメタデータをコンテンツ・マネージャへ転送するステップと、
前記番組データをホーム・メディア・ステーションへ転送することをコンテンツ・エンジンに指令するステップと、
前記番組の状態を「非アクティブ」へと更新し、前記コンテンツ・マネージャにパブリッシュ時間を指定するステップと、
配給パラメータを前記メディア位置レジスタへ送信するステップと、
前記番組を配給するステップと、
前記番組のサービスを開始するために、パブリッシュ時間に前記メディア・ステーションへ「パブリッシュ」コマンドを送信ステップと
を備える、
方法。
【請求項１１】
請求項１０に記載の方法であって、前記番組を配給する前記ステップは、
前記コンテンツが存在しているソース・メディア・ステーションを識別することを含めて、前記番組を取得することを、要求側のメディア・ステーションの前記メディア・ディレクタに指令するステップと、
前記ソース・メディア・ステーションの前記メディア・ディレクタに、必要とされる前記セグメントの前記位置を要求するステップと、
選択されたメディア・エンジンの前記セグメントの位置を前記要求側のメディア・ディレクタに通知するステップと、
前記要求側のメディア・ディレクタにより、選択された前記メディア・エンジンから前記セグメントをフェッチすることを要求側のメディア・ステーションの受信メディア・エンジンに指令するステップと、
選択された前記メディア・エンジンに前記セグメントのコピーを要求するステップと、
選択された前記メディア・エンジンから前記受信メディア・エンジンへ前記セグメントを転送するステップと、
前記セグメントのコピーが完了したことを前記要求側のメディア・ディレクタに通知するステップと、
前記位置データベースへ加えるために前記セグメントの新しい位置を前記メディア位置レジスタに通知するステップと
を備える、
方法。
【請求項１２】
請求項１１に記載の方法であって、前記ソース・メディア・ステーションは前記ホーム・メディア・ステーションである、方法。
【請求項１３】
請求項１０に記載の方法であって、前記メディア・コンソールにより要求されたコンテンツが前記メディア・ステーション上に存在せず、
前記メディア・ディレクタを通じてストリーミング要求を受信するステップと、
要求された前記番組またはセグメントの位置を前記メディア位置レジストリに問い合わせるステップと、
前記メディア位置レジストリから、前記セグメントの位置を応答するステップと、
前記メディア・ディレクタによりソース・メディア・ステーションを選択するステップと、
前記ソース・メディア・ステーションにおけるメディア・ディレクタに前記セグメントの前記位置を要求するステップと、
前記セグメントを持つソース・メディア・エンジンのアドレスを応答するステップと、
選択されたターゲット・メディア・エンジンに、前記セグメントをフェッチすることを指令するステップと、
ターゲット・メディア・エンジンにより、ソース・メディア・エンジンに前記セグメントのコピーを要求するステップと、
前記セグメントを前記ターゲット・メディア・エンジンへ送信するステップと、
前記コピーの完了を前記メディア・ディレクタに通知するステップと、
前記セグメントの新しい位置を前記メディア位置レジスタに通知するステップと
を備える方法。
【請求項１４】
請求項１３に記載の方法であって、ソース・メディア・ステーションを選択する前記ステップは、更に、
所望される前記セグメントが格納されている複数の位置が存在し得ることを識別するステップと、
利用可能な帯域幅、ソース・メディア・ステーションからの距離、コピー時間および前記ソース・メディア・ステーションの負荷を含むいくつかのパラメータに基づいて、所望される前記セグメントのコピーを取得する相対的コストを計算するステップと
を備える、
方法。
【請求項１５】
請求項９に記載の方法であって、コンテンツ要求をリダイレクトする前記ステップおよびディア・コンテンツをストリーミングする前記ステップは、
前記メディア・コンソールから前記メディア・ディレクタによる第１のセグメントに対する要求を受信するステップと、
セグメント位置テーブルにおいて前記第１のセグメントの位置を識別するステップと、
第１のメディア・エンジンのＩＰアドレスに対して前記メディア・コンソールをリダイレクトするステップと、
前記第１のメディア・エンジンに前記第１のセグメントを要求するステップと、
前記第１のメディア・エンジンからデータをストリーミングするステップと、
ストリーミング中の前記セグメントが終わりに近づくとそのことを検出するステップと、
前記メディア・ディレクタに次のセグメントの位置を要求するステップと、
前記セグメント位置テーブルにおいて前記次のセグメントの位置を特定するステップと、
前記次のセグメントのＩＤおよび前記次のセグメントが置かれている第２のメディア・エンジンのＩＰアドレスを応答するステップと、
前記次のセグメントを事前ロードすることを前記第２のメディア・エンジンに通知するステップと、
前記第１のセグメントのストリーミングを完了すると、前記メディア・コンソールの前記ＩＰアドレスに対して前記次のセグメントのストリーミングを開始することを前記第２のメディア・エンジンに指令するステップと、
前記第２のメディア・エンジンから前記メディア・コンソールへ前記次のセグメントのデータをストリーミングするステップと、
前記第２のメディア・ステーションにより前記メディア・コンソールとの前記ストリームの通信を引き受けると、前記メディア・ディレクタに通知を行うステップと
を備える、
方法。
【請求項１６】
請求項１５に記載の方法であって、前記セグメントが終わりに近づくとそのことを検出する前記ステップから、前記メディア・ディレクタに通知を行う前記ステップは、前記メディア・コンソールが、前記メディア・エンジンによるストリーミングの停止を指令するまで繰り返され、停止したときに、前記メディア・エンジンは、前記ストリーミングが停止したことを前記メディア・ディレクタに通知する、方法。
【請求項１７】
請求項１５に記載の方法であって、前記セグメント位置テーブルは、前記セグメントが格納された複数のメディア・エンジンを識別するものであり、位置を識別する前記ステップは、負荷およびステータスに基づいてメディア・エンジンを選択するステップを含む、方法。
【請求項１８】
請求項１５に記載の方法であって、前記第１のメディア・エンジンは、第２のメディア・コンソールが同じセグメントのストリーミングを要求したときに所定の最大容量に達しており、更に、
前記セグメントをフェッチすることを第３のメディア・エンジンに指令し、複製される前記セグメントをもつ第４のメディア・エンジンを指定するステップと、
前記第３のメディア・エンジンにより、前記第４のメディア・エンジンに前記セグメントのコピーを要求するステップと、
前記第４のメディア・エンジンから前記セグメントを送信するステップと、
前記第２のメディア・コンソールに応答して、前記第３のメディア・エンジンの前記ＩＰアドレスに対してリダイレクトするステップと、
第２のメディア・コンソールにより前記ストリーム再生を要求するステップと、
第３のメディア・エンジンにより応答し、前記セグメントに対するデータを前記第２のメディア・コンソールへ転送するステップと
を備える方法。
【請求項１９】
請求項１８に記載の方法であって、更に、
前記第４のメディア・エンジンから前記第２のメディア・エンジンへの前記セグメントのコピーが完了すると、コピー完了を前記第３のメディア・エンジンから前記ＭＤへ送信するステップと、
前記セグメントの新しい位置を前記ＭＬＲに通知するステップと
を備える方法。
【請求項２０】
請求項１５に記載の方法であって、前記メディア・ディレクタは、前記第１のセグメントをフェッチすることを前記第１のメディア・エンジンにすでに指令しており、リダイレクトする前記ステップは、前記セグメントを受信する間に行われ、前記第１のメディア・エンジンからデータをストリーミングする前記ステップは、更に、
前記メディア・コンソールから前記ストリームの早送り要求を受信するステップと、
早送りが前記メディア・エンジンにより受信された前記セグメントの部分を超えた場合のストリーミング・エラーの可能性を識別するステップと、
差し迫っているエラー状態を前記メディア・ディレクタに通知するステップと、
前記メディア・エンジンに、前記セグメント全体を持つ第３のメディア・エンジンのＩＤを応答するステップと、
現在の通信における前記メディア・コンソールを識別するスワップを前記第３のメディア・エンジンに要求するステップと、
前記第３のメディア・エンジンにより、前記セグメントからのデータをメディア・コンソールにストリーミングするステップと
を備える、
方法。
【請求項２１】
請求項２０に記載の方法であって、前記第３のメディア・エンジンもまたストリーミングを行っており、更に、
通信している第２のメディア・コンソールを識別するスワップを前記第３のメディア・エンジンから返すステップと、
前記第１のメディア・エンジンにより、データを前記第２のメディア・コンソールへストリーミングするステップと
を備える方法。
【請求項２２】
請求項９に記載の方法であって、更に、リダイレクトする前記ステップの前に、
前記メディア・コンソールにより、ネットワーク上のセキュリティ認証サーバにセキュリティ・トークンを要求するステップと、
前記メディア・コンソールに対する加入者認証の確認ステップと、
前記加入者認証に基づいて前記セキュリティ・トークンを発行するステップと
を備え、
リダイレクトする前記ステップは、更に、
前記メディア・コンソールから前記セキュリティ・トークンを受信するステップと、
前記ストリーミング要求に関して前記セキュリティ・トークンを確認するステップと
を備える、
方法。
【請求項２３】
請求項１１に記載の方法であって、更に、
認証サーバによりそれぞれのメディア・エンジンを認証するステップと、
第２のセキュリティ・トークンをそれぞれの認証されたメディア・エンジンへ供給するステップと
を備え、
前記セグメントのコピーを要求する前記ステップは、
受信側のメディア・エンジンから前記第２のセキュリティ・トークンを受信するステップ
を備える、
方法。
【請求項２４】
請求項１３に記載の方法であって、更に、
認証サーバによりそれぞれのメディア・エンジンを認証するステップと、
第２のセキュリティ・トークンをそれぞれの認証されたメディア・エンジンへ供給するステップと
を備え、
前記セグメントのコピーを要求する前記ステップは、
ターゲット・メディア・エンジンから前記第２のセキュリティ・トークンを受信するステップ
を備える、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、分散型マルチメディア・ストリーミングの分野に関するものであり、より具体的には、分散型コンポーネントからの高ビット・レート・ストリーミングのためのメディア・コンテンツ配給に関するものである。
【背景技術】
【０００２】
高ビット・レート・マルチメディア・ストリーミング、特に、高ビット・レート・ビデオ・ストリーミングは、数千の加入者に同時に対処することから数百万の加入者に対処するように発展している。単一の強力なマシンまたは中央制御を用いるクラスタ・システムに基づく従来のシステム・アーキテクチャでは、もはや、大規模な需要に応えられない。
【発明の開示】
【課題を解決するための手段】
【０００３】
スケーラブル分散型マルチメディア・ストリーミング・システムは、１つのメディア・ディレクタおよび複数のメディア・エンジンを備える少なくとも１つのメディア・ステーションを採用する。それぞれのメディア・エンジンは、メディア・コンテンツ用記憶装置、ネットワークを通じてメディア・コンテンツを取り出すための通信チャネル、およびネットワークを通じてメディア・コンテンツをストリーミングするための通信チャネルを組み込んでいる。メディア・ディレクタは、選択されたメディア・エンジンによるネットワークを通じてのメディア・コンテンツの取り出しを指令するため、メディア・エンジンに格納されたコンテンツを追跡するため、および、メディア・ステーションに接続されたメディア・コンソールから要求されたコンテンツを、ストリーミング要求に対応するコンテンツを格納するメディア・エンジンのうちの選択された１つのメディア・エンジンへリダイレクトするために適合されたコントローラを備える。複数のメディア・ステーションがネットワークの拡張のため採用され、それぞれのメディア・ステーションのメディア・ディレクタと通信するメディア・ロケーション（位置）・レジストリを使用する。メディア位置レジストリは、メディア・ステーションのすべてのメディア・コンテンツの位置情報を格納するための中央リポジトリである。その後、ダウンロードされたコンテンツは、メディア・ステーションにより、ネットワークを通じて接続されているメディア・コンソールに呈示すことができ、また、コンテンツの転送のためのメディア・ステーション間の相互通信も、ネットワークを通じて行うことができる。
【０００４】
本発明のこれらおよびその他の特徴および利点は、付属の図面を考察して以下の詳細な説明を参照することにより、よく理解できるであろう。
【発明を実施するための最良の形態】
【０００５】
本発明を組み込むメディア・コンテンツ配給システムは、一群の加入者をカバーするメディア・ステーションと称された自立型のストリーミング・ユニットを採用する。通常のアプリケーションにおけるメディア・ステーションは、加入者が接続されるブロードバンド・ネットワークの中央局（ＣＯ）にインストールされる。メディア・ステーションの配置は、カバーされる加入者の数、ネットワーク・トポロジ、およびネットワークの利用可能な帯域幅に応じて決定される。
【０００６】
一実施例について図１に示されているように、それぞれのメディア・ステーション１０２は、ＥＰＧサーバ１０６およびアプリケーション・サーバ１０８を備えるメディア・ディレクタ１０４を組み込み、加入者からのストリーミングおよびトリック・モードの要求を処理する。データ記憶用に、ハイパー・メディア・ファイル・システム（ＨＭＦＳ）１１０が組み込まれる。アクティブなディレクタが故障するか、または稼働を停止した後にその役割を受け持つように、同じ能力を備えるスタンバイ・メディア・ディレクタ１０４Ｓが用意される。メディア・ステーションには、複数のメディア・エンジン１１２が存在する。メディア・ディレクタは、システム内のすべての番組の位置と、何れのメディア・エンジンが特定の番組またはその一部分を保持しているかとを、記録する。加入者のメディア・コンソールからの通信を受け取ると、メディア・ディレクタは、メディア・コンソールを適切なメディア・エンジンへ誘導してデータ・ストリーミングを開始する。大容量記憶サイズの要求およびＩ／Ｏデータ・レートの要求に応じるために、多数の独立したパラレルのＩ／Ｏチャネル１１６を使用するために、分散型記憶装置サブシステム（図に示されている実施形態では、ＨＭＦＳ）１１４がそれぞれのメディア・エンジンに存在する。一組のギガビット・イーサネット（Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ）スイッチ１１８を通じて、複数のメディア・エンジンが共に接続され、かつ、ネットワーク１２０に接続され、加入者と通信する。ネットワークと加入者およびＩ／Ｏチャネルの間の帯域幅を整合させることで、ストリーミング・システムにおけるボトルネックが回避される。
【０００７】
それぞれのメディア番組（映画、ドキュメンタリ、ＴＶ番組、音楽クリップなど）は、より小さなセグメントに分割される。このような分割によって、メディア・データ・ユニットの粒度が小さくなり、データの移動、複製、ステージング、および管理が更に容易になり且つ効率的になる。
【０００８】
図２は、サービスが提供される多数の地理的領域または都市２０２で使用されるように構成されている複数のグループのメディア・ステーションを組み込むメディア・スイッチと称されたネットワーク・システムの一実施形態を説明している。メディア・スイッチの完全な説明は、ここで参照により本明細書に内容全体が組み込まれる、本出願と共通の譲受人をもつ「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＭＥＤＩＡ  ＣＯＮＴＥＮＴ  ＤＩＳＴＲＩＢＵＴＩＯＮ  ＩＮ  Ａ  ＤＩＳＴＲＩＢＵＴＥＤ  ＭＵＬＴＩＭＥＤＩＡ  ＳＴＲＥＡＭＩＮＧ  ＳＹＳＴＥＭ（分散型マルチメディア・ストリーミング・システムにおけるメディア・コンテンツ配信のための方法および装置）」という題の随伴する出願（代理人ドケット番号Ｕ００１  １０００８４）において開示されている。本発明を採用するシステムのスケーラビリティは、図２で説明されている。それぞれの都市は、大都市圏ネットワーク（ＭＡＮ）２０４を通じて相互接続された一連のメディア・ステーション１０２を採用する。それぞれのメディア・ステーションは、メディア・コンソール２０６を有する多数の加入者にサービスを提供する。それぞれの加入者は、ストリーミング要求を処理するための一次メディア・ステーションを持つ。更に、それぞれの都市は、データ・センター（ＤＣ）２１４に、メディア位置レジストリ（ＭＬＲ）２０８と、ホーム・メディア・ステーション２１０と、コンテンツ・マネージャ（ＣＭ）２１２とを含む、オンライン・サポート層エレメントを組み込む。図に示されている実施形態では、主要都市２０２’が本部所在地として選択されている。そのサイトには、メディア資産管理（ＭＡＭ）システム１２４が関連付けられている。他の実施形態では、複数の都市が、コンテンツをシステムへ導入するためにＭＡＭを組み込む。
【０００９】
ＭＡＭは、番組の配給の時期と場所とを決定する。ＣＭは、ＭＡＭによって指定された時間に番組をパブリッシュし、ＭＬＲは、配給のためのデータの位置を識別する。
【００１０】
コンテンツをストリーミングで加入者へ配給するために、各メディア・ステーションのメディア・ディレクタは、負荷バランス化スキームを採用して、メディア・ステーションのメディア・エンジンのタスク負荷を追跡する。負荷のバランスは、現在のシステム状態および負荷の分布に応じてストリーミング要求を割り当てることにより実行される。メディア・ディレクタのコマンドの下でのデータ転送のための通信シーケンスの一例が、システム・エレメントの代表的なＩＰアドレス位置とともに図３ａに示されている。メディア・コンソール（ＭＣ）２０６は、メディア・ディレクタ（ＭＤ）１０４にセグメント００２１を要求する（３０２）。メディア・ディレクタは、セグメント位置テーブル３０４においてセグメントの位置を、メディア・エンジン１および８（ＭＥ１およびＭＥ８）に存在しているものとして識別し、ＭＣをＭＥ１のＩＰアドレス１０．０１．１．１１へリダイレクトする（３０６）。その後、ＭＣは、ＭＥ１にセグメント００２１を要求し（３０８）、ＭＥ１は、データのストリーミングを開始する（３１０）。ストリーミングされているセグメントがその終わりに近づくと、ＭＥ１は、次のセグメントの位置をＭＤに要求し（３１２）、ＭＤは、セグメント位置テーブルにおいて、次のセグメントと、そのセグメントを格納しているＭＥとの位置を見つけ、負荷およびステータスに基づいてＭＥを選択し、次のセグメントのＩＤ（ｓｅｇ００２２）と、次のセグメントが置かれているＭＥ２のＩＰアドレス１０．０．１．１２とを応答する（３１４）。ＭＥ１は、次のセグメントｓｅｇ００２２をプリロードすることをＭＥ２に通知し（３１６）、ｓｅｇ００２１のストリーミングが完了すると、ＩＰアドレス１８．０．２．１５、つまりメディア・コンソールへのｓｅｇ００２２のストリーミングを開始するようにＭＥ２に指令する（３１８）。その後、ＭＥ２は、ｓｅｇ００２２からのデータをＭＣへストリーミングすることを開始する（３２０）。
【００１１】
図３ａに関して説明されたシーケンスの流れ図は、図３ｂ内に示されている。ＭＥ２によりＭＣとのストリームの通信が引き受けられると、ＭＥ２は、通知をＭＤへ送信する（３２２）。説明されているプロセスは、ＭＣが、ＭＥによるストリーミングの停止を指令する（３２４）まで続き、そうされた時に、ＭＥは、ストリーミングを停止したことをＭＥに通知する（３２６）。メディア・ディレクタは、多数のＭＥを使用して、セグメントを順番にメディア・コンソールへ供給することができる。コンテンツおよび負荷に基づくＭＥの割り当ての柔軟性により、ＭＤはＭＥの動作のバランスをとることができる。
【００１２】
負荷バランス化スキームの一部として、セグメントを一つのメディア・エンジンから他のメディア・エンジンにコピーするために高速複製スキームが使用される。メディア・エンジンがそのストリーミングの容量を超えた場合、要求の度合いの高いセグメントが他のメディア・エンジンに複製されるようにでき、更に、そのセグメントに対する要求は新しいメディア・エンジンへ向けられる。複製を引き起こさせたストリーミング要求に起因しての観察される余分な遅延時間は、例示の実施形態では３０ミリ秒より下である。
【００１３】
通信シーケンスが図４に示されている。第１のメディア・コンソールＭＣ１は、メディア・ディレクタＭＤへセグメントのストリーミングを要求する（４０２）。ＭＤは、そのセグメントを格納しているメディア・エンジンＭＥ１へリダイレクトすることで応答する（４０４）。ＭＣ１は、ＭＥ１にストリームの再生を要求し（４０６）、ＭＥ１は、セグメントからのデータのＲＴＰパケットをストリーミングすることにより応答する（４０８）。ＭＤは、ＭＥ１へのリダイレクトをカタログ化しており、且つＭＥ１の負荷を監視する。ＭＥ１が所定の最大しきい値（最大容量の或る割合）に達した場合には、他のメディア・コンソールＭＥｎが同じセグメントのストリーミングを要求する（４１０）と、セグメント位置テーブルにおいて他の利用可能なＭＥにそのセグメントが存在していなければ、ＭＤは、セグメントをフェッチするように他のメディア・エンジンＭＥ２に指令し（４１２）、その複製の元となるセグメントを有するＭＥを指定する。さまざまな実施形態において、最大しきい値は、第１のメディア・エンジンまたはセグメント位置テーブルにおける他の既存のメディア・エンジンから複製が実行されるように、決定されることが可能である。代替例としては、図７に関して説明されているように、フェッチ・コマンドで、他のメディア・ステーションのメディア・エンジンからセグメントのコピーすることを指令できる。例えば、ＭＤにより定められたソース・メディア・エンジンは、ＭＥｘと表される。ＭＥ２は、ＭＥｘにセグメントのコピーを要求し（４１４）、ＭＥｘは、セグメントを送信することにより応答する（４１６）。フェッチが指令されると、ＭＤは、ＭＣｎに返答し（４１８）、ＭＥ２のＩＰアドレスへリダイレクトするようにする。次に、ＭＣｎは、ストリームの再生を要求し（４２０）、ＭＥ２は、応答してそのセグメントのＲＴＰパケットをＭＣｎへ送る（４２２）。すでに説明されているように、ＭＥｘからＭＥ２へのセグメントのコピーが完了したら、ＭＥ２は、コピー完了をＭＤへ送信し（４２４）、ＭＤはＭＬＲにそのセグメントの新しい位置を通知する。
【００１４】
同じセグメントの２つのストリームを交換するために、ストリーム・スワッピング法が使用され、一方は、セグメントの完全なコピーを持つ第１のメディア・エンジンＭＥ２にあり、他方は、同じセグメントを現在受信中の第２のメディア・エンジンＭＥ１にある。加入者が、ＭＥ１からのストリーミングに不完全なセグメントが含まれるときに早送りを試みた場合、メディア・ディレクタは、ＭＥ１からＭＥ２（完全なセグメントを持つ）へその早送りをスワップする。通常速度で実行される同じセグメントを使用するストリームは、第１のメディア・エンジンから第２のメディア・エンジンへとスワップされ、それによって、早送りオペレーションの失敗を回避する。
【００１５】
図５は、メディア・エンジンのスワッピングのための通信シーケンスを例示している。通常動作では、メディア・ディレクタＭＤは、特定のセグメントをフェッチすることをＭＥ１に指令する（５０２）。ＭＥ１は、セグメントのコピーをソースＭＥ（ＭＥｘと任意に示す）に要求し（５０４）、ＭＥｘは所望されたセグメントを送信することにより応答する（５０６）。セグメントを受信している間に、メディア・コンソールＭＣ１は、ＭＤにストリームを要求し（５０８）、ＭＤは、ＭＣをＭＥ１にリダイレクトすることで応答する（５１０）。ＭＣ１は、ストリームの再生を要求し（５１２）、ＭＥ１は、要求されたセグメントからのＲＴＰパケットを送信することにより応答する（５１４）。ＭＣ１がストリーム（セグメント）の早送りを要求（５１６）した場合、ＭＥ１は、その早送りが、ＭＥｘから受信されたセグメントの部分を超える場合のストリーミング・エラーの発生の可能性を識別する。ＭＥ１は、今起こりそうなエラー状態をＭＤに通知し（５１８）、ＭＤは、アイドル状態であるか又はＭＥ１の後にストリーミングを開始したセグメント全体を持つメディア・エンジンＭＥ２（ＭＥｘ自体とすることもできる）のＩＤを応答する。ＭＥ２は、セグメントのＲＴＰパケットを他のメディア・コンソールＭＣｎへストリーミングで送信している（５２０）。ＭＥ１は、スワップを要求し（５２２）、このスワップは、現在の通信におけるメディア・コンソールとしてＭＣ１を識別し、セグメント番号およびセグメント内のフレームを提供する。ＭＥ２は、ＭＣへセグメントからのデータのストリーミングを開始し（５２４）、ＭＥ２がストリーミングされている場合には、メディア・コンソールＭＣｎおよびセグメントのフレームを識別するスワップを返す（５２６）。ＭＥ１は、ＭＣｎへのＲＴＰパケットのストリーミングを受け継ぐ（５２８）。
【００１６】
メディア・ステーションのメディア・エンジンは、入力と出力とに関して対称的であり、そのため、ストリーミング・データが送出されるのと実質的に変わらない速度でデータをメディア・エンジン内に取り込むことができる。図６に示されているように、それぞれのメディア・エンジンは、複数の記憶装置ドライブ６０２を備えるＨＭＦＳを採用する。コンテンツ番組、例えば、映画は、一連のセグメントに分割される。それぞれのセグメントは、数分、例えば４分間のコンテンツを表す。それぞれのメディア・ステーションでは、フォールト・トレランスのために、セグメントは少なくとも２つのメディア・エンジンに格納される。それぞれのメディア・ステーションのメディア・ディレクタは、そのメディア・ステーションにより保持されている各セグメントの位置を含むデータベースを有し、これはＨＭＦＳの最上位レベルのディレクトリである。セグメント毎に、ディレクトリ・エントリは、データ・サイズ、フレーム・カウント、フレーム・インデックス、キー・フレーム（またはＩフレーム）・インデックス、フレーム間の時間間隔、メディア・タイプ（ＭＰＥＧ２、ＭＰＥＧ４、ＷＭ９、Ｈ．２６４など）、記録時間、セグメントのデータを保持するディスク・ブロックへのポインタなどの情報を含む。
【００１７】
セグメント内のデータは、最小ディスクＩ／Ｏ単位およびバッファ割振単位である「データレット（ｄａｔａｌｅｔ）」に分割される。出力ストリーム（ＭＣへ送られるストリーム）毎に、そのストリームのデータレットを事前フェッチするために、ドライブ・ユニットからバス６０６に接続されている多数のバッファ６０４が使用される。データレットは、メディア・エンジンのディスク・ドライブ（図６に示されている実施形態では４つのドライブ）に分配されるので、多数のストリームがそのメディア・エンジン上でアクティブになった場合に、４つのドライブすべておよび関連するＩ／Ｏチャネルが並列に動作し、バッファを通じてのＧｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（ギガビット・イーサネット）スイッチへの可能な最大のＩ／Ｏスループットを実現する。
【００１８】
それぞれのディスクに対するＩ／Ｏオペレーションは、シーク時間が最小になるようにディスク・アドレスの順にＩ／Ｏオペレーションを実行することにより、最適化される。Ｉ／Ｏコントローラ・モジュール６１０と連携して動作するディスク・コントローラ６０８は、シーケンシング制御を行う。
【００１９】
メディア・エンジンのネットワーク・インターフェイスは、全二重ギガビット・イーサネット（Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ）であり、メディア・エンジンへ入力する方向、またはメディア・エンジンから出力する方向の何れの方向でもギガビット／秒の帯域幅までを実現する。入力してくるデータは、出力データと同じようにしてバッファリングされ、入力してくるデータは、データがディスクから読み取られるのと同じパターンでディスクへ書き込まれる。
【００２０】
したがって、メディア・ステーションは、高ビット・レートの大容量記憶装置リポジトリとして使用されることができる。このアーキテクチャは、生放送の場合に特に有利であり、生放送では、番組セグメントがリアルタイムでメディア・ステーションへ転送され、メディア・コンソールへストリーミングされる。
【００２１】
メディア・ステーション上にまだ存在していない、または完了していないが、システムで利用できるコンテンツについては、加入者からの要求の結果として、図７に示されているようにコンテンツの転送が行われる。加入者メディア・コンソール２０６は、メディア・ステーションＭＳ２のメディア・ディレクタＭＳ２ＭＤへストリーミング要求を行う（７０２）。ＭＤは、要求された番組またはセグメントの位置についてＭＬＲに問い合わせる（７０４）。ＭＬＲは、セグメントの位置の通知により応答する（７０６）。所望されるセグメントが格納されている複数の位置が存在しうる。ＭＤは、利用可能な帯域幅、ソース・メディア・ステーションからの距離、コピー時間およびソース・メディア・ステーションの負荷を含む多数のパラメータに基づいて、所望されるセグメントのコピーを取得する相対的コストを計算する。ソース・メディア・ステーション、例えばここではＭＳ１を選択すると、ＭＤは、ＭＳ１ＭＤにセグメントの位置を要求し（７０８）、ＭＳ１ＭＤは、そのセグメントを格納しているメディア・エンジンＭＳ１ＭＥのアドレスを応答する（７１０）。その後、ＭＳ２ＭＤは、セグメントをフェッチすることを、選択されたメディア・エンジンＭＳ２ＭＥに指令する（７１２）。ＭＳ２ＭＥは、ソース・メディア・エンジンＭＳ１ＭＥにセグメントのコピーを要求し（７１４）、ＭＳ１ＭＥは応答してセグメントを送信する（７１６）。セグメントのコピーが完了すると、ＭＳ２ＭＥは、コピーの完了をＭＤに通知し（７１８）、ＭＤは、セグメントの新しい位置をＭＬＲに通知する（７２０）。
【００２２】
代表的な実施形態におけるハードウェアからの観点では、メディア・ステーションは、それぞれが図８に示されているような複数の個別のブレードを収納する１つまたは複数のシャーシを備える。メディア・ステーション（ＭＳ）１０２は、典型的にはＣＯ内に配置され、ＣＯの付近をカバーする、自蔵型ストリーミング・ユニットである。それぞれのＭＳは、多数のシャーシ８０２を含む。シャーシ管理システムは、シャーシ内のブレードの外部制御を提供する。それぞれのシャーシ内にはブレード８０４が収納され、ブレード８０４は最下位レベルの管理単位である。各ブレードは独立したコンピュータである。これは、メディア・エンジン（ＭＥ）またはメディア・ディレクタ（ＭＤ）であり得る。
【００２３】
示されている実施形態では、メディア・ステーションは抽象のレベルであり、その状態はそのＭＤにより表される。したがって、ＭＳは、ハードウェア制御のために採用されるネットワーク管理システム（ＮＭＳ）８０６の管理構造におけるエンティティでなくてもよい。
【００２４】
ネットワーク管理は、メディア・ステーション（１または複数）に対する管理の第１のレベルであり、フルセットの管理機能およびＧＵＩを提供する。システム負荷と、温度やファン速度などのその他の動作パラメータとが監視される。自動警報は、システム・オペレータへ電子メールを送信するためや呼び出しを行うように構成することができる。
【００２５】
シャーシ管理は、第２レベルであり、ブレード存在検出、自動ブレード・パワーオン、遠隔ブレード・パワーオン／オフ、ディスク・ドライブのスピンアップ時のサージ電流を回避するための管理されたブレード・パワーオン、シャーシＩＤ読み取り、およびシャーシ制御フェイルオーバーの機能を備える。
【００２６】
ブレードの自己管理および監視は、第３レベルであり、温度、ファン速度、電源電圧の監視およびＳＮＭＰを通じてのＮＭＳへの警報、クリティカル・スレッド監視、記憶レベル監視、負荷監視などを含む自己健全性監視機能などを可能にする。すべての警報しきい値は、ＮＭＳによりリモートで設定できる。ソフトウェア関連の障害の場合、ソフトウェアの再起動またはＯＳの再起動が自動的に試みられ、イベントがＮＭＳへ報告される。
【００２７】
実施例については図９に示されているように、シャーシは最大１０までのブレード８０４を収納することができ、各ブレードをメディア・エンジンまたはメディア・ディレクタとすることができる。それぞれのブレードは、識別のために、シャーシＩＤ９０２および自身のスロット番号９０４を読み取ることができる。
【００２８】
シャーシ内のすべてのブレードは、制御ユニットまたはシャーシ・ブレード・コントローラ（ＣＢＣ）９０６を装備する。実施例では、それぞれのＣＢＣは、制御ロジックを実装するＩｎｔｅｌ（Ｒ）８５０１チップおよび制御ターゲットとして機能するように構成されているＦＰＧＡからなる。また、８５０１チップは、ＵＡＲＴインターフェイス９１０を通じてメイン・ボード９０８と通信する。メイン・ボードは、制御コマンドを発行するか、またはネットワークを介してＮＭＳから受信された制御コマンドをＣＢＣへ中継することができる。
【００２９】
実施例では、スロット５および６に配置されているブレードは、制御ブレードである。パワーオンの際に調整論理回路により、１つのブレードをアクティブにし、１つのブレードをスタンバイとするように決定される。シャーシがパワーオンされると、スロット５およびスロット６のブレードの調整が行われ、一方がアクティブなコントローラまたはメディア・ディレクタになる。アクティブな制御ブレードのＣＢＣは、バックプレーンをスキャンして、それらのブレードを、所定の間隔を空けて制御された順序でパワーオンすることにより、個々のブレードのディスク・ドライブのスピンアップにより引き起こされるサージ電流を回避する。
【００３０】
その後、アクティブな制御ブレードのＣＢＣは、バックプレーン上のすべてのスロットをスキャンし、それぞれのブレードの存在およびステータスを検出する。スタンバイ制御ブレードは、アクティブな制御ブレードのステータスを監視する。アクティブな制御ブレードが制御を放棄すると、スタンバイ状態のブレードが自動的に引き継ぎ、アクティブな制御ブレードとなる。
【００３１】
通常動作時には、アクティブな制御ブレードのＣＢＣは、定期的にバックプレーンをスキャンする。新しいブレードが差し込まれると、自動的にパワーオンされる。
【００３２】
アクティブな制御ブレードは自身をＮＭＳに登録し、シャーシ内の他のブレードの存在およびステータス、ブレードのパワーオン／オフまたはパワー・サイクルなどのチェックなどのような、シャーシ内の他のブレードを制御するコマンドをＮＭＳから受け取る。非制御ブレードもそれら自身をＮＭＳに登録し、再起動またはパワーオフするコマンドをＮＭＳから受け取ることができる。
【００３３】
管理の面からは、それぞれのブレードは、スタンドアロン型のコンピュータである。そのアプリケーション機能に加えて、それぞれのブレードは、アプリケーション・ソフトウェア、システム負荷、パフォーマンス、そして、ＣＰＵ温度、ファン速度、および電源電圧などのハードウェア関連パラメータの健全性を監視する管理ソフトウェアを備える。ブレード管理ソフトウェア機能は、図１０に示されている。
【００３４】
ストリーミング・アプリケーション・スレッド１００２は、その健全性と負荷に関する情報を共有メモリ領域に定期的に書き込む。管理監視スレッド１００４は、その領域をスキャンして、スレッドのステータスおよびシステムを分析する。ＳＮＭＰエージェント１００６を通じて状態情報をＮＭＳへ定期的に報告することに加えて、異常状態が検出されたときには当技術分野で知られているような適切な処置が講じられる。
【００３５】
すでに説明されているように、サービス・トークンに基づく認証スキームは、加入者のメディア・コンソールにより要求されたデータ転送に対しての、先駆的な処理として採用される。図１１はアクセス制御方式を示し、「ｓｋ」は秘密鍵を示す。秘密鍵は、メディア・コンソール２０６またはメディア・ステーション１０２などのようなシステム・コンポーネントと、認証サーバ１１０２との間でのみ確立される。システム・コンポーネント間の他のすべてのアクセスは、認証サーバによって与えられるケルベロス方式のトークンにより制御される。これは、コンポーネント間に分配される秘密鍵の数を減らし、新しいコンポーネントの追加を容易にする。ストリーミング・サービスを得るために、メディア・コンソールによりｍｃ＿ｔｏｋｅｎ  １１０４がメディア・ステーションへ渡される。メディア・ステーション間のデータ転送のため、メディア・ステーションによりｃｐ＿ｔｏｋｅｎ  １１０６が渡される。
【００３６】
メディア・コンソールは、２つの数（番号）、ＭＣ＿ＩＤおよびＭＣ＿Ｋｅｙを持つ。これらの数は、ボックス内のチップに焼き付けるか、スマートカード上に書き込むか、またはボックス内の何らかの形態の不揮発性メモリに書き込むことができる。加入者がサービスのためサインアップすると、加入者管理システムがそれらの数を記録し、それらをユーザ・アカウントに関連付ける。ＭＣ＿ＩＤおよびＭＣ＿Ｋｅｙは、その後、認証サーバへ渡される。図１２は認証のプロセスを示している。
【００３７】
メディア・コンソール２０６は、パワーオンすると、ＩＰを取得した後、認証要求１２２０２［開示された実施形態では、ＭＣ＿ＩＤ、｛ＭＣ＿ＩＤ，ＭＣ＿ＩＰ，Ｏｔｈｅｒ  ｉｎｆｏ（他の情報），ｓａｌｔ，ｃｈｅｃｋｓｕｍ（チェックサム）｝＿ＭＣ＿Ｋｅｙを含む］を認証サーバ１１０２へ送信する。注意：｛ｘ｝＿ｋは、メッセージｘがｋにより暗号化されることを示す。
【００３８】
認証サーバは、ＭＣ＿ＩＤを使用してメディア・コンソールのレコードを見つけ、そのメッセージを解読し、セッション鍵ＭＣ＿ＳＫおよびメディア・コンソール用のａｃｃｅｓｓ＿ｔｏｋｅｎ（アクセス＿トークン）を生成する。一実施形態では、ａｃｃｅｓｓ＿ｔｏｋｅｎ＝｛ＭＣ＿ＳＫ，ｓｅｒｖｉｃｅ  ｃｏｄｅ（サービス・コード），ｔｉｍｅｓｔａｍｐ（タイムスタンプ），ｃｈｅｃｋｓｕｍ（チェックサム）｝＿ＭＳ＿ＳＫであり、ここでＭＳ＿ＳＫは、認証サーバと、メディア・コンソールにサービスを提供するメディア・ステーションとの間ですでに設定されている秘密鍵であり、「ｓｅｒｖｉｃｅ  ｃｏｄｅ」は、そのトークンを何れのサービスに使用可能であるかを示す。認証サーバは、ＭＣ＿ＳＫの「シード鍵」を計算する。認証サーバは、メディア・コンソールに対して、［｛ａｃｃｅｓｓ＿ｔｏｋｅｎ，ＭＳ＿ＩＰ，ｓａｌｔ，ｃｈｅｃｋｓｕｍ｝＿ＭＣ＿Ｋｅｙ］で応答する（１２０４）。ＭＣはＭＣ＿Ｋｅｙを使ってメッセージを解読し、ｍｃ＿ｔｏｋｅｎと、接続先となるメディア・ディレクタのＩＰアドレスとを取得する。ｍｃ＿ｔｏｋｅｎは、メディア・コンソールがシャットダウンするか、または認証サーバが新しいｍｃ＿ｔｏｋｅｎを送るまで、保持される。メディア・コンソールは、ｍｃ＿ｔｏｋｅｎを、メディア番組を要求するときにはメディア・ステーションのアプリケーション・サーバへ、また、ＥＰＧをブラウジングする場合にはＥＰＧサーバへ、送信する（１２０６）。
【００３９】
一実施例のシステムを介して提供されるコンテンツのアクセス・トークンおよび暗号化の実装では、安全なコンテンツ配信およびアクセス権管理のためにセキュア・メディア（ＳｅｃｕｒｅＭｅｄｉａ）のエンクリプトナイト・システム（Ｅｎｃｒｙｐｔｏｎｉｔｅ  Ｓｙｓｔｅｍ）を採用する。
【００４０】
ここまで特許法により必要とされているように本発明を詳細に説明したが、当業者であれば、本明細書に開示されている特定の複数の実施形態に対する変更および置換を理解するであろう。このような修正は、特許請求の範囲で定められているように本発明の範囲および意図を外れることはない。
【図面の簡単な説明】
【００４１】
【図１】図１は、メディア・ステーションに組み込まれるエレメントのブロック図である。
【図２】図２は、本発明によるメディア・ステーションを採用するネットワーク・システムのブロック図である。
【図３ａ】図３ａは、加入者のメディア・コンソールへデータをストリーミングするためのハードウェアの相互作用およびプロセスを示す図である。
【図３ｂ】図３ｂは、図３ａに示されているデータをストリーミングするプロセスの流れ図である。
【図４】図４は、過負荷を軽減するために他のメディア・エンジン上にセグメントを高速複製するプロセスの流れ図である。
【図５】図５は、加入者コマンドに応じてのエラーを回避するためのメディア・エンジン・スワッピングのプロセスの流れ図である。
【図６】ＨＭＦＳである。
【図７】図７は、ハードウェアの物理構造の最上位レベルのブロック図である。
【図８】図８はシャーシの構成の詳細なブロック図である。
【図９】図９は、ブレードのメイン・ボードとネットワーク管理システムおよびシャーシ・ブレード・コントローラとの機能的相互作用を示すブロック図である。
【図１０】図１０は、本発明を採用するシステムでのアクセス制御のための秘密鍵システムの基本エレメントを示すブロック図である。
【図１１】図１１は、データをストリーミングすることに対するメディア・コンソールの要求を認証するためのシステム通信を示すブロック図である。
【図１２】図１２は、認証プロセスを説明する流れ図である。
【図１】
2005332373.tif 000003
【図２】
2005332373.tif 000004
【図３ａ】
2005332373.tif 000005
【図３ｂ】
2005332373.tif 000006
【図４】
2005332373.tif 000007
【図５】
2005332373.tif 000008
【図６】
2005332373.tif 000009
【図７】
2005332373.tif 000010
【図８】
2005332373.tif 000011
【図９】
2005332373.tif 000012
【図１０】
2005332373.tif 000013
【図１１】
2005332373.tif 000014
【図１２】
2005332373.tif 000015
【外国語明細書】
2005332373000001.pdf