(57)【要約】【課題】情報処理装置のキャッシュ領域のデータをより適切に更新することを目的とする。【解決手段】データ提供装置は、データが更新されたことを示す更新情報を情報処理装置に送信し、情報処理装置は、キャッシュ領域に記憶されているデータが有効であるか否かを判定可能な判定情報と、判定情報を更新する条件を示す条件情報とをデータを識別可能な識別情報に対応付けて記憶し、更新情報を受信し、更新情報を受信した際、データが有効であるか否かを条件情報に従って判断して判定情報を更新することによって課題を解決する。【選択図】図２
2013069241.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ領域を有する情報処理装置と、前記情報処理装置からの前記キャッシュ領域に記憶するデータの取得の要求に応答して前記データを前記情報処理装置に送信するデータ提供装置と、を含んで構成されるデータ管理システムであって、
前記データ提供装置は、前記データが更新されたことを示す更新情報を前記情報処理装置に送信する送信手段を有し、
前記情報処理装置は、
前記キャッシュ領域に記憶されている前記データが有効であるか否かを判定可能な判定情報と、前記判定情報を更新する条件を示す条件情報とを前記データを識別可能な識別情報に対応付けて記憶する記憶手段と、
前記更新情報を受信する受信手段と、
前記受信手段で前記更新情報が受信された際、前記データが有効であるか否かを前記条件情報に従って判断して前記判定情報を更新する更新手段と、を有することを特徴とするデータ管理システム。
【請求項２】
前記情報処理装置は、前記条件情報の入力を受付ける受付手段を更に有することを特徴とする請求項１記載のデータ管理システム。
【請求項３】
前記情報処理装置は、前記データを要求する要求手段を更に有し、
前記判定情報および前記条件情報は、前記要求手段を識別可能な識別情報に更に対応付けられて記憶されていることを特徴とする請求項１記載のデータ管理システム。
【請求項４】
前記情報処理装置は、前記更新手段により前記データが有効であると判断された場合、前記更新情報の送信が必要であることを示す必要情報を前記データ提供装置に送信し、前記更新手段により前記データが無効であると判断された場合、前記更新情報の送信が不要であることを示す不要情報を前記データ提供装置に送信する送信手段を更に有することを特徴とする請求項１記載のデータ管理システム。
【請求項５】
前記データ提供装置は、前記必要情報および前記不要情報を受信する受信手段を更に有し、前記受信手段で受信された情報と前記更新情報の送信先を示す送信先情報とを前記データを識別可能な識別情報に対応付けて有することを特徴とする請求項４記載のデータ管理システム。
【請求項６】
前記データ提供装置の送信手段は、前記受信手段で受信された前記情報に従って前記更新情報を前記情報処理装置に送信することを特徴とする請求項５記載のデータ管理システム。
【請求項７】
前記条件情報は、前記更新手段で更新が許容される回数を示す回数情報であり、
前記更新手段は、前記更新情報が受信された回数と前記回数情報の回数とから前記データが有効であるか否かを判断することを特徴とする請求項１記載のデータ管理システム。
【請求項８】
前記条件情報は、前記更新手段で更新が許容される時間を示す時間情報であり、
前記更新手段は、前記更新情報が受信された時間と前記時間情報の時間とから前記データが有効であるか否かを判断することを特徴とする請求項１記載のデータ管理システム。
【請求項９】
前記条件情報は、前記キャッシュ領域の使用が許容される使用量に係る使用情報であり、
前記更新手段は、前記更新情報が受信された際に、前記キャッシュ領域の使用量と前記使用情報の使用量とから前記データが有効であるか否かを判断することを特徴とする請求項１記載のデータ管理システム。
【請求項１０】
前記条件情報は、前記情報処理装置の中央演算装置の使用が許容される使用量に係る使用情報であり、
前記更新手段は、前記更新情報が受信された際に、前記中央演算装置の使用量と前記使用情報の使用量とから前記データが有効であるか否かを判断することを特徴とする請求項１記載のデータ管理システム。
【請求項１１】
前記条件情報は、前記情報処理装置と前記データ提供装置とを接続する接続媒体の使用が許容される使用量に係る使用情報であり、
前記更新手段は、前記更新情報が受信された際に、前記接続媒体の使用量と前記使用情報の使用量とから前記データが有効であるか否かを判断することを特徴とする請求項１記載のデータ管理システム。
【請求項１２】
前記条件情報は、前記更新手段で更新が許容される回数を示す回数情報、前記更新手段で更新が許容される時間を示す時間情報、前記キャッシュ領域の使用が許容される使用量に係る使用情報、前記情報処理装置の中央演算装置の使用が許容される使用量に係る使用情報、及び前記情報処理装置と前記データ提供装置とを接続する接続媒体の使用が許容される使用量に係る使用情報のうちの複数の情報であり、
前記更新手段は、前記複数の情報から前記データが有効であるか否かを判断することを特徴とする請求項１記載のデータ管理システム。
【請求項１３】
データを提供するデータ提供装置と通信可能に接続され、前記データを記憶するキャッシュ領域を有する情報処理装置であって、
前記キャッシュ領域に記憶されている前記データが有効であるか否かを判定可能な判定情報と、前記判定情報を更新する条件を示す条件情報とを前記データを識別可能な識別情報に対応付けて記憶する記憶手段と、
前記データが更新されたことを示す更新情報を前記データ提供装置から受信する受信手段と、
前記受信手段で前記更新情報が受信された際、前記データが有効であるか否かを前記条件情報に従って判断して前記判定情報を更新する更新手段と、を有することを特徴とする情報処理装置。
【請求項１４】
キャッシュ領域と、前記キャッシュ領域に記憶されているデータが有効であるか否かを判定可能な判定情報と前記判定情報を更新する条件を示す条件情報とを前記データを識別可能な識別情報に対応付けて記憶する記憶手段と、を有する情報処理装置、及び前記情報処理装置からの前記データの取得の要求に応答して前記データを前記情報処理装置に送信するデータ提供装置を含んで構成されるデータ管理システムにおけるデータ管理方法であって、
前記データ提供装置が、前記データが更新されたことを示す更新情報を前記情報処理装置に送信する送信工程と、
前記情報処理装置が、前記更新情報を受信する受信工程と、
前記情報処理装置が、前記受信工程で前記更新情報が受信された際、前記データが有効であるか否かを前記条件情報に従って判断して前記判定情報を更新する更新工程と、を有することを特徴とするデータ管理方法。
【請求項１５】
データを提供するデータ提供装置と通信可能に接続され、前記データを記憶するキャッシュ領域と、前記キャッシュ領域に記憶されている前記データが有効であるか否かを判定可能な判定情報と前記判定情報を更新する条件を示す条件情報とを前記データを識別可能な識別情報に対応付けて記憶する記憶手段と、を有する情報処理装置におけるデータ管理方法であって、
前記データが更新されたことを示す更新情報を前記データ提供装置から受信する受信工程と、
前記受信工程で前記更新情報が受信された際、前記データが有効であるか否かを前記条件情報に従って判断して前記判定情報を更新する更新工程と、を有することを特徴とするデータ管理方法。
【請求項１６】
データを提供するデータ提供装置と通信可能に接続され、前記データを記憶するキャッシュ領域と、前記キャッシュ領域に記憶されている前記データが有効であるか否かを判定可能な判定情報と前記判定情報を更新する条件を示す条件情報とを前記データを識別可能な識別情報に対応付けて記憶する記憶手段と、を有するコンピュータに、
前記データが更新されたことを示す更新情報を前記データ提供装置から受信する受信工程と、
前記受信工程で前記更新情報が受信された際、前記データが有効であるか否かを前記条件情報に従って判断して前記判定情報を更新する更新工程と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理システム、データ管理方法、及びプログラムに関する。また、本発明は、例えば、クライアント装置（以下、クライアント）が、ネットワーク経由でサーバ装置（以下、サーバ）から取得したデータを保持し、ユーザやシステムにとって有効な当該データの更新を行う技術に関する。
【背景技術】
【０００２】
ネットワークを介してクライアントがサーバ上のデータを取得する場合、ネットワークの負荷の軽減、データを取得するための応答性を上げるための機構（キャッシュ）をクライアント内に設けることが、従来から一般的に行われている。なお、キャッシュについては、実装するシステムに応じて、ハードウェアの形態、又はソフトウェアの形態となる。また、キャッシュとは、狭義には、クライアント内に複製されたデータのことである。
また、キャッシュのもつ情報の最新性を保つために、キャッシュと、その元となるサーバ上のデータとを常に同期させる方法が行われる。より具体的には、サーバ上のデータが更新されると、サーバは、そのデータを取得したクライアントへ更新が発生したこと（更新発生）を知らせる。それに伴いクライアントは、一般的に次のような動作でキャッシュとサーバ上のデータとの同期をとる。
クライアントは、更新発生の通知を受信する度に、最新のデータをサーバより取得してキャッシュを更新する。或いは、クライアントは、更新発生の通知を受信すると、キャッシュを無効とし、次回、例えば、クライアント内のアプリケーションからデータの取得の要求がきたときに、サーバ上のデータを取得し、その際に改めてキャッシュを設ける。
【０００３】
しかしながら、近年、ネットワークを経由して、個々のユーザが「ツイート」と称される短文を投稿し、双方のアプリケーション間で閲覧できるコミュニケーションツールが登場している。また、ＲＳＳ（ＲＤＦ Ｓｉｔｅ Ｓｕｍｍａｒｙ）機能を提供したＳＮＳ（Ｓｏｃｉａｌ Ｎｅｔｗｏｒｋ Ｓｅｒｖｉｃｅ）の閲覧などができるコミュニケーションツールも登場している。このようなコミュニケーションツールを利用可能にするために、膨大な種類のデータが頻繁にクライアントに配信される環境が整ってきている。
それに伴い、そのような環境から配信されるデータを利用するアプリケーションも増えている。そのようなアプリケーションを動作させるクライアントにおいては、従来のように全てのキャッシュをサーバ上のデータと常に同期させることは、データの送受信によるネットワークの負荷やキャッシュの更新処理によるクライアント内のリソースの負荷が大きくなる。これらが原因となり、クライアントのパフォーマンスの低下を生じさせることになる。
【０００４】
そこで、キャッシュの更新処理に伴うリソースの負荷を軽減させる技術が開示されている（特許文献１参照）。
特許文献１の技術では、データと対にしてキャッシュの置き換え条件や更新条件を含む更新ルールをサーバ内に格納しておき、サーバは、データと共に更新ルールをクライアントへ転送する。そして、クライアントでは、サーバより取得した更新ルールに基づいてキャッシュの更新処理を行う。
上述の構成によれば、データ毎に更新ルールが定義されるので、例えば、適宜更新する重要性の低いデータに関しては予め更新処理を削減させるように設定できる。その結果、リソースの負荷を軽減することが可能である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−３０１８２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術では、データを取得した全てのクライアントが、サーバ上でデータ毎に設定された更新ルールに従いキャッシュの更新を行う。つまり、あるデータに対する更新処理は、全てのクライアントにおいて共通のアルゴリズムで動作し、データの種類に応じて、全てのクライアントでデータに対して同じ利用のされ方が行われる場合は効果的である。
しかしながら、利用のされ方が必ずしも同じであるとは限らない。即ち、サーバのデータを利用するクライアント数の増加と共に、ユーザのデータの利用方法も様々となる。例えば、コミュニケーションツールを利用するユーザは、チャット形式のように必ずリアルタイムに最新情報を取得したいユーザとは限らず、自らの書き込み等のローカル処理や過去の情報の閲覧などを優先させたいユーザもいる。
また、データを処理するクライアントの処理スペック等のリソースも限られているため、リソースの状態に応じて、同じデータであっても処理の優先度が変わってくる。
【０００７】
このように、特許文献１の技術では、データの種類に応じた更新処理は行えても、クライアントを利用するユーザの意図をくみとった利用方法やクライアントのリソースの状況を加味した更新処理は行えない。例えば、サーバ上で全て、データ毎、クライアント毎に独自の更新ルールを管理する方法も考えられるが、データの種類やクライアントの数が膨大する実状を踏まえると、非現実的である。
【０００８】
本発明はこのような問題点に鑑みなされたもので、情報処理装置のキャッシュ領域のデータをより適切に更新することを目的とする。
【課題を解決するための手段】
【０００９】
そこで、本発明に係るデータ管理システムは、キャッシュ領域を有する情報処理装置と、前記情報処理装置からの前記キャッシュ領域に記憶するデータの取得の要求に応答して前記データを前記情報処理装置に送信するデータ提供装置と、を含んで構成されるデータ管理システムであって、前記データ提供装置は、前記データが更新されたことを示す更新情報を前記情報処理装置に送信する送信手段を有し、前記情報処理装置は、前記キャッシュ領域に記憶されている前記データが有効であるか否かを判定可能な判定情報と、前記判定情報を更新する条件を示す条件情報とを前記データを識別可能な識別情報に対応付けて記憶する記憶手段と、前記更新情報を受信する受信手段と、前記受信手段で前記更新情報が受信された際、前記データが有効であるか否かを前記条件情報に従って判断して前記判定情報を更新する更新手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、情報処理装置のキャッシュ領域のデータをより適切に更新することができる。
【図面の簡単な説明】
【００１１】
【図１】キャッシュ更新システムのハードウェアの構成の一例を示す図である。
【図２】キャッシュ更新システムのモジュールの一例を示す図である。
【図３】データ取得手順に係るフローチャートの一例を示す図である。
【図４】データ配信手順に係るフローチャートの一例を示す図である。
【図５】データアクセス管理テーブルの一例を示す図である。
【図６】キャッシュ更新条件を設定する設定画面の一例を示す図である。
【図７】キャッシュテーブルの一例を示す図である。
【図８】更新通知情報配信制御手順に係るフローチャートの一例を示す図である。
【図９】更新通知情報受信時の制御手順に係るフローチャートの一例を示す図である。
【図１０】キャッシュ有効性判定処理手順に係るフローチャートの一例を示す図である。
【図１１】キャッシュ更新システムのモジュールの一例を示す図である。
【図１２】更新状態値更新手順に係るフローチャートの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【００１３】
＜第１の実施形態＞
図１は、本実施形態に係るキャッシュ更新システムのハードウェアの構成の一例を示す図である。キャッシュ更新システムは、データ管理システムの一例であり、クライアント１０１とサーバ１０２とを有する。クライアント１０１とサーバ１０２とは、ネットワーク１００を介して通信可能に接続されている。
ネットワーク１００としては、データを通信できる適宜の形態を採用でき、特定の形態に限定されるものではない。即ち、ネットワーク１００は、接続媒体の一例であり、インターネット、ＷＡＮ、ＬＡＮ、バス（伝送路）などである。
【００１４】
クライアント１０１は、情報処理装置（コンピュータ）の一例であり、制御デバイス１０３、記憶デバイス１０４、通信デバイス１０５、入力デバイス１０６、及び表示デバイス１０７を有する。なお、各デバイスは、バスなどを介して接続されている。制御デバイス１０３は、ＣＰＵ、ＭＰＵなどの中央演算装置の一例であり、クライアント１０１における各デバイスを制御する。記憶デバイス１０４は、クライアント１０１における各デバイスで一時的に記憶する作業領域やデータの格納場所となる記憶領域である。
通信デバイス１０５は、ネットワーク１００を使用して通信するためのインタフェースを含み、サーバ１０２との通信を制御する。入力デバイス１０６は、ユーザからの入力を受付けるための入力装置であり、マウス、キーボード、タブレット端末に用いるスタイラスペン等である。表示デバイス１０７は、クライアント１０１の処理結果を表示するための出力装置であり、ディスプレイ装置、機器に組み込まれたディスプレイパネル等である。
【００１５】
サーバ１０２は、データ提供装置（コンピュータ）の一例であり、制御デバイス１０８、記憶デバイス１０９、及び通信デバイス１１０を有する。なお、各デバイスは、バスなどを介して接続されている。制御デバイス１０８は、サーバ１０２における各デバイスを制御する。
記憶デバイス１０９は、サーバ１０２における各デバイスで一時的に記憶する作業領域やデータの格納場所となる記憶領域である。通信デバイス１１０は、ネットワーク１００を使用して通信するためのインタフェースを含み、クライアント１０１との通信を制御する。
【００１６】
図２は、本キャッシュ更新システムのモジュールの一例（処理部）を示す図である。
まず、クライアント１０１の処理部について説明する。本実施形態では、制御デバイス１０３が、記憶デバイス１０４に格納されたプログラムの手順に従って処理を行うことによって、クライアント１０１（処理部）における機能及び後述するフローチャートに係る処理が実現される。なお、クライアント１０１（処理部）における機能、後述するフローチャートに係る処理の一部、又は全部を専用のハードウェアを用いて構成してもよい。
アプリケーション２０１は、主にサーバ１０２上のデータを利用するアプリケーションである。なお、図示は省略するが、クライアント１０１には、アプリケーション２０１を含む複数のアプリケーションが設けられている。キャッシュ制御部２０２は、アプリケーション２０１からのデータの取得の要求（データ取得要求）に応答したり、サーバ１０２にデータを要求したり、クライアント１０１内の各処理部の制御を行う。
記憶部２０３は、キャッシュ制御部２０２がサーバ１０２に要求して取得したデータや関連する情報を記憶する記憶領域（キャッシュ領域等）に関する役割を担う。キャッシュ更新条件設定部２０４は、キャッシュ（狭義には、記憶領域に記憶されているサーバ１０２から取得されたデータ）に対する更新条件（以下、キャッシュ更新条件）を設定する。より具体的には、キャッシュ更新条件設定部２０４は、アプリケーション毎に入力を受付ける設定画面やＸＭＬ形式等の文書ファイルからの設定値からキャッシュ更新条件を決定する。
【００１７】
キャッシュ状態情報管理部２０５は、キャッシュに関連する情報をキャッシュと対応付けてキャッシュテーブルとして管理する。キャッシュ有効性判定部２０６は、サーバ１０２より通知された更新通知情報（データが更新されたことを示す更新情報の一例）を取得した結果、対象のキャッシュが有効であるか無効であるかを判定する。
ここでいう有効とは、キャッシュを利用するアプリケーション２０１よりデータ取得要求があった際にキャッシュを使わせることを意味し、また無効とはキャッシュを使わせずサーバ１０２からデータを取得させることを意味する。
更新通知要求制御部２０７は、キャッシュ有効性判定部２０６の判定結果に基づき、再度、サーバ１０２に更新通知情報を要求するか否かの情報（更新通知要求情報）の送信を更新通知要求情報送信部２０８に依頼するように制御する。更新通知要求情報送信部２０８は、更新通知要求制御部２０７からの依頼によりサーバ１０２へ更新通知要求情報を送信する。更新通知情報受信部２０９は、サーバ１０２より通知された更新通知情報を受信する。
【００１８】
続いてサーバ１０２の処理部について説明する。本実施形態では、制御デバイス１０８が、記憶デバイス１０９に格納されたプログラムの手順に従って処理を行うことによって、サーバ１０２（処理部）における機能及び後述するフローチャートに係る処理が実現される。なお、サーバ１０２（処理部）における機能、後述するフローチャートに係る処理の一部、又は全部を専用のハードウェアを用いて構成してもよい。
更新通知要求情報受信部２１０は、更新通知要求情報送信部２０８より送信された更新通知要求情報を受信する。データ取得情報管理部２１１は、クライアント１０１に送信したデータに関連する情報（更新通知情報が必要であるか否かの情報等）を当該データと対応付けてデータアクセス管理テーブルとして管理する。
【００１９】
記憶部２１２は、サーバ１０２上で使用するデータや関連する情報を記憶する記憶領域に関する役割を担う。データ更新検知部２１３は、データアクセス管理テーブルで管理されているデータに対し、サーバ１０２内及びネットワーク１００で接続された外部のシステムにあるデータの更新の発生を検知する。検知するための手法については本実施形態では問わないが、例えば、データアクセス管理テーブルのデータの更新が無いかを監視する監視部等を有してデータの更新を検知することが考えられる。
更新通知情報配信制御部２１４は、データ更新検知部２１３からのデータの更新の通知を受け、データアクセス管理テーブルの情報を参照し、どのクライアントへ更新通知情報を配信するかを制御する。更新通知情報送信部２１５は、更新通知情報配信制御部２１４からの依頼により更新通知情報を必要とするクライアント（更新通知情報受信部２０９）に送信する。
【００２０】
図３は、アプリケーション２０１がキャッシュ制御部２０２を介してデータを取得する処理（データ取得手順）に係るフローチャートの一例を示す図である。以下に示すように、アプリケーション２０１は、データを取得する。
まず、キャッシュ制御部２０２は、アプリケーション２０１よりデータ取得要求を受ける（Ｓ１０１）。続いて、キャッシュ制御部２０２は、キャッシュ状態情報管理部２０５に依頼し、キャッシュテーブルを読み出す（Ｓ１０２）。
続いて、キャッシュ制御部２０２は、キャッシュテーブルより、要求されたデータに該当するキャッシュが存在するかを調べる（Ｓ１０３）。このとき、キャッシュ制御部２０２は、キャッシュが存在すると判断した場合、Ｓ１０４に処理を移し、他方、キャッシュが存在しないと判断した場合、Ｓ１０６に処理を移す。
【００２１】
Ｓ１０４では、キャッシュ制御部２０２は、キャッシュが有効であるか否かを調べる。このとき、キャッシュ制御部２０２は、キャッシュが有効であると判断した場合、Ｓ１０５に処理を移し、他方、キャッシュが無効であると判断した場合、Ｓ１０６に処理を移す。
Ｓ１０５では、キャッシュ制御部２０２は、記憶部２０３を介して記憶領域（キャッシュ領域の一例であるキャッシュメモリ）から要求されたデータを読み出す。
他方、Ｓ１０３においてキャッシュが存在しないと判断した場合、又はＳ１０４においてキャッシュが有効でないと判断した場合、キャッシュ制御部２０２は、サーバ１０２にデータの取得を要求する（Ｓ１０６）。続いて、キャッシュ制御部２０２は、サーバ１０２より要求したデータを取得する（Ｓ１０７）。続いて、キャッシュ制御部２０２は、取得したデータについては記憶部２０３を介してキャッシュとして記憶領域に記憶すると共に、キャッシュ状態情報管理部２０５を介してキャッシュテーブルを更新する（Ｓ１０８）。
そして、Ｓ１０５或いはＳ１０８の処理を経て、キャッシュ制御部２０２は、アプリケーション２０１に要求されたデータを返す（Ｓ１０９）。
【００２２】
図４は、サーバ１０２がデータを配信する処理（データ配信手順）に係るフローチャートの一例を示す図である。以下に示すように、サーバ１０２は、クライアント１０１から要求されたデータを配信する。
まず、サーバ１０２は、クライアント１０１よりデータの取得の要求を受信する（Ｓ２０１）。続いて、サーバ１０２は、要求されたデータが存在する場所、即ち、サーバ１０２内又はネットワーク１００で接続された外部のシステムより、要求された該当するデータを取得する（Ｓ２０２）。
続いて、データ取得情報管理部２１１は、データアクセス管理テーブルを更新する（Ｓ２０３）。より具体的には、データ取得情報管理部２１１は、データを示す情報と共に、取得したクライアント１０１の情報等を管理する。なお、データアクセス管理テーブルの一例については図５に示す。続いて、サーバ１０２は、クライアント１０１（キャッシュ制御部２０２）から要求されたデータをクライアント１０１に配信する（Ｓ２０４）。
【００２３】
図５は、データアクセス管理テーブルの一例（データアクセス管理テーブル３００）を示す図である。なお、データアクセス管理テーブル３００は、サーバ１０２の記憶デバイス１０９に記憶されている。
また、データアクセス管理テーブル３００についてはレコード３０１を例に挙げて説明する。ここで、レコード３０１は、図４のフローチャートにおいて、クライアント１０１からデータＡの取得の要求があり、Ｓ２０３で更新されたレコード（データアクセス管理テーブル３００の状態）を示す。
【００２４】
データアクセス管理テーブル３００では、データ識別子、クライアント識別子、更新通知必要性、更新通知情報送信先等の情報が管理されている。データ識別子とは、データＡであることを識別する一意な識別子（データを識別可能な識別情報の一例）である。クライアント識別子は、データＡを取得したクライアントを識別する一意な識別子（識別情報の一例）である。
更新通知必要性は、データＡを取得したクライアントに更新通知情報の送信が必要であるか否かを示す情報（送信要否情報）である。更新通知情報送信先は、更新通知情報を送信する宛先（送信先情報の一例）である。宛先をクライアント１０１がサーバ１０２へ知らせる方法としては、適宜の方法を採用してよいが、例えば、クライアント１０１がサーバ１０２にデータの取得の要求を出した際に、更新通知情報の受信先のエンドポイントを付属情報として送信する等が考えられる。
【００２５】
図６（Ａ）は、キャッシュ更新条件を設定する設定画面の一例（キャッシュ更新条件設定画面４００）を示す図である。なお、キャッシュ更新条件設定画面４００は、クライアント１０１の表示デバイス１０７に表示される。
キャッシュ更新条件設定画面４００は、キャッシュ更新条件についてユーザが各設定項目の設定値を指定、入力など（設定）する画面である。キャッシュ更新条件設定画面４００で設定する対象範囲は、クライアント毎、アプリ毎、ユーザ毎でもよい。本実施形態では、あるデータに対してアプリ毎でキャッシュ更新条件を設定するものとして説明する。
【００２６】
キャッシュ更新条件設定画面４００では、キャッシュ有効性判定部２０６でキャッシュの有効性を判定する際に用いる指標（以下、更新条件指標）と、その指標の観点でキャッシュを有効とするための条件（以下、更新条件閾値）とが設定される。
更新条件指標には、静的指標と動的指標とがある。静的指標とは、キャッシュの有効性を判定する際、図７に示すようなキャッシュテーブルの情報からキャッシュの有効性を判定するような指標である。一方、動的指標とは、キャッシュテーブルの情報だけでなく、経時変化する後述のシステム状態値も加味してキャッシュの有効性を決めるような指標である。なお、動的指標の適用については図６（Ｂ）等を用いて第２の実施形態で説明する。
【００２７】
本実施形態では、静的指標の中で、更新通知受信回数（更新が許容される回数を示す回数情報の一例）を３回に設定した場合を例に挙げて説明する。
また、静的指標の例として、他には、更新通知受信日時（更新が許容される時間を示す時間情報の一例）がある。更新通知受信日時で設定された情報は、例えば更新通知情報を受けてもキャッシュを有効としたい期間（時間）を示す。例えば、更新通知受信日時を設定することで、予め指定した期間についてはキャッシュの更新処理を制限できるので、当該期間においてキャッシュの更新処理以外で優先的にリソースを使いたい場合に有効である。
【００２８】
図７は、キャッシュテーブルの一例（キャッシュテーブル５００）を示す図である。なお、キャッシュテーブル５００は、クライアント１０１の記憶デバイス１０４に記憶されている。
また、キャッシュテーブル５００についてはレコード５０１を例に挙げて説明する。ここで、レコード５０１は、図３のＳ１０８の処理において、クライアント１０１内のアプリケーション２０１（アプリ２０１）が、データＡをサーバから取得した後に更新されたレコード（キャッシュテーブル５００の状態）を示す。なお、アプリケーション２０１は、クライアント１０１に設けられている１つのアプリケーションである。
【００２９】
キャッシュテーブル５００には、データ識別子、アプリ識別子、キャッシュの有効性、更新条件指標、更新条件閾値、更新状態値等の情報が管理されている。データ識別子は、データＡを識別する一意な識別子（データを識別可能な識別情報の一例）である。アプリ識別子は、データＡの取得の要求をしたアプリケーション２０１を識別する識別子（識別情報の一例）である。キャッシュの有効性は、アプリケーション２０１に対して、データＡのキャッシュを使うことを有効とするか否かを示す情報（データが有効であるか否かを判定可能な判定情報の一例）である。
更新条件指標は、キャッシュ更新条件設定部２０４で設定されたキャッシュ更新条件を決める指標である。更新条件閾値は、指標に対する前述した更新条件閾値、即ちキャッシュの有効性を更新する条件の閾値（判定情報を更新する条件を示す条件情報の一例）である。ここでは、更新受信回数として３回と設定されている。更新状態値は、指標に対する現時点の状態値である。ここでは、サーバ１０２よりデータを取得した直後であるので、初期値として０回が格納されている。
【００３０】
図８は、サーバ１０２が更新通知情報の配信を制御する処理（更新通知情報配信制御手順）に係るフローチャートの一例を示す図である。以下に示すように、更新通知情報配信制御部２１４は、更新通知情報をクライアント１０１に配信する。
まず、更新通知情報配信制御部２１４は、データ更新検知部２１３よりデータの更新の通知（通知情報）を受信する（Ｓ３０１）。続いて、更新通知情報配信制御部２１４は、データ取得情報管理部２１１で管理されているデータアクセス管理テーブル３００を読み出す（Ｓ３０２）。
【００３１】
続いて、更新通知情報配信制御部２１４は、データ識別子を基に更新があったデータを特定し、更新通知情報を必要とするクライアントがあるかどうかを調べる（Ｓ３０３）。このとき、更新通知情報配信制御部２１４は、該当するクライアントがあると判断した場合、Ｓ３０４に処理を移し、他方、該当するクライアントがないと判断した場合、処理を終了する。
Ｓ３０４では、更新通知情報配信制御部２１４は、更新通知情報送信部２１５に依頼し、該当するクライアントに更新通知情報を配信する。なお、データアクセス管理テーブル３００の例では、データＡが更新されたときデータＡに対して更新通知情報が必要なクライアントはクライアント１０１であるので、更新通知情報配信制御部２１４は、クライアント１０１に更新通知情報を配信するように制御する。また、更新通知情報には、クライアント１０１で必要となる各種の情報（データ識別子の情報等）が含まれている。
【００３２】
図９は、更新通知情報を受信した後のクライアント１０１における処理（更新通知情報受信時の制御手順）に係るフローチャートの一例を示す図である。
まず、更新通知情報受信部２０９は、サーバ１０２の更新通知情報送信部２１５より更新通知情報を受信する（Ｓ４０１）。続いて、キャッシュ有効性判定部２０６は、更新通知情報受信部２０９より更新通知情報を受信し、キャッシュ有効性判定処理を行う（Ｓ４０２）。Ｓ４０２において、キャッシュ有効性判定部２０６は、キャッシュを有効とするか否かを判定するが、その詳細については図１０を用いて説明する。
続いて、更新通知要求制御部２０７は、キャッシュ状態情報管理部２０５を介してキャッシュテーブルを読み出す（Ｓ４０３）。続いて、更新通知要求制御部２０７は、キャッシュテーブルを参照し、キャッシュが有効であるかを調べる（Ｓ４０４）。このとき、更新通知要求制御部２０７は、キャッシュが有効であると判断した場合、Ｓ４０５に処理を移し、他方、キャッシュが無効であると判断した場合、Ｓ４０６に処理を移す。
【００３３】
Ｓ４０５では、更新通知要求制御部２０７は、再びデータの更新があった際に更新通知情報が必要であることを示す情報（必要情報の一例）をサーバ１０２へ送信するように更新通知要求情報送信部２０８に依頼してサーバ１０２に送信する。
Ｓ４０６では、更新通知要求制御部２０７は、これ以上更新通知情報は不要であることを示す情報（不要情報の一例）をサーバ１０２へ送信するように更新通知要求情報送信部２０８に依頼してサーバ１０２に送信する。なお、Ｓ４０５或いはＳ４０６の処理において送信される情報には、サーバ１０２で必要となる各種の情報（データ識別子の情報等）が含まれている。
また、Ｓ４０５或いはＳ４０６の処理において送信された情報は、サーバ１０２の更新通知要求情報受信部２１０で受信され、データ取得情報管理部２１１は、必要に応じてデータアクセス管理テーブル３００の情報を更新する。即ち、更新通知情報配信制御部２１４は、Ｓ４０５に対する処理に関してはクライアント１０１への更新通知情報の配信を継続するように各処理部を制御する。一方、更新通知情報配信制御部２１４は、Ｓ４０６に対する処理に関してはクライアント１０１への更新通知情報の配信を終了するように各処理部を制御する。
【００３４】
図１０は、キャッシュの有効性を判定する処理（キャッシュ有効性判定処理手順）に係るフローチャートの一例を示す図である。図９のＳ４０２に示すキャッシュ有効性判定処理の詳細である。
まず、キャッシュ有効性判定部２０６は、キャッシュ状態情報管理部２０５で管理されているキャッシュテーブル５００を読み出す（Ｓ５０１）。続いて、キャッシュ有効性判定部２０６は、更新通知情報が示すデータ識別子がキャッシュテーブル５００に存在するか否か、換言するならば更新通知情報に含まれるデータ識別子のデータがキャッシュとして存在するかどうかを調べる（Ｓ５０２）。
このとき、キャッシュ有効性判定部２０６は、該当するデータ識別子が存在すると判断した場合、Ｓ５０３に処理を移し、他方、該当するデータ識別子が存在しないと判断した場合、処理を終了する。
【００３５】
Ｓ５０３では、キャッシュ有効性判定部２０６は、キャッシュ更新条件が設定されているか否かを調べる。Ｓ５０３において、キャッシュ有効性判定部２０６は、キャッシュ更新条件が設定されているか否かは、更新条件指標が設定されているか否か等で調べる。このとき、キャッシュ有効性判定部２０６は、キャッシュ更新条件が設定されていると判断した場合、Ｓ５０４に処理を移し、他方、キャッシュ更新条件が設定されていないと判断した場合、Ｓ５０６に処理を移す。図７に示すキャッシュテーブル５００の場合、更新条件指標が「回数」として設定されているので、Ｓ５０３の結果、Ｓ５０４に処理が移される。
Ｓ５０４では、キャッシュ有効性判定部２０６は、現在の更新状態に関する値である更新状態値を取得し、更新通知情報を受信した結果を踏まえて更新する。例えば、キャッシュテーブル５００においては、更新通知情報を受信したことにより、キャッシュ有効性判定部２０６は、キャッシュ状態情報管理部２０５を介して更新状態値を０回から１回に情報を更新する。
【００３６】
続いて、キャッシュ有効性判定部２０６は、更新状態値が更新条件閾値内であるかを調べる（Ｓ５０５）。このとき、更新状態値が更新条件閾値内であると判断した場合、処理を終了し、他方、更新状態値が更新条件閾値内でないと判断した場合、Ｓ５０６に処理を移す。図７に示すキャッシュテーブル５００の例では、更新状態値が１回であり、更新条件閾値が３回であるので、更新状態値は更新条件閾値を満たし、そのまま処理が終了する。即ち、キャッシュの有効性は「有効」のままである。
一方、Ｓ５０３においてキャッシュ更新条件が設定されていない場合、或いはＳ５０５において更新状態値が更新条件閾値に達した場合、キャッシュ有効性判定部２０６は、キャッシュの有効性が無効を示すようにキャッシュテーブル５００を更新する（Ｓ５０６）。例えば、図７のキャッシュテーブル５００の場合、更新状態値が３回になるまで、つまりあと２回、更新通知情報をサーバ１０２より受信した時点で、クライアント１０１で記憶するキャッシュを無効とする。
【００３７】
以上のように、クライアント１０１を利用するユーザが設定したキャッシュ更新条件の更新条件閾値を満たす間は、キャッシュ更新システムによりキャッシュを有効として保つことが可能になる。その結果、ユーザの利用形態を加味した形で、不要なキャッシュの更新処理を防ぐことが可能となる。
また、上述した実施形態によれば、クライアント毎、さらにクライアントで動作するアプリケーション毎に、ユーザの都合でキャッシュの更新処理を制御できる。つまり、サーバ上でリアルタイムに更新されるようなデータであっても、ユーザがシステムに負荷をかけてまでリアルタイムに更新する必要がないと判断した場合、キャッシュの更新を防ぐことができる。その結果、ネットワークの負荷やクライアントの処理におけるリソースの負荷を効果的に軽減することが可能となる。
【００３８】
＜第２の実施形態＞
次に、第２の実施形態について説明する。第１の実施形態では、キャッシュ更新条件の更新条件指標として静的指標（更新受信回数）を適用した例を示した。本実施形態においては、動的指標を適用した一例を示す。なお、本実施形態では、第１の実施形態の構成と同一の構成については同一の符号を用いて、その説明を適宜省略する。
図１１は、本実施形態に関するキャッシュ更新システムのモジュール（処理部）の一例を示す図であり、更新条件指標として動的指標を適用した場合の図である。
【００３９】
キャッシュ状態情報管理部２０５は、システム状態情報取得部６０１を含んで構成される。システム状態情報取得部６０１は、キャッシュ有効性判定部２０６から要求されたキャッシュの有効性の判定に必要な情報の中でキャッシュテーブルにて事前に格納できないような刻々と動的に変化する状態値を取得する。
本実施形態では、システム状態情報取得部６０１は、クライアント１０１のリソースの状態やネットワーク１００の負荷の状態を含むシステムに関する状態の状態値（システム状態値）を取得する。
【００４０】
図６（Ｂ）は、キャッシュ更新条件設定画面の一例（キャッシュ更新条件設定画面７００）を示す図である。
ここで、動的指標には、メモリ使用率、ＣＰＵ使用率、ネットワーク使用率等の指標がある。メモリ使用率は、クライアント１０１内の物理メモリ量に対して、現在使用するメモリの使用量を基に、メモリ使用率＝（メモリ使用量／物理メモリ量）×１００等で算出される。また、ＣＰＵ使用率やネットワーク使用率に関しては、メモリ使用率と同様にユーザが定義した算出方法で算出してもよいし、予め算出するための算出部をシステムに設けておき、システム状態情報取得部６０１は、算出部から取得してもよい。
本実施形態では、メモリ使用率として、優先度高という更新条件閾値を設定した場合を示す。ここで、優先度高とは、リソースの確保に対する優先度であり、メモリ使用率が低くてもリソースに負荷をかけないようにキャッシュを有効とする閾値である。本実施形態では、６０％として設定されるものとする。
【００４１】
図１２は、更新状態値を更新する処理（更新状態値更新手順）に係るフローチャートの一例を示す図である。図９のＳ４０２の処理において動的指標を用いた場合の処理の一例であり、図１０のＳ５０４等における更新状態値の更新に関する処理を示す。
まず、キャッシュ有効性判定部２０６は、キャッシュテーブル５００を読み出した後、キャッシュテーブルより動的指標の種類に基づいて、システム状態情報取得部６０１からシステム状態値を取得する（Ｓ６０１）。例えば、キャッシュ更新条件設定画面７００で設定した指標の場合、更新状態値としては、メモリ使用率（システム状態値）として動作する。
メモリ使用率の算出方法としては、図６（Ｂ）を用いて説明したが、メモリ使用率の取得する時間の範囲としては、適宜のものを採用できる。例えば、キャッシュ有効性判定部２０６から依頼されたタイミングで取得した情報をシステム状態値としてもよいし、依頼されたタイミングから少しの間監視した上でその平均値をシステム状態値としてもよい。
【００４２】
続いて、キャッシュ有効性判定部２０６は、キャッシュ状態情報管理部２０５を介して更新状態値を更新し、更新状態値が更新条件閾値内であるかを判定する（Ｓ６０２）。キャッシュ更新条件設定画面７００の例では、更新条件閾値としてはメモリ使用率６０％を示す値（使用情報の一例）が設定されているので、メモリ使用率６０％を示す値と、取得されたシステム状態値（更新状態値）、即ち現在のメモリ使用率とが比較される。
このとき、キャッシュ有効性判定部２０６は、更新状態値＜更新条件閾値であると判断した場合、処理を終了し、キャッシュを有効とする。他方、更新状態値≧更新条件閾値であると判断した場合、キャッシュの有効性を無効と更新する（Ｓ６０３）。なお、以降の流れは、第１の実施形態に記載の図９に示すＳ４０３以降と同様である。
本実施形態は、特に、システムの他の処理を優先させたい場合に有用である。クライアント１０１内の処理やネットワークの負荷を考慮することで、不要な更新処理によるシステムのパフォーマンスの低下を軽減することが可能である。
【００４３】
また、第１の実施形態及び第２の実施形態で言及した更新通知情報は、更新が発生したか否かを示すフラグのような情報として説明したが、この構成に限定されるものではない。
例えば、更新通知情報に、更新部分のデータのサイズを含めることができる場合、クライアント１０１では、「サイズＸＭＢ以内の更新であるときはキャッシュを無効化して更新処理を行う」等のキャッシュ更新条件を設定する構成を採用してもよい。
【００４４】
また、更新された差分データだけを取得する構成を採用してもよい。この場合は、ネットワーク１００の負荷やクライアント１０１の処理リソースの負荷は小さいため、なるべく最新性を保つという観点から有用である。
このように、上述の構成によれば、サーバ１０２より配信可能な更新通知情報に応じてクライアント１０１毎にキャッシュ更新条件を設定でき、その条件に応じて、キャッシュの更新処理を制御することができるという点も有用である。
【００４５】
＜その他の実施形態＞
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラム、記録媒体（記憶媒体）等としての実施態様をとることが可能である。より具体的には、複数の要素（例えば、ホストコンピュータ、インタフェース機器、撮像装置、ｗｅｂアプリケーション等）から構成されるシステムに適用してもよいし、また、一の装置に適用してもよい。
なお、第１の実施形態および第２の実施形態で示したキャッシュ更新条件については、１つを採用してもよいし、複数を組み合わせて採用してもよい。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００４６】
上述した実施形態の構成によれば、情報処理装置のキャッシュ領域のデータをより適切に更新することができる。
【００４７】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４８】
１００  ネットワーク、１０１  クライアント、１０２  サーバ
【図１】
2013069241.tif 000003
【図２】
2013069241.tif 000004
【図３】
2013069241.tif 000005
【図４】
2013069241.tif 000006
【図５】
2013069241.tif 000007
【図６】
2013069241.tif 000008
【図７】
2013069241.tif 000009
【図８】
2013069241.tif 000010
【図９】
2013069241.tif 000011
【図１０】
2013069241.tif 000012
【図１１】
2013069241.tif 000013
【図１２】
2013069241.tif 000014