【0009】
本発明の実施の一形態を図面に基づいて説明する。
本実施の一形態では、クラウドアプリケーションのアーキテクチャ設計プロセスを3つのフェーズに分割して各フェーズにおける設計対象(モジュールの粒度や、割当、配分、配置など)を明確化する。分割する3つのフェーズは、機能モジュール設計フェーズ、モジュール配置設計フェーズ、リソース割当設計フェーズである。
第1のフェーズである機能モジュール設計フェーズは、アプリケーションを構成する機能群とアプリケーションプログラムを構成するモジュール群との対応と、個々のモジュールの粒度とを決定する。
第2のフェーズであるモジュール配置設計フェーズは、上記モジュール群と、各モジュールを配置する仮想マシン群(ネットワークリソース:論理リソース)との対応を決定する。
第3のフェーズであるリソース配分設計フェーズは、上記仮想マシン群と、各仮想マシンを配置する物理マシン(物理リソース)との対応を決定する。
本発明のアプリケーションアーキテクチャの設計方法は、この3フェーズに沿って、アプリケーションアーキテクチャの設計を実行する。また、このフェーズに沿って動作するように、設計装置およびプログラムを構成する。
以下、アプリケーションアーキテクチャ設計方法を実行するアプリケーションアーキテクチャ設計装置100を示して、本発明を説明する。
図1は、アプリケーションアーキテクチャ設計装置100の構成を示すブロック図である。
図1に示すアプリケーションアーキテクチャ設計装置100は、依存関係入力部110と、設計アスペクト情報入力部120と、設計情報保管部130と、設計マトリクス配置計算部140と、機能モジュール設計マトリクス表示部150と、モジュール配置設計マトリクス表示部160と、リソース割当設計マトリクス表示部170とを含み構成されている。なお、本構成以外にも入力部などの一般的な構成を有する。
依存関係入力部110と設計アスペクト情報入力部120は、設計事項入力部として動作する。設計事項入力部では、アプリケーションプログラムを形成するモジュール群、仮想マシン群、物理マシン群に関しての設計事項となる依存関係および設計アスペクトに関する情報の入力に使用する。
機能モジュール設計マトリクス表示部150、モジュール配置設計マトリクス表示部160、およびリソース割当設計マトリクス表示部170は、設計マトリクス最適化部として動作する。設計マトリクス最適化部では、依存関係および設計アスペクトをそれぞれのレイヤーレベルでDSM形式のマトリクスとして表示すると共に、表示したマトリクスの行・列の入れ替えを可能とする。この入れ替えを行なうことによって、マトリクスの操作に対応するようにアーキテクチャ設計を設計マトリクス最適化部が変更処理する。
すなわち、設計マトリクス最適化部を用いて、それぞれ適したマトリクス形状のパターン(モジュール化度合いなど)を選択することで、モジュール群、仮想マシン群および物理マシン群に対するそれぞれ上位レイヤのパーツが適切に割当てられたように配分・配置される。この配分・配置を繰り返すことにより、総じてアーキテクチャの最適化が図られる。
また、上記3フェーズ(機能モジュール設計フェーズ、モジュール配置設計フェーズ、リソース割当設計フェーズ)を順に設計マトリクス最適化部で変更処理(最適化処理)の実行を行いう。この際、各フェーズの出力結果は、次フェーズへの入力情報とする。このことで、アーキテクチャ構造全体について、一体的且つ効率的にアーキテクチャ設計が行える。
依存関係入力部110に入力される情報としては、考慮する2者間の関係を示す情報を含ませる。例えば、メソッドの呼出し元と呼出し先の関係のように直接的に機能呼出しの関係がある2者間の関係を示す情報や、複数の機能から構成するモジュールとその配置先のように直接的に物理的な関係がある2者間の関係を示す情報などである。
また、設計アスペクト情報入力部120に入力される情報としては、以下のような情報を含ませる。
−性能(データトランザクションの関連性,ファイル書き込みの共有,...)
−保守性(更新時の同時停止の要否,オーナーの違いの有無,...)
−安全性(データの隔離の要否,VM間の隔離の要否,...)
−可用性(停止範囲の関連性,フォールトトレラントの必要,...)
−移行性(ミドルウェア更新時の影響の関連,モジュールホットアップデートの要否,...)
設計情報保管部130は、入力とする依存関係と設計アスペクトの情報を受けて記憶保管し、また、各再配置(最適化)を終えて生成された設計マトリクス情報を記憶保管する。
設計マトリクス配置計算部140は、各種アルゴリズムを用いて、受け付けた各設計マトリクスの行/列の配置を、所定のパターンに近づけるように自動変更処理(再配置)させて、その結果を返す。
次に、アプリケーションアーキテクチャ設計装置100の動作について、
図2、
図3、
図4、
図5、
図6を用いて説明する。
[第1のフェーズ]
まず、第1のフェーズとして、アプリケーションの提供に用いるアプリケーションプログラムのモジュール構成を決定するための機能モジュール設計フェーズを実行する。
まずアプリケーションを構成する機能群と、機能間の呼び出し関係とを依存関係として依存関係入力部110に入力する(
図4のS111)。
次に、データトランザクションに関する性能要件などアプリケーションのロジックとして特定の機能間に関連がある場合には、それらの情報を設計アスペクト情報200として設計アスペクト情報入力部120に入力する(S112、
図2参照)。なお、入力される設計アスペクト情報には、
図2に例示するように、”機能依存関係”、”性能”、”セキュリティ”、”保守性”、”保全性”、”拡張性”、”可用性”、”移行性”などの多種の設計観点と共に、個々の観点に重要度を割当てることができる。
図2に示す本例では、モジュール1に割当てる機能のうち、”性能”について機能A、機能B、機能Hが関連し、”セキュリティ”について機能A、機能B、機能Cが関連することを示している。また、”保守性”や”拡張性”についても同様である。これら設計観点は、設計アスペクト情報の入力者(アーキテクト)の知見に基づいて入力される。
また、それぞれの性能観点について、入力者が適に重要度を与える。
図2の“性能”についての設計観点を用いて説明すれば、機能Aと機能B、機能Bと機能H、機能Aと機能Hの関係について、“機能依存関係”の重要度が加味される。この機能間の依存関係に与える重要度は、例えば、機能間の直接的な呼び出し関係などを加味して与える値である。
図2の例では、それぞれの設計観点の重要度について、”機能依存関係”には0.1、”性能”には0.3、”セキュリティ”には0.2、”保守性”には0.3、”拡張性”には0.1を与えている。
また、アーキテクトは、このとき要件毎に与えた重要度の全体が1.0になるよう重要度の値を入力することが望ましい。
なお、図示したように全体に与える値(例えば機能依存関係:0.1)とは別に、特定の機能間に与える値を加えることとしてもよい。アプリケーションアーキテクチャ設計装置は、与えられた各値を、
図3に示すように設計マトリクスのセルに設定する。
設計情報保管部130は、S111、S112で入力された情報を受け付けて設計マトリクス情報として保管する(S113)。
機能モジュール設計マトリクス表示部150は、設計情報保管部130に保管された設計マトリクス情報を用いてDSM方式のマトリクス(機能モジュール設計マトリクス)を表示する(S114、
図3参照)。この処理が行われることで、
図3に示すように、機能モジュール設計マトリクスには、それぞれのセルに重要度の値が割当てられて、機能とモジュールの対応が表示される。ここでの重要度とは、設計アスペクト情報として割当てられた
図2に記載された重要度に基づき、それぞれのモジュール間の依存度を加味しつつ算出される。
このDSM方式に基づくマトリクスの可視化により、S111、S112で入力した情報の十分性を確認し、見直しが必要な場合にはS111に戻る。見直しが不要で、機能分割が適正になされている場合には、その内容を設計マトリクス情報として設計情報保管部130に出力した後、表示を終了する。また、可視化したマトリクスに基づき再配置を行う場合には、S121に進む(S115)。なお、十分性の判断では、DSMマトリクスを参照して、配列の対角ラインを基準としたモジュールの配置位置や、各モジュールに含まれる値の合計値などを参照すればよい。この十分性の確認によって、例えばモジュール相互の統合や、モジュールの重要性、モジュールの粒度などが判断できる。
機能モジュール設計マトリクスの再配置計算を行う場合、機能モジュール設計マトリクス表示部150は、再配置の指示入力を受けつけて表示した各情報の相互関係を維持しつつマトリクスの行および列の置換処理(再配置)を行った設計マトリクス情報を計算して再配置が反映された状態に変更して設計情報保管部130に登録処理する(S121)。
ここで、行・列の配置変換による機能とモジュールとの対応付けの適正化(個々のモジュールの粒度決定などの決定)は、マトリクスを利用者自身が手動で操作してもよい。このとき、設計マトリクスをモジュール化(ブロック化)を進めることによってアーキテクチャの適正化が図れる。DSMの最適なモジュール分割は、配列の斜めラインに寄せて配置されかつ各モジュールに含まれる値の合計値が最大に近づけるような、戦略をとるとよい。
他方、行・列の数が多い場合には、各設計マトリクスの行/列の再配置に基づき設計開発の適正解を自動的に算定する設計マトリクス配置計算部140を用いることで、より有効に適正解を導出できる。適正解の自動算定は、遺伝的アルゴリズムを利用できる。また、他のアルゴリズムを使用することも可能である。当該自動化によって、入力された設計マトリクス情報に好適なアーキテクチャのモデル図(設計図)が得られる。適正解の自動算定でも、手動で適正解を求める際と同様に、使用する適正化アルゴリズムを実行するプログラムによって、配列の斜めに配置されかつ各モジュールに含まれる値の合計値が最大になるようなパターン(マトリクスの形状と密度)を導出するなどとすればよい。なお、導出するパターンは、1種類に限らずとも複数種類のパターンを導出させてもよい。
機能モジュール設計マトリクス表示部150は、再配置計算された設計マトリクス情報を用いて再配置計算後の機能モジュール設計マトリクスを表示する(S122)。なお、機能モジュール設計マトリクス表示部150は、再配置計算後のマトリクス表示の際に、再配置前後の機能モジュール設計マトリクスを対比できるように表示するように構成してもよい。
以上の第1のフェーズにより、アプリケーションプログラムのモジュール構成(担当機能や粒度など)が定まる。すなわち、機能モジュール設計マトリクスを参照することで、性能、保守性、安全性、可用性、移行性、機能間の依存関係などの設計観点を識別でき、再配置によってこれら設計観点を考慮した良好なモジュール構成を導出できる。
この結果、設計開発時に決定するソフトウェア機能のモジュール化が判断しやすくなる。なお、個々のモジュール開発は、下記のフェーズによって全体の適正化が行われた後に行なわれることとなる。
[第2のフェーズ]
次に、第2のフェーズとして、上述したように決定したアプリケーションのモジュール構成に対して、そのモジュール群の論理的配置を決定するためのモジュール配置設計フェーズを実行する。
まずアプリケーションを構成するモジュール群と、モジュール間の呼び出し関係とを依存関係として依存関係入力部110に入力する(
図5のS211)。
次に、可用性・保守性・移行性・安全性などの要件(設計観点)で特定のモジュール間に関連がある場合には、これらを設計アスペクト情報200として設計アスペクト情報入力部120に入力する(S212、
図2参照)。
設計情報保管部130は、S211、S212で入力された情報を受け付けて設計マトリクス情報として保管する(S213)。
モジュール配置設計マトリクス表示部160は、設計情報保管部130に保管された、設計マトリクス情報を用いてDSM方式のマトリクス(モジュール配置設計マトリクス)を表示する(S214)。
このDSM方式に基づくマトリクスの可視化により、S211、S212で入力した情報の十分性を確認し、見直しが必要な場合には、S211に戻る。見直しが不要で、モジュール配置が適正になされている場合には、その内容を設計マトリクス情報として設計情報保管部130に出力した後、表示を終了する。また、可視化したマトリクスに基づき再配置を行う場合には、S221に進む(S215)。なお、本フェーズでの十分性の判断でも、先のフェーズ(機能モジュール設計フェーズ)での判断と同様の基準(配置や合計値など)を用いておこなうこととすればよい。
モジュール配置設計マトリクスの再配置計算を行う場合、モジュール配置設計マトリクス表示部160は、再配置の指示入力を受けつけて表示した各情報の相互関係を維持しつつマトリクスの行および列の置換処理(再配置)を行った設計マトリクス情報を計算して再配置が反映された状態に変更して設計情報保管部130に登録処理する(S221)。
ここで、行・列の配置変換によるモジュールと論理リソースとの対応付けの適正化(論理リソースへのモジュール配置とその密度の決定など)は、設計マトリクスを利用者自身が手動で操作して、モジュール配置(ブロック化)を進めることとしてもよい。このとき、設計マトリクスをモジュール化(ブロック化)を進めることによってアーキテクチャの適正化が図れる。DSMの最適なモジュール配置は、配列ラインの斜めに配置されかつ各モジュールに含まれる値の合計値が最大になるような戦略をとるとよい。
また、設計マトリクス配置計算部140を用いて適正解を導出してもよい。適正解の自動算定は、上記機能モジュール設計フェーズと同様に行える。当該自動化によって、入力された設計マトリクス情報に好適なアーキテクチャのモデル図(設計図)が得られる。なお、マトリクスのパターンは、複数種類のパターンを導出することとしてもよい。また、マトリクスのパターンは、先のフェーズで導出した個々のモジュールのマトリクス上での合計値の重心が均一化されるように導出するようにてもよい。このようにモジュールの重心を均一化することで、設計アスペクト情報として入力した重要度に基づく個々のモジュールの仮想化マシンへの分布の平均化が図れる。この平均化によって、クラウド環境での各処理の平坦化が期待できる。
モジュール配置設計マトリクス表示部160は、再配置計算された設計マトリクス情報を用いて再配置計算後のモジュール配置設計マトリクスを表示する(S222)。なお、モジュール配置設計マトリクス表示部160は、再配置計算後のマトリクス表示の際に、再配置前後のモジュール配置設計マトリクスを対比できるように表示するように構成してもよい。また、モジュール配置設計マトリクス表示部160は、モジュール配置設計マトリクスと共に機能モジュール設計マトリクスを表示するようにしてもよい。
以上の第2のフェーズにより、先のフェーズで導出した個々のモジュールの実行環境とする論理装置への配置が定まる。すなわち、機能モジュール設計マトリクスを参照することで、設計開発時に決定するアプリケーションモジュールの論理的配置場所が判断しやすくなる。
[第3のフェーズ]
次に、第3のフェーズとして、上述したように決定したモジュールの論理装置に対して、モジュールが配置された論理リソース群の物理的配置を決定するためのリソース割当設計フェーズを実行する。
まずアプリケーション間の呼び出し関係を依存関係として依存関係入力部110に入力する(
図6のS311)。
次に、性能の要件などに基づき、特定のモジュール間(モジュールを搭載する論理リソース間)に関連を持たせる場合には、これらを設計アスペクト情報200として設計アスペクト情報入力部120に入力する(S312)。
設計情報保管部130は、S311、S312で入力された情報を受け付けて設計マトリクス情報として保管する(S313)。
リソース割当設計マトリクス表示部170は、設計情報保管部130に保管された設計マトリクス情報を用いてDSM方式のマトリクス(リソース割当設計マトリクス)を表示する(S314)。
このDSM方式に基づくマトリクスの可視化により、S311、S312で入力した情報の十分性を確認し、見直しが必要な場合にはS311に戻る。見直しが不要で、モジュール配置が適正になされている場合には、その内容を設計マトリクス情報として設計情報保管部130に出力した後、表示を終了する。また、可視化したマトリクスに基づき再配置を行う場合には、S321に進む(S315)。なお、十分性の判断は、先のフェーズと同様に行えばよい。
リソース割当設計マトリクスの再配置計算を行う場合、リソース割当設計マトリクス表示部170は、再配置の指示入力を受けつけて表示した各情報の相互関係を維持しつつマトリクスの行および列の置換処理(再配置)を行った設計マトリクス情報を計算して再配置が反映された状態に変更して設計情報保管部130に登録処理する(S321)。
ここで、行・列の配置変換による論理リソースと物理リソースとの対応付けの適正化(物理リソースへの仮想マシンの配置とその密度の決定など)は、先のフェーズと同様に、設計マトリクスを利用者自身が手動で操作して、モジュール化を進めることとしてもよいし、設計マトリクス配置計算部140を用いて適正解を導出してもよい。このように、設計マトリクスをモジュール化(ブロック化)を進めることによってアーキテクチャの適正化が図れる。
適正解の自動算定は、上記両設計フェーズと同様に行える。当該自動化によって、入力された設計マトリクス情報に好適なアーキテクチャのモデル図(設計図)が得られる。なお、マトリクスのパターンは、複数種類のパターンを導出することとしてもよい。また、マトリクスのパターンは、先のモジュール配置フェーズで導出した個々の論理リソースのマトリクス上での合計値の重心が均一化されるように導出するようにしてもよい。このように論理リソースの重心を均一化することで、論理リソースを介しても設計アスペクト情報として入力した重要度に基づく個々のモジュールに起因する物理マシンへの分布の平均化や処理の平坦化が期待できる。
リソース割当設計マトリクス表示部170は、再配置計算された設計マトリクス情報を用いて再配置計算後のリソース割当設計マトリクスを表示する(S322)。なお、リソース割当設計マトリクス表示部170は、再配置計算後のマトリクス表示の際に、再配置前後のリソース割当設計マトリクスを対比できるように表示するように構成してもよい。また、リソース割当設計マトリクス表示部170は、リソース割当設計マトリクスと共に先の両フェーズでのマトリクスを表示するようにしてもよい。
以上の第3のフェーズにより、先のフェーズで導出した個々の論理リソースを実行環境とする物理装置(物理リソース)に対する割当位置を好適に定められる。
以上のように、アプリケーションアーキテクチャ設計装置100において、仮想化環境やクラウド環境におけるアプリケーションアーキテクチャの良好な設計解を導出できる。
以下に、具体的な事例を用いて上記実施の一形態について、
図7、
図8、
図9、
図10、
図11、
図12、
図13を用いて説明する。
図7に例とするクラウドコンピューティング環境上に構築を予定するアプリケーションプログラムの構成を示す。このクラウドアプリケーションプログラムは、ネットワーク上に配置されたサーバ機器のログ情報を一定期間ごとに収集して、データベースに保管する。
また、このクラウドアプリケーションプログラムは、ユーザとのインタフェースとして、Web画面(インタフェース)を構築する。ネットワークを介してユーザからキーワード検索のリクエストを受け付けると、このクラウドアプリケーションプログラムは、保管されたデータベースからデータを読み出してキーワードを含むログを抽出し、その件数をカウントしてWeb画面として提示する。
このようなアプリケーションが有する機能としては、まず、ログ収集機能、スケジュール機能、ログ書き込み機能、データ保管機能、次に、リクエスト入力機能、リクエスト分析機能、データキャッシュ機能、データ検索機能、検索結果カウント機能、カウント結果出力機能が挙げられる。
先ず、アーキテクトは、アプリケーションアーキテクチャ設計装置100に、前述の機能間の呼び出し関係を依存関係入力部110から入力する。
ここでは、設計アスペクト情報入力部120では、
図8に示すような設計観点を示すリストから、パフォーマンス(性能)とセキュリティ(安全性)に関するアスペクトを選択して、設計アスペクト情報を入力する。
次に、アーキテクトは、パフォーマンス観点の要件として、ログ収集機能とログ書き込み機能は連続して実行することが望ましいことと、ログ書き込み機能とデータ保管機能は一体となって連続実行されることを、設計アスペクト情報入力部120に設計アスペクト情報の一項目として入力する。同様に、アーキテクトは、パフォーマンス観点の他の要件や、他の観点の各項目を入力する。なお、当該入力情報は、アーキテクトの手入力に限定されるわけではなく、データベースとして過去に蓄積済みの設計アスペクト情報などから引用することとしてもよい。
また、アーキテクトは、この設定を行なう際に、要件毎に入力する重要度の値を、総和が1.0になるよう重要度を入力することが望ましい。重要度の設定例は、
図2に示している。
図2の設定例では、機能依存関係を0.1、パフォーマンスを0.3、セキュリティを0.2、保守性を0.3、拡張性を0.1に調整して、総和を1.0にしている。
入力された依存関係と設計アスペクトの情報を受けて設計情報保管部130では、設計マトリクス情報として保管される。また、設計情報保管部130によって、設計アスペクト情報で指定された機能間には、その設計アスペクトの重要度の値を加える。
各情報の入力を受けて、アプリケーションアーキテクチャ設計装置100は、自動的又はアーキテクトの指示に基づき、機能モジュール設計マトリクス表示部150を動作させて、設計情報保管部130に登録されている設計マトリクス情報を読み出して、DSM形式に各モジュールに割当てる機能と割当てられるモジュールの対応関係が反映された機能−モジュールを示す設計マトリクスを表示して、アーキテクトに提示する。
ここで、機能モジュール設計マトリクスの適正化を行い、性能を考慮した機能分割を反映したモジュールを算定する。
人為的に行なう場合は、アーキテクトによる設計マトリクスの操作を受け付け、設計マトリクス(設計マトリクス情報)を再計算(再構築処理)し、その結果の機能モジュール設計マトリクスを適宜表示する。
また、自動化して行なう場合は、設計マトリクス配置計算部140からの再配置の入力を受けつけて自動的に設計マトリクス(設計マトリクス情報)を再計算(再構築処理)し、その結果の1ないし複数の機能モジュール設計マトリクスを表示する。
アーキテクトは、機能モジュール設計マトリクス表示部150に適時出力された設計マトリクスを視認することで、見直しの有無やその設計の適否を視認する。また、再配置前後の設計マトリクスを対比可能なように表示するようにしてもよい。また他のマトリクスと対応付けや、各モジュールの密度や重心を視覚効果として表示してもよい。
図9には、マトリクスの再配置の一例を示す。アーキテクト又は設計マトリクス配置計算部140は、行および列をそれぞれ移動して、対角線(黒塗りのセル)および左下方向に値を持つセルが多く並び大きなモジュール(セルの集合:ブロック)を形成するように再配置する。このDSM表記上のモジュールの大きさが、プログラムのモジュールの粒度の単位と成る。なお、
図9では各セルを0,1の二値で記載している。他方、
図3に示す様に各セルが0,1の二値ではなく0から1の間の重みを付けている場合には、上記したように、ブロック中の合計値が大きくなる組合せを適切なものとすればよい。
第一のフェーズでの再配置後のモジュール構成として、例えば次のような分割結果が得られたとする。
(1)ログ収集機能、ログ書き込み機能
(2)スケジュール機能
(3)データ保管機能、データ検索機能
(4)リクエスト入力機能、カウント結果出力機能
(5)リクエスト分析機能、データキャッシュ機能
※(1)〜(5)は、個々のモジュールを指す
次に、第二のフェーズとして上記の各モジュールを仮想マシンに配置する。
ここでは、設計アスペクト情報入力部120には、保守性・安全性・可用性・移行性などに関するアスペクトを次のように入力する。
保守性の観点から、(1)ログ収集機能、ログ書き込み機能と(2)スケジュール機能とは同じ仮想マシン上で管理するのが望ましい。同様に、保守性の観点から、(3)データ保管機能、データ検索機能と(4)リクエスト入力機能、カウント結果出力機能とは同じ仮想マシン上で管理するのが望ましい。これらの情報を保守性の要件として入力するとともに、他の要件(拡張性や保守性など)も入力する。なお、当該アスペクトの入力は、フェーズ開始時や先のフェーズ時に行なってもよいし、追加的に行なってもよく、適宜行えばよい。
各情報の入力を受けて、アプリケーションアーキテクチャ設計装置100は、モジュール配置設計マトリクス表示部160を動作させて、設計情報保管部130に登録されている設計マトリクス情報を読み出して、DSM形式にモジュールが個々に動作する仮想マシンに対する各モジュールのモジュール配置を示す設計マトリクスを表示して、アーキテクトに提示する。
ここで、モジュール配置設計マトリクスの適正化を行い、各要件を反映したモジュールの仮想マシンへの配置を算定する。
人為的に行なう場合は、アーキテクトによる設計マトリクスの操作を受け付け、設計マトリクスを再計算し、その結果のモジュール配置設計マトリクスを適宜表示する。
また、自動化して行なう場合は、設計マトリクス配置計算部140からの再配置の入力を受けつけて自動的に設計マトリクスを再計算し、その結果の1ないし複数のモジュール配置設計マトリクスを表示する。
アーキテクトは、モジュール配置設計マトリクス表示部160に適時出力された再配置前後の設計マトリクスを視認することで、見直しの有無やその設計の適否を視認する。
これにより、再配置後のモジュール構成として、例えば、次のようなリソース配置結果が得られ、
図10で示すような設計のモデル図を出力することができる。得られたモデル図は、適時又はアーキテクトの指示のもと、インタフェース上に提示すればよく、また、他の情報と連係させることが望ましい。
仮想マシン1:(1)ログ収集機能、ログ書き込み機能、(2)スケジュール機能
仮想マシン2:(3)データ保管機能、データ検索機能、(4)リクエスト入力機能、カウント結果出力機能
仮想マシン3:(5)リクエスト分析機能、データキャッシュ機能
※(1)〜(5)は、個々のモジュールを指す
次に、第三のフェーズとして上記の仮想マシンを物理マシン上に配置する。
ここでは、設計アスペクト情報入力部120には、性能などに関するアスペクトを次のように入力する。
上記仮想マシン1から3は、他のサービスで用いられる仮想マシンとの干渉を考慮し、実際に仮想マシンを動かす物理マシンの決定を容易にする。
上記仮想マシン1から3は、ディスクIOが多い他のアプリケーションとは分離させる。
これらの情報を性能の要件として入力するとともに、他の要件(拡張性や保守性など)も入力する。なお、当該アスペクトの入力は、フェーズ開始時や先のフェーズ時、再配置後に追加的に適宜行えばよい。
各情報の入力を受けて、アプリケーションアーキテクチャ設計装置100は、リソース割当設計マトリクス表示部170を動作させて、設計情報保管部130に登録されている設計マトリクス情報を読み出して、DSM形式に個々の仮想マシンが動作する物理マシンに対する各仮想マシンの割振りとなるリソース割当を示す設計マトリクスを表示して、アーキテクトに提示する。
ここで、リソース割当設計マトリクスの適正化を行い、各要件を反映した仮想マシン1〜3の物理マシンへの配置を算定する。
人為的に行なう場合は、アーキテクトによる設計マトリクスの操作を受け付け、設計マトリクスを再計算し、その結果のリソース割当設計マトリクスを適宜表示する。
また、自動化して行なう場合は、設計マトリクス配置計算部140からの再配置の入力を受けつけて自動的に設計マトリクスを再計算し、その結果の1ないし複数のリソース割当設計マトリクスを表示する。
アーキテクトは、リソース割当設計マトリクス表示部170に適時出力された再配置前後の設計マトリクスを視認することで、見直しの有無やその設計の適否を視認する。
これにより、再配置後の仮想マシンの配置構成として、例えば、次のような配置計画が得られ、
図11で示すような設計のモデル図を出力することができる。得られたモデル図は、適時又はアーキテクトの指示のもと、インタフェース上に提示すればよく、また、他の情報と連係させることが望ましい。
物理マシン1:仮想マシン1、仮想マシン2
物理マシン2:仮想マシン3
ここまでの各フェーズを行なうことで、
図11に示すように、個々の物理マシンに導入すべき仮想マシンおよびモジュール群が好適なアーキテクチャで導出できる。
次に、アーキテクトに対して提示するインタフェース(画面)を例示する。
図12は、設計後のアーキテクチャを確認するインタフェース例である。この例では、設計マトリクスを用いて行った3つのフェーズによって得られた2つのモデル図を上ウインドに、選択された部分の適正化後の設計マトリクスを下ウインドに表示される画面構成を採用している。なお、本発明は、このインタフェースに限定されるものではなく、アーキテクトの操作性や利便性を考慮して適宜同時表示する情報を選択すればよい。
図13は、アプリケーションアーキテクチャ設計装置100での設計マトリクスの自動的最適化を行なう時に用いるインタフェース例である。この例では、上ウインドに適正化前、下ウインドに適正化後が表示される構成であり、操作者からアナライズボタンへの入力を受けて、設計マトリクス計算部140で設計マトリクスの適正化が行われて、その結果が下ウインドに表示されている。図中からわかるように、再配置前に多数のモジュールを、再配置によってモジュールを統合できる良好な設計解を導出している。この導出した設計解に基づいて設計を再考することで、より良い仮想化環境やクラウド環境におけるアプリケーション設計が行える。また、その際に、図中の密度表示(下ウインド参照)で表しているように、設計アスペクトとして入力した性能や保守性、安全性・・・などの多種の設計観点を可視的に一体的に確認できる。このことにより、効率的に良好な設計解を導き出せる。
以上説明したように、本発明を適用したアプリケーションアーキテクチャ設計装置によれば、仮想化環境やクラウド環境におけるアプリケーション設計時に、アプリケーションアーキテクチャのより良い設計解を容易且つ均一的に導出できる。また、各設計マトリクスを用いることで、アーキテクチャの客観的な評価にも役立てることできる。
具体的に例示すれば、ソフトウェア機能の性能観点などによるモジュールの規模の策定、割当機能の決定が判断しやすくなる。これは、機能モジュール設計マトリクスの適正化を用いることにより、性能を考慮した機能分割が容易と成るからである。
同様に、モジュール配置設計マトリクスにより、拡張性や保守性の要件を充たしたモジュールの配置方法が容易となる。
また、アプリケーション配置場所(どの地域やどのデータセンタを用いるなど)が判断しやすくなる。これは、リソース割当設計マトリクスにより、仮想マシン間の依存関係が分かり、運用管理者によるクラウドサービスで用いる仮想マシンをどの物理マシン上で動かすことが適しているのかが分かり、計画を立て易くなるためである。
また、アプリケーションアーキテクチャ設計装置によれば、DSM形式で表示された各設計マトリクスの行/列の再配置に基づく設計開発の適正解を自動化して利用者に提供できる。当該自動化によれば、入力した設計アスペクト情報と依存関係とに基づき、性能、保守性、安全性、可用性、移行性などの設計観点を所望のように考慮した、アプリケーションのモジュール構成、仮想マシンへのモジュール配置、および物理マシンへの仮想マシン配置を示してくれる。また、各観点に対する重要度を反映させた各フェーズ毎の複数のモデル図を容易に取得することが可能となる。
尚、アプリケーションアーキテクチャ設計装置の各部は、ハードウェアとソフトウェアの組み合わせを用いて実現すればよい。ハードウェアとソフトウェアとを組み合わせた形態では、RAMにアプリケーションアーキテクチャ設計プログラムが展開され、当該プログラムに基づいて制御部(CPU)等のハードウェアを動作させることによって、各部を各種手段として機能させる。また、このプログラムは、固定的に記録媒体に記録されて頒布されても良い。当該記録媒体に記録されたプログラムは、有線、無線、又は記録媒体そのものを介して、メモリに読込まれ、制御部等を動作させる。尚、記録媒体を例示すれば、オプティカルディスクや磁気ディスク、半導体メモリ装置、ハードディスクなどが挙げられる。
また、アプリケーションアーキテクチャ設計装置は、
図14や
図15に例示すように、コンピュータ単体として構築してもよいし、サーバ−クライアントシステムとして構築してもよい。
上記実施の形態を別の表現で説明すれば、アプリケーションアーキテクチャ設計装置として動作させる情報処理装置を、RAMに展開されたアプリケーションアーキテクチャ設計プログラムに基づき、依存関係入力部、設計アスペクト情報入力部、設計情報保管部、設計マトリクス配置計算部、機能モジュール設計マトリクス表示部、モジュール配置設計マトリクス表示部、リソース割当設計マトリクス表示部として制御部を動作させることで実現することが可能である。当該情報処理装置は、設計情報保管部に蓄積された各時点の設計マトリクス情報を各種設定要件などとともに出力部(プリンタなど)から出力する。また、情報処理装置の画面には、機能モジュール設計フェーズ、モジュール配置設計フェーズ、リソース割当設計フェーズの3時点の設計マトリクス情報を関連付けて反映させた3DSMマトリクスを表示できるようにしてもよい。また、各DSMマトリクスと関連付けて、入力された依存関係や設計アスペクトをモデル化したアーキテクチャのモデル図を表示するようにしてもよい。また、表示したモデル図を操作することによって、依存関係や設計アスペクトについて修正できるようにしてもよい。これらのモデル図は、各段階で行われるDSM形式の設計マトリクスと連係させ、また、再配置前と再配置後の設計マトリクスについて、適宜表示できるようにインタフェース画面を作ることが望ましい。これらのことを行なうことで、設計アスペクトとして入力される項目ごとの重要度がアーキテクチャ設計の適正化により有効に寄与することとなる。
また、本発明の具体的な構成は前述の実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の変更があってもこの発明に含まれる。
本発明によれば、仮想化をも考慮したアプリケーションの設計が可能になることで、システム開発者が、サーバやストレージが仮想化されている環境に適したアプリケーションのモジュール構成や、仮想的配置、物理的配置を良好に設計することが可能となる。
また、クラウドサービスなどの提供事業者は、アプリケーションの特性に合わせて、仮想マシンの割り当て方を最適化することが可能となる。
また、クラウドサービスなどの提供事業者は、他のサービスで用いられる仮想マシンとの干渉を考慮して、実際に仮想マシンを動かす物理マシンの決定を容易に行なうことが可能となる。
この出願は、2011年4月28日に出願された日本出願特願2011−101106号を基礎とする優先権を主張し、その開示の全てをここに取り込む。