(57)【特許請求の範囲】
【請求項１】
ユーザ装置からのデータ読み出し要求に応じてデータベースが有するデータを読み出すデータベース問合せ記述を保存する設定済問合せ記述保存部と、
ユーザ装置が占有する又は複数のユーザ装置で共有する、前記データベース問合せ記述に対する変換規則である仮想状態定義を保存する設定済仮想状態定義保存部と、
前記ユーザ装置からのデータ読み出し要求に応じて出力された前記設定済み問合せ記述保存部からの前記データベース問合せ記述と、前記設定済仮想状態定義保存部が保存する前記仮想状態定義の中から前記ユーザ装置に対応する仮想状態定義とを合成して合成問合せ記述を生成する問合せ要求合成部と、
前記問合せ要求合成部が生成した前記合成問合せ記述を用いて前記データベースからデータを読み出し、前記データ読み出し要求を行ったユーザ装置に提供する問合せ記述言語変換部と、
を備える、
仮想状態定義装置。
【請求項２】
ユーザ装置からのデータ読み出し要求に応じてデータベースが有するデータを読み出すデータベース問合せ記述と、ユーザ装置が占有する又は複数のユーザ装置で共有する、前記データベース問合せ記述に対する変換規則である仮想状態定義とを合成して合成問合せ記述を生成する問合せ要求合成手順と、
前記合成問合せ記述を用いて、前記データベースからデータを読み出すデータベース問合せ手順と、
前記データベースから読み出したデータを、前記データ読み出し要求を行ったユーザ装置に提供する問合せデータ提供手順と、
を順に実行する仮想状態定義方法。
【請求項３】
コンピュータを、
請求項１に記載の仮想状態定義装置が備える前記設定済問合せ記述保存部、前記設定済仮想状態定義保存部、前記問合せ要求合成部、及び前記問合せ記述言語変換部として機能させるための仮想状態定義プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想状態定義装置、仮想状態定義方法及び仮想状態定義プログラムに関する。
【背景技術】
【０００２】
広域ネットワークの挙動解析では、分散環境に存在する、特に自分の管理外にあるデータも統合して解析する必要がある場合も少なくない。分散環境に存在する、特に自分の管理外にあるデータベースの値を書き換える要求がある場合は、データベース（Ｄａｔａ  ｂａｓｅ，ＤＢ）の値を手元にコピーし、必要部分を書き換える必要があった。
【０００３】
しかしながら、ネットワークデータは、フローデータなど、大量のデータを日々生成するため、自分の手元にデータをコピーして分析することは現実的ではない。特にＤＢ形式として標準化された手段で保存されている場合は、リモートからＤＢ問合せ言語を用いて、自分がその時に必要とするデータを動的に取得するケースが多い。例えば、非特許文献１のネットワーク診断システムＩＭ−ＶＩＳでは、ｄｅｆ＿ｑｕｅｒｙに相当するデータベース問合せ記述からＳＱＬを生成する。
【０００４】
一方、ネットワーク情報解析において、保存されているデータを自分の解析目的に合致するように、あるいはローカルなネットワーク環境の状況にあうように調整するため、ある条件にマッチした値を修正した上で解析したりする状況も存在する。同様に、ネットワーク機器の設定を改善した場合の効果を解析するため、修正した値を予想値として用いて、その効果を解析をすることも少なくない。
【０００５】
そのような分散環境でのネットワーク情報解析において、巨大なデータを外部からまるごとコピーして、値を要求にあうように修正して用いるのは、ストレージの制約から困難なことが多い。同時に、コピーおよびデータベースのインデックスを作成する時間が膨大になるため、処理時間も莫大となることが多く現実的でない。更には、そもそもコピー自体が制度的に許諾されないケースもある。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】明石修、水谷后宏、福田健介、漆谷重雄、「大規模ネットワークの挙動解析に向けた一考察」、ネットワークシステム研究会技報、電子情報通信学会、Ａｐｒ．２０１４
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、データベースのデータをコピーすることなく、仮想的にデータベースのデータを変換することのできる仮想状態定義装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の仮想状態定義装置は、ユーザ装置とデータベース装置との間に設けられ、入力されたデータベース問合せ記述をデータベース問合せ言語に変換する変換装置において、入力された分散環境にあるデータベースの値を修正する記述を、複数のユーザと共用可能な仮想状態定義として仮想状態定義ファイルに保持し、データベースを実際には書き換えずに、入力されたデータベース問合せ記述と仮想状態定義ファイルに保持された仮想定義を合成してデータベース問合せ言語に変換する。
【０００９】
具体的には、本発明に係る仮想状態定義装置は、データベースが有するデータについての変換規則である仮想状態定義を、各ユーザ装置からの指定に従い、前記ユーザ装置ごとに生成する仮想状態定義部と、前記ユーザ装置からのデータ読み出し要求に応じてデータベースから前記ユーザ装置が要求するデータを読み出し、前記仮想状態定義部が生成したそれぞれの前記ユーザ装置ごとの前記仮想状態定義の変換規則に従って前記データベースから読み出したデータを変換して、変換後のデータベースのデータを前記ユーザ装置に提供する変換部とを備える。
【００１０】
本発明に係る仮想状態定義装置は、仮想状態定義部を備えるので、ユーザ装置ごとに仮想状態定義を生成し、必要に応じて仮想状態定義を修正することができる。また、本発明に係る仮想状態定義装置は、変換部を備えるので、生成した仮想状態定義を使用してユーザ装置に仮想状態定義に従って変換させたデータベースのデータを提供することができる。本発明に係る仮想状態定義装置は、仮想状態定義部と変換部を備えるので、データベースのデータ自体には修正を加えずに、かつ、データベースのデータを保存せずに、ユーザ装置に仮想的に修正されたデータベースのデータを提供することができる。
【００１１】
本発明の仮想状態定義方法は、ユーザ装置からのデータ読み出し要求に対応するデータベース問合せ記述と、仮想状態定義を合成して合成問合せ記述を生成する問合せ要求合成手順と、前記合成問合せ記述を用いて、ユーザ装置から要求されたデータベースのデータを読み出すデータベース問合せ手順と、前記データベースから読み出したデータを、前記合成問合せ記述が有する前記仮想状態定義を用いて変換し、変換後のデータを問合せ実行要求を受けたユーザ装置に提供する問合せデータ変換手順とを順に備える。
【００１２】
本発明の仮想状態定義プログラムは、コンピュータを、仮想状態定義部及び変換部として機能させる。
【発明の効果】
【００１３】
本発明によれば、データベースのデータをコピーすることなく、仮想的にデータベースのデータを変換することのできる仮想状態定義装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る仮想状態定義装置と、仮想状態定義装置に接続されたユーザ装置及びデータベースの第１例の模式図を示す。
【図２】本発明の実施形態に係る仮想状態定義装置と、仮想状態定義装置に接続されたユーザ装置及びデータベースの第２例の模式図を示す。
【図３】本発明の実施形態に係る仮想状態定義方法の一例のフローチャートを示す。
【図４】本発明の実施形態に係るネットワーク情報表の一例を示す。
【図５】本発明の実施形態に係る問合せ記述の一例を示す。
【図６】本発明の実施形態に係る問合せ記述の一例をデータベース問合せ言語に変換した場合の例を示す。
【図７】本発明の実施形態に係る、ユーザ装置が取得するデータの一例を示す。
【図８】本発明の実施形態に係る仮想状態定義の一例を示す。
【図９】本発明の実施形態に係る合成問合せ記述の一例をデータベース問合せ言語に変換した場合の例を示す。
【図１０】本発明の実施形態に係る、ユーザ装置が取得するデータの一例を示す。
【図１１】本発明の実施形態に係る仮想状態定義に従って仮想的に構築されるデータベースのデータの一例を示す。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００１６】
図１に本発明の実施形態に係る仮想状態定義装置を示す。本実施形態に係る仮想状態定義装置１０は、仮想状態定義部１０１と、変換部１０２とを備える。仮想状態定義装置１０には、ユーザ装置２０と、データベース３０が接続される。図１では、仮想状態定義装置１０に接続されるユーザ装置２０が２個であり、データベース３０が１個の例を示すが、仮想状態定義装置１０に接続されるユーザ装置２０及びデータベース３０の数は任意である。ユーザ装置２０は、ユーザによって管理され、仮想状態定義装置１０を介してデータベース３０への問合せ要求を行う。データベース３０は、データを蓄え、仮想状態定義装置１０からの問い合わせに応じてデータを提供する。
【００１７】
仮想状態定義装置１０は、ユーザ装置２０とデータベース３０の間に配置される。そして、ユーザ装置２０からデータベース３０へのデータベース問合せ記述を、ユーザ装置２０とデータベース３０の中間である仮想状態定義装置１０で、仮想状態定義を用いて変換する。
【００１８】
仮想状態定義は、データベース３０が有するデータについての変換規則である。変換規則は、例えば、データの種別ごとに値を加減算し、単位の変換を行い又は条件に一致した任意のフィールドに変換する。また、仮想状態定義は、データベース３０のデータと、ユーザ装置２０が望む修正後のデータとの差分を変換規則として有してもよい。
【００１９】
仮想状態定義装置１０は、最終的なＳＱＬなどのデータベース３０に依存した問合せ言語に変換する際に、仮想状態定義を用いた値の修正処理をユーザ装置２０に見えない形でシームレスに問合せ言語レベルに挿入する。そのため、あたかもユーザ装置２０が要求する値の修正がされたデータベースが存在し、それにアクセスできるかのように扱える（図１）。その際、仮想状態定義装置１０は、データベース３０から読み出したデータを保存しない。
【００２０】
図２に仮想状態定義装置１０のブロック図を示す。仮想状態定義装置１０は、仮想状態定義部１０１と、変換部１０２とを備える。
【００２１】
仮想状態定義装置１０は、コンピュータを、仮想状態定義部１０１又は変換部１０２として機能させることで実現してもよい。この場合、仮想状態定義装置１０が備えるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が記憶部（不図示）に記憶されたコンピュータプログラムを実行することで、各構成を実現する。ここで、仮想状態定義装置１０を実現する際のコンピュータは、コンピュータによって制御される任意の機器をさらに備えてもよい。また、仮想状態定義装置１０を実現する際のプログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００２２】
仮想状態定義部１０１は、仮想状態定義を各ユーザ装置からの指定に従ってユーザ装置ごとに生成する。変換部１０２は、ユーザ装置２０からのデータ読み出し要求に応じて、データベース３０からユーザ装置２０が要求するデータを読み出す。変換部１０２は、データベース３０から読み出したデータを、仮想状態定義部１０１が生成したそれぞれのユーザ装置２０ごとの仮想状態定義の変換規則に従って変換し、変換後のデータベース３０のデータをユーザ装置２０に提供する。
【００２３】
変換部１０２は、設定済仮想状態定義保存部１０２ａと、設定済問合せ記述保存部１０２ｂと、問合せ要求合成部１０２ｃと、問合せ記述ＳＱＬ変換部１０２ｄとを備える。設定済仮想状態定義保存部１０２ａは、仮想状態定義部１０１から読み出した仮想状態定義を、仮想状態定義ファイルとして保存する。設定済仮想状態定義保存部１０２ａは、仮想状態定義ファイルを読み出して、仮想状態定義を、問合せ要求合成部１０２ｃに出力する。設定済仮想状態定義保存部１０２ａは、用いた仮想状態定義を仮想状態定義ファイルとして保存することにより、仮想状態定義部１０１からの仮想状態定義の読み出し時間を短縮することができる。
【００２４】
設定済問合せ記述保存部１０２ｂは、ユーザ装置２０から行われたデータベース問合せに用いたデータベース問合せ記述を保存する。設定済問合せ記述保存部１０２ｂは、用いたデータベース問合せ記述を保存することにより、ユーザ装置２０からのデータベース問合せに要する時間を短縮することができる。
【００２５】
問合せ要求合成部１０２ｃは、設定済仮想状態定義保存部１０２ａから出力された仮想状態定義と、設定済問合せ記述保存部１０２ｂから出力されたデータベース問合せ記述を合成して、合成問合せ記述を生成する。問合せ記述ＳＱＬ変換部１０２ｄは、問合せ要求合成部１０２ｃで生成された合成問合せ記述を問い合わせるデータベースに依存した任意の問合せ言語に変換する。変換後の問合せ言語は、例えばＳＱＬである。問合せ記述ＳＱＬ変換部１０２ｄは、変換した合成問合せ記述に従って、データベース３０よりユーザ装置２０から行われたデータベース問合せに対応するデータを読み出すとともに、合成問合せ記述が有する仮想状態定義を適用して読み出したデータの変換を行う。
【００２６】
図３に本実施形態に係る仮想状態定義方法のフローチャートを示す。本実施形態に係る仮想状態定義方法は、問合せ要求合成手順と、データベース問合せ手順と、問合せデータ変換手順とを順に有する。
【００２７】
問合せ要求合成手順では、ユーザ装置２０からのデータ読み出し要求に対応するデータベース問合せ記述と、仮想状態定義を合成して合成問合せ記述を生成する。具体的には、ステップＳ１〜ステップＳ５を実行する。ユーザ装置２０から名前（ａ）であるデータベース問合せ実行要求がなされると、その要求は設定済問合せ記述保存部１０２ｂに伝えられる（ステップＳ１）。次に、設定済問合せ記述保存部１０２ｂは、名前（ａ）であるデータベース問合せに用いるデータベース問合せ記述（ｂ）を保持しているかを確認し、保持している場合には取り出し、保持していない場合には、データベース問合せ記述（ｂ）を生成する（ステップＳ２）。
【００２８】
次に、設定済仮想状態定義保存部１０２ａは、問合せ記述（ｂ）に関連する仮想状態定義（ｃ）を、自ら又は仮想状態定義部１０１が有するかを確認する（ステップＳ３）。自ら又は仮想状態定義部１０１が、問合せ記述（ｂ）に関連する仮想状態定義（ｃ）を有する場合には、ステップＳ４に移行する（ステップＳ３でｙｅｓ）。自ら又は仮想状態定義部１０１が、問合せ記述（ｂ）に関連する仮想状態定義（ｃ）を有しない場合は、問合せ記述（ｂ）から合成問合せ記述を生成し、ステップＳ６に移行する（ステップＳ３でｎｏ）。
【００２９】
ステップＳ４では、設定済仮想状態定義保存部１０２ａは自らが有する仮想状態定義（ｃ）又は仮想状態定義部１０１から読み出した仮想状態定義（ｃ）を、問合せ要求合成部１０２ｃに伝える。次に、問合せ要求合成部１０２ｃは、データベース問合せ記述（ｂ）と、仮想状態定義（ｃ）を合成して合成問合せ記述を生成し、問合せ記述ＳＱＬ変換部１０２ｄに伝える（ステップＳ５）。
【００３０】
次に、データベース問合せ手順では、合成問合せ記述を用いて、ユーザ装置２０から要求されたデータベース３０のデータを読み出す。具体的には、ステップＳ６及びステップＳ７を実行する。問合せ記述ＳＱＬ変換部１０２ｄは、ステップＳ３又はＳ５で生成した合成問合せ記述をＳＱＬ等の問合せ言語に変換する（ステップＳ６）。次に、問合せ記述ＳＱＬ変換部１０２ｄは、問合せ言語に変換した問合せ要求を使用して、データベース３０にデータの問合せを行う（ステップＳ７）。
【００３１】
次に、問合せデータ変換手順では、データベース３０から読み出したデータを、仮想状態定義を用いて変換し、変換後のデータを、問合せ実行要求を受けたユーザ装置２０に提供する。具体的には、ステップＳ８及びステップＳ９を実行する。ステップＳ７でデータベース３０から読み出したデータを、合成問合せ記述が有する仮想状態定義に従って変換する（ステップＳ８）。次に、変換後のデータをユーザ装置２０へと提供する（ステップＳ９）。
【００３２】
本実施形態の適用例について説明する。図１に示したデータベース３０が、図４のネットワーク情報表のネットワーク番号（整数）、国別コード（文字列）と、マルウェアなどのアクティビティを示す評価値（整数）に区分されたデータを有するとする。
【００３３】
この時、ユーザ装置＃１は、評価値が４以上の情報を集めようとすると、図５に示す様な問合せ記述を定義する。図５に示す問合せは、対応する仮想状態定義がないので、図６の様なＳＱＬなどの、データベース問合せ言語に変換される（ステップＳ３、ステップＳ６）。データベース３０に対して図６に示すデータベース問合せを実行すると（ステップＳ７）、ユーザ装置＃１は、仮想状態定義装置１０を介して図７の様なレコードを取得する（ステップＳ８、ステップＳ９）。なお、図５に示す問合せは、対応する仮想状態定義がないので、ステップＳ８での仮想状態定義に従ったデータベース３０から読み出したデータの変換は行われない。
【００３４】
ここで、仮想状態定義装置１０が有する仮想状態定義の例として、例えば、日本のネットワークはトラフィックが多く重要なので、評価値を＋１多く見積もることにしたとする。この場合、図８のように仮想状態定義を定義する。
【００３５】
仮想状態定義装置１０が図８の仮想状態定義を有する状態で、図５に示す問合せを行うと、図５に示す問い合わせは、図９に示すデータベース問合せ言語に変換、合成される（ステップＳ３でｙｅｓ、ステップＳ４〜Ｓ６）。データベース３０に対して図９に示すデータベース問合せを実行すると（ステップＳ７）、ユーザ装置＃１は、仮想状態定義装置１０を介して図１０の様なレコードを取得できる（ステップＳ７〜Ｓ９）。これは、あたかも図１１の様なデータベースが存在し、それに対し、図５の問合せを行ったのと同じ結果となる。
【００３６】
なお、この時、図８の仮想状態定義をキャンセルすれば、データベース３０から読み出したデータは変換されないので、ユーザ装置＃１が取得するデータは、図７のようになる。これは、仮想状態定義がなされていないときと同じである。また、図８の仮想状態定義を共有していないユーザ装置＃２が、仮想状態定義装置１０を介してデータベース３０のデータを読み出した場合も、取得するデータは、図７のようになる。すなわち、元のデータベース３０のデータは書き換えせずに、またローカル環境へのコピー、修正、インデックスの作り直しと言った処理も不要のまま、仮想状態定義を共有するユーザ装置２０の間でのみ、仮想的に修正されたデータベース３０にアクセスできることになる。
【００３７】
本実施形態では、ＤＢのコピーや修正を要しないため、特にデータ量の大きなデータベース３０で問題になる、データコピー時間、ストレージの多重使用、インデックスの作り直しによる時間オーバヘッド、またＤＢのコピーを持たないことによる使用許諾条件の問題の回避が可能となる。また、この仮想状態定義を動的に変えることにより、仮想的に修正されたデータベース３０を柔軟に作成したかのように扱える。
【００３８】
ここで、仮想状態定義を動的に変えるとは、ユーザ装置２０の要求に応じて、適宜、仮想状態定義を変更することである。例えば、データベース３０から読み出したデータの修正が必要な場合、データベース３０が有するデータを修正するのではなく、仮想状態定義を修正する。そのため、仮想状態定義は、データベース３０のデータと、ユーザ装置２０が望む修正後のデータとの差分を変換規則として有してもよい。仮想状態定義を修正することにより、仮想的にデータベース３０から読み出したデータが修正されたものとして取り扱うことができる。
【００３９】
また複数のユーザ装置２０は、この仮想状態定義を共有することにより、同様に仮想的に変更されたデータベース３０にアクセスすることが可能となる。これらの仮想状態定義の変更は、仮想状態定義の使用をやめた時点で、元のＤＢに書き戻し処理をすることなく、元のデータベース３０の値にアクセス可能となる。一方、仮想状態定義を用いない通常のユーザ装置２０は、従来のＤＢから従来の値を読み出すことができる。そのため、仮想状態定義を用いるユーザ装置２０と、仮想状態定義を用いないユーザ装置２０とでは、同じＤＢを並行して違うデータベース３０として扱うことが可能となる。
【００４０】
あるユーザ装置２０が定義した仮想状態定義は、任意のユーザ装置２０の範囲で共有することができる。例えば、仮想状態定義を作成したユーザ装置２０が指定したユーザ装置２０の範囲で共有し、仮想状態定義の使用、修正を行うことができる。また、仮想状態定義の一部のみを共有することも可能である。
【００４１】
つまり、分散環境にあるデータベース３０を実際には書き換えることなく、複数のユーザ装置２０と共用可能なまま、ユーザ装置２０がカスタマイズして書き換えた形のデータベース３０としてアクセス可能となる。またそのカスタマイズにあたっては、データベース３０のデータのコピーは不要であり、またインデックスを作り直すこともなく、また使用後はデータベース３０へのデータの書き戻し処理も必要ない。
【産業上の利用可能性】
【００４２】
本発明の仮想状態定義装置、仮想状態定義方法及び仮想状態定義プログラムは、情報通信産業に適用することができる。
【符号の説明】
【００４３】
１０：仮想状態定義装置
１０１：仮想状態定義部
１０２：変換部
１０２ａ：設定済仮想状態定義保存部
１０２ｂ：設定済問合せ記述保存部
１０２ｃ：問合せ要求合成部
１０２ｄ：問合せ記述ＳＱＬ変換部
２０：ユーザ装置
３０：データベース
【図１】
0006332802.tif 000002
【図２】
0006332802.tif 000003
【図３】
0006332802.tif 000004
【図４】
0006332802.tif 000005
【図５】
0006332802.tif 000006
【図６】
0006332802.tif 000007
【図７】
0006332802.tif 000008
【図８】
0006332802.tif 000009
【図９】
0006332802.tif 000010
【図１０】
0006332802.tif 000011
【図１１】
0006332802.tif 000012