(57)【要約】  特殊なリモートプロトコルを使用して通信を支援する拡張されたリモートプロトコルプラットホームを含むクライアント装置。ソフトウェアおよびハードウェアプラッフォームに依存しないマイクロコアまたはコアは、クライアント装置において、遠隔通信を支援するアプリケーションにインタフェースを提供する。マイクロコアを、クライアント装置が必要とする付加的な機能またはサービスを含むように拡張することができる。
2009506717.tif 000002
【特許請求の範囲】
【請求項１】
リモートプロトコルを支援するリモートクライアント装置においてアプリケーションプログラムのインタフェースを表示させる方法であって、
前記リモートプロトコルに基づくリモートプロトコルプラットホームを支援するサービスの拡張セットを定義すること、
前記サービスの拡張セットを支援するアプリケーションプログラムのインタフェースを作成すること、および、
前記アプリケーションプログラムのインタフェースを前記リモートクライアント装置にあるレジデントアプリケーションに表示させること
を備えることを特徴とする方法。
【請求項２】
前記定義されたサービスのセットは、グラフィックインタフェーシング、ネットワークインタフェーシング、入力インタフェーシング、システムインタフェーシング、およびセキュリティインタフェーシングのうちの１または複数のサービスを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記アプリケーションプログラムのインタフェースを作成することは、リモートクライアント装置に対してプラットホームに依存しないプラットホーム抽象化レイヤ（ＰＡＬ）を作成することを含み、各々のＰＡＬは、前記サービスのセットの特殊な機能を提供することを特徴とする請求項１に記載の方法。
【請求項４】
前記各々のＰＡＬは、グラフィックインタフェーシング、ネットワークインタフェーシング、入力インタフェーシング、システムインタフェーシング、およびセキュリティインタフェーシングのうちの一つを提供することを特徴とする請求項３に記載の方法。
【請求項５】
前記アプリケーションプログラムのインタフェースを作成することは、コアインタフェースを作成することを含み、該コアインタフェースの機能は、表示をおこなうコンポーネントの制御、およびリモートプロトコルセッションを確立するためのメカニズムの提供のうちの１または複数を含むことを特徴とする請求項１に記載の方法。
【請求項６】
付加的なインタフェースを提供することによってリモートプロトコルプラットホームを拡張し、前記リモートプロトコルによって支援される付加的な機能を支援することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記アプリケーションプログラムのインタフェースをマイクロコアコンポーネントに通信し、前記マイクロコアコンポーネントは、前記アプリケーションプログラムのインタフェースを前記レジデントアプリケーションに表示させることをさらに備えることを特徴とする請求項１に記載の方法。
【請求項８】
クライアント装置において拡張リモートプロトコルプラットホームを提供する方法であって、
前記スケールリモートプロトコルプラットホームで提供される機能を定義すること、
各々の機能を支援するためにクライアント装置のプラットホームに依存しないインタフェースおよびプログラム抽象化レイヤ（ＰＡＬ）を提供することであって、マイクロコアは、インタフェースおよびＰＡＬを介して前記クライアント装置にあるアプリケーションと通信すること、および、
前記拡張リモートプロトコルプラットホームを提供するために、前記インタフェース、前記ＰＡＬ、および前記マイクロコアをグループ化すること
を備えることを特徴とする方法。
【請求項９】
前記機能を定義することは、最小セット機能に基づいて、特殊なリモートプロトコルを使用して通信を支援することを特徴とする請求項８に記載の方法。
【請求項１０】
前記機能を定義することは、特殊なリモートプロトコルによって提供されるサブセット機能に基づくことを特徴とする請求項８に記載の方法。
【請求項１１】
前記インタフェースおよびＰＡＬを提供することは、グラフィックインタフェーシング、ネットワークインタフェーシング、入力インタフェーシング、システムインタフェーシング、およびセキュリティインタフェーシングのうちの１または複数を提供することを含むことを特徴とする請求項８に記載の方法。
【請求項１２】
付加的な機能が必要か否かを判定すること、および前記必要な機能を支援するためにインタフェースを作成することをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１３】
フルクライアントインタフェースを介して前記拡張リモートプロトコルプラットホームを使用してサーバコンピュータと通信することをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１４】
クライアント装置であって、
プロセッサと、
前記プロセッサによって制御されるフルクライアントリモートプロトコルプラットホームと、
前記フルクライアントリモートプロトコルプラットホームのなかに含まれるマイクロクライアントリモートプロトコルプラットホームと、
前記マイクロクライアントリモートプロトコルプラットホームによってアクセスされ、サービスの拡張機能セットを支援する１または複数のプラットホームに依存しないインタフェースであって、前記マイクロクライアントリモートプラットホームは、前記インタフェースを前記クライアント装置にあるアプリケーションに表示させるインタフェースと
を備えたことを特徴とするクライアント装置。
【請求項１５】
前記フルクライアントプロトコルプラットホームは、前記フルクライアントリモートプロトコルプラットホームおよび前記マイクロクライアントリモートプロトコルプラットホームによる通信に対するフルクライアントインタフェースを含むことを特徴とする請求項１４に記載のクライアント装置。
【請求項１６】
前記マイクロクライアントは、ハードウェアおよびソフトウェアプラットホームに依存しないマイクロコアを含むことを特徴とする請求項１４に記載のクライアント装置。
【請求項１７】
１または複数のインタフェースは、グラフィックインタフェーシング、ネットワークインタフェーシング、入力インタフェーシング、システムインタフェーシング、およびセキュリティインタフェーシングのうちの一つを支援する１または複数のプラットホーム抽象化レイヤを含むことを特徴とする請求項１４に記載のクライアント装置。
【請求項１８】
前記フルクライアントリモートプロトコルプラットホームは、前記フルクライアントリモートプロトコルプラットホームおよび前記マイクロクライアントリモートプロトコルプラットホームによる通信に対するフルクライアントインタフェースを含むことを特徴とする請求項１４に記載のクライアント装置。
【請求項１９】
前記クライアント装置は、組み込み装置であることを特徴とする請求項１４に記載のクライアント装置。
【請求項２０】
付加的なサービスを支援する付加的なインタフェースを含んだ拡張コアをさらに備えたことを特徴とする請求項１４に記載のクライアント装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、拡張可能な機能セットを有する可搬型遠隔装置に関する。
【背景技術】
【０００２】
本願は、２００５年８月３１日に出願された米国仮出願第６０/７１２,９９４号を基礎とする米国特許法１１９条（e）項の優先権を主張し、その開示内容は本明細書に組み込まれる。
【０００３】
リモートクライアントアクセスプラットホームおよびシステムは、アプリケーションサーバまたはサーバ（サーバコンピュータ）にあり、これらのサーバによってホストされるアプリケーションプログラムからのデータに、コンピューテイング装置が遠隔的にアクセスできるようにする。クライアント装置は、パーソナルコンピュータ、パーソナル通信装置（例えば、携帯電話）、セットトップボックス、ゲーム機、テレビなどを含むことができる。
【０００４】
テレビ型クライアント装置などの特定のクライアント装置の場合、サーバコンピュータとクライアント装置との間の通信は、サーバコンピュータからのデータまたは情報の受信のみを伴う。他のクライアント装置の場合、サーバコンピュータとクライアント装置との間で、重要な双方向の通信ができる。ここでのクライアント装置は、サーバコンピュータにデータまたは情報を送信するコンピュータ装置（例えば、パーソナルコンピュータ）である。さらに、グラフィックデータなどのデータまたは情報の品質は、クライアント装置によって異なる。例えば、無線ネットワーク上の携帯電話では、ブロードバンドネットワーク上のパーソナルコンピュータに送信されるのと同量のグラフィック情報を必要としないまたは処理することができない。
【０００５】
サーバコンピュータとクライアント装置との間の通信は、典型的にはリモートデータプロトコルすなわちＲＤＰなどの通信プロトコルの使用を伴う。インターネットプロトコル（ＴＣＰ／ＩＰ）上の伝送制御プロトコルなどの低レベルのネットワークプロトコルもこれに伴う。通信プラットホームは、特殊な通信プロトコルを支援するためにクライアント装置において提供される。ＲＤＰ通信を支援するために特別に装備されたクライアント装置は、ＲＤＰクライアントと呼ばれる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＲＤＰクライアントなどの特定のプロトコル用の通信プラットホームを支援するクライアント装置は、その可搬性および拡張性に制限がある。可搬性の制限については、特定のプロトコル用のクライアント装置を、他のオペレーティングシステム（例えば、ソフトウェアプラットホーム）および／またはハードウェアプラットホームによって支援すねことができない。拡張性の制限については、拡張機能セットまたは縮小機能セットを専用のクライアント装置に提供する必要性を含む。上記のとおり、特定のクライアント装置は、サーバコンピュータへの返信、豊富なグラフィック（例えば、典型的にはパーソナルコンピュータに送信されるグラフィック情報）などの特殊な機能セットを支援する必要がないまたは支援することができない。
【０００７】
専用のクライアント装置に対する特殊なプロトコルを支援するためには、通常、通信プラットホームは、クライアント装置を支援するように変更される。例えば、通信プラットホームのコードベースは、専用のクライアント装置を支援するために大きく変更される場合がある。さまざまな要求および処理資源を有するクライアント装置が多数あるために、これらのさまざまなクライアント装置に対応する通信プラットホームの変更は、かなりの費用になる。その上、このような変更をおこなうためにコードベースを提供することは、そのコードベースの所有者が、所有する情報を第三者に提供してしまうことにもなりかねない。
【課題を解決するための手段】
【０００８】
リモートプロトコルプラットホームに対する機能またはサービスの拡張されたセットは、複合的なのクライアント装置のために定義され、特にクライアント装置で実施される。リモートプロトコルプラットホームは、特殊なリモートプロトコルに基づく。アプリケーションプログラムインタフェース（インタフェース）は、各々の機能またはサービスを支援するために作成される。コンポーネントは、インタフェースと通信し、そしてそれらのインタフェースをクライアント装置にあるアプリケーションに表示させ、特殊なリモートプロトコルに基づいたリモート通信を可能にする。
【０００９】
本発明の開示は、簡略化した形式で、概念の一つの選択を提示するために提供され、以下の詳細な説明にさらに記載されている。本発明の開示は、請求された発明の対象の主要な機能または本質的な機能を明らかにする意図のものではなく、請求された発明の対象の範囲を決定する目的として使用される意図のものでもない。
【発明を実施するための最良の形態】
【００１０】
本詳細な説明は、添付図を参照して記載される。図については、参照番号の最も左端にある数字は、最初に表す参照番号と同じである図の番号を示す。別の図の中での同じ参照番号の使用は、類似の項目または同一の項目を示す。
【００１１】
図１は、模範的なサーバクライアントシステム１００を示す。システム１００は、サーバコンピュータ１０２およびクライアント装置１０４によって代表される１または複数のクライアント装置を含む。クライアント装置１０４は、デスクトップおよびラップトップなどのパーソナルコンピュータ（ＰＣ）、携帯端末および携帯電話などのパーソナルコンピューティング装置、および、ゲーム機、セットトップボックスおよびテレビなどのマルチメディア装置を含む。サーバコンピュータ１０２およびクライアント装置１０４は、インターネットを含む１または複数のネットワークを含んだネットワーク１０６によって接続される。サーバコンピュータ１０２およびクライアント装置１０４は、リモートデータプロトコルすなわちＲＤＰなどの通信用の特殊なリモートプロトコルを使用するように構成されている。クライアント装置１０４は、典型的には完全な機能をもつリモートプロトコルプラットホームによって支援される拡張サブセット機能または最小のサブセット機能を含んだリモートプロトコルプラットホームを含む。言い換えれば、クライアント装置１０４の種類または能力にかかわらず、クライアント装置１０４は、リモートプロトコルを支援する最小のサブセット機能を含む。以下論じる通り、リモートプロトコルの付加的な機能または「完全な機能」をもつプロトコルプラットホームを要求するクライアント装置は、拡張コアおよびインタフェースによって支援される。
【００１２】
サーバコンピュータ１０２は、中央処理装置またはプロセッサ１０８およびメモリ１１０を含む。サーバコンピュータ１０２では、オペレーティングシステム１１２および１または複数のアプリケーションプログラムまたはアプリケーション１１４をさらに含む。サーバコンピュータ１０２は、リモートプロトコルネゴシエータ１１６およびエンコーダ１１８も含む。プロトコルネゴシエーター１１６は、特殊なリモートプロトコルに基づくサーバコンピュータ１０２とクライアント装置１０４との間の通信を支援するように構成されている。さらに、使用される特殊なリモートプロトコルは、情報を表すデータパケットの提供および／またはデータの符号化を伴う。エンコーダ１１８を用いて、サーバコンピュータ１０２からクライアント装置１０４へ通信パケットをパッケージし、または構築することができる。
【００１３】
クライアント装置１０４は、中央処理装置またはプロセッサ１２０およびメモリ１２２を含む。クライアント装置１０４は、オペレーティングシステム１２４、および１または複数のアプリケーションプログラムまたはアプリケーション１２６も含む。クライアント装置１０４は、サーバコンピュータ１０２にインタフェースまたは通信を提供するフルクライアント１２８をさらに含む。特に、フルクライアント１２８は、特殊なリモートプロトコルを使用して通信を支援するコンポーネントまたはプロトコルプラットホームとして実施することができる。フルクライアント１２８は、縮小機能セットのマイクロクライアント１３０を含む。一般的に、マイクロクライアント１３０は、特にクライアント装置１０４用に組み込まれていて、複合的なソフトウェアプラットホームおよびハードウェアプラットホーム（例えば、プラットホームに依存しない）を支援するための可搬性、リモートプロトコルを支援する最小のサブセット機能を含むスケーラビリティ、およびマイクロクライアント１３０によって提供される機能を超える追加的に必要な機能を提供するための拡張性を有している。以下論じる通り、マイクロクライアント１３０およびインタフェースなどの拡張装置はいずれも、フルクライアント１２８に含まれている。
【００１４】
図２は、フルクライアント１２８およびマイクロクライアント１３０を含むクライアント装置１０４をさらに図示したブロック図である。クライアントコンピュータ１０４は、フルクライアントユーザインタフェース２００をさらに含んだフルクライアント１２８を含む。フルクライアントユーザインタフェース２００は、どのような通信機能がマイクロクライアント１３０に提供されるかどうかにかかわらず、特にサーバコンピュータ（例えば、サーバコンピュータ１０２）と通信するために使用できる。言い換えれば、クライアント装置１０４が、単にマイクロクライアント１３０によってまたは複合的な拡張（例えば、インタフェース）を有する完全な機能セットのリモートプロトコルプラットホームによって支援される縮小機能セットであるかどうかについて、インタフェースに関しては差異がない。グラフィックに限った特定の場合において、ユーザインタフェースは、入力が支援されない場合に実施されると考えられる。このような場合に、ユーザインタフェースは、入力を支援するクライアントとは異なる。
【００１５】
マイクロクライアント１３０は、複合的な装置に適用できる共通の抽象化レイヤ（ＰＡＬ）を含む。ＰＡＬ２０２は、ＲＤＰプラットホームなどのリモートプロトコルプラットホームのサービスを支援する定義されたインタフェースの共通セットである。ＰＡＬＳ２０２に含まれる例示的なＰＡＬは、以下の通りである。
【００１６】
ＰＡＬ２０２は、マイクロコア２０４とインタフェースすることができる。あるいはもう一つの考えとして、マイクロコア２０４は、ＰＡＬ２０２をアプリケーションまたはアプリケーションプログラムに表示させることができる。マイクロコア２０４は、リモートプロトコルプラットホームの専用サービスに対してＰＡＬ２０２に依存し、例えば、例示的なＰＡＬを参照して以下の通りである。マイクロコア２０４（またはマイクロクライアント１３０）は、アプリケーションではないかもしれないが、アプリケーションに組み込まれたコンポーネントとなり得る。例えば、マイクロコア２０４は、マルチメディアアプリケーションの一部とすることができる。
【００１７】
マイクロコア２０４は、クライアント装置によって使用される共通の機能を含む。この例として、マイクロコア２０４は、サーバコンピュータ（例えば、サーバコンピュータ１０２）へのデータを圧縮するのに使用する圧縮サービス２０６、およびサーバコンピュータ（例えば、サーバコンピュータ１０２）へのデータまたはデータパケットを符号化する符号化サービス２０８を含んでいる。マイクロコア２０４によって提供されるその他の機能としては、リモートプロトコルの接続の確立、スクリーンデータ転送およびブロック転送を含んだ最小セットのリモートプロトコルグラフィック（例えば、ＲＤＰグラフィック）のレンダリング、キーボードまたはマウスなどの入力装置からの入力データまたはイベントの送信、および仮想チャンネルを介してのデータの有効化および送信を含む。仮想チャンネルプラグ‐イン２１０は、特に仮想チャンネル通信に提供される。
【００１８】
一般的に、マイクロコア２０４は、特殊なリモートプロトコルによって提供される拡張されたセット機能（例えば、拡張機能セット）を提供する。拡張機能セットは、異なったクライアント装置によって使用される共通ものである。例えば、拡張機能セットは、特に商業用に組み込まれたクライアント装置（例えば、テレビ）、または、異なったソフトウェア能力および異なったハードウェア能力を提供するクライアント装置である。
【００１９】
ＰＡＬ２０２をアプリケーション（例えば、クライアントコンピュータ１０４の中にあるアプリケーション１２６）に表示させることに加えて、マイクロコア２０４は、他のアプリケーションプログラムのインタフェース（ＡＰＩ）にも表示させることができる。このＡＰＩは、ＡＰＩ２１２をホストするマイクロコアによって表されて、マイクロコア２０４の制御、および、リモートプロトコルセッションの多数のプロパティ（例えば、色調や解像度）を設定する能力を含んだ、リモートプロトコルセッションを確立するまたは切断するメカニズムを提供するための最高レベルのＡＰＩを含むことができる。別のＡＰＩは、アプリケーションまたはアプリケーションレイヤが、マイクロコア２０４内部での重要な状態変化と見なす通知を受信することが可能なインタフェースを含んでいる。状態変化の例としては、連続した接続または不連続な接続、切断、および自動再接続を含む。
【００２０】
マイクロコア２０４は、ソフトウェアプラットホームに依存せず、およびハードウェアプラットホーム依存しないが、ＰＡＬ２０２を介した基本的なインタフェースまたは共通のインタフェースおよび上述した共通のＡＰＩを提供することによって可搬性をもつことができる。上述したＡＰＩおよびＰＡＬ２０２は、クライアント装置のハードウェアプラットホームおよびソフトウェアプラットホームにかかわらず、クライアント装置に共通である。したがって、可搬性は、多様なハードウェアプラットホームおよびソフトウェアプラットホームによって超越されるまたはアクセスが可能なＡＰＩおよびＰＡＬ２０２の共通の機能セットの中にある共通のコードベースから生じる。ある実施例においては、マイクロコア２０４は、その機能性を拡張するために拡張性ポイントを提供し、特殊なオペレーティングシステムの機能を提供する能力を有するが、プラットホームに依存しない方法で、マイクロコア２０４に対する小さなサブセットの機能を提供する。
【００２１】
以下は、ＰＡＬ２０２に含まれる例示的なＰＡＬについてである。ＰＡＬ２０２は、少ないＰＡＬおよび／または多様なＰＡＬを含むことができることを理解されたい。さらに、他のＡＰＩまたはインタフェースは、マイクロコア２０４によって表示される。
【００２２】
入力ＰＡＬ２１４は、入力ソースに対する抽象化である。ハードウェアによって生成される入力イベントは、入力ＰＡＬ２１４によって供給され、マイクロコア２０４に送信されて、リモートプロトコルを介してサーバコンピュータ（例えば、サーバコンピュータ１０２）に送信される。マイクロコア２０４は、入力イベントをサーバコンピュータに送信することは認識するが、そのイベントのどのように作成されるかについて関与していない。
【００２３】
仮想チャンネルは、マイクロコア２０４にあるプラットホームに依存しない方法で実施される。しかし、仮想チャンネルプラグ‐イン２１０は、プラットホームに依存しない。特に、仮想チャンネルプラグ‐イン２１０がロードされた方法では、プラットホームに依存しない。もし仮想チャンネルプラグ‐イン２１０が動的にロードされた場合、ローディングは、動的コードをロードするオペレーティングシステムのメカニズムに依存する。仮想チャンネルのＰＡＬ２１６は、マイクロコア２０４にインタフェースを提供し、仮想チャンネルプラグ‐イン２１０を列挙し、ロードする。さらに、仮想チャンネルのＰＡＬ２１６は、仮想チャンネルのトラフィック用のメカニズムを提供し、専用のスレッドを通過する。
【００２４】
グラフィックＰＡＬ２１８は、マイクロコア２０４に、復号されたリモートプロトコルグラフィックのデータのレンダリングを可能にさせるインタフェースである。グラフィックＰＡＬ２１８は、描画表面に適用できる描画操作のセットを提供する。描画表面は、物理的なディスプレイ（例えば、モニタ）、プリンタ、またはメモリバッファへの入力を含む「出力ディスプレイ」に対する抽象化である。グラフィックＰＡＬ２１８の描画動作の一例として、「１０×１０ピクセル、およびＸ＝５０、Ｙ＝７５に位置する青色の長方形を描く」が挙げられる。
【００２５】
ネットワークＰＡＬ２２０は、ネットワーク通信に対する抽象化である。マイクロコア２０４は、接続を確立するためにネットワークＰＡＬ２２０に依存し、サーバコンピュータ（例えば、サーバコンピュータ１０２）と共にデータをあちこちに送信する。実際のネットワーク通信プロトコルは、マイクロコア２０４から抽出される。マイクロコア２０４は、接続、切断およびデータの送受信を認識することができる。実行可能なネットワークＰＡＬ２２０の実施は、ＴＣＰ（Transmission Control Protocol）、ＳＳＬ（Secure Sockets Layer）、および／またはシリアルプロトコルを使用できる。
【００２６】
システムＰＡＬ２２２は、プラットホームに依存しないオペレーティングシステムＡＰＬである。システムＰＡＬ２２２は、メモリの管理、ロッキング、タイマー、スレッドなどの機能を含んでいるが、これらに限定されない。一般的に、マイクロコア２０４は、オペレーティングシステム段階のサービスに対してシステムＰＡＬ２２２に依存している。セキュリティＰＡＬ２２４は、マイクロコア２０４が、リモートプロトコルのセキュリティおよび許可レイヤを実施するために使用する多数のセキュリティ機能に対する抽象化である。
【００２７】
拡張性は、マイクロクライアント１３０で提供されるＡＰＩおよびＰＡＬ２０２の共通の機能セットで提供されるものに比べてより拡充したすなわち付加的なプラットホームの必需品（例えば、ソフトウェア、ハードウェア、通信プラットホーム）を有する装置を支援するためのものである。特殊なプラットホームの固有のプロパティの拡張性を支援するためには、フルクライアント１２８は、特殊な拡張インタフェースを提供する、ホスティング拡張アプリケーションプログラムインタフェース（ＡＰＩ）２２６を含む。さらに、特殊な必需品または完全な機能セットに専用のＰＡＬは、リモートプロトコルの拡張ＰＡＬ２２８を介して提供される。特定の場合においては、専用のグラフィックの実行およびＡＰＩ２３０を提供することができる。
【００２８】
拡張コア２３２は、拡張ＡＰＩ２２６のホスト、リモートプロトコルの拡張ＰＡＬ２２８、および、グラフィックの実行およびＡＰＩ２３０を表示させるために実施される。一実施例においては、拡張コア２３２は、マイクロコア２０４およびいずれのプラットホームに依存しない拡張装置（例えば、ＰＡＬ２０２）も含むことができる。
【００２９】
通信または多様なインタフェース、ＰＡＬ２０２、ＰＡＬＳ２２８を介して通信されるデータ／情報は、特殊なリモートプロトコルを専用に支援するために提供されるリモートプロトコルＰＡＬインプリメンテーション２３４と言及されるコンポーネントを介して処理される。リモートプロトコルＰＡＬインプリメンテーション２３４は、特殊なインタフェース（例えば、ＰＡＬ）へのＡＰＩのコールストリームを受信する。リモートプロトコルＰＡＬインプリメンテーション２３４から通信されるデータ／情報は、リモートプロトコルチャンネル２３８に代表されるように、安全なソケットレイヤまたは他のチャンネルを通って通信される。リモートプロトコルチャンネル２３８も、サーバコンピュータ（サーバコンピュータ１０２）へのチャンネルを表す。リモートプロトコルレイヤ２３６は、データ／情報が通信される特殊なリモートプロトコルを表す。例えば、リモートプロトコルレイヤは、ＲＤＰレイヤである。
【００３０】
図３は、アプリケーションプログラムインタフェース（ＡＰＩ）を提供するまたは表示させるプロセス３００を示す。プロセス３００は、マイクロコアを介してクライアント装置において実施される。プロセス３００は、論理フローグラフにおけるブロックの集合として図示され、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせのなかで実施することのできる一連の動作を表す。ソフトウェアの文脈において、ブロックは、１または複数のプロセッサによって実行される時に、列挙された動作を実行するというコンピュータの命令を表す。フローチャートとして記載されているにもかかわらず、特定のブロックは、同時にまたは異なった順番で起きると考えられる。プロセス３００は、他の構成によって実施されるが、例えば、図１のシステム１００、クライアント装置１０４およびマイクロコア２０４によって実施することができる。
【００３１】
ブロック３０２においては、プラットホームに依存するサービスのコアセットが定義されている。これらのサービスは、グラフィックインタフェーシング、ネットワークインタフェーシング、装置からの入力インタフェーシング、チャンネル（例えば、仮想チャンネル）、ハードウェアシステムおよび／またはオペレーティングシステムおよびセキュリティを含むことができる。依存サービスのコアセットは、特殊なリモートプロトコルおよびリモートプロトコルプラットホームを実施するいずれのクライアント装置によっても使用できるように見なされている。
【００３２】
ブロック３０４においては、十分に定義されたインタフェースまたはプラットホーム抽象化レイヤ（ＰＡＬ）が作成される。各々のＰＡＬは、ブロック３０２において定義されるように、特殊なプラットホームに依存するサービスを支援する。例えば、グラフィックを支援するＰＡＬ、ネットワークインタフェーシングを支援するＰＡＬ、システムを支援するＰＡＬ、およびセキュリティを支援するＰＡＬがある。
【００３３】
ブロック３０６においては、他のコアインタフェースを、必要に応じて作成することができる。これらのコアインタフェースは、ブロック３０４において作成されるＰＡＬに付加される。これらのインタフェースの例として、提供する機能は、マイクロコア２０４などのコンポーネントの制御、およびリモートプロトコルセッションの多数のプロパティを設定する能力を含んだリモートプロトコルセッションの確立および切断を行うメカニズムの提供のための最高レベルのＡＰＩを含む。もう一つのインタフェースは、アプリケーションまたはアプリケーションレイヤに、コンポーネント（例えば、マイクロコア２０４）内部で重要な状態変化と見なす通知を受信することを可能にさせるＡＰＩとすることができる。状態変化の例では、連続接続または不連続接続、切断、および自動再接続を含む。
【００３４】
ブロック３０８においては、ＰＡＬおよびインタフェースは、コンポーネントまたはマイクロコア（例えば、マイクロコア２０４）へ通信しまたは利用可能にする。マイクロコアは、プラットホームに依存せず、異なったハードウェアプラットホームおよびソフトウェアプラットホームによって使用されるまたはそれらに移植されることを意味する。言い換えれば、ＰＡＬおよびインタフェースは、クライアントがプラットホーム（ハードウェアプラットホームおよびソフトウェアプラットホーム）依存しなくなることを可能にする。
【００３５】
ブロック３１０においては、マイクロコアは、ＰＡＬを含むインタフェースをクライアント装置の中のアプリケーションに表示させる。アプリケーションは、キーボード、マウス、出力ディスプレイなどの入力装置および出力装置を支援するアプリケーションプログラムを含む。
【００３６】
ブロック３１２においては、特殊なリモートプロトコルプラットホームのなかに見られる付加的機能または完全な機能セットを支援するために、付加的なインタフェースおよびＰＡＬが提供される。インタフェースおよびＰＡＬの付加は、効果的にマイクロコアの機能性を拡張させる。
【００３７】
図４は、リモートリモートプロトコルに対する拡張された機能セットおよび拡張可能な機能セットを提供するプロセス４００を示す。プロセス４００は、リモートプロトコルを使用して、サーバコンピュータへ通信するクライアント装置において実施される。プロセス４００は、論理フローグラフの中のブロックの集合として図示され、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせのなかで実施することのできる一連の動作を表す。ソフトウェアの文脈において、ブロックは、１または複数のプロセッサによって実行される時に、列挙された動作を実行するというコンピュータの命令を表す。フローチャートとして記載されているにもかかわらず、特定のブロックは、同時にまたは異なった順番で起きると考えられる。プロセス４００は、他の構成によって実施されるが、例えば、図１のシステム１００、クライアント装置１０４によって実施することができる。
【００３８】
ブロック４０２においては、特殊なリモートプロトコルに対する拡張された機能セットが定義される。リモートプロトコルを支援するプロトコルプラットホームは、もっとも単純なクライアント装置が必要とするものよりも多くの機能を含んでいると予想される。従って、拡張された機能セットは、リモートプロトコルプラットホームに関しては、最小の資源容量および機能セットの必需品を有するクライアント装置を支援する最小機能のサブセットである。サブセット機能は、特殊なリモートプロトコルによって提供される完全な機能から選択される。
【００３９】
ブロック４０４においては、拡張された機能セットを支援するプラットホーム抽象化レイヤ（ＰＡＬ）およびインタフェースが提供される。特に、ＰＡＬおよびインタフェースは、マイクロコアを介してアプリケーションとの通信に使用される。各々のＰＡＬは、リモートプロトコルプラットホームの一部として特殊なサービスを支援するためのものである。ＰＡＬによって支援されるまたは提供されるサービスの例では、グラフィックインタフェーシング、ネットワークインタフェーシング、入力インタフェーシング、システムインタフェーシング、およびセキュリティインタフェーシングを含む。ＰＡＬは、プラットホームに依存するサービスに専用であるが、インタフェースとＰＡＬ、特にマイクロコアは、多様なハードウェアプラットホームおよびソフトウェアプラットホームを支援するかまたはそれらへ移植することができる。ＰＡＬの統合またはグループ化、インタフェース、およびマイクロコアは、拡張されたリモートプロトコルプラットホームを構成する。
【００４０】
ブロック４０６においては、もしリモートプロトコルによって支援される付加的な機能が必要であれば、決定がなされる。付加的な機能は、マイクロコアを拡張することによって提供され、付加的なインタフェースおよびＰＡＬを加えることによって、拡張されたリモートプロトコルを提供する。
【００４１】
ブロック４０８においては、特殊なリモートプロトコルに基づくサーバコンピュータへの通信がおこなわれる。通信をおこなうためにマイクロコアが利用可能なインタフェースが作成される。通信は、完全な機能のクライアント装置に代表されるインタフェースを通過することができ、仮想チャンネルを含んだ１または複数のチャンネルを介することができる。
【００４２】
（結論）
上述した方法および装置は、クライアント装置において特殊なリモートプロトコルを使用した多様なプラットホームを支援する。本発明は、構造的な機能および／または方法論的な手法に特有な言語で記載しているが、添付の特許請求の範囲で定義された本発明は、記載された専用の機能または手法に必ずしも限定されるものではないことを理解されたい。むしろ、これらの専用の機能および手法は、請求された発明を実施する例示的な形式として開示される。
【図面の簡単な説明】
【００４３】
【図１】リモートプロトコルプラットホームのフルクライアント機能セットまたはマイクロクライアント機能セットを支援するサーバクライアントシステムの例示的な図である。
【図２】マイクロクライアントコンポーネントを含むフルクライアントコンポーネントを含んだクライアント装置の例示的な図である。
【図３】マイクロコアコンポーネントを介してプラットホームに依存しないアプリケーションプログラムのインタフェースを提供するプロセスを示したフローチャートである。
【図４】特殊なリモートプロトコルを支援するリモートプロトコルプラットホームの拡張された機能セットおよび拡張可能な機能セットを提供するプロセスを図示したフローチャートである。
【図１】
2009506717.tif 000003
【図２】
2009506717.tif 000004
【図３】
2009506717.tif 000005
【図４】
2009506717.tif 000006
【国際調査報告】
2009506717.tif 000007
2009506717.tif 000008