"リモートコンピューティングメディアエクスペリエンスを可能にする方法であって、ホストデバイスが、当該ホストデバイスのリモートデスクトッププロトコルセッションを初期化するステップと、前記ホストデバイスが、仮想チャンネルを開くステップと、前記ホストデバイスが、第1のリモートデバイスが接続を確立するかどうか前記仮想チャンネルを監視するステップと、前記第1のリモートデバイスが前記仮想チャンネルを介して接続すると、前記ホストデバイスが、前記第1のリモートデバイスによってサポートされているメディア能力のセットに基づいた少なくとも1つのメディア能力トークンを前記第1のリモートデバイスから受信するステップと、前記ホストデバイスが、ユーザインタフェースチャンネルを介して前記第1のリモートデバイスへ、前記少なくとも1つのメディア能力トークンに基づいて、前記第1のリモートデバイスによってサポートされているメディア能力を使用可能にするメディアエクスペリエンスユーザインタフェースを送信するステップと、前記ホストデバイスが、メディアチャンネルを介して前記第1のリモートデバイスへ、メディアコンポーネントを送信するステップと、前記ホストデバイスが、前記第1のリモートデバイスの切断の後、前記リモートデスクトッププロトコルセッションを第2のリモートデバイスと再接続するステップと、前記ホストデバイスが、前記第2のリモートデバイスへ、当該第2のリモートデバイスによってサポートされているメディア能力を示す第2のメディア能力トークンにしたがって前記第2のリモートデバイスに適合したメディアエクスペリエンスユーザインタフェースを送信するステップとを備えることを特徴とする方法。前記接続は、リモートコントロール機能を有する前記ホストデバイスのシェルへの接続を含むことを特徴とする請求項1に記載の方法。前記リモートデスクトッププロトコルセッションはTerminalServerセッションであることを特徴とする請求項1に記載の方法。前記ホストデバイスが、タイムアウト期間が完了するまで、前記第1のリモートデバイスが接続を確立するかどうか前記仮想チャンネルを監視することを特徴とする請求項1に記載の方法。前記タイムアウト期間内に前記第1のリモートデバイスから有効なメディア能力トークンを受信しない場合、前記ホストデバイスが、前記第1のリモートデバイスによってメディア能力の一般セットがサポートされていると想定して、前記メディア能力の一般セットを使用可能にするデフォルトのメディアエクスペリエンスユーザインタフェースを、前記ユーザインタフェースチャンネルを介して前記第1のリモートデバイスに送信するステップを備えることを特徴とする請求項4に記載の方法。前記ホストデバイスが、前記リモートデスクトッププロトコルセッションを切断するステップと、前記ホストデバイスが、使用したプロセスと仮想メモリ空間を、他のプロセスのために、物理ディスクにページアウトするステップとを備えることを特徴とする請求項1に記載の方法。リモートコンピューティングメディアエクスペリエンスを可能にするプログラムを記録したコンピュータ可読記録媒体であって、前記プログラムは、前記ホストデバイスに、前記ホストデバイスのリモートデスクトッププロトコルセッションを初期化するステップと、仮想チャンネルを開くステップと、第1のリモートデバイスが接続を確立するかどうか前記仮想チャンネルを監視するステップと、前記第1のリモートデバイスが前記仮想チャンネルを介して接続すると前記第1リモートデバイスによってサポートされているメディア能力のセットに基づいた少なくとも1つのメディア能力トークンを前記第1のリモートデバイスから受信するステップと、前記第1のリモートデバイスへ、前記少なくとも1つのメディア能力トークンに基づいて、前記第1のリモートデバイスによってサポートされているメディア能力を使用可能にするメディアエクスペリエンスユーザインタフェースを送信するステップと、前記タイムアウト期間内に前記リモートデバイスから有効なメディア能力トークンを受信しない場合、前記リモートデバイスによってデバイス能力の一般的なセットがサポートされていると想定して、前記メディア能力の一般的なセットが使用可能にされているメディアエクスペリエンスユーザインタフェースを、前記ユーザインタフェースチャンネルを介して前記リモートデバイスに送信するステップと、前記ホストデバイスから前記第1のリモートデバイスへ、メディアコンポーネントを送信するステップと、前記第1のリモートデバイスを切断するステップと、前記リモートデスクトッププロトコルセッションを第2のリモートデバイスに再接続するステップと、前記第2のリモートデバイスへ、当該第2のリモートデバイスによってサポートされているメディア能力を示す第2のメディア能力トークンにしたがって前記第2のリモートデバイスに適合したメディアエクスペリエンスユーザインタフェースを送信するステップとを実行させることを特徴とするコンピュータ可読記録媒体。前記接続は、リモートコントロール機能を有する前記ホストデバイスのシェルへの接続を含むことを特徴とする請求項7に記載のコンピュータ可読記録媒体。前記リモートデスクトッププロトコルセッションはTerminalServerセッションであることを特徴とする請求項7に記載のコンピュータ可読記録媒体。タイムアウト期間が完了するまで、前記第1のリモートデバイスが接続を確立するかどうか前記仮想チャンネルを監視することを特徴とする請求項7に記載のコンピュータ可読記録媒体。前記プログラムは、前記ホストデバイスに、前記タイムアウト期間内に前記第1のリモートデバイスから有効なメディア能力トークンを受信しない場合、前記第1のリモートデバイスによってメディア能力の一般セットがサポートされていると想定して、前記メディア能力の一般セットを使用可能にするデフォルトのメディアエクスペリエンスユーザインタフェースを、前記ユーザインタフェースチャンネルを介して前記第1のリモートデバイスに送信するステップを実行させることを特徴とする請求項10に記載のコンピュータ可読記録媒体。前記プログラムは、前記ホストデバイスに、前記リモートデスクトッププロトコルセッションを切断するステップと、使用したプロセスと仮想メモリ空間を、他のプロセスのために、物理ディスクにページアウトするステップとを実行させることを特徴とする請求項7に記載のコンピュータ可読記録媒体。例示のみの目的で、図1Cに、音楽MP3、WMVなど、ストリーミングオーディオ/ビデオ、写真JPEGS、GIFなど、動画ファイルMOV、MPEGなど、広告、放送メディアラジオ、TV、ケーブルなど、グラフィックデータなどの多種のメディアが存在することを示している。また、図1Cには、何らかの目的により何らかの方式でメディアをレンダリングするデバイスが各種存在することも示している。これらのデバイスには、これらに限定しないが、テレビジョン、ラジオ、チューナ、DVDプレーヤ、VCR、MP3プレーヤ、スマートディスプレイデバイス、ラップトップ、ゲーム機、リモート制御装置、携帯電話、PDA、デジタル画像フレームなどが含まれる。メディアタイプとデバイスを結ぶ例示的で非制限的なリンクは、これらのタイプの各デバイスが当該のメディアタイプをレンダリングする能力を備える場合も、備えない場合もあることを示している。したがって、リモートデバイスのメディアレンダリング機能は多種多様である。さらに、デバイスがある特定のフォーマットをレンダリングする能力をサポートする場合でも、ホストデバイスで提示されるユーザインタフェース機能と、リモートデバイスで提示されるユーザインタフェースの機能にはなお差がある。ホストデバイスからリモートデバイスへとユーザインタフェース機能を変換するためのユーザインタフェース抽象化層を備えることが望ましいと考えられる。例えば、MP3プレーヤは、ビデオを記憶またはレンダリングすることができる場合もできない場合もある。ラップトップ機は、他のデバイスに比べて大幅に優れたストレージ、処理能力、および解像度を有する可能性がある。万人向けのリモートデバイスは、特殊なタッチスクリーン機能を有する場合がある。したがって、ユーザは、選択されたリモートデバイスのメディア能力から見て合理的なカスタムフォーマットで、ユーザになじみのあるデスクトップメディアエクスペリエンスが自動的に調整されることで利益を得ると考えられる。現在のところ、開発者が特定のデバイスについてこの目標を達成するための独自のサーバソフトウェアと独自のクライアントソフトウェアをハードウェアに組み込まない限り、そのような能力は存在しない。したがって、リモートデバイスがホストデバイスに対して自身のメディアレンダリング機能を宣言するための機構またはフレームワークを有することが望ましいと考えられる。さらに、リモートデバイスが、リモートデバイスのメディアエクスペリエンスに関連するものとして自身のユーザインタフェース機能をホストデバイスに対して宣言するための機構またはフレームワークを備えることも望ましい。したがって、当技術分野には、リモートデバイスが、少なくとも1つのホストデバイスおよび1つまたは複数のリモートデバイスを含むコンピューティングシステム中のあるメディアに関連するものとして能力を宣言することができるリモートコンピューティング機構に対する多大な必要性が存在する。上記で明らかにした当技術の欠点を鑑みて、本発明は、ネットワークコンピューティング環境でメディアデバイス能力宣言機構を提供するためのシステムおよび方法を提供する。今日のオペレーティングシステムおよびアプリケーションの中には、リモート機能のセットを提供してリモートメディア消費デバイスのネットワーク化されたエコシステムを可能にするものがある。それらのデバイスは、リモートプロトコルおよび技術を介して、ホストに接続し、リモートされたメディアを表示する。この点で、本発明のデバイス能力判定機構は、リモートメディア消費デバイスが、ホストからそのリモートメディア消費デバイスにリモートすべきメディア能力のカスタムセットを指定することを可能にする。この機構は動的かつ拡張可能である。本発明のこの他の利点および特徴は下記で述べる。本発明によるメディア能力宣言システムおよび方法について、添付図面を参照してさらに説明する。概要消費者が自分のコンピュータと対話する方式の最近の改良例として、住居内のあらゆる場所で、各種のデバイス電子家庭リモートメディアデバイス、SmartDisplay、xBox、ポケットPC、携帯DVDデバイスなどに娯楽エクスペリエンスTV、音楽、ビデオ、写真、DVDなどを配信するネットワークデバイスからなる広範なエコシステムの導入がある。そのメディアエクスペリエンスがリモートされるセッションのクラスについて、ホストPCによって可能とされる、メディアエクスペリエンスの最適化のために、デバイスの能力に基づくセッションの能力が分からなければならない。今日、一般的なリモートメディアデバイス、スマートディスプレイ、一般的なTSセッションなどのデバイスの違いはよく理解されている。したがって、異なるクラスのセッションには異なるリモートメディアセッションが必要となる。いずれは、メディアはより多くの種類のデバイス例えばxBox、ポケットPC、携帯DVDプレーヤなどからアクセスされるようになると考えられる。下記でより詳細に述べるように、本発明のデバイス能力を判定する機構はこうした必要性を満たす。上で触れたように、Windows登録商標MediaCenterEditionMCEなど今日のオペレーティングシステムの一部は、豊富なリモート機能のセットを提供して、リモートメディア消費デバイスのエコシステムを可能にする。それらのデバイスは、MCEPCなどのホストに接続し、TerminalServiceまたは他のリモーティング技術を介してリモートされたメディアエクスペリエンスを表示する。そのようなエコシステムを強化するために、本発明の自動的なデバイス能力の宣言および判定の機構は、リモートデバイスが、カスタムのメディア能力のセットと、そのデバイスにリモートすべき対応するUIを指定することを可能にする。例示的なネットワーク化分散環境当業者は、本発明が、コンピュータネットワークの一部として配置するか、または分散コンピューティング環境内に配置することができる任意のコンピュータあるいは他のクライアントまたはサーバデバイスとの関係において、実施できることを認識できよう。この点で、本発明は、本発明によるリモートメディアエクスペリエンスとの関係で使用することが可能な、任意数のメモリまたは記憶装置と、任意数の記憶装置またはボリュームにわたって行われる任意数のアプリケーションおよびプロセスとを有するコンピュータシステムまたは環境に関連する。本発明は、リモートまたはローカルのストレージを有するネットワーク環境または分散コンピューティング環境に配置されたサーバコンピュータおよびクライアントコンピュータを有する環境に適用することができる。本発明は、リモートまたはローカルのサービスに関連する情報を生成、受信、および送信するためのプログラミング言語機能、解釈機能、および実行機能を有するスタンドアロンのコンピューティングデバイスにも適用することができる。デジタルメディアのためのネットワークソースがかつてなく急増していることから、本発明は特に、ネットワーク環境または分散コンピューティング環境で動作するコンピューティングデバイスに関連し、したがって、本発明によるメディア能力宣言技術は、そうした環境において非常に有効に適用することができる。分散コンピューティングは、コンピューティングデバイスおよびシステム間のやりとりによるコンピュータリソースとサービスの共有を提供する。そうしたリソースおよびサービスには、情報の交換、ファイルのキャッシュストレージおよびディスクストレージが含まれる。分散コンピューティングはネットワークの接続性を利用して、クライアントがその集約されたパワーとストレージを活用してエンタープライズ全体を利することを可能にする。この点で、各種のデバイスは、本発明のメディア能力判定プロセスに関与する可能性のあるアプリケーション、オブジェクト、またはリソースを有する可能性がある。図2Aに、例示的なネットワーク環境または分散コンピューティング環境の略図を示す。分散コンピューティング環境は、コンピューティングオブジェクト10a、10bなどと、コンピューティングオブジェクトまたはデバイス110a、110b、110cなどを備える。これらのオブジェクトは、プログラム、メソッド、データストア、プログラマブルロジックなどを備えることができる。オブジェクトは、PDA、オーディオ/ビデオデバイス、MP3プレーヤ、パーソナルコンピュータなどの同一または異なるデバイスの一部を備えることができる。各オブジェクトは、通信ネットワーク14により別のオブジェクトと通信することができる。このネットワークは、それ自体、図2Aのシステムにサービスを提供する他のコンピューティングオブジェクトおよびコンピューティングデバイスを備えることができ、またそれ自体で複数の相互接続されたネットワークを表すことができる。本発明の一態様によれば、各オブジェクト10a、10bなど、または110a、110b、110cなどは、API、他のオブジェクト、ソフトウェア、ファームウェアおよび/またはハードウェアなどのインタフェースを利用して、本発明によるメディア能力判定プロセスを要求または利用することができるアプリケーションを含むことができる。また、110cなどのオブジェクトは、別のコンピューティングデバイス10a、10bなど、または110a、110bなどでホストしてもよいことは理解できよう。したがって、図の物理的環境では接続されたデバイスをコンピュータと示すことができるが、そのような図示は例示的なものに過ぎず、物理的環境は、これに代えて、PDA、テレビジョン、MP3プレーヤなど、インタフェース、COMオブジェクトなどのソフトウェアオブジェクト、あるいはメディアエクスペリエンスとの関連で利用することが可能な任意のデバイスなどの各種のデジタルデバイスを備えるものとして図示または説明することができる。分散コンピューティング環境をサポートする各種のシステム、コンポーネント、およびネットワーク構成が存在する。例えば、有線または無線システム、ローカルネットワーク、または広域分散ネットワークにより、コンピューティングシステムを共に接続することができる。現在ネットワークの多くはインターネットに結合されており、インターネットは、広域に分散したコンピューティングのためのインフラストラクチャを提供し、多くの異なるネットワークを取り込む。そのインフラストラクチャをいずれも、本発明によるリモートメディアエクスペリエンスの提供に関連して行われる例示的通信に使用することができる。家庭ネットワーキング環境では、電力線、データ無線および有線両方、音声例えば電話、および娯楽メディアなど、それぞれが独自のプロトコルをサポートする少なくとも4つの異種のネットワークトランスポートメディアがある。電灯のスイッチや電気機器などの大半の家庭用制御デバイスは、接続に電力線を使用することができる。データサービスは、広帯域例えばDSLまたはケーブルモデムとして住居に入ることができ、住居内では無線HomeRFまたは802.11Bの接続性または有線例えばHomePNA、Cat5、Ethernet登録商標、あるいは電力線の接続性を使用してアクセスされることができる。音声トラフィックは、有線Cat3などまたは無線携帯電話として住居に入り、住居内ではCat3配線を用いて分配することができる。娯楽メディアまたは他のグラフィックデータは、衛星またはケーブルを通じて住居に入ることができ、住居内では通例同軸ケーブルを使用して分配される。IEEE1394およびDVIもメディアデバイスのクラスタ向けのデジタル相互接続である。これらのネットワーク環境およびプロトコル標準として台頭する可能性のあるその他のネットワーク環境すべてを相互接続してイントラネットなどのネットワークを形成し、そのネットワークをインターネットにより外界に接続することができる。要約すると、データの記憶と送信には各種の異種のソースが存在し、その結果、今後、コンピューティングデバイスは、本発明によるメディア能力宣言および判定機構を要求または利用するプログラムオブジェクトとの関連でアクセスまたは利用されるデータなどのデータを共有する方式を必要とするようになると予想される。インターネットとは、一般に、コンピュータネットワーキングの分野でよく知られるTCP/IPプロトコルスイートを利用するネットワークとゲートウェイの集合を言う。TCP/IPは、伝送制御プロトコル/インターネットプロトコルの頭字語である。インターネットは、ユーザがネットワークを通じて対話し、情報を共有することを可能にするネットワーキングプロトコルを実行するコンピュータによって相互接続された、地理的に分散したリモートコンピュータネットワークからなるシステムと説明することができる。そのように広域にわたって情報が共有されるため、インターネットなどのリモートネットワークは現在までのところ、概して、開発者が、特殊化された動作またはサービスを行うためのソフトウェアアプリケーションを実質的に制限なしに設計することができるオープンシステムに発展している。したがって、このネットワークインフラストラクチャにより、クライアント/サーバ、ピアツーピア、あるいはハイブリッドアーキテクチャといった多数のネットワークロポロジが可能になっている。クライアントとは、それが関連しない別のクラスまたはグループのサービスを使用するクラスまたはグループのメンバである。したがって、コンピューティングにおいて、クライアントは、別のプログラムによって提供されるサービスを要求するプロセス、すなわち大まかに言うと命令またはタスクのセットである。クライアントプロセスは、他のプログラムまたはサービス自体に関する機構の詳細を一切知る必要なしに、要求したサービスを利用する。クライアント/サーバアーキテクチャ、特にネットワークシステムでは、クライアントは通例、別のコンピュータ、例えばサーバによって提供される共有ネットワークリソースにアクセスするコンピュータである。図2Aの例では、コンピュータ110a、110bなどをクライアントと考え、コンピュータ10a、10bなどのサーバと考えることができ、サーバ10a、10bなどはデータを保持し、そのデータがクライアントコントローラ110a、110bなどで複製されるが、状況に応じてどのコンピュータもクライアント、サーバ、またはその両方とみなすことができる。例えば、コンピュータ110aをMCEホストPCとし、コンピューティングデバイス10a、10bなどをリモートメディア消費デバイスとすることができる。これらのコンピューティングデバイスはいずれも、本発明のメディア能力判定機構に関与する可能性のあるデータを処理するか、またはサービスまたはタスクを要求する可能性がある。サーバとは、一般に、インターネットなどのリモートまたはローカルネットワークを通じてアクセスすることができるリモートコンピュータシステムである。第1のコンピュータシステムでクライアントプロセスがアクティブであり、第2のコンピュータシステムでサーバプロセスがアクティブであり、通信媒体を通じて相互と通信し、それにより分散した機能を提供し、複数のクライアントがサーバの情報収集能力を利用できるようにすることが可能である。本発明のメディア能力判定技術との関連で利用されるソフトウェアオブジェクトは、複数のコンピューティングデバイスまたはオブジェクトに分散することが可能である。クライアントとサーバは、プロトコル層によって提供される機能を利用して相互と通信する。例えば、ハイパーテキスト転送プロトコルHTTPは、ワールドワイドウェブWWWあるいはウェブとの関連で使用される一般的なプロトコルである。例えば、RDPは、リモートコンピューティングに利用される一般的なプロトコルである。通例、インターネットプロトコルIPアドレスなどのコンピュータネットワークアドレスや、ユニバーサルリソースロケータURLなどの他の参照を使用して、サーバまたはクライアントコンピュータを相互に識別することができる。ネットワークアドレスは、URLアドレスと称することができる。通信は、通信媒体を通じて提供することができ、例えば、大容量通信を行うためにTCP/IP接続を介してクライアントとサーバを相互と結合することができる。上に述べたように、図2Aには、サーバがネットワーク/バスを介してクライアントコンピュータと通信する例示的なネットワーク環境あるいは分散環境を示し、この環境で本発明を用いることができる。より詳細には、本発明により、複数のサーバ10a、10bなどが、LAN、WAN、イントラネット、インターネットなどの通信ネットワーク/バス14を介して、携帯型コンピュータ、ハンドヘルドコンピュータ、シンクライアント、ネットワーク機器、またはVCR、TV、オーブン、電灯、ヒータなどの他のデバイスといった複数のクライアントあるいはリモートコンピューティングデバイス110a、110b、110c、110d、110eなどと相互に接続される。したがって、本発明は、ストレージ、ユーザインタフェース、レンダリングなどに関して、独自のメディア能力を有する任意のコンピューティングデバイスに適用できることが企図される。通信ネットワーク/バス14がインターネットであるネットワーク環境では、サーバ10a、10bなどは、クライアント110a、110b、110c、110d、110eなどがHTTPなどの任意数の知られるプロトコルのいずれかを介して通信するウェブサーバとすることができる。分散コンピューティング環境の特徴であるように、サーバ10a、10bなどは、クライアント110a、110b、110c、110d、110eなどとして機能することもできる。通信は、適宜有線でも無線でもよい。クライアントデバイス110a、110b、110c、110d、110eなどは、通信ネットワーク/バス14を介して通信してもしなくともよく、デバイスに関連付けられた独立した通信を有することができる。例えばTVまたはVCRの場合は、その制御にネットワーク化された面があってもなくてもよい。各クライアントコンピュータ110a、110b、110c、110d、110eなど、およびサーバコンピュータ10a、10bなどは、各種のアプリケーションプログラムモジュールまたはオブジェクト135と、様々なタイプの記憶要素またはオブジェクトへの接続またはアクセスとを備えることができ、記憶要素あるいはオブジェクトには、ファイルまたはデータストリームを記憶するか、ファイルまたはデータストリームの一部をダウンロード、送信、または移動することができる。コンピュータ10a、10b、110a、110bなどの1つまたは複数は、本発明により処理されるデータを記憶するデータベースまたはメモリ20などのデータベース20または他の記憶要素の維持と更新を担当することができる。したがって、本発明は、コンピュータネットワーク/バス14にアクセスし、対話することが可能なクライアントコンピュータ110a、110bなどと、クライアントコンピュータ110a、110bなどおよびデータベース20などの他の同様のデバイスと対話することが可能なサーバコンピュータ10a、10bなどとを有するコンピュータネットワーク環境で利用することができる。例示的コンピューティングデバイス図2Bおよび以下の説明は、本発明をそれとの関連で実施することができる適切なコンピューティング環境についての簡単で一般的な説明を提供する。ただし、ハンドヘルドデバイス、携帯型または他のコンピューティングデバイス、およびあらゆる種類のコンピューティングオブジェクトが本発明との関連で、すなわちそのメディアをコンピューティング環境で体験することができる場所であればあらゆる場所で使用されると企図することは理解されたい。下記では汎用コンピュータを例示的ホストとして説明するが、これは一例に過ぎず、本発明は、ネットワーク/バスの相互動作性と対話を有するシンクライアントを用いて実施することもできる。したがって、本発明は、関連するクライアントリソースが非常に少ないか、または最小限である、ネットワーク化されたホストされるサービスからなる環境、例えば電気機器中に配置されたオブジェクトなど、クライアントデバイスが単にネットワーク/バスとのインタフェースとして機能するネットワーク環境で実施することができる。基本的に、データが記憶される場所、またはデータがそこから取得されるか、別のコンピュータに送信される場所であれば、本発明によるカスタムメディアエクスペリエンスの配信動作のために望ましい、または適した環境となる。これは必須ではないが、本発明は、デバイスまたはオブジェクト向けのサービスの開発者が使用するようにオペレーティングシステムを介して実施するか、かつ/または、本発明による能力宣言の受信またはカスタムメディアエクスペリエンスの配信との関係で動作するアプリケーションソフトウェアに含めることができる。ソフトウェアについては、クライアントワークステーション、サーバ、または他のデバイスなどの1つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令との一般的関係で説明することができる。一般に、プログラムモジュールには、特定のタスクを行うか、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通例、プログラムモジュールの機能は、各種実施形態で述べるように組み合わせることも分散することもできる。さらに、当業者は、本発明は、他のコンピュータシステム構成およびプロトコルを用いて実施することが可能であることを認識されよう。本発明に使用するのに適する可能性がある他のよく知られるコンピューティングシステム、環境、および/または構成には、これらに限定しないが、パーソナルコンピュータPC、現金自動預け払い機、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサを利用したシステム、プログラム可能な家庭電化製品、ネットワークPC、電気機器、電灯、環境制御要素、ミニコンピュータ、メインフレームコンピュータなどが含まれる。本発明は、通信ネットワーク/バスまたは他のデータ送信媒体を通じてリンクされた遠隔の処理デバイスによってタスクが行われる分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルおよびリモート両方のコンピュータ記憶媒体に置くことができ、クライアントノードがサーバノードとして振舞うことができる。上に述べたように、図2Bに本発明を実施することが可能な適切なコンピューティングシステム環境100の一例を示すが、先に明確にしたように、コンピューティングシステム環境100は適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能性の範囲について制限を示唆するものではない。また、コンピューティング環境100は、例示的動作環境100に図示する構成要素のいずれか1つまたは組み合わせに関連する依存性または必要性を有するものとも解釈すべきでない。図2Bを参照すると、本発明を実施する例示的システムは、コンピュータ110の形態の汎用コンピューティングデバイスを含む。コンピュータ110の構成要素には、これらに限定しないが、処理装置120、システムメモリ130、およびシステムメモリを含む各種のシステム構成要素を処理装置120に結合するシステムバス121が含まれる。システムバス121は、各種のバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含む数種のバス構造のいずれでもよい。そのようなアーキテクチャの例には、これらに限定しないが、ISAIndustryStandardArchitectureバス、MCAMicroChannelArchitectureバス、EISAEnhancedISAバス、VESAVideoElectronicsStandardsAssociationバス、およびPCIPeripheralComponentInterconnectsバスメザニンバスとも称されるが含まれる。コンピュータ110は通例各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110がアクセスできる任意の利用可能媒体でよく、揮発性および不揮発性の媒体、取り外し可能および取り外し不能媒体を含む。これに限定しないが、例としてコンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方式または技術として実装された揮発性および不揮発性の媒体、取り外し可能および取り外し不能の媒体を含む。コンピュータ記憶媒体には、これらに限定しないが、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD-ROM、デジタル多用途ディスクDVD、または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは、所望の情報の記憶に用いることができ、コンピュータ110によるアクセスが可能な任意の他の媒体が含まれる。通信媒体は、通例、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の搬送機構などの変調データ信号として具現化し、任意の情報伝達媒体を含む。用語変調データ信号とは、信号中に情報を符号化するような方式でその特性の1つまたは複数を設定または変化させた信号を意味する。例として、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、RF、赤外線、および他の無線媒体などの無線媒体が含まれるが、これらに限定しない。上記の媒体のいずれの組み合わせもコンピュータ可読媒体の範囲に含めるべきである。システムメモリ130は、読み取り専用メモリROM131およびランダムアクセスメモリRAM132など、揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ110内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム133BIOSが、通例、ROM131に記憶される。RAM132は通例、処理装置120から即座にアクセス可能な、かつ/または処理装置120により現在操作中のデータおよび/またはプログラムモジュールを保持する。例として、これに限定しないが、図2Bにはオペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示す。コンピュータ110は、この他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。単なる例として、図2Bには、取り外し不能、不揮発性の磁気媒体の読み書きを行うハードディスクドライブ141、取り外し可能、不揮発性の磁気ディスク152の読み書きを行う磁気ディスクドライブ151、およびCD-ROMや他の光学媒体などの取り外し可能、不揮発性の光ディスク156の読み書きを行う光ディスクドライブ155を示す。例示的動作環境で使用できるこの他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶媒体には、これらに限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。ハードディスクドライブ141は通例、インタフェース140などの取り外し不能メモリインタフェースを通じてシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は通例、インタフェース150など取り外し可能メモリインタフェースによってシステムバス121に接続される。上記で説明し、図2Bに示すドライブとそれに関連付けられたコンピュータ記憶媒体は、コンピュータ110のコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶を提供する。例えば図2Bでは、ハードディスクドライブ141にオペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147が記憶されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じものでも、異なるものでもよいことに留意されたい。ここではオペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147には、それらが少なくとも異なるコピーであることを表すために異なる参照符号を付している。ユーザは、キーボード162と、一般にはマウス、トラックボール、タッチパッドと称されるポインティングデバイス161などの入力装置を通じてコンピュータ110にコマンドと情報を入力することができる。他の入力装置図示せずとしては、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが可能である。これらおよび他の入力装置は、システムバス121に結合されたユーザ入力インタフェース160を通じて処理装置120に接続することが多いが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルバスUSBなど他のインタフェースおよびバス構造によって接続することも可能である。ノースブリッジなどのグラフィックインタフェース182もシステムバス121に接続することができる。ノースブリッジは、CPUあるいはホスト処理装置120と通信し、アクセラレーテッドグラフィックポートAGP通信を担当するチップセットである。1つまたは複数のグラフィック処理装置GPU184が、グラフィックインタフェース182と通信することができる。この点で、GPU184は一般にレジスタストレージなどのオンチップメモリストレージを含み、GPU184はビデオメモリ186と通信し、本発明のアプリケーション変数が影響を与える可能性がある。しかしGPU184はコプロセッサの一例に過ぎず、したがって、各種のコプロセッシング装置をコンピュータ110に含めることができ、そのようなコプロセッシング装置としては、ピクセルシェーダや頂点シェーダなどの各種の手続き型シェーダが含まれる。モニタ191または他のタイプの表示装置もビデオインタフェース190などのインタフェースを介してシステムバス121に接続され、インタフェースは、ビデオメモリ186と通信する。モニタ191に加えて、コンピュータは、スピーカ197やプリンタ196などの他の周辺出力装置も含むことができ、それらの出力装置は、出力周辺インタフェース195を通じて接続することができる。コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータとの論理接続を使用するネットワーク環境または分散環境で動作することができる。リモートコンピュータ180はパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、あるいはその他の一般的なネットワークノードでよく、図2Bにはメモリ記憶装置181しか示していないが、通例はコンピュータ110との関連で上記で挙げた要素の多くまたはすべてを含む。図2Bに示す論理接続は、ローカルエリアネットワークLAN171とワイドエリアネットワークWAN173を含むが、他のネットワーク/バスを含むことも可能である。このようなネットワーキング環境は、家庭、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットに一般的に見られる。LANネットワーキング環境で使用される場合、コンピュータ110はネットワークインタフェースまたはアダプタ170を通じてLAN171に接続される。WANネットワーキング環境で使用される場合、コンピュータ110は通例、インターネットなどのWAN173を通じて通信を確立するためのモデム172またはその他の手段を含む。モデム172は内蔵型でも外付け型でもよく、ユーザ入力インタフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク環境では、コンピュータ110との関連で図示したプログラムモジュール、またはその一部は遠隔のメモリ記憶装置に格納することができる。これに限定しないが、例として図2Bではリモートアプリケーションプログラム185がメモリ装置181に存在する。図のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用できることは理解されよう。例示的リモートデバイス図2Cおよび以下の説明は、本発明によるリモートメディアデバイスに適したコンピューティング環境についての簡単で一般的な説明を提供する。ただし、ハンドヘルドデバイス、携帯型およびその他のコンピューティングデバイス、およびあらゆる種類のコンピューティングオブジェクトを本発明との関連で、すなわちあるデバイスがそのデバイスへのカスタムリモートメディアエクスペリエンスの配信を要求する可能性のあるあらゆる場所で使用されることを企図することを理解されたい。メディア能力の点から見たこれらのデバイスの差が、多大な有利性を有する本発明を利用して、様々なリモートデバイスに合わせてリモートメディアエクスペリエンスを調整する。したがって、下記の汎用リモートコンピュータは一例に過ぎず、本発明は、ネットワーク/バスの相互動作性および対話を有する任意のクライアントを用いて実施することができる。したがって、本発明は、関与するクライアントリソースが非常に少ないか、または最小限である、ネットワーク化されたホストされるサービスからなる環境、例えば電気機器中に配置されたオブジェクトなどクライアントデバイスが単にネットワーク/バスとのインタフェースとして機能するネットワーク環境で実施することができる。基本的に、データが記憶される場所、またはデータがそこから取得されるか、別のコンピュータに送信される場所であれば、本発明によるリモートメディアエクスペリエンス技術の動作のために望ましいか、あるいは適する環境となる。これは必須ではないが、本発明は、デバイスまたはオブジェクトのサービスの開発者が使用するようにオペレーティングシステムを介して一部を実施するか、かつ/または、本発明の構成要素との関係で動作するアプリケーションソフトウェア中に含めることができる。ソフトウェアについては、クライアントワークステーション、サーバ、または他のデバイスなどの1つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令との一般的関係で説明することができる。当業者には認識されるように、本発明は、他のコンピュータシステム構成およびプロトコルを用いて実施することができる。したがって、図2Cに本発明を実施することが可能な適切なコンピューティングシステム環境100aの一例を示すが、先に明確にしたように、コンピューティングシステム環境100aは、リモートデバイスに適するコンピューティング環境の一例に過ぎず、本発明の使用または機能性の範囲について制限を示唆するものではない。また、コンピューティング環境100aは、例示的コンピューティング環境100aに図示する構成要素のいずれか1つまたは組み合わせに関連する依存性または必要性を有するものとも解釈すべきでない。図2Cを参照すると、本発明を実施する例示的なリモートデバイスは、コンピュータ110aの形態の汎用コンピューティングデバイスを含む。コンピュータ110aの構成要素には、これらに限定しないが、処理装置120a、システムメモリ130a、およびシステムメモリを含む各種のシステム構成要素を処理装置120aに結合するシステムバス121aが含まれる。システムバス121aは、各種のバスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含む数種のバス構造のいずれでもよい。コンピュータ110aは通例各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110aがアクセスできる任意の利用可能媒体でよい。これに限定しないが、例としてコンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方式または技術として実装された揮発性および不揮発性の媒体、取り外し可能および取り外し不能の媒体を含む。コンピュータ記憶媒体には、これらに限定しないが、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリ技術、CD-ROM、デジタル多用途ディスクDVD、または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは、所望の情報の記憶に用いることができ、コンピュータ110aによるアクセスが可能な任意の他の媒体が含まれる。通信媒体は、通例、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の搬送機構などの変調データ信号として具現化し、任意の情報伝達媒体を含む。用語変調データ信号とは、信号中に情報を符号化するような方式でその特性の1つまたは複数を設定または変化させた信号を意味する。例として、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、RF、赤外線、および他の無線媒体などの無線媒体が含まれるが、これらに限定しない。上記の媒体のいずれの組み合わせもコンピュータ可読媒体の範囲に含めるべきである。システムメモリ130aは、読み取り専用メモリROMおよび/またはランダムアクセスメモリRAMなど、揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含むことができる。起動時などにコンピュータ110a内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システムBIOSが、通例、メモリ130aに記憶される。メモリ130aは通例、処理装置120aから即座にアクセス可能な、かつ/または処理装置120aにより現在操作中のデータおよび/またはプログラムモジュールを保持する。例として、これらに限定しないが、メモリ130aは、オペレーティングシステム、アプリケーションプログラム、他のプログラムモジュール、およびプログラムデータも含むことができる。コンピュータ110aは、この他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。例えば、コンピュータ110aは、取り外し不能、不揮発性の磁気媒体の読み書きを行うハードディスクドライブ、取り外し可能、不揮発性の磁気ディスクの読み書きを行う磁気ディスクドライブ、およびCD-ROMや他の光学媒体などの取り外し可能、不揮発性の光ディスクの読み書きを行う光ディスクドライブを含むことができる。例示的動作環境で使用できるこの他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶媒体には、これらに限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが挙げられる。ハードディスクドライブは通例、インタフェースなどの取り外し不能メモリインタフェースを通じてシステムバス121aに接続され、磁気ディスクドライブまたは光ディスクドライブは通例、インタフェースのなど取り外し可能メモリインタフェースによってシステムバス121aに接続される。ユーザは、キーボードと、一般にはマウス、トラックボール、タッチパッドと称されるポインティングデバイスなどの入力装置を通じてコンピュータ110aにコマンドと情報を入力することができる。他の入力装置図示せずとしては、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが可能である。これらおよび他の入力装置は、システムバス121aに結合されたユーザ入力140aおよびそれに関連付けられたインタフェースを通じて処理装置120aに接続することが多いが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルバスUSBなど他のインタフェースおよびバス構造によって接続することも可能である。グラフィックサブシステムもシステムバス121aに接続することができる。モニタまたは他のタイプの表示装置も出力インタフェース150aなどのインタフェースを介してシステムバス121aに接続され、インタフェースは、ビデオメモリと通信する。モニタに加えて、コンピュータは、スピーカやプリンタなどの他の周辺出力装置も含むことができ、それらの出力装置は、出力インタフェース150aを通じて接続することができる。コンピュータ110aは、リモートコンピュータ170aなど1つまたは複数のリモートコンピュータとの論理接続を使用するネットワーク環境または分散環境で動作することができ、リモートコンピュータ170aは、デバイス110aとは異なるメディア能力を有することができる。リモートコンピュータ170aはパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、あるいはその他の一般的なネットワークノード、あるいは任意の他のリモートメディア消費または送信デバイスでよく、コンピュータ110aとの関連で上記で挙げた要素の多くまたはすべてを含むことができる。図2Cに示す論理接続は、ローカルエリアネットワークLANまたはワイドエリアネットワークWANなどのネットワーク171aを含むが、他のネットワーク/バスを含むことも可能である。このようなネットワーキング環境は、家庭、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットに一般的に見られる。LANネットワーキング環境で使用される場合、コンピュータ110aはネットワークインタフェースまたはアダプタを通じてLAN171aに接続される。WANネットワーキング環境で使用される場合、コンピュータ110aは通例、インターネットなどのWANを通じて通信を確立するためのモデムまたはその他の手段を含む。モデムは内蔵型でも外付け型でもよく、入力140aのユーザ入力インタフェースまたは他の適切な機構を介してシステムバス121aに接続することができる。ネットワーク環境では、コンピュータ110aとの関連で図示したプログラムモジュール、またはその一部を遠隔のメモリ記憶装置に格納することができる。図示し、ここで説明するネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用できることは理解されよう。例示的な分散コンピューティングフレームワークまたはアーキテクチャパーソナルコンピューティングとインターネットの統合を踏まえて各種の分散コンピューティングフレームワークが過去から現在にわたって開発されている。個人とビジネスユーザにはともに、アプリケーションとコンピューティングデバイス向けのシームレスに相互が動作可能でウェブ対応型のインタフェースが提供されており、コンピューティング活動は次第にウェブブラウザ指向またはネットワーク指向になりつつある。例えば、MICROSOFT登録商標のマネージコードプラットフォーム、すなわち.NETは、サーバと、ウェブベースのデータストレージやダウンロード可能なデバイスソフトウェアなどのビルディングブロックサービスとを含む。大まかに述べると、.NETプラットフォームは以下を提供する:1あらゆる範囲のコンピューティングデバイスを連携させ、それらのデバイスすべてでユーザ情報を自動的に更新および同期する能力、2HTMLではなくXMLをより多く使用することで可能になるウェブページの対話能力の増大、3例えば電子メールなど各種のアプリケーションやOffice.Netなどのソフトウェアを管理するための製品およびサービスへのカスタマイズされたアクセスと、中央の開始点からユーザへのそれら製品およびサービスの配信を特色とするオンラインサービス、4データストレージの集中化。それにより情報へのアクセスと、ユーザ間およびデバイス間の情報同期の効率と容易さが高まる。5電子メール、ファックス、電話など各種の通信媒体を統合する能力、6開発者に対しては再使用可能なモジュールを作成し、それにより生産性を高め、プログラミングエラー数を低減する能力、および7その他多くのクロスプラットフォームおよび言語の統合機能。本発明の一部の例示的実施形態は、コンピューティングデバイスに存在するソフトウェアとの関係で説明するが、本発明の1つまたは複数の部分は、オペレーティングシステム、アプリケーションプログラミングインタフェースAPIまたは仲介middlemanオブジェクト、コントロールオブジェクト、ハードウェア、ファームウェア、中間言語命令、またはオブジェクトなどを介して実施することもでき、本発明の方法は、.NETコードなどのマネージコードによって可能になるすべての言語およびサービスに含める、それらでサポートされる、またはそれらを介してアクセスすることができ、また他の分散コンピューティングフレームワークでも同様である。リモートデスクトッププロトコルおよびターミナルサーバセッションの概要MicrosoftRemoteDesktopProtocolRDPは、ホストからリモートメディア消費デバイスにメディアエクスペリエンスを移植するために使用できるプロトコルの一例である。RDPは、サーバで実行されるWindows登録商標ベースのアプリケーションについて、ネットワーク接続を通じたリモートからの表示と入力能力を提供する。RDPは、異なるタイプのネットワークトポロジと複数のLANプロトコルをサポートするように設計されている。サーバ側では、RDPは、当該プロトコルを使用してレンダリング情報をネットワークパケットとして構築し、ネットワークを通じてそのパケットをクライアントに送信することにより、自身のビデオドライバを使用してディスプレイ出力をレンダリングする。クライアント側では、RDPは、レンダリングデータを受信し、パケットを解釈して、対応するグラフィックデバイスインタフェースAPIの呼び出しにする。入力の経路については、クライアントのマウスおよびキーボードイベントがクライアントからサーバにリダイレクトされる。サーバ側では、RDPは、自身の仮想キーボードドライバおよびマウスドライバを使用してキーボードおよびマウスイベントを受け取る。非制限的な機能の点から見ると、RDPは、暗号化、帯域幅低減機能、ローミング接続解除、クリップボードマッピング、プリントのリダイレクト、仮想チャンネル、リモートコントロール、およびネットワークの負荷分散を含む。TerminalServerは、Windows登録商標NTServerなどのサーバの拡張として例示的なリモートコンピューティング環境を提供する。シンクライアントだけで、ユーザは、完全にサーバから離れてサーバのデスクトップオペレーティングシステムとアプリケーションを体験することができる。TerminalServerを用いると、ユーザには、以下のタイプのデスクトップからWindows登録商標ベースのアプリケーションへのアクセスが提供される。Aサードパーティのハードウェアベンダから販売される、一般にWindows登録商標ベース端末と称される低コストのハードウェア、Bローカルのデスクトップ環境でTerminalServerクライアントをウィンドウとして実行することによる、Windows登録商標95やMicrosoftWindows登録商標NTWorkstationなどのWindows登録商標デスクトップオペレーティングシステム、および、CXベース端末、UNIX登録商標ベースのデスクトップ、AppleMacintosh、MS-DOS、およびその他のネットワークコンピュータアドオンソフトウェアを介する。TerminalServerは、TerminalServerマルチユーザコア、RemoteDesktopProtocolRDP、およびシンクライアントソフトウェアの3つの主要コンポーネントを備える。TerminalServerは、他のデバイスでの複数の同時のクライアントセッションをホストする能力を提供するマルチユーザサーバコアである。TerminalServerは、各種のWindows登録商標ベースおよび非Windows登録商標ベースのハードウェアで実行される互換性のあるマルチユーザクライアントデスクトップを直接ホストすることができる。標準的なWindows登録商標ベースのアプリケーションは、TerminalServerで実行するために変更が必要でなく、すべての標準的なWindows登録商標NTベースの管理インフラストラクチャおよび技術を使用してクライアントデスクトップを管理することができる。このように、企業は、Windows登録商標環境によって提供される豊富なアプリケーションとツールの選択肢を利用することができる。RDPは、シンクライアントがネットワークを通じてTerminalServerと通信することを可能にするTerminalServerのプロトコルである。このプロトコルは、国際的な標準マルチチャネル会議プロトコルである国際電気通信連合ITUT.120プロトコルに基づく。RDPは、高帯域幅のエンタープライズ環境向けに適合されており、また暗号化されたセッションもサポートする。シンクライアントコンポーネントは、Windows登録商標ベースの端末デバイスとパーソナルコンピュータを含む一連のデスクトップハードウェアでWindows登録商標ユーザインタフェースを提示または表示するソフトウェアである。TerminalServerのObjectManagerは、異なるセッションのアプリケーションとシステムプログラムが衝突しないようにする。あるセッションで作成されるすべてのオブジェクト名には、そのオブジェクトを作成した個々のセッションに関連付けられた一意の識別子番号セッションIDが付加される。TerminalServerサービスは完全にプロトコルに依存するので、RDP、またはCitrix社のICAなどのサードパーティのアドオンプロトコルを使用して機能することができる。RDPは、サーバからのシリアルのデバイス通信および提示データと、暗号化されたクライアントのマウスデータおよびキーボードデータとを搬送するための個別の仮想チャネルを可能にするマルチチャネル対応プロトコルである。仮想チャネルは、TerminalServiceアプリケーションに機能の強化を付加するために使用できるソフトウェア拡張である。機能の拡張例としては、特殊なタイプのハードウェア、オーディオのサポート、またはTerminalServiceRDPによって提供されるコア機能への他の追加、が挙げられる。RDPは、複数の仮想チャネルの多重化された管理を提供する。仮想チャネルアプリケーションは、クライアントサイドコンポーネントとサーバサイドコンポーネントの2部分を有する。サーバサイドコンポーネントは、TerminalServerで実行される実行可能プログラムである。クライアントサイドコンポーネントは、TerminalServiceクライアントプログラムが実行される時にクライアントコンピュータのメモリにロードされるDLLである。仮想チャネルは、RDPプロトコルに依存せずにTerminalServiceクライアントに機能強化を加えることができる。仮想チャネルのサポートにより、クライアントまたはサーバソフトウェア、あるいはRDPプロトコルを更新する必要なしに新しい機能を追加することができる。この他の数個の機能もT.120標準の定義の一部であり、例えば、アプリケーションからのデータをリアルタイムで複数の関係者に配信することが可能なマルチポイントデータ配信が挙げられる。マルチキャスト対応の配信は、信頼性のあるデータ送信の配信サービスを可能にする。これは、顧客に対するパフォーマンスを高め、同時にネットワークインフラストラクチャにかかる負荷を軽減する。RDPは、そこからより多くの能力を構築するための拡張可能な基盤を提供するので、接続性の目的に有益である。その理由は、一部には、RDPがデータ送信のための最高64,000個の別個のチャネルを提供し、またマルチポイント送信を提供するからである。RDPは、ISDN、POTS、およびIPX、Netbios、TCP/IPといった多くのLANプロトコルなどの多種のネットワークトポロジをサポートするように設計されている。RDPスタックを通じたデータの送受信に関連する動作は、基本的には、今日の一般的なLANネットワーキングのための7層のOSIオープンシステム相互接続モデル標準と同じである。送信されるアプリケーションまたはサービスからのデータは、プロトコルスタックの下部へと渡されて行き、区分され、あるチャネルに誘導され、暗号化され、ラッピングされ、フレーム化され、ネットワークプロトコルにパッケージ化され、最終的にアドレス指定され、線を通じてクライアントに送信される。戻りデータは送信時と逆方向で同様に移動し、パケットからそのアドレスが除去され、ラッピングが解除され、解読される等され、最終的にはデータが使用のためにアプリケーションに提示される。プロトコルスタック変更の一部は4番目の層と7番目の層の間で行われ、ここでデータが暗号化され、ラッピングされ、フレーム化され、チャネルに誘導され、優先順位が付けられる。RDPでは、プロトコルスタックを扱う問題がアプリケーション開発者から取り除かれるので有利である。アプリケーション開発者は単にアプリケーションを書き、TerminalServerとそのクライアント接続によって実施されるRDPスタックが残りの部分を処理する。開始時には、TerminalServerがブートし、コアオペレーティングシステムをロードし、TerminalServerサービスが開始され、セッション接続の待機を開始する。各接続には、TerminalServerに対して個々のセッションを表す一意のセッション識別子あるいはセッションIDが与えられ、セッション内で作成される各プロセスには、そのプロセスの名前空間を他のセッションの名前空間から区別する、関連付けられたセッションIDがタグ付けされる。ユーザがTerminalService対応のコンピュータにログオンすると、そのユーザについてのセッションが開始され、一意のセッションIDで識別される。TerminalServiceクライアントへの各ログオンは個別のセッションIDを受け取るので、ユーザエクスペリエンスは、例えばオフィスのコンピュータと自宅のコンピュータなど複数のコンピュータに同時にログオンする場合と同様になる。コンソールTerminalServerのキーボード、マウス、およびビデオセッションが最初にロードされ、特殊ケースのクライアント接続として扱われ、セッションID0が割り当てられる。コンソールセッションは、通常のシステムセッションとして開始し、設定されたディスプレイドライバ、マウスドライバ、およびキーボードドライバがロードされる。コンソールセッションを作成すると、TerminalServerサービスは次いでSessionManagerを呼び出して、クライアント接続を待つデフォルトでは2つのアイドルクライアントセッションを作成する。アイドルセッションを作成するために、SessionManagerは、クライアントサーバランタイムサブシステムプロセスを実行し、そのプロセスに新しいセッションIDが割り当てられる。コンソールセッションと異なり、クライアントセッションは、ディスプレイ、キーボード、およびマウスに個別のドライバをロードするように構成される。この新しいディスプレイドライバは、RemoteDesktopProtocolRDP表示装置ドライバであり、マウスドライバおよびキーボードドライバは、RDPドライバに代えられる。これらのドライバは、遠隔からRDPクライアントセッションを利用可能かつ対話式にすることを可能にする。最後に、TerminalServerは、RDPプロトコルに対応する接続リスナスレッドも呼び出し、このスレッドは、TCPポートでRDPクライアント接続をリッスンする。異なるセッションIDを有するプロセスは、別のセッションのデータにアクセスできないようにされる。例示的な実施では、クライアントは、TCPポートを通じてTerminalServerとの接続を開始する。TerminalServerのRDPリスナスレッドは、セッション要求を検出し、新しいRDPスタックインスタンスを作成して新しいセッション要求に対応する。リスナスレッドは、着信するセッションを新しいRDPスタックインスタンスに渡し、さらなる接続の試みを求めてTCPポートでのリッスンを続ける。各RDPスタックは、クライアントセッションが接続されてセッション設定の詳細のネゴシエーションを処理すると作成される。ユーザのログオン後、単一アプリケーションモードの場合は、デスクトップ、すなわちアプリケーションがユーザに表示される。ユーザが実行するアプリケーションを選択すると、マウスコマンドがTerminalServerに渡され、TerminalServerは選択されたアプリケーションを新しい仮想メモリ空間内に起動する。ユーザがセッションの切断を決定した場合は、プロセスとすべての仮想メモリ空間がそのまま残り、他のプロセスに物理メモリが必要とされる場合は物理ディスクにページアウトpageoffされる。RDPの他の利点は、ユーザがセッションに何を要求するかに応じてセッション画面の解像度を変えられる点である。例えば、ユーザがそれまで800x600の解像度でTerminalServerセッションに接続しており、そのセッションを切断し、640x480の解像度しかサポートしない別のコンピュータに移動し、既存のセッションに再接続した場合、デスクトップは、その新しい解像度をサポートするように再描画される。ログオフは、通例非常に簡単に実装することができる。ユーザがセッションからログオフすると、そのセッションIDに関連付けられたすべてのプロセスが終了され、そのセッションに割り振られていたメモリが解放される。リモートデバイスのメディア能力の宣言および判定先に述べたように、例えばWindows登録商標MediaCenterEditionMCEなど今日のオペレーティングシステムの一部は、豊富なリモート機能のセットを提供してリモートメディア消費デバイスのエコシステムを可能にする。これらのデバイスは、MCEPCなどのホストに接続し、TerminalServiceおよびRDP、または他のリモーティング技術を介してリモートされたエクスペリエンスを表示する。したがって、本発明のデバイス能力判定機構は、リモートデバイスが、そのデバイスにリモートすべきメディア能力のカスタムセットを指定できるようにする。先に述べたように、そのメディアエクスペリエンスがリモートされるセッションのクラスについてホストPCでのメディタエクスペリエンスを最適化するために、本発明によりデバイスに基づくセッションの能力がリモートデバイスによって宣言される。したがって、異なるクラスのセッションには異なるメディアエクスペリエンスが提供される。本発明によるデバイス能力を宣言し、判定する機構は、リモートデバイスに合わせて適切にメディアエクスペリエンスを設定することを可能にする。図3Aおよび3Bに、それぞれ本発明の各種実施形態の例示的なブロック図と流れ図を示す。図3Aは、リモートメディアデバイス310が、ホストPC300によって理解されるフレームワークに従って自身のメディア能力を宣言することを示している。ホストPC300は、フレームワークで指示された規則により能力の宣言を解釈すると、カスタムメディアエクスペリエンスをリモートデバイスに配信することができる。図3Bは、ホストPC300とリモートメディアデバイス310間で行われるやり取りの例示的手順を表す。320で、ホスト300とデバイス310の間で使用されるRDPなどのプロトコルに従ってリモートコンピューティングセッションが作成される。330で、デバイス310が、本発明の機構を介して、そのデバイスが有するメディア機能のセットを宣言する。340でホストが宣言を受け取り、350で、ホストはその宣言を変換して、ホスト300により理解されてセッション中にリモートデバイス310へのメディアエクスペリエンスの配信に適用される調整されたメディア機能のセットとする。図4の流れ図に示す例示的実施形態では、能力判定機構は次のように動作する。400でRDPセッションが初期化され、410でホストPCが仮想チャネルを開き、420で例えば60秒間のタイムアウト期間が完了するまでそのチャネルを監視する。リモートクライアントが430でその仮想チャネルを介して接続を確立し、440でそのデバイスの能力ストリングを渡すと、450で適切な機能が使用可能にされてメディアセンターUIがリモートデバイスに提示される。タイムアウト期間内に有効な能力ストリングが転送されないと460で判定される場合は、470で一般的なデバイス能力のセットが想定される。例示的で非制限的なデフォルトのセットを下の表1に定義する。一実施形態では、能力ストリングは、RDPによって定義される仮想チャネルを介してホストPCに渡される。クライアントの能力ストリングの作成を容易にするために、別の実施形態で、本発明は、図5に例示的UIとともに示すクライアント能力トークンビルダCCTBツール500を提供する。CCTBツール500を使用して、デバイス能力をホストPCに伝達するトークンセットを作成する。トークンを作成するには単にリスト510から関連するデバイス能力を選択し、適用可能な場合はデバイスにフレンドリ名を割り当てる。図5ではRemote_Media_Deviceがフレンドリ名であり、この名前は本発明との関連で使用することが可能な例示的リモートメディアデバイスを指すためにも利用する。能力トークンの値は、第1のフィールド520に表示される。このストリングをUTF-8で符号化した明示が第2のフィールド530に表示される。この実施形態では、UTF-8で符号化されたストリングが仮想チャネルを介してホストPCに渡されてデバイス能力を指定する。本実施形態におけるUTF-8で符号化したストリングの使用は、単なる設計上の選択である。任意のフォーマットを使用して第1のフィールド520の値を記述することができ、したがって本発明はUTF-8の符号化方式の使用に限定されないことに留意されたい。図6に、ホストPCのメディア環境が10-footUIのメディアエクスペリエンスを有する本発明の一実施形態を示す。この実施形態では、ホストPC600は、リモートコントロールデバイス620とともに機能するように設計されたメディアシェル605を有する。したがって、ユーザは、ホストPC600のキーボード、マウスなどのある場所にいる必要はなく、リモートコントロールデバイス620を介してホストPC600のメディアセンターを操作することができる。メディアエクスペリエンスのリモーティングは本発明によりシームレスかつ自動的になるように設計されるので、本実施形態では、リモートデバイス610がそのメディア能力ストリングをホストデバイス600に送信し、カスタムメディアエクスペリエンスがデバイス610にリモートされると、リモートデバイス620を利用してそのメディアエクスペリエンスのどの部分をも、すなわちホストPC600のエクスペリエンスもリモートデバイス610のエクスペリエンスも制御することができる。これは、リモートエクスペリエンスが10-footUIのメディアシェル605に結び付けられているからである。本発明の別の主要な態様は、メディア能力を宣言するための拡張可能な機構を提供することである。RDPはそれ自体で特定のデバイス能力についてのブロードキャスト機構を有するが、それは拡張可能な機構ではなく、またリモートメディアエクスペリエンスを対象としたものではない。この点で、従来はホストとリモートデバイス間のメディアシナリオはハードウェアに組み込まれていたhardwiredが、新たなリモートメディア消費デバイスが設定すべき新しいクラスのメディアプロパティを必要とする範囲内で本発明を変更して新しい能力セットに対応することができる。例えば、ツール500は追加的なプロパティを含むように変更することができ、それに対応するメディア能力ストリングは、その変更に応じて生成され、解釈される。すなわち、ストリング自体が拡張可能であり、今後生じる可能性のある無限の数のメディアプロパティに対応する。さらに本発明は動的である。すなわち、リモートデバイスがホストPCとの確立されたセッションを有し、リモートデバイスが何らかの理由でネットワークから切断された場合、その合間にメディアプロパティが変化した場合には、その後再接続された時に、本発明は、デバイスの新しい条件に合わせてメディア能力ストリングを動的に適合させる。したがって、例えば、リモートデバイスの切断の後に、そのリモートデバイスがより高い画面解像度を有するモニタに接続された場合は、再接続時に本発明によるメディア能力ストリングを介して高い方の画面解像度が宣言される。例示的デバイスの例示的なリモートの例外表1に示すデバイスとプロパティの違いによって例示されるように、ホストPCには、リモートメディアデバイスにリモートすることができないか、またはリモートされる際に特殊な方式で扱われるメディア機能がいくつかある。本発明のメディア能力判定機構は、そのような例外が存在することを認め、リモートメディアエクスペリエンスセッション中に自動的かつ動的に処理できるようにする。具体的な例として、Remote_Media_Deviceと称されるキーボードもマウスもないリモートデバイスをここで検討し、このデバイスでは、ユーザが、テレビを見る、音楽を聴く、写真を見るといった様々なシナリオでデスクトップのメディアエクスペリエンスをワイヤレスにRemote_Media_Deviceにリモートできるとする。Remote_Media_Deviceには、一般的なセッションあるいはデフォルトのセッションに複数の潜在的な例外がある。したがって、本発明の価値を例証するために、以下の説明ではRemote_Media_Deviceと称されるデバイスについての一般的なセッションの例示的で非制限的な例外を例示し、これらの例外は、本発明のメディア能力宣言機構によって自動的かつ動的に処理される。動画のセンターロッキング式のスタートメニュー設計は、動画化されないRemote_Media_Deviceセッションでは機能しない。したがって、Remote_Media_Deviceセッションでは動画でないスタートメニュー設計を利用し、その場合はメニュー自体の代わりにハイライトカーソルが動かされる。ウィンドウのコントロールおよびユーザ名については、Remote_Media_Deviceのリモートエクスペリエンスでは最小化/最大化/ウィンドウを閉じる/ログオフのボタンが除去され、Remote_Media_Deviceのユーザは高速のユーザ切り替えやコントロールウィンドウ設定を利用することができない。CDのコピーなどのCD機能は、リモートされたセッションではサポートされない。ビジュアライゼーションは非常に多大な帯域幅、プロセッサ、およびメモリを要するので、Remote_Media_Deviceにリモートされたセッションではサポートされない。Remote_Media_Deviceにリモートされたセッションでは、写真については詳細moreinfoのボタンが使用不可にされる。DVD機能もRemote_Media_Deviceにはリモートされない。したがって、Remote_Media_Deviceにリモートされたセッションについてはメニュー項目DVDを再生するを開始メニューから除去しなければならず、DVDに関連する設定も除去しなければならない。アルファブレンドされたアセットは、Remote_Media-Device_ディスプレイのビデオでは表示が不正確になる。したがって、Remote_Media_Deviceにリモートされたセッションにはカスタムのアセットを使用して単一ピクセルのアルファ問題を回避する。アルファ楕円は、多量のカスタムのアルファGDI符号化を必要とし、Remote_Media_Deviceセッションでは実装されない。マーキースクロールは、D3Dレンダリングを必要とし、Remote_Media_Deviceでは使用不可にされる。Remote_Media_Deviceは、デフォルトでTVスキンを利用する。また、現在は特定のボタン名がボタンコンテナに収まらないので、Remote_Media_Deviceにリモートされたセッションでは小さめのテキストサイズを使用して切り詰められたボタンラベルに対処する。キーボード/マウスを用いずにヘルプおよびサポートセンターHSCを閉じる方式はなく、またHSCは大半のTV画面の解像度では使用することができないので、Remote-Media-DeviceにリモートされたセッションではHSCが起動されない。したがって、Remote_Media_DeviceにリモートされたセッションではHSCへのリンクは表示されない。Remote_Media_Deviceにリモートされたセッション中には、すべてのfirst-run/設定のページについてヘルプのリンクが除去される。Remote_Media_Deviceではキーボードもマウスも利用することができないので、ポップアップは表示されない。Remote_Media_Deviceクライアントは、ホストマシンで新規ユーザとしてセットアップされる。Remote_Media_Deviceにリモートされたセッションは、全画面で排他的に実行されるように設定され、デフォルトで常に手前に表示で実行されて目障りなポップアップがUIの上に表示されないようにする。さらに、Remote_Media_Deviceのアカウントは、ActiveXコントロールのインストールは一切許可しない。Remote_Media_Deviceにリモートされたセッションでは、完全に動画化された待機カーソルは表示されない。代わりにカスタムバージョンが表示され、これははるかに低いフレームレートで動画化され、D3Dベースの動画方式に依拠しない。マウスがないので、Remote_Media_Deviceにリモートされたセッションではマウスの移動時に表示されるオーバーレイは表示すべきでない。Remote_Media_Deviceデバイスの場合、フロントパネルディスプレイFPDイベントはすべてヌルのFPDデバイスに送信して、ホストPCのFPDに送信されないようにする。このように、メディア能力をホストデバイスに宣言するために本発明のフレームワークにより自動的に設定することが可能な無数のメディア能力プロパティが存在することが明らかであろう。本発明は、追加的なメディア能力に合わせて拡張可能なフレームワークを提供し、また本発明は、リモートメディアエクスペリエンスセッションの開始時に動的に関与するので、ホストPCと連携して遠隔で動作する異なるメディアデバイスシナリオの数には限りがない。本発明はセッションに対して自動的に動作するので、ユーザは、リモートデバイスの電源を入れ、リモートデバイスに配信されるカスタマイズされたメディアエクスペリエンスを見るだけでよい。例えば、上記のRemote_Media_Deviceでは、上記の例外はすべて自動的に処理される。Remote_Media_Deviceは、自身のメディア能力ストリングをホストPCに対して宣言し、ホストPCは、そのストリングに基づいてデバイスのメディア能力を解釈し、能力に応じてリモートメディアエクスペリエンスを配信する。本発明を実施する方式は複数あり、例えば、アプリケーションおよびサービスが本発明のメディア能力宣言機構を使用することを可能にする適切なAPI、ツールキット、ドライバコード、オペレーティングシステム、コントロール、スタンドアロンまたはダウンロード可能なソフトウェアオブジェクトなどがある。本発明は、APIまたは他のソフトウェアオブジェクトの観点から、また本発明の機構を介してメディア能力を送受信するソフトウェアまたはハードウェアオブジェクトの観点から、本発明の使用を企図する。したがって、ここに記載される本発明の各種の実施は、完全にハードウェアにある態様、一部がハードウェアにあり一部がソフトウェアにある態様、またソフトウェアにある態様を有することができる。上記のように、本発明の例示的実施形態について各種のコンピューティングデバイスおよびネットワークアーキテクチャとの関係で説明したが、その基礎となる概念は、メディアエクスペリエンスをリモートすることが望ましい任意のコンピューティングデバイスまたはシステムに適用することができる。例えば、本発明のアルゴリズムおよびハードウェア実施は、デバイス上の別個のオブジェクト、別のオブジェクトの一部、再使用可能なコントロール、サーバからダウンロード可能なオブジェクト、デバイスまたはオブジェクトとネットワーク間の仲介役、分散オブジェクト、ハードウェア、メモリ中、上述の組み合わせなどとして提供されるコンピューティングデバイスのオペレーティングシステムに適用することができる。本明細書では例示的なプログラミング言語、名前、および例を各種選択肢の代表として選択したが、それらの言語、名前および例は制限的なものではない。当業者には理解されるように、本発明の各種実施形態によって達成される機能と等しい、ほぼ等しい、あるいは同等の機能を達成するオブジェクトコードおよび用語体系を提供する方式は多数ある。先に述べたように、ここに記載される各種の技術は、ハードウェアまたはソフトウェア、あるいは適切な場合はそれら2つの組み合わせとの関連で実施することができる。したがって、本発明の方法および装置、またはその特定の態様または一部分は、フロッピー登録商標ディスケット、CD-ROM、ハードドライブ、あるいは任意の他の機械可読の記憶媒体などの有形媒体として実施されたプログラムコードすなわち命令の形を取ることができ、その場合、プログラムコードがコンピュータなどのマシンにロードされ、実行されると、そのマシンは本発明を実施する装置となる。プログラム可能なコンピュータでプログラムコードを実行する場合、コンピューティングデバイスは一般に、プロセッサ、そのプロセッサによって可読の記憶媒体揮発性および不揮発性メモリおよび/または記憶素子を含む、少なくとも1つの入力装置、および少なくとも1つの出力装置を含む。例えばデータ処理API、再使用可能なコントロールなどの使用を通じて本発明のメディア能力機構を実施または利用することが可能な1つまたは複数のプログラムは、高級手続き型プログラミング言語またはオブジェクト指向のプログラミング言語で実施してコンピュータシステムと通信することが好ましい。ただし、それが求められる場合、プログラムはアセンブリ言語またはマシン語で実施することができる。いずれの場合も、言語はコンパイルされる言語またはインタープリタによって実行される言語とすることができ、ハードウェア実装と組み合わせることができる。本発明の方法および装置は、電気配線またはケーブル、光ファイバー、あるいは任意の他の形態の送信などの何らかの送信媒体を通じて送信されるプログラムコードの形態に実施された通信を介して実施することもでき、その場合、プログラムコードが受信され、EPROM、ゲートアレイ、プログラマブルロジックデバイスPLD、クライアントコンピュータなどのマシンにロードされ、実行されると、そのマシンは本発明を実施する装置になる。汎用プロセッサで実施されると、プログラムコードはプロセッサと組み合わさって、本発明の機能を呼び出すように動作する独自の装置を提供する。また、本発明との関連で使用される記憶技術は、常にハードウェアとソフトウェアの組み合わせであってよい。本発明について各種図面の好ましい実施形態との関係で説明したが、他の同様の実施形態を使用してよいこと、または本発明から逸脱せずに上記の実施形態に変更および追加加えて本発明と同等の機能を行うことが可能であることを理解されたい。例えば、本発明の例示的ネットワーク環境についてはピアツーピアや分散ネットワーク環境などのネットワーク環境に即して説明したが、当業者は、本発明はそれに限られず、本願に記載される方法は、有線、無線を問わず、ゲーム機、ハンドヘルドコンピュータ、携帯型コンピュータなどの任意のコンピューティングデバイスまたは環境に適用でき、また通信ネットワークを介して接続され、そのネットワークを介して対話する任意数のそのようなコンピューティングデバイスに適用することが可能であることを認識されよう。さらに、特に無線ネットワークデバイスの数が急増し続けていることから、ハンドヘルドデバイスのオペレーティングシステム、および他の特定用途のオペレーティングシステムを含む各種のコンピュータプラットフォームが企図されることを強調したい。例示的実施形態は、RDPとの関連で本発明の利用について言及したが、本発明はこれに限定されず、例えばリモートコンピューティングセッションの開始時に、デバイスにリモートメディアエクスペリエンスを配信する前に任意のプロトコルを実施してデバイスのメディア能力を宣言するための一般的なフレームワークを提供することができる。さらに、本発明は、複数の処理チップまたはデバイス中で、またはそれらにわたって実施することができ、記憶も同様に複数のデバイスにわたって行うことができる。したがって、本発明は、どの単一の実施形態にも限定すべきではなく、頭記の特許請求の範囲による範囲において解釈すべきである。"