(57)【特許請求の範囲】
【請求項１】
第１の物理コンピュータ・システムの複数のバックアップ・イメージを、サーバ・コンピュータ・システムに格納するステップであって、各バックアップ・イメージが、所定のユーザに対応する前記第１の物理コンピュータ・システムの各状態を特定する、ステップと、
前記第１の物理コンピュータ・システムの仮想表現へのアクセスの第１の要求を、前記所定のユーザから第２の物理コンピュータ・システム上で実行されているＷｅｂブラウザプログラムを介して受信するステップと、
前記第１の要求に応答して、前記Ｗｅｂブラウザプログラムにより表示されるための、前記複数のバックアップ・イメージを特定する情報を前記第２の物理コンピュータ・システムに送信するステップと、
前記第２の物理コンピュータ・システム上で実行されている前記Ｗｅｂブラウザプログラムを介した、特定のバックアップ・イメージを選択する前記所定のユーザによるユーザ入力の受信に応答して、前記複数のバックアップ・イメージのうちの前記特定のバックアップ・イメージから仮想コンピュータをインスタンス化するステップと、
前記第２の物理コンピュータ・システム上で実行されている前記Ｗｅｂブラウザプログラムを介して、前記所定のユーザからの前記仮想コンピュータへのユーザ入力を受信するステップと、
前記仮想コンピュータへの前記ユーザ入力に応答して、前記仮想コンピュータの状態を変更するステップと、
前記仮想コンピュータの変更されたバックアップ・イメージを、前記サーバ・コンピュータ・システムに格納するステップであって、前記変更されたバックアップ・イメージが、前記仮想コンピュータの前記変更された状態を特定する、ステップと、
前記サーバ・コンピュータ・システムからの前記変更されたバックアップ・イメージを、前記第１の物理コンピュータ・システムに転送し、加えるステップと
を含む方法を実施するよう実行可能なプログラム命令を格納するコンピュータでアクセス可能な記憶媒体。
【請求項２】
前記変更されたバックアップ・イメージを前記第１の物理コンピュータ・システムに加えるステップが、前記第１の物理コンピュータ・システムを、前記仮想コンピュータの前記変更された状態に対応する変更された状態にする請求項１に記載のコンピュータでアクセス可能な記憶媒体。
【請求項３】
前記特定のバックアップ・イメージが前記第１の物理コンピュータ・システムの第１の状態を特定し、前記第１の状態が前記第１の物理コンピュータ・システムのファイル・システムの状態を含み、
前記仮想コンピュータの前記変更された状態が、前記ファイル・システムの変更された状態を含み、
前記変更されたバックアップ・イメージを前記第１の物理コンピュータ・システムに加えるステップが、前記第１の物理コンピュータ・システムの前記ファイル・システムを、前記ファイル・システムの前記変更された状態に変更する請求項１に記載のコンピュータでアクセス可能な記憶媒体。
【請求項４】
前記特定のバックアップ・イメージが前記第１の物理コンピュータ・システムの第１の状態を特定し、前記第１の状態が前記第１の物理コンピュータ・システム上のソフトウェア・アプリケーションの状態を含み、
前記仮想コンピュータの前記変更された状態が、前記ソフトウェア・アプリケーションの変更された状態を含み、
前記変更されたバックアップ・イメージを前記第１の物理コンピュータ・システムに加えるステップが、前記第１の物理コンピュータ・システム上の前記ソフトウェア・アプリケーションを、前記ソフトウェア・アプリケーションの前記変更された状態に変更する請求項１に記載のコンピュータでアクセス可能な記憶媒体。
【請求項５】
前記プログラム命令によって実施される前記方法は、前記サーバ・コンピュータ・システムが、前記Ｗｅｂブラウザプログラムにより表示するための前記仮想コンピュータのグラフィカル・ユーザ・インターフェイス情報を前記第２の物理コンピュータ・システムに送信するステップをさらに含む、請求項１に記載のコンピュータでアクセス可能な記憶媒体。
【請求項６】
前記特定のバックアップ・イメージが第１の１つ又は複数のファイルを含み、
前記特定のバックアップ・イメージから前記仮想コンピュータをインスタンス化するステップが、
前記特定のバックアップ・イメージの前記１つ又は複数のファイルを、第２の１つ又は複数のファイルに変換するステップであって、前記第２の１つ又は複数のファイルが、仮想コンピュータ・フォーマットに従ってフォーマットされる、ステップと、
前記第２の１つ又は複数のファイルから前記仮想コンピュータをインスタンス化するステップと
を含む請求項１に記載のコンピュータでアクセス可能な記憶媒体。
【請求項７】
前記プログラム命令によって実施される前記方法が、
前記仮想コンピュータを表す１つ又は複数のファイルを作成するステップ
をさらに含み、前記仮想コンピュータの前記変更されたバックアップ・イメージを格納するステップが、
前記仮想コンピュータを表す前記１つ又は複数のファイルを、物理デバイスのバックアップ・フォーマットに従ってフォーマットされる第２の１つ又は複数のファイルに変換するステップと、
前記第２の１つ又は複数のファイルを格納するステップであって、前記変更されたバックアップ・イメージが、前記第２の１つ又は複数のファイルを含む、ステップと
を含む請求項１に記載のコンピュータでアクセス可能な記憶媒体。
【請求項８】
前記仮想コンピュータの前記変更されたバックアップ・イメージが、前記特定のバックアップ・イメージに基づく増分バックアップ・イメージを含む請求項１に記載のコンピュータでアクセス可能な記憶媒体。
【請求項９】
前記仮想コンピュータの前記変更されたバックアップ・イメージが、別のバックアップ・イメージに基づかない独立したバックアップ・イメージを含む請求項１に記載のコンピュータでアクセス可能な記憶媒体。
【請求項１０】
前記特定のバックアップ・イメージが、
前記第１の物理コンピュータ・システムについてのオペレーティング・システム情報と、
前記第１の物理コンピュータ・システムについてのデバイス・ドライバ情報と、
前記第１の物理コンピュータ・システムにインストールされている１つ又は複数のソフトウェア・アプリケーションを表す情報と
のうちの１つ又は複数を含む請求項１に記載のコンピュータでアクセス可能な記憶媒体。
【請求項１１】
前記プログラム命令によって実施される前記方法が、
前記サーバ・コンピュータ・システムからの前記変更されたバックアップ・イメージを、第３の物理コンピュータ・システムに転送し、加えるステップ
をさらに含む請求項１に記載のコンピュータでアクセス可能な記憶媒体。
【請求項１２】
１つ又は複数のプロセッサと、
メモリ格納プログラム命令と、
１つ又は複数のストレージ・デバイスと、
を含み、前記プログラム命令が、
第１の物理コンピュータ・システムの複数のバックアップ・イメージを、前記１つ又は複数のストレージ・デバイスに格納するステップであって、各バックアップ・イメージが、所定のユーザに対応する前記第１の物理コンピュータ・システムの各状態を特定する、ステップと、
前記第１の物理コンピュータ・システムの仮想表現へのアクセスの第１の要求を、前記所定のユーザから第２の物理コンピュータ・システム上で実行されているＷｅｂブラウザプログラムを介して受信するステップと、
前記第１の要求に応答して、前記Ｗｅｂブラウザプログラムにより表示されるための、前記複数のバックアップ・イメージを特定する情報を前記第２の物理コンピュータ・システムに送信するステップと、
前記第２の物理コンピュータ・システム上で実行されている前記Ｗｅｂブラウザプログラムを介した、特定のバックアップ・イメージを選択する前記所定のユーザによるユーザ入力の受信に応答して、前記複数のバックアップ・イメージのうちの前記特定のバックアップ・イメージから仮想コンピュータをインスタンス化するステップと、
前記第２の物理コンピュータ・システム上で実行されている前記Ｗｅｂブラウザプログラムを介して、前記所定のユーザからの前記仮想コンピュータへのユーザ入力を受信するステップと、
前記仮想コンピュータへの前記ユーザ入力に応答して、前記仮想コンピュータの状態を変更するステップと、
前記仮想コンピュータの変更されたバックアップ・イメージを、前記１つ又は複数のストレージ・デバイスに格納するステップであって、前記変更されたバックアップ・イメージが、前記仮想コンピュータの前記変更された状態を特定する、ステップと、
前記変更されたバックアップ・イメージを、前記１つ又は複数のストレージ・デバイスから前記第１の物理コンピュータ・システムに転送し、加えるステップと
を含む方法を実施するために、前記１つ又は複数のプロセッサによって実行可能であるシステム。
【請求項１３】
前記変更されたバックアップ・イメージを前記第１の物理コンピュータ・システムに加えるステップが、前記第１の物理コンピュータ・システムを、前記仮想コンピュータの前記変更された状態に対応する変更された状態にする請求項１２に記載のシステム。
【請求項１４】
前記プログラム命令によって実施される前記方法が、前記Ｗｅｂブラウザプログラムにより表示するための前記仮想コンピュータのグラフィカル・ユーザ・インターフェイス情報を前記第２の物理コンピュータ・システムに送信するステップをさらに含む、請求項１２に記載のシステム。
【請求項１５】
第１の物理コンピュータ・システムの複数のバックアップ・イメージを、サーバ・コンピュータ・システムに格納するステップであって、各バックアップ・イメージが、所定のユーザに対応する前記第１の物理コンピュータ・システムの各状態を特定する、ステップと、
前記第１の物理コンピュータ・システムの仮想表現へのアクセスの第１の要求を、前記所定のユーザから第２の物理コンピュータ・システム上で実行されているＷｅｂブラウザプログラムを介して受信するステップと、
前記第１の要求に応答して、前記Ｗｅｂブラウザプログラムで表示される、前記複数のバックアップ・イメージを特定する情報を前記第２の物理コンピュータ・システムに送信するステップと、
前記第２の物理コンピュータ・システム上で実行されている前記Ｗｅｂブラウザプログラムを介した、特定のバックアップ・イメージを選択する前記所定のユーザによるユーザ入力の受信に応答して、前記複数のバックアップ・イメージのうちの前記特定のバックアップ・イメージから仮想コンピュータをインスタンス化するステップと、
前記第２の物理コンピュータ・システム上で実行されている前記Ｗｅｂブラウザプログラムを介して、前記所定のユーザからの前記仮想コンピュータへのユーザ入力を受信するステップと、
前記仮想コンピュータへの前記ユーザ入力に応答して、前記仮想コンピュータの状態を変更するステップと、
前記仮想コンピュータの変更されたバックアップ・イメージを、前記サーバ・コンピュータ・システムに格納するステップであって、前記変更されたバックアップ・イメージが、前記仮想コンピュータの前記変更された状態を特定する、ステップと、
前記サーバ・コンピュータ・システムからの前記変更されたバックアップ・イメージを、前記第１の物理コンピュータ・システムに転送し、加えるステップと
を含む方法。
【請求項１６】
前記変更されたバックアップ・イメージを前記第１の物理コンピュータ・システムに加えるステップが、前記第１の物理コンピュータ・システムを、前記仮想コンピュータの前記変更された状態に対応する変更された状態にする請求項１５に記載の方法。
【請求項１７】
前記方法は、前記Ｗｅｂブラウザプログラムにより表示するための前記仮想コンピュータのグラフィカル・ユーザ・インターフェイス情報を前記第２の物理コンピュータ・システムに送信するステップをさらに含む、請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想コンピューティング及びネットワーク式コンピュータ・システムの分野に関する。より詳細には、本発明は、物理コンピュータ・システムの仮想表現のオンデマンドでの遠隔アクセスのためのシステム及び方法に関する。
【背景技術】
【０００２】
ユーザは、一般に、様々な種類のソフトウェア・アプリケーションを走らせる、及び例えば業務用及び／又は個人用についての様々なタイプの情報の管理するために使用する１つ又は複数のパーソナル・コンピュータ・システムを有する。コンピュータ・システムの例には、デスクトップ・コンピュータ・システム、ラップトップ、又は個人用デジタル・アシスタント（ＰＤＡ）、「スマート」フォン、ゲーム用デバイスなどのモバイル・デバイスなどがある。ユーザは、例えばユーザが現在どこにいようと、コンピュータ・システム上の様々な場所にあるソフトウェア・アプリケーションやデータにアクセスする必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のデスクトップ・コンピュータ・システムなど固定位置のコンピュータ・システムに、異なる場所からアクセスすることは、特に厄介である。これらのコンピュータ・システムは、通常、持ち運びできないからである。このデータ・アクセス問題は、モバイル・コンピュータ・システムについては幾分低減されるが、完全には解決されない。例えば、ユーザは、どこに行くにも、常にモバイル・コンピュータ・システムを携えているわけではない。また、モバイル・コンピュータ・システムが無くなる、盗まれる、又は壊されると、ユーザは、アクセスすることができなくなる。
【課題を解決するための手段】
【０００４】
第１の物理コンピュータ・システムの仮想表現にアクセスするためのシステム及び方法の様々な実施態様が開示される。この方法の一実施態様によれば、第１の物理コンピュータ・システムの第１のバックアップ・イメージが、サーバ・コンピュータ・システムに格納され、第１のバックアップ・イメージが、第１の物理コンピュータ・システムの第１の状態を特定する。第１の物理コンピュータ・システムの仮想表現へのアクセスの要求に応答して、サーバ・コンピュータ・システム上の第１のバックアップ・イメージから仮想コンピュータがインスタンス化される。例えば、一部の実施態様では、第１の物理コンピュータ・システムの仮想表現へのアクセスの要求は、第２の物理コンピュータ・システムから受信される。サーバ・コンピュータ・システムは、第２の物理コンピュータ・システムが、仮想コンピュータへアクセスするために、第２の物理コンピュータ・システムと通信する。
【０００５】
仮想コンピュータへのユーザ入力に応答して、仮想コンピュータの状態が変更される。この方法は、仮想コンピュータの第２のバックアップ・イメージを、サーバ・コンピュータ・システムに格納することをさらに含み、第２のバックアップ・イメージが、仮想コンピュータの変更された状態を特定する。この方法は、サーバ・コンピュータ・システムからの第２のバックアップ・イメージを、第１の物理コンピュータ・システムに転送し、加えることをさらに含む。第２のバックアップ・イメージを第１の物理コンピュータ・システムに加えることによって、第１の物理コンピュータ・システムは、仮想コンピュータの変更された状態に対応する第２の状態になる。
【０００６】
以下の詳細な説明を、以下の図面と併せ読めば、本発明をよりよく理解することができる。
【０００７】
本発明は、様々な変更形態及び変形形態が可能であるが、その特定の実施形態は、図面に例として示されており、詳しく説明される。しかし、図面及びその詳細な説明は、本発明を開示された特定の形態に限定するものではなく、むしろ、本発明は、添付の特許請求の範囲によって定義されている本発明の意図及び範囲内に含まれるすべての変更形態、均等物、及び変形形態をカバーするものであることを理解されたい。
【発明を実施するための最良の形態】
【０００８】
本明細書には、物理コンピュータ・システムの仮想表現にアクセスするためのシステム及び方法の様々な実施形態が開示される。図１は、システムの一実施形態を示す。この例では、システムは、ユーザのコンピュータ・システム８０、サーバ・コンピュータ・システム９０、クライアント・アクセス・コンピュータ・システム８２を含む。簡単に言えば、この方法は、サーバ・コンピュータ・システム９０に、ユーザのコンピュータ・システム８０の１つ又は複数のバックアップ・イメージを格納することを含む。それぞれのバックアップ・イメージは、ユーザのコンピュータ・システム８０を、例えばそれぞれのバックアップ・イメージが作成された時など、対応する時点に存在していた通りに表現している。例えば、各バックアップ・イメージは、それぞれの状態情報を特定する。その状態情報は、バックアップ・イメージが作成された時のユーザのコンピュータ・システム８０の状態を表す。
【０００９】
この方法は、サーバ・コンピュータ・システム９０が、クライアント・アクセス・コンピュータ・システム８２から受信されたユーザの要求に応答して、ユーザのコンピュータ・システム８０を表す仮想コンピュータをインスタンス化することをさらに含む。仮想コンピュータは、サーバ・コンピュータ・システム９０に格納されているユーザのコンピュータ・システム８０のバックアップ・イメージのうちの１つからインスタンス化される。例えば、ユーザは、クライアント・アクセス・コンピュータ・システム８２と対話して、サーバ・コンピュータ・システム９０によってホストされているサービスにログ・インし、ユーザのコンピュータ・システム８０のバックアップ・イメージのうちの１つを選択する。それに応答して、サーバ・コンピュータ・システム９０は、選択されたバックアップ・イメージから仮想コンピュータをインスタンス化する。
【００１０】
仮想コンピュータは、選択されたバックアップ・イメージが作成された時に存在していた通りのユーザのコンピュータ・システム８０の仮想表現を含む。例えば、選択されたバックアップ・イメージは、仮想コンピュータを、選択されたバックアップ・イメージが作成された時にユーザのコンピュータ・システム８０が存在していた状態に対応する状態にするために使用される。ユーザは、同様に、ユーザがユーザの実際のコンピュータ・システム８０と対話しているかのように（選択されたバックアップ・イメージが作成された時に存在していた通りに）、クライアント・アクセス・コンピュータ・システム８２を介して、サーバ・コンピュータ・システム９０上の仮想コンピュータと対話することができる。例えば、選択されたバックアップ・イメージは、ユーザのコンピュータ・システム８０上のファイル・システムの状態を特定する情報を含み、仮想コンピュータは、この情報に基づいて、同じファイル・システムを実装する。選択されたバックアップ・イメージは、ユーザのコンピュータ・システム８０にインストールされた１つ又は複数のソフトウェア・アプリケーションの状態を特定する情報も含み、仮想コンピュータは、ユーザが仮想コンピュータ上で１つ又は複数のソフトウェア・アプリケーションを走らせることができるようにし、１つ又は複数のソフトウェア・アプリケーションは、同様に又は同じく、ユーザの実際のコンピュータ・システム８０上で走っているかのように機能する。
【００１１】
ユーザの仮想コンピュータとの対話に応答して、仮想コンピュータの状態を変更することができる。例えば、ユーザのコンピュータ・システム８０のファイル・システムが仮想コンピュータ上で再現される場合、例えば、ユーザによる１つ又は複数のファイルの追加、削除、又は変更に応答して、ファイル・システムが変更される。別の例として、ユーザのコンピュータ・システム８０にインストールされているソフトウェア・アプリケーションが仮想コンピュータ上で実行される場合、ユーザの仮想コンピュータ上のソフトウェア・アプリケーションとの対話に応答して、ソフトウェア・アプリケーションの状態、又はソフトウェア・アプリケーションによって維持されるデータの状態が変更される。
【００１２】
この方法は、仮想コンピュータの新しいバックアップ・イメージを、サーバ・コンピュータ・システムに格納することをさらに含み、新しいバックアップ・イメージが、仮想コンピュータの変更された状態を特定する。例えば、一部の実施形態では、ユーザは、仮想コンピュータと対話し終わった後、サーバ・コンピュータ・システム９０からログ・オフする。サーバ・コンピュータ・システム９０は、仮想コンピュータに基づいて、新しいバックアップ・イメージを作成し、新しいバックアップ・イメージを格納することもある。
【００１３】
この方法は、サーバ・コンピュータ・システムからの新しいバックアップ・イメージを、ユーザのコンピュータ・システム８０に転送し、加えることをさらに含む。新しいバックアップ・イメージをユーザのコンピュータ・システム８０に加えることによって、ユーザのコンピュータ・システム８０は、仮想コンピュータの変更された状態に対応する状態になる。例えば、ユーザが仮想コンピュータと対話して、ファイル・システムを変更した場合、ユーザのコンピュータ・システム８０上のファイル・システムは、それに応じて変更される。同様に、ユーザが仮想コンピュータと対話して、ソフトウェア・アプリケーションの状態、又はソフトウェア・アプリケーションによって維持されているデータの状態を変更した場合、ソフトウェア・アプリケーション又はその関連のデータは、ユーザのコンピュータ・システム８０上でそれに応じて変更される。
【００１４】
図１に示されているように、ユーザのコンピュータ・システム８０、サーバ・コンピュータ・システム９０、クライアント・アクセス・コンピュータ・システム８２は、ネットワーク８４を介して結合される異なるコンピュータ・システムである。例えば、一部の実施形態では、これら３つのそれぞれのコンピュータ・システムは、地理的に互いに離れていて、例えば、異なる部屋、異なる建物、ある市内の異なる場所、異なる市、異なる国に配置されてもよい。一例として、一実施形態では、ユーザのコンピュータ・システム８０と、サーバ・コンピュータ・システム９０は、ある市内の異なる場所に配置されてもよく、クライアント・アクセス・コンピュータ・システム８２は、異なる国に配置されてもよい。別の例として、一実施形態では、３つのそれぞれのコンピュータ・システムは、企業キャンパス複合施設（corporate campus complex）内の異なる場所に配置されてもよい。
【００１５】
様々な実施形態において、ネットワーク８４は、任意のタイプのネットワーク又はネットワークの組み合わせを含む。例えば、ネットワーク８４は、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、無線ネットワーク、イントラネット、インターネットなどの任意のタイプ又は組み合わせを含む。ローカル・エリア・ネットワークの例には、Ｅｔｈｅｒｎｅｔ（登録商標）ネットワーク、ファイバ分散型データ・インターフェイス（Fiber Distributed Data Interface：ＦＤＤＩ）ネットワーク、トークン・リング・ネットワークなどがある。また、ユーザのコンピュータ・システム８０、サーバ・コンピュータ・システム９０、クライアント・アクセス・コンピュータ・システム８２はそれぞれ、任意のタイプの有線又は無線の接続媒体を使用してネットワーク８４に接続することができる。例えば、有線の媒体には、Ｅｔｈｅｒｎｅｔ、ファイバ・チャネル、単純旧式電話サービス（plain old telephone service：ＰＯＴＳ）に接続されているモデムなどが含まれてよい。無線の接続媒体は、ＩＥＥＥ８０２．１１（例えば無線Ｅｔｈｅｒｎｅｔ）プロトコルなどの無線接続プロトコルを使用した無線接続、セルラー・サービスを介したモデム・リンク、衛星リンクなどが含まれてもよい。
【００１６】
この方法の様々な実施形態を、様々なタイプのアプリケーションに使用して、物理デバイスの仮想表現への遠隔アクセスをユーザに提供することができる。一例として、ユーザのコンピュータ・システム８２は、職場のオフィスにあるコンピュータ・システムである場合を考察する。ユーザのコンピュータ・システム８０は、サーバ・コンピュータ・システム９０と通信して、１つ又は複数のバックアップ・イメージを、サーバ・コンピュータ・システム９０に格納する。例えば、サーバ・コンピュータ・システム９０は、ユーザの雇用主によって管理されるサーバ・コンピュータ・システム、又は、サード・パーティ・サービス・プロバイダによって管理される社外のサーバ・コンピュータ・システムである。
【００１７】
ユーザが休暇をとって他国に行き、職場のオフィスにあるそのユーザのコンピュータ・システム上のプロジェクト計画ソフトウェア・アプリケーションにアクセスする必要があることに気付くと仮定する。ユーザは、例えばインターネットを経由して、クライアント・アクセス・コンピュータ・システム８２を介して、サーバ・コンピュータ・システム９０に接続することができる。一部の実施形態では、クライアント・アクセス・コンピュータ・システム８２は、インターネット・アクセスすることができる任意のコンピュータ・システムである。例えば、クライアント・アクセス・コンピュータ・システム８２は、そのユーザが休暇をとっている国のインターネット・カフェにあるコンピュータ・システム、又はラップトップや携帯電話など、ユーザが所有する携帯用コンピュータ・システムであってもよい。
【００１８】
クライアント・アクセス・コンピュータ・システム８２を介して、ユーザは、サーバ・コンピュータ・システム９０に、サーバ・コンピュータ・システム９０に格納されているユーザのコンピュータ・システム８０のバックアップ・イメージのうちの１つから仮想コンピュータをインスタンス化するよう要求する。したがって、ユーザは、クライアント・アクセス・コンピュータ・システム８２を介して、仮想コンピュータと対話することができる。特に、この例では、ユーザは、仮想コンピュータにおいてプロジェクト計画ソフトウェア・アプリケーションの実行を開始してよく、クライアント・アクセス・コンピュータ・システム８２上に表示されるグラフィカル・ユーザ・インターフェイスを介して、プロジェクト計画ソフトウェア・アプリケーションと対話することができる。例えば、ユーザは、プロジェクト計画ソフトウェア・アプリケーションを使用して、プロジェクト・ファイル又はデータベースを変更してもよい。
【００１９】
ユーザは、プロジェクト計画ソフトウェア・アプリケーションを使用し終わった後、仮想コンピュータとサーバ・コンピュータ・システム９０からログ・オフする。サーバ・コンピュータ・システム９０は、仮想コンピュータのバックアップ・イメージを作成し、それを、サーバ・コンピュータ・システム９０に格納する。仮想コンピュータのバックアップ・イメージは、仮想コンピュータの状態に加えられる変更を特定する情報、例えば、この例では、変更されたプロジェクト・ファイル又はデータベースを示す情報を含む。
【００２０】
一部の実施形態では、ユーザは、後で、休暇後オフィスに戻り、オフィスにあるユーザのコンピュータ・システム８０と対話し、サーバ・コンピュータ・システム９０にログ・オンして、休暇時に仮想コンピュータを使用している間に加えた変更がユーザのコンピュータ・システム８０に適用されるよう要求することができる。したがって、サーバ・コンピュータ・システム９０は、ユーザのコンピュータ・システム８０と通信して、ユーザのコンピュータ・システム８０に、仮想コンピュータから以前作成されたバックアップ・イメージを転送する。ユーザのコンピュータ・システム８０は、例えば、ユーザのコンピュータ・システム８０を、自動的に、バックアップ・イメージが作成された時の仮想コンピュータの状態に対応する状態にするために、転送されたバックアップ・イメージをユーザのコンピュータ・システム８０に自動的に加えるよう動作可能なソフトウェアを含む。したがって、この例では、変更されたプロジェクト・ファイル又はデータベースを反映するために、ユーザのコンピュータ・システム８０上のファイル・システムが自動的に更新され、場合によっては、プロジェクト計画ソフトウェア・アプリケーションによって維持される他の情報も、バックアップ・イメージに応答して変更されることがある。
【００２１】
他の実施形態では、ユーザは、サーバ・コンピュータ・システム９０に手動で接続し、仮想コンピュータで作成されたバックアップ・イメージがユーザのコンピュータ・システム８０に転送され、加えられるよう要求する必要が必ずしもない。例えば、一部の実施形態では、サーバ・コンピュータ・システム９０は、ユ―ザのコンピュータ・システム８０と自動的に通信して、サーバ・コンピュータ・システム９０において新しいバックアップ・イメージが作成されたことをユーザのコンピュータ・システム８０に知らせるようにしてもよく、新しいバックアップ・イメージは、ユーザのコンピュータ・システム８０に、自動的に転送され、加えられてもよい。他の実施形態では、ユーザのコンピュータ・システム８０は、サーバ・コンピュータ・システム９０において新しいバックアップ・イメージが作成されたということを自動的に検出するか、通知されてもよいが、ユーザのコンピュータ・システムは、それを自動的に行う前に、まず、新しいバックアップ・イメージをユーザのコンピュータ・システム８０に加えたかどうかをユーザに尋ねてもよい。
【００２２】
ユーザのコンピュータ・システム８０は、図１に、デスクトップ・コンピュータ・システムとして示されているが、様々な実施形態において、ユーザのコンピュータ・システム８０は、任意のタイプのコンピュータでよく、様々な任意の形状因子を有してよい。同様に、サーバ・コンピュータ・システム９０やクライアント・アクセス・コンピュータ・システム８２は、それぞれ任意のタイプのコンピュータ・システムであってよい。一般に、「コンピュータ・システム」という用語は、メモリに格納されている命令を実行する少なくとも１つのプロセッサを有する任意のデバイス（又はデバイスの組み合わせ）を指す。コンピュータ・システムの例には、パーソナル・コンピュータ・システム（デスクトップ・コンピュータ・システム、ラップトップなど）、サーバ・コンピュータ・システム、セットトップ・ボックス、ゲーム・ステーション、個人用デジタル・アシスタント（ＰＤＡ）、「スマート」フォンなど、様々なモバイル・デバイスなどがある。
【００２３】
また、ユーザのコンピュータ・システム８０は、本明細書では、便宜上「ユーザのコンピュータ」システムと呼ぶが、様々な実施形態において、この用語は、任意の物理コンピュータ・システムを指し、コンピュータ・システムは、必ずしも任意の特定のユーザの所有物であるとは限らないことに留意されたい。
【００２４】
図２は、一実施形態によるユーザのコンピュータ・システム８０の一例を示す。上述したように、ユーザのコンピュータ・システム８０は、任意のタイプのコンピュータ・システムを含む。この例では、ユーザのコンピュータ・システム８０は、メモリ１２２に結合されたプロセッサ１２０を含む。一部の実施形態では、メモリ１２２は、ダイナミックＲＡＭ（ＤＲＡＭ）やシンクロナスＤＲＡＭ（ＳＤＲＡＭ）など、１つ又は複数の形のランダム・アクセス・メモリ（ＲＡＭ）を含んでもよい。しかし、他の実施形態では、メモリ１２２は、代わりに、又はさらに、他のタイプの任意のメモリを含んでもよい。
【００２５】
メモリ１２２は、プログラム命令及び／又はデータを格納するように構成されている。特に、メモリ１２２は、イメージ管理クライアント・ソフトウェア２０５を格納することができる。プロセッサ１２０は、バックアップ・イメージの管理に関連する様々な機能をユーザのコンピュータ・システム８０において実行するように、イメージ管理クライアント・ソフトウェア２０５を実行することができる。例えば、イメージ管理クライアント・ソフトウェア２０５は、ユ―ザのコンピュータ・システム８０のバックアップ・イメージを作成し、サーバ・コンピュータ・システム９０と通信し、バックアップ・イメージをユーザのコンピュータ・システム８０からサーバ・コンピュータ・システム９０に送信し、サーバ・コンピュータ・システム９０からバックアップ・イメージ（例えば仮想コンピュータのバックアップ・イメージなど）を受信し、受信されたバックアップ・イメージをユーザのコンピュータ・システム８０に加えるよう実行可能である。また、メモリ１２２は、ネットワーク通信ソフトウェアやオペレーティング・システム・ソフトウェアなど、イメージ管理クライアント・ソフトウェア２０５と共に動作する、又はそれによって使用される他のソフトウェアも格納してもよい。
【００２６】
様々な実施形態において、イメージ管理クライアント・ソフトウェア２０５は、様々な方法のうちの任意のもので実装されてよく、任意の所望のソフトウェア・アーキテクチャを有してよい。例えば、一部の実施形態では、イメージ管理クライアント・ソフトウェア２０５は、単一のソフトウェア・アプリケーションとして実装される。他の実施形態では、イメージ管理クライアント・ソフトウェア２０５は、互いに一緒に動作する２つ以上のソフトウェア・プログラム又はアプリケーションとして実装される。
【００２７】
再度図２を参照すると、プロセッサ１２０は、任意のタイプのプロセッサを表すことに留意されたい。例えば、一部の実施形態では、プロセッサ１２０は、ｘ８６アーキテクチャとの互換性があり、他の実施形態では、プロセッサ１２０は、プロセッサのＳＰＡＲＣ（商標）ファミリとの互換性がある。また、一部の実施形態では、ユーザのコンピュータ・システム８０は、複数のプロセッサ１２０を含んでもよい。
【００２８】
また、ユーザのコンピュータ・システム８０は、１つ又は複数のストレージ・デバイス１２５を含むか、それに結合されている。様々な実施形態において、ストレージ・デバイス１２５は、光ストレージ・デバイス、ディスク・ドライブ、テープ・ドライブ、フラッシュ・メモリ・デバイスなど、データを格納するよう動作可能な様々な種類の任意のストレージ・デバイスを含む。一例として、ストレージ・デバイス１２５は、独立して構成された１つ又は複数のディスク・ドライブとして、又は１つのディスク・ストレージ・システムとして実装されてもよい。
【００２９】
ユーザのコンピュータ・システム８０は、ユーザのコンピュータ・システム８０のユーザからユーザ入力を受信するための１つ又は複数の入力デバイス１２６も含む。入力デバイス１２６は、キーボード、キーパッド、マイクロフォン、又はポインティング・デバイス（マウスやトラックボールなど）など、様々なタイプの任意の入力デバイスを含む。ユーザのコンピュータ・システム８０は、ユーザに出力を表示するための１つ又は複数の出力デバイス１２８も含む。出力デバイス１２８は、ＬＣＤ画面又はモニタ、ＣＴＲモニタなど、様々なタイプの任意の出力デバイス又は表示デバイスを含む。
【００３０】
ユーザのコンピュータ・システム８０は、ユーザのコンピュータ・システム８０がそれを介してネットワーク８４に接続するネットワーク接続ハードウェア１２９も含む。ネットワーク接続ハードウェア１２９は、例えば、ネットワークのタイプに応じて、ユーザのコンピュータ・システム８０をネットワーク８４に結合するための任意のタイプのハードウェアを含む。上述したように、様々な実施形態において、ユーザのコンピュータ・システム８０は、任意のタイプのネットワーク又はネットワークの組み合わせを介して、サーバ・コンピュータ・システム９０に結合される。
【００３１】
図３は、一実施形態によるサーバ・コンピュータ・システム９０の一例を示す図である。上述したように、サーバ・コンピュータ・システム９０は、任意のタイプのコンピュータ・システムを含む。この例では、サーバ・コンピュータ・システム９０は、メモリ１２２に結合されている１つ又は複数のプロセッサ１２０を含む。一部の実施形態では、メモリ１２２は、ダイナミックＲＡＭ（ＤＲＡＭ）やシンクロナスＤＲＡＭ（ＳＤＲＡＭ）など、１つ又は複数の形のランダム・アクセス・メモリ（ＲＡＭ）を含む。しかし、他の実施形態では、メモリ１２２は、代わりに、又はさらに、他のタイプの任意のメモリを含む。
【００３２】
サーバ・コンピュータ・システム９０のメモリ１２２は、プログラム命令及び／又はデータを格納するように構成される。特に、メモリ１２２は、イメージ管理サーバ・ソフトウェア２０７を格納する。プロセッサ１２０は、バックアップ・イメージの管理に関連する様々な機能をサーバ・コンピュータ・システム９０において実行するように、イメージ管理サーバ・ソフトウェア２０７を実行してもよい。例えば、イメージ管理サーバ・ソフトウェア２０７は、ユーザのコンピュータ・システム８０上のイメージ管理クライアント・ソフトウェア２０５又は他のソフトウェアと通信して、ユーザのコンピュータ・システム８０からバックアップ・イメージを受信し、バックアップ・イメージを、例えば、サーバ・コンピュータ・システム９０の１つ又は複数のストレージ・デバイス１２５に格納するよう実行可能である。また、イメージ管理サーバ・ソフトウェア２０７は、仮想コンピュータからバックアップ・イメージを作成するよう実行可能であってもよく、この場合、例えば、仮想コンピュータが、ユーザのコンピュータ・システム８０から受信されたバックアップ・イメージのうちの１つからインスタンス化され、仮想コンピュータから作成されたバックアップ・イメージが、仮想コンピュータの変更された状態を反映する。また、イメージ管理サーバ・ソフトウェア２０７は、ユーザのコンピュータ・システム８０上のイメージ管理クライアント・ソフトウェア２０５又は他のソフトウェアと通信して、仮想コンピュータから作成されたバックアップ・イメージを、ユーザのコンピュータ・システム８０に送信するよう実行可能であってもよい。
【００３３】
また、サーバ・コンピュータ・システム９０のメモリ１２２は、サービス・ホスティング・ソフトウェア（service hosting software）２１５も格納している。サービス・ホスティング・ソフトウェア２１５は、クライアント・アクセス・コンピュータ・システム８２上で実行されるＷｅｂブラウザ・ソフトウェア又は他の遠隔のクライアント・アクセス・ソフトウェアと通信して、クライアント・アクセス・コンピュータ・システム８２のユーザが、サーバ・コンピュータ・システム９０に接続し、ユーザのコンピュータ・システム８０の仮想表現へのアクセスを要求するよう実行可能である。例えば、一部の実施形態では、サービス・ホスティング・ソフトウェア２１５は、Ｗｅｂブラウザが、サーバ・コンピュータ・システム９０に接続し、ユーザについての識別情報と認証情報を提供できるようにするＷｅｂサーバ・ソフトウェアを含む。識別情報と認証情報の受信に応答して、サービス・ホスティング・ソフトウェア２１５は、Ｗｅｂブラウザが、ユーザのコンピュータ・システム８０から以前受信された、格納されているバックアップ・イメージを示すユーザ・インターフェイスを表示できるようにするＨＴＭＬ又は他の情報を提供してもよい。
【００３４】
また、サーバ・コンピュータ・システム９０のメモリ１２２は、仮想化サービス・ソフトウェア２０９も格納する。クライアント・アクセス・コンピュータ・システム８２のユーザが、Ｗｅｂブラウザに表示されているユーザ・インターフェイスから、格納されているバックアップ・イメージのうちの１つを選択すると、サービス・ホスティング・ソフトウェア２１５は、仮想化サービス・ソフトウェア２０９に、選択されたバックアップ・イメージから仮想コンピュータをインスタンス化するよう要求する。それに応答して、仮想化サービス・ソフトウェア２０９は、仮想コンピュータをインスタンス化し、クライアント・アクセス・コンピュータ・システム８２上のＷｅｂブラウザ・ソフトウェア又は他の遠隔のクライアント・アクセス・ソフトウェアと通信して、クライアント・アクセス・コンピュータ・システム８２のユーザが、仮想コンピュータと対話できるようにする。
【００３５】
様々な実施形態において、仮想化サービス・ソフトウェア２０９は、様々な種類の任意の仮想化環境を実装し、様々な任意の技術に従って、クライアント・アクセス・コンピュータ・システム８２上のＷｅｂブラウザ・ソフトウェア又は他の遠隔のクライアント・アクセス・ソフトウェアと通信して、ユーザが仮想コンピュータと対話することができるようにする。図３に示した実施形態では、仮想化サービス・ソフトウェア２０９は、仮想コンピュータ実行ソフトウェア２１１と、ＵＩ／通信ソフトウェア２１３を含む。仮想コンピュータ実行ソフトウェア２１１は、仮想コンピュータのインスタンス化及び実行を管理する。ＵＩ／通信ソフトウェア２１３は、仮想コンピュータ実行ソフトウェア２１１と、クライアント・アクセス・コンピュータ・システム８２上の遠隔のクライアント・アクセス・ソフトウェアとの間の中間エージェントとして働くことができる。例えば、ＵＩ／通信ソフトウェア２１３は、仮想コンピュータ実行ソフトウェア２１１から仮想コンピュータの出力情報を受信し、その出力情報を、遠隔のクライアント・アクセス・ソフトウェアによって使用可能な形に変換して、クライアント・アクセス・コンピュータ・システム８２上に、仮想コンピュータについてのグラフィカル・ユーザ・インターフェイスを表示してもよい。また、ＵＩ／通信ソフトウェア２１３は、遠隔のクライアント・アクセス・ソフトウェアから仮想コンピュータについてのユーザ入力を受信し、そのユーザ入力を、仮想コンピュータ実行ソフトウェア２１１に渡してもよい。次いで、仮想コンピュータ実行ソフトウェア２１１の管理下で実行されている仮想コンピュータは、ユーザ入力を処理することができる。
【００３６】
再度図３を参照すると、１つ又は複数のプロセッサ１２０は、任意のタイプのプロセッサを表すことに留意されたい。例えば、一部の実施形態では、プロセッサ１２０のうちの１つ又は複数は、ｘ８６アーキテクチャとの互換性があり、他の実施形態では、プロセッサ１２０のうちの１つ又は複数は、プロセッサのＳＰＡＲＣ（商標）ファミリとの互換性がある。
【００３７】
また、サーバ・コンピュータ・システム９０は、１つ又は複数のストレージ・デバイス１２０を含むか、それに結合されている。様々な実施形態において、ストレージ・デバイス１２５は、光ストレージ・デバイス、ディスク・ドライブ、テープ・ドライブ、フラッシュ・メモリ・デバイスなど、データを格納するよう動作可能な様々な種類の任意のストレージ・デバイスを含む。一例として、ストレージ・デバイス１２５は、独立して構成された１つ又は複数のディスク・ドライブとして、又は１つのディスク・ストレージ・システムとして実装されてよい。
【００３８】
サーバ・コンピュータ・システム９０は、ユーザ入力を受信する１つ又は複数の入力デバイス１２６、及び出力を表示する１つ又は複数の出力デバイス１２８も含む。サーバ・コンピュータ・システム９０は、サーバ・コンピュータ・システム９０がそれを介してネットワーク８４に接続するネットワーク接続ハードウェア１２９も含む。ネットワーク接続ハードウェア１２９は、例えば、ネットワークのタイプに応じて、サーバ・コンピュータ・システム９０をネットワーク８４に結合するための任意のタイプのハードウェアを含む。
【００３９】
一部の実施形態では、サーバ・コンピュータ・システム９０は、複数のコンピュータを含んでよく、その場合、例えば、コンピュータは、ネットワークを介して結合される。したがって、サーバ・コンピュータ・システム９０の機能は、複数のコンピュータにわたって分散させることが可能である。例えば、図４は、サーバ・コンピュータ・システム９０が３つのサーバ・コンピュータ９１Ａ、９１Ｂ、９１Ｃを含む一実施形態を示す。この例では、サーバ・コンピュータ９１Ａは、サービス・ホスティング・ソフトウェア２１５を実行し、サーバ・コンピュータ９１Ｂは、仮想化サービス・ソフトウェア２０９を実行し、サーバ・コンピュータ９１Ｃは、イメージ管理サーバ・ソフトウェア２０７を実行する。サーバ・コンピュータ９１Ａ、９１Ｂ、９１Ｃは、ローカル・エリア・ネットワーク（ＬＡＮ）８５を介して互いに結合されている。サーバ・コンピュータ９１Ａ、９１Ｂ、９１Ｃは、本明細書に記載したサーバ・コンピュータ・システム９０の様々な機能を実行する際に、互いに通信できる。この例では、ネットワーク・ストレージ・ライブラリ５０も、ＬＡＮに接続されている。サーバ・コンピュータ・システム９０のストレージ・デバイス１２５のうちの１つ又は複数は、ネットワーク・ストレージ・ライブラリ５０に含まれる。例えば、サーバ・コンピュータ９１Ｃ上で実行されるイメージ管理サーバ・ソフトウェア２０７は、ネットワーク・ストレージ・ライブラリ５０内の１つ又は複数のストレージ・デバイス１２５に、ユーザのコンピュータ・システム８０から受信されたバックアップ・イメージを格納する。
【００４０】
様々な実施形態において、サーバ・コンピュータ・システム９０は、任意の数のコンピュータを含んでよく、サーバ・コンピュータ・システム９０の様々なソフトウェア構成要素は、様々な任意の方法で、コンピュータにわたって分散されてもよい。例えば、一部の実施形態では、仮想化サービス・ソフトウェア２０９は、サーバ・コンピュータ・システム９０における複数のコンピュータにわたって分散される。別の例として、単一のコンピュータは、仮想化サービス・ソフトウェア２０９及びイメージ管理サーバ・ソフトウェア２０７の両方を実行してもよい。
【００４１】
次に図５を参照すると、一実施形態によるクライアント・アクセス・コンピュータ・システム８２の一例が示されている。上述したように、クライアント・アクセス・コンピュータ・システム８２は、任意のタイプのコンピュータ・システムを含む。クライアント・アクセス・コンピュータ・システム８２は、上述したものなど、類似の構成要素を含む。例えば、一部の実施形態では、クライアント・アクセス・コンピュータ・システム８２は、１つ又は複数のプロセッサ１２０、メモリ１２２、ネットワーク接続ハードウェア１２９、１つ又は複数の入力デバイス１２６、１つ又は複数のストレージ・デバイス１２５、１つ又は複数の表示デバイス１２８を含む。プロセッサ１２０は、メモリ１２２に格納されている遠隔のクライアント・アクセス・ソフトウェア２３０を実行することができる。
【００４２】
遠隔のクライアント・アクセス・ソフトウェア２３０によって、クライアント・アクセス・コンピュータ・システム８２は、サーバ・コンピュータ・システム９０と通信することができる。例えば、遠隔のクライアント・アクセス・ソフトウェア２３０は、サーバ・コンピュータ・システム９０上のサービス・ホスティング・ソフトウェア２１５と通信して、ユーザのコンピュータ・システム８０のバックアップ・イメージのうちの１つから仮想コンピュータがインスタンス化されるよう要求してもよい。仮想コンピュータがインスタンス化された後、遠隔のクライアント・アクセス・ソフトウェア２３０は、仮想化サービス・ソフトウェア２０９と通信して、例えば、仮想コンピュータについてのユーザ・インターフェイス情報を受信し、ユーザ・インターフェイス情報をクライアント・アクセス・コンピュータ・システム８２に表示してもよい。また、遠隔のクライアント・アクセス・ソフトウェア２３０は、仮想コンピュータへのユーザ入力を受信し、仮想化サービス・ソフトウェア２０９に渡すことができる。
【００４３】
様々な実施形態において、遠隔のクライアント・アクセス・ソフトウェア２３０は、様々な方法のうちの任意のもので実施され、任意の所望のソフトウェア・アーキテクチャを有している。例えば、一部の実施形態では、遠隔のクライアント・アクセス・ソフトウェア２３０は、単一のソフトウェア・アプリケーションとして実装される。他の実施形態では、遠隔のクライアント・アクセス・ソフトウェア２３０は、互いに一緒に動作する２つ以上のソフトウェア・プログラム又はアプリケーションとして実装されてもよい。
【００４４】
一部の実施形態では、遠隔のクライアント・アクセス・ソフトウェア２３０は、標準Ｗｅｂブラウザ・プログラムであり、クライアント・アクセス・コンピュータ・システム８２には、他のソフトウェアを必要としないこともある。また、他の実施形態では、遠隔のクライアント・アクセス・ソフトウェア２３０は、Ｗｅｂブラウザ・プログラムのプラグイン又は拡張機能を含む。しかし、Ｗｅｂブラウザ・プログラムは、例えば、サーバ・コンピュータ・システム９０によってホストされているＷｅｂページに接続すると、プラグインを自動的にダウンロードし、インストールするよう動作可能であってよい。したがって、一部の実施形態では、実質的に、インターネットに接続されている任意のコンピュータ・システムを、クライアント・アクセス・コンピュータ・システム８２として使用できる。
【００４５】
他の実施形態では、クライアント・アクセス・コンピュータ・システム８２は、単に標準Ｗｅｂブラウザ・プログラムをインストールするだけ以外の追加の構成を必要とすることがある。例えば、一部の実施形態では、クライアント・アクセス・コンピュータ・システム８２のユーザ又は管理者に、例えば、サーバ・コンピュータ・システム９０において使用される仮想化サービス・ソフトウェア２０９のタイプに応じて、又は仮想化サービス・ソフトウェア２０９が、クライアント・アクセス・コンピュータ・システム８２と情報を交換するために使用する特定の技術に応じて、クライアント・アクセス・コンピュータ・システム８２上に、標準Ｗｅｂブラウザ以外のソフトウェア・アプリケーションを手動でインストールすることが求められることもある。
【００４６】
次に図６を参照すると、物理コンピュータ・システムの仮想表現にアクセスするための方法の一実施形態が示されている。矢印１によって示されるように、ユーザのコンピュータ・システム８０の１つ又は複数のバックアップ・イメージは、サーバ・コンピュータ・システム９０に送信され、そこに格納される。一部の実施形態では、ユーザは、手動で、又は対話形式で、サーバ・コンピュータ・システム９０に接続し、１つ又は複数のバックアップ・イメージがサーバ・コンピュータ・システム９０に格納されるよう要求する。他の実施形態では、１つ又は複数のバックアップ・イメージは、サーバ・コンピュータ・システム９０に自動的に送信され、そこに格納される。例えば、ユーザは、ユーザのコンピュータ・システム８０にインストールされているイメージ管理クライアント・ソフトウェア２０５を、所望のスケジュール（例えば、毎時、毎日、毎週、他の指定時刻など）に従って、ユーザのコンピュータ・システム８０のバックアップ・イメージを自動的に作成するよう構成してよい。新しいバックアップ・イメージが作成されるたびに、イメージ管理クライアント・ソフトウェア２０５は、サーバ・コンピュータ・システム９０上のイメージ管理サーバ・ソフトウェア２０７と自動的に通信して、サーバ・コンピュータ・システム９０に格納するために、新しいバックアップ・イメージを送信してよい。
【００４７】
一部の実施形態では、１つ又は複数のバックアップ・イメージを、ユーザを識別する情報と関連付けて、サーバ・コンピュータ・システム９０に格納する。例えば、ユーザは、ユーザ名やパスワードなど、識別情報と認証情報を特定することによって、サーバ・コンピュータ・システム９０のアカウントを作成する。各バックアップ・イメージがユーザのコンピュータ・システム８０からサーバ・コンピュータ・システム９０に送信されると、ユーザの識別情報と認証情報も送信される。サーバ・コンピュータ・システム９０は、この情報を使用して、ユーザのアカウントへのアクセスを許可し、受信されたバックアップ・イメージを、ユーザのアカウントと関連付けて格納する。したがって、サーバ・コンピュータ・システム９０は、例えば異なるユーザ・アカウントなど、複数の異なるユーザ・コンピュータ・システムのバックアップ・イメージを格納するよう構成され、この場合、様々なユーザについてのそれぞれの識別情報と認証情報を使用して、ユーザ・アカウントへのアクセスを制御する。
【００４８】
図２との関連で上述したように、ユーザのコンピュータ・システム８０は、ディスク・ドライブ、テープ・ドライブ、光ストレージ・デバイス、フラッシュ・メモリ・デバイスなど、１つ又は複数のストレージ・デバイス１２５を含む、又はそれに結合されている。ユーザのコンピュータ・システム８０の各バックアップ・イメージは、１つ又は複数のストレージ・デバイス１２５に実装されている１つ又は複数のファイル・システムについてのファイル・システム情報を含む。例えば、各バックアップ・イメージは、ストレージ・デバイス１２５のうちの１つ又は複数に格納されているファイルの少なくとも１つのサブセットを含む。一部の実施形態では、バックアップ・イメージは、ストレージ・デバイス１２５のうちの１つ又は複数に格納されているファイルのすべての全バックアップを含む。一部の実施形態では、バックアップ・イメージは、すべてのストレージ・デバイス１２５に格納されているすべてのファイルの全バックアップを含む。ユーザは、イメージ管理クライアント・ソフトウェア２０５を、各ストレージ・デバイス１２５の全部又は一部のバックアップを実行するように構成することができる。
【００４９】
それぞれのバックアップ・イメージに含まれるファイル・システム情報は、仮想コンピュータがサーバ・コンピュータ・システム９０においてインスタンス化される時、１つ又は複数のストレージ・デバイス１２５に実装されているファイル・システムのうちの１つ又は複数を、サーバ・コンピュータ・システム９０上の仮想コンピュータで再現できるようにする。それぞれのファイル・システムは、例えば、バックアップ・イメージがそれぞれのファイル・システムのバックアップを全部含んでいるか、一部含んでいるかに応じて、仮想コンピュータで完全に又は一部分再現される。
【００５０】
各バックアップ・イメージは、ユーザのコンピュータ・システム８０の仮想表現をインスタンス化できるようにする情報を含む。特に、各バックアップ・イメージは、ユーザのコンピュータ・システム８０についてのオペレーティング・システム情報を含んでよく、この場合、例えば、オペレーティング・システム情報は、オペレーティング・システムを実装する、又はオペレーティング・システムによって管理される１つ又は複数のファイルの形で格納される。オペレーティング・システム情報によって、オペレーティング・システムを、サーバ・コンピュータ・システム９０上の仮想コンピュータにインスタンス化することができる。
【００５１】
一部の実施形態では、各バックアップ・イメージは、例えばユーザのコンピュータ・システム８０にインストールされている１つ又は複数のソフトウェア・アプリケーションを表すファイル又は他の情報など、ソフトウェア・アプリケーション情報を含む。ソフトウェア・アプリケーション情報によって、１つ又は複数のソフトウェア・アプリケーションを、サーバ・コンピュータ・システム９０上の仮想コンピュータにおいて実行することができる。
【００５２】
一部の実施形態では、各バックアップ・イメージは、ユーザのコンピュータ・システム８０におけるデバイスを表す、又はユーザのコンピュータ・システム８０におけるデバイスの構成を示すデバイス・ドライバ・ファイルや他の情報など、デバイス情報も含む。デバイス情報によって、ユーザのコンピュータ・システム８０におけるデバイスのうちの１つ又は複数を、サーバ・コンピュータ・システム９０上の仮想コンピュータによってシミュレートすることができる。
【００５３】
ユーザのコンピュータ・システム８０の各バックアップ・イメージは、ユーザのコンピュータ・システム８０を、例えばそれぞれのバックアップ・イメージが作成された時など、対応する時点に存在していた通りに表現する。例えば、各バックアップ・イメージは、それぞれの状態情報を特定することができ、状態情報は、バックアップ・イメージが作成された時点のユーザのコンピュータ・システム８０の状態を表現する。上述したように、状態情報は、ユーザのコンピュータ・システム８０のファイル・システムの状態を表現するファイル・システム情報、ユーザのコンピュータ・システム８０のオペレーティング・システムの状態を表すオペレーティング・システム情報、ユーザのコンピュータ・システム８０上の１つ又は複数のソフトウェア・アプリケーションの状態を表すソフトウェア・アプリケーション情報などの情報を含む。
【００５４】
一部の実施形態では、ユーザのコンピュータ・システム８０のバックアップ・イメージのうちの１つ又は複数を、別のバックアップ・イメージに基づく増分バックアップ（incremental backup）として作成することができる。例えば、ユーザのコンピュータ・システム８０上のイメージ管理クライアント・ソフトウェア２０５は、まず、任意の他のバックアップ・イメージに依存しない独立したバックアップ・イメージである基本バックアップ・イメージ（base backup image）を作成する。例えば、基本バックアップ・イメージは、ストレージ・デバイス１２５に格納されているデータの全バックアップを含む。後で、イメージ管理クライアント・ソフトウェア２０５は、基本バックアップ・イメージに依存する増分バックアップ・イメージを作成する。増分バックアップ・イメージは、ストレージ・デバイス１２５上のデータの全バックアップを含むのではなく、代わりに、基本バックアップ・イメージの作成以降に行われたデータに対する変更を加える。例えば、増分バックアップ・イメージは、追加された新しいデータ、又は基本バックアップ・イメージの作成以降に変更されたデータを含むが、基本バックアップ・イメージの作成以降に変更されていないデータは含まなくてもよい。後で、イメージ管理クライアント・ソフトウェア２０５は、第１の増分バックアップ・イメージに依存する別の増分バックアップ・イメージを作成してよい。例えば、第２の増分バックアップ・イメージは、第１の増分バックアップ・イメージの作成以降に行われたデータへの変更を加える。
【００５５】
したがって、一部の実施形態では、ユーザのコンピュータ・システム８０の基本バックアップ・イメージ３００を含むチェーン、及びユーザのコンピュータ・システム８０の１つ又は複数の増分バックアップ・イメージ３０２が作成され、サーバ・コンピュータ・システム９０に格納される。例えば、図７は、ユーザのコンピュータ・システム８０の基本バックアップ・イメージ３００がサーバ・コンピュータ・システム９０のストレージ・デバイス１２５に送信され、そこに格納されている一例を示している。基本バックアップ・イメージ３００は、ユーザのコンピュータ・システム８０の状態を、時刻Ｔ＝Ｔ１に存在していた通りに表す。ユーザのコンピュータ・システム８０の４つの増分バックアップ・イメージ３０２Ａ〜３０２Ｄも、サーバ・コンピュータ・システム９０のストレージ・デバイス１２５に送信され、そこに格納される。増分バックアップ・イメージ３０２Ａは、基本バックアップ・イメージ３００に依存し、ユーザのコンピュータ・システム８０の状態を、時刻Ｔ＝Ｔ２（Ｔ２がＴ１の後の場合）に存在していた通りに表す。同様に、増分バックアップ・イメージ３０２Ｂは、増分バックアップ・イメージ３０２Ａに依存し、ユーザのコンピュータ・システム８０の状態を、時刻Ｔ＝Ｔ３（Ｔ３がＴ２の後の場合）に存在していた通りに表す。増分バックアップ・イメージ３０２Ｃと３０２Ｄは、チェーンにおけるその後の増分バックアップを表す。サーバ・コンピュータ・システム９０は、ストレージ・デバイス１２５に格納されているバックアップ・イメージ間のそれぞれの依存性を示す情報、及びバックアップ・イメージが作成されたそれぞれの時刻を示す情報を格納する。
【００５６】
別の実施形態では、ユーザのコンピュータ・システム８０の２つ以上の独立した、又は基本のバックアップ３００が作成され、送信されて、サーバ・コンピュータ・システム９０に格納される。例えば、図８は、５つの独立したバックアップ・イメージ３００Ａ〜３００Ｅが、サーバ・コンピュータ・システム９０のストレージ・デバイス１２５に格納されている一例を示す。独立したバックアップ・イメージ３００のそれぞれは、互いに独立している。
【００５７】
他の実施形態では、それぞれの基本バックアップ・イメージ３００が、それぞれの基本バックアップ・イメージ３００に依存する１つ又は複数の増分バックアップ・イメージ３０２を有するように、複数の基本バックアップ・イメージ３００と複数の増分バックアップ・イメージ３０２が作成され、サーバ・コンピュータ・システム９０に格納される。
【００５８】
ユーザのコンピュータ・システム８０の１つ又は複数のバックアップ・イメージがサーバ・コンピュータ・システム９０に格納された後、クライアント・アクセス・コンピュータ・システム８２のユーザは、ユーザのコンピュータ・システム８０の仮想表現にアクセスすることを望むことがあり、例えば、この場合、クライアント・アクセス・コンピュータ・システム８２は、ユーザのコンピュータ・システム８０及びサーバ・コンピュータ・システム９０の両方から離れて配置されている。例えば、図６の矢印２で示されるように、ユーザは、クライアント・アクセス・コンピュータ・システム８２上のＷｅｂブラウザ・ソフトウェア又は他の遠隔のクライアント・アクセス・ソフトウェア２３０と対話して、サーバ・コンピュータ・システム９０上のサービス・ホスティング・ソフトウェア２１５と通信する。例えば、ユーザは、サーバ・コンピュータ・システム９０によってホストされているＷｅｂページのＵＲＬ（ユニフォーム・リソース・ロケータ）など、サーバ・コンピュータ・システム９０のアドレスを入力する。
【００５９】
一部の実施形態では、サービス・ホスティング・ソフトウェア２１５は、ユーザに、ユーザ名やパスワードなどの識別情報と認証情報を入力するよう促す。ユーザを認証した後、サービス・ホスティング・ソフトウェア２１５は、図６の矢印３によって示されるように、遠隔のクライアント・アクセス・ソフトウェア２３０が、サーバ・コンピュータ・システム９０に格納されている、ユーザに関連付けられている１つ又は複数のバックアップ・イメージを示すユーザ・インターフェイスを表示できるようにするための情報を遠隔のクライアント・アクセス・ソフトウェア２３０に送信する。一部の実施形態では、ユーザ・インターフェイスは、Ｗｅｂページとして表示される。図９は、クライアント・アクセス・コンピュータ・システム８２に表示されるＷｅｂページ又は他のタイプのユーザ・インターフェイスの簡単な例を示す。この例では、ユーザ・インターフェイスは、ユーザが、サーバ・コンピュータ・システム９０に格納されているユーザのコンピュータ・システムの最新のバックアップ・イメージから仮想コンピュータをインスタンス化するよう要求するためにクリックできるボタン７００を含む。また、ユーザ・インターフェイスは、バックアップ・イメージのそれぞれ、及びバックアップ・イメージが作成されたそれぞれの時間を列挙する。列挙されたバックアップ・イメージのそれぞれの隣に、それぞれのチェックボックス７０２が表示される。ユーザは、仮想コンピュータをそこからインスタンス化したい所望のバックアップ・イメージの隣のチェックボックスにチェックを入れ、ＯＫボタン７０４をクリックすることができる。他の実施形態では、クライアント・アクセス・コンピュータ・システム８２に表示されているユーザ・インターフェイスは、様々な他の外見のうちの任意のものを有してもよく、ユーザが、様々な方法のうちの任意のもので、所望のバックアップ・イメージを選択することができるようにする。
【００６０】
したがって、システムによって、ユーザのコンピュータ・システムの異なる仮想表現をインスタンス化することができ、それぞれの仮想表現は、例えば、それぞれのバックアップ・イメージが作成された時点など、それぞれの時点に存在していた通りのユーザのコンピュータ・システムの状態に対応する。
【００６１】
再度図６を参照すると、遠隔のクライアント・アクセス・ソフトウェア２３０は、図６の矢印４によって示されているように、どのバックアップ・イメージをユーザが選択したかを示す情報を、サーバ・コンピュータ・システム９０上のサービス・ホスティング・ソフトウェア２１５に送信することができる。これに応答して、サービス・ホスティング・ソフトウェア２１５は、仮想化サービス２０９に、選択されたバックアップ・イメージから仮想コンピュータをインスタンス化するよう要求してもよい。
【００６２】
それに応答して、仮想化サービス２０９は、図６に示されているように、選択されたバックアップ・イメージを、ストレージから取り出し、そのバックアップ・イメージから仮想コンピュータ４００をインスタンス化する。仮想コンピュータ４００は、選択されたバックアップ・イメージが作成された時に存在していた通りのユーザのコンピュータ・システム８０の仮想表現であり、例えば、この場合、仮想表現は、サーバ・コンピュータ・システム９０上で実行されるソフトウェア（例えば仮想コンピュータ実行ソフトウェア２１１など）によって実現される。仮想コンピュータ４００は、最初にインスタンス化された時、選択されたバックアップ・イメージが作成された時のユーザのコンピュータ・システム８０の状態に対応する状態にある。
【００６３】
例えば、選択されたバックアップ・イメージは、例えば、オペレーティング・システムが仮想コンピュータ実行ソフトウェア２１１の管理下で実行される場合、仮想コンピュータ４００のオペレーティング・システムをインスタンス化できるようにするオペレーティング・システム情報を含む。オペレーティング・システムは、選択されたバックアップ・イメージが作成された時のユーザのコンピュータ・システム８０上のオペレーティング・システムの状態に対応する初期状態を有する。
【００６４】
同様に、選択されたバックアップ・イメージは、例えば、ファイル・システムが仮想コンピュータ実行ソフトウェア２１１によって管理される場合、ユーザのコンピュータ・システム８０のファイル・システムを仮想コンピュータ４００において再現できるようにするファイル・システム情報を含む。ファイル・システムは、選択されたバックアップ・イメージが作成された時のユーザのコンピュータ・システム８０上のファイル・システムの状態に対応する初期状態を有している。
【００６５】
同様に、選択されたバックアップ・イメージは、例えば、ソフトウェア・アプリケーションの実行が仮想コンピュータ実行ソフトウェア２１１によって管理される場合、ユーザのコンピュータ・システム８０上にインストールされているソフトウェア・アプリケーションを仮想コンピュータ４００において複製できるようにするソフトウェア・アプリケーション情報を含む。ソフトウェア・アプリケーションは、選択されたバックアップ・イメージが作成された時のユーザのコンピュータ・システム８０上のソフトウェア・アプリケーションの状態に対応する初期状態を有している。
【００６６】
様々な実施形態において、仮想化サービス・ソフトウェア２０９は、様々な種類の任意の仮想化環境を実装し、仮想コンピュータ４００は、様々なタイプの任意の仮想コンピュータとして実装される。一部の実施形態では、選択されたバックアップ・イメージは、１つ又は複数のファイルとして表され、仮想化サービス・ソフトウェア２０９は、選択されたバックアップ・イメージの１つ又は複数のファイルを、第２の１つ又は複数のファイルに自動的に変換するよう動作可能であり、例えば、この場合、第２の１つ又は複数のファイルは、仮想コンピュータ・フォーマットに従ってフォーマットされる。したがって、仮想コンピュータ４００は、第２の１つ又は複数のファイルからインスタンス化される。一部の実施形態では、選択されたバックアップ・イメージの１つ又は複数のファイルを、仮想コンピュータ４００のインスタンス化の要求が受信された時の仮想コンピュータ・フォーマットの第２の１つ又は複数のファイルに動的に変換できる。一部の実施形態では、選択されたバックアップ・イメージの１つ又は複数のファイルを、仮想コンピュータ４００のインスタンス化の要求が受信される前の仮想コンピュータ・フォーマットの第２の１つ又は複数のファイルに事前に変換できる。したがって、一部の実施形態では、仮想コンピュータ・フォーマットの第２の１つ又は複数のファイルは、サーバ・コンピュータ・システム９０に事前に格納される。
【００６７】
一部の実施形態では、サーバ・コンピュータ・システム９０は、異なる種類の仮想コンピュータをインスタンス化するよう動作可能であり、例えば、異なる種類の仮想コンピューティング・フレームワーク又は環境を実装してよい。一部の実施形態では、サーバ・コンピュータ・システム９０によって、ユーザは、インスタンス化したい、あるタイプの仮想コンピュータを選択することができる。したがって、仮想コンピュータ４００は、ユーザによって選択されたタイプの仮想コンピュータとしてインスタンス化される。
【００６８】
再度図６を参照すると、仮想コンピュータ４００がサーバ・コンピュータ・システム９０においてインスタンス化された後、仮想化サービス２０９のＵＩ／通信ソフトウェア２１３は、両方向矢印５によって示されるように、クライアント・アクセス・コンピュータ・システム８２上の遠隔のクライアント・アクセス・ソフトウェア２３０と通信する。例えば、ＵＩ／通信ソフトウェア２１３は、仮想コンピュータ実行ソフトウェア２１１から仮想コンピュータ４００の出力情報を受信し、その出力情報を、遠隔のクライアント・アクセス・ソフトウェア２３０によって使用可能な形に変換して、クライアント・アクセス・コンピュータ・システム８２上に、仮想コンピュータ４００のグラフィカル・ユーザ・インターフェイスを表示してもよい。一部の実施形態では、クライアント・アクセス・コンピュータ・システム８２上に表示されたグラフィカル・ユーザ・インターフェイスは、ユーザの実際のコンピュータ・システム８０と対話する時にユーザが見るグラフィカル・ユーザ・インターフェイスに非常に似ており、又はほぼ同じに見えることがある。例えば、ユーザに、ユーザの実際のコンピュータ・システム８０上と同じアイコンが表示されてよく、アイコンは、同じレイアウトに配列される。
【００６９】
また、ＵＩ／通信ソフトウェア２１３は、遠隔のクライアント・アクセス・ソフトウェア２３０を介して、クライアント・アクセス・コンピュータ・システム８２のユーザから仮想コンピュータ４００のユーザ入力を受信し、そのユーザ入力を仮想コンピュータ実行ソフトウェア２１１に渡す。次いで、仮想コンピュータ実行ソフトウェア２１１の管理下で実行されている仮想コンピュータ４００が、ユーザ入力を処理する。
【００７０】
ユーザがクライアント・アクセス・コンピュータ・システム８２を介して仮想コンピュータ４００と対話するにつれて、仮想コンピュータ４００の状態が変更される。例えば、ユーザがファイルを追加、削除、又は変更した（又は仮想コンピュータ４００上のソフトウェア・アプリケーションを実行し、その結果、ファイルが追加、削除、又は変更される）場合、仮想コンピュータ４００上のファイル・システムの状態が変更される。別の例として、ユーザが仮想コンピュータ４００上のオペレーティング・システム又はソフトウェア・アプリケーションの構成オプションを変更した場合、オペレーティング・システム又はソフトウェア・アプリケーションの状態が変更される。
【００７１】
クライアント・アクセス・コンピュータ・システム８２上のグラフィカル・ユーザ・インターフェイスによって、ユーザは、仮想コンピュータ４００との対話をいつ終了したかを示すことができる。これに応答して、遠隔のクライアント・アクセス・ソフトウェア２３０は、仮想コンピュータ４００及びサーバ・コンピュータ・システム９０から接続解除される。一部の実施形態では、サーバ・コンピュータ・システム９０は、ユーザのクレジット・カードに課金するか、そうでない場合、サーバ・コンピュータ・システム９０上の仮想化サービスの使用料をユーザに請求する。
【００７２】
図６の矢印６によって示されるように、サーバ・コンピュータ・システム９０は、仮想コンピュータ４００の新しいバックアップ・イメージを作成し、新しいバックアップ・イメージを、サーバ・コンピュータ・システム９０のストレージ・デバイス１２５上に格納する。新しいバックアップ・イメージは、仮想コンピュータ４００の変更された状態である。
【００７３】
様々な実施形態において、新しいバックアップ・イメージを、様々な技術のうちの任意のものを使用して、仮想コンピュータ４００から作成することができる。例えば、一部の実施形態では、仮想コンピュータ４００は、サーバ・コンピュータ・システム９０上のダイナミック・メモリに格納されている情報として表されてよく、新しいバックアップ・イメージは、ダイナミック・メモリに格納されている情報から作成される。他の実施形態では、ダイナミック・メモリに格納されている情報は、まず、仮想コンピュータ４００を表す１つ又は複数のファイルに変換され、次いで、その１つ又は複数のファイルは、第２の１つ又は複数のファイルに自動的に変換され、その際、例えば、第２の１つ又は複数のファイルは、物理デバイスのバックアップ・フォーマットに従ってフォーマットされる。
【００７４】
上述したように、一部の実施形態では、バックアップ・イメージは、基本バックアップ・イメージ３００に基づく増分バックアップ・イメージ３０２のチェーンとして、サーバ・コンピュータ・システム９０に格納される。一部の実施形態では、仮想コンピュータ４００から作成された新しいバックアップ・イメージも、基本バックアップ・イメージ３００に基づく増分バックアップ・イメージ３０２として格納される。例えば、図７の例において、仮想コンピュータ４００は、増分バックアップ・イメージ３０２Ｄからインスタンス化される。新しいバックアップ・イメージは、仮想コンピュータ４００から作成されると、図１０に示されるように、増分バックアップ・イメージ３０２Ｄに依存する増分バックアップ・イメージ３０２Ｅとして作成される。
【００７５】
他の実施形態では、仮想コンピュータ４００から作成された新しいバックアップ・イメージは、独立したバックアップ・イメージとして、サーバ・コンピュータ・システム９０に格納される。例えば、図１１は、新しい独立したバックアップ・イメージ３００Ｆが仮想コンピュータ４００から作成され、サーバ・コンピュータ・システム９０に格納されている図８の例を示す。
【００７６】
図６の矢印７によって示されるように、仮想コンピュータ４００で作成された新しいバックアップ・イメージは、ユーザのコンピュータ・システム８０に転送され、加えられる。例えば、サーバ・コンピュータ・システム９０上のイメージ管理サーバ・ソフトウェア２０７は、ユーザのコンピュータ・システム８０上のイメージ管理クライアント・ソフトウェア２０５と通信して、新しいバックアップ・イメージをユーザのコンピュータ・システム８０に送信する。新しいバックアップ・イメージの受信に応答して、イメージ管理クライアント・ソフトウェア２０５は、新しいバックアップ・イメージを、ユーザのコンピュータ・システム８０に加えることができる。新しいバックアップ・イメージをユーザのコンピュータ・システム８０に加えることは、例えば、新しいバックアップ・イメージによって定められたように、ユーザのコンピュータ・システム８０のストレージ・デバイス１２５のうちの１つ又は複数に格納されている情報を変更することによって、新しいバックアップ・イメージに従ってユーザのコンピュータ・システム８０を更新することを含む。
【００７７】
新しいバックアップ・イメージをユーザのコンピュータ・システム８０に加えることは、ユーザのコンピュータ・システム８０を、新しいバックアップ・イメージが作成された時の仮想コンピュータ４００の状態に対応する状態、すなわち仮想コンピュータ４００の変更された状態にすることもある。例えば、ユーザのコンピュータ・システム８０上のストレージ・デバイス１２５は、ファイル・システムを実装してよく、そのファイル・システムは、仮想コンピュータ４００上で再現され、仮想コンピュータ４００の変更された状態は、ファイル・システムの変更された状態を含む。したがって、新しいバックアップ・イメージをユーザのコンピュータ・システム８０に加えることは、ストレージ・デバイス１２５上のファイル・システムを、仮想コンピュータ４００上のファイル・システムの変更された状態に自動的に変更することである。
【００７８】
例えば、新しいファイルが仮想コンピュータ４００上のファイル・システムに追加された場合、新しいファイルは、新しいバックアップ・イメージがユーザのコンピュータ・システム８０に追加されると、ユーザのコンピュータ・システム８０のストレージ・デバイス１２５上のファイル・システムに自動的に追加される。同様に、ファイルが仮想コンピュータ４００上のファイル・システムにおいて変更された場合、ユーザのコンピュータ・システム８０のストレージ・デバイス１２５の対応するファイルは、新しいバックアップ・イメージがユーザのコンピュータ・システム８０に適用されると、同じようにして自動的に変更される。同様に、ファイルが仮想コンピュータ４００上のファイル・システムにおいて削除された場合、ユーザのコンピュータ・システム８０のストレージ・デバイス１２５の対応するファイルは、新しいバックアップ・イメージがユーザのコンピュータ・システム８０に適用されると、自動的に削除される。
【００７９】
別の例として、ソフトウェア・アプリケーションは、ユーザのコンピュータ・システム８０にインストールされてよく、ソフトウェア・アプリケーションは、仮想コンピュータ４００で再現され、仮想コンピュータ４００の変更された状態は、ソフトウェア・アプリケーションの変更された状態を含む。したがって、新しいバックアップ・イメージをユーザのコンピュータ・システム８０に加えることによって、ユーザのコンピュータ・システム８０上のソフトウェア・アプリケーションを、仮想コンピュータ４００上のソフトウェア・アプリケーションの変更された状態に自動的に変更することができる。
【００８０】
一部の実施形態では、仮想コンピュータ４００から作成されたバックアップ・イメージは、ユーザの要求に応答して、サーバ・コンピュータ・システム９０からユーザのコンピュータ・システム８０に転送され、加えられる。例えば、クライアント・アクセス・コンピュータ・システム８２上の仮想コンピュータ４００と対話した後、ユーザは、続いてユーザのコンピュータ・システム８０に戻り、サーバ・コンピュータ・システム９０にログ・オンし、新しいバックアップ・イメージがユーザのコンピュータ・システム８０に転送され、加えられるよう要求することができる。
【００８１】
他の実施形態では、ユーザは、サーバ・コンピュータ・システム９０に手動で接続し、仮想コンピュータ４００から作成されたバックアップ・イメージがユーザのコンピュータ・システム８０に転送され、加えられるよう要求する必要が必ずしもない。例えば、一部の実施形態では、サーバ・コンピュータ・システム９０は、ユーザのコンピュータ・システム８０と自動的に通信して、サーバ・コンピュータ・システム９０において新しいバックアップ・イメージが作成されたことをユーザのコンピュータ・システム８０に知らせることができ、新しいバックアップ・イメージは、ユーザのコンピュータ・システム８０に、自動的に転送され、加えられる。他の実施形態では、ユーザのコンピュータ・システム８０は、新しいバックアップ・イメージがサーバ・コンピュータ・システム９０において作成されたということを自動的に検出するか、通知されてよいが、ユーザのコンピュータ・システムは、それを自動的に行う前に、まず、新しいバックアップ・イメージをユーザのコンピュータ・システム８０に適用したいかどうかをユーザに尋ねてもよい。
【００８２】
この方法は、仮想コンピュータ４００から作成された新しいバックアップ・イメージをユーザのコンピュータ・システム８０に転送し、加えることに関して上述してきたが、他の実施形態では、新しいバックアップ・イメージを、ユーザのコンピュータ・システム８０以外の１つ又は複数の物理コンピュータ・システムに転送し、加える。したがって、例えば、ユーザの元のコンピュータ・システム８０が無くなったり壊れたりした場合、ユーザは、新しいコンピュータ・システムを取得してもよく、新しいコンピュータ・システムは、バックアップ・イメージを、サーバ・コンピュータ・システム９０から新しいコンピュータ・システムに転送し、加えることによって、仮想コンピュータ４００から作成されたこのバックアップ・イメージによって示される状態に自動的に構成される。
【００８３】
様々な実施形態が、コンピュータでアクセス可能な記憶媒体において、前記の説明に従って実施される命令及び／又はデータを受信し、送信し、又は格納することをさらに含むことに留意されたい。一般的に言えば、コンピュータでアクセス可能な記憶媒体は、命令及び／又はデータをコンピュータに提供するために使用する間にコンピュータによってアクセス可能な任意の記憶媒体を含む。例えば、コンピュータでアクセス可能な記憶媒体は、ディスク（固定式又は取外式）テープ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷなど、磁気又は光媒体などの記憶媒体を含む。記憶媒体は、ＲＡＭ（シンクロナス・ダイナミックＲＡＭ（ＳＤＲＡＭ）、ラムバスＤＲＡＭ（ＲＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）など）、ＲＯＭ、フラッシュ・メモリ、ユニバーサル・シリアル・バス（ＵＳＢ）インターフェイスなどの周辺インターフェイスを介してアクセス可能な不揮発性メモリ（フラッシュ・メモリなど）など、揮発性又は不揮発性のメモリ媒体をさらに含む。一部の実施形態では、コンピュータは、ネットワーク及び／又は無線リンクなどの通信手段を介して記憶媒体にアクセスできる。
【００８４】
上記の実施形態は、かなり詳しく記載されているが、上記の開示を完全に理解すると、当業者には多数の変形形態及び変更形態が明らかになる。頭記の特許請求の範囲は、こうしたすべての変形形態及び変更形態を包含するものと解釈されるものとする。
【図面の簡単な説明】
【００８５】
【図１】ユーザのコンピュータ・システム、サーバ・コンピュータ・システム、及びクライアント・アクセス・コンピュータ・システムを含んでいる、物理コンピュータ・システムの仮想表現にアクセスするためのシステムの一実施形態を示す図である。
【図２】一実施形態によるユーザのコンピュータ・システムの一例を示す図である。
【図３】特定の実施形態によるサーバ・コンピュータ・システムの例を示す図である。
【図４】特定の実施形態によるサーバ・コンピュータ・システムの例を示す図である。
【図５】一実施形態によるクライアント・アクセス・コンピュータ・システムの一例を示す図である。
【図６】物理コンピュータ・システムの仮想表現にアクセスするための方法の一実施形態を示す図である。
【図７】ユーザのコンピュータ・システムの基本バックアップ・イメージ、及びユーザのコンピュータ・システムの複数の増分バックアップ・イメージがサーバ・コンピュータ・システムのストレージ・デバイスに送信され、そこに格納されている一例を示す図である。
【図８】複数の独立したバックアップ・イメージがサーバ・コンピュータ・システムのストレージ・デバイスに送信され、格納されている一例を示す図である。
【図９】ユーザがサーバ・コンピュータ・システム上に格納されているバックアップ・イメージのうちの１つを選択することができるようにするための、クライアント・アクセス・コンピュータ・システム上に表示されたユーザ・インターフェイスの一例を示す図である。
【図１０】新しいバックアップ・イメージが、仮想コンピュータから作成されており、サーバ・コンピュータ・システムに増分バックアップ・イメージとして格納されている、図７の例を示す図である。
【図１１】新しいバックアップ・イメージが、仮想コンピュータから作成されており、サーバ・コンピュータ・システムに独立したバックアップ・イメージとして格納されている、図８の例を示す図である。
【符号の説明】
【００８６】
５０  ネットワーク・ストレージ・ライブラリ
８０  ユーザのコンピュータ・システム
８２  クライアント・アクセス・コンピュータ・システム
８４  ネットワーク
８５  ＬＡＮ
９０  サーバ・コンピュータ・システム
９１  サーバ・コンピュータ
１２０  プロセッサ
１２２  メモリ
１２５  ストレージ・デバイス
１２６  入力デバイス
１２８  出力デバイス
１２９  ネットワーク接続ハードウェア
【図１】
0005350712.tif 000002
【図２】
0005350712.tif 000003
【図３】
0005350712.tif 000004
【図４】
0005350712.tif 000005
【図５】
0005350712.tif 000006
【図６】
0005350712.tif 000007
【図７】
0005350712.tif 000008
【図８】
0005350712.tif 000009
【図９】
0005350712.tif 000010
【図１０】
0005350712.tif 000011
【図１１】
0005350712.tif 000012