(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-14
(45)【発行日】2022-07-25
(54)【発明の名称】情報処理装置、情報処理方法、およびプログラム
(51)【国際特許分類】
G06F 16/28 20190101AFI20220715BHJP
【FI】
G06F16/28
(21)【出願番号】P 2019063047
(22)【出願日】2019-03-28
【審査請求日】2021-03-02
(73)【特許権者】
【識別番号】397065480
【氏名又は名称】エヌ・ティ・ティ・コムウェア株式会社
(74)【代理人】
【識別番号】100161207
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100126664
【氏名又は名称】鈴木 慎吾
(74)【代理人】
【識別番号】100181124
【氏名又は名称】沖田 壮男
(72)【発明者】
【氏名】杉本 昌司
【審査官】鹿野 博嗣
(56)【参考文献】
【文献】特開2008-225545(JP,A)
【文献】米国特許出願公開第2014/0280302(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/28
(57)【特許請求の範囲】
【請求項1】
プロパティを含むノードと前記ノード間のエッジとを含むグラフデータベース
に含まれる
前記ノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行うノード管理部と、複数の前記ノード間のエッジの生成を行うエッジ管理部と、を備える
第1のデータベース処理部と、
前記第1のデータベース処理部によりノードが生成された場合に、生成されたノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録する第2のデータベース処理部と、
を備え、
前記ノード管理部は、既存のノードのプロパティ
または接続先が変化した場合、新たなノードを生成し、
前記エッジ管理部は、
前記既存のノードのプロパティが変化した場合には前記生成された新たなノードと
前記既存のノード
に接続されていたノードとの関係を示す新たなエッジを生成し、
前記既存のノードの接続先が変化した場合には変化後の接続先と前記新たなノードとの関係を示す新たなエッジを生成し、
前記第2のデータベース処理部は、前記新たなノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録する、
情報処理装置。
【請求項2】
前記エッジ管理部は、前記エッジの生成に加えて前記エッジの履歴化を実行する、
請求項1に記載の情報処理装置。
【請求項3】
前記ノード管理部は、既存のノードのプロパティが変化した場合、プロパティが変化した時刻を有効開始時刻として
含む新たなノードを生成する、
請求項1または2に記載の情報処理装置。
【請求項4】
前記ノード管理部は、既存のノードのプロパティが変化した場合、当該既存のノードのプロパティが変化した時刻を有効終了時刻として設定することで、当該既存のノードを履歴化する、
請求項1から3のうち何れか1項に記載の情報処理装置。
【請求項5】
コンピュータが、プロパティを含むノードと前記ノード間のエッジとを含む
グラフデータベースに含まれる
前記ノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行うステップと、
前記ノードが生成された場合に、生成されたノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録するステップと、
前記コンピュータが、
複数の前記ノード間のエッジの生成を行うステップと、を含み、
既存のノードのプロパティ
または接続先が変化した場合、
前記コンピュータが、変化したプロパティを含む新たなノードを生成し、
前記既存のノードのプロパティが変化した場合には
前記生成された新たなノードと
前記既存のノード
に接続されていたノードとの関係を示す新たなエッジを生成
し、前記既存のノードの接続先が変化した場合には変化後の接続先と前記新たなノードとの関係を示す新たなエッジを生成し、
前記新たなノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録する、
情報処理方法。
【請求項6】
前記コンピュータが、
前記エッジの生成に加えて前記エッジの履歴化を実行する、
請求項5に記載の情報処理方法。
【請求項7】
コンピュータに、
プロパティを含むノードと前記ノード間のエッジとを含む
グラフデータベースに含まれる
前記ノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行わせ、
前記ノードが生成された場合に、生成されたノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録させ、
複数の前記ノード間のエッジの生成を行わせるプログラムであって、
既存のノードのプロパティ
または接続先が変化した場合、
変化したプロパティを含む新たなノードを生成させ、
前記既存のノードのプロパティが変化した場合には
前記生成された新たなノードと
前記既存のノード
に接続されていたノードとの関係を示す新たなエッジを生成させ、
前記既存のノードの接続先が変化した場合には変化後の接続先と前記新たなノードとの関係を示す新たなエッジを生成させ、
前記新たなノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録させる、
プログラム。
【請求項8】
前記エッジの生成に加えて前記エッジの履歴化を実行させる、
請求項7に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
グラフデータベース(グラフDB)における時系列管理の方式はあまり知られておらず、唯一下記の非特許文献1に記載されている。非特許文献1においてグラフデータベースの時系列管理方式としては、Basic Cloningと称される方式、Cloning with identity nodeと称される方式、およびTime Treeと称される方式が記載されている。Basic Cloningと称される方式は、ノードの属性が更新されるたびに、時間情報を持つグラフノードの複製を作成する。Cloning with identity nodeと称される方式は、変更されない属性を持つ「アイデンティティ・ノード」と、変更される属性を持つ「サブテンディング・ノード」で構成し、属性が変更されるたびに「サブテンディング・ノード」の複製を作成する。Time Treeと称される方式は時間ノードを多数含むツリーを含み、グラフノードはツリーにおける時間ノードに接続される。
【先行技術文献】
【非特許文献】
【0003】
【文献】インターネット<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
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述したグラフデータベースにおいては、膨大なデータ量のグラフデータベースに対してより高速に検索処理を実行することが望まれている。
【0005】
本発明は、上記の課題に鑑みてなされたものであって、グラフデータベースのデータ量が膨大となっても非常に高速に処理でき、かつ処理時間が増加することを抑制することができる情報処理装置、情報処理方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
(1)本発明の一態様は、プロパティを含むノードと前記ノード間のエッジとを含むグラフデータベースに含まれる前記ノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行うノード管理部と、複数の前記ノード間のエッジの生成を行うエッジ管理部と、を備える第1のデータベース処理部と、前記第1のデータベース処理部によりノードが生成された場合に、生成されたノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録する第2のデータベース処理部と、を備え、前記ノード管理部は、既存のノードのプロパティまたは接続先が変化した場合、新たなノードを生成し、前記エッジ管理部は、前記既存のノードのプロパティが変化した場合には前記生成された新たなノードと前記既存のノードに接続されていたノードとの関係を示す新たなエッジを生成し、前記既存のノードの接続先が変化した場合には変化後の接続先と前記新たなノードとの関係を示す新たなエッジを生成し、前記第2のデータベース処理部は、前記新たなノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録する、情報処理装置である。
【0007】
(2)本発明の一態様は、上記の情報処理装置であって、前記エッジ管理部は、前記エッジの生成に加えて前記エッジの履歴化を実行してよい。
【0008】
(3)本発明の一態様は、上記の情報処理装置であって前記ノード管理部は、既存のノードのプロパティが変化した場合、プロパティが変化した時刻を有効開始時刻として含む新たなノードを生成してよい。
【0009】
(4)本発明の一態様は、上記の情報処理装置であって、前記ノード管理部は、既存のノードのプロパティが変化した場合、当該既存のノードのプロパティが変化した時刻を有効終了時刻として設定することで、当該既存のノードを履歴化してよい。
【0010】
(5)本発明の一態様は、コンピュータが、プロパティを含むノードと前記ノード間のエッジとを含むグラフデータベースに含まれる前記ノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行うステップと、前記ノードが生成された場合に、生成されたノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録するステップと、前記コンピュータが、複数の前記ノード間のエッジの生成を行うステップと、を含み、既存のノードのプロパティまたは接続先が変化した場合、前記コンピュータが、変化したプロパティを含む新たなノードを生成し、前記既存のノードのプロパティが変化した場合には前記生成された新たなノードと前記既存のノードに接続されていたノードとの関係を示す新たなエッジを生成し、前記既存のノードの接続先が変化した場合には変化後の接続先と前記新たなノードとの関係を示す新たなエッジを生成し、前記新たなノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録する、
情報処理方法である。
【0011】
(6)本発明の一態様は、上記の情報処理方法であって、前記エッジの生成に加えて前記エッジの履歴化を実行してよい。
【0012】
(7)本発明の一態様は、コンピュータに、プロパティを含むノードと前記ノード間のエッジとを含むグラフデータベースに含まれる前記ノードのプロパティに基づいて、前記ノードの生成および前記ノードの履歴化を行わせ、前記ノードが生成された場合に、生成されたノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録させ、複数の前記ノード間のエッジの生成を行わせるプログラムであって、既存のノードのプロパティまたは接続先が変化した場合、変化したプロパティを含む新たなノードを生成させ、前記既存のノードのプロパティが変化した場合には前記生成された新たなノードと前記既存のノードに接続されていたノードとの関係を示す新たなエッジを生成させ、前記既存のノードの接続先が変化した場合には変化後の接続先と前記新たなノードとの関係を示す新たなエッジを生成させ、前記新たなノードのラベルおよびプロパティを表形式またはキーバリュー形式のデータベースに登録させる、プログラムである。
【0013】
(8)本発明の一態様は、上記のプログラムであって、前記エッジの生成に加えて前記エッジの履歴化を実行させてよい。
【発明の効果】
【0014】
本発明の一態様によれば、グラフデータベースのデータ量が膨大となっても非常に高速に処理でき、かつ処理時間が増加することを抑制することができる。
【図面の簡単な説明】
【0015】
【
図1】本発明を適用した情報処理システムの一例を示すブロック図である。
【
図2】本発明を適用した実施形態におけるグラフデータベースの一例を示す図である。
【
図3】本発明を適用した実施形態に係る情報処理システムにおいて新たなグラフノードが追加された時の処理手順を示すフローチャートである。
【
図4】本発明を適用した実施形態に係る情報処理システムにおいて新たなグラフノードが追加された時におけるグラフデータベースの変更を説明するための図である。
【
図5】本発明を適用した実施形態に係る情報処理システムにおいてリレーショナルデータベースの一例を示す図である。
【
図6】本発明を適用した実施形態に係る情報処理システムにおいてトポロジーを抽出する処理の処理手順を示すフローチャートである。
【
図7】本発明を適用した実施形態に係る情報処理システムにおいてトポロジーの全体を抽出する処理を説明するための図である。
【
図8】実施形態の情報処理システムにおいてトポロジーの全体を抽出する処理の性能を検証する処理を説明するための図である。
【
図9】実施形態の情報処理システムにおけるトポロジーの全体を抽出する処理の検証結果を示す図である。
【
図10】エッジのみを増加させたグラフデータベースの性能を検証する処理を説明するための図である。
【
図11】実施形態の情報処理システムにおいてノードの増加とそれに伴うエッジを増加させたグラフデータベースの性能を検証する処理を説明するための図である。
【
図12】実施形態におけるデータベース管理装置100の検証結果、および比較例の検証結果を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明を適用した情報処理装置、情報処理方法、およびプログラムを、図面を参照して説明する。
【0017】
(概要)
本発明を適用した実施形態の情報処理システムは、例えば、監視対象ネットワークNWにおけるトポロジーを抽出する処理を行う。監視対象ネットワークNWは、例えば、OS(Operation System)、VM(Virtual Machine)、HW(Hardware)、DC(Data Center)などの多数のネットワークノードを含む。HWは、例えばサーバ装置である。監視対象ネットワークNWにおける各ネットワークノードは、例えば、CPUコア、メモリ容量、ディスク容量といったプロパティにより定義される。各ネットワークノードは、当該監視対象ネットワークNWの使用者により追加されたり、設定変更されたり、削除されたりする。なお、ネットワークノードには、街中のセンサーやカメラなどのデバイスが含まれてよい。
【0018】
情報処理システムは、このような監視対象ネットワークNWにおける過去の状態および現在の状態を把握するためにグラフデータベースを構築する。そして、実施形態の情報処理システムは、グラフデータベースにおける時間管理を行う。グラフデータベースの時間管理とは、例えば、ある時点が指定された場合に、当該時点における監視対象ネットワークNWの状態を表すトポロジーを抽出する処理である。情報処理システムは、トポロジーの抽出結果を、例えばユーザ等に提示することでユーザに監視対象ネットワークNWの管理などを行わせることができる。
【0019】
また、監視対象ネットワークNWにおける各ネットワークノードは、当該監視対象ネットワークNWにおける使用開始時にネットワークノードとして追加され、当該監視対象ネットワークNWにおける使用終了時に履歴化される。
【0020】
(情報処理システムの構成)
図1は、本発明を適用した第1実施形態に係る情報処理システムの一例を示すブロック図である。情報処理システムは、例えば、データベース管理装置100と、グラフデータベース記憶装置200と、リレーショナルデータベース記憶装置300と、ネットワーク管理装置400と、ユーザ端末装置500とを備える。データベース管理装置100、グラフデータベース記憶装置200、リレーショナルデータベース記憶装置300、ネットワーク管理装置400、およびユーザ端末装置500は、NIC(Network Interface Card)や無線通信モジュールなどの通信インターフェース(不図示)を有する。
【0021】
データベース管理装置100は、例えば、第1のデータベース処理部110と、第2のデータベース処理部120と、トポロジー抽出部130とを備える。第1のデータベース処理部110、第2のデータベース処理部120、およびトポロジー抽出部130といった機能部は、例えばCPU(Central Processing Unit)等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【0022】
第1のデータベース処理部110は、例えば、ノード管理部110aおよびエッジ管理部110bを含む。第1のデータベース処理部110は、グラフデータベース記憶装置200に記憶されたグラフデータに基づいてグラフデータベースに関する処理を実行する。グラフデータベースに関する処理には、例えば、グラフデータとしてのグラフノードの追加処理および履歴化処理や、エッジの追加処理および履歴化処理が含まれる。グラフデータベースに関する処理には、トポロジーの抽出時に、グラフデータベース記憶装置200からグラフデータを読み出す処理が含まれる。なお、第1のデータベース処理部110は、必ずしも、エッジの履歴化処理を行わなくてもよい。
【0023】
第2のデータベース処理部120は、リレーショナルデータベース記憶装置300に記憶されたRDB(Relational Database)データに基づいてリレーショナルデータベースに関する処理を実行する。リレーショナルデータベースに関する処理には、例えば、RDBデータとしてのレコードの追加、レコードの変更、レコードの削除などの処理が含まれる。リレーショナルデータベースに関する処理には、トポロジーの抽出時に、リレーショナルデータベース記憶装置300からRDBデータを読み出す処理が含まれる。
【0024】
トポロジー抽出部130は、例えばユーザが指定した時刻(指定時刻)に基づいて、当該指定時刻の時間ノードを頂点としたトポロジーを抽出する。なお、トポロジー抽出部130は、抽出したトポロジーを表示するための情報を、ユーザ端末装置500に出力する処理が含まれてよい。なお、トポロジー抽出部130は、必ずしも、トポロジーの全体の抽出を行わなくてよく、起点ノードを起点とするグラフノードであって、指定された時刻情報を含む有効終了時刻のグラフノードの抽出を行えばよい。
【0025】
グラフデータベース記憶装置200およびリレーショナルデータベース記憶装置300は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置により実現される。グラフデータベース記憶装置200およびリレーショナルデータベース記憶装置300は、例えば、SAN(Storage Area Network)やNAS(Network Attached Storage)により実現されてよい。
【0026】
グラフデータベース記憶装置200は、グラフデータベースを構築するためのグラフデータを記憶する。グラフデータには、ノード情報とエッジ情報とが含まれる。ノード情報は、ラベル名(ノード名)およびノードのプロパティを含む情報である。グラフノードのプロパティは、例えば、有効開始時刻および有効終了時刻であるが、これに限定されない。グラフノードのプロパティは、グラフノードを特定する情報であれば、バーチャルマシンを特定するCPUコアに関する情報、メモリ容量、ディスク容量であればよい。エッジ情報は、グラフノード間の関係を特定するための情報である。すなわち、エッジ情報は、グラフノード間のつながりを特定する。
【0027】
なお、本実施形態においては、監視対象ネットワークNWにおけるノードをネットワークノードと記載し、グラフデータベースにおけるノードをグラフノードと記載する。また、本実施形態では、エッジ情報は、例えば、単に「エッジ」、「リレーション」、「リレーションシップ」などの当該技術分野において使用されている用語に読み替えてよい。
【0028】
リレーショナルデータベース記憶装置300は、リレーショナルデータベースを構築するためのRDBデータを記憶する。なお、リレーショナルデータベースは、表形式またはキーバリュー形式のデータベースの一例であって、本実施形態は、リレーショナルデータベース以外の表形式またはキーバリュー形式のデータベースであっても適用可能である。
【0029】
ネットワーク管理装置400は、監視対象ネットワークNWにおけるネットワークノードの状態変化を示す情報を取得し、取得した情報をデータベース管理装置100に送信する。ネットワークノードの状態変化を示す情報は、例えば、新たなネットワークノードの追加および削除、既存のネットワークノードのプロパティの変化、ネットワークノード間の接続関係の変化などである。ネットワークノードのプロパティは、有効開始時刻および有効終了時刻であるが、これに限定されず、ネットワークノードのプロパティは、ネットワークノードを特定する情報であれば、バーチャルマシンを特定するCPUコアに関する情報、メモリ容量、ディスク容量であってもよい。
【0030】
ユーザ端末装置500は、例えば、表示部、操作部、およびCPU等を備えたパーソナルコンピュータである。ユーザ端末装置500は、ユーザの操作を受け付け、ユーザの操作に基づく時点を指定したトポロジーの抽出要求をデータベース管理装置100に送信する。ユーザ端末装置500は、トポロジーの抽出要求に対する応答としてトポロジーを表示するための情報を取得し、トポロジーを表示する。なお、本実施形態においてはある時点を指定することを説明するが、これに限らず、開始時点から終了時点までの時間帯を指定しても本実施形態の処理は適用可能である。
【0031】
(グラフデータベースの説明)
以下、グラフデータベースについて説明する。
図2は、本発明を適用した実施形態におけるグラフデータベースの一例を示す図である。なお、本実施形態のグラフデータベースは、例えば、ONAP(Linux (登録商標) FoundationプロジェクトであるOpen Network Automation Platformプロジェクト)の文書「Temporal logic for attributes in a graph data base」におけるBasic Cloningと称される方式のデータベースである。
【0032】
図2に示したグラフデータベースは、DCノードを頂点として、DCノードにHWノードが接続され、HWノードにVMノードが接続され、VMノードにOSノードが接続されている。各グラフノードには、ラベル名としてN1~N11が登録される。なお、各グラフノードには複数のラベル名を与えてよい。DCノードとHWノード間のエッジ、HWノードとVMノード間のエッジ、およびVMノードとOSノード間のエッジには、タイプ(エッジの名前)としてE1~E10が登録される。また、各エッジには、一方のグラフノードから他方のグラフノードへの方向が設定される。
【0033】
各グラフノード、および各エッジには、プロパティとして有効開始時刻および有効終了時刻が登録される。有効終了時刻は、グラフノードおよびエッジがそれぞれ登録された時刻が設定される。有効終了時刻は、グラフノードおよびエッジが有効である場合(履歴化されていない場合)、有効開始時刻から十分に遠い時刻が設定される。有効終了時刻は、グラフノードおよびエッジが履歴化された場合、履歴化された時刻が設定される。
【0034】
(グラフデータベースの更新処理)
図3は、本発明を適用した実施形態に係る情報処理システムにおいて新たなノードが追加された時の処理手順を示すフローチャートである。
【0035】
第1のデータベース処理部110は、新たなグラフノードが追加する必要があるか否かを判定する(ステップS100)。第1のデータベース処理部110は、ネットワーク管理装置400からネットワークノードの状態が変化したことを示す情報や、新たなネットワークノードが追加されたことを示す情報や、既存のネットワークノードが削除されたことを示す情報などの監視対象ネットワークNWの変化を示す情報を受信した場合、新たなグラフノードが追加する必要があると判定する。第1のデータベース処理部110は、新たなグラフノードが追加する必要がない場合(ステップS100:YES)、当該判定を繰り返し、新たなグラフノードが追加する必要がある場合、
図3(a)のステップS102に処理を進める。なお、ステップS100の判定を実行する頻度は任意であってよい。
【0036】
図3(a)に示すように、次に第1のデータベース処理部110は、グラフデータベースに対するグラフノードおよびエッジの追加処理および履歴化処理を行う(ステップS102)。第1のデータベース処理部110は、既存のネットワークノードの状態変化ではなく、新規のネットワークノードの追加である場合には既存のグラフノードがないので、グラフノードおよびエッジの履歴化処理を行う必要はない。なお、ステップS102は、
図3(b)のようにステップS104の後でもよい。
【0037】
図3(a)に示すように、次に第2のデータベース処理部120は、リレーショナルデータベースを更新する(ステップS104)。第2のデータベース処理部120は、ステップS102におけるグラフノードの追加および履歴化に基づいて、リレーショナルデータベースの更新を行う。なお、ステップS104は、
図3(b)のようにステップS102の前でもよい。その場合、リレーショナルデータベースのレコード追加および履歴化に基づいて、グラフデータベースのノード追加および履歴化を行う。
【0038】
(グラフノードおよびエッジの追加処理および履歴化処理(ステップS102))
図4は、本発明を適用した実施形態に係る情報処理システムにおいて新たなグラフノードが追加された時におけるグラフデータベースの変更を説明するための図である。
図4(a)は、グラフノードの追加前のグラフデータベースの一例を示す図であり、
図4(b)は、グラフノードの追加後のグラフデータベースの一例を示す図である。
【0039】
図4(a)に示すように、グラフノード(OS1)とグラフノード(VM1)とグラフノード(HW1)とがエッジ(RUNS_ON)により接続され、グラフノード(VM2)とグラフノード(HW2)とがエッジ(RUNS_ON)により接続されているものとする。なお、各グラフノードには、複数のラベル名が付与されている。例えば、グラフノード(OS1)には、第1のラベル名としての「OS」と、第2のラベル名としての「OS_5」とが付与されている。第1のラベル名は、例えば、管理対象としてのネットワークノードの種類を示す。第2のラベル名は、グラフデータベースにおいてグラフノード(OS1)を一意に識別するためのラベル名であって、グラフノード(OS1)の追加処理時にリレーショナルデータベースに登録されるラベル名である。第2のラベル名は、なんらかの方法でグラフノードを一意に識別するための名称であればよく、例えば、UUID(Universally Unique Identifier)やリレーショナルデータベースのシーケンス機能により払い出されたIDであってもよい。また、各グラフノードには、プロパティとして有効開始時刻(startTime)および有効終了時刻(endTime)が設定されている。各エッジにもプロパティとして有効開始時刻および有効終了時刻が設定されているが、図示していない。なお、エッジにプロパティとして有効開始時刻、有効終了時刻を保持しなくてもよい。
【0040】
その後、グラフノード(VM1)に相当するネットワークノードが移動し、グラフノード(HW1)に相当するネットワークノードから離れてグラフノード(HW2)に相当するネットワークノードに接続したとする。この場合、第1のデータベース処理部110は、
図4(b)に示すように、新たなグラフノード(VM1)を追加し、既存のグラフノード(VM1)を履歴化する。新たなグラフノード(VM1)を追加する処理は、例えば、既存のグラフノード(VM1)のプロパティのうち、有効開始時刻をグラフノード(VM1)に相当するネットワークノードが移動した時刻に設定し、有効終了時刻を、設定した有効開始時刻より十分に遠い時刻に設定する処理である。既存のグラフノード(VM1)を履歴化する処理は、グラフノード(VM1)に相当するネットワークノードが移動した時刻を、履歴化対象のグラフノード(VM1)の有効終了時刻に設定する処理である。
【0041】
第1のデータベース処理部110は、追加されたグラフノード(VM1)と、既存のグラフノードとを接続するエッジを追加する。第1のデータベース処理部110は、グラフノード(OS1)とグラフノード(VM1)とを接続し、グラフノード(OS1)からグラフノード(VM1)に向かう方向を持つエッジ(RUNS_ON)を追加する。第1のデータベース処理部110は、グラフノード(VM1)とグラフノード(HW2)とを接続し、グラフノード(VM1)からグラフノード(HW2)に向かう方向を持つエッジ(RUNS_ON)を追加する。第1のデータベース処理部110は、双方のエッジのプロパティとしての有効開始時刻を、グラフノード(VM1)に相当するネットワークノードが移動した時刻に設定し、有効終了時刻を、設定した有効開始時刻より十分に遠い時刻に設定する。なお、エッジにプロパティとして有効開始時刻、有効終了時刻を保持しなくてもよい。保持しない場合は、有効開始時刻と有効終了時刻の設定は不要である。
【0042】
(リレーショナルデータベースの更新処理(ステップS104))
図5は、本発明を適用した実施形態に係る情報処理システムにおいてリレーショナルデータベースの一例を示す図である。
リレーショナルデータベースは、ネットワークノードの名称と、第1のラベル名、第2のラベル名、有効開始時刻(start Time)、および有効開始時刻(end Time)を対応付けたデータベースである。リレーショナルデータベースにおける各レコードは、時系列に登録される。すなわち、新たなレコードは、最下位のレコードとして追加される。リレーショナルデータベースに登録されるグラフノードの名称(ラベル名)は、上述したように、グラフデータベースにおいてグラフノード(OS1)を一意に識別するための第2のラベル名である。
【0043】
なお、リレーショナルデータベースにおいて、有効終了時刻として登録されている「∞」は、有効開始時刻よりも十分に遠い時刻である。すなわち、リレーショナルデータベースにおいて、有効終了時刻が∞のレコードに対応するグラフノードは未だ履歴化されていないグラフノードであり、有効終了時刻が∞でないレコードに対応するグラフノードは既に履歴化されたグラフノードである。
【0044】
図4を参照して説明したように、新たなグラフノード(VM1)が追加され、既存のグラフノード(VM1)が履歴化された場合、第2のデータベース処理部120は、新たなグラフノード(VM1)のネットワークノードの名称、第1のラベル名、第2のラベル名、有効開始時刻、および有効終了時刻を登録する。また、第2のデータベース処理部120は、履歴化対象のグラフノード(VM1)に対応付けられた有効終了時刻を更新する。
【0045】
(トポロジーの抽出処理)
図6は、本発明を適用した実施形態に係る情報処理システムにおいてトポロジーを抽出する処理の処理手順を示すフローチャートである。
トポロジー抽出部130は、例えばユーザ端末装置500から受信した情報に基づいて時刻が指定されたか否かを判定する(ステップS200)。なお、以下の説明において、トポロジー抽出部130に指定された時点を指定時点とも記載する。トポロジー抽出部130は、時刻が指定されない場合(ステップS200:NO)、当該判定を繰り返し、時刻が指定された場合には(ステップS200:YES)、ステップS202に処理を進める。
【0046】
次にトポロジー抽出部130は、リレーショナルデータベース(RDB)の検索を行う(ステップS202)。トポロジー抽出部130は、例えば、第2のデータベース処理部120に対して指定時刻を検索キーとした検索を依頼する。
【0047】
次に第2のデータベース処理部120は、指定時刻を検索キーとした検索処理を行うことで、リレーショナルデータベースから指定時刻に合致するグラフノードを抽出する(ステップS204)。このとき、第2のデータベース処理部120は、有効開始時刻から有効終了時刻までの期間に指定時刻を含むレコードを抽出する。第2のデータベース処理部120は、抽出したレコードを、検索結果としてトポロジー抽出部130に出力する。
【0048】
次にトポロジー抽出部130は、指定時刻に対応する時間ノードを生成する(ステップS206)。指定時刻に対応する時間ノードとは、プロパティとして指定時刻を示す情報が付与されたグラフノードである。
【0049】
次にトポロジー抽出部130は、時間ノードと抽出されたグラフノード間にエッジを作成する(ステップS208)。時間ノードと抽出されたグラフノード間のエッジは、抽出されたグラフノードから時間ノードに向かう方向を持つエッジである。なお、エッジのタイプは、例えば各エッジを一意に特定する名称を設定してよい。また、エッジのプロパティは無くてもよい。
【0050】
次にトポロジー抽出部130は、トポロジーの全体を抽出する(ステップS210)。トポロジー抽出部130は、時間ノードを起点に時間ノードと抽出されたグラフノード間のエッジを辿ることにより、抽出されたグラフノードと抽出されたグラフノード間のエッジを取得する。具体的に、トポロジー抽出部130は、抽出されたグラフノードおよびグラフノード間のエッジをグラフデータベースから抽出する要求を第1のデータベース処理部110に出力する。第1のデータベース処理部110は、要求に従って、抽出されたグラフノードおよびグラフノード間に存在するエッジを、グラフデータベースから抽出する。この結果、トポロジー抽出部130は、抽出されたグラフノードとグラフノード間のエッジを含むトポロジーの全体を抽出することができる。
【0051】
なお、本実施形態では、トポロジーの全体の抽出まで行ったが、時間ノードに接続されるグラフノードの抽出までの処理を行って、処理を終了してよい。
上述したトポロジーの抽出処理について具体的に説明する。
図7は、本発明を適用した実施形態に係る情報処理システムにおいてトポロジーの全体を抽出する処理を説明するための図である。
【0052】
ユーザ端末装置500は、ユーザが例えば2017年2月15日の時点のトポロジーの全体を抽出したい場合に、2017年2月15日という時点を受け付けた場合、当該時点を示す情報をデータベース管理装置100に供給する。トポロジー抽出部130は、2017年2月15日を指定時刻として、第2のデータベース処理部120にリレーショナルデータベースを検索させる。これにより、トポロジー抽出部130は、検索結果として、グラフノードN11、N15、N12、およびN13に相当するレコードを取得する。そして、トポロジー抽出部130は、時間ノードN10を作成する。
【0053】
次に、トポロジー抽出部130は、グラフノードN11から時間ノードN10への方向を持つエッジE11、グラフノードN15から時間ノードN10への方向を持つエッジE12、グラフノードN12から時間ノードN10への方向を持つエッジE13、およびグラフノードN13から時間ノードN10への方向を持つエッジE14を作成する。
【0054】
次に、トポロジー抽出部130は、時間ノードN10を起点に時間ノードN10と抽出されたグラフノード間のエッジを辿ることにより、抽出されたグラフノードと抽出されたグラフノード間のエッジを取得する。このとき、トポロジー抽出部130は、抽出されたグラフノードおよび抽出されたグラフノード間に接続されたエッジを抽出する要求を、第1のデータベース処理部110に出力する。第1のデータベース処理部110は、グラフデータベースから、抽出されたグラフノードN11、N12、N13、N15と抽出されたグラフノード間に接続されたエッジE15、エッジE16、グラフノードN13、およびグラフノードN15を抽出する。第1のデータベース処理部110は、グラフノードN14およびN16は、時間ノードを起点にしたとき範囲外なので抽出されていない。よって、グラフノードN14およびN16に接続されるエッジも抽出されない。この結果、第2のデータベース処理部120は、グラフノードN11、エッジE15、グラフノードN12、エッジE16、グラフノードN13、およびグラフノードN15を、抽出結果としてトポロジー抽出部130に出力する。
【0055】
トポロジー抽出部130は、指定時刻に基づいて抽出されたグラフノード(N11、N12、N13、およびN15)と、抽出されたグラフノード(N11、N12、N13、N15)に接続されたエッジ(E15、E16)を含むトポロジーの全体を抽出することができる。
【0056】
トポロジー抽出部130は、トポロジーの抽出結果として、ユーザ端末装置500に、抽出したグラフノード(N11、N12、N13、およびN15)、およびエッジ(E15、E16)を含む情報を送信する。トポロジー抽出部130は、トポロジーの抽出結果として、グラフノードおよびエッジのプロパティを含む情報を送信する。これにより、ユーザ端末装置500は、トポロジーの全体の表示処理等を行うことができる。なお、トポロジー抽出部130は、ユーザ端末装置500においてトポロジーの全体の表示処理等を行うことができれば、プロパティを送信せず、グラフノードおよびエッジのプロパティの要求をユーザ端末装置500から受け付けた場合に、当該要求に対応するグラフノードおよびエッジのプロパティをユーザ端末装置500に送信してもよい。
【0057】
(性能検証1)
以下、トポロジーの全体を抽出する処理の性能を検証する。
図8は、実施形態の情報処理システムにおいてトポロジーの全体を抽出する処理の性能を検証する処理を説明するための図である。
グラフノード(HW)、グラフノード(VM)、およびグラフノード(OS)を順次増加させると共に当該グラフノード間のエッジも順次増加させた。そして、グラフノードおよびエッジを増加させるごとに、(1)指定時刻が有効開始時刻および有効終了時刻により特定される期間内となるグラフノードをリレーショナルデータベースから検索し、(2)指定時刻の時間ノードを作成し、(3)作成した時間ノードと、抽出されたグラフノードとの間にエッジを作成し、(4)時間ノードを起点とした全てのエッジを辿ることで、指定時刻のトポロジーの全体を抽出する処理を行い、当該(1)から(4)の処理の所要時間を測定した。
【0058】
図9は、実施形態の情報処理システムにおけるトポロジーの全体を抽出する処理の検証結果を示す図である。
図9において、横軸はグラフデータベースのグラフノードの全数である。縦軸は、上記(1)から(4)の処理の所要時間である。検証結果によると、非常に高速な抽出が可能で、グラフノードの全数が増加しても所要時間の増加が抑制されていることが分かった。
【0059】
(性能検証2)
以下、第1のグラフノードが、第2のグラフノードに接続された状態から第3のグラフノードに接続された状態に変化した場合において、エッジのみを増加させたグラフデータベース(
図10、比較例)と、グラフノードおよびエッジの双方を増加させたグラフデータベース(
図11、実施形態)との双方の性能検証を行った。
図10は、エッジのみを増加させたグラフデータベースの性能を検証する処理を説明するための図である。
図11は、実施形態の情報処理システムにおいてグラフノードとエッジを増加させたグラフデータベースの性能を検証する処理を説明するための図である。
【0060】
図10に示したように、エッジのみを増加させるごとに、グラフデータベースから指定時刻に存在するグラフノード(VM)と当該グラフノード(VM)に繋がるグラフノード(DC)からグラフノード(OS)までを抽出する検索クエリーを発行し、検索結果を得るまでの所要時間を測定した。
図11に示したように、エッジおよびグラフノードを増加させるごとに、グラフデータベースから指定時刻に存在するグラフノード(VM)と当該グラフノード(VM)に繋がるグラフノード(DC)からグラフノード(OS)までを抽出する検索クエリーを発行し、検索結果を得るまでの所要時間を測定した。
【0061】
図12は、実施形態におけるデータベース管理装置100の検証結果、および比較例の検証結果を示す図である。
図12において、横軸はグラフデータベースのエッジおよびグラフノードの全数である。縦軸は、検索結果を得るまでの所要時間である。検証結果によると、エッジのみを増加させたグラフデータベースに対する検索結果を得るまでの所要時間は、エッジおよびグラフノードの数が5000000から6000000までの間で急峻に増加した。これに対し、エッジおよびグラフノードを増加させたグラフデータベースに対する検索結果を得るまでの所要時間は、エッジおよびグラフノードの数が増加しても所要時間の増加が抑制されていることが分かった。
【0062】
(実施形態の効果)
以上説明した実施形態のデータベース管理装置100によれば、有効時刻情報を含むグラフノードとグラフノード間のエッジとを含むグラフデータベースに対し、グラフノードの追加処理および履歴化処理と、エッジの追加処理と、を実行する第1のデータベース処理部110と、第1のデータベース処理部110によりグラフノードが追加された場合に、追加されたグラフノードのラベルおよび有効時刻情報を表形式またはキーバリュー形式のデータベースに登録する第2のデータベース処理部120と、時刻情報が指定された場合に、表形式またはキーバリュー形式のデータベースを参照し、グラフデータベースから、指定された時刻情報を含む起点ノードを起点とするノードであって、指定された時刻情報が有効時刻情報として含まれるノードを抽出するトポロジー抽出部130とを備える、情報処理装置を実現することができる。
【0063】
実施形態のデータベース管理装置100によれば、指定時刻をプロパティとして含むグラフノードを抽出する場合に、グラフデータベースを検索するのでは無く、リレーショナルデータベースを検索することで指定時刻をプロパティとして含むグラフノードを抽出することができる。この結果、データベース管理装置100によれば、グラフノードおよびエッジを含むグラフデータが膨大であっても、1つのリレーショナルデータベースに格納された中からインデックス項目をキーに検索するのであれば、条件にマッチしたデータを非常に高速に抽出することができ、グラフデータベースのデータ量が膨大となっても処理時間が増加することを抑制することができる。例えば、指定時刻をプロパティとして含むグラフノードを検索するために、グラフデータベースを検索した場合、履歴化されたグラフノードを含む膨大なデータから管理対象のグラフノードのすべてを検索し、指定時刻のグラフノードを抽出する必要があるため、所要時間が長くなる。よって、実施形態のデータベース管理装置100は、このような自体を無くすことができる。
【0064】
また、実施形態のデータベース管理装置100によれば、第2のデータベース処理部120により、第1のデータベース処理部110により追加されたグラフノードの第1のラベル名とは異なり、当該追加されたグラフノードを一意に特定する第2のラベル名を作成し、作成した第2のラベル名に対応付けて有効時刻情報を表形式またはキーバリュー形式のデータベースに登録することができる。実施形態のデータベース管理装置100によれば、指定時刻に対応した時間ノードと、抽出されたグラフノードとの間のエッジを作成する場合に、指定時刻に合致するグラフノードをプロパティで指定するのではなく、第2のラベルを指定することができるので、エッジの作成時間を短縮することができる。
【0065】
さらに、実施形態のデータベース管理装置100によれば、トポロジー抽出部130により、起点ノードを作成し、指定された時刻情報を検索キーとして表形式またはキーバリュー形式のデータベースにおいて第2のラベル名に対応付けられた有効時刻情報を検索し、指定された時刻情報に合致する有効時刻情報に対応付けられた第2のラベル名のグラフノードを抽出し、起点ノードと、抽出された第2のラベル名のグラフノードとの間の第1のエッジを作成し、第2のラベル名のグラフノード間の第2のエッジをグラフデータベースから抽出することができる。さらに、実施形態のデータベース管理装置100によれば、抽出した第2のエッジおよび第2のラベル名のグラフノードを含むトポロジーを抽出することができる。実施形態のデータベース管理装置100によれば、グラフデータベースのデータ量が膨大となっても処理時間が増加することを抑制することができる。
【0066】
実施形態のデータベース管理装置100によれば、グラフデータベースに含まれるグラフノードのプロパティに基づいて、グラフノードの生成およびグラフノードの履歴化を行うノード管理部110aと、少なくとも複数のグラフノード間のエッジの生成を行うエッジ管理部110bと、を備え、ノード管理部により、既存のグラフノードのプロパティが変化した場合、変化したプロパティを含む新たなグラフノードを生成し、エッジ管理部により、生成された新たなノードと、既存のノードとの関係を示す新たなエッジを生成することができる。実施形態のデータベース管理装置100によれば、グラフデータベースのデータ量が膨大となっても処理時間が増加することを抑制することができる。
【0067】
(変形例)
上述した実施形態は、ネットワークノードをデータベース化するためにグラフデータベースを構築し、当該グラフデータベースを用いて指定時刻に基づくトポロジーの抽出について説明したが、実施形態のデータベース管理装置100の利用シーンは、監視対象ネットワークNWの管理に限らず、4次元(3次元+時間)におけるノードの移動を可視化する技術や、人の流れ、交通網といったような利用シーンにも適用することができる。
【0068】
なお、各実施形態および変形例について説明したが、一例であってこれらに限られず、例えば、各実施形態や各変形例のうちのいずれかや、各実施形態の一部や各変形例の一部を、他の1または複数の実施形態や他の1または複数の変形例と組み合わせて本発明の一態様を実現させてもよい。
【0069】
なお、本実施形態におけるデータベース管理装置100の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムを、コンピュータシステムに読み込ませ、実行することにより、データベース管理装置100に係る上述した種々の処理を行ってもよい。
【0070】
なお、ここでいう「コンピュータシステム」とは、OSや周辺機器などのハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリなどの書き込み可能な不揮発性メモリ、CD-ROMなどの可搬媒体、コンピュータシステムに内蔵されるハードディスクなどの記憶装置のことをいう。
【0071】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネットなどのネットワークや電話回線などの通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic
Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置などに格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。
【0072】
ここで、プログラムを伝送する「伝送媒体」は、インターネットなどのネットワーク(通信網)や電話回線などの通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0073】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計なども含まれる。
【符号の説明】
【0074】
100 データベース管理装置
110 第1のデータベース処理部
110a ノード管理部
110b エッジ管理部
120 第2のデータベース処理部
130 トポロジー抽出部
200 グラフデータベース記憶装置
300 リレーショナルデータベース記憶装置
400 ネットワーク管理装置
500 ユーザ端末装置