以下の実施例2では、CMDB(Configuration Management Database)に接続された補完装置の構成および処理の流れを順に説明する。
まず、図2を用いて、実施例2に係る補完装置の構成を説明する。図2は、実施例2に係る補完装置を説明するためのブロック図である。図2に示すように、実施例2に係る補完装置10は、UI(User Interface)部11、初期評価部12、候補抽出部13、試行部14(評価部)を有する。また、補完装置10は、CMDB15およびリレーションシップ制約DB(Data Base)16と接続される。
CMDB15は、管理対象である構成要素を示すCIと、管理対象である構成要素間の関係を示すリレーションシップとを記憶する。具体的には、CMDB15は、管理対象となるITシステムの構成要素を示す情報をCI(Configuration Item:構成アイテム)として記憶する。また、CMDB15は、ITシステムの構成要素間の関係性を示す情報をリレーションシップ(Relationship)として記憶する。
ここで、図3は、実施例2に係るCMDBに記憶された情報の一例を説明するための図である。図3に示す例では、CMDB15は、物理マシン「PM(Physical Machine):pm11〜pm13」を示すCIと、物理マシンに搭載される仮想マシン「VM(Virtual Machine):va01〜vb03」を示すCIとを記憶する。また、CMDB15は、仮想マシンによって提供されるサービスである「Svc(Service):Ta〜Tc」を記憶する。また、CMDB15は、各CI間の関係性を示すリレーションシップ「01.vm−pm〜02.pm−vm」およびリレーションシップ「05.vm−pm〜20.vm−tenant」を記憶する。
ここで、物理マシン「PM:pm11」と仮想マシン「VM:vb01」との間の関連性を示すリレーションシップは、定義漏れのため、CMDB15に記憶されていない。なお、仮想マシン「VM:vb01」は、物理マシン「PM:pm11」に搭載された仮想マシンである。
図2に戻って、リレーションシップ制約DB16は、リレーションシップの候補を抽出するための所定の制約条件を記憶するデータベースである。具体的には、リレーションシップが抽出されるCIの種別に応じた制約である型制約を記憶する。また、リレーションシップ制約DB16は、リレーションシップが抽出されるCIの種別ごとに設定されるリレーションシップの数に応じた制約である数制約を記憶する。
また、リレーションシップ制約DB16は、リレーションシップが抽出されるCIが示す管理対象の状態に応じた制約である状態遷移制約を記憶する。また、リレーションシップ制約DB16は、CMDB15に記憶されたリレーションシップに応じた制約であるリレーションシップ間制約を記憶する。
以下、図4を用いて、リレーションシップ制約DB16が記憶する各種制約について詳しく説明する。図4は、リレーションシップの候補を抽出するための制約の一例を説明するための図である。
型制約とは、リレーションシップの候補が抽出されるCIの種別に応じた制約である。例えば、図4に示す例では、制約名「pm−vm」の型制約は、「pm−vm」形式のリレーションシップが元(source)を物理マシン「PM」とし、先(target)を仮想マシン「VM」とするリレーションシップであることを示す。また、図4に示す例では、制約名「vm−pm」の形制約は、「vm−pm」形式のリレーションシップが元を仮想マシン「VM」とし、先を仮想マシン「VM」とするリレーションシップであることを示す。
数制約とは、リレーションシップの候補が抽出されるCIの種別ごとに定義されるリレーションシップの数を示す制約である。例えば、図4に示す例では、制約名「vm−pm」の数制約は、一つの仮想マシン「VM」から物理マシン「PM」へ向けて最低一つの「vm−pm」形式のリレーションシップが存在することを示す。つまり、数制約「vm−pm」は、仮想マシン「VM」が一つの物理マシン「PM」と必ず関連づけられることを示す。
また、制約名「pm−vm」の数制約は、一つの物理マシン「PM」から、0以上の数の仮想マシン「VM」に向けて「pm−vm」形式のリレーションシップが存在することを示す。つまり、数制約「pm−vm」は、物理マシン「PM」が、仮想マシン「VM」と関連付けられてもいなくとも良いことを示す。
状態遷移制約とは、リレーションシップの候補が抽出されるCIが示す構成要素の状態に応じた制約である。例えば、図4に示す例では、状態遷移制約「pm−vm down」は、「down」状態の物理マシンと「pm−vm」形式のリレーションシップによって接続された仮想マシンが必ず「down」状態となるべきことを示す。
ここで、「down」状態とは、CIが示す構成要素にエラーが発生し、処理を行っていないことを示す。つまり、状態遷移制約「pm−vm down」は、物理マシンにエラーが発生した場合には、エラーが発生した物理マシンに搭載された仮想マシンにもエラーが発生することを示す。
リレーションシップ間制約とは、定義されるリレーションシップ同士の関連を示す制約である。例えば、図4に示す例では、制約名「pm−vm pair」のリレーションシップ間制約は、リレーションシップ「pm−vm」とリレーションシップ「vm−pm」とが、必ずペアで定義されることを示す。
図2に戻って、初期評価部12は、関係情報を利用するアプリケーションを実行し、アプリケーションの実行結果からCMDB15に記憶されたリレーションシップの評価を算出する。具体的には、初期評価部12は、CMDB15に記憶されたCIが示す構成要素にエラーが生じた場合には、エラーが生じた構成要素を示すCIから、リレーションシップを辿り、エラーの起因を示すCIを検索するアプリケーションを実行する。
また、初期評価部12は、アプリケーションがエラーの起因を示すCIを検索した結果、エラーの起因を示すCIが判定された場合には、判定されたCIの数に応じた初期評点を算出し、算出された評価点とエラーの起因を示すCIとを試行部14へ送信する。
ここで、アプリケーションがリレーションシップを辿ってエラーの起因を示すCIを検索する処理の動作について説明する。まず、アプリケーションは、エラーが生じている構成要素を示す各CIに対して、点数「1」を付与する。また、アプリケーションは、各仮想マシン「VM:vb01〜VM:vb03」がそれぞれ提供するサービスのうち、エラーが生じているサービスの数を、各仮想マシンを元とするリレーションシップを利用して算出する。そして、アプリケーションは、算出されたサービスの数と同一の点数を、各仮想マシン「VM:vb01〜VM:vb03」に対して、さらに付与する。
また、アプリケーションは、各物理マシン「PM:pm11〜PM:pm13」に搭載された仮想マシンを、各物理マシンを元とするリレーションシップを利用して判定する。そして、アプリケーションは、判定された仮想マシンに対して付与された点数の数と同一の点数を各物理マシン「PM:pm11〜PM:pm13」に対して、さらに付与する。そして、アプリケーションは、最も多くの点数が付与されたCIを、エラーの起因を示すCIと判定する。
その後、初期評価部12は、アプリケーションがエラーの起因を示すCIを判定した場合には、エラーの起因を示すと判定されたCIの数の逆数を初期評点として算出する。そして、初期評価部12は、算出された初期評点を、エラーの起因を示すと判定されたCIと共に試行部14へ送信する。
以下、図5を用いて、初期評価部12が実行する処理について具体例を説明する。図5は、エラーの起因を示すCIの初期評点算出処理を説明するための図である。図5に例示するCIに付された星印は、エラーが発生した構成要素を示し、図5に例示するCIに付された丸印は、アプリケーションが各CIに付与する点数を示す。
例えば、初期評価部12は、CMDB15に対して、エラーの起因を示すCIを検索するアプリケーションを実行する。アプリケーションは、エラーが発生した構成要素を示すCIである「PM:pm11」、「VM:va01」、「VM:vb01」、「Svc:Ta」、「Svc:Tb」、「Svc:Tc」に対して、点数「1」を付与する。そして、アプリケーションは、仮想マシン「VM:va01」が提供するサービスのうち、エラーが生じているサービスの数と同数の点数「1」を、仮想マシン「VM:va01」に対して、さらに付与する。
続いて、アプリケーションは、物理マシン「PM:pm11」に搭載された仮想マシン「VM:va01」に付与された点数と同じ点数「2」を、物理マシン「PM:pm11」に対して、さらに付与する。このため、アプリケーションは、物理マシン「PM:pm11」に対して、点数「3」を付与する。
ここで、アプリケーションは、「PM:pm11」と「VM:vb01」との関係を示すリレーションシップがCMDB15に記憶されていないので、仮想マシン「VM:vb01」が物理マシン「PM:pm11」に搭載されていることを識別しない。アプリケーションは、物理マシン「PM:pm11」に対して、仮想マシン「VM:vb01」に付与された点数と同じ点数を「PM:pm11」に対して付与しない。
同様にして、アプリケーションは、各CIに点数を付与する。結果として、アプリケーションは、図5のCIカウント表に示すように、物理マシン「PM:pm11」、物理マシン「PM:pm12」、仮想マシン「VM:vb01」に対して点数「3」を付与する。このため、アプリケーションは、物理マシン「PM:pm11」、物理マシン「PM:pm12」、仮想マシン「VM:vb01」がエラーの起因を示すCIであると判定する。
次に、初期評価部12は、アプリケーションによってエラーの起因を示すと判定されたCIの数の逆数を初期評点として算出する。ここで、初期評価部12は、アプリケーションが「3」個のCIをエラーの起因を示すCIであると判定したため、1/3=0.33より、初期評点「0.33」を算出する。そして、初期評価部12は、算出された初期評点「0.33」と各CI「PM:pm11」、「PM:pm12」、「VM:vb01」とを試行部14へ通知する。
図2に戻って、候補抽出部13は、CMDB15に記憶された情報と所定の制約条件とに基づいて、所定の制約条件を満たし、かつ、関係情報に含まれていない構成要素間の関係を抽出する。つまり、候補抽出部13は、CMDB15に記憶されたCIおよびリレーションシップと、リレーションシップ制約DB16に記憶された制約とに基づいて、リレーションシップの候補を抽出する。また、候補抽出部13は、CMDB15に記憶されたCIのうち、エラーが生じた構成要素を示すCIと他のCIとの間から、所定の制約条件を満たし、かつ、CMDB15に含まれていないリレーションシップの候補を抽出する。
具体的には、候補抽出部13は、試行部14からリレーションシップの候補を作成する要求を取得した場合には、リレーションシップ制約DB16から、リレーションシップを抽出するための制約を取得する。そして、候補抽出部13は、リレーションシップを抽出するための制約を取得した場合には、エラー発生点を示すCIごとに、エラー発生点を示すCIと他のCIとの関係を示すリレーションシップが取得された制約を満たすかどうか判定する。ここで、エラー発生点を示すCIとは、エラーが生じた構成要素を示すCIである。
また、候補抽出部13は、リレーションシップが取得された制約を満たさないと判定した場合には、取得された制約を満たすリレーションシップを抽出する。その後、候補抽出部13は、抽出されたリレーションシップをリレーションシップの候補として、試行部14に通知する。
ここで、候補抽出部13が抽出処理を実行し、リレーションシップの候補を抽出する処理の一例を図6を用いて説明する。図6は、リレーションシップの候補を抽出する処理の一例を説明するための図である。図6に示す例では、エラー発生点を示すCIに星印を付した。また、図6に示す例では、候補抽出部13は、エラーが生じた構成要素を示すCIとして、仮想マシン「VM:vb01」と他のCIとの関係を示すリレーションシップが、図4に示す各種制約を満たすかどうか判定するものとする。
まず、候補抽出部13は、試行部14からリレーションシップの候補を要求された場合には、リレーションシップ制約DB16から図4に示す各種制約を取得する。次に、候補抽出部13は、仮想マシン「VM:vb01」と他のCIとの関係を示すリレーションシップについて、取得された各種制約を満たすかどうか判定する。
ここで、図4に示す数制約より、仮想マシン「VM:vb01」は、いずれか1つの物理マシンとの間にvm−pm型のリレーションシップが設定されなければならない。しかし、仮想マシン「VM:vb01」には、物理マシンへのvm−pm型リレーションシップが定義されていない。
このため、候補抽出部13は、仮想マシン「VM:vb01」からいずれかの物理マシンへ伸びるリレーションシップ「r1.vm−pm」を抽出する。さらに、図4に示すリレーションシップ間制約より、候補抽出部13は、リレーションシップ「r1.vm−pm」と対になるリレーションシップ「r2.pm−vm」を抽出する。
また、図4に示す型制約より、候補抽出部13は、各物理マシン「PM:pm11〜PM:pm13」のいずれかと仮想マシン「VM:vb01」とがリレーションシップ「r1.vm−pm」および「r2.pm−vm」によって関係を示されると判定する。つまり、候補抽出部13は、物理マシン「PM:pm11〜PM:pm13」のいずれかが仮想マシン「VM:vb01」を搭載すると判定する。
また、候補抽出部13は、各物理マシン「PM:pm11」〜「PM:pm13」のいずれもが、図4に示す状態遷移制約を満たすと判定する。ただし、物理マシン「PM:pm11」にはエラーが生じており、また、仮想マシン「VM:vb01」にもエラーが生じている。このため、候補抽出部13は、物理マシン「PM:pm11」と、仮想マシン「VM:vb01」との間から抽出されるリレーションシップの候補を優先して試行部14へ通知する。
結果として、候補抽出部13は、図7αに示すように物理マシン「PM:pm11」および仮想マシン「VM:vb01」との関係を示すリレーションシップの候補「r1.vm−pm」および「r2.pm−vm」を抽出する。そして、候補抽出部13は、抽出されたリレーションシップの候補「r1.−vm−pm」および「r2.pm−vm」を試行部14へ通知する。図7は、リレーションシップの候補の一例を説明するための図である。
また、候補抽出部13は、物理マシン「PM:pm12」および仮想マシン「VM:vb01」との関係を示すリレーションシップの候補として「r3.vm−pm」および「r4.pm−vm」を、試行部14へ通知する。また、候補抽出部13は、物理マシン「PM:pm13」および仮想マシン「VM:vb01」との関係を示すリレーションシップの候補として「r5.vm−pm」および「r6.pm−vm」を、試行部14へ通知する。
図2に戻り、試行部14は、抽出されたリレーションシップの候補を利用するアプリケーションを実行して、抽出されたリレーションシップの候補についての評価結果を得る。つまり、試行部14は、抽出されたリレーションシップの候補を利用するアプリケーションとして、エラーの原因となる構成要素の候補を検索するアプリケーションを実行する。そして、試行部14は、アプリケーションによって検索されたエラーの原因となる構成要素の候補の数が少ないほど、抽出されたリレーションシップの候補が適正である旨の評価結果を得る。
具体的には、試行部14は、初期評価部12からエラーの起因を示すと判定されたCIと、各CIの初期評点とを取得し、取得された初期評点が閾値以上の値を有するか判定する。そして、試行部14は、初期評点が閾値以上の値を有すると判定した場合には、UI部11に対して、初期評価部12から取得された各CIを通知する。一方、試行部14は、取得された初期評点が閾値以上の値を有しないと判定した場合には、リレーションシップの候補作成の要求を候補抽出部13に対して通知する。
また、試行部14は、候補抽出部13によってリレーションシップの候補が抽出された場合には、抽出されたリレーションシップの候補を取得する。また、試行部14は、リレーションシップの候補を取得した場合には、CMDB15に記憶されたリレーションシップに対して、取得されたリレーションシップの候補を個別に適用する。
そして、試行部14は、リレーションシップの候補が個別に適用されたリレーションシップを利用してエラーの起因を示すCIを検索するアプリケーションを実行する。また、試行部14は、アプリケーションの実行結果に応じて、エラーの起因を示すCIに評点を付与する。
ここで、試行部14は、エラーが生じた各構成要素がエラーの源流であるかを判定する。ここで、エラーの源流となる構成要素とは、構成要素自身にエラーが生じていて、構成要素よりも下流の構成要素にエラーが発生し、かつ、構成要素よりも上流でエラーが発生していない、又は、構成要素よりも上流の構成要素が存在しない構成要素である。例えば、物理マシンは、仮想マシンおよびサービスよりも上流の構成要素である。また、仮想マシンは、サービスよりも上流の構成要素である。
そして、試行部14は、エラーの源流を示すCIについて、評点が初期評価部12による初期評点よりも高い場合には、エラーの源流を示すCIと評点とリレーションシップの候補とを対応付けた評価表を作成し、作成された評価表をUI部11へ送信する。
一方、試行部14は、エラーの源流を一意に特定できないと判定した場合には、取得されたリレーションシップの候補に評点を付与しない。また、試行部14は、エラーの源流を一意に特定できないと判定した場合には、評点表への追加を行わずに、取得されたリレーションシップの候補の情報を破棄する。
以下、試行部14が実行する処理について、具体例を挙げて説明する。まず、試行部14が実行する処理のうち、初期評点が閾値よりも高い値であるかを判定する処理について説明する。例えば、試行部14は、初期評価部12によってエラーの起因を示すと判定されたCIとして、物理マシン「PM:pm11」、物理マシン「PM:pm12」、仮想マシン「VM:vb01」を取得する。また、試行部14は、取得された各CIの初期評点「0.33」をそれぞれ取得する。
ここで、試行部14は、初期評点と比較する閾値が「0.5」である場合には、取得された各CIの初期評点「0.33」が閾値「0.5」以上の値を有しないと判定する。このような場合には、試行部14は、候補抽出部13に対して、リレーションシップの候補を作成する旨の要求を候補抽出部13に対して通知する。
次に、試行部14が、候補抽出部13によって抽出されたリレーションシップの候補を取得し、取得されたリレーションシップの候補を適用する処理の具体例を説明する。例えば、試行部14は、候補抽出部13によって抽出されたリレーションシップの候補「r1.vm−pm」および「r2.pm−vm」を取得する。そして、試行部14は、取得されたリレーションシップの候補「r1.vm−pm」および「r2.pm−vm」を適用する。
ここで、図8は、r1.vm−pmとr2.pm−vmとを適用した場合の処理を説明するための図である。図8に例示するように、試行部14は、候補抽出部13によって抽出されたリレーションシップの候補「r1.vm−pm」および「r2.pm−vm」をCMDB15に記憶された各CIおよびリレーションシップに適用する。すなわち、試行部14は、リレーションシップの候補「r1.vm−pm」および「r2.pm−vm」によって仮想マシン「VM:vb01」と物理マシン「PM:pm11」との関係が示されたものと仮定する。
次に、試行部14が実行する処理のうち、リレーションシップの候補が適用されたリレーションシップを利用してエラーの起因を示すCIを検索するアプリケーションを実行する処理について具体例を説明する。例えば、図8に示す例では、試行部14は、初期評価部12と同様に、エラーの起因を示すCIを検索するアプリケーションを実行する。
アプリケーションは、CMDB15に記憶されたリレーションシップとともに、適用されたリレーションシップの候補「r1.vm−pm」および「r2.pm−vm」を辿り、エラーの起因を示すCIを検索する。ここで、アプリケーションは、リレーションシップの候補「r1.vm−pm」および「r2.pm−vm」が適用された場合には、物理マシン「PM:pm11」に最も多くの点数「6」を付与する。
このため、アプリケーションは、試行部14がリレーションシップの候補「r1.vm−pm」および「r2.pm−vm」を適用した場合には、物理マシン「PM:pm11」がエラーの起因を示すCIであると判定する。
次に、試行部14がアプリケーションの実行結果に応じて、エラーの起因を示すCIに評点を付与する処理について具体例を説明する。例えば、試行部14は、アプリケーションがエラーの起因を示すCIを判定した場合には、判定された各CIに対して、エラーの起因を示すと判定されたCIの数の逆数を評点として付与する。すなわち、試行部14は、アプリケーションによって物理マシン「PM:pm11」がエラーの起因を示すCIであると判定された場合には、物理マシン「PM:pm11」に評点「1」を付与する。
次に、試行部14がエラーが生じた各構成要素がエラーの源流であるかを判定する源流判定処理について具体例を説明する。例えば、試行部14は、物理マシン「PM.pm11」が示す構成要素にエラーが生じていると判定する。図8に示す例では、試行部14は、物理マシン「PM:pm11」が示す構成要素よりも下流でエラーが生じていると判定する。さらに、試行部14は、物理マシン「PM:pm11」よりも上流の構成要素が存在しないと判定する。このため、試行部14は、物理マシン「PM:pm11」が示す構成要素がエラーの源流であると判定する。
結果として、試行部14は、リレーションシップの候補「r1.vm−pm」および「r2.pm−vm」を適用した場合には、図8中CIカウント表に示すように、物理マシン「PM:pm11」が示す構成要素のみがエラーの源流であると判定する。
つまり、試行部14は、源流判定処理を実行することによって、リレーションシップの候補を利用した場合に、エラーの源流を示すCIを一つに特定することができるかどうかをさらに判定する。ここで、エラーは、単独の構成要素に生じたエラーを起因とする場合が多い。このため、試行部14は、エラーの源流を示すCIを一つに特定することができるかどうかを判定することによって、リレーションシップの候補がより適正か否かを識別することができる。
次に、試行部14が、評価表を作成し、作成された評価表をUI部11へ送信する処理について具体例を説明する。例えば、試行部14は、エラーの源流となる物理マシン「PM:pm11」について、初期評価部12による初期評点「0.33」と、試行部14による評点「1」とを比較し、試行部14による評点が初期評価部12による初期評点よりも高いと判定する。また、試行部14は、エラーの源流となる物理マシン「PM:pm11」について、評点が初期評価部12による初期評点よりも高いと判定した場合には、評点表を作成し、作成された評点表をUI部11へ送信する。
ここで、図9は、実施例2に係るリレーションシップの候補の評点表を説明するための図である。図9に例示するように、試行部14は、各リレーションシップの候補「r1.vm−pm」および「r2.pm−vm」と、エラーの源流を示すCIに付与された評点と、各リレーションシップの候補が関係を示すCIとが関連付けられた評点表を作成する。そして、試行部14は、評点表を作成した場合には、作成された評点表をUI部11へ送信する。
このように、試行部14は、エラーの源流を示すCIに付与された評点と、リレーションシップの候補とを関連付けられた評点表を作成する。ここで、エラーの源流を示すCIに付与された評点とは、アプリケーションの実行結果に応じて付与された評点である。また、試行部14は、エラーの起因を示すCIを判定するアプリケーションによって判定されたCIの数が少ないほど、エラーの起因を示すCIに対して高い評点を付与する。このため、試行部14は、アプリケーションによって検索されたエラーの起因を示すと判定されたCIの数が少ないほど、抽出されたリレーションシップの候補が適正である旨の評価結果を得る。
次に、複数の図面を用いて、試行部14が他のリレーションシップの候補を取得した場合の例について説明する。まず、図10を用いて、試行部14が実行する処理のうち、リレーションシップの候補「r3.vm−pm」と「r4.pm−vm」とを候補抽出部13から取得し、取得された各リレーションシップの候補をCMDB15に適用した例について説明する。図10は、r3.vm−pmとr4.pm−vmとを適用した場合の処理を説明するための図である。
まず、試行部14は、候補抽出部13からリレーションシップの候補「r3.vm−pm」と「r4.pm−vm」とを取得する。次に、試行部14は、図10に示すように、候補抽出部13から取得されたリレーションシップの候補「r3.vm−pm」および「r4.pm−vm」とをCMDB15に記憶されたリレーションシップに適用する。すなわち、試行部14は、リレーションシップの候補「r3.vm−pm」および「r4.pm−vm」とを用いて、仮想マシン「VM:vb01」と物理マシン「PM:pm12」との関係が示されたものと仮定する。
そして、試行部14は、エラーの起因を示すCIを検索するアプリケーションを実行する。ここで、リレーションシップの候補「r3.vm−pm」および「r4.pm−vm」とが適用された場合には、図10中CIカウント表に示すように、物理マシン「PM:pm12」が最も多くの点数を付与される。このため、アプリケーションは、物理マシン「PM:pm12」が示す構成要素がエラーの起因であると判定する。
試行部14は、物理マシン「PM:pm12」が示す構成要素がエラーの起因であると判定された場合には、物理マシン「PM:pm12」に対して、評点「1」を付与する。また、試行部14は、リレーションシップの候補「r3.vm−pm」および「r4.pm−vm」が適用された場合には、物理マシン「PM:pm11」と仮想マシン「VM.vb01」とが示す構成要素がエラーの源流であると判定する。
ここで、CMDB15の構成要素に発生する障害の殆どは、一つの構成要素から発生するので、単一のCIが示す構成要素がエラーの源流であると判定されるのが望ましい。このため、試行部14は、リレーションシップの候補「r3.vm−pm」および「r4.pm−vm」が適用された場合には、エラーの源流を一つに特定できないと判定する。試行部14は、エラーの源流を一意に特定できないと判定した場合には、取得されたリレーションシップの候補について、評点表への追加を行わずに、取得されたリレーションシップの候補の情報を破棄する。
次に、図11を用いて、試行部14が実行する処理のうち、リレーションシップの候補「r5.vm−pm」と「r6.pm−vm」とを候補抽出部13から取得し、取得された各リレーションシップの候補をCMDB15に適用した例について説明する。図11は、r5.vm−pmとr6.pm−vmとを適用した場合の処理を説明するための図である。
まず、試行部14は、候補抽出部13からリレーションシップの候補「r5.vm−pm」と「r6.pm−vm」とを取得する。次に、試行部14は、図11に示すように、候補抽出部13から取得されたリレーションシップの候補「r5.vm−pm」および「r6.pm−vm」とをCMDB15に記憶されたリレーションシップに適用する。すなわち、試行部14は、リレーションシップの候補「r5.vm−pm」および「r6.pm−vm」とを用いて、仮想マシン「VM:vb01」と物理マシン「PM:pm13」との関係が示されたものと仮定する。
そして、試行部14は、エラーの起因を示すCIを検索するアプリケーションを実行する。ここで、リレーションシップの候補「r5.vm−pm」および「r6.pm−vm」とが適用された場合には、図11中CIカウント表に示すように、物理マシン「PM:pm13」が最も多くの点数を付与される。このため、アプリケーションは、物理マシン「PM:pm13」が示す構成要素がエラーの起因であると判定する。そして、試行部14は、判定された物理マシン「PM:pm13」に対して、評点「1」を付与する。
また、試行部14は、リレーションシップの候補「r5.vm−pm」および「r6.pm−vm」が適用された場合には、物理マシン「PM:pm11」と仮想マシン「VM.vb01」とが示す構成要素がエラーの源流であると判定する。このため、試行部14は、エラーの源流となる構成要素を一つに特定することができないと判定し、評点表への追加を行わずに、取得されたリレーションシップの候補の情報を破棄する。
結果として、試行部14は、図9に例示するように、リレーションシップの候補「r1.vm−pm」および「r2.pm−vm」と、エラーの源流を示すCIに付与された評点と、候補が抽出されるCIとが関連付けられた評点表を作成する。そして、試行部14は、作成された評価表をUI部11へ送信する。
図2に戻って、UI部11は、試行部14によって得られた評価結果に応じて、候補抽出部13によって抽出されたリレーションシップの候補をCMDB15に追加登録する。具体的には、UI部11は、初期評価部12が実行するアプリケーションによってエラーの起因を示すと判定された各CIを取得する。そして、UI部11は、エラーの起因を示すと判定された各CIを取得した場合には、取得されたCIをユーザに提示する。
また、UI部11は、試行部14によって作成された評価表を取得する。そして、UI部11は、評価表を取得した場合には、取得された評価表をユーザに提示する。また、UI部11は、取得された評価表をユーザに提示した結果、提示された評価表のリレーションシップの候補を登録するようにユーザから要求された場合には、登録を要求されたリレーションシップの候補をCMDB15に登録する。
つまり、UI部11は、適正である旨の評価結果を得たリレーションシップの候補が格納された評価表を取得する。そして、UI部11は、評価表に格納されたリレーションシップの候補のうち、ユーザによって登録を要求されたリレーションシップをCMDB15に登録する。
例えば、UI部11は、図12に示すように、リレーションシップの候補「r1.vm−pm」および「r2.pm−vm」をユーザに提示する。図12は、ユーザへの問合せ表示の一例を表す図である。ユーザは、提示されたリレーションシップを補完する場合には、図12中の登録チェックボックスにチェックを入力し、OKボタンを押すことで、リレーションシップの登録要求をUI部11に対して実行する。
UI部11は、ユーザからリレーションシップの登録要求を受けた場合には、図13中αに示すように、CMDB15にリレーションシップの候補「r1.vm−pm」および「r2.pm−vm」とを登録する。図13は、実施例2に係る登録処理の一例を説明するための図である。
例えば、UI部11、初期評価部12、候補抽出部13、試行部14とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA (Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
また、CMDB15、リレーションシップ制約DB16とは、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ (flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
[補完装置の処理]
次に、図を用いて、補完装置10の処理の流れを説明する。まず、図14を用いて、補完装置10の処理の流れを説明する。図14は、補完装置の処理の流れを説明するためのフローチャートである。補完装置10は、電源が入れられたことをトリガとして、処理を開始する。
まず、補完装置10は、アプリケーションを実行することによって、CMDB15に記憶された各CIおよびリレーションシップを評価し(ステップS101)、エラーの起因を示すCIに対して初期評点を算出する(ステップS102)。次に、補完装置10は、算出された初期評点が閾値以上の値であるかを判定する(ステップS103)。補完装置10は、算出された初期評点が閾値以上の値である場合には(ステップS103肯定)、エラーの起因を示すと判定されたCIの情報をユーザに表示する(ステップS104)。その後、補完装置は処理を終了する。
一方、補完装置10は、算出された初期評点が閾値よりも小さい場合には(ステップS103否定)、抽出処理を実行する(ステップS105)。補完装置10は、リレーションシップの候補が抽出処理によって抽出された場合には(ステップS106肯定)、抽出されたリレーションシップの候補が適用されたリレーションシップを評価する(ステップS109)。つまり、補完装置10は、エラーの起因を示すCIを検索するアプリケーションを実行し、アプリケーションの実行結果に基づいて、リレーションシップの候補が適用されたリレーションシップを評価する。
次に、補完装置10は、源流判定処理を実行し、エラーの源流である構成要素を示すCIを判定する(ステップS110)。そして、補完装置10は、エラーの源流となる構成要素を示すCIについて、評点を算出する(ステップS111)。また、補完装置10は、エラーの源流となる構成要素を示すCIについて評点を算出した場合には、算出された評点が初期評点よりも大きい値かどうかを判定する(ステップS112)。
そして、補完装置10は、算出された評点が初期評点よりも大きい値であると判定された場合には(ステップS112肯定)、エラーの源流となる構成要素を示すと判定されたCIを評価表に追加する(ステップS113)。一方、補完装置10は、算出された評点が初期評点以下であると判定された場合には(ステップS112否定)、再度、抽出処理を実行する(ステップS105)。
また、補完装置10は、抽出処理の結果リレーションシップの候補が抽出されなかった場合には(ステップS106否定)、評点表にCIが記録されているかどうかを判定する(ステップS107)。補完装置10は、評点表にCIが記録されていると判定した場合には(ステップS107否定)、補完処理を実行し(ステップS108)、その後処理を終了する。一方、補完装置10は、評点表にCIが記録されていないと判定した場合には(ステップS107肯定)、補完されるリレーションシップの候補が抽出されなかった旨を表示し(ステップS104)、処理を終了する。
次に、図15を用いて、補完装置10が実行する抽出処理の流れを説明する。図15は、抽出処理の流れを説明するためのフローチャートである。まず、補完装置10は、算出された初期評点が閾値よりも小さいことをトリガとして(ステップS103否定)、処理を開始する。
まず、補完装置10は、ステップS109にて評価されていないリレーションシップの候補が存在するか判定する(ステップS201)。そして、補完装置10は、評価されていないリレーションシップの候補が無い場合には(ステップS201否定)、エラー発生点の構成要素を示し、かつ、リレーションシップの候補を抽出していないCIが存在するかを判定する(ステップS202)。
補完装置10は、エラー発生点を示し、かつ、リレーションシップの候補を抽出していないCIが存在すると判定した場合には(ステップS202肯定)、エラー発生点を示し、候補を抽出していないCIを一つ取り出す(ステップS203)。次に、補完装置10は、ステップS203にて取り出されたCIを元または先とするリレーションシップを全て取り出して、リレーションシップ制約を満たすかを調べる(ステップS204)。そして、補完装置10は、制約違反があるかを判定する(ステップS205)。
次に、補完装置10は、制約違反があると判定した場合には(ステップS205肯定)、各種制約を満たすリレーションシップの候補を抽出する(ステップS206)。次に、補完装置10は、抽出されたリレーションシップの候補をリレーションシップ制約に基づいて優先度順に並び替える(ステップS207)。
次に、補完装置10は、優先度の高いリレーションシップの候補を一つ取り出し(ステップS208)、抽出処理を終了する。一方、補完装置10は、エラー発生点の構成要素を示し、かつ、リレーションシップの候補を抽出していないCIが存在しないと判定した場合には(ステップS202否定)、リレーションシップの候補を作成せずに(ステップS209)、抽出処理を終了する。
一方、補完装置10は、評価されていないリレーションシップの候補が存在する場合には(ステップS201肯定)、優先度の高いリレーションシップの候補を一つ取り出し(ステップS208)、抽出処理を終了する。また、補完装置10は、制約違反がないと判定した場合には(ステップS205否定)、エラー発生点の構成要素を示し、かつ、リレーションシップの候補を抽出していないCIが存在するかを判定する(ステップS202)。
次に、図16を用いて、補完装置10が実行する補完処理の流れについて説明する。図16は、補完処理の流れを説明するためのフローチャートである。補完装置10は、評点表にリレーションシップの候補が存在すると判定されたことをトリガとして(ステップS107否定)、補完処理を開始する。
まず、補完装置10は、評点表を優先度順に整列する(ステップS301)。次に、補完装置10は、整列させた評点表をユーザに提示し、ユーザにリレーションシップの候補の採用を問い合わせる(ステップS302)。そして、補完装置10は、提示されたリレーションシップの候補のうち、採用されるリレーションシップの候補をユーザが選択した場合には(ステップS303肯定)、選択されたリレーションシップの候補をCMDB15に登録する(ステップS304)。その後、補完装置10は、補完処理を終了する。
一方、補完装置10は、リレーションシップの候補をユーザが選択しなかった場合には(ステップS303否定)、リレーションシップの候補をCMDB15に登録することなく、補完処理を終了する。
次に、図17を用いて、補完装置10が実行する源流判定処理の流れについて説明する。図17は、源流判定処理の流れを説明するためのフローチャートである。補完装置10は、リレーションシップの候補を含めたリレーションシップの評価が行われたことをトリガとして(ステップS109)、源流判定処理を開始する。
まず、補完装置10は、エラー発生点を示すCIのうち、源流判定されていないCIを一つ取り出す(ステップS401)。次に、補完装置10は、取り出されたCIに上流があるか、または、取り出されたCIの上流でエラーが発生しているか検索する(ステップS402)。
補完装置10は、取り出されたCIに上流がない、又は、取り出されたCIの上流ではエラーが生じていないと判定した場合には(ステップS403否定)、取り出されたCIの下流にエラー発生点を示すCIが存在するか検索する(ステップS404)。そして、補完装置10は、取り出されたCIの下流にエラー発生点を示すCIが存在する場合には(ステップS405肯定)、取り出されたCIがエラーの源流を示すCIであると判定する(ステップS406)。
次に、補完装置10は、エラー発生点を示すCIのうち、源流判定されていないCIが存在するかを判定する(ステップS407)。次に、補完装置10は、エラー発生点を示すCIのうち、源流判定されていないCIが存在すると判定した場合には(ステップS407肯定)、エラー発生点を示すCIから、源流判定されていないCIを一つ取り出す(ステップS401)。一方、補完装置10は、エラー発生点を示すCIのうち、源流判定されていないCIが存在しないと判定された場合には(ステップS407否定)、源流判定処理を終了する。
一方、補完装置10は、ステップS401にて取り出されたCIの下流にエラー発生点を示すCIがないと判定した場合には(ステップS405否定)、取り出されたCIがエラーの源流を示すCIとは判定せずに、処理を継続する。また、補完装置10は、ステップS401にて取り出されたCIに上流がある、又は、取り出されたCIの上流でエラーが発生している場合には(ステップS403否定)、取り出されたCIがエラーの源流を示すCIとは判定せずに、処理を継続する。
[実施例2の効果]
上述したように、実施例2に係る補完装置10は、所定の制約条件を満たすリレーションシップの候補を抽出する。そして、補完装置10は、抽出されたリレーションシップの候補をそれぞれ評価し、評価に応じてリレーションシップの候補をCMDB15に登録する。
このため、補完装置10は、リレーションシップが全て定義されているかを利用者が検索せずとも、定義漏れのリレーションシップを補完することができる。結果として、補完装置10は、定義漏れのリレーションシップの補完に要する手間を軽減し、定義漏れリレーションシップの補完を容易にすることができる。
また、補完装置10は、エラーが発生した構成要素を示すCIと他のCIとの間に、所定のリレーションシップ制約を満たすリレーションシップ候補を抽出する。このため、補完装置10は、CMDB15に記憶された全てのCIについてリレーションシップの候補を抽出せずともよい。結果として、補完装置10は、リレーションシップの候補を効率良く抽出することができる。
また、補完装置10は、リレーションシップの候補を抽出する場合には、型制約、数制約、状態遷移制約、リレーションシップ間制約を満たすリレーションシップの候補を抽出する。このため、補完装置10は、全てのCI間についてリレーションシップの候補を抽出せずともよい。結果として、補完装置10は、リレーションシップの候補を効率良く抽出することができる。
つまり、補完装置10は、型制約を利用した場合には、各CI間から抽出されるリレーションシップ候補を、各CIの種別に応じたリレーションシップ候補に限定することができる。また、補完装置10は、数制約を利用した場合には、各CI間から抽出されるリレーションシップ候補の数を限定することができる。
また、補完装置10は、状態遷移制約を利用した場合には、リレーションシップ候補が抽出されるCIの組み合わせを限定することができる。また、補完装置10は、リレーションシップ間制約を利用した場合には、定義漏れのリレーションシップを確実に抽出することができる。結果として、補完装置10は、各種制約を利用した場合には、リレーションシップの候補を効率良く抽出することができる。
以下の実施例3では、CMDB(Configuration Management Database)に接続された補完装置の構成および処理の流れを説明する。なお、実施例2で説明した処理と同一の処理については、その旨を記載し、説明を省略する。
まず、図18を用いて、実施例3に係る補完装置20の構成を説明する。図18は、実施例3に係る補完装置を説明するためのブロック図である。図18に示す例では、補完装置20は、UI(User Interface)部21、初期評価部22、候補抽出部23、試行部24、総合評価部27を有する。また、補完装置20は、CMDB25、分析事例DB(Data Base)28、リレーションシップ制約DB26と接続されている。
CMDB25は、実施例2に係るCMDB15と同様のデータベースである。例えば、CMDB25は、図19に例示するように、各CIおよび各リレーションシップを記憶する。ここで、CMDB25は、CMDB15と同様に、物理マシン「PM:pm11」と仮想マシン「VM:vb01」との関係を示すリレーションシップが定義漏れであるものとする。さらに、CMDB25は、仮想マシン「VM:va02」とサービス「Svc:Tc」との関係を示すリレーションシップが定義漏れであるものとする。図19は、実施例3に係るCMDBが記憶する情報の一例を説明するための図である。
リレーションシップ制約DB26は、実施例2に係るリレーションシップ制約DB16と同様に、リレーションシップの候補を抽出するための所定の制約条件を記憶するデータベースである。例えば、リレーションシップ制約DB26は、実施例2に係るリレーションシップ制約DB16と同一のデータを記憶する。
分析事例DB28は、エラーが生じた構成要素を示すCIと、エラーの原因となる構成要素を示すCIとを対応付けて記憶する。具体的には、分析事例DB28は、エラー発生点を示すCIと、エラーの起因を示すCIとが対応付けられて記憶されている。ここで、分析事例DB28に記憶された情報は、管理対象に係る過去の事例において、エラー発生点を示すCIとエラーの起因を示すCIとを予め調査した結果、得られた情報である。
例えば、図20に例示するように、分析事例DB28は、エラー発生点を示すCIとエラーの起因を示すCIとを対応付けて記憶する。図20は、分析事例DBが記憶する情報の一例を説明するための図である。
図20に示す例では、分析事例DB28は、エラー発生点を示すCI「PM:pm11」、「VM:va01」、「VM:vb01」、「Svc:Ta」、「Svc:Tb」と、エラーの起因を示すCI「PM:pm11」とを対応付けて記憶する。また、分析事例DB28は、エラー発生点を示すCIとして「VM:va02」、「Svc:Ta」、「Svc:Tc」と、エラーの起因を示すCI「VM:va02」とを対応付けて記憶する。
図18に戻って、初期評価部22は、分割事例DB28に記憶されたエラーが生じた構成要素を示すCIから、リレーションシップを辿ることでエラーの原因となる構成要素を示すCIを特定するアプリケーションを実行する。そして、初期評価部22は、アプリケーションがエラーの原因となる構成要素を示すと特定したCIが、分析事例DB28に記憶されたエラーの原因となる構成要素を示すCIと同一である場合には、高い評価をそれぞれ算出する。
具体的には、初期評価部22は、分析事例DB28に記憶された事例を取得し、取得された事例に含まれるエラー発生点を示すCIを取得する。そして、初期評価部22は、CMDB25に記憶されたCIのうち、分析事例DB28から取得されたエラー発生点を示すCIからリレーションシップを辿り、エラーの起因を示すCIを検索するアプリケーションを実行する。
アプリケーションは、CMDB25に記憶されたCIのうち、分析事例DB28から取得されたエラー発生点を示すCIからリレーションシップを辿り、エラーの起因を示すCIを判定する。初期評価部22は、アプリケーションによってエラーの起因を示すCIが判定された場合には、判定されたエラーの起因を示すCIを試行部24へ送信する。また、初期評価部22は、分析事例DB28から取得された事例を候補抽出部23、試行部24へ通知する。
候補抽出部23は、分析事例DB28に記憶されたエラーが生じた構成要素を示すCIと、CMDB15に記憶されたCIとの間から、所定の制約条件を満たし、かつ、CMDB15に含まれていないリレーションシップの候補を抽出する。具体的には、候補抽出部23は、試行部24からリレーションシップの候補を要求された場合には、リレーションシップ制約DB26に記憶されたリレーションシップを抽出するための制約を取得する。
また、候補抽出部23は、初期評価部22が分析事例DB28から取得した事例に含まれるエラー発生点を示すCIを取得する。そして、候補抽出部23は、取得されたエラー発生点を示すCIごとに、取得された制約を満たすリレーションシップ候補を抽出する。そして、候補抽出部13は、抽出されたリレーションシップの候補を試行部24へ送信する。
ここで、図21は、実施例3に係る補完装置が抽出するリレーションシップの一例を説明するための図である。図21に示す例では、エラー発生点を示すCIとして事例1に含まれるCIを白抜きの星で示すものとし、エラー発生点を示すCIとして事例2に含まれるCIを網目のついた星で示すものとする。
例えば、候補抽出部23は、リレーションシップ制約DB26から、各制約を取得する。また、候補抽出部23は、分析事例DB28から事例1を取得する。そして、候補抽出部23は、CMDB25に記憶されたCIのうち、エラー発生点を示すCIとして事例1に含まれる各CI「PM:pm11」、「VM:va01」、と他のCIとの間に、取得された制約を満たすリレーションシップの候補をそれぞれ抽出する。
また、候補抽出部23は、CMDB25に記憶されたCIのうち、エラー発生点を示す各CI「VM:vb01」、「Svc:Ta」、「Svc:Tb」と他のCI間に、取得された制約を満たすリレーションシップの候補をそれぞれ抽出する。
結果として、候補抽出部23は、事例1を取得した場合には、図22のαに示すように、物理マシン「PM:pm11」と仮想マシン「VM:vb01」との関係を示すリレーションシップの候補「r1.vm−pm」および「r2.pm−vm」を抽出する。また、候補抽出部23は、事例2を取得した場合には、図22のβに示すように、仮想マシン「VM:va02」とサービス「Svc:Tc」との関係を示すリレーションシップの候補「r3.vm−tenant」を抽出する。そして、候補抽出部23は、各候補「r1.vm−pm〜r3.vm−tenant」を試行部24へ送信する。
図18に戻って、試行部24は、抽出されたリレーションシップの候補を利用するアプリケーションとして、エラーの原因となる構成要素の候補を検索するアプリケーションを実行する。また、試行部24は、アプリケーションによって検索されたエラーの原因となる構成要素の候補を示すCIが、分析事例DB28に記憶されたエラーの原因となる構成要素を示すCIと一致するか否かを判定する。そして、試行部24は、エラーの原因となる構成要素の候補を示すCIが、分析事例DB28に記憶されたエラーの原因となる構成要素を示すCIと一致すると判定した場合には、抽出されたリレーションシップの候補が適正である旨の評価結果を得る。
具体的には、試行部24は、初期評価部22が実行したアプリケーションによってエラーの起因を示すと判定されたCIを取得する。そして、試行部24は、アプリケーションによってエラーの起因を示すと判定されたCIと、初期評価部22から通知された事例のエラーの起因を示すCIとが同一でない場合には、候補抽出部23にリレーションシップ候補の要求を通知する。
また、試行部24は、候補抽出部23によって抽出されたリレーションシップの候補を取得する。そして、試行部24は、取得されたリレーションシップの候補を個別に適用したリレーションシップを利用して、エラーの起因を示すCIを検索するアプリケーションを実行する。そして、試行部24は、アプリケーションによってエラーの起因を示すと判定されたCIと、取得された事例に含まれるエラーの起因を示すCIとが一致した場合には、適用されたリレーションシップの候補が適正であるとして総合評価部27に送信する。
例えば、図21に示す例では、試行部24は、リレーションシップの候補「r1.vm−pm」と「r2.pm−vm」とを取得する。そして、試行部24は、取得されたリレーションシップの候補を適用したリレーションシップに対して、エラーの起因を示すCIを検索するアプリケーションを実行する。
アプリケーションは、事例1のエラー発生点を示すCIから、リレーションシップの候補「r1.vm−pm」および「r2.pm−vm」が適用されたリレーションシップを辿り、エラーの起因を示すCIを検索する。結果として、アプリケーションは、リレーションシップの候補「r1.vm−pm」および「r2.pm−vm」が適用された場合には、物理マシン「PM:pm11」をエラーの起因を示すCIとして判定する。
ここで、アプリケーションによってエラーの起因を示すと判定された物理マシン「PM:pm11」は、事例1のエラーの起因を示すCIと同一である。このため、試行部24は、適用されたリレーションシップの候補「r1.vm−pm」と「r2.pm−vm」とを総合評価部27へ送信する。
同様に、試行部24は、リレーションシップの候補「r3.vm−tenant」を取得した場合には、取得されたリレーションシップの候補を適用し、エラーの起因を示すCIを検索するアプリケーションを実行する。結果として、アプリケーションは、リレーションシップの候補「r3.vm−tenant」が適用された場合には、仮想マシン「VM:va02」をエラーの起因を示すCIとして判定する。
ここで、アプリケーションによってエラーの起因を示すと判定された仮想マシン「VM:va02」は、事例2のエラーの起因を示すCIと同一である。このため、試行部24は、適用されたリレーションシップの候補「r3.vm−tenant」を総合評価部27へ送信する。
総合評価部27は、試行部24からリレーションシップの候補を取得する。そして、総合評価部27は、初期評価部22が分析事例DB28に記憶されたすべての事例について評価し終えた場合には、取得されたリレーションシップの候補を示す候補表を作成し、作成された候補表をUI部21へ送信する。
例えば、総合評価部27は、試行部24から、リレーションシップの候補「r1.vm−pm」と「r2.pm−vm」とを取得する。また、総合評価部27は、リレーションシップの候補「r3.vm−tenant」を取得する。そして、総合評価部27は、図22に示すように、取得されたリレーションシップの候補を示す候補表を作成する。ここで、図22は、実施例3に係る候補表を説明するための図である。そして、総合評価部27は、候補表を作成した場合には、作成された候補表をUI部21へ送信する。
図18に戻って、UI部21は、総合評価部27によって作成された候補表を取得する。そして、UI部21は、候補表を取得した場合には、取得された候補表をユーザに提示する。また、UI部21は、候補表をユーザに提示した結果、候補表のリレーションシップの候補を登録するようにユーザから要求された場合には、リレーションシップの候補をCMDB25に登録する。
例えば、図23は、実施例3に係る補完装置によるユーザへの問合せ表示の一例を表す図である。UI部21は、図23に示すように、取得された候補表をユーザに提示する。そして、UI部21は、ユーザから表示された候補表のリレーションシップの候補を登録するよう要求された場合には、リレーションシップの候補をCMDB25へ登録する。
つまり、UI部21は、図24中αに示すように、リレーションシップの候補「r1.vm−pm」および「r2.pm−vm」をCMDB25に登録する。また、総合評価部27は、図24中βに示すように、リレーションシップの候補「r3.vm−tenant」を登録する。図24は、実施例3に係る登録処理の一例を説明するための図である。
例えば、UI部21、初期評価部22、候補抽出部23、試行部24、総合評価部27とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA (Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
また、CMDB25、リレーションシップ制約DB26、とは、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ (flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。また、分析事例DB28とは、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ (flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
[補完装置の処理]
次に、図25を用いて、補完装置20の処理の流れを説明する。図25は、実施例3に係る補完装置の処理の流れを説明するためのフローチャートである。例えば、補完装置20は、電源が入れられたことをトリガとして、処理を開始する。
まず、補完装置20は、分析事例DB28から、事例を一つ取りだす(ステップS501)。次に、補完装置20は、事例を一つ取り出した場合には、取り出された事例に含まれるエラー発生点を示すCIから、CMDB25を評価し(ステップS502)、エラーの起因を示すCIを検索する。次に、補完装置20は、検索の結果エラーの起因を示すと判定されたCIと、取得された事例に含まれるエラーの起因を示すCIとが一致するか判定する(ステップS503)。
補完装置20は、判定されたCIと取得された事例に含まれるCIとが一致しない場合には(ステップS503否定)、事例に含まれるエラー発生点を示すCIから、リレーションシップの候補を抽出する抽出処理を実行する(ステップS504)。次に、補完装置20は、リレーションシップの候補が抽出された場合には(ステップS505肯定)、抽出されたリレーションシップの候補を適用したCMDB15のリレーションシップを評価する(ステップS506)。つまり、補完装置20は、エラーの起因を示すCIを検索するアプリケーションを実行し、アプリケーションの実行結果に基づいて、リレーションシップの候補が適用されたCMDB15のリレーションシップを評価する。
次に、補完装置20は、検索の結果、エラーの起因と判定されたCIと、事例に含まれるエラーの起因となるCIとが同一かどうかを判定する(ステップS507)。補完装置20は、エラーの起因を示すと判定されたCIと、事例に含まれるエラーの起因を示すCIとが同一である場合には(ステップS507肯定)、適用されたリレーションシップの候補を候補表に追加する(ステップS508)。
一方、補完装置20は、エラーの起因を示すと判定されたCIと、事例に含まれるエラー起因を示すCIとが同一でない場合には(ステップS507否定)、事例のエラー発生点を示すCIのうち、残りのCIについて抽出処理を実行する(ステップS504)。
また、補完装置20は、初期評価部22によってエラーの起因を示すと判定されたCIと事例のエラーの起因を示すCIとが一致する場合には(ステップS503肯定)、事例分析DB28に記憶された全事例を取り出したかどうか判定する(ステップS509)。補完装置20は、事例分析DB28に記憶された全事例を取り出したと判定した場合には(ステップS509肯定)、候補表にリレーションシップの候補が登録されているかを判定する(ステップS510)。
また、補完装置20は、候補表にリレーションシップの候補が登録されていると判定した場合には(ステップS510否定)、補完処理を実行し(ステップS511)、その後処理を終了する。一方、補完装置20は、リレーションシップの候補が抽出されなかった場合には(ステップS505否定)、事例分析DB28に記憶された全事例を取り出したかどうか判定する(ステップS509)。
また、補完装置20は、候補表にリレーションシップの候補が登録されていないと判定した場合には(ステップS510肯定)、補完処理を実行せずに処理を終了する。また、補完装置20は、事例分析DB28に記憶された全事例を取り出していない場合には(ステップS509否定)、記憶された事例のうち、評価を行っていない事例を取り出す(ステップS501)。
[実施例3の効果]
上述したように、実施例3に係る補完装置20は、抽出されたリレーションシップ候補を適用したリレーションシップを利用して、事例のエラー発生点を示すCIからエラーの起因を検索する。そして、補完装置20は、検索されたエラーの起因を示すCIと、事例のエラーの起因を示すCIとが一致する場合には、適用されたリレーションシップ候補の補完処理を実行する。
このため、補完装置20は、初期評点の算出処理、源流判定処理を実行せずとも、抽出されたリレーションシップの評価を行い、定義漏れのリレーションシップを補完することができる。また、補完装置20は、分析事例DB28により多くの事例を記憶させた場合には、より正確に定義漏れのリレーションシップを補完することができる。さらに、補完装置20は、分析事例DB28により多くの事例を記憶させることで、適正な定義漏れのリレーションシップを補完し、CMDB25に記憶された情報を段階的に成長させることができる。