以下、本発明を実施するための最良の形態を図面を参照して説明する。
本発明によるコンピュータネットワーク管理システムは、コンピュータネットワークを構成するシステム構成要素間の依存関係を解決するシステムである。依存関係の解決とは、既に説明したように、二つのシステム構成要素の依存関係を明らかにすることを意味する。
実施の形態1.
本発明の第1の実施の形態について説明する。まず、本発明によるコンピュータネットワーク管理システムの動作の概要について説明する。コンピュータネットワーク管理システムは、コンピュータネットワークの概念的な構成を表現したシステムスキーマを記憶部に記憶している。ここでのコンピュータネットワークの概念的な構成とは、例えば「サーバにはOSがインストールされている」というシステム構成や、「サーバにはネットワークインタフェースカードが組み込まれている」というシステム構成、あるいは「ネットワークインタフェースカードはEthernet(登録商標)ポートとして機能する」いったシステム構成等のことを指す。そして、これらの構成を表現するシステムスキーマは、サーバという要素、OSという要素、そしてサーバにはOSがインストールされているという関係を表す関連等から成り立っている。
なお、システムスキーマは、管理対象システムに含まれるシステム構成要素や、システム構成要素間の関連を含んでいる。ただし、システムスキーマは、管理対象システムのトポロジと一対一に対応しているわけではない。例えば、管理対象システムにサーバが10台存在する場合であっても、システムスキーマは、サーバを表すシステム構成要素を10台分含んでいるわけではない。システムスキーマは、管理対象システムに含まれるシステム構成要素の種類に依存するものであり、サーバ等の装置の台数や、サーバの名称、サーバ等に搭載されているOSやアプリケーションが何というOSやアプリケーションであるのか等の具体的な実体情報には依存しない。従って、システムスキーマには、後述のクラスを含むが、個々のシステム構成要素の実体情報(例えば、サーバの名称等)は含まれない。
図1は、システムスキーマの例を示す。図1に示すシステムスキーマは、システム構成要素として、サーバ、OS、アプリケーション、ネットワークインタフェースカード(NIC)、スイッチ等を含んでいる。図1に示すシステムスキーマは、図1に示す各システム構成要素以外の構成要素を含んでいない管理対象システムに適用することができ、その管理対象システムのトポロジは特に限定されない。すなわち、図1に示す各システム構成要素以外の構成要素を含んでさえいなければ、サーバの台数や、OSやアプリケーションの名称に依存しないで適用することができる。また、管理対象システムがファイアウォール等の図1に含まれないシステム構成要素を備えているのであれば、システム構成要素としてファイアウォールを含み、ファイアウォールと他のシステム構成要素との関連を含むシステムスキーマを適用すればよい。
コンピュータネットワーク管理システムが、2つのシステム情報間の依存関係を把握したいという要求を入力装置から受けたとする。「システム情報」とは、サーバやEthernet(登録商標)ポートといったコンピュータネットワークシステムに存在しうるシステム構成要素のクラス(クラスについては後述する。)の情報であったり、あるいは「サーバ名がAであるサーバ」といったコンピュータネットワークシステムに存在することを表す実体情報等であったりする。入力装置から受け付けたシステム情報が、サーバ名がAであるサーバといったシステムの実体情報である場合には、そのシステム実体情報からシステム構成要素のクラスを特定する。例えば、サーバAという実体情報を入力されたのであれば、その情報から「サーバ」というシステム構成要素のクラスを特定する。
次に、コンピュータネットワーク管理システムは、そのシステム構成要素のクラスとシステムスキーマ内における要素とを対応させる。そして、対応する2つの要素間に成り立つ関係を検索する。すなわち、一方の要素を起点要素、他方の要素を終点要素とし、起点要素と関連する要素を列挙し、さらにその列挙された要素と関連する要素を列挙するということを繰り返し、終点要素を探し出す検索を行う。例えば、「サーバにはネットワークインタフェースカードが組み込まれていて、OSがインストールされている。このネットワークインタフェースカードはスイッチのポートに接続されている。」という構成を表すシステムスキーマが記憶部に格納されているとする。サーバ名がAであるサーバとEthernet(登録商標)ポートの依存関係を把握したいという要求を受けた場合には、サーバを表す要素から始まって、OSを表す要素とネットワークインタフェースカードを表す要素が列挙される。列挙されたうちネットワークインタフェースカードを表す要素からは、Ethernet(登録商標)ポートを表す要素が列挙される。Ethernet(登録商標)ポートを検索すると、サーバを表す要素からEthernet(登録商標)ポートを表す要素に至る一連の検索結果を、情報取得手順に変換する。より具体的には、検索の起点となった要素と次の要素、およびそれらの要素を結ぶ関連が、最初の情報取得処理となり、一連の検索結果をそれぞれ情報取得処理に変換する。このようにして生成される一連の情報取得手順の最後の情報取得処理は、終点要素を取得する処理となる。なお、この関連を辿って要素を列挙する際には、多重度といった関連の属性に基づいて列挙可能か否かの判断を行う。多重度については後述する。
次に、管理対象システムに実際に成り立っている依存関係情報を取得するために、生成された情報取得手順の最初の情報取得処理に対して、入力装置から受け付けたシステム構成要素の実体情報を入力し、最初の情報取得処理を実行する。この最初の処理で得られた結果を、情報取得手順に従って逐次、次の情報取得処理に入力し、最後の情報取得処理を実行してシステムから情報取得を行うことができた場合に、この一連の取得結果を出力装置に送信する。この一連の取得結果は、入力装置から受け付けた2つのシステム情報間の依存関係を意味する。
本発明によるコンピュータネットワーク管理システムの動作の概要を図面を用いてより具体的に説明する。図2は、管理対象システムの例を示す説明図である。図2に例示する管理対象システムは、3つのサーバと、2つのスイッチを備えている。また、各スイッチはそれぞれ3つのポートを備えている。図2に示したA層は、管理対象システムにおける、ポートとホスト間の物理的な配線を示している。例えば、サーバ1と、スイッチ1のポートが接続されていることを示している。B層は、各スイッチのポートを表している。図2に示す例では、各スイッチが3つのポートを有していることを示している。C層は、2つのスイッチを示している。D層は、各スイッチのポート間のVLAN(Virtual LAN )のコネクションを示している。E層は、各ホストのVLANのコネクションを示している。
システム管理者は、サーバ1とサーバ2との間の依存関係を把握しようとしているものとする。この場合、コンピュータネットワーク管理システムには、サーバ1およびサーバ2の情報が入力される。図2に示す管理対象システムは、図1に示す各システム構成要素以外の構成要素を含んでいない。従って、図1に示すシステムスキーマを適用して、入力された2つのサーバとシステムスキーマ内における要素とを対応させる。そして、一方の要素を起点要素、他方の要素を終点要素とする。本例では、入力された情報が2つともサーバを表しているので、システムスキーマ内の「サーバ」の要素が起点要素、および終点要素となる(図3参照)。コンピュータネットワーク管理システムは、起点要素と関連する要素を列挙し、さらにその列挙された要素と関連する要素を列挙するということを繰り返し、終点要素を探し出す検索を行う。図3において曲線で示した矢印は、この検索経路を表している。
図4(a)は、この検索経路に基づいて生成される情報取得手順を示している。なお、検索経路に基づいて生成される情報取得手順には、図4(a)に示す手順より多くの手順が含まれるが、簡単のため、図4(a)では一部の手順を省略して示している。図4(a)に示す情報取得手順は、サーバを起点として、サーバが備えているネットワークインタフェースカード(NIC)の実体情報(例えば、NICの識別子)を取得し、その後も同様に、LANエンドポイントの実体情報(例えば、MACアドレス)等を取得していくことを示している。図4(b)は、この情報取得手順に従って取得した情報を表している。すなわち、サーバ1(識別子はpc1であるとする。)が備えているネットワークインタフェースカードの情報として、「eth0」という識別子を取得したことを表している。そして、順次、情報を取得してサーバ2(識別子はpc2であるとする)の実体情報「pc2」を取得したことを示している。「pc1」から「pc2」に至るまでに取得した一連の情報が、「pc1」と「pc2」との依存関係を表すことになる。なお、図4(b)に示すように、例えば、識別子「sw1」のスイッチから複数のポートの情報が取得でき、情報取得経路が分岐する場合が生じ得る。従って、「pc1」と「pc2」との依存関係は、1つだけに特定されるわけではない。
このようにして得られた依存関係を表す情報は、例えば、「pc1」と「pc2」との間に物理的接続はあるがVLAN接続はないという確認のために用いられる。さらに、VLAN接続の設定を自動的に行う装置が、「pc1」と「pc2」とをVLAN接続させる設定を自動的に行うために、依存関係を表す情報が使用されてもよい。
続いて、以下の説明で用いる用語「クラス」、「インスタンス」、および「実体情報」の関係について説明する。図5は、クラス、インスタンス、および実体情報の関係を示す説明図である。クラスは、識別子等の実体情報を含まないシステム構成要素を表す。図5(a)に示す「ServerComputerSystemクラス」は、システム構成要素であるサーバを表す。しかし、サーバの実体情報(属性の具体的な内容)を含まない。例えば、「ServerComputerSystemクラス」は、サーバが稼働中であるのか否かを示す状態情報や、付与された名称等の属性を含んでいない。なお、図5(a)や図4に示した「string」は、属性として文字列が付与されることを意味するが、図5(a)や図4に示すクラスでは、実体情報となる具体的な文字列は含まれない。ここでは、サーバを表すクラスを例に説明したが、他のクラスも同様である。また、本明細書で用いる「クラス」という用語は、UML(Unified Modeling Language )やCIMといったオブジェクト指向型モデルにおけるクラスに相当する。しかし、オブジェクト指向ではない情報モデルについても、実体情報を含まない一般的なシステム構成要素という意味でクラスという用語を用いる。
「インスタンス」は、クラスに実体情報が付加されたものであり、オブジェクト指向型モデルにおけるオブジェクトやインスタンスに相当する。図5(b)は、インスタンスの例を示している。図5(b)に例示するインスタンスは、名称がAであり、稼働中であるという実体情報を備えている。また、本明細書では、オブジェクト指向ではない情報モデルを用いてモデル化を行う場合でも「インスタンス」という用語を用いる。なお、実体情報に含まれる名称のうち、システム管理者が他のインスタンスと区別するために指定した名称を「識別子」と呼ぶ。なお、図5(b)において、インスタンスであることを示す記号としてコロン(:)および下線を用いて、「ServerComputerSystem」を表している。
また、クラス間に関係があることを表現するものとして「関連クラス」という用語を用い、インスタンス間に関係があることを表現するものとして「関連インスタンス」という用語を用いる。例えば、CIMの「関連クラス」は、属性としてクラスへの参照を含むことによって、クラス間に関係があることを表現する。また、CIMの「関連インスタンス」は、属性としてインスタンスへの参照を含むことによって、インスタンス間に属性があることを表現する。
次に、本発明の構成例について説明する。図6は、本発明によるコンピュータネットワーク管理システムの構成例を示すブロック図である。コンピュータネットワーク管理システムは、データ処理装置220と、記憶装置230と、入力装置210と、出力装置250とを備える。入力装置210および出力装置250を、コンピュータネットワーク管理システムとは独立した装置として、コンピュータネットワーク管理システムの外部に設ける構成としてもよい。データ処理装置220には、管理対象となる管理対象システム240が接続されている。
入力装置210は、データ処理装置220と情報交換可能なプロトコルおよびデータ構造を用いて、データ処理装置220に対して情報対応付け要求を入力する。すなわち、2つのシステム情報を入力して、その2つのシステム情報に対応する依存関係情報の出力を要求する。入力装置210は、例えば、本発明のシステムと協調してコンピュータネットワークの管理を行う、プログラム制御されたコンピュータであってもよい。また、システム管理者が情報取得を行うことを可能とするグラフィカルユーザインタフェースやコマンドラインインタフェースを有したプログラム制御されたコンピュータであってもよい。
また、入力装置210には、ネットワーク管理のためのアプリケーションが搭載されていて、入力装置210が、そのアプリケーションに従ってシステム情報を入力してもよい。あるいは、入力装置210にユーザや組織管理のためのアプリケーションが搭載されていて、入力装置210が、そのアプリケーションに従ってシステム情報を入力してもよい。
出力装置250は、入力装置210がデータ処理装置220に入力した情報対応付け要求に対して、データ処理装置220が処理した結果である情報対応付けの可否、あるいは対応付けた結果(2つのシステム情報と依存関係情報との対応)を出力する。出力装置250は、入力装置210と同一のプログラム制御されたコンピュータであってもよい。また、システム管理者が情報取得を行うことを可能とするグラフィカルユーザインタフェースやコマンドラインインタフェースを有したプログラム制御されたコンピュータであってもよい。
管理対象システム240は、例えば、コンピュータ241、ルータ242、管理情報記憶部243、ネットワーク244を介したコンピュータ245等のコンピュータシステムを含む。これらの管理対象システムには管理情報の要求に対して応答するSNMP(Simple Network Management Protocol)エージェントや、DMI(Desktop Management Interface)エージェント、管理対象システムから情報を収集する独自のエージェントや、管理情報の収集を代行するWBEM(Web Based Enterprise management )等が備えられていてもよい。また、システムの管理目的でシステム管理者が設定する情報を格納するデータベースが含まれていてもよい。なお、管理対象システム240が含む装置の種類や、その装置の接続関係などは限定されない。
また、管理対象システム240は、コンピュータネットワーク管理システム(より具体的にはデータ処理装置220)からの要求に応じて、管理対象システム240が含むシステム構成要素の実体情報を提供する。例えば、コンピュータ241の識別子や稼働状態が要求されたならば、その要求に応じて識別子等を提供する。また、既に説明したように、人もシステム構成要素となり得る。システム構成要素となる人の実体情報(例えば、氏名等)は、管理情報記憶部243が記憶する。すなわち、人の実体情報は、データベースとして管理情報243に登録され、人の実体情報が要求された場合には、管理情報記憶部243がその情報をコンピュータネットワーク管理システムに提供する。
記憶装置230は、システムスキーマ記憶部231と情報取得手順記憶部232とを含む。システムスキーマ記憶部231は、管理対象システム240の概念的構造を表現したシステムスキーマを記憶する。ここでのシステムスキーマとは、既に説明したように、コンピュータネットワークの概念的構造を表現する情報モデルのことである。すなわち、データが格納される構成を表現するデータモデルを表したスキーマとは異なる。図7に、システムスキーマの一例を示す。図7では、UML(Unified Modeling Language )クラス図によってシステムスキーマを表している。図7に例示したシステムスキーマは、「サーバが0以上のEthernet(登録商標)ポートを持っている。」、「スイッチのEthernetPortは、VLANプロトコルの端点として機能してもよい。」等のシステムの概念を記述している。なお、システムスキーマ記憶部231に記憶されるシステムスキーマは、本発明によるシステムの利用用途に応じて選択可能となるように、複数存在していてもよい。なお、図7に示した「1」、「0..1」、「*」等は、後述する多重度を表している。
情報取得手順記憶部232は、管理対象システム240に対する情報取得の手順を記憶する。1つの情報取得手順は、複数の情報取得処理から構成されているものとする。ここでは、情報取得手順が、第1の情報取得処理、第2の情報取得処理および第3の情報取得からなっているとする。まず、識別子や状態情報(装置が稼働中か否か等を示す情報)を含んだ管理対象システムの実体情報をもとにして、第1の情報取得処理が実行される。この処理によって得られた結果をもとにして、第2の情報取得処理が実行される。さらに、この処理によって得られた結果をもとにして、第3の情報取得処理が実行される。そして、第3の情報取得処理まで実行されると、その情報取得手順が全て実行されたものと判断される。このように、前段の情報取得処理によって得られた情報取得結果を用いて次の情報取得処理が実行されていく。ここでは、1つの情報取得手順に3つの情報取得処理が含まれる場合を例示したが、1つの情報取得手順に含まれる情報取得処理の数は3に限定されるわけではない。情報取得手順の具体例を示す。例えば、入力装置210から入力されたサーバ名をもとにそのサーバのネットワークインタフェースカードに関する情報を取得し、そのネットワークインターフェースカードの情報をもとにスイッチのポートに関する情報を取得し、さらにスイッチのポートに関する情報からVLAN番号を取得する、といった一連の手順が情報取得手順である。なお、この情報取得手順を情報取得手順Aとする。
また、情報取得手順記憶部232には、以上のような情報取得手順が複数格納される。そして、例えば、入力装置210からデータ処理装置220への要求内容と対応した識別情報が情報取得手順に付される。上記の例の情報取得手順Aは、サーバ名とVLAN番号との依存関係を解決する情報取得手順であるため、このサーバ名とVLAN番号との依存関係を解決する要求と対応付けて管理される。例えば、サーバ名とVLAN番号との依存関係を解決するための情報取得手順であることを示す識別情報が情報取得手順に付される。なお、一つの要求(依存関係の解決要求)に対して、複数の情報取得手順が存在し、その複数の情報取得手順がそれぞれ情報取得手順記憶部232に格納されていてもよい。例えば、サーバ名とVLAN番号との依存関係を解決する場合、サーバ名をもとにそのサーバの所有者に関する情報を取得し、さらにその所有者が属する組織の情報を取得し、その組織に割り当てられているVLANの情報を取得するという情報取得手順(情報取得手順Bとする。)も適用可能である。従って、情報取得手順A,Bをそれぞれ、サーバ名とVLAN番号との依存関係を解決するための情報取得手順として管理してもよい。すなわち、情報取得手順A,Bそれぞれに、サーバ名とVLAN番号との依存関係を解決するための情報取得手順であることを示す識別情報を付してもよい。
データ処理装置220は、例えばプログラムを読み込み、そのプログラムに従って処理を実行する情報処理装置である。プログラムは、例えばコンピュータネットワーク管理システムが備えるROM(図示せず。)に記憶される。データ処理装置220は、情報対応付け要求解釈手段221と、システムスキーマ検索手段222と、情報取得手順検索手段223と、情報取得手順実行手段224とを含む。これらの手段は、それぞれ次のように動作する。
情報対応付け要求解釈手段221は、入力装置210から入力された情報対応付け要求の解釈を行い、システムスキーマ記憶部231に対する検索が必要か否かの判断を行う。さらに、システムスキーマ記憶部231に対する検索命令や、情報取得手順記憶部232に対する検索命令を生成する。また、それらの検索結果を受け付け、管理対象システム240に対する情報取得手順実行命令を生成する。そして、管理対象システム240に関する情報取得動作の結果を受け付け、その結果に対するフィルタを入力装置210からの要求に応じて行い、出力装置250に対してフィルタされた結果、あるいはフィルタをされていない結果をそのままの形式で送信する機能を持つ。
なお、入力装置210から入力された情報対応付け要求に応じた情報取得手順が情報取得手順記憶部232に格納されている場合、システムスキーマ記憶部231に対する検索は不要と判定される。一方、情報対応付け要求に応じた情報取得手順が情報取得手順記憶部232に格納されていない場合、システムスキーマ記憶部231に対する検索が必要と判定され、システムスキーマ記憶部231に対する検索によって、情報対応付け要求に応じた新たな情報取得手順を生成し、情報取得手順記憶部232に格納させる。
システムスキーマ検索手段222は、情報対応付け要求解釈手段221で生成されるシステムスキーマ検索命令を受け付け、その命令に基づいてシステムスキーマ記憶部231に対して検索を行う。そして、この検索で得られる複数の結果から情報取得手順を生成する。続いて、その情報取得手順を、入力装置210から受け付けた情報対応付け要求に応じた情報取得手順として、情報取得手順記憶部232に格納する。
なお、好適にはシステムスキーマ記憶部231には複数のシステムスキーマが格納されており、システムスキーマ検索手段222が検索対象に用いるシステムスキーマは入力装置210から指定されることが好ましい。システムスキーマの指定がない場合には、情報取得手順解釈手段212がデフォルトのシステムスキーマを選択したり、あるいは情報対応付け要求の種別に応じてシステムスキーマを選択することが好ましい。また、入力装置210にシステム情報の入力処理を行わせているアプリケーションの種類に応じて、システムスキーマを選択してもよい。例えば、ネットワーク管理のためのアプリケーションに従って入力装置210がシステム情報を入力している場合には、ネットワークのノードとなるシステム構成要素の情報を多く含み、OSやユーザを表すシステム構成要素を余り多く含まないシステムスキーマを選択してもよい。あるいは、ユーザや組織管理のためのアプリケーションに従って入力装置210がシステム情報を入力している場合には、ネットワークのノードとなるシステム構成要素の情報を余り多く含まず、OSやユーザを表すシステム構成要素を多く含むシステムスキーマを選択してもよい。
ネットワークや、ユーザや、コンピュータといった管理対象システム全てを表現するシステムスキーマを検索対象とすると、検索結果数とこの検索結果から生成する情報取得手順の数が多くなってしまう。一方、入力装置210から受け付ける情報対応付け要求の内容に応じてネットワークのみを表現するシステムスキーマ等を検索対象とすれば、本来必要のないユーザに関する情報取得手順を生成しなくて済む。そのため、情報対応付け要求の種別や、入力装置210にシステム情報の入力処理を行わせているアプリケーションの種類等に応じてシステムスキーマを選択することが好ましい。
情報取得手順検索手段223は、情報対応付け要求解釈手段221が生成する情報取得手順記憶部232に対する検索命令を受け付ける。そして、その命令に基づいて情報取得手順記憶部232に格納される複数の情報取得手順の中から、その命令に対応する情報取得手順を検索する。情報取得手順検索手段223は、検索結果として得られる1以上の情報取得手順を、情報対応付け要求解釈手段221に対して送る。
情報取得手順実行手段224は、情報対応付け要求解釈手段221が生成した管理対象システム240に対する情報取得手順実行命令を、1以上の情報取得手順とともに受け取る。そして、その情報取得手順に従って管理対象システム240に対する情報取得処理を行う。このようにして実行された情報取得手順の結果は、情報対応付け要求解釈手段221に対して送信される。また、情報取得手順実行手段224は、管理対象システムに対して行う情報取得処理を変換して、情報取得方法を決定する。例えば、情報取得手順の中にスイッチのポートに関する情報取得処理が含まれている場合に、この情報取得処理を、SNMPを用いて、MIB(Management Information Base)のBRIDGE−MIB.dot1dPort情報を取得するといった情報取得処理に変換する。また、別の例ではWBEMに対してAssociatorオペレーションを実行するという情報取得処理への変換等を行う。
なお、管理対象システム240に含まれる各システム構成要素の実体情報を格納したデータベースを設けておき、情報取得手順実行手段224がそのデータベースにアクセスして情報を取得してもよい。
なお、情報取得手順実行手段224は、ネットワークの上位レイヤに属する情報取得手順を先に実行するといったルールに基づいて、情報取得手順間の並べ替え処理を実行することが好ましい。例えば、IPレイヤの接続性が存在するデバイス間では、Layer2レイヤの接続性は存在していると考えることが可能な場合がある。この場合、IPレイヤの接続性に関する情報を先に取得することで、Layer2レイヤの接続性に関する情報取得を省略することも可能である。上位の概念に属する情報取得手順を先に実行し下位の概念に属する情報取得手順を省略するように情報取得手順を並べ替えれば、必要な検索結果を得るまでの時間を短縮できるという効果が得られる。
次に、フローチャートを参照して動作について説明する。
図8は、入力装置210から情報対応付け要求が入力されてから、要求された情報を出力装置250に出力するまでの動作を示すフローチャートである。情報対応付け要求解釈手段221には、入力装置210から情報対応付け要求が入力される。
ここで、まず、入力として受け付ける情報対応付け要求の形式と、対応付けされた後の結果の形式とについて述べる。
入力として受け付ける情報対応付け要求の形式は、大きく2通りに分けられる。第1の要求形式は、対応付けの元、すなわち依存関係を解決したい2つの情報として、2つのインスタンス(図5(b)参照)が含まれる形式である。2つのインスタンスは、関連インスタンス1つとして与えられてもよいものとする。例えば、識別子がAであるサーバのインスタンスと識別子がBであるファイアウォールのインスタンスが与えられてもよいし、識別子がAであるサーバが、識別子がBであるファイアウォールを利用していることを示す関連インスタンスが与えられてもよい。
第2の要求形式は、対応付けの元、すなわち依存関係を解決したい2つの情報として、1つのインスタンスと1つのクラス(図5(a)参照)が含まれる形式である。
なお、対応付けの元、すなわち依存関係を解決したい2つの情報として、2つのクラスが入力される場合もある。この場合には、以下のような変換を行って、第2の要求形式にすればよい。すなわち、2つのクラスのうちの一方のクラスについて、そのクラスに相当するシステム情報の実体情報(状態情報や識別子情報)を管理対象システム240に問い合わせて取得し、これをインスタンスとする変換を行えばよい。一方のクラスについて、複数の情報が取得された場合には、それぞれの結果に対して第2の要求形式が生成される。一方のクラスから複数のインスタンスが得られた場合には、もう一方のクラスとそれぞれのインスタンスとの組み合わせ毎に、依存関係を解決する処理を実行すればよい。なお、第1の要求形式と同様に、2つのクラスが指定されることは1つの関連クラスが指定されることと等価である。例えば、サーバのクラスとファイアウォールのクラスとが指定されてもよいし、サーバがファイアウォールを利用していることを示す関連クラスが指定されてもよい。
また、入力装置210から与えられる情報として、情報対応付け要求の他に、入力が必須ではないがオプションとして与えられることがある情報(以下、オプション情報と記す。)がある。
第1のオプション情報として、依存関係を解決しようとする2つのシステム構成要素についての依存関係の態様を表すクラスあるいは関連クラスが指定されてもよい。図9は、各システム構成要素の依存関係の態様が複数存在する場合があることを示す説明図である。図9(a)は、ComputerSystem等の要素をインスタンスとして表した図である。図9(a)は、2つのコンピュータシステムが同一の組織(Organization)内で管理されていることを示している。また、2つのコンピュータシステムがIPプロトコルに従って接続され、さらに、LANプロトコルによっても接続されていることを示している。この場合、2つのコンピュータシステムの依存関係は、「ComputerSystem、Organization、ComputerSystem」という態様として表される。また、「ComputerSystem、IPProtocolEndpoint、IPProtocolEndpoint、ComputerSystem」という態様として表すこともできる。同様に、「ComputerSystem、LANProtocolEndpoint、LANProtocolEndpoint、ComputerSystem」という態様として表すこともできる。第1のオプション情報では、このような複数の態様の中の特定の態様を指定する。なお、図9(b)は、ComputerSystem等の要素をクラスとして表した図である。クラスは、実体情報を含まない抽象化されたモデルであるので、図9(a)に示す場合と異なり、「ComputerSystem」等の要素をそれぞれ1つずつ示している。
データ処理装置220は、指定された態様で依存関係を解決する。例えば、第1のオプション情報として、「IP_ActiveConnection」という関連クラスが指定された場合、「ComputerSystem、IPProtocolEndpoint、IPProtocolEndpoint、ComputerSystem」という態様で、2つのコンピュータシステムの依存関係を解決する。
なお、1つのクラスまたは関連クラスによって、複数の態様を指定してもよい。例えば、「IP_ActiveConnection」という関連クラスと、「LAN_ActiveConnection」という関連クラスは、いずれも「ActiveConnection」という関連クラスのサブクラスであるとする。この場合、第1のオプション情報として「ActiveConnection」が指定された場合、その2つのサブクラスによって特定される態様で2つのコンピュータシステムの依存関係を解決すればよい。
また、データ処理装置220は、指定された態様を除外して、指定された態様以外の態様の依存関係を解決してもよい。例えば、「Organization」というクラスが指定された場合、「Organization」を含まない態様で、2つのコンピュータシステムの依存関係を解決してもよい。この場合にも、1つのクラスまたは関連クラスによって、複数の態様を指定してもよい。
第1のオプション情報は、主にシステムスキーマ検索手段222がシステムスキーマを検索して、情報取得手順を作成する際に使用される。システムスキーマ検索手段222は、第1のオプション情報によって特定されるシステム構成要素またはシステム構成要素間の関連を検索対象とするようにして検索を行い、その検索経路から定まる情報取得手順を生成する。この情報取得手順に従って管理対象システム240からの情報取得が行われることによって、第1のオプション情報で特定されるシステム構成要素またはシステム構成要素間の関連の実体情報を含む依存関係が得られる。あるいは、システムスキーマ検索手段222は、第1のオプション情報によって特定されるシステム構成要素またはシステム構成要素間の関連を検索対象から除外して検索を行い、その検索経路から定まる情報取得手順を生成する。この情報取得手順に従って管理対象システム240からの情報取得が行われることによって、第1のオプション情報で特定されるシステム構成要素またはシステム構成要素間の関連の実体情報を含まない依存関係が得られる。従って、第1のオプション情報は、システムスキーマ検索手段222が検索処理を行うときの検索経路における中必要継点あるいは中継不必要点を指定する情報であるともいえる。
また、入力装置210から与えられる第2のオプション情報として、出力装置250に出力する結果について施すべきフィルタが指定されてもよい。このフィルタについて述べる前に、まず出力装置250に出力される情報について述べる。情報対応付けの結果として出力装置250に出力される情報は、フィルタが存在しない場合には、入力装置210から与えられるインスタンスとクラス、あるいはインスタンスとインスタンスのそれぞれを起点と終点とした一連のインスタンスおよび関連インスタンスの連なりとなる。この連なりは複数の連なりとなることもある。この1つの連なりをインスタンス文脈とし、複数のインスタンス文脈をインスタンス文脈群とする。インスタンス文脈の例としては、「識別子がAであるサーバ、サーバAがデバイスeth0を所有しているという関係、eth0という識別子を持つネットワークインタフェースカード、eth0というデバイスがLANのプロトコルを実装しているという関係、Macアドレス11:11:11:11:11:11であるLANのプロトコル端点」等が挙げられる。入力装置210から第2のオプションとして与えられるフィルタ情報は、インスタンス文脈またはインスタンス文脈群に含まれるクラスおよび関連クラスのうち、出力すべきクラスまたは関連クラスを指定する情報である。従って、第2のオプション情報が入力された場合には、インスタンス文脈の一部のみが出力される。例えば、第2のオプション情報として、ネットワークインタフェースカードというクラスが入力装置210から与えられたとする。この場合出力装置250に出力される情報は、「eth0という識別子をもつネットワークインタフェースカード」となる。また、クラスと関連クラスの双方が与えられてもよい。例えば、ネットワークインタフェースカードというクラスと、デバイスがLANのプロトコルを実装する関係という関連クラスが指定されてもよい。この場合、例示したインスタンス文脈に含まれる「eth0という識別子を持つネットワークインタフェースカード、eth0というデバイスがLANのプロトコルを実装しているという関係」という情報が出力される。
なお、インスタンス文脈の記述形式は、(インスタンスA、関連インスタンス、インスタンスB)のようにインスタンスの間に関連インスタンスを記述するようにして表される。ただし、関連インスタンスの記述を省略してもよい。例えば、インスタンス文脈を(インスタンスA、インスタンスB)のように表してもよい。
さらに、入力装置210から与えられる第3のオプション情報として出力装置250に出力する結果についての制約や条件が指定されてもよい。これは、インスタンスあるいは関連インスタンスとして指定される。上記の例では、例えばeth1という識別子を持つネットワークインタフェースカードが出力結果に含まれなければならないという条件が入力装置210から与えられた場合には、上記のeth0が含まれるインスタンス文脈は、対応付けの結果とは判断されない。また、eth0という識別子を持つネットワークインタフェースカードが出力結果に含まれてはいけないとの制約が入力装置210から与えられた場合も、上記のeth0が含まれるインスタンス文脈は出力結果とは判断されない。
情報対応付け要求解釈手段221は、入力装置210から与えられる要求内容を解釈し、これに対応する情報取得手順を取得するために、情報取得手順検索手段223に対して、情報取得手順の検索命令を発行する(ステップS1)。また、要求内容と情報取得手順とは対応付けて管理されている。例えば、既に説明したように、要求内容と対応した識別情報が情報取得手順に付されている。具体例を挙げると、「サーバ、ネットワークインタフェースカード、スイッチのポート、スイッチ」という情報取得手順には、「サーバ、スイッチ間の依存関係解決要求」に対応することを示す識別情報を付加しておく。「サーバ、スイッチ間の依存関係解決要求」が入力された場合、情報対応付け要求解釈手段221は、例えば、その識別情報が付加された情報取得手順の検索を命令すればよい。情報取得手順検索手段223は、情報対応付け要求解釈手段221から受け取った検索命令に基づき、情報取得手順を検索する(ステップS2)。そして、情報取得手順検索手段223は、情報取得手順記憶部232に検索対象の情報取得手順が格納されているか否かを判定する(ステップS3)。
情報取得手順記憶部232に検索対象の情報取得手順が格納されておらず、情報取得手順検索手段223が情報取得手順を得られなかった場合には(ステップS3のN)、情報対応付け要求解釈手段221はシステムスキーマ検索手段222に対して検索命令を発行し、情報取得手順を生成する(ステップS4)。このとき、検索命令には検索の起点と終点(システムスキーマにおける検索の起点と終点)の情報が含まれる。起点および終点と、入力装置210からの要求形式との対応関係は、以下に示すようになる。第1の要求形式で情報対応付け要求が入力された場合には、2つのインスタンスが入力されることになる。インスタンスは、クラスに実体情報が付加されたものであるので(図5参照)、インスタンスからクラスを特定することができる。情報対応付け要求解釈手段221は、2つのインスタンスから特定される2つクラスの一方をシステムスキーマにおける検索の起点に指定し、もう一方を終点に指定して検索命令を発行すればよい。第2の要求形式で情報対応付け要求が入力された場合には、1つのインスタンスと1つのクラスが入力されることになる。この場合、情報対応付け要求解釈手段221は、インスタンスから特定されるクラスをシステムスキーマにおける検索の起点に指定し、入力されたクラスを終点に指定して検索命令を発行すればよい。
また、起点や終点を指定する場合、インスタンスから特定されるクラスや入力されたクラスと互換性のあるクラスを起点や終点に指定してもよい。この場合、情報対応付け要求解釈手段221は、クラスの互換性の情報を明示的に管理(例えば、テーブル管理)している必要がある。例えば、情報対応付け要求解釈手段221が「サーバというクラスはComputerSystemというクラスと互換性がある。」との情報を記憶しているとする。この場合、インスタンスから特定されるクラス(あるいは入力されたクラス)が「サーバ」というクラスであるならば、そのクラスの代わりに、「ComputerSystem」というクラスを起点または終点として指定してもよい。
また、情報対応付け要求手段221がシステムスキーマ検索手段222に対して発行する検索命令には、オプションとして、検索にて中継する必要のある中継必要点、あるいは中継する必要のない中継不必要点が含まれてもよい。このオプションは、入力装置210からオプションとして与えられる情報のうち、第1のオプション情報に基づいて指定される。このオプション情報が与えられることで、第1のオプション情報を反映した情報取得手順が情報取得手順記憶部に格納される。検索の中継必要点とされる情報(クラス、関連クラス)は、第1のオプション情報で指定される。中継不必要点とされる情報(クラス、関連クラス)も、第1のオプション情報で指定される。例えば、識別子がAであるサーバおよびファイアウォールについて、ネットワークの接続性に基づいて依存関係を解決し、出力する依存関係の中には、OSに関する情報は含めないという要求を受けたとする。この場合、検索の起点要素名をServerクラス、終点要素名をFirewallクラスとする。さらに、中継要素名をNetworkConnection関連クラス、非中継要素名をOperatingSystemクラスとしてシステムスキーマに対する検索命令を生成する。この結果、Serverから始まりFirewallで終了する複数の情報取得手順のうち、その手順のどこかでNetworkConnectionが含まれる手順は生成されるが、OperatingSystemが含まれる手順は生成されない。
システムスキーマに対する検索命令を受け取ったシステムスキーマ検索手段222は、システムスキーマ記憶部に対して検索を実行し、この検索結果から1以上の情報取得手順を生成する(ステップS4)。システムスキーマ検索手段222は、生成した情報取得手順を情報取得手順記憶部232に格納する。ステップS4の情報取得手順生成処理については後述する。情報取得手順を生成した後、情報対応付け要求解釈手段221は情報取得手順検索手段223に対して、情報取得手順検索命令を生成し、情報取得手順検索手段223はこの命令に基づいて情報取得手順を検索する(ステップA2)。検索結果は、情報対応付け要求解釈手段221に戻され、情報対応付け要求解釈手段221はその情報取得手順を解釈し(ステップS5)、それに対応する情報取得手順実行命令を情報取得手順実行手段224に送る。
情報取得手順実行手段224は、受け取った情報取得手順実行命令をもとに、管理対象システム240からの情報取得を逐次実行する(ステップS6)。情報取得手順に従う情報取得処理(ステップS6)については後述する。なお、入力装置210から与えられるオプション情報のうち、第3のオプション情報はこの情報取得手順実行手段224で利用される。
ステップS6の実行結果は、情報対応付け要求解釈手段221に戻される。すると、情報対応付け要求解釈手段221は、管理対象システム240からの情報取得結果が存在するか否かを判定する(ステップS7)。管理対象システム240からの情報取得結果が存在する場合、情報対応付け要求解釈手段221は、その情報取得結果を出力装置250に出力させる(ステップS8)。管理対象システム240からの情報取得結果が存在しない場合、情報対応付け要求解釈手段221は、管理対象システム240から情報を所得できなかった旨を出力装置250に出力させる(ステップS9)。
入力装置210から与えられるオプション情報のうち、出力結果のフィルタに関する第2のオプション情報をステップS8の処理で利用してよい。情報対応付け要求解釈手段221は、情報取得手順実行手段224から与えられる複数のインスタンス文脈に対して、与えられたフィルタに合致するか否かの判断処理を逐次行う。そして、各インスタンス文脈に含まれる情報のうち、合致したものを出力装置250に出力させる。
図10は、ステップS4の情報取得手順生成処理のフローチャートである。ここでは、図11に示すUMLクラス図で表現されるシステムスキーマがシステムスキーマ記憶部231に記憶されている場合を例にして説明する。情報対応付け要求解釈手段221は、検索の起点や終点といったシステムスキーマ検索命令の内容をシステムスキーマ内の要素に対応させる(ステップS11)。すなわち、システムスキーマ内の要素の中から検索の起点となる要素と、終点となる要素とを決定する。本例では、図11に示すシステムスキーマ内要素Aを検索の起点とし、図11に示す要素Cを終点とするものとする。その後、情報対応付け要求解釈手段221は、検索の起点と終点の情報を含む検索命令をシステムスキーマ検索手段222に出力する。
次に、システムスキーマ検索手段222は、ステップS11で起点および終点とした要素間に成り立つ関係を検索する(ステップS12)。この要素間に成り立つ関係を検索するステップS12では、全経路探索アルゴリズム、あるいは複数経路探索アルゴリズムを用いる。ただし、関連要素(システム構成要素間の関連を表す要素)に多重度を記述しておき、これら要素間の探索方向に制限を設けることがあってもよい。「多重度」とは、一つの要素がその要素または他の要素に関連する場合における関連の数を示す値である。換言すると、「多重度」は、一つの要素がその要素または他の要素に関連する際における、関連する要素のインスタンスの数(実体の数)であるということができる。
図12は、多重度の具体例を示す説明図である。システムスキーマの中に「サーバ」という要素と、「OS」という要素があるとする。この2つの要素は、「サーバはOSを搭載し、OSはサーバに搭載される」という関連要素によって関連付けられる。このとき、OSに着目すると、OSは、1台のサーバにしか搭載されない(OSが搭載されるサーバのインスタンスは1つしかない)。そのため、OSがサーバに関連付けられるときの多重度は「1」となる。なお、多重度は、着目している要素に関連する要素の隣りに付記することにする。上記の場合、OSに着目しているので、OSに関連する要素(サーバ)の隣りに多重度「1」を付記する。次に、サーバに着目すると、サーバは、複数のOSを搭載することができる。サーバが搭載できるOSの数の上限をn(nは自然数)とする。この場合、サーバは、最大n個のOSを搭載することができ、サーバに搭載されるOSのインスタンスの数はnとなる。そのため、サーバがOSに関連付けられるときの多重度は「n」となる。
システムスキーマにおいて、このような多重度が定められている場合、ステップS12の検索処理において、以下のような制限を設けてもよい。すなわち、関連する要素を順次辿っていくという探索において、ある要素(要素Pとする)が他の要素(要素Qとする)に関連付けられているときの多重度が「n」である場合、要素Qから要素Pを辿って、また元の要素Qに戻るという繰り返しは、「n−1」回までしか行えないという制限を設けてもよい。すなわち、要素Qから要素Pを探索し再度要素Qを探索するという折り返しを、多重度が示す回数以上行うことを禁止してもよい。例えば、OSがサーバに関連付けられるときの多重度は「1」であるので、1−1=0となり、サーバからOSを辿って、また元のサーバに戻るという繰り返しは認めないこととする。サーバのインスタンスが1つしかない場合に、サーバからOSを辿り元のサーバに戻るという探索を行うと、冗長になるからである。すなわち、情報取得手順の中に同じサーバの実体情報を取得するという手順が複数含まれることになり、冗長になるからである。また、サーバがOSに関連付けられるときの多重度が「n」であるとすると、OSからサーバを辿って、また元のOSに戻るという繰り返しはn−1回まで認められる。OSのインスタンスがn個しかない場合に、OSからサーバを辿りOSに戻るという折り返しをn回以上行うと、OSの実体情報を取得するという手順がOSのインスタンスの数以上、情報取得手順の中に含まれることとなり、冗長になるからである。
なお、多重度の制限がない場合、「*」と表すことにする。「*」と表した場合、多重度が0である場合も含まれる。また、多重度が「n以上m以下」である場合には、「n..m」と表すことにする。例えば、多重度を「0..1」とした場合、多重度が「0以上1以下」であることを示している。
この多重度に基づいた探索について、図11に示すシステムスキーマの例を用いて説明する。なお、以下の説明では図11に示すシステムスキーマの要素Aのクラスをもち、かつ識別子を含むシステムの実体情報をa1、a2等と表現する。同様に要素B、要素Cについても、その要素のクラスをもち、かつ識別子を含む実体情報をb1、c1等と記述する。図11の要素Aと要素Cの間の経路を探索する場合、システムスキーマ検索手段222は、(要素A−関連c−要素C)、(要素A−関連d−要素D−関連e−要素C)、(要素A−関連b−要素B−関連b−要素A−関連c−要素C)、(要素A−関連b−要素B−関連b−要素A−関連d−要素D−関連e−要素C)の4つの経路を検索結果として出力する。
続いて、システムスキーマ検索手段222は、検索結果に基いて、検索結果から情報取得手順を生成する(ステップS13)。図13は、ステップS13で生成される情報取得手順の例を示す。図13に示す各情報取得手順901〜904は、それぞれ上記の4つの検索結果から生成された情報取得手順である。情報取得手順901は、要素Aをもとに、関連cを辿って要素Cの情報を取得するという手順を意味する。関連bの多重度は、要素Aに対しては無制限で、要素Bに対しては上限値1であるため、(要素A−関連b−要素B−関連b−要素A)という探索の折り返し動作を許可されているが、(要素B−関連b−要素A−関連b−要素B)という折り返し動作は禁止されている。また、要素Fについても、要素Aから要素Fに達し、再度要素Aに戻るという探索が許可されないため、検索結果にはそのような経路は含まれず、情報取得手順としても生成されない。
なお、検索の起点が要素Dであり、検索の終点が要素Aである場合には、図14に示す情報取得手順1001および情報取得手順1002が生成される。このうち、情報取得手順1002には、(要素D−関連e−要素C−[関連e−要素D−関連e−要素C−]関連c−要素A)という手順が含まれている。[ ]内に示した配列は、その配列が繰り返されることを意味している。この繰り返しを持つ情報取得手順では、識別子d1を持つ要素Dから関連eを辿って要素Cを得た後に、関連eを辿って要素Dを得ても、関連cを辿って要素Aを得てもよい。また、繰り返しの最後である要素Cについての処理では、識別子がc1である要素Cから関連eを辿って要素Dを得ても、関連cを辿って要素Aを得てもよい。
システムスキーマ検索手段222は、2要素間の経路の検索結果から情報取得手順を生成すると、その情報取得手順を情報取得手順記憶部232に格納する(ステップS14)。なお、このとき、システムスキーマ検索手段222は、生成した情報取得手順に対し、識別情報を付加する。この識別情報は、入力装置210から入力された要求に対応するものであることを示す。再度、同一の要求が入力された場合には、この識別情報をキーとして情報取得手順を検索すればよい。
次に上記の経路検索結果および情報取得手順として生成されるデータの形式の例を以下に示す。第1のデータ構造例は、複数の情報取得手順それぞれをリンク付リスト形式に格納する構造である。第2のデータ構造例は、複数の情報取得手順を全て1つのリンク付テーブル形式に格納する構造である。例えば、第1のデータ構造例では、図13に示す情報取得手順901〜904は、それぞれ図15に示す情報取得手順データ1101〜1104のようなデータ構造として記憶される。すなわち、複数の情報取得手順が、それぞれ別々の情報取得手順データ1101〜1104として記憶される。また、第2のデータ構造例では、情報取得手順901〜904は、図16に示す情報取得手順データ1201のようなデータ構造として記憶される。すなわち、複数の情報取得手順が、1つの情報取得手順データ1201として記憶される。また、情報取得手順1002(図14参照)のような繰り返しを持つ手順は、図17に記載の情報取得手順データ1301のようなデータ構造として記憶される。
なお、入力装置210から第1のオプションの指定があり、システムスキーマ検索命令とともに中継必要要素が情報対応付け要求解釈手段221から与えられた場合には、システムスキーマ検索手段222は、検索結果の経路からこの中継必要要素が含まれていない経路を削除してもよい。あるいは、システムスキーマ検索手段222は、起点と終点を結ぶ経路を探索する処理と同様の処理を、起点と中継必要要素、および中継必要要素と終点とでそれぞれ実行してもよい。また、中継不必要要素がシステムスキーマ検索命令とともに与えられた場合には、システムスキーマ検索手段222は、検索結果に中継不必要要素が含まれているものを削除してもよい。あるいは、中継不必要要素が与えられた場合、システムスキーマ検索手段222は、検索実行時にその中継不必要要素を回避して探索してもよい。
ここで、要素間で成り立つ関係の検索処理(ステップS12)は何らかの全経路探索手法でよいが、その一例として、幅優先の全経路探索を一定の検索生存時間変数で以って行う方法について、図18のフローチャートを参照して説明する。
システムスキーマ検索手段222は、まず、検索ポインタを検索の起点として与えられた要素にあてる(ステップS21)。要素Aを起点とした前述の例では、要素Aにポインタをあてる。次に、有限の数値を生存時間変数とする(ステップS22)。ステップS22で与えられる生存時間変数の初期値は、後述のステップS23〜S27の繰り返し処理の回数を規定する。
続いて、システムスキーマ検索手段222は、検索のポインタがあてられている要素から、次に検索ポインタを進めることができる要素を全て列挙する(ステップS23)。ステップS23では、検索ポインタが設定されている要素と関連を有する要素に対して、検索ポインタを進める。検索ポインタが設定されている要素が、その要素自身と関連を有する場合もある。また、検索ポインタが終点要素にあてられている場合には、その終点要素が自身と関連を有しているときに、さらに検索可能であると判断する。例えば、図7に示す「LANEndpoint」は、「LANEndpoint」自身と関連を有している。この場合、「LANEndpoint」が終点要素であり、「LANEndpoint」に検索ポインタがあてられている場合であっても、さらに「LANEndpoint」を検索可能であると判断する。この結果、探索経路は、「・・・、LANEndpoint、LANEndpoint、LANEndpoint・・・」と続いていく。また、ステップS23で、多重度に基づく探索先の制約判断を行ってもよい。
次に、システムスキーマ検索手段222は、検索ポインタを進めることができる要素があったか否かを判定する(ステップS24)。そのような要素があると判定した場合(ステップS24のY)、システムスキーマ検索手段222は、その要素に検索ポインタを進める(ステップS25)。検索ポインタを進めることができる要素が複数存在する場合には、その全てに検索ポインタを進める。また、検索ポインタは探索を行った要素を記録する経路配列を有する。システムスキーマ検索手段222は、複数の要素に検索ポインタを進める場合には検索ポインタを複製し、それぞれの検索先に検索ポインタを進める。そして、システムスキーマ検索手段222は、進めた先の要素と進めるために用いた関連をそれぞれの検索ポインタが保持している経路配列に追加する(ステップS26)。その後、ステップS27に移行する。
また、ステップS24において、検索ポインタを進めることができる要素がないと判定した場合、ステップS27に移行する。
ステップS27では、システムスキーマ検索手段222は、生存時間変数が0になっているか否かを判定する。0になっていなければ(ステップS27のN)、システムスキーマ検索手段222は、生存時間変数から1を減算する。(ステップS28)。この後は、検索ポインタのある全ての要素に対して、さらに検索を進めることができるか判断する(ステップS23)。ステップS23以降の処理が、ステップS22で設定された有限数値と同等の回数繰り返されると、ステップS27では生存時間変数が0となる。この場合(ステップS27のY)、システムスキーマ検索手段222は、検索ポインタが終点要素にある経路配列を選択し、その経路配列を検索結果とする(ステップS29)。
次に、図19、図20および図21を用いてステップS6(図8参照)の処理内容について説明する。図19は、情報取得手順に従う情報取得処理(ステップS6)のフローチャートである。ここでは、図15に例示する複数の情報取得手順に従う処理がそれぞれ実行されるものとする。まず、情報取得手順実行手段224は、情報対応付け要求解釈221から受け取った1以上の情報取得手順データの中から、1つの情報取得手順データを取り出す(ステップS31)。例えば、情報取得手順データ1101〜1104の中から1つの情報取得手順データを取り出す。次に、情報取得手順実行手段224は、取り出した情報取得手順を実行する(ステップS32)。
図20は、情報取得手順の実行処理(ステップS32)のフローチャートである。情報取得手順は情報取得処理の連なりから構成されるものとする。情報取得手順の実行処理(ステップS32)において、情報取得手順実行手段224は、まず、一つの情報取得手順の実行結果であるデータを最終結果データとして準備し、このデータの値を空にする(ステップS41)。このとき情報取得手順実行手段224は、入力装置210から与えられるインスタンス、および情報取得処理の結果として得られるインスタンスを格納する結果配列も準備する。次に、情報取得手順から第1の情報取得処理を取り出し(ステップS42)、この情報取得処理を実行する(ステップS43)。
図21は、情報取得処理(ステップS43)のフローチャートである。情報取得手順実行手段224は、まず第1の情報取得処理を実行し、管理対象システムに対して問い合わせを行う。例えば、図15に示す情報取得手順データ1101の第1の情報取得処理を実行した場合には、入力装置210から与えられた要素Aのクラスを持つシステム情報a1をもとに、関連cを辿って要素Cの型を持つシステム情報を取得する。ここで取得結果が複数存在した場合には、その取得結果を列挙する(ステップS51)。例えば、取得結果として、c1、c2を得た場合には、c1、c2を列挙する。情報取得手順実行手段224は、その取得結果の1つ(ここではc1とする。)を取り出し、これを処理結果Aとする(ステップS52)。次に、情報取得手順実行手段224は、結果Aが妥当であるか否かを判定する(ステップS53)。この判定処理は、主に入力装置210から与えられる第3のオプション情報に基づいて行う。より具体的には、情報取得結果に含めないとするインスタンス、あるいは関連インスタンスが指定されており、結果Aがそれに該当する場合には、結果Aは妥当でないと判定される。一方、該当しない場合には、結果Aは妥当であると判定される。
結果Aが妥当である場合、情報取得手順実行手段224は、その結果Aを情報取得結果配列に記録する(ステップS54)。次に、この情報取得処理が、情報取得手順の中の最後の情報取得処理であるか否かを判定する(ステップS55)。ステップS55において、最後の情報取得処理であると判定した場合、結果配列を最終結果データに出力する(ステップS56)。先の例では、第1の情報取得処理が情報取得手順データ1101における最後の情報取得処理でもあるため、a1とc1、およびそれらを結んでいることを示す関連インスタンスを結果として出力する。次に、情報取得手順実行手段224は、結果Aを情報取得結果配列から削除し(ステップS57)、他に情報取得結果があるか否かを判定する(ステップS58)。
その結果、他に情報取得結果が存在していれば、ステップS52において他の結果を取り出し、これを再度結果Aとして、同様の処理を繰り返す。先の例ではc1の他にc2が取得されていたので、c2を処理結果Aとし、情報取得結果配列に格納する。そして、これも結果配列に出力される。すべての情報取得結果について、ステップS52以降の処理を終えると、情報取得処理を実行するステップ(ステップS43、図20参照)を終了し、最終結果データを最終的に得られた結果とする(ステップS44、図20参照)。なお、このステップS44にて、入力装置210から与えられる要求の形式によって、検索結果を削除することがあってもよい。すなわち、2つのインスタンスを与えられる第1の要求形式であった場合に、情報取得手順の最後の情報取得処理によって得られたインスタンスが、入力装置から与えられたインスタンスに一致しない場合には検索結果としないという処理が含まれていてもよい。また、入力装置210から指定される第3のオプション情報についての処理もここで加えられてもよい。すなわち、情報取得結果に含める必要のあるインスタンスあるいは関連インスタンスが指定されている場合に、これらを含まない情報取得結果を排除する処理がステップS44に含まれていてもよい。
情報取得手順実行手段224は、以上のようにして得られる最終結果データを保持する(ステップS33、図19参照)。ステップS33に続いて、情報取得手順実行手段224は、全ての情報取得手順を実行したか否かを判定し(ステップS34)、まだ実行していない情報取得手順があれば、その情報取得手順を取り出してステップS31以降の処理を繰り返す。上述の要素Aと要素Cとの依存関係を解決するために準備された情報取得手順の例では、図13に示す情報取得手順902〜904を順次取り出して、それぞれについてステップS31以降の処理を実行する。
ここで仮に、情報取得手順902では、a1をもとに関連dを辿って要素Dを得る情報取得処理を実行して、d1が取得されたとする。そして、d1をもとに関連eを辿って要素Cを得る情報取得処理を実行して、c1が取得されたとする。そして、情報取得手順903と情報取得手順904では、ともに情報取得手順中の情報取得処理で取得結果が得られなかったとする。以上の場合、図19のステップS33で保持されている最終結果データは、(a1、a1とc1を参照する関連インスタンス、c1)、(a1、a1とc2を参照する関連インスタンス、c2)、および(a1、a1とd1を参照する関連インスタンス、d1、d1とc1を参照する関連インスタンス、c1)である。情報取得手順実行手段224は、これら全てを情報対応付け要求解釈手段221に対して結果として出力し、情報対応付け要求解釈手段221は出力装置250に送信する。なお、入力装置210から第3のオプション情報が指定があり、情報取得結果に含まれる必要のあるインスタンスとしてd1が指定されている場合には、(a1、a1とd1を参照する関連インスタンス、d1、d1とc1を参照する関連インスタンス、c1)が出力装置250に送信される。また、第2のオプション情報の指定があり、要素Cのクラスを持つインスタンスだけを出力装置250に返す指定があった場合には、c1とc2が出力される。
次に、図14に示す情報取得手順1002のような分岐あるいは繰り返しがある場合についての処理を説明する。この情報取得手順1002が図17に示す情報取得手順データ1301に記載のデータ形式で情報取得手順記憶手段232に格納されており、入力装置210からの対応付け要求は要素Dに対応するインスタンスd1および要素Aに対応するインスタンスa1と、他の情報を対応付けることを要求しているとする。この場合、情報取得手順実行手段224は、情報取得手順データ1301から第1の情報取得処理として、要素Dと関連eから要素Cの実体情報を取得する処理を取り出す(ステップS42、図20参照)。そして、その処理を実行してc1を取得したとする(ステップS51、図21参照)。次に、このc1を結果Aとし(ステップS52)、この結果を結果配列に格納する。ここで、結果配列にはd1とc1、およびd1とc1に関係があることを示す関連インスタンスが存在する。
次に、これが最後の情報取得処理であるか判定されるが、情報取得手順データ1301からこれは最後の処理ではないことが分かるため(ステップS55のN)、次の情報取得処理を実行する(ステップS43)。このステップは再帰呼び出しとなる。情報取得手順実行手段224は、ステップS43の処理を再帰呼び出しして、c1から次の情報取得処理を実行する。すると、本例の場合、要素Aに対応するインスタンスa1および要素Dに対応するd2を列挙する(ステップS51)。そのうち、a1を取り出し、これを取得結果Aとする(ステップS52)。この結果Aは妥当であり、また最後の情報取得処理でもあるので、この結果配列であるd1とc1とa1、およびそれらに関係があることを示す関連インスタンスの配列を最終結果データに出力する(ステップS56)。そして、結果Aを結果配列から削除し(ステップS57)、他の情報取得処理結果であるd2を取り出す。このd2が次の結果Aとなる。このd2という結果Aは妥当であるとする。これは、最後の情報取得処理ではないため、次の情報取得処理として要素Dと関連eから要素Cを取得する処理を行う。
以上のように、バックトラッキングアルゴリズムに基づく深さ優先探索を用いるなどして、情報取得手順データに記憶されている手順に従い、管理対象システムに対して情報取得処理を逐次実行する。
なお、情報取得処理の結果を判定するステップS53にて、結果配列に含まれる結果を取得した際には妥当でないとすることで、2度同じ管理対象システムの情報を取得することが避けられる。また、仮に管理対象システムが十分に大きいとき、情報取得手順のループが繰り返されてしまう可能性がある。その場合、情報取得手順実行処理に対して生存時間変数を設け、情報取得処理回数を制限することが有効である。
なお、情報取得処理の具体的な方法の例としては、例えばSNMPを用いた情報取得や、WBEMに対するCIM Operations Over Http等が挙げられる。
次に、管理対象システムに新たなシステム構成要素が追加される場合における、システムスキーマの追加について説明する。管理対象システムに新たなシステム構成要素が追加され、そのシステム構成要素が、システムスキーマ記憶部231内の各システムスキーマで表現されていないとする。この場合、追加されたシステム構成要素の実体情報の取得手順を作成するために、追加されたシステム構成要素を表現するようにシステムスキーマを変更すればよい。
例えば、管理対象システムにSIPサーバが追加されたとする。この場合、SIPサーバを表すクラスをシステムスキーマに追加すればよい。SIPサーバは、0以上のURL登録リストを有していて、各登録リストには0以上のSIPURLが含まれる。従って、このことを表現したクラスをシステムスキーマに追加すればよい。「0以上のURL登録リストを有していて、各登録リストには0以上のSIPURLが含まれる」ことを表現するしたシステムスキーマの例を図22に示す。このようなシステムスキーマを既存のシステムスキーマと組み合わせて新たなシステムスキーマとすることによって、SIPサーバを含むネットワークシステムを管理する場合でも、コンピュータネットワーク管理システムは、依存関係を解決するための情報取得手順を作成することができる。
従来、管理対象システムに新たなシステム構成要素が追加された場合には、一種のプログラムであるシナリオを作成しなければならなかったため、システム管理者の負担が大きかった。しかし、本発明では、新たなシステム構成要素を表現するシステムスキーマを追加すればよく、システムスキーマの追加は、シナリオ作成に比べ容易であるため、システム管理者の負担を軽減することができる。
本発明によれば、システム構築、運用または構成変更等の際に、依存関係の把握を必要とするシステム管理者に対して、システム構成要素間の依存関係を解決し、システム管理者の所望の依存関係を提供することができる。
また、ネットワークシステムについての概念を記述するシステムスキーマから、情報対応付け要求に応じた情報取得手順を生成し、これを実行するというように構成されているため、システム管理者あるいはシステム管理アプリケーション作成者が情報取得手順を作成する手間を省くことができる。また、情報対応付け要求に応じて情報取得手順を生成するので、依存関係として得られるシステム情報の種類が限定的になってしまうことがないという効果も得られる。
また、システムスキーマ作成者が関連について多重度を設定した場合に、その多重度に基づいて情報取得手順を作成するように構成されているため、冗長な情報取得手順が作成されることを避けることができる。
なお、上記の説明では、入力装置210から2つのインスタンスや、1つのインスタンスと1つのクラスが入力される場合を示した。図5(b)に示すようなインスタンスの代わりに、実体情報のみが入力されてもよい。ただし、インスタンスからクラスを特定することはできるが、実体情報だけから直接クラスを特定することはできない。そこで、インスタンスの代わりに実体情報のみを入力する場合には、各実体情報と、クラスとの対応関係を示すテーブルを保持しておき、そのテーブルを用いて、入力された実体情報からクラスを特定できるようにしておけばよい。
上記の実施の形態において、システムスキーマ記憶手段は、システムスキーマ記憶部231によって実現される。情報取得手順生成手段は、システムスキーマ検索手段222によって実現される。要素指定手段、関連指定手段および条件指定手段は、情報対応付け要求解釈手段221および入力手段210によって実現される。情報取得手段は、情報取得手順実行手段224によって実現される。出力手段は、情報対応付け要求解釈手段221および出力手段250によって実現される。システムスキーマ選択手段は、情報対応付け要求解釈手段221によって実現される。
また、データ処理装置220は、コンピュータネットワークシステムに含まれる要素および要素間の関連を所定の表現形式でモデル化することによってコンピュータネットワークシステムの構造を記述したシステムスキーマを記憶するシステムスキーマ記憶手段を備えたコンピュータに搭載されるコンピュータネットワーク管理プログラムであって、コンピュータに、管理対象のコンピュータネットワークシステムに含まれる要素のうちの2つの要素の情報が入力されたときに、入力された2つの要素の情報とシステムスキーマとに基づいて、管理対象のコンピュータネットワークシステムから2つの要素を結びつけている各要素および各要素間の関連を示す情報を取得するための情報取得手順を生成する処理を実行させるためのコンピュータネットワーク管理プログラムに従って動作する。
実施の形態2.
次に本発明の第2の実施の形態について説明する。第2の実施の形態におけるコンピュータネットワーク管理システムの構成は第1の実施の形態と同様である(図6参照)。ただし、第1の実施の形態では、システムスキーマ記憶部231が予め記憶するシステムスキーマは、要素間に継承関係を持たないシステムスキーマであった。これに対し、第2の実施の形態では、システムスキーマ記憶部231は、オブジェクト指向における継承関係を持つ要素を含むシステムスキーマを記憶する。
このようなシステムスキーマの例を、図23に示す。図23に例示するシステムスキーマにおいて、クラスBはクラスAを継承している。クラスDはクラスCを継承している。また、クラスAとクラスCとは関連を有している。
システムスキーマが、継承関係を有する要素を含んでいる場合、ステップS23の処理(検索ポインタのある要素からポインタを進めることができる要素を探す処理、図18参照)が第1の実施の形態と異なる。他の処理ステップは、第1の実施の形態と同様である。
第1の実施の形態では、検索ポインタのある要素からポインタを進めることができる要素を探す処理(図18に示すステップS23)において、検索ポインタが設定されている要素と関連を有する要素に対して検索ポインタを進めていた。これに対して、第2の実施の形態では、検索ポインタが設定されている要素が継承している他の要素が関連を有している要素、およびその要素を継承している要素を、ポインタを進めることができる要素とみなして検索ポインタを進める。
図24は、検索ポインタのある要素から検索ポインタを進めることができる要素を探す処理のフローチャートである。また、図23に示すクラスBに検索ポインタが設定されているとする。システムスキーマ検索手段222は、検索ポインタが設定されている要素が継承している全ての要素を列挙する(ステップS71)。図23に示す例では、検索ポインタが設定されているクラスBが継承している要素はクラスAであるので、クラスAを列挙する。なお、クラスBがクラスA以外の要素も継承しているのであれば、その各要素を列挙する。ステップS71で列挙される要素の中には、検索ポインタが設定されている要素のスーパークラス(親クラス)も含まれる。
続いて、システムスキーマ検索手段222は、ステップS71で列挙した要素が関連を有している要素を列挙する(ステップS72)。上記の例では、ステップS71でクラスAが列挙されたので、クラスAと関連を有する要素(クラスC)を列挙する。ここではクラスAと関連を有するクラスCのみを列挙する場合を示したが、クラスC以外に関連を有するクラスがあれば、各クラスを列挙する。また、ステップS71で列挙されたクラスがクラスA以外にもあるならば、その各クラスと関連を有するクラスも列挙する。
さらに、システムスキーマ検索手段222は、ステップS72で列挙した要素を継承している要素を列挙する(ステップS73)。上記の例では、ステップS72でクラスCが列挙されたので、クラスCを継承しているクラスDを列挙する。ステップS72において、クラスC以外のクラスも列挙しているならば、その各クラスを継承しているクラスも列挙する。ステップS73で列挙される要素には、ステップS72で列挙された要素のサブクラス(子クラス)も含まれる。
システムスキーマ検索手段222は、ステップS72,S73で列挙した要素は、検索ポインタが設定されている要素との間に関連を持っているとみなす(ステップS73)。また、この関連は、検索ポインタが設定されている要素が継承している要素と、ステップS72で列挙した各要素との間の関連と同一の関連であるとみなす。上記の例の場合、ステップS72,S73で列挙した要素(クラスC、クラスD)は、検索ポインタが設定されたクラスBと関連を持っているとみなす。このとき、クラスBとの関連は、クラスBが継承しているクラスAと、ステップS72で列挙された各クラスCとの間の関連と同一であるとみなす。
そして、システムスキーマ検索手段222は、ステップS72,S73で列挙した各要素に検索ポインタを進める。
この実施の形態によれば、システムスキーマの設計者は、オブジェクト指向に基づいて継承関係を有する要素を含むシステムスキーマを設計することが可能となり、設計の負荷が軽減される。仮に、オブジェクト指向を用いずに、例えばWebサーバとHTTPサーバを全く別々の要素としてモデル化すると、サーバに共通する機能を両方の要素に対して設計しなければならない。これに対し、オブジェクト指向を用いてモデル化を行うと、共通機能をサーバという上位概念の要素にまとめて設計することが可能となる。サーバという上位概念の要素と、WebサーバやHTTPサーバといった下位概念の要素とを切り分けた上で、それらの間に継承関係を持たせれば、複数のシステム構成要素に共通する機能を、一つの要素にまとめて記述する事ができるため、設計の手間が軽減される。
次に、本発明の実施例を示す。本実施例では、データ処理装置220は、プログラムに従って動作するコンピュータであり、データ記憶装置230は、磁気ディスク装置であるものとする。
システムスキーマ記憶部231は、CIMにもとづいたシステムスキーマを格納している。本例では、図7に示すUMLクラス図によって表現されるシステムスキーマを格納しているものとする。
また、管理対象システムの構成は、図25に示す構成であるとする。すなわち、スイッチ2210とスイッチ2220が存在する。スイッチ2210は、ポート2211〜2214を備える。スイッチ2220は、ポート2221〜2226を備える。そして、スイッチ2220では、ファイアーウォール2231と、サーバ2232と、サーバ2233と、ファイアーウォール2234と、ネットワーク2240が、それぞれポート2221、ポート2222、ポート2223、ポート2224、ポート2225に接続されている。また、スイッチ2210では、ロードバランサ2235がポート2214に接続されている。スイッチ間は、スイッチ2210のポート2211と、スイッチ2220ポート2226とで接続されている。加えて、ポート2214、ポート2211、ポート2226、ポート2222にはポートVLAN1が割り当てられており、ポート2221およびポート2225にはポートVLAN2が割り当てられているもととする。また、図25に示す構成において、管理サーバ2260は、本発明によるコンピュータネットワーク管理システムである。サーバ2250は、管理対象システムに対する情報取得を代行するWBEMを実装したサーバである。
入力装置210(図25において図示せず。)からサーバ2233とファイアーウォール2231の間に成り立つ依存関係を取得する情報対応付け要求が、管理サーバ2260の情報対応付け要求解釈手段221(図25において図示せず。)に与えられたとする。この情報対応付け要求の形式は、第1の要求形式である。この情報対応付け要求は、例えば、サーバ2233とファイアーウォール2231をVLAN接続する必要があるときに要求される内容である。また、出力結果として得られる依存関係の情報にはスイッチのPortに関する情報が含まれる必要があるとの情報が対応付け要求に含まれていたとする。これは、第1のオプション情報に相当する。
情報対応付け要求解釈手段221は、図7に示すシステムスキーマにおいて、起点をServerComputerSystemクラス、終点をFirewallComputerSystemクラス、中継必要クラスをSwitchPortクラスであると判断する。この判断は、サーバ2233がServerComputerSystemのクラスを持ち、ファイアウォール2231がFirewallComputerSystemのクラスを持つために行われた判断であるとする。そして、システムスキーマ検索命令を、システムスキーマ検索手段222(図25において図示せず。)に送る。システムスキーマ検索手段222は、幅優先探索を行うものとする。
システムスキーマ検索手段222は、検索の起点であるServerComputerSystemクラスに検索ポインタを指定し、これを第1の検索ポインタとする。また、本実施例では、生存時間変数を15とする。システムスキーマ検索手段222は、この第1の検索ポインタと関連しているクラスを探し、ServerEthernetPortクラスとOperatingSystemクラスを取得する。そして、それぞれについて関連先に進めるかを判断し、それぞれに第2の検索ポインタ、第3の検索ポインタを設定する。ここで、第2の検索ポインタの持つ経路配列として、(ServerComputerSystem、ServerSystemDevice、ServerEthernetPort)を記憶する。また、第3の検索ポインタの持つ経路配列として、(ServerComputerSystem、RunningOS、OperatingSystem)を記録する。このとき、検索の生存時間変数は14となる。
第2の検索ポインタと関連しているクラスをさらに探すと、ServerComputerSystem、LANEndpointが見つかる。ここで、経路配列には(ServerComputerSystem、ServerSystemDevice、ServerEthernetPort)と記録されていることと、ServerComputerSystemクラスへのServerSystemDevice関連クラスの多重度が1であることより、ServerComputerSystemクラスは関連先候補とならないと判断される。この結果、管理対象システムに対して情報取得手順を実行する段階に、ServerComputerSystemの識別子情報からServerEthernetPortの識別子情報を探し、さらにその結果からServerComputerSystemの識別子情報を探す、という不必要な情報取得手順が排除される。従って、ServerEthernetPortクラスから、LANEndpointクラスに検索ポインタが進む。これを第4の検索ポインタとする。この経路配列は(ServerComputerSystem、ServerSystemDevice、ServerEthernetPort、ServerPortImplementsLANEndpoint、LANEndpoint)となる。第3の検索ポインタは、関連先としてServerComputerSystemを持つが、経路配列の情報から戻ることはできないと判断され、それ以上の検索ポインタの移動は起きない。このとき、検索の生存時間変数は13となる。
第4の検索ポインタは、さらに関連先のクラスを探し、ServerEthernetPort、SwitchPort、FirewallEthernetPort、LANEndpointといったクラスが見つかる。関連の多重度の情報から、SwitchPort、FirewallEthernetPort、LANEndpointクラスに検索ポインタを進めることができると判断され、それぞれに第5の検索ポインタ、第6の検索ポインタ、第7の検索ポインタが設定される。ここで、検索の生存時間変数は、12となる。
次に、第5の検索ポインタについて同様の処理を行い、SwitchEthernetPortとVLANSwitchEndpoiintクラスに第8と第9の検索ポインタが設定されr。また、第6の検索ポインタは、FirewallComputerSystemに進めることができるため、これを第10の検索ポインタと設定される。第7の検索ポインタは、LANEndpointからLANEndpointへの探索を行っているが、ここでの関連には多重度による制約が存在しないため、探索の繰り返し可能である。そして、経路配列は(ServerComputerSystem、ServerSystemDevice、ServerEthernetPort、ServerPortImplementsLANEndpoint、LANEndpoint、LANActiveConnection、LANEndpoint)となる。ここで、この第7の検索ポインタは、LANEndpointとLANEndpointとの間の関連が無制限であることを読み込んだので、これを反映し経路配列を(ServerComputerSystem、ServerSystemDevice、ServerEthernetPort、ServerPortImplementsLANEndpoint、[LANEndpoint、LANActiveConnection]、LANEndpoint)のように[ ]内の要素を繰り返し可能としてもよい。なお、ここでの検索の生存時間変数は11となっている。
同様の動作は検索の生存時間変数が0となるまで進められ、そしていくつかの検索ポインタは、Firewallクラスに達する。例えば、第6の検索ポインタはその関連先としてFirewallクラスに探索を進めることができる。ここに設定される検索ポインタ(第10の検索ポインタ)はそれ自身のクラスに探索を進めることはできないため、検索の生存時間変数が0になるまでそのクラスに存在する。しかし、このポインタの持つ経路配列は、(ServrComputerSystem、ServerSystemDevice、ServerEthernetPort、ServerPortImplementsLANEndpoint、LANEndpoint、FWPortImplementsLANEndpoint、FirewallEthernetPort、FWSystemDevice、FirewallComputerSystem)であり、その配列内に中継必要クラスSwitchPortクラスを含まない。従って、この経路配列はシステムスキーマ検索の結果とはならない。
生成される情報取得手順の一例としては、(ServerComputerSystem、ServerSystemDevice、ServerEthernetPort、ServerPortImplementsLANEndpoint、LANEndpoint、LANActiveConnection、LANEndpoint、SWLANEndpointIdentity、SwitchPort、SWPortImplementsSWEndpoint、SwitchEthernetPort、SWSystemDevice、SwitchComputerSystem、SWSystemDevice、SwitchEthernetPort、SWPortImplementsVLANSWEndpoint、VLANSwitchEndpoint、SwitchEndpointInData、NetworkVLAN、SwitchEndpointInVLAN、VLANSwitchEndpoint、SWPortImplementsVLANSWEndpoint、SwitchEthernetPort、SWPortImplementsSWEndpoint、SwitchPort、SWLANEndpointIdentity、LANEndpoint、LANActiveConnection、LANEndpoint、FWPortImplementsLANEndpoint、FirewallEthernetPort、FWSystemDevice、FirewallComputerSystem)等が挙げられる。この情報取得手順を情報取得手順Pとする。
図26は、このような情報取得手順を複数まとめて表現した図である。図26において表現されている複数の情報取得手順の中から上述の情報取得手順Pを抽出すると、情報取得手順Pは、図27に示すように表現される。
なお、CIMにおけるWeakAssociationを弱い関連とすると、この弱い関連で結ばれているクラスから定まる情報取得手順を省略してもよい。ここで、「弱い関連」について説明する。システムスキーマに記述される2つのクラスに対応する2つのインスタンスが管理対象システムに含まれているとする。この2つのインスタンスの一方のインスタンス(インスタンスBとする)の識別子が、もう一方のインスタンス(インスタンスAとする)の識別子を含んでいるとする。この状態のことを、「インスタンスAの識別子がインスタンスBに伝搬する。」という。このように、インスタンスにおいて識別子が伝搬するときに、システムスキーマ内のクラスは「弱い関連」で結合されているという。また、図7等に例示したシステムスキーマでは、2つのクラスが弱い関連で結合されているときには、そのクラス間の関連に「w」を付して表している。また、この記号「w」は、対応するインスタンスに識別子が伝搬している側のクラスの隣りに付記している。
識別子の伝搬の具体例を示す。システムスキーマにおいて、クラスAがサーバを表し、クラスBがOSを表しているとする。また、実際の管理対象システムでは、サーバの識別子が、「ComputerSystem.name=host1 」と表され、OSの識別子が「OperatingSystem.name=windows;ComputerSystem.name=host1」と表されているとする。この場合、OSの識別子に、サーバの識別子が含まれ、OSの識別子にサーバの識別子が伝搬していることになる。情報取得手順実行手段224が管理対象システムから情報を取得する際、他の要素の識別子が伝搬している識別子を取得すれば、他の要素の識別子を別途取得する必要がなくなる。そのため、システムスキーマ内では、弱い関連で結合している2つのクラスのうち、他の要素の識別子が伝搬しているインスタンスに対応するクラスは検索対象から除外してよい。なお、システムスキーマはクラスで表現されるので、システムスキーマは各要素の識別子そのものの情報を有しているわけではない。ただし、システムスキーマには、識別子が伝搬しているという情報が格納されている。この情報を、図7等では記号「w」で表している。
クラスを検索対象から除外する場合の例について説明する。例えば、上記の経路配列の中に存在する(SwitchEthernetPort、SWSystemDevice、SwitchComputerSystem)といった順序関係のうち、SwitchEthernetPortはSwitchComputerSystemに対して弱い関連で結合され、識別子の伝播がするという情報が格納されている。従って、「SwitchEthernetPort」からの検索先候補から、「SwitchComputerSystem」を除外してよい。「SwitchComputerSystem」を検索候補から除外して得られる複数の情報取得手順が情報取得手順記憶部に格納される。この情報取得手順に従って識別子を取得する際には、SwitchEthernetPortの識別子情報を取得後、別途SwitchComputerSystemの情報を取得するという情報取得処理は省略される。
格納された情報取得手順は、情報対応付け要求解釈手段221(図6参照)によって情報取得手順記憶部232(図6参照)から出力され実行される。上記の経路配列の例からなる情報取得手順Pが実行されたとしたとする。この手順の最初の情報取得処理は(ServerComputerSystem、ServerSystemDevice、ServerEthernetPort)であるが、それに対応する取得コマンドはサーバのコンソールで実行するipconfigコマンドであってもよい。あるいは、資源情報の取得を代行するWBEMサーバ2250に対して、AssociatorコマンドをServerとSystemDeviceとEthernetPortとを引数として実行するものであってもよい。入力装置から受け付けたサーバの識別子はサーバ2233であり、いずれかの方法でこれを実行したときに、eth0という識別子を持つEthernetPortが取得されたとする。続いて(ServerEthernetPort、ServerPortImplementsLANEndpoint、LANEndpoint)の経路配列に対応する情報取得処理を実行する。(Server2233のeth0)という識別子から、LANEndpointの情報を取得する。これによって、Macアドレスが11:11:11:11:11:11であるLANEndpointが見つかったとする。次に、このMacアドレスを持つLANEndpointをもとに、(LANEndpoint、LANActiveConnection、LANEndpoint)の情報取得処理を実行する。これによって、あるスイッチのポート2223に接続されているという情報が得られたとする。そして、これによって得られる情報から同様の手順で、ポート2223のポート番号3といった情報がSwitchPortの情報として得られ、スイッチ2220といった情報がSwitchComputerSystemの情報として得られる。SwitchComputerSystemから得られるSwitchEthernetPortの情報は、ポート2221、ポート2222、ポート2224、ポート2225、ポート2226といった複数の情報が得られることとなる。ここで、ポート2223に関する情報は既に検出したため、この過程では検出されないものとしている。
図28は、図25に示すスイッチ2220に関するシステム情報を、システムスキーマにあわせて表現した図である。図28に示す情報からは、図29に示すサーバ2233とファイアーウォール2231とを結んで閉回路をなす情報が検出される。図29に示される検出結果を、システムスキーマに基づいたインスタンスとして複数重ねて表現したものを図30に示す。図30に示される結果のうち一つの結果の列を取り出すと、例えば(ServerComputerSystem.name=サーバ2233、ServerEthernetPort.name=eth0、LANEndpoint.MACAddress=11:11:11:11:11:11、(中略)SwitchPort.PortNumber=ポート2223、(中略)、SwitchComputerSystem.name=スイッチ2220、(中略)、SwitchPort.PortNumber=ポート2225、(中略)、NetworkVLAN=VLAN番号2、(中略)、SwitchPortNumber=ポート2221、(中略)、FirewallComputerSystem.name=ファイアーウォール2231)といった一連のインスタンスが取り出される。
この結果に含まれる意味は、サーバ2233がポート2223に接続されており、それと同じスイッチのポート2225は、ポート2221とVLAN番号2で接続されており、そのポート2221は目的のファイアーウォールと接続されている、という内容である。この情報取得結果は、情報取得手順実行手段から情報対応付け要求解釈手段を介して、出力装置に送信される。出力装置は、この結果を解析しサーバ2333をファイアーウォール2231と接続するためには、スイッチ2220のポート2223に対して、VLAN番号2を設定する、という判断を行ってもよい。あるいは、システム管理者が、図30に例示する結果を解析して、「サーバ2333をファイアーウォール2231と接続するためには、スイッチ2220のポート2223に対して、VLAN番号2を設定する」という判断を行ってもよい。
本実施例では入力装置から、対応付けられた結果の情報のクラスの指定や関連のクラスの指定がされていないため、この一連の取得結果が全て返されるが、入力装置から特定のクラスの指定がある場合には、上記結果からそのクラスに属するもののみを選択してもよい。上記の例では、システム管理者が仮に出力装置がサーバとファイアーウォールの間を接続するスイッチの識別子にだけ興味がある場合、SwitchComputerSystemが指定されてもよい。
なお、情報対応付けの結果はシステムスキーマに依存する。そのため、出力装置はシステムスキーマのクラス、及び関連の意味を把握しておくことが望ましい。例えば、上記の例ではServerSystemDeviceという関連要素が結果に含まれる場合には、それはサーバがそのデバイスを保有している、という意味を把握しておくことが望ましい。
また、上記の例ではポート2221とポート2225が同一VLANに属さない場合は、対応付け結果が含まれない。その場合には、1回目の情報対応付け要求で得られる結果に応じて、2回目の情報対応付け要求を入力装置が入力してもよい。上記の例では、1回目の情報対応付け要求で、サーバ2233とファイアーウォール2231の間の関係を検出し、2回目の情報対応付け要求では、その結果として得られるスイッチのポート番号からVLANを取得する対応付け要求を入力装置が入力してもよい。また、入力装置は、システム管理者の判断および操作に応じて、2回目の情報対応付け要求を情報対応付け要求解釈手段221に入力してもよい。