(57)【特許請求の範囲】
【請求項１】
プロセッサおよびメモリを含むホスト・システムが実行する方法であって、
各コンピューティング・リソースが重要であること、または重要でないことを指定し、重要でないコンピューティング・リソースについては好ましいタイプおよび代替のタイプを指定するステップと、
クラウド・コンピューティング環境におけるユーザ・システムへのサービスを可能にするとして識別されたコンピューティング・リソースの第１の部分を初期化するステップと、
前記ユーザ・システムへのサービスを可能にするステップと、
前記コンピューティング・リソースの第２の部分を初期化するステップと、
を含み、
前記第１の部分を初期化するステップは、
前記第１の部分が重要であると指定されていた場合に、前記第１の部分が利用可能であるかどうかを判定し、利用可能であれば前記第１の部分を初期化し、利用可能でなければエラー状態を示すステップと、
前記第１の部分が重要でないと指定されていた場合に、前記好ましいタイプを探して見つかれば前記好ましいタイプの第１の部分を初期化し、見つからなければ、前記代替のタイプを探して見つかれば前記代替のタイプの第１の部分を初期化するステップとを含む、
方法。
【請求項２】
前記コンピューティング・リソースの第１の部分を初期化するステップは、クラウド・コンピューティング環境におけるユーザ・システムへのサービスを可能にするとして識別されたメモリの第１の部分を初期化するステップを含み、前記方法は、前記ユーザ・システムへのサービスを可能にした後及びそれと同時のいずれかに、前記メモリの第２の部分を初期化するステップを含む、請求項１に記載の方法。
【請求項３】
コンピューティング・リソースの第１の部分を初期化するステップは、前記クラウド・コンピューティング環境においてアプリケーションを実行するための環境を前記ユーザ・システムに提供するために、ハイパーバイザを初期化するステップを含む、請求項１に記載の方法。
【請求項４】
前記コンピューティング・リソースの第１の部分を初期化するステップは、クラウド・コンピューティング環境におけるユーザ・システムへのサービスを可能にするとして識別されたハードウェア・リソースの第１の部分を初期化するステップを含み、前記方法は、前記ユーザ・システムへのサービスを可能にした後及びそれと同時のいずれかに、前記ハードウェア・リソースの第２の部分を初期化するステップを含む、請求項１に記載の方法。
【請求項５】
前記コンピューティング・リソースの前記第２の部分を初期化するステップは、前記ユーザ・システムへのサービスを可能にした後及びそれと同時のいずれかに行われる、請求項１から請求項４のいずれかに記載の方法。
【請求項６】
クラウド・コンピューティング・サービスを前記ユーザ・システムに提供するステップを含む、請求項１から請求項５のいずれかに記載の方法。
【請求項７】
クラウド・コンピューティング・サービスをユーザ・システムに提供するように構成されたハイパーバイザと、
各コンピューティング・リソースが重要であること、または重要でないことを指定し、重要でないコンピューティング・リソースについては好ましいタイプおよび代替のタイプを指定し、
クラウド・コンピューティング環境におけるユーザ・システムへのサービスを可能にするとして識別されたコンピューティング・リソースの第１の部分を初期化し、
前記ユーザ・システムへのサービスを可能にし、
前記コンピューティング・リソースの第２の部分を初期化する、
ように構成されたプラットフォーム初期化モジュールと、
を含み、
前記プラットフォーム初期化モジュールは、
前記第１の部分が重要であると指定されていた場合に、前記第１の部分が利用可能であるかどうかを判定し、利用可能であれば前記第１の部分を初期化し、利用可能でなければエラー状態を示し、
前記第１の部分が重要でないと指定されていた場合に、前記好ましいタイプを探して見つかれば前記好ましいタイプの第１の部分を初期化し、見つからなければ、前記代替のタイプを探して見つかれば前記代替のタイプの第１の部分を初期化する、
システム。
【請求項８】
前記プラットフォーム初期化モジュールは、
クラウド・コンピューティング環境におけるユーザ・システムへのサービスを可能にするとして識別されたメモリの第１の部分を初期化し、
前記ユーザ・システムへのサービスを可能にした後及びそれと同時のいずれかに、前記メモリの第２の部分を初期化するように構成される、請求項７に記載のシステム。
【請求項９】
前記プラットフォーム初期化モジュールは、前記クラウド・コンピューティング環境においてアプリケーションを実行するための環境を前記ユーザ・システムに提供するために、ハイパーバイザを初期化するように構成される、請求項７に記載のシステム。
【請求項１０】
前記プラットフォーム初期化モジュールは、
クラウド・コンピューティング環境におけるユーザ・システムへのサービスを可能にするとして識別されたハードウェア・リソースの第１の部分を初期化し、
前記ユーザ・システムへのサービスを可能にした後及びそれと同時のいずれかに、前記ハードウェア・リソースの第２の部分を初期化するように構成される、請求項７に記載のシステム。
【請求項１１】
前記プラットフォーム初期化モジュールは、前記ユーザ・システムへのサービスを可能にした後及びそれと同時のいずれかに、前記コンピューティング・リソースの前記第２の部分を初期化するように構成される、請求項７から請求項１０のいずれかに記載のシステム。
【請求項１２】
前記ハイパーバイザは、クラウド・コンピューティング・サービスを前記ユーザ・システムに提供するように構成される、請求項７から請求項１１までのいずれかに記載のシステム。
【請求項１３】
クラウド・コンピューティング環境における制御を可能にするためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、
各コンピューティング・リソースが重要であること、または重要でないことを指定し、重要でないコンピューティング・リソースについては好ましいタイプおよび代替のタイプを指定するように構成されたコンピュータ可読プログラム・コードと、
クラウド・コンピューティング環境におけるユーザ・システムへのサービスを可能にするとして識別されたコンピューティング・リソースの第１の部分を初期化するように構成されたコンピュータ可読プログラム・コードと、
前記ユーザ・システムへのサービスを可能にするように構成されたコンピュータ可読プログラム・コードと、
前記コンピューティング・リソースの第２の部分を初期化するように構成されたコンピュータ可読プログラム・コードと、
を含み、
前記第１の部分を初期化するように構成されたコンピュータ可読プログラム・コードは、
前記第１の部分が重要であると指定されていた場合に、前記第１の部分が利用可能であるかどうかを判定し、利用可能であれば前記第１の部分を初期化し、利用可能でなければエラー状態を示し、
前記第１の部分が重要でないと指定されていた場合に、前記好ましいタイプを探して見つかれば前記好ましいタイプの第１の部分を初期化し、見つからなければ、前記代替のタイプを探して見つかれば前記代替のタイプの第１の部分を初期化する、
コンピュータ・プログラム。
【請求項１４】
クラウド・コンピューティング環境におけるユーザ・システムへのサービスを可能にするとして識別されたメモリの第１の部分を初期化するように構成されたコンピュータ可読プログラム・コードと、
前記ユーザ・システムへのサービスを可能にした後及びそれと同時のいずれかに、前記メモリの第２の部分を初期化するように構成されたコンピュータ可読プログラム・コードと、
を含む、請求項１３に記載のコンピュータ・プログラム。
【請求項１５】
前記クラウド・コンピューティング環境においてアプリケーションを実行するための環境を前記ユーザ・システムに提供するために、ハイパーバイザを初期化するように構成されたコンピュータ可読プログラム・コードを含む、請求項１３に記載のコンピュータ・プログラム。
【請求項１６】
クラウド・コンピューティング環境におけるユーザ・システムへのサービスを可能にするとして識別されたハードウェア・リソースの第１の部分を初期化するように構成されたコンピュータ可読プログラム・コードと、
前記ユーザ・システムへのサービスを可能にした後及びそれと同時のいずれかに、前記ハードウェア・リソースの第２の部分を初期化するように構成されたコンピュータ可読プログラム・コードと、
を含む、請求項１３に記載のコンピュータ・プログラム。
【請求項１７】
前記ユーザ・システムへのサービスを可能にした後及びそれと同時のいずれかに、前記コンピューティング・リソースの前記第２の部分を前記初期化するように構成されたコンピュータ可読プログラム・コードを含む、請求項１３から請求項１６のいずれかに記載のコンピュータ・プログラム。
【請求項１８】
クラウド・コンピューティング・サービスを前記ユーザ・システムに提供するように構成されたコンピュータ可読プログラム・コードを含む、請求項１３から請求項１７までのいずれかに記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クラウド・コンピューティングに関し、より具体的には、クラウド・コンピューティング環境においてハイパーバイザの制御を可能にするための方法及びシステムに関する。
【背景技術】
【０００２】
クラウド・コンピューティングは、インターネット・ベースのコンピューティングでありあり、これにより、共有リソース、ソフトウェア及び情報が、電力グリッドのように、オンデマンド方式でコンピュータ及び他のデバイスに提供される。クラウド・コンピューティングは、インターネットに基づいた情報技術（ＩＴ）サービスのための新しい補助、消費及び配信モデルを説明し、かつ、典型的には、動的に拡大縮小可能であり、多くの場合仮想化されるリソースを、インターネット上でのサービスとしてインターネット上でユーザ・システムに提供することを含む。殆どのクラウド・コンピューティング・インフラストラクチャは、データ・センタを通して配信され、サーバ上に構築された、信頼できるサービスから成る。
【０００３】
仮想マシン・モニタ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ、ＶＭＭ）とも呼ばれるハイパーバイザは、クラウド・コンピューティング・サービスをホスト・システムに提供するホスト・コンピュータ又はサーバなどのホスト・システム上で複数のオペレーティング・システムが同時に実行されるのを可能にする。こうした機能は、ハードウェア仮想化と呼ばれることが多い。ハイパーバイザは、ゲスト・オペレーティング・システムに仮想プラットフォームを提示することができ、ゲスト・オペレーティング・システムの実行を監視することができる。このように、クラウド・コンピューティング環境においては、同一のオペレーティング・システムの複数のインスタンスを含む複数のオペレーティング・システムが、ハードウェア・リソースを共有することができる。
【０００４】
ハイパーバイザは、一般に、タイプ１又はタイプ２として分類される。タイプ１ハイパーバイザ（即ち、ネイティブ、ベア・メタル・ハイパーバイザ）は、ホストのハードウェア上で直接実行され、ハードウェアを制御し、ゲスト・オペレーティング・システムを監視する。従って、ゲスト・オペレーティング・システムは、ハイパーバイザより上の別のレベルで実行される。タイプ２ハイパーバイザ（即ち、ホスト・ハイパーバイザ）は、従来のオペレーティング・システム環境内で実行され、別個の第２のソフトウェア・レベルとしてハイパーバイザ層を有し、ゲスト・オペレーティング・システムは、ハードウェアより上の別のレベルで実行される。
【０００５】
サーバは、クラウド・コンピューティング・サービス・プロバイダの基本的なニーズに合わせて、過剰な機能のものになり得る。例えば、現行のクラウド・コンピューティング・サーバは、基本入力／出力システム（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ、ＢＩＯＳ）層、ｕｎｉｆｉｅｄ  ｅｘｔｅｎｓｉｂｌｅ  ｆｉｒｍｗａｒｅ  ｉｎｔｅｒｆａｃｅ（ＵＥＦＩ）層、又はＯｐｅｎ  Ｆｉｒｍｗａｒｅ層のようなファームウェア抽象化層を含む。これらの層及び他のファームウェアのサポートは、時間及び費用の点でサーバ・ベンダーにとって費用のかかるものになり得る。
【０００６】
非特許文献１は、Ｉｎｔｅｌ  Ｘｅｏｎプロセッサ５６００シリーズ・ベースのサーバ上へのＰａｒａｌｌｅｌｓ  Ｓｅｒｖｅｒ  ４  Ｂａｒｅ  Ｍｅｔａｌ仮想化ソフトウェアの配備を簡単化するための、Ｉｎｔｅｌ（登録商標）とＰａｒａｌｌｅｌｓとの間の協働を開示する。（Ｉｎｔｅｌは、米国及び他の国々におけるＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ又はその子会社の登録商標である。）
【０００７】
非特許文献２は、管理及び保守費用をより低くし、開発期間をより短くするためのカスタマイズ化なしに、サーバ仮想化環境において実行されるように最適化された製品を開示する。（ＩＢＭ及びＷｅｂＳｐｈｅｒｅは、米国、他の国々、又はその両方におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。）
【０００８】
非特許文献３は、ボリューム生成及びアタッチメントといった基本的なブロック・ストレージ・サービスを提供することができる、独立型仮想ブロック・ストレージ・システムを開示する。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Ｉｎｔｅｌ、「Ｂｒｅａｋｔｈｒｏｕｇｈ  Ｓｅｃｕｒｉｔｙ  Ｃａｐａｂｉｌｉｔｉｅｓ  ａｎｄ  Ｅｎｅｒｇｙ−Ｅｆｆｉｃｉｅｎｔ  Ｐｅｒｆｏｒｍａｎｃｅ  ｆｏｒ  Ｃｌｏｕｄ  Ｃｏｍｐｕｔｉｎｇ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ」
【非特許文献２】ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎによる「ＩＢＭ（登録商標）  ＷｅｂＳｐｈｅｒｅ（登録商標）  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｅｒ  Ｈｙｐｅｒｖｉｓｏｒ  Ｅｄｉｔｉｏｎ」、２００９年６月
【非特許文献３】Ｘｉａｏｍｉｎｇ  Ｇａｏ、Ｍｉｋｅ  Ｌｏｗｅ、Ｙｕ  Ｍａ及びＭａｒｌｏｎ  Ｐｉｅｒｃｅ著、「Ｓｕｐｐｏｒｔｉｎｇ  Ｃｌｏｕｄ  Ｃｏｍｐｕｔｉｎｇ  ｗｉｔｈ  Ｖｉｔｕａｌ  Ｂｌｏｃｋ  Ｓｔｏｒａｇｅ  Ｓｙｓｔｅｍ」、第５回ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  ｅ−Ｓｃｉｅｎｃｅ、２００９年
【発明の概要】
【発明が解決しようとする課題】
【００１０】
クラウド・コンピューティング環境においてユーザ・システムにサービスを提供するホスト・システムの複雑さを低減させる解決法が提供されることが好ましい。
【課題を解決するための手段】
【００１１】
本発明の１つ又は複数の実施形態が、クラウド・コンピューティング環境において制御を可能にするための方法を提供する。例えば、本方法を用いて、ホスト・システムのハイパーバイザの制御が効率的に提供されるのを可能にすることができる。
【００１２】
第１の態様によると、クラウド・コンピューティング環境においてユーザ・システムがサービスを可能にするとして識別されたコンピューティング・リソースの第１の部分を初期化するステップと、ユーザ・システムへのサービスを可能にするステップと、コンピューティング・リソースの第２の部分を初期化するステップとを含む方法が提供される。
【００１３】
１つの実施形態において、コンピューティング・リソースはホスト・システムのコンピューティング・リソースであり、この方法は、ホスト・システムの電源投入又は起動（ブート）に応答して、コンピューティング・リソースの第１の部分を、ユーザ・システムへのサービスを可能にするのに必要なものとして識別し、次いで、その第１の部分を初期化するステップを含む。
【００１４】
１つの実施形態において、コンピューティング・リソースの第１の部分を初期化するステップは、ホスト・システム内のプロセッサ及びメモリを初期化するステップを含み、ユーザ・システムへのサービスを可能にするステップは、ホスト・システム上に常駐し、かつ、クラウド・コンピューティング環境においてクラウド・コンピューティング・サービスをユーザ・システムに提供するように構成されたタイプ１ハイパーバイザを使用可能にするステップを含む。
【００１５】
好ましくは、クラウド・コンピューティング環境におけるサービスが可能にされた後、ホスト・システムにより、クラウド・コンピューティング・サービスを１つ又は複数のユーザ・システムに提供することができる。
【００１６】
第２の態様によると、クラウド・コンピューティング・サービスをユーザ・システムに提供するように構成されたハイパーバイザと、クラウド・コンピューティング環境におけるユーザ・システムへのサービスを可能にするとして識別されたコンピューティング・リソースの第１の部分を初期化し、ユーザ・システムへのサービスを可能にし、コンピューティング・リソースの第２の部分を初期化するように構成されたプラットフォーム初期化モジュールとを含むシステムが提供される。
【００１７】
第３の態様によると、クラウド・コンピューティング環境における制御を可能にするためのコンピュータ・プログラム製品が提供され、このコンピュータ・プログラム製品は、その上にコンピュータ可読プログラム・コードが具体化されたコンピュータ可読ストレージ媒体を含み、このコンピュータ可読プログラム・コードは、クラウド・コンピューティング環境におけるユーザ・システムへのサービスを可能にするとして識別されたコンピューティング・リソースの第１の部分を初期化するように構成されたコンピュータ可読プログラム・コードと、ユーザ・システムへのサービスを可能にするように構成されたコンピュータ可読プログラム・コードと、コンピューティング・リソースの第２の部分を初期化するように構成されたコンピュータ可読プログラム・コードとを含む。
【００１８】
第４の態様によると、ホスト・システム内のプロセッサ及びメモリを初期化するステップと、ホスト・システム上に常駐し、かつ、クラウド・コンピューティング環境においてクラウド・コンピューティング・サービスをユーザ・システムに提供するように構成されたタイプ１ハイパーバイザを使用可能にするステップとを含む方法が提供される。
【００１９】
ハイパーバイザは、プロセッサ及びメモリが初期化された直後に使用可能にすることができる。ハイパーバイザが使用可能にされた後、これらに限定されるものではないが、以前に初期化されていないメモリの部分、及び入力／出力バス・モジュールといった、種々の他のコンピューティング・リソースを初期化することができる。さらに、ハイパーバイザが使用可能にされた後、ハイパーバイザは、これに限定されるものではないが、ユーザ・システムにより使用するためのゲスト・オペレーティング・システム及び仮想マシンを提供するといったサービスを、１つ又は複数のユーザ・システムに提供することができる。
【００２０】
第５の態様によると、ホスト・システム内のプロセッサ及びメモリを初期化するように構成されたプラットフォーム初期化モジュールと、ホスト・システム上に常駐し、かつ、クラウド・コンピューティング環境においてクラウド・コンピューティング・サービスをユーザ・システムに提供するように構成されたタイプ１ハイパーバイザとを含むシステムが提供される。
【００２１】
ここで本発明の好ましい実施形態を一例として添付図面を参照して説明する。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態による、クラウド・コンピューティング環境においてハイパーバイザが効率的に制御を行うのを可能にするためのシステムのブロック図を示す。
【図２】本発明の１つ又は複数の実施形態によるホスト・システムのブロック図を示す。
【図３】本発明の実施形態による、クラウド・コンピューティング環境においてハイパーバイザが効率的に制御を行うのを可能にする例示的な方法のフローチャートを示す。
【図４】本発明の実施形態による、クラウド・コンピューティング環境においてハイパーバイザが効率的に制御を行うのを可能にする別の例示的な方法のフローチャートを示す。
【図５】本発明の実施形態による、クラウド・コンピューティング環境においてハイパーバイザが効率的に制御を行うのを可能にする別の例示的な方法のフローチャートを示す。
【発明を実施するための形態】
【００２３】
本発明の実施形態による、クラウド・コンピューティング環境においてハイパーバイザが効率的に制御を行うのを可能にする例示的な方法及びシステムが、本明細書で説明される。具体的には、ホスト・システムの起動又は電源投入に応答して、ハイパーバイザが、クラウド・コンピューティング環境を実装するホスト・システムの制御を効率的に行うのを可能にするための例示的な方法及びシステムが、本明細書で説明される。一例においては、ホスト・システムにより利用可能にされ、クラウド・コンピューティング環境においてユーザ・システムへのサービスを可能にするとして識別されたコンピューティング・リソースの部分を初期化するだけで、ハイパーバイザが、ホスト・システムを効率的に制御することができる。識別されたコンピューティング・リソースは、クラウド・コンピューティング環境へのアクセスを可能にするのに必要とされる唯一のリソースであり得る。ユーザ・システムへのクラウド・コンピューティング・サービスを可能にした後又はそれと同時に、コンピューティング・リソースの別の部分を初期化することができる。このようにして、他のリソースが初期化される前に、識別されたコンピューティング・リソースに優先権を与えることができる。識別されたコンピューティング・リソースに初期化の優先権を与えることにより、ホスト・システムは、ユーザ・システムが、クラウド・コンピューティング環境が提供するサービスに迅速かつ効率的にアクセスすることを可能にする。
【００２４】
本発明の１つ又は複数の実施形態によると、ＢＩＯＳ層、ＵＥＦＩ層、及び／又はＯｐｅｎ  Ｆｉｒｍｗａｒｅ層のようなファームウェア抽象化層を、ホスト・システム内に含ませることはできない。現在開示されているシステムにおいては、ハイパーバイザが、プラットフォームの初期化が完了した後に制御を行うことができるため、本発明の実施形態によるシステム及び方法において、これらの層を不要にすることができる。ファームウェア抽象化層を含ませないことにより、そのような層の開発及び保守と関連した時間及び費用を無くすことができる。
【００２５】
図１は、本発明の実施形態による、クラウド・コンピューティング環境においてハイパーバイザ１０２が効率的に制御を行うことを可能にするためのシステム１００のブロック図を示す。図１を参照すると、システム１００は、１又は複数のユーザ・システム１０６のためにクラウド・コンピューティング環境を実装するホスト・システム１０４を含むことができる。ホスト・システム１０４は、ネットワーク１０８上でユーザ・システム１０６と通信することができる。本発明の１つ又は複数の実施形態において、ホスト・システム１０４は、各々が命令の読み出し及び実行を行うことができる１つ又は複数のプロセッサ（例えばＣＰＵ）を有し、かつ、クラウド・コンピューティング環境においてユーザ・システム１０６からの要求を処理する、１つ又は複数のサーバを含む。ホスト・システム１０４は、種々のアプリケーションを実行することができ、アプリケーション・サーバ、ウェブ・サーバ、及び／又はデータベース・サーバとして働くことができる。ユーザ・システム１０６は、ホスト・システム１０４と通信するためのインターフェースを有する、デスクトップ・コンピュータ、ラップトップ・コンピュータ、汎用コンピュータ、スマートフォン、又はいずれかの他の適切なコンピューティング・デバイスとすることができる。ユーザは、ユーザ・システム１０６を介して、ホスト・システム１０４上で、アプリケーション・プログラムの実行といった種々のタスクを開始することができる。図１には単一のホスト・システム１０４のみが示されるが、各々が直接結合を介して、又は１つ又は複数のネットワークを介して、互いに通信状態にある複数のホスト・システムを実装できることが理解されるであろう。例えば、分散型ネットワーク・アーキテクチャを通じて、複数のホスト・システムを相互接続することができる。本明細書でより詳細に説明されるように、単一のホスト・システム１０４が、全体としてプロセスを実行するホストのクラスタを表すこともできる。
【００２６】
ネットワーク１０８は、当業者には周知のいずれかの適切なタイプの通信ネットワークとすることができる。例えば、ネットワーク１０８は、イントラネット、エクストラネット、又はインターネットのようなインターネットワーク、又はそれらの組み合わせとすることができる。ネットワーク１０８は、無線、有線、及び／又は光ファイバ・リンクを含むことができる。
【００２７】
ホスト・システム１０４は、データにアクセスし、これをメモリ１１０内に格納することができる。メモリ１１０は、いずれかの適切なタイプのストレージとすることができ、ホスト・システム１０４の内部又は外部にある、例えばハード・ディスク・ドライブ、テープ、又はストレージ・サブシステムなどの二次ストレージ要素を含むことができる。メモリ１１０内に格納できるデータのタイプは、例えば、ログ・ファイル及びデータベースを含む。メモリ１１０は、単純化のため及び説明を簡単にするために提供されたものであり、範囲を限定するものと解釈されるべきではないことを理解すべきである。メモリ１１０は、ホスト・システム１０４が用いる複数のメモリ・デバイスの形態を取ることができる。
【００２８】
ホスト・システム１０４は、ハイパーバイザ１０２及び複数の仮想マシン１１２を含む種々のアプリケーションを実行することができる。ハイパーバイザ１０２は、ホスト・システム１０４のコンピューティング・リソースへのアクセスを管理することができ、ホスト・システム１０４上の仮想マシン１１２の同時操作をサポートするための仮想マシン・モニタ（ＶＭＭ）として働くことができる。各々の仮想マシン１１２は、特定のゲスト・オペレーティング・システム及びゲスト・オペレーティング・システムをターゲットにするように書かれたソフトウェアを実行するための複数のユーザ・セッションをサポートすることができる。例えば、別の仮想マシン１１２が別のオペレーティング・システムのインスタンスを実行している間、１つの仮想マシン１１２が特定のオペレーティング・システムのインスタンスを実行することが可能である。ハイパーバイザ１０２により、仮想マシン１１２を通じて、当業者に周知の任意の適切なタイプのオペレーティング・システムをサポートすることができる。
【００２９】
ホスト・システム１０４のコンピューティング・リソースは、クラウド・コンピューティング・サービスをユーザ・システム１０６に提供するのを可能にするために必要とされる、任意の適切なハードウェア、ソフトウェア、及び／又はファームウェアを含むことができる。ホスト・システム１０４の動作（例えばホスト・システムの起動又は電源投入）のために、及び、クラウド・コンピューティング環境においてユーザ・システム１０６へのサービスを可能にするために、これらのコンピューティング・リソースの一部又は全てが必要になり得る。例示的なコンピューティング・リソースとして、これらに限られるものではないが、メモリ１１０、１つ又は複数の入力／出力（Ｉ／Ｏ）バス・モジュール１１４、１つ又は複数のプロセッサ１１６、１つ又は複数のＩ／Ｏ通信モジュール１１７、ディスプレイ・アダプタ１１８、キーボード・アダプタ１２０、マウス・アダプタ１２２等が挙げられる。ユーザ・システム１０６が、割り当てられた仮想マシン１１２を動作させるのを可能にするために、ハイパーバイザ１０２が、ホスト・システム１０４上に常駐する、又はホスト・システム１０４による使用のためにアクセス可能な、これらのコンピューティング・リソース及び他のものを使用することができる。
【００３０】
Ｉ／Ｏ通信モジュール１１７は、ネットワーク１０８との間で通信を受送信するように構成することができる。例えば、Ｉ／Ｏ通信モジュール１１７は、ユーザ・システム１０６とホスト・システム１０４との間のメッセージの通信を管理することができる。当業者により理解されるように、そのようなメッセージは、例えば、ホスト・システム１０４によりユーザ・システム１０６に提供されるクラウド・コンピューティング・サービスに関する情報を含むことができる。
【００３１】
本発明の実施形態によると、ホスト・システム１０４は、プラットフォーム初期化モジュール１２４を含むことができる。ホスト・システム１０４を初期化してクラウド・コンピューティング・サービスをユーザ・システム１０６の１つ又は複数に提供するために、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせによりプラットフォーム初期化モジュール１２４を実装することができる。本発明の実施形態によると、起動又は電源投入中、ホスト・システム１０４のコンピューティング・リソースを初期化するためにプラットフォーム初期化モジュール１２４を用いることができる。
【００３２】
ホスト・システム１０４の起動又は電源投入に応答して初期化するために、他のコンピューティング・リソースとは別に、コンピューティング・リソースの一部分を、優先権を有するものとして識別することができる。コンピューティング・リソースのこの部分は、クラウド・コンピューティング環境におけるユーザ・システム１０６へのサービスを可能にするために必要になり得る。ホスト・システム１０４の起動又は電源投入に応答して、プラットフォーム初期化モジュール１２４は、識別されたコンピューティング・リソースの１つ又は複数を初期化して、ユーザ・システムへのサービスを効率的に提供可能にすることができる。識別されたコンピューティング・リソースは、所定の順序で初期化することができる。識別されたコンピューティング・リソースは、これらに限られるものではないが、メモリ１１２、Ｉ／Ｏバス・モジュール１１４、プロセッサ１１６、ディスプレイ・アダプタ１１８、キーボード・アダプタ１２０、マウス・アダプタ１２２、種々の他のコンピューティング・リソース等の全て又は一部を含むことができる。例えば、ユーザ・システム１０６へのサービスを実施可能にした後又はそれと同時に、これに限られるものではないが、メモリ１１２の別の部分などの他のコンピューティング・リソースを初期化することができる。
【００３３】
図２は、本発明の１つ又は複数の実施形態によるホスト・システム１０４のブロック図を示す。この例示的なブロック図においては、説明のために、図１に示されるホスト・システム１０４について言及するが、図１の例への言及は、限定として解釈すべきではない。図２に示されるように、ホスト・システム１０４は、クラウド・コンピューティング環境において、ユーザ・システム１０６に対して仮想マシン１１２の使用を提供するための複数の層及び機能を含むことができる。ホスト・システム１０４は、プロセッサ（例えば、ＣＰＵ）１１６、メモリ・コントローラ２０２及びメモリ１１０を有するハードウェア層２００を含むことができる。プロセッサ１１６は、メモリ１１０との間のデータの読み書きを制御することができるメモリ・コントローラ２０２と対話することができる。メモリ１１０は複数のメモリ・モジュールを含むことができ、その各々が、これに限定されるものではないが、ランダム・アクセス・メモリ（ＲＡＭ）チップなどの複数のストレージ・デバイスを含むことができる。ハードウェア層２００はまた、これらに限定されるものではないが、通信チャネル、Ｉ／Ｏポート、クロック、バス・システム、及びコントローラのような、他の適切なハードウェアを含むこともできる。プロセッサ１１６は、ハードウェア層２００の上に常駐するプロセッサ・サポート・モジュール２０３によりサポートすることができる。
【００３４】
ハイパーバイザ１０２はハードウェア層２００の上に常駐し、仮想マシンの実行をサポートする。例えば、ハイパーバイザ１０２は、仮想マシンのゲスト・オペレーティング・システム２０４の実行をサポートすることができる。仮想化されたブート・サービス・モジュール２０５は、ゲスト・オペレーティング・システム２０４のためのブート機能及びサポートを提供することができる。さらに、ハイパーバイザ１０２は、ハードウェア・リソースの共有、及び、利用可能なハードウェア・リソースに基づいた制御規則の実施の両方を担うことができる。この例では、ハイパーバイザ１０２はタイプ１ハイパーバイザであり、従って、スーパーバイザ・モード又は「ベア・メタル」上の特権モードで実行される。
【００３５】
ホスト・システム１０４は、ハードウェア・リソースの動作を制御するための、ハイパーバイザ１０２によって管理されるドライバ・スタック２０６を含むことができる。さらに、ホスト・システム１０４は、これらに限定されるものではないが、ａｄｖａｎｃｅ  ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  ｐｏｗｅｒ  ｉｎｔｅｒｆａｃｅ（ＡＣＰＩ）テーブル及びシステム管理基本入力／出力システム（ｓｙｓｔｅｍ  ｍａｎａｇｅｍｅｎｔ  ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ、ＳＭＢＩＯＳ）テーブル２０８のような、プラットフォーム・ファームウェア・テーブルを含むことができる。
【００３６】
上述のように、本発明の実施形態による、クラウド・コンピューティング環境においてハイパーバイザ１０２が制御を行うのを可能にするための例示的な方法が、添付図面を参照して説明される。これらの例示的な方法及びシステムを用いることにより、ホスト・システムは、ホスト・システムの起動又はスタートアップの後に、ユーザ・システムが、クラウド・コンピューティング環境が提供するサービスに迅速かつ効率的にアクセスするのを可能にすることができる。更なる説明のために、図３は、本発明の実施形態による、クラウド・コンピューティング環境においてハイパーバイザが制御を行うのを可能にする例示的な方法のフローチャートを示す。この例示的な方法においては、説明のために、図１及び図２に示されるホスト・システム１０４について言及するが、ホスト・システム１０４への言及は、限定として解釈されるべきではない。
【００３７】
図３を参照すると、本方法は、ホスト・システムの電源を投入すること又はこれを起動すること３００を含む。例えば、クラウド・コンピューティング・サービスを提供するために、図１及び図２に示されるホスト・システム１０４の電源を投入することができる。ホスト・システムの電源投入又は起動に応答して、クラウド・コンピューティング環境における１つ又は複数のユーザ・システムへのサービスを可能にするとして識別されたコンピューティング・リソースの一部を初期化することができる３０２。コンピューティング・リソースのこの部分は、コンピューティング環境においてハイパーバイザ１０２が制御を行うことを可能にするために必要とされるものとして、データ構造体において識別された部分とすることができる。プラットフォーム初期化モジュール１２４は、データ構造体において識別されたコンピューティング・リソースのこの部分を初期化することができる。メモリ（例えば、フラッシュ・メモリのような不揮発性メモリ・ストア）において、メモリ、ハードウェア・リソース、プロセッサ、入力／出力（Ｉ／Ｏ）バス・モジュール、ディスプレイ・アダプタ、キーボード・アダプタ、マウス・アダプタ、それらの組み合わせ、及びそれらの部分を、コンピューティング環境においてハイパーバイザ１０２が制御を行うのを可能にするために必要とされるものとして識別又は指定することができる。例えば、所定のサイズのメモリ１１０を、コンピューティング環境においてハイパーバイザ１０２が制御を行うのを可能にするのに必要とされるものとして識別することができる。ハイパーバイザは、クラウド・コンピューティング環境においてアプリケーションを実行するための環境をユーザ・システムに提供するように構成することができる。さらに、ハイパーバイザは、環境を提供するために、カーネル、メモリ管理機能、ドライバ、それらの組み合わせ、又は任意の適切なハードウェア、ソフトウェア、及び／又はファームウェアを含むことができる。プラットフォーム初期化モジュール１２４は、識別されたリソースを発見するためにデータ構造体にアクセスすることができる。一例において、電源投入又は起動後、クラウド・コンピューティング・リソースをユーザ・システムに迅速かつ効率的に提供できるように、これらの識別されたリソースには、高い初期化の優先度を与えることができる。
【００３８】
図３の方法は、１つ又は複数のユーザ・システムへのサービスを可能にすること３０４を含む。例えば、識別されたリソースが初期化された後、ハイパーバイザ１０２を使用可能にして、ユーザ・システム１０６により使用するための仮想マシン１１２を提供することができる。次いで、ホスト・システム１０４は、クラウド・コンピューティング・サービスをユーザ・システムの１つ又は複数に提供することができる３０６。例えば、ホスト・システム１０４は、仮想マシン１１２をロードし、実行することができる。
【００３９】
図３の方法は、コンピューティング・リソースの別の部分を初期化すること３０８を含む。ユーザ・システムへのサービスを可能にした後又はそれと同時に、コンピューティング・リソースのこの他の部分を初期化することができる。例えば、クラウド・コンピューティング環境がユーザ・システムに提供されている間、メモリ、ハードウェア・リソース、ソフトウェア・リソース、ファームウェア・リソース、及びそれらの組み合わせの他の部分を初期化することができる。ホスト・システム１０４は、ホスト・システム１０４のコンピューティング・リソースの全て又は他の部分が利用可能になるまで、低下モード又は部分的に制限されたモードで動作することができる。
【００４０】
図４は、本発明の実施形態による、クラウド・コンピューティング環境においてハイパーバイザが制御を行うのを可能にする別の例示的な方法のフローチャートを示す。この例示的な方法においては、説明のために、図１及び図２に示されるホスト・システム１０４に言及するが、ホスト・システム１０４への言及は、限定であると解釈されるべきではない。図４の方法は、ホスト・システムの電源を投入すること又はこれを起動すること４００、及びプロセッサを初期化すること４０２を含むことができる。例えば、図１及び図２に示されるホスト・システム１０４の電源を投入し、プロセッサ１１６を初期化することができる。
【００４１】
図４の方法は、クラウド・コンピューティング環境においてユーザ・システムへのサービスを可能にするとして識別された所定のサイズのメモリを初期化することを含む。例えば、プラットフォーム初期化モジュール１２４は、ＲＡＭのサブセットを初期化することができる４０４。ＲＡＭは、例えば、図１及び図２に示されるメモリ１１０の指定された部分のような、所定のサイズのメモリとすることができる。ＲＡＭの識別された又は指定されたサイズは、ハイパーバイザの動作に十分な量とすることができる。一例において、このＲＡＭの量は、百ギガバイトのメモリのシステムにおける数メガバイトとすることができる。
【００４２】
図４の方法は、ハイパーバイザを初期化すること４０６を含む。例えば、ハイパーバイザの基本的なカーネル及びメモリ管理を初期化することができる。さらに、例えば、これに限定されるものではないが、Ｉ／Ｏバス・チップのためのドライブをアクティブ化するなど、特定のドライバをアクティブ化することができる。
【００４３】
図４の方法は、クラウド・コンピューティング環境においてユーザ・システムへのサービスを可能にするとして識別されたＩ／Ｏバスを初期化すること４０８を含む。Ｉ／Ｏバスの初期化は、識別されたＩ／Ｏバスの各々が初期化されるまで継続することができる。
【００４４】
まだ初期化されていないＲＡＭ又は他のメモリの一部又は全てを初期化することができる４１０。この他のメモリの初期化は、ブロック４０８における識別されたＩ／Ｏバスの初期化又は本明細書で以下に説明されるような１つ又は複数のユーザ・デバイスの初期化の後で、又はそれと同時に行うことができる。このようにして、他のコンピューティング・リソースに先立って、本発明の実施形態による、クラウド・コンピューティング・サービスの提供に必要とされるものとして識別されたコンピューティング・リソースを初期化することができる。
【００４５】
図４の方法は、クラウド・コンピューティング環境においてユーザ・システムへのサービスを可能にするとして識別された識別されたユーザ・デバイスを初期化すること４１２を含む。識別されたデバイスの各々が初期化されるまで、ユーザ・デバイスの初期化を継続することができる。そのようなデバイスは、ユーザ・システムとの対話に直接関連するもの、従ってユーザとの対話を可能にするものとすることができる。さらに、そのようなデバイスは、システム構成によって決まり得る。例示的なデバイスは、これらに限定されるものではないが、ネットワーク・アダプタ、ディスプレイ・アダプタ、キーボード・アダプタ、及びマウス・アダプタを含む。加えて、初期化することができる他のデバイスは、例えば、これらに限定されるものではないが、ＤＶＤドライブ、ファイバ・チャネル・アダプタ、付加的なネットワーク・アダプタ等を含む。
【００４６】
クラウド・コンピューティング環境においてユーザ・システムへのサービスを可能にするとして識別されなかった他のユーザ・デバイスを初期化することができる４１４。これらの他のユーザ・デバイスの初期化は、ブロック４１２における１つ又は複数のユーザ・デバイスの初期化の後に又はそれと同時に行うことができる。このようにして、他のコンピューティング・リソースに先立って、本発明の実施形態による、クラウド・コンピューティング・サービスの提供に必要とされるものとして識別されたコンピューティング・リソースを初期化することができる。
【００４７】
図４の方法は、１つ又は複数のユーザ・システムへのサービスを可能にすること４１６を含む。例えば、識別されたリソースが初期化された後、ハイパーバイザ１０２を使用可能にして、ユーザ・システム１０６により使用するための仮想マシン１１２を提供することができる。次いで、ホスト・システム１０４は、クラウド・コンピューティング・サービスを１つ又は複数のユーザ・システムに提供することができる４１８。
【００４８】
１つ又は複数の実施形態によれば、プラットフォーム初期化モジュールは、プロファイル及び発見機能（discover function）を実装することができる。この機能により、クラウド・コンピューティング環境においてハイパーバイザがサービスを提供するための制御を行うことが可能になる。プロファイルは、ホスト・システムのメモリ内に格納することができ、クラウド・コンピューティング環境へのアクセスを可能にするのに必要とされるコンピューティング・リソースを識別又は指定することができる。このようにコンピューティング・リソースを識別して、ホスト・システムの起動又は電源投入後にコンピューティング・リソースに初期化の優先権を与えるようにすることができる。
【００４９】
例示的なプロファイルにおいて、コンピューティング・リソースの各々を、「ＣＲＩＴＩＣＡＬ（重要である）」又は「ＮＯＴ  ＣＲＩＴＩＣＡＬ（重要でない）」ものとして指定することができる。あるコンピューティング・リソースが「ＣＲＩＴＩＣＡＬ」として指定された場合、そのコンピューティング・リソースを初期化に利用できるはずであり、又は他の場合には、プラットフォーム初期化モジュールは、クラウド・コンピューティング・サービスをユーザ・システムに提供するのを禁止する。さらに、「ＣＲＩＴＩＣＡＬ」であるコンピューティング・リソースが利用可能でない場合、エラー状態が生じ得る。コンピューティング・リソースが「ＮＯＴ  ＣＲＩＴＩＣＡＬ」として指定された場合、コンピューティング・リソースが、クラウド・コンピューティング・サービスをホスト・システムに提供するのに直ちに利用可能である必要はない。「ＮＯＴ  ＣＲＩＴＩＣＡＬ」であるコンピューティング・リソースが利用可能でない場合、他のコンピューティング・リソースの初期化プロセスを進行させることができ、「ＮＯＴ  ＣＲＩＴＩＣＡＬ」であるコンピューティング・リソースが利用可能でない場合でも、コンピューティング・リソースをホスト・システムに提供することができる。
【００５０】
例示的なプロファイルを示す表は以下の通りである。
【表１】
0005893029.tif 000002
【００５１】
表１に示されるように、２つのコンピューティング・リソースが例示的なプロファイル：即ち、１ＧＢのＲＡＭ、種々のタイプのディスプレイ・アダプタにより識別される。ＲＡＭは、「ＣＲＩＴＩＣＡＬ」であるコンピューティング・リソースとして指定される。プラットフォーム初期化モジュールは、発見機能を用いて、指定された１ＧＢのＲＡＭが利用可能であるかどうかを判定することができる。指定量のＲＡＭが利用可能である場合、本発明の実施形態に従って、ＲＡＭを初期化することができる。指定量のＲＡＭが利用可能でない場合、エラー状態が生じ得る。
【００５２】
同じく表１に示されるプロファイルにおいて、ディスプレイ・アダプタが「ＮＯＴ  ＣＲＩＴＩＣＡＬ」であるコンピューティング・リソースとして指定される。プロファイルはまた、組み込みビデオが好ましいディスプレイ・アダプタであることも指定する。プラットフォーム初期化モジュールは、ホスト・システム内のＩ／Ｏバスを走査して、組み込みビデオ・ディスプレイ・アダプタを探すことができる。このディスプレイ・アダプタが見つかった場合、プラットフォーム初期化モジュールは、組み込みビデオ・ディスプレイ・アダプタを初期化することができる。このディスプレイ・アダプタが見つからなかった場合、プラットフォーム初期化モジュールは、最初に、指定された代替案１を走査し、代替案が見つかった場合には、このディスプレイ・アダプタを初期化することができる。代替案１のディスプレイ・アダプタが見つからなかった場合、プラットフォーム初期化モジュールは、指定された代替案２を走査し、代替案２が見つかった場合、このディスプレイ・アダプタを初期化することができる。ディスプレイ・アダプタは、「ＮＯＴ  ＣＲＩＴＩＣＡＬ」であるものとしてプロファイル内で指定されているので、指定されたディスプレイ・アダプタのいずれも見つからなかった場合、ディスプレイ・アダプタは初期化されない。プロファイル内で指定されたコンピューティング・リソース、又は、見つからなかったために及び「ＮＯＴ  ＣＲＩＴＩＣＡＬ」であるために初期化されなかったコンピューティング・リソースを初期化した後、本発明の実施形態に従って、クラウド・コンピューティング・サービスをユーザ・システムに提供することができる。
【００５３】
図５は、本発明の実施形態による、クラウド・コンピューティング環境においてハイパーバイザが制御を行うのを可能にするための別の例示的な方法を示すフローチャートを説明する。この方法においては、説明のために、図１及び図２に示されるホスト・システム１０４について言及するが、ホスト・システム１０４への言及は、限定であると解釈されるべきではない。図５の方法はまた、ホスト・システムの電源を投入すること又はこれを起動すること５００を含むことができる。図５の方法はまた、ホスト・システム内のプロセッサ及びメモリを初期化すること５０２を含むことができる。例えば、ホスト・システム１０４において１つ又は複数のプロセッサ、及びメモリの全体又は所定の部分を初期化することができる。
【００５４】
図５の方法は、ホスト・システム上に常駐し、かつ、クラウド・コンピューティング環境においてクラウド・コンピューティング・サービスを１つ又は複数のユーザ・システムに提供するように構成された、タイプ１ハイパーバイザを使用可能にすること５０４を含む。例えば、プロセッサ及びメモリを初期化した直後に、図１及び図２に示される、ハイパーバイザ１０２のようなタイプ１ハイパーバイザを使用可能にすることができる。
【００５５】
図５の方法は、１つ又は複数の他のプロセッサ及び他のメモリ部分を初期化すること５０６を含むことができる。ハイパーバイザを使用可能にするのに、これらの他のプロセッサ及びメモリを必要としなかった可能性がある。このため、ハイパーバイザを使用可能にした後に、これらの他のプロセッサ及びメモリを初期化することができ、その結果、ホスト・システムの起動又は電源投入の直後に、クラウド・コンピューティング・サービスをユーザ・システムに提供することができる。さらに、ハイパーバイザを使用可能にした後、例えば１つ又は複数のＩ／Ｏバス・モジュールを初期化することができる。別の例では、ハイパーバイザを初期化した後、ホスト・システムにより、種々のアダプタを初期化するといった他の種々のシステム・タスクを実行することができる。
【００５６】
図５の方法は、タイプ１ハイパーバイザを使用して、ユーザ・システムにサービスすることを含む。例えば、図１及び図２に示されるハイパーバイザ１０２は、ユーザ・システム１０６が使用するためのゲスト・オペレーティング・システム２０４を管理し、提供することができる。別の例では、ハイパーバイザ１０２は、ユーザ・システム１０６が使用するための仮想マシン１１２を提供することができる。各々の仮想マシンは、作業負荷を実行するように動作可能である。さらに、各々の仮想マシンは、例えば、これらに限定されるものではないが、ユーザ・システムが使用するためのメール・サーバ、ウェブ・サーバ、会計システム等を含むことができる。
【００５７】
当業者であれば分かるように、本発明の態様は、システム、方法、又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又はソフトウェアの態様とハードウェアの態様を組み合わせた実施形態の形を取ることができ、これらは全て、本明細書において、一般的に「回路」、「モジュール」又は「システム」と呼ぶことができる。さらに、本発明の態様は、媒体内に具体化されたコンピュータ可読プログラム・コードを有する、１つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形を取ることができる。一例において、コンピュータ・プログラム製品の全て又は一部は、これに限定されるものではないが、図１及び図２に示されるホスト・システム１０４のようなホスト・システム上に常駐することができる。コンピュータ・プログラム製品は、メモリ１１０の全て又は一部の中に具体化することができる。
【００５８】
１つ又は複数のコンピュータ可読媒体の任意の組み合わせを用いることができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体（これに限定されるものではないが、非一時的コンピュータ可読ストレージ媒体を含む）とすることができる。コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光学、電磁気、赤外線若しくは半導体のシステム、装置、若しくはデバイス、又は上記のもののいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例（非網羅的なリスト）として、以下のもの：即ち、１つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、磁気記憶装置、又は上記のもののいずれかの適切な組み合わせが挙げられる。本明細書の文脈においては、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって、又はこれらと関連して用いるためのプログラムを収容又は格納することができる任意の有形媒体とすることができる。
【００５９】
コンピュータ可読信号媒体は、例えば、ベースバンド内に、又は搬送波の一部として、具体化されたコンピュータ可読プログラム・コードをその中に有する、伝搬されるデータ信号を含むことができる。このような伝搬信号は、これらに限定されるものではないが、電磁気、光又はそれらのいずれかの適切な組み合わせを含む、種々の形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、装置若しくはデバイスによって、又はこれらと関連して用いるためのプログラムを伝達し、伝搬し、又は搬送することができる任意のコンピュータ可読媒体とすることができる。
【００６０】
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、ＲＦ等、又は上記のもののいずれかの適切な組み合わせを含む、任意の適切な媒体を用いて伝送することができる。
【００６１】
本発明の態様の操作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（商標）、ＳｍａｌｌＴａｌｋ、Ｃ＋＋等のようなオブジェクト指向型プログラミング言語、及び、「Ｃ」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。（Ｊａｖａ及び全てのＪａｖａベースの商標及びロゴは、Ｏｒａｃｌｅ及び／又はその関連会社の商標又は登録商標である。）プログラム・コードは、全体がユーザのコンピュータ上で実行される場合もあり、独立型ソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は全体が遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）。
【００６２】
本発明の態様を、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して以下で説明する。例えば、本発明の態様を、図１及び図２のブロック図、並びに、図３、図４及び図５のフローチャートを参照して説明する。フローチャート図及び／又はブロック図の各ブロック、並びに、フローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実施することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実施するための手段を生成するようにすることができる。
【００６３】
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスに特定の方式で機能するように指示することができるコンピュータ可読媒体内に格納して、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実施する命令を含む製品を製造するようにすることもできる。
【００６４】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、そのコンピュータ、他のプログラム可能装置、又は他のデバイス上で一連の動作ステップを行わせてコンピュータ実装プロセスを生成し、それにより、そのコンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実施するためのプロセスを提供するようにすることもできる。
【００６５】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実行するための１つ又は複数の実行可能命令を含む、モジュール、セグメント又はコードの一部を表すことができる。幾つかの代替的な実施において、ブロック内に記された機能は、図面内に記された順序以外の順序で行われる場合があることにも留意すべきである。例えば、連続して示された２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックは、ときには逆の順序で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を行う専用ハードウェアベースのシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実装することができることにも留意されたい。
【００６６】
本明細書で用いられる用語は、特定の実施形態を説明するためのものにすぎず、本発明を限定することを意図したものではない。本明細書で用いられる場合、単数形「１つの（a）」、「１つの（an）」及び「その（the）」は、文脈が明らかにそうでないことを示さない限り、複数形を同様に含むことを意図したものである。「含む（comprise）」及び／又は「含んでいる（comprising）」という用語は、本明細書で用いられる場合、記述された特徴、整数、ステップ、操作、要素、及び／又は構成要素の存在を指定するが、１つ又は複数の他の特徴、整数、ステップ、操作、要素、構成要素、及び／又はそれらのグループの存在又は付加を排除するものではないことがさらに理解されるであろう。
【００６７】
以下の特許請求の範囲における全ての「手段又はステップと機能との組み合わせ（ミーンズ又はステップ・プラス・ファンクション）」要素の対応する構造、材料、動作及び等価物は、その機能を、明確に特許請求される他の特許請求された要素との組み合わせで実行するためのあらゆる構造、材料、又は動作を含むことが意図されている。本発明の説明は、例証及び説明を目的として提示されたものであり、網羅的であること、又は本発明を開示された形態に限定することを意図したものでもない。本発明の範囲及び趣旨から逸脱しない多くの修正及び変形が当業者には明らかとなるであろう。実施形態は、本発明の原理及び実際的用途を最も良く説明するために、そして、当業者が、企図した特定の用途に適した種々の修正を伴う種々の実施形態に関して本発明を理解できるように、選択され、説明された。
【符号の説明】
【００６８】
１００：システム
１０２：ハイパーバイザ
１０４：ホスト・システム
１０６：ユーザ・システム
１０８：ネットワーク
１１０：メモリ
１１２：仮想マシン
１１４：入力／出力（Ｉ／Ｏ）バス・モジュール
１１６：プロセッサ
１１７：Ｉ／Ｏ通信モジュール
１１８：ディスプレイ・アダプタ
１２０：キーボード・アダプタ
１２２：マウス・アダプタ
１２４：プラットフォーム初期化モジュール
２００：ハードウェア層
２０２：メモリ・コントローラ
２０３：プロセッサ・サポート・モジュール
２０４：ゲスト・オペレーティング・システム
２０５：ブート・サービス・モジュール
２０６：ドライバ・スタック
２０８：ＡＣＰＩテーブル及びＳＭＢＩＯＳテーブル
【図１】
0005893029.tif 000003
【図２】
0005893029.tif 000004
【図３】
0005893029.tif 000005
【図４】
0005893029.tif 000006
【図５】
0005893029.tif 000007