(57)【要約】【課題】グラフデータベースのデータ量が膨大となっても非常に高速に処理でき、かつ処理時間が増加することを抑制すること。【解決手段】本発明の一態様は、グラフデータベースに含まれるノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行うノード管理部と、複数の前記ノード間のエッジの生成を行うエッジ管理部と、を備え、前記ノード管理部は、既存のノードのプロパティが変化した場合、変化したプロパティを含む新たなノードを生成し、前記エッジ管理部は、前記生成された新たなノードと、既存のノードとの関係を示す新たなエッジを生成する、情報処理装置である。【選択図】図４
2020161089.tif 000002
【特許請求の範囲】
【請求項１】
グラフデータベースに含まれるノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行うノード管理部と、
複数の前記ノード間のエッジの生成を行うエッジ管理部と、を備え、
前記ノード管理部は、既存のノードのプロパティが変化した場合、変化したプロパティを含む新たなノードを生成し、
前記エッジ管理部は、前記生成された新たなノードと、既存のノードとの関係を示す新たなエッジを生成する、
情報処理装置。
【請求項２】
前記エッジ管理部は、前記エッジの生成に加えて前記エッジの履歴化を実行する、
請求項１に記載の情報処理装置。
【請求項３】
前記ノード管理部は、既存のノードのプロパティが変化した場合、プロパティが変化した時刻を有効開始時刻として含み、前記有効開始時刻以外のプロパティを既存のノードのプロパティとして含む新たなノードを生成する、
請求項１または２に記載の情報処理装置。
【請求項４】
前記ノード管理部は、既存のノードのプロパティが変化した場合、当該既存のノードのプロパティが変化した時刻を有効終了時刻として設定することで、当該既存のノードを履歴化する、
請求項１から３のうち何れか１項に記載の情報処理装置。
【請求項５】
グラフデータベースに含まれるノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行うステップと、
複数の前記ノード間のエッジの生成を行うステップと、を含み、
既存のノードのプロパティが変化した場合、
変化したプロパティを含む新たなノードを生成し、
前記生成された新たなノードと、既存のノードとの関係を示す新たなエッジを生成する、
情報処理方法。
【請求項６】
前記エッジの生成に加えて前記エッジの履歴化を実行する、
請求項５に記載の情報処理方法。
【請求項７】
コンピュータに、
グラフデータベースに含まれるノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行わせ、
複数の前記ノード間のエッジの生成を行わせるプログラムであって、
既存のノードのプロパティが変化した場合、
変化したプロパティを含む新たなノードを生成させ、
前記生成された新たなノードと、既存のノードとの関係を示す新たなエッジを生成させる、
プログラム。
【請求項８】
前記エッジの生成に加えて前記エッジの履歴化を実行させる、
請求項７に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
グラフデータベース（グラフＤＢ）における時系列管理の方式はあまり知られておらず、唯一下記の非特許文献１に記載されている。非特許文献１においてグラフデータベースの時系列管理方式としては、Ｂａｓｉｃ  Ｃｌｏｎｉｎｇと称される方式、Ｃｌｏｎｉｎｇ  ｗｉｔｈ  ｉｄｅｎｔｉｔｙ  ｎｏｄｅと称される方式、およびＴｉｍｅ  Ｔｒｅｅと称される方式が記載されている。Ｂａｓｉｃ  Ｃｌｏｎｉｎｇと称される方式は、ノードの属性が更新されるたびに、時間情報を持つグラフノードの複製を作成する。Ｃｌｏｎｉｎｇ  ｗｉｔｈ  ｉｄｅｎｔｉｔｙ  ｎｏｄｅと称される方式は、変更されない属性を持つ「アイデンティティ・ノード」と、変更される属性を持つ「サブテンディング・ノード」で構成し、属性が変更されるたびに「サブテンディング・ノード」の複製を作成する。Ｔｉｍｅ  Ｔｒｅｅと称される方式は時間ノードを多数含むツリーを含み、グラフノードはツリーにおける時間ノードに接続される。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】インターネット＜https://jira.onap.org/secure/attachment/11314/temporal%20logic%20for%20attributes%20in%20a%20graph%20data%20base.docx＞、“Temporal logic for attributes in a graph data base”Phil Blackwood, March 19, 2018
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したグラフデータベースにおいては、膨大なデータ量のグラフデータベースに対してより高速に検索処理を実行することが望まれている。
【０００５】
本発明は、上記の課題に鑑みてなされたものであって、グラフデータベースのデータ量が膨大となっても非常に高速に処理でき、かつ処理時間が増加することを抑制することができる情報処理装置、情報処理方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
（１）本発明の一態様は、グラフデータベースに含まれるノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行うノード管理部と、複数の前記ノード間のエッジの生成を行うエッジ管理部と、を備え、前記ノード管理部は、既存のノードのプロパティが変化した場合、変化したプロパティを含む新たなノードを生成し、前記エッジ管理部は、前記生成された新たなノードと、既存のノードとの関係を示す新たなエッジを生成する、情報処理装置である。
【０００７】
（２）本発明の一態様は、上記の情報処理装置であって、前記エッジ管理部は、前記エッジの生成に加えて前記エッジの履歴化を実行してよい。
【０００８】
（３）本発明の一態様は、上記の情報処理装置であって、前記ノード管理部は、既存のノードのプロパティが変化した場合、プロパティが変化した時刻を有効開始時刻として含み、前記有効開始時刻以外のプロパティを既存のノードのプロパティとして含む新たなノードを生成してよい。
【０００９】
（４）本発明の一態様は、上記の情報処理装置であって、前記ノード管理部は、既存のノードのプロパティが変化した場合、当該既存のノードのプロパティが変化した時刻を有効終了時刻として設定することで、当該既存のノードを履歴化してよい。
【００１０】
（５）本発明の一態様は、グラフデータベースに含まれるノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行うステップと、複数の前記ノード間のエッジの生成を行うステップと、を含み、既存のノードのプロパティが変化した場合、変化したプロパティを含む新たなノードを生成し、前記生成された新たなノードと、既存のノードとの関係を示す新たなエッジを生成する、情報処理方法である。
【００１１】
（６）本発明の一態様は、上記の情報処理方法であって、前記エッジの生成に加えて前記エッジの履歴化を実行してよい。
【００１２】
（７）本発明の一態様は、コンピュータに、グラフデータベースに含まれるノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行わせ、複数の前記ノード間のエッジの生成を行わせるプログラムであって、既存のノードのプロパティが変化した場合、変化したプロパティを含む新たなノードを生成させ、前記生成された新たなノードと、既存のノードとの関係を示す新たなエッジを生成させる、プログラムである。
【００１３】
（８）本発明の一態様は、上記のプログラムであって、前記エッジの生成に加えて前記エッジの履歴化を実行させてよい。
【発明の効果】
【００１４】
本発明の一態様によれば、グラフデータベースのデータ量が膨大となっても非常に高速に処理でき、かつ処理時間が増加することを抑制することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明を適用した情報処理システムの一例を示すブロック図である。
【図２】本発明を適用した実施形態におけるグラフデータベースの一例を示す図である。
【図３】本発明を適用した実施形態に係る情報処理システムにおいて新たなグラフノードが追加された時の処理手順を示すフローチャートである。
【図４】本発明を適用した実施形態に係る情報処理システムにおいて新たなグラフノードが追加された時におけるグラフデータベースの変更を説明するための図である。
【図５】本発明を適用した実施形態に係る情報処理システムにおいてリレーショナルデータベースの一例を示す図である。
【図６】本発明を適用した実施形態に係る情報処理システムにおいてトポロジーを抽出する処理の処理手順を示すフローチャートである。
【図７】本発明を適用した実施形態に係る情報処理システムにおいてトポロジーの全体を抽出する処理を説明するための図である。
【図８】実施形態の情報処理システムにおいてトポロジーの全体を抽出する処理の性能を検証する処理を説明するための図である。
【図９】実施形態の情報処理システムにおけるトポロジーの全体を抽出する処理の検証結果を示す図である。
【図１０】エッジのみを増加させたグラフデータベースの性能を検証する処理を説明するための図である。
【図１１】実施形態の情報処理システムにおいてノードの増加とそれに伴うエッジを増加させたグラフデータベースの性能を検証する処理を説明するための図である。
【図１２】実施形態におけるデータベース管理装置１００の検証結果、および比較例の検証結果を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明を適用した情報処理装置、情報処理方法、およびプログラムを、図面を参照して説明する。
【００１７】
（概要）
本発明を適用した実施形態の情報処理システムは、例えば、監視対象ネットワークＮＷにおけるトポロジーを抽出する処理を行う。監視対象ネットワークＮＷは、例えば、ＯＳ（Ｏｐｅｒａｔｉｏｎ Ｓｙｓｔｅｍ）、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）、ＨＷ（Ｈａｒｄｗａｒｅ）、ＤＣ（Ｄａｔａ  Ｃｅｎｔｅｒ）などの多数のネットワークノードを含む。ＨＷは、例えばサーバ装置である。監視対象ネットワークＮＷにおける各ネットワークノードは、例えば、ＣＰＵコア、メモリ容量、ディスク容量といったプロパティにより定義される。各ネットワークノードは、当該監視対象ネットワークＮＷの使用者により追加されたり、設定変更されたり、削除されたりする。なお、ネットワークノードには、街中のセンサーやカメラなどのデバイスが含まれてよい。
【００１８】
情報処理システムは、このような監視対象ネットワークＮＷにおける過去の状態および現在の状態を把握するためにグラフデータベースを構築する。そして、実施形態の情報処理システムは、グラフデータベースにおける時間管理を行う。グラフデータベースの時間管理とは、例えば、ある時点が指定された場合に、当該時点における監視対象ネットワークＮＷの状態を表すトポロジーを抽出する処理である。情報処理システムは、トポロジーの抽出結果を、例えばユーザ等に提示することでユーザに監視対象ネットワークＮＷの管理などを行わせることができる。
【００１９】
また、監視対象ネットワークＮＷにおける各ネットワークノードは、当該監視対象ネットワークＮＷにおける使用開始時にネットワークノードとして追加され、当該監視対象ネットワークＮＷにおける使用終了時に履歴化される。
【００２０】
（情報処理システムの構成）
図１は、本発明を適用した第１実施形態に係る情報処理システムの一例を示すブロック図である。情報処理システムは、例えば、データベース管理装置１００と、グラフデータベース記憶装置２００と、リレーショナルデータベース記憶装置３００と、ネットワーク管理装置４００と、ユーザ端末装置５００とを備える。データベース管理装置１００、グラフデータベース記憶装置２００、リレーショナルデータベース記憶装置３００、ネットワーク管理装置４００、およびユーザ端末装置５００は、ＮＩＣ（Network Interface Card）や無線通信モジュールなどの通信インターフェース（不図示）を有する。
【００２１】
データベース管理装置１００は、例えば、第１のデータベース処理部１１０と、第２のデータベース処理部１２０と、トポロジー抽出部１３０とを備える。第１のデータベース処理部１１０、第２のデータベース処理部１２０、およびトポロジー抽出部１３０といった機能部は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、またはＦＰＧＡ（Ｆｉｅｌｄ-Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【００２２】
第１のデータベース処理部１１０は、例えば、ノード管理部１１０ａおよびエッジ管理部１１０ｂを含む。第１のデータベース処理部１１０は、グラフデータベース記憶装置２００に記憶されたグラフデータに基づいてグラフデータベースに関する処理を実行する。グラフデータベースに関する処理には、例えば、グラフデータとしてのグラフノードの追加処理および履歴化処理や、エッジの追加処理および履歴化処理が含まれる。グラフデータベースに関する処理には、トポロジーの抽出時に、グラフデータベース記憶装置２００からグラフデータを読み出す処理が含まれる。なお、第１のデータベース処理部１１０は、必ずしも、エッジの履歴化処理を行わなくてもよい。
【００２３】
第２のデータベース処理部１２０は、リレーショナルデータベース記憶装置３００に記憶されたＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ）データに基づいてリレーショナルデータベースに関する処理を実行する。リレーショナルデータベースに関する処理には、例えば、ＲＤＢデータとしてのレコードの追加、レコードの変更、レコードの削除などの処理が含まれる。リレーショナルデータベースに関する処理には、トポロジーの抽出時に、リレーショナルデータベース記憶装置３００からＲＤＢデータを読み出す処理が含まれる。
【００２４】
トポロジー抽出部１３０は、例えばユーザが指定した時刻（指定時刻）に基づいて、当該指定時刻の時間ノードを頂点としたトポロジーを抽出する。なお、トポロジー抽出部１３０は、抽出したトポロジーを表示するための情報を、ユーザ端末装置５００に出力する処理が含まれてよい。なお、トポロジー抽出部１３０は、必ずしも、トポロジーの全体の抽出を行わなくてよく、起点ノードを起点とするグラフノードであって、指定された時刻情報を含む有効終了時刻のグラフノードの抽出を行えばよい。
【００２５】
グラフデータベース記憶装置２００およびリレーショナルデータベース記憶装置３００は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）、フラッシュメモリ、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶装置により実現される。グラフデータベース記憶装置２００およびリレーショナルデータベース記憶装置３００は、例えば、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）により実現されてよい。
【００２６】
グラフデータベース記憶装置２００は、グラフデータベースを構築するためのグラフデータを記憶する。グラフデータには、ノード情報とエッジ情報とが含まれる。ノード情報は、ラベル名（ノード名）およびノードのプロパティを含む情報である。グラフノードのプロパティは、例えば、有効開始時刻および有効終了時刻であるが、これに限定されない。グラフノードのプロパティは、グラフノードを特定する情報であれば、バーチャルマシンを特定するＣＰＵコアに関する情報、メモリ容量、ディスク容量であればよい。エッジ情報は、グラフノード間の関係を特定するための情報である。すなわち、エッジ情報は、グラフノード間のつながりを特定する。
【００２７】
なお、本実施形態においては、監視対象ネットワークＮＷにおけるノードをネットワークノードと記載し、グラフデータベースにおけるノードをグラフノードと記載する。また、本実施形態では、エッジ情報は、例えば、単に「エッジ」、「リレーション」、「リレーションシップ」などの当該技術分野において使用されている用語に読み替えてよい。
【００２８】
リレーショナルデータベース記憶装置３００は、リレーショナルデータベースを構築するためのＲＤＢデータを記憶する。なお、リレーショナルデータベースは、表形式またはキーバリュー形式のデータベースの一例であって、本実施形態は、リレーショナルデータベース以外の表形式またはキーバリュー形式のデータベースであっても適用可能である。
【００２９】
ネットワーク管理装置４００は、監視対象ネットワークＮＷにおけるネットワークノードの状態変化を示す情報を取得し、取得した情報をデータベース管理装置１００に送信する。ネットワークノードの状態変化を示す情報は、例えば、新たなネットワークノードの追加および削除、既存のネットワークノードのプロパティの変化、ネットワークノード間の接続関係の変化などである。ネットワークノードのプロパティは、有効開始時刻および有効終了時刻であるが、これに限定されず、ネットワークノードのプロパティは、ネットワークノードを特定する情報であれば、バーチャルマシンを特定するＣＰＵコアに関する情報、メモリ容量、ディスク容量であってもよい。
【００３０】
ユーザ端末装置５００は、例えば、表示部、操作部、およびＣＰＵ等を備えたパーソナルコンピュータである。ユーザ端末装置５００は、ユーザの操作を受け付け、ユーザの操作に基づく時点を指定したトポロジーの抽出要求をデータベース管理装置１００に送信する。ユーザ端末装置５００は、トポロジーの抽出要求に対する応答としてトポロジーを表示するための情報を取得し、トポロジーを表示する。なお、本実施形態においてはある時点を指定することを説明するが、これに限らず、開始時点から終了時点までの時間帯を指定しても本実施形態の処理は適用可能である。
【００３１】
（グラフデータベースの説明）
以下、グラフデータベースについて説明する。図２は、本発明を適用した実施形態におけるグラフデータベースの一例を示す図である。なお、本実施形態のグラフデータベースは、例えば、ＯＮＡＰ（Ｌｉｎｕｘ  （登録商標）  ＦｏｕｎｄａｔｉｏｎプロジェクトであるＯｐｅｎ  Ｎｅｔｗｏｒｋ  Ａｕｔｏｍａｔｉｏｎ  Ｐｌａｔｆｏｒｍプロジェクト）の文書「Ｔｅｍｐｏｒａｌ ｌｏｇｉｃ  ｆｏｒ  ａｔｔｒｉｂｕｔｅｓ  ｉｎ  ａ ｇｒａｐｈ ｄａｔａ  ｂａｓｅ」におけるＢａｓｉｃ  Ｃｌｏｎｉｎｇと称される方式のデータベースである。
【００３２】
図２に示したグラフデータベースは、ＤＣノードを頂点として、ＤＣノードにＨＷノードが接続され、ＨＷノードにＶＭノードが接続され、ＶＭノードにＯＳノードが接続されている。各グラフノードには、ラベル名としてＮ１〜Ｎ１１が登録される。なお、各グラフノードには複数のラベル名を与えてよい。ＤＣノードとＨＷノード間のエッジ、ＨＷノードとＶＭノード間のエッジ、およびＶＭノードとＯＳノード間のエッジには、タイプ（エッジの名前）としてＥ１〜Ｅ１０が登録される。また、各エッジには、一方のグラフノードから他方のグラフノードへの方向が設定される。
【００３３】
各グラフノード、および各エッジには、プロパティとして有効開始時刻および有効終了時刻が登録される。有効終了時刻は、グラフノードおよびエッジがそれぞれ登録された時刻が設定される。有効終了時刻は、グラフノードおよびエッジが有効である場合（履歴化されていない場合）、有効開始時刻から十分に遠い時刻が設定される。有効終了時刻は、グラフノードおよびエッジが履歴化された場合、履歴化された時刻が設定される。
【００３４】
（グラフデータベースの更新処理）
図３は、本発明を適用した実施形態に係る情報処理システムにおいて新たなノードが追加された時の処理手順を示すフローチャートである。
【００３５】
第１のデータベース処理部１１０は、新たなグラフノードが追加する必要があるか否かを判定する（ステップＳ１００）。第１のデータベース処理部１１０は、ネットワーク管理装置４００からネットワークノードの状態が変化したことを示す情報や、新たなネットワークノードが追加されたことを示す情報や、既存のネットワークノードが削除されたことを示す情報などの監視対象ネットワークＮＷの変化を示す情報を受信した場合、新たなグラフノードが追加する必要があると判定する。第１のデータベース処理部１１０は、新たなグラフノードが追加する必要がない場合（ステップＳ１００：ＹＥＳ）、当該判定を繰り返し、新たなグラフノードが追加する必要がある場合、図３（a）のステップＳ１０２に処理を進める。なお、ステップＳ１００の判定を実行する頻度は任意であってよい。
【００３６】
図３（ａ）に示すように、次に第１のデータベース処理部１１０は、グラフデータベースに対するグラフノードおよびエッジの追加処理および履歴化処理を行う（ステップＳ１０２）。第１のデータベース処理部１１０は、既存のネットワークノードの状態変化ではなく、新規のネットワークノードの追加である場合には既存のグラフノードがないので、グラフノードおよびエッジの履歴化処理を行う必要はない。なお、ステップＳ１０２は、図３（ｂ）のようにステップＳ１０４の後でもよい。
【００３７】
図３（ａ）に示すように、次に第２のデータベース処理部１２０は、リレーショナルデータベースを更新する（ステップＳ１０４）。第２のデータベース処理部１２０は、ステップＳ１０２におけるグラフノードの追加および履歴化に基づいて、リレーショナルデータベースの更新を行う。なお、ステップＳ１０４は、図３（ｂ）のようにステップＳ１０２の前でもよい。その場合、リレーショナルデータベースのレコード追加および履歴化に基づいて、グラフデータベースのノード追加および履歴化を行う。
【００３８】
（グラフノードおよびエッジの追加処理および履歴化処理（ステップＳ１０２））
図４は、本発明を適用した実施形態に係る情報処理システムにおいて新たなグラフノードが追加された時におけるグラフデータベースの変更を説明するための図である。図４（ａ）は、グラフノードの追加前のグラフデータベースの一例を示す図であり、図４（ｂ）は、グラフノードの追加後のグラフデータベースの一例を示す図である。
【００３９】
図４（ａ）に示すように、グラフノード（ＯＳ１）とグラフノード（ＶＭ１）とグラフノード（ＨＷ１）とがエッジ（ＲＵＮＳ＿ＯＮ）により接続され、グラフノード（ＶＭ２）とグラフノード（ＨＷ２）とがエッジ（ＲＵＮＳ＿ＯＮ）により接続されているものとする。なお、各グラフノードには、複数のラベル名が付与されている。例えば、グラフノード（ＯＳ１）には、第１のラベル名としての「ＯＳ」と、第２のラベル名としての「ＯＳ＿５」とが付与されている。第１のラベル名は、例えば、管理対象としてのネットワークノードの種類を示す。第２のラベル名は、グラフデータベースにおいてグラフノード（ＯＳ１）を一意に識別するためのラベル名であって、グラフノード（ＯＳ１）の追加処理時にリレーショナルデータベースに登録されるラベル名である。第２のラベル名は、なんらかの方法でグラフノードを一意に識別するための名称であればよく、例えば、ＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）やリレーショナルデータベースのシーケンス機能により払い出されたＩＤであってもよい。また、各グラフノードには、プロパティとして有効開始時刻（ｓｔａｒｔＴｉｍｅ）および有効終了時刻（ｅｎｄＴｉｍｅ）が設定されている。各エッジにもプロパティとして有効開始時刻および有効終了時刻が設定されているが、図示していない。なお、エッジにプロパティとして有効開始時刻、有効終了時刻を保持しなくてもよい。
【００４０】
その後、グラフノード（ＶＭ１）に相当するネットワークノードが移動し、グラフノード（ＨＷ１）に相当するネットワークノードから離れてグラフノード（ＨＷ２）に相当するネットワークノードに接続したとする。この場合、第１のデータベース処理部１１０は、図４（ｂ）に示すように、新たなグラフノード（ＶＭ１）を追加し、既存のグラフノード（ＶＭ１）を履歴化する。新たなグラフノード（ＶＭ１）を追加する処理は、例えば、既存のグラフノード（ＶＭ１）のプロパティのうち、有効開始時刻をグラフノード（ＶＭ１）に相当するネットワークノードが移動した時刻に設定し、有効終了時刻を、設定した有効開始時刻より十分に遠い時刻に設定する処理である。既存のグラフノード（ＶＭ１）を履歴化する処理は、グラフノード（ＶＭ１）に相当するネットワークノードが移動した時刻を、履歴化対象のグラフノード（ＶＭ１）の有効終了時刻に設定する処理である。
【００４１】
第１のデータベース処理部１１０は、追加されたグラフノード（ＶＭ１）と、既存のグラフノードとを接続するエッジを追加する。第１のデータベース処理部１１０は、グラフノード（ＯＳ１）とグラフノード（ＶＭ１）とを接続し、グラフノード（ＯＳ１）からグラフノード（ＶＭ１）に向かう方向を持つエッジ（ＲＵＮＳ＿ＯＮ）を追加する。第１のデータベース処理部１１０は、グラフノード（ＶＭ１）とグラフノード（ＨＷ２）とを接続し、グラフノード（ＶＭ１）からグラフノード（ＨＷ２）に向かう方向を持つエッジ（ＲＵＮＳ＿ＯＮ）を追加する。第１のデータベース処理部１１０は、双方のエッジのプロパティとしての有効開始時刻を、グラフノード（ＶＭ１）に相当するネットワークノードが移動した時刻に設定し、有効終了時刻を、設定した有効開始時刻より十分に遠い時刻に設定する。なお、エッジにプロパティとして有効開始時刻、有効終了時刻を保持しなくてもよい。保持しない場合は、有効開始時刻と有効終了時刻の設定は不要である。
【００４２】
（リレーショナルデータベースの更新処理（ステップＳ１０４））
図５は、本発明を適用した実施形態に係る情報処理システムにおいてリレーショナルデータベースの一例を示す図である。
リレーショナルデータベースは、ネットワークノードの名称と、第１のラベル名、第２のラベル名、有効開始時刻（ｓｔａｒｔ  Ｔｉｍｅ）、および有効開始時刻（ｅｎｄ  Ｔｉｍｅ）を対応付けたデータベースである。リレーショナルデータベースにおける各レコードは、時系列に登録される。すなわち、新たなレコードは、最下位のレコードとして追加される。リレーショナルデータベースに登録されるグラフノードの名称（ラベル名）は、上述したように、グラフデータベースにおいてグラフノード（ＯＳ１）を一意に識別するための第２のラベル名である。
【００４３】
なお、リレーショナルデータベースにおいて、有効終了時刻として登録されている「∞」は、有効開始時刻よりも十分に遠い時刻である。すなわち、リレーショナルデータベースにおいて、有効終了時刻が∞のレコードに対応するグラフノードは未だ履歴化されていないグラフノードであり、有効終了時刻が∞でないレコードに対応するグラフノードは既に履歴化されたグラフノードである。
【００４４】
図４を参照して説明したように、新たなグラフノード（ＶＭ１）が追加され、既存のグラフノード（ＶＭ１）が履歴化された場合、第２のデータベース処理部１２０は、新たなグラフノード（ＶＭ１）のネットワークノードの名称、第１のラベル名、第２のラベル名、有効開始時刻、および有効終了時刻を登録する。また、第２のデータベース処理部１２０は、履歴化対象のグラフノード（ＶＭ１）に対応付けられた有効終了時刻を更新する。
【００４５】
（トポロジーの抽出処理）
図６は、本発明を適用した実施形態に係る情報処理システムにおいてトポロジーを抽出する処理の処理手順を示すフローチャートである。
トポロジー抽出部１３０は、例えばユーザ端末装置５００から受信した情報に基づいて時刻が指定されたか否かを判定する（ステップＳ２００）。なお、以下の説明において、トポロジー抽出部１３０に指定された時点を指定時点とも記載する。トポロジー抽出部１３０は、時刻が指定されない場合（ステップＳ２００：ＮＯ）、当該判定を繰り返し、時刻が指定された場合には（ステップＳ２００：ＹＥＳ）、ステップＳ２０２に処理を進める。
【００４６】
次にトポロジー抽出部１３０は、リレーショナルデータベース（ＲＤＢ）の検索を行う（ステップＳ２０２）。トポロジー抽出部１３０は、例えば、第２のデータベース処理部１２０に対して指定時刻を検索キーとした検索を依頼する。
【００４７】
次に第２のデータベース処理部１２０は、指定時刻を検索キーとした検索処理を行うことで、リレーショナルデータベースから指定時刻に合致するグラフノードを抽出する（ステップＳ２０４）。このとき、第２のデータベース処理部１２０は、有効開始時刻から有効終了時刻までの期間に指定時刻を含むレコードを抽出する。第２のデータベース処理部１２０は、抽出したレコードを、検索結果としてトポロジー抽出部１３０に出力する。
【００４８】
次にトポロジー抽出部１３０は、指定時刻に対応する時間ノードを生成する（ステップＳ２０６）。指定時刻に対応する時間ノードとは、プロパティとして指定時刻を示す情報が付与されたグラフノードである。
【００４９】
次にトポロジー抽出部１３０は、時間ノードと抽出されたグラフノード間にエッジを作成する（ステップＳ２０８）。時間ノードと抽出されたグラフノード間のエッジは、抽出されたグラフノードから時間ノードに向かう方向を持つエッジである。なお、エッジのタイプは、例えば各エッジを一意に特定する名称を設定してよい。また、エッジのプロパティは無くてもよい。
【００５０】
次にトポロジー抽出部１３０は、トポロジーの全体を抽出する（ステップＳ２１０）。トポロジー抽出部１３０は、時間ノードを起点に時間ノードと抽出されたグラフノード間のエッジを辿ることにより、抽出されたグラフノードと抽出されたグラフノード間のエッジを取得する。具体的に、トポロジー抽出部１３０は、抽出されたグラフノードおよびグラフノード間のエッジをグラフデータベースから抽出する要求を第１のデータベース処理部１１０に出力する。第１のデータベース処理部１１０は、要求に従って、抽出されたグラフノードおよびグラフノード間に存在するエッジを、グラフデータベースから抽出する。この結果、トポロジー抽出部１３０は、抽出されたグラフノードとグラフノード間のエッジを含むトポロジーの全体を抽出することができる。
【００５１】
なお、本実施形態では、トポロジーの全体の抽出まで行ったが、時間ノードに接続されるグラフノードの抽出までの処理を行って、処理を終了してよい。
上述したトポロジーの抽出処理について具体的に説明する。図７は、本発明を適用した実施形態に係る情報処理システムにおいてトポロジーの全体を抽出する処理を説明するための図である。
【００５２】
ユーザ端末装置５００は、ユーザが例えば２０１７年２月１５日の時点のトポロジーの全体を抽出したい場合に、２０１７年２月１５日という時点を受け付けた場合、当該時点を示す情報をデータベース管理装置１００に供給する。トポロジー抽出部１３０は、２０１７年２月１５日を指定時刻として、第２のデータベース処理部１２０にリレーショナルデータベースを検索させる。これにより、トポロジー抽出部１３０は、検索結果として、グラフノードＮ１１、Ｎ１５、Ｎ１２、およびＮ１３に相当するレコードを取得する。そして、トポロジー抽出部１３０は、時間ノードＮ１０を作成する。
【００５３】
次に、トポロジー抽出部１３０は、グラフノードＮ１１から時間ノードＮ１０への方向を持つエッジＥ１１、グラフノードＮ１５から時間ノードＮ１０への方向を持つエッジＥ１２、グラフノードＮ１２から時間ノードＮ１０への方向を持つエッジＥ１３、およびグラフノードＮ１３から時間ノードＮ１０への方向を持つエッジＥ１４を作成する。
【００５４】
次に、トポロジー抽出部１３０は、時間ノードＮ１０を起点に時間ノードＮ１０と抽出されたグラフノード間のエッジを辿ることにより、抽出されたグラフノードと抽出されたグラフノード間のエッジを取得する。このとき、トポロジー抽出部１３０は、抽出されたグラフノードおよび抽出されたグラフノード間に接続されたエッジを抽出する要求を、第１のデータベース処理部１１０に出力する。第１のデータベース処理部１１０は、グラフデータベースから、抽出されたグラフノードＮ１１、Ｎ１２、Ｎ１３、Ｎ１５と抽出されたグラフノード間に接続されたエッジＥ１５、エッジＥ１６、グラフノードＮ１３、およびグラフノードＮ１５を抽出する。第１のデータベース処理部１１０は、グラフノードＮ１４およびＮ１６は、時間ノードを起点にしたとき範囲外なので抽出されていない。よって、グラフノードＮ１４およびＮ１６に接続されるエッジも抽出されない。この結果、第２のデータベース処理部１２０は、グラフノードＮ１１、エッジＥ１５、グラフノードＮ１２、エッジＥ１６、グラフノードＮ１３、およびグラフノードＮ１５を、抽出結果としてトポロジー抽出部１３０に出力する。
【００５５】
トポロジー抽出部１３０は、指定時刻に基づいて抽出されたグラフノード（Ｎ１１、Ｎ１２、Ｎ１３、およびＮ１５）と、抽出されたグラフノード（Ｎ１１、Ｎ１２、Ｎ１３、Ｎ１５）に接続されたエッジ（Ｅ１５、Ｅ１６）を含むトポロジーの全体を抽出することができる。
【００５６】
トポロジー抽出部１３０は、トポロジーの抽出結果として、ユーザ端末装置５００に、抽出したグラフノード（Ｎ１１、Ｎ１２、Ｎ１３、およびＮ１５）、およびエッジ（Ｅ１５、Ｅ１６）を含む情報を送信する。トポロジー抽出部１３０は、トポロジーの抽出結果として、グラフノードおよびエッジのプロパティを含む情報を送信する。これにより、ユーザ端末装置５００は、トポロジーの全体の表示処理等を行うことができる。なお、トポロジー抽出部１３０は、ユーザ端末装置５００においてトポロジーの全体の表示処理等を行うことができれば、プロパティを送信せず、グラフノードおよびエッジのプロパティの要求をユーザ端末装置５００から受け付けた場合に、当該要求に対応するグラフノードおよびエッジのプロパティをユーザ端末装置５００に送信してもよい。
【００５７】
（性能検証１）
以下、トポロジーの全体を抽出する処理の性能を検証する。
図８は、実施形態の情報処理システムにおいてトポロジーの全体を抽出する処理の性能を検証する処理を説明するための図である。
グラフノード（ＨＷ）、グラフノード（ＶＭ）、およびグラフノード（ＯＳ）を順次増加させると共に当該グラフノード間のエッジも順次増加させた。そして、グラフノードおよびエッジを増加させるごとに、（１）指定時刻が有効開始時刻および有効終了時刻により特定される期間内となるグラフノードをリレーショナルデータベースから検索し、（２）指定時刻の時間ノードを作成し、（３）作成した時間ノードと、抽出されたグラフノードとの間にエッジを作成し、（４）時間ノードを起点とした全てのエッジを辿ることで、指定時刻のトポロジーの全体を抽出する処理を行い、当該（１）から（４）の処理の所要時間を測定した。
【００５８】
図９は、実施形態の情報処理システムにおけるトポロジーの全体を抽出する処理の検証結果を示す図である。図９において、横軸はグラフデータベースのグラフノードの全数である。縦軸は、上記（１）から（４）の処理の所要時間である。検証結果によると、非常に高速な抽出が可能で、グラフノードの全数が増加しても所要時間の増加が抑制されていることが分かった。
【００５９】
（性能検証２）
以下、第１のグラフノードが、第２のグラフノードに接続された状態から第３のグラフノードに接続された状態に変化した場合において、エッジのみを増加させたグラフデータベース（図１０、比較例）と、グラフノードおよびエッジの双方を増加させたグラフデータベース（図１１、実施形態）との双方の性能検証を行った。図１０は、エッジのみを増加させたグラフデータベースの性能を検証する処理を説明するための図である。図１１は、実施形態の情報処理システムにおいてグラフノードとエッジを増加させたグラフデータベースの性能を検証する処理を説明するための図である。
【００６０】
図１０に示したように、エッジのみを増加させるごとに、グラフデータベースから指定時刻に存在するグラフノード（ＶＭ）と当該グラフノード（ＶＭ）に繋がるグラフノード（ＤＣ）からグラフノード（ＯＳ）までを抽出する検索クエリーを発行し、検索結果を得るまでの所要時間を測定した。図１１に示したように、エッジおよびグラフノードを増加させるごとに、グラフデータベースから指定時刻に存在するグラフノード（ＶＭ）と当該グラフノード（ＶＭ）に繋がるグラフノード（ＤＣ）からグラフノード（ＯＳ）までを抽出する検索クエリーを発行し、検索結果を得るまでの所要時間を測定した。
【００６１】
図１２は、実施形態におけるデータベース管理装置１００の検証結果、および比較例の検証結果を示す図である。図１２において、横軸はグラフデータベースのエッジおよびグラフノードの全数である。縦軸は、検索結果を得るまでの所要時間である。検証結果によると、エッジのみを増加させたグラフデータベースに対する検索結果を得るまでの所要時間は、エッジおよびグラフノードの数が５００００００から６００００００までの間で急峻に増加した。これに対し、エッジおよびグラフノードを増加させたグラフデータベースに対する検索結果を得るまでの所要時間は、エッジおよびグラフノードの数が増加しても所要時間の増加が抑制されていることが分かった。
【００６２】
（実施形態の効果）
以上説明した実施形態のデータベース管理装置１００によれば、有効時刻情報を含むグラフノードとグラフノード間のエッジとを含むグラフデータベースに対し、グラフノードの追加処理および履歴化処理と、エッジの追加処理と、を実行する第１のデータベース処理部１１０と、第１のデータベース処理部１１０によりグラフノードが追加された場合に、追加されたグラフノードのラベルおよび有効時刻情報を表形式またはキーバリュー形式のデータベースに登録する第２のデータベース処理部１２０と、時刻情報が指定された場合に、表形式またはキーバリュー形式のデータベースを参照し、グラフデータベースから、指定された時刻情報を含む起点ノードを起点とするノードであって、指定された時刻情報が有効時刻情報として含まれるノードを抽出するトポロジー抽出部１３０とを備える、情報処理装置を実現することができる。
【００６３】
実施形態のデータベース管理装置１００によれば、指定時刻をプロパティとして含むグラフノードを抽出する場合に、グラフデータベースを検索するのでは無く、リレーショナルデータベースを検索することで指定時刻をプロパティとして含むグラフノードを抽出することができる。この結果、データベース管理装置１００によれば、グラフノードおよびエッジを含むグラフデータが膨大であっても、１つのリレーショナルデータベースに格納された中からインデックス項目をキーに検索するのであれば、条件にマッチしたデータを非常に高速に抽出することができ、グラフデータベースのデータ量が膨大となっても処理時間が増加することを抑制することができる。例えば、指定時刻をプロパティとして含むグラフノードを検索するために、グラフデータベースを検索した場合、履歴化されたグラフノードを含む膨大なデータから管理対象のグラフノードのすべてを検索し、指定時刻のグラフノードを抽出する必要があるため、所要時間が長くなる。よって、実施形態のデータベース管理装置１００は、このような自体を無くすことができる。
【００６４】
また、実施形態のデータベース管理装置１００によれば、第２のデータベース処理部１２０により、第１のデータベース処理部１１０により追加されたグラフノードの第１のラベル名とは異なり、当該追加されたグラフノードを一意に特定する第２のラベル名を作成し、作成した第２のラベル名に対応付けて有効時刻情報を表形式またはキーバリュー形式のデータベースに登録することができる。実施形態のデータベース管理装置１００によれば、指定時刻に対応した時間ノードと、抽出されたグラフノードとの間のエッジを作成する場合に、指定時刻に合致するグラフノードをプロパティで指定するのではなく、第２のラベルを指定することができるので、エッジの作成時間を短縮することができる。
【００６５】
さらに、実施形態のデータベース管理装置１００によれば、トポロジー抽出部１３０により、起点ノードを作成し、指定された時刻情報を検索キーとして表形式またはキーバリュー形式のデータベースにおいて第２のラベル名に対応付けられた有効時刻情報を検索し、指定された時刻情報に合致する有効時刻情報に対応付けられた第２のラベル名のグラフノードを抽出し、起点ノードと、抽出された第２のラベル名のグラフノードとの間の第１のエッジを作成し、第２のラベル名のグラフノード間の第２のエッジをグラフデータベースから抽出することができる。さらに、実施形態のデータベース管理装置１００によれば、抽出した第２のエッジおよび第２のラベル名のグラフノードを含むトポロジーを抽出することができる。実施形態のデータベース管理装置１００によれば、グラフデータベースのデータ量が膨大となっても処理時間が増加することを抑制することができる。
【００６６】
実施形態のデータベース管理装置１００によれば、グラフデータベースに含まれるグラフノードのプロパティに基づいて、グラフノードの生成およびグラフノードの履歴化を行うノード管理部１１０ａと、少なくとも複数のグラフノード間のエッジの生成を行うエッジ管理部１１０ｂと、を備え、ノード管理部により、既存のグラフノードのプロパティが変化した場合、変化したプロパティを含む新たなグラフノードを生成し、エッジ管理部により、生成された新たなノードと、既存のノードとの関係を示す新たなエッジを生成することができる。実施形態のデータベース管理装置１００によれば、グラフデータベースのデータ量が膨大となっても処理時間が増加することを抑制することができる。
【００６７】
（変形例）
上述した実施形態は、ネットワークノードをデータベース化するためにグラフデータベースを構築し、当該グラフデータベースを用いて指定時刻に基づくトポロジーの抽出について説明したが、実施形態のデータベース管理装置１００の利用シーンは、監視対象ネットワークＮＷの管理に限らず、４次元（３次元＋時間）におけるノードの移動を可視化する技術や、人の流れ、交通網といったような利用シーンにも適用することができる。
【００６８】
なお、各実施形態および変形例について説明したが、一例であってこれらに限られず、例えば、各実施形態や各変形例のうちのいずれかや、各実施形態の一部や各変形例の一部を、他の１または複数の実施形態や他の１または複数の変形例と組み合わせて本発明の一態様を実現させてもよい。
【００６９】
なお、本実施形態におけるデータベース管理装置１００の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムを、コンピュータシステムに読み込ませ、実行することにより、データベース管理装置１００に係る上述した種々の処理を行ってもよい。
【００７０】
なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器などのハードウェアを含むものであってもよい。また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリなどの書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。
【００７１】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Ｄｙｎａｍｉｃ
Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置などに格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。
【００７２】
ここで、プログラムを伝送する「伝送媒体」は、インターネットなどのネットワーク（通信網）や電話回線などの通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００７３】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計なども含まれる。
【符号の説明】
【００７４】
１００  データベース管理装置
１１０  第１のデータベース処理部
１１０ａ  ノード管理部
１１０ｂ  エッジ管理部
１２０  第２のデータベース処理部
１３０  トポロジー抽出部
２００  グラフデータベース記憶装置
３００  リレーショナルデータベース記憶装置
４００  ネットワーク管理装置
５００  ユーザ端末装置
【図１】
2020161089.tif 000003
【図２】
2020161089.tif 000004
【図３】
2020161089.tif 000005
【図４】
2020161089.tif 000006
【図５】
2020161089.tif 000007
【図６】
2020161089.tif 000008
【図７】
2020161089.tif 000009
【図８】
2020161089.tif 000010
【図９】
2020161089.tif 000011
【図１０】
2020161089.tif 000012
【図１１】
2020161089.tif 000013
【図１２】
2020161089.tif 000014