(57)【要約】  ユーザの要求を満たす仮想計算機を迅速に提供し得る仮想計算機提供システム、仮想計算機提供方法及びプログラムを提供する。  ユーザが要求した要求プログラムを含む仮想計算機を検索する複製元仮想計算機検索部と、検索した結果得られた仮想計算機を複製及び初期化する複製仮想計算機提供部と、利用プログラム管理テーブル、依存関係管理テーブル、ユーザ固有データ管理テーブル、組織固有データ管理テーブル及びマシン固有データ管理テーブルを記憶する記憶部とを備え、複製元仮想計算機検索部は、要求プログラムを含む仮想計算機を検索し、更に要求プログラムの動作に必要なプログラムを含む仮想計算機を検索し、複製仮想計算機提供部は、検索した結果得られた仮想計算機を複製した後、複製した仮想計算機に含まれるユーザ固有データ、組織固有データ及びマシン固有データを削除又は変更して初期化する。
2013035134.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に接続されている既存の仮想計算機群からユーザが要求した要求プログラムを含む仮想計算機を検索する複製元仮想計算機検索部と、
前記検索した結果得られた仮想計算機を複製及び初期化して新規の仮想計算機を提供する複製仮想計算機提供部と、
前記既存の仮想計算機群を構成する仮想計算機が利用する利用プログラムを管理するための利用プログラム管理情報、前記利用プログラム間の依存関係を管理するための依存関係管理情報、前記仮想計算機に含まれるユーザ固有データを管理するためのユーザ固有データ管理情報、前記仮想計算機に含まれる組織固有データを管理するための組織固有データ管理情報及び前記仮想計算機に含まれるマシン固有データを管理するためのマシン固有データ管理情報を記憶する記憶部と
を備え、
前記複製元仮想計算機検索部は、
前記利用プログラム管理情報を参照して、前記既存の仮想計算機群から前記要求プログラムを含む仮想計算機を検索し、更に前記依存関係管理情報を参照して、前記要求プログラムを含む仮想計算機から前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索し、
前記複製仮想計算機提供部は、
前記検索した結果得られた仮想計算機を複製した後、前記ユーザ固有データ管理情報、前記組織固有データ管理情報及び前記マシン管理情報を参照して、複製した仮想計算機に含まれるユーザ固有データ、組織固有データ及びマシン固有データを削除又は変更することにより前記複製した仮想計算機を初期化する
ことを特徴とする仮想計算機提供装置。
【請求項２】
前記記憶部は、
前記既存の仮想計算機群を構成する仮想計算機の用途、仮想計算機を利用するユーザ及び仮想計算機を利用するユーザが所属する組織のそれぞれを識別する識別情報を管理するための仮想計算機イメージ管理情報を記憶し、
前記複製元仮想計算機検索部は、
前記仮想計算機イメージ管理情報を参照して、前記既存の仮想計算機群からユーザが要求した用途、ユーザ又は組織の識別情報の条件を満たす仮想計算機を検索する
ことを特徴とする請求項１に記載の仮想計算機提供装置。
【請求項３】
前記記憶部は、
複製専用の仮想計算機として予め定められたプログラムを含む仮想計算機テンプレートを記憶し、
前記複製元仮想計算機検索部は、
前記仮想計算機テンプレートを参照して、前記仮想計算機テンプレートから前記要求プログラムを含む仮想計算機を検索し、
前記複製仮想計算機提供部は、
前記検索した結果得られた仮想計算機テンプレートを複製及び初期化する
ことを特徴とする請求項２に記載の仮想計算機提供装置。
【請求項４】
前記依存関係管理情報は、
前記利用プログラムのうちの何れか一のプログラムの識別情報、前記何れか一のプログラムの動作に必要なプログラムの識別情報、前記何れか一のプログラムの動作に必要なプログラムのバージョン情報及び前記何れか一のプログラムの動作の前提となるアーキテクチャ情報を含んで構成される
ことを特徴とする請求項３に記載の仮想計算機提供装置。
【請求項５】
前記複製元仮想計算機検索部は、
前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した結果、前記要求プログラム及び前記要求プログラムの動作に必要なプログラムの全てを含む仮想計算機が得られなかった場合、前記要求プログラム及び前記要求プログラムの動作に必要なプログラムのうち、前記利用プログラムに含まれていないプログラムを不足プログラムとして抽出し、
前記複製仮想計算機提供部は、
前記検索した結果得られた何れか一の仮想計算機を複製した後、該複製した仮想計算機に前記不足プログラムを追加する
ことを特徴とする請求項４に記載の仮想計算機提供装置。
【請求項６】
前記複製元仮想計算機検索部は、
前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した結果、前記要求プログラム及び前記要求プログラムの動作に必要なプログラム以外のプログラムを前記利用プログラムに含む仮想計算機が得られた場合、前記要求プログラム及び前記要求プログラムの動作に必要なプログラム以外のプログラムを不要プログラムとして抽出し、
前記複製仮想計算機提供部は、
前記検索した結果得られた何れか一の仮想計算機を複製した後、該複製した仮想計算機から前記不要プログラムを削除する
ことを特徴とする請求項５に記載の仮想計算機提供装置。
【請求項７】
前記記憶部は、
前記利用プログラムのライセンスを管理するためのライセンス管理情報を記憶し、
前記複製元仮想計算機検索部は、
前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した結果、ライセンス上利用できないプログラムを含む仮想計算機が得られた場合、前記ライセンス管理情報を参照して、前記ライセンス上利用できないプログラムを複製不可プログラムとして抽出し、
前記複製仮想計算機提供部は、
前記検索した結果得られた何れか一の仮想計算機を複製した後、該複製した仮想計算機から前記複製不可プログラムを削除する
ことを特徴とする請求項６に記載の仮想計算機提供装置。
【請求項８】
前記複製元仮想計算機検索部は、
前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した結果、ライセンス上利用できるプログラムを含む仮想計算機が得られた場合、前記ライセンス管理情報を参照して、前記ライセンス上利用できるプログラムを複製可能プログラムとして抽出し、該抽出した複製可能プログラムの個数から前記不要プログラムの個数を差し引き、差し引いた個数を前記必要プログラムで割る又は前記複製可能プログラムの個数を前記利用プログラムで割ることにより、ユーザの要求を満足させる度合いを示すユーザ要求満足度を算出し、
前記ユーザ要求満足度を表示するための表示装置を備える
ことを特徴とする請求項７に記載の仮想計算機提供装置。
【請求項９】
前記ライセンス管理情報は、
前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した結果、得られた仮想計算機を複製及び初期化した場合にかかるコストの情報を含んで構成され、
前記複製元仮想計算機検索部は、
前記既存の仮想計算機群から前記要求プログラム及び前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索した後、前記ライセンス管理情報を参照して、前記検索した結果得られた仮想計算機にかかるコストを抽出し、
前記表示装置は、
前記コストを表示する
ことを特徴とする請求項８に記載の仮想計算機提供装置。
【請求項１０】
前記記憶部は、
前記既存の仮想計算機群を構成する仮想計算機が所属するグループを管理するための複数仮想計算機構成情報、前記利用プログラムに接続するための接続設定値を管理するための接続設定値情報及び前記利用プログラムに接続するために変更が必要な接続元のプログラムの設定項目を管理するための接続設定項目情報を記憶し、
前記複製仮想計算機提供部は、
前記利用プログラムを参照して、前記複製した仮想計算機に不足している前記不足プログラムを含む仮想計算機を接続先の仮想計算機として抽出し、前記接続設定値情報及び前記接続設定項目情報を参照して、該抽出した接続先の仮想計算機に含まれる不足プログラムを前記複製した仮想計算機に接続することにより前記複製した仮想計算機を初期化する
ことを特徴とする請求項９に記載の仮想計算機提供装置。
【請求項１１】
前記複製仮想計算機提供部は、
前記利用プログラムを参照して、前記既存の仮想計算機群を構成する仮想計算機に不足している前記不足プログラムを含む前記新規の仮想計算機を接続先の仮想計算機として抽出し、前記接続設定値情報及び前記接続設定項目情報を参照して、該抽出した接続先の仮想計算機に含まれる不足プログラムを前記既存の仮想計算機群を構成する仮想計算機に接続する
ことを特徴とする請求項１０に記載の仮想計算機提供装置。
【請求項１２】
複製元仮想計算機検索部により、ネットワーク上に接続されている既存の仮想計算機群からユーザが要求した要求プログラムを含む仮想計算機を検索する第１のステップと、
複製仮想計算機提供部により、前記検索した結果得られた仮想計算機を複製及び初期化して新規の仮想計算機を提供する第２のステップと、
記憶部により、前記既存の仮想計算機群を構成する仮想計算機が利用する利用プログラムを管理するための利用プログラム管理情報、前記利用プログラム間の依存関係を管理するための依存関係管理情報、前記仮想計算機に含まれるユーザ固有データを管理するためのユーザ固有データ管理情報、前記仮想計算機に含まれる組織固有データを管理するための組織固有データ管理情報及び前記仮想計算機に含まれるマシン固有データを管理するためのマシン固有データ管理情報を記憶する第３のステップと
を備え、
前記第１のステップにおいて、
前記複製元仮想計算機検索部は、
前記利用プログラム管理情報を参照して、前記既存の仮想計算機群から前記要求プログラムを含む仮想計算機を検索し、更に前記依存関係管理情報を参照して、前記要求プログラムを含む仮想計算機から前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索し、
前記第２のステップにおいて、
前記複製仮想計算機提供部は、
前記検索した結果得られた仮想計算機を複製した後、前記ユーザ固有データ管理情報、前記組織固有データ管理情報及び前記マシン管理情報を参照して、複製した仮想計算機に含まれるユーザ固有データ、組織固有データ及びマシン固有データを削除又は変更することにより前記複製した仮想計算機を初期化する
ことを特徴とする仮想計算機提供方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機提供システム及び提供方法に関し、特に既存の仮想計算機を複製及び初期化して新規の仮想計算機をユーザに提供する仮想計算機提供システム及び提供方法に適用して好適なものである。
【背景技術】
【０００２】
従来、ユーザが計算機の利用を新たに開始するためには、計算機環境の構築作業が必要となる。計算機環境の構築作業とは、計算機を利用可能に構築する作業であり、具体的にはユーザの目的に適うハードウェア及びソフトウェアをベンダーから調達し、調達したハードウェアを設置し、設置したハードウェアにソフトウェアをセットアップする作業等である。【０００３】
この計算機環境の構築作業には、大きな時間的コストが必要となる。特に様々なハードウェア及びソフトウェアの組み合わせパターンについての動作テストが必要となるソフトウェア開発では、計算機環境の構築作業を何度も繰り返す必要がある。従ってその結果、ユーザが計算機の利用を実際に開始することができるまでには多くの時間が費やされることとなる。【０００４】
近年、この時間的コストを削減するため、仮想化技術を利用することが提案されている。仮想化技術を利用して作成する仮想計算機においては、その構成情報及びデータが１つのファイルにパッケージ化される。このパッケージ化された情報を仮想計算機イメージと呼ぶ。そしてこの仮想計算機イメージを利用することにより、既存の仮想計算機の複製を容易に作成することができる。【０００５】
仮想計算機の複製は、ハイパーバイザがセットアップされた全てのハードウェアで動作する。ハイパーバイザとは、仮想計算機を実現するための制御プログラムであり、仮想化モニタや仮想化ＯＳとも呼ばれる。【０００６】
従って、仮想化技術を用いることにより、計算機環境の構築作業により一度構築した計算機環境（既存の計算機環境）を別の新たな計算機環境（新規の計算機環境）の構築に再利用することが可能となる。よって環境構築作業に必要な時間的コストを削減することができるようになる。【０００７】
ところで、ユーザの中には多様なソフトウェアを組み合わせた計算機環境を要求する者も多い。このような場合、上述した従来の仮想化技術を利用して既存の計算機環境から新規の計算機環境を構築したとしても、新規の計算機環境にユーザの要求を満たす仮想計算機イメージが存在しなければ、結局のところユーザの要求を満たすソフトウェアをセットアップする必要がある。そしてこの場合、新規の計算機環境を提供するまでには多くの時間が費やされることになる。【０００８】
ここで、特許文献１には、ユーザの要求を満たす仮想計算機を作成する技術が開示されている。具体的には、最小限のＯＳ（Operating System）を備えた仮想計算機テンプレートを予め用意しておき、この仮想計算機テンプレートを複製して作成した仮想計算機に対してユーザが選択した所望のプログラムをセットアップすることにより、ユーザの要求を満たす仮想計算機を作成するという技術である。なおユーザが選択可能なプログラムは、リポジトリサーバにおいて提供されるとしている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許出願公開第２００９０３００１５１号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかし、特許文献１には、単に最小限のＯＳを備えた仮想計算機テンプレートを用意すること及びリポジトリサーバにより提供される各種プログラムをセットアップすることが開示されているだけである。従ってこの特許文献１の仮想計算機作成方法では、結局のところセットアップの作業が別途必要となり、ユーザに仮想計算機を提供するまでにかかる時間は依然として多く費やされるという問題がある。特にセットアップを必要とするプログラムが多ければ多いほど、仮想計算機を提供するまでには多くの時間が費やされるという問題がある。【００１１】
そこで、本発明は以上の点を考慮してなされたもので、ユーザの要求を満たす新規の仮想計算機を迅速に提供し得る仮想計算機提供システム、仮想計算機提供方法及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【００１２】
かかる課題を解決するために、本発明においては、ネットワーク上に接続されている既存の仮想計算機群からユーザが要求した要求プログラムを含む仮想計算機を検索する複製元仮想計算機検索部と、前記検索した結果得られた仮想計算機を複製及び初期化して新規の仮想計算機を提供する複製仮想計算機提供部と、前記既存の仮想計算機群を構成する仮想計算機が利用する利用プログラムを管理するための利用プログラム管理情報、前記利用プログラム間の依存関係を管理するための依存関係管理情報、前記仮想計算機に含まれるユーザ固有データを管理するためのユーザ固有データ管理情報、前記仮想計算機に含まれる組織固有データを管理するための組織固有データ管理情報及び前記仮想計算機に含まれるマシン固有データを管理するためのマシン固有データ管理情報を記憶する記憶部とを備え、前記複製元仮想計算機検索部は、前記利用プログラム管理情報を参照して、前記既存の仮想計算機群から前記要求プログラムを含む仮想計算機を検索し、更に前記依存関係管理情報を参照して、前記要求プログラムを含む仮想計算機から前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索し、前記複製仮想計算機提供部は、前記検索した結果得られた仮想計算機を複製した後、前記ユーザ固有データ管理情報、前記組織固有データ管理情報及び前記マシン管理情報を参照して、複製した仮想計算機に含まれるユーザ固有データ、組織固有データ及びマシン固有データを削除又は変更することにより前記複製した仮想計算機を初期化することを特徴とする。【００１３】
また、本発明においては、複製元仮想計算機検索部により、ネットワーク上に接続されている既存の仮想計算機群からユーザが要求した要求プログラムを含む仮想計算機を検索する第１のステップと、複製仮想計算機提供部により、前記検索した結果得られた仮想計算機を複製及び初期化して新規の仮想計算機を提供する第２のステップと、記憶部により、前記既存の仮想計算機群を構成する仮想計算機が利用する利用プログラムを管理するための利用プログラム管理情報、前記利用プログラム間の依存関係を管理するための依存関係管理情報、前記仮想計算機に含まれるユーザ固有データを管理するためのユーザ固有データ管理情報、前記仮想計算機に含まれる組織固有データを管理するための組織固有データ管理情報及び前記仮想計算機に含まれるマシン固有データを管理するためのマシン固有データ管理情報を記憶する第３のステップとを備え、前記第１のステップにおいて、前記複製元仮想計算機検索部は、前記利用プログラム管理情報を参照して、前記既存の仮想計算機群から前記要求プログラムを含む仮想計算機を検索し、更に前記依存関係管理情報を参照して、前記要求プログラムを含む仮想計算機から前記要求プログラムの動作に必要なプログラムを含む仮想計算機を検索し、前記第２のステップにおいて、前記複製仮想計算機提供部は、前記検索した結果得られた仮想計算機を複製した後、前記ユーザ固有データ管理情報、前記組織固有データ管理情報及び前記マシン管理情報を参照して、複製した仮想計算機に含まれるユーザ固有データ、組織固有データ及びマシン固有データを削除又は変更することにより前記複製した仮想計算機を初期化することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ユーザの要求を満たす新規の仮想計算機を迅速に提供することができる。
【図面の簡単な説明】
【００１５】
【図１】仮想計算機提供システムの論理構成を示す概念図である。
【図２】仮想計算機ホスト装置の論理構成を示す概念図である。
【図３】二次記憶装置の論理構成を示す概念図である。
【図４Ａ】検索結果リストを示す概念図である。
【図４Ｂ】初期化リストを示す概念図である。
【図５】プログラム管理テーブルの構成を示す概念図である。
【図６Ａ】仮想計算機イメージ管理テーブルの構成を示す概念図である。
【図６Ｂ】利用プログラム管理テーブルの構成を示す概念図である。
【図７】プログラムライセンス管理テーブルの構成を示す概念図である。
【図８】依存関係管理テーブルの構成を示す概念図である。
【図９Ａ】ユーザ固有データ管理テーブルの構成を示す概念図である。
【図９Ｂ】組織固有データ管理テーブルの構成を示す概念図である。
【図９Ｃ】マシン固有データ管理テーブルの構成を示す概念図である。
【図１０】新規の仮想計算機をユーザに提供するまでの処理を示す概念図である。
【図１１】用途検索画面を示す画面構成図である。
【図１２】ユーザ名組織名検索画面を示す画面構成図である。
【図１３】プログラム名検索画面を示す画面構成図である。
【図１４】用途検索処理の処理手順を示すフローチャートである。
【図１５】ライセンス確認処理の処理手順を示すフローチャートである。
【図１６】特徴プログラム抽出処理の処理手順を示すフローチャートである。
【図１７】要求満足度抽出処理の処理手順を示すフローチャートである。
【図１８】コスト算出処理の処理手順を示すフローチャートである。
【図１９】ユーザ名組織名検索処理の処理手順を示すフローチャートである。
【図２０】プログラム名検索処理の処理手順を示すフローチャートである。
【図２１】データ変更処理の処理手順を示すフローチャートである。
【図２２】仮想計算機提供システムの論理構成を示す概念図である。
【図２３】仮想計算機ホスト装置の論理構成を示す概念図である。
【図２４】仮想計算機提供システムの論理構成を示す概念図である。
【図２５】二次記憶装置の論理構成を示す概念図である。
【図２６Ａ】複数仮想計算機構成テーブルの構成を示す概念図である。
【図２６Ｂ】接続設定値テーブルの構成を示す概念図である。
【図２６Ｃ】接続設定項目テーブルの構成を示す概念図である。
【図２７】複数仮想計算機構成に複製を組み入れる際の処理を示す概念図である。
【図２８】プログラム名検索画面を示す画面構成図である。
【図２９】影響仮想計算機抽出処理の処理手順を示すフローチャートである。
【図３０】接続仮想計算機決定処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下図面について、本発明の一実施の形態を詳述する。
【００１７】
（１）第１の実施の形態
第１の実施の形態では、他のユーザに現在提供中の仮想計算機を複製及び初期化することにより、ユーザに新規の仮想計算機を提供し得る仮想計算機提供システムについて説明する。
【００１８】
図１は、第１の実施の形態における仮想計算機提供システム１Ａの論理構成を示す。仮想計算機提供システム１Ａは、仮想計算機提供サービス管理サーバ装置１０及び仮想計算機ホスト装置２０から構成される。
【００１９】
仮想計算機提供サービス管理サーバ装置１０及び仮想計算機ホスト装置２０は、ネットワーク５を介して相互に接続される。なお仮想計算機ホスト装置２０は、仮想計算機提供システム１Ａの規模に応じて、複数台がネットワーク５に接続される。
【００２０】
仮想計算機提供サービス管理サーバ装置１０は、ＣＰＵ（Central Processing Unit）１０１、主記憶装置１０２、二次記憶装置１０３、表示装置１０４及び通信インタフェース１０５を備えて構成される。これらＣＰＵ１０１、主記憶装置１０２、二次記憶装置１０３、表示装置１０４及び通信インタフェース１０５は、バス１０６により互いに通信可能に接続される。また通信インタフェース１０５は、ネットワーク５に接続される。
【００２１】
主記憶装置１０２は、ＣＰＵ１０１により実行される複製元仮想計算機検索部１０２１、仮想化環境管理プログラム１０２２、複製仮想計算機提供部１０２３及び必要プログラム一覧作成部１０２４を備えて構成され、その他各種プログラム等の実行により生成される検索結果リスト１０２５及び各種プログラム等の実行に用いられる初期化情報リスト１０２６を備えて構成される。
【００２２】
複製元仮想計算機検索部１０２１は、用途検索部１０２１１、ユーザ名組織名検索部１０２１２、プログラム名検索部１０２１３及びプログラムライセンス確認部１０２１４を備えて構成される。
【００２３】
仮想化環境管理プログラム１０２２は、仮想計算機複製部１０２２１及び仮想計算機起動部１０２２２を備えて構成される。
【００２４】
複製仮想計算機提供部１０２３は、複製仮想計算機環境初期化部１０２３１を備えて構成され、複製仮想計算機環境初期化部１０２３１は、プログラム追加部１０２３１１、プログラム削除部１０２３１２及び仮想計算機データ変更部１０２３１３を備えて構成される。
【００２５】
検索結果リスト１０２５は、複製元仮想計算機検索部１０２１により検索された検索結果を一時的に格納する記憶領域である。
【００２６】
初期化情報リスト１０２６は、複製元仮想計算機検索部１０２１により検索された結果得られた仮想計算機の環境を複製仮想計算機環境初期化部１０２３１により初期化するための情報を格納する記憶領域である。
【００２７】
図２は、図１の仮想計算機提供システム１Ａの仮想計算機ホスト装置２０の論理構成を示す。仮想計算機ホスト装置２０は、ＣＰＵ２０１、主記憶装置２０２、二次記憶装置２０３及び通信インタフェース２０４から構成される。これらＣＰＵ２０１、主記憶装置２０２、二次記憶装置２０３及び通信インタフェース２０４は、バス２０５により互いに通信可能に接続される。また通信インタフェース２０４は、ネットワーク５に接続される。
【００２８】
主記憶装置２０２は、ＣＰＵ２０１により実行される仮想化機構２０２１を備えて構成され、仮想化機構２０２１は、仮想計算機２０２１１及びハイパーバイザ２０２１２を備えて構成される。
【００２９】
仮想計算機２０２１１は、ハイパーバイザ２０２１２により主記憶装置２０２上に作成された仮想計算機ホスト装置２０の動作用の仮想的な主記憶装置であり、仮想計算機ホスト装置２０上で動作するプログラムの処理の実行に用いられるデータが格納される。ハイパーバイザ２０２１２は、仮想計算機２０２１１を動作させる実行基盤である。なお仮想計算機２０２１１は、後述する仮想計算機イメージ２０３１と協働して動作することにより初めて仮想計算機２０２１１として機能する。
【００３０】
二次記憶装置２０３は、仮想計算機イメージ２０３１を備えて構成される。仮想計算機イメージ２０３１は、仮想計算機２０２１１を構成するために必要な仮想計算機構成情報及び仮想計算機２０２１１用の仮想的な二次記憶装置のデータを１つのファイルとしてパッケージ化したものである。
【００３１】
図３は、図１の仮想計算機提供システム１Ａの二次記憶装置１０３の論理構成を示す。二次記憶装置１０３は、プログラム管理テーブル１０３０１、仮想計算機イメージ管理テーブル１０３０２、利用プログラム管理テーブル１０３０３、プログラムライセンス管理テーブル１０３０４、ユーザ固有データ管理テーブル１０３０５、組織固有データ管理テーブル１０３０６、マシン固有データ管理テーブル１０３０７、依存関係管理テーブル１０３０８及びプログラム保管エリア１０３０Ａを備えて構成される。
【００３２】
プログラム管理テーブル１０３０１は、仮想計算機ホスト装置２０の仮想計算機２０２１１により利用されるプログラムを管理するためのテーブルである。
【００３３】
仮想計算機イメージ管理テーブル１０３０２は、仮想計算機ホスト装置２０の二次記憶装置２０３に含まれる仮想計算機イメージ２０３１を管理するためのテーブルである。
【００３４】
利用プログラム管理テーブル１０３０３は、仮想計算機イメージ２０３１に含まれるプログラムを管理するためのテーブルである。
【００３５】
プログラムライセンス管理テーブル１０３０４は、仮想計算機ホスト装置２０の仮想計算機２０２１１において利用されるプログラムのライセンスを管理するためのテーブルである。
【００３６】
ユーザ固有データ管理テーブル１０３０５は、仮想計算機２０２１１を利用するユーザのユーザ固有データを管理するためのテーブルである。ユーザ固有データとは、ユーザが個人的に作成して利用するデータのことであり、例えば文書ファイル、画像ファイル、アカウント情報又は壁紙やサウンド等の設定情報に関するデータである。
【００３７】
組織固有データ管理テーブル１０３０６は、仮想計算機２０２１１を利用するユーザが所属する組織の組織固有データを管理するためのテーブルである。組織固有データとは、特定の組織が利用するデータのことであり、例えば仮想計算機２０２１１を利用するユーザがネットワーク５に接続する際に使用する組織が共通で使用しているプロキシサーバやファイルサーバの設定情報等のデータである。
【００３８】
マシン固有データ管理テーブル１０３０７は、仮想計算機２０２１１のマシン固有データを管理するためのテーブルである。マシン固有データとは、特定のマシンが利用するデータのことであり、例えばＩＰアドレスやホスト名等のデータである。
【００３９】
依存関係管理テーブル１０３０８は、プログラム管理テーブル１０３０１が管理する仮想計算機２０２１１により利用されるプログラム間の依存関係情報を管理するためのテーブルである。
【００４０】
プログラム保管エリア１０３０Ａは、プログラム管理テーブル１０３０１が管理する仮想計算機２０２１１において利用されるプログラムを一時的に保管する保管場所である。
【００４１】
図４Ａは、図１の仮想計算機提供システム１Ａの検索結果リスト１０２５の概念図を示す。検索結果リスト１０２５には、ユーザが指定した検索条件を満たす仮想計算機２０２１１の情報が格納される。ユーザが指定する検索条件には、例えば用途、ユーザ名、組織名又はプログラム名等がある。ユーザが指定した検索条件を満たす仮想計算機２０２１１の情報は、複製元仮想計算機検索部１０２１内の用途検索部１０２１１、ユーザ名組織名検索部１０２１２及びプログラム名検索部１０２１３により検索される。また検索された仮想計算機２０２１１の情報は、表示装置１０４により表示される。
【００４２】
検索結果リスト１０２５は、仮想計算機名欄１０２５１、環境初期化情報欄１０２５２、ユーザ名欄１０２５３、組織名欄１０２５４、ＯＳ名欄１０２５５、用途欄１０２５６、コスト欄１０２５７及び要求満足度欄１０２５８から構成される。
【００４３】
仮想計算機名欄１０２５１には、複製元の仮想計算機２０２１１の仮想計算機名が格納される。
【００４４】
環境初期化情報欄１０２５２には、複製元仮想計算機検索部１０２１により検索されたユーザ指定の仮想計算機２０２１１が複製されて計算機環境が初期化される際、その初期化に必要な情報が格納される。なお計算機環境とは、仮想計算機２０２１１に含まれる各種固有データや各種プログラムである。各種固有データとは、ユーザ固有データ、組織固有データ及びマシン固有データ等であり、各種プログラムとは、ユーザが要求する要求プログラム及び要求プログラムの動作に必要なプログラム等である。また初期化とは、複製した新規の仮想計算機をユーザに提供する前に、複製直後の仮想計算機２０２１１に含まれる各種固有データや各種プログラムを削除又は変更する処理をいう。初期化は、複製仮想計算機環境初期化部１０２３１により行われる。また初期化に必要な情報とは、ここでは初期化情報リスト１０２６（図４Ｂ参照）の行番号である。
【００４５】
ユーザ名欄１０２５３には、複製元の仮想計算機２０２１１のユーザ名が格納される。また組織名欄１０２５４には、複製元の仮想計算機２０２１１のユーザが所属する組織名が格納される。またＯＳ名欄１０２５５には、複製元の仮想計算機２０２１１に含まれるＯＳのＯＳ名が格納される。また用途欄１０２５６には、複製元の仮想計算機２０２１１の使用用途が格納される。
【００４６】
コスト欄１０２５７には、複製元の仮想計算機２０２１１を複製及び初期化して新規の仮想計算機をユーザに提供する場合に必要な金銭的コストが格納される。金銭的コストには、例えば仮想計算機提供サービスにおいて仮想計算機２０２１１の利用にかかる課金額やソフトウェアのライセンス料金等が含まれる。
【００４７】
要求満足度欄１０２５８には、複製元の仮想計算機２０２１１を複製及び初期化して新規の仮想計算機をユーザに提供する場合にそのユーザの要求が満たされる度合いについて算出した値が格納される。
【００４８】
従って、図４Ａの場合、例えば「ＶＭ５」という仮想計算機名の仮想計算機２０２１１を複製して計算機環境を初期化しようとする場合、その初期化には初期化情報リスト１０２６（図４Ｂ参照）の「１」行目の情報を参照することが示されている。また「ＶＭ５」という仮想計算機２０２１１は、「Ｕｓｅｒ０２」というユーザ名のユーザであって、「Ｏｒｇ０２」という組織名の組織に所属しているユーザが現在利用中の仮想計算機であることが示されている。また「ＶＭ５」という仮想計算機２０２１１では、「ｏｓ＿ａ５．５」というＯＳ名のＯＳが動作していることが示されている。また「ＶＭ５」という仮想計算機２０２１１を複製する場合、「５０００」円のコストが必要となり、ユーザの要求は「１００％」満たされることが示されている。
【００４９】
図４Ｂは、図１の仮想計算機提供システム１Ａの初期化情報リスト１０２６の概念図を示す。初期化情報リスト１０２６には、複製元の仮想計算機２０２１１の計算機環境を初期化する際に必要な情報が格納される。初期化する際に必要な情報は、図１の主記憶装置１０２に格納される。また初期化は、複製仮想計算機環境初期化部１０２３１により行われる。
【００５０】
初期化情報リスト１０２６は、検索結果リスト１０２５の環境初期化情報欄１０２５２に格納されている情報に関連付けられており、行番号欄１０２６１、利用プログラム一覧欄１０２６２、特徴プログラム一覧欄１０２６３、共通プログラム一覧欄１０２６４、不足プログラム一覧欄１０２６５、複製可能プログラム一覧欄１０２６６、複製不可プログラム一覧欄１０２６７、必要プログラム一覧欄１０２６８及び不要プログラム一覧欄１０２６９から構成される。
【００５１】
行番号欄１０２６１には、行番号が格納される。この行番号は、検索結果リスト１０２５（図４Ａ参照）から初期化情報リスト１０２６を参照する際に用いられる。
【００５２】
利用プログラム一覧欄１０２６２には、複製後の新規の仮想計算機により利用される予定の利用プログラムのＩＤが格納される。この利用プログラムのＩＤは、プログラム追加部１０２３１１及びプログラム削除部１０２３１２により格納される。
【００５３】
特徴プログラム一覧欄１０２６３には、複製元仮想計算機検索部１０２１により複製元の仮想計算機２０２１１が検索された結果、複数の仮想計算機２０２１１が検索結果として得られた場合、それぞれの仮想計算機２０２１１に含まれるプログラムのうちの特徴的なプログラムである特徴プログラムのＩＤが格納される。特徴プログラムとは、複数の仮想計算機２０２１１のそれぞれに含まれるプログラムのうち、何れか一の仮想計算機２０２１１には含まれるが他の仮想計算機２０２１１には含まれないプログラムである。
【００５４】
共通プログラム一覧欄１０２６４には、複製元仮想計算機検索部１０２１により複製元の仮想計算機が検索された結果、複数の仮想計算機２０２１１が検索結果として得られた場合、その複数の仮想計算機２０２１１のそれぞれに共通して含まれる共通プログラムのＩＤが格納される。共通プログラムのＩＤは、複製元仮想計算機検索部１０２１により特徴プログラムを抽出する場合に用いられる。
【００５５】
不足プログラム一覧欄１０２６５には、複製した新規の仮想計算機に対し、追加でセットアップする必要のある不足プログラムのＩＤが格納される。不足プログラムのＩＤは、プログラム名検索部１０２１３により検索されて格納される。また不足プログラムは、プログラム追加部１０２３１１により新規の仮想計算機に追加される。
【００５６】
複製可能プログラム一覧欄１０２６６には、利用プログラム一覧欄１０２６２に格納されている利用プログラムのうち、ライセンス条件を満たしているプログラムである複製可能プログラムのＩＤが格納されえる。ライセンス条件を満たしているか否かについては、プログラムライセンス確認部１０２１４により判断される。複製可能プログラムのＩＤは、複製仮想計算機環境初期化部１０２３１により、新規の仮想計算機に残して良いプログラムであるか否かを判断する場合に用いられる。
【００５７】
複製不可プログラム一覧欄１０２６７には、利用プログラム一覧欄１０２６２に格納されている利用プログラムのうち、ライセンス条件を満たしていないプログラムである複製不可プログラムのＩＤが格納される。ライセンス条件を満たしているか否かについては、プログラムライセンス確認部１０２１４により判断される。複製不可プログラムのＩＤは、プログラム削除部１０２３１２により、ソフトウェアライセンス上利用することができないプログラムを複製直後の新規の仮想計算機から削除する場合に用いられる。
【００５８】
必要プログラム一覧欄１０２６８には、ユーザが要求するプログラム及びユーザが要求するプログラムの動作に必要なプログラムである必要プログラムのＩＤが格納される。必要プログラムのＩＤは、必要プログラム一覧作成部１０２４により格納される。また必要プログラムのＩＤは、プログラム名検索部１０２１３により、不足プログラム及び不要プログラムを抽出する場合に用いられる。
【００５９】
不要プログラム一覧欄１０２６９には、複製可能プログラム一覧欄１０２６６に格納されている複製可能プログラムのうち、必要プログラムではないプログラムである不要プログラムのＩＤが格納される。不要プログラムのＩＤは、プログラム名検索部１０２１３により格納される。また不要プログラムのＩＤは、プログラム削除部１０２３１２により、ユーザの要求を満たすためには不要なプログラムを複製後の新規の仮想計算機から削除する場合に用いられる。
【００６０】
従って、図４Ｂの場合、例えば「ＶＭ５」という仮想計算機名の仮想計算機２０２１１の計算機環境を初期化する場合、初期化に際しては行番号「１」の初期化情報が用いられることが示されている（図４Ａ、図４Ｂ参照）。
【００６１】
また、行番号「１」の初期化情報は、「ＰＧ１、ＰＧ７、ＰＧ９、ＰＧ１０、ＰＧ１１、ＰＧ１２」というＩＤの利用プログラムが含まれており、このうち「ＰＧ９」というＩＤのプログラムは、「ＶＭ５」という仮想計算機２０２１１とは異なる「ＶＭ６」という他の仮想計算機２０２１１には含まれていない特徴的なプログラムであることが示されている。
【００６２】
また、行番号「１」の初期化情報は、不足プログラムがないことが示されている。また行番号「１」の初期化情報は、「ＰＧ１、ＰＧ７、ＰＧ９、ＰＧ１０、ＰＧ１１、ＰＧ１２」というＩＤの利用プログラムのうち、「ＰＧ１、ＰＧ７、ＰＧ９、ＰＧ１０、ＰＧ１１」というＩＤのプログラムがライセンス上利用可能な複製可能プログラムであり、「ＰＧ１２」というＩＤのプログラムがライセンス上利用不可である複製不可プログラムであることが示されている。
【００６３】
また、行番号「１」の初期化情報は、「ＰＧ１、ＰＧ７、ＰＧ８又はＰＧ９、ＰＧ１０」というＩＤのプログラムが複製した新規の仮想計算機に要求する要求プログラムであることが示されている。なお複製した新規の仮想計算機には、「ＰＧ８」及び「ＰＧ９」というＩＤのプログラムのうち、何れか一方のプログラムが含まれていればユーザの要求は満たされることが示されている。また新規の仮想計算機には、「ＰＧ１１」というＩＤのプログラムは不要であり不要プログラムであることが示されている。
【００６４】
なお、これら「ＰＧ１、ＰＧ７、ＰＧ９、ＰＧ１０、ＰＧ１１、ＰＧ１２」というＩＤのプログラムは、後述するプログラム管理テーブル１０３０１（図５参照）を参照することにより、具体的には「ｏｓ＿ａ５．５、ｌａｎｇ＿ｒ３．０、ｄｂ＿ａ１．０、ｗｅｂ＿ａｐｐ＿ａ１．０、ｗｅｂ＿ａｐｐ＿ｂ１．０、ｗｅｂ＿ａｐｐ＿ｃ１．０」であることが分かる。
【００６５】
図５は、図３のプログラム管理テーブル１０３０１の概念図を示す。プログラム管理テーブル１０３０１は、仮想計算機提供システム１Ａの各仮想計算機２０２１１が利用するプログラムの情報を管理するためのテーブルであり、プログラム名検索部１０２１３により、各仮想計算機２０２１１に含まれるプログラムを検索する場合に用いられる。
【００６６】
プログラム管理テーブル１０３０１は、ＩＤ欄１０３０１１、プログラム名欄１０３０１２、バージョン欄１０３０１３、アーキテクチャ欄１０３０１４、保管場所欄１０３０１５及びセットアッププログラム名欄１０３０１６から構成される。
【００６７】
ＩＤ欄１０３０１１には、仮想計算機提供システム１Ａにおいてプログラムを特定するための文字列が格納される。ここではプログラムに付与されるＩＤが格納される。
【００６８】
プログラム名欄１０３０１２には、プログラム名が格納される。バージョン欄１０３０１３には、バージョン情報が格納される。アーキテクチャ欄１０３０１４には、動作の前提となるハードウェアアーキテクチャ条件を示した文字列が格納される。
【００６９】
保管場所欄１０３０１５には、プログラムの保管場所が格納される。セットアッププログラム名欄１０３０１６には、プログラムをセットアップする際に実行するプログラム名が格納される。
【００７０】
従って、図５の場合、例えば「ＰＧ１」というＩＤのプログラムは、プログラム名が「ｏｓ＿ａ」であり、バージョンは「５．５」であり、動作アーキテクチャは「ａｒｃ＿３２」であり、プログラムの保管場所は「／ｓｒｖ／ｏｓ／ｓｅｔｕｐ／ｏｓ＿ａ５．５／」であり、セットアッププログラム名は「ｓｅｔｕｐ」であることが示されている。
【００７１】
図６Ａは、図３の仮想計算機イメージ管理テーブル１０３０２の概念図を示す。仮想計算機イメージ管理テーブル１０３０２は、仮想計算機提供システム１Ａにおいて提供されている全ての仮想計算機イメージ２０３１を管理するためのテーブルであり、用途検索部１０２１１、ユーザ名組織名検索部１０２１２及びプログラム名検索部１０２１３により、ユーザが指定した検索条件を満たす仮想計算機２０２１１を検索する場合に用いられる。
【００７２】
仮想計算機イメージ管理テーブル１０３０２は、仮想計算機名欄１０３０２１、ユーザ名欄１０３０２２、組織名欄１０３０２３、ＯＳ名欄１０３０２４及び用途欄１０３０２５から構成される。
【００７３】
仮想計算機名欄１０３０２１には、複製元の仮想計算機２０２１１の仮想計算機名が格納される。ユーザ名欄１０３０２２には、仮想計算機２０２１１を利用しているユーザのユーザ名が格納される。組織名欄１０３０２３には、仮想計算機２０２１１を利用しているユーザが所属する組織の組織名が格納される。ＯＳ名欄１０３０２４には、仮想計算機２０２１１に含まれるＯＳのＯＳ名が格納される。用途欄１０３０２５には、仮想計算機２０２１１の用途を示す文字列が格納される。
【００７４】
従って、図６Ａの場合、例えば「ＶＭ０」という仮想計算機名の仮想計算機２０２１１は、「ｕｓｅｒ００」というユーザ名のユーザであって、「ｏｒｇ００」という組織名の組織に所属しているユーザが現在利用中の仮想計算機であることが示されている。また「ＶＭ０」という仮想計算機２０２１１では、「ｏｓ＿ａ５．５」というＯＳ名のＯＳが動作していることが示されている。また「ＶＭ０」という仮想計算機２０２１１は、「Ｗｅｂサーバ」の用途で用いられていることが示されている。なお「ＡＰサーバ」とは、アプリケーションサーバであり、「ＤＢサーバ」とは、データベースサーバである。
【００７５】
図６Ｂは、図３の利用プログラム管理テーブル１０３０３の概念図を示す。利用プログラム管理テーブル１０３０３は、仮想計算機提供システム１Ａにおいて提供される各仮想計算機イメージ２０３１に含まれるプログラムを管理するためのテーブルであり、プログラム名検索部１０２１３により、ユーザが検索条件に指定したプログラムを含む仮想計算機２０２１１を検索する場合に用いられる。
【００７６】
利用プログラム管理テーブル１０３０３は、仮想計算機名欄１０３０３１及びプログラムＩＤ一覧欄１０３０３２から構成される。仮想計算機名欄１０３０３１には、仮想計算機２０２１１の仮想計算機名が格納される。プログラムＩＤ一覧欄１０３０３２には、仮想計算機２０２１１に含まれるプログラムのＩＤが格納される。
【００７７】
従って、図６Ｂの場合、例えば「ＶＭ０」という仮想計算機名の仮想計算機２０２１１は、「ＰＧ１、ＰＧ３」というＩＤのプログラムを含んでいることが示されている。
【００７８】
図７は、図３のプログラムライセンス管理テーブル１０３０４の概念図を示す。プログラムライセンス管理テーブル１０３０４は、仮想計算機提供システム１Ａにおいて提供されているプログラムのライセンスを管理するためのテーブルであり、プログラムライセンス確認部１０２１４により、複製後の新規の仮想計算機に含まれるプログラムがライセンス上利用できるか否かを判断する場合に用いられる。
【００７９】
プログラムライセンス管理テーブル１０３０４は、プログラムＩＤ欄１０３０４１、ライセンス形態欄１０３０４２、セットアップ数欄１０３０４３、所有ライセンス数欄１０３０４４及びライセンスコスト欄１０３０４５から構成される。
【００８０】
プログラムＩＤ欄１０３０４１には、プログラムのＩＤが格納される。ライセンス形態欄１０３０４２には、プログラムのライセンス形態を示す文字列が格納される。セットアップ数欄１０３０４３には、仮想計算機提供システム１Ａにおいてそのプログラムがセットアップされている仮想計算機２０２１１の数が格納される。所有ライセンス数欄１０３０４４には、仮想計算機提供システム１Ａにおいてそのプログラムをセットアップすることができる仮想計算機２０２１１の最大数が格納される。ライセンスコスト欄１０３０４５には、プログラムを１個使用するのに必要なライセンスコストの金額が格納される。
【００８１】
従って、図７の場合、例えば「ＰＧ１」というＩＤのプログラムは、ライセンス形態が「フリーソフトウェアライセンス」であり、仮想計算機提供システム１Ａにおいて既に「７」つの仮想計算機２０２１１にセットアップされていることが示されている。また所有ライセンス数に上限はなく、ライセンスコストは「０」円であることが示されている。
【００８２】
図８は、図３の依存関係管理テーブル１０３０８の概念図を示す。依存関係管理テーブル１０３０８は、仮想計算機提供システム１Ａにおいて提供されるプログラム間の依存関係を管理するためのテーブルであり、必要プログラム一覧作成部１０２４により、ユーザが検索条件に指定したプログラムの動作に必要なプログラムの一覧を作成する場合に用いられる。
【００８３】
依存関係管理テーブル１０３０８は、依存関係ＩＤ欄１０３０８１、プログラムＩＤ欄１０３０８２、依存プログラム名欄１０３０８３、依存バージョン欄１０３０８４及び依存アーキテクチャ欄１０３０８５から構成される。
【００８４】
依存関係ＩＤ欄１０３０８１には、依存関係を識別するためのＩＤが格納される。プログラムＩＤ欄１０３０８２には、プログラムのＩＤが格納される。依存プログラム名欄１０３０８３には、プログラムＩＤ欄１０３０８２に格納されたＩＤのプログラムを動作させるために必要なプログラムのプログラム名が格納される。依存バージョン欄１０３０８４には、バージョン範囲が格納される。依存アーキテクチャ欄１０３０８５には、動作の前提となるハードウェアアーキテクチャ条件を示した文字列が格納される。
【００８５】
従って、図８の場合、例えば「ＤＰＧ１」というＩＤの依存関係は、「ＰＧ８」というＩＤのプログラムと、「ｄｂ＿ａ」又は「ｄｂ＿ｂ」というプログラムとが依存関係にあることが示されている。具体的には「ＰＧ８」というＩＤのプログラムを動作させる場合には、「ｄｂ＿ａ」又は「ｄｂ＿ｂ」というプログラムが必要であることが示されている。また詳細には「ｄｂ＿ａ」というプログラムは、バージョンが「１．０」以上であって、アーキテクチャが「ａｒｃ＿３２」である必要があることが示されている。また「ｄｂ＿ｂ」というプログラムは、バージョンが「２．０」以上であって、アーキテクチャが「ａｒｃ＿３２」である必要があることが示されている。
【００８６】
図９Ａは、図３のユーザ固有データ管理テーブル１０３０５の概念図を示す。ユーザ固有データ管理テーブル１０３０５は、プログラムごとにユーザ固有データの保管場所を管理するためのテーブルであり、仮想計算機データ変更部１０２３１３により、複製した新規の仮想計算機から複製元の仮想計算機２０２１１を利用しているユーザのユーザ固有データを削除する場合に用いられる。
【００８７】
ユーザ固有データ管理テーブル１０３０５は、プログラムＩＤ欄１０３０５１、データ名欄１０３０５２、データ形式欄１０３０５３、保管場所欄１０３０５４及び記述欄１０３０５５から構成される。
【００８８】
プログラムＩＤ欄１０３０５１には、プログラムのＩＤが格納される。データ名欄１０３０５２には、データ内容を示す文字列が格納される。データ形式欄１０３０５３には、データの形式を区別するための文字列が格納される。保管場所欄１０３０５４には、仮想計算機２０２１１のファイルシステム上におけるデータの保管場所を示す文字列が格納される。記述欄１０３０５５には、データ形式欄１０３０５３に格納される文字列が示すデータ形式がファイルの一部を示す文字列である場合、ファイル内のデータの場所を示す文字列が格納される。
【００８９】
従って、図９Ａの場合、例えば「ＰＧ１」というＩＤのプログラムのユーザディレクトリが「／ｕｓｒ／」であることが示されている。
【００９０】
図９Ｂは、図３の組織固有データ管理テーブル１０３０６の概念図を示す。組織固有データ管理テーブル１０３０６は、組織固有データの保管場所を管理するためのテーブルであり、仮想計算機データ変更部１０２３１３により、複製した新規の仮想計算機においてユーザが所属している組織を示す組織固有データを変更する場合に用いられる。
【００９１】
組織固有データ管理テーブル１０３０６は、プログラムＩＤ欄１０３０６１、データ名欄１０３０６２、データ形式欄１０３０６３、保管場所欄１０３０６４及び記述欄１０３０６５から構成される。各欄に格納される情報は、ユーザ固有データ管理テーブル１０３０５と同様であるため、ここでの説明は省略する。
【００９２】
従って、図９Ｂの場合、例えば「ＰＧ１」というＩＤのプログラムのプログラム内のプロキシ設定は、「／ｅｔｃ／ｐｒｏｘｙ．ｃｏｎｆ」というファイル内の「Ｐｒｏｘｙ＝ｘｘｘｘ」という記述であることが示されている。
【００９３】
図９Ｃは、図３のマシン固有データ管理テーブル１０３０７の概念図を示す。マシン固有データ管理テーブル１０３０７は、仮想計算機２０２１１固有のデータ保管場所を管理するためのテーブルであり、仮想計算機データ変更部１０２３１３により、複製した新規の仮想計算機から複製元の仮想計算機２０２１１固有のデータを変更する場合に用いられる。
【００９４】
マシン固有データ管理テーブル１０３０７は、プログラムＩＤ欄１０３０７１、データ名欄１０３０７２、データ形式欄１０３０７３、保管場所欄１０３０７４及び記述欄１０３０７５から構成される。各欄に格納される情報は、ユーザ固有データ管理テーブル１０３０５と同様であるため、ここでの説明は省略する。
【００９５】
従って、図９Ｃの場合、例えば「ＰＧ１」というＩＤのプログラムのｉｐアドレス設定は、「／ｅｔｃ／ｎｔｗｋ／ｉｐｃｆｇ」というファイル内の「ＩＰＡＤＤＲ＝ｘｘｘｘ」という記述であることが示されている。
【００９６】
図１０は、複製元の仮想計算機２０２１１を複製及び初期化することにより新規の仮想計算機２０２１１Ａをユーザに提供する処理の流れの概念図を示す。なおこれ以降、複製元の仮想計算機を「仮想計算機２０２１１」と記載し、複製後の新規の仮想計算機を「仮想計算機２０２１１Ａ」と記載して両者を区別して説明する。
【００９７】
まず、仮想計算機提供システム１Ａにおいて、ユーザＢから新規の仮想計算機２０２１１Ａの要求があると、用途検索部１０２１１、ユーザ名組織名検索部１０２１２及びプログラム名検索部１０２１３により、ユーザＢの要求を満たす複製元の仮想計算機２０２１１が検索される。ここでは、ユーザＡが現在利用中の仮想計算機２０２１１が検索結果として得られた場合について説明する。
【００９８】
次いで、仮想化環境管理プログラム１０２２の仮想計算機複製部１０２２１により、検索された複製元の仮想計算機２０２１１が複製される。
【００９９】
ここで、この複製直後の仮想計算機２０２１１ＡをユーザＢに提供することにより、ユーザＢが要求したＯＳ（Ｍ１０１０）やプログラム（Ｍ１００６、Ｍ１００７）を備えた仮想計算機２０２１１Ａを迅速に提供することができる。
【０１００】
しかし、この複製直後の仮想計算機２０２１１Ａは、ユーザＡが現在利用中の仮想計算機２０２１１を単に複製したものであるため、ユーザＡのユーザ固有データＭ１００３Ａ、ユーザＡが所属する組織の組織固有データＭ１００４Ａ及び複製元の仮想計算機２０２１１のマシン固有データＭ１００５Ａもそのまま複製されてしまっている。従ってこの複製直後の仮想計算機２０２１１ＡをそのままユーザＢに提供することはできない。
【０１０１】
そこで、複製仮想計算機環境初期化部１０２３１により、複製直後の仮想計算機２０２１１Ａの計算機環境を初期化する必要がある。計算機環境の初期化では、仮想計算機データ変更部１０２３１３により、ユーザ固有データＭ１００３Ａが削除され、組織固有データＭ１００４Ａ及びマシン固有データＭ１００５Ａが変更される。またプログラム削除部１０２３１２により、ユーザＢにとって不要なプログラムＭ１００８Ａが削除される。更にプログラム追加部１０２３１１により、ユーザＢが必要としているプログラムであって、複製元の仮想計算機２０２１１には含まれていなかったプログラムＭ１００９Ａが追加される。
【０１０２】
以上の処理により、ユーザＡが利用中の仮想計算機２０２１１を複製して初期化することにより、ユーザＢの要求に応じた新規の仮想計算機２０２１１ＡをユーザＢに提供することができる。
【０１０３】
図１１は、図１の表示装置１０４において表示される用途検索画面Ｍ１１０１の画面構成図を示す。用途検索画面Ｍ１１０１は、複製元仮想計算機検索部１０２１の用途検索部１０２１１により、表示装置１０４に表示される。また用途検索画面Ｍ１１０１は、仮想計算機提供システム１Ａにおける複数の仮想計算機２０２１１から複製元となる仮想計算機２０２１１を検索する際、用途に基づいて検索する場合に用いられる。
【０１０４】
用途検索画面Ｍ１１０１は、用途検索タブＣ０１、ユーザ名組織名検索タブＣ０２、プログラム名検索タブＣ０３、用途入力フィールドＭ１１０２、ＯＳ名入力フィールドＭ１１０３、検索ボタンＭ１１０４、検索結果表示フィールドＭ１１０５、複製元選択ボタンＭ１１０６、仮想計算機複製初期化ボタンＭ１１０７、仮想計算機名入力フィールドＭ１１０８、ユーザ名入力フィールドＭ１１０９、組織名入力フィールドＭ１１１０及び用途入力フィールドＭ１１１１から構成される。
【０１０５】
用途検索タブＣ０１は、用途検索画面Ｍ１１０１を表示させるためのタブである。ユーザ名組織名検索タブＣ０２は、ユーザ名組織名検索画面Ｍ１２０１（図１２参照）を表示させるためのタブである。プログラム名検索タブＣ０３は、プログラム名検索画面Ｍ１３０１（図１３参照）を表示させるためのタブである。
【０１０６】
用途入力フィールドＭ１１０２は、検索対象の複製元の仮想計算機２０２１１の用途を入力するためのフィールドである。
【０１０７】
ＯＳ名入力フィールドＭ１１０３は、検索対象の複製元の仮想計算機２０２１１に含まれるＯＳのＯＳ名を入力するためのフィールドである。
【０１０８】
検索ボタンＭ１１０４は、用途入力フィールドＭ１１０２に用途が入力され、ＯＳ名入力フィールドＭ１１０３にＯＳ名が入力された後、検索ボタンＭ１１０４が押下された場合、用途検索部１０２１１により、入力された用途及びＯＳ名に基づいて、複製元の仮想計算機２０２１１を検索させるためのボタンである。
【０１０９】
用途検索部１０２１１は、検索ボタンＭ１１０４が押下されると、次に述べる処理を実行する。
【０１１０】
まず、用途検索部１０２１１は、仮想計算機イメージ管理テーブル１０３０２（図６Ａ参照）を参照して、用途欄１０３０２５に格納されている用途と入力された用途とが一致し、かつ、ＯＳ名欄１０３０２４に格納されているＯＳ名と入力されたＯＳ名とが一致する行を仮想計算機イメージ管理テーブル１０３０２から抽出する。
【０１１１】
次いで、用途検索部１０２１１は、検索結果リスト１０２５（図４Ａ参照）に新たに行を作成する。そして用途検索部１０２１１は、作成した行における仮想計算機名欄１０２５１、ユーザ名欄１０２５３、組織名欄１０２５４、ＯＳ名欄１０２５５、用途欄１０２５６の各欄に、仮想計算機イメージ管理テーブル１０３０２から抽出した行の仮想計算機名、ユーザ名、組織名、ＯＳ名、用途の情報をそれぞれ格納する。
【０１１２】
次いで、用途検索部１０２１１は、初期化情報リスト１０２６（図４Ｂ参照）に新たに行を作成する。初期化情報リスト１０２６に新たに作成した行の各欄に各種情報を格納する処理については後述する（図１４〜図１８参照）。
【０１１３】
用途検索部１０２１１は、初期化情報リスト１０２６に新たに作成した行の行番号欄１０２６１に格納された行番号を上述の検索結果リスト１０２５に新たに作成した行の環境初期化情報欄１０２５２に格納する。
【０１１４】
検索結果表示フィールドＭ１１０５は、用途検索部１０２１１により検索結果リスト１０２５に新たに作成した行にかかる情報を表示するフィールドである。
【０１１５】
検索結果表示フィールドＭ１１０５は、検索結果リスト１０２５に新たに作成した行にかかる情報を表示する構成として、複製元選択ボタンＭ１１０６、仮想計算機名表示フィールドＲ０１、ユーザ名表示フィールドＲ０２、組織名表示フィールドＲ０３、ＯＳ名表示フィールドＲ０４、用途表示フィールドＲ０５、特徴プログラム表示フィールドＲ０６、不足プログラム表示フィールドＲ０７、ユーザ要求満足度表示フィールドＲ０８及びコスト表示フィールドＲ０９から構成される。
【０１１６】
複製元選択ボタンＭ１１０６は、検索結果表示フィールドＭ１１０５に表示された複数の複製元の仮想計算機２０２１１の候補から一の複製元の仮想計算機２０２１１を選択するためのボタンである。
【０１１７】
仮想計算機名表示フィールドＲ０１には、複製元の候補となる仮想計算機２０２１１の仮想計算機名が表示される。ユーザ名表示フィールドＲ０２には、複製元の候補となる仮想計算機２０２１１を現在利用しているユーザのユーザ名が表示される。
【０１１８】
組織名表示フィールドＲ０３には、複製元の候補となる仮想計算機２０２１１を現在利用しているユーザが所属している組織の組織名が表示される。ＯＳ名表示フィールドＲ０４には、複製元の候補となる仮想計算機２０２１１に含まれるＯＳのＯＳ名が表示される。
【０１１９】
用途表示フィールドＲ０５には、複製元の候補となる仮想計算機２０２１１の用途が表示される。特徴プログラム表示フィールドＲ０６には、複製元の候補となる仮想計算機２０２１１に含まれる特徴的なプログラムのＩＤが表示される。
【０１２０】
不足プログラム表示フィールドＲ０７には、複製した新規の仮想計算機２０２１１Ａに対し、追加でセットアップする必要のあるプログラムのＩＤが表示される。ユーザ要求満足度表示フィールドＲ０８には、複製元の仮想計算機２０２１１を複製してユーザに提供した場合にそのユーザの要求が満たされる度合いが表示される。コスト表示フィールドＲ０９には、複製元の仮想計算機２０２１１を複製して新規の仮想計算機２０２１１Ａをユーザに提供するまでにかかる必要な金銭的コストが表示される。
【０１２１】
従って、図１１の場合、例えば「Ｗｅｂサーバ」という用途の仮想計算機２０２１１であって、「ｏｓ＿ａ」というＯＳが含まれる仮想計算機２０２１１を検索条件として検索されたことが示されている。そして検索ボタンＭ１１０４の押下により検索された結果、検索結果表示フィールドＭ１１０５には、「ＶＭ０」及び「ＶＭ１」という仮想計算機２０２１１が検索結果として得られたことが示されている。また「ＶＭ０」の仮想計算機２０２１１は、「ｕｓｅｒ００」というユーザであって、「ｏｒｇ００」という組織に所属しているユーザが現在利用中であることが示されている。また「ＶＭ０」の仮想計算機２０２１１は、「ｏｓ＿ａ５．５」というＯＳにより動作することが示されている。また「ＶＭ０」の仮想計算機２０２１１は、「Ｗｅｂサーバ」の用途で用いられることが示されている。また「ＶＭ０」の仮想計算機２０２１１は、不足プログラムがなく、そのため「１００％」のユーザ要求満足度であることが示されている。また「ＶＭ０」の仮想計算機２０２１１を複製元として利用する場合、「５０００」円の金銭的コストが必要であることが示されている。
【０１２２】
仮想計算機複製初期化ボタンＭ１１０７は、複製元選択ボタンＭ１１０６により選択された複製元の仮想計算機２０２１１について、複製及び初期化を実行するためのボタンである。この仮想計算機複製初期化ボタンＭ１１０７が押下されると、複製仮想計算機提供部１０２３により、複製元の仮想計算機２０２１１の複製及び初期化が実行されることになる（図２１参照）。
【０１２３】
仮想計算機名入力フィールドＭ１１０８は、新規の仮想計算機２０２１１Ａの仮想計算機名を入力するためのフィールドである。
【０１２４】
ユーザ名入力フィールドＭ１１０９は、新規の仮想計算機２０２１１Ａを利用するユーザのユーザ名を入力するためのフィールドである。
【０１２５】
組織名入力フィールドＭ１１１０は、新規の仮想計算機２０２１１Ａを利用するユーザが所属する組織の組織名を入力するためのフィールドである。
【０１２６】
用途入力フィールドＭ１１１１は、新規の仮想計算機２０２１１Ａの用途を入力するためのフィールドである。
【０１２７】
図１２は、図１の表示装置１０４において表示されるユーザ名組織名検索画面Ｍ１２０１の画面構成図を示す。ユーザ名組織名検索画面Ｍ１２０１は、複製元仮想計算機検索部１０２１のユーザ名組織名検索部１０２１２により、表示装置１０４に表示される。またユーザ名組織名検索画面Ｍ１２０１は、仮想計算機提供システム１Ａにおける複数の仮想計算機２０２１１から複製元となる仮想計算機２０２１１を検索する際、ユーザ名又は組織名に基づいて検索する場合に用いられる。
【０１２８】
ユーザ名組織名検索画面Ｍ１２０１は、図１１の用途入力フィールドＭ１１０２及びＯＳ名入力フィールドＭ１１０３に替えて、ユーザ名入力フィールドＭ１２０２及び組織名入力フィールドＭ１２０３を備えて構成される。
【０１２９】
ユーザ名入力フィールドＭ１２０２は、検索対象の複製元の仮想計算機２０２１１を利用するユーザのユーザ名を入力するためのフィールドである。
【０１３０】
組織名入力フィールドＭ１２０３は、検索対象の複製元の仮想計算機２０２１１を利用するユーザが所属する組織の組織名を入力するためのフィールドである。
【０１３１】
ユーザ名組織名検索画面Ｍ１２０１のその他の構成は、用途検索画面Ｍ１１０１と同様に構成されるため、ここでの説明は省略する。
【０１３２】
ユーザ名組織名検索部１０２１２は、ユーザ名及び組織名が入力された後、検索ボタンＭ１２０４が押下されると、次に述べる処理を実行する。
【０１３３】
まず、ユーザ名組織名検索部１０２１２は、仮想計算機イメージ管理テーブル１０３０２（図６Ａ参照）を参照して、ユーザ名欄１０３０２２に格納されているユーザ名と入力されたユーザ名とが一致し、かつ、組織名欄１０３０２３に格納されている組織名と入力された組織名とが一致する行を仮想計算機イメージ管理テーブル１０３０２から抽出する。
【０１３４】
次いで、ユーザ名組織名検索部１０２１２は、検索結果リスト１０２５（図４Ａ参照）に新たに行を作成する。そしてユーザ名組織名検索部１０２１２は、作成した行における仮想計算機名欄１０２５１、ユーザ名欄１０２５３、組織名欄１０２５４、ＯＳ名欄１０２５５及び用途欄１０２５６の各欄に、仮想計算機イメージ管理テーブル１０３０２から抽出した行の仮想計算機名、ユーザ名、組織名、ＯＳ名及び用途の情報をそれぞれ格納する。
【０１３５】
次いで、ユーザ名組織名検索部１０２１２は、初期化情報リスト１０２６（図４Ｂ参照）に新たに行を作成する。初期化情報リスト１０２６に新たに作成した行の各欄に各種情報を格納する処理については後述する（図１４〜図１８参照）。
【０１３６】
ユーザ名組織名検索部１０２１２は、初期化情報リスト１０２６に新たに作成した行の行番号欄１０２６１に格納された行番号を上述の検索結果リスト１０２５に新たに作成した行の環境初期化情報欄１０２５２に格納する。
【０１３７】
検索結果表示フィールドＭ１２０５は、ユーザ名組織名検索部１０２１２により検索結果リスト１０２５に新たに作成した行にかかる情報を表示するフィールドである。この検索結果表示フィールドＭ１２０５で表示される情報は、図１１の検索結果表示フィールドＭ１１０５で表示される情報と同様であるため、ここでの説明は省略する。
【０１３８】
図１３は、図１の表示装置１０４において表示されるプログラム名検索画面Ｍ１３０１の画面構成図を示す。プログラム名検索画面Ｍ１３０１は、複製元仮想計算機検索部１０２１のプログラム名検索部１０２１３により、表示装置１０４に表示される。またプログラム名検索画面Ｍ１３０１は、仮想計算機提供システム１Ａにおける複数の仮想計算機２０２１１から複製元となる仮想計算機２０２１１を検索する際、プログラム名に基づいて検索する場合に用いられる。
【０１３９】
プログラム名検索画面Ｍ１３０１は、図１１の用途入力フィールドＭ１１０２及びＯＳ名入力フィールドＭ１１０３に替えて、プログラム名入力フィールドＭ１３０２を備えて構成される。
【０１４０】
プログラム名入力フィールドＭ１３０２は、検索対象の複製元の仮想計算機２０２１１に含まれるプログラムのプログラム名及びバージョン条件を入力するためのフィールドである。
【０１４１】
プログラム名検索画面Ｍ１３０１のその他の構成は、用途検索画面Ｍ１１０１と同様に構成されるため、ここでの説明は省略する。
【０１４２】
プログラム名検索部１０２１３は、プログラム名及びバージョン条件が入力された後、検索ボタンＭ１３０３が押下されると、次に述べる処理を実行する。
【０１４３】
まず、プログラム名検索部１０２１３は、利用プログラム管理テーブル１０３０３（図６Ｂ参照）を参照して、入力されたプログラム名のプログラムを含む仮想計算機２０２１１を検索し、検索により得られた仮想計算機２０２１１の仮想計算機名を利用プログラム管理テーブル１０３０３から抽出する。またプログラム名検索部１０２１３は、プログラム管理テーブル１０３０１（図５参照）を参照して、入力されたバージョンがバージョン条件を満たすか否か判断する。そしてプログラム名検索部１０２１３は、先に抽出した仮想計算機名の仮想計算機２０２１１のうち、バージョン条件を満たすプログラムを含む仮想計算機２０２１１の行を仮想計算機イメージ管理テーブル１０３０２から抽出する。
【０１４４】
次いで、プログラム名検索部１０２１３は、検索結果リスト１０２５（図４Ａ参照）に新たに行を作成する。そしてプログラム名検索部１０２１３は、作成した行における仮想計算機名欄１０２５１、ユーザ名欄１０２５３、組織名欄１０２５４、ＯＳ名欄１０２５５及び用途欄１０２５６の各欄に、仮想計算機イメージ管理テーブル１０３０２から抽出した行の仮想計算機名、ユーザ名、組織名、ＯＳ名及び用途の情報をそれぞれ格納する。
【０１４５】
次いで、プログラム名検索部１０２１３は、初期化情報リスト１０２６（図４Ｂ参照）に新たに行を作成する。初期化情報リスト１０２６に新たに作成した行の各欄に各種情報を格納する処理については後述する（図１４〜図１８参照）。
【０１４６】
プログラム名検索部１０２１３は、初期化情報リスト１０２６に新たに作成した行の行番号欄１０２６１に格納された行番号を上述の検索結果リスト１０２５に新たに作成した行の環境初期化情報欄１０２５２に格納する。
【０１４７】
検索結果表示フィールドＭ１３０４は、プログラム名検索部１０２１３により検索結果リストに新たに作成した行にかかる情報を表示するフィールドである。この検索結果表示フィールドＭ１３０４で表示される情報は、図１１の検索結果表示フィールドＭ１１０５で表示される情報と同様であるため、ここでの説明は省略する。
【０１４８】
図１４は、複製元仮想計算機検索部１０２１からの実行指示を受け付けた用途検索部１０２１１により行われる用途検索処理の処理手順を示す。用途検索部１０２１１は、図１１の用途検索画面Ｍ１１０１の検索ボタンＭ１１０４が押下されると複製元仮想計算機検索部１０２１からの実行指示を受け付け、この図１４に示す処理手順に従って、複数の複製元の仮想計算機２０２１１から用途に基づく検索処理を実行する。
【０１４９】
まず、用途検索部１０２１１は、仮想計算機イメージ管理テーブル１０３０２を参照して、用途検索画面Ｍ１１０１において入力された用途及びＯＳ名を含む行を検索する。そして用途検索部１０２１１は、検索した結果得られた行を仮想計算機イメージ管理テーブル１０３０２から抽出する（Ｓ１００１）。
【０１５０】
次いで、用途検索部１０２１１は、検索結果リスト１０２５及び初期化情報リスト１０２６に新たに行を作成し、作成した行の仮想計算機名欄１０２５１、ユーザ名欄１０２５３、組織名欄１０２５４、ＯＳ名欄１０２５５及び用途欄１０２５６の各欄に、ステップＳ１００１で抽出した行に含まれる仮想計算機名、ユーザ名、組織名、ＯＳ名及び用途のそれぞれを格納して（Ｓ１００２）、本処理を終了する。
【０１５１】
図１５は、複製元仮想計算機検索部１０２１からの実行指示を受け付けたプログラムライセンス確認部１０２１４により行われるライセンス確認処理の処理手順を示す。複製元仮想計算機検索部１０２１は、図１１の用途検索画面Ｍ１１０１の検索ボタンＭ１１０４が押下されると、上述した図１４に示す検索処理の実行を用途検索部１０２１１に指示するとともに、プログラムライセンス確認部１０２１４にプログラムライセンス確認処理の実行を指示する。プログラムライセンス確認部１０２１４は、複製元仮想計算機検索部１０２１からのプログラムライセンス確認処理の実行指示を受け付けると、この図１５に示す処理手順に従って、図１４に示す検索処理により検索結果として得られた複製元の仮想計算機２０２１１について、ライセンス上利用可能なプログラムと、ライセンス上利用不可能なプログラムとを抽出する処理を実行する。
【０１５２】
まず、プログラムライセンス確認部１０２１４は、利用プログラム管理テーブル１０３０３（図６Ｂ参照）を参照して、仮想計算機名欄１０３０３１に格納されている仮想計算機名と検索結果リスト１０２５の仮想計算機名欄１０２５１に格納されている仮想計算機名とが一致する行を利用プログラム管理テーブル１０３０３から抽出する。そしてプログラムライセンス確認部１０２１４は、利用プログラム管理テーブル１０３０３から抽出した行のプログラムＩＤ一覧欄１０３０３２に格納されている利用可能なプログラムを初期化情報リスト１０２６の利用プログラム一覧欄１０２６２に格納する（Ｓ１０１１）。
【０１５３】
次いで、プログラムライセンス確認部１０２１４は、プログラムライセンス管理テーブル１０３０４（図７参照）を参照して、プログラムＩＤ欄１０３０４１に格納されているプログラムのＩＤと初期化情報リスト１０２６の利用プログラム一覧欄１０２６２に格納されているプログラムのＩＤとが一致する行をプログラムライセンス管理テーブル１０３０４から抽出する。そしてプログラムライセンス確認部１０２１４は、プログラムライセンス管理テーブル１０３０４から抽出した行のライセンス形態欄１０３０４２に格納されたライセンス形態の情報を参照して、ステップＳ１０１１で利用プログラム一覧欄１０２６２に格納したＩＤのプログラムがライセンス上利用可能であるか否か判断する（Ｓ１０１２）。
【０１５４】
具体的には、ステップＳ１０１２において、プログラムライセンス確認部１０２１４は、プログラムライセンス管理テーブル１０３０４から抽出した行のライセンス形態欄１０３０４２に格納されているライセンス形態がフリーソフトの場合、利用プログラム一覧欄１０２６２に格納したＩＤのプログラムはライセンス上利用可能なプログラムであると判断する。
【０１５５】
また、ステップＳ１０１２において、プログラムライセンス確認部１０２１４は、プログラムライセンス管理テーブル１０３０４から抽出した行のライセンス形態欄１０３０４２に格納されているライセンス形態がボリュームライセンスの場合であって、かつ、セットアップ数欄１０３０４３に格納されているセットアップ数が所有ライセンス数欄１０３０４４に格納された所有ライセンス数以下である場合、利用プログラム一覧欄１０２６２に格納したＩＤのプログラムはライセンス上利用可能なプログラムであると判断し、セットアップ数が所有ライセンス数より多い場合、利用プログラム一覧欄１０２６２に格納したＩＤのプログラムはライセンス上利用不可能なプログラムであると判断する。
【０１５６】
また、ステップＳ１０１２において、プログラムライセンス確認部１０２１４は、プログラムライセンス管理テーブル１０３０４から抽出した行のライセンス形態欄１０３０４２に格納されているライセンス形態がサイトライセンスの場合、利用プログラム一覧欄１０２６２に格納したＩＤのプログラムはライセンス上利用可能なプログラムであると判断する。なお上述したフリーソフト、ボリュームライセンス及びサイトライセンスは、ライセンス形態の一例として示したものである。仮想計算機提供システム１Ａは、上述したライセンス以外のライセンス形態を採用するプログラムを扱う場合もある。
【０１５７】
プログラムライセンス確認部１０２１４は、ステップＳ１０１２の判断で肯定結果を得ると、ライセンス上利用可能なプログラムのＩＤを初期化情報リスト１０２６の複製可能プログラム一覧欄１０２６６に格納する（Ｓ１０１３）。
【０１５８】
これに対し、プログラムライセンス確認部１０２１４は、ステップＳ１０１２の判断で否定結果を得ると、ライセンス上利用不可能なプログラムのＩＤを初期化情報リスト１０２６の複製不可プログラム一覧欄１０２６７に格納する（Ｓ１０１４）。
【０１５９】
プログラムライセンス確認部１０２１４は、検索結果リスト１０２５及び初期化情報リスト１０２６の全ての行について、上述してきたステップＳ１０１１〜Ｓ１０１４までの処理を行ったか否か判断する（Ｓ１０１５）。
【０１６０】
プログラムライセンス確認部１０２１４は、この判断で肯定結果を得ると、本処理を終了する。これに対し、プログラムライセンス確認部１０２１４は、この判断で否定結果を得ると、他の行についても上述してきたステップＳ１０１１〜Ｓ１０１４の処理を行い、全ての行について上述のステップＳ１０１１〜Ｓ１０１４の処理を行った後、本処理を終了する。
【０１６１】
図１６は、複製元仮想計算機検索部１０２１により行われる特徴プログラム抽出処理の処理手順を示す。複製元仮想計算機検索部１０２１は、図１１の用途検索画面Ｍ１１０１の検索ボタンＭ１１０４が押下されると、上述した図１４に示す検索処理及び図１５に示すライセンス確認処理を行うとともに、この図１６に示す処理を行う。具体的には、複製元仮想計算機検索部１０２１は、この図１６に示す処理手順に従って、図１４に示す検索処理により検索結果として得られた複数の複製元の仮想計算機２０２１１について、特徴的なプログラムを抽出する処理を実行する。
【０１６２】
まず、複製元仮想計算機検索部１０２１は、図１４の処理により作成した初期化情報リスト１０２６の各行において、複製可能プログラム一覧欄１０２６６に格納されている複製可能プログラムのＩＤと不要プログラム一覧欄１０２６９に格納されている不要プログラムのＩＤとの差分を算出する。不要プログラム一覧欄１０２６９に不要プログラムを格納する処理については、後述する（図２０参照）。そして複製元仮想計算機検索部１０２１は、算出した差分を初期化情報リスト１０２６の特徴プログラム一覧欄１０２６３に格納する（Ｓ１０２１）。
【０１６３】
次いで、複製元仮想計算機検索部１０２１は、不足プログラム一覧欄１０２６５に格納されている不足プログラムのＩＤを特徴プログラム一覧欄１０２６３に格納する（Ｓ１０２２）。
【０１６４】
不足プログラム一覧欄１０２６５に不足プログラムを格納する処理については、後述する（図２０参照）。
【０１６５】
次いで、複製元仮想計算機検索部１０２１は、初期化情報リスト１０２６の各行において、特徴プログラム一覧欄１０２６３に格納されているＩＤのうち、他の行の特徴プログラム一覧欄１０２６３にも格納されているＩＤを抽出する。複製元仮想計算機検索部１０２１は、抽出したＩＤを共通プログラム一覧欄１０２６４に格納する（Ｓ１０２３）。
【０１６６】
そして、複製元仮想計算機検索部１０２１は、初期化情報リスト１０２６の各行において、特徴プログラム一覧欄１０２６３に格納されているＩＤから共通プログラム一覧欄１０２６４に格納されているＩＤを削除する（Ｓ１０２４）。
【０１６７】
以上の処理により、複製元仮想計算機検索部１０２１は、初期化情報リスト１０２６の全ての行について、特徴プログラム一覧欄１０２６３に特徴プログラムのＩＤを格納することができる。
【０１６８】
図１７は、複製元仮想計算機検索部１０２１により行われる要求満足度抽出処理の処理手順を示す。複製元仮想計算機検索部１０２１は、図１１の用途検索画面Ｍ１１０１の検索ボタンＭ１１０４が押下されると、上述した図１４に示す検索処理、図１５に示すライセンス確認処理及び図１６に示す特徴プログラム抽出処理を行うとともに、この図１７に示す処理を行う。具体的には、複製元仮想計算機検索部１０２１は、この図１７に示す処理に従って、図１４に示す検索処理により検索結果として得られた複数の複製元の仮想計算機２０２１１について、ユーザの要求に対する満足度を抽出する処理を実行する。
【０１６９】
まず、複製元仮想計算機検索部１０２１は、プログラム名に基づく検索であるか否かを判断する（Ｓ１０３１）。
【０１７０】
なお、ここでは用途検索部１０２１１により用途に基づく検索が行われる場合について説明しているため、複製元仮想計算機検索部１０２１は否定結果を得ることになる。またユーザ名及び組織名に基づく検索の場合も同様に、複製元仮想計算機検索部１０２１は否定結果を得ることになる。プログラム名に基づく検索の場合、複製元仮想計算機検索部１０２１は肯定結果を得ることになる。
【０１７１】
複製元仮想計算機検索部１０２１は、ステップＳ１０３１の判断で否定結果を得ると、初期化情報リスト１０２６の複製可能プログラム一覧欄１０２６６に格納されている複製可能プログラムのＩＤの個数を利用プログラム一覧欄１０２６２に格納されている利用プログラムのＩＤの個数で割り、得られた値に数字の１００を掛けて要求満足度を算出する。複製元仮想計算機検索部１０２１は、算出した要求満足度を検索結果リスト１０２５の要求満足度欄１０２５８に格納して（Ｓ１０３３）、本処理を終了する。
【０１７２】
これに対し、複製元仮想計算機検索部１０２１は、ステップＳ１０３１の判断で肯定結果を得ると、プログラム名に基づく検索であると判断し、初期化情報リスト１０２６の複製可能プログラム一覧欄１０２６６に格納されている複製可能プログラムのＩＤの個数と、不要プログラム一覧欄１０２６９に格納されている不要プログラムのＩＤの個数との差分を算出する。そして複製元仮想計算機検索部１０２１は、算出した差分を必要プログラム一覧欄１０２６８に格納されている必要プログラムのＩＤの個数で割り、得られた値に数字の１００を掛けて要求満足度を算出する。複製元仮想計算機検索部１０２１は、算出した要求満足度を検索結果リスト１０２５の要求満足度欄１０２５８に格納して（Ｓ１０３２）、本処理を終了する。
【０１７３】
図１８は、複製元仮想計算機検索部１０２１により行われるコスト算出処理の処理手順を示す。複製元仮想計算機検索部１０２１は、図１１の用途検索画面Ｍ１１０１の検索ボタンＭ１１０４が押下されると、この図１８に示す処理を行う。具体的には、複製元仮想計算機検索部１０２１は、この図１８に示す処理に従って、図１４に示す検索処理により検索結果として得られた複数の複製元の仮想計算機２０２１１から新規の仮想計算機２０２１１Ａを作成した場合に必要なコストを算出する処理を実行する。
【０１７４】
まず、複製元仮想計算機検索部１０２１は、初期化情報リスト１０２６を参照して、複製可能プログラム一覧欄１０２６６に格納されている複製可能プログラムのＩＤと、不要プログラム一覧欄１０２６９に格納されている不要プログラムのＩＤとの差分を算出する。次いで複製元仮想計算機検索部１０２１は、プログラムライセンス管理テーブル１０３０４を参照して、プログラムＩＤ欄１０３０４１に格納されているＩＤと、算出した差分のＩＤとが一致する行をプログラムライセンス管理テーブル１０３０４から抽出する。次いで、複製元仮想計算機検索部１０２１は、抽出した行のライセンスコスト欄１０３０４５に格納されているライセンスコストを検索結果リスト１０２５のコスト欄１０２５７に格納する（Ｓ１０４１）。
【０１７５】
次いで、複製元仮想計算機検索部１０２１は、予め定められた課金額を検索結果リスト１０２５のコスト欄１０２５７に格納する（Ｓ１０４２）。
【０１７６】
なお、ステップＳ１０４２で格納するか金額は、仮想計算機を提供するサービス全体で一定としてもよいし、仮想計算機の構成（仮想ＣＰＵの個数、メモリ容量又はストレージ容量等）により変更してもよい。
【０１７７】
以上の処理（図１４〜図１８参照）により、検索結果リスト１０２５及び初期化情報リスト１０２６の各欄に各種情報を格納することができる。よって複製元仮想計算機検索部１０２１は、図１１の用途検索画面Ｍ１１０１の検索ボタンＭ１１０４が押下された場合、検索結果リスト１０２５及び初期化情報リスト１０２６の各欄に格納した各種情報に基づいて、検索結果を検索結果表示フィールドＭ１１０５に表示することができる。
【０１７８】
図１９は、複製元仮想計算機検索部１０２１からの実行指示を受け付けたユーザ名組織名検索部１０２１２により行われるユーザ名組織名検索処理の処理手順を示す。ユーザ名組織名検索部１０２１２は、図１２のユーザ名組織名検索画面Ｍ１２０１の検索ボタンＭ１２０４が押下されると複製元仮想計算機検索部１０２１からの実行指示を受け付け、この図１９に示す処理手順に従って、複数の複製元の仮想計算機２０２１１からユーザ名組織名に基づく検索処理を実行する。
【０１７９】
まず、ユーザ名組織名検索部１０２１２は、仮想計算機イメージ管理テーブル１０３０２を参照して、ユーザ名組織名検索画面Ｍ１２０１において入力されたユーザ名及び組織名を含む行を検索する。そしてユーザ名組織名検索部１０２１２は、検索した結果得られた行を仮想計算機イメージ管理テーブル１０３０２から抽出する（Ｓ１０５１）。
【０１８０】
次いで、ユーザ名組織名検索部１０２１２は、検索結果リスト１０２５及び初期化情報リスト１０２６に新たに行を作成し、作成した行の仮想計算機名欄１０２５１、ユーザ名欄１０２５３、組織名欄１０２５４、ＯＳ名欄１０２５５及び用途欄１０２５６の各欄に、ステップＳ１００１で抽出した行に含まれる仮想計算機名、ユーザ名、組織名、ＯＳ名及び用途のそれぞれを格納して（Ｓ１０５２）、本処理を終了する。
【０１８１】
複製元仮想計算機検索部１０２１により、検索結果リスト１０２５及び初期化情報リスト１０２６の各欄に各種情報を格納する処理については、上述した図１５〜図１８の処理と同様であるため、ここでの説明は省略する。
【０１８２】
以上の処理により（図１９及び図１５〜図１８参照）、検索結果リスト１０２５及び初期化情報リスト１０２６の各欄に各種情報を格納することができる。よって複製元仮想計算機検索部１０２１は、図１２のユーザ名組織名検索画面Ｍ１２０１の検索ボタンＭ１２０４が押下された場合、検索結果リスト１０２５及び初期化情報リスト１０２６の各欄に格納した各種情報に基づいて、検索結果を検索結果表示フィールドＭ１２０５に表示することができる。
【０１８３】
図２０は、複製元仮想計算機検索部１０２１からの実行指示を受け付けたプログラム名検索部１０２１３により行われるプログラム名検索処理の処理手順を示す。プログラム名検索部１０２１３は、図１３のプログラム名検索画面Ｍ１３０１の検索ボタンＭ１３０３が押下されると複製元仮想計算機検索部１０２１からの実行指示を受け付け、この図２０に示す処理手順に従って、複数の複製元の仮想計算機２０２１１からプログラム名に基づく検索処理を実行する。
【０１８４】
まず、プログラム名検索部１０２１３は、プログラム名検索画面Ｍ１３０１において入力されたプログラム名及びバージョン条件の情報を受け付けると、利用プログラム管理テーブル１０３０３（図６Ｂ参照）及びプログラム管理テーブル１０３０１（図５参照）を参照して、受け付けたプログラム名及びバージョン条件を満たすプログラムを含む仮想計算機２０２１１を検索し、検索により得られた仮想計算機２０２１１を含む行を仮想計算機イメージ管理テーブル１０３０２（図６Ａ参照）から抽出する。そしてプログラム名検索部１０２１３は、検索結果リスト１０２５（図４Ａ参照）に新たに行を作成し、作成した行における仮想計算機名欄１０２５１、ユーザ名欄１０２５３、組織名欄１０２５４、ＯＳ名欄１０２５５及び用途欄１０２５６の各欄に、仮想計算機イメージ管理テーブル１０３０２から抽出した行の仮想計算機名、ユーザ名、組織名、ＯＳ名及び用途の情報をそれぞれ格納する。次いでプログラム名検索部１０２１３は、初期化情報リスト１０２６（図４Ｂ参照）に新たに行を作成する。初期化情報リスト１０２６に新たに作成した行の各欄に各種情報を格納する処理については後述する。プログラム名検索部１０２１３は、初期化情報リスト１０２６に新たに作成した行の行番号欄１０２６１に格納した行番号を上述の検索結果リスト１０２５の新たに作成した行の環境初期化情報欄１０２５２に格納する（Ｓ１５０１）。
【０１８５】
次いで、プログラム名検索部１０２１３は、プログラムライセンス確認部１０２１４を実行する。プログラムライセンス確認部１０２１４は、プログラム名検索部１０２１３から実行指示を受け付けると、プログラムライセンス管理テーブル１０３０４（図７参照）を参照して、複製元の仮想計算機２０２１１に含まれるプログラムのうち、ライセンス上利用可能なプログラム及びライセンス上利用不可能なプログラムを抽出する。そしてプログラムライセンス確認部１０２１４は、初期化情報リスト１０２６の複製可能プログラム一覧欄１０２６６及び複製不可プログラム一覧欄１０２６７の各欄に、抽出したライセンス上利用可能なプログラムのＩＤ及びライセンス上利用不可能なプログラムのＩＤをそれぞれ格納する（Ｓ１５０２）。
【０１８６】
次いで、プログラム名検索部１０２１３は、必要プログラム一覧作成部１０２４を実行する。必要プログラム一覧作成部１０２４は、プログラム名検索部１０２１３からの実行指示を受け付けると、依存関係管理テーブル１０３０８（図８参照）及びプログラム管理テーブル１０３０１（図３参照）を参照して、ユーザが検索条件に指定したプログラム名のプログラム及びこのプログラムが動作するために必要なプログラムを抽出する。そして必要プログラム一覧作成部１０２４は、抽出したプログラムのＩＤを初期化情報リスト１０２６の必要プログラム一覧欄１０２６８に格納する（Ｓ１５０３）。
【０１８７】
次いで、プログラム名検索部１０２１３は、初期化情報リスト１０２６を参照して、複製可能プログラム一覧欄１０２６６に格納された複製可能プログラムのＩＤが必要プログラム一覧欄１０２６８に含まれているか否か判断する（Ｓ１５０４）。
【０１８８】
プログラム名検索部１０２１３は、この判断で否定結果を得ると、複製可能プログラムであって必要プログラムではないこのＩＤのプログラムを不要プログラムと判断し、この不要プログラムのＩＤを不要プログラム一覧欄１０２６９に格納する（Ｓ１５０５）。
【０１８９】
これに対し、プログラム名検索部１０２１３は、ステップＳ１５０３の判断で肯定結果を得ると、必要プログラム一覧欄１０２６８に格納された必要プログラムのＩＤが複製可能プログラム一覧欄１０２６６に含まれるか否か判断する（Ｓ１５０６）。
【０１９０】
プログラム名検索部１０２１３は、この判断で否定結果を得ると、必要プログラムであって複製可能プログラムではないこのＩＤのプログラムを不足プログラムと判断し、この不足プログラムのＩＤを不足プログラム一覧欄１０２６５に格納する（Ｓ１５０７）。
【０１９１】
これに対し、プログラム名検索部１０２１３は、ステップＳ１５０６の判断で肯定結果を得ると、ステップＳ１５０１において検索結果リスト１０２５及び初期化情報リスト１０２６に新たに作成した全ての行について、上述してきたステップＳ１５０２〜Ｓ１５０７までの処理を行ったか否か判断する（Ｓ１５０８）。
【０１９２】
プログラム名検索部１０２１３は、この判断で肯定結果を得ると、本処理を終了する。これに対し、プログラム名検索部１０２１３は、この判断で否定結果を得ると、他の行についても上述してきたステップＳ１５０２〜Ｓ１５０７の処理を行い、全ての行について上述のステップＳ１５０２〜Ｓ１５０７の処理を終えると、本処理を終了する。
【０１９３】
複製元仮想計算機検索部１０２１により、検索結果リスト１０２５及び初期化情報リスト１０２６の他の欄に各種情報を格納する処理については、上述した図１５〜図１８の処理と同様であるため、ここでの説明は省略する。
【０１９４】
以上の処理により（図２０及び図１５〜図１８参照）、検索結果リスト１０２５及び初期化情報リスト１０２６の各欄に各種情報を格納することができる。よって複製元仮想計算機検索部１０２１は、図１３のプログラム名検索画面Ｍ１３０１の検索ボタンＭ１３０３が押下された場合、検索結果リスト１０２５及び初期化情報リスト１０２６の各欄に格納した各種情報に基づいて、検索結果を検索結果表示フィールドＭ１３０４に表示することができる。
【０１９５】
図２１は、複製仮想計算機環境初期化部１０２３１の仮想計算機データ変更部１０２３１３により行われるデータ変更処理の処理手順を示す。複製仮想計算機環境初期化部１０２３１は、図１１の用途検索画面Ｍ１１０１、図１２のユーザ名組織名検索画面Ｍ１２０１又は図１３のプログラム名検索画面Ｍ１３０１の画面において、複製元の仮想計算機２０２１１が選択され、新規の仮想計算機２０２１１Ａの仮想計算機名、ユーザ名、組織名及び用途が入力された後、仮想計算機複製初期化ボタンＭ１１０７、Ｍ１２０７又はＭ１３０６が押下されると、複製元の仮想計算機２０２１１を複製するとともに、複製した新規の仮想計算機２０２１１Ａに含まれるユーザ固有データＭ１００３、組織固有データＭ１００４及びマシン固有データＭ１００５の削除又は変更を仮想計算機データ変更部１０２３１３に指示する。仮想計算機データ変更部１０２３１３は、複製仮想計算機環境初期化部１０２３１からの削除又は変更指示を受け付けると、この図２０に示す処理手順に従って、複製直後の新規の仮想計算機２０２１１Ａに格納されているユーザ固有データＭ１００３、組織固有データＭ１００４及びマシン固有データＭ１００５の削除又は変更する処理を実行する。
【０１９６】
まず、仮想計算機データ変更部１０２３１３は、初期化情報リスト１０２６の利用プログラム一覧欄１０２６２及びユーザ固有データ管理テーブル１０３０５のプログラムＩＤ欄１０３０５１を参照して、利用プログラム一覧欄１０２６２に格納されているＩＤとプログラムＩＤ欄１０３０５１に格納されているＩＤとが一致する行をユーザ固有データ管理テーブル１０３０５から抽出する。同様に、仮想計算機データ変更部１０２３１３は、初期化情報リスト１０２６の利用プログラム一覧欄１０２６２及び組織固有データ管理テーブル１０３０６のプログラムＩＤ欄１０３０６１を参照して、ＩＤが一致する行を組織固有データ管理テーブル１０３０６から抽出する。また同様に、仮想計算機データ変更部１０２３１３は、初期化情報リスト１０２６の利用プログラム一覧欄１０２６２及びマシン固有データ管理テーブル１０３０７のプログラムＩＤ欄１０３０７１を参照して、ＩＤが一致する行をマシン固有データ管理テーブル１０３０７から抽出する。そして仮想計算機データ変更部１０２３１３は、ユーザ固有データの削除、組織固有データの変更及びマシン固有データの変更を行うため、ユーザ固有データ管理テーブル１０３０５、組織固有データ管理テーブル１０３０６及びマシン固有データ管理テーブル１０３０７からそれぞれ抽出した行を参照し、ユーザ固有データ、組織固有データ及びマシン固有データのデータ形式がディレクトリ又はファイルであるか、又はファイルの一部であるかを判断する（Ｓ１６０１）。
【０１９７】
仮想計算機データ変更部１０２３１３は、ステップＳ１６０１においてデータ形式がディレクトリ又はファイルであるとの判断結果を得ると、ユーザ固有データ管理テーブル１０３０５、組織固有データ管理テーブル１０３０６及びマシン固有データ管理テーブル１０３０７の各保管場所欄１０３０５４、１０３０６４及び１０３０７４を参照し、新規の仮想計算機２０２１１Ａのディレクトリ又はファイルを削除又は変更して（Ｓ１６０２）、本処理を終了する。
【０１９８】
これに対し、仮想計算機データ変更部１０２３１３は、ステップＳ１６０１の判断においてデータ形式がファイルの一部であるとの判断結果を得ると、ユーザ固有データ管理テーブル１０３０５、組織固有データ管理テーブル１０３０６及びマシン固有データ管理テーブル１０３０７の各保管場所欄１０３０５４、１０３０６４及び１０３０７４と、各記述欄１０３０５５、１０３０６５及び１０３０７５とを参照し、新規の仮想計算機２０２１１Ａのファイル内の記述を削除又は変更して（Ｓ１６０３）、本処理を終了する。
【０１９９】
次に、複製仮想計算機環境初期化部１０２３１のプログラム削除部１０２３１２により行われるプログラム削除処理について説明する。複製仮想計算機環境初期化部１０２３１は、図１１の用途検索画面Ｍ１１０１、図１２のユーザ名組織名検索画面Ｍ１２０１又は図１３のプログラム名検索画面Ｍ１３０１の画面において、複製元の仮想計算機２０２１１が選択され、新規の仮想計算機２０２１１Ａの仮想計算機名、ユーザ名、組織名及び用途が入力された後、仮想計算機複製初期化ボタンＭ１１０７、Ｍ１２０７又はＭ１３０６が押下されると、複製元の仮想計算機２０２１１を複製するとともに、複製した新規の仮想計算機２０２１１Ａに含まれるプログラムのうち、ライセンス上利用不可能のプログラム及びユーザが要求したプログラムを動作させるために不要なプログラムについてプログラム削除処理の実行をプログラム削除部１０２３１２に指示する。プログラム削除部１０２３１２は、複製仮想計算機環境初期化部１０２３１からのプログラム削除処理の実行指示を受け付けると、以下に説明する処理手順に従って、複製直後の新規の仮想計算機２０２１１Ａに格納されているプログラムを削除する処理を実行する。
【０２００】
まず、プログラム削除部１０２３１２は、複製した新規の仮想計算機２０２１１Ａに関連付けられている初期化情報リスト１０２６を参照して、複製不可プログラム一覧欄１０２６７に格納されているＩＤのプログラム及び不要プログラム一覧欄１０２６９に格納されているＩＤのプログラムを複製した新規の仮想計算機２０２１１Ａから削除する。
【０２０１】
また、プログラム削除部１０２３１２は、利用プログラム一覧欄１０２６２に格納されているＩＤのプログラムのうち、複製不可プログラム一覧欄１０２６７に格納されているＩＤのプログラム及び不要プログラム一覧欄１０２６９に格納されているＩＤのプログラムを初期化情報リスト１０２６から削除する。
【０２０２】
次に、複製仮想計算機環境初期化部１０２３１のプログラム追加部１０２３１１により行われるプログラム追加処理について説明する。複製仮想計算機環境初期化部１０２３１は、図１１の用途検索画面Ｍ１１０１、図１２のユーザ名組織名検索画面Ｍ１２０１又は図１３のプログラム名検索画面Ｍ１３０１の画面において、複製元の仮想計算機２０２１１が選択され、新規の仮想計算機２０２１１Ａの仮想計算機名、ユーザ名、組織名及び用途が入力された後、仮想計算機複製初期化ボタンＭ１１０７、Ｍ１２０７又はＭ１３０６が押下されると、複製元の仮想計算機２０２１１を複製するとともに、複製した新規の仮想計算機２０２１１Ａに含まれるプログラムのうち、ユーザが要求したプログラムを動作させるために必要なプログラムについてプログラム追加処理の実行をプログラム追加部１０２３１１に指示する。プログラム追加部１０２３１１は、複製仮想計算機環境初期化部１０２３１からのプログラム追加処理の実行指示を受け付けると、以下に説明する処理手順に従って、複製直後の新規の仮想計算機２０２１１Ａに格納されているプログラムの追加処理を実行する。
【０２０３】
まず、プログラム追加部１０２３１１は、プログラム管理テーブル１０３０１のＩＤ欄１０３０１１及び新規の仮想計算機２０２１１Ａに関連付けされた初期化情報リスト１０２６の不足プログラム一覧欄１０２６５を参照して、一致する行をプログラム管理テーブル１０３０１から抽出する。
【０２０４】
次いで、プログラム追加部１０２３１１は、抽出した行の保管場所欄１０３０１５を参照して、保管場所欄１０３０１５に格納されている保管場所にある全てのファイルを新規の仮想計算機２０２１１Ａに追加する。
【０２０５】
次いで、プログラム追加部１０２３１１は、抽出した行のセットアッププログラム名欄１０３０１６を参照して、セットアッププログラム名欄１０３０１６に格納されているセットアップ名のプログラムを新規の仮想計算機２０２１１Ａにおいて実行する。
【０２０６】
また、プログラム追加部１０２３１１は、初期化情報リスト１０２６の不足プログラム一覧欄１０２６５に格納されているプログラムのＩＤを削除するとともに、利用プログラム一覧欄１０２６２に削除したＩＤを追加する。
【０２０７】
以上の処理により、プログラム追加部１０２３１１は、新規の仮想計算機２０２１１Ａにプログラムを追加することができる。
【０２０８】
最後に、複製仮想計算機提供部１０２３は、仮想計算機イメージ管理テーブル１０３０２及び利用プログラム管理テーブル１０３０３に複製した新規の仮想計算機２０２１１Ａの情報を反映する。具体的に複製仮想計算機提供部１０２３は、次に述べる処理を実行する。
【０２０９】
まず、複製仮想計算機提供部１０２３は、仮想計算機イメージ管理テーブル１０３０２に新たに行を作成し、作成した新たな行の仮想計算機名欄１０３０２１、ユーザ名欄１０３０２２、組織名欄１０３０２３、ＯＳ名欄１０３０２４及び用途欄１０３０２５の各欄に、複製及び初期化した新規の仮想計算機２０２１１Ａの仮想計算機名、ユーザ名、組織名、ＯＳ名及び用途を格納する。
【０２１０】
次いで、複製仮想計算機提供部１０２３は、利用プログラム管理テーブル１０３０３に新たに行を作成し、作成した新たな行の仮想計算機名欄１０３０３１及びプログラムＩＤ一欄１０３０３２の各欄に、複製及び初期化した新規の仮想計算機２０２１１Ａの仮想計算機名及び利用プログラムのＩＤを格納する。なお利用プログラムのＩＤを格納する際、複製仮想計算機提供部１０２３は、利用プログラム一覧欄１０２６２を参照する。
【０２１１】
以上の処理により、複製元の仮想計算機２０２１１の複製及び初期化が完了し、ユーザに新規の仮想計算機２０２１１を提供することが可能な状態となる。複製仮想計算機提供部１０２３は、新規の仮想計算機２０２１１Ａの作成が完了したことをユーザに通知する。
【０２１２】
以上のように、第１の実施の形態による仮想計算機提供システム１Ａによれば、ユーザから新規の仮想計算機２０２１１Ａが要求された場合、仮想計算機提供システム１Ａにおいて他のユーザに現在提供中の仮想計算機２０２１１からユーザの要求を満たし得る仮想計算機２０２１１を検索することができる。そして検索した仮想計算機２０２１１を複製及び初期化することにより、ユーザに新規の仮想計算機２０２１１Ａを迅速に提供することができる。
【０２１３】
（２）第２の実施の形態
第２の実施の形態では、他のユーザに提供中の仮想計算機を複製及び初期化するだけでなく、複製元の仮想計算機として予め用意しておいた複製専用の仮想計算機テンプレートを複製及び初期化することによっても、新規の仮想計算機を提供し得る仮想計算機提供システム１Ｂについて説明する。
【０２１４】
図２２は、第２の実施の形態における仮想計算機提供システム１Ｂの論理構成を示す。この図２１に示した仮想計算機提供システム１Ｂは、複製仮想計算機環境初期化部１０２３１Ａがテンプレート対応版である点を除いて、第１の実施の形態における仮想計算機提供システム１Ａと同様に構成されている。
【０２１５】
複製仮想計算機環境初期化部１０２３１Ａは、仮想計算機テンプレートを複製及び初期化する。仮想計算機テンプレートは、その中身が書き換えられることがなく、仮想計算機テンプレートにはユーザ固有データが含まれていない。そのため複製仮想計算機環境初期化部１０２３１Ａは、初期化に際し、ユーザ固有データＭ１００３の削除処理を行わない。
【０２１６】
図２３は、第２の実施の形態における仮想計算機ホスト装置２０の論理構成を示す。この図２３に示した仮想計算機ホスト装置２０は、二次記憶装置２０３に仮想計算機テンプレート２０３２を備えて構成される点を除いて、第１の実施の形態における仮想計算機ホスト装置２０と同様に構成されている。
【０２１７】
仮想計算機ホスト装置２０は、複製仮想計算機環境初期化部１０２３１Ａにより仮想計算機テンプレート２０３２を複製し、仮想計算機イメージ２０３１を作成する。
【０２１８】
その他、各種テーブル（図３〜図９参照）、新規の仮想計算機２０２１１Ａを提供する流れの概要（図１０参照）、画面構成（図１１〜図１３参照）及び処理手順（図１４〜図２０参照）については、第１の実施の形態と同様であるため、ここでの説明は省略する。
【０２１９】
以上のように、第２の実施の形態による仮想計算機提供システム１Ｂによれば、ユーザから新規の仮想計算機２０２１１Ａが要求された場合、仮想計算機提供システム１Ｂにおいて他のユーザに現在提供中の仮想計算機２０２１１及び仮想計算機テンプレート２０３２からユーザの要求を満たし得る仮想計算機２０２１１を検索することができる。そして、検索した仮想計算機２０２１１又は仮想計算機テンプレート２０３２を複製及び初期化することにより、ユーザに新規の仮想計算機２０２１１Ａを迅速に提供することができる。
【０２２０】
（３）第３の実施の形態
第３の実施の形態では、プログラムの依存関係を参照して、複製した新規の仮想計算機２０２１１Ａを複数の仮想計算機２０２１１で構成されるシステムに追加し得る仮想計算機提供システム１Ｃについて説明する。以下、複数の仮想計算機２０２１１から構成される仮想計算機提供システム１Ｃの構成をここでは特に「複数仮想計算機構成」と呼ぶ。
【０２２１】
図２４は、第３の実施の形態における仮想計算機提供システム１Ｃの論理構成を示す。この図２４に示した仮想計算機提供システム１Ｃは、複製仮想計算機環境初期化部１０２３１Ｂが複数仮想計算機構成対応版であり、接続仮想計算機決定部１０２３１４、接続設定変更部１０２３２及び影響仮想計算機抽出部１０２３３を備えて構成される点を除いて、第１の実施の形態における仮想計算機提供システム１Ａと同様に構成されている。
【０２２２】
接続仮想計算機決定部１０２３１４は、複製した新規の仮想計算機２０２１１Ａに不足しているプログラムを含む仮想計算機２０２１１を複数仮想計算機構成内において検索する。
【０２２３】
影響仮想計算機抽出部１０２３３は、複製した新規の仮想計算機２０２１１Ａに含まれるプログラムを必要としている仮想計算機２０２１１を複数仮想計算機構成内において検索する。
【０２２４】
接続設定変更部１０２３２は、接続仮想計算機決定部１０２３１４又は影響仮想計算機抽出部１０２３３により検索結果として得られた仮想計算機２０２１１を複数仮想計算機構成内において接続するプログラム設定変更処理を行う。
【０２２５】
図２５は、第３の実施の形態における二次記憶装置１０３の論理構成を示す。この図２５に示した二次記憶装置１０３は、複数仮想計算機構成テーブル１０３０９、接続設定値テーブル１０３１０及び接続設定項目テーブル１０３１１を備えて構成される点を除いて、第１の実施の形態における二次記憶装置１０３と同様に構成されている。
【０２２６】
図２６Ａは、複数仮想計算機構成テーブル１０３０９の概念図を示す。複数仮想計算機構成テーブル１０３０９は、仮想計算機提供システム１Ｃにおいて複数の仮想計算機２０２１１により構成される複数仮想計算機構成を管理するためのテーブルであり、影響仮想計算機抽出部１０２３３及び接続仮想計算機決定部１０２３１４により、複数仮想計算機構成内の仮想計算機２０２１１を取得する場合に用いられる。
【０２２７】
複数仮想計算機構成テーブル１０３０９は、複数仮想計算機構成名欄１０３０９１及び仮想計算機一覧欄１０３０９２から構成される。
【０２２８】
複数仮想計算機構成名欄１０３０９１には、仮想計算機提供システム１Ｃにより提供される複数仮想計算機構成の複数仮想計算機構成名が格納される。
【０２２９】
仮想計算機一覧欄１０３０９２には、複数仮想計算機構成を構成する仮想計算機２０２１１の仮想計算機名が格納される。
【０２３０】
従って、図２６Ａの場合、例えば「ｇｒｐ０」という複数仮想計算機構成名の複数仮想計算機構成は、「ＶＭ０」という仮想計算機名の仮想計算機２０２１１のみから構成されていることが示されている。一方「ｇｒｐ３」という複数仮想計算機構成名の複数仮想計算機構成は、「ＶＭ３、ＶＭ４」という２つの仮想計算機名の仮想計算機２０２１１から構成されていることが示されている。
【０２３１】
図２６Ｂは、接続設定値テーブル１０３１０の概念図を示す。接続設定値テーブル１０３１０は、接続先のプログラムに接続するための接続設定値を管理するためのテーブルであり、接続設定変更部１０２３２により、接続先のプログラムに接続するための設定値を取得する場合に用いられる。
【０２３２】
接続設定値テーブル１０３１０は、仮想計算機名欄１０３１０１、プログラムＩＤ欄１０３１０２、接続パラメタ欄１０３１０３及び接続パラメタ値欄１０３１０４から構成される。
【０２３３】
仮想計算機名欄１０３１０１には、接続先の仮想計算機２０２１１の仮想計算機名が格納される。プログラムＩＤ欄１０３１０２には、接続先のプログラムのＩＤが格納される。
【０２３４】
接続パラメタ欄１０３１０３には、プログラムＩＤ欄１０３１０２に格納されているＩＤのプログラムに接続するために用いるパラメタが格納される。接続パラメタ値欄１０３１０４には、接続パラメタ欄１０３１０３に格納されているパラメタに設定する値が格納される。
【０２３５】
従って、図２６Ｂの場合、例えば「ＶＭ３」という仮想計算機名の仮想計算機２０２１１に含まれる「ＰＧ７」というＩＤのプログラムに接続するには、「＄ｈｏｓｔｎａｍｅ＄」というパラメタが用いられ、このパラメタには「１９２．１６８.１１．４」という値が設定されていることが示されている。
【０２３６】
図２６Ｃは、接続設定項目テーブル１０３１１の概念図を示す。接続設定項目テーブル１０３１１は、接続先のプログラムに接続するために変更が必要な接続元のプログラムの設定項目を管理するためのテーブルであり、接続設定変更部１０２３２により、接続設定を変更するファイル及び記述を取得する場合に用いられる。
【０２３７】
接続設定項目テーブル１０３１１は、プログラムＩＤ欄１０３１１１、接続先プログラムＩＤ欄１０３１１２、ファイル欄１０３１１３及び記述欄１０３１１４から構成される。
【０２３８】
プログラムＩＤ欄１０３１１１には、接続元のプログラムのＩＤが格納される。接続先プログラムＩＤ欄１０３１１２には、接続先のプログラムのＩＤが格納される。
【０２３９】
ファイル欄１０３１１３には、接続先のプログラムに接続するために設定を変更する必要がある接続元のプログラムのファイル名が格納される。記述欄１０３１１４には、ファイル欄１０３１１３に格納されたファイル名のファイル内における記述が格納される。
【０２４０】
従って、図２６Ｃの場合、例えば「ＰＧ１０」というＩＤの接続元のプログラムと「ＰＧ７」というＩＤの接続先のプログラムとを接続するには、「ｃｏｎｆｉｇ／ｄｂ.ｘｍｌ」というファイル名のファイルの「ｈｏｓｔ：＄ｈｏｓｔｎａｍｅ＄」という記述を接続先の仮想計算機２０２１１に合わせたものに変更する必要があることが示されている。
【０２４１】
その他、各種テーブル（図４〜図９参照）については、第１の実施の形態と同様であるため、ここでの説明は省略する。
【０２４２】
図２７は、複数仮想計算機構成へ仮想計算機の複製を組み入れる際の処理の流れの概念図を示す。ユーザＢの要求により、新規の仮想計算機２０２１１Ａを作成する流れの概要（図１０参照）については、第１の実施の形態と同様であるため、ここでの説明は省略する。
【０２４３】
新規の仮想計算機２０２１１Ａの作成が完了すると、複製仮想計算機提供部１０２３は、ユーザＢが利用中の複数仮想計算機構成Ｂ(２０２１１２)に組み入れるため、仮想計算機２０２１１Ａを既存の仮想計算機Ｂ１(２０２１１Ｄ)及びＢ２(２０２１１Ｅ)と接続する。
【０２４４】
まず、複製仮想計算機提供部１０２３は、接続仮想計算機決定部１０２３１４に仮想計算機２０２１１Ａのプログラムと接続する仮想計算機を発見するよう指示する。具体的には、仮想計算機２０２１１Ａのプログラムの動作に必要なプログラムを含む仮想計算機を発見するよう指示する。その結果、仮想計算機Ｂ１(２０２１１Ｄ)を発見すると、接続設定変更部１０２３２により、仮想計算機２０２１１Ａのプログラムの設定を仮想計算機Ｂ１(２０２１１Ｄ)のプログラムに接続できるよう変更する。
【０２４５】
次に、複製仮想計算機提供部１０２３は、影響仮想計算機抽出部１０２３３に仮想計算機２０２１１Ａに接続する仮想計算機を発見するよう指示する。具体的には、複数仮想計算機構成Ｂの仮想計算機のうち、仮想計算機２０２１１Ａが含むプログラムを必要としているプログラムを含む仮想計算機を発見するよう指示する。その結果、仮想計算機Ｂ２(２０２１１Ｅ)を発見すると接続設定変更部１０２３２により、仮想計算機Ｂ２(２０２１１Ｅ)のプログラムの設定を仮想計算機２０２１１Ａのプログラムに接続できるよう変更する。
【０２４６】
以上の処理により、複製後の新規の仮想計算機２０２１１ＡをユーザＢの使用している複数仮想計算機構成Ｂ(２０２１１２)に組み入れることができる。
【０２４７】
図２８は、第３の実施の形態におけるプログラム名検索画面Ｍ１３０１の画面構成図を示す。この図２８に示したプログラム名検索画面Ｍ１３０１は、複数仮想計算機構成への追加設定を選択するためのラジオボタンＭ２２１１〜Ｍ２２１８及び複製した新規の仮想計算機２０２１１Ａに不足している不足プログラムについての対処方法を選択するためのラジオボタンＭ２２１９〜Ｍ２２２１を備えて構成される点を除いて、第１の実施の形態におけるプログラム名検索画面Ｍ１３０１と同様に構成されている。
【０２４８】
複製仮想計算機提供部１０２３は、このプログラム名検索画面Ｍ１３０１において、ラジオボタンＭ２２１１〜Ｍ２２１８により複数仮想計算機構成への追加設定が選択され、ラジオボタンＭ２２１９〜Ｍ２２２１により不足プログラムについての対処方法が選択された後、仮想計算機複製初期化ボタン１３０６が押下されると、選択されたラジオボタンの組み合わせに応じて、次に述べる処理を実行する。なおラジオボタンＭ２２１１が選択された場合、ラジオボタンＭ２２２０は選択不可となる。
【０２４９】
ラジオボタンＭ２２１１及びラジオボタンＭ２２１９の組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については新規に複数仮想計算機構成を作成することが選択され、不足プログラムについての対処方法については複製後の新規の仮想計算機２０２１１Ａに不足プログラムを追加することが選択された場合、複製仮想計算機提供部１０２３は、第１の実施の形態における複製仮想計算機提供部１０２３と同様の処理を実行する。
【０２５０】
ラジオボタンＭ２２１１と、ラジオボタンＭ２２２１との組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については新規に複数仮想計算機構成を作成することが選択され、不足プログラムについての対処方法については何もしないことが選択された場合、複製仮想計算機提供部１０２３は、第１の実施の形態における複製仮想計算機提供部１０２３の処理のうち、プログラム追加部１０２３１１による処理以外を実行する。
【０２５１】
ラジオボタンＭ２２１２〜Ｍ２２１８のうち何れか一のラジオボタンと、ラジオボタンＭ２２１９との組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については何れかの複数仮想計算機構成に新規の仮想計算機２０２１１Ａを追加することが選択され、不足プログラムについての対処方法については複製後の新規の仮想計算機２０２１１Ａに不足プログラムを追加することが選択された場合、複製仮想計算機提供部１０２３は、第１の実施の形態における複製仮想計算機提供部１０２３と同様の処理を実行し、新規の仮想計算機２０２１１Ａの作成を完了した後、複数仮想計算機構成の他の仮想計算機２０２１１に含まれるプログラムから、新規の仮想計算機２０２１１Ａのプログラムに接続するための接続設定処理を実行する。
【０２５２】
ラジオボタンＭ２２１２〜Ｍ２２１８のうち何れか一のラジオボタンと、ラジオボタンＭ２２２０との組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については何れかの複数仮想計算機構成に新規の仮想計算機２０２１１Ａを追加することが選択され、不足プログラムについての対処方法については複数仮想計算機構成内仮想計算機２０２１１のプログラムを利用することが選択された場合、複製仮想計算機提供部１０２３は、第１の実施の形態における複製仮想計算機提供部１０２３の処理のうち、プログラム追加部１０２３１１による処理以外を実行した後、複製した新規の仮想計算機２０２１１Ａに含まれるプログラムから、複数仮想計算機構成の他の仮想計算機２０２１１のプログラムに接続する接続設定処理を実行する。
【０２５３】
ラジオボタンＭ２２１２〜Ｍ２２１８のうち何れか一のラジオボタンと、ラジオボタンＭ２２２０との組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については何れかの複数仮想計算機構成に新規の仮想計算機２０２１１Ａを追加することが選択され、不足プログラムについての対処方法については複数仮想計算機構成内仮想計算機２０２１１のプログラムを利用することが選択された場合、複製仮想計算機提供部１０２３は、第１の実施の形態における複製仮想計算機提供部１０２３の処理のうち、プログラム追加部１０２３１１による処理以外を実行した後、複製した新規の仮想計算機２０２１１Ａに含まれるプログラムから、複数仮想計算機構成の他の仮想計算機２０２１１のプログラムに接続する接続設定処理を実行する。
【０２５４】
ラジオボタンＭ２２１２〜Ｍ２２１８のうち何れか一のラジオボタンと、ラジオボタンＭ２２２１との組み合わせが選択された場合、すなわち複数仮想計算機構成への追加設定については何れかの複数仮想計算機構成に新規の仮想計算機２０２１１Ａを追加することが選択され、不足プログラムについての対処方法については何もしないことが選択された場合、複製仮想計算機提供部１０２３は、第１の実施の形態における複製仮想計算機提供部１０２３の処理のうち、プログラム追加部１０２３１１による処理以外を実行する。
【０２５５】
図２９は、複製仮想計算機提供部１０２３からの実行指示を受け付けた影響仮想計算機抽出部１０２３３により行われる影響仮想計算機抽出処理の処理手順を示す。複製仮想計算機提供部１０２３は、複数仮想計算機構成内の仮想計算機２０２１１に含まれるプログラムと、複製した新規の仮想計算機２０２１１Ａに含まれるプログラムとを接続するための接続設定処理において、影響仮想計算機抽出部１０２３３に影響仮想計算機抽出処理の実行を指示する。影響仮想計算機抽出部１０２３３は、複製仮想計算機提供部１０２３からの影響仮想計算機抽出処理の実行指示を受け付けると、この図２９に示す抽出処理に従って、複製した新規の仮想計算機２０２１１Ａに含まれているプログラムが必要とするプログラムを含む仮想計算機２０２１１を複数仮想計算機構成から抽出する処理を実行する。
【０２５６】
まず、影響仮想計算機抽出部１０２３３は、複数仮想計算機構成テーブル１０３０９（図２６Ａ参照）を参照して、複数仮想計算機構成名欄１０３０９１に格納されている複数仮想計算機構成名と、第３の実施の形態におけるプログラム名検索画面Ｍ１３０１内のラジオボタンＭ２２１２〜Ｍ２２１８にて選択された複数仮想計算機構成名とが一致する行を複数仮想計算機構成テーブル１０３０９から抽出する。そして影響仮想計算機抽出部１０２３３は、抽出した行の仮想計算機一覧欄１０３０９２に格納されている仮想計算機名を取得する（Ｓ２３０１）。
【０２５７】
次いで、影響仮想計算機抽出部１０２３３は、利用プログラム管理テーブル１０３０３（図６Ｂ参照）を参照して、仮想計算機名欄１０３０３１に格納されている仮想計算機名と、ステップＳ２３０１で取得した仮想計算機名とが一致する行を利用プログラム管理テーブル１０３０３から抽出する。そして影響仮想計算機抽出部１０２３３は、抽出した行のプログラムＩＤ一覧欄１０３０３２に格納されているプログラムのＩＤを取得する（Ｓ２３０２）。
【０２５８】
次いで、影響仮想計算機抽出部１０２３３は、必要プログラム一覧作成部１０２４を実行する。必要プログラム一覧作成部１０２４は、影響仮想計算機抽出部１０２３３からの実行指示を受け付けると、依存関係管理テーブル１０３０８（図８参照）及びプログラム管理テーブル１０３０１（図３参照）を参照して、ステップＳ２３０２で取得したプログラムのＩＤ及びそのプログラムと依存関係にあるプログラムのＩＤを抽出し、抽出したＩＤを初期化情報リスト１０２６（図４Ｂ参照）の必要プログラム一覧欄１０２６８に格納する（Ｓ２３０３）。
【０２５９】
次いで、影響仮想計算機抽出部１０２３３は、ステップＳ２３０２で取得した複数仮想計算機構成内における保有プログラムのＩＤと、ステップＳ２３０３で取得した必要プログラムのＩＤとの差分を算出し、算出した差分を初期化情報リスト１０２６の不足プログラム一覧欄１０２６５に格納する（Ｓ２３０４）。
【０２６０】
次いで、影響仮想計算機抽出部１０２３３は、初期化情報リスト１０２６の利用プログラム一覧欄１０２６２に格納されているプログラムのＩＤと、ステップＳ２３０４で格納した不足プログラム一覧欄１０２６５に格納されているプログラムのＩＤとを比較し、重複するプログラムがあるか否か判断する（Ｓ２３０５）。
【０２６１】
影響仮想計算機抽出部１０２３３は、この判断で否定結果を得ると、新規の仮想計算機２０２１１Ａにおいて利用するプログラムのうち、不足プログラムはないものと判断して、ステップＳ２３０９に移行する。
【０２６２】
これに対し、影響仮想計算機抽出部１０２３３は、ステップＳ２３０５の判断で肯定結果を得ると、新規の仮想計算機２０２１１Ａにおいて利用するプログラムのうち、不足プログラムがあるものと判断して、利用プログラムであり不足プログラムであるプログラムを接続先のプログラムとして設定する（Ｓ２３０６）。
【０２６３】
次いで、影響仮想計算機抽出部１０２３３は、プログラム管理テーブル１０３０１（図５参照）を参照して、ＩＤ欄１０３０１１に格納されているＩＤと、ステップＳ２３０６で設定した接続先のプログラムのＩＤとが一致する行をプログラム管理テーブル１０３０１から抽出する。そして影響仮想計算機抽出部１０２３３は、抽出した行のプログラム名欄１０３０１２、バージョン欄１０３０１３及びアーキテクチャ欄１０３０１４から、それぞれプログラム名、バージョン条件及びアーキテクチャの情報を取得する。そして影響仮想計算機抽出部１０２３３は、依存関係管理テーブル１０３０８を参照して、依存プログラム名欄１０３０８３に格納されているプログラム名と取得したプログラム名とが一致し、依存バージョン欄１０３０８４に格納されているバージョン条件が取得したバージョン条件を満たし、依存アーキテクチャ欄１０３０８５に格納されているアーキテクチャと取得したアーキテクチャとが一致する行を依存関係管理テーブル１０３０８から抽出する。そして影響仮想計算機抽出部１０２３３は、抽出した行のプログラムＩＤ欄１０３０８２に格納されているＩＤのプログラムを接続元のプログラムとして設定する（Ｓ２３０７）。
【０２６４】
次いで、影響仮想計算機抽出部１０２３３は、接続設定変更部１０２３２に接続処理の実行を指示する。接続設定変更部１０２３２は、影響仮想計算機抽出部１０２３３からの実行指示を受け付けると、接続元の仮想計算機２０２１１に含まれる接続元のプログラムの設定を書き換えることにより、接続元のプログラムと、接続先の仮想計算機２０２１１Ａに含まれる接続先のプログラムとを接続する接続処理を実行する（Ｓ２３０８）。
【０２６５】
具体的には、まず接続設定変更部１０２３２は、影響仮想計算機抽出部１０２３３から接続元の仮想計算機２０２１１の仮想計算機名、接続元のプログラムのＩＤ、接続先の仮想計算機２０２１１Ａの仮想計算機名及び接続先のプログラムのＩＤを受け取る。
【０２６６】
次いで、接続設定変更部１０２３２は、接続設定値テーブル１０３１０（図２６Ｂ参照）を参照して、仮想計算機名欄１０３１０１及びプログラムＩＤ欄１０３１０２に格納されている仮想計算機名及びＩＤと、影響仮想計算機抽出部１０２３３から受け取った接続先の仮想計算機２０２１１Ａの仮想計算機名及び接続先のプログラムのＩＤとが一致する行を接続設定値テーブル１０３１０から抽出する。
【０２６７】
次いで、接続設定変更部１０２３２は、接続設定項目テーブル１０３１１（図２６Ｃ参照）を参照して、プログラムＩＤ欄１０３１１１に格納されている接続元のプログラムのＩＤ及び接続先プログラムＩＤ欄１０３１１２に格納されている接続先のプログラムのＩＤと、影響仮想計算機抽出部１０２３３から受け取った接続元の仮想計算機２０２１１に含まれる接続元のプログラムのＩＤ及び接続先の仮想計算機２０２１１Ａに含まれる接続先のプログラムのＩＤとが一致する行を接続設定項目テーブル１０３１１から抽出する。
【０２６８】
次いで、接続設定変更部１０２３２は、抽出した行の記述欄１０３１１４に格納されている文字列のうち、接続設定値テーブル１０３１０から抽出した行の接続パラメタ欄１０３１０３に格納されている文字列と一致する箇所の文字列を接続パラメタ値欄１０３１０４に格納されている接続パラメタ値に置き換えた文字列を、変数Ｓに一時的に保持する。
【０２６９】
また、接続設定変更部１０２３２は、抽出した行のファイル欄１０３１１３に格納されているファイル名の文字列のうち、記述欄１０３１１４に格納されている文字列と一致する箇所の文字列を、変数Ｓに保持した文字列に置き換える。
【０２７０】
以上のように、接続設定変更部１０２３２は、複数仮想計算機構成内の仮想計算機２０２１１に含まれるプログラムを複製した新規の仮想計算機２０２１１Ａに含まれるプログラムに接続することができる。
【０２７１】
図３０は、複製仮想計算機提供部１０２３からの実行指示を受け付けた接続仮想計算機決定部１０２３１４により行われる接続仮想計算機決定処理の処理手順を示す。複製仮想計算機提供部１０２３は、複製した新規の仮想計算機２０２１１Ａに含まれるプログラムと、複数仮想計算機構成の他の仮想計算機２０２１１に含まれるプログラムとを接続するための接続設定処理において、接続仮想計算機決定部１０２３１４に接続仮想計算機決定処理の実行を指示する。接続仮想計算機決定部１０２３１４は、複製仮想計算機提供部１０２３からの接続仮想計算機決定処理の実行指示を受け付けると、この図３０に示す決定処理に従って、複製した新規の仮想計算機２０２１１Ａの不足プログラムを含む仮想計算機を複数仮想計算機構成内の仮想計算機２０２１１から検索して接続する仮想計算機を決定する処理を実行する。
【０２７２】
まず、接続仮想計算機決定部１０２３１４は、複数仮想計算機構成テーブル１０３０９（図２６Ａ参照）を参照して、複数仮想計算機構成名欄１０３０９１に格納されている複数仮想計算機構成名と、第３の実施の形態におけるプログラム名検索画面Ｍ１３０１（図２８参照）において選択された複数仮想計算機構成の複数仮想計算機構成名とが一致する行を複数仮想計算機構成テーブル１０３０９から抽出する。そして接続仮想計算機決定部１０２３１４は、抽出した行の仮想計算機一覧欄１０３０９２に格納されている仮想計算機名を取得する（Ｓ２４０１）。
【０２７３】
次いで、接続仮想計算機決定部１０２３１４は、利用プログラム管理テーブル１０３０３（図６Ｂ参照）を参照して、仮想計算機名欄１０３０３１に格納されている仮想計算機名と、ステップＳ２４０１で取得した仮想計算機名とが一致する行を利用プログラム管理テーブル１０３０３から抽出する。そして接続仮想計算機決定部１０２３１４は、抽出した行のプログラムＩＤ一覧欄１０３０３２に格納されているプログラムのＩＤを取得し、取得したプログラムのＩＤと、複製した新規の仮想計算機２０２１１に関連付けられている初期化情報リスト１０２６の不足プログラム一覧欄１０２６５に格納されている不足プログラムのＩＤとを比較することにより、既存の仮想計算機２０２１１に含まれる利用プログラムのうち、新規の仮想計算機２０２１１Ａに不足しているプログラムが含まれるか否か判断する（Ｓ２４０２）。
【０２７４】
接続仮想計算機決定部１０２３１４は、この判断で否定結果を得ると、既存の仮想計算機２０２１１に含まれる利用プログラムのうち、新規の仮想計算機２０２１１Ａに不足しているプログラムは含まれないものと判断して、ステップＳ２４０６に移行する。
【０２７５】
これに対し、接続仮想計算機決定部１０２３１４は、ステップＳ２４０２の判断で肯定結果を得ると、既存の仮想計算機２０２１１に含まれる利用プログラムのうち、新規の仮想計算機２０２１１Ａに不足しているプログラムが含まれるものと判断して、その利用プログラムであり不足プログラムであるプログラムを接続先のプログラムとして設定する（Ｓ２４０３）。
【０２７６】
次いで、接続仮想計算機決定部１０２３１４は、プログラム管理テーブル１０３０１（図５参照）を参照して、ＩＤ欄１０３０１１に格納されているＩＤと、ステップＳ２４０３で設定した接続先のプログラムのＩＤとが一致する行をプログラム管理テーブル１０３０１から抽出する。そして接続仮想計算機決定部１０２３１４は、抽出した行のプログラム名欄１０３０１２、バージョン欄１０３０１３及びアーキテクチャ欄１０３０１４から、それぞれプログラム名、バージョン条件及びアーキテクチャの情報を取得する。そして接続仮想計算機決定部１０２３１４は、依存関係管理テーブル１０３０８を参照して、依存プログラム名欄１０３０８３に格納されているプログラム名と取得したプログラム名とが一致し、依存バージョン欄１０３０８４に格納されているバージョン条件が取得したバージョン条件を満たし、依存アーキテクチャ欄１０３０８５に格納されているアーキテクチャと取得したアーキテクチャとが一致する行を依存関係管理テーブル１０３０８から抽出する。そして接続仮想計算機決定部１０２３１４は、抽出した行のプログラムＩＤ欄１０３０８２に格納されているＩＤのプログラムを接続元のプログラムとして設定する（Ｓ２４０４）。
【０２７７】
次いで、接続仮想計算機決定部１０２３１４は、接続設定変更部１０２３２に接続処理の実行を指示する。接続設定変更部１０２３２は、接続仮想計算機決定部１０２３１４からの実行指示を受け付けると、接続元の仮想計算機２０２１１Ａに含まれる接続元のプログラムの設定を書き換えることにより、接続元のプログラムと、接続先の仮想計算機２０２１１に含まれる接続先のプログラムとを接続する接続処理を実行する（Ｓ２４０５）。
【０２７８】
接続設定変更部１０２３２により実行される接続処理については、図２９で説明した処理と同様であるため、ここでの説明は省略する。
【０２７９】
以上のように、接続設定変更部１０２３２は、複製した新規の仮想計算機２０２１１Ａに含まれるプログラムを複数仮想計算機構成内の仮想計算機２０２１１に含まれるプログラムに接続することができる。
【０２８０】
なお、本発明は必ずしも上述してきた第１〜第３の実施の形態に限定されるものではない。例えば本発明は、上述してきた全ての構成を備える必要はなく、第１〜第３の実施の形態における構成のうち、何れかの実施の形態における構成の一部について、他の実施の形態における構成を追加、削除又は置換してもよい。
【０２８１】
また、上述してきた第１〜第３の実施の形態における各構成、機能及び処理部等の一部又は全部を集積回路等のハードウェアにより実現してもよい。
【０２８２】
また、上述してきた第１〜第３の実施の形態における各構成、機能及び処理部等の一部又は全部をソフトウェアにより実現してもよい。この場合、各構成、機能及び処理部等を実現するプログラム、テーブル又はファイル等の情報は、メモリ、ハードディスク又はＳＳＤ（Solid State Drive）等の記録装置やＩＣカード、ＳＤカード又はＤＶＤ等の記録媒体に格納するとしてもよい。
【０２８３】
また、図示した制御線や情報線については、必ずしも製品上全ての制御線や情報線を示すものではなく、実際には殆ど全ての構成が相互に接続されているとしてもよい。
【産業上の利用可能性】
【０２８４】
本発明は、仮想計算機を複製及び初期化することにより新規の仮想計算機を提供する仮想計算機提供システム、仮想計算機提供方法及びプログラムに広く適用することができる。
【符号の説明】
【０２８５】
１Ａ、１Ｂ、１Ｃ  仮想計算機提供システム
１０              仮想計算機提供サービス管理サーバ装置
１０２１          複製元仮想計算機検索部
１０２１１        用途検索部
１０２１２        ユーザ名組織名検索部
１０２１３        プログラム名検索部
１０２１４        プログラムライセンス確認部
１０２３          複製仮想計算機提供部
１０２３１        複製仮想計算機環境初期化部
１０２３１１      プログラム追加部
１０２３１２      プログラム削除部
１０２３１３      仮想計算機データ変更部
１０２３１４      接続仮想計算機決定部
１０２３２        接続設定変更部
１０２３３        影響仮想計算機抽出部
１０２４          必要プログラム一覧作成部
１０３０１        プログラム管理テーブル
１０３０２        仮想計算機イメージ管理テーブル
１０３０３        利用プログラム管理テーブル
１０３０４        プログラムライセンス管理テーブル
１０３０８        依存関係管理テーブル
１０３１０        接続設定値テーブル
１０３１１        接続設定項目テーブル
【図１】
2013035134.tif 000003
【図２】
2013035134.tif 000004
【図３】
2013035134.tif 000005
【図４Ａ】
2013035134.tif 000006
【図４Ｂ】
2013035134.tif 000007
【図５】
2013035134.tif 000008
【図６Ａ】
2013035134.tif 000009
【図６Ｂ】
2013035134.tif 000010
【図７】
2013035134.tif 000011
【図８】
2013035134.tif 000012
【図９Ａ】
2013035134.tif 000013
【図９Ｂ】
2013035134.tif 000014
【図９Ｃ】
2013035134.tif 000015
【図１０】
2013035134.tif 000016
【図１１】
2013035134.tif 000017
【図１２】
2013035134.tif 000018
【図１３】
2013035134.tif 000019
【図１４】
2013035134.tif 000020
【図１５】
2013035134.tif 000021
【図１６】
2013035134.tif 000022
【図１７】
2013035134.tif 000023
【図１８】
2013035134.tif 000024
【図１９】
2013035134.tif 000025
【図２０】
2013035134.tif 000026
【図２１】
2013035134.tif 000027
【図２２】
2013035134.tif 000028
【図２３】
2013035134.tif 000029
【図２４】
2013035134.tif 000030
【図２５】
2013035134.tif 000031
【図２６Ａ】
2013035134.tif 000032
【図２６Ｂ】
2013035134.tif 000033
【図２６Ｃ】
2013035134.tif 000034
【図２７】
2013035134.tif 000035
【図２８】
2013035134.tif 000036
【図２９】
2013035134.tif 000037
【図３０】
2013035134.tif 000038
【国際調査報告】
2013035134.tif 000039
2013035134.tif 000040
2013035134.tif 000041
2013035134.tif 000042
2013035134.tif 000043
2013035134.tif 000044