(57)【要約】  リモートアプリケーションのローカルテーマ設定のための方法及びシステムが開示されている。１つの実施例において、リダイレクトサーフェスは、クライアントによって実行されているリモートアプリケーションに対応して、サーバによって定義される。当該クライアントは、リダイレクトサーフェス内のクライアント領域及び非クライアント領域に対応するテーマメトリクス及びテーマパーツのセットをサーバに送信する。当該サーバは、テーマメトリクスを使用してリダイレクトサーフェスの一部のコンテンツをレンダリングする。当該レンダリングされたコンテンツは、クライアントに使用されて、リダイレクトサーフェスのクライアント領域が再レンダリングされる。非クライアント領域は、ローカルクライアントテーマ設定に基づいてクライアントにおいてローカルにレンダリングされる。
2010524081.tif 000002
【特許請求の範囲】
【請求項１】
サーバコンピュータデバイスであって、
メモリと、
前記メモリに動作可能に接続された１または複数のプロセッサと、
前記メモリ内のデスクトップウィンドウマネージャと、
前記メモリ内のテーマ設定手段と、を備え、
前記テーマ設定手段が、共通ウィンドウパーツの視覚的外観をカスタマイズするために使用される設定を管理することを特徴とするサーバコンピュータデバイス。
【請求項２】
前記サーバコンピュータデバイスが、グラフィクスデバイスのインタフェースリダイレクトモードにおいて動作することを特徴とする請求項１記載のサーバコンピュータデバイス。
【請求項３】
前記サーバコンピュータデバイスが、レンダリングされるべきアプリケーションウィンドウに対応するリダイレクトサーフェスを形成することを特徴とする請求項１記載のサーバコンピュータデバイス。
【請求項４】
前記テーマ設定手段が、リモートクライアントデバイスからテーマメトリクス及びテーマパーツを受信することを特徴とする請求項１記載のサーバコンピュータデバイス。
【請求項５】
前記テーマメトリクスが、非クライアント領域の寸法、ウィンドウフレームサイズ、デフォルトボタンの背景、および前記コンピュータデバイスにおける前記ウィンドウの前記クライアント領域または非クライアント領域の前記共通パーツの表示及び構造を特徴付けるその他の特性、のうちの１または複数を含むことを特徴とする請求項４記載のサーバコンピュータデバイス。
【請求項６】
前記テーマ設定手段が、前記テーマメトリクス及びテーマパーツを使用してリダイレクトサーフェスをレンダリングすることを特徴とする請求項４記載のサーバコンピュータデバイス。
【請求項７】
前記リモートクライアントコンピュータデバイスでローカルテーマを実装するためのデータ構造を生成するモジュールをさらに含むことを特徴とする請求項１記載のサーバコンピュータデバイス。
【請求項８】
クライアントコンピュータデバイスであって、
メモリと、
前記メモリに動作可能に接続された１または複数のプロセッサと、
前記メモリ内のクライアントデスクトップウィンドウマネージャと、
クライアントテーママネージャと、
前記メモリ内にあり、前記クライアントコンピュータデバイスにおいてリモートアプリケーションのアプリケーションウィンドウを表示するためのシームレスウィンドウマネージャと、
を備えることを特徴とするクライアントコンピュータデバイス。
【請求項９】
前記クライアントテーママネージャが、アプリケーション及びコンポーネントが前記クライアントマネージャと通信することを可能にする一連のアプリケーションプログラムインタフェースを備えることを特徴とする請求項８記載のクライアントコンピュータデバイス。
【請求項１０】
前記クライアントデスクトップウィンドウマネージャが、デスクトップ構成エンジンを備えることを特徴とする請求項８記載のクライアントコンピュータデバイス。
【請求項１１】
前記クライアントデスクトップウィンドウマネージャが、１または複数のオンスクリーン効果を生じさせることを特徴とする請求項８記載のクライアントコンピュータデバイス。
【請求項１２】
前記クライアントデスクトップウィンドウマネージャが、特定のクラスのアプリケーションの構造情報及び表示情報を示すデータ構造を生成して保持することを特徴とする請求項８記載のクライアントコンピュータデバイス。
【請求項１３】
前記クライアントテーママネージャが、前記リモートアプリケーションを保持しているリモートサーバに、クライアントテーマメトリクス及びクライアントテーマパーツの変更を通知することを特徴とする請求項８記載のクライアントコンピュータデバイス。
【請求項１４】
クライアント−サーバセッションを容易にする１または複数のモジュールをさらに含むことを特徴とする請求項８記載のクライアントコンピュータデバイス。
【請求項１５】
リモートアプリケーションのローカルテーマ設定方法であって、
リダイレクトサーフェスを形成するステップと、
ローカルテーマメトリクスをクエリして前記リダイレクトサーフェスをサポートするステップと、
前記ローカルテーマメトリクスに基づいて前記リダイレクトサーフェスまたは前記リダイレクトサーフェスのパーツをレンダリングするステップと、
を含むことを特徴とする方法。
【請求項１６】
前記リダイレクトサーフェスが、サーバアプリケーションウィンドウに対応することを特徴とする請求項１５記載の方法。
【請求項１７】
ビジュアルツリーが、前記サーバアプリケーションウィンドウを示すことを特徴とする請求項１６記載の方法。
【請求項１８】
前記テーマメトリクス及びテーマパーツを使用して、テーマ無し非クライアント領域をレンダリングし、かつテーマメトリクス及びテーマパーツを使用して、アプリケーションウィンドウのクライアント領域の共通パーツをレンダリングすることを特徴とする請求項１５記載の方法。
【請求項１９】
前記リダイレクトサーフェスのレンダリングされたコンテンツ及び前記ローカルテーマメトリクスを使用して、前記リモートアプリケーションに対応するプロキシウィンドウをレンダリングするステップをさらに含むことを特徴とする請求項１５記載の方法。
【請求項２０】
前記ローカルテーマメトリクス及びローカルテーマパーツが、ユーザによって変更可能であることを特徴とする請求項１５記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
ほとんどの場合において、コンピュータユーザにとっては、最先端のグラフィクス性能をサポートするオペレーティングシステムを使用することが好ましい。例えば、多くのオペレーティングシステムは、１または複数のアプリケーションウィンドウに関する共通の視覚的な外観または視覚テーマの提供に関与するコンポーネントを有する。「テーマ」は、オペレーティングシステムに特有のものにでき、当該オペレーティングシステムのユーザが変更することができる。標準的なサーバ−クライアントアーキテクチャにおいて、クライアントコンピュータデバイス、すなわちクライアントは、サーバコンピュータデバイス、すなわちサーバ上に保有されているリモートアプリケーションにアクセスして当該アプリケーションを実行する。アプリケーションウィンドウまたはプロキシウィンドウは、サーバにおいて実行されているリモートアプリケーションに対応するクライアントにおいて表示される。当該プロキシウィンドウの特定の部分は、１つの領域に対応している。当該プロキシウィンドウのこのような部分の視覚的外観または視覚テーマは、リモートアプリケーションの直接的な制御下には無い。オペレーティングシステムの特定のコンポーネントは、この様な非クライアント領域の視覚特性を管理する。
【０００２】
多くの現在の実装例において、プロキシウィンドウのコンテンツは、サーバにおいてレンダリングされ、クライアントに送信されて表示される。それ故に、当該クライアントのプロキシウィンドウは、サーバテーマ（すなわちサーバにおけるテーマ設定）に対応するが、クライアントテーマ（すなわちクライアントにおけるテーマ設定）とは異なる。従って、クライアントにおいて、リモートアプリケーションと、ローカルアプリケーションとがシームレスに統合されていない。さらに、特定の新しいテーマは、当該テーマの１または複数の特性故に、サーバ−クライアントアーキテクチャにおいてはサポートされない可能性がある。例えば、あるテーマは、透過的な要素を有することもあり、リモートアプリケーションのためのサーバにおいて正確にレンダリングされないこともある。なぜなら、当該テーマが、ローカルコンテンツまたはローカルバックグラウンド（すなわちクライアントにおけるコンテンツまたはバックグラウンド）を透かして表示するための透過性を要求しても、当該透過性がサーバにおいて利用不可能であるからである。さらに、サーバは、クライアントテーマ設定に正確に従ったアプリケーションウィンドウをレンダリングできない場合もある。
【発明の概要】
【課題を解決するための手段】
【０００３】
この発明の概要は、発明を実施するための形態においてさらに説明されるリモートアプリケーションのローカルテーマ設定の単純化された概念を紹介するためのものである。この発明の概要は、本発明の必須の特徴を特定することを意図しておらず、本発明の範囲の決定における使用も意図していない。
【０００４】
リモートアプリケーションのローカルテーマ設定の方法が説明される。１つの実装例において、当該方法は、リダイレクトサーフェス（redirection surface）を形成するステップ、当該リダイレクトサーフェスをサポートするローカルテーマメトリクスを受信するステップ、及び当該ローカルテーマメトリクスに基づいて当該リダイレクトサーフェスをレンダリングするステップ含む。さらに、プロキシウィンドウは、リダイレクトサーフェスのレンダリングされたコンテンツ及びローカルテーマメトリクスを使用して、当該リモートアプリケーションに応じてレンダリングされてもよい。
【０００５】
発明を実施するための形態は、添付の図面を参照して説明される。図面において、参照符号の一番左の桁は、当該参照符号が最初に登場した図を特定する。異なった図面における同一の参照符号の使用は、類似のまたは同一の要素を示す。
【図面の簡単な説明】
【０００６】
【図１】本発明の１つの実施例によるリモートアプリケーションのローカルテーマ設定を実装するシステムの一例を示す図である。
【図２】リモートアプリケーションのローカルテーマ設定の実装のための例示のサーバコンピュータデバイスの実装例の図である。
【図３】リモートアプリケーションのローカルテーマ設定を容易にするクライアントコンピュータデバイスの実装例の図である。
【図４】リモートアプリケーションのローカルテーマ設定のために生成されたビジュアルツリーの一例を示した図である。
【図５】１つの実施例によるリモートアプリケーションのローカルテーマ設定を実装するためのサーバコンピュータデバイスとクライアントコンピューティングデバイスとの間の例示の一連の対話を示した図である。
【図６】１つの実施例によるリモートアプリケーションのローカルテーマ設定の方法の一例を示した図である。
【発明を実施するための形態】
【０００７】
以下の開示は、リモートアプリケーションのローカルテーマ設定のためのシステム及び方法を説明している。説明されているリモートアプリケーションのローカルテーマ設定のためのシステム及び方法の特徴は、多くの異なったコンピュータシステム、コンピュータ環境及び／またはコンピュータ構成において実施され得るが、当該システム及び方法の実施例は、以下の例示のシステムアーキテクチャ（単数または複数）において説明される。
【０００８】
標準的なサーバ−クライアントコンピュータ環境は、クライアントコンピュータデバイス、すなわちクライアントが、サーバコンピュータデバイス、すなわちサーバに保持されているリモートアプリケーションにアクセスして、当該アプリケーションを実行することを可能とする。当該リモートアプリケーションが実行されると、アプリケーションウィンドウは、レンダリングされて、クライアント側のモニタ等のディスプレイデバイスに表示される。この様なアプリケーションウィンドウの各々は、付随する視覚テーマを有し、当該視覚テーマは、当該アプリケーションウィンドウのパーツの表示を決定する。当該アプリケーションウィンドウは、２つの範囲／領域、すなわちクライアント領域及び非クライアント領域に分割されてもよい。非クライアント領域は、アプリケーションウィンドウの一部に対応し、当該非クライアント領域の視覚テーマは、当該アプリケーションによっては直接的に制御されない。クライアントにおけるプロキシウィンドウの非クライアント領域の視覚テーマは、サーバのテーマに対応するがローカルクライアントのテーマと異なってもよい。クライアントにおいて、同じテーマを実装して、ローカルのプレビューサムネイルのような同じ機能への完全なアクセスを提供することによって、リモートアプリケーションと、クライアントに保持されるローカルアプリケーションとがシームレスに統合可能となることが望ましい。クライアント領域は、プッシュボタン、チェックボックス、リストボックス等の標準的なコントローラを保持するアプリケーションウィンドウの一部に対応する。標準的なコントローラの視覚テーマは、アプリケーションによっては直接的に制御されない。クライアント領域内の標準的なコントローラの視覚テーマは、サーバテーマに対応し、ローカルテーマとは異なってもよい。標準的なコントローラに関する同一のテーマを実装することによって、リモートアプリケーションとクライアントに保持されるローカルアプリケーションとがシームレスに統合可能であるのが望ましい。
【０００９】
システム及び方法は、リモートアプリケーションのローカルテーマ設定に関して開示される。そのために、当該システム及び方法は、当該リモートアプリケーションに対応するプロキシウィンドウの非クライアント領域のローカルレンダリングの実施のためのメカニズム及びローカルテーマに従ってクライアント領域の共通のコントローラをレンダリングするメカニズムを記載する。１つの実装例において、当該メカニズムは、クライアントからサーバへ、当該プロキシウィンドウに付随するテーマメトリクス（例えばフレーム寸法）及びテーマパーツ（例えば、デフォルトのプッシュボタンの背景として描画されるべき画像）のセットのリダイレクトを含む。当該サーバは、当該テーマメトリクス及びテーマパーツを受信して、プロキシウィンドウを、当該非クライアント領域内においては最小限のサーバテーマを用いるか、またはサーバテーマを使用しないで、当該テーマメトリクスに基づいてレンダリングする。当該サーバは、当該受信されたテーマメトリクス及びテーマパーツを使用して、当該クライアントテーマに従ってクライアント領域の共通のコントローラを描画する。当該クライアントは、当該リモートアプリケーションの非クライアント領域を、ローカルのテーマ設定に基づいてレンダリングし、当該サーバからのレンダリングされた情報を使用して当該プロキシウィンドウを表示する。当該クライアントにおいて表示されるプロキシウィンドウは、（当該クライアントにおいて保持されている）ローカルアプリケーションと同一のテーマ（すなわちクライアントテーマ）を有し、それによって一様な視覚的外観（visual look）を提供する。従来のシステム及び方法とは対照的に、当該開示されたメカニズムは、サーバのテーマに依存しないリモートアプリケーションの非クライアント領域に任意の新しいテーマの（クライアントにおける）実装を可能とする。当該開示されたメカニズムは、サーバのテーマに依存しないリモートアプリケーションのクライアント領域内の共通なコントローラへの任意の新しいテーマの（クライアントにおける）実装を可能とする。
【００１０】
例示のシステム
図１は、リモートアプリケーションのローカルテーマ設定のためのリモートクライアントアクセスシステム１００の一例を示している。この目的を達成するために、システム１００は、サーバコンピュータデバイス、すなわちサーバ１０２を有し、当該サーバコンピュータデバイス、すなわちサーバ１０２は、ネットワーク１０４を介して、１または複数のクライアントコンピュータデバイス、すなわちクライアント１０６−１、１０６−２、．．．、１０６−Ｎと通信する。システム１００は、マイクロソフト社によって提供されるターミナルサービス（商標）システムとすることができ、複数のクライアント１０６は、サーバ１０２上で実行されるアプリケーションに依存する（アプリケーションを使用する）。
【００１１】
サーバコンピュータデバイス１０２は、マイクロソフト社が提供するオペレーティングシステム（例えば、ウィンドウズ（登録商標）サーバ２００のオペレーティングシステム）とともに実装されてもよい。サーバ１０２及びクライアント１０６は、リモートデスクトッププロトコル（ＲＤＰ）等の通信プロトコルを実装して、互いにデータまたは情報を送信し合って（すなわち通信して）もよい。この様な通信プロトコル、特にＲＤＰの使用は、ターミナルサービスシステム等のリモートクライアントアクセスシステムにおいて実装されてもよい。
【００１２】
サーバ１０２は、従来の様々なコンピュータデバイスのいずれでもよく、当該従来のコンピュータデバイスには、デスクトップＰＣ、ノートブックまたはポータブルコンピュータ、ワークステーション、メインフレームコンピュータ、モバイルコンピュータデバイス、エンターテイメントデバイス、ゲーム機、セットトップボックス、ＤＶＤプレーヤ、インターネット家電等を含む。サーバ１０２は、サーバ−クライアントコンピュータ環境におけるサーバとして構成された上述の１または複数の従来のコンピュータデバイスを含んでもよい。
【００１３】
クライアント１０６は、汎用ＰＣ（パーソナルコンピュータ）、ラップトップＰＣ、タブレットＰＣ等であってもよく、マイクロソフト（登録商標）のウィンドウズブランドのオペレーティングシステム等のオペレーティングシステムを実装していてもよい。クライアント１０６は、スタンドアロンのコンピュータであり、主としてサーバ１０２に接続して、クライアント１０６にローカルに保存されていないファイルまたは他の情報（例えば、サーバ１０２に存在するアプリケーションプログラム）にアクセスできる。
【００１４】
ネットワーク１０４は、無線もしくは有線ネットワークまたはこれらの組み合わせとすることができる。ネットワーク１０４は、個別のネットワークの集合であってもよく、互いに相互接続されていてもよくかつ単一の大きなネットワーク（例えばインターネットまたはイントラネット）として機能してもよい。この様な個別のネットワークの例には、限定するものではないが、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）及び、メトリポリタンエリアネットワーク（ＭＡＮ）を含む。さらに、サーバ１０２とクライアント１０６とを接続しているネットワーク１０４は、ＴＣＰ／ＩＰ（transmission control protocol over Internet protocol）のようなトランスポートプロトコルを実装してもよい。
【００１５】
本明細書で開示されるシステム及び方法は、リモートアプリケーションのローカルテーマ設定を実施する。１つのテーマは、１つのアプリケーションに関する外見的特徴の集合またはセットのことである。通常は、リモートアプリケーションは、しばしばクライアント側においてレンダリングされるべき、すなわちモニタ等に表示されるべきグラフィックコンポーネントのコントローラを必要とする。あるアプリケーションは、キャプションバー、システムマニュアル、ステートボタン（state button）（最小化、最大化、復元等）、システムアイコン等のような、非クライアント領域の１または複数のコンポーネントを表示する必要がある。あるアプリケーションは、プッシュボタン、チェックボックス、ラジオボタン等のような、クライアント領域の１または複数の標準的なコントローラを表示する必要がある。従って、テーマ設定は、アプリケーションの外観・特徴のラスタライズ及びレンダリングを制御することによって異なったアプリケーションウィンドウに共通する視覚的外観を提供することを含む。オペレーティングシステムの特定のコンポーネント（例えば、デスクトップウィンドウマネージャコンポジタ（desktop window manager compositor））は、アプリケーションウィンドウを表示するためのラスタライズ及びレンダリング能力を提供する。
【００１６】
１つの実施例において、クライアント１０６は、サーバ１０２に保持されている１または複数のリモートアプリケーションにアクセスしてこれを実行する。この様なリモートアプリケーションの実行において、クライアント１０６及びサーバ１０２は、当該２者間で開始されるクライアント−サーバセッションに参加する。当該クライアント−サーバセッションは、特定のリモートアプリケーションに対応してクライアント１０６においてアプリケーションウィンドウ（すなわちプロキシウィンドウ）を提供する。
【００１７】
サーバ１０２のリダイレクトエージェント１０８は、トップレベルアプリケーションウィンドウの各々に対してリダイレクトサーフェス（redirect surface）を形成する。トップレベルウィンドウは、一般的に「ｚオーダー」と称される順序に従って配されたアプリケーションウィンドウのセットをいう。クライアント１０６は、サーバ１０２によって形成されたリダイレクトサーフェスを使用して当該アプリケーションウィンドウのためにプロキシをレンダリングする。「プロキシウィンドウ」は、「ローカルに統合されたリモートアプリケーション」すなわちＲＡＩＬウィンドウであってもよい。このようなアプリケーションウィンドウの各々は、２つの領域すなわち、１）クライアント領域と、２）非クライアント領域と、に分けることができる。当該２つの領域は、制御方法が異なる（２つの領域おいて、対応するリモートアプリケーションが当該制御のもとで動作する）。従って、クライアント領域は、リモートアプリケーションの直接的な制御下にある領域である。非クライアント領域は、リモートアプリケーションの直接的な制御下にはない領域である。サーバ１０２は、テーマ設定サービス（themeing service：テーマ設定手段）１１０を実装して、クライアント１０６におけるプロキシウィンドウの非クライアント領域のローカルレンダリング及び当該プロキシウィンドウのクライアント領域に属するテーマ設定されたウィンドウパーツのリモートレンダリングを容易とする。
【００１８】
テーマ設定サービス１１０は、サーバオペレーティングシステムのコンポーネントであってもよい。当該サーバオペレーティングシステムは、サーバ１０２におけるラスタライズ及びレンダリング能力を提供する。リダイレクトエージェント１０８は、リモートアプリケーションのコンテンツをレンダリングし、表示のためにクライアント１０６にリダイレクトする。クライアント１０６は、クライアントテーママネージャ１１２を含み、クライアントテーママネージャ１１２は、添付の図面において、クライアントテーママネージャ１１２（１）、１１２（２）、．．．、１１２（Ｎ）によって各々表される。クライアントデスクトップウィンドウマネージャ１１４（１）、１１４（２）、．．．、１１４（Ｎ）は、当該リモートアプリケーションのレンダリングされたコンテンツを使用して、クライアント１０６においてプロキシウィンドウを表示する。
【００１９】
リモートアプリケーションのローカルテーマ設定は、クライアントテーママネージャ１１２に、当該リモートアプリケーションに対応したテーマメトリクス（メトリクス寸法、フレームサイズ等）及びテーマパーツ（チェックされたチェックボックスの画像等）のセットをクエリするメカニズムを実装してもよい。クライアントテーママネージャ１１０は、当該クエリに応答して、サーバ１０２にリダイレクトされるテーマメトリクス及びテーマパーツを提供する。サーバ１０２は、当該テーマメトリクスを使用して、サーバ１０２において当該リモートアプリケーションウィンドウ（すなわちプロキシウィンドウ）のコンテンツをレンダリングする。１つの実装例において、サーバ１０２は、サーバテーマを実装せずまたは最小限のテーマを実装して当該ウィンドウの非クライアント領域をレンダリングする。１つの実装例において、サーバ１０２は、クライアントメトリクス及びクライアントパーツを有する完全なテーマを実装して、当該ウィンドウのクライアント領域内の共通のコントローラをレンダリングする。
【００２０】
クライアント１０６は、プロキシウィンドウに関するクリッピング情報及びサーバテーマメトリクスに加えて、当該レンダリングされたウィンドウのコンテンツをプロキシウィンドウ上に受信する。その後、クライアント１０６は、プロキシウィンドウ上に、当該リモートアプリケーションのクライアント領域を表示する。クライアントテーママネージャ１１２は、ローカルクライアントテーマ設定を使用して、非クライアント領域をレンダリングし、それによって、クライアントテーマ設定によって定められる外観を当該プロキシウィンドウに提供する。従って、当該非クライアント領域は、クライアント１０６においてローカルにレンダリングされ、当該クライアント領域は、サーバ１０２においてレンダリングされる。クライアントテーママネージャ１１２は、テーマメトリクス及びテーマパーツをリモートテーママネージャに提供する。当該リモートテーママネージャは、クライアントテーマに従ってクライアント領域を既にレンダリングしている。この様なレンダリングメカニズムは、リモートアプリケーションとクライアント１０６に保持されているローカルアプリケーションとのシームレスな統合をもたらす。
【００２１】
例示のサーバコンピュータデバイス
図２は、リモートアプリケーションのローカルテーマ設定のためのサーバコンピュータデバイス（サーバ）１０２の実装例を示している。ここで、サーバコンピュータデバイス１０２は、メモリ２０２に接続された１または複数のプロセッサ２００を含む。プロセッサ２００は、例えば、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央演算装置、ステートマシン、論理回路及び／または動作命令に基づいてデータを操作するいずれのデバイスであってもよい。プロセッサ２００は、メモリ２０２内に保存されているコンピュータプログラム命令をフェッチ（fetch）して実行するように構成されている。メモリ２０２は、ＲＡＭ（Random Access Memory）のような揮発性メモリ及び／もしくはＲＯＭ（Read Only Memory）のような揮発性メモリもしくはフラッシュＲＡＭまたはこれらの組み合わせであるコンピュータ可読媒体を含む。
【００２２】
メモリ２０２は、オペレーティングシステム２０４を含み、オペレーティングシステム２０４は、サーバ１０２上における１または複数のリモートアプリケーションの実行のためのプラットフォームを提供する。典型的なサーバ−クライアントアーキテクチャにおいて、サーバ１０２は、アプリケーションサーバとして機能して、クライアント１０６は、サーバ１０２において実行されるアプリケーションに依存する（アプリケーションを使用する）。このようなアプリケーションは、機能（特に１または複数のリモートアプリケーションのアクセス及び制御）を提供する全てまたはいくつかのアプリケーションプログラムを提供する。
【００２３】
メモリ２０２は、サーバデスクトップウィンドウマネージャ２０６及びテーマ設定サービス１１０をさらに含む。サーバデスクトップウィンドウマネージャ２０６は、リモートアプリケーションがサーバ１０２において実行されたときに、アプリケーションウィンドウの画面の表示を行う。当該リモートアプリケーションは、サーバアプリケーション２０８を含み、サーバアプリケーション２０８は、クライアント１０６がサーバ−クライアントセッションをインスタンス化したときに当該サーバにおいて実行される。テーマ設定サービス１１０は、ウィンドウのクライアント領域及び非クライアント領域の共通のコントローラのための一様な外観を指定することを可能とする。サーバアプリケーション２０８は、マイクロソフト（登録商標）オフィスパッケージ・セット内に含まれているアプリケーションであってもよい。
【００２４】
１つの実装例において、サーバ１０２は、ＧＤＩ（graphics device interface）描画コマンドを使用するアプリケーションに対するリダイレクトモードにおいて動作する。ＧＤＩは、アプリケーションプログラミングインタフェースであり、アプリケーションと、複数のコンポーネントの１つとのインタフェースとなる。当該複数のコンポーネントは、当該グラフィックオブジェクトを描画して当該グラフィックオブジェクトをモニタ及びプリンタのような出力デバイスに伝送するためのコンポーネントである。ＧＤＩリダイレクトモードにおいて、サーバ１０２は、アプリケーションに対応するアプリケーションウィンドウのコンテンツのラスタリング及びレンダリングを実行して、当該レンダリングされたコンテンツを中間サーフェス（intermediate surface）にリダイレクトする。１つの実装例において、当該リダイレクトサーフェスに対するラスタライズ処理は、ネットワークを介して送信されてクライアント１０６において再度実行される。
【００２５】
従って、クライアント１０６が、サーバ１０２にアクセスしてサーバアプリケーション２０８を実行する場合、プロキシウィンドウまたはＲＡＩＬウィンドウは、クライアント１０６において実行される。サーバ１０２は、「スプライト（sprite）」とも称されるリダイレクトサーフェスを形成し、レンダリングされるべきアプリケーションウィンドウに対応して動作する。リダイレクトサーフェスすなわちスプライトは、サーバアプリケーション２０８に対応するアプリケーションウィンドウのレンダリングのためにサーバによって使用されるフレームバッファの一部であることが理解されるであろう。当該リダイレクトサーフェスは、図５に示されており、「例示の方法」と題されたセクションにおいて詳細に説明される。
【００２６】
クライアント１０６がサーバアプリケーション２０８の実行を開始すると、サーバ１０２は、ただちにクライアント１０６にＲＡＩＬウィンドウの実行に関する通知を行う。サーバ１０２は、クライアント１０６に、トップレベルウィンドウまたはアプリケーションウィンドウのレンダリングが、ＧＤＩリダイレクトモードであるサーバ１０２によって画定されたリダイレクトサーフェスを使用して実行されたことを示す。続いて、クライアントテーママネージャ１１２は、テーマメトリクス及びテーマパーツのセットをクエリされる。当該テーマメトリクスは、例えば、非クライアント領域の寸法、ウィンドウフレームサイズ及びクライアント１０６のプロキシウィンドウの非クライアント領域の表示及び構成を特徴付けるその他の特性を含む。テーマパーツは、例えば、チェックボックスボタンの表示に使用される画像または押されたボタンのデフォルトの背景を含む。１つの構成において、当該テーマメトリクスは、当該ウィンドウのフレームの寸法を一致させることが可能である。１つの実装例において、当該テーマパーツは、クライアントとサーバとの間のクライアント領域部分を一致させることを可能とする。クライアント１０６は、当該テーマメトリクス及びテーマパーツをテーマ設定サービス１０８へ送信する。
【００２７】
サーバ１０２は、当該テーマメトリクス及びテーマパーツを受信してサーバデータ２１０内に保存する。サーバデータ２１０は、サーバテーマ設定及びその他の情報を保存してもよい（当該その他の情報とは、サーバ１０２の機能をラスタライズ及びレンダリングするために使用され得る情報である）。テーマ設定サービス１１０は、当該受信されたテーマメトリクスを使用して、非クライアント領域に対しては、サーバテーマ使用しないかまたは最小のＧＤＩテーマを使用して、当該リダイレクトサーフェスをレンダリングする。テーマ設定サービス１１０は、当該テーマパーツを使用してクライアント領域内のウィンドウの共通パーツをレンダリングする。このことは、サーバ１０２及びクライアント１０６における非クライアント領域のテーマ設定の重複が無いことを保証する。
【００２８】
次に、リモートサーバアプリケーション２０６に対応して、クライアント１０６において、プロキシウィンドウすなわちＲＡＩＬウィンドウが、サーバテーマに従った適切な特性及びスタイルを用いて形成される。クライアント１０６は、サーバ１０２から受信したクリッピング情報及びサーバテーマ設定を使用して、当該ＲＡＩＬウィンドウ上にクライアント領域を表示する。非クライアント領域は、クライアントテーママネージャ１１０によって自動的にレンダリングされ、当該プロキシウィンドウまたはＲＡＩＬウィンドウが完全に表示される。さらに、メモリ２０２が他のモジュール２１２を備えて、リモートアプリケーションのローカルテーマ設定を実行するためのデータ構造を生成しかつ保存してもよい。クライアント−サーバセッションはクライアント１０６とサーバ１０２との間に存在してもよい。従って、他のモジュール２１２がリモートセッションモジュールを備えて、当該クライアント−サーバセッションを形成してもよいことが理解されるであろう。加えて、サーバ１０２は、ネットワークインタフェース２１４を備えて、１または複数のクライアント１０６と通信を確立してもよい。
【００２９】
例示のクライアントコンピュータデバイス
図３は、リモートアプリケーションのローカルテーマ設定のためのクライアントコンピュータデバイス、すなわちクライアント１０６の１つの実装例を示している。図示されているように、クライアント１０６は、メモリ３０２に接続された１または複数のプロセッサ３００を含む。このようなプロセッサ（単数または複数）３００は、例えば、マイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央演算装置、ステートマシン、論理回路、及び／または、上記以外の動作命令に基づいてデータを操作するいずれのデバイスでもよい。プロセッサ（単数または複数）３００は、メモリ３０２内に保存されているコンピュータプロフラム命令をフェッチ（fetch）して実行するように構成されている。メモリ３０２は、ＲＡＭ（Random Access Memory）のような揮発性メモリ及び／もしくはＲＯＭ（Read Only Memory）のような揮発性メモリもしくはフラッシュＲＡＭまたはこれらの組み合わせであるコンピュータ可読媒体を含む。
【００３０】
メモリ３０２は、オペレーティングシステム３０４を含んでいてもよい。オペレーティングシステム３０４は、クライアント１０６における１または複数のリモートアプリケーションの実行のためのプラットフォームを提供する。当該オペレーティングシステムは、様々なマイクロソフト（登録商標）オペレーティングシステムのうちの１つでもよい。メモリ２０２は。クライアントデスクトップウィンドウマネージャ３０６及びクライアントテーママネージャ１１０をさらに含む。クライアントデスクトップウィンドウマネージャ３０６は、クライアント１０６におけるディスプレイまたはモニタのような視覚化デバイスにおける表示に関与する。
【００３１】
代替実装例において、クライアントデスクトップウィンドウマネージャ３０６は、デスクトップ構成エンジンすなわちＤＣＥを含んでいてもよい。クライアントデスクトップウィンドウマネージャ３０６は、多数のオンスクリーン効果を実現してもよい。当該オンスクリーン効果は、半透明のウィンドウ境界を含む。当該ウィンドウ境界は、下にあるウィンドウコンテンツの一部を表示し、ユーザがアプリケーションをスイッチしたときに表示されるスタック効果（stacking effect）を表す。クライアントデスクトップウィンドウマネージャ３０６が分離されたブロックとして示されているが、オペレーティングシステム３０４内にこれらが含まれてもよいことが理解されるだろう。
【００３２】
クライアント１０６におけるプロキシウィンドウは、リモートサーバアプリケーション２０８のためのＲＡＩＬアプリケーションウィンドウであってもよい。上述したように、サーバ１０２は、リダイレクトサーフェスすなわちスプライトを形成し、当該リダイレクトサーフェスは、レンダリングされたアプリケーションウィンドウを含むフレームバッファの一部に対応している。サーバ１０２及びクライアント１０６における例示のフレームバッファは、説明のために図５に示されている。メモリ３０２は、クライアントアプリケーション３０８も含む。クライアントアプリケーション３０８は、クライアントデスクトップウィンドウマネージャ３０６によってローカルに実行されてレンダリングされてもよい。
【００３３】
１つの典型的な実装例において、クライアント１０６は、サーバアプリケーション２０８の実行を開始し、その開始とともにサーバ１０２が、ＲＡＩＬウィンドウの実装に関してクライアント１０２に通知を行う。その後、クライアントデスクトップウィンドウマネージャ３０６が、クライアントテーママネージャ１１０にテーマメトリクス及びテーマパーツのセットをクエリする。１つの実装例において、これらのテーマメトリクスは、ガラス効果に関する透明レベル、ステートボタンの色等にすることができる。
【００３４】
クライアントデスクトップウィンドウマネージャ３０６は、データ構造（例えば、ビジュアルツリー）を生成しかつ維持してもよく、当該データ構造は、特定のクラスのアプリケーション（例えば、サーバアプリケーション２０８、クライアントアプリケーション３０８）の構造的情報及び表示情報を示す。この場合、当該構造情報及び表示情報は、当該リモートアプリケーションに対応するデータ構造またはビジュアルツリーから取得されてもよい。当該テーマメトリクスまたはビジュアルツリーは、クライアントデータ３１０内に保存されてもよい。クライアントテーママネージャ１１０は、当該テーマメトリクス及びテーマパーツをサーバ１０２へ送信する。当該サーバにおいて動作しているテーマ設定サービス１１０は、これらのメトリクスを受信して、これらのメトリクスを当該サーバにおいて動作しているアプリケーション及びコンポーネントに対して使用可能にする。例えば、オペレーティングシステム内に含まれているデスクトップウィンドウマネージャは、ビジュアルツリーを実装して、ウィンドウ表示の下地・基礎部分（foundation）またはＷＰＦアプリケーションの構造情報及び表示情報を表示する。このようなビジュアルツリーは、図４に示され、本明細書の「例示のビジュアルツリー」と題されたセクションにおいてさらに説明される。
【００３５】
テーマ設定サービス１１０は、テーマメトリクス及びテーマパーツのセットを受信する。テーマ設定サービス１１０は、リモートサーバアプリケーション２０８の非クライアント領域に対して、サーバテーマをレンダリングしないかまたは最小限のＧＤＩテーマをレンダリングし、クライアント領域のボタン、チェックボックス等の共通コントローラを完全にレンダリングする。サーバ１０２は、レンダリング情報とともにサーバアプリケーションウィンドウのレンダリングされたコンテンツをクライアント１０６へ送信する。当該レンダリング情報は、クリッピング情報、ｚオーダー情報等を含んでもよい。クライアント１０６は、当該レンダリングされたコンテンツ及び当該レンダリング情報を受信して使用し、対応するプロキシウィンドウすなわちＲＡＩＬウィンドウ上にクライアント領域をレンダリングする。非クライアント領域は、クライアントテーママネージャ１１０によって自動的にレンダリングされる。
【００３６】
メモリ３０２は、シームレスウィンドウマネージャ３１４を含む。シームレスウィンドウマネージャ３１４はデスクトップウィンドウマネージャ１０２と通信し、当該デスクトップウィンドウマネージャ１０２からアプリケーションウィンドウのレンダリングされたコンテンツを受信する。１つの実装例において、クライアントシームレスウィンドウマネージャ３１４は、レンダリングされたリダイレクトサーフェスのコンテンツを受信して、プロキシウィンドウ上にクライアント領域を再レンダリングする。
【００３７】
メモリ３０２は、他のモジュールをさらに含んでもよい。当該他のモジュールは、クライアント１０６が、サーバアプリケーション２０８を実行するときにクライアント−サーバセッションを開始することに寄与する。クライアント１０６は、入出力（Ｉ／Ｏ）インタフェース３１６を含み、当該クライアントのユーザはクライアントテーマに関する設定をするかまたは当該設定を変更することが可能である。この様なクライアントテーマ設定の変更は、新しいテーマの設定を含んでもよい。当該新しいテーマは、リモートサーバアプリケーション２０８に対応して、クライアント１０６において、プロキシまたはＲＡＩＬウィンドウの非クライアント領域に適用されてもよい。
【００３８】
クライアントテーママネージャ１１２は、サーバ１０２に、クライアントテーマメトリクス及びクライアントテーマパーツ（フレームウィンドウの寸法、デフォルトボタンの背景の色等）の変更に関して通知してもよい。サーバ１０２は、このような通知を受信すると、非クライアント領域に関しては最小限のＧＤＩを使用するか、またはサーバテーマを使用せず、かつクライアント領域の共通のコントローラに関しては完全なテーマを使用する。アプリケーションウィンドウのコンテンツを、変更されたテーマメトリクスに基づいて再レンダリングし、当該レンダリングされたコンテンツをクライアント１０６へ送信する。従って、クライアント１０６は、最後にレンダリングされたコンテンツを、他のレンダリング情報とともにサーバから受信して使用し、プロキシまたはＲＡＩＬウィンドウのクライアント領域を表示する。当該非クライアント領域は、クライアントにおける現在のローカルテーマ設定に従ってレンダリングされるので、クライアント１０６におけるクライアントアプリケーションウィンドウ及びサーバアプリケーションウィンドウの両方に一様な外観が与えられる。さらに、クライアント１０６は、ネットワークインタフェース３１８を含んで、サーバ１０２との通信を確立してもよい。
【００３９】
例示のビジュアルツリー
図４は、１つの実装例に従った例示のビジュアルツリー４００を示している。従って、クライアントデスクトップウィンドウマネージャ３０６は、ビジュアルツリー４００を実装して、アプリケーション（例えばクライアントアプリケーション３０８）の表示情報及び構造情報を表示する。この様な実装例において、クライアントデスクトップウィンドウマネージャ３０６は、１または複数のクライアントアプリケーション３０８に対応した１または複数のトップレベルウィンドウを維持する。これらの各々は、特性（属性）または性質のセットに関連付けられている。当該特性（属性）は、クリッピング、視認性、カスタム非クライアント領域（custom non-client area）、サムネイル表示、フリップ３Ｄ動作等を含む。クライアントデスクトップウィンドウマネージャ３０６は、当該トップレベルウィンドウの各々に対してビジュアルツリー４００を生成する。典型的なビジュアルツリーは、多数のノードを有し、ノードの各々は、非クライアント領域、システムアイコン、ステートボタン、クライアント領域等に関する表示情報及び構造情報を表示してもよい。
【００４０】
ビジュアルツリー４００は、アプリケーションのタイプまたはクラスを特定するルートノード４０２を有する。ルートノード４０２は、子ノード４０４、４０６及び４０８を有する。ノード４０４は、アプリケーションの非クライアント領域に関する情報に対応する。ノード４０８は、アプリケーションのクライアント領域に関する情報に対応する。ノード４０６は、アプリケーションの非クライアント領域の他の部分に関する情報を含む。例えば、ノード４０６は、子ノード４１０、４１２及び４１４を有する。ノード４１０は、アプリケーションウィンドウ内のシステムアイコンに関する情報を表示する。同様に、ノード４１２及び４１４は、アプリケーションウィンドウ内のステートボタン及びキャプションバーに対応する。当該ビジュアルツリーは、アプリケーションのぼかし（blurring）特性に関する他のノードを含んでもよい。ぼかしはオペレーティングシステムに含まれている特性・機能であり、当該ぼかしにおいて、アプリケーションウィンドウの背景領域はぼやかされ、当該アプリケーションウィンドウはそれに伴う所定の透過性を有する。１つの実装例において、クライアントデスクトップウィンドウマネージャ３０６は、ビジュアルツリー４００内の１または複数のノードとしてクライアントテーマの（テーマメトリクスによって影響を受ける）視覚的外観を表示する。
【００４１】
１つの実施形態において、クライアントデスクトップウィンドウマネージャ３０６は、ウィンドウ（すなわちプロキシウィンドウ）の特性（属性）または性質を評価して、如何にして非クライアント領域パーツをレンダリングするか、及び如何にしてクライアント領域を位置決めするかを示すビジュアルツリーを形成する。当該クライアントデスクトップウィンドウマネージャは、トップレベルウィンドウのリストをウォークスルー（walk through）し、クライアントアプリケーション３０８に対応するビジュアルツリーを生成する。例えば、トップレベルウィンドウは、異なったアプリケーションウィンドウが斜視（遠近法）表示で視覚され得るフリップ３Ｄ動作を備えていない場合もある。従って、クライアントデスクトップウィンドウマネージャ３０６は、アプリケーションを３Ｄで見ることができない。なぜなら、当該アプリケーションウィンドウは、このような表示でないように選択されているからである。従って、クライアントデスクトップウィンドウマネージャ３０６は、ビジュアルツリーの概念を使用したウィンドウリストの様々な表示を形成・提示する。同様のビジュアルツリー４００が、サーバアプリケーション２０８に対応するサーバデスクトップウィンドウマネージャ２０６によって実行されてもよいことが理解されるであろう。
【００４２】
例示の方法
リモートアプリケーションのローカルテーマ設定の方法の一例を、図１から図４及び特に図５を参照して説明する。図５は、リモートアプリケーションのローカルテーマ設定の実行に関する、サーバ１０２とクライアント１０６との間の一連の例示の対話（interaction）を示している。例示の方法を、一般的なコンピュータ実行可能命令に基づいて説明する。一般的に、コンピュータ実行可能命令は、特定の機能を発揮するかまたは特定の抽象データ型を実装可能な、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、プロシージャ、モジュール、ファンクション等を含むことができる。当該方法は、分散コンピュータ環境で実施されてもよく、当該環境において、機能は、通信ネットワークを介して接続されたリモート処理デバイスによって実行される。分散コンピュータ環境において、コンピュータ実行可能命令は、ローカルコンピュータ記憶媒体及びリモートコンピュータ記憶媒体の両方に配されていてもよい。当該記憶媒体には、メモリ記憶デバイスを含む。
【００４３】
図５において、サーバ１０２及びクライアント１０６は、サーバクライアントインタフェース５０２を介して対話をする。サーバ１０２は、テーマ設定サービス１０８を備えてサーバアプリケーション２０８に対応するアプリケーションウィンドウ５０４をレンダリングする。上述したように、アプリケーションウィンドウ５０４は、非クライアント領域５０６を備え、サーバ１０２におけるレンダリングの際に、非クライアント領域５０６にサーバテーマが適用されても良い。テーマ設定サービス１０８は、サーバフレームバッファ５０８を使用して、アプリケーションウィンドウ５０４をレンダリングする。アプリケーションウィンドウ５０４は、クライアント領域を有し、当該テーマ設定サービスは、フレームバッファを使用して、デフォルトボタン、チェックボックス等のウィンドウの共通パーツをレンダリングする。
【００４４】
リダイレクトサーフェスの決定に続いて、リダイレクトエージェント２１１が、クライアントコンピュータデバイスに通知を送信し、プロキシアプリケーションウィンドウのレンダリングのために当該リダイレクトサーフェスが使用される。図５に示されているように、クライアント１０６は、クライアントテーママネージャ１１２を備えて、（アプリケーションウィンドウ５０４に対応する）プロキシアプリケーションウィンドウ５０４’をレンダリングする。図５は、プロキシウィンドウ５０４’の非クライアント領域５０６’も示している。クライアントコンピュータデバイス１０６は、クライアントフレームバッファ５１０にプロキシウィンドウ５０４’をレンダリングする。クライアントフレームバッファ５１０は、他のアプリケーションウィンドウ５１２を備えていてもよい。他のアプリケーションウィンドウ５１２は、ローカルクライアントアプリケーション３０８に対応していてもよい。プロキシウィンドウ５０４’及びアプリケーションウィンドウ５１２の両方は、各々の非クライアント領域を有している（ハッチング領域として示されている）。本明細書において説明されるシステム及び方法は、プロキシウィンドウ５０４’及びアプリケーションウィンドウ５１２を、当該２つのウィンドウに同一の視覚的外観を付与することによってシームレスに統合する。
【００４５】
図６は、リモートアプリケーションのローカルテーマ設定のための例示の方法６００を示している。当該方法が記載されている順序は、限定するものとして理解されることを意図したものではない。任意の数の記載された方法ブロックは、任意の順序で組み合わされて当該方法を実行してもよいし、代替の方法が実行されてもよい。加えて、個々のブロックは、本明細書に記載された発明の趣旨及び範囲から逸脱することなく当該方法から削除することができる。さらに、当該方法は、任意の適切なハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせにおいて実行され得る。
【００４６】
ブロック６０２において、リダイレクトサーフェスは、クライアント（例えばクライアント１０６）によって実行を開始されるリモートアプリケーションに対応して、サーバにおいて形成される。１つの実装例において、サーバ１０２は、サーバアプリケーションウィンドウに対応するリダイレクトサーフェスを決定（形成）する。当該リダイレクトサーフェスは、図５のようにサーバフレームバッファ５０８の一部として説明されているが、テーマ設定サービス１１０によってかつ当該アプリケーション自体によってレンダリングされる際には、アプリケーションウィンドウを含むであろう。
【００４７】
ブロック６０４において、クライアントテーママネージャ１１０が、ローカルテーマ設定（例えば、クライアントテーマメトリクス及びテーマパーツ）に関してクエリされる。特に、クライアントデスクトップウィンドウマネージャ３０６は、クライアントテーママネージャ１２０にクライアントテーマ設定に関してクエリする。テーマ設定は、テーマメトリクス等、非クライアント領域の寸法、形状またはサイズ等、ぼかし技術等を含んでもよい。このことは、サーバ１０２及びクライアント１０６におけるプロキシウィンドウ５０４’に関するテーマの重複を防止する。クエリに対する応答において、クライアントテーママネージャ１１２は、サーバテーマ設定サービス１１０にテーマメトリクスを送信する。上述したように、テーマメトリクスは、任意のウィンドウに関するフレーム５０４の寸法を含む。クライアントデスクトップウィンドウマネージャ１１４は、ビジュアルツリーを生成してこれを使用し、クライアントフレームバッファ５１０においてレンダリングされたアプリケーションウィンドウに関する表示情報及び構造情報を示す。この様な実施形態において、クライアントテーママネージャ１１０は、特性の設定に使用されるテーマメトリクスをビジュアルツリーの１または複数のノードに提供する。
【００４８】
ブロック６０６において、当該リダイレクトサーフェスのコンテンツは、クライアントテーマメトリクスに基づいてサーバにおいてレンダリングされる。テーマ設定サービス１０８は、当該テーマメトリクス及びテーマパーツをクライアントテーママネージャ１１０から受信して使用する。非クライアント領域に関しては、サーバテーマを使用しないかまたは最小限のＧＤＩテーマを使用する。クライアント領域の共通パーツに関しては、完全なＧＤＩテーマを使用して、リダイレクトサーフェスのコンテンツをレンダリングする。テーマ設定サービス１０８は、当該テーマメトリクス及びテーマパーツを使用して、テーマ無し非クライアント領域をレンダリングし、テーマパーツを使用してアプリケーションウィンドウ５０４のクライアント領域内の共通コントローラをレンダリングする。
【００４９】
図５に示されているように、非クライアント領域５０６は、サーバテーマに対応していないか、または最小限のＧＤＩテーマに対応している。アプリケーションウィンドウ５０４のハッチング無しの部分内に示されているクライアント領域は、クライアントからのテーマメトリクス及びテーマパーツを使用してレンダリングされる。アプリケーション（サーバアプリケーション２０８、クライアントアプリケーション３０８等）が実行されている場合、デスクトップウィンドウマネージャ（例えば、クライアントデスクトップウィンドウマネージャ３０６、サーバデスクトップウィンドウマネージャ２０６）は、当該アプリケーションによってコールされ、対応するアプリケーションウィンドウのコンテンツのスクリーンへの最終レンダリングを実行することが理解されるであろう。
【００５０】
アプリケーションウィンドウのレンダリングのために要求される実行命令は、デスクトップウィンドウマネージャかまたはアプリケーションによってアクセスされるダイナミックリンクライブラリ（ＤＬＬ）内に保存されてもよい。（テーマ設定サービス内へのコール後にＤＬＬによって明らかにされる）パラメータのセットは、クライアント領域の表示を決定づけ、システムメトリクスと称される。非クライアント領域は、テーマ設定（例えば、テーマメトリクス及びテーマパーツ）によって支配され、当該テーマ設定は、所望の視覚的外観に従ってシステムメトリクスに優先する（上書きされる）。テーマ設定サービス１０８は、非クライアント領域５０６に対してサーバテーマをレンダリングせず、かつサーバ１０２の現在選択されているメトリクス及びパーツに従ってクライアント領域内の共通パーツをレンダリングする。デスクトップウィンドウマネージャ２０６は、クライアントシームレスウィンドウマネージャ３１４に、アプリケーションウィンドウ５０４のレンダリングされたコンテンツを伝送する。
【００５１】
ブロック６０８において、ローカルクライアントテーマ設定に加えて、レンダリングされたリダイレクトサーフェスのコンテンツがクライアントに使用され、リモートアプリケーションに対応するプロキシウィンドウをレンダリングする。１つの構成例において、クライアントシームレスウィンドウマネージャ３１４は、当該リダイレクトサーフェスのレンダリングされたコンテンツを受信して、符号５０４’内のハッチング無し領域として示されているプロキシウィンドウ５０４’上にクライアント領域を再レンダリングする。非クライアント領域５０６’は、クライアントテーマ設定に基づいてクライアントフレームバッファ５１０上にローカルにレンダリングされる。代替実施形態において、当該ローカルクライアントテーマ設定は、クライアント１０６のユーザによって変更され得る。このような実施形態において、クライアント１０６におけるテーマメトリクス及びテーマパーツ（ウィンドウのフレームの寸法、非クライアント領域の寸法等）の対応する変化は、サーバ１０２に伝送される。このような伝送は、時刻の同期化のようなグローバルなイベントとして発生する。サーバ１０２は、ブロック６０６において、変更されたテーマメトリクスに基づいてリダイレクトサーフェスを再度レンダリングすることによってこの様な変更に対応する。
【００５２】
結言
上述の方法及びシステムは、リモートアプリケーションのローカルテーマ設定に関する。本発明は、構造特徴及び／または方法論的な動作に特化した用語で説明されているが、添付の特許請求の範囲において画定されている本発明は、説明された特定の特性または動作に必ずしも限定されないことが理解されるであろう。特定の特徴及び動作は、本発明の実施例として説明されているだけである。
【図１】
2010524081.tif 000003
【図２】
2010524081.tif 000004
【図３】
2010524081.tif 000005
【図４】
2010524081.tif 000006
【図５】
2010524081.tif 000007
【図６】
2010524081.tif 000008
【国際調査報告】
2010524081.tif 000009
2010524081.tif 000010