(57)【要約】【課題】複数の情報資源が連動して更新される場合であっても、キャッシュを介して、最新状態である当該情報資源へアクセスすることを可能とする。【解決手段】複数の記憶領域６０−０乃至ｍに格納された情報資源の中の、第１の情報資源６００−０が更新されるのと連動して、第２の情報資源６００−１乃至ｍが更新される場合に、第１及び第２の情報資源を所定の基準に基づき検出し、記憶領域６０−０乃至ｍを示すアドレスを互いに関連付けた関連情報４１０を生成する関連検出部４１と、第１の情報資源に関する更新が発生した場合、関連情報４１０を参照することにより、第１及び第２の情報資源のコピー５１−０乃至ｍと、第１及び第２の情報資源を格納した記憶領域６０−０乃至ｍを示すアドレスと、を関連付けて記憶したキャッシュ装置５０における、第１及び第２の情報資源のコピー５１−０乃至ｍを更新する更新部４２と、を備える。【選択図】      図８
2015185086.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶領域に格納された複数の情報資源の中の、第一の情報資源が更新されるのと連動して、少なくとも１以上の第二の情報資源が更新される場合に、前記第一及び第二の情報資源を所定の基準に基づき検出し、前記第一及び第二の情報資源が格納された前記記憶領域を示すアドレスを互いに関連付けた関連情報を生成する関連検出手段と、
前記第一の情報資源に関する更新が発生した場合、前記関連情報を参照することにより、前記第一及び第二の情報資源の写しと、前記第一及び第二の情報資源を格納した前記記憶領域を示すアドレスと、を関連付けて記憶したキャッシュ装置における、前記第一及び前記第二の情報資源の写しを更新する更新手段と、
を備える、キャッシュ更新制御装置。
【請求項２】
前記更新手段は、前記第一の情報資源に関する更新が発生した場合、前記第二の情報資源の写しを更新せずに削除する、
請求項１に記載のキャッシュ更新制御装置。
【請求項３】
前記関連検出手段は、階層構造を備える前記複数の記憶領域の中の、前記第一の情報資源が格納された第一の記憶領域を、少なくとも１以上の階層にわたって従属する、少なくとも１以上の第二の記憶領域に格納された情報資源を、前記第二の情報資源として検出する、
請求項１または２に記載のキャッシュ更新制御装置。
【請求項４】
前記関連検出手段は、ＸＭＬを使用した前記第一及び第二の情報資源に関して、前記第一の記憶領域を示すＵＲＩを構文解析することにより、前記第二の情報資源を検出する、
請求項３に記載のキャッシュ更新制御装置。
【請求項５】
前記更新手段は、前記第一及び第二の情報資源の中の、第三の情報資源が第四の情報資源を包含することを検出して、前記第四の情報資源を、前記第四の情報資源と一致する前記第三の情報資源の部分を示す情報に更新する、
請求項１乃至４のいずれかに記載のキャッシュ更新制御装置。
【請求項６】
請求項１乃至５のいずれかに記載のキャッシュ更新制御装置と、前記キャッシュ装置と、を有するキャッシュ更新制御システム。
【請求項７】
情報処理装置によって、
複数の記憶領域に格納された複数の情報資源の中の、第一の情報資源が更新されるのと連動して、少なくとも１以上の第二の情報資源が更新される場合に、前記第一及び第二の情報資源を所定の基準に基づき検出し、前記第一及び第二の情報資源が格納された前記記憶領域を示すアドレスを互いに関連付けた関連情報を生成し、
前記第一の情報資源に関する更新が発生した場合、前記関連情報を参照することにより、前記第一及び第二の情報資源の写しと、前記第一及び第二の情報資源を格納した前記記憶領域を示すアドレスと、を関連付けて記憶したキャッシュ装置における、前記第一及び前記第二の情報資源の写しを更新する、
キャッシュ更新制御方法。
【請求項８】
前記第一の情報資源に関する更新が発生した場合、前記第二の情報資源の写しを更新せずに削除する、
請求項７に記載のキャッシュ更新制御方法。
【請求項９】
複数の記憶領域に格納された複数の情報資源の中の、第一の情報資源が更新されるのと連動して、少なくとも１以上の第二の情報資源が更新される場合に、前記第一及び第二の情報資源を所定の基準に基づき検出し、前記第一及び第二の情報資源が格納された前記記憶領域を示すアドレスを互いに関連付けた関連情報を生成する関連検出処理と、
前記第一の情報資源に関する更新が発生した場合、前記関連情報を参照することにより、前記第一及び第二の情報資源の写しと、前記第一及び第二の情報資源を格納した前記記憶領域を示すアドレスと、を関連付けて記憶したキャッシュ装置における、前記第一及び前記第二の情報資源の写しを更新する更新処理と、
をコンピュータに実行させる、キャッシュ更新制御プログラム。
【請求項１０】
前記第一の情報資源に関する更新が発生した場合、前記第二の情報資源の写しを更新せずに削除する前記更新処理
をコンピュータに実行させる、請求項９に記載のキャッシュ更新制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、サーバ装置等に格納された情報資源が通信ネットワークを流れる際に、当該情報資源の写しを記憶するネットワークキャッシュに関して、更新制御を行うキャッシュ更新制御装置等に関する。
【背景技術】
【０００２】
クラウドコンピューティングに代表されるネットサービスが急速に増加している現代社会においては、ネットサービスに関する高速性及び高可用性等を実現する技術への期待が高まっている。
【０００３】
このような技術に関連する技術として、特許文献１には、データの更新時やシステム更新時に、データの不整合を発生させず、かつ、システム無停止でサービスを提供でき処理のリアルタイム性を確保できる、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）をベースとしたデータ管理システムが開示されている。
【０００４】
また、特許文献２には、クライアント端末装置からのＨＴＴＰ要求を解析して、解析の結果に応じてインメモリデータベースに記憶されている情報を検索するシステムが開示されている。このシステムでは、インメモリデータベースを検索した結果、得られた情報に対してＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のデータを生成し、生成したデータをＨＴＴＰに従ってクライアントへ送信する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2013-025442号公報
【特許文献２】特開2006-004328号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ネットサービスを提供する一般的なクライアントサーバシステムおいては、クライアント端末装置は、サーバ装置に格納されたリソース（情報資源）を選択する情報であるＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）と、係るリソースに対する操作を指定する情報であるメソッドとを、リクエストとしてサーバ装置に送信する。そして、サーバ装置は受信したリクエストを処理する。この際、クライアント端末装置が係るリソースへアクセスする時間を短縮することを実現するネットワークキャッシュの技術がある。
【０００７】
このネットワークキャッシュは、通信ネットワーク（以下、ネットワークと称する）に接続された任意の電子機器が備えることができる。そして、係るネットワークキャッシュは、リソースを指定するＵＲＩと、係るリソースのコピーを関連付けて記憶している。クライアント端末装置は、サーバ装置に格納されたリソースではなく、係るサーバ装置よりもより高速にアクセス可能なネットワークキャッシュに格納された、係るリソースのコピーへアクセスする。これにより、クライアント端末装置はリソースに対するリクエストをより高速に処理することができる。
【０００８】
また、一般的なクライアントサーバシステムおいて提供されるリソースには、複数のリソースを構造化したリソースである構造化ドキュメントがある。そして、この構造化ドキュメントを効率的に処理する技術として、例えば、ＸＭＬ（Ｅｘｔｅｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）がある。ＸＭＬを使用した構造化ドキュメントを提供するＸＣＡＰ（ＸＭＬ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）サーバ装置は、構造化ドキュメント内部の一部分をリソースとして、当該リソースを選択するＵＲＩを解釈して、当該リソースへの透過的なアクセスを提供する。
【０００９】
ＸＣＡＰサーバ装置は、このような構造化ドキュメントが包含する特定のリソースに対して更新を行う場合、その構造化の内容を解釈し、その特定のリソースに関連して構造化されている複数のリソースに関しても連動して更新する。しかしながら、ネットワークキャッシュに格納された構造化ドキュメントのコピーに関しては、構造化された複数のリソースに関して、連動して更新が行われるようなことはない。すなわち、ＸＣＡＰサーバ装置が格納した構造化ドキュメントと、ネットワークキャッシュが格納した当該構造化ドキュメントのコピーの内容が一致しない可能性がある。
【００１０】
このため、クライアントサーバシステムは、構造化ドキュメントへのリクエストが発生した際に、当該構造化ドキュメントを格納したＸＣＡＰサーバ装置に、ネットワークキャッシュに格納された当該構造化ドキュメントのコピーとの間に不一致が発生していないか否か確認する必要がある。クライアントサーバシステムは、あるいは、頻繁に更新される構造化ドキュメントに関しては、ネットワークキャッシュ自体を利用できないようにする必要がある。クライアントサーバシステムがこのような処理を行った場合、ネットワークキャッシュが備えるメリットを使用できなくなるため、システム性能が低下する問題がある。特許文献１乃至２が開示した技術は、この問題を解決できない。
【００１１】
本願発明の主たる目的は、この問題を解決した、キャッシュ更新制御装置、キャッシュ更新制御方法、及び、キャッシュ更新制御プログラムを提供することである。
【課題を解決するための手段】
【００１２】
本願発明の一態様に係るキャッシュ更新制御装置は、複数の記憶領域に格納された複数の情報資源の中の、第一の情報資源が更新されるのと連動して、少なくとも１以上の第二の情報資源が更新される場合に、前記第一及び第二の情報資源を所定の基準に基づき検出し、前記第一及び第二の情報資源が格納された前記記憶領域を示すアドレスを互いに関連付けた関連情報を生成する関連検出手段と、前記第一の情報資源に関する更新が発生した場合、前記関連情報を参照することにより、前記第一及び第二の情報資源の写しと、前記第一及び第二の情報資源を格納した前記記憶領域を示すアドレスと、を関連付けて記憶したキャッシュ装置における、前記第一及び前記第二の情報資源の写しを更新する更新手段と、を備える。
【００１３】
上記目的を達成する他の見地において、本願発明の一態様に係るキャッシュ更新制御方法は、情報処理装置によって、複数の記憶領域に格納された複数の情報資源の中の、第一の情報資源が更新されるのと連動して、少なくとも１以上の第二の情報資源が更新される場合に、前記第一及び第二の情報資源を所定の基準に基づき検出し、前記第一及び第二の情報資源が格納された前記記憶領域を示すアドレスを互いに関連付けた関連情報を生成し、前記第一の情報資源に関する更新が発生した場合、前記関連情報を参照することにより、前記第一及び第二の情報資源の写しと、前記第一及び第二の情報資源を格納した前記記憶領域を示すアドレスと、を関連付けて記憶したキャッシュ装置における、前記第一及び前記第二の情報資源の写しを更新する。
【００１４】
また、上記目的を達成する更なる見地において、本願発明の一態様に係るキャッシュ更新制御プログラムは、複数の記憶領域に格納された複数の情報資源の中の、第一の情報資源が更新されるのと連動して、少なくとも１以上の第二の情報資源が更新される場合に、前記第一及び第二の情報資源を所定の基準に基づき検出し、前記第一及び第二の情報資源が格納された前記記憶領域を示すアドレスを互いに関連付けた関連情報を生成する関連検出処理と、前記第一の情報資源に関する更新が発生した場合、前記関連情報を参照することにより、前記第一及び第二の情報資源の写しと、前記第一及び第二の情報資源を格納した前記記憶領域を示すアドレスと、を関連付けて記憶したキャッシュ装置における、前記第一及び前記第二の情報資源の写しを更新する更新処理と、をコンピュータに実行させる。
【００１５】
更に、本発明は、係るキャッシュ更新制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記憶媒体によっても実現可能である。
【発明の効果】
【００１６】
本願発明は、複数の情報資源が連動して更新される場合であっても、キャッシュを介して、最新状態である当該情報資源へアクセスすることを可能とする。
【図面の簡単な説明】
【００１７】
【図１】本願発明の第１の実施形態に係るキャッシュ更新制御システムの構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係るキャッシュ更新制御装置がキャッシュ部の内容を更新する動作を示すフローチャートである。
【図３】本願発明の第１の実施形態に係る関連検出部が関連情報を生成する動作を示すフローチャートである。
【図４】本願発明の第１の実施形態に係る構造化ドキュメントの構成例を示す図である。
【図５】本願発明の第１の実施形態に係る関連情報の構成例を示す図である。
【図６】本願発明の第１の実施形態に係るキャッシュ部がリソースのコピーを格納する状況（キャッシュ更新前）を例示する図である。
【図７】本願発明の第１の実施形態に係るキャッシュ部がリソースのコピーを格納する状況（キャッシュ更新後）を例示する図である。
【図８】本願発明の第２の実施形態に係るキャッシュ更新制御装置の構成を示すブロック図である。
【図９】本願発明の各実施形態に係るキャッシュ更新制御装置を実行可能な情報処理装置の構成を示すブロック図である。
【図１０】本願発明が開示した技術を使用しない場合における、キャッシュ部がリソースのコピーを格納する状況（キャッシュ更新後）を例示する図である。
【発明を実施するための形態】
【００１８】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１９】
＜第１の実施形態＞
図１は、第１の実施形態に係るキャッシュ更新制御システム１の構成を概念的に示すブロック図である。本実施形態に係るキャッシュ更新制御システム１は、キャッシュ更新制御装置１０、クライアント端末装置２０、及び、コンテンツサーバ装置３０を有する。キャッシュ更新制御装置１０、クライアント端末装置２０、及び、コンテンツサーバ装置３０は、通信可能にネットワークに接続されている。
【００２０】
コンテンツサーバ装置３０は、例えば、ＸＣＡＰサーバ装置等のサーバ装置である。コンテンツサーバ装置３０は、コンテンツとして、ｎ個（ｎは２以上の整数）のリソース３００−１乃至ｎを格納している。本実施形態では、リソース３００−１乃至ｎが、構造化ドキュメントを構築しているものとする。
【００２１】
コンテンツサーバ装置３０が格納する構造化ドキュメントの構成例を図４に示す。ここでは、コンテンツサーバ装置３０は、ＸＣＡＰサーバ装置であり、ＸＭＬを使用した構造化ドキュメントを格納しているものとする。
【００２２】
図４における構造化ドキュメントの構成３０１が示す例では、ｎが示す値が４の場合であり、リソース３００−１乃至４が構造化ドキュメントを構築している。ＸＭＬを使用した構造化ドキュメントを指定するＵＲＩは、ＸＣＡＰルートを示す部分、ドキュメントセレクタを示す部分、及び、ノードセレクタを示す部分を包含している。
【００２３】
ＸＣＡＰルートは、構造化ドキュメントが格納された場所を示す情報である。ドキュメントセレクタは、構造化ドキュメントを識別可能な識別子である。ノードセレクタは、構造化ドキュメントを構築するリソースを識別可能な識別子である。構造化ドキュメントの構成３０１における、リソース３００−１乃至４に関するノードセレクタが示す通り、リソース３００−１乃至４は、階層構造により、構造化ドキュメントを構築している。この例では、リソース３００−４が最上位の階層に位置し、その１つ下の階層にリソース３００−３が位置し、さらにその１つ下の階層にリソース３００−２が位置し、さらにその１つ下の階層にリソース３００−１が位置している。
【００２４】
クライアント端末装置２０は、コンテンツサーバ装置３０に格納された、リソース３００−１乃至ｎへアクセスする。この際、クライアント端末装置２０が発行したリソース３００−１乃至ｎへのリクエストは、クライアント端末装置２０からコンテンツサーバ装置３０への通信経路の途中に位置するキャッシュ更新制御装置１０によって処理される。
【００２５】
キャッシュ更新制御装置１０は、関連検出部１１、更新部１２、キャッシュ部１３、読取部１４、クライアント端末装置インタフェース部１５、及び、コンテンツサーバ装置インタフェース部１６を備えている。関連検出部１１、及び、更新部１２は、電子回路の場合もあれば、コンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサによって実現される場合もある。
【００２６】
キャッシュ部１３は、電子メモリ等の記憶装置である。本実施形態では、キャッシュ更新制御装置１０がキャッシュ部１３を備える構成となっているが、キャッシュ部１３がキャッシュ更新制御装置１０とは異なる装置であってもよい。キャッシュ部１３は、リソース３００−１乃至ｎのコピーである、リソースのコピー１３０−１乃至ｎを格納している。
【００２７】
キャッシュ部２０がリソースのコピー１３０−１乃至ｎを格納する状況について、図６に例示する。図６は、コンテンツサーバ装置３０が図４に示す構造化ドキュメントを格納している場合における、キャッシュ更新前のリソースコピー格納状況１３１の一例である。リソースのコピー１３０−１乃至ｎにそれぞれ対応するリソース３００−１乃至４は、コンテンツサーバ装置３０において、構造化ドキュメントを構築している。キャッシュ部１３は、リソースのコピー１３０−１乃至４を、それぞれ、リソース３００−１乃至４の格納場所を示すＵＲＩをキーとして格納している。図６に示す例では、例えば、リソースのコピー１３０−１に関連付けられたキーは、”ｈｔｔｐ：／／ｅｘａｍｐｌｅ．ｅｘａｍｐｌｅ．ｃｏｍ／ＡＵＩＤ／ｇｌｏｂａｌ／ＤＯＣ１／〜〜／ＥＬ１／ＥＬ１１／＠ＡＴ１１１”である。
【００２８】
クライアント端末装置インタフェース部１５は、クライアント端末措置２０が発行したリクエストを受信して、そのリクエストを、関連検出部１１、更新部１２、及び、読取部１４に入力する。クライアント端末装置インタフェース部１５は、例えば、リソース３００−ｉ（ｉは１乃至ｎの少なくともいずれかの整数）を参照するリクエストを受信した場合、読取部１４を介して、キャッシュ部１３から読み出したリソースのコピー１３０−ｉを、クライアント端末装置２０へ送信する。
【００２９】
コンテンツサーバインタフェース部１６は、クライアント端末措置２０が発行したリクエストが指定したリソース３００−ｉのコピーがキャッシュ部１３に格納されていない場合、コンテンツサーバ装置３０からリソース３００−ｉを入手する。コンテンツサーバインタフェース部１６は、入手したリソース３００−ｉを、リソースのコピー１３０−ｉとして、更新部１２を介して、キャッシュ部１３に格納する。
【００３０】
関連検出部１１は、クライアント端末装置インタフェース部１５から入手した、リソース３００−ｉを更新するリクエストが含む情報に基づいて、関連情報１１０を生成する。関連情報１１０は、構造化ドキュメントを構築するリソース３００−１乃至ｎを示すＵＲＩを、互いに関連付けた情報である。
【００３１】
本実施形態に係る関連情報１１０の構成例を図５に例示する。図５は、コンテンツサーバ装置３０が図４に示す構造化ドキュメントを格納している場合に、クライアント端末装置２０がリソース３００−１を更新するリクエストを発行したときの、関連情報１１０の構成例を示している。
【００３２】
関連検出部１１は、係るリクエストが包含するリソース３００−１を示すＵＲＩから、ドキュメントセレクタ、及び、ノードセレクタを抽出する。関連検出部１１は、当該ＵＲＩがノードセレクタを包含していない場合は、関連情報１１０を生成しない。関連検出部１１は、当該ドキュメントセレクタが示す値を関連キャッシュキーとして、ＸＣＡＰルート内の当該ＵＲＩと関連付けた関連情報１１０を生成する。関連キャッシュキーは、更新対象のリソースとともに構造化ドキュメントを構築しているリソースを識別可能な情報である。この時点で、関連情報１１０は、図５（ａ）に示す通りとなる。
【００３３】
関連検出部１１は、リソース３００−１を示すＵＲＩが包含するノードセレクタを、関連情報１１０を生成する処理の基準となる選択ノードに設定する。関連検出部１１は、係る選択ノードの親である（すなわち、１つ上の階層に位置する）ノードセレクタを取得する。図４に示す例の場合、リソース３００−１に関するノードセレクタが、”ＥＬ１／ＥＬ１１／＠ＡＴ１１１”であることから、関連検出部１１は、構文解析を行うことにより、リソース３００−１の親であるノードセレクタとして、”ＥＬ１／ＥＬ１１”を取得する。この”ＥＬ１／ＥＬ１１”は、リソース３００−２に関するノードセレクタである。関連検出部１１は、取得したリソース３００−２に関するノードセレクタ及び当該ドキュメントセレクタが示す値を関連キャッシュキーとして、関連情報１１０に登録する。この時点で、関連情報１１０は、図５（ｂ）に示す通りとなる。
【００３４】
関連検出部１１は、次に、取得したリソース３００−２に関するノードセレクタを選択ノードに設定して同様の処理を行う。図４に示す例の場合、リソース３００−２に関するノードセレクタが、”ＥＬ１／ＥＬ１１”であることから、関連検出部１１は、構文解析を行うことにより、リソース３００−２の親であるノードセレクタとして、”ＥＬ１”を取得する。この”ＥＬ１”は、リソース３００−３に関するノードセレクタである。関連検出部１１は、取得したリソース３００−３に関するノードセレクタ及び当該ドキュメントセレクタが示す値を関連キャッシュキーとして、関連情報１１０に登録する。この時点で、関連情報１１０は、図５（ｃ）に示す通りとなる。
【００３５】
関連検出部１１は、次に、取得したリソース３００−３に関するノードセレクタを選択ノードに設定して同様の処理を行う。図４に示す例の場合、リソース３００−３に関するノードセレクタが、”ＥＬ１”であることから、関連検出部１１は、構文解析を行うことにより、リソース３００−３の親であるノードセレクタがルートノードであることを検出する。関連検出部１１は、この時点で、関連情報１１０に追加登録する関連キャッシュキーがこれ以上無いと判定し、関連情報１１０の生成を完了する。
【００３６】
更新部１２は、クライアント端末装置２０がリソース３００−ｉを更新するリクエストを発行した場合、当該リクエストが含む情報、及び、関連情報１１０に基づいて、リソースのコピー１３０−ｉ、及び、リソース３００−ｉとともに構造化ドキュメントを構築するリソースに対応するリソースのコピーを更新する。
【００３７】
キャッシュ部１３が図６に示すリソースのコピー１３０−１乃至４を格納している状態において、更新部１２がリソース３００−１を更新するリクエストを処理した際の、キャッシュ更新後のリソースコピー格納状況１３２を、図７に例示する。図７に示す例において、クライアント端末装置２０が発行したリクエストは、リソース３００−１における”ｖａｌｕｅ１１１”という文字列を、”ｎｅｗＶａｌｕｅ”という文字列に更新することを指示している。更新部１２は、係るリクエストが包含する、リソース３００−１を示すＵＲＩを基に、当該ＵＲＩをキーとしてキャッシュ部１３に格納されているリソースのコピー１３０−１における”ｖａｌｕｅ１１１”という文字列を、”ｎｅｗＶａｌｕｅ”という文字列に更新する。
【００３８】
更新部１２は、図５（ｃ）に示す関連情報１１０において、リソース３００−１を示すＵＲＩに関して、３つの関連キャッシュキーが登録されていることを確認する。更新部１２は、これらの関連キャッシュキーをキーとして包含するリソースのコピー１３０−２乃至４を検出する。更新部１２は、リソースのコピー１３０−２乃至４における”ｖａｌｕｅ１１１”という文字列を、”ｎｅｗＶａｌｕｅ”という文字列に更新する。
【００３９】
更新部１２は、また、クライアント端末装置２０がリソース３００−ｉを更新するリクエストを発行した場合、当該リクエストが含む情報、及び、関連情報１１０に基づいて、リソースのコピー１３０−ｉを更新したのち、リソース３００−ｉとともに構造化ドキュメントを構築するリソースに対応するリソースのコピーを、キャッシュ部１３から削除するようにしてもよい。この場合、削除されたリソースのコピーに対応するリソースへのリクエストがクライアント端末装置２０から発行されたときに、コンテンツサーバ装置インタフェース部１６が、コンテンツサーバ装置３０から、最新の当該リソースを入手する。そして、コンテンツサーバ装置インタフェース部１６は、入手した当該リソースを、更新部１２を介して、キャッシュ部１３に、当該リソースのコピーとして格納する。
【００４０】
更新部１２は、また、リソースのコピー１３０−ｉが、リソースのコピー１３０−ｊ（ｊはｉを除く１乃至ｎのいずれかの整数）を包含していることを検出するようにしてもよい。そして、更新部１２は、リソースのコピー１３０−ｉが、リソースのコピー１３０−ｊを包含している場合、リソースのコピー１３０−ｊの内容を、リソースのコピー１３０−ｊと内容が一致するリソースのコピー１３０−ｉの部分を示す情報に更新する。この場合、読取部１４がリソースのコピー１３０−ｊへアクセスする際は、読取部１４は、リソースのコピー１３０−ｉにおけるリソースのコピー１３０−ｊと内容が一致する部分へアクセスする。
【００４１】
例えば、図６に示す例の場合、更新部１２は、リソースのコピー１３０−３の内容が、リソースのコピー１３０−４の内容と等しいことを検出する。この場合、更新部１２は、リソースのコピー１３０−３の内容を、例えば、リソースのコピー１３０−４に関するキーが示す値に更新する。また、図６に示す例の場合、更新部１２は、リソースのコピー１３０−２の内容が、リソースのコピー１３０−４における上から２行目の内容と等しいことを検出する。この場合、更新部１２は、リソースのコピー１３０−２の内容を、リソースのコピー１３０−４に関するキーが示す値、及び、リソースのコピー１３０−４における上から２行目を示す値に更新する。
【００４２】
次に図２のフローチャートを参照して、本実施形態に係るキャッシュ更新制御装置１０がキャッシュ部１３の内容を更新する動作（処理）について詳細に説明する。
【００４３】
クライアント端末装置インタフェース部１５は、クライアント端末装置２０から、リソース３００−ｉを更新するリクエストを受信する（ステップＳ１０１）。関連検出部１１は、更新対象のリソース３００−ｉに関する関連情報１１０を生成する（ステップＳ１０２）。更新部１２は、リクエストの内容に従い、リソース３００−ｉに対応するリソースのコピー１３０−ｉを更新する（ステップＳ１０３）。
【００４４】
更新部１２は、関連情報１１０を参照し、リソース３００−ｉに関する関連キャッシュキーが示すリソースのコピーに関して、未更新のものがあるか否か確認する（ステップＳ１０４）。未更新のリソースのコピーがない場合（ステップＳ１０５でＮｏ）、全体の処理は終了する。未更新のリソースのコピーがある場合（ステップＳ１０５でＹｅｓ）、更新部１２は、リクエストの内容に従い、未更新のリソースのコピーを更新し（ステップＳ１０６）、処理はステップＳ１０４に戻る。
【００４５】
次に図３のフローチャートを参照して、本実施形態に係る関連検出部１１が関連情報１１０を生成する動作（処理）について詳細に説明する。
【００４６】
関連検出部１１は、更新対象のリソースを示すＵＲＩに関するドキュメントセレクタを取得する（ステップＳ２０１）。当該ＵＲＩがノードセレクタを含まない場合（ステップＳ２０２でＮｏ）、全体の処理は終了する。当該ＵＲＩがノードセレクタを含む場合（ステップＳ２０２でＹｅｓ）、関連検出部１１は、当該ドキュメントセレクタが示す値を、関連キャッシュキーとして、関連情報１１０に登録する（ステップＳ２０３）。
【００４７】
関連検出部１１は、当該ＵＲＩが含むノードセレクタを選択ノードとする（ステップＳ２０４）。関連検出部１１は、当該選択ノードの親であるノードセレクタを取得する（ステップＳ２０５）。取得したノードセレクタがルートノードである場合（ステップＳ２０６でＹｅｓ）、全体の処理は終了する。
【００４８】
取得したノードセレクタがルートノードでない場合（ステップＳ２０６でＮｏ）、関連検出部１１は、当該ドキュメントセレクタ及び当該ノードセレクタが示す値を、関連キャッシュキーとして、関連情報１１０に登録する（ステップＳ２０７）。関連検出部１１は、当該ノードセレクタを選択ノードとして（ステップＳ２０８）、処理はステップＳ２０５に戻る。
【００４９】
本実施形態に係るキャッシュ更新制御システム１は、複数の情報資源が連動して更新される場合であっても、キャッシュを介して、最新状態である当該情報資源へアクセスすることができる。その理由は、関連検出部１１が連動して更新される情報資源同士を関連付ける関連情報１１０を生成し、更新部１２が関連情報１１０に基づき、キャッシュに格納された、連動して更新される情報資源のコピーを更新するからである。
【００５０】
構造化ドキュメントを構築する複数のリソースの中の、少なくともいずれかに関して更新が発生した場合、通常、係る複数のリソースの中の、更新が発生したリソース以外のリソースにも更新が波及する。したがって、係る複数のリソースのコピーがネットワークキャッシュに格納されている場合、係る複数のリソースのコピーに関しても、連動した更新を行う必要がある。
【００５１】
しかしながら、ネットワークキャッシュを更新管理する、一般的なキャッシュ更新制御装置は、このような連動した更新を行う機能を有していない。本願発明が開示した技術を使用しない場合において、係る複数のリソースの中の何れかに更新が発生したときの、キャッシュ更新後のリソースコピー格納状況１３３を、図１０に例示する。図１０に示す例でも、図７に示す例のときと同様に、クライアント端末装置２０が発行したリクエストは、
リソース３００−１における”ｖａｌｕｅ１１１”という文字列を、”ｎｅｗＶａｌｕｅ”という文字列に更新することを指示している。キャッシュ更新制御装置は、係るリクエストの指示に従い、リソースのコピー１３０−１における”ｖａｌｕｅ１１１”という文字列を、”ｎｅｗＶａｌｕｅ”という文字列に更新する。しかしながら、この場合のキャッシュ更新制御装置は、図７に示す例のときのように、リソースのコピー１３０−２乃至４における”ｖａｌｕｅ１１１”という文字列を、”ｎｅｗＶａｌｕｅ”という文字列に更新することはできない。
【００５２】
これにより、この場合、リソース３００−２乃至４と、そのコピーであるはずのリソースのコピー１３０−２乃至４が一致しない状況が発生することになる。このため、キャッシュ更新制御システムは、値が不正であるリソースのコピーを使用することにより、結果不正あるいは障害等が発生することを回避しなければならない。したがって、キャッシュ更新制御システムは、コンテンツサーバ装置３０に対して、格納している構造化ドキュメントと、ネットワークキャッシュに格納された当該構造化ドキュメントのコピーとの間に不一致が発生していないか否か確認する必要がある。キャッシュ更新制御システムは、あるいはまた、頻繁に更新される構造化ドキュメントに関しては、ネットワークキャッシュ自体を利用できないようにする必要がある。この結果、キャッシュ更新制御システムの性能が低下することになる。
【００５３】
これに対して、本実施形態に係るキャッシュ更新制御システム１では、関連検出部１１が、連動して更新されるリソース同士を関連付ける関連情報１１０を生成する。そして、更新部１２が、関連情報１１０に基づき、ネットワークキャッシュに格納された、連動して更新されるリソースのコピーを更新する。このため、本実施形態に係るキャッシュ更新制御システム１では、構造化ドキュメントに関する更新が行われる場合であっても、ネットワークキャッシュをそのまま使用できる。したがって、構造化ドキュメントに関する更新処理を高速に行うことができる。
【００５４】
また、本実施形態に係る更新部１２は、リソース３００−ｉを更新するリクエストに対して、リソースのコピー１３０−ｉを更新したのち、リソース３００−ｉとともに構造化ドキュメントを構築するリソースに対応するリソースのコピーを、キャッシュ部１３から削除することもできる。キャッシュ更新制御システム１は、この処理によっても、リソース３００−ｉと連動して更新されるリソースに関して、リソースのコピーと一致しない状況が発生することを回避できる。したがって、本実施形態に係るキャッシュ更新制御システム１は、リソース３００−ｉとともに構造化ドキュメントを構築するリソースに対応するリソースのコピーを連動して更新する場合と比較して、より簡素な処理により、構造化ドキュメントに関する更新処理を高速に行うことができる。
【００５５】
さらに、本実施形態に係る更新部１２は、リソースのコピー１３０−ｉが、リソースのコピー１３０−ｊを包含していることを検出し、リソースのコピー１３０−ｊの内容を、リソースのコピー１３０−ｉにおけるリソースのコピー１３０−ｊと一致する部分を示す情報に更新することもできる。構造化ドキュメントを構築するリソース同士においては、内容が類似することがある。例えば、図６に示す例の場合、キャッシュ部１３が、重複する内容であるリソースのコピー１３０−３乃至４をそれぞれ個別に格納したのでは、メモリを有効活用しているとは言えない。本実施形態に係るキャッシュ更新制御システム１は、内容が重複するリソースに関して、重複した内容をキャッシュ部１３に格納しないようにすることにより、キャッシュ部１３のメモリを有効活用することができる。
【００５６】
＜第２の実施形態＞
図８は第２の実施形態のキャッシュ更新制御装置４０の構成を概念的に示すブロック図である。
【００５７】
本実施形態に係るキャッシュ更新制御装置４０は、関連検出部４１、及び、更新部４２を備えている。
【００５８】
本実施形態では、複数の記憶領域６０−０乃至ｍ（ｍは１以上の整数）に格納された複数の情報資源の中の、第１の情報資源６００−０が更新されるのと連動して、第２の情報資源６００−１乃至ｍが更新される。
【００５９】
関連検出部４１は、第１の情報資源６００−０及び第２の情報資源６００−１乃至ｍを、所定の基準に基づき検出する。関連検出部４１は、第１の情報資源６００−０及び第２の情報資源６００−１乃至ｍが格納された記憶領域６０−０乃至ｍを示すアドレスを互いに関連付けた、関連情報４１０を生成する。
【００６０】
更新部４２は、第１の情報資源６００−０に関する更新が発生した場合、関連情報４１０を参照する。そして、更新部４２は、キャッシュ装置５０における、第１の情報資源のコピー５１−０及び第２の情報資源のコピー５１−１乃至ｍを更新する。
【００６１】
キャッシュ装置５０は、第１の情報資源のコピー５１−０及び第２の情報資源のコピー５１−１乃至ｍと、第１の情報資源６００−０及び第２の情報資源６００−１乃至ｍを格納した記憶領域６０−０乃至ｍを示すアドレスと、をそれぞれ関連付けて記憶している。
【００６２】
本実施形態に係るキャッシュ更新制御装置４０は、複数の情報資源が連動して更新される場合であっても、キャッシュを介して、最新状態である当該情報資源へアクセスすることができる。その理由は、関連検出部４１が連動して更新される情報資源同士を関連付ける関連情報４１０を生成し、更新部４２が関連情報４１０に基づき、キャッシュに格納された、連動して更新される情報資源のコピーを更新するからである。
【００６３】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図８に示した各部は、専用のＨＷ（ＨａｗｄＷａｒｅ）（電子回路）によって実現することができる。また、少なくとも、関連検出部１１及び４１、及び、更新部１２及び４２は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図９を参照して説明する。
【００６４】
図９は、本発明の模範的な実施形態に係るキャッシュ更新制御装置を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図９は、図１、及び、図８に示したキャッシュ更新制御装置を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００６５】
図９に示した情報処理装置９００は、ＣＰＵ９０１、ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、ハードディスク９０４（記憶装置）、外部装置との通信インタフェース９０５（Ｉｎｔｅｒｆａｃｅ：以降、「Ｉ／Ｆ」と称する）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記憶媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、及び、入出力インタフェース９０９を備え、これらの構成がバス９０６（通信線）を介して接続された一般的なコンピュータである。
【００６６】
そして、上述した実施形態を例に説明した本発明は、図９に示した情報処理装置９００に対して、その実施形態の説明において参照したブロック構成図（図１、及び、図８）における、関連検出部１１及び４１、及び、更新部１２及び４２、或いはフローチャート（図２乃至３）の機能を実現可能なコンピュータプログラムを供給した後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性の記憶メモリ（ＲＡＭ９０３）またはハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００６７】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、ＣＤ−ＲＯＭ等の各種記憶媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記憶媒体９０７によって構成されると捉えることができる。
【００６８】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００６９】
１    キャッシュ更新制御システム
１０    キャッシュ更新制御装置
１１    関連検出部
１１０    関連情報
１２    更新部
１３    キャッシュ部
１３０−１乃至ｎ    リソースのコピー
１３１    キャッシュ更新前のリソースコピー格納状況
１３２    キャッシュ更新後のリソースコピー格納状況
１３３    キャッシュ更新後のリソースコピー格納状況
１４    読取部
１５    クライアント端末装置インタフェース部
１６    コンテンツサーバ装置インタフェース部
２０    クライアント端末装置
３０    コンテンツサーバ装置
３００−１乃至ｎ    リソース
３０１    構造化ドキュメントの構成
４０    キャッシュ更新制御装置
４１    関連検出部
４２    更新部
５０    キャッシュ装置
５１−０    第１の情報資源のコピー
５１−１乃至ｍ    第２の情報資源のコピー
６０−０乃至ｍ    記憶領域
６００−０  第１の情報資源
６００−１乃至ｍ    第２の情報資源
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク
９０５    通信インタフェース
９０６    バス
９０７    記憶媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2015185086.tif 000003
【図２】
2015185086.tif 000004
【図３】
2015185086.tif 000005
【図４】
2015185086.tif 000006
【図５】
2015185086.tif 000007
【図６】
2015185086.tif 000008
【図７】
2015185086.tif 000009
【図８】
2015185086.tif 000010
【図９】
2015185086.tif 000011
【図１０】
2015185086.tif 000012