ネットワーク上に接続されている既存の仮想計算機群からユーザが要求した要求プログラムを含む仮想計算機を検索する複製元仮想計算機検索部と、前記検索した結果得られた仮想計算機を複製及び初期化して新規の仮想計算機を提供する複製仮想計算機提供部と、前記既存の仮想計算機群を構成する仮想計算機が利用する利用プログラムを管理するための利用プログラム管理情報、前記利用プログラム間の依存関係を管理するための依存関係管理情報、前記仮想計算機に含まれるユーザ固有データを管理するためのユーザ固有データ管理情報、前記仮想計算機に含まれる組織固有データを管理するための組織固有データ管理情報及び前記仮想計算機に含まれるマシン固有データを管理するためのマシン固有データ管理情報を記憶する記憶部とを備え、前記複製元仮想計算機検索部は、前記利用プログラム管理情報を参照して、前記既存の仮想計算機群から前記要求プログラムを含む仮想計算機を検索し、更に前記依存関係管理情報を参照して、前記要求プログラムを含む仮想計算機から前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索し、前記複製仮想計算機提供部は、前記検索した結果得られた仮想計算機を複製した後、前記ユーザ固有データ管理情報、前記組織固有データ管理情報及び前記マシン管理情報を参照して、複製した仮想計算機に含まれるユーザ固有データ、組織固有データ及びマシン固有データを削除又は変更することにより前記複製した仮想計算機を初期化することを特徴とする仮想計算機提供装置。前記記憶部は、前記既存の仮想計算機群を構成する仮想計算機の用途、仮想計算機を利用するユーザ及び仮想計算機を利用するユーザが所属する組織のそれぞれを識別する識別情報を管理するための仮想計算機イメージ管理情報を記憶し、前記複製元仮想計算機検索部は、前記仮想計算機イメージ管理情報を参照して、前記既存の仮想計算機群からユーザが要求した用途、ユーザ又は組織の識別情報の条件を満たす仮想計算機を検索することを特徴とする請求項1に記載の仮想計算機提供装置。前記記憶部は、複製専用の仮想計算機として予め定められたプログラムを含む仮想計算機テンプレートを記憶し、前記複製元仮想計算機検索部は、前記仮想計算機テンプレートを参照して、前記仮想計算機テンプレートから前記要求プログラムを含む仮想計算機を検索し、前記複製仮想計算機提供部は、前記検索した結果得られた仮想計算機テンプレートを複製及び初期化することを特徴とする請求項2に記載の仮想計算機提供装置。前記依存関係管理情報は、前記利用プログラムのうちの何れか一のプログラムの識別情報、前記何れか一のプログラムの動作に必要なプログラムの識別情報、前記何れか一のプログラムの動作に必要なプログラムのバージョン情報及び前記何れか一のプログラムの動作の前提となるアーキテクチャ情報を含んで構成されることを特徴とする請求項3に記載の仮想計算機提供装置。前記複製元仮想計算機検索部は、前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した結果、前記要求プログラム及び前記要求プログラムの動作に必要なプログラムの全てを含む仮想計算機が得られなかった場合、前記要求プログラム及び前記要求プログラムの動作に必要なプログラムのうち、前記利用プログラムに含まれていないプログラムを不足プログラムとして抽出し、前記複製仮想計算機提供部は、前記検索した結果得られた何れか一の仮想計算機を複製した後、該複製した仮想計算機に前記不足プログラムを追加することを特徴とする請求項4に記載の仮想計算機提供装置。前記複製元仮想計算機検索部は、前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した結果、前記要求プログラム及び前記要求プログラムの動作に必要なプログラム以外のプログラムを前記利用プログラムに含む仮想計算機が得られた場合、前記要求プログラム及び前記要求プログラムの動作に必要なプログラム以外のプログラムを不要プログラムとして抽出し、前記複製仮想計算機提供部は、前記検索した結果得られた何れか一の仮想計算機を複製した後、該複製した仮想計算機から前記不要プログラムを削除することを特徴とする請求項5に記載の仮想計算機提供装置。前記記憶部は、前記利用プログラムのライセンスを管理するためのライセンス管理情報を記憶し、前記複製元仮想計算機検索部は、前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した結果、ライセンス上利用できないプログラムを含む仮想計算機が得られた場合、前記ライセンス管理情報を参照して、前記ライセンス上利用できないプログラムを複製不可プログラムとして抽出し、前記複製仮想計算機提供部は、前記検索した結果得られた何れか一の仮想計算機を複製した後、該複製した仮想計算機から前記複製不可プログラムを削除することを特徴とする請求項6に記載の仮想計算機提供装置。前記複製元仮想計算機検索部は、前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した結果、ライセンス上利用できるプログラムを含む仮想計算機が得られた場合、前記ライセンス管理情報を参照して、前記ライセンス上利用できるプログラムを複製可能プログラムとして抽出し、該抽出した複製可能プログラムの個数から前記不要プログラムの個数を差し引き、差し引いた個数を前記必要プログラムで割る又は前記複製可能プログラムの個数を前記利用プログラムで割ることにより、ユーザの要求を満足させる度合いを示すユーザ要求満足度を算出し、前記ユーザ要求満足度を表示するための表示装置を備えることを特徴とする請求項7に記載の仮想計算機提供装置。前記ライセンス管理情報は、前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した結果、得られた仮想計算機を複製及び初期化した場合にかかるコストの情報を含んで構成され、前記複製元仮想計算機検索部は、前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した後、前記ライセンス管理情報を参照して、前記検索した結果得られた仮想計算機にかかるコストを抽出し、前記表示装置は、前記コストを表示することを特徴とする請求項8に記載の仮想計算機提供装置。前記記憶部は、前記既存の仮想計算機群を構成する仮想計算機が所属するグループを管理するための複数仮想計算機構成情報、前記利用プログラムに接続するための接続設定値を管理するための接続設定値情報及び前記利用プログラムに接続するために変更が必要な接続元のプログラムの設定項目を管理するための接続設定項目情報を記憶し、前記複製仮想計算機提供部は、前記利用プログラムを参照して、前記複製した仮想計算機に不足している前記不足プログラムを含む仮想計算機を接続先の仮想計算機として抽出し、前記接続設定値情報及び前記接続設定項目情報を参照して、該抽出した接続先の仮想計算機に含まれる不足プログラムを前記複製した仮想計算機に接続することにより前記複製した仮想計算機を初期化することを特徴とする請求項9に記載の仮想計算機提供装置。前記複製仮想計算機提供部は、前記利用プログラムを参照して、前記既存の仮想計算機群を構成する仮想計算機に不足している前記不足プログラムを含む前記新規の仮想計算機を接続先の仮想計算機として抽出し、前記接続設定値情報及び前記接続設定項目情報を参照して、該抽出した接続先の仮想計算機に含まれる不足プログラムを前記既存の仮想計算機群を構成する仮想計算機に接続することを特徴とする請求項10に記載の仮想計算機提供装置。複製元仮想計算機検索部により、ネットワーク上に接続されている既存の仮想計算機群からユーザが要求した要求プログラムを含む仮想計算機を検索する第1のステップと、複製仮想計算機提供部により、前記検索した結果得られた仮想計算機を複製及び初期化して新規の仮想計算機を提供する第2のステップと、記憶部により、前記既存の仮想計算機群を構成する仮想計算機が利用する利用プログラムを管理するための利用プログラム管理情報、前記利用プログラム間の依存関係を管理するための依存関係管理情報、前記仮想計算機に含まれるユーザ固有データを管理するためのユーザ固有データ管理情報、前記仮想計算機に含まれる組織固有データを管理するための組織固有データ管理情報及び前記仮想計算機に含まれるマシン固有データを管理するためのマシン固有データ管理情報を記憶する第3のステップとを備え、前記第1のステップにおいて、前記複製元仮想計算機検索部は、前記利用プログラム管理情報を参照して、前記既存の仮想計算機群から前記要求プログラムを含む仮想計算機を検索し、更に前記依存関係管理情報を参照して、前記要求プログラムを含む仮想計算機から前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索し、前記第2のステップにおいて、前記複製仮想計算機提供部は、前記検索した結果得られた仮想計算機を複製した後、前記ユーザ固有データ管理情報、前記組織固有データ管理情報及び前記マシン管理情報を参照して、複製した仮想計算機に含まれるユーザ固有データ、組織固有データ及びマシン固有データを削除又は変更することにより前記複製した仮想計算機を初期化することを特徴とする仮想計算機提供方法。しかし、特許文献1には、単に最小限のOSを備えた仮想計算機テンプレートを用意すること及びリポジトリサーバにより提供される各種プログラムをセットアップすることが開示されているだけである。従ってこの特許文献1の仮想計算機作成方法では、結局のところセットアップの作業が別途必要となり、ユーザに仮想計算機を提供するまでにかかる時間は依然として多く費やされるという問題がある。特にセットアップを必要とするプログラムが多ければ多いほど、仮想計算機を提供するまでには多くの時間が費やされるという問題がある。そこで、本発明は以上の点を考慮してなされたもので、ユーザの要求を満たす新規の仮想計算機を迅速に提供し得る仮想計算機提供システム、仮想計算機提供方法及びプログラムを提供しようとするものである。かかる課題を解決するために、本発明においては、ネットワーク上に接続されている既存の仮想計算機群からユーザが要求した要求プログラムを含む仮想計算機を検索する複製元仮想計算機検索部と、前記検索した結果得られた仮想計算機を複製及び初期化して新規の仮想計算機を提供する複製仮想計算機提供部と、前記既存の仮想計算機群を構成する仮想計算機が利用する利用プログラムを管理するための利用プログラム管理情報、前記利用プログラム間の依存関係を管理するための依存関係管理情報、前記仮想計算機に含まれるユーザ固有データを管理するためのユーザ固有データ管理情報、前記仮想計算機に含まれる組織固有データを管理するための組織固有データ管理情報及び前記仮想計算機に含まれるマシン固有データを管理するためのマシン固有データ管理情報を記憶する記憶部とを備え、前記複製元仮想計算機検索部は、前記利用プログラム管理情報を参照して、前記既存の仮想計算機群から前記要求プログラムを含む仮想計算機を検索し、更に前記依存関係管理情報を参照して、前記要求プログラムを含む仮想計算機から前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索し、前記複製仮想計算機提供部は、前記検索した結果得られた仮想計算機を複製した後、前記ユーザ固有データ管理情報、前記組織固有データ管理情報及び前記マシン管理情報を参照して、複製した仮想計算機に含まれるユーザ固有データ、組織固有データ及びマシン固有データを削除又は変更することにより前記複製した仮想計算機を初期化することを特徴とする。また、本発明においては、複製元仮想計算機検索部により、ネットワーク上に接続されている既存の仮想計算機群からユーザが要求した要求プログラムを含む仮想計算機を検索する第1のステップと、複製仮想計算機提供部により、前記検索した結果得られた仮想計算機を複製及び初期化して新規の仮想計算機を提供する第2のステップと、記憶部により、前記既存の仮想計算機群を構成する仮想計算機が利用する利用プログラムを管理するための利用プログラム管理情報、前記利用プログラム間の依存関係を管理するための依存関係管理情報、前記仮想計算機に含まれるユーザ固有データを管理するためのユーザ固有データ管理情報、前記仮想計算機に含まれる組織固有データを管理するための組織固有データ管理情報及び前記仮想計算機に含まれるマシン固有データを管理するためのマシン固有データ管理情報を記憶する第3のステップとを備え、前記第1のステップにおいて、前記複製元仮想計算機検索部は、前記利用プログラム管理情報を参照して、前記既存の仮想計算機群から前記要求プログラムを含む仮想計算機を検索し、更に前記依存関係管理情報を参照して、前記要求プログラムを含む仮想計算機から前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索し、前記第2のステップにおいて、前記複製仮想計算機提供部は、前記検索した結果得られた仮想計算機を複製した後、前記ユーザ固有データ管理情報、前記組織固有データ管理情報及び前記マシン管理情報を参照して、複製した仮想計算機に含まれるユーザ固有データ、組織固有データ及びマシン固有データを削除又は変更することにより前記複製した仮想計算機を初期化することを特徴とする。本発明によれば、ユーザの要求を満たす新規の仮想計算機を迅速に提供することができる。以下図面について、本発明の一実施の形態を詳述する。1第1の実施の形態第1の実施の形態では、他のユーザに現在提供中の仮想計算機を複製及び初期化することにより、ユーザに新規の仮想計算機を提供し得る仮想計算機提供システムについて説明する。図1は、第1の実施の形態における仮想計算機提供システム1Aの論理構成を示す。仮想計算機提供システム1Aは、仮想計算機提供サービス管理サーバ装置10及び仮想計算機ホスト装置20から構成される。仮想計算機提供サービス管理サーバ装置10及び仮想計算機ホスト装置20は、ネットワーク5を介して相互に接続される。なお仮想計算機ホスト装置20は、仮想計算機提供システム1Aの規模に応じて、複数台がネットワーク5に接続される。仮想計算機提供サービス管理サーバ装置10は、CPUCentralProcessingUnit101、主記憶装置102、二次記憶装置103、表示装置104及び通信インタフェース105を備えて構成される。これらCPU101、主記憶装置102、二次記憶装置103、表示装置104及び通信インタフェース105は、バス106により互いに通信可能に接続される。また通信インタフェース105は、ネットワーク5に接続される。主記憶装置102は、CPU101により実行される複製元仮想計算機検索部1021、仮想化環境管理プログラム1022、複製仮想計算機提供部1023及び必要プログラム一覧作成部1024を備えて構成され、その他各種プログラム等の実行により生成される検索結果リスト1025及び各種プログラム等の実行に用いられる初期化情報リスト1026を備えて構成される。複製元仮想計算機検索部1021は、用途検索部10211、ユーザ名組織名検索部10212、プログラム名検索部10213及びプログラムライセンス確認部10214を備えて構成される。仮想化環境管理プログラム1022は、仮想計算機複製部10221及び仮想計算機起動部10222を備えて構成される。複製仮想計算機提供部1023は、複製仮想計算機環境初期化部10231を備えて構成され、複製仮想計算機環境初期化部10231は、プログラム追加部102311、プログラム削除部102312及び仮想計算機データ変更部102313を備えて構成される。検索結果リスト1025は、複製元仮想計算機検索部1021により検索された検索結果を一時的に格納する記憶領域である。初期化情報リスト1026は、複製元仮想計算機検索部1021により検索された結果得られた仮想計算機の環境を複製仮想計算機環境初期化部10231により初期化するための情報を格納する記憶領域である。図2は、図1の仮想計算機提供システム1Aの仮想計算機ホスト装置20の論理構成を示す。仮想計算機ホスト装置20は、CPU201、主記憶装置202、二次記憶装置203及び通信インタフェース204から構成される。これらCPU201、主記憶装置202、二次記憶装置203及び通信インタフェース204は、バス205により互いに通信可能に接続される。また通信インタフェース204は、ネットワーク5に接続される。主記憶装置202は、CPU201により実行される仮想化機構2021を備えて構成され、仮想化機構2021は、仮想計算機20211及びハイパーバイザ20212を備えて構成される。仮想計算機20211は、ハイパーバイザ20212により主記憶装置202上に作成された仮想計算機ホスト装置20の動作用の仮想的な主記憶装置であり、仮想計算機ホスト装置20上で動作するプログラムの処理の実行に用いられるデータが格納される。ハイパーバイザ20212は、仮想計算機20211を動作させる実行基盤である。なお仮想計算機20211は、後述する仮想計算機イメージ2031と協働して動作することにより初めて仮想計算機20211として機能する。二次記憶装置203は、仮想計算機イメージ2031を備えて構成される。仮想計算機イメージ2031は、仮想計算機20211を構成するために必要な仮想計算機構成情報及び仮想計算機20211用の仮想的な二次記憶装置のデータを1つのファイルとしてパッケージ化したものである。図3は、図1の仮想計算機提供システム1Aの二次記憶装置103の論理構成を示す。二次記憶装置103は、プログラム管理テーブル10301、仮想計算機イメージ管理テーブル10302、利用プログラム管理テーブル10303、プログラムライセンス管理テーブル10304、ユーザ固有データ管理テーブル10305、組織固有データ管理テーブル10306、マシン固有データ管理テーブル10307、依存関係管理テーブル10308及びプログラム保管エリア1030Aを備えて構成される。プログラム管理テーブル10301は、仮想計算機ホスト装置20の仮想計算機20211により利用されるプログラムを管理するためのテーブルである。仮想計算機イメージ管理テーブル10302は、仮想計算機ホスト装置20の二次記憶装置203に含まれる仮想計算機イメージ2031を管理するためのテーブルである。利用プログラム管理テーブル10303は、仮想計算機イメージ2031に含まれるプログラムを管理するためのテーブルである。プログラムライセンス管理テーブル10304は、仮想計算機ホスト装置20の仮想計算機20211において利用されるプログラムのライセンスを管理するためのテーブルである。ユーザ固有データ管理テーブル10305は、仮想計算機20211を利用するユーザのユーザ固有データを管理するためのテーブルである。ユーザ固有データとは、ユーザが個人的に作成して利用するデータのことであり、例えば文書ファイル、画像ファイル、アカウント情報又は壁紙やサウンド等の設定情報に関するデータである。組織固有データ管理テーブル10306は、仮想計算機20211を利用するユーザが所属する組織の組織固有データを管理するためのテーブルである。組織固有データとは、特定の組織が利用するデータのことであり、例えば仮想計算機20211を利用するユーザがネットワーク5に接続する際に使用する組織が共通で使用しているプロキシサーバやファイルサーバの設定情報等のデータである。マシン固有データ管理テーブル10307は、仮想計算機20211のマシン固有データを管理するためのテーブルである。マシン固有データとは、特定のマシンが利用するデータのことであり、例えばIPアドレスやホスト名等のデータである。依存関係管理テーブル10308は、プログラム管理テーブル10301が管理する仮想計算機20211により利用されるプログラム間の依存関係情報を管理するためのテーブルである。プログラム保管エリア1030Aは、プログラム管理テーブル10301が管理する仮想計算機20211において利用されるプログラムを一時的に保管する保管場所である。図4Aは、図1の仮想計算機提供システム1Aの検索結果リスト1025の概念図を示す。検索結果リスト1025には、ユーザが指定した検索条件を満たす仮想計算機20211の情報が格納される。ユーザが指定する検索条件には、例えば用途、ユーザ名、組織名又はプログラム名等がある。ユーザが指定した検索条件を満たす仮想計算機20211の情報は、複製元仮想計算機検索部1021内の用途検索部10211、ユーザ名組織名検索部10212及びプログラム名検索部10213により検索される。また検索された仮想計算機20211の情報は、表示装置104により表示される。検索結果リスト1025は、仮想計算機名欄10251、環境初期化情報欄10252、ユーザ名欄10253、組織名欄10254、OS名欄10255、用途欄10256、コスト欄10257及び要求満足度欄10258から構成される。仮想計算機名欄10251には、複製元の仮想計算機20211の仮想計算機名が格納される。環境初期化情報欄10252には、複製元仮想計算機検索部1021により検索されたユーザ指定の仮想計算機20211が複製されて計算機環境が初期化される際、その初期化に必要な情報が格納される。なお計算機環境とは、仮想計算機20211に含まれる各種固有データや各種プログラムである。各種固有データとは、ユーザ固有データ、組織固有データ及びマシン固有データ等であり、各種プログラムとは、ユーザが要求する要求プログラム及び要求プログラムの動作に必要なプログラム等である。また初期化とは、複製した新規の仮想計算機をユーザに提供する前に、複製直後の仮想計算機20211に含まれる各種固有データや各種プログラムを削除又は変更する処理をいう。初期化は、複製仮想計算機環境初期化部10231により行われる。また初期化に必要な情報とは、ここでは初期化情報リスト1026図4B参照の行番号である。ユーザ名欄10253には、複製元の仮想計算機20211のユーザ名が格納される。また組織名欄10254には、複製元の仮想計算機20211のユーザが所属する組織名が格納される。またOS名欄10255には、複製元の仮想計算機20211に含まれるOSのOS名が格納される。また用途欄10256には、複製元の仮想計算機20211の使用用途が格納される。コスト欄10257には、複製元の仮想計算機20211を複製及び初期化して新規の仮想計算機をユーザに提供する場合に必要な金銭的コストが格納される。金銭的コストには、例えば仮想計算機提供サービスにおいて仮想計算機20211の利用にかかる課金額やソフトウェアのライセンス料金等が含まれる。要求満足度欄10258には、複製元の仮想計算機20211を複製及び初期化して新規の仮想計算機をユーザに提供する場合にそのユーザの要求が満たされる度合いについて算出した値が格納される。従って、図4Aの場合、例えばVM5という仮想計算機名の仮想計算機20211を複製して計算機環境を初期化しようとする場合、その初期化には初期化情報リスト1026図4B参照の1行目の情報を参照することが示されている。またVM5という仮想計算機20211は、User02というユーザ名のユーザであって、Org02という組織名の組織に所属しているユーザが現在利用中の仮想計算機であることが示されている。またVM5という仮想計算機20211では、os_a5.5というOS名のOSが動作していることが示されている。またVM5という仮想計算機20211を複製する場合、5000円のコストが必要となり、ユーザの要求は100満たされることが示されている。図4Bは、図1の仮想計算機提供システム1Aの初期化情報リスト1026の概念図を示す。初期化情報リスト1026には、複製元の仮想計算機20211の計算機環境を初期化する際に必要な情報が格納される。初期化する際に必要な情報は、図1の主記憶装置102に格納される。また初期化は、複製仮想計算機環境初期化部10231により行われる。初期化情報リスト1026は、検索結果リスト1025の環境初期化情報欄10252に格納されている情報に関連付けられており、行番号欄10261、利用プログラム一覧欄10262、特徴プログラム一覧欄10263、共通プログラム一覧欄10264、不足プログラム一覧欄10265、複製可能プログラム一覧欄10266、複製不可プログラム一覧欄10267、必要プログラム一覧欄10268及び不要プログラム一覧欄10269から構成される。行番号欄10261には、行番号が格納される。この行番号は、検索結果リスト1025図4A参照から初期化情報リスト1026を参照する際に用いられる。利用プログラム一覧欄10262には、複製後の新規の仮想計算機により利用される予定の利用プログラムのIDが格納される。この利用プログラムのIDは、プログラム追加部102311及びプログラム削除部102312により格納される。特徴プログラム一覧欄10263には、複製元仮想計算機検索部1021により複製元の仮想計算機20211が検索された結果、複数の仮想計算機20211が検索結果として得られた場合、それぞれの仮想計算機20211に含まれるプログラムのうちの特徴的なプログラムである特徴プログラムのIDが格納される。特徴プログラムとは、複数の仮想計算機20211のそれぞれに含まれるプログラムのうち、何れか一の仮想計算機20211には含まれるが他の仮想計算機20211には含まれないプログラムである。共通プログラム一覧欄10264には、複製元仮想計算機検索部1021により複製元の仮想計算機が検索された結果、複数の仮想計算機20211が検索結果として得られた場合、その複数の仮想計算機20211のそれぞれに共通して含まれる共通プログラムのIDが格納される。共通プログラムのIDは、複製元仮想計算機検索部1021により特徴プログラムを抽出する場合に用いられる。不足プログラム一覧欄10265には、複製した新規の仮想計算機に対し、追加でセットアップする必要のある不足プログラムのIDが格納される。不足プログラムのIDは、プログラム名検索部10213により検索されて格納される。また不足プログラムは、プログラム追加部102311により新規の仮想計算機に追加される。複製可能プログラム一覧欄10266には、利用プログラム一覧欄10262に格納されている利用プログラムのうち、ライセンス条件を満たしているプログラムである複製可能プログラムのIDが格納されえる。ライセンス条件を満たしているか否かについては、プログラムライセンス確認部10214により判断される。複製可能プログラムのIDは、複製仮想計算機環境初期化部10231により、新規の仮想計算機に残して良いプログラムであるか否かを判断する場合に用いられる。複製不可プログラム一覧欄10267には、利用プログラム一覧欄10262に格納されている利用プログラムのうち、ライセンス条件を満たしていないプログラムである複製不可プログラムのIDが格納される。ライセンス条件を満たしているか否かについては、プログラムライセンス確認部10214により判断される。複製不可プログラムのIDは、プログラム削除部102312により、ソフトウェアライセンス上利用することができないプログラムを複製直後の新規の仮想計算機から削除する場合に用いられる。必要プログラム一覧欄10268には、ユーザが要求するプログラム及びユーザが要求するプログラムの動作に必要なプログラムである必要プログラムのIDが格納される。必要プログラムのIDは、必要プログラム一覧作成部1024により格納される。また必要プログラムのIDは、プログラム名検索部10213により、不足プログラム及び不要プログラムを抽出する場合に用いられる。不要プログラム一覧欄10269には、複製可能プログラム一覧欄10266に格納されている複製可能プログラムのうち、必要プログラムではないプログラムである不要プログラムのIDが格納される。不要プログラムのIDは、プログラム名検索部10213により格納される。また不要プログラムのIDは、プログラム削除部102312により、ユーザの要求を満たすためには不要なプログラムを複製後の新規の仮想計算機から削除する場合に用いられる。従って、図4Bの場合、例えばVM5という仮想計算機名の仮想計算機20211の計算機環境を初期化する場合、初期化に際しては行番号1の初期化情報が用いられることが示されている図4A、図4B参照。また、行番号1の初期化情報は、PG1、PG7、PG9、PG10、PG11、PG12というIDの利用プログラムが含まれており、このうちPG9というIDのプログラムは、VM5という仮想計算機20211とは異なるVM6という他の仮想計算機20211には含まれていない特徴的なプログラムであることが示されている。また、行番号1の初期化情報は、不足プログラムがないことが示されている。また行番号1の初期化情報は、PG1、PG7、PG9、PG10、PG11、PG12というIDの利用プログラムのうち、PG1、PG7、PG9、PG10、PG11というIDのプログラムがライセンス上利用可能な複製可能プログラムであり、PG12というIDのプログラムがライセンス上利用不可である複製不可プログラムであることが示されている。また、行番号1の初期化情報は、PG1、PG7、PG8又はPG9、PG10というIDのプログラムが複製した新規の仮想計算機に要求する要求プログラムであることが示されている。なお複製した新規の仮想計算機には、PG8及びPG9というIDのプログラムのうち、何れか一方のプログラムが含まれていればユーザの要求は満たされることが示されている。また新規の仮想計算機には、PG11というIDのプログラムは不要であり不要プログラムであることが示されている。なお、これらPG1、PG7、PG9、PG10、PG11、PG12というIDのプログラムは、後述するプログラム管理テーブル10301図5参照を参照することにより、具体的にはos_a5.5、lang_r3.0、db_a1.0、web_app_a1.0、web_app_b1.0、web_app_c1.0であることが分かる。図5は、図3のプログラム管理テーブル10301の概念図を示す。プログラム管理テーブル10301は、仮想計算機提供システム1Aの各仮想計算機20211が利用するプログラムの情報を管理するためのテーブルであり、プログラム名検索部10213により、各仮想計算機20211に含まれるプログラムを検索する場合に用いられる。プログラム管理テーブル10301は、ID欄103011、プログラム名欄103012、バージョン欄103013、アーキテクチャ欄103014、保管場所欄103015及びセットアッププログラム名欄103016から構成される。ID欄103011には、仮想計算機提供システム1Aにおいてプログラムを特定するための文字列が格納される。ここではプログラムに付与されるIDが格納される。プログラム名欄103012には、プログラム名が格納される。バージョン欄103013には、バージョン情報が格納される。アーキテクチャ欄103014には、動作の前提となるハードウェアアーキテクチャ条件を示した文字列が格納される。保管場所欄103015には、プログラムの保管場所が格納される。セットアッププログラム名欄103016には、プログラムをセットアップする際に実行するプログラム名が格納される。従って、図5の場合、例えばPG1というIDのプログラムは、プログラム名がos_aであり、バージョンは5.5であり、動作アーキテクチャはarc_32であり、プログラムの保管場所は/srv/os/setup/os_a5.5/であり、セットアッププログラム名はsetupであることが示されている。図6Aは、図3の仮想計算機イメージ管理テーブル10302の概念図を示す。仮想計算機イメージ管理テーブル10302は、仮想計算機提供システム1Aにおいて提供されている全ての仮想計算機イメージ2031を管理するためのテーブルであり、用途検索部10211、ユーザ名組織名検索部10212及びプログラム名検索部10213により、ユーザが指定した検索条件を満たす仮想計算機20211を検索する場合に用いられる。仮想計算機イメージ管理テーブル10302は、仮想計算機名欄103021、ユーザ名欄103022、組織名欄103023、OS名欄103024及び用途欄103025から構成される。仮想計算機名欄103021には、複製元の仮想計算機20211の仮想計算機名が格納される。ユーザ名欄103022には、仮想計算機20211を利用しているユーザのユーザ名が格納される。組織名欄103023には、仮想計算機20211を利用しているユーザが所属する組織の組織名が格納される。OS名欄103024には、仮想計算機20211に含まれるOSのOS名が格納される。用途欄103025には、仮想計算機20211の用途を示す文字列が格納される。従って、図6Aの場合、例えばVM0という仮想計算機名の仮想計算機20211は、user00というユーザ名のユーザであって、org00という組織名の組織に所属しているユーザが現在利用中の仮想計算機であることが示されている。またVM0という仮想計算機20211では、os_a5.5というOS名のOSが動作していることが示されている。またVM0という仮想計算機20211は、Webサーバの用途で用いられていることが示されている。なおAPサーバとは、アプリケーションサーバであり、DBサーバとは、データベースサーバである。図6Bは、図3の利用プログラム管理テーブル10303の概念図を示す。利用プログラム管理テーブル10303は、仮想計算機提供システム1Aにおいて提供される各仮想計算機イメージ2031に含まれるプログラムを管理するためのテーブルであり、プログラム名検索部10213により、ユーザが検索条件に指定したプログラムを含む仮想計算機20211を検索する場合に用いられる。利用プログラム管理テーブル10303は、仮想計算機名欄103031及びプログラムID一覧欄103032から構成される。仮想計算機名欄103031には、仮想計算機20211の仮想計算機名が格納される。プログラムID一覧欄103032には、仮想計算機20211に含まれるプログラムのIDが格納される。従って、図6Bの場合、例えばVM0という仮想計算機名の仮想計算機20211は、PG1、PG3というIDのプログラムを含んでいることが示されている。図7は、図3のプログラムライセンス管理テーブル10304の概念図を示す。プログラムライセンス管理テーブル10304は、仮想計算機提供システム1Aにおいて提供されているプログラムのライセンスを管理するためのテーブルであり、プログラムライセンス確認部10214により、複製後の新規の仮想計算機に含まれるプログラムがライセンス上利用できるか否かを判断する場合に用いられる。プログラムライセンス管理テーブル10304は、プログラムID欄103041、ライセンス形態欄103042、セットアップ数欄103043、所有ライセンス数欄103044及びライセンスコスト欄103045から構成される。プログラムID欄103041には、プログラムのIDが格納される。ライセンス形態欄103042には、プログラムのライセンス形態を示す文字列が格納される。セットアップ数欄103043には、仮想計算機提供システム1Aにおいてそのプログラムがセットアップされている仮想計算機20211の数が格納される。所有ライセンス数欄103044には、仮想計算機提供システム1Aにおいてそのプログラムをセットアップすることができる仮想計算機20211の最大数が格納される。ライセンスコスト欄103045には、プログラムを1個使用するのに必要なライセンスコストの金額が格納される。従って、図7の場合、例えばPG1というIDのプログラムは、ライセンス形態がフリーソフトウェアライセンスであり、仮想計算機提供システム1Aにおいて既に7つの仮想計算機20211にセットアップされていることが示されている。また所有ライセンス数に上限はなく、ライセンスコストは0円であることが示されている。図8は、図3の依存関係管理テーブル10308の概念図を示す。依存関係管理テーブル10308は、仮想計算機提供システム1Aにおいて提供されるプログラム間の依存関係を管理するためのテーブルであり、必要プログラム一覧作成部1024により、ユーザが検索条件に指定したプログラムの動作に必要なプログラムの一覧を作成する場合に用いられる。依存関係管理テーブル10308は、依存関係ID欄103081、プログラムID欄103082、依存プログラム名欄103083、依存バージョン欄103084及び依存アーキテクチャ欄103085から構成される。依存関係ID欄103081には、依存関係を識別するためのIDが格納される。プログラムID欄103082には、プログラムのIDが格納される。依存プログラム名欄103083には、プログラムID欄103082に格納されたIDのプログラムを動作させるために必要なプログラムのプログラム名が格納される。依存バージョン欄103084には、バージョン範囲が格納される。依存アーキテクチャ欄103085には、動作の前提となるハードウェアアーキテクチャ条件を示した文字列が格納される。従って、図8の場合、例えばDPG1というIDの依存関係は、PG8というIDのプログラムと、db_a又はdb_bというプログラムとが依存関係にあることが示されている。具体的にはPG8というIDのプログラムを動作させる場合には、db_a又はdb_bというプログラムが必要であることが示されている。また詳細にはdb_aというプログラムは、バージョンが1.0以上であって、アーキテクチャがarc_32である必要があることが示されている。またdb_bというプログラムは、バージョンが2.0以上であって、アーキテクチャがarc_32である必要があることが示されている。図9Aは、図3のユーザ固有データ管理テーブル10305の概念図を示す。ユーザ固有データ管理テーブル10305は、プログラムごとにユーザ固有データの保管場所を管理するためのテーブルであり、仮想計算機データ変更部102313により、複製した新規の仮想計算機から複製元の仮想計算機20211を利用しているユーザのユーザ固有データを削除する場合に用いられる。ユーザ固有データ管理テーブル10305は、プログラムID欄103051、データ名欄103052、データ形式欄103053、保管場所欄103054及び記述欄103055から構成される。プログラムID欄103051には、プログラムのIDが格納される。データ名欄103052には、データ内容を示す文字列が格納される。データ形式欄103053には、データの形式を区別するための文字列が格納される。保管場所欄103054には、仮想計算機20211のファイルシステム上におけるデータの保管場所を示す文字列が格納される。記述欄103055には、データ形式欄103053に格納される文字列が示すデータ形式がファイルの一部を示す文字列である場合、ファイル内のデータの場所を示す文字列が格納される。従って、図9Aの場合、例えばPG1というIDのプログラムのユーザディレクトリが/usr/であることが示されている。図9Bは、図3の組織固有データ管理テーブル10306の概念図を示す。組織固有データ管理テーブル10306は、組織固有データの保管場所を管理するためのテーブルであり、仮想計算機データ変更部102313により、複製した新規の仮想計算機においてユーザが所属している組織を示す組織固有データを変更する場合に用いられる。組織固有データ管理テーブル10306は、プログラムID欄103061、データ名欄103062、データ形式欄103063、保管場所欄103064及び記述欄103065から構成される。各欄に格納される情報は、ユーザ固有データ管理テーブル10305と同様であるため、ここでの説明は省略する。従って、図9Bの場合、例えばPG1というIDのプログラムのプログラム内のプロキシ設定は、/etc/proxy.confというファイル内のProxy=xxxxという記述であることが示されている。図9Cは、図3のマシン固有データ管理テーブル10307の概念図を示す。マシン固有データ管理テーブル10307は、仮想計算機20211固有のデータ保管場所を管理するためのテーブルであり、仮想計算機データ変更部102313により、複製した新規の仮想計算機から複製元の仮想計算機20211固有のデータを変更する場合に用いられる。マシン固有データ管理テーブル10307は、プログラムID欄103071、データ名欄103072、データ形式欄103073、保管場所欄103074及び記述欄103075から構成される。各欄に格納される情報は、ユーザ固有データ管理テーブル10305と同様であるため、ここでの説明は省略する。従って、図9Cの場合、例えばPG1というIDのプログラムのipアドレス設定は、/etc/ntwk/ipcfgというファイル内のIPADDR=xxxxという記述であることが示されている。図10は、複製元の仮想計算機20211を複製及び初期化することにより新規の仮想計算機20211Aをユーザに提供する処理の流れの概念図を示す。なおこれ以降、複製元の仮想計算機を仮想計算機20211と記載し、複製後の新規の仮想計算機を仮想計算機20211Aと記載して両者を区別して説明する。まず、仮想計算機提供システム1Aにおいて、ユーザBから新規の仮想計算機20211Aの要求があると、用途検索部10211、ユーザ名組織名検索部10212及びプログラム名検索部10213により、ユーザBの要求を満たす複製元の仮想計算機20211が検索される。ここでは、ユーザAが現在利用中の仮想計算機20211が検索結果として得られた場合について説明する。次いで、仮想化環境管理プログラム1022の仮想計算機複製部10221により、検索された複製元の仮想計算機20211が複製される。ここで、この複製直後の仮想計算機20211AをユーザBに提供することにより、ユーザBが要求したOSM1010やプログラムM1006、M1007を備えた仮想計算機20211Aを迅速に提供することができる。しかし、この複製直後の仮想計算機20211Aは、ユーザAが現在利用中の仮想計算機20211を単に複製したものであるため、ユーザAのユーザ固有データM1003A、ユーザAが所属する組織の組織固有データM1004A及び複製元の仮想計算機20211のマシン固有データM1005Aもそのまま複製されてしまっている。従ってこの複製直後の仮想計算機20211AをそのままユーザBに提供することはできない。そこで、複製仮想計算機環境初期化部10231により、複製直後の仮想計算機20211Aの計算機環境を初期化する必要がある。計算機環境の初期化では、仮想計算機データ変更部102313により、ユーザ固有データM1003Aが削除され、組織固有データM1004A及びマシン固有データM1005Aが変更される。またプログラム削除部102312により、ユーザBにとって不要なプログラムM1008Aが削除される。更にプログラム追加部102311により、ユーザBが必要としているプログラムであって、複製元の仮想計算機20211には含まれていなかったプログラムM1009Aが追加される。以上の処理により、ユーザAが利用中の仮想計算機20211を複製して初期化することにより、ユーザBの要求に応じた新規の仮想計算機20211AをユーザBに提供することができる。図11は、図1の表示装置104において表示される用途検索画面M1101の画面構成図を示す。用途検索画面M1101は、複製元仮想計算機検索部1021の用途検索部10211により、表示装置104に表示される。また用途検索画面M1101は、仮想計算機提供システム1Aにおける複数の仮想計算機20211から複製元となる仮想計算機20211を検索する際、用途に基づいて検索する場合に用いられる。用途検索画面M1101は、用途検索タブC01、ユーザ名組織名検索タブC02、プログラム名検索タブC03、用途入力フィールドM1102、OS名入力フィールドM1103、検索ボタンM1104、検索結果表示フィールドM1105、複製元選択ボタンM1106、仮想計算機複製初期化ボタンM1107、仮想計算機名入力フィールドM1108、ユーザ名入力フィールドM1109、組織名入力フィールドM1110及び用途入力フィールドM1111から構成される。用途検索タブC01は、用途検索画面M1101を表示させるためのタブである。ユーザ名組織名検索タブC02は、ユーザ名組織名検索画面M1201図12参照を表示させるためのタブである。プログラム名検索タブC03は、プログラム名検索画面M1301図13参照を表示させるためのタブである。用途入力フィールドM1102は、検索対象の複製元の仮想計算機20211の用途を入力するためのフィールドである。OS名入力フィールドM1103は、検索対象の複製元の仮想計算機20211に含まれるOSのOS名を入力するためのフィールドである。検索ボタンM1104は、用途入力フィールドM1102に用途が入力され、OS名入力フィールドM1103にOS名が入力された後、検索ボタンM1104が押下された場合、用途検索部10211により、入力された用途及びOS名に基づいて、複製元の仮想計算機20211を検索させるためのボタンである。用途検索部10211は、検索ボタンM1104が押下されると、次に述べる処理を実行する。まず、用途検索部10211は、仮想計算機イメージ管理テーブル10302図6A参照を参照して、用途欄103025に格納されている用途と入力された用途とが一致し、かつ、OS名欄103024に格納されているOS名と入力されたOS名とが一致する行を仮想計算機イメージ管理テーブル10302から抽出する。次いで、用途検索部10211は、検索結果リスト1025図4A参照に新たに行を作成する。そして用途検索部10211は、作成した行における仮想計算機名欄10251、ユーザ名欄10253、組織名欄10254、OS名欄10255、用途欄10256の各欄に、仮想計算機イメージ管理テーブル10302から抽出した行の仮想計算機名、ユーザ名、組織名、OS名、用途の情報をそれぞれ格納する。次いで、用途検索部10211は、初期化情報リスト1026図4B参照に新たに行を作成する。初期化情報リスト1026に新たに作成した行の各欄に各種情報を格納する処理については後述する図14~図18参照。用途検索部10211は、初期化情報リスト1026に新たに作成した行の行番号欄10261に格納された行番号を上述の検索結果リスト1025に新たに作成した行の環境初期化情報欄10252に格納する。検索結果表示フィールドM1105は、用途検索部10211により検索結果リスト1025に新たに作成した行にかかる情報を表示するフィールドである。検索結果表示フィールドM1105は、検索結果リスト1025に新たに作成した行にかかる情報を表示する構成として、複製元選択ボタンM1106、仮想計算機名表示フィールドR01、ユーザ名表示フィールドR02、組織名表示フィールドR03、OS名表示フィールドR04、用途表示フィールドR05、特徴プログラム表示フィールドR06、不足プログラム表示フィールドR07、ユーザ要求満足度表示フィールドR08及びコスト表示フィールドR09から構成される。複製元選択ボタンM1106は、検索結果表示フィールドM1105に表示された複数の複製元の仮想計算機20211の候補から一の複製元の仮想計算機20211を選択するためのボタンである。仮想計算機名表示フィールドR01には、複製元の候補となる仮想計算機20211の仮想計算機名が表示される。ユーザ名表示フィールドR02には、複製元の候補となる仮想計算機20211を現在利用しているユーザのユーザ名が表示される。組織名表示フィールドR03には、複製元の候補となる仮想計算機20211を現在利用しているユーザが所属している組織の組織名が表示される。OS名表示フィールドR04には、複製元の候補となる仮想計算機20211に含まれるOSのOS名が表示される。用途表示フィールドR05には、複製元の候補となる仮想計算機20211の用途が表示される。特徴プログラム表示フィールドR06には、複製元の候補となる仮想計算機20211に含まれる特徴的なプログラムのIDが表示される。不足プログラム表示フィールドR07には、複製した新規の仮想計算機20211Aに対し、追加でセットアップする必要のあるプログラムのIDが表示される。ユーザ要求満足度表示フィールドR08には、複製元の仮想計算機20211を複製してユーザに提供した場合にそのユーザの要求が満たされる度合いが表示される。コスト表示フィールドR09には、複製元の仮想計算機20211を複製して新規の仮想計算機20211Aをユーザに提供するまでにかかる必要な金銭的コストが表示される。従って、図11の場合、例えばWebサーバという用途の仮想計算機20211であって、os_aというOSが含まれる仮想計算機20211を検索条件として検索されたことが示されている。そして検索ボタンM1104の押下により検索された結果、検索結果表示フィールドM1105には、VM0及びVM1という仮想計算機20211が検索結果として得られたことが示されている。またVM0の仮想計算機20211は、user00というユーザであって、org00という組織に所属しているユーザが現在利用中であることが示されている。またVM0の仮想計算機20211は、os_a5.5というOSにより動作することが示されている。またVM0の仮想計算機20211は、Webサーバの用途で用いられることが示されている。またVM0の仮想計算機20211は、不足プログラムがなく、そのため100のユーザ要求満足度であることが示されている。またVM0の仮想計算機20211を複製元として利用する場合、5000円の金銭的コストが必要であることが示されている。仮想計算機複製初期化ボタンM1107は、複製元選択ボタンM1106により選択された複製元の仮想計算機20211について、複製及び初期化を実行するためのボタンである。この仮想計算機複製初期化ボタンM1107が押下されると、複製仮想計算機提供部1023により、複製元の仮想計算機20211の複製及び初期化が実行されることになる図21参照。仮想計算機名入力フィールドM1108は、新規の仮想計算機20211Aの仮想計算機名を入力するためのフィールドである。ユーザ名入力フィールドM1109は、新規の仮想計算機20211Aを利用するユーザのユーザ名を入力するためのフィールドである。組織名入力フィールドM1110は、新規の仮想計算機20211Aを利用するユーザが所属する組織の組織名を入力するためのフィールドである。用途入力フィールドM1111は、新規の仮想計算機20211Aの用途を入力するためのフィールドである。図12は、図1の表示装置104において表示されるユーザ名組織名検索画面M1201の画面構成図を示す。ユーザ名組織名検索画面M1201は、複製元仮想計算機検索部1021のユーザ名組織名検索部10212により、表示装置104に表示される。またユーザ名組織名検索画面M1201は、仮想計算機提供システム1Aにおける複数の仮想計算機20211から複製元となる仮想計算機20211を検索する際、ユーザ名又は組織名に基づいて検索する場合に用いられる。ユーザ名組織名検索画面M1201は、図11の用途入力フィールドM1102及びOS名入力フィールドM1103に替えて、ユーザ名入力フィールドM1202及び組織名入力フィールドM1203を備えて構成される。ユーザ名入力フィールドM1202は、検索対象の複製元の仮想計算機20211を利用するユーザのユーザ名を入力するためのフィールドである。組織名入力フィールドM1203は、検索対象の複製元の仮想計算機20211を利用するユーザが所属する組織の組織名を入力するためのフィールドである。ユーザ名組織名検索画面M1201のその他の構成は、用途検索画面M1101と同様に構成されるため、ここでの説明は省略する。ユーザ名組織名検索部10212は、ユーザ名及び組織名が入力された後、検索ボタンM1204が押下されると、次に述べる処理を実行する。まず、ユーザ名組織名検索部10212は、仮想計算機イメージ管理テーブル10302図6A参照を参照して、ユーザ名欄103022に格納されているユーザ名と入力されたユーザ名とが一致し、かつ、組織名欄103023に格納されている組織名と入力された組織名とが一致する行を仮想計算機イメージ管理テーブル10302から抽出する。次いで、ユーザ名組織名検索部10212は、検索結果リスト1025図4A参照に新たに行を作成する。そしてユーザ名組織名検索部10212は、作成した行における仮想計算機名欄10251、ユーザ名欄10253、組織名欄10254、OS名欄10255及び用途欄10256の各欄に、仮想計算機イメージ管理テーブル10302から抽出した行の仮想計算機名、ユーザ名、組織名、OS名及び用途の情報をそれぞれ格納する。次いで、ユーザ名組織名検索部10212は、初期化情報リスト1026図4B参照に新たに行を作成する。初期化情報リスト1026に新たに作成した行の各欄に各種情報を格納する処理については後述する図14~図18参照。ユーザ名組織名検索部10212は、初期化情報リスト1026に新たに作成した行の行番号欄10261に格納された行番号を上述の検索結果リスト1025に新たに作成した行の環境初期化情報欄10252に格納する。検索結果表示フィールドM1205は、ユーザ名組織名検索部10212により検索結果リスト1025に新たに作成した行にかかる情報を表示するフィールドである。この検索結果表示フィールドM1205で表示される情報は、図11の検索結果表示フィールドM1105で表示される情報と同様であるため、ここでの説明は省略する。図13は、図1の表示装置104において表示されるプログラム名検索画面M1301の画面構成図を示す。プログラム名検索画面M1301は、複製元仮想計算機検索部1021のプログラム名検索部10213により、表示装置104に表示される。またプログラム名検索画面M1301は、仮想計算機提供システム1Aにおける複数の仮想計算機20211から複製元となる仮想計算機20211を検索する際、プログラム名に基づいて検索する場合に用いられる。プログラム名検索画面M1301は、図11の用途入力フィールドM1102及びOS名入力フィールドM1103に替えて、プログラム名入力フィールドM1302を備えて構成される。プログラム名入力フィールドM1302は、検索対象の複製元の仮想計算機20211に含まれるプログラムのプログラム名及びバージョン条件を入力するためのフィールドである。プログラム名検索画面M1301のその他の構成は、用途検索画面M1101と同様に構成されるため、ここでの説明は省略する。プログラム名検索部10213は、プログラム名及びバージョン条件が入力された後、検索ボタンM1303が押下されると、次に述べる処理を実行する。まず、プログラム名検索部10213は、利用プログラム管理テーブル10303図6B参照を参照して、入力されたプログラム名のプログラムを含む仮想計算機20211を検索し、検索により得られた仮想計算機20211の仮想計算機名を利用プログラム管理テーブル10303から抽出する。またプログラム名検索部10213は、プログラム管理テーブル10301図5参照を参照して、入力されたバージョンがバージョン条件を満たすか否か判断する。そしてプログラム名検索部10213は、先に抽出した仮想計算機名の仮想計算機20211のうち、バージョン条件を満たすプログラムを含む仮想計算機20211の行を仮想計算機イメージ管理テーブル10302から抽出する。次いで、プログラム名検索部10213は、検索結果リスト1025図4A参照に新たに行を作成する。そしてプログラム名検索部10213は、作成した行における仮想計算機名欄10251、ユーザ名欄10253、組織名欄10254、OS名欄10255及び用途欄10256の各欄に、仮想計算機イメージ管理テーブル10302から抽出した行の仮想計算機名、ユーザ名、組織名、OS名及び用途の情報をそれぞれ格納する。次いで、プログラム名検索部10213は、初期化情報リスト1026図4B参照に新たに行を作成する。初期化情報リスト1026に新たに作成した行の各欄に各種情報を格納する処理については後述する図14~図18参照。プログラム名検索部10213は、初期化情報リスト1026に新たに作成した行の行番号欄10261に格納された行番号を上述の検索結果リスト1025に新たに作成した行の環境初期化情報欄10252に格納する。検索結果表示フィールドM1304は、プログラム名検索部10213により検索結果リストに新たに作成した行にかかる情報を表示するフィールドである。この検索結果表示フィールドM1304で表示される情報は、図11の検索結果表示フィールドM1105で表示される情報と同様であるため、ここでの説明は省略する。図14は、複製元仮想計算機検索部1021からの実行指示を受け付けた用途検索部10211により行われる用途検索処理の処理手順を示す。用途検索部10211は、図11の用途検索画面M1101の検索ボタンM1104が押下されると複製元仮想計算機検索部1021からの実行指示を受け付け、この図14に示す処理手順に従って、複数の複製元の仮想計算機20211から用途に基づく検索処理を実行する。まず、用途検索部10211は、仮想計算機イメージ管理テーブル10302を参照して、用途検索画面M1101において入力された用途及びOS名を含む行を検索する。そして用途検索部10211は、検索した結果得られた行を仮想計算機イメージ管理テーブル10302から抽出するS1001。次いで、用途検索部10211は、検索結果リスト1025及び初期化情報リスト1026に新たに行を作成し、作成した行の仮想計算機名欄10251、ユーザ名欄10253、組織名欄10254、OS名欄10255及び用途欄10256の各欄に、ステップS1001で抽出した行に含まれる仮想計算機名、ユーザ名、組織名、OS名及び用途のそれぞれを格納してS1002、本処理を終了する。図15は、複製元仮想計算機検索部1021からの実行指示を受け付けたプログラムライセンス確認部10214により行われるライセンス確認処理の処理手順を示す。複製元仮想計算機検索部1021は、図11の用途検索画面M1101の検索ボタンM1104が押下されると、上述した図14に示す検索処理の実行を用途検索部10211に指示するとともに、プログラムライセンス確認部10214にプログラムライセンス確認処理の実行を指示する。プログラムライセンス確認部10214は、複製元仮想計算機検索部1021からのプログラムライセンス確認処理の実行指示を受け付けると、この図15に示す処理手順に従って、図14に示す検索処理により検索結果として得られた複製元の仮想計算機20211について、ライセンス上利用可能なプログラムと、ライセンス上利用不可能なプログラムとを抽出する処理を実行する。まず、プログラムライセンス確認部10214は、利用プログラム管理テーブル10303図6B参照を参照して、仮想計算機名欄103031に格納されている仮想計算機名と検索結果リスト1025の仮想計算機名欄10251に格納されている仮想計算機名とが一致する行を利用プログラム管理テーブル10303から抽出する。そしてプログラムライセンス確認部10214は、利用プログラム管理テーブル10303から抽出した行のプログラムID一覧欄103032に格納されている利用可能なプログラムを初期化情報リスト1026の利用プログラム一覧欄10262に格納するS1011。次いで、プログラムライセンス確認部10214は、プログラムライセンス管理テーブル10304図7参照を参照して、プログラムID欄103041に格納されているプログラムのIDと初期化情報リスト1026の利用プログラム一覧欄10262に格納されているプログラムのIDとが一致する行をプログラムライセンス管理テーブル10304から抽出する。そしてプログラムライセンス確認部10214は、プログラムライセンス管理テーブル10304から抽出した行のライセンス形態欄103042に格納されたライセンス形態の情報を参照して、ステップS1011で利用プログラム一覧欄10262に格納したIDのプログラムがライセンス上利用可能であるか否か判断するS1012。具体的には、ステップS1012において、プログラムライセンス確認部10214は、プログラムライセンス管理テーブル10304から抽出した行のライセンス形態欄103042に格納されているライセンス形態がフリーソフトの場合、利用プログラム一覧欄10262に格納したIDのプログラムはライセンス上利用可能なプログラムであると判断する。また、ステップS1012において、プログラムライセンス確認部10214は、プログラムライセンス管理テーブル10304から抽出した行のライセンス形態欄103042に格納されているライセンス形態がボリュームライセンスの場合であって、かつ、セットアップ数欄103043に格納されているセットアップ数が所有ライセンス数欄103044に格納された所有ライセンス数以下である場合、利用プログラム一覧欄10262に格納したIDのプログラムはライセンス上利用可能なプログラムであると判断し、セットアップ数が所有ライセンス数より多い場合、利用プログラム一覧欄10262に格納したIDのプログラムはライセンス上利用不可能なプログラムであると判断する。また、ステップS1012において、プログラムライセンス確認部10214は、プログラムライセンス管理テーブル10304から抽出した行のライセンス形態欄103042に格納されているライセンス形態がサイトライセンスの場合、利用プログラム一覧欄10262に格納したIDのプログラムはライセンス上利用可能なプログラムであると判断する。なお上述したフリーソフト、ボリュームライセンス及びサイトライセンスは、ライセンス形態の一例として示したものである。仮想計算機提供システム1Aは、上述したライセンス以外のライセンス形態を採用するプログラムを扱う場合もある。プログラムライセンス確認部10214は、ステップS1012の判断で肯定結果を得ると、ライセンス上利用可能なプログラムのIDを初期化情報リスト1026の複製可能プログラム一覧欄10266に格納するS1013。これに対し、プログラムライセンス確認部10214は、ステップS1012の判断で否定結果を得ると、ライセンス上利用不可能なプログラムのIDを初期化情報リスト1026の複製不可プログラム一覧欄10267に格納するS1014。プログラムライセンス確認部10214は、検索結果リスト1025及び初期化情報リスト1026の全ての行について、上述してきたステップS1011~S1014までの処理を行ったか否か判断するS1015。プログラムライセンス確認部10214は、この判断で肯定結果を得ると、本処理を終了する。これに対し、プログラムライセンス確認部10214は、この判断で否定結果を得ると、他の行についても上述してきたステップS1011~S1014の処理を行い、全ての行について上述のステップS1011~S1014の処理を行った後、本処理を終了する。図16は、複製元仮想計算機検索部1021により行われる特徴プログラム抽出処理の処理手順を示す。複製元仮想計算機検索部1021は、図11の用途検索画面M1101の検索ボタンM1104が押下されると、上述した図14に示す検索処理及び図15に示すライセンス確認処理を行うとともに、この図16に示す処理を行う。具体的には、複製元仮想計算機検索部1021は、この図16に示す処理手順に従って、図14に示す検索処理により検索結果として得られた複数の複製元の仮想計算機20211について、特徴的なプログラムを抽出する処理を実行する。まず、複製元仮想計算機検索部1021は、図14の処理により作成した初期化情報リスト1026の各行において、複製可能プログラム一覧欄10266に格納されている複製可能プログラムのIDと不要プログラム一覧欄10269に格納されている不要プログラムのIDとの差分を算出する。不要プログラム一覧欄10269に不要プログラムを格納する処理については、後述する図20参照。そして複製元仮想計算機検索部1021は、算出した差分を初期化情報リスト1026の特徴プログラム一覧欄10263に格納するS1021。次いで、複製元仮想計算機検索部1021は、不足プログラム一覧欄10265に格納されている不足プログラムのIDを特徴プログラム一覧欄10263に格納するS1022。不足プログラム一覧欄10265に不足プログラムを格納する処理については、後述する図20参照。次いで、複製元仮想計算機検索部1021は、初期化情報リスト1026の各行において、特徴プログラム一覧欄10263に格納されているIDのうち、他の行の特徴プログラム一覧欄10263にも格納されているIDを抽出する。複製元仮想計算機検索部1021は、抽出したIDを共通プログラム一覧欄10264に格納するS1023。そして、複製元仮想計算機検索部1021は、初期化情報リスト1026の各行において、特徴プログラム一覧欄10263に格納されているIDから共通プログラム一覧欄10264に格納されているIDを削除するS1024。以上の処理により、複製元仮想計算機検索部1021は、初期化情報リスト1026の全ての行について、特徴プログラム一覧欄10263に特徴プログラムのIDを格納することができる。図17は、複製元仮想計算機検索部1021により行われる要求満足度抽出処理の処理手順を示す。複製元仮想計算機検索部1021は、図11の用途検索画面M1101の検索ボタンM1104が押下されると、上述した図14に示す検索処理、図15に示すライセンス確認処理及び図16に示す特徴プログラム抽出処理を行うとともに、この図17に示す処理を行う。具体的には、複製元仮想計算機検索部1021は、この図17に示す処理に従って、図14に示す検索処理により検索結果として得られた複数の複製元の仮想計算機20211について、ユーザの要求に対する満足度を抽出する処理を実行する。まず、複製元仮想計算機検索部1021は、プログラム名に基づく検索であるか否かを判断するS1031。なお、ここでは用途検索部10211により用途に基づく検索が行われる場合について説明しているため、複製元仮想計算機検索部1021は否定結果を得ることになる。またユーザ名及び組織名に基づく検索の場合も同様に、複製元仮想計算機検索部1021は否定結果を得ることになる。プログラム名に基づく検索の場合、複製元仮想計算機検索部1021は肯定結果を得ることになる。複製元仮想計算機検索部1021は、ステップS1031の判断で否定結果を得ると、初期化情報リスト1026の複製可能プログラム一覧欄10266に格納されている複製可能プログラムのIDの個数を利用プログラム一覧欄10262に格納されている利用プログラムのIDの個数で割り、得られた値に数字の100を掛けて要求満足度を算出する。複製元仮想計算機検索部1021は、算出した要求満足度を検索結果リスト1025の要求満足度欄10258に格納してS1033、本処理を終了する。これに対し、複製元仮想計算機検索部1021は、ステップS1031の判断で肯定結果を得ると、プログラム名に基づく検索であると判断し、初期化情報リスト1026の複製可能プログラム一覧欄10266に格納されている複製可能プログラムのIDの個数と、不要プログラム一覧欄10269に格納されている不要プログラムのIDの個数との差分を算出する。そして複製元仮想計算機検索部1021は、算出した差分を必要プログラム一覧欄10268に格納されている必要プログラムのIDの個数で割り、得られた値に数字の100を掛けて要求満足度を算出する。複製元仮想計算機検索部1021は、算出した要求満足度を検索結果リスト1025の要求満足度欄10258に格納してS1032、本処理を終了する。図18は、複製元仮想計算機検索部1021により行われるコスト算出処理の処理手順を示す。複製元仮想計算機検索部1021は、図11の用途検索画面M1101の検索ボタンM1104が押下されると、この図18に示す処理を行う。具体的には、複製元仮想計算機検索部1021は、この図18に示す処理に従って、図14に示す検索処理により検索結果として得られた複数の複製元の仮想計算機20211から新規の仮想計算機20211Aを作成した場合に必要なコストを算出する処理を実行する。まず、複製元仮想計算機検索部1021は、初期化情報リスト1026を参照して、複製可能プログラム一覧欄10266に格納されている複製可能プログラムのIDと、不要プログラム一覧欄10269に格納されている不要プログラムのIDとの差分を算出する。次いで複製元仮想計算機検索部1021は、プログラムライセンス管理テーブル10304を参照して、プログラムID欄103041に格納されているIDと、算出した差分のIDとが一致する行をプログラムライセンス管理テーブル10304から抽出する。次いで、複製元仮想計算機検索部1021は、抽出した行のライセンスコスト欄103045に格納されているライセンスコストを検索結果リスト1025のコスト欄10257に格納するS1041。次いで、複製元仮想計算機検索部1021は、予め定められた課金額を検索結果リスト1025のコスト欄10257に格納するS1042。なお、ステップS1042で格納するか金額は、仮想計算機を提供するサービス全体で一定としてもよいし、仮想計算機の構成仮想CPUの個数、メモリ容量又はストレージ容量等により変更してもよい。以上の処理図14~図18参照により、検索結果リスト1025及び初期化情報リスト1026の各欄に各種情報を格納することができる。よって複製元仮想計算機検索部1021は、図11の用途検索画面M1101の検索ボタンM1104が押下された場合、検索結果リスト1025及び初期化情報リスト1026の各欄に格納した各種情報に基づいて、検索結果を検索結果表示フィールドM1105に表示することができる。図19は、複製元仮想計算機検索部1021からの実行指示を受け付けたユーザ名組織名検索部10212により行われるユーザ名組織名検索処理の処理手順を示す。ユーザ名組織名検索部10212は、図12のユーザ名組織名検索画面M1201の検索ボタンM1204が押下されると複製元仮想計算機検索部1021からの実行指示を受け付け、この図19に示す処理手順に従って、複数の複製元の仮想計算機20211からユーザ名組織名に基づく検索処理を実行する。まず、ユーザ名組織名検索部10212は、仮想計算機イメージ管理テーブル10302を参照して、ユーザ名組織名検索画面M1201において入力されたユーザ名及び組織名を含む行を検索する。そしてユーザ名組織名検索部10212は、検索した結果得られた行を仮想計算機イメージ管理テーブル10302から抽出するS1051。次いで、ユーザ名組織名検索部10212は、検索結果リスト1025及び初期化情報リスト1026に新たに行を作成し、作成した行の仮想計算機名欄10251、ユーザ名欄10253、組織名欄10254、OS名欄10255及び用途欄10256の各欄に、ステップS1001で抽出した行に含まれる仮想計算機名、ユーザ名、組織名、OS名及び用途のそれぞれを格納してS1052、本処理を終了する。複製元仮想計算機検索部1021により、検索結果リスト1025及び初期化情報リスト1026の各欄に各種情報を格納する処理については、上述した図15~図18の処理と同様であるため、ここでの説明は省略する。以上の処理により図19及び図15~図18参照、検索結果リスト1025及び初期化情報リスト1026の各欄に各種情報を格納することができる。よって複製元仮想計算機検索部1021は、図12のユーザ名組織名検索画面M1201の検索ボタンM1204が押下された場合、検索結果リスト1025及び初期化情報リスト1026の各欄に格納した各種情報に基づいて、検索結果を検索結果表示フィールドM1205に表示することができる。図20は、複製元仮想計算機検索部1021からの実行指示を受け付けたプログラム名検索部10213により行われるプログラム名検索処理の処理手順を示す。プログラム名検索部10213は、図13のプログラム名検索画面M1301の検索ボタンM1303が押下されると複製元仮想計算機検索部1021からの実行指示を受け付け、この図20に示す処理手順に従って、複数の複製元の仮想計算機20211からプログラム名に基づく検索処理を実行する。まず、プログラム名検索部10213は、プログラム名検索画面M1301において入力されたプログラム名及びバージョン条件の情報を受け付けると、利用プログラム管理テーブル10303図6B参照及びプログラム管理テーブル10301図5参照を参照して、受け付けたプログラム名及びバージョン条件を満たすプログラムを含む仮想計算機20211を検索し、検索により得られた仮想計算機20211を含む行を仮想計算機イメージ管理テーブル10302図6A参照から抽出する。そしてプログラム名検索部10213は、検索結果リスト1025図4A参照に新たに行を作成し、作成した行における仮想計算機名欄10251、ユーザ名欄10253、組織名欄10254、OS名欄10255及び用途欄10256の各欄に、仮想計算機イメージ管理テーブル10302から抽出した行の仮想計算機名、ユーザ名、組織名、OS名及び用途の情報をそれぞれ格納する。次いでプログラム名検索部10213は、初期化情報リスト1026図4B参照に新たに行を作成する。初期化情報リスト1026に新たに作成した行の各欄に各種情報を格納する処理については後述する。プログラム名検索部10213は、初期化情報リスト1026に新たに作成した行の行番号欄10261に格納した行番号を上述の検索結果リスト1025の新たに作成した行の環境初期化情報欄10252に格納するS1501。次いで、プログラム名検索部10213は、プログラムライセンス確認部10214を実行する。プログラムライセンス確認部10214は、プログラム名検索部10213から実行指示を受け付けると、プログラムライセンス管理テーブル10304図7参照を参照して、複製元の仮想計算機20211に含まれるプログラムのうち、ライセンス上利用可能なプログラム及びライセンス上利用不可能なプログラムを抽出する。そしてプログラムライセンス確認部10214は、初期化情報リスト1026の複製可能プログラム一覧欄10266及び複製不可プログラム一覧欄10267の各欄に、抽出したライセンス上利用可能なプログラムのID及びライセンス上利用不可能なプログラムのIDをそれぞれ格納するS1502。次いで、プログラム名検索部10213は、必要プログラム一覧作成部1024を実行する。必要プログラム一覧作成部1024は、プログラム名検索部10213からの実行指示を受け付けると、依存関係管理テーブル10308図8参照及びプログラム管理テーブル10301図3参照を参照して、ユーザが検索条件に指定したプログラム名のプログラム及びこのプログラムが動作するために必要なプログラムを抽出する。そして必要プログラム一覧作成部1024は、抽出したプログラムのIDを初期化情報リスト1026の必要プログラム一覧欄10268に格納するS1503。次いで、プログラム名検索部10213は、初期化情報リスト1026を参照して、複製可能プログラム一覧欄10266に格納された複製可能プログラムのIDが必要プログラム一覧欄10268に含まれているか否か判断するS1504。プログラム名検索部10213は、この判断で否定結果を得ると、複製可能プログラムであって必要プログラムではないこのIDのプログラムを不要プログラムと判断し、この不要プログラムのIDを不要プログラム一覧欄10269に格納するS1505。これに対し、プログラム名検索部10213は、ステップS1503の判断で肯定結果を得ると、必要プログラム一覧欄10268に格納された必要プログラムのIDが複製可能プログラム一覧欄10266に含まれるか否か判断するS1506。プログラム名検索部10213は、この判断で否定結果を得ると、必要プログラムであって複製可能プログラムではないこのIDのプログラムを不足プログラムと判断し、この不足プログラムのIDを不足プログラム一覧欄10265に格納するS1507。これに対し、プログラム名検索部10213は、ステップS1506の判断で肯定結果を得ると、ステップS1501において検索結果リスト1025及び初期化情報リスト1026に新たに作成した全ての行について、上述してきたステップS1502~S1507までの処理を行ったか否か判断するS1508。プログラム名検索部10213は、この判断で肯定結果を得ると、本処理を終了する。これに対し、プログラム名検索部10213は、この判断で否定結果を得ると、他の行についても上述してきたステップS1502~S1507の処理を行い、全ての行について上述のステップS1502~S1507の処理を終えると、本処理を終了する。複製元仮想計算機検索部1021により、検索結果リスト1025及び初期化情報リスト1026の他の欄に各種情報を格納する処理については、上述した図15~図18の処理と同様であるため、ここでの説明は省略する。以上の処理により図20及び図15~図18参照、検索結果リスト1025及び初期化情報リスト1026の各欄に各種情報を格納することができる。よって複製元仮想計算機検索部1021は、図13のプログラム名検索画面M1301の検索ボタンM1303が押下された場合、検索結果リスト1025及び初期化情報リスト1026の各欄に格納した各種情報に基づいて、検索結果を検索結果表示フィールドM1304に表示することができる。図21は、複製仮想計算機環境初期化部10231の仮想計算機データ変更部102313により行われるデータ変更処理の処理手順を示す。複製仮想計算機環境初期化部10231は、図11の用途検索画面M1101、図12のユーザ名組織名検索画面M1201又は図13のプログラム名検索画面M1301の画面において、複製元の仮想計算機20211が選択され、新規の仮想計算機20211Aの仮想計算機名、ユーザ名、組織名及び用途が入力された後、仮想計算機複製初期化ボタンM1107、M1207又はM1306が押下されると、複製元の仮想計算機20211を複製するとともに、複製した新規の仮想計算機20211Aに含まれるユーザ固有データM1003、組織固有データM1004及びマシン固有データM1005の削除又は変更を仮想計算機データ変更部102313に指示する。仮想計算機データ変更部102313は、複製仮想計算機環境初期化部10231からの削除又は変更指示を受け付けると、この図20に示す処理手順に従って、複製直後の新規の仮想計算機20211Aに格納されているユーザ固有データM1003、組織固有データM1004及びマシン固有データM1005の削除又は変更する処理を実行する。まず、仮想計算機データ変更部102313は、初期化情報リスト1026の利用プログラム一覧欄10262及びユーザ固有データ管理テーブル10305のプログラムID欄103051を参照して、利用プログラム一覧欄10262に格納されているIDとプログラムID欄103051に格納されているIDとが一致する行をユーザ固有データ管理テーブル10305から抽出する。同様に、仮想計算機データ変更部102313は、初期化情報リスト1026の利用プログラム一覧欄10262及び組織固有データ管理テーブル10306のプログラムID欄103061を参照して、IDが一致する行を組織固有データ管理テーブル10306から抽出する。また同様に、仮想計算機データ変更部102313は、初期化情報リスト1026の利用プログラム一覧欄10262及びマシン固有データ管理テーブル10307のプログラムID欄103071を参照して、IDが一致する行をマシン固有データ管理テーブル10307から抽出する。そして仮想計算機データ変更部102313は、ユーザ固有データの削除、組織固有データの変更及びマシン固有データの変更を行うため、ユーザ固有データ管理テーブル10305、組織固有データ管理テーブル10306及びマシン固有データ管理テーブル10307からそれぞれ抽出した行を参照し、ユーザ固有データ、組織固有データ及びマシン固有データのデータ形式がディレクトリ又はファイルであるか、又はファイルの一部であるかを判断するS1601。仮想計算機データ変更部102313は、ステップS1601においてデータ形式がディレクトリ又はファイルであるとの判断結果を得ると、ユーザ固有データ管理テーブル10305、組織固有データ管理テーブル10306及びマシン固有データ管理テーブル10307の各保管場所欄103054、103064及び103074を参照し、新規の仮想計算機20211Aのディレクトリ又はファイルを削除又は変更してS1602、本処理を終了する。これに対し、仮想計算機データ変更部102313は、ステップS1601の判断においてデータ形式がファイルの一部であるとの判断結果を得ると、ユーザ固有データ管理テーブル10305、組織固有データ管理テーブル10306及びマシン固有データ管理テーブル10307の各保管場所欄103054、103064及び103074と、各記述欄103055、103065及び103075とを参照し、新規の仮想計算機20211Aのファイル内の記述を削除又は変更してS1603、本処理を終了する。次に、複製仮想計算機環境初期化部10231のプログラム削除部102312により行われるプログラム削除処理について説明する。複製仮想計算機環境初期化部10231は、図11の用途検索画面M1101、図12のユーザ名組織名検索画面M1201又は図13のプログラム名検索画面M1301の画面において、複製元の仮想計算機20211が選択され、新規の仮想計算機20211Aの仮想計算機名、ユーザ名、組織名及び用途が入力された後、仮想計算機複製初期化ボタンM1107、M1207又はM1306が押下されると、複製元の仮想計算機20211を複製するとともに、複製した新規の仮想計算機20211Aに含まれるプログラムのうち、ライセンス上利用不可能のプログラム及びユーザが要求したプログラムを動作させるために不要なプログラムについてプログラム削除処理の実行をプログラム削除部102312に指示する。プログラム削除部102312は、複製仮想計算機環境初期化部10231からのプログラム削除処理の実行指示を受け付けると、以下に説明する処理手順に従って、複製直後の新規の仮想計算機20211Aに格納されているプログラムを削除する処理を実行する。まず、プログラム削除部102312は、複製した新規の仮想計算機20211Aに関連付けられている初期化情報リスト1026を参照して、複製不可プログラム一覧欄10267に格納されているIDのプログラム及び不要プログラム一覧欄10269に格納されているIDのプログラムを複製した新規の仮想計算機20211Aから削除する。また、プログラム削除部102312は、利用プログラム一覧欄10262に格納されているIDのプログラムのうち、複製不可プログラム一覧欄10267に格納されているIDのプログラム及び不要プログラム一覧欄10269に格納されているIDのプログラムを初期化情報リスト1026から削除する。次に、複製仮想計算機環境初期化部10231のプログラム追加部102311により行われるプログラム追加処理について説明する。複製仮想計算機環境初期化部10231は、図11の用途検索画面M1101、図12のユーザ名組織名検索画面M1201又は図13のプログラム名検索画面M1301の画面において、複製元の仮想計算機20211が選択され、新規の仮想計算機20211Aの仮想計算機名、ユーザ名、組織名及び用途が入力された後、仮想計算機複製初期化ボタンM1107、M1207又はM1306が押下されると、複製元の仮想計算機20211を複製するとともに、複製した新規の仮想計算機20211Aに含まれるプログラムのうち、ユーザが要求したプログラムを動作させるために必要なプログラムについてプログラム追加処理の実行をプログラム追加部102311に指示する。プログラム追加部102311は、複製仮想計算機環境初期化部10231からのプログラム追加処理の実行指示を受け付けると、以下に説明する処理手順に従って、複製直後の新規の仮想計算機20211Aに格納されているプログラムの追加処理を実行する。まず、プログラム追加部102311は、プログラム管理テーブル10301のID欄103011及び新規の仮想計算機20211Aに関連付けされた初期化情報リスト1026の不足プログラム一覧欄10265を参照して、一致する行をプログラム管理テーブル10301から抽出する。次いで、プログラム追加部102311は、抽出した行の保管場所欄103015を参照して、保管場所欄103015に格納されている保管場所にある全てのファイルを新規の仮想計算機20211Aに追加する。次いで、プログラム追加部102311は、抽出した行のセットアッププログラム名欄103016を参照して、セットアッププログラム名欄103016に格納されているセットアップ名のプログラムを新規の仮想計算機20211Aにおいて実行する。また、プログラム追加部102311は、初期化情報リスト1026の不足プログラム一覧欄10265に格納されているプログラムのIDを削除するとともに、利用プログラム一覧欄10262に削除したIDを追加する。以上の処理により、プログラム追加部102311は、新規の仮想計算機20211Aにプログラムを追加することができる。最後に、複製仮想計算機提供部1023は、仮想計算機イメージ管理テーブル10302及び利用プログラム管理テーブル10303に複製した新規の仮想計算機20211Aの情報を反映する。具体的に複製仮想計算機提供部1023は、次に述べる処理を実行する。まず、複製仮想計算機提供部1023は、仮想計算機イメージ管理テーブル10302に新たに行を作成し、作成した新たな行の仮想計算機名欄103021、ユーザ名欄103022、組織名欄103023、OS名欄103024及び用途欄103025の各欄に、複製及び初期化した新規の仮想計算機20211Aの仮想計算機名、ユーザ名、組織名、OS名及び用途を格納する。次いで、複製仮想計算機提供部1023は、利用プログラム管理テーブル10303に新たに行を作成し、作成した新たな行の仮想計算機名欄103031及びプログラムID一欄103032の各欄に、複製及び初期化した新規の仮想計算機20211Aの仮想計算機名及び利用プログラムのIDを格納する。なお利用プログラムのIDを格納する際、複製仮想計算機提供部1023は、利用プログラム一覧欄10262を参照する。以上の処理により、複製元の仮想計算機20211の複製及び初期化が完了し、ユーザに新規の仮想計算機20211を提供することが可能な状態となる。複製仮想計算機提供部1023は、新規の仮想計算機20211Aの作成が完了したことをユーザに通知する。以上のように、第1の実施の形態による仮想計算機提供システム1Aによれば、ユーザから新規の仮想計算機20211Aが要求された場合、仮想計算機提供システム1Aにおいて他のユーザに現在提供中の仮想計算機20211からユーザの要求を満たし得る仮想計算機20211を検索することができる。そして検索した仮想計算機20211を複製及び初期化することにより、ユーザに新規の仮想計算機20211Aを迅速に提供することができる。2第2の実施の形態第2の実施の形態では、他のユーザに提供中の仮想計算機を複製及び初期化するだけでなく、複製元の仮想計算機として予め用意しておいた複製専用の仮想計算機テンプレートを複製及び初期化することによっても、新規の仮想計算機を提供し得る仮想計算機提供システム1Bについて説明する。図22は、第2の実施の形態における仮想計算機提供システム1Bの論理構成を示す。この図21に示した仮想計算機提供システム1Bは、複製仮想計算機環境初期化部10231Aがテンプレート対応版である点を除いて、第1の実施の形態における仮想計算機提供システム1Aと同様に構成されている。複製仮想計算機環境初期化部10231Aは、仮想計算機テンプレートを複製及び初期化する。仮想計算機テンプレートは、その中身が書き換えられることがなく、仮想計算機テンプレートにはユーザ固有データが含まれていない。そのため複製仮想計算機環境初期化部10231Aは、初期化に際し、ユーザ固有データM1003の削除処理を行わない。図23は、第2の実施の形態における仮想計算機ホスト装置20の論理構成を示す。この図23に示した仮想計算機ホスト装置20は、二次記憶装置203に仮想計算機テンプレート2032を備えて構成される点を除いて、第1の実施の形態における仮想計算機ホスト装置20と同様に構成されている。仮想計算機ホスト装置20は、複製仮想計算機環境初期化部10231Aにより仮想計算機テンプレート2032を複製し、仮想計算機イメージ2031を作成する。その他、各種テーブル図3~図9参照、新規の仮想計算機20211Aを提供する流れの概要図10参照、画面構成図11~図13参照及び処理手順図14~図20参照については、第1の実施の形態と同様であるため、ここでの説明は省略する。以上のように、第2の実施の形態による仮想計算機提供システム1Bによれば、ユーザから新規の仮想計算機20211Aが要求された場合、仮想計算機提供システム1Bにおいて他のユーザに現在提供中の仮想計算機20211及び仮想計算機テンプレート2032からユーザの要求を満たし得る仮想計算機20211を検索することができる。そして、検索した仮想計算機20211又は仮想計算機テンプレート2032を複製及び初期化することにより、ユーザに新規の仮想計算機20211Aを迅速に提供することができる。3第3の実施の形態第3の実施の形態では、プログラムの依存関係を参照して、複製した新規の仮想計算機20211Aを複数の仮想計算機20211で構成されるシステムに追加し得る仮想計算機提供システム1Cについて説明する。以下、複数の仮想計算機20211から構成される仮想計算機提供システム1Cの構成をここでは特に複数仮想計算機構成と呼ぶ。図24は、第3の実施の形態における仮想計算機提供システム1Cの論理構成を示す。この図24に示した仮想計算機提供システム1Cは、複製仮想計算機環境初期化部10231Bが複数仮想計算機構成対応版であり、接続仮想計算機決定部102314、接続設定変更部10232及び影響仮想計算機抽出部10233を備えて構成される点を除いて、第1の実施の形態における仮想計算機提供システム1Aと同様に構成されている。接続仮想計算機決定部102314は、複製した新規の仮想計算機20211Aに不足しているプログラムを含む仮想計算機20211を複数仮想計算機構成内において検索する。影響仮想計算機抽出部10233は、複製した新規の仮想計算機20211Aに含まれるプログラムを必要としている仮想計算機20211を複数仮想計算機構成内において検索する。接続設定変更部10232は、接続仮想計算機決定部102314又は影響仮想計算機抽出部10233により検索結果として得られた仮想計算機20211を複数仮想計算機構成内において接続するプログラム設定変更処理を行う。図25は、第3の実施の形態における二次記憶装置103の論理構成を示す。この図25に示した二次記憶装置103は、複数仮想計算機構成テーブル10309、接続設定値テーブル10310及び接続設定項目テーブル10311を備えて構成される点を除いて、第1の実施の形態における二次記憶装置103と同様に構成されている。図26Aは、複数仮想計算機構成テーブル10309の概念図を示す。複数仮想計算機構成テーブル10309は、仮想計算機提供システム1Cにおいて複数の仮想計算機20211により構成される複数仮想計算機構成を管理するためのテーブルであり、影響仮想計算機抽出部10233及び接続仮想計算機決定部102314により、複数仮想計算機構成内の仮想計算機20211を取得する場合に用いられる。複数仮想計算機構成テーブル10309は、複数仮想計算機構成名欄103091及び仮想計算機一覧欄103092から構成される。複数仮想計算機構成名欄103091には、仮想計算機提供システム1Cにより提供される複数仮想計算機構成の複数仮想計算機構成名が格納される。仮想計算機一覧欄103092には、複数仮想計算機構成を構成する仮想計算機20211の仮想計算機名が格納される。従って、図26Aの場合、例えばgrp0という複数仮想計算機構成名の複数仮想計算機構成は、VM0という仮想計算機名の仮想計算機20211のみから構成されていることが示されている。一方grp3という複数仮想計算機構成名の複数仮想計算機構成は、VM3、VM4という2つの仮想計算機名の仮想計算機20211から構成されていることが示されている。図26Bは、接続設定値テーブル10310の概念図を示す。接続設定値テーブル10310は、接続先のプログラムに接続するための接続設定値を管理するためのテーブルであり、接続設定変更部10232により、接続先のプログラムに接続するための設定値を取得する場合に用いられる。接続設定値テーブル10310は、仮想計算機名欄103101、プログラムID欄103102、接続パラメタ欄103103及び接続パラメタ値欄103104から構成される。仮想計算機名欄103101には、接続先の仮想計算機20211の仮想計算機名が格納される。プログラムID欄103102には、接続先のプログラムのIDが格納される。接続パラメタ欄103103には、プログラムID欄103102に格納されているIDのプログラムに接続するために用いるパラメタが格納される。接続パラメタ値欄103104には、接続パラメタ欄103103に格納されているパラメタに設定する値が格納される。従って、図26Bの場合、例えばVM3という仮想計算機名の仮想計算機20211に含まれるPG7というIDのプログラムに接続するには、hostnameというパラメタが用いられ、このパラメタには192.16811.4という値が設定されていることが示されている。図26Cは、接続設定項目テーブル10311の概念図を示す。接続設定項目テーブル10311は、接続先のプログラムに接続するために変更が必要な接続元のプログラムの設定項目を管理するためのテーブルであり、接続設定変更部10232により、接続設定を変更するファイル及び記述を取得する場合に用いられる。接続設定項目テーブル10311は、プログラムID欄103111、接続先プログラムID欄103112、ファイル欄103113及び記述欄103114から構成される。プログラムID欄103111には、接続元のプログラムのIDが格納される。接続先プログラムID欄103112には、接続先のプログラムのIDが格納される。ファイル欄103113には、接続先のプログラムに接続するために設定を変更する必要がある接続元のプログラムのファイル名が格納される。記述欄103114には、ファイル欄103113に格納されたファイル名のファイル内における記述が格納される。従って、図26Cの場合、例えばPG10というIDの接続元のプログラムとPG7というIDの接続先のプログラムとを接続するには、config/dbxmlというファイル名のファイルのhost:hostnameという記述を接続先の仮想計算機20211に合わせたものに変更する必要があることが示されている。その他、各種テーブル図4~図9参照については、第1の実施の形態と同様であるため、ここでの説明は省略する。図27は、複数仮想計算機構成へ仮想計算機の複製を組み入れる際の処理の流れの概念図を示す。ユーザBの要求により、新規の仮想計算機20211Aを作成する流れの概要図10参照については、第1の実施の形態と同様であるため、ここでの説明は省略する。新規の仮想計算機20211Aの作成が完了すると、複製仮想計算機提供部1023は、ユーザBが利用中の複数仮想計算機構成Bに組み入れるため、仮想計算機20211Aを既存の仮想計算機B1及びB2と接続する。まず、複製仮想計算機提供部1023は、接続仮想計算機決定部102314に仮想計算機20211Aのプログラムと接続する仮想計算機を発見するよう指示する。具体的には、仮想計算機20211Aのプログラムの動作に必要なプログラムを含む仮想計算機を発見するよう指示する。その結果、仮想計算機B1を発見すると、接続設定変更部10232により、仮想計算機20211Aのプログラムの設定を仮想計算機B1のプログラムに接続できるよう変更する。次に、複製仮想計算機提供部1023は、影響仮想計算機抽出部10233に仮想計算機20211Aに接続する仮想計算機を発見するよう指示する。具体的には、複数仮想計算機構成Bの仮想計算機のうち、仮想計算機20211Aが含むプログラムを必要としているプログラムを含む仮想計算機を発見するよう指示する。その結果、仮想計算機B2を発見すると接続設定変更部10232により、仮想計算機B2のプログラムの設定を仮想計算機20211Aのプログラムに接続できるよう変更する。以上の処理により、複製後の新規の仮想計算機20211AをユーザBの使用している複数仮想計算機構成Bに組み入れることができる。図28は、第3の実施の形態におけるプログラム名検索画面M1301の画面構成図を示す。この図28に示したプログラム名検索画面M1301は、複数仮想計算機構成への追加設定を選択するためのラジオボタンM2211~M2218及び複製した新規の仮想計算機20211Aに不足している不足プログラムについての対処方法を選択するためのラジオボタンM2219~M2221を備えて構成される点を除いて、第1の実施の形態におけるプログラム名検索画面M1301と同様に構成されている。複製仮想計算機提供部1023は、このプログラム名検索画面M1301において、ラジオボタンM2211~M2218により複数仮想計算機構成への追加設定が選択され、ラジオボタンM2219~M2221により不足プログラムについての対処方法が選択された後、仮想計算機複製初期化ボタン1306が押下されると、選択されたラジオボタンの組み合わせに応じて、次に述べる処理を実行する。なおラジオボタンM2211が選択された場合、ラジオボタンM2220は選択不可となる。ラジオボタンM2211及びラジオボタンM2219の組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については新規に複数仮想計算機構成を作成することが選択され、不足プログラムについての対処方法については複製後の新規の仮想計算機20211Aに不足プログラムを追加することが選択された場合、複製仮想計算機提供部1023は、第1の実施の形態における複製仮想計算機提供部1023と同様の処理を実行する。ラジオボタンM2211と、ラジオボタンM2221との組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については新規に複数仮想計算機構成を作成することが選択され、不足プログラムについての対処方法については何もしないことが選択された場合、複製仮想計算機提供部1023は、第1の実施の形態における複製仮想計算機提供部1023の処理のうち、プログラム追加部102311による処理以外を実行する。ラジオボタンM2212~M2218のうち何れか一のラジオボタンと、ラジオボタンM2219との組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については何れかの複数仮想計算機構成に新規の仮想計算機20211Aを追加することが選択され、不足プログラムについての対処方法については複製後の新規の仮想計算機20211Aに不足プログラムを追加することが選択された場合、複製仮想計算機提供部1023は、第1の実施の形態における複製仮想計算機提供部1023と同様の処理を実行し、新規の仮想計算機20211Aの作成を完了した後、複数仮想計算機構成の他の仮想計算機20211に含まれるプログラムから、新規の仮想計算機20211Aのプログラムに接続するための接続設定処理を実行する。ラジオボタンM2212~M2218のうち何れか一のラジオボタンと、ラジオボタンM2220との組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については何れかの複数仮想計算機構成に新規の仮想計算機20211Aを追加することが選択され、不足プログラムについての対処方法については複数仮想計算機構成内仮想計算機20211のプログラムを利用することが選択された場合、複製仮想計算機提供部1023は、第1の実施の形態における複製仮想計算機提供部1023の処理のうち、プログラム追加部102311による処理以外を実行した後、複製した新規の仮想計算機20211Aに含まれるプログラムから、複数仮想計算機構成の他の仮想計算機20211のプログラムに接続する接続設定処理を実行する。ラジオボタンM2212~M2218のうち何れか一のラジオボタンと、ラジオボタンM2220との組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については何れかの複数仮想計算機構成に新規の仮想計算機20211Aを追加することが選択され、不足プログラムについての対処方法については複数仮想計算機構成内仮想計算機20211のプログラムを利用することが選択された場合、複製仮想計算機提供部1023は、第1の実施の形態における複製仮想計算機提供部1023の処理のうち、プログラム追加部102311による処理以外を実行した後、複製した新規の仮想計算機20211Aに含まれるプログラムから、複数仮想計算機構成の他の仮想計算機20211のプログラムに接続する接続設定処理を実行する。ラジオボタンM2212~M2218のうち何れか一のラジオボタンと、ラジオボタンM2221との組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については何れかの複数仮想計算機構成に新規の仮想計算機20211Aを追加することが選択され、不足プログラムについての対処方法については何もしないことが選択された場合、複製仮想計算機提供部1023は、第1の実施の形態における複製仮想計算機提供部1023の処理のうち、プログラム追加部102311による処理以外を実行する。図29は、複製仮想計算機提供部1023からの実行指示を受け付けた影響仮想計算機抽出部10233により行われる影響仮想計算機抽出処理の処理手順を示す。複製仮想計算機提供部1023は、複数仮想計算機構成内の仮想計算機20211に含まれるプログラムと、複製した新規の仮想計算機20211Aに含まれるプログラムとを接続するための接続設定処理において、影響仮想計算機抽出部10233に影響仮想計算機抽出処理の実行を指示する。影響仮想計算機抽出部10233は、複製仮想計算機提供部1023からの影響仮想計算機抽出処理の実行指示を受け付けると、この図29に示す抽出処理に従って、複製した新規の仮想計算機20211Aに含まれているプログラムが必要とするプログラムを含む仮想計算機20211を複数仮想計算機構成から抽出する処理を実行する。まず、影響仮想計算機抽出部10233は、複数仮想計算機構成テーブル10309図26A参照を参照して、複数仮想計算機構成名欄103091に格納されている複数仮想計算機構成名と、第3の実施の形態におけるプログラム名検索画面M1301内のラジオボタンM2212~M2218にて選択された複数仮想計算機構成名とが一致する行を複数仮想計算機構成テーブル10309から抽出する。そして影響仮想計算機抽出部10233は、抽出した行の仮想計算機一覧欄103092に格納されている仮想計算機名を取得するS2301。次いで、影響仮想計算機抽出部10233は、利用プログラム管理テーブル10303図6B参照を参照して、仮想計算機名欄103031に格納されている仮想計算機名と、ステップS2301で取得した仮想計算機名とが一致する行を利用プログラム管理テーブル10303から抽出する。そして影響仮想計算機抽出部10233は、抽出した行のプログラムID一覧欄103032に格納されているプログラムのIDを取得するS2302。次いで、影響仮想計算機抽出部10233は、必要プログラム一覧作成部1024を実行する。必要プログラム一覧作成部1024は、影響仮想計算機抽出部10233からの実行指示を受け付けると、依存関係管理テーブル10308図8参照及びプログラム管理テーブル10301図3参照を参照して、ステップS2302で取得したプログラムのID及びそのプログラムと依存関係にあるプログラムのIDを抽出し、抽出したIDを初期化情報リスト1026図4B参照の必要プログラム一覧欄10268に格納するS2303。次いで、影響仮想計算機抽出部10233は、ステップS2302で取得した複数仮想計算機構成内における保有プログラムのIDと、ステップS2303で取得した必要プログラムのIDとの差分を算出し、算出した差分を初期化情報リスト1026の不足プログラム一覧欄10265に格納するS2304。次いで、影響仮想計算機抽出部10233は、初期化情報リスト1026の利用プログラム一覧欄10262に格納されているプログラムのIDと、ステップS2304で格納した不足プログラム一覧欄10265に格納されているプログラムのIDとを比較し、重複するプログラムがあるか否か判断するS2305。影響仮想計算機抽出部10233は、この判断で否定結果を得ると、新規の仮想計算機20211Aにおいて利用するプログラムのうち、不足プログラムはないものと判断して、ステップS2309に移行する。これに対し、影響仮想計算機抽出部10233は、ステップS2305の判断で肯定結果を得ると、新規の仮想計算機20211Aにおいて利用するプログラムのうち、不足プログラムがあるものと判断して、利用プログラムであり不足プログラムであるプログラムを接続先のプログラムとして設定するS2306。次いで、影響仮想計算機抽出部10233は、プログラム管理テーブル10301図5参照を参照して、ID欄103011に格納されているIDと、ステップS2306で設定した接続先のプログラムのIDとが一致する行をプログラム管理テーブル10301から抽出する。そして影響仮想計算機抽出部10233は、抽出した行のプログラム名欄103012、バージョン欄103013及びアーキテクチャ欄103014から、それぞれプログラム名、バージョン条件及びアーキテクチャの情報を取得する。そして影響仮想計算機抽出部10233は、依存関係管理テーブル10308を参照して、依存プログラム名欄103083に格納されているプログラム名と取得したプログラム名とが一致し、依存バージョン欄103084に格納されているバージョン条件が取得したバージョン条件を満たし、依存アーキテクチャ欄103085に格納されているアーキテクチャと取得したアーキテクチャとが一致する行を依存関係管理テーブル10308から抽出する。そして影響仮想計算機抽出部10233は、抽出した行のプログラムID欄103082に格納されているIDのプログラムを接続元のプログラムとして設定するS2307。次いで、影響仮想計算機抽出部10233は、接続設定変更部10232に接続処理の実行を指示する。接続設定変更部10232は、影響仮想計算機抽出部10233からの実行指示を受け付けると、接続元の仮想計算機20211に含まれる接続元のプログラムの設定を書き換えることにより、接続元のプログラムと、接続先の仮想計算機20211Aに含まれる接続先のプログラムとを接続する接続処理を実行するS2308。具体的には、まず接続設定変更部10232は、影響仮想計算機抽出部10233から接続元の仮想計算機20211の仮想計算機名、接続元のプログラムのID、接続先の仮想計算機20211Aの仮想計算機名及び接続先のプログラムのIDを受け取る。次いで、接続設定変更部10232は、接続設定値テーブル10310図26B参照を参照して、仮想計算機名欄103101及びプログラムID欄103102に格納されている仮想計算機名及びIDと、影響仮想計算機抽出部10233から受け取った接続先の仮想計算機20211Aの仮想計算機名及び接続先のプログラムのIDとが一致する行を接続設定値テーブル10310から抽出する。次いで、接続設定変更部10232は、接続設定項目テーブル10311図26C参照を参照して、プログラムID欄103111に格納されている接続元のプログラムのID及び接続先プログラムID欄103112に格納されている接続先のプログラムのIDと、影響仮想計算機抽出部10233から受け取った接続元の仮想計算機20211に含まれる接続元のプログラムのID及び接続先の仮想計算機20211Aに含まれる接続先のプログラムのIDとが一致する行を接続設定項目テーブル10311から抽出する。次いで、接続設定変更部10232は、抽出した行の記述欄103114に格納されている文字列のうち、接続設定値テーブル10310から抽出した行の接続パラメタ欄103103に格納されている文字列と一致する箇所の文字列を接続パラメタ値欄103104に格納されている接続パラメタ値に置き換えた文字列を、変数Sに一時的に保持する。また、接続設定変更部10232は、抽出した行のファイル欄103113に格納されているファイル名の文字列のうち、記述欄103114に格納されている文字列と一致する箇所の文字列を、変数Sに保持した文字列に置き換える。以上のように、接続設定変更部10232は、複数仮想計算機構成内の仮想計算機20211に含まれるプログラムを複製した新規の仮想計算機20211Aに含まれるプログラムに接続することができる。図30は、複製仮想計算機提供部1023からの実行指示を受け付けた接続仮想計算機決定部102314により行われる接続仮想計算機決定処理の処理手順を示す。複製仮想計算機提供部1023は、複製した新規の仮想計算機20211Aに含まれるプログラムと、複数仮想計算機構成の他の仮想計算機20211に含まれるプログラムとを接続するための接続設定処理において、接続仮想計算機決定部102314に接続仮想計算機決定処理の実行を指示する。接続仮想計算機決定部102314は、複製仮想計算機提供部1023からの接続仮想計算機決定処理の実行指示を受け付けると、この図30に示す決定処理に従って、複製した新規の仮想計算機20211Aの不足プログラムを含む仮想計算機を複数仮想計算機構成内の仮想計算機20211から検索して接続する仮想計算機を決定する処理を実行する。まず、接続仮想計算機決定部102314は、複数仮想計算機構成テーブル10309図26A参照を参照して、複数仮想計算機構成名欄103091に格納されている複数仮想計算機構成名と、第3の実施の形態におけるプログラム名検索画面M1301図28参照において選択された複数仮想計算機構成の複数仮想計算機構成名とが一致する行を複数仮想計算機構成テーブル10309から抽出する。そして接続仮想計算機決定部102314は、抽出した行の仮想計算機一覧欄103092に格納されている仮想計算機名を取得するS2401。次いで、接続仮想計算機決定部102314は、利用プログラム管理テーブル10303図6B参照を参照して、仮想計算機名欄103031に格納されている仮想計算機名と、ステップS2401で取得した仮想計算機名とが一致する行を利用プログラム管理テーブル10303から抽出する。そして接続仮想計算機決定部102314は、抽出した行のプログラムID一覧欄103032に格納されているプログラムのIDを取得し、取得したプログラムのIDと、複製した新規の仮想計算機20211に関連付けられている初期化情報リスト1026の不足プログラム一覧欄10265に格納されている不足プログラムのIDとを比較することにより、既存の仮想計算機20211に含まれる利用プログラムのうち、新規の仮想計算機20211Aに不足しているプログラムが含まれるか否か判断するS2402。接続仮想計算機決定部102314は、この判断で否定結果を得ると、既存の仮想計算機20211に含まれる利用プログラムのうち、新規の仮想計算機20211Aに不足しているプログラムは含まれないものと判断して、ステップS2406に移行する。これに対し、接続仮想計算機決定部102314は、ステップS2402の判断で肯定結果を得ると、既存の仮想計算機20211に含まれる利用プログラムのうち、新規の仮想計算機20211Aに不足しているプログラムが含まれるものと判断して、その利用プログラムであり不足プログラムであるプログラムを接続先のプログラムとして設定するS2403。次いで、接続仮想計算機決定部102314は、プログラム管理テーブル10301図5参照を参照して、ID欄103011に格納されているIDと、ステップS2403で設定した接続先のプログラムのIDとが一致する行をプログラム管理テーブル10301から抽出する。そして接続仮想計算機決定部102314は、抽出した行のプログラム名欄103012、バージョン欄103013及びアーキテクチャ欄103014から、それぞれプログラム名、バージョン条件及びアーキテクチャの情報を取得する。そして接続仮想計算機決定部102314は、依存関係管理テーブル10308を参照して、依存プログラム名欄103083に格納されているプログラム名と取得したプログラム名とが一致し、依存バージョン欄103084に格納されているバージョン条件が取得したバージョン条件を満たし、依存アーキテクチャ欄103085に格納されているアーキテクチャと取得したアーキテクチャとが一致する行を依存関係管理テーブル10308から抽出する。そして接続仮想計算機決定部102314は、抽出した行のプログラムID欄103082に格納されているIDのプログラムを接続元のプログラムとして設定するS2404。次いで、接続仮想計算機決定部102314は、接続設定変更部10232に接続処理の実行を指示する。接続設定変更部10232は、接続仮想計算機決定部102314からの実行指示を受け付けると、接続元の仮想計算機20211Aに含まれる接続元のプログラムの設定を書き換えることにより、接続元のプログラムと、接続先の仮想計算機20211に含まれる接続先のプログラムとを接続する接続処理を実行するS2405。接続設定変更部10232により実行される接続処理については、図29で説明した処理と同様であるため、ここでの説明は省略する。以上のように、接続設定変更部10232は、複製した新規の仮想計算機20211Aに含まれるプログラムを複数仮想計算機構成内の仮想計算機20211に含まれるプログラムに接続することができる。なお、本発明は必ずしも上述してきた第1~第3の実施の形態に限定されるものではない。例えば本発明は、上述してきた全ての構成を備える必要はなく、第1~第3の実施の形態における構成のうち、何れかの実施の形態における構成の一部について、他の実施の形態における構成を追加、削除又は置換してもよい。また、上述してきた第1~第3の実施の形態における各構成、機能及び処理部等の一部又は全部を集積回路等のハードウェアにより実現してもよい。また、上述してきた第1~第3の実施の形態における各構成、機能及び処理部等の一部又は全部をソフトウェアにより実現してもよい。この場合、各構成、機能及び処理部等を実現するプログラム、テーブル又はファイル等の情報は、メモリ、ハードディスク又はSSDSolidStateDrive等の記録装置やICカード、SDカード又はDVD等の記録媒体に格納するとしてもよい。また、図示した制御線や情報線については、必ずしも製品上全ての制御線や情報線を示すものではなく、実際には殆ど全ての構成が相互に接続されているとしてもよい。