(57)【要約】運用要件に応じて、ＡＰモジュールに係るシステム構成を変更する。  配備装置１００のモジュール構成情報記憶部１０４は、複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び関連モジュールがとりうる、１以上の処理装置１１への１以上の配備形式と、を含む構成情報２００を記憶する。配備部１０５は、複数のモジュールから、指定されたモジュールの構成情報２００に含まれる仕様を満たす関連モジュールを抽出し、指定されたモジュールと抽出された関連モジュールとの配備形式が、当該構成情報２００に含まれる１以上の配備形式の内の指定された配備形式となるように、指定されたモジュール、及び、抽出された関連モジュールの各々の配備先の処理装置１１を決定し、出力する。
2013042618.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、１以上の処理装置への１以上の配備形式と、を含む構成情報を記憶するモジュール構成情報記憶手段と、
前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記１以上の配備形式の内の指定された配備形式となるように、前記１以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する配備手段と
を含む配備装置。
【請求項２】
前記構成情報は、さらに、前記モジュールと前記関連モジュールとの間に挿入可能な当該モジュールの出力に対する１以上の付加処理を含み、
前記配備手段は、前記指定されたモジュールの前記構成情報に含まれる前記１以上の付加処理の内の指定された付加処理を行う接続モジュールの配備先を、前記指定されたモジュールの配備先と同一に決定する
請求項１に記載の配備装置。
【請求項３】
前記１以上の配備形式は、前記モジュールと前記関連モジュールとの異なる処理装置への配備であるリモート配備を含み、
前記配備手段は、前記指定された配備形式が前記リモート配備である場合、前記抽出された関連モジュールの配備先を、前記指定されたモジュールの配備先とは異なる配備先に決定する
請求項１または２に記載の配備装置。
【請求項４】
前記１以上の配備形式は、同一の前記関連モジュールの複数の処理装置の各々への配備である分散配備を含み、
前記配備手段は、前記指定された配備形式が前記分散配備である場合、前記抽出された関連モジュールの配備先を、前記指定されたモジュールの配備先とは異なる複数の処理装置に決定する
請求項１または２に記載の配備装置。
【請求項５】
前記配備手段は、前記抽出された関連モジュールと前記指定されたモジュールとの配備先が異なる場合、異なる配備先の処理装置間で前記指定されたモジュールの出力を前記抽出された関連モジュールへ送信する接続モジュールの配備先を、前記指定されたモジュールの配備先と同一の配備先に決定する
請求項１乃至４のいずれかに記載の配備装置。
【請求項６】
前記関連モジュールは、前記モジュールが依存する、前記モジュールと同一レイヤのモジュールであり、
前記構成情報は、さらに、前記モジュールが依存する、前記モジュールの下位レイヤのモジュールであるプラットフォーム（ＰＦ）モジュールの仕様を含み、
前記配備手段は、さらに、前記モジュール記憶手段から、前記指定されたモジュールの前記構成情報に含まれる前記ＰＦモジュールの仕様を満たす前記ＰＦモジュールを抽出し、前記抽出されたＰＦモジュールの配備先を、前記指定されたモジュールの配備先と同一に決定する
請求項１乃至５のいずれかに記載の配備装置。
【請求項７】
前記抽出されたＰＦモジュールである第１のＰＦモジュールの前記構成情報に含まれる前記ＰＦモジュールの仕様を満たす第２のＰＦモジュールを抽出し、前記抽出された第２のＰＦモジュールの配備先を、前記指定されたモジュールの配備先と同一に決定することを第１の配備先決定とし、
前記抽出された関連モジュールである第１の関連モジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす第２の関連モジュールを抽出し、前記第１の関連モジュールと前記抽出された第２の関連モジュールとの配備形式が、前記第１の関連モジュールの前記構成情報に含まれる前記１以上の配備形式の内の指定された配備形式となるように、前記１以上の処理装置の中から、前記第１の関連モジュール、及び、前記抽出された第２の関連モジュールの各々の配備先の処理装置を決定することを第２の配備先決定とし、
前記配備手段は、前記抽出されたＰＥモジュールに対して、前記第１の配備先決定を再帰的に実行し、前記抽出された関連モジュールについて、前記第１の配備先決定と前記第２の配備先決定とを再帰的に実行する
請求項６に記載の配備装置。
【請求項８】
複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、１以上の処理装置への１以上の配備形式と、を含む構成情報を記憶し、
前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記１以上の配備形式の内の指定された配備形式となるように、前記１以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する
配備方法。
【請求項９】
コンピュータに、
複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、１以上の処理装置への１以上の配備形式と、を含む構成情報を記憶し、
前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記１以上の配備形式の内の指定された配備形式となるように、前記１以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する
処理を実行させるプログラムを格納する、コンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの配備装置、配備方法、及び、プログラムに関する。
【背景技術】
【０００２】
データセンタ等において、アプリケーションモジュール（ＡＰモジュール）とそのＡＰモジュールが依存するライブラリやミドルウェア等の複数のソフトウェアモジュールを処理装置に配備する配備システムの一例が、非特許文献１に記載されている。
図２３は、非特許文献１の配備システムの構成を示す図である。図２３に示すように、配備システムは、開発環境入力部１、外部レポジトリ２、配備装置９００、及び、データセンタ１０を含む。配備装置９００は、モジュール管理部９０１、モジュール記憶部９０２、及び、関連モジュール配備部９０３を含む。関連モジュール配備部９０３は、開発環境入力部１から入力されたＡＰモジュールが依存するライブラリの情報に従って、そのＡＰが依存するライブラリをモジュール管理部９０１から取得する。関連モジュール配備部９０３は処理装置１１のミドルウェア上に取得したライブラリモジュールと開発環境１から入力されたＡＰモジュールとを配備する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ｈｔｔｐ：／／ｍａｖｅｎ．ａｐａｃｈｅ．ｏｒｇ／ｍａｖｅｎ−ｆｅａｔｕｒｅｓ．ｈｔｍｌ
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した非特許文献１に記載された配備システムでは、ＡＰモジュールの開発フェーズにおいて、ＡＰモジュールが依存する具体的なライブラリや、ライブラリの数、ＡＰモジュールが配備される処理装置とライブラリが配備される処理装置との関係、ＡＰモジュールとライブラリ間での暗号化等のオプション処理等、ＡＰモジュールに係るシステム構成を指定する必要がある。このため、運用フェーズにおいて、開発されたＡＰモジュールを用いてシステムを構築するときに、運用要件に応じてシステム構成を変更することができないという課題がある。
本発明の目的は、上述の課題を解決し、運用要件に応じて、ＡＰモジュールに係るシステム構成を変更できる配備装置、配備方法、及び、プログラムを提供することである。
【課題を解決するための手段】
【０００５】
本発明の一態様における配備装置は、複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、１以上の処理装置への１以上の配備形式と、を含む構成情報を記憶するモジュール構成情報記憶手段と、前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記１以上の配備形式の内の指定された配備形式となるように、前記１以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する配備手段とを含む。
本発明の一態様における配備方法は、複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、１以上の処理装置への１以上の配備形式と、を含む構成情報を記憶し、前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記１以上の配備形式の内の指定された配備形式となるように、前記１以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する。
本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、コンピュータに、複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、１以上の処理装置への１以上の配備形式と、を含む構成情報を記憶し、前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記１以上の配備形式の内の指定された配備形式となるように、前記１以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する処理を実行させるプログラムを格納する。
【発明の効果】
【０００６】
本発明の効果は、運用要件に応じて、ＡＰモジュールに係るシステム構成を変更できることである。
【図面の簡単な説明】
【０００７】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における、配備システムの構成を示すブロック図である。
【図３】本発明の第１の実施の形態における、配備装置１００の配備処理の概要を示すフローチャートである。
【図４】本発明の第１の実施の形態における、インフラ依存性解決処理を示すフローチャートである。
【図５】本発明の第１の実施の形態における、関連モジュール依存性解決処理を示すフローチャート（１／２）である。
【図６】本発明の第１の実施の形態における、関連モジュール依存性解決処理を示すフローチャート（２／２）である。
【図７】本発明の第１の実施形態における、ＡＰモジュールの依存関係（依存性解決前）の例を模式的に示す図である。
【図８】本発明の第１の実施形態における、ＡＰモジュールの構成情報２００の例を示す図である。
【図９】本発明の第１の実施形態における、ＡＰモジュールの運用要件３００の例を示す図である。
【図１０】本発明の第１の実施形態における、コネクタモジュールの構成情報２００の例を示す図である。
【図１１】本発明の第１の実施形態における、ＰＦモジュールの依存関係（依存性解決前）の例を模式的に示す図である。
【図１２】本発明の第１の実施形態における、ＰＦモジュールの構成情報２００の例を示す図である。
【図１３】本発明の第１の実施形態における、関連モジュールの依存関係（依存性解決前）の例を模式的に示す図である。
【図１４】本発明の第１の実施形態における、関連モジュールの構成情報２００の例を示す図である。
【図１５】本発明の第１の実施形態における、各モジュール間の依存関係（依存性解決後）の例を模式的に示す図である。
【図１６】本発明の第１の実施の形態における、コネクタモジュールの配備例を示す図である。
【図１７】本発明の第１の実施の形態における、コネクタモジュールの他の配備例を示す図である。
【図１８】本発明の第１の実施の形態における、コネクタモジュールの他の配備例を示す図である。
【図１９】本発明の第１の実施形態における、ＡＰモジュールの構成情報２００の他の例を示す図である。
【図２０】本発明の第１の実施形態における、ＡＰモジュールの運用要件３００の他の例を示す図である。
【図２１】本発明の第１の実施形態における、コネクタモジュールの構成情報２００の他の例を示す図である。
【図２２】本発明の第１の実施形態における、各モジュール間の依存関係（依存性解決後）の他の例を模式的に示す図である。
【図２３】非特許文献１の配備システムの構成を示す図である。
【発明を実施するための形態】
【０００８】
次に、本発明の第１の実施の形態について説明する。
はじめに、本発明の第１の実施の形態の構成について説明する。図２は、本発明の第１の実施の形態における、配備システムの構成を示すブロック図である。
図２を参照すると、配備システムは、開発環境入力部１、外部レポジトリ２、配備装置１００、及び、データセンタ１０を含む。
開発環境入力部１は、アプリケーションモジュール（ＡＰモジュール）と当該ＡＰモジュールの構成情報２００とを配備装置１００に入力する。ここで、ＡＰモジュールは、ＡＰモジュール開発者等により開発されたアプリケーションプログラムである。
外部レポジトリ２は、プラットフォームモジュール（ＰＦモジュール）、関連モジュール、及び、それらの構成情報２００を記憶するレポジトリである。ここで、ＰＦモジュールは、例えば、ミドルウェアモジュール（ＭＷモジュール）、ＯＳモジュール、仮想マシンモジュール（ＶＭモジュール、または、ＶＭイメージ）等、ＡＰモジュールの下位レイヤに存在し、ＡＰモジュールを実行するために必要なプラットフォームプログラム（インフラ）である。また、関連モジュールは、ＭＷモジュール上で実行されるライブラリ等、ＡＰモジュールと同一レイヤに存在し、ＡＰモジュールが利用する他のプログラムである。
なお、ＡＰモジュール、ＰＦモジュール、及び、関連モジュールをまとめてモジュールと呼ぶ。
配備装置１００は、開発環境入力部１から入力された構成情報２００をもとに、ＡＰモジュールを実行するために必要な（ＡＰモジュールが依存する）関連モジュールやＰＦモジュールを外部レポジトリ２から取得して、データセンタ１０の処理装置１１に配備し、その上でＡＰモジュールを処理装置１１に配備する。ここで、配備とは、処理装置１１にプログラム（モジュール）を送信して、処理装置１１内のインストール用プログラムにインストールの要求をすることである。
データセンタ１０は、１以上の処理装置１１を含む。ここで、処理装置１１は、例えば、通信機能を持つ基本ＯＳやインストールプログラム等を備えたコンピュータである。処理装置１１は、ＰＦモジュール、関連モジュール、及び、ＡＰモジュールを受信して、インストールを行い、その後、ＰＦモジュール、関連モジュール、及び、ＡＰモジュールを実行する。
次に、配備装置１００の内部構成について詳細に説明する。配備装置１００は、モジュール管理部１０１、モジュール記憶部１０２、モジュール構成管理部１０３、モジュール構成情報記憶部１０４、配備部１０５、及び、運用要件入力部１１３を含む。
モジュール管理部１０１は、開発環境入力部１から取得したＡＰモジュール、及び、外部レポジトリ２から取得したＰＦモジュールと関連モジュールをモジュール記憶部１０２に保存する。
モジュール構成管理部１０３は、モジュール記憶部１０２に記憶された各モジュールの構成情報２００を、開発環境入力部１、または、外部レポジトリ２から取得し、モジュール構成情報記憶部１０４に保存する。
構成情報２００は、モジュールが依存するＰＦモジュールや関連モジュール等の他のモジュール、及び、モジュールと関連モジュールに関する配備形式や付加処理を指定する情報である。構成情報２００は、モジュール対応に存在する。
本発明の第１の実施形態では、ＡＰモジュールの開発者等が、ＡＰモジュールの構成情報２００において、ＡＰモジュールが依存するモジュールを、当該依存するモジュールの具体的なモジュール名ではなく、当該依存するモジュールが備える仕様により指定する。
そして、ＡＰモジュールを用いてシステムを構築する運用フェーズ等において、後述するように、プロビジョニング部１０６が、構成情報２００とシステム開発者等により入力されるＡＰモジュールの運用要件３００とをもとに、ＡＰモジュールが依存するモジュールの具体的なモジュール名と、当該依存するモジュールの配備先である処理装置１１とを決定する。
ここで、あるモジュールについて、当該モジュールが依存するモジュールの具体的なモジュール名と配備先の処理装置１１を決定することを依存性解決と呼ぶ。
図７は、本発明の第１の実施形態における、ＡＰモジュールの依存関係（依存性解決前）の例を模式的に示す図である。図８は、本発明の第１の実施形態における、ＡＰモジュールの構成情報２００の例を示す図である。図８の構成情報２００は、図７の依存関係に対応する。
図７において、実線の矩形はモジュール、点線の矩形はモジュールの仕様を示す。また、矩形間の矢印は、矢印の元のモジュールが、矢印の先の仕様を備えたモジュールに依存することを示す。図７の例では、モジュール名「ＡＰ＿１」のＡＰモジュールが、仕様「Ｌｉｂ＿Ａ」を備えた関連モジュール、及び、仕様「ＭＷ＿Ａ」を備えたＰＦモジュール（ＭＷモジュール）に依存する。
図８を参照すると、ＡＰモジュールの構成情報２００は、モジュール名２０１、インフラ依存性定義２１０、及び、１以上の関連モジュール依存性定義２２０を含む。
なお、構成情報２００において、斜線で示した項目は、開発環境入力部１、または、外部レポジトリ２から取得した時点では設定されておらず、配備装置１００による配備処理で設定される。
モジュール名２０１は、ＡＰモジュールを識別するための識別子である。
インフラ依存性定義２１０は、インフラ仕様２１１、インフラ名２１２、及び、インフラ設定２１３を含む。インフラ仕様２１１は、ＡＰモジュールが依存するＰＦモジュールが備えるべき仕様を示す。インフラ名２１２は、依存するＰＦモジュールの具体的なモジュール名を示す。インフラ設定２１３は、依存するＰＦモジュールに対する設定を示す。
図８の例では、インフラ仕様２１１に「ＭＷ＿Ａ」が指定されているが、インフラ名２１２、及び、インフラ設定２１３は、配備処理開始前には設定されていない。
関連モジュール依存性定義２２０は、関連モジュール仕様２２１、インタフェース２２２、アノテーション２２３、関連モジュール名２２４、及び、関連モジュール設定２２５を含む。関連モジュール仕様２２１、及び、インタフェース２２２は、それぞれ、ＡＰモジュールが依存する関連モジュールが備えるべき仕様、及び、インタフェースを示す。
アノテーション２２３は、１以上の配備形式を含む。ここで、配備形式は、ＡＰモジュール及び関連モジュールがとりうる、１以上の処理装置への配備パターンである。配備形式としては、例えば、ＡＰモジュールと関連モジュールの異なる処理装置１１への配備（「リモート配備」）、同一の関連モジュールの複数の処理装置１１への配備（「分散配備」）等が用いられる。
また、アノテーション２２３は、１以上の付加処理を含んでもよい。ここで、付加処理は、ＡＰモジュールと関連モジュールとの間に挿入可能な、ＡＰモジュールの出力に対する所定処理を示す。付加処理としては、例えば、ＡＰモジュールの出力に対する暗号化（「秘密化」）、復号化、所定の演算処理、所定の加工処理等が用いられる。
関連モジュール名２２４は、依存する関連モジュールのモジュール名を示す。関連モジュールが、ＡＰモジュールとは異なる処理装置１１に配備されるときは、関連モジュールのモジュール名とともに、当該関連モジュールが配備される処理装置１１の処理装置名が併せて指定される。関連モジュール設定２２５は、依存する関連モジュールに対する設定を示す。
図８の例では、関連モジュール仕様２２１に「Ｌｉｂ＿Ａ」、インタフェース２２２に「ｆｕｎｃｔｉｏｎＡ」、「ｆｕｎｃｔｉｏｎＢ」、アノテーション２２３に、配備形式「リモート配備」「分散配備」、付加処理「秘密化」が指定されているが、関連モジュール名２２４、及び、関連モジュール設定２２５は、配備処理開始前には設定されていない。
図１１は、本発明の第１の実施形態における、ＰＦモジュールの依存関係（依存性解決前）の例を模式的に示す図である。図１２は、本発明の第１の実施形態における、ＰＦモジュールの構成情報２００の例を示す図である。図１２の構成情報２００は、図１１の依存関係に対応する。
図１１の例では、モジュール名「ＭＷ＿Ａ＿１」のＰＦモジュールが、仕様「ＯＳ＿Ａ」を備えたＰＦモジュール（ＯＳモジュール）に依存することを示す。
図１２を参照すると、ＰＦモジュールの構成情報２００は、モジュール名２０１、インフラ依存性定義２１０を含む。図１２の例では、インフラ仕様２１１として、「ＯＳ＿Ａ」が指定されているが、インフラ名２１２、及び、インフラ設定２１３は、配備処理開始前には設定されていない。
なお、ＯＳモジュール、及び、ＶＭモジュールについても、同様に、構成情報２００が設定され、モジュール構成情報記憶部１０４に保存される。但し、例えば、ＶＭモジュールのように、依存するＰＦモジュールが存在しない場合は、インフラ依存性定義２１０は設定されない。
また、後述する配備処理において、モジュールが処理装置１１に配備されるときには、例えば、各処理装置１１のインストールプログラムや各配備部１０８〜１１２により、当該モジュールの構成情報２００のインフラ名２１２、関連モジュール名２２４で指定された、各モジュールの関数の呼び出し、各モジュールへの出力データの送信等が行われるように、当該モジュールに設定（接続先の設定）が行われる。また、同様に、モジュールの構成情報２００のインフラ設定２１３、関連モジュール設定２２５で指定されたプロパティが、当該モジュールが依存するＰＦモジュール、関連モジュールに設定される。
図１３は、本発明の第１の実施形態における、関連モジュールの依存関係（依存性解決前）の例を模式的に示す図である。図１４は、本発明の第１の実施形態における、関連モジュールの構成情報２００の例を示す図である。図１４の構成情報２００は、図１３の依存関係に対応する。
図１３の例では、モジュール名「Ｌｉｂ＿Ａ＿１」の関連モジュールが、仕様「Ｌｉｂ＿Ｂ」を備えた他の関連モジュール、及び、仕様「ＭＷ＿Ｂ」を備えたＰＦモジュール（ＭＷモジュール）に依存することを示す。
図１４を参照すると、関連モジュールの構成情報２００は、ＡＰモジュールの構成情報２００と同様に、モジュール名２０１、インフラ依存性定義２１０、及び、１以上の関連モジュール依存性定義２２０を含む。図１４の例では、インフラ仕様２１１として、「ＭＷ＿Ｂ」が指定されているが、インフラ名２１２、及び、インフラ設定２１３は、配備処理開始前には設定されていない。また、関連モジュール仕様２２１として、「Ｌｉｂ＿Ｂ」が指定されているが、関連モジュール名２２４、及び、関連モジュール設定２２５は、配備処理開始前には設定されていない。
なお、関連モジュールが、他の関連モジュールに依存しない場合、関連モジュールの構成情報２００は、関連モジュール依存性定義２２０を含まなくてもよい。
また、構成情報２００は、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等、他の形式で記述されてもよい。
運用要件入力部１１３は、運用フェーズ等において、システム開発担当者等により、運用要件３００の入力を受け付ける。
運用要件３００は、ＡＰモジュールの構成情報２００において確定していない配備形式や付加処理、モジュールに対する設定を指定する。
図９は、本発明の第１の実施形態における、ＡＰモジュールの運用要件３００の例を示す図である。
図９を参照すると、ＡＰモジュールの運用要件３００は、モジュール名３０１、インフラ要件３１０、及び、１以上の関連モジュール要件３２０を含む。
モジュール名３０１は、ＡＰモジュールを識別するための識別子である。
インフラ要件３１０は、インフラ仕様３１１、及び、インフラ設定３１２を含む。インフラ仕様３１１は、ＡＰモジュールが依存するＰＦモジュールの仕様を示す。インフラ設定３１２は、依存するＰＦモジュールに対する設定を示す。
図９の例では、インフラ仕様２１１に「ＭＷ＿Ａ」、インフラ設定３１２に「プロパティｃ１」の値が設定されている。
関連モジュール要件３２０は、関連モジュール仕様３２１、アノテーション３２２、及び、関連モジュール設定３２３を含む。関連モジュール仕様３２１は、ＡＰモジュールが依存する関連モジュールの仕様を示す。アノテーション３２２は、ＡＰモジュールの構成情報２００のアノテーション２２３で指定された、１以上の配備形式、１以上の付加処理の中から、当該ＡＰモジュールを用いたシステムにおいて適用する配備形式、付加処理を示す。関連モジュール設定３２３は、関連モジュールに対する設定を示す。
図９の例では、関連モジュール仕様３２１に「Ｌｉｂ＿Ａ」、アノテーション３２２に「分散配備」が指定されている。
なお、運用要件３００は、ＡＰモジュールに加えて、各ＰＦモジュール、及び、各関連モジュールに対して入力されてもよい。
また、運用要件３００も、構成情報２００と同様に、ＸＭＬ等、他の形式で記述されてもよい。
また、運用要件３００は、上述の情報以外に、ＰＦモジュールや関連モジュールの信頼性や、コストに関する要件を含んでいてもよい。
配備部１０５は、構成情報２００をもとに、開発環境入力部１から入力されたＡＰモジュール、及び、ＡＰモジュールが依存する関連モジュールやＰＦモジュールを処理装置１１に配備する。
配備部１０５は、プロビジョニング部１０６、アノテーション解釈部１０７、ＡＰモジュール配備部１０８、関連モジュール配備部１０９、ＭＷ配備部１１０、ＯＳ配備部１１１、及び、ＶＭ配備部１１２を含む。
プロビジョニング部１０６は、構成情報２００と運用要件３００とをもとに、各モジュールが依存するモジュールのモジュール名と、当該依存するモジュールの配備先である処理装置１１とを決定する。そして、プロビジョニング部１０６は、ＡＰモジュール配備部１０８、関連モジュール配備部１０９、ＭＷ配備部１１０、ＯＳ配備部１１１、及び、ＶＭ配備部１１２を用いて、各モジュールを処理装置１１に配備する。
アノテーション解釈部１０７は、構成情報２００のアノテーション２２３と運用要件３００のアノテーション３２２とをもとに、システムに適用する配備形式、付加処理を判定する。
ＡＰモジュール配備部１０８、関連モジュール配備部１０９、ＭＷ配備部１１０、ＯＳ配備部１１１、及び、ＶＭ配備部１１２は、それぞれ、プロビジョニング部１０６の指示によって、各モジュールの配備先である処理装置１１に、当該モジュールを配備する。
なお、配備装置１００はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、モジュール記憶部１０２と、モジュール構成情報記憶部１０４とは、それぞれ個別の記憶媒体でも、１つの記憶媒体によって構成されてもよい。
次に、本発明の第１の実施の形態における配備装置１００の動作について説明する。
＜配備処理の概要＞
はじめに、配備装置１００による配備処理の概要を説明する。
図３は、本発明の第１の実施の形態における、配備装置１００の配備処理の概要を示すフローチャートである。
本発明の第１の実施の形態では、予め、システム開発担当者等により、データセンタ１０内でモジュールが配備されていない（空いている）処理装置１１等、モジュールを配備可能な１以上の処理装置１１の処理装置名、及び、当該１以上の処理装置１１の中でＡＰモジュールを配備する処理装置１１の処理装置名が、配備装置１００に与えられていると仮定する。
例えば、モジュールを配備可能な処理装置１１として、処理装置１１「ＳＶ１」「ＳＶ２」「ＳＶ３」、ＡＰモジュールを配備する処理装置１１として、処理装置１１「ＳＶ１」が指定されている。
なお、配備装置１００は、データセンタ１０内の処理装置１１から、空いている１以上の処理装置１１を検出して、モジュールを配備可能な処理装置１１に決定し、その内の１つを、ＡＰモジュールを配備する処理装置１１と決定してもよい。
はじめに、プロビジョニング部１０６は、ＡＰモジュールの構成情報２００を、モジュール構成管理部１０３を介して取得する（ステップＳ１０１）。
プロビジョニング部１０６は、ＡＰモジュールに対する運用要件３００を、運用要件入力部１１３を介して取得する（ステップＳ１０２）。
プロビジョニング部１０６は、ＡＰモジュールのインフラ依存性を解決する（ステップＳ１０３）。ここで、プロビジョニング部１０６は、ＡＰモジュールが依存するＰＦモジュールのモジュール名を決定し、当該ＰＦモジュールをＡＰモジュールが配備される処理装置１１に配備する。
プロビジョニング部１０６は、ＡＰモジュールの関連モジュール依存性を解決する（ステップＳ１０４）。ここで、プロビジョニング部１０６は、ＡＰモジュールが依存する関連モジュールのモジュール名と配備先の処理装置１１を決定し、当該関連モジュールを当該処理装置１１に配備する。また、ＡＰモジュールと関連モジュールとを後述するコネクタモジュールで接続する場合、当該コネクタモジュールのモジュール名を決定し、当該コネクタモジュールをＡＰモジュールが配備される処理装置１１に配備する。
プロビジョニング部１０６は、ＡＰモジュールを配備先の処理装置１１に配備する（ステップＳ１０５）。ここで、配備されたＡＰモジュールの接続先に、ＡＰモジュールの構成情報２００のインフラ名２１２に設定されたＰＦモジュール、関連モジュール名２２４に設定された関連モジュールまたはコネクタモジュールが設定される。
＜インフラ依存性解決処理＞
次に、配備装置１００によるインフラ依存性解決処理（ステップＳ１０３）の詳細を説明する。
図４は、本発明の第１の実施の形態における、インフラ依存性解決処理を示すフローチャートである。
ここでは、ステップＳ１０１、Ｓ１０２において、プロビジョニング部１０６が、図８の構成情報２００と図９の運用要件３００を取得したものと仮定する。
プロビジョニング部１０６は、ＡＰモジュールの構成情報２００から、インフラ依存性定義２１０を抽出する（ステップＳ２０１）。
プロビジョニング部１０６は、ＡＰモジュールが依存するＰＦモジュールのモジュール名を決定する（ステップＳ２０２）。プロビジョニング部１０６は、決定したモジュール名を構成情報２００のインフラ名２１２に設定する。
ここで、プロビジョニング部１０６は、モジュール管理部１０１を介して、外部レポジトリ２またはモジュール記憶部１０２のモジュールから、インフラ仕様２１１で指定された仕様に対応するＰＦモジュールを抽出することにより、ＰＦモジュールのモジュール名を決定する。ＰＦモジュールの仕様と当該仕様を備えるＰＦモジュールの対応は、予め配備装置１００に、対応表、または、変換ルールとして与えられている。
また、運用要件３００のインフラ設定３１２でプロパティの値が設定されている場合、プロビジョニング部１０６は、構成情報２００のインフラ設定２１３に当該プロパティの値を設定する。なお、運用要件３００で指定されていないプロパティについては、デフォルト値を設定してもよい。
また、インフラ仕様２１１に対応するＰＦモジュールが複数存在する場合、プロビジョニング部１０６は、運用要件３００に含まれる信頼性要件やコスト要件をもとに、ＰＦモジュールを決定してもよい。
例えば、プロビジョニング部１０６は、インフラ仕様２１１「ＭＷ＿Ａ」に対応するＰＦモジュールのモジュール名を「ＭＷ＿Ａ＿１」と決定し、図８のように、インフラ名２１２に設定する。また、図９の運用要件３００のインフラ設定３１２で指定された「プロパティｃ１」の値を、図８のように、インフラ設定２１３に設定する。
次に、プロビジョニング部１０６は、ＰＦモジュールの配備先をＡＰモジュールが配備される処理装置１１と同じ処理装置１１に決定する（ステップＳ２０３）。
例えば、プロビジョニング部１０６は、ＰＦモジュール「ＭＷ＿Ａ＿１」の配備先を、処理装置１１「ＳＶ１」に決定する。
次に、プロビジョニング部１０６は、モジュール構成管理部１０３を介して、ＰＦモジュールの構成情報２００を取得する（ステップＳ２０４）。
例えば、プロビジョニング部１０６は、ＰＦモジュール「ＭＷ＿Ａ＿１」について、図１２の構成情報２００を取得する。
プロビジョニング部１０６は、ＰＦモジュールについて、インフラ依存性解決処理（ステップＳ１０３）を、再帰的に実行する（ステップＳ２０５）。ここで、プロビジョニング部１０６は、ＡＰモジュールの構成情報２００の代わりに、ステップＳ２０４で取得したＰＦモジュールの構成情報２００を用いて、ステップＳ１０３を実行する。
なお、プロビジョニング部１０６は、インフラ依存性解決処理（ステップＳ１０３）において、ＰＦモジュールの構成情報２００にインフラ依存性定義２１０が存在しない（ＰＦモジュールに、さらに依存するＰＦモジュールが存在しない）場合、ステップＳ１０３の再帰的な実行を終了する。
この結果、ＭＷモジュールが依存するＯＳモジュールが、ＭＷモジュールが配備される処理装置１１に配備される。また、当該配備が行われる前に、ＯＳモジュールが依存するＶＭモジュールも、ＯＳモジュールが配備される処理装置１１に配備される。
例えば、プロビジョニング部１０６は、ＰＦモジュール「ＭＷ＿Ａ＿１」が依存するＯＳモジュールのモジュール名を「ＯＳ＿Ａ＿１」と決定し、図１２のように、ＰＦモジュール「ＭＷ＿Ａ＿１」の構成情報２００のインフラ名２１２に設定する。そして、プロビジョニング部１０６は、ＯＳモジュール「ＯＳ＿Ａ＿１」を処理装置１１「ＳＶ１」に配備する。また、プロビジョニング部１０６は、ＯＳモジュール「ＯＳ＿Ａ＿１」の配備の前に、ＯＳモジュール「ＯＳ＿Ａ＿１」が依存するＶＭモジュール「ＶＭ＿Ａ＿１」を処理装置１１「ＳＶ１」に配備する。
次に、プロビジョニング部１０６は、ＰＦモジュールを、ステップＳ２０３で決定した配備先の処理装置１１に配備する（ステップＳ２０６）。ここで、配備されたＰＦモジュールの接続先に、当該ＰＦモジュールの構成情報２００のインフラ名２１２に設定されたＰＦモジュールが設定される。また、ＰＦモジュールに対して、ＡＰモジュールの構成情報２００のインフラ設定２１３で指定されたプロパティが設定される。
例えば、プロビジョニング部１０６は、ＭＷモジュール「ＭＷ＿Ａ＿１」を処理装置１１「ＳＶ１」に配備する。そして、ＭＷモジュール「ＭＷ＿Ａ＿１」の接続先には、図１２のＰＦモジュールの構成情報２００で指定された、ＯＳモジュール「ＯＳ＿Ａ＿１」が設定される。また、ＭＷモジュール「ＭＷ＿Ａ＿１」には、図８のＡＰモジュールの構成情報２００で指定された、「プロパティｃ１」の値が設定される。
図１５は、本発明の第１の実施形態における、各モジュール間の依存関係（依存性解決後）の例を模式的に示す図である。
ＡＰモジュールに対するインフラ依存性解決処理（ステップＳ１０３）の結果、ＡＰモジュールが依存するＰＦモジュール、及び、当該ＰＦモジュールが依存するＰＦモジュールが、例えば、図１５のように配備される。
＜関連モジュール依存性解決処理＞
次に、配備装置１００による関連モジュール依存性解決処理（ステップＳ１０４）の詳細を説明する。
図５、及び、図６は、本発明の第１の実施の形態における、関連モジュール依存性解決処理を示すフローチャートである。
プロビジョニング部１０６は、ＡＰモジュールの構成情報２００から、関連モジュール依存性定義２２０を１つ抽出する（ステップＳ３０１）。
次に、アノテーション解釈部１０７は、関連モジュール依存性定義２２０のアノテーション２２３において、配備形式または付加処理が指定されているかどうかを判定する（ステップＳ３０２）。
ステップＳ３０２において、配備形式または付加処理が指定されている場合（ステップＳ３０２／Ｙｅｓ）、アノテーション解釈部１０７は、運用要件３００における、ステップＳ３０１で抽出された関連モジュール依存性定義２２０に対応する関連モジュール要件３２０を抽出する（ステップＳ３０３）。ここで、アノテーション解釈部１０７は、関連モジュール依存性定義２２０の関連モジュール仕様２２１で指定された仕様と同一の仕様が指定された関連モジュール仕様３２１を持つ関連モジュール要件３２０を抽出する。
そして、アノテーション解釈部１０７は、アノテーション２２３で指定された配備形式のいずれかが、抽出された関連モジュール要件３２０のアノテーション３２２で指定された配備形式と一致するか、または、アノテーション２２３で指定された付加処理のいずれかと、アノテーション３２２で指定された付加処理とが一致するかどうかを判定する（ステップＳ３０４）。
ステップＳ３０４において、一致する場合（ステップＳ３０４／Ｙｅｓ）、プロビジョニング部１０６は、一致した配備形式または付加処理を、配備形式または付加処理に応じたコネクタモジュール（接続モジュール）を用いて実現する。
図１６、図１７、及び、図１８は、本発明の第１の実施の形態における、コネクタモジュールの配備例を示す図である。
例えば、配備形式「リモート配備」に対応する配備を行う場合、図１６に示すように、ＡＰモジュールの出力を、ＡＰモジュールとは別の処理装置１１上の関連モジュールに送信するコネクタモジュール「Ｌｉｂ＿ＡＳＣ＿１」が用いられる。また、配備形式「分散配備」に対応する配備を行う場合、図１７に示すように、ＡＰモジュールの出力を、ＡＰモジュールとは別の、複数（所定数）の処理装置１１上の同一の関連モジュールに分配するコネクタモジュール「Ｌｉｂ＿ＡＰＣ＿１」が用いられる。
また、付加処理「秘密化」に対応する配備を行う場合、図１８に示すように、ＡＰモジュールの出力を暗号化して関連モジュールに送信するコネクタモジュール「Ｌｉｂ＿ＡＣＣ＿１」が用いられる。付加処理「秘密化」以外の所定処理に対応する配備を行う場合、当該所定処理を行うモジュールが用いられる。
コネクタモジュールは、関連モジュールの仕様と配備形式の組、及び、関連モジュールの仕様と付加処理の組毎に、予め、外部レポジトリ２またはモジュール記憶部１０２に記憶される。また、コネクタモジュールの構成情報２００も、外部レポジトリ２またはモジュール構成情報記憶部１０４に記憶される。関連モジュールの仕様と配備形式の組、及び、関連モジュールの仕様と付加処理の組に対応するコネクタモジュールは、予め配備装置１００に、対応表、または、変換ルールとして与えられている。
プロビジョニング部１０６は、ステップＳ３０４で一致した配備形式または付加処理に応じたコネクタモジュールのモジュール名を決定する（ステップＳ３０５）。プロビジョニング部１０６は、決定したモジュール名を、ＡＰモジュールの構成情報２００の関連モジュール名２２４に設定する。
ここで、プロビジョニング部１０６は、モジュール管理部１０１を介して、外部レポジトリ２またはモジュール記憶部１０２のモジュールから、関連モジュール依存性定義２２０の関連モジュール仕様２２１で指定された仕様と配備形式の組、または、仕様と付加処理の組に対応した関連モジュールを抽出することにより、コネクタモジュールのモジュール名を決定する。
例えば、図８の構成情報２００のアノテーション２２３と、図９の運用要件３００のアノテーション３２２とで、配備形式「分散配備」が一致するため、プロビジョニング部１０６は、関連モジュール仕様２２１「Ｌｉｂ＿Ａ」と配備形式「分散配備」の組に対応するコネクタモジュールのモジュール名を「Ｌｉｂ＿ＡＰＣ＿１」と決定し、図８のように、関連モジュール名２２４に設定する。
次に、プロビジョニング部１０６は、コネクタモジュールの配備先をＡＰモジュールが配備される処理装置１１と同じ処理装置１１に決定する（ステップＳ３０６）。
例えば、プロビジョニング部１０６は、コネクタモジュール「Ｌｉｂ＿ＡＰＣ＿１」の配備先を、処理装置１１「ＳＶ１」に決定する。
次に、プロビジョニング部１０６は、モジュール構成管理部１０３を介して、コネクタモジュールの構成情報２００を取得する（ステップＳ３０７）。
図１０は、本発明の第１の実施形態における、コネクタモジュールの構成情報２００の例を示す図である。図１０に示すように、コネクタモジュールの構成情報２００には、対応する関連モジュールの構成情報２００と同じ、インフラ仕様２１１、及び、関連モジュール仕様２２１が設定される。
例えば、プロビジョニング部１０６は、図１０のような、コネクタモジュール「Ｌｉｂ＿ＡＰＣ＿１」の構成情報２００を取得する。
次に、プロビジョニング部１０６は、コネクタモジュールについて、インフラ依存性解決処理（ステップＳ１０３）を、再帰的に実行する（ステップＳ３０８）。ここで、プロビジョニング部１０６は、ＡＰモジュールの構成情報２００の代わりに、コネクタモジュールの構成情報２００を用いて、ステップＳ１０３を実行する。
なお、プロビジョニング部１０６は、インフラ依存性解決処理（ステップＳ１０３）において、依存するＰＦモジュールを決定するときに、インフラ仕様２１１で指定された仕様に対応するＰＦモジュールが、既に、配備されている場合、当該ＰＦモジュールのモジュール名をインフラ名２１２に設定し、ステップＳ１０３の再帰的な実行を終了してもよい。
例えば、プロビジョニング部１０６は、図１０に示すように、インフラ名２１２に、既に、処理装置１１「ＳＶ１」に設定されているインフラ仕様２１１「ＭＷ＿Ａ」のＭＷモジュール「ＭＷ＿Ａ＿１」を設定する。
次に、プロビジョニング部１０６は、ＡＰモジュールが依存する関連モジュールのモジュール名を決定する（ステップＳ３０９）。
ここで、プロビジョニング部１０６は、モジュール管理部１０１を介して、外部レポジトリ２またはモジュール記憶部１０２のモジュールから、コネクタモジュールの構成情報２００の関連モジュール仕様２２１で指定された仕様に対応する関連モジュールを抽出することにより、関連モジュールのモジュール名を決定する。関連モジュールの仕様と当該仕様を備えるモジュールの対応は、予め配備装置１００に、対応表、または、変換ルールとして与えられている。また、プロビジョニング部１０６は、関連モジュール仕様２２１で指定された仕様に加えて、インタフェース２２２で指定されたインタフェースを備える関連モジュールを抽出してもよい。
また、関連モジュール仕様２２１に対応するＰＦモジュールが複数存在する場合、プロビジョニング部１０６は、運用要件３００に含まれる信頼性要件やコスト要件をもとに、関連モジュールを決定してもよい。
例えば、プロビジョニング部１０６は、コネクタモジュールの構成情報２００の関連モジュール仕様２２１「Ｌｉｂ＿Ａ」に対応する関連モジュールのモジュール名を「Ｌｉｂ＿Ａ＿１」と決定する。
次に、プロビジョニング部１０６は、関連モジュールの配備先の処理装置１１を決定する（ステップＳ３１０）。プロビジョニング部１０６は、コネクタモジュールの構成情報２００の関連モジュール名２２４に、ステップＳ３１０で決定した配備先の処理装置１１の処理装置名と、ステップＳ３０９で決定した関連モジュールのモジュール名とを設定する。
なお、関連モジュールの配備先の処理装置１１が、ＡＰモジュールの配備先の処理装置１１と同じ場合は、プロビジョニング部１０６は、配備先の処理装置名を省略し、モジュール名のみを関連モジュール名２２４に設定してもよい。
ここで、配備形式「リモート配備」に対する配備を行う場合、プロビジョニング部１０６は、与えられた処理装置１１の中から、ＡＰモジュールの配備先である処理装置１１と異なる処理装置１１を選択する。また、配備形式「分散配備」に対する配備を行う場合、プロビジョニング部１０６は、与えられた処理装置１１の中から、処理装置１１と異なる複数（所定数）の処理装置１１を選択する。
また、付加処理に対する配備を行う場合、プロビジョニング部１０６は、ＡＰモジュールの配備先である処理装置１１と同一の処理装置１１を選択する。
プロビジョニング部１０６は、選択された処理装置１１を、関連モジュールの配備先とする。
例えば、プロビジョニング部１０６は、配備形式「分散配備」に対応する関連モジュールの配備先を、処理装置１１「ＳＶ２」「ＳＶ３」と決定する。そして、プロビジョニング部１０６は、配備先の処理装置名とモジュール名「ＳＶ２／Ｌｉｂ＿Ａ＿１」「ＳＶ３／Ｌｉｂ＿Ａ＿１」を、図１０のように、関連モジュール名２２４に設定する。
次に、プロビジョニング部１０６は、モジュール構成管理部１０３を介して、関連モジュールの構成情報２００を取得する（ステップＳ３１１）。そして、プロビジョニング部１０６は、関連モジュールについて、インフラ依存性解決処理（ステップＳ１０３）、及び、関連モジュール依存性解決処理（ステップＳ１０４）を、再帰的に実行する（ステップＳ３１２）。ここで、プロビジョニング部１０６は、ＡＰモジュールの構成情報２００の代わりに、関連モジュールの構成情報２００を用いて、ステップＳ１０３、及び、ステップＳ１０４を実行する。
なお、プロビジョニング部１０６は、関連モジュール依存性解決処理（ステップＳ１０４）において、関連モジュールの構成情報２００に関連モジュール依存性定義２２０が存在しない（関連モジュールに、さらに依存する関連モジュールが存在しない）場合、ステップＳ１０４の再帰的な実行を終了する。
また、プロビジョニング部１０６は、インフラ依存性解決処理（ステップＳ１０３）において、依存するＰＦモジュールを決定するときに、インフラ仕様２１１に対応するＰＦモジュールが、既に、配備されている場合、当該ＰＦモジュールのモジュール名をインフラ名２１２に設定し、ステップＳ１０３の再帰的な実行を終了してもよい。
また、同一の関連モジュールが、複数の処理装置１１に配備される場合、プロビジョニング部１０６は、それぞれの処理装置１１における関連モジュールについて、インフラ依存性解決処理（ステップＳ１０３）、及び、関連モジュール依存性解決処理（ステップＳ１０４）を実行する。
ステップＳ３１２の結果、ＡＰモジュールが依存する関連モジュールについても、インフラ依存性と関連モジュール依存性が解決される。
例えば、プロビジョニング部１０６は、処理装置１１「ＳＶ２」に配備される関連モジュール「Ｌｉｂ＿Ａ＿１」が依存するＭＷモジュールのモジュール名を「ＭＷ＿Ｂ＿１」と決定し、図１４のように、構成情報２００におけるインフラ名２１２に設定する。そして、プロビジョニング部１０６は、ＭＷモジュール「ＭＷ＿Ｂ＿１」を処理装置１１「ＳＶ２」に配備する。また、プロビジョニング部１０６は、関連モジュール「Ｌｉｂ＿Ａ＿１」が依存する関連モジュールのモジュール名を「Ｌｉｂ＿Ｂ＿１」と決定し、図１４のように、構成情報２００における関連モジュール名２２４に設定する。そして、プロビジョニング部１０６は、関連モジュール「Ｌｉｂ＿Ｂ＿１」を処理装置１１「ＳＶ２」に配備する。また、プロビジョニング部１０６は、ＭＷモジュール「ＭＷ＿Ｂ＿１」の配備の前に、ＭＷモジュール「ＭＷ＿Ｂ＿１」が依存するＯＳモジュール「ＯＳ＿Ｂ＿１」、及び、ＯＳモジュール「ＯＳ＿Ｂ＿１」が依存するＶＭモジュール「ＶＭ＿Ｂ＿１」を処理装置１１「ＳＶ２」に配備する。
また、プロビジョニング部１０６は、処理装置１１「ＳＶ３」に配備される関連モジュール「Ｌｉｂ＿Ａ＿１」についても、同様に、インフラ依存性解決処理、及び、関連モジュール依存性解決処理を行う。
次に、プロビジョニング部１０６は、関連モジュールを、ステップＳ３１０で決定した配備先の処理装置１１に配備する（ステップＳ３１３）。ここで、配備された関連モジュールの接続先に、当該関連モジュールの構成情報２００のインフラ名２１２に設定されたＰＦモジュール、関連モジュール名２２４に設定された関連モジュールが設定される。
例えば、プロビジョニング部１０６は、関連モジュール「Ｌｉｂ＿Ａ＿１」を処理装置１１「ＳＶ２」に配備する。関連モジュール「Ｌｉｂ＿Ａ＿１」の接続先には、図１４の関連モジュールの構成情報２００で指定された、ＭＷモジュール「ＭＷ＿Ｂ＿１」、関連モジュール「Ｌｉｂ＿Ｂ＿１」が設定される。
次に、プロビジョニング部１０６は、コネクタモジュールを、ステップＳ３０５で決定した配備先の処理装置１１に配備する（ステップＳ３１４）。ここで、配備されたコネクタモジュールの接続先に、当該コネクタモジュールの構成情報２００のインフラ名２１２に設定されたＰＦモジュール、関連モジュール名２２４に設定された関連モジュールが設定される。
例えば、プロビジョニング部１０６は、コネクタモジュール「Ｌｉｂ＿ＡＰＣ＿１」を処理装置１１「ＳＶ１」に配備する。コネクタモジュール「Ｌｉｂ＿ＡＰＣ＿１」の接続先には、図１０のコネクタモジュールの構成情報２００で指定された、ＭＷモジュール「ＭＷ＿Ｂ＿１」、関連モジュール「ＳＶ２／Ｌｉｂ＿Ａ＿１」「ＳＶ３／Ｌｉｂ＿Ａ＿１」が設定される。
一方、ステップＳ３０２において、配備形式、及び、付加処理のどちらも指定されていない場合（ステップＳ３０２／Ｎｏ）、または、ステップＳ３０４において、配備形式、及び、付加処理のどちらも一致しない場合（ステップＳ３０４／Ｎｏ）、プロビジョニング部１０６は、コネクタモジュールを用いずに、関連モジュールを配備する。
この場合、プロビジョニング部１０６は、ステップＳ３０９〜Ｓ３１３と同様に、関連モジュールのモジュール名と配備先の処理装置１１の処理装置名を決定し、関連モジュールの依存性を解決し、関連モジュールを配備する（ステップＳ３１５〜Ｓ３１９）。但し、ステップＳ３１５において、プロビジョニング部１０６は、ＡＰモジュールの構成情報２００の関連モジュール仕様２２１で指定された仕様に対応する関連モジュールを抽出し、関連モジュール名２２４に設定する。また、ステップＳ３１６において、プロビジョニング部１０６は、関連モジュールの配備先をＡＰモジュールが配備される処理装置１１と同じ処理装置１１に決定する。
プロビジョニング部１０６は、ＡＰモジュールの構成情報２００の全ての関連モジュール依存性定義２２０についての処理が行われたかどうかを判定する（ステップＳ３２０）。
ステップＳ３２０において、全ての関連モジュール依存性定義２２０についての処理が行われていない場合（ステップＳ３２０／Ｎｏ）、プロビジョニング部１０６は、ステップＳ３０１〜Ｓ３２０を繰り返し実行する。
ステップＳ３０６において、全ての関連モジュール依存性定義２２０についての処理が行われた場合（ステップＳ３２０／Ｙｅｓ）、プロビジョニング部１０６は、関連モジュール依存性解決処理を終了する。
ＡＰモジュールに対する関連モジュール依存性解決処理（ステップＳ１０４）の結果、ＡＰモジュールが依存する関連モジュール、当該関連モジュールが依存するＰＦモジュールと関連モジュール、及び、ＡＰモジュールと関連モジュールを接続するためのコネクションモジュールが、例えば、図１５のように配備される。
最後に、プロビジョニング部１０６は、例えば、ＡＰモジュールを処理装置１１「ＳＶ１」に配備する。ＡＰモジュールの接続先には、図８のＡＰモジュールの構成情報２００で指定されたＭＷモジュール「ＭＷ＿Ａ＿１」、コネクタモジュール「Ｌｉｂ＿ＡＰＣ＿１」が設定される。
この結果、ＡＰモジュール、ＡＰモジュールが依存するＰＦモジュール、及び、ＡＰモジュールが依存する関連モジュールが、図１５のように、配備される。
次に、付加処理に対する配備を行う場合の動作例を説明する。
図１９は、本発明の第１の実施形態における、ＡＰモジュールの構成情報２００の他の例を示す図である。また、図２０は、本発明の第１の実施形態における、ＡＰモジュールの運用要件３００の他の例を示す図である。
図１９の例では、ＡＰモジュールの構成情報２００のアノテーション２２３に、配備形式「リモート配備」「分散配備」、付加処理「秘密化」が指定されている。また、図２０の例では、運用要件３００のアノテーション３２２に付加処理「秘密化」が指定されている。
プロビジョニング部１０６は、関連モジュール依存性解決処理において、図１９のアノテーション２２３と図２０のアノテーション３２２とで、付加処理「秘密化」が一致するため、付加処理「秘密化」に対する配備を行う。
プロビジョニング部１０６は、関連モジュール仕様２２１「Ｌｉｂ＿Ａ」と付加処理「秘密化」の組に対応するコネクタモジュールのモジュール名を「Ｌｉｂ＿ＡＣＣ＿１」と決定し、図１９のように、ＡＰモジュールの関連モジュール名２２４に設定する。プロビジョニング部１０６は、コネクタモジュール「Ｌｉｂ＿ＡＣＣ＿１」の配備先を、処理装置１１「ＳＶ１」に決定する。
また、図２１は、本発明の第１の実施形態における、コネクタモジュールの構成情報２００の他の例を示す図である。
プロビジョニング部１０６は、コネクタモジュールの構成情報２００の関連モジュール仕様２２１「Ｌｉｂ＿Ａ」に対応する関連モジュールのモジュール名を「Ｌｉｂ＿Ａ＿１」と決定する。そして、プロビジョニング部１０６は、付加処理「秘密化」に対応する関連モジュールの配備先を、処理装置１１「ＳＶ１」と決定する。プロビジョニング部１０６は、関連モジュールのモジュール名「Ｌｉｂ＿Ａ＿１」を、図２１のように、コネクタモジュールの構成情報２００の関連モジュール名２２４に設定する。
プロビジョニング部１０６は、関連モジュール「Ｌｉｂ＿Ａ＿１」を処理装置１１「ＳＶ１」に配備する。さらに、プロビジョニング部１０６は、コネクタモジュール「Ｌｉｂ＿ＡＣＣ＿１」を処理装置１１「ＳＶ１」に配備する。コネクタモジュール「Ｌｉｂ＿ＡＣＣ＿１」の接続先には、図２１のコネクタモジュールの構成情報２００で指定された、関連モジュール「Ｌｉｂ＿Ａ＿１」が設定される。
最後に、プロビジョニング部１０６は、ＡＰモジュールを処理装置１１「ＳＶ１」に配備する。ＡＰモジュールの接続先には、図１９のＡＰモジュールの構成情報２００で指定された、コネクタモジュール「Ｌｉｂ＿ＡＣＣ＿１」が設定される。
図２２は、本発明の第１の実施形態における、各モジュール間の依存関係（依存性解決後）の他の例を模式的に示す図である。
この結果、ＡＰモジュール、ＡＰモジュールが依存するＰＦモジュール、及び、ＡＰモジュールが依存する関連モジュールが、図２２のように、配備される。
以上により、本発明の第１の実施の形態の動作が完了する。
次に、本発明の第１の実施の形態の特徴的な構成を説明する。図１は、本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
図１を参照すると、配備装置１００は、モジュール構成情報記憶部１０４、及び、配備部１０５を含む。
モジュール構成情報記憶部１０４は、複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び関連モジュールがとりうる、１以上の処理装置１１への１以上の配備形式と、を含む構成情報２００を記憶する。
配備部１０５は、複数のモジュールから、指定されたモジュールの構成情報２００に含まれる関連モジュールの仕様を満たす関連モジュールを抽出し、指定されたモジュールと抽出された関連モジュールとの配備形式が、当該構成情報２００に含まれる１以上の配備形式の内の指定された配備形式となるように、１以上の処理装置１１の中から、指定されたモジュール、及び、抽出された関連モジュールの各々の配備先の処理装置１１を決定し、出力する。
本発明の第１の実施の形態によれば、運用要件に応じて、ＡＰモジュールに係るシステム構成を変更できる。その理由は、配備部１０５が、ＡＰモジュールの構成情報２００に含まれる仕様を満たす関連モジュールを抽出し、ＡＰモジュールと抽出された関連モジュールの配備形式が、指定された配備形式となるように、ＡＰモジュール、及び、抽出された関連モジュールの各々の配備先となる処理装置１１を決定するためである。
また、上述した非特許文献１に記載された配備システムでは、ＡＰモジュールが依存する関連モジュールやＰＦモジュールの処理装置１１への配備、ＡＰモジュールの処理装置１１への配備を行う手順を、具体的なモジュール名や、処理装置名を指定して記述した構築手順を、運用要件に応じて用意する必要があった。
本発明の第１の実施の形態によれば、運用要件毎にシステム構築手順を用意することなく、運用要件に応じたシステムを構築できる。
その理由は、配備部１０５が、ＡＰモジュールの構成情報２００と運用要件３００とをもとに、関連モジュールとＰＦモジュールを抽出し、ＡＰモジュール、関連モジュール、及び、ＰＦモジュールの各々の配備先となる処理装置１１を決定するためである。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
例えば、本発明の実施の形態では、配備装置１００が、各モジュールを当該モジュールの配備先として決定した処理装置１１に配備したが、配備装置１００が、各モジュールのモジュール名と当該モジュールの配備先の処理装置１１の処理装置名とを図示しない記憶部や他の装置に出力し、他の装置が、配備装置１００から出力された情報をもとに、各モジュールの配備を行ってもよい。
また、本発明の実施の形態では、運用要件３００で配備形式または付加処理が指定されている場合の配備処理を示したが、運用要件３００で配備形式と付加処理とが指定されている場合、当該配備形式に対応するコネクタモジュールと、当該付加処理に対応するコネクタモジュールの両方を用いてもよい。
この出願は、２０１１年９月２２日に出願された日本出願特願２０１１−２０７６５７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０００９】
１  開発環境入力部
２  外部レポジトリ
１０  データセンタ
１１  処理装置
１００  配備装置
１０１  モジュール管理部
１０２  モジュール記憶部
１０３  モジュール構成管理部
１０４  モジュール構成情報記憶部
１０５  配備部
１０６  プロビジョニング部
１０７  アノテーション解釈部
１０８  ＡＰモジュール配備部
１０９  関連モジュール配備部
１１０  ＭＷ配備部
１１１  ＯＳ配備部
１１２  ＶＭ配備部
１１３  運用要件入力部
２００  構成情報
２０１  モジュール名
２１０  インフラ依存性定義
２１１  インフラ仕様
２１２  インフラ名
２１３  インフラ設定
２２０  関連モジュール依存性定義
２２１  関連モジュール仕様
２２２  インタフェース
２２３  アノテーション
２２４  関連モジュール名
２２５  関連モジュール設定
３００  運用要件
３０１  モジュール名
３１０  インフラ要件
３１１  インフラ仕様
３１２  インフラ設定
３２０  関連モジュール要件
３２１  関連モジュール仕様
３２２  アノテーション
３２３  関連モジュール設定
９００  配備装置
９０１  モジュール管理部
９０２  モジュール記憶部
９０３  関連モジュール配備部
【図１】
2013042618.tif 000003
【図２】
2013042618.tif 000004
【図３】
2013042618.tif 000005
【図４】
2013042618.tif 000006
【図５】
2013042618.tif 000007
【図６】
2013042618.tif 000008
【図７】
2013042618.tif 000009
【図８】
2013042618.tif 000010
【図９】
2013042618.tif 000011
【図１０】
2013042618.tif 000012
【図１１】
2013042618.tif 000013
【図１２】
2013042618.tif 000014
【図１３】
2013042618.tif 000015
【図１４】
2013042618.tif 000016
【図１５】
2013042618.tif 000017
【図１６】
2013042618.tif 000018
【図１７】
2013042618.tif 000019
【図１８】
2013042618.tif 000020
【図１９】
2013042618.tif 000021
【図２０】
2013042618.tif 000022
【図２１】
2013042618.tif 000023
【図２２】
2013042618.tif 000024
【図２３】
2013042618.tif 000025
【手続補正書】
【提出日】平成26年3月18日(2014.3.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
コンピュータに、
複数のモジュールの各々について、当該モジュールが依存するモジュールである関連モジュールの仕様と、当該モジュール及び前記関連モジュールがとりうる、１以上の処理装置への１以上の配備形式と、を含む構成情報を記憶し、
前記複数のモジュールから、指定されたモジュールの前記構成情報に含まれる前記関連モジュールの仕様を満たす前記関連モジュールを抽出し、前記指定されたモジュールと前記抽出された関連モジュールとの配備形式が、前記指定されたモジュールの前記構成情報に含まれる前記１以上の配備形式の内の指定された配備形式となるように、前記１以上の処理装置の中から、前記指定されたモジュール、及び、前記抽出された関連モジュールの各々の配備先の処理装置を決定し、出力する
処理を実行させるプログラム。
【国際調査報告】
2013042618.tif 000026
2013042618.tif 000027
2013042618.tif 000028