(57)【要約】コンピュータサービスを提供するコンピュータシステムおよび方法であって、それぞれ仮想オペレーティングシステムを有する複数の仮想コンピュータと；前記少なくとも１の仮想コンピュータとホストコンピュータ間の通信を確立するための仮想化レイヤと；末端デバイスを使用するユーザに、前記末端デバイスと前記１以上の仮想コンピュータ間で臨時ベースのネットワーク通信を確立するための仮想コンピュータセレクタと；少なくとも１の仮想アプリケーションプログラムを前記１以上の仮想コンピュータおよび前記末端デバイスを使用するユーザにほぼ瞬時に利用可能とし、これにより前記ユーザが前記少なくとも１の仮想アプリケーションプログラムと相互作用を開始できるようにするストレージシステムとを具える。【選択図】図３
2009525531.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータサービスを提供するコンピュータシステムであって、
ａ）仮想オペレーティングシステムを有する少なくとも１の仮想コンピュータと、
ｂ）前記少なくとも１の仮想コンピュータとホストコンピュータ間の通信を確立するための仮想化レイヤと、
ｃ）末端デバイスを使用するユーザに、前記末端デバイスと前記１以上の仮想コンピュータ間で臨時ベース（unscheduled basis）のネットワーク通信を確立するための仮想コンピュータセレクタと、
ｄ）少なくとも１の仮想アプリケーションプログラムを有するストレージシステムであって、前記１以上の仮想コンピュータに接続されており、前記少なくとも１の仮想アプリケーションプログラムを前記１以上の仮想コンピュータおよび前記末端デバイスを使用するユーザにほぼ瞬時に利用可能とし、これにより前記ユーザが前記少なくとも１の仮想アプリケーションプログラムと相互作用を開始できるようにするストレージシステムと、
ｅ）前記ユーザが前記末端デバイスと前記少なくとも１の仮想コンピュータ間の通信を終了した場合に前記１以上の仮想コンピュータを開放する仮想コンピュータエージェントと、を具えることを特徴とするコンピュータシステム。
【請求項２】
請求項１のコンピュータシステムにおいて、さらに、予想されるユーザの数にサービスするのに必要な仮想コンピュータの数を決定するのに使用する統計モデルを含むことを特徴とするコンピュータシステム。
【請求項３】
請求項１のコンピュータシステムにおいて、前記ユーザ仮想コンピュータには、前記複数のホストコンピュータにおける関連するホストコンピュータから予め定められた量のＣＰＵが割り当てられることを特徴とするコンピュータシステム。
【請求項４】
請求項１のコンピュータシステムにおいて、前記少なくとも１の仮想アプリケーションプログラムとの前記ユーザの相互作用に関連する請求イベントが、前記ユーザに送られる請求書を作成するために請求システムに保存されることを特徴とするコンピュータシステム。
【請求項５】
請求項１のコンピュータシステムにおいて、さらに、前記複数の仮想コンピュータとネットワーク接続するローカルの周辺デバイスを具えることを特徴とするコンピュータシステム。
【請求項６】
請求項１のコンピュータシステムにおいて、さらに、前記複数の仮想コンピュータとネットワーク接続するリモートの周辺デバイスを具えることを特徴とするコンピュータシステム。
【請求項７】
コンピュータサービスを提供するコンピュータシステムであって、
ａ）複数組の仮想コンピュータであって、各組が複数の仮想コンピュータを具え、１つの組内の各仮想コンピュータがその組の他の総ての仮想オペレーティングシステムと同一の仮想オペレーティングシステムを有し、いずれか１の組の仮想オペレーティングシステムは他の仮想コンピュータの組の総ての仮想オペレーティングシステムと異なる、複数組の仮想コンピュータと；
ｂ）各仮想コンピュータと、複数のホストコンピュータからの関連するホストコンピュータとの間の通信を確立する仮想化レイヤと；
ｃ）前記複数の仮想コンピュータとネットワーク接続された末端デバイスと、
ｄ）前記末端デバイスのユーザに少なくとも１の仮想オペレーティングシステムの選択を提示し、ユーザから仮想オペレーティングシステムの選択を受け付け、臨時ベースで、前記末端デバイスと前記複数組の仮想コンピュータからのユーザ仮想コンピュータとの間で前記ユーザがネットワーク通信を確立するのを許可し、前記ユーザ仮想コンピュータは前記ユーザが選択した仮想オペレーティングシステムに適合する仮想オペレーティングシステムを有する、仮想コンピュータセレクタと；
ｅ）少なくとも１の仮想アプリケーションプログラムを格納するストレージシステムであって、各仮想コンピュータに接続されており、各仮想コンピュータと前記ストレージシステムは前記少なくとも１の仮想アプリケーションプログラムを、前記ユーザ仮想コンピュータおよび前記ユーザが操作する末端デバイスからほぼ即座に利用可能とし、これにより前記ユーザが前記少なくとも１の仮想アプリケーションプログラムとの相互作用を開始できるようにするストレージシステムと；
ｆ）前記ユーザが前記末端デバイスと前記ユーザ仮想コンピュータ間の通信を終了させた場合に、前記ユーザ仮想コンピュータを開放する仮想コンピュータエージェントと、を具えることを特徴とするコンピュータシステム。
【請求項８】
請求項７のコンピュータシステムにおいて、さらに、予想されるユーザの数にサービスするのに必要な仮想コンピュータの数を決定するのに使用する統計モデルを含むことを特徴とするコンピュータシステム。
【請求項９】
請求項７のコンピュータシステムにおいて、前記ユーザ仮想コンピュータに、前記複数のホストコンピュータにおける関連するホストコンピュータから予め定められた量のＣＰＵが割り当てられることを特徴とするコンピュータシステム。
【請求項１０】
請求項７のコンピュータシステムにおいて、前記少なくとも１の仮想アプリケーションプログラムとの前記ユーザの相互作用に関連する請求イベントが、前記ユーザに送られる請求書を作成するために請求システムに保存されることを特徴とするコンピュータシステム。
【請求項１１】
請求項７のコンピュータシステムにおいて、さらに、前記複数の仮想コンピュータとネットワーク接続するローカルの周辺デバイスを具えることを特徴とするコンピュータシステム。
【請求項１２】
請求項７のコンピュータシステムにおいて、さらに、前記複数の仮想コンピュータとネットワーク接続するリモートの周辺デバイスを具えることを特徴とするコンピュータシステム。
【請求項１３】
ユーザにデスクトップエクスペリエンスを提供するコンピュータシステムであって、
ａ）仮想オペレーティングシステムを有する少なくとも１の仮想コンピュータと、
ｂ）前記少なくとも１の仮想コンピュータとホストコンピュータ間の通信を確立するための仮想化レイヤと、
ｃ）末端デバイスを使用するユーザに、前記末端デバイスと前記１以上の仮想コンピュータ間で臨時ベースのネットワーク通信を確立するための仮想コンピュータセレクタと、
ｄ）少なくとも１の仮想アプリケーションプログラムを有するストレージシステムであって、前記１以上の仮想コンピュータに接続されており、前記少なくとも１の仮想アプリケーションプログラムを前記１以上の仮想コンピュータと前記末端デバイスを使用するユーザとにほぼ瞬時に利用可能とし、これにより前記少なくとも１の仮想アプリケションプログラムと相互作用する間、ユーザにデスクトップエクスペリエンスが提供されるストレージシステムと、
ｅ）前記ユーザが前記末端デバイスと前記少なくとも１の仮想コンピュータ間の通信を終了した場合に前記１以上の仮想コンピュータを開放する仮想コンピュータエージェントと、を具えることを特徴とするコンピュータシステム。
【請求項１４】
請求項１３のコンピュータシステムにおいて、さらに、予想されるユーザの数にサービスするのに必要な仮想コンピュータの数を決定するのに使用する統計モデルを含むことを特徴とするコンピュータシステム。
【請求項１５】
請求項１３のコンピュータシステムにおいて、前記ユーザ仮想コンピュータには、前記複数のホストコンピュータにおける関連するホストコンピュータから予め定められた量のＣＰＵが割り当てられることを特徴とするコンピュータシステム。
【請求項１６】
請求項１３のコンピュータシステムにおいて、前記少なくとも１の仮想アプリケーションプログラムとの前記ユーザの相互作用に関連する請求イベントが、前記ユーザに送られる請求書を作成するために請求システムに保存されることを特徴とするコンピュータシステム。
【請求項１７】
請求項１３のコンピュータシステムにおいて、さらに、前記複数の仮想コンピュータとネットワーク接続するローカルの周辺デバイスを具えることを特徴とするコンピュータシステム。
【請求項１８】
請求項１３のコンピュータシステムにおいて、さらに、前記複数の仮想コンピュータとネットワーク接続するリモートの周辺デバイスを具えることを特徴とするコンピュータシステム。
【請求項１９】
ユーザにデスクトップエクスペリエンスを提供するコンピュータシステムであって、
ａ）複数組の仮想コンピュータであって、各組が複数の仮想コンピュータを具え、１つの組内の各仮想コンピュータがその組の他の総ての仮想オペレーティングシステムと同一の仮想オペレーティングシステムを有し、いずれか１の組の仮想オペレーティングシステムは他の仮想コンピュータの組の総ての仮想オペレーティングシステムと異なる、複数組の仮想コンピュータと；
ｂ）各仮想コンピュータと、複数のホストコンピュータから関連するホストコンピュータとの間の通信を確立する仮想化レイヤと；
ｃ）前記複数の仮想コンピュータとネットワーク接続された末端デバイスと、
ｄ）前記末端デバイスのユーザに少なくとも１の仮想オペレーティングシステムの選択を提示し、ユーザから仮想オペレーティングシステムの選択を受け付け、臨時ベースで、前記末端デバイスと前記複数組の仮想コンピュータからのユーザ仮想コンピュータとの間で前記ユーザがネットワーク通信を確立するのを許可し、前記ユーザ仮想コンピュータは前記ユーザが選択した仮想オペレーティングシステムに適合する仮想オペレーティングシステムを有する、仮想コンピュータセレクタと；
ｅ）少なくとも１の仮想アプリケーションプログラムを格納するストレージシステムであって、各仮想コンピュータに接続されており、各仮想コンピュータと前記ストレージシステムは前記少なくとも１の仮想アプリケーションプログラムを、前記ユーザ仮想コンピュータと前記ユーザが操作する末端デバイスとからほぼ即座に利用可能とし、これにより前記少なくとも１の仮想アプリケーションプログラムと相互作用する際に前記ユーザにデスクトップエクスペリエンスが提供されるストレージシステムと；
ｆ）前記ユーザが前記末端デバイスと前記ユーザ仮想コンピュータ間の通信を終了させた場合に、前記ユーザ仮想コンピュータを開放する仮想コンピュータエージェントと、を具えることを特徴とするコンピュータシステム。
【請求項２０】
請求項１９のコンピュータシステムにおいて、さらに、予想されるユーザの数にサービスするのに必要な仮想コンピュータの数を決定するのに使用する統計モデルを含むことを特徴とするコンピュータシステム。
【請求項２１】
請求項１９のコンピュータシステムにおいて、前記ユーザ仮想コンピュータに、前記複数のホストコンピュータにおける関連するホストコンピュータから予め定められた量のＣＰＵが割り当てられることを特徴とするコンピュータシステム。
【請求項２２】
請求項１９のコンピュータシステムにおいて、前記少なくとも１の仮想アプリケーションプログラムとの前記ユーザの相互作用に関連する請求イベントが、前記ユーザに送られる請求書を作成するために請求システムに保存されることを特徴とするコンピュータシステム。
【請求項２３】
請求項１９のコンピュータシステムにおいて、さらに、前記複数の仮想コンピュータとネットワーク接続するローカルの周辺デバイスを具えることを特徴とするコンピュータシステム。
【請求項２４】
請求項１９のコンピュータシステムにおいて、さらに、前記複数の仮想コンピュータとネットワーク接続するリモートの周辺デバイスを具えることを特徴とするコンピュータシステム。
【請求項２５】
コンピュータサービスを提供する方法であって、
ａ）仮想オペレーティングシステムを有する少なくとも１の仮想コンピュータを作成するステップと、
ｂ）仮想化レイヤを用いて前記少なくとも１の仮想コンピュータとホストコンピュータ間の通信を確立するステップと、
ｃ）前記少なくとも１の仮想コンピュータに接続されたストレージシステムに、少なくとも１の仮想アプリケーションプログラムを保存するステップと、
ｄ）末端デバイスと前記少なくとも１の仮想コンピュータとの間に臨時ベースのネットワーク接続を確立するステップと、
ｅ）前記末端デバイスを操作するユーザに、前記少なくとも１の仮想アプリケーションプログラムを選択させ、これがほぼ瞬時に当該ユーザに利用可能となるステップと、
ｆ）前記ユーザが前記末端デバイスと前記少なくとも１の仮想コンピュータ間の通信を終了した場合に前記１以上の仮想コンピュータを開放するステップと、を具えることを特徴とする方法。
【請求項２６】
コンピュータサービスを提供する方法であって、
ａ）複数組の仮想コンピュータであって、各組が複数の仮想コンピュータを具え、１つの組内の各仮想コンピュータがその組の他の総ての仮想オペレーティングシステムと同一の仮想オペレーティングシステムを有し、いずれか１の組の仮想オペレーティングシステムは他の仮想コンピュータの組の総ての仮想オペレーティングシステムと異なる、複数組の仮想コンピュータを作成するステップと；
ｂ）仮想化レイヤを用いて、各仮想コンピュータと、複数のホストコンピュータから関連するホストコンピュータとの間の通信を確立するステップと；
ｃ）前記少なくとも１の仮想コンピュータに接続されたストレージシステムに、少なくとも１の仮想アプリケーションプログラムを保存するステップと、
ｄ）ユーザに仮想オペレーティングシステムの選択を提示し、このユーザから仮想オペレーティングシステムの選択を受け付けるステップと、
ｅ）末端デバイスを使用するユーザに、臨時ベースで、前記末端デバイスと、前記複数の仮想コンピュータからのユーザ仮想コンピュータとの間で前記ユーザがネットワーク通信を確立させるステップであって、前記ユーザ仮想コンピュータは前記ユーザが選択した仮想オペレーティングシステムに適合する仮想オペレーティングシステムを有するステップと；
ｆ）前記末端デバイスを使用するユーザに少なくとも１の仮想アプリケーションプログラムを選択させ、これが前記ユーザにほぼ即座に利用可能となり、これにより前記ユーザが前記少なくとも１の仮想アプリケーションプログラムとの相互作用を開始できるようにするステップと；
ｇ）前記ユーザが前記末端デバイスと前記ユーザ仮想コンピュータ間の通信を終了させた場合に、前記ユーザ仮想コンピュータを開放するステップと、を具えることを特徴とする方法。
【請求項２７】
ユーザにデスクトップエクスペリエンスを提供する方法であって、
ａ）仮想オペレーティングシステムを有する少なくとも１の仮想コンピュータを作成するステップと、
ｂ）仮想レイヤを用いて、前記少なくとも１の仮想コンピュータとホストコンピュータ間の通信を確立するステップと、
ｃ）前記少なくとも１の仮想コンピュータと接続されたストレージシステムに、少なくとも１の仮想アプリケーションプログラムを保存するステップと、
ｄ）末端デバイスと前記少なくとも１の仮想コンピュータ間に臨時ベースでネットワーク通信を確立するステップと、を具えることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、２００６年２月１日出願の米国暫定出願番号６０／７６４，４１６に関連するとともに、Ｕ．Ｓ．Ｃ．§１１９（ｅ）の利益を主張するものである。
【０００２】
技術分野
本出願は、コンピュータサービス提供システムおよび方法に関し、より具体的には、コンピュータサービスプロバイダからネットワークを介して１またはそれ以上のコンピュータユーザにコンピュータサービスを提供するシステムおよび方法に関する。
【背景技術】
【０００３】
ここ１０年間、インターネットを介してユーザまたは複数ユーザにコンピュータ資源を広く提供するコンピュータサービスプロバイダがどんどん創設され拡大してきた。これらのコンピュータサービスプロバイダは、しばしば異なる名前で呼ばれる：例えば、アプリケーションサービスプロバイダ（ＡＳＰ）、サービスとしてのソフトウェアアズアサービス（ＳａａＳ）、ホステッドサービスプロバイダ（ｘＳＰ）、およびインターネットサービスプロバイダ（ＩＳＰ）である。１のプロバイダを他のプロバイダと大まかに区別する特徴は、提供される資源とサービスの種類である。最も一般的な種類のＡＳＰは、ハードウェアとソフトウェアを含むコンピュータ資源を、ネットワークを介した顧客に提供するビジネスであるのに対し、ＳａａＳは一般に企業がその顧客に提供したソフトウェアに対し、ネットワークを介したメンテナンスおよび技術サポートを提供する企業をいう。一方、ｘＳＰは、一般にＡＳＰとＳａａＳと同じ資源とサービスを提供するとともに、インフラ、セキュリティ、モニタリング、ストレージ、ウェブホスティング、および電子メールなどの従来のＩＴ機能を提供する。そして、ＩＳＰは通常公共のインターネットにコンピュータのユーザを接続するだけであるが、他のプロバイダと同じサービスのいくつかを提供する場合もある。
【０００４】
コンピュータユーザに資源やサービスを提供するコンピュータサービスプロバイダの種類に拘わらず、一般的なモデルでは、コンピュータプロバイダが、１以上のシングルフレームコンピュータまたは「サーバ」などの高機能コンピュータであるサーバコンピュータを運用し、これが公共のインターネットやプライベートネットワークなどのコンピュータネットワークを介して、一般にパーソナルコンピュータ（ＰＣ）であるクライアントコンピュータを個別に操作する複数のユーザにコンピュータ資源やサービスを提供する。このサービスプロバイダのモデルにおいて、ＰＣは一般に、例えばマイクロソフトWindows（登録商標）などの汎用アプリケーションオペレーティングシステムであるアプリケーションプログラムを実行する中央処理ユニット（ＣＰＵ）と、一次ストレージまたはメモリ（ＲＡＭ）と、ハードドライブなどの二次ストレージデバイスと、キーボードおよび／またはマウスなどの入力デバイスと、モニタおよび／またはプリンタなどの出力デバイスと、これらの入出力デバイスを操作するデバイスドライバとを少なくとも具える。
【０００５】
インターネットを介してサービスを提供するサービスプロバイダからソフトウェアアプリケーションを供給する場合、ユーザのリクエストでウェブサーバは、関連するアプリケーションとデータベースサーバと共同して、要求されたアプリケーション（例えば、マイクロソフトワード（登録商標））をウェブ送信可能な形式でインターネットを介してユーザのコンピュータに送り、ここでウェブブラウザが前記ウェブ送信可能な形式のアプリケーションをユーザ互換の形式に戻す。アプリケーションはその後、通常は、プロバイダとユーザ間で同意されたしばらくの期間前記アプリケーションを継続利用可能とされたユーザによる実行のためにＰＣのメモリに格納される。この処理は、このモデルをサポートすべく前もって再プログラミングされたウェブ送信可能なアプリケーションでしか機能しない。このアプリケーション供給システムの一時的な目的は、ＰＣ上にアプリケーションを出現させることであって、このＰＣやその汎用アプリケーションオペレーティングシステムの完全な削除ではない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ネットワークベースまたはＨＴＴＰ／ＨＴＭＬプロトコルベースのアプリケーション供給モデル（本書において、クライアント／サーバモデルまたはウェブ中心モデルと称す。）には既知の多数の利点や欠点があるが、従来特に挙がらなかった１つの重大な欠点は、ユーザのコンピュータエクスペリエンスに関する。コンピュータのユーザがスタンドアロン構成でＰＣを利用する（すなわち、クライアント／サーバ構成での利用でない）場合、このユーザは、彼または彼女のデスクトップ環境で総ての機能へのフルアクセスを得るようユーザインタフェースと相互作用する。Windows（登録商標）環境では、例えば、ユーザインタフェースはユーザに、入出力デバイスの使用、リモートネットワーク上の資源へのアクセス、完全なデスクトップウィンドウ環境（例えばX WindowsまたはMicrosoft Windows Explorer）、およびこのオペレーションシステムやデスクトップウィンドウ環境用に記述された他の総てのアプリケーションとの相互作用を提供する。残念ながら、クライアント／サーバモデルでは、アプリケーションをＨＴＭＬ化し、これをＨＴＴＰに供給し、例えばMicrosoft Internet Explorer、Apple Safari、Mozilla Firefox、Netscape Navigatorなどのウェブブラウザと呼ばれる相関が制限されたクライアントアプリケーションにＨＴＭＬコードを翻訳するという中間ステップのため、コンピュータユーザがステンドアロンモデルと同じデスクトップ環境とすることができない。通常、以下の機能はサービスプロバイダやクライアント／サーバ構成では提供されない：特定のオペレーティングシステムやデスクトップウィンドウ環境用に書かれたアプリケーションを修正することなく実行する機能；デスクトップ環境のインタフェース要素とまったく同じユーザインタフェース要素を、スタンドアロンＰＣ構成と同じように表示するインタラクション；および、完全に外部にホストされたデスクトップウィンドウ環境（X WindowsやMicrosoft Windows Explorer）を利用し、リモートサーバと入出力デバイス（ＵＳＢシリアル・パラレルポートや音声など）をシェアする機能。この違いに起因する明らかな欠点は、ユーザがリモートコンピュータから提供される総ての機能へのフルアクセスを得て、ローカルでのみかリモートコンピュータのサポートスタッフにより維持されるべき完全機能のスタンドアロンＰＣを得ることの従属性を排除しうることである。
【０００７】
サービスプロバイダにより実装されるウェブ中心モデルの別の重大な制限は、クライアント側とサーバ側の双方のスタッフと同様にコンピュータ資源の必要性が本来的に制限されていることである。ウェブ中心モデルでも未だＰＣが必要であるため、同じコンピュータサポートパラダイムが要求される。中央のスタッフは管理が容易で安価であるが、ＰＣは総てが精妙で互いに大きく異なっているため、ＰＣの設置には、使用されるＰＣの種類によって独自のオペレーティングシステムの実装、アプリケーション、およびセッティングが必要である。これらのＰＣの違いは、与えられたＰＣの寿命までそのＰＣを維持するのに必要な習得費用の４−５倍の費用見積もりとなる。シェアコンピュータを用いた中央コンピューティングから離れ、スタンドアロンＰＣを用いて分散コンピューティングを行い、現在ではウェブ中心モデルの一部にＰＣを用いた中央コンピューティングの種類に戻るという間に考慮されなかった重大な制限がある。さらに、ネットワーク帯域幅が、ウェブ中心ＰＣの構築にかかる総費用における他の大きな割合を占める。所定のＰＣにダウンロードされたファイルなどの総てのオブジェクトは、最適パフォーマンスのために同時かつ迅速なネットワーク通信を必要とする。何人かのユーザが大きなファイルを同時にダウンロードする場合、それぞれが利用可能なネットワーク通信容量を全部要求し、ネットワークデバイスがユーザ要求の競合を調整しない限り、インターネットやプライベートなワイドエリアネットワーク（ＷＡＮ）などのネットワーク接続にかなりのボトルネックが生じる。多くの場合、このボトルネックは、インターネットやプライベートＷＡＮがユーザのＰＣに到達するポイントで生ずる。さらに、スタンドアロンＰＣやウェブ中心モデルを用いる場合の企業やホームユーザは、多くの時間と費用を費やし、多くの生産性が失われることを受容しなければならない。ＰＣの運用を維持するには高度な熟練が要求される。このタスクは、インターネットからくる悪意のあるコードと戦うためのソフトウェアのアップデートが増大して、より困難となってきている。今日では、Microsoft Windowsのユーザは通常、定期的に自動アップデートされるいくつかのセキュリティアプリケーション（アンチウィルス、アンチスパイウェア、アンチポップアップ）を有する。このアップデートに加え、ユーザは定期的に、総て同時に生じるオペレーティングシステムのパッチアップデートや他のサードパーティのアプリケーションアップデートを受信する。これらのパッチはコンピュータが不安定となる原因となり、ユーザから生産性を剥奪するものである。最後に、コンピュータの紛失や盗難は、企業と同様にホームユーザにも重大なリスクを与え、これは実際のコンピュータを失うことに留まらず、潜在的により重要な、ユーザの個人的かつ秘密の情報を同時に失うことがある。
【０００８】
上述したウェブ中心モデルの制限の多くは、Jagadish Bandhole, el alに発行された米国特許番号７，０３６，００６（’００６特許）で取り組まれている。この’００６特許に開示されたクライアント−サーバ構成は、「コンピュータ資源および演算動作はユーザにサービスと同様にパッケージ製品として提供される。プラットホームはどのハードウェアとソフトウェアの要素または他の資源の組み合わせであってもよい」（第４段落、６−１０行）。この特許はさらに、この発明では「顧客」または「システム構成」が「資源を割り当ててこれらの資源がどのように利用されるかを特定することによりシステム」を設計できると記載している（第４段落３６-３８行）。「このシステムは、・・・「コンピュータ環境」およびこの環境の一次プロバイダ（すなわちサービスプロバイダ）」が、環境サービスプロバイダ（ＥＳＰ）と称され」、このＥＳＰは「資源と、「コンピュータ（computing）」環境を容易に選択・配分・構成・実行するツールとを提供して収入を得る」（第４段落３９-４６行）。クライアント−サーバ構成のより詳細案説明が、’００６特許の図２に記載されている。この図面と関連する記述は、一般に総てのアプリケーションプロバイダで用いられる「Web Tier２０５」を具える複数の「ウェブサーバ」の利用を開示している。
【０００９】
’００６特許の図１Ａ、１Ｂ、および詳細な説明には、前記コンピュータ環境は、とりわけ、ディスクドライブ、ＣＤＲＯＭドライブ、ディスプレイアダプタ、ネットワークカード、ランダムアクセスメモリ（ＲＡＭ）、中央処理ユニット（ＣＰＵ）、その他の要素、サブシステムおよびデバイスを収容するキャビネットを具えるコンピュータシステムからなることが記載され図示されている。ここにおいて、この特許は、「（明細書記載の）処理を実行するのに適した様々なハードウェアプラットフォームが本発明の利用に適している。」（第７段落１５−１７行）とする。この特許はさらに、その発明が「ＤＣＥ（鯛名ミックコンピュータ環境）を遠隔で構成し、供給し、管理するフレームワーク」を具えることを開示しており、そして「ＤＣＥを構成することは、その資源およびそれらの相互接続を選択することを含む」（第６段落２４−２７行）。さらに、この特許では「ＤＣＥを供給することは、ＤＣＥが機能するのに必要な物理資源を割り当てることを含み」、「本発明は、ＤＣＥを供給するのに必要な物理資源を管理してこれらの資源の割り当て／割当取消の運用をサポートする」（第６段落３２−３６行）。さらに、この特許は、コンピュータ環境は「タイムシェアリング」方式でユーザが利用可能であり、そのクレームは「コンピュータセッションをスケジューリングするためのユーザ入力を受け付けるインタフェース」（第５段落３１−３７行、第１２段落５９−６０行）を開示しており、明細書にはさらに、ユーザが「演算（computing）期間をスケジューリング」し、「必要な資源を確保し顧客に利用可能であることを保証する」機能を提供することが開示されている（第１１段落２１−２４行）。
【００１０】
’００６特許は、表向きはコンピュータ資源をリモートのユーザに広い範囲でリモート供給することを開示するが、この特許に記載のフレームワークを使用してＤＣＥを構成し管理すると、企業やホームユーザによるフレームワークの使用勝手に関する重大な制限が生じる。この特許に記載のように、ＤＣＥは本質的にローカル仕様のコンピュータネットワークがホスティングされたもの（hosted version）である。すなわち、ＤＣＥは、理論的にスケジューリングベース（scheduled basis）で構成されるよう予めプログラムされたネットワークを介して互いに通信するデータベースサーバ、ファイルサーバ、およびＰＣを包含する。したがって、ＤＣＥ環境では、特定の期間における専用のハードウェアの量は、所定期間（例えば２４時間）内に販売できるタイムスロットの数に制限され、これはさらにユーザ間でＤＣＥを再構築するのに必要な時間により制限されてしまう。例えば、４時間のタイムスロットが販売される場合、システムは２４時間で最大６ユーザのみサポート可能であり、これらの人間がシステム全体の費用を分担しなければならない。よりありがちなのは、ピークビジネスアワー（通常は８ＡＭ−６ＰＭ）の間は、このようなシステムに臨時（sunscheduled）やランダムアクセスベースの高い要求があり、どの顧客でも、コンピュータ資源への連続的なアクセスを確保するためにタイムブロック全体を予約することが必要で、システムにその支払いをしなければならない。顧客が必要な資源を確保できる場合でも、この顧客は前もってこれらの資源をスケジューリングしてこれを行い、これらのサービスの独占利用について割増金を支払うことを強制され、明らかに、彼らが他のユーザに確保している間は他の潜在的なユーザはこれらの同じ資源を利用することができない。
【００１１】
さらに、’００６特許の詳細な説明や図面には、ＤＣＥを構築するフレームワークの一部に「ウェブサーバ」を利用することが開示されている（第８段落５１−５５行、６４−６６行、図２、構成要素２０５、図３、構成要素３０９）。この観点から、ウェブサーバの利用から’００６特許記載のシステムの運用費は、ウェブサーバやこのウェブベースモデルをサポートするのに必要なＰＣすべてを確保し、運用し、維持するために付随する費用のため、ウェブベースでないシステムと比較して高くなることが合理的に推測される。さらに、この推論から直接的に、提供されるアプリケーションは「ウェブ利用可能（web enabled）」または一般のアプリケーションの再プログラム版である必要がある。これは利用可能なアプリケーションの数の制限となり、システム全体のサポート費用が高く維持されることとなる。
【００１２】
’００６特許で開示された他の重大な制限は、ＤＣＥを構築するのに必要な時間に関係する。この特許は、ある顧客専用のＤＣＥは、「同じ資源から数分あるいは数秒内に構築される」（第５段落２８−３１行）。また、この特許におけるＤＣＥの説明から、しかしながら、ＤＣＥを構築するのに必要な資源を割り当てて構成するのに実際必要な時間は、あるユーザのタイムスロットが終了して他のユーザのタイムスロットが開始する間にネットワークアドレスや他の識別情報を完全に交換しなければならないため、通常数分はかかると推察される。このダウンタイムは比較的短く、システムがコンピュータ資源のスケジューリングを行う内部的な必要性により顧客から容易に隠すことができるが、これら資源の寿命にわたり、このダウンタイムは有意の運用上の出費となる。
【００１３】
したがって、リモートから利用可能なコンピュータ資源であって、前もってスケジューリングする必要がなく、これらの資源がランダムかつほぼ即座に総てのユーザに利用可能となり、これらの資源を実質的に期間を定めずに利用することができ、連続的に再構築も必要でなく、クライアント側に複雑なＰＣサポートを提供する必要がなく、ローカルＵＳＢ、サウンド、ビデオ、キーボード、マウス、シリアル・パラレルその他のポートなどの設備を含む様々なデスクトップアプリケーションをユーザが修正せずに実行することができるものが求められていた。これらの要望は、以下の明細書に記載されたシステムおよび方法により充足される。
【課題を解決するための手段】
【００１４】
コンピュータサービスを提供するコンピュータシステムが実現され、複数組の仮想コンピュータであって、各組が複数の仮想コンピュータを具え、組内の各仮想コンピュータの仮想オペレーティングシステムがその組の他の総ての仮想オペレーティングシステムと同一であり、いずれか１の組の仮想オペレーティングシステムは他の仮想コンピュータの組の総ての仮想オペレーティングシステムと異なる、複数組の仮想コンピュータと；各仮想コンピュータと、複数のホストコンピュータから対応するホストコンピュータとの間の通信を確立する仮想レイヤと；少なくとも１の仮想アプリケーションプログラムを格納し、各仮想コンピュータと通信するストレージシステムと；末端デバイスのユーザに少なくとも１の仮想オペレーティングシステムの選択を提示し、ユーザから仮想オペレーティングシステムの選択を受け付け、臨時ベース（unscheduled basis）で、前記末端デバイスと、前記複数組の仮想コンピュータからのユーザの仮想コンピュータとの間で前記ユーザがネットワーク通信を確立するのを実現し、前記ユーザの仮想コンピュータは前記ユーザが選択した仮想オペレーティングシステムに適合する仮想オペレーティングシステムを有する、仮想コンピュータセレクタと；前記少なくとも１の仮想アプリケーションプログラムを、前記ユーザの仮想コンピュータおよび前記ユーザが操作する末端デバイスからほぼ即座に利用可能とし、これにより前記ユーザが前記少なくとも１の仮想アプリケーションプログラムとの相互作用を開始可能とする、ストレージシステムと；前記ユーザが前記末端デバイスと前記ユーザコンピュータ間の通信を終了させた場合に前記ユーザの仮想コンピュータを開放する仮想コンピュータエージェントとを具えることを特徴とする。さらに、少なくとも１のアプリケーションを利用する際に、ユーザに末端デバイスにデスクトップエクスペリエンスを提供するシステムが実現される。これら双方のシステムはまた、予想されるユーザ数にサービスするのに必要な仮想コンピュータの数を決定するための統計モデルと；複数のホストコンピュータからの対応するホストコンピュータから前記ユーザの仮想コンピュータに割り当てられる予め決定された量のＣＰＵと；前記少なくとも１の仮想アプリケーションプログラムとのユーザの相互作用に関連し、前記ユーザに送られるべき請求書を作成するのに用いられる請求システムに保存される請求イベントとを具えてもよい。
【発明を実施するための最良の形態】
【００１５】
図１は、コンピュータサービスを提供するためのコンピュータシステム１の一般的な構成の好適な実施例を示し、これは仮想コンピュータシステム２と、末端周辺デバイスシステム３とを具え、各システムが互いにネットワーク４を介した接続により通信する。システム１の各ユーザのために、末端周辺デバイスシステム３は通常、キーボードを有する末端デバイス５と、プリンタなどの１またはそれ以上のローカル周辺デバイス６と、ＵＳＢフラッシュドライブなどのストレージデバイスと、ｉＰｏｄ（登録商標）などのデジタルオーディオデバイスと、あるいはパーソナルデジタルアシスタントやラップトップコンピュータなどの１またはそれ以上のモバイルデバイス７とを具える。本明細書において、「ローカル周辺デバイス」とは、ユーザのすぐ周辺の環境内にあるデバイスをいう。末端デバイス５、ローカル周辺デバイス６、モバイルデバイス７はそれぞれネットワークスイッチ８に接続され、これがルータ９に接続され、これがネットワーク４に接続され、これが仮想コンピュータシステム２に接続されている。別の実施例では（図示せず）、少なくとも１のプリンタが、ネットワークスイッチ８に直接接続されるのではなく、末端デバイス５に直接接続されてもよい。図２に示す別の実施例では、コンピュータシステム１がリモート周辺デバイスシステム１０を具え、ここでは末端周辺デバイスシステム３に関して説明したのと同じ種類の１またはそれ以上のリモート周辺デバイスがネットワークスイッチ１２に接続され、これがルータ１３に接続され、これがネットワーク４に接続され、これが仮想コンピュータシステム２に接続されている。本明細書において、「リモート周辺デバイス」とは、ユーザのすぐ周辺環境内にはないデバイスを意味する。
【００１６】
本明細書において、「末端デバイス」とは、組み込まれたオペレーティングシステムを実行するために必要なＣＰＵ、ＲＡＭ、およびストレージといったコンピュータ資源の量を提供するコンピュータデバイス（computational device）であり、前記オペレーティングシステムは、総てのアプリケーションコードを実行し総てのデータを格納する中央コンピュータシステムに対する入出力の提供が機能的に制限されている；利用可能な末端デバイスは、Neoware e100、Neoware e370、Ntavo6020p、およびNokia 770である。この観点から、「末端デバイス」は、機能的に制限のない汎用オペレーティングシステムを実行する目的で、例えばＣＰＵ、ＲＡＭ、およびストレージなどの所定のコンピュータ資源の量を提供し、自己のＣＰＵで総てのアプリケーションコードを実行し、総てのデータを自己のストレージハードウェア内に格納する「パーソナルコンピュータ」を含まない。「コンピュータデバイス」とは、数学的処理の実行、論理タスクの実行、これら処理やタスクの結果を保存する機能を有する様々な電子デバイスをいう。「デスクトップエクスペリエンス」とは、ある末端デバイスにおいてユーザにプログラムが、ネットワークを介して他のコンピュータやデバイスと通信を行わず、したがって他のコンピュータやデバイスからそのコンピュータ資源を何も受けていない「スタンドアロン型のパーソナルコンピュータ」上にあるのとまったく同じように見える仮想アプリケーションの見た目と機能をいう。「ネットワーク」または「ネットワーク接続」は、２またはそれ以上のコンピュータデバイスにおいて、これらのデバイスが入力を送信し出力を受信しうる物理的または論理的なリンクを含む。さらに、本書において特に他の明示がなければ、「ユーザ」または「ネットワークユーザ」は、彼または彼女のコンピュータ資源の一部または全部をネットワーク上の他のコンピュータやデバイスから取得している人物をいう。
【００１７】
図３を参照すると、仮想コンピュータシステム２の好適な実施例がより詳細に示されており、このシステムは、仮想コンピュータシステム２から情報を受信しネットワーク接続４を利用して末端デバイスや周辺システム３との通信を確立する、プログラムされた仮想コンピュータセレクタ２５を具える。一般に、この仮想コンピュータセレクタ２５は末端デバイス５のユーザに、例えばこのユーザが利用したいオペレーティングシステムや、一実施例では所望の多数のＣＰＵ、メモリ、ストレージなどの様々なコンピュータ資源オプションを提供する。ユーザがコンピュータ資源を選択すると、仮想コンピュータセレクタ２５が、このユーザに独占使用させるために複数の仮想コンピュータから１の仮想コンピュータを選択する。この仮想コンピュータシステム２はまた、該仮想コンピュータシステム２の各ユーザにユーザアカウントを設定するのに使用されるアカウント管理用にプログラムされたコンピュータシステム２６を具える。認証サービス用にプログラムされたコンピュータシステム２７を用いて、システム２にログインしようとするユーザに、このシステム２が提供するコンピュータ資源の利用が許可されているかが確認される。このため、認証サービスシステム２７は、認証ユーザの利用のために仮想コンピュータシステム２に登録されたすべての末端および周辺デバイスを同定する周辺デバイスデータベースを備える。リモートの周辺デバイスシステム１０に関しては、このデータベースはさらに、各リモート周辺デバイス１１の物理的な一を特定するグローバルポジショニングシステム（ＧＰＳ）情報を具える。仮想コンピュータシステム２の各ユーザがネットワーク４に安全に接続できるようにセキュリティサービス用にプログラムされたコンピュータシステム２８が設けられている。
【００１８】
好適な実施例において、仮想コンピュータシステム２はさらに複数の同一ホストコンピュータ１５を具え、各ホストコンピュータの動作と制御は同一ホストオペレーティングシステム１６を用いて提供される。これら複数のホストコンピュータ１５として利用可能なものはSun Microsystemのx86 Blade（登録商標）Systemであり、ホストオペレーティングシステム１６として利用可能なものは、多分、例えば、Linuxオペレーティングシステムの特定バージョンまたは派生体であって、マルチコア／マルチプロセッササポート、５４ビットサポート、ＵＳＢオーディオサポート、および他の効率的かつ高ボリュームの仮想コンピュータオペレーションを可能とする調整を有するものである。複数のホストコンピュータ１５からの各ホストコンピュータには仮想化レイヤ１７が設けられ、これは一般にホストコンピュータのＣＰＵ、ＲＡＭ、およびストレージを用いる仮想コンピュータとその仮想オペレーティングシステムを実現するソフトウェアプログラムである。この仮想化レイヤ１７として利用可能なものは、VMWareのVMWare Server GSX（登録商標）がある。さらに、複数のホストコンピュータ１５からの各ホストコンピュータは、複数の仮想コンピュータと連係しており、各仮想コンピュータは予め設定されたオペレーティングシステムを有する。例えば、図３に示すように、複数のホストコンピュータ１５のうちの１のホストコンピュータは、複数の同一仮想コンピュータの第１の組と連係し、この第１の組内の各仮想コンピュータは、図面において仮想コンピュータ／仮想ＯＳ２０（１）、仮想コンピュータ／仮想ＯＳ２０（２）、・・・仮想コンピュータ／仮想ＯＳ２０（ｎ）として示す同一の仮想オペレーティングシステム（例えば、Microsoft Windows（登録商標）の仮想化版）を有する。同様に、前記複数のホストコンピュータ１５からの別の１のホストコンピュータは、複数の仮想コンピュータの第２の組と連係し、この組内の各仮想コンピュータは、第１の組の同一仮想コンピュータで動作する仮想オペレーティングシステムとは異なる同一の仮想オペレーティングシステム（例えば、Unix（登録商標）の仮想化版）を有し、これらの仮想コンピュータとこれに連係する仮想オペレーティングシステムは、図面において仮想コンピュータ／仮想ＯＳ２１（１）、仮想コンピュータ／仮想ＯＳ２１（２）、・・・仮想コンピュータ／仮想ＯＳ２１（ｎ）として示されている。同一仮想コンピュータの一意の組の数は、この仮想コンピュータシステム２内に含まれる異なる種類の仮想オペレーティングシステムの数と等しく、これらの仮想コンピュータの組が図３において仮想コンピュータ／仮想ＯＳＮ（１）、仮想コンピュータ／仮想ＯＳＮ（２）、・・・仮想コンピュータ／仮想ＯＳＮ（ｎ）として示されている。さらに、複数の仮想コンピュータの所定の組にある同一仮想コンピュータの数は、この複数の仮想コンピュータに連係しているホストコンピュータの演算能力によってのみ制限される。この観点から、ホストコンピュータの能力を超えそうな場合、システムの提供者は、仮想コンピュータ２により使用されるブレードシステムに単に別のブレードを加えて予想される追加の負荷に適応させればよいという特徴がある。この特徴��、同一仮想コンピュータ一組と連係する複数のホストコンピュータ１５からの単一のホストコンピュータを記載した図３には明示されていないが、仮想コンピュータシステム２には、各組にある同一仮想コンピュータの複数の組を作成することが含まれる。
【００１９】
コンピュータシステム１が使用する仮想コンピュータの数に関し、統計モデルを用いて、予期されるユーザの数にサービスを滞りなく提供するのに必要な仮想コンピュータの数を特定することができる。最初に、プロバイダは予期される要求を越える数の仮想コンピュータを提供したいとし、次にこのプロバイダの経験に基づいて、プロバイダは過度に多くのユーザの受付を開始し、それでもこのシステムは総てのユーザに常に利用可能であると実質的に保証することができる。これについて、ユーザの要求が利用可能な仮想コンピュータの数を超えた場合でも、プロバイダはこのようなときのために確保しておいた１またはそれ以上のブレードサーバを追加することにより、迅速に利用可能な仮想コンピュータの数を増やすことができる。新たな仮想コンピュータを加えるのに必要なダウンタイムは数分のオーダーであり、パーソナルコンピュータのユーザにとってもっとありがちな例えばハードドライブが壊れたり一日または数日コンピュータが動作不能となったりするよりはるかに少ない。これに関し、特に2004 Workshop on High Performance Switching and Routing に関して発行されたFeng Langらによる「Piecewise Linear Approach to Overbooking」の文献を参照し、この著者はネットワークプロバイダによるオーバーブッキングへの区分線形ファンクションの適用について記載している。この文献記載のアプローチは、本明細書記載のシステム１の統計モデルとして利用可能である。
【００２０】
さらに図３に示されるように、仮想コンピュータシステム２は、アプリケーションオンデマンド用にプログラムされたコンピュータシステム３０と、テンプレート用にプログラムされたコンピュータシステム３１と、コンピュータストレージシステム３２と、請求用にプログラムされたコンピュータシステム３３とを具える。アプリケーションオンデマンド用システム３０は、ユーザに利用可能とされる可能性のある各ソフトウェアアプリケーションのファイルサーバを保存するために設けられる。これらのアプリケーションは、仮想コンピュータシステム２の所有者および運営者（通常本書では「プロバイダ」と称する）によりアプリケーションオンデマンドシステムで利用可能とされ、および／または、アプリケーションはユーザによってこのアプリケーションオンデマンドシステム２６に提供されてもよい。いずれの場合でも、アカウント管理システム２６は所定のユーザにどのアプリケーションの利用が認められているかを記録しており、その情報をアプリケーションオンデマンドシステム３０に提供する。どのアプリケーションも仮想コンピュータシステム１のユーザにアクセスされる前に、しかしながら、アプリケーションを「仮想化」する必要があり、すなわちアプリケーションは別のコンピュータを用いてランチ（launch）され、仮想化アプリケーション設定を含む仮想化されたアプリケーションは、ストレージ内で見えるのと同じようにそのアプリケーションをコピーすることによって取得され、ストレージシステムサーバ３２のストレージ内にコピーが保存される。この仮想化されるアプリケーションは、仮想アプリケーション実行環境（しばしば「パッケージャ」と呼ばれる）で実行され、これはこれがターゲットの仮想のコンピュータとオペレーティングシステムであるように作用する。インストールプログラムが実行され、仮想化されるアプリケーションはファイルをコピーし、ソフトウェア／オペレーティングシステム設定を確立し、標準の構成データベースエントリを生成する。利用可能な構成データベースの例としては、MicrosoftのActive Directoryがある。これらすべての動作は仮想化アプリケーションパッケージに取り込まれ、これが他のコンピュータに、各仮想コンピュータに手作業でこのアプリケーションをインストールする必要なく安全な方式で利用可能にされる。このプロセスはまた、仮想アプリケーションにセキュリティ性と信頼性を与え、これによりプロバイダは認証ユーザのみが所定のアプリケーションにランチできるようにすることができ、またプロバイダが後述するシステムテンプレートに基づいて一般的な仮想コンピュータの交換可能な組のいずれかからこのアプリケーションをランチすることが可能となる。
【００２１】
テンプレートシステム３１は、この仮想コンピュータシステム２がユーザに利用可能とする各オペレーティングシステムのコピーまたはテンプレートを有する。オペレーティングシステムは、一般にインテルやｘ８６プロセッサプラットホームと呼ばれるものと互換性のある様々なシステムであり、すべてのMicrosoft Windows (R) のバージョン、Unix (R)、Solaris (R)、MacOS X (R)（ｘ８６バージョン）、および様々なLinux (R)を含む。これらの公に入手可能なオペレーティングシステムに加え、ユーザはカスタマー提供アプリケーションを実行する必要があれば、インテルｘ８６プロセッサプラットホームとの互換性があるオペレーティングシステムである限り、カスタムしたオペレーティングシステムを提供してもよい。しかしながら、アプリケーションオンデマンドシステム３０と同様に、仮想コンピュータシステム２のユーザからオペレーティングシステムがアクセスされる前に、このオペレーティングシステムを「仮想化」する必要があり、すなわち別のコンピュータを用いてこのオペレーティングシステムをランチし、このオペレーティングシステムをストレージ内で見えるのと同じようにコピーして、当該コピーを仮想化オペレーティングシステムを含むオペレーティングシステムテンプレートとしてストレージシステム３２のバージョン管理サブシステムに保存することにより仮想化する。システムテンプレートを完了すべく、追加の情報と共通利用されるユーティリティ／設定がベースのオペレーティングシステムのインストールに追加される。この追加のユーティリティには、オペレーティングシステムのパッチ、アンチウィルスアプリケーション、アンチスパイウェアアプリケーション、アンチマルウェアアプリケーション、ファイル暗号化／復号化ソフトウェア、およびアンチポップアップソフトウェアが含まれる。追加の設定には、認証情報、ネットワーク情報、ローカルのログイン／パスワード、およびセキュリティ設定が含まれる。システムテンプレートが完成しテストされたら、バージョンナンバが付与され、バージョン管理システム内に保存され、これがファイルストレージシステム３２の実際のファイルを保持する。新しいオペレーティングシステム、オペレーティングシステムパッチ、ユーティリティ、およびセッティングはテストされるごとに、所定のシステムの新バージョンが生成され、この新バージョンはその後バージョン管理システムに保存され、これがストレージシステム３２上でファイルを保温し、この新バージョンから確立された現在のテンプレートの位置へとリンクが確立される。テンプレートシステム３１はまた、各オペレーティングシステムを新リリースで更新するのにも用いられる。所定のオペレーティングシステムの仮想化コピーがバージョン管理システムに保存されるのと同時に、このオペレーティングシステムの仮想化されていないコピーがストレージシステム３２に保存され、基本のオペレーティングシステムインストレーションを作成する際に用いられる。新たなオペレーティングシステムがリリースされると、オペレーティングシステム仮想化プロセスが繰り返される。パッチがリリースされると、現在のシステムテンプレートは別のコンピュータにロードされ、パッチ��インストールされ、更新されたバージョンが新バージョンとしてテンプレートシステム３１に保存され、現在のバージョンへのリンクがこれに着くよう変更され、仮想化された更新バージョンがストレージシステム３２のバージョン管理システムに保存される。さらに、テンプレートシステム３１は、仮想コンピュータ用にプログラムされたエージェントを具え、これが仮想コンピュータセレクタ２５に登録されている。通常、仮想コンピュータエージェントは、各仮想コンピュータの動作を監視し、特にユーザが仮想コンピュータからログオフするのを検出して、このコンピュータをすぐに他のユーザに利用可能とする。
【００２２】
総てのアプリケーションとこれらに付随する設定の仮想化コピーを具えるのに加え、ストレージシステム３２は、図５により詳細に示すように、ユーザファイルと、ユーザ設定とを具えるとともに、上述のようにストレージシステム３２内のバージョン管理システムは、仮想コンピュータシステム２に提供された各オペレーティングシステムの仮想化コピーを具える。最後に、請求システム３３は、図６に関連してより詳細に説明するが、システム１のプロバイダとユーザ間の請求合意の記録を具え、ユーザに送られる請求書に含められる料金を算出するのに用いられる課金イベントを追跡する。
【００２３】
図４を参照すると、例えば仮想コンピュータ／オペレーティングシステム２０（１）であって１のユーザに独占的かつ臨時の使用に供される単一の仮想コンピュータが作成される方法がフローチャートに記載されている。このフローチャートおよび以下の説明は単一の仮想コンピュータ２０（１）の作成のみを説明するが、この説明は仮想コンピュータシステム２内のすべての仮想コンピュータの作成に適用することができる。ステップ１において、仮想オペレーティングシステムと例えばパッチ、ユーティリティ、セッティング、および仮想コンピュータエージェントなどの関連ソフトウェアを具えるシステムテンプレートが、ストレージシステム３２のバージョン管理システムからコピーされ、複数のホストコンピュータ１５からの１のホストコンピュータに保存される。ステップ２において、システムテンプレートが、ホストコンピュータと通信する新たな仮想コンピュータ２０（１）として仮想化レイヤ１６とともに登録され、この登録プロセスは複数の仮想コンピュータを作成するために繰り返してもよい。ステップ３において、システムＩＤなどの一意の仮想コンピュータ識別子が仮想コンピュータ２０（１）の仮想オペレーティングシステムで生成され、この仮想コンピュータ２０（１）に関連づけられる。ステップ４において、他の一意の仮想コンピュータ識別子が、認証サービス２７、アカウント管理２６、およびセキュリティサービス２８に登録され、仮想コンピュータ２０（１）が始動したら動的にネットワークアドレスを受信して仮想コンピュータエージェントがこのネットワークアドレスを仮想コンピュータセレクタ２５に登録する。ステップ５では、ホストコンピュータのＣＰＵ、メモリ、ストレージが、適切なユーザファイル、ユーザ設定、仮想化アプリケーションおよびその設定とともに、仮想コンピュータ２０（１）とユーザの末端デバイス５で利用可能となる。ユーザに利用許可されるＣＰＵ、メモリ、ストレージの量は、ユーザがシステムに登録したときかその後に、アカウント管理システム２６に記録されたこれらの資源に対するユーザの指定によって決定される。若しくは、ユーザは予め設定されたデフォルトのＣＰＵ、メモリ、ストレージの量を選択してもよい。仮想化レイヤ１６は、アカウント管理システム２６と連係して、ユーザにどの資源の利用が許可されているかを把握し、末端デバイス５のユーザから要求されたときにＣＰＵ、メモリ、ストレージ、およびその他のコンピュータ資源を確実に利用できるようにする。総ての設定、一次ファイル、およびユーザが必要とする一意の特定されたファイルは、ログイン時にストレージシステム３２からコピーされるかストレージシステム３２から直接読み出され、ログアウト時に消去される。ステップ６において、仮想コンピュータ２０（１）の入出力機能がユーザの末端デバイス５に利用可能とされ、末端デバイス５の入出力機能が仮想コンピュータ２０（１）に利用可能となる。ステップ７において、ユーザは末端デバイス５を用いて仮想コンピュータ２０（１）に臨時に（unscheduled basis）アクセスし、このユーザに前もって許可されたアプリケーションを使用してデスクトップエクスペリエンスを取得する。ステップ８にお���て、ユーザがアプリケーションの使用を終了したら、このユーザは仮想コンピュータ２０（１）からログオフし、ステップ９でこのユーザのユーザファイル、仮想アプリケーション、および設定へのアクセスが終了され、仮想コンピュータ２０（１）はその後再構成することなく直ちに他のユーザによって利用可能となる。ステップ１０のいて、図６に関連して後述する課金イベントが、請求システム３３に記録される。
【００２４】
図５は、ストレージシステム３２と、仮想コンピュータシステム２内の仮想コンピュータへネットワーク４を介して接続された末端デバイス５を利用するユーザによるその利用とを説明する図である。ステップ１で、ストレージシステム３２内でファイルシステムが作成され、これにはコンピュータシステム１の利用が認められた総てのユーザについてのユーザファイルと設定と、アプリケーションの一部または全部の使用を認められたユーザに利用可能な仮想アプリケーションと、仮想コンピュータを作成するのに使用する各オペレーティングシステムの最新バージョンのテンプレートを含むバージョン管理システムとが含まれる。ステップ２で、ストレージシステム３２内のファイルにアクセスするユーザまたはグループ許可が、アカウント管理システム２６によって確立される。ステップ３で、例えばCommon Internet File Service （ＣＩＦＳ）、Server Message Block（ＳＭＢ）、および／またはNetwork File Services（ＮＦＳ）などの「ファイル共有プロトコル」の１またはいくつかを用いて、仮想コンピュータシステム２内の少なくとも１の仮想コンピュータにストレージシステム３２が利用可能となる。ステップ４で、ユーザがコンピュータシステム１にログインするときに認証サービスシステム２７でユーザの信用証明（credentials）が確認され、ステップ５でこのユーザに割り当てられた仮想コンピュータがユーザの信用証明をキャッシュする。ステップ６で、ユーザはストレージシステム３２内のファイルにアクセスを試み、ステップ７で、認証サービスシステム２７により、またこの認証サービス２７から追加の信用証明が要求される場合に、ユーザの信用証明が確認される。認証サービスシステム２７がストレージシステムのファイルへのユーザのアクセスを許可すると、一連のファイル共有プロトコルを用いて、ユーザ用の仮想コンピュータでこれらのファイルが利用可能となる。ユーザが仮想コンピュータシステム２をログアウトすると、ステップ９で、ストレージシステム３２へのユーザのアクセスが終了される。ステップ１０で、ストレージシステム３２からのこのユーザのファイル利用に関連する課金イベントが請求システム３３に記録される。
【００２５】
請求システム３３が図６に示されている。ステップ１で、ユーザが仮想コンピュータおよび関連する資源を使用する課金基準が設定される。好適な実施例では、何通りかの課金オプションが利用可能である。例えばユーザは、ユーザが仮想コンピュータへの臨時かつ独占的なアクセスを行う都度「請求イベント」として課金される所定の「固定料金」の支払いに同意してもよく、この料金は他の所定の固定費用と組み合わされてもよく、これには例えば、仮想コンピュータがホストコンピュータのＣＰＵとメモリにアクセスする都度、および／またはユーザがアプリケーションやストレージにアクセスする都度などがある。経済的観点から、この固定料金は長期間にわたり連続的にシステム資源を使用する個人またはグループにとって最も利点となる。代替的に、あまり頻繁にシステム資源を使用しない個人やグループには、このユーザがどれだけの間仮想コンピュータにログインしたたが請求イベントとして課金される所定の「変動料金」の支払いを合意する方が利益となり、ここでも料金はユーザがＣＰＵ、メモリ、および／またはアプリケーションを使った期間によって課金される他の所定の変動料金と組み合わさってもよい。双方の請求方法において、ユーザがＣＰＵを使う量は、このユーザがアカウントを作るときやそれ以降いつでも、ユーザに割り当てられたＣＰＵの量に基づいて調整されてもよい。当然、固定と変動方法の特徴を組み合わせていくつかの異なる請求プランが考案されてもよい。ステップ２では、ＣＰＵ、メモリ、ストレージ、アプリケーション等のコンピュータ資源が「請求イベント」に関連づけられる。ステップ３で、ユーザに発生する請求イベントを追跡するために、コンピュータシステムの各ユーザに請求識別コードが関連づけられる。その後ステップ４で、ユーザが仮想コンピュータと相互作用するごとに、ユーザに発生する請求イベントが請求システム３３内に保存される。ステップ５で、請求システム３３は、ユーザに関してこのユーザに発生する請求イベントを用いて、コンピュータシステム１の使用料金を算出し、コンピュータシステム１のプロバイダはユーザに支払い請求書を送る。代替的に、コンピュータシステム１のプロバイダがさらに他の課金サービスをユーザに提供し、これらのサービスの請求にサードパーティの請求プログラムを用いる場合、請求システム３３は請求イベント情報を、関連する料金計算とともに、直接的にプロバイダの請求パッケージシステムに送り、ここでコンピュータシステム１を使用する料金が、ユーザに送られる前にサードパーティの請求プログラムに統合される。
【００２６】
図７は、あるコンピュータプロバイダが提供するコンピュータ１のユーザの利用と相互作用を説明する図である。ステップ１で、ローカルとリモートの周辺デバイス６、１１がそれぞれ認証サービス２７に登録され、これがすべての周辺デバイスを仮想コンピュータに利用可能にする。ステップ２で、システム１の潜在的ユーザは、ユーザアカウントを設定しこのユーザが利用を希望するアプリケーションや、このユーザに利用可能なオペレーティングシステムのプールのなかからこのユーザが使用を希望するオペレーティングシステムの種類の好みを表示するために、アカウント管理システム２６にアクセスする。このユーザはまた、このユーザがアクセスを希望するＣＰＵ、ＲＡＭ、ストレージ、または他のハードウェア資源を表示してもよく、あるいは、このユーザはアカウント管理システム２６がこれらの資源のデフォルトの量を選択できるようにしてもよい。ステップ３で、プロバイダがこの潜在的ユーザをシステム１の新たなユーザとして承認する場合、端末デバイス、キーボード、マウス、プリンタ、その他の考え得るローカルの周辺デバイス６がこのユーザに提供されるか、ユーザから個別に求められる。ステップ４で、ユーザの端末デバイス５と仮想コンピュータシステム２の間にセキュアなネットワーク接続が確立される。ステップ５で、ユーザは端末デバイス５とキーボードを用いて仮想コンピュータシステム２にログインし、認証サービスシステム２７がこのユーザを認証し、仮想コンピュータシステム２に認証されたユーザのログインを通知する。ステップ６で、仮想コンピュータセレクタ２５はユーザの端末５に、ユーザのオペレーティングシステムやハードウェアの好みに基づいてオペレーティングシステムの選択肢がユーザに提示されたインタフェースを表示する。ステップ７で、オペレーティングシステムのユーザの選択に基づいて、仮想コンピュータセレクタ２５は、端末デバイス５に仮想コンピュータの適切なネットワーク亜ＯＤレスを提供することにより、例えば仮想コンピュータ／仮想オペレーティングシステム２０（１）といった仮想コンピュータとユーザの端末デバイス５との間に独占的な通信リンクを設立し、これによりユーザに臨時かつ専用かつ独占的な仮想コンピュータの使用が提供される。ステップ８で、端末ユーザは、仮想コンピュータセレクタ２５から提供された仮想コンピュータのアドレスを用いて選択された仮想コンピュータに接続し、ステップ９で仮想コンピュータセレクタ２５と端末デバイス５間の接続が遮断される。ステップ１０で、請求システム３３は、ソフトウェアアプリケーションとハードウェアのユーザの利用に基づいて生成される請求イベントの監視を開始し、これがより具体的に図６で説明されている。ステップ１１では、ストレージシステム３３に保存されたユーザファイルと設定（例えば「Home Directory」）が、仮想コンピュータと端末ユーザに利用可能となる。ステップ１２で、ユーザファイルと設定がユーザが選択した仮想化アプリケーションで利用可能となる。ステップ１３で、末端デバイス５と仮想コンピュータはネットワークプロトコルを用いて入出力機能を共有し、ローカルとリモートの周辺デバイス６、１１はそれぞれ、仮想コ���ピュータと入出力機能を共有するためにネットワークプロトコルとともに認証サービスを利用する。ステップ１４で、アプリケーションオンデマンドシステム３０が、あるユーザがシステム２にログインしたことを検知して、このユーザに認められたアプリケーションをアカウント管理システム２６から取得する。ステップ１５で、アプリケーションオンデマンドシステム３０は、ユーザが選択したアプリケーションが含まれる仮想化アプリケーションパッケージの存在を確認する。ステップ１６で、アプリケーションオンデマンドシステム３０とストレージシステム３２は、このユーザのアプリケーションパッケージを仮想コンピュータに配信する。ステップ１７で、ユーザは末端デバイスとローカルの周辺デバイス６を用いて、仮想アプリケーションを開くことにより仮想コンピュータと相互作用し、ここで仮想アプリケーションは実質的に瞬時にユーザに利用可能となり、そしてこのユーザは仮想アプリケーションとの相互作用の際にデスクトップエクスペリエンスを取得する。代替的に、このユーザは、同様に実質的に瞬時にユーザに利用可能となる仮想アプリケーションを開くことによって仮想コンピュータと相互作用するために、モバイルデバイス７と例えば、プリンタなどのリモート周辺デバイス１１を用いて開始してもよく、このユーザは仮想アプリケーションと相互作用する間デスクトップエクスペリエンスを得る。これに関し、認証サービスシステム２７は、モバイルデバイスからＧＰＳ情報などの物理的位置情報を受信して、周辺デバイスデータベースを用いてこのモバイルデバイスに近いリモートのプリンタの場所を示すようプログラムされ、そしてこのプリンタは認証サービスによってこのユーザに利用可能とされる。ステップ１８で、ユーザが仮想コンピュータの使用を終了したら、ユーザは仮想アプリケーションを閉じ、これが仮想コンピュータから消去されるとともに、ストレージシステム３２に保存されていた様々なデータを保存する。ステップ１９で、ユーザは仮想コンピュータからログアウトし、仮想コンピュータエージェントは仮想コンピュータを開放し、これが再構成することなく直ちに他のユーザに利用可能となる。最後に、ステップ２０で、図６でより詳細に説明したように、課金イベントの発生に応じて仮想コンピュータの使用について請求される。
【００２７】
上述したコンピュータシステム１は、従来のシステムに対しいくつもの有意な商業的応用性と利点を有する。複数の仮想コンピュータを使用することにより、システム１は、各ユーザに設定および構成され、異なるユーザには再構成されるべき物理的なハードウェアの使用を必要としない。むしろ、システム１の「ハードウェア」は複数の仮想コンピュータであり、これらは実際に、ハードウェアへのソフトウェアの実装である仮想コンピュータが機能する複数の仮想コンピュータである。好適な実施例では、複数の仮想コンピュータは同時に「生き」ており、すなわち使用されていない総ての仮想コンピュータはランダムに、即座かつ自動的にシステム１の各認証ユーザがシステム１にログインしたときにに利用可能となり、さらにあるユーザは仮想コンピュータを実質的に期間の制限無く使用してもよい。従来のシステムでは、従来技術の章で参照した’００６特許のように、各Dynamic Computing Environmentを構成するのに有限の時間（数分または数秒内）でユーザが利用可能となる。自然、コンピュータ設備の使用期間にわたり、各ユーザがシステム資源へのアクセスが提供される前に前記環境を構成するのに必要なコンピュータのダウンタイムは、システム運用において有意の出費となる。コンピュータシステム１では、このコンピュータのダウンタイムが完全に排除される。
【００２８】
コンピュータシステム１の他の重要な利点は、システムが、当該システム１により提供される仮想コンピュータの各ネットワークユーザに「デスクトップエクスペリエンス」を生成しうることである。結果として、最初にスタンドアロン型コンピュータシステムの動作に制限されていたシステム１のユーザは、システム１が提供する見た目、操作感、および、ＵＳＢデバイス、音声、映像、キーボード、マウス、シリアル、パラレル、および他のポートを含むアプリケーションの機能が、スタンドアロン型コンピュータの同じアプリケーションで利用していた見た目、操作感、機能と同一であるため、新たなシステムを学んで慣れる必要がなくなる。これに関し、ネットワークユーザが「パーソナルコンピュータ」ではなく「末端デバイス」を使用することは、パーソナルコンピュータを購入して継続的にサポートするのに必要な実質的な出費が排除されることを意味する。
【００２９】
コンピュータ１のさらなる利点は、システムのユーザが’００６特許のようにコンピュータセッションを計画する必要がないことである。’００６開示のシステムは、互換性のあるオペレーティングシステムを用いる物理的なコンピュータがアプリケーションを実行することが必要であるとともに、ハードウェアの入手に明らかに限界があるため、コンピュータセッションの予約が必要である。システム１は、このシステムによる仮想コンピュータの使用のため、および統計モデルを利用して認証ユーザに対し常に十分な数の利用可能な仮想コンピュータがあるようにするため、特定のハードウェアの予約（schedule）を行わない。ユーザの数が統計上予め算出された最大値に近づいたら、予想される追加ユーザに供するために追加の仮想コンピュータを単に作動させればいいのである。
【００３０】
コンピュータシステム１を好適な実施例および特定の他の実施例について説明したが、当業者は、これらの実施例の根底にある原理から逸脱することなく他の実施例や構成を提供することができる。本発明の範囲は、添付のクレームによって定義される。
【図面の簡単な説明】
【００３１】
【図１】図１は、コンピュータサービス提供システムおよび方法の一般的な構成のブロック図である。
【図２】図２は、コンピュータサービス提供システムおよび方法の一般的な構成のブロック図であり、リモート周辺デバイスの利用を示す。
【図３】図３は、コンピュータサービス提供システムおよび方法の一般的な構成のブロック図であり、仮想コンピュータシステムを示す。
【図４】図４は、仮想コンピュータシステムの構築を説明するフローチャートである。
【図５】図５は、ユーザのストレージシステムの構築と前記仮想コンピュータシステム内での利用を説明するフローチャートである。
【図６】図６は、請求システムの構築と前記仮想コンピュータシステム内での利用を説明するフローチャートである。
【図７】図７は、ユーザのシステムとの相互作用とコンピュータサービス提供法補を説明するフローチャートである。
【図１】
2009525531.tif 000003
【図２】
2009525531.tif 000004
【図３】
2009525531.tif 000005
【図４】
2009525531.tif 000006
【図５】
2009525531.tif 000007
【図６】
2009525531.tif 000008
【図７】
2009525531.tif 000009
【手続補正書】
【提出日】平成20年11月7日(2008.11.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータサービスを提供するコンピュータシステムにおいて、
ａ）仮想コンピュータシステムであって、
前記仮想コンピュータシステム内に作成された少なくとも１の仮想コンピュータであって、仮想オペレーティングシステムと、一意の仮想コンピュータ識別子とを具え、ネットワークを介して前記仮想コンピュータシステムにリモートで接続された末端および周辺デバイスシステムから入力を受信し出力を送信する仮想コンピュータと、
前記仮想コンピュータシステム内のホストコンピュータのＣＰＵ、ＲＡＭ、およびストレージを使用するために前記少なくとも１の仮想コンピュータを利用可能とする仮想化レイヤと、
臨時ベース（unscheduled basis）で前記少なくとも１の仮想コンピュータの選択を提供する仮想コンピュータセレクタと、
少なくとも１の仮想アプリケーションプログラムを有するストレージシステムであって、前記少なくとも１の仮想コンピュータと接続しており、前記仮想アプリケーションプログラムを前記仮想コンピュータへ配信するためのストレージシステムと、
を具える仮想コンピュータシステムと、
ｂ）末端および周辺デバイスシステムであって、
前記仮想コンピュータシステムに遠隔接続され通信する少なくとも１の末端デバイスを具え、当該末端デバイスはすべてのアプリケーションコードを実行しすべてのデータを保存する前記仮想コンピュータシステムに入出力を送受信するのに機能が制限されたオペレーティングシステムを有し、前記末端デバイスはアプリケーションコードを実行しうるオペレーティングシステムを有さず前記デバイス内の保存データにアクセスできず、前記末端デバイスはユーザが臨時ベースで前記少なくとも１の仮想コンピュータを選択するために前記仮想コンピュータセレクタにアクセスし、前記仮想コンピュータが前記ユーザにほぼ即座に利用可能となる前記少なくとも１の仮想アプリケーションプログラムにアクセスするために使用し、
前記少なくとも１の仮想コンピュータにリモート接続され通信する少なくとも１の周辺デバイスであって、前記末端デバイスのユーザに臨時ベースで前記周辺デバイスを使用できるようする周辺デバイスを具え、前記仮想アプリケーションプログラムおよび前記周辺デバイスと相互作用する際に前記末端デバイスのユーザにデスクトップエクスペリエンスが提供される、
末端および周辺デバイスシステムとを具えることを特徴とするシステム。
【請求項２】
請求項１のコンピュータシステムにおいて、さらに、予想されるユーザの数にサービスするのに必要な仮想コンピュータの数を決定するのに使用する統計モデルを含むことを特徴とするコンピュータシステム。
【請求項３】
請求項１のコンピュータシステムにおいて、前記少なくとも１の仮想コンピュータには、前記ホストコンピュータから予め定められた量のＣＰＵが割り当てられることを特徴とするコンピュータシステム。
【請求項４】
請求項１のコンピュータシステムにおいて、前記少なくとも１の仮想アプリケーションプログラムとの前記ユーザの相互作用に関連する請求イベントが、前記ユーザに送られる請求書を作成するために請求システムに保存されることを特徴とするコンピュータシステム。
【請求項５】
請求項１のコンピュータシステムにおいて、前記少なくとも１の周辺デバイスが、ローカルの周辺デバイスであることを特徴とするコンピュータシステム。
【請求項６】
請求項１のコンピュータシステムにおいて、前記少なくとも１の周辺デバイスが、リモートの周辺デバイスであることを特徴とするコンピュータシステム。
【請求項７】
ユーザにコンピュータサービスを提供するコンピュータシステムにおいて、
ａ）仮想コンピュータシステムであって、
複数組の仮想コンピュータであって、各組が複数の仮想コンピュータを具え、１つの組内の各仮想コンピュータが一意の仮想コンピュータ識別子と、その組の他のすべての仮想オペレーティングシステムと同一の仮想オペレーティングシステムとを有し、いずれか１の組の仮想オペレーティングシステムは他の仮想コンピュータの組のすべての仮想オペレーティングシステムと異なり、各仮想コンピュータは、前記仮想コンピュータシステムにネットワークを介して接続された末端および周辺デバイスシステムに入出力を送受信する、複数組の仮想コンピュータと、
前記ホストコンピュータのＣＰＵ、ＲＡＭ、およびストレージを使用するために各仮想コンピュータを利用可能とする仮想化レイヤと、
臨時ベース（unscheduled basis）で仮想オペレーティングシステムおよび関連するユーザ仮想コンピュータの選択を提供する仮想コンピュータセレクタと、
少なくとも１の仮想アプリケーションプログラムを有するストレージシステムであって、前記少なくとも１の仮想コンピュータと接続しており、前記少なくとも１の仮想アプリケーションプログラムを前記ユーザ仮想コンピュータへ配信するためのストレージシステムと、
を具える仮想コンピュータシステムと、
ｂ）末端および周辺デバイスシステムであって、
前記仮想コンピュータシステムに遠隔接続され通信する少なくとも１の末端デバイスを具え、当該末端デバイスはすべてのアプリケーションコードを実行しすべてのデータを保存する前記仮想コンピュータシステムに入出力を送受信するのに機能が制限されたオペレーティングシステムを有し、前記末端デバイスはアプリケーションコードを実行しうるオペレーティングシステムを有さず前記デバイス内の保存データにアクセスできず、前記末端デバイスはユーザが臨時ベースで前記少なくとも１の仮想オペレーティングシステムを選択するために前記仮想コンピュータセレクタにアクセスし、前記ユーザ仮想コンピュータが前記ユーザにほぼ即座に利用可能となる前記少なくとも１の仮想アプリケーションプログラムにアクセスするために使用し、
前記ユーザ仮想コンピュータにリモート接続され通信する少なくとも１の周辺デバイスであって、前記末端デバイスのユーザに臨時ベースで前記周辺デバイスを使用できるようする周辺デバイスを具え、前記仮想アプリケーションプログラムおよび前記周辺デバイスと相互作用する際に前記末端デバイスのユーザにデスクトップエクスペリエンスが提供される、
末端および周辺デバイスシステムとを具えることを特徴とするシステム。
【請求項８】
請求項７のコンピュータシステムにおいて、さらに、予想されるユーザの数にサービスするのに必要な仮想コンピュータの数を決定するのに使用する統計モデルを含むことを特徴とするコンピュータシステム。
【請求項９】
請求項７のコンピュータシステムにおいて、前記ユーザ仮想コンピュータには、前記ホストコンピュータから予め定められた量のＣＰＵが割り当てられることを特徴とするコンピュータシステム。
【請求項１０】
請求項７のコンピュータシステムにおいて、前記少なくとも１の仮想アプリケーションプログラムとの前記ユーザの相互作用に関連する請求イベントが、前記ユーザに送られる請求書を作成するために請求システムに保存されることを特徴とするコンピュータシステム。
【請求項１１】
請求項７のコンピュータシステムにおいて、前記少なくとも１の周辺デバイスが、ローカルの周辺デバイスであることを特徴とするコンピュータシステム。
【請求項１２】
請求項７のコンピュータシステムにおいて、前記少なくとも１の周辺デバイスが、リモートの周辺デバイスであることを特徴とするコンピュータシステム。
【請求項１３】
ユーザにコンピュータサービスを提供する方法であって、
ａ）仮想オペレーティングシステムと、一意の仮想コンピュータ識別子とを有する少なくとも１の仮想コンピュータを作成するステップであって、前記仮想コンピュータは末端および周辺デバイスシステムに入出力を送受信するステップと、
ｂ）前記仮想コンピュータシステムと前記末端および周辺デバイスをネットワークを介して接続するステップと、
ｃ）前記少なくとも１の仮想コンピュータがホストコンピュータのＣＰＵ、ＲＡＭ、およびストレージを使用可能とするステップと、
ｄ）前記少なくとも１の仮想コンピュータに接続されたストレージシステムに、少なくとも１の仮想アプリケーションプログラムを保存するステップと、
ｅ）前記末端および周辺デバイスシステム内の末端デバイスの機能を、すべてのアプリケーションコードを実行しすべてのデータを保存する前記仮想コンピュータシステムへ入出力を送受信するのに制限し、前記末端デバイスはアプリケーションコードを実行するオペレーティングシステムを有さず前記デバイス内のストレージにアクセスしない、ステップと、
ｆ）前記末端および周辺デバイスシステム内の前記末端デバイスのユーザに、当該デバイスを使用して前記デバイスと前記仮想コンピュータシステム内の少なくとも１の仮想コンピュータとの間の臨時ベースのリモート接続を確立させ、前記ユーザにほぼ即座に利用可能となる前記少なくとも１のアプリケーションプログラムに前記仮想コンピュータを用いてアクセスできるようにするステップと、
ｇ）前記末端デバイスのユーザに、前記少なくとも１の仮想コンピュータを用いて前記仮想コンピュータと少なくとも１の周辺デバイス間に臨時ベースのリモート接続を確立させるステップと、
ｈ）前記末端デバイスのユーザに、前記仮想アプリケーションプログラムおよび前記周辺デバイスと相互作用する際にデスクトップエクスペリエンスを提供するステップと、
ｉ）前記ユーザが前記末端デバイスと前記少なくとも１の仮想コンピュータ間の通信を終了した場合に前記１以上の仮想コンピュータを開放するステップと、を具えることを特徴とする方法。
【請求項１４】
ユーザにコンピュータサービスを提供する方法であって、
ａ）仮想コンピュータシステム内に、複数組の仮想コンピュータであって、各組が複数の仮想コンピュータを具え、１つの組内の各仮想コンピュータが前記仮想コンピュータの一意の仮想コンピュータ識別子に関連する仮想オペレーティングシステムを有し、前記仮想オペレーティングシステムはその組内の他のすべての仮想オペレーティングシステムと同一であり、いずれか１の組の仮想オペレーティングシステムは他の仮想コンピュータの組のすべての仮想オペレーティングシステムと異なり、各仮想コンピュータは、前記仮想コンピュータシステムにネットワークを介して接続された末端および周辺デバイスシステムに入出力を送受信する、複数組の仮想コンピュータを作成するステップと、
ｂ）前記仮想コンピュータシステムと前記末端および周辺デバイスをネットワークを介して接続するステップと、
ｃ）前記複数の仮想コンピュータからの各仮想コンピュータがホストコンピュータのＣＰＵ、ＲＡＭ、およびストレージを使用可能とするステップと、
ｄ）前記少なくとも１の仮想コンピュータに接続されたストレージシステムに、少なくとも１の仮想アプリケーションプログラムを保存するステップと、
ｅ）前記末端および周辺デバイスシステム内の末端デバイスの機能を、すべてのアプリケーションコードを実行しすべてのデータを保存する前記仮想コンピュータシステムへ入出力を送受信するのに制限し、前記末端デバイスはアプリケーションコードを実行するオペレーティングシステムを有さず前記デバイス内のストレージにアクセスしない、ステップと、
ｆ）前記末端および周辺デバイスシステム内の前記末端デバイスのユーザに、前記末端デバイスを使用してオペレーティングシステムを選択させ、前記デバイスと前記複数の仮想コンピュータからのユーザ仮想コンピュータとの間の臨時ベースのリモート接続を確立させるステップであって、前記ユーザ仮想コンピュータは前記ユーザの選択に適合するオペレーティングシステムを有し、前記ユーザにほぼ即座に利用可能となる前記少なくとも１のアプリケーションプログラムに前記仮想コンピュータを用いてアクセスできるようにするステップと、
ｇ）前記末端デバイスのユーザに、前記ユーザ仮想コンピュータを用いて前記ユーザ仮想コンピュータと少なくとも１の周辺デバイス間に臨時ベースのリモート接続を確立させるステップと、
ｈ）前記末端デバイスのユーザに、前記仮想アプリケーションプログラムおよび前記周辺デバイスと相互作用する際にデスクトップエクスペリエンスを提供するステップと、
ｉ）前記ユーザが前記末端デバイスと前記ユーザ仮想コンピュータ間の通信を終了した場合に前記ユーザ仮想コンピュータを開放するステップと、を具えることを特徴とする方法。
【国際調査報告】
2009525531.tif 000010