説明

マルチユーザコンピューティングシステムにおけるユーザエクスペリエンスの動的バランシング

【課題】マルチユーザコンピューティングシステムにおけるユーザエクスペリエンスの動的バランシングに関し、PC上で利用可能なリソースを超過せずに、多数の要求側デバイスへコンテンツを配信できるようにする。
【解決手段】メディアエクスペリエンスポリシエンジン120の情報マネージャ312は、メディア配信システムの現在の状態に関する情報を収集する。次に、この収集されたデータをポリシエバリュエータ314で検査し、リソース競合が起きているか、または起きそうな場合、すでに存在する衝突や潜在的な衝突がエンフォースメントモジュール316によって処理される。エンフォースメントモジュールは、リソース競合をなくし、目標ポリシに合致したユーザエクスペリエンスを維持するために、目標ポリシに従って、時間的に後のユーザのアクセスを制限したり、全ユーザのユーザエクスペリエンスを劣化させたりというような補正を適用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチユーザコンピューティングシステムにおけるユーザエクスペリエンスの動的バランシングに関する。
【背景技術】
【0002】
パーソナルコンピュータ(PC)がディジタルホームの中心となっていくのに伴い、PCに蓄積されるメディアコンテンツ(音楽、画像、ビデオ、TV等)へのアクセスを求めるデバイスの数は増え続けており、PCはそれらのデバイスからの要求を同時に処理しなければならない。
【0003】
例えば、現在ではユーザがPCをエンターテインメントサーバとして用いることにより、ネットワークを通じてメディアコンテンツ等をデスクトップPC、ノートブックコンピュータ、ポータブルコンピュータ、携帯電話等の無線通信デバイス、携帯情報端末(PDA)、ゲーム機、IPセットトップボックス、ハンドヘルドPC等のクライアントデバイスへ配信することができる。配信可能なコンテンツとしては、画像、オーディオコンテンツ、オーディオ・ビデオ(AV)コンテンツ、およびコンピュータ可読プログラム等があり、これらはCDやDVD等のポータブル記憶媒体や、インターネット、ケーブル接続、あるいは衛星フィード等のリモートソースからコンテンツを受信するチューナ経由で、エンターテインメントサーバに導入することができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
マイクロソフト社(Microsoft Corporation、米国ワシントン州レドモンド)から市販されている WINDOWS XP(登録商標) Media Center Edition オペレーティングシステムのようなソフトウェアは、通常のホームPCを、このようなコンテンツを配信することが可能なホストへと転換するのに必要な手間と費用を大幅に削減している。しかし、場合によっては、コンテンツを要求するさまざまなデバイスへそのコンテンツを配信するために必要なリソースが、PC上で利用可能なリソースを超過することがある。このようなことが起きると、予期しない、あるいは望ましくない挙動の結果、PCや、PC上のコンテンツにアクセスするデバイスに混乱が生じることがある。
【0005】
したがって、PCがマルチユーザ環境において機能し、PC上で利用可能なリソースを超過せずに、多数の要求側デバイスへコンテンツを配信できるようにすることが必要とされている。
【課題を解決するための手段】
【0006】
メディアエクスペリエンスポリシエンジン(media experience policy engine)は、情報マネージャ、ポリシエバリュエータ(policy evaluator)、およびエンフォースメントモジュール(enforcement module)という3つのコンポーネントを有する。情報マネージャは、CPU、メモリ、ハードディスク、(I/O)インタフェース、およびネットワークの使用のような、メディア配信システムの現在の状態に関する情報を収集する。次に、この収集されたデータをポリシエバリュエータで検査し、リソース競合が起きているか、または起きそうになっているかどうかを調べる。その通りである場合、すでに存在する衝突や潜在的な衝突がエンフォースメントモジュールによって処理される。エンフォースメントモジュールは、リソース競合をなくし、目標ポリシに合致したユーザエクスペリエンスを維持するために、目標ポリシに従って、例えば時間的に後のユーザのアクセスを制限したり、全ユーザのユーザエクスペリエンスを劣化させたりというような補正を適用する。
【0007】
この概要は、以下の詳細な説明でさらに説明する概念の一部を簡略化した形で導入するために設けられている。この概要は、特許請求の範囲に記載された対象の主要な特徴あるいは必須の特徴を特定することを意図するものではなく、また、特許請求の範囲に記載された対象の範囲を決定する際の補助として用いられることを意図するものでもない。
【図面の簡単な説明】
【0008】
【図1】エンターテインメントサーバ、ホームネットワークデバイス、およびホームテレビを含む例示的なホーム環境を示す。
【図2】メディアエクスペリエンスポリシエンジンを用いて複数のホームネットワークデバイスと通信する複数のエンターテインメントサーバからなるシステムを示す。
【図3】複数のホームネットワークデバイスと通信可能に接続された複数のエンターテインメントサーバとともに用いられるメディアエクスペリエンスポリシエンジンのブロック図を示す。
【図4】ネットワークリソースを継続的に監視しリソース競合問題を動的に解決する方法を示す流れ図である。
【図5】目標ポリシに対して現在のネットワークリソース特性を評価するポリシエバリュエータの、方法としての実施態様を示す流れ図である。
【図6】ネットワークリソースを目標ポリシに従わせるためにネットワークリソースに対する変更を行うエンフォースメントモジュールの、方法としての実施態様を示す流れ図である。
【発明を実施するための形態】
【0009】
詳細な説明は添付図面を参照して記述される。図中、参照番号の左端の桁は、その参照番号が最初に現れる図面を特定する。異なる図面における同一参照番号の使用は、類似または同一の項目であることを示す。
【0010】
[ホーム環境]
図1は、寝室102および居間104を含む例示的なホーム環境100を示す。ホーム環境100の随所に、メインTV106、セカンダリTV108、VGAモニタ110のような複数のモニタが配置されている。居間104に配置されたエンターテインメントサーバ112から、ホームネットワークを通じて各モニタ106、108、110にコンテンツを供給することが可能である。一実施態様では、エンターテインメントサーバ112は、マイクロソフト社から市販されているWindows(登録商標) XP Media Center(商標) edition オペレーティングシステムのようなマルチメディアソフトウェアパッケージを実行するように構成された従来型のパーソナルコンピュータ(PC)である。このような構成において、エンターテインメントサーバ112は、十分なコンピューティング機能と完全なホームエンターテインメントシステムとを単一のPC内に統合することができる。例えば、ユーザは、いずれかのモニタ106、108、110の1つのグラフィックウィンドウでTVを見ながら、同じモニタの別のグラフィックウィンドウで電子メールを送信したり表計算処理をしたりすることができる。また、エンターテインメントシステムは、ほかに次のような機能も有することが可能である。
【0011】
・後で視聴するためにTV生番組をキャプチャしたり、将来の単発番組やシリーズ物の放送を録画したりする、パーソナルビデオレコーダ(PVR)。
・DVD再生。
・TV番組、歌、画像、ホームビデオ等、ユーザが録画・録音したコンテンツの統合的視聴。
・14日分のEPG(電子番組ガイド)。
【0012】
また、エンターテインメントサーバ112は、従来型のPCであることに加えて、メディアコンポーネントをレンダリングすることが可能な他のさまざまなデバイス、例えばノートブック型やポータブル型のコンピュータ、タブレットPC、ワークステーション、メインフレームコンピュータ、サーバ、インターネット機器、およびそれらの組合せ等、も含み得る。なお、エンターテインメントサーバ112は、セットトップボックス等のエンターテインメントデバイスであってもよい。エンターテインメントデバイスは、メディアコンテンツをコンピュータへ配信してそこでストリーミング視聴を可能にし、また、エンターテインメントデバイス自体がメディアコンテンツをストリーミング送信することができる。
【0013】
エンターテインメントサーバ112により、ユーザは、例えばケーブル114、衛星116、アンテナ(見やすくするため図示せず)、あるいはインターネット118のようなネットワーク経由で受信されるテレビやオーディオのコンテンツのライブストリームを視聴・制御することができる。この機能は、エンターテインメントサーバ112内にある1つまたは複数のチューナによって実現される。しかし、言うまでもなく、そのような1つまたは複数のチューナは、エンターテインメントサーバ112から離れて位置していてもよい。いずれの場合でも、ユーザは個別の好みに合わせてチューナを選ぶことができる。例えば、標準解像度(SD)および高解像度(HD)の両方のコンテンツを受信したいユーザは、両方のタイプのコンテンツに対応したチューナを用いればよい。また、ユーザは、SDコンテンツにはSDチューナを、HDコンテンツにはHDチューナを用いることもできる。
【0014】
また、エンターテインメントサーバ112は、スピーカ(見やすくするため図示せず)のためのマルチチャネル出力も可能である。これは、ドルビーディジタル、ディジタルシアターサウンド(DTS)、あるいはパルス符号変調(PCM)サラウンドデコーディングの配信に対応したSPDIF(Sony−Philips Digital Interface Format)やToslinkのようなディジタル相互接続出力を用いて実現することができる。
【0015】
また、エンターテインメントサーバ112は、さまざまな負荷条件下でユーザがエンターテインメントサーバ112の挙動を制御できるように構成されたメディアエクスペリエンスポリシエンジン120を含んでもよい。メディアエクスペリエンスポリシエンジン120は、ユーザがエンターテインメントサーバ112の実際のリソース利用を監視し、リソース競合が起きている、または起こりそうな高負荷状況に適切に対応することができるように構成される。このように、メディアエクスペリエンスポリシエンジン120を用いることで、エンターテインメントサーバ112によって実行されるリソース管理をカスタマイズし、ユーザエクスペリエンスを予測不可能な、受容できない品質レベルにまで劣化させるおそれのある有害なリソース競合を回避することができる。メディアエクスペリエンスポリシエンジン120と、それを用いた方法については、図2〜図6を参照して以下でさらに詳細に説明する。
【0016】
エンターテインメントサーバ112は、オペレーティングシステムを実行するフル機能のコンピュータであってもよいので、ユーザは、標準的なコンピュータプログラム(ワープロ、表計算等)の実行、電子メールの送受信、インターネットのブラウジング、あるいはその他の一般的機能の実行を選ぶこともできる。
【0017】
また、ホーム環境100は、ネットワーク124を通じてエンターテインメントサーバ112と通信するように配置されたホームネットワークデバイス122を含んでもよい。
ホームネットワークデバイス122としては、マイクロソフト社から市販されている Media Center Extender デバイス、Windows(登録商標) Media Connect デバイス、マイクロソフト社から市販されているXboxゲーム機等のゲーム機、およびエンターテインメントサーバ112がオーディオあるいはビデオのコンテンツをモニタ106、108、110やオーディオシステムへストリーミングすることを可能にするデバイスが挙げられる。また、ホームネットワークデバイス122は、例えばデスクトップPC、ノートブック型やポータブル型のコンピュータ、ワークステーション、メインフレームコンピュータ、インターネット機器、ゲーム機、ハンドヘルドPC、携帯電話等の無線通信デバイス、携
帯情報端末(PDA)、セットトップボックス、テレビ、オーディオチューナ、およびそれらの組合せ等、さまざまな従来型のコンピューティングデバイスのいずれかとして実現
することも可能である。
【0018】
ネットワーク124は、有線または無線のネットワーク、あるいはインターネット等のいかなる電子的接続手段を含んでもよい。理解されるように、ネットワーク124は、TCP(transmission control protocol)、IP(Internet protocol)、RTP(real time transport protocol)、およびRTCP(real time transport control protocol)のようなパケット通信プロトコルによりホームネットワークデバイス122とエンターテインメントサーバ112との間の通信を可能にするものでよい。また、ホームネットワークデバイス122は、無線手段または従来型のケーブルを通じてセカンダリTV108に接続されてもよい。
【0019】
ホームネットワークデバイス122は、エンターテインメントサーバ112から、ユーザエクスペリエンスストリーム(すなわち、システム/アプリケーションのユーザインタフェースであって、グラフィクス、ボタン、コントロールおよびテキストを含み得る)とともに、圧縮されたディジタルオーディオ/ビデオストリームを受信するように構成され得る。ユーザエクスペリエンスストリームは、例えば標準的なRDP(remote desktop protocol)、GDI(graphics device interface)、あるいはHTML(hyper text markup language)等のさまざまな方法で配信可能である。ディジタルオーディオ/ビデオストリームは、ビデオ、オーディオおよびイメージのファイルを有するビデオIP、SD、およびHDコンテンツを含み得る。これらは、ホームネットワークデバイス122で復号された後、ユーザエクスペリエンスストリームと「混合」されてセカンダリTV108に出力される。一例示的実施態様では、メディアコンテンツは、MPEG2フォーマットでホームネットワークデバイス122へ配信される。
【0020】
図1には単一のホームネットワークデバイス122のみが示されているが、言うまでもなく、複数のホームネットワークデバイス122および対応するディスプレイをホーム環境100全体に分散させ、エンターテインメントサーバ112に通信可能に接続してもよい。また、エンターテインメントサーバ112は、ホームネットワークデバイス122およびモニタ106、108、110に加えて、スピーカやプリンタ(見やすくするため図示せず)のようなコンポーネントを含め、他の周辺デバイスに通信可能に接続されてもよいことはもちろんである。
【0021】
[メディアエクスペリエンスポリシエンジンを備えたシステム]
図2は、複数のエンターテインメントサーバ112からネットワーク124を通じて複数のホームネットワークデバイス122へメディアコンテンツを配信するのに適した例示的アーキテクチャ200を示す。図2に示すように、メディアエクスペリエンスポリシエンジン120は、複数のエンターテインメントサーバ112のうちの1つ、数個、またはすべてに存在し得る。また、クライアント側メディアエクスペリエンスポリシエンジン(MEPE)202が、複数のホームネットワークデバイス122のうちの1つ、数個、またはすべてに存在し得る。さらに、独立型メディアエクスペリエンスポリシエンジン204もまた、例えばネットワーク124と通信する特殊目的のデバイスやサーバのような別のデバイス上に存在し得る。
【0022】
おそらくその最も単純な実施態様では、メディアエクスペリエンスポリシエンジン120は、2以上のユーザにサービスする単一のエンターテインメントサーバ112上で実行され得る。通常この場合には、1ユーザがエンターテインメントサーバ112自体を使い、1以上のユーザがホームネットワークデバイス122を操作する。しかし、他のユーザ
構成も可能であり、例えば2以上のキーボード、マウス、モニタ等をエンターテインメントサーバ112につなぐことを可能にするソフトウェアを用いることで、複数のユーザが同一のエンターテインメントサーバ112を操作することも可能である。単一のエンターテインメントサーバ112が利用されているこのような状況では、その単一のエンターテインメントサーバ112上のメディアエクスペリエンスポリシエンジン120とともに、あるいはそれなしで、クライアント側MEPE202を使用することも可能である。
【0023】
より複雑なマルチユーザ型の実施態様として、1つまたは複数のエンターテインメントサーバ112またはホームネットワークデバイス122が、エンターテインメントサーバ112またはホームネットワークデバイス122のうちの1つに存在するメディアエクスペリエンスポリシエンジン120、202の1つまたは複数のインスタンスを共有してもよい。あるいは、その1つまたは複数のエンターテインメントサーバ112またはホームネットワークデバイス122が、エンターテインメントサーバ112またはホームネットワークデバイス122のうちの1つに存在するメディアエクスペリエンスポリシエンジン120、202に加えて、独立型メディアエクスペリエンスポリシエンジン204を共有してもよい。
【0024】
また、その1つまたは複数のエンターテインメントサーバ112またはホームネットワークデバイス122が、メディアエクスペリエンスポリシエンジン(メディアエクスペリエンスポリシエンジン120、独立型メディアエクスペリエンスポリシエンジン204、およびクライアント側MEPE202を含む)の別個のインスタンスを使用し、このインスタンスが1つまたは複数の他のデバイス112、122に存在するメディアエクスペリエンスポリシエンジン120、202、204と協調してもよい。
【0025】
さらに別の実施態様として、単一のメディアエクスペリエンスポリシエンジン120、202、204が、ネットワーク124に接続されたすべてのデバイスにサービスするために用いられてもよい。
【0026】
なお、クライアント側MEPE202は、もし存在すれば、ネットワーク124のリソースおよびクライアント側MEPE202が存在するホームネットワークデバイス122のリソースに関する統計等の情報を収集するために使用可能である。別法として、この情報は、当該ホームネットワークデバイス122上の、または他のホームネットワークデバイス122もしくはエンターテインメントサーバ112上の、別のアプリケーションによって収集することも可能である。
【0027】
本明細書を通じて、メディアエクスペリエンスポリシエンジン120に言及する場合には、この言及は、クライアント側MEPE202および独立型メディアエクスペリエンスポリシエンジン204をも含み得ると解するものとする。
【0028】
[メディアエクスペリエンスポリシエンジンを備えたエンターテインメントサーバおよびホームネットワークデバイス]
図3は、1つまたは複数のエンターテインメントサーバ112から1つまたは複数のホームネットワークデバイス122へメディアコンテンツを配信するのに適した例示的アーキテクチャ300を示す。図3において、メディアエクスペリエンスポリシエンジン120は、エンターテインメントサーバ112上に存在するものとして例示されている。ただし上記のように、メディアエクスペリエンスポリシエンジン120はエンターテインメントサーバ112上にホストされる必要はない。例えば、メディアエクスペリエンスポリシエンジン120は、メディアコンテンツがソース(例えばインターネット118、ケーブル114、衛星116、アンテナ等)からホームネットワークデバイス122に伝達される途中の経路に通信可能に接続されたセットトップボックス等の電子デバイスや記憶媒体上にホストされることも可能である。なお、メディアエクスペリエンスポリシエンジン120は、ネットワーク124を通じて接続されるホームネットワークデバイス122のようなデバイスへ機能プログラムコードを配信してもよい。このプログラムコードは、メディアエクスペリエンスポリシエンジン120が自己の機能を実行するのを支援するように構成され得る。
【0029】
上記のように、エンターテインメントサーバ112は、例えばサーバ、デスクトップPC、ノートブック型やポータブル型のコンピュータ、ワークステーション、メインフレームコンピュータ、インターネット機器、セットトップボックス、およびそれらの組合せ等、さまざまな従来型のコンピューティングデバイスのいずれかとして実現することが可能であり、これは蓄積された、あるいは生のメディアコンテンツをホームネットワークデバイス122のようなクライアントデバイスへ配信するように構成可能である。
【0030】
エンターテインメントサーバ112は、1つまたは複数のチューナ302、1つまたは複数のプロセッサ304、コンテンツストレージ306、メモリ308、および1つまたは複数のネットワークインタフェース310を含み得る。チューナ302は、ケーブル114、衛星116、アンテナ、あるいはインターネット118のようなソース経由でメディアコンテンツを受信するように構成され得る。メディアコンテンツは、ディジタル形式で受信されてもよいし、アナログ形式で受信され、1つまたは複数のチューナ302のいずれかで、あるいはエンターテインメントサーバ112上に存在する1つまたは複数のマイクロプロセッサ304によって、ディジタル形式に変換されてもよい。処理され、あるいは(別のソースから)受信されたメディアコンテンツは、コンテンツストレージ306に蓄積されてもよい。図3は、コンテンツストレージ306をメモリ308とは別個のものとして示しているが、コンテンツストレージ306はメモリ308の一部であってもよいことはもちろんである。
【0031】
ネットワークインタフェース310は、ネットワーク124に通信可能に接続された多数のデバイス間でエンターテインメントサーバ112がコマンドおよびメディアコンテンツを送受信することを可能にするものであればよい。例えば、エンターテインメントサーバ112およびホームネットワークデバイス122の両方がネットワーク124に接続されている場合、ネットワークインタフェース310を用いることで、エンターテインメントサーバ112からネットワーク124を通じてホームネットワークデバイス122へ、メディアトランスポート機能(すなわち、ホームネットワークデバイス122がメディアコンテンツをレンダリングし、ユーザに一時停止、再生等の機能を提供することができる)とリアルタイムの関係で、ライブHDテレビコンテンツ等のコンテンツを配信することができる。また、エンターテインメントサーバ112は、ネットワーク124を通じて相互にメディアコンテンツを配信することができる。
【0032】
1つのエンターテインメントサーバ112上で、またはそれを通じて、利用可能なメディアコンテンツに対する、ホームネットワークデバイス122や他のエンターテインメントサーバ112からの要求は、ホームネットワークデバイス122や他のエンターテインメントサーバ112からネットワーク124経由で、そのエンターテインメントサーバ112へルーティングされ得る。一般に、ネットワーク124は、さまざまな従来型のネットワークプロトコル(公開および非公開のプロトコルを含む)のいずれかを用いた、さまざまな従来型のネットワークのトポロジおよびタイプ(光、有線、および無線ネットワークを含む)のいずれかを表すことを意図している。上記のように、ネットワーク124は、例えばホームネットワーク、企業内ネットワーク、インターネット、あるいはIEEE1394を含むとともに、1つまたは複数のローカルエリアネットワーク(LAN)や広域ネットワーク(WAN)の少なくとも一部を含むと考えられる。
【0033】
エンターテインメントサーバ112は、ホームネットワークデバイス122や他のエンターテインメントサーバ112へ配信するために利用可能な、オーディオ、ビデオ、テキスト、イメージ、アニメーション等のコンテンツを含むさまざまなデータやコンテンツを作成することができる。一実施態様では、このコンテンツは、エンターテインメントサーバ112からホームネットワークデバイス122や他のエンターテインメントサーバ112へストリーミングされ得る。「ストリーミングされる」あるいは「ストリーミングする」という用語は、データがネットワーク124を通じてホームネットワークデバイス122および/または他のエンターテインメントサーバ112に提供され、コンテンツ全体が配信される前にコンテンツの再生を開始することができることを示すために用いられる。コンテンツは、パブリックに利用可能であってもよいし、あるいは制限されていてもよい(例えば、一部のユーザのみに制限する、適正な料金を支払った場合にのみ利用可能とする、特定のネットワークにアクセスできるユーザに制限する等)。また、コンテンツは、「オンデマンド」(例えば、既知のサイズの、あらかじめ録画・録音され蓄積されたコンテンツ)であってもよいし、あるいは、生「放送」(例えば、コンサートを公演中にキャプチャし、キャプチャ後すぐにストリーミングのために利用可能としたディジタル表現のような、既知のサイズのない場合)を含んでもよい。
【0034】
メモリ308は、プロセッサ304上で実行されるプログラムと、その実行中に生成されるデータとを記憶する。メモリ308としては、揮発性媒体、不揮発性媒体、リムーバブル媒体、および非リムーバブル媒体が挙げられる。なお、揮発性メモリとしてはランダムアクセスメモリ(RAM)のようなコンピュータ可読媒体が挙げられ、不揮発性メモリとしては読み出し専用メモリ(ROM)が挙げられる。起動時等にエンターテインメントサーバ112内の要素間での情報転送を支援する基本ルーチンを含む基本入出力システム(BIOS)もまたROMに記憶しておくことができる。RAMは通常、1つまたは複数のプロセッサ304によって即時アクセス可能な、あるいは現在操作されているデータやプログラムモジュールを含む。
【0035】
また、エンターテインメントサーバ112は、非リムーバブル不揮発性磁気媒体に読み書きを行うハードディスクドライブ、リムーバブル不揮発性磁気ディスク(例えば「フロッピー(登録商標)ディスク」)に読み書きを行う磁気ディスクドライブ、およびCD−ROM、DVD−ROM等の光媒体のようなリムーバブル不揮発性光ディスクの読み出しおよび/または書き込みを行う光ディスクドライブのような、他のリムーバブル/非リムーバブル、揮発性/不揮発性のコンピュータ記憶媒体も含み得る。ハードディスクドライブ、磁気ディスクドライブ、および光ディスクドライブはそれぞれ、1つまたは複数のデータメディアインタフェースによってシステムバス(さらに詳細には後述)に接続され得る。別法として、ハードディスクドライブ、磁気ディスクドライブ、および光ディスクドライブは1つまたは複数のインタフェースによりシステムバスに接続されてもよい。
【0036】
ディスクドライブおよび対応するコンピュータ可読媒体は、エンターテインメントサーバ112のためのコンピュータ可読命令、データ構造体、プログラムモジュール、およびその他のデータの不揮発性ストレージを提供する。メモリ308は、上記のようなハードディスク、リムーバブル磁気ディスク、およびリムーバブル光ディスクに加えて、磁気カセット等の磁気ストレージデバイス、フラッシュメモリカード、CD−ROM、ディジタル多用途ディスク(DVD)等の光ストレージ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラム可能読み出し専用メモリ(EEPROM)等のような、コンピュータによりアクセス可能なデータを記憶し得る他のタイプのコンピュータ可読媒体も含み得る。
【0037】
任意個数のプログラムモジュールをメモリ308に記憶することが可能であり、例として、オペレーティングシステム、1つまたは複数のアプリケーションプログラム、他のプログラムモジュール、およびプログラムデータが挙げられる。このようなアプリケーションの1つがメディアエクスペリエンスポリシエンジン120となり得る。これは情報マネージャ312、ポリシエバリュエータ314、およびエンフォースメントモジュール316を含む。メディアエクスペリエンスポリシエンジン120は、プロセッサ304上で実行されることが可能であり、それによりユーザは、エンターテインメントサーバ112およびネットワーク124の実際のリソース利用を監視し、有害なリソース競合が起きている、または起こりそうな高負荷状況に適切に対応することができる。メディアエクスペリエンスポリシエンジン120は、例えばメモリ308に記憶されるソフトウェアモジュールとして実装される以外に、例えばファームウェアとして存在することも可能である。なお、情報マネージャ312、ポリシエバリュエータ314、およびエンフォースメントモジュール316は図3ではメディアエクスペリエンスポリシエンジン120内に存在するものとして示されているが、これらの要素の一部または全部が別個に独立したアプリケーションとして存在してもよい。メディアエクスペリエンスポリシエンジン120の性質および機能については後でさらに説明する。
【0038】
エンターテインメントサーバ112は、1つまたは複数のチューナ302、1つまたは複数のプロセッサ304、ネットワークインタフェース310、およびメモリ308を相互に通信可能に接続するためのシステムバス(見やすくするため図示せず)も含み得る。システムバスは、さまざまなバスアーキテクチャのいずれかを用いたメモリバスあるいはメモリコントローラ、ペリフェラルバス、アクセラレーテッドグラフィクスポート(AGP)、およびプロセッサバスあるいはローカルバス等の、数種のバス構造のいずれか1つまたは複数を含み得る。
【0039】
ユーザは、キーボード、ポインティングデバイス(例えば「マウス」)、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、シリアルポート、スキャナ等の入力デバイスを通じてエンターテインメントサーバ112にコマンドおよび情報を入力することができる。これらおよびその他の入力デバイスは、システムバスに接続された入出力(I/O)インタフェースを通じて1つまたは複数のプロセッサ304に接続され得る。また、入力デバイスは、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)、またはネットワークインタフェース310に含まれる他の任意の接続のような、他のインタフェースおよびバス構造によって接続されてもよい。
【0040】
ネットワーク接続環境では、エンターテインメントサーバ112あるいはその部分に関連して上記で図示し説明したプログラムモジュールは、リモートメモリ記憶デバイスに記憶されてもよい。例として、リモートアプリケーションプログラムが、ネットワーク124に通信可能に接続されたリモートコンピュータのメモリデバイス上に存在してもよい。実例として、オペレーティングシステムやメディアエクスペリエンスポリシエンジン120のような、アプリケーションプログラムおよびその他の実行可能プログラムコンポーネントは、エンターテインメントサーバ112の、あるいはリモートコンピュータの異なるストレージコンポーネントに、さまざまな時に存在することが可能であり、エンターテインメントサーバ112の、あるいはリモートコンピュータの少なくとも1つのプロセッサ304のいずれかによって実行され得る。
【0041】
例示的なホームネットワークデバイス122は、1つまたは複数のプロセッサ318と、メモリ320とを含み得る。メモリ320は、エンターテインメントサーバ112のようなソースから受信されるメディアコンテンツを消費あるいは利用する1つまたは複数のアプリケーション322を含み得る。また、メモリ320は、エンターテインメントサーバ112内のメディアエクスペリエンスポリシエンジン120とともに、あるいはそれなしで、使用されることが可能なクライアント側MEPE202も含み得る。エンターテインメントサーバ112内のエクスペリエンスポリシエンジン120と同様に、クライアント側MEPEもまた、情報マネージャ、ポリシエバリュエータ、およびエンフォースメントモジュール(見やすくするため図示せず)を含み得る。クライアント側MEPE202は、メモリ308に記憶されるソフトウェアモジュールとして実装される以外に、例えばファームウェアとして存在することも可能である。
【0042】
[メディアエクスペリエンスポリシエンジンの機能]
動作において、ユーザは、ホームネットワーキングデバイス122もしくは他のエンターテインメントサーバ112またはネットワーク124を通じてホストエンターテインメントサーバ112に接続されたデバイスを用いて、1つまたは複数のエンターテインメントサーバ112に対してメディアコンテンツを要求することができる。また、上記のように、複数のキーボード、マウス、モニタ等をエンターテインメントサーバ112につなぐことを可能にするソフトウェアを用いることで、複数のユーザが同じエンターテインメントサーバ112を同時に操作することも可能である。
【0043】
メディアコンテンツを求める要求は、ライブソース(インターネット118、ケーブル114、アンテナ、あるいは衛星116等)からストリーミングされたHDまたはSDコンテンツを視聴する要求、コンテンツストレージ306に保存されたオーディオコンテンツを受信する要求、メモリ308に保存されたアプリケーションにアクセスし操作する要求等の、多くの形態を取り得る。1つまたは複数のエンターテインメントサーバ112に対してメディアコンテンツを求める要求を行うユーザが増加し、あるいは既存のユーザの要求が増大しより多くの処理能力およびネットワーク容量を必要とするようになると、それらの要求が、1つまたは複数のエンターテインメントサーバ112およびネットワーク124の利用可能なリソースを上回るおそれがある。例えば、ネットワーク124が1チャネルのHDコンテンツをホームネットワークデバイス122にストリーミングする容量しか有していない場合に、2つのチャネルが要求されれば、ネットワーク124は過負荷となる。これが起きると、予期しない、望ましくない挙動の結果、エンターテインメントサーバ112、ネットワーク124、およびホームネットワークデバイスには、ユーザエクスペリエンスが偶然的に劣化したり、1以上のユーザがエンターテインメントサーバ112からコンテンツを受信することが偶然的に排除されたりといった混乱が生じることがある。
【0044】
メディアエクスペリエンスポリシエンジン120、クライアント側MEPE202、および独立型メディアエクスペリエンスポリシエンジン204は、有害なリソース競合を避けるために、目標ポリシに従って1つまたは複数のサーバ112およびネットワーク124のリソースを適応的に管理することにより、ユーザエクスペリエンスの混乱を引き起こす可能性のあるこのような予期しない、望ましくない挙動を防ぐべく存在する。以下でさらに詳細に説明するように、目標ポリシは、リソース競合に際してどのくらい確実にユーザエクスペリエンスを維持すべきかを指示する。
【0045】
[情報マネージャ]
1つまたは複数のエンターテインメントサーバ112がユーザへメディアコンテンツを配信している間に、メディアエクスペリエンスポリシエンジン120内の情報マネージャ312は、例示的アーキテクチャ300内の実際のリソース利用を能動的に監視する。情報マネージャ312によって監視されるリソースとしては、例えば、ユーザがメディアコンテンツを求めている要求先の1つまたは複数のエンターテインメントサーバ112およびネットワークデバイス122についてのCPU使用、メモリ使用、(I/O)インタフェース使用およびハードディスク使用が挙げられる。また、ネットワーク124の使用も、情報マネージャ312によって監視され得る。
【0046】
情報マネージャ312によって収集される使用データは、合計でもよいし、特定のデバイスあるいはユーザごとのデータを含んでもよい。一実施態様として、情報マネージャ312は、ネットワーク124の総使用と、特定のユーザあるいはデバイスの要求によって生じたネットワーク124の総使用とを調べるものとすることができる。同様にして、総使用や、特定のユーザあるいはデバイスによって生じた使用を表すデータは、エンターテインメントサーバ112およびホームネットワークデバイス122に関するCPU使用、メモリ使用、(I/O)インタフェース使用、およびハードディスク使用について収集することができる。
【0047】
[ポリシエバリュエータ]
次に、情報マネージャ312によって収集された使用情報について、リソース競合問題があるかどうか検査することが可能である。これはポリシエバリュエータ314によって行うことが可能である。ポリシエバリュエータ314は、情報マネージャ312によって収集された使用データを受け取り、それを全利用可能リソースと比較することができる。個々のポリシは、ネットワークのリソースが競合状態に達した時にネットワーク124上の異なるユーザの個々のユーザエクスペリエンスがどのように影響を受けるかを規定することができる。例えば、ネットワーク124の総使用に関して情報マネージャ312によって収集されたデータを、ネットワーク124の全利用可能容量と照らし合わせることにより、ネットワーク124が飽和に近いかどうかを調べることができる。同様にして、エンターテインメントサーバ112について(およびネットワークデバイス122について)、CPU、メモリ、(I/O)インタフェース、およびハードディスクが過飽和になるおそれがあるかどうかを判断するために、CPU、メモリ、(I/O)インタフェース、およびハードディスクのリソース競合をポリシエバリュエータ314によって分析することが可能である。
【0048】
衝突が存在せず、アーキテクチャ300のいずれのリソースにも過飽和のおそれがない場合、介入は不要である。しかし、いずれかのリソースが飽和に近いと判明した場合、ポリシエバリュエータ314は、アーキテクチャ300の現在の状態が目標ポリシによって規定される状態に適合するかどうかを判断するために、目標ポリシに照らしてアーキテクチャ300の現在の状態をチェックすることができる。
【0049】
ポリシエバリュエータ314によって用いられる飽和限界自体をユーザが設定、あるいは再設定することが可能である。例えば、飽和を、エンターテインメントサーバ112のCPUの全容量の80%と定義してもよい。その場合、エンターテインメントサーバ112のCPUの容量の80%が使用されている時、ポリシエバリュエータ314は、CPUが飽和していると認識することになる。このように飽和限界を100%よりも低く設定することで、エンターテインメントサーバ112やホームネットワークデバイス122が申し込み超過であるような状況に達することが避けられる。
【0050】
また、目標ポリシ自体が、ユーザによって事前に決定あるいは事前に入力されたり、アーキテクチャ300の動作中に設定・再設定されてもよい。一例示的実施態様として、種々の可能な所定の目標ポリシが、製造元からユーザまでの流通網において、製造元あるいは他の事業体によって、エンターテインメントサーバ112あるいはホームネットワークデバイス122にロードされてもよい。その場合、ユーザは、事前に決められた可能なオプションのリストから選択することで、ユーザ自身の必要性と優先度に最もふさわしい所定の目標ポリシをアクティブにすることができる。ユーザにとって利用可能な、事前に決められたオプションおよび所定の目標ポリシは、分かりやすい「プレイン・イングリッシュ」(すなわち、非専門ユーザが理解可能な言葉)で提示され得る。
【0051】
上記のように、ポリシは、リソース競合に際してどのくらい確実にユーザエクスペリエンスを維持すべきかを指示する。例えば、目標ポリシは、アーキテクチャ300の(時間的に)最初のユーザに対して完全な、あるいは高品質のエクスペリエンスを規定する一方、その後のユーザのエクスペリエンスは劣化させてもよい。このような目標ポリシの場合、サービスを利用するとリソース競合になってしまうような最後のユーザに対し、サービスを拒否する可能性がある。
【0052】
あるいは、別の目標ポリシとして、優先度の高いユーザ(例えば親あるいはエンターテインメントサーバ112の所有者)に対して完全な、あるいは高品質のエクスペリエンスを規定し、それよりも優先度の低いユーザ(例えば子供およびエンターテインメントサーバ112の非所有者)のエクスペリエンスは劣化させてもよい。このようなポリシの場合、サービスを利用するとリソース競合になってしまうような最低優先度のユーザに対し、サービスを拒否する可能性がある。
【0053】
別の例として、目標ポリシは、最高画質のディスプレイ(例えばHDTVモニタ)に対して完全な、あるいは高品質のユーザエクスペリエンスを規定し、それよりも低い画質のディスプレイ(例えばSDTVモニタ)のエクスペリエンスは劣化させてもよい。あるいは、目標ポリシは、HDコンテンツをHDディスプレイのみに配信し、SDコンテンツを他のすべてのディスプレイに配信するように規定することも可能である。
【0054】
また、目標ポリシは、すべてのユーザエクスペリエンスの劣化が等しくなるように規定して、全ユーザが、公平に、アーキテクチャ300のリソースを共有するとともに、アーキテクチャ300のリソースの劣化をも共有するようにしてもよい。また、目標ポリシは、1以上の優先ユーザが、より低い優先度のユーザの運命を決定することができるようにしてもよい。このような場合、それらの低優先度のユーザと、リソース競合問題を是正するためにとり得るアクションとを列挙したプロンプトを、その1以上の優先ユーザに提示することができる。そして、その1以上の高優先度ユーザは、自己の選択によって応答することができる。例えば、ある高優先度ユーザが、居間104のメインTV106でメディアストリームを視聴しようとしているが、寝室102のセカンダリTV108でメディアコンテンツストリームを受信しているのを切り忘れたという状況を考える。後に、リソース競合が生じた場合、この高優先度ユーザに対して、セカンダリTV108へのストリーミングを停止するオプションを示すプロンプトをメインTV106に提示することができる。
【0055】
また、上記のすべての目標ポリシは、大口ユーザに不利益や制約を課する規定を含んでもよい。例えば、ポリシエバリュエータ314は、使用データにおいて、アーキテクチャ300のリソースのうち不相応な割合を消費するユーザあるいはデバイスがあるかどうかを検査することができる。このようなユーザあるいはデバイスが見つかった場合、それらは、ユーザエクスペリエンスの劣化や、アーキテクチャ300のリソースのさらなる使用からの排除等の特別な扱いを受けるようにすることができる。
【0056】
[エンフォースメントモジュール]
情報マネージャ312によって収集された情報においてリソース競合があるかどうかを検査し、ポリシエバリュエータ314によりアーキテクチャ300の現在の状態を目標ポリシに照らして検討した後、エンフォースメントモジュール316に制御が移り、目標ポリシがすべてのユーザおよびデバイスにわたって確実に実施されるようにする。
【0057】
エンフォースメントモジュール316によるエンフォースメントは、対話的および非対話的の2種類に大別することができる。エンフォースメントモジュール316がどのような形態のエンフォースメントによるかは、目標ポリシ、事前に入力されたコンピュータ設定、あるいはユーザプロンプトから受け取った応答によって規定され得る。
【0058】
対話的エンフォースメントが指定された場合、エンフォースメントモジュール316は、リソース競合が存在することを1以上のユーザに通知して、その状況を改善するためのオプションを提示することができる。通知およびオプションはいずれも、分かりやすい「プレイン・イングリッシュ」(すなわち、非専門ユーザが理解可能な言葉)でユーザに提示され得る。例えば、ネットワーク124の使用が高すぎる場合、エンフォースメントモジュール316は、1つまたは複数のオプションを1以上のユーザに提示することができ
る。一実施態様として、エンフォースメントモジュール316は、1以上のユーザに対し、TVを視聴する代わりに音楽を聴くというオプションを提示してもよい。これは、オーディオコンテンツの配信が、オーディオ・ビデオコンテンツの配信よりも少ない帯域しか消費しないからである。また、エンフォースメントモジュール316は、ネットワーク使用を減少させることにより、関連するネットワークのリソース競合問題を改善するために、HDフィードからSDフィードへ(例えばHDTVチャネルからSDTVチャネルへ)の切替を1以上のユーザに指示することもできる。
【0059】
別の可能な実施態様として、エンフォースメントモジュール316は、1以上のユーザに対して、他のユーザと共有されたメディアエクスペリエンスに加わる(ユニキャストに対するマルチキャスト)ように促すプロンプトを提示することができる。また、エンフォースメントモジュール316は、1以上のユーザに対して、遅延再生モードに切り替えるように促すプロンプトを提示することができる。このような選択をすれば、1つまたは複数のエンターテインメントサーバ112は、1以上のユーザに対して再生を行う前に、非リアルタイムでメディアをダウンロードしキャッシュすることができる。また、エンフォースメントモジュール316は、1以上のユーザに配信されるメディアコンテンツのビットレートをトランスレータ/トランスコーダの利用により低減する選択肢を、その1以上のユーザに与えることができる。
【0060】
さらに、エンフォースメントモジュール316は、(ソースがリアルタイムでエンコードされている場合)メディアエンコーダビットレートを低減する選択肢を1以上のユーザに提供することができる。さらに、エンフォースメントモジュール316は、マルチビットレート/マルチフォーマットのメディアファイルにおいて、異なるビットレートおよび/またはフォーマットに切り替える選択肢を1以上のユーザに提供することができる。
【0061】
さらに別の例として、エンフォースメントモジュール316は、ネットワーク優先制御(例えばWiFiマルチメディア)により、最重要のストリームが劣化しないことを保証する(これは言い換えると、より重要性の低いストリームが劣化し得ることを意味する)ことを、1以上のユーザが選択できるようにすることが可能である。
【0062】
同様に、1つまたは複数のエンターテインメントサーバ112やホームネットワークデバイス122内のメモリ308、320の使用が高すぎる場合、エンフォースメントモジュール316は、メモリ使用を低下させるように設計された1つまたは複数のオプションを1以上のユーザに提示することができる。一例示的実施態様として、エンフォースメントモジュール316は、1以上のユーザに対して、ディジタル著作権管理(DRM)保護のかかっていないメディアコンテンツの視聴に切り替えるオプションを提示してもよい。このような切替としては、テレビチャネルを、Home Box Office(登録商標) TVチャネルのような有料サイトから、American Broadcasting Company(ABC) TVチャネルのような公開で利用可能なチャネルに切り替える場合が挙げられる。このアクションは、1つまたは複数のエンターテインメントサーバ112およびホームネットワークデバイス122のメモリ308、320上に暗号化/復号化やポリシマネージャのコンポーネントをロードするのを不要にすることによって、メモリ要求を下げることができる。
【0063】
また、エンフォースメントモジュール316は、1以上のユーザに対して、使用していないコンポーネントをアンロードすることを考慮するように促すプロンプトを提示することも可能である。この一例として、1以上のユーザのうちの少なくとも1ユーザを別のエンターテインメントサーバ112に移すことで、当該少なくとも1ユーザの移動元のエンターテインメントサーバ112はユーザがいなくなるゆえ、シャットダウンさせることができる場合が挙げられる。
【0064】
別の例として、エンフォースメントモジュール316は、1以上のユーザに対して、その1以上のユーザのエクスペリエンスを切り替えることを考慮するように促すプロンプトを提示することも可能である。例えば、エンフォースメントモジュール316は、UIエクスペリエンス(それが1つまたは複数のエンターテインメントサーバ112あるいはホームネットワークデバイス122から駆動される場合)の忠実度を、リッチなエクスペリエンスから平坦なエクスペリエンスに低下させることができる。
【0065】
エンフォースメントモジュール316は、1つまたは複数のエンターテインメントサーバ112またはホームネットワークデバイス122上のCPU使用が高すぎると判断した場合、CPU使用を減少させるための適切なアクションをとるように促すプロンプトを1以上のユーザに提示してもよい。例えば、エンフォースメントモジュール316は、DRMコンテンツに関連する暗号化/復号化およびポリシマネージャのオーバーヘッドをなくすために、DRM保護のかかっていないメディアコンテンツの視聴に切り替えることを促
すプロンプトを1以上のユーザに提示してもよい。同様に、エンフォースメントモジュール316は、HDフィードからSDフィードへ(例えばHDTVチャネルからSDTVチャネルへ)の切替を促すプロンプトを1以上のユーザに提示してもよい。
【0066】
エンフォースメントモジュール316は、1つまたは複数のエンターテインメントサーバ112またはホームネットワークデバイス122上のハードディスク使用が高すぎると判断した場合、ハードディスク使用を減少させるための適切なアクションをとるように促すプロンプトを1以上のユーザに提示してもよい。例えば、エンフォースメントモジュール316は、より低帯域のストリームへの切替(例えば、テレビの代わりに音楽、HDTVの代わりにSDTV)を促すプロンプトを1以上のユーザに提示してもよい。
【0067】
ボトルネックが例えば(I/O)インタフェースで起きている場合、使用可能なもう1つのオプションとして、複数のエンターテインメントサーバ112あるいはホームネット
ワークデバイス122の間での負荷分散の利用がある。このような場合、エンフォースメントモジュール316は、エンターテインメントサーバ112やネットワークデバイス122のうちのあるものから別のものへ負荷を動的に移転させるために、独立型メディアエクスペリエンスポリシエンジン204や、エンターテインメントサーバ112およびホームネットワークデバイス122のメディアエクスペリエンスポリシエンジン120、202を協調させるオプションを1以上のユーザに提示してもよい。別法として、エンターテインメントサーバ112やホームネットワークデバイス122のうちの1つにある1つの「主」ポリシエンジン120、202(あるいは独立型メディアエクスペリエンスポリシエンジン204)がすべてのPC/デバイスからフィードバックを収集し、それに応答して、ボトルネックを減らし、最終的に改善することも可能である。
【0068】
一実施態様では、ユーザエクスペリエンスが目標ポリシの規定によって影響を受けることになるユーザのみに、エンフォースメントオプションを提示する。別の実施態様では、エクスペリエンスが影響を受けないユーザにも、可能性のあるリソース競合問題およびとられる可能性のあるアクションに関連する情報を提示してもよい。
【0069】
非対話的エンフォースメントの場合、ポリシエンフォースメントモジュール316は、ユーザにプロンプトを提示したり、近々実施される変更について警告を出したりせずに、環境300に対する変更を実施することができる。別法として、ポリシエンフォースメントモジュール316は、影響を受けるユーザ、影響を受けないユーザ、またはその一部に対して、今後の変更の理由あるいは説明を表示してもよい。このような場合、説明は、分かりやすい「プレイン・イングリッシュ」(すなわち、非専門ユーザが理解可能な言葉)でユーザに提示され得る。
【0070】
なお、非対話的エンフォースメントを用いてエンフォースメント措置を開始するためにポリシエンフォースメントモジュール316がとり得るアクションは、対話的エンフォースメントに関連して上記で説明した措置もすべて含み得る。
【0071】
また、上記のもの以外に、他の技法も使用可能であることは言うまでもない。また、上記の技法を適宜組み合わせることにより、エンフォースメントモジュール316は、対話的・非対話的の両方のエンフォースメント技法を組み合わせることを含め、複数の手法を一緒に用いてもよい。
【0072】
なお、言うまでもなく、上記の多くの変更は必然的に犠牲を伴う。例えば、高ビットレートのストリームが動的にトランスレート/トランスコードされると、ユーザエクスペリエンスの質が低下し、エンターテインメントサーバ112やホームネットワークデバイス122上でのCPU使用が増大する結果となる。そこで、ポリシエンジン120は、多変数評価法を用いてオプションを評価してもよい。例えば、ポリシエンジン120は、最適のオプション(すなわち、さらに高い優先度のボトルネックを生じないオプション)を見出すために、最高優先度のボトルネックを解消するようなすべてのオプションを特定し、オプションを順位付けしてもよい。どのリソースも酷使されない最適なオプションが特定された場合、ポリシエンジン120はそのオプションを実施すればよい。
【0073】
[メディアエクスペリエンスポリシ順守方法]
エンターテインメントサーバ112およびホームネットワークデバイス122の動的負荷分散を扱う別の態様を図4に示す。図4は、メディアエクスペリエンスポリシエンジン120によって実行される例示的方法400を示している。理解を容易にするため、方法400は、図4において、独立したブロックとして表現された別々のステップとして描かれている。しかし、これらの別々に描かれたステップは、その実行において必ずしも順序に依存するものと解釈してはならない。また、説明の目的上、方法400は、図1〜図3における諸要素を参照して説明される。
【0074】
ブロック402で、方法400は、メディアコンテンツ配信リソースの状態を継続的に監視する。これは、例えば、ユーザがメディアコンテンツを求めている要求先の1つまたは複数のエンターテインメントサーバ112およびネットワークデバイス122について、CPU使用、メモリ使用、(I/O)インタフェース使用およびハードディスク使用等のリソース使用を継続的に監視することによって遂行される(ブロック404)。一例示的実施態様として、リソースの監視は情報マネージャ312によって実行される。収集される使用データは、合計でもよいし、特定のデバイス122あるいはユーザごとのデータを含んでもよい。一実施態様として、方法400は、ネットワーク124の総使用と、特定のユーザ、ホームネットワークデバイス122あるいはエンターテインメントサーバ112の要求によって生じたネットワーク124の総使用とを調べるものとすることができる。同様にして、総使用や、特定のユーザあるいはデバイスによって生じた使用を表すデータは、エンターテインメントサーバ112およびホームネットワークデバイス122に関するCPU使用、メモリ使用、(I/O)インタフェース使用、およびハードディスク使用について収集することができる。
【0075】
収集された使用情報について、方法400によって、リソース競合問題があるかどうか検査することが可能である(ブロック406)。一例示的実施態様として、これはポリシエバリュエータ314によって行われる。収集された使用データは、全利用可能リソースデータと比較することができる。例えば、ネットワーク124の総使用に関して収集されたデータを、ネットワーク124の全利用可能容量と照らし合わせることにより、ネットワーク124が飽和に近いかどうかを調べることができる。同様にして、エンターテインメントサーバ112について(およびネットワークデバイス122について)、CPU、メモリ、(I/O)インタフェース、およびハードディスクが過飽和になるおそれがあるかどうかを判断するために、CPU、メモリ、(I/O)インタフェース、およびハードディスクのリソース競合を分析することが可能である。
【0076】
衝突が存在せず、アーキテクチャ300のいずれのリソースにも過飽和のおそれがない場合、介入は不要であり、方法400はブロック402に戻る(すなわち、ブロック406からの「NO」の分岐)。
【0077】
しかし一方、いずれかのリソースが飽和に近いと判明した場合(すなわち、ブロック406からの「YES」の分岐)、方法400は、アーキテクチャ300の現在の状態が目標ポリシによって規定される状態に適合するかどうかを判断するために、アーキテクチャ300の現在の状態を目標ポリシと比較する(ブロック408)。目標ポリシは、例えば、ユーザによって事前に入力されること、製造元や再販業者によって事前に設定されること、あるいはアーキテクチャ300の動作中に設定・再設定されることが可能である。一実施態様として、目標ポリシは、アーキテクチャ300の(時間的に)最初のユーザに対して完全な、あるいは高品質のエクスペリエンスを規定する一方、その後のユーザのエクスペリエンスは劣化させてもよい。このような目標ポリシの場合、サービスを利用するとリソース競合になってしまうような最後のユーザに対し、サービスを拒否する可能性がある。
【0078】
別の可能な実施態様として、目標ポリシは、主要なユーザ(例えば親あるいはエンターテインメントサーバ112の所有者)に対して完全な、あるいは高品質のエクスペリエンスを規定し、それよりも優先度の低いユーザ(例えば子供およびエンターテインメントサーバ112の非所有者)のエクスペリエンスは劣化させてもよい。このようなポリシの場合、サービスを利用するとリソース競合になってしまうような最低優先度のユーザに対し、サービスを拒否する可能性がある。
【0079】
さらに別の可能な実施態様として、目標ポリシは、最高画質のディスプレイ(例えばHDTVモニタ)に対して完全な、あるいは高品質のユーザエクスペリエンスを規定し、それよりも低い画質のディスプレイ(例えばSDTVモニタ)のエクスペリエンスは劣化させてもよい。あるいは、ポリシは、HDコンテンツをHDディスプレイのみに配信し、SDコンテンツを他のすべてのディスプレイに配信するように規定することも可能である。
【0080】
さらに別の可能な実施態様として、目標ポリシは、すべてのユーザエクスペリエンスの劣化が等しくなるように規定して、全ユーザが、公平に、アーキテクチャ300のリソースを共有するとともに、アーキテクチャ300のリソースの劣化をも共有するようにしてもよい。
【0081】
上記のすべての実施態様において、目標ポリシは、大口ユーザに不利益や制約を課する規定を含んでもよい。例えば、使用データにおいて、アーキテクチャ300のリソースのうち不相応な割合を消費するユーザあるいはデバイスがあるかどうかを検査することができる。このようなユーザあるいはデバイスが見つかった場合、それらは、ユーザエクスペリエンスの劣化や、アーキテクチャ300のリソースのさらなる使用からの排除等の特別な扱いを受けるようにすることができる。
【0082】
ブロック408で、アーキテクチャ300の現在の状態が目標ポリシに準拠していると判明した場合、介入は不要であり、方法400はブロック402に戻る(すなわち、ブロック408からの「YES」の分岐)。これに対して、ブロック408で、アーキテクチャ300の現在の状態が目標ポリシに準拠していないと判明した場合(すなわち、ブロック406からの「NO」の分岐)、ポリシエンフォースメントが行われる。
【0083】
方法400は、どのような形態のエンフォースメントが目標ポリシ、事前に入力されたコンピュータ設定、あるいはユーザプロンプトから受け取った応答によって規定されるかに応じて、対話的エンフォースメント(ブロック410)または非対話的エンフォースメント(ブロック412)を課すことができる。
【0084】
対話的エンフォースメントの下で、方法400は、リソース競合が存在することを1以上のユーザに通知して、その状況を改善するためのオプションを提示することができる。通知を受けるユーザとしては、目標ポリシのエンフォースメントにより生じる変更によってユーザエクスペリエンスが影響を受ける可能性のあるユーザであってもよいし、あるいは、全ユーザまたはその一部が通知を受けてもよい。
【0085】
一例示的実施態様として、ネットワーク124の使用が高すぎる場合、方法400は、ネットワーク使用を減少させるために、いくつかのオプションのうちの1つまたは複数のオプションを1以上のユーザに提示することができる。そのようなオプションとしては、TVを視聴する代わりに音楽を聴く、HDTVチャネルからSDTVチャネルに切り替える、等が挙げられる。CPU、メモリ、およびハードディスクの使用や、I/Oインタフェースのボトルネックから生じるリソース競合問題を改善するためにも、同様のプロンプトを提示することができる。
【0086】
非対話的エンフォースメント(ブロック412)が方法400によって行われる場合には、ユーザにプロンプトを提示したり、近々行われる変更について警告を出したりせずに、環境300に対する変更が行われる。別法として、影響を受けるユーザ、影響を受けないユーザ、またはその一部に対して、今後の変更の理由あるいは説明を表示してもよい。
【0087】
例えば、ネットワーク使用が高すぎると判断された場合、非対話的エンフォースメントの一例示的実施態様では、1以上のユーザへストリーミングされているメディアコンテンツのメディアビットレートをトランスレータ/トランスコーダの利用により低減させてもよい。CPU、メモリ、およびハードディスクの使用や、I/Oインタフェースのボトルネックから生じるリソース競合問題を改善するためにも、同様のアクションをとることができる。
【0088】
なお、上記の例以外に、他の技法も使用可能であることはもちろんであり、例えば、高い優先度の1以上のユーザにプロンプトを提示して、当該ユーザが、より低い優先度のユーザの運命を決定することができるようにしてもよい。また、上記の技法を適宜組み合わせることにより、対話的・非対話的の両方のエンフォースメント技法を組み合わせることを含め、複数の手法を一緒に用いてもよい。
【0089】
一例示的実施態様として、エンフォースメントモジュール316は、対話的・非対話的の両方のエンフォースメント技法を実行するために用いることができる。
【0090】
なお、言うまでもなく、上記のほとんどの変更は必然的に犠牲を伴う。例えば、高ビットレートのストリームが動的にトランスレート/トランスコードされると、ユーザエクスペリエンスの質が低下し、エンターテインメントサーバやホームネットワークデバイス122でのCPU使用が増大する。そこで、多変数評価法を用いてオプションを評価することによってエンフォースメントを決定してもよい。例えば、最適のオプション(すなわち、さらに高い優先度のボトルネックを生じないオプション)に基づいて、最高優先度のボトルネックを解消するために利用可能なすべてのオプションを順位付けしてもよい。どのリソースも酷使されない最適なオプションが特定された場合、方法400によってそのオプションを実施すればよい。
【0091】
ポリシエンフォースメント(ブロック410、412)の後、方法400はブロック402に戻り、環境300のリソースの継続的監視を再開する。
【0092】
[ポリシ評価方法]
目標ポリシを評価する別の態様を図5に示す。図5は、エンターテインメントサーバ112に存在するポリシエバリュエータ314によって実行される例示的方法500を示している。理解を容易にするため、方法500は、図5において、独立したブロックとして表現された別々のステップとして描かれている。しかし、これらの別々に描かれたステップは、その実行において必ずしも順序に依存するものと解釈してはならない。また、説明の目的上、方法500は、図1〜図3における諸要素を参照して説明される。
【0093】
アーキテクチャ300のリソースの使用に関する使用情報が収集された後、それを分析して、リソース競合問題が存在するかどうかを調べることができる(ブロック502)。一例示的実施態様として、使用データは情報マネージャ312によって収集される。使用データは、それとアーキテクチャ300内の全利用可能リソースとの比較によって分析することができる。例えば、ネットワーク124の総使用に関して情報マネージャ312によって収集されたデータを、ネットワーク124の全利用可能容量と照らし合わせることにより、ネットワーク124が飽和に近いかどうかを調べることができる。同様にして、エンターテインメントサーバ112について(およびネットワークデバイス122について)、CPU、メモリ、(I/O)インタフェース、およびハードディスクが過飽和になるおそれがあるかどうかを判断するために、CPU、メモリ、(I/O)インタフェース、およびハードディスクのリソース競合を分析することが可能である。
【0094】
衝突が存在せず、アーキテクチャ300のいずれのリソースにも過飽和のおそれがない場合(すなわち、ブロック504からの「NO」の分岐)、介入は不要であり、方法500はブロック502に戻る。しかし一方、いずれかのリソースが飽和に近いと判明した場合(すなわち、ブロック504からの「YES」の分岐)、方法500は、アーキテクチャ300の現在の状態が目標ポリシの下で規定される状態に適合するかどうかを判断するために、目標ポリシに照らしてアーキテクチャ300の現在の状態をチェックすることができる(ブロック506)。
【0095】
目標ポリシは、例えば、ユーザによって事前に入力されること、製造元からユーザまでの流通網において製造元あるいは他の事業体によって事前に設定されること、あるいはアーキテクチャ300の動作中に設定・再設定されることが可能である。一実施態様として、目標ポリシは、アーキテクチャ300の(時間的に)最初のユーザに対して完全な、あるいは高品質のエクスペリエンスを規定する一方、その後のユーザのエクスペリエンスは劣化させてもよい。このような目標ポリシの場合、サービスを利用するとリソース競合になってしまうような最後のユーザに対し、サービスを拒否する可能性がある。別の可能な実施態様として、目標ポリシは、主要なユーザ(例えば親あるいはエンターテインメントサーバ112の所有者)に対して完全な、あるいは高品質のエクスペリエンスを規定し、それよりも優先度の低いユーザ(例えば子供およびエンターテインメントサーバ112の非所有者)のエクスペリエンスは劣化させてもよい。このようなポリシの場合、サービスを利用するとリソース競合になってしまうような最低優先度のユーザに対し、サービスを拒否する可能性がある。
【0096】
さらに別の可能な実施態様として、目標ポリシは、最高画質のディスプレイ(例えばHDTVモニタ)に対して完全な、あるいは高品質のユーザエクスペリエンスを規定し、それよりも低い画質のディスプレイ(例えばSDTVモニタ)のエクスペリエンスは劣化させてもよい。あるいは、ポリシは、HDコンテンツをHDディスプレイのみに配信し、SDコンテンツを他のすべてのディスプレイに配信するように規定することも可能である。
【0097】
さらに別の可能な実施態様として、目標ポリシは、すべてのユーザエクスペリエンスの劣化が等しくなるように規定して、全ユーザが、公平に、アーキテクチャ300のリソースを共有するとともに、アーキテクチャ300のリソースの劣化をも共有するようにしてもよい。
【0098】
上記のすべての実施態様において、目標ポリシは、大口ユーザに不利益や制約を課する規定を含んでもよい。例えば、アーキテクチャ300のリソースのうち不相応な割合を消費するユーザあるいはデバイスがあれば、それらは、ユーザエクスペリエンスの劣化や、アーキテクチャ300のリソースのさらなる使用からの排除等の特別な扱いを受けるようにすることができる。
【0099】
目標ポリシによって規定される目標の結果がアーキテクチャ300の実際の状態に適合するかどうかを調べるために、アーキテクチャ300の状態を目標ポリシと比較することができる。実際の結果が目標の結果に適合する場合(すなわち、ブロック508からの「YES」の分岐)、介入は不要であり、方法500はブロック502に戻る。これに対して、実際の結果が目標の結果に適合しない場合(すなわち、ブロック508からの「NO」の分岐)、介入が必要であり、方法500はブロック510に進み、ポリシエンフォースメントを開始するコマンドが発行される。
【0100】
[エンフォースメント方法]
目標ポリシを評価する別の態様を図6に示す。図6は、エンターテインメントサーバ112に存在するエンフォースメントモジュール316によって実行される例示的方法600を示している。理解を容易にするため、方法600は、図6において、独立したブロックとして表現された別々のステップとして描かれている。しかし、これらの別々に描かれたステップは、その実行において必ずしも順序に依存するものと解釈してはならない。また、説明の目的上、方法600は、図1〜図3における諸要素を参照して説明される。
【0101】
アーキテクチャ300の現在の状態が目標ポリシに反していると判明した場合、メディアエクスペリエンスポリシエンジン120、またはそのコンポーネントの1つによって、目標ポリシのエンフォースメントを開始するための命令を発行することができる。方法600は、このコマンドを受け取ると(ブロック602)、対話的または非対話的のエンフォースメント手法を実行すべきかどうかを判断するために、目標ポリシや事前に設定された他の設定を調べ、あるいはユーザにプロンプトを提示することができる(ブロック604)。
【0102】
対話的手法が希望された場合(すなわち、ブロック604からの「対話」の分岐)、方法600は、続いて、リソース競合を引き起こしているユーザあるいはデバイスの挙動を中断または変更するために、1以上のユーザに1つまたは複数のユーザプロンプトを提示する(ブロック606)。
【0103】
例えば、ネットワーク124の使用が高すぎる場合、方法600は、1つまたは複数のオプションを有するプロンプトを、1以上のユーザによって使用されているモニタに表示させることができる。一実施態様として、1以上のユーザに対して、TVを視聴する代わりに音楽を聴くというオプションを提示してもよい。これは、オーディオコンテンツの配信が、オーディオ・ビデオコンテンツの配信よりも少ない帯域しか消費しないからである。また、ネットワーク使用を減少させることにより、関連するネットワークのリソース競合問題を改善するために、HDTVチャネルからSDTVチャネルに切り替えるオプションを1以上のユーザに提示してもよい。
【0104】
別の可能な実施態様として、1以上のユーザに対して、他のユーザと共有されたメディアエクスペリエンスに加わる(ユニキャストに対するマルチキャスト)ように促すプロンプトを提示することができる。また、1以上のユーザに対して、遅延再生モードに切り替えるように促すプロンプトを提示することができる。メディアコンテンツがネットワーク124の外部から来ている場合、このような選択をすれば、1つまたは複数のエンターテインメントサーバ112は、1以上のユーザに対して再生を行う前に、非リアルタイムでメディアコンテンツをダウンロードしキャッシュすることができる。このオプションは、エンターテインメントサーバ112の広域ネットワーク(WAN)リンク上のネットワーク負荷を低減する可能性がある(この場合、WANの帯域幅はネットワーク124の帯域幅と一部共用の可能性もある)。あるいは、メディアコンテンツがすでにネットワーク124に蓄積されている場合、デバイス122はそのメディアコンテンツをダウンロードしキャッシュして、ネットワーク124上のネットワーク負荷を低減することができる。
【0105】
また、1以上のユーザに配信されるメディアコンテンツのビットレートをトランスレータ/トランスコーダの利用により低減する選択肢を、その1以上のユーザに提示することができる。さらに、(ソースがリアルタイムでエンコードされている場合)メディアエンコーダビットレートを低減するオプションを1以上のユーザに提示することができる。さらに、マルチビットレート/マルチフォーマットのメディアファイルにおいて、異なるビットレートおよび/またはフォーマットに切り替えるオプションを1以上のユーザに提示することができる。さらに別の例として、ネットワーク優先制御(例えばWiFiマルチメディア)により、1つまたは複数のエンターテインメントサーバ112からホームネットワークデバイス122へ配信されるメディアコンテンツのうちで最重要のストリームが劣化しないことを保証する(これは言い換えると、より重要性の低いストリームが劣化し得ることを意味する)オプションを、1以上のユーザに提示することができる。また、UIエクスペリエンス(それが1つまたは複数のエンターテインメントサーバ112あるいはホームネットワークデバイス122から駆動される場合)の忠実度を、リッチなエクスペリエンスから平坦なエクスペリエンスに低下させるように促すプロンプトを、1以上のユーザに提示することができる。
【0106】
同様に、1つまたは複数のエンターテインメントサーバ112やホームネットワークデバイス122内のメモリ308、320の使用が高すぎる場合、方法600は、メモリ使用を低下させるように設計されたいくつかのオプションのうちの1つまたは複数のオプションを1以上のユーザに提示することができる。一例示的実施態様として、1以上のユーザに対して、ディジタル著作権管理(DRM)保護のかかっていないメディアコンテンツの視聴に切り替えるオプションを提示してもよい。このような切替としては、テレビチャネルを、Home Box Office(登録商標) TVチャネルのような有料チャネルから、American Broadcasting Company のTVチャネルのような公開で利用可能なチャネルに切り替え
る場合が挙げられる。このアクションは、1つまたは複数のエンターテインメントサーバ112およびホームネットワークデバイス122のメモリ308、320上に暗号化/復号化やポリシマネージャのコンポーネントをロードするのを不要にすることによって、メモリ要求を下げることができる。
【0107】
1つまたは複数のエンターテインメントサーバ112またはホームネットワークデバイス122上のCPU使用が高すぎる場合、CPU使用を減少させるための適切なアクションをとるように促すプロンプトを1以上のユーザに提示してもよい。例えば、DRMコンテンツに関連する暗号化/復号化およびポリシマネージャのオーバーヘッドをなくすために、DRM保護のかかっていないメディアコンテンツの視聴に切り替えることを促すプロンプトを1以上のユーザに提示してもよい。同様に、HDフィードからSDフィードへ(例えばHDTVチャネルからSDTVチャネルへ)の切替を促すプロンプトを1以上のユーザに提示してもよい。
【0108】
1つまたは複数のエンターテインメントサーバ112またはホームネットワークデバイス122上のハードディスク使用が高すぎる場合、ハードディスク使用を減少させるための適切なアクションをとるように促すプロンプトを1以上のユーザに提示してもよい。例えば、より低帯域のストリームへの切替(例えば、テレビの代わりに音楽、HDTVの代わりにSDTV)を促すプロンプトを1以上のユーザに提示してもよい。
【0109】
一実施態様では、ユーザエクスペリエンスが目標ポリシの規定によって影響を受けることになるユーザのみに、エンフォースメントオプションを提示する。しかし、影響を受けないユーザもまた、利用可能な解決法とともにリソース競合問題の通知を受けるようにすることも可能である。
【0110】
ボトルネックが例えば(I/O)インタフェースで起きている場合、使用可能なもう1つのオプションとして、複数のエンターテインメントサーバ112あるいはホームネットワークデバイス122の間での負荷分散の利用がある。このような場合、独立型メディアエクスペリエンスポリシエンジン204や、エンターテインメントサーバ112およびホームネットワークデバイス122のメディアエクスペリエンスポリシエンジン120、202を協調させ、エンターテインメントサーバ112やネットワークデバイス122のうちのあるものから別のものへ負荷を動的に移転させるように促すプロンプトを、1以上のユーザに提示してもよい。別法として、エンターテインメントサーバ112やホームネットワークデバイス122のうちの1つにある1つの「主」ポリシエンジン120、202(あるいは独立型メディアエクスペリエンスポリシエンジン204)がすべてのエンターテインメントサーバ112およびホームネットワークデバイス122からフィードバックを収集し、それに応答して、ボトルネックを減らし、最終的に改善することも可能である。
【0111】
これらのプロンプトを提示された1以上のユーザが応答を入力したら(ブロック608)、方法600は、目標ポリシを実施するために変更を開始することができる(ブロック610)。なお、一実施態様として、高い優先度のユーザにプロンプトを提示して、当該ユーザが、より低い優先度のユーザの運命を選択し決定することができるようにすることも可能である。
【0112】
非対話的エンフォースメントの場合(すなわち、ブロック604からの「非対話」の分岐)、方法600は、続いて、ユーザにプロンプトを提示せずに、環境300に対する変更を実施することができる。方法600は、影響を受けるユーザ、影響を受けないユーザ、またはその一部に対して、変更が行われる前あるいは行われている間に、今後の変更の理由あるいは説明を提示してもよい(ブロック612)が、これは必須ではない。例えば、本方法は、ユーザに警告を出さずに、適切なエンフォースメント措置をただちに開始してもよい(ブロック610)。
【0113】
なお、非対話的エンフォースメントを用いてエンフォースメント措置を開始するために方法600がとり得るアクションは、対話的エンフォースメントに関連して上記で説明した措置もすべて含み得る。また、非対話的エンフォースメントの一例示的実施態様として、メモリ308、320の使用が1つまたは複数のエンターテインメントサーバ112あるいはホームネットワークデバイス122上で高すぎると判明した場合、使用されていないコンポーネントを自動的にアンロードすることができる。
【0114】
また、上記のもの以外に、他の技法も使用可能であることは言うまでもない。また、上記の技法を適宜組み合わせることにより、複数の手法を一緒に用いることも可能である。さらに、対話的・非対話的の両方のエンフォースメント技法を組み合わせて用いることも可能である。
【0115】
なお、言うまでもなく、上記のほとんどの変更は必然的に犠牲を伴う。例えば、高ビットレートのストリームが動的にトランスレート/トランスコードされると、ユーザエクスペリエンスの質が低下し、エンターテインメントサーバやホームネットワークデバイス122上でのCPU使用が増大する。そこで、方法600は、多変数評価法を用いて、可能なエンフォースメントオプションを評価することも可能である。例えば、方法600は、最適のオプション(すなわち、さらに高い優先度のボトルネックを生じないオプション)を見出すために、最高優先度のボトルネックを解消するようなすべてのオプションを特定し、オプションを順位付けしてもよい。どのリソースも酷使されない最適なオプションが特定された場合、そのオプションを実施すればよい。
【0116】
適切なエンフォースメント措置が実施されたら(ブロック610)、方法600は、1つまたは複数のメディアエクスペリエンスポリシエンジン120、1つまたは複数のクライアント側MEPE202、独立型メディアエクスペリエンスポリシエンジン204、あるいはエンターテインメントサーバ112やホームネットワークデバイス122上の他のアプリケーションに、レポートを発行してもよい。このレポートは、アーキテクチャ300を目標ポリシに合わせるように選択された手続きの完了を報告する(ブロック614)。しかし、このようなレポートの発行は必須ではない。
【0117】
[結論]
以上、本発明について、構造上の特徴および/または方法上の動作に特有の用語で説明したが、添付の特許請求の範囲において規定される本発明は、上記の具体的な特徴や動作に必ずしも限定されないことはもちろんである。むしろ、それらの具体的な特徴や動作は、請求項に係る発明を実施する例示的形態として開示されたものである。

【特許請求の範囲】
【請求項1】
メディア配信システムのリソースの使用に関するデータを収集し、ユーザエクスペリエンスの混乱を防ぐために目標ポリシに従って前記メディア配信システムに命令を発行することによりリソース競合の可能性に対処するように構成されたメディアエクスペリエンスポリシエンジンを備えたことを特徴とするサーバ。
【請求項2】
前記サーバは、ホームPCおよびセットトップボックスのいずれかであることを特徴とする請求項1記載のサーバ。
【請求項3】
前記目標ポリシは、高優先度のユーザに対して最高品質のユーザエクスペリエンスを維持し、低優先度のユーザに対してユーザエクスペリエンスを劣化させることを規定することを特徴とする請求項1記載のサーバ。
【請求項4】
前記目標ポリシは、前記メディア配信システムの全ユーザに対してユーザエクスペリエンスの同等の劣化を規定することを特徴とする請求項1記載のサーバ。
【請求項5】
前記メディアエクスペリエンスポリシエンジンは、オペレーティングシステムに存在することを特徴とする請求項1記載のサーバ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−74054(P2012−74054A)
【公開日】平成24年4月12日(2012.4.12)
【国際特許分類】
【出願番号】特願2011−245496(P2011−245496)
【出願日】平成23年11月9日(2011.11.9)
【分割の表示】特願2008−523911(P2008−523911)の分割
【原出願日】平成18年7月11日(2006.7.11)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】