(57)【特許請求の範囲】
【請求項１】
管理対象である構成要素を示す構成要素情報と、管理対象である構成要素間の関係を示す関係情報とを記憶する記憶部と、
前記記憶部に記憶された情報と所定の制約条件とに基づいて、該所定の制約条件を満たし、かつ、前記関係情報に含まれていない構成要素間の関係を抽出する抽出部と、
抽出された該構成要素間の関係を利用するアプリケーションを実行して、抽出された構成要素間の関係についての評価結果を得る評価部と、
を備えたことを特徴とする管理装置。
【請求項２】
前記評価部によって得られた評価結果に応じて、前記抽出部によって抽出された構成要素間の関係を前記記憶部に追加登録する登録部をさらに備えたことを特徴とする請求項１に記載の管理装置。
【請求項３】
前記抽出部は、エラーが生じた構成要素を示す構成要素情報と他の構成要素情報との間で、所定の制約条件を満たし、かつ、前記関係情報に含まれていない構成要素間の関係を抽出し、
前記評価部は、前記抽出された構成要素間の関係を利用するアプリケーションとして、エラーの原因となる構成要素の候補を検索するアプリケーションを実行し、該エラーの原因となる構成要素の候補の数が少ないほど、前記抽出された構成要素間の関係が適正である旨の評価結果を得ることを特徴とする請求項１又は２に記載の管理装置。
【請求項４】
前記抽出部は、前記所定の制約条件として、関係が抽出される前記構成要素の種別に応じた制約、関係が抽出される前記構成要素の種別ごとに設定される前記関係情報の数に応じた制約、関係が抽出される前記構成要素の状態に応じた制約、前記記憶部に記憶された関係情報に応じた制約、のいずれか１つ、又は複数の制約を満たす関係情報を抽出することを特徴とする請求項１〜３のいずれか１つに記載の管理装置。
【請求項５】
管理対象である構成要素を示す構成要素情報と、管理対象である構成要素間の関係を示す関係情報とを記憶する記憶部と、
エラーが生じた構成要素を示す構成要素情報と、該エラーの原因となる構成要素を示す構成要素情報とを対応付けて記憶する分析事例記憶部と、
前記分析事例記憶部に記憶された前記エラーが生じた構成要素を示す構成要素情報と前記記憶部に記憶された構成要素情報との間で、所定の制約条件を満たし、かつ、前記関係情報に含まれていない構成要素間の関係を抽出する抽出部と、
前記抽出された構成要素間の関係を利用するアプリケーションとして、エラーの原因となる構成要素の候補を検索するアプリケーションを実行し、該検索された構成要素の候補を示す構成要素情報が、前記分析事例記憶部に記憶された前記エラーの原因となる構成要素を示す構成要素情報と一致するか否かを判定し、一致した場合には、前記抽出された構成要素間の関係が適正である旨の評価結果を得る評価部と、
を備えたことを特徴とする管理装置。
【請求項６】
管理対象である構成要素を示す構成要素情報と、管理対象である構成要素間の関係を示す関係情報とを記憶する記憶装置に記憶された情報、及び、所定の制約条件とに基づいて、該所定の制約条件を満たし、かつ、前記関係情報に含まれていない構成要素間の関係を抽出する抽出ステップと、
抽出された該構成要素間の関係を利用するアプリケーションを実行して、抽出された構成要素間の関係についての評価結果を得る評価ステップと、
を前記構成要素を管理する管理装置が実行することを特徴とする管理方法。  
【請求項７】
管理対象である構成要素を示す構成要素情報と、管理対象である構成要素間の関係を示す関係情報とを記憶する記憶装置に記憶された情報、及び、所定の制約条件とに基づいて、該所定の制約条件を満たし、かつ、前記関係情報に含まれていない構成要素間の関係を抽出する抽出手順と、
抽出された該構成要素間の関係を利用するアプリケーションを実行して、抽出された構成要素間の関係についての評価結果を得る評価手順と、
をコンピュータに実行させることを特徴とする管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理装置、管理方法および管理プログラムに関する。
【背景技術】
【０００２】
従来、ＣＭＤＢ（Configuration Management Database）と呼ばれる構成管理データベースが知られている。ＣＭＤＢは、ＩＴＩＬ（Information Technology Infrastructure Library）によってＩＴ（Information Technology）システムを管理するデータベースとして定義される。ここで、ＩＴＩＬとは、英国商務局がまとめたガイドブックである。
【０００３】
具体的には、ＣＭＤＢは、ＩＴ（Information Technology）システムの構成要素を示す情報であるＣＩ（Configuration Item：構成アイテム）と、ＣＩ間の関係を示す情報であるリレーションシップ（Relationship）とを記憶する。
【０００４】
ここで、図２７を用いて、ＣＭＤＢがＩＴシステムを構成する構成要素を管理する例について説明する。図２７は、ＣＭＤＢを説明するための図である。図２７に示すように、ＣＭＤＢは、物理マシン「ＰＭ（Physical Machine）：ｐｍ１１〜ｐｍ１３」を示すＣＩと、物理マシンに搭載される仮想マシン「ＶＭ（Virtual Machine）：ｖａ０１〜ｖｂ０３」を示すＣＩとを記憶する。また、ＣＭＤＢは、仮想マシンによって提供されるサービスである「Ｓｖｃ（Service）：Ｔａ〜Ｔｃ」を示すＣＩを記憶する。また、ＣＭＤＢは、各ＣＩ間の関係を示すリレーションシップ「０１．ｖｍ−ｐｍ〜２０．ｖｍ−ｔｅｎａｎｔ」を記憶する。
【０００５】
例えば、図２７の例では、リレーションシップ「０１．ｖｍ−ｐｍ」およびリレーションシップ「０２．ｖｍ−ｐｍ」が物理マシン「ＰＭ：ｐｍ１１」と仮想マシン「ＶＭ：ｖａ０１」の関係を示す。また、リレーションシップ「１３．ｖｍ−ｔｅｎａｎｔ」がサービス「Ｓｖｃ：Ｔａ」と仮想マシン「ＶＭ：ｖａ０１」の関係を示す。つまり、図２７に例示するＣＭＤＢでは、仮想マシン「ＶＭ：ｖａ０１」が物理マシン「ＰＭ：ｐｍ１１」に搭載されていることを示す。また、図２７に例示するＣＭＤＢでは、サービス「Ｓｖｃ：Ｔａ」が仮想マシン「ＶＭ：ｖａ０１」によって提供されていることを示す。
【０００６】
このようなＣＭＤＢにおいて、リレーションシップの定義漏れが存在する場合には、リレーションシップを利用するアプリケーションが適切な結果を得られない場合がある。ここで、リレーションシップを利用するアプリケーションとして、エラーが発生した構成要素を示すＣＩを辿り、各構成要素のエラーの起因となる構成要素を一意に特定するアプリケーションが適切な結果を得られない場合を説明する。
【０００７】
図２８の例を用いて、アプリケーションが適切な結果を得られない場合を説明する。図２８は、ＣＭＤＢのリレーションシップの定義漏れを説明するための図である。ここで、図２８の例では、物理マシン「ＰＭ：ｐｍ１１」が示す構成要素にエラーが発生した結果、仮想マシン「ＶＭ：ｖａ０１」、仮想マシン「ＶＭ：ｖｂ０１」、サービス「Ｓｖｃ：Ｔａ」、サービス「Ｓｖｃ：Ｔｂ」にエラーが発生したものとする。さらに、物理マシン「ＰＭ：ｐｍ１１」と仮想マシン「ＶＭ：ｖｂ０１」の関係を示すリレーションシップ「０３．ｐｍ−ｖｍ」および「０４．ｖｍ−ｐｍ」が定義漏れであるものとする。なお、図２８では、エラーが発生した構成要素を示すＣＩに星印が付されている。
【０００８】
例えば、アプリケーションは、サービス「Ｓｖｃ：Ｔｂ」からリレーションシップ「１６．ｖｍ−ｔｅｎａｎｔ」を辿って、サービス「Ｓｖｃ：Ｔｂ」を提供する仮想マシン「ＶＭ：ｖｂ０１」を特定する。次に、アプリケーションは、仮想マシン「ＶＭ：ｖｂ０１」からリレーションシップを辿って、仮想マシン「ＶＭ：ｖｂ０１」を搭載する物理マシンを特定しようとする。
【０００９】
ところが、図２８のＣＭＤＢでは、リレーションシップ「０３．ｐｍ−ｖｍ」および「０４．ｖｍ−ｐｍ」が定義されていない。このため、アプリケーションは、リレーションシップ「０３．ｐｍ−ｖｍ」または「０４．ｖｍ−ｐｍ」を辿って仮想マシン「ＶＭ：ｖｂ０１」を搭載する物理マシンを特定することができない。つまり、アプリケーションは、仮想マシン「ＶＭ：ｖｂ０１」およびサービス「Ｓｖｃ：Ｔｂ」のエラーの起因となる物理マシンを特定することができない。
【００１０】
このように、ＣＭＤＢに記憶されたＣＩをアプリケーションが正常に辿ることができない場合には、利用者が手作業でリレーションシップの補完を行って、ＣＭＤＢの整合性を維持する。具体的には、利用者は、定義漏れのリレーションシップを見つけるために、各ＣＩについて定義されるべきリレーションシップが全て定義されているかを確認する。そして、利用者は、リレーションシップの定義漏れを発見した場合には、リレーションシップの定義漏れを手作業で補完する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００３−２８９３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来の定義漏れのリレーションシップを利用者が補完する方法では、各ＣＩについて定義されるべきリレーションシップが全て定義されているかを確認し、定義漏れのリレーションシップが発見された場合には、利用者が手作業で補完する。このため、定義漏れのリレーションシップを補完するのは手間がかかり、リレーションシップの定義漏れを容易に補完することができないという問題があった。
【００１３】
本願に開示の技術は、上述した問題に鑑みてなされたものであって、定義漏れリレーションシップの補完を容易にする。
【課題を解決するための手段】
【００１４】
本願に開示の技術は、一つの態様によれば、管理対象である構成要素を示す構成要素情報と、管理対象である構成要素間の関係を示す関係情報とを記憶する管理装置である。また、管理装置は、記憶された情報と所定の制約条件とに基づいて、所定の制約条件を満たし、かつ、関係情報に含まれていない構成要素間の関係を抽出する。そして、管理装置は、抽出された構成要素間の関係を利用するアプリケーションを実行して、抽出された構成要素間の関係についての評価結果を得る。
【発明の効果】
【００１５】
本願に開示の技術は、一つの態様によれば、定義漏れリレーションシップの補完を容易にする。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施例１に係る管理装置を説明するためのブロック図である。
【図２】図２は、実施例２に係る補完装置を説明するためのブロック図である。
【図３】図３は、実施例２に係るＣＭＤＢに記憶された情報の一例を説明するための図である。
【図４】図４は、リレーションシップの候補を抽出するための制約の一例を説明するための図である。
【図５】図５は、エラーの起因を示すＣＩの初期評点算出処理を説明するための図である。
【図６】図６は、リレーションシップの候補を抽出する処理の一例を説明するための図である。
【図７】図７は、リレーションシップ候補の一例を説明するための図である。
【図８】図８は、ｒ１．ｖｍ−ｐｍとｒ２．ｐｍ−ｖｍとを適用した場合の処理を説明するための図である。
【図９】図９は、実施例２に係るリレーションシップの候補の評点表を説明するための図である。
【図１０】図１０は、ｒ３．ｖｍ−ｐｍとｒ４．ｐｍ−ｖｍとを適用した場合の処理を説明するための図である。
【図１１】図１１は、ｒ５．ｖｍ−ｐｍとｒ６．ｐｍ−ｖｍとを適用した場合の処理を説明するための図である。
【図１２】図１２は、ユーザへの問合せ表示の一例を表す図である。
【図１３】図１３は、実施例２に係る登録処理の一例を説明するための図である。
【図１４】図１４は、補完装置の処理の流れを説明するためのフローチャートである。
【図１５】図１５は、抽出処理の流れを説明するためのフローチャートである。
【図１６】図１６は、補完処理の流れを説明するためのフローチャートである。
【図１７】図１７は、源流判定処理の流れを説明するためのフローチャートである。
【図１８】図１８は、実施例３に係る補完装置を説明するためのブロック図である。
【図１９】図１９は、実施例３に係るＣＭＤＢが記憶する情報の一例を説明するための図である。
【図２０】図２０は、分析事例ＤＢが記憶する情報の一例を説明するための図である。
【図２１】図２１は、実施例３に係る補完装置が抽出するリレーションシップの一例を説明するための図である。
【図２２】図２２は、実施例３に係る候補表を説明するための図である。
【図２３】図２３は、実施例３に係る補完装置によるユーザへの問合せ表示の一例を表す図である。
【図２４】図２４は、実施例３に係る登録処理の一例を説明するための図である。
【図２５】図２５は、実施例３に係る補完装置の処理の流れを説明するためのフローチャートである。
【図２６】図２６は、管理プログラムを実行するコンピュータの一例を説明するための図である。
【図２７】図２７は、ＣＭＤＢを説明するための図である。
【図２８】図２８は、ＣＭＤＢのリレーションシップの定義漏れを説明するための図である。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照して本願に係る管理装置、管理方法および管理プログラムについて説明する。
【実施例１】
【００１８】
以下の実施例１では、図１を用いて、管理装置の一例を説明する。図１は、実施例１に係る管理装置を説明するためのブロック図である。なお、管理装置は、少なくともＣＭＤＢ（Configuration Management Database）を有し、ＣＭＤＢに記憶された情報の補完を行う装置である。
【００１９】
図１に示すように、管理装置１は、記憶部２、抽出部３、評価部４を有している。記憶部２は、管理対象である構成要素を示す構成要素情報と、管理対象である構成要素間の関係を示す関係情報とを記憶する。抽出部３は、記憶部２に記憶された情報と所定の制約条件とに基づいて、所定の制約条件を満たし、かつ、関係情報に含まれていない構成要素間の関係を抽出する。評価部４は、抽出された構成要素間の関係を利用するアプリケーションを実行して、抽出された構成要素間の関係についての評価結果を得る。
【００２０】
上述したように、管理装置１は、所定の制約を満たし、かつ、関係情報に含まれていない構成要素間の関係を抽出する。そして、管理装置１は、抽出された構成要素間の関係を利用するアプリケーションを実行し、抽出された構成要素間の関係についての評価結果を得る。これによれば、関係情報に含まれていない構成要素間の関係を抽出して、更に、その関係についての評価結果を得ることができるため、関係情報の補完処理の用に供することができる。例えば、管理装置１は、関係情報に含まれていない構成要素間の関係を、評価結果と共に利用者に提示することができるので、補完を容易にすることができる。
【００２１】
なお、評価部４による評価結果を関係情報と対応させて出力（表示、印刷等）したり、評価結果が所定の基準を満たす（関係として適正と考えられる基準）かどうか判定し、基準を満たす関係を自動的に選択するようにしてもよい。更に、評価がなされた関係情報のうち、出力に基づいて手動又は自動的に選択された関係情報を構成要素間の関係を示す関係情報として追加登録することもできる。
【実施例２】
【００２２】
以下の実施例２では、ＣＭＤＢ（Configuration Management Database）に接続された補完装置の構成および処理の流れを順に説明する。
【００２３】
まず、図２を用いて、実施例２に係る補完装置の構成を説明する。図２は、実施例２に係る補完装置を説明するためのブロック図である。図２に示すように、実施例２に係る補完装置１０は、ＵＩ（User Interface）部１１、初期評価部１２、候補抽出部１３、試行部１４（評価部）を有する。また、補完装置１０は、ＣＭＤＢ１５およびリレーションシップ制約ＤＢ（Data Base）１６と接続される。
【００２４】
ＣＭＤＢ１５は、管理対象である構成要素を示すＣＩと、管理対象である構成要素間の関係を示すリレーションシップとを記憶する。具体的には、ＣＭＤＢ１５は、管理対象となるＩＴシステムの構成要素を示す情報をＣＩ（Configuration Item：構成アイテム）として記憶する。また、ＣＭＤＢ１５は、ＩＴシステムの構成要素間の関係性を示す情報をリレーションシップ（Relationship）として記憶する。
【００２５】
ここで、図３は、実施例２に係るＣＭＤＢに記憶された情報の一例を説明するための図である。図３に示す例では、ＣＭＤＢ１５は、物理マシン「ＰＭ（Physical Machine）：ｐｍ１１〜ｐｍ１３」を示すＣＩと、物理マシンに搭載される仮想マシン「ＶＭ（Virtual Machine）：ｖａ０１〜ｖｂ０３」を示すＣＩとを記憶する。また、ＣＭＤＢ１５は、仮想マシンによって提供されるサービスである「Ｓｖｃ（Service）：Ｔａ〜Ｔｃ」を記憶する。また、ＣＭＤＢ１５は、各ＣＩ間の関係性を示すリレーションシップ「０１．ｖｍ−ｐｍ〜０２．ｐｍ−ｖｍ」およびリレーションシップ「０５．ｖｍ−ｐｍ〜２０．ｖｍ−ｔｅｎａｎｔ」を記憶する。
【００２６】
ここで、物理マシン「ＰＭ：ｐｍ１１」と仮想マシン「ＶＭ：ｖｂ０１」との間の関連性を示すリレーションシップは、定義漏れのため、ＣＭＤＢ１５に記憶されていない。なお、仮想マシン「ＶＭ：ｖｂ０１」は、物理マシン「ＰＭ：ｐｍ１１」に搭載された仮想マシンである。
【００２７】
図２に戻って、リレーションシップ制約ＤＢ１６は、リレーションシップの候補を抽出するための所定の制約条件を記憶するデータベースである。具体的には、リレーションシップが抽出されるＣＩの種別に応じた制約である型制約を記憶する。また、リレーションシップ制約ＤＢ１６は、リレーションシップが抽出されるＣＩの種別ごとに設定されるリレーションシップの数に応じた制約である数制約を記憶する。
【００２８】
また、リレーションシップ制約ＤＢ１６は、リレーションシップが抽出されるＣＩが示す管理対象の状態に応じた制約である状態遷移制約を記憶する。また、リレーションシップ制約ＤＢ１６は、ＣＭＤＢ１５に記憶されたリレーションシップに応じた制約であるリレーションシップ間制約を記憶する。
【００２９】
以下、図４を用いて、リレーションシップ制約ＤＢ１６が記憶する各種制約について詳しく説明する。図４は、リレーションシップの候補を抽出するための制約の一例を説明するための図である。
【００３０】
型制約とは、リレーションシップの候補が抽出されるＣＩの種別に応じた制約である。例えば、図４に示す例では、制約名「ｐｍ−ｖｍ」の型制約は、「ｐｍ−ｖｍ」形式のリレーションシップが元（source）を物理マシン「ＰＭ」とし、先（target）を仮想マシン「ＶＭ」とするリレーションシップであることを示す。また、図４に示す例では、制約名「ｖｍ−ｐｍ」の形制約は、「ｖｍ−ｐｍ」形式のリレーションシップが元を仮想マシン「ＶＭ」とし、先を仮想マシン「ＶＭ」とするリレーションシップであることを示す。
【００３１】
数制約とは、リレーションシップの候補が抽出されるＣＩの種別ごとに定義されるリレーションシップの数を示す制約である。例えば、図４に示す例では、制約名「ｖｍ−ｐｍ」の数制約は、一つの仮想マシン「ＶＭ」から物理マシン「ＰＭ」へ向けて最低一つの「ｖｍ−ｐｍ」形式のリレーションシップが存在することを示す。つまり、数制約「ｖｍ−ｐｍ」は、仮想マシン「ＶＭ」が一つの物理マシン「ＰＭ」と必ず関連づけられることを示す。
【００３２】
また、制約名「ｐｍ−ｖｍ」の数制約は、一つの物理マシン「ＰＭ」から、０以上の数の仮想マシン「ＶＭ」に向けて「ｐｍ−ｖｍ」形式のリレーションシップが存在することを示す。つまり、数制約「ｐｍ−ｖｍ」は、物理マシン「ＰＭ」が、仮想マシン「ＶＭ」と関連付けられてもいなくとも良いことを示す。
【００３３】
状態遷移制約とは、リレーションシップの候補が抽出されるＣＩが示す構成要素の状態に応じた制約である。例えば、図４に示す例では、状態遷移制約「ｐｍ−ｖｍ  ｄｏｗｎ」は、「ｄｏｗｎ」状態の物理マシンと「ｐｍ−ｖｍ」形式のリレーションシップによって接続された仮想マシンが必ず「ｄｏｗｎ」状態となるべきことを示す。
【００３４】
ここで、「ｄｏｗｎ」状態とは、ＣＩが示す構成要素にエラーが発生し、処理を行っていないことを示す。つまり、状態遷移制約「ｐｍ−ｖｍ  ｄｏｗｎ」は、物理マシンにエラーが発生した場合には、エラーが発生した物理マシンに搭載された仮想マシンにもエラーが発生することを示す。
【００３５】
リレーションシップ間制約とは、定義されるリレーションシップ同士の関連を示す制約である。例えば、図４に示す例では、制約名「ｐｍ−ｖｍ  ｐａｉｒ」のリレーションシップ間制約は、リレーションシップ「ｐｍ−ｖｍ」とリレーションシップ「ｖｍ−ｐｍ」とが、必ずペアで定義されることを示す。
【００３６】
図２に戻って、初期評価部１２は、関係情報を利用するアプリケーションを実行し、アプリケーションの実行結果からＣＭＤＢ１５に記憶されたリレーションシップの評価を算出する。具体的には、初期評価部１２は、ＣＭＤＢ１５に記憶されたＣＩが示す構成要素にエラーが生じた場合には、エラーが生じた構成要素を示すＣＩから、リレーションシップを辿り、エラーの起因を示すＣＩを検索するアプリケーションを実行する。
【００３７】
また、初期評価部１２は、アプリケーションがエラーの起因を示すＣＩを検索した結果、エラーの起因を示すＣＩが判定された場合には、判定されたＣＩの数に応じた初期評点を算出し、算出された評価点とエラーの起因を示すＣＩとを試行部１４へ送信する。
【００３８】
ここで、アプリケーションがリレーションシップを辿ってエラーの起因を示すＣＩを検索する処理の動作について説明する。まず、アプリケーションは、エラーが生じている構成要素を示す各ＣＩに対して、点数「１」を付与する。また、アプリケーションは、各仮想マシン「ＶＭ：ｖｂ０１〜ＶＭ：ｖｂ０３」がそれぞれ提供するサービスのうち、エラーが生じているサービスの数を、各仮想マシンを元とするリレーションシップを利用して算出する。そして、アプリケーションは、算出されたサービスの数と同一の点数を、各仮想マシン「ＶＭ：ｖｂ０１〜ＶＭ：ｖｂ０３」に対して、さらに付与する。
【００３９】
また、アプリケーションは、各物理マシン「ＰＭ：ｐｍ１１〜ＰＭ：ｐｍ１３」に搭載された仮想マシンを、各物理マシンを元とするリレーションシップを利用して判定する。そして、アプリケーションは、判定された仮想マシンに対して付与された点数の数と同一の点数を各物理マシン「ＰＭ：ｐｍ１１〜ＰＭ：ｐｍ１３」に対して、さらに付与する。そして、アプリケーションは、最も多くの点数が付与されたＣＩを、エラーの起因を示すＣＩと判定する。
【００４０】
その後、初期評価部１２は、アプリケーションがエラーの起因を示すＣＩを判定した場合には、エラーの起因を示すと判定されたＣＩの数の逆数を初期評点として算出する。そして、初期評価部１２は、算出された初期評点を、エラーの起因を示すと判定されたＣＩと共に試行部１４へ送信する。
【００４１】
以下、図５を用いて、初期評価部１２が実行する処理について具体例を説明する。図５は、エラーの起因を示すＣＩの初期評点算出処理を説明するための図である。図５に例示するＣＩに付された星印は、エラーが発生した構成要素を示し、図５に例示するＣＩに付された丸印は、アプリケーションが各ＣＩに付与する点数を示す。
【００４２】
例えば、初期評価部１２は、ＣＭＤＢ１５に対して、エラーの起因を示すＣＩを検索するアプリケーションを実行する。アプリケーションは、エラーが発生した構成要素を示すＣＩである「ＰＭ：ｐｍ１１」、「ＶＭ：ｖａ０１」、「ＶＭ：ｖｂ０１」、「Ｓｖｃ：Ｔａ」、「Ｓｖｃ：Ｔｂ」、「Ｓｖｃ：Ｔｃ」に対して、点数「１」を付与する。そして、アプリケーションは、仮想マシン「ＶＭ：ｖａ０１」が提供するサービスのうち、エラーが生じているサービスの数と同数の点数「１」を、仮想マシン「ＶＭ：ｖａ０１」に対して、さらに付与する。
【００４３】
続いて、アプリケーションは、物理マシン「ＰＭ：ｐｍ１１」に搭載された仮想マシン「ＶＭ：ｖａ０１」に付与された点数と同じ点数「２」を、物理マシン「ＰＭ：ｐｍ１１」に対して、さらに付与する。このため、アプリケーションは、物理マシン「ＰＭ：ｐｍ１１」に対して、点数「３」を付与する。
【００４４】
ここで、アプリケーションは、「ＰＭ：ｐｍ１１」と「ＶＭ：ｖｂ０１」との関係を示すリレーションシップがＣＭＤＢ１５に記憶されていないので、仮想マシン「ＶＭ：ｖｂ０１」が物理マシン「ＰＭ：ｐｍ１１」に搭載されていることを識別しない。アプリケーションは、物理マシン「ＰＭ：ｐｍ１１」に対して、仮想マシン「ＶＭ：ｖｂ０１」に付与された点数と同じ点数を「ＰＭ：ｐｍ１１」に対して付与しない。
【００４５】
同様にして、アプリケーションは、各ＣＩに点数を付与する。結果として、アプリケーションは、図５のＣＩカウント表に示すように、物理マシン「ＰＭ：ｐｍ１１」、物理マシン「ＰＭ：ｐｍ１２」、仮想マシン「ＶＭ：ｖｂ０１」に対して点数「３」を付与する。このため、アプリケーションは、物理マシン「ＰＭ：ｐｍ１１」、物理マシン「ＰＭ：ｐｍ１２」、仮想マシン「ＶＭ：ｖｂ０１」がエラーの起因を示すＣＩであると判定する。
【００４６】
次に、初期評価部１２は、アプリケーションによってエラーの起因を示すと判定されたＣＩの数の逆数を初期評点として算出する。ここで、初期評価部１２は、アプリケーションが「３」個のＣＩをエラーの起因を示すＣＩであると判定したため、１／３＝０．３３より、初期評点「０．３３」を算出する。そして、初期評価部１２は、算出された初期評点「０．３３」と各ＣＩ「ＰＭ：ｐｍ１１」、「ＰＭ：ｐｍ１２」、「ＶＭ：ｖｂ０１」とを試行部１４へ通知する。
【００４７】
図２に戻って、候補抽出部１３は、ＣＭＤＢ１５に記憶された情報と所定の制約条件とに基づいて、所定の制約条件を満たし、かつ、関係情報に含まれていない構成要素間の関係を抽出する。つまり、候補抽出部１３は、ＣＭＤＢ１５に記憶されたＣＩおよびリレーションシップと、リレーションシップ制約ＤＢ１６に記憶された制約とに基づいて、リレーションシップの候補を抽出する。また、候補抽出部１３は、ＣＭＤＢ１５に記憶されたＣＩのうち、エラーが生じた構成要素を示すＣＩと他のＣＩとの間から、所定の制約条件を満たし、かつ、ＣＭＤＢ１５に含まれていないリレーションシップの候補を抽出する。
【００４８】
具体的には、候補抽出部１３は、試行部１４からリレーションシップの候補を作成する要求を取得した場合には、リレーションシップ制約ＤＢ１６から、リレーションシップを抽出するための制約を取得する。そして、候補抽出部１３は、リレーションシップを抽出するための制約を取得した場合には、エラー発生点を示すＣＩごとに、エラー発生点を示すＣＩと他のＣＩとの関係を示すリレーションシップが取得された制約を満たすかどうか判定する。ここで、エラー発生点を示すＣＩとは、エラーが生じた構成要素を示すＣＩである。
【００４９】
また、候補抽出部１３は、リレーションシップが取得された制約を満たさないと判定した場合には、取得された制約を満たすリレーションシップを抽出する。その後、候補抽出部１３は、抽出されたリレーションシップをリレーションシップの候補として、試行部１４に通知する。
【００５０】
ここで、候補抽出部１３が抽出処理を実行し、リレーションシップの候補を抽出する処理の一例を図６を用いて説明する。図６は、リレーションシップの候補を抽出する処理の一例を説明するための図である。図６に示す例では、エラー発生点を示すＣＩに星印を付した。また、図６に示す例では、候補抽出部１３は、エラーが生じた構成要素を示すＣＩとして、仮想マシン「ＶＭ：ｖｂ０１」と他のＣＩとの関係を示すリレーションシップが、図４に示す各種制約を満たすかどうか判定するものとする。
【００５１】
まず、候補抽出部１３は、試行部１４からリレーションシップの候補を要求された場合には、リレーションシップ制約ＤＢ１６から図４に示す各種制約を取得する。次に、候補抽出部１３は、仮想マシン「ＶＭ：ｖｂ０１」と他のＣＩとの関係を示すリレーションシップについて、取得された各種制約を満たすかどうか判定する。
【００５２】
ここで、図４に示す数制約より、仮想マシン「ＶＭ：ｖｂ０１」は、いずれか１つの物理マシンとの間にｖｍ−ｐｍ型のリレーションシップが設定されなければならない。しかし、仮想マシン「ＶＭ：ｖｂ０１」には、物理マシンへのｖｍ−ｐｍ型リレーションシップが定義されていない。
【００５３】
このため、候補抽出部１３は、仮想マシン「ＶＭ：ｖｂ０１」からいずれかの物理マシンへ伸びるリレーションシップ「ｒ１．ｖｍ−ｐｍ」を抽出する。さらに、図４に示すリレーションシップ間制約より、候補抽出部１３は、リレーションシップ「ｒ１．ｖｍ−ｐｍ」と対になるリレーションシップ「ｒ２．ｐｍ−ｖｍ」を抽出する。
【００５４】
また、図４に示す型制約より、候補抽出部１３は、各物理マシン「ＰＭ：ｐｍ１１〜ＰＭ：ｐｍ１３」のいずれかと仮想マシン「ＶＭ：ｖｂ０１」とがリレーションシップ「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」によって関係を示されると判定する。つまり、候補抽出部１３は、物理マシン「ＰＭ：ｐｍ１１〜ＰＭ：ｐｍ１３」のいずれかが仮想マシン「ＶＭ：ｖｂ０１」を搭載すると判定する。
【００５５】
また、候補抽出部１３は、各物理マシン「ＰＭ：ｐｍ１１」〜「ＰＭ：ｐｍ１３」のいずれもが、図４に示す状態遷移制約を満たすと判定する。ただし、物理マシン「ＰＭ：ｐｍ１１」にはエラーが生じており、また、仮想マシン「ＶＭ：ｖｂ０１」にもエラーが生じている。このため、候補抽出部１３は、物理マシン「ＰＭ：ｐｍ１１」と、仮想マシン「ＶＭ：ｖｂ０１」との間から抽出されるリレーションシップの候補を優先して試行部１４へ通知する。
【００５６】
結果として、候補抽出部１３は、図７αに示すように物理マシン「ＰＭ：ｐｍ１１」および仮想マシン「ＶＭ：ｖｂ０１」との関係を示すリレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」を抽出する。そして、候補抽出部１３は、抽出されたリレーションシップの候補「ｒ１．−ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」を試行部１４へ通知する。図７は、リレーションシップの候補の一例を説明するための図である。
【００５７】
また、候補抽出部１３は、物理マシン「ＰＭ：ｐｍ１２」および仮想マシン「ＶＭ：ｖｂ０１」との関係を示すリレーションシップの候補として「ｒ３．ｖｍ−ｐｍ」および「ｒ４．ｐｍ−ｖｍ」を、試行部１４へ通知する。また、候補抽出部１３は、物理マシン「ＰＭ：ｐｍ１３」および仮想マシン「ＶＭ：ｖｂ０１」との関係を示すリレーションシップの候補として「ｒ５．ｖｍ−ｐｍ」および「ｒ６．ｐｍ−ｖｍ」を、試行部１４へ通知する。
【００５８】
図２に戻り、試行部１４は、抽出されたリレーションシップの候補を利用するアプリケーションを実行して、抽出されたリレーションシップの候補についての評価結果を得る。つまり、試行部１４は、抽出されたリレーションシップの候補を利用するアプリケーションとして、エラーの原因となる構成要素の候補を検索するアプリケーションを実行する。そして、試行部１４は、アプリケーションによって検索されたエラーの原因となる構成要素の候補の数が少ないほど、抽出されたリレーションシップの候補が適正である旨の評価結果を得る。
【００５９】
具体的には、試行部１４は、初期評価部１２からエラーの起因を示すと判定されたＣＩと、各ＣＩの初期評点とを取得し、取得された初期評点が閾値以上の値を有するか判定する。そして、試行部１４は、初期評点が閾値以上の値を有すると判定した場合には、ＵＩ部１１に対して、初期評価部１２から取得された各ＣＩを通知する。一方、試行部１４は、取得された初期評点が閾値以上の値を有しないと判定した場合には、リレーションシップの候補作成の要求を候補抽出部１３に対して通知する。
【００６０】
また、試行部１４は、候補抽出部１３によってリレーションシップの候補が抽出された場合には、抽出されたリレーションシップの候補を取得する。また、試行部１４は、リレーションシップの候補を取得した場合には、ＣＭＤＢ１５に記憶されたリレーションシップに対して、取得されたリレーションシップの候補を個別に適用する。
【００６１】
そして、試行部１４は、リレーションシップの候補が個別に適用されたリレーションシップを利用してエラーの起因を示すＣＩを検索するアプリケーションを実行する。また、試行部１４は、アプリケーションの実行結果に応じて、エラーの起因を示すＣＩに評点を付与する。
【００６２】
ここで、試行部１４は、エラーが生じた各構成要素がエラーの源流であるかを判定する。ここで、エラーの源流となる構成要素とは、構成要素自身にエラーが生じていて、構成要素よりも下流の構成要素にエラーが発生し、かつ、構成要素よりも上流でエラーが発生していない、又は、構成要素よりも上流の構成要素が存在しない構成要素である。例えば、物理マシンは、仮想マシンおよびサービスよりも上流の構成要素である。また、仮想マシンは、サービスよりも上流の構成要素である。
【００６３】
そして、試行部１４は、エラーの源流を示すＣＩについて、評点が初期評価部１２による初期評点よりも高い場合には、エラーの源流を示すＣＩと評点とリレーションシップの候補とを対応付けた評価表を作成し、作成された評価表をＵＩ部１１へ送信する。
【００６４】
一方、試行部１４は、エラーの源流を一意に特定できないと判定した場合には、取得されたリレーションシップの候補に評点を付与しない。また、試行部１４は、エラーの源流を一意に特定できないと判定した場合には、評点表への追加を行わずに、取得されたリレーションシップの候補の情報を破棄する。
【００６５】
以下、試行部１４が実行する処理について、具体例を挙げて説明する。まず、試行部１４が実行する処理のうち、初期評点が閾値よりも高い値であるかを判定する処理について説明する。例えば、試行部１４は、初期評価部１２によってエラーの起因を示すと判定されたＣＩとして、物理マシン「ＰＭ：ｐｍ１１」、物理マシン「ＰＭ：ｐｍ１２」、仮想マシン「ＶＭ：ｖｂ０１」を取得する。また、試行部１４は、取得された各ＣＩの初期評点「０．３３」をそれぞれ取得する。
【００６６】
ここで、試行部１４は、初期評点と比較する閾値が「０．５」である場合には、取得された各ＣＩの初期評点「０．３３」が閾値「０．５」以上の値を有しないと判定する。このような場合には、試行部１４は、候補抽出部１３に対して、リレーションシップの候補を作成する旨の要求を候補抽出部１３に対して通知する。
【００６７】
次に、試行部１４が、候補抽出部１３によって抽出されたリレーションシップの候補を取得し、取得されたリレーションシップの候補を適用する処理の具体例を説明する。例えば、試行部１４は、候補抽出部１３によって抽出されたリレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」を取得する。そして、試行部１４は、取得されたリレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」を適用する。
【００６８】
ここで、図８は、ｒ１．ｖｍ−ｐｍとｒ２．ｐｍ−ｖｍとを適用した場合の処理を説明するための図である。図８に例示するように、試行部１４は、候補抽出部１３によって抽出されたリレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」をＣＭＤＢ１５に記憶された各ＣＩおよびリレーションシップに適用する。すなわち、試行部１４は、リレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」によって仮想マシン「ＶＭ：ｖｂ０１」と物理マシン「ＰＭ：ｐｍ１１」との関係が示されたものと仮定する。
【００６９】
次に、試行部１４が実行する処理のうち、リレーションシップの候補が適用されたリレーションシップを利用してエラーの起因を示すＣＩを検索するアプリケーションを実行する処理について具体例を説明する。例えば、図８に示す例では、試行部１４は、初期評価部１２と同様に、エラーの起因を示すＣＩを検索するアプリケーションを実行する。
【００７０】
アプリケーションは、ＣＭＤＢ１５に記憶されたリレーションシップとともに、適用されたリレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」を辿り、エラーの起因を示すＣＩを検索する。ここで、アプリケーションは、リレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」が適用された場合には、物理マシン「ＰＭ：ｐｍ１１」に最も多くの点数「６」を付与する。
【００７１】
このため、アプリケーションは、試行部１４がリレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」を適用した場合には、物理マシン「ＰＭ：ｐｍ１１」がエラーの起因を示すＣＩであると判定する。
【００７２】
次に、試行部１４がアプリケーションの実行結果に応じて、エラーの起因を示すＣＩに評点を付与する処理について具体例を説明する。例えば、試行部１４は、アプリケーションがエラーの起因を示すＣＩを判定した場合には、判定された各ＣＩに対して、エラーの起因を示すと判定されたＣＩの数の逆数を評点として付与する。すなわち、試行部１４は、アプリケーションによって物理マシン「ＰＭ：ｐｍ１１」がエラーの起因を示すＣＩであると判定された場合には、物理マシン「ＰＭ：ｐｍ１１」に評点「１」を付与する。
【００７３】
次に、試行部１４がエラーが生じた各構成要素がエラーの源流であるかを判定する源流判定処理について具体例を説明する。例えば、試行部１４は、物理マシン「ＰＭ．ｐｍ１１」が示す構成要素にエラーが生じていると判定する。図８に示す例では、試行部１４は、物理マシン「ＰＭ：ｐｍ１１」が示す構成要素よりも下流でエラーが生じていると判定する。さらに、試行部１４は、物理マシン「ＰＭ：ｐｍ１１」よりも上流の構成要素が存在しないと判定する。このため、試行部１４は、物理マシン「ＰＭ：ｐｍ１１」が示す構成要素がエラーの源流であると判定する。
【００７４】
結果として、試行部１４は、リレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」を適用した場合には、図８中ＣＩカウント表に示すように、物理マシン「ＰＭ：ｐｍ１１」が示す構成要素のみがエラーの源流であると判定する。
【００７５】
つまり、試行部１４は、源流判定処理を実行することによって、リレーションシップの候補を利用した場合に、エラーの源流を示すＣＩを一つに特定することができるかどうかをさらに判定する。ここで、エラーは、単独の構成要素に生じたエラーを起因とする場合が多い。このため、試行部１４は、エラーの源流を示すＣＩを一つに特定することができるかどうかを判定することによって、リレーションシップの候補がより適正か否かを識別することができる。
【００７６】
次に、試行部１４が、評価表を作成し、作成された評価表をＵＩ部１１へ送信する処理について具体例を説明する。例えば、試行部１４は、エラーの源流となる物理マシン「ＰＭ：ｐｍ１１」について、初期評価部１２による初期評点「０．３３」と、試行部１４による評点「１」とを比較し、試行部１４による評点が初期評価部１２による初期評点よりも高いと判定する。また、試行部１４は、エラーの源流となる物理マシン「ＰＭ：ｐｍ１１」について、評点が初期評価部１２による初期評点よりも高いと判定した場合には、評点表を作成し、作成された評点表をＵＩ部１１へ送信する。
【００７７】
ここで、図９は、実施例２に係るリレーションシップの候補の評点表を説明するための図である。図９に例示するように、試行部１４は、各リレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」と、エラーの源流を示すＣＩに付与された評点と、各リレーションシップの候補が関係を示すＣＩとが関連付けられた評点表を作成する。そして、試行部１４は、評点表を作成した場合には、作成された評点表をＵＩ部１１へ送信する。
【００７８】
このように、試行部１４は、エラーの源流を示すＣＩに付与された評点と、リレーションシップの候補とを関連付けられた評点表を作成する。ここで、エラーの源流を示すＣＩに付与された評点とは、アプリケーションの実行結果に応じて付与された評点である。また、試行部１４は、エラーの起因を示すＣＩを判定するアプリケーションによって判定されたＣＩの数が少ないほど、エラーの起因を示すＣＩに対して高い評点を付与する。このため、試行部１４は、アプリケーションによって検索されたエラーの起因を示すと判定されたＣＩの数が少ないほど、抽出されたリレーションシップの候補が適正である旨の評価結果を得る。
【００７９】
次に、複数の図面を用いて、試行部１４が他のリレーションシップの候補を取得した場合の例について説明する。まず、図１０を用いて、試行部１４が実行する処理のうち、リレーションシップの候補「ｒ３．ｖｍ−ｐｍ」と「ｒ４．ｐｍ−ｖｍ」とを候補抽出部１３から取得し、取得された各リレーションシップの候補をＣＭＤＢ１５に適用した例について説明する。図１０は、ｒ３．ｖｍ−ｐｍとｒ４．ｐｍ−ｖｍとを適用した場合の処理を説明するための図である。
【００８０】
まず、試行部１４は、候補抽出部１３からリレーションシップの候補「ｒ３．ｖｍ−ｐｍ」と「ｒ４．ｐｍ−ｖｍ」とを取得する。次に、試行部１４は、図１０に示すように、候補抽出部１３から取得されたリレーションシップの候補「ｒ３．ｖｍ−ｐｍ」および「ｒ４．ｐｍ−ｖｍ」とをＣＭＤＢ１５に記憶されたリレーションシップに適用する。すなわち、試行部１４は、リレーションシップの候補「ｒ３．ｖｍ−ｐｍ」および「ｒ４．ｐｍ−ｖｍ」とを用いて、仮想マシン「ＶＭ：ｖｂ０１」と物理マシン「ＰＭ：ｐｍ１２」との関係が示されたものと仮定する。
【００８１】
そして、試行部１４は、エラーの起因を示すＣＩを検索するアプリケーションを実行する。ここで、リレーションシップの候補「ｒ３．ｖｍ−ｐｍ」および「ｒ４．ｐｍ−ｖｍ」とが適用された場合には、図１０中ＣＩカウント表に示すように、物理マシン「ＰＭ：ｐｍ１２」が最も多くの点数を付与される。このため、アプリケーションは、物理マシン「ＰＭ：ｐｍ１２」が示す構成要素がエラーの起因であると判定する。
【００８２】
試行部１４は、物理マシン「ＰＭ：ｐｍ１２」が示す構成要素がエラーの起因であると判定された場合には、物理マシン「ＰＭ：ｐｍ１２」に対して、評点「１」を付与する。また、試行部１４は、リレーションシップの候補「ｒ３．ｖｍ−ｐｍ」および「ｒ４．ｐｍ−ｖｍ」が適用された場合には、物理マシン「ＰＭ：ｐｍ１１」と仮想マシン「ＶＭ．ｖｂ０１」とが示す構成要素がエラーの源流であると判定する。
【００８３】
ここで、ＣＭＤＢ１５の構成要素に発生する障害の殆どは、一つの構成要素から発生するので、単一のＣＩが示す構成要素がエラーの源流であると判定されるのが望ましい。このため、試行部１４は、リレーションシップの候補「ｒ３．ｖｍ−ｐｍ」および「ｒ４．ｐｍ−ｖｍ」が適用された場合には、エラーの源流を一つに特定できないと判定する。試行部１４は、エラーの源流を一意に特定できないと判定した場合には、取得されたリレーションシップの候補について、評点表への追加を行わずに、取得されたリレーションシップの候補の情報を破棄する。
【００８４】
次に、図１１を用いて、試行部１４が実行する処理のうち、リレーションシップの候補「ｒ５．ｖｍ−ｐｍ」と「ｒ６．ｐｍ−ｖｍ」とを候補抽出部１３から取得し、取得された各リレーションシップの候補をＣＭＤＢ１５に適用した例について説明する。図１１は、ｒ５．ｖｍ−ｐｍとｒ６．ｐｍ−ｖｍとを適用した場合の処理を説明するための図である。
【００８５】
まず、試行部１４は、候補抽出部１３からリレーションシップの候補「ｒ５．ｖｍ−ｐｍ」と「ｒ６．ｐｍ−ｖｍ」とを取得する。次に、試行部１４は、図１１に示すように、候補抽出部１３から取得されたリレーションシップの候補「ｒ５．ｖｍ−ｐｍ」および「ｒ６．ｐｍ−ｖｍ」とをＣＭＤＢ１５に記憶されたリレーションシップに適用する。すなわち、試行部１４は、リレーションシップの候補「ｒ５．ｖｍ−ｐｍ」および「ｒ６．ｐｍ−ｖｍ」とを用いて、仮想マシン「ＶＭ：ｖｂ０１」と物理マシン「ＰＭ：ｐｍ１３」との関係が示されたものと仮定する。
【００８６】
そして、試行部１４は、エラーの起因を示すＣＩを検索するアプリケーションを実行する。ここで、リレーションシップの候補「ｒ５．ｖｍ−ｐｍ」および「ｒ６．ｐｍ−ｖｍ」とが適用された場合には、図１１中ＣＩカウント表に示すように、物理マシン「ＰＭ：ｐｍ１３」が最も多くの点数を付与される。このため、アプリケーションは、物理マシン「ＰＭ：ｐｍ１３」が示す構成要素がエラーの起因であると判定する。そして、試行部１４は、判定された物理マシン「ＰＭ：ｐｍ１３」に対して、評点「１」を付与する。
【００８７】
また、試行部１４は、リレーションシップの候補「ｒ５．ｖｍ−ｐｍ」および「ｒ６．ｐｍ−ｖｍ」が適用された場合には、物理マシン「ＰＭ：ｐｍ１１」と仮想マシン「ＶＭ．ｖｂ０１」とが示す構成要素がエラーの源流であると判定する。このため、試行部１４は、エラーの源流となる構成要素を一つに特定することができないと判定し、評点表への追加を行わずに、取得されたリレーションシップの候補の情報を破棄する。
【００８８】
結果として、試行部１４は、図９に例示するように、リレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」と、エラーの源流を示すＣＩに付与された評点と、候補が抽出されるＣＩとが関連付けられた評点表を作成する。そして、試行部１４は、作成された評価表をＵＩ部１１へ送信する。
【００８９】
図２に戻って、ＵＩ部１１は、試行部１４によって得られた評価結果に応じて、候補抽出部１３によって抽出されたリレーションシップの候補をＣＭＤＢ１５に追加登録する。具体的には、ＵＩ部１１は、初期評価部１２が実行するアプリケーションによってエラーの起因を示すと判定された各ＣＩを取得する。そして、ＵＩ部１１は、エラーの起因を示すと判定された各ＣＩを取得した場合には、取得されたＣＩをユーザに提示する。
【００９０】
また、ＵＩ部１１は、試行部１４によって作成された評価表を取得する。そして、ＵＩ部１１は、評価表を取得した場合には、取得された評価表をユーザに提示する。また、ＵＩ部１１は、取得された評価表をユーザに提示した結果、提示された評価表のリレーションシップの候補を登録するようにユーザから要求された場合には、登録を要求されたリレーションシップの候補をＣＭＤＢ１５に登録する。
【００９１】
つまり、ＵＩ部１１は、適正である旨の評価結果を得たリレーションシップの候補が格納された評価表を取得する。そして、ＵＩ部１１は、評価表に格納されたリレーションシップの候補のうち、ユーザによって登録を要求されたリレーションシップをＣＭＤＢ１５に登録する。
【００９２】
例えば、ＵＩ部１１は、図１２に示すように、リレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」をユーザに提示する。図１２は、ユーザへの問合せ表示の一例を表す図である。ユーザは、提示されたリレーションシップを補完する場合には、図１２中の登録チェックボックスにチェックを入力し、ＯＫボタンを押すことで、リレーションシップの登録要求をＵＩ部１１に対して実行する。
【００９３】
ＵＩ部１１は、ユーザからリレーションシップの登録要求を受けた場合には、図１３中αに示すように、ＣＭＤＢ１５にリレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」とを登録する。図１３は、実施例２に係る登録処理の一例を説明するための図である。
【００９４】
例えば、ＵＩ部１１、初期評価部１２、候補抽出部１３、試行部１４とは、電子回路である。ここで、電子回路の例として、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ （Field Programmable Gate Array）などの集積回路、またはＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などを適用する。
【００９５】
また、ＣＭＤＢ１５、リレーションシップ制約ＤＢ１６とは、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリ （flash memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
【００９６】
[補完装置の処理]
次に、図を用いて、補完装置１０の処理の流れを説明する。まず、図１４を用いて、補完装置１０の処理の流れを説明する。図１４は、補完装置の処理の流れを説明するためのフローチャートである。補完装置１０は、電源が入れられたことをトリガとして、処理を開始する。
【００９７】
まず、補完装置１０は、アプリケーションを実行することによって、ＣＭＤＢ１５に記憶された各ＣＩおよびリレーションシップを評価し（ステップＳ１０１）、エラーの起因を示すＣＩに対して初期評点を算出する（ステップＳ１０２）。次に、補完装置１０は、算出された初期評点が閾値以上の値であるかを判定する（ステップＳ１０３）。補完装置１０は、算出された初期評点が閾値以上の値である場合には（ステップＳ１０３肯定）、エラーの起因を示すと判定されたＣＩの情報をユーザに表示する（ステップＳ１０４）。その後、補完装置は処理を終了する。
【００９８】
一方、補完装置１０は、算出された初期評点が閾値よりも小さい場合には（ステップＳ１０３否定）、抽出処理を実行する（ステップＳ１０５）。補完装置１０は、リレーションシップの候補が抽出処理によって抽出された場合には（ステップＳ１０６肯定）、抽出されたリレーションシップの候補が適用されたリレーションシップを評価する（ステップＳ１０９）。つまり、補完装置１０は、エラーの起因を示すＣＩを検索するアプリケーションを実行し、アプリケーションの実行結果に基づいて、リレーションシップの候補が適用されたリレーションシップを評価する。
【００９９】
次に、補完装置１０は、源流判定処理を実行し、エラーの源流である構成要素を示すＣＩを判定する（ステップＳ１１０）。そして、補完装置１０は、エラーの源流となる構成要素を示すＣＩについて、評点を算出する（ステップＳ１１１）。また、補完装置１０は、エラーの源流となる構成要素を示すＣＩについて評点を算出した場合には、算出された評点が初期評点よりも大きい値かどうかを判定する（ステップＳ１１２）。
【０１００】
そして、補完装置１０は、算出された評点が初期評点よりも大きい値であると判定された場合には（ステップＳ１１２肯定）、エラーの源流となる構成要素を示すと判定されたＣＩを評価表に追加する（ステップＳ１１３）。一方、補完装置１０は、算出された評点が初期評点以下であると判定された場合には（ステップＳ１１２否定）、再度、抽出処理を実行する（ステップＳ１０５）。
【０１０１】
また、補完装置１０は、抽出処理の結果リレーションシップの候補が抽出されなかった場合には（ステップＳ１０６否定）、評点表にＣＩが記録されているかどうかを判定する（ステップＳ１０７）。補完装置１０は、評点表にＣＩが記録されていると判定した場合には（ステップＳ１０７否定）、補完処理を実行し（ステップＳ１０８）、その後処理を終了する。一方、補完装置１０は、評点表にＣＩが記録されていないと判定した場合には（ステップＳ１０７肯定）、補完されるリレーションシップの候補が抽出されなかった旨を表示し（ステップＳ１０４）、処理を終了する。
【０１０２】
次に、図１５を用いて、補完装置１０が実行する抽出処理の流れを説明する。図１５は、抽出処理の流れを説明するためのフローチャートである。まず、補完装置１０は、算出された初期評点が閾値よりも小さいことをトリガとして（ステップＳ１０３否定）、処理を開始する。
【０１０３】
まず、補完装置１０は、ステップＳ１０９にて評価されていないリレーションシップの候補が存在するか判定する（ステップＳ２０１）。そして、補完装置１０は、評価されていないリレーションシップの候補が無い場合には（ステップＳ２０１否定）、エラー発生点の構成要素を示し、かつ、リレーションシップの候補を抽出していないＣＩが存在するかを判定する（ステップＳ２０２）。
【０１０４】
補完装置１０は、エラー発生点を示し、かつ、リレーションシップの候補を抽出していないＣＩが存在すると判定した場合には（ステップＳ２０２肯定）、エラー発生点を示し、候補を抽出していないＣＩを一つ取り出す（ステップＳ２０３）。次に、補完装置１０は、ステップＳ２０３にて取り出されたＣＩを元または先とするリレーションシップを全て取り出して、リレーションシップ制約を満たすかを調べる（ステップＳ２０４）。そして、補完装置１０は、制約違反があるかを判定する（ステップＳ２０５）。
【０１０５】
次に、補完装置１０は、制約違反があると判定した場合には（ステップＳ２０５肯定）、各種制約を満たすリレーションシップの候補を抽出する（ステップＳ２０６）。次に、補完装置１０は、抽出されたリレーションシップの候補をリレーションシップ制約に基づいて優先度順に並び替える（ステップＳ２０７）。
【０１０６】
次に、補完装置１０は、優先度の高いリレーションシップの候補を一つ取り出し（ステップＳ２０８）、抽出処理を終了する。一方、補完装置１０は、エラー発生点の構成要素を示し、かつ、リレーションシップの候補を抽出していないＣＩが存在しないと判定した場合には（ステップＳ２０２否定）、リレーションシップの候補を作成せずに（ステップＳ２０９）、抽出処理を終了する。
【０１０７】
一方、補完装置１０は、評価されていないリレーションシップの候補が存在する場合には（ステップＳ２０１肯定）、優先度の高いリレーションシップの候補を一つ取り出し（ステップＳ２０８）、抽出処理を終了する。また、補完装置１０は、制約違反がないと判定した場合には（ステップＳ２０５否定）、エラー発生点の構成要素を示し、かつ、リレーションシップの候補を抽出していないＣＩが存在するかを判定する（ステップＳ２０２）。
【０１０８】
次に、図１６を用いて、補完装置１０が実行する補完処理の流れについて説明する。図１６は、補完処理の流れを説明するためのフローチャートである。補完装置１０は、評点表にリレーションシップの候補が存在すると判定されたことをトリガとして（ステップＳ１０７否定）、補完処理を開始する。
【０１０９】
まず、補完装置１０は、評点表を優先度順に整列する（ステップＳ３０１）。次に、補完装置１０は、整列させた評点表をユーザに提示し、ユーザにリレーションシップの候補の採用を問い合わせる（ステップＳ３０２）。そして、補完装置１０は、提示されたリレーションシップの候補のうち、採用されるリレーションシップの候補をユーザが選択した場合には（ステップＳ３０３肯定）、選択されたリレーションシップの候補をＣＭＤＢ１５に登録する（ステップＳ３０４）。その後、補完装置１０は、補完処理を終了する。
【０１１０】
一方、補完装置１０は、リレーションシップの候補をユーザが選択しなかった場合には（ステップＳ３０３否定）、リレーションシップの候補をＣＭＤＢ１５に登録することなく、補完処理を終了する。
【０１１１】
次に、図１７を用いて、補完装置１０が実行する源流判定処理の流れについて説明する。図１７は、源流判定処理の流れを説明するためのフローチャートである。補完装置１０は、リレーションシップの候補を含めたリレーションシップの評価が行われたことをトリガとして（ステップＳ１０９）、源流判定処理を開始する。
【０１１２】
まず、補完装置１０は、エラー発生点を示すＣＩのうち、源流判定されていないＣＩを一つ取り出す（ステップＳ４０１）。次に、補完装置１０は、取り出されたＣＩに上流があるか、または、取り出されたＣＩの上流でエラーが発生しているか検索する（ステップＳ４０２）。
【０１１３】
補完装置１０は、取り出されたＣＩに上流がない、又は、取り出されたＣＩの上流ではエラーが生じていないと判定した場合には（ステップＳ４０３否定）、取り出されたＣＩの下流にエラー発生点を示すＣＩが存在するか検索する（ステップＳ４０４）。そして、補完装置１０は、取り出されたＣＩの下流にエラー発生点を示すＣＩが存在する場合には（ステップＳ４０５肯定）、取り出されたＣＩがエラーの源流を示すＣＩであると判定する（ステップＳ４０６）。
【０１１４】
次に、補完装置１０は、エラー発生点を示すＣＩのうち、源流判定されていないＣＩが存在するかを判定する（ステップＳ４０７）。次に、補完装置１０は、エラー発生点を示すＣＩのうち、源流判定されていないＣＩが存在すると判定した場合には（ステップＳ４０７肯定）、エラー発生点を示すＣＩから、源流判定されていないＣＩを一つ取り出す（ステップＳ４０１）。一方、補完装置１０は、エラー発生点を示すＣＩのうち、源流判定されていないＣＩが存在しないと判定された場合には（ステップＳ４０７否定）、源流判定処理を終了する。
【０１１５】
一方、補完装置１０は、ステップＳ４０１にて取り出されたＣＩの下流にエラー発生点を示すＣＩがないと判定した場合には（ステップＳ４０５否定）、取り出されたＣＩがエラーの源流を示すＣＩとは判定せずに、処理を継続する。また、補完装置１０は、ステップＳ４０１にて取り出されたＣＩに上流がある、又は、取り出されたＣＩの上流でエラーが発生している場合には（ステップＳ４０３否定）、取り出されたＣＩがエラーの源流を示すＣＩとは判定せずに、処理を継続する。
【０１１６】
[実施例２の効果]
上述したように、実施例２に係る補完装置１０は、所定の制約条件を満たすリレーションシップの候補を抽出する。そして、補完装置１０は、抽出されたリレーションシップの候補をそれぞれ評価し、評価に応じてリレーションシップの候補をＣＭＤＢ１５に登録する。
【０１１７】
このため、補完装置１０は、リレーションシップが全て定義されているかを利用者が検索せずとも、定義漏れのリレーションシップを補完することができる。結果として、補完装置１０は、定義漏れのリレーションシップの補完に要する手間を軽減し、定義漏れリレーションシップの補完を容易にすることができる。
【０１１８】
また、補完装置１０は、エラーが発生した構成要素を示すＣＩと他のＣＩとの間に、所定のリレーションシップ制約を満たすリレーションシップ候補を抽出する。このため、補完装置１０は、ＣＭＤＢ１５に記憶された全てのＣＩについてリレーションシップの候補を抽出せずともよい。結果として、補完装置１０は、リレーションシップの候補を効率良く抽出することができる。
【０１１９】
また、補完装置１０は、リレーションシップの候補を抽出する場合には、型制約、数制約、状態遷移制約、リレーションシップ間制約を満たすリレーションシップの候補を抽出する。このため、補完装置１０は、全てのＣＩ間についてリレーションシップの候補を抽出せずともよい。結果として、補完装置１０は、リレーションシップの候補を効率良く抽出することができる。
【０１２０】
つまり、補完装置１０は、型制約を利用した場合には、各ＣＩ間から抽出されるリレーションシップ候補を、各ＣＩの種別に応じたリレーションシップ候補に限定することができる。また、補完装置１０は、数制約を利用した場合には、各ＣＩ間から抽出されるリレーションシップ候補の数を限定することができる。
【０１２１】
また、補完装置１０は、状態遷移制約を利用した場合には、リレーションシップ候補が抽出されるＣＩの組み合わせを限定することができる。また、補完装置１０は、リレーションシップ間制約を利用した場合には、定義漏れのリレーションシップを確実に抽出することができる。結果として、補完装置１０は、各種制約を利用した場合には、リレーションシップの候補を効率良く抽出することができる。
【実施例３】
【０１２２】
以下の実施例３では、ＣＭＤＢ（Configuration Management Database）に接続された補完装置の構成および処理の流れを説明する。なお、実施例２で説明した処理と同一の処理については、その旨を記載し、説明を省略する。
【０１２３】
まず、図１８を用いて、実施例３に係る補完装置２０の構成を説明する。図１８は、実施例３に係る補完装置を説明するためのブロック図である。図１８に示す例では、補完装置２０は、ＵＩ（User Interface）部２１、初期評価部２２、候補抽出部２３、試行部２４、総合評価部２７を有する。また、補完装置２０は、ＣＭＤＢ２５、分析事例ＤＢ（Data Base）２８、リレーションシップ制約ＤＢ２６と接続されている。
【０１２４】
ＣＭＤＢ２５は、実施例２に係るＣＭＤＢ１５と同様のデータベースである。例えば、ＣＭＤＢ２５は、図１９に例示するように、各ＣＩおよび各リレーションシップを記憶する。ここで、ＣＭＤＢ２５は、ＣＭＤＢ１５と同様に、物理マシン「ＰＭ：ｐｍ１１」と仮想マシン「ＶＭ：ｖｂ０１」との関係を示すリレーションシップが定義漏れであるものとする。さらに、ＣＭＤＢ２５は、仮想マシン「ＶＭ：ｖａ０２」とサービス「Ｓｖｃ：Ｔｃ」との関係を示すリレーションシップが定義漏れであるものとする。図１９は、実施例３に係るＣＭＤＢが記憶する情報の一例を説明するための図である。
【０１２５】
リレーションシップ制約ＤＢ２６は、実施例２に係るリレーションシップ制約ＤＢ１６と同様に、リレーションシップの候補を抽出するための所定の制約条件を記憶するデータベースである。例えば、リレーションシップ制約ＤＢ２６は、実施例２に係るリレーションシップ制約ＤＢ１６と同一のデータを記憶する。
【０１２６】
分析事例ＤＢ２８は、エラーが生じた構成要素を示すＣＩと、エラーの原因となる構成要素を示すＣＩとを対応付けて記憶する。具体的には、分析事例ＤＢ２８は、エラー発生点を示すＣＩと、エラーの起因を示すＣＩとが対応付けられて記憶されている。ここで、分析事例ＤＢ２８に記憶された情報は、管理対象に係る過去の事例において、エラー発生点を示すＣＩとエラーの起因を示すＣＩとを予め調査した結果、得られた情報である。
【０１２７】
例えば、図２０に例示するように、分析事例ＤＢ２８は、エラー発生点を示すＣＩとエラーの起因を示すＣＩとを対応付けて記憶する。図２０は、分析事例ＤＢが記憶する情報の一例を説明するための図である。
【０１２８】
図２０に示す例では、分析事例ＤＢ２８は、エラー発生点を示すＣＩ「ＰＭ：ｐｍ１１」、「ＶＭ：ｖａ０１」、「ＶＭ：ｖｂ０１」、「Ｓｖｃ：Ｔａ」、「Ｓｖｃ：Ｔｂ」と、エラーの起因を示すＣＩ「ＰＭ：ｐｍ１１」とを対応付けて記憶する。また、分析事例ＤＢ２８は、エラー発生点を示すＣＩとして「ＶＭ：ｖａ０２」、「Ｓｖｃ：Ｔａ」、「Ｓｖｃ：Ｔｃ」と、エラーの起因を示すＣＩ「ＶＭ：ｖａ０２」とを対応付けて記憶する。
【０１２９】
図１８に戻って、初期評価部２２は、分割事例ＤＢ２８に記憶されたエラーが生じた構成要素を示すＣＩから、リレーションシップを辿ることでエラーの原因となる構成要素を示すＣＩを特定するアプリケーションを実行する。そして、初期評価部２２は、アプリケーションがエラーの原因となる構成要素を示すと特定したＣＩが、分析事例ＤＢ２８に記憶されたエラーの原因となる構成要素を示すＣＩと同一である場合には、高い評価をそれぞれ算出する。
【０１３０】
具体的には、初期評価部２２は、分析事例ＤＢ２８に記憶された事例を取得し、取得された事例に含まれるエラー発生点を示すＣＩを取得する。そして、初期評価部２２は、ＣＭＤＢ２５に記憶されたＣＩのうち、分析事例ＤＢ２８から取得されたエラー発生点を示すＣＩからリレーションシップを辿り、エラーの起因を示すＣＩを検索するアプリケーションを実行する。
【０１３１】
アプリケーションは、ＣＭＤＢ２５に記憶されたＣＩのうち、分析事例ＤＢ２８から取得されたエラー発生点を示すＣＩからリレーションシップを辿り、エラーの起因を示すＣＩを判定する。初期評価部２２は、アプリケーションによってエラーの起因を示すＣＩが判定された場合には、判定されたエラーの起因を示すＣＩを試行部２４へ送信する。また、初期評価部２２は、分析事例ＤＢ２８から取得された事例を候補抽出部２３、試行部２４へ通知する。
【０１３２】
候補抽出部２３は、分析事例ＤＢ２８に記憶されたエラーが生じた構成要素を示すＣＩと、ＣＭＤＢ１５に記憶されたＣＩとの間から、所定の制約条件を満たし、かつ、ＣＭＤＢ１５に含まれていないリレーションシップの候補を抽出する。具体的には、候補抽出部２３は、試行部２４からリレーションシップの候補を要求された場合には、リレーションシップ制約ＤＢ２６に記憶されたリレーションシップを抽出するための制約を取得する。
【０１３３】
また、候補抽出部２３は、初期評価部２２が分析事例ＤＢ２８から取得した事例に含まれるエラー発生点を示すＣＩを取得する。そして、候補抽出部２３は、取得されたエラー発生点を示すＣＩごとに、取得された制約を満たすリレーションシップ候補を抽出する。そして、候補抽出部１３は、抽出されたリレーションシップの候補を試行部２４へ送信する。
【０１３４】
ここで、図２１は、実施例３に係る補完装置が抽出するリレーションシップの一例を説明するための図である。図２１に示す例では、エラー発生点を示すＣＩとして事例１に含まれるＣＩを白抜きの星で示すものとし、エラー発生点を示すＣＩとして事例２に含まれるＣＩを網目のついた星で示すものとする。
【０１３５】
例えば、候補抽出部２３は、リレーションシップ制約ＤＢ２６から、各制約を取得する。また、候補抽出部２３は、分析事例ＤＢ２８から事例１を取得する。そして、候補抽出部２３は、ＣＭＤＢ２５に記憶されたＣＩのうち、エラー発生点を示すＣＩとして事例１に含まれる各ＣＩ「ＰＭ：ｐｍ１１」、「ＶＭ：ｖａ０１」、と他のＣＩとの間に、取得された制約を満たすリレーションシップの候補をそれぞれ抽出する。
【０１３６】
また、候補抽出部２３は、ＣＭＤＢ２５に記憶されたＣＩのうち、エラー発生点を示す各ＣＩ「ＶＭ：ｖｂ０１」、「Ｓｖｃ：Ｔａ」、「Ｓｖｃ：Ｔｂ」と他のＣＩ間に、取得された制約を満たすリレーションシップの候補をそれぞれ抽出する。
【０１３７】
結果として、候補抽出部２３は、事例１を取得した場合には、図２２のαに示すように、物理マシン「ＰＭ：ｐｍ１１」と仮想マシン「ＶＭ：ｖｂ０１」との関係を示すリレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」を抽出する。また、候補抽出部２３は、事例２を取得した場合には、図２２のβに示すように、仮想マシン「ＶＭ：ｖａ０２」とサービス「Ｓｖｃ：Ｔｃ」との関係を示すリレーションシップの候補「ｒ３．ｖｍ−ｔｅｎａｎｔ」を抽出する。そして、候補抽出部２３は、各候補「ｒ１．ｖｍ−ｐｍ〜ｒ３．ｖｍ−ｔｅｎａｎｔ」を試行部２４へ送信する。
【０１３８】
図１８に戻って、試行部２４は、抽出されたリレーションシップの候補を利用するアプリケーションとして、エラーの原因となる構成要素の候補を検索するアプリケーションを実行する。また、試行部２４は、アプリケーションによって検索されたエラーの原因となる構成要素の候補を示すＣＩが、分析事例ＤＢ２８に記憶されたエラーの原因となる構成要素を示すＣＩと一致するか否かを判定する。そして、試行部２４は、エラーの原因となる構成要素の候補を示すＣＩが、分析事例ＤＢ２８に記憶されたエラーの原因となる構成要素を示すＣＩと一致すると判定した場合には、抽出されたリレーションシップの候補が適正である旨の評価結果を得る。
【０１３９】
具体的には、試行部２４は、初期評価部２２が実行したアプリケーションによってエラーの起因を示すと判定されたＣＩを取得する。そして、試行部２４は、アプリケーションによってエラーの起因を示すと判定されたＣＩと、初期評価部２２から通知された事例のエラーの起因を示すＣＩとが同一でない場合には、候補抽出部２３にリレーションシップ候補の要求を通知する。
【０１４０】
また、試行部２４は、候補抽出部２３によって抽出されたリレーションシップの候補を取得する。そして、試行部２４は、取得されたリレーションシップの候補を個別に適用したリレーションシップを利用して、エラーの起因を示すＣＩを検索するアプリケーションを実行する。そして、試行部２４は、アプリケーションによってエラーの起因を示すと判定されたＣＩと、取得された事例に含まれるエラーの起因を示すＣＩとが一致した場合には、適用されたリレーションシップの候補が適正であるとして総合評価部２７に送信する。
【０１４１】
例えば、図２１に示す例では、試行部２４は、リレーションシップの候補「ｒ１．ｖｍ−ｐｍ」と「ｒ２．ｐｍ−ｖｍ」とを取得する。そして、試行部２４は、取得されたリレーションシップの候補を適用したリレーションシップに対して、エラーの起因を示すＣＩを検索するアプリケーションを実行する。
【０１４２】
アプリケーションは、事例１のエラー発生点を示すＣＩから、リレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」が適用されたリレーションシップを辿り、エラーの起因を示すＣＩを検索する。結果として、アプリケーションは、リレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」が適用された場合には、物理マシン「ＰＭ：ｐｍ１１」をエラーの起因を示すＣＩとして判定する。
【０１４３】
ここで、アプリケーションによってエラーの起因を示すと判定された物理マシン「ＰＭ：ｐｍ１１」は、事例１のエラーの起因を示すＣＩと同一である。このため、試行部２４は、適用されたリレーションシップの候補「ｒ１．ｖｍ−ｐｍ」と「ｒ２．ｐｍ−ｖｍ」とを総合評価部２７へ送信する。
【０１４４】
同様に、試行部２４は、リレーションシップの候補「ｒ３．ｖｍ−ｔｅｎａｎｔ」を取得した場合には、取得されたリレーションシップの候補を適用し、エラーの起因を示すＣＩを検索するアプリケーションを実行する。結果として、アプリケーションは、リレーションシップの候補「ｒ３．ｖｍ−ｔｅｎａｎｔ」が適用された場合には、仮想マシン「ＶＭ：ｖａ０２」をエラーの起因を示すＣＩとして判定する。
【０１４５】
ここで、アプリケーションによってエラーの起因を示すと判定された仮想マシン「ＶＭ：ｖａ０２」は、事例２のエラーの起因を示すＣＩと同一である。このため、試行部２４は、適用されたリレーションシップの候補「ｒ３．ｖｍ−ｔｅｎａｎｔ」を総合評価部２７へ送信する。
【０１４６】
総合評価部２７は、試行部２４からリレーションシップの候補を取得する。そして、総合評価部２７は、初期評価部２２が分析事例ＤＢ２８に記憶されたすべての事例について評価し終えた場合には、取得されたリレーションシップの候補を示す候補表を作成し、作成された候補表をＵＩ部２１へ送信する。
【０１４７】
例えば、総合評価部２７は、試行部２４から、リレーションシップの候補「ｒ１．ｖｍ−ｐｍ」と「ｒ２．ｐｍ−ｖｍ」とを取得する。また、総合評価部２７は、リレーションシップの候補「ｒ３．ｖｍ−ｔｅｎａｎｔ」を取得する。そして、総合評価部２７は、図２２に示すように、取得されたリレーションシップの候補を示す候補表を作成する。ここで、図２２は、実施例３に係る候補表を説明するための図である。そして、総合評価部２７は、候補表を作成した場合には、作成された候補表をＵＩ部２１へ送信する。
【０１４８】
図１８に戻って、ＵＩ部２１は、総合評価部２７によって作成された候補表を取得する。そして、ＵＩ部２１は、候補表を取得した場合には、取得された候補表をユーザに提示する。また、ＵＩ部２１は、候補表をユーザに提示した結果、候補表のリレーションシップの候補を登録するようにユーザから要求された場合には、リレーションシップの候補をＣＭＤＢ２５に登録する。
【０１４９】
例えば、図２３は、実施例３に係る補完装置によるユーザへの問合せ表示の一例を表す図である。ＵＩ部２１は、図２３に示すように、取得された候補表をユーザに提示する。そして、ＵＩ部２１は、ユーザから表示された候補表のリレーションシップの候補を登録するよう要求された場合には、リレーションシップの候補をＣＭＤＢ２５へ登録する。
【０１５０】
つまり、ＵＩ部２１は、図２４中αに示すように、リレーションシップの候補「ｒ１．ｖｍ−ｐｍ」および「ｒ２．ｐｍ−ｖｍ」をＣＭＤＢ２５に登録する。また、総合評価部２７は、図２４中βに示すように、リレーションシップの候補「ｒ３．ｖｍ−ｔｅｎａｎｔ」を登録する。図２４は、実施例３に係る登録処理の一例を説明するための図である。
【０１５１】
例えば、ＵＩ部２１、初期評価部２２、候補抽出部２３、試行部２４、総合評価部２７とは、電子回路である。ここで、電子回路の例として、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ （Field Programmable Gate Array）などの集積回路、またはＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）などを適用する。
【０１５２】
また、ＣＭＤＢ２５、リレーションシップ制約ＤＢ２６、とは、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリ （flash memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。また、分析事例ＤＢ２８とは、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリ （flash memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
【０１５３】
[補完装置の処理]
次に、図２５を用いて、補完装置２０の処理の流れを説明する。図２５は、実施例３に係る補完装置の処理の流れを説明するためのフローチャートである。例えば、補完装置２０は、電源が入れられたことをトリガとして、処理を開始する。
【０１５４】
まず、補完装置２０は、分析事例ＤＢ２８から、事例を一つ取りだす（ステップＳ５０１）。次に、補完装置２０は、事例を一つ取り出した場合には、取り出された事例に含まれるエラー発生点を示すＣＩから、ＣＭＤＢ２５を評価し（ステップＳ５０２）、エラーの起因を示すＣＩを検索する。次に、補完装置２０は、検索の結果エラーの起因を示すと判定されたＣＩと、取得された事例に含まれるエラーの起因を示すＣＩとが一致するか判定する（ステップＳ５０３）。
【０１５５】
補完装置２０は、判定されたＣＩと取得された事例に含まれるＣＩとが一致しない場合には（ステップＳ５０３否定）、事例に含まれるエラー発生点を示すＣＩから、リレーションシップの候補を抽出する抽出処理を実行する（ステップＳ５０４）。次に、補完装置２０は、リレーションシップの候補が抽出された場合には（ステップＳ５０５肯定）、抽出されたリレーションシップの候補を適用したＣＭＤＢ１５のリレーションシップを評価する（ステップＳ５０６）。つまり、補完装置２０は、エラーの起因を示すＣＩを検索するアプリケーションを実行し、アプリケーションの実行結果に基づいて、リレーションシップの候補が適用されたＣＭＤＢ１５のリレーションシップを評価する。
【０１５６】
次に、補完装置２０は、検索の結果、エラーの起因と判定されたＣＩと、事例に含まれるエラーの起因となるＣＩとが同一かどうかを判定する（ステップＳ５０７）。補完装置２０は、エラーの起因を示すと判定されたＣＩと、事例に含まれるエラーの起因を示すＣＩとが同一である場合には（ステップＳ５０７肯定）、適用されたリレーションシップの候補を候補表に追加する（ステップＳ５０８）。
【０１５７】
一方、補完装置２０は、エラーの起因を示すと判定されたＣＩと、事例に含まれるエラー起因を示すＣＩとが同一でない場合には（ステップＳ５０７否定）、事例のエラー発生点を示すＣＩのうち、残りのＣＩについて抽出処理を実行する（ステップＳ５０４）。
【０１５８】
また、補完装置２０は、初期評価部２２によってエラーの起因を示すと判定されたＣＩと事例のエラーの起因を示すＣＩとが一致する場合には（ステップＳ５０３肯定）、事例分析ＤＢ２８に記憶された全事例を取り出したかどうか判定する（ステップＳ５０９）。補完装置２０は、事例分析ＤＢ２８に記憶された全事例を取り出したと判定した場合には（ステップＳ５０９肯定）、候補表にリレーションシップの候補が登録されているかを判定する（ステップＳ５１０）。
【０１５９】
また、補完装置２０は、候補表にリレーションシップの候補が登録されていると判定した場合には（ステップＳ５１０否定）、補完処理を実行し（ステップＳ５１１）、その後処理を終了する。一方、補完装置２０は、リレーションシップの候補が抽出されなかった場合には（ステップＳ５０５否定）、事例分析ＤＢ２８に記憶された全事例を取り出したかどうか判定する（ステップＳ５０９）。
【０１６０】
また、補完装置２０は、候補表にリレーションシップの候補が登録されていないと判定した場合には（ステップＳ５１０肯定）、補完処理を実行せずに処理を終了する。また、補完装置２０は、事例分析ＤＢ２８に記憶された全事例を取り出していない場合には（ステップＳ５０９否定）、記憶された事例のうち、評価を行っていない事例を取り出す（ステップＳ５０１）。
【０１６１】
[実施例３の効果]
上述したように、実施例３に係る補完装置２０は、抽出されたリレーションシップ候補を適用したリレーションシップを利用して、事例のエラー発生点を示すＣＩからエラーの起因を検索する。そして、補完装置２０は、検索されたエラーの起因を示すＣＩと、事例のエラーの起因を示すＣＩとが一致する場合には、適用されたリレーションシップ候補の補完処理を実行する。
【０１６２】
このため、補完装置２０は、初期評点の算出処理、源流判定処理を実行せずとも、抽出されたリレーションシップの評価を行い、定義漏れのリレーションシップを補完することができる。また、補完装置２０は、分析事例ＤＢ２８により多くの事例を記憶させた場合には、より正確に定義漏れのリレーションシップを補完することができる。さらに、補完装置２０は、分析事例ＤＢ２８により多くの事例を記憶させることで、適正な定義漏れのリレーションシップを補完し、ＣＭＤＢ２５に記憶された情報を段階的に成長させることができる。
【実施例４】
【０１６３】
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例４として本発明に含まれる他の実施例を説明する。
【０１６４】
（１）評価の方法について
上述した実施例２に係る補完装置１０は、エラー起因となる構成要素がエラーの源流であると判定された場合には、適用されたリレーションシップの候補を登録した。また、実施例３に係る補完装置２０は、検索の結果エラー起因と示すと判定されたＣＩ、及び、事例として記憶されたエラー起因を示すＣＩとが一致する場合には、適用されたリレーションシップの候補を登録した。
【０１６５】
しかし、実施例は、これに限定されるものではなく、他の方法を実行し、適用されたリレーションシップの候補を登録するものであってもよい。例えば、補完装置は、事例分析ＤＢに記憶された事例について、リレーションシップの候補を適用し、エラー起因を示すＣＩを検索する。
【０１６６】
そして、補完装置は、エラー起因を示すＣＩを検索した結果、エラー起因と示すと判定されたＣＩの数の逆数を、適用されたリレーションシップの候補に付与する。その後、補完装置は、事例分析ＤＢに記憶された全ての事例について、適用されたリレーションシップの候補に評点を加算し、点数の高い順に優先度が高いリレーションシップの候補として、ユーザに提示、又は、登録を行ってもよい。
【０１６７】
また、実施例２に係る補完装置１０は、エラー発生点を示すＣＩがエラーの源流であるかどうか判定した。しかし、実施例はこれに限定されるものではなく、エラーの源流かどうかを判定せず、リレーションシップの候補が適正か否かを判定するための手段であれば、他の手段でもよい。
【０１６８】
（２）分析アプリについて
上述した実施例に係る補完装置は、ＣＭＤＢに記憶されたリレーションシップ、および抽出されたリレーションシップ候補を評価するために、リレーションシップを辿って、エラーの起因を検索するアプリケーションを実行した。しかし、実施例はこれに限定されるものではなく、例えば、ＣＭＤＢに記憶されたＣＩとリレーションシップとの数から、幾何学的にＣＭＤＢの整合性を評価するアプリケーション等を用いてもよい。また、補完装置は、ＣＭＤＢの整合性を評価するアプリケーションであれば、任意のアプリケーションを使用してもよい。
【０１６９】
（３）制約について
上述した実施例では、リレーションシップの候補を抽出するための制約として、型制約、数制約、状態遷移制約、リレーションシップ間制約が設定された。しかし、実施例はこれに限定されるものではない。例えば、型制約の一例として、仮想マシンとサービスとの関係を示すリレーションシップ「ｖｍ−ｔｅｎａｎｔ」を設定してもよい。また、ＣＩ間の関係を正確に示すリレーションシップの候補を抽出するための制約であれば、任意の制約を設定してもよい。
【０１７０】
（４）プログラム
ところで、実施例１に係る管理装置、および実施例２〜３に係る補完装置は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを管理装置、又は、補完装置が有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図２６を用いて、実施例１に示した補完装置と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図２６は、管理プログラムを実行するコンピュータの一例を説明するための図である。
【０１７１】
図２６に例示されたコンピュータ２００は、ＲＡＭ（Random Access Memory）１２０、ＲＯＭ（Read Only Memory）１３０、ＨＤＤ（Hard Disk Drive）１５０がバス１７０で接続される。また、図２６に例示されたコンピュータ２００は、ＣＰＵ（Central Processing Unit）１４０がバス１７０で接続される。さらにバス１７０には、ユーザにリレーションシップ候補を提示するためのＵＩ（User Interface）１６０が接続される。
【０１７２】
ＨＤＤ１５０には、構成情報テーブル１５２があらかじめ保存される。構成情報テーブル１５２は、実施例１に係る記憶部２と同様の情報を有している。ＲＯＭ１３０には、抽出プログラム１３３、評価プログラム１３４があらかじめ保持される。ＣＰＵ１４０が各プログラム１３３〜１３４をＲＯＭ１３０から読み出して実行することによって、図２６に示す例では、各プログラム１３３〜１３４は、抽出プロセス１４３、評価プロセス１４４として機能するようになる。なお、各プロセス１４３〜１４４は、図１に示した各部３〜４と同様の機能を発揮する。また、各プロセス１４３〜１４４は、実施例２または実施例３に係る各部と同等の機能を発揮するようにすることも可能である。
【０１７３】
なお、本実施例で説明した管理プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＭＯ（Magneto Optical Disc）、ＤＶＤ（Digital Versatile Disc）などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【０１７４】
１  管理装置
２  構成情報記憶部
３  候補抽出部
４  評価部
１０  補完装置
１１  ＵＩ部
１２  初期評価部
１３  候補抽出部
１４  試行部
１５  ＣＭＤＢ
１６  リレーションシップ制約ＤＢ
【図１】
0005509848.tif 000002
【図２】
0005509848.tif 000003
【図３】
0005509848.tif 000004
【図４】
0005509848.tif 000005
【図５】
0005509848.tif 000006
【図６】
0005509848.tif 000007
【図７】
0005509848.tif 000008
【図８】
0005509848.tif 000009
【図９】
0005509848.tif 000010
【図１０】
0005509848.tif 000011
【図１１】
0005509848.tif 000012
【図１２】
0005509848.tif 000013
【図１３】
0005509848.tif 000014
【図１４】
0005509848.tif 000015
【図１５】
0005509848.tif 000016
【図１６】
0005509848.tif 000017
【図１７】
0005509848.tif 000018
【図１８】
0005509848.tif 000019
【図１９】
0005509848.tif 000020
【図２０】
0005509848.tif 000021
【図２１】
0005509848.tif 000022
【図２２】
0005509848.tif 000023
【図２３】
0005509848.tif 000024
【図２４】
0005509848.tif 000025
【図２５】
0005509848.tif 000026
【図２６】
0005509848.tif 000027
【図２７】
0005509848.tif 000028
【図２８】
0005509848.tif 000029