(57)【要約】【課題】クライアントからのＤＢの検索要求を扱うＡＰサーバを備えた検索システムにおいて、ＡＰサーバのキャッシュヒット率を向上させることである。【解決手段】ＡＰサーバ１００は、キャッシュメモリ１１０と、検索指示部１４０と、自動検索要求を生成する自動検索要求生成部１２０と、検索要求の処理を行う検索受付部１３０と、を備える。検索受付部１３０は、クライアント３０から検索要求を受け付けたとき、キャッシュヒットすればキャッシュメモリ１１０から検索結果を取得する。キャッシュミスすれば検索指示部１４０に検索実行命令を発行させ、検索結果をキャッシュメモリ１１０に格納する。自動検索要求生成部１２０から自動検索要求を受け付けたとき、検索指示部１４０に自動検索要求に基づく検索実行命令を発行させ、検索結果をキャッシュメモリ１１０に格納する。【選択図】図１
2010128831.tif 000002
【特許請求の範囲】
【請求項１】
クライアントと、アプリケーションサーバと、データベースを管理するデータベースサーバとを備え、前記データベースのデータを検索するデータ検索システムであって、
前記クライアントは、
前記アプリケーションサーバに対して検索要求を発行し、前記検索要求に対する検索結果に基づいて所定の処理を実行するアプリケーション処理部を有し、
前記アプリケーションサーバは、
前記データベースを検索した検索結果を記憶するキャッシュメモリと、
前記データベースサーバに対して検索実行命令を発行し、前記データベースの検索を実行させる検索指示部と、
自動検索要求を生成して、前記検索受付部に対して発行する自動検索要求生成部と、
前記クライアントから検索要求を受け付け、あるいは、前記自動検索要求生成部から自動検索要求を受け付けて、受け付けた検索要求または自動検索要求の処理を行う検索受付部と、を備え、
前記検索受付部は、
前記クライアントから検索要求を受け付けたとき、キャッシュヒットすれば前記キャッシュメモリから前記検索要求の検索結果を取得して、前記クライアントへ取得した検索結果を出力し、キャッシュミスすれば前記検索指示部に前記検索要求に基づく検索実行命令を発行させて前記検索要求に係る検索結果を取得し、前記クライアントへ取得した検索結果を出力するとともに、前記キャッシュメモリに格納し、
前記自動検索要求生成部から自動検索要求を受け付けたとき、前記検索指示部に前記自動検索要求に基づく検索実行命令を発行させて前記自動検索要求に係る検索結果を前記キャッシュメモリに格納することを特徴とするデータ検索システム。
【請求項２】
前記検索指示部が発行した検索実行命令の履歴を記憶する検索実行履歴記憶部をさらに備え、
前記自動検索要求生成部は、前記検索実行履歴記憶部に記憶されている履歴を解析し、解析結果に基づいて自動検索要求を生成することを特徴とする請求項１記載のデータ検索システム。
【請求項３】
前記自動検索要求生成部は、自動検索要求を生成する日、曜日または時刻に応じて、検索条件を決定することを特徴とする請求項２記載のデータ検索システム。
【請求項４】
前記クライアントのアプリケーション処理部は、それぞれ異なるアプリケーションに関する処理を行う複数種類のアプリケーションモジュールを有し、
前記検索指示部は、それぞれが独立に、前記データベースサーバに対して検索実行命令を発行し、前記データベースの検索を実行させる複数の検索指示モジュールを有し、
各アプリケーションモジュールは、それぞれが発行する検索要求の頻度に応じて一以上の検索指示モジュールと対応付けられていて、
前記検索受付部は、前記第１の検索要求の送信元のアプリケーションモジュールに対応付けられている検索指示モジュールに、前記検索実行命令を発行させることを特徴とする請求項１〜３のいずれかに記載のデータ検索システム。
【請求項５】
前記検索指示モジュールの数は所定の上限数以下であり、
各アプリケーションモジュールと各検索指示モジュールとの対応関係は、時刻に応じて変更可能であることを特徴とする請求項４記載のデータ検索システム。
【請求項６】
前記検索受付部が前記検索指示部に対して、前記自動検索要求に基づく検索実行命令を発行させるための指示を中継するための要求キューを、さらに備えることを特徴とする請求項１〜５のいずれかに記載のデータ検索システム。
【請求項７】
前記検索受付部は、前記検索要求として、構造化された検索式を所定のルールに従って変換した文字列を受け取り、受け取った文字列を前記構造化された検索式に変換してから前記検索指示部へ検索実行命令の発行を指示し、
前記キャッシュメモリは、前記文字列とその文字列に対する検索結果とを対応付けて記憶することを特徴とする請求項１〜６のいずれかに記載のデータ検索システム。
【請求項８】
前記検索受付部は、
前記第１の検索要求がキャッシュミスしたときに、前記第１の検索要求に係る検索結果を取得する前に、前記クライアントへ検索実行中であることを通知し、検索要求に対する応答の出力と検索結果の出力とを非同期で行うことを特徴とする請求項１〜７のいずれかに記載のデータ検索システム。
【請求項９】
クライアントと、アプリケーションサーバと、データベースを管理するデータベースサーバとを備えたデータ検索システムにおいて、前記アプリケーションサーバが行うデータ検索方法であって、
前記クライアントから検索要求を受け付けるステップと、
前記検索要求に係る検索結果データがキャッシュメモリに存在するか否かをチェックするステップと、
キャッシュヒットしたときは、前記キャッシュメモリから前記検索要求の検索結果データを取得して、前記クライアントへ取得した検索結果データを出力し、キャッシュミスしたときは、前記データベースサーバへ前記検索要求に基づく検索実行命令を発行して、前記検索要求に係る検索結果データを取得し、前記クライアントへ取得した検索結果データを出力するとともに、前記キャッシュメモリに格納するステップと、
自動検索要求を生成し、前記自動検索要求に基づく検索実行命令を発行して、前記自動検索要求に係る検索結果データを取得して、前記キャッシュメモリに格納するステップと、を行うことを特徴とするデータ検索方法。
【請求項１０】
クライアントと、アプリケーションサーバと、データベースを管理するデータベースサーバとを備えたデータ検索システムにおいて、前記アプリケーションサーバのためのコンピュータプログラムであって、
前記クライアントから検索要求を受け付けるステップと、
前記検索要求に係る検索結果データがキャッシュメモリに存在するか否かをチェックするステップと、
キャッシュヒットしたときは、前記キャッシュメモリから前記検索要求の検索結果データを取得して、前記クライアントへ取得した検索結果データを出力し、キャッシュミスしたときは、前記データベースサーバへ前記検索要求に基づく検索実行命令を発行して、前記検索要求に係る検索結果データを取得し、前記クライアントへ取得した検索結果データを出力するとともに、前記キャッシュメモリに格納するステップと、
自動検索要求を生成し、前記自動検索要求に基づく検索実行命令を発行して、前記自動検索要求に係る検索結果データを取得して、前記キャッシュメモリに格納するステップと、を前記アプリケーションサーバに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントからのデータベース検索要求を扱うアプリケーションサーバを備えた検索システムにおいて、データベース検索を高速化する技術に関する。
【背景技術】
【０００２】
従来、複数のクライアントがデータベースを検索する際に、両者の中間にアプリケーションサーバを設け、このアプリケーションサーバにキャッシュメモリを搭載して、データベース検索を高速化する技術が知られている（例えば特許文献１）。
【特許文献１】特開２００４−２９５６８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上記のようなシステムの場合、検索要求を受け付けたアプリケーションサーバでキャッシュヒットするか否かによって、クライアントから見た検索の応答時間に大きな差がある。従って、キャッシュヒット率を向上させることができれば、平均応答時間を短縮できる。これは、大量のデータを有するデータベースを検索対象とした場合には、特にその効果は大きい。
【０００４】
また、クライアントからの検索要求は、時間帯などに応じてその数や検索対象となるテーブルが変動することがある。例えば、昼の時間帯にはユーザの日中の業務と関連するテーブルの検索要求が多く、夜間にはバッチ処理などと関連するテーブルの検索要求が多いということもある。このような検索内容の変動がある場合でも、平均応答時間が大きく変動しないようにしたいというニーズがある。
【０００５】
さらに、キャッシュメモリ内のデータの使い勝手を考慮すると、キャッシュメモリには、検索結果であるデータだけでなく、検索条件を検索結果データと対応付けて記憶した方がよい。しかしながら、検索条件部分の記憶領域が大きくなると、メモリの使用効率が低下する。
【０００６】
そこで、本発明の目的は、クライアントからのデータベースの検索要求を扱うアプリケーションサーバを備えた検索システムにおいて、アプリケーションサーバのキャッシュヒット率を向上させることである。
【０００７】
本発明の別の目的は、上記の検索システムにおいて安定した平均応答時間を得ることである。
【０００８】
本発明のさらに別の目的は、上記の検索システムにおいてキャッシュメモリを効率よく利用することである。
【課題を解決するための手段】
【０００９】
本発明の一つの実施態様に従うデータ検索システムは、クライアントと、アプリケーションサーバと、データベースを管理するデータベースサーバとを備え、前記データベースのデータを検索する。前記クライアントは、前記アプリケーションサーバに対して検索要求を発行し、前記検索要求に対する検索結果に基づいて所定の処理を実行するアプリケーション処理部を有する。前記アプリケーションサーバは、前記データベースを検索した検索結果を記憶するキャッシュメモリと、前記データベースサーバに対して検索実行命令を発行し、前記データベースの検索を実行させる検索指示部と、自動検索要求を生成して、前記検索受付部に対して発行する自動検索要求生成部と、前記クライアントから検索要求を受け付け、あるいは、前記自動検索要求生成部から自動検索要求を受け付けて、受け付けた検索要求または自動検索要求の処理を行う検索受付部と、を備え、前記検索受付部は、前記クライアントから検索要求を受け付けたとき、キャッシュヒットすれば前記キャッシュメモリから前記検索要求の検索結果を取得して、前記クライアントへ取得した検索結果を出力し、キャッシュミスすれば前記検索指示部に前記検索要求に基づく検索実行命令を発行させて前記検索要求に係る検索結果を取得し、前記クライアントへ取得した検索結果を出力するとともに、前記キャッシュメモリに格納し、前記自動検索要求生成部から自動検索要求を受け付けたとき、前記検索指示部に前記自動検索要求に基づく検索実行命令を発行させて前記自動検索要求に係る検索結果を前記キャッシュメモリに格納する。
【００１０】
好適な実施形態では、前記検索指示部が発行した検索実行命令の履歴を記憶する検索実行履歴記憶部をさらに備え、前記自動検索要求生成部は、前記検索実行履歴記憶部に記憶されている履歴を解析し、解析結果に基づいて自動検索要求を生成するようにしてもよい。
【００１１】
好適な実施形態では、前記自動検索要求生成部は、自動検索要求を生成する日、曜日または時刻に応じて、検索条件を決定するようにしてもよい。
【００１２】
好適な実施形態では、前記クライアントのアプリケーション処理部は、それぞれ異なるアプリケーションに関する処理を行う複数種類のアプリケーションモジュールを有し、前記検索指示部は、それぞれが独立に、前記データベースサーバに対して検索実行命令を発行し、前記データベースの検索を実行させる複数の検索指示モジュールを有し、各アプリケーションモジュールは、それぞれが発行する検索要求の頻度に応じて一以上の検索指示モジュールと対応付けられていて、前記検索受付部は、前記第１の検索要求の送信元のアプリケーションモジュールに対応付けられている検索指示モジュールに、前記検索実行命令を発行させるようにしてもよい。
【００１３】
好適な実施形態では、前記検索指示モジュールの数は所定の上限数以下であり、各アプリケーションモジュールと各検索指示モジュールとの対応関係は、時刻に応じて変更可能であってもよい。
【００１４】
好適な実施形態では、前記検索受付部が前記検索指示部に対して、前記自動検索要求に基づく検索実行命令を発行させるための指示を中継するための要求キューを、さらに備えていてもよい。
【００１５】
好適な実施形態では、前記検索受付部は、前記検索要求として、構造化された検索式を所定のルールに従って変換した文字列を受け取り、受け取った文字列を前記構造化された検索式に変換してから前記検索指示部へ検索実行命令の発行を指示し、前記キャッシュメモリは、前記文字列とその文字列に対する検索結果とを対応付けて記憶するようにしてもよい。
【００１６】
好適な実施形態では、前記検索受付部は、前記第１の検索要求がキャッシュミスしたときに、前記第１の検索要求に係る検索結果を取得する前に、前記クライアントへ検索実行中であることを通知し、検索要求に対する応答の出力と検索結果の出力とを非同期で行うものでもよい。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の一実施形態に係るデータ検索システムについて、図面を参照して説明する。
【００１８】
図１は、本実施形態に係るデータ検索システムの構成図を示す。同図に示すように、データ検索システムは、１台以上のクライアント３０と、１台以上のアプリケーションサーバ（以下、ＡＰサーバと称する）１００と、データベース５２を管理するデータベースサーバ（以下、ＤＢサーバと称する）５０とを備える。各クライアント３０及びＡＰサーバ１００は共通の構成を有するので、以下の説明では、一つのクライアント３０及び一つのＡＰサーバ１００について説明する。
【００１９】
クライアント３０、ＡＰサーバ１００及びＤＢサーバ５０は、いずれも例えば汎用的なコンピュータシステムにより構成され、以下に説明するクライアント３０、ＡＰサーバ１００及びＤＢサーバ５０内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００２０】
クライアント３０は、例えば、ユーザが操作するユーザインタフェース装置として機能する。クライアント３０は、一以上のＡＰ処理部３２（３２ａ，３２ｂ）を有する。
【００２１】
ＡＰ処理部３２は、例えば、ＡＰサーバ１００に対して検索要求を発行し、その検索要求に対する検索結果を取得して、ユーザにその検索結果を提示するなど、所定のアプリケーションに関する処理を実行する。ＡＰ処理部３２は、ユーザからの指示、あるいは、所定の処理結果に応じて、データベース５２の検索要求を生成する。
【００２２】
ＡＰ処理部３２ａ，３２ｂは、例えば、それぞれ異なるアプリケーションに関する処理を行うアプリケーションモジュールである。図１の例では、ＡＰ処理部３２ａが売上分析処理のアプリケーションモジュールであり、ＡＰ処理部３２ｂが店舗分析のアプリケーションモジュールである。図１では、クライアント３０は、上記２種類のＡＰ処理部３２を有しているが、さらに多くの種類のアプリケーションモジュールを有していても良い。
【００２３】
ここで、ＡＰ処理部３２からＡＰサーバ１００に対する検索要求には検索条件が含まれる。この検索条件は、ＳＱＬ等の構造化された検索式そのものではなく、検索式を所定のルールに従って変換した文字列で記述される。例えば、“ｍｏｎｔｈ＝９，ｄａｔｅ＝１７”と検索式において記述すべきところを、“ｍ９ｄ１７”と省略した（メモリの使用量を少なくした）文字列としてもよい。
【００２４】
ＡＰサーバ１００は、キャッシュメモリ１１０と、自動検索要求生成部１２０と、検索受付部１３０と、検索指示部１４０と、要求キュー１５０と、検索指示部１４０から検索受付部１３０へ渡される検索結果データを中継する通知キュー１６０と、検索ログ１７０とを備える。
【００２５】
キャッシュメモリ１１０は、検索結果データ（データベース５２のオリジナルデータのコピー）を検索条件と対応付けて記憶する。キャッシュメモリ１１０は、例えば、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）で、検索受付部１３０により逐次更新される。キャッシュメモリ１１０に格納されるデータの一例を図２に示す。同図に示すように、キャッシュメモリ１１０には、検索条件１１１，検索結果データ１１２，検索日１１３及び検索時刻１１４が格納される。検索条件１１１には、クライアント３０から取得した、上述した文字列がそのまま格納される。
【００２６】
再び図１を参照すると、自動検索要求生成部１２０は、クライアント３０からの検索要求とは別に、検索要求を自動的に生成して、検索受付部１３０に対して発行する。自動検索要求生成部１２０が生成する自動検索要求にも、上述した文字列で記述された検索条件が含まれている。自動検索要求生成部１２０が発行する自動検索要求は、例えば、自動検索要求生成部１２０が動的に生成するものであっても良いし、予め定められているものであっても良い。例えば、自動検索要求生成部１２０が検索ログ１７０を参照して、検索ログ１７０に保存されている検索履歴を解析して、その解析結果に基づいて検索条件を定めても良い。例えば、自動検索要求生成部１２０は検索履歴を解析して、特定の検索条件（例えば、データベース５２のあるテーブルＴに対する検索要求）が集中している日、曜日、時間帯などを抽出し、その日、曜日、時間帯などの直前に、その特定の検索条件の検索要求（テーブルＴに対する検索要求）を自動的に発行するようにしても良い。あるいは、検索ログ１７０の検索履歴を事前に分析しておき、それに基づいて定まる特定の時間帯に自動検索要求生成部１２０が実行すべき検索要求を予め定めておいても良い。いずれの場合でも、クライアント３０からそのテーブルＴに対する検索要求を受け付けたときは、既にそのテーブルＴのコピーデータがキャッシュメモリ１１０に蓄積されていることになる。
【００２７】
検索受付部１３０は、クライアント３０及び自動検索要求生成部１２０から検索要求を受け付けて、受け付けた検索要求に基づいて検索指示部１４０へ検索指示を行い、ＤＢサーバ５０に対して検索実行命令を発行させる。例えば、クライアント３０または自動検索要求生成部１２０から受け付けた検索要求には、上述のように、検索式の代わりの文字列が含まれている。そこで、検索受付部１３０は、この文字列をＳＱＬ等の所定の構造化された検索式に変換する。
【００２８】
検索受付部１３０は、クライアント３０から検索要求を受け付けると、まず、キャッシュメモリ１１０の検索条件１１１に、その検索要求の検索条件と同一のものが格納されているか否かを判定する。検索要求と同一の検索条件がキャッシュメモリ１１０の検索条件１１１に格納されているときは（キャッシュヒット）、検索受付部１３０は、それに対応する検索結果データ１１２をキャッシュメモリ１１０から取得して、クライアント３０へ返す。一方、検索要求と同一の検索条件がキャッシュメモリ１１０の検索条件１１１に格納されていないときは（キャッシュミス）、その検索要求に基づく検索指示を、要求キュー１５０へ格納する。要求キュー１５０に格納した検索要求に基づく検索結果データが、後述するようにして通知キュー１６０に格納されるので、検索受付部１３０は通知キュー１６０から検索結果データを取得する。検索受付部１３０は、この検索結果データをクライアント３０へ返すとともに、キャッシュメモリ１１０に格納して、キャッシュメモリ１１０を更新する。
【００２９】
また、検索受付部１３０は、自動検索要求生成部１２０から自動検索要求を受けたときは、その自動検索要求に基づく検索指示を、要求キュー１５０へ格納する。このとき、自動検索要求に含まれる検索条件の検索結果データがキャッシュメモリ１１０に存在するか否かのチェックを行っても良いし、行わなくても良い。検索受付部１３０は通知キュー１６０から検索結果データを取得して、その検索結果データをキャッシュメモリ１１０に格納して、キャッシュメモリ１１０を更新する。
【００３０】
検索指示部１４０（１４０ａ〜ｅ）は、ＤＢサーバ５０に対してデータベース５０の検索実行命令を発行し、データベース５０の検索を実行させ、その検索結果を取得する。検索指示部１４０は、例えば、要求キュー１５０から検索指示を取得して、その検索指示に基づく検索実行命令を生成し、ＤＢサーバ５０へ送る。そして、ＤＢサーバ５０から検索結果データを取得すると、その検索結果データを通知キュー１６０へ格納する。検索指示部１４０は複数設けられていて、それぞれが独立に検索実行指示を行う検索指示モジュールであっても良い。一つの検索指示部１４０が一つの要求キュー１５０に対応付けられている。検索指示部１４０は、検索実行時に動的に生成され、検索終了後に消滅するものであっても良い。
【００３１】
通知キュー１６０は、検索指示部１４０から検索受付部１３０へ検索結果のデータを受け渡しするためのキューである。通知キュー１６０は、ファーストイン・ファーストアウトで検索結果を検索受付部１３０へ渡す。
【００３２】
要求キュー１５０（１５０ａ〜ｅ）は、検索受付部１３０からの検索指示を検索指示部１４０へ受け渡し（中継）を行うためのキューである。要求キュー１５０は複数設けられていて、一つの要求キュー１５０が一つの検索指示部１４０に対応付けられている。各要求キュー１５０は、対応付けられている検索指示部１４０へ、ファーストイン・ファーストアウトで検索指示を渡す。要求キュー１５０は、ファーストイン・ファーストアウトの例外として、優先順位の高い検索指示を優先的に出力しても良い。検索受付部１３０から検索指示部１４０への検索指示の受け渡しに要求キュー１５０を用いることにより、検索指示部１４０への検索指示の数が制御されるので、その結果、ＤＢサーバ５０に対する検索要求の流量制御を行うことができる。
【００３３】
また、各検索指示部１４０または要求キュー１５０と、クライアントのいずれかのＡＰ処理部３２とが対応付けられている。例えば、売上分析のＡＰ処理部３２ａには、検索指示部１４０ａ，１４０ｂ（または要求キュー１５０ａ，１５０ｂ）が対応付けられて、店舗分析のＡＰ処理部３２ｂには、検索指示部１４０ｃ，１４０ｄ，１４０ｅ（または要求キュー１５０ｃ，１５０ｄ，１５０ｅ）が対応付けられてもよい。
【００３４】
上記の対応関係は、検索受付部１３０が管理しても良い。例えば、検索受付部１３０がＡＰ処理部３２ａの識別情報と、要求キュー１５０ａ，ｂの識別情報とを対応付け、ＡＰ処理部３２ｂの識別情報と、要求キュー１５０ｃ〜ｅの識別情報とを対応付けて記憶していても良い。そして、検索受付部１３０は、検索要求に発行元のＡＰ処理部３２の識別情報に基づいて、その識別情報に対応付けられている要求キュー１５０を特定し、ＡＰ処理部３２が発行した検索要求に基づく検索指示を特定された要求キュー１５０に格納する。
【００３５】
あるいは、売上分析のＡＰ処理部３２ａからの検索要求は、複数のＡＰサーバ１００のうちの第１のＡＰサーバが処理し、店舗分析のＡＰ処理部３２ｂからの検索要求は、複数のＡＰサーバ１００のうちの第２のＡＰサーバが処理するようになっていてもよい。このようにすれば、第１のＡＰサーバのキャッシュメモリ１１０には、売上分析のＡＰ処理部３２ａがよく利用するデータがキャッシュされ、第２のＡＰサーバのキャッシュメモリ１１０には、店舗分析のＡＰ処理部３２ｂがよく利用するデータがキャッシュされ、それぞれのヒット率が向上する。
【００３６】
ＡＰ処理部３２と対応付けられている検索指示部１４０または要求キュー１５０の数は、各ＡＰ処理部３２が発行する検索要求の頻度に応じて定めても良い。例えば、検索要求の発行頻度が高いＡＰ処理部３２には、検索指示部１４０または要求キュー１５０を多く割り当て、検索要求の発行頻度が低いＡＰ処理部３２に割り当てる検索指示部１４０または要求キュー１５０を少なくしても良い。さらに、日、曜日、時間帯などに応じて、各ＡＰ処理部３２が発行する検索要求の数に変動があるときは、その変動に対応させてＡＰ処理部３２と検索指示部１４０または要求キュー１５０との対応関係を変動させても良い。例えば、昼間の時間帯に検索要求を多く発行するＡＰ処理部３２に対しては、午前８時から午後５時までの間に多くの検索指示部１４０または要求キュー１５０を割り当て、夜間に検索要求を多く発行するＡＰ処理部３２に対しては、午後５時から翌日の午前５時までの間に多くの検索指示部１４０または要求キュー１５０を割り当てるようにしてもよい。
【００３７】
検索指示部１４０の上限数が定められているときは、その上限数の範囲内でＡＰ処理部３２と検索指示部１４０との対応関係を定めるようにしてもよい。
【００３８】
検索ログ１７０は、検索指示部１４０が発行した検索実行命令の履歴を検索ログとして記憶する。
【００３９】
次に、図３に示すフローチャートを参照して、ＡＰサーバ１００がクライアント３０からの検索要求を処理する手順について説明する。
【００４０】
まず、検索受付部１３０が、ＡＰ処理部３２からの検索要求を受け付ける（Ｓ１０）。
検索受付部１３０は、受け付けた検索要求の検索条件がキャッシュメモリ１１０の検索条件１１１に格納されているか否かをチェックする（Ｓ１２）。ここで、キャッシュヒットしたときは、検索受付部１３０は、キャッシュメモリ１１０に格納されている検索結果データ１１２を読み出す（Ｓ１４）。一方、キャッシュミスしたときは、検索受付部１３０が検索要求に基づいて検索式を生成し、その検索式を要求キュー１５０に格納する。これにより、検索受付部１３０から検索指示部１４０への検索指示となる（Ｓ１６）。
【００４１】
検索指示部１４０は、検索指示に基づいて検索実行命令を生成して、ＤＢサーバ５０に対して送信して検索を実行させる（Ｓ１８）。検索指示部１４０がこの検索実行命令に対する検索結果データを取得すると、通知キュー１６０を介して検索受付部１３０へ渡される。そして、検索受付部１３０がこの検索結果データに基づいて、キャッシュメモリ１１０を更新する（Ｓ２０）。
【００４２】
検索受付部１３０は、データベース５２またはキャッシュメモリ１１０から取得した検索結果データを、検索要求元のクライアント３０へ送信する（Ｓ２２）。
【００４３】
次に、図４に示すフローチャートを参照して、ＡＰサーバ１００が自動検索を行う処理手順について説明する。
【００４４】
まず、自動検索要求生成部１２０が所定のタイミングで自動検索要求を生成して、検索受付部１３０にその自動検索要求を送る（Ｓ３０）。検索受付部１３０は、受け付けた自動検索要求の検索条件がキャッシュメモリ１１０の検索条件１１１に格納されているか否かをチェックする（Ｓ３２）。ここで、キャッシュヒットしたときは、以降の処理を行わず終了する。
【００４５】
一方、キャッシュミスしたときは、検索受付部１３０が検索要求に基づいて検索式を生成し、その検索式を要求キュー１５０に格納する。これにより、検索受付部１３０から検索指示部１４０への自動検索指示となる（Ｓ３４）。
【００４６】
検索指示部１４０は、この自動検索指示に基づいて検索実行命令を生成して、ＤＢサーバ５０に対して送信して検索を実行させる（Ｓ３６）。検索指示部１４０がこの検索実行命令に対する検索結果データを取得すると、通知キュー１６０を介して検索受付部１３０へ渡される。そして、検索受付部１３０がこの検索結果データに基づいて、キャッシュメモリ１１０を更新する（Ｓ３８）。
【００４７】
自動検索要求を適切なタイミングで実行することにより、クライアント３０で行われる業務の切り替えに伴って、クライアント３０から発行される検索要求で必要するデータが切り替わるときに、事前に切り替わった後のデータをキャッシュメモリに格納しておくことができる。
【００４８】
また、本実施形態に係るデータ検索システムは、クライアント３０から検索要求において、キャッシュミスしたときに、一旦、要求元のクライアント３０へ制御を返す非同期検索を行うことができる。図５を参照して、非同期検索について説明する。
【００４９】
まず、クライアント３０がＡＰサーバ１００へ検索要求を送る（Ｓ５０）。
【００５０】
ＡＰサーバ１００では、上述のようにして検索受付部１３０がキャッシュメモリ１１０をチェックして、キャッシュミスの場合にＤＢサーバ５０へ検索実行命令を発行する（Ｓ５２）。ここで、ＡＰサーバ１００は、検索要求を受け付けたことを示す通知、あるいは、現在検索実行中であることを示す通知を要求元のクライアント３０へ返す（Ｓ５４）。これにより、クライアント３０では、検索要求に関する処理は一旦終了し、別の処理を行うことができる。
【００５１】
ＤＢサーバ５０は、検索実行命令を受けると、その命令に従って検索を実行する（Ｓ５６）。そして、検索が終了すると、その検索結果がＡＰサーバ１００へ通知される（Ｓ５８）。ＡＰサーバ１００では、その検索結果をクライアント３０へ返送する（Ｓ６０）。
【００５２】
これにより、クライアントは非同期検索をおこなうことができる。
【００５３】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【００５４】
【図１】本発明の一実施形態に係るデータ検索システムの構成図を示す。
【図２】キャッシュメモリ１１０に格納されるデータの一例を示す。
【図３】ＡＰサーバ１００がクライアント３０からの検索要求を処理する手順を示すフローチャートである。
【図４】ＡＰサーバ１００が自動検索を行う処理手順を示すフローチャートである。
【図５】非同期検索のシーケンス図である。
【符号の説明】
【００５５】
３０       クライアント
３２       ＡＰ処理部
５０       ＤＢサーバ
１００    ＡＰサーバ
１１０    キャッシュメモリ
１２０    自動検索要求生成部
１３０    検索受付部
１４０    検索指示部
１５０    要求キュー
１６０    通知キュー
１７０    検索ログ
【図１】
2010128831.tif 000003
【図２】
2010128831.tif 000004
【図３】
2010128831.tif 000005
【図４】
2010128831.tif 000006
【図５】
2010128831.tif 000007