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