説明

ストリーミングメディアサービスを管理するための方法

【課題】ストリーミングメディアサービスを管理するための方法を提供する。
【解決手段】本方法は、ストリーミングメディアサービスの要求をクライアントから受信することを含む。本ストリーミングメディアサービスは、複数のメディアサービスコンポーネントを含む。さらに、本方法は、ネットワークの複数のサービスノードの或るサービスノードに、複数のメディアサービスコンポーネントのどのメディアサービスコンポーネントを割り当てるかを判断することを含む。本方法はまた、或るメディアサービスコンポーネントを実行するように割り当てられた各サービスノードに、ストリーミングメディアに対してストリーミングメディアサービスを実行することを可能にするように通知することを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストリーミングメディアサービスを管理するための方法に関する。
【背景技術】
【0002】
[背景]
クライアントデバイスがメディアファイルの配信を要求することが、その要求したメディアファイルに対して雑音低減等の或る処理が行われることを伴って行うことができるシステムがある。要求されたメディア配信がサーバによって受信されると、メディアファイルは取り出され、次いで、要求された処理が、サーバによりそのメディアファイルに対して実行される。この処理が完全に行われると、サーバは、処理されたメディアファイルをクライアントデバイスへ送信する。このタイプのシステムに関連した問題がある。たとえば、サーバが、異なる要求側クライアントデバイスへのメディアファイルの処理及び送信の多くの個別の要求をハンドリングしようと試みている場合、クライアントデバイスのユーザは、かなり長い間待たなければならない場合がある。また、ストリーミングメディアファイルは非常に大きい場合があり、ストリーミング配信の開始前にその内容に対して要求された処理を完了するには長い時間を要する場合がある。これは、特に、クライアントデバイスのユーザが期限前に何かを完了しようと試みている場合に、そのユーザにフラストレーションを与えている場合がある。
【0003】
これらの理由及び他の理由から、本発明が必要とされる。
【発明の開示】
【課題を解決するための手段】
【0004】
[発明の概要]
本発明の一実施の形態は、ストリーミングメディアサービスを管理するための方法を含む。本方法は、ストリーミングメディアサービスの要求をクライアントから受信することを含む。本ストリーミングメディアサービスは、複数のメディアサービスコンポーネントを含む。さらに、本方法は、ネットワークの複数のサービスノードの或るサービスノードに、複数のメディアサービスコンポーネントのどのメディアサービスコンポーネントを割り当てるかを判断することを含む。本方法はまた、複数のメディアサービスコンポーネントの或るメディアサービスコンポーネントを実行するように割り当てられた各サービスノードに、ストリーミングメディアに対してストリーミングメディアサービスを実行することを可能にするように通知することを含む。
【発明を実施するための最良の形態】
【0005】
[好ましい実施の形態の説明]
次に、本発明の実施の形態を詳細に参照する。本発明の実施の形態の例は、添付図面に示されている。本発明は、実施の形態と共に説明されるが、実施の形態は、本発明をこれら実施の形態に限定することを目的としているものではないことが理解されよう。逆に、本発明は、代替形態、変更形態、及び等価物を包含することを目的とし、これら代替形態、変更形態、及び等価物は、添付の特許請求の範囲によって画定された本発明の精神及び範囲内に含めることができる。さらに、本発明の以下の詳細な説明では、本発明の十分な理解を提供するために、多数の具体的な詳細が述べられている。しかしながら、本発明は、これらの具体的な詳細がなくても実施できることが当業者には明らかであろう。それ以外の場合には、本発明の態様を不必要に分かりにくくしないように、既知の方法、手順、コンポーネント、及び回路は詳細に説明していない。
【0006】
[表記法及び用語法]
以下の詳細な説明のいくつかの部分は、計算システム又はデジタルシステムのメモリ内のデータビットに対するオペレーションの手順、論理ブロック、処理、及び他のシンボル表現の観点から提示される。これらの説明及び表現は、データ処理技術における当業者が自身の作業の内容を他の当業者に最も効果的に伝えるのに使用する手段である。手順、論理ブロック、プロセス等は、本明細書では、一般的に、所望の結果をもたらすオペレーション又は命令の自己矛盾のないシーケンスであると考えられる。オペレーションは、物理量の物理的な操作を含むことができる。必ずしもそうではないが、通例、これらの物理的な操作は、計算システム又は類似の電子計算デバイスにおける記憶、転送、組み合わせ、比較、及びそれ以外の操作を行うことができる電気信号又は磁気信号の形態を取る。便宜上の理由から、且つ、共通の用法に関して、これらの信号は、本発明に関しては、ビット、値、要素、シンボル、文字、用語、数字等と呼ばれる。
【0007】
一方、これらの用語のすべては、物理的な操作及び物理量に言及するものと解釈されるべきであり、単なる便利なラベルであり、さらに、当該技術分野で一般に使用される用語に鑑みて解釈されるべきであることに留意すべきである。特に指定のない限り、以下の説明から明らかなように、本発明の説明の全体にわたって、「判断」、「適用」、「処理」、「実行」、「決定」、「確認」、「送信」、「受信」、「取り出し」、「提供」、「認識」、「生成」、「利用」、「除去」、「通知」、「排除」、「廃棄」、「実施」、「使用」、「記憶」等の用語を利用した説明は、データの操作及び変換を行う計算システム又は類似の電子計算デバイスの動作及びプロセスを指すことが理解される。データは、計算システムのレジスタ及びメモリ内では物理(電子)量として表され、他のデータに変換される。他のデータも、同様に、計算システムのメモリ若しくはレジスタ、又は、他のこのような情報ストレージデバイス、送信デバイス、若しくは表示デバイスの内部で物理量として表されるものである。
【0008】
[導入]
デスクトップマシン又はラップトップマシン(たとえば、図1の122)は、ネット上でのランダムなブラウジングの入力(さまざまなURL又は検索照会のタイプ入力)要件及び出力(信頼性のある高帯域幅の接続)要件をより良くサポートできることから、通常、人々は、自身のこれらのデバイスから自身のウェブブラウジングの経験に基づいてさまざまなコンテンツサイト(たとえば、ビデオに基づく映画のページ)の位置を知る。これらのウェブユーザは、高帯域幅無線アクセスの保証があることを信じて、自身の携帯情報端末(PDA)、たとえば110、116、及び120、又は、ビデオ使用可能携帯電話、たとえば112、114、及び118を使用して同じサイトへの接続を試みる場合がある。このより幅広いアクセスの結果、コンテンツプロバイダは、(接続の帯域幅に従った)広範囲の異なるビットレート、(処理能力管理ストラテジーに従ってそれ自体動的に変化する、クライアントデバイスで利用可能なCPU処理能力に従った)ビデオフレームレート、及び(クライアントデバイスで利用可能な表示サイズに従った)ビデオフレームサイズをサポートする必要がある。また、日本の3GPP[1]プロバイダが遭遇するように、軽量のクライアントからの移動アクセスをサポートするには、サーバが、多数のセッションの状態変数を保持して更新することが必要とされる。簡潔にし、且つ、明瞭にするために、参考文献[1]〜[20]の引用の詳細なリスト一式が本明細書の後部に見られる。これらリストされた参考文献[1]〜[20]のすべては、背景資料として参照により本明細書に援用されることに留意されたい。たとえば、夕方の移行期の間、数千の移動ユーザの「フラッシュクラウド(flash crowd)」が東京の都心のオフィスエリアからレストラン地区へ多く見られる。
【0009】
したがって、問題は2つの部分から成る。一方は、クライアントの能力に動的に調整されたフォーマットでビデオコンテンツ及び音響コンテンツを提供することである。他方は、そのストリーミングプロセスのサポートを動的に分散させて、不要な輻輳及びその結果生じる品質劣化を回避することである。この解決法の双方の部分が依存する因子は、それ自体、多くの場合、素早く変化しているので、これら双方の部分は動的に行われるべきである。
【0010】
メディアサービスが、ストリーミングコンテンツ配信ネットワーク(CDN(content -delivery network))基盤内において分散形式で統合及び管理されない限り、移動ストリーミングメディア(MSM(mobile streaming media))の無線デバイスの潜在能力は、完全には実現されないことになる。本発明者等は、無線移動ストリーミングクライアントをサポートする既存のネットワーク基盤にわたって、信頼性のあるスケーラブルなメディアストリーミングを提供することに関して背景となる研究を説明する。本発明者等は、CDN内で利用可能な分散資源の動的な監視によって、メディアサービスの管理された配置の手法を概説する。資源監視手法間のトレードオフも説明される。これは、本発明者等のMSM−CDNテストベッド内におけるサービスロケーションマネージャ(SLM(service location manager))の例示のインプリメンテーションの説明としてのものであり、且つ、当該SLMの結果として生じるものである。
【0011】
[移動クライアントへの適合型ストリーミングコンテンツ配信]
図1内において、移動ストリーミングメディアシステムの基本コンポーネントは、記憶されたメディアコンテンツ用のストリーミングサーバ(たとえば、102)、ライブストリーミングサーバ、及びストリーミングメディアクライアント(たとえば、110〜120)を含む。スケーラブルな形式で多数のユーザにビデオクリップを配信するために、既存のネットワーク上で、たとえば図3に示すような本発明のMSM−CDNオーバーレイを使用することができる。このMSM−CDNオーバーレイは、ストリーミングエッジ(又は代理(surrogate))サーバ及び管理サーバを含む。ストリーミングエッジサーバは、コンテンツの分配/キャッシュ機能[16]、ストリーミング機能、資源監視機能、資源管理機能、及びシグナリング機能を有する。また、ストリーミングエッジサーバは、ライブメディアの適合等のメディアサービス機能も実行することができる。管理サーバは、コンテンツを分配させ、クライアントの位置並びに現在のシステム及びネットワークの負荷に基づいてメディアセッションを割り当てる。換言すると、管理サーバは、クライアントが要求したセッションを利用可能な最良のエッジサーバに割り当てる。
【0012】
MSM−CDNシステムは、表示能力及び復号能力の観点から、幅広いクライアントのサポートを援助すべきである。図1内において、これを行う「従来」の方法は、送信元の素材の複数のコピーをコンテンツサーバ102に記憶し、次いで、クライアント(たとえば、112、114、116、及び120)との或る初期交渉に従ってどのコピーを送信するか(たとえば、矢印124、126、128、及び130によって示すように)を選択することである。しかしながら、ストリーミングセッション中に、ネットワーク100のさまざまな部分からクライアントへの接続の信頼性及び帯域幅は、クライアントが物理的な位置を移動すると変化し、また、他のクライアントからのストリーミングセッションが、共有された無線環境内で開始及び終了すると変化する。この交渉は、複数の記憶された符号化によって容易に提供されるものよりも広範囲の選択肢に及ぶ必要があり、その交渉プロセスは、ネットワークの状態が変化するにつれて動的に更新されるべきである。リアルタイムのメディアサービスは、今日のネットワークサーバマシンにおいて実用的且つ入手可能であるので、メディアレート、サイズ、及び帯域幅のこの広範囲な必要性は、図2のネットワーク200内にメディアサービスを組み込むことによって満たすことができる。図2内において、矢印208は、コンテンツサーバ102からメディアサービスノード202へ出力されるストリーミングメディアを示しているのに対して、矢印210は、サービスノード202からクライアント102への処理されたメディアストリーミングを示している。図1のネットワーク100及び図2のネットワーク200は、無線基地局104、106、及び108を含むことに留意されたい。これらの無線基地局は、移動クライアントデバイス110、112、114、116、118、120、及び122との無線通信の一部として利用することができる。
【0013】
このリアルタイムで待ち時間の少ないメディアサービングを提供することは、メディアサービスノードとも呼ばれるエッジサーバ[2、7]の重要な機能の1つである。メディアサービスプロセスは、たとえば、圧縮ビデオストリームをクライアントディスプレイに適合させることができる。また、メディアサービスプロセスは、RTCPベースのフィードバックを使用して、クライアントデバイスによって経験された、変化する帯域幅の状態に、ストリーム内のビットレートを動的に調整することができる。これらのリアルタイムのメディアサービス提供は、今や、圧縮領域処理[14、15、10]を使用することにより、標準的なデスクトップマシン又はサーバマシンに設けることができる。
【0014】
これらの新しい圧縮領域のサービス提供技法は、個々の各サービス提供セッションの計算コストを大幅に削減することができ、それによって、移動ストリーミングを実用的且つ入手可能なものにすることができる。しかしながら、コンテンツ管理と同様に、メディアサービスストリームのサイズ及び継続時間並びにそれらのストリームを変更することに関連した計算要求は、注意深い管理を必要とする場合がある。数千又は数百万の移動クライアント(たとえば、110、112、114、116、118、及び120)が存在する状況では、分散されたエッジサービスとしてメディアサービスを提供できるように、計算能力の高いサーバがその基盤全体にわたって離散され得る。
【0015】
たとえば、上記説明によって必要とされたメディアサービスを提供する1つの方法は、各コンテンツサーバが、固定されたメディアサービスノード(たとえば、図2の202、204、又は206)へのクライアントブラウザ(たとえば、110、112、114、116、118、及び120)の静的なリダイレクトを提供することである。このタイプの静的なリダイレクトは、コンテンツ配信の観点からよく検討される。ローカルな「ミラー」サイトへのリダイレクトは、今日のウェブ環境では日常的に行われている。この静的なリダイレクトの不利な点は、この静的なリダイレクトが、ネットワーク100及びサーバの負荷の変動のいずれも考慮していないことである。さまざまなノード(又はサーバ)で利用可能な帯域幅及び計算負荷は、クライアントの変化する要件に従って変化し、且つ、新たに追加されたクライアント又は新たに取り除かれたクライアントの変化する要件に従って変化する。したがって、異なるサーバにおけるメディアサービスプロセスの配置は、それ自体、動的であるべきであり、好ましくは、クライアントプロセッサが物理的な位置を変更するにつれて調整されるべきである。最後に、移動ウェブブラウジングを行う一般の人々が簡単に使用できるように、これらの動的な決定のすべては、隠蔽され、自動的にすることができる。
【0016】
[サービスロケーション管理(SLM)]
図3内において、動的なサービスロケーション管理の背後にあるアイデアは、最初の接触サイトを変更するように移動ユーザ(たとえば、110、112、114、116、118、及び120)に要求することなく、移動ストリーミング環境で必要とされる柔軟性を提供することである。一般的なシステムは、そうしないで、或る個数の広く公表されたポータルサイト(たとえば、304及び306)を提供する。これらのポータルは、(矢印308によって示すように)移動ユーザの最初の接触点であり、元のコンテンツサイトへのリダイレクトを受け付ける(コンテンツサーバ102への矢印310によって示される)。その後のすべてのリダイレクトは、動的なSMIL書き換え[16]を使用して、クライアントにトランスペアレントな方法で行われる。
【0017】
一般に、図3は、クライアントデバイス120からサービスポータル306に入る要求を矢印308で示している。したがって、図4のサービスポータル306は、その後、(矢印404によって示すように)サービスロケーションマネージャ302と通信して、要求されたストリーミングメディアセッションを配置するための最良のサービスノードを見つけ出す。また、図4は、サービスロケーションマネージャ302が、双方向矢印406、408、及び410によって示される1組のメディアサービスノード202、204、及び206を観察又は監視していることも示している。サービスロケーションマネージャ302は、ストリーミングセッションを配置するための最良のサービスノードをサービスポータル306へ返す。したがって、図3、図4、及び図5は、セッションを開始させる方法のオペレーションを示している。図9は、その後の要求がネットワーク300内に配置された時に、それらの要求が、それぞれそれらの同じオペレーションを通過することを示している。図5A及び図5Bは、サービスロケーションマネージャ302が、二点鎖線の楕円506によって示すように或るサービスノード(たとえば、202)から別のサービスノード(たとえば、204)へ現在のセッションの割り当てを変更できることを示している。メディアサービスノード(たとえば、202、204、及び206)は、それぞれ、ハードウェア、ソフトウェア、又は、ハードウェア及びソフトウェアのあらゆる組み合わせとして実施することができることに留意されたい。これに加えて、サービスノード(たとえば、202、204、又は206)は、1つ又は複数の物理的な計算デバイスとして実施することができる。
【0018】
図4内において、ポータルサイト306は、矢印308によって示すようにクライアント120により接触されると、矢印404によって示すようにサービスロケーションマネージャ(SLM)302と接触する。単一のSLM302が自身の利用可能なサービスのポートフォリオに複数のタイプのサービスを有することができることに留意されたい。したがって、SLM302は、各メディアサービスノード(たとえば、202、204、又は206)がメディアのストリームに対して実行できるサービスを(たとえば、テーブルで)把握している。メディアサービスには、ビデオ処理が含まれ得る。このビデオ処理は、トランスコード、ジッタ除去、顔認識に基づくダイナミッククリッピング、ビデオ解析、ビデオのサイズ変更、ビデオからのOCR、音響強調(audio enhancement)、背景除去、ビデオメディアのストリームに対して動作できるあらゆるもの等であるが、これらに限定されるものではない。これに加えて、メディアサービスには、音響処理が含まれ得る。この音響処理は、背景除去、音響速度の増減、音響強調(audio enhancement)、雑音低減、発話認識、音響解析、音響メディアのストリームに対して動作できるあらゆるもの等であるが、これらに限定されるものではない。次いで、SLM302は、自身の決定を行っている時に、そのテーブルを一覧して、1つ又は複数のどのサービスノードが、要求された特定のメディアサービスを実行できるかを見つけ出す。
【0019】
ポータルサイト306がSLM302と接触すると、SLM302は、次に、要求された素材を所与のクライアント(たとえば、120)に供給するのにどのタイプのメディアサービスが必要とされるかを判断し、(部分的又は完全に)SLM302の制御下にあるメディアサービスノード(たとえば、202、204、及び206)のステータスを調べる。そのステータスは、メディアサービスノードのそれぞれにおける利用可能なサイクル及び利用可能なメモリの観点から要約することができる。付加的なステータス指示子が、メディアサービスノードのそれぞれからコンテンツプロバイダ(又は最も近いミラーサイト)への接続及びストリーミングクライアントへの接続の予想された帯域幅及び信頼性を含むことができる。収集されたステータス情報に基づいて、SLM302は、SMILファイルを動的に生成し、その新たに生成されたSMIL応答に、交渉されたあらゆるパラメータと共に自身のURLを組み込むことによって、適切なサービスノードへクライアントのリダイレクトを行う(図5)。3GPP又はISMA[5]に準拠したストリーミングクライアントは、次に、書き換えられたSMILファイルを構文解析して、コンテンツサーバ102及びメディアサービスノード202との適切なストリーミングセッションをセットアップする。したがって、全体の処理はエンドユーザにトランスペアレントである。矢印502は、コンテンツサーバ102からメディアサービスノード202へのメディアのストリーミングを示しているのに対して、矢印504は、サービスノード202からクライアント120への処理されたメディアストリームのストリーミングを示していることに留意されたい。メディアサービス提供を必要とする他のクライアントからのその後のコンテンツ要求も、新たな現在のネットワーク資源及び計算資源に従って分散される(図9)。
【0020】
動的サービスロケーションのための資源監視
上記説明では、SLM302は、自身の制御下にあるメディアサービスノード(たとえば、202、204、及び206)のそれぞれのステータスを調べて、現在のクライアント要求により必要とされるメディアサービスタスクをどのようにディスパッチするのが最良であるかを判断する。この調査を完了できるさまざまな方法がある。以下では、本発明に従って実施できるいくつかの異なる実施の形態を詳述する。
【0021】
基本的な「ポーリングベース」の監視
一実施の形態内では、SLM302の制御下にあるメディアサービスノード(たとえば、202、204、及び206)のステータスを監視する一手法は、プロセスが「ポーリングベース」であることである。この手法では、SLM302は、メディアサービスの新たなクライアント要求を得るたびに、(たとえば、そのCPUの個数及びクロック速度、その設置されたメモリ、並びにその最良の場合のネットワーク帯域幅の観点から)十分な資源を有する可能性のあるサービスノードのそれぞれと積極的に接触する。この「資源ポーリング」に応答して、各サービスノード(たとえば、202、204、又は206)は、自身の現在利用可能な資源の記述を提供する。この記述は、所与の時点における空き状態の計算サイクル数及び空き状態のメモリ量を含むことができる。理想的には、この記述は、コンテンツサーバ102及びクライアント(たとえば、110〜120)への空き状態のネットワーク帯域幅の或る見積もりも含む。SLM302は、この情報を収集し、次に、空き状態のネットワーク帯域幅、計算資源、及びメモリ資源の最良の組み合わせを提供するサービスノードならばいずれのサービスノードへでも、要求されたメディアサービスタスクをディスパッチすることができる。
【0022】
この「ポーリングベース」の手法は、空き状態のサービスノード資源の最新のスナップショットを提供するという利点を有する。また、この手法は、サービスノードが、ネットワーク障害又はマシン障害のいずれかによって非稼動状態である時の明瞭な表示も提供する。他方、ポーリングベースの資源監視は、拡張性の観点から厳しい制限を有する。クライアント要求の個数及び監視されるメディアサービスノードの個数が増大するにつれて、それらの所産としてポーリング要求の個数も増大する。監視されるメディアサービスノードの個数は、クライアントのサービス要求の個数に正比例して増大する傾向があるので、ポーリング要求の個数は、事実上、クライアントの個数の2乗として増大する。
【0023】
基本的な「テーブルベース」の監視
ポーリングの実施の形態に代わるものは、資源情報がメディアサービスノード(たとえば、202、204、及び206)から監視を行うSLM302へ「プッシュされる」ものである。この手法では、更新は、システム及びネットワークの管理ソフトウェアによって提供される等、サービスロケーションスーパーバイザ(SLS(service location supervisor))によって周期的に提供される。このSLSは、各メディアサービスノードで実行されている軽量のバックグラウンドデーモンとすることができる。各クライアント要求時に、SLM302は、SLSが提供した情報を収集すること(及び日付を付けること)から作成された空き状態資源データベースにアクセスする。これによって、資源監視によって受ける接続要件が、メディアサービスノードの個数の2次依存関係から1次依存関係へ削減される。
【0024】
さらに、SLM302自体に監視能力及び「再開(re-launch)」能力を含めることもできる。単純なSLMデーモンは、最新のSLSデータベースリフレッシュのタイムスタンプを監視し、或るプリセット時間間隔よりも長い間接触していないSLSマシンとの接触を試みる。おそらく、これらの接触の試みのかなりの部分は、進行中のネットワークの障害又はメディアサービスノードの障害のために失敗することになる。しかしながら、SLSの接触を再開しようとするこれらの試みは、非同期に行われるので、クライアント要求に対するSLM302の応答時間に影響を与えない。
【0025】
テーブルベースの監視は、直接的なポーリングベースの結果よりも時期の遅れた資源情報に依拠するという不利な点を有する。この弱点は、資源監視の次の実施の形態によって対処される。
【0026】
[ノードから受信された近時データに基づくSLMの適合性及びSLMの動作]
機能強化された「テーブルベース」の監視
この実施の形態内では、テーブルベースの監視手法は、時期の遅れた情報の欠点を低減するように変更される。これは、SLM302が近時のクライアントタスクをディスパッチしたメディアサービスノードの短期記録をSLM302に保持させることによって行われる。SLM302は、次に、それに応じて、どの資源が新たなジョブに利用可能であるかの自身の予測を調整する。たとえば、資源統計値が或るメディアサービスノードから最後に送信される前に、メディアサービスタスクがそのサービスノードに1分未満ディスパッチされた場合、そのノードの資源記録は、前にディスパッチされたそのメディアサービスジョブによって要求された資源予算よりも低くなる。
【0027】
[共有サービスを有する複数のSLM]
メディアサービスノードのいくつかが、2つ以上のSLMの権限下にある場合(すなわち、分散された1組のSLMマシンの2つ以上が、そのサービスノードへのメディアサービス要求のリダイレクトを許可された場合)、ディスパッチが行われるとすぐに、各SLMは、ディスパッチされたジョブに関する情報も、そのメディアサービスノードにおけるSLSデーモンへ伝えるべきである。そのようにして、SLSデーモンは、すべてのディスパッチの通知を他のSLMプロセッサへ再送することができ、それによって、異なるSLMからの交差するディスパッチによって、メディアサービスノードの計算資源又はネットワーク資源の定数以上の予約が取られる回数を最小にすることができる。
【0028】
共有サービスを有するSLMを1つ又は複数有することによって、これは、サービスノードが2つ又は3つ以上の異なる組織又はグループ内で動作できる局部的なセグメンテーション(regional segmentation)を可能にすることに留意されたい。したがって、サービス要求をそのサービスノードに割り当てる能力をSLMに与えることが望ましい。これに加えて、このように、各SLMの権限からサービスノードを除去しないことにより、SLMの過負荷を回避することができる。複数のSLMがサービスを共有することを可能にすることは、組織、グループ、又は企業内でサービスを結び付けることがサービスの共有に適している場合に現実的なものとなり得る。これに加えて、SLM間でのサービスの共有は、SLMの1つが動作不能になった場合のフォールトトレランスを提供することができる。さらに、SLM間でのサービスの共有は、SLMに負荷バランシングを提供することができる。
【0029】
時期遅れの情報の欠点を低減するために、SLM302は、自身が近時のタスクをディスパッチしたサービスノードの短期記録を保持できることに留意されたい。そういうことから、このタイプの「プッシュ」ベースの監視では、サービスノードは、一定の周期で起こり得る自身のデータをSLM302へプッシュしている。サービスノード(たとえば、202、204、及び206)によって送信されている統計値のそれぞれは、平均化を行うことによって、同様にその内部に一定の待ち時間を有する。そういうことから、何がSLM302で発生しても、SLM302が何かをディスパッチする時、SLM302は、前にジョブをディスパッチしたのはどの資源かという情報を有するディスパッチが取るか又は取るものと予想される、自身のサービスノードの実行テーブルを保持する。このようにして、SLM302が自身の次のディスパッチを行う時、SLM302は、サービスノードから得られた自身のテーブルの統計値を使用することができ、それらの統計値がどの程度古いものかを理解することができる。したがって、SLM302は、それらの統計値が受信されてから行われたあらゆるディスパッチがそれらの統計値に全く反映されないことを知ることができる。SLM302は、実際の利用可能な資源が各サービスノードにあると予想するための正しい近似を得るために或る時点で線形補間を行うことができることに留意されたい。
【0030】
SLM302は、この利用可能なテーブルを有し、当該テーブルは、所与のサービスノード(たとえば、202)からのその最新の更新を示す日時が付けられている。SLM302が有する、そのサービスノードからの最新の統計値がたとえば10分古いものであり、SLM302が5分毎の更新を予想している場合、SLM302は、そのサービスノードに関して何かが故障していると判断して結論付けることができる。その問題はいくつかのものである場合があり、たとえば、ネットワーク300が障害を受けている場合もあるし、サービスノード202が障害を受けている場合もあるし、あるいはSLSデーモンがそのサービスノード202において停止している場合もある。したがって、ノードがSLM302に報告することによって、この情報を提供することもできるし、あるいはSLM302が、サービスノードのすべてにおける自身のテーブルの一般的なラウンドロビンチェックを、オーバーヘッドの低いバックグラウンドプロセスとして行うこともできる。このようにして、SLM302は、サービスノードの1つ又は複数に関連する場合がある問題に気付くことができる。問題が検出された場合、SLM302は、そのサービスノードにおいて、SLSデーモンの再起動を試みることもできるし、SLM302がノードと接触できない場合には、SLM302は、オープンビュー(Open View)監視システムを用いて、その特定のノードに関する問題を示すフラグを立てることもできる。この機能を実行することによって、SLM302は、動作不能のおそれがあるメディアサービスノードへのストリーミングセッションのディスパッチも割り当ても行わないことに留意されたい。
【0031】
テストベッドの結果
サービスロケーション管理アーキテクチャの一実施の形態は、メディアサービスを移動ストリーミングメディア配信システムと統合するように設計された。移動ストリーミングメディア(MSM(mobile streaming media))のテストベッドは、これらの能力を実証するように設計、開発、及び実施された。MSMのテストベッドは、複数の記憶コンテンツ/ライブコンテンツストリーミングサーバ及びストリーミングメディアクライアントから成る。ストリーミングエッジサーバ及び管理サーバは、共に、適合型MSM−CDNを形成する。ストリーミングエッジサーバは、コンテンツの分配及びキャッシュ、ストリーミング、資源監視、資源管理、並びにシグナリングのサポートを提供する。これに加えて、ストリーミングエッジサーバは、ライブストリームの分割(又は、メディアストリーミングセッションのアプリケーションレイヤのマルチキャスト)や、MPEG−4ビデオストリームのリアルタイムのメディアトランスコード等のメディアサービス機能も実行する。
【0032】
これらのストリーミングサーバ、クライアント、及びエッジサーバは、3GPP標準規格に準拠することができ、したがって、セッション記述プロトコル(SDP(Session Description Protocol))[4]、リアルタイムストリーミングプロトコル(RTSP(Real Time Streaming Protocol))[13]、及びリアルタイムトランスポートプロトコル(RTP(Realtime Transport Protocol))[12]を使用することができ、MPEG−4[8]ビデオ標準規格及びオーディオ/モデムライザ(AMR(Audio/Modem Riser))音響メディア標準規格をサポートすることができる。ストリーミングエッジサーバ及び管理サーバは、シンプルオブジェクトアクセスプロトコル(SOAP)[3]をシグナリング用に使用することができる。他の標準規格も本発明に従って利用できることに留意されたい。
【0033】
サービスロケーションマネージャ(SLM)302は、クライアントが要求したストリーミング/メディアサービスセッションを、ネットワーク及びシステムの資源使用量に基づいて「最良の利用可能な」ストリーミングエッジノードに割り当てる。SLM302は、1組のストリーミングエッジノードにおける統計値を収集し、それらの統計値を解析して、最良の利用可能なエッジサービスノードを選択し、その選択したエッジノードをクライアント要求に応答して伝える。SLM302は、SOAP/XMLシグナリングを使用して、エッジノードから資源使用量の統計値を収集し、選択したエッジノードを要求側クライアントに動的に伝える。
【0034】
SLM302の資源監視に対して提案した3つの手法のそれぞれは、MSM−CDNのテストベッドで実施されてテストされた。ポーリングベースの監視は、場合により、完全なストリーミング障害という結果になった。これは、移動クライアントの応答タイムアウト期間があまりにも小さく設定され、その結果、クライアントが諦める前に、SLM302がポーリング応答のすべてを収集し、それらを処理し、且つ、動的に生成されたSMIL応答を提供するのに十分な時間を有しない場合に発生した。これらのあまりにも遅い応答は、通常、メディアサービスノードの1つ又は複数がネットワークから切り離された時に起こる。これらの場合、SML302は、そのサービスノードをクライアントの可能性のあるメディアサービスプラットフォームとして無視する前に、標準的なSOAPタイムアウト期間、待機していた。ポーリングベースの監視に関連した遅延も、ネットワークの拡大縮小を優雅にサポートしない。監視されるサービスノードの個数が増加するにつれて、ポーリングに関連した遅延は比例して増加する。
【0035】
基本的なテーブルベースの監視は、このタイムアウトの障害モードを受けなかった。しかしながら、この監視は、多くの場合、準最適な負荷バランシングという結果になった。これは、クライアント要求が間断なく到来した時に発生した。たとえ、メディアサービスノードにおけるSLSが、SLM302のデータベースに含まれる空き状態資源情報を更新するように変更されても、新たなローカルメディアサービスタスクに遭遇するたびに、この準最適な負荷バランシングは依然として発生した。時に、この準最適なタスク割り当ては、新たにインスタンス化されたタスクに対する空き状態資源統計値の応答の待ち時間に起因するものであった。さらに多くの場合、準最適なタスク割り当ては、SLM302が、(動的なSMILファイルをクライアントへ送信することにより)メディアサービスタスクを特定のサービスノードにディスパッチした後であって、その以前のクライアントが、(RTSPのSETUP要求を送信することにより)選択されたサービスノードにそのメディアサービスタスクを実際に確立する前に到来する新たなクライアント要求に起因するものであった。
【0036】
機能強化されたテーブルベースの監視は、ポーリングベースの監視で見られたタイムアウト障害、及び、基本的なテーブルベースの監視で見られた、インターリーブされた要求の誤りの双方を回避した。
【0037】
メディアサービスのハンドオフの管理のためのSLM
図5A及び図5Bは、本発明による一実施の形態を示している。具体的には、サービスロケーションマネージャ302は、或るメディアサービスノード(たとえば、図5Aに示す202)から別個のメディアサービスノード(たとえば、図5Bに示す204)へメディアストリーミングセッション(二点鎖線の楕円506によって示す)を移動させるのに使用することができる。この移動は、ハンドオフと呼ぶことができる。たとえば、サービスノード202が、ストリーミングメディアセッションをハンドオフする必要があると判断した場合(又は、ネットワーク300の他の或るコンポーネントがこれを判断した場合)、この情報はSLM302へ通信することができる。SLM302は、次に、その特定のストリーミングセッションをどのサービスノードにハンドオフするかを算定するために、その時点で、サービスノードの負荷、ネットワーク300の負荷等を計算することができる。このように、あらかじめ定義されたハンドオフノードを決定する必要はない。その代わり、ハンドオフノードは、SLM302によって実行中に決定される。したがって、所望のサービスを実行できる最良のメディアサービスノードがSLM302によって選択される。次に、ハンドオフは、図6、図7、図8A、及び図8Bで説明するものと同様の方法で行うことができる。ハンドオフを実行する方法は、最初のサービスノード(たとえば、202)によって実行されているサービスのタイプに特有のものとすることができることに留意されたい。
【0038】
図6は、本発明の実施の形態を実施できる単一のコンテンツサーバ102を有するデータセッションハンドオフの例示のシステム600のブロック図である。システム600は、データセッションハンドオフに含めることができる例示のメディアサービスとして、トランスコードを含むことに留意されたい。システム600は、任意のメディアサービスを含むことができ、トランスコードに限定されるものでないことが理解される。一実施の形態では、システム600において、データ(たとえば、ビデオメディア)が、無線リンクを介して移動クライアント(たとえば、電子デバイス)へストリーミングされる。一実施の形態では、そのデータは、ストリーミング音響やストリーミングビデオ等、連続フローで構造化されて処理されるストリーミングデータである。ストリーミングデータは複数のデータパケット(たとえば、部分)を含み、各パケットはそのフローにおいて順序付けられている。
【0039】
一実施の形態では、システム600は、コンテンツサーバ102(たとえば、データ送信元)、トランスコーダデバイス602及び604、並びに電子デバイス120を備える。一実施の形態では、トランスコーダ602は、セル608に位置する電子デバイスへメディアストリームを供給するように動作することができ、トランスコーダ604は、セル610に位置する電子デバイスへメディアストリームを供給するように動作することができる。本実施の形態では、コンテンツサーバ102は、トランスコーダ602へ送信される高ビットレートで高解像度のビデオストリームを生成する。トランスコーダ602は、そのビデオストリームを、電子デバイス120へその後送信される低ビットレートで中解像度のビデオストリームにトランスコードする。
【0040】
本アプリケーションにおいて、一実施の形態では、トランスコーダ602は第1のトランスコーダと呼ばれ、トランスコーダ604は第2のトランスコーダと呼ばれる。別の実施の形態では、トランスコーダ602は第2のトランスコーダと呼ばれ、トランスコーダ604は第1のトランスコーダと呼ばれる。簡潔にし、且つ、明瞭にするために、本明細書では、本発明の実施の形態をトランスコーダ602及びトランスコーダ604に関して説明する。
【0041】
一実施の形態では、電子デバイス120は移動デバイスである。本実施の形態では、電子デバイス120は、無線接続上のデータを受信するように構成された任意のデバイスである。この任意のデバイスには、ラップトップコンピュータ、パームトップコンピュータシステム、携帯電話等が含まれるが、これらに限定されるものではない。
【0042】
図7は、本発明の実施の形態を実施できるコンテンツ分配ネットワーク614を有するデータセッションハンドオフの例示のシステム700のブロック図である。システム700は、データセッションハンドオフに含めることができる例示のメディアサービスとして、トランスコードを含むことに留意されたい。システム700は、任意のメディアサービスを含むことができ、トランスコードに限定されるものでないことが理解される。一実施の形態では、システム700において、データ(たとえば、ビデオメディア)が、無線リンクを介して移動クライアント(たとえば、移動電子デバイス)へストリーミングされる。一実施の形態では、そのデータは、ストリーミング音響やストリーミングビデオ等、連続フローで構造化されて処理されるストリーミングデータである。
【0043】
一実施の形態では、システム700は、コンテンツ分配ネットワーク614(たとえば、データ送信元)、トランスコーダデバイス602及び604、並びに電子デバイス120を備える。一実施の形態では、トランスコーダ602は、セル608に位置する電子デバイスへメディアストリームを供給するように動作することができ、トランスコーダ604は、セル610に位置する電子デバイスへメディアストリームを供給するように動作することができる。コンテンツ分配ネットワーク614は、複数のエッジサーバ(たとえば、エッジサーバ616及び618)を備える。エッジサーバ616及び618は、それぞれが当該エッジサーバに地理的に非常に近い移動クライアントへメディアを供給するためのものとなるように地理的に分散され、ネットワークオーバーヘッドを軽減するようになっている。本実施の形態では、エッジサーバ616は、トランスコーダ602へ送信されるフルビットレートで高解像度のビデオストリームを生成する。トランスコーダ602は、そのビデオストリームを、電子デバイス120へその後送信される低ビットレートで中解像度のビデオストリームにトランスコードする。
【0044】
一実施の形態では、電子デバイス120は移動デバイスである。本実施の形態では、電子デバイス120は、無線接続上のデータを受信するように構成された任意のデバイスである。この任意のデバイスには、ラップトップコンピュータ、パームトップコンピュータシステム、携帯電話等が含まれるが、これらに限定されるものではない。
【0045】
図6及び図7を参照して、システム600及びシステム700は、共に、トランスコーダ602及び604を使用して、ビデオストリームを、ターゲットの電子デバイス(たとえば、電子デバイス120)の表示能力と一致した低ビットレートのストリームにトランスコードする。
【0046】
一インプリメンテーションでは、コンテンツサーバ102又はエッジサーバ616は、フルビットレートのメディアストリームをトランスコーダ602へ送信し、トランスコーダ2602(602?)は、セル608に位置する電子デバイスへのメディアをトランスコードする。一実施の形態では、コンテンツサーバ102はエッジサーバであることが理解されるべきである。トランスコーダ602は、次に、メディアストリームを低ビットレートのストリームにトランスコードし、そのストリームを電子デバイス120へ送信する。電子デバイス120が別のセルに向けて移動しているという通知をトランスコーダ602が受信すると、トランスコーダ602は、その新たなセルに貢献する別のトランスコーダとのハンドオフオペレーションを開始する。このハンドオフプロセスは、図8A及び図8Bのプロセス800において、以下で非常に詳細に説明する。
【0047】
一実施の形態では、ハンドオフは、サービスロケーションマネージャ302等の中央ノードの制御及び指示の下で達成される。別のエンティティ(たとえば、専用ハンドオフマネージャ)がこの機能を代わりに実行できることが理解される。一実施の形態では、サービスノード202は、メディアセッションを別のサービスノードへ転送するのに使用されるハンドオフ情報を指定する。このような一実施の形態では、ハンドオフ情報は、サービスロケーションマネージャ302へ転送される。サービスロケーションマネージャ302は、次に、メディアセッションハンドオフを受け取ることになるサービスノード(たとえば、サービスノード204)を選択することができ、ハンドオフ情報をそのサービスノードへ転送することができる。別の実施の形態では、サービスロケーションマネージャ302は、メディアセッションハンドオフを受け取ることになるサービスノードを特定することができ、そのサービスノードへハンドオフ情報を直接通信するようにサービスノード202に指示することができる。
【0048】
図8A及び図8Bは、本発明の一実施の形態によるデータセッションハンドオフのプロセス800を示すフローチャートである。一実施の形態では、プロセス800は、トランスコーダデバイス(たとえば、トランスコーダデバイス602又は604)において、メモリに記憶されてコントローラにより実行されるコンピュータ可読プログラム命令として実施される。図8A及び図8Bには具体的なオペレーションが開示されているが、このようなオペレーションは例示である。すなわち、本発明は、他のさまざまなオペレーション、又は、図8A及び図8Bに列挙したオペレーションの変形を実行することにも良く適している。
【0049】
プロセス800のオペレーション805では、移動デバイス(たとえば、図6の電子デバイス120)が、トランスコーダ(たとえば、図6のトランスコーダ602)と接触して、メディアファイル(たとえば、データ)を要求する。一実施の形態では、トランスコーダ602は、セル608内に位置する電子デバイスへメディアを供給するように動作することができる。一実施の形態では、移動デバイスは、最も近いトランスコーダと接触して、メディアファイルを要求する。一実施の形態では、移動デバイスは、メッセージを送信することによってトランスコーダと接触する。一実施の形態では、このメッセージは伝送制御プロトコル(TCP)メッセージである。オペレーション805は、図6及び図7では、矢印630として図的に表されている。
【0050】
オペレーション810では、トランスコーダ602が、データ送信元(たとえば、コンテンツサーバ102又はコンテンツ分配ネットワーク614)と接触して、メディアセッションをセットアップする。一実施の形態では、トランスコーダ602は、メッセージを送信することによってデータ送信元(たとえば、図6のコンテンツサーバ102又は図7のコンテンツ分配ネットワーク614)と接触する。一実施の形態では、このメッセージはTCPメッセージである。オペレーション810は、図6及び図7では、矢印632として図的に表されている。
【0051】
オペレーション815では、データ送信元が、要求されたメディアをトランスコーダ602へストリーミングすることを開始する。一実施の形態では、要求されたメディアは、ユーザデータグラムプロトコル(UDP)を使用して送信される。オペレーション815は、図6及び図7では、矢印634として図的に表されている。
【0052】
オペレーション820では、トランスコーダ602が、ストリーミングメディアを電子デバイス120にダウントランスコードする。オペレーション820は、図6及び図7では、矢印636として図的に表されている。
【0053】
オペレーション825では、電子デバイス120が新たな位置(たとえば、セル610)へ移動しているとの通知をトランスコーダ602が受ける。一実施の形態では、電子デバイス120は、新たな位置への移動をトランスコーダ602へ直接通信する。別の実施の形態では、その移動の通知は、電子デバイス120の非常に近くに位置して電子デバイス120の移動を監視するカメラによりトランスコーダ602へ通信される。別の実施の形態では、電子デバイス120が新たな位置へ移動することは、当該電子デバイス120の監視された振る舞いに基づいてコンピュータシステムにより予測される。別の実施の形態では、電子デバイス120が新たな位置へ移動することは、トランスコーダ602によって監視される電子デバイス120の内部に常駐した全地球測位システムに基づいて判断される。新たな位置への電子デバイス120の移動をどの方法によってもトランスコーダ602に気付かせることが可能であることが理解されるべきである。セル608からセル610への電子デバイス120の移動は、図6及び図7では、矢印636として図的に表されている。
【0054】
オペレーション830では、トランスコーダ602が、セル610に非常に近いトランスコーダ(たとえば、トランスコーダ604)へハンドオフメッセージを送信し、電子デバイス120へメディアをストリーミングする準備をするようにトランスコーダ604に通知する。一実施の形態では、このハンドオフメッセージは、トランスコード情報(たとえば、電子デバイス120の表示サイズ及び帯域幅サイズ)並びにシーケンスヘッダ(たとえば、データストリームの現在のバイト位置)を含む。このシーケンスヘッダは、メディアストリームのどの部分が現在電子デバイス120へ送信されているかを示す。一実施の形態では、トランスコーダ602は、メッセージを送信することによってトランスコーダ604に通知する。一実施の形態では、このメッセージはTCPメッセージである。オペレーション830は、図6及び図7では、矢印638として図的に表されている。
【0055】
オペレーション835では、トランスコーダ604が、データ送信元と接触して、メディアセッションをセットアップする。一実施の形態では、このメディアセッションは、オペレーション830で受信されたシーケンスヘッダに基づいて要求される。シーケンスヘッダに示されたビット位置においてメディアセッションを開始することにより、電子デバイス120は、トランスコーダの切り換え中であってもシームレスなメディアセッションを受信する。一実施の形態では、トランスコーダ604は、メッセージを送信することによってデータ送信元に通知する。一実施の形態では、このメッセージはTCPメッセージである。オペレーション835は、図6及び図7では、矢印640として図的に表されている。
【0056】
オペレーション840では、データ送信元が、要求されたメディアをトランスコーダ604へストリーミングすることを開始する。一実施の形態では、上記で列挙したように、メディアセッションは、シーケンスヘッダに示されたビット位置を起点として、電子デバイス120にトランスコードされ、電子デバイス120にシームレスなメディアセッションを提供する。一実施の形態では、要求されたメディアは、UDPを使用して送信される。オペレーション840は、図6及び図7では、矢印642として図的に表されている。
【0057】
オペレーション845では、トランスコーダ604が電子デバイス120と通信する準備ができていること、及び、トランスコーダ602が電子デバイス120との通信を遮断できることを、トランスコーダ604がトランスコーダ602に通知する。一実施の形態では、トランスコーダ604は、メッセージを送信することによってトランスコーダ602に通知する。一実施の形態では、このメッセージはTCPメッセージである。オペレーション845は、図6及び図7では、矢印644として図的に表されている。
【0058】
オペレーション850では、トランスコーダ604が、ストリーミングメディアを電子デバイス120にダウントランスコードする。上述したように、ストリーミングメディアは、オペレーション830で受信されたシーケンスヘッダに示された位置でトランスコードを開始して、シームレスな形式で電子デバイス120に提示される。オペレーション850は、図6及び図7では、矢印648として図的に表されている。
【0059】
オペレーション855では、トランスコーダ602が、電子デバイス120へのメディアのトランスコードを停止する。
【0060】
関連した作業
デガス(Degas)システムは、ユーザが定義したメディア処理を、プログラマブルメディアゲートウェイを使用して可能にするものである[9]。ディグレット(deglet)と呼ばれるプログラムを、宣言型プログラミングモデルを使用してゲートウェイにアップロードすることができる。デガスシステムは、メディアゲートウェイと相互作用するための特別なクライアントを含む。他方、本明細書で説明したSLMシステムは、3GPPに準拠したクライアントには完全にトランスペアレントとすることができる。デガスシステムは、ネットワーク帯域幅の利用に関して最適にゲートウェイを配置しようと試み、必要に応じて、処理タスクを動的に移動させることができる。しかしながら、資源管理は実施されなかった。このシステムは、マルチメディアソフトウェアライブラリを使用して、メディアゲートウェイのコードを最適化する。
【0061】
コンテンツサービスネットワーク(CSN(content service network))が[7]で提案された。キーフレームの抽出を有するビデオセグメンテーションが、サンプルの基盤サービスとして使用された。本発明者等のアーキテクチャと同様に、CSNは、既存のCDNを利用して、基盤サービスとして計算(たとえば、処理)を追加する。サービス分散/管理(SDM(Service Distribution and Management))サーバが、ネットワークのサービス、並びに、サーバ負荷及びクライアントの人口統計の履歴に関する情報を保持するのに使用される。リダイレクトサーバが、処理要求をアプリケーションプロキシサーバへ送信するためにネットワークエッジに配置される。提案されたCSNは、DNSリダイレクトを使用して、最も近いアプリケーションプロキシへ要求を送信する。本発明者等のアーキテクチャでは、この機能は、動的なSMILの書き換えによってアプリケーションレベルで完全に実行される。これによって、DNSリダイレクト能力の必要性は基盤から取り除かれる。
【0062】
CSNとSLM/MSAとの相違
*CSNは、独立したオーバーレイ基盤を必要とし、サービス割り当てプロセス用に追加のDNSリダイレクトを必要とする。SLMは、既存のコンテンツ配信構造に埋め込まれ、サービス要求の転送は、動的なSMILの書き換えによってアプリケーションレベルで完全に実行される。
*CSNは、加入モデル(subscription model)を使用し、エンドユーザ又はコンテンツプロバイダのいずれかが特定のサービスに加入する。SLMは、どのパーティからも加入を必要としない。
*CSNでは、サービスセッションがサービスノードに一旦割り当てられると、そのノードは、ノードが障害を受けない限り、そのセッションを完了する。SLMは、サービスセッションの最中に異なるノードに動的に切り換わることができる。
*CSNは、結果を供給できるようになる前にサービスが完了されていることを必要とするOPESを使用する。SLMは、ストリーミングされるメディアサービスを可能にする。すなわち、メディアサービスの結果は、サービスセッションが進行中の時に並列に供給することができる。
*CSNは、動的なサービス配置/セッション割り当てを有するサービス管理を実施する方法を開示しない。一方、これは、SLMに関しては本明細書で説明される。
*CSNは、AP(別名、サービスノード)の「監視」がどのように行われるかを示さず、そういうことから、監視がスケーラブルであるのかどうかも、監視がノードの障害を自動的に検出するのかどうかも示されない。SLMは、本明細書で説明するようなプッシュベース又はプルベースの監視を利用することができる。
*受信された監視統計値(それらの統計値がどのように受信されようとも)は、SLMにより近時のディスパッチを反映するように変更される。CSNはこれを教示していない。
【0063】
要約すれば、移動デバイスは、あちらこちらに移動し、バックグラウンドタスクの開始及び停止を行い、自身のプロセッサパラメータ及びディスプレイパラメータを、さまざまな電力管理ストラテジーを考慮に入れるように調整することから、これらのメディアサービスは、移動デバイスによって提示される、高速に拡大し、且つ、非常に動的な、ディスプレイ、プロセッサ、及び帯域幅の1組の制限をサポートするのに望ましい。概説したSLMソリューションは、CPUに集中したメディア処理タスクの負荷をネットワークの複数のサービスノードにわたってバランスさせる問題に有効に対処することができる。クライアントが既知のポータルサイトにアクセスする時、サービスロケーションマネージャ302は、要求を、最小負荷のサービスノードに動的にルーティングする。さらに、トランスコードされたストリームは、3GPPに準拠したクライアントにトランスペアレントな方法で、ネットワークの適切なサービスノードから提供される。
【0064】
このアーキテクチャは、[6、11]で概説されているように、移動クライアントのメディアサービスセッションのアプリケーションレベルのハンドオフをトリガするように拡張することができる。SLMアーキテクチャは、新たなクライアントの位置の近くにあるメディアサービスノードを判断するのによく適している。セッション中のハンドオフを実行する能力によって、前述したものよりもはるかにきめの細かな粒度の負荷バランシングが可能になる。
【0065】
[コンポーネント化されたネットワークベースのメディアサービスの例示のアーキテクチャ]
本発明の一実施の形態によるメディアサービスアーキテクチャ(MSA(Media Service Architecture))は、ストリーミング音響及びストリーミングビデオがネットワークを通ってフローする際に、当該ストリーミング音響及びストリーミングビデオに対して動作するサービスの要求、構成、及び実行を行うための柔軟で一般的なアーキテクチャを提供することができる。MSAは、要求されたメディアサービスをモジュール形式の処理コンポーネントに分解する。これらのモジュール形式の処理コンポーネントは、ネットワーク全体にわたってサーバに分散させることができ、且つ、(たとえば、標準的なストリーミングプロトコルを介して)相互通信することができるものである。標準的なプロトコルを使用することによって、MSAとメディアコンテンツ配信ネットワークとの間のシームレスな相互運用性も与えられる。MSAは、利用可能な計算資源及びネットワーク資源を効率的に使用する方法で、ネットワーク接続されたサーバの監視、及び、ネットワーク接続されたサーバへのサービスコンポーネントの割り当てを行うことによって、メディアサービスを管理する。サービスのコンポーネント化及びネットワーク配信によって、新たなサービス及び改良されたサービスの高速な開発が可能になり、幅広いサービス可用性及びデバイス互換性が増進される一方、エンドユーザに対するシステムメンテナンスの負担が大幅に削減されることに留意されたい。
【0066】
一実施の形態内では、MSAは、複雑なメディアサービスを、柔軟に構成されたネットワークベースのパーツに分解することによって、コンポーネント化されたウェブベースのサービスをストリーミングリッチメディアの領域に拡張する。この手法によって、新しい強力なアプリケーションの高速な開発及び簡単なメンテナンスが可能になり、多数のユーザへのスケーラビリティが増進される。このすべてが、メディアサービスクライアントの立場からの使いやすさを犠牲にすることなく達成される。
【0067】
ネットワークベースのメディアサービス
スタンドアロンシステムで音響、ビデオ、及び他のメディアに対して実行される多くのタイプの解析を、ネットワーク接続処理アーキテクチャに統合することができる。たとえば、発話認識、顔検出及び顔認識、並びに音響雑音除去は、ローカルなデスクトップを離れて、利用可能な帯域幅及び処理能力を有するネットワーク接続されたサーバマシンへ簡単に移動させることができる。これに加えて、MSAは、実用的で新しい利用可能な高い価値のサービスを作り出す。このサービスには以下のものが含まれる。
【0068】
ビデオ合成:複数の送信元からのコンテンツを有する単一のビデオストリームを生成するためのマスクに従って、2つ又は3つ以上のビデオストリームを画像ごとにブレンドすることができる。多くのアプリケーションの中には、「ピクチャインピクチャ」特殊効果及び「ブルースクリーニング」特殊効果がある。ビデオトランスコードは、入力ストリームの一致しないフォーマット、解像度、及びフレームレートを打開するのに望ましい場合がある。
【0069】
会議の要約及び転写(transcription):カメラ及びマイクが会議に存在する場合、入力する音響ストリーム及びビデオストリームをネットワークで収集でき、ビデオ及び音響のセグメンテーション並びに音声及び顔の認識を用いて処理して、インデックスされた会議記録を生成することができる。これに加えて、自動発話認識(ASR)、キーワードスポッティング、及び文書要旨抽出(document gisting)を使用して、インデックスされ、注釈を付けられ、且つ、部分的に転写された、会議記録を生成することができる。これらのタイプの記録は、後に会議コンテンツを素早く思い起こすのに使用することができる。
【0070】
マルチ音源音響強化:いくつかのマイク使用可能携帯情報端末(PDA)又は他の電子記録デバイスを用いた会議等において、複数の音響ストリームが、単一の部屋で異なるマイクから取り込まれている時、ブラインド音源分離をこの特別なマイク配列に適用して、異なる参加者からの発話を分離して雑音除去することができる。
【0071】
動的なビュー選択:ウェブキャストされるライブ遠隔会議講演の用途では、多くの場合、十分なカバレッジを得るために複数のカメラが望ましい。最良のカメラビューは、通常、そのイベント中に何度も変わる。イベントからのビデオストリーム及び音響ストリームの解析をネットワークベースのサービスが使用して、最良のビデオフィードを自動的に選択することができる。
【0072】
これらのタイプのメディア解析は、今日、ローカルなデスクトップ処理を通じて利用可能である。しかしながら、ネットワーク内でメディアストリームに対して動作する、コンポーネント化されたサービスは、従来のデスクトップモデルを上回る多くの利点を提供する。この利点には以下のものが含まれる。
【0073】
アプリケーション提供の改善:開発者は、MSAを単に更新するだけで、改良されたサービスを素早く分配することができる。新たなサービスは、コンポーネントの混合及び整合を行うことによって素早く作成される。単にユーザがアプリケーションをインストールすることができる自身のマシンにアクセスできる時だけでなく、ユーザがネットワークに到達できる時はいつでも、アプリケーションが利用可能である。
【0074】
システム管理運営の削減:処理はネットワークで実行されるので、エンドユーザは、自身のマシンに対する継続的なインストール及び更新の面倒について気にする必要がない。
【0075】
マルチストリーム処理の円滑化:会議要約等の多くのメディアベースのアプリケーションは、結合処理のために収集される複数のストリームを含む。これらのストリームが、同じマシンから発生したものでない場合、通例、ネットワーク内でそれらのストリームを処理した方がはるかに効率的である。
【0076】
計算環境の制御:個々のユーザのマシンは、それらマシンの計算能力、メモリ容量、及びオペレーティングシステムの点で広く変化する場合があるが、MSAマシンは、狭い範囲の規格値に標準化することができる。サービスコンポーネントは、これらの規格値について開発及び最適化することができ、より信頼性のある全体的なアプリケーション性能がもたらされる。
【0077】
結果の効率的な共有:会議要約の状況等の多くの状況では、複数のユーザが望む処理されたメディア及び解析結果は、ほとんど同じであるか、又は、同一である。ネットワーク内処理は、各ユーザのマシン上でこの処理を複製するのではなく、重複計算を1回実行し、次いで、それらの結果を各ユーザに分配することができる。簡単に言えば、ネットワークベースのメディア処理サービスは、メンテナンスの削減及び信頼性の問題について、現在のローカルなメディア中心のアプリケーションよりもはるかに大きな柔軟性及び機能性の可能性をユーザに提供する。
【0078】
[メディアサービスアーキテクチャ(MSA)]
MSAの実施の形態について、メディア配信アーキテクチャと統合すること、及び、非常に柔軟な方法でメディアサービスを可能にすることに焦点を当てる。MSAのいくつかの特徴は、以下のものを含むことができる。
相互運用性:オープンインターフェース及びオープン標準規格を使用したコンポーネント間のシームレスなストリーミングの相互接続、
モジュール性:ネットワーク内で動的なメディアサービスの構築を可能にするモジュール形式のサービスコンポーネント、並びに
管理可能性:スケーラブルな方法での計算資源及び記憶資源へのメディアサービスの効率的な割り当て。
アーキテクチャがこれらの特徴のそれぞれを提供できる手段を以下に説明する。
【0079】
ストリーミングの相互運用性のためのシームレスな相互接続
MSA内、並びに、MSAの要素間及びメディアコンテンツ配信ネットワーク(CDN)のコンポーネント間におけるメディアストリームのマシン間のすべてのトランスポートは、「Ear」と呼ぶことができる均一な入力モジュール及び出力モジュールを介して行うことができる。一実施の形態内では、Earは、標準規格ベースのメディアストリーミングプロトコルに依拠し、それによって、MSAとCDN及び他のストリーミングメディアアプリケーションとの統合を容易にする。入力Ear及び出力Earは、共に、マルチメディアを記述するためのSDPプロトコル、セッション管理及びメディア再生制御のためのリアルタイムストリーミングプロトコル(RTSP)、並びに、リアルタイムの制約の下でのデータのトランスポートのためのリアルタイムプロトコル/リアルタイム制御プロトコル(RTP/RTCP)を介して、他のネットワーク接続されたマシンと通信することができる。ただし、プロトコルはこれらのものに限定されるものではない。所与のEarは、単一のメディアストリームのフローの一方の端部(送信又は受信)を管理することができるが、同じ同期したストリーミングセッションに複数のEarをリンクすることができる。
【0080】
また、ネットワーク送信に多く使用される圧縮フォーマットと、メディア処理及び解析技法によって多く要求される非圧縮フォーマットとの間で、このアーキテクチャを通ってフローするマルチメディアを相互変換できるように、Earは、データの圧縮機能及び伸張機能も提供することができる。入力Earは、入力するメディアストリームのフォーマットを自動的に検出でき、適切な伸張モジュールを募集して、そのデータをメディア解析に適切な形式に変換することができる。出力Earは、生のデータストリームを、ネットワークトランスポートに適した圧縮フォーマットに変換することができる。サポートされた標準圧縮方式には、動画エキスパートグループ(MPEG)であるMPEG−1、MPEG−2、及びMPEG−4のビデオ、並びに、オーディオ/モデムライザ(AMR)及びWAVの音響が含まれ得るが、これらに限定されるものではない。適切な圧縮モジュール及び伸張モジュールを登録することによって新たなフォーマットを追加できることに留意されたい。
【0081】
最後に、メディア処理技法は、ストリーミングメディアと同じレートで動作できない場合があるので、Earは、データバッファリング方法及びフロー制御方法を実施して、データレートの不一致を取り除くことができる。循環バッファリングによって、高価なデータコピーが最小にされ、マルチスレッド化によって、ネットワーク、アプリケーション、並びに伸張ルーチン及び圧縮ルーチンからのデータ要求に効率的にサービスが提供される。バッファオーバーフローは、フレームを廃棄するための選択可能なポリシーによってハンドリングすることができる。
【0082】
柔軟なモジュール形式のサービス分解
MSAサービスは、サービスポータルと接触することによって、簡単な高レベルメディアサービス要求から開始することができる。これらの要求は、ユーザデバイスがインターネット等のネットワークを介して直接行うこともできるし、ローカル又はMSA内のいずれかでユーザデバイスによって実行されるアプリケーションが生成することもできる。各要求は、送信元及び宛先のユニフォームリソースロケータ(URL)等のあらゆるサービスパラメータと共に、「ビデオ合成」等のサービス名を含むことができる。
【0083】
これらの簡単なメディアサービス要求は、要求側クライアントからのほとんどのメディアサービスの複雑さを隠蔽する。たとえば、会議要約は、発話認識、顔検出、ビデオ動き解析、及び音声識別を使用することができ、次に、これらのコンポーネント技法のそれぞれは、いくつかのサブコンポーネントに分割することができる。他方、所与の処理技法は、多くの異なるサービスにおける有用なコンポーネントとすることができる。これらの理由から、メディア処理技法を、柔軟で動的に組み合わせられる、モジュール形式の再利用可能なコンポーネントにカプセル化することが望ましい。
【0084】
したがって、各メディアサービスは、データストリームを通じて通信する独立した「コンポーネント」のグラフとして構造化される。各コンポーネントは、互いにしっかりと動作する1つ又は複数の「サブコンポーネント」処理技法をカプセル化することができる。1つのメディアサービスのコンポーネントは、単一のマシンに動的に配置することもできるし、ネットワークにわたって動的に分散することもできる。コンポーネントは、適切にカプセル化されるので、各コンポーネントは、この分散を気にすることなく動作することができる。
【0085】
図10は、MSAが本発明の一実施の形態に従ってサービスを分解して分散させる例示のオペレーションを示すブロック図である。サービスポータル1006は、ユーザデバイス1002によって発行されたメディアサービス要求1004を受信した後、その要求の遂行を管理するためのサービスビルダ1008を起動して実行する。指名された各メディアサービスを異なるサービスビルダ(たとえば、1008)に関連付けることができ、各サービスビルダは、そのサービスを実施するコンポーネント(たとえば、1001)の抽象グラフの構造を知っていることに留意されたい。このグラフの各コンポーネントについて、サービスビルダ1008は、コンポーネント配置要求1010を「サービスロケーションマネージャ」(SLM)1012へ送信して、本明細書で説明したように、1つ又は複数のコンポーネントを実行するための、ネットワーク接続されたサービス提供可能マシン(たとえば、1022、1024、又は1026)を決定する。SLM1012は、コンポーネント配置決定1014をサービスビルダ1008へ返信する。このコンポーネント配置決定1014は、各コンポーネントの各入力ストリーム及び各出力ストリームの具体的なURL(ポート番号を有する)を含むことができる。サービスビルダ1008は、選択されたサービス提供可能マシン(たとえば、1022)によるこれらの決定をグループ化し、次いで、選択された各マシンへ1つの構築要求1016をネットワーク(たとえば、インターネット1028)を介して送信する。この構築要求1016は、所望のコンポーネント120並びにそれらコンポーネントの入力URL及び出力URLを列記している。
【0086】
[ローカルビルダ]
「ローカルビルダ」(たとえば、1018)は、各MSAマシン(たとえば、1022、1024、及び1026)で実行され、構築要求1016にサービスを提供する。所与の要求1016について、ローカルビルダ1018は、指名されたコンポーネントのそれぞれを作成することができ、入力URL及び出力URLを使用して、Ear1030及び1032をインスタンス化し、これらのコンポーネント及び他のマシンのコンポーネント(たとえば、1022及び1026)の間でデータを送受信する。このようにして、ローカルビルダ1018は、サービスコンポーネントを結び付ける。また、ローカルビルダ1018は、2つ以上のコンポーネントによって行われる同一のサブコンポーネントの処理を取り除くことによって、単一のマシン(たとえば、1024)で実行される、相互通信するコンポーネントの各集合の最適化も試みる。このような重複は、時に、サービスが合理的なサイズの再利用可能なコンポーネントに分割された場合に起こる。サービスのモジュール性のこのコストは、このように、ローカルビルダの最適化によって軽減される。ローカルビルダは、冗長なサブコンポーネントの処理を取り除いた後、サービス処理を遂行するために、1つにまとめられたコンポーネントの入力ストリーム及び出力ストリームを必要に応じてリダイレクトする。
【0087】
図10内において、すべての構築要求1016が遂行された後、サービスを実行する準備ができる。データの宛先に最も近い、サービスグラフにおけるコンポーネントが、RTSPのPLAYコマンドを介してメディアを要求し、それによって、接続されたコンポーネントのグラフ全体を通じてデータをプルする。ただし、コマンドは、RTSPのPLAYコマンドに限定されるものではない。したがって、所望のメディアは、1つ又は複数の送信元(たとえば、コンテンツサーバ1033並びにライブカメラ1035及び1037)からフローし、選択されたサービスコンポーネントは、そのストリーミングメディアに対して動作し、最終的には、処理されたメディアを宛先(たとえば、出力ディスプレイ1003)へ配信する。矢印1032と同様に見える、図10内の矢印は、ストリーミングメディア/データを表していることに留意されたい。
【0088】
動的なサービスロケーション管理−コンポーネント(複数可)配置
MSAネットワークの多くの個々のマシンは、メディアサービスについて基礎を成す処理を実行することができる。したがって、各メディアサービス要求(たとえば、1004)について、要求を最も良く遂行するためにMSA資源をどのように割り当てるかについての決定を行うことができる。ネットワークの負荷を過度に増加させることを回避するために、これらの決定は、さまざまなサービス提供可能マシン(たとえば、1022、1024、及び/又は1026)の、メディアストリームの送信元と宛先との間の良好なパスに対する(ネットワーク)近接性に部分的に基づくことができる。また、サービスの遅延を最小にし、且つ、サービスの品質を最高にするために、これらの決定は、各MSAメディアプロセッサが保持する現在の処理負荷を考慮することもできる。最後に、サービスのいくつかのコンポーネントがサブコンポーネントの処理を共有する場合、それらのコンポーネントを同じサービス提供可能マシン(たとえば、1022、1024、又は1026)上にグループ化することが好ましい場合がある。
【0089】
これらの決定を知的に行う一方法は、[17]で説明されるような「サービスロケーション管理」を利用することである。MSAは、サービスロケーションマネージャ(SLM)、たとえば1012を含む。このSLMは、サービスを含む個々のコンポーネントを配置する場所を判断するものである。所与のメディアサービス要求(たとえば、1004)について、SLM(たとえば、1012)は、後述する複数の因子を考慮して、関連したサービスビルダ(たとえば、1008)により定義された順序で、一時に1つずつサービスのコンポーネントを配置する。コンポーネントの配置決定は、代替的に、すべての因子及びすべてのコンポーネントにわたる同時最適化を通じて同時に行うこともできる。ただし、これは、適度に高度なサービスについても、複雑で多くの時間を要する手続きとなる可能性がある。また、異なるコンポーネントの配置決定は、代替的に、完全に独立して行うこともできる。ただし、これは、データパスが非効率的になり、サブコンポーネントの処理が重複する可能性がある。SLM(たとえば、1012)は、そのようにしないで、近時のコンポーネント配置決定のテーブルを保持することもでき、新たな各決定の基礎を部分的にこの履歴に置くこともできる。
【0090】
たとえば、サービスの抽象グラフにおいて互いに結び付けられたコンポーネントを、同じサービス提供可能マシン(たとえば、1022)、又は、高帯域幅及び/若しくは少ない待ち時間の相互接続を有するマシンに優先的に配置できるように、各コンポーネント配置決定を、同じサービス要求の他のコンポーネントについての前の決定に部分的に基づくものとすることができる。コンポーネントのグラフ全体にわたる同時配置最適化(joint placement optimization)は、おそらく高価なプロセスとなり、完全に独立した配置決定は、データパスがあまりにも複雑になるおそれがあり、重複した計算を取り除くことができないおそれがあるが、このようなコンポーネント配置決定の基礎を前の決定履歴に置くことは、コンポーネントのグラフ全体にわたる同時配置最適化と、完全に独立した配置決定との間の折衷案である。したがって、SLM(たとえば、1012)は、前の配置決定に基づいて配置を最適化することは可能であるが、コンポーネントの全グラフにわたって割り当てを最適化するように試みることはできない。代替的に、SLM(たとえば、1012)は、前の配置決定に基づいて配置を最適化することが可能であり、且つ、コンポーネントの全グラフにわたって割り当てを最適化するように試みることができることにも留意されたい。
【0091】
図11は、本実施の形態の一実施の形態によるサービスロケーション管理方法論のブロック図である。サービスビルダ1008によってSLM1012へ送信された各コンポーネント配置要求1010について、SLM1012は、まず、ネットワークの区域及び前のコンポーネント配置決定に基づいて、可能性のあるホストマシン(たとえば、1022、1024、及び/又は1026)のプールを選択することができる。そのネットワークの区域にアクセスするために、SLM1012は、サーバマシン(たとえば、1022、1024、及び1026)間のネットワーク「距離」のテーブル1102を調べて、どのマシンがサービスデータの送信元及び宛先、又は、それらの間のパス(複数可)に近いかを判断することができる。テーブルの距離は、測定されたネットワーク遅延及び帯域幅によって求めることができることに留意されたい。SLM1012は、そのサービスの他のコンポーネントが前に配置されたことがあるマシンを、現在のコンポーネントの配置についてより優先させることができ、特に、前に配置されたそれらのコンポーネントが、現在のコンポーネントに直接結び付けられることになるか、又は、現在のコンポーネントとサブコンポーネントの処理を共有する可能性があることを示されている場合には、優先させることができる。この情報のすべては、可能性のある各ホスト(たとえば、1022、1024、又は1026)の「マシン配置コスト」の計算に組み合わせることができる。
【0092】
また、SLM1012は、前のコンポーネント配置決定を見直して、同時コンポーネント配置を通じて可能性のある計算節減を見つけることもできる。一実施の形態内では、各タイプのコンポーネントは、自身が含む指名された「サブコンポーネント」技法のリストに関連付けられている。たとえば、「発話認識」コンポーネントは、(音響)ケプストラム特徴量(cepstral feature)を計算することができ、HMMを使用して、それらの特徴量を解析することができる。前に配置されたコンポーネント内に同じケプストラムサブコンポーネント(cepstral sub-component)を有するマシンがある場合、そのマシンを現在の決定プロセスで優先させることができる。この情報は、ネットワークの区域評価と組み合わせて、「マシン配置コスト」1106を生成することができ、最小コストを有するマシンは、現在のコンポーネントについて可能性のあるホストマシンのプールを形成する。これらのコストは、次に、各マシンにおける資源可用性に従って調整することができる。
【0093】
図11内において、コンポーネントの必要とする計算資源及びメモリ資源は、メディアの解像度やフレームレート等のサービスパラメータを、そのタイプのコンポーネントに関連付けられた資源要件ルーチン1108に供給することによって、SLM1012により判断される。可能性のあるホストにおける資源可用性は、それらのマシン(1022、1024及び1026)に常駐するローカル資源マネージャ(LRM(Local Resource Manager))(たとえば、1110、1112、及び1114)に資源照会1116を送信することによるLRMの診断を通じて、SLM1012が判断することができる。各LRM(たとえば、1110、1112、又は1114)は、自身のオペレーティングシステムに直接問い合わせることによってそのマシンの状態を監視できることに留意されたい。また、LRMは、サービスロケーションスーパーバイザ(SLS)と呼ぶこともできることにも留意されたい。また、マシンのローカルビルダ(たとえば、1018)からの、保留中で且つ近時に遂行された要求は、現在のプロセッサの負荷統計値にまだ反映されていない場合があるので、LRMは、これらの要求を追跡(図示せず)することもできる。各LRM(たとえば、1110、1112、又は1114)は、次に、コンポーネントがそこに配置された場合に、当該コンポーネントによる使用に予約されたネットワークポート番号と共に、マシン資源ステータスをSLM1012へ返信することができる。SLM1012は、マシンの資源可用性に反比例して、すべてのマシン配置コスト1106をインクリメントすることができる。したがって、SLM1012は、可能性のある各ホスト(たとえば、1022、1024、又は1026)の最終的なマシン配置コスト1106を計算することができる。
【0094】
最小マシン配置コストを有するマシンは、コンポーネントホストとして選択することができる。このホストを指定し、且つ、コンポーネントの入力URL及び出力URL並びに予約ポートを含むコンポーネント配置決定1014を、SLM1012がサービスビルダ1008へ返信することができる。また、SLM1012の近時の配置決定1104のテーブルを更新して、この情報を反映させることもできる。
【0095】
図10及び図11内において、SLM1012は、サービス提供可能マシンの負荷、ネットワーク負荷及び/又は帯域幅、クライアントの位置、既存のメディア/データサービスストリーミングセッション、クライアント要求の集約等に基づいてコンポーネントを配置する場所を決定することができる。このように、SLM1012は、複数のメディア/データサービスストリーミングセッションを管理することができる。
【0096】
例示のサービスのインプリメンテーション
さまざまなサービスを構築できるコンポーネントと共にMSAのプロトタイプが実施されていることに留意されたい。MSAの実施の形態のオペレーション及び利点をより良く示すために、ビデオメディアに対して動作する以下の3つのコンポーネントによりサポートされたサービスについて説明する。
サイズ変更:ビデオの幅及び/又は高さを変更する;たとえば、高解像度ビデオは、より良好な送信及びPDAでの表示のためにダウンサンプリングすることができる。
背景除去:シーンにおいて、人々等の動的な又は「興味のある」オブジェクトを抽出する一方、壁や家具等、シーンの他の変化しない光景を抑制する。背景除去コンポーネントの一実施の形態は、[18]の技法に基づくものとすることができる。この技法は、シーンの背景を一定の色(白等)に取り替えるように試みる一方、前景を変更せずそのままにする。
合成:ローカルテレビ(TV)の天気予報によって使用される「ブルースクリーニング」技法のように、マスクを使用して、ビデオストリームのピクセルを、別の画像又はビデオストリームからのピクセルと取り替える。合成コンポーネントは、特別な色(白等)を有するビデオストリームのピクセルを、別の画像又はストリームからのピクセルと取り替えることができる一方、前景を変更せずそのままにする。
【0097】
これらの3つのコンポーネントから複数の有用なサービスを構築することができる。
【0098】
PDAや移動電話等の移動クライアントに適した低解像度にビデオをトランスコードすることは、現代のCDN設計[19、20]にとって望ましく、サイズ変更コンポーネントを介して達成することができる。
【0099】
長期間にわたってシーンの外観の明示的なモデル化を行うことにより、背景除去コンポーネントは、そのシーンの興味のあるオブジェクトをより多くのビットを使用して符号化できるように、それらオブジェクトをセグメントにすることができる。静止カメラの場合、背景は、ビデオの開始時近くに1度送信し、背景が大きく変化するたび再び送信する必要があるだけである。これは、標準的な圧縮を上回るかなりの利得を達成することができる。標準的な圧縮は、背景が、移動する前景のオブジェクトによって現れるたびに、背景を「新しい」ものとして再送することになる。したがって、この背景除去コンポーネントをオプションとしてサイズ変更と併せて使用することにより、ユーザによって要求される極めて低い目標レベルにビットレートを低減することができる。
【0100】
ここでの説明は、上記コンポーネントの3つすべてを使用する「移動プライベートビデオ電話」(MPVP(Mobile Private Video Phone))サービスに焦点を当てる。このMPVPによって、ビデオ遠隔会議の参加者は、合成を使用して自身の背景を自身が選んだ画像又はビデオと取り替えることにより、他の参加者に自身の環境の詳細を見えないようにすることが可能になることに留意されたい。たとえば、ビーチから電話をかけている人は、自身のオフィスの背景画像を使用することを好む場合がある。ユーザが移動デバイスにおいてビデオを受信する場合、ビットレート削減のために、(サイズ変更を介した)ダウンサンプリングも使用することができる。
【0101】
MPVPサービスは、インターネットプロトコル(IP)電話通信アプリケーション内で開始することができる。このIP電話通信アプリケーションは、遠隔の参加者に対して音響チャネルをすでに開いており、現在、ビデオの追加を望んでいる。このアプリケーションは、「MPVP」サービスの要求を、宛先IPアドレスや所望のビデオ解像度等のパラメータと共に、MSAサービスポータル(たとえば、1006)へ送信することができる。このポータル1006は、次に、MPVPサービスビルダ(たとえば、1008)を開始することができる。このMPVPサービスビルダは、図12aに示す抽象グラフ等のサービスの抽象グラフを知っている。図12aは、本発明の実施の形態によるサービスのコンポーネントの例示の抽象グラフ1200であることに留意されたい。具体的には、抽象グラフ1200は、最終的にビデオをビデオの宛先1210へ配信する前に、ビデオ送信元1202からのビデオがサイズ変更コンポーネント1204へ送信され、サイズ変更コンポーネント1204が自身の出力を背景除去1206へ送信し、次に、背景除去1206が合成1208にフィードされることから成る。
【0102】
サービスビルダ(たとえば、1008)は、3つのコンポーネントが抽象グラフ1200に現れる順序で、それら3つのコンポーネントのそれぞれについてのコンポーネント配置要求(たとえば、1010)をSLM(たとえば、1012)へ送信することができる。例示として、図10及び図11のSLM1012がコンポーネントを配置できるサービス提供可能マシン1022、1024、及び1026をネットワーク1212が含むということが、図12b〜図12dに与えられている。また、SLM1012は、コンポーネントの2つ又は3つ以上が同じマシン(たとえば、1026)に配置される場合に、どれだけの量の計算を削減できるかも知ることができる。SLM1012は、コンポーネントをどのように分散するかについての決定に達するために、可能性のある計算節減、各マシンの現在の計算負荷レベル、各コンポーネントの処理要件、並びにネットワークトポロジー及びネットワーク負荷レベルを考慮することができる。ネットワーク1212におけるコンポーネントの3つの例示の分散が、図12b〜図12dに示されている。
【0103】
図12b〜図12d内において、サーバ1022、1024、及び1026は、ビデオの送信元1214及び宛先1216と共に、それらの相対的なネットワーク距離を反映するように配置されている。画像は、各リンク上をフローするビデオ(処理されることがある)を表していることに留意されたい。処理コンポーネントを有しないマシンはメディアを単に転送するだけである。
【0104】
図12bの第1の分散は、その長いデータパスがサービスの待ち時間を大きくすることになることから、本発明者等のSLMには好まれない。このような分散は、ネットワークトポロジー及び配置履歴を考慮しないランダム選択等のより単純な配置技法によって選択される場合がある。具体的には、最終的にビデオをその宛先であるPDA1216へ配信する前に、ビデオ送信元1214はビデオをサービス提供可能マシン1026へ送信し、サービス提供可能マシン1026は自身の出力をサイズ変更1204及び背景除去1206用のサービス提供可能マシン1022へ送信し、次に、サービス提供可能マシン1022は合成1208用のサービス提供可能マシン1024にフィードされる。
【0105】
図12cの第2の構成は、すべてのコンポーネント1204〜1208をサービス提供可能マシン1026に配置する。具体的には、最終的にビデオをその宛先であるPDA1216へ配信する前に、ビデオ送信元1214はビデオをサービス提供可能マシン1024へ送信し、サービス提供可能マシン1024は自身の出力をサイズ変更1204、背景除去1206、及び合成1208用のサービス提供可能マシン1026へ送信し、次に、サービス提供可能マシン1026はサービス提供可能マシン1022にフィードされる。すべてのコンポーネント1204〜1208をサービス提供可能マシン1026に配置することにより、これは、コンポーネント1204〜1208が個々のマシンにある場合に実行されるであろう、Ear1030、1032、1218、及び1220によって実行される、冗長なサブコンポーネントの処理の削減を通じてだけでなく、余分なビデオ伸張ステップ及びビデオ圧縮ステップを除去することによっても、計算の節減になる。図12cの構成は、このように、サービスネットワーク1212に取り入れられる全体の計算負荷を大幅に削減し、多くのサービスが進行中である場合のように、システム負荷レベルが高い場合に、好ましいものとすることができる。
【0106】
しかしながら、すべてのコンポーネントを1つのマシンに配置することの不利な点は、それらコンポーネントの組み合わせられた処理が、ビデオ送信元1214を起点とするストリーミングビデオのフレームレートに遅れない可能性が低くなるということである。たとえば、サイズ変更1204、背景除去1206、及び合成1208をすべて同じマシン(たとえば、1026)で30フレーム/秒で行うことは難しい場合がある。それゆえ、いくつかのフレームを廃棄することが必要な場合があり、その結果、ビデオ品質は低下する。
【0107】
他方、図12dに示すように、コンポーネント1204〜1208を3つの異なるマシン(たとえば、1022〜1026)にわたって拡散させることにより、3つのすべてのコンポーネント1204〜1208は、30フレーム/秒でフレームを廃棄することなく、円滑に実行される可能性が高くなり、特に、これらのマシン1022〜1026が、比較的負荷が小さいことから選択された場合には、円滑に実行される可能性が高くなる。具体的には、ビデオをその宛先であるPDA1216へ配信する前に、ビデオ送信元1214はビデオをサイズ変更1204用のサービス提供可能マシン1024へ送信し、サービス提供可能マシン1024は自身の出力を背景除去1206用のサービス提供可能マシン1026へ送信し、サービス提供可能マシン1026は自身の出力を合成1208用のサービス提供可能マシン1022へ送信する。
【0108】
SLM(たとえば、1012)によって行われる配置決定は、サービスビルダ(たとえば、1008)へ返信される。サービスビルダは、それらの配置決定をマシンごとにグループ化し、構築要求(たとえば、1016)を、それらのマシンに常駐するローカルビルダ(たとえば、1018)へ送出する。ローカルビルダは、要求されたコンポーネント(たとえば、1204、1206、及び/又は1208)を起動し、構築要求に指定されたURLに従ってデータを送受信するようにそれらのコンポーネントに指示する。すべてのローカルビルダが、自身のコンポーネントの準備ができたことをサービスビルダに通知すると、サービスを通るメディアフローをRTSPの「PLAY」コマンドを介して開始することができる。図12b〜図12dのマシン間のリンク上に示す画像は、実際のビデオストリームがさまざまなサービストポロジーを通ってフローする際に、そのビデオストリームに対して行われた処理の例を示していることに留意されたい。
【0109】
図12a〜図12dのこれらのサービス例は、MSAのいくつかの態様を示している。この手法は、処理されたストリームを複数のユーザデバイスへ分岐することだけでなく、数タイプのコンポーネントの処理を追加して組み込むように拡張できることが理解されよう。複数のユーザデバイスのそれぞれは、自身の分岐に沿って異なる処理をさらに要求することができる。また、この例はビデオ入力からビデオ出力を生成するが、他のサービスコンポーネントの多くは、ビデオ及び音響の解析を使用して、(たとえば、発話認識からの)テキスト又は(たとえば、ビジョンベースの人追跡及びアクティビティの解析からの)イベント要約及びタイムインデックス等の非メディアデータストリームを生成することができる。これに加えて、SLM(たとえば、1012)は、サーバの計算負荷、ネットワークトポロジー及びネットワーク負荷レベル、並びに、同じサービス提供可能マシンにおけるコンポーネントの同時配置を通じて得ることができる処理削減量に応じて、複数の方法のいずれかでコンポーネントの分散を決定することができる。
【0110】
ビデオ及び音響の解析及び処理の多くの進歩した技法が、広く使用されたアプリケーションにまだ進出していないことに留意されたい。これは、複雑なメディア処理アプリケーションが必要とすることが多いかなりの量の処理資源を得る際、及び、これらのアプリケーションを興味のあるメディアの送信元及び望ましい出力位置に接続する際に、それらアプリケーションを構成することの難しさに部分的に起因する場合がある。ネットワーク自体に存在する柔軟なメディア処理を可能にすることによって、メディアサービスアーキテクチャの一実施の形態は、高度なメディアリッチアプリケーションを広範囲で主流として使用されるようにする潜在能力を有する。このアーキテクチャの実施の形態は、メディアCDNと容易に統合され、サービスのモジュール性を可能にして再構成及び再利用を容易にし、少ないネットワーク資源の効率的な割り当てを増進する一方、エンドユーザのメンテナンス問題、互換性問題、及び可用性問題を削減する。
【0111】
MSA内におけるマシン間の通信及び/又はノード間の通信は、本発明の実施の形態による多種多様な方法で実施できることに留意されたい。この通信には、サービスビルダがSLMと通信すること、サービスビルダが1つ又は複数のローカルビルダと通信すること、LRMがSLMと通信すること、及びLRMがローカルビルダと通信することが含まれ得るが、これらに限定されるものではない。LRMとローカルビルダとの間の通信は、マシン間とはならない場合があるが、その代わり、オペレーティングシステム、ローカルファイル等を使用したマシン内又はノード内の通信とすることができる。ただし、使用するものは、オペレーティングシステム、ローカルファイル等に限定されるものではない。
【0112】
図13は、本発明の一実施の形態に従って実行される、ストリーミングメディアサービスを管理するためのオペレーションのフローチャート1300である。ストリーミングメディアサービスは、メディアストリームサービスと呼ぶこともできる。フローチャート1300は、本発明のプロセスを含む。これらのプロセスは、いくつかの実施の形態では、コンピュータ可読で且つコンピュータ実行可能な命令の制御下でプロセッサ(複数可)及び電気コンポーネントによって実行される。コンピュータ可読で且つコンピュータ実行可能な命令は、たとえば、コンピュータ使用可能揮発性メモリ、コンピュータ使用可能不揮発性メモリ、及び/又はコンピュータ使用可能マスデータストレージ等のデータストレージ装備に存在することができる。しかしながら、コンピュータ可読で且つコンピュータ実行可能な命令は、どのタイプのコンピュータ可読媒体にも存在することができる。具体的なオペレーションがフローチャート1300に開示されるが、このようなオペレーションは例示である。すなわち、本実施の形態は、他のさまざまなオペレーション、又は、図13に列挙したオペレーションの変形を実行することにも良く適している。本実施の形態内では、フローチャート1300のオペレーションは、ソフトウェア、ハードウェア、又は、ソフトウェア及びハードウェアのあらゆる組み合わせによって実行できることに留意されたい。
【0113】
オペレーション1302では、ストリーミングメディアサービスの要求がクライアントから受信される。このストリーミングメディアサービスは、複数のコンポーネントメディアサービスを含む。
【0114】
オペレーション1304では、複数のコンポーネントメディアサービスのどのコンポーネントメディアサービスを、ネットワークの複数のサービスノードの或るサービスノードに割り当てるかについての判断が行われる。
【0115】
オペレーション1306では、複数のコンポーネントメディアサービスの或るコンポーネントメディアサービスを実行するように割り当てられた各サービスノードが、ストリーミングメディアに対してストリーミングメディアサービスを実行することを可能にするように通知を受ける。
【0116】
オペレーション1308では、割り当てられた各サービスノードの入力通信ソケット及び出力通信ソケットが生成されて、割り当てられたサービスノード間の通信が可能にされる。
【0117】
MSA内における複数のストリームのハンドリング
ビデオ合成等のアプリケーションは、メディアサービスアーキテクチャ(MSA)によって可能にされる、ネットワークベースのメディアサービスとすることができる。ビデオ合成の場合、複数のビデオストリームが、新たなビデオストリームを生成するために共に処理されなければならない。このアプリケーションは、ピクチャインピクチャ効果を提供するのに使用することができる。
【0118】
図14は、本発明の一実施の形態に従って、複数のメディアストリームがMSA内でハンドリングされるブロック図である。MSAは、異なる入力ストリーム(たとえば、1408及び1410)からコンテンツを得ることができるリスンEar(たとえば、1412及び1414)をセットアップすることによって、この種のサービスをサポートすることができる。メディアストリーミング送信元(たとえば、1402及び1404)は、サービスロケーションマネージャ(図示せず)によって指定される。このサービスロケーションマネージャは、(たとえば)2つのビデオサービスの中間のネットワークポイント(たとえば、サービスノード1406)に合成サービスを配置することができる。この合成サービス1416は、次に、2つのストリーム(たとえば、1408a及び1410)を互いに同期させ、ストリーム1408からトランスコードされたビデオ1408aを他方のストリーム1410にオーバーレイすることによって「ピクチャインピクチャ」オペレーションを実行することができ、次いで、その結果生成されたビデオ1420を出力Ear1418を通じて外部にストリーミングする。この実施の形態は、複数のストリームを、メディアサービス、この場合にはビデオ合成(たとえば、1416)の入力側でどのように管理できるかを示している。
【0119】
図15は、本発明の別の実施の形態に従って、複数のメディアストリームがMSA内でハンドリングされるブロック図である。具体的には、共に図示しないローカルビルダ(又はSLM)が、既存のサービスセッションの出力を、新たに作成されたサービスセッションへの入力として「タップ(tap)」することにより、ストリーミングメディアがネットワークを通ってフローする際にそのストリーミングメディアを最適化することができる。
【0120】
図15のコンポーネントは、上述した図14のコンポーネントと同様に動作していることに留意されたい。一方、図15内では、サービスが進行中であって、別のクライアント(図示せず)が、ビデオ1408をトランスコードしたものを要求した場合、SLMは、メッセージを(SOAP/XMLを介して)合成サービス1416へ送信して、ビデオ1408をトランスコードしたものを新たなクライアントに利用可能にすることができる。
【0121】
複数のメディアストリームを、本発明の実施の形態による多種多様な方法でハンドリングできることに留意されたい。たとえば、ビデオストリームは、それをトランスコードし、次いで、トランスコードされたビデオを複数のクライアントへ出力するサービス提供可能マシンが受信することができる。これに加えて、ビデオストリームは第1のノードに入り、背景除去が実行される。この第1のノードは、合成サービスを実行している第2のノードへ前景を送出する。その第2のノードは、他の或る送信元から入ってくる第2のビデオストリームも有する。第2のノードは、受信した前景ビデオ及び第2のビデオストリームの合成ビデオストリームを第5のノードへ出力する。これに加えて、第1のビデオストリームの他の或る部分は、第3のノードへも送出されている。この第3のノードは、或る人の識別を行っている場合があり、そのノードでは結合コンポーネントが実行されている。第3のノードは、第4のノードによって受信される或るインデックスを生成する。この第4のノードは、第5のノードへ出力される或るテキスト生成を実行している。第5のノードは、その入力を組み合わせるサービスを実行して、ビーチにいる人の出力を生成する。この出力は、このビーチにいる人の下にその人の名前を有する。これに加えて、音響ストリームが第4のノードに入っている場合があり、この音響出力ストリームは第5のノードへ出力される。
【0122】
図16は、本発明の一実施の形態に従って実行されるオペレーションのフローチャート1600である。フローチャート1600は、本発明のプロセスを含む。これらのプロセスは、いくつかの実施の形態では、コンピュータ可読で且つコンピュータ実行可能な命令の制御下でプロセッサ(複数可)及び電気コンポーネントによって実行される。コンピュータ可読で且つコンピュータ実行可能な命令は、たとえば、コンピュータ使用可能揮発性メモリ、コンピュータ使用可能不揮発性メモリ、及び/又はコンピュータ使用可能マスデータストレージ等のデータストレージ装備に存在することができる。しかしながら、コンピュータ可読で且つコンピュータ実行可能な命令は、どのタイプのコンピュータ可読媒体にも存在することができる。具体的なオペレーションがフローチャート1600に開示されるが、このようなオペレーションは例示である。すなわち、本実施の形態は、他のさまざまなオペレーション、又は、図16に列挙したオペレーションの変形を実行することにも良く適している。本実施の形態内では、フローチャート1600のオペレーションは、ソフトウェア、ハードウェア、又は、ソフトウェア及びハードウェアのあらゆる組み合わせによって実行できることに留意されたい。
【0123】
オペレーション1602では、クライアントからのサービス要求及びパラメータをリスンして受信する。
【0124】
オペレーション1604では、要求されたサービスをどのように実施するかの記述を受信する。
【0125】
オペレーション1606では、サービスのインプリメンテーションを実行するためのネットワーク接続されたコンピュータを選択し、所望のネットワーク接続をどのように行うかを判断する。
【0126】
オペレーション1608では、選択された、ネットワーク接続されたコンピュータにおいて処理を行うように準備する。
【0127】
オペレーション1610では、ネットワーク及び選択されたコンピュータにおける処理を通るメディアのフローを開始する。データの結果は、サービス要求に指定された宛先へルーティングされることに留意されたい。
【0128】
図17は、本発明の一実施の形態に従って実行されるオペレーションのフローチャート1700である。フローチャート1700は、本発明のプロセスを含む。これらのプロセスは、いくつかの実施の形態では、コンピュータ可読で且つコンピュータ実行可能な命令の制御下でプロセッサ(複数可)及び電気コンポーネントによって実行される。コンピュータ可読で且つコンピュータ実行可能な命令は、たとえば、コンピュータ使用可能揮発性メモリ、コンピュータ使用可能不揮発性メモリ、及び/又はコンピュータ使用可能マスデータストレージ等のデータストレージ装備に存在することができる。しかしながら、コンピュータ可読で且つコンピュータ実行可能な命令は、どのタイプのコンピュータ可読媒体にも存在することができる。具体的なオペレーションがフローチャート1700に開示されるが、このようなオペレーションは例示である。すなわち、本実施の形態は、他のさまざまなオペレーション、又は、図17に列挙したオペレーションの変形を実行することにも良く適している。本実施の形態内では、フローチャート1700のオペレーションは、ソフトウェア、ハードウェア、又は、ソフトウェア及びハードウェアのあらゆる組み合わせによって実行できることに留意されたい。
【0129】
オペレーション1602では、クライアントからのサービス要求及びパラメータをリスンして受信する。
【0130】
オペレーション1702では、サービスを実施するコンポーネントの抽象グラフ及び各コンポーネントの資源要件を受信する。
【0131】
オペレーション1704では、各サービスコンポーネントを実行するためのネットワーク接続されたコンピュータを選択する。
【0132】
オペレーション1706では、選択されたマシンにおけるコンポーネントの構築を要求し、それらの相互接続を準備する。
【0133】
オペレーション1708では、ネットワーク全体にわたって分散された処理コンポーネントを通るメディアのフローを開始する。データの結果は、サービス要求に指定された宛先へルーティングされることに留意されたい。
【0134】
Earは、多種多様な方法で実施できることに留意されたい。たとえば、入力Earは、RTP/RTSPを使用して受信を行うことができ、また、誤り耐性のある復号器プラグイン、スマートバッファリング、フロー管理、及び最小限データコピーも含むことができる。さらに、出力Earは、RTP/RTSPを使用して送信を行うことができ、可変フレームレート符号化器プラグイン、スマートバッファリング、及びフロー管理を含むことができる。これに加えて、入力Ear又は出力Earは、圧縮機能又は伸張機能も含むことができる。各Earは、単一のメディアストリームのフローの一方の端部(送信又は受信)を管理する。標準規格ベースのメディアストリーミング(RTP/RTCP/RTSP)を使用することができる。これに加えて、Earは、符号化器プラグイン及び復号器プラグイン(たとえば、MPEG−1、MPEG−2、MPEG−4、AMR、WAV)を使用して、メディア配信に適した圧縮フォーマットと、メディア処理に多く使用される非圧縮フォーマットとの間の変換を行う。また、バッファリングポリシー、フロー制御ポリシー、及びフレーム廃棄ポリシーがEarによって実施されて、配信と処理との間のデータレートの不一致を取り除くこともできる。
【0135】
図10、図11、図12a〜図12dは、本明細書で説明した他の実施の形態と同様に、プロセスを含むことに留意されたい。これらのプロセスは、いくつかの実施の形態では、コンピュータ可読で且つコンピュータ実行可能な命令の制御下でプロセッサ(複数可)及び電気コンポーネントによって実行される。コンピュータ可読で且つコンピュータ実行可能な命令は、たとえば、コンピュータ使用可能揮発性メモリ、コンピュータ使用可能不揮発性メモリ、及び/又はコンピュータ使用可能マスデータストレージ等のデータストレージ装備に存在することができる。しかしながら、コンピュータ可読で且つコンピュータ実行可能な命令は、どのタイプのコンピュータ可読媒体にも存在することができる。具体的なオペレーションが本明細書に開示されるが、このようなオペレーションは例示である。すなわち、これらの実施の形態は、他のさまざまなオペレーション、又は、本明細書に列挙したオペレーションの変形を実行することにも良く適している。本明細書で列挙したオペレーションは、ソフトウェア、ハードウェア、又は、ソフトウェア及びハードウェアのあらゆる組み合わせによって実行できることに留意されたい。
【0136】
本発明の具体的な実施の形態の上記説明は、図解及び説明の目的で提示されたものである。それら説明は、網羅的であることを目的とするものでもなければ、開示した正確な形態に本発明を限定することを目的とするものでもなく、多くの変更及び変形が、上記教示に鑑みて可能であることは明らかである。実施の形態は、本発明の原理及びその実用的な用途を最もよく説明し、それによって、他の当業者が、本発明、及び、検討した特定の使用に適するようなさまざまな変更を有するさまざまな実施の形態を最もよく利用することを可能にするために選ばれて説明されたものである。本発明の範囲は、本明細書に添付した特許請求の範囲及びその等価物によって画定されることが意図されている。
【図面の簡単な説明】
【0137】
【図1】メディアを複数の移動クライアントデバイスへ配信する従来の方法を示す図である。
【図2】メディアを処理して移動クライアントデバイスへ配信する従来の方法を示す図である。
【図3】本発明による一実施の形態の図である。
【図4】本発明による一実施の形態の図である。
【図5A】本発明による一実施の形態の図である。
【図5B】本発明による一実施の形態の図である。
【図6】本発明の実施の形態を実施できる単一のコンテンツサーバを有するデータセッションハンドオフの例示のシステムのブロック図である。
【図7】本発明の実施の形態を実施できるコンテンツ分配ネットワークを有するデータセッションハンドオフの別の例示のシステムのブロック図である。
【図8A】本発明の一実施の形態によるデータセッションハンドオフのプロセスを示すフローチャートである。
【図8B】本発明の一実施の形態によるデータセッションハンドオフのプロセスを示すフローチャートである。
【図9】本発明による一実施の形態の図である。
【図10】メディアサービスアーキテクチャ(MSA)が本発明の一実施の形態に従ってサービスを分解して分散させる例示のオペレーションを示すブロック図である。
【図11】本実施の形態の一実施の形態によるサービスロケーション管理方法論のブロック図である。
【図12a】本発明の実施の形態によるサービスのコンポーネントの例示の抽象グラフである。
【図12b】本発明の実施の形態による、ネットワークにおけるコンポーネントの3つの例示の分散を示す図である。
【図12c】本発明の実施の形態による、ネットワークにおけるコンポーネントの3つの例示の分散を示す図である。
【図12d】本発明の実施の形態による、ネットワークにおけるコンポーネントの3つの例示の分散を示す図である。
【図13】本発明の一実施の形態に従って実行される、ストリーミングメディアサービスを管理するためのオペレーションのフローチャートである。
【図14】本発明の一実施の形態に従って、複数のメディアストリームがMSA内でハンドリングされるブロック図である。
【図15】本発明の別の実施の形態に従って、複数のメディアストリームがMSA内でハンドリングされるブロック図である。
【図16】本発明の一実施の形態に従って実行されるオペレーションのフローチャートである。
【図17】本発明の別の実施の形態に従って実行されるオペレーションのフローチャートである。
【符号の説明】
【0138】
102・・・コンテンツサーバ
104、106、108・・・無線基地局
110、112、114、116、118、120・・・移動クライアントデバイス
120・・・電子デバイス
124、126、128、130・・・コピーの送信
122・・・ ラップトップ
200、300・・・ネットワーク
202、204、206・・・メディアサービスノード
208・・・ストリーミングメディア
210・・・メディアストリーミング
302・・・サービスロケーションマネージャ
304、306・・・サービスポータル
308・・・要求
310・・・リダイレクト
404・・・通信
406、408、410・・・観察又は監視
502・・・メディアのストリーミング
504・・・メディアストリームのストリーミング
506・・・メディアストリーミングセッション
602、604・・・トランスコーダ
608、610・・・セル
614・・・コンテンツ分配ネットワーク
616、618・・・エッジサーバ
1001・・・コンポーネントの抽象グラフ
1002・・・ユーザデバイス
1003・・・出力ディスプレイ
1004・・・メディアサービス要求
1006・・・サービスポータル
1008・・・サービスビルダ
1010・・・コンポーネント配置要求
1012・・・サービスロケーションマネージャ
1014・・・コンポーネント配置決定
1016・・・構築要求
1018・・・ローカルビルダ
1020・・・コンポーネント
1022、1024、1026・・・サービス提供可能マシン
1028・・・インターネット
1030、1032・・・Ear
1033・・・コンテンツサーバ
1035、1037・・・ライブカメラ
1102・・・ネットワーク距離テーブル
1104・・・前の決定テーブル
1106・・・マシン配置コスト
1108・・・資源要件ルーチン
1110、1112、1114・・・ローカル資源マネージャ
1116・・・資源照会
1202・・・ビデオ送信元
1204・・・サイズ変更
1206・・・背景除去
1208・・・合成
1210・・・ビデオ宛先
1212・・・ネットワーク
1214・・・ビデオ送信元
1216・・・PDA
1402、1404・・・ビデオ
1406・・・サービスノード
1408、1410・・・入力ストリーム
1408a・・・ビデオ
1412、1414、1418・・・Ear
1416・・・ビデオ合成
1420・・・ビデオ

【特許請求の範囲】
【請求項1】
ストリーミングメディアサービスを管理するための方法(1300)であって、
ストリーミングメディアサービスの要求(1004)をクライアント(1002)から受信すること(1302)であって、前記ストリーミングメディアサービスは、複数のメディアサービスコンポーネント(1020)を含む、受信すること(1302)と、
ネットワーク(1212)の複数のサービスノードの或るサービスノード(1022)に、前記複数のメディアサービスコンポーネントのどのメディアサービスコンポーネントを割り当てるかを判断すること(1304)と、
前記複数のメディアサービスコンポーネントの或るメディアサービスコンポーネントを実行するように割り当てられた各サービスノードに、ストリーミングメディア(1032)に対して前記ストリーミングメディアサービスを実行することを可能にするように通知すること(1306)と
を含む方法。
【請求項2】
前記ストリーミングメディアは、ビデオ、音響、マルチメディア、及びテキストから選択される
請求項1に記載の方法。
【請求項3】
前記判断することは、前記クライアントの前記位置に基づく
請求項1に記載の方法。
【請求項4】
前記判断することは、前記ネットワークの帯域幅に基づく
請求項1に記載の方法。
【請求項5】
前記判断することは、前記ネットワークの負荷に基づく
請求項1に記載の方法。
【請求項6】
前記判断することは、前記複数のサービスノードの各サービスノードの負荷に基づく
請求項1に記載の方法。
【請求項7】
前記判断することは、前記ネットワークの既存のストリーミングメディアサービスに基づく
請求項1に記載の方法。
【請求項8】
前記判断することは、前に割り当てられたメディアサービスコンポーネントに基づく
請求項1に記載の方法。
【請求項9】
前記要求を前記受信することは、サービスポータルを通じて行われる
請求項1に記載の方法。
【請求項10】
割り当てられた各サービスノードの入力通信ソケット(1218)及び出力通信ソケット(1220)を生成すること(1308)であって、それによって、前記割り当てられたサービスノード間の通信を可能にする、生成すること(1308)
をさらに含む
請求項1に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12a】
image rotate

【図12b】
image rotate

【図12c】
image rotate

【図12d】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公表番号】特表2007−531332(P2007−531332A)
【公表日】平成19年11月1日(2007.11.1)
【国際特許分類】
【出願番号】特願2006−517851(P2006−517851)
【出願日】平成16年7月1日(2004.7.1)
【国際出願番号】PCT/US2004/021526
【国際公開番号】WO2005/006709
【国際公開日】平成17年1月20日(2005.1.20)
【出願人】(503003854)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (1,145)
【Fターム(参考)】