(57)【特許請求の範囲】
【請求項１】
複数のサーバで分散して管理されるデータを検索するデータ検索システムであって、コントローラと、サーバ毎に割り当てられたネットワーク装置とを備えるデータ検索システムであり、
各ネットワーク装置は、
割り当てられたサーバで管理されるデータのデータ構造を解析するデータ構造解析部と、
前記データ構造解析部が解析したデータ構造を示す構造情報を前記コントローラへ送信する構造情報送信部と
を備え、
前記コントローラは、
検索要求の入力を受け付ける検索要求受付部と、
前記検索要求受付部が受け付けた検索要求に従い、検索プログラムを生成する検索プログラム生成部であって、前記各ネットワーク装置が備える前記構造情報送信部が送信した構造情報に従い、ネットワーク装置毎に対応する検索プログラムを生成する検索プログラム生成部と、
前記検索プログラム生成部が生成したネットワーク装置毎に対応する検索プログラムを、対応するネットワーク装置へ送信する検索プログラム送信部と
を備え、
前記各ネットワーク装置は、さらに、
前記検索プログラム送信部が送信した検索プログラムを実行して、割り当てられたサーバに対してデータを検索する検索実行部と、
前記検索実行部が検索した検索結果を前記コントローラへ送信する検索結果送信部と
を備え、
前記コントローラは、さらに、
前記各ネットワーク装置が備える前記検索結果送信部が送信した検索結果を統合して、統合結果として出力する統合結果出力部
を備えることを特徴とするデータ検索システム。
【請求項２】
前記データ構造解析部は、さらに、割り当てられたサーバで管理されるデータの種別を解析し、
前記構造情報送信部は、さらに、前記データ構造解析部が解析したデータの種別を前記コントローラへ送信し、
前記検索プログラム生成部は、前記構造情報送信部が送信したデータの種別に基づき、前記検索要求が要求するデータの種別を管理するサーバが割り当てられたネットワーク装置を特定し、特定したネットワーク装置ついてのみ、そのネットワーク装置に対応する検索プログラムを生成する
ことを特徴とする請求項１に記載のデータ検索システム。
【請求項３】
前記各ネットワーク装置は、さらに、
割り当てられたサーバの負荷を監視する負荷監視部
を備え、
前記検索実行部は、前記負荷監視部が監視する負荷が所定値よりも低くなるように、前記検索プログラムの実行を制御する
ことを特徴とする請求項１又は２に記載のデータ検索システム。
【請求項４】
前記検索プログラム生成部は、１度だけ実行される単発プログラムと、所定の期間実行され続ける継続プログラムとの検索プログラムを生成し、
前記検索実行部は、前記検索プログラムが単発プログラムである場合には、単発プログラムを実行して１度だけデータを検索し、前記検索プログラムが継続プログラムである場合には、前記所定の期間継続プログラムを実行し続けて、所定の時間毎にデータを検索する
ことを特徴とする請求項１から３までのいずれかに記載のデータ検索システム。
【請求項５】
前記検索プログラム生成部は、検索要求毎に、その検索要求に対する処理を行うＶＭ（
Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を生成する
ことを特徴とする請求項１から４までのいずれかに記載のデータ検索システム。
【請求項６】
複数のサーバで分散して管理されるデータを検索するデータ検索プログラムであって、コントローラで動作するプログラムと、サーバ毎に割り当てられたネットワーク装置で動作するプログラムとを備えるデータ検索プログラムであり、
各ネットワーク装置で動作するプログラムは、
割り当てられたサーバで管理されるデータのデータ構造を解析するデータ構造解析処理と、
前記データ構造解析処理で解析したデータ構造を示す構造情報を前記コントローラへ送信する構造情報送信処理と
をコンピュータに実行させ、
前記コントローラで動作するプログラムは、
検索要求の入力を受け付ける検索要求受付処理と、
前記検索要求受付処理で受け付けた検索要求に従い、検索プログラムを生成する検索プログラム生成処理であって、前記各ネットワーク装置における前記構造情報送信処理で送信した構造情報に従い、ネットワーク装置毎に対応する検索プログラムを生成する検索プログラム生成処理と、
前記検索プログラム生成処理で生成したネットワーク装置毎に対応する検索プログラムを、対応するネットワーク装置へ送信する検索プログラム送信処理と
をコンピュータに実行させ、
前記各ネットワーク装置で動作するプログラムは、さらに、
前記検索プログラム送信処理で送信した検索プログラムを実行して、割り当てられたサーバに対してデータを検索する検索実行処理と、
前記検索実行処理で検索した検索結果を前記コントローラへ送信する検索結果送信処理と
をコンピュータに実行させ、
前記コントローラで動作するプログラムは、さらに、
前記各ネットワーク装置が備える前記検索結果送信処理で送信した検索結果を統合して、統合結果として出力する統合結果出力処理
をコンピュータに実行させることを特徴とするデータ検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のサーバで分散して管理されるデータを検索するデータ検索システムに関する。
【背景技術】
【０００２】
一般消費者等を顧客に持つ企業には大量の取引ログ等のデータ（ビッグデータ）が蓄積されており、この大量の取引ログを解析して、有用な情報を抽出することが試みられている。
一般に、ビッグデータは、一か所に蓄積されているものではなく、例えば拠点毎に分散して管理されている。また、一般に、ビッグデータは、構造化されたデータだけでなく、構造化されていないデータも含んでおり、構造化されたデータも例えば拠点毎に異なる様々なデータ構造のデータを含んでいる。
【０００３】
従来は、解析を行うホストサーバが、解析の指示を受けると、分散して管理されているデータを全て集め、解析を行っていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１１７９４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、ホストサーバがデータを全て集めるため、ホストサーバと各拠点のサーバとを結ぶネットワークに大量のデータが流れることになり、ネットワークに大きな負荷がかかっていた。また、データの収集に時間がかかるため、リアルタイム性の高い解析は困難であった。
この発明は、分散して管理されている大量のデータの解析を行う場合に、ネットワークにかける負荷を小さくすることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るデータ検索システムは、
複数のサーバで分散して管理されるデータを検索するデータ検索システムであって、コントローラと、サーバ毎に割り当てられたネットワーク装置とを備えるデータ検索システムであり、
前記コントローラは、
検索要求の入力を受け付ける検索要求受付部と、
前記検索要求受付部が受け付けた検索要求に従い、検索プログラムを生成する検索プログラム生成部と、
前記検索プログラム生成部が生成した検索プログラムを、各ネットワーク装置へ送信する検索プログラム送信部と
を備え、
前記各ネットワーク装置は、
前記検索プログラム送信部が送信した検索プログラムを実行して、割り当てられたサーバに対してデータを検索する検索実行部と、
前記検索実行部が検索した検索結果を前記コントローラへ送信する検索結果送信部と
を備え、
前記コントローラは、さらに、
前記各ネットワーク装置が備える前記検索結果送信部が送信した検索結果を統合して、統合結果として出力する統合結果出力部
を備えることを特徴とする。
【０００７】
前記各ネットワーク装置は、さらに、
割り当てられたサーバで管理されるデータのデータ構造を解析するデータ構造解析部と、
前記データ構造解析部が解析したデータ構造を示す構造情報を前記コントローラへ送信する構造情報送信部と
を備え、
前記検索プログラム生成部は、前記各ネットワーク装置が備える前記構造情報送信部が送信した構造情報に従い、ネットワーク装置毎に対応する検索プログラムを生成し、
前記検索プログラム送信部は、前記検索プログラム生成部が生成したネットワーク装置毎に対応する検索プログラムを、対応するネットワーク装置へ送信する
ことを特徴とする。
【０００８】
前記各ネットワーク装置は、さらに、
割り当てられたサーバの負荷を監視する負荷監視部
を備え、
前記検索実行部は、前記負荷監視部が監視する負荷が所定値よりも低くなるように、前記検索プログラムの実行を制御する
ことを特徴とする。
【０００９】
前記検索プログラム生成部は、１度だけ実行される単発プログラムと、所定の期間実行され続ける継続プログラムとの検索プログラムを生成し、
前記検索実行部は、前記検索プログラムが単発プログラムである場合には、単発プログラムを実行して１度だけデータを検索し、前記検索プログラムが継続プログラムである場合には、前記所定の期間継続プログラムを実行し続けて、所定の時間毎にデータを検索する
ことを特徴とする。
【００１０】
前記検索プログラム生成部は、検索要求毎に、その検索要求に対する処理を行うＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を生成する
ことを特徴とする。
【００１１】
この発明に係るデータ検索プログラムは、
複数のサーバで分散して管理されるデータを検索するデータ検索プログラムであって、コントローラで動作するプログラムと、サーバ毎に割り当てられたネットワーク装置で動作するプログラムとを備えるデータ検索プログラムであり、
前記コントローラで動作するプログラムは、
検索要求の入力を受け付ける検索要求受付処理と、
前記検索要求受付処理で受け付けた検索要求に従い、検索プログラムを生成する検索プログラム生成処理と、
前記検索プログラム生成処理で生成した検索プログラムを、各ネットワーク装置へ送信する検索プログラム送信処理と
をコンピュータに実行させ、
前記各ネットワーク装置で動作するプログラムは、
前記検索プログラム送信処理で送信した検索プログラムを実行して、割り当てられたサーバに対してデータを検索する検索実行処理と、
前記検索実行処理で検索した検索結果を前記コントローラへ送信する検索結果送信処理と
をコンピュータに実行させ、
前記コントローラで動作するプログラムは、さらに、
前記各ネットワーク装置が備える前記検索結果送信処理で送信した検索結果を統合して、統合結果として出力する統合結果出力処理
をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１２】
この発明に係るデータ検索システムでは、各ネットワーク装置が検索プログラムを実行して検索した結果のみがコントローラへ送信される。そのため、ネットワークを流れるデータは、検索された結果のみであり、データ量が少ないので、ネットワークにかかる負荷が小さい。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１に係るデータ検索システム１００の構成図。
【図２】実施の形態１に係るコントローラ１０とネットワーク装置２０との構成図。
【図３】実施の形態１に係るデータ検索システム１００の動作を示すフローチャート。
【図４】実施の形態２に係るコントローラ１０とネットワーク装置２０との構成図。
【図５】実施の形態２に係るデータ検索システム１００の動作を示すフローチャート。
【図６】実施の形態３に係るコントローラ１０とネットワーク装置２０との構成図。
【図７】実施の形態４に係るコントローラ１０とネットワーク装置２０との構成図。
【図８】実施の形態４に係るデータ検索システム１００の動作を示すフローチャート。
【図９】実施の形態５に係るコントローラ１０とネットワーク装置２０との構成図。
【図１０】実施の形態５に係るデータ検索システム１００の動作を示すフローチャート。
【図１１】実施の形態１から５に係るコントローラ１０、ネットワーク装置２０のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００１４】
実施の形態１．
図１は、実施の形態１に係るデータ検索システム１００の構成図である。
データ検索システム１００は、コントローラ１０と、複数のネットワーク装置２０（ここでは、ネットワーク装置２０ａ〜２０ｃ）とを備える。各ネットワーク装置２０には、それぞれサーバ３０（ここでは、サーバ３０ａ〜３０ｃ）が割り当てられている。コントローラ１０と各ネットワーク装置２０とは、ネットワーク４０により接続されている。
【００１５】
コントローラ１０は、利用者から検索要求を受け付け、各ネットワーク装置２０へデータの検索を指示して、ネットワーク装置２０によって検索された検索結果を利用者へ出力する。
【００１６】
ネットワーク装置２０は、コントローラ１０からの指示に従い、割り当てられたサーバ３０からデータを検索して、コントローラ１０へ送信する。
なお、ネットワーク装置２０は、例えば、サーバ３０をネットワーク４０へ接続するための、ルータ、スイッチ、オープンフロースイッチ等を兼ねるものである。
【００１７】
サーバ３０は、データを管理している。サーバ３０毎に、管理されているデータが構造化されている場合と、構造化されていない場合とがある。構造化されている場合であっても、サーバ３０毎にデータ構造が異なる可能性がある。
また、サーバ３０毎に、管理されているデータが異なる場合があり、あるサーバ３０では管理されているデータであっても、他のサーバ３０では管理されていない場合もある。
【００１８】
図２は、実施の形態１に係るコントローラ１０とネットワーク装置２０との構成図である。
コントローラ１０は、検索要求受付部１１、検索プログラム生成部１２、検索プログラム送信部１３、統合結果出力部１４を備える。
ネットワーク装置２０は、検索実行部２１、検索結果送信部２２を備える。
【００１９】
検索要求受付部１１は、入力装置によって入力された利用者から検索要求の入力を受け付ける。検索要求には、抽出したいデータを示すデータ項目名と、抽出する条件とが含まれている。
【００２０】
検索プログラム生成部１２は、検索要求受付部１１が受け付けた検索要求に従い、検索プログラムを処理装置により生成する。検索プログラムは、構造化されているか、構造化されていないかに関わりなく、またデータ構造に関わりなく検索を実行可能なプログラムである。例えば、検索プログラムは、総当たりで指定された文字列を検索するプログラムである。
【００２１】
検索プログラム送信部１３は、検索プログラム生成部１２が生成した検索プログラムを、各ネットワーク装置２０へネットワーク４０を介して送信する。
【００２２】
統合結果出力部１４は、ネットワーク装置２０によって検索され、送信された検索結果を処理装置により統合して、統合結果として出力する。なお、検索結果を統合するとは、単に複数の検索結果を１つにまとめるというだけでなく、例えば統計的な解析等の解析を行うことも含む。
【００２３】
検索実行部２１は、検索プログラム送信部１３が送信した検索プログラムを実行して、割り当てられたサーバ３０に対してデータ検索を実行する。
【００２４】
検索結果送信部２２は、検索実行部２１が検索した検索結果をコントローラ１０へネットワーク４０を介して送信する。
【００２５】
図３は、実施の形態１に係るデータ検索システム１００の動作を示すフローチャートである。
まず、コントローラ１０で、検索要求受付部１１が利用者からの検索要求を受け付ける（Ｓ１１）。すると、検索プログラム生成部１２が検索プログラムを生成し（Ｓ１２）、検索プログラム送信部１３が生成された検索プログラムを各ネットワーク装置２０へ送信する（Ｓ１３）。
続いて、ネットワーク装置２０で、検索実行部２１がＳ１３で送信された検索プログラムを実行して、サーバ３０からデータを検索し（Ｓ１４）、検索結果送信部２２が検索結果をコントローラ１０へ送信する（Ｓ１５）。
そして、コントローラ１０で、統合結果出力部１４がＳ１５で送信された検索結果を統合して、統合結果として出力する（Ｓ１６）。
【００２６】
なお、Ｓ１２で複数の検索プログラムが生成された場合、Ｓ１３からＳ１５の処理が複数回繰り返される場合もある。
【００２７】
データ検索システム１００の動作例について説明する。
ここでは、拠点毎にサーバ３０が設置されており、各サーバ３０にはその拠点での商品の売上データが登録されているとする。
【００２８】
まず、検索要求受付部１１が、利用者から新商品Ａの売上について、拠点毎に、想定顧客と現実に新商品Ａを購入した現実顧客との差異を検索する検索要求を受け付ける（Ｓ１１）。
【００２９】
すると、検索プログラム生成部１２が、検索要求に従い検索プログラムを生成する（Ｓ１２）。
例えば、検索プログラム生成部１２は、想定顧客と現実顧客との差異を検索する検索要求に対する検索プログラムの雛型を予め記憶しており、商品の識別子等を引数として与えることにより、検索プログラムを生成する。
ここでは、検索プログラム生成部１２は、（１）各拠点から想定顧客の情報を取得するプログラム１、（２）各拠点から顧客毎の新商品Ａの売上情報を取得するプログラム２、（３）想定顧客と現実顧客との特徴の差異を計算するプログラム３、（４）差異が最も大きい現実顧客の顧客データを抽出するプログラム４の４つのプログラムを生成する。
【００３０】
そして、検索プログラム送信部１３が、Ｓ１２で生成された４つのプログラムのうち、まずプログラム１を各ネットワーク装置２０へ送信する（Ｓ１３）。
すると、各ネットワーク装置２０の検索実行部２１がプログラム１を実行してサーバ３０が設置された拠点の想定顧客の情報を取得し（Ｓ１４）、検索結果送信部２２が取得した想定顧客の情報をコントローラ１０へ送信する（Ｓ１５）。
【００３１】
検索プログラム送信部１３は、ネットワーク装置２０毎に、取得した想定顧客の情報をプログラム３の引数として設定し、検索プログラム送信部１３は、プログラム２，３，４を各ネットワーク装置２０へ送信する（Ｓ１３）。ここで、送信されたプログラム３は、送信先のネットワーク装置２０から取得した想定顧客の情報を設定したものである。
【００３２】
すると、各ネットワーク装置２０の検索実行部２１が、プログラム２，３，４を実行する（Ｓ１４）。
ここでは、まず、検索実行部２１は、プログラム２を実行して、新商品Ａの売上情報を取得する。売上情報には、新商品Ａを購入した顧客の特徴（年齢層、性別等）が含まれている。次に、検索実行部２１は、プログラム３を実行して、プログラム２により取得された各売上情報に含まれる顧客の特徴と、想定顧客の特徴との差異を計算する。そして、検索実行部２１は、プログラム４を実行して、差異が最も大きい現実顧客の顧客データ（年齢層、性別以外の詳細な個人情報）とを取得する。
【００３３】
そして、検索結果送信部２２は、Ｓ１４で取得された顧客の顧客データを、その顧客についてプログラム３で計算された差異の値とともに、コントローラ１０へ送信する（Ｓ１５）。
【００３４】
統合結果出力部１４は、各ネットワーク装置２０から送信された顧客データを差異の値が大きい順に整列して、出力する（Ｓ１６）。
【００３５】
以上のように、実施の形態１に係るデータ検索システム１００では、ネットワーク装置２０からコントローラ１０へ検索結果のみが送信される。つまり、各サーバ３０で管理される全てのデータがネットワーク４０を流れることはなく、各ネットワーク装置２０での検索結果のみがネットワーク４０を流れる。したがって、ネットワーク４０に大きな負荷がかかることはない。
【００３６】
実施の形態２．
実施の形態２では、効率的にデータ検索を行う方法について説明する。
【００３７】
図４は、実施の形態２に係るコントローラ１０とネットワーク装置２０との構成図である。
図４に示すコントローラ１０は、図２に示す実施の形態１に係るコントローラ１０と同じ構成である。図４に示すネットワーク装置２０は、図２に示す実施の形態１に係るネットワーク装置２０が備える機能に加え、データ構造解析部２３、構造情報送信部２４を備える。
【００３８】
データ構造解析部２３は、割り当てられたサーバ３０で管理されるデータのデータ構造を処理装置により解析する。
例えば、データ構造解析部２３は、割り当てられたサーバ３０でデータがデータベースによって管理されている場合には、そのデータベースの各テーブルの構造（テーブル名、項目名、主キー等）を特定する。
例えば、データ構造解析部２３は、様々な方法によりデータ検索を繰り返すことにより、データ構造を解析する。
【００３９】
構造情報送信部２４は、データ構造解析部２３が解析したデータ構造を示す構造情報をコントローラ１０へネットワーク４０を介して送信する。
【００４０】
なお、検索プログラム生成部１２は、各ネットワーク装置２０が備える構造情報送信部２４が送信した構造情報に従い、ネットワーク装置２０毎に対応する検索プログラムを生成する。検索プログラム送信部１３は、検索プログラム生成部１２が生成したネットワーク装置２０毎に対応する検索プログラムを、対応するネットワーク装置２０へ送信する。
【００４１】
図５は、実施の形態２に係るデータ検索システム１００の動作を示すフローチャートである。
ネットワーク装置２０で、データ構造解析部２３は、所定のタイミングに、サーバ３０へアクセスして、サーバ３０で管理されるデータのデータ構造を処理装置により解析する（Ｓ２１）。
そして、構造情報送信部２４は、データ構造解析部２３が解析したデータ構造を示す構造情報をコントローラ１０へ送信する（Ｓ２２）。
【００４２】
コントローラ１０で、検索要求受付部１１が利用者からの検索要求を受け付けると（Ｓ２３）、検索プログラム生成部１２が検索プログラムを生成する（Ｓ２４）。ここで、検索プログラム生成部１２は、ネットワーク装置２０毎に、そのネットワーク装置２０から送信された構造情報に従い、検索プログラムを生成する。
そして、検索プログラム送信部１３が生成された検索プログラムを対応するネットワーク装置２０へ送信する（Ｓ２５）。
【００４３】
Ｓ２６以降の処理は、図３に示すＳ１４以降の処理と同じである。
【００４４】
データ検索システム１００の動作例について説明する。
ここでは、拠点Ａにサーバ３０Ａが設置され、拠点Ｂにサーバ３０Ｂが設置されており、サーバ３０Ａには拠点Ａでの商品の売上データが登録され、サーバ３０Ｂには拠点Ｂでの商品の売上データが登録されているとする。また、サーバ３０Ａでは、データがデータベースで管理されており、サーバ３０Ｂでは、データが構造化されずに管理されているとする。
【００４５】
各ネットワーク装置２０では、データ構造解析部２３が、所定のタイミングに、割り当てられたサーバ３０で管理されるデータのデータ構造を解析する（Ｓ２１）。
ここでは、サーバ３０Ａに割り当てられたネットワーク装置２０のデータ構造解析部２３は、サーバ３０Ａのデータベースの構造を特定し、サーバ３０Ｂに割り当てられたネットワーク装置２０のデータ構造解析部２３は、非構造化データであることを特定する。
【００４６】
そして、各ネットワーク装置２０の構造情報送信部２４が、Ｓ２１で解析されたデータ構造を示す構造情報をコントローラ１０へ送信する（Ｓ２２）。
【００４７】
検索要求受付部１１が、利用者から新商品Ａの売上について、拠点毎に、想定顧客と現実に新商品Ａを購入した現実顧客との差異を検索する検索要求を受け付ける（Ｓ２３）。
【００４８】
すると、検索プログラム生成部１２が、検索要求に従い検索プログラムを生成する（Ｓ２４）。
この際、検索プログラム生成部１２は、Ｓ２２で送信された構造情報に従い、ネットワーク装置２０毎に検索プログラムを生成する。ここでは、サーバ３０Ａに割り当てられたネットワーク装置２０に対しては、データベースのデータ構造に従い、ＳＱＬ等で記述されたデータベースの検索プログラムを生成する。一方、サーバ３０Ｂに割り当てられたネットワーク装置２０に対しては、非構造化データであるとの情報に従い、総当たり等の検索プログラムを生成する。
【００４９】
そして、検索プログラム送信部１３が、Ｓ１２で生成された検索プログラムを、対応するネットワーク装置２０へ送信する（Ｓ２５）。
【００５０】
以降の処理は、説明を省略する。
【００５１】
以上のように、実施の形態２に係るデータ検索システム１００では、予めネットワーク装置２０によりデータ構造を解析しておき、データ構造に合わせた検索プログラムをネットワーク装置２０へ送信する。そのため、ネットワーク装置２０により実行される検索処理を短時間で実行可能である。また、検索処理によるサーバ３０への負荷も軽くなり、サーバ３０で実行される他の処理への検索処理が与える影響も小さい。
【００５２】
なお、データ構造解析部２３は、データ構造だけでなく、割り当てられたサーバ３０で管理されるデータの種別（売上データ、財務データ等）について解析してもよい。そして、構造情報送信部２４は、データ構造解析部２３が解析したデータの種別も、コントローラ１０へ送信してもよい。
この場合、コントローラ１０は、検索対象のデータを管理していないサーバ３０が割り当てられたネットワーク装置２０へ検索プログラムを送信する必要がなくなり、不要な負荷をネットワーク装置２０やサーバ３０にかけずに済む。
【００５３】
データ構造解析部２３は、割り当てられたサーバ３０で管理されるデータの種別を解析する場合、サーバ３０へアクセスしてサーバ３０が管理しているデータを検索することにより解析してもよい。しかし、この方法では、サーバ３０に負荷がかかってしまう。
そこで、データ構造解析部２３は、サーバ３０へデータが送信される度に、送信されたデータを取得して、サーバ３０で管理されるデータを解析するようにしてもよい。なお、ネットワーク装置２０は、サーバ３０をネットワーク４０へ接続するためのルータ等であるため、サーバ３０へ送信されるデータは全て取得可能である。
【００５４】
実施の形態３．
実施の形態３では、サーバ３０の負荷を考慮した動作について説明する。
【００５５】
図６は、実施の形態３に係るコントローラ１０とネットワーク装置２０との構成図である。
図６に示すコントローラ１０は、図４に示す実施の形態２に係るコントローラ１０と同じ構成である。図６に示すネットワーク装置２０は、図４に示す実施の形態２に係るネットワーク装置２０が備える機能に加え、負荷監視部２５を備える。
【００５６】
負荷監視部２５は、割り当てられたサーバ３０の負荷を監視する。ここで、サーバ３０の負荷とは、例えば、サーバ３０のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の使用率である。もちろん、他にもサーバ３０のメモリの使用率等であってもよい。
【００５７】
検索実行部２１は、負荷監視部２５が監視する負荷が所定値よりも低くなるように、前記検索プログラムの実行を制御する。同様に、データ構造解析部２３は、負荷監視部２５が監視する負荷が所定値よりも低くなるように、データ構造の解析を制御する。
ここで、負荷が所定値よりも低くなるようにとは、例えば、ＣＰＵの使用率が１００％未満になるようにという意味である。
【００５８】
以上のように、実施の形態３に係るデータ検索システム１００では、サーバ３０の負荷を監視し、負荷が高くならないように検索やデータ構造の解析を行う。そのため、サーバ３０が実行する他の処理への影響を抑えることができる。
【００５９】
実施の形態４．
実施の形態４では、ネットワーク装置２０の設置方法について説明する。
【００６０】
図７は、実施の形態４に係るコントローラ１０とネットワーク装置２０との構成図である。
図７に示すコントローラ１０は、図６に示す実施の形態３に係るコントローラ１０が備える機能に加え、カタログプログラム送信部１５を備える。図７に示すネットワーク装置２０は、図６に示す実施の形態３に係るネットワーク装置２０が備える機能に加え、接続通知部２６、接続設定部２７を備える。
【００６１】
カタログプログラム送信部１５は、ネットワーク装置２０から接続したことを通知する接続通知を受信すると、ネットワーク装置２０が接続されたサーバ３０と通信するためのカタログプログラムと、接続されたサーバ３０用の認証キーとをネットワーク４０を介してネットワーク装置２０へ送信する。
【００６２】
接続通知部２６は、サーバ３０及びネットワーク４０と接続された場合に、コントローラ１０へ接続通知を送信する。
【００６３】
接続設定部２７は、カタログプログラム送信部１５が送信したネットワーク装置２０用のカタログプログラムをネットワーク装置２０に設定する。この際、サーバ３０へのアクセスに利用される認証キーをカタログプログラムに設定することにより、サーバ３０へのアクセスが可能となる。
【００６４】
図８は、実施の形態４に係るデータ検索システム１００の動作を示すフローチャートである。図８では、ネットワーク装置２０が設置された場合の動作を示す。
まず、ネットワーク装置２０がサーバ３０及びネットワーク４０に接続されると、接続通知部２６が接続通知をコントローラ１０へ送信する（Ｓ３１）。この際、接続通知部２６は、サーバ３０が接続されたポートの識別子も合わせてコントローラ１０へ送信してもよい。
すると、カタログプログラム送信部１５は、ネットワーク装置２０用のカタログプログラムと、認証キーとをネットワーク装置２０へ送信する（Ｓ３２）。
【００６５】
接続設定部２７は、Ｓ３２で送信されたネットワーク装置２０用のカタログプログラムをネットワーク装置２０に設定する（Ｓ３３）。ここでは、ネットワーク装置２０は、ネットワーク装置２０に設定されたＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）にカタログプログラムをインストールすることにより、サーバ３０との通信用のＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を設定する。そして、接続設定部２７は、サーバ３０との通信用のＶＭを起動させる（Ｓ３４）。
【００６６】
以上のように、実施の形態４に係るデータ検索システム１００では、ネットワーク装置２０を接続するだけで、自動的にコントローラ１０とネットワーク装置２０とが接続され、ネットワーク装置２０とサーバ３０とが接続される。したがって、システム管理者等が個別に設定作業を行う必要がない。
【００６７】
実施の形態５．
実施の形態５では、複数の検索処理の並列実行について説明する。
【００６８】
図９は、実施の形態５に係るコントローラ１０とネットワーク装置２０との構成図である。
実施の形態５に係るコントローラ１０及びネットワーク装置２０の構成は、図２に示す実施の形態１に係るコントローラ１０及びネットワーク装置２０の構成と同じである。
【００６９】
コントローラ１０では、検索要求受付部１１が利用者から検索要求の入力を受け付ける度に、検索プログラム生成部１２は、受け付けた検索要求用のＶＭである検索プログラム生成ＶＭを生成する。生成された検索プログラム生成ＶＭは、検索要求に従い、検索プログラムを生成する。生成された検索プログラムは、検索プログラム送信部１３を介してネットワーク装置２０へ送信される。
【００７０】
ネットワーク装置２０では、検索実行部２１は、送信された検索プログラム毎に、検索プログラムを実行するＶＭである検索実行ＶＭを生成する。検索ＶＭは、検索プログラムを実行して検索結果を取得する。検索ＶＭが取得した検索結果は、検索結果送信部２２を介してコントローラ１０へ送信される。検索プログラムの実行が完了すると、検索実行ＶＭは処理を終了し、ＶＭＭから削除される。
【００７１】
コントローラ１０では、検索プログラム生成ＶＭが検索結果を取得し、統合結果出力部１４が統合結果を出力する。この際、統合の処理方法は、検索プログラム生成ＶＭから統合結果出力部１４へ指示する。検索要求に対する処理が完了すると、検索プログラム生成ＶＭは処理を終了し、ＶＭＭから削除される。
【００７２】
図１０は、実施の形態５に係るデータ検索システム１００の動作を示すフローチャートである。
まず、コントローラ１０で、検索要求受付部１１が利用者からの検索要求を受け付ける（Ｓ４１）。すると、検索プログラム生成部１２が、Ｓ４１で受け付けた検索要求に対応する検索プログラム生成ＶＭを生成する（Ｓ４２）。Ｓ４２で生成された検索プログラム生成ＶＭは、検索要求に従い検索プログラムを生成する（Ｓ４３）。そして、生成された検索プログラムは、検索プログラム送信部１３を介してネットワーク装置２０へ送信される（Ｓ４４）。
続いて、ネットワーク装置２０で、検索実行部２１がＳ４４で送信された検索プログラムに対応する検索実行ＶＭを生成する（Ｓ４５）。そして、生成された検索実行ＶＭが検索プログラムを実行して、サーバ３０からデータを検索し（Ｓ４６）、検索結果が検索結果送信部２２を介してコントローラ１０へ送信される（Ｓ４７）。なお、検索実行ＶＭは、検索プログラムの実行が完了すると、ＶＭＭから削除される（Ｓ４８）。
そして、コントローラ１０で、検索プログラム生成ＶＭが検索結果を取得し（Ｓ４９）、検索プログラム生成ＶＭの指示に従い統合結果出力部１４により統合結果が出力される（Ｓ５０）。なお、検索プログラム生成ＶＭは、検索結果を取得して統合結果出力部１４へ指示をした後、ＶＭＭから削除される（Ｓ５１）。
【００７３】
データ検索システム１００の動作例について説明する。
ここでは、２つの検索要求Ａ，Ｂが概ね同じタイミングに入力されたとする。
【００７４】
まず、コントローラ１０で、検索要求受付部１１が、検索要求Ａ，Ｂを受け付ける（Ｓ４１）。
すると、検索プログラム生成部１２が、検索要求Ａ用の検索プログラム生成ＶＭ（以下、ＶＭＡ）と、検索要求Ｂ用の検索プログラム生成ＶＭ（以下、ＶＭＢ）とを生成する（Ｓ４２）。ＶＭＡは、検索要求Ａに従い、検索プログラム１Ａ，２Ａを生成し、ＶＭＢは、検索要求Ｂに従い、検索プログラム１Ｂ，２Ｂを生成する（Ｓ４３）。そして、検索要求Ａ用の検索プログラム１Ａ，２Ａと、検索要求Ｂ用の検索プログラム１Ｂ，２Ｂとが、検索プログラム送信部１３を介して各ネットワーク装置２０へ送信される（Ｓ４４）。
【００７５】
続いて、各ネットワーク装置２０において、検索実行部２１が、検索要求Ａ用の検索プログラム１Ａ，２Ａと、検索要求Ｂ用の検索プログラム１Ｂ，２Ｂとを受信し、検索プログラム１Ａ，２Ａ，１Ｂ，２Ｂそれぞれ用の検索実行ＶＭ（以下、それぞれＶＭ１Ａ，ＶＭ２Ａ，ＶＭ１Ｂ，ＶＭ２Ｂ）を生成する（Ｓ４５）。そして、生成された検索実行ＶＭ１Ａ，ＶＭ２Ａ，ＶＭ１Ｂ，ＶＭ２Ｂが検索プログラム１Ａ，２Ａ，１Ｂ，２Ｂを実行して、サーバ３０からデータを検索し（Ｓ４６）、検索結果が検索結果送信部２２を介してコントローラ１０へ送信される（Ｓ４７）。ここで、検索プログラム１Ａの処理が完了すると、ＶＭ１ＡがＶＭＭから削除され、検索プログラム２Ａの処理が完了すると、ＶＭ２ＡがＶＭＭから削除され、検索プログラム１Ｂの処理が完了すると、ＶＭ１ＢがＶＭＭから削除され、検索プログラム２Ｂの処理が完了すると、ＶＭ２ＢがＶＭＭから削除される（Ｓ４８）。
【００７６】
すると、コントローラ１０で、ＶＭ１Ａ及びＶＭ２Ａが検索プログラム１Ａ，２Ａを実行した結果をＶＭＡが取得し、ＶＭ１Ｂ及びＶＭ２Ｂが検索プログラム１Ｂ，２Ｂを実行した結果をＶＭＢが取得する（Ｓ４９）。そして、ＶＭＡ及びＶＭＢが、取得した結果を統合結果出力部１４に統合させた上で出力させる（Ｓ５０）。ＶＭＡは、検索プログラム１Ａ，２Ａを実行した結果を取得し、統合結果出力部１４への指示が完了すると、ＶＭＭから削除され、ＶＭＢは、検索プログラム１Ｂ，２Ｂを実行した結果を取得し、統合結果出力部１４への指示が完了すると、ＶＭＭから削除される（Ｓ５１）。
【００７７】
以上のように、実施の形態５に係るデータ検索システム１００では、検索プログラム生成部１２が検索要求毎にその検索要求を実行するＶＭを生成し、検索実行部２１が検索プログラム毎にその検索プログラムを実行するＶＭを生成して、処理を行う。そのため、検索要求が複数入力された場合であっても、各ＶＭが並列して動作することで、複数の検索要求を並列に処理することができる。
【００７８】
また、上記説明では、検索要求は、１度検索処理を行い終了する例を説明した。しかし、所定の時間毎に同じ検索処理を行う等、継続して検索処理を行う検索要求が入力される場合もあり得る。
この場合であっても、実施の形態５に係るデータ検索システム１００では、継続して検索処理を行う検索要求に対して生成されたＶＭが削除されることなく動作を続けることで、継続して検索処理を行うことが可能である。
【００７９】
なお、上記説明では、実施の形態５に係るコントローラ１０及びネットワーク装置２０の構成は、図２に示す実施の形態１に係るコントローラ１０及びネットワーク装置２０の構成と同じであるとした。しかし、実施の形態１のデータ検索システム１００に実施の形態２−４の機能を追加したのと同様に、実施の形態５のデータ検索システム１００に実施の形態２−４の機能を追加することも可能である。
【００８０】
図１１は、実施の形態１から５に係るコントローラ１０、ネットワーク装置２０のハードウェア構成の一例を示す図である。
図１１に示すように、コントローラ１０、ネットワーク装置２０は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、ＬＣＤ９０１（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、通信ボード９１５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０（固定ディスク装置）の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置９２０は、所定の固定ディスクインタフェースを介して接続される。
【００８１】
磁気ディスク装置９２０又はＲＯＭ９１３などには、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００８２】
プログラム群９２３には、上記の説明において「検索要求受付部１１」、「検索プログラム生成部１２」、「検索プログラム送信部１３」、「統合結果出力部１４」、「カタログプログラム送信部１５」、「検索実行部２１」、「検索結果送信部２２」、「データ構造解析部２３」、「構造情報送信部２４」、「負荷監視部２５」、「接続通知部２６」、「接続設定部２７」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、上記の説明において「検索プログラム」、「検索結果」、「統合結果」、「カタログプログラム」等に記憶される情報やデータや信号値や変数値やパラメータが、「データベース」の各項目として記憶される。「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵ９１１の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵ９１１の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００８３】
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、その他光ディスク等の記録媒体やＩＣチップに記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組合せ、さらには、ファームウェアとの組合せで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ＲＯＭ９１３等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
【符号の説明】
【００８４】
１００  データ検索システム、１０  コントローラ、１１  検索要求受付部、１２  検索プログラム生成部、１３  検索プログラム送信部、１４  統合結果出力部、１５  カタログプログラム送信部、２０  ネットワーク装置、２１  検索実行部、２２  検索結果送信部、２３  データ構造解析部、２４  構造情報送信部、２５  負荷監視部、２６  接続通知部、２７  接続設定部。
【要約】
【課題】分散して管理されている大量のデータの解析を行う場合に、ネットワークにかける負荷を小さくすることを目的とする。
【解決手段】データ検索システム１００は、コントローラ１０と、サーバ３０毎に割り当てられたネットワーク装置２０とを備える。コントローラ１０は、検索要求を受け付けると、検索要求に従い検索プログラムを生成し、生成した検索プログラムを各ネットワーク装置へ送信する。各ネットワーク装置２０は、送信された検索プログラムを実行して、割り当てられたサーバに対してデータの検索を行い、検索した検索結果をコントローラ１０へ送信する。コントローラ１０は、送信された検索結果を統合して、統合結果として出力する。
【選択図】図１【図１】
0005538585.tif 000002
【図２】
0005538585.tif 000003
【図３】
0005538585.tif 000004
【図４】
0005538585.tif 000005
【図５】
0005538585.tif 000006
【図６】
0005538585.tif 000007
【図７】
0005538585.tif 000008
【図８】
0005538585.tif 000009
【図９】
0005538585.tif 000010
【図１０】
0005538585.tif 000011
【図１１】
0005538585.tif 000012