(57)【要約】仮想コンピュータを提供するコンピュータシステムを提供する。コンピュータシステムは少なくとも一つの仮想コンピュータテンプレートに基づいてサスペンドされた仮想コンピュータのプールを格納するプールファシリティを含む。提供マネジャはユーザによる一連のシステムログオンリクエストの結果として一連の仮想コンピュータを提供する。提供マネジャはアップデートファシリティ、レジュームファシリティ、及びカスタマイズファシリティを含む。アップデートファシリティは前記若しくは個々の少なくとも一つの仮想コンピュータテンプレートをアップデートする。レジュームファシリティはプールファシリティにより提供されるサスペンドされた仮想コンピュータのプールから仮想コンピュータをレジュームする。カスタマイズファシリティはプールからレジュームされた後仮想コンピュータをカスタマイズしてアクティブ仮想コンピュータを提供する。
2016536661.tif 000002
【特許請求の範囲】
【請求項１】
仮想コンピュータを提供する方法において、
前記方法は、
複数のユーザによる一連のシステムログオンリクエストにより、個々のユーザが、適用されるアップデートを反映する一連の仮想コンピュータを提供されることを保証するステップであって、サスペンドされた仮想コンピュータが少なくとも一つのコンピュータテンプレートに基づくものである、サスペンドされた仮想コンピュータのプールから仮想コンピュータをレジュームすることにより、個々の仮想コンピュータが提供される、ステップと、
アクティブ仮想コンピュータを提供するために、サスペンドされた仮想コンピュータのプールからレジュームされた後に、個々の仮想コンピュータをカスタマイズするステップと、及び、
前記少なくとも一つのコンピュータテンプレートをアップデートするステップと
を含む、方法。
【請求項２】
ユーザによるシステムログオフリクエストに基づいて仮想コンピュータを終了するステップにより、ユーザに提供される仮想コンピュータが定期的にアップデートされることを保証するステップを含む、請求項１に記載の方法。
【請求項３】
一つ若しくはそれ以上の定期的にアップデートされる仮想コンピュータテンプレートに基づいて、プール内にてサスペンドされた仮想コンピュータを維持するステップにより、ユーザに提供される仮想コンピュータが定期的にアップデートされることを保証するステップを含む、請求項１又は２に記載の方法。
【請求項４】
プール内にてサスペンドされた仮想コンピュータを維持するステップは、プール内にてサスペンドされた仮想コンピュータを作成するステップ、及び、サスペンドされた仮想コンピュータが所望のターンオーバレートを有することを保証するステップを含む、請求項３に記載の方法。
【請求項５】
プール内にてサスペンドされた仮想コンピュータを維持するステップは、プール内にてサスペンドされた仮想コンピュータを提供するステップ、及び、より古いサスペンドされた仮想コンピュータをプールから削除すること若しくは除去するステップを含む、請求項３又は４に記載の方法。
【請求項６】
プール内にてサスペンドされた仮想コンピュータを提供するステップであって、個々のサスペンドされた仮想コンピュータは実質的な展開状態でサスペンドされたサービスを有する、ステップを、含む請求項１〜５のうちのいずれか一に記載の方法。
【請求項７】
プール内にてサスペンドされた仮想コンピュータを提供するステップであって、個々のサスペンドされた仮想コンピュータは実質的な展開状態でサスペンドされたリモートデスクトップサービスを有する、ステップを、含む請求項１〜６のうちのいずれか一に記載の方法。
【請求項８】
実質的な展開状態は、使用可能及び動作可能という意味にてサービスが完全作動システムの一部として利用可能である、状態を含む、請求項７に記載の方法。
【請求項９】
複数の仮想コンピュータを提供するために一つ若しくはそれ以上の仮想コンピュータテンプレートをクローンするステップと、異なるユーザクラスに従って仮想コンピュータ上にアプリケーションをインストールするステップと、及び、仮想コンピュータをサスペンドするステップとにより、
プール内にてサスペンドされた仮想コンピュータを提供するステップを含む、請求項８に記載の方法。
【請求項１０】
異なるユーザクラスを収容するために、前記方法は、
前記少なくとも一つの仮想コンピュータテンプレートからクローンされた複数の仮想コンピュータから、アプリケーションをアンインストールするステップを含む、請求項８に記載の方法。
【請求項１１】
プール内にてサスペンドされた仮想コンピュータを作成するステップであって、個々のサスペンドされた仮想コンピュータは実質的な展開状態でサスペンドされたサービスを有する、ステップと、及び、
アプリケーションのインストール若しくはアンインストールが３０秒以下の期間に限定されることを保証するステップと
を含む請求項９又は１０に記載の方法。
【請求項１２】
ユーザのために、レジュームされた仮想コンピュータをカスタマイズするステップが、ユーザのために、セキュリティプロファイルをアロケートするステップを含む、請求項１〜１１のうちのいずれか一に記載の方法。
【請求項１３】
ユーザ分類の変更に応答して、アクティブ仮想コンピュータにアプリケーションをインストールするように若しくは除去するように命令するために、分類アップデートファシリティと通信するステップを含む、請求項１〜１２のうちのいずれか一に記載の方法。
【請求項１４】
サスペンドされた仮想マシンは、再現性のあるサスペンド状態でメモリ内にサスペンドされる、請求項１〜１３のうちのいずれか一に記載の方法。
【請求項１５】
サスペンドされた仮想マシンは、再現性無きサスペンド状態でディスク上にサスペンドされる、請求項１〜１３のうちのいずれか一に記載の方法。
【請求項１６】
サスペンドされた仮想マシンは、再現性のあるサスペンド状態でディスク上にサスペンドされる、請求項１〜１３のうちのいずれか一に記載の方法。
【請求項１７】
仮想コンピュータを提供する方法において、
前記方法は、
少なくとも一つの仮想コンピュータテンプレートを作成するステップと、
前記若しくは各々の少なくとも一つの仮想コンピュータテンプレートがアップデートを要求するかどうか判別するステップと、
前記少なくとも一つの仮想コンピュータテンプレートに基づいてサスペンドされた仮想コンピュータをキャッシュするステップと、
システムログオンリクエストに応答してアクティブ仮想コンピュータを提供するために、キャッシュされたサスペンドされた仮想コンピュータをレジュームするステップと
を含む、方法。
【請求項１８】
個々のサスペンドされた仮想コンピュータは、実質的な展開状態にサスペンドされたサービスによりキャッシュされる、請求項１７に記載の方法。
【請求項１９】
仮想コンピュータを提供する方法において、
前記方法は、
少なくとも一つの仮想コンピュータテンプレートを作成するステップと、
前記若しくは各々の少なくとも一つの仮想コンピュータテンプレートがアップデートを要求するかどうか判別するステップと、
前記少なくとも一つの仮想コンピュータテンプレートに基づいてサスペンドされた仮想コンピュータをキャッシュするステップと、
システムログオンリクエストに応答してアクティブ仮想コンピュータを提供するために、キャッシュされたサスペンドされた仮想コンピュータをレジュームするステップと
を含む、方法。
【請求項２０】
個々のサスペンドされた仮想コンピュータは、実質的な展開状態にサスペンドされたサービスによりキャッシュされる、請求項１９に記載の方法。
【請求項２１】
仮想コンピュータを提供する方法において、
前記方法は、
一連のログインの結果として一連の仮想コンピュータを提供するステップを含み、
一連の仮想コンピュータの、各々の仮想コンピュータを提供するステップは、
サスペンドされた仮想コンピュータのプールから、サスペンドされた仮想コンピュータをレジュームしてレジュームされた仮想コンピュータを提供するステップと、レジュームされた仮想コンピュータをカスタマイズするステップとを含み、プール内にてサスペンドされた仮想コンピュータは少なくとも一つの仮想コンピュータテンプレートに基づくものである、
方法。
【請求項２２】
プール内にてサスペンドされた仮想コンピュータを作成するステップを含み、個々のサスペンドされた仮想コンピュータは、実質的な展開状態でサスペンドされたサービスを有する、請求項２０に記載の方法。
【請求項２３】
仮想コンピュータを提供する方法において、
前記方法は、
サスペンドされた仮想コンピュータをキャッシュするステップと、
システムログオンリクエストに応答して、キャッシュされたサスペンドされた仮想コンピュータをレジュームしてアクティブ仮想コンピュータを提供するステップと
を含む方法。
【請求項２４】
仮想コンピュータを提供する方法において、
前記方法は、
ユーザによる一連のログインの結果として一連の仮想コンピュータを提供するステップを含み、
一連の仮想コンピュータの、各々の仮想コンピュータを提供するステップは、
サスペンドされた仮想コンピュータをレジュームしてレジュームされた仮想コンピュータを提供するステップと、レジュームされた仮想コンピュータをユーザのためにカスタマイズするステップとを含む、方法。
【請求項２５】
仮想コンピュータを提供する方法において、
前記方法は、
ユーザによる一連のシステムログオンリクエストにより、適用されるアップデートを反映する一連の仮想コンピュータをユーザに提供することを保証するステップを含み、
個々の仮想コンピュータは、
サスペンドされた仮想コンピュータのプールから仮想コンピュータをレジュームするステップであって、サスペンドされた仮想コンピュータは少なくとも一つの仮想コンピュータテンプレートに基づくものである、ステップと、サスペンドされた仮想コンピュータのプールからレジュームされた後個々の仮想コンピュータをカスタマイズしてアクティブ仮想コンピュータを提供するステップと、前記少なくとも一つの仮想コンピュータテンプレートを定期的にアップデートするステップと
により提供される、方法。
【請求項２６】
仮想コンピュータを提供するコンピュータシステムにおいて、
前記コンピュータシステムは、
少なくとも一つの仮想コンピュータテンプレートに基づいてサスペンドされた仮想コンピュータのプールを格納するプールファシリティと、
ユーザによる一連のシステムログオンリクエストの結果として一連の仮想コンピュータを提供する提供マネジャと
を含み、
前記提供マネジャは、アップデートファシリティ、レジュームファシリティ、及び、カスタマイズファシリティを含み、
前記アップデートファシリティは、前記若しくは個々の少なくとも一つの仮想コンピュータテンプレートをアップデートし、
前記レジュームファシリティは、前記プールファシリティにより提供されるサスペンドされた仮想コンピュータのプールから仮想コンピュータをレジュームし、
前記カスタマイズファシリティは、サスペンドされた仮想コンピュータのプールからレジュームされた後仮想コンピュータをカスタマイズしてアクティブ仮想コンピュータを提供する、
コンピュータシステム。
【請求項２７】
前記提供マネジャは、システムログオフリクエストに基づいて仮想コンピュータを終了させる終了ファシリティを含み、
前記終了ファシリティは、ユーザに提供される仮想コンピュータが定期的にアップデートされることを保証することの助けとなる、請求項２６に記載のコンピュータシステム。
【請求項２８】
一つ若しくはそれ以上の定期的にアップデートされる仮想コンピュータテンプレートに基づいて、プール内のサスペンドされた仮想コンピュータを維持することにより、前記提供マネジャは、ユーザに提供される仮想コンピュータが定期的にアップデートされることを保証することができる、請求項２６又は２７に記載のコンピュータシステム。
【請求項２９】
前記提供マネジャは、サスペンドされた仮想コンピュータが所望のターンオーバレートを有することを保証することにより、プール内のサスペンドされた仮想コンピュータを維持するように構成されている、請求項２８に記載のコンピュータシステム。
【請求項３０】
前記提供マネジャは、プール内にサスペンドされた仮想コンピュータを作成して、プール内のより古いサスペンドされた仮想コンピュータを削除する若しくは除去することにより、プール内のサスペンドされた仮想コンピュータを維持するように構成されている、請求項２８又は２９に記載のコンピュータシステム。
【請求項３１】
前記提供マネジャは、プール内にてサスペンドされた仮想コンピュータを提供するように構成された作成ファシリティを含み、個々のサスペンドされた仮想コンピュータは実質的な展開状態でサスペンドされたサービスを有する、請求項２６〜３０のうちのいずれか一に記載のコンピュータシステム。
【請求項３２】
前記作成ファシリティは、プール内にてサスペンドされた仮想コンピュータを提供するように構成されており、個々のサスペンドされた仮想コンピュータは実質的な展開状態でサスペンドされたリモートデスクトップサービスを有する、請求項３１に記載のコンピュータシステム。
【請求項３３】
実質的な展開状態は、使用可能及び動作可能という意味にてサービスが完全作動システムの一部として利用可能である、状態を含む、請求項３２に記載のコンピュータシステム。
【請求項３４】
前記提供マネジャは、
前記少なくとも一つの仮想コンピュータテンプレートの一つ若しくはそれ以上をクローンして複数の仮想コンピュータを提供することにより、プール内にてサスペンドされた仮想コンピュータを提供する、作成ファシリティと、
異なるユーザクラスに従ってアプリケーションをインストールするインストールファシリティと、及び、
仮想コンピュータをサスペンドするサスペンションファシリティと
を含む、請求項２７〜３３のうちのいずれか一に記載のコンピュータシステム。
【請求項３５】
前記提供マネジャは、異なるユーザクラスを収容するアンインストールファシリティを含み、
前記アンインストールファシリティは、前記少なくとも一つの仮想コンピュータテンプレートからクローンされた仮想コンピュータからアプリケーションをアンインストールする、請求項３４に記載のコンピュータシステム。
【請求項３６】
ユーザ分類の変更に応答して、アクティブ仮想コンピュータにアプリケーションをインストールするように若しくは除去するように命令する分類アップデートファシリティを含む、請求項２６〜３５のうちのいずれか一に記載のコンピュータシステム。
【請求項３７】
仮想コンピュータをユーザに提供するコンピュータシステムにおいて、
前記コンピュータシステムは、
ユーザによる一連のシステムログオンリクエストに対して一連の仮想コンピュータを提供する提供マネジャを含み、
前記提供マネジャは、レジュームファシリティ、及び、カスタマイズファシリティを含み、
前記レジュームファシリティは、サスペンドされた仮想コンピュータをレジュームし、
前記カスタマイズファシリティは、レジュームされた後仮想コンピュータをカスタマイズする、
コンピュータシステム。
【請求項３８】
仮想コンピュータを提供するコンピュータシステムにおいて、
前記コンピュータシステムは、
仮想コンピュータテンプレートを提供する作成ファシリティと、
修正された仮想コンピュータテンプレートが新しいアップデートにより要求されるか否かを判別するアップデートファシリティと、
仮想コンピュータテンプレートに基づいて、サスペンドされた仮想コンピュータをキャッシュするキャッシュファシリティと、及び、
ユーザによるシステムログオンリクエストに応答して、キャッシュされたサスペンドされた仮想コンピュータをレジュームして仮想コンピュータを提供するキャッシュファシリティと
を含む、コンピュータシステム。
【請求項３９】
前記キャッシュファシリティは、サービスが実質的な展開状態でサスペンドされる状態で、個々のサスペンドされた仮想コンピュータをキャッシュするように構成される、
請求項３８に記載のコンピュータシステム。
【請求項４０】
仮想コンピュータを提供するコンピュータシステムにおいて、
前記コンピュータシステムは、
少なくとも一つの仮想コンピュータテンプレートに基づいてサスペンドされた仮想コンピュータのプールを格納するプールファシリティと、
ユーザによる一連のシステムログオンリクエストの結果として一連の仮想コンピュータを提供する提供マネジャと
を含み、
前記提供マネジャは、アップデートファシリティ、レジュームファシリティ、及び、カスタマイズファシリティを含み、
前記アップデートファシリティは、前記若しくは個々の少なくとも一つの仮想コンピュータテンプレートをアップデートし、
前記レジュームファシリティは、前記プールファシリティにより提供されるサスペンドされた仮想コンピュータのプールから仮想コンピュータをレジュームし、
前記カスタマイズファシリティは、サスペンドされた仮想コンピュータのプールからレジュームされた後仮想コンピュータをカスタマイズしてアクティブ仮想コンピュータを提供する、
コンピュータシステム。
【請求項４１】
前記キャッシュファシリティは、サービスが実質的な展開状態でサスペンドされる状態で、個々のサスペンドされた仮想コンピュータをキャッシュするように構成される、
請求項４０に記載のコンピュータシステム。
【請求項４２】
仮想コンピュータを提供するコンピュータシステムにおいて、
前記コンピュータシステムは、
仮想コンピュータテンプレートを提供する作成ファシリティと、
修正された仮想コンピュータテンプレートが新しいアップデートにより要求されるか否かを判別するアップデートファシリティと、及び、
ユーザによるシステムログオンリクエストに応答して、仮想コンピュータを提供する提供ファシリティと
を含む、コンピュータシステム。
【請求項４３】
仮想コンピュータを提供する方法において、
仮想コンピュータテンプレートを作成するステップと、
ユーザによるシステムログオンリクエストに応答して新しい仮想コンピュータを提供するステップと、及び、
コンピュータテンプレートをアップデートするステップと
を含む、方法。
【請求項４４】
少なくとも一つのコンピュータプロセッサを介して稼動する、請求項１〜４３のうちのいずれか一に記載の方法又はシステム。
【請求項４５】
請求項１〜２５、４３のうちのいずれか一に記載の、コンピュータ実装される方法を実行する、コンピュータ実行可能命令を格納する、不揮発性コンピュータ読み取り可能媒体。
【請求項４６】
請求項２６〜４２のうちのいずれか一に記載の、コンピュータ実装されるシステムを符号化する、コンピュータ実行可能命令を格納する、不揮発性コンピュータ読み取り可能媒体。
【請求項４７】
複数のオペレーションを実行して請求項１〜４３のうちのいずれか一に記載の方法又はシステムを提供するように構成されているアプリケーションを、稼動するように構成されている一つ若しくはそれ以上のファシリティにより符号化されている不揮発性コンピュータ読み取り媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
特定の形式では、本発明は、仮想コンピュータを提供する計算システム及び方法に関する。
【背景技術】
【０００２】
仮想化は、メモリ及びストレージを処理すること、並びに、ネットワーク、マシン、インプット／アウトプット、アプリケーション、若しくはストレージ機能のための、人工環境を提供することを含む、コンピュータリソースを確保する処理である。通常、仮想化は、物理的インフラストラクチャと同様に作動する仮想的インフラストラクチャとしての、現実世界システムの作動のことである。
【０００３】
表現「仮想ネットワーク」は、概略、ソフトウエア／仮想化環境でネットワークをエミュレートすることによる物理ネットワーク機能の提供である。表現「仮想マシン」は種々の文脈で用いられる。種々の文脈を明瞭にするため、表現「システム仮想マシン」は、概略、機能的なオペレーティングシステムの実行をサポートする完全なプラットフォームの機能を提供することに関する。比較として、表現「プロセス仮想マシン」は、概略、単独のプロセス、アプリケーションのインスタンスであるプロセスの実行をサポートする機能を提供することに関する。本明細書で用いる表現「仮想コンピュータ」は、概略、プロセス仮想マシンとは逆に、システム仮想マシンに関する。
【０００４】
表現「ハイパーバイザ」は、概略、仮想化システムでの複数の仮想コンピュータの提供を行う設備である。ハイパーバイザは、仮想コンピュータのオペレーティングシステムに、システムプロセッサ、メモリ及び他のリソースを提供する。個々の仮想コンピュータのオペレーティングシステムは種々のアプリケーションに対して共通のサービスを提供する。
【０００５】
ハイパーバイザは、複数の形式で提供される。「タイプ１ハイパーバイザ」は、一つ若しくはそれ以上のシステム直下のインタフェースに仮想マシンを提供し、基本的ハードウエア直上のインタフェースには介在オペレーティングシステムを提供しない。タイプ１ハイパーバイザは、基本的物理サーバハードウエアと直接通信する。このためにタイプ１ハイパーバイザは、ベアメタルハイパーバイザとして知られることがある。
【０００６】
「タイプ２ハイパーバイザ」は、一つ若しくはそれ以上のシステム直下のインタフェースに仮想コンピュータを提供し、基本的オペレーティングシステム直上のインタフェースに提供する。
【０００７】
両方の場合、ハイパーバイザの役割は、概略、一つ若しくはそれ以上の仮想コンピュータを管理し提供し、それらの間の独立のポリシを維持することである。
【０００８】
ハイパーバイザを採用する仮想化システムでは、クローニングが概略提供され、これにより仮想コンピュータのコピーが可能となる。複数のタイプのクローンを提供することができる。例えば、「フルクローン」は概略、仮想コンピュータの独立のコピーであり、クローンは元の仮想コンピュータから完全に独立している。「リンククローン」は概略、同じソフトウエアインストールを利用するために、仮想ディスクを元の仮想コンピュータと共有することである。一般に、リンククローンは、元の仮想コンピュータへのアクセス為しに動作することはできない。これは、統合コピーではなく、格納されるデルタタイプアレンジメントにより生じる。
【０００９】
概略、リンククローンは、相対的に迅速に形成され得る。形成の速度は改善されているが、リンククローンは、パフォーマンス劣化の問題が生じることがある。
【００１０】
仮想化システムでは、スナップショットファシリティは、ディスクへのスナップショットをすることにより、概略クローンを提供することとなる。ＶＭウエアなどのあるシステムでは、スナップショットはリンククローンと類似する。概略、ユーザは、起動後スナップショットに繰り返し戻ることができる。スナップショットは、仮想コンピュータの繰り返し可能なサスペンド状態として考慮され得る。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
サスペンドストアファシリティは、仮想コンピュータの状態を再現性無くディスクにセーブすることにより、仮想コンピュータの状態を、概略保存することとなる。あるシステムにより、サスペンドファシリティは、仮想コンピュータの状態をメモリ内に再現性無く格納するサスペンションポーズファシリティを提供する。サスペンションストアファシリティは概略、メモリ及び仮想ＣＰＵを解放する。サスペンションポーズファシリティは、メモリアロケーションを設けつつ、フリーズ状態で仮想マシンを保持する。両方の場合、仮想マシンの処理及びＩ／Ｏオペレーションは、実質的やり方でサスペンドされる。特に、サスペンドストアの状態若しくはサスペンドポーズの状態からサスペンド状態をレジュームしても、ユーザは、同じ状態に繰り返し戻ることはできない。仮想マシンはサスペンド状態からレジュームし、マシンがサスペンドされたのと同じポイントから動作することを継続するが、サスペンド状態に戻ることはできない。
【００１２】
当然ながら、本願での説明は本発明の文脈を説明することを意図するものである。説明した部材は特定の国若しくは領域での先行技術の基礎若しくは関連する一般知識の一部を形成すると、認められるべきものではない。
【課題を解決するための手段】
【００１３】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータを提供する方法が提供され、
方法は、
複数のユーザによる一連のシステムログオンリクエストにより、個々のユーザが、適用されるアップデートを反映する一連の仮想コンピュータを提供されることを保証するステップであって、サスペンドされた仮想コンピュータが少なくとも一つのコンピュータテンプレートに基づくものである、サスペンドされた仮想コンピュータのプールから仮想コンピュータをレジュームすることにより、個々の仮想コンピュータが提供される、ステップと、
アクティブ仮想コンピュータを提供するために、サスペンドされた仮想コンピュータのプールからレジュームされた後に、個々の仮想コンピュータをカスタマイズするステップと、及び、
前記少なくとも一つのコンピュータテンプレートをアップデートするステップと
を含む。
【００１４】
方法は、ユーザによるシステムログオフリクエストに基づいて仮想コンピュータを終了するステップにより、ユーザに提供される仮想コンピュータが定期的にアップデートされることを保証するステップを含むのが、好ましい。
【００１５】
方法は、一つ若しくはそれ以上の定期的にアップデートされる仮想コンピュータテンプレートに基づいて、プール内にてサスペンドされた仮想コンピュータを維持するステップにより、ユーザに提供される仮想コンピュータが定期的にアップデートされることを保証するステップを含むのが、好ましい。
【００１６】
プール内にてサスペンドされた仮想コンピュータを維持するステップは、プール内にてサスペンドされた仮想コンピュータを作成するステップ、及び、サスペンドされた仮想コンピュータが所望のターンオーバレートを有することを保証するステップを含むのが、好ましい。
【００１７】
プール内にてサスペンドされた仮想コンピュータを維持するステップは、プール内にてサスペンドされた仮想コンピュータを提供するステップ、及び、より古いサスペンドされた仮想コンピュータをプールから削除すること若しくは除去するステップを含むのが、好ましい。
【００１８】
方法は、プール内にてサスペンドされた仮想コンピュータを提供するステップであって、個々のサスペンドされた仮想コンピュータは実質的な展開状態でサスペンドされたサービスを有する、ステップを含むのが、好ましい。
【００１９】
方法は、プール内にてサスペンドされた仮想コンピュータを提供するステップであって、個々のサスペンドされた仮想コンピュータは実質的な展開状態でサスペンドされたリモートデスクトップサービスを有する、ステップを含むのが、好ましい。
【００２０】
実質的な展開状態は、使用可能及び動作可能という意味にてサービスが完全作動システムの一部として利用可能である、状態を含むのが、好ましい。
【００２１】
方法は、
複数の仮想コンピュータを提供するために一つ若しくはそれ以上の仮想コンピュータテンプレートをクローンするステップと、異なるユーザクラスに従って仮想コンピュータ上にアプリケーションをインストールするステップと、及び、仮想コンピュータをサスペンドするステップとにより、
プール内にてサスペンドされた仮想コンピュータを提供するステップを含むのが、好ましい。
【００２２】
異なるユーザクラスを収容するために、方法は、
前記少なくとも一つの仮想コンピュータテンプレートからクローンされた複数の仮想コンピュータから、アプリケーションをアンインストールするステップを含むのが、好ましい。
【００２３】
方法は、
プール内にてサスペンドされた仮想コンピュータを作成するステップであって、個々のサスペンドされた仮想コンピュータは実質的な展開状態でサスペンドされたサービスを有する、ステップと、及び、
アプリケーションのインストール若しくはアンインストールが３０秒以下の期間に限定されることを保証するステップと
を含むのが、好ましい。
【００２４】
ユーザのために、レジュームされた仮想コンピュータをカスタマイズするステップが、ユーザのために、セキュリティプロファイルをアロケートするステップを含むのが、好ましい。
【００２５】
方法は、ユーザ分類の変更に応答して、アクティブ仮想コンピュータにアプリケーションをインストールするように若しくは除去するように命令するために、分類アップデートファシリティと通信するステップを含むのが、好ましい。
【００２６】
サスペンドされた仮想マシンは、再現性無きサスペンド状態でメモリ内にサスペンドされてもよい。サスペンドされた仮想マシンは、再現性のあるサスペンド状態でメモリ内にサスペンドされてもよい。サスペンドされた仮想マシンは、再現性無きサスペンド状態でディスク上にサスペンドされてもよい。サスペンドされた仮想マシンは、再現性のあるサスペンド状態でディスク上にサスペンドされてもよい。
【００２７】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータを提供する方法が提供され、方法は、
少なくとも一つの仮想コンピュータテンプレートを作成するステップと、
前記若しくは各々の少なくとも一つの仮想コンピュータテンプレートがアップデートを要求するかどうか判別するステップと、
前記少なくとも一つの仮想コンピュータテンプレートに基づいてサスペンドされた仮想コンピュータをキャッシュするステップと、
システムログオンリクエストに応答してアクティブ仮想コンピュータを提供するために、キャッシュされたサスペンドされた仮想コンピュータをレジュームするステップと
を含む。
【００２８】
個々のサスペンドされた仮想コンピュータは、実質的な展開状態にサスペンドされたサービスによりキャッシュされるのが、好ましい。
【００２９】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータを提供する方法が提供され、方法は、
一連のログインの結果として一連の仮想コンピュータを提供するステップを含み、
一連の仮想コンピュータの、各々の仮想コンピュータを提供するステップは、
サスペンドされた仮想コンピュータのプールから、サスペンドされた仮想コンピュータをレジュームしてレジュームされた仮想コンピュータを提供するステップと、レジュームされた仮想コンピュータをカスタマイズするステップとを含み、プール内にてサスペンドされた仮想コンピュータは少なくとも一つの仮想コンピュータテンプレートに基づくものである。
【００３０】
方法は、プール内にてサスペンドされた仮想コンピュータを作成するステップを含み、個々のサスペンドされた仮想コンピュータは、実質的な展開状態でサスペンドされたサービスを有するのが、好ましい。
【００３１】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータを提供する方法が提供され、方法は、
サスペンドされた仮想コンピュータをキャッシュするステップと、
システムログオンリクエストに応答して、キャッシュされたサスペンドされた仮想コンピュータをレジュームしてアクティブ仮想コンピュータを提供するステップと
を含む。
【００３２】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータを提供する方法が提供され、方法は、
ユーザによる一連のログインの結果として一連の仮想コンピュータを提供するステップを含み、
一連の仮想コンピュータの、各々の仮想コンピュータを提供するステップは、
サスペンドされた仮想コンピュータをレジュームしてレジュームされた仮想コンピュータを提供するステップと、レジュームされた仮想コンピュータをユーザのためにカスタマイズするステップとを含む。
【００３３】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータを提供する方法が提供され、方法は、
ユーザによる一連のシステムログオンリクエストにより、適用されるアップデートを反映する一連の仮想コンピュータをユーザに提供することを保証するステップを含み、
個々の仮想コンピュータは、
サスペンドされた仮想コンピュータのプールから仮想コンピュータをレジュームするステップであって、サスペンドされた仮想コンピュータは少なくとも一つの仮想コンピュータテンプレートに基づくものである、ステップと、サスペンドされた仮想コンピュータのプールからレジュームされた後個々の仮想コンピュータをカスタマイズしてアクティブ仮想コンピュータを提供するステップと、前記少なくとも一つの仮想コンピュータテンプレートを定期的にアップデートするステップと
により提供される。
【００３４】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータを提供するコンピュータシステムが提供され、コンピュータシステムは、
少なくとも一つの仮想コンピュータテンプレートに基づいてサスペンドされた仮想コンピュータのプールを格納するプールファシリティと、
ユーザによる一連のシステムログオンリクエストの結果として一連の仮想コンピュータを提供する提供マネジャと
を含み、
前記提供マネジャは、アップデートファシリティ、レジュームファシリティ、及び、カスタマイズファシリティを含み、
前記アップデートファシリティは、前記若しくは個々の少なくとも一つの仮想コンピュータテンプレートをアップデートし、
前記レジュームファシリティは、前記プールファシリティにより提供されるサスペンドされた仮想コンピュータのプールから仮想コンピュータをレジュームし、
前記カスタマイズファシリティは、サスペンドされた仮想コンピュータのプールからレジュームされた後仮想コンピュータをカスタマイズしてアクティブ仮想コンピュータを提供する。
【００３５】
前記提供マネジャは、システムログオフリクエストに基づいて仮想コンピュータを終了させる終了ファシリティを含み、
前記終了ファシリティは、ユーザに提供される仮想コンピュータが定期的にアップデートされることを保証することの助けとなることが、好ましい。
【００３６】
一つ若しくはそれ以上の定期的にアップデートされる仮想コンピュータテンプレートに基づいて、プール内のサスペンドされた仮想コンピュータを維持することにより、前記提供マネジャは、ユーザに提供される仮想コンピュータが定期的にアップデートされることを保証することができるのが、好ましい。
【００３７】
前記提供マネジャは、サスペンドされた仮想コンピュータが所望のターンオーバレートを有することを保証することにより、プール内のサスペンドされた仮想コンピュータを維持するように構成されているのが、好ましい。
【００３８】
前記提供マネジャは、プール内にサスペンドされた仮想コンピュータを作成して、プール内のより古いサスペンドされた仮想コンピュータを削除する若しくは除去することにより、プール内のサスペンドされた仮想コンピュータを維持するように構成されているのが、好ましい。
【００３９】
前記提供マネジャは、プール内にてサスペンドされた仮想コンピュータを提供するように構成された作成ファシリティを含み、個々のサスペンドされた仮想コンピュータは実質的な展開状態でサスペンドされたサービスを有するのが、好ましい。
【００４０】
前記作成ファシリティは、プール内にてサスペンドされた仮想コンピュータを提供するように構成されており、個々のサスペンドされた仮想コンピュータは実質的な展開状態でサスペンドされたリモートデスクトップサービスを有するのが、好ましい。
【００４１】
実質的な展開状態は、使用可能及び動作可能という意味にてサービスが完全作動システムの一部として利用可能である、状態を含むのが、好ましい。
【００４２】
前記提供マネジャは、
前記少なくとも一つの仮想コンピュータテンプレートの一つ若しくはそれ以上をクローンして複数の仮想コンピュータを提供することにより、プール内にてサスペンドされた仮想コンピュータを提供する、作成ファシリティと、
異なるユーザクラスに従ってアプリケーションをインストールするインストールファシリティと、及び、
仮想コンピュータをサスペンドするサスペンションファシリティと
を含むのが、好ましい。
【００４３】
前記提供マネジャは、異なるユーザクラスを収容するアンインストールファシリティを含み、
前記アンインストールファシリティは、前記少なくとも一つの仮想コンピュータテンプレートからクローンされた仮想コンピュータからアプリケーションをアンインストールするのが、好ましい。
【００４４】
コンピュータシステムは、ユーザ分類の変更に応答して、アクティブ仮想コンピュータにアプリケーションをインストールするように若しくは除去するように命令する分類アップデートファシリティを含むのが、好ましい。
【００４５】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータをユーザに提供するコンピュータシステムが提供され、コンピュータシステムは、
ユーザによる一連のシステムログオンリクエストに対して一連の仮想コンピュータを提供する提供マネジャを含み、
前記提供マネジャは、レジュームファシリティ、及び、カスタマイズファシリティを含み、
前記レジュームファシリティは、サスペンドされた仮想コンピュータをレジュームし、
前記カスタマイズファシリティは、レジュームされた後仮想コンピュータをカスタマイズする。
【００４６】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータを提供するコンピュータシステムが提供され、コンピュータシステムは、
仮想コンピュータテンプレートを提供する作成ファシリティと、
修正された仮想コンピュータテンプレートが新しいアップデートにより要求されるか否かを判別するアップデートファシリティと、
仮想コンピュータテンプレートに基づいて、サスペンドされた仮想コンピュータをキャッシュするキャッシュファシリティと、及び、
ユーザによるシステムログオンリクエストに応答して、キャッシュされたサスペンドされた仮想コンピュータをレジュームして仮想コンピュータを提供するキャッシュファシリティと
を含む。
【００４７】
前記キャッシュファシリティは、サービスが実質的な展開状態でサスペンドされる状態で、個々のサスペンドされた仮想コンピュータをキャッシュするように構成されるのが、好ましい。
【００４８】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータを提供するコンピュータシステムが提供され、コンピュータシステムは、
少なくとも一つの仮想コンピュータテンプレートに基づいてサスペンドされた仮想コンピュータのプールを格納するプールファシリティと、
ユーザによる一連のシステムログオンリクエストの結果として一連の仮想コンピュータを提供する提供マネジャと
を含み、
前記提供マネジャは、アップデートファシリティ、レジュームファシリティ、及び、カスタマイズファシリティを含み、
前記アップデートファシリティは、前記若しくは個々の少なくとも一つの仮想コンピュータテンプレートをアップデートし、
前記レジュームファシリティは、前記プールファシリティにより提供されるサスペンドされた仮想コンピュータのプールから仮想コンピュータをレジュームし、
前記カスタマイズファシリティは、サスペンドされた仮想コンピュータのプールからレジュームされた後仮想コンピュータをカスタマイズしてアクティブ仮想コンピュータを提供する。
【００４９】
前記キャッシュファシリティは、サービスが実質的な展開状態でサスペンドされる状態で、個々のサスペンドされた仮想コンピュータをキャッシュするように構成されるのが、好ましい。
【００５０】
少なくとも一つのコンピュータプロセッサを介して稼動する前述の方法又はシステムが提供されるのが、好ましい。
【００５１】
前述の、コンピュータ実装される方法を実行する、コンピュータ実行可能命令を格納する、不揮発性コンピュータ読み取り可能媒体が提供されるのが、好ましい。
【００５２】
前述の、コンピュータ実装されるシステムを符号化する、コンピュータ実行可能命令を格納する、不揮発性コンピュータ読み取り可能媒体が提供されるのが、好ましい。
【００５３】
複数のオペレーションを実行して前述の方法又はシステムを提供するように構成されているアプリケーションを、稼動するように構成されている一つ若しくはそれ以上のファシリティにより符号化されている不揮発性コンピュータ読み取り媒体が提供されるのが、好ましい。
【００５４】
前述の、不揮発性のコンピュータ実装の方法若しくはシステムが提供されるのが、好ましい。
【００５５】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータを提供するコンピュータシステムが提供され、コンピュータシステムは、
仮想コンピュータテンプレートを提供する作成ファシリティと、
修正された仮想コンピュータテンプレートが新しいアップデートにより要求されるか否かを判別するアップデートファシリティと、及び、
ユーザによるシステムログオンリクエストに応答して、仮想コンピュータを提供する提供ファシリティと
を含む。
【００５６】
本明細書に記載の好適な実施形態の一つの形態によると、仮想コンピュータを提供する方法が提供され、
仮想コンピュータテンプレートを作成するステップと、
ユーザによるシステムログオンリクエストに応答して新しい仮想コンピュータを提供するステップと、及び、
コンピュータテンプレートをアップデートするステップと
を含む。
【００５７】
後で説明するように、本発明の実施形態は、以下を含む複数の好適な構成を提供すべく考慮されている。
（ｉ）ユーザが、最近のアップデートを組み込む仮想コンピュータを定期的に提供されるように、コンピュータのプールを維持するシステム及び方法。
（ｉｉ）異なる時刻にてアクセスを要求する、変動する数のユーザを即座に収容できるように、コンピュータのプールを維持するシステム及び方法。アクセスを要求する個々のユーザの正確な時刻は知られていない。
（ｉｉｉ）異なるカテゴリに対してサスペンドされた仮想コンピュータを提供し、異なるユーザクラスに対してアプリケーションを付加若しくは除去することにより、異なるユーザアプリケーションクラスを収容できるように、コンピュータのプールを維持するシステム及び方法。
（ｉｖ）ユーザに関連する異なるユーザアプリケーションクラスに基づいて、ユーザに関連するアクティブ仮想コンピュータをアップデートするように機能するアプリケーションアップデートメカニズムを提供するシステム及び方法。
【００５８】
当然のことながら、本発明の他の形態、好適な形式及び利点は、詳細な説明、図面及び特許請求の範囲を含む、本明細書から明白であろう。
【図面の簡単な説明】
【００５９】
本発明のより良い理解を促進するために、添付の図面を参照しつつ複数の好適な実施形態を説明する。
【図１】本発明の第１の好適な実施形態に係るコンピュータシステムの概略図を示す。
【図２】図１に示す仮想コンピュータの概略図を示す。
【図３】図２に示す仮想コンピュータに関連する更なる図を示す。
【図４】図２に示す仮想コンピュータに関連する更なる図を示す。
【図５】図１に示すコンピュータシステムの更なる図を示す。
【図６】図５に関連する更なる図を示す。
【図７】図５に関連する更なる図を示す。
【図８】システムログオンリクエストが図１に示すシステム内で処理されるやる方を明示する画面イメージを示す。
【図９】システムログオンリクエストが図１に示すシステム内で処理されるやる方を明示する画面イメージを示す。
【図１０】システムログオンリクエストが図１に示すシステム内で処理されるやる方を明示する画面イメージを示す。
【図１１】システムログオンリクエストが図１に示すシステム内で処理されるやる方を明示する画面イメージを示す。
【図１２】図１に示すシステム内で、ログオンリクエストに続いて提供されるインタフェースの画像イメージを示す。
【図１３】図１に示すシステムの初期状態を表す概略図を示す。
【図１４】図１に示すシステム内で、ユーザがログオフリクエストを発行できるボタンを示す画面イメージを示す。
【図１５】図１４に関連するログオフリクエストの概略図を示す。
【図１６】本発明の好適な実施形態に係るコンピュータシステムの概略図を示す。
【図１７】本発明の更なる好適な実施形態に係る方法の概略図を示す。
【図１８】本発明の更なる好適な実施形態に係る方法の概略図を示す。
【図１９】図１７に示す方法に関連する一連のログオンリクエストの概略図を示す。
【図２０】図１７に示す方法に関連する更なる概略図を示す。
【図２１】図１７に示す方法に関連する更なる概略図を示す。
【図２２】図１７に示す方法に関連する更なる概略図を示す。
【図２３】本発明の別の好適な実施形態に係るコンピュータシステムの概略図を示す。
【図２４】図２３に示すシステム内に提供されるアプリケーションストアのスクリーンショットを示す。
【図２５】図２３に示すシステムに関連する第１のプロセスのタイムブレークダウンを提供するスクリーンショットを示す。
【図２６】図２３に示すシステムに関連する別のプロセスのタイムブレークダウンを提供するスクリーンショットを示す。
【図２７】本発明の更なる好適な実施形態に係るシステムの図を示す。
【発明を実施するための形態】
【００６０】
当然ながら、実施形態の各々は具体的に記載しており、任意の実施形態の任意の具体的特徴や要素に限定して理解されるべきではない。また、複数の、実施形態や実施形態に関連して記載される変形例の、任意の特徴に限定して、本発明は理解されるべきではない。
【００６１】
図１を参照すると、本発明の第１の好適な実施形態に係るコンピュータシステム１０が示される。コンピュータシステム１０は、ボックス１２で示される仮想化インフラストラクチャを提供する。コンピュータシステム１０は、パブリッククラウドネットワーク１４を用いて提供される。
【００６２】
コンピュータシステム１０の一部として、複数のサーバ１６は仮想コンピュータ１８を提供する。図２を参照すると、個々の仮想コンピュータは、オペレーティングシステム２０及びアプリケーション２２を含む。タイプ１ハイパーバイザ２４が、サーバハードウエア６上にインストールされる。
【００６３】
図３は、個々の仮想コンピュータ１８の一部を形成するユーザデータ２８を示す。図４は、オペレーティングシステム２０からのユーザデータ２８のデカップルを示す。図示するように、ユーザデータ仮想化３０が設けられる。ユーザデータ仮想化３０は、ファイル、コンフィグレーション及びセッティングを含むユーザデータの、オペレーティングシステム及びアプリケーションからの独立を可能にする、レイヤを提供する。明白なように、他の実施形態がアプリケーション仮想化を含んでもよい。
【００６４】
図５に示すように、コンピュータシステム１０は、提供マネジャ３２を含む。提供マネジャ１０は、仮想コンピュータ１８にアクセスしてブローカ提供ユーザ３４として行動する。個々のユーザ３４は、個別の仮想コンピュータ１８へのアクセスを提供するクライアント３６を有する。仮想コンピュータ１８は、仮想デスクトップを有する仮想コンピュータとしてユーザに提供される。
【００６５】
図６を参照すると、コンピュータシステム１０は、仮想化インフラストラクチャの一部としてプールファシリティ３８を含む。プールファシリティ３８は、サスペンドされた仮想コンピュータ４２のプール４０を格納する。サスペンドされた仮想コンピュータ４２は、二つの仮想コンピュータテンプレート４４に基づく。仮想コンピュータテンプレート４４は、ゴールデンイメージを含む。別の実施形態では、仮想コンピュータテンプレートは、アクティブの若しくはサスペンドされた仮想コンピュータを含む。
【００６６】
図７を参照すると、提供マネジャ３２は、経時的に、ユーザ５４による一連５０のシステムログオンリクエスト５２の結果として、一連４６の仮想コンピュータ４８を提供するように構成されている。ユーザグループの見地から、全体としてユーザに関連して類似の記載が為され得る。
【００６７】
コンピュータ１０では、単独のユーザアカウントは、任意の一時には一つのみの仮想コンピュータ１８と関連する。他の構成も勿論可能である。
【００６８】
時間の経過は矢印５６により表されている。ユーザ５４による第１のシステムログオンリクエスト５８は、仮想コンピュータ６０の提供となる。続いてのシステムログオンリクエスト６２は仮想コンピュータ６４の提供となる。続いてのシステムログオンリクエスト６６は仮想コンピュータ６８の提供となる。最後のシステムログオンリクエスト７０は仮想コンピュータ７２の提供となる。実施形態では、提供マネジャ３２は、システムログオンリクエスト５２の各々がシステムログオフリクエスト７４により分離されていることを、保証する。個々のシステムログオフリクエスト７４は、ユーザに関連する現行の仮想コンピュータを終了させる。
【００６９】
システムログオンリクエスト５２が開始されるやり方が、図８及び図９に明示される。システムログオンリクエストを発行するために、ユーザ５４は、ブラウザ７８に提供されるインタフェース７６を利用する。インタフェース７６は、ボタンの形式でシステムログオンリクエストファシリティ８２を設けるダッシュボード８０を提供する。作動時には、ユーザ５４は、システムログオンリクエストファシリティ８２を起動すると、ロードインジケータ８４が提供される。ロードインジケータ８４は、図１０に示される。
【００７０】
図１１を参照すると、続いてユーザ５４は、複数の接続オプション８６が提供される。オプションの第１のものは、デスクトップインタフェースを提供するユーザマシン上のリモートデスクトッププロトコルを利用することを、含む。オプションの第２のものは、デスクトップインタフェースを提供するブラウザ８０を利用することを、含む。
【００７１】
オプションの第２のものを選択すると、図１２に示すウェブクライアント８８が提供される。ウェブクライアント８８は、メニュファシリティ９２を有する仮想デスクトップ９０と、ショートカット上のデスクトップ９４を提供するが、他のアイテムも配置され得る。仮想デスクトップ９０は、可視アプリケーションを示すタスクバー９６を含む。ランファシリティ９８は、コマンドタイプ実行のために提供される。単独の仮想コンピュータ１８と対応するオペレーティングシステム２０上で、アプリケーションが稼働する。
【００７２】
明白なように、他の実施形態では、システムログオンリクエストファシリティ８２はダッシュボード認証の一部を形成し、よって、ダッシュボード８０上へのログオンにより、仮想コンピュータへのアクセスを探索するシステムログオンリクエスト５２が自動的に提供される。
【００７３】
図７を参照すると、提供マネジャ３２は、アップデートファシリティ１００、レジュームファシリティ１０２、及びカスタマイズファシリティ１０４を、含む。アップデートファシリティ１００は、個々の仮想コンピュータテンプレート４４をアップデートすることができる。レジュームファシリティ１０２は、プールファシリティ３８により提供されるサスペンドされた仮想コンピュータ４２のプールから仮想コンピュータをレジュームできる。カスタマイズファシリティは、ユーザ５４のためにレジュームされた仮想コンピュータをカスタマイズして、アクティブ仮想コンピュータを提供できる。
【００７４】
以下に記載するが、コンピュータシステム１０は、ユーザによる一連のシステムログオンリクエストにより、適用されるアップデートを反映する一連の仮想コンピュータがユーザに提供されることを、保証すべく構成される。特に、ユーザによる個々のログオンリクエストの結果として、ユーザに対して新しい仮想コンピュータが提供される（以下に記載する、クローンプロセスの一部として提供されるという意味において「新しい」）。
【００７５】
ログオンリクエストと仮想コンピュータは、１対１で提供される。即ち、個々のログオンリクエストにより、単独の新しい仮想コンピュータが提供される。
【００７６】
コンピュータシステム１０の初期状態が、図１３に示される。システムログオンリクエスト１０６が開始されると、提供マネジャ３２はレジュームファシリティ１０２を用いて、サスペンドされた仮想コンピュータ４２のプールからの、サスペンドされた仮想コンピュータをレジュームする。続いてカスタマイズファシリティ１０４は、レジュームされた仮想コンピュータ１１０をカスタマイズするのに用いられる。カスタマイズにより、ユーザデータ１１２は仮想コンピュータ１１０と関連付けられ、セキュリティセッティングが適用される。カスタマイズ後、提供マネジャ３２は、ユーザによるアクセスに対して、アクティブ仮想コンピュータ１１４を提供する。よってアクティブ仮想コンピュータ１１４は、複数の周知のアクセス技術の一つによりアクセス可能である。
【００７７】
レジュームプロセスの本質の一部として、レジュームファシリティ１０２は、プール４０からサスペンドされた仮想コンピュータを除去する。レジュームファシリティ１０２は、再現性の無いサスペンドされた状態にある、サスペンドされた仮想コンピュータと関連する再現性の無いレジュームを採用する。
【００７８】
アップデートファシリティ１００は通常、アップデート通知ファシリティからの通知に従って、個々の仮想コンピュータテンプレート４４をアップデートする。
【００７９】
サスペンドされたコンピュータをレジュームした後、クリエーションファシリティ１１６は、（ｉ）仮想コンピュータを提供する仮想テンプレート４４のクローンニング、及び（ｉｉ）置換のサスペンドされたコンピュータ４２を提供する仮想マシンの、それに続くサスペンションを、スケジュールする。最初、ビルドインストラクションリストが提供される。
【００８０】
提供マネジャ３２は、ユーザによるシステムログオフリクエストに基づいて仮想コンピュータ１８を終了させユーザに提供される仮想コンピュータ１８が定期的にアップデートされることを保証する終了ファシリティ１１８を、含んでもよい。コンピュータシステム１０からのユーザログオフの後、関連する仮想コンピュータは終了に向けてスケジュールされる。
【００８１】
ユーザ５４が仮想コンピュータ１１４を提供された後、ユーザは、図１４に示すシステムログオフリクエストファシリティ１２０へのアクセスを提供される。ログオンリクエストファシリティ１２０の利用により、ユーザは、図１５に示すシステムログオフリクエスト１２２を発行することができる。
【００８２】
コンピュータシステム１０にて、提供マネジャ３２は、ユーザ３４に提供される仮想コンピュータ１８が定期的に更新されることを保証できることが、好ましい。このことは、プール４０内のサスペンドされたコンピュータ４２がベースとする仮想コンピュータテンプレート４４をシステムが定期的に更新することにより、可能となる。コンピュータシステム１０は、Ｌｉｎｕｘカーネルベースの仮想マシン（ＫＶＭ）技術を採用する。ＶＭウエア、及びマイクロソフトサービスなどの、他の技術も、他の実施形態にて用いられ得る。
【００８３】
提供マネジャ３２は、プール４０内のサスペンドされた仮想コンピュータ４２のターンオーバをモニタするレンジファシリティ１２４を含む。レンジファシリティ１２４は、履歴と現実の両方の、ログイン／バーチャルマシン情報を含む。
【００８４】
提供マネジャ３２は、プール４０内の、複数のサスペンドされた仮想コンピュータが、レンジファシリティ１２４により推奨されるレンジを伴うことを、保証する。提供マネジャ３２は、先行するユーザ要求を考慮してプール４０内のサスペンドされた仮想コンピュータの数を制限することにより、サスペンドされた仮想コンピュータ４２が所望のターンオーバレートを有することを、保証する。このようにして、システムログオフリクエストを介する仮想コンピュータのチャーン、及び、テンプレート４４の定期的更新は、サスペンドされた仮想コンピュータ４２がタイムリーに更新を反映することを保証する。
【００８５】
臨界的更新をアクティブ仮想コンピュータに適用するために、提供マネジャ３２は、アクティブマシンアップデータ１２６を含む。アクティブマシンアップデータ１２６は、アップデートリクエストを仮想コンピュータ１８に送信するように構成される。仮想コンピュータ１８は、アクティブマシンアップデータ１２６からの通知に応答し、アップデートをインストールする。この実施形態では、アクティブマシンアップデータは、Ｌｉｎｕｘのための「Ｐｕｐｐｅｔ」として知られる技術により提供される。
【００８６】
終了ファシリティ１１８は、プール４０内の、古いサスペンドされた仮想コンピュータを除去し、プール４０内のサスペンドされた仮想コンピュータ４２が望ましくはアップデートを反映してユーザ３４に適宜提供され得ることを、保証するように、構成されている。
【００８７】
従来、仮想テンプレート４４をクローンし、ユーザに対してアクティブ仮想コンピュータを提供するプロセスは、通常、（ｉ）ユーザが十分なクレジットを有するかどうか判別する項目、（ｉｉ）仮想テンプレート上にてクローンオペレーションを実行する項目、（ｉｉｉ）仮想マシン上でサービスを展開する項目、（ｉｖ）アプリケーションをインストールする項目、及び、（ｖ）セキュリティポリシを適用しユーザによるアクセスを認める項目を、含む。項目（ｉｉ）（ｉｉｉ）（ｉｖ）を実行することは、相当の遅延を生じる。
【００８８】
本実施形態では、クリエーションファシリティ１１６は、個々のサスペンドされた仮想コンピュータ４２が実質的に展開された状態で、サスペンドされたサービスを有するように、プール４０内のサスペンドされた仮想コンピュータ４２を作成するように、構成されている。このことは、ダッシュボード８０を介して仮想コンピュータをリクエストする際、ユーザに可視的な時間を減少するように機能するのが好ましい。
【００８９】
特に、個々のサスペンドされた仮想コンピュータ４２のリモートデスクトップサービスを、実質的に展開された状態でサスペンドさせることにより、仮想コンピュータへのアクセスを提供する時間は、望ましいことに減少される。個々のサスペンドされたコンピュータ４２の場合、リモートデスクトップサービスは、サービスが開始されネットワークからユーザに接続でき機能をそのユーザに提供する、という意味にて展開される。その実施形態により、ログオンリクエストと、仮想コンピュータの提供との間の、時間上の実質的改善が、得られ得る。リモートデスクトップインフラストラクチャとしてＶＤＩを実行する、Ｒｄｐ、Ｘｒｄｐ、Ｘｓｅｒｖｓｅｒ及び他のリモートデスクトップ技術が、知られている。ＶＤＩシステムの製造者は、ＶＭＷａｒｅ、Ｃｉｔｒｉｘ及びＨＰを含む。
【００９０】
説明したように、クリエーションファシリティ１１６は、仮想コンピュータテンプレート４４をクローンすることによりプール４０内にサスペンドされた仮想コンピュータ４２を提供するように、提供される。インストールファシリティ１２８は、様々なユーザクラスに従ってアプリケーションをインストールするために提供される。サスペンションファシリティ１３０は、クリエーションプロセスの一部として仮想コンピュータをサスペンドして、サスペンドされた仮想コンピュータ４２を提供するように、提供される。インストールファシリティ１２８は、仮想テンプレート４４をクローンした後、アプリケーションをインストールするように、提供される。提供マネジャ３２は、仮想テンプレート４４をクローンした後、アプリケーションを除去するためのアンインストールファシリティ１３２を含む。概略、アプリケーションをアンインストールすることは、アプリケーションを除去することによりも、より大きい処理オーバヘッドを有する。アンインストールの要求が比較的滅多に生じない状況では、アプリケーションをアンインストールすることは好ましい。
【００９１】
コンピュータシステム１０では、ユーザクラスは、会計クラス、秘書クラス、及びマネジャクラスを含む。クラスは、特定のアプリケーションスイートと関連する。僅かのユーザクラスのみが、リブレオフィスの利用を要求しない。この実施形態では、アンインストールファシリティは、これらのユーザのためのリブレオフィスをアンインストールするように、提供される。このことは、減少数の仮想テンプレートがシステムにより維持されなければならない、ということを意味することが好ましい。
【００９２】
アクティブマシンアップデータ１２６は、仮想コンピュータ１８に、アプリケーションをインストールするように若しくは除去するように命じるための、分類アップデートファシリを提供する。ユーザの分類に修正があるとき、そのような例が発生し得る。
【００９３】
コンピュータシステム１０は、実質的に展開されたサービスを伴って、サスペンド状態にて仮想コンピュータのプールを維持するように考慮されるのが好ましく、この際、複数のサスペンドされた仮想コンピュータ、及び、テンプレートのアップデートにより、ユーザは最新のアップデートを組み込む仮想コンピュータを定期的に供給されることになる。
【００９４】
更に、サスペンドされた仮想コンピュータのプールを提供すると、仮想コンピュータに対する高度な要求を含む状況は、比較的多数のサスペンドされた仮想コンピュータをプール内に維持することにより、即座に適応され得る。このように、システムは、大学のグループコンピュータラボラトリセッション内で発生し得る、高度な要求を適用するように構成され得る。別の機会には、減少数のサスペンドされたコンピュータが、プール内に提供され得る。仮想化コンピュータシステムの固有の重複排除は、プール内に格納される、サスペンドされた仮想コンピュータにつき、比較的少数と比較的多数の両方を許容する、と考えられる。「ストーム」タイプイベントの固有の重複排除の利用は、好ましいものであると考えられる。
【００９５】
図１６に示す別の実施形態では、本発明の更なる好適な実施形態に係る、コンピュータシステム１３４が提供される。コンピュータシステム１３４は、仮想コンピュータテンプレート１３８を提供するテンプレート提供ファシリティ１３６と、修正された仮想コンピュータテンプレートが要求されるか否かを判別するアップデートファシリティ１４０とを、含む。キャッシュファシリティ１４２は、仮想コンピュータテンプレート１３８に基づいて、サスペンドされた仮想コンピュータ１４４をキャッシュするために、提供される。レジュームファシリティ１４６は、キャッシュされた、サスペンドされた仮想コンピュータ１４４をレジュームし、ユーザによるシステムログオンリクエストに応答してアクティブ仮想コンピュータを提供するように、提供される。キャッシュファシリティ１４２は、実質的な展開状態でサスペンドされたサービスにより、個々のサスペンドされた仮想コンピュータ１４４をキャッシュするように構成される。
【００９６】
図１７を参照すると、本発明の更なる好適な実施形態に係る方法１４８が示される。方法１４８は、システムログオンリクエストに応答して仮想コンピュータ１５０を提供するのが好ましい。複数のプロセスが、方法１４８内で生じる。
【００９７】
ブロック１５４にて、方法１４８は、複数の仮想コンピュータテンプレート１５６を定期的にアップデートするステップを含む。ブロック１５８にて、方法１４８は、システムログオンリクエスト１６０を受信するステップを含む。システムログオンリクエスト１６０に応答して、方法１４８は、ブッロク１６２にてアカウントバリデーションチェックを実行する。アカウントが有効であれば、方法１４８は、ブッロク１６４にて、アクティブ仮想コンピュータがシステムログオンリクエストを発行したユーザと現在関連するかどうかを判別するチェックを、実行する。現存する仮想コンピュータが在れば、ログオフリクエストがブロック１６６にて発行され、現存する仮想コンピュータをシャットダウンする。シャットダウンリクエストが発行されると、方法１４４は、ブロック１６８（図１８参照）にて、詳細に述べるように仮想コンピュータ１５０を提供する。
【００９８】
ブロック１７０にて、方法１４８は、ユーザアカウントタイプをチェックして、プール１７４内の適切なテンプレート１５６に基づいて複数のサスペンドされた仮想コンピュータ１７２を判別するステップを含む。不測の高度な要求の場合、プール１７４内の複数のサスペンドされた仮想コンピュータ１７２が展開され得、その場合、方法は、更なる仮想コンピュータがプール１７４に加えられることを予期して、ブロック１７４にて所望の時間待機する。
【００９９】
ブロック１７８にて、方法１４６は、サスペンド状態のコンピュータ１８０を再現性無くレジュームして仮想コンピュータを提供するレジュームルーティンを開始する。サスペンド状態のコンピュータ１８０をレジュームする動作は、基本的ハイパーバイザからのＣＰＵ、メモリ及びストレージリソースがかかる。ブロック１８４にて、特定のリソース、セキュリティプロファイル、及び他のコンフィグレーションセッティングがカスタマイズされる。
【０１００】
カスタマイゼーションは、仮想化されたユーザデータレイヤ１８６の提供を含む。ブロック１８８にて、アプリケーションレイヤ１９０に変更が為されるが、本実施形態では該アプリケーションレイヤ１９０は仮想化されない。種々のカスタマイゼーションがブロック１８８にて示される。仮想コンピュータ１９２は、ブロック１９４にてユーザに利用可能とされる。この実施形態では、仮想コンピュータをレジュームした後、現存する物理マシン上に常駐し続ける。勿論、仮想コンピュータはネットワークを亘って別の物理マシンに移行され得る。
【０１０１】
図１９を参照すると、方法１４８をユーザによる個々のシステムログオン上に適用することにより、方法１４８は、一連のシステムログオンリクエストによりユーザ１９６が、適用されるアップデートを反映する一連の仮想コンピュータ２００を提供されることを、保証する。方法１４８は、ブロック１５４にてこれらのアップデートを適用し、アップデートされた仮想コンピュータ２００は個々のシステムログオンにてユーザに然るべく提供される。
【０１０２】
時間の進行２０２にて、個々の仮想コンピュータ２００は、サスペンドされた仮想コンピュータ１７２のプール１７４から仮想コンピュータをレジュームすることにより、提供され、この場合サスペンドされた仮想コンピュータ１７２は仮想コンピュータテンプレート１５６に基づく。ブロック１５４にて、方法１４８は、仮想コンピュータテンプレート１５６を定期的にアップデートする。ブロック１８４にて、方法１４８は、プール１７４からレジュームされた後に、ユーザのために仮想コンピュータをカスタマイズする。プロセスは繰り返され、ログオンリクエストにより、アップデートされたアクティブ仮想コンピュータをシステムのユーザに積極的に提供する。方法１４６は全てのユーザに亘って適用される。
【０１０３】
方法１４８は、ユーザによるシステムログオフリクエスト２０４に基づいて仮想コンピュータ１５０を終了させるステップを含む。図２０に示すブロック２０６にて、方法１４８は、ログオフリクエストを受信してユーザアクティビティを判別するステップを含む。ユーザアクティビティが待機期間の閾値に適合しないならば２０８、マシンはブロック２１０にて終了する。ユーザは、ブロック２１２にて受信されるログオフリクエスト２０４を手作業で発行することができる。仮想コンピュータはブロック２１０にて終了する。方法１４８は、ユーザによるシステムログオフリクエストに基づいて仮想コンピュータを終了させることにより、ユーザに提供される仮想コンピュータが定期的にアップデートされることを、保証する。
【０１０４】
図２１を参照すると、ブロック２１４にて、方法１４６は、プール１７４内のサスペンドされた仮想コンピュータ２１６を提供するステップを、含む。この実施形態では、仮想コンピュータがユーザに利用可能とされると、補充が開始される。他の実施形態は、予期される要求を見込むルーティンを有することが望ましい。ブロック２１８にて、方法１４６は、サスペンドされた仮想コンピュータをプール１７４に加えるかどうかを判別する。
【０１０５】
ブロック２２０にて、仮想コンピュータ１５６は、より早くレジュームされた、サスペンドされた仮想コンピュータを置換するように選択される。ブロック２２２にて、テンプレートがクローンされる。ブロック２２４にて、テンプレートがチェックされ、アップデートが要求されるかどうかを判別する。アップデートが要求されるならば、ブロック２２６にてアップデートが適用される。ブロック２２８にて、アップデートされた仮想マシンは、テンプレートとしてクローンされ、ブロック２３０にて古いテンプレートは除去される。ブロック２３２にてあるコンフィグレーションが発生し得る。ブロック２３４にて、仮想コンピュータはプール１７４内にサスペンドされる。
【０１０６】
ブロック２３２にてコンフィグレーションを適用すると、方法１４８は、クローンされたテンプレートのサービスを実質的な展開状態にサスペンドする。本実施形態では、実質的な展開状態にサスペンドされたサービスは、ＲＤＰクライアント及びＰｕｐｐｅｔからの接続を許容（して進行中のコンフィグレーションの変更を適用）する、ＸＲＤＰを含むリモートデスクトップサービスを含む。システムサービスは稼働中であり、ユーザによる相互作用に対して利用可能である。アクティブ仮想コンピュータがユーザに提供された後には毎回、補充が発生する。このように、プール１７４はリフレッシュされる。
【０１０７】
方法１４６は、一つ若しくはそれ以上の定期的にアップデートされる仮想コンピュータテンプレートに基づいてプール内のサスペンド状態の仮想コンピュータを実効的に維持することにより、ユーザが、定期的にアップデートされる仮想コンピュータを提供されることを、保証する。
【０１０８】
サスペンド状態の仮想コンピュータをプール内に提供して、サスペンド状態の仮想コンピュータが所望のターンオーバレートを有することを保証することにより、方法１４６は、サスペンド状態の仮想コンピュータをプール１７４内に実効的に維持する。このことは、図２２に示すブロック２３６にて実行される。サスペンド状態のコンピュータが、チャーンを介して定期的なアップデートを提供している所望のターンオーバレートを、有していない、と判別されれば、前述のように、ブロック２３６にて古いサスペンド状態のコンピュータが除去され新しいサスペンド状態のコンピュータが加えられる。
【０１０９】
ブロック２２０にて、プール１７４からレジュームされた最新のサスペンド状態の仮想コンピュータに基づいて、クローンすべき仮想コンピュータが選択される。他の実施形態では、ブロック２３６におけるルーティンは、ユーザによる先行の要求に基づいて、サスペンド状態のコンピュータを、付加及び除去する。
【０１１０】
ブロック２３２にて、アクティブ仮想コンピュータ１８２のカスタマイゼーションは、ユーザクラスに従ってアプリケーションをインストールするステップを含む。このように、更なるクラスタイプにて、サスペンド状態の仮想コンピュータが仮想コンピュータテンプレート１５６に提供され得る。このことは有利であると考えられる。異なるユーザクラスに対する、ブロック１８４における要求されるカスタマイゼーションは限定可能され得る、ということであるからである。ユーザクラスタイプの例は、会計クラス、秘書クラス、マネジメントクラスなどを含む。
【０１１１】
ブロック１８４にて柔軟性を提供するために、方法１４６は、消耗のユーザクラスに従ってアプリケーションをインストールする若しくはアンインストールする、ステップを含む。アプリケーションをインストールすることは、通常、アプリケーションをアンインストールすることよりも、集約的では無い。にもかかわらず、ある状況では、減少した数のテンプレート及びサスペンド状態のマシンタイプが、好ましいこともある。一つの実施形態では、ワードプロセッシング及びスプレッドシートのアプリケーションが、仮想テンプレート１５６上にインストールされる。ブロック１８４におけるカスタマイゼーションの間に、特定のユーザクラスが減少数の仮想テンプレートとサスペンド状態のコンピュータタイプを許容するように、ワードプロセッシング及びスプレッドシートのアプリケーションが、アンインストールされる。
【０１１２】
方法１４６は、プール１７４内にてサスペンドされた仮想コンピュータを作成するが、個々のサスペンド状態の仮想コンピュータは実質的な展開状態でサスペンドされたサービスを有するものである。方法１４６はこのストラテジを利用して、ブロック１８４におけるアプリケーションのインストール若しくはアンインストールが３０秒以下の期間に限定されることを、保証する。ログオンリクエストと、仮想コンピュータへのアクセスを要求することとの間の２０秒は、ユーザにとって受け容れ可能な待機時間である、と出願人は考える。
【０１１３】
本実施形態では、サスペンド状態の仮想コンピュータ１７２は、再現性無きサスペンド状態でメモリ内にサスペンドされる。サスペンド状態の仮想マシンを管理する仮想マシンソフトウエアにより提供される固有の重複排除は、ランダムメモリスペースを保全するように動作する（ＫＶＭ）。更に、サスペンドされることにより、サスペンド状態の仮想マシンを維持するように要求される処理は、無意味、若しくは、少なくとも比較的取るに足りないことである。ランダムアクセスメモリにサスペンドすることは好適なアプローチである。ゲストのメモリの持続性は、仮想ホスト維持機能に依存するのであり、即ち、パワーが仮想ホストから引き出されるならば、「サスペンド」ゲストはそのメモリ状態を損失するであろう。
【０１１４】
半導体ストレージは、半導体ストアのスピードに依存して、別の実行可能なオプションを提供し得る。よって、ある実施形態では、サスペンド状態の仮想コンピュータは、再現性無きサスペンド状態でディスク上にサスペンドされる。種々の他の格納方法も可能であり、それら方法は、再現性のあるサスペンド状態でディスク上にサスペンドされることや、再現性のあるサスペンド状態でメモリ上にサスペンドされることを含む。
【０１１５】
本発明に係る別の実施形態では、方法は、仮想コンピュータテンプレートを作成し、修正された仮想コンピュータテンプレートが新しいアップデートにより要求されるか否かを判別する。サスペンド状態の仮想コンピュータは、仮想コンピュータテンプレートに基づいて形成され、後続のレジュームのためにキャッシュされてシステムログオンリクエストにおうとうしてアクティブ仮想コンピュータを提供する。
【０１１６】
仮想コンピュータを提供する種々の方法及びシステムが、好適な実施形態により提供される。ユーザデータを分離することにより、ユーザは、同じ個人的設定やアプリケーションを伴う、様々なオペレーティングシステムやデスクトップ環境を容易に展開できる。例えば、ある実施形態では、デスクトップスイッチングファシリティが提供される。デスクトップスイッチングファシリティにより、ユーザは、マッキントッシュタイプデスクトップ環境と、ウインドウズタイプデスクトップ環境との間をスイッチすることができる。例示は、ＬＤＸＥとＸＦＣＥとの間のスイッチングを含む。動作するスイッチングファシリティは、例えば、ＵＢＵＮＴＵとＲＥＤＨＡＴとの間のスイッチングを可能にする。
【０１１７】
種々の実施形態は、前もって準備された複数のＶＭをバッファして、新しいＶＭの展開のスピードアップを行い、更にブートストーム問題に対処する。ユーザがログインするとき、仮想マシンの内部の技術をリフレッシュしてアップデートすることにより、アップデートが提供される。重複排除環境は物理的メモリスペースを減少するように機能する。
【０１１８】
図２３を参照すると、本発明の更なる好適な実施形態に係るシステム２４３が示される。システムでは、仮想デスクトップを管理するのに用いられるソフトウエアの仮想ホストサーバは、ｌｉｂｖｉｒｔ及びＫＶＭである。システムの記載は、ｌｉｂｖｉｒｔを介してインタフェースされるＫＶＭに固有である。当然ながら、種々の仮想化環境が他の実施形態にて提供され得る。
【０１１９】
システム２４３は、ＫＶＭ（カーネルベース仮想マシン）を用いて動作する。ウイキペディア（Ｗｉｋｉｐｅｄｉａ）にて詳しいように、「多種多様のゲストオペレーティングシステムは、多くの種類の、Ｌｉｎｕｘ、ＢＳＤ、Ｓｏｌａｒｉｓ、Ｗｉｎｄｏｗｓ、Ｈａｉｋｕ、ＲｅａｃｔＯＳ、Ｐｌａｎ９、及びＡＲＯＳ  Ｒｅａｒｃｈオペレーティングシステムを含む、ＫＶＭにより、稼動する。更に、Ａｎｄｒｏｉｄ２．２、ＧＮＵ／Ｈｕｒｄ［８］（Ｄｅｂｉａｎ  Ｋ１６）、Ｍｉｎｉｘ３．１．２ａ、Ｓｏｌａｒｉｓ  １０  Ｕ３、Ｄａｒｗｉｎ  ８．０．１、並びに、より多くのＯＳ及び限定を伴うこれらのより新しいバージョンは、稼動すると知られている。ＱＥＭＵの修正バージョンは、ＫＶＭを用いてＭａｃＯＳＸを稼動できる。」
【０１２０】
ＫＶＭは、Ｌｉｎｕｘカーネルのための仮想化インフラストラクチャを提供する。ＫＶＭは、前述の実施形態で説明したように（ｌｉｂｖｉｒｔを介してインタフェースして）仮想マシンをサスペンドしてレジュームすることのサポートをする。ウイキペディア（Ｗｉｋｉｐｅｄｉａ）にて詳しいように、「ｌｉｂｖｉｒｔは、プラットフォーム仮想化を管理するための、オープンソースＡＰＩ、デーモン、及びマネジメントツールである。Ｌｉｎｕｘ、ＫＶＭ、Ｘｅｎ、ＶＭｗａｒｅ  ＥＳＸ、ＱＥＭＵ、及び、他の仮想化技術を管理するのに用いられ得る。これらのＡＰＩは、クラウドベースソリューションにてハイパーバイザのオーケストレーションレイヤにて、広範に用いられる。」ｌｉｂｖｉｒｔは、プラットフォーム仮想化を管理するための、ハイレベルのオープンソースＡＰＩ、デーモン、及びマネジメントツールである。Ｌｉｂｖｉｒｔは、仮想マシンを作成し、開始し、サスペンドし、レジュームし、及び、破壊するための、仮想化インフラストラクチャインタフェースを提供する。
【０１２１】
システム２４３では、ゴールデンイメージがアップデートされる。ゴールデンイメージは、仮想マシン、仮想デスクトップ、仮想サーバ、若しくはハードディスクイメージの、テンプレートである。ゴールデンイメージは、クローンイメージ、マスターイメージ、若しくはベースイメージと称される。ゴールデンイメージを作成するために、必要なように、更に、より多くのコピーを作成するためのパターンとしてディスクイメージをセーブするように、スクリプトは最初にコンピュータ環境を正確にセットアップするべく実行される。ゴールデンイメージは、オペレーティングシステムインストールの変化の無いディスクイメージであり、ＲＡＭ内に情報は何ら格納されることが無いこれは、ゴールデンイメージがプレブートステートにあるからである。
【０１２２】
実施形態では、ゴールデンイメージは、ゴールデンイメージに固有である、アドミニストレータユーザアカウントを定義した。ゴールデンイメージと関連するレギュラーユーザアカウント若しくはレギュラーユーザデータは、無い。ゴールデンイメージは、“ｂｕｉｌｄｖｍ．ｐｌ＜ｔｙｐｅ＞”を実行することにより為され、ここで“＜ｔｙｐｅ＞”の値は、生成されるゴールドイメージに対して為される更なるカスタマイズを規定する。即ち、ｔｙｐｅ‘ｌｘｄｅ’が更なるソフトウエアパッケージ‘ｌｘｄｅ−ｃｏｍｍｏｎ’、‘ｌｘｄｅ−ｉｃｏｎ−ｔｈｅｍｅ’及び‘ｌｘｒａｎｄｒ’をインストールすることを規定して、ＬＸＤＥに対してデフォルトデスクトップ環境をセットする。
【０１２３】
インストールのタイプは、ＧＵＩレイアウト及び仮想環境などの、特徴を提供する。システムは現下、二つのゴールドイメージタイプ：ＬＸＤＥ及びＸＦＣＥを生成する。作成され得るゴールデンイメージのタイプに限定は無い。
【０１２４】
システムでは、ゴールデンイメージは、以下のコマンドを用いてリスト化し得る。
【０１２５】
【表１】
2016536661.tif 000003
【０１２６】
スクリプト‘ｂｕｉｌｄｖｍ．ｐｌ’はウブントゥ（Ｕｂｕｎｔｕ）スクリプト‘ｖｍｂｕｉｌｄｅｒ’をコールし、ＫＶＭ内にＶＭを作成してウブントゥオペレーティングシステムのベーシックインストールを開始する。このベーシックウブントゥインストールが完了すると、コマンド‘ｖｉｒｓｈ  ｓｔａｒｔ’が発行され、ＶＭがパワーオンされ、スクリプト‘ｆｉｒｓｔｂｏｏｔ．ｓｈ’が新たに作成されたＶＭ内部から実行されて、以下のカスタマイズを行う。
１）．ＬＤＡＰシステムワイドＬＤＡＰ認証のための／ｅｔｃ／ｌｄａｐ．ｃｏｎｆ、ケルベロス（Ｋｅｒｂｅｒｏｓ）認証のための／ｅｔｃ／ｌｒｂ５．ｃｏｎｆ、及び、／ｅｔｃ／ｐｕｐｐｅｔ／ｐｕｐｐｅｔ．ｃｏｎｆなどの、システムコンフィグレーションをライトして、フライアプリケーションインストールに関して認める。
２）．ＧｏＰＣ  ＡｐｐＳｔｏｒｅで入手可能なアプリケーション全てに対して、従属物の全てをプレインストールする。ＡｐｐＳｔｏｒｅのアプリケーションのリストを介して繰り返してソフトウエアの従属物のリストを作成する、スクリプトを稼動することにより、このことは達成される。この場合、独立のアプリケーションとは逆に、従属物は、プログラムの実行に要求されるライブラリと関連する。
【０１２７】
これらのアプリケーションの従属物は、ｌｉｂｑｔ４−ｘｍｌ、ｌｉｂｔｉｍｅ−ｄａｔｅ−ｐｅｒｌ及びｐｙｔｈｏｎ−ｃａｒｉｏを含む。アプリケーションの従属物をプレインストールすることにより、ＡｐｐＳｔｏｒｅを介するアプリケーションのインストールタイムは大きく減少する。ダウンロードしインストールするパッケージが少なくなるからである。アプリケーションストアのスクリーンショットを図２４に示す。アップデートを達成するスクリプトの詳細は以下のようである。
【０１２８】
【表２】
2016536661.tif 000004
【表３】
2016536661.tif 000005
【０１２９】
前に説明したように、正確なゴールデンイメージタイプのためのカスタマイゼーションが実行される。‘ｆｉｒｓｔｂｏｏｔ．ｓｈ’スクリプトが実行することを終了すると、作成されるＶＭはパワーダウンされ、全てのオペレーティングシステムを終了しメモリ内の実行状態を除去して、コマンド‘ｖｉｒｓｈ  ｄｅｓｔｒｏｙ’とする。以下のコマンドが実行される。
【０１３０】
【表４】
2016536661.tif 000006
【表５】
2016536661.tif 000007
【０１３１】
これにより、ゴールデンイメージディスクイメージが、クローンのためのストレージバックエンドにて利用可能になる。処理の最後のステップは、提供データベース内でゴールデンイメージを‘アクティブ’とマークすることである。
【０１３２】
オペレーティングシステム若しくはアプリケーションソフトウエアのアップデートされたバージョンが要求されると、新しいゴールデンイメージが構築され提供データベース内でアクティブとされる。アプリケーションの従属物は、上記スクリプトのアウトプットに基づくものであり、ウブントゥ（Ｕｂｕｎｔｕ）ソフトウエアリポジトリからダウンロードされる。
【０１３３】
サスペンド及びレジュームは、稼働中の仮想デスクトップを取り上げてそのメモリ状態を一時的にセーブする処理のことである。しばらくすると、ゲストをその元の稼動状態に戻す（レジュームする）ことが可能となり、止められたところで実行を継続する。サスペンドは、ゲストのメモリの再現性のある持続性イメージをセーブしない。
【０１３４】
サスペンドされた状態内に設置されたＶＭは、稼働中のＶＭと同じ量のＲＡＭを仮想ホスト上で利用するが、仮想上ＣＰＵ時間は消費しない。多数のサスペンド状態のＶＭが仮想ホスト上に存在し得るが、ＣＰＵリソースには影響を与えない。
【０１３５】
ハイレベルでは、仮想デスクトップをユーザに割り当てる処理ステップは、従来以下のようである。
１）．ユーザが仮想デスクトップをリクエストする。
２）．ゴールデンイメージのクローン（コピー）を作成する。
３）．クローンをパワーオンする。
４）．オペレーティングシステムをブートする。
５）．クローン内部で（ｘｒｄｐ、ｓｓｈｄ及びｐｕｐｐｅｔなどの）ソフトウエアサービスを開始する。
６）．上記のソフトウエアサービスがそれらのスタートアップシーケンスを終了してサービスのために利用可能となるのを待機する（すなわち、ｘｒｄｐはＲＤＰクライアント接続を到来させるため、ポート３３８９にて傾聴している）。
７）．仮想デスクトップがすぐ使えることを述べるメッセージをユーザに送信する。
【０１３６】
上記リストにて、ステップ４からステップ６は、完了するのに１２０秒以上掛かり得る。例えば、相互作用のウェブサイトを強いられるユーザにとっては、１２０秒は待機するには長過ぎると考えられる。ｌｉｂｖｉｒｔ／ＫＶＭサスペンションの利用により有利なことに、本実施形態は、この処理を二つの独立の処理に分けることができ、よってユーザにとって有効な待機時間をセーブできる。
【０１３７】
実施形態の第１の処理は以下の通りである。
１）．ゴールデンイメージのクローン（コピー）を作成する。
２）．クローンをパワーオンする。
３）．オペレーティングシステムをブートする。
４）．クローン内部で（ｘｒｄｐ、ｓｓｈｄ及びｐｕｐｐｅｔなどの）ソフトウエアサービスを開始する。
５）．上記のソフトウエアサービスがそれらのスタートアップシーケンスを終了してサービスのために利用可能となるのを待機する。すなわち、ｘｒｄｐはＲＤＰクライアント接続を到来させるため、ポート３３８９にて傾聴している。（ポート３３８９へのＴＣＰ接続の成功によりｘｒｄｐが稼動していることをテストする。）
６）．仮想デスクトップをサスペンドする。
【０１３８】
一つのシステムでは、開始されるサービスは以下のようなリストとなる。
【表６】
2016536661.tif 000008
【表７】
2016536661.tif 000009
【０１３９】
我々のテストを介して、スタートアップシーケンスを完了する最新のサービスの一つはｘｒｄｐサービスであることに気付いた。
【０１４０】
第１の処理は以下の通りである。
１）．ユーザが仮想デスクトップをリクエストする。
２）．サスペンドされた仮想デスクトップをレジュームする。
３）．仮想デスクトップが直ぐに利用可能であるメッセージをユーザに送信する。
【０１４１】
第１の処理は、完了するのに約１２０秒かかり、どのユーザ相互作用からも独立して為され得る。第２の処理は、１秒以下で済むが、このことは、仮想デスクトップを要求するユーザ及び仮想デスクトップにために掛かる時間が最小限であることを意味する。
【０１４２】
図２５は、高い仮想ホストシステムロードの下で（ゴールデンイメージのクローンを構築してサスペンド状態に置く）第１の処理のタイムブレークダウンを提供するスクリーンショットを提供する。図示するように、実質的なタイムプロセスは、クローンすること、ＸＲＤＰを待機すること、及びスリープすることを含む。
【０１４３】
図２６は、高い仮想ホストシステムロードの下で（状態をレジュームする仮想デスクトップをセットする）第２の処理のタイムブレークダウンを提供するスクリーンショットを提供する。クローンプロセスはユーザ相互作用から切り離されるので、システムロードは、仮想デスクトップを割り当てられるユーザの相互作用のウェブサイトプロセスに実質的に影響を与えない。
【０１４４】
計算の際、データ重複排除は、繰り返すデータの重複コピーを限定するための特別なデータ圧縮技術である。重複排除は、ＲＡＭ内のコンテンツとディスクストレージ上のコンテンツの両方に適用される。システムでは、重複排除は、ＲＡＭのためのＫＶＫ及びネットワークストレージのためのＣｅｐｈにより、提供される。同じタイプの仮想デスクトップの全てが、ゴールデンイメージの同じである比較的小さいセットからクローンされるという事実により、仮想デスクトップのセットは非常によく圧縮し、要求されるＲＡＭ及びディスクの利用という観点にて大きな節約となる。これは有益であると考えられる。
【０１４５】
（以下に詳説するように）クローンイメージが構築されサスペンド状態とされ、続いて、後のアロケーション及びユーザによる利用のために、（仮想デスクトッププールと称する）ＦＩＦＯ（ファーストイン、ファーストアウト）キューに配置される。
【０１４６】
以下に示すコードは、サスペンドされた仮想デスクトップアロケーションプールに対して定期的にポーリングし、サスペンド状態の仮想デスクトップの数が所望のサスペンド状態のプールサイズを下回ったときゴールデンイメージからのクローンの構築を始動する。
【０１４７】
【表８】
2016536661.tif 000010
【表９】
2016536661.tif 000011
【０１４８】
仮想デスクトップは、以下の状態のライフサイクルを有する。
１）．構築−仮想デスクトップが、ゴールデンイメージからクローンされ、パワーオンし、該仮想デスクトップがサスペンド状態とされるまでサービスを起動する、プロセスにあるとき。
２）．利用可能−仮想デスクトップが、サスペンド状態とされユーザのアロケーションに準備可能なように仮想デスクトッププール内に配置されるとき。
３）．利用時−仮想デスクトップが、ユーザにアロケートされ、そのサスペンド状態からレジュームされ、現下利用時であるとき。
４）．終了−仮想デスクトップが、ユーザにより最早用いられず、システムによりパワーオフされ、関連ディスクイメージが除去されたとき。
【０１４９】
ユーザがＧｏＰＣウェブサイトを介して仮想デスクトップを要求すると、サスペンドされた仮想デスクトップが仮想デスクトッププール（最も古い仮想デスクトップは常時ここに選ばれる）から選ばれて、コマンド‘ｖｉｒｓｈ  ｒｅｓｕｍｅ’によりレジュームされる。レジュームされたＤＮＳが＜ｕｓｅｒ’ｓ  ｕｓｅｒｎａｍｅ＞をポインとするようにアップデートされると、仮想デスクトップのＩＰアドレスへのｄｅｓｋｔｏｐ．ｇｏｐｃ．ｎｅｔ及びユーザのアプリケーションがインストールされ、ユーザのコンフィグレーションが適用される。
【０１５０】
ユーザ作成データとユーザアプリケーションコンフィグレーション及びカスタマイゼーションとの全ては、ネットワークされたストレージ（ネットワークされたホームディレクトリ）上に格納され、仮想デスクトップそれ自身上には格納されない。ユーザのためのネットワークされたホームディレクトリにより、仮想デスクトップの様々なインスタンス間での、ユーザデータ及びコンフィグレーションの持続性が可能になる。
【０１５１】
ユーザデータは、ＡＦＳ分散ネットワークファイルシステムを介して仮想デスクトップシステムに示される。ユーザホームディレクトリは、以下のロケーション：／ａｆｓ／ｇｏｐｃ．ｎｅｔ／ｕｓｅｒｓ／＜ｕｓｅｒ’ｓ  ｕｎｉｑｕｅ  ＵＩＤ  ｎｕｍｂｅｒ＞からのマウントである。
【０１５２】
新しいゴールデンイメージの度に、オペレーティングシステムソフトウエア、アプリケーションソフトウエア、及び、ウブントゥ（Ｕｂｕｎｔｕ）ソフトウエアリポジトリからのアプリケーションソフトウエアの従属物の、最新バージョンが構築される。ソフトウエアの新しいバージョンと、ソフトウエアゴールデンイメージのより古いバージョンのユーザデータ及びユーザコンフィグレーションとの間の、潜在的非交換性を最小限にすることが、ウブントゥ（Ｕｂｕｎｔｕ）のＬＴＳ（ロングタームサポート）エディション上で構築される。ウブントゥ（Ｕｂｕｎｔｕ）のＬＴＳ（ロングタームサポート）エディションは、５年の公開耐用期間で形成され、ソフトウエアのアップデートされたバージョン間のソフトウエア交換性は、このタイプのソフトウエアの破損を防ぐために、ウブントゥ（Ｕｂｕｎｔｕ）の内部ＱＡチームによりテストされる。
【０１５３】
（ユーザ相互作用により、又は、ＲＤＰ若しくはＮＸを介する相互作用のユーザ接続の欠如により）仮想デスクトップが最早用いられないと判別されると、それは終了する。終了することは、（コマンド‘ｖｉｒｓｈ  ｄｅｓｔｒｏｙ’を介して）仮想デスクトップをパワーオフすること、（コマンド‘ｖｉｒｓｈ  ｕｎｄｅｆｉｎｅ’を介して）ｌｉｂｖｉｒｔ／ＫＶＭからマシン定義を除去すること、及び（‘ｒｂｄ  ｒｍ’を介して）クローンされたディスクイメージを除去することを、含む。仮想デスクトップが終了すると、仮想ホスト上で最早リソースを用いない。仮想デスクトップを終了するコードは以下の通りである。
【０１５４】
【表１０】
2016536661.tif 000012
【０１５５】
図２７を参照すると、本明細書に記載のシステム及び方法の好適な実施形態を提供するように構成されているコンピュータシステム２４０の概略図が示される。コンピュータシステム２４０は、好適な構成を提供するように協働する複数の個別のコンピュータシステム２４２（コンピュータ／コンピュータデバイス）を含む分散コンピュータ環境として提供される。別の実施形態では、コンピュータシステム２４０は単独のコンピュータデバイスとして提供される。
【０１５６】
図示されるように、コンピュータデバイス２４２の第１のものは、メモリファシリティ２４４を含む。メモリファシリティ２４４は、‘汎用メモリ’と、仮想メモリなどの他の形式のメモリとの、両方を含む。メモリファシリティ２４４は、少なくとも一つのプロセッサを含む処理ファシリティ２４６と動作自在に接続する。メモリファシリティ２４４は、実行可能な命令及び／又はコンピュータデータの形式でコンピュータ情報を含む。メモリファシリティ２４４は、好適な構成を実装するにあたり処理ファシリティ２４６によりアクセス可能である。
【０１５７】
図示されるように、コンピュータデバイス２４２の各々は、システムバスファシリティ２４８、データストアファシリティ２５０、インプットインタフェースファシリティ２５２、及びアウトプットインタフェースファシリティ２５４を含む。データストアファシリティ２５０は、実行可能な命令及び／又はコンピュータデータの形式でコンピュータ情報を含む。データストアファシリティ２５０は、処理ファシリティ２４６と動作自在に接続する。データストアファシリティ２５０は、好適な構成を実装するにあたり処理ファシリティ２４６によりアクセス可能である。
【０１５８】
コンピュータ情報は、複数のデバイスに亘って配置され得、複数の形式で提供され得る。例えば、データストアファシリティ２５０は、実行可能な命令及び／又はコンピュータデータの形式でコンピュータ情報を含む。コンピュータデータ情報は、符号化されたデータ命令、データ信号、データストラクチャ、サーバサイドオペレーションのためのプログラムロジック、クライアントサイドオペレーションのためのプログラムロジック、ストアされたウエブページ、及び、処理ファシリティ２４６によりアクセス可能であるものの形式で、提供され得る。
【０１５９】
一つのレベル上で、インプットインタフェースにより、コンピュータデータはコンピュータデバイス２４２により受信される。別のレベル上で、インプットインタフェースにより、一つ若しくはそれ以上のコンピュータデバイスを操作する個人から受信される。一つのレベル上で、アウトプットインタフェースにより、命令がコンピュータデバイスに送信される。別のレベル上で、アウトプットインタフェースにより、コンピュータデータが個人に送信される。インプット及びアウトプットインタフェースファシリティ２５２、２５４は、処理ファシリティ２４６と動作上関連するインプット及びアウトプットインタフェースを提供する。インプット及びアウトプットファシリティ２５２、２５４により、コンピュータデバイス２４２と個人の間の通信が為される。
【０１６０】
コンピュータデバイス２４２は、複数のデバイスがネットワーク及び他のインタフェースに亘って通信し共同で好適な構成を提供する分散システムを提供する。システムがデータネットワークにより相互接続するコンピュータデバイス２４２のシステム内で、少なくとも一つのクライアントデバイスが提供されるのが好ましい。
【０１６１】
クライアントデバイスは、クライアントデバイス及び他のコンピュータデバイス２４２がパブリックデータネットワークに亘って通信するシステム及び方法を、利用時に提供するシステム内で、利用のためにクライアントサイドソフトウエアプロダクトを提供し得る。ソフトウエアプロダクトは、実行可能な命令及び／又はコンピュータデータの形式で、好適な構成を提供するための、コンピュータ情報を含む。
【０１６２】
キーボード、マウス、トラックボール、タッチパッド、スキャナ、ビデオカード、オーディオカード、ネットワークカードなどと関連する、インプットインタフェースが、知られている。モニタ、プリンタ、スピーカ、ファクシミリ、プロジェクタなどと関連するアウトプットインタフェースが、知られている。ＬＡＮ、ＷＡなどの種々の形式のための、有線若しくは無線インタフェースの形式のネットワークインタフェースが、知られている。フロッピディスク、ハードディスク、ディスクカートリッジ、ＣＤ−ＲＯＭ、スマートカード、ＲＡＩＤシステムなどの形式のストレージファシリティが知られている。ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ及び他のデータストレージタイプを含む、揮発性及び不揮発性のメモリタイプが知られている。サーキットボードマテリアル、同軸ケーブル、光学ファイバ、無線ファシリティなどの、種々の通信ファシリティが知られている。
【０１６３】
当然ながら、システム、コンポーネント、ファシリティ、インタフェースなどは、複数の形式で提供され得る。システム、コンポーネント、ファシリティ、インタフェースなどは、ハードウエア、ソフトウエア、若しくはそれらの組み合わせとして提供され得る。本発明は、コンピュータ読み取り可能メモリ、パーソナルコンピュータ、及び分散コンピュータ環境として、具体化され得る。
【０１６４】
更に、本発明は、複数のコンピュータ実行可能オペレーション、複数のコンピュータ実行可能コンポーネント、プロセスオペレーションのセット、システム、ファシリティ若しくはコンポーネントのセット、コンピュータ実装方法を実行し及び／又はコンピュータ実装システムを提供するコンピュータ実行可能命令を格納したコンピュータ読み取り可能媒体、などとして、具体化され得る。コンピュータ実行可能命令の場合、それらは、本明細書に記載のシステム、コンポーネント、及びファシリティを符号化するのが好ましい。例えば、コンピュータ読み取り可能媒体は、本構成の少なくとも一部を形成する複数のオペレーションを実行するべく構成されているアプリケーションを稼動するように構成された一つ若しくはそれ以上のファシリティにより符号化され得る。コンピュータ読み取り可能媒体は、コンピュータ実行可能命令を一つ若しくはそれ以上デバイスの一つ若しくはそれ以上のプロセッサに提供することに、参加するのが好ましい。
【０１６５】
コンピュータ読み取り可能命令は、一つ若しくはそれ以上のコンピュータデバイスに所望のように動作させるために、一つ若しくはそれ以上のコンピュータデバイスにより実行されるのが好ましい。好適なデータストラクチャが、コンピュータ読み取り可能媒体上で格納されるのが好ましい。コンピュータ読み取り可能命令は、好適な構成の少なくとも一部を実行するための、コンピュータデバイスのオペレーティングシステムの一部を形成してもよい。一つ若しくはそれ以上のコンピュータデバイスは、好適な構成を実装するのが好ましい。
【０１６６】
コンピュータの用語は、サーバ、パーソナルコンピュータ、スマートホン、デジタルアシスタンス、及び分散コンピュータシステムを含むコンピュータデバイスの全ての形式を含むものとして、理解されるべきである。
【０１６７】
想定されるタイプの、コンピュータ読み取り可能媒体などは、非妥協的であるのが好ましい。そのようなコンピュータ読み取り可能媒体は、コンピュータデータの伝達のためのコンピュータベースの転送ファシリティと動作自在に関連してもよい。コンピュータ読み取り可能媒体は、データ信号を提供してもよい。コンピュータ読み取り可能媒体は、磁気ディスク、光学ディスク、並びに、産業界で適用例を有する若しくは見出されるような、他の電気／磁気及び物理ストレージ媒体を、含むのが好ましい。
【０１６８】
コンポーネント、システム及びタスクは、処理を実行する実行可能命令を提供すること、若しくは、例えば、プロセッサ内部で実行可能命令を実行することを含む、プロセスを含み得る。アプリケーション若しくは他の実行可能命令は、同じ結果を達成するのに異なる順序で方法オペレーションを実行してもよい。当然ながら、記載のシステム及び方法のブロックは、任意の適切な構成で及び任意の適切な動作順序で、具体化され得る。コンピュータファシリティ、モジュール、インタフェースなどは、別々の、分離の、結合の、ネスト化の、若しくは他の形式の構成で、提供され得る。本明細書に記載のシステムから方法が明白であり、本明細書に記載の方法からシステムが明白である。
【０１６９】
明白なことであるが、本発明の精神及び範囲から乖離すること無く、種々の変形及び等価の形式が提供され得る。このことは、変形、別途の構成、及び等価物と共に、添付の請求項の範囲内での変形を含む。
【０１７０】
図面に示す特定の実施形態に本発明を限定する意図は無い。本発明は、出願人に有利に解釈されるべきものであり、発明はその全範囲を与えられるべきものである。
【０１７１】
本明細書では、特定の特徴の存在は、更なる特徴の現存を排除するものでは無い。「含む」、「含有する」及び「有する」の用語は、排他的な意味では無く包括的な意味で解釈されるべきである。
【０１７２】
当然のことながら、本明細書の説明は、本発明の内容を説明することを意図するものである。説明した部材は任意の特定の国若しくは領域での先行技術ベース若しくは等価の一般知識の一部を形成したものであることは承認と採られるべきものでは無い。
【符号の説明】
【０１７３】
１０・・・コンピュータシステム、１８・・・仮想コンピュータ、３２・・・提供マネジャ、３８・・・プールファシリティ、４４・・・仮想コンピュータテンプレート、１００・・・アップデートファシリティ、１０２・・・レジュームファシリティ、１０４・・・カスタマイズファシリティ。
【図１】
2016536661.tif 000013
【図２】
2016536661.tif 000014
【図３】
2016536661.tif 000015
【図４】
2016536661.tif 000016
【図８】
2016536661.tif 000017
【図９】
2016536661.tif 000018
【図１１】
2016536661.tif 000019
【図１２】
2016536661.tif 000020
【図１４】
2016536661.tif 000021
【図１６】
2016536661.tif 000022
【図１９】
2016536661.tif 000023
【図２３】
2016536661.tif 000024
【図２４】
2016536661.tif 000025
【図５】
2016536661.tif 000026
【図６】
2016536661.tif 000027
【図７】
2016536661.tif 000028
【図１０】
2016536661.tif 000029
【図１３】
2016536661.tif 000030
【図１５】
2016536661.tif 000031
【図１７】
2016536661.tif 000032
【図１８】
2016536661.tif 000033
【図２０】
2016536661.tif 000034
【図２１】
2016536661.tif 000035
【図２２】
2016536661.tif 000036
【図２５】
2016536661.tif 000037
【図２６】
2016536661.tif 000038
【図２７】
2016536661.tif 000039
【国際調査報告】
2016536661.tif 000040
2016536661.tif 000041
2016536661.tif 000042
2016536661.tif 000043
2016536661.tif 000044