(57)【特許請求の範囲】
【請求項１】
クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、
前記マスタサーバ装置のＷＷＷデータの複製を記憶する複製記憶手段と、
前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なＩＤを記憶するＩＤ記憶手段と、
前記クライアント装置から前記複製への書き込み要求を受けた際には該複製の更新ＷＷＷデータを前記ＩＤ記憶手段に記憶されたＩＤにより識別される他の複製サーバ装置に対して配送し、前記他の複製サーバ装置から更新ＷＷＷデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、
を具備することを特徴とする複製サーバ装置。
【請求項２】
クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、
前記マスタサーバ装置のＷＷＷデータの複製を記憶する複製記憶手段と、
前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なＩＤを記憶するＩＤ記憶手段と、
前記クライアント装置から前記複製への書き込み要求を受けた際には該複製のＷＷＷデータ更新を前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバ装置に対して通知し、前記他の複製サーバ装置からＷＷＷデータ更新の通知を受けた際には前記複製記憶手段が記憶する複製のうち該当するものを無効化する手段と、
を具備することを特徴とする複製サーバ装置。
【請求項３】
クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、
前記マスタサーバ装置のＷＷＷデータの複製を記憶する複製記憶手段と、
前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なＩＤを記憶するＩＤ記憶手段と、
ＷＷＷデータへの書き込みの排他制御を行うための情報を記憶するロック記憶手段と、
前記クライアント装置からのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバ装置に対して該ＷＷＷデータのロック要求を行い、前記クライアント装置からのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバ装置に対して該ＷＷＷデータのロック解除要求を行い、前記他の複製サーバ装置からのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記他の複製サーバ装置からのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記複製記憶手段が記憶する複製のうち該当するものを無効化する手段と、
を具備することを特徴とする複製サーバ装置。
【請求項４】
クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、
前記マスタサーバ装置のＷＷＷデータの複製を記憶する複製記憶手段と、
前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なＩＤを記憶するＩＤ記憶手段と、
ＷＷＷデータへの書き込みの排他制御を行うための情報を記憶するロック記憶手段と、
前記クライアント装置からのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバ装置に対して該ＷＷＷデータのロック要求を行い、前記クライアント装置からのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバ装置に対して該ＷＷＷデータの更新ＷＷＷデータを含むロック解除要求を配送し、前記他の複製サーバ装置からのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記他の複製サーバ装置からのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、該ロック解除要求に含まれる更新ＷＷＷデータを用いて前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、
を具備することを特徴とする複製サーバ装置。
【請求項５】
コンピュータに、マスタサーバのＷＷＷデータの複製を複製記憶手段に記憶させ、該マスタサーバの代理としてクライアントに複製を提供させる複製サーバプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
該複製サーバプログラムは、
前記マスタサーバを共通のマスタサーバとする他の複製サーバを識別可能なＩＤをＩＤ記憶手段に記憶させ、前記クライアントから前記複製への書き込み要求を受けた際には該複製の更新ＷＷＷデータを前記ＩＤ記憶手段に記憶されたＩＤにより識別される他の複製サーバに対して配送させ、前記他の複製サーバから更新ＷＷＷデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新させるためのプログラムコードを含むことを特徴とする複製サーバプログラムを記録した記録媒体。
【請求項６】
前記複製サーバプログラムは、
ＷＷＷデータへの書き込みの排他制御を行うための情報をロック記憶手段に記憶させ、
前記クライアントからのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録させるとともに前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバに対する該ＷＷＷデータのロック要求を行わせ、
前記クライアントからのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消させるとともに前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバに対する該ＷＷＷデータのロック解除要求を行わせ、
前記他の複製サーバからのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録させ、前記他の複製サーバからのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消させるとともに前記複製記憶手段が記憶する複製のうち該当するものを無効化させるためのプログラムコードを含むことを特徴とする請求項５に記載の複製サーバプログラムを記録した記録媒体。
【請求項７】
マスタサーバ装置と、クライアントからの要求に基づき前記マスタサーバ装置のＷＷＷデータの複製を該クライアントに返送する複数の複製サーバ装置と、により構成されるサーバシステムにおいて、
前記複製サーバ装置は、
前記マスタサーバ装置のＷＷＷデータの複製を記憶する複製記憶手段と、
前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なＩＤを記憶するＩＤ記憶手段と、
前記クライアント装置から前記複製への書き込み要求を受けた際には該複製の更新ＷＷＷデータを前記ＩＤ記憶手段に記憶されたＩＤにより識別される他の複製サーバ装置に対して配送し、前記他の複製サーバ装置から更新ＷＷＷデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、を具備することを特徴とするサーバシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はクライアント／サーバ方式の情報提供システムに好適なサーバ装置に関し、特に、マスタサーバのデータの複製を記憶し、マスタサーバの代理（プロキシ）としてクライアントにデータを提供する複製サーバ装置（以下、「サーバ装置」を単に「サーバ」と略記する）に関する。
【０００２】
【従来の技術】
ＷＷＷ(World-Wide Web)システムにおいて、サーバへの負荷の集中やネットワークの混雑を緩和するなどの目的で、本来のＷＷＷサーバ（「マスタサーバ」と称する）のデータを複製し、マスタサーバの介在なしにユーザからのデータ読み出し要求に答えてデータを提供する仕組みの一つとして複製サーバが知られている。複製サーバ（「ミラーサーバ」と称されこともある）は、いわゆるウェブ・プロキシ(Web proxy)の一形態と考えることができる。
【０００３】
多くのウェブ・プロキシはユーザの代理のために利用されている。ユーザ代理のウェブ・プロキシはネットワーク上でユーザに近い場所に置かれ、ユーザ自身、ユーザの所属組織又はユーザが契約しているインターネットサービス業者（ＩＳＰ）などによって管理される。
【０００４】
一方、複製サーバは、情報を要求するクライアントとしてのユーザではなく情報を提供する側のマスタサーバの代理のために利用される。複製サーバは、ユーザに対してはあたかもマスタサーバであるかのように振る舞い、その内部ではマスタサーバのデータの複製を行なってユーザに提供する。このような複製サーバはマスタサーバの管理者又はその契約業者によって管理される。つまり、ユーザ代理のウェブ・プロキシとは管理主体が異なるという特徴がある。
【０００５】
また、複製サーバは、原理的にはウェブ・プロキシであるから、汎用的なウェブ・プロキシ・ソフトウェアを実装し、ＷＷＷにおいて一般的な通信プロトコルを用いてマスタサーバとの間で通信を行うものとして実現される。なお、配送の効率を上げるためにマスタサーバとの間で通常のウェブ・プロキシとは異なる通信プロトコルを実装した複製サーバもある。
【０００６】
上記従来例には次のような問題点がある。
【０００７】
ユーザ（クライアント）から複製サーバに対しデータの書き込み要求（例えばｈｔｔｐに規定のＰＵＴメソッド）があった場合、複製サーバは該要求をマスタサーバのみに送る。要求を受けたマスタサーバは送られてきた要求に基づくデータ更新を行うが、要求元以外の複製サーバに対して何ら処理を行わない。したがって、これら他の複製サーバが保持しているマスタサーバのデータの複製は、その有効期限が来るまでそのまま使われることになる。
【０００８】
したがって、これら他の複製サーバがユーザからのデータ読み出し要求（ＧＥＴメソッド）を受けた際に、該データはマスタサーバ上では更新されているにもかかわらず、複製サーバに保持されている古いデータがユーザに与えられてしまうという問題点がある。
【０００９】
これを防ぐためには、分散共有メモリ技術の分野で一般に行なわれているように、マスタサーバから複製サーバに対して更新データの配送または更新通知を行なうことが考えられる。この場合、マスタサーバが実装しているソフトウェアを改造して対複製サーバ処理を追加することが必要となる。
【００１０】
しかしながら、マスタサーバのソフトウェアの改造は一般には望ましくなく無変更での対応が望ましい。そもそも複製サーバが適用されるマスタサーバは、既に運用を開始しており高い負荷がかかっているからである。また、実行形式しか提供されていない商用のＷＷＷサーバソフトウェアを実装するマスタサーバでは、ソフトウェアを変更することすら不可能な場合もある。
【００１１】
ところで、同じデータに対して複数のクライアントが同時にデータへの書き込みを行なうと、データの一貫性が失われ、その後に読み出しを行なったクライアントに対して誤ったデータが提供されることがある。これを防ぐため、書き込みの前にロックを行ない、他のクライアントによる書き込みを禁止した上で書き込みを行なったのちに、ロック解除を行なう機構が提案されている。本来、ＷＷＷシステムにはロック機構がなく、最近になってようやくＷＥＢＤＡＶというロック機構を含む拡張仕様が策定された段階である（参考文献：HTTP Extensions for Distributed Authoring -WEBDAV,Y.Goland,E.Whitehead,A.Faizi,S.Carter,D.Jensen,February 1999,RFC 2518）。
【００１２】
現在、多くのＷＷＷサーバはこのロック機構を実現していない。マスタサーバにロック機構を追加する場合についても、やはりソフトウェアの改造が必要となり問題となる。また、データの更新とロックとを別々に通知するのは、通信量や複製サーバの負荷の増大の点で好ましくない。
【００１３】
【発明が解決しようとする課題】
本発明は上記事情を考慮してなされたものであり、複製サーバ装置間でクライアントに提供する複製の一貫性を維持でき、他のサーバ装置において更新が生じたため古くなった複製が提供されることのない複製サーバ装置を提供することを目的とする。
【００１４】
また、マスタサーバ装置への構成変更を伴わずにデータ更新の排他制御を実現する複製サーバ装置を提供することを目的とする。
【００１５】
【課題を解決するための手段】
上記課題を解決し目的を達成するために、本発明は次のように構成されている。
【００１６】
（１）本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のＷＷＷデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なＩＤを記憶するＩＤ記憶手段と、前記クライアント装置から前記複製への書き込み要求を受けた際には該複製の更新ＷＷＷデータを前記ＩＤ記憶手段に記憶されたＩＤにより識別される他の複製サーバ装置に対して配送し、前記他の複製サーバ装置から更新ＷＷＷデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、を具備することを特徴とする。
【００１７】
（２）本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のＷＷＷデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なＩＤを記憶するＩＤ記憶手段と、前記クライアント装置から前記複製への書き込み要求を受けた際には該複製のＷＷＷデータ更新を前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバ装置に対して通知し、前記他の複製サーバ装置からＷＷＷデータ更新の通知を受けた際には前記複製記憶手段が記憶する複製のうち該当するものを無効化する手段と、を具備することを特徴とする。
【００１８】
（３）本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のＷＷＷデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なＩＤを記憶するＩＤ記憶手段と、ＷＷＷデータへの書き込みの排他制御を行うための情報を記憶するロック記憶手段と、前記クライアント装置からのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバ装置に対して該ＷＷＷデータのロック要求を行い、前記クライアント装置からのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバ装置に対して該ＷＷＷデータのロック解除要求を行い、前記他の複製サーバ装置からのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記他の複製サーバ装置からのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記複製記憶手段が記憶する複製のうち該当するものを無効化する手段と、を具備することを特徴とする。
【００１９】
（４）本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のＷＷＷデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なＩＤを記憶するＩＤ記憶手段と、ＷＷＷデータへの書き込みの排他制御を行うための情報を記憶するロック記憶手段と、前記クライアント装置からのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバ装置に対して該ＷＷＷデータのロック要求を行い、前記クライアント装置からのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバ装置に対して該ＷＷＷデータの更新ＷＷＷデータを含むロック解除要求を配送し、前記他の複製サーバ装置からのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記他の複製サーバ装置からのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、該ロック解除要求に含まれる更新ＷＷＷデータを用いて前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、を具備することを特徴とする。
【００２０】
（５）本発明の記録媒体は、コンピュータに、マスタサーバのＷＷＷデータの複製を複製記憶手段に記憶させ、該マスタサーバの代理としてクライアントに複製を提供させる複製サーバプログラムを記録したコンピュータ読み取り可能な記録媒体であって、該複製サーバプログラムは、前記マスタサーバを共通のマスタサーバとする他の複製サーバを識別可能なＩＤをＩＤ記憶手段に記憶させ、前記クライアントから前記複製への書き込み要求を受けた際には該複製の更新ＷＷＷデータを前記ＩＤ記憶手段に記憶されたＩＤにより識別される他の複製サーバに対して配送させ、前記他の複製サーバから更新ＷＷＷデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新させるためのプログラムコードを含むことを特徴とする複製サーバプログラムを記録した記録媒体である。
【００２１】
（６）本発明の記録媒体は、上記（５）に記載の記録媒体であって、前記複製サーバプログラムは、ＷＷＷデータへの書き込みの排他制御を行うための情報をロック記憶手段に記憶させ、前記クライアントからのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録させるとともに前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバに対する該ＷＷＷデータのロック要求を行わせ、前記クライアントからのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消させるとともに前記ＩＤ記憶手段が記憶するＩＤにより識別される他の複製サーバに対する該ＷＷＷデータのロック解除要求を行わせ、前記他の複製サーバからのＷＷＷデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録させ、前記他の複製サーバからのＷＷＷデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消させるとともに前記複製記憶手段が記憶する複製のうち該当するものを無効化させるためのプログラムコードを含むことを特徴とする。
【００２２】
（７）本発明のサーバシステムは、マスタサーバ装置と、クライアントからの要求に基づき前記マスタサーバ装置のＷＷＷデータの複製を該クライアントに返送する複数の複製サーバ装置と、により構成されるサーバシステムにおいて、前記複製サーバ装置は、前記マスタサーバ装置のＷＷＷデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なＩＤを記憶するＩＤ記憶手段と、前記クライアント装置から前記複製への書き込み要求を受けた際には該複製の更新ＷＷＷデータを前記ＩＤ記憶手段に記憶されたＩＤにより識別される他の複製サーバ装置に対して配送し、前記他の複製サーバ装置から更新ＷＷＷデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、を具備することを特徴とする。
【００２３】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
【００２４】
図１は本発明の実施形態に係るＷＷＷシステムの構成を示す図である。本実施形態のＷＷＷシステムは、複製を適用したＷＷＷシステムであって、オリジナルのデータの提供元であるマスタサーバ１と、マスタサーバ１のデータの複製を提供する複製サーバ２と、ユーザがデータの読み書きを行なうクライアント３とにより構成される。複製サーバ２はウェブ・プロキシの一形態であり、クライアント３から見てマスタサーバ１と複製サーバ２の両者の区別はない。また、図１には共通のマスタサーバ１を持つ複製サーバ２が３つ示されているが、複製サーバ２の設置台数は任意であり、一般には複数台である。
【００２５】
（第１実施形態）
図２は、本発明の第１実施形態に係る複製サーバの概略構成を示すブロック図である。本実施形態の複製サーバ２は、データの書き込み時のロックを行なわない簡易な構成を有する。データ更新時には他の複製サーバに対して更新後のデータの配送を行なう。
【００２６】
図２に示すように、本実施形態の複製サーバ２は、通信部１０、複製記憶部１２、対クライアント処理部１４、ＩＤ記憶部１６、対他の複製サーバ処理部１８、及び対マスタサーバ処理部２０を備えて成る。通信部１０は、マスタサーバ１、クライアント３、及び他の複製サーバ２との通信を行う。複製記憶部１２は、マスタサーバ１のデータの複製を記憶するものであり、より具体的にはＷＷＷデータ本体、及びその格納場所を示すＵＲＬ(Uniform Resource Locator)を記憶している。ＵＲＬは、複製記憶部１２から所要のＷＷＷデータにアクセスするための検索キーとして用いられる。
【００２７】
ここでいうＷＷＷデータとは、ＷＷＷのコンテンツを意味し、ＨＴＭＬ文書又はテキスト文書、画像データ又は音声データ、及びＪＡＶＡアプレットなどの種々のプログラムを含む。図３は複製記憶部１２の記憶内容の一例を示しており、「http://www.tasuba.co.jp」なるＵＲＬに、データ種別(content-type)がＨＴＭＬ形式のテキストのＷＷＷデータ（本体の名称は略記）が記憶されている。そして、このＷＷＷデータはマスタサーバ１のＷＷＷデータの複製である。
【００２８】
次に、ユーザの要求に応じてクライアントがサーバに接続してデータを読み出す場合の処理について説明する。
【００２９】
複製サーバが適用されたＷＷＷシステムでは、クライアント３からの要求に対し、ネットワーク上の距離や複製サーバ２の稼動状況に応じて負荷の低い適当な複製サーバ２が選択される仕組みがある。この仕組みは例えばＤＮＳ（ドメインネームシステム；Domain Name System）サーバにより提供され、ＤＮＳサーバは指定されたＵＲＬのホスト名から適当な複製サーバ２を選択し、そのＩＰアドレスを返す。
【００３０】
図４は複製サーバ２におけるデータ読み出し時の動作を示すフローチャートである。
【００３１】
通信部１０を介してクライアント３から指定ＵＲＬのデータ読み出し要求（ＧＥＴメソッド）を受け取ると（ステップＳ１）、対クライアント処理部１４は、該ＵＲＬを検索キーとして複製記憶部１２に対して検索処理を行なうことで複製記憶部１０内に該当するＵＲＬが存在し、これに対応するＷＷＷデータが存在するか否かを判定する（ステップＳ２）。
【００３２】
該当するＵＲＬのＷＷＷデータが複製記憶部１０内に存在する場合、対クライアント処理部１４はこれを読み出し、要求元のクライアントに対し通信部１０を介して送信する（ステップＳ３）。
【００３３】
一方、複製サーバ２が、マスタサーバ１の全データのうち一部のデータの複製しか保持していない場合など、複製記憶部１２には複製が存在しないＷＷＷデータのＵＲＬが要求された時点で、通信部１０はマスタサーバ１との接続を行い、対クライアント処理部１４が、該ＵＲＬに対応するＷＷＷデータをマスタサーバ１から入手したのち（ステップＳ４）、クライアント３に送信する。
【００３４】
図５は、複製サーバ２におけるデータ更新時の動作を示すフローチャートである。
【００３５】
ユーザはクライアント３上でＷＷＷデータを作成または更新し、その結果をデータ書き込み要求（ＰＵＴメソッド）によって複製サーバ２に送信する。
【００３６】
かかる要求と共に通信部１０を介してクライアント３から更新データを受け取とると、対クライアント処理部１４は、自身の複製記憶部１２中において該当するＷＷＷデータの複製を、更新データに基づいて更新する（ステップＳ１）。
【００３７】
次に、対マスタサーバ処理部２０は、通信部１０を介して更新データをマスタサーバ２０に送信する（ステップＳ３）。このステップＳ３の送信処理は、クライアント３がマスタサーバ１に対して直接的にアクセスすることがない場合に限り、非同期的な一括処理により行なわれてもよい。
【００３８】
次に、対他の複製サーバ処理部１８は、ＩＤ記憶部１６を参照することで共通のマスタサーバ１を持つ他の複製サーバ２を特定し、通信部１０を介して上記更新データを配送する（ステップＳ４）。
複製サーバ２はウェブ・プロキシの一形態であることを考慮したとしても、ユーザ代理のウェブ・プロキシの場合とは異なり、共通のマスタサーバ１を持つ他の複製サーバ２は特定可能である。それは、複製サーバ２はマスタサーバ１の管理者またはその契約業者によって一元的に運営されるからである。
【００３９】
ステップＳ４における複製サーバ間でのデータ配送処理において、通信部１０は一対一の通常の通信動作を行なってもよいし、マルチキャストなどの方法で同時に複数の複製サーバとの通信動作を行なってもよい。また、対他の複製サーバ処理部１８は、ステップＳ４における更新データの配送に先立って、他の複製サーバ２の各々に対しデータ更新要求を発行する。
【００４０】
図６は他の複製サーバ２においてクライアントからのデータ書き込み要求が発生した場合のデータ更新時の動作を示すフローチャートである。
【００４１】
他の複製サーバ２がクライアント３からデータ書き込み要求を受けた場合、上記ステップＳ４の処理に従い該他の複製サーバ２がデータ更新要求を発行する。
【００４２】
このデータ更新要求を通信部１０を介して複数サーバ２が受信すると（ステップＳ１）、対他の複製サーバ処理部１８は、要求元である他の複製サーバ２から更新データの配送を受け、自身の複製記憶部１２中において該当するＷＷＷデータの複製を、配送されてきた更新データに基づいて更新する（ステップＳ２）。
【００４３】
共通のマスタサーバ１を持つ複数の複製サーバ２が、上記図２に示した構成を有するとともに上述した動作を行うことで、一つの複製サーバ２にデータ書き込み要求が送られると、該要求に基づくデータ更新が他の複製サーバ２において速やかに行われることになり、複製サーバ２間において各々が記憶する複製の一貫性を保つことができる。したがって、これらの複製サーバ２はユーザに対して常に最新の複製を提供できる。しかも、マスタサーバ１への構成変更は不要である。
【００４４】
次に、第１実施形態の変形例を説明する。
【００４５】
第１実施形態の変形例は、複数サーバ２間において更新データの配送を行わず、更新の事実を通知するのみにとどめる。すなわち、クライアント３からデータ書き込み要求を受けた複製サーバ２において、対他の複製サーバ処理部１８は、該書き込み要求によるＷＷＷデータの更新データを他の複製サーバ２に対して配送せず、その代わりに、どのＷＷＷデータが更新されたかを通知する。
【００４６】
データ更新の通知を受けた他の複製サーバ２では、対他の複製サーバ処理部１８が、該当するＷＷＷデータの複製を無効化する。
【００４７】
このような第１実施形態の変形例によれば、更新データの配送を受けないので更新されたＷＷＷデータについてはマスタサーバ１からの送信となってしまうが、他の複製サーバ２において更新が生じたため古くなった複製がユーザに提供されることを防止できる。
【００４８】
（第２実施形態）
上述した第１実施形態では複製サーバがデータの書き込み時のロックを行なわない構成について説明したが、第２実施形態は、ロックによる書き込み排他制御が追加されており、また、第１実施形態の変形例と同様に、更新後のデータの配送を行なわず、更新通知のみを行なう構成となっている。
【００４９】
図７は、本発明の第２実施形態に係る複製サーバの概略構成を示すブロック図である。第２実施形態の複製サーバ２は、図２に示した構成に加えて、排他制御のためのロック記憶部２２を備える。ロック記憶部２２は、あるＵＲＬがロックされているか否かを管理する。またロック記憶部２２は、例えば図８に示すＵＲＬ一覧表を記憶しており、該一覧表に基づいてロック管理を行う。
【００５０】
ロック記憶部２２は、ロック時にはＵＲＬ一覧表へＵＲＬ項目を挿入し、ロック解除時には該当ＵＲＬ項目をＵＲＬ一覧表から削除する。
【００５１】
なお、ＵＲＬ一覧表の項目内容は拡張されてもよく、ロックをかけたクライアントまたはユーザの識別子、ロックの種類などの属性情報を項目内容としてＵＲＬ一覧表に記憶させるように構成しても良い。
【００５２】
第２実施形態の複製サーバ２において、データの読み出し時の動作は、第１実施形態において図４を参照して説明した動作と同様であり、ここではその説明を省略する。
【００５３】
次に、本実施形態の特徴に係るデータのロック処理について図９乃至図１２を参照して説明する。
【００５４】
まず、データのロック要求について説明する。
【００５５】
図９は、クライアント３からロック要求を受けた複製サーバ２におけるロック処理の動作を示すフローチャートである。
【００５６】
データの更新を行うクライアント３は、更新に先立って複製サーバ２にＵＲＬを指定してロック要求（ＬＯＣＫメソッド）を送る。
【００５７】
複製サーバ２の対クライアント処理部１４は、クライアント３から通信部１０を介してロック要求を受け取る（ステップＳ１）。
【００５８】
次に、対クライアント処理部１４は、ロック記憶部２２を検索し、ロック要求において指定されたＵＲＬに該当するＵＲＬ項目がロック記憶部２２に登録されているか否かを判定する（ステップＳ２）。
【００５９】
ロック記憶部２２のＵＲＬ一覧表に該当するＵＲＬ項目が登録済みの場合は、この度のロック要求に係るＵＲＬは既にロックがかかっていることを意味し、該ロック要求を拒否する（ステップＳ３）。該当するＵＲＬ項目がロック記憶部２２から見つからなかった場合、対クライアント処理部１４はこの度のロック要求に係るＵＲＬ項目をロック記憶部２２のＵＲＬ一覧表に格納し（ステップＳ４）、続いて、対他の複製サーバ処理部１８は、通信部１０を介して他の複製サーバ２に対しロック要求を通知する（ステップＳ５）。
【００６０】
図１０のフローチャートに示すように、他の複製サーバ２における対他の複製サーバ処理部１８は、複製サーバ２からロック要求を受け取り（ステップＳ１）、該ロック要求により指定されたＵＲＬを自身のロック記憶部２２に登録する（ステップＳ２）。他の複製サーバ２において、このロック要求は拒否されない。
【００６１】
ここで、データの更新時の動作について説明する。
【００６２】
ユーザはクライアント３上でＷＷＷデータを作成または更新し、その結果をデータ書き込み要求（ＰＵＴメソッド）によって複製サーバ２に送信する。そして、クライアント３から更新データを受け取った複製サーバ２においては、対クライアント処理部１４が自身の複製記憶部１２内で該当する複製を更新データに基づいて更新し、対マスタサーバ処理部２０は、該更新データをマスタサーバ１に送信する。
【００６３】
ここで、ロック記憶部２２にＵＲＬ項目が登録されていることで該当ＵＲＬのＷＷＷデータにロックがかかっている場合、排他制御によって他の複製サーバ２においては該当するＷＷＷデータへの書き込みは禁止されている。そこで、データの更新がすべて完了した時点でクライアント３によりこのＷＷＷデータのロック解除要求が行なわれる。そのため、クライアント３からデータの更新要求を受けた時点において、対他の複製サーバ処理部１８は他の複製サーバ２へのデータ更新通知は行なわない。
【００６４】
データのロック解除について説明する。
【００６５】
図１１は、クライアント３からロック解除要求を受けた複製サーバ２におけるロック解除処理の動作を示すフローチャートである。
【００６６】
ロックをかけたＷＷＷデータへの書き込み（更新）が完了し、当面はデータの書き込みを行なわない場合、クライアント３は複製サーバ２に対し、ＵＲＬを指定してロック解除要求（ＵＮＬＯＣＫメソッド）を送る。
【００６７】
複製サーバ２において対クライアント処理部１４は、クライアント３からのロック解除要求を受け取る（ステップＳ１）。
【００６８】
次に、対クライアント処理部１４は、ロック記憶部２２を検索し、ロック要求において指定されたＵＲＬに該当するＵＲＬ項目がロック記憶部２２に登録されているか否かを判定する（ステップＳ２）。
【００６９】
ロック記憶部２２には該当するＵＲＬ項目が存在しない場合、指定されたＵＲＬに対するロックは掛かっていないことを意味する。この場合、対クライアント処理部１４は、この度のロック解除要求を拒否する（ステップＳ４）。ＵＲＬ項目が存在する場合、対クライアント処理部１４は、該当するＵＲＬ項目をロック記憶部２２のＵＲＬ一覧表から削除（すなわち、登録を抹消）し（ステップＳ３）、対他の複製サーバ処理部１８は、他の複製サーバに対しロック解除要求を通知する（ステップＳ５）。
【００７０】
図１２のフローチャートに示すように、他の複製サーバ２における対他の複製サーバ処理部１８は、複製サーバ２からロック解除要求を受け取り（ステップＳ１）、該ロック解除要求により指定されたＵＲＬを自身のロック記憶部２２から削除する。
【００７１】
また、ロック解除対象のＵＲＬのＷＷＷデータは更新されている可能性が高いので、対他の複製サーバ処理部１８は自身の複製記憶部１２中において該当するＷＷＷデータを無効化する。この場合、他の複製サーバ２からのデータ更新通知がロック解除要求により兼用されていることを意味し、つまり、データ更新通知動作を省略でき、通信部１０を介したネットワークへの負荷を軽減できる。
【００７２】
なお、第２実施形態では、上述した第１実施形態の変形例と同様に、更新データの配送を受けないので第１実施形態のように常に最新のＷＷＷデータを複製サーバ２から提供できなくなるが、他の複製サーバ２において更新が生じたため古くなった複製がユーザに提供されることを防止できる。
【００７３】
以上説明した第２実施形態によれば、マスタサーバ１への構成変更を伴わずに複製サーバ２においてデータ書き込みの排他制御を実現できる。すなわち、同じＷＷＷデータ（ここでは「複製」）に対する複数のクライアント３からの同時のデータ書き込みは、ロックを行ったクライアント以外のものは禁止されることになる。これによりＷＷＷデータの一貫性を維持でき、誤ったＷＷＷデータが提供されることを防止できる。
【００７４】
次に、第２実施形態の変形例を説明する。
【００７５】
第２実施形態の変形例は、上述した第１実施形態と同様に、複数サーバ２間において更新データの配送を行うものとする。具体的には、クライアント３からデータ書き込み要求を受けた複製サーバ２において図１１のステップＳ５を実行する際に、対他の複製サーバ処理部１８は、該書き込み要求によるＷＷＷデータの更新データをロック解除要求に含めて他の複製サーバ２に対して配送する。
【００７６】
更新データの配送を受けた他の複製サーバ２では、図１２のステップＳ３において対他の複製サーバ処理部１８が、該当するＷＷＷデータの複製を配送されてきたロック解除要求に含まれる更新データに基づいて更新する。
【００７７】
このような第２実施形態の変形例によれば、上述した第２実施形態と同様にマスタサーバ１への構成変更を伴わずに複製サーバ２においてデータ書き込みの排他制御を実現でき、さらには一つの複製サーバ２にデータ書き込み要求が送られると、該要求に基づくデータ更新が他の複製サーバ２において速やかに行われることになる。これにより第２実施形態とは異なり複製サーバ２間において各々が記憶する複製の一貫性を保つことができる。したがって、複製サーバ２はユーザに対して常に最新の複製を提供できる。
【００７８】
なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。
【００７９】
【発明の効果】
以上説明したように、本発明によれば、複製サーバ装置間でクライアントに提供する複製の一貫性を維持でき、他のサーバ装置において更新が生じたため古くなった複製が提供されることのない複製サーバ装置を提供できる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るＷＷＷシステムの構成を示す図
【図２】第１実施形態に係る複製サーバの概略構成を示すブロック図
【図３】本発明の実施形態に係る複製記憶部の記憶内容の一例を示す図
【図４】第１実施形態に係る複製サーバにおけるデータ読み出し時の動作を示すフローチャート
【図５】第１実施形態に係る複製サーバにおけるデータ更新時の動作を示すフローチャート
【図６】第１実施形態に係る他の複製サーバにおいてクライアントからのデータ書き込み要求が発生した場合のデータ更新時の動作を示すフローチャート
【図７】本発明の第２実施形態に係る複製サーバの概略構成を示すブロック図
【図８】第２実施形態に係るロック記憶部に記憶されるＵＲＬ一覧表の一例を示す図
【図９】第２実施形態に係り、クライアントからロック要求を受けた際の複製サーバにおけるロック処理の動作を示すフローチャート
【図１０】第２実施形態に係り、他の複製サーバからロック要求を受けた際の複製サーバにおけるロック処理の動作を示すフローチャート
【図１１】第２実施形態に係り、クライアントからロック解除要求を受けた際の複製サーバにおけるロック解除処理の動作を示すフローチャート
【図１２】第２実施形態に係り、他の複製サーバからロック解除要求を受けた際の複製サーバにおけるロック解除処理の動作を示すフローチャート
【符号の説明】
１…マスタサーバ
２…複製サーバ（ミラーサーバ）
３…クライアント
１０…通信部
１２…複製記憶部
１４…対クライアント処理部
１６…ＩＤ記憶部
１８…対他の複製サーバ処理部
２０…対マスタサーバ処理部
【図１】
0003762161.tif 000002
【図２】
0003762161.tif 000003
【図３】
0003762161.tif 000004
【図４】
0003762161.tif 000005
【図５】
0003762161.tif 000006
【図６】
0003762161.tif 000007
【図７】
0003762161.tif 000008
【図８】
0003762161.tif 000009
【図９】
0003762161.tif 000010
【図１０】
0003762161.tif 000011
【図１１】
0003762161.tif 000012
【図１２】
0003762161.tif 000013