(57)【特許請求の範囲】
【請求項１】
複数の仮想環境を階層的に生成するコンピュータにおいて、
前記複数の仮想環境のうち第１の仮想環境で動作する第１処理部が、
前記複数の仮想環境のうち第２の仮想環境から、適用すべき修正の情報を含む修正情報及び仮想環境の修正順序を示す順序情報を受信し、
前記第１の仮想環境より先に修正が適用されるべき仮想環境である第３の仮想環境を前記順序情報に基づき特定し、前記修正情報及び前記順序情報を前記第３の仮想環境に送信し、
適用が完了したことを前記第３の仮想環境から通知された場合、前記修正情報に基づき、前記第１の仮想環境に修正を適用し、
前記第１の仮想環境への修正の適用が完了した場合、前記第１の仮想環境への修正の適用が完了したことを前記第２の仮想環境に通知する、
処理を実行する修正適用方法。
【請求項２】
前記第２の仮想環境で動作する第２処理部が、
前記複数の仮想環境の各々から、適用順序の制約に関する制約情報を取得し、
前記複数の仮想環境の各々から取得した前記制約情報に基づき、前記順序情報を生成し、
前記複数の仮想環境のうち前記第２の仮想環境以外の仮想環境に対して、生成された前記順序情報を送信する、
請求項１記載の修正適用方法。
【請求項３】
前記制約情報は、
仮想環境上で動作するアプリケーションについての情報、仮想環境を生成するためのソフトウエアについての情報、仮想環境の役割についての情報、及び仮想環境の親子関係についての情報の少なくともいずれかを含む
請求項２記載の修正適用方法。
【請求項４】
前記第２の仮想環境で動作する第２処理部が、
前記複数の仮想環境の各々から、当該仮想環境上で実行されるソフトウエアについての情報を取得し、
前記複数の仮想環境の各々について、当該仮想環境上で実行されるソフトウエアについての情報に基づき、当該仮想環境に適用すべき修正の情報である第２の修正情報を生成し、
前記複数の仮想環境の各々について生成された前記第２の修正情報を含む前記修正情報を、前記複数の仮想環境のうち前記第２の仮想環境以外の仮想環境に対して送信する、
請求項１記載の修正適用方法。
【請求項５】
前記第２の修正情報は、修正を適用するためのプログラムをさらに含む
請求項４記載の修正適用方法。
【請求項６】
前記第２の修正情報は、ソフトウエア毎に、当該ソフトウエアについての修正の適用が完了した後に仮想環境の再起動を実行するか否かを表す情報をさらに含む
請求項４記載の修正適用方法。
【請求項７】
前記第１処理部は、
特定のソフトウエアについての修正が完了した後に前記第１の仮想環境を再起動する場合、前記第１の仮想環境を再起動することを前記第２の仮想環境に通知する、
処理をさらに実行する請求項６記載の修正適用方法。
【請求項８】
複数の仮想環境を階層的に生成する情報処理装置であって、
前記複数の仮想環境のうち第１の仮想環境で動作する第１処理部
を有し、
前記第１処理部が、
第２の仮想環境から、適用すべき修正の情報を含む修正情報及び仮想環境の修正順序を示す順序情報を受信し、
前記第１の仮想環境より先に修正が適用されるべき仮想環境である第３の仮想環境を前記順序情報に基づき特定し、前記修正情報及び前記順序情報を前記第３の仮想環境に送信し、
適用が完了したことを前記第３の仮想環境から通知された場合、前記修正情報に基づき、前記第１の仮想環境に修正を適用し、
前記第１の仮想環境への修正の適用が完了した場合、前記第１の仮想環境への修正の適用が完了したことを前記第２の仮想環境に通知する、
処理を実行することを特徴とする情報処理装置。
【請求項９】
複数の仮想環境を階層的に生成する情報処理装置におけるプロセッサに、
前記複数の仮想環境のうち第１の仮想環境から、適用すべき修正の情報を含む修正情報及び仮想環境の修正順序を示す順序情報を受信し、
前記複数の仮想環境のうち先に修正が適用されるべき仮想環境である第２の仮想環境を前記順序情報に基づき特定し、前記修正情報及び前記順序情報を前記第２の仮想環境に送信し、
適用が完了したことを前記第２の仮想環境から通知された場合、前記修正情報に基づき、自仮想環境に修正を適用し、
前記自仮想環境への修正の適用が完了した場合、前記自仮想環境への修正の適用が完了したことを前記第１の仮想環境に通知する、
処理を実行させるための修正適用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想環境に修正を適用する技術に関する。
【背景技術】
【０００２】
或るＯＳ（Operating System）（例えばＳｏｌａｒｉｓ（登録商標））は、互いに独立した複数の仮想環境（仮想ＯＳ環境とも呼ばれる）を１台の物理マシン上に生成する機能を有する。或る仮想環境はその仮想環境上にさらに仮想環境を生成することができるので、１台の物理マシン上に複数の仮想環境が階層的に生成される。なお、仮想環境とは、物理マシン上に仮想的に構築された仮想マシンが備える機能や仕様の総体のことである。
【０００３】
或る仮想環境（ここでは、仮想環境Ａとする）が仮想環境Ａ上に仮想環境（ここでは、仮想環境Ｂとする）を生成した場合、両者の間には種々の制約が生じる。例えば、仮想環境Ａを起動した後でなければ仮想環境Ｂを起動することができないという制約、或いは、仮想環境Ｂを停止した後でなければ仮想環境Ａを停止することができないという制約である。また、仮想環境Ｂ上で動作するソフトウエアの修正（例えばバージョン変更）を完了した後でなければ仮想環境Ａ上でソフトウエアの修正を開始することができないといった制約もある。また、仮想環境の生成に使用するソフトウエア（以下、仮想化機構と呼ぶ）の種類の違いが修正の適用順序に制約をもたらすこともある。
【０００４】
近年では、物理マシンの性能が向上したこと及び仮想化技術が進歩したことに伴い、１台の物理マシン上に多数（例えば数千）の仮想環境が生成されるようになった。そのため、管理者が上記のような制約を踏まえて多数の仮想環境の修正を手動で行うと膨大な工数がかかり、また、誤適用を発生させる原因になる。
【０００５】
上記のような問題に着目した、仮想化に関する従来技術は知られていない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２７７１８６号公報
【特許文献２】特開２００９−３７２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、１つの側面では、１台の物理サーバ上で階層的に生成された複数の仮想環境に対して適切な順序で修正を適用するための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る修正適用方法は、複数の仮想環境を階層的に生成するコンピュータにおいて実行される。そして、本修正適用方法は、複数の仮想環境のうち第１の仮想環境で動作する第１処理部が、複数の仮想環境のうち第２の仮想環境から、適用すべき修正の情報を含む修正情報及び仮想環境の修正順序を示す順序情報を受信し、第１の仮想環境より先に修正が適用されるべき仮想環境である第３の仮想環境を順序情報に基づき特定し、修正情報及び順序情報を第３の仮想環境に送信し、適用が完了したことを第３の仮想環境から通知された場合、修正情報に基づき、第１の仮想環境に修正を適用し、第１の仮想環境への修正の適用が完了した場合、第１の仮想環境への修正の適用が完了したことを第２の仮想環境に通知する処理を含む。
【発明の効果】
【０００９】
１つの側面では、１台の物理サーバ上で階層的に生成された複数の仮想環境に対して適切な順序で修正を適用できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施の形態における情報処理装置の機能ブロック図である。
【図２】図２は、仮想環境の機能ブロック図である。
【図３】図３は、仮想環境の階層構造の一例を示す図である。
【図４】図４は、収集処理の処理フローを示す図である。
【図５】図５は、第１コマンド格納部に格納される第１コマンドデータの一例を示す図である。
【図６】図６は、親子情報の一例を示す図である。
【図７】図７は、第２コマンド格納部に格納される第２コマンドデータの一例を示す図である。
【図８】図８は、収集処理の処理フローを示す図である。
【図９】図９は、ソフトウエア情報の一例を示す図である。
【図１０】図１０は、情報を収集する順序の一例を示す図である。
【図１１】図１１は、準備処理の処理フローを示す図である。
【図１２】図１２は、階層情報の一例を示す図である。
【図１３】図１３は、バージョンデータ格納部に格納されるバージョンデータの一例を示す図である。
【図１４】図１４は、機構データ格納部に格納される機構データの一例を示す図である。
【図１５】図１５は、第３コマンド格納部に格納される第３コマンドデータの一例を示す図である。
【図１６】図１６は、適用プログラムの一例を示す図である。
【図１７】図１７は、管理データの一例を示す図である。
【図１８】図１８は、準備処理の処理フローを示す図である。
【図１９】図１９は、適用順序の情報を生成する方法について説明するための図である。
【図２０】図２０は、適用順序の情報を生成する方法について説明するための図である。
【図２１】図２１は、適用順序の情報を生成する方法について説明するための図である。
【図２２】図２２は、適用順序の情報を生成する方法について説明するための図である。
【図２３】図２３は、適用順序の情報を生成する方法について説明するための図である。
【図２４】図２４は、適用順序の情報を生成する方法について説明するための図である。
【図２５】図２５は、適用順序の情報を生成する方法について説明するための図である。
【図２６】図２６は、適用処理の処理フローを示す図である。
【図２７】図２７は、適用処理の処理フローを示す図である。
【図２８】図２８は、適用処理の処理フローを示す図である。
【図２９Ａ】図２９Ａは、修正を適用する順序の一例を示す図である。
【図２９Ｂ】図２９Ｂは、修正を適用する順序の一例を示す図である。
【図３０】図３０は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１１】
図１に、本実施の形態における情報処理装置１の構成図を示す。情報処理装置１は、ＣＰＵ（Central Processing Unit）、メモリ、ＨＤＤ（Hard Disk Drive）、及びバス等を含むハードウエアリソース１０を有する。ハードウエアリソース１０上では、例えばハイパバイザである仮想化ソフトウエア１１が、例えばファームウエア層において実行される。仮想化ソフトウエア１１は、論理的に分離されたグローバル仮想環境１２１及びグローバル仮想環境１２２を生成する。
【００１２】
グローバル仮想環境１２１は、例えばＯＳ層において実現され、仮想環境を生成するためのソフトウエアである仮想化機構によって仮想環境１２１０を生成する。仮想環境１２１０は、仮想化機構によって仮想環境１２１１及び１２１２を生成する。グローバル仮想環境１２２は、仮想化機構によって仮想環境１２２０を生成する。仮想環境１２２０は、仮想化機構によって仮想環境１２２１及び１２２２を生成する。仮想環境１２２０乃至１２２２は、例えばアプリケーション層において実現される。仮想化機構は、ファームウエア層、ＯＳ層、及びアプリケーション層のいずれに含まれてもよい。また、図１においては仮想環境の数が６であるが、数に限定は無い。
【００１３】
上で述べたように、「仮想環境」とは、物理マシン上に仮想的に構築された仮想マシンが備える機能等の総体のことである。グローバル仮想環境１２１は、通常のＯＳの機能と同等の機能（例えばカーネルの機能等）を有しており、その機能を仮想環境１２１０乃至１２１２に提供する。仮想環境１２１０乃至１２１２は、グローバル仮想環境１２１の機能を利用することで、アプリケーション等の機能を提供する。なお、仮想環境１２１０乃至１２１２がＯＳの機能の少なくとも一部を有する場合もある。グローバル仮想環境１２２及び仮想環境１２２０乃至１２２２も同様である。
【００１４】
図２に、仮想環境１２１０乃至１２１２及び仮想環境１２２０乃至１２２２の機能ブロック図を示す。仮想環境１２１０は、収集処理部１２１０１と、準備処理部１２１０２と、適用処理部１２１０３と、第１コマンド格納部１２１１１と、第２コマンド格納部１２１１２と、収集データ格納部１２１１３と、修正データ格納部１２１１４と、機構データ格納部１２１１５と、第３コマンド格納部１２１１６と、バージョンデータ格納部１２１１７と、適用データ格納部１２１１８と、適用結果格納部１２１１９とを有する。
【００１５】
収集処理部１２１０１は、第１コマンド格納部１２１１１に格納されたデータ及び第２コマンド格納部１２１１２に格納されたデータに基づき処理を実行し、処理結果を収集データ格納部１２１１３に格納する。準備処理部１２１０２は、収集データ格納部１２１１３に格納されたデータ、修正データ格納部１２１１４に格納されたデータ、機構データ格納部１２１１５に格納されたデータ、第３コマンド格納部１２１１６に格納されたデータ、及びバージョンデータ格納部１２１１７に格納されたデータに基づき処理を実行し、処理結果を適用データ格納部１２１１８に格納する。適用処理部１２１０３は、適用データ格納部１２１１８に格納されたデータに基づき処理を実行し、処理結果を適用結果格納部１２１１９に格納する。
【００１６】
説明をわかりやすくするため、以下では図３に示すような階層構造を想定して説明を行う。図３においては、丸の図形が仮想環境を表す。第１階層には仮想環境I-a（例えば、仮想環境１２１０）と、仮想環境II-a（例えば、仮想環境１２１１）と、仮想環境II-b（例えば、仮想環境１２１２）とが属する。仮想環境II-a及びII-bは仮想環境I-a上で生成された仮想環境である。このような場合、仮想環境I-aを親又は親仮想環境と呼び、仮想環境II-a及びII-bを子又は子仮想環境と呼ぶ。仮想環境I-aは、仮想化機構Ｘによって仮想環境II-a及びII-bを生成する。
【００１７】
第２階層には仮想環境II-aと、仮想環境II-bと、仮想環境III-aと、仮想環境III-bと、仮想環境III-cと、仮想環境III-dとが属する。仮想環境III-a及びIII-bは仮想環境II-a上で生成された仮想環境である。仮想環境III-c及びIII-dは仮想環境II-b上で生成された仮想環境である。従って、仮想環境II-aは仮想環境III-a及びIII-bの親であり、仮想環境II-bは仮想環境III-c及びIII-dの親である。仮想環境II-aは、仮想化機構Ｙによって仮想環境III-aを生成し、仮想化機構Ｚによって仮想環境III-bを生成する。仮想環境II-bは、仮想化機構Ｚによって仮想環境III-c及びIII-dを生成する。α及びβは仮想環境の役割を表す。α及びβについては後述する。
【００１８】
このように、本実施の形態においては、親子によるグループの単位で階層を定義する。そのため、第１階層の子は第２階層の親になり、第２階層の子は第３階層の親になり・・・というように、親であり且つ子でもある仮想環境によって階層が連結される。
【００１９】
本実施の形態においては、第１階層の親仮想環境が、各仮想環境から情報を収集する処理（以下では、収集処理と呼ぶ）と、収集した情報に基づきソフトウエアの修正を適用するためのプログラム等を各仮想環境について生成する処理（以下では、準備処理と呼ぶ）と、生成したプログラム等に基づき各仮想環境に修正を適用する処理（以下では、適用処理と呼ぶ）とを実行する。ソフトウエアの修正とは、例えば、既に仮想環境に導入されているソフトウエア（ＯＳ、アプリケーションプログラムなど）のバージョン変更である。
【００２０】
はじめに、図４乃至図１０を用いて、収集処理部１２１０１が実行する収集処理について説明する。まず、収集処理部１２１０１が起動される。第１階層の親（図３の例では、仮想環境I-a）における収集処理部１２１０１については、情報処理装置１の管理者による起動指示によって、適用すべき修正がある場合に起動される。その他の収集処理部１２１０１については、後述するステップＳ９の処理によって起動される。
【００２１】
そして、収集処理部１２１０１は、第１コマンド格納部１２１１１に格納された第１コマンドデータに含まれる取得用コマンドを実行し、自仮想環境の親子情報を生成し（図４：ステップＳ１）、収集データ格納部１２１１３に格納する。
【００２２】
図５に、第１コマンド格納部１２１１１に格納される第１コマンドデータの一例を示す。図５の例では、仮想化機構の識別子と、親子情報を取得するための取得用コマンド、親子の判定基準を示すデータと、移動用コマンドとが格納される。例えば、仮想化機構Ｘを使用する仮想環境について親子情報を取得する場合には「ｃｏｍｍａｎｄ＿Ｘ」が実行される。そして、取得用コマンドの実行によって取得した値と親子の判定基準を示すデータとに基づき、親子情報が生成される。
【００２３】
図６に、親子情報の一例を示す。図６の例は、仮想環境II-aについて生成された親子情報の一例であり、親子情報は、仮想環境の識別子と、その仮想環境が使用する仮想化機構の識別子と、子仮想環境の識別子とを含む。
【００２４】
図４の説明に戻り、収集処理部１２１０１は、生成された親子情報に基づき、自仮想環境が親であるか判断する（ステップＳ３）。例えば、親子情報に子仮想環境の識別子が含まれる場合、自仮想環境は親である。
【００２５】
自仮想環境は親ではない場合（ステップＳ５：Ｎｏルート）、処理は端子Ａを介して図８のステップＳ１３に移行する。一方、自仮想環境は親である場合（ステップＳ５：Ｙｅｓルート）、収集処理部１２１０１は、親子情報に基づき未処理の子を１つ特定する（ステップＳ６）。そして、収集処理部１２１０１は、第１コマンドデータ、第２コマンドデータ、及び収集処理プログラムを子仮想環境に送信する（ステップＳ７）。なお、実際には、子仮想環境にデータを送信する場合、子仮想環境と親仮想環境とが共用する記憶領域にデータが格納される。また、収集処理プログラムが予め各仮想環境に配置されている場合には、ステップＳ７において収集処理プログラムを送信しなくてもよい。
【００２６】
図７に、第２コマンド格納部１２１１２に格納される第２コマンドデータの一例を示す。図７の例では、ソフトウエア（すなわちアプリケーション）の識別子と、項目と、取得用コマンドとが格納される。
【００２７】
図４の説明に戻り、収集処理部１２１０１は、子仮想環境上で収集プログラムを実行させることにより、子仮想環境上で収集処理部１２１０１を起動させる（ステップＳ９）。なお、ステップＳ９においては、第１コマンド格納部１２１１１に格納された移動用コマンドを実行することによって、制御の移動が行われる。但し、本実施の形態における主要部分とは関係が無いので、詳細な説明を省略する。
【００２８】
収集処理部１２１０１は、親子情報に基づき未処理の子仮想環境が有るか判断する（ステップＳ１１）。未処理の子仮想環境が有る場合（ステップＳ１１：Ｙｅｓルート）、ステップＳ６の処理に戻る。一方、未処理の子仮想環境が無い場合（ステップＳ１１：Ｎｏルート）、処理は端子Ａを介して図８のステップＳ１３の処理に移行する。
【００２９】
図８の説明に移行し、収集処理部１２１０１は、親子情報に基づき子仮想環境が有るか判断する（ステップＳ１３）。子仮想環境が無い場合（ステップＳ１３：Ｎｏルート）、ステップＳ１９の処理に移行する。子仮想環境が有る場合（ステップＳ１３：Ｙｅｓルート）、収集処理部１２１０１は、一定時間待機する（ステップＳ１５）。
【００３０】
収集処理部１２１０１は、各子仮想環境から親子情報及びソフトウエア情報を取得したか判断する（ステップＳ１７）。後述のステップＳ２５において説明するように、親子情報及びソフトウエア情報を取得した仮想環境は、その仮想環境の親に親子情報及びソフトウエア情報を送信するようになっている。子仮想環境が複数存在する場合には、複数の子仮想環境の各々から親子情報及びソフトウエア情報を取得するまではステップＳ１９以降の処理は実行されない。
【００３１】
各子仮想環境から親子情報及びソフトウエア情報を取得していない場合（ステップＳ１７：Ｎｏルート）、ステップＳ１５の処理に戻る。一方、各子仮想環境から親子情報及びソフトウエア情報を取得した場合（ステップＳ１７：Ｙｅｓルート）、収集処理部１２１０１は、各子仮想環境から取得した親子情報及びソフトウエア情報を、収集データ格納部１２１１３に格納する（ステップＳ１９）。
【００３２】
収集処理部１２１０１は、第２コマンドデータに含まれる取得用コマンドを実行することで、自仮想環境のソフトウエア情報を取得し、収集データ格納部１２１１３に格納する（ステップＳ２１）。ステップＳ２１においては、自仮想環境におけるソフトウエアの各項目について、取得用コマンドが実行される。
【００３３】
図９に、ソフトウエア情報の一例を示す。図９の例では、ソフトウエア情報は、ソフトウエアの識別子と、ソフトウエアの現在のバージョンを示す情報と、そのソフトウエアに対して現在適用されている修正のレベル（以下、修正レベルと呼ぶ）を示す情報とを含む。
【００３４】
図８の説明に戻り、収集処理部１２１０１は、自仮想環境が子仮想環境であるか判断する（ステップＳ２３）。自仮想環境が子仮想環境であるか否かは、ステップＳ７の処理によって親仮想環境からデータを受信したか否かによって判断することができる。
【００３５】
自仮想環境が子仮想環境ではない場合（ステップＳ２３：Ｎｏルート）、処理を終了する。自仮想環境が子仮想環境である場合（ステップＳ２３：Ｙｅｓルート）、収集処理部１２１０１は、収集データ格納部１２１１３に格納された親子情報及びソフトウエア情報（すなわち、自仮想環境の親子情報及びソフトウエア情報と、取得した親子情報及びソフトウエア情報）を、親仮想環境に送信する（ステップＳ２５）。なお、実際には、親仮想環境にデータを送信する場合、子仮想環境と親仮想環境とが共用する記憶領域にデータが格納される。そして処理を終了する。
【００３６】
以上のような処理を実行すれば、図１０に示すような順序で各仮想環境の情報が取得されるようになる。図１０に示すように、収集処理は第１階層の親仮想環境である仮想環境I-aから開始する。仮想環境I-aにおける収集処理部１２１０１は、仮想環境II-a及びII-bにおける収集処理部１２１０１を起動する（すなわち、収集指示を送る）。仮想環境II-bにおける収集処理部１２１０１は、仮想環境III-c及びIII-dにおける収集処理部１２１０１に収集指示を送る。仮想環境III-c及びIII-dにおける収集処理部１２１０１は、情報の収集を行い、収集の結果を仮想環境II-bにおける収集処理部１２１０１に送る。仮想環境II-bにおける収集処理部１２１０１は情報の収集を行い、自仮想環境における収集の結果と仮想環境III-c及びIII-dから受け取った収集の結果とを仮想環境I-aにおける収集処理部１２１０１に送る。同様に、仮想環境II-aにおける収集処理部１２１０１は、仮想環境III-a及びIII-bにおける収集処理部１２１０１に収集指示を送る。仮想環境III-a及びIII-bにおける収集処理部１２１０１は、情報の収集を行い、収集の結果を仮想環境II-aにおける収集処理部１２１０１に送る。仮想環境II-aにおける収集処理部１２１０１は情報の収集を行い、自仮想環境における収集の結果と仮想環境III-a及びIII-bから受け取った収集の結果とを仮想環境I-aにおける収集処理部１２１０１に送る。
【００３７】
次に、図１１乃至図２５を用いて、準備処理部１２１０２が実行する準備処理について説明する。第１階層の親仮想環境における収集処理部１２１０１は、収集処理が完了した場合、収集処理が完了したことを準備処理部１２１０２に通知する
【００３８】
そして、準備処理部１２１０２は、収集データ格納部１２１１３に格納された、各仮想環境についての親子情報に基づき、階層情報を生成する（図１１：ステップＳ３１）。
【００３９】
図１２に、階層情報の一例を示す。図１２の例では、階層情報は、階層の識別子と、その階層における親仮想環境の識別子と、その階層における子仮想環境の識別子とを含む。なお、図１２に示されているように、仮想環境III-a乃至III-dには子仮想環境が無いため実際には仮想環境III-a乃至III-dは親仮想環境ではないが、説明の都合上、親仮想環境の識別子のカラムに仮想環境III-a乃至III-dの識別子が格納されている。
【００４０】
図１１の説明に戻り、準備処理部１２１０２は、処理対象を第１階層の親（例えば、図３における仮想環境I-a）に設定する（ステップＳ３３）。
【００４１】
準備処理部１２１０２は、処理対象の仮想環境について、収集データ格納部１２１１３に格納されているソフトウエア情報及びバージョンデータ格納部１２１１７に格納されているバージョンデータに基づき、修正を適用すべきソフトウエア及びその修正レベルを特定する（ステップＳ３５）。
【００４２】
図１３に、バージョンデータ格納部１２１１７に格納されるバージョンデータの一例を示す。図１３の例では、ソフトウエアの識別子と、バージョンを示す情報と、最新の修正レベルを示す情報とが格納される。上で述べたように、ソフトウエア情報には現在のバージョンを示す情報と現在の修正レベルを示す情報とが含まれているので、バージョンデータを利用すれば、修正を適用すべきソフトウエア及びその修正レベルを特定できる。なお、バージョンデータは、管理者等によって最新の状態に維持される。
【００４３】
図１１の説明に戻り、準備処理部１２１０２は、処理対象の仮想環境について、ソフトウエア情報、機構データ、及び第３コマンド格納部１２１１６に格納された第３コマンドデータに基づき、再起動の回数を算出する（ステップＳ３７）。
【００４４】
再起動回数は、機構データ格納部１２１１５に格納されている、後処理の内容を示す情報、及び、第３コマンド格納部１２１１６に格納されている、各ソフトウエアの後処理の内容を示す情報に基づき決定される。例えば、或る仮想環境が使用する仮想化機構についての後処理に再起動が含まれており、且つ、その仮想環境に適用される修正のうち２つの修正について後処理を実行する場合、再起動回数は３である。
【００４５】
図１４に、機構データ格納部１２１１５に格納される機構データの一例を示す。図１４の例では、仮想化機構の識別子と、同じ階層内での優先順位を示す情報と、親子間の優先順位を示す情報と、前処理の内容を示す情報と、後処理の内容を示す情報とが格納される。ここでの前処理とは、或る仮想環境について修正を適用すべき場合に事前に行うべき処理であり、ここでの後処理とは、或る仮想環境について修正を適用し終えた場合に行うべき処理である。その他の項目については後述する。
【００４６】
図１５に、第３コマンド格納部１２１１６に格納される第３コマンドデータの一例を示す。図１５の例では、ソフトウエアの識別子と、適用順序と、前処理の内容を示す情報と、後処理の内容を示す情報と、適用コマンドとが格納される。ここでの前処理とは、或るソフトウエアについて修正を適用すべき場合に事前に行うべき処理であり、ここでの後処理とは、或るソフトウエアについて修正を適用し終えた場合に行うべき処理である。適用コマンドは、適用についてのコード、前処理についてのコード、及び後処理についてのコードを含む。
【００４７】
図１１の説明に戻り、準備処理部１２１０２は、第３コマンドデータにおける適用コマンド基づき、ステップＳ３５において特定されたソフトウエア毎に適用プログラムを生成する（ステップＳ３９）。
【００４８】
図１６に、ステップＳ３９において生成される適用プログラムの一例を示す。図１６には、適用プログラムの一例として、「II-a-01.sh」という名前の適用プログラム１６０１と、「II-a-02.sh」という名前の適用プログラム１６０２とが示されている。適用プログラムは、第３コマンドデータにおける適用コマンドと、ステップＳ３９の処理によって追加されたコードとを含む。例えば適用プログラム１６０１には、ステップＳ３９の処理によって、再起動を通知するためのコマンドである「INFORM reboot」が追加される。また、適用プログラム１６０２には、ステップＳ３９の処理によって、終了を通知するためのコマンドである「INFORM end」が追加される。なお、ステップＳ３９においては実際に適用プログラムを実行できるようにするために形式を整える処理等も行われるが、本実施の形態における主要なとは直接関係しないので、説明を省略する。
【００４９】
図１１の説明に戻り、準備処理部１２１０２は、親子情報及び機構データに基づき、処理対象の仮想環境が使用する仮想化機構についての前処理プログラム及び後処理プログラムを生成する（ステップＳ４１）。例えば図１４における仮想化機構Ｘであれば、子仮想環境の停止及びＩＯ（Input Output）を停止するための前処理プログラムと、再起動するための後処理プログラムとが生成される。なお、仮想化機構毎に、図１６における適用コマンドのような雛型プログラムを予め生成しておいてもよい。また、使用する仮想化機構が無い場合には、デフォルトの前処理及び後処理について前処理プログラム及び後処理プログラムを生成してもよい。
【００５０】
準備処理部１２１０２は、収集データ格納部１２１１３に格納された親子情報及びステップＳ３５乃至Ｓ４１の処理結果に基づき、管理データにおける、処理対象の仮想環境についてのエントリを生成する（ステップＳ４３）。処理は端子Ｂを介して図１８のステップＳ４５に移行する。
【００５１】
図１７に、準備処理によって最終的に生成される管理データの一例を示す。図１７の例では、仮想環境の識別子と、その仮想環境の親仮想環境の識別子と、適用順序と、再起動回数と、ソフトウエアの識別子と、バージョンを示す情報と、現在の修正レベルを示す情報と、適用する修正レベルを示す情報と、適用プログラムの識別子とが含まれる。なお、ステップＳ４３において生成されたエントリには、適用順序の情報が含まれず、後述のステップＳ５３の処理によって生成される。また、ステップＳ４３の処理によって１つの仮想環境についてエントリが生成されるので、必ずしもステップＳ４３の時点で図１７に示すような管理データが生成されるわけではない。
【００５２】
図１８の説明に移行し、準備処理部１２１０２は、処理対象の仮想環境と同じ階層に未処理の仮想環境が有るか判断する（ステップＳ４５）。同じ階層に未処理の仮想環境が有る場合（ステップＳ４５：Ｙｅｓルート）、準備処理部１２１０２は、同じ階層において未処理の仮想環境を処理対象に設定する（ステップＳ４７）。処理は端子Ｃを介して図１１のステップＳ３５に戻る。
【００５３】
一方、同じ階層において未処理の仮想環境が無い場合（ステップＳ４５：Ｎｏルート）、準備処理部１２１０２は、処理対象の仮想環境より１つ下の階層の仮想環境が有るか判断する（ステップＳ４９）。
【００５４】
処理対象の仮想環境より１つ下の階層の仮想環境が有る場合（ステップＳ４９：Ｙｅｓルート）、準備処理部１２１０２は、処理対象の仮想環境より１つ下の階層において未処理の仮想環境を処理対象に設定する（ステップＳ５１）。処理は端子Ｃを介して図１１のステップＳ３５に戻る。
【００５５】
一方、処理対象の仮想環境より１つ下の階層の仮想環境が無い場合（ステップＳ４９：Ｎｏルート）、準備処理部１２１０２は適用順序の情報を生成し、管理データに付加する（ステップＳ５３）。
【００５６】
図１９乃至図２５を用いて、適用順序の情報を生成する方法について説明する。まず、準備処理部１２１０２は、収集データ格納部１２１１３に格納された親子情報を、図１９に示すように整理する。図１９に示したデータは、各仮想環境から取得した親子情報を連結したデータである。
【００５７】
そして、図１９に示したデータと機構データとに基づき、親子モデル内の適用順序を図２０に示すように決定する。例えば仮想化機構I-aは仮想化機構Ｘを使用しており、機構データにおける仮想化機構Ｘについてのエントリによれば、親の優先順位は２であり、２つの子の優先順位はいずれも１である。従って、図２０の２００１に示すように適用順序が決定される。また、仮想化機構II-bは仮想化機構Ｚを使用しており、機構データにおける仮想化機構Ｚについてのエントリによれば、親の優先順位は３であり、役割が「α」である子の優先順位は２であり、役割が「β」である子の優先順位は１である。従って、図２０の２００２に示すように適用順序が決定される。
【００５８】
次に、図２０に示したデータに基づき、図２１に示す、親子モデル間の関係を表すデータを生成する。例えば仮想環境II-aは、図２０において、仮想化機構Ｘについてのデータと、仮想化機構Ｙについてのデータと、仮想化機構Ｚについてのデータとに出現する。そして、仮想化機構Ｘについては順位が１であり、仮想化機構Ｙについては順位が２であり、仮想化機構Ｚについては順位が３である。従って、図２１におけるエントリ２１０１が生成される。また、例えば仮想環境II-bは、図２０において仮想化機構Ｘについてのデータと、仮想化機構Ｙについてのデータとに出現する。そして、仮想化機構Ｘについては順位が１であり、仮想化機構Ｚについては順位が３であるので、図２１におけるエントリ２１０２が生成される。
【００５９】
次に、図２１に示したデータに対し、第２階層での順位を示す情報を付加する。機構データにおける「同じ階層内での優先順位を示す情報」によれば、同じ階層内においては仮想化機構Ｙは仮想化機構Ｚより順位が高いので、第２階層内での順位を示す情報が、図２２に示すように付加される。
【００６０】
次に、図２２に示したデータに基づき、図２３に示すデータを生成する。具体的には、図２２において階層が１であり且つ仮想化機構がＸであるカラムについては、図２３におけるエントリ２３０１を生成し、図２２において階層が２であり且つ仮想化機構がＹであるカラムについては、図２３におけるエントリ２３０２を生成し、図２２において階層が２であり且つ仮想化機構がＺであるカラムの１つめについては、図２３におけるエントリ２３０３を生成し、階層が２であり且つ仮想化機構がＺであるカラムの２つめについては、図２３におけるエントリ２３０４を生成する。さらに、図２２における「第２階層での順位」に基づき、仮想化機構Ｙに対応付けられている仮想環境III-aの方が仮想化機構Ｚに対応付けられている仮想環境III-bより優先順位が高いと判断できるので、図２３におけるエントリ２３０５を生成する。
【００６１】
次に、図２３に示したデータに基づき、図２４に示すデータを生成する。ここでは、エントリ間で同じ仮想環境がある場合にはそれらの位置を合わせる処理が行われる。例えば図２３においてエントリ２３０３におけるIII-bとエントリ２３０５におけるIII-bとが同じであるので、位置が合わせられる。ここで、仮想環境III-a及びIII-dには順位「１」が付与され、仮想環境III-b及びIII-cには順位「２」が付与され、仮想環境II-a及びII-bには順位「３」が付与され、仮想環境I-aには順位「４」が付与される。
【００６２】
最後に、図２４に示したデータに基づき、図２５に示すデータを生成する。図２５に示すデータは、図２２に示したデータに、図２４で決定された順序の情報が付加されたデータである。図２５に示した順序の情報に含まれる数字と、第３コマンド格納部１２１１６に格納された適用順序の情報に含まれる数字とをハイフンでつないだ形式で最終的な適用順序が生成される。そして、最終的な適用順序を管理データに付加すると、図１７に示した管理データが完成する。本実施の形態においては、ハイフンの前にある数字が小さいほど順番が先であり、ハイフンの前の数字が同じである場合、ハイフンの後にある数字が小さいほど順番が先である。
【００６３】
図１８の説明に戻り、準備処理部１２１０２は、ステップＳ５３の処理により適用順序の情報が付加された管理データ、ステップＳ４１の処理により生成された前処理プログラム及び後処理プログラム、ステップＳ３９において生成された適用プログラム、並びにソフトウエアの修正に使用する修正データを含む適用データを生成し（ステップＳ５５）、適用データ格納部１２１１８に格納する。
【００６４】
以上のような処理を実行すれば、仮想環境上で動作するソフトウエア、仮想化機構、及び仮想環境の親子関係、及び仮想環境の役割についての制約に基づいて適切な適用順序を生成できるようになる。これにより、誤った順序で修正を適用することによって問題が生じることを防止できるようになる。また、たとえ仮想化機構の種類が増えたり、階層の構造が変更されたとしても、関係するデータを書き換え、収集処理及び準備処理をやり直すだけでよい。
【００６５】
次に、図２６乃至図２９Ｂを用いて、適用処理部１２１０３が実行する適用処理について説明する。
【００６６】
まず、適用処理部１２１０３が起動される。第１階層の親（図３の例では、仮想環境I-a）における適用処理部１２１０３については、情報処理装置１の管理者による起動指示によって起動される。その他の適用処理部１２１０３については、後述するステップＳ７１の処理によって起動される。なお、後述するステップＳ８９の処理によって、適用プログラムの一部が起動時の処理プログラムに追加された場合には、起動時に適用プログラムの一部が実行される。
【００６７】
そして、適用処理部１２１０３は、今回の起動が初回の起動であるか判断する（図２６：ステップＳ６１）。初回の起動ではない場合（ステップＳ６１：Ｎｏルート）、適用処理部１２１０３は、起動時に親仮想環境から受信した「実行済みの再起動の回数」に基づき再開ポイントを特定する（ステップＳ６３）。処理は端子Ｄを介して図２７のステップＳ８１に移行する。再開ポイントとは、適用処理の再開位置である。
【００６８】
本実施の形態においては、親仮想環境の適用処理部１２１０３が、子仮想環境において実行した再起動の回数を管理することで、どの段階まで適用処理が進んだか把握されるようになっている。具体的には、親仮想環境の適用処理部１２１０３は、子仮想環境から受信する後述の再起動通知の数を計数する。親仮想環境の適用処理部１２１０３は、子仮想環境から再起動通知を受信すると、子仮想環境に対してポーリングを行い、子仮想環境が再起動されるまで待つ。再起動が完了すると、子仮想環境に対して、計数された再起動通知の数（すなわち、再起動が行われた数）を通知する。子仮想環境の適用処理部１２１０３は、計数された再起動通知の数と、管理データに含まれる再起動回数及び適用順序等とに基づき、再開ポイントを特定することができる。
【００６９】
一方、初回起動である場合（ステップＳ６１：Ｙｅｓルート）、適用処理部１２１０３は、適用データ格納部１２１１８に格納された適用データに含まれる管理データに基づき、自仮想環境が親仮想環境であるか判断する（ステップＳ６５）。
【００７０】
自仮想環境は親仮想環境ではない場合（ステップＳ６７：Ｎｏルート）、処理は端子Ｄを介して図２７のステップＳ８１に移行する。自仮想環境は親仮想環境である場合（ステップＳ６７：Ｙｅｓルート）、適用処理部１２１０３は、未処理の子仮想環境が有るか判断する（ステップＳ６９）。
【００７１】
未処理の子仮想環境が有る場合（ステップＳ６９：Ｙｅｓルート）、未処理の子仮想環境を１つ特定する。そして、適用処理部１２１０３は、適用データ格納部１２１１８に格納された適用データを、特定された子仮想環境に送信する（ステップＳ７１）。なお、実際には、子仮想環境にデータを送信する場合、子仮想環境と親仮想環境とが共用する記憶領域にデータが格納される。そして、子仮想環境の適用処理部１２１０３は、適用データを受信すると、適用データ格納部１２１１８に格納する。
【００７２】
適用処理部１２１０３は、管理データに含まれる適用順序の情報に基づき、複数の子仮想環境に修正を並列適用可能であるか判断する（ステップＳ７３）。例えば図１７の例であれば、仮想環境II-aの順番は仮想環境II-bの順番と同じである（両者とも「３」である）ので、並列適用可能である。これに対し、仮想環境III-aの順番は仮想環境III-bの順番と同じではない（前者は「１」であり後者は「２」である）ので、並列適用可能ではない。
【００７３】
並列適用可能である場合（ステップＳ７３：Ｙｅｓルート）、ステップＳ６９の処理に戻る。一方、並列適用可能ではない場合（ステップＳ７３：Ｎｏルート）、適用処理部１２１０３は、適用結果の送信先の子仮想環境から適用結果を受信するまで待機する（ステップＳ７５）。適用結果を受信した場合、適用処理部１２１０３は、適用結果を適用結果格納部１２１１９に格納し、ステップＳ６９の処理に戻る。
【００７４】
一方、未処理の子仮想環境が無い場合（ステップＳ６９：Ｎｏルート）、適用処理部１２１０３は、並列適用可能な複数の子仮想環境が有るか判断する（ステップＳ７７）。並列適用可能な複数の子仮想環境が無い場合（ステップＳ７７：Ｎｏルート）、処理は端子Ｄを介して図２７のステップＳ８１の処理に移行する。
【００７５】
並列適用可能な複数の子仮想環境が有る場合（ステップＳ７７：Ｙｅｓルート）、適用処理部１２１０３は、適用結果を各子仮想環境から受信するまで待機する（ステップＳ７９）。適用結果を各子仮想環境から受信した場合、処理は端子Ｄを介して図２７のステップＳ８１の処理に移行する。
【００７６】
図２７の説明に移行し、適用処理部１２１０３は、未適用の修正が有るか判断する（ステップＳ８１）。未適用の修正が有るか否かは、再開ポイントに基づき判断される。なお、初回の適用の場合には、管理データを参照することによって未適用の修正が有るか判断される。
【００７７】
未適用の修正が有る場合（ステップＳ８１：Ｙｅｓルート）、適用処理部１２１０３は、初回の適用である場合には適用データに含まれる前処理プログラムを実行する（ステップＳ８３）。初回の適用ではない場合、前処理プログラムは実行されない。
【００７８】
適用処理部１２１０３は、管理データから未適用の修正を１つ特定する（ステップＳ８５）。そして、適用処理部１２１０３は、特定された修正の適用中に再起動が有るか判断する（ステップＳ８７）。適用中に再起動が有るか否かは、適用プログラムの中に再起動することを示すコードが含まれているか否かによって判断される。
【００７９】
適用中に再起動が無い場合（ステップＳ８７：Ｎｏルート）、ステップＳ９１の処理に移行する。適用中に再起動が有る場合（ステップＳ８７：Ｙｅｓルート）、適用処理部１２１０３は、特定された修正用の適用プログラムのうち再起動後の部分を、起動時の処理プログラム（具体的には、起動時にＯＳが実行する処理のプログラム）に追加する（ステップＳ８９）。
【００８０】
適用処理部１２１０３は、特定された修正用の適用プログラムを実行し（ステップＳ９１）、適用結果を適用結果格納部１２１１９に格納する。ステップＳ８９の処理を実行した場合には、特定された修正用の適用プログラムのうち再起動の前の部分が実行される。また、適用データに含まれる修正データは、本処理において利用される。
【００８１】
適用処理部１２１０３は、再起動を要するか判断する（ステップＳ９３）。再起動を要しない場合（ステップＳ９３：Ｎｏルート）、ステップＳ８１の処理に戻る。
【００８２】
再起動を要する場合（ステップＳ９３：Ｙｅｓルート）、適用処理部１２１０３は、親仮想環境に再起動通知を送信する（ステップＳ９５）。なお、実際には、親仮想環境にデータを送信する場合、子仮想環境と親仮想環境とが共用する記憶領域にデータが格納される。また、上で述べたように、再起動通知を受信した親仮想環境は、再起動通知の数を１インクリメントし、子仮想環境が起動した後、再起動の実行回数を子仮想環境に通知する。
【００８３】
適用処理部１２１０３は、再起動を実行する（ステップＳ９７）。これにより仮想環境は停止し、再びステップＳ６１から処理を開始する。
【００８４】
一方、ステップＳ８１において未適用の修正が無いと判断された場合（ステップＳ８１：Ｎｏルート）、処理は端子Ｅを介して図２８のステップＳ９９に移行する。
【００８５】
図２８の説明に移行し、適用処理部１２１０３は、後処理プログラムの中に再起動することを示すコードが含まれているか否かに基づき、後処理に再起動が含まれるか判断する（ステップＳ９９）。後処理に再起動が含まれない場合（ステップＳ９９：Ｎｏルート）、適用処理部１２１０３は、後処理プログラムを実行する（ステップＳ１０１）。
【００８６】
適用処理部１２１０３は、子仮想環境から取得した適用結果と、自仮想環境の適用結果とを適用結果格納部１２１１９から読み出し、親仮想環境に送信する（ステップＳ１０３）。そして処理を終了する。なお、実際には、親仮想環境にデータを送信する場合、子仮想環境と親仮想環境とが共用する記憶領域にデータが格納される。
【００８７】
一方、後処理に再起動が含まれると判断された場合（ステップＳ９９：Ｙｅｓルート）、適用処理部１２１０３は、後処理を実行済みであるか判断する（ステップＳ１０５）。後処理を実行済みであるか否かは、例えば、再開ポイントに基づき判断される。
【００８８】
後処理を実行済みである場合（ステップＳ１０５：Ｙｅｓルート）、ステップＳ１０３の処理に移行する。一方、後処理を実行済みではない場合（ステップＳ１０５：Ｎｏルート）、適用処理部１２１０３は、親仮想環境に再起動通知を送信する（ステップＳ１０７）。なお、実際には、親仮想環境にデータを送信する場合、子仮想環境と親仮想環境とが共用する記憶領域にデータが格納される。
【００８９】
そして、適用処理部１２１０３は、後処理プログラムを実行する（ステップＳ１０９）。そして処理を終了する。
【００９０】
以上のような処理を実行すれば、複数の仮想環境に対する修正の適用を自動的に行えるようになる。これにより、管理者の手間を削減するとともに、管理者の高度な知識及びスキルが不要になる。また、誤って修正を適用してしまうことを防止できるようになる。さらに、修正を適用した際に再起動を行うべきである場合にも対処できるようになる。
【００９１】
本実施の形態によれば、図２９Ａに示すような順序で各仮想環境に修正が適用されるようになる。図２９Ａに示すように、適用処理は第１階層の親仮想環境である仮想環境I-aから開始する。仮想環境I-aにおける適用処理部１２１０３は、並列適用が可能である場合は仮想環境II-a及びII-bにおける適用処理部１２１０３を並列で起動する（すなわち、適用指示を送る）。仮想環境II-bにおける適用処理部１２１０３は、並列適用が可能である場合は仮想環境III-c及びIII-dにおける適用処理部１２１０３に並列に適用指示を送る。仮想環境III-c及びIII-dにおける適用処理部１２１０３は、修正の適用を行い、適用結果を仮想環境II-bにおける適用処理部１２１０３に送る。仮想環境II-bにおける適用処理部１２１０３は自仮想環境に対して修正の適用を行い、自仮想環境における適用結果と仮想環境III-c及びIII-dから受け取った適用結果とを仮想環境I-aにおける適用処理部１２１０３に送る。
【００９２】
同様に、仮想環境II-aにおける適用処理部１２１０３は、並列適用が可能である場合は仮想環境III-a及びIII-bにおける適用処理部１２１０３に並列に適用指示を送る。仮想環境III-a及びIII-bにおける適用処理部１２１０３は、修正の適用を行い、適用結果を仮想環境II-aにおける適用処理部１２１０３に送る。仮想環境II-aにおける適用処理部１２１０３は修正の適用を行い、自仮想環境における適用結果と仮想環境III-a及びIII-bから受け取った適用結果とを仮想環境I-aにおける適用処理部１２１０３に送る。
【００９３】
但し、同じ階層に属する複数の仮想環境に対して修正を並列に適用できない場合もある。図２９Ｂに、同じ階層に属する複数の仮想環境に対して修正を並列に適用できない場合における修正適用の順序の一例を示す。図２９Ｂに示すように、適用処理は第１階層の親仮想環境である仮想環境I-aから開始する。仮想環境I-aにおける適用処理部１２１０３は、適用の順番が仮想環境II-aより前である仮想環境II-bにおける適用処理部１２１０３に適用指示を送る。仮想環境II-bにおける適用処理部１２１０３は、適用の順番が仮想環境III-dより前である仮想環境III-cにおける適用処理部１２１０３に適用指示を送る。仮想環境III-cにおける適用処理部１２１０３は、修正の適用を行い、適用結果を仮想環境II-bにおける適用処理部１２１０３に送る。仮想環境II-bにおける適用処理部１２１０３は、仮想環境III-cから適用結果を受け取ると、仮想環境III-dにおける適用処理部１２１０３に適用指示を送る。仮想環境III-dにおける適用処理部１２１０３は、修正の適用を行い、適用結果を仮想環境II-bにおける適用処理部１２１０３に送る。仮想環境II-bにおける適用処理部１２１０３は、仮想環境III-dから適用結果を受け取ると、修正の適用を行い、自仮想環境における適用結果と仮想環境III-c及びIII-dから受け取った適用結果とを仮想環境I-aにおける適用処理部１２１０３に送る。
【００９４】
仮想環境I-aにおける適用処理部１２１０３は、適用結果を仮想環境II-bから受け取ると、適用の順番が仮想環境II-bより後である仮想環境II-aにおける適用処理部１２１０３に適用指示を送る。仮想環境II-aにおける適用処理部１２１０３は、適用の順番が同じである仮想環境III-a及びIII-bに適用指示を送る。仮想環境III-a及びIII-bにおける適用処理部１２１０３は、修正の適用を行い、適用結果を仮想環境II-aにおける適用処理部１２１０３に送る。仮想環境II-aにおける適用処理部１２１０３は修正の適用を行い、自仮想環境における適用結果と仮想環境III-a及びIII-bから受け取った適用結果とを仮想環境I-aにおける適用処理部１２１０３に送る。
【００９５】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した情報処理装置１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００９６】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００９７】
また、収集処理においては下層から順に情報を収集するが、収集処理については順序の制約が無いので、他の順序で情報を収集してもよい。
【００９８】
なお、上で述べた情報処理装置１は、コンピュータ装置であって、図３０に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００９９】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【０１００】
本実施の形態に係る修正適用方法は、複数の仮想環境を階層的に生成するコンピュータにおいて実行される。そして、本仮想環境設定方法は、複数の仮想環境のうち第１の仮想環境で動作する第１処理部が、（Ａ）複数の仮想環境のうち第２の仮想環境から、適用すべき設定の情報を含む設定情報及び仮想環境の設定順序を示す順序情報を受信し、（Ｂ）第１の仮想環境より先に設定が適用されるべき仮想環境である第３の仮想環境を順序情報に基づき特定し、設定情報及び順序情報を第３の仮想環境に送信し、（Ｃ）適用が完了したことを第３の仮想環境から通知された場合、設定情報に基づき、第１の仮想環境に設定を適用し、（Ｄ）第１の仮想環境への設定の適用が完了した場合、第１の仮想環境への設定の適用が完了したことを第２の仮想環境に通知する処理を含む。
【０１０１】
このようにすれば、順序情報に従った適用を行えるので、１台の物理サーバ上で階層的に生成された複数の仮想環境に対して適切な順序で設定を適用できるようになる。
【０１０２】
また、本仮想環境設定方法は、上で述べた第２の仮想環境で動作する第２処理部が、（Ｅ）複数の仮想環境の各々から、適用順序の制約に関する制約情報を取得し、（Ｆ）記複数の仮想環境の各々から取得した制約情報に基づき、順序情報を生成し、（Ｇ）複数の仮想環境のうち第２の仮想環境以外の仮想環境に対して、生成された順序情報を送信する処理をさらに含んでもよい。このようにすれば、各仮想環境において順序情報を利用できるようになる。
【０１０３】
また、上で述べた制約情報は、仮想環境上で動作するアプリケーションについての情報、仮想環境を生成するためのソフトウエアについての情報、仮想環境の役割についての情報、及び仮想環境の親子関係についての情報の少なくともいずれかを含んでもよい。このようにすれば、適切な順序情報を生成できるようになる。
【０１０４】
また、本仮想環境設定方法は、上で述べた第２の仮想環境で動作する第２処理部が、（Ｈ）複数の仮想環境の各々から、当該仮想環境の現在の設定についての情報を取得し、（Ｉ）複数の仮想環境の各々について、当該仮想環境の現在の設定についての情報に基づき、当該仮想環境に適用すべき設定の情報である第２の設定情報を生成し、（Ｊ）複数の仮想環境の各々について生成された第２の設定情報を含む設定情報を、複数の仮想環境のうち第２の仮想環境以外の仮想環境に対して送信する処理をさらに含んでもよい。このようにすれば、各仮想環境において設定情報を利用できるようになる。
【０１０５】
また、上で述べた第２の設定情報は、設定を適用するためのプログラムをさらに含んでもよい。このようにすれば、各仮想環境において自動的に設定を適用できるようになる。
【０１０６】
また、上で述べた第２の設定情報は、ソフトウエア毎に、当該ソフトウエアについての設定の適用が完了した後に仮想環境の再起動を実行するか否かを表す情報をさらに含んでもよい。このようにすれば、設定の適用後における再起動を要する場合にも対処できるようになる。
【０１０７】
また、本仮想環境設定方法は、上で述べた第１処理部が、（Ｋ）特定のソフトウエアについての設定が完了した後に第１の仮想環境を再起動する場合、第１の仮想環境を再起動することを第２の仮想環境に通知する処理をさらに実行してもよい。このようにすれば、第２の仮想環境の第２処理部は適用の進捗を確認できるようになる。
【０１０８】
また、上で述べた第１の仮想環境は、第２の仮想環境上で生成された仮想環境であり、上で述べた第３の仮想環境は、第１の仮想環境上で生成された仮想環境であってもよい。
【０１０９】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１１０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１１】
（付記１）
複数の仮想環境を階層的に生成するコンピュータにおいて、
前記複数の仮想環境のうち第１の仮想環境で動作する第１処理部が、
前記複数の仮想環境のうち第２の仮想環境から、適用すべき修正の情報を含む修正情報及び仮想環境の修正順序を示す順序情報を受信し、
前記第１の仮想環境より先に修正が適用されるべき仮想環境である第３の仮想環境を前記順序情報に基づき特定し、前記修正情報及び前記順序情報を前記第３の仮想環境に送信し、
適用が完了したことを前記第３の仮想環境から通知された場合、前記修正情報に基づき、前記第１の仮想環境に修正を適用し、
前記第１の仮想環境への修正の適用が完了した場合、前記第１の仮想環境への修正の適用が完了したことを前記第２の仮想環境に通知する、
処理を実行する修正適用方法。
【０１１２】
（付記２）
前記第２の仮想環境で動作する第２処理部が、
前記複数の仮想環境の各々から、適用順序の制約に関する制約情報を取得し、
前記複数の仮想環境の各々から取得した前記制約情報に基づき、前記順序情報を生成し、
前記複数の仮想環境のうち前記第２の仮想環境以外の仮想環境に対して、生成された前記順序情報を送信する、
付記１記載の修正適用方法。
【０１１３】
（付記３）
前記制約情報は、
仮想環境上で動作するアプリケーションについての情報、仮想環境を生成するためのソフトウエアについての情報、仮想環境の役割についての情報、及び仮想環境の親子関係についての情報の少なくともいずれかを含む
付記２記載の修正適用方法。
【０１１４】
（付記４）
前記第２の仮想環境で動作する第２処理部が、
前記複数の仮想環境の各々から、当該仮想環境上で実行されるソフトウエアについての情報を取得し、
前記複数の仮想環境の各々について、当該仮想環境上で実行されるソフトウエアについての情報に基づき、当該仮想環境に適用すべき修正の情報である第２の修正情報を生成し、
前記複数の仮想環境の各々について生成された前記第２の修正情報を含む前記修正情報を、前記複数の仮想環境のうち前記第２の仮想環境以外の仮想環境に対して送信する、
付記１記載の修正適用方法。
【０１１５】
（付記５）
前記第２の修正情報は、修正を適用するためのプログラムをさらに含む
付記４記載の修正適用方法。
【０１１６】
（付記６）
前記第２の修正情報は、ソフトウエア毎に、当該ソフトウエアについての修正の適用が完了した後に仮想環境の再起動を実行するか否かを表す情報をさらに含む
付記４記載の修正適用方法。
【０１１７】
（付記７）
前記第１処理部は、
特定のソフトウエアについての修正が完了した後に前記第１の仮想環境を再起動する場合、前記第１の仮想環境を再起動することを前記第２の仮想環境に通知する、
処理をさらに実行する付記６記載の修正適用方法。
【０１１８】
（付記８）
前記第１の仮想環境は、前記第２の仮想環境上で生成された仮想環境であり、
前記第３の仮想環境は、前記第１の仮想環境上で生成された仮想環境である、
付記１乃至７のいずれか１つ記載の修正適用方法。
【０１１９】
（付記９）
複数の仮想環境を階層的に生成する情報処理装置であって、
前記複数の仮想環境のうち第１の仮想環境で動作する第１処理部
を有し、
前記第１処理部が、
第２の仮想環境から、適用すべき修正の情報を含む修正情報及び仮想環境の修正順序を示す順序情報を受信し、
前記第１の仮想環境より先に修正が適用されるべき仮想環境である第３の仮想環境を前記順序情報に基づき特定し、前記修正情報及び前記順序情報を前記第３の仮想環境に送信し、
適用が完了したことを前記第３の仮想環境から通知された場合、前記修正情報に基づき、前記第１の仮想環境に修正を適用し、
前記第１の仮想環境への修正の適用が完了した場合、前記第１の仮想環境への修正の適用が完了したことを前記第２の仮想環境に通知する、
処理を実行することを特徴とする情報処理装置。
【０１２０】
（付記１０）
複数の仮想環境を階層的に生成する情報処理装置におけるプロセッサに、
前記複数の仮想環境のうち第１の仮想環境から、適用すべき修正の情報を含む修正情報及び仮想環境の修正順序を示す順序情報を受信し、
前記複数の仮想環境のうち先に修正が適用されるべき仮想環境である第２の仮想環境を前記順序情報に基づき特定し、前記修正情報及び前記順序情報を前記第２の仮想環境に送信し、
適用が完了したことを前記第２の仮想環境から通知された場合、前記修正情報に基づき、自仮想環境に修正を適用し、
前記自仮想環境への修正の適用が完了した場合、前記自仮想環境への修正の適用が完了したことを前記１の仮想環境に通知する、
処理を実行させるための修正適用プログラム。
【符号の説明】
【０１２１】
１  情報処理装置    １０  ハードウエアリソース
１１  仮想化ソフトウエア    １２１，１２２  グローバル仮想環境
１２１０，１２１１，１２１２，１２２０，１２２１，１２２２  仮想環境
１２１０１  収集処理部    １２１０２  準備処理部
１２１０３  適用処理部    １２１１１  第１コマンド格納部
１２１１２  第２コマンド格納部    １２１１３  収集データ格納部
１２１１４  修正データ格納部    １２１１５  機構データ格納部
１２１１６  第３コマンド格納部    １２１１７  バージョンデータ格納部
１２１１８  適用データ格納部    １２１１９  適用結果格納部
【図１】
0006503783.tif 000002
【図２】
0006503783.tif 000003
【図３】
0006503783.tif 000004
【図４】
0006503783.tif 000005
【図５】
0006503783.tif 000006
【図６】
0006503783.tif 000007
【図７】
0006503783.tif 000008
【図８】
0006503783.tif 000009
【図９】
0006503783.tif 000010
【図１０】
0006503783.tif 000011
【図１１】
0006503783.tif 000012
【図１２】
0006503783.tif 000013
【図１３】
0006503783.tif 000014
【図１４】
0006503783.tif 000015
【図１５】
0006503783.tif 000016
【図１６】
0006503783.tif 000017
【図１７】
0006503783.tif 000018
【図１８】
0006503783.tif 000019
【図１９】
0006503783.tif 000020
【図２０】
0006503783.tif 000021
【図２１】
0006503783.tif 000022
【図２２】
0006503783.tif 000023
【図２３】
0006503783.tif 000024
【図２４】
0006503783.tif 000025
【図２５】
0006503783.tif 000026
【図２６】
0006503783.tif 000027
【図２７】
0006503783.tif 000028
【図２８】
0006503783.tif 000029
【図２９Ａ】
0006503783.tif 000030
【図２９Ｂ】
0006503783.tif 000031
【図３０】
0006503783.tif 000032