(57)【要約】【課題】Ｗｅｂサーバにキャッシュされているデータを改ページ表示させる場合に、古いデータが表示されないようにする。【解決手段】Ｗｅｂサーバ３０は、検索結果をキャッシュして再利用するためのキャッシュデータ管理部３２と、データの更新があったときに、その差分情報でキャッシュデータを更新するキャッシュデータ更新部３４とを備えている。ＤＢサーバ５０は、マスタデータ記憶部５１のデータ更新を監視するデータ更新要求監視部５３と、マスタデータ記憶部５１に更新があったときにキャッシュデータに影響のあるデータを検索するデータ変更影響検索部５４とを備えている。クライアント１２からの訂正依頼がデータ更新要求監視部５３により検出されると、データ変更影響検索部５４がデータ更新の影響が及ぶキャッシュデータを検索し、更新されている部分だけの差分情報でＤＢサーバ５０およびＷｅｂサーバ３０のキャッシュデータを更新する。【選択図】図１
2013050864.tif 000002
【特許請求の範囲】
【請求項１】
クライアントと接続されて前記クライアントからの検索要求を中継するＷｅｂサーバと、前記Ｗｅｂサーバと接続されたデータベースサーバとを含んで構成される情報処理システムにおいて、
前記Ｗｅｂサーバは、
前記クライアントからの検索要求を受けてクライアント識別情報を生成する識別情報生成部と、
前記データベースサーバによる検索結果のキャッシュデータを前記クライアント毎に保存して前記クライアントに送出する第１キャッシュデータ管理部と、
前記データベースサーバにて更新された更新データを受信する受信部と、
前記第１キャッシュデータ管理部のキャッシュデータを前記更新データで更新するキャッシュデータ更新部と、
を備え、
前記データベースサーバは、
マスタデータを記憶するマスタデータ記憶部と、
前記Ｗｅｂサーバからの検索依頼を受けて前記マスタデータ記憶部に対して検索を実行し、検索条件および前記検索結果のキャッシュデータを前記クライアント毎に保存するとともに保存されたキャッシュデータを前記Ｗｅｂサーバに送信する第２キャッシュデータ管理部と、
前記マスタデータ記憶部に対して要求されるデータ更新を監視するデータ更新要求監視部と、
前記データ更新要求監視部がデータ更新要求を検出したときに、前記第２キャッシュデータ管理部に保存されている前記検索条件で再検索を実行し、再検索の結果と前記第２キャッシュデータ管理部のキャッシュデータとを比較して影響のあったデータを検索し、前記第２キャッシュデータ管理部のキャッシュデータのうち影響のあったデータを更新するデータ変更影響検索部と、
前記更新データを前記Ｗｅｂサーバへ送信する送信部と、
を備えていることを特徴とする情報処理システム。
【請求項２】
前記データベースサーバの前記データ変更影響検索部は、再検索した結果と前記第２キャッシュデータ管理部のキャッシュデータとの差分を抽出して前記送信部へ送出し、
前記Ｗｅｂサーバは、前記受信部が前記差分を受信し、前記キャッシュデータ更新部が保存してあるキャッシュデータを前記差分で更新することを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記識別情報生成部が前記クライアントから改ページの要求を受けたとき、前記第１キャッシュデータ管理部は、前記第１キャッシュデータ管理部のキャッシュデータから要求されたページのデータを取得して前記クライアントに送信することを特徴とする請求項１記載の情報処理システム。
【請求項４】
前記データベースサーバの前記データ変更影響検索部は、前記Ｗｅｂサーバからデータ更新が成功しない旨の通知があったとき、前記第２キャッシュデータ管理部のキャッシュデータから該当するクライアントのレコードを削除することを特徴とする請求項１記載の情報処理システム。
【請求項５】
前記データベースサーバの前記データ変更影響検索部は、前記第２キャッシュデータ管理部が保存するすべての前記クライアントの前記検索条件で再検索を行うことを特徴とする請求項１記載の情報処理システム。
【請求項６】
クライアントと接続されて前記クライアントからの検索要求を中継するＷｅｂサーバと、前記Ｗｅｂサーバと接続されて検索時に使用した検索条件および検索結果のキャッシュデータをクライアント毎に保存し、前記検索結果のキャッシュデータについては前記Ｗｅｂサーバに保存させるようにしたデータベースサーバとを含んで構成される情報処理システムの情報処理方法において、
前記データベースサーバにてデータ更新要求があると、クライアント毎に保存されているレコードから前記検索条件を取得して前記検索条件で再検索を行い、
再検索により得られたデータと保存されている前記検索結果のキャッシュデータとを比較し、
比較結果に差異がある場合には差分を抽出し、
前記データベースサーバおよび前記Ｗｅｂサーバのキャッシュデータを前記差分でそれぞれ更新し、
前記Ｗｅｂサーバでの更新が成功しない場合、前記データベースサーバのキャッシュデータから該当するレコードを削除する、
ことを特徴とする情報処理方法。
【請求項７】
コンピュータを、
クライアントからの検索要求を受けてクライアント識別情報を生成し、データベースサーバに検索を依頼する識別情報生成部、
前記データベースサーバによる検索結果のキャッシュデータを前記クライアント毎に保存して前記クライアントに送信するとともに前記識別情報生成部が前記クライアントから改ページの要求を受けたときには、保存しているキャッシュデータから要求されたページのデータを前記クライアントに送信するキャッシュデータ管理部、
前記キャッシュデータ管理部のキャッシュデータを前記データベースサーバにて更新された前記更新データで更新するキャッシュデータ更新部、
として機能させるための情報処理プログラム。
【請求項８】
コンピュータを、
Ｗｅｂサーバからの検索依頼を受けてマスタデータ記憶部に対して検索を実行し、検索条件および前記検索結果のキャッシュデータをクライアント毎に保存するとともに保存されたキャッシュデータを前記Ｗｅｂサーバに送信するキャッシュデータ管理部、
前記マスタデータ記憶部に対して要求されるデータ更新を監視するデータ更新要求監視部、
前記データ更新要求監視部がデータ更新要求を検出したときに、前記キャッシュデータ管理部に保存されている前記検索条件で再検索を実行し、再検索の結果と前記キャッシュデータ管理部のキャッシュデータとを比較して影響のあったデータを検索し、影響のあった前記キャッシュデータ管理部のキャッシュデータを更新し、前記Ｗｅｂサーバからデータ更新が成功しない旨の通知があったとき、前記キャッシュデータ管理部のキャッシュデータから該当するクライアントのレコードを削除するデータ変更影響検索部、
として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理システム、情報処理方法および情報処理プログラムに関し、特に検索結果データの閲覧中にデータの更新があってもその更新されたデータでの閲覧が可能な情報処理システム、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
金融等の検索システムでは、クライアントの端末から検索の依頼があると、Ｗｅｂサーバは、データベースサーバ（以下、ＤＢサーバという）に依頼して検索した結果を取得してキャッシュに保存し、クライアントに転送する。このとき、検索結果のデータが大量である場合、クライアント側端末の画面に収まるデータに分割し、クライアントには、１ページ分のデータのみを検索結果として転送することがある。この場合、クライアントが他のページを閲覧するときに、画面上に表示された次のページまたは前のページ等のボタンを押下すると、Ｗｅｂサーバは、キャッシュから該当するページのデータを切り出して返送し、クライアント側端末の画面に表示させる。
【０００３】
この改ページデータのように、同じ検索結果のデータに対して異なるページのデータを閲覧する場合には、ＤＢサーバで再検索をすることなく、Ｗｅｂサーバにキャッシュされているデータにアクセスするようにしている。これにより、ＤＢサーバにアクセスすることがないので、ページ指定時の応答速度が向上し、かつ、ＤＢサーバへの負荷が軽減されている。
【０００４】
但し、Ｗｅｂサーバにキャッシュされているデータを表示する場合、キャッシュデータとＤＢサーバのデータとの整合性が保証されていない。つまり、ＤＢサーバが検索を実行してその検索結果をＷｅｂサーバにキャッシュされてから改ページボタンが押下されるまでの間にＤＢサーバのデータが更新されることが多々ある。すると、当然ながら、Ｗｅｂサーバのキャッシュデータは、古いままなので、改ページ実行後のクライアント側端末の画面は、古いデータを表示することになる。
【０００５】
これに対し、更新処理をしたＤＢサーバのデータの整合性が保証されないことに対し、必要に応じてＤＢサーバと同期させる機構が提案されている（たとえば、特許文献１参照）。この提案によれば、ＷｅｂサーバとＤＢサーバとの間にキャッシュデータベースを設置し、ＤＢサーバで更新処理があったときに、キャッシュデータベースにデータを保存するようにしている。Ｗｅｂサーバは、ＤＢサーバに直接アクセスすることがないので、ＤＢサーバは、検索処理に関する負荷を低減することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−６０３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、キャッシュデータベースを設置してＤＢサーバと同期させるようにしても、Ｗｅｂサーバにキャッシュされているデータは、キャッシュデータベースのデータと同期されている訳ではないので、古いデータを表示する可能性があるという問題点が依然としてある。
【０００８】
本発明はこのような点に鑑みてなされたものであり、Ｗｅｂサーバにキャッシュされているデータを改ページ表示させる場合に、古いデータが表示されることのない情報処理システム、情報処理方法および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では上記の課題を解決するために、クライアントと接続されて前記クライアントからの検索要求を中継するＷｅｂサーバと、前記Ｗｅｂサーバと接続されたＤＢサーバとを含んで構成される情報処理システムにおいて、前記Ｗｅｂサーバは、前記クライアントからの検索要求を受けてクライアント識別情報を生成する識別情報生成部と、前記ＤＢサーバによる検索結果のキャッシュデータを前記クライアント毎に保存して前記クライアントに送出する第１キャッシュデータ管理部と、前記ＤＢサーバにて更新された更新データを受信する受信部と、前記第１キャッシュデータ管理部のキャッシュデータを前記更新データで更新するキャッシュデータ更新部と、を備え、前記ＤＢサーバは、マスタデータを記憶するマスタデータ記憶部と、前記Ｗｅｂサーバからの検索依頼を受けて前記マスタデータ記憶部に対して検索を実行し、検索条件および前記検索結果のキャッシュデータを前記クライアント毎に保存するとともに保存されたキャッシュデータを前記Ｗｅｂサーバに送信する第２キャッシュデータ管理部と、前記マスタデータ記憶部に対して要求されるデータ更新を監視するデータ更新要求監視部と、前記データ更新要求監視部がデータ更新要求を検出したときに、前記第２キャッシュデータ管理部に保存されている前記検索条件で再検索を実行し、再検索の結果と前記第２キャッシュデータ管理部のキャッシュデータとを比較して影響のあったデータを検索し、前記第２キャッシュデータ管理部のキャッシュデータのうち影響のあったデータを更新するデータ変更影響検索部と、前記更新データを前記Ｗｅｂサーバへ送信する送信部と、を備えていることを特徴とする情報処理システムが提供される。
【００１０】
また、本発明においては、クライアントと接続されて前記クライアントからの検索要求を中継するＷｅｂサーバと、前記Ｗｅｂサーバと接続されて検索時に使用した検索条件および検索結果のキャッシュデータをクライアント毎に保存し、前記検索結果のキャッシュデータについては前記Ｗｅｂサーバに保存させるようにしたＤＢサーバとを含んで構成される情報処理システムの情報処理方法において、前記ＤＢサーバにてデータ更新要求があると、クライアント毎に保存されているレコードから前記検索条件を取得して前記検索条件で再検索を行い、再検索により得られたデータと保存されている前記検索結果のキャッシュデータとを比較し、比較結果に差異がある場合には差分を抽出し、前記ＤＢサーバおよび前記Ｗｅｂサーバのキャッシュデータを前記差分でそれぞれ更新し、前記Ｗｅｂサーバでの更新が成功しない場合、前記ＤＢサーバのキャッシュデータから該当するレコードを削除する、ことを特徴とする情報処理方法が提供される。
【００１１】
さらに、本発明においては、コンピュータを、クライアントからの検索要求を受けてクライアント識別情報を生成し、ＤＢサーバに検索を依頼する識別情報生成部、前記ＤＢサーバによる検索結果のキャッシュデータを前記クライアント毎に保存して前記クライアントに送信するとともに前記識別情報生成部が前記クライアントから改ページの要求を受けたときには、保存しているキャッシュデータから要求されたページのデータを前記クライアントに送信するキャッシュデータ管理部、前記キャッシュデータ管理部のキャッシュデータを前記ＤＢサーバにて更新された前記更新データで更新するキャッシュデータ更新部、として機能させるための情報処理プログラムが提供される。
【００１２】
また、本発明においては、コンピュータを、Ｗｅｂサーバからの検索依頼を受けてマスタデータ記憶部に対して検索を実行し、検索条件および前記検索結果のキャッシュデータをクライアント毎に保存するとともに保存されたキャッシュデータを前記Ｗｅｂサーバに送信するキャッシュデータ管理部、前記マスタデータ記憶部に対して要求されるデータ更新を監視するデータ更新要求監視部、前記データ更新要求監視部がデータ更新要求を検出したときに、前記キャッシュデータ管理部に保存されている前記検索条件で再検索を実行し、再検索の結果と前記キャッシュデータ管理部のキャッシュデータとを比較して影響のあったデータを検索し、影響のあった前記キャッシュデータ管理部のキャッシュデータを更新し、前記Ｗｅｂサーバからデータ更新が成功しない旨の通知があったとき、前記キャッシュデータ管理部のキャッシュデータから該当するクライアントのレコードを削除するデータ変更影響検索部、として機能させるための情報処理プログラムが提供される。
【００１３】
このような情報処理システム、情報処理方法および情報処理プログラムによれば、マスタデータに変更があれば、キャッシュされているキャッシュデータにデータ変更による影響があるかどうかを検索し、影響のあるキャッシュデータは、更新し、同時に、Ｗｅｂサーバのキャッシュデータも更新する。これにより、Ｗｅｂサーバのキャッシュデータは、常に最新のデータに保たれるので、同一検索条件の検索依頼があったときには、Ｗｅｂサーバのキャッシュデータを再利用できる。また、ＤＢサーバは、検索処理に関する負荷を低減することができる。
【発明の効果】
【００１４】
上記構成の情報処理システム、情報処理方法および情報処理プログラムによれば、ＤＢサーバでデータの更新が発生すると、ＤＢサーバのキャッシュデータに保存していた検索条件で再検索を実施し、その再検索の結果とＤＢサーバのキャッシュデータとの比較で、差異があればその差異でＤＢサーバおよびＷｅｂサーバのキャッシュデータを更新するようにした。このため、Ｗｅｂサーバのキャッシュデータは、常に最新の状態に保たれているので、同一の検索条件での検索依頼の場合には、Ｗｅｂサーバのキャッシュデータを利用でき、しかも、古いデータをクライアントに送信することがなくなる。また、検索依頼が発生する度に、必ず、ＤＢサーバへのアクセスがあるとは限らないので、ＤＢサーバの負荷を低減することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態に係る情報処理システムの構成例を示す図である。
【図２】Ｗｅｂサーバのハードウェア構成例を示す図である。
【図３】情報処理システムにおける初回検索時の動作を説明する説明図である。
【図４】電文の例を示す図であって、（Ａ）はクライアントからＷｅｂサーバに送信される電文の例を示す図、（Ｂ）はＷｅｂサーバからＤＢサーバに送信される電文の例を示す図、（Ｃ）はＤＢサーバからＷｅｂサーバに送信される電文の例を示す図である。
【図５】キャッシュテーブルのデータ構成例を示す図であって、（Ａ）はＤＢサーバのキャッシュテーブルのデータ構成例を示す図、（Ｂ）はＷｅｂサーバのキャッシュテーブルのデータ構成例を示す図である。
【図６】マスタデータ更新時の動作を説明する説明図である。
【図７】マスタデータ更新処理時の電文の例を示す図であって、（Ａ）はＤＢサーバへの更新依頼電文の例を示す図、（Ｂ）はＷｅｂサーバへの差分情報更新電文の例を示す図、（Ｃ）はＤＢサーバへの差分情報更新応答電文の例を示す図である。
【図８】クライアントが改ページを依頼したときの動作を説明する説明図である。
【図９】Ｗｅｂサーバ検索依頼処理の流れを示すフローチャートである。
【図１０】ＤＢサーバ検索処理の流れを示すフローチャートである。
【図１１】データ更新発生時における情報処理システムのキャッシュデータ更新処理を示す説明図である。
【図１２】ＤＢサーバキャッシュ更新処理の流れを示すフローチャートである。
【図１３】Ｗｅｂサーバ差分更新処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、クライアントから改ページの依頼があるとＷｅｂサーバにキャッシュしていたデータから該当ページのデータを取得してクライアントに返すシステムに適用した場合を例に図面を参照して詳細に説明する。
【００１７】
図１は実施の形態に係る情報処理システムの構成例を示す図である。
この情報処理システムは、複数のクライアント１１，１２がネットワーク２０を介してＷｅｂサーバ３０に接続され、このＷｅｂサーバ３０は、ネットワーク４０を介してＤＢサーバ５０に接続されている。
【００１８】
Ｗｅｂサーバ３０は、クライアント１１，１２を識別するための識別情報を生成する識別情報生成部３１と、ＤＢサーバ５０による検索結果をクライアント毎にキャッシュして再利用するためのキャッシュデータ管理部３２とを備えている。Ｗｅｂサーバ３０は、また、ＤＢサーバ５０にてデータの更新があったときに、その差分情報を受信する差分情報受信部３３と、受信した差分情報によりキャッシュデータの更新を行うキャッシュデータ更新部３４とを備えている。
【００１９】
ＤＢサーバ５０は、マスタデータを記憶するマスタデータ記憶部５１と、Ｗｅｂサーバ３０からの検索依頼により検索を実行し、その検索条件および検索結果のキャッシュデータをクライアント毎に保存するキャッシュデータ管理部５２とを備えている。ＤＢサーバ５０は、また、マスタデータ記憶部５１のデータ更新を監視するデータ更新要求監視部５３と、マスタデータ記憶部５１に更新があったときにキャッシュデータに影響のあるデータを検索するデータ変更影響検索部５４とを備えている。ＤＢサーバ５０は、さらに、差分送信部５５を備え、データ変更影響検索部５４がキャッシュデータの中からデータ変更の影響を受けたデータを検索することによって得られた差分情報をＷｅｂサーバ３０に送信する。
【００２０】
たとえば、クライアント１１から検索依頼が出されると、Ｗｅｂサーバ３０では、識別情報生成部３１がクライアント１１を識別するクライアント識別情報を生成し、ＤＢサーバ５０に渡す。ＤＢサーバ５０では、マスタデータ記憶部５１に対し依頼のあった検索が実行されると、キャッシュデータ管理部５２がクライアント識別情報毎に検索条件と検索結果をキャッシュしたキャッシュデータとを保存し、そのキャッシュデータをＷｅｂサーバへ送信する。Ｗｅｂサーバ３０では、ＤＢサーバ５０から送信されたキャッシュデータをキャッシュデータ管理部３２がクライアント識別情報毎に保存し、クライアント１１には、１ページ分のデータを送信する。
【００２１】
クライアント１１から改ページの依頼が出されると、Ｗｅｂサーバ３０のキャッシュデータ管理部３２は、クライアント１１のキャッシュデータを識別情報生成部３１が生成したクライアント識別情報で特定し、該当ページのデータをクライアント１１に送信する。これにより、Ｗｅｂサーバ３０は、ＤＢサーバ５０に検索を依頼することなく、保存しているキャッシュデータから所要のデータを切り出して送信するので、ＤＢサーバ５０の負荷が軽減される。
【００２２】
たとえば、クライアント１２からデータ更新依頼が出されると、ＤＢサーバ５０では、マスタデータ記憶部５１に対してデータ更新要求のアクセスが発生し、データの更新が実行される。そのデータ更新要求のアクセスは、データ更新要求監視部５３によって監視されている。データ更新要求監視部５３がデータ更新要求を検出すると、データ変更影響検索部５４は、キャッシュデータ管理部５２のキャッシュデータにデータ更新の影響が及んでいるかどうかを検索する。すなわち、データ変更影響検索部５４は、キャッシュデータ管理部５２にキャッシュされている検索条件で再検索し、その再検索結果データをキャッシュデータ管理部５２にキャッシュされているキャッシュデータと比較する。比較の結果、相違がある場合には、キャッシュデータ管理部５２のキャッシュデータが更新されるとともに、差分情報が抽出され、差分送信部５５によってＷｅｂサーバ３０に送信される。
【００２３】
Ｗｅｂサーバ３０では、差分情報受信部３３が差分情報を受信すると、キャッシュデータ更新部３４がキャッシュデータ管理部３２のキャッシュデータに差分情報を適用する。これにより、Ｗｅｂサーバ３０にキャッシュされているキャッシュデータは、ＤＢサーバ５０にキャッシュされているキャッシュデータと同期され、最新のデータに更新されていることになる。
【００２４】
Ｗｅｂサーバ３０にキャッシュされているキャッシュデータが常に最新のデータに保たれている。したがって、改ページの依頼のように、検索条件が同じ検索依頼の場合に、Ｗｅｂサーバ３０のキャッシュデータから必要なページデータを取得してクライアントに送信しても、クライアントは、古いデータを表示することはない。しかも、この情報処理システムは、特に、更新および参照が激しく発生する金融の検索端末システムに適用して、大きな効果を発生する。
【００２５】
次に、この情報処理システムの具体的な構成および具体的な動作例について説明する。まず、情報処理システムを構成しているＷｅｂサーバ３０の具体的なハードウェア構成例について説明する。
【００２６】
図２はＷｅｂサーバのハードウェア構成例を示す図である。
Ｗｅｂサーバ３０は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ：Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６および通信インタフェース１０７が接続されている。
【００２７】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムや実行中のアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ハードディスクドライブ１０３には、ＯＳや検索中継処理などに必要な情報処理プログラムおよび各種アプリケーションプログラムが格納される。
【００２８】
グラフィック処理装置１０４には、モニタ１０９が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０９の画面に表示させる。入力インタフェース１０５には、キーボード１１０とマウス１１１とが接続されている。入力インタフェース１０５は、キーボード１１０やマウス１１１から送られてくる信号を、バス１０８を介してＣＰＵ１０１に送信する。
【００２９】
光学ドライブ装置１０６は、ＯＳのプログラム、アプリケーションプログラム、各種データ等を、これらが格納された光ディスク１１２を使用してハードディスクドライブ１０３にインストールするのに使用される。
【００３０】
通信インタフェース１０７は、ネットワーク２０，４０に接続されている。通信インタフェース１０７は、ネットワーク２０，４０を介して、クライアント１１，１２およびＤＢサーバ５０との間でデータの送受信を行う。
【００３１】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、クライアント１１，１２およびＤＢサーバ５０についても、同様のハードウェア構成で実現できる。また、ハードディスクドライブ１０３へのプログラム等の格納は、光学ドライブ装置１０６を使用することなく、ネットワーク２０，４０を介して接続される他のコンピュータから転送するようにしてもよい。
【００３２】
図３は情報処理システムにおける初回検索時の動作を説明する説明図、図４は電文の例を示す図であって、（Ａ）はクライアントからＷｅｂサーバに送信される電文の例を示す図、（Ｂ）はＷｅｂサーバからＤＢサーバに送信される電文の例を示す図、（Ｃ）はＤＢサーバからＷｅｂサーバに送信される電文の例を示す図である。図５はキャッシュテーブルのデータ構成例を示す図であって、（Ａ）はＤＢサーバのキャッシュテーブルのデータ構成例を示す図、（Ｂ）はＷｅｂサーバのキャッシュテーブルのデータ構成例を示す図である。なお、以下の説明において、図１に示した構成要素と同じまたは対応する要素には同じ符号を付してある。
【００３３】
マスタデータ記憶部５１のマスタデータに対して初回検索を行うとき、まず、クライアント１１からは、”Ｗｅｂサーバへの検索依頼電文”が送信される。この”Ｗｅｂサーバへの検索依頼電文”には、図４の（Ａ）に示したように、検索条件と、取得データ情報とが含まれている。取得データ情報は、初回検索依頼なのか、改ページ時依頼なのかを指定する改ページフラグ、データ取得範囲を指定する開始データ位置およびデータ数等を含んでいる。
【００３４】
Ｗｅｂサーバ３０では、”Ｗｅｂサーバへの検索依頼電文”が受信されると、クライアント識別情報が生成され、電文内容が組み換えられた”ＤＢサーバへの検索依頼電文”がＤＢサーバ５０に送信される。”ＤＢサーバへの検索依頼電文”は、図４の（Ｂ）に示したように、クライアント識別情報と検索条件とを含んでいる。
【００３５】
ＤＢサーバ５０では、”ＤＢサーバへの検索依頼電文”が受信されると、その電文に含まれる検索条件を基にＤＢ検索処理を実施する。ＤＢ検索処理の結果のキャッシュデータは、ＤＢサーバキャッシュテーブルに格納される。ＤＢサーバキャッシュテーブルには、クライアント毎に検索条件とキャッシュデータとが保存される。すなわち、図５の（Ａ）に示したように、ＤＢサーバキャッシュテーブルは、クライアント識別情報と、検索条件と、キャッシュデータとを含んでいる。クライアント識別情報の項目には、Ｗｅｂサーバ３０にてクライアント毎に生成されたクライアント識別情報が格納される。検索条件の項目には、クライアントが設定した検索条件であり、一般的に、問い合わせ言語のＳＱＬ（Structured Query Language）と言われる検索式の構造をとることが多い。キャッシュデータの項目には、クライアント１１が要求したデータのキャッシュが格納される。このとき、クライアントによってデータの項目数が異なるため、２次元の可変長配列構造として格納する。また、差分更新を行うときに更新された部分だけの差分情報を特定するため、列・行にインデックスを付与している。
【００３６】
その後、ＤＢサーバ５０は、Ｗｅｂサーバ３０に”Ｗｅｂサーバへの検索結果返却電文”を送信する。この”Ｗｅｂサーバへの検索結果返却電文”は、図４の（Ｃ）に示したように、検索結果を含んでいる。
【００３７】
Ｗｅｂサーバ３０では、”Ｗｅｂサーバへの検索結果返却電文”が受信されると、Ｗｅｂサーバキャッシュテーブルに、検索結果であるキャッシュデータを格納する。Ｗｅｂサーバキャッシュテーブルは、図５の（Ｂ）に示したように、クライアント識別情報と、キャッシュデータとを含んでいる。クライアント識別情報の項目には、クライアントを識別するクライアント識別情報が格納される。キャッシュデータの項目には、クライアント１１が要求したデータのキャッシュが格納される。このとき、クライアントによってデータの項目数が異なるため、２次元の可変長配列構造にして格納する。また、差分更新のために、列・行にインデックスを付与している。その後、Ｗｅｂサーバ３０は、クライアント１１へ、検索結果データを通知する。クライアント１１は、その通知を受けて検索結果のデータを表示する。
【００３８】
図６はマスタデータ更新時の動作を説明する説明図、図７はマスタデータ更新処理時の電文の例を示す図であって、（Ａ）はＤＢサーバへの更新依頼電文の例を示す図、（Ｂ）はＷｅｂサーバへの差分情報更新電文の例を示す図、（Ｃ）はＤＢサーバへの差分情報更新応答電文の例を示す図である。
【００３９】
マスタデータ記憶部５１のマスタデータに対して更新を行うとき、まず、クライアント１２から、”ＤＢサーバへの更新依頼電文”が送信される。この”ＤＢサーバへの更新依頼電文”には、図７の（Ａ）に示したように、更新条件が含まれている。
【００４０】
Ｗｅｂサーバ３０は、”ＤＢサーバへの更新依頼電文”が受信されると、その”ＤＢサーバへの更新依頼電文”をそのままＤＢサーバ５０へ送信する。
ＤＢサーバ５０では、”ＤＢサーバへの更新依頼電文”が受信されると、その電文に含まれる更新条件に従ってマスタデータの更新処理が実施される。図示の例では、商品ＩＤが「１００」の名称を「商品０」から「商品００」に変更している。
【００４１】
マスタデータの更新処理が行われると、ＤＢサーバ５０では、ＤＢサーバキャッシュテーブルのキャッシュデータの内、影響のあるデータのみ更新が行われる。すなわち、データが更新された場合、影響があるＤＢサーバ５０上のキャッシュデータに対して、保存されている検索条件（ＳＱＬ文）で再検索を行う。キャッシュデータと再検索した結果とを突き合わせ、差異がある場合には、その差分情報を求め、ＤＢサーバキャッシュテーブルのキャッシュデータを差分情報で更新する。ＤＢサーバ５０は、その差分情報をＷｅｂサーバ３０へ”Ｗｅｂサーバへの差分情報更新電文”の送信により通知する。この”Ｗｅｂサーバへの差分情報更新電文”は、図７の（Ｂ）に示したように、クライアント識別情報と、キャッシュデータの変更位置情報（行・列インデックス）と、変更後の値とを含んでいる。
【００４２】
Ｗｅｂサーバ３０では、”Ｗｅｂサーバへの差分情報更新電文”が受信されると、この電文に含まれるクライアント識別情報および差分情報を使い、Ｗｅｂサーバキャッシュテーブルのキャッシュデータに対して差分更新を行う。
【００４３】
その後、Ｗｅｂサーバ３０は、”ＤＢサーバへの差分情報更新応答電文”をＤＢサーバ５０に送信する。この”ＤＢサーバへの差分情報更新応答電文”は、図７の（Ｃ）に示したように、クライアント識別情報と更新成否（更新成功または更新失敗）情報とを有している。
【００４４】
ＤＢサーバ５０は、Ｗｅｂサーバ３０から”ＤＢサーバへの差分情報更新応答電文”を受信し、更新成否情報に応じた処理をする。すなわち、Ｗｅｂサーバ３０での差分更新が成功の場合、ＤＢサーバ５０は、何もしない。しかし、差分更新が失敗の場合、更新対象のキャッシュデータがない、つまり、クライアント１１がＷｅｂサーバ３０との接続を切断したと判断し、ＤＢサーバキャッシュテーブルのキャッシュデータから該当するクライアント識別情報のレコードを削除する。
【００４５】
図８はクライアントが改ページを依頼したときの動作を説明する説明図である。
クライアント１１が改ページを依頼するとき、”Ｗｅｂサーバへの検索依頼電文”が送信される。ここで、”Ｗｅｂサーバへの検索依頼電文”は、初回検索依頼と同じ検索条件と、改ページフラグ、データ取得範囲等を含む取得データ情報とを有している。
【００４６】
Ｗｅｂサーバ３０では、”Ｗｅｂサーバへの検索依頼電文”が受信されると、クライアント識別情報が生成される。生成されたクライアント識別情報と、”Ｗｅｂサーバへの検索依頼電文”の取得データ情報とから、Ｗｅｂサーバキャッシュテーブルに格納されたキャッシュデータを検索し、取得したページデータをクライアント１１へ通知する。クライアント１１は、そのページデータを受けて表示する。
【００４７】
本情報処理システムでは、Ｗｅｂサーバ３０におけるＷｅｂサーバキャッシュテーブルのキャッシュデータは、常に最新のデータである。このため、改ページ等のように同一検索条件での検索依頼の場合には、ＤＢを検索する必要がなく、Ｗｅｂサーバキャッシュテーブルのキャッシュデータから取得したデータを通知するだけでよい。
【００４８】
次に、クライアント１１から検索依頼があったときのＷｅｂサーバ３０およびＤＢサーバ５０がそれぞれ行う処理について説明する。これらの処理は、Ｗｅｂサーバ３０については、図２に示したハードディスクドライブ１０３に格納されたＷｅｂサーバ検索依頼処理プログラムがＲＡＭ１０２に展開されてＣＰＵ１０１により実行される。Ｗｅｂサーバ検索依頼処理プログラムは、図１の識別情報生成部３１およびキャッシュデータ管理部３２の各機能を有している。ＤＢサーバ５０の処理においても、同様にして、ＤＢサーバ検索処理プログラムを実行することにより実現される。ＤＢサーバ検索処理プログラムは、図１のキャッシュデータ管理部５２の機能を有している。
【００４９】
図９はＷｅｂサーバ検索依頼処理の流れを示すフローチャート、図１０はＤＢサーバ検索処理の流れを示すフローチャートである。
図９に示すＷｅｂサーバ検索依頼処理では、まず、Ｗｅｂサーバへの検索依頼電文の受信待ちになっている（ステップＳ１）。ここで、クライアント１１からＷｅｂサーバへの検索依頼電文を受信すると、識別情報生成部３１は、クライアント識別情報を生成する（ステップＳ２）。このクライアント識別情報は、たとえば、クライアント１１がＷｅｂサーバ３０に最初にアクセスした際にクライアント１１を特定する情報として発行される固有のセッションＩＤがそのまま利用される。
【００５０】
次に、キャッシュデータ管理部３２は、受信したＷｅｂサーバへの検索依頼電文が改ページ依頼なのかどうかを判断する（ステップＳ３）。これは、電文中の取得データ情報の改ページフラグが改ページ依頼を指定しているかどうかで判断する。
【００５１】
改ページ依頼でないと判断されると、キャッシュデータ管理部３２は、検索条件およびクライアント識別情報をＤＢサーバ５０に送信する（ステップＳ４）。その後、キャッシュデータ管理部３２は、検索結果の受信待ちとなる（ステップＳ５）。
【００５２】
キャッシュデータ管理部３２は、ＤＢサーバ５０から検索結果を受信すると、Ｗｅｂサーバキャッシュテーブルに、図５の（Ｂ）に示したようなフォーマットで、クライアント識別情報およびキャッシュデータを格納する（ステップＳ６）。
【００５３】
このステップＳ６の処理が完了したとき、または、ステップＳ３にて改ページ依頼であると判断されたとき、キャッシュデータ管理部３２は、Ｗｅｂサーバキャッシュテーブルから、開始データ位置およびデータ数の指定に基づき、キャッシュデータを取得する（ステップＳ７）。
【００５４】
次に、キャッシュデータ管理部３２は、取得したデータを依頼元のクライアント１１に送信する（ステップＳ８）。その後、このＷｅｂサーバ検索依頼処理は、ステップＳ１に戻る。
【００５５】
図１０に示すＤＢサーバ検索処理では、まず、Ｗｅｂサーバ３０からＤＢサーバへの検索依頼電文の受信待ちになっている（ステップＳ１１）。ここで、Ｗｅｂサーバ３０からＤＢサーバへの検索依頼電文を受信すると、キャッシュデータ管理部５２は、電文に含まれる検索条件に従って検索処理を行う（ステップＳ１２）。
【００５６】
次に、キャッシュデータ管理部５２は、ＤＢサーバキャッシュテーブルに、図５の（Ａ）に示したようなフォーマットで、クライアント識別情報、検索条件、キャッシュデータを含むレコードを格納する（ステップＳ１３）。その後、キャッシュデータ管理部５２は、Ｗｅｂサーバ３０に検索要求に対する結果を返却し（ステップＳ１４）、ステップＳ１１に戻る。
【００５７】
次に、クライアント１２から更新依頼があったときのＷｅｂサーバ３０およびＤＢサーバ５０がそれぞれ行う処理について説明する。これらの処理は、Ｗｅｂサーバ３０については、図２に示したハードディスクドライブ１０３に格納されたＷｅｂサーバ差分更新処理プログラムがＲＡＭ１０２に展開されてＣＰＵ１０１により実行される。Ｗｅｂサーバ差分更新処理プログラムは、図１の識別情報生成部３１、キャッシュデータ管理部３２、差分情報受信部３３およびキャッシュデータ更新部３４の各機能を有している。ＤＢサーバ５０の処理においても、同様にして、ＤＢサーバキャッシュ更新処理プログラムを実行することにより実現される。ＤＢサーバキャッシュ更新処理プログラムは、図１のデータ更新要求監視部５３、データ変更影響検索部５４および差分送信部５５の各機能を有している。
【００５８】
図１１はデータ更新発生時における情報処理システムのキャッシュデータ更新処理を示す説明図、図１２はＤＢサーバキャッシュ更新処理の流れを示すフローチャート、図１３はＷｅｂサーバ差分更新処理の流れを示すフローチャートである。
【００５９】
まず、データ更新が行われたときに、情報処理システムとしては、どのような流れで処理されていくかを図１１を参照して説明する。クライアント１２がＤＢサーバ５０に対してデータ更新を要求する場合、クライアント１２は、Ｗｅｂサーバ３０にＤＢサーバへの更新依頼電文を送信する（ステップＳ２１）。
【００６０】
Ｗｅｂサーバ３０では、ＤＢサーバへの更新依頼電文を受信すると（ステップＳ２２）、ＤＢサーバ５０にＤＢサーバへの更新依頼電文を送信する（ステップＳ２３）。ＤＢサーバ５０は、Ｗｅｂサーバ３０からの更新要求を待ち合わせしていて、Ｗｅｂサーバ３０からＤＢサーバへの更新依頼電文を受信すると（ステップＳ２４）、その電文（図７（Ａ）参照）に含まれる更新条件に従って更新処理を実施する（ステップＳ２５）。そして、ＤＢサーバ５０は、ＤＢサーバキャッシュ更新処理をする（ステップＳ２６）。ＤＢサーバキャッシュテーブルのキャッシュデータが更新されると、処理がＷｅｂサーバ３０に渡される。
【００６１】
Ｗｅｂサーバ３０は、ＤＢサーバ５０からＷｅｂサーバへの差分情報更新電文が受信されるのを待ち合わせしている（ステップＳ２７）。Ｗｅｂサーバ３０は、Ｗｅｂサーバへの差分情報更新電文（図７（Ｂ）参照）を受信すると、Ｗｅｂサーバ差分更新処理をする（ステップＳ２８）。そのＷｅｂサーバ差分更新処理の結果は、ＤＢサーバへの差分情報更新応答電文（図７（Ｃ）参照）としてＤＢサーバ５０のＤＢサーバキャッシュ更新処理へ渡される。ＤＢサーバ５０のＤＢサーバキャッシュ更新処理では、Ｗｅｂサーバ３０での処理結果に応じた処理がなされることになる。
【００６２】
次に、ＤＢサーバ５０におけるステップＳ２６のＤＢサーバキャッシュ更新処理を、図１２を参照して説明する。このＤＢサーバキャッシュ更新処理は、データ更新要求監視部５３がクライアント１２からの更新要求を検出することによって開始される。なお、ＤＢサーバ５０は、複数のマスタを有しており、データ更新要求監視部５３は、クライアント１２からの更新要求を検出した段階で更新対象マスタが分かっているものとする。
【００６３】
まず、データ変更影響検索部５４は、ＤＢサーバキャッシュテーブルに保存されている先頭のレコードから検索条件を取得する（ステップＳ３１）。次に、データ変更影響検索部５４は、その取得した検索条件にデータ更新が行われたマスタを含んでいるか否かを判断する（ステップＳ３２）。検索条件に更新マスタが含まれている場合、データ変更影響検索部５４は、その検索条件で再検索を実施する（ステップＳ３３）。
【００６４】
データ変更影響検索部５４は、再検索の結果とＤＢサーバキャッシュテーブルのキャッシュデータとを比較して、両者の間に差異があるか否かを判断する（ステップＳ３４）。差異がある場合、データ変更影響検索部５４は、ＤＢサーバキャッシュテーブルのキャッシュデータを更新し（ステップＳ３５）、差分送信部５５によって差異部分の差分情報をＷｅｂサーバ３０に送信する（ステップＳ３６）。
【００６５】
次に、データ変更影響検索部５４は、Ｗｅｂサーバ３０から更新応答であるＤＢサーバへの差分情報更新応答電文の受信を待っていて、その更新応答を受信すると（ステップＳ３７）、Ｗｅｂサーバ３０で差分更新が成功したか否かを判断する（ステップＳ３８）。Ｗｅｂサーバ３０で差分更新が失敗したと判断されると、Ｗｅｂサーバ３０では、クライアント１１が接続を切断していると判断し、ＤＢサーバキャッシュテーブルの該当クライアントのレコードを削除する（ステップＳ３９）。
【００６６】
ステップＳ３２において更新されたマスタが検索条件に含まれていない場合、ステップＳ３４において再検索結果とキャッシュデータとが一致していた場合、ステップＳ３８においてＷｅｂサーバでの差分更新が成功していた場合、ステップＳ３９においてＤＢサーバキャッシュテーブルの該当クライアントのレコードを削除した場合、データ変更影響検索部５４は、ＤＢサーバキャッシュテーブルのレコードの全てに処理を実行したか否かを判断する（ステップＳ４０）。ＤＢサーバキャッシュテーブルにおいて、未だデータ変更影響の検索が済んでいないクライアントのレコードがあれば、データ変更影響検索部５４は、ＤＢサーバキャッシュテーブルの次のレコードから検索条件を取得し（ステップＳ４１）、ステップＳ３２に戻る。
【００６７】
次に、Ｗｅｂサーバ３０における差分更新処理を、図１３を参照して説明する。このＷｅｂサーバ差分更新処理は、差分情報受信部３３がＤＢサーバ５０からＷｅｂサーバへの差分情報更新電文を受信することによって開始される。
【００６８】
まず、キャッシュデータ更新部３４は、Ｗｅｂサーバへの差分情報更新電文に含まれるクライアント識別情報から該当するクライアントが存在するか否かを判断する（ステップＳ５１）。ＷｅｂサーバキャッシュテーブルにＤＢサーバ５０から通知されたクライアント識別情報が存在する場合、キャッシュデータ更新部３４は、Ｗｅｂサーバへの差分情報更新電文に含まれる差分情報に従って更新を実行する（ステップＳ５２）。
【００６９】
次に、キャッシュデータ更新部３４は、ＤＢサーバ５０へ更新成功の更新応答を送信する（ステップＳ５３）。これは、ＤＢサーバへの差分情報更新応答電文の更新成否情報に更新成功を表す情報を指定することによって行われる。
【００７０】
一方、ステップＳ５１にてたとえば、クライアント１１がＷｅｂサーバ３０へのアクセスを切断するなどして該当するクライアントが既に存在しないと判断された場合、キャッシュデータ更新部３４は、ＤＢサーバ５０へ更新失敗の更新応答を送信する（ステップＳ５４）。これは、ＤＢサーバへの差分情報更新応答電文の更新成否情報に更新失敗を表す情報を指定することによって行われる。
【００７１】
なお、上記の実施の形態では、キャッシュデータ更新処理にて、ＤＢサーバキャッシュテーブルのレコード（クライアント）毎にデータ変更影響を調べ、影響があれば、その都度、ＤＢサーバ５０およびＷｅｂサーバ３０のキャッシュデータを更新している。しかし、ＤＢサーバキャッシュテーブルのすべてのレコード、または、所定数のレコードのデータ変更影響を調べてから、まとめて、ＤＢサーバ５０およびＷｅｂサーバ３０のキャッシュデータを更新するようにしてもよい。
【符号の説明】
【００７２】
１１，１２  クライアント
２０  ネットワーク
３０  Ｗｅｂサーバ
３１  識別情報生成部
３２  キャッシュデータ管理部
３３  差分情報受信部
３４  キャッシュデータ更新部
４０  ネットワーク
５０  ＤＢサーバ
５１  マスタデータ記憶部
５２  キャッシュデータ管理部
５３  データ更新要求監視部
５４  データ変更影響検索部
５５  差分送信部
【図１】
2013050864.tif 000003
【図２】
2013050864.tif 000004
【図３】
2013050864.tif 000005
【図４】
2013050864.tif 000006
【図５】
2013050864.tif 000007
【図６】
2013050864.tif 000008
【図７】
2013050864.tif 000009
【図８】
2013050864.tif 000010
【図９】
2013050864.tif 000011
【図１０】
2013050864.tif 000012
【図１１】
2013050864.tif 000013
【図１２】
2013050864.tif 000014
【図１３】
2013050864.tif 000015