(57)【特許請求の範囲】
【請求項１】
データをキャッシュするキャッシュシステムであって、
利用者の利用する情報の実体を記録するデータ記憶手段と、
前記データ記憶手段内に記録されている情報のうちアクセスする頻度の高いものを格納するキャッシュ記憶手段と、
利用者の利用する情報へのアクセス頻度を記録するアクセス頻度記憶手段と、
アクセス要求を受け、キャッシュ記憶手段又はデータ記憶手段の何れか、或いはその両方から情報を検索し、検索の結果得られた、情報を要求元に返し、かつアクセス頻度記憶手段を参照し、利用者の情報へのアクセス頻度を基にアクセス頻度の高い情報をキャッシュ記憶手段に記録する予測キャッシュ管理手段と、
を備え、
前記予測キャッシュ管理手段におけるアクセス頻度は、利用者の利用する情報へアクセスした時刻を記録しておき、現在時刻から過去へ向かってアクセス間隔を求め、求めたアクセス間隔のうち、あらかじめ決められているタイムアウト時間を超えずに何回アクセスしているかを数えることにより求めることを特徴とするキャッシュシステム。
【請求項２】
請求項１に記載のキャッシュシステムであって、
前記予測キャッシュ管理手段におけるアクセス頻度の更新は、アクセス要求を受けた場合又は定期的の何れか又はその組合せで行われることを特徴とするキャッシュシステム。
【請求項３】
請求項１又は２に記載のキャッシュシステムであって、
前記予測キャッシュ管理手段は、情報へのアクセス要求を受けると、まずキャッシュ記憶手段を検索し、キャッシュ記憶手段に要求された情報が無い場合に、データ記憶手段を検索することを特徴とするキャッシュシステム。
【請求項４】
請求項１乃至３の何れか１項に記載のキャッシュシステムであって、
キャッシュ記憶手段とデータ記憶手段との間で情報を運搬する情報運搬手段、キャッシュする情報を予測する予測キャッシュ手段、の何れか又は両方を更に備え、
前記予測キャッシュ管理手段は、情報へのアクセス要求を受けると、まずキャッシュ記憶手段を検索し、キャッシュ記憶手段に要求された情報が無い場合に、データ記憶手段、予測キャッシュ手段、情報運搬手段の何れかが、要求された情報をデータ記憶手段から検索しキャッシュ記憶手段に保存することを特徴とするキャッシュシステム。
【請求項５】
請求項１乃至４の何れか１項に記載のキャッシュシステムであって、
事前予測キャッシュ管理手段は、検索条件式または固有の番号を用いて前記キャッシュ記憶手段及び前記データ記憶手段で記録されている情報を検索することを特徴とするキャッシュシステム。
【請求項６】
請求項１乃至５の何れか１項に記載のキャッシュシステムであって、
前記アクセス頻度記憶手段は、一つしかない場合は省略可能なテーブル名、レコード番号、アクセス回数からなる定義を複数保存しており、前記予測キャッシュ管理手段が前記各定義を参照して前記アクセス頻度を求めることを特徴とするキャッシュシステム。
【請求項７】
請求項１乃至５の何れか１項に記載のキャッシュシステムであって、
前記アクセス頻度記憶手段は、一つしかない場合は省略可能なテーブル名、レコード番号、アクセス回数からなるアクセス頻度情報を複数保存しており、前記予測キャッシュ管理手段が前記アクセス頻度情報を参照して前記アクセス頻度を求めることを特徴とするキャッシュシステム。
【請求項８】
アクセス要求を行うクライアントとネットワークを介して接続された請求項１乃至７の何れか１項に記載のキャッシュシステムであって、
アクセス要求のあった情報及び関連する前記アクセス頻度の高い情報を前記ネットワークを経由して要求元である前記クライアントに送信する送信手段を更に備えることを特徴とするキャッシュシステム。
【請求項９】
利用者の利用する情報のうちアクセスする頻度の高いものを格納するキャッシュ記憶手段を備えた端末、と接続されたサーバであって、
利用者の利用する情報の実体を記録するデータ記憶手段と、
利用者の利用する情報へのアクセス頻度を記録するアクセス頻度記憶手段と、
前記端末から前記キャッシュ記憶手段に格納されていない情報についてアクセス要求を受け、データ記憶手段から情報を検索し、検索の結果得られた、情報を要求元の端末に返し、かつアクセス頻度記憶手段を参照し、利用者の情報へのアクセス頻度を基にアクセス頻度の高い情報も前記要求元に返すことにより前記キャッシュ記憶手段に前記アクセス頻度の高い情報を記録させる予測キャッシュ管理手段と、
を備え、
前記予測キャッシュ管理手段におけるアクセス頻度は、利用者の利用する情報へアクセスした時刻を記録しておき、現在時刻から過去へ向かってアクセス間隔を求め、求めたアクセス間隔のうち、あらかじめ決められているタイムアウト時間を超えずに何回アクセスしているかを数えることにより求めることを特徴とするサーバ。
【請求項１０】
データをキャッシュするキャッシュ方法であって、
利用者の利用する情報の実体をデータ記憶手段に記録するデータ記憶ステップと、
前記データ記憶手段内に記録されている情報のうちアクセスする頻度の高いものをキャッシュ記憶手段に格納するキャッシュ記憶ステップと、
利用者の利用する情報へのアクセス頻度をアクセス頻度記憶手段に記録するアクセス頻度記憶ステップと、
アクセス要求を受け、キャッシュ記憶手段又はデータ記憶手段の何れか、或いはその両方から情報を検索し、検索の結果得られた、情報を要求元に返し、かつアクセス頻度記憶手段を参照し、利用者の情報へのアクセス頻度を基にアクセス頻度の高い情報をキャッシュ記憶手段に記録する予測キャッシュ管理ステップと、
を備え、
前記予測キャッシュ管理ステップにおけるアクセス頻度は、利用者の利用する情報へアクセスした時刻を記録しておき、現在時刻から過去へ向かってアクセス間隔を求め、求めたアクセス間隔のうち、あらかじめ決められているタイムアウト時間を超えずに何回アクセスしているかを数えることにより求めることを特徴とするキャッシュ方法。
【請求項１１】
請求項１０に記載のキャッシュ方法であって、
前記予測キャッシュ管理ステップにおけるアクセス頻度の更新は、アクセス要求を受けた場合又は定期的の何れか又はその組合せで行われることを特徴とするキャッシュ方法。
【請求項１２】
請求項１０又は１１に記載のキャッシュ方法であって、
前記予測キャッシュ管理ステップでは、情報へのアクセス要求を受けると、まずキャッシュ記憶手段を検索し、キャッシュ記憶手段に要求された情報が無い場合に、データ記憶手段を検索することを特徴とするキャッシュ方法。
【請求項１３】
請求項１０乃至１２の何れか１項に記載のキャッシュ方法であって、
事前予測キャッシュ管理ステップでは、検索条件式または固有の番号を用いて前記キャッシュ記憶手段及び前記データ記憶手段で記録されている情報を検索することを特徴とするキャッシュ方法。
【請求項１４】
請求項１０乃至１３の何れか１項に記載のキャッシュ方法であって、
前記アクセス頻度記憶手段は、一つしかない場合は省略可能なテーブル名、レコード番号、アクセス回数からなる定義を複数保存しており、前記予測キャッシュ管理ステップでは前記各定義を参照して前記アクセス頻度を求めることを特徴とするキャッシュ方法。
【請求項１５】
請求項１０乃至１３の何れか１項に記載のキャッシュ方法であって、
前記アクセス頻度記憶手段は、一つしかない場合は省略可能なテーブル名、レコード番号、アクセス回数からなるアクセス頻度情報を複数保存しており、前記予測キャッシュ管理ステップでは前記アクセス頻度情報を参照して前記アクセス頻度を求めることを特徴とするキャッシュ方法。
【請求項１６】
利用者の利用する情報のうちアクセスする頻度の高いものを格納するキャッシュ記憶手段を備えた端末、と接続されたサーバが行うキャッシュ方法であって、
利用者の利用する情報の実体をデータ記憶手段に記録するデータ記憶ステップと、
利用者の利用する情報へのアクセス頻度をアクセス頻度記憶手段に記録するアクセス頻度記憶ステップと、
前記端末から前記キャッシュ記憶手段に格納されていない情報についてアクセス要求を受け、データ記憶手段から情報を検索し、検索の結果得られた、情報を要求元の端末に返し、かつアクセス頻度記憶手段を参照し、利用者の情報へのアクセス頻度を基にアクセス頻度の高い情報も前記要求元に返すことにより前記キャッシュ記憶手段に前記アクセス頻度の高い情報を記録させる予測キャッシュ管理ステップと、
を備え、
前記予測キャッシュ管理ステップにおけるアクセス頻度は、利用者の利用する情報へアクセスした時刻を記録しておき、現在時刻から過去へ向かってアクセス間隔を求め、求めたアクセス間隔のうち、あらかじめ決められているタイムアウト時間を超えずに何回アクセスしているかを数えることにより求めることを特徴とするキャッシュ方法。
【請求項１７】
データをキャッシュするキャッシュシステムとしてコンピュータを機能させるキャッシュプログラムであって、
前記コンピュータを、
利用者の利用する情報の実体を記録するデータ記憶手段と、
前記データ記憶手段内に記録されている情報のうちアクセスする頻度の高いものを格納するキャッシュ記憶手段と、
利用者の利用する情報へのアクセス頻度を記録するアクセス頻度記憶手段と、
アクセス要求を受け、キャッシュ記憶手段又はデータ記憶手段の何れか、或いはその両方から情報を検索し、検索の結果得られた、情報を要求元に返し、かつアクセス頻度記憶手段を参照し、利用者の情報へのアクセス頻度を基にアクセス頻度の高い情報をキャッシュ記憶手段に記録する予測キャッシュ管理手段と、
を備え、
前記予測キャッシュ管理手段におけるアクセス頻度は、利用者の利用する情報へアクセスした時刻を記録しておき、現在時刻から過去へ向かってアクセス間隔を求め、求めたアクセス間隔のうち、あらかじめ決められているタイムアウト時間を超えずに何回アクセスしているかを数えることにより求めるキャッシュシステム、として機能させることを特徴とするキャッシュプログラム。
【請求項１８】
請求項１７に記載のキャッシュプログラムであって、
前記予測キャッシュ管理手段におけるアクセス頻度の更新は、アクセス要求を受けた場合又は定期的の何れか又はその組合せで行われることを特徴とするキャッシュプログラム。
【請求項１９】
請求項１７又は１８に記載のキャッシュプログラムであって、
前記予測キャッシュ管理手段は、情報へのアクセス要求を受けると、まずキャッシュ記憶手段を検索し、キャッシュ記憶手段に要求された情報が無い場合に、データ記憶手段を検索することを特徴とするキャッシュプログラム。
【請求項２０】
請求項１７乃至１９の何れか１項に記載のキャッシュプログラムであって、
事前予測キャッシュ管理手段は、検索条件式または固有の番号を用いて前記キャッシュ記憶手段及び前記データ記憶手段で記録されている情報を検索することを特徴とするキャッシュプログラム。
【請求項２１】
請求項１７乃至２０の何れか１項に記載のキャッシュプログラムであって、
前記アクセス頻度記憶手段は、一つしかない場合は省略可能なテーブル名、レコード番号、アクセス回数からなる定義を複数保存しており、前記予測キャッシュ管理手段が前記各定義を参照して前記アクセス頻度を求めることを特徴とするキャッシュプログラム。
【請求項２２】
請求項１７乃至２０の何れか１項に記載のキャッシュプログラムであって、
前記アクセス頻度記憶手段は、一つしかない場合は省略可能なテーブル名、レコード番号、アクセス回数からなるアクセス頻度情報を複数保存しており、前記予測キャッシュ管理手段が前記アクセス頻度情報を参照して前記アクセス頻度を求めることを特徴とするキャッシュプログラム。
【請求項２３】
利用者の利用する情報のうちアクセスする頻度の高いものを格納するキャッシュ記憶手段を備えた端末、と接続されたコンピュータをサーバとして機能させるキャッシュプログラムであって、
前記コンピュータを、
利用者の利用する情報の実体を記録するデータ記憶手段と、
利用者の利用する情報へのアクセス頻度を記録するアクセス頻度記憶手段と、
前記端末から前記キャッシュ記憶手段に格納されていない情報についてアクセス要求を受け、データ記憶手段から情報を検索し、検索の結果得られた、情報を要求元の端末に返し、かつアクセス頻度記憶手段を参照し、利用者の情報へのアクセス頻度を基にアクセス頻度の高い情報も前記要求元に返すことにより前記キャッシュ記憶手段に前記アクセス頻度の高い情報を記録させる予測キャッシュ管理手段と、
を備え、
前記予測キャッシュ管理手段におけるアクセス頻度は、利用者の利用する情報へアクセスした時刻を記録しておき、現在時刻から過去へ向かってアクセス間隔を求め、求めたアクセス間隔のうち、あらかじめ決められているタイムアウト時間を超えずに何回アクセスしているかを数えることにより求めるサーバ、として機能させることを特徴とするキャッシュプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報をキャッシュ用データ管理構造にキャッシュすることで、以後のアクセス時に高速にアクセスできるキャッシュ方法、そのシステム及びそのプログラムに関する。
【背景技術】
【０００２】
本願発明に関連するキャッシュシステムの方式を述べる。図１は本願発明に関連するキャッシュシステムの構成を示す図である。図１を参照すると、本願発明に関連するキャッシュシステムはデータ記憶装置と、キャッシュ管理装置と、キャッシュ記憶装置から構成されている。
【０００３】
記憶可能な容量については、キャッシュ記憶装置に対しデータ記憶装置は十分に大きい。また、前提としてデータ記憶装置には全てのデータが格納されている。一方、キャッシュ記憶装置にはデータ記憶装置内のデータのうち高い頻度でアクセスするデータを記録しておく。また検索速度の面では、キャッシュ記憶装置はデータ記憶装置より高速にデータの検索ができる。
【０００４】
このような構成を有する従来のキャッシュシステムの動作を以下に述べる。
【０００５】
利用者またはシステムがキャッシュ管理装置に検索要求を出す。検索要求には、データ記憶装置から情報を取り出すために必要な固有の番号（ＩＤ）または検索条件式を含んでいる。また、データ記憶装置中のデータにはそのデータを特定するための固有の番号（ＩＤ）が割り当てられている。キャッシュ管理装置は検索要求を受けると、キャッシュ記憶装置に対し検索要求で要求されたＩＤのデータがキャッシュ記憶装置内に保存されているか問い合わせる。
【０００６】
キャッシュ記憶装置内に要求されたＩＤのデータがある場合はそのデータをキャッシュ記憶装置から取り出し検索結果として検索要求元へ返す。一方、キャッシュ記憶装置内に要求されたＩＤのデータが無い場合はデータ記憶装置に対し検索を実行する。データ記憶装置内に要求したＩＤのデータが存在した場合、データ記憶装置から要求したＩＤのデータを取り出す。取り出したデータは検索要求元へ検索結果として返すとともに、キャッシュ記憶装置へ投入する。
【０００７】
次回以降、同じＩＤで検索要求がなされた場合、キャッシュ管理装置はキャッシュ記憶装置を確認することでデータ記憶装置を検索することなく高速にデータを読み出すことができる。
【０００８】
この点、上述のようなキャッシュシステムにおいて、サーバに記憶されたコンテンツ（データ）の検索において、コンテンツを検索するために使用される検索キーに検索優先度を設定して優先度の高いコンテンツをキャッシュすることにより、サーバとクライアント間の通信量を削減するという技術がある（例えば特許文献１参照）。
【０００９】
特許文献１では、上述の検索優先度は、「例えば人気のあるカテゴリ順、入札件数の多い順、残り時間の短い順、あるいはこれらの組み合わせにより決められる。」と記載されている。そして、検索キーに対応する検索結果がクライアントのキャッシュ部に存在しない場合、サーバへ検索キーを渡し、サーバが検索した結果をクライアントに送信する。これによりサーバとクライアント間の通信量を削減することが可能となる。
【特許文献１】特開２００３−３１６７８２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述した特許文献１に記載の発明には、問題点があった。その問題点は、クライアント（利用者）の今までのアクセス履歴が考慮されておらず、クライアントにとって必要となるデータをアクセス頻度の観点から予測し事前にキャッシュすることができないことである。
【００１１】
そこで、本発明は、利用者が管理するデータの中のアクセス履歴を基に、データへのアクセス回数、データへのアクセス間隔、又はその双方からアクセス頻度を求め、アクセス頻度が高い情報を事前にキャッシュすることができる予測型事前キャッシュシ方法、そのシステム及びそのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の観点によれば、システムとしてデータをキャッシュするキャッシュシステムであって、利用者の利用する情報の実体を記録するデータ記憶手段と、前記データ記憶手段内に記録されている情報のうちアクセスする頻度の高いものを格納するキャッシュ記憶手段と、利用者の利用する情報へのアクセス頻度を記録するアクセス頻度記憶手段と、アクセス要求を受け、キャッシュ記憶手段又はデータ記憶手段の何れか、或いはその両方から情報を検索し、検索の結果得られた、情報を要求元に返し、かつアクセス頻度記憶手段を参照し、利用者の情報へのアクセス頻度を基にアクセス頻度の高い情報をキャッシュ記憶手段に記録する予測キャッシュ管理手段と、を備え、前記予測キャッシュ管理手段におけるアクセス頻度は、利用者の利用する情報へアクセスした時刻を記録しておき、現在時刻から過去へ向かってアクセス間隔を求め、求めたアクセス間隔のうち、あらかじめ決められているタイムアウト時間を超えずに何回アクセスしているかを数えることにより求めることを特徴とするキャッシュシステムが提供される。
【００１４】
本発明の第２の観点によれば、サーバとして利用者の利用する情報のうちアクセスする頻度の高いものを格納するキャッシュ記憶手段を備えた端末、と接続されたサーバであって、利用者の利用する情報の実体を記録するデータ記憶手段と、利用者の利用する情報へのアクセス頻度を記録するアクセス頻度記憶手段と、前記端末から前記キャッシュ記憶手段に格納されていない情報についてアクセス要求を受け、データ記憶手段から情報を検索し、検索の結果得られた、情報を要求元の端末に返し、かつアクセス頻度記憶手段を参照し、利用者の情報へのアクセス頻度を基にアクセス頻度の高い情報も前記要求元に返すことにより前記キャッシュ記憶手段に前記アクセス頻度の高い情報を記録させる予測キャッシュ管理手段と、を備え、前記予測キャッシュ管理手段におけるアクセス頻度は、利用者の利用する情報へアクセスした時刻を記録しておき、現在時刻から過去へ向かってアクセス間隔を求め、求めたアクセス間隔のうち、あらかじめ決められているタイムアウト時間を超えずに何回アクセスしているかを数えることにより求めることを特徴とするサーバが提供される。
【００１５】
本発明の第３の観点によれば、方法としてデータをキャッシュするキャッシュ方法であって、利用者の利用する情報の実体をデータ記憶手段に記録するデータ記憶ステップと、前記データ記憶手段内に記録されている情報のうちアクセスする頻度の高いものをキャッシュ記憶手段に格納するキャッシュ記憶ステップと、利用者の利用する情報へのアクセス頻度をアクセス頻度記憶手段に記録するアクセス頻度記憶ステップと、アクセス要求を受け、キャッシュ記憶手段又はデータ記憶手段の何れか、或いはその両方から情報を検索し、検索の結果得られた、情報を要求元に返し、かつアクセス頻度記憶手段を参照し、利用者の情報へのアクセス頻度を基にアクセス頻度の高い情報をキャッシュ記憶手段に記録する予測キャッシュ管理ステップと、を備え、前記予測キャッシュ管理ステップにおけるアクセス頻度は、利用者の利用する情報へアクセスした時刻を記録しておき、現在時刻から過去へ向かってアクセス間隔を求め、求めたアクセス間隔のうち、あらかじめ決められているタイムアウト時間を超えずに何回アクセスしているかを数えることにより求めることを特徴とするキャッシュ方法が提供される。
【００１６】
本発明の第４の観点によれば、プログラムとしてデータをキャッシュするキャッシュシステムとしてコンピュータを機能させるキャッシュプログラムであって、前記コンピュータを、利用者の利用する情報の実体を記録するデータ記憶手段と、前記データ記憶手段内に記録されている情報のうちアクセスする頻度の高いものを格納するキャッシュ記憶手段と、利用者の利用する情報へのアクセス頻度を記録するアクセス頻度記憶手段と、アクセス要求を受け、キャッシュ記憶手段又はデータ記憶手段の何れか、或いはその両方から情報を検索し、検索の結果得られた、情報を要求元に返し、かつアクセス頻度記憶手段を参照し、利用者の情報へのアクセス頻度を基にアクセス頻度の高い情報をキャッシュ記憶手段に記録する予測キャッシュ管理手段と、を備え、前記予測キャッシュ管理手段におけるアクセス頻度は、利用者の利用する情報へアクセスした時刻を記録しておき、現在時刻から過去へ向かってアクセス間隔を求め、求めたアクセス間隔のうち、あらかじめ決められているタイムアウト時間を超えずに何回アクセスしているかを数えることにより求めるキャッシュシステム、として機能させることを特徴とするキャッシュプログラムが提供される。
【発明の効果】
【００１７】
本発明によれば、利用者が管理するデータの中のアクセス履歴を基に、データへのアクセス回数、データへのアクセス間隔、又はその双方からアクセス頻度を求め、アクセス頻度が高い情報を事前にキャッシュできることから、アクセス頻度の高いデータを事前にキャッシュすることが可能となる。
【発明を実施するための最良の形態】
【００１８】
次に、図２を用いて、本発明の実施形態の概略を説明する。
【００１９】
本発明の実施形態である、アクセス履歴を用いた予測型事前キャッシュシステムは、事前予測キャッシュ管理装置１１と、キャッシュ記憶装置１２と、データ記憶装置１３と、アクセス頻度記憶装置１４を有している。
【００２０】
事前予測キャッシュ管理装置１１は、利用者のデータアクセス履歴から次に必要とするデータを予測し事前に必要となるデータを取り出す装置である。キャッシュ記憶装置１２は、キャッシュデータを保存する装置である。データ記憶装置１３は、データを保存する装置である。アクセス頻度記憶装置１４は、データへのアクセス頻度を記録する装置である。
【００２１】
以下、本システムの動作について述べる。
【００２２】
利用者入力またはシステムの要求に基づいて、事前予測キャッシュ管理装置１１に検索要求を出す。検索要求には、データ記憶装置１３から情報を取り出すために必要な固有の番号（ＩＤ）または検索条件式を含んでいる。事前予測キャッシュ管理装置１１は検索要求を受け取るとキャッシュ記憶装置１２に対して要求されたＩＤまたは検索条件式に該当するデータがあるかを問い合わせる。
【００２３】
キャッシュ記憶装置１２内に該当するデータがある場合はそのデータを検索結果として検索要求元に返す。一方キャッシュ記憶装置１２内に該当するデータがなかった場合は、データ記憶装置１３に対し検索を実行する。データ記憶装置１３内に検索要求に該当するデータがあれば、そのデータを取り出し検索結果として返す。また、アクセス頻度記憶装置１４に対し、検索要求によりアクセスしたデータのアクセス頻度情報を更新する。
【００２４】
続いて、アクセス頻度記憶装置１４内のアクセス頻度情報を参照し、データへのアクセス回数と、アクセス間隔をもとにアクセス頻度を求め、アクセス頻度の高いデータをデータ記憶装置１３から検索する。検索により得られたアクセス頻度の高いデータをデータ記憶装置から検索する。アクセス頻度の高いデータをデータ記録装置１３から取り出し、そのデータをキャッシュ記憶装置１２に投入する。このような構成を採用し、上記の動作を実行し、検索要求にて要求されたデータだけでなく、利用者のアクセス頻度が高いデータをキャッシュすることにより本発明の目的を達成できる。
【００２５】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２６】
本発明の実施形態は、プログラム制御により動作し、コンピュータもしくはデバイスからなるクライアント端末１と、と、サーバ２となるコンピュータ、サーバとクライアントが通信をするための通信路３を有する。
【００２７】
クライアント端末１は、利用者への操作画面やアプリケーション機能を提供するアプリケーション１０１と、アプリケーションからの検索要求とキャッシュ管理構造を制御するクライアント側キャッシュ管理装置１０２とキャッシュデータを管理するキャッシュ記憶装置１０３を有する。
【００２８】
サーバ２はキャッシュを管理し検索要求から次に必要となるデータを予測するキャッシュ管理装置２０１と、アクセス頻度を記録するアクセス頻度記憶装置２０２と、データを格納するデータベース２０３を有する。
【００２９】
これらの装置が有する機能を以下に述べる。
【００３０】
クライアント端末１のアプリケーション１０１は、クライアント端末１の利用者からの操作を受け付ける。また、データが必要な場合はクライアント側のキャッシュ管理装置１０２にデータ検索要求を出す。検索要求にはどのデータが必要かを示す検索条件式もしくはＩＤが含まれる。検索結果として受け取ったデータは画面に表示される。その他、個々のアプリケーションはアプリケーション毎に独自の機能を持つ。
【００３１】
クライアント側キャッシュ管理装置１０２は、クライアント端末１のアプリケーション１０１からの検索要求を処理する。具体的には検索要求を受け取ると、クライアント側キャッシュ管理装置１０２はキャッシュ記憶装置１０３に対し検索要求に含まれる検索条件式またはＩＤを用い、検索要求に該当するデータがあるかキャッシュ記憶装置１０３内を検索する。検索の結果、キャッシュ記憶装置１０３内にデータがある場合は、そのデータを検索結果として検索要求元のアプリケーション１０１に返す。検索要求に該当するデータがキャッシュ記憶装置１０３に無い場合はサーバ２のサーバ側事前予測キャッシュ管理装置２０１に検索要求を送信する。サーバへの検索要求の結果として得たデータはアプリケーション１０１に返す。また、サーバ２からは事前予測によりアクセス頻度が高くキャッシュすべきであると判断されたデータも送られる。クライアント側キャッシュ管理装置１０２は、これら事前予測に基づき送られてきたデータをキャッシュ記憶装置１０３に挿入する。
【００３２】
クライアント側キャッシュ記憶装置１０３はクライアント側キャッシュ管理装置がサーバ２から受信したデータを格納する。キャッシュ記憶装置にはＬＲＵ(Least Recently Used)、ハッシュ、リスト構造、Ｂ木、といったデータ管理構造を用いてデータを管理する。また、キャッシュ記憶装置１０３はクライアント側キャッシュ管理装置１０２からの検索を処理する。検索は与えられた検索条件式またはＩＤと一致するデータをキャッシュ記憶装置から検索することにより行われる。
【００３３】
サーバ側事前予測キャッシュ管理装置２０１はクライアント側キャッシュ管理装置１０２から送られる検索要求を処理し検索結果を返す。この検索は検索要求に含まれている検索条件式を用いデータベース２０３を検索し、該当するデータをクライアント側キャッシュ管理装置１０２に送信する。また、クライアントのデータへのアクセス履歴から、利用者が次に必要となるアクセス頻度の高いデータをデータベースから検索し、その結果を事前キャッシュすべきデータとしてクライアント端末１に送信する。
【００３４】
アクセス頻度記憶装置２０３にはデータへのアクセス頻度に関しての情報が記録されている。具体的にはある一定の期間内にデータに何回アクセスしたかということを記録しておく。この記録はサーバ側事前予測キャッシュ管理装置２０１により更新、参照される。
【００３５】
データベースにはデータの実体が格納されている。
【００３６】
なお、本実施形態では、データベースにＲＤＢＭＳ（Relational DataBase Management System）を用いている。この点、ＲＤＢＭＳ以外の、他のデータベース管理システムを採用してもよい。
次に、図４のフローチャートを参照して本実施形態の全体の動作について詳細に説明する。
【００３７】
まず、クライアント端末１のアプリケーション１０１で何らかの理由（利用者の操作要求、アプリケーションの開始）でレコード（データ）が必要になる（図４のステップＳ１）。
【００３８】
データが必要になると、アプリケーションはクライアント側のキャッシュ管理装置１０２にレコードを要求するための検索要求を出す（ステップＳ２）。検索要求を受けたキャッシュ管理装置１０２は検索要求の検索条件式をもとに、キャッシュ記憶装置１０３を検索する（ステップＳ３）。
【００３９】
キャッシュ記憶装置１０３内にレコードが存在すれば、そのレコードを検索結果としてアプリケーション１０１に返す（ステップＳ５）。このとき、レコードにアクセスした旨をサーバ２に通知する（ステップＳ６）。
【００４０】
一方、キャッシュ記憶装置１０３内にレコードがない場合は検索要求をサーバ２に送信する（ステップＳ１０）。
【００４１】
検索要求を受け取ったサーバ側事前予測キャッシュ管理装置２０１は、検索要求の検索条件式を用いてデータベース２０３を検索する（ステップＳ１１）。データベース２０３内に検索結果がなければ該当するレコードがない旨をクライアント端末１に通知し、通知を受けたクライアント端末１は、アプリケーション１０１に通知する（ステップＳ１４，Ｓ１５）。データベース２０３内に検索条件に該当するレコードがあった場合は、該当するレコードをクライアント端末１に送信する（ステップＳ１３）。
【００４２】
サーバ側のデータベース２０３をクライアントからの要求により検索し該当するレコードを見つけた場合、または、サーバ２側でクライアントのキャッシュにあるレコードがアクセスされた通知を受け取った場合、サーバ側事前予測キャッシュ管理装置２０１は、アクセス頻度記憶装置２０２に対し、アクセスしたレコードのアクセス頻度情報を更新する（ステップＳ７）。また、アクセス頻度記憶装置２０２内に格納されているアクセス頻度情報を参照して、アクセス頻度の高いレコードを求める（ステップＳ８）。アクセス頻度の高いレコードは、事前にキャッシュしておくレコードとしてクライアント端末１に送信される（ステップＳ９）。
【００４３】
以下では、ステップＳ８においてアクセス頻度情報からアクセス頻度の高いレコードを求める方式について述べる。
【００４４】
図５はアクセス頻度の記録例を示したものである。本例ではテーブル名と、レコード番号と、そのレコード番号に対するアクセス回数を記録することでアクセス頻度を記憶する。アクセス回数の多い行のレコード番号のレコードが、アクセス頻度の高いレコードとなる。
【００４５】
なお、アクセス頻度の記憶方式の別の形態としてテーブル名を記述するのではなく、保存領域を分けるという方式を用いてもよい、この場合の例を図６に示す。
【００４６】
次にアクセス回数の求め方について述べる。図７はあるレコードに対するアクセス状況を表す図である。まず始めにアクセス頻度を計算する対象となる期間である、「有効期間」を求める。有効期間は後述するタイムアウト期間よりも十分大きい値とする。レコードへのアクセスのうち、現在の時点からさかのぼって有効期間内にあるレコードのアクセスのみに着目する。
【００４７】
図７の例では１から８までのアクセスが有効なアクセスとなる。なお、十分な計算資源がある場合は有効期間を無限大、すなわち有効期間を設定しなくてもよい。次に、有効なアクセスを対象として、レコードのアクセス間隔がタイムアウト期間より短いレコードがいくつあるかを現在の時点から過去に向かって数える。図７の例ではアクセス５と６の間のアクセス間隔がタイムアウト期間より長いため、アクセス１，２，３，４，５が数える対象のレコードとなりアクセス回数は５となる。
【００４８】
次に、本実施の形態の効果について説明する。
【００４９】
本実施の形態では、クライアント端末１が要求したレコードに加え、クライアント端末１のレコードへのアクセス履歴からアクセス頻度の高いレコードもサーバ２から端末１に送信する。また、サーバ２ではレコードへのアクセス頻度を記録するアクセス頻度記憶装置２０２を持ち、レコードのアクセス頻度を求める。上記構成をとるため、クライアント端末が要求したレコードとクライアント端末１が高い頻度でアクセスしたレコードもキャッシュできる。このため、アクセス頻度の高いレコードを再度読み込む場合にサーバと再度通信をする必要がないことから読込速度の向上を図ることができる。更に、クライアントとサーバの通信ができない状態になったとしても、アクセス頻度の高いレコードはキャッシュされているため参照することができる。
【実施例】
【００５０】
次に、本発明の実施形態の構成を変形したものを、実施例として説明する。
【００５１】
図８は、上述した実施形態と異なり、サーバとクライアント（端末）に分離されていないスタンドアロンでの実施例を図示したものである。本実施例においても、通信路でデータを送受信する部分を除く処理の流れは上述した実施形態と同様である。
【００５２】
また、図９はアクセス頻度記憶装置を設けずに、ログ記憶装置を用いデータのアクセスログを記録し、そのログを用いてアクセス頻度を求める実施例である。本実施例の場合でも処理の手順は先の実施例と同様である。ただし、アクセス頻度が必要な場合は、そのつどデータへのアクセスログを用いアクセス頻度の計算をする必要がある。
【００５３】
図１０はキャッシュを管理するキャッシュ管理装置と、アクセス頻度記憶装置を参照し基準時間に近いデータを予測する予測装置とが別の装置で実現される実現例である。本実現例においても処理の手順は先の実施例と同様である。
【００５４】
本発明の効果は、利用者のデータアクセス履歴からデータへのアクセス回数とデータへのアクセス間隔を取得し、これらの情報をもとにアクセス頻度の高いデータを求め、事前にキャッシュできることにある。事前にキャッシュすることで、一度もアクセスしていないデータでもアクセス頻度が高いデータならばキャッシュに挿入されるため、データの検索が高速に実行できる特徴をもつ。
【００５５】
また、アクセス頻度情報を求める際に本方式ではアクセス回数とアクセス間隔の２つの情報を用いている。このため、過去のアクセス回数が多いが、最近になりアクセス頻度が減りデータアクセス間隔が長いデータを見つけることができる。そのため、より、正確にアクセス頻度を求めることができる。
【００５６】
なお、本発明の実施形態である予測型キャッシュシステム及びシステムを構成する各装置は、ハードウェア、ソフトウェア又はこれらの組合せにより実現することができる。
【産業上の利用可能性】
【００５７】
本発明は、携帯電話から必要なデータをサーバから要求する環境において通信の待ち時間を減らすといった用途に好適である。また、端末がアクセスしたデータの中からよく使われるデータを求めるといった用途にも適用可能である。
【図面の簡単な説明】
【００５８】
【図１】従来のキャッシュ方式の形態の構成を示すブロック図である。
【図２】本発明の形態の構成を示すブロック図である。
【図３】本発明を実施するための最良の形態の構成を示すブロック図である。
【図４−ａ】本発明を実施するための最良の形態の動作を示す流れ図である。
【図４−ｂ】本発明を実施するための最良の形態の動作を示す流れ図である。
【図５】本発明を実施するためのアクセス頻度の記録方式を示す図である。
【図６】本発明を実施するためのアクセス頻度の記録方式の別の実現方式を示す図である。
【図７】本発明を実施するためのアクセス頻度の計算方式を示す図である。
【図８】本発明の別の実施の形態であるスタンドアロンでの構成を示すブロック図である。
【図９】本発明の別の実施の形態であるアクセス頻度情報が必要な際に、アクセスログからアクセス頻度を求める構成を示すブロック図である。
【図１０】本発明の別の実施の形態であるキャッシュ管理装置と事前予測装置が別の装置の場合の実施例での構成を示すブロック図である。
【符号の説明】
【００５９】
１  クライアント端末
２  サーバ
３  通信路
１１、３０１  事前予測キャッシュ管理装置
１２  キャッシュ記憶装置
１３  データ記憶装置
１４  アクセス頻度記憶装置
１０１  アプリケーション
１０２  クライアント側キャッシュ管理装置
１０３  キャッシュ記憶装置
２０１  キャッシュ管理装置
２０２  アクセス頻度記憶装置
２０３  データベース
４０１  ディスク
５０１  アクセスログ記憶装置
６０１  キャッシュ管理装置
７０１  事前予測装置
【図１】
0005272428.tif 000002
【図２】
0005272428.tif 000003
【図３】
0005272428.tif 000004
【図４−ａ】
0005272428.tif 000005
【図４−ｂ】
0005272428.tif 000006
【図５】
0005272428.tif 000007
【図６】
0005272428.tif 000008
【図７】
0005272428.tif 000009
【図８】
0005272428.tif 000010
【図９】
0005272428.tif 000011
【図１０】
0005272428.tif 000012