パッチデータを記憶するリポジトリサーバに接続される、複数のサーバを備える情報処理システムであって、前記複数のサーバの各々は、前記複数のサーバについて、それぞれのサーバ上で起動される仮想マシンと、前記仮想マシンで実行されるプログラムとの対応関係を記憶する記憶部と、前記プログラムに適用されていない未適用パッチデータを、前記リポジトリサーバに問合せるパッチ管理部と、を有し、前記複数のサーバのうち1つのサーバの第1パッチ管理部が、前記リポジトリサーバから未適用パッチデータを受信した場合に、前記対応関係に基づいて、他のサーバの仮想マシンであって、前記未適用パッチデータの適用対象となる適用対象プログラムを実行する仮想マシンに対して、前記未適用パッチデータの適用を要求し、前記他のサーバの第2パッチ管理部は、前記要求に応じて、未適用のパッチデータを前記適用対象プログラムに適用する、ことを特徴とする情報処理システム。前記第2パッチ管理部が、前記第1パッチ管理部より後に、前記管理データに規定されるプログラムに適用されていない未適用パッチデータを前記リポジトリサーバに問合せた場合に、前記第1パッチ管理部は、前記第2パッチ管理部に、前記未適用パッチデータと同じパッチデータに対するパッチの問合せを止めさせることを特徴とする請求項1に記載の情報処理システム。前記複数のサーバの各々は、補助記憶部を備え、前記第1パッチ管理部又は前記第2パッチ管理部は、前記仮想マシンが未適用パッチデータを前記適用対象プログラムに対して適用する前に、前記適用対象プログラムを前記補助記憶部に記憶することを特徴とする請求項1又は2に記載の情報処理システム。前記第1パッチ管理部は、前記未適用パッチデータが前記仮想マシンの再起動を要する場合に、前記適用対象プログラムを実行する前記仮想マシンにおいて、前記未適用パッチデータを前記適用対象プログラムに適用したことを確認した後で、前記適用対象プログラムを実行する前記仮想マシンに対して、再起動を要求することを特徴とする請求項1~3の何れか1項に記載の情報処理システム。パッチデータを記憶するリポジトリサーバに接続される、複数のサーバを備える情報処理システムを制御する制御プログラムであって、前記複数のサーバについて、それぞれのサーバ上で起動される仮想マシンと、前記仮想マシンで実行されるプログラムとの対応関係を参照する処理と、前記プログラムに適用されていない未適用パッチデータを、前記リポジトリサーバに問合せる処理と、前記リポジトリサーバから未適用パッチデータを受信した場合に、前記対応関係に基づいて、他のサーバの仮想マシンであって、前記未適用パッチデータの適用対象となる適用対象プログラムを実行する仮想マシンに対して、前記未適用パッチデータの適用を要求する処理と、前記要求に応じて、未適用のパッチデータを前記適用対象プログラムに適用する処理と、を前記情報処理システムに実行させることを特徴とする制御プログラム。パッチデータを記憶するリポジトリサーバに接続される、複数のサーバを備える情報処理システムを制御する制御方法であって、前記複数のサーバについて、それぞれのサーバ上で起動される仮想マシンと、前記仮想マシンで実行されるプログラムとの対応関係を参照し、前記プログラムに適用されていない未適用パッチデータを、前記リポジトリサーバに問合せ、前記リポジトリサーバから未適用パッチデータを受信した場合に、前記対応関係に基づいて、他のサーバの仮想マシンであって、前記未適用パッチデータの適用対象となる適用対象プログラムを実行する仮想マシンに対して、前記未適用パッチデータの適用を要求し、前記要求に応じて、未適用のパッチデータを前記適用対象プログラムに適用する、ことを特徴とする制御方法。パッチは、サーバ1つずつに分けて適用される。パッチを1つずつ割り当てる場合、パッチ未適用サーバが増えると、全ての対象サーバに対するパッチ適用までに多くの時間がかかる。さらに、業務システムの様に各サーバが互いに関係性を持っている場合には、関係性を持ったサーバ全てに対して同じOSのバージョンを適用する必要がある。その場合、一方のサーバにパッチがあたっているが、もう一方のサーバにはパッチが当たっていない状態が生じ、パッチ未適用の全サーバに対してパッチの適用が終了するまで、業務システムが正常に動作しないといったことが発生する。1つの側面では、本発明は、パッチを適用すべきプログラムを実行する仮想サーバを備えた複数のサーバに関して、パッチ適用を行なうことを目的とする。一実施形態によれば、パッチデータを記憶するリポジトリサーバに接続される、複数のサーバを備える情報処理システムであって、前記複数のサーバの各々は、記憶部と、パッチ管理部と、を有する情報処理システムが提供される。前記記憶部は、前記複数のサーバについて、それぞれのサーバ上で起動される仮想マシンと、前記仮想マシンで実行されるプログラムとの対応関係を記憶する。前記パッチ管理部は、前記プログラムに適用されていない未適用パッチデータを、前記リポジトリサーバに問合せる。前記複数のサーバのうち1つのサーバの第1パッチ管理部は、前記リポジトリサーバから未適用パッチデータを受信した場合に、前記対応関係に基づいて、他のサーバの仮想マシンであって、前記未適用パッチデータの適用対象となる適用対象プログラムを実行する仮想マシンに対して、前記未適用パッチデータの適用を要求する。前記他のサーバの第2パッチ管理部は、前記要求に応じて、未適用のパッチデータを前記適用対象プログラムに適用する。パッチを適用すべきプログラムを実行する仮想サーバを備えた複数のサーバに関して、パッチ適用を行なうことができる。図1は、パッチ管理サーバをシステム外部に配置する例を説明する図である。パッチ対象を管理する場合は、図1に示すように、管理対象ゲストOSの外部に、パッチ管理サーバ2000A及び2000Bを置く構成がある。パッチ管理サーバ2000A及び2000Bは、物理サーバ2200A又は2200B上で実行する仮想マシン2300A~2300Fを管理する。この場合、パッチ管理サーバ2000A及び2000Bは、パッチ管理用の専用サーバである。また、一台だけでは、この一台がダウンしてしまうと、管理できなくなるため、パッチ管理サーバ2000A及び2000Bは、クラスタ化するなどして、管理を継続できるような構成をとる。このように、パッチ管理サーバをシステム外部に配置する場合、複数台のサーバ資源を必要としていた。以下に示す、情報処理システムは、物理サーバ内に、パッチ管理部を設けることで、情報処理システムにパッチ管理用の専用サーバを設けない構成を有する。さらに、物理サーバ上で実行する複数のゲストOSへのパッチ適用を一斉に行うことが出来る。以下、図面を参照して、1情報処理システムのシステム構成、2情報処理システムのハードウェア構成、3データ構造、及び4情報処理システムが実行するパッチ制御処理のフローを順に説明する。1情報処理システムの機能構成図2は、情報処理システムの一例を説明するシステム構成図である。図2に示される情報処理システム100は、物理サーバ200A及び200Bを有する。物理サーバ200A及び200Bは、ホストOS400A及び400Bをそれぞれ実行する。ホストOSは、ゲストOSを管理する特権を有するゲスト管理用のOSである。ホストOSは、物理サーバのハードウェア資源に直接アクセスするためのデバイスドライバ等を有する。物理サーバは、図5を用いて後述する仮想化プログラムを実行することで、ホストOS、及びゲストOSを、実行する。さらに、物理サーバ200A及び200Bは、ホストOS400A及び400B上で、後述する制御プログラムを実行することで、パッチ管理部420A及び420Bとして機能する。また、物理サーバ200Aは、仮想マシン500A及び500Bで制御プログラムを実行することで、パッチ適用部530A及び530Bとして機能する。情報処理システム100は、インターネットやLANLocalAreaNetwork等であるネットワーク5を介して、リポジトリサーバ50と接続する。リポジトリサーバ50は、パッチや修正が適用されたソフトウェアが登録されているサーバである。リポジトリサーバ50には、パッチが、そのバージョンとともに、体系立てて登録されている。物理サーバ200A及び200Bは、ゲストOSと、ゲストOS上で実行されるプログラムとの対応関係を規定するソフト管理データ、グループ毎にゲストOSと仮想マシンとの対応関係を規定するグループ管理データ、仮想マシンと物理サーバとの対応関係を規定するVM管理データを、ホストOSに割り当てられた記憶部に記憶する。ソフト管理データは、グループ管理データ、及びVM管理データは、総称して管理データと呼ぶ。ソフト管理データ、グループ管理データ、及びVM管理データの詳細は、それぞれ図6、図7、及び図8を用いて後述する。情報処理システム100は、ソフト管理データ430でゲストOS毎に対応付けて規定されるソフトウェアのパッチの適用の有無を、リポジトリサーバ50に問合せる。リポジトリサーバ50は、ゲストOS毎に新たに適用すべきパッチを情報処理システム100に通知する。この問合せは、情報処理システム100が、アプリケーションの識別情報及びゲストOSの識別情報を、リポジトリサーバ50に送信することで、行なわれる。このように、情報処理システム100は、リポジトリサーバ50に、パッチの適用について問合せることで、仮想マシン500A~500Dに適用すべきパッチを、確認することができる。以下、パッチ管理部420A及び420Bの機能を、説明する。A.リポジトリサーバへ定期的に問合せするパッチ管理部の機能各パッチ管理部は、ソフト管理データ430を参照して、リポジトリサーバ50に定期的に、ソフト管理データ430に登録されるソフトウェア名をそのバージョンとともに問合せることで、未適用パッチの有無に関する問合せを行う。問合せの単位は、グループ毎に行なう。図2において、グループは、110で示される。グループとは、関係性のあるゲストOS又は物理サーバ群をまとめたものである。例えば、業務システムを構成するゲストOS群をグループとする。110に示すように、複数の物理サーバを跨いでゲストOSをグループ化することができる。なお、110に示すように、ゲストOSとグループとの対応関係は、図7を用いて後述するグループ管理データ440に登録される。ソフト管理データ430及びグループ管理データ440は、各パッチ管理部が同期を取ることで、各パッチ管理部が同じソフト管理データ430及び同じグループ管理データ440にアクセスする。または、ソフト管理データ430及びグループ管理データ440を、図2に図示されない共用ディスク上に置くことで、各パッチ管理部が、同じ管理データでパッチ管理ができるものとする。問合せを行なったパッチ管理部は、リポジトリサーバ50から、未適用パッチの情報に関する応答を受信する。問合せをした結果、最初に未適用パッチの確認をしたパッチ管理部を、以降、マスタパッチ管理部と呼ぶ。そして、他のパッチ管理部を、以降、サブパッチ管理部と呼ぶ。B.パッチ適用を待ち合わせるパッチ管理部の機能マスタパッチ管理部は、リポジトリサーバ50から応答を受信すると、ソフト管理データ430を参照して、未適用パッチに対応するソフトウェアが実行されるゲストOSを特定することで、パッチ未適用のゲストOSを特定する。また、マスタパッチ管理部は、パッチ未適用のゲストOSを含むグループを、グループ管理データ440を参照して特定する。マスタパッチ管理部は、VM管理データ450を参照して、該当グループに属するゲストOSを実行する物理サーバ上を特定する。VM管理データ450は、物理サーバと、仮想マシンとの対応関係を規定する情報であり、図8を用いて後述される。このようにして、マスタパッチ管理部は、リポジトリサーバ50から未適用パッチの応答を受信すると、パッチ未適用のゲストOS、パッチ未適用のゲストOSを含むグループ、及びパッチ未適用のゲストOSを実行する仮想マシン及び物理サーバを特定する。マスタパッチ管理部は、グループに属しているパッチ未適用のゲストOSを管理しているサブパッチ管理部を特定し、各サブパッチ管理部に、パッチ未適用のゲストOSを特定する未適用ゲストOS情報を送信する。また、マスタパッチ管理部は、パッチ未適用のゲストOSを含むグループと、グループに属している自物理サーバ上のパッチ未適用のゲストOSを特定する。未適用ゲストOS情報を受信したサブパッチ管理部は、マスタパッチ管理部と同様に、パッチ未適用のゲストOSを含むグループと、グループに属している自物理サーバ上のパッチ未適用のゲストOSを特定する。ゲストOSを特定後、サブパッチ管理部は、マスタパッチ管理部にレスポンスを返すことで、パッチ適用の待ち合わせを行う。各サブパッチ管理部からレスポンスがあり、パッチ適用の待ち合わせが完了した場合、マスタパッチ管理部は、サブパッチ管理部にパッチ適用リクエストを送信する。パッチ適用リクエストは、未適用パッチを含む。その後、マスタパッチ管理部は、自物理サーバ上のグループ内の全パッチ未適用のゲストOSに対してパッチ適用リクエストを送信する。パッチ適用リクエストを受けたサブパッチ管理部も、マスタパッチ管理部と同様に、自物理サーバ上のグループ内の全ゲストOSに対してパッチ適用リクエストを送信する。リクエストを受信した各パッチ未適用のゲストOSは、パッチ適用リクエストに含まれる未適用パッチを適用する。C.再起動を待ち合わせるためのパッチ管理部の機能各ゲストOSは、パッチ適用後の再起動の有無を示す再起動情報を、自サブパッチ管理部に返す。サブパッチ管理部は、全てのパッチを適用したゲストOSから、再起動情報を受けた後にマスタパッチ管理部に全ゲストOSの再起動情報を返す。マスタパッチ管理部は、全てのサブパッチ管理部から再起動情報の返信があるまで待ち合わせを行なうことで、再起動の待ち合わせ処理を行う。なお、再起動情報は、パッチ完了後、ゲストOSがパッチの種類に応じて決まる再起動が必要かどうかを監視することで判断される。マスタパッチ管理部が、サブパッチ管理部から再起動情報を受信することで、待ち合わせ処理を完了したら、サブパッチ管理部から自物理サーバ上のゲストOSへ、及び、マスタパッチ管理部から自物理サーバ上のゲストOSへ再起動リクエストを送信する。このようにすることで、情報処理システム100は、パッチ適用および、再起動を一斉に実行できるようになる。次に、上述した機能を説明するフローを、図2に示すS1~S19に基づいて、説明する。S1.パッチ管理部420Bが、ソフト管理データ430を参照する。S2.パッチ管理部420Bは、ソフト管理データ430を元にリポジトリサーバ50へ、ソフト管理データ430に登録されるソフトウェア名をそのバージョンとともに送信して、未適用パッチの有無を問合せする。S3.未適用パッチがあった場合は、パッチ管理部420Bは、ソフト管理データ430を参照して、その未適用パッチがどのゲストOSが対象か特定する。パッチ管理部420Bは、パッチ未適用のゲストOSを特定すると、グループ管理データ440を参照して、パッチ未適用のゲストOSがどのグループに属するかを判断する。パッチ管理部420Bは、VM管理データ450を参照して、他の物理サーバにある該当グループに属するパッチ未適用のゲストOSを特定する。S4.他の物理サーバ上にゲストOSが存在する場合、その各物理サーバ上のパッチ管理部420Aに該当グループ及びゲストOS情報を通知する。この通知の送信元と送信先の関係がマスタパッチ管理部とサブパッチ管理部との関係となる。S4では、マスタパッチ管理部が、例えば、HTTPHypertextTransferProtocolメソッドのPUTを用いて、パスに/guest、引数に、Info=<ゲストOS情報>、group=<グループ情報>を指定することで、パッチ管理部420Aに該当グループ及びゲストOS情報を通知する。S5.マスタパッチ管理部420BからのゲストOS情報を元にサブパッチ管理部が管理するパッチ未適用のゲストOSを特定する。サブパッチ管理部420Aは、マスタパッチ管理部420Bにレスポンスを返す。S6.マスタパッチ管理部420Bは、各サブパッチ管理部からのレスポンスを待ち合わせる。S7.マスタパッチ管理部420Bは、サブパッチ管理部420Aにスナップショット作成のリクエストを送信する。スナップショットとは、パッチ適用対象のプログラムを、後述する補助記憶部にバックアップすることである。パッチを適用する前に、パッチ適用対象プログラムのスナップショットをとることで、パッチ適用失敗時には、パッチ適用前にもどすことが可能になる。S7では、マスタパッチ管理部は、例えば、HTTPメソッドのPOSTを用いて、パスに/snapshot、引数に、guest=<snapshot対象ゲストOS>を指定することで、スナップショット作成のリクエストを送信する。S8.サブパッチ管理部420AはゲストOSのスナップショットを作成し、完了後、マスタパッチ管理部420Bにレスポンスを返す。スナップショットは、例えば、仮想化ソフトウェアのコマンドを用いて行うことができる。マスタパッチ管理部420Bは、S7を実施後、サブパッチ管理部420Aと同様にスナップショットを作成する。S9.マスタパッチ管理部420Bは、各サブパッチ管理部からのレスポンスを待ち合わせる。S10.マスタパッチ管理部420Bは、サブパッチ管理部420Aにパッチ適用のリクエストを送信する。S10では、マスタパッチ管理部420Bが、例えば、HTTPメソッドのPOSTを用いて、パスに/submanager/patchを指定することで、パスで指定されるフォルダにパッチが格納される。S11.サブパッチ管理部420Aは、自物理サーバである物理サーバ200A内のゲストOSにパッチ適用のリクエストを送信する。マスタパッチ管理部420Bも、同様に、自物理サーバである物理サーバ200B内のゲストOSにパッチ適用リクエストを送信する。パッチ管理部からゲストOSへのパッチ適用リクエストは、HTTPメソッドのPOSTを用いて、パスに/<対象guestOSDomain名>/patchを指定することで、パスで指定されるフォルダにパッチが格納される。S12.ゲストOSは、パッチを適用する。各パッチ適用部は、パッチ適用後の再起動の有無を監視する。S13.パッチ適用部は、再起動の有無を特定する再起動情報を、サブパッチ管理部420A、及びマスタパッチ管理部420Bにそれぞれ通知する。S14.マスタパッチ管理部420Bは、各サブパッチ管理部からの再起動情報の送信を待つ。S15.各サブパッチ管理部及び自物理サーバのパッチ適用部から再起動情報を受信すると、マスタパッチ管理部420Bは、サブパッチ管理部420Aに再起動のリクエストを送信する。マスタパッチ管理部420Bからサブパッチ管理部420Aへの再起動リクエストの送信は、HTTPメソッドのPUTを用いて、パスに/submanager/rebootを指定することで、行なわれる。S16.サブパッチ管理部420Aは、自物理サーバである物理サーバ200A上のゲストOSに再起動のリクエストを送信する。マスタパッチ管理部420Bも、自物理サーバである物理サーバ200B上のゲストOSに再起動のリクエストを送信する。パッチ管理部からゲストOSへの再起動リクエストは、HTTPメソッドのPOSTを用いて、パスに/<対象guestOSDomain名>/rebootを指定することで、行なわれる。S17.物理サーバ200A及び200Bは、再起動を実施する。S18.物理サーバ200A及び200Bの再起動後、パッチ適用部はそれぞれ、サブパッチ管理部420Aまたは、マスタパッチ管理部420Bに再起動完了レスポンスを返す。S19.マスタパッチ管理部420Bはサブパッチ管理部420Aから再起動完了レスポンスを受け取り、再度S1に戻り処理を継続する。上記のように、情報処理システム100は、グループ毎に、複数OSへのパッチ適用を一斉に行なうとともに、物理サーバの再起動を一斉に実施できる。また、情報処理システム100は、パッチ適用部の数が多くなればなるほど、S2における問合せ頻度が上がるので、リポジトリサーバ50への問合せがリアルタイムに近くなる。また、情報処理システム100では、どの物理サーバのパッチ管理部もマスタパッチ管理部になり得る。リポジトリサーバ50への問合せが10秒間隔で物理サーバ1台とした場合は10秒間隔だが、物理サーバを10台とした場合、1秒間隔でリポジトリサーバに問合せすることができ、物理サーバが増えるほど、ゲストOSへの最新のパッチ適用を迅速化できる。さらに、情報処理システム100は、ゲストOSにパッチを適用する前に、ゲストOSのスナップショットをとっているため、失敗時には、パッチ適用前の状態にもどすことが可能である。また、情報処理システム100は、どのパッチ管理部もマスタパッチ管理部となることができるため、1つのマスタパッチ管理部の負荷が高くなるということがなくなる。さらに、情報処理システム100は、物理サーバ200A及び200B以外に、パッチ管理部を外側の専用サーバに置くことがないため、物理サーバを余計に準備することはない。2情報処理システムのハードウェア構成次に、情報処理システムのハードウェア構成について説明する。図3は、情報処理システムに含まれる物理サーバのハードウェア構成の一例を示す図である。図3に示すように、物理サーバ200は、処理部210、記憶部220、通信部230、補助記憶部240、ドライブ部250、及びI/Oコントローラ260を有する。図3に示す物理サーバ200は、図2に示す物理サーバ200A及び200Bに相当する。処理部210は、I/Oコントローラ260を介して、通信部230、補助記憶部240、及びドライブ部250に接続する。処理部210は、記憶部220に記憶されたプログラムを実行することで、記憶部220からデータをロードし、ロードしたデータを演算して、記憶部220に演算結果をストアする。処理部210は、例えば、CPUである。I/Oコントローラ260は、処理部210と、他の接続装置との接続を制御する装置である。I/Oコントローラ260は、例えば、PCIExpressPeripheralComponentInterconnectExpressなどの規格に従って動作する。記憶部220は、データやプログラムを記憶する装置である。記憶部220は、例えば、DRAMDynamicRandomAccessMemoryである。記憶部220に記憶される各データについては、図4を用いて後述する。通信部230は、ネットワーク5に接続された他の物理サーバとの間でデータを送受信する装置である。通信部230は、例えば、NICNetworkInterfaceControllerである。補助記憶部240は、記憶部220に格納されるプログラム及びデータを記憶する非揮発性の装置である。補助記憶部240は、磁気ディスクを用いたディスクアレイ、又は、フラッシュメモリを用いたSSDSolidStateDrive等である。ドライブ部250は、例えば、CD-ROMCompactDiscReadOnlyMemory、DVDDigitalVersatileDiscなどの記憶媒体290を読み書きする装置である。ドライブ部250は、記憶媒体290を回転させるモータや記憶媒体290上でデータを読み書きするヘッド等を含む。なお、記憶媒体290は、制御プログラムを格納することができる。ドライブ部250は、ドライブ部250にセットされた記憶媒体290から制御プログラムを読み出す。処理部210は、ドライブ部250により読み出された制御プログラムを、記憶部220又は補助記憶部240に格納する。図4は、記憶部のメモリマップの一例を示す図である。図4に示すように、記憶部220は、ソフト管理データ430、グループ管理データ440、VM管理データ450、仮想化ソフトウェア910、制御プログラム920、OS930A及び930B、プログラム990A及び990Bを格納する。制御プログラム920は、物理サーバ200A及び200Bを、ホストOS400A及び400B上のパッチ管理部420A及び420Bとして機能させるためのプログラムである。また、制御プログラム920は、仮想マシン500A及び500Bを、パッチ適用部530A及び530Bとして機能させるためのプログラムである。ソフト管理データ430は、ゲストOS及びそのゲストOS上で実行されるアプリケーション等のプログラムと、そのプログラムに対して適用すべきパッチとの対応関係を規定するデータである。ソフト管理データ430の詳細は、図6を用いて後述する。グループ管理データ440は、ゲストOSとグループとの対応関係を規定する情報である。グループ管理データ440の詳細は、図7を用いて後述する。VM管理データ450は、物理サーバと、仮想マシンとの対応関係を規定する情報である。VM管理データ450の詳細は、図8を用いて後述する。仮想化ソフトウェア910は、1台の物理サーバ200により複数のOSの実行を可能にするソフトウェアである。仮想化ソフトウェア910は、コンピュータのハードウェア資源であるCPU、メモリ、ディスク装置に対するI/OInputOutputを、各ゲストOSに割り当てる。仮想化ソフトウェア910は、記憶部220の記憶領域を、各ゲストOSに割り当て、又は、処理部210の処理時間を各ゲストOSに割り当て、又は、補助記憶部240のI/Oを各ゲストOSに割り当てる。また、仮想化ソフトウェア910は、ゲストOSからハードウェア資源に対するデータの入出力を受け取り、他のゲストOSとの競合を調停する処理を実行してから、受け取った情報を用いてハードウェア資源を使用する。OS930A及び930Bは、ゲストOSとして実行されるOSである。通常、OSとは、キーボード入力や画面出力といった入出力機能やディスクやメモリの管理など、多くのアプリケーションから共通して利用される基本的な機能を提供し、ハードウェア資源全体を管理するソフトウェアである。しかしながら、仮想化ソフトウェア910は、物理サーバ200のハードウェア資源に対する制御を管理し、ゲストOSであるOS930A及び930Bにハードウェア資源を割り当てる。よって、OS930A及び930Bは、仮想化ソフトウェア910によって割り当てられたハードウェア資源を管理するように動作する。OS930A及び930Bは、例えば、MicrosoftWindows登録商標Serverである。OS930A及び930Bは、パッチデータの適用対象となるプログラムであってもよい。プログラム990A及び990Bは、OS930A及び930Bとともにそれぞれ実行されるプログラムであり、パッチデータの適用対象となるプログラムである。プログラム990A及び990Bは、文書の作成、数値計算等、ある特定の目的のために設計されたアプリケーションソフトウェア、又は物理サーバの各種ハードウェアとデータの入出力を行うプログラムであるデバイスドライバである。例えば、プログラム990Aは、ドライブ部250とデータの入出力を行うデバイスドライバであり、プログラム990Bは、通信部230とデータの入出力を行うデバイスドライバである。なお、ゲストOS上で実行されるアプリケーションプログラムと、ゲストOSとの対応関係は、ソフト管理データ430に登録されている。図5は、物理サーバとゲストOSとホストOSとの機能構成の一例を示す図である。仮想化ソフトウェアは、各ゲストOSのディスパッチ、各ゲストOSが実行する特権命令のエミュレーション、CPUに関するハードウェア制御等を行う。VMシステムのブート時に最初に動作し、ホストOSの起動を行う。仮想化ソフトウェアを実行することで、物理サーバ上に仮想計算機モニタ915が実現する。ホストOS400Aは、VMシステム全体の操作、管理を行う。VMシステムのブート時に仮想計算機モニタ915により自動で起動され、ゲストOSの制御起動停止等全ての制御を行う。ゲストOSに割り当てる資源CPU、メモリ、IOを管理する。ゲストOS520A又は520Bが実行したIOもホストOS400Aを介して物理サーバ200に送られる。ゲストOS520A及び520Bは、通常のOSである。ホストOSにより起動される。物理サーバ200へのIOはホストOS400Aを介して実行されるため、ゲストOS520A及び520Bは、実のIOは持たず、仮想的なIOのみが割当てられている。3データ構造以下に、記憶部220に記憶されるソフト管理データ430、グループ管理データ440、VM管理データ450を説明する。図6は、ソフト管理データの一例を示す図である。図6に示すソフト管理データ430は、ゲストOSが依存するグループ毎に複数用意される。図6では、ソフト管理データ430として、グループAのソフト管理データ430A~グループNのソフト管理データ430Nが示される。グループAのソフト管理データ430Aについて説明するが、他のグループのソフト管理データもソフト管理データ430Aと同じデータ構造を有する。ソフト管理データ430Aは、ソフトIDが登録されるソフトID列431、ソフトウェア名が登録されるソフト名列432、ソフト名列432に登録されるソフトウェアがインストールされているか否かを登録するゲストOSID列433を有する。グループは、複数のゲストOSを関係付けるため、ゲストOSID列は、複数個ある。ソフト管理データ430において、同じエントリ行で、それぞれの列に登録されたデータは、互いに対応付けられるデータである。ソフト名列432には、ソフトウェア名がそのバージョンとともに登録される。ゲストOSID列433には、対応するソフトウェアがインストールされているか否かを示すTrue又はFalseが登録される。パッチ管理部は、リポジトリサーバ50に問合せる時は、ソフト管理データ430に登録されるソフトウェア名をそのバージョンとともに問合せる。問合せたソフトウェアのパッチがあった場合は、パッチ管理部は、ソフト管理データ430を参照して、該当ソフトウェア名からゲストOSIDを取得する。パッチ管理部は、ゲストOSへのパッチ適用後は、バージョンを含むソフトウェア名を更新する。図7は、グループ管理データの一例を示す図である。図7に示すグループ管理データ440は、ゲストOSが依存するグループ毎に複数用意される。図7では、グループAのグループ管理データ440A~グループNのグループ管理データ440Nが示される。グループAのグループ管理データ440Aについて説明するが、他のグループのグループ管理データも同じグループ管理データ440Aとデータ構造を有する。グループ管理データ440は、グループ名が登録されるグループ名列441、ゲストOSが登録されるゲストOSID列442、仮想マシンを識別するドメイン名が登録されるドメイン名列443、OS種別が登録されるOS種別列444を有する。ドメイン名は、仮想マシンの名称であり、例えば、仮想マシンと、仮想マシンの仮想MACアドレスとを組み合わせた名称である。グループは、複数のゲストOSを関係付けるため、ゲストOSID列は、複数個ある。グループ管理データ440において、同じエントリ行で、それぞれの列に登録されたデータは、互いに対応付けられるデータである。図7では、OS種別列444には、Windows登録商標、Linux登録商標などの名称が入力されるが、OS種別列444には、OSのバージョンもOS名称とともに登録される。パッチ管理部は、グループ管理データ440を参照することで、リポジトリサーバ50から取得したゲストOSIDから、当該ゲストOSIDに対応するグループ及びドメイン名を特定することができる。図8は、VM管理データの一例を示す図である。図8に示されるVM管理データ450は、仮想マシンがどの物理サーバ上にあるか否かを特定する情報である。VM管理データ450は、物理サーバを特定する物理サーバ列451と、同じエントリ上の物理サーバ上にある仮想マシンを特定するドメイン名列452A~452Hとを有する。パッチ管理部は、VM管理データ450を参照することで、グループ管理データ440で特定したドメイン名を元に、パッチ未適用の仮想マシンが、どの物理サーバ上にあるかを特定することができる。以上のように、ソフト管理データ430を用いて、ゲストOS上で実行されるプログラムを特定し、プログラムが特定できれば、グループ管理データ440を用いて、特定されたプログラムに対応する仮想マシンを特定できる。そのため、パッチ管理部は、ソフト管理データ430に規定されるプログラムに適用されていない未適用パッチデータを、リポジトリサーバ50に問合せ、グループ管理データ440を参照して、未適用パッチデータの適用対象となる適用対象プログラムを実行する仮想マシンを特定することができる。4パッチ制御処理のフロー図9A~図9Gは、パッチ制御処理の一例を示すフローチャートである。図9Aは、マスタ管理部が、リポジトリサーバに未適用パッチの問合せる処理の一例を示すフローチャートである。パッチ管理部は、管理データを記憶部から取得するS1001。パッチ管理部は、ソフト管理データ430に登録されるソフトウェアをそのバージョンとともに送信することで、リポジトリサーバ50に未適用パッチを問合せるS1002。パッチ管理部は、リポジトリサーバ50から未適用パッチがあるか否かを判断するS1003。リポジトリサーバ50に未適用パッチがある場合S1003No、パッチ管理部は、一定時間のインターバル後にS1004、S1001の処理を再度行う。リポジトリサーバ50に未適用パッチがある場合S1003No、パッチ管理部は、ソフト管理データ430を参照して、パッチ未適用のゲストOSを特定するS1005。パッチ管理部は、グループ管理データ440を参照して、パッチ未適用のゲストOSを含むグループ及び仮想マシンを特定するS1006。パッチ管理部は、VM管理データ450を参照して、物理サーバを特定するS1007。パッチ管理部は、他物理サーバ上にパッチ未適用ゲストOSがあるか否か判断するS1008。他物理サーバ上にパッチ未適用ゲストOSがある場合S1008Yes、パッチ管理部は、図9Bに示すS1101を実行する。他物理サーバ上にパッチ未適用ゲストOSが無い場合S1008No、パッチ管理部は、図9Cに示すS1203を実行する。図9Bは、パッチ管理部が、リポジトリサーバ50にマスタパッチ管理部の宣言を行う処理の一例を示すフローチャートである。パッチ管理部は、記憶部に保持されるマスタフラグ情報のマスタフラグをtrueにセットするS1101。マスタパッチ管理部は、他物理サーバのパッチ管理部に、パッチ未適用ゲストOSを含むグループ、未適用ゲストOS情報および、送信元のパッチ管理部がマスタパッチ管理部であることを特定するマスタ情報を通知するS1102。他物理サーバのパッチ管理部であるサブパッチ管理部は、リポジトリサーバの問合せ処理中か否か判断するS1103。問合せ処理中の場合S1103Yes、サブパッチ管理部は、リポジトリサーバへの問合せ処理を中止するS1104。このように、あるソフトウェアのパッチデータの問合せは、最初に問合せを行なったパッチ管理部のある物理サーバ1台となるように制御される。S1104の後、又は、問合せ処理中では無い場合S1103No、サブパッチ管理部は、記憶部に保持されるマスタフラグ情報のマスタフラグをfalseにセットするS1105。サブパッチ管理部は、自物理サーバで実行されるパッチ未適用ゲストOSを特定するS1106。サブパッチ管理部は、自物理サーバ上のパッチ未適用ゲストOSの特定完了と、マスタフラグの設定終了を、マスタパッチ管理部に通知するS1107。図9Cは、パッチ管理部が、スナップショットを作成する処理の一例を示すフローチャートである。マスタパッチ管理部は、全てのサブパッチ管理部から応答を受け取るとS1201、サブパッチ管理部にスナップショット作成の指示を行なうS1202。S1202の後、又は、図9Aに示すS1008で他物理サーバ上にパッチ未適用ゲストOSが無い場合、マスタパッチ管理部は、自物理サーバのスナップショットを作成するS1203。サブパッチ管理部も、自物理サーバ内のゲストOSのスナップショットを作成するS1204。サブパッチ管理部は、スナップショットの完了を、マスタパッチ管理部に通知するS1205。マスタパッチ管理部は、全てのサブパッチ管理部からスナップショットの完了を示す応答を待つS1206。図9D及び図9Eは、パッチ適用処理の一例を示すフローチャートである。マスタパッチ管理部は、サブマスタ管理部へパッチ適用を指示するS1301。マスタパッチ管理部は、マスタパッチ管理部内のゲストOSにパッチ適用を指示するS1302。サブマスタ管理部は、サブパッチ管理部内のゲストOSにパッチ適用を指示するS1303。ゲストOS上のパッチ適用部が、パッチを適用するS1304。パッチ適用部は、パッチ適用が成功したか否かを判断するS1305。パッチの適用に失敗した場合S1305No、パッチ適用失敗をサプパッチ管理部へ通知するS1306。パッチの適用に成功した場合S1305Yes、パッチ適用部は、パッチの適用に際し、再起動が必要か否かを判断するS1307。再起動が必要な場合はS1307Yes、パッチ適用部は、再起動するか否かを示すリブート情報であるrebootをtrueに設定しS1309する。再起動が不要な場合はS1307Yes、パッチ適用部は、再起動するか否かを示す情報であるrebootをtrueに設定するS1308。パッチ適用部は、リブート情報をパッチ管理部に通知するS1310。サブパッチ管理部は、リブート情報をマスタパッチ管理部に通知するS1401。また、パッチ適用失敗を通知されたサプパッチ管理部S1306、パッチ適用失敗をマスタパッチ管理部に通知するS1403。S1401又はS1403の処理の後、マスタパッチ管理部は、全てのサブパッチ管理部からの応答を待つS1402。図9F及び図9Gは、再起動処理の一例を示すフローチャートである。マスタパッチ管理部は、自物理サーバ内のパッチ未適用サーバのパッチ適用が成功したか否か判断するS1501。パッチ適用が成功した場合S1501Yes、マスタパッチ管理部は、サブパッチ管理部から受信したリブート情報がtrueか否かを、判断するS1502。リブート情報がtrueの場合S1502Yes、マスタパッチ管理部は、サブパッチ管理部に再起動を指示するS1503。マスタパッチ管理部は、自物理サーバ上のパッチ未適用ゲストOSに再起動を指示するS1504。サブパッチ管理部は、自物理サーバ上のパッチ未適用ゲストOSに再起動を指示するS1505。各パッチ適用部が再起動を実施するS1506。再起動後、パッチ適用部は、パッチ管理部に官僚を通知するS1507。サブパッチ管理部は、再起動完了をマスタパッチ管理部に通知するS1508。全てのサブパッチ管理部から再起動完了を通知される場合S1601、又は、サブパッチ管理部から受信したリブート情報がfalseの場合S1502No、マスタパッチ管理部は、処理を完了する。パッチ適用に失敗した場合S1501No、マスタパッチ管理部は、サブパッチ管理部にロールバック処理を指示するS1510。マスタパッチ管理部は、自物理サーバ上のゲストOSを、スナップショットを用いて元に戻すS1511。サブパッチ管理部は、自物理サーバ上のゲストOSを、スナップショットを用いてゲストOSを元に戻すS1512。サブパッチ管理部は、ゲストOSを元に戻したことをマスタパッチ管理部に通知するS1513。パッチの適用に失敗し、スナップショットでゲストOSを元に戻した後は、パッチ適用前の状態に戻るため、S1206に戻り、再度パッチの適用を試みる。以上の実施形態に関し、更に以下の付記を開示する。付記1パッチデータを記憶するリポジトリサーバに接続される、複数のサーバを備える情報処理システムであって、前記複数のサーバの各々は、前記複数のサーバについて、それぞれのサーバ上で起動される仮想マシンと、前記仮想マシンで実行されるプログラムとの対応関係を記憶する記憶部と、前記プログラムに適用されていない未適用パッチデータを、前記リポジトリサーバに問合せるパッチ管理部と、を有し、前記複数のサーバのうち1つのサーバの第1パッチ管理部が、前記リポジトリサーバから未適用パッチデータを受信した場合に、前記対応関係に基づいて、他のサーバの仮想マシンであって、前記未適用パッチデータの適用対象となる適用対象プログラムを実行する仮想マシンに対して、前記未適用パッチデータの適用を要求し、前記他のサーバの第2パッチ管理部は、前記要求に応じて、未適用のパッチデータを前記適用対象プログラムに適用する、ことを特徴とする情報処理システム。付記2前記第2パッチ管理部が、前記第1パッチ管理部より後に、前記管理データに規定されるプログラムに適用されていない未適用パッチデータを前記リポジトリサーバに問合せた場合に、前記第1パッチ管理部は、前記第2パッチ管理部に、前記未適用パッチデータと同じパッチデータに対するパッチの問合せを止めさせることを特徴とする付記1に記載の情報処理システム。付記3前記複数のサーバの各々は、補助記憶部を備え、前記第1パッチ管理部又は前記第2パッチ管理部は、前記仮想マシンが未適用パッチデータを前記適用対象プログラムに対して適用する前に、前記適用対象プログラムを前記補助記憶部に記憶することを特徴とする付記1又は2に記載の情報処理システム。付記4前記第1パッチ管理部は、前記未適用パッチデータが前記仮想マシンの再起動を要する場合に、前記適用対象プログラムを実行する前記仮想マシンにおいて、前記未適用パッチデータを前記適用対象プログラムに適用したことを確認した後で、前記適用対象プログラムを実行する前記仮想マシンに対して、再起動を要求することを特徴とする付記1~3の何れか1項に記載の情報処理システム。付記5パッチデータを記憶するリポジトリサーバに接続される、複数のサーバを備える情報処理システムを制御する制御プログラムであって、前記複数のサーバについて、それぞれのサーバ上で起動される仮想マシンと、前記仮想マシンで実行されるプログラムとの対応関係を参照する処理と、前記プログラムに適用されていない未適用パッチデータを、前記リポジトリサーバに問合せる処理と、前記リポジトリサーバから未適用パッチデータを受信した場合に、前記対応関係に基づいて、他のサーバの仮想マシンであって、前記未適用パッチデータの適用対象となる適用対象プログラムを実行する仮想マシンに対して、前記未適用パッチデータの適用を要求する処理と、前記要求に応じて、未適用のパッチデータを前記適用対象プログラムに適用する処理と、を前記情報処理システムに実行させることを特徴とする制御プログラム。付記6前記複数のサーバの各々は、補助記憶部を備え、前記仮想マシンが未適用パッチデータを前記適用対象プログラムに対して適用する前に、前記適用対象プログラムを前記補助記憶部に記憶する処理を、前記情報処理システムに実行させることを特徴とする付記5に記載の制御プログラム。付記7前記未適用パッチデータが前記仮想マシンの再起動を要する場合に、前記適用対象プログラムを実行する前記仮想マシンにおいて、前記未適用パッチデータを前記適用対象プログラムに適用したことを確認した後で、前記適用対象プログラムを実行する前記仮想マシンに対して、再起動を要求する処理を、前記情報処理システムに実行させることを特徴とする付記5又は6に記載の制御プログラム。付記8パッチデータを記憶するリポジトリサーバに接続される、複数のサーバを備える情報処理システムを制御する制御方法であって、前記複数のサーバについて、それぞれのサーバ上で起動される仮想マシンと、前記仮想マシンで実行されるプログラムとの対応関係を参照し、前記プログラムに適用されていない未適用パッチデータを、前記リポジトリサーバに問合せ、前記リポジトリサーバから未適用パッチデータを受信した場合に、前記対応関係に基づいて、他のサーバの仮想マシンであって、前記未適用パッチデータの適用対象となる適用対象プログラムを実行する仮想マシンに対して、前記未適用パッチデータの適用を要求し、前記要求に応じて、未適用のパッチデータを前記適用対象プログラムに適用する、ことを特徴とする制御方法。付記9前記複数のサーバの各々は、補助記憶部を備え、前記仮想マシンが未適用パッチデータを前記適用対象プログラムに対して適用する前に、前記適用対象プログラムを前記補助記憶部に記憶する、ことを特徴とする付記8に記載の制御方法。付記10前記未適用パッチデータが前記仮想マシンの再起動を要する場合に、前記適用対象プログラムを実行する前記仮想マシンにおいて、前記未適用パッチデータを前記適用対象プログラムに適用したことを確認した後で、前記適用対象プログラムを実行する前記仮想マシンに対して、再起動を要求する、ことを特徴とする付記8又は9に記載の制御方法。