(57)【要約】  複雑な処理を行うコンピュータシステムであっても、価格が最小となるシステム構成の設計を短時間かつ高効率に行なえるように支援すること。  非機能要件に関するService Level Object（ＳＬＯ）が複数指定されるコンピュータシステムの制御可能な設計パラメータの設計を支援する最適設計支援装置は、複数のＳＬＯのうち一部のＳＬＯを達成するコンピュータシステムのシステム構成の価格の最小値である緩和解評価値を導出する緩和解導出部５３と、緩和解評価値部を利用して、複数のＳＬＯを全て達成し、かつ、システム構成の価格が最小となる設計パラメータのパラメータセットを探索する探索部7０を備える。
2014097599.tif 000002
【特許請求の範囲】
【請求項１】
非機能要件に関するService Level Object（ＳＬＯ）が複数指定されるコンピュータシステムの制御可能な設計パラメータの設計を支援する最適設計支援装置であって、
複数の前記ＳＬＯのうち一部のＳＬＯを達成する前記コンピュータシステムのシステム構成の価格の最小値である緩和解評価値を導出する緩和解導出手段と、
前記緩和解評価値を利用して、前記複数のＳＬＯを全て達成し、かつ、前記システム構成の価格が最小となる設計パラメータのパラメータセットを探索する探索手段と、
を備えることを特徴とする最適設計支援装置。
【請求項２】
前記一部のＳＬＯは、リソース使用率に対するＳＬＯであること、
を特徴とする請求項１に記載の最適設計支援装置。
【請求項３】
前記探索手段は、予測値が所定の閉じた式で算出することができないＳＬＯに対して前記システム構成の価格の最小値を導出すること、
を特徴とする請求項１又は２に記載の最適設計支援装置。
【請求項４】
前記緩和解評価値と予め設定された前記システム構成の価格の最小値とを比較し、前記緩和解評価値が予め設定された前記システム構成の価格の最小値より小さい場合にのみ、前記探索手段に前記パラメータセットを探索させる最適性判定手段をさらに備えること、
を特徴とする請求項１〜３のいずれか一項に記載の最適設計支援装置。
【請求項５】
前記緩和解評価値と所定の条件下で前記指定される複数のＳＬＯを全て達成するシステム構成における価格である暫定解評価値とを比較し、前記緩和解評価値が前記暫定解評価値より小さい場合にのみ、前記探索手段に前記パラメータセットを探索させる最適性判定手段をさらに備えること、
を特徴とする請求項１〜３のいずれか一項に記載の最適設計支援装置。
【請求項６】
非機能要件に関するService Level Object（ＳＬＯ）が複数指定されるコンピュータシステムの制御可能な設計パラメータの設計を支援する最適設計支援装置に、
複数の前記ＳＬＯのうち一部のＳＬＯを達成する前記コンピュータシステムのシステム構成の価格の最小値である緩和解評価値を導出するステップと、
前記緩和解評価値を利用して、前記複数のＳＬＯを全て達成し、かつ、前記システム構成の価格が最小となるパラメータを探索するステップと、
を実現させるコンピュータプログラム。
【請求項７】
非機能要件に関するService Level Object（ＳＬＯ）が複数指定されるコンピュータシステムの制御可能な設計パラメータの設計を支援する最適設計支援装置に於いて、
複数の前記ＳＬＯのうち一部のＳＬＯを達成する前記コンピュータシステムのシステム構成の価格の最小値である緩和解評価値を導出し、
前記緩和解評価値を利用して、前記複数のＳＬＯを全て達成し、かつ、前記システム構成の価格が最小となるパラメータを探索する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの制御可能な設計パラメータの設計を支援する最適設計支援装置、方法及びプログラムに関する。
【背景技術】
【０００２】
コンピュータシステムの開発時には、コンピュータシステムのサービス品質に関する認識の相違を防ぐため、あらかじめ顧客との間で、性能や可用性などの非機能要件に対するサービス品質の目標値（ＳＬＯ：Service Level Object）が設定されることが一般的である。【０００３】
代表的な非機能要件の一つは、性能である。例えば、性能に対するＳＬＯにおいては、システムの処理能力を表す最大スループット、所定の処理が終了するまでの時間を表すターンアラウンドタイム、ＣＰＵ（ＣＰＵ：Central Processing Unit）やスレッドなどの各種リソースの使用率が、それぞれ、許容できる範囲にあることが指定される。【０００４】
通常、このようなＳＬＯを考慮したシステム構成の設計（キャパシティプランニング）を行うためには、その技術分野の専門家が経験に基づく知識などを利用する。そして、要求される性能や可用性の条件を満たすようなシステム構成、すなわち、制御可能な設計パラメータの組み合わせを選び出す。【０００５】
しかし、決定すべき設計パラメータは大量に存在するため、適切な組み合わせを人手で決定するのは手間がかかる。また、ＳＬＯを達成し、かつ、サービス品質を保証するような構成は複数考えられるが、それらの中で価格が最小となるような最適な組み合わせを選び出すことは、さらに多くの時間と労力を要する。【０００６】
よって、このようなシステム構成を決定する工程を自動化することによって、全てのＳＬＯを達成し、かつ、価格が最小となるような設計パラメータの組み合わせを効率的に導出することが求められる。【０００７】
ここで、このような問題は、与えられた制約条件を満たし、一定の評価基準において評価を最高にするように各制御変数の値を決定する、いわゆる組み合わせ最適化問題として定式化することができる。【０００８】
この種の最適化問題を解決する公知技術として、下記特許文献１においては、システム構成を複数のパラメータ（パラメータセット）によって表現する。そのうえで、応答時間に関する一定の制約条件のもとで、価格が最小となるようなシステム構成を自動的に導出する技術が提案されている。より具体的には、システムの応答時間を待ち行列理論に基づいて予測し、ラグランジュの未定乗数法とニュートン法とによる逐次近似法を用いて、制約条件を満たす最適点を求める技術が提案されている。【０００９】
また、下記特許文献２では、サーバ上で実行されている業務アプリケーションごとに収集した、ＣＰＵなどのリソースの負荷情報をもとに処理の多重度を増加させた場合の負荷の増加量を計算する。その後、全てのリソースに対する負荷があらかじめ設定されている上限値以下となるように最適な処理の多重度を決定する技術が提案されている。【００１０】
さらに、下記特許文献３では、開発対象システムの各コンポーネントに対して、決められた配分比を満足する範囲内で資源使用量を配分して、トランザクションを複数同時に実行した場合のシステムの性能を予測する。予測結果が性能要求を満たさない場合には、前回と異なる資源使用量を配分し直した予測を繰り返すことで、性能要求を満足するのに必要な、各コンポーネントの資源使用量を探索する技術が提案されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００４−３０２９２号公報
【特許文献２】特開２００６−２５２１６２号公報
【特許文献３】特開２０１０−１２８８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、並列処理や分岐・同期処理などを含む複雑な処理を行うシステムについては、特許文献１に提案されている技術では、応答時間の予測値を閉じた式（数式）として表すことはできない。また、処理の様子を模したシミュレーションや実機を用いた計測等により、応答時間等に対する近似式を求めることは可能であるが、様々な条件下でのシミュレーションや実測を行う必要があるため、多大な時間を要する。逆に、限られた少数の条件下のみでしかシミュレーションや実測を行わなければ、誤差が大きくなってしまい、正確な非機能要件の評価やキャパシティプランニングを行うことはできない。【００１３】
また、特許文献２に提案されている技術では、単純な比例計算が可能なリソース使用率のみをＳＬＯとして扱っており、応答時間のような、正確に予測することが難しいＳＬＯについては考慮していない。【００１４】
さらに、特許文献３に提案されている技術では、様々なシステム構成における性能予測を繰り返す、いわば手探り的な手法であり、顧客の要求を満たす構成を見つけ出すのは、非常に効率が悪い。【００１５】
本発明は、上記の事情を鑑みてなされたものであり、その目的は、複雑な処理を行うコンピュータシステムであっても、価格が最小となるシステム構成の設計を、短時間かつ高効率に行なえるように支援する最適設計支援装置及びプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
上記課題を解決するために本発明の最適設計支援装置は、非機能要件に関するＳＬＯが複数指定されるコンピュータシステムの制御可能な設計パラメータの設計を支援する最適設計支援装置であって、複数の前記ＳＬＯのうち達成可否を高速に判定可能な一部のＳＬＯを達成する前記コンピュータシステムのシステム構成の価格の最小値である緩和解評価値を導出する導出手段と、前記緩和解評価値を利用して、前記複数のＳＬＯを全て達成し、かつ、前記システム構成の価格が最小となる設計パラメータのパラメータセットを探索する探索手段とを備えることを特徴とする。【００１７】
また、他の本発明のプログラムは、非機能要件に関するＳＬＯが複数指定されるコンピュータシステムの制御可能な設計パラメータの設計を支援する最適設計支援装置に、複数の前記ＳＬＯのうち一部のＳＬＯを達成する前記コンピュータシステムのシステム構成の価格の最小値である緩和解評価値を導出するステップと、前記緩和解評価値を利用して、前記複数のＳＬＯを全て達成し、かつ、前記システム構成の価格が最小となるパラメータを探索するステップと、を実現させる。【００１８】
また、他の本発明の方法は、非機能要件に関するService Level Object（ＳＬＯ）が複数指定されるコンピュータシステムの制御可能な設計パラメータの設計を支援する最適設計支援装置に於いて、複数の前記ＳＬＯのうち一部のＳＬＯを達成する前記コンピュータシステムのシステム構成の価格の最小値である緩和解評価値を導出し、前記緩和解評価値を利用して、前記複数のＳＬＯを全て達成し、かつ、前記システム構成の価格が最小となるパラメータを探索する。
【発明の効果】
【００１９】
本発明によると、複雑な処理を行うコンピュータシステムであっても、価格が最小となる最適なシステム構成の設計を、短時間かつ高効率に行なえるように支援することができる。より詳細には、応答時間などのサービスレベルの予測値を閉じた式として表すことなく、ＳＬＯを達成し、かつ、価格が最小となるシステム構成を自動的に決定することができる。また、前述のような複雑な処理を行うようなシステムにも対応できるようなキャパシティプランニングを自動的に行うことができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態に係る最適設計支援装置の構成を示すブロック図である。
【図２】図１に示す最適設計支援装置におけるシステムモデルの一例を示す図である。
【図３】図２に示すシステムモデルの各サーバに使用可能な製品ごとに定義されている、サービスレベルに影響する値と価格情報とを含む製品情報の一例を示す図である。
【図４】図１に示す最適設計支援装置の処理を示すフローチャートである。
【図５】本発明の第２の実施形態に係る最適設計支援装置の構成を示すブロック図である。
【図６】図５に示す最適設計支援装置の処理を示すフローチャートである。
【図７】本発明の第３の実施形態に係る最適設計支援装置の構成を示すブロック図である。
【発明を実施するための形態】
【００２１】
以下、本発明の各実施形態について、図面を参照して説明する。
【００２２】
（第１の実施形態）
図１は、第１の実施形態に係る最適設計支援装置１００の構成を示すブロック図である。最適設計支援装置１００は、非機能要件に関するＳＬＯが複数指定されるコンピュータシステムの制御可能な設計パラメータの設計を支援する装置である。この最適設計支援装置１００は、具体的には、メモリに格納され、プロセッサによって実行されるプログラムに従って動作する、コンピュータ等の情報処理装置によって実現されてもよい。最適設計支援装置１００は、上記コンピュータシステム内に設けられても良いし、上記コンピュータシステムとは別の情報処理装置に設けられても良い。また、最適設計支援装置１００は、以下に説明する各部として機能する論理回路で構成された専用装置であっても良い。ここで、各部とは、評価値基準設定部４０、最適化問題構築部３０、最適化パラメータセット探索部５０、部分問題構築手段部５１、緩和問題構築手段部５２、緩和解導出手段部５３、最適性判定手段部５４、評価値比較手段部５５、等を指す。
【００２３】
図１に示すように、最適設計支援装置１００は、ＳＬＯ１０、及びシステムモデル２０から最適なシステム構成を決定するための最適化問題を構築する最適化問題構築部３０と、該最適化問題における目的関数の評価値に対する基準値を設定する評価基準値設定部４０を備える。最適設計支援装置１００は、さらに、上記最適化問題を解いて最適なシステム構成となる最適パラメータセット６０を探索する最適パラメータセット探索部（パラメータセット探索部）５０とを備える。また、最適パラメータセット探索部５０は、部分問題構築部５１と、緩和問題構築部５２と、緩和解導出部５３と、最適性判定部５４と、評価値比較部５５（探索部７０とも呼ばれる）とを備えている。
【００２４】
ＳＬＯ１０は、前述の通り、性能や可用性などの非機能要件に対するサービスレベルの目標値であり、その目標値は設計対象のコンピュータシステムに対して顧客から指定される。具体的には、例えばコンピュータシステムの応答時間や各種リソースの使用率などの性能に対する目標値や、システムの故障率や復旧時間などの可用性に対する目標値が指定される。
【００２５】
システムモデル２０は、機械処理可能な形式で記述されたコンピュータシステムの設計情報を表すモデルである。このモデルは、ハードウェアやソフトウェアなどを含むシステム構成要素の接続状態、及び、システムの非機能要件に対するサービスレベルに影響する、サーバの台数やＣＰＵコア数、スレッド数などの各種設計パラメータを含む。このモデルは、さらに、該設計パラメータの取り得る値の範囲、及び、制御可能な設計パラメータを表す情報を含む。
【００２６】
ＳＬＯ１０、および、システムモデル２０は、外部から最適設計支援装置１００に与えられる、または、当該装置が備える記憶装置に格納されている。
【００２７】
図２はシステムモデル２０の具体例を示す図である。システムモデル２０においては、クライアントコンピュータ２１、ウェブ／ＡＰ（Application）サーバ２２、及びＤＢ（Data Base）サーバ２３がネットワークを介して直列に接続されている。例えば、システムモデル２０においては、ウェブ／ＡＰサーバ２２には製品ｘ０〜ｘ５のいずれかを１〜５台、ＤＢサーバ２３には製品ｙ０〜ｙ３のいずれかを１〜１０台使用できることが記述されている。すなわち、このシステムモデル２０における設計パラメータとしては、ウェブ／ＡＰサーバ２２、ＤＢサーバ２３の各台数（ｎ１，ｎ２）、及び使用する製品Ｘ、Ｙの種類を表す識別子（製品インデックス（ｉ１，ｉ２））が定義されている。これらのパラメータは、それぞれ以下のような値を取り得る。
【００２８】
ｎ１＝｛１〜５｝、ｎ２＝｛１〜１０｝、ｉ１＝｛ｘ０〜ｘ５｝、ｉ２＝｛ｙ０〜ｙ３｝
システムモデル２０には、各製品Ｘ（ｘ０〜ｘ５）、Ｙ（ｙ０〜ｙ３）の製品インデックス７１に関連付けて、ＣＰＵのコア数７２、ベンチマーク値（クロック周波数、メモリ容量）７３などのスペックに加えて、該製品Ｘ（ｘ０〜ｘ５）、Ｙ（ｙ０〜ｙ３）の価格７４が定義されている。図３は、この様子を示す。なお、スペックは、コンピュータシステムのサービスレベルに影響する設計パラメータである。なお、本第１の実施形態にいて、図３に示すデータを製品情報７０と呼ぶ。したがって、ウェブ／ＡＰサーバ２２、ＤＢサーバ２３を含むサーバ（以下、単にサーバともいう）の製品インデックスを変更することは、該サーバに別の製品を使用することを意味する。スペックや価格などの製品情報の値が、変更対象となる製品インデックスに応じて一括で変化する。
【００２９】
最適化問題構築部３０は、ＳＬＯ１０、及びシステムモデル２０に基づく最適なシステム構成を決定することを、最適化問題として定式化する。すなわち、最適化問題構築部３０は、指定されたＳＬＯ１０を達成し、かつ、価格が最小となるようなシステムモデル２０の設計パラメータの値の組み合わせ（最適パラメータセット）することを最適化問題とする。
【００３０】
具体的には、最適化問題構築部３０は、組み合わせ最適化問題を構築する。この最適化問題は、システムモデル２０に記述されている制御可能な設計パラメータを制御変数とする。この最適化問題は、指定されたＳＬＯを達成するという制約条件のもとで、システムモデル２０に記述されている各構成要素（製品ｘ０〜ｘ５、製品ｙ０〜ｙ３）の価格をもとに算出されるコンピュータシステムの合計価格（コスト）を目的関数とする。
【００３１】
例えば、システムモデル２０が上記の図２に示すように表され、以下の条件のＳＬＯ１０が指定された場合を例にとる。
【００３２】
（ａ）全てのサーバのＣＰＵ使用率が９０％以内であること
（ｂ）リクエストの応答時間が０．５秒以内であること
この場合、最適化問題構築部３０は、コンピュータシステムのサービスレベル（ＣＰＵ使用率、応答時間）の評価値が、それぞれ０．９、０．５以下となるような、コストが最小となる構成を求める定式化を行う。即ち、同部は、ウェブ／ＡＰサーバ２２の台数ｎ１、使用製品ｉ１（価格ｃｉ１）、ＤＢサーバ２３の台数ｎ２、使用製品ｉ２（価格ｃｉ２）の組み合わせのうち、コスト（ｃｉ１×ｎ１＋ｃｉ２×ｎ２）が最小となるものを求める、という定式化を行う。
【００３３】
評価基準値設定部４０は、最適化問題における目的関数の評価値に対する基準値として、該組み合わせ最適化問題の解が取り得る評価値の下限となる値を設定する。例えば、顧客から指定されたコストの上限や、何らかの方法で求めた上記最適化問題における実行可能解の評価値などを基準値として設定する。
【００３４】
最適パラメータセット探索部５０は、緩和解導出部５３で導出する価格の最小値を利用して、指定された複数のＳＬＯを全て達成し、かつ、コンピュータシステムのシステム構成の価格が最小となる設計パラメータのパラメータセットを探索する。以下、最適パラメータセット探索部５０が備える、部分問題構築部５１、緩和問題構築部５２、緩和解導出部５３、最適性判定部５４、及び評価値比較部５５について順に説明する。
【００３５】
部分問題構築部５１は、上記組み合わせ最適化問題（以下、元問題ともいう）を、複数の部分問題に分割する。具体的には、部分問題構築部５１は、元問題におけるいくつかの制御変数の定義域を分割して探索範囲を狭めることで、複数の小規模な最適化問題に変換する。
【００３６】
例えば、前述の図２に示すシステムモデル２０に対する最適化問題においては、元問題における各制御変数の定義域は、ｎ１＝｛１〜５｝、ｎ２＝｛１〜１０｝、ｉ１＝｛ｘ０〜ｘ５｝、ｉ２＝｛ｙ０〜ｙ３｝である。これに対し、部分問題構築部５１は、制御変数ｎ２に関する分割を行って、ｎ１＝｛１〜５｝、ｎ２＝｛１〜５｝、ｉ１＝｛ｘ０〜ｘ５｝、ｉ２＝｛ｙ０〜ｙ３｝、と、ｎ１＝｛１〜５｝、ｎ２＝｛６〜１０｝、ｉ１＝｛ｘ０〜ｘ５｝、ｉ２＝｛ｙ０〜ｙ３｝という二通りの定義域に分割する。そして、同部は、元問題を、ＤＢサーバ２３の台数が１〜５台、及び、６〜１０台というそれぞれの探索領域に含まれる最適パラメータセットを求めるという問題に変換する。
【００３７】
緩和問題構築部５２は、元問題、及び部分問題よりも制約条件を緩めて簡単に解くことが可能な緩和問題を構築する。具体的には、同部は、指定されているＳＬＯ１０のうち、達成可否を高速に判定することが可能な一部のＳＬＯ１０のみを制約条件とした場合の最適パラメータセットを求める、という問題を構築する。達成可否を高速に判定することが可能とは、例えば、所定回数の解析計算、例えば加減乗除算によって判定可能な、または、シミュレーションを必要としない、ことを意味する。
【００３８】
例えば、前述した二つのＳＬＯ１０のうち、応答時間を予測するためにはシミュレーションが必要となる。しかし、サーバのＣＰＵ使用率Ｕは、サーバ台数ｎ、該サーバに搭載されるＣＰＵコア数Ｎ、該サーバ機器の１コアあたりの性能を測定したベンチマーク値ＳＰを用いて、以下に示すシンプルな（１）式から予測することが可能である。
【００３９】
Ｕ＝（λ×ｄ）／（ｎ×Ｎ×ＳＰ）              ・・・（１）
ここで、（１）式において、λはリクエストの到着率である。また、ｄは１リクエストあたりの処理時間であり、特定のリクエストに対しては固定の値である。
【００４０】
そこで、緩和問題としては、全てのサーバｓについて、ＣＰＵ使用率Ｕｓの値が０．９以下であるという制約条件（下記（２）式）のみを考慮して、コストが最小となる最適パラメータセットを決定すればよい。
【００４１】
Ｕｓ＝（λ×ｄｓ）／（ｎｓ×Ｎｓ×ＳＰｓ）＜０．９              ・・・（２）
ここで、λsはサーバｓに対するリクエストの到着率である。また、ｄsは１リクエストあたりのサーバｓの処理時間である。ＮｓはサーバｓのＣＰＵコア数、ＳＰはサーバｓのベンチマーク値である。
【００４２】
例えば、図２に示すシステムモデル２０においては、ウェブ／ＡＰサーバ２２（サーバ１）、ＤＢサーバ２３（サーバ２）それぞれについて、以下の（３）式及び（４）式の条件を満たし、
（λ×ｄ１）／（ｎ１×Ｎ１×ＳＰ１）＜０．９                    ・・・（３）
（λ×ｄ２）／（ｎ２×Ｎ２×ＳＰ２）＜０．９                    ・・・（４）
かつ、価格が最小となるようなｎ（自然数）、Ｎ、ＳＰの組み合わせを決定する。ここで、Ｎ（ＣＰＵコア数）、ＳＰ（ベンチマーク値）は、使用する製品によって決まる所定の値であり、このため、実際には、設計パラメータとして、製品インデックスｉ１、ｉ２の値を決定することになる。
【００４３】
緩和解導出部５３は、緩和問題構築部５２で構築された問題を解いて、制約条件として一部のＳＬＯのみを考慮した場合に、コストが最小となるような設計パラメータの組み合わせを求める。ここで導出される緩和解は、全てのＳＬＯを考慮した元問題、及び、部分問題の解としては、実行不可能である可能性があるが、真に実行可能な解の評価値の上限、すなわち、コストの下限を与える。
【００４４】
ここで、前述の例で構築した緩和問題を解く方法を具体的に説明する。緩和解導出部５３は、ウェブ／ＡＰサーバ２２として使用可能な製品候補ｘ０〜ｘ５のスペックを順に調べ、各製品ｘ０〜ｘ５のＣＰＵコア数Ｎ１、ベンチマーク値ＳＰ１をもとに、上記（３）式を変形した、以下の（５）式を満たすｎ１の最小値を求める。すなわち、同部は、ウェブ／ＡＰサーバ２２が最低何台以上必要であるかを求める。
【００４５】
ｎ１＞（λ×ｄ１）／（Ｎ１×ＳＰ１×０．９）                    ・・・（５）
例えば、製品情報７０が図３に示すように定義されていて、各製品ｘ０〜ｘ５を使用した場合に必要なサーバ台数が、それぞれ次のように算出されたとする。
【００４６】
ｘ０：３台、ｘ１：２台、ｘ２：１台、ｘ３：１台、ｘ４：１台、ｘ５：１台
ここで、（製品の価格×台数）の値が最も安い組み合わせを緩和解として採用する。本第１の実施形態においては、それぞれの製品ｘ０〜ｘ５を使用した場合のウェブ／ＡＰサーバ２２の価格は以下のようになる。
【００４７】
Ｃｘ０×３＝１００×３＝３００
Ｃｘ１×２＝１２０×２＝２４０
Ｃｘ２×１＝１５０×１＝１５０
Ｃｘ３×１＝２５０×１＝２５０
Ｃｘ４×１＝２００×１＝２００
Ｃｘ５×１＝３００×１＝３００
ここで、Ｃｘ０〜Ｃｘ５は、製品ｘ０〜ｘ５の価格である。
【００４８】
したがって、最も価格が安くなる「製品ｘ２を１台」という組み合わせが緩和解として得られる。
【００４９】
同様に、ＤＢサーバ２３についても、製品候補ｙ０〜ｙ３を順に調べ、価格が最も安くなる製品と台数の組み合わせを緩和解として得ることができる。
【００５０】
最適性判定部５４は、緩和解導出部５３で導出された緩和解の評価値を利用して、ある部分問題の部分解が、元問題の最適解となり得るかどうかを調べる。具体的には、最適性判定部５４は、各部分問題の緩和解（部分緩和解）と、評価基準値設定部４０で設定された基準値とを比較し、部分緩和解の評価値が該基準値よりも悪い場合、または、部分緩和解が存在しない場合、その部分問題を削除する。
【００５１】
これは、全てのＳＬＯ１０を考慮した、最適パラメータセット６０をコンピュータシステムに設定する場合のコストは、必ず緩和解で導出されたパラメータセットをコンピュータシステムに設定する場合のコスト以上になるという性質を利用したものである。このように、解く必要のない部分問題を削除することで、最適パラメータセット６０の探索を効率化及び高速化することができる。
【００５２】
例えば、基準値として、顧客から指定されたコストの上限値が設定されていた場合を想定する。この場合、ある部分緩和解でのコストが該基準値より高ければ、該部分問題において全てのＳＬＯ１０を達成する実行可能解（部分実行可能解）のコストは、上記上限値よりも高くなるため、該部分問題を解く必要はない。また、元問題における実行可能解でのコストを求めることができて、該コストが上記基準値として設定されていた場合を想定する。この場合、ある部分緩和解でのコストが該基準値より高ければ、該部分問題における全ての部分実行可能解のコストは、元問題における、ある実行可能解でのコストよりも高くなる。よって、該部分問題における実行可能解は、元問題の最適解にはなり得ないため、該部分問題を解く必要はない。
【００５３】
評価値比較部５５は、最適性判定部５４において削除されなかった部分問題を解いて、評価値が最も高い部分解を、元問題の最適解とする。具体的には、評価値比較部５５は、該部分問題の定義域に含まれる各パラメータセットのうち、指定されたＳＬＯ１０を全て達成し、かつ、価格が最小のものが、該部分問題の解となる。
【００５４】
本第１の実施形態においては、部分問題の解法については限定しないが、例えば、全パラメータセットについて、シミュレーション等を用いてサービスレベルを予測し、ＳＬＯ１０の達成可否を調べる、いわゆる総当たり法によって解くことができる。
【００５５】
あるいは、最適化問題構築部３０が、各設計パラメータに対して、サービスレベルの予測値が単調に増加する、すなわち、各制御変数の値が大きいほど制約条件を満足しやすくなるように定式化を行う。これにより、全制御変数の値が定義域中の最小値を取る場合に全てのＳＬＯ１０を達成するならば、探索範囲全体が実行可能であると判定できる。例えば、図２に示すシステムモデル２０において、ウェブ／ＡＰサーバ２２、ＤＢサーバ２３の台数を増やせば、性能は単調に増加する。すなわち、応答時間やリソース使用率などの性能に関するＳＬＯ１０を達成しやすくなる。同様に、ウェブ／ＡＰサーバ２２、ＤＢサーバ２３の製品インデックスに対応する製品候補をスペック順にソートしておけば、製品インデックスに対しても性能は単調に増加すると考えられる。したがって、サーバ台数、製品インデックスが、該部分問題の定義域中の最小値をとる場合にＳＬＯ１０を達成するならば、該定義域に含まれるパラメータセットは全て実行可能であると判定できる。よって、該部分問題の定義域に含まれる他のパラメータセットにおけるＳＬＯ１０の達成可否を調べる必要はない。
【００５６】
次に、図４を参照しながら、最適設計支援装置１００が実行する処理について詳細に説明する。
【００５７】
まず、最適設計支援装置１００は、システムモデル２０から、制御可能な設計パラメータ、及び、それらの取り得る値を示す情報を抽出し、最適化問題における制御変数、及び、それらの定義域を決定する。並行して、指定されているＳＬＯ１０を参照して、満たすべき制約条件を決定する（ＳＴ１０１）。また、最適設計支援装置１００は、所定の評価基準値を設定する（ＳＴ１０２）。
【００５８】
次に、最適設計支援装置１００は、いくつかの制御変数の定義域を適当な範囲に分割し、元問題を複数の部分問題に分ける（ＳＴ１０３）。続いて、ステップＳＴ１０３で構築された各部分問題について、最適設計支援装置１００は、達成可否を高速に判定可能な一部のＳＬＯのみを制約条件とする緩和問題を構築し（ＳＴ１０４）する。さらに、同装置は、該緩和問題の緩和解を導出し、導出した緩和解の評価値とステップＳＴ１０２で設定された評価基準値を比較し、緩和解の評価値が評価基準値未満であるか否かを判定する（ＳＴ１０５）。
【００５９】
緩和解の評価値が評価基準値未満であると判定した場合（ＳＴ１０５：ＹＥＳ）、最適設計支援装置１００は、部分解を導出し（ＳＴ１０６）、緩和解の評価値が評価基準値以上であると判定した場合（ＳＴ１０５：ＮＯ）、その部分問題を削除する（ＳＴ１０７）。すなわち、最適設計支援装置１００は、緩和解の評価値の方が良い部分問題のみを解いて、緩和解の評価値の方が悪い部分問題を削除するため、高速に処理を行なうことができる。
【００６０】
ステップＳＴ１０６で導出された部分解の評価値をそれぞれ比較し、最も評価値が高い部分解を元問題の解とする（ＳＴ１０８）。
【００６１】
以上説明したように、本第１実施形態の最適設計支援装置１００は、複雑な処理を行うコンピュータシステムであっても、コストが最小となるシステム構成の設計を短時間かつ高効率に行なえるように支援することができる。
【００６２】
より具体的には、最適設計支援装置１００は、非機能要件に関して指定される複数のＳＬＯ１０、及びシステムモデル２０から、高速に算出することが可能な一部のＳＬＯのみを制約条件とする緩和問題を構築する緩和問題構築部５２を備えている。さらに、同装置は、この緩和問題構築部５２が構築した緩和問題の緩和解を導出する緩和解導出部５３を備えている。また、最適パラメータセット探索部５０は、緩和解導出部５３が導出した緩和解のコストと評価値基準設定部４０に設定されたコストの基準値とを比較する。そして、同部は、緩和解導出部５３が導出した緩和解のコストが評価値基準設定部４０に予め設定されたコストの基準値以下の場合にのみ、パラメータセットを探索する。したがって、最適設計支援装置１００は、該緩和問題の解の評価値を利用した効率的な最適パラメータセットの探索を行うことができる。さらに、同装置は、複数の指定されたＳＬＯ１０を達成し、かつ、コストが最小となるようなシステムモデル２０の設計パラメータの値の組み合わせを短時間かつ高効率に決定することができる。
【００６３】
（第２の実施形態）
次に、本発明の第２の実施形態について、図面を参照して説明する。図５は、第２の実施形態による最適設計支援装置１０１の構成を示すブロック図である。図５に示す最適設計支援装置１０１は、図１に示す第１の実施の形態の最適設計支援装置１００と比較すると、部分問題選択部５６を備え、評価値比較部５５に換えて暫定解導出部５７（探索部７０とも呼ばれる）を備える点で異なっている。よって、以下では、第１の実施形態と異なる点について説明する。
【００６４】
部分問題選択部５６は、部分問題構築部５１によって構築された複数の部分問題の中から、緩和問題を構築して最適性を判定すべき適当な部分問題を抽出する。
【００６５】
暫定解導出部５７は、部分問題選択部５６で選択された部分問題のうち最適性判定部５４において削除されなかった部分問題を解いて、該部分解と既に解けている他の部分問題の解の中で最良のものを順次比較し、より評価値が高いものを暫定解として保存する。そして、暫定解導出部５７は、全ての部分問題を解き終わった時点で保存されている暫定解を、元問題の最適解とする。
【００６６】
また、本第２の実施形態では、最適性判定部５４において、各部分緩和解の評価値と、暫定解導出部５７とで導出された暫定解の評価値とを比較することで、該部分問題の最適性を判定する。そして、最適性判定部５４は、ある部分緩和解の評価値が暫定解の評価値よりも悪い場合、または、緩和解が存在しない場合、該部分問題を削除する。
【００６７】
ただし、暫定解導出部５７及び最適性判定部５４において、いずれの部分問題も解けていない場合には、最適設計支援装置１０１は、第１の実施の形態と同様、評価基準値設定部４０において設定された基準値を用いた比較を行う。いずれの部分問題も解けていない場合とは、各部分緩和解の評価値と暫定解の評価値との比較を行う際、暫定解が得られていない場合を意味する。
【００６８】
次に、図６を参照しながら、最適設計支援装置１０１が実行する処理について詳細に説明する。
【００６９】
まず、ステップＳＴ２０１〜ＳＴ２０３（これらの処理は、図４のステップＳＴ１０１〜ＳＴ１０３の処理と同様である。）の処理を行い、最適設計支援装置１０１は、構築した部分問題の中から解くべき部分問題を選択する（ＳＴ２０４）。
【００７０】
次に、最適設計支援装置１０１は、該部分問題について、緩和問題を構築する（ＳＴ２０５）。同装置は、さらに、該緩和問題を解いた緩和解の評価値と暫定解の評価値（ここで、暫定解が導出されていない場合には、評価基準値を用いる）とを比較し、緩和解の評価値が暫定開の評価値未満であるか否かを判定する（ＳＴ２０６）。
【００７１】
最適設計支援装置１０１は、緩和解の評価値が暫定開の評価値未満であると判定した場合（ＳＴ２０６：ＹＥＳ）、ステップＳＴ２０４で選択された部分問題を解いて部分解を導出し（ＳＴ２０７）する。同装置は、緩和解の評価値が暫定開の評価値未満であると判定した場合（ＳＴ２０６：ＮＯ）、部分問題を削除する（ＳＴ２１０）。すなわち、最適設計支援装置１０１は、緩和解の評価値が暫定解の評価値より良ければ部分解を導出し、緩和解の評価値が暫定解の評価値よりも悪ければ部分解を削除する。
【００７２】
次に、最適設計支援装置１０１は、ステップＳＴ１０７で導出された部分解の評価値と暫定解の評価値とを比較し、部分解の評価値が暫定解の評価値未満であるか否かを判定する（ＳＴ２０８）。最適設計支援装置１０１は、部分解の評価値が暫定解の評価値未満でないと判定した場合（ＳＴ２０８：ＮＯ）、その部分問題を削除する（ＳＴ２１０）。同装置は、部分解の評価値が暫定解の評価値未満であると判定した場合（ＳＴ２０８：ＹＥＳ）、暫定解を更新し（ＳＴ２０９）、その部分問題を削除する（ＳＴ２１０）。すなわち、最適設計支援装置１０１は、部分解の評価値が暫定解の評価値より悪ければ、該部分問題を削除し、部分解の評価値が暫定解の評価値より良ければ、該部分解で暫定解を置き換えてから、部分問題を削除する。
【００７３】
次に、最適設計支援装置１０１は、全ての部分問題についてステップＳＴ２０４〜ＳＴ２１０の処理が終了したか否かを判定する（ＳＴ２１１）。同装置は、全ての部分問題について処理が終了していないと判定した場合（ＳＴ２１１：ＮＯ）、ステップＳＳＴ２０４の処理へ戻り、終了したと判定した場合（ＳＴ２１１：ＹＥＳ）、この処理を終了する。すなわち、最適設計支援装置１０１は、全ての部分問題を解き終わるまで、ステップＳＴ２０４からステップＳＴ２１１の処理を繰り返す。
【００７４】
以上説明したように、本第２の実施形態の最適設計支援装置１０１は、部分問題を順次解く過程で導出された、最良の評価値を持つ暫定解の評価値と、まだ解けていない部分問題の緩和解の評価値とを比較することで、該部分問題の最適性を判定する。ここで、暫定解の評価値は、所定の条件下で指定される複数のＳＬＯ１０を全て達成するシステム構成におけるコストである。このため、パラメータセットの探索が進むにつれて、ＳＬＯ１０の達成可否を調べることなく削除できる部分問題が増す。従って、指定されたＳＬＯ１０を達成し、かつ、コストが最小となるような、システムモデル２０の設計パラメータの値の組み合わせを、最適設計支援装置１００より更に短時間、かつ効率的に設計できるように支援することができる。
【００７５】
（第３の実施形態）
次に、本発明の第３の実施形態について、図面を参照して説明する。図６は、第３の実施形態の最適設計支援装置１００の構成を示すブロック図である。第３の実施形態の最適設計支援装置１００は、非機能要件に関するＳＬＯが複数指定されるコンピュータシステムの制御可能な設計パラメータの設計を支援する最適設計支援装置１００であって、緩和解導出部５３と探索部７０とを備える。緩和解導出部５３は、複数のＳＬＯのうち一部のＳＬＯを達成する前記コンピュータシステムのシステム構成の価格の最小値である緩和解評価値を導出する。探索部７０は、緩和解評価値を利用して、複数のＳＬＯを全て達成し、かつ、システム構成の価格が最小となる設計パラメータのパラメータセットを探索する。
【００７６】
本実施形態の最適設計支援装置１００は、複雑な処理を行うコンピュータシステムであっても、コストが最小となるシステム構成の設計を短時間かつ高効率に行なえるように支援することができる。その理由は、緩和解導出部５３が緩和解評価値を求め、探索部７０が、当該緩和解評価値を用いて、複数のＳＬＯを全て達成し、かつ、価格が最小となる設計パラメータのパラメータセットを探索するからである。  以上、本発明をその好適な実施形態に基づいて説明したが、本発明の最適設計支援装置１００，１０１は、上記各実施形態の構成にのみ限定されるものではなく、上記各実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。また、本発明は上述の実施の形態に限定されるものではなく、その実施に際して様々な変形が可能である。
【００７７】
この出願は、２０１２年１２月１７日に出願された日本出願特願２０１２−２７４４２９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００７８】
１０・・・ＳＬＯ（Service Level Object）
２０・・・システムモデル
３０・・・最適化問題構築部
４０・・・評価値基準設定部
５０・・・最適パラメータセット探索部
５１・・・部分問題構築部
５２・・・緩和問題構築部
５３・・・緩和解導出部
５４・・・最適性判定部
５５・・・評価値比較部
５６・・・部分問題選択部
５７・・・暫定解導出部
７０・・・探索部
１００，１０１・・・最適設計支援装置
【図１】
2014097599.tif 000003
【図２】
2014097599.tif 000004
【図３】
2014097599.tif 000005
【図４】
2014097599.tif 000006
【図５】
2014097599.tif 000007
【図６】
2014097599.tif 000008
【図７】
2014097599.tif 000009
【国際調査報告】
2014097599.tif 000010
2014097599.tif 000011