JP4579501B2 - アプリケーションサーバおよびアプリケーションプログラム - Google Patents
アプリケーションサーバおよびアプリケーションプログラム Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database 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
【発明の属する技術分野】
この発明は、端末からの検索要求を受けてデータベース内のデータを検索し、検索結果を端末に送信するアプリケーションサーバおよびアプリケーションサーバ上で動作するキャッシュプログラムに関し、特に、データベース側に依存することなくキャッシュ内容の更新を実行可能なアプリケーションサーバおよびキャッシュプログラムに関する。
【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に記載のアプリケーションサーバ。
- 複数のアプリケーションサーバに接続されるデータベースに接続され、端末からの検索要求を受けて前記データベース内のデータを検索し、検索結果を端末に送信する処理をアプリケーションサーバに実行させるアプリケーションプログラムであって、
前記端末から受信した検索要求に基づいて生成した検索条件と前記検索条件を用いて前記データベースから検索した検索結果とを関連付けてキャッシュメモリに記憶させるキャッシュ手順と、
所定の間隔で前記キャッシュメモリから検索条件を読み出し、当該検索条件に基づいて前記データベース内のデータを再度検索して前記キャッシュメモリを更新する更新処理手順と、
前記更新処理手段による再度検索によって取得したデータの更新日時を用いて前記更新に係る所定の間隔を設定する更新間隔設定手順と、
を前記アプリケーションサーバに実行させることを特徴とするアプリケーションプログラム。 - 前記更新間隔設定手順は、前記キャッシュ手順によってキャッシュされたデータの更新頻度をもとに前記更新間隔を設定することを特徴とする請求項3に記載のアプリケーションプログラム。
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)
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)
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 |
-
2003
- 2003-03-27 JP JP2003089216A patent/JP4579501B2/ja not_active Expired - Lifetime
-
2004
- 2004-01-30 US US10/766,839 patent/US7711720B2/en active Active
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 |