ネットワーク対応アプリケーションのためのハードウェアアクセラレーテッドグラフィックスを提供する方法であって、ホスト120上で提供されていないハードウェアアクセラレーテッドグラフィックスを必要とするネットワーク対応アプリケーション221を、前記ホスト120上で提供することと、前記ホスト120において、3Dグラフィックスレンダリングリソース141-144をブローカ150に接続するための3Dライブラリラッパー222を提供することと、前記ブローカ150において、前記3Dグラフィックスレンダリングリソース141-144についての要求を受信することと、最終的な2Dレンダリング済み画像を遠隔クライアント131に戻すために、前記ブローカ150が、利用可能な前記3Dグラフィックスレンダリングリソース141-144を評価し304、前記3Dグラフィックスレンダリングリソース141-144から選択された3Dグラフィックスレンダリングリソース141を前記3Dライブラリラッパー222に割り当てる305ことと、を含む方法。前記ネットワーク対応アプリケーション221は、前記ホスト120上の仮想マシン121で実行され、前記遠隔クライアント131によってアクセスされる、請求項1に記載の方法。前記ネットワーク対応アプリケーション221は、前記ホスト120上の端末サービスセッションで実行され、前記遠隔クライアント131によってアクセスされる、請求項1に記載の方法。前記3Dライブラリラッパー222及び前記選択された3Dグラフィックスレンダリングリソース141は、接続してグラフィカル呼び出しを送信することを含む、請求項1に記載の方法。前記遠隔クライアント131に転送するために、最終的なレンダリング済み画像を、前記選択された3Dグラフィックスレンダリングリソース141から前記3Dライブラリラッパー222に送信する307ことを含む、請求項1に記載の方法。前記3Dライブラリラッパー222が、前記3Dグラフィックスレンダリングリソース141-144に直接接続情報を提供することと、前記選択された3Dグラフィックスレンダリングリソース141が、最終的なレンダリング済み画像を前記遠隔クライアント131に直接送信する308ことと、を含む、請求項1に記載の方法。複数の前記3Dグラフィックスレンダリングリソース141-144は、1つ又は複数のホスト120上の複数の仮想マシン又は端末サービスセッション121-125が利用可能なネットワークコンピューティングアーキテクチャ内に設けられた仮想化グラフィックスサーバとして提供される、請求項1に記載の方法。前記ブローカ150が、前記3Dグラフィックスレンダリングリソース141-144を監視し405、リソース優先順位キュー409を更新する408ことを含む、請求項1に記載の方法。前記ブローカ150が、前記遠隔クライアント131についての直接接続情報が提供されているかどうかを判定する412ことと、前記遠隔クライアントについての直接接続情報が存在する場合には、前記選択された3Dグラフィックスレンダリングリソース141に、前記遠隔クライアント131との直接接続を行うように命令する413ことと、を含む、請求項1に記載の方法。前記ブローカ150が、前記選択された3Dグラフィックスレンダリングリソース141と前記遠隔クライアント131と間の直接通信と、前記3Dライブラリラッパー222を介した通信との間のモード変更要求を監視する454ことと、必要に応じてモードを変更することと、を含む、請求項1に記載の方法。3Dグラフィックス呼び出しを、前記3Dライブラリラッパー222と前記選択された3Dグラフィックスレンダリングリソース141との間の中立形式に修正することを含む、請求項1に記載の方法。グラフィックスレンダリングを前記ホスト120から分離することによって、プラットフォームに依存しないグラフィックスリソースの拡張性を可能にする、請求項1に記載の方法。ネットワーク対応アプリケーションのためのハードウェアアクセラレーテッドグラフィックスを提供するシステムであって、ホスト120上で提供されていないハードウェアアクセラレーテッドグラフィックスを必要とするネットワーク対応アプリケーション221と、前記アプリケーション221のための3Dライブラリラッパー222とを有するホスト120と、前記ホスト120とは独立に提供される1つ又は複数の3Dグラフィックスレンダリングリソース141-144と、最終的な2Dレンダリング済み画像を遠隔クライアント131に戻すために、前記1つ又は複数の3Dグラフィックスレンダリングリソース141-144から選択された3Dグラフィックスレンダリングリソース141を評価し304、これを前記アプリケーション221のための前記3Dライブラリラッパー222に割り当てる305ブローカ150と、を含むシステム。前記3Dライブラリラッパー222は、ライブラリ呼び出しを前記ブローカ150に向けるプロキシライブラリラッパーである、請求項13に記載のシステム。前記アプリケーション221は、前記ホスト120上の仮想マシン121で実行され、前記遠隔クライアント131によってアクセスされる、請求項13に記載のシステム。前記アプリケーション221は、前記ホスト上の端末サービスセッションで実行され、前記遠隔クライアント131によってアクセスされる、請求項13に記載のシステム。前記ブローカ150は、仮想化された3Dグラフィックスレンダリングリソースを評価し304、これをネットワーク対応環境内の複数のホスト120に割り当てる305、請求項13に記載のシステム。前記3Dライブラリラッパー222と前記選択された3Dグラフィックスレンダリングリソース141との間に、中立のグラフィカル呼び出しを送信する通信機構を含む、請求項13に記載のシステム。前記選択された3Dグラフィックスレンダリングリソース141から前記遠隔クライアント131への直接通信機構を含む、請求項13に記載のシステム。前記ブローカ150は、前記3Dグラフィックスレンダリングリソース141-144を監視し405、リソース優先順位キュー409を更新する408、請求項13に記載のシステム。前記ブローカ150は、前記遠隔クライアント131についての直接接続情報が提供されているかどうかを判定し412、前記遠隔クライアント131についての直接接続情報が存在する場合には、前記選択された3Dグラフィックスレンダリングリソース141に、前記遠隔クライアント131との直接接続を行うように命令する413、請求項13に記載のシステム。前記ブローカ150は、前記選択された3Dグラフィックスレンダリングリソース141と前記遠隔クライアント131との間の直接通信と、前記3Dライブラリラッパー222を介した通信との間のモード変更要求を監視し454、必要に応じてモードを変更する、請求項13に記載のシステム。グラフィックスレンダリングを前記ホスト120から分離することによって、プラットフォームに依存しないグラフィックスリソースの拡張性を可能にする、請求項13に記載のシステム。前記遠隔クライアント131はシンクライアントであり、前記システムは複数の接続プロトコルをサポートする、請求項13に記載のシステム。前記遠隔クライアント131は、前記選択された3Dグラフィックスレンダリングリソース141からレンダリング済み画像を直接受信し、前記画像を前記遠隔クライアント131において合成する、請求項13に記載のシステム。前記ホスト120は、複数の仮想マシン121-125をサポートし、前記レンダリング済み画像をローカルに表示する、請求項13に記載のシステム。コンピュータシステム内にロードされて実行されたときに、請求項1から請求項12までのいずれか1項に記載の方法のステップの全てを行うためのコンピュータプログラムコードを含む、コンピュータプログラム。歴史的には、仮想マシンは、3Dグラフィックスレンダリングのサポートが限定的であった。複雑な3Dのソフトウェアレンダリングは、CPUに大きな負荷をかけるものであり、仮想化ホストを忙殺させる可能性がある。実際に存在する技術は、ホスト上のローカルハードウェアにアクセスすることに限定されており、従って、拡張性が極めて限られたものとなっている。こうしたことから、上述された3Dアプリケーションのカテゴリは、典型的には、このような環境における動作から除外されてきた。本発明の第1の態様によれば、ネットワーク対応アプリケーションのためのハードウェアアクセラレーテッドグラフィックスを提供する方法であって、ホスト上で提供されていないハードウェアアクセラレーテッドグラフィックスを必要とするネットワーク対応アプリケーションを、ホスト上で提供することと、ホストにおいて、3Dグラフィックスレンダリングリソースをブローカに接続するための3Dライブラリラッパーを提供することと、ブローカにおいて、3Dグラフィックスレンダリングリソースについての要求を受信することと、最終的な2Dレンダリング済み画像を遠隔クライアントに戻すために、ブローカが、利用可能な3Dグラフィックスレンダリングリソースを評価し、1つの3Dグラフィックスレンダリングリソースを3Dライブラリラッパーに割り当てることと、を含む方法が提供される。好ましくは、本発明は、ネットワーク対応アプリケーションが、ホスト上の仮想マシンで実行され、遠隔クライアントによってアクセスされる方法を提供する。好ましくは、本発明は、ネットワーク対応アプリケーションが、ホスト上の端末サービスセッションで実行され、遠隔クライアントによってアクセスされる方法を提供する。好ましくは、本発明は、3Dライブラリラッパー及び選択された3Dグラフィックスレンダリングリソースが接続してグラフィカル呼び出しを送信することを含む方法を提供する。好ましくは、本発明は、遠隔クライアントに転送するために、最終的なレンダリング済み画像を、選択された3Dグラフィックスレンダリングリソースから3Dライブラリラッパーに送信することを含む方法を提供する。好ましくは、本発明は、3Dライブラリラッパーが、3Dグラフィックスレンダリングリソースに直接接続情報を提供することと、選択された3Dグラフィックスレンダリングリソースが、最終的なレンダリング済み画像を遠隔クライアントに直接送信することと、を含む方法を提供する。好ましくは、本発明は、複数の3Dグラフィックスレンダリングリソースが、1つ又は複数のホスト上の複数の仮想マシン又は端末サービスセッションが利用可能なネットワークコンピューティングアーキテクチャ内に設けられた仮想化グラフィックスサーバとして提供される方法を提供する。好ましくは、本発明は、ブローカが、3Dグラフィックスレンダリングリソースを監視し、リソース優先順位キューを更新することを含む方法を提供する。好ましくは、本発明は、ブローカが、遠隔クライアントについての直接接続情報が提供されているかどうかを判定することと、遠隔クライアントについての直接接続情報が存在する場合には、選択された3Dグラフィックスレンダリングリソースに、遠隔クライアントとの直接接続を行うように命令することと、を含む方法を提供する。好ましくは、本発明は、ブローカが、選択された3Dグラフィックスレンダリングリソースと遠隔クライアントとの間の直接通信と、3Dライブラリラッパーを介した通信との間のモード変更要求を監視することと、必要に応じてモードを変更することと、を含む方法を提供する。好ましくは、本発明は、3Dグラフィックス呼び出しを、3Dライブラリラッパーと選択された3Dグラフィックスレンダリングリソースとの間の中立形式に修正することを含む方法を提供する。好ましくは、本発明は、グラフィックスレンダリングをホストから分離することによって、プラットフォームに依存しないグラフィックスリソースの拡張性を可能にする、請求項1に記載の方法を提供する。本発明の第2の態様によれば、ネットワーク対応アプリケーションのためのハードウェアアクセラレーテッドグラフィックスを提供するコンピュータソフトウェア製品であって、コンピュータ可読プログラムコードが具体化されたコンピュータ可読ストレージ媒体を含み、コンピュータ可読プログラムコードは、ホスト上で提供されていないハードウェアアクセラレーテッドグラフィックスを必要とするネットワーク対応アプリケーションを、ホスト上で提供し、ホストにおいて、3Dグラフィックスレンダリングリソースをブローカに接続するための3Dライブラリラッパーを提供し、ブローカにおいて、3Dグラフィックスレンダリングリソースについての要求を受信し、最終的な2Dレンダリング済み画像を遠隔クライアントに戻すために、利用可能な3Dグラフィックスレンダリングリソースを評価して、選択された3Dグラフィックスレンダリングリソースを3Dライブラリラッパーに割り当てるように構成された、コンピュータソフトウェア製品が提供される。好ましくは、本発明は、3Dライブラリラッパーが、ライブラリ呼び出しをブローカに向けるプロキシライブラリラッパーであるシステムを提供する。好ましくは、本発明は、アプリケーションが、ホスト上の仮想マシン上で実行され、遠隔クライアントによってアクセスされるシステムを提供する。好ましくは、本発明は、アプリケーションが、ホスト上の端末サービスセッション上で実行され、遠隔クライアントによってアクセスされるシステムを提供する。好ましくは、本発明は、ブローカが、仮想化された3Dグラフィックスレンダリングリソースを評価し、これをネットワーク対応環境内の複数のホストに割り当てるシステムを提供する。好ましくは、本発明は、3Dライブラリラッパーと選択された3Dグラフィックスレンダリングリソースとの間に、中立のグラフィカル呼び出しを送信する通信機構を含むシステムを提供する。好ましくは、本発明は、選択された3Dグラフィックスレンダリングリソースから遠隔クライアントへの直接通信機構を含むシステムを提供する。好ましくは、本発明は、ブローカが、3Dグラフィックスレンダリングリソースを監視し、リソース優先順位キューを更新するシステムを提供する。好ましくは、本発明は、ブローカが、遠隔クライアントについての直接接続情報が提供されているかどうかを判定し、遠隔クライアントについての直接接続情報が存在する場合には、選択された3Dグラフィックスレンダリングリソースに、遠隔クライアントとの直接接続を行うように命令するシステムを提供する。好ましくは、本発明は、ブローカが、選択された3Dグラフィックスレンダリングリソースと遠隔クライアントと間の直接通信と、3Dライブラリラッパーを介した通信との間のモード変更要求を監視し、必要に応じてモードを変更するシステムを提供する。好ましくは、本発明は、グラフィックスレンダリングをホストから分離することによって、プラットフォームに依存しないグラフィックスリソースの拡張性を可能にするシステムを提供する。好ましくは、本発明は、遠隔クライアントがシンクライアントであり、システムが複数の接続プロトコルをサポートするシステムを提供する。好ましくは、本発明は、遠隔クライアントが、選択された3Dグラフィックスレンダリングリソースからレンダリング済み画像を直接受信し、その画像をクライアントにおいて合成するシステムを提供する。好ましくは、本発明は、ホストが、複数の仮想マシンをホストし、レンダリング済み画像をローカルに表示するシステムを提供する。本発明の第3の態様によれば、ネットワーク対応アプリケーションのためのハードウェアアクセラレーテッドグラフィックスを提供するサービスを、ネットワーク上で顧客に提供する方法であって、ホスト上で提供されていないハードウェアアクセラレーテッドグラフィックスを必要とするネットワーク対応アプリケーションを、ホスト上で提供することと、ホストにおいて、3Dグラフィックスレンダリングリソースをブローカに接続するための3Dライブラリラッパーを提供することと、ブローカにおいて、3Dグラフィックスレンダリングリソースについての要求を受信することと、最終的な2Dレンダリング済み画像を遠隔クライアントに戻すために、ブローカが、利用可能な3Dグラフィックスレンダリングリソースを評価し、1つの3Dグラフィックスレンダリングリソースを3Dライブラリラッパーに割り当てることと、を含む方法が提供される。本発明の第4の態様によれば、ネットワーク対応アプリケーションのためのハードウェアアクセラレーテッドグラフィックスを提供するシステムであって、ホスト上で提供されていないハードウェアアクセラレーテッドグラフィックスを必要とするアプリケーションと該アプリケーションのための3Dライブラリラッパーとを有するホストと、ホストとは独立に提供される1つ又は複数の3Dグラフィックスレンダリングリソースと、最終的な2Dレンダリング済み画像を遠隔クライアントに戻すために、選択された3Dグラフィックスレンダリングリソースを評価し、これをアプリケーションのための3Dライブラリラッパーに割り当てるブローカと、を含むシステムが提供される。第5の態様から見ると、本発明は、コンピュータシステム内にロードされて実行されたときに、上述の方法のステップの全てを行うためのコンピュータプログラムコードを含むコンピュータプログラムが提供される。発明として見なされる主題は、本明細書の結論部分において具体的に指摘され、明確に請求される。本発明は、その目的、特徴、及び利点と共に、操作の機構及び方法の両方について、添付の図面と併せて読むときに以下の詳細な説明を参照することによって最も良く理解される。ここで、本発明の好ましい一実施形態が、添付の図面を参照して、一例として説明される。図面内に示される要素は、説明を簡単かつ明確にするために、必ずしも縮尺通りに描かれているわけではないことが認識されるであろう。例えば、図面内の幾つかの要素は、明確にするために、他の要素と比べて誇張されている場合がある。さらに、適切であると考えられる場合には、対応する特徴又は類似する特徴を示すために、図面間で参照符号が繰り返されることがある。以下の詳細な説明においては、本発明が完全に理解されるように、多くの特定の詳細が示される。しかしながら、当業者であれば、本発明はこれらの特定の詳細がなくても実施できることが分かるであろう。他の例においては、本発明を不明瞭にしないように、周知の方法、手順、及び構成要素は詳細に説明されない。説明される方法及びシステムによって、ハードウェアとソフトウェアとの統合のクラウドによる利益を3Dアプリケーション空間において活用することができるようになる。クラウドは、典型的には、複数の仮想マシンVMをホストする、単一の場所又は高速ネットワークによってリンクされた複数の場所に配置された、物理サーバの集合体である。これらの仮想マシンは、ユーザの視点からはサービスのいかなる中断もなしに、1つの物理ホストから別のホストに移行される場合もある例えばハードウェア故障の場合。仮想マシンを用いることによって、複数の作業負荷を同時に処理することができるようになり、CPU中央演算処理ユニット又はメモリなどのシステムリソースをより良好に用いて、依然として作業負荷間の物理的な分離がもたらされる。同様に、端末サービスTSサーバは、単一のシステム上で複数のユーザセッションをホストする。遠隔アクセスが、複数の仮想マシンをホストするシステムの場合に類似した方式で行われる。ユーザは、個々の遠隔VMに接続する代わりに、単一のサーバマシン上で動作する遠隔TSセッションに接続する。本明細書の目的上、クラウドという用語は、複数の仮想マシンをホストする遠隔システムと、複数の端末サービスセッションをホストするシステムとの両方を指すものとすることができる。説明される方法及びシステムは、クラウドベースのシステムに拡張可能なGPUグラフィックス処理ユニットアクセラレーションを提供することと、3D画像への遠隔アクセスとを組み合わせることを可能にする。クラウドベースの3Dアプリケーションが、必要に応じて、任意の大量のグラフィックスリソースを利用可能にすることができ、結果として得られる3D画像の圧縮及び遠隔ストリーミングを用いることによって、ローカルアプリケーションのユーザ体験がシミュレートされる。説明される方法及びシステムは、ネットワーク対応アプリケーションとも呼ばれる、クラウドタイプの遠隔システムにおいて動作するアプリケーションに、ハードウェアアクセラレーテッド3Dグラフィックスを提供する。このことによって、3Dアプリケーション負荷のための従来の専用ワークステーションの利点と、クラウド展開戦略が提供する拡張性及び融通性とを組み合わせることが可能になる。図1を参照すると、ブロック図が、説明されるシステム100を示す。クラウドタイプの遠隔環境110が設けられている。クラウド環境110は、典型的には、複数の仮想マシン又は端末サーバセッションをホストする、単一の場所又は高速ネットワークによってリンクされた複数の場所に配置された、物理サーバの集合体である。図1は、複数の仮想マシンVM又は端末サービスTSセッション121-125を含む物理ホスト120を示す。遠隔クライアント131、132は、シンクライアントである遠隔アクセスデバイス及び遠隔アクセスソフトウェアを含む遠隔クライアントの実施形態である。例えば、遠隔クライアント131、132は、ラップトップ又はスマートフォン上で動作する、VNC仮想ネットワークコンピューティングクライアント又はMicrosoftRemoteDesktopProtocolRDPクライアントとすることができる。これらは、遠隔クライアントの視点から見ると、遠隔マシン上でホストされる遠隔デスクトップ全体に、又は単に遠隔マシンによってエクスポートされる単一のアプリケーションに、アクセスすることができる。ユーザは、専用の遠隔クライアント又はウェブページベースのポータルといった幾つかの方法を通じて、遠隔的にクラウドにアクセスすることができる。この遠隔クライアントのアクセスは、典型的には軽いものであり、遠隔クライアントに代わる実質的なCPUパワー又はメモリを必要とせず、遠隔クライアント側に3Dグラフィックスハードウェアを必要とすることもない。説明されるシステム100は、クラウド環境110内に、3Dグラフィックスレンダリングリソース又はグラフィックスサーバとも呼ばれる図4においてもレンダリングリソース141-144として示されている、図1に示される1つ又は複数のグラフィック処理ユニットGPUプロバイダ141-143を含み、これらは、実際の3Dグラフィックスハードウェアを提供して、グラフィックス処理タスクを扱う。説明されるシステム100はまた、VM又はTMセッション121-125とGPUプロバイダ141-143との間で適切なリソース割り当てを行う、クラウド環境110内に設けられたブローカ150を含む。クラウド環境110の構成要素は、データセンタ内で互いに接近して配置することも、高速ネットワークによって接続された別々の場所に配置することもできる。幾つかの構成要素はまた、必要に応じて、他の構成要素と同じ物理ハードウェア内に配置することができる。GPUプロバイダ141-143の形を取る仮想化されたグラフィックスハードウェアが、クラウド環境110内に提供され、VM又はTSセッション121-125からクラウド内で3Dアプリケーションを動作させることが可能になる。GPUプロバイダ141-143におけるアクセラレーテッド3Dレンダリングをクラウドのホスト120から分離することによって、ホストマシンに直接取り付けることができるリソースに限定される他のシステムとは異なり、無制限の拡張性が可能になる。図2を参照すると、ブロック図が、図1のシステム100の詳細を示す。VM/TSセッション121が、クラウド環境110のホスト120上に示される。VM/TSセッション121は、ネットワーク対応アプリケーションの形態の3Dアプリケーション221と、プロキシグラフィックスライブラリを提供する3DAPIラッパーライブラリVMライブラリとも呼ばれる222とを含む。遠隔クライアント131は、3Dアプリケーション221にアクセスすることができる。3DAPIラッパーライブラリ222は、ブローカ150を呼び出して選択されたGPUプロバイダ141にアクセスするプロキシグラフィックスライブラリである。クラウド環境110内の選択されたGPUプロバイダ141は、3DAPIホスト241と3Dハードウェア242とを含む。ブローカ150は、VM/TSセッション121と選択されたGPUプロバイダ141との間のリソース割り当てを提供する。選択されたGPUプロバイダ141の仮想化された3Dハードウェア242は、VM/TSセッション121における3DAPIラッパーライブラリ222の形態のプロキシグラフィックスライブラリを介してアクセスされる。遠隔クライアント131による3Dコンテンツへの遠隔アクセスは、予めレンダリング済みの2D画像を圧縮して、遠隔クライアント131の実施形態であるシンクライアント131にストリーミングすることによって、提供される。これらのコンポーネントの組み合わせは、クラウド環境内でホストされる3Dアプリケーションへの拡張可能な遠隔アクセスの問題を解決する。3Dグラフィックスハードウェアは、表示するために3Dスクリーン記述を2D画像に変換する。この特徴を用いて、3Dシーンの2D画像を選択されたGPUプロバイダ上に生成し、2D画像の圧縮されたストリームが遠隔クライアントに送信される。説明されるシステムは、ブローカシステムによって案内されるときに、最終的な画像データをGPUプロバイダから遠隔クライアントに直接経路指定する能力を提供する。これによって、遠隔クライアントに送信されるようにGPUプロバイダから戻される大量のレンダリング済み画像その各々は、例えば1024×768ピクセルの非圧縮画像の場合には1フレームにつき3MBであり、典型的には毎秒30-60フレームfpsで流れる、大規模なデータブロックであるに起因する、仮想マシンのホストステージにおいて形成されるネットワークボトルネックという重大な問題が克服される。ブローカを用いて通信を方向付けして案内することによって、このボトルネックを回避することができるようになり、大規模な拡張性が実用的なものとなる。説明されるシステムは、通常は3Dハードウェアアクセラレーションにアクセスできない仮想マシン又は端末サービスセッションへの3Dハードウェアリソースの提供と、その3Dハードウェアによって生成される画像への双方向遠隔アクセスとの両方をカバーする。説明される方法及びシステムは、全てのオペレーティングシステム及び全ての3DアクセラレーテッドグラフィックスAPIOpenGL及びDirect3DなどDirect3DはMicrosoftCorporationの商標であるに適用可能である。MicrosoftWindowsVMWindowsはMicrosoftCorporationの商標であるがレンダリングのためにLinuxLinuxはLinusTorvaldsの商標であるベースのGPUプロバイダを使用し、その全てがいずれかの形態のシンクライアント上の遠隔セッションからアクセスされるといった異種環境において、運用することも可能である。さらに、説明される方法及びシステムは、GPUベースのアクセラレーションAPI例えばCUDAComputeUnifiedDeviceArchitectureCUDAは、NVIDIACorporationの商標である/OpenCLOpenCLは、KhronosGroupの商標である/DirectX11Computeなど、並びに純粋な3DグラフィックスAPIに、適用可能である。説明される方法及びシステムによって、プラットフォーム非依存性も提供される。ラッパーライブラリ及びGPUプロバイダによって3DグラフィックスAPI呼び出しを中立形式に修正できるようにすることで、オペレーティングシステムの異種構成も可能になる。これによって、どんなオペレーティングシステムも、他のいずれかのオペレーティングシステムを自分のグラフィックスプロバイダとして用いて、レンダリングすることができるようになる。説明される方法及びシステムはまた、Type1及びType2のハイパーバイザであっても、MicrosoftTerminalServicesSessionsであっても、いずれかの現行の仮想化技術に適用可能である。説明される方法及びシステムは、仮想マシンのセッションが関与する場合であろうと、端末サービスセッションが関与する場合であろうと、同一の方式で運用される。複数の遠隔クライアント接続プロトコル、例えばVirtualNetworkComputingVNC及びRemoteDesktopProtocolRDPが、サポートされる。3Dシーンの最終的な2D画像は、別個のネットワークチャネルを介して戻され、遠隔クライアントの側で最終的に合成される。遠隔アクセスのために用いられる方法の特徴に関して、特定の依存性は存在しない。最も重要なことは、説明される方法及びシステムを使用するアプリケーションを変更する必要がないことである。説明されるプロキシラッパーライブラリは、プロセス全体がアプリケーションに対して完全に透明であることを保証する。遠隔クライアント131は、クラウド環境110内でホストされる遠隔システム120に接続する。遠隔クライアント131は、遠隔的に動作している3Dアプリケーションと対話を行う。これは、クライアントの視点からは、事実上、ローカルアプリケーションのように見える。VM/TSセッション121上でホストされる3Dアプリケーション221は、スタンドアロンのシステム上で動作しているかのように実行される。3Dグラフィックス呼び出しが行われるときに、3Dアプリケーション221は、3Dライブラリ例えば、MicrosoftWindows上のOpenGL32.DLL、又は、Linux上のlibGL.soをロードしてグラフィックス機能呼び出しを行うことを試みる。これらの呼び出しは、通常は、ドライバを介して、ディスプレイ上でレンダリングするための適切な3Dハードウェアに経路指定される。その代わりに、説明されるシステム100は、全ての潜在的なレンダリング呼び出しをインターセプトし、それらをプラットフォーム中立形式に変換し、適切な場所でそれらを実行するのに用いられる、ラッパーライブラリ222を含む。ラッパーライブラリ222は、ネットワーク接続上でブローカ150と連絡を取る。ブローカ150は、GPUプロバイダ141-143図1の集合体に、適切なリソースについて問い合わせを行う。ブローカ150には、特定の要件、具体的には、遠隔クライアント131のIPアドレス又は予測されるGPUメモリの要件などの情報を与えることができる。ブローカ150は、この情報を、ラウンドロビンなどの割り当て戦略又はリソース割り当て及び性能評価指標例えば、GPUメモリ使用率、GPU計算負荷、現在のGPUコア温度などに基づくより複雑な戦略とともに用いて、適切なGPUプロバイダ141図4におけるレンダリングリソース141を割り当てる選択することができる。適切なGPUプロバイダが見つけ出されると、ライブラリラッパー222は、適切な個々の選択されたGPUプロバイダ141に接続するように命令される。ブローカ150は、選択されたGPUプロバイダ141に、遠隔クライアント131への直接接続を確立して完成画像を転送するように指示することができ、このようにして、VM/TSセッション121をバイパスし、ホスト120においてネットワークボトルネックが発生することを防止する。この従来からのボトルネックそれによって、大量のデータがホストを通して経路指定されなければならないを回避することによって、説明されるシステムをクラウドスケールまで成長させることができる。これはまた、フレームの高速配信によって遅延を劇的に改善し、それによって、より双方向的で応答性の高いユーザ経験がもたらされる。この接続が行われると、3Dアプリケーションは、通常通りレンダリング呼び出しを行う。これらの呼び出しは、ネットワーク上で、関連する選択されたGPUプロバイダ141に転送される。高速ネットワークリンクによって、各々のレンダリング呼び出しを低遅延で遠隔的に行うことができるようになる。呼び出しをプラットフォーム中立形式に変換して、LinuxベースのGPUプロバイダを使用するMicrosoftWindowsXPVirtualMachineといった、システム内におけるオペレーティングシステムの異種構成を可能にすることができる。選択されたGPUプロバイダ141によって呼び出しが受信されると、これらの呼び出しは、選択されたGPUプロバイダ141上で動作しているアプリケーションから発信されたかのように、ローカルの3Dハードウェアに送信される。その時点での3D画像フレームが完成すると、その完成した画像は、選択されたGPUプロバイダ141から遠隔クライアント131に直接送信されるか、又はローカル表示のためにネットワークを介してVM/TSセッション121のラッパーライブラリ222に戻される。この通信は、VMホスト120が、単に遠隔クライアント131に渡されるだけの大量の戻り画像データで忙殺されないように、ブローカ150によって管理される。レンダリング済み3D画像は、帯域幅を節約するために必要に応じて圧縮され、ネットワークチャネル上で遠隔クライアント131に送信され、そこで復号されてローカルに表示される。既存の遠隔アクセスソフトウェア例えば、VNC又はRDPを用いてメニュー及びウィンドウフレームといった2Dデータを処理し、説明されるコンポーネントが全ての3Dコンテンツを処理することができる。最終的な3D画像は、通常通りに表示される2Dコンテンツとシームレスに統合される。ユーザは、マウス及びキーボードイベントを遠隔クライアント131から遠隔3Dアプリケーション221に送信し、それらのイベントは、そこで適切に実行される。ユーザの入力に応答して、さらに画像が生成され、戻される。画像圧縮インターネットビデオストリーミングと同様のもの及び適度なネットワーク帯域幅を用いて、クラウドコンピューティングの利点を維持したまま、3Dアプリケーションとの完全な双方向アクセスを達成することができる。遠隔クライアント131が切断されるか、3Dアプリケーション221が終了すると、選択されたGPUプロバイダ141のリソースが解放され、ブローカ150には、これらのリソースが完全に利用可能になったことを示す信号が送られる。例えば管理目的などで、ローカルコンソールアクセス即ち、VMホストマシンからの物理アクセスが仮想マシンに求められる場合には、最終的な画像は、ローカルコンソール上に表示することができるように、VMを通って経路指定されなければならない。典型的なクラウド展開においては、殆どのユーザは遠隔ユーザであり、従って、ボトルネックの発生が回避されるため、選択されたGPUプロバイダ141から直接接続するシステムが好ましいが、これはローカルアクセスを容易にするものではない。ブローカ150は、クラウドシステム内にシームレスに存在する選択肢と、遠隔クライアント131へのVM121を通る経路指定と選択されたGPUプロバイダ141からの直接接続との間で交互に特定の画像ストリームインスタンスを必要に応じて切り替える選択肢との両方を可能にする。仮想マシン121と選択されたGPUプロバイダ141との間の接続は、VM121が異なるホスト120に移動する場合であってもブローカ150によって維持されるため、動作中の仮想マシンのライブマイグレーションもまた、ブローカ150によって容易になる。これは、説明されるコンピュータとグラフィックスリソースとの分離がなければ不可能であろう。図3及び図4を参照すると、説明される方法における接続のフロー300が示される。図3は、接続ステップを伴うフロー図を示す。図4は、図1及び図2において導入されたコンポーネントの間の接続ステップを示す。フロー300は、遠隔クライアント131が、VM121に接続する301ことと、仮想化された3Dライブラリ222VMライブラリと呼ばれるを用いる3Dアプリケーション221を起動する302こととを含む。VMライブラリ222は、ブローカ150に接続する303。ブローカ150は、利用可能な3Dグラフィックスレンダリングリソース141-144を評価し304、その1つ141をVMライブラリ222に割り当てる305。VMライブラリ222と選択された3Dグラフィックスレンダリングリソース141とは、グラフィカル呼び出しを送信するために、互いに接続される306。1つの選択肢においては、最終的なレンダリング済み画像は、遠隔クライアント131に送信されるために、VMライブラリ222に戻される307。別の選択肢においては、選択された3Dグラフィックスレンダリングリソース141は、遠隔クライアント131に直接接続し、最終的なレンダリング済み画像は、この接続上で送信される308。ブローカは、VMライブラリからの要求に応じて典型的には、遠隔クライアントの要求に応答して、接続トポロジーを変更することができる。図5及び図6を参照すると、フロー図400、450は、図5においてはリソースの監視及びセットアップ中の、図6においてはランタイムの間の、ブローカの操作を示す。図5を参照すると、フロー図400は、ブローカの接続監視スレッド401を示す。ホストベースの3Dライブラリからの接続を待つ402。接続ハンドラスレッドが、入ってくるスレッドごとに起動される403。監視スレッドは、ループする404。ブローカのリソース監視スレッド405が開始される。潜在的な3Dグラフィックスレンダリングリソースを問い合わせる406。リソースが利用可能であるかどうかが判定される407。利用可能ではない場合には、方法は、潜在的な3Dグラフィックスレンダリングリソースの問い合わせ406にループして戻る。リソースが利用可能である場合には、利用可能性のレベルに基づいて、リソース優先順位キュー409を更新する408。方法は、引き続き、潜在的な3Dグラフィックスレンダリングリソースを問い合わせる406。接続ハンドリングスレッド410が示される。リソース優先順位キュー409から、選択される3Dグラフィックスレンダリングリソースが選ばれる411。遠隔クライアントについて追加の接続情報が提供されているかどうかが判定される412。提供されている場合には、選択された3Dグラフィックスレンダリングリソースは、遠隔クライアントに独立した接続を行って画像を戻すように命令される413。遠隔クライアントについて追加の接続情報が提供されていない場合には、ホストベースの3Dライブラリは、選択された3Dグラフィックスレンダリングリソースに接続してレンダリングを開始するように命令される414。次いで、図6において説明されるランタイム操作が実行される。図6を参照すると、ブローカによるランタイム操作451が示される。ブローカは、ホストベースの3Dライブラリ及び選択された3Dグラフィックスレンダリングリソースへの接続を維持する452。レンダリングモード変更又はいずれかの当事者遠隔クライアント、VM、レンダリングリソースの切断について、監視が行われる453。モード変更があるかどうかが判定される454。切断が要求されている455には、全ての接続が終了され、3Dグラフィックスレンダリングリソースは除去される即ち、当事者がクラッシュした場合456。モード変更が要求されている場合457には、現時点で画像を遠隔クライアントに直接送信しているかどうかが判定される458。送信している場合には、選択された3Dグラフィックスレンダリングリソースは、確立された接続上で画像をホストベースの3Dライブラリに送信するように命令される459。ホストベースの3Dライブラリは、フレームを受信して、それらのフレームを新たな接続上で遠隔クライアントに送信するように命令される。次いで、方法は、ループして460、監視を続ける453。その時点で画像を遠隔クライアントに直接送信していないと判定された458場合には、選択された3Dグラフィックスレンダリングリソースは、遠隔クライアントに直接接続してメッセージの送信を開始するように命令される461。ホストベースの3Dライブラリは、3Dグラフィックスレンダリングリソースからそれ以上のフレームを求めない。次いで、方法は、ループして462、監視を続ける453。図7を参照すると、フロー図500は、ホストにおけるVM又はTSセッションで行われる方法を示す。VM又はTSセッションにおいて、3Dアプリケーションへの遠隔クライアントの接続要求が受信される501。VM/TSセッションにおいて、アプリケーションについてライブラリラッパーが起動される502。ライブラリラッパーがブローカに接続する503。ライブラリラッパーは、ブローカから3Dグラフィックスレンダリングリソースの割り当てを受信する504。ライブラリラッパーは、割り当て済みの選択された3Dグラフィックスレンダリングリソースに接続する505。1つの可能なステップにおいては、ライブラリラッパーは、画像を受信し506、それらの画像を遠隔クライアントに転送する。代替的なステップにおいては、ライブラリラッパーは、直接通信のためのクライアントの詳細を、選択された3Dグラフィックスレンダリングリソースに提供する507。GPUの計算能力をクラウド内で効果的に仮想化する能力は、各々のGPUが、標準的なCPUの何百倍も計算能力が高い場合が多く、わずかな電力しか消費せず、費用も僅かであるため、極めて有益である。3Dグラフィックスアクセラレーションの特定の場合においては、この仮想化によって、写真のようにリアルな描写のゲーム、映画、CADなどに至るまであらゆるものを実質的に可能とする最も高価な専用グラフィックス端末に匹敵する、いずれかのデバイス例えば電話上のグラフィック機能を、以前は不可能であった場合でも動作させることができるようになる。クラウドデータセンタは、仮想システム画像を動作させる汎用サーバマシンの組と、汎用サーバに代わって3Dレンダリングのみを行うグラフィックスサーバの組と、を含む。3Dグラフィックスアクセラレーションの作業負荷のためのGPU仮想化に伴って新たな種類の問題が導入され、特定のパラメトリック負荷分散及び経路指定などといった特定の問題が生じる。説明されるこのシステムはまた、データ交換の重複をなくすことによってどのようにアプリケーションを効果的で遠隔的に視覚化して用いるかという点と、ブローカを用いてグラフィックハードウェアリソースの使用をどのように選択して分散させるかという点に、焦点を合わせている。説明されるシステムは、複数のシステム/アプリケーション間で3Dグラフィックスレンダリングリソースの共有を可能にする。説明されるシステムはまた、3D呼び出しをエンコードしてストリームにすることと、高速ネットワークインターフェースを介してそのストリームを異なるマシンに転送することとを含む。本発明は、VMにおいて、画像ストリームの多数のインスタンスを経路指定しながら、必要なときには依然としてローカルアクセスができるようにすることから発生するボトルネックの問題を解決する。説明されるシステムの利点は、クラウドコンピューティング環境内で動作しているアプリケーションにアクセラレーテッド3Dグラフィックスを提供することである。この環境は、従来、2Dアプリケーション又はソフトウェアのみの低速な3Dレンダリングに限定されていた。説明されるシステムを用いることによって、通常は3Dハードウェアにアクセアスできない仮想マシン及び端末サービスセッションのインフラストラクチャの限界が克服される。説明されるシステムは、適切なグラフィックスAPIの代わりにプロキシラッパーライブラリを用いることによって、アプリケーションの修正も、自らがクラウド環境で動作しているというアプリケーション側の認識も、全く必要としない。3D画像を圧縮して遠隔クライアントに送信することによって、クラウド対応アプリケーションとの遠隔的な対話ができるようになる。3Dアプリケーションへの遠隔アクセスは、遠隔クライアントデバイスのために提供され、遠隔クライアントデバイス自体にはいかなる3Dハードウェアも必要としない。これにより、3Dアプリケーションを動作させるクラウドによる手法が実用的なものとなり、ハードウェアが集中化され、これらのリソースの最大の使用効率が保証される。遠隔クライアントは、自らのアクセスデバイスの能力を遥かに超えて、アプリケーション及びデータと対話して連動することができる。集中化されたアプリケーションによって、クラウドの利点である構成及びライセンス共有を活用することが可能になる。本手法の別の利点は、拡張性である。GPUプロバイダのホストは、仮想マシン/端末サービスセッションをホストしているハードウェアに、必ずしも結合されなくてもよい。従って、多数のVM又はセッションを単一の物理ホスト上でホストすることができ、それらのうちハードウェアアクセラレーテッド3Dグラフィックスを必要とするもののみが、そうしたリソースを用いることになる。単一の大型ホストマシンは、典型的には、何十何百というVM/セッションをホストすることができるが、最大で1つ又は2つのグラフィックスアダプタしか保持できない場合がある。このリソースのボトルネックは、数多くのVMがグラフィックスハードウェアの使用を試みている場合には、システムの性能を急速に低下させることになる。説明されるシステムにおいては、グラフィックスハードウェアはホストマシンから完全に切り離され、ブローカを用いて、任意の多くのGPUプロバイダを利用可能にしてプリケーションの3Dグラフィックス要件を満たすことができる。GPUプロバイダは、ブローカを用いて、負荷分散ベースで割り当てることができる。さらに、グラフィックスハードウェアは、仮想マシン/端末サービスセッションをホストしているハードウェアから完全に分離することができるので、既存のインフラストラクチャを再構成又は代替することなく追加容量を付加することができる。最後に、遠隔セッション内で動作しているラッパーライブラリはまた、必要に応じて、VM/TSセッションのローカルのデスクトップに3D画像を直接書き込むことができる。これは、例えば、遠隔アクセスの有無に関わらず、ローカルコンソールアクセスが行われている場合に有用である。説明されるシステムのこの部分を用いて、3D遠隔アクセスの使用に関わりなく、単純に、GPUアクセラレーションを仮想マシンに提供することができる。これは、幾つかの仮想マシンをローカルにホストすることができ、これらのVMを3Dハードウェアにアクセスさせることを望むワークステーションにとって、有用である。この構成においては、全てのコンポーネントを単一の物理マシン内に配置することができる。このような場合には、遠隔クライアントは、3Dハードウェアから独立しているが単一の物理マシン内にある仮想マシン上に設けることができる。説明されるシステムは、ブローカ機構を用いて画像ストリームの経路指定を動的に制御することによって、以下の事項をもたらす。遠隔クライアントの要件とその時点で利用可能なハードウェア能力及び性能との組み合わせによる、リソース割り当て及びスケジューリングの改善VM/TSセッションのホストにおける従来のボトルネックである、大容量の画像データを単一の点を通して経路指定しなければならないことに対する解決策と、それによりクラウドレベルの拡張性が可能となることグラフィカルアプリケーションを動作させることが可能な間に、VMホストを通して行われる、又はホスト間の仮想マシンの直接接続ライブマイグレーションを通して行われる、個々のVM/TSセッション及びアプリケーションによる画像ストリームの動的スイッチングの遅延特性の改善本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書において挙げられる教示の実装はクラウドコンピューティング環境に限定されないことが、前もって理解される。それどころか、本発明の実施形態は、現在既知の又は後に開発される他のいずれかのタイプのコンピューティング環境とともに実装することが可能である。クラウドコンピューティングは、最小限の管理努力又はサービスプロバイダとの対話で迅速に供給及び解放することができる構成変更可能なコンピューティングリソース例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービスの共有プールに対するオンデマンドの便利なネットワークアクセスを可能にするためのサービス配信のモデルである。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含むことができる。特徴は、以下の通りである。オンデマンドのセルフサービス:クラウドコンシューマは、サーバ時間及びネットワークストレージといったコンピューティング能力を、必要に応じて、人間がサービスのプロバイダとやりとりする必要なく自動的に、一方的に供給することができる。広範なネットワークアクセス:能力は、ネットワーク上で利用可能であり、異種のシン又はシッククライアントプラットフォーム例えば、携帯電話、ラップトップ、及びPDAによる使用を促進する標準的な機構を通じてアクセスされる。リソースのプール化:プロバイダのコンピューティングリソースは、マルチテナントモデルを用いて、複数のコンシューマにサービスを提供するようにプールされ、異なる物理及び仮想リソースは、要求に応じて動的に割り当て及び再割り当てされる。コンシューマは、一般に、提供されるリソースの正確な場所に関する制御又は知識を有していないが、高いレベルの抽象概念例えば、国、州、又はデータセンタで場所を指定できる場合があるという点で、場所独立ということができる。迅速な弾力性:能力は、迅速且つ弾力的に、場合によっては自動的に供給して素早くスケールアウトし、迅速に解放して素早くスケールインすることができる。コンシューマにとっては、供給するために利用可能な能力は、無制限に見えることが多く、いつでもどんな量でも購入することができる。計測されるサービス:クラウドシステムは、サービスのタイプ例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウントに適した何らかの抽象化のレベルで計量能力を活用することによって、リソース使用を自動的に制御及び最適化する。リソース使用は、利用されるサービスのプロバイダとコンシューマの両方にとって透明性をもたらすように、監視し、制御し、報告することができる。サービスモデルは以下の通りである。サービスとしてのソフトウェアSaaS:コンシューマに提供される能力は、クラウドインフラストラクチャ上で動作しているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザなどのシンクライアントインターフェース例えば、ウェブベースの電子メールを通じて、種々のクライアントデバイスからアクセス可能である。限定されたユーザ特有のアプリケーション構成設定を可能な例外として、コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は個々のアプリケーション能力をも含む基盤となるクラウドインフラストラクチャを管理又は制御しない。サービスとしてのプラットフォームPaaS:コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語及びツールを用いて作成される、コンシューマが作成又は獲得したアプリケーションを、クラウドインフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む基盤となるクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によってはアプリケーションホスティング環境構成を、制御する。サービスとしてのインフラストラクチャIaaS:コンシューマに提供される能力は、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースを供給することであり、ここで、コンシューマは、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアを展開して動作させることができる。コンシューマは、基盤となるクラウドインフラストラクチャを管理及び制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーション、及び場合によっては選択されたネットワークコンポーネント例えば、ホストのファイアウォールの限定的な制御を、制御する。展開モデルは以下の通りである。プライベートクラウド:クラウドインフラストラクチャは、ある組織のためだけに操作される。クラウドインフラストラクチャは、その組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。コミュニティクラウド:クラウドインフラストラクチャは、幾つかの組織によって共有され、関心事項例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアン上の考慮事項を共有する特定のコミュニティをサポートする。クラウドインフラストラクチャは、それらの組織又は第三者によって管理することができ、オンプレミス又はオフプレミスで存在することができる。パブリッククラウド:クラウドインフラストラクチャは、一般公衆又は大規模な業界グループが利用できるようにされており、クラウドサービスを販売する組織によって所有される。ハイブリッドクラウド:クラウドインフラストラクチャは、固有のエンティティを残しているが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術例えば、クラウド間の負荷分散のためのクラウドバースティングによって結び付けられている2つ又はそれより多いクラウドプライベート、コミュニティ、又はパブリックの組み合わせである。クラウドコンピューティング環境は、サービス提供を中心としており、無国籍性、低い結合度、モジュール性、及び意味的相互運用性に焦点を合わせている。クラウドコンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。ここで図8を参照すると、クラウドコンピューティングノードの例の概略図が示される。クラウドコンピューティングノード600は、好適なクラウドコンピューティングノードの単なる一例であり、本明細書において説明される本発明の実施形態の使用又は機能の範囲に関していずれかの限定を示唆することを意図するものではない。いずれにせよ、クラウドコンピューティングノード600は、上述された機能のいずれかを実装及び/又は実施することができる。クラウドコンピューティングノード600内には、他の多数の汎用又は専用コンピューティングシステム環境又は構成で動作可能なコンピュータシステム/サーバ610が存在する。コンピュータシステム/サーバ610とともに用いるのに適したものとすることができる周知のコンピューティングシステム、環境、及び/又は構成の例は、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、手持ち式又はラップトップ型デバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能コンシューマエレクトロニクス、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、及び、上記のシステム又はデバイスなどのいずれかを含む分散型クラウドコンピューティング環境を含むが、これらに限定されるものではない。コンピュータシステム/サーバ610は、コンピュータシステムによって実行されているプログラムモジュールなどのコンピュータシステム実行可能命令を一般的な背景として、説明することができる。一般に、プログラムモジュールは、特定のタスクを実施する、又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータシステム/サーバ610は、通信ネットワークを通じてリンクされた遠隔処理デバイスによってタスクが行われる分散型クラウドコンピューティング環境内で実施することができる。分散型クラウドコンピューティング環境においては、プログラムモジュールは、メモリストレージデバイスを含む、ローカル及び遠隔の両方のコンピュータシステムストレージ媒体内に配置することができる。図8に示されるように、クラウドコンピューティングノード600内のコンピュータシステム/サーバ610は、汎用コンピューティングデバイスの形態で示される。コンピュータシステム/サーバ610のコンポーネントは、1つ又は複数のプロセッサ又は処理ユニット611、システムメモリ612、及び、システムメモリ612を含む種々のシステムコンポーネントをプロセッサ611に結合するバス613を含むことができるが、これらに限定されるものではない。バス613は、メモリバス又はメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、及び、種々のバスアーキテクチャのいずれかを用いるプロセッサ又はローカルバスを含む、幾つかのタイプのバス構造のうちのいずれかの1つ又は複数を表す。限定ではなく例として、このようなアーキテクチャは、IndustryStandardArchitectureISAバス、MicroChannelArchitectureMCAバス、EnhancedISAEISAバス、VideoElectronicsStandardsAssociationVESAローカルバス、及びPeripheralComponentInterconnectsPCIバスを含む。コンピュータシステム/サーバ610は、典型的には、種々のコンピュータシステム可読媒体を含む。このような媒体は、コンピュータシステム/サーバ610がアクセス可能ないずれかの利用可能媒体とすることができ、揮発性媒体及び不揮発性媒体の両方と、取り外し可能媒体及び取り外し不可能媒体の両方とを含む。システムメモリ612は、ランダムアクセスメモリRAM614及び/又はキャッシュメモリ615といった、揮発性メモリの形態のコンピュータシステム可読媒体を含むことができる。コンピュータシステム/サーバ610は、他の取り外し可能/取り外し不可能、揮発性/不揮発性のコンピュータシステムストレージ媒体をさらに含むことができる。単なる例として、取り外し不可能の不揮発性磁気媒体図示されておらず、典型的にはハードドライブと呼ばれるとの間の読み出し及び書き込みのために、ストレージシステム616を設けることができる。図示されていないが、取り外し可能な不揮発性磁気ディスク例えば、フロッピィディスクとの間の読み出し及び書き込みのための磁気ディスクドライブと、CD-ROM、DVD-ROM又は他の光媒体などの取り外し可能な不揮発性光ディスクとの間の読み出し及び書き込みのための光ディスクドライブとを設けることができる。このような例においては、各々は、1つ又は複数のデータ媒体インターフェースによってバス613に接続することができる。以下でさらに示され、説明されるように、メモリ612は、本発明の実施形態の機能を実行するように構成されたプログラムモジュールの組例えば、少なくとも1つを有する少なくとも1つのプログラム製品を含むことができる。限定ではなく例として、メモリ612内に、プログラムモジュール618の組少なくとも1つを有するプログラム/ユーティリティ617、並びにオペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータを、格納することができる。オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータ、又はそれらのいくつかの組み合わせの各々は、ネットワーキング環境の実装形態を含むことができる。プログラムモジュール618は、一般に、本明細書において説明される本発明の実施形態の機能及び/又は方法を実行する。コンピュータシステム/サーバ610はまた、キーボード、ポインティングデバイス、ディスプレイ620などといった1つ又は複数の外部デバイス619、ユーザがコンピュータシステム/サーバ610と対話することを可能にする1つ又は複数のデバイス、及び/又は、コンピュータシステム/サーバ610が1つ又は複数の他のコンピューティングデバイスと通信することを可能にするいずれかのデバイス例えば、ネットワークカード、モデムなどと通信することができる。このような通信は、入力/出力I/Oインターフェース621を経由して行うことができる。さらにまた、コンピュータシステム/サーバ610は、ローカルエリアネットワークLAN、汎用広域ネットワークWAN、及び/又はパブリックネットワーク例えば、インターネットなどの1つ又は複数のネットワークと、ネットワークアダプタ622を介して通信することができる。示されるように、ネットワークアダプタ622は、コンピュータシステム/サーバ610の他のコンポーネントと、バス613を介して通信する。図示されないが、コンピュータシステム/サーバ610とともに他のハードウェア及び/又はソフトウェアコンポーネントを使用できることを理解されたい。例として、限定されるものではないが、マイクロコード、デバイスドライバ、冗長処理ユニット、外部のディスクドライブアレイ、RAIDシステム、テープドライブ、及びデータアーカイブストレージシステムなどが挙げられる。ここで図9を参照すると、例示的なクラウドコンピューティング環境700が示される。示されるように、クラウドコンピューティング環境700は、例えば携帯情報端末PDA又は携帯電話721、デスクトップコンピュータ722、ラップトップコンピュータ723、及び/又は自動車コンピュータシステム724などといった、クラウドコンシューマによって用いられるローカルコンピューティングデバイスが通信することができる、1つ又は複数のクラウドコンピューティングノード710を含む。ノード710は、互いに通信することができる。これらは、プライベートクラウド、コミュニティクラウド、パブリッククラウド、若しくは上述のハイブリッドクラウド、又はこれらの組み合わせなどの1つ又は複数のネットワーク内で、物理的又は仮想的にグループ化することができる図示せず。これにより、クラウドコンピューティング環境700は、インフラストラクチャ、プラットフォーム、及び/又はソフトウェアを、クラウドコンシューマがローカルコンピューティングデバイス上にリソースを保持する必要のないサービスとして、提供できるようになる。コンピューティングデバイス721-724のタイプは単なる例示であるように意図されており、コンピューティングノード710及びクラウドコンピューティング環境700は、あらゆるタイプのコンピュータ化された装置、及び、あらゆるタイプのネットワーク及び/又はネットワークアドレス指定可能な接続例えば、ウェブブラウザを用いてと通信できることが理解される。ここで図10を参照すると、クラウドコンピューティング環境800によって提供される機能抽象化層の組が示される。図10に示されるコンポーネント、層、及び機能は単なる例示であるように意図されており、本発明の実施形態はそれらに限定されないことを予め理解されたい。示されるように、以下の層及び対応する機能が提供される。ハードウェア及びソフトウェア層810は、ハードウェア及びソフトウェアのコンポーネントを含む。ハードウェアコンポーネントの例として、IBM登録商標zSeries登録商標システムを一例とするメインフレームと、IBMpSeries登録商標システムを一例とするRISC縮小命令セットコンピュータアーキテクチャベースのサーバと、IBMxSeries登録商標システムと、IBMBladeCenter登録商標システムと、ストレージデバイスと、ネットワーク及びネットワークコンポーネントと、が挙げられる。ソフトウェアコンポーネントの例として、IBMWebSphere登録商標アプリケーションサーバソフトウェアを一例とするネットワークアプリケーションサーバソフトウェアと、IBMDB2登録商標データベースソフトウェアを一例とするデータベースソフトウェアとが挙げられる。IBM、zSeries、xSeries、BladeCenter、WebSphere、及びDB2は、世界中の多数の管轄区域において登録されているInternationalBusinessMachinesCorporationの商標である。ハードウェア及びソフトウェア層810は、VM/TSセッションをホストする一般的なサーバとグラフィックスサーバ又はGPUプロバイダとが配置される場所である。仮想化層820は、仮想エンティティの以下の例、即ち、仮想サーバ、仮想ストレージ、仮想プライベートネットワークを含む仮想ネットワーク、仮想アプリケーション及びオペレーティングシステム、並びに仮想クライアントを提供することができる、抽象化層を提供する。一例においては、管理層830は、以下で説明される機能を提供することができる。リソース供給は、クラウドコンピューティング環境内でタスクを行うのに利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計量及び価格設定は、クラウドコンピューティング環境内でリソースが用いられる際のコスト追跡と、これらのリソースの消費にかかる課金又は請求とを提供する。1つの例においては、これらのリソースは、アプリケーションソフトウェアライセンスを含むことができる。セキュリティは、クラウドコンシューマ及びタスクについての識別情報の検証と、データ及び他のリソースの保護とを提供する。ユーザポータルは、コンシューマ及びシステム管理者のために、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当て及び管理を提供する。サービスレベルアグリーメントSLAプランニング及びフルフィルメントは、SLAによって将来の必要性が予測されるクラウドコンピューティングリソースの事前配置及び調達を提供する。管理層830は、説明されるシステム内でグラフィックリソースを割り当てるためのブローカ機能を提供することができる。本発明は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態、又は、ソフトウェア要素とハードウェア要素の両方を含む実施形態の形態を取ることができる。好ましい一実施形態においては、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されないソフトウェアとして実装される。本発明は、コンピュータ若しくはいずれかの命令実行システムによって用いられるか又はこれらと関連して用いられるプログラムコードを提供するコンピュータ使用可能媒体又はコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態を取ることができる。この説明の目的に関して、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置、若しくはデバイスによって用いられるか又はこれらと関連して用いられるプログラムを収容し、格納し、通信し、伝搬し、又は搬送することができるいずれかの装置とすることができる。媒体は、電子、磁気、光学、電磁気、赤外線若しくは半導体のシステム又は装置若しくはデバイス、又は伝搬媒体とすることができる。コンピュータ可読媒体の例として、半導体又は固体メモリ、磁気テープ、取り外し可能コンピュータディスケット、ランダムアクセスメモリRAM、読み出し専用メモリROM、剛性磁気ディスク及び光ディスクが挙げられる。現在の光ディスクの例として、コンパクトディスク-読み出し専用メモリCD-ROM、コンパクトディスク-読み出し/書き込みCD-R/W及びDVDが挙げられる。本発明の範囲から逸脱することなく、上記に改善及び修正を行うことができる。