(57)【要約】  データを対応するアプリケーションプログラムと共に仮想アプリケーション環境にアーカイブするのに適したコンピュータシステムを提供する。コンピュータシステムは、プロセッサ、メモリ、及び記憶装置を備える。コンピュータシステムには、オペレーティングシステム、アーカイブされるデータ、及び当該データに対応するアプリケーションプログラムも含まれ、当該アプリケーションプログラムは当該データ上で動作することができる。コンピュータシステムには、仮想アプリケーション環境ジェネレータも含まれる。データをアーカイブする命令に応じて、仮想アプリケーション環境ジェネレータは、仮想アプリケーション環境を生成する。仮想アプリケーション環境には、データ、対応するアプリケーションプログラム、及びオペレーティングシステムが含まれる。
2009505278.tif 000002
【特許請求の範囲】
【請求項１】
データを当該データに対応するアプリケーションプログラムと共に仮想アプリケーション環境にアーカイブするためのコンピュータシステムであって、
プロセッサと、
メモリと、
記憶装置とを備え、
前記コンピュータシステムは、オペレーティングシステム、アーカイブされるデータ、及び当該データ上での動作に適応した対応するアプリケーションプログラムを含み、
前記コンピュータシステムは、前記データをアーカイブする命令に応じて、前記データ、前記対応するアプリケーション、及び前記オペレーティングシステムを含む仮想アプリケーション環境を生成する仮想アプリケーション環境ジェネレータを含むこと
を特徴とするコンピュータシステム。
【請求項２】
前記仮想アプリケーション環境は前記コンピュータシステムに対応する仮想マシン上で動作するように生成されることを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記仮想アプリケーション環境は、前記コンピュータシステムに対応する仮想マシン上で起動可能装置として動作するために更に生成されることを特徴とする請求項２に記載のコンピュータシステム。
【請求項４】
前記仮想アプリケーション環境は、当該仮想アプリケーション環境が動作可能な前記仮想マシンを特定する情報を含むことを特徴とする請求項２に記載のコンピュータシステム。
【請求項５】
前記コンピュータシステムは、複数のアプリケーションプログラムを更に含み、
前記仮想アプリケーション環境は、前記コンピュータシステムから前記アプリケーションプログラムの全てを含むように生成されること
を特徴とする請求項１に記載のコンピュータシステム。
【請求項６】
前記コンピュータシステムは、複数のアプリケーションプログラムを更に含み、
前記仮想アプリケーションジェネレータは、前記対応するアプリケーションプログラムのみが前記オペレーティングシステム及びデータと共に含まれるように前記仮想アプリケーション環境を生成すること
を特徴とする請求項１に記載のコンピュータシステム。
【請求項７】
仮想アプリケーション環境ジェネレータは、前記複数のアプリケーションプログラムのうちどれが前記対応するアプリケーションプログラムであるかをアプリケーションマニフェストに従って決定することを特徴とする請求項６に記載のコンピュータシステム。
【請求項８】
前記対応するアプリケーションプログラムは、前記コンピュータシステム上に分散配置された複数のコンポーネントを含み、
前記仮想アプリケーション環境ジェネレータは、前記対応するアプリケーションプログラムのコンポーネントを特定し、当該コンポーネントを前記対応するアプリケーションプログラムとして前記仮想アプリケーション環境に含めること
を特徴とする請求項７に記載のコンピュータシステム。
【請求項９】
コンピュータ実行可能命令を含むコンピュータ可読媒体であって、
コンピュータ上で実行される際に、仮想アプリケーション環境にデータをアーカイブする方法を実行し、
前記方法は、
データをアーカイブする要求を受信するステップと、
前記データ、当該データ上での動作に適応したアプリケーションプログラム、及び当該アプリケーションプログラムの実行を支援するのに適応したオペレーティングシステムを含む仮想アプリケーション環境を生成するステップと、
前記仮想アプリケーション環境を記憶装置に保存するステップと
を有することを特徴とするコンピュータ可読媒体。
【請求項１０】
前記仮想アプリケーション環境は前記コンピュータシステムに対応する仮想マシン上で実行するように生成されることを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１１】
前記仮想アプリケーション環境は、前記コンピュータシステムに対応する仮想マシン上で実行される際に起動可能装置として動作するように更に生成されることを特徴とする請求項１０に記載のコンピュータ可読媒体。
【請求項１２】
前記仮想アプリケーション環境は、当該仮想アプリケーション環境を実行可能な前記仮想マシンを特定するための情報を更に含めるために生成されることを特徴とする請求項１２に記載のコンピュータ可読媒体。
【請求項１３】
前記方法は、前記生成された仮想アプリケーション環境が前記コンピュータシステムに対応する仮想マシン上で実行可能であるか否かを検証するステップを更に有することを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１４】
前記仮想アプリケーション環境は、前記コンピュータシステム上にインストールされた複数のアプリケーションプログラムを含めるために生成され、当該複数のアプリケーションプログラムのうち少なくとも１つは前記データ上での動作に適応していること
を特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１５】
前記方法は、アプリケーションマニフェストに従って前記データ上での動作に適応したアプリケーションプログラムを更に特定するステップと、
前記特定されたアプリケーションプログラムを前記仮想アプリケーション環境に含めるステップと
を含むことを特徴とする請求項９に記載のコンピュータ可読媒体。
【請求項１６】
仮想アプリケーション環境にデータをアーカイブする方法であって、
データをアーカイブする要求を受信するステップと、
前記データ、当該データ上で動作するのに適応したアプリケーションプログラム、及び当該アプリケーションプログラムの実行を支援するのに適応したオペレーティングシステムを含む仮想アプリケーション環境を生成するステップと、
前記仮想アプリケーション環境が、前記オペレーティングシステム及び前記アプリケーションプログラムを動作可能なコンピュータシステムに対応する仮想マシン上での実行に適応しているか否かを検証するステップと、
前記仮想アプリケーション環境が前記仮想マシン上での実行に適応している場合、前記仮想アプリケーション環境を記憶装置に保存するステップと
を備えることを特徴とする方法。
【請求項１７】
前記仮想アプリケーション環境は、前記コンピュータシステムに対応する仮想マシン上で実行される際に起動可能装置として動作するために更に生成されること
を特徴とする請求項１６に記載の方法。
【請求項１８】
前記仮想アプリケーション環境は前記コンピュータシステム上にインストールされた複数のアプリケーションプログラムを含めるために生成され、当該複数のアプリケーションプログラムのうち少なくとも１つは前記データ上での動作に適応していること
を特徴とする請求項１７に記載の方法。
【請求項１９】
アプリケーションマニフェストに従って前記データ上での動作に適応したアプリケーションプログラムを特定するステップと、
前記特定されたアプリケーションプログラムを前記仮想アプリケーション環境に前記データ上での動作に適応した前記アプリケーションプログラムとして含めるステップと
を更に有することを特徴とする請求項１７に記載の方法。
【請求項２０】
アーカイブされる前記データは、少なくとも２つの異なるアプリケーションプログラムに対応する複数のデータファイルを含み、
前記方法は、アーカイブされる前記データのデータファイル毎に、当該データファイル上での動作に適応した対応するアプリケーションプログラムを特定するステップを更に含み、
前記仮想アプリケーション環境を生成するステップは、前記アーカイブされるデータのデータファイル毎に動作に適応した前記特定されたアプリケーションプログラムを組み込むための前記仮想アプリケーション環境を生成するステップを更に含むこと
を特徴とする請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想アプリケーション環境でのデータのアーカイブに関する。
【背景技術】
【０００２】
データ紛失は多くのコンピュータユーザによって不幸な出来事である。データは様々な状況及び事情で紛失する可能性がある。ハードウェア障害、悪意又は事故による削除がデータ紛失の一般的な原因である。このような状況において自身で紛失を補い又は防ぐために、多くのコンピュータユーザは重要なデータ及び／又はプログラムの二重化やバックアップを広く行っている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
残念ながら、データのバックアップコピーが有効に行われ使用可能であるか否かに関係なく、データが紛失するという現状も多くある。特に、時間の経過と共にプログラム、オペレーティングシステム、及び／又はハードウェアは使用できなくなる。こうなると、そのデータの他の実行可能なバックアップコピーが存在する場合でも、コンピュータユーザは重要なデータにアクセスできない。
【０００４】
例えば、データが独自のデータベースによって保存され、その時にアーカイブされることがある。その後、そのデータを必要とするときに、独自のデータベースプログラム（又はそのデータベースプログラムを支援するオペレーティングシステム、又はそのオペレーティングシステムが動作するハードウェア）はもはや使用できない、又は使用していない。従って、たとえそのデータベースが有効なアーカイブとして維持されていたとしても、そのデータベースのコンテンツにアクセスできない。
【０００５】
古いコンピュータシステムやソフトウェアによって作成され及び／又は保存されたデータの復旧を専門とするニッチ産業はもちろんある。これらの技術は広範囲に変化する。一つの技術は、古いコンピュータ、オペレーティングシステム、及びソフトウェアを整備することである。他に多岐に渡る技術には、独自のシステムによって保存されたデータを「解読（ｃｒａｃｋｉｎｇ  ｏｐｅｎ）」すること、高度なソフトウェア技術及び専門知識を利用してそのデータを抽出することが含まれる。全ての場合において、アーカイブされたデータの復旧に膨大な費用がかかるが、そのデータに対応するプログラム、オペレーティングシステム、又はハードウェアは容易には入手することはできない。
【課題を解決するための手段】
【０００６】
本発明の態様によれば、データを対応するアプリケーションプログラムと共に仮想アプリケーション環境にアーカイブするのに適したコンピュータシステムが提供される。コンピュータシステムは、プロセッサ、メモリ、及び記憶装置を備える。コンピュータシステムは、オペレーティングシステム、アーカイブされるデータ、及び当該データに対応するアプリケーションプログラムも有し、当該アプリケーションプログラムは当該データ上で動作することができる。コンピュータシステムは、仮想アプリケーション環境ジェネレータも有する。マイクロソフトコーポレーションの仮想サーバマイグレーションツールは、仮想アプリケーション環境ジェネレータの例である。データをアーカイブする命令に応じて、仮想アプリケーション環境ジェネレータは仮想アプリケーション環境を生成する。仮想アプリケーション環境は、データ、対応するアプリケーションプログラム、及びオペレーティングシステムを有する。
【０００７】
本発明の他の態様によれば、コンピュータ実行可能命令を有するコンピュータ可読媒体が提供される。コンピュータシステム上で実行される際に、コンピュータ実行可能命令はデータを仮想アプリケーション環境にアーカイブする方法を実行する。前記方法は、データをアーカイブする要求を受信するステップを有する。仮想アプリケーション環境がその時に生成される。仮想アプリケーション環境は、データ、当該データ上での動作に適応したアプリケーションプログラム、及び当該アプリケーションプログラムの実行を支援するのに適応したオペレーティングシステムを有する。仮想アプリケーション環境は記憶装置に記憶される。
【０００８】
本発明の更に別の態様によれば、データを仮想アプリケーション環境にアーカイブする方法が提供される。前記方法は、データをアーカイブする要求を受信するステップを有する。仮想アプリケーション環境がその時に生成される。仮想アプリケーション環境は、データ、当該データ上での動作に適応したアプリケーションプログラム、及び当該アプリケーションプログラムの実行を支援するのに適したオペレーティングシステムを有する。仮想アプリケーション環境は、オペレーティングシステム及びアプリケーションプログラムを実行可能なコンピュータシステムに対応する仮想マシン上での実行に適応しているか否かを判断するために検証される。仮想アプリケーション環境が仮想マシン上での実行に適応している場合、当該仮想アプリケーション環境は記憶装置にその時に記憶される。
【発明を実施するための最良の形態】
【０００９】
図１は、本発明の複数の態様を実装するのに適した例示的動作環境を示すブロック図である。例示的環境１００は、説明の目的で論理層において図１に示されたコンピュータシステム１０２を有する。詳細には、例示的コンピュータシステム１０２は、ハードウェアレイヤ１０４、オペレーティングシステムレイヤ１０６、及びアプリケーションレイヤ１０８を有する。
【００１０】
ハードウェアレイヤ１０４には、プロセッサ、メモリ、大容量記憶装置（ハードドライブ、光学ドライブなど）、グラフィックディスプレイサブシステムなどのようなコンポーネントが含まれる。オペレーティングシステムレイヤ１０６には、その名前が示すように、アプリケーションレイヤ１０８を支援するオペレーティングシステムが含まれる。このレイヤには通常、アプリケーションレイヤのアプリケーションプログラムのためのユーザプリファレンス（ｕｓｅｒ  ｐｒｅｆｅｒｅｎｃｅ）及びプログラム設定を有するコンフィギュレーション設定も含まれる。アプリケーションレイヤ１０８には、アプリケーションプログラム１１０及び１１２などのソフトウェアプログラム及び／又はサービスが含まれ、同様にサポーティングファイル、ユーザが作成したデータ（１１４及び１１６）なども含まれる。
【００１１】
図１は、アプリケーション１１０及び１１２をそれぞれ単一のモジュールとして示すが、当業者であれば、大部分のアプリケーションプログラムは通常コードの一体的な塊ではないことが分かるであろう。むしろ、アプリケーションプログラムは通常、コードモジュール、テキストモジュール、データファイル、リソース、コンフィギュレーションファイルなどを含む様々なコンポーネントで構成される。従って、アプリケーションプログラム１１０及び１１２（及び後述する説明の全体を通して他のもの）をそれぞれ単一コンポーネントのエンティティとしてする説明は、説明目的のための論理的構成としてみなされるべきであり、本発明を制限するものとしてみなされるべきではない。
【００１２】
アプリケーションプログラムコンポーネントに加えて、大抵のアプリケーションプログラムの使用の結果として、ユーザはデータファイル１１４及び１１６を通常生成する。実際には、これらのデータファイルがユーザにとって通常最も重要なものである。より詳細には、アプリケーションプログラムは、破損又はコンピュータシステムから削除された場合、通常、ユーザがそのアプリケーションプログラムの購入の際に提供された媒体から復元できる。しかしながら、アプリケーションプログラムによって作成されたデータファイル（データファイル１１４及び１１６など）は、ユーザによる相互作用及び作成の結果物であり、それゆえ、固有であり、事故、悪意、又は不注意による消失に備えて保存されるべきである。
【００１３】
本発明の態様によれば、データファイルを保存して、将来アプリケーションプログラム、オペレーティングシステム、及び／又はハードウェアが取得不能又は使用不能になった場合にそのデータファイルを使用できるように、そのデータファイルが光学ディスク、ハードドライブ、又はオンライン記憶装置のような他のバックアップサービスなどの媒体上に記録できる仮想動作環境１２２にアーカイブされる。仮想動作環境１２２は、必要なオペレーティングシステム及びアプリケーションプログラムを備え、共にアーカイブされたデータファイル上で動作する。
【００１４】
本発明の態様によれば、仮想動作環境１２２が生成され、仮想マシン上で実行することができる。当業者であれば分かるだろうが、仮想マシンはコンピュータハードウェアの抽象概念であり、ソフトウェアで実装され、その後他のコンピュータハードウェア上で実行できる。仮想マシン技術の生成及び使用は、当該技術分野で知られている。例えば、マイクロソフトコーポレーションの仮想サーバマイグレーションツールは仮想マシンを生成する製品の一例である。図１に示すように、仮想マシン１２４は仮想マシンジェネレータ１２６によって生成される。図示はしないが、仮想マシン１２４は、様々なバックアップ又は保存対象に保存することができる。バックアップ又は保存対象には磁気テープ、ハードディスク記憶装置、光学媒体、などが含まれるが、これらに限定されない。
【００１５】
仮想動作環境を生成して仮想マシン１２４のような仮想マシン上で実行することによって、コンピュータハードウェア１０４を整備して旧式のアプリケーションプログラムによって生成されたデータにアクセスすることはもはや必要ない。従って、数年が経過し、ハードウェア、オペレーティングシステム、及びアプリケーションプログラムをもはや購入できなくなった後でも、データファイル１１４及び１１６のようなアーカイブされたデータにアクセス可能である。仮想マシン技術を使用し、仮想動作環境１２２を生成したハードウェアに対応する仮想マシン１２４を実装して、データがいずれのオペレーティングシステムを実行するいずれのコンピュータハードウェア上でも仮想的にアクセス可能になる。
【００１６】
仮想動作環境１２２が後に動作可能となることを確実にするために、一つの実施形態においては、仮想動作環境には仮想マシンプラットフォーム（すなわち、仮想動作環境を生成した対応するコンピュータハードウェア）を特定する情報が含まれる。
【００１７】
仮想動作環境１２２は、データファイル、アプリケーションプログラム、及びオペレーティングシステムを仮想動作環境１２２に変換する仮想動作環境ジェネレータ１１８を使用して生成される。具体的には、対象データファイルに対応するアプリケーションプログラムが動作可能となるように、仮想動作環境ジェネレータ１１８はどのコンポーネント（特に、特定のアプリケーションプログラムに関して）を仮想動作環境１２２に含めることを必要としているかを決定する。
【００１８】
一つの実施形態によれば、仮想動作環境ジェネレータ１１８は、コンピュータシステム１０２上の全てのアプリケーションプログラム及びオペレーティングシステムを仮想アプリケーション環境１２２へ含め、これによって、対象データファイルに対応するアプリケーションプログラムの全てのコンポーネントが含まれることを確実にする。他の方法として、仮想動作環境ジェネレータ１１８は、仮想アプリケーション環境１２２に含まれるべきアプリケーションプログラムのコンポーネントを特定するアプリケーションマニフェスト１２０を使用する。もちろん、他の情報も、インストレーションマニフェスト、オペレーティングシステムレジストリ情報などのアプリケーションプログラムのコンポーネントを決定するために使用されるかもしれない。
【００１９】
本発明の少なくとも一つの実施形態では、仮想アプリケーション環境１２２が起動可能な装置として動作するように生成される。つまり、仮想アプリケーション環境１２２は、実際のコンピュータハードウェアの、又は仮想マシンの起動装置として機能することができる。
【００２０】
図２は、データを仮想動作環境１２２へアーカイブするのに適した例示的コンピュータシステム２００を示すブロック図である。詳細には、コンピュータシステム２００は、コンピュータハードウェア１０４、オペレーティングシステム１０６、一又は複数のアプリケーションプログラム１１０及び１１２、並びに対応するデータファイル１１４及び１１６を備える。図２に示すように、コンピュータハードウェアは、プロセッサ２０２、メモリ２０４、及び記憶装置２０６を有する。当然のことながら、当業者であれば分かるように、これらのハードウェアコンポーネントはコンピュータハードウェアを構成する多くのコンポーネントの説明としてのものであり、本発明における制限としてみなされるべきではない。
【００２１】
例示的コンピュータシステム２００は、仮想アプリケーション環境ジェネレータ１１８を同様に有する。上に示したように、仮想アプリケーション環境ジェネレータ１１８は、データファイル１１４などのデータファイルをコンピュータハードウェア１０４上の対応するアプリケーションプログラム及びオペレーティングシステムと結合し、仮想アプリケーション環境１２２（図１）へ組み込む。しかしながら、仮想アプリケーション環境ジェネレータ１１８は例示的コンピュータシステム２００上に存在するように示されているが、他の実施形態では、仮想アプリケーション環境ジェネレータは外部コンピュータシステム上にあり、例示的コンピュータシステム２００上で遠隔的に動作するように構成されると理解されるべきである。
【００２２】
図３は、本発明の態様による仮想アプリケーション環境１２２においてデータをアーカイブするための例示的ルーチン３００を示すフロー図である。まず、ブロック３０２では、データファイルをアーカイブする要求が受信される。ブロック３０４では、データファイル、コンポーネント及び関連ファイルに関連するアプリケーションプログラム（又はプログラム群）が特定される。前述したように、アプリケーションマニフェスト１２０を使用し、レジストリエントリーのようなコンピュータシステム設定を使用し、インストレーションマニフェストを使用等することによってアプリケーションプログラムのコンポーネントが特定されるかもしれない。
【００２３】
他の実施形態では、ボリュームをアーカイブするリクエストが受信されるかもしれない。当業者であれば分かるように、ボリュームにはいくつものデータファイルが含まれ、そのうちのいくつかは異なるアプリケーションプログラムによって生成されるかもしれない。従って、前述のロジックと同様に、例示的なルーチンによって、アーカイブされる大きな塊内のデータファイル毎に、対応するアプリケーションプログラム（又はプログラム群）が特定され、仮想アプリケーション環境１２２に組み込まれる。
【００２４】
ブロック３０６では、特定されたアプリケーションプログラムコンポーネント、データファイル、及びアプリケーションプログラムを動作可能なオペレーティングシステムを有する仮想アプリケーション環境１２２が生成される。仮想アプリケーション環境１２２は、仮想マシンを特定する情報、又は仮想アプリケーション環境を実行可能な実際のコンピュータハードウェアを特定する情報を有するかもしれない。
【００２５】
ブロック３０８の分岐では、仮想アプリケーション環境１２２の有効性がオプションで検証され、仮想アプリケーション環境のコンポーネントを生成したコンピュータハードウェアに対応する仮想マシン上で仮想アプリケーション環境１２２が実行可能であるか否かが判断される。仮想アプリケーション環境１２２が無効である場合、ブロック３１０にてエラーが報告され、その後ルーチン３００は終了する。
【００２６】
仮想アプリケーション環境１２２が有効であると検証された場合、ブロック３１２にて仮想アプリケーション環境が保存される。その後、このルーチンは終了する。
【００２７】
前述のルーチン３００の説明では、データファイルは単一のオブジェクトとして扱われるが、実際にはアーカイブされるデータは複数のファイル及びコンポーネントを含む可能性があり、本発明は仮想アプリケーション環境１２２に単一のデータファイルをアーカイブするものとして限定して解釈されるべきではないと理解されるべきである。
【００２８】
図４は、仮想アプリケーション環境１２２からアーカイブされたデータを取り出すための例示的ルーチン４００を示すフロー図である。まず、ブロック４０２では、仮想アプリケーション環境１２２からデータを復元する要求が受信される。ブロック４０４では、仮想アプリケーション環境１２２が取得される。
【００２９】
ブロック４０６では、仮想アプリケーション環境１２２に対応し支援するのに必要な仮想マシン１２４に関する情報が取得される。ブロック４０８では、仮想アプリケーション環境１２２に対応する仮想マシン１２４が実行される（もしまだ実行されていない場合）。もちろん、前述したように、仮想アプリケーション環境１２２は仮想マシン１２４上で実行するができ、また他には、仮想アプリケーション環境１２２を生成した元のコンピュータハードウェアに対応するコンピュータハードウェア（図示せず）上で実行することもできる。
【００３０】
仮想アプリケーション環境１２２を実行することには、仮想マシン上の仮想アプリケーション環境を起動することが含まれるかもしれない。そのような場合、仮想アプリケーション環境１２２が起動可能装置として動作するように構成されるべきである。
【００３１】
仮想アプリケーション環境１２２が実行された時点で、ブロック４１０にて、取得されるデータファイルに対応するアプリケーションプログラムが実行される。ブロック４１２では、自動的に又はコンピュータのユーザの指示で、対応するアプリケーションプログラムを使用してデータが抽出される。その後、ルーチン４００は終了する。
【００３２】
本発明の好適な実施形態を示し説明したが、様々な変更が本発明の本質及び範囲を逸脱しない範囲において可能であることが理解されるであろう。
【図面の簡単な説明】
【００３３】
【図１】本発明の複数の態様を実装するのに適した例示的動作環境を示すブロック図である。
【図２】データを仮想動作環境へアーカイブするのに適した例示的コンピュータシステムを示すブロック図である。
【図３】本発明の態様によるデータをアーカイブするための例示的ルーチンを示すフロー図である。
【図４】仮想アプリケーション環境からアーカイブされたデータを取り出すための例示的ルーチンを示すフロー図である。
【図１】
2009505278.tif 000003
【図２】
2009505278.tif 000004
【図３】
2009505278.tif 000005
【図４】
2009505278.tif 000006
【国際調査報告】
2009505278.tif 000007