(57)【特許請求の範囲】
【請求項１】
第１暗号鍵を仮想化して仮想システムのための第２暗号鍵を生成する方法であって、前記方法は、
コンピュータが、前記第１暗号鍵を取得するステップと、
前記コンピュータが、判定手段により、階層化された前記仮想システムの層の数を判定するステップと、
前記コンピュータが、排他的ＯＲ演算手段により、判定した前記層の数に基づいて決まるマスクと前記第１暗号鍵との間で排他的ＯＲ演算を行って、前記第２暗号鍵を生成するステップと、
を含む方法。
【請求項２】
前記仮想システムの層の数が１である場合、前記マスクは前記仮想システムに対して生成されたマスクを含む、請求項１に記載の方法。
【請求項３】
前記仮想システムの層の数が１より大である場合、前記マスクは、複数のマスクと一回以上の排他的ＯＲ演算を行って得られた派生マスクであり、前記複数の数は前記層の数によって決まる、請求項１に記載の方法。
【請求項４】
前記方法は、前記コンピュータが、検証パターン生成手段により、前記第２暗号鍵の妥当性確認のため使用可能な検証パターンを生成するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記方法は、前記コンピュータが、検証パターン生成手段により、前記マスクと前記第１暗号鍵の妥当性確認のために使用可能な第１検証パターンとの間で排他的ＯＲ演算を行って、前記第２暗号鍵の妥当性確認のため使用可能な第２検証パターンを生成するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記方法は、前記コンピュータが、検証パターン生成手段により、別のマスクと前記第１暗号鍵の妥当性確認のために使用可能な第１検証パターンとの間で排他的ＯＲ演算を行って、前記第２暗号鍵の妥当性確認のため使用可能な第２検証パターンを生成するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記マスクは、前記第２暗号鍵を用いる仮想システムのライフ期間の間は一意的な一意的番号である、請求項１に記載の方法。
【請求項８】
請求項１乃至７のいずれか１項に記載の方法の全ステップを実行するようになされた手段を含むシステム。
【請求項９】
請求項１乃至７のいずれか１項に記載の方法の全ステップをコンピュータに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に仮想コンピューティング環境内での処理に関し、具体的には、かかる環境内でのセキュリティの提供に関する。
【背景技術】
【０００２】
仮想環境内でのセキュリティの提供の一つの態様に、暗号デバイスによって遂行される暗号オペレーションで使われる暗号鍵を保護することがある。一つの例において、これらの鍵は暗号化を介して保護される。例えば、暗号鍵は、暗号化された暗号鍵を提供するマスタ鍵の下で暗号化される。このマスタ鍵は、暗号デバイスのセキュリティ境界の内側に保管されている。暗号化された暗号鍵は、暗号デバイスのセキュリティ境界の外側に格納して、その後暗号オペレーションに使用することができる。
【０００３】
単一プロセッサ・システムは、それに関連する１セットのマスタ鍵を有する。すなわち、単一プロセッサ・システムは、各種の暗号鍵に対するマスタ鍵を有する。しかしながら、区分編成環境においては、各ゾーンまたは区分に対し１セットのマスタ鍵がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
区分編成システムの各区分はそれ自体のマスタ鍵のセットを持っているが、それらの鍵は、慣行的にその区分内の全ての仮想システムに共用されている。本明細書での使用において、各仮想システムは、仮想環境で実行されるコンピューティング・システムである。例えば、これは、Ｌｉｎｕｘ（Ｒ）などのゲスト・オペレーティング・システムの制御下のリソース（例、一つ以上のＣＰＵ、メモリ、Ｉ／Ｏなど）を包含する。しかして、この用語「ゲスト」は仮想システムをいう。セキュリティの向上を図るためには、各ゲストがそれ自体の仮想マスタ鍵のセットを持つことが望ましい。しかして、ある区分内で実行される各ゲストに対し、各別個の仮想鍵を備える機能が望まれている。
【０００５】
さらに、他の暗号鍵またはその他の鍵など、マスタ鍵以外の鍵を仮想化する機能も求められている。
【課題を解決するための手段】
【０００６】
暗号鍵を仮想化するためのコンピュータ・プログラム製品の提供を介して、従来技術の欠点を克服し、さらなる利点を提供する。このコンピュータ・プログラム製品は、処理回路による読み取りが可能で、ある方法を遂行するため処理回路が実行する命令を格納する、記憶媒体を含む。この方法は、例えば、暗号鍵を取得するステップと、あるオペレーション、暗号鍵、およびマスクを使って、仮想暗号鍵を生成するステップとを包含する。
【０００７】
また、本発明の一つ以上の態様に関連する方法およびシステムが本明細書で説明され、これらは特許請求されている。さらに、本発明の一つ以上の態様に関連するサービスが本明細書で説明され、これらにも特許請求されているものがある。
【０００８】
本発明の技法を介して、さらなる特質および利点が実現される。本発明の他の実施形態および態様が本明細書で詳細に説明され、これらは、請求された本発明の一部と見なされる。
【０００９】
本発明の一つ以上の態様は、本明細書に添付の請求項に範示するように、具体的に指摘され明確に請求される。本発明の前述および他の目的、特質、および利点は、添付の図面と併せ以下の詳細な説明によって明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一つ以上の態様を組み込み使用するためのコンピューティング環境の一例を示す。
【図２】本発明のある態様による、使用される一つ以上のゲスト・マスタ鍵のマスクを包含する、ゲストの制御ブロックの一例を示す。
【図３】本発明のある態様による、仮想鍵を設けるための論理の一つの実施形態を示す。
【図４】本発明のある態様による、仮想鍵の下で暗号化された暗号鍵を使用するための論理の一つの実施形態を示す。
【図５】本発明の一つ以上の態様を組み込んだコンピュータ・プログラム製品の一つの実施形態を示す。
【発明を実施するための形態】
【００１１】
本発明のある態様によって、暗号鍵を仮想化するための機能が提供される。一つの具体例において、他の暗号鍵を保護するため使われるマスタ鍵は、コンピューティング環境の区分の各ゲストがそれ自体のマスタ鍵のセットを持つことができるように、仮想化される。このマスタ鍵のセットは、保護対象の各種暗号鍵（例、ＡＥＳまたはＤＥＡ）に対する鍵を包含し、しかして、このセットは一つ以上のマスタ鍵を含み得る。
【００１２】
図１を参照しながら、本発明の一つ以上の態様を組み込み使用するためのコンピューティング環境の一つの実施形態を説明する。コンピューティング環境１００は、例えば、一つ以上の区分またはゾーン１０４（例、論理区分１〜Ｎ）に分割された中央処理装置複合体（ＣＰＣ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｏｒ  ｃｏｍｐｌｅｘ）１０２、少なくとも一つのホスト１０６（例、ハイパーバイザなどの制御プログラム）、一つ以上の中央処理装置１０８、および入力／出力サブシステム１１０を包含する。
【００１３】
各論理区分１０４は、別々のシステムとして機能することができる。すなわち、各論理区分は、独自にリセットし、オペレーティング・システムを初期的にロードし、必要に応じ、異なるプログラムを使って作動することができる。ある論理区分で実行されているオペレーティング・システムまたはアプリケーション・プログラムはシステム全体にアクセスを有するように見えるが、実際には、その一部が利用できるだけである。
【００１４】
中央処理装置１０８は、これら論理区分に割り当て可能な物理的プロセッサ・リソースである。例えば、各論理区分１０４は、一つ以上の論理プロセッサを包含し、その各々は、その区分に動的に割り当てが可能な、物理的プロセッサ・リソースの全体または割り当て分に相当する。具体的には、物理的リソースは、ホスト１０６に所有され、ホストによって、割り当て分の物理的リソースが、ホスト１０６によって管理される区分群の中で実行されている一つ以上のゲスト１１２に、送られる。例として、ホストは、プロセッサ１０８で実行されるマイクロコード中に実装する、またはマシン上で実行されているホスト・オペレーティング・システムの一部とすることができる。
【００１５】
各論理区分内で一つ以上の（数十万でさえもの）ゲストを実行することができ、各ゲストはある特定の仮想化レベルで実行することができる。例えば、あるゲストが別のゲスト上でなく、ホスト上（例、ＬＰＡＲ）で実行されている場合、これは仮想化の第一レベルで実行されているといわれる。また一方、ゲスト・オペレーティング・システム（例、Ｌｉｎｕｘ（Ｒ））が一つの別のゲスト・オペレーティング・システム（例、インターナショナル・ビジネス・マシン・コーポレーションが提供しているｚ／ＶＭ（ＩＢＭ社の登録商標）。ｚ／ＶＭ（ＩＢＭ社の登録商標）は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシン・コーポレーションの登録商標である。本明細書で使われている他の名称が、インターナショナル・ビジネス・マシン・コーポレーションまたは他の企業の登録商標、商標または商品名のことがあり得る。）上で実行されている場合、これは仮想化の第二レベルで実行されていることになる（例えば、図１の論理区分２を参照）。ゲストは階層化することができ、層の数により仮想化のレベルが決まる（例えば、図１の論理区分…を参照）。
【００１６】
このコンピューティング環境内にセキュリティを備えるため、暗号オペレーションで使われる暗号鍵がマスタ鍵を用いて暗号化される。コンピューティング環境の各論理区分は、それ自体のマスタ鍵のセット（すなわち、保護対象の各種暗号鍵に対するマスタ鍵）を有する。一つの事例において、各マスタ鍵は、疑似乱数ジェネレータを使ってランダムに生成され、ハードウエア・システム域（ＨＳＡ：ｈａｒｄｗａｒｅ  ｓｙｓｔｅｍ  ａｒｅａ）の安全な部分に格納される。本発明のある態様によれば、論理区分の各ゲストは、それ自体の仮想マスタ鍵を備えている。本明細書で詳しく説明するように、これは、当該論理区分に対するマスタ鍵を取りそれをゲストの各々に対して仮想化することによって達成される。
【００１７】
一つの実施形態において、マスタ鍵などの暗号鍵を仮想化するために、マスクが使われる。各ゲストはそれ自体のマスクを有し、図２に示すように、このマスクは、制御ブロック２００内に格納される。制御ブロックは、当該ゲストに対する一つ以上のマスクを包含することができる。本明細書で説明する実施形態では、仮想化されるのはマスタ鍵であり、従って、ゲストが利用可能な、各種マスタ鍵に対するマスクがある。一種類のマスタ鍵だけがある場合、マスタ鍵マスクが一つだけのことがあり得る。一つの事例において、マスクは、初期点から開始され、番号が用いられる都度１ずつ増分される連番などの一意的番号である。さらなる事例では、この番号は一意的である必要はないが、例えば、重複する可能性が非常に小さな確率の強力な乱数とすることができる。他のやり方も存在する。
【００１８】
ゲストのマスクは、例えば、その下でゲストが実行されているオペレーティング・システムによって割り当てられる。例えば、仮想化の第二レベルにあるゲストのマスクは、ｚ／ＶＭ（ＩＢＭ社の登録商標）オペレーティング・システムなど、仮想化の第一レベルのゲストによって割り当てられる。ゲストのマスクは、そのマスクを生成したオペレーティング・システムによって、そのゲストに対する制御ブロック中に置かれる。マスクは当該ゲストにはアクセス不能で、そのゲストのライフ期間（すなわち、そのゲストがＩＰＬされるまで）同じ状態が続く。
【００１９】
一つの事例において、仮想マスタ鍵を設けるために、マスタ鍵および一つ以上のマスクを使って、排他的ＯＲ（または他の演算）などのブール演算が行われる。仮想マスタ鍵を生成するために使われるマスクの数は、ゲストに対する仮想化のレベルの如何による。例えば、ゲストが仮想化の第一レベルにある場合、一つのマスクが使われ、仮想化の第二レベルであれば、（ブール演算がもたらす可能性のある中間マスクは別として）２つのマスクが使われる等々である。この処理については、図３を参照しながらさらなる詳細を説明する。
【００２０】
図３を参照すると、仮想マスタ鍵など仮想暗号鍵を設けるために使われる論理の一つの実施形態が詳記されている。一つの事例において、この論理は、コンピューティング環境のプロセッサによって、具体的にはその中で実行されるミリコードによって遂行される。さらに、この事例はマスタ鍵の仮想化に関連しているが、他の実施形態では、他の暗号鍵など、マスタ鍵以外の鍵も、同じプロセスを用いて仮想化することができる。一つの事例では、マスタ鍵はミリコードによって生成される。
【００２１】
仮想マスタ鍵を生成するため、最初にステップ３００において、鍵生成の対象となるゲストのレベルについての判定が行われる。この情報は、中央処理装置上で実行されているミリコードに知らされる。検査ステップ３０２で、ゲストの仮想化レベルが１である場合、そのゲストに関連するマスクに、適切なマスタ鍵を使って排他的ＯＲが行われ、ステップ３０４において、そのゲストに対する仮想マスタ鍵が設けられる。具体的には、このゲストに対し制御ブロック（または他の場所）に格納されていたマスクが読み出され、そのマスクと、ゲストが実行されている区分に割り当てられたマスタ鍵とを使ってＸＯＲ演算が行われる。このＸＯＲの結果が仮想マスタ鍵であり、これを使って、暗号鍵を暗号化／復号することができる。
【００２２】
さらに、本発明のある態様によれば、仮想マスタ鍵がまだ有効であるかどうかを判定する処理過程で用いられる、仮想検証パターンも同時に生成される。すなわち、疑似乱数ジェネレータによって生成された検証パターンが各マスタ鍵と関連付けられる。この検証パターンは、マスタ鍵の変化を検出するため使われる。新規のマスタ鍵が生成されれば、新規の検証パターンも生成されることになる。
【００２３】
一つの事例において、仮想検証パターンを生成するために、ステップ３０６において、仮想マスタ鍵を生成するのに使われたのと同じマスクに、マスタ鍵に対して設けられた検証パターンを使って排他的ＯＲが行われる。この演算の結果が、ゲストに対する仮想検証パターンを提供する。この事例において、検証パターンに対して使われたマスクは、仮想マスタ鍵に使われたマスクと同じであるが、別の実施形態では、異なるマスクとすることができる。
【００２４】
検査ステップ３０２に戻って、仮想マスタ鍵を生成する対象のゲストのレベルが１より大きい場合、ゲストのレベルにより決まる数のマスクを使って、一回以上の排他的ＯＲ演算が行われる。例えば、ステップ３０８において、そのゲストに関連するマスクが読み出され、次の最下段レベルのゲストのマスクを使って排他的ＯＲが行われ、派生マスクが提供される。例えば、仮想マスタ鍵を生成する対象のゲストが第二レベルのゲストであれば、そのゲストに対するマスクに、第一レベルのゲストのマスクを使ってＸＯＲが行われ、派生マスクが提供される。
【００２５】
同様に、ステップ３１０において、検証パターンのためゲストに割り当てられたマスクにも、次の最下段レベルのゲストに割り当てられた検証パターン・マスクを使って排他的ＯＲが行われ、派生マスクが提供されて仮想検証パターンを生成するため使われる。ステップ３０８とステップ３１０とにおけるマスクが同一であれば、このステップは省略することができる。
【００２６】
検査ステップ３１２で、仮想鍵を生成する対象のゲストの仮想化のレベルがもうない場合、ステップ３０４において、仮想マスタ鍵を生成するために得られた派生マスクに、そのゲストが実行されている区分のマスタ鍵を使ってＸＯＲが行われ、当該ゲストに対する仮想マスタ鍵が提供される。同様に、ステップ３０６において、仮想検証パターンを生成するために得られた派生マスクに、区分の検証パターンを使ってＸＯＲが行われ、仮想検証パターンが提供される。
【００２７】
検査ステップ３１２に戻って、仮想化のさらなるレベルがある場合は、先にステップ３０８で処理された派生マスクに、ステップ３０８において、次の最下段レベルのマスクを使って排他的ＯＲが行われ、必要または望ましい場合、ステップ３１０において、先にステップ３１０で処理された派生マスクに、次の最下段レベルの検証パターン用マスクを使って排他的ＯＲが行われる。こうして、処理は前述のように続いてゆく。
【００２８】
一つの実施例において、仮想マスタ鍵を使って、暗号鍵を暗号化して暗号化された暗号鍵が提供される。マスタ鍵の下で暗号化するため、暗号変換オペレーションが使われる。この暗号化は、例えば、クリアなデータ暗号化鍵を用いてデータを暗号化する、既存の守秘援助（メッセージ・セキュリティ援助としても知られる）暗号化機能を使って達成される。ミリコードは、ユーザのクリアな鍵をデータとして、マスタ鍵をクリアなデータ暗号化鍵として特定することによって、この機能を実施する。既存の機能は、これらのインプットを取り入れ、アウトプットとして暗号化された鍵を提供する。任意の暗号化機能で十分実施できよう。一つの事例では、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシン・コーポレーションが提供しているｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＢＭ社の登録商標）とともに供給される暗号化機能が使われる。この機能のある実施形態が、「ｚ／Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＢＭ社の登録商標）  Ｐｒｉｎｃｉｐｌｅｓ  ｏｆ  Ｏｐｅｒａｔｉｏｎ，」ＩＢＭ出版、ＳＡ２２−７８３２−０７号、２００９年２月発行、に記載されており、これは当段落で参照することによりその全体が本明細書に組み込まれる。
【００２９】
次に、この派生暗号化鍵および仮想検証パターンが処理の過程で用いられる。一つの事例において、この暗号化鍵および仮想パターンは、暗号機能の処理過程で用いられる。この処理の一つの実施形態を、図４を参照しながら説明する。一つの事例では、プロセッサ（例、ＣＰＵで実行されているミリコード）がこの論理を遂行する。
【００３０】
最初に、ステップ４００において、ある論理区分で実行されているゲストが、暗号オペレーションに対する要求を発行し、暗号化された暗号鍵を、ゲスト自体の仮想マスタ鍵および仮想検証パターンとともに提供する。次いで、ステップ４０２で、提供された検証パターンが、暗号オペレーションの過程で、ミリコードによって、前述と同様の処理を用いてそのゲストに対して生成された仮想パターンと比較される。一つの事例において、上記パターンが生成されるのに応じ、そのパターンは、ハードウエア・システム域の安全部分など、安全保管部分に保存され、比較のために使われる。検査ステップ４０４において、比較が不整合を示した場合、ステップ４０６でエラーが提示される。エラーが表示された場合、これは、前述のように、暗号鍵を暗号化するため使われる仮想マスタ鍵が変化していること、および新規の仮想マスタ鍵を使うべきことを明示する。
【００３１】
検査ステップ４０４に戻って、検証パターンが整合した場合、このときはステップ４０８で、当該ゲストに対する暗号化鍵を復号または暗号化などの暗号機能に使用することができる。こうして処理は完了する。
【００３２】
マスタ鍵の使用に関するさらなる詳細が、２００９年８月３１日出願の米国特許出願第１２／５５０，６６７号（代理人整理番号ＰＯＵ９２００９００７０ＵＳ１）、名称「Ｃｏｎｖｅｒｓｉｏｎ  ｏｆ  Ｃｒｙｐｔｏｇｒａｐｈｉｃ  Ｋｅｙ  Ｐｒｏｔｅｃｔｉｏｎ，」に記載されており、当段落で参照することによりその全体が本明細書に組み込まれる。
【００３３】
上記で詳しく説明したのは、ある特定の区分またはゾーンに割り当てられたマスタ鍵を仮想化して、そのゾーン内で実行されている各ゲストがそれ自体の仮想マスタ鍵を持てるようにする機能である。この仮想マスタ鍵は必要なときに生成される。一旦生成されれば、（例えばＩＰＬなどで）再生成されるまで使われる。
【００３４】
本明細書で説明した実施形態では仮想マスタ鍵が生成されているが、他の暗号鍵を含め、他の鍵も同じ仕方で仮想化することができる。
【００３５】
上記の実施形態では、各仮想システムがマスクを有する。仮想システムは、いくつかの仮想中央処理装置（またはゲスト中央処理装置と呼ばれる）から成る。別の実施形態において、マスクを各ゲスト中央処理装置に割り当てて、同じ仮想システム内のゲスト中央処理装置群の全てのマスクが同じ値を持つようにすることができる。
【００３６】
当業者ならよく理解するであろうように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現することができる。従って、本発明の態様は、全体がハードウエアの実施形態、全体がソフトウエアの実施形態（ファームウエア、常駐ソフトウエア、マイクロコードなどを含む）、あるいは、一般に本明細書では全て「回路」、「モジュール」、または「システム」といわれる、ソフトウエアおよびハードウエア態様を組み合わせた実施形態の形を取ることができる。さらに、本発明の態様は、内部に具体化されたコンピュータ可読プログラム・コードを有する一つ以上のコンピュータ可読媒体（群）中に具現されたコンピュータ・プログラム製品の形を取ることもできる。
【００３７】
一つ以上のコンピュータ可読媒体（群）の任意の組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、または半導体の、システム、装置、もしくはデバイス、あるいはこれらの任意の適切な組み合わせとすることができる。コンピュータ可読記憶媒体のさらに具体的な例（非包括的リスト）には、一つ以上の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）またはフラッシュ・メモリ）、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、光記憶デバイス、磁気記憶デバイス、またはこれらの任意の適切な組み合わせが含まれる。本文書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによってまたはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形媒体とすることができる。
【００３８】
次に図５を参照すると、一つの事例において、コンピュータ・プログラム製品５００は、例えば、その中にコンピュータ可読プログラム・コード手段または論理５０４を格納し、本発明の一つ以上の態様を提供し促進するための一つ以上のコンピュータ可読媒体５０２を包含する。
【００３９】
コンピュータ可読媒体中に具現されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、ＲＦなど、またはこれらの任意の適した組み合わせを含め、適切な媒体を用いて送信することができる。
【００４０】
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、“Ｃ”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合せで記述することができる。このプログラム・コードは、全体をユーザのコンピュータで、一部をユーザのコンピュータで、スタンドアロン・ソフトウエア・パッケージとして実行することができ、一部をユーザのコンピュータで他の部分を遠隔コンピュータで、または全体を遠隔のコンピュータまたはサーバで実行することができる。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）または広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することができ、あるいは（例えばインターネット・サービス・プロバイダを使いインターネットを介し）外部のコンピュータへの接続を行うことができる。
【００４１】
本明細書では、本発明の実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート説明図もしくはブロック図またはその両方を参照しながら、本発明の態様を説明している。フローチャート説明図もしくはブロック図またはその両方の各ブロック、および、フローチャート説明図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ・プログラム命令によって実行可能であることが理解されよう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに供給し、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／処理群を実施するための手段を生成するようにすることができる。
【００４２】
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命令できるコンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／処理群を実施する命令群を包含する製品を形成するようにすることができる。
【００４３】
同様に、コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、これらコンピュータ、他のプログラム可能装置、または他のデバイス上で一連のオペレーション・ステップを実行させてコンピュータ実装のプロセスを生成し、これらコンピュータまたは他のプログラム可能装置で実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に規定された機能群／処理群を実施するためのプロセスを提供するようにすることもできる。
【００４４】
図中のフローチャートおよびブロック図は、本発明のさまざまな実施形態による、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、およびオペレーションを例示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、所定の論理機能（群）を実行するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図に記載された順序を外れて行われることがあり得ることに留意すべきである。例えば、連続して示された２つのブロックが、実際にはほぼ同時に実行されることがあり、関与する機能によっては、時には、これらブロックが逆の順序で実行されることもあり得る。また、ブロック図もしくはフローチャート説明図またはその両方の各ブロック、およびブロック図もしくはフローチャート説明図またはその両方中のブロックの組み合わせは、特定の機能または処置を実施する、特殊用途のハードウエア・ベースのシステム、または特殊用途のハードウエアとコンピュータ命令との組み合わせによって実装可能なことにも留意することとなる。
【００４５】
上記に加え、顧客環境の管理を提案するサービス・プロバイダによって、本発明の一つ以上の態様を提供し、提案し、展開し、管理し、保守などすることができる。例えば、サービス・プロバイダは、一人以上の顧客に対し、本発明の一つ以上の態様を遂行するコンピュータ・コードもしくはコンピュータ・インフラストラクチャまたはその両方を生成し、維持し、サポートなどすることができる。サービス・プロバイダは、見返りとして、予約申し込みもしくは自由契約またはその両方の下で顧客から支払いを受けることができる。これに加え、またはこれに換えて、サービス・プロバイダは、一人以上の第三者に対する広告コンテンツの販売による支払いを受けることもできる。
【００４６】
本発明の一つの態様において、本発明の一つ以上の態様を遂行するためのアプリケーションを展開することができる。一つの事例として、アプリケーションの展開には、本発明の一つ以上の態様を遂行するため動作可能なコンピュータ・インフラストラクチャを提供することが含まれる。
【００４７】
本発明のさらなる態様として、コンピューティング・システム中にコンピュータ可読コードを組み込むことを含めて、コンピューティング・インフラストラクチャを展開することができ、上記コードは、上記コンピューティング・システムと相まって、本発明の一つ以上の態様を遂行する能力を有する。
【００４８】
本発明のまださらなる態様として、コンピュータ可読コードをコンピュータ・システム中に取り込むことを含め、コンピューティング・インフラストラクチャを統合するためのプロセスを提供することができる。上記コンピュータ・システムはコンピュータ可読媒体を含み、このコンピュータ媒体は本発明の一つ以上の態様を含む。上記コードは、上記コンピュータ・システムと相まって、本発明の一つ以上の態様を遂行する能力を有する。
【００４９】
さまざまな実施形態を上記で説明したが、これらは単なる例示である。例えば、前述以外のコンピューティング環境でも、本発明の一つ以上の態様を組み込んで用いることができる。例えば、Ｌｉｎｕｘ（Ｒ）またはｚ／ＶＭ（ＩＢＭ社の登録商標）以外のオペレーティング・システムを使用することもできる。さらに、本明細書では論理区分が説明されているが、本発明の一つ以上の態様は、他の種類の区分またはゾーンにも適している。また、もっと多いまたはもっと少ない区分またはゾーンも可能であり、各区分でゼロ以上のゲストを実行することができる。さまざまなオペレーティング・システムを含め、多くの種類のゲストを実行することができる。加えて、マスタ鍵以外の鍵も仮想化することができる。さらに、仮想検証パターンは随意である。多くの違った変形が存在しよう。
【００５０】
さらに、他の種類のコンピューティング環境も、本発明の一つ以上の態様によって益を受けることができる。一例として、ある環境は、エミュレータ（例、ソフトウエアまたは他のエミュレーション・メカニズム）を包含することができ、（例えば、命令実行、アドレス変換などのアーキテクト機能、およびアーキテクト・レジスタを含む）特定のアーキテクチャまたはそのサブセットを（例えば、プロセッサおよびメモリを有するネイティブ・コンピュータ・システム上で）エミュレートすることができる。かかる環境において、エミュレータの一つ以上のエミュレーション機能は、たとえ、エミュレータを実行するコンピュータが、エミュレートされている機能と異なるアーキテクチャを有するような場合であっても、本発明の一つ以上の態様を実施することができる。一つの例として、エミュレーション・モードでは、エミュレートされている特定の命令または演算が復号され、適切なエミュレーション機能が構築されて個別の命令または演算が実行される。
【００５１】
エミュレーション環境において、ホスト・コンピュータは、例えば、命令およびデータを格納するメモリと、メモリから命令を取り出し、取り出された命令に対するローカル・バッファ機能を随意的に備える命令フェッチ・ユニットと、取り出された命令を受信し、取り出された命令の種類を判断する命令復号ユニットと、これら命令を実行する命令実行ユニットと、を包含する。実行には、データをメモリからレジスタ中にロードすること、および逆にデータをレジスタからメモリに格納すること、あるいは、復号ユニットの判断により、いくつかの種類の算術または論理演算を行うことを包含することができる。一例では、各ユニットはソフトウエアに実装される。例えば、これらユニットによって遂行されるオペレーションは、エミュレータ・ソフトウエア内の一つ以上のサブルーチンとして実装される。
【００５２】
さらに、プログラム・コードを格納もしくは実行またはその両方を行うのに適したデータ処理システムとして、システム・バスを介してメモリ・エレメントに直接的または間接的に連結された少なくとも一つのプロセッサを包含するシステムが使用可能である。メモリ・エレメントは、例えば、プログラム・コードの実際の実行の過程で用いられるローカル・メモリと、大容量記憶装置と、実行の過程で大容量記憶装置からコードを読み出さなければならない回数を低減するために、少なくとも一部のプログラム・コードの一時的格納を提供するキャッシュ・メモリとを包含する。
【００５３】
入力／出力またはＩ／Ｏデバイス（以下に限らないが、キーボード、ディスプレイ、ポインティング・デバイス、ＤＡＳＤ、テープ、ＣＤ、ＤＶＤ、サム・ドライブ、および他の記憶媒体などを含む）は、直接にまたは介在Ｉ／Ｏコントローラを介してシステムに連結することができる。また、ネットワーク・アダプタをシステムに連結し、データ処理システムが、介在する私的ネットワークまたは公衆ネットワークを介して、他のデータ処理システムあるいは遠隔のプリンタまたは記憶デバイスに連結することを可能にすることができる。モデム、ケーブル・モデム、およびイーサネット（Ｒ）カードは、利用可能な種類のネットワーク・アダプタのごくわずかな例である。
【００５４】
本明細書で使用する用語は、特定の実施形態を説明する目的のためだけのものであり、本発明を限定することは意図されていない。本明細書で用いられる、単数形「ある（ａ、ａｎ）」、および「該（ｔｈｅ）」は、文脈上明確に別途に示されていなければ、複数形も同じように含むことを意図されている。さらに、本明細書で用いられる「含む（ｃｏｍｐｒｉｓｅ）」もしくは「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」またはその両方は、述べられた機能、整数、ステップ、オペレーション、エレメント、もしくはコンポーネント、または上記の組み合わせの存在を特定するが、一つ以上の他の機能、整数、ステップ、オペレーション、エレメント、コンポーネント、もしくはこれらの群、または上記の組み合わせの存在を排除するものでないことが理解されよう。
【００５５】
添付の請求項中の全ての手段またはステップに加え機能エレメントの、対応する構造、材料、処置および均等物は、もしあれば、具体的に請求された他の請求エレメントと組み合わせて機能を遂行するための一切の構造、材料または処置を包含することが意図されている。本発明の記述は、例示および説明の目的で提示されたもので、網羅的であること、または本発明を開示した形態に限定することは意図されていない。当業者には、本発明の範囲および精神から逸脱しない多くの部分変更および変形が明白であろう。本実施形態は、本発明の原理および実際的な応用を最善に説明し、他の当業者が、意図する特定の用途に適したさまざまな部分変更を加えたさまざまな実施形態のため、本発明を理解できるようにするため、選択され説明されたものである。
【図１】
0005596150.tif 000002
【図２】
0005596150.tif 000003
【図３】
0005596150.tif 000004
【図４】
0005596150.tif 000005
【図５】
0005596150.tif 000006