説明

オフラインリソースのテンプレートを生成する方法

本発明によれば、ソフトウェアリソースが、オフラインである間に、効率的且つ効果的に複製されることが可能になる。ある実施形態において、準備プログラムは、別のボリュームにインストールされた仮想マシン、オフラインオペレーティングシステム、又はアプリケーションプログラムのようなソフトウェアリソースの識別印を受信する。準備プログラムは、ソフトウェアリソースから除去されるべきカスタマイズされた印をも受信する。これら印は、個人別の情報、ソフトウェアアップデート、セキュリティ設定、又はユーザ設定等のレベルを含み得る。実行されると、ソフトウェアリソースが稼働していない間に、準備プログラムは準備プログラムの関数呼び出しを異なるボリューム(又は同一のボリューム)におけるソフトウェアリソースにリダイレクトする。よって、準備プログラムは準備プログラムが稼働しているボリュームに必然的に影響を与えることなく安全な方法でソフトウェアリソースのテンプレートを生成することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オフラインリソースのテンプレートを生成する方法に関する。
【背景技術】
【0002】
コンピュータ化された環境において、異なるタイプのリソース(ソフトウェア、ハードウェア、又はソフトウェアとハードウェアとの組み合わせ)を分配する多数の方法が存在する。ソフトウェアの観点から考えると、例えば、企業は、オペレーティングシステム(又はアプリケーションプログラム)のコピーを複数の異なるコンピュータにインストールすることにより、1つのコピーを多くのシステムに分配することができる。このような場合、企業は、コピーしたオペレーティングシステム又は共有したオペレーティングシステムに幾つかのソフトウェアアップデートをインストールし、多くのシステムでこれらアップデートの複数のコピーを共有する必要があるかもしれない。ハードウェアを共有する従来の方法は、ネットワークにコンピュータシステムをセットアップすることを含み、複数の異なるコンピュータシステムは、様々な格納部又はファイルの共有の必要性のために、別のコンピュータドライブスペースにアクセスし得る。
【0003】
ソフトウェアとハードウェアとを組み合わせたものからリソースを分配する更なる方法は、単一の物理的なコンピュータシステムに固有のエンティティ(entity)を生成し、該エンティティは、別個の及び独立したコンピュータシステムとして振る舞うが、同一の物理的媒体及びプロセスリソース(処理リソース)を共有している。例えば、企業は、同一の単一のサーバに複数の仮想マシンを形成してもよく、前記複数の仮想マシンの各々は別のコンピュータによって、あたかも所定の仮想マシンの各々がそれ自体別個のコンピュータシステムであるように、別々に扱われ得る(アドレス可能である)。このような構成において、大企業における1つ又は少数のサーバは、同一の1組のハードウェアに幾つかの仮想マシンを含むことができ、これら仮想マシンは、どのように構成されようと、追加のサーバ又はネットワークアクセス可能パーソナルコンピュータとしてそれぞれ機能する。
【0004】
仮想マシンのようなエンティティは、ソフトウェア及びハードウェアリソースの共有を組み合わせているといえる。なぜなら、典型的には、これらは別の仮想マシンにより使用されるオペレーティングシステムの現在のコピーによりセットアップされ、これらは別の仮想マシンにより既に使用されているドライブをも共有していてもよいからである。しかし、同一のオペレーティングシステムを共有しているにもかかわらず、特に同じ物理ドライブにインストールされたとき、仮想マシンがオペレーションシステムの同じコピーを用いる他の仮想マシンにより混同されないように、企業はオペレーティングシステムの態様をカスタマイズする必要がある。よって、カスタマイズされた仮想マシンを形成するために、システムアドミニストレータは、別の仮想マシンから区別する特有の印(indicia)を新しい仮想マシンに与える必要があり、該特有の印は、マシン名、時間帯、ドメイン名、企業名、及びプロダクトキー等である。
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、仮想マシンを単にカスタマイズすることは非常に難しいかもしれない。例えば、システムアドミニストレータは、オペレーティングシステムの基礎のインストールコピーから仮想マシンを単にインストールし、その後、関心がある様々なソフトウェアパッチの全て、及び特有の仮想マシン印を適用することを望むかもしれない。もちろん、システムアドミニストレータが適用しようとしているソフトウェアパッチ及び別の特有のカスタマイズが多数存在するならば、これは非常に不便であり得る。よって、システムアドミニストレータは、ソフトウェアの観点からシステムアドミニストレータの好みに既にカスタマイズされたオペレーティングシステムのあるインスタンスをコピーして、その後、新しい仮想マシン(しかしながら、異なる固有の印を有している)にこのコピーをインストールすることを好むかもしれない。このように、システムアドミニストレータは、新しい仮想マシンにコピーをインストールする前に、関心がある現在のコピーからカスタム印を除去する必要がある。
【0006】
それにもかかわらず、オペレーティングシステムコピーからカスタマイズされた印を単に除去して、その後新しい仮想マシンにおけるオペレーティングシステムコピーに新しいカスタマイズされた印を加えることは別の困難さを伴う。特に、オペレーティングシステム(又はアプリケーション)の「包括的な(generic)」コピー又は「テンプレート」コピーを生成するのに使用されるかもしれない従来の準備ソフトウェアは使用するのが難しく、多くの時間がかかり得る。例えば、システムアドミニストレータは関心があるオペレーティングシステムのコピーを起動し、その後オペレーティングシステムが稼働している間に、オペレーティングシステムに加えて、準備ソフトウェアを稼働させる必要があるかもしれない。準備ソフトウェアはオペレーティングシステムコピーの所定の固有の特徴を除去するので、準備ソフトウェアは、全ての特有の特徴が除去されるまで、オペレーティングシステムを数回再起動されることを必要とするかもしれない。
【0007】
簡単な遅れの故に生ずるオペレーティングシステム(又はアプリケーション)を連続的にリスタートする際の困難さに加えて、従来の準備ソフトウェアは技術的に複雑であり、使用が困難であり得る。特に、ユーザがオペレーティングシステムを包括的なコピー又はテンプレートコピーに変える前に準備ソフトウェアを適切に構成することに失敗したならば、ユーザは、ユーザが取り除くことを意図していないアイテムを取り除いてしまうかもしれない。これにより、ユーザは適切なポイントまでオペレーティングシステムを戻すのに多くの時間を費やすか、関心がある所定のオペレーティングシステム(又は該オペレーティングシステムのテンプレート)が実行不可能になるかもしれない。
【0008】
よって、扱われ得る(アドレスされ得る)前もって存在しているソフトウェアを用いてエンティティの新しいインスタンスを形成する場合多くの問題が存在する。
【課題を解決するための手段】
【0009】
本発明は、オフラインリソースのテンプレートコピーを生成するように構成されたシステム、方法、及びコンピュータプログラムプロダクトの技術分野における1または2以上の問題を解決する。特に、本発明によれば、オペレーティングシステム又はアプリケーションのコピーのような特定のリソースのコピーが、リソースが稼働していない(すなわち、オフラインである)間にユーザの仕様書(specification)に従ってリソースの包括的な(generic)コピー又はテンプレートコピーに変えられることができる。したがって、本発明によれば、ユーザは、より良い効率性及び設定可能性を有する同一のリソースのテンプレートコピーを所望の数だけ生成することができる。このような実施形態は、後の時点におけるプロセスの間に、テンプレートをカスタマイズすることに関する便利なユーザー体験(experience)を提供し得る。
【0010】
例えば少なくとも1つのソフトウェアリソースがオフラインである間に1または2以上のソフトウェアリソースの少なくとも1つのテンプレートを生成する方法は、オフラインソフトウェアリソースを識別するステップと、1または2以上のテンプレート設定を識別するステップとを含んでいる。これらテンプレート設定は、通常、ソフトウェアリソースから除去されるべき1または2以上の印を示している。さらに、前記方法は第1のオペレーティングシステムにおいて、テンプレート設定に従い印を除去するように構成された準備プログラムを実行するステップを含んでいる。前記方法はまた、識別されたソフトウェアリソースに準備プログラムの1または2以上の関数呼び出し(function call)をリダイレクトするステップを含んでいる。このように、1または2以上のテンプレート設定により識別された印はソフトウェアリソースから除去され、ソフトウェアリソースのテンプレートが生成される。
【0011】
さらに、仮想マシンがオフラインである間に、稼働しているときに仮想マシン及び複製された仮想マシンが識別可能な識別印(identity)を有するように仮想マシンを複製する方法は、第1の格納スペースにインストールされた仮想マシンファイルの識別印を受信するステップを含み得る。前記方法はまた、第2の格納スペースにインストールされた準備プログラムから1または2以上の関数呼び出しを受信するステップを含むことができ、1または2以上の関数呼び出しは1または2以上の印の除去を要求する。さらに、前記方法は、仮想マシンファイルにおいて1または2以上の関数呼び出しを実行するステップを含むことができ、これによって、第1の格納スペースにおける要求された印の除去を生じ得る。さらに、前記方法は仮想マシンファイルのテンプレートコピーを生成するステップを含むことができる。
【0012】
この発明の開示は、以下の発明を実施するための最良の形態においてさらに詳しくするコンセプトの部分を簡単な形で説明している。この発明の開示は、特許請求の範囲に記載された重要な特徴又は本質的な特徴を明らかにするようには意図されておらず、特許請求の範囲に記載された範囲を判断する助けとして使用されることを意図しているわけではない。
【0013】
本発明の例示的な実施形態の更なる特徴及び利点は、以下において説明され、部分的に本明細書から明らかであり、又は、このような例示的な実施形態を実施することにより解るであろう。このような実施形態の特徴及び利点は、実施形態及び特許請求の範囲において記載されたもの及びその組み合わせにより達成されて得られてもよい。これら特徴及び他の特徴は、以下の説明及び請求の範囲からより明確になるか、本明細書のこれ以降において説明されるような例示的な実施形態を実施することにより解り得る。
【発明を実施するための最良の形態】
【0014】
本発明の上記において説明された利点及び特徴並びに他の利点及び特徴が得られ得るように説明するために、上記において簡単に説明された本発明のより詳しい説明が、添付図面に示された特定の実施形態を参照しつつ説明される。これら図面は本発明の典型的な実施形態だけを示しており、本発明の範囲を限定するとして考えられるべきではない。本発明は、添付図面を使用することにより、さらに明確に且つ詳細に記載されて説明される。
【0015】
本発明は、オフラインリソースのテンプレートコピーを形成するように構成されたシステム、方法、及びコンピュータプログラムプロダクトに関する。特に、本発明によれば、オペレーティングシステムのコピー又はアプリケーションのコピーのような特定のリソースのコピーが、リソースが稼働していない(すなわち、オフラインである)間に、ユーザの仕様書に従いリソースの包括的なコピー又はテンプレートコピーに変えられることができる。よって、本発明によれば、ユーザが、より良い効率性及び設定可能性を有する同一のリソースのテンプレートコピーを所望の数だけ生成することができる。このような実施形態は後の時点におけるプロセスの間にテンプレートをカスタマイズすることに関する便利なユーザ体験を提供し得る。
【0016】
本明細書における説明及び特許請求の範囲からより十分に理解されるように、上記実施形態の少なくとも1つの利点は、ユーザ(例えば、システムアドミニストレータ)がカスタマイズされた仮想マシンを、ベースレベルからカスタマイズされた仮想マシンを再び生成することなく多数の別のユーザに効率的に提供できることである。さらに、カスタマイズされた仮想マシンのユーザ又はオーナは、該仮想マシンに関連するハードウェア若しくはソフトウェアの数回の再起動及び/又はリスタートを必ずしも行うことなく、ユーザの仮想マシンのテンプレートを容易に生成することができる。さらに、プロセスは自動的に行われるので、通常のユーザが答え(例えばプロダクトキー、DNS、WINS等)を知らない典型的に困難な判断の幾つかがシステムにより自動的に扱われることができ、例えば、ヘルプデスク又は組織内部の電話通信(administrative call)において最終的にコストを削減する。さらに、本発明によれば、ある準備ソフトウェアの関数呼び出しが別の場所に容易にリダイレクトされることができ、ユーザは離れた場所に配置された仮想マシンからテンプレートを生成することができる。
【0017】
本明細書において使用されている「準備プログラム」は、仮想マシン若しくはオペレーティングシステムのイメージファイル又は仮想マシン若しくはアプリケーションプログラムファイルのイメージ(若しくは実行可能なもの)のような特定のユーザにより指示されたような特定のファイルとインターフェイスするように構成された1組のほぼ(ほとんど)独立したコンピュータ実行可能指示(命令)を意味している。準備プログラムは与えられたテンプレート設定により、特定のカスタマイズされた印を、かかるファイルから除去し得る。例えば、本件特許出願人オペレーティング環境を使用する少なくとも1つの例において、本発明の1または2以上の実施形態により使用され得る1つの準備プログラム(例えば145)は、「シスプレップ(Sysprep)」と称されるシステム準備ツールである。
【0018】
いずれにせよ、幾つかの場合において、本明細書の最初において説明されたように、準備プログラムは、ユーザ又は別のアドミニストレータにより設定された「準備エージェント」とさらにインターフェイスする。準備エージェントはまた、準備プログラムと、関心があるファイル(及び/又は特定のオペレーティングシステムに関する他の適切なインターフェイスコンポーネントを経て)との間のくさび(shim)インターフェイス(例えば図1C)として効率的に動作する1組のコンピュータ実行可能指示である。特に、準備エージェントは、準備プログラムから呼び出し(call)を受信し、リダイレクトするように構成される。少なくとも1つの実施形態において、準備エージェントは、このような受け取り及び/又はリダイレクションの準備プログラムの認識無しに、準備プログラムからの呼び出しを受け取り、リダイレクトする。
【0019】
図1Aは、本発明の実施形態による全体的な概略図を示しており、準備プログラムはオフラインリソースの1または2以上のテンプレートコピーを作成し、インストールする。その後、1または2以上の他のリソース又はコンポーネント(図示せず)(例えば、1または2以上の他の再分配又は格納モジュール若しくはメカニズム)が1または2以上のホストボリュームにおいてリソースのテンプレートコピーを提供し得る。例えば、図1Aは、サーバ105が、現在「オフライン」であるすなわち稼働していないリソース140のような1または2以上のリソースを含んでいることを示している。この例においては、リソース140は、本質的に、サーバ105における割り当てられたハードディスクパーティションにおいて稼働する独立エンティティである「仮想マシン」を含む。
【0020】
仮想マシンとしてリソース140は、ランアプリケーションプログラムのような従来の物理的マシンの利点の大部分又は全てを提供し、他の物理的なマシン又は仮想マシンと相互作用し、ネットワーク又はデータベースアプリケーション/機能を提供する。ある実施形態において、例えば、サーバ105はストレージサーバとして主に機能するメインパーティションを含み、一方リソース140はメールサーバ又はデータベースサーバとして機能する。したがって、ネットワークにおける他のマシンは、一般に、リソース140がサーバ105によりホストされた唯一の仮想マシンであることに気づかない。なぜなら、少なくとも1つの理由として、リソース140は十分にカスタマイズされ、ネットワークにおける他のマシンと比較すると、独立して扱われる(アドレス可能である)からである。
【0021】
図1Aは、ある時点において、ユーザがリソース140を複製することを望んでいることをさらに示している。例えば、ユーザは、様々なソフトウェアの設定、アップデート、およびカスタマイズがリソース140に適用された方法を好んでいるので、これらソフトウェアのカスタマイズを取り消す又は除去することから始めること無く、別のホストにおいて使用するためにリソース140を複製したいと思っている。よって、図1Aは、準備プログラム145が、該準備プログラム145がオフラインである間に、リソースとインターフェイスし、対応するテンプレートコピー140aを生成することを示している。その後、これらテンプレートは、別々のボリューム(すなわち165、180)におけるホスト110及び115に送信され、インストールされることができ、さらに適宜カスタマイズされてもよい。適切にカスタマイズされると、その後、リソース140のこれら新しいバージョン(すなわちリソース140b、140c)は、独立したエンティティとして見なされることができ、どの点から見てもネットワークにおける他のユーザに対する新しいマシンである。
【0022】
図1Bは、図1Aにおける概略図のさらに詳しい図を示し、上記において説明した準備プログラム145は準備エージェント150とインターフェイスし、リソース140のテンプレート140aを生成する。特に、図1Bは、サーバ105が複数の異なるマシン及び/又は仮想マシンを含み、よって所定の場合、仮想マシンライブラリとして機能することを示している。例えば、図1Bは、サーバ105が、メインボリューム160(「c:\」)並びに追加の仮想マシンボリューム170(「x:\」)及び175(「z:\」)に記憶された別個のエンティティを含んでいることを示している。この例におけるこのようなボリュームの各々は、それ自体別個にカスタマイズされたオペレーティングシステムを有する特定のリソースを含んでいる。例えば、ボリューム160は、該ボリューム160に記憶及び/又はインストールされたリソース130を有し、一方、ボリューム170及び175は、該ボリューム170及び175にそれぞれ記憶及び/又はインストールされたリソース135及び140を有している。この場合において、リソース135及び140は現在オフラインである(すなわち「オフラインリソース」125)。
【0023】
説明の都合上、この特定の例は、ボリューム160、170、175等の各々が、特定のドライブレターを指定することにより識別可能である場合を示している。しかしながら、これは本発明においては必須ではない。例えば、ドライブ経路は、所定のオペレーティングシステムに適切なグローバル一意識別子(「GUID」)により指定することができる。別の場合において、ドライブ経路はGUIDを用いずに指定することができる。例えば、ドライブ経路は、取り付けられていないボリューム(アンマウントされているボリューム)、ドライブレター(たとえば取付ポイント)を有していない取り付けられたボリューム(マウントされたボリューム)、ドライブレターを有する取り付けられたボリューム、又は移動可能なスナップショットを指定することができる。最終的には、特定のボリュームを取り扱う方法だけが必要である。よって、本出願における特定のドライブ又はファイル経路の図及び指定は、説明の都合上、少なくとも1つの可能な実施形態を示している。
【0024】
いずれにせよ、前述したように、各リソースは、通常、少なくとも基礎の印に関して別々にカスタマイズされ、該リソースが局所的なコンピュータシステム又は離れた場所にあるコンピュータシステムにより識別されることを可能にする。例えば、図1Bは、リソース130は「カスタム印a、b、c」を含み、一方、リソース135は「カスタム印c、d、e」を含み、リソース140は「カスタム印c、f、g」を含んでいることを示している。とりわけ、この場合における各リソースは、ドメイン名、時間帯設定、又は共有され得る幾つかの他の印若しくはプロパティを示しているかもしれない少なくとも1つの共通の印「c」を有している。しかしながら、各リソースは、リソース130については「a、b」、リソース135については「d、e」、リソース140については「f、g」のような特有の印をさらに含んでいる。例えば、共通の印「c」は共通のネットワークドメイン名メンバーシップ(membership)であるかもしれなく、一方、特有の印「a、b」、「d、e」、及び「f、g」は特有のコンピュータ名、オーナアカウント、及び構造設定等であるかもしれない。
【0025】
図1Bは、各リソースが、様々なソフトウェアのバージョン、アップデート、及び/又はパッチ等により別々にカスタマイズされ得ることをさらに示している。例えば、リソース130及び135は「ソフトウェアアップデートx、y、z」を含み、一方、リソース140は「ソフトウェアアップデートv、y、及びz」を含んでいる。ある時点において、ユーザはリソース140が、幾つかの理由により、例えばアップデート「x、y、z」ではなく、アップデート「v、y、z」に基づくように稼働する方法を好むように決定してもよい。このように、ユーザは、関連したソフトウェアアップデートを残すが、コンピュータ名、オーナアカウント、又はサマータイム設定等のようなカスタム印を除去してあるリソース140のテンプレートを生成する決定をしてもよい。
【0026】
よって、ユーザは、ボリューム「z:\」175を介してリソース140をターゲットとするテンプレート設定155を準備し、該テンプレート設定155はカスタム印「f及びg」だけを除去する特定の要求を含んでいる。ある実施形態において、テンプレート設定155は、準備プログラム145に提供され且つユーザインターフェイスを介して受信した入力に応じて生成された単純な電子データである。別の場合、テンプレート設定155は、別のプログラムを用いて別個に生成されたファイル又はコンポーネント(要素)であってもよく、準備プログラム145は該ファイル又はコンポーネントにデータを単に受信する。いずれにせよ、図1Bは、準備プログラム145が、該準備プログラム145が準備エージェント150を介して実行するテンプレート設定155を含むことをさらに示している。
【0027】
図1Cに示したように、例えば、準備エージェント150は、準備プログラム145と、ボリュームハードドライブマウンタ195のような別の適切なコンポーネントとの間のくさびとして実際に機能し、リソースのための対応するファイルと直接インターフェイスすることができる。このように、準備エージェント150は少なくとも部分的にシールドとして機能し、準備プログラム145により形成される関数呼び出しは、テンプレート設定により、準備プログラム145が実行しているオペレーティングシステムではなく、別のオフラインボリュームにセットアップするように指示され得る。すなわち、準備エージェント150は関数呼び出しを適切なターゲットにリダイレクトし、これによって準備プログラム145が、準備プログラム145及び準備エージェント150がインストールされているリソース130ではなく、リソース140だけからテンプレートを形成することを確実にする。
【0028】
再び図1Bを参照すると、この図は、準備エージェント150が、オフラインソース140からカスタム印「f、g」を取り除く指示を含む準備プログラム145の関数呼び出しをリダイレクトしていることを示している。ある実施形態において、準備プログラム145はリソース140から直接1または2以上の特定の印を単純に取り除き、ユーザはリソース140がオンラインに戻される前にカスタム印を再設定する必要がある。別の実施形態において、ユーザは、リソース140から印を直接除去することなく、他のファイルへのフィルタ関数呼び出し及びコピーの結果をフィルタする。さらに別の実施形態において、ユーザはリソース140のオフラインファイルを別の位置にまずコピーし、その後テンプレート設定155に含まれる印を取り除く。どのように構成されようと、準備プログラム145の関数呼び出しは、リソース140に特定された印を取り除かせ、最小の変更(distruption)により所望の数のテンプレートコピー140aを得ることができる。前述したように、その理由の1つは少なくとも、これら関数呼び出しの実行がリソース140の再起動すなわちリスタートをさらに要求しないからである。
【0029】
例えば、仮想マシンによれば、準備エージェント150を介する準備プログラム145は、対応するリソース(すなわち、リソースイメージファイル)の仮想ハードディスク(例えば、ボリューム175)を設けることができる。あるいは、準備プログラム145は、ボリュームを設ける(マウントする)必要なくリソースファイルを単に読み取るか、リソースファイルに単に書き込むように構成されてもよい。その後、準備プログラム145は、例えば、デバッグモードにおける新しいプロセスとして準備エージェント150を起動することにより、適切なフラグを有する準備エージェント150をセットアップすることができる。準備エージェント150を起動するとき、準備プログラム145はテンプレート設定155に従い準備エージェント150をセットアップし、ファイルシステムに対する全ての呼び出しを捕捉し、システムレジストリに対する全ての呼び出しを捕捉し、及び実行を成功させるのに必要な別の呼び出しの全てを捕捉し得る。その後、準備プログラム145は、適切な関数呼び出しを準備エージェント150に送信することを始め、該準備エージェント150は、その後これら関数呼び出しをセットアップ(すなわち、テンプレート設定155)に基づきリダイレクトする。例えば、リソース130からカスタマイズされた印を除去する準備プログラム145からのコマンドは、準備エージェント150によってリソース140にリダイレクトされる。
【0030】
適切なカスタマイズが除去されると、図1Bは、新しく生成されたテンプレート140aが所望の他の場所にインストールされることをさらに示している。例えば、図1Bは、サーバ105が、リソーステンプレート140a及び1組の新しい印185をホスト110におけるボリューム「p:\」に提供し、リソース140bを生成することを示している。また、図1Bは、サーバ105が、リソーステンプレート140a及び新しい印190をホスト115におけるボリューム「j:\」に提供し、リソース140cを生成することを示している。両方の場合において、リソース140の新しい複製物(iteration)(すなわちリソース140b−c)は要求されるソフトウェアアップデート「v、y、z」及びカスタム印「c」を保持している。それにもかかわらず、図1Bは、リソース140bが、リソース140bについては「h、i」、リソース140cについては「j、k」のような追加の印を含むことにより少なくとも固有である(識別可能である)ことを示している。前述したように、これら固有の印は、コンピュータネーム、又は他の適切な設定情報のような任意の数のアイテムに対応することができる。
【0031】
リソーステンプレート140aの新しいインストールの間に新しい印185、190を設ける複数の異なる方法がある。前述したように、例えば、これら設定は、リソース140から印を取り除くときに、ユーザインターフェイスプロンプトを介して準備プログラム145に前もって設けられてもよく、又はフロッピー(登録商標)ディスクのような異なる格納媒体からいかなる時点においても受信することができる。別の場合、準備プログラム145(又は類似するプログラム)がホスト110、115において再び使用され、インストールにおいて適切なユーザインターフェイスを介してこの情報を使用者に与える。
【0032】
さらに、本発明の範囲内において上記において説明したコンポーネント及びメカニズムに対する多数の変形例が存在する。例えば、カスタム印及び/又は特定のソフトウェアのコンポーネント若しくはアップデートを局所ボリュームにインストールされたターゲットとなるリソースから取り除くことに加え、システムアドミニストレータは離れた場所のオフラインリソースにおいてこれら機能を実行し得る。例えば、システムアドミニストレータは、準備プログラム145及び準備エージェント150を使用して、大企業における全てのオフラインリソースの所定のソフトウェアアップデートを取り除いてもよい。また、システムアドミニストレータは、準備プログラム145及び準備エージェント150を使用して、前の被雇用者により使用されていた仮想マシンから全てのカスタム印を取り除いてもよい。さらにシステムアドミニストレータは、準備プログラム145及び準備エージェント150を使用して、企業におけるパーソナルステーションにおいて使用するためのオペレーティングシステムの特にカスタマイズされたバージョンをセットアップして、その後、東側(右側)のステーションにおいて最小の労力によりインストールされ得るコピーを生成する。
【0033】
さらに、各ユーザは様々な個人設定においてこれらコンポーネントを使用し得る。例えば、ユーザは、インストールされ所定の調整をされた全てのパッチ及び様々なセキュリティソフトウェアを有するオペレーティングシステムの稼働中のアップデートされたバージョンのコピーを生成し、関連するプロダクトキーを除去し、その後、前記プロダクトキーと異なるが有効なプロダクトキー及びコンピュータ名等を有する友達のコンピュータ又は家族のコンピュータにこのコピーを再びインストールすることができる。よって、図1A乃至1Cは、広範囲の設定において使用され、良い効率性及び精度を有する現在のリソースのテンプレートを生成し得る多数の概略構成及びコンポーネントを示している。
【0034】
本発明の実施形態は特定の結果を達成する一連の異なるステップを含む1または2以上の方法のフローチャートとして表現して説明され得る。特に、図2は、オフラインリソースのテンプレートコピーを生成する準備プログラム145及び準備エージェント150に関するステップ(動作・行為)のフローチャートを示している。図2のステップは図1A乃至図1Cにおいて説明したコンポーネント及びメカニズムを参照しつつ以下において説明される。
【0035】
前置き的な事柄として、本明細書において、「第1の」コンポーネント、「第2の」コンポーネント、又は「第3の」コンポーネント(例えば、第1の格納スペース、第2の格納スペース、又は第3の格納スペース)という表現が時々用いられる。しかしながら、このような名称は単に異なるコンポーネントであることを示し、コンポーネントがアクセスされるかもしれない時・点に関わりなく、「第1の」コンポーネント又は格納スペースが、「第2の」コンポーネント若しくは格納スペース又は「第3の」コンポーネント若しくは格納スペースと異なっていることだけを必要とする。例えば、第1の格納スペース、及び第2の格納スペース又は第3の格納スペースの使用は、これら第1の格納スペース、第2の格納スペース、又は第3の格納スペースが少なくともお互いと異なっていることを意味し、これら表現・名称は、第1の格納スペース、第2の格納スペース、又は第3の格納スペースが、必然的に与えられること、アクセスされること、生成されること、又は特定の順序すなわち順番で該格納スペースにおいて行われる他のステップを有することを必要としない。
【0036】
例えば、図2は、少なくとも1つのソフトウェアリソースがオフラインである間に、1または2以上のソフトウェアリソースの少なくとも1つのテンプレートを生成する準備プログラム145に関する方法を示し、当該方法はオフラインリソースを識別するステップ200を含んでいる。ステップ200はオフラインソフトウェアリソースを識別するステップを含んでいる。例えば、準備プログラム145はユーザからの入力を受信し、ボリューム「z:\」175に配置されたリソース140からテンプレートを生成する。
【0037】
また、図2は、仮想マシンがオフラインである間に仮想マシンを複製する準備エージェント150に関する方法を示し、仮想マシン及び複製の仮想マシンが稼働しているとき区別可能な識別印を有している。当該方法は、オフラインファイル識別印を受信するステップ210を含んでいる。ステップ210は、第1の格納スペースにインストールされた仮想マシンファイルの識別印を受信するステップを含んでいる。例えば、準備エージェント150は、準備プログラムからの指示を受信し、ボリューム「z:\」175におけるリソース140をターゲットとする。仮想マシンの特定の場合、リソース140は仮想ハードディスク(すなわち、「.vhd」、「VHD」、又は「.vhd」)ファイルのような単一のファイルとして識別可能であってもよい。幾つかの場合において、仮想マシンは、複数の「.vhd」ファイルとして代わりに示されてもよい。
【0038】
図2は、準備プログラム145に関する方法が、テンプレート設定を識別するステップ220を含んでいることを示している。ステップ220は1または2以上のテンプレート設定を識別するステップを含み、当該1または2以上のテンプレート設定はソフトウェアリソースから除去されるべき1または2以上の印を識別する。例えば、準備エージェント145は、カスタム印「f、g」を除去するが、所望のソフトウェアアップデート「v、y、z」のいずれか1または2以上を保存する指示を有するテンプレート設定155を受信する。さらに、図2は準備プログラム145に関する方法が準備プログラムを実行するステップ230を含んでいることを示している。ステップ230は第1のオペレーティングシステムにおいて、テンプレート設定に従って印を除去するように構成された準備プログラムを実行するステップを含んでいる。例えば、図1Bは、準備プログラム145がリソース130(すなわち、対応するオペレーティングシステム)において稼働及び/又は実行されているが、テンプレート設定155に従ってリソース140に関数呼び出しをリダイレクトしていることを示している。
【0039】
よって、図2は、準備プログラム145に関する方法が、関数呼び出しを、識別されたリソースにリダイレクトするステップ240をさらに含むことを示している。ステップ240は、準備プログラムの1または2以上の関数呼び出しを、識別されたソフトウェアリソースにリダイレクトするステップを含み、1または2以上のテンプレート設定により識別される印はソフトウェアリソースから除去され、ソフトウェアリソースのテンプレートが生成される。例えば、準備プログラム145は準備エージェント150をデバッグモードにおける新しいプロセスとして始め、テンプレート設定155に従って全ての適切なリダイレクト機能により準備エージェント150をセットアップする。よって、準備プログラム145が関数呼び出しを送信してカスタム印を除去するとき、該呼び出しは、ターゲットとなるソフトウェアに適切にリダイレクトされ、テンプレートが最終的に生成される。
【0040】
同様に、図2は、準備エージェント150に関する方法が1または2以上の関数呼び出しを受信するステップ250を含むことをさらに示している。ステップ250は第2の格納スペースにインストールされた準備プログラムから1または2以上の関数呼び出しを受信するステップを含み、1または2以上の関数呼び出しは1または2以上の印の除去を要求している。例えば、図1B及び図1Cに示したように、準備エージェント150は準備プログラム145と直接インターフェイスして、テンプレート設定155により示された指示を受信し、これら指示を実行する。このように、準備エージェント150は、準備プログラム145がメインボリューム160において実行されるが、意図された取り除き機能は適切なオフラインターゲット(例えばリソース140)のボリューム(例えば、175)においてのみ行われることを確実にし得る。
【0041】
さらに、図2は、準備エージェント150に関する方法が、ファイルにおいて1または2以上の関数呼び出しを実行するステップ260を含むことを示している。ステップ260は1または2以上の関数呼び出しを仮想マシンファイルにおいて実行するステップを含み、1または2以上の印が第1の格納スペースにおいて除去される。例えば、仮想マシンファイルにより表される仮想マシンの特定の場合において、準備エージェント150は仮想マシンファイルと直接インターフェイスし(又はボリュームハードディスクマウンタ195と直接インターフェイスし)、特定のカスタム印(例えば、リソース140の「f、g」)又は望まれないソフトウェアコンポーネントを仮想マシンファイルから除去する。準備エージェント150によるこの実行は、サーバ105において局所的に行われるか、ネットワーク上の離れた場所の関数呼び出しを介して行われる。
【0042】
図2は、準備エージェント150に関する方法が、オフラインファイルのテンプレートコピーを生成するステップ270を含むことさらに示している。ステップ270は仮想マシンファイルのテンプレートコピーを生成するステップを含んでいる。例えば、図1Bに示したように、リソース140において実行すると、ソフトウェアアップデート「v、x、z」及びカスタム印「c」だけを含むテンプレートコピー140が生成される。
【0043】
よって、本明細書において説明した方法及び対応するコンポーネントは、別の利用可能な方法及びコンポーネントよりも、より効率的にオフラインソフトウェアリソースのテンプレートを生成する1または2以上の実施形態を提供する。特に、本発明の実施形態は、比較的迅速であり、信頼性があり、及びエンドユーザ対話(interaction)又はエンドユーザ証明(credential)を典型的には要求しないプロセスを用いてテンプレートが生成され、カスタマイズを行うことを可能にする。さらに、テンプレートを準備する前に、ソフトウェアリソース(すなわち、仮想マシン)を稼働させること又は追加のソフトウェアコンポーネントをソフトウェアリソースにインストールすることは通常必要としない。さらに、上記ステップは仮想マシンに対して少しインターフェイスすることにより全て行われる。つまり、これはユーザのログオン又はユーザプロフィールの作成等を要求することなく行われる。さらに、これら準備プログラム及びコンポーネントは幅広いリソースにおいて使用されるのに十分汎用性があり、これら準備プログラム及びコンポーネントは、対応するターゲットソフトウェアリソースが様々なバージョン変更をするたびにアップデートされることを必ずしも必要としない。
【0044】
上記において説明したように、効率的にテンプレートを生成するこの能力は、様々なコンピュータステーションにカスタマイズ又はアップデートされたソフトウェアリソースをインストールしたいと望む大企業にとって非常に有益であり得る。特に、本発明の実施形態は、このようなコピーが従来必要とされた場合よりも少ない時間で且つ少ない労力で形成されることを可能にし、このようなコピーが従来必要とされた場合よりも少ない時間で且つ少ない労力で個々にカスタマイズされたポイントにインストールされることを可能にする。このような利点は、製品の寿命の間にソフトウェア及び/又は個々の仕様の観点から何度もカスタマイズされる仮想マシン、オペレーティングシステム、及びアプリケーションプログラムを複製するのに役立つ。
【0045】
一例として、これだけに限定されないが、かかるコンピュータ可読媒体はRAM、ROM、EEPROM、CD−ROM若しくは別の光学的なディスク格納部・装置、磁気ディスク格納部・装置若しくは別の磁気格納デバイス、又はコンピュータ実行可能指示又はデータ構造の形態で所望のプログラムコード手段を行う又は記憶するのに使用され且つ汎用コンピュータ若しくは特定用途のコンピュータによりアクセスされ得る別の媒体であってもよい。情報が、ネットワーク又は別の通信接続(有線、無線、又は有線若しくは無線の組み合わせ)でコンピュータに送信されたとき、コンピュータは、前記接続をコンピュータ可読媒体と適切に見なす。よって、このような接続はコンピュータ可読媒体と適切に称される。上記したものの組み合わせがコンピュータ可読媒体の範囲内に含まれるべきである。
【0046】
コンピュータ実行可能指示は、例えば、汎用コンピュータ、特殊用途コンピュータ、又は特殊用途のプロセスデバイス(処理装置)に特定の機能若しくは機能のグループを実施させる指示及びデータである。本発明の内容は、特に構造の特徴及び/又は方法のステップについて説明してきたが、特許請求の範囲に記載された本発明の内容は上記において説明した特定の特徴又はステップに限定されない。そうではなく、上記において説明した特定の特徴及びステップは、請求の範囲の実施の例示的な形態として説明されている。
【0047】
本発明は、本発明の精神又は本質的な特徴から離れることなく別の特定の形態で実施されてもよい。上記において説明した実施形態は例示目的だけとして考えられるべきであり、限定するものと考えられるべきではない。よって、本発明の範囲は前述の説明ではなく、特許請求の範囲により示されている。特許請求の範囲の均等な意味及び範囲内にある全ての変更・変形が本発明の範囲内に含まれるべきである。
【図面の簡単な説明】
【0048】
【図1A】準備プログラムがオフラインリソースの1または2以上のテンプレートコピーを生成し、1または2以上のホストボリュームにリソースをインストールする、本発明の実施形態の全体的な概略図である。
【図1B】準備プログラムが準備エージェントとインターフェイスし、1つの格納媒体にリソースのテンプレートを生成して、別のホストボリュームにおける別の格納媒体に、かかるリソースのカスタマイズされたバージョンをインストールする図1Aに示した概略図の詳しい図である。
【図1C】準備プログラムからの関数呼び出しを適切なターゲットリソースファイルにリダイレクトするように構成された、本発明による1組のアプリケーション層を示す図である。
【図2】オフラインリソースのテンプレートコピーを生成するための、準備プログラム及び準備エージェントに関する一連のステップを含むフローチャートである。

【特許請求の範囲】
【請求項1】
1または2以上のソフトウェアリソースが使用され、1または2以上のコンピュータシステムにおいて1または2以上の機能を実行するコンピュータ化された環境において、前記少なくとも1つのソフトウェアリソースがオフラインである間に前記1または2以上のソフトウェアリソースの少なくとも1つのテンプレートを生成する方法であって、
前記方法は、
オフラインソフトウェアリソースを識別するステップと、
前記ソフトウェアリソースから除去されるべき1または2以上の印を識別する1または2以上のテンプレート設定を識別するステップと、
第1のオペレーティングシステムにおいて、前記テンプレート設定に従って印を除去するように構成された準備プログラムを実行するステップと、
前記準備プログラムの1または2以上の関数呼び出しを前記識別されたソフトウェアリソースにリダイレクトし、前記1または2以上のテンプレート設定によって識別された前記印が前記ソフトウェアリソースから除去され、前記ソフトウェアリソースのテンプレートが生成される、ステップと
を備えることを特徴とする方法。
【請求項2】
前記識別されたオフラインソフトウェアリソースは、仮想マシンのオフラインオペレーティングシステムであることを特徴とする請求項1に記載の方法。
【請求項3】
前記識別されたオフラインソフトウェアリソースは、前記第1のオペレーティングシステム又は第2のオペレーティングシステムのいずれかにインストールされるオフラインアプリケーションプログラムであることを特徴とする請求項1に記載の方法。
【請求項4】
前記準備プログラムは、前記1または2以上のテンプレート設定を受信するように構成された準備エージェントにおいて実行されることを特徴とする請求項1に記載の方法。
【請求項5】
前記準備エージェントは、前記1または2以上の関数呼び出しを、リソースマウンタを介して前記識別されたソフトウェアリソースに送信することを特徴とする請求項4に記載の方法。
【請求項6】
前記識別されたオフラインソフトウェアリソースはボリュームハードディスクファイルであり、前記リソースマウンタは、ボリュームハードディスクマウンタ及びアプリケーションの少なくとも1つ、または対応する物理ディスクにアクセスを提供するように構成されるシステムライブラリであることを特徴とする請求項4に記載の方法。
【請求項7】
前記ボリュームハードディスクファイルは、仮想マシンに対応することを特徴とする請求項6に記載の方法。
【請求項8】
前記1または2以上のテンプレート設定は、コンピュータ名、ユーザ名、企業名、ドメイン名、又はネットワークアドレスの1または2以上のいずれかの表示を有するシステム又はユーザ設定を含むことを特徴とする請求項1に記載の方法。
【請求項9】
前記1または2以上のテンプレート設定は、サマータイム設定又は時間帯設定の1または2以上のいずれかの表示を有するシステム又はユーザ設定を含むことを特徴とする請求項1に記載の方法。
【請求項10】
前記1または2以上のテンプレート設定は、リソースプロダクトキー、ソフトウェアバージョン、若しくはセキュリティ設定の1または2以上のいずれかの表示を有するシステム又はユーザ設定を含むことを特徴とする請求項1に記載の方法。
【請求項11】
コンピュータ化されたシステムに前記ソフトウェアテンプレートをインストールするステップをさらに含むことを特徴とする請求項1に記載の方法。
【請求項12】
前記ソフトウェアテンプレートに対して1または2以上のカスタムされた印を入力し、前記識別されたオフラインソフトウェアリソースと異なる別のソフトウェアリソースが生成されるステップをさらに備えることを特徴とする請求項11に記載の方法。
【請求項13】
前記1または2以上のカスタマイズされた印は、記憶媒体又はネットワークインターフェイスのいずれか1つから受信されることを特徴とする請求項11に記載の方法。
【請求項14】
前記1または2以上のカスタマイズされた印は、ユーザインターフェイスを介して受信されることを特徴とする請求項11に記載の方法。
【請求項15】
1または2以上の仮想マシンを含むコンピュータ化された環境において、仮想マシンがオフラインである間に前記仮想マシンを複製する方法であって、前記仮想マシン及び前記複製された仮想マシンは、稼働しているときに識別可能な識別印を有し、
前記方法は、
第1の格納スペースにインストールされた仮想マシンファイルの識別印を受信するステップと、
第2の格納スペースにインストールされた準備プログラムから1または2以上の関数呼び出しを受信するステップであって、前記1または2以上の関数呼び出しは1または2以上の印の除去を要求する、ステップと、
前記仮想マシンファイルにおいて前記1または2以上の関数呼び出しを実行し、前記1または2以上の印が前記第1の格納スペースにおいて除去される、ステップと、
前記仮想マシンファイルのテンプレートコピーを生成するステップと
を備えることを特徴とする方法。
【請求項16】
第3の格納スペースに前記仮想マシンファイルのテンプレートコピーをインストールするステップをさらに備えることを特徴とする請求項15に記載の方法。
【請求項17】
前記仮想マシンファイルから除去された、前記除去された1または2以上の印を記憶するステップをさらに含むことを特徴とする請求項15に記載の方法。
【請求項18】
前記仮想マシンファイルは、第1のソフトウェアアップデート及び第2のソフトウェアアップデートをさらに含むことを特徴とする請求項15に記載の方法。
【請求項19】
前記1または2以上の印は、前記第2のソフトウェアアップデートを除去するが前記第1のソフトウェアアップデートを除去しない要求を含んでいることを特徴とする請求項18に記載の方法。
【請求項20】
1または2以上のソフトウェアリソースが1または2以上のコンピュータシステムにおいて1または2以上の機能を実行するために使用されるコンピュータ化された環境において、コンピュータプログラムプロダクトは、前記コンピュータプログラムプロダクトに記憶されたコンピュータ実行可能指示を有し、実行されたとき、1または2以上のプロセッサに前記少なくとも1つのソフトウェアリソースがオフラインである間、前記1または2以上のソフトウェアリソースの少なくとも1つのテンプレートを生成する方法を実行させ、
前記方法は、
オフラインソフトウェアリソースを識別するステップと、
前記ソフトウェアリソースから除去されるべき1または2以上の印を識別する1または2以上のテンプレート設定を識別するステップと、
第1のオペレーティングシステムにおいて、前記テンプレート設定に従って印を除去するように構成された準備プログラムを実行するステップと、
前記準備プログラムの1または2以上の関数呼び出しを、前記識別されたソフトウェアリソースにリダイレクトし、前記1または2以上のテンプレート設定によって識別された前記印は前記ソフトウェアリソースから除去され、前記ソフトウェアリソースのテンプレートが生成されることを特徴とする方法。

【図1A】
image rotate

【図1B】
image rotate

【図1C】
image rotate

【図2】
image rotate


【公表番号】特表2009−532757(P2009−532757A)
【公表日】平成21年9月10日(2009.9.10)
【国際特許分類】
【出願番号】特願2009−502788(P2009−502788)
【出願日】平成19年2月21日(2007.2.21)
【国際出願番号】PCT/US2007/004636
【国際公開番号】WO2007/117363
【国際公開日】平成19年10月18日(2007.10.18)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.EEPROM
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】