(57)【特許請求の範囲】
【請求項１】
リモートコンピューティングメディアエクスペリエンスを可能にする方法であって、
ホストデバイスが、当該ホストデバイスのリモートデスクトッププロトコルセッションを初期化するステップと、
前記ホストデバイスが、仮想チャンネルを開くステップと、
前記ホストデバイスが、第１のリモートデバイスが接続を確立するかどうか前記仮想チャンネルを監視するステップと、
前記第１のリモートデバイスが前記仮想チャンネルを介して接続すると、前記ホストデバイスが、前記第１のリモートデバイスによってサポートされているメディア能力のセットに基づいた少なくとも１つのメディア能力トークンを作成するユーザインターフェースを前記第１のリモートデバイスへ提供し、作成された少なくとも１つのメディア能力トークンを前記第１のリモートデバイスから受信するステップと、
前記ホストデバイスが、ユーザインタフェースチャンネルを介して前記第１のリモートデバイスへ、前記少なくとも１つのメディア能力トークンに基づいて、前記第１のリモートデバイスによってサポートされているメディア能力を使用可能にするメディアエクスペリエンスユーザインタフェースを送信するステップと、
前記ホストデバイスが、メディアチャンネルを介して前記第１のリモートデバイスへ、メディアコンポーネントを送信するステップと、
前記ホストデバイスが、前記第１のリモートデバイスの切断の後、前記リモートデスクトッププロトコルセッションを第２のリモートデバイスと再接続するステップと、
前記ホストデバイスが、前記第２のリモートデバイスへ、当該第２のリモートデバイスによってサポートされているメディア能力を示す第２のメディア能力トークンにしたがって前記第２のリモートデバイスに適合したメディアエクスペリエンスユーザインタフェースを送信するステップと
を備えることを特徴とする方法。
【請求項２】
前記接続は、リモートコントロール機能を有する前記ホストデバイスのシェルへの接続を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記リモートデスクトッププロトコルセッションはＴｅｒｍｉｎａｌ  Ｓｅｒｖｅｒセッションであることを特徴とする請求項１に記載の方法。
【請求項４】
前記ホストデバイスが、タイムアウト期間が完了するまで、前記第１のリモートデバイスが接続を確立するかどうか前記仮想チャンネルを監視することを特徴とする請求項１に記載の方法。
【請求項５】
前記タイムアウト期間内に前記第１のリモートデバイスから有効なメディア能力トークンを受信しない場合、前記ホストデバイスが、前記第１のリモートデバイスによってメディア能力の一般セットがサポートされていると想定して、前記メディア能力の一般セットを使用可能にするデフォルトのメディアエクスペリエンスユーザインタフェースを、前記ユーザインタフェースチャンネルを介して前記第１のリモートデバイスに送信するステップを備えることを特徴とする請求項４に記載の方法。
【請求項６】
前記ホストデバイスが、前記リモートデスクトッププロトコルセッションを切断するステップと、
前記ホストデバイスが、使用したプロセスと仮想メモリ空間を、他のプロセスのために、物理ディスクにページアウトするステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項７】
リモートコンピューティングメディアエクスペリエンスを可能にするプログラムを記録したコンピュータ可読記録媒体であって、前記プログラムは、前記ホストデバイスに、
前記ホストデバイスのリモートデスクトッププロトコルセッションを初期化するステップと、
仮想チャンネルを開くステップと、
第１のリモートデバイスが接続を確立するかどうか前記仮想チャンネルを監視するステップと、
前記第１のリモートデバイスが前記仮想チャンネルを介して接続すると前記第１リモートデバイスによってサポートされているメディア能力のセットに基づいた少なくとも１つのメディア能力トークンを作成するユーザインターフェースを前記第１のリモートデバイスへ提供し、作成された少なくとも１つのメディア能力トークンを前記第１のリモートデバイスから受信するステップと、
前記第１のリモートデバイスへ、前記少なくとも１つのメディア能力トークンに基づいて、前記第１のリモートデバイスによってサポートされているメディア能力を使用可能にするメディアエクスペリエンスユーザインタフェースを送信するステップと、
前記タイムアウト期間内に前記リモートデバイスから有効なメディア能力トークンを受信しない場合、前記リモートデバイスによってデバイス能力の一般的なセットがサポートされていると想定して、前記メディア能力の一般的なセットが使用可能にされているメディアエクスペリエンスユーザインタフェースを、前記ユーザインタフェースチャンネルを介して前記リモートデバイスに送信するステップと、
前記ホストデバイスから前記第１のリモートデバイスへ、メディアコンポーネントを送信するステップと、
前記第１のリモートデバイスを切断するステップと、
前記リモートデスクトッププロトコルセッションを第２のリモートデバイスに再接続するステップと、
前記第２のリモートデバイスへ、当該第２のリモートデバイスによってサポートされているメディア能力を示す第２のメディア能力トークンにしたがって前記第２のリモートデバイスに適合したメディアエクスペリエンスユーザインタフェースを送信するステップと
を実行させることを特徴とするコンピュータ可読記録媒体。
【請求項８】
前記接続は、リモートコントロール機能を有する前記ホストデバイスのシェルへの接続を含むことを特徴とする請求項７に記載のコンピュータ可読記録媒体。
【請求項９】
前記リモートデスクトッププロトコルセッションはＴｅｒｍｉｎａｌ  Ｓｅｒｖｅｒセッションであることを特徴とする請求項７に記載のコンピュータ可読記録媒体。
【請求項１０】
タイムアウト期間が完了するまで、前記第１のリモートデバイスが接続を確立するかどうか前記仮想チャンネルを監視することを特徴とする請求項７に記載のコンピュータ可読記録媒体。
【請求項１１】
前記プログラムは、前記ホストデバイスに、
前記タイムアウト期間内に前記第１のリモートデバイスから有効なメディア能力トークンを受信しない場合、前記第１のリモートデバイスによってメディア能力の一般セットがサポートされていると想定して、前記メディア能力の一般セットを使用可能にするデフォルトのメディアエクスペリエンスユーザインタフェースを、前記ユーザインタフェースチャンネルを介して前記第１のリモートデバイスに送信するステップを実行させることを特徴とする請求項１０に記載のコンピュータ可読記録媒体。
【請求項１２】
前記プログラムは、前記ホストデバイスに、
前記リモートデスクトッププロトコルセッションを切断するステップと、
使用したプロセスと仮想メモリ空間を、他のプロセスのために、物理ディスクにページアウトするステップと
を実行させることを特徴とする請求項７に記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つのコンピューティングデバイスから遠隔のコンピューティングデバイスにメディアおよびそれに関連するメディアサービスを遠隔から提供することに関する。より詳細には、本発明は、リモートデバイスがリモートコンピューティングセッションの目的で各自のメディア能力を宣言するためのフレームワークに関する。
【背景技術】
【０００２】
リモートコンピューティングは、コンピューティングシステムに、端末、ならびに、ＰＣおよび非ＰＣのデスクトップで実行される端末エミュレータにオペレーティングシステムベースのアプリケーションを提供する能力を与える。そのような環境は、アプリケーションの処理が主に中央サーバで行われる（ただし、分散させることもできる）、シンクライアントアーキテクチャとすることができる。そのようなアプリケーションへのアクセスを要求するクライアントは、多くの異なるデスクトッププラットフォーム（Ｍａｃｉｎｔｏｓｈ、ＵＮＩＸ（登録商標）、その他）を利用することができるので、サーバは、実質的にあらゆるデスクトップからのアプリケーションへのアクセスを提供し、それにより、エンタープライズおよび消費者に一様に、より低い総所有コスト（total cost of ownership）での、各自のコンピューティング環境の拡張を提供する。
【０００３】
例えば、マルチポイントコンピュータアプリケーションと称されるリモートコンピューティングの１タイプは、ある場所（site）で実行されているコンピュータアプリケーションのビューを、セッション中に他の場所に向ける（advertise）ことができるようにすることにより、コンピュータ間でアプリケーションを共有することを可能にする。そのような通信は、予め定義されたプロトコルを利用して行われる。各場所は、リモートのキーボード情報およびポインティングデバイス情報などのリモート入力を送信することにより、指定された条件下で共有コンピュータアプリケーションを制御することができる。したがって、単一のアプリケーションインスタンスを遠隔から閲覧および制御することを可能にして、そのアプリケーションがローカルに実行されているかのような感覚をもたらす。また、一部のタイプの「アプリケーション共有」のリモートコンピューティングは、実行中の同一のコンピュータアプリケーションの複数インスタンスを複数の場所で同期できるようにする。セッションは、一般に、あるプロトコルを介して連携してそのセッション内で１つまたは複数のアプリケーションを共有する１つまたは複数のクライアントエンティティで実行されているオブジェクトを含む。そのようなプロトコルは、クライアントエンティティおよびセッション間の対話を定義する。Ｔｅｒｍｉｎａｌ  ＳｅｒｖｅｒとＲｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌは、例示的なリモートコンピューティング環境を可能にする。
【０００４】
図１Ａに、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒのリモートコンピューティングのようなリモートコンピューティングがサーバとクライアントとの間で動作する仕組みを概略的に示す。サーバＳとクライアントＣは、無線、有線を問わず任意のネットワーク接続ＮＣを通じて通信する。アプリケーションＡがサーバＳで実行される。アプリケーションＡと関連して実行されるオペレーションを指示するユーザインタフェースがクライアントＣに送信される。そして、そのユーザインタフェースが例えばクライアントＣのディスプレイＤでレンダリングまたは表示され、クライアントＣのユーザは、そのアプリケーションがローカルで実行されているかのようにサーバＳと共同してオペレーションを行うことができる。アプリケーションＡと関連するクライアントＣへの入力は、ＲＤＰまたは他のプロトコルを介してサーバＳに送り返され、リモートコンピューティングサーバソフトウェアによって受信され、アプリケーションＡに関連するオペレーションがクライアントＣに代わってサーバＳで実行される。
【０００５】
この十年でホストＰＣのメディアレンダリング機能は急速に発展した。さらに、ホストＰＣでレンダリングすることが可能なオーディオおよび／またはビデオのメディアフォーマット数も急増している。幸いなことに、メディアデスクトップと併せて記憶装置が発展し、ストリーミングエクスペリエンスとの関連で記憶されるメディア、または恒久的にディスクに記憶されるメディアを問わず、メディアの増加に対応している。その結果、今日のホストＰＣのメディアレンダリング機能をリモートデバイスに移植することが望まれる。
【０００６】
２００３年４月１５日に出願され、本願の譲受人に譲渡された「Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅｓ  ａｎｄ  Ｓｔｒｕｃｔｕｒｅｓ  ｉｎ  ａ  Ｒｅｓｏｕｒｃｅ  Ｌｉｍｉｔｅｄ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ」という名称の同時係属米国特許出願第１０／４１３，８４６号明細書（「８４６」出願）は、メディアエクスペリエンスをリモートするための各種技術を記載する。「８４６」出願に述べられるように、メディアエクスペリエンスを迅速かつ高品質で１つまたは複数のリモートエンドポイントに送信するためのコンピューティングデバイス間の例示的な連携を図１Ｂに示し、下記で説明する。
【０００７】
図１Ｂに、リモートデバイスにメディアを送信するのに適した例示的動作環境２００の高レベルの概要を提供する。ローカルＰＣ２０１はコンピューティングエクスペリエンス２０２を描画し、このエクスペリエンス２０２は、ユーザインタフェースコンポーネント２０４とメディアコンポーネント２０６を含む。コンピューティングエクスペリエンス２０２を高品質で送信するために、ネットワーク２１１を介して、ユーザインタフェースはユーザインタフェースチャネル２１０を通じて通信され、メディアコンポーネント２０６はメディアチャネル２０８を通じて通信される。リモートコンポーネント２１２は、個々のチャネルを通じてユーザインタフェースコンポーネント２０４とメディアコンポーネント２０６を受信する。リモートエンドポイント２１３でメディアコンポーネントとユーザインタフェースコンポーネントが合成されてコンピューティングエクスペリエンス２０２をレンダリングする。
【０００８】
ローカルＰＣ２０１は、コンピュータ１１０などの従来型のＰＣ、ならびに各種の他のコンピューティングデバイスである。他の例示的なコンピューティングデバイスには、ノート型コンピュータ、タブレットＰＣ、サーバが含まれる。ローカルＰＣ２０１は、メディアコンポーネント２０６のレンダリングが可能な任意の家庭電化製品でよい。下記でより詳細に説明するように、ローカルＰＣ２０１を諸コンポーネントと併せて使用してメディアの提示を遠隔に配布することができる。さらに、ローカルＰＣ２０１で使用可能にされるＤＲＭ方式を、配布されたメディア提示に適用することができる。
【０００９】
好ましい実施形態では、コンピューティングエクスペリエンス２０２は、ＰＣ２０１によりローカルで観察されるメディアエクスペリエンスである。しかし、コンピューティングエクスペリエンス２０２は、単一のインスタンス化に限られるとは解釈すべきでない。本発明は、それぞれがインスタンス化され、個々のエンドポイントで受信されることができる複数のコンピューティングエクスペリエンス２０２を企図する。コンピューティングエクスペリエンス２０２は、ユーザインタフェースコンポーネント２０４とメディアコンポーネント２０６の両方を含む。
【００１０】
ユーザインタフェースコンポーネント２０４は、一般にユーザインタフェースを構成するグラフィックと画像を含む。ユーザインタフェースコンポーネント２０４には、アイコン、ホストのオーディオ、背景画像、およびワードプロセッシングアプリケーション、表計算アプリケーション、データベースアプリケーションなどのアプリケーションが含まれる。メディアコンポーネントでない実質的あらゆるコンポーネントがユーザインタフェースコンポーネント２０４の一部となる。メディアプレーヤおよびそれに関連付けられたオペレーティングシステムのメディアコンポーネントが、ユーザインタフェースコンポーネント２０４との関係で利用されるソフトウェアの例である。
【００１１】
メディアコンポーネント２０６は、メディアイベントを構成する、各種メディアを扱う（ｍｅｄｉａ  ｒｉｃｈ）要素あるいは高帯域幅を要する要素を含む。次に挙げるのは、例示的なメディアコンポーネントの非網羅的なリストである：ビデオおよび／またはオーディオのプレゼンテーションを含むストリーミングメディアのプレゼンテーション、ケーブルテレビジョン（ＣＡＴＶ）番組、衛星放送番組、ペイパービュー番組、または放送番組を含むテレビ番組、デジタル的に圧縮されたメディアエクスペリエンス、ラジオ番組、（ＶＣＲ、ＤＶＤプレーヤ、ＣＤプレーヤ、デジタル式ビデオ録画再生装置（Personal Video Recorder）などを記録源とする）記録されたメディアイベント、リアルタイムのメディアイベント、カメラ入力（camera feed）など。
【００１２】
したがって、自宅オフィス内に置かれたローカルＰＣ２０１を有するユーザは、そのＰＣを使用して、インターネットからのストリーミングビデオ番組を居間のテレビ（第１のリモートエンドポイント２１３）で見ることができる。さらに、同じＰＣを使用して、子供が、別のテレビジョンセット（第２のリモートエンドポイント２１３）で、ローカルＰＣ２０１に記憶されたビデオを同時に見ることができる。
【００１３】
これらのシナリオは、多数の状況に合わせて拡張できることに留意されたい。例えば、第３のユーザが、第３のリモートエンドポイント２１３にリモートされた、ローカルＰＣ２０１に入力されたカメラ入力を同時に見ることができる。第４のユーザが、ローカルＰＣ２０１を使用してコンピューティングエクスペリエンス２０２の第４のインスタンスをリモートして、ＴＶチューナがないモニタでリモートされたテレビ番組を見ることができる。
【００１４】
ユーザインタフェースチャネル２１０は、ユーザインタフェースコンポーネント２０４をリモートコンポーネント２１２に通信する。ワシントン州レドモンドのマイクロソフト社から提供されるＴｅｒｍｉｎａｌ  ＳｅｒｖｅｒおよびＴｅｒｍｉｎａｌ  Ｃｌｉｅｎｔ  Ｓｅｒｖｉｃｅは、例示的なユーザインタフェースチャネル２１０を提供する。任意のリモート対応プロトコルを使用して、ユーザインタフェースチャネル２１０を通じてデータを送信することができる。例示的なプロトコルとしてはＴ−１２０シリーズプロトコルおよびＨＴＴＰ（ハイパーテキスト転送プロトコル）がある。
【００１５】
メディアチャネル２０８は、ユーザインタフェースチャネル２１０とは別個である。メディアチャネル２０８は、ビデオや上に挙げたその他のエクスペリエンスなどの高帯域幅を要するエクスペリエンスを送信するために使用される。メディアコンポーネント２０６は、データがユーザインタフェースコンポーネント２０４とは別に流れるための通信経路を提供する。したがって、メディアコンポーネント２０６は、ユーザインタフェースコンポーネントに関する帯域の外で送信されるが、同期される。メディアコンポーネント２０６を通じてデータを送信するための例示的プロトコルには、これに限定しないが、伝送制御プロトコル（ＴＣＰ）が含まれる。
【００１６】
ネットワーク２１１は、任意の通信ネットワークでよいが、ローカルエリアネットワーク（ＬＡＮ）に照らして説明する。今日、ＬＡＮは、イーサネット（登録商標）、電話線ネットワーク、電力線ネットワーク、およびワイヤレスネットワークを含む多くの種類が提供される。ワイヤレスネットワークは、無線ネットワークおよびスペクトル拡散ネットワークに限られず、８０２．１１ａ、８０２．１１ｂ、および８０２．１１ｇなどのプロトコルを利用する。当業者は、上記およびその他のネットワークも使用できることを容易に理解されよう。
【００１７】
上述の各シナリオで、ユーザインタフェースコンポーネント２０４は、メディアコンポーネント２０６とともに個々のリモートエンドポイント２１３で提示される。それにより、リモートユーザがローカルＰＣ２０１を遠隔から操作することが可能になる。リモートユーザが行うことを望む典型的な動作には、停止、早送り、および巻き戻しなどのコマンド、ならびに再生ウィンドウのサイズ変更や音量および画像品質の調整などの動作を可能にする従来のコンピュータコマンドが含まれる。理論的には、リモートメディアデバイスが標準的なものである場合には、リモートメディアデバイスのユーザが選択できる標準的な入力コマンドセットを備えればよいが、図１Ｃに示すように、リモートメディアデバイスとメディアタイプはともに多種多様なグループである。
【発明の概要】
【発明が解決しようとする課題】
【００１８】
例示のみの目的で、図１Ｃに、音楽（ＭＰ３、ＷＭＶなど）、ストリーミングオーディオ／ビデオ、写真（ＪＰＥＧＳ、ＧＩＦなど）、動画ファイル（ＭＯＶ、ＭＰＥＧなど）、広告、放送メディア（ラジオ、ＴＶ、ケーブルなど）、グラフィックデータなどの多種のメディアが存在することを示している。また、図１Ｃには、何らかの目的により何らかの方式でメディアをレンダリングするデバイスが各種存在することも示している。これらのデバイスには、これらに限定しないが、テレビジョン、ラジオ、チューナ、ＤＶＤプレーヤ、ＶＣＲ、ＭＰ３プレーヤ、スマートディスプレイデバイス、ラップトップ、ゲーム機、リモート制御装置、携帯電話、ＰＤＡ、デジタル画像フレームなどが含まれる。メディアタイプとデバイスを結ぶ例示的で非制限的なリンクは、これらのタイプの各デバイスが当該のメディアタイプをレンダリングする能力を備える場合も、備えない場合もあることを示している。したがって、リモートデバイスのメディアレンダリング機能は多種多様である。さらに、デバイスがある特定のフォーマットをレンダリングする能力をサポートする場合でも、ホストデバイスで提示されるユーザインタフェース機能と、リモートデバイスで提示されるユーザインタフェースの機能にはなお差がある。ホストデバイスからリモートデバイスへとユーザインタフェース機能を変換するためのユーザインタフェース抽象化層を備えることが望ましいと考えられる。
【００１９】
例えば、ＭＰ３プレーヤは、ビデオを記憶またはレンダリングすることができる場合もできない場合もある。ラップトップ機は、他のデバイスに比べて大幅に優れたストレージ、処理能力、および解像度を有する可能性がある。万人向けのリモートデバイスは、特殊なタッチスクリーン機能を有する場合がある。したがって、ユーザは、選択されたリモートデバイスのメディア能力から見て合理的なカスタムフォーマットで、ユーザになじみのあるデスクトップメディアエクスペリエンスが自動的に調整されることで利益を得ると考えられる。現在のところ、開発者が特定のデバイスについてこの目標を達成するための独自のサーバソフトウェアと独自のクライアントソフトウェアをハードウェアに組み込まない限り、そのような能力は存在しない。
【００２０】
したがって、リモートデバイスがホストデバイスに対して自身のメディアレンダリング機能を宣言するための機構またはフレームワークを有することが望ましいと考えられる。さらに、リモートデバイスが、リモートデバイスのメディアエクスペリエンスに関連するものとして自身のユーザインタフェース機能をホストデバイスに対して宣言するための機構またはフレームワークを備えることも望ましい。したがって、当技術分野には、リモートデバイスが、少なくとも１つのホストデバイスおよび１つまたは複数のリモートデバイスを含むコンピューティングシステム中のあるメディアに関連するものとして能力を宣言することができるリモートコンピューティング機構に対する多大な必要性が存在する。
【課題を解決するための手段】
【００２１】
上記で明らかにした当技術の欠点を鑑みて、本発明は、ネットワークコンピューティング環境でメディアデバイス能力宣言機構を提供するためのシステムおよび方法を提供する。今日のオペレーティングシステムおよびアプリケーションの中には、リモート機能のセットを提供してリモートメディア消費デバイスのネットワーク化されたエコシステムを可能にするものがある。それらのデバイスは、リモートプロトコルおよび技術を介して、ホストに接続し、リモートされたメディアを表示する。この点で、本発明のデバイス能力判定機構は、リモートメディア消費デバイスが、ホストからそのリモートメディア消費デバイスにリモートすべきメディア能力のカスタムセットを指定することを可能にする。この機構は動的かつ拡張可能である。
【００２２】
本発明のこの他の利点および特徴は下記で述べる。
【００２３】
本発明によるメディア能力宣言システムおよび方法について、添付図面を参照してさらに説明する。
【図面の簡単な説明】
【００２４】
【図１Ａ】例示的な従来技術のリモートコンピューティング環境の図である。
【図１Ｂ】リモートデバイスにメディアエクスペリエンスをリモートするための例示的リモートコンピューティング環境の図である。
【図１Ｃ】メディアエクスペリエンスを提供する場合のメディアタイプとメディアデバイスの多様性を示す図である。
【図２Ａ】本発明を実施することが可能な各種のコンピューティングデバイスを有する例示的ネットワーク環境を表すブロック図である。
【図２Ｂ】本発明を実施することが可能な例示的で非制限的なサーバコンピューティングデバイスを表すブロック図である。
【図２Ｃ】本発明を実施してメディア能力を宣言できるようにすることが可能な総称的リモートデバイスについての、総称的リモートデバイスのブロック図である。
【図３Ａ】本発明の拡張可能なメディア能力宣言機構の例示的実施形態のブロック図である。
【図３Ｂ】本発明の拡張可能なメディア能力宣言機構の例示的実施形態の流れ図である。
【図４】本発明のメディア能力宣言機構の例示的で非制限的な実施形態の流れ図である。
【図５】本発明のメディア能力トークンを作成するためのツールの例示的で非制限的なユーザインタフェースの図である。
【図６】概してローカルなリモートコントロールエクスペリエンスで使用するためのシェルを有するホストデバイスとの関係での本発明の使用を示す図である。
【発明を実施するための形態】
【００２５】
概要  
消費者が自分のコンピュータと対話する方式の最近の改良例として、住居内のあらゆる場所で、各種のデバイス（電子家庭リモートメディアデバイス、Ｓｍａｒｔ  Ｄｉｓｐｌａｙ、ｘＢｏｘ、ポケットＰＣ、携帯ＤＶＤデバイスなど）に娯楽エクスペリエンス（ＴＶ、音楽、ビデオ、写真、ＤＶＤなど）を配信するネットワークデバイスからなる広範なエコシステムの導入がある。そのメディアエクスペリエンスがリモートされるセッションのクラスについて、ホストＰＣによって可能とされる、メディアエクスペリエンスの最適化のために、デバイスの能力に基づくセッションの能力が分からなければならない。今日、一般的なリモートメディアデバイス、スマートディスプレイ、一般的なＴＳセッションなどのデバイスの違いはよく理解されている。したがって、異なるクラスのセッションには異なるリモートメディアセッションが必要となる。いずれは、メディアはより多くの種類のデバイス（例えばｘＢｏｘ、ポケットＰＣ、携帯ＤＶＤプレーヤなど）からアクセスされるようになると考えられる。下記でより詳細に述べるように、本発明のデバイス能力を判定する機構はこうした必要性を満たす。
【００２６】
上で触れたように、Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ  Ｃｅｎｔｅｒ  Ｅｄｉｔｉｏｎ（ＭＣＥ）など今日のオペレーティングシステムの一部は、豊富なリモート機能のセットを提供して、リモートメディア消費デバイスのエコシステムを可能にする。それらのデバイスは、ＭＣＥ  ＰＣなどのホストに接続し、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅまたは他のリモーティング技術を介してリモートされたメディアエクスペリエンスを表示する。そのようなエコシステムを強化するために、本発明の自動的なデバイス能力の宣言および判定の機構は、リモートデバイスが、カスタムのメディア能力のセットと、そのデバイスにリモートすべき対応するＵＩを指定することを可能にする。
【００２７】
例示的なネットワーク化分散環境  
当業者は、本発明が、コンピュータネットワークの一部として配置するか、または分散コンピューティング環境内に配置することができる任意のコンピュータあるいは他のクライアントまたはサーバデバイスとの関係において、実施できることを認識できよう。この点で、本発明は、本発明によるリモートメディアエクスペリエンスとの関係で使用することが可能な、任意数のメモリまたは記憶装置と、任意数の記憶装置またはボリュームにわたって行われる任意数のアプリケーションおよびプロセスとを有するコンピュータシステムまたは環境に関連する。本発明は、リモートまたはローカルのストレージを有するネットワーク環境または分散コンピューティング環境に配置されたサーバコンピュータおよびクライアントコンピュータを有する環境に適用することができる。本発明は、リモートまたはローカルのサービスに関連する情報を生成、受信、および送信するためのプログラミング言語機能、解釈機能、および実行機能を有するスタンドアロンのコンピューティングデバイスにも適用することができる。デジタルメディアのためのネットワークソースがかつてなく急増していることから、本発明は特に、ネットワーク環境または分散コンピューティング環境で動作するコンピューティングデバイスに関連し、したがって、本発明によるメディア能力宣言技術は、そうした環境において非常に有効に適用することができる。
【００２８】
分散コンピューティングは、コンピューティングデバイスおよびシステム間のやりとりによるコンピュータリソースとサービスの共有を提供する。そうしたリソースおよびサービスには、情報の交換、ファイルのキャッシュストレージおよびディスクストレージが含まれる。分散コンピューティングはネットワークの接続性を利用して、クライアントがその集約されたパワーとストレージを活用してエンタープライズ全体を利することを可能にする。この点で、各種のデバイスは、本発明のメディア能力判定プロセスに関与する可能性のあるアプリケーション、オブジェクト、またはリソースを有する可能性がある。
【００２９】
図２Ａに、例示的なネットワーク環境または分散コンピューティング環境の略図を示す。分散コンピューティング環境は、コンピューティングオブジェクト１０ａ、１０ｂなどと、コンピューティングオブジェクトまたはデバイス１１０ａ、１１０ｂ、１１０ｃなどを備える。これらのオブジェクトは、プログラム、メソッド、データストア、プログラマブルロジックなどを備えることができる。オブジェクトは、ＰＤＡ、オーディオ／ビデオデバイス、ＭＰ３プレーヤ、パーソナルコンピュータなどの同一または異なるデバイスの一部を備えることができる。各オブジェクトは、通信ネットワーク１４により別のオブジェクトと通信することができる。このネットワークは、それ自体、図２Ａのシステムにサービスを提供する他のコンピューティングオブジェクトおよびコンピューティングデバイスを備えることができ、またそれ自体で複数の相互接続されたネットワークを表すことができる。本発明の一態様によれば、各オブジェクト１０ａ、１０ｂなど、または１１０ａ、１１０ｂ、１１０ｃなどは、ＡＰＩ、他のオブジェクト、ソフトウェア、ファームウェアおよび／またはハードウェアなどのインタフェースを利用して、本発明によるメディア能力判定プロセスを要求または利用することができるアプリケーションを含むことができる。
【００３０】
また、１１０ｃなどのオブジェクトは、別のコンピューティングデバイス１０ａ、１０ｂなど、または１１０ａ、１１０ｂなどでホストしてもよいことは理解できよう。したがって、図の物理的環境では接続されたデバイスをコンピュータと示すことができるが、そのような図示は例示的なものに過ぎず、物理的環境は、これに代えて、ＰＤＡ、テレビジョン、ＭＰ３プレーヤなど、インタフェース、ＣＯＭオブジェクトなどのソフトウェアオブジェクト、あるいはメディアエクスペリエンスとの関連で利用することが可能な任意のデバイスなどの各種のデジタルデバイスを備えるものとして図示または説明することができる。
【００３１】
分散コンピューティング環境をサポートする各種のシステム、コンポーネント、およびネットワーク構成が存在する。例えば、有線または無線システム、ローカルネットワーク、または広域分散ネットワークにより、コンピューティングシステムを共に接続することができる。現在ネットワークの多くはインターネットに結合されており、インターネットは、広域に分散したコンピューティングのためのインフラストラクチャを提供し、多くの異なるネットワークを取り込む。そのインフラストラクチャをいずれも、本発明によるリモートメディアエクスペリエンスの提供に関連して行われる例示的通信に使用することができる。
【００３２】
家庭ネットワーキング環境では、電力線、データ（無線および有線両方）、音声（例えば電話）、および娯楽メディアなど、それぞれが独自のプロトコルをサポートする少なくとも４つの異種のネットワークトランスポートメディアがある。電灯のスイッチや電気機器などの大半の家庭用制御デバイスは、接続に電力線を使用することができる。データサービスは、広帯域（例えばＤＳＬまたはケーブルモデム）として住居に入ることができ、住居内では無線（ＨｏｍｅＲＦまたは８０２．１１Ｂ）の接続性または有線（例えばＨｏｍｅＰＮＡ、Ｃａｔ５、Ｅｔｈｅｒｎｅｔ（登録商標）、あるいは電力線）の接続性を使用してアクセスされることができる。音声トラフィックは、有線（Ｃａｔ３など）または無線（携帯電話）として住居に入り、住居内ではＣａｔ３配線を用いて分配することができる。娯楽メディアまたは他のグラフィックデータは、衛星またはケーブルを通じて住居に入ることができ、住居内では通例同軸ケーブルを使用して分配される。ＩＥＥＥ１３９４およびＤＶＩもメディアデバイスのクラスタ向けのデジタル相互接続である。これらのネットワーク環境およびプロトコル標準として台頭する可能性のあるその他のネットワーク環境すべてを相互接続してイントラネットなどのネットワークを形成し、そのネットワークをインターネットにより外界に接続することができる。要約すると、データの記憶と送信には各種の異種のソースが存在し、その結果、今後、コンピューティングデバイスは、本発明によるメディア能力宣言および判定機構を要求または利用するプログラムオブジェクトとの関連でアクセスまたは利用されるデータなどのデータを共有する方式を必要とするようになると予想される。
【００３３】
インターネットとは、一般に、コンピュータネットワーキングの分野でよく知られるＴＣＰ／ＩＰプロトコルスイートを利用するネットワークとゲートウェイの集合を言う。ＴＣＰ／ＩＰは、「伝送制御プロトコル／インターネットプロトコル」の頭字語である。インターネットは、ユーザがネットワークを通じて対話し、情報を共有することを可能にするネットワーキングプロトコルを実行するコンピュータによって相互接続された、地理的に分散したリモートコンピュータネットワークからなるシステムと説明することができる。そのように広域にわたって情報が共有されるため、インターネットなどのリモートネットワークは現在までのところ、概して、開発者が、特殊化された動作またはサービスを行うためのソフトウェアアプリケーションを実質的に制限なしに設計することができるオープンシステムに発展している。
【００３４】
したがって、このネットワークインフラストラクチャにより、クライアント／サーバ、ピアツーピア、あるいはハイブリッドアーキテクチャといった多数のネットワークロポロジが可能になっている。「クライアント」とは、それが関連しない別のクラスまたはグループのサービスを使用するクラスまたはグループのメンバである。したがって、コンピューティングにおいて、クライアントは、別のプログラムによって提供されるサービスを要求するプロセス、すなわち大まかに言うと命令またはタスクのセットである。クライアントプロセスは、他のプログラムまたはサービス自体に関する機構の詳細を一切「知る」必要なしに、要求したサービスを利用する。クライアント／サーバアーキテクチャ、特にネットワークシステムでは、クライアントは通例、別のコンピュータ、例えばサーバによって提供される共有ネットワークリソースにアクセスするコンピュータである。図２Ａの例では、コンピュータ１１０ａ、１１０ｂなどをクライアントと考え、コンピュータ１０ａ、１０ｂなどのサーバと考えることができ、サーバ１０ａ、１０ｂなどはデータを保持し、そのデータがクライアントコントローラ１１０ａ、１１０ｂなどで複製されるが、状況に応じてどのコンピュータもクライアント、サーバ、またはその両方とみなすことができる。例えば、コンピュータ１１０ａをＭＣＥホストＰＣとし、コンピューティングデバイス１０ａ、１０ｂなどをリモートメディア消費デバイスとすることができる。これらのコンピューティングデバイスはいずれも、本発明のメディア能力判定機構に関与する可能性のあるデータを処理するか、またはサービスまたはタスクを要求する可能性がある。
【００３５】
サーバとは、一般に、インターネットなどのリモートまたはローカルネットワークを通じてアクセスすることができるリモートコンピュータシステムである。第１のコンピュータシステムでクライアントプロセスがアクティブであり、第２のコンピュータシステムでサーバプロセスがアクティブであり、通信媒体を通じて相互と通信し、それにより分散した機能を提供し、複数のクライアントがサーバの情報収集能力を利用できるようにすることが可能である。本発明のメディア能力判定技術との関連で利用されるソフトウェアオブジェクトは、複数のコンピューティングデバイスまたはオブジェクトに分散することが可能である。
【００３６】
クライアントとサーバは、プロトコル層によって提供される機能を利用して相互と通信する。例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）は、ワールドワイドウェブ（ＷＷＷ）あるいは「ウェブ」との関連で使用される一般的なプロトコルである。例えば、ＲＤＰは、リモートコンピューティングに利用される一般的なプロトコルである。通例、インターネットプロトコル（ＩＰ）アドレスなどのコンピュータネットワークアドレスや、ユニバーサルリソースロケータ（ＵＲＬ）などの他の参照を使用して、サーバまたはクライアントコンピュータを相互に識別することができる。ネットワークアドレスは、ＵＲＬアドレスと称することができる。通信は、通信媒体を通じて提供することができ、例えば、大容量通信を行うためにＴＣＰ／ＩＰ接続を介してクライアントとサーバを相互と結合することができる。
【００３７】
上に述べたように、図２Ａには、サーバがネットワーク／バスを介してクライアントコンピュータと通信する例示的なネットワーク環境あるいは分散環境を示し、この環境で本発明を用いることができる。より詳細には、本発明により、複数のサーバ１０ａ、１０ｂなどが、ＬＡＮ、ＷＡＮ、イントラネット、インターネットなどの通信ネットワーク／バス１４を介して、携帯型コンピュータ、ハンドヘルドコンピュータ、シンクライアント、ネットワーク機器、またはＶＣＲ、ＴＶ、オーブン、電灯、ヒータなどの他のデバイスといった複数のクライアントあるいはリモートコンピューティングデバイス１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどと相互に接続される。したがって、本発明は、ストレージ、ユーザインタフェース、レンダリングなどに関して、独自のメディア能力を有する任意のコンピューティングデバイスに適用できることが企図される。
【００３８】
通信ネットワーク／バス１４がインターネットであるネットワーク環境では、サーバ１０ａ、１０ｂなどは、クライアント１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどがＨＴＴＰなどの任意数の知られるプロトコルのいずれかを介して通信するウェブサーバとすることができる。分散コンピューティング環境の特徴であるように、サーバ１０ａ、１０ｂなどは、クライアント１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどとして機能することもできる。
【００３９】
通信は、適宜有線でも無線でもよい。クライアントデバイス１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなどは、通信ネットワーク／バス１４を介して通信してもしなくともよく、デバイスに関連付けられた独立した通信を有することができる。例えばＴＶまたはＶＣＲの場合は、その制御にネットワーク化された面があってもなくてもよい。各クライアントコンピュータ１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅなど、およびサーバコンピュータ１０ａ、１０ｂなどは、各種のアプリケーションプログラムモジュールまたはオブジェクト１３５と、様々なタイプの記憶要素またはオブジェクトへの接続またはアクセスとを備えることができ、記憶要素あるいはオブジェクトには、ファイルまたはデータストリームを記憶するか、ファイルまたはデータストリームの一部をダウンロード、送信、または移動することができる。コンピュータ１０ａ、１０ｂ、１１０ａ、１１０ｂなどの１つまたは複数は、本発明により処理されるデータを記憶するデータベースまたはメモリ２０などのデータベース２０または他の記憶要素の維持と更新を担当することができる。したがって、本発明は、コンピュータネットワーク／バス１４にアクセスし、対話することが可能なクライアントコンピュータ１１０ａ、１１０ｂなどと、クライアントコンピュータ１１０ａ、１１０ｂなどおよびデータベース２０などの他の同様のデバイスと対話することが可能なサーバコンピュータ１０ａ、１０ｂなどとを有するコンピュータネットワーク環境で利用することができる。
【００４０】
例示的コンピューティングデバイス  
図２Ｂおよび以下の説明は、本発明をそれとの関連で実施することができる適切なコンピューティング環境についての簡単で一般的な説明を提供する。ただし、ハンドヘルドデバイス、携帯型または他のコンピューティングデバイス、およびあらゆる種類のコンピューティングオブジェクトが本発明との関連で、すなわちそのメディアをコンピューティング環境で体験することができる場所であればあらゆる場所で使用されると企図することは理解されたい。下記では汎用コンピュータを例示的ホストとして説明するが、これは一例に過ぎず、本発明は、ネットワーク／バスの相互動作性と対話を有するシンクライアントを用いて実施することもできる。したがって、本発明は、関連するクライアントリソースが非常に少ないか、または最小限である、ネットワーク化されたホストされるサービスからなる環境、例えば電気機器中に配置されたオブジェクトなど、クライアントデバイスが単にネットワーク／バスとのインタフェースとして機能するネットワーク環境で実施することができる。基本的に、データが記憶される場所、またはデータがそこから取得されるか、別のコンピュータに送信される場所であれば、本発明によるカスタムメディアエクスペリエンスの配信動作のために望ましい、または適した環境となる。
【００４１】
これは必須ではないが、本発明は、デバイスまたはオブジェクト向けのサービスの開発者が使用するようにオペレーティングシステムを介して実施するか、かつ／または、本発明による能力宣言の受信またはカスタムメディアエクスペリエンスの配信との関係で動作するアプリケーションソフトウェアに含めることができる。ソフトウェアについては、クライアントワークステーション、サーバ、または他のデバイスなどの１つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令との一般的関係で説明することができる。一般に、プログラムモジュールには、特定のタスクを行うか、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通例、プログラムモジュールの機能は、各種実施形態で述べるように組み合わせることも分散することもできる。さらに、当業者は、本発明は、他のコンピュータシステム構成およびプロトコルを用いて実施することが可能であることを認識されよう。本発明に使用するのに適する可能性がある他のよく知られるコンピューティングシステム、環境、および／または構成には、これらに限定しないが、パーソナルコンピュータ（ＰＣ）、現金自動預け払い機、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサを利用したシステム、プログラム可能な家庭電化製品、ネットワークＰＣ、電気機器、電灯、環境制御要素、ミニコンピュータ、メインフレームコンピュータなどが含まれる。本発明は、通信ネットワーク／バスまたは他のデータ送信媒体を通じてリンクされた遠隔の処理デバイスによってタスクが行われる分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモート両方のコンピュータ記憶媒体に置くことができ、クライアントノードがサーバノードとして振舞うことができる。
【００４２】
上に述べたように、図２Ｂに本発明を実施することが可能な適切なコンピューティングシステム環境１００の一例を示すが、先に明確にしたように、コンピューティングシステム環境１００は適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能性の範囲について制限を示唆するものではない。また、コンピューティング環境１００は、例示的動作環境１００に図示する構成要素のいずれか１つまたは組み合わせに関連する依存性または必要性を有するものとも解釈すべきでない。
【００４３】
図２Ｂを参照すると、本発明を実施する例示的システムは、コンピュータ１１０の形態の汎用コンピューティングデバイスを含む。コンピュータ１１０の構成要素には、これらに限定しないが、処理装置１２０、システムメモリ１３０、およびシステムメモリを含む各種のシステム構成要素を処理装置１２０に結合するシステムバス１２１が含まれる。システムバス１２１は、各種のバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含む数種のバス構造のいずれでもよい。そのようなアーキテクチャの例には、これらに限定しないが、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）バス、およびＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バス（メザニンバスとも称される）が含まれる。
【００４４】
コンピュータ１１０は通例各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセスできる任意の利用可能媒体でよく、揮発性および不揮発性の媒体、取り外し可能および取り外し不能媒体を含む。これに限定しないが、例としてコンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方式または技術として実装された揮発性および不揮発性の媒体、取り外し可能および取り外し不能の媒体を含む。コンピュータ記憶媒体には、これらに限定しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは、所望の情報の記憶に用いることができ、コンピュータ１１０によるアクセスが可能な任意の他の媒体が含まれる。通信媒体は、通例、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の搬送機構などの変調データ信号として具現化し、任意の情報伝達媒体を含む。用語「変調データ信号」とは、信号中に情報を符号化するような方式でその特性の１つまたは複数を設定または変化させた信号を意味する。例として、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれるが、これらに限定しない。上記の媒体のいずれの組み合わせもコンピュータ可読媒体の範囲に含めるべきである。
【００４５】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２など、揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）が、通例、ＲＯＭ１３１に記憶される。ＲＡＭ１３２は通例、処理装置１２０から即座にアクセス可能な、かつ／または処理装置１２０により現在操作中のデータおよび／またはプログラムモジュールを保持する。例として、これに限定しないが、図２Ｂにはオペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００４６】
コンピュータ１１０は、この他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体も含むことができる。単なる例として、図２Ｂには、取り外し不能、不揮発性の磁気媒体の読み書きを行うハードディスクドライブ１４１、取り外し可能、不揮発性の磁気ディスク１５２の読み書きを行う磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭや他の光学媒体などの取り外し可能、不揮発性の光ディスク１５６の読み書きを行う光ディスクドライブ１５５を示す。例示的動作環境で使用できるこの他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体には、これらに限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ１４１は通例、インタフェース１４０などの取り外し不能メモリインタフェースを通じてシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通例、インタフェース１５０など取り外し可能メモリインタフェースによってシステムバス１２１に接続される。
【００４７】
上記で説明し、図２Ｂに示すドライブとそれに関連付けられたコンピュータ記憶媒体は、コンピュータ１１０のコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶を提供する。例えば図２Ｂでは、ハードディスクドライブ１４１にオペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７が記憶されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じものでも、異なるものでもよいことに留意されたい。ここではオペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、それらが少なくとも異なるコピーであることを表すために異なる参照符号を付している。ユーザは、キーボード１６２と、一般にはマウス、トラックボール、タッチパッドと称されるポインティングデバイス１６１などの入力装置を通じてコンピュータ１１０にコマンドと情報を入力することができる。他の入力装置（図示せず）としては、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが可能である。これらおよび他の入力装置は、システムバス１２１に結合されたユーザ入力インタフェース１６０を通じて処理装置１２０に接続することが多いが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルバス（ＵＳＢ）など他のインタフェースおよびバス構造によって接続することも可能である。ノースブリッジなどのグラフィックインタフェース１８２もシステムバス１２１に接続することができる。ノースブリッジは、ＣＰＵあるいはホスト処理装置１２０と通信し、アクセラレーテッドグラフィックポート（ＡＧＰ）通信を担当するチップセットである。１つまたは複数のグラフィック処理装置（ＧＰＵ）１８４が、グラフィックインタフェース１８２と通信することができる。この点で、ＧＰＵ１８４は一般にレジスタストレージなどのオンチップメモリストレージを含み、ＧＰＵ１８４はビデオメモリ１８６と通信し、本発明のアプリケーション変数が影響を与える可能性がある。しかしＧＰＵ１８４はコプロセッサの一例に過ぎず、したがって、各種のコプロセッシング装置をコンピュータ１１０に含めることができ、そのようなコプロセッシング装置としては、ピクセルシェーダや頂点シェーダなどの各種の手続き型シェーダが含まれる。モニタ１９１または他のタイプの表示装置もビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続され、インタフェースは、ビデオメモリ１８６と通信する。モニタ１９１に加えて、コンピュータは、スピーカ１９７やプリンタ１９６などの他の周辺出力装置も含むことができ、それらの出力装置は、出力周辺インタフェース１９５を通じて接続することができる。
【００４８】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータとの論理接続を使用するネットワーク環境または分散環境で動作することができる。リモートコンピュータ１８０はパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、あるいはその他の一般的なネットワークノードでよく、図２Ｂにはメモリ記憶装置１８１しか示していないが、通例はコンピュータ１１０との関連で上記で挙げた要素の多くまたはすべてを含む。図２Ｂに示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１とワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワーク／バスを含むことも可能である。このようなネットワーキング環境は、家庭、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットに一般的に見られる。
【００４９】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０はネットワークインタフェースまたはアダプタ１７０を通じてＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０は通例、インターネットなどのＷＡＮ１７３を通じて通信を確立するためのモデム１７２またはその他の手段を含む。モデム１７２は内蔵型でも外付け型でもよく、ユーザ入力インタフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０との関連で図示したプログラムモジュール、またはその一部は遠隔のメモリ記憶装置に格納することができる。これに限定しないが、例として図２Ｂではリモートアプリケーションプログラム１８５がメモリ装置１８１に存在する。図のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用できることは理解されよう。
【００５０】
例示的リモートデバイス  
図２Ｃおよび以下の説明は、本発明によるリモートメディアデバイスに適したコンピューティング環境についての簡単で一般的な説明を提供する。ただし、ハンドヘルドデバイス、携帯型およびその他のコンピューティングデバイス、およびあらゆる種類のコンピューティングオブジェクトを本発明との関連で、すなわちあるデバイスがそのデバイスへのカスタムリモートメディアエクスペリエンスの配信を要求する可能性のあるあらゆる場所で使用されることを企図することを理解されたい。メディア能力の点から見たこれらのデバイスの差が、多大な有利性を有する本発明を利用して、様々なリモートデバイスに合わせてリモートメディアエクスペリエンスを調整する。したがって、下記の汎用リモートコンピュータは一例に過ぎず、本発明は、ネットワーク／バスの相互動作性および対話を有する任意のクライアントを用いて実施することができる。したがって、本発明は、関与するクライアントリソースが非常に少ないか、または最小限である、ネットワーク化されたホストされるサービスからなる環境、例えば電気機器中に配置されたオブジェクトなどクライアントデバイスが単にネットワーク／バスとのインタフェースとして機能するネットワーク環境で実施することができる。基本的に、データが記憶される場所、またはデータがそこから取得されるか、別のコンピュータに送信される場所であれば、本発明によるリモートメディアエクスペリエンス技術の動作のために望ましいか、あるいは適する環境となる。
【００５１】
これは必須ではないが、本発明は、デバイスまたはオブジェクトのサービスの開発者が使用するようにオペレーティングシステムを介して一部を実施するか、かつ／または、本発明の構成要素との関係で動作するアプリケーションソフトウェア中に含めることができる。ソフトウェアについては、クライアントワークステーション、サーバ、または他のデバイスなどの１つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令との一般的関係で説明することができる。当業者には認識されるように、本発明は、他のコンピュータシステム構成およびプロトコルを用いて実施することができる。
【００５２】
したがって、図２Ｃに本発明を実施することが可能な適切なコンピューティングシステム環境１００ａの一例を示すが、先に明確にしたように、コンピューティングシステム環境１００ａは、リモートデバイスに適するコンピューティング環境の一例に過ぎず、本発明の使用または機能性の範囲について制限を示唆するものではない。また、コンピューティング環境１００ａは、例示的コンピューティング環境１００ａに図示する構成要素のいずれか１つまたは組み合わせに関連する依存性または必要性を有するものとも解釈すべきでない。
【００５３】
図２Ｃを参照すると、本発明を実施する例示的なリモートデバイスは、コンピュータ１１０ａの形態の汎用コンピューティングデバイスを含む。コンピュータ１１０ａの構成要素には、これらに限定しないが、処理装置１２０ａ、システムメモリ１３０ａ、およびシステムメモリを含む各種のシステム構成要素を処理装置１２０ａに結合するシステムバス１２１ａが含まれる。システムバス１２１ａは、各種のバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含む数種のバス構造のいずれでもよい。
【００５４】
コンピュータ１１０ａは通例各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０ａがアクセスできる任意の利用可能媒体でよい。これに限定しないが、例としてコンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方式または技術として実装された揮発性および不揮発性の媒体、取り外し可能および取り外し不能の媒体を含む。コンピュータ記憶媒体には、これらに限定しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは、所望の情報の記憶に用いることができ、コンピュータ１１０ａによるアクセスが可能な任意の他の媒体が含まれる。通信媒体は、通例、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の搬送機構などの変調データ信号として具現化し、任意の情報伝達媒体を含む。用語「変調データ信号」とは、信号中に情報を符号化するような方式でその特性の１つまたは複数を設定または変化させた信号を意味する。例として、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれるが、これらに限定しない。上記の媒体のいずれの組み合わせもコンピュータ可読媒体の範囲に含めるべきである。
【００５５】
システムメモリ１３０ａは、読み取り専用メモリ（ＲＯＭ）および／またはランダムアクセスメモリ（ＲＡＭ）など、揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含むことができる。起動時などにコンピュータ１１０ａ内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）が、通例、メモリ１３０ａに記憶される。メモリ１３０ａは通例、処理装置１２０ａから即座にアクセス可能な、かつ／または処理装置１２０ａにより現在操作中のデータおよび／またはプログラムモジュールを保持する。例として、これらに限定しないが、メモリ１３０ａは、オペレーティングシステム、アプリケーションプログラム、他のプログラムモジュール、およびプログラムデータも含むことができる。
【００５６】
コンピュータ１１０ａは、この他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体も含むことができる。例えば、コンピュータ１１０ａは、取り外し不能、不揮発性の磁気媒体の読み書きを行うハードディスクドライブ、取り外し可能、不揮発性の磁気ディスクの読み書きを行う磁気ディスクドライブ、およびＣＤ−ＲＯＭや他の光学媒体などの取り外し可能、不揮発性の光ディスクの読み書きを行う光ディスクドライブを含むことができる。例示的動作環境で使用できるこの他の取り外し可能／取り外し不能、揮発性／不揮発性のコンピュータ記憶媒体には、これらに限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが挙げられる。ハードディスクドライブは通例、インタフェースなどの取り外し不能メモリインタフェースを通じてシステムバス１２１ａに接続され、磁気ディスクドライブまたは光ディスクドライブは通例、インタフェースのなど取り外し可能メモリインタフェースによってシステムバス１２１ａに接続される。
【００５７】
ユーザは、キーボードと、一般にはマウス、トラックボール、タッチパッドと称されるポインティングデバイスなどの入力装置を通じてコンピュータ１１０ａにコマンドと情報を入力することができる。他の入力装置（図示せず）としては、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが可能である。これらおよび他の入力装置は、システムバス１２１ａに結合されたユーザ入力１４０ａおよびそれに関連付けられたインタフェースを通じて処理装置１２０ａに接続することが多いが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルバス（ＵＳＢ）など他のインタフェースおよびバス構造によって接続することも可能である。グラフィックサブシステムもシステムバス１２１ａに接続することができる。モニタまたは他のタイプの表示装置も出力インタフェース１５０ａなどのインタフェースを介してシステムバス１２１ａに接続され、インタフェースは、ビデオメモリと通信する。モニタに加えて、コンピュータは、スピーカやプリンタなどの他の周辺出力装置も含むことができ、それらの出力装置は、出力インタフェース１５０ａを通じて接続することができる。
【００５８】
コンピュータ１１０ａは、リモートコンピュータ１７０ａなど１つまたは複数のリモートコンピュータとの論理接続を使用するネットワーク環境または分散環境で動作することができ、リモートコンピュータ１７０ａは、デバイス１１０ａとは異なるメディア能力を有することができる。リモートコンピュータ１７０ａはパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、あるいはその他の一般的なネットワークノード、あるいは任意の他のリモートメディア消費または送信デバイスでよく、コンピュータ１１０ａとの関連で上記で挙げた要素の多くまたはすべてを含むことができる。図２Ｃに示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）などのネットワーク１７１ａを含むが、他のネットワーク／バスを含むことも可能である。このようなネットワーキング環境は、家庭、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットに一般的に見られる。
【００５９】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０ａはネットワークインタフェースまたはアダプタを通じてＬＡＮ１７１ａに接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０ａは通例、インターネットなどのＷＡＮを通じて通信を確立するためのモデムまたはその他の手段を含む。モデムは内蔵型でも外付け型でもよく、入力１４０ａのユーザ入力インタフェースまたは他の適切な機構を介してシステムバス１２１ａに接続することができる。ネットワーク環境では、コンピュータ１１０ａとの関連で図示したプログラムモジュール、またはその一部を遠隔のメモリ記憶装置に格納することができる。図示し、ここで説明するネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用できることは理解されよう。
【００６０】
例示的な分散コンピューティングフレームワークまたはアーキテクチャ  
パーソナルコンピューティングとインターネットの統合を踏まえて各種の分散コンピューティングフレームワークが過去から現在にわたって開発されている。個人とビジネスユーザにはともに、アプリケーションとコンピューティングデバイス向けのシームレスに相互が動作可能でウェブ対応型のインタフェースが提供されており、コンピューティング活動は次第にウェブブラウザ指向またはネットワーク指向になりつつある。
【００６１】
例えば、ＭＩＣＲＯＳＯＦＴ（登録商標）のマネージコードプラットフォーム、すなわち．ＮＥＴは、サーバと、ウェブベースのデータストレージやダウンロード可能なデバイスソフトウェアなどのビルディングブロックサービスとを含む。大まかに述べると、．ＮＥＴプラットフォームは以下を提供する：（１）あらゆる範囲のコンピューティングデバイスを連携させ、それらのデバイスすべてでユーザ情報を自動的に更新および同期する能力、（２）ＨＴＭＬではなくＸＭＬをより多く使用することで可能になるウェブページの対話能力の増大、（３）例えば電子メールなど各種のアプリケーションやＯｆｆｉｃｅ．Ｎｅｔなどのソフトウェアを管理するための製品およびサービスへのカスタマイズされたアクセスと、中央の開始点からユーザへのそれら製品およびサービスの配信を特色とするオンラインサービス、（４）データストレージの集中化。それにより情報へのアクセスと、ユーザ間およびデバイス間の情報同期の効率と容易さが高まる。（５）電子メール、ファックス、電話など各種の通信媒体を統合する能力、（６）開発者に対しては再使用可能なモジュールを作成し、それにより生産性を高め、プログラミングエラー数を低減する能力、および（７）その他多くのクロスプラットフォームおよび言語の統合機能。
【００６２】
本発明の一部の例示的実施形態は、コンピューティングデバイスに存在するソフトウェアとの関係で説明するが、本発明の１つまたは複数の部分は、オペレーティングシステム、アプリケーションプログラミングインタフェース（ＡＰＩ）または「仲介（ｍｉｄｄｌｅ  ｍａｎ）」オブジェクト、コントロールオブジェクト、ハードウェア、ファームウェア、中間言語命令、またはオブジェクトなどを介して実施することもでき、本発明の方法は、．ＮＥＴコードなどのマネージコードによって可能になるすべての言語およびサービスに含める、それらでサポートされる、またはそれらを介してアクセスすることができ、また他の分散コンピューティングフレームワークでも同様である。
【００６３】
リモートデスクトッププロトコルおよびターミナルサーバセッションの概要  
Ｍｉｃｒｏｓｏｆｔ  Ｒｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ（ＲＤＰ）は、ホストからリモートメディア消費デバイスにメディアエクスペリエンスを移植するために使用できるプロトコルの一例である。ＲＤＰは、サーバで実行されるＷｉｎｄｏｗｓ（登録商標）ベースのアプリケーションについて、ネットワーク接続を通じたリモートからの表示と入力能力を提供する。ＲＤＰは、異なるタイプのネットワークトポロジと複数のＬＡＮプロトコルをサポートするように設計されている。
【００６４】
サーバ側では、ＲＤＰは、当該プロトコルを使用してレンダリング情報をネットワークパケットとして構築し、ネットワークを通じてそのパケットをクライアントに送信することにより、自身のビデオドライバを使用してディスプレイ出力をレンダリングする。クライアント側では、ＲＤＰは、レンダリングデータを受信し、パケットを解釈して、対応するグラフィックデバイスインタフェースＡＰＩの呼び出しにする。入力の経路については、クライアントのマウスおよびキーボードイベントがクライアントからサーバにリダイレクトされる。サーバ側では、ＲＤＰは、自身の仮想キーボードドライバおよびマウスドライバを使用してキーボードおよびマウスイベントを受け取る。非制限的な機能の点から見ると、ＲＤＰは、暗号化、帯域幅低減機能、ローミング接続解除、クリップボードマッピング、プリントのリダイレクト、仮想チャンネル、リモートコントロール、およびネットワークの負荷分散を含む。
【００６５】
Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒは、Ｗｉｎｄｏｗｓ（登録商標）ＮＴ  Ｓｅｒｖｅｒなどのサーバの拡張として例示的なリモートコンピューティング環境を提供する。シンクライアントだけで、ユーザは、完全にサーバから離れてサーバのデスクトップオペレーティングシステムとアプリケーションを体験することができる。Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒを用いると、ユーザには、以下のタイプのデスクトップからＷｉｎｄｏｗｓ（登録商標）ベースのアプリケーションへのアクセスが提供される。（Ａ）サードパーティのハードウェアベンダから販売される、一般にＷｉｎｄｏｗｓ（登録商標）ベース端末と称される低コストのハードウェア、（Ｂ）ローカルのデスクトップ環境でＴｅｒｍｉｎａｌ  Ｓｅｒｖｅｒクライアントをウィンドウとして実行することによる、Ｗｉｎｄｏｗｓ（登録商標）９５やＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）ＮＴ  ＷｏｒｋｓｔａｔｉｏｎなどのＷｉｎｄｏｗｓ（登録商標）デスクトップオペレーティングシステム、および、（Ｃ）Ｘベース端末、ＵＮＩＸ（登録商標）ベースのデスクトップ、Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ、ＭＳ−ＤＯＳ、およびその他のネットワークコンピュータ（アドオンソフトウェアを介する）。
【００６６】
Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒは、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒマルチユーザコア、Ｒｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ（ＲＤＰ）、およびシンクライアントソフトウェアの３つの主要コンポーネントを備える。
【００６７】
Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒは、他のデバイスでの複数の同時のクライアントセッションをホストする能力を提供するマルチユーザサーバコアである。Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒは、各種のＷｉｎｄｏｗｓ（登録商標）ベースおよび非Ｗｉｎｄｏｗｓ（登録商標）ベースのハードウェアで実行される互換性のあるマルチユーザクライアントデスクトップを直接ホストすることができる。標準的なＷｉｎｄｏｗｓ（登録商標）ベースのアプリケーションは、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒで実行するために変更が必要でなく、すべての標準的なＷｉｎｄｏｗｓ（登録商標）ＮＴベースの管理インフラストラクチャおよび技術を使用してクライアントデスクトップを管理することができる。このように、企業は、Ｗｉｎｄｏｗｓ（登録商標）環境によって提供される豊富なアプリケーションとツールの選択肢を利用することができる。
【００６８】
ＲＤＰは、シンクライアントがネットワークを通じてＴｅｒｍｉｎａｌ  Ｓｅｒｖｅｒと通信することを可能にするＴｅｒｍｉｎａｌ  Ｓｅｒｖｅｒのプロトコルである。このプロトコルは、国際的な標準マルチチャネル会議プロトコルである国際電気通信連合（ＩＴＵ）Ｔ．１２０プロトコルに基づく。ＲＤＰは、高帯域幅のエンタープライズ環境向けに適合されており、また暗号化されたセッションもサポートする。
【００６９】
シンクライアントコンポーネントは、Ｗｉｎｄｏｗｓ（登録商標）ベースの端末デバイスとパーソナルコンピュータを含む一連のデスクトップハードウェアでＷｉｎｄｏｗｓ（登録商標）ユーザインタフェースを提示または表示するソフトウェアである。
【００７０】
Ｔｅｒｍｉｎａｌ  ＳｅｒｖｅｒのＯｂｊｅｃｔ  Ｍａｎａｇｅｒは、異なるセッションのアプリケーションとシステムプログラムが衝突しないようにする。あるセッションで作成されるすべてのオブジェクト名には、そのオブジェクトを作成した個々のセッションに関連付けられた一意の識別子番号（セッションＩＤ）が付加される。Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒサービスは完全にプロトコルに依存するので、ＲＤＰ、またはＣｉｔｒｉｘ社のＩＣＡなどのサードパーティのアドオンプロトコルを使用して機能することができる。
【００７１】
ＲＤＰは、サーバからのシリアルのデバイス通信および提示データと、暗号化されたクライアントのマウスデータおよびキーボードデータとを搬送するための個別の仮想チャネルを可能にするマルチチャネル対応プロトコルである。仮想チャネルは、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅアプリケーションに機能の強化を付加するために使用できるソフトウェア拡張である。機能の拡張例としては、特殊なタイプのハードウェア、オーディオのサポート、またはＴｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅ  ＲＤＰによって提供されるコア機能への他の追加、が挙げられる。ＲＤＰは、複数の仮想チャネルの多重化された管理を提供する。
【００７２】
仮想チャネルアプリケーションは、クライアントサイドコンポーネントとサーバサイドコンポーネントの２部分を有する。サーバサイドコンポーネントは、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒで実行される実行可能プログラムである。クライアントサイドコンポーネントは、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅクライアントプログラムが実行される時にクライアントコンピュータのメモリにロードされるＤＬＬである。
【００７３】
仮想チャネルは、ＲＤＰプロトコルに依存せずにＴｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅクライアントに機能強化を加えることができる。仮想チャネルのサポートにより、クライアントまたはサーバソフトウェア、あるいはＲＤＰプロトコルを更新する必要なしに新しい機能を追加することができる。
【００７４】
この他の数個の機能もＴ．１２０標準の定義の一部であり、例えば、アプリケーションからのデータを「リアルタイム」で複数の関係者に配信することが可能なマルチポイントデータ配信が挙げられる。マルチキャスト対応の配信は、信頼性のあるデータ送信の配信サービスを可能にする。これは、顧客に対するパフォーマンスを高め、同時にネットワークインフラストラクチャにかかる負荷を軽減する。ＲＤＰは、そこからより多くの能力を構築するための拡張可能な基盤を提供するので、接続性の目的に有益である。その理由は、一部には、ＲＤＰがデータ送信のための最高６４，０００個の別個のチャネルを提供し、またマルチポイント送信を提供するからである。
【００７５】
ＲＤＰは、ＩＳＤＮ、ＰＯＴＳ、およびＩＰＸ、Ｎｅｔｂｉｏｓ、ＴＣＰ／ＩＰといった多くのＬＡＮプロトコルなどの多種のネットワークトポロジをサポートするように設計されている。
【００７６】
ＲＤＰスタックを通じたデータの送受信に関連する動作は、基本的には、今日の一般的なＬＡＮネットワーキングのための７層のＯＳＩ（オープンシステム相互接続）モデル標準と同じである。送信されるアプリケーションまたはサービスからのデータは、プロトコルスタックの下部へと渡されて行き、区分され、あるチャネルに誘導され、暗号化され、ラッピングされ、フレーム化され、ネットワークプロトコルにパッケージ化され、最終的にアドレス指定され、線を通じてクライアントに送信される。
【００７７】
戻りデータは送信時と逆方向で同様に移動し、パケットからそのアドレスが除去され、ラッピングが解除され、解読される等され、最終的にはデータが使用のためにアプリケーションに提示される。プロトコルスタック変更の一部は４番目の層と７番目の層の間で行われ、ここでデータが暗号化され、ラッピングされ、フレーム化され、チャネルに誘導され、優先順位が付けられる。
【００７８】
ＲＤＰでは、プロトコルスタックを扱う問題がアプリケーション開発者から取り除かれるので有利である。アプリケーション開発者は単にアプリケーションを書き、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒとそのクライアント接続によって実施されるＲＤＰスタックが残りの部分を処理する。
【００７９】
開始時には、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒがブートし、コアオペレーティングシステムをロードし、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒサービスが開始され、セッション接続の待機を開始する。各接続には、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒに対して個々のセッションを表す一意のセッション識別子あるいは「セッションＩＤ」が与えられ、セッション内で作成される各プロセスには、そのプロセスの名前空間を他のセッションの名前空間から区別する、関連付けられたセッションＩＤが「タグ付け」される。ユーザがＴｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅ対応のコンピュータにログオンすると、そのユーザについてのセッションが開始され、一意のセッションＩＤで識別される。Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅクライアントへの各ログオンは個別のセッションＩＤを受け取るので、ユーザエクスペリエンスは、例えばオフィスのコンピュータと自宅のコンピュータなど複数のコンピュータに同時にログオンする場合と同様になる。
【００８０】
コンソール（Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒのキーボード、マウス、およびビデオ）セッションが最初にロードされ、特殊ケースのクライアント接続として扱われ、セッションＩＤ０が割り当てられる。コンソールセッションは、通常のシステムセッションとして開始し、設定されたディスプレイドライバ、マウスドライバ、およびキーボードドライバがロードされる。
【００８１】
コンソールセッションを作成すると、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒサービスは次いでＳｅｓｓｉｏｎ  Ｍａｎａｇｅｒを呼び出して、クライアント接続を待つ（デフォルトでは）２つのアイドルクライアントセッションを作成する。アイドルセッションを作成するために、Ｓｅｓｓｉｏｎ  Ｍａｎａｇｅｒは、クライアントサーバランタイムサブシステムプロセスを実行し、そのプロセスに新しいセッションＩＤが割り当てられる。
【００８２】
コンソールセッションと異なり、クライアントセッションは、ディスプレイ、キーボード、およびマウスに個別のドライバをロードするように構成される。この新しいディスプレイドライバは、Ｒｅｍｏｔｅ  Ｄｅｓｋｔｏｐ  Ｐｒｏｔｏｃｏｌ（ＲＤＰ）表示装置ドライバであり、マウスドライバおよびキーボードドライバは、ＲＤＰドライバに代えられる。これらのドライバは、遠隔からＲＤＰクライアントセッションを利用可能かつ対話式にすることを可能にする。最後に、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒは、ＲＤＰプロトコルに対応する接続リスナスレッドも呼び出し、このスレッドは、ＴＣＰポートでＲＤＰクライアント接続をリッスンする。異なるセッションＩＤを有するプロセスは、別のセッションのデータにアクセスできないようにされる。
【００８３】
例示的な実施では、クライアントは、ＴＣＰポートを通じてＴｅｒｍｉｎａｌ  Ｓｅｒｖｅｒとの接続を開始する。Ｔｅｒｍｉｎａｌ  ＳｅｒｖｅｒのＲＤＰリスナスレッドは、セッション要求を検出し、新しいＲＤＰスタックインスタンスを作成して新しいセッション要求に対応する。リスナスレッドは、着信するセッションを新しいＲＤＰスタックインスタンスに渡し、さらなる接続の試みを求めてＴＣＰポートでのリッスンを続ける。各ＲＤＰスタックは、クライアントセッションが接続されてセッション設定の詳細のネゴシエーションを処理すると作成される。
【００８４】
ユーザのログオン後、単一アプリケーションモードの場合は、デスクトップ、すなわちアプリケーションがユーザに表示される。ユーザが実行するアプリケーションを選択すると、マウスコマンドがＴｅｒｍｉｎａｌ  Ｓｅｒｖｅｒに渡され、Ｔｅｒｍｉｎａｌ  Ｓｅｒｖｅｒは選択されたアプリケーションを新しい仮想メモリ空間内に起動する。
【００８５】
ユーザがセッションの切断を決定した場合は、プロセスとすべての仮想メモリ空間がそのまま残り、他のプロセスに物理メモリが必要とされる場合は物理ディスクにページアウト（ｐａｇｅ  ｏｆｆ）される。ＲＤＰの他の利点は、ユーザがセッションに何を要求するかに応じてセッション画面の解像度を変えられる点である。例えば、ユーザがそれまで８００ｘ６００の解像度でＴｅｒｍｉｎａｌ  Ｓｅｒｖｅｒセッションに接続しており、そのセッションを切断し、６４０ｘ４８０の解像度しかサポートしない別のコンピュータに移動し、既存のセッションに再接続した場合、デスクトップは、その新しい解像度をサポートするように再描画される。
【００８６】
ログオフは、通例非常に簡単に実装することができる。ユーザがセッションからログオフすると、そのセッションＩＤに関連付けられたすべてのプロセスが終了され、そのセッションに割り振られていたメモリが解放される。
【００８７】
リモートデバイスのメディア能力の宣言および判定  
先に述べたように、例えばＷｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ  Ｃｅｎｔｅｒ  Ｅｄｉｔｉｏｎ（ＭＣＥ）など今日のオペレーティングシステムの一部は、豊富なリモート機能のセットを提供してリモートメディア消費デバイスのエコシステムを可能にする。これらのデバイスは、ＭＣＥ  ＰＣなどのホストに接続し、Ｔｅｒｍｉｎａｌ  ＳｅｒｖｉｃｅおよびＲＤＰ、または他のリモーティング技術を介してリモートされたエクスペリエンスを表示する。したがって、本発明のデバイス能力判定機構は、リモートデバイスが、そのデバイスにリモートすべきメディア能力のカスタムセットを指定できるようにする。
【００８８】
先に述べたように、そのメディアエクスペリエンスがリモートされるセッションのクラスについてホストＰＣでのメディタエクスペリエンスを最適化するために、本発明によりデバイスに基づくセッションの能力がリモートデバイスによって宣言される。したがって、異なるクラスのセッションには異なるメディアエクスペリエンスが提供される。本発明によるデバイス能力を宣言し、判定する機構は、リモートデバイスに合わせて適切にメディアエクスペリエンスを設定することを可能にする。
【００８９】
図３Ａおよび３Ｂに、それぞれ本発明の各種実施形態の例示的なブロック図と流れ図を示す。図３Ａは、リモートメディアデバイス３１０が、ホストＰＣ３００によって理解されるフレームワークに従って自身のメディア能力を宣言することを示している。ホストＰＣ３００は、フレームワークで指示された規則により能力の宣言を解釈すると、カスタムメディアエクスペリエンスをリモートデバイスに配信することができる。図３Ｂは、ホストＰＣ３００とリモートメディアデバイス３１０間で行われるやり取りの例示的手順を表す。３２０で、ホスト３００とデバイス３１０の間で使用されるＲＤＰなどのプロトコルに従ってリモートコンピューティングセッションが作成される。３３０で、デバイス３１０が、本発明の機構を介して、そのデバイスが有するメディア機能のセットを宣言する。３４０でホストが宣言を受け取り、３５０で、ホストはその宣言を変換して、ホスト３００により理解されてセッション中にリモートデバイス３１０へのメディアエクスペリエンスの配信に適用される調整されたメディア機能のセットとする。
【００９０】
図４の流れ図に示す例示的実施形態では、能力判定機構は次のように動作する。４００でＲＤＰセッションが初期化され、４１０でホストＰＣが仮想チャネルを開き、４２０で例えば６０秒間のタイムアウト期間が完了するまでそのチャネルを監視する。リモートクライアントが４３０でその仮想チャネルを介して接続を確立し、４４０でそのデバイスの能力ストリングを渡すと、４５０で適切な機能が使用可能にされてメディアセンターＵＩがリモートデバイスに提示される。タイムアウト期間内に有効な能力ストリングが転送されないと４６０で判定される場合は、４７０で一般的なデバイス能力のセットが想定される。例示的で非制限的なデフォルトのセットを下の表１に定義する。一実施形態では、能力ストリングは、ＲＤＰによって定義される仮想チャネルを介してホストＰＣに渡される。
【００９１】
【表１−１】
0005385340.tif 000002
【００９２】
【表１−２】
0005385340.tif 000003
【００９３】
【表１−３】
0005385340.tif 000004
【００９４】
クライアントの能力ストリングの作成を容易にするために、別の実施形態で、本発明は、図５に例示的ＵＩとともに示すクライアント能力トークンビルダ（ＣＣＴＢ）ツール５００を提供する。ＣＣＴＢツール５００を使用して、デバイス能力をホストＰＣに伝達するトークンセットを作成する。トークンを作成するには単にリスト５１０から関連するデバイス能力を選択し、適用可能な場合はデバイスにフレンドリ名を割り当てる。（図５では「Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅ」がフレンドリ名であり、この名前は本発明との関連で使用することが可能な例示的リモートメディアデバイスを指すためにも利用する。）能力トークンの値は、第１のフィールド５２０に表示される。このストリングをＵＴＦ−８で符号化した明示が第２のフィールド５３０に表示される。この実施形態では、ＵＴＦ−８で符号化されたストリングが仮想チャネルを介してホストＰＣに渡されてデバイス能力を指定する。本実施形態におけるＵＴＦ−８で符号化したストリングの使用は、単なる設計上の選択である。任意のフォーマットを使用して第１のフィールド５２０の値を記述することができ、したがって本発明はＵＴＦ−８の符号化方式の使用に限定されないことに留意されたい。
【００９５】
図６に、ホストＰＣのメディア環境が「１０−ｆｏｏｔ  ＵＩ」のメディアエクスペリエンスを有する本発明の一実施形態を示す。この実施形態では、ホストＰＣ６００は、リモートコントロールデバイス６２０とともに機能するように設計されたメディアシェル６０５を有する。したがって、ユーザは、ホストＰＣ６００のキーボード、マウスなどのある場所にいる必要はなく、リモートコントロールデバイス６２０を介してホストＰＣ６００のメディアセンターを操作することができる。メディアエクスペリエンスのリモーティングは本発明によりシームレスかつ自動的になるように設計されるので、本実施形態では、リモートデバイス６１０がそのメディア能力ストリングをホストデバイス６００に送信し、カスタムメディアエクスペリエンスがデバイス６１０にリモートされると、リモートデバイス６２０を利用してそのメディアエクスペリエンスのどの部分をも、すなわちホストＰＣ６００のエクスペリエンスもリモートデバイス６１０のエクスペリエンスも制御することができる。これは、リモートエクスペリエンスが「１０−ｆｏｏｔ  ＵＩ」のメディアシェル６０５に結び付けられているからである。
【００９６】
本発明の別の主要な態様は、メディア能力を宣言するための拡張可能な機構を提供することである。ＲＤＰはそれ自体で特定のデバイス能力についてのブロードキャスト機構を有するが、それは拡張可能な機構ではなく、またリモートメディアエクスペリエンスを対象としたものではない。この点で、従来はホストとリモートデバイス間のメディアシナリオはハードウェアに組み込まれていた（hardwired）が、新たなリモートメディア消費デバイスが設定すべき新しいクラスのメディアプロパティを必要とする範囲内で本発明を変更して新しい能力セットに対応することができる。例えば、ツール５００は追加的なプロパティを含むように変更することができ、それに対応するメディア能力ストリングは、その変更に応じて生成され、解釈される。すなわち、ストリング自体が拡張可能であり、今後生じる可能性のある無限の数のメディアプロパティに対応する。
【００９７】
さらに本発明は動的である。すなわち、リモートデバイスがホストＰＣとの確立されたセッションを有し、リモートデバイスが何らかの理由でネットワークから切断された場合、その合間にメディアプロパティが変化した場合には、その後再接続された時に、本発明は、デバイスの新しい条件に合わせてメディア能力ストリングを動的に適合させる。したがって、例えば、リモートデバイスの切断の後に、そのリモートデバイスがより高い画面解像度を有するモニタに接続された場合は、再接続時に本発明によるメディア能力ストリングを介して高い方の画面解像度が宣言される。
【００９８】
例示的デバイスの例示的なリモートの例外  
表１に示すデバイスとプロパティの違いによって例示されるように、ホストＰＣには、リモートメディアデバイスにリモートすることができないか、またはリモートされる際に特殊な方式で扱われるメディア機能がいくつかある。本発明のメディア能力判定機構は、そのような例外が存在することを認め、リモートメディアエクスペリエンスセッション中に自動的かつ動的に処理できるようにする。
【００９９】
具体的な例として、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅと称されるキーボードもマウスもないリモートデバイスをここで検討し、このデバイスでは、ユーザが、テレビを見る、音楽を聴く、写真を見るといった様々なシナリオでデスクトップのメディアエクスペリエンスをワイヤレスにＲｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅにリモートできるとする。Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅには、一般的なセッションあるいはデフォルトのセッションに複数の潜在的な例外がある。したがって、本発明の価値を例証するために、以下の説明ではＲｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅと称されるデバイスについての一般的なセッションの例示的で非制限的な例外を例示し、これらの例外は、本発明のメディア能力宣言機構によって自動的かつ動的に処理される。
【０１００】
動画のセンターロッキング式のスタートメニュー設計は、動画化されないＲｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅセッションでは機能しない。したがって、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅセッションでは動画でないスタートメニュー設計を利用し、その場合はメニュー自体の代わりにハイライトカーソルが動かされる。ウィンドウのコントロールおよびユーザ名については、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅのリモートエクスペリエンスでは最小化／最大化／ウィンドウを閉じる／ログオフのボタンが除去され、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅのユーザは高速のユーザ切り替えやコントロールウィンドウ設定を利用することができない。ＣＤのコピーなどのＣＤ機能は、リモートされたセッションではサポートされない。ビジュアライゼーションは非常に多大な帯域幅、プロセッサ、およびメモリを要するので、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅにリモートされたセッションではサポートされない。Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅにリモートされたセッションでは、写真については「詳細（ｍｏｒｅ  ｉｎｆｏ）」のボタンが使用不可にされる。ＤＶＤ機能もＲｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅにはリモートされない。したがって、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅにリモートされたセッションについてはメニュー項目「ＤＶＤを再生する」を開始メニューから除去しなければならず、ＤＶＤに関連する設定も除去しなければならない。
【０１０１】
アルファブレンドされたアセットは、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ−Ｄｅｖｉｃｅ＿ディスプレイのビデオでは表示が不正確になる。したがって、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅにリモートされたセッションにはカスタムのアセットを使用して単一ピクセルのアルファ問題を回避する。アルファ楕円は、多量のカスタムのアルファＧＤＩ符号化を必要とし、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅセッションでは実装されない。マーキースクロールは、Ｄ３Ｄレンダリングを必要とし、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅでは使用不可にされる。Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅは、デフォルトでＴＶスキンを利用する。また、現在は特定のボタン名がボタンコンテナに収まらないので、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅにリモートされたセッションでは小さめのテキストサイズを使用して切り詰められたボタンラベルに対処する。
【０１０２】
キーボード／マウスを用いずにヘルプおよびサポートセンター（ＨＳＣ）を閉じる方式はなく、またＨＳＣは大半のＴＶ画面の解像度では使用することができないので、Ｒｅｍｏｔｅ−Ｍｅｄｉａ−ＤｅｖｉｃｅにリモートされたセッションではＨＳＣが起動されない。したがって、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿ＤｅｖｉｃｅにリモートされたセッションではＨＳＣへのリンクは表示されない。Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅにリモートされたセッション中には、すべてのｆｉｒｓｔ−ｒｕｎ／設定のページについてヘルプのリンクが除去される。Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅではキーボードもマウスも利用することができないので、ポップアップは表示されない。
【０１０３】
Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅクライアントは、ホストマシンで新規ユーザとしてセットアップされる。Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅにリモートされたセッションは、全画面で排他的に実行されるように設定され、デフォルトで「常に手前に表示」で実行されて目障りなポップアップがＵＩの上に表示されないようにする。さらに、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅのアカウントは、ＡｃｔｉｖｅＸコントロールのインストールは一切許可しない。
【０１０４】
Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅにリモートされたセッションでは、完全に動画化された待機カーソルは表示されない。代わりにカスタムバージョンが表示され、これははるかに低いフレームレートで動画化され、Ｄ３Ｄベースの動画方式に依拠しない。マウスがないので、Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅにリモートされたセッションではマウスの移動時に表示されるオーバーレイは表示すべきでない。Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅデバイスの場合、フロントパネルディスプレイ（ＦＰＤ）イベントはすべて「ヌル」のＦＰＤデバイスに送信して、ホストＰＣのＦＰＤに送信されないようにする。
【０１０５】
このように、メディア能力をホストデバイスに宣言するために本発明のフレームワークにより自動的に設定することが可能な無数のメディア能力プロパティが存在することが明らかであろう。本発明は、追加的なメディア能力に合わせて拡張可能なフレームワークを提供し、また本発明は、リモートメディアエクスペリエンスセッションの開始時に動的に関与するので、ホストＰＣと連携して遠隔で動作する異なるメディアデバイスシナリオの数には限りがない。本発明はセッションに対して自動的に動作するので、ユーザは、リモートデバイスの電源を入れ、リモートデバイスに配信されるカスタマイズされたメディアエクスペリエンスを見るだけでよい。例えば、上記のＲｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅでは、上記の例外はすべて自動的に処理される。Ｒｅｍｏｔｅ＿Ｍｅｄｉａ＿Ｄｅｖｉｃｅは、自身のメディア能力ストリングをホストＰＣに対して宣言し、ホストＰＣは、そのストリングに基づいてデバイスのメディア能力を解釈し、能力に応じてリモートメディアエクスペリエンスを配信する。
【０１０６】
本発明を実施する方式は複数あり、例えば、アプリケーションおよびサービスが本発明のメディア能力宣言機構を使用することを可能にする適切なＡＰＩ、ツールキット、ドライバコード、オペレーティングシステム、コントロール、スタンドアロンまたはダウンロード可能なソフトウェアオブジェクトなどがある。本発明は、ＡＰＩ（または他のソフトウェアオブジェクト）の観点から、また本発明の機構を介してメディア能力を送受信するソフトウェアまたはハードウェアオブジェクトの観点から、本発明の使用を企図する。したがって、ここに記載される本発明の各種の実施は、完全にハードウェアにある態様、一部がハードウェアにあり一部がソフトウェアにある態様、またソフトウェアにある態様を有することができる。
【０１０７】
上記のように、本発明の例示的実施形態について各種のコンピューティングデバイスおよびネットワークアーキテクチャとの関係で説明したが、その基礎となる概念は、メディアエクスペリエンスをリモートすることが望ましい任意のコンピューティングデバイスまたはシステムに適用することができる。例えば、本発明のアルゴリズムおよびハードウェア実施は、デバイス上の別個のオブジェクト、別のオブジェクトの一部、再使用可能なコントロール、サーバからダウンロード可能なオブジェクト、デバイスまたはオブジェクトとネットワーク間の「仲介役」、分散オブジェクト、ハードウェア、メモリ中、上述の組み合わせなどとして提供されるコンピューティングデバイスのオペレーティングシステムに適用することができる。本明細書では例示的なプログラミング言語、名前、および例を各種選択肢の代表として選択したが、それらの言語、名前および例は制限的なものではない。当業者には理解されるように、本発明の各種実施形態によって達成される機能と等しい、ほぼ等しい、あるいは同等の機能を達成するオブジェクトコードおよび用語体系を提供する方式は多数ある。
【０１０８】
先に述べたように、ここに記載される各種の技術は、ハードウェアまたはソフトウェア、あるいは適切な場合はそれら２つの組み合わせとの関連で実施することができる。したがって、本発明の方法および装置、またはその特定の態様または一部分は、フロッピー（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、あるいは任意の他の機械可読の記憶媒体などの有形媒体として実施されたプログラムコード（すなわち命令）の形を取ることができ、その場合、プログラムコードがコンピュータなどのマシンにロードされ、実行されると、そのマシンは本発明を実施する装置となる。プログラム可能なコンピュータでプログラムコードを実行する場合、コンピューティングデバイスは一般に、プロセッサ、そのプロセッサによって可読の記憶媒体（揮発性および不揮発性メモリおよび／または記憶素子を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。例えばデータ処理ＡＰＩ、再使用可能なコントロールなどの使用を通じて本発明のメディア能力機構を実施または利用することが可能な１つまたは複数のプログラムは、高級手続き型プログラミング言語またはオブジェクト指向のプログラミング言語で実施してコンピュータシステムと通信することが好ましい。ただし、それが求められる場合、プログラムはアセンブリ言語またはマシン語で実施することができる。いずれの場合も、言語はコンパイルされる言語またはインタープリタによって実行される言語とすることができ、ハードウェア実装と組み合わせることができる。
【０１０９】
本発明の方法および装置は、電気配線またはケーブル、光ファイバー、あるいは任意の他の形態の送信などの何らかの送信媒体を通じて送信されるプログラムコードの形態に実施された通信を介して実施することもでき、その場合、プログラムコードが受信され、ＥＰＲＯＭ、ゲートアレイ、プログラマブルロジックデバイス（ＰＬＤ）、クライアントコンピュータなどのマシンにロードされ、実行されると、そのマシンは本発明を実施する装置になる。汎用プロセッサで実施されると、プログラムコードはプロセッサと組み合わさって、本発明の機能を呼び出すように動作する独自の装置を提供する。また、本発明との関連で使用される記憶技術は、常にハードウェアとソフトウェアの組み合わせであってよい。
【０１１０】
本発明について各種図面の好ましい実施形態との関係で説明したが、他の同様の実施形態を使用してよいこと、または本発明から逸脱せずに上記の実施形態に変更および追加加えて本発明と同等の機能を行うことが可能であることを理解されたい。例えば、本発明の例示的ネットワーク環境についてはピアツーピアや分散ネットワーク環境などのネットワーク環境に即して説明したが、当業者は、本発明はそれに限られず、本願に記載される方法は、有線、無線を問わず、ゲーム機、ハンドヘルドコンピュータ、携帯型コンピュータなどの任意のコンピューティングデバイスまたは環境に適用でき、また通信ネットワークを介して接続され、そのネットワークを介して対話する任意数のそのようなコンピューティングデバイスに適用することが可能であることを認識されよう。さらに、特に無線ネットワークデバイスの数が急増し続けていることから、ハンドヘルドデバイスのオペレーティングシステム、および他の特定用途のオペレーティングシステムを含む各種のコンピュータプラットフォームが企図されることを強調したい。
【０１１１】
例示的実施形態は、ＲＤＰとの関連で本発明の利用について言及したが、本発明はこれに限定されず、例えばリモートコンピューティングセッションの開始時に、デバイスにリモートメディアエクスペリエンスを配信する前に任意のプロトコルを実施してデバイスのメディア能力を宣言するための一般的なフレームワークを提供することができる。さらに、本発明は、複数の処理チップまたはデバイス中で、またはそれらにわたって実施することができ、記憶も同様に複数のデバイスにわたって行うことができる。したがって、本発明は、どの単一の実施形態にも限定すべきではなく、頭記の特許請求の範囲による範囲において解釈すべきである。
【符号の説明】
【０１１２】
１０ａ，１０ｂ  サーバオブジェクト
１４  通信ネットワーク／バス
２０  データベース
１１０ａ，１１０ｂ，１１０ｅ  コンピューティングデバイス
１１０ｃ，１１０ｄ  オブジェクト
２０１  ローカルＰＣ
２０８  メディアチャンネル
２１０  ＵＩチャンネル
２１１  ネットワーク
２１３  リモートエンドポイント
３００  ホストＰＣ
３１０  リモートメディアデバイス
６００  ホストデバイス
６０５  メディアセンターシェル
６１０  リモートデバイス
６２０  リモートコントロール
【図１Ａ】
0005385340.tif 000005
【図１Ｂ】
0005385340.tif 000006
【図１Ｃ】
0005385340.tif 000007
【図２Ａ】
0005385340.tif 000008
【図２Ｂ】
0005385340.tif 000009
【図２Ｃ】
0005385340.tif 000010
【図３Ａ】
0005385340.tif 000011
【図３Ｂ】
0005385340.tif 000012
【図４】
0005385340.tif 000013
【図５】
0005385340.tif 000014
【図６】
0005385340.tif 000015