JP4579501B2 - アプリケーションサーバおよびアプリケーションプログラム - Google Patents

アプリケーションサーバおよびアプリケーションプログラム Download PDF

Info

Publication number
JP4579501B2
JP4579501B2 JP2003089216A JP2003089216A JP4579501B2 JP 4579501 B2 JP4579501 B2 JP 4579501B2 JP 2003089216 A JP2003089216 A JP 2003089216A JP 2003089216 A JP2003089216 A JP 2003089216A JP 4579501 B2 JP4579501 B2 JP 4579501B2
Authority
JP
Japan
Prior art keywords
update
database
search
application server
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003089216A
Other languages
English (en)
Other versions
JP2004295683A (ja
Inventor
孝宗 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003089216A priority Critical patent/JP4579501B2/ja
Priority to US10/766,839 priority patent/US7711720B2/en
Publication of JP2004295683A publication Critical patent/JP2004295683A/ja
Application granted granted Critical
Publication of JP4579501B2 publication Critical patent/JP4579501B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、端末からの検索要求を受けてデータベース内のデータを検索し、検索結果を端末に送信するアプリケーションサーバおよびアプリケーションサーバ上で動作するキャッシュプログラムに関し、特に、データベース側に依存することなくキャッシュ内容の更新を実行可能なアプリケーションサーバおよびキャッシュプログラムに関する。
【0002】
【従来の技術】
従来、ウェブ・ブラウザを使用してインターネットで電子商取引を行ったり、イントラネットから企業内データベースにアクセスするシステムにおいて、端末からデータベースへのアクセスを制御する為のミドルウェアとしてアプリケーションサーバが用いられてきた。
【0003】
ウェブ・ブラウザでは状態遷移の取り扱いが難しいことから、データベースのトランザクション処理が困難であったが、アプリケーションサーバを使用することで、こうしたシステムの構築および運用が容易になる。
【0004】
このようにアプリケーションサーバを利用したシステムでは、データベースへのアクセスを軽減するため、アプリケーションサーバにキャッシュを設けることが行われてきた(例えば、非特許文献1参照。)。
【0005】
【非特許文献1】
Webシステム入門 2003年1月23日 http://www.atmarkit.co.jp/fjava/rensai2/websys08/websys08.html
【0006】
【発明が解決しようとする課題】
しかしながら、上述した従来のアプリケーションサーバでは、キャッシュメモリの内容とデータベースの内容との不整合を防止するため、データベースに更新があった場合にデータベース側から通知を受け取っていた。
【0007】
このようにデータベース側からの通知をもとにキャッシュメモリをリフレッシュすることとすると、データベース側にアプリケーションサーバに更新を通知するための手段が必要となる。すなわち、従来のアプリケーションサーバにおけるキャッシュ方法では、キャッシュを行うためにデータベースと協働する必要があり、アプリケーションサーバ単独でキャッシュ処理を行うことができないという問題点があった。
【0008】
特に近年、アプリケーションサーバなどにおいて動作するプログラムは、J2EE(JAVA(登録商標) 2 Enterprise Edition)などのオブジェクト指向言語による部品化が進められているが、データベース側の処理に依存することにより、プログラムの部品化が困難になるという問題が生ずる。
【0009】
さらに、データベース側ではアプリケーションサーバにおけるキャッシュ内容を記憶しておらず、また、アプリケーションサーバ側ではキャッシュ内容がデータベースのどこから抽出されたかを記憶していない。そのため、データベースに更新があった場合に、キャッシュ内容のリフレッシュが必要か否かに関わらず更新通知が送られることとなり、アプリケーションサーバはリフレッシュが必要でないキャッシュをも消去していた。この結果、キャッシュのリフレッシュが必要以上に発生し、サーバの負荷が上昇するという問題があった。
【0010】
また、データベースに接続するアプリケーションサーバの数が増加すると、データベースが各アプリケーションサーバのキャッシュ処理に要する負荷の上昇を招き、データベースの処理速度低下が発生することとなる。
【0011】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、データベース側に依存することなくキャッシュ内容の更新を実行可能なアプリケーションサーバおよびアプリケーションプログラムを提供することを目的とする。
【0012】
上述した課題を解決し、目的を達成するため、発明に係るアプリケーションサーバは、複数のアプリケーションサーバに接続されるデータベースに接続され、端末からの検索要求を受けて前記データベース内のデータを検索し、検索結果を端末に送信するアプリケーションサーバであって、前記端末から受信した検索要求に基づいて生成した検索条件と前記検索条件を用いて前記データベースから検索した検索結果とを関連付けてキャッシュメモリに記憶させるキャッシュ手段と、所定の間隔で前記キャッシュメモリから検索条件を読み出し、当該検索条件に基づいて前記データベース内のデータを再度検索して前記キャッシュメモリを更新する更新処理手段と、前記更新処理手段による再度検索によって取得したデータの更新日時を用いて前記更新に係る所定の間隔を設定する更新間隔設定手段と、を備えたことを特徴とする。
【0013】
この発明によれば、アプリケーションサーバは、更新間隔設定手段によってデータベースにおいて所定期間内に更新されたデータが取得され、該更新されたデータの数が一定の範囲に収まるように設定された更新間隔でキャッシュメモリに記憶した検索条件を読み出し、読み出した検索条件を用いて再度データベースの検索を実行し、検索結果をもとにキャッシュメモリの内容を更新する。
【0014】
また、請求項2の発明に係るアプリケーションサーバは、請求項1の発明において、前記更新処理手段は、前記データベースを再度検索する場合に、前記データベースにおけるデータの更新頻度を取得し、前記更新間隔設定手段は、前記更新処理手段が取得した更新頻度をもとに前記更新間隔を設定することを特徴とする。
【0015】
この請求項2の発明によれば、アプリケーションサーバは、キャッシュメモリに記憶した検索条件を用いてデータベースの検索を行う場合に、データベースにおけるデータの更新頻度を取得してキャッシュメモリの更新間隔を設定する。
【0018】
また、発明に係るアプリケーションサーバにおける前記更新間隔設定手段は、前記キャッシュ手段によってキャッシュされているデータの更新頻度をもとに前記更新間隔を設定することを特徴とする。
【0019】
この発明によれば、アプリケーションサーバは、キャッシュされているデータの更新頻度をもとに設定した更新間隔を用い、キャッシュメモリに記憶した検索条件を読み出して更新を実行する。
【0020】
また、発明に係るアプリケーションプログラムは、複数のアプリケーションサーバに接続されるデータベースに接続され、端末からの検索要求を受けて前記データベース内のデータを検索し、検索結果を端末に送信する処理をアプリケーションサーバに実行させるアプリケーションプログラムであって、前記端末から受信した検索要求に基づいて生成した検索条件と前記検索条件を用いて前記データベースから検索した検索結果とを関連付けてキャッシュメモリに記憶させるキャッシュ手順と、所定の間隔で前記キャッシュメモリから検索条件を読み出し、当該検索条件に基づいて前記データベース内のデータを再度検索して前記キャッシュメモリを更新する更新処理手順と、前記更新処理手段による再度検索によって取得したデータの更新日時を用いて前記更新に係る所定の間隔を設定する更新間隔設定手順と、を前記アプリケーションサーバに実行させることを特徴とする。
【0021】
この発明によれば、アプリケーションプログラムは、更新間隔設定手順によってデータベースにおいて所定期間内に更新されたデータを取得し、該更新されたデータの数が一定の範囲に収まるように設定された更新間隔でキャッシュメモリに記憶した検索条件を読み出し、読み出した検索条件を用いて再度データベースの検索を実行し、検索結果をもとにキャッシュメモリの内容を更新する。
【0022】
また、本発明に係るアプリケーションプログラムにおける前記更新間隔設定手順は、前記キャッシュ手順によってキャッシュされたデータの更新頻度をもとに前記更新間隔を設定することを特徴とする。
【0023】
この発明によれば、アプリケーションプログラムは、キャッシュされているデータの更新頻度をもとに設定した更新間隔を用い、キャッシュメモリに記憶した検索条件を読み出して更新を実行する。
0024
【発明の実施の形態】
以下に添付図面を参照して、この発明に係るアプリケーションサーバおよびキャッシュプログラムの好適な実施の形態について説明する。
0025
まず、この実施の形態にかかるアプリケーションサーバの概要構成について説明する。図1は、この実施の形態にかかるアプリケーションサーバの概要構成を説明する概要構成図である。図1に示すように、端末1および端末2は、ネットワーク10およびワールドワイドウェブ(WWW)サーバ20を介してアプリケーションサーバ30に接続している。さらにアプリケーションサーバ30は、データベースマネジメントシステム(DBMS)40を介してデータベース50に接続している。
0026
また、アプリケーションサーバ30は、その内部に主制御部31、キャッシュメモリ32、更新処理部33および更新間隔設定部34を有する。主制御部31は、アプリケーションサーバ30を全体制御する制御部であり、具体的にはWWWサーバ20およびネットワーク10を介して端末1,2から検索要求を受信した場合に、SQL(Structure Query Language)言語で記述したSQL検索式を作成してDBMS40に送信する処理や、DBMS40から受信した検索結果を端末に送信するとともに使用したSQL検索式と関連付けてキャッシュメモリ32に保存する処理などを行う。
0027
また、更新処理部33は、更新間隔設定部34が設定した更新間隔で、キャッシュメモリ32に保存されたキャッシュの更新(リフレッシュ)をおこなう。具体的には更新処理部33は、日付および時刻を監視し、更新間隔設定部34が設定した更新間隔に基づいて主制御部31に更新要求を送信する。主制御部31は、更新要求を受け取った場合にキャッシュメモリ32に保存したSQL検索式を読み出してデータベース50の検索を実行し、検索結果をキャッシュメモリ32に保存することで、キャッシュの内容を最新の状態に更新する。
0028
DBMS40は、アプリケーションサーバ30からSQL検索式を受信した場合に、このSQL検索式を用いてデータベース50を検索し、検索結果をアプリケーションサーバ30に送信する処理をおこなう。
0029
このように、アプリケーションサーバ30に更新処理部33を持たせて所定間隔でキャッシュの内容を更新することにより、DBMS40やデータベース50に依存することなくキャッシュの内容を最新の状態に更新することができる。
0030
また、端末3,4、ネットワーク10a、WWWサーバ20aおよびアプリケーションサーバ30aは、それぞれ端末1,2、ネットワーク10、WWWサーバ20およびアプリケーションサーバ30と同様の構成を有しており、アプリケーションサーバ30aは、アプリケーションサーバ30と同様に、キャッシュ内容の更新を行うことができる。
0031
すなわち、DBMS40に接続されるアプリケーションサーバは、それぞれが自らのキャッシュを独立して更新するので、DBMS40は各アプリケーションサーバに対して更新要求を送信する必要が無く、DBMS40にかかる処理負荷を軽減することができる。
0032
したがって、DBMS40は、接続されるアプリケーションサーバの数が増加しても処理速度を低下させることなく安定して動作することとなる。また、アプリケーションサーバ30がデータベースに対して独立して動作することから、アプリケーションサーバの追加、削除などの構成変更が容易となる。
0033
つぎに、アプリケーションサーバ30がデータベース50からデータを検索する場合についてさらに説明する。図2は、アプリケーションサーバ30がデータベース50からデータを検索する場合について説明する説明図である。同図に示すように、端末1が検索条件を送信したならば、アプリケーションサーバ30は、端末1が送信した検索条件をもとにSQL検索式を作成する。さらにアプリケーションサーバ30は、同一のSQL検索式をキャッシュメモリ32に保存しているか否かを確認し、キャッシュメモリ32に同一の検索式がなければDBMS40にSQL検索式を送信する。
0034
DBMS40は、アプリケーションサーバ30から受信したSQL検索式を用いてデータベース50の検索を実行し、検索結果をアプリケーションサーバ30に送信するので、アプリケーションサーバ30は、DBMS40から受信した検索結果を検索の要求元である端末1に送信する。この時、アプリケーションサーバ30は、DBMS40に送信したSQL検索式とDBMS40から受信した検索結果とを関連付けてキャッシュメモリ32に記憶する。
0035
つぎに、アプリケーションサーバ30がキャッシュメモリ32からデータを検索する場合について説明する。図3は、アプリケーションサーバ30がキャッシュメモリ32からデータを検索する場合について説明する説明図である。同図に示すように、端末1が検索条件を送信したならば、アプリケーションサーバ30は、端末1が送信した検索条件をもとにSQL検索式を作成する。さらにアプリケーションサーバ30は、同一のSQL検索式をキャッシュメモリ32に保存しているか否かを確認し、キャッシュメモリ32に同一の検索式が有れば、キャッシュメモリ32から検索結果を読み出して検索の要求元である端末1に送信する。
0036
つぎに、アプリケーションサーバ30におけるキャッシュの更新について説明する。図4は、アプリケーションサーバ30におけるキャッシュの更新について説明する説明図である。同図に示すように、アプリケーションサーバ30は、更新処理部33が更新要求を出力した場合に、キャッシュメモリ32からSQL検索式を読み出してDBMS40に送信する。
0037
DBMS40は、アプリケーションサーバ30から受信したSQL検索式を用いてデータベース50の検索を実行し、検索結果をアプリケーションサーバ30に送信するので、アプリケーションサーバ30は、DBMS40から受信した検索結果をキャッシュメモリ32に記憶させることで、キャッシュメモリ32の内容を更新する。
0038
このように、アプリケーションサーバ30は、データベース50の検索を行った場合にその検索結果を検索条件と関連付けてキャッシュメモリ32に記憶し、同一の検索条件を指定された場合にはキャッシュメモリ32から検索結果を読み出すので、データベース50にかかる負荷を軽減することができる。さらに、アプリケーションサーバ30がキャッシュの更新を行う場合、キャッシュメモリ32に記憶した検索条件(SQL検索式)を用いてデータベース50の検索をおこなうこととしているので、データベース50側にはSQL検索式から検索を実行する機能のみを実装すれば良い。
0039
つぎに、端末から検索条件を受信した場合のアプリケーションサーバの処理動作を説明する。図5は、端末から検索条件を受信した場合のアプリケーションサーバの処理動作を説明するフローチャートである。図5に示すように、端末から検索条件を受信したならば(ステップS101)、主制御部31は、検索条件をSQL検索式に変換する(ステップS102)。つぎに、主制御部31は、変換したSQL検索式と同一の内容がキャッシュメモリ32に保存されているかを確認する(ステップS103)。
【0040】
キャッシュメモリ32に同一のSQL検索式が保存されていれば(ステップS103,Yes)、主制御部31は、キャッシュメモリ32から検索結果を読み出し、検索結果を端末に送信して(ステップS108)、処理を終了する。
0041
一方、キャッシュメモリ32に同一の検索式が保存されていなければ(ステップS103,No)、主制御部31は、SQL検索式をDBMS40に送信する(ステップS105)。その後、主制御部31は、DBMS40から検索結果を受信したならば(ステップS106)、SQL検索式と検索結果とをキャッシュメモリ32に保存し(ステップS107)、検索結果を端末に送信して(ステップS108)、処理を終了する。
0042
つぎに、アプリケーションサーバ30がキャッシュ内容を更新する場合の処理動作について説明する。図6は、アプリケーションサーバ30がキャッシュ内容を更新する場合の処理動作について説明するフローチャートである。同図に示すように、まず、更新処理部33が日付データおよび時刻データを監視し(ステップS201)、更新指定日時になったならば(ステップS202,Yes)、主制御部31に更新要求を送信する。
0043
更新要求を受けた主制御部31は、キャッシュからSQL検索式を読み出し、DBMS40に送信する(ステップS204)。その後、主制御部31は、DBMS40から検索結果を受信し(ステップS205)、ステップ204において送信したSQL検索式と検索結果とを関連付けてキャッシュメモリ32に保存し(ステップS206)、処理を終了する。
0044
ところで、キャッシュメモリ32の更新間隔をデータベース50の更新頻度に比して短く設定し過ぎると、データベース50に更新がないにも関わらずキャッシュメモリの更新が繰り返されることとなり、ネットワーク内に不要なトラフィックが生じ、ネットワークの通信速度を圧迫する。また、キャッシュメモリ32の更新間隔をデータベース50の更新頻度に比して長く設定し過ぎると、データベース50が更新された後であってもアプリケーションサーバ30は更新前のデータを検索結果として端末に送信することとなり、検索結果の不整合が生じる。
【0045】
そこで、更新間隔設定部34によって指定される更新間隔は、データベース50における更新頻度に従って設定する必要がある。この更新間隔の設定は、利用者がデータベース50の更新頻度を確認して任意に設定の変更をすることとしても良いし、データベース50の更新頻度を自動的に取得し、更新間隔設定部34が自動的に適切な更新間隔を設定する構成としても良い。
0046
図7は、更新間隔設定部34が更新間隔を自動的に設定する場合の処理動作を説明するフローチャートである。同図に示すように、更新間隔設定部34は、まずデータベース50のうち、所定期間内に更新されたデータを取得する(ステップS301)。つぎに、更新間隔設定部34は、所定期間内に更新されたデータの数が一定の範囲内にあるか否かを判定し(ステップS302)、所定期間内に更新されたデータの数が一定の範囲内にあるならば(ステップS302,Yes)、そのまま処理を終了する。
【0047】
しかし、所定期間内に更新されたデータの数が一定の範囲内にない場合(ステップS302,No)、更新間隔設定部34は、更新されたデータの数が一定の範囲内に収まるように更新間隔を設定して処理を終了する(ステップS303)。
0048
このように、データベース50における更新状況を取得し、キャッシュの更新間隔をデータベース50の更新頻度に対応して設定することで、データベースに不要な負荷をかけることなくキャッシュの更新が可能となる。
0049
ここで、キャッシュ内容の更新と更新間隔の設定とは、同時に行うこととしてもよい。すなわち、キャッシュ内容を更新する際にSQL検索式を用いて検索結果を取得するが、この時に各検索結果に含まれるデータの更新日時を取得し、取得した更新日時を用いて次回以降の更新間隔を設定するようにしてもよい。
0050
キャッシュ内容の更新時における検索結果を用いて更新間隔を設定することで、データベース50にかかる負荷を軽減するとともに、キャッシュ内容に含まれるデータのみを選択的に用いて更新間隔を設定することができる。たとえは、データベース全体では更新が頻繁におきていたとしても、アプリケーションサーバ30を介してアクセスされるデータにおいて更新頻度が低ければ、アプリケーションサーバ30でのキャッシュの更新間隔を長くすることができる。
0051
なお、複数のアプリケーションサーバの更新間隔は、それぞれ独立に設定可能であり、他のアプリケーションサーバの更新間隔に依存しないことは言うまでもない。
0052
上述してきたように、本実施の形態にかかるアプリケーションサーバ30では、更新間隔設定部34によって示された更新間隔をもとに、キャッシュメモリからSQL検索式を読み出してDBMS40に送信し、DBMS40から受信した検索結果によってキャッシュの内容を更新しているので、DBMS40やデータベース50に依存することなくキャッシュの内容を最新の状態に更新することができる。
0053
したがって、データベース側の負荷を軽減してデータベースの処理を高速化するとともに、キャッシュ処理の部品化を実現して汎用性の高いキャッシュプログラムを作成することができる。
0054
なお、本実施の形態では、部品化したキャッシュプログラムをアプリケーションサーバに設けているが、キャッシュプログラムの配置場所はアプリケーションサーバに限定されるものではなく、WWWサーバをはじめ、キャッシュ処理をおこなう装置に幅広く適用することが可能である。
0055
(付記1)端末からの検索要求を受けてデータベース内のデータを検索し、検索結果を端末に送信するアプリケーションサーバであって、
検索条件と検索結果とを関連付けてキャッシュメモリに記憶させるキャッシュ手段と、
前記キャッシュメモリの内容の更新間隔を指定する更新間隔設定手段と、
前記更新間隔設定手段によって指定された間隔で前記キャッシュメモリから検索条件を読み出し、当該検索条件に基づいて前記データベース内のデータを再度検索して前記キャッシュメモリを更新する更新処理手段と、
を備えたことを特徴とするアプリケーションサーバ。
0056
(付記2)前記更新間隔設定手段は、前記データベース内におけるデータ更新の頻度をもとに、前記更新間隔を設定することを特徴とする付記1に記載のアプリケーションサーバ。
0057
(付記3)前記更新処理手段は、前記データベースを再度検索する場合に、前記データベースにおけるデータの更新頻度を取得し、前記更新間隔設定手段は、前記更新処理手段が取得した更新頻度をもとに前記更新間隔を設定することを特徴とする付記2に記載のアプリケーションサーバ。
0058
(付記4)端末からの検索要求と、当該検索要求に基づく検索結果とを関連付けてキャッシュメモリに記憶し、記憶した検索要求と同一内容の検索要求を受信した場合に、前記キャッシュメモリから検索結果を読み出すキャッシュプログラムであって、
前記キャッシュ手段が記憶する内容の更新間隔を指定する更新間隔設定手順と、
前記更新間隔設定手順によって指定された間隔で前記キャッシュメモリから検索条件を読み出し、当該検索条件に基づいて前記データベース内のデータを再度検索して前記キャッシュメモリを更新する更新処理手順と、
をコンピュータに実行させることを特徴とするキャッシュプログラム。
0059
(付記5)前記更新間隔設定手順は、前記データベース内におけるデータ更新の頻度をもとに、前記更新間隔を設定することを特徴とする付記4に記載のキャッシュプログラム。
0060
(付記6)前記更新処理手順は、前記データベースを再度検索する場合に前記データベースにおけるデータの更新頻度を取得し、前記更新間隔設定手順は、前記更新処理手順が取得した更新頻度をもとに前記更新間隔を設定することを特徴とする付記5に記載のキャッシュプログラム。
【0061】
【発明の効果】
以上説明したように、発明によれば、更新間隔設定手段によってデータベースにおいて所定期間内に更新されたデータを取得し、該更新されたデータの数が一定の範囲に収まるように設定された更新間隔でキャッシュメモリに記憶した検索条件を読み出し、読み出した検索条件を用いて再度データベースの検索を実行し、検索結果をもとにキャッシュメモリの内容を更新するので、データベース側に依存することなく、データベースの更新頻度に対応した更新間隔を自動的に設定して、データベースの負荷を増大させることなくキャッシュ内容の更新を実行可能なアプリケーションサーバが得られるという効果を奏する。
【0062】
また、請求項2の発明によれば、アプリケーションサーバは、キャッシュメモリに記憶した検索条件を用いてデータベースの検索を行う場合に、データベースにおけるデータの更新頻度を取得してキャッシュメモリの更新間隔を設定するので、データベースに負荷をかけることなくキャッシュメモリの更新間隔を自動的に設定してキャッシュ内容の更新を実行可能なアプリケーションサーバが得られるという効果を奏する。
【0064】
また、発明によれば、キャッシュ手段によってキャッシュされているデータの更新頻度をもとに設定した更新間隔を用い、キャッシュメモリに記憶した検索条件を読み出して更新を実行するので、データベースの負荷を軽減可能なアプリケーションサーバが得られるという効果を奏する。
【0065】
また、発明によれば、更新間隔設定手順によってデータベースにおいて所定期間内に更新されたデータを取得し、該更新されたデータの数が一定の範囲に収まるように設定された更新間隔でキャッシュメモリに記憶した検索条件を読み出し、読み出した検索条件を用いて再度データベースの検索を実行し、検索結果をもとにキャッシュメモリの内容を更新するので、データベース側に依存することなく、データベースの更新頻度に対応した更新間隔を自動的に設定して、データベースの負荷を増大させることなくキャッシュ内容の更新を実行可能なアプリケーションプログラムが得られるという効果を奏する。
【0066】
また、発明によれば、キャッシュ手順によってキャッシュされているデータの更新頻度をもとに設定した更新間隔を用い、キャッシュメモリに記憶した検索条件を読み出して更新を実行するので、データベースの負荷を軽減可能なアプリケーションプログラムが得られるという効果を奏する。
【図面の簡単な説明】
【図1】 本発明の実施の形態にかかるアプリケーションサーバの概要構成を説明する概要構成図である。
【図2】 図1に示したアプリケーションサーバがデータベースからデータを検索する場合について説明する説明図である。
【図3】 図1に示したアプリケーションサーバがキャッシュメモリからデータを検索する場合について説明する説明図である。
【図4】 図1に示したアプリケーションサーバにおけるキャッシュの更新について説明する説明図である。
【図5】 端末から検索条件を受信した場合のアプリケーションサーバの処理動作を説明するフローチャートである。
【図6】 アプリケーションサーバがキャッシュ内容を更新する場合の処理動作について説明するフローチャートである。
【図7】 更新間隔設定部が更新間隔を自動的に設定する場合の処理動作を説明するフローチャートである。
【符号の説明】
1〜4 端末
10,10a ネットワーク
20,20a WWWサーバ
30,30a アプリケーションサーバ
31 主制御部
32 キャッシュメモリ
33 更新処理部
34 更新間隔設定部
40 DBMS
50 データベース

Claims (4)

  1. 複数のアプリケーションサーバに接続されるデータベースに接続され、端末からの検索要求を受けて前記データベース内のデータを検索し、検索結果を端末に送信するアプリケーションサーバであって、
    前記端末から受信した検索要求に基づいて生成した検索条件と前記検索条件を用いて前記データベースから検索した検索結果とを関連付けてキャッシュメモリに記憶させるキャッシュ手段と、
    所定の間隔で前記キャッシュメモリから検索条件を読み出し、当該検索条件に基づいて前記データベース内のデータを再度検索して前記キャッシュメモリを更新する更新処理手段と、
    前記更新処理手段による再度検索によって取得したデータの更新日時を用いて前記更新に係る所定の間隔を設定する更新間隔設定手段と、
    を備えたことを特徴とするアプリケーションサーバ。
  2. 前記更新間隔設定手段は、前記キャッシュ手段によってキャッシュされているデータの更新頻度をもとに前記更新間隔を設定することを特徴とする請求項に記載のアプリケーションサーバ。
  3. 複数のアプリケーションサーバに接続されるデータベースに接続され、端末からの検索要求を受けて前記データベース内のデータを検索し、検索結果を端末に送信する処理をアプリケーションサーバに実行させるアプリケーションプログラムであって、
    前記端末から受信した検索要求に基づいて生成した検索条件と前記検索条件を用いて前記データベースから検索した検索結果とを関連付けてキャッシュメモリに記憶させるキャッシュ手順と、
    所定の間隔で前記キャッシュメモリから検索条件を読み出し、当該検索条件に基づいて前記データベース内のデータを再度検索して前記キャッシュメモリを更新する更新処理手順と、
    前記更新処理手段による再度検索によって取得したデータの更新日時を用いて前記更新に係る所定の間隔を設定する更新間隔設定手順と、
    を前記アプリケーションサーバに実行させることを特徴とするアプリケーションプログラム。
  4. 前記更新間隔設定手順は、前記キャッシュ手順によってキャッシュされたデータの更新頻度をもとに前記更新間隔を設定することを特徴とする請求項に記載のアプリケーションプログラム。
JP2003089216A 2003-03-27 2003-03-27 アプリケーションサーバおよびアプリケーションプログラム Expired - Lifetime JP4579501B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003089216A JP4579501B2 (ja) 2003-03-27 2003-03-27 アプリケーションサーバおよびアプリケーションプログラム
US10/766,839 US7711720B2 (en) 2003-03-27 2004-01-30 Application server, cache program, and application server system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003089216A JP4579501B2 (ja) 2003-03-27 2003-03-27 アプリケーションサーバおよびアプリケーションプログラム

Publications (2)

Publication Number Publication Date
JP2004295683A JP2004295683A (ja) 2004-10-21
JP4579501B2 true JP4579501B2 (ja) 2010-11-10

Family

ID=32985233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003089216A Expired - Lifetime JP4579501B2 (ja) 2003-03-27 2003-03-27 アプリケーションサーバおよびアプリケーションプログラム

Country Status (2)

Country Link
US (1) US7711720B2 (ja)
JP (1) JP4579501B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180110A1 (en) * 2006-01-27 2007-08-02 Ge Medical Systems Information Technologies, Inc. System and method for retaining information in a data management system
US8868504B2 (en) * 2007-03-07 2014-10-21 Oracle International Corporation Database system with active standby and nodes
JP2008299796A (ja) * 2007-06-04 2008-12-11 Toshiba Corp データベースシステム及びその回答方法
JP4815459B2 (ja) * 2008-03-06 2011-11-16 株式会社日立製作所 負荷分散制御サーバ、負荷分散制御方法及びコンピュータプログラム
US7877482B1 (en) * 2008-04-01 2011-01-25 Google Inc. Efficient application hosting in a distributed application execution system
JP5243209B2 (ja) * 2008-11-28 2013-07-24 株式会社野村総合研究所 データ検索システム、方法及びコンピュータプログラム
US8005950B1 (en) 2008-12-09 2011-08-23 Google Inc. Application server scalability through runtime restrictions enforcement in a distributed application execution system
US8909863B2 (en) * 2009-11-16 2014-12-09 Microsoft Corporation Cache for storage and/or retrieval of application information
JP5303500B2 (ja) * 2010-03-19 2013-10-02 日本電信電話株式会社 文書検索装置及び方法及びプログラム
US8589361B2 (en) 2010-08-30 2013-11-19 Oracle International Corporation Reduced disk space standby
WO2013019913A1 (en) 2011-08-02 2013-02-07 Jadhav Ajay Cloud-based distributed persistence and cache data model
CN102542009B (zh) * 2011-12-14 2018-03-13 中兴通讯股份有限公司 数据查询方法及装置
US9032385B2 (en) 2011-12-28 2015-05-12 Lg Electronics Inc. Mobile terminal and control method thereof
US10229221B1 (en) * 2012-03-01 2019-03-12 EMC IP Holding Company LLC Techniques for cache updates based on quality of service
JP5986959B2 (ja) * 2013-06-24 2016-09-06 株式会社フィナンシャル・エージェンシー 情報処理装置、情報処理システム、情報処理方法、及びプログラム
US10311154B2 (en) 2013-09-21 2019-06-04 Oracle International Corporation Combined row and columnar storage for in-memory databases for OLTP and analytics workloads
US10650067B2 (en) * 2015-08-13 2020-05-12 Samsung Electronics Co., Ltd. Cloud-enabled architecture for on-demand native application crawling
US10803039B2 (en) 2017-05-26 2020-10-13 Oracle International Corporation Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index
US10719446B2 (en) 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
US10732836B2 (en) 2017-09-29 2020-08-04 Oracle International Corporation Remote one-sided persistent writes
US10802766B2 (en) 2017-09-29 2020-10-13 Oracle International Corporation Database with NVDIMM as persistent storage
CN110019332A (zh) * 2017-09-29 2019-07-16 北京国双科技有限公司 一种基于预计算的数据查询方法及装置
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US11675761B2 (en) 2017-09-30 2023-06-13 Oracle International Corporation Performing in-memory columnar analytic queries on externally resident data
CN108600320A (zh) * 2018-03-23 2018-09-28 阿里巴巴集团控股有限公司 一种数据缓存方法、装置及系统
US11170002B2 (en) 2018-10-19 2021-11-09 Oracle International Corporation Integrating Kafka data-in-motion with data-at-rest tables

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239644A (en) * 1988-03-28 1993-08-24 Hitachi, Ltd. Data preloading method and system for using a buffer
JPH06175920A (ja) 1992-12-01 1994-06-24 Oki Electric Ind Co Ltd キャッシュ制御装置
US5748985A (en) * 1993-06-15 1998-05-05 Hitachi, Ltd. Cache control method and cache controller
JP4025379B2 (ja) * 1996-09-17 2007-12-19 株式会社ニューズウオッチ 検索システム
JPH1115714A (ja) 1997-06-25 1999-01-22 Mitsubishi Electric Corp 情報取得端末、情報キャッシュサーバ及び情報取得方法
US7079530B1 (en) * 1999-02-25 2006-07-18 Sprint Communications Company L.P. System and method for caching toll free number information
US6505200B1 (en) * 2000-07-06 2003-01-07 International Business Machines Corporation Application-independent data synchronization technique
JP4155382B2 (ja) * 2001-01-25 2008-09-24 富士通株式会社 パターン検索方法、パターン検索装置、パターン検索プログラムを記録したコンピュータ読み取り可能な記録媒体、パターン検索システムおよびパターン検索プログラム
US20020107835A1 (en) * 2001-02-08 2002-08-08 Coram Michael T. System and method for adaptive result set caching
US7162467B2 (en) * 2001-02-22 2007-01-09 Greenplum, Inc. Systems and methods for managing distributed database resources
JP2003006225A (ja) * 2001-06-27 2003-01-10 Nec Corp 情報提供方法及びそれに用いる情報提供装置並びに端末
US7043731B2 (en) * 2001-07-12 2006-05-09 Qwest Communications International, Inc. Method and system for distributing access to group of objects based on round robin algorithm and only when the object is available
CA2355418A1 (en) * 2001-08-16 2003-02-16 Ibm Canada Limited-Ibm Canada Limitee A schema for sql statements
US6775738B2 (en) * 2001-08-17 2004-08-10 International Business Machines Corporation Method, system, and program for caching data in a storage controller
AU2003243635A1 (en) * 2002-06-17 2003-12-31 Beingmeta, Inc. Systems and methods for processing queries
US7020750B2 (en) * 2002-09-17 2006-03-28 Sun Microsystems, Inc. Hybrid system and method for updating remote cache memory with user defined cache update policies
US20040107319A1 (en) * 2002-12-03 2004-06-03 D'orto David M. Cache management system and method

Also Published As

Publication number Publication date
JP2004295683A (ja) 2004-10-21
US20040193574A1 (en) 2004-09-30
US7711720B2 (en) 2010-05-04

Similar Documents

Publication Publication Date Title
JP4579501B2 (ja) アプリケーションサーバおよびアプリケーションプログラム
US7991796B2 (en) System and program for implementing scrollable cursors in a distributed database system
CN102075570B (zh) 一种基于关键字的http报文缓存机制的实现方法
US20030236780A1 (en) Method and system for implementing dynamic cache of database cursors
US20070033290A1 (en) Normalization and customization of syndication feeds
JP2005533324A (ja) モバイルアプリケーション用データをキャッシュするためのシステムおよび方法
AU2003267650A1 (en) Method, system, and program for maintaining data in distributed caches
JP2000500259A (ja) 動的に生成するカスタム化ページのサーバ独立キャッシュ方式の方法および装置
JPH10254753A (ja) キャッシュ間情報転送方法
WO2016037540A1 (zh) 基于pb和xpath的网元级网管业务配置适配系统及方法
JP2004078783A (ja) Wwwブラウザのキャッシュ管理装置、そのキャッシュ管理方法及びプログラム
WO2014161261A1 (zh) 数据的存储方法及装置
US20020052889A1 (en) Method for managing alterations of contents
JPH10240604A (ja) インターネットのホームページ管理システム
US7480657B1 (en) Caching information for multiple service applications
US10402373B1 (en) Filesystem redirection
JPH1040180A (ja) 情報中継装置
JP2006227671A (ja) ウェブページ提供装置及びウェブページ提供方法
US6763381B1 (en) Supervisory control system
JP2001014353A (ja) インターネットブラウザ内のブックマークを管理する方法
JP5245629B2 (ja) 中継装置、通信中継方法、そのプログラム、及び中継システム
JP5143917B2 (ja) キャッシュサーバ、キャッシュ管理方法およびキャッシュ管理プログラム
US11055266B2 (en) Efficient key data store entry traversal and result generation
JPH11175539A (ja) 代理情報取得方法及びシステム及び代理情報取得プログラムを格納した記憶媒体
JP2001043124A (ja) 情報キャッシュサーバ、情報キャッシュシステム、情報取得方法および情報取得のための記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070813

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071112

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071128

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100611

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100826

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130903

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4579501

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

EXPY Cancellation because of completion of term