(57)【要約】【課題】情報処理装置に対する更新指示を検出し、ＦＣＭＤＢの情報を更新する。【解決手段】情報処理システムは、情報処理装置、格納部、中継部、及び更新部を含む。情報処理装置は、情報処理システムの要素である。格納部は、情報処理システムの構成要素情報として示される情報処理装置に関する情報が統合された統合情報を格納する。中継部は、情報処理装置宛ての構成要素情報を更新する更新コマンドを含む通信情報を受信し、情報処理装置宛ての更新コマンドを含む第１の通信情報と、更新コマンドを含む第２の通信情報とを送信する。更新部は、第２の通信情報を受信し、第２の通信情報に含まれる更新コマンドに基いて、統合情報を更新する。【選択図】図２
2014041494.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムの要素である情報処理装置と、
前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報が統合された統合情報を格納する格納部と、
前記情報処理装置宛ての前記構成要素情報を更新する更新コマンドを含む通信情報を受信し、前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する中継部と、
前記第２の通信情報を受信し、該第２の通信情報に含まれる更新コマンドに基いて、前記統合情報を更新する更新部と、
を備えることを特徴とする情報処理システム。
【請求項２】
前記情報処理システムは、さらに、
前記通信情報に前記更新コマンドが含まれるか否かを前記中継部が判定するための更新検出ルール、及び、前記通信情報に前記更新コマンドが含まれると判定された場合の前記中継部の動作を規定した動作ルールを、前記中継部に送信するルール送信部
を備え、
前記中継部は、前記更新検出ルールに基いて、前記通信情報に前記更新コマンドが含まれるか否かを判定し、前記通信情報に前記更新コマンドが含まれると判定された場合、前記動作ルールに基づいて、動作する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記中継部は、前記通信情報を受信した場合、該通信情報の転送元が、当該中継部と接続する他の前記中継部か否かを判定し、該通信情報の転送元が、当該中継部と接続する他の前記中継部ではない場合、前記受信した通信情報に前記更新コマンドが含まれるか否かを判定し、前記受信した通信情報に更新コマンドが含まれる場合、前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する
ことを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記中継部は、
前記更新部に前記第１の通信情報が送信されたことを示す転送済み情報を、前記第１及び第２の通信情報に付加し、
前記第１または第２の通信情報を受信した場合、該通信情報に前記転送済み情報が含まれているか否かを判定し、該判定結果に基づいて、前記受信した通信情報に前記更新コマンドが含まれるか否かを判定する
ことを特徴とする請求項１または２に記載の情報処理システム。
【請求項５】
情報処理システムの要素である情報処理装置宛ての、前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報を更新する更新コマンドを含む通信情報を受信する受信部と、
前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する送信部と、
を備える中継装置。
【請求項６】
プロセッサにより実行される情報処理方法であって、
中継装置は、情報処理システムの要素である情報処理装置宛ての、前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報を更新する更新コマンドを含む通信情報を受信し、前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信し、
更新装置は、前記第２の通信情報を受信し、該第２の通信情報に含まれる更新コマンドに基いて、前記構成要素情報を統合した統合情報を更新する
処理を実行することを特徴とする情報処理方法。
【請求項７】
プロセッサに、
情報処理システムの要素である情報処理装置宛ての、前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報を更新する更新コマンドを含む通信情報を受信し、
前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関する。
【背景技術】
【０００２】
ＩＣＴ（Ｉｎｆｏｒｍａｔｉｏｎ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）システムの構成要素に関する様々な情報を保持し、統合された構成管理を行うためのデータベースとして、ＣＭＤＢ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｍａｎａｇｅｍｅｎｔ  Ｄａｔａｂａｓｅ）が知られている。ＣＭＤＢは、使用者がＩＣＴシステムの構成要素間の関係を理解することを支援し、情報システムの管理を容易にする。
【０００３】
ＣＭＤＢは、ＩＣＴシステムを構成する部品であるＣＩ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｉｔｅｍ）と、２つのＣＩ間の関係を定義するＲｅｌａｔｉｏｎｓｈｉｐとから構成される構成要素情報を有する。ＣＩは、例えば、ＩＣＴシステムを構成する、サーバ、ストレージ等のハードウェアや、ソフトウェア等の詳細を表す。Ｒｅｌａｔｉｏｎｓｈｉｐは、例えば、ＩＣＴシステムを構成するハードウェアがどのハードウェアと接続されているか等の、ＣＩ間の関係性を表す。
【０００４】
ＣＩに関する情報をまとめて管理するものがＭＤＲ（Ｍａｎａｇｅｍｅｎｔ  Ｄａｔａ  Ｒｅｐｏｓｉｔｏｒｙ）である。ＭＤＲは、ＩＣＴシステムの運用管理データを保持するものであり、運用管理ミドルウェアのＤＢに相当する。ＭＤＲは複数存在し、ＭＤＲごとに、扱うデータの種別・量は異なる。
【０００５】
ＦＣＭＤＢ（Ｆａｄｅｒａｔｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｍａｎａｇｅｍｅｎｔ  Ｄａｔａｂａｓｅ）は、複数のＣＭＤＢまたはＭＤＲを仮想的に統合し、運用管理の効率を高める。ＦＣＭＤＢは、構成要素情報の統一のビューを使用者に提供する。
【０００６】
図１は、複数のＭＤＲを仮想的に統合したＦＣＭＤＢの構成図である。図１に示すように、複数のＭＤＲ２において、同じものを表す同一のエンティティが登録されている場合がある（例えば、ＭＤＲ２（設計情報）のＡ”、ＭＤＲ２（性能情報）のＡ^、ＭＤＲ２（構成情報）のＡ’）。ＦＣＭＤＢ１は、このような複数のＭＤＲ２に保存される同一のエンティティを、一つのエンティティとしてマージして登録する。このようなマージ処理をリコンサイルと呼ぶ。ＦＣＭＤＢ１は、ＣＩ単位でデータをリコンサイル／統合する。
【０００７】
ＦＣＭＤＢ１の情報は、ＩＣＴシステム４のサーバの状態等が更新された場合に、リアルタイムで更新されることが望まれる。クライアント３がＦＣＭＤＢ１から情報を取得する際に、取得した情報と実際のサーバ等の状態との乖離が発生しないようにするためである。
【０００８】
構成要素情報の変更が発生する場合のＦＣＭＤＢ１の更新の方法として、フェデレーション（Ｆｅｄｅｒａｔｉｏｎ）を行い、ＦＣＭＤＢ１の情報を更新する方法が考えられる。フェデレーションとは、複数のＭＤＲ２、ＦＣＭＤＢ１間でデータをやり取りし、データを連携させる手法である。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平７−２３１３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記フェデレーションを用いた方法では、人手でＭＤＲの情報を更新する場合、更新までのタイムラグが発生してしまう。
そこで、１つの側面では、本発明は、情報処理装置に対する更新指示を検出し、ＦＣＭＤＢの情報を更新することを目的とする。
【課題を解決するための手段】
【００１１】
一態様の情報処理システムは、情報処理装置、格納部、中継部、及び更新部を含む。情報処理装置は、情報処理システムの要素である。格納部は、情報処理システムの構成要素情報として示される情報処理装置に関する情報が統合された統合情報を格納する。中継部は、情報処理装置宛ての構成要素情報を更新する更新コマンドを含む通信情報を受信し、情報処理装置宛ての更新コマンドを含む第１の通信情報と、更新コマンドを含む第２の通信情報とを送信する。更新部は、第２の通信情報を受信し、第２の通信情報に含まれる更新コマンドに基いて、統合情報を更新する。
【発明の効果】
【００１２】
本実施形態に係る情報処理システムによれば、情報処理装置に対する更新指示を検出し、ＦＣＭＤＢの情報を更新することができる。
【図面の簡単な説明】
【００１３】
【図１】複数のＭＤＲを仮想的に統合したＦＣＭＤＢの構成図である。
【図２】本実施形態に係る、情報処理システムの機能ブロック図である。
【図３】ＳＤＮの構成を説明するための図である。
【図４】本実施形態に係る、情報処理システムの構成の一例を示す図である。
【図５】本実施形態に係る、情報処理システムの構成の詳細な一例を示す図である。
【図６】本実施形態に係る、更新コマンドのカプセル化前後のパケットの構成を説明するための図である。
【図７】雛形のデータに更新コマンドの情報を挿入する際の動作を説明するための図である。
【図８】構成情報データベースに格納されるＣＩのデータ形式の一例である。
【図９】構成情報データベースに格納されるＲｅｌａｔｉｏｎｓｈｉｐのデータ形式の一例である
【図１０】二重転送防止機能を説明するための図である。
【図１１】更新検出ルールをスイッチ毎に割り振ることによって、スイッチあたりの負荷を分散させることを説明するための図である。
【図１２】更新コマンドが連続して届く場合の、ある程度の更新コマンドを検出せずにスルーし、他のスイッチに検出させる方法を説明するための図である。
【図１３】更新コマンドの一例を示す図である。
【図１４】更新検出ルールの一例を示す図である。
【図１５】更新コマンドを変換した後のデータの一例を示す図である。
【図１６】ＦＣＭＤＢのデータを更新する前後のＦＣＭＤＢのデータ構造を示す図（その１）である。
【図１７】ＦＣＭＤＢのデータを更新する前後のＦＣＭＤＢのデータ構造を示す図（その２）である。
【図１８】ＦＣＭＤＢのデータを更新する前後のＦＣＭＤＢのデータ構造を示す図（その３）である。
【図１９】ＦＣＭＤＢのデータを更新する前後のＦＣＭＤＢのデータ構造を示す図（その４）である。
【図２０】本実施形態に係る、スイッチにおける動作のフロー図である。
【図２１】本実施形態に係る、コントローラにおける動作のフロー図である。
【図２２】本実施形態に係る、ＦＣＭＤＢにおける動作フロー図である。
【図２３】パケットの二重転送防止のために、パケットに検出済みフラグを付加する方法を採用した場合の、スイッチにおける動作のフロー図である。
【図２４】本実施形態に係る、機器のハードウェア構成図である。
【発明を実施するための形態】
【００１４】
その他のＦＣＭＤＢ１のリアルタイム更新の方法として、ＦＣＭＤＢ１をＰｕｌｌ型ＦＣＭＤＢとして構成する方法が考えられる。この方法ではＦＣＭＤＢ１はリコンサイル結果を保存せず、検索要求ごとに各ＭＤＲ２からデータを取得し、リコンサイル結果を要求元に返す。リコンサイルによるタイムラグはなくなるが、ＭＤＲ２の更新がリアルタイムでないと意味がない。また、検索に要する時間がＰｕｓｈ型ＦＣＭＤＢ（本原稿では単にＦＣＭＤＢと呼ぶ）よりも長くなるため非実用的である。
【００１５】
また、その他のＦＣＭＤＢ１のリアルタイム更新の方法として、各サーバ上のミドルウェア等に更新を検出する仕組みを入れ、更新があった場合は即座にＭＤＲ２に対して更新情報を書き込む方法が考えられる。
【００１６】
しかしながら、この方法では、ミドルウェアに手を加える必要があるため、ミドルウェアのバグが新たな障害の原因になるというリスクがある。そのため、ミドルウェアの更新・メンテナンスに多大な工数を割かなければならないというデメリットがある。
【００１７】
そこで、本実施形態では、情報処理装置に対する更新指示を検出し、ＦＣＭＤＢの情報を更新する技術を提供する。
【００１８】
図２は、本実施形態に係る、情報処理装置の構成の一例を示す図である。
情報処理システム１０１は、情報処理装置１０２、格納部１０３、中継部１０４、更新部１０５、ルール送信部１０６、及び変換部１０７を含む。情報処理装置１０２は、情報処理システム１０１の要素である。格納部１０３は、情報処理システム１０１の構成要素情報として示される情報処理装置１０２に関する情報が統合された統合情報を格納する。
【００１９】
中継部１０４は、情報処理装置１０２宛ての構成要素情報を更新する更新コマンドを含む通信情報を受信し、情報処理装置１０２宛ての更新コマンドを含む第１の通信情報と、更新コマンドを含む第２の通信情報とを送信する。また、中継部１０４は、通信情報を受信した場合、通信情報の転送元が、当該中継部１０４と接続する他の中継部１０４か否かを判定し、通信情報の転送元が、当該中継部１０４と接続する他の中継部１０４ではない場合、受信した通信情報に更新コマンドが含まれるか否かを判定し、受信した通信情報に更新コマンドが含まれる場合、更新コマンドを含む第１の通信情報と、更新コマンドを含む第２の通信情報とを送信する。さらに、中継部１０４は、更新部１０５に第１の通信情報が送信されたことを示す転送済み情報を、第１及び第２の通信情報に付加する。中継部１０４は、第１または第２の通信情報を受信した場合、通信情報に転送済み情報が含まれているか否かを判定し、判定結果に基づいて、受信した通信情報に更新コマンドが含まれるか否かを判定する。さらに、中継部１０４は、通信情報を受信した場合、通信情報の宛先が変換部１０７か否かを判定し、通信情報の宛先が変換部１０７でない場合、受信した通信情報に更新コマンドが含まれるか否かを判定し、受信した通信情報に更新コマンドが含まれる場合、更新コマンドを含む第１の通信情報と、更新コマンドを含む第２の通信情報とを送信する。
【００２０】
更新部１０５は、第２の通信情報を受信し、第２の通信情報に含まれる更新コマンドに基いて、統合情報を更新する。
ルール送信部１０６は、通信情報に更新コマンドが含まれるか否かを中継部１０４が判定するための更新検出ルール、及び、通信情報に更新コマンドが含まれると判定された場合の中継部１０４の動作を規定した動作ルールを、中継部１０４に送信する。中継部１０４は、更新検出ルールに基いて、通信情報に更新コマンドが含まれるか否かを判定し、通信情報に更新コマンドが含まれると判定された場合、動作ルールに基づいて、動作する。
【００２１】
変換部１０７は、第２の通信情報を受信し、第２の通信情報に含まれる更新コマンドを、所定の形式に変換する。更新部１０５は、変換された更新コマンドを用いて、統合情報を更新する。
【００２２】
このように構成することで、既存ミドルウェアには手を加えることなくリアルタイムに情報処理装置１０２に対する更新情報を取得し、格納部１０３の構成情報を最新に保つことができる。
【００２３】
本実施形態にかかる、ＦＣＭＤＢ１とサーバを接続するネットワークの構成について説明する。ＦＣＭＤＢ１とサーバを接続するネットワーク構成の一例として、ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）と呼ばれるネットワーク管理技術を用いることができる。ＳＤＮは、ネットワークの構成や機能をソフトウェアによってプログラミングすることを可能とする技術である。ＳＤＮでは、ネットワーク管理者がネットワーク上を流れるフレームの処理を自由にプログラムで記述できる。これにより、ハードウェア構成を変更することなく、通信経路の変更・制御が可能となる。さらに、ネットワークの機器がＳＤＮに対応していれば、種類によらず機器をＳＤＮ内で一元的に管理することが可能である。
【００２４】
ＳＤＮは、ネットワークの経路制御機能とデータ転送機能を分離して管理する。図３は、ＳＤＮの構成を説明するための図である。
ＳＤＮは、コントローラ６とスイッチ７の２種類のノードから構成される。コントローラ６は、ネットワークの経路制御機能を担う。具体的には、コントローラ６は、スイッチ７の動作ルールを定義して、スイッチ７に配布することによりネットワークの経路制御を行う。動作ルールでは、例えば、スイッチ７が受信したフレームのうち、どの種類のフレームをどのように処理するかが定義される。スイッチ７は、データ転送機能を担い、コントローラ６から配布された動作ルールに従って処理を実行する。
【００２５】
ＳＤＮは、具体的には、ＯｐｅｎＦｌｏｗと呼ばれるＯｐｅｎ  Ｎｅｔｗｏｒｋｉｎｇ  Ｆｏｕｎｄａｔｉｏｎ（ＯＮＦ）が策定している通信プロトコルを用いて実現することができる。
【００２６】
図４は、本実施形態に係る、情報処理システムの構成の一例を示す図である。情報処理システムは、ＦＣＭＤＢ１、ＭＤＲ２、コントローラ６、スイッチ７、サーバ８、オペレータ端末５を含み、ネットワークで接続されている。情報処理システム内のネットワークは、ＳＤＮの技術を用いて構成される。すなわち、コントローラ６は、ネットワークの経路制御機能を持ち、スイッチ７の動作を規定した動作ルールを定義する。スイッチ７は、コントローラ６が定義したルールに基づいて、処理を実行する。各機器の詳細な説明は後ほど説明する。
【００２７】
図４を参照して、本実施形態に係る、更新コマンドが発行された際にサーバ８の情報が更新されるとともに、ＦＣＭＤＢ１の情報が更新される様子を説明する。説明においては、更新コマンドは、サーバ８に保存された情報を更新するために、オペレータ端末５に入力されるものとする。
【００２８】
オペレータ端末５は、サーバ８に対する更新コマンドを取得すると、オペレータ端末５とサーバ８を中継するスイッチ７に更新コマンドを転送する。更新コマンドを受信したスイッチ７は、予め定められた動作ルールに従って、サーバ８、または、当該スイッチ７とサーバ８を中継するスイッチ７に更新コマンドを転送する。それとともに、スイッチ７は、受信した更新コマンドを複製し、複製したコマンドを転送用にカプセル化して、コントローラ６、または、当該スイッチ７とコントローラ６を中継するスイッチ７に転送する。コントローラ６は、カプセル化されたパケットを受信すると、ＦＣＭＤＢ１が認識可能な形式のデータに更新コマンドを変換し、変換したデータをＦＣＭＤＢ１に転送する。ＦＣＭＤＢ１は、変換されたデータを受信すると、受信したデータに基づいて、更新コマンドの内容をデータベースに反映する。
【００２９】
図５は、本実施形態に係る、情報処理システムの構成の詳細な一例を示す図である。情報処理システムは、ＦＣＭＤＢ１、コントローラ６、スイッチ７、サーバ８を含む。ＦＣＭＤＢ１は、格納部１０３、更新部１０５の一例として挙げられる。コントローラ６は、ルール送信部１０６、変換部１０７の一例として挙げられる。スイッチ７は、中継部１０４の一例として挙げられる。サーバ８は、情報処理装置１０２の一例として挙げられる。
【００３０】
先ず、スイッチ７の構成について説明する。
スイッチ７は、更新コマンドを検出する更新検出部６６と更新コマンドをカプセル化してコントローラ６に送信するカプセル化部６７を含む。
【００３１】
更新検出部６６は、スイッチ７が受信したコマンドのうち、更新コマンドを検出する。具体的には、更新検出部６６は、コマンドを受信した場合、更新検出ルールに基づいて、受信したコマンドが更新コマンドか否かを判別する。更新検出ルール及び更新検出ルールに基づいた判定処理の詳細については、後ほど説明する。更新検出部６６は、受信したパケットが更新コマンドであると判別した場合、判別した更新コマンドを複製し、複製した更新コマンドをカプセル化部６７に転送する。それとともに、更新検出部６６は、すべての受信したコマンドを、更新コマンドか否かに関わらず、そのコマンドの宛先に転送する。ここで、更新検知部６６は、複製元の更新コマンドをカプセル化部６７に転送し、複製した更新コマンドを、コマンドの宛先に送信する構成としてもよい。
【００３２】
次に、更新検出ルールについて説明する。
更新検出ルールは、各スイッチ７において、更新コマンドの検出処理が行われる際に用いられる。更新検出ルールは、例えば、ＩＦ−ＴＨＥＮルールなどの形式をもち、スイッチ７を通過するパケットに対しマッチングを行うことが可能なルールである。更新検出ルールは、システムの管理者により作成されてもよいし、自動生成等の他の方法で生成されてもよい。尚、更新検出ルールは、更新検出部６６がこのルールを用いることによって、スイッチ７が受信するコマンドの中から、更新コマンドを検出することができればよく、ＩＦ−ＴＨＥＮの形式に限定されない。
【００３３】
更新検出ルールは、ＦＣＭＤＢ１の記憶部６９の更新検出データベース（以下、更新検出ルールＤＢと記す）６２に記憶される。更新検出ルールＤＢ６２に記憶された更新検出ルールは、スイッチ７のスイッチ制御部６４により取得され、各スイッチ７に配布される。
【００３４】
更新検出ルールは、具体的には例えば、「IF packet contains “update host-address”, THEN forward to YYY」などの形式で与えられる。これは、受信したパケットが、特定の文字列（この例の場合は、「update host-address））を含んでいる場合に、特定の宛先（この例の場合は、「YYY」）に、受信したパケットを転送することを示す。例えば、スイッチ７が受信したコマンドが「update host-address -host-number 1 -address xxxx」であった場合、コマンドに「update host-address」の文字列が含まれているため、スイッチ７は、更新検出ルールに従って、受信したコマンドが更新コマンドであることを検出し、宛先「YYY」に転送する処理を行う。ここで、スイッチ７は、宛先「YYY」に転送する処理において、更新コマンドをカプセル化してから転送する。これは、更新コマンドをそのまま転送すると、転送された更新コマンドは実行可能な状態であるので、転送先で実行される可能性があるためである。
【００３５】
カプセル化部６７は、更新検出部６６から受信した更新コマンドをコントローラ６に転送するために、更新コマンドをカプセル化する。カプセル化とは、パケットに対し，新たなヘッダを付加し、そのヘッダに基づいてデータを送信する技術である。
【００３６】
ここで、本実施形態におけるカプセル化部６７のカプセル化の具体的な動作を説明する。図６は、本実施形態に係る、更新コマンドのカプセル化前後のパケットの構成を説明するための図である。
【００３７】
パケット７５は、カプセル化前の更新コマンドのパケットの一例である。パケット７５は、ヘッダ部７１とデータ部７２から構成される。ヘッダ部７１には、宛先サーバのアドレス、送信元のアドレス、及びその他パケットの通信に必要な制御情報が格納される。データ部７２には、更新コマンドの内容が格納される。
【００３８】
パケット７６は、カプセル化された更新コマンドのパケットの一例である。カプセル化されたパケット７６も、パケット７５と同様にヘッダ部７３とデータ部７４から構成される。ヘッダ部７３は、コントローラ６を宛先として指定した宛先情報を含む、パケットの通信に必要な情報が格納される。
【００３９】
データ部７４は、受信した更新コマンドのパケット７５全体から構成される。図６に示すように、カプセル化後のデータ部７４は、元のパケット７５のヘッダ部７１とデータ部７２とを併せたものになる。
【００４０】
尚、カプセル化後のデータ部７４において、元のパケット７５のヘッダ部７１に相当する部分には、元のパケット７５の宛先情報が格納されている。これにより、カプセル化したパケット７６が元のパケット７５の宛先情報を含むことで、カプセル化したデータを受け取ったコントローラ６が、更新コマンドがどのサーバ８に対するものであったかを把握できるようにする。後ほど説明するが、更新コマンドがどのサーバ８に対するものであるかの情報は、コントローラ６が更新コマンドのデータ形式を変換する際に使用される。尚、元のパケット７５のヘッダ７１部及びデータ部７２は、カプセル化が解除されるまでは参照されない。
【００４１】
次にコントローラ６の構成について説明する。コントローラ６は、スイッチ７に対して、その動作を規定したルールを配布するスイッチ制御部６４と、スイッチ７から受信したカプセル化されたパケット７６を、ＦＣＭＤＢ１が認識可能なデータ形式に変換してＦＣＭＤＢ１に送信するデータ変換部６５を含む。
【００４２】
スイッチ制御部６４は、ＳＤＮにおいて用いられる、スイッチ７の動作を規定した動作ルールをスイッチ７に配布するとともに、スイッチ７が更新コマンドを検出してコントローラ６に転送するためのルールを定めた更新検出ルールを配布する。スイッチ制御部６４は、更新検出ルールをＦＣＭＤＢ１の更新検出ルールＤＢ６２から取得する。更新検出ルールが変更された場合は、スイッチ制御部６４は、変更の内容をＦＣＭＤＢ１の更新検出ルールＤＢ６２に反映する。
また、スイッチ制御部６４は、カプセル化されたパケット７６をスイッチ７から受信し、受信したパケット７６をデータ変換部６５に転送する。
【００４３】
データ変換部６５は、スイッチ制御部６４から受信したカプセル化されたパケット７６をＦＣＭＤＢ１が認識可能な形式の更新データに変換する。データ変換部６５は、カプセル化されたパケット７６をＦＣＭＤＢ１が認識可能な形式に変換した後、変換したデータをＦＣＭＤＢ１のリコンサイル部６３に転送する。
【００４４】
次に、データ変換部６５によるデータ変換について詳細に説明する。
データ変換部６５は、受信したデータをＦＣＭＤＢ１に登録可能な形式に変換するために、更新コマンドの種類毎に対応付けされた、雛形及び変換ルールを保持している。雛形及び変換ルールは、データ変換部６５の記憶領域に記憶される。ここで、ＦＣＭＤＢ１に登録可能な形式とは、例えば、ＸＭＬ形式等である。本実施形態においては、ＸＭＬデータ形式をＦＣＭＤＢ１に登録可能な形式として説明するが、ＦＣＭＤＢ１に登録可能な形式は、ＸＭＬデータ形式に限定されない。また、雛形及び変換ルールは、ＦＣＭＤＢ１の記憶部６９に記憶され、データ変換部６５は、雛形及び変換ルールを使用する際に、それらをＦＣＭＤＢ１の記憶部６９から取得する構成としてもよい。
【００４５】
データ変換部６５は、カプセル化されたパケット７６を受信すると、先ず、受信したパケット７６のカプセル化を解除する。すなわち、データ変換部６５は、カプセル化されたパケット７６からヘッダ部７３を取り除く。ヘッダ部７３が取り除かれたデータは、カプセル化される前の状態の更新コマンドとなる。次に、データ変換部６５は、更新コマンドに対応する雛形のデータ及び変換ルールを記憶部領域から取得する。そして、データ変換部６５は、取得した変換ルールに従って、更新コマンドから必要な情報を抽出し、雛形のデータに挿入する。
【００４６】
雛形のデータに更新コマンドの情報を挿入する際の具体的な動作を図７（ａ）〜図７（ｃ）の例を参照して説明する。図７（ａ）は、変換前の更新コマンドの一例、図７（ｂ）は、更新コマンドに対応する雛形の一例、図７（ｃ）は、変換後のデータの一例を示す。
【００４７】
先ず、データ変換部６５は、変換ルールに従って更新コマンドのヘッダ部７１に含まれていた宛先アドレスを基に、更新コマンドの更新対象を一意に識別するためのＩＤを決定する。ＩＤの決定は、例えば、宛先のアドレスを基に、ＦＣＭＤＢ１から対象サーバのＩＤを検索することによって行う。そして、データ変換部６５は、決定されたＩＤを雛形のデータに挿入する。図７（ｂ）の例では、雛形の「AAA」に、決定された対象サーバのＩＤを挿入する。
【００４８】
次に、データ変換部６５は、更新コマンドのパラメータで与えられた値を、更新コマンドに対応する変換ルールに従って、雛形の適切な箇所に挿入する。図７（ａ）、図７（ｂ）の例では、データ変換部６５は、図７（ａ）の更新コマンドのパラメータ「-host-number」の値「2」を、図７（ｂ）の雛形の「BBB」に挿入し、パラメータ「-address」の値「xxxx」を、雛形の「CCC」に挿入する。挿入後のデータは、図７（ｃ）のようになる。
【００４９】
尚、本実施形態においては、コントローラ６が、カプセル化されたパケット７６の受信及びＦＣＭＤＢ１への更新要求送信処理を行なっているが、これらの処理を行う装置と、ＳＤＮにおけるコントローラ６の処理を行う装置とは別であってもよい。その場合、コントローラ６はＳＤＮの処理のみを行い、別装置がカプセル化されたパケット７６の受信及び更新要求送信処理を行う。また、この別装置は負荷分散・耐故障性向上のため複数存在してもよい。
【００５０】
次に、ＦＣＭＤＢ１の構成について説明する。ＦＣＭＤＢ１は、情報を記憶する記憶部６９と、記憶部６９に対する情報の読み書きを制御する制御部６８とを含む。
記憶部６９は、構成情報データベース（以下、構成情報ＤＢと記す）６１と、更新検出ルールＤＢ６２とを含む。構成情報ＤＢ６１は、ＦＣＭＤＢ１のＣＩの統一のビュー等が記憶されるデータベースである。図８は、構成情報ＤＢ６１に格納されるＣＩのデータ形式の一例である。また、図９は、構成情報ＤＢ６１に格納されるＲｅｌａｔｉｏｎｓｈｉｐのデータ形式の一例である。本実施形態では、図８、図９に示すように、構成情報ＤＢ６１には、ＸＭＬ形式のデータが格納される。
【００５１】
更新検出ルールＤＢ６２は、コントローラ６がスイッチ７を制御するために用いる、スイッチ７の動作を規定した更新検出ルールを格納する。更新検出ルールＤＢ６２は、スイッチ７のスイッチ制御部６４により使用される。
【００５２】
制御部６８は、リコンサイル部６３を含む。リコンサイル部６３は、複数のＭＤＲ２に保存される同一のエンティティを、一つのエンティティとしてマージして構成情報ＤＢ６１に格納するリコンサイル処理を行う。リコンサイル処理には、ＣＩが更新された場合、その内容を構成情報ＤＢ６１に反映する処理も含まれる。本実施形態においては、制御部６８は、リコンサイル処理として、コントローラ６から受信した更新データの内容を構成情報ＤＢ６１に反映または格納する処理を行う。
【００５３】
次に、スイッチ７が、更新コマンドを検出し、更新コマンドをカプセル化してコントローラ６に転送することにより発生する、スイッチ７とネットワークの負荷を軽減する方法について説明する。
【００５４】
図４に示したように、ネットワーク内では、複数のスイッチ７が複数のサーバ間を接続し、ＦＣＭＤＢ１と各サーバは、コントローラ６とスイッチ７を介して接続される。更新コマンドがオペレータ端末５からあるサーバ８に対して発行された場合、更新コマンドは、オペレータ端末５から一つまたは複数のスイッチ７を介してサーバ８に到達する。これは、ある更新コマンドが発行された場合、その更新コマンドがあて先のサーバ８に到達するまでに、複数のスイッチ７が更新コマンドを受信しうることを示している。ここで、仮に、更新コマンドを受信した全てのスイッチ７が、カプセル化された更新コマンドをコントローラ６に送信する場合、ネットワーク内のトラフィックが増加する。
【００５５】
そこで、スイッチ７は、一つの更新コマンドに対して、重複して、スイッチ７からコントローラ６にカプセル化されたコマンドが発行されることを防ぐための二重転送防止機能を持つ。
【００５６】
図１０は、二重転送防止機能を説明するための図である。二重転送防止機能を実現するために、更新コマンドをカプセル化してコントローラ６に転送する処理を行うスイッチ７は、ネットワーク内で、オペレータ端末５から発行された更新コマンドを最初に受信したスイッチ７とする。図１０の例では、オペレータ５が更新コマンドを実行した場合、ネットワーク内で最初に更新コマンドを受信するスイッチ７−１が更新コマンドをカプセル化してコントローラ６に転送する処理を行う。そして、スイッチ７−１から転送された更新コマンドを受信したスイッチ７−３は、サーバ８に更新コマンドを転送する処理を行い、更新コマンドをカプセル化してコントローラ６に転送する処理は行わない。また、スイッチ７−１から送信されたカプセル化されたパケット７６を受信したスイッチ７−２は、受信したパケット７６をコントローラ６に転送する処理を行い、受信したパケット７６をさらにカプセル化してコントローラ６に転送する処理は行わない。
【００５７】
具体的には、各スイッチ７の更新検出部６６は、コマンドを受信した場合、先ず、受信したコマンドがネットワーク内で最初に受信されたコマンドであるか否かを判定する。そして、その判定結果に応じて、更新検出部６６は、受信したコマンドが更新コマンドか否かの判定処理や、その後の処理を行うか否かを判定する。スイッチ７における動作フローの詳細については、後ほど説明する。
【００５８】
スイッチ７の更新検出部６６は、受信した更新コマンドがネットワーク内で最初に受信されたものか否かを判別するために、更新コマンドの転送元がスイッチ７か否かを確認する。更新コマンドの転送元がスイッチ７ではない場合、スイッチ７の更新検出部６６は、受信した更新コマンドはネットワーク内で最初に受信されたものであると判別する。更新コマンドの転送元がスイッチ７の場合、スイッチ７の更新検出部６６は、受信した更新コマンドはネットワーク内で最初に受信されたものではないと判別する。
【００５９】
一方、カプセル化されたパケット７６を受信した場合は、スイッチ７は、カプセル化されたパケット７６のヘッダ部７３に記憶された宛先情報に従って、パケット７６を転送する。その際、スイッチ７は、受信したパケットが更新コマンドか否かの判定や、カプセル化の処理は実行しない。
【００６０】
スイッチ７が、受信したパケットがカプセル化されたパケット７６であるか否かを判定する方法としては、パケットの宛先アドレスを用いる方法が考えられる。
パケットの宛先アドレスを用いる方法は、パケットの宛先アドレスがコントローラ６のアドレスであるか否かをスイッチ７の更新検出部６６が判定し、宛先アドレスがコントローラ６のアドレスであれば、パケットはカプセル化されているものと判別する。宛先アドレスがコントローラ６のアドレスでなければ、スイッチ７は、パケットはカプセル化されていないと判別する。
【００６１】
スイッチ７が、受信した更新コマンドがネットワーク内で最初に受信されたものか否かを判別し、さらに、受信したパケットがカプセル化されたパケット７６であるか否かを判定するその他の方法として、検出済みフラグ（転送済みフラグ）を設ける方法が考えられる。
【００６２】
検出済みフラグを設ける方法は、受信したパケットに対応する更新コマンドがコントローラ６に転送済みであることを示す検出済みフラグを、受信したパケットに付加する方法である。スイッチ７の更新検出部６６は、受信したコマンドが更新コマンドであると判定した場合、受信したコマンドに検出済みフラグを付加する。そして、更新検出部６６は、検出済みフラグを付加した更新コマンドを複製して、複製した更新コマンドをカプセル化部６７に転送するとともに、検出済みフラグを付加した更新コマンドを、宛先のサーバ側に転送する。一方、検出済みフラグが付加されたパケットを受信した場合、スイッチ７は、受信したパケットを宛先のアドレス宛に転送し、受信したパケットが更新コマンドか否かの判定は行わない。検出済みフラグは、スイッチ７が受信したパケット７５のヘッダ部７１に設けてもよい。
【００６３】
次に、本実施形態において、スイッチ７の負荷を分散するための方法を説明する。スイッチ７の負荷を分散するための方法として、ネットワーク内のスイッチ７毎に異なる更新検出ルールを持たせる方法と、更新コマンドが連続して届く場合に、ある程度の更新コマンドを検出せずにスルーし、他のスイッチ７に検出させる方法がある。
【００６４】
先ず、スイッチ７毎に異なる更新検出ルールを持たせる方法について説明する。スイッチ７の１パケットあたりの処理負荷は、スイッチ７が従うルール数が多いほど増加する。すべてのスイッチ７に対して、すべての更新検出ルールを一律で設定する場合、各スイッチ７の処理負荷が増大する。そこで、スイッチ７毎に異なる更新検出ルールをもたせることによって、負荷の分散を図る。
【００６５】
図１１は、更新検出ルールをスイッチ７毎に割り振ることによって、スイッチ７あたりの負荷を分散させることを説明するための図である。図１１の例では、更新検出ルールを１／３ずつスイッチ７に割り振ることで、スイッチ７あたりの負荷を分散する。すなわち、更新検出ルールが９０個あるとして、１〜３０のルールはスイッチグループ１に含まれるスイッチ７に、３１〜６０のルールはスイッチグループ２に含まれるスイッチ７に、６１〜９０のルールはスイッチグループ３に含まれるスイッチ７に設定する。このとき、更新コマンドを発行するオペレータからいずれのサーバに至るどの経路を用いても、すべての更新検出ルールに対して、更新コマンドか否かの判定が行われるように、更新検出ルールを分散する。
【００６６】
次に、更新コマンドが連続して届く場合に、ある程度の更新コマンドを検出せずにスルーし、他のスイッチ７に検出させる方法について説明する。
更新コマンドが連続して届く場合に、次のスイッチ７でも更新コマンドが検出できるのであれば、ある程度のコマンドは検出せずにスルーし、次のスイッチ７に検出させる。これにより、特定のスイッチ７のみに負荷が集中することを防ぐことができる。ここで、次のスイッチ７の「次」とは、更新コマンドが発行された端末から、更新コマンドの宛先のサーバに至る経路上に存在する複数のスイッチ７において、更新コマンドが中継されるスイッチ７の順番において「次」を意味する。
【００６７】
図１２は、更新コマンドが連続して届く場合の、ある程度の更新コマンドを検出せずにスルーし、他のスイッチ７に検出させる方法を説明するための図である。
更新コマンドを発行した端末からコマンドの宛先サーバに至る経路が複数あるのであれば、更新コマンドを最初に受信したスイッチ７は、他のスイッチ７にパケットを振り分ける。具体的には、コマンドを最初に受信したスイッチ７−１０は、更新コマンド検出処理を実行する。そして、スイッチ７−１０は、連続して届いた次のコマンドについては、更新コマンド検出処理は行わず、スイッチ７−１０に接続されるスイッチ７−１１に転送する。そして、転送された更新コマンドを受信したスイッチ７−１１が、更新コマンド検出処理を実行する。さらに、スイッチ７−１０は、連続して届いた次のコマンドを、スイッチ７−１０に接続される別のスイッチ７−１２に転送し、スイッチ７−１２が更新コマンド検出処理を実行する。
【００６８】
連続してコマンドを受信したスイッチ７が、どのスイッチ７に、どのコマンドを転送するかについては、スイッチ７の動作ルールで制御する。更新コマンドを検出する処理を行うスイッチ７は、実行コマンドの到着頻度や各スイッチ７の負荷の状況に応じて、変更してもよい。尚、この方法では、ネットワーク内の全てのスイッチ７が、全ての更新コマンドに対応する検出ルールを保持する。
【００６９】
次に、更新コマンドがオペレータ端末５から発行されてから、ＦＣＭＤＢ１に反映されるまでの流れを、更新コマンドのデータ構造の変化を示しながら説明する。具体的には、図１３〜図１９を参照して、コマンド検出ルール、コマンドの変換、ＦＣＭＤＢ１のデータ更新を説明する。
【００７０】
図１３は、更新コマンドの例、図１４は、更新検出ルールの例、図１５は、更新コマンドを変換した後の、変換された更新コマンドの例、図１６〜図１９は、ＦＣＭＤＢ１のデータを更新する前後のＦＣＭＤＢ１のデータ構造を示す。図１３のコマンドの番号は図１３〜図１９で対応している。ここでは、図１３の５つのコマンドが発行された場合を仮定して、コマンドがスイッチ７で検出され、検出された更新コマンドがＦＣＭＤＢ１に登録可能な形式に変換され、変換されたデータがＦＣＭＤＢ１に登録される際のデータの変化を説明する。
【００７１】
図１３において、コマンド１は、コマンド名が「update host-address」であり、第１パラメータ名が「-host-number」でその値が「2」、第２パラメータ名が「-address」でその値が「192.168.1.1」である。このコマンドは、ホスト番号が「２」のホストのアドレスを「192.168.1.1」に設定するコマンドである。
【００７２】
コマンド２は、コマンド名が「ifconfig」であり、第１パラメータの値が「eth1」、第２パラメータの値が「192.168.1.10」である。このコマンドは、インタフェース名が「eth1」のインタフェースのＩＰアドレスを「192.168.1.10」に設定するコマンドである。
【００７３】
コマンド３は、コマンド名が「xm mem_set」であり、第１パラメータの値が「vm01」、第２パラメータの値が「1024」である。このコマンドは、サーバ名が「vm01」の仮想ホストに対して、メモリの割り当てを「1024」に設定するコマンドである。
【００７４】
コマンド４は、コマンド名が「delete user」であり、第１パラメータ名が「-name」でその値が「user1」である。このコマンドは、ユーザ名が「user1」のユーザを削除するコマンドである。
【００７５】
コマンド５は、コマンド名が「show status」である。サーバのステータスを確認するコマンドである。
【００７６】
図１４は、図１３のコマンド１〜４にそれぞれ対応する更新検出ルールを示す。更新検出ルールには、検出するコマンド名、及び検出した場合の宛先アドレスが記載される。この例の場合、「IF packet contains “コマンド名”, THEN forward to 宛先アドレス」の形式になっている。コマンド名には、更新コマンドの名称が設定される。この例の場合、更新検出ルール１〜４のコマンド名には、図１３のコマンド１〜４に対応する名称が設定されている。宛先アドレスは、コントローラ６のアドレスが設定され、この例の場合、コントローラ６のアドレスは、「192.168.0.1」である。ここで、図１３のコマンド５は、更新コマンドではないので、対応する更新検出ルールは存在しない。
【００７７】
図１５は、図１３のコマンド１〜４にそれぞれ対応するデータ形式の変換の例を示す。データ形式の変換は、コントローラ６のデータ変換部６５により行われる。データ変換部６５は、各コマンドに対応する雛形を取得する。そして、データ変換部６５は、変換ルールに従って、更新コマンドのパラメータの内容を、取得した雛形の特定の位置に挿入する。更新コマンドのパラメータの内容を、雛形のどの位置に挿入するかは、変換ルールにより定義される。
【００７８】
例えば、コマンド１の場合、コマンド１のパラメータ「-host-number」の値「2」は、ＸＭＬの雛形の要素名「address」の属性「id」の属性値に与えられるようにルールとして定義されている。また、パラメータ「-address」の値「192.168.1.1」は、ＸＭＬの雛形の要素名「address」の内容に与えられるようにルールとして定義されている。
【００７９】
コマンド２の場合、コマンド２の第１引数の値「eth1」が、ＸＭＬの雛形の要素名「ipAddress」の属性「id」の属性値に与えられるようにルールとして定義されている。また、第２引数の値「192.168.1.10」は、ＸＭＬの雛形の要素名「ipAddress」の内容に与えられるようにルールとして定義されている。
【００８０】
コマンド３の場合、コマンド３の第１引数の値「vm01」が、ＸＭＬの雛形の要素名「item」の属性「id」の属性値に与えられるようにルールとして定義されている。また、第２引数の値「1024」は、ＸＭＬの雛形の要素名「memory」の内容に与えられるようにルールとして定義されている。
【００８１】
コマンド４の場合、コマンド４のパラメータ「-name」の値「user1」は、ＸＭＬの雛形の要素名「user」の属性「name」の属性値に与えられるようにルールとして定義されている。
【００８２】
図１６〜図１９は、ＦＣＭＤＢ１のデータにおいて、コマンド１〜４の内容を反映する前後のデータの構造を示す図である。すなわち、図１６〜図１９は、図１３のコマンド１〜４に対応する、図１５のＸＭＬデータ１〜４を受信したＦＣＭＤＢ１の制御部６８が、受信した内容を更新する処理をＦＣＭＤＢ１に対して行う際の、更新処理の前後のＦＣＭＤＢ１のデータを示している。
【００８３】
図１６（ａ）は、コマンド１の更新内容が反映される前のＦＣＭＤＢ１のデータの例を示し、図１６（ｂ）は、コマンド１の更新内容が反映された後のＦＣＭＤＢ１のデータの例を示す。更新内容反映前の図１６（ａ）では、要素名「address」の属性「id」の属性値が「2」である要素の内容は「192.168.0.220」となっている。それに対して、更新内容反映後の図１６（ｂ）では、要素名「address」の属性「id」の属性値が「2」である要素の内容は「192.168.1.1」に更新されている。この更新は、図１５のＸＭＬデータ１の内容をＦＣＭＤＢ１のデータに反映した結果である。
【００８４】
図１７（ａ）は、コマンド２の更新内容が反映される前のＦＣＭＤＢ１のデータの例を示し、図１７（ｂ）は、コマンド２の更新内容が反映された後のＦＣＭＤＢ１のデータの例を示す。更新内容反映前の図１７（ａ）では、要素名「ipAddress」の属性「id」の属性値が「2」である要素は存在しない。それに対して、更新内容反映後の図１７（ｂ）では、要素名「ipAddress」の属性「id」の属性値が「2」である要素が追加されており、その要素の内容は「192.168.1.10」となっている。この更新は、図１５のＸＭＬデータ２の内容をＦＣＭＤＢ１のデータに反映した結果である。
【００８５】
図１８（ａ）は、コマンド３の更新内容が反映される前のＦＣＭＤＢ１のデータの例を示し、図１８（ｂ）は、コマンド３の更新内容が反映された後のＦＣＭＤＢ１のデータの例を示す。更新内容反映前の図１８（ａ）では、要素名「memory」の内容は「512MB」となっている。それに対して、更新内容反映後の図１８（ｂ）では、要素名「memory」の内容は「1024MB」に更新されている。この更新は、図１５のＸＭＬデータ３の内容をＦＣＭＤＢ１のデータに反映した結果である。
【００８６】
図１９（ａ）は、コマンド４の更新内容が反映される前のＦＣＭＤＢ１のデータの例を示し、図１９（ｂ）は、コマンド４の更新内容が反映された後のＦＣＭＤＢ１のデータの例を示す。更新内容反映前の図１９（ａ）では、要素名「item」の属性「id」の属性値が「user1」である要素が存在している。それに対して、更新内容反映後の図１９（ｂ）では、要素名「item」の属性「id」の属性値が「user1」である要素の内容は削除され、存在しない。この更新は、図１５のＸＭＬデータ４の内容をＦＣＭＤＢ１のデータに反映した結果である。
【００８７】
次に、スイッチ７における処理の流れについて説明する。図２０は、本実施形態に係る、スイッチ７における動作のフロー図である。
先ず、スイッチ７はパケットを受信すると（Ｓ１３０１）、次の転送先がコントローラ６か否かを判定する（Ｓ１３０２）。具体的には、スイッチ７は、受信したパケットのヘッダ部を参照し、宛先のアドレスがコントローラ６か否かを判定する。
【００８８】
次の転送先がコントローラ６であると判定された場合（Ｓ１３０２でＹｅｓ）、スイッチ７は、受信したパケットをコントローラ６に転送し（Ｓ１３０３）、処理が終了する。
Ｓ１３０２において、次の転送先がコントローラ６でないと判定された場合（Ｓ１３０２でＮｏ）、スイッチ７は、受信したパケットの転送元がスイッチ７か否かを判定する（Ｓ１３０４）。具体的には、スイッチ７は、受信したパケットのヘッダ部を参照し、送信元のアドレスがスイッチ７か否かを判定する。
【００８９】
転送元がスイッチ７であると判定された場合（Ｓ１３０４でＹｅｓ）、受信したパケットを、受信したパケットの宛先であるスイッチ７、コントローラ６、またはサーバ８に転送し（Ｓ１３０３）、処理が終了する。転送元がスイッチ７でないと判定された場合（Ｓ１３０４でＮｏ）、スイッチ７は、受信パケットが更新検出ルールにマッチするか否かを判定する（Ｓ１３０５）。
【００９０】
受信パケットが更新検出ルールにマッチする場合（Ｓ１３０５でＹｅｓ）、スイッチ７は、パケットを複製し、複製したパケットを転送用にカプセル化する（Ｓ１３０６）。
【００９１】
次に、スイッチ７は、更新検出ルールの宛先アドレスに従って、カプセル化したパケットをコントローラ６側に転送する（Ｓ１３０７）。
【００９２】
次に、スイッチ７は、受信したパケットを転送先へ転送し（Ｓ１３０８）、処理は終了する。
Ｓ１３０５で受信したパケットが更新検出ルールにマッチしない場合、スイッチ７は、受信したパケットを転送先へ転送し（Ｓ１３０８）、処理は終了する。
【００９３】
次に、コントローラ６における処理の流れについて説明する。図２１は、本実施形態に係るコントローラ６における動作のフロー図である。
コントローラ６はパケットを受信すると（Ｓ１４０１）、変換ルールを用いてデータをＦＣＭＤＢ１に登録可能な形式に変換する（Ｓ１４０２）。次に、コントローラ６は、ＦＣＭＤＢ１にＳ１４０２で変換したデータを含む登録要求を送信し（Ｓ１４０３）、処理は終了する。
【００９４】
次に、ＦＣＭＤＢ１における処理の流れについて説明する。図２２は、本実施形態に係るＦＣＭＤＢ１における動作フロー図である。
ＦＣＭＤＢ１は、登録要求を受信すると（Ｓ１５０１）、登録要求の内容を構成情報ＤＢ６１に反映する更新処理を行い（Ｓ１５０２）、処理は終了する。
【００９５】
（変形例１）
複数のスイッチ７からコントローラ６に対して更新コマンドを重複して転送することを防ぐために、スイッチ７がパケットに検出済みフラグを付加しておき、検出済みフラグの付いたパケットを受信した場合は、スイッチ７は検出処理を行わない方法も考えられる。
【００９６】
図２３は、パケットの二重転送防止のために、パケットに検出済みフラグを付加する方法を採用した場合の、スイッチ７における動作のフロー図である。
先ず、スイッチ７はパケットを受信すると（Ｓ１６０１）、受信したパケットに検出済みフラグが付加されているか否かを判定する（Ｓ１６０２）。検出済みフラグが受信したパケットに付加されている場合（Ｓ１６０２でＹｅｓ）、スイッチ７は、受信したパケットを、受信したパケットの転送先である、スイッチ７、コントローラ６、または宛先のサーバ８に転送し（Ｓ１６０３）、処理が終了する。
【００９７】
Ｓ１６０２において、検出済みフラグが受信したパケットに付加されていない場合（Ｓ１６０２でＮｏ）、スイッチ７は、受信したパケットが更新検出ルールにマッチするか否かを判定する（Ｓ１６０４）。受信パケットが更新検出ルールにマッチする場合（Ｓ１６０４でＹｅｓ）、スイッチ７は、受信したパケットに検出済みフラグを付加する（Ｓ１６０５）。
【００９８】
次に、スイッチ７は、検出済みフラグを付加したパケットを複製し、複製したパケットを転送用にカプセル化する（Ｓ１６０６）。次に、スイッチ７は、更新検出ルールの宛先アドレスに従って、カプセル化したパケットをコントローラ６側に転送する（Ｓ１６０７）。
【００９９】
次に、スイッチ７は、受信したパケットを転送先へ転送し（Ｓ１６０８）、処理は終了する。Ｓ１６０４で受信したパケットが更新検出ルールにマッチしない場合、受信したパケットを転送先へ転送し（Ｓ１６０８）、処理は終了する。
【０１００】
次に、ＦＣＭＤＢ１、コントローラ６、スイッチ７、及びサーバ８のハードウェア構成について説明する。図２４は、ＦＣＭＤＢ１、コントローラ６、スイッチ７、及びサーバ８のハードウェア構成の一例を示す図である。コンピュータ１００は、図２４に示すように、ＣＰＵ１０１、メモリ１０２、記憶装置１０３、読み取り装置１０４、通信インタフェース１０６、および入出力装置１０７を備える。なお、ＣＰＵ１０１、メモリ１０２、記憶装置１０３、読み取り装置１０４、通信インタフェース１０６、入出力装置１０７は、例えば、バス１０８を介して互いに接続されている。ここで、コンピュータ１００は、ＦＣＭＤＢ１、コントローラ６、スイッチ７、及びサーバ８のハードウェア構成の一例として挙げられる。
【０１０１】
ＣＰＵ１０１は、メモリ１０２を利用して上述のフローチャートの手順を記述したプログラムを実行することにより、制御部６８、スイッチ制御部６４、データ変換部６５、更新検出部６６、カプセル化部６７の一部または全部の機能を提供する。
【０１０２】
メモリ１０２は、例えば半導体メモリであり、ＲＡＭ領域およびＲＯＭ領域を含んで構成される。記憶装置１０３は、例えばハードディスクであり、記憶部６９の機能の一部または全部の機能を提供する。また、データ変換部６５の記憶領域としての一部または全部の機能を提供する。なお、記憶装置１０３は、フラッシュメモリ等の半導体メモリであってもよい。また、記憶装置１０３は、外部記録装置であってもよい。
【０１０３】
読み取り装置１０４は、ＣＰＵ１０１の指示に従って着脱可能記録媒体１０５にアクセスする。着脱可能記録媒体１０５は、たとえば、半導体デバイス（ＵＳＢメモリ等）、磁気的作用により情報が入出力される媒体（磁気ディスク等）、光学的作用により情報が入出力される媒体（ＣＤ−ＲＯＭ、ＤＶＤ等）などにより実現される。
【０１０４】
通信インタフェース１０６は、ＣＰＵ１０１の指示に従ってネットワークを介してデータを送受信する。入出力装置１０７は、例えば、ユーザからの指示を受け付けるデバイスに相当する。
【０１０５】
実施形態を実現するための情報処理プログラムは、例えば、下記の形態でコンピュータ１００に提供される。
（１）記憶装置１０３に予めインストールされている。
（２）着脱可能記録媒体１０５により提供される。
（３）プログラムサーバ１１０から提供される。
【０１０６】
なお、実施形態を実現するための情報処理方法は、複数のコンピュータを利用して上述のフローチャートの処理を提供してもよい。この場合、あるコンピュータが、上述のフローチャートの処理の一部を、ネットワークを介して他のコンピュータに依頼し、その処理結果を受け取るようにしてもよい。
【０１０７】
さらに、実施形態の情報処理システムの一部は、ハードウェアで実現してもよい。或いは、実施形態の情報処理システムは、ソフトウェアおよびハードウェアの組み合わせで実現してもよい。
【０１０８】
尚、本実施形態において、ＦＣＭＤＢ１とサーバ８を接続するネットワークの構成にＳＤＮを用いたが、これに限定されない。また、サーバ８は、例えば、ストレージ装置、ネットワーク機器等の、情報処理システム１０１に含まれる種々の装置でもよい。
【０１０９】
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
上記実施形態に関し、更に以下の付記を開示する。
【０１１０】
（付記１）
情報処理システムの要素である情報処理装置と、
前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報が統合された統合情報を格納する格納部と、
前記情報処理装置宛ての前記構成要素情報を更新する更新コマンドを含む通信情報を受信し、前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する中継部と、
前記第２の通信情報を受信し、該第２の通信情報に含まれる更新コマンドに基いて、前記統合情報を更新する更新部と、
を備えることを特徴とする情報処理システム。
（付記２）
前記情報処理システムは、さらに、
前記通信情報に前記更新コマンドが含まれるか否かを前記中継部が判定するための更新検出ルール、及び、前記通信情報に前記更新コマンドが含まれると判定された場合の前記中継部の動作を規定した動作ルールを、前記中継部に送信するルール送信部
を備え、
前記中継部は、前記更新検出ルールに基いて、前記通信情報に前記更新コマンドが含まれるか否かを判定し、前記通信情報に前記更新コマンドが含まれると判定された場合、前記動作ルールに基づいて、動作する
ことを特徴とする付記１に記載の情報処理システム。
（付記３）
前記中継部は、前記通信情報を受信した場合、該通信情報の転送元が、当該中継部と接続する他の前記中継部か否かを判定し、該通信情報の転送元が、当該中継部と接続する他の前記中継部ではない場合、前記受信した通信情報に前記更新コマンドが含まれるか否かを判定し、前記受信した通信情報に更新コマンドが含まれる場合、前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する
ことを特徴とする付記１または２に記載の情報処理システム。
（付記４）
前記中継部は、
前記第１の通信情報が送信されたことを示す転送済み情報を、前記第１及び第２の通信情報に付加し、
前記第１または第２の通信情報を受信した場合、該通信情報に前記転送済み情報が含まれているか否かを判定し、該判定結果に基づいて、前記受信した通信情報に前記更新コマンドが含まれるか否かを判定する
ことを特徴とする付記１または２に記載の情報処理システム。
（付記５）
前記情報処理システムは、さらに、
前記第２の通信情報を受信し、該第２の通信情報に含まれる前記更新コマンドを、所定の形式に変換する前記変換部
を備え、
前記更新部は、変換された前記更新コマンドを用いて、前記統合情報を更新する
こと特徴とする付記１に記載の情報処理システム。
（付記６）
前記中継部は、前記通信情報を受信した場合、該通信情報の宛先が前記変換部か否かを判定し、前記通信情報の宛先が前記変換部でない場合、前記受信した通信情報に前記更新コマンドが含まれるか否かを判定し、前記受信した通信情報に更新コマンドが含まれる場合、前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する
ことを特徴とする付記５に記載の情報処理システム。
（付記７）
前記ルール送信部は、前記更新検出ルールに対応する更新コマンドに応じて、前記更新検出ルールを複数の前記中継部に振り分ける
ことを特徴とする付記２に記載の情報処理システム。
（付記８）
前記中継部は、前記更新コマンドを連続して受信した場合、後続して受信した前記更新コマンドを、当該中継部と接続する他の前記中継部に転送する
ことを特徴とする付記２に記載の情報処理システム。
（付記９）
情報処理システムの要素である情報処理装置宛ての、前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報を更新する更新コマンドを含む通信情報を受信する受信部と、
前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する送信部と、
を備える中継装置。
（付記１０）
プロセッサにより実行される情報処理方法であって、
中継装置は、情報処理システムの要素である情報処理装置宛ての、前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報を更新する更新コマンドを含む通信情報を受信し、前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信し、
更新装置は、前記第２の通信情報を受信し、該第２の通信情報に含まれる更新コマンドに基いて、前記構成要素情報を統合した統合情報を更新する
処理を実行することを特徴とする情報処理方法。
（付記１１）
プロセッサに、
情報処理システムの要素である情報処理装置宛ての、前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報を更新する更新コマンドを含む通信情報を受信し、
前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する
処理を実行させることを特徴とする情報処理プログラム。
【符号の説明】
【０１１１】
１０１      情報処理システム
１０２      情報処理装置
１０３      格納部
１０４      中継部
１０５      更新部
１０６      ルール送信部
１０７      変換部
【図２】
2014041494.tif 000003
【図３】
2014041494.tif 000004
【図４】
2014041494.tif 000005
【図５】
2014041494.tif 000006
【図６】
2014041494.tif 000007
【図７】
2014041494.tif 000008
【図８】
2014041494.tif 000009
【図９】
2014041494.tif 000010
【図１０】
2014041494.tif 000011
【図１１】
2014041494.tif 000012
【図１２】
2014041494.tif 000013
【図１３】
2014041494.tif 000014
【図１４】
2014041494.tif 000015
【図１５】
2014041494.tif 000016
【図１６】
2014041494.tif 000017
【図１７】
2014041494.tif 000018
【図１８】
2014041494.tif 000019
【図１９】
2014041494.tif 000020
【図２０】
2014041494.tif 000021
【図２１】
2014041494.tif 000022
【図２２】
2014041494.tif 000023
【図２３】
2014041494.tif 000024
【図２４】
2014041494.tif 000025
【図１】
2014041494.tif 000026
【手続補正書】
【提出日】平成25年11月12日(2013.11.12)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関する。
【背景技術】
【０００２】
ＩＣＴ（Ｉｎｆｏｒｍａｔｉｏｎ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）システムの構成要素に関する様々な情報を保持し、統合された構成管理を行うためのデータベースとして、ＣＭＤＢ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｍａｎａｇｅｍｅｎｔ  Ｄａｔａｂａｓｅ）が知られている。ＣＭＤＢは、使用者がＩＣＴシステムの構成要素間の関係を理解することを支援し、情報システムの管理を容易にする。
【０００３】
ＣＭＤＢは、ＩＣＴシステムを構成する部品であるＣＩ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｉｔｅｍ）と、２つのＣＩ間の関係を定義するＲｅｌａｔｉｏｎｓｈｉｐとから構成される構成要素情報を有する。ＣＩは、例えば、ＩＣＴシステムを構成する、サーバ、ストレージ等のハードウェアや、ソフトウェア等の詳細を表す。Ｒｅｌａｔｉｏｎｓｈｉｐは、例えば、ＩＣＴシステムを構成するハードウェアがどのハードウェアと接続されているか等の、ＣＩ間の関係性を表す。
【０００４】
ＣＩに関する情報をまとめて管理するものがＭＤＲ（Ｍａｎａｇｅｍｅｎｔ  Ｄａｔａ  Ｒｅｐｏｓｉｔｏｒｙ）である。ＭＤＲは、ＩＣＴシステムの運用管理データを保持するものであり、運用管理ミドルウェアのＤＢに相当する。ＭＤＲは複数存在し、ＭＤＲごとに、扱うデータの種別・量は異なる。
【０００５】
ＦＣＭＤＢ（Ｆａｄｅｒａｔｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｍａｎａｇｅｍｅｎｔ  Ｄａｔａｂａｓｅ）は、複数のＣＭＤＢまたはＭＤＲを仮想的に統合し、運用管理の効率を高める。ＦＣＭＤＢは、構成要素情報の統一のビューを使用者に提供する。
【０００６】
図１は、複数のＭＤＲを仮想的に統合したＦＣＭＤＢの構成図である。図１に示すように、複数のＭＤＲ２において、同じものを表す同一のエンティティが登録されている場合がある（例えば、ＭＤＲ２（設計情報）のＡ”、ＭＤＲ２（性能情報）のＡ^、ＭＤＲ２（構成情報）のＡ’）。ＦＣＭＤＢ１は、このような複数のＭＤＲ２に保存される同一のエンティティを、一つのエンティティとしてマージして登録する。このようなマージ処理をリコンサイルと呼ぶ。ＦＣＭＤＢ１は、ＣＩ単位でデータをリコンサイル／統合する。
【０００７】
ＦＣＭＤＢ１の情報は、ＩＣＴシステム４のサーバの状態等が更新された場合に、リアルタイムで更新されることが望まれる。クライアント３がＦＣＭＤＢ１から情報を取得する際に、取得した情報と実際のサーバ等の状態との乖離が発生しないようにするためである。
【０００８】
構成要素情報の変更が発生する場合のＦＣＭＤＢ１の更新の方法として、フェデレーション（Ｆｅｄｅｒａｔｉｏｎ）を行い、ＦＣＭＤＢ１の情報を更新する方法が考えられる。フェデレーションとは、複数のＭＤＲ２、ＦＣＭＤＢ１間でデータをやり取りし、データを連携させる手法である。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平７−２３１３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記フェデレーションを用いた方法では、人手でＭＤＲの情報を更新する場合、更新までのタイムラグが発生してしまう。
【００１１】
そこで、１つの側面では、本発明は、情報処理装置に対する更新指示を検出し、ＦＣＭＤＢの情報を更新することを目的とする。
【課題を解決するための手段】
【００１２】
一態様の情報処理システムは、情報処理装置、格納部、中継部、及び更新部を含む。情報処理装置は、情報処理システムの要素である。格納部は、情報処理システムの構成要素情報として示される情報処理装置に関する情報が統合された統合情報を格納する。中継部は、情報処理装置宛ての構成要素情報を更新する更新コマンドを含む通信情報を受信し、情報処理装置宛ての更新コマンドを含む第１の通信情報と、更新コマンドを含む第２の通信情報とを送信する。更新部は、第２の通信情報を受信し、第２の通信情報に含まれる更新コマンドに基いて、統合情報を更新する。
【発明の効果】
【００１３】
本実施形態に係る情報処理システムによれば、情報処理装置に対する更新指示を検出し、ＦＣＭＤＢの情報を更新することができる。
【図面の簡単な説明】
【００１４】
【図１】複数のＭＤＲを仮想的に統合したＦＣＭＤＢの構成図である。
【図２】本実施形態に係る、情報処理システムの機能ブロック図である。
【図３】ＳＤＮの構成を説明するための図である。
【図４】本実施形態に係る、情報処理システムの構成の一例を示す図である。
【図５】本実施形態に係る、情報処理システムの構成の詳細な一例を示す図である。
【図６】本実施形態に係る、更新コマンドのカプセル化前後のパケットの構成を説明するための図である。
【図７】雛形のデータに更新コマンドの情報を挿入する際の動作を説明するための図である。
【図８】構成情報データベースに格納されるＣＩのデータ形式の一例である。
【図９】構成情報データベースに格納されるＲｅｌａｔｉｏｎｓｈｉｐのデータ形式の一例である
【図１０】二重転送防止機能を説明するための図である。
【図１１】更新検出ルールをスイッチ毎に割り振ることによって、スイッチあたりの負荷を分散させることを説明するための図である。
【図１２】更新コマンドが連続して届く場合の、ある程度の更新コマンドを検出せずにスルーし、他のスイッチに検出させる方法を説明するための図である。
【図１３】更新コマンドの一例を示す図である。
【図１４】更新検出ルールの一例を示す図である。
【図１５】更新コマンドを変換した後のデータの一例を示す図である。
【図１６】ＦＣＭＤＢのデータを更新する前後のＦＣＭＤＢのデータ構造を示す図（その１）である。
【図１７】ＦＣＭＤＢのデータを更新する前後のＦＣＭＤＢのデータ構造を示す図（その２）である。
【図１８】ＦＣＭＤＢのデータを更新する前後のＦＣＭＤＢのデータ構造を示す図（その３）である。
【図１９】ＦＣＭＤＢのデータを更新する前後のＦＣＭＤＢのデータ構造を示す図（その４）である。
【図２０】本実施形態に係る、スイッチにおける動作のフロー図である。
【図２１】本実施形態に係る、コントローラにおける動作のフロー図である。
【図２２】本実施形態に係る、ＦＣＭＤＢにおける動作フロー図である。
【図２３】パケットの二重転送防止のために、パケットに検出済みフラグを付加する方法を採用した場合の、スイッチにおける動作のフロー図である。
【図２４】本実施形態に係る、機器のハードウェア構成図である。
【発明を実施するための形態】
【００１５】
その他のＦＣＭＤＢ１のリアルタイム更新の方法として、ＦＣＭＤＢ１をＰｕｌｌ型ＦＣＭＤＢとして構成する方法が考えられる。この方法ではＦＣＭＤＢ１はリコンサイル結果を保存せず、検索要求ごとに各ＭＤＲ２からデータを取得し、リコンサイル結果を要求元に返す。リコンサイルによるタイムラグはなくなるが、ＭＤＲ２の更新がリアルタイムでないと意味がない。また、検索に要する時間がＰｕｓｈ型ＦＣＭＤＢ（本原稿では単にＦＣＭＤＢと呼ぶ）よりも長くなるため非実用的である。
【００１６】
また、その他のＦＣＭＤＢ１のリアルタイム更新の方法として、各サーバ上のミドルウェア等に更新を検出する仕組みを入れ、更新があった場合は即座にＭＤＲ２に対して更新情報を書き込む方法が考えられる。
【００１７】
しかしながら、この方法では、ミドルウェアに手を加える必要があるため、ミドルウェアのバグが新たな障害の原因になるというリスクがある。そのため、ミドルウェアの更新・メンテナンスに多大な工数を割かなければならないというデメリットがある。
【００１８】
そこで、本実施形態では、情報処理装置に対する更新指示を検出し、ＦＣＭＤＢの情報を更新する技術を提供する。
【００１９】
図２は、本実施形態に係る、情報処理装置の構成の一例を示す図である。
情報処理システム１０１は、情報処理装置１０２、格納部１０３、中継部１０４、更新部１０５、ルール送信部１０６、及び変換部１０７を含む。情報処理装置１０２は、情報処理システム１０１の要素である。格納部１０３は、情報処理システム１０１の構成要素情報として示される情報処理装置１０２に関する情報が統合された統合情報を格納する。
【００２０】
中継部１０４は、情報処理装置１０２宛ての構成要素情報を更新する更新コマンドを含む通信情報を受信し、情報処理装置１０２宛ての更新コマンドを含む第１の通信情報と、更新コマンドを含む第２の通信情報とを送信する。また、中継部１０４は、通信情報を受信した場合、通信情報の転送元が、当該中継部１０４と接続する他の中継部１０４か否かを判定し、通信情報の転送元が、当該中継部１０４と接続する他の中継部１０４ではない場合、受信した通信情報に更新コマンドが含まれるか否かを判定し、受信した通信情報に更新コマンドが含まれる場合、更新コマンドを含む第１の通信情報と、更新コマンドを含む第２の通信情報とを送信する。さらに、中継部１０４は、更新部１０５に第１の通信情報が送信されたことを示す転送済み情報を、第１及び第２の通信情報に付加する。中継部１０４は、第１または第２の通信情報を受信した場合、通信情報に転送済み情報が含まれているか否かを判定し、判定結果に基づいて、受信した通信情報に更新コマンドが含まれるか否かを判定する。さらに、中継部１０４は、通信情報を受信した場合、通信情報の宛先が変換部１０７か否かを判定し、通信情報の宛先が変換部１０７でない場合、受信した通信情報に更新コマンドが含まれるか否かを判定し、受信した通信情報に更新コマンドが含まれる場合、更新コマンドを含む第１の通信情報と、更新コマンドを含む第２の通信情報とを送信する。
【００２１】
更新部１０５は、第２の通信情報を受信し、第２の通信情報に含まれる更新コマンドに基いて、統合情報を更新する。
【００２２】
ルール送信部１０６は、通信情報に更新コマンドが含まれるか否かを中継部１０４が判定するための更新検出ルール、及び、通信情報に更新コマンドが含まれると判定された場合の中継部１０４の動作を規定した動作ルールを、中継部１０４に送信する。中継部１０４は、更新検出ルールに基いて、通信情報に更新コマンドが含まれるか否かを判定し、通信情報に更新コマンドが含まれると判定された場合、動作ルールに基づいて、動作する。
【００２３】
変換部１０７は、第２の通信情報を受信し、第２の通信情報に含まれる更新コマンドを、所定の形式に変換する。更新部１０５は、変換された更新コマンドを用いて、統合情報を更新する。
【００２４】
このように構成することで、既存ミドルウェアには手を加えることなくリアルタイムに情報処理装置１０２に対する更新情報を取得し、格納部１０３の構成情報を最新に保つことができる。
【００２５】
本実施形態にかかる、ＦＣＭＤＢ１とサーバを接続するネットワークの構成について説明する。ＦＣＭＤＢ１とサーバを接続するネットワーク構成の一例として、ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）と呼ばれるネットワーク管理技術を用いることができる。ＳＤＮは、ネットワークの構成や機能をソフトウェアによってプログラミングすることを可能とする技術である。ＳＤＮでは、ネットワーク管理者がネットワーク上を流れるフレームの処理を自由にプログラムで記述できる。これにより、ハードウェア構成を変更することなく、通信経路の変更・制御が可能となる。さらに、ネットワークの機器がＳＤＮに対応していれば、種類によらず機器をＳＤＮ内で一元的に管理することが可能である。
【００２６】
ＳＤＮは、ネットワークの経路制御機能とデータ転送機能を分離して管理する。図３は、ＳＤＮの構成を説明するための図である。
【００２７】
ＳＤＮは、コントローラ６とスイッチ７の２種類のノードから構成される。コントローラ６は、ネットワークの経路制御機能を担う。具体的には、コントローラ６は、スイッチ７の動作ルールを定義して、スイッチ７に配布することによりネットワークの経路制御を行う。動作ルールでは、例えば、スイッチ７が受信したフレームのうち、どの種類のフレームをどのように処理するかが定義される。スイッチ７は、データ転送機能を担い、コントローラ６から配布された動作ルールに従って処理を実行する。
【００２８】
ＳＤＮは、具体的には、ＯｐｅｎＦｌｏｗと呼ばれるＯｐｅｎ  Ｎｅｔｗｏｒｋｉｎｇ  Ｆｏｕｎｄａｔｉｏｎ（ＯＮＦ）が策定している通信プロトコルを用いて実現することができる。
【００２９】
図４は、本実施形態に係る、情報処理システムの構成の一例を示す図である。情報処理システムは、ＦＣＭＤＢ１、ＭＤＲ２、コントローラ６、スイッチ７、サーバ８、オペレータ端末５を含み、ネットワークで接続されている。情報処理システム内のネットワークは、ＳＤＮの技術を用いて構成される。すなわち、コントローラ６は、ネットワークの経路制御機能を持ち、スイッチ７の動作を規定した動作ルールを定義する。スイッチ７は、コントローラ６が定義したルールに基づいて、処理を実行する。各機器の詳細な説明は後ほど説明する。
【００３０】
図４を参照して、本実施形態に係る、更新コマンドが発行された際にサーバ８の情報が更新されるとともに、ＦＣＭＤＢ１の情報が更新される様子を説明する。説明においては、更新コマンドは、サーバ８に保存された情報を更新するために、オペレータ端末５に入力されるものとする。
【００３１】
オペレータ端末５は、サーバ８に対する更新コマンドを取得すると、オペレータ端末５とサーバ８を中継するスイッチ７に更新コマンドを転送する。更新コマンドを受信したスイッチ７は、予め定められた動作ルールに従って、サーバ８、または、当該スイッチ７とサーバ８を中継するスイッチ７に更新コマンドを転送する。それとともに、スイッチ７は、受信した更新コマンドを複製し、複製したコマンドを転送用にカプセル化して、コントローラ６、または、当該スイッチ７とコントローラ６を中継するスイッチ７に転送する。コントローラ６は、カプセル化されたパケットを受信すると、ＦＣＭＤＢ１が認識可能な形式のデータに更新コマンドを変換し、変換したデータをＦＣＭＤＢ１に転送する。ＦＣＭＤＢ１は、変換されたデータを受信すると、受信したデータに基づいて、更新コマンドの内容をデータベースに反映する。
【００３２】
図５は、本実施形態に係る、情報処理システムの構成の詳細な一例を示す図である。情報処理システムは、ＦＣＭＤＢ１、コントローラ６、スイッチ７、サーバ８を含む。ＦＣＭＤＢ１は、格納部１０３、更新部１０５の一例として挙げられる。コントローラ６は、ルール送信部１０６、変換部１０７の一例として挙げられる。スイッチ７は、中継部１０４の一例として挙げられる。サーバ８は、情報処理装置１０２の一例として挙げられる。
【００３３】
先ず、スイッチ７の構成について説明する。
スイッチ７は、更新コマンドを検出する更新検出部６６と更新コマンドをカプセル化してコントローラ６に送信するカプセル化部６７を含む。
【００３４】
更新検出部６６は、スイッチ７が受信したコマンドのうち、更新コマンドを検出する。具体的には、更新検出部６６は、コマンドを受信した場合、更新検出ルールに基づいて、受信したコマンドが更新コマンドか否かを判別する。更新検出ルール及び更新検出ルールに基づいた判定処理の詳細については、後ほど説明する。更新検出部６６は、受信したパケットが更新コマンドであると判別した場合、判別した更新コマンドを複製し、複製した更新コマンドをカプセル化部６７に転送する。それとともに、更新検出部６６は、すべての受信したコマンドを、更新コマンドか否かに関わらず、そのコマンドの宛先に転送する。ここで、更新検出部６６は、複製元の更新コマンドをカプセル化部６７に転送し、複製した更新コマンドを、コマンドの宛先に送信する構成としてもよい。
【００３５】
次に、更新検出ルールについて説明する。
更新検出ルールは、各スイッチ７において、更新コマンドの検出処理が行われる際に用いられる。更新検出ルールは、例えば、ＩＦ−ＴＨＥＮルールなどの形式をもち、スイッチ７を通過するパケットに対しマッチングを行うことが可能なルールである。更新検出ルールは、システムの管理者により作成されてもよいし、自動生成等の他の方法で生成されてもよい。尚、更新検出ルールは、更新検出部６６がこのルールを用いることによって、スイッチ７が受信するコマンドの中から、更新コマンドを検出することができればよく、ＩＦ−ＴＨＥＮの形式に限定されない。
【００３６】
更新検出ルールは、ＦＣＭＤＢ１の記憶部６９の更新検出データベース（以下、更新検出ルールＤＢと記す）６２に記憶される。更新検出ルールＤＢ６２に記憶された更新検出ルールは、スイッチ７のスイッチ制御部６４により取得され、各スイッチ７に配布される。
【００３７】
更新検出ルールは、具体的には例えば、「IF packet contains “update host-address”, THEN forward to YYY」などの形式で与えられる。これは、受信したパケットが、特定の文字列（この例の場合は、「update host-address））を含んでいる場合に、特定の宛先（この例の場合は、「YYY」）に、受信したパケットを転送することを示す。例えば、スイッチ７が受信したコマンドが「update host-address -host-number 1 -address xxxx」であった場合、コマンドに「update host-address」の文字列が含まれているため、スイッチ７は、更新検出ルールに従って、受信したコマンドが更新コマンドであることを検出し、宛先「YYY」に転送する処理を行う。ここで、スイッチ７は、宛先「YYY」に転送する処理において、更新コマンドをカプセル化してから転送する。これは、更新コマンドをそのまま転送すると、転送された更新コマンドは実行可能な状態であるので、転送先で実行される可能性があるためである。
【００３８】
カプセル化部６７は、更新検出部６６から受信した更新コマンドをコントローラ６に転送するために、更新コマンドをカプセル化する。カプセル化とは、パケットに対し，新たなヘッダを付加し、そのヘッダに基づいてデータを送信する技術である。
【００３９】
ここで、本実施形態におけるカプセル化部６７のカプセル化の具体的な動作を説明する。図６は、本実施形態に係る、更新コマンドのカプセル化前後のパケットの構成を説明するための図である。
【００４０】
パケット７５は、カプセル化前の更新コマンドのパケットの一例である。パケット７５は、ヘッダ部７１とデータ部７２から構成される。ヘッダ部７１には、宛先サーバのアドレス、送信元のアドレス、及びその他パケットの通信に必要な制御情報が格納される。データ部７２には、更新コマンドの内容が格納される。
【００４１】
パケット７６は、カプセル化された更新コマンドのパケットの一例である。カプセル化されたパケット７６も、パケット７５と同様にヘッダ部７３とデータ部７４から構成される。ヘッダ部７３は、コントローラ６を宛先として指定した宛先情報を含む、パケットの通信に必要な情報が格納される。
【００４２】
データ部７４は、受信した更新コマンドのパケット７５全体から構成される。図６に示すように、カプセル化後のデータ部７４は、元のパケット７５のヘッダ部７１とデータ部７２とを併せたものになる。
【００４３】
尚、カプセル化後のデータ部７４において、元のパケット７５のヘッダ部７１に相当する部分には、元のパケット７５の宛先情報が格納されている。これにより、カプセル化したパケット７６が元のパケット７５の宛先情報を含むことで、カプセル化したデータを受け取ったコントローラ６が、更新コマンドがどのサーバ８に対するものであったかを把握できるようにする。後ほど説明するが、更新コマンドがどのサーバ８に対するものであるかの情報は、コントローラ６が更新コマンドのデータ形式を変換する際に使用される。尚、元のパケット７５のヘッダ部７１及びデータ部７２は、カプセル化が解除されるまでは参照されない。
【００４４】
次にコントローラ６の構成について説明する。コントローラ６は、スイッチ７に対して、その動作を規定したルールを配布するスイッチ制御部６４と、スイッチ７から受信したカプセル化されたパケット７６を、ＦＣＭＤＢ１が認識可能なデータ形式に変換してＦＣＭＤＢ１に送信するデータ変換部６５を含む。
【００４５】
スイッチ制御部６４は、ＳＤＮにおいて用いられる、スイッチ７の動作を規定した動作ルールをスイッチ７に配布するとともに、スイッチ７が更新コマンドを検出してコントローラ６に転送するためのルールを定めた更新検出ルールを配布する。スイッチ制御部６４は、更新検出ルールをＦＣＭＤＢ１の更新検出ルールＤＢ６２から取得する。更新検出ルールが変更された場合は、スイッチ制御部６４は、変更の内容をＦＣＭＤＢ１の更新検出ルールＤＢ６２に反映する。
【００４６】
また、スイッチ制御部６４は、カプセル化されたパケット７６をスイッチ７から受信し、受信したパケット７６をデータ変換部６５に転送する。
【００４７】
データ変換部６５は、スイッチ制御部６４から受信したカプセル化されたパケット７６をＦＣＭＤＢ１が認識可能な形式の更新データに変換する。データ変換部６５は、カプセル化されたパケット７６をＦＣＭＤＢ１が認識可能な形式に変換した後、変換したデータをＦＣＭＤＢ１のリコンサイル部６３に転送する。
【００４８】
次に、データ変換部６５によるデータ変換について詳細に説明する。
データ変換部６５は、受信したデータをＦＣＭＤＢ１に登録可能な形式に変換するために、更新コマンドの種類毎に対応付けされた、雛形及び変換ルールを保持している。雛形及び変換ルールは、データ変換部６５の記憶領域に記憶される。ここで、ＦＣＭＤＢ１に登録可能な形式とは、例えば、ＸＭＬ形式等である。本実施形態においては、ＸＭＬデータ形式をＦＣＭＤＢ１に登録可能な形式として説明するが、ＦＣＭＤＢ１に登録可能な形式は、ＸＭＬデータ形式に限定されない。また、雛形及び変換ルールは、ＦＣＭＤＢ１の記憶部６９に記憶され、データ変換部６５は、雛形及び変換ルールを使用する際に、それらをＦＣＭＤＢ１の記憶部６９から取得する構成としてもよい。
【００４９】
データ変換部６５は、カプセル化されたパケット７６を受信すると、先ず、受信したパケット７６のカプセル化を解除する。すなわち、データ変換部６５は、カプセル化されたパケット７６からヘッダ部７３を取り除く。ヘッダ部７３が取り除かれたデータは、カプセル化される前の状態の更新コマンドとなる。次に、データ変換部６５は、更新コマンドに対応する雛形のデータ及び変換ルールを記憶部領域から取得する。そして、データ変換部６５は、取得した変換ルールに従って、更新コマンドから必要な情報を抽出し、雛形のデータに挿入する。
【００５０】
雛形のデータに更新コマンドの情報を挿入する際の具体的な動作を図７（ａ）〜図７（ｃ）の例を参照して説明する。図７（ａ）は、変換前の更新コマンドの一例、図７（ｂ）は、更新コマンドに対応する雛形の一例、図７（ｃ）は、変換後のデータの一例を示す。
【００５１】
先ず、データ変換部６５は、変換ルールに従って更新コマンドのヘッダ部７１に含まれていた宛先アドレスを基に、更新コマンドの更新対象を一意に識別するためのＩＤを決定する。ＩＤの決定は、例えば、宛先のアドレスを基に、ＦＣＭＤＢ１から対象サーバのＩＤを検索することによって行う。そして、データ変換部６５は、決定されたＩＤを雛形のデータに挿入する。図７（ｂ）の例では、雛形の「AAA」に、決定された対象サーバのＩＤを挿入する。
【００５２】
次に、データ変換部６５は、更新コマンドのパラメータで与えられた値を、更新コマンドに対応する変換ルールに従って、雛形の適切な箇所に挿入する。図７（ａ）、図７（ｂ）の例では、データ変換部６５は、図７（ａ）の更新コマンドのパラメータ「-host-number」の値「2」を、図７（ｂ）の雛形の「BBB」に挿入し、パラメータ「-address」の値「xxxx」を、雛形の「CCC」に挿入する。挿入後のデータは、図７（ｃ）のようになる。
【００５３】
尚、本実施形態においては、コントローラ６が、カプセル化されたパケット７６の受信及びＦＣＭＤＢ１への更新要求送信処理を行なっているが、これらの処理を行う装置と、ＳＤＮにおけるコントローラ６の処理を行う装置とは別であってもよい。その場合、コントローラ６はＳＤＮの処理のみを行い、別装置がカプセル化されたパケット７６の受信及び更新要求送信処理を行う。また、この別装置は負荷分散・耐故障性向上のため複数存在してもよい。
【００５４】
次に、ＦＣＭＤＢ１の構成について説明する。ＦＣＭＤＢ１は、情報を記憶する記憶部６９と、記憶部６９に対する情報の読み書きを制御する制御部６８とを含む。
【００５５】
記憶部６９は、構成情報データベース（以下、構成情報ＤＢと記す）６１と、更新検出ルールＤＢ６２とを含む。構成情報ＤＢ６１は、ＦＣＭＤＢ１のＣＩの統一のビュー等が記憶されるデータベースである。図８は、構成情報ＤＢ６１に格納されるＣＩのデータ形式の一例である。また、図９は、構成情報ＤＢ６１に格納されるＲｅｌａｔｉｏｎｓｈｉｐのデータ形式の一例である。本実施形態では、図８、図９に示すように、構成情報ＤＢ６１には、ＸＭＬ形式のデータが格納される。
【００５６】
更新検出ルールＤＢ６２は、コントローラ６がスイッチ７を制御するために用いる、スイッチ７の動作を規定した更新検出ルールを格納する。更新検出ルールＤＢ６２は、スイッチ７のスイッチ制御部６４により使用される。
【００５７】
制御部６８は、リコンサイル部６３を含む。リコンサイル部６３は、複数のＭＤＲ２に保存される同一のエンティティを、一つのエンティティとしてマージして構成情報ＤＢ６１に格納するリコンサイル処理を行う。リコンサイル処理には、ＣＩが更新された場合、その内容を構成情報ＤＢ６１に反映する処理も含まれる。本実施形態においては、制御部６８は、リコンサイル処理として、コントローラ６から受信した更新データの内容を構成情報ＤＢ６１に反映または格納する処理を行う。
【００５８】
次に、スイッチ７が、更新コマンドを検出し、更新コマンドをカプセル化してコントローラ６に転送することにより発生する、スイッチ７とネットワークの負荷を軽減する方法について説明する。
【００５９】
図４に示したように、ネットワーク内では、複数のスイッチ７が複数のサーバ間を接続し、ＦＣＭＤＢ１と各サーバは、コントローラ６とスイッチ７を介して接続される。更新コマンドがオペレータ端末５からあるサーバ８に対して発行された場合、更新コマンドは、オペレータ端末５から一つまたは複数のスイッチ７を介してサーバ８に到達する。これは、ある更新コマンドが発行された場合、その更新コマンドがあて先のサーバ８に到達するまでに、複数のスイッチ７が更新コマンドを受信しうることを示している。ここで、仮に、更新コマンドを受信した全てのスイッチ７が、カプセル化された更新コマンドをコントローラ６に送信する場合、ネットワーク内のトラフィックが増加する。
【００６０】
そこで、スイッチ７は、一つの更新コマンドに対して、重複して、スイッチ７からコントローラ６にカプセル化されたコマンドが発行されることを防ぐための二重転送防止機能を持つ。
【００６１】
図１０は、二重転送防止機能を説明するための図である。二重転送防止機能を実現するために、更新コマンドをカプセル化してコントローラ６に転送する処理を行うスイッチ７は、ネットワーク内で、オペレータ端末５から発行された更新コマンドを最初に受信したスイッチ７とする。図１０の例では、オペレータ端末５が更新コマンドを実行した場合、ネットワーク内で最初に更新コマンドを受信するスイッチ７−１が更新コマンドをカプセル化してコントローラ６に転送する処理を行う。そして、スイッチ７−１から転送された更新コマンドを受信したスイッチ７−３は、サーバ８に更新コマンドを転送する処理を行い、更新コマンドをカプセル化してコントローラ６に転送する処理は行わない。また、スイッチ７−１から送信されたカプセル化されたパケット７６を受信したスイッチ７−２は、受信したパケット７６をコントローラ６に転送する処理を行い、受信したパケット７６をさらにカプセル化してコントローラ６に転送する処理は行わない。
【００６２】
具体的には、各スイッチ７の更新検出部６６は、コマンドを受信した場合、先ず、受信したコマンドがネットワーク内で最初に受信されたコマンドであるか否かを判定する。そして、その判定結果に応じて、更新検出部６６は、受信したコマンドが更新コマンドか否かの判定処理や、その後の処理を行うか否かを判定する。スイッチ７における動作フローの詳細については、後ほど説明する。
【００６３】
スイッチ７の更新検出部６６は、受信した更新コマンドがネットワーク内で最初に受信されたものか否かを判別するために、更新コマンドの転送元がスイッチ７か否かを確認する。更新コマンドの転送元がスイッチ７ではない場合、スイッチ７の更新検出部６６は、受信した更新コマンドはネットワーク内で最初に受信されたものであると判別する。更新コマンドの転送元がスイッチ７の場合、スイッチ７の更新検出部６６は、受信した更新コマンドはネットワーク内で最初に受信されたものではないと判別する。
【００６４】
一方、カプセル化されたパケット７６を受信した場合は、スイッチ７は、カプセル化されたパケット７６のヘッダ部７３に記憶された宛先情報に従って、パケット７６を転送する。その際、スイッチ７は、受信したパケットが更新コマンドか否かの判定や、カプセル化の処理は実行しない。
【００６５】
スイッチ７が、受信したパケットがカプセル化されたパケット７６であるか否かを判定する方法としては、パケットの宛先アドレスを用いる方法が考えられる。
【００６６】
パケットの宛先アドレスを用いる方法は、パケットの宛先アドレスがコントローラ６のアドレスであるか否かをスイッチ７の更新検出部６６が判定し、宛先アドレスがコントローラ６のアドレスであれば、パケットはカプセル化されているものと判別する。宛先アドレスがコントローラ６のアドレスでなければ、スイッチ７は、パケットはカプセル化されていないと判別する。
【００６７】
スイッチ７が、受信した更新コマンドがネットワーク内で最初に受信されたものか否かを判別し、さらに、受信したパケットがカプセル化されたパケット７６であるか否かを判定するその他の方法として、検出済みフラグ（転送済みフラグ）を設ける方法が考えられる。
【００６８】
検出済みフラグを設ける方法は、受信したパケットに対応する更新コマンドがコントローラ６に転送済みであることを示す検出済みフラグを、受信したパケットに付加する方法である。スイッチ７の更新検出部６６は、受信したコマンドが更新コマンドであると判定した場合、受信したコマンドに検出済みフラグを付加する。そして、更新検出部６６は、検出済みフラグを付加した更新コマンドを複製して、複製した更新コマンドをカプセル化部６７に転送するとともに、検出済みフラグを付加した更新コマンドを、宛先のサーバ側に転送する。一方、検出済みフラグが付加されたパケットを受信した場合、スイッチ７は、受信したパケットを宛先のアドレス宛に転送し、受信したパケットが更新コマンドか否かの判定は行わない。検出済みフラグは、スイッチ７が受信したパケット７５のヘッダ部７１に設けてもよい。
【００６９】
次に、本実施形態において、スイッチ７の負荷を分散するための方法を説明する。スイッチ７の負荷を分散するための方法として、ネットワーク内のスイッチ７毎に異なる更新検出ルールを持たせる方法と、更新コマンドが連続して届く場合に、ある程度の更新コマンドを検出せずにスルーし、他のスイッチ７に検出させる方法がある。
【００７０】
先ず、スイッチ７毎に異なる更新検出ルールを持たせる方法について説明する。スイッチ７の１パケットあたりの処理負荷は、スイッチ７が従うルール数が多いほど増加する。すべてのスイッチ７に対して、すべての更新検出ルールを一律で設定する場合、各スイッチ７の処理負荷が増大する。そこで、スイッチ７毎に異なる更新検出ルールをもたせることによって、負荷の分散を図る。
【００７１】
図１１は、更新検出ルールをスイッチ７毎に割り振ることによって、スイッチ７あたりの負荷を分散させることを説明するための図である。図１１の例では、更新検出ルールを１／３ずつスイッチ７に割り振ることで、スイッチ７あたりの負荷を分散する。すなわち、更新検出ルールが９０個あるとして、１〜３０のルールはスイッチグループ１に含まれるスイッチ７に、３１〜６０のルールはスイッチグループ２に含まれるスイッチ７に、６１〜９０のルールはスイッチグループ３に含まれるスイッチ７に設定する。このとき、更新コマンドを発行するオペレータからいずれのサーバに至るどの経路を用いても、すべての更新検出ルールに対して、更新コマンドか否かの判定が行われるように、更新検出ルールを分散する。
【００７２】
次に、更新コマンドが連続して届く場合に、ある程度の更新コマンドを検出せずにスルーし、他のスイッチ７に検出させる方法について説明する。
【００７３】
更新コマンドが連続して届く場合に、次のスイッチ７でも更新コマンドが検出できるのであれば、ある程度のコマンドは検出せずにスルーし、次のスイッチ７に検出させる。これにより、特定のスイッチ７のみに負荷が集中することを防ぐことができる。ここで、次のスイッチ７の「次」とは、更新コマンドが発行された端末から、更新コマンドの宛先のサーバに至る経路上に存在する複数のスイッチ７において、更新コマンドが中継されるスイッチ７の順番において「次」を意味する。
【００７４】
図１２は、更新コマンドが連続して届く場合の、ある程度の更新コマンドを検出せずにスルーし、他のスイッチ７に検出させる方法を説明するための図である。
【００７５】
更新コマンドを発行した端末からコマンドの宛先サーバに至る経路が複数あるのであれば、更新コマンドを最初に受信したスイッチ７は、他のスイッチ７にパケットを振り分ける。具体的には、コマンドを最初に受信したスイッチ７−１０は、更新コマンド検出処理を実行する。そして、スイッチ７−１０は、連続して届いた次のコマンドについては、更新コマンド検出処理は行わず、スイッチ７−１０に接続されるスイッチ７−１１に転送する。そして、転送された更新コマンドを受信したスイッチ７−１１が、更新コマンド検出処理を実行する。さらに、スイッチ７−１０は、連続して届いた次のコマンドを、スイッチ７−１０に接続される別のスイッチ７−１２に転送し、スイッチ７−１２が更新コマンド検出処理を実行する。
【００７６】
連続してコマンドを受信したスイッチ７が、どのスイッチ７に、どのコマンドを転送するかについては、スイッチ７の動作ルールで制御する。更新コマンドを検出する処理を行うスイッチ７は、実行コマンドの到着頻度や各スイッチ７の負荷の状況に応じて、変更してもよい。尚、この方法では、ネットワーク内の全てのスイッチ７が、全ての更新コマンドに対応する検出ルールを保持する。
【００７７】
次に、更新コマンドがオペレータ端末５から発行されてから、ＦＣＭＤＢ１に反映されるまでの流れを、更新コマンドのデータ構造の変化を示しながら説明する。具体的には、図１３〜図１９を参照して、コマンド検出ルール、コマンドの変換、ＦＣＭＤＢ１のデータ更新を説明する。
【００７８】
図１３は、更新コマンドの例、図１４は、更新検出ルールの例、図１５は、更新コマンドを変換した後の、変換された更新コマンドの例、図１６〜図１９は、ＦＣＭＤＢ１のデータを更新する前後のＦＣＭＤＢ１のデータ構造を示す。図１３のコマンドの番号は図１３〜図１９で対応している。ここでは、図１３の５つのコマンドが発行された場合を仮定して、コマンドがスイッチ７で検出され、検出された更新コマンドがＦＣＭＤＢ１に登録可能な形式に変換され、変換されたデータがＦＣＭＤＢ１に登録される際のデータの変化を説明する。
【００７９】
図１３において、コマンド１は、コマンド名が「update host-address」であり、第１パラメータ名が「-host-number」でその値が「2」、第２パラメータ名が「-address」でその値が「192.168.1.1」である。このコマンドは、ホスト番号が「２」のホストのアドレスを「192.168.1.1」に設定するコマンドである。
【００８０】
コマンド２は、コマンド名が「ifconfig」であり、第１パラメータの値が「eth1」、第２パラメータの値が「192.168.1.10」である。このコマンドは、インタフェース名が「eth1」のインタフェースのＩＰアドレスを「192.168.1.10」に設定するコマンドである。
【００８１】
コマンド３は、コマンド名が「xm mem_set」であり、第１パラメータの値が「vm01」、第２パラメータの値が「1024」である。このコマンドは、サーバ名が「vm01」の仮想ホストに対して、メモリの割り当てを「1024」に設定するコマンドである。
【００８２】
コマンド４は、コマンド名が「delete user」であり、第１パラメータ名が「-name」でその値が「user1」である。このコマンドは、ユーザ名が「user1」のユーザを削除するコマンドである。
【００８３】
コマンド５は、コマンド名が「show status」である。サーバのステータスを確認するコマンドである。
【００８４】
図１４は、図１３のコマンド１〜４にそれぞれ対応する更新検出ルールを示す。更新検出ルールには、検出するコマンド名、及び検出した場合の宛先アドレスが記載される。この例の場合、「IF packet contains “コマンド名”, THEN forward to 宛先アドレス」の形式になっている。コマンド名には、更新コマンドの名称が設定される。この例の場合、更新検出ルール１〜４のコマンド名には、図１３のコマンド１〜４に対応する名称が設定されている。宛先アドレスは、コントローラ６のアドレスが設定され、この例の場合、コントローラ６のアドレスは、「192.168.0.1」である。ここで、図１３のコマンド５は、更新コマンドではないので、対応する更新検出ルールは存在しない。
【００８５】
図１５は、図１３のコマンド１〜４にそれぞれ対応するデータ形式の変換の例を示す。データ形式の変換は、コントローラ６のデータ変換部６５により行われる。データ変換部６５は、各コマンドに対応する雛形を取得する。そして、データ変換部６５は、変換ルールに従って、更新コマンドのパラメータの内容を、取得した雛形の特定の位置に挿入する。更新コマンドのパラメータの内容を、雛形のどの位置に挿入するかは、変換ルールにより定義される。
【００８６】
例えば、コマンド１の場合、コマンド１のパラメータ「-host-number」の値「2」は、ＸＭＬの雛形の要素名「address」の属性「id」の属性値に与えられるようにルールとして定義されている。また、パラメータ「-address」の値「192.168.1.1」は、ＸＭＬの雛形の要素名「address」の内容に与えられるようにルールとして定義されている。
【００８７】
コマンド２の場合、コマンド２の第１引数の値「eth1」が、ＸＭＬの雛形の要素名「ipAddress」の属性「id」の属性値に与えられるようにルールとして定義されている。また、第２引数の値「192.168.1.10」は、ＸＭＬの雛形の要素名「ipAddress」の内容に与えられるようにルールとして定義されている。
【００８８】
コマンド３の場合、コマンド３の第１引数の値「vm01」が、ＸＭＬの雛形の要素名「item」の属性「id」の属性値に与えられるようにルールとして定義されている。また、第２引数の値「1024」は、ＸＭＬの雛形の要素名「memory」の内容に与えられるようにルールとして定義されている。
【００８９】
コマンド４の場合、コマンド４のパラメータ「-name」の値「user1」は、ＸＭＬの雛形の要素名「user」の属性「name」の属性値に与えられるようにルールとして定義されている。
【００９０】
図１６〜図１９は、ＦＣＭＤＢ１のデータにおいて、コマンド１〜４の内容を反映する前後のデータの構造を示す図である。すなわち、図１６〜図１９は、図１３のコマンド１〜４に対応する、図１５のＸＭＬデータ１〜４を受信したＦＣＭＤＢ１の制御部６８が、受信した内容を更新する処理をＦＣＭＤＢ１に対して行う際の、更新処理の前後のＦＣＭＤＢ１のデータを示している。
【００９１】
図１６（ａ）は、コマンド１の更新内容が反映される前のＦＣＭＤＢ１のデータの例を示し、図１６（ｂ）は、コマンド１の更新内容が反映された後のＦＣＭＤＢ１のデータの例を示す。更新内容反映前の図１６（ａ）では、要素名「address」の属性「id」の属性値が「2」である要素の内容は「192.168.0.220」となっている。それに対して、更新内容反映後の図１６（ｂ）では、要素名「address」の属性「id」の属性値が「2」である要素の内容は「192.168.1.1」に更新されている。この更新は、図１５のＸＭＬデータ１の内容をＦＣＭＤＢ１のデータに反映した結果である。
【００９２】
図１７（ａ）は、コマンド２の更新内容が反映される前のＦＣＭＤＢ１のデータの例を示し、図１７（ｂ）は、コマンド２の更新内容が反映された後のＦＣＭＤＢ１のデータの例を示す。更新内容反映前の図１７（ａ）では、要素名「ipAddress」の属性「id」の属性値が「2」である要素は存在しない。それに対して、更新内容反映後の図１７（ｂ）では、要素名「ipAddress」の属性「id」の属性値が「2」である要素が追加されており、その要素の内容は「192.168.1.10」となっている。この更新は、図１５のＸＭＬデータ２の内容をＦＣＭＤＢ１のデータに反映した結果である。
【００９３】
図１８（ａ）は、コマンド３の更新内容が反映される前のＦＣＭＤＢ１のデータの例を示し、図１８（ｂ）は、コマンド３の更新内容が反映された後のＦＣＭＤＢ１のデータの例を示す。更新内容反映前の図１８（ａ）では、要素名「memory」の内容は「512MB」となっている。それに対して、更新内容反映後の図１８（ｂ）では、要素名「memory」の内容は「1024MB」に更新されている。この更新は、図１５のＸＭＬデータ３の内容をＦＣＭＤＢ１のデータに反映した結果である。
【００９４】
図１９（ａ）は、コマンド４の更新内容が反映される前のＦＣＭＤＢ１のデータの例を示し、図１９（ｂ）は、コマンド４の更新内容が反映された後のＦＣＭＤＢ１のデータの例を示す。更新内容反映前の図１９（ａ）では、要素名「item」の属性「id」の属性値が「user1」である要素が存在している。それに対して、更新内容反映後の図１９（ｂ）では、要素名「item」の属性「id」の属性値が「user1」である要素の内容は削除され、存在しない。この更新は、図１５のＸＭＬデータ４の内容をＦＣＭＤＢ１のデータに反映した結果である。
【００９５】
次に、スイッチ７における処理の流れについて説明する。図２０は、本実施形態に係る、スイッチ７における動作のフロー図である。
【００９６】
先ず、スイッチ７はパケットを受信すると（Ｓ１３０１）、次の転送先がコントローラ６か否かを判定する（Ｓ１３０２）。具体的には、スイッチ７は、受信したパケットのヘッダ部を参照し、宛先のアドレスがコントローラ６か否かを判定する。
【００９７】
次の転送先がコントローラ６であると判定された場合（Ｓ１３０２でＹｅｓ）、スイッチ７は、受信したパケットをコントローラ６に転送し（Ｓ１３０３）、処理が終了する。
【００９８】
Ｓ１３０２において、次の転送先がコントローラ６でないと判定された場合（Ｓ１３０２でＮｏ）、スイッチ７は、受信したパケットの転送元がスイッチ７か否かを判定する（Ｓ１３０４）。具体的には、スイッチ７は、受信したパケットのヘッダ部を参照し、送信元のアドレスがスイッチ７か否かを判定する。
【００９９】
転送元がスイッチ７であると判定された場合（Ｓ１３０４でＹｅｓ）、受信したパケットを、受信したパケットの宛先であるスイッチ７、コントローラ６、またはサーバ８に転送し（Ｓ１３０３）、処理が終了する。転送元がスイッチ７でないと判定された場合（Ｓ１３０４でＮｏ）、スイッチ７は、受信パケットが更新検出ルールにマッチするか否かを判定する（Ｓ１３０５）。
【０１００】
受信パケットが更新検出ルールにマッチする場合（Ｓ１３０５でＹｅｓ）、スイッチ７は、パケットを複製し、複製したパケットを転送用にカプセル化する（Ｓ１３０６）。
【０１０１】
次に、スイッチ７は、更新検出ルールの宛先アドレスに従って、カプセル化したパケットをコントローラ６側に転送する（Ｓ１３０７）。
【０１０２】
次に、スイッチ７は、受信したパケットを転送先へ転送し（Ｓ１３０８）、処理は終了する。
【０１０３】
Ｓ１３０５で受信したパケットが更新検出ルールにマッチしない場合、スイッチ７は、受信したパケットを転送先へ転送し（Ｓ１３０８）、処理は終了する。
【０１０４】
次に、コントローラ６における処理の流れについて説明する。図２１は、本実施形態に係るコントローラ６における動作のフロー図である。
【０１０５】
コントローラ６はパケットを受信すると（Ｓ１４０１）、変換ルールを用いてデータをＦＣＭＤＢ１に登録可能な形式に変換する（Ｓ１４０２）。次に、コントローラ６は、ＦＣＭＤＢ１にＳ１４０２で変換したデータを含む登録要求を送信し（Ｓ１４０３）、処理は終了する。
【０１０６】
次に、ＦＣＭＤＢ１における処理の流れについて説明する。図２２は、本実施形態に係るＦＣＭＤＢ１における動作フロー図である。
【０１０７】
ＦＣＭＤＢ１は、登録要求を受信すると（Ｓ１５０１）、登録要求の内容を構成情報ＤＢ６１に反映する更新処理を行い（Ｓ１５０２）、処理は終了する。
【０１０８】
（変形例１）
複数のスイッチ７からコントローラ６に対して更新コマンドを重複して転送することを防ぐために、スイッチ７がパケットに検出済みフラグを付加しておき、検出済みフラグの付いたパケットを受信した場合は、スイッチ７は検出処理を行わない方法も考えられる。
【０１０９】
図２３は、パケットの二重転送防止のために、パケットに検出済みフラグを付加する方法を採用した場合の、スイッチ７における動作のフロー図である。
【０１１０】
先ず、スイッチ７はパケットを受信すると（Ｓ１６０１）、受信したパケットに検出済みフラグが付加されているか否かを判定する（Ｓ１６０２）。検出済みフラグが受信したパケットに付加されている場合（Ｓ１６０２でＹｅｓ）、スイッチ７は、受信したパケットを、受信したパケットの転送先である、スイッチ７、コントローラ６、または宛先のサーバ８に転送し（Ｓ１６０３）、処理が終了する。
【０１１１】
Ｓ１６０２において、検出済みフラグが受信したパケットに付加されていない場合（Ｓ１６０２でＮｏ）、スイッチ７は、受信したパケットが更新検出ルールにマッチするか否かを判定する（Ｓ１６０４）。受信パケットが更新検出ルールにマッチする場合（Ｓ１６０４でＹｅｓ）、スイッチ７は、受信したパケットに検出済みフラグを付加する（Ｓ１６０５）。
【０１１２】
次に、スイッチ７は、検出済みフラグを付加したパケットを複製し、複製したパケットを転送用にカプセル化する（Ｓ１６０６）。次に、スイッチ７は、更新検出ルールの宛先アドレスに従って、カプセル化したパケットをコントローラ６側に転送する（Ｓ１６０７）。
【０１１３】
次に、スイッチ７は、受信したパケットを転送先へ転送し（Ｓ１６０８）、処理は終了する。Ｓ１６０４で受信したパケットが更新検出ルールにマッチしない場合、受信したパケットを転送先へ転送し（Ｓ１６０８）、処理は終了する。
【０１１４】
次に、ＦＣＭＤＢ１、コントローラ６、スイッチ７、及びサーバ８のハードウェア構成について説明する。図２４は、ＦＣＭＤＢ１、コントローラ６、スイッチ７、及びサーバ８のハードウェア構成の一例を示す図である。コンピュータ２００は、図２４に示すように、ＣＰＵ２０１、メモリ２０２、記憶装置２０３、読み取り装置２０４、通信インタフェース２０６、および入出力装置２０７を備える。なお、ＣＰＵ２０１、メモリ２０２、記憶装置２０３、読み取り装置２０４、通信インタフェース２０６、入出力装置２０７は、例えば、バス２０８を介して互いに接続されている。ここで、コンピュータ２００は、ＦＣＭＤＢ１、コントローラ６、スイッチ７、及びサーバ８のハードウェア構成の一例として挙げられる。
【０１１５】
ＣＰＵ２０１は、メモリ２０２を利用して上述のフローチャートの手順を記述したプログラムを実行することにより、制御部６８、スイッチ制御部６４、データ変換部６５、更新検出部６６、カプセル化部６７の一部または全部の機能を提供する。
【０１１６】
メモリ２０２は、例えば半導体メモリであり、ＲＡＭ領域およびＲＯＭ領域を含んで構成される。記憶装置２０３は、例えばハードディスクであり、記憶部６９の機能の一部または全部の機能を提供する。また、データ変換部６５の記憶領域としての一部または全部の機能を提供する。なお、記憶装置２０３は、フラッシュメモリ等の半導体メモリであってもよい。また、記憶装置２０３は、外部記録装置であってもよい。
【０１１７】
読み取り装置２０４は、ＣＰＵ２０１の指示に従って着脱可能記録媒体２０５にアクセスする。着脱可能記録媒体２０５は、たとえば、半導体デバイス（ＵＳＢメモリ等）、磁気的作用により情報が入出力される媒体（磁気ディスク等）、光学的作用により情報が入出力される媒体（ＣＤ−ＲＯＭ、ＤＶＤ等）などにより実現される。
【０１１８】
通信インタフェース２０６は、ＣＰＵ２０１の指示に従ってネットワークを介してデータを送受信する。入出力装置２０７は、例えば、ユーザからの指示を受け付けるデバイスに相当する。
【０１１９】
実施形態を実現するための情報処理プログラムは、例えば、下記の形態でコンピュータ１００に提供される。
（１）記憶装置２０３に予めインストールされている。
（２）着脱可能記録媒体２０５により提供される。
（３）プログラムサーバから提供される。
【０１２０】
なお、実施形態を実現するための情報処理方法は、複数のコンピュータを利用して上述のフローチャートの処理を提供してもよい。この場合、あるコンピュータが、上述のフローチャートの処理の一部を、ネットワークを介して他のコンピュータに依頼し、その処理結果を受け取るようにしてもよい。
【０１２１】
さらに、実施形態の情報処理システムの一部は、ハードウェアで実現してもよい。或いは、実施形態の情報処理システムは、ソフトウェアおよびハードウェアの組み合わせで実現してもよい。
【０１２２】
尚、本実施形態において、ＦＣＭＤＢ１とサーバ８を接続するネットワークの構成にＳＤＮを用いたが、これに限定されない。また、サーバ８は、例えば、ストレージ装置、ネットワーク機器等の、情報処理システム１０１に含まれる種々の装置でもよい。
【０１２３】
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【０１２４】
上記実施形態に関し、更に以下の付記を開示する。
（付記１）
情報処理システムの要素である情報処理装置と、
前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報が統合された統合情報を格納する格納部と、
前記情報処理装置宛ての前記構成要素情報を更新する更新コマンドを含む通信情報を受信し、前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する中継部と、
前記第２の通信情報を受信し、該第２の通信情報に含まれる更新コマンドに基いて、前記統合情報を更新する更新部と、
を備えることを特徴とする情報処理システム。
（付記２）
前記情報処理システムは、さらに、
前記通信情報に前記更新コマンドが含まれるか否かを前記中継部が判定するための更新検出ルール、及び、前記通信情報に前記更新コマンドが含まれると判定された場合の前記中継部の動作を規定した動作ルールを、前記中継部に送信するルール送信部
を備え、
前記中継部は、前記更新検出ルールに基いて、前記通信情報に前記更新コマンドが含まれるか否かを判定し、前記通信情報に前記更新コマンドが含まれると判定された場合、前記動作ルールに基づいて、動作する
ことを特徴とする付記１に記載の情報処理システム。
（付記３）
前記中継部は、前記通信情報を受信した場合、該通信情報の転送元が、当該中継部と接続する他の前記中継部か否かを判定し、該通信情報の転送元が、当該中継部と接続する他の前記中継部ではない場合、前記受信した通信情報に前記更新コマンドが含まれるか否かを判定し、前記受信した通信情報に更新コマンドが含まれる場合、前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する
ことを特徴とする付記１または２に記載の情報処理システム。
（付記４）
前記中継部は、
前記第１の通信情報が送信されたことを示す転送済み情報を、前記第１及び第２の通信情報に付加し、
前記第１または第２の通信情報を受信した場合、該通信情報に前記転送済み情報が含まれているか否かを判定し、該判定結果に基づいて、前記受信した通信情報に前記更新コマンドが含まれるか否かを判定する
ことを特徴とする付記１または２に記載の情報処理システム。
（付記５）
前記情報処理システムは、さらに、
前記第２の通信情報を受信し、該第２の通信情報に含まれる前記更新コマンドを、所定の形式に変換する前記変換部
を備え、
前記更新部は、変換された前記更新コマンドを用いて、前記統合情報を更新する
こと特徴とする付記１に記載の情報処理システム。
（付記６）
前記中継部は、前記通信情報を受信した場合、該通信情報の宛先が前記変換部か否かを判定し、前記通信情報の宛先が前記変換部でない場合、前記受信した通信情報に前記更新コマンドが含まれるか否かを判定し、前記受信した通信情報に更新コマンドが含まれる場合、前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する
ことを特徴とする付記５に記載の情報処理システム。
（付記７）
前記ルール送信部は、前記更新検出ルールに対応する更新コマンドに応じて、前記更新検出ルールを複数の前記中継部に振り分ける
ことを特徴とする付記２に記載の情報処理システム。
（付記８）
前記中継部は、前記更新コマンドを連続して受信した場合、後続して受信した前記更新コマンドを、当該中継部と接続する他の前記中継部に転送する
ことを特徴とする付記２に記載の情報処理システム。
（付記９）
情報処理システムの要素である情報処理装置宛ての、前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報を更新する更新コマンドを含む通信情報を受信する受信部と、
前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する送信部と、
を備える中継装置。
（付記１０）
プロセッサにより実行される情報処理方法であって、
中継装置は、情報処理システムの要素である情報処理装置宛ての、前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報を更新する更新コマンドを含む通信情報を受信し、前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信し、
更新装置は、前記第２の通信情報を受信し、該第２の通信情報に含まれる更新コマンドに基いて、前記構成要素情報を統合した統合情報を更新する
処理を実行することを特徴とする情報処理方法。
（付記１１）
プロセッサに、
情報処理システムの要素である情報処理装置宛ての、前記情報処理システムの構成要素情報として示される前記情報処理装置に関する情報を更新する更新コマンドを含む通信情報を受信し、
前記情報処理装置宛ての前記更新コマンドを含む第１の通信情報と、前記更新コマンドを含む第２の通信情報とを送信する
処理を実行させることを特徴とする情報処理プログラム。
【符号の説明】
【０１２５】
１      ＦＣＭＤＢ
２      ＭＤＲ
３      クライアント
４      ＩＣＴシステム
５      オペレータ端末
６      コントローラ
７      スイッチ
８      サーバ
６１      構成情報ＤＢ
６２      更新検出ルールＤＢ
６３      リコンサイル部
６４      スイッチ制御部
６５      データ変換部
６６      更新検出部
６７      カプセル化部
６８      制御部
６９      記憶部
７１      ヘッダ部
７２      データ部
７３      ヘッダ部
７４      データ部
７５      パケット
７６      パケット
１０１      情報処理システム
１０２      情報処理装置
１０３      格納部
１０４      中継部
１０５      更新部
１０６      ルール送信部
１０７      変換部
２００ コンピュータ
２０１      ＣＰＵ
２０２      メモリ
２０３      記憶装置
２０４      読み取り装置
２０５      着脱可能記録媒体
２０６      通信インタフェース
２０７      入出力装置
２０８      バス
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2014041494.tif 000027
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2014041494.tif 000028
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図１８
【補正方法】変更
【補正の内容】
【図１８】
2014041494.tif 000029
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図２４
【補正方法】変更
【補正の内容】
【図２４】
2014041494.tif 000030