説明

情報処理システム、情報処理方法および情報処理プログラム

【課題】Webサーバにキャッシュされているデータを改ページ表示させる場合に、古いデータが表示されないようにする。
【解決手段】Webサーバ30は、検索結果をキャッシュして再利用するためのキャッシュデータ管理部32と、データの更新があったときに、その差分情報でキャッシュデータを更新するキャッシュデータ更新部34とを備えている。DBサーバ50は、マスタデータ記憶部51のデータ更新を監視するデータ更新要求監視部53と、マスタデータ記憶部51に更新があったときにキャッシュデータに影響のあるデータを検索するデータ変更影響検索部54とを備えている。クライアント12からの訂正依頼がデータ更新要求監視部53により検出されると、データ変更影響検索部54がデータ更新の影響が及ぶキャッシュデータを検索し、更新されている部分だけの差分情報でDBサーバ50およびWebサーバ30のキャッシュデータを更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理システム、情報処理方法および情報処理プログラムに関し、特に検索結果データの閲覧中にデータの更新があってもその更新されたデータでの閲覧が可能な情報処理システム、情報処理方法および情報処理プログラムに関する。
【背景技術】
【0002】
金融等の検索システムでは、クライアントの端末から検索の依頼があると、Webサーバは、データベースサーバ(以下、DBサーバという)に依頼して検索した結果を取得してキャッシュに保存し、クライアントに転送する。このとき、検索結果のデータが大量である場合、クライアント側端末の画面に収まるデータに分割し、クライアントには、1ページ分のデータのみを検索結果として転送することがある。この場合、クライアントが他のページを閲覧するときに、画面上に表示された次のページまたは前のページ等のボタンを押下すると、Webサーバは、キャッシュから該当するページのデータを切り出して返送し、クライアント側端末の画面に表示させる。
【0003】
この改ページデータのように、同じ検索結果のデータに対して異なるページのデータを閲覧する場合には、DBサーバで再検索をすることなく、Webサーバにキャッシュされているデータにアクセスするようにしている。これにより、DBサーバにアクセスすることがないので、ページ指定時の応答速度が向上し、かつ、DBサーバへの負荷が軽減されている。
【0004】
但し、Webサーバにキャッシュされているデータを表示する場合、キャッシュデータとDBサーバのデータとの整合性が保証されていない。つまり、DBサーバが検索を実行してその検索結果をWebサーバにキャッシュされてから改ページボタンが押下されるまでの間にDBサーバのデータが更新されることが多々ある。すると、当然ながら、Webサーバのキャッシュデータは、古いままなので、改ページ実行後のクライアント側端末の画面は、古いデータを表示することになる。
【0005】
これに対し、更新処理をしたDBサーバのデータの整合性が保証されないことに対し、必要に応じてDBサーバと同期させる機構が提案されている(たとえば、特許文献1参照)。この提案によれば、WebサーバとDBサーバとの間にキャッシュデータベースを設置し、DBサーバで更新処理があったときに、キャッシュデータベースにデータを保存するようにしている。Webサーバは、DBサーバに直接アクセスすることがないので、DBサーバは、検索処理に関する負荷を低減することができる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−6036号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、キャッシュデータベースを設置してDBサーバと同期させるようにしても、Webサーバにキャッシュされているデータは、キャッシュデータベースのデータと同期されている訳ではないので、古いデータを表示する可能性があるという問題点が依然としてある。
【0008】
本発明はこのような点に鑑みてなされたものであり、Webサーバにキャッシュされているデータを改ページ表示させる場合に、古いデータが表示されることのない情報処理システム、情報処理方法および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明では上記の課題を解決するために、クライアントと接続されて前記クライアントからの検索要求を中継するWebサーバと、前記Webサーバと接続されたDBサーバとを含んで構成される情報処理システムにおいて、前記Webサーバは、前記クライアントからの検索要求を受けてクライアント識別情報を生成する識別情報生成部と、前記DBサーバによる検索結果のキャッシュデータを前記クライアント毎に保存して前記クライアントに送出する第1キャッシュデータ管理部と、前記DBサーバにて更新された更新データを受信する受信部と、前記第1キャッシュデータ管理部のキャッシュデータを前記更新データで更新するキャッシュデータ更新部と、を備え、前記DBサーバは、マスタデータを記憶するマスタデータ記憶部と、前記Webサーバからの検索依頼を受けて前記マスタデータ記憶部に対して検索を実行し、検索条件および前記検索結果のキャッシュデータを前記クライアント毎に保存するとともに保存されたキャッシュデータを前記Webサーバに送信する第2キャッシュデータ管理部と、前記マスタデータ記憶部に対して要求されるデータ更新を監視するデータ更新要求監視部と、前記データ更新要求監視部がデータ更新要求を検出したときに、前記第2キャッシュデータ管理部に保存されている前記検索条件で再検索を実行し、再検索の結果と前記第2キャッシュデータ管理部のキャッシュデータとを比較して影響のあったデータを検索し、前記第2キャッシュデータ管理部のキャッシュデータのうち影響のあったデータを更新するデータ変更影響検索部と、前記更新データを前記Webサーバへ送信する送信部と、を備えていることを特徴とする情報処理システムが提供される。
【0010】
また、本発明においては、クライアントと接続されて前記クライアントからの検索要求を中継するWebサーバと、前記Webサーバと接続されて検索時に使用した検索条件および検索結果のキャッシュデータをクライアント毎に保存し、前記検索結果のキャッシュデータについては前記Webサーバに保存させるようにしたDBサーバとを含んで構成される情報処理システムの情報処理方法において、前記DBサーバにてデータ更新要求があると、クライアント毎に保存されているレコードから前記検索条件を取得して前記検索条件で再検索を行い、再検索により得られたデータと保存されている前記検索結果のキャッシュデータとを比較し、比較結果に差異がある場合には差分を抽出し、前記DBサーバおよび前記Webサーバのキャッシュデータを前記差分でそれぞれ更新し、前記Webサーバでの更新が成功しない場合、前記DBサーバのキャッシュデータから該当するレコードを削除する、ことを特徴とする情報処理方法が提供される。
【0011】
さらに、本発明においては、コンピュータを、クライアントからの検索要求を受けてクライアント識別情報を生成し、DBサーバに検索を依頼する識別情報生成部、前記DBサーバによる検索結果のキャッシュデータを前記クライアント毎に保存して前記クライアントに送信するとともに前記識別情報生成部が前記クライアントから改ページの要求を受けたときには、保存しているキャッシュデータから要求されたページのデータを前記クライアントに送信するキャッシュデータ管理部、前記キャッシュデータ管理部のキャッシュデータを前記DBサーバにて更新された前記更新データで更新するキャッシュデータ更新部、として機能させるための情報処理プログラムが提供される。
【0012】
また、本発明においては、コンピュータを、Webサーバからの検索依頼を受けてマスタデータ記憶部に対して検索を実行し、検索条件および前記検索結果のキャッシュデータをクライアント毎に保存するとともに保存されたキャッシュデータを前記Webサーバに送信するキャッシュデータ管理部、前記マスタデータ記憶部に対して要求されるデータ更新を監視するデータ更新要求監視部、前記データ更新要求監視部がデータ更新要求を検出したときに、前記キャッシュデータ管理部に保存されている前記検索条件で再検索を実行し、再検索の結果と前記キャッシュデータ管理部のキャッシュデータとを比較して影響のあったデータを検索し、影響のあった前記キャッシュデータ管理部のキャッシュデータを更新し、前記Webサーバからデータ更新が成功しない旨の通知があったとき、前記キャッシュデータ管理部のキャッシュデータから該当するクライアントのレコードを削除するデータ変更影響検索部、として機能させるための情報処理プログラムが提供される。
【0013】
このような情報処理システム、情報処理方法および情報処理プログラムによれば、マスタデータに変更があれば、キャッシュされているキャッシュデータにデータ変更による影響があるかどうかを検索し、影響のあるキャッシュデータは、更新し、同時に、Webサーバのキャッシュデータも更新する。これにより、Webサーバのキャッシュデータは、常に最新のデータに保たれるので、同一検索条件の検索依頼があったときには、Webサーバのキャッシュデータを再利用できる。また、DBサーバは、検索処理に関する負荷を低減することができる。
【発明の効果】
【0014】
上記構成の情報処理システム、情報処理方法および情報処理プログラムによれば、DBサーバでデータの更新が発生すると、DBサーバのキャッシュデータに保存していた検索条件で再検索を実施し、その再検索の結果とDBサーバのキャッシュデータとの比較で、差異があればその差異でDBサーバおよびWebサーバのキャッシュデータを更新するようにした。このため、Webサーバのキャッシュデータは、常に最新の状態に保たれているので、同一の検索条件での検索依頼の場合には、Webサーバのキャッシュデータを利用でき、しかも、古いデータをクライアントに送信することがなくなる。また、検索依頼が発生する度に、必ず、DBサーバへのアクセスがあるとは限らないので、DBサーバの負荷を低減することができる。
【図面の簡単な説明】
【0015】
【図1】実施の形態に係る情報処理システムの構成例を示す図である。
【図2】Webサーバのハードウェア構成例を示す図である。
【図3】情報処理システムにおける初回検索時の動作を説明する説明図である。
【図4】電文の例を示す図であって、(A)はクライアントからWebサーバに送信される電文の例を示す図、(B)はWebサーバからDBサーバに送信される電文の例を示す図、(C)はDBサーバからWebサーバに送信される電文の例を示す図である。
【図5】キャッシュテーブルのデータ構成例を示す図であって、(A)はDBサーバのキャッシュテーブルのデータ構成例を示す図、(B)はWebサーバのキャッシュテーブルのデータ構成例を示す図である。
【図6】マスタデータ更新時の動作を説明する説明図である。
【図7】マスタデータ更新処理時の電文の例を示す図であって、(A)はDBサーバへの更新依頼電文の例を示す図、(B)はWebサーバへの差分情報更新電文の例を示す図、(C)はDBサーバへの差分情報更新応答電文の例を示す図である。
【図8】クライアントが改ページを依頼したときの動作を説明する説明図である。
【図9】Webサーバ検索依頼処理の流れを示すフローチャートである。
【図10】DBサーバ検索処理の流れを示すフローチャートである。
【図11】データ更新発生時における情報処理システムのキャッシュデータ更新処理を示す説明図である。
【図12】DBサーバキャッシュ更新処理の流れを示すフローチャートである。
【図13】Webサーバ差分更新処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について、クライアントから改ページの依頼があるとWebサーバにキャッシュしていたデータから該当ページのデータを取得してクライアントに返すシステムに適用した場合を例に図面を参照して詳細に説明する。
【0017】
図1は実施の形態に係る情報処理システムの構成例を示す図である。
この情報処理システムは、複数のクライアント11,12がネットワーク20を介してWebサーバ30に接続され、このWebサーバ30は、ネットワーク40を介してDBサーバ50に接続されている。
【0018】
Webサーバ30は、クライアント11,12を識別するための識別情報を生成する識別情報生成部31と、DBサーバ50による検索結果をクライアント毎にキャッシュして再利用するためのキャッシュデータ管理部32とを備えている。Webサーバ30は、また、DBサーバ50にてデータの更新があったときに、その差分情報を受信する差分情報受信部33と、受信した差分情報によりキャッシュデータの更新を行うキャッシュデータ更新部34とを備えている。
【0019】
DBサーバ50は、マスタデータを記憶するマスタデータ記憶部51と、Webサーバ30からの検索依頼により検索を実行し、その検索条件および検索結果のキャッシュデータをクライアント毎に保存するキャッシュデータ管理部52とを備えている。DBサーバ50は、また、マスタデータ記憶部51のデータ更新を監視するデータ更新要求監視部53と、マスタデータ記憶部51に更新があったときにキャッシュデータに影響のあるデータを検索するデータ変更影響検索部54とを備えている。DBサーバ50は、さらに、差分送信部55を備え、データ変更影響検索部54がキャッシュデータの中からデータ変更の影響を受けたデータを検索することによって得られた差分情報をWebサーバ30に送信する。
【0020】
たとえば、クライアント11から検索依頼が出されると、Webサーバ30では、識別情報生成部31がクライアント11を識別するクライアント識別情報を生成し、DBサーバ50に渡す。DBサーバ50では、マスタデータ記憶部51に対し依頼のあった検索が実行されると、キャッシュデータ管理部52がクライアント識別情報毎に検索条件と検索結果をキャッシュしたキャッシュデータとを保存し、そのキャッシュデータをWebサーバへ送信する。Webサーバ30では、DBサーバ50から送信されたキャッシュデータをキャッシュデータ管理部32がクライアント識別情報毎に保存し、クライアント11には、1ページ分のデータを送信する。
【0021】
クライアント11から改ページの依頼が出されると、Webサーバ30のキャッシュデータ管理部32は、クライアント11のキャッシュデータを識別情報生成部31が生成したクライアント識別情報で特定し、該当ページのデータをクライアント11に送信する。これにより、Webサーバ30は、DBサーバ50に検索を依頼することなく、保存しているキャッシュデータから所要のデータを切り出して送信するので、DBサーバ50の負荷が軽減される。
【0022】
たとえば、クライアント12からデータ更新依頼が出されると、DBサーバ50では、マスタデータ記憶部51に対してデータ更新要求のアクセスが発生し、データの更新が実行される。そのデータ更新要求のアクセスは、データ更新要求監視部53によって監視されている。データ更新要求監視部53がデータ更新要求を検出すると、データ変更影響検索部54は、キャッシュデータ管理部52のキャッシュデータにデータ更新の影響が及んでいるかどうかを検索する。すなわち、データ変更影響検索部54は、キャッシュデータ管理部52にキャッシュされている検索条件で再検索し、その再検索結果データをキャッシュデータ管理部52にキャッシュされているキャッシュデータと比較する。比較の結果、相違がある場合には、キャッシュデータ管理部52のキャッシュデータが更新されるとともに、差分情報が抽出され、差分送信部55によってWebサーバ30に送信される。
【0023】
Webサーバ30では、差分情報受信部33が差分情報を受信すると、キャッシュデータ更新部34がキャッシュデータ管理部32のキャッシュデータに差分情報を適用する。これにより、Webサーバ30にキャッシュされているキャッシュデータは、DBサーバ50にキャッシュされているキャッシュデータと同期され、最新のデータに更新されていることになる。
【0024】
Webサーバ30にキャッシュされているキャッシュデータが常に最新のデータに保たれている。したがって、改ページの依頼のように、検索条件が同じ検索依頼の場合に、Webサーバ30のキャッシュデータから必要なページデータを取得してクライアントに送信しても、クライアントは、古いデータを表示することはない。しかも、この情報処理システムは、特に、更新および参照が激しく発生する金融の検索端末システムに適用して、大きな効果を発生する。
【0025】
次に、この情報処理システムの具体的な構成および具体的な動作例について説明する。まず、情報処理システムを構成しているWebサーバ30の具体的なハードウェア構成例について説明する。
【0026】
図2はWebサーバのハードウェア構成例を示す図である。
Webサーバ30は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス108を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106および通信インタフェース107が接続されている。
【0027】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムや実行中のアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。ハードディスクドライブ103には、OSや検索中継処理などに必要な情報処理プログラムおよび各種アプリケーションプログラムが格納される。
【0028】
グラフィック処理装置104には、モニタ109が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ109の画面に表示させる。入力インタフェース105には、キーボード110とマウス111とが接続されている。入力インタフェース105は、キーボード110やマウス111から送られてくる信号を、バス108を介してCPU101に送信する。
【0029】
光学ドライブ装置106は、OSのプログラム、アプリケーションプログラム、各種データ等を、これらが格納された光ディスク112を使用してハードディスクドライブ103にインストールするのに使用される。
【0030】
通信インタフェース107は、ネットワーク20,40に接続されている。通信インタフェース107は、ネットワーク20,40を介して、クライアント11,12およびDBサーバ50との間でデータの送受信を行う。
【0031】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、クライアント11,12およびDBサーバ50についても、同様のハードウェア構成で実現できる。また、ハードディスクドライブ103へのプログラム等の格納は、光学ドライブ装置106を使用することなく、ネットワーク20,40を介して接続される他のコンピュータから転送するようにしてもよい。
【0032】
図3は情報処理システムにおける初回検索時の動作を説明する説明図、図4は電文の例を示す図であって、(A)はクライアントからWebサーバに送信される電文の例を示す図、(B)はWebサーバからDBサーバに送信される電文の例を示す図、(C)はDBサーバからWebサーバに送信される電文の例を示す図である。図5はキャッシュテーブルのデータ構成例を示す図であって、(A)はDBサーバのキャッシュテーブルのデータ構成例を示す図、(B)はWebサーバのキャッシュテーブルのデータ構成例を示す図である。なお、以下の説明において、図1に示した構成要素と同じまたは対応する要素には同じ符号を付してある。
【0033】
マスタデータ記憶部51のマスタデータに対して初回検索を行うとき、まず、クライアント11からは、”Webサーバへの検索依頼電文”が送信される。この”Webサーバへの検索依頼電文”には、図4の(A)に示したように、検索条件と、取得データ情報とが含まれている。取得データ情報は、初回検索依頼なのか、改ページ時依頼なのかを指定する改ページフラグ、データ取得範囲を指定する開始データ位置およびデータ数等を含んでいる。
【0034】
Webサーバ30では、”Webサーバへの検索依頼電文”が受信されると、クライアント識別情報が生成され、電文内容が組み換えられた”DBサーバへの検索依頼電文”がDBサーバ50に送信される。”DBサーバへの検索依頼電文”は、図4の(B)に示したように、クライアント識別情報と検索条件とを含んでいる。
【0035】
DBサーバ50では、”DBサーバへの検索依頼電文”が受信されると、その電文に含まれる検索条件を基にDB検索処理を実施する。DB検索処理の結果のキャッシュデータは、DBサーバキャッシュテーブルに格納される。DBサーバキャッシュテーブルには、クライアント毎に検索条件とキャッシュデータとが保存される。すなわち、図5の(A)に示したように、DBサーバキャッシュテーブルは、クライアント識別情報と、検索条件と、キャッシュデータとを含んでいる。クライアント識別情報の項目には、Webサーバ30にてクライアント毎に生成されたクライアント識別情報が格納される。検索条件の項目には、クライアントが設定した検索条件であり、一般的に、問い合わせ言語のSQL(Structured Query Language)と言われる検索式の構造をとることが多い。キャッシュデータの項目には、クライアント11が要求したデータのキャッシュが格納される。このとき、クライアントによってデータの項目数が異なるため、2次元の可変長配列構造として格納する。また、差分更新を行うときに更新された部分だけの差分情報を特定するため、列・行にインデックスを付与している。
【0036】
その後、DBサーバ50は、Webサーバ30に”Webサーバへの検索結果返却電文”を送信する。この”Webサーバへの検索結果返却電文”は、図4の(C)に示したように、検索結果を含んでいる。
【0037】
Webサーバ30では、”Webサーバへの検索結果返却電文”が受信されると、Webサーバキャッシュテーブルに、検索結果であるキャッシュデータを格納する。Webサーバキャッシュテーブルは、図5の(B)に示したように、クライアント識別情報と、キャッシュデータとを含んでいる。クライアント識別情報の項目には、クライアントを識別するクライアント識別情報が格納される。キャッシュデータの項目には、クライアント11が要求したデータのキャッシュが格納される。このとき、クライアントによってデータの項目数が異なるため、2次元の可変長配列構造にして格納する。また、差分更新のために、列・行にインデックスを付与している。その後、Webサーバ30は、クライアント11へ、検索結果データを通知する。クライアント11は、その通知を受けて検索結果のデータを表示する。
【0038】
図6はマスタデータ更新時の動作を説明する説明図、図7はマスタデータ更新処理時の電文の例を示す図であって、(A)はDBサーバへの更新依頼電文の例を示す図、(B)はWebサーバへの差分情報更新電文の例を示す図、(C)はDBサーバへの差分情報更新応答電文の例を示す図である。
【0039】
マスタデータ記憶部51のマスタデータに対して更新を行うとき、まず、クライアント12から、”DBサーバへの更新依頼電文”が送信される。この”DBサーバへの更新依頼電文”には、図7の(A)に示したように、更新条件が含まれている。
【0040】
Webサーバ30は、”DBサーバへの更新依頼電文”が受信されると、その”DBサーバへの更新依頼電文”をそのままDBサーバ50へ送信する。
DBサーバ50では、”DBサーバへの更新依頼電文”が受信されると、その電文に含まれる更新条件に従ってマスタデータの更新処理が実施される。図示の例では、商品IDが「100」の名称を「商品0」から「商品00」に変更している。
【0041】
マスタデータの更新処理が行われると、DBサーバ50では、DBサーバキャッシュテーブルのキャッシュデータの内、影響のあるデータのみ更新が行われる。すなわち、データが更新された場合、影響があるDBサーバ50上のキャッシュデータに対して、保存されている検索条件(SQL文)で再検索を行う。キャッシュデータと再検索した結果とを突き合わせ、差異がある場合には、その差分情報を求め、DBサーバキャッシュテーブルのキャッシュデータを差分情報で更新する。DBサーバ50は、その差分情報をWebサーバ30へ”Webサーバへの差分情報更新電文”の送信により通知する。この”Webサーバへの差分情報更新電文”は、図7の(B)に示したように、クライアント識別情報と、キャッシュデータの変更位置情報(行・列インデックス)と、変更後の値とを含んでいる。
【0042】
Webサーバ30では、”Webサーバへの差分情報更新電文”が受信されると、この電文に含まれるクライアント識別情報および差分情報を使い、Webサーバキャッシュテーブルのキャッシュデータに対して差分更新を行う。
【0043】
その後、Webサーバ30は、”DBサーバへの差分情報更新応答電文”をDBサーバ50に送信する。この”DBサーバへの差分情報更新応答電文”は、図7の(C)に示したように、クライアント識別情報と更新成否(更新成功または更新失敗)情報とを有している。
【0044】
DBサーバ50は、Webサーバ30から”DBサーバへの差分情報更新応答電文”を受信し、更新成否情報に応じた処理をする。すなわち、Webサーバ30での差分更新が成功の場合、DBサーバ50は、何もしない。しかし、差分更新が失敗の場合、更新対象のキャッシュデータがない、つまり、クライアント11がWebサーバ30との接続を切断したと判断し、DBサーバキャッシュテーブルのキャッシュデータから該当するクライアント識別情報のレコードを削除する。
【0045】
図8はクライアントが改ページを依頼したときの動作を説明する説明図である。
クライアント11が改ページを依頼するとき、”Webサーバへの検索依頼電文”が送信される。ここで、”Webサーバへの検索依頼電文”は、初回検索依頼と同じ検索条件と、改ページフラグ、データ取得範囲等を含む取得データ情報とを有している。
【0046】
Webサーバ30では、”Webサーバへの検索依頼電文”が受信されると、クライアント識別情報が生成される。生成されたクライアント識別情報と、”Webサーバへの検索依頼電文”の取得データ情報とから、Webサーバキャッシュテーブルに格納されたキャッシュデータを検索し、取得したページデータをクライアント11へ通知する。クライアント11は、そのページデータを受けて表示する。
【0047】
本情報処理システムでは、Webサーバ30におけるWebサーバキャッシュテーブルのキャッシュデータは、常に最新のデータである。このため、改ページ等のように同一検索条件での検索依頼の場合には、DBを検索する必要がなく、Webサーバキャッシュテーブルのキャッシュデータから取得したデータを通知するだけでよい。
【0048】
次に、クライアント11から検索依頼があったときのWebサーバ30およびDBサーバ50がそれぞれ行う処理について説明する。これらの処理は、Webサーバ30については、図2に示したハードディスクドライブ103に格納されたWebサーバ検索依頼処理プログラムがRAM102に展開されてCPU101により実行される。Webサーバ検索依頼処理プログラムは、図1の識別情報生成部31およびキャッシュデータ管理部32の各機能を有している。DBサーバ50の処理においても、同様にして、DBサーバ検索処理プログラムを実行することにより実現される。DBサーバ検索処理プログラムは、図1のキャッシュデータ管理部52の機能を有している。
【0049】
図9はWebサーバ検索依頼処理の流れを示すフローチャート、図10はDBサーバ検索処理の流れを示すフローチャートである。
図9に示すWebサーバ検索依頼処理では、まず、Webサーバへの検索依頼電文の受信待ちになっている(ステップS1)。ここで、クライアント11からWebサーバへの検索依頼電文を受信すると、識別情報生成部31は、クライアント識別情報を生成する(ステップS2)。このクライアント識別情報は、たとえば、クライアント11がWebサーバ30に最初にアクセスした際にクライアント11を特定する情報として発行される固有のセッションIDがそのまま利用される。
【0050】
次に、キャッシュデータ管理部32は、受信したWebサーバへの検索依頼電文が改ページ依頼なのかどうかを判断する(ステップS3)。これは、電文中の取得データ情報の改ページフラグが改ページ依頼を指定しているかどうかで判断する。
【0051】
改ページ依頼でないと判断されると、キャッシュデータ管理部32は、検索条件およびクライアント識別情報をDBサーバ50に送信する(ステップS4)。その後、キャッシュデータ管理部32は、検索結果の受信待ちとなる(ステップS5)。
【0052】
キャッシュデータ管理部32は、DBサーバ50から検索結果を受信すると、Webサーバキャッシュテーブルに、図5の(B)に示したようなフォーマットで、クライアント識別情報およびキャッシュデータを格納する(ステップS6)。
【0053】
このステップS6の処理が完了したとき、または、ステップS3にて改ページ依頼であると判断されたとき、キャッシュデータ管理部32は、Webサーバキャッシュテーブルから、開始データ位置およびデータ数の指定に基づき、キャッシュデータを取得する(ステップS7)。
【0054】
次に、キャッシュデータ管理部32は、取得したデータを依頼元のクライアント11に送信する(ステップS8)。その後、このWebサーバ検索依頼処理は、ステップS1に戻る。
【0055】
図10に示すDBサーバ検索処理では、まず、Webサーバ30からDBサーバへの検索依頼電文の受信待ちになっている(ステップS11)。ここで、Webサーバ30からDBサーバへの検索依頼電文を受信すると、キャッシュデータ管理部52は、電文に含まれる検索条件に従って検索処理を行う(ステップS12)。
【0056】
次に、キャッシュデータ管理部52は、DBサーバキャッシュテーブルに、図5の(A)に示したようなフォーマットで、クライアント識別情報、検索条件、キャッシュデータを含むレコードを格納する(ステップS13)。その後、キャッシュデータ管理部52は、Webサーバ30に検索要求に対する結果を返却し(ステップS14)、ステップS11に戻る。
【0057】
次に、クライアント12から更新依頼があったときのWebサーバ30およびDBサーバ50がそれぞれ行う処理について説明する。これらの処理は、Webサーバ30については、図2に示したハードディスクドライブ103に格納されたWebサーバ差分更新処理プログラムがRAM102に展開されてCPU101により実行される。Webサーバ差分更新処理プログラムは、図1の識別情報生成部31、キャッシュデータ管理部32、差分情報受信部33およびキャッシュデータ更新部34の各機能を有している。DBサーバ50の処理においても、同様にして、DBサーバキャッシュ更新処理プログラムを実行することにより実現される。DBサーバキャッシュ更新処理プログラムは、図1のデータ更新要求監視部53、データ変更影響検索部54および差分送信部55の各機能を有している。
【0058】
図11はデータ更新発生時における情報処理システムのキャッシュデータ更新処理を示す説明図、図12はDBサーバキャッシュ更新処理の流れを示すフローチャート、図13はWebサーバ差分更新処理の流れを示すフローチャートである。
【0059】
まず、データ更新が行われたときに、情報処理システムとしては、どのような流れで処理されていくかを図11を参照して説明する。クライアント12がDBサーバ50に対してデータ更新を要求する場合、クライアント12は、Webサーバ30にDBサーバへの更新依頼電文を送信する(ステップS21)。
【0060】
Webサーバ30では、DBサーバへの更新依頼電文を受信すると(ステップS22)、DBサーバ50にDBサーバへの更新依頼電文を送信する(ステップS23)。DBサーバ50は、Webサーバ30からの更新要求を待ち合わせしていて、Webサーバ30からDBサーバへの更新依頼電文を受信すると(ステップS24)、その電文(図7(A)参照)に含まれる更新条件に従って更新処理を実施する(ステップS25)。そして、DBサーバ50は、DBサーバキャッシュ更新処理をする(ステップS26)。DBサーバキャッシュテーブルのキャッシュデータが更新されると、処理がWebサーバ30に渡される。
【0061】
Webサーバ30は、DBサーバ50からWebサーバへの差分情報更新電文が受信されるのを待ち合わせしている(ステップS27)。Webサーバ30は、Webサーバへの差分情報更新電文(図7(B)参照)を受信すると、Webサーバ差分更新処理をする(ステップS28)。そのWebサーバ差分更新処理の結果は、DBサーバへの差分情報更新応答電文(図7(C)参照)としてDBサーバ50のDBサーバキャッシュ更新処理へ渡される。DBサーバ50のDBサーバキャッシュ更新処理では、Webサーバ30での処理結果に応じた処理がなされることになる。
【0062】
次に、DBサーバ50におけるステップS26のDBサーバキャッシュ更新処理を、図12を参照して説明する。このDBサーバキャッシュ更新処理は、データ更新要求監視部53がクライアント12からの更新要求を検出することによって開始される。なお、DBサーバ50は、複数のマスタを有しており、データ更新要求監視部53は、クライアント12からの更新要求を検出した段階で更新対象マスタが分かっているものとする。
【0063】
まず、データ変更影響検索部54は、DBサーバキャッシュテーブルに保存されている先頭のレコードから検索条件を取得する(ステップS31)。次に、データ変更影響検索部54は、その取得した検索条件にデータ更新が行われたマスタを含んでいるか否かを判断する(ステップS32)。検索条件に更新マスタが含まれている場合、データ変更影響検索部54は、その検索条件で再検索を実施する(ステップS33)。
【0064】
データ変更影響検索部54は、再検索の結果とDBサーバキャッシュテーブルのキャッシュデータとを比較して、両者の間に差異があるか否かを判断する(ステップS34)。差異がある場合、データ変更影響検索部54は、DBサーバキャッシュテーブルのキャッシュデータを更新し(ステップS35)、差分送信部55によって差異部分の差分情報をWebサーバ30に送信する(ステップS36)。
【0065】
次に、データ変更影響検索部54は、Webサーバ30から更新応答であるDBサーバへの差分情報更新応答電文の受信を待っていて、その更新応答を受信すると(ステップS37)、Webサーバ30で差分更新が成功したか否かを判断する(ステップS38)。Webサーバ30で差分更新が失敗したと判断されると、Webサーバ30では、クライアント11が接続を切断していると判断し、DBサーバキャッシュテーブルの該当クライアントのレコードを削除する(ステップS39)。
【0066】
ステップS32において更新されたマスタが検索条件に含まれていない場合、ステップS34において再検索結果とキャッシュデータとが一致していた場合、ステップS38においてWebサーバでの差分更新が成功していた場合、ステップS39においてDBサーバキャッシュテーブルの該当クライアントのレコードを削除した場合、データ変更影響検索部54は、DBサーバキャッシュテーブルのレコードの全てに処理を実行したか否かを判断する(ステップS40)。DBサーバキャッシュテーブルにおいて、未だデータ変更影響の検索が済んでいないクライアントのレコードがあれば、データ変更影響検索部54は、DBサーバキャッシュテーブルの次のレコードから検索条件を取得し(ステップS41)、ステップS32に戻る。
【0067】
次に、Webサーバ30における差分更新処理を、図13を参照して説明する。このWebサーバ差分更新処理は、差分情報受信部33がDBサーバ50からWebサーバへの差分情報更新電文を受信することによって開始される。
【0068】
まず、キャッシュデータ更新部34は、Webサーバへの差分情報更新電文に含まれるクライアント識別情報から該当するクライアントが存在するか否かを判断する(ステップS51)。WebサーバキャッシュテーブルにDBサーバ50から通知されたクライアント識別情報が存在する場合、キャッシュデータ更新部34は、Webサーバへの差分情報更新電文に含まれる差分情報に従って更新を実行する(ステップS52)。
【0069】
次に、キャッシュデータ更新部34は、DBサーバ50へ更新成功の更新応答を送信する(ステップS53)。これは、DBサーバへの差分情報更新応答電文の更新成否情報に更新成功を表す情報を指定することによって行われる。
【0070】
一方、ステップS51にてたとえば、クライアント11がWebサーバ30へのアクセスを切断するなどして該当するクライアントが既に存在しないと判断された場合、キャッシュデータ更新部34は、DBサーバ50へ更新失敗の更新応答を送信する(ステップS54)。これは、DBサーバへの差分情報更新応答電文の更新成否情報に更新失敗を表す情報を指定することによって行われる。
【0071】
なお、上記の実施の形態では、キャッシュデータ更新処理にて、DBサーバキャッシュテーブルのレコード(クライアント)毎にデータ変更影響を調べ、影響があれば、その都度、DBサーバ50およびWebサーバ30のキャッシュデータを更新している。しかし、DBサーバキャッシュテーブルのすべてのレコード、または、所定数のレコードのデータ変更影響を調べてから、まとめて、DBサーバ50およびWebサーバ30のキャッシュデータを更新するようにしてもよい。
【符号の説明】
【0072】
11,12 クライアント
20 ネットワーク
30 Webサーバ
31 識別情報生成部
32 キャッシュデータ管理部
33 差分情報受信部
34 キャッシュデータ更新部
40 ネットワーク
50 DBサーバ
51 マスタデータ記憶部
52 キャッシュデータ管理部
53 データ更新要求監視部
54 データ変更影響検索部
55 差分送信部

【特許請求の範囲】
【請求項1】
クライアントと接続されて前記クライアントからの検索要求を中継するWebサーバと、前記Webサーバと接続されたデータベースサーバとを含んで構成される情報処理システムにおいて、
前記Webサーバは、
前記クライアントからの検索要求を受けてクライアント識別情報を生成する識別情報生成部と、
前記データベースサーバによる検索結果のキャッシュデータを前記クライアント毎に保存して前記クライアントに送出する第1キャッシュデータ管理部と、
前記データベースサーバにて更新された更新データを受信する受信部と、
前記第1キャッシュデータ管理部のキャッシュデータを前記更新データで更新するキャッシュデータ更新部と、
を備え、
前記データベースサーバは、
マスタデータを記憶するマスタデータ記憶部と、
前記Webサーバからの検索依頼を受けて前記マスタデータ記憶部に対して検索を実行し、検索条件および前記検索結果のキャッシュデータを前記クライアント毎に保存するとともに保存されたキャッシュデータを前記Webサーバに送信する第2キャッシュデータ管理部と、
前記マスタデータ記憶部に対して要求されるデータ更新を監視するデータ更新要求監視部と、
前記データ更新要求監視部がデータ更新要求を検出したときに、前記第2キャッシュデータ管理部に保存されている前記検索条件で再検索を実行し、再検索の結果と前記第2キャッシュデータ管理部のキャッシュデータとを比較して影響のあったデータを検索し、前記第2キャッシュデータ管理部のキャッシュデータのうち影響のあったデータを更新するデータ変更影響検索部と、
前記更新データを前記Webサーバへ送信する送信部と、
を備えていることを特徴とする情報処理システム。
【請求項2】
前記データベースサーバの前記データ変更影響検索部は、再検索した結果と前記第2キャッシュデータ管理部のキャッシュデータとの差分を抽出して前記送信部へ送出し、
前記Webサーバは、前記受信部が前記差分を受信し、前記キャッシュデータ更新部が保存してあるキャッシュデータを前記差分で更新することを特徴とする請求項1記載の情報処理システム。
【請求項3】
前記識別情報生成部が前記クライアントから改ページの要求を受けたとき、前記第1キャッシュデータ管理部は、前記第1キャッシュデータ管理部のキャッシュデータから要求されたページのデータを取得して前記クライアントに送信することを特徴とする請求項1記載の情報処理システム。
【請求項4】
前記データベースサーバの前記データ変更影響検索部は、前記Webサーバからデータ更新が成功しない旨の通知があったとき、前記第2キャッシュデータ管理部のキャッシュデータから該当するクライアントのレコードを削除することを特徴とする請求項1記載の情報処理システム。
【請求項5】
前記データベースサーバの前記データ変更影響検索部は、前記第2キャッシュデータ管理部が保存するすべての前記クライアントの前記検索条件で再検索を行うことを特徴とする請求項1記載の情報処理システム。
【請求項6】
クライアントと接続されて前記クライアントからの検索要求を中継するWebサーバと、前記Webサーバと接続されて検索時に使用した検索条件および検索結果のキャッシュデータをクライアント毎に保存し、前記検索結果のキャッシュデータについては前記Webサーバに保存させるようにしたデータベースサーバとを含んで構成される情報処理システムの情報処理方法において、
前記データベースサーバにてデータ更新要求があると、クライアント毎に保存されているレコードから前記検索条件を取得して前記検索条件で再検索を行い、
再検索により得られたデータと保存されている前記検索結果のキャッシュデータとを比較し、
比較結果に差異がある場合には差分を抽出し、
前記データベースサーバおよび前記Webサーバのキャッシュデータを前記差分でそれぞれ更新し、
前記Webサーバでの更新が成功しない場合、前記データベースサーバのキャッシュデータから該当するレコードを削除する、
ことを特徴とする情報処理方法。
【請求項7】
コンピュータを、
クライアントからの検索要求を受けてクライアント識別情報を生成し、データベースサーバに検索を依頼する識別情報生成部、
前記データベースサーバによる検索結果のキャッシュデータを前記クライアント毎に保存して前記クライアントに送信するとともに前記識別情報生成部が前記クライアントから改ページの要求を受けたときには、保存しているキャッシュデータから要求されたページのデータを前記クライアントに送信するキャッシュデータ管理部、
前記キャッシュデータ管理部のキャッシュデータを前記データベースサーバにて更新された前記更新データで更新するキャッシュデータ更新部、
として機能させるための情報処理プログラム。
【請求項8】
コンピュータを、
Webサーバからの検索依頼を受けてマスタデータ記憶部に対して検索を実行し、検索条件および前記検索結果のキャッシュデータをクライアント毎に保存するとともに保存されたキャッシュデータを前記Webサーバに送信するキャッシュデータ管理部、
前記マスタデータ記憶部に対して要求されるデータ更新を監視するデータ更新要求監視部、
前記データ更新要求監視部がデータ更新要求を検出したときに、前記キャッシュデータ管理部に保存されている前記検索条件で再検索を実行し、再検索の結果と前記キャッシュデータ管理部のキャッシュデータとを比較して影響のあったデータを検索し、影響のあった前記キャッシュデータ管理部のキャッシュデータを更新し、前記Webサーバからデータ更新が成功しない旨の通知があったとき、前記キャッシュデータ管理部のキャッシュデータから該当するクライアントのレコードを削除するデータ変更影響検索部、
として機能させるための情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−50864(P2013−50864A)
【公開日】平成25年3月14日(2013.3.14)
【国際特許分類】
【出願番号】特願2011−188771(P2011−188771)
【出願日】平成23年8月31日(2011.8.31)
【出願人】(000237639)富士通フロンテック株式会社 (667)