(57)【要約】  本発明によれば、ソフトウェアリソースが、オフラインである間に、効率的且つ効果的に複製されることが可能になる。ある実施形態において、準備プログラムは、別のボリュームにインストールされた仮想マシン、オフラインオペレーティングシステム、又はアプリケーションプログラムのようなソフトウェアリソースの識別印を受信する。準備プログラムは、ソフトウェアリソースから除去されるべきカスタマイズされた印をも受信する。これら印は、個人別の情報、ソフトウェアアップデート、セキュリティ設定、又はユーザ設定等のレベルを含み得る。実行されると、ソフトウェアリソースが稼働していない間に、準備プログラムは準備プログラムの関数呼び出しを異なるボリューム（又は同一のボリューム）におけるソフトウェアリソースにリダイレクトする。よって、準備プログラムは準備プログラムが稼働しているボリュームに必然的に影響を与えることなく安全な方法でソフトウェアリソースのテンプレートを生成することができる。
2009532757.tif 000002
【特許請求の範囲】
【請求項１】
１または２以上のソフトウェアリソースが使用され、１または２以上のコンピュータシステムにおいて１または２以上の機能を実行するコンピュータ化された環境において、前記少なくとも１つのソフトウェアリソースがオフラインである間に前記１または２以上のソフトウェアリソースの少なくとも１つのテンプレートを生成する方法であって、
前記方法は、
オフラインソフトウェアリソースを識別するステップと、
前記ソフトウェアリソースから除去されるべき１または２以上の印を識別する１または２以上のテンプレート設定を識別するステップと、
第１のオペレーティングシステムにおいて、前記テンプレート設定に従って印を除去するように構成された準備プログラムを実行するステップと、
前記準備プログラムの１または２以上の関数呼び出しを前記識別されたソフトウェアリソースにリダイレクトし、前記１または２以上のテンプレート設定によって識別された前記印が前記ソフトウェアリソースから除去され、前記ソフトウェアリソースのテンプレートが生成される、ステップと
を備えることを特徴とする方法。
【請求項２】
前記識別されたオフラインソフトウェアリソースは、仮想マシンのオフラインオペレーティングシステムであることを特徴とする請求項１に記載の方法。
【請求項３】
前記識別されたオフラインソフトウェアリソースは、前記第１のオペレーティングシステム又は第２のオペレーティングシステムのいずれかにインストールされるオフラインアプリケーションプログラムであることを特徴とする請求項１に記載の方法。
【請求項４】
前記準備プログラムは、前記１または２以上のテンプレート設定を受信するように構成された準備エージェントにおいて実行されることを特徴とする請求項１に記載の方法。
【請求項５】
前記準備エージェントは、前記１または２以上の関数呼び出しを、リソースマウンタを介して前記識別されたソフトウェアリソースに送信することを特徴とする請求項４に記載の方法。
【請求項６】
前記識別されたオフラインソフトウェアリソースはボリュームハードディスクファイルであり、前記リソースマウンタは、ボリュームハードディスクマウンタ及びアプリケーションの少なくとも１つ、または対応する物理ディスクにアクセスを提供するように構成されるシステムライブラリであることを特徴とする請求項４に記載の方法。
【請求項７】
前記ボリュームハードディスクファイルは、仮想マシンに対応することを特徴とする請求項６に記載の方法。
【請求項８】
前記１または２以上のテンプレート設定は、コンピュータ名、ユーザ名、企業名、ドメイン名、又はネットワークアドレスの１または２以上のいずれかの表示を有するシステム又はユーザ設定を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記１または２以上のテンプレート設定は、サマータイム設定又は時間帯設定の１または２以上のいずれかの表示を有するシステム又はユーザ設定を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記１または２以上のテンプレート設定は、リソースプロダクトキー、ソフトウェアバージョン、若しくはセキュリティ設定の１または２以上のいずれかの表示を有するシステム又はユーザ設定を含むことを特徴とする請求項１に記載の方法。
【請求項１１】
コンピュータ化されたシステムに前記ソフトウェアテンプレートをインストールするステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記ソフトウェアテンプレートに対して１または２以上のカスタムされた印を入力し、前記識別されたオフラインソフトウェアリソースと異なる別のソフトウェアリソースが生成されるステップをさらに備えることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記１または２以上のカスタマイズされた印は、記憶媒体又はネットワークインターフェイスのいずれか１つから受信されることを特徴とする請求項１１に記載の方法。
【請求項１４】
前記１または２以上のカスタマイズされた印は、ユーザインターフェイスを介して受信されることを特徴とする請求項１１に記載の方法。
【請求項１５】
１または２以上の仮想マシンを含むコンピュータ化された環境において、仮想マシンがオフラインである間に前記仮想マシンを複製する方法であって、前記仮想マシン及び前記複製された仮想マシンは、稼働しているときに識別可能な識別印を有し、
前記方法は、
第１の格納スペースにインストールされた仮想マシンファイルの識別印を受信するステップと、
第２の格納スペースにインストールされた準備プログラムから１または２以上の関数呼び出しを受信するステップであって、前記１または２以上の関数呼び出しは１または２以上の印の除去を要求する、ステップと、
前記仮想マシンファイルにおいて前記１または２以上の関数呼び出しを実行し、前記１または２以上の印が前記第１の格納スペースにおいて除去される、ステップと、
前記仮想マシンファイルのテンプレートコピーを生成するステップと
を備えることを特徴とする方法。
【請求項１６】
第３の格納スペースに前記仮想マシンファイルのテンプレートコピーをインストールするステップをさらに備えることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記仮想マシンファイルから除去された、前記除去された１または２以上の印を記憶するステップをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１８】
前記仮想マシンファイルは、第１のソフトウェアアップデート及び第２のソフトウェアアップデートをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１９】
前記１または２以上の印は、前記第２のソフトウェアアップデートを除去するが前記第１のソフトウェアアップデートを除去しない要求を含んでいることを特徴とする請求項１８に記載の方法。
【請求項２０】
１または２以上のソフトウェアリソースが１または２以上のコンピュータシステムにおいて１または２以上の機能を実行するために使用されるコンピュータ化された環境において、コンピュータプログラムプロダクトは、前記コンピュータプログラムプロダクトに記憶されたコンピュータ実行可能指示を有し、実行されたとき、１または２以上のプロセッサに前記少なくとも１つのソフトウェアリソースがオフラインである間、前記１または２以上のソフトウェアリソースの少なくとも１つのテンプレートを生成する方法を実行させ、
前記方法は、
オフラインソフトウェアリソースを識別するステップと、
前記ソフトウェアリソースから除去されるべき１または２以上の印を識別する１または２以上のテンプレート設定を識別するステップと、
第１のオペレーティングシステムにおいて、前記テンプレート設定に従って印を除去するように構成された準備プログラムを実行するステップと、
前記準備プログラムの１または２以上の関数呼び出しを、前記識別されたソフトウェアリソースにリダイレクトし、前記１または２以上のテンプレート設定によって識別された前記印は前記ソフトウェアリソースから除去され、前記ソフトウェアリソースのテンプレートが生成されることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オフラインリソースのテンプレートを生成する方法に関する。
【背景技術】
【０００２】
コンピュータ化された環境において、異なるタイプのリソース（ソフトウェア、ハードウェア、又はソフトウェアとハードウェアとの組み合わせ）を分配する多数の方法が存在する。ソフトウェアの観点から考えると、例えば、企業は、オペレーティングシステム（又はアプリケーションプログラム）のコピーを複数の異なるコンピュータにインストールすることにより、１つのコピーを多くのシステムに分配することができる。このような場合、企業は、コピーしたオペレーティングシステム又は共有したオペレーティングシステムに幾つかのソフトウェアアップデートをインストールし、多くのシステムでこれらアップデートの複数のコピーを共有する必要があるかもしれない。ハードウェアを共有する従来の方法は、ネットワークにコンピュータシステムをセットアップすることを含み、複数の異なるコンピュータシステムは、様々な格納部又はファイルの共有の必要性のために、別のコンピュータドライブスペースにアクセスし得る。
【０００３】
ソフトウェアとハードウェアとを組み合わせたものからリソースを分配する更なる方法は、単一の物理的なコンピュータシステムに固有のエンティティ（ｅｎｔｉｔｙ）を生成し、該エンティティは、別個の及び独立したコンピュータシステムとして振る舞うが、同一の物理的媒体及びプロセスリソース（処理リソース）を共有している。例えば、企業は、同一の単一のサーバに複数の仮想マシンを形成してもよく、前記複数の仮想マシンの各々は別のコンピュータによって、あたかも所定の仮想マシンの各々がそれ自体別個のコンピュータシステムであるように、別々に扱われ得る（アドレス可能である）。このような構成において、大企業における１つ又は少数のサーバは、同一の１組のハードウェアに幾つかの仮想マシンを含むことができ、これら仮想マシンは、どのように構成されようと、追加のサーバ又はネットワークアクセス可能パーソナルコンピュータとしてそれぞれ機能する。
【０００４】
仮想マシンのようなエンティティは、ソフトウェア及びハードウェアリソースの共有を組み合わせているといえる。なぜなら、典型的には、これらは別の仮想マシンにより使用されるオペレーティングシステムの現在のコピーによりセットアップされ、これらは別の仮想マシンにより既に使用されているドライブをも共有していてもよいからである。しかし、同一のオペレーティングシステムを共有しているにもかかわらず、特に同じ物理ドライブにインストールされたとき、仮想マシンがオペレーションシステムの同じコピーを用いる他の仮想マシンにより混同されないように、企業はオペレーティングシステムの態様をカスタマイズする必要がある。よって、カスタマイズされた仮想マシンを形成するために、システムアドミニストレータは、別の仮想マシンから区別する特有の印（indicia）を新しい仮想マシンに与える必要があり、該特有の印は、マシン名、時間帯、ドメイン名、企業名、及びプロダクトキー等である。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、仮想マシンを単にカスタマイズすることは非常に難しいかもしれない。例えば、システムアドミニストレータは、オペレーティングシステムの基礎のインストールコピーから仮想マシンを単にインストールし、その後、関心がある様々なソフトウェアパッチの全て、及び特有の仮想マシン印を適用することを望むかもしれない。もちろん、システムアドミニストレータが適用しようとしているソフトウェアパッチ及び別の特有のカスタマイズが多数存在するならば、これは非常に不便であり得る。よって、システムアドミニストレータは、ソフトウェアの観点からシステムアドミニストレータの好みに既にカスタマイズされたオペレーティングシステムのあるインスタンスをコピーして、その後、新しい仮想マシン（しかしながら、異なる固有の印を有している）にこのコピーをインストールすることを好むかもしれない。このように、システムアドミニストレータは、新しい仮想マシンにコピーをインストールする前に、関心がある現在のコピーからカスタム印を除去する必要がある。
【０００６】
それにもかかわらず、オペレーティングシステムコピーからカスタマイズされた印を単に除去して、その後新しい仮想マシンにおけるオペレーティングシステムコピーに新しいカスタマイズされた印を加えることは別の困難さを伴う。特に、オペレーティングシステム（又はアプリケーション）の「包括的な（ｇｅｎｅｒｉｃ）」コピー又は「テンプレート」コピーを生成するのに使用されるかもしれない従来の準備ソフトウェアは使用するのが難しく、多くの時間がかかり得る。例えば、システムアドミニストレータは関心があるオペレーティングシステムのコピーを起動し、その後オペレーティングシステムが稼働している間に、オペレーティングシステムに加えて、準備ソフトウェアを稼働させる必要があるかもしれない。準備ソフトウェアはオペレーティングシステムコピーの所定の固有の特徴を除去するので、準備ソフトウェアは、全ての特有の特徴が除去されるまで、オペレーティングシステムを数回再起動されることを必要とするかもしれない。
【０００７】
簡単な遅れの故に生ずるオペレーティングシステム（又はアプリケーション）を連続的にリスタートする際の困難さに加えて、従来の準備ソフトウェアは技術的に複雑であり、使用が困難であり得る。特に、ユーザがオペレーティングシステムを包括的なコピー又はテンプレートコピーに変える前に準備ソフトウェアを適切に構成することに失敗したならば、ユーザは、ユーザが取り除くことを意図していないアイテムを取り除いてしまうかもしれない。これにより、ユーザは適切なポイントまでオペレーティングシステムを戻すのに多くの時間を費やすか、関心がある所定のオペレーティングシステム（又は該オペレーティングシステムのテンプレート）が実行不可能になるかもしれない。
【０００８】
よって、扱われ得る（アドレスされ得る）前もって存在しているソフトウェアを用いてエンティティの新しいインスタンスを形成する場合多くの問題が存在する。
【課題を解決するための手段】
【０００９】
本発明は、オフラインリソースのテンプレートコピーを生成するように構成されたシステム、方法、及びコンピュータプログラムプロダクトの技術分野における１または２以上の問題を解決する。特に、本発明によれば、オペレーティングシステム又はアプリケーションのコピーのような特定のリソースのコピーが、リソースが稼働していない（すなわち、オフラインである）間にユーザの仕様書（specification）に従ってリソースの包括的な（generic）コピー又はテンプレートコピーに変えられることができる。したがって、本発明によれば、ユーザは、より良い効率性及び設定可能性を有する同一のリソースのテンプレートコピーを所望の数だけ生成することができる。このような実施形態は、後の時点におけるプロセスの間に、テンプレートをカスタマイズすることに関する便利なユーザー体験（experience）を提供し得る。
【００１０】
例えば少なくとも１つのソフトウェアリソースがオフラインである間に１または２以上のソフトウェアリソースの少なくとも１つのテンプレートを生成する方法は、オフラインソフトウェアリソースを識別するステップと、１または２以上のテンプレート設定を識別するステップとを含んでいる。これらテンプレート設定は、通常、ソフトウェアリソースから除去されるべき１または２以上の印を示している。さらに、前記方法は第１のオペレーティングシステムにおいて、テンプレート設定に従い印を除去するように構成された準備プログラムを実行するステップを含んでいる。前記方法はまた、識別されたソフトウェアリソースに準備プログラムの１または２以上の関数呼び出し（function call）をリダイレクトするステップを含んでいる。このように、１または２以上のテンプレート設定により識別された印はソフトウェアリソースから除去され、ソフトウェアリソースのテンプレートが生成される。
【００１１】
さらに、仮想マシンがオフラインである間に、稼働しているときに仮想マシン及び複製された仮想マシンが識別可能な識別印（identity）を有するように仮想マシンを複製する方法は、第１の格納スペースにインストールされた仮想マシンファイルの識別印を受信するステップを含み得る。前記方法はまた、第２の格納スペースにインストールされた準備プログラムから１または２以上の関数呼び出しを受信するステップを含むことができ、１または２以上の関数呼び出しは１または２以上の印の除去を要求する。さらに、前記方法は、仮想マシンファイルにおいて１または２以上の関数呼び出しを実行するステップを含むことができ、これによって、第１の格納スペースにおける要求された印の除去を生じ得る。さらに、前記方法は仮想マシンファイルのテンプレートコピーを生成するステップを含むことができる。
【００１２】
この発明の開示は、以下の発明を実施するための最良の形態においてさらに詳しくするコンセプトの部分を簡単な形で説明している。この発明の開示は、特許請求の範囲に記載された重要な特徴又は本質的な特徴を明らかにするようには意図されておらず、特許請求の範囲に記載された範囲を判断する助けとして使用されることを意図しているわけではない。
【００１３】
本発明の例示的な実施形態の更なる特徴及び利点は、以下において説明され、部分的に本明細書から明らかであり、又は、このような例示的な実施形態を実施することにより解るであろう。このような実施形態の特徴及び利点は、実施形態及び特許請求の範囲において記載されたもの及びその組み合わせにより達成されて得られてもよい。これら特徴及び他の特徴は、以下の説明及び請求の範囲からより明確になるか、本明細書のこれ以降において説明されるような例示的な実施形態を実施することにより解り得る。
【発明を実施するための最良の形態】
【００１４】
本発明の上記において説明された利点及び特徴並びに他の利点及び特徴が得られ得るように説明するために、上記において簡単に説明された本発明のより詳しい説明が、添付図面に示された特定の実施形態を参照しつつ説明される。これら図面は本発明の典型的な実施形態だけを示しており、本発明の範囲を限定するとして考えられるべきではない。本発明は、添付図面を使用することにより、さらに明確に且つ詳細に記載されて説明される。
【００１５】
本発明は、オフラインリソースのテンプレートコピーを形成するように構成されたシステム、方法、及びコンピュータプログラムプロダクトに関する。特に、本発明によれば、オペレーティングシステムのコピー又はアプリケーションのコピーのような特定のリソースのコピーが、リソースが稼働していない（すなわち、オフラインである）間に、ユーザの仕様書に従いリソースの包括的なコピー又はテンプレートコピーに変えられることができる。よって、本発明によれば、ユーザが、より良い効率性及び設定可能性を有する同一のリソースのテンプレートコピーを所望の数だけ生成することができる。このような実施形態は後の時点におけるプロセスの間にテンプレートをカスタマイズすることに関する便利なユーザ体験を提供し得る。
【００１６】
本明細書における説明及び特許請求の範囲からより十分に理解されるように、上記実施形態の少なくとも１つの利点は、ユーザ（例えば、システムアドミニストレータ）がカスタマイズされた仮想マシンを、ベースレベルからカスタマイズされた仮想マシンを再び生成することなく多数の別のユーザに効率的に提供できることである。さらに、カスタマイズされた仮想マシンのユーザ又はオーナは、該仮想マシンに関連するハードウェア若しくはソフトウェアの数回の再起動及び／又はリスタートを必ずしも行うことなく、ユーザの仮想マシンのテンプレートを容易に生成することができる。さらに、プロセスは自動的に行われるので、通常のユーザが答え（例えばプロダクトキー、ＤＮＳ、ＷＩＮＳ等）を知らない典型的に困難な判断の幾つかがシステムにより自動的に扱われることができ、例えば、ヘルプデスク又は組織内部の電話通信（administrative call）において最終的にコストを削減する。さらに、本発明によれば、ある準備ソフトウェアの関数呼び出しが別の場所に容易にリダイレクトされることができ、ユーザは離れた場所に配置された仮想マシンからテンプレートを生成することができる。
【００１７】
本明細書において使用されている「準備プログラム」は、仮想マシン若しくはオペレーティングシステムのイメージファイル又は仮想マシン若しくはアプリケーションプログラムファイルのイメージ（若しくは実行可能なもの）のような特定のユーザにより指示されたような特定のファイルとインターフェイスするように構成された１組のほぼ（ほとんど）独立したコンピュータ実行可能指示（命令）を意味している。準備プログラムは与えられたテンプレート設定により、特定のカスタマイズされた印を、かかるファイルから除去し得る。例えば、本件特許出願人オペレーティング環境を使用する少なくとも１つの例において、本発明の１または２以上の実施形態により使用され得る１つの準備プログラム（例えば１４５）は、「シスプレップ（Sysprep）」と称されるシステム準備ツールである。
【００１８】
いずれにせよ、幾つかの場合において、本明細書の最初において説明されたように、準備プログラムは、ユーザ又は別のアドミニストレータにより設定された「準備エージェント」とさらにインターフェイスする。準備エージェントはまた、準備プログラムと、関心があるファイル（及び／又は特定のオペレーティングシステムに関する他の適切なインターフェイスコンポーネントを経て）との間のくさび（shim）インターフェイス（例えば図１Ｃ）として効率的に動作する１組のコンピュータ実行可能指示である。特に、準備エージェントは、準備プログラムから呼び出し（call）を受信し、リダイレクトするように構成される。少なくとも１つの実施形態において、準備エージェントは、このような受け取り及び／又はリダイレクションの準備プログラムの認識無しに、準備プログラムからの呼び出しを受け取り、リダイレクトする。
【００１９】
図１Ａは、本発明の実施形態による全体的な概略図を示しており、準備プログラムはオフラインリソースの１または２以上のテンプレートコピーを作成し、インストールする。その後、１または２以上の他のリソース又はコンポーネント（図示せず）（例えば、１または２以上の他の再分配又は格納モジュール若しくはメカニズム）が１または２以上のホストボリュームにおいてリソースのテンプレートコピーを提供し得る。例えば、図１Ａは、サーバ１０５が、現在「オフライン」であるすなわち稼働していないリソース１４０のような１または２以上のリソースを含んでいることを示している。この例においては、リソース１４０は、本質的に、サーバ１０５における割り当てられたハードディスクパーティションにおいて稼働する独立エンティティである「仮想マシン」を含む。
【００２０】
仮想マシンとしてリソース１４０は、ランアプリケーションプログラムのような従来の物理的マシンの利点の大部分又は全てを提供し、他の物理的なマシン又は仮想マシンと相互作用し、ネットワーク又はデータベースアプリケーション／機能を提供する。ある実施形態において、例えば、サーバ１０５はストレージサーバとして主に機能するメインパーティションを含み、一方リソース１４０はメールサーバ又はデータベースサーバとして機能する。したがって、ネットワークにおける他のマシンは、一般に、リソース１４０がサーバ１０５によりホストされた唯一の仮想マシンであることに気づかない。なぜなら、少なくとも１つの理由として、リソース１４０は十分にカスタマイズされ、ネットワークにおける他のマシンと比較すると、独立して扱われる（アドレス可能である）からである。
【００２１】
図１Ａは、ある時点において、ユーザがリソース１４０を複製することを望んでいることをさらに示している。例えば、ユーザは、様々なソフトウェアの設定、アップデート、およびカスタマイズがリソース１４０に適用された方法を好んでいるので、これらソフトウェアのカスタマイズを取り消す又は除去することから始めること無く、別のホストにおいて使用するためにリソース１４０を複製したいと思っている。よって、図１Ａは、準備プログラム１４５が、該準備プログラム１４５がオフラインである間に、リソースとインターフェイスし、対応するテンプレートコピー１４０ａを生成することを示している。その後、これらテンプレートは、別々のボリューム（すなわち１６５、１８０）におけるホスト１１０及び１１５に送信され、インストールされることができ、さらに適宜カスタマイズされてもよい。適切にカスタマイズされると、その後、リソース１４０のこれら新しいバージョン（すなわちリソース１４０ｂ、１４０ｃ）は、独立したエンティティとして見なされることができ、どの点から見てもネットワークにおける他のユーザに対する新しいマシンである。
【００２２】
図１Ｂは、図１Ａにおける概略図のさらに詳しい図を示し、上記において説明した準備プログラム１４５は準備エージェント１５０とインターフェイスし、リソース１４０のテンプレート１４０ａを生成する。特に、図１Ｂは、サーバ１０５が複数の異なるマシン及び／又は仮想マシンを含み、よって所定の場合、仮想マシンライブラリとして機能することを示している。例えば、図１Ｂは、サーバ１０５が、メインボリューム１６０（「ｃ：＼」）並びに追加の仮想マシンボリューム１７０（「ｘ：＼」）及び１７５（「ｚ：＼」）に記憶された別個のエンティティを含んでいることを示している。この例におけるこのようなボリュームの各々は、それ自体別個にカスタマイズされたオペレーティングシステムを有する特定のリソースを含んでいる。例えば、ボリューム１６０は、該ボリューム１６０に記憶及び／又はインストールされたリソース１３０を有し、一方、ボリューム１７０及び１７５は、該ボリューム１７０及び１７５にそれぞれ記憶及び／又はインストールされたリソース１３５及び１４０を有している。この場合において、リソース１３５及び１４０は現在オフラインである（すなわち「オフラインリソース」１２５）。
【００２３】
説明の都合上、この特定の例は、ボリューム１６０、１７０、１７５等の各々が、特定のドライブレターを指定することにより識別可能である場合を示している。しかしながら、これは本発明においては必須ではない。例えば、ドライブ経路は、所定のオペレーティングシステムに適切なグローバル一意識別子（「ＧＵＩＤ」）により指定することができる。別の場合において、ドライブ経路はＧＵＩＤを用いずに指定することができる。例えば、ドライブ経路は、取り付けられていないボリューム（アンマウントされているボリューム）、ドライブレター（たとえば取付ポイント）を有していない取り付けられたボリューム（マウントされたボリューム）、ドライブレターを有する取り付けられたボリューム、又は移動可能なスナップショットを指定することができる。最終的には、特定のボリュームを取り扱う方法だけが必要である。よって、本出願における特定のドライブ又はファイル経路の図及び指定は、説明の都合上、少なくとも１つの可能な実施形態を示している。
【００２４】
いずれにせよ、前述したように、各リソースは、通常、少なくとも基礎の印に関して別々にカスタマイズされ、該リソースが局所的なコンピュータシステム又は離れた場所にあるコンピュータシステムにより識別されることを可能にする。例えば、図１Ｂは、リソース１３０は「カスタム印ａ、ｂ、ｃ」を含み、一方、リソース１３５は「カスタム印ｃ、ｄ、ｅ」を含み、リソース１４０は「カスタム印ｃ、ｆ、ｇ」を含んでいることを示している。とりわけ、この場合における各リソースは、ドメイン名、時間帯設定、又は共有され得る幾つかの他の印若しくはプロパティを示しているかもしれない少なくとも１つの共通の印「ｃ」を有している。しかしながら、各リソースは、リソース１３０については「ａ、ｂ」、リソース１３５については「ｄ、ｅ」、リソース１４０については「ｆ、ｇ」のような特有の印をさらに含んでいる。例えば、共通の印「ｃ」は共通のネットワークドメイン名メンバーシップ（membership）であるかもしれなく、一方、特有の印「ａ、ｂ」、「ｄ、ｅ」、及び「ｆ、ｇ」は特有のコンピュータ名、オーナアカウント、及び構造設定等であるかもしれない。
【００２５】
図１Ｂは、各リソースが、様々なソフトウェアのバージョン、アップデート、及び／又はパッチ等により別々にカスタマイズされ得ることをさらに示している。例えば、リソース１３０及び１３５は「ソフトウェアアップデートｘ、ｙ、ｚ」を含み、一方、リソース１４０は「ソフトウェアアップデートｖ、ｙ、及びｚ」を含んでいる。ある時点において、ユーザはリソース１４０が、幾つかの理由により、例えばアップデート「ｘ、ｙ、ｚ」ではなく、アップデート「ｖ、ｙ、ｚ」に基づくように稼働する方法を好むように決定してもよい。このように、ユーザは、関連したソフトウェアアップデートを残すが、コンピュータ名、オーナアカウント、又はサマータイム設定等のようなカスタム印を除去してあるリソース１４０のテンプレートを生成する決定をしてもよい。
【００２６】
よって、ユーザは、ボリューム「ｚ：＼」１７５を介してリソース１４０をターゲットとするテンプレート設定１５５を準備し、該テンプレート設定１５５はカスタム印「ｆ及びｇ」だけを除去する特定の要求を含んでいる。ある実施形態において、テンプレート設定１５５は、準備プログラム１４５に提供され且つユーザインターフェイスを介して受信した入力に応じて生成された単純な電子データである。別の場合、テンプレート設定１５５は、別のプログラムを用いて別個に生成されたファイル又はコンポーネント（要素）であってもよく、準備プログラム１４５は該ファイル又はコンポーネントにデータを単に受信する。いずれにせよ、図１Ｂは、準備プログラム１４５が、該準備プログラム１４５が準備エージェント１５０を介して実行するテンプレート設定１５５を含むことをさらに示している。
【００２７】
図１Ｃに示したように、例えば、準備エージェント１５０は、準備プログラム１４５と、ボリュームハードドライブマウンタ１９５のような別の適切なコンポーネントとの間のくさびとして実際に機能し、リソースのための対応するファイルと直接インターフェイスすることができる。このように、準備エージェント１５０は少なくとも部分的にシールドとして機能し、準備プログラム１４５により形成される関数呼び出しは、テンプレート設定により、準備プログラム１４５が実行しているオペレーティングシステムではなく、別のオフラインボリュームにセットアップするように指示され得る。すなわち、準備エージェント１５０は関数呼び出しを適切なターゲットにリダイレクトし、これによって準備プログラム１４５が、準備プログラム１４５及び準備エージェント１５０がインストールされているリソース１３０ではなく、リソース１４０だけからテンプレートを形成することを確実にする。
【００２８】
再び図１Ｂを参照すると、この図は、準備エージェント１５０が、オフラインソース１４０からカスタム印「ｆ、ｇ」を取り除く指示を含む準備プログラム１４５の関数呼び出しをリダイレクトしていることを示している。ある実施形態において、準備プログラム１４５はリソース１４０から直接１または２以上の特定の印を単純に取り除き、ユーザはリソース１４０がオンラインに戻される前にカスタム印を再設定する必要がある。別の実施形態において、ユーザは、リソース１４０から印を直接除去することなく、他のファイルへのフィルタ関数呼び出し及びコピーの結果をフィルタする。さらに別の実施形態において、ユーザはリソース１４０のオフラインファイルを別の位置にまずコピーし、その後テンプレート設定１５５に含まれる印を取り除く。どのように構成されようと、準備プログラム１４５の関数呼び出しは、リソース１４０に特定された印を取り除かせ、最小の変更（distruption）により所望の数のテンプレートコピー１４０ａを得ることができる。前述したように、その理由の１つは少なくとも、これら関数呼び出しの実行がリソース１４０の再起動すなわちリスタートをさらに要求しないからである。
【００２９】
例えば、仮想マシンによれば、準備エージェント１５０を介する準備プログラム１４５は、対応するリソース（すなわち、リソースイメージファイル）の仮想ハードディスク（例えば、ボリューム１７５）を設けることができる。あるいは、準備プログラム１４５は、ボリュームを設ける（マウントする）必要なくリソースファイルを単に読み取るか、リソースファイルに単に書き込むように構成されてもよい。その後、準備プログラム１４５は、例えば、デバッグモードにおける新しいプロセスとして準備エージェント１５０を起動することにより、適切なフラグを有する準備エージェント１５０をセットアップすることができる。準備エージェント１５０を起動するとき、準備プログラム１４５はテンプレート設定１５５に従い準備エージェント１５０をセットアップし、ファイルシステムに対する全ての呼び出しを捕捉し、システムレジストリに対する全ての呼び出しを捕捉し、及び実行を成功させるのに必要な別の呼び出しの全てを捕捉し得る。その後、準備プログラム１４５は、適切な関数呼び出しを準備エージェント１５０に送信することを始め、該準備エージェント１５０は、その後これら関数呼び出しをセットアップ（すなわち、テンプレート設定１５５）に基づきリダイレクトする。例えば、リソース１３０からカスタマイズされた印を除去する準備プログラム１４５からのコマンドは、準備エージェント１５０によってリソース１４０にリダイレクトされる。
【００３０】
適切なカスタマイズが除去されると、図１Ｂは、新しく生成されたテンプレート１４０ａが所望の他の場所にインストールされることをさらに示している。例えば、図１Ｂは、サーバ１０５が、リソーステンプレート１４０ａ及び１組の新しい印１８５をホスト１１０におけるボリューム「ｐ：＼」に提供し、リソース１４０ｂを生成することを示している。また、図１Ｂは、サーバ１０５が、リソーステンプレート１４０ａ及び新しい印１９０をホスト１１５におけるボリューム「ｊ：＼」に提供し、リソース１４０ｃを生成することを示している。両方の場合において、リソース１４０の新しい複製物（iteration）（すなわちリソース１４０ｂ−ｃ）は要求されるソフトウェアアップデート「ｖ、ｙ、ｚ」及びカスタム印「ｃ」を保持している。それにもかかわらず、図１Ｂは、リソース１４０ｂが、リソース１４０ｂについては「ｈ、ｉ」、リソース１４０ｃについては「ｊ、ｋ」のような追加の印を含むことにより少なくとも固有である（識別可能である）ことを示している。前述したように、これら固有の印は、コンピュータネーム、又は他の適切な設定情報のような任意の数のアイテムに対応することができる。
【００３１】
リソーステンプレート１４０ａの新しいインストールの間に新しい印１８５、１９０を設ける複数の異なる方法がある。前述したように、例えば、これら設定は、リソース１４０から印を取り除くときに、ユーザインターフェイスプロンプトを介して準備プログラム１４５に前もって設けられてもよく、又はフロッピー（登録商標）ディスクのような異なる格納媒体からいかなる時点においても受信することができる。別の場合、準備プログラム１４５（又は類似するプログラム）がホスト１１０、１１５において再び使用され、インストールにおいて適切なユーザインターフェイスを介してこの情報を使用者に与える。
【００３２】
さらに、本発明の範囲内において上記において説明したコンポーネント及びメカニズムに対する多数の変形例が存在する。例えば、カスタム印及び／又は特定のソフトウェアのコンポーネント若しくはアップデートを局所ボリュームにインストールされたターゲットとなるリソースから取り除くことに加え、システムアドミニストレータは離れた場所のオフラインリソースにおいてこれら機能を実行し得る。例えば、システムアドミニストレータは、準備プログラム１４５及び準備エージェント１５０を使用して、大企業における全てのオフラインリソースの所定のソフトウェアアップデートを取り除いてもよい。また、システムアドミニストレータは、準備プログラム１４５及び準備エージェント１５０を使用して、前の被雇用者により使用されていた仮想マシンから全てのカスタム印を取り除いてもよい。さらにシステムアドミニストレータは、準備プログラム１４５及び準備エージェント１５０を使用して、企業におけるパーソナルステーションにおいて使用するためのオペレーティングシステムの特にカスタマイズされたバージョンをセットアップして、その後、東側（右側）のステーションにおいて最小の労力によりインストールされ得るコピーを生成する。
【００３３】
さらに、各ユーザは様々な個人設定においてこれらコンポーネントを使用し得る。例えば、ユーザは、インストールされ所定の調整をされた全てのパッチ及び様々なセキュリティソフトウェアを有するオペレーティングシステムの稼働中のアップデートされたバージョンのコピーを生成し、関連するプロダクトキーを除去し、その後、前記プロダクトキーと異なるが有効なプロダクトキー及びコンピュータ名等を有する友達のコンピュータ又は家族のコンピュータにこのコピーを再びインストールすることができる。よって、図１Ａ乃至１Ｃは、広範囲の設定において使用され、良い効率性及び精度を有する現在のリソースのテンプレートを生成し得る多数の概略構成及びコンポーネントを示している。
【００３４】
本発明の実施形態は特定の結果を達成する一連の異なるステップを含む１または２以上の方法のフローチャートとして表現して説明され得る。特に、図２は、オフラインリソースのテンプレートコピーを生成する準備プログラム１４５及び準備エージェント１５０に関するステップ（動作・行為）のフローチャートを示している。図２のステップは図１Ａ乃至図１Ｃにおいて説明したコンポーネント及びメカニズムを参照しつつ以下において説明される。
【００３５】
前置き的な事柄として、本明細書において、「第１の」コンポーネント、「第２の」コンポーネント、又は「第３の」コンポーネント（例えば、第１の格納スペース、第２の格納スペース、又は第３の格納スペース）という表現が時々用いられる。しかしながら、このような名称は単に異なるコンポーネントであることを示し、コンポーネントがアクセスされるかもしれない時・点に関わりなく、「第１の」コンポーネント又は格納スペースが、「第２の」コンポーネント若しくは格納スペース又は「第３の」コンポーネント若しくは格納スペースと異なっていることだけを必要とする。例えば、第１の格納スペース、及び第２の格納スペース又は第３の格納スペースの使用は、これら第１の格納スペース、第２の格納スペース、又は第３の格納スペースが少なくともお互いと異なっていることを意味し、これら表現・名称は、第１の格納スペース、第２の格納スペース、又は第３の格納スペースが、必然的に与えられること、アクセスされること、生成されること、又は特定の順序すなわち順番で該格納スペースにおいて行われる他のステップを有することを必要としない。
【００３６】
例えば、図２は、少なくとも１つのソフトウェアリソースがオフラインである間に、１または２以上のソフトウェアリソースの少なくとも１つのテンプレートを生成する準備プログラム１４５に関する方法を示し、当該方法はオフラインリソースを識別するステップ２００を含んでいる。ステップ２００はオフラインソフトウェアリソースを識別するステップを含んでいる。例えば、準備プログラム１４５はユーザからの入力を受信し、ボリューム「ｚ：＼」１７５に配置されたリソース１４０からテンプレートを生成する。
【００３７】
また、図２は、仮想マシンがオフラインである間に仮想マシンを複製する準備エージェント１５０に関する方法を示し、仮想マシン及び複製の仮想マシンが稼働しているとき区別可能な識別印を有している。当該方法は、オフラインファイル識別印を受信するステップ２１０を含んでいる。ステップ２１０は、第１の格納スペースにインストールされた仮想マシンファイルの識別印を受信するステップを含んでいる。例えば、準備エージェント１５０は、準備プログラムからの指示を受信し、ボリューム「ｚ：＼」１７５におけるリソース１４０をターゲットとする。仮想マシンの特定の場合、リソース１４０は仮想ハードディスク（すなわち、「．ｖｈｄ」、「ＶＨＤ」、又は「．ｖｈｄ」）ファイルのような単一のファイルとして識別可能であってもよい。幾つかの場合において、仮想マシンは、複数の「．ｖｈｄ」ファイルとして代わりに示されてもよい。
【００３８】
図２は、準備プログラム１４５に関する方法が、テンプレート設定を識別するステップ２２０を含んでいることを示している。ステップ２２０は１または２以上のテンプレート設定を識別するステップを含み、当該１または２以上のテンプレート設定はソフトウェアリソースから除去されるべき１または２以上の印を識別する。例えば、準備エージェント１４５は、カスタム印「ｆ、ｇ」を除去するが、所望のソフトウェアアップデート「ｖ、ｙ、ｚ」のいずれか１または２以上を保存する指示を有するテンプレート設定１５５を受信する。さらに、図２は準備プログラム１４５に関する方法が準備プログラムを実行するステップ２３０を含んでいることを示している。ステップ２３０は第１のオペレーティングシステムにおいて、テンプレート設定に従って印を除去するように構成された準備プログラムを実行するステップを含んでいる。例えば、図１Ｂは、準備プログラム１４５がリソース１３０（すなわち、対応するオペレーティングシステム）において稼働及び／又は実行されているが、テンプレート設定１５５に従ってリソース１４０に関数呼び出しをリダイレクトしていることを示している。
【００３９】
よって、図２は、準備プログラム１４５に関する方法が、関数呼び出しを、識別されたリソースにリダイレクトするステップ２４０をさらに含むことを示している。ステップ２４０は、準備プログラムの１または２以上の関数呼び出しを、識別されたソフトウェアリソースにリダイレクトするステップを含み、１または２以上のテンプレート設定により識別される印はソフトウェアリソースから除去され、ソフトウェアリソースのテンプレートが生成される。例えば、準備プログラム１４５は準備エージェント１５０をデバッグモードにおける新しいプロセスとして始め、テンプレート設定１５５に従って全ての適切なリダイレクト機能により準備エージェント１５０をセットアップする。よって、準備プログラム１４５が関数呼び出しを送信してカスタム印を除去するとき、該呼び出しは、ターゲットとなるソフトウェアに適切にリダイレクトされ、テンプレートが最終的に生成される。
【００４０】
同様に、図２は、準備エージェント１５０に関する方法が１または２以上の関数呼び出しを受信するステップ２５０を含むことをさらに示している。ステップ２５０は第２の格納スペースにインストールされた準備プログラムから１または２以上の関数呼び出しを受信するステップを含み、１または２以上の関数呼び出しは１または２以上の印の除去を要求している。例えば、図１Ｂ及び図１Ｃに示したように、準備エージェント１５０は準備プログラム１４５と直接インターフェイスして、テンプレート設定１５５により示された指示を受信し、これら指示を実行する。このように、準備エージェント１５０は、準備プログラム１４５がメインボリューム１６０において実行されるが、意図された取り除き機能は適切なオフラインターゲット（例えばリソース１４０）のボリューム（例えば、１７５）においてのみ行われることを確実にし得る。
【００４１】
さらに、図２は、準備エージェント１５０に関する方法が、ファイルにおいて１または２以上の関数呼び出しを実行するステップ２６０を含むことを示している。ステップ２６０は１または２以上の関数呼び出しを仮想マシンファイルにおいて実行するステップを含み、１または２以上の印が第１の格納スペースにおいて除去される。例えば、仮想マシンファイルにより表される仮想マシンの特定の場合において、準備エージェント１５０は仮想マシンファイルと直接インターフェイスし（又はボリュームハードディスクマウンタ１９５と直接インターフェイスし）、特定のカスタム印（例えば、リソース１４０の「ｆ、ｇ」）又は望まれないソフトウェアコンポーネントを仮想マシンファイルから除去する。準備エージェント１５０によるこの実行は、サーバ１０５において局所的に行われるか、ネットワーク上の離れた場所の関数呼び出しを介して行われる。
【００４２】
図２は、準備エージェント１５０に関する方法が、オフラインファイルのテンプレートコピーを生成するステップ２７０を含むことさらに示している。ステップ２７０は仮想マシンファイルのテンプレートコピーを生成するステップを含んでいる。例えば、図１Ｂに示したように、リソース１４０において実行すると、ソフトウェアアップデート「ｖ、ｘ、ｚ」及びカスタム印「ｃ」だけを含むテンプレートコピー１４０が生成される。
【００４３】
よって、本明細書において説明した方法及び対応するコンポーネントは、別の利用可能な方法及びコンポーネントよりも、より効率的にオフラインソフトウェアリソースのテンプレートを生成する１または２以上の実施形態を提供する。特に、本発明の実施形態は、比較的迅速であり、信頼性があり、及びエンドユーザ対話（interaction）又はエンドユーザ証明（credential）を典型的には要求しないプロセスを用いてテンプレートが生成され、カスタマイズを行うことを可能にする。さらに、テンプレートを準備する前に、ソフトウェアリソース（すなわち、仮想マシン）を稼働させること又は追加のソフトウェアコンポーネントをソフトウェアリソースにインストールすることは通常必要としない。さらに、上記ステップは仮想マシンに対して少しインターフェイスすることにより全て行われる。つまり、これはユーザのログオン又はユーザプロフィールの作成等を要求することなく行われる。さらに、これら準備プログラム及びコンポーネントは幅広いリソースにおいて使用されるのに十分汎用性があり、これら準備プログラム及びコンポーネントは、対応するターゲットソフトウェアリソースが様々なバージョン変更をするたびにアップデートされることを必ずしも必要としない。
【００４４】
上記において説明したように、効率的にテンプレートを生成するこの能力は、様々なコンピュータステーションにカスタマイズ又はアップデートされたソフトウェアリソースをインストールしたいと望む大企業にとって非常に有益であり得る。特に、本発明の実施形態は、このようなコピーが従来必要とされた場合よりも少ない時間で且つ少ない労力で形成されることを可能にし、このようなコピーが従来必要とされた場合よりも少ない時間で且つ少ない労力で個々にカスタマイズされたポイントにインストールされることを可能にする。このような利点は、製品の寿命の間にソフトウェア及び／又は個々の仕様の観点から何度もカスタマイズされる仮想マシン、オペレーティングシステム、及びアプリケーションプログラムを複製するのに役立つ。
【００４５】
一例として、これだけに限定されないが、かかるコンピュータ可読媒体はＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ若しくは別の光学的なディスク格納部・装置、磁気ディスク格納部・装置若しくは別の磁気格納デバイス、又はコンピュータ実行可能指示又はデータ構造の形態で所望のプログラムコード手段を行う又は記憶するのに使用され且つ汎用コンピュータ若しくは特定用途のコンピュータによりアクセスされ得る別の媒体であってもよい。情報が、ネットワーク又は別の通信接続（有線、無線、又は有線若しくは無線の組み合わせ）でコンピュータに送信されたとき、コンピュータは、前記接続をコンピュータ可読媒体と適切に見なす。よって、このような接続はコンピュータ可読媒体と適切に称される。上記したものの組み合わせがコンピュータ可読媒体の範囲内に含まれるべきである。
【００４６】
コンピュータ実行可能指示は、例えば、汎用コンピュータ、特殊用途コンピュータ、又は特殊用途のプロセスデバイス（処理装置）に特定の機能若しくは機能のグループを実施させる指示及びデータである。本発明の内容は、特に構造の特徴及び／又は方法のステップについて説明してきたが、特許請求の範囲に記載された本発明の内容は上記において説明した特定の特徴又はステップに限定されない。そうではなく、上記において説明した特定の特徴及びステップは、請求の範囲の実施の例示的な形態として説明されている。
【００４７】
本発明は、本発明の精神又は本質的な特徴から離れることなく別の特定の形態で実施されてもよい。上記において説明した実施形態は例示目的だけとして考えられるべきであり、限定するものと考えられるべきではない。よって、本発明の範囲は前述の説明ではなく、特許請求の範囲により示されている。特許請求の範囲の均等な意味及び範囲内にある全ての変更・変形が本発明の範囲内に含まれるべきである。
【図面の簡単な説明】
【００４８】
【図１Ａ】準備プログラムがオフラインリソースの１または２以上のテンプレートコピーを生成し、１または２以上のホストボリュームにリソースをインストールする、本発明の実施形態の全体的な概略図である。
【図１Ｂ】準備プログラムが準備エージェントとインターフェイスし、１つの格納媒体にリソースのテンプレートを生成して、別のホストボリュームにおける別の格納媒体に、かかるリソースのカスタマイズされたバージョンをインストールする図１Ａに示した概略図の詳しい図である。
【図１Ｃ】準備プログラムからの関数呼び出しを適切なターゲットリソースファイルにリダイレクトするように構成された、本発明による１組のアプリケーション層を示す図である。
【図２】オフラインリソースのテンプレートコピーを生成するための、準備プログラム及び準備エージェントに関する一連のステップを含むフローチャートである。
【図１Ａ】
2009532757.tif 000003
【図１Ｂ】
2009532757.tif 000004
【図１Ｃ】
2009532757.tif 000005
【図２】
2009532757.tif 000006
【国際調査報告】
2009532757.tif 000007
2009532757.tif 000008