(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6332802
(24)【登録日】2018年5月11日
(45)【発行日】2018年5月30日
(54)【発明の名称】仮想状態定義装置、仮想状態定義方法及び仮想状態定義プログラム
(51)【国際特許分類】
G06F 12/00 20060101AFI20180521BHJP
G06F 17/30 20060101ALI20180521BHJP
【FI】
G06F12/00 511C
G06F12/00 513D
G06F17/30 330B
【請求項の数】3
【全頁数】10
(21)【出願番号】特願2014-171593(P2014-171593)
(22)【出願日】2014年8月26日
(65)【公開番号】特開2016-45863(P2016-45863A)
(43)【公開日】2016年4月4日
【審査請求日】2016年12月27日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504202472
【氏名又は名称】大学共同利用機関法人情報・システム研究機構
(74)【代理人】
【識別番号】100119677
【弁理士】
【氏名又は名称】岡田 賢治
(74)【代理人】
【識別番号】100115794
【弁理士】
【氏名又は名称】今下 勝博
(72)【発明者】
【氏名】水谷 后宏
(72)【発明者】
【氏名】明石 修
(72)【発明者】
【氏名】漆谷 重雄
(72)【発明者】
【氏名】福田 健介
【審査官】
桜井 茂行
(56)【参考文献】
【文献】
特開2011−013989(JP,A)
【文献】
米国特許出願公開第2011/0004617(US,A1)
【文献】
特開2014−021553(JP,A)
【文献】
特開平11−265395(JP,A)
【文献】
特開2001−109758(JP,A)
【文献】
米国特許出願公開第2005/0289174(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
ユーザ装置からのデータ読み出し要求に応じてデータベースが有するデータを読み出すデータベース問合せ記述を保存する設定済問合せ記述保存部と、
ユーザ装置が占有する又は複数のユーザ装置で共有する、前記データベース問合せ記述に対する変換規則である仮想状態定義を保存する設定済仮想状態定義保存部と、
前記ユーザ装置からのデータ読み出し要求に応じて出力された前記設定済み問合せ記述保存部からの前記データベース問合せ記述と、前記設定済仮想状態定義保存部が保存する前記仮想状態定義の中から前記ユーザ装置に対応する仮想状態定義とを合成して合成問合せ記述を生成する問合せ要求合成部と、
前記問合せ要求合成部が生成した前記合成問合せ記述を用いて前記データベースからデータを読み出し、前記データ読み出し要求を行ったユーザ装置に提供する問合せ記述言語変換部と、
を備える、
仮想状態定義装置。
【請求項2】
ユーザ装置からのデータ読み出し要求に応じてデータベースが有するデータを読み出すデータベース問合せ記述と、ユーザ装置が占有する又は複数のユーザ装置で共有する、前記データベース問合せ記述に対する変換規則である仮想状態定義とを合成して合成問合せ記述を生成する問合せ要求合成手順と、
前記合成問合せ記述を用いて、前記データベースからデータを読み出すデータベース問合せ手順と、
前記データベースから読み出したデータを、前記データ読み出し要求を行ったユーザ装置に提供する問合せデータ提供手順と、
を順に実行する仮想状態定義方法。
【請求項3】
コンピュータを、
請求項1に記載の仮想状態定義装置が備える前記設定済問合せ記述保存部、前記設定済仮想状態定義保存部、前記問合せ要求合成部、及び前記問合せ記述言語変換部として機能させるための仮想状態定義プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想状態定義装置、仮想状態定義方法及び仮想状態定義プログラムに関する。
【背景技術】
【0002】
広域ネットワークの挙動解析では、分散環境に存在する、特に自分の管理外にあるデータも統合して解析する必要がある場合も少なくない。分散環境に存在する、特に自分の管理外にあるデータベースの値を書き換える要求がある場合は、データベース(Data base,DB)の値を手元にコピーし、必要部分を書き換える必要があった。
【0003】
しかしながら、ネットワークデータは、フローデータなど、大量のデータを日々生成するため、自分の手元にデータをコピーして分析することは現実的ではない。特にDB形式として標準化された手段で保存されている場合は、リモートからDB問合せ言語を用いて、自分がその時に必要とするデータを動的に取得するケースが多い。例えば、非特許文献1のネットワーク診断システムIM−VISでは、def_queryに相当するデータベース問合せ記述からSQLを生成する。
【0004】
一方、ネットワーク情報解析において、保存されているデータを自分の解析目的に合致するように、あるいはローカルなネットワーク環境の状況にあうように調整するため、ある条件にマッチした値を修正した上で解析したりする状況も存在する。同様に、ネットワーク機器の設定を改善した場合の効果を解析するため、修正した値を予想値として用いて、その効果を解析をすることも少なくない。
【0005】
そのような分散環境でのネットワーク情報解析において、巨大なデータを外部からまるごとコピーして、値を要求にあうように修正して用いるのは、ストレージの制約から困難なことが多い。同時に、コピーおよびデータベースのインデックスを作成する時間が膨大になるため、処理時間も莫大となることが多く現実的でない。更には、そもそもコピー自体が制度的に許諾されないケースもある。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】明石修、水谷后宏、福田健介、漆谷重雄、「大規模ネットワークの挙動解析に向けた一考察」、ネットワークシステム研究会技報、電子情報通信学会、Apr.2014
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、データベースのデータをコピーすることなく、仮想的にデータベースのデータを変換することのできる仮想状態定義装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の仮想状態定義装置は、ユーザ装置とデータベース装置との間に設けられ、入力されたデータベース問合せ記述をデータベース問合せ言語に変換する変換装置において、入力された分散環境にあるデータベースの値を修正する記述を、複数のユーザと共用可能な仮想状態定義として仮想状態定義ファイルに保持し、データベースを実際には書き換えずに、入力されたデータベース問合せ記述と仮想状態定義ファイルに保持された仮想定義を合成してデータベース問合せ言語に変換する。
【0009】
具体的には、本発明に係る仮想状態定義装置は、データベースが有するデータについての変換規則である仮想状態定義を、各ユーザ装置からの指定に従い、前記ユーザ装置ごとに生成する仮想状態定義部と、前記ユーザ装置からのデータ読み出し要求に応じてデータベースから前記ユーザ装置が要求するデータを読み出し、前記仮想状態定義部が生成したそれぞれの前記ユーザ装置ごとの前記仮想状態定義の変換規則に従って前記データベースから読み出したデータを変換して、変換後のデータベースのデータを前記ユーザ装置に提供する変換部とを備える。
【0010】
本発明に係る仮想状態定義装置は、仮想状態定義部を備えるので、ユーザ装置ごとに仮想状態定義を生成し、必要に応じて仮想状態定義を修正することができる。また、本発明に係る仮想状態定義装置は、変換部を備えるので、生成した仮想状態定義を使用してユーザ装置に仮想状態定義に従って変換させたデータベースのデータを提供することができる。本発明に係る仮想状態定義装置は、仮想状態定義部と変換部を備えるので、データベースのデータ自体には修正を加えずに、かつ、データベースのデータを保存せずに、ユーザ装置に仮想的に修正されたデータベースのデータを提供することができる。
【0011】
本発明の仮想状態定義方法は、ユーザ装置からのデータ読み出し要求に対応するデータベース問合せ記述と、仮想状態定義を合成して合成問合せ記述を生成する問合せ要求合成手順と、前記合成問合せ記述を用いて、ユーザ装置から要求されたデータベースのデータを読み出すデータベース問合せ手順と、前記データベースから読み出したデータを、前記合成問合せ記述が有する前記仮想状態定義を用いて変換し、変換後のデータを問合せ実行要求を受けたユーザ装置に提供する問合せデータ変換手順とを順に備える。
【0012】
本発明の仮想状態定義プログラムは、コンピュータを、仮想状態定義部及び変換部として機能させる。
【発明の効果】
【0013】
本発明によれば、データベースのデータをコピーすることなく、仮想的にデータベースのデータを変換することのできる仮想状態定義装置を提供することができる。
【図面の簡単な説明】
【0014】
【
図1】本発明の実施形態に係る仮想状態定義装置と、仮想状態定義装置に接続されたユーザ装置及びデータベースの第1例の模式図を示す。
【
図2】本発明の実施形態に係る仮想状態定義装置と、仮想状態定義装置に接続されたユーザ装置及びデータベースの第2例の模式図を示す。
【
図3】本発明の実施形態に係る仮想状態定義方法の一例のフローチャートを示す。
【
図4】本発明の実施形態に係るネットワーク情報表の一例を示す。
【
図5】本発明の実施形態に係る問合せ記述の一例を示す。
【
図6】本発明の実施形態に係る問合せ記述の一例をデータベース問合せ言語に変換した場合の例を示す。
【
図7】本発明の実施形態に係る、ユーザ装置が取得するデータの一例を示す。
【
図8】本発明の実施形態に係る仮想状態定義の一例を示す。
【
図9】本発明の実施形態に係る合成問合せ記述の一例をデータベース問合せ言語に変換した場合の例を示す。
【
図10】本発明の実施形態に係る、ユーザ装置が取得するデータの一例を示す。
【
図11】本発明の実施形態に係る仮想状態定義に従って仮想的に構築されるデータベースのデータの一例を示す。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【0016】
図1に本発明の実施形態に係る仮想状態定義装置を示す。本実施形態に係る仮想状態定義装置10は、仮想状態定義部101と、変換部102とを備える。仮想状態定義装置10には、ユーザ装置20と、データベース30が接続される。
図1では、仮想状態定義装置10に接続されるユーザ装置20が2個であり、データベース30が1個の例を示すが、仮想状態定義装置10に接続されるユーザ装置20及びデータベース30の数は任意である。ユーザ装置20は、ユーザによって管理され、仮想状態定義装置10を介してデータベース30への問合せ要求を行う。データベース30は、データを蓄え、仮想状態定義装置10からの問い合わせに応じてデータを提供する。
【0017】
仮想状態定義装置10は、ユーザ装置20とデータベース30の間に配置される。そして、ユーザ装置20からデータベース30へのデータベース問合せ記述を、ユーザ装置20とデータベース30の中間である仮想状態定義装置10で、仮想状態定義を用いて変換する。
【0018】
仮想状態定義は、データベース30が有するデータについての変換規則である。変換規則は、例えば、データの種別ごとに値を加減算し、単位の変換を行い又は条件に一致した任意のフィールドに変換する。また、仮想状態定義は、データベース30のデータと、ユーザ装置20が望む修正後のデータとの差分を変換規則として有してもよい。
【0019】
仮想状態定義装置10は、最終的なSQLなどのデータベース30に依存した問合せ言語に変換する際に、仮想状態定義を用いた値の修正処理をユーザ装置20に見えない形でシームレスに問合せ言語レベルに挿入する。そのため、あたかもユーザ装置20が要求する値の修正がされたデータベースが存在し、それにアクセスできるかのように扱える(
図1)。その際、仮想状態定義装置10は、データベース30から読み出したデータを保存しない。
【0020】
図2に仮想状態定義装置10のブロック図を示す。仮想状態定義装置10は、仮想状態定義部101と、変換部102とを備える。
【0021】
仮想状態定義装置10は、コンピュータを、仮想状態定義部101又は変換部102として機能させることで実現してもよい。この場合、仮想状態定義装置10が備えるCPU(Central Processing Unit)が記憶部(不図示)に記憶されたコンピュータプログラムを実行することで、各構成を実現する。ここで、仮想状態定義装置10を実現する際のコンピュータは、コンピュータによって制御される任意の機器をさらに備えてもよい。また、仮想状態定義装置10を実現する際のプログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0022】
仮想状態定義部101は、仮想状態定義を各ユーザ装置からの指定に従ってユーザ装置ごとに生成する。変換部102は、ユーザ装置20からのデータ読み出し要求に応じて、データベース30からユーザ装置20が要求するデータを読み出す。変換部102は、データベース30から読み出したデータを、仮想状態定義部101が生成したそれぞれのユーザ装置20ごとの仮想状態定義の変換規則に従って変換し、変換後のデータベース30のデータをユーザ装置20に提供する。
【0023】
変換部102は、設定済仮想状態定義保存部102aと、設定済問合せ記述保存部102bと、問合せ要求合成部102cと、問合せ記述SQL変換部102dとを備える。設定済仮想状態定義保存部102aは、仮想状態定義部101から読み出した仮想状態定義を、仮想状態定義ファイルとして保存する。設定済仮想状態定義保存部102aは、仮想状態定義ファイルを読み出して、仮想状態定義を、問合せ要求合成部102cに出力する。設定済仮想状態定義保存部102aは、用いた仮想状態定義を仮想状態定義ファイルとして保存することにより、仮想状態定義部101からの仮想状態定義の読み出し時間を短縮することができる。
【0024】
設定済問合せ記述保存部102bは、ユーザ装置20から行われたデータベース問合せに用いたデータベース問合せ記述を保存する。設定済問合せ記述保存部102bは、用いたデータベース問合せ記述を保存することにより、ユーザ装置20からのデータベース問合せに要する時間を短縮することができる。
【0025】
問合せ要求合成部102cは、設定済仮想状態定義保存部102aから出力された仮想状態定義と、設定済問合せ記述保存部102bから出力されたデータベース問合せ記述を合成して、合成問合せ記述を生成する。問合せ記述SQL変換部102dは、問合せ要求合成部102cで生成された合成問合せ記述を問い合わせるデータベースに依存した任意の問合せ言語に変換する。変換後の問合せ言語は、例えばSQLである。問合せ記述SQL変換部102dは、変換した合成問合せ記述に従って、データベース30よりユーザ装置20から行われたデータベース問合せに対応するデータを読み出すとともに、合成問合せ記述が有する仮想状態定義を適用して読み出したデータの変換を行う。
【0026】
図3に本実施形態に係る仮想状態定義方法のフローチャートを示す。本実施形態に係る仮想状態定義方法は、問合せ要求合成手順と、データベース問合せ手順と、問合せデータ変換手順とを順に有する。
【0027】
問合せ要求合成手順では、ユーザ装置20からのデータ読み出し要求に対応するデータベース問合せ記述と、仮想状態定義を合成して合成問合せ記述を生成する。具体的には、ステップS1〜ステップS5を実行する。ユーザ装置20から名前(a)であるデータベース問合せ実行要求がなされると、その要求は設定済問合せ記述保存部102bに伝えられる(ステップS1)。次に、設定済問合せ記述保存部102bは、名前(a)であるデータベース問合せに用いるデータベース問合せ記述(b)を保持しているかを確認し、保持している場合には取り出し、保持していない場合には、データベース問合せ記述(b)を生成する(ステップS2)。
【0028】
次に、設定済仮想状態定義保存部102aは、問合せ記述(b)に関連する仮想状態定義(c)を、自ら又は仮想状態定義部101が有するかを確認する(ステップS3)。自ら又は仮想状態定義部101が、問合せ記述(b)に関連する仮想状態定義(c)を有する場合には、ステップS4に移行する(ステップS3でyes)。自ら又は仮想状態定義部101が、問合せ記述(b)に関連する仮想状態定義(c)を有しない場合は、問合せ記述(b)から合成問合せ記述を生成し、ステップS6に移行する(ステップS3でno)。
【0029】
ステップS4では、設定済仮想状態定義保存部102aは自らが有する仮想状態定義(c)又は仮想状態定義部101から読み出した仮想状態定義(c)を、問合せ要求合成部102cに伝える。次に、問合せ要求合成部102cは、データベース問合せ記述(b)と、仮想状態定義(c)を合成して合成問合せ記述を生成し、問合せ記述SQL変換部102dに伝える(ステップS5)。
【0030】
次に、データベース問合せ手順では、合成問合せ記述を用いて、ユーザ装置20から要求されたデータベース30のデータを読み出す。具体的には、ステップS6及びステップS7を実行する。問合せ記述SQL変換部102dは、ステップS3又はS5で生成した合成問合せ記述をSQL等の問合せ言語に変換する(ステップS6)。次に、問合せ記述SQL変換部102dは、問合せ言語に変換した問合せ要求を使用して、データベース30にデータの問合せを行う(ステップS7)。
【0031】
次に、問合せデータ変換手順では、データベース30から読み出したデータを、仮想状態定義を用いて変換し、変換後のデータを、問合せ実行要求を受けたユーザ装置20に提供する。具体的には、ステップS8及びステップS9を実行する。ステップS7でデータベース30から読み出したデータを、合成問合せ記述が有する仮想状態定義に従って変換する(ステップS8)。次に、変換後のデータをユーザ装置20へと提供する(ステップS9)。
【0032】
本実施形態の適用例について説明する。
図1に示したデータベース30が、
図4のネットワーク情報表のネットワーク番号(整数)、国別コード(文字列)と、マルウェアなどのアクティビティを示す評価値(整数)に区分されたデータを有するとする。
【0033】
この時、ユーザ装置#1は、評価値が4以上の情報を集めようとすると、
図5に示す様な問合せ記述を定義する。
図5に示す問合せは、対応する仮想状態定義がないので、
図6の様なSQLなどの、データベース問合せ言語に変換される(ステップS3、ステップS6)。データベース30に対して
図6に示すデータベース問合せを実行すると(ステップS7)、ユーザ装置#1は、仮想状態定義装置10を介して
図7の様なレコードを取得する(ステップS8、ステップS9)。なお、
図5に示す問合せは、対応する仮想状態定義がないので、ステップS8での仮想状態定義に従ったデータベース30から読み出したデータの変換は行われない。
【0034】
ここで、仮想状態定義装置10が有する仮想状態定義の例として、例えば、日本のネットワークはトラフィックが多く重要なので、評価値を+1多く見積もることにしたとする。この場合、
図8のように仮想状態定義を定義する。
【0035】
仮想状態定義装置10が
図8の仮想状態定義を有する状態で、
図5に示す問合せを行うと、
図5に示す問い合わせは、
図9に示すデータベース問合せ言語に変換、合成される(ステップS3でyes、ステップS4〜S6)。データベース30に対して
図9に示すデータベース問合せを実行すると(ステップS7)、ユーザ装置#1は、仮想状態定義装置10を介して
図10の様なレコードを取得できる(ステップS7〜S9)。これは、あたかも
図11の様なデータベースが存在し、それに対し、
図5の問合せを行ったのと同じ結果となる。
【0036】
なお、この時、
図8の仮想状態定義をキャンセルすれば、データベース30から読み出したデータは変換されないので、ユーザ装置#1が取得するデータは、
図7のようになる。これは、仮想状態定義がなされていないときと同じである。また、
図8の仮想状態定義を共有していないユーザ装置#2が、仮想状態定義装置10を介してデータベース30のデータを読み出した場合も、取得するデータは、
図7のようになる。すなわち、元のデータベース30のデータは書き換えせずに、またローカル環境へのコピー、修正、インデックスの作り直しと言った処理も不要のまま、仮想状態定義を共有するユーザ装置20の間でのみ、仮想的に修正されたデータベース30にアクセスできることになる。
【0037】
本実施形態では、DBのコピーや修正を要しないため、特にデータ量の大きなデータベース30で問題になる、データコピー時間、ストレージの多重使用、インデックスの作り直しによる時間オーバヘッド、またDBのコピーを持たないことによる使用許諾条件の問題の回避が可能となる。また、この仮想状態定義を動的に変えることにより、仮想的に修正されたデータベース30を柔軟に作成したかのように扱える。
【0038】
ここで、仮想状態定義を動的に変えるとは、ユーザ装置20の要求に応じて、適宜、仮想状態定義を変更することである。例えば、データベース30から読み出したデータの修正が必要な場合、データベース30が有するデータを修正するのではなく、仮想状態定義を修正する。そのため、仮想状態定義は、データベース30のデータと、ユーザ装置20が望む修正後のデータとの差分を変換規則として有してもよい。仮想状態定義を修正することにより、仮想的にデータベース30から読み出したデータが修正されたものとして取り扱うことができる。
【0039】
また複数のユーザ装置20は、この仮想状態定義を共有することにより、同様に仮想的に変更されたデータベース30にアクセスすることが可能となる。これらの仮想状態定義の変更は、仮想状態定義の使用をやめた時点で、元のDBに書き戻し処理をすることなく、元のデータベース30の値にアクセス可能となる。一方、仮想状態定義を用いない通常のユーザ装置20は、従来のDBから従来の値を読み出すことができる。そのため、仮想状態定義を用いるユーザ装置20と、仮想状態定義を用いないユーザ装置20とでは、同じDBを並行して違うデータベース30として扱うことが可能となる。
【0040】
あるユーザ装置20が定義した仮想状態定義は、任意のユーザ装置20の範囲で共有することができる。例えば、仮想状態定義を作成したユーザ装置20が指定したユーザ装置20の範囲で共有し、仮想状態定義の使用、修正を行うことができる。また、仮想状態定義の一部のみを共有することも可能である。
【0041】
つまり、分散環境にあるデータベース30を実際には書き換えることなく、複数のユーザ装置20と共用可能なまま、ユーザ装置20がカスタマイズして書き換えた形のデータベース30としてアクセス可能となる。またそのカスタマイズにあたっては、データベース30のデータのコピーは不要であり、またインデックスを作り直すこともなく、また使用後はデータベース30へのデータの書き戻し処理も必要ない。
【産業上の利用可能性】
【0042】
本発明の仮想状態定義装置、仮想状態定義方法及び仮想状態定義プログラムは、情報通信産業に適用することができる。
【符号の説明】
【0043】
10:仮想状態定義装置
101:仮想状態定義部
102:変換部
102a:設定済仮想状態定義保存部
102b:設定済問合せ記述保存部
102c:問合せ要求合成部
102d:問合せ記述SQL変換部
20:ユーザ装置
30:データベース