(57)【要約】【課題】別の仮想マシンのサービスに依存する仮想マシンを配備すること。【解決手段】情報処理装置１０は、第１の仮想マシンがサービスを依存する第２の仮想マシンを特定する。情報処理装置１０は、アプリケーションごとに当該アプリケーションに対応する仮想マシンのディスクイメージの作成に用いる他の仮想マシンのパラメータ種別であって他の仮想マシンにリソースが割り当てられる場合に付与されるパラメータ種別が対応付けられたアプリ情報を参照して、第１の仮想マシン及び第２の仮想マシン間のポインタを設定する。情報処理装置１０は、ポインタにしたがって第１の仮想マシンまたは第２の仮想マシンのリソースの割り当て時に設定されるパラメータから第２の仮想マシンまたは第１の仮想マシンのディスクイメージを作成することによって第１の仮想マシンおよび第２の仮想マシンを配備する。【選択図】図２
2015090692.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
第１の仮想マシンがサービスを依存する第２の仮想マシンを特定し、
アプリケーションごとに当該アプリケーションに対応する仮想マシンのディスクイメージの作成に用いる他の仮想マシンのパラメータ種別であって他の仮想マシンにリソースが割り当てられる場合に付与されるパラメータ種別が対応付けられたアプリ情報を参照して、前記第１の仮想マシン及び前記第２の仮想マシン間のポインタを設定し、
前記ポインタにしたがって前記第１の仮想マシンまたは前記第２の仮想マシンのリソースの割り当て時に設定されるパラメータから前記第２の仮想マシンまたは前記第１の仮想マシンのディスクイメージを作成することによって前記第１の仮想マシンおよび前記第２の仮想マシンを配備する
処理を実行することを特徴とする仮想マシン配備方法。
【請求項２】
前記特定する処理として、
仮想マシンと当該仮想マシンがサービスを依存する仮想マシンとが対応付けられた依存情報を参照して、前記第１の仮想マシンに対応付けられた前記第２の仮想マシンを特定することを特徴とする請求項１に記載の仮想マシン配備方法。
【請求項３】
前記コンピュータが、
前記第１の仮想マシンの配備要求とともに、当該第１の仮想マシンがサービスを依存する仮想マシンの通知を受け付けることによって前記第２の仮想マシンを特定することを特徴とする請求項１に記載の仮想マシン配備方法。
【請求項４】
前記設定する処理として、
前記第２の仮想マシンが前記第１の仮想マシンのパラメータに依存する場合に前記第１の仮想マシンを参照先とするポインタを設定し、前記第１の仮想マシンが前記第２の仮想マシンのパラメータに依存する場合に前記第２の仮想マシンを参照先とするポインタを設定することを特徴とする請求項１、２または３に記載の仮想マシン配備方法。
【請求項５】
仮想システムは、複数の仮想マシンを含んで構築されるものであって、
前記特定する処理として、
前記第１の仮想マシンを含む第１の仮想システムがサービスを依存する、前記第２の仮想マシンを含む第２の仮想システムを特定し、
前記設定する処理として、
前記アプリ情報を参照して、前記第１の仮想システム及び前記第２の仮想システム間のポインタを設定し、
前記配備する処理として、
前記ポインタにしたがって前記第１の仮想システムまたは前記第２の仮想システムのリソースの割り当て時に設定されるパラメータから前記第２の仮想システムまたは前記第１の仮想システムのディスクイメージを作成することによって前記第１の仮想システムおよび前記第２の仮想システムを配備することを特徴とする請求項１〜４のいずれか１つに記載の仮想マシン配備方法。
【請求項６】
コンピュータに、
第１の仮想マシンがサービスを依存する第２の仮想マシンを特定し、
アプリケーションごとに当該アプリケーションに対応する仮想マシンのディスクイメージの作成に用いる他の仮想マシンのパラメータ種別であって他の仮想マシンにリソースが割り当てられる場合に付与されるパラメータ種別が対応付けられたアプリ情報を参照して、前記第１の仮想マシン及び前記第２の仮想マシン間のポインタを設定し、
前記ポインタにしたがって前記第１の仮想マシンまたは前記第２の仮想マシンのリソースの割り当て時に設定されるパラメータから前記第２の仮想マシンまたは前記第１の仮想マシンのディスクイメージを作成することによって前記第１の仮想マシンおよび前記第２の仮想マシンを配備する
処理を実行させることを特徴とする仮想マシン配備プログラム。
【請求項７】
第１の仮想マシンがサービスを依存する第２の仮想マシンを特定する特定部と、
アプリケーションごとに当該アプリケーションに対応する仮想マシンのディスクイメージの作成に用いる他の仮想マシンのパラメータ種別であって他の仮想マシンにリソースが割り当てられる場合に付与されるパラメータ種別が対応付けられたアプリ情報を参照して、前記第１の仮想マシン及び前記第２の仮想マシン間のポインタを設定する設定部と、
前記ポインタにしたがって前記第１の仮想マシンまたは前記第２の仮想マシンのリソースの割り当て時に設定されるパラメータから前記第２の仮想マシンまたは前記第１の仮想マシンのディスクイメージを作成することによって前記第１の仮想マシンおよび前記第２の仮想マシンを配備する配備部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン配備方法等に関する。
【背景技術】
【０００２】
物理サーバなどの情報処理装置上で仮想マシン（ＶＭ：Virtual  Machine）と呼ばれる仮想的なコンピュータを動作させる仮想化技術が知られている。例えば、仮想マシンは、仮想マシンへリソースを割り当ててから仮想マシンのディスクイメージを作成した後に、仮想マシンを立ち上げるといった手順で物理マシン上に配備される。かかる仮想マシンを組み合わせることによって、複数の仮想マシンは、１つのサービスを実現する仮想システムとしてパッケージにされた状態で配備される場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２４５３１６号公報
【特許文献２】国際公開第２０１１／１１７９５７号
【特許文献３】特開２００７−１４０７９１号公報
【特許文献４】特開２００２−２７８７６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の技術には、以下に説明するように、別の仮想マシンによって提供されるサービスに依存する仮想マシンを配備することができない場合がある。
【０００５】
すなわち、仮想システムの中には、別の仮想システムが実行する処理によって提供されるサービスに依存する仮想システムも存在する。かかる仮想システムは、依存する相手の仮想システムが立ち上がっていないと配備することができない。そうだからと言って、互いの仮想システムを同時に立ち上げればよいという訳でもない。
【０００６】
例えば、仮想システムＡを配備するリクエストを受け付ける場面を想定したとき、仮想システムＡが仮想システムＢのサービスに依存する場合には、仮想システムＢが立ち上がっていないと仮想システムＡを配備することはできない。このため、仮想システムＡ及び仮想システムＢを並行して配備しようとしても、仮想システムＢの立ち上げが仮想システムＡに割り当てられるリソースのパラメータに依存する場合には、仮想システムＡ及び仮想システムＢの配備にデッドロックが発生する。つまり、仮想システムＢの立ち上げ時に仮想システムＡのパラメータの入手に失敗するので、仮想システムＢの配備に失敗する結果、仮想システムＡの配備も失敗することになる。
【０００７】
なお、ここでは、別の仮想システムのサービスに依存する仮想システムの配備を例示したが、別の仮想マシンが提供するサービスに依存する仮想マシンを配備する場合にも上記の仮想システムと同様にデッドロックが発生するので、仮想マシンの配備に失敗する。
【０００８】
１つの側面では、本発明は、別の仮想マシンのサービスに依存する仮想マシンを配備できる仮想マシン配備方法、仮想マシン配備プログラム及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一態様の仮想マシン配備方法は、コンピュータが、第１の仮想マシンがサービスを依存する第２の仮想マシンを特定し、アプリケーションごとに当該アプリケーションに対応する仮想マシンのディスクイメージの作成に用いる他の仮想マシンのパラメータ種別であって他の仮想マシンにリソースが割り当てられる場合に付与されるパラメータ種別が対応付けられたアプリ情報を参照して、前記第１の仮想マシン及び前記第２の仮想マシン間のポインタを設定し、前記ポインタにしたがって前記第１の仮想マシンまたは前記第２の仮想マシンのリソースの割り当て時に設定されるパラメータから前記第２の仮想マシンまたは前記第１の仮想マシンのディスクイメージを作成することによって前記第１の仮想マシンおよび前記第２の仮想マシンを配備する処理を実行する。
【発明の効果】
【００１０】
別の仮想マシンのサービスに依存する仮想マシンを配備できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るシステムの構成例を示す図である。
【図２】図２は、実施例１に係る情報処理装置の階層構造の一例を示す図である。
【図３】図３は、依存関係テーブルの一例を示す図である。
【図４】図４は、サービス及びパラメータの依存方向の一例を示す図である。
【図５】図５は、サービス及びパラメータの依存方向の一例を示す図である。
【図６】図６は、アプリ管理テーブルの一例を示す図である。
【図７】図７は、リソース管理テーブルの一例を示す図である。
【図８】図８は、タイムチャートの一例を示す図である。
【図９】図９は、リソース管理テーブルの遷移例を示す図である。
【図１０】図１０は、実施例１に係るポインタ設定処理の手順を示すフローチャートである。
【図１１】図１１は、実施例１に係る配備処理の手順を示すフローチャートである。
【図１２】図１２は、依存関係テーブルの応用例を示す図である。
【図１３】図１３は、リソース管理テーブルの応用例を示す図である。
【図１４】図１４は、応用例に係るポインタ設定処理の手順を示すフローチャートである。
【図１５】図１５は、仮想マシン配備プログラムを実行するコンピュータのハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して本願に係る仮想マシン配備方法、仮想マシン配備プログラム及び情報処理装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［システム構成］
図１は、実施例１に係るシステムの構成例を示す図である。図１に示すシステムは、クライアント端末３０Ａ〜３０Ｃに対し、情報処理装置１０が実行するサーバの仮想化によってＩａａＳ（Infrastructure  as  a  Service）を始めとするサービスを提供するものである。
【００１４】
図１に示すシステムには、クライアント端末３０Ａ〜３０Ｃと、データセンタ１とが収容される。さらに、データセンタ１は、ポータルサイトＷｅｂサーバ２０と、情報処理装置１０とを有する。なお、図１には、３つのクライアント端末をそれぞれ図示したが、データセンタ１は任意の数のクライアント端末を収容できる。なお、以下では、クライアント端末３０Ａ〜３０Ｃの各装置を区別なく総称する場合には、「クライアント端末３０」と記載する場合がある。
【００１５】
これらデータセンタ１及びクライアント端末３０の間は、ネットワーク５を介して相互に通信可能に接続される。かかるネットワーク５には、有線または無線を問わず、インターネット（Internet）を始め、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。
【００１６】
クライアント端末３０は、ユーザによって使用される情報処理装置である。ここで言う「ユーザ」とは、一例として、ＩａａＳの提供を受ける企業等の組織において、サーバの仮想化によって実現される仮想マシン、例えば業務システム等の管理者権限を有する利用者が挙げられる。なお、図示は省略するが、上記のユーザが使用するクライアント端末３０以外にも、仮想マシンによって提供される機能を実際に利用するエンドユーザの端末もデータセンサ１に接続されているものとする。
【００１７】
クライアント端末３０の一態様としては、パーソナルコンピュータを採用できる。上記のパーソナルコンピュータなどの据置き型の端末のみならず、各種の携帯端末装置をクライアント端末３０として採用することもできる。例えば、携帯端末装置の一例として、スマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）などの移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）などのスレート端末などが挙げられる。
【００１８】
かかるクライアント端末３０では、ポータルサイトＷｅｂサーバ２０がクライアント端末３０のブラウザへ提供するダッシュボード画面等を介して、情報処理装置１０に仮想化させる仮想マシンのタイプ、例えば種類や性能を指定することができる。このとき、クライアント端末３０は、サーバのタイプ、ＯＳ（Operating  System）、ミドルウェアやデータベースなどが定型化されたテンプレートの中からユーザが希望するテンプレートを選択させることができる。これによって、オンデマンドで仮想化システムを提供できる。例えば、Ｗｅｂシステムの３階層、すなわちプレゼンテーション層、アプリケーション層及びデータ層の各階層に対応する仮想マシンを組み合わせることによって複数の仮想マシンのパッケージをＷｅｂサービスを実現する仮想システムとして提供することもできる。
【００１９】
ポータルサイトＷｅｂサーバ２０は、ＩａａＳのフロントエンドとして構築されるポータルサイトのＷｅｂサーバである。一例としては、ポータルサイトＷｅｂサーバ２０は、上記のダッシュボード画面等を通じて、クライアント端末３０のブラウザ等から仮想システムを配備するＷｅｂリクエストを受け付けることができる。この場合には、ポータルサイトＷｅｂサーバ２０は、仮想システムの配備に関するＷｅｂリクエストをＡＰＩ（Application  Program  Interface）へ変換することによって仮想システムの配備を情報処理装置１０へ指示する。他の一例としては、ポータルサイトＷｅｂサーバ２０は、情報処理装置１０に配備された仮想システムに関する使用状況、例えばＣＰＵ（Central  Processing  Unit）、ディスクやネットワークの使用状況を配信したり、仮想システムの構成変更のリクエストを受け付けたりすることもできる。
【００２０】
情報処理装置１０は、クライアント端末３０にＩａａＳ等のサービスを提供するコンピュータである。かかる情報処理装置１０は、１つ以上のシステムボードを含む物理マシンを少なくとも１つ含んで構築される。一態様としては、情報処理装置１０は、サーバの仮想化を実現する仮想化ソフトウェアによってＩａａＳ管理用のソフトウェアをゲストＯＳの一つとして実行する。以下では、ＩａａＳ管理用のソフトウェアのことを「管理ソフト」と記載する場合がある。例えば、情報処理装置１０上で動作する管理ソフトは、ポータルサイトＷｅｂサーバ２０から仮想システムの配備指示を受け付けた場合に、当該仮想システムを物理マシン上に配備する。ここで言う「配備」とは、物理マシンが持つハードウェアのリソースを仮想マシンに割り当ててから仮想マシンのディスクイメージを作成した後に、仮想マシンを立ち上げるといった一連の処理を指す。
【００２１】
［情報処理装置の階層構造］
図２は、実施例１に係る情報処理装置の階層構造の一例を示す図である。図２に示すように、情報処理装置１０は、ハードウェア１１、仮想制御部１３、管理ソフト実行部１５の順に階層化された構造を持つ。なお、図２では、図示を省略しているが、仮想制御部１３によって仮想化された仮想マシン（ＶＭ：Virtual  Machine）がゲストＯＳの１つとして管理ソフトと同一の階層で動作する。
【００２２】
ハードウェア１１には、ＣＰＵ・メモリプール、ディスクプールやネットワークなどのリソースが含まれる。かかるハードウェア１１に含まれるリソースは、管理ソフト実行部１５によって指示される仮想システムが含む仮想マシンのタイプにしたがって仮想制御部１３によって仮想システムへ割り当てられる。このようにリソースをプール化することによって仮想マシンの動的な構築を可能とする。
【００２３】
仮想制御部１３は、仮想化ソフトウェアを実行することによって仮想マシン、ひいては仮想システムを稼働させる処理部である。なお、仮想制御部１３は、仮想化ソフトウェアの一態様としてハイパーバイザ等のプログラムを実行することによって実現できる。
【００２４】
管理ソフト実行部１５は、上記の管理ソフトを実行する処理部である。この管理ソフト実行部１５は、図２に示すように、依存関係テーブル１６ａと、アプリ管理テーブル１６ｂと、リソース管理テーブル１６ｃと、受付部１７ａと、特定部１７ｂと、設定部１７ｃと、配備部１７ｄとを有する。なお、上記の各テーブルは、メモリ等の記憶装置に設けられる。
【００２５】
依存関係テーブル１６ａは、仮想システム間のサービスに関する依存関係を示す情報を記憶する。かかる依存関係テーブル１６ａの一態様としては、仮想システムごとに当該仮想システムがサービスを依存する仮想システムが対応付けられたテーブルを採用できる。なお、上記の依存関係は、ＩａａＳ事業者の管理者、例えば仮想システムのテンプレートを作成する設計者やＩａａＳのユーザが予め設定しておくことができる。
【００２６】
図３は、依存関係テーブル１６ａの一例を示す図である。図３には、「ＶＳＹＳ  Ａ」及び「ＶＳＹＳ  Ｂ」の２つの仮想システムが抜粋された例を図示している。図３に示す「ＶＳＹＳ  ＩＤ１」及び「ＶＳＹＳ  ＩＤ２」は、いずれも仮想システム（Virtual  SYStem）の識別情報であるＩＤ（IDentifier）が格納されるエントリであるが、ＩＤ１とＩＤ２のいずれかであるかによってその仮想システムの位置付けが異なる。すなわち、「ＶＳＹＳ  ＩＤ１」は、別の仮想システムが実行する処理によって提供されるサービスに依存する仮想システムに関する識別情報を指す一方で、「ＶＳＹＳ  ＩＤ２」は、ＶＳＹＳ  ＩＤ１の仮想システムが依存する相手の仮想システムの識別情報を指す。図３の例では、「ＶＳＹＳ  Ａ」が「ＶＳＹＳ  Ｂ」のサービスに依存するとともに、「ＶＳＹＳ  Ｂ」は他の仮想システムのサービスに依存しないことを意味している。
【００２７】
このように、一方の仮想システムが他の仮想システムが実行する処理によって提供されるサービスに依存する依存関係の一例としては、Ｗｅｂシステムとして構築される仮想システムＡと、処理負荷を分配するＳＬＢ（Server  Load  Balancing）を含む仮想システムＢとの関係が挙げられる。これらの仮想システムの場合、Ｗｅｂシステムは、ＳＬＢが起動していないと動作することができない。したがって、仮想システムＡが仮想システムＢのサービスに依存していると言える。他の一例としては、Ｗｅｂシステムとして構築される仮想システムＡと、ＳＳＬ（Secure  Sockets  Layer）のホスト鍵を生成する仮想システムＺとの関係が挙げられる。これらの仮想システムの場合、Ｗｅｂシステムは、仮想システムＺが起動していないとホスト鍵が生成されないず、クライアント端末３０との間でセキュア通信を実行できないので、動作できない。したがって、仮想システムＡが仮想システムＺのサービスに依存していると言える。なお、この場合には、ＩａａＳの事業者がホスト鍵を生成するものとする。
【００２８】
アプリ管理テーブル１６ｂは、仮想マシンとして実行されるアプリケーションに関する情報を管理するテーブルである。例えば、アプリ管理テーブル１６ｂには、アプリケーションごとに当該アプリケーションに対応する仮想マシンのディスクイメージの作成に用いる他の仮想マシンのパラメータ種別であって他の仮想マシンにリソースが割り当てられる場合に付与されるパラメータ種別が対応付けられる。なお、上記のアプリ管理テーブル１６ｂの値は、ＩａａＳ事業者の管理者、例えば仮想システムのテンプレートを作成する設計者やＩａａＳのユーザが予め設定しておくことができる。
【００２９】
アプリ管理テーブル１６ｂの一態様としては、アプリケーション、設定ファイル、依存方向およびパラメータ種別などの項目が対応付けられたテーブルを採用できる。このうち「設定ファイル」とは、アプリケーションの設定が記述されるファイルを指し、例えば、設定ファイルを格納するファイルパスなどを用いることができる。また、「依存方向」とは、仮想システム間のパラメータの依存方向を指す。また、「パラメータ種別」とは、アプリケーションのディスクイメージの作成に用いるパラメータの種別を指す。ここで言う「パラメータ」とは、ディスクイメージの作成に用いる他の仮想システムのパラメータを指し、とりわけ他の仮想マシンにリソースが割り当てられる場合に付与されるパラメータを指す。このようなパラメータ種別の一例としては、仮想マシンにハードウェア１１のリソースが割り当てられることによって始めて既知となる情報、例えば仮想マシンのネットワークアドレスなどが挙げられる。
【００３０】
図４及び図５は、サービス及びパラメータの依存方向の一例を示す図である。図４及び図５に示す矢印のうち、実線の矢印はサービスの依存方向を指し、破線の矢印はパラメータの依存方向を指す。図４に示すように、ＶＳＹＳ  ａは、ＶＳＹＳ  ｂのサービスに依存するとともに、ＶＳＹＳ  ｂのパラメータ「ＩＰアドレス」にも依存する。これは、サービスの依存方向及びパラメータの依存方向の両方が共通することを意味する。この場合、パラメータの依存方向には、一例として、「順方向」を設定できる。また、図５に示すように、ＶＳＹＳ  Ａは、ＶＳＹＳ  Ｂのサービスに依存する一方で、ＶＳＹＳ  Ｂは、ＶＳＹＳ  Ａのパラメータに依存する。これは、サービスの依存方向及びパラメータの依存方向が互いに反対であることを意味する。この場合、パラメータの依存方向には、一例として、「逆方向」を設定できる。このように、サービスの依存方向との相対比較でパラメータの依存方向を設定することによって、仮想システムの配備時に始めて既知となる仮想システムのＩＤの始点及び終点によって方向を定義せずともよくなる。
【００３１】
図６は、アプリ管理テーブル１６ｂの一例を示す図である。図６には、Ｗｅｂサーバやキャッシュ・サーバなどの処理負荷を分配するＳＬＢ、正当性を認証するＡｕｔｈ（Authentication）、ＳＱＬ（Structured  Query  Language）やポスグレなどのデータベースを管理するＤＢ（DataBase）の３つのアプリケーションに関する例が抜粋されている。図６に示す例では、３つのうち、ＳＬＢ及びＡｕｔｈには、パラメータの依存方向として「逆方向」が設定されている一方で、残りの１つであるＤＢには、パラメータの依存方向として「順方向」が設定されている。
【００３２】
例えば、ＳＬＢの場合には、処理の分配先のアプリケーションに割り当てられたネットワークリソース、すなわちＩＰアドレスやＭＡＣアドレスが既知でないと処理を分配できない。よって、ＳＬＢは、処理を分配する先のアプリケーションにパラメータであるＩＰアドレスやＭＡＣアドレスを依存していると言える。一方で、処理を実行するアプリケーションの方から見れば、ＳＬＢが起動していないと処理そのものを実行できない。このため、処理を実行するアプリケーションは、ＳＬＢが提供する処理負荷の分配サービスに依存している。これらサービスの依存方向とパラメータの依存方向は、互いに逆であるので、パラメータの依存方向には「逆方向」が設定されている。
【００３３】
例えば、Ａｕｔｈの場合にも、認証機能を提供するアプリケーションに割り当てられたネットワークリソース、すなわちＩＰアドレスやＭＡＣアドレスが既知でないと認証結果を通知できない。よって、Ａｕｔｈは、認証機能を提供するアプリケーションにパラメータであるＩＰアドレスやＭＡＣアドレスを依存していると言える。一方で、処理を実行するアプリケーションの方から見れば、Ａｕｔｈが起動していないと処理実行の前提となる認証そのものを実行できない。このため、処理を実行するアプリケーションは、Ａｕｔｈが提供する認証サービスに依存している。これらサービスの依存方向とパラメータの依存方向は、互いに逆であるので、パラメータの依存方向には「逆方向」が設定されている。
【００３４】
例えば、ＤＢの場合には、データベース機能を提供する提供先のアプリケーションは、ＤＢのネットワークリソース、すなわちＩＰアドレスが既知でないとデータを読み込んだり、書き込んだりすることができない。よって、ＤＢは、データベース機能を提供するアプリケーションからＩＰアドレスを依存されていると言える。さらに、データベース機能を提供する提供先のアプリケーションは、ＤＢが起動していない場合にもデータを読み込んだり、書き込んだりすることができない。このため、ＤＢは、データの入出力を行うアプリケーションにサービスも依存されている。これらサービスの依存方向とパラメータの依存方向は、互いに同一であるので、パラメータの依存方向には「順方向」が設定されている。
【００３５】
リソース管理テーブル１６ｃは、仮想マシンに割り当てられるリソースを管理するテーブルである。かかるリソース管理テーブル１６ｃの一態様としては、ＶＳＹＳ  ＩＤ、ＶＭ  ＩＤ、代表ＩＰ、代表ＭＡＣ、Ａｐｐ及び依存ポインタなどの項目を含むテーブルを採用できる。
【００３６】
ここで言う「ＶＳＹＳ  ＩＤ」は、仮想システムの識別情報の中でも、配備リクエストがあった仮想システムの識別情報を指す。「ＶＭ  ＩＤ」とは、仮想システムに含まれる仮想マシンの識別情報を指す。また、「代表ＩＰ」及び「代表ＭＡＣ」は、仮想システムに含まれる仮想マシンのうち代表する仮想マシンのＩＰアドレスやＭＡＣアドレスを指す。例えば、仮想システムに含まれる仮想マシンの中でも、アプリ管理テーブル１６ｂにエントリがあるアプリケーションに対応する仮想マシンのＩＰアドレスやＭＡＣアドレスが「代表ＩＰ」及び「代表ＭＡＣ」として格納される。また、「Ａｐｐ」とは、仮想システムに含まれるアプリケーションのうち他の仮想システムにパラメータを依存するアプリケーションの種別を指す。また、「依存ポインタ」とは、他の仮想システムのエントリの参照先を指す。例えば、他の仮想システムにパラメータを依存する仮想システムのエントリを対象に、パラメータを依存する相手の仮想システムのエントリの位置情報が参照先として後述の設定部１７ｃによって設定される。なお、上記の項目のうち「Ａｐｐ」及び「依存ポインタ」以外は、既知のリソースの管理で用いられる場合があるので、その場合には「Ａｐｐ」及び「依存ポインタ」に絞って拡張すればよい。
【００３７】
図７は、リソース管理テーブル１６ｃの一例を示す図である。図７には、各項目に値が格納された段階のリソース管理テーブル１６ｃを例示したが、実際には、配備リクエストのあった仮想システムがサービスを依存する相手の仮想システムの特定、パラメータの依存方向の判別、依存ポインタの設定、さらには、リソースの割り当てなどの処理を経ることによって各項目に値が格納される。図７に示す例では、ＶＳＹＳ  Ａの仮想システムに含まれるＶＭ１及びＶＭ２は、他の仮想システムに含まれるアプリケーションのパラメータに依存してないことを意味する。さらに、図７に示す例では、ＶＳＹＳ  Ｂの仮想システムに含まれるＳＬＢ（ＶＭ３）がＩＰアドレス及びＭＡＣアドレスを依存しており、その参照先としてＶＳＹＳ  Ａの仮想システムが設定されていることを意味する。
【００３８】
なお、上記の各テーブルでは、データがテーブル形式で管理される場合を例示したが、テーブル形式以外の他の形式、例えばＣＳＶ（Comma  Separated  Values）で管理されることとしてもかまわない。
【００３９】
受付部１７ａは、第１の仮想システムの配備指示を受け付ける処理部である。一態様としては、受付部１７ａは、ポータルサイトＷｅｂサーバ２０を介して、仮想システムの配備を指示するＡＰＩを第１の仮想システムの配備指示として受け付ける。なお、クライアント端末３０からタイマー等による配備リクエストが指示された場合には、予め指示されていた仮想システムが時間条件を満たしたことを契機に、配備指示を受け付けたものとして処理することもできる。
【００４０】
特定部１７ｂは、第１の仮想システムがサービスを依存する依存先の仮想システムを第２の仮想システムとして特定する処理部である。一態様としては、特定部１７ｂは、以下に説明するように、上記の依存関係テーブル１６ａを用いて、配備指示を受け付けた仮想システムを起点とし、サービスの依存先の仮想システムを探索する。
【００４１】
これを具体的に説明すると、特定部１７ｂは、依存関係テーブル１６ａに記憶されたＶＳＹＳ  ＩＤ１のエントリの中に、受付部１７ａで配備指示を受け付けた仮想システムのＩＤと同一のＩＤを持つ仮想システムが存在するか否かを判定する。このとき、ＶＳＹＳ  ＩＤ１のエントリの中に配備指示を受け付けた仮想システムのＩＤと同一のＩＤを持つ仮想システムが存在しない場合には、配備指示を受け付けた仮想システムの配備を単独で開始してもよいことがわかる。この場合には、サービスの依存先の仮想システムを探索する処理を終える。
【００４２】
一方、ＶＳＹＳ  ＩＤ１のエントリの中に配備指示を受け付けた仮想システムのＩＤと同一のＩＤを持つ仮想システムが存在する場合には、配備指示を受け付けた仮想システム単独では配備が困難であることがわかる。この場合には、特定部１７ｂは、配備指示を受け付けたＶＳＹＳ  ＩＤ１と対応付けられたＶＳＹＳ  ＩＤ２のエントリに値が存在するか否かをさらに判定する。このとき、ＶＳＹＳ  ＩＤ２のエントリに値がない場合には、配備指示を受け付けた仮想システムの配備を単独で開始してもよいことがわかる。この場合には、サービスの依存先の仮想システムを探索する処理を終える。一方、ＶＳＹＳ  ＩＤ２のエントリに値が存在する場合には、特定部１７ｂは、ＶＳＹＳ  ＩＤ２に登録された仮想システムをサービスの依存先の仮想システムとして特定する。
【００４３】
このようにしてサービスの依存先の仮想システムが検索できた場合には、特定部１７ｂは、サービスの依存先の仮想システムに更なるサービスの依存先がなくなるまで、ＶＳＹＳ  ＩＤ２のエントリを探索する処理を繰り返し実行する。すなわち、特定部１７ｂは、サービスの依存先として特定した仮想システムがＶＳＹＳ  ＩＤ１のエントリの中に存在するか否かを判定する。そして、特定部１７ｂは、サービスの依存先として特定した仮想システムがＶＳＹＳ  ＩＤ１のエントリの中に存在する場合に、サービスの依存先として特定したＶＳＹＳ  ＩＤ１と対応付けられたＶＳＹＳ  ＩＤ２のエントリに値が存在するか否かをさらに判定する。このとき、ＶＳＹＳ  ＩＤ２のエントリに値が存在する場合には、特定部１７ｂは、ＶＳＹＳ  ＩＤ２に登録された仮想システムをサービスの更なる依存先の仮想システムとして特定する。
【００４４】
設定部１７ｃは、アプリ管理テーブル１６ｂを参照して、第１の仮想マシン及び第２の仮想マシン間のポインタを設定する処理部である。一態様としては、設定部１７ｃは、依存関係テーブル１６ａからサービスの依存先が検索される度に、次のような処理を実行する。例えば、設定部１７ｃは、リソース管理テーブル１６ｃを参照して、他の仮想システムにサービスを依存する依存元の仮想システムに含まれる仮想マシンを読み出す。そして、設定部１７ｃは、アプリ管理テーブル１６ｂから、依存元の仮想システムに含まれる仮想マシンに対応するアプリケーションを検索する。その上で、設定部１７ｃは、アプリ管理テーブル１６ｂからアプリケーションを検索できた場合に、当該アプリケーションに対応付けられたパラメータの依存方向が「逆方向」であるか否かを判定する。
【００４５】
ここで、パラメータの依存方向が「逆方向」である場合には、設定部１７ｃは、リソース管理テーブル１６ｃに記憶されたレコードのうちサービスの依存先の仮想システムのレコードにサービスの依存元のレコードを参照先とする依存ポインタを設定する。一方、パラメータの依存方向が「順方向」である場合には、設定部１７ｃは、リソース管理テーブル１６ｃに記憶されたレコードのうちサービスの依存元の仮想システムのレコードにサービスの依存先のレコードを参照先とする依存ポインタを設定する。
【００４６】
配備部１７ｄは、仮想システムの配備を実行する処理部である。一態様としては、配備部１７ｄは、配備指示を受け付けた仮想システム及び配備指示を受け付けた仮想システムを起点としてサービスの依存関係が連なる一連の仮想システムの配備を直列または並列に実行できる。これら配備部１７ｄによって配備の対象とされる仮想システムのことを総称して「配備対象とする仮想システム」と記載する場合がある。
【００４７】
これを具体的に説明すると、配備部１７ｄは、ハードウェア１１のリソースを配備対象とする仮想システムに割り当てる。例えば、配備部１７ｄは、配備対象とする仮想システムに含まれる各仮想マシンに設定されたテンプレート、例えばＣＰＵの性能やディスクの容量などのタイプに対応するＣＰＵ、メモリやディスクの使用率を仮想制御部１３に割り当てさせる。また、配備部１７ｄは、各仮想マシンにネットワークのリソース、例えばＮＩＣ（Network  Interface  Card）を仮想制御部１３によって割り当てさせる。その上で、配備部１７ｄは、仮想システムのディスクイメージを作成する。
【００４８】
その後、配備部１７ｄは、リソース管理テーブル１６ｃから配備対象とする仮想システムのレコードを検索する。その上で、配備部１７ｄは、配備対象とする仮想システムのレコードに依存ポインタが設定されているか否かを判定する。そして、配備対象とする仮想システムのレコードに依存ポインタが設定されている場合には、配備部１７ｄは、依存ポインタにしたがってパラメータの依存先となる仮想システムのレコードからパラメータの取得を試行する。
【００４９】
ここで、パラメータの取得に失敗した場合には、パラメータの依存先となる仮想システムでリソースの割り当てが終了していないことがわかる。この場合には、配備部１７ｄは、パラメータの取得に成功するまで、パラメータの依存先となる仮想システムのレコードからパラメータを取得する処理を再試行する。このとき、所定の時間にわたって待機してからパラメータの取得を再試行してもよく、パラメータを取得するリトライ回数に上限を設けることとしてもよい。
【００５０】
その後、パラメータの取得が成功すると、配備部１７ｄは、リソース管理テーブル１６ｃに記憶された設定ファイルのファイルパスにしたがって、依存先の仮想システムから取得したパラメータを依存元のアプリケーションの設定ファイルに書き込んだ上で仮想マシンのディスクイメージに格納する。その上で、配備部１７ｄは、当該ディスクイメージを用いて仮想システムを起動する。
【００５１】
［具体例］
図８及び図９を用いて、仮想システムの配備の具体例を説明する。図８は、タイムチャートの一例を示す図であり、図９は、リソース管理テーブル１６ｃの遷移例を示す図である。これら図８及び図９には、図３に示したＶＳＹＳ  Ａの仮想システムの配備が指示された場合の例が図示されている。
【００５２】
図８に示すように、ＶＳＹＳ  Ａの配備指示を受け付けたＴ１の時点では、図９に示すように、リソース管理テーブル１６ｃにＶＳＹＳ  Ａ及びＶＳＹＳ  Ｂの各々でＶＳＹＳ  ＩＤ、ＶＭ  ＩＤ及びＡｐｐの値だけが格納された状態で、ＶＳＹＳ  Ａがサービスを依存する仮想システムの特定が開始される。すると、図３に示した依存関係テーブル１６ａには、ＶＳＹＳ  ＩＤ１「ＶＳＹＳ  Ａ」及びＶＳＹＳ  ＩＤ２「ＶＳＹＳ  Ｂ」が対応付けられたレコードが存在するので、Ｔ２の時点になってＶＳＹＳ  Ａがサービスを依存するＶＳＹＳ  Ｂが特定される。なお、ここでは、ＶＳＹＳ  Ａを起点としてサービスの依存関係が連なる一連の仮想システムとしてＶＳＹＳ  Ｂだけが特定される場合を想定して以下の説明を行う。
【００５３】
このように、ＶＳＹＳ  Ａがサービスを依存するＶＳＹＳ  Ｂが特定されたＴ２の時点では、図９に示すように、リソース管理テーブル１６ｃには、新たに依存ポインタが設定される。なぜなら、図６に示したアプリ管理テーブル１６ｂの通り、ＶＳＹＳ  Ａが含むアプリケーションは、他の仮想システムが含むアプリケーションにパラメータを依存していない一方で、ＶＳＹＳ  Ｂが含むＳＬＢは、ＩＰアドレスとＭＡＣアドレスのパラメータがサービスの依存方向とは「逆方向」に依存しているからである。このため、ＶＳＹＳ  ＡからＶＳＹＳ  Ｂへというサービスの依存方向とは逆方向、すなわちＶＳＹＳ  ＢからＶＳＹＳ  Ａへの依存ポインタが設定される。つまり、リソース管理テーブル１６ｃのＶＳＹＳ  ＢのレコードにＶＳＹＳ  Ａのレコードを参照先とする依存ポインタが設定される。
【００５４】
そして、Ｔ２の時点からＶＳＹＳ  Ｂの配備が開始された後に、Ｔ３の時点からＶＳＹＳ  Ａの配備が開始される。ところが、ＶＳＹＳ  Ｂには、ＳＬＢが含まれているので、ＶＳＹＳ  Ａが含むＷｅｂに割り当てられるＩＰアドレスとＭＡＣアドレスが既知でないと、ディスクイメージの作成を完了することができない。このため、ＶＳＹＳ  Ｂの配備は、依存ポインタにしたがってリソース管理テーブル１６ｃからＶＳＹＳ  ＡのＩＰアドレス及びＭＡＣアドレスの取得を試行し始めるＴ４の時点からＶＳＹＳ  Ａのリソースの割り当てが完了するＴ５の時点まで中断される。すなわち、パラメータの依存先となるＶＳＹＳ  ＡのＩＰアドレス及びＭＡＣアドレスがリソース管理テーブル１６ｃに格納されるまで、リソース管理テーブル１６ｃの依存ポインタにしたがってＶＳＹＳ  ＡのＩＰアドレス及びＭＡＣアドレスを取得する処理が繰り返し実行される。
【００５５】
その後、ＶＳＹＳ  Ａのリソースの割り当てが完了するＴ５の時点になって、図９に示すように、ＶＳＹＳ  ＡのＩＰアドレス及びＭＡＣアドレスがリソース管理テーブル１６ｃに格納される。この段階になって、ＶＳＹＳ  Ｂの配備でＶＳＹＳ  ＡのＩＰアドレス及びＭＡＣアドレスの取得に成功する。その後、Ｔ６の時点でＶＳＹＳ  Ａの配備は、ディスクイメージの作成まで進み、ＶＳＹＳ  Ｂの配備も再開される。すなわち、図９に示すように、リソース管理テーブル１６ｃにＶＳＹＳ  ＢのＩＰアドレス及びＭＡＣアドレスが格納された後に、ＶＳＹＳ  Ｂのディスクイメージを作成の上、ＶＳＹＳ  Ｂが含むＳＬＢの設定ファイルにＶＳＹＳ  Ａが含むＷｅｂのＩＰアドレス及びＭＡＣアドレスが記述された上でディスクイメージに格納される段階まで進む。その後、Ｔ７の時点になると、ＶＳＹＳ  Ａ及びＶＳＹＳ  Ｂの両方が起動されてＶＳＹＳ  Ａ及びＶＳＹＳ  Ｂの配備が完了する。
【００５６】
このように、ＶＳＹＳ  Ｂのサービスに依存するＶＳＹＳ  Ａを配備する場合に、パラメータの依存方向がサービスの依存方向とは逆方向である場合であっても、ＶＳＹＳ  Ａ及びＶＳＹＳ  Ｂの配備にデッドロックが発生しない。すなわち、ＶＳＹＳ  Ａのパラメータに依存するＶＳＹＳ  Ｂのディスクイメージにパラメータを記述させてＶＳＹＳ  Ｂを起動し、ＶＳＹＳ  ＢとともにＶＳＹＳ  Ａを配備できる。さらに、かかる配備を実現するにあたって、ＶＳＹＳ  Ｂの配備に用いるＶＳＹＳ  Ａのパラメータを取得するのに仮想マシンへエージェントプログラムを埋め込まずともよい。
【００５７】
［処理の流れ］
続いて、実施例１に係る情報処理装置の処理の流れについて説明する。なお、ここでは、情報処理装置１０によって実行される（１）ポインタ設定処理を説明した後に（２）配備処理を説明することとする。
【００５８】
（１）ポインタ設定処理
図１０は、実施例１に係るポインタ設定処理の手順を示すフローチャートである。この処理は、一例として、ポータルサイトＷｅｂサーバ２０から仮想マシンの配備指示を受け付けた場合に処理が起動する。
【００５９】
図１０に示すように、ポータルサイトＷｅｂサーバ２０から仮想システムの配備指示を受け付ける（ステップＳ１０１）。すると、特定部１７ｂは、依存関係テーブル１６ａを参照して、ステップＳ１０１で配備指示を受け付けた仮想システムがサービスを依存する相手の仮想システムが存在するか否かを判定する（ステップＳ１０２）。
【００６０】
そして、サービスを依存する相手の仮想システムが存在しない場合（ステップＳ１０２Ｎｏ）には、配備指示を受け付けた仮想システムの配備を単独で開始してもよいことがわかる。この場合には、そのまま処理を終了する。
【００６１】
一方、サービスを依存する相手の仮想システムが存在する場合（ステップＳ１０２Ｙｅｓ）には、特定部１７ｂは、当該仮想システムをサービスの依存先の仮想システムとして特定する（ステップＳ１０３）。
【００６２】
その後、設定部１７ｃは、アプリ管理テーブル１６ｂから、依存元の仮想システムに含まれる仮想マシンに対応するアプリケーションを検索する（ステップＳ１０４）。その上で、設定部１７ｃは、アプリ管理テーブル１６ｂからアプリケーションを検索できた場合（ステップＳ１０５Ｙｅｓ）に、当該アプリケーションに対応付けられたパラメータの依存方向が「逆方向」であるか否かを判定する（ステップＳ１０６）。なお、アプリ管理テーブル１６ｂからアプリケーションを検索できなかった場合（ステップＳ１０５Ｎｏ）には、後述のステップＳ１０９の処理へ移行する。
【００６３】
ここで、パラメータの依存方向が「逆方向」である場合（ステップＳ１０６Ｙｅｓ）には、設定部１７ｃは、リソース管理テーブル１６ｃに記憶されたレコードのうちサービスの依存先の仮想システムのレコードにサービスの依存元のレコードを参照先とする依存ポインタを設定する（ステップＳ１０７）。
【００６４】
一方、パラメータの依存方向が「順方向」である場合（ステップＳ１０６Ｎｏ）には、設定部１７ｃは、リソース管理テーブル１６ｃに記憶されたレコードのうちサービスの依存元の仮想システムのレコードにサービスの依存先のレコードを参照先とする依存ポインタを設定する（ステップＳ１０８）。
【００６５】
続いて、特定部１７ｂは、依存関係テーブル１６ａから、ステップＳ１０３で特定されたサービスの依存先の仮想システムがサービスを依存する更なる依存先を検索する（ステップＳ１０９）。そして、サービスの依存先の仮想システムに更なるサービスの依存先がなくなるまで（ステップＳ１０２Ｙｅｓ）、上記のステップＳ１０３〜ステップＳ１０９の処理を実行する。その後、サービスの依存先の仮想システムに更なるサービスの依存先がなくなると（ステップＳ１０２Ｎｏ）、処理を終了する。
【００６６】
（２）配備処理
図１１は、実施例１に係る配備処理の手順を示すフローチャートである。この処理は、配備指示を受け付けた仮想システム及び配備指示を受け付けた仮想システムを起点としてサービスの依存関係が連なる一連の仮想システムの各システムの配備を並列に実行できる。すなわち、図１０に示したステップＳ１０１で配備指示を受け付けた段階、さらには、ステップＳ１０３でサービスの依存先の仮想サービスが特定された段階の各々で当該仮想システムの配備を開始できる。
【００６７】
図１１に示すように、配備部１７ｄは、ハードウェア１１のリソースを配備対象とする仮想システムに割り当て（ステップＳ３０１）、ステップＳ３０１でリソースを割り当てた仮想システムのディスクイメージを作成する（ステップＳ３０２）。
【００６８】
その後、配備部１７ｄは、リソース管理テーブル１６ｃから配備対象とする仮想システムのレコードを検索する（ステップＳ３０３）。その上で、配備部１７ｄは、配備対象とする仮想システムのレコードに依存ポインタが設定されているか否かを判定する（ステップＳ３０４）。
【００６９】
そして、配備対象とする仮想システムのレコードに依存ポインタが設定されている場合（ステップＳ３０４Ｙｅｓ）には、配備部１７ｄは、依存ポインタにしたがってパラメータの依存先となる仮想システムのレコードからパラメータの取得を試行する（ステップＳ３０５）。なお、配備対象とする仮想システムのレコードに依存ポインタが設定されていない場合（ステップＳ３０４Ｎｏ）には、後述のステップＳ３０８の処理へ移行する。
【００７０】
ここで、パラメータの取得に失敗した場合（ステップＳ３０６Ｎｏ）には、パラメータの依存先となる仮想システムでリソースの割り当てが終了していないことがわかる。この場合には、配備部１７ｄは、パラメータの取得に成功するまで、パラメータの依存先となる仮想システムのレコードからパラメータを取得する処理を再試行する（ステップＳ３０５）。
【００７１】
その後、パラメータの取得が成功すると（ステップＳ３０６Ｙｅｓ）、配備部１７ｄは、リソース管理テーブル１６ｃに記憶された設定ファイルのファイルパスにしたがって、依存先の仮想システムから取得したパラメータを依存元のアプリケーションの設定ファイルに書き込んだ上で仮想マシンのディスクイメージに格納する（ステップＳ３０７）。その上で、配備部１７ｄは、当該ディスクイメージを用いて仮想システムを起動し（ステップＳ３０８）、処理を終了する。
【００７２】
［実施例１の効果］
上述してきたように、本実施例に係る情報処理装置１０は、仮想システムＡを配備する場合に、仮想システムＡがサービスを依存する仮想システムＢに仮想システムＡへのポインタを設定する。その上で、本実施例に係る情報処理装置１０は、仮想システムＡへのリソースの割当時に付与されるパラメータを仮想システムＢのディスクイメージに書き込んで仮想システムＢを起動する。したがって、本実施例に係る情報処理装置１０によれば、仮想システムＢのサービスに依存する仮想システムＡを配備できる。
【実施例２】
【００７３】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００７４】
［応用例１］
上記の実施例１では、配備を仮想システム単位で実行する場合を例示したが、仮想マシン単位で配備を実行することもできる。この場合には、一例として、依存関係テーブル１６ａ及びリソース管理テーブル１６ｃで管理される情報の粒度を仮想マシン単位とすればよい。図１２は、依存関係テーブルの応用例を示す図であり、図１３は、リソース管理テーブルの応用例を示す図である。例えば、図１２に示すように、図３に示した依存関係テーブル１６ａにＶＳＹＳ  ＩＤ１の仮想システムに含まれる仮想マシンのエントリを追加し、図１３に示すように、図７に示したリソース管理テーブル１６ｃのレコードを仮想マシンごとに作成しておけばよい。これによって、仮想マシン単位で配備を実行する場合にも、図１０及び図１１に示した処理を実行できる。この結果、テンプレート化されていない仮想マシンを配備する場合にも、管理ソフト実行部１５の実装が可能となる。
【００７５】
［応用例２］
上記の実施例１では、管理ソフト実行部１５が依存関係テーブル１６ａを記憶しておく場合を例示したが、必ずしも依存関係テーブル１６ａを記憶せずともよい。この場合には、クライアント端末３０に配備リクエストを行う仮想システムとともに、当該仮想システムがサービスを依存する依存先の仮想システムを宣言させることとすればよい。
【００７６】
図１４は、応用例に係るポインタ設定処理の手順を示すフローチャートである。このポインタ設定処理は、図１０に示したポインタ設定処理と同様に、ポータルサイトＷｅｂサーバ２０から配備指示を受け付けた場合に処理が起動する。
【００７７】
図１４に示すように、ポータルサイトＷｅｂサーバ２０から仮想システムの配備指示を受け付ける（ステップＳ５０１）。すると、特定部１７ｂは、当該配備指示にサービスの依存先が含まれるか否かを判定する（ステップＳ５０２）。
【００７８】
このとき、配備指示にサービスの依存先が含まれない場合（ステップＳ５０２Ｎｏ）には、特定部１７ｂは、ステップＳ５０１で配備指示を受け付けた仮想システムを単独で配備するように配備部１７ｄへ指示し（ステップＳ５０３）、処理を終了する。
【００７９】
一方、配備指示にサービスの依存先の宣言が含まれる場合（ステップＳ５０２Ｙｅｓ）には、特定部１７ｂは、リソース管理テーブル１６ｃを参照して、サービスの依存先の仮想システムが既に起動中であるか否かを判定する（ステップＳ５０４）。
【００８０】
ここで、サービスの依存先の仮想システムが既に起動中であるケースとしては、次のようなケースが挙げられる。例えば、配備指示を受け付けた仮想システムがＷｅｂの仮想マシンを含み、サービスの依存先の仮想システムがＳＬＢを含むとする。このとき、他のユーザのＷｅｂの配備に伴ってＳＬＢが配備されていたり、あるいは同一のユーザが負荷分散のためにＷｅｂの仮想システムをレプリケートする配備指示であった場合には、既にＳＬＢが配備されているケースがある。
【００８１】
このように、サービスの依存先の仮想システムが既に起動中である場合（ステップＳ５０４Ｙｅｓ）には、特定部１７ｂは、既に配備済みの仮想システムのディスクイメージ内の設定ファイルに当該配備指示を受け付けた仮想システムのパラメータ、例えばＩＰアドレスやＭＡＣアドレス等を設定するように指示し（ステップＳ５０５）、処理を終了する。
【００８２】
一方、サービスの依存先の仮想システムが既に起動中でない場合（ステップＳ５０４Ｎｏ）には、特定部１７ｂは、複数のテンプレートの中からサービスの依存先の仮想システムを選択する（ステップＳ５０６）。例えば、クライアント端末３０がＩａａＳ事業者のサービスの加入済みである場合には、加入時に登録されたサーバのタイプ、例えばＣＰＵの性能、ＯＳの型番、ディスクの容量などの項目との間で条件が合致するテンプレートをサービスの依存先の仮想システムとして選択することができる。また、利用料が最も低いテンプレートをサービスの依存先の仮想システムとして選択してもよい。
【００８３】
その後、設定部１７ｃは、アプリ管理テーブル１６ｂから、依存元の仮想システムに含まれる仮想マシンに対応するアプリケーションを検索する（ステップＳ５０７）。その上で、設定部１７ｃは、アプリ管理テーブル１６ｂからアプリケーションを検索できた場合（ステップＳ５０８Ｙｅｓ）に、当該アプリケーションに対応付けられたパラメータの依存方向が「逆方向」であるか否かを判定する（ステップＳ５０９）。なお、アプリ管理テーブル１６ｂからアプリケーションを検索できなかった場合（ステップＳ５０８Ｎｏ）には、後述のステップＳ５１２の処理へ移行する。
【００８４】
ここで、パラメータの依存方向が「逆方向」である場合（ステップＳ５０９Ｙｅｓ）には、設定部１７ｃは、リソース管理テーブル１６ｃに記憶されたレコードのうちサービスの依存先の仮想システムのレコードにサービスの依存元のレコードを参照先とする依存ポインタを設定する（ステップＳ５１０）。
【００８５】
一方、パラメータの依存方向が「順方向」である場合（ステップＳ５０９Ｎｏ）には、設定部１７ｃは、リソース管理テーブル１６ｃに記憶されたレコードのうちサービスの依存元の仮想システムのレコードにサービスの依存先のレコードを参照先とする依存ポインタを設定する（ステップＳ５１１）。
【００８６】
その後、設定部１７ｃは、配備指示を受け付けた仮想システムおよびサービスの依存先の仮想システムの配備の開始を配備部１７ｄへ指示し（ステップＳ５１２）、処理を終了する。
【００８７】
このように、仮想システムの配備リクエスト時にサービスの依存先の仮想システムを宣言させることによって、テンプレートの設計にかける負荷を軽減できる。
【００８８】
［変形例］
上記の実施例１では、管理ソフト実行部１５が依存関係テーブル１６ａを有することとしたが、仮想システムの配備に用いるテンプレート内の定義ファイルに当該仮想システムがサービスを依存する依存先の仮想システムを埋め込んでおくことができる。例えば、テンプレートの内の定義ファイルの先頭に「ｒｅｑｕｉｒｅ  ＳＬＢ」の記述を埋め込んでおくことができる。
【００８９】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００９０】
［ハードウェア］
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【００９１】
図１５は、仮想マシン配備プログラムを実行するコンピュータのハードウェア構成の例を示す図である。図１５に示すように、コンピュータ１００は、ＣＰＵ１０２、入力装置１０３、出力装置１０４、通信インタフェース１０５、媒体読取装置１０６、ＨＤＤ（Hard  Disk  Drive）１０７、ＲＡＭ（Random  Access  Memory）１０８を有する。また、図１５に示した各部は、バス１０１で相互に接続される。
【００９２】
入力装置１０３は、マウスやキーボードであり、出力装置１０４は、ディスプレイなどであり、通信インタフェース１０５は、ＮＩＣなどのインタフェースである。ＨＤＤ１０７は、仮想マシン配備プログラム１０７ａとともに、図３、図６、図７に示した各テーブルの情報を記憶する。記録媒体の例としてＨＤＤ１０７を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【００９３】
ＣＰＵ１０２は、仮想マシン配備プログラム１０７ａを読み出してＲＡＭ１０８に展開することで、図３等で説明した各機能を実行する仮想マシン配備プロセス１０８ａを動作させる。すなわち、仮想マシン配備プロセス１０８ａは、図２に示した受付部１７ａ、特定部１７ｂ、設定部１７ｃ及び配備部１７ｄと同様の機能を実行する。このようにコンピュータ１００は、プログラムを読み出して実行することで仮想マシン配備方法を実行する情報処理装置として動作する。
【００９４】
また、コンピュータ１００は、媒体読取装置１０６によって記録媒体から仮想マシン配備プログラム１０７ａを読み出し、読み出された仮想マシン配備プログラム１０７ａを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００９５】
１    データセンタ
１０    情報処理装置
１１    ハードウェア
１３    仮想制御部
１５    管理ソフト実行部
１６ａ  依存関係テーブル
１６ｂ  アプリ管理テーブル
１６ｃ  リソース管理テーブル
１７ａ  受付部
１７ｂ  特定部
１７ｃ  設定部
１７ｄ  配備部
２０    ポータルサイトＷｅｂサーバ
３０Ａ，３０Ｂ，３０Ｃ    クライアント端末
【図１】
2015090692.tif 000003
【図２】
2015090692.tif 000004
【図３】
2015090692.tif 000005
【図４】
2015090692.tif 000006
【図５】
2015090692.tif 000007
【図６】
2015090692.tif 000008
【図７】
2015090692.tif 000009
【図８】
2015090692.tif 000010
【図９】
2015090692.tif 000011
【図１０】
2015090692.tif 000012
【図１１】
2015090692.tif 000013
【図１２】
2015090692.tif 000014
【図１３】
2015090692.tif 000015
【図１４】
2015090692.tif 000016
【図１５】
2015090692.tif 000017