(57)【特許請求の範囲】
【請求項１】
Ｗｅｂデータを記憶したデータファイルを有するＷｅｂサーバコンピュータと前記ＷｅｂデータをアクセスするＷｅｂクライアントコンピュータとの間に、前記Ｗｅｂデータをキャッシングするキャッシュファイルを有するキャッシング用コンピュータを介在したＷｅｂネットワークに適用されるキャッシュ更新方法において、
前記Ｗｅｂサーバコンピュータのデータ管理プロセスによって、データファイルの前記Ｗｅｂデータの更新を監視して、更新された場合にそのＵＲＬの利用者グループに属するクライアントに更新通知を行ない、
前記キャッシング用コンピュータのキャッシュ管理テーブルを有するキャッシュ管理プロセスによって、前記キャッシュファイルにキャッシングされている前記ＷｅｂデータのＵＲＬ、更新日時およびアクセス日時を管理テーブルによって管理し、
前記キャッシング用コンピュータのＷｅｂプロキシサーバプロセスによって、前記Ｗｅｂクライアントコンピュータからのアクセス要求に基づき、前記キャッシュファイルまたは前記Ｗｅｂサーバコンピュータから得られた前記Ｗｅｂデータを前記Ｗｅｂクライアントコンピュータへ転送し、
前記キャッシング用コンピュータの前記キャッシュ管理プロセスによって、前記Ｗｅｂサーバコンピュータから前記更新通知されたＵＲＬが前記管理テーブルに存在する場合、前記管理テーブルのアクセス日時から一定期間経過していなければ、前記更新情報に含まれる更新日時に前記管理テーブルの更新日時を更新して、前記Ｗｅｂサーバコンピュータへ前記ＵＲＬのデータを要求し、前記管理テーブルのアクセス時間から一定期間経過していれば、前記管理テーブルから前記更新通知されたＵＲＬとその更新日時およびアクセス日時とを削除することを特徴とするＷｅｂデータのキャッシュ更新方法。
【請求項２】
Ｗｅｂデータを記憶したデータファイルを有するＷｅｂサーバコンピュータと前記ＷｅｂデータをアクセスするＷｅｂクライアントコンピュータの間に、前記Ｗｅｂデータをキャッシングするキャッシュファイルを有するキャッシング用コンピュータを介在したＷｅｂネットワークに適用されるキャッシュ更新システムにおいて、
前記Ｗｅｂサーバコンピュータにあって、前記データファイルの前記Ｗｅｂデータの更新を監視して、更新された場合にそのＵＲＬの利用者グループのクライアントに更新通知を行なうデータ管理手段と、
前記キャッシング用コンピュータにあって、前記キャッシュファイルにキャッシングされている前記ＷｅｂデータのＵＲＬ、更新日時およびアクセス日時を管理する管理テーブルを有するキャッシュ管理プロセスと、前記Ｗｅｂクライアントコンピュータからのアクセス要求に基づき、前記キャッシュファイルまたは前記Ｗｅｂサーバコンピュータから得られた前記Ｗｅｂデータを前記Ｗｅｂクライアントコンピュータへ転送するＷｅｂプロキシサーバプロセスとを有し、
前記キャッシュ管理プロセスは、前記Ｗｅｂサーバコンピュータから前記更新通知されたＵＲＬが前記管理テーブルに存在する場合、前記管理テーブルのアクセス日時から一定期間経過していなければ、前記更新情報に含まれる更新日時に前記管理テーブルの更新日時を更新して、前記Ｗｅｂサーバコンピュータへ前記ＵＲＬのデータを要求し、前記管理テーブルのアクセス時間から一定期間経過していれば、前記管理テーブルから前記更新通知されたＵＲＬとその更新日時およびアクセス日時とを削除することを特徴とするＷｅｂデータのキャッシュ更新システム。
【請求項３】
前記キャッシュ管理プロセスは、前記Ｗｅｂプロキシサーバプロセスから前記Ｗｅｂサーバコンピュータへのリクエストを監視し、前記リクエストされたＵＲＬが前記管理テーブルに存在する場合、このＵＲＬに対応する前記管理テーブルのアクセス日時を更新し、前記リクエストに含まれる更新日時と前記ＵＲＬに対応する前記管理テーブルの更新日時とを比較して、一致した場合には前記キャッシュファイルに記憶される前記Ｗｅｂデータが最新である旨を前記Ｗｅｂプロキシサーバプロセスに応答し、一致しなかった場合には前記Ｗｅｂデータを前記Ｗｅｂサーバコンピュータに要求することを特徴とする請求項２記載のＷｅｂデータのキャッシュ更新システム。
【請求項４】
前記キャッシュ管理プロセスは、前記Ｗｅｂプロキシサーバプロセスから前記Ｗｅｂサーバコンピュータへのリクエストを監視し、前記リクエストされたＵＲＬが前記管理テーブルに存在する場合、前記管理テーブルのアクセス日時を更新し、前記リクエストに更新日時が含まれていれば、前記ＵＲＬに対応する前記管理テーブルの更新日時を空にして、前記Ｗｅｂデータを前記Ｗｅｂサーバコンピュータに要求することを特徴とする請求項２記載のＷｅｂデータのキャッシュ更新システム。
【請求項５】
前記キャッシュ管理プロセスは、前記Ｗｅｂプロキシサーバプロセスから前記Ｗｅｂサーバコンピュータへのリクエストを監視し、前記リクエストされたＵＲＬが前記管理テーブルに存在しない場合、前記リクエストのアクセス日時を前記管理テーブルに保存し、前記リクエストに更新日時が含まれていれば、その日時に前記ＵＲＬに対応する前記管理テーブルを更新して、前記Ｗｅｂデータを前記Ｗｅｂサーバコンピュータに要求することを特徴とする請求項２記載のＷｅｂデータのキャッシュ更新システム。
【請求項６】
前記キャッシュ管理プロセスは、前記Ｗｅｂプロキシサーバプロセスから前記Ｗｅｂサーバコンピュータへのリクエストを監視し、前記リクエストされたＵＲＬが前記管理テーブルに存在しない場合、前記リクエストのアクセス日時を前記管理テーブルに保存し、前記リクエストに更新日時が含まれていなければ、前記管理テーブルの更新日時を空にして、前記Ｗｅｂデータを前記Ｗｅｂサーバコンピュータに要求することを特徴とする請求項２記載のＷｅｂデータのキャッシュ更新システム。
【請求項７】
前記キャッシュ管理プロセスは、前記Ｗｅｂプロキシサーバプロセスから前記Ｗｅｂサーバコンピュータへのリクエストに対するレスポンスを監視し、前記レスポンスされたＵＲＬが前記管理テーブルに存在するか否かを調べ、存在する場合は、前記レスポンスに含まれる更新日時に前記管理テーブルの更新日時を更新して、前記Ｗｅｂプロキシサーバプロセスにレスポンスを転送することを特徴とする請求項２記載のＷｅｂデータのキャッシュ更新システム。
【請求項８】
Ｗｅｂデータを提供するＷｅｂサーバコンピュータと前記Ｗｅｂデータを要求するＷｅｂクライアントコンピュータとの間に前記Ｗｅｂデータをキャッシングするプロセスを介在させたＷｅｂネットワークに適用されるキャッシュ更新システムであって、
前記ＷｅｂデータをキャッシングするプロセスがキャッシングするＷｅｂデータを更新管理するためのキャッシュ管理プロセスと、
前記キャッシュ管理プロセスに向けて前記Ｗｅｂデータの更新を通知するためのデータ管理プロセスとを設け、
前記データ管理プロセスは、
前記Ｗｅｂデータの更新を監視して、前記Ｗｅｂデータの更新が検出されたときに、そのＷｅｂデータを一意に示すＵＲＬと更新日時とを含む更新通知を前記キャッシュ管理プロセスに向けて送信する更新通知手段とを具備し、
前記キャッシュ管理プロセスは、
前記キャッシングされているＷｅｂデータのＵＲＬと、その更新日時およびアクセス日時とを記録するキャッシュ内容記録手段と、
前記データ管理プロセスからの前記更新通知を受信したときに、その更新通知に含まれるＵＲＬがキャッシュ内容記録手段に記録されているか否かを判定するキャッシュ判定手段と、
前記キャッシュ判定手段によりキャッシングされていると判定されたときに、前記キャッシュ内容記録手段に記録されたアクセス日時から一定期間経過していなければ、そのＵＲＬに対応する更新日時を前記更新通知に含まれる更新日時に書き換えるとともに、そのＵＲＬで示されるＷｅｂデータを前記Ｗｅｂサーバコンピュータに要求するキャッシュ更新手段と、
を具備することを特徴とするキャッシュ更新システム。
【請求項９】
前記キャッシュ管理プロセスは、前記Ｗｅｂサーバプロセスと前記Ｗｅｂデータをキャッシングするプロセスとの間の前記Ｗｅｂデータに関する通信を監視することにより、前記ＷｅｂデータをキャッシングするプロセスがキャッシングするＷｅｂデータのＵＲＬと更新日時とを取得することを特徴とする請求項８記載のキャッシュ更新システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＷｅｂサーバとＷｅｂクライアントとの間にＷｅｂデータをキャッシングするプロセスを介在させたＷｅｂネットワークに適用して好適なキャッシュ更新方法およびキャッシュ更新システムに係り、特に、ＷｅｂサーバおよびＷｅｂデータをキャッシングするプロセス上の既存のソフトウェア資源をなんら改造することなしに、ＷｅｂサーバとＷｅｂデータをキャッシングするプロセスとの間の通信量を大幅に削減し、かつＷｅｂクライアントからのデータ要求に対する応答時間を飛躍的に短縮することを可能とするＷｅｂデータのキャッシュ更新方法およびキャッシュ更新システムに関する。
【０００２】
【従来の技術】
近年の通信技術の向上に伴ない、複数のネットワークをルータなどで相互に接続することにより、異なるネットワークに接続された端末同士の通信を可能とした相互接続ネットワークが多く構築されている。そして、この種の相互接続ネットワークでは、Ｗｅｂサーバなどと称される端末が一元的に保有するデータ（Ｗｅｂデータ）をＷｅｂクライアントなどと称される端末がＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）の規定に基づいて適宜要求するといったクライアント−サーバ型のデータ授受が広く行なわれている。
【０００３】
また、このＷｅｂクライアントからＷｅｂサーバへのアクセスでは、Ｗｅｂプロキシサーバなどと称される、Ｗｅｂサーバが提供するＷｅｂデータをキャッシングしてＷｅｂサーバの役割を代理する端末を介在させることが多い。このＷｅｂプロキシサーバでＷｅｂサーバのデータをキャッシングし、このキャシングしたＷｅｂデータをＷｅｂクライアントの要求に応じて提供すれば、Ｗｅｂサーバまでの通信を少なくすることができ、Ｗｅｂクライアントから見たデータリクエストの応答時間が改善される。
【０００４】
図８は、このＷｅｂプロキシサーバを介在させたＷｅｂサーバおよびＷｅｂクライアント間のデータ授受を説明するための図である。
【０００５】
図８に示す相互接続ネットワークは、ＬＡＮ１（１）とＬＡＮ２（２）とをルータ１（４１）、低速通信回線（３）およびルータ（４２）により相互に接続したものであり、ＬＡＮ１（１）には計算機１（１０）が、ＬＡＮ２（２）には計算機２（２０）と計算機３（３０）とがそれぞれ接続されている。そして、計算機１（１０）では、Ｗｅｂサーバプロセス（１１）がデータファイル（１２）のＷｅｂデータを提供すべく動作し、計算機２（２０）では、Ｗｅｂプロキシサーバプロセス（２１）がキャッシュファイル（２２）にＷｅｂデータをキャッシングし、さらに、計算機３（３０）では、Ｗｅｂクライアントプロセス（３１）がＷｅｂサーバプロセス（１１）にＷｅｂデータを要求すべく動作している。
【０００６】
より具体的には、計算機３（３０）のＷｅｂクライアントプロセス（３１）から計算機１（１０）のＷｅｂサーバプロセス（１１）にＷｅｂデータの要求が発生されると、この要求が計算機２（２０）のＷｅｂプロキシサーバプロセス（２１）に引き渡され、この要求を受けた計算機２（２０）のＷｅｂプロキシサーバプロセス（２１）が、ルータ２（４２）、低速通信回線（３）、ルータ１（４１）を経由して、計算機１（１０）のＷｅｂサーバプロセス（１１）にそのＷｅｂデータを要求する。そして、計算機１（１０）のＷｅｂサーバプロセス（１１）は、データファイル（１２）からＷｅｂデータを読み出し、ルータ１（４１）、低速通信回線（３）、ルータ（４２）を経由して計算機２（２０）に転送する。計算機２（２０）のＷｅｂプロキシサーバプロセス（２１）は、そのＷｅｂデータをキャッシュファイル（２２）にキャッシングするととも、計算機３（３０）のＷｅｂクライアントプロセス（３１）に転送する。
【０００７】
その後、他の計算機３（３０）のＷｅｂクライアントプロセス（３１）から同じＷｅｂデータの要求が発生されると、この要求を受けた計算機２（２０）のＷｅｂプロキシサーバプロセス（２１）は、キャッシュファイル２２を調べ、既にキャッシングしたＷｅｂデータがキャッシングファイル（２２）に格納されていれば、そのＷｅｂデータを読み出し、要求元の計算機３（３０）のＷｅｂクライアントプロセス（３１）に転送する。
【０００８】
これにより、多くの場合に低速通信回線（３）を介したデータ通信を省くことができるようになり、Ｗｅｂクライアントプロセス（３１）から見たデータリクエストの応答時間が改善されることになる。この効果は、低速通信回線（３）の通信速度が低ければ低いほど大きいものとなる。
【０００９】
【発明が解決しようとする課題】
ところで、このＷｅｂプロキシサーバは、Ｗｅｂクライアントに転送するＷｅｂデータを常にＷｅｂサーバが提供する最新のＷｅｂデータと一致させなければならない。そのため、Ｗｅｂプロキシサーバは、ＷｅｂクライアントからＷｅｂデータを要求される度に、キャッシング中のＷｅｂデータの更新を試みる。図９は、このＷｅｂデータの更新手順を説明するための図である。
【００１０】
ＷｅｂクライアントからＷｅｂデータを要求されると（図９（１））、Ｗｅｂプロキシサーバは、まず、キャッシング中のＷｅｂデータの更新日時をＷｅｂサーバに通知し、その日時以降に更新があったかどうかを問い合わせる（図９（２））。
【００１１】
一方、Ｗｅｂサーバは、この問い合わせに対して、更新があった場合にはデータ本体とデータの更新日時とを（図９（３））、なければ応答のみを返答する（図９（４））。
【００１２】
そして、Ｗｅｂプロキシサーバは、データ本体を受け取ったならばキャッシング中のデータを更新した上で、また、応答のみの場合は、キャッシング中のＷｅｂデータをＷｅｂクライアントに返送する（図９（５），（５）′）
なお、ＨＴＴＰの規定では、Ｗｅｂサーバへの問い合わせにＩｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダを付けたＧＥＴリクエストが用いられる。このリクエストには、Ｗｅｂデータを一意に示すＵＲＬとキャッシング中のＷｅｂデータの更新日時とが含まれる。また、更新がない場合の応答には、“Ｎｏｔ  Ｍｏｄｉｆｉｅｄ”というレスポンスが用いられる。
【００１３】
また、要求されたＷｅｂデータをキャッシングしていない場合、Ｗｅｂプロキシサーバは、Ｉｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダを付けずにＧＥＴリクエストをＷｅｂサーバに送る。このリクエストのレスポンスには、データ本体とデータの更新日時とが含まれる。
【００１４】
しかしながら、このような手順では、ＷｅｂプロキシサーバがＷｅｂクライアントからデータ要求を受けたときに、必ずＷｅｂサーバに対してリクエストを送り、そのレスポンスを待つことになる。したがって、ＷｅｂプロキシサーバとＷｅｂサーバとが低速な通信回線で結ばれている場合には、リクエストの応答が帰ってくるまでの時間が長くなり、ＷｅｂクライアントがＷｅｂデータを要求してからそのＷｅｂデータを得られるまでの応答時間が長くなってしまうといった問題があった。
【００１５】
この発明はこのような実情を考慮してなされたものであり、ＷｅｂサーバおよびＷｅｂプロキシサーバ上の既存のソフトウェア資源をなんら改造することなしに、ＷｅｂサーバとＷｅｂプロキシサーバとの間の通信量を大幅に削減し、かつＷｅｂクライアントからのデータ要求に対する応答時間を飛躍的に短縮することを可能とするＷｅｂデータのキャッシュ更新方法およびキャッシュ更新システムを提供することを目的とする。
【００１６】
【課題を解決するための手段】
前述した目的を達成するために、この発明は、Ｗｅｂデータを記憶したデータファイルを有するＷｅｂサーバコンピュータと前記ＷｅｂデータをアクセスするＷｅｂクライアントコンピュータの間に、前記Ｗｅｂデータをキャッシングするキャッシュファイルを有するキャッシング用コンピュータを介在して設け、前記Ｗｅｂサーバコンピュータのデータ管理プロセスによって、データファイルの前記Ｗｅｂデータの更新を監視して、更新された場合にそのＵＲＬの利用者グループに属するクライアントに更新通知を行ない、前記キャッシング用コンピュータのキャッシュ管理テーブルを有するキャッシュ管理プロセスによって、前記キャッシュファイルにキャッシングされている前記ＷｅｂデータのＵＲＬ、更新日時およびアクセス日時を管理テーブルによって管理し、前記キャッシング用コンピュータのＷｅｂプロキシサーバプロセスによって、前記Ｗｅｂクライアントコンピュータからのアクセス要求に基づき、前記キャッシュファイルまたは前記Ｗｅｂサーバコンピュータから得られた前記Ｗｅｂデータを前記Ｗｅｂクライアントコンピュータへ転送し、前記キャッシング用コンピュータの前記キャッシュ管理プロセスによって、前記Ｗｅｂサーバコンピュータから前記更新通知されたＵＲＬが前記管理テーブルに存在する場合、前記管理テーブルのアクセス日時から一定期間経過していなければ、前記更新情報に含まれる更新日時に前記管理テーブルの更新日時を更新して、前記管理テーブルの更新日時に保存して、前記Ｗｅｂサーバコンピュータへ前記ＵＲＬのデータを要求し、前記管理テーブルのアクセス時間から一定期間経過していれば、前記管理テーブルから前記更新通知されたＵＲＬとその更新日時およびアクセス日時とを削除するようにしたものである。
【００１７】
この発明においては、キャッシング用コンピュータにキャッシングされたＷｅｂデータが更新された際、Ｗｅｂサーバコンピュータのデータ管理プロセスからの通知に応じて、キャッシング中のＷｅｂデータを書き換えさせるべく、キャッシング用コンピュータのキャッシュ管理プロセスが、Ｗｅｂデータをキャッシュするプロセスの一例であるＷｅｂプロキシサーバプロセスに対して、そのＷｅｂデータを要求することから、従来であればＷｅｂクライアントコンピュータからのデータ要求時に発生していたＷｅｂプロキシサーバプロセスからＷｅｂサーバコンピュータへの更新有無の問い合わせを省略できるため、Ｗｅｂサーバコンピュータとキャッシング用サーバコンピュータとの間の通信量を大幅に削減できるとともに、Ｗｅｂクライアントコンピュータからのデータ要求に対する応答時間を飛躍的に短縮できることになる。
また、キャッシング用コンピュータのキャッシュ管理プロセスが、更新管理するＷｅｂデータそれぞれについてＷｅｂクライアントコンピュータからのアクセス日時を記録し、一定時間を越えてアクセスのないＷｅｂデータを更新管理の対象外とすることにより、Ｗｅｂサーバコンピュータとキャッシング用コンピュータとの間の通信量をさらに削減できることになる。
【００１８】
また、データ管理プロセスがＷｅｂサーバコンピュータが保持するＷｅｂデータの更新を監視し、一方、キャッシング用コンピュータのキャッシュ管理プロセスがこのデータ管理プロセスからの更新通知に応じてＷｅｂデータの書き換えを発生させるために、既存のＷｅｂサーバプロセスおよびＷｅｂプロキシサーバプロセスをなんら改造する必要がない。
【００２１】
また、この発明は、データ管理プロセスからキャッシュ管理プロセスへの更新通知を一定時間毎に一括して送信するようにしたものである。
【００２２】
これにより、同様に、Ｗｅｂサーバコンピュータとキャッシング用コンピュータとの間の通信量をさらに削減できることになる。
【００２３】
【発明の実施の形態】
以下、図面を参照しながらこの発明の実施形態を説明する。図１は、この発明の実施形態に係るＷｅｂネットワークの構成を示す図である。
【００２４】
図１に示すように、このＷｅｂネットワークは、ＬＡＮ１（１）とＬＡＮ２（２）とをルータ１（４１）、低速通信回線（３）およびルータ（４２）により相互に接続したものであり、ＬＡＮ１（１）には計算機１（１０）が、ＬＡＮ２（２）には計算機２（２０）と計算機３（３０）とがそれぞれ接続されている。そして、計算機１（１０）では、Ｗｅｂサーバプロセス（１１）がデータファイル（１２）のＷｅｂデータを提供すべく動作し、計算機２（２０）では、Ｗｅｂプロキシサーバプロセス（２１）がキャッシュファイル（２２）にＷｅｂデータをキャッシングし、さらに、計算機３（３０）では、Ｗｅｂクライアントプロセス（３１）がＷｅｂサーバプロセス（１１）にＷｅｂデータを要求すべく動作している。
【００２５】
また、これに加えて、このＷｅｂネットワークでは、計算機１（１０）でデータ管理プロセス（１３）が、計算機２（２０）でキャッシュ管理プロセス（２３）がそれぞれ動作する。そして、この発明は、この計算機１（１０）のデータ管理プロセス（１３）と計算機２（２０）のキャッシュ管理プロセス（２３）とがキャッシュファイル（２２）のＷｅｂデータをより効率的に更新管理すべく動作する点を特徴としており、以下、この点について詳述する。
【００２６】
このＷｅｂネットワークでは、まず、Ｗｅｂプロキシサーバプロセス（２１）からＷｅｂサーバプロセス（１１）を見た場合のＷｅｂプロキシとしてキャッシュ管理プロセス（２３）を設定する。これにより、Ｗｅｂプロキシサーバプロセス（２１）とＷｅｂサーバプロセス（１１）との通信をキャッシュ管理プロセス（２３）に中継させるようにする。
【００２７】
一方、データ管理プロセス（１３）は、Ｗｅｂサーバプロセス（１１）がデータファイル（１２）に保持するＷｅｂデータをカテゴリごとに分けて管理している。そのために、このデータ管理プロセス（１３）は、各Ｗｅｂデータを一意に示すＵＲＬを引数にしたハッシュ関数をもっており、ハッシュ関数の値が同じデータを同じカテゴリとしている。なお、キャッシュ管理プロセス（２３）も、このデータ管理プロセス（１３）と同じハッシュ関数をもっている。
【００２８】
また、このデータ管理プロセス（１３）とキャッシュ管理プロセス（２３）とは、図２に示すような、ハッシュ関数の各値にＩＰマルチキャストのホスト・グループを対応づけた対応表をもっている。ＩＰマルチキャストとは、特定多数の相手にデータを同報するためのものであり、あるホスト・グループに向けてデータを送信すると、そのホスト・グループに登録された相手すべてにそのデータが転送される。そして、この対応表は、同一カテゴリに含まれるデータの更新の通知にホスト・グループを利用するために用いられる。
【００２９】
ここで、図３を参照して、データ管理プロセス（１３）の動作手順について説明する。
【００３０】
データ管理プロセス（１３）は、Ｗｅｂデータの更新を監視すべくデータファイル（１２）に対するアクセスを監視しており（ステップＡ１）、データファイル（１２）のＷｅｂデータが更新されたときには（ステップＡ２のＹＥＳ）、そのＷｅｂデータを一意に示すＵＲＬと更新日時とを含むデータ更新通知を作成する（ステップＡ３）。また、このときに、ＵＲＬを引数にハッシュ関数の値を求め、前述の対応表からその値に対応するホスト・グループを求めておく。
【００３１】
そして、データ管理プロセス（１３）は、作成したデータ更新通知を一定時間ごとに一括して送信する（ステップＡ４のＹＥＳ，ステップＡ５）。より具体的には、データ管理プロセス（１３）は、同じハッシュ関数値をもっているデータ更新通知を１つの通知としてまとめ、このまとめたデータ更新通知をハッシュ関数値に対応するホスト・グループを宛先として送信する。このようにして送信されたデータ更新通知は、ＩＰマルチキャストの機構により、更新前のＷｅｂデータを保持する可能性のあるＷｅｂプロキシサーバプロセス（２１）のＷｅｂプロキシとなるキャッシュ管理プロセス（２３）へと配送される。
【００３２】
一方、キャッシュ管理プロセス（２３）は、Ｗｅｂプロキシサーバプロセス（２１）のＷｅｂプロキシとなっているので、Ｗｅｂサーバプロセス（１１）とＷｅｂプロキシサーバプロセス（２１）との通信を中継しながらその内容を監視することができる。一般的に、ＨＴＴＰを用いたＷｅｂアクセスでは、Ｗｅｂプロキシサーバプロセス（２１）からは、要求するデータのＵＲＬを含むＧＥＴリクエストがＷｅｂサーバプロセス（１１）へ送られ、一方、Ｗｅｂサーバプロセス（１１）からは、ＧＥＴリクエストに対するレスポンスがＷｅｂプロキシサーバプロセス（２１）へ送られる。
【００３３】
そこで、このキャッシュ管理プロセス（２３）は、ＧＥＴリクエストとそれに対応するレスポンスを中継しながらその内容を監視することで、Ｗｅｂプロキシサーバプロセス（２１）がキャッシュファイル（２２）にキャッシングしているＷｅｂデータのＵＲＬと更新日時とを取得する。そして、各ＷｅｂデータのＵＲＬ、更新日時およびリクエストの発生した時間（アクセス時間）を、図４に示すようなキャッシュデータ管理表に記録する。
【００３４】
このキャッシュデータ管理表にＵＲＬ、更新日時およびアクセス時間を記録するタイミングは、Ｗｅｂプロキシサーバプロセス（２１）からＧＥＴリクエストを受信したとき、または、Ｗｅｂサーバプロセス（１１）からＧＥＴリクエストのレスポンスを受信したときである。
【００３５】
ここで、図５を参照して、計算機３（３０）のＷｅｂクライアントプロセス（３１）からのデータ要求により、Ｗｅｂプロキシサーバプロセス（２１）からＧＥＴリクエストを送信する前のキャッシュ管理プロセス（２３）の監視動作手順について説明する。
【００３６】
キャッシュ管理プロセス（２３）は、Ｗｅｂプロキシサーバプロセス（２１）からＧＥＴリクエストを受信すると、まず、そのリクエストされたＵＲＬがキャッシュデータ管理表に存在するかどうか調べ（ステップＢ１）、存在した場合には（ステップＢ２のＹＥＳ）、そのときの日時をアクセス日時として保存する（ステップＢ３）。
【００３７】
次に、Ｉｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダ付きかどうかを調べ（ステップＢ４）、付いている場合（ステップＢ４のＹＥＳ）、リクエスト内の更新日時とキャッシュデータ管理表の更新日時とが同じであるかを調べる（ステップＢ５）。双方の日時が同じならば（ステップＢ６のＹＥＳ）、キャッシュファイル（２２）にキャッシングされているデータは最新であると判断し、Ｗｅｂプロキシサーバプロセス（２１）にデータが変更されていないことを示すレスポンス（Ｎｏｔ  Ｍｏｄｉｆｉｅｄ）を送る（ステップＢ７）。これにより、Ｗｅｂプロキシサーバプロセス（２１）は、データファイル（２２）のキャッシングされたＷｅｂデータを読み出し、計算機３（３０）のＷｅｂクライアントプロセス（３１）へ転送する。したがって、本発明によれば、従来であれば発生していたＷｅｂサーバプロセス（１１）への問い合わせを省略できることになる。このＷｅｂサーバプロセス（１１）への問い合わせは、低速通信回線（３）を介して行なわれるため、Ｗｅｂクライアントプロセス（３１）からのデータ要求に対する応答時間を飛躍的に短縮する。
【００３８】
一方、日時が同じでなければ（ステップＢ６のＮＯ）、Ｗｅｂプロキシサーバプロセス（２１）にキャッシングされているデータは最新ではないので、そのＧＥＴリクエストをＷｅｂサーバプロセス（１１）へ転送する。この後、キャッシュ管理プロセス（２３）は、このＧＥＴリクエストに対するレスポンスとしてデータ本体を受けることになるので、その時に、キャッシュデータ管理表にある更新日時をレスポンス内の更新日時に変更する。
【００３９】
また、Ｉｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダが付いていない場合（ステップＢ４のＮＯ）、キャッシュデータ管理表の更新日時を空に設定した上で（ステップＢ９）、そのＧＥＴリクエストをＷｅｂサーバプロセス（１１）へ転送する（ステップＢ８）。この場合も、キャッシュ管理プロセス（２３）は、このＧＥＴリクエストに対するレスポンスとしてデータ本体を受けることになるので、その時に、キャッシュデータ管理表にある更新日時をレスポンス内の更新日時に変更する。
【００４０】
キャッシュデータ管理表に存在しない場合（ステップＢ２のＮＯ）、キャッシュ管理プロセス（２３）は、まず、ＵＲＬとアクセス日付とを保存する（ステップＢ１０）。
【００４１】
次に、Ｉｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダ付きかどうかを調べ（ステップＢ１１）、付いている場合（ステップＢ１１のＹＥＳ）、リクエスト内の更新日時を保存した上で（ステップＢ１２）、そのＧＥＴリクエストをＷｅｂサーバプロセス（１１）へ転送する（ステップＢ８）。この場合は、このＧＥＴリクエストに対するレスポンスとしてデータ本体を受けた場合にのみ、キャッシュデータ管理表にある更新日時をレスポンス内の更新日時に変更する。
【００４２】
一方、Ｉｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダが付いていない場合（ステップＢ１１のＮＯ）、キャッシュデータ管理表の更新日時を空に設定した上で（ステップＢ９）、そのＧＥＴリクエストをＷｅｂサーバプロセス（１１）へ転送する（ステップＢ８）。この場合は、このＧＥＴリクエストに対するレスポンスとしてデータ本体を受けることになるので、その時に、キャッシュデータ管理表にある更新日時をレスポンス内の更新日時に変更する。
【００４３】
次に、図６を参照して、Ｗｅｂサーバプロセス（１１）からＧＥＴリクエストのレスポンスを受信したときのキャッシュ管理プロセス（２３）の動作手順について説明する。
【００４４】
キャッシュ管理プロセス（２３）は、Ｗｅｂサーバプロセス（１１）からＧＥＴリクエストのレスポンスを受信すると、そのレスポンスに対応するＵＲＬがキャッシュデータ管理表に存在するかどうかを調べ（ステップＣ１）、存在した場合には（ステップＣ２のＹＥＳ）、さらに、その内容が“Ｎｏｔ  Ｍｏｄｉｆｉｅｄ”かどうか調べる（ステップＣ３）。ここで、その内容が“Ｎｏｔ  Ｍｏｄｉｆｉｅｄ”でなければ（ステップＣ３のＮＯ）、更新日時をキャッシュデータ管理表に保存する（ステップＣ４）。
【００４５】
そして、キャッシュ管理プロセス（２３）は、このレスポンスをＷｅｂプロキシサーバプロセス（２１）に転送する（ステップＣ５）。Ｗｅｂプロキシサーバプロセス（２１）は、レスポンスにデータ本体が含まれている場合は、それをキャッシュファイル（２２）にキャッシングするとともに、要求元の計算機３（３０）に転送する。
【００４６】
次に、図７を参照して、データ管理プロセス（１３）から上述したデータ更新通知を受信したときのキャッシュ管理プロセス（２３）の動作手順について説明する。
【００４７】
キャッシュ管理プロセス（２３）は、データ管理プロセス（１３）からデータ更新通知を受信すると、そのＵＲＬがキャッシュデータ管理表にあるか調べ（ステップＤ１）、もしあれば（ステップＤ２のＹＥＳ）、そのＵＲＬの更新日時をデータ更新通知内の更新日時に変更する（ステップＤ３）。次に、その時の日時とキャッシュデータ管理表のアクセス日時とを比較する（ステップＤ４）。そして、その間が一定時間空いていなければ（ステップＤ５のＮＯ）、計算機１（１０）のＷｅｂサーバプロセス（１１）に対してそのＵＲＬのデータを要求する（ＧＥＴリクエスト送信）（ステップＤ６）。この要求に応じて、Ｗｅｂサーバプロセス（１１）は、データファイル（１２）からそのＷｅｂデータを読み出し、計算機２（２０）のキャッシュ管理プロセス（２３）に転送する。そして、キャッシュ管理プロセス（２３）は、キャッシュファイル（２２）上のそのＵＲＬに対応するデータを更新する。
【００４８】
一方、２つの間に一定時間空いていれば（ステップＤ５のＹＥＳ）、一定時間の間キャッシュファイル（２２）上のデータは要求されていないことが推測できるので、ＵＲＬと更新日時およびアクセス日時の２つの日時とをデータ管理表から削除する（ステップＤ７）。このとき、Ｗｅｂプロキシサーバプロセス（２１）に対しては、ＵＲＬのデータの要求は行なわない。
【００４９】
このように、この実施形態のＷｅｂネットワークでは、データ管理プロセス（１３）とキャッシュ管理プロセス（２３）とがキャッシュファイル（２２）のＷｅｂデータをより効率的に更新管理すべく動作するため、従来であれば発生していた、Ｗｅｂクライアントサーバプロセス（３１）がデータを要求したときのＷｅｂサーバプロセス（１１）への問い合わせを省略でき、Ｗｅｂクライアントプロセス（３１）からのデータ要求に対する応答時間を飛躍的に短縮できることになる。
【００５０】
また、データ管理プロセス（１３）がＷｅｂサーバプロセス（１１）の保持するＷｅｂデータの更新を監視し、一方、キャッシュ管理プロセス（２３）がこのデータ管理プロセス（１３）からの更新通知に応じてキャッシュファイル（２２）のデータ書き換えを行なっているために、既存のＷｅｂサーバプロセス（１１）およびＷｅｂプロキシサーバプロセス（２１）をなんら改造する必要がない。
【００５１】
さらに、更新通知を受けた時に、一定時間の間要求されていないことが推測されるキャッシュファイル（２２）上のデータを更新管理対象から外し、また、データ管理プロセス（１３）がキャッシュ管理プロセス（２３）への更新通知を一定時間毎に一括して送信することにより、Ｗｅｂサーバプロセス（１１）とＷｅｂプロキシサーバプロセス（２１）との間の通信量を削減できることになる。
【００５２】
なお、前述した実施形態では、ＧＥＴリクエストとそれに対応するレスポンスを中継しながらその内容を監視することで、Ｗｅｂプロキシサーバプロセス（２１）がキャッシュファイル（２２）にキャッシングしているＷｅｂデータのＵＲＬと更新日時とを取得する例を説明したが、たとえば一定時間毎にキャッシュファイル（２２）を参照することにより、キャッシング中のＷｅｂデータのＵＲＬと更新日時とを取得するようにしても構わない。
【００５３】
また、前述した実施形態では、計算機１（１０）でデータ管理プロセス（１３）が、計算機２（２０）でキャッシュ管理プロセス（２３）がそれぞれ動作する例を説明したが、データ管理プロセス（１３）は、Ｗｅｂデータの更新を監視することができれば、計算機１（１０）以外の計算機で動作してもよく、キャッシュ管理プロセス（２３）は、Ｗｅｂプロシキサーバプロセス（２１）とＷｅｂサーバプロセス（１１）との間に介在してＧＥＴリクエストとそれに対応するレスポンスを中継しながらその内容を監視することができれば、計算機２（２０）以外の計算機で動作してもよい。
【００５４】
【発明の効果】
以上詳述したように、この発明によれば、ＷｅｂサーバプロセスとＷｅｂプロキシサーバプロセスとの間に介在するキャッシュ管理プロセスが、Ｗｅｂデータが更新された旨を示す更新通知をデータ管理プロセスから受けたときに、キャッシング中のＷｅｂデータを書き換えさせるべくＷｅｂプロキシサーバプロセスに対してそのＷｅｂデータを要求するために、従来であれば発生していた、Ｗｅｂクライアントサーバプロセスからのデータ要求時のＷｅｂプロキシサーバプロセスからＷｅｂサーバプロセスへの更新有無の問い合わせを省略でき、ＷｅｂサーバとＷｅｂプロキシサーバとの間の通信量を大幅に削減できるとともに、Ｗｅｂクライアントからのデータ要求に対する応答時間を飛躍的に短縮できることになる。
【００５５】
また、データ管理プロセスがＷｅｂサーバプロセスの保持するＷｅｂデータの更新を監視し、一方、キャッシュ管理プロセスがこのデータ管理プロセスからの更新通知に応じてＷｅｂプロキシサーバプロセスのＷｅｂデータ書き換えを発生させるために、既存のＷｅｂサーバプロセスおよびＷｅｂプロキシサーバプロセスをなんら改造する必要がない。
【００５６】
さらに、キャッシュ管理プロセスが一定時間の間要求されていないことが推測されるキャッシュ上のデータを更新管理対象から外し、また、データ管理プロセスがキャッシュ管理プロセスへの更新通知を一定時間毎に一括して送信することにより、ＷｅｂサーバプロセスとＷｅｂプロキシサーバプロセスとの間の通信量をさらに削減できることになる。
【図面の簡単な説明】
【図１】この発明の実施形態に係るＷｅｂネットワークの構成を示す図。
【図２】同実施形態のデータ管理プロセスおよびキャッシュ管理プロセスが備えるハッシュ関数の各値とＩＰマルチキャストのホスト・グループとを対応づけた対応表を例示する図。
【図３】同実施形態のデータ管理プロセスの動作手順について説明するためのフローチャート。
【図４】同実施形態のキャッシュ管理プロセスが備える各ＷｅｂデータのＵＲＬ、更新日時およびリクエストの発生した時間（アクセス時間）を記録するキャッシュデータ管理表を例示する図。
【図５】同実施形態のＷｅｂプロキシサーバプロセスからＧＥＴリクエストを受信したときのキャッシュ管理プロセスの動作手順について説明するためのフローチャート。
【図６】同実施形態のＷｅｂサーバプロセスからＧＥＴリクエストのレスポンスを受信したときのキャッシュ管理プロセスの動作手順について説明するためのフローチャート。
【図７】同実施形態のデータ管理プロセスからデータ更新通知を受信したときのキャッシュ管理プロセスの動作手順について説明するためのフローチャート。
【図８】従来のＷｅｂプロキシサーバを介在させたＷｅｂサーバおよびＷｅｂクライアント間のデータ授受を説明するための図。
【図９】従来のＷｅｂプロキシサーバによるキャッシング中のＷｅｂデータの更新手順を説明するための図。
【符号の説明】
１…ＬＡＮ１
２…ＬＡＮ２
３…低速通信回線
１０…計算機１
１１…Ｗｅｂサーバプロセス
１２…ファイルデータ
１３…データ管理プロセス
２０…計算機２
２１…Ｗｅｂプロキシサーバプロセス
２２…キャッシュファイル
２３…キャッシュ管理プロセス
３０…計算機３
３１…Ｗｅｂクライアントプロセス
４１…ルータ１
４２…ルータ２
【図１】
0004202534.tif 000002
【図２】
0004202534.tif 000003
【図３】
0004202534.tif 000004
【図４】
0004202534.tif 000005
【図５】
0004202534.tif 000006
【図６】
0004202534.tif 000007
【図７】
0004202534.tif 000008
【図８】
0004202534.tif 000009
【図９】
0004202534.tif 000010