JP3762161B2 - 複製サーバ装置 - Google Patents
複製サーバ装置 Download PDFInfo
- Publication number
- JP3762161B2 JP3762161B2 JP27825999A JP27825999A JP3762161B2 JP 3762161 B2 JP3762161 B2 JP 3762161B2 JP 27825999 A JP27825999 A JP 27825999A JP 27825999 A JP27825999 A JP 27825999A JP 3762161 B2 JP3762161 B2 JP 3762161B2
- Authority
- JP
- Japan
- Prior art keywords
- storage means
- server device
- replication
- server
- www data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【発明の属する技術分野】
本発明はクライアント/サーバ方式の情報提供システムに好適なサーバ装置に関し、特に、マスタサーバのデータの複製を記憶し、マスタサーバの代理(プロキシ)としてクライアントにデータを提供する複製サーバ装置(以下、「サーバ装置」を単に「サーバ」と略記する)に関する。
【0002】
【従来の技術】
WWW(World-Wide Web)システムにおいて、サーバへの負荷の集中やネットワークの混雑を緩和するなどの目的で、本来のWWWサーバ(「マスタサーバ」と称する)のデータを複製し、マスタサーバの介在なしにユーザからのデータ読み出し要求に答えてデータを提供する仕組みの一つとして複製サーバが知られている。複製サーバ(「ミラーサーバ」と称されこともある)は、いわゆるウェブ・プロキシ(Web proxy)の一形態と考えることができる。
【0003】
多くのウェブ・プロキシはユーザの代理のために利用されている。ユーザ代理のウェブ・プロキシはネットワーク上でユーザに近い場所に置かれ、ユーザ自身、ユーザの所属組織又はユーザが契約しているインターネットサービス業者(ISP)などによって管理される。
【0004】
一方、複製サーバは、情報を要求するクライアントとしてのユーザではなく情報を提供する側のマスタサーバの代理のために利用される。複製サーバは、ユーザに対してはあたかもマスタサーバであるかのように振る舞い、その内部ではマスタサーバのデータの複製を行なってユーザに提供する。このような複製サーバはマスタサーバの管理者又はその契約業者によって管理される。つまり、ユーザ代理のウェブ・プロキシとは管理主体が異なるという特徴がある。
【0005】
また、複製サーバは、原理的にはウェブ・プロキシであるから、汎用的なウェブ・プロキシ・ソフトウェアを実装し、WWWにおいて一般的な通信プロトコルを用いてマスタサーバとの間で通信を行うものとして実現される。なお、配送の効率を上げるためにマスタサーバとの間で通常のウェブ・プロキシとは異なる通信プロトコルを実装した複製サーバもある。
【0006】
上記従来例には次のような問題点がある。
【0007】
ユーザ(クライアント)から複製サーバに対しデータの書き込み要求(例えばhttpに規定のPUTメソッド)があった場合、複製サーバは該要求をマスタサーバのみに送る。要求を受けたマスタサーバは送られてきた要求に基づくデータ更新を行うが、要求元以外の複製サーバに対して何ら処理を行わない。したがって、これら他の複製サーバが保持しているマスタサーバのデータの複製は、その有効期限が来るまでそのまま使われることになる。
【0008】
したがって、これら他の複製サーバがユーザからのデータ読み出し要求(GETメソッド)を受けた際に、該データはマスタサーバ上では更新されているにもかかわらず、複製サーバに保持されている古いデータがユーザに与えられてしまうという問題点がある。
【0009】
これを防ぐためには、分散共有メモリ技術の分野で一般に行なわれているように、マスタサーバから複製サーバに対して更新データの配送または更新通知を行なうことが考えられる。この場合、マスタサーバが実装しているソフトウェアを改造して対複製サーバ処理を追加することが必要となる。
【0010】
しかしながら、マスタサーバのソフトウェアの改造は一般には望ましくなく無変更での対応が望ましい。そもそも複製サーバが適用されるマスタサーバは、既に運用を開始しており高い負荷がかかっているからである。また、実行形式しか提供されていない商用のWWWサーバソフトウェアを実装するマスタサーバでは、ソフトウェアを変更することすら不可能な場合もある。
【0011】
ところで、同じデータに対して複数のクライアントが同時にデータへの書き込みを行なうと、データの一貫性が失われ、その後に読み出しを行なったクライアントに対して誤ったデータが提供されることがある。これを防ぐため、書き込みの前にロックを行ない、他のクライアントによる書き込みを禁止した上で書き込みを行なったのちに、ロック解除を行なう機構が提案されている。本来、WWWシステムにはロック機構がなく、最近になってようやくWEBDAVというロック機構を含む拡張仕様が策定された段階である(参考文献:HTTP Extensions for Distributed Authoring -WEBDAV,Y.Goland,E.Whitehead,A.Faizi,S.Carter,D.Jensen,February 1999,RFC 2518)。
【0012】
現在、多くのWWWサーバはこのロック機構を実現していない。マスタサーバにロック機構を追加する場合についても、やはりソフトウェアの改造が必要となり問題となる。また、データの更新とロックとを別々に通知するのは、通信量や複製サーバの負荷の増大の点で好ましくない。
【0013】
【発明が解決しようとする課題】
本発明は上記事情を考慮してなされたものであり、複製サーバ装置間でクライアントに提供する複製の一貫性を維持でき、他のサーバ装置において更新が生じたため古くなった複製が提供されることのない複製サーバ装置を提供することを目的とする。
【0014】
また、マスタサーバ装置への構成変更を伴わずにデータ更新の排他制御を実現する複製サーバ装置を提供することを目的とする。
【0015】
【課題を解決するための手段】
上記課題を解決し目的を達成するために、本発明は次のように構成されている。
【0016】
(1)本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、前記クライアント装置から前記複製への書き込み要求を受けた際には該複製の更新WWWデータを前記ID記憶手段に記憶されたIDにより識別される他の複製サーバ装置に対して配送し、前記他の複製サーバ装置から更新WWWデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、を具備することを特徴とする。
【0017】
(2)本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、前記クライアント装置から前記複製への書き込み要求を受けた際には該複製のWWWデータ更新を前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して通知し、前記他の複製サーバ装置からWWWデータ更新の通知を受けた際には前記複製記憶手段が記憶する複製のうち該当するものを無効化する手段と、を具備することを特徴とする。
【0018】
(3)本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、WWWデータへの書き込みの排他制御を行うための情報を記憶するロック記憶手段と、前記クライアント装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータのロック要求を行い、前記クライアント装置からのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータのロック解除要求を行い、前記他の複製サーバ装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記他の複製サーバ装置からのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記複製記憶手段が記憶する複製のうち該当するものを無効化する手段と、を具備することを特徴とする。
【0019】
(4)本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、WWWデータへの書き込みの排他制御を行うための情報を記憶するロック記憶手段と、前記クライアント装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータのロック要求を行い、前記クライアント装置からのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータの更新WWWデータを含むロック解除要求を配送し、前記他の複製サーバ装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記他の複製サーバ装置からのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、該ロック解除要求に含まれる更新WWWデータを用いて前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、を具備することを特徴とする。
【0020】
(5)本発明の記録媒体は、コンピュータに、マスタサーバのWWWデータの複製を複製記憶手段に記憶させ、該マスタサーバの代理としてクライアントに複製を提供させる複製サーバプログラムを記録したコンピュータ読み取り可能な記録媒体であって、該複製サーバプログラムは、前記マスタサーバを共通のマスタサーバとする他の複製サーバを識別可能なIDをID記憶手段に記憶させ、前記クライアントから前記複製への書き込み要求を受けた際には該複製の更新WWWデータを前記ID記憶手段に記憶されたIDにより識別される他の複製サーバに対して配送させ、前記他の複製サーバから更新WWWデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新させるためのプログラムコードを含むことを特徴とする複製サーバプログラムを記録した記録媒体である。
【0021】
(6)本発明の記録媒体は、上記(5)に記載の記録媒体であって、前記複製サーバプログラムは、WWWデータへの書き込みの排他制御を行うための情報をロック記憶手段に記憶させ、前記クライアントからのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録させるとともに前記ID記憶手段が記憶するIDにより識別される他の複製サーバに対する該WWWデータのロック要求を行わせ、前記クライアントからのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消させるとともに前記ID記憶手段が記憶するIDにより識別される他の複製サーバに対する該WWWデータのロック解除要求を行わせ、前記他の複製サーバからのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録させ、前記他の複製サーバからのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消させるとともに前記複製記憶手段が記憶する複製のうち該当するものを無効化させるためのプログラムコードを含むことを特徴とする。
【0022】
(7)本発明のサーバシステムは、マスタサーバ装置と、クライアントからの要求に基づき前記マスタサーバ装置のWWWデータの複製を該クライアントに返送する複数の複製サーバ装置と、により構成されるサーバシステムにおいて、前記複製サーバ装置は、前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、前記クライアント装置から前記複製への書き込み要求を受けた際には該複製の更新WWWデータを前記ID記憶手段に記憶されたIDにより識別される他の複製サーバ装置に対して配送し、前記他の複製サーバ装置から更新WWWデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、を具備することを特徴とする。
【0023】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
【0024】
図1は本発明の実施形態に係るWWWシステムの構成を示す図である。本実施形態のWWWシステムは、複製を適用したWWWシステムであって、オリジナルのデータの提供元であるマスタサーバ1と、マスタサーバ1のデータの複製を提供する複製サーバ2と、ユーザがデータの読み書きを行なうクライアント3とにより構成される。複製サーバ2はウェブ・プロキシの一形態であり、クライアント3から見てマスタサーバ1と複製サーバ2の両者の区別はない。また、図1には共通のマスタサーバ1を持つ複製サーバ2が3つ示されているが、複製サーバ2の設置台数は任意であり、一般には複数台である。
【0025】
(第1実施形態)
図2は、本発明の第1実施形態に係る複製サーバの概略構成を示すブロック図である。本実施形態の複製サーバ2は、データの書き込み時のロックを行なわない簡易な構成を有する。データ更新時には他の複製サーバに対して更新後のデータの配送を行なう。
【0026】
図2に示すように、本実施形態の複製サーバ2は、通信部10、複製記憶部12、対クライアント処理部14、ID記憶部16、対他の複製サーバ処理部18、及び対マスタサーバ処理部20を備えて成る。通信部10は、マスタサーバ1、クライアント3、及び他の複製サーバ2との通信を行う。複製記憶部12は、マスタサーバ1のデータの複製を記憶するものであり、より具体的にはWWWデータ本体、及びその格納場所を示すURL(Uniform Resource Locator)を記憶している。URLは、複製記憶部12から所要のWWWデータにアクセスするための検索キーとして用いられる。
【0027】
ここでいうWWWデータとは、WWWのコンテンツを意味し、HTML文書又はテキスト文書、画像データ又は音声データ、及びJAVAアプレットなどの種々のプログラムを含む。図3は複製記憶部12の記憶内容の一例を示しており、「http://www.tasuba.co.jp」なるURLに、データ種別(content-type)がHTML形式のテキストのWWWデータ(本体の名称は略記)が記憶されている。そして、このWWWデータはマスタサーバ1のWWWデータの複製である。
【0028】
次に、ユーザの要求に応じてクライアントがサーバに接続してデータを読み出す場合の処理について説明する。
【0029】
複製サーバが適用されたWWWシステムでは、クライアント3からの要求に対し、ネットワーク上の距離や複製サーバ2の稼動状況に応じて負荷の低い適当な複製サーバ2が選択される仕組みがある。この仕組みは例えばDNS(ドメインネームシステム;Domain Name System)サーバにより提供され、DNSサーバは指定されたURLのホスト名から適当な複製サーバ2を選択し、そのIPアドレスを返す。
【0030】
図4は複製サーバ2におけるデータ読み出し時の動作を示すフローチャートである。
【0031】
通信部10を介してクライアント3から指定URLのデータ読み出し要求(GETメソッド)を受け取ると(ステップS1)、対クライアント処理部14は、該URLを検索キーとして複製記憶部12に対して検索処理を行なうことで複製記憶部10内に該当するURLが存在し、これに対応するWWWデータが存在するか否かを判定する(ステップS2)。
【0032】
該当するURLのWWWデータが複製記憶部10内に存在する場合、対クライアント処理部14はこれを読み出し、要求元のクライアントに対し通信部10を介して送信する(ステップS3)。
【0033】
一方、複製サーバ2が、マスタサーバ1の全データのうち一部のデータの複製しか保持していない場合など、複製記憶部12には複製が存在しないWWWデータのURLが要求された時点で、通信部10はマスタサーバ1との接続を行い、対クライアント処理部14が、該URLに対応するWWWデータをマスタサーバ1から入手したのち(ステップS4)、クライアント3に送信する。
【0034】
図5は、複製サーバ2におけるデータ更新時の動作を示すフローチャートである。
【0035】
ユーザはクライアント3上でWWWデータを作成または更新し、その結果をデータ書き込み要求(PUTメソッド)によって複製サーバ2に送信する。
【0036】
かかる要求と共に通信部10を介してクライアント3から更新データを受け取とると、対クライアント処理部14は、自身の複製記憶部12中において該当するWWWデータの複製を、更新データに基づいて更新する(ステップS1)。
【0037】
次に、対マスタサーバ処理部20は、通信部10を介して更新データをマスタサーバ20に送信する(ステップS3)。このステップS3の送信処理は、クライアント3がマスタサーバ1に対して直接的にアクセスすることがない場合に限り、非同期的な一括処理により行なわれてもよい。
【0038】
次に、対他の複製サーバ処理部18は、ID記憶部16を参照することで共通のマスタサーバ1を持つ他の複製サーバ2を特定し、通信部10を介して上記更新データを配送する(ステップS4)。
複製サーバ2はウェブ・プロキシの一形態であることを考慮したとしても、ユーザ代理のウェブ・プロキシの場合とは異なり、共通のマスタサーバ1を持つ他の複製サーバ2は特定可能である。それは、複製サーバ2はマスタサーバ1の管理者またはその契約業者によって一元的に運営されるからである。
【0039】
ステップS4における複製サーバ間でのデータ配送処理において、通信部10は一対一の通常の通信動作を行なってもよいし、マルチキャストなどの方法で同時に複数の複製サーバとの通信動作を行なってもよい。また、対他の複製サーバ処理部18は、ステップS4における更新データの配送に先立って、他の複製サーバ2の各々に対しデータ更新要求を発行する。
【0040】
図6は他の複製サーバ2においてクライアントからのデータ書き込み要求が発生した場合のデータ更新時の動作を示すフローチャートである。
【0041】
他の複製サーバ2がクライアント3からデータ書き込み要求を受けた場合、上記ステップS4の処理に従い該他の複製サーバ2がデータ更新要求を発行する。
【0042】
このデータ更新要求を通信部10を介して複数サーバ2が受信すると(ステップS1)、対他の複製サーバ処理部18は、要求元である他の複製サーバ2から更新データの配送を受け、自身の複製記憶部12中において該当するWWWデータの複製を、配送されてきた更新データに基づいて更新する(ステップS2)。
【0043】
共通のマスタサーバ1を持つ複数の複製サーバ2が、上記図2に示した構成を有するとともに上述した動作を行うことで、一つの複製サーバ2にデータ書き込み要求が送られると、該要求に基づくデータ更新が他の複製サーバ2において速やかに行われることになり、複製サーバ2間において各々が記憶する複製の一貫性を保つことができる。したがって、これらの複製サーバ2はユーザに対して常に最新の複製を提供できる。しかも、マスタサーバ1への構成変更は不要である。
【0044】
次に、第1実施形態の変形例を説明する。
【0045】
第1実施形態の変形例は、複数サーバ2間において更新データの配送を行わず、更新の事実を通知するのみにとどめる。すなわち、クライアント3からデータ書き込み要求を受けた複製サーバ2において、対他の複製サーバ処理部18は、該書き込み要求によるWWWデータの更新データを他の複製サーバ2に対して配送せず、その代わりに、どのWWWデータが更新されたかを通知する。
【0046】
データ更新の通知を受けた他の複製サーバ2では、対他の複製サーバ処理部18が、該当するWWWデータの複製を無効化する。
【0047】
このような第1実施形態の変形例によれば、更新データの配送を受けないので更新されたWWWデータについてはマスタサーバ1からの送信となってしまうが、他の複製サーバ2において更新が生じたため古くなった複製がユーザに提供されることを防止できる。
【0048】
(第2実施形態)
上述した第1実施形態では複製サーバがデータの書き込み時のロックを行なわない構成について説明したが、第2実施形態は、ロックによる書き込み排他制御が追加されており、また、第1実施形態の変形例と同様に、更新後のデータの配送を行なわず、更新通知のみを行なう構成となっている。
【0049】
図7は、本発明の第2実施形態に係る複製サーバの概略構成を示すブロック図である。第2実施形態の複製サーバ2は、図2に示した構成に加えて、排他制御のためのロック記憶部22を備える。ロック記憶部22は、あるURLがロックされているか否かを管理する。またロック記憶部22は、例えば図8に示すURL一覧表を記憶しており、該一覧表に基づいてロック管理を行う。
【0050】
ロック記憶部22は、ロック時にはURL一覧表へURL項目を挿入し、ロック解除時には該当URL項目をURL一覧表から削除する。
【0051】
なお、URL一覧表の項目内容は拡張されてもよく、ロックをかけたクライアントまたはユーザの識別子、ロックの種類などの属性情報を項目内容としてURL一覧表に記憶させるように構成しても良い。
【0052】
第2実施形態の複製サーバ2において、データの読み出し時の動作は、第1実施形態において図4を参照して説明した動作と同様であり、ここではその説明を省略する。
【0053】
次に、本実施形態の特徴に係るデータのロック処理について図9乃至図12を参照して説明する。
【0054】
まず、データのロック要求について説明する。
【0055】
図9は、クライアント3からロック要求を受けた複製サーバ2におけるロック処理の動作を示すフローチャートである。
【0056】
データの更新を行うクライアント3は、更新に先立って複製サーバ2にURLを指定してロック要求(LOCKメソッド)を送る。
【0057】
複製サーバ2の対クライアント処理部14は、クライアント3から通信部10を介してロック要求を受け取る(ステップS1)。
【0058】
次に、対クライアント処理部14は、ロック記憶部22を検索し、ロック要求において指定されたURLに該当するURL項目がロック記憶部22に登録されているか否かを判定する(ステップS2)。
【0059】
ロック記憶部22のURL一覧表に該当するURL項目が登録済みの場合は、この度のロック要求に係るURLは既にロックがかかっていることを意味し、該ロック要求を拒否する(ステップS3)。該当するURL項目がロック記憶部22から見つからなかった場合、対クライアント処理部14はこの度のロック要求に係るURL項目をロック記憶部22のURL一覧表に格納し(ステップS4)、続いて、対他の複製サーバ処理部18は、通信部10を介して他の複製サーバ2に対しロック要求を通知する(ステップS5)。
【0060】
図10のフローチャートに示すように、他の複製サーバ2における対他の複製サーバ処理部18は、複製サーバ2からロック要求を受け取り(ステップS1)、該ロック要求により指定されたURLを自身のロック記憶部22に登録する(ステップS2)。他の複製サーバ2において、このロック要求は拒否されない。
【0061】
ここで、データの更新時の動作について説明する。
【0062】
ユーザはクライアント3上でWWWデータを作成または更新し、その結果をデータ書き込み要求(PUTメソッド)によって複製サーバ2に送信する。そして、クライアント3から更新データを受け取った複製サーバ2においては、対クライアント処理部14が自身の複製記憶部12内で該当する複製を更新データに基づいて更新し、対マスタサーバ処理部20は、該更新データをマスタサーバ1に送信する。
【0063】
ここで、ロック記憶部22にURL項目が登録されていることで該当URLのWWWデータにロックがかかっている場合、排他制御によって他の複製サーバ2においては該当するWWWデータへの書き込みは禁止されている。そこで、データの更新がすべて完了した時点でクライアント3によりこのWWWデータのロック解除要求が行なわれる。そのため、クライアント3からデータの更新要求を受けた時点において、対他の複製サーバ処理部18は他の複製サーバ2へのデータ更新通知は行なわない。
【0064】
データのロック解除について説明する。
【0065】
図11は、クライアント3からロック解除要求を受けた複製サーバ2におけるロック解除処理の動作を示すフローチャートである。
【0066】
ロックをかけたWWWデータへの書き込み(更新)が完了し、当面はデータの書き込みを行なわない場合、クライアント3は複製サーバ2に対し、URLを指定してロック解除要求(UNLOCKメソッド)を送る。
【0067】
複製サーバ2において対クライアント処理部14は、クライアント3からのロック解除要求を受け取る(ステップS1)。
【0068】
次に、対クライアント処理部14は、ロック記憶部22を検索し、ロック要求において指定されたURLに該当するURL項目がロック記憶部22に登録されているか否かを判定する(ステップS2)。
【0069】
ロック記憶部22には該当するURL項目が存在しない場合、指定されたURLに対するロックは掛かっていないことを意味する。この場合、対クライアント処理部14は、この度のロック解除要求を拒否する(ステップS4)。URL項目が存在する場合、対クライアント処理部14は、該当するURL項目をロック記憶部22のURL一覧表から削除(すなわち、登録を抹消)し(ステップS3)、対他の複製サーバ処理部18は、他の複製サーバに対しロック解除要求を通知する(ステップS5)。
【0070】
図12のフローチャートに示すように、他の複製サーバ2における対他の複製サーバ処理部18は、複製サーバ2からロック解除要求を受け取り(ステップS1)、該ロック解除要求により指定されたURLを自身のロック記憶部22から削除する。
【0071】
また、ロック解除対象のURLのWWWデータは更新されている可能性が高いので、対他の複製サーバ処理部18は自身の複製記憶部12中において該当するWWWデータを無効化する。この場合、他の複製サーバ2からのデータ更新通知がロック解除要求により兼用されていることを意味し、つまり、データ更新通知動作を省略でき、通信部10を介したネットワークへの負荷を軽減できる。
【0072】
なお、第2実施形態では、上述した第1実施形態の変形例と同様に、更新データの配送を受けないので第1実施形態のように常に最新のWWWデータを複製サーバ2から提供できなくなるが、他の複製サーバ2において更新が生じたため古くなった複製がユーザに提供されることを防止できる。
【0073】
以上説明した第2実施形態によれば、マスタサーバ1への構成変更を伴わずに複製サーバ2においてデータ書き込みの排他制御を実現できる。すなわち、同じWWWデータ(ここでは「複製」)に対する複数のクライアント3からの同時のデータ書き込みは、ロックを行ったクライアント以外のものは禁止されることになる。これによりWWWデータの一貫性を維持でき、誤ったWWWデータが提供されることを防止できる。
【0074】
次に、第2実施形態の変形例を説明する。
【0075】
第2実施形態の変形例は、上述した第1実施形態と同様に、複数サーバ2間において更新データの配送を行うものとする。具体的には、クライアント3からデータ書き込み要求を受けた複製サーバ2において図11のステップS5を実行する際に、対他の複製サーバ処理部18は、該書き込み要求によるWWWデータの更新データをロック解除要求に含めて他の複製サーバ2に対して配送する。
【0076】
更新データの配送を受けた他の複製サーバ2では、図12のステップS3において対他の複製サーバ処理部18が、該当するWWWデータの複製を配送されてきたロック解除要求に含まれる更新データに基づいて更新する。
【0077】
このような第2実施形態の変形例によれば、上述した第2実施形態と同様にマスタサーバ1への構成変更を伴わずに複製サーバ2においてデータ書き込みの排他制御を実現でき、さらには一つの複製サーバ2にデータ書き込み要求が送られると、該要求に基づくデータ更新が他の複製サーバ2において速やかに行われることになる。これにより第2実施形態とは異なり複製サーバ2間において各々が記憶する複製の一貫性を保つことができる。したがって、複製サーバ2はユーザに対して常に最新の複製を提供できる。
【0078】
なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。
【0079】
【発明の効果】
以上説明したように、本発明によれば、複製サーバ装置間でクライアントに提供する複製の一貫性を維持でき、他のサーバ装置において更新が生じたため古くなった複製が提供されることのない複製サーバ装置を提供できる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るWWWシステムの構成を示す図
【図2】第1実施形態に係る複製サーバの概略構成を示すブロック図
【図3】本発明の実施形態に係る複製記憶部の記憶内容の一例を示す図
【図4】第1実施形態に係る複製サーバにおけるデータ読み出し時の動作を示すフローチャート
【図5】第1実施形態に係る複製サーバにおけるデータ更新時の動作を示すフローチャート
【図6】第1実施形態に係る他の複製サーバにおいてクライアントからのデータ書き込み要求が発生した場合のデータ更新時の動作を示すフローチャート
【図7】本発明の第2実施形態に係る複製サーバの概略構成を示すブロック図
【図8】第2実施形態に係るロック記憶部に記憶されるURL一覧表の一例を示す図
【図9】第2実施形態に係り、クライアントからロック要求を受けた際の複製サーバにおけるロック処理の動作を示すフローチャート
【図10】第2実施形態に係り、他の複製サーバからロック要求を受けた際の複製サーバにおけるロック処理の動作を示すフローチャート
【図11】第2実施形態に係り、クライアントからロック解除要求を受けた際の複製サーバにおけるロック解除処理の動作を示すフローチャート
【図12】第2実施形態に係り、他の複製サーバからロック解除要求を受けた際の複製サーバにおけるロック解除処理の動作を示すフローチャート
【符号の説明】
1…マスタサーバ
2…複製サーバ(ミラーサーバ)
3…クライアント
10…通信部
12…複製記憶部
14…対クライアント処理部
16…ID記憶部
18…対他の複製サーバ処理部
20…対マスタサーバ処理部
【発明の属する技術分野】
本発明はクライアント/サーバ方式の情報提供システムに好適なサーバ装置に関し、特に、マスタサーバのデータの複製を記憶し、マスタサーバの代理(プロキシ)としてクライアントにデータを提供する複製サーバ装置(以下、「サーバ装置」を単に「サーバ」と略記する)に関する。
【0002】
【従来の技術】
WWW(World-Wide Web)システムにおいて、サーバへの負荷の集中やネットワークの混雑を緩和するなどの目的で、本来のWWWサーバ(「マスタサーバ」と称する)のデータを複製し、マスタサーバの介在なしにユーザからのデータ読み出し要求に答えてデータを提供する仕組みの一つとして複製サーバが知られている。複製サーバ(「ミラーサーバ」と称されこともある)は、いわゆるウェブ・プロキシ(Web proxy)の一形態と考えることができる。
【0003】
多くのウェブ・プロキシはユーザの代理のために利用されている。ユーザ代理のウェブ・プロキシはネットワーク上でユーザに近い場所に置かれ、ユーザ自身、ユーザの所属組織又はユーザが契約しているインターネットサービス業者(ISP)などによって管理される。
【0004】
一方、複製サーバは、情報を要求するクライアントとしてのユーザではなく情報を提供する側のマスタサーバの代理のために利用される。複製サーバは、ユーザに対してはあたかもマスタサーバであるかのように振る舞い、その内部ではマスタサーバのデータの複製を行なってユーザに提供する。このような複製サーバはマスタサーバの管理者又はその契約業者によって管理される。つまり、ユーザ代理のウェブ・プロキシとは管理主体が異なるという特徴がある。
【0005】
また、複製サーバは、原理的にはウェブ・プロキシであるから、汎用的なウェブ・プロキシ・ソフトウェアを実装し、WWWにおいて一般的な通信プロトコルを用いてマスタサーバとの間で通信を行うものとして実現される。なお、配送の効率を上げるためにマスタサーバとの間で通常のウェブ・プロキシとは異なる通信プロトコルを実装した複製サーバもある。
【0006】
上記従来例には次のような問題点がある。
【0007】
ユーザ(クライアント)から複製サーバに対しデータの書き込み要求(例えばhttpに規定のPUTメソッド)があった場合、複製サーバは該要求をマスタサーバのみに送る。要求を受けたマスタサーバは送られてきた要求に基づくデータ更新を行うが、要求元以外の複製サーバに対して何ら処理を行わない。したがって、これら他の複製サーバが保持しているマスタサーバのデータの複製は、その有効期限が来るまでそのまま使われることになる。
【0008】
したがって、これら他の複製サーバがユーザからのデータ読み出し要求(GETメソッド)を受けた際に、該データはマスタサーバ上では更新されているにもかかわらず、複製サーバに保持されている古いデータがユーザに与えられてしまうという問題点がある。
【0009】
これを防ぐためには、分散共有メモリ技術の分野で一般に行なわれているように、マスタサーバから複製サーバに対して更新データの配送または更新通知を行なうことが考えられる。この場合、マスタサーバが実装しているソフトウェアを改造して対複製サーバ処理を追加することが必要となる。
【0010】
しかしながら、マスタサーバのソフトウェアの改造は一般には望ましくなく無変更での対応が望ましい。そもそも複製サーバが適用されるマスタサーバは、既に運用を開始しており高い負荷がかかっているからである。また、実行形式しか提供されていない商用のWWWサーバソフトウェアを実装するマスタサーバでは、ソフトウェアを変更することすら不可能な場合もある。
【0011】
ところで、同じデータに対して複数のクライアントが同時にデータへの書き込みを行なうと、データの一貫性が失われ、その後に読み出しを行なったクライアントに対して誤ったデータが提供されることがある。これを防ぐため、書き込みの前にロックを行ない、他のクライアントによる書き込みを禁止した上で書き込みを行なったのちに、ロック解除を行なう機構が提案されている。本来、WWWシステムにはロック機構がなく、最近になってようやくWEBDAVというロック機構を含む拡張仕様が策定された段階である(参考文献:HTTP Extensions for Distributed Authoring -WEBDAV,Y.Goland,E.Whitehead,A.Faizi,S.Carter,D.Jensen,February 1999,RFC 2518)。
【0012】
現在、多くのWWWサーバはこのロック機構を実現していない。マスタサーバにロック機構を追加する場合についても、やはりソフトウェアの改造が必要となり問題となる。また、データの更新とロックとを別々に通知するのは、通信量や複製サーバの負荷の増大の点で好ましくない。
【0013】
【発明が解決しようとする課題】
本発明は上記事情を考慮してなされたものであり、複製サーバ装置間でクライアントに提供する複製の一貫性を維持でき、他のサーバ装置において更新が生じたため古くなった複製が提供されることのない複製サーバ装置を提供することを目的とする。
【0014】
また、マスタサーバ装置への構成変更を伴わずにデータ更新の排他制御を実現する複製サーバ装置を提供することを目的とする。
【0015】
【課題を解決するための手段】
上記課題を解決し目的を達成するために、本発明は次のように構成されている。
【0016】
(1)本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、前記クライアント装置から前記複製への書き込み要求を受けた際には該複製の更新WWWデータを前記ID記憶手段に記憶されたIDにより識別される他の複製サーバ装置に対して配送し、前記他の複製サーバ装置から更新WWWデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、を具備することを特徴とする。
【0017】
(2)本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、前記クライアント装置から前記複製への書き込み要求を受けた際には該複製のWWWデータ更新を前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して通知し、前記他の複製サーバ装置からWWWデータ更新の通知を受けた際には前記複製記憶手段が記憶する複製のうち該当するものを無効化する手段と、を具備することを特徴とする。
【0018】
(3)本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、WWWデータへの書き込みの排他制御を行うための情報を記憶するロック記憶手段と、前記クライアント装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータのロック要求を行い、前記クライアント装置からのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータのロック解除要求を行い、前記他の複製サーバ装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記他の複製サーバ装置からのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記複製記憶手段が記憶する複製のうち該当するものを無効化する手段と、を具備することを特徴とする。
【0019】
(4)本発明の複製サーバ装置は、クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、WWWデータへの書き込みの排他制御を行うための情報を記憶するロック記憶手段と、前記クライアント装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータのロック要求を行い、前記クライアント装置からのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータの更新WWWデータを含むロック解除要求を配送し、前記他の複製サーバ装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記他の複製サーバ装置からのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、該ロック解除要求に含まれる更新WWWデータを用いて前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、を具備することを特徴とする。
【0020】
(5)本発明の記録媒体は、コンピュータに、マスタサーバのWWWデータの複製を複製記憶手段に記憶させ、該マスタサーバの代理としてクライアントに複製を提供させる複製サーバプログラムを記録したコンピュータ読み取り可能な記録媒体であって、該複製サーバプログラムは、前記マスタサーバを共通のマスタサーバとする他の複製サーバを識別可能なIDをID記憶手段に記憶させ、前記クライアントから前記複製への書き込み要求を受けた際には該複製の更新WWWデータを前記ID記憶手段に記憶されたIDにより識別される他の複製サーバに対して配送させ、前記他の複製サーバから更新WWWデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新させるためのプログラムコードを含むことを特徴とする複製サーバプログラムを記録した記録媒体である。
【0021】
(6)本発明の記録媒体は、上記(5)に記載の記録媒体であって、前記複製サーバプログラムは、WWWデータへの書き込みの排他制御を行うための情報をロック記憶手段に記憶させ、前記クライアントからのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録させるとともに前記ID記憶手段が記憶するIDにより識別される他の複製サーバに対する該WWWデータのロック要求を行わせ、前記クライアントからのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消させるとともに前記ID記憶手段が記憶するIDにより識別される他の複製サーバに対する該WWWデータのロック解除要求を行わせ、前記他の複製サーバからのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録させ、前記他の複製サーバからのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消させるとともに前記複製記憶手段が記憶する複製のうち該当するものを無効化させるためのプログラムコードを含むことを特徴とする。
【0022】
(7)本発明のサーバシステムは、マスタサーバ装置と、クライアントからの要求に基づき前記マスタサーバ装置のWWWデータの複製を該クライアントに返送する複数の複製サーバ装置と、により構成されるサーバシステムにおいて、前記複製サーバ装置は、前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、前記クライアント装置から前記複製への書き込み要求を受けた際には該複製の更新WWWデータを前記ID記憶手段に記憶されたIDにより識別される他の複製サーバ装置に対して配送し、前記他の複製サーバ装置から更新WWWデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、を具備することを特徴とする。
【0023】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
【0024】
図1は本発明の実施形態に係るWWWシステムの構成を示す図である。本実施形態のWWWシステムは、複製を適用したWWWシステムであって、オリジナルのデータの提供元であるマスタサーバ1と、マスタサーバ1のデータの複製を提供する複製サーバ2と、ユーザがデータの読み書きを行なうクライアント3とにより構成される。複製サーバ2はウェブ・プロキシの一形態であり、クライアント3から見てマスタサーバ1と複製サーバ2の両者の区別はない。また、図1には共通のマスタサーバ1を持つ複製サーバ2が3つ示されているが、複製サーバ2の設置台数は任意であり、一般には複数台である。
【0025】
(第1実施形態)
図2は、本発明の第1実施形態に係る複製サーバの概略構成を示すブロック図である。本実施形態の複製サーバ2は、データの書き込み時のロックを行なわない簡易な構成を有する。データ更新時には他の複製サーバに対して更新後のデータの配送を行なう。
【0026】
図2に示すように、本実施形態の複製サーバ2は、通信部10、複製記憶部12、対クライアント処理部14、ID記憶部16、対他の複製サーバ処理部18、及び対マスタサーバ処理部20を備えて成る。通信部10は、マスタサーバ1、クライアント3、及び他の複製サーバ2との通信を行う。複製記憶部12は、マスタサーバ1のデータの複製を記憶するものであり、より具体的にはWWWデータ本体、及びその格納場所を示すURL(Uniform Resource Locator)を記憶している。URLは、複製記憶部12から所要のWWWデータにアクセスするための検索キーとして用いられる。
【0027】
ここでいうWWWデータとは、WWWのコンテンツを意味し、HTML文書又はテキスト文書、画像データ又は音声データ、及びJAVAアプレットなどの種々のプログラムを含む。図3は複製記憶部12の記憶内容の一例を示しており、「http://www.tasuba.co.jp」なるURLに、データ種別(content-type)がHTML形式のテキストのWWWデータ(本体の名称は略記)が記憶されている。そして、このWWWデータはマスタサーバ1のWWWデータの複製である。
【0028】
次に、ユーザの要求に応じてクライアントがサーバに接続してデータを読み出す場合の処理について説明する。
【0029】
複製サーバが適用されたWWWシステムでは、クライアント3からの要求に対し、ネットワーク上の距離や複製サーバ2の稼動状況に応じて負荷の低い適当な複製サーバ2が選択される仕組みがある。この仕組みは例えばDNS(ドメインネームシステム;Domain Name System)サーバにより提供され、DNSサーバは指定されたURLのホスト名から適当な複製サーバ2を選択し、そのIPアドレスを返す。
【0030】
図4は複製サーバ2におけるデータ読み出し時の動作を示すフローチャートである。
【0031】
通信部10を介してクライアント3から指定URLのデータ読み出し要求(GETメソッド)を受け取ると(ステップS1)、対クライアント処理部14は、該URLを検索キーとして複製記憶部12に対して検索処理を行なうことで複製記憶部10内に該当するURLが存在し、これに対応するWWWデータが存在するか否かを判定する(ステップS2)。
【0032】
該当するURLのWWWデータが複製記憶部10内に存在する場合、対クライアント処理部14はこれを読み出し、要求元のクライアントに対し通信部10を介して送信する(ステップS3)。
【0033】
一方、複製サーバ2が、マスタサーバ1の全データのうち一部のデータの複製しか保持していない場合など、複製記憶部12には複製が存在しないWWWデータのURLが要求された時点で、通信部10はマスタサーバ1との接続を行い、対クライアント処理部14が、該URLに対応するWWWデータをマスタサーバ1から入手したのち(ステップS4)、クライアント3に送信する。
【0034】
図5は、複製サーバ2におけるデータ更新時の動作を示すフローチャートである。
【0035】
ユーザはクライアント3上でWWWデータを作成または更新し、その結果をデータ書き込み要求(PUTメソッド)によって複製サーバ2に送信する。
【0036】
かかる要求と共に通信部10を介してクライアント3から更新データを受け取とると、対クライアント処理部14は、自身の複製記憶部12中において該当するWWWデータの複製を、更新データに基づいて更新する(ステップS1)。
【0037】
次に、対マスタサーバ処理部20は、通信部10を介して更新データをマスタサーバ20に送信する(ステップS3)。このステップS3の送信処理は、クライアント3がマスタサーバ1に対して直接的にアクセスすることがない場合に限り、非同期的な一括処理により行なわれてもよい。
【0038】
次に、対他の複製サーバ処理部18は、ID記憶部16を参照することで共通のマスタサーバ1を持つ他の複製サーバ2を特定し、通信部10を介して上記更新データを配送する(ステップS4)。
複製サーバ2はウェブ・プロキシの一形態であることを考慮したとしても、ユーザ代理のウェブ・プロキシの場合とは異なり、共通のマスタサーバ1を持つ他の複製サーバ2は特定可能である。それは、複製サーバ2はマスタサーバ1の管理者またはその契約業者によって一元的に運営されるからである。
【0039】
ステップS4における複製サーバ間でのデータ配送処理において、通信部10は一対一の通常の通信動作を行なってもよいし、マルチキャストなどの方法で同時に複数の複製サーバとの通信動作を行なってもよい。また、対他の複製サーバ処理部18は、ステップS4における更新データの配送に先立って、他の複製サーバ2の各々に対しデータ更新要求を発行する。
【0040】
図6は他の複製サーバ2においてクライアントからのデータ書き込み要求が発生した場合のデータ更新時の動作を示すフローチャートである。
【0041】
他の複製サーバ2がクライアント3からデータ書き込み要求を受けた場合、上記ステップS4の処理に従い該他の複製サーバ2がデータ更新要求を発行する。
【0042】
このデータ更新要求を通信部10を介して複数サーバ2が受信すると(ステップS1)、対他の複製サーバ処理部18は、要求元である他の複製サーバ2から更新データの配送を受け、自身の複製記憶部12中において該当するWWWデータの複製を、配送されてきた更新データに基づいて更新する(ステップS2)。
【0043】
共通のマスタサーバ1を持つ複数の複製サーバ2が、上記図2に示した構成を有するとともに上述した動作を行うことで、一つの複製サーバ2にデータ書き込み要求が送られると、該要求に基づくデータ更新が他の複製サーバ2において速やかに行われることになり、複製サーバ2間において各々が記憶する複製の一貫性を保つことができる。したがって、これらの複製サーバ2はユーザに対して常に最新の複製を提供できる。しかも、マスタサーバ1への構成変更は不要である。
【0044】
次に、第1実施形態の変形例を説明する。
【0045】
第1実施形態の変形例は、複数サーバ2間において更新データの配送を行わず、更新の事実を通知するのみにとどめる。すなわち、クライアント3からデータ書き込み要求を受けた複製サーバ2において、対他の複製サーバ処理部18は、該書き込み要求によるWWWデータの更新データを他の複製サーバ2に対して配送せず、その代わりに、どのWWWデータが更新されたかを通知する。
【0046】
データ更新の通知を受けた他の複製サーバ2では、対他の複製サーバ処理部18が、該当するWWWデータの複製を無効化する。
【0047】
このような第1実施形態の変形例によれば、更新データの配送を受けないので更新されたWWWデータについてはマスタサーバ1からの送信となってしまうが、他の複製サーバ2において更新が生じたため古くなった複製がユーザに提供されることを防止できる。
【0048】
(第2実施形態)
上述した第1実施形態では複製サーバがデータの書き込み時のロックを行なわない構成について説明したが、第2実施形態は、ロックによる書き込み排他制御が追加されており、また、第1実施形態の変形例と同様に、更新後のデータの配送を行なわず、更新通知のみを行なう構成となっている。
【0049】
図7は、本発明の第2実施形態に係る複製サーバの概略構成を示すブロック図である。第2実施形態の複製サーバ2は、図2に示した構成に加えて、排他制御のためのロック記憶部22を備える。ロック記憶部22は、あるURLがロックされているか否かを管理する。またロック記憶部22は、例えば図8に示すURL一覧表を記憶しており、該一覧表に基づいてロック管理を行う。
【0050】
ロック記憶部22は、ロック時にはURL一覧表へURL項目を挿入し、ロック解除時には該当URL項目をURL一覧表から削除する。
【0051】
なお、URL一覧表の項目内容は拡張されてもよく、ロックをかけたクライアントまたはユーザの識別子、ロックの種類などの属性情報を項目内容としてURL一覧表に記憶させるように構成しても良い。
【0052】
第2実施形態の複製サーバ2において、データの読み出し時の動作は、第1実施形態において図4を参照して説明した動作と同様であり、ここではその説明を省略する。
【0053】
次に、本実施形態の特徴に係るデータのロック処理について図9乃至図12を参照して説明する。
【0054】
まず、データのロック要求について説明する。
【0055】
図9は、クライアント3からロック要求を受けた複製サーバ2におけるロック処理の動作を示すフローチャートである。
【0056】
データの更新を行うクライアント3は、更新に先立って複製サーバ2にURLを指定してロック要求(LOCKメソッド)を送る。
【0057】
複製サーバ2の対クライアント処理部14は、クライアント3から通信部10を介してロック要求を受け取る(ステップS1)。
【0058】
次に、対クライアント処理部14は、ロック記憶部22を検索し、ロック要求において指定されたURLに該当するURL項目がロック記憶部22に登録されているか否かを判定する(ステップS2)。
【0059】
ロック記憶部22のURL一覧表に該当するURL項目が登録済みの場合は、この度のロック要求に係るURLは既にロックがかかっていることを意味し、該ロック要求を拒否する(ステップS3)。該当するURL項目がロック記憶部22から見つからなかった場合、対クライアント処理部14はこの度のロック要求に係るURL項目をロック記憶部22のURL一覧表に格納し(ステップS4)、続いて、対他の複製サーバ処理部18は、通信部10を介して他の複製サーバ2に対しロック要求を通知する(ステップS5)。
【0060】
図10のフローチャートに示すように、他の複製サーバ2における対他の複製サーバ処理部18は、複製サーバ2からロック要求を受け取り(ステップS1)、該ロック要求により指定されたURLを自身のロック記憶部22に登録する(ステップS2)。他の複製サーバ2において、このロック要求は拒否されない。
【0061】
ここで、データの更新時の動作について説明する。
【0062】
ユーザはクライアント3上でWWWデータを作成または更新し、その結果をデータ書き込み要求(PUTメソッド)によって複製サーバ2に送信する。そして、クライアント3から更新データを受け取った複製サーバ2においては、対クライアント処理部14が自身の複製記憶部12内で該当する複製を更新データに基づいて更新し、対マスタサーバ処理部20は、該更新データをマスタサーバ1に送信する。
【0063】
ここで、ロック記憶部22にURL項目が登録されていることで該当URLのWWWデータにロックがかかっている場合、排他制御によって他の複製サーバ2においては該当するWWWデータへの書き込みは禁止されている。そこで、データの更新がすべて完了した時点でクライアント3によりこのWWWデータのロック解除要求が行なわれる。そのため、クライアント3からデータの更新要求を受けた時点において、対他の複製サーバ処理部18は他の複製サーバ2へのデータ更新通知は行なわない。
【0064】
データのロック解除について説明する。
【0065】
図11は、クライアント3からロック解除要求を受けた複製サーバ2におけるロック解除処理の動作を示すフローチャートである。
【0066】
ロックをかけたWWWデータへの書き込み(更新)が完了し、当面はデータの書き込みを行なわない場合、クライアント3は複製サーバ2に対し、URLを指定してロック解除要求(UNLOCKメソッド)を送る。
【0067】
複製サーバ2において対クライアント処理部14は、クライアント3からのロック解除要求を受け取る(ステップS1)。
【0068】
次に、対クライアント処理部14は、ロック記憶部22を検索し、ロック要求において指定されたURLに該当するURL項目がロック記憶部22に登録されているか否かを判定する(ステップS2)。
【0069】
ロック記憶部22には該当するURL項目が存在しない場合、指定されたURLに対するロックは掛かっていないことを意味する。この場合、対クライアント処理部14は、この度のロック解除要求を拒否する(ステップS4)。URL項目が存在する場合、対クライアント処理部14は、該当するURL項目をロック記憶部22のURL一覧表から削除(すなわち、登録を抹消)し(ステップS3)、対他の複製サーバ処理部18は、他の複製サーバに対しロック解除要求を通知する(ステップS5)。
【0070】
図12のフローチャートに示すように、他の複製サーバ2における対他の複製サーバ処理部18は、複製サーバ2からロック解除要求を受け取り(ステップS1)、該ロック解除要求により指定されたURLを自身のロック記憶部22から削除する。
【0071】
また、ロック解除対象のURLのWWWデータは更新されている可能性が高いので、対他の複製サーバ処理部18は自身の複製記憶部12中において該当するWWWデータを無効化する。この場合、他の複製サーバ2からのデータ更新通知がロック解除要求により兼用されていることを意味し、つまり、データ更新通知動作を省略でき、通信部10を介したネットワークへの負荷を軽減できる。
【0072】
なお、第2実施形態では、上述した第1実施形態の変形例と同様に、更新データの配送を受けないので第1実施形態のように常に最新のWWWデータを複製サーバ2から提供できなくなるが、他の複製サーバ2において更新が生じたため古くなった複製がユーザに提供されることを防止できる。
【0073】
以上説明した第2実施形態によれば、マスタサーバ1への構成変更を伴わずに複製サーバ2においてデータ書き込みの排他制御を実現できる。すなわち、同じWWWデータ(ここでは「複製」)に対する複数のクライアント3からの同時のデータ書き込みは、ロックを行ったクライアント以外のものは禁止されることになる。これによりWWWデータの一貫性を維持でき、誤ったWWWデータが提供されることを防止できる。
【0074】
次に、第2実施形態の変形例を説明する。
【0075】
第2実施形態の変形例は、上述した第1実施形態と同様に、複数サーバ2間において更新データの配送を行うものとする。具体的には、クライアント3からデータ書き込み要求を受けた複製サーバ2において図11のステップS5を実行する際に、対他の複製サーバ処理部18は、該書き込み要求によるWWWデータの更新データをロック解除要求に含めて他の複製サーバ2に対して配送する。
【0076】
更新データの配送を受けた他の複製サーバ2では、図12のステップS3において対他の複製サーバ処理部18が、該当するWWWデータの複製を配送されてきたロック解除要求に含まれる更新データに基づいて更新する。
【0077】
このような第2実施形態の変形例によれば、上述した第2実施形態と同様にマスタサーバ1への構成変更を伴わずに複製サーバ2においてデータ書き込みの排他制御を実現でき、さらには一つの複製サーバ2にデータ書き込み要求が送られると、該要求に基づくデータ更新が他の複製サーバ2において速やかに行われることになる。これにより第2実施形態とは異なり複製サーバ2間において各々が記憶する複製の一貫性を保つことができる。したがって、複製サーバ2はユーザに対して常に最新の複製を提供できる。
【0078】
なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。
【0079】
【発明の効果】
以上説明したように、本発明によれば、複製サーバ装置間でクライアントに提供する複製の一貫性を維持でき、他のサーバ装置において更新が生じたため古くなった複製が提供されることのない複製サーバ装置を提供できる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るWWWシステムの構成を示す図
【図2】第1実施形態に係る複製サーバの概略構成を示すブロック図
【図3】本発明の実施形態に係る複製記憶部の記憶内容の一例を示す図
【図4】第1実施形態に係る複製サーバにおけるデータ読み出し時の動作を示すフローチャート
【図5】第1実施形態に係る複製サーバにおけるデータ更新時の動作を示すフローチャート
【図6】第1実施形態に係る他の複製サーバにおいてクライアントからのデータ書き込み要求が発生した場合のデータ更新時の動作を示すフローチャート
【図7】本発明の第2実施形態に係る複製サーバの概略構成を示すブロック図
【図8】第2実施形態に係るロック記憶部に記憶されるURL一覧表の一例を示す図
【図9】第2実施形態に係り、クライアントからロック要求を受けた際の複製サーバにおけるロック処理の動作を示すフローチャート
【図10】第2実施形態に係り、他の複製サーバからロック要求を受けた際の複製サーバにおけるロック処理の動作を示すフローチャート
【図11】第2実施形態に係り、クライアントからロック解除要求を受けた際の複製サーバにおけるロック解除処理の動作を示すフローチャート
【図12】第2実施形態に係り、他の複製サーバからロック解除要求を受けた際の複製サーバにおけるロック解除処理の動作を示すフローチャート
【符号の説明】
1…マスタサーバ
2…複製サーバ(ミラーサーバ)
3…クライアント
10…通信部
12…複製記憶部
14…対クライアント処理部
16…ID記憶部
18…対他の複製サーバ処理部
20…対マスタサーバ処理部
Claims (7)
- クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、
前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、
前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、
前記クライアント装置から前記複製への書き込み要求を受けた際には該複製の更新WWWデータを前記ID記憶手段に記憶されたIDにより識別される他の複製サーバ装置に対して配送し、前記他の複製サーバ装置から更新WWWデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、
を具備することを特徴とする複製サーバ装置。 - クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、
前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、
前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、
前記クライアント装置から前記複製への書き込み要求を受けた際には該複製のWWWデータ更新を前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して通知し、前記他の複製サーバ装置からWWWデータ更新の通知を受けた際には前記複製記憶手段が記憶する複製のうち該当するものを無効化する手段と、
を具備することを特徴とする複製サーバ装置。 - クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、
前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、
前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、
WWWデータへの書き込みの排他制御を行うための情報を記憶するロック記憶手段と、
前記クライアント装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータのロック要求を行い、前記クライアント装置からのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータのロック解除要求を行い、前記他の複製サーバ装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記他の複製サーバ装置からのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記複製記憶手段が記憶する複製のうち該当するものを無効化する手段と、
を具備することを特徴とする複製サーバ装置。 - クライアント装置、マスタサーバ装置、又は他の複製サーバ装置との通信を行う通信手段と、
前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、
前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、
WWWデータへの書き込みの排他制御を行うための情報を記憶するロック記憶手段と、
前記クライアント装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータのロック要求を行い、前記クライアント装置からのWWWデ ータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、前記ID記憶手段が記憶するIDにより識別される他の複製サーバ装置に対して該WWWデータの更新WWWデータを含むロック解除要求を配送し、前記他の複製サーバ装置からのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録し、前記他の複製サーバ装置からのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消し、該ロック解除要求に含まれる更新WWWデータを用いて前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、
を具備することを特徴とする複製サーバ装置。 - コンピュータに、マスタサーバのWWWデータの複製を複製記憶手段に記憶させ、該マスタサーバの代理としてクライアントに複製を提供させる複製サーバプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
該複製サーバプログラムは、
前記マスタサーバを共通のマスタサーバとする他の複製サーバを識別可能なIDをID記憶手段に記憶させ、前記クライアントから前記複製への書き込み要求を受けた際には該複製の更新WWWデータを前記ID記憶手段に記憶されたIDにより識別される他の複製サーバに対して配送させ、前記他の複製サーバから更新WWWデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新させるためのプログラムコードを含むことを特徴とする複製サーバプログラムを記録した記録媒体。 - 前記複製サーバプログラムは、
WWWデータへの書き込みの排他制御を行うための情報をロック記憶手段に記憶させ、
前記クライアントからのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録させるとともに前記ID記憶手段が記憶するIDにより識別される他の複製サーバに対する該WWWデータのロック要求を行わせ、
前記クライアントからのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消させるとともに前記ID記憶手段が記憶するIDにより識別される他の複製サーバに対する該WWWデータのロック解除要求を行わせ、
前記他の複製サーバからのWWWデータのロック要求に基づき、前記ロック記憶手段に前記情報を登録させ、前記他の複製サーバからのWWWデータのロック解除要求に基づき、前記ロック記憶手段から該当する情報を抹消させるとともに前記複製記憶手段が記憶する複製のうち該当するものを無効化させるためのプログラムコードを含むことを特徴とする請求項5に記載の複製サーバプログラムを記録した記録媒体。 - マスタサーバ装置と、クライアントからの要求に基づき前記マスタサーバ装置のWWWデータの複製を該クライアントに返送する複数の複製サーバ装置と、により構成されるサーバシステムにおいて、
前記複製サーバ装置は、
前記マスタサーバ装置のWWWデータの複製を記憶する複製記憶手段と、
前記マスタサーバ装置を共通のマスタサーバとする前記他の複製サーバ装置を識別可能なIDを記憶するID記憶手段と、
前記クライアント装置から前記複製への書き込み要求を受けた際には該複製の更新WWWデータを前記ID記憶手段に記憶されたIDにより識別される他の複製サーバ装置に対して配送し、前記他の複製サーバ装置から更新WWWデータを受信した際には前記複製記憶手段が記憶する複製のうち該当するものを更新する手段と、を具備することを特徴とするサーバシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27825999A JP3762161B2 (ja) | 1999-09-30 | 1999-09-30 | 複製サーバ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27825999A JP3762161B2 (ja) | 1999-09-30 | 1999-09-30 | 複製サーバ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001101062A JP2001101062A (ja) | 2001-04-13 |
JP3762161B2 true JP3762161B2 (ja) | 2006-04-05 |
Family
ID=17594856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27825999A Expired - Fee Related JP3762161B2 (ja) | 1999-09-30 | 1999-09-30 | 複製サーバ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3762161B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4536034B2 (ja) * | 2006-06-05 | 2010-09-01 | Necシステムテクノロジー株式会社 | 文書管理システム、計算機、文書管理方法、及びプログラム |
JP5918557B2 (ja) * | 2012-02-07 | 2016-05-18 | 株式会社Hde | ネットワークシステム |
-
1999
- 1999-09-30 JP JP27825999A patent/JP3762161B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001101062A (ja) | 2001-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11388251B2 (en) | Providing access to managed content | |
US8086570B2 (en) | Secure document management using distributed hashing | |
US5787247A (en) | Replica administration without data loss in a store and forward replication enterprise | |
JP4690461B2 (ja) | ブランチオフィスdns格納及び解決 | |
CA2474752C (en) | Data replication based upon a non-destructive data model | |
JP4310354B2 (ja) | レプリケーション・ファシリティ | |
CA2734675C (en) | Shared namespace for storage clusters | |
JP3396223B2 (ja) | ネットワーク・ディレクトリにおいてサブツリーを移動する方法ならびにその装置 | |
US10042916B2 (en) | System and method for storing data in clusters located remotely from each other | |
US8935560B2 (en) | System and method of file locking in a network file system federated namespace | |
CN101689166B (zh) | 使用具有全局知识的服务器处理写请求的方法和系统 | |
KR20090047393A (ko) | 분산형 저장소 | |
CN101393556A (zh) | 信息处理设备、信息处理方法及记录其程序的存储介质 | |
JP4247975B2 (ja) | データ管理方法、データ管理システム、およびそのためのプログラムならびに記録媒体 | |
JP3762161B2 (ja) | 複製サーバ装置 | |
JP2004110692A (ja) | ファイル管理システム、ファイル管理方法 | |
JP2020119207A (ja) | データベース管理サービス提供システム | |
US10657139B2 (en) | Information processing apparatus and non-transitory computer readable medium for distributed resource management | |
JP4160544B2 (ja) | ドキュメント分散処理システムのサーバ管理方法およびサーバプログラムの記録媒体 | |
Sim et al. | The storage resource manager interface specification | |
JP2926929B2 (ja) | ワークステーションの保守情報管理方式 | |
Perelmutov et al. | The Storage Resource Manager Interface Specification | |
Czajkowski et al. | Web Services Resource Properties (WS-ResourceProperties) | |
Hakkala | Consistency management in distributed storage systems | |
JP2003167776A (ja) | オブジェクト管理装置、オブジェクト編集方法、及びオブジェクト編集プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050913 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051114 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060112 |
|
LAPS | Cancellation because of no payment of annual fees |