(57)【要約】【課題】要件等に応じた適切な共有度でモジュール配備できるモジュール配備装置、配備方法および配備用プログラムを提供する。【解決手段】モジュール配備装置は、モジュール列の情報と、共有可否情報と、サーバ装置に配備されたモジュールの情報とを比較して、サーバに配備されたモジュールの最上位レイヤの共有可否情報が配備可能となっているサーバ装置を検索し、検索されたサーバ装置に配備されたモジュールよりも前記モジュール列において上位レイヤのモジュールの情報の出力を行なう。【選択図】      図１
2012181655.tif 000002
【特許請求の範囲】
【請求項１】
指定されたモジュールを第１レイヤとし、第ｎレイヤ（ｎは自然数）のモジュールの下位レイヤのモジュールを第ｎ＋１レイヤのモジュールとする、前記第１レイヤから前記下位レイヤのモジュールがないモジュールである最下位レイヤまでの各モジュールからなるモジュール列の情報と、各モジュールの同位レイヤのモジュールである関連モジュールの情報とを記憶するモジュール構成情報記憶手段と、
サーバ装置に配備されたモジュールの情報と、前記モジュールごとに前記サーバ装置に配備されたモジュールの上位レイヤに他のモジュールが配備可能か否かを示す共有可否情報とを格納するＰＦ構成情報記憶手段と、
前記モジュール構成情報記憶手段から取得したモジュール列の情報と、前記ＰＦ構成情報記憶手段から取得したサーバ装置に配備されたモジュールの情報とを比較して、複数の前記サーバ装置のなかで、前記モジュール列の最下位レイヤから上位方向に連続する少なくとも一部と共通するモジュール（一致モジュール）が配備され、該一致モジュールの最上位レイヤの前記共有可否情報が配備可能となっているサーバ装置を検索し、検索されたサーバ装置に配備されたモジュールよりも前記モジュール列において上位レイヤのモジュールの情報と前記上位レイヤのモジュールの前記関連モジュールの情報との出力を行なうプロビジョニング手段と、
を備えるモジュール配備装置。
【請求項２】
さらに前記サーバ装置にアプリケーションが配備されているか否かの情報を格納する前記ＰＦ構成情報記憶手段と、
前記モジュール列のなかの１つのレイヤを指定する共有許容粒度を受信する共有許容粒度受信手段と、
前記ＰＦ構成情報記憶手段を参照し、複数の前記サーバ装置のなかで、前記一致モジュールの最上位レイヤのモジュールが前記共有許容粒度によって指定されたレイヤよりも上位のレイヤであって、かつ、アプリケーションが配備されているサーバ装置以外のサーバ装置を検索する前記プロビジョニング手段と、を備える請求項１記載のモジュール配備装置。
【請求項３】
前記プロビジョニング手段は、
複数の前記サーバ装置から、前記第１レイヤから前記最下位レイヤまでのモジュール列の全てのモジュールを備えるサーバ装置のなかで、該サーバ装置に配備されているモジュールの第１レイヤのモジュールの前記共有可否情報が配備可能であるサーバ装置を検索し、該サーバ装置が存在しない場合には、前記モジュール列の上位レイヤから１つずつモジュールを順次除いた縮退モジュール列を生成し、前記縮退モジュール列のモジュールを全て備えるサーバ装置であって、該サーバ装置に配備されている前記縮退モジュールの最上位レイヤのモジュールの前記共有可否情報が配備可能であるサーバ装置を検索し、検索されたサーバ装置について前記出力を行なう請求項１または２に記載のモジュール配備装置。
【請求項４】
前記プロビジョニング手段は、前記複数のサーバ装置のなかで、該サーバ装置に配備されている前記アプリケーションの数が所定数未満のサーバ装置を検索し、該サーバ装置が存在しない場合には、予め定められた閾値に至るまで前記所定数を１ずつ順次増加させて、前記モジュールの数が該所定数未満の前記サーバ装置を検索する請求項３に記載のモジュール配備装置。
【請求項５】
前記プロビジョニング手段は、前記複数のサーバ装置のなかで、該サーバ装置に配備されている前記アプリケーションの数が所定数以上のサーバ装置を検索し、該サーバ装置が存在しない場合には、負になるまで前記所定数を１ずつ順次減少させて、前記モジュールの数が該所定数以上の前記サーバ装置を検索する請求項３に記載のモジュール配備装置。
【請求項６】
前記プロビジョニング手段は、
出力された前記上位レイヤのモジュールと前記関連モジュールとを、前記各モジュールを格納するモジュール格納手段から取得し、前記サーバ装置に配備する請求項１乃至５のいずれかに記載のモジュール配備装置。
【請求項７】
指定されたモジュールを第１レイヤとし、第ｎレイヤ（ｎは自然数）のモジュールの下位レイヤのモジュールを第ｎ＋１レイヤのモジュールとする、前記第１レイヤから前記下位レイヤのモジュールがないモジュールである最下位レイヤまでの各モジュールからなるモジュール列の情報と、各モジュールの同位レイヤのモジュールである関連モジュールの情報とを記憶するモジュール構成情報記憶手段から取得した前記モジュール列の情報と、
サーバ装置に配備されたモジュールの情報と、前記モジュールごとに前記サーバ装置に配備されたモジュールの上位レイヤに他のモジュールが配備可能か否かを示す共有可否情報とを格納するＰＦ構成情報記憶手段から取得した前記モジュールの情報とを比較し、
複数の前記サーバ装置のなかで、前記モジュール列の最下位レイヤから上位方向に連続する少なくとも一部と共通するモジュール（一致モジュール）が配備され、該一致モジュールの最上位レイヤの前記共有可否情報が配備可能となっているサーバ装置を検索し、検索されたサーバ装置に配備されたモジュールよりも前記モジュール列において上位レイヤのモジュールの情報と前記上位レイヤのモジュールの前記関連モジュールの情報との出力を行なうプロビジョニングステップをコンピュータに実行させるモジュール配備プログラム。
【請求項８】
前記モジュール列のなかで１つのレイヤを指定する共有許容粒度を受信するステップと、
さらに前記サーバ装置にアプリケーションが配備されているか否かの情報を格納する前記ＰＦ構成情報記憶手段を参照し、前記一致モジュールの最上位レイヤのモジュールが前記共有許容粒度によって指定されたレイヤよりも上位のレイヤであって、かつ、アプリケーションが配備されているサーバ装置以外のサーバ装置を検索する前記プロビジョニングステップと、を前記コンピュータに実行させる請求項７記載のモジュール配備プログラム。
【請求項９】
指定されたモジュールを第１レイヤとし、第ｎレイヤ（ｎは自然数）のモジュールの下位レイヤのモジュールを第ｎ＋１レイヤのモジュールとする、前記第１レイヤから前記下位レイヤのモジュールがないモジュールである最下位レイヤまでの各モジュールからなるモジュール列の情報と、各モジュールの同位レイヤのモジュールである関連モジュールの情報とを記憶するモジュール構成情報記憶手段から取得した前記モジュール列の情報と、
サーバ装置に配備されたモジュールの情報と、前記モジュールごとに前記サーバ装置に配備されたモジュールの上位レイヤに他のモジュールが配備可能か否かを示す共有可否情報とを格納するＰＦ構成情報記憶手段から取得した前記モジュールの情報とを比較し、
複数の前記サーバ装置のなかで、前記モジュール列の最下位レイヤから上位方向に連続する少なくとも一部と共通するモジュール（一致モジュール）が配備され、該一致モジュールの最上位レイヤの前記共有可否情報が配備可能となっているサーバ装置を検索し、検索されたサーバ装置に配備されたモジュールよりも前記モジュール列において上位レイヤのモジュールの情報と前記上位レイヤのモジュールの前記関連モジュールの情報との出力を行なうモジュール配備方法。
【請求項１０】
前記モジュール列のなかで１つのレイヤを指定する共有許容粒度を受信し、
さらに前記サーバ装置にアプリケーションが配備されているか否かの情報を格納する前記ＰＦ構成情報記憶手段を参照し、前記一致モジュールの最上位レイヤのモジュールが前記共有許容粒度によって指定されたレイヤよりも上位のレイヤであって、かつ、アプリケーションが配備されているサーバ装置以外のサーバ装置を検索する請求項９記載のモジュール配備方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モジュール配備装置、配備方法および配備プログラムに関する。
【背景技術】
【０００２】
サーバ装置等へのモジュール配備システムは、配備先サーバ装置に特定のミドルウェアが存在していることを前提とする。しかし、多様なサービスが大量のサーバリソース上で動作している環境下では、サービスの動作の前提となるミドルウェアが均一ではない場合がある。また、リソース集約を目的に複数のサービスアプリケーションでハードウェアや、ＯＳ、ＭＷ（Middle Ware）等のモジュールを共有する状況もある。しかし、共有が可能なサービスと共有が不可能なサービスとが混在した環境でのモジュール配備は困難である。その理由は、多様なサービスが動作することを前提とした場合、ＯＳ、ＭＷなどに要求される構成や設定が一様でない場合があるからである。また、サービスによって、全くモジュール共有を認めないケースや、VM（Virtual Machine）によるハードウェアまでの共有を認めるケース、MWまでの共有を認めるケースなど、モジュールの共有度が異なる多様な共有モデルがある。
【０００３】
この分野に関し、特許文献１には、ホームネットワークサーバのソフトウェア構成情報を受信して、ダウンロードプログラムモジュールのリストを作成し、プログラムモジュール間の依存関係を考慮した状態で組み込みソフトウェアの更新を自動的に実行するモジュール提供サーバについて記載されている。
【０００４】
また、特許文献２には、様々なオペレーティングシステム構成をサポートするための共通オペレーティングシステム機能セットを提供するため、依存関係の共通性に基づいてコンポーネントをグループ化するシステムについて記載されている。
【０００５】
また、特許文献３には、インストール実行指示にて指定されたパッケージと共に、当該パッケージと依存関係にあるパッケージをインストール対象に設定することが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１３５１８７
【特許文献２】特開２００５−２３５２２１
【特許文献３】特開２０１０−１７６２９５
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上述の特許文献に記載の技術では、サービスオーナ等の要件に応じた共有度でモジュールを配備することができなかった。
【０００８】
そこで、本発明は、上記の課題を解決すべく、要件等に応じた適切な共有度でモジュールを配備できるモジュール配備装置、配備方法および配備プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
かかる目的を達成するため、本発明は、指定されたモジュールを第１レイヤとし、第ｎレイヤ（ｎは自然数）のモジュールの下位レイヤのモジュールを第ｎ＋１レイヤのモジュールとする、前記第１レイヤから前記下位レイヤのモジュールがないモジュールである最下位レイヤまでの各モジュールからなるモジュール列の情報と、各モジュールの同位レイヤのモジュールである関連モジュールの情報とを記憶するモジュール構成情報記憶手段と、サーバ装置に配備されたモジュールの情報と、前記モジュールごとに前記サーバ装置に配備されたモジュールの上位レイヤに他のモジュールが配備可能か否かを示す共有可否情報とを格納するＰＦ構成情報記憶手段と、前記モジュール構成情報記憶手段から取得したモジュール列の情報と、前記ＰＦ構成情報記憶手段から取得したサーバ装置に配備されたモジュールの情報とを比較して、複数の前記サーバ装置のなかで、前記モジュール列の最下位レイヤから上位方向に連続する少なくとも一部のモジュールが共通するモジュール（一致モジュール）が配備され、該一致モジュールの最上位レイヤの前記共有可否情報が配備可能となっているサーバ装置を検索し、検索されたサーバ装置に配備されたモジュールよりも前記モジュール列において上位レイヤのモジュールの情報と前記上位レイヤのモジュールの前記関連モジュールの情報との出力を行なうプロビジョニング手段と、を備えるモジュール配備装置を提供する。
【００１０】
また、本発明は、指定されたモジュールを第１レイヤとし、第ｎレイヤ（ｎは自然数）のモジュールの下位レイヤのモジュールを第ｎ＋１レイヤのモジュールとする、前記第１レイヤから前記下位レイヤのモジュールがないモジュールである最下位レイヤまでの各モジュールからなるモジュール列の情報と、各モジュールの同位レイヤのモジュールである関連モジュールの情報とを記憶するモジュール構成情報記憶手段から取得した前記モジュール列の情報と、サーバ装置に配備されたモジュールの情報と、前記モジュールごとに前記サーバ装置に配備されたモジュールの上位レイヤに他のモジュールが配備可能か否かを示す共有可否情報とを格納するＰＦ構成情報記憶手段から取得した前記モジュールの情報とを比較し、複数の前記サーバ装置のなかで、前記モジュール列の最下位レイヤから上位方向に連続する少なくとも一部のモジュールが共通するモジュール（一致モジュール）が配備され、該モジュールの最上位レイヤの前記共有可否情報が配備可能となっているサーバ装置を検索し、検索されたサーバ装置に配備されたモジュールよりも前記モジュール列において上位レイヤのモジュールの情報と前記上位レイヤのモジュールの前記関連モジュールの情報との出力を行なうプロビジョニングステップをコンピュータに実行させるモジュール配備プログラムを提供する。
【００１１】
また、本発明は、指定されたモジュールを第１レイヤとし、第ｎレイヤ（ｎは自然数）のモジュールの下位レイヤのモジュールを第ｎ＋１レイヤのモジュールとする、前記第１レイヤから前記下位レイヤのモジュールがないモジュールである最下位レイヤまでの各モジュールからなるモジュール列の情報と、各モジュールの同位レイヤのモジュールである関連モジュールの情報とを記憶するモジュール構成情報記憶手段から取得した前記モジュール列の情報と、サーバ装置に配備されたモジュールの情報と、前記モジュールごとに前記サーバ装置に配備されたモジュールの上位レイヤに他のモジュールが配備可能か否かを示す共有可否情報とを格納するＰＦ構成情報記憶手段から取得した前記モジュールの情報とを比較し、複数の前記サーバ装置のなかで、前記モジュール列の最下位レイヤから上位方向に連続する少なくとも一部のモジュールが共通するモジュール（一致モジュール）が配備され、該モジュールの最上位レイヤの前記共有可否情報が配備可能となっているサーバ装置を検索し、検索されたサーバ装置に配備されたモジュールよりも前記モジュール列において上位レイヤのモジュールの情報と前記上位レイヤのモジュールの前記関連モジュールの情報との出力を行なうモジュール配備方法を提供する。
【発明の効果】
【００１２】
本発明は、要件等に応じた適切な共有度でモジュールを配備できるモジュール配備装置、配備方法および配備プログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の構成の一例を示すブロック図である。
【図２】各装置のハードウェア構成の一例を示す図である。
【図３】第１の実施の形態の動作の一例を説明するためのフローチャートである。
【図４】モジュール構成情報２００に含まれる情報の一例を示す図である。
【図５】依存性ツリー３００の一例を示す図である。
【図６】ＰＦ構成情報４００の構成の一例を示す図である。
【図７】第１の実施の形態における配備対象サーバを選択する手順の一例を示すフローチャートである。
【図８】第２の実施の形態の配備対象サーバを選択する手順の一例を示すフローチャートである。
【図９】第３の実施の形態の配備対象サーバを選択する手順の一例を示すフローチャートである。
【図１０】モジュール構成情報２００をツリーで表現した一例を示す図である。
【図１１】プラットフォーム構成の一例を示す図である。
【図１２】プラットフォーム構成の一例を示す図である。
【図１３】第４の実施の形態の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を用いて説明する。すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１５】
なお、各実施形態の装置等を構成する各部は、制御部、メモリ、メモリにロードされたプログラム、プログラムを格納するハードディスク等の記憶ユニット、ネットワーク接続用インターフェースなどからなり、ハードウェアとソフトウェアの任意の組合せによって実現される。そして特に断りのない限り、その実現方法、装置は限定されない。
【００１６】
また、各実施形態の説明において利用するブロック図は、ハードウェア単位の構成ではなく、機能単位の構成を示している。これらの機能ブロックはハードウェア、ソフトウェアの任意の組み合わせによって実現される。また、これらの図においては、各実施形態の構成部は物理的に結合した一つの装置により実現されるよう記載されている場合もあるが、特に断りの無い限り、その実現手段はこれに限定されない。すなわち、各実施形態で説明される構成部、装置、システム等は、二つ以上の物理的に分離した装置を有線または無線で接続することにより複数の装置により実現されてもよい。また、各構成部が物理的に分離した２つ以上装置として記載されている場合もあるが、特に断りの無い限り、その実現手段はこれに限定されない。すなわち、物理的に結合した一つの装置により実現されるようにハードウェア、ソフトウェアを任意に組み合わせることにより各実施形態の各構成部、装置、システム等が実現されてもよい。
【００１７】
図２は、図１の配備システムＡ等を構成する各装置のハードウェア構成の一例を示す図である。例えば、各装置は、制御部１０００、ネットワーク接続用の通信ＩＦ（インターフェース）２０００、メモリ３０００、及びプログラム等を格納するハードディスク等の記憶装置４０００を含む。
【００１８】
また、制御部１０００はＣＰＵ（Central Processing Unit）などからなり、ＯＳ（Operating System）を動作させて装置等の全体を制御するとともに、例えばドライブ装置などに装着された記録媒体からメモリ３０００にプログラムやデータを読み出し、これに従って各種の処理を実行する。
【００１９】
記録装置４０００は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、半導体メモリ等であって、コンピュータプログラムをコンピュータが読み取り可能に記録する。また、コンピュータプログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされても良い。ここで、特に断りの無い限り、通信網は、インターネット、ＬＡＮ（Local Area Network）、公衆回線網、無線通信網、または、これらの組み合わせ等によって構成されるネットワーク等であって良い。
【００２０】
＜実施形態１＞
次に、発明の第１の実施の形態について図面を参照して詳細に説明する。
【００２１】
［概要］
図１を参照すると、本発明の第１の実施の形態の配備システムＡは、開発環境入力部１、外部レポジトリ２、配備装置１００、データセンター１０から構成される。
【００２２】
まず、図１を参照して、本実施の形態の動作の概要について説明する。
【００２３】
開発環境入力部１は、外部から入力された、開発されたアプリケーションモジュール（ＡＰモジュール）とモジュール構成情報２００とを配備装置１００に入力する。
【００２４】
外部レポジトリ２は、プラットフォームモジュール（ＰＦモジュール）、関連モジュールを格納するレポジトリである。ＡＰモジュール、ＰＦモジュール、関連モジュールをまとめてモジュールと呼ぶ。
【００２５】
配備装置１００は、開発環境入力部１から入力された情報と、データセンター１０のサーバへのモジュール配備状況とを基に、そのＡＰモジュールが依存するＰＦモジュールを外部レポジトリ２から適宜収集してデータセンター１０に配備し、その上で開発環境入力部１から入力されたＡＰモジュールを配備する。
【００２６】
［構成］
次に、図１を参照して配備装置１００の内部構成について詳細に説明する。配備装置１００は、ＰＦ（Platform）構成管理部１０１、ＰＦ構成情報記憶部１０２、モジュール管理部１０３、モジュールレポジトリ１０４、モジュール構成管理部１０５、モジュール構成情報記憶部１０６、自動マルチレイヤプロビジョニング部１０７、キャパシティプラニング部１０８、ＡＰ（Application）モジュール配備部１０９、関連モジュール配備部１１０、ＭＷ（Middleware）配備部１１１、ＯＳ（Operating System）配備部１１２、ＶＭ（Virtual Machine）配備部１１３、共有許容粒度受信部１１４から構成される。
【００２７】
ＰＦ構成管理部１０１は、データセンター１０内に配置されたサーバのなかで、どのサーバにどのモジュールが配備されたかを示すＰＦ構成情報４００を、各サーバや各サーバを管理する図示しない管理装置等から取得してＰＦ構成情報記憶部１０２に記録する。
【００２８】
図６を参照して、ＰＦ構成情報記憶部１０２で管理される、ある時点でのデータセンター１０内のサーバのＰＦ構成情報４００の一例について説明する。ＰＦ構成情報４００はサーバ情報４１０、ＶＭ情報（仮想マシン情報）４２０、ＭＷ情報（ミドルウェア情報）４３０、ＡＰ情報（アプリケーション情報）４４０から構成される。サーバ情報４１０はデータセンター１０内のサーバ情報の一覧（サーバ情報一覧）４１１を保持する。この一覧の各レコードは、データセンター１０内のサーバを一意に識別するサーバＩＤ（Identification）とサーバのスペックを示すプロパティ情報と、共有可否を示す情報（共有可否情報）からなる。共有可否情報の具体例は後述する。
【００２９】
図６の例では、サーバ情報一覧４１１の各レコード４１２、４１３、４１４はＶＭ情報４２０のサーバ毎のＶＭ情報一覧４２１、４２４、４２５をそれぞれ参照する。すなわち、サーバ情報一覧４１１のサーバＩＤ“ＳＶ＿ａ”のレコード４１２はＶＭ情報一覧４２１を参照し、レコード４１３はＶＭ情報一覧４２４を参照し、レコード４１４はＶＭ情報一覧４２５を参照する。これらのＶＭ情報一覧は、それぞれのサーバＩＤが示すサーバ上に配備されている仮想マシン（ＶＭイメージ）の情報の一覧を示している。
【００３０】
これらのＶＭ情報一覧の各レコードはデータセンター１０内の配備済み仮想マシンを一意に識別するＶＭ＿ＩＤと、仮想マシンにインストールされているＯＳの種類を示すＯＳ情報と、共有可否を示す情報からなる。ＶＭ情報４２０の各レコードはＭＷ情報４３０のＶＭ毎のＭＷ情報一覧を参照する。図６の例では、ＶＭ情報一覧４２１のＶＭ＿ＩＤ“ＶＭ＿ａ”のレコード４２２はＭＷ情報一覧４３１を参照し、レコード４２３はＭＷ情報一覧４３４を参照する。これらのＭＷ情報一覧はそれぞれのＶＭ＿ＩＤが示す仮想マシン上に配備されているＭＷモジュールの情報の一覧を示している。
【００３１】
これらのＭＷ情報一覧の各レコードはデータセンター１０内の配備済みＭＷモジュールを一意に識別するＭＷ＿ＩＤとＭＷの種別、共有可否を示す情報からなる。ＭＷ情報一覧の各レコードはＡＰ情報４４０のＭＷ毎のＡＰ情報の一覧を参照する。この例では、ＭＷ情報一覧４３１のＭＷ＿ＩＤ“ＭＷ＿ａ”のレコード４３２はＡＰ情報一覧４４１を参照し、レコード４３３はＡＰ情報一覧４４２を参照する。これらのＡＰ情報一覧はそれぞれのＭＷ＿ＩＤが示すＭＷモジュール上に配備されているＡＰモジュールの情報の一覧を示している。
【００３２】
これらのＡＰ情報一覧の各レコードはデータセンター１０内の配備済みＡＰモジュールを一意に識別するＡＰ＿ＩＤとそのプロパティ情報からなる。
【００３３】
運用者等によって、あるモジュールの共有可否を示す情報に“Ｎｏ”が指定されている場合、そのモジュールに、そのモジュールよりも上位のレイヤのモジュールが新たに配備されないことを示す。この例では、レコード４１３、４２４からサーバＩＤ“ＳＶ＿ｂ”で識別されるサーバはＶＭ＿ＩＤ“ＶＭ＿ｄ”で識別される仮想マシンによって占有され、その仮想マシンに、それより上位レイヤのモジュールが新たに配備されることはない。また、レコード４２３、４３４からＶＭ＿ＩＤ“ＶＭ＿ｂ”で識別される仮想マシンはＭＷ＿ＩＤ“ＭＷ＿ｃ”で識別されるＭＷモジュールに占有され、そのＭＷモジュールに、そのＭＷモジュールよりも上位レイヤのモジュールが新たに配備されることはない。具体例については図１０、１１、１２を用いて後述する。
【００３４】
モジュール管理部１０３は、開発環境入力部１から取得したＡＰモジュールや、外部レポジトリ２から取得したミドルウェア（ＭＷ）モジュール、ＯＳモジュールなどのＰＦモジュールをモジュールレポジトリ１０４に記録する。
【００３５】
モジュール構成管理部１０５は、開発環境入力部１から取得したＡＰモジュールのモジュール構成情報２００をモジュール構成情報記憶部１０６に記録する。
【００３６】
図４を参照して、モジュール構成情報記憶部１０６で管理されるモジュール構成情報２００の構造について説明する。モジュール構成情報２００は、モジュールの名称を示すモジュール名（自モジュール名）２０１、このモジュールがサーバ等で動作するための前提となるこのモジュールの直下の下位レイヤであるモジュールのモジュール名を示した依存モジュール名２０５、このモジュールの動作に必要な関連ライブラリなどにあたる同位レイヤのモジュールのモジュール名を示した関連モジュール名２０６から構成される。ここで、レイヤとは、プログラム階層構造の各層を指し、あるレイヤを利用するレイヤをそのレイヤの上位レイヤと呼び、反対に、利用されるレイヤを下位レイヤと呼ぶ。例えば、ＭＷ層はＯＳ層の上位レイヤであり、ＯＳ層はＭＷ層の下位レイヤである。また、モジュールの動作に必要な関連ライブラリなど、当該モジュールと同じ階層のレイヤを、当該モジュールのレイヤの同位レイヤと呼ぶ。モジュール構成情報２００は、これらの情報に加えて、さらに、モジュールが配備される前の状態のモジュール本体への参照を示すモジュールパッケージ２０２、モジュール配備時の設定を示す配備記述子２０３、前記モジュールパッケージに従って配備を行う方式を示すパッケージング２０４から構成されていても良い。
【００３７】
モジュール構成情報２００は、依存モジュール名２０５や関連モジュール名２０６から参照される他のＰＦモジュールや他のＡＰモジュールなどの他のモジュールについても定義されている。ここで、上述した開発環境入力部１から入力されたＡＰモジュールのモジュール構成情報２００の依存モジュール名２０５で指定されたＰＦモジュールを、指定モジュールとよぶ。つまり、指定モジュールは、開発環境入力部１から入力されたＡＰモジュールが依存するＰＦモジュールの中で、最上位レイヤのＰＦモジュールである。
【００３８】
自動マルチレイヤプロビジョニング部１０７は、モジュール構成情報２００を連結していくことによって、ＡＰモジュールの動作に必要なサーバに配備すべきモジュール全体の依存性を取得することができる。この依存性を示す情報を依存性ツリー３００と呼ぶ。依存性ツリー３００の一例を図５に示す。
【００３９】
依存性ツリー３００は、図５に示すように、ＡＰモジュールを始点（最上位レイヤ、最上位層）、モジュール構成情報２００の依存モジュール名２０５が定義されていないモジュールを終点（最下位レイヤ、最下位層）として、同位レイヤの関連モジュールと、下位レイヤのＰＦモジュールとの階層構造を、依存モジュール名２０５と関連モジュール名２０６とに基づいて表現したツリー状の情報である。
【００４０】
依存性ツリー３００は、例えば、自動マルチレイヤプロビジョニング部１０７が、モジュール構成情報２００の依存モジュール名２０５と関連モジュール名２０６とを参照して生成する。例えば、自動マルチレイヤプロビジョニング部１０７は、入力されたＡＰモジュールのモジュール構成情報２００（モジュール構成情報Ａとする。）の自モジュール名（モジュールＡとする。）を取得する。次に、自動マルチレイヤプロビジョニング部１０７は、モジュール構成情報Ａの依存モジュール名２０５に設定されているモジュールのモジュール構成情報２００（モジュール構成情報Ｂとする。）を、モジュール構成情報記憶部１０６から取得する。自動マルチレイヤプロビジョニング部１０７は、モジュール構成情報Ｂに設定されている自モジュール名（モジュールＢとする。）を取得し、モジュールＡの下位レイヤにモジュールＢを設定する。すなわち、自動マルチレイヤプロビジョニング部１０７は、ｎを自然数として、ｎ番目のレイヤである第ｎ層のモジュールのモジュール構成情報２００の依存モジュール名２０５に設定されているモジュールを自モジュール名とするモジュール構成情報２００が定義されたモジュールを第ｎ＋１層のモジュールとする手順を繰り返し、下位レイヤのモジュールを順々に設定していくことで、依存性ツリー３００の終点までプラットフォームの依存性を取得することができる。
【００４１】
同様に、自動マルチレイヤプロビジョニング部１０７は、関連モジュール名２０６を参照して、上記と同様にして同位レイヤの関連モジュールの依存性を取得することができる。なお、依存性ツリー３００は自動マルチレイヤプロビジョニング部１０７以外の手段が生成しても良い。また、生成された依存性ツリー３００はモジュール構成情報記憶部１０６などの記憶部に記憶される。また、後述する連結リストもモジュール構成情報記憶部１０６などの記憶部に記憶されてもよい。
【００４２】
自動マルチレイヤプロビジョニング部１０７は、サーバにどの程度のリソースを割り当てるかをキャパシティプラニング部１０８に問い合わせる。自動マルチレイヤプロビジョニング部１０７は、キャパシティプラニング部１０８から取得したリソースの割り当てに従って、関連モジュール配備部１１０、ＭＷ配備部１１１、ＯＳ配備部１１２、ＶＭ配備部１１３を用いてＡＰモジュール配備に必要なＰＦモジュールをデータセンター１０内に配備する。その後、自動マルチレイヤプロビジョニング部１０７は、ＡＰモジュール配備部１０９を介して該当ＡＰモジュールをサーバに配備する。ここで、配備とは、（１）プログラムの送信（２）構成情報ファイルなどの変更（３）配備されたモジュールの動作に必要となるファイルの生成（４）管理者への作業依頼メッセージの表示、応答入力などである。一般的に、関連モジュールについては、（２）〜（３）の発生頻度はＰＦモジュールに比べて小さい。
【００４３】
キャパシティプラニング部１０８は、依存性ツリー３００の情報とユーザ等が入力したサービス要件とを基にデータセンター１０内のサーバのキャパシティプラニングを行い、何台のサーバにＡＰモジュール等を多重配備するかを示す情報（配備情報）を出力する。キャパシティプラニングの具体的な方法については事前に計測されている標準システムモデルからどの程度のリソースが必要かを見積もる方法やシミュレーションによりリソースの程度を見積もる方法があるが、特にその方法は制限されない。キャパシティプラニング部１０８は公知の方法を用いてキャパシティプラニングを行なうことができる。また、サービス要件とは、ユーザ等が要求するサービスの条件（サービスが提供される時間帯や応答時間、その他のサービスレベル等）を示す情報であり、サービスごとに配備装置１００内の図示しない記憶部が記憶しておき、キャパシティプラニング部１０８が所定のタイミングで該記億部からサービス要求を取得し、キャパシティプラニングの際に利用しても良い。
【００４４】
ＡＰモジュール配備部１０９、関連モジュール配備部１１０、ＭＷ配備部１１１、ＯＳ配備部１１２、ＶＭ配備部１１３は、それぞれ、自動マルチレイヤプロビジョニング部１０７の指示によって、各モジュールを配備すべきサーバに、ＡＰモジュール、関連モジュール、ＭＷモジュール、ＯＳモジュール、ＶＭイメージをそれぞれ配備する。
【００４５】
共有許容粒度受信部１１４は、サービスオーナ等の意向に従って運用者が指定した共有許容粒度を受信する。共有許容粒度とは、運用者等が配備装置１００を用いてデータセンター１０内のサーバに配備したモジュールのうち、共有許容粒度として設定されたモジュールのレイヤよりも下位のレイヤのモジュールは、それより上位レイヤの他のモジュールとＡＰモジュールとで共有可能であることを示す情報である。すなわち、共有許容粒度が設定されたモジュールのレイヤの直下のモジュールのレイヤは、自動マルチレイヤプロビジョニング部１０７がサーバに配備しようとしているモジュールと他のＡＰモジュールとで共有可能な上限のレイヤである。共有許容粒度は、例えばサービスオーナ等の要件に応じて運用者等が設定する。データセンター１０にはＡＰモジュールの配備を前提にして、予めＭＷモジュール以下の下位レイヤのＰＦモジュールを配備したリソースを用意（プロビジョニング）しておくことがある。共有許容粒度受信部１１４は、例えば、このようにプロビジョニングされたサーバのみをモジュール配備先とするのか、他のＡＰモジュールが配備されているサーバもモジュール配備先として良いのかを、サービスオーナ等の用件に応じて指定するために共有許容粒度を設定することができる。
【００４６】
［動作］
次に、図３のフローチャートを参照して本実施の形態における自動マルチレイヤプロビジョニング部１０７によるＡＰ配備（Ｐ１０００）の動作について詳細に説明する。
【００４７】
自動マルチレイヤプロビジョニング部１０７は、配備対象のＡＰモジュールとモジュール構成情報２００をモジュール管理部１０３、モジュール構成管理部１０５を介して取得する（Ｓ１００１）。自動マルチレイヤプロビジョニング部１０７は、モジュール構成情報２００に含まれる依存モジュール名２０５と関連モジュール名２０６に基づき依存性ツリー３００を取得する（Ｓ１００２）。自動マルチレイヤプロビジョニング部１０７は、キャパシティプラニング部１０８に依存性ツリー３００を送信する。キャパシティプラニング部１０８は、依存性ツリー３００の情報と外部から入力されたサービス要件をもとにキャパシティプラニングを行い、何台のサーバにＡＰモジュールを多重配備するかを決定する（Ｓ１００３）。このステップの結果として何台のサーバにＡＰモジュールを多重配備するかを示す配備情報が出力される。
【００４８】
次に自動マルチレイヤプロビジョニング部１０７は、キャパシティプラニング部１０８から配備情報を受け取り、該配備情報と依存性ツリー３００、及び、共有許容粒度受信部１１４から取得した共有許容粒度を基にして、配備先のサーバを選択する（Ｓ１００４）。このステップについては詳細な手順を図７を用いて後述する。このステップの結果として、自動マルチレイヤプロビジョニング部１０７は、配備先のサーバと、それらの各々のサーバに対しどのＰＦモジュールの配備が必要かの情報を得る。配備可能なサーバが足りない場合（Ｓ１００５のＹ）、自動マルチレイヤプロビジョニング部１０７は、配備不可能である旨をエラー出力し（Ｓ１００６）、一連の処理を終了する。
【００４９】
一方、配備可能なサーバがある場合（Ｓ１００５のＮ）、自動マルチレイヤプロビジョニング部１０７は、ＶＭイメージを配備すべきサーバが存在する場合には、そのサーバに、ＶＭ配備部１１３を介して、依存性ツリー３００で指定されるＶＭイメージを配備する（Ｓ１００７）。次に自動マルチレイヤプロビジョニング部１０７は、依存モジュール名２０５を参照して、ＶＭイメージの上位レイヤであるＯＳモジュールを配備すべきサーバが存在する場合には、そのサーバに、ＯＳ配備部１１２を介して、依存性ツリー３００で指定されるＯＳモジュールを配備する（Ｓ１００８）。
【００５０】
つづいて自動マルチレイヤプロビジョニング部１０７は、依存モジュール名２０５を参照し、ＯＳモジュールの上位レイヤであるＭＷモジュールを配備すべきサーバが存在する場合には、そのサーバに、ＭＷ配備部１１１を介して、依存性ツリー３００で指定されるＭＷモジュールを配備する（Ｓ１００９）。
【００５１】
次に、自動マルチレイヤプロビジョニング部１０７は、関連モジュール名２０６を参照し、関連モジュールを配備すべきサーバが存在する場合には、依存性ツリー３００に示された関連モジュール名２０６の終点の関連モジュールから順に、そのサーバに関連モジュール配備部１１０を介して関連モジュールを配備する（Ｓ１０１０）。次に、自動マルチレイヤプロビジョニング部１０７は、依存性ツリー３００の始点であるＡＰモジュールを配備すべきサーバが存在する場合には、そのサーバに、ＡＰモジュール配備部１０９を介してＡＰモジュールを配備する（Ｓ１０１１）。
【００５２】
最後に、自動マルチレイヤプロビジョニング部１０７は、ここまでの配備状況をＰＦ構成管理部１０１に通知して、ＰＦ構成情報記憶部１０２の記憶するＰＦ構成情報４００に反映させる（Ｓ１０１２）。また、このステップにおいて、自動マルチレイヤプロビジョニング部１０７は、共有許容粒度が設定されたモジュールより下位レイヤのモジュールのＰＦ構成情報４００の共有可否情報の値を“Ｙｅｓ”にセットし、共有許容粒度が設定されたモジュールより上位レイヤのモジュールのＰＦ構成情報４００の共有可否情報の値を“Ｎｏ”にセットする。以上で一連のＡＰ配備を終了する。
【００５３】
次に、ステップＳ１００４の詳細な動作の一例について、図７のフローチャートを参照して説明する。この手順ではまず、自動マルチレイヤプロビジョニング部１０７は、依存性ツリー３００からＰＦモジュールのモジュール構成情報２００のみを取り出したリスト（連結リスト）を取得する（Ｓ２００１）。自動マルチレイヤプロビジョニング部１０７は、共有許容粒度受信部１１４から共有許容粒度を取得する（Ｓ２００２）。
【００５４】
次に、自動マルチレイヤプロビジョニング部１０７は、連結リストで示されるＰＦモジュールが全て配備されているサーバのうち、配備先のサーバに配備された、連結リストで示されるＰＦモジュールの最上位レイヤのＰＦモジュールの共有可否情報が“Ｙｅｓ”のサーバを、ＰＦ構成情報記憶部１０２が記憶するＰＦ構成情報４００から検索する（Ｓ２００３）。
【００５５】
ここで、自動マルチレイヤプロビジョニング部１０７は、その時点での連結リストの最上位レイヤのモジュールが、共有許容粒度が示すモジュールよりも上位レイヤのモジュールである場合（Ｓ２００４のＹ）、ＰＦ構成情報記憶部１０２を参照して、既に他のＡＰモジュールが配備されているサーバを検索結果から除外してもよい（Ｓ２００５）。
【００５６】
次に、自動マルチレイヤプロビジョニング部１０７は、現在の連結リストに含まれるＰＦモジュールと依存性ツリー３００に含まれるＰＦモジュールとを比較してそのサーバに配備すべきＰＦモジュールのリストを、前のステップの結果発見されたサーバ名とともに結果リストに追加する（Ｓ２００６）。具体的には、自動マルチレイヤプロビジョニング部１０７は、現在の連結リストに含まれるＰＦモジュールと依存性ツリー３００に含まれるＰＦモジュールとを比較して、依存性ツリー３００に含まれるが、現在の連結リストには含まれないＰＦモジュールを抽出する。例えば、自動マルチレイヤプロビジョニング部１０７は、依存性ツリー３００のレイヤのモジュールから下位レイヤ方向に、各ＰＦモジュールが、現在の連結リストに含まれるか否かを順々に比較していき、含まれなかったＰＦモジュールを抽出する。自動マルチレイヤプロビジョニング部１０７は、該抽出したＰＦモジュールを、そのサーバに配備すべきＰＦモジュールとし、そのサーバに配備すべきＰＦモジュールと、前のステップの結果発見されたサーバ名とを対応付けて結果リストに追加する。結果リストとは、サーバ名とそのサーバに配備するＰＦモジュールとを対応付けて記憶するリストであり、自動マルチレイヤプロビジョニング部１０７によって図示しない記憶部に格納される。この時点で結果リストに含まれるサーバ台数が要求されたサーバ台数に達していれば（Ｓ２００７のＹ）、自動マルチレイヤプロビジョニング部１０７は、結果リストとともに、検索されたサーバに配備する各モジュールのリストを出力してもよい（Ｓ２００８）。
【００５７】
一方、まだ結果リストのサーバ台数が要求されたサーバ台数に達していなければ（Ｓ２００７のＮ）、自動マルチレイヤプロビジョニング部１０７は、連結リストの最上位レイヤのＰＦモジュールを削除する（Ｓ２００９）。連結リスト内のＰＦモジュールが残っておらず、削除できるＰＦモジュールがない場合（Ｓ２０１０のＮ）、自動マルチレイヤプロビジョニング部１０７は、配備先サーバが足りない旨を出力し（Ｓ２０１１）、手順を終了する。
【００５８】
まだ連結リスト内にＰＦモジュールが残っている場合（Ｓ２０１０のＹ）、ステップＳ２００３からの手順を繰り返す。
【００５９】
次に、より具体的な例を用いて、本実施の形態の動作の概略を図１０〜１２を参照して説明する。
【００６０】
図１０は、あるアプリケーションＡＰ１ ５０１の構成情報５００をツリー構造として表現した様子を示す。アプリケーションＡＰ１ ５０１は、依存モジュール名２０５としてＭＷ２ ５０２が設定され、関連モジュール名２０６としてＬｉｂ Ａ ５０３、Ｌｉｂ Ｂ ５０４が設定されている。さらにＭＷ２の構成情報５１０は、依存モジュール名２０５としてＭＷ１ ５１２が設定されている。さらにＭＷ１ ５２０の構成情報５２０は、依存モジュール名２０５としてＯＳ１ ５２２が設定されている。また、運用者等によって、共有許容粒度としてＭＷ２ ５０２が設定されるとする。
【００６１】
自動マルチレイヤプロビジョニング部１０７は、キャパシティプラニング部１０８から、この構成を４台の仮想環境にインストール旨の配備情報を取得したとする。また、データセンター１０内のプラットフォーム構成の状況を図１１に示す。図１１に示されるように、サーバ７０１に配備されたＭＷ１と、それより上位のレイヤのモジュールは共有可否情報が“ＮＯ”であり、サーバ７０３に配備されたＶＭと、それより上位のレイヤのモジュールは共有可否情報が“ＮＯ”である。
【００６２】
自動マルチレイヤプロビジョニング部１０７は、まず、上記ＡＰ１の構成情報から連結リストを取り出すと、ＭＷ２、ＭＷ１、ＯＳ１となる。自動マルチレイヤプロビジョニング部１０７は、連結リストのＭＷ２、ＭＷ１、ＯＳ１の構成を全て備えるサーバをデータセンター１０内のサーバから検索する。
【００６３】
データセンター１０内のサーバの中でこの構成を満たす仮想環境をもつサーバは、サーバ７０１、サーバ７０２の２台のサーバであるから、自動マルチレイヤプロビジョニング１０７は、これら２台のサーバを検索する。しかし、サーバ７０１のＭＷ２の共有可否情報は“ＮＯ”なので、この段階ではサーバ７０２のみが配備先サーバの候補であり、ＡＰ１モジュールが配備対象である。
【００６４】
これだけでは要求された４台に満たないので、自動マルチレイヤプロビジョニング１０７は、連結リストの最上位レイヤのモジュールを削除して、ＭＷ１、ＯＳ１にする。この構成を満たす仮想環境をもつサーバはサーバ７０１、サーバ７０４となる。しかし、７０１のＭＷ１の共有可否情報は“ＮＯ”なので、この段階で追加されるのはサーバ７０４のみである。
【００６５】
まだ配備先サーバの候補が２台足りないため、自動マルチレイヤプロビジョニング１０７は、連結リストの最上位レイヤのモジュールをさらに削除してＯＳ１とする。この構成を満たす仮想環境として７０１、７０６が該当し、ＯＳ１のレイヤはいずれも共有可否情報が“Ｙｅｓ”であるため、自動マルチレイヤプロビジョニング１０７は、７０１と７０６を選択することで、当初の要求である４台を選択することができる。
【００６６】
次に、自動マルチレイヤプロビジョニング１０７は、この選択されたサーバに順次ＰＦモジュールを配備していく。まず、自動マルチレイヤプロビジョニング１０７は、ＭＷ配備部１１１を介して、サーバ７０１、サーバ７０６に、ＭＷ１を配備する。続いて、自動マルチレイヤプロビジョニング１０７は、ＭＷ配備部１１１を介して、サーバ７０１、サーバ７０４、サーバ７０６にＭＷ２を配備する。次に自動マルチレイヤプロビジョニング１０７は、関連モジュール配備部１１０を介して、サーバ７０１、サーバ７０２、サーバ７０４、サーバ７０６に関連モジュールＬｉｂＡ、ＬｉｂＢを配備する。さらに自動マルチレイヤプロビジョニング１０７は、ＡＰモジュール配備部１０９を介して、これらのサーバにＡＰ１モジュールを配備する。
【００６７】
共有許容粒度がＭＷ２であるため、自動マルチレイヤプロビジョニング１０７は、新たに配備したモジュールのＭＷ２以上の共有可否情報を“Ｎｏ”にする。モジュール配備後のサーバの状態を図１２に示す。
【００６８】
このような構成により、本実施形態にかかる配備装置１００はデータセンター１０内のサーバへのＰＦモジュール配備状況、及び、共有可否情報に基づいて、アプリケーション動作の前提となるモジュールからライブラリなどの関連モジュールまでを統合的にプロビジョニングしてアプリケーションを配備することができる。
【００６９】
＜実施形態２＞
次に、本発明の第２の実施の形態について、図面を参照して詳細に説明する。本実施の形態では、ＡＰモジュールごとの性能を確保するために、配備装置１００は、できるだけ他のＡＰモジュールがプラットフォームを共有しないように配備先のサーバを選択する点が実施形態１と異なる。また、共有許容粒度受信部１１４が、サーバに配備されるＡＰモジュールが他のＡＰモジュールとＭＷモジュール等のリソース共有を許容するか否かを表す共有許容粒度も受信する点で実施形態１と異なる。
【００７０】
本実施の形態における図３のステップＳ１００４の配置サーバの選択について図８のフローチャートを使って説明する。
【００７１】
図８の配置サーバの選択Ｐ２１００の始まる段階、すなわち、上述の図３のステップＳ１００４からの手順を説明する。この手順ではまず、自動マルチレイヤプロビジョニング部１０７は、配備対象サーバの候補を抽出する時、できるだけＡＰモジュール配備を分散させるために、いくつまで他のＡＰモジュールが配備されているサーバを選択するかを決定する共有個数カウンタの値を１に初期化する（Ｓ２１０１）。
【００７２】
自動マルチレイヤプロビジョニング部１０７は、依存性ツリー３００から連結リストを取得する（Ｓ２１０２）。自動マルチレイヤプロビジョニング部１０７は、配備しようとしているＡＰモジュールの共有許容粒度を、共有許容粒度受信部１１４から取得する（Ｓ２１０３）。
【００７３】
次に自動マルチレイヤプロビジョニング部１０７は、ＰＦ構成管理部１０１を介してＰＦ構成情報記憶部１０２から、この連結リストで示されるＰＦモジュールが全て配備されており、直接の配備先となる最上位レイヤのＰＦモジュール（配備先のサーバに配備された、現在の連結リストで示されるＰＦモジュールの最上位レイヤのＰＦモジュール）の共有可否情報が“Ｙｅｓ”のサーバを検索する（Ｓ２１０４）。自動マルチレイヤプロビジョニング部１０７は、ステップＳ２１０４で取り出したサーバのうち、既に配備されているＡＰモジュールの数が共有個数カウンタの値未満のサーバを抽出する（Ｓ２１０５）。ここで、自動マルチレイヤプロビジョニング部１０７は、その時点での連結リストの最上位レイヤのモジュールが、共有許容粒度が設定されたモジュールより上位レイヤのモジュールである場合（Ｓ２１０６のＹ）、既に他のＡＰモジュールが配備されているサーバは検索結果から除外してもよい（Ｓ２１０７）。
【００７４】
次に自動マルチレイヤプロビジョニング部１０７は、現在の連結リストに含まれるＰＦモジュールと依存性ツリー３００に含まれるＰＦモジュールを比較して、そのサーバに配備すべきＰＦモジュールのリストを、前のステップの結果発見されたサーバ名とともに結果リストに追加する（Ｓ２１０８）。この時点で結果リストに含まれるサーバ台数が要求されたサーバ台数に達していれば（Ｓ２１０９のＹ）、自動マルチレイヤプロビジョニング部１０７は、その時点での結果リストを出力し（Ｓ２１１０）、手順を終了する。
【００７５】
まだ結果リストのサーバ台数が要求されたサーバ台数に達していなければ（Ｓ２１０９のＮ）、自動マルチレイヤプロビジョニング部１０７は、連結リストの最上位レイヤのＰＦモジュールを削除する（Ｓ２１１１）。まだ連結リストにＰＦモジュールが残っている場合（Ｓ２１１２のＹ）、自動マルチレイヤプロビジョニング部１０７は、ステップＳ２１０４からの手順を繰り返す。連結リストに、削除できるＰＦモジュールがない場合（Ｓ２１１２のＮ）、自動マルチレイヤプロビジョニング部１０７は、共有個数カウンタの値を１増加させる（Ｓ２１１３）。
【００７６】
共有個数カウンタの値があらかじめ設定した上限値を超えていなければ（Ｓ２１１４のＮ）、自動マルチレイヤプロビジョニング部１０７は、ステップＳ２１０２からの手順を繰り返す。共有個数カウンタの値が上限値を超えた場合（Ｓ２１１４のＹ）、自動マルチレイヤプロビジョニング部１０７は、配備先サーバが足りないことを出力し（Ｓ２１１５）、手順を終了する。
【００７７】
このような構成により、本実施形態にかかる配備装置１００はデータセンター１０内のサーバへのＰＦモジュール配備状況、及び、共有可否情報に従って、アプリケーション動作の前提となるモジュールから、ライブラリなどの関連モジュールまでを統合的にプロビジョニングしてアプリケーションを配備することができる。また、配備装置１００は、ＡＰモジュールごとの性能を確保するために、できるだけ他のＡＰモジュールがプラットフォームを共有しないように配備先のサーバを選択することができる。
【００７８】
＜実施形態３＞
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。本実施の形態では、より少ないサーバにモジュール配備するために、できるだけ他のＡＰモジュールとプラットフォームを共有するように配備先サーバを選択する点が実施形態１と異なる。構成については実施形態２と同様である。
【００７９】
本実施の形態における図３のステップＳ１００４の配置サーバの選択について図９のフローチャートを使って説明する。
【００８０】
配置サーバの選択Ｐ２２００の始まる段階、すなわち、上述の図３のステップＳ１００４以降の手順を説明する。この手順ではまず、自動マルチレイヤプロビジョニング部１０７が配備対象サーバの候補を抽出する時、より共有度を上げるため、いくつ以上のＡＰモジュールが配備されているサーバを選択するかの目安となる共有個数カウンタの値をあらかじめ決められた最大値に初期化する（Ｓ２２０１）。
【００８１】
自動マルチレイヤプロビジョニング部１０７は、依存性ツリー３００から連結リストを取得する（Ｓ２２０２）。次に自動マルチレイヤプロビジョニング部１０７は、配備しようとしているＡＰモジュールの共有許容粒度を共有許容粒度受信部１１４から取得する（Ｓ２２０３）。
【００８２】
次に自動マルチレイヤプロビジョニング部１０７は、ＰＦ構成管理部１０１を介してＰＦ構成情報記憶部１０２から、この連結リストで示されるＰＦモジュールが全て配備されており、直接の配備先になる最上位レイヤのＰＦモジュールの共有可否情報が“Ｙｅｓ”のサーバを検索する（Ｓ２２０４）。自動マルチレイヤプロビジョニング部１０７は、ステップＳ２２０４で取り出したサーバのうち、既に配備されているＡＰモジュールの数が共有個数カウンタの値以上のサーバを抽出する（Ｓ２２０５）。ここで、自動マルチレイヤプロビジョニング部１０７は、その時点での連結リストの最上位レイヤのモジュールが、共有許容粒度が設定されたモジュールより上位レイヤのモジュールである場合（Ｓ２２０６のＹ）、他のＡＰモジュールが配備されているサーバは検索結果から除外してもよい（Ｓ２２０７）。
【００８３】
次に自動マルチレイヤプロビジョニング部１０７は、現在の連結リストに含まれるＰＦモジュールと依存性ツリー３００に含まれるＰＦモジュールを比較してそのサーバに配備すべきＰＦモジュールのリストを、前のステップの結果発見されたサーバ名とともに結果リストに追加する（Ｓ２２０８）。自動マルチレイヤプロビジョニング部１０７は、この時点で結果リストに含まれるサーバ台数が要求されたサーバ台数に達していれば（Ｓ２２０９のＹ）、その時点での結果リストを返信し（Ｓ２２１０）、手順を終了する。
【００８４】
まだ結果リストのサーバ台数が要求されたサーバ台数に達していなければ（Ｓ２２０９のＮ）、自動マルチレイヤプロビジョニング部１０７は、連結リストの最上位レイヤのＰＦモジュールを削除する（Ｓ２２１１）。まだ連結リストのモジュールが残っている場合（Ｓ２２１２のＹ）、自動マルチレイヤプロビジョニング部１０７は、ステップＳ２２０４からの手順を繰り返す。
【００８５】
連結リストに既に削除できるＰＦモジュールがない場合（Ｓ２２１２のＮ）、自動マルチレイヤプロビジョニング部１０７は、共有個数カウンタの値を１減少させる（Ｓ２２１３）。共有個数カウンタの値が０以上であれば（Ｓ２２１４のＮ）、自動マルチレイヤプロビジョニング部１０７は、ステップＳ２２０２からの手順を繰り返す。
【００８６】
共有個数カウンタの値が負の数になった場合（Ｓ２２１４のＹ）、自動マルチレイヤプロビジョニング部１０７は、配備先サーバが足りないことを返信し（Ｓ２２１５）、手順を終了する。
【００８７】
このような構成により、本実施形態にかかる配備装置１００はデータセンター１０内のサーバへのＰＦモジュール配備状況、及び、共有可否情報に従って、アプリケーション動作の前提となるモジュールから、ライブラリなどの関連モジュールまでを統合的にプロビジョニングしてアプリケーションを配備することができる。また、配備装置１００は、より少ないサーバにモジュール配備するために、できるだけ他のＡＰモジュールとプラットフォームを共有するように配備先サーバを選択することができる。
【００８８】
＜実施形態４＞
次に、本発明の第４の実施の形態について図面を参照して詳細に説明する。
【００８９】
本実施の形態の配備装置１００は、自動マルチレイヤプロビジョニング部１０７、モジュール構成情報記憶部１０６、ＰＦ構成情報記憶部１０２を備える。
【００９０】
モジュール構成情報記憶部１０６は、指定モジュールを第１レイヤとし、第ｎレイヤのモジュールの下位レイヤのモジュールである第ｎ＋１レイヤのモジュールとする、第１レイヤから最下位レイヤまでの各モジュールからなるモジュール列の情報と、各モジュールの同位レイヤのモジュールである関連モジュールの情報とを、例えばモジュール構成情報２００として記憶する。
【００９１】
ＰＦ構成情報記憶部１０２は、サーバに配備したモジュールの共有可否を示す共有可否情報を記憶する。
【００９２】
自動マルチレイヤプロビジョニング部１０７は、前記モジュール列の情報と、共有可否情報と、外部から取得した複数のサーバに配備されたモジュールの情報と、に基づいて前記複数のサーバからサーバを選択し、選択されたサーバに配備されたモジュールよりも前記モジュール列において上位レイヤのモジュールの情報と前記上位レイヤのモジュールの前記関連モジュールの情報との出力を行なう。
【００９３】
このような構成により、本実施形態にかかる配備装置１００はデータセンター１０内のサーバへのＰＦモジュール配備状況、及び、共有可否の情報に従って、アプリケーション動作の前提となるモジュールから、ライブラリなどの関連モジュールまでを統合的にプロビジョニングしてアプリケーションを配備することができる。
【００９４】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００９５】
１    開発環境入力部
２    外部レポジトリ
１０  データセンター
１００  配備装置
１０１  ＰＦ構成管理部
１０２  ＰＦ構成情報記憶部
１０３  モジュール管理部
１０４  モジュールレポジトリ
１０５  モジュール構成管理部
１０６  モジュール構成情報記憶部
１０７  自動マルチレイヤプロビジョニング部
１０８  キャパシティプラニング部
１０９  ＡＰモジュール配備部
１１０  関連モジュール配備部
１１１  ＭＷ配備部
１１２  ＯＳ配備部
１１３  ＶＭ配備部
１１４  共有許容粒度受信部
【図１】
2012181655.tif 000003
【図２】
2012181655.tif 000004
【図３】
2012181655.tif 000005
【図４】
2012181655.tif 000006
【図５】
2012181655.tif 000007
【図６】
2012181655.tif 000008
【図７】
2012181655.tif 000009
【図８】
2012181655.tif 000010
【図９】
2012181655.tif 000011
【図１０】
2012181655.tif 000012
【図１１】
2012181655.tif 000013
【図１２】
2012181655.tif 000014
【図１３】
2012181655.tif 000015