(57)【特許請求の範囲】
【請求項１】
ハイパーバイザ仮想実行環境における利用ベースのアプリケーション使用許諾のためのシステムであって、
プロセッサと、メモリと、オペレーティングシステムとを含むコンピュータと、
仮想マシンイメージを作成する際に用いるための、仮想実行環境またはクラウド中の１つ以上のハイパーバイザ上で実行されるイメージインスタンスとしての前記イメージのデプロイメントのためのアプライアンスビルダーソフトウェアを備え、前記ハイパーバイザは、当該ハイパーバイザでの前記イメージインスタンスによる、当該ハイパーバイザによって仮想化されたコンピュータリソースの利用を記述する遠隔計測情報を報告するように構成されており、さらに
前記１つ以上のハイパーバイザの各々からの、前記遠隔計測情報を受取る管理フレームワークソフトウェアを備え、
前記アプライアンスビルダーソフトウェアは、前記ハイパーバイザで実行されるオペレーティングシステムイメージまたはＪａｖａ（登録商標）仮想マシーンと、アプリケーションと、メタデータとをパッケージ化することで前記イメージを生成し、
前記管理フレームワークは、前記遠隔計測情報を受取ることに応答して、前記遠隔計測情報に関連付けられるイメージインスタンスに利用クレジットを割当てる、および／または、前記遠隔計測情報に関連付けられるイメージインスタンスによる前記利用をその利用を使用許諾する目的で記録する、システム。
【請求項２】
前記アプライアンスビルダーまたは管理フレームワークは、初期利用クレジットを各イメージインスタンスに割当て、その後、追加の利用クレジットまたはさらなる命令を必要に応じて前記インスタンスが実行されている間に割当てる、請求項１に記載のシステム。
【請求項３】
前記さらなる命令は、利用クレジットを超過した場合、インスタンスの実行を終了させる要求を含むことができる、請求項２に記載のシステム。
【請求項４】
前記遠隔計測情報は、それらのハイパーバイザでの前記イメージインスタンスによるそれらのハイパーバイザによって仮想化された前記コンピュータリソースの前記利用に対する使用許諾料を決定するために用いられる、請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
複合アプリケーションの仮想マシンイメージアセンブリを作成する際に用いるための、前記仮想実行環境またはクラウド中の前記１つ以上のハイパーバイザ上で実行されるイメージインスタンスとしての前記イメージアセンブリのデプロイメントのためのアセンブリマネージャをさらに備える、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
前記システムは、特定のイメージ中の複数の使用許諾可能なコンポーネントに対する重み付けを規定する複合寄与重み付けをさらに備え、前記管理フレームワークは、前記組合せ寄与重み付けによって修正された前記イメージインスタンスによる全体利用を決定することによって、各使用許諾可能なコンポーネントによる利用を、前記使用許諾可能なコンポーネントの各々による前記利用を使用許諾する目的で決定する、請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
ハイパーバイザ仮想実行環境における利用ベースのアプリケーション使用許諾のための方法であって、
プロセッサと、メモリと、オペレーティングシステムとを含むコンピュータを準備するステップと、
仮想マシンイメージを作成する際に用いるための、仮想実行環境またはクラウド中の１つ以上のハイパーバイザ上で実行されるイメージインスタンスとしての前記イメージのデプロイメントのためのアプライアンスビルダーソフトウェアを前記コンピュータ上に実現するステップを備え、当該ハイパーバイザによって仮想化されたコンピュータリソースの利用を記述する遠隔計測情報を報告するように構成されており、さらに
前記１つ以上のハイパーバイザの各々からの、前記遠隔計測情報を受取る管理フレームワークソフトウェアを前記コンピュータ上に実現するステップを備え、
前記アプライアンスビルダーソフトウェアは、前記ハイパーバイザで実行されるオペレーティングシステムイメージまたはＪａｖａ（登録商標）仮想マシーンと、アプリケーションと、メタデータとをパッケージ化することで前記イメージを生成し、
前記管理フレームワークは、前記遠隔計測情報を受取ることに応答して、前記遠隔計測情報に関連付けられるイメージインスタンスに利用クレジットを割当てる、および／または、前記遠隔計測情報に関連付けられるイメージインスタンスによる前記利用をその利用を使用許諾する目的で記録する、方法。
【請求項８】
前記アプライアンスビルダーまたは管理フレームワークは、初期利用クレジットを各イメージインスタンスに割当て、その後、追加の利用クレジットまたはさらなる命令を必要に応じて前記インスタンスが実行されている間に割当てる、請求項７に記載の方法。
【請求項９】
前記さらなる命令は、利用クレジットを超過した場合、インスタンスの実行を終了させる要求を含むことができる、請求項８に記載の方法。
【請求項１０】
前記遠隔計測情報は、それらのハイパーバイザでの前記イメージインスタンスによるそれらのハイパーバイザによって仮想化された前記コンピュータリソースの前記利用に対する使用許諾料を決定するために用いられる、請求項７〜９のいずれか１項に記載の方法。
【請求項１１】
複合アプリケーションの仮想マシンイメージアセンブリを作成する際に用いるための、前記仮想実行環境またはクラウド中の前記１つ以上のハイパーバイザ上で実行されるイメージインスタンスとしての前記イメージアセンブリのデプロイメントのためのアセンブリマネージャを提供するステップをさらに備える、請求項７〜１０のいずれか１項に記載の方法。
【請求項１２】
前記方法は、特定のイメージ中の複数の使用許諾可能なコンポーネントに対する重み付けを規定する組合せ寄与重み付けを用いるステップをさらに備え、前記管理フレームワークは、前記組合せ寄与重み付けによって修正された前記イメージインスタンスによる全体利用を決定することによって、各使用許諾可能なコンポーネントによる利用を、前記使用許諾可能なコンポーネントの各々による前記利用を使用許諾する目的で決定する、請求項７〜１１のいずれか１項に記載の方法。
【請求項１３】
コンピュータ読出可能記憶媒体であって、記憶された命令を前記記憶媒体上に含み、前記命令をコンピュータが読出し、実行することによって、前記コンピュータは、
プロセッサと、メモリと、オペレーティングシステムとを含むコンピュータを提供するステップと、
仮想マシンイメージを作成する際に用いるための、仮想実行環境またはクラウド中の１つ以上のハイパーバイザ上で実行されるイメージインスタンスとしての前記イメージのデプロイメントのためのアプライアンスビルダーソフトウェアを提供するステップを備え、当該ハイパーバイザによって仮想化されたコンピュータリソースの利用を記述する遠隔計測情報を報告するように構成されており、さらに
前記１つ以上のハイパーバイザの各々からの、前記遠隔計測情報を受取る管理フレームワークソフトウェアを提供するステップとを行ない、
前記アプライアンスビルダーソフトウェアは、前記ハイパーバイザで実行されるオペレーティングシステムイメージまたはＪａｖａ（登録商標）仮想マシーンと、アプリケーションと、メタデータとをパッケージ化することで前記イメージを生成し、
前記管理フレームワークは、前記遠隔計測情報を受取ることに応答して、前記遠隔計測情報に関連付けられるイメージインスタンスに利用クレジットを割当てる、および／または、前記遠隔計測情報に関連付けられるイメージインスタンスによる前記利用をその利用を使用許諾する目的で記録する、コンピュータ読出可能記憶媒体。
【請求項１４】
前記アプライアンスビルダーまたは管理フレームワークは、初期利用クレジットを各イメージインスタンスに割当て、その後、追加の利用クレジットまたはさらなる命令を必要に応じて前記インスタンスが実行されている間に割当てる、請求項１３に記載のコンピュータ読出可能記憶媒体。
【請求項１５】
前記さらなる命令は、利用クレジットを超過した場合、インスタンスの実行を終了させる要求を含むことができる、請求項１４に記載のコンピュータ読出可能記憶媒体。
【請求項１６】
前記遠隔計測情報は、それらのハイパーバイザでの前記イメージインスタンスによるそれらのハイパーバイザによって仮想化された前記コンピュータリソースの前記利用に対する使用許諾料を決定するために用いられる、請求項１３〜１５のいずれか１項に記載のコンピュータ読出可能記憶媒体。
【請求項１７】
前記命令は、複合アプリケーションの仮想マシンイメージアセンブリを作成する際に用いるための、前記仮想実行環境またはクラウンド中の前記１つ以上のハイパーバイザ上で実行されるイメージインスタンスとしての前記イメージアセンブリのデプロイメントのためのアセンブリマネージャを提供することをさらに含む、請求項１３〜１６のいずれか１項に記載のコンピュータ読出可能記憶媒体。
【請求項１８】
前記命令は、特定のイメージ中の複数の使用許諾可能なコンポーネントに対する重み付けを規定する組合せ寄与重み付けを用いることをさらに含み、前記管理フレームワークは、前記組合せ寄与重み付けによって修正された前記イメージインスタンスによる全体利用を決定することによって、各使用許諾可能コンポーネントによる利用を、前記使用許諾可能コンポーネントの各々による前記利用を使用許諾する目的で決定する、請求項１３〜１７のいずれか１項に記載のコンピュータ読出可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権に関する注意
この特許文献の開示の一部は、著作権保護の対象となる内容を含む。この特許文献または特許開示内容が特許商標庁の特許ファイルまたは記録に表示されているため、著作権所有者は、何者がそれを複製することにも異議はない。しかしながら、それ以外のすべての如何なる著作権も保持する。
【０００２】
発明の分野
この発明は、概して、アプリケーションサーバおよび仮想マシンに関し、特にハイパーバイザまたは他の仮想実行環境における利用ベースのアプリケーション使用許諾を提供するためのシステムおよび方法に関する。
【背景技術】
【０００３】
背景
サーバ仮想化により、コンピュータシステムが、そのシステムの物理リソース、たとえばシステムプロセッサ（ＣＰＵ）、メモリ、入出力（Ｉ／Ｏ：Input/Output）、およびネットワークを多数のアプリケーション間でアプリケーションを変更することなくかつ高度なアプリケーション隔離、リソース監視、および制御を伴って共有することによって、リソースの活用を動的に最適化することが可能になる。ともに機能するそのようなコンピュータシステムの集まりを、仮想実行環境またはクラウドと称することがある。
【０００４】
仮想実行環境におけるコンピュータシステムの各々の中で、リソース共有、制御、および隔離を可能にすることは、ハイパーバイザ層をシステムのオペレーティングシステム（Ｏ／Ｓ：Operating System）とその下位にある物理リソースとの間に設けることによって可能になる。ハイパーバイザは、サーバコンピュータの物理リソースを１つ以上のゲストＯ／Ｓ画像間で多重化することができ、各画像がリソースへの直接かつ唯一のアクセスを有するという錯覚を作り出し、画像の各々間の隔離をもたらす。
【０００５】
一般的に、物理リソースの割当分を各画像の個々の要件および物理リソースの現在の利用に基づいて動的に割当てるようにハイパーバイザを初めにかつ明示的に設定するおよび／または連続的に制御することができる。ハイパーバイザは、ハードウェア抽象化層（ＨＡＬ：Hardware Abstraction Layer）としてゲストＯ／Ｓ画像には見えるため、動作中、制御は、（たとえば装置の割込、プリエンティブスケジューリング、ページフォールト、文脈切換、Ｉ／Ｏ、またはネットワーク要求のために）画像Ｏ／Ｓからハイパーバイザへと移転されることが多い。制御の移転が頻繁に起こる場合、ハイパーバイザは、多重化してまたは異なる画像間で切換って、切換時に、各画像をスケジューリングするまたは各画像にその物理リソースの決められた通りの必要な割当分を割当てることができる。
【０００６】
仮想実行環境のベンダおよび／または自身のミドルウェアが仮想化された環境で実行されることを認めているミドルウェアプロバイダが直面する１つの課題は、顧客またはエンドユーザ被許諾者の仮想化されたシステムおよびミドルウェアリソースの利用に対して彼らに請求するためにどの使用許諾モデルが最適であるのか決定することである。サーバ仮想化が広く受入れられる以前は、ベンダは、ＣＰＵ毎の使用許諾料を請求して、エンドユーザが使用許諾されたアプリケーション画像を単一の物理プロセッサ上にデプロイすることを、その画像による物理的リソースの実際の利用に関わらず認めたかもしれない。マルチプロセッサシステム（ＳＭＰ：Multi Processor System）は、システム中の各ＣＰＵ毎の使用許諾を必要としてもよい。後に、マルチコアシステム（チップマルチプロセッシング）が登場するとともに、コア毎の使用許諾モデルが出現しており、この場合、料金はコア毎に、やはり利用とは無関係に請求される。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、サーバ仮想化の動的な性質により、上記のモデルのいずれもベンダとエンドユーザとの両者にとって満足のいくようには機能しない。特定の環境においては、固定数または最大数の物理ＣＰＵ／コアがある場合もあるが、仮想化により、エンドユーザがミドルウェアまたはアプリケーションのそのシステム中の物理ＣＰＵ／コアの最大数を超える多数のコピーを実行することが可能になる。ミドルウェアまたはアプリケーションベンダは、エンドユーザがミドルウェアまたはアプリケーションの各コピーに使用許諾を受けるとよいと思うであろう。なぜならば、仮想環境において、典型的に、エンドユーザは、ミドルウェアまたはアプリケーションの並行する多数のコピーを実行しており、したがって、使用許諾可能なリソースのうち、単一のＯ／Ｓ画像においてシステムハードウェア上で直接それを単に実行することによって消費するであろうよりも多くを消費している可能性があるためである。
【０００８】
一方、エンドユーザは、ミドルウェアまたはアプリケーションの仮想コピーすべてに対してはＣＰＵ毎かコア毎かいずれかの使用許諾を取得する必要がないとよいと思うであろう。なぜならば、エンドユーザは、それらのコピーのすべてをいつでもは実際に使用はしないかもしれず、そのようなコピーがデプロイメントプラットフォームの実際の物理リソースの１００％を消費することもできないであろうためである。よって、エンドユーザは、一般的に、彼らが実際に使用する量のミドルウェアまたはアプリケーションのみに使用許諾を受けるとよいと思うであろう。これがこの発明の実施例が取組むことを意図する一般的な領域である。
【課題を解決するための手段】
【０００９】
概要
ハイパーバイザ仮想実行環境における利用ベースのアプリケーション使用許諾のためのシステムおよび方法を本明細書中に開示する。実施例に従って、システムは、１つ以上のコンピュータを含み、各コンピュータは、各コンピュータ上で動作し、ハイパーバイザ環境を形成するハイパーバイザを、そのハイパーバイザ環境内で実行される１つ以上の仮想マシン画像とともに備える。各ハイパーバイザは、プロセッサ（ＣＰＵ）、メモリ、入出力（Ｉ／Ｏ）、およびネットワークなどの物理リソースについて各画像インスタンスによる利用統計を特定の画像インスタンスのライフサイクルにわたって集計し、その統計を連続的に、要求に応じて、または画像シャットダウン／終了時に管理フレームワークに報告する。管理フレームワークは、この統計を用いて、確実にシステムが利用単位で適切に使用許諾されているようにする。利用単位の初期割当は、画像中に記録されており、ハイパーバイザによる実行中にアクセスされる。利用単位が満了に近づくと、ハイパーバイザは、特定の画像が使用許諾されていなくなりそうであると合図することができる。次に管理フレームワークは、利用単位をさらに割当てるか、画像をシャットダウンするか、使用許諾されていない利用を後の賠償のために監査するかのいずれかを行なうことができる。
【図面の簡単な説明】
【００１０】
【図１】実施例に従った、ハイパーバイザまたは他の仮想実行環境における利用ベースのアプリケーション使用許諾のためのシステムを説明する図である。
【図２】実施例に従って、アプライアンスビルダーをどのように用いてコンポーネント情報および利用ベースの使用許諾メタデータをブート可能なマシン画像中に提供することができるかを説明する図である。
【図３】実施例に従った、利用ベースの使用許諾での管理フレームワークの使用を説明する図である。
【図４】実施例に従った、ハイパーバイザ仮想実行環境において利用ベースの使用許諾を提供するための方法のフローチャートを示す図である。
【図５】実施例に従って、システムをどのように用いて、コンポーネント情報および利用ベースの使用許諾メタデータをＢＭＩアセンブリ中に提供することができるかの説明例を示す図である。
【図６】実施例に従った、利用ベースの使用許諾の供給および活用の例を示す図である。
【発明を実施するための形態】
【００１１】
詳細な説明
上述のように、サーバ仮想化の動的な性質のため、現在利用可能な使用許諾モデルはいずれも、ミドルウェアまたはアプリケーションベンダと彼らの顧客またはエンドユーザとの両者にとって満足のいくように機能しない。仮想化により、エンドユーザがミドルウェアまたはアプリケーションのそのシステム中の物理プロセッサ（ＣＰＵ／コア）の最大数を超える多数のコピーを実行することが可能になる。そのため、ミドルウェアまたはアプリケーションベンダは、エンドユーザがミドルウェアまたはアプリケーションの各コピーに使用許諾を受けるとよいと思う。なぜならば、仮想環境において、典型的に、エンドユーザは、ミドルウェアまたはアプリケーションの並行する多数のコピーを実行しており、したがって、使用許諾可能なリソースのうち、単一のオペレーティングシステム（Ｏ／Ｓ）画像においてシステムハードウェア上で直接それを単に実行することによって消費するであろうよりも多くを消費している可能性があるためである。一方、エンドユーザは、ミドルウェアまたはアプリケーションの仮想コピーすべてに対してはＣＰＵ毎かコア毎かいずれかの使用許諾を取得する必要がないとよいと思うであろう。なぜならば、エンドユーザは、それらのコピーのすべてをいつでもは実際には使用しないかもしれず、そのようなコピーがデプロイメントプラットフォームの実際の物理リソースの１００％を消費することもできないであろうためである。
【００１２】
これらのモデルのうちいずれも、ミドルウェアまたはアプリケーション許諾者（ベンダ）と彼らの被許諾者（エンドユーザ）との両者にとって好適ではないため、仮想実行ベンダが彼らのエンドユーザに対して、そのエンドユーザが仮想化ソリューション上にデプロイするコピーの各々による使用許諾されたリソース（ミドルウェアまたはアプリケーションなど）の実際の消費に基づいて、使用許諾を与えることができるモデルへと移行することが所望される。本明細書においては、ミドルウェアかアプリケーションかいずれかの、またはそれがデプロイされるゲストＯ／Ｓの修正を必要とせずにそのような利用ベースの使用許諾モデルを可能にするためのシステムおよび方法を説明する。
【００１３】
図１には、実施例に従った、ハイパーバイザまたは他の仮想実行環境における利用ベースのアプリケーション使用許諾のためのシステムが説明されている。図１に示されるように、このシステムは、１つ以上の物理コンピュータ、コンピュータシステム、サーバコンピュータ、または類似の演算処理装置１０１、１０２を含み、これらはともに動作して、仮想実行環境またはクラウド１０４を提供する。図１にさらに示されるように、各コンピュータシステムは、１つ以上のプロセッサ（ＣＰＵ）１１０、メモリ１１２、入出力（Ｉ／Ｏ）１１４、およびネットワークリソース１１６などの、物理リソース１０８、１０９を含み、他のコンピュータシステムと高速物理ネットワーク、インターネット、または類似の通信技術１１７を介して相互接続されている。各コンピュータシステムは、ハイパーバイザ１２０、１２１も含み、このハイパーバイザは、そのコンピュータシステムの物理リソースを１つ以上のブート可能なマシン画像（ＢＭＩ：Bootable Machine Image）インスタンス１２２、１２４、１２６、１２８間で多重化することができ、このＢＭＩインスタンスは、このコンピュータシステム上で動作して、各画像インスタンスがリソースへの直接かつ唯一のアクセスを有するという錯覚を作り出し、これらの画像間の隔離をもたらす。
【００１４】
実施例に従って、各コンピュータシステムにあるハイパーバイザは、遠隔計測情報１４０を収集するかまたは他のやり方でそのコンピュータシステム上の各特定の画像インスタンスによる利用に関する統計をそのプロセッサ、メモリ、Ｉ／Ｏ、およびネットワークリソースなどのそのシステムの物理リソースについてその特定の画像インスタンスのライフサイクルにわたって集計する。ハイパーバイザは、この遠隔計測情報または統計を連続的にか、要求に応じてか、または画像のシャットダウン／終了時にかのいずれかで管理フレームワーク１５０へ報告する。次に、管理フレームワークは、この統計を用いて、確実にシステムが利用単位で適切に使用許諾を受けているようにするおよび／またはエンドユーザに彼らの利用に対して請求する手段を提供する。実施例に従って、このシステムは、さらに、１つ以上のアプライアンスビルダー１６０および／またはアセンブリマネージャ１７０を含むことができ、これらの機能の各々は、以下により詳細に説明される。
【００１５】
実施例に従って、利用単位またはクレジット１３２、１３４、１３６、１３８の初期割当は、利用が使用許諾される仮想実行環境中の各画像インスタンス内のまたは違うやり方でこの各画像インスタンスと関係付けられたメタデータとして記録されている。特定のインスタンスのための利用単位は、その後、ハイパーバイザによるそのインスタンスの実行中にアクセスされ、増加され、または消耗される。利用に関する統計情報は、各コンピュータシステムおよび／または管理フレームワークにある遠隔計測データベース１４２、１４３、１４４にも記録することができる。利用単位が満了に近づくと、ハイパーバイザは、たとえば、特定の画像インスタンスが使用許諾を受けていなくなりそうであると合図することができる。次に管理フレームワークは、利用単位をさらに割当てるか、その画像インスタンスをシャットダウンするか、または使用許諾を受けていない利用をその後のエンドユーザへの請求または他の賠償形態のために監査するかのいずれかを行なうことができる。
【００１６】
アプライアンスビルダー
図２には、実施例に従って、アプライアンスビルダーをどのように用いて、コンポーネント情報および利用ベースの使用許諾メタデータをブート可能なマシン画像中に提供することができるかが説明されている。上述のように、実施例に従って、複数のゲストＯ／Ｓ画像をハイパーバイザ上で実行されるブート可能なマシン画像（ＢＭＩ）としてパッケージ化し、デプロイすることができ、次にハイパーバイザは、物理サーバリソースを、各画像またはその上で実行されているＢＭＩに対する設定されたリソース利用パラメータおよび／またはポリシーに従っていつでも多重化する。特定のハイパーバイザ／サーバタプルにデプロイされ、そこで実行されているＢＭＩのセットは、動的であり、時間とともに変化することができる。図２に示されるように、実施例に従って、アプライアンスビルダーツール１６０を、たとえば仮想化製品一式の一部として設けることができる。また、選択されたゲストＯ／Ｓ１６２と、ブートローダ１６４と、ミドルウェアおよびアプリケーション１６８と、設定メタデータ１７０と、任意の他の必要なコンポーネントとを含めて、ＢＭＩ１２２を適宜なＢＭＩ形式へとパッケージ化して、対象のハイパーバイザがそのコンテンツをロードし、実行することを可能にするためにアプライアンスビルダーツール１６０を用いることができる。
【００１７】
実施例に従って、各ゲスト画像Ｏ／Ｓは、特定のハイパーバイザ抽象化層ＡＰＩ上で実行されることが可能であるか実行されるように修正されているかのいずれかであるオペレーティングシステムを含む。そのようなＯ／Ｓの例には、Linux（登録商標）、さまざまなＵＮＩＸ（登録商標）、Windows（登録商標）、およびMacOS（登録商標）が含まれる。上記のこれまでのＯ／Ｓ技術に加えて、他のゲストランタイムを、たとえば対象Ｏ／Ｓ上のアプリケーションとしてのその通常の実行モードに代えてハイパーバイザ上で直接実行されるように修正されたJava（登録商標）仮想マシンを含めて、特定のハイパーバイザによって、ホストすることができる。
【００１８】
実施例に従って、ＢＭＩは、その関連するハイパーバイザにとって既知であるファイル形式で提供され、このファイル形式は、サポートされるゲストＯ／Ｓのインスタンス、ミドルウェア、エンドユーザアプリケーション、および関連する設定メタデータアーティファクトを包含し、さらにはハイパーバイザがゲストＯ／Ｓおよびその中のアプリケーションをロードし、実行することを可能にする。ＢＭＩは、ゲストＯ／Ｓ、アプリケーション、および設定情報のディスクファイルシステム表現として提供されるまたはこれらを含むことができ、これにより、ゲストＯ／Ｓがハイパーバイザの存在に関して透過的にブートすることが可能になる。
【００１９】
特定のＢＭＩインスタンスのアセンブリ中、アプライアンスビルダーは、コンポーネントメタデータ１７２をＢＭＩに挿入することができ、これにより、ＢＭＩ中のコンポーネント１７３が識別され、ここではコンポーネントＡ〜Ｃ１７４、１７６、１７８として例示され、利用が使用許諾される。実施例に従って、これは、サイン済みメタデータファイルを仮想ディスクファイルシステムまたは画像中に含めることによって行なうことができる。次に、メタデータを、ハイパーバイザおよび／または管理フレームワークによって用いて、利用単位を計算し、その中のコンポーネントに利用単位適用することができる。
【００２０】
いくつかの実施例に従って、特に複数のＢＭＩのアセンブリをパッケージ化して複合アプリケーションを形成する実施例に従って、組合せ寄与重み付け１８０を用いて、コンポーネント重み付けを提供することができる。組合せ寄与重み付け機能は、画像アセンブリに関して以下により詳細に説明される。
【００２１】
一般的にハイパーバイザは、ゲストＯ／Ｓ内部および／またはその中で実行されているアプリケーションの知識を有していないため、そのデータ構造をハイバーバイザが調べて利用情報を抽出するために用いることができるゲストＯ／Ｓインプリメンテーションの知識をハイバーバイザが与えられていない限り、ハイパーバイザは、ＢＭＩを構成する個々のコンポーネント／プロセスも同様に理解していない。したがって、実施例に従って、ハイパーバイザは、ＢＭＩを「ブラックボックス」の形式で利用し、すなわち、各画像インスタンスによって消費されたリソースは、画像インスタンス全体およびその中で実行されているコンポーネントにわたって巨視的に決定される。ハイパーバイザ上のゲストＯ／Ｓにおいて実行されている個々のアプリケーションコンポーネントによって消費されるリソースは、ゲストＯ／Ｓおよび／またはアプリケーション自体の侵入的な変更なしにはそれ自体決定可能ではない。
【００２２】
管理フレームワーク
図３には、実施例に従った、利用ベースの使用許諾での管理フレームワークの使用が説明されている。上述のように、実施例に従って、ハイパーバイザは、遠隔計測情報または統計を連続的にか、要求に応じてか、または画像シャットダウン／終了時にかのいずれかで管理フレームワークに報告する。次に、管理フレームワークは、この統計を用いて、確実にシステムが利用単位で適切に使用許諾を受けているようにするおよび／またはエンドユーザに彼らの利用に対して請求する手段を提供する。このようにして、それらが関連するハイパーバイザのインスタンスを実行することによって仮想化されている１つ以上の物理サーバのライフサイクル管理は、管理フレームワークが担当する。管理フレームワークを、管理コンソールユーザインターフェイス（ＵＩ：User Interface）を含めてコマンドおよび制御フレームワークとして設けることができ、このコマンドおよび制御フレームワークにより、このフレームワークによって管理される個々のハイパーバイザインスタンスがロードされ、開始され、延期され、再開され、設定されるなどすることが可能になり、かつ仮想実行環境またはクラウドなどのサーバの管理されたドメインにわたる対象ＢＭＩインスタンスの管理が可能になる。
【００２３】
実施例に従って、遠隔計測情報または統計を個々のハイパーバイザの各々からこれらのハイパーバイザ上で実行されているＢＭＩインスタンスについて抽出し、次にこれらの統計を仮想化された環境内の管理フレームワークおよび／またはコンピュータシステムにある持続性ログおよび／または管理コンソールにロギングすることも管理フレームワークが担当する。
【００２４】
図３に示されるように、管理フレームワークは、各ＢＭＩと関連付けられる初期利用クレジット１９０を提供することができる。ハイパーバイザにある遠隔計測ロジック１９２は、初期クレジット１９４、１９６をそのハイパーバイザ上で実行されているインスタンスの各々と関連付ける。管理フレームワークは、次に、否定不可能な（non-repudiatable）利用統計２０２を多数のＢＭＩインスタンスについて彼らのハイパーバイザの管理されたドメインから事前にまたは動的に消費し、各ＢＭＩインスタンス内の使用許諾可能なコンポーネントの利用をしっかりと監査する。たとえば、管理フレームワークは、特定のホストハイパーバイザにまたは特定のインスタンスの終了時に追加の「利用」クレジット２０４または他の指示で動的に応答することができる。管理フレームワークは、ベンダがその後使用許諾利用データベース２０６中の彼らの使用許諾されたコンポーネントについて利用統計を適宜抽出することができるようなやり方で利用情報を確保する。
【００２５】
実施例に従って、管理フレームワークは、ＢＭＩアプライアンスビルダーによって特定のＢＭＩインスタンスに以前に埋込まれたメタデータ情報を、どの使用許諾可能なコンポーネントがその中に含まれているかと、必要な場合は、これらのコンポーネントがそのＢＭＩのインスタンスの実行ライフサイクル中にハイパーバイザリソースの全体利用に寄与する相対的な重みまたは寄与とを決定するために用いる。
【００２６】
図４には、実施例に従った、ハイパーバイザ仮想実行環境において利用ベースの使用許諾を提供するための方法のフローチャートが示されている。図４に示されるように、ステップ２２０において、適宜なデータベースまたはベンダ入力からの任意選択的な組合せ寄与重み付けを用いることを含めて、画像コンポーネントリストが決定される。ステップ２２２において、ブート可能なマシン画像がユーザアプリケーションおよびコンポーネントリストとともに作成される。またはこれに代えて、画像アセンブリが、複合アプリケーションとともに作成される。ステップ２２４において、ＢＭＩまたは画像アセンブリがインスタンスとして、適用可能な場合は初期利用クレジットとともに、ハイパーバイザ環境にデプロイされる。ステップ２２６において、管理フレームワークは、遠隔計測情報を、各コンピュータシステムおよび／またはハイパーバイザからそのハイパーバイザ上のＢＭＩまたは画像アセンブリ利用について周期的にまたはオンデマンドで受取るまたは決定する。ステップ２２８において、管理フレームワークおよびハイパーバイザは、任意選択的に、既存の使用済みクレジットを比較するおよび／または追加的な利用のための新しいクレジットを提供するおよび／またはその後の使用許諾料の計算のために利用または使用済みクレジットを報告する。
【００２７】
アセンブリマネージャ
図５には、実施例に従って、システムをどのように用いてコンポーネント情報および利用ベースの使用許諾メタデータをＢＭＩアセンブリに提供するために用いることができるかの説明例が示されている。上述のように、実施例に従って、システムは、アセンブリマネージャ１７０を含むことができる。このアセンブリマネージャを、仮想アセンブリ管理フレームワーク、ツール、コンソールとして、関連付けられたユーザインターフェイス（ＵＩ）とともに設けることができる。サービス指向アーキテクチャ（ＳＯＡ：Service Oriented Architecture）の文脈において、アプリケーションは、複合アプリケーションまたは複合体、すなわちエンドユーザ視点からは単一のアプリケーションとして見えるが、実際には多数の部品またはサービスから構成されるアプリケーションであることが多い。各サービスは、別個のコンポーネントであり、このコンポーネントは、さまざまなミドルウェア技術に基づいてインプリメントされてもよく、それらそれぞれの（固有の）ランタイムコンテナまたは環境においてホストされてもよい。仮想化されたＳＯＡデプロイメントにおいて、仮想複合アプリケーション上で単一の分割できないコンポーネントとして、全体として、それらの動作ライフサイクルの間動作することが望ましい。個別サービスまたはコンポーネントを、それらの関連付けられたランタイム環境、設定メタデータアーティファクト、および他の関連データとともに個別ＢＭＩ（ファイル）へと（アプライアンスツールを介して）パッケージ化することができる。
【００２８】
図５に示されるように、実施例に従って、一旦各サービス２３６、２５６がそれ独自のＢＭＩ２３０、２５０の中に任意のその中のコンポーネントとともにパッケージ化されてしまえば、各ＢＭＩ「アプライアンス」の画像アセンブリ２２８は、アセンブリマネージャツールを用いて構築され、このアセンブリマネージャツールは、各コンポーネントＢＭＩを含む単一画像を作成し、また、任意の初期利用使用許諾メタデータ２６４およびアセンブルされた組合せ複合アプリケーション２６２を記述するために必要な他のメタデータアーティファクトを指定する。次に、画像アセンブリを、仮想実行環境中のハイパーバイザにデプロイすることができる。
【００２９】
実施例に従って、「複合」ＢＭＩアセンブリ（すなわち複数の使用許諾可能なコンポーネントを含むＢＭＩ）を使用許諾することに、ハイパーバイザが対象ゲストＯ／Ｓの知識を有することなくかつその内部を調べることなく対応するためには、「複合寄与重み付け」スキーム１８０を用いることができる。組合せ寄与重み付けにより、システムが、その中の使用許諾可能なコンポーネントにわたって複合ＢＭＩによって消費されるリソースを分配する／属性付けることが可能になる。個別のＢＭＩをアプリケーションビルダーを用いてアセンブルする際であれ１つ以上のＢＭＩをアセンブリマネージャを用いて複合アプリケーションアセンブリへとアセンブルする際であれ、管理フレームワークは、その中の使用許諾可能な各コンポーネントに対する重み付けをしっかりとした否定不可能なやり方で使用許諾システムによるその後の使用のために組込むことができる。これらの重み付けを、ベンダにより各個別の使用許諾可能なコンポーネント（たとえば、安全な使用許諾記憶装置の中）に対して割当てることができ、個別ＢＭＩ内で組合せられた他の使用許諾可能なコンポーネントまたは複数のＢＭＩを含む複合アプリケーションと関連して計算することができる。
【００３０】
遠隔計測情報
上述のように、実施例に従って、各コンピュータシステムにあるハイパーバイザは、遠隔計測情報を収集するかまたは他のやり方でそのコンピュータシステム上の各特定の画像インスタンスによる使用に関する統計をそのシステムの物理リソースについてその特定の画像インスタンスのライフサイクルにわたって集計する。この遠隔計測情報は、ネットワークを介して遠隔アクセスすることができるか、または何らかの永続的な形態（たとえばローカル／リモートディスク）で後の分析のために収集される。ハイパーバイザの中には、その上で実行されているホストされた／ゲストＯ／Ｓおよびアプリケーションに関して「透過性」であるものもあれば、それらのサポートされた「ゲスト」オペレーティングシステムとの追加的な統合を必要とするおよび／またはＡＰＩをアプリケーションに提供してホストハイパーバイザプラットフォームとより密接に統合するものもある。そのような追加的なアプリケーションレベルの統合は、典型的に、管理能力および遠隔計測能力をアプリケーションに与え、Ｏ／Ｓレベルの統合は、通常、ハイパーバイザアーキテクチャよってなされた選択と、特定のゲストＯ／Ｓとハイパーバイザが仮想化するハードウェア装置／システムインターフェイスとの間のインターフェイスに影響を及ぼすインプリメンテーションの結果である。
【００３１】
上述のように、実施例に従って、ハイパーバイザは、ＢＭＩインスタンス当たりの利用を特定の画像インスタンスのライフサイクル（開始−終わり）にわたって（リアルタイムで）集計し、それらを、連続的にか、要求に応じてか、または画像シャットダウン／終了時にかのいずれかで管理フレームワークへ、場合によっては否定不可能なかつＢＭＩに記録された形式で（たとえばシャットダウン時に暗号化ファイル形式として）報告する。追跡することができる統計の例には、以下が含まれる：タイムスタンプを押された起動から消費された実際のＣＰＵ（秒）、タイムスタンプを押された起動から消費された平均メモリ、タイムスタンプを押された起動からの合計Ｉ／Ｏ動作、タイムスタンプを押された起動からの合計ネットワークＩ／Ｏ。
【００３２】
遠隔計測情報は、ＢＭＩ当たりの利用が遡及的にか事前にかのいずれかで管理フレームワークの使用許諾コンポーネントによって計算されることを可能にし、たとえば以下を可能にする：利用の使用許諾モデルに基づいた遡及的監査、利用情報がハイパーバイザからやり取りされ、さらには、特定のＢＭＩインスタンスによって消費されたリソースに対してハイパーバイザによって適用される追加的な利用「クレジット」で管理フレームワークが応答するという事前の動的な「都度払い」モデル、ＢＭＩ中に（管理フレームワークの使用許諾コンポーネントによって）記録され実行中にハイパーバイザによってアクセスされる利用単位の事前の静的な初期割当。満了時、または設計された「低水位線」で、ハイパーバイザは、特定のＢＭＩが（その割当のすべてを用いることによって）使用許諾されていなくなりそうであると使用許諾コンポーネントに合図することができ、管理フレームワークは、より多く割当てるか、ＢＭＩをシャットダウンするか、または使用許諾されていない利用を後の賠償のために監査するかのいずれかを行なうことができる。
【００３３】
特定の環境において、たとえばJava仮想マシン（ＪＶＭ: Java Virtual Machine）がハイパーバイザ上で直接実行されるように修正されている場合、「ゲスト」Ｏ／Ｓのアプリケーションとしてのそれらの通常の実行モードとは対照的に、ＪＶＭのランタイムは、遠隔計測ロジックで修正されて、ホストハイパーバイザおよびその管理基盤における関連付けられたＡＰＩおよび遠隔計測能力に気付いていることができる。そのような場合、ＪＶＭは、追加的な「リアルタイム」遠隔計測をハイパーバイザにJavaミドルウェアおよびその中で実行されているアプリケーションならびにそれらのリソース消費について提供することができる。この追加的な遠隔計測により、利用ベースの使用許諾が、使用許諾を目的とした利用報告の忠実度を高めることが可能になる。
【００３４】
説明に役立つ例
図６には、実施例に従った、利用ベースの使用許諾の供給および活用の例が示されている。図６に示されるように、この特定の例において、ハイパーバイザを含む仮想実行環境をデプロイしている顧客は、アプリケーションアプライアンスを以下のコンポーネント：
（ａ）  ＨＴＴＰサーバ、
（ｂ）  アプリケーションサーバ（たとえばWebLogic（登録商標）またはＷＬＳ）、
（ｃ）  ＪＶＭ、
（ｄ）  関係データベース（ＲＤＢＭＳ）、および
（ｅ）  オペレーティングシステム（Ｏ／Ｓ、たとえばLinux）
から構築し、さらに何らかの中間階層アプリケーションコードを（たとえば、WebLogicで）含むことを望むことがある。アプライアンスビルダーかアセンブリマネージャかのいずれかを用いて、彼らは、これらのコンポーネントのＢＭＩ、それらのアプリケーション、および任意の設定メタデータアーティファクトを構築し、この画像を「MyAppAppliance」２８０と名付ける。
【００３５】
この画像をアセンブリするプロセスにおいて、アセンブリマネージャは、上記の使用許諾可能なコンポーネントのリストを含むアーティファクトを、それらの関連付けられた「組合せ寄与重み付け」とともに作成する。組合せ寄与重み付けデータベースからデータを得て、アセンブリツールは、ＢＭＩ画像と、コンポーネントおよびそれらの重み付けのリストを含む使用許諾アーティファクトとをアセンブリする。このリストは、この例においては以下のようであってもよい。
（ａ）  ＨＴＴＰサーバ  ５％
（ｂ）  アプリケーションサーバ（ＷＬＳ）  ４０％（ユーザアプリケーションコードを含む）
（ｃ）  ＪＶＭ  ５％
（ｄ）  関係データベース（ＲＤＢＭＳ）  ４０％
（ｅ）  オペレーションシステム（Ｏ／Ｓ）  １０％
エンドユーザは、このＢＭＩ２８８、２９０のインスタンスをそれらのサーバファーム、仮想実行環境、またはクラウド上にデプロイし、それらのアプリケーションを実行する。
【００３６】
この例において、彼らは、彼らの利用に対して月々遡ってベンダによって課金されるオプションを選択している。遠隔計測情報または統計２９２には、前月に、彼らは「MyAppAppliance」ＢＭＩの多数のインスタスを多数のサーバ上で開始させ停止させたことが示されている。ハイパーバイザは、ＣＰＵ、Ｉ／Ｏ、メモリおよびネットワーク統計を各インスタンスライフサイクルの間絶えず収集および報告しており、管理フレームワークは、これらをそのようにロギングしている。この（否定不可能な）ログは図６に示されるものに多少似ているかもしれない。３０日の期間の終わりに、管理フレームワークは、この利用情報２９４をそれに従って合計することができる。この例において、「MyAppAppliance」は、合計で２６２０８ＣＰＵ分のリソースを使用したようである。オラクル（登録商標）の現在の利用の使用許諾は、ＣＰＵ利用についてのみ使用許諾すると想定する。使用許諾フレームワークは、使用許諾されたコンポーネントの組合せ寄与重み付けをこの合計ＣＰＵ利用に適用する。
【００３７】
（ａ）  使用されたＨＴＴＰサーバ  １３１０cpu／分
（ｂ）  使用されたアプリケーションサーバ（ＷＬＳ）  １０４８３
（ｃ）  使用されたＪＶＭ  １３１０
（ｄ）  使用された関係データベース（ＲＤＢＭＳ）  １０４８３
（ｅ）  使用されたオペレーションシステム（Ｏ／Ｓ）  ２６２０
次にベンダは、彼らの現在の価格／利用単位料金および任意の数量または組合せ値引き等を適用して、エンドユーザに相応の使用許諾料２９６を請求する。
【００３８】
この発明は、本開示の教示に従ってプログラムされた１つ以上のプロセッサ、メモリおよび／またはコンピュータ読出可能記憶媒体を含めて、１つ以上の従来の汎用または専用デジタルコンピュータ、演算処理装置、マシン、またはマイクロプロセッサを用いて、便利に実現されてもよい。ソフトウェア技術における当業者にとって明らかとなるであろうように、適宜なソフトウェアコーディングは、熟練したプラグラマーによって本開示の教示に基づいて容易に準備され得る。
【００３９】
実施例によっては、この発明は、この発明の処理のうち任意のものを行なうようコンピュータをプログラムするために用いることができる命令をその中/そこに記憶した記憶媒体またはコンピュータ読出可能媒体（メディア）であるコンピュータプログラム製品を含む。記憶媒体には、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、光磁気ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリ装置、磁気もしくは光カード、ナノシステム（分子記憶ＩＣを含む）を含めて、任意の種類のディスクまたは命令および／もしくはデータを記憶するために好適な任意の種類の媒体または装置が含まれ得るが、これに限定されない。
【００４０】
この発明の上述の説明は、例示および説明を目的としてなされた。網羅的であることまたはこの発明を開示されたまさにその通りの形態に限定することを意図するものではない。多くの修正例および変形例が当業者にとって明らかであるだろう。実施例は、この発明の原理およびその実際の適用を最もよく説明することによって、他の当業者がこの発明をさまざまな実施例について、企図される特定の用途に好適なさまざまな修正例とともに理解することを可能にするために選択され、記載された。この発明の範囲は、以下の特許請求の範囲およびその等価物によって規定されることが意図される。
【図１】
0005627690.tif 000002
【図２】
0005627690.tif 000003
【図３】
0005627690.tif 000004
【図４】
0005627690.tif 000005
【図５】
0005627690.tif 000006
【図６】
0005627690.tif 000007