(57)【特許請求の範囲】
【請求項１】
各々が同一データの複製を記憶し且つ複製処理を担う複数のサーバを備えた分散システムにおいて書込リクエストを処理し、前記複数のサーバに記憶される前記複製の各々の間でデータの整合性を維持するコンピュータ実行方法であって、
中央サーバが利用不能な場合に書込リクエストを受理するか又は拒否するかを判断するポリシーを前記第１のサーバに記憶することであって、前記第１のサーバは複数の第１のサーバのうちの１つであり、前記中央サーバは複数の第２のサーバのうちの１つであることと、
前記第１のサーバにおいて、前記第１のサーバに記憶される複製に書き込まれるべきデータを含む書込リクエストを受信することと、
前記第１のサーバによって、前記第１のサーバに記憶される複製に書き込まれるべきデータがグローバルデータ規則に従うか否かを判定することと、
前記第１のサーバによって、前記第１のサーバに記憶される複製に書き込まれるべきデータが前記グローバルデータ規則に従うとする判定に応じて、前記第１のサーバが、前記中央サーバに前記書込リクエストの受理の承認を求める承認リクエストを送信することであって、前記中央サーバはグローバルナレッジを有することと、
前記第１のサーバにおいて、前記承認リクエストが承認されたか否かを示すメッセージを前記中央サーバから受信することと、
前記中央サーバが前記承認リクエストを承認することに応じて、前記第１のサーバが、前記書込リクエストを受理し、前記データを、前記第１のサーバに記憶される複製に書き込むことと、
前記中央サーバが前記承認リクエストを承認しないことに応じて、前記第１のサーバが前記書込リクエストを拒否することと、
前記複数の受信サーバは、前記複数の受信サーバのうちの少なくとも１つになされる変更を、第１の期間が経過するたびに複製することと、
前記複数の中央サーバは、前記複数の中央サーバのうちの少なくとも１つになされる変更を、前記複数の中央サーバのうちの少なくとも１つに変更がなされるたびに複製することと
を備えたことを特徴とするコンピュータ実行方法。
【請求項２】
前記第１のサーバよって、前記第１のサーバに記憶される前記複製に書き込まれるべき前記データがローカルデータ規則を充足するか否かを判定することと、
前記データが前記ローカルデータ規則を充足するという判定と、前記中央サーバが前記承認リクエストを承認することとに応じて、前記第１のサーバが前記書込リクエストを受理し、前記データを、前記第１のサーバに記憶される前記複製に書き込むことと、
前記データが前記ローカルデータ規則に適合しないとする判定に応じて、前記第１のサーバが前記書込リクエストを拒否することと
をさらに備えたことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項３】
前記送信することは、前記承認メッセージを生成することと、前記承認リクエスト内に前記データを含めることとを含むことを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項４】
前記中央サーバは、前記グローバルデータ規則を記憶し、前記承認リクエスト内の前記データが前記グローバルデータ規則を充足するか否かを判定することを特徴とする請求項３に記載のコンピュータ実行方法。
【請求項５】
前記データ規則は、前記データが前記分散システムに記憶される他のデータとの関係において唯一であることを要求することを特徴とする請求項３に記載のコンピュータ実行方法。
【請求項６】
前記分散システムは、分散ディレクトリを記憶し、前記書込リクエストを、ライトウエイトディレクトリアクセスプロトコルを用いて生成することを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項７】
前記分散システムは、分散ファイルシステムを記憶し、前記書込リクエストは、前記分散ファイルシステム上のファイルに前記データを書き込むことに関係することを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項８】
前記書込リクエストを、前記分散システムにアクセスするクライアントから受信することを特徴とする請求項１に記載のコンピュータ実行方法。
【請求項９】
各々が同一データの複製を記憶し且つ複製処理を担う複数のサーバを備えた分散システムにおいてグローバルデータ規則を適用し、前記複数のサーバに記憶される前記複製の各々の間でデータの整合性を維持するコンピュータ実行方法であって、
中央サーバに、グローバルデータ規則を、前記中央サーバによって適用するために記憶するステップであり、前記中央サーバは前記複数の第１のサーバのうちの１つであるステップと、
前記中央サーバにおいて、複数の第２のサーバのうちの１つである受信サーバによって送信される承認リクエストを受信するステップであって、前記承認リクエストは前記受信サーバにおいて受信される書込リクエストに関連し、前記承認リクエストは、前記受信サーバに記憶される複製に書き込まれるべきデータを含み、前記データは前記グローバルデータに従うステップであって、前記受信サーバは、前記複数の第１のサーバが利用不能な場合に書込リクエストを受理するか又は拒否するかを判断するポリシーを記憶するステップと、
前記中央サーバによって、前記受信サーバに記憶される複製に書き込まれるべきデータが前記グローバルデータ規則を充足するか否かを判定するステップと、
前記データが前記グローバルデータ規則を充足しないとする判定に応じて、前記中央サーバが、前記承認リクエストを拒否するメッセージを前記受信サーバに送信するステップと、
前記データが前記グローバルデータ規則を充足するとする判定に応じて、前記中央サーバが、前記データを前記中央サーバに記憶される前記複製に書き込み、前記書込リクエストを承認するメッセージを前記受信サーバに送信するステップと、
前記複数の第２のサーバは、前記複数の第１のサーバのうちの少なくとも１つになされる変更を、第１の期間が経過するたびに複製することと、
前記複数の第１のサーバは、前記複数の第２のサーバのうちの少なくとも１つになされる変更を、前記第１の期間より短い第２の期間が経過するたびに複製することと
を備えたことを特徴とするコンピュータ実行方法。
【請求項１０】
前記書き込むことの後に、前記中央サーバが、前記データを、前記複数のサーバのうちの１つである第２の中央サーバに複製することをさらに備えたことを特徴とする請求項９に記載のコンピュータ実行方法。
【請求項１１】
前記中央サーバに複製することを、前記送信することより前に実行することを特徴とする請求項１０に記載のコンピュータ実行方法。
【請求項１２】
前記分散システムは、分散ディレクトリサービスを記憶し、前記書込リクエストを、前記ライトウエイトディレクトリアクセスプロトコルを用いて生成することを特徴とする請求項９に記載のコンピュータ実行方法。
【請求項１３】
グローバルナレッジの適用を要求するデータ規則を各々が記憶する複数の中央サーバを備えた分散システムであって、前記分散システムは、
前記中央サーバの各々が、
受信サーバにデータを書き込むことについて承認を求める承認リクエストを受信することであって、前記承認リクエストは、前記データ規則に従う前記書込データを含むことと、
前記書込データが前記データ規則に適合するか否かを判定することと、
前記書込データが前記データ規則に適合しないとする判定に応じて、前記承認リクエストを拒否するメッセージを前記受信サーバに送信することと、
前記書込データが前記データ規則に適合するとする判定に応じて、前記書込データを前記中央サーバに書き込み、前記承認リクエストを承認するメッセージを前記受信サーバに送信することと
を実行可能とすることと、
複数の前記受信サーバの各々が、
書込リクエストを受信して前記書込データを前記受信サーバに書き込むことと、
前記複数の中央サーバが利用不能な場合に書込リクエストを受理するか又は拒否するかを判断するポリシーを記憶することと、
前記書込リクエストの承認を前記複数の中央サーバのうちの１つに求める承認リクエストを、前記複数の中央サーバのうちの１つに送信することと、
前記中央サーバからの前記承認リクエストを承認するメッセージの受信に応じて、前記書込リクエストを受理して前記データを前記受信サーバに書き込むことと、
前記中央サーバからの前記承認リクエストを拒否するメッセージの受信に応じて、前記書込リクエストを拒否することと
を実行可能とすることと、
前記複数の受信サーバは、前記複数の受信サーバのうちの少なくとも１つになされる変更を、第１の期間が経過するたびに複製することと、
前記複数の中央サーバは、前記複数の中央サーバのうちの少なくとも１つになされる変更を、前記複数の中央サーバのうちの少なくとも１つに変更がなされるたびに複製することと
を備えたことを特徴とする分散システム。
【請求項１４】
前記複数の中央サーバは、前記複数の受信サーバと異なる複製プロトコルを実装することを特徴とする請求項１３に記載の分散システム。
【請求項１５】
前記複数の中央サーバは、前記複数の受信サーバと異なる複製トポロジを実装することを特徴とする請求項１３に記載の分散システム。
【請求項１６】
前記複数の中央サーバは、前記複数の中央サーバが全て互いに接続された複製トポロジを実装することを特徴とする請求項１５に記載の分散システム。
【請求項１７】
前記複数の中央サーバの各々は、書込リクエストを受信して前記書込データを前記中央サーバに書き込むことをさらに実行可能とすることを特徴とする請求項１３に記載の分散システム。
【発明の詳細な説明】
【技術分野】
【０００１】
ファイルシステム及びディレクトリシステムのような分散システムは、幾つかの異なるノード（すなわち、サーバ）上に同一情報の複製又はコピーを記憶する。
【背景技術】
【０００２】
複製を含む幾つかのノードを有することは、フォールトトレランス、情報の高可用性及び改善されたシステム性能のような利点を提供する。これらの分散システムの部分集合によって、各ノードが情報の複製を記憶し当該情報に対するオリジナルの変更を受理することを可能とする。すなわち、ノードは、当該情報に対する読出し及び書込みの両方のアクセスを提供する権限を有する。これらシステムは、また、当該情報に対してなされた変更をノード間で互いに取得するのに複製プロトコルを用いる。このような態様は、複数のノードが各々独立して動作するのを可能とし、そして、他のノードと「同期する」することによって他のノードが最新状態になされる。このようなタイプのシステムは、マルチマスタ複製システムと称される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ライトウエイトディレクトリアクセスプロトコル（ＬＤＡＰ(Lightweight Directory Access Protocol)）システムは、しばしばマルチマスタ複製システムとして実現されるシステム例である。ＬＤＡＰシステムは、アドレス及びパスワード等のデータ、さらには許可管理のような管理がなされたＩＴシステムによって提供されるデータのような、ユーザによって供給されるデータを含む多くの種類のデータを記憶するのに用いられる。企業組織は、非常に多くの場合、ＬＤＡＰディレクトリで記憶されたデータについて規則又はビジネス論理を適用することを求める。例えば、１つのそのようなディレクトリは、ユーザ識別番号を記憶する場合がある。ＩＴ組織は、ユーザ識別番号が唯一であること、すなわち当該ユーザ識別番号を持つ２人のユーザは存在しないことを要求する規則を適用することを当該システムに求める場合がある。残念なことに、マルチマスタ複製システムとして実現されるＬＤＡＰシステムにおいて、このような形態を達成するのは困難である。各ノードが異なる値のユーザ識別番号について書込リクエストを受理することあり得る。各ノードがデータを当該規則と照合できた一方で、各ノードは当該データに対する自身にとっての見え方に制約されている。特定のノードにとって未だ知られていない書込みを他のノードが並行して受理していて、複製が完了したとき、当該システムを当該規則と整合しない状態のままにすることがあり得る（すなわち、同一の識別番号が異なるユーザに割り当てられる）。
【０００４】
本発明の実施形態は、これら及び他の課題に関してなされている。また、比較的特定の課題が説明されたにもかかわらず、本発明の実施形態が背景技術において特定された課題を解決することに限られるものではないことが理解されるべきである。
【課題を解決するための手段】
【０００５】
本概要は、以降の発明の詳細な説明で更に説明される概念の抜粋を単純化された形式で紹介するために提供される。本概要は、本発明の鍵となる特徴又は本質的な特徴を特定することを目的としないのみならず、本発明の範囲を画定するために使用されることを目的としない。
【０００６】
分散システム内の情報についてグローバルナレッジを有する専用のサーバを用いて、当該分散システムのノードに向けてなされる書込リクエストを承認することを指向する実施形態が説明される。当該サーバは、当該分散システムに書き込まれ得るデータに、データの唯一性（uniqueness）のような制限を課すデータ規則を適用する。当該分散システムは、当該データ規則を適用するためのグローバルナレッジを当該専用のサーバに提供するように設計されている。当該分散システム内の他のサーバが当該データ規則に従うデータを書き込むためのリクエストを受信するとき、当該他のサーバは、自身が当該書込リクエストを受理できる前に、当該専用のサーバの１つに問い合わせなければならない。このような態様は、当該分散システムに書き込まれる何らかのデータが当該データ規則に整合していることを保証する。もし当該データが当該規則と整合していると当該専用のサーバが判定する場合、当該書込リクエストは承認され、当該専用のサーバは当該リクエストに応じてその局所的な状態を更新するか否かを判断する。そうでない場合、当該書込リクエストは拒否される。
【０００７】
実施形態は、コンピュータ実行方法、コンピュータシステム、又はコンピュータプログラム製品又はコンピュータ読取可能媒体のような製造物品として実施されてもよい。当該コンピュータプログラム製品は、コンピュータシステムよって読込可能なコンピュータ記憶媒体であってもよいし、コンピュータプロセスを遂行する命令のコンピュータプログラムをコード化しているコンピュータ記憶媒体であってもよい。当該コンピュータプログラム製品は、また、コンピュータシステムよって読込可能な搬送波で伝達された信号であってもよいし、コンピュータプロセスを遂行する命令のコンピュータプログラムをコード化している信号であってもよい。
【０００８】
非制限的且つ非排他的な実施形態が以下の図を参照して説明される。
【図面の簡単な説明】
【０００９】
【図１】従来技術の分散システムを示すブロック図である。
【図２】実施形態に整合する分散システムを示すブロック図である。
【図３】図２に示した分散システムにおける複製時の情報転送を示すブロック図である。
【図４】分散システムにおける書込リクエストの処理手順を示すフローチャートである。
【図５】分散システムにおけるグローバルデータ規則を適用する処理手順を示すフローチャートである。
【図６】実施形態を実施するのに適切なコンピュータ環境のブロック図である。
【発明を実施するための形態】
【００１０】
様々な実施形態が本願の一部をなす添付の図面を参照して完全に説明され、図面は本発明を実施する特定の例示的な実施形態を示している。しかし、実施形態は多くの異なる形態で実施されてもよく、本願明細書において説明される実施形態に限られているが如く解釈されるべきでなく、むしろ、本開示が徹底され且つ完結されたものとなって、本発明の範囲を完全に当業者に伝達するものとなるように、これら実施形態が提供される。実施形態は、方法、システム又は装置として実施されてもよい。従って、実施形態はハードウェア実現の形をなしてもよいし、全体的にソフトウェア実現、又はソフトウェア及びハードウェア態様の組合せであってもよい。引き続く発明の詳細な説明は、従って、限定的にとらえるべきではない。
【００１１】
図１は、ネットワーク１０６及び１０８を介してアクセスするクライアントコンピュータシステム１０２及び１０４と、サーバコンピュータシステム１１０、１１２、１１４及び１１６として図１で例示される幾つかのノードと、を備える分散システム１００を示している。サーバ１１０、１１２、１１４及び１１６は、分散ファイルシステム又は分散ディレクトリのような情報を記憶する。各サーバ１１０、１１２、１１４及び１１６は、当該同一情報の複製又はコピーを記憶する。システム１００は、マルチマスタ複製システムの例であり、サーバ１１０、１１２、１１４及び１１６は、読出し及び書込み両方のアクセスをクライアント１０２及び１０４のようなクライアントに提供する権限を有する。システム１００は、また、当該情報になされた変更に関して互いに情報取得することをサーバ１１０、１１２、１１４及び１１６ができるようにする複製プロトコルを有する。サーバ１１０、１１２、１１４及び１１６は独立して動作し、次いで互い複製をなすことによって当該情報になされた変更に対して周期的な同期をなす。システム１００は、サーバ１１０、１１２、１１４及び１１６のうちのうちの１つの不具合が情報損失又は情報アクセス損失をもたらさないことから、多くのユーザが情報に直ぐにアクセス可能とする優位性を提供すると共にフォールトトレランスを提供する。
【００１２】
クライアント１０２及び１０４は、データ読込又はデータ修正のためにサーバ１１０及び１１２にリクエストを発行するシステム１００内のノードである。実施形態において、クライアント１０２及び１０４は、システム１００から何らかのデータをホステッング処理してもよい一方で、他の実施形態において、クライアント１０２及び１０４が少なくともあるデータをホステッング処理してもよい。本願明細書における用語「クライアント」とは、他のプロセスにリクエストを発行する何らかのプロセスを意味することが意図されていると理解されるべきである。単純化のために、図１は、クライアント１０２及び１０４がそれぞれサーバ１１０及び１１２にアクセスするだけであると示している。当業者が理解するように、ある分散システムは、クライアント１０２及び１０４がサーバ１１０、１１２、１１４及び１１６の何れにでもアクセス可能である。図１は、また、アクセスサーバへのアクセスに異なるネットワーク１０６及び１０８を用いるクライアント１０２及び１０４を示しているが、ある分散システムは、幾つかのクライアントが同一のネットワーク（又は複数のネットワーク）を介してサーバにアクセスできることを当業者は理解するであろう。
【００１３】
システム１００は、幾つかの優位点を提供するが、幾つかの欠点もある。サーバ１１０、１１２、１１４及び１１６の１つ以上が一時的にシステム１００から切り離されたとき、システム１００に記憶されるデータに衝突が発生する。例えば、サーバ１１０及び１１２が一時的にシステム１００から切り離される場合がある。この間に、サーバ１１０は、ユーザＩＤを第１のユーザに割り当てて書込リクエストを受理してもよい一方で、サーバ１１２は、当該同一のユーザＩＤを第２のユーザに割り当てる場合がある。
【００１４】
システム１００は、効果的にグローバルデータ規則を適用するためのメカニズムを提供することに失敗する。本特許出願において、用語「グローバルデータ規則」とは、分散システムで記憶されるデータに関連付けられたビジネスプロセスを提供する規則を意味することが意図されている。例えば、当該ビジネスプロセスは、ユーザＩＤが１つのユーザだけに関連付けられなければならないとするような当該データ上の制約であってもよく、又は全ての名称変更を人的資源データベースに転送するプロセスのような当該データと共に実行されるプロセスであってもよい。効果的にグローバルデータ規則を適用するために、１つ以上のサーバは、グローバルナレッジ（当該複製又はコピーの全ての情報についての更新された知識）を有しなければならない。グローバルデータ規則のうちの１つはデータ唯一性である。すなわち、情報の全ての複製又はコビーについてデータが一意の値を当該分散システムにおいて有することを要求することである。１つの具体例は、ユーザ識別番号が分散システムの全体にわたって一意な値を有することを要求する例である。
【００１５】
図１に示され且つ以下に説明されように、システム１００は、グローバルデータ規則を適用することはできない。ユーザ識別番号の例を拡張して、各サーバ１１０、１１２、１１４及び１１６がユーザ識別番号について書込みクエストを受理し書込することができる。クライアント１０２は、第１のユーザに識別番号を割り当てているサーバ１１０に書込リクエストを発行することができる。異なるユーザに同一のユーザ識別番号を割り当てて、クライアント１０４が書込リクエストをサーバ１１２に短期間に発行した場合があり得る。各サーバ１１０及び１１２は、データをチェックし当該ユーザ識別番号が唯一か否かを判定できた一方で、各サーバ１１０及び１１２は当該データに対する彼ら自身の見え方に制約されている。従って、システム１００は、ユーザ識別番号が単一ユーザと唯一関連することを要求する規則と整合しない情報を有することになる。
【００１６】
図２は、実施形態に従った分散システム２００を示している。分散システムの普通の優位性を提供するのに加えて、システム２００は、また、システム２００内のデータを制限するグローバルデータ規則が能率的且つ効果的に適用されるようにすることができる。システム２００は、受信サーバコンピュータシステム２１０、２１２、２１４及び２１６として図２で例示されるような幾つかのノードにアクセスするためにネットワーク２０６及び２０８を用いるクライアントコンピュータシステム２０２及び２０４を含む。システム２００は、システム２００における情報のグローバルナレッジを有する（又は、グローバルナレッジを非常に迅速に構築することができる）、中央コンピュータシステム２２０、２２２、２２４及び２２６を更に含み、これらはグローバルデータ規則を適用するシステム２００よって使われる。多くの異なる数の、そのような受信及び中央のサーバコンピュータシステムがあってもよいことが当業者によって認識されるであろう。
【００１７】
受信サーバ２１０、２１２、２１４及び２１６を再度参照すると、それらサーバは、分散ファイルシステム又は分散配置されたディレクトリのような情報を記憶する。受信サーバ２１０、２１２、２１４及び２１６の各々は、同一の情報の複製又はコピーを記憶する、システム２００は、クライアント２０２及び２０４のようなクライアントに読出し及び書込みの両方のアクセスを提供する権限を有する受信サーバ２１０、２１２、２１４及び２１６を備えるマルチマスタ複製システムである。システム２００は、また、受信サーバ２１０、２１２、２１４及び２１６が、当該情報になされた変更に関して互いに情報取得するのを可能とする複製プロトコルを有する。サーバ２１０、２１２、２１４及び２１６は独立して動作し、そして、互いに複製を行いそれら各々の複製になされた変更に対して周期的な同期を行う。システム２００は、幾つかのユーザに対して情報が直ぐにアクセス可能なようにすると共に、サーバ２１０、２１２、２１４及び２１６のうちのうちの１つの不具合が情報損失や当該情報へのアクセス損失を起こらないことから、フォールトトレラントでもある。
【００１８】
実施形態において、受信サーバ２１０、２１２、２１４及び２１６は、グローバルデータ規則を適用するためのグローバルナレッジを有しない。しかし、幾つかの実施形態において、受信サーバ２１０、２１２、２１４及び２１６は、「ローカルデータ規則」を記憶し適用することができる。本出願において、用語「ローカルデータ規則」とは、分散システムに記憶されたデータに制約を提供する規則を意味することが意図されるが、グローバルナレッジ（複製すなわちコビーに関する情報の知識）が効果的に適用されるべきことを要求するものではない。ローカルデータ規則の例としては、ユーザ識別番号が８桁を有することを要求する例、又は電話番号が文字を有することを許さない例がある。認識されるように、ローカルデータ規則は分散システムで記憶され得るデータを制限するのに役立つが、グローバルナレッジが効果的に適用されることを要求するものではない。
【００１９】
システム２００は、また、破線２１８内に示された一組の中央サーバ２２０、２２２、２２４及び２２６を含む。中央サーバ２２０、２２２、２２４及び２２６は、システム２００内の情報についてのグローバルナレッジを有し（又は、当該必要なナレッジを迅速に構築することができる）、効果的且つ能率的にグローバルデータ規則を適用する。各中央サーバ２２０、２２２、２２４及び２２６は、受信サーバ２１０、２１２、２１４及び２１６と同一のデータの複製又はコピーを記憶する。中央サーバ２２０、２２２、２２４及び２２６は、初期状態において、受信サーバ２１０、２１２、２１４及び２１６と同様のサーバである。当該中央サーバは、システム２００内で常に最新に更新された情報を有するように選択され、それらデータにグローバルデータ規則が適用されるのを可能とする。幾つかの実施形態において、当該中央サーバはネットワーク管理者によって例えば単なるフラグ設定によって選択されてもよい。どのサーバが中央サーバに促されるべきかの判定はサーバ特定のプロパティに基づいてもよい。例えば、最良なネットワークリンクを有するような複数サーブが中央サーバとして選択されてもよい。どのサーバが中央サーバとして選択されるかに関する判定は、例えば、当該個々のサーバ又はシステム２００の特性又はプロパティのような他の選択基準に基づいてもよい。
【００２０】
中央サーバ２２０、２２２、２２４及び２２６における複製は、受信サーバ２１０、２１２、２１４及び２１６における複製と比較して常に最新に更新された情報を有する。中央サーバ２２０、２２２、２２４及び２２６における当該更新された情報は、図３に関して下記に詳細に説明されように、それらの複製プロトコル及びトポロジに少なくとも部分的に基づいてもよい。図２に示されるように、受信サーバ２１０、２１２、２１４及び２１６の各々は、中央サーバ２２０、２２２、２２４及び２２６のうちの１つに接続され、グローバルデータ規則に従うデータに関連する書込リクエストを受理して取得する前に、中央サーバ２２０、２２２、２２４及び２２６のうちの１つに問い合わせなければならない。中央サーバ２２０、２２２、２２４及び２２６は、グローバルデータ規則を適用し、システム２００内の複製に書き込まれる情報が、設定されたグローバルデータ規則と整合していることを保証する。
【００２１】
中央サーバ２２０、２２２、２２４及び２２６は、互いに複製処理を担い、システム２００における情報に対してなされた変更に関して互いに情報を取得する。中央サーバ２２０、２２２、２２４及び２２６は、グローバルデータ規則に従うデータに関してグローバルナレッジを有する（又は、グローバルナレッジを迅速に構築することができる）。実施形態における中央サーバ２２０、２２２、２２４及び２２６は、システム２００内でなされた何らかの変更を中央サーバ２２０、２２２、２２４及び２２６に迅速に提供する複製プロトコルを部分的に介してそれらグローバルナレッジを取得する。図３に関して下記で更に説明されるように、実施形態において、中央サーバ２２０、２２２、２２４及び２２６は、グローバルナレッジを有することを要求されない受信サーバ２１０、２１２、２１４及び２１６によって用いられる複製プロトコルとは異なる複製プロトコルを有する。他の実施形態において、中央サーバ２２０、２２２、２２４及び２２６は、サーバ２１０、２１２、２１４及び２１６と同一の複製プロトコルを用いてもよいが、変更複製の間により短い時間枠を有するようなより積極的な変更複製のプロトコルを用いてもよい。
【００２２】
システム２００は、幾つかの実施形態において中央サーバ２２０、２２２、２２４及び２２６に少なくとも記憶されたるグローバルデータ規則を管理者が設定するのを可能とする。実施形態において、受信サーバ２１０、２１２、２１４及び２１６は、グローバルデータ規則に関わる十分な情報を記憶することによって当該グローバルデータ規則がいつ適用できるかについて判定する。当該受信サーバ２１０、２１２、２１４及び２１６は、当該グローバルデータ規則に従う書込リクエストを許可できる前に、当該中央サーバ２２０、２２２、２２４及び２２６のうちの１つに問い合わせることが要求される。当該受信サーバは単一の中央サーバに問い合わせることが要求されるだけであるから、グローバルデータ規則がシステム２００内で効率的に適用され得る。
【００２３】
システム２００は、クライアント２０２及び２０４のようなクライアントへの読出し及び書込み両方のアクセスを提供する権限を、受信サーバ２１０、２１２、２１４及び２１６に与えることよって動作する。受信サーバ２１０、２１２、２１４及び２１６は、書き込みリクエストを受理し、それぞれの複製にデータを書込む。しかし、もし書込リクエストが当該設定されたグローバルデータ規則に従うデータに関係する場合、受信サーバ２１０、２１２、２１４及び２１６は、当該書込リクエストを実行し得る前に、中央サーバ２２０、２２２、２２４及び２２６のうちの１つに問い合わせしなければならない。中央サーバ２２０、２２２、２２４及び２２６の各々は、当該グローバルナレッジを有して（又は、当該グローバルナレッジを非常に迅速に構築することができ）、当該グローバルデータ規則を適用することから、それら中央サーバの何れか１つに問い合わせることは、当該データが当該グローバルデータ規則と整合し且つ当該リクエストを実行できると受信サーバが確信できるようにしている。
【００２４】
実施形態は、システム２００の動作を更に例示するために説明される。管理者は、システム２００内のデータの値を制限するグローバルデータ規則を設定してもよい。例えば、当該データ規則は、システム２００における各ユーザ識別番号が唯一の番号であることを要求してもよく、すなわち、同一のユーザ識別を持つ２人のユーザがあり得ないことを要求してもよい。各ユーザ識別番号の唯一性を要求しているデータ規則は、次いで、中央サーバ２２０、２２２、２２４及び２２６に記憶される。当該データ規則の存在指標が受信サーバ２１０、２１２、２１４及び２１６の全てに記憶されることによって、ユーザ識別番号に関するどの書込リクエストも中央サーバ２２０、２２２、２２４及び２２６のうちの１つによって承認されなければならないことを、各受信サーバが認識できるようにしている。
【００２５】
クライアント２０２のユーザは、次いで、システム２００に記憶されるデータベース中にユーザ識別番号を書き込むことをリクエストする書込リクエストを受信サーバ２１０に送信しもよい。これに応じて、受信サーバ２１０は、ユーザ識別番号が以前に設定されたグローバルデータ規則を充足しなければならないことを認識することになる。その結果、受信サーバ２１０は、当該書込リクエストから当該ユーザ識別番号を含む承認メッセージを生成し、当該承認メッセージを中央サーバ２２０に承認のために送信する。
【００２６】
当該承認メッセージの受信に基づいて、中央サーバ２２０は当該グローバルデータ規則を適用する。中央サーバ２２０は、その複製における何らかの情報（中央サーバ２２０は、システム２００内の情報についてのグローバルナレッジを有する）が、受信サーバ２１０から受信された承認リクエスト内のユーザ識別番号と整合しているか否かを判定する。もし中央サーバ２２０が当該ユーザ識別番号と整合していない情報があると判定した場合、中央サーバ２２０は、受信サーバ２１０に向けて当該書込リクエストの承認を拒否するメッセージを送信することになる。従って、受信サーバ２１０は、クライアント２０２からの当該書込リクエストを許可することにはならならない。幾つかの実施形態において、受信サーバ２１０は、また、当該書込リクエストが拒否されたことを示すメッセージを生成し、これをクライアント２０２に送信することになる。
【００２７】
中央サーバ２２０が、当該ユーザ識別番号が当該グローバルデータ規則に従うと判定した場合、換言すれば当該番号が唯一であると判定した場合、中央サーバ２２０は、それ自身の複製に当該ユーザ識別番号を書込むことになる。当該ユーザ識別番号をそれ自身の複製に書き込むことは、中央サーバ２２０が常に最新に更新された情報を有することを保証する。中央サーバ２２０が当該ユーザ識別番号をそれ自身の複製に書き込んだ後、中央サーバ２２０は、当該変更を他の中央サーバ２２２、２２４及び２２６に対して複製し、各セントラルサーバが各々のグローバルナレッジを維持することを保証する。中央サーバ２２０は、次いで、当該書込リクエストを承認するメッセージを生成し、これを受信サーバ２１０に送信することになる。受信サーバ２１０は、当該ユーザ識別番号をその複製に書込み、そして、幾つかの実施形態において当該書込リクエストが完了されたことを示すメッセージをクライアント２０２に送信することになる。
【００２８】
もし、当該書込リクエストがクライアント２０２から承認された直後である場合、及び／又はクライアント２０４が異なる人について同一のユーザ識別番号を含む書込リクエストを送信した場合、当該リクエストは適切に拒否されることになる。受信サーバ２１２が当該書込リクエストをクライアント２０４から受信するとき、受信サーバ２１２は、当該ユーザ識別番号がグローバルデータ規則に従うと認識することになる。その結果、受信サーバ２１２は、承認メッセージを生成し、当該メッセージを中央サーバ２２２に送信することになる。中央サーバ２２２は、当該書込リクエストからの当該セキュリティ番号がその複製において他の人について既に受信されたか否かを判定する試験をその複製に対して行うことによって当該グローバルデータ規則を適用することになる。中央サーバ２２２、２２４及び２２６の全ての複製に対して、中央サーバ２２０がクライアント２０２の書込リクエストからのデータで既に更新していたことから、中央サーバ２２２は、クライアント２０４の書込リクエストからのユーザ識別番号が唯一ではないと認識し、当該書込リクエストを拒否することになる。このように、システム２００は、ユーザ識別番号の唯一性を要求するグローバルデータ規則を効率的且つ効果的に適用することができる。
【００２９】
図２で例示されるシステム２００の具体的な詳細は、単純化の目的で示されたが、制限することが意図されないと理解されるべきである。例えば、図２は、各々が受信サーバ２１０及び２１２にアクセスするだけのクライアント２０２及び２０４を示し、何らクライアントに接続されていない他の受信サーバを示している。他の実施形態において、クライアント２０２及び２０４は、受信サーバ２１０、２１２、２１４及び２１６の何れにでもアクセスすることが可能である。図２は、また、異なるネットワーク２０６及び２０８を用いてサーバ２１０、２１２にアクセスするクライアント２０２及び２０４を示しているが、他の実施形態におけるシステム２００は、クライアント２０２及び２０４に加えて幾つかのクライアントがサーバ２１０、２１２、２１４及び２１６に同一のネットワーク（又は、複数ネットワーク）を介してアクセスするのを可能とする。
【００３０】
ネットワーク２０６及び２０８は、クライアントコンピュータシステムに複数のサーバコンピュータシステムを接続するのに有用なコンピュータネットワークの何らかのタイプであってもよい。ネットワーク２０６及び２０８は、例えばローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）であってもよい。幾つかの実施形態において、ネットワーク２０６及び２０８は、イントラネット、インターネット及び／又はそれらの組合せを含む。
【００３１】
図２は、また、中央サーバ２２０、２２２、２２４及び２２６が何らクライアントよってアクセスされないこと示している。しかし、幾つかの実施形態において、中央サーバ２２０、２２２、２２４及び２２６は、クライアントよってアクセスされ、グローバルデータの適用が課されているのに加えて、クライアントから直接の書込リクエストを受理してもよい。これら実施形態において、上記に説明されたように、中央サーバ２２０、２２２、２２４及び２２６は、グローバル情報を有して当該グローバルデータ規則を適用することから、適用可能な何らかのグローバルデータ規則を適用するのに他の何らかのサーバに問い合わせる必要性がない。
【００３２】
さらに、図２は、受信サーバ２１０、２１２、２１４及び２１６の各々が１つの中央サーバ２２０、２２２、２２４及び２２６だけに接続されていること示している。幾つかの実施形態において、受信サーバ２１０、２１２、２１４及び２１６は、どの受信サーバもどの中央サーバに承認リクエストを送信できる形で、中央サーバ２２０、２２２、２２４及び２２６に接続されてもよい。これらの実施形態は、システム２００に追加的なフォールトトレランスを提供する。例えば、受信サーバ２１０によって発行された承認リクエストを処理するのに、もし中央サーバ２２０が利用不能な場合、受信サーバ２１０は、当該リクエストを他の中央サーバに承認のために送信することができる。
【００３３】
図３は、分散システム３００の他の実施形態である。システム３００は、システム２００と同様であり、そこでは、２つのタイプの異なるサーバすなわち、受信サーバ３１０、３１２、３１４と、破線３１８によって括られている一組の中央サーバ３２０、３２２、３２４及び３２６とを含む。中央サーバ３２０、３２２、３２４及び３２６の各々は、情報のグローバルナレッジをシステム３００内に有し（又は、グローバルナレッジを迅速に構築することができる）、当該グローバルデータ規則を適用できる。図３には、システム３００における複製時の各サーバ間の情報転送の方向を矢印で示している。すなわち、図３は、概括的に、システム３００における当該サーバの複製トポロジを示している。図３で示される実施形態において、受信サーバ３１０、３１２、３１４及び３１６は、中央サーバ３２０、３２２、３２４及び３２６とは異なる複製トポロジを有する。以下で説明されるように、中央サーバ３２０、３２２、３２４及び３２６の複製トポロジは、それらのグローバルナレッジを少なくとも部分的に担っている。
【００３４】
図３に示されるように、受信サーバ３１０、３１２、３１４及び３１６は、リング状の複製トポロジを有する。リング複製トポロジにおいて、各サーバは２台の他のサーバ毎に複製を行い、最初と最後のサーバにおいて互いに複製を行うループを形成する。システム３００において、サーバ３１４がサーバ３１０及び３１２と複製を行い、その一方でサーバ３１２がサーバ３１４に加えてサーバ３１６と複製を行う。サーバ３１６がサーバ３１２に加えてサーバ３１０と複製を行う。最後に、サーバ３１０がサーバ３１６及び３１４と複製を行い、リング形成を完了する。
【００３５】
実施形態において、中央サーバ３２０、３２２、３２４及び３２６は、完全に結合された複製トポロジを有する。完全に結合された複製トポロジにおいて、各サーバは他のサーバと互いに複製を行う。システム３００において、サーバ３２０は、サーバ３２２、３２４及び３２６と複製を行い、サーバ３２２がサーバ３２０、３２４及び３２６と複製を行い、サーバ３２４がサーバ３２０、３２２及び３２６と複製を行い、そして、サーバ３２６がサーバ３２０、３２２及び３２４と複製を行う。図３で分かるように、中央サーバ３２０、３２２、３２４及び３２６の複製トポロジは、当該中央サーバの全てが情報を当該他の中央サーバの全てに直接送信することを可能とする。この複製トポロジは、当該中央サーバにおいて、システム３００内でなされる変更のグローバルナレッジを維持するのを助ける。システム３００において、グローバルデータ規則に従う情報に対する何らかの変更も中央サーバ３２０、３２２、３２４及び３２６のうちの１つのよって承認されなければならず、各サーバは、当該変更をそれ自身の複製に直ちに書き込むことになり、その完全に結合された複製トポロジに基づいて、当該他の中央サーバの全てに対して変更の複製を直接行うことができる。このプロセスは、何らかの変更がシステム３００でなされた直後に、当該中央サーバが常に最新に更新されたナレッジを全て有することを保証にする。
【００３６】
分散システムのために効果的な複製トポロジを構成することは複雑な作業であり得るし、サーバの数、如何にしてサーバが接続されか、如何にして分散システムが組織化されるか（サイト、ドメイン、その他）、分散システムの目標（データ整合性、データの高可用性、その他）のような様々な要因に依存することを当業者は認識するであろう。このように、図３は受信サーバ及び中央サーバとの組合せを備えるシステムについての複製トポロジの１つの実施形態を示すことを単に目的とし、そこにおいて、当該中央サーバは、グローバルデータ規則を適用するためのグローバルナレッジを有する。システム３００は、幾つかの実施形態において、当該受信サーバ及び当該中央サーバが異なる複製トポロジを有するとして示されているが、当該受信サーバ及び当該中央サーバは同一の複製トポロジを有してもよい。
【００３７】
当該複製トポロジに加えて、実施形態において、中央サーバ３２０、３２２、３２４及び３２６も、それらのグローバルナレッジを維持するのを助ける複製プロトコルを有する。当該中央サーバは、承認リクエストを受信するのに際してグローバルナレッジを有するべきであることから、中央サーバ３２０、３２２、３２４及び３２６のうちの１つになされた何らかの変更も非常に迅速に他の中央サーバに複製されなければならない。その結果、当該中央サーバは、複製処理期間がごく短時間である複製スケジュールを含むプロトコルを実装してもよい。複製動作期間が短時間であることに加えて又は代わりに、当該中央サーバは、自身の複製になした変更が直ちに（又は、非常に迅速に）直接他の中央サーバに対しても複製されることを要求するプロトコルを実装してもよい。
【００３８】
幾つかの実施形態において、中央サーバ３２０、３２２、３２４及び３２６よって実装されるプロトコルが、グローバルデータ規則の重要性又は決定的な性質に基づいて異なる複製スケジュールを適用してもよいことが認められるべきである。例えば、組織にとって決定的であると考えられるあるグローバルデータ規則が存在してもよく、そこにおいて、何らかの変更も直ちに当該中央サーバの全てに複製されることを管理者が欲する場合がある。しかし、ある複数のグローバルデータ規則が重要ない場合があり、この場合、当該規則に関連する変更は予定された期間内で複製されればよい。もちろん、実施形態において、中央サーバ３２０、３２２、３２４及び３２６が実装する複製プロトコルは、グローバルナレッジを有することが要求されない受信サーバ３１０、３１２、３１４及び３１６が実装するプロトコルとは異なってもよい。
【００３９】
他の実施形態において、中央サーバ３２０、３２２、３２４及び３２６は、また、特に設計された複製プロトコル及びトポロジに加えて、グローバルデータ規則を適用するための最新のナレッジを提供する他の方法を実現してもよい。例えば１つの実施形態において、サーバ３２０、３２２、３２４及び３２６は、受信サーバ３１０、３１２、３１４及び３１６からのリクエストを承認する前に、互いに問い合わせてもよい。すなわち、中央サーバがグローバルデータ規則に従うリクエストを受信するとき、当該中央サーバは、当該他の中央サーバの全てに問い合わせることによって、当該リクエストが当該他の中央サーバ上のデータと衝突しないことを保証する。さらに他の実施形態において、中央サーバがリクエストを受信するとき、当該中央サーバが特定のデータに関するリクエストを受信したことを示すメッセージを他の中央サーバに送信してもよい。このメッセージの受信に応じて、当該他の中央サーバは、当該同一データに関係するデータを自身が受信するようなどのリクエストも許可しないことなる。当該他の中央サーバが当該元の中央サーバから第２のメッセージを受信するとき、その状態保持が解除されることになる。当該第２のメッセージは当該変更された情報を含むことになる。
【００４０】
図４及び図５は、実施形態に従った処理フロー４００及び処理フロー５００各々を例示している。処理フロー４００及び処理フロー５００は、何らかの適切なコンピュータ環境において実行されてもよい。例えば、当該処理フローは、図２及び図３で例示されるようなシステムよって実行されてもよい。従って、処理フロー４００及び処理フロー５００の説明は、図２及び図３のコンポーネントのうちの少なくとも１つを参照する場合がある。しかし、図２及び図３のコンポーネントに対する何らかの参照は、説明目的だけのためであり、図２及び図３の実施形態が処理フロー４００及び処理フロー５００について非制限的な環境であることが理解されるべきである。
【００４１】
さらに、処理フロー４００及び処理フロー５００は、特定の順序で示されて説明されているが、他の実施形態において、当該処理ステップは異なる順番、複数回、及び／又は並行して実行されてもよい。更に、１つ以上の処理ステップは、幾つかの実施形態において省略されても又は結合されてもよい。
【００４２】
図４は、分散システムにおいて書込リクエストを実施形態に従って処理する処理フロー４００を示している。処理ステップ４０２において、書込データを含む書込リクエストが受信される。実施形態において、当該書込リクエストは、受信サーバ上の複製に変更をなすことをリクエストするクライアント２０２、２０４、３０２及び３０４のようなクライアントコンピュータよって生成され送信される。当該書込リクエストに含まれて受信される書込データは、当該分散システムにおける複製に書き込まれるべきデータである。実施形態において、当該書込リクエストは、図２において説明された受信サーバ（サーバ２１０、２１２、２１４及び２１６）及び図３において説明された受信サーバ（サーバ３１０、３１２、３１４及び３１６）のような受信サーバよって受信されてもよい。
【００４３】
処理ステップ４０２の後、フローは次いで処理ステップ４０４に移り、グローバルデータ規則が当該書込リクエストで受信される書込データに適用されるか否かの判定がなされる。当該分散システムの管理者は、当該分散システムに記憶されるデータを制約するグローバルデータ規則を設定してもよい。上記のように、データ規則のうちの１つの例は、データが当該分散システム全体にわたって唯一な値を有することを要求する例である。グローバルデータ規則の適用は、幾つかの実施形態において、図２に説明された中央サーバ（サーバ２２０、２２２、２２４及び２２６）及び図３に説明された中央サーバ（サーバ３２０、３１２、３２４及び３２６）のような一群の中央サーバに委ねられる。
【００４４】
処理ステップ４０４において、もし当該書込データがグローバルデータ規則に従わないと判定された場合、フローは処理ステップ４０６に移る。処理ステップ４０６において、当該書込データがローカルデータ規則を充足するか否かの判定がなされる。上記のように、ローカルデータ規則は、当該分散システムに書き込まれるデータに対して制限を設けるが、グローバルナレッジを適用することを要求してはいない。実施形態において、受信サーバは、処理ステップ４０６を実行し、当該書込データが何らかの適用可能なローカルデータ規則を充足するか否かを判定する。
【００４５】
処理ステップ４０６において、当該書込データが当該ローカルデータ規則を充足しないとする判定がなされた場合、フローは処理ステップ４０８に移り、当該書込リクエストが拒否される。処理ステップ４０８は、幾つかの実施形態において、当該書込リクエストが拒否されたことを示すメッセージを当該受信サーバから当該書込リクエストを元々生成したクライアントに送信するステップを含む。処理ステップ４０８の後、フローは処理ステップ４１０で終わる。
【００４６】
しかし、処理ステップ４０６において、もし適用可能なローカルデータ規則を当該書込データが充足するとの判定がなされた場合、フローは処理ステップ４１２に移り、当該書込リクエストが受理され当該書込データが当該分散システムに書き込まれる。幾つかの実施形態における処理ステップ４１２は、当該受信サーバにおいて、当該書込リクエストが受理されたことを示すメッセージを生成し、当該書込リクエストを元々生成した当該クライアントに送信するステップを含む。処理ステップ４１２の後、フローは処理ステップ４１０で終わる。
【００４７】
幾つかの実施形態において、もし適用するためのローカルデータ規則がない場合、処理フロー４００が処理ステップ４０６を含まない場合があることに留意する必要がある。これら実施形態において、フローが処理ステップ４０４から処理ステップ４１２に直接に移ることになり、そこにおいて、当該書込リクエストは受理されて当該書込データが当該分散システムに書き込まれる。フローは次いで処理ステップ４１０で終わることになる。
【００４８】
処理ステップ４０４を再度参照すると、グローバルデータ規則を適用するとの判定がなされた場合、フローは処理ステップ４０４から処理ステップ４１４に移る。処理ステップ４１４において、承認リクエストを処理するのに中央サーバが利用可能か否かについて判定がなされる。実施形態において、処理ステップ４０４において受信サーバがグローバルデータ規則を適用すると判定した後、当該受信サーバは、グローバルデータ規則を適用する中央サーバに承認リクエストを送信しなければならない。処理ステップ４１４が実行され、当該受信サーバよって生成された承認リクエストを処理するのに中央サーバが利用可能であるか否かが判定される。中央サーバは、サーバクラッシュ、接続喪失、及び／又はサーバが他のリクエストでビジーである等の幾つかの理由で利用不能な場合がある。
【００４９】
処理ステップ４１４において、中央サーバが利用不能であるとの判定がなされた場合、フローは処理ステップ４１６に移る。処理ステップ４１６において、当該中央サーバの利用不能状態に関するポリシーが適用される。当該ポリシーは、当該リクエストを承認するのに中央サーバが利用不能なとき、（グローバルデータ規則に従う）書込リクエストがどのように処理されるかについて判定する。図４に示されるように（破線内）、処理ステップ４１６で実行される特定のポリシーに従って、フローは処理ステップ４１６から処理ステップ４０６、４０８又は４１６の何れかに移ってもよい。実施形態において、当該ポリシーは、当該書込リクエストの全てを単純に拒否してフローが処理ステップ４０８に移るか、又は当該書込リクエストの全てを許可してフローが処理ステップ４０６に移ってもよい。他の実施形態において、当該ポリシーは、中央サーバが利用可能となるまで処理ステップ４１４から処理ステップ４１６を繰り返すフローを要求してもよい。
【００５０】
当該ポリシーは、個々のデータ規則の重要性を反映することになる。例えば、もし書込リクエストが組織にとって決定的に重要であるデータ規則に従う場合、当該決定的なデータ規則に従う何らかの書込リクエストを中央サーバよって承認され得ないとして拒否することよって当該データ規則の重要性を当該ポリシーが反映してもよい。同時に、より重要ではないデータ規則に従う書込リクエストが、当該書込リクエストが中央サーバよって承認され得ない場合にさえ許可されてもよい。他の実施形態において、当該ポリシーは、当該グローバルデータ規則に違反する書込リクエストを許可してもよいが、当該違反が起こったという事実を記録してもよい。そして、当該グローバルデータ規則との何らかの不一致を後で一致させるのに当該ログが用いられ得る。当業者が認識するように、処理ステップ４１６において設定され適用される特定のポリシーは、当該分散システムの実施形態に依存するであろう。
【００５１】
処理ステップ４１４を再度参照すると、もし中央サーバが利用可能であとの判定がなされた場合、フローは処理ステップ４１８に移り、承認リクエストが中央サーバに送信される。当該承認リクエストは、当該書込リクエストを受理し且つ当該書込データを当該分散システムに書き込むことの承認を中央サーバに求める。実施形態において、処理ステップ４１８は受信サーバよって実行され、処理ステップ４０２において受信された書込データを含む承認リクエストを生成するような幾つかのサブステップを含み、当該承認リクエストを中央サーバに送信するステップを含む。
【００５２】
処理ステップ４１８の後、フローは処理ステップ４２０へ移り、メッセージが中央サーバから受信される。当該メッセージは、処理ステップ４１８において送信された承認リクエストに応じたものである。処理ステップ４２０に続いて、フローは処理ステップ４２２に移り、当該中央サーバが当該書込リクエストを承認したことを、当該中央サーバから受信されたメッセージが示しているか否かについて判定がなされる。処理ステップ４２２において、もし当該中央サーバが当該書込リクエストを承認しなかったとする判定がなされた場合、フローは処理ステップ４０８に移り、前に説明したように当該書込リクエストは拒否される。
【００５３】
もし、処理ステップ４２２において、当該中央サーバが当該書込リクエストを承認したとする判定がなされた場合、フローは処理ステップ４０６に移り、当該書込データがローカルデータ規則を充足するか否かについて判定がなされる。処理ステップ４０６から、フローは前に説明されたように進むことになる。幾つかの実施形態において、何らかのローカルデータ規則が無いこともあり、この場合、フローは処理ステップ４２２から処理ステップ４１２に直接移り、当該書込リクエストが受理される。フローは次いで処理ステップ４１０で終わることになる。
【００５４】
図４は、処理フロー４００の動作が実行される順序を制限するような解釈がなされるべきでない。例えば、１つの特定の実施形態において、処理ステップ４０４は、処理ステップ４０６の後に、又は並行して実行されてもよい。他の実施形態において、ローカルデータ規則が設定されていなかった場合、処理ステップ４０６は、まとめてスキップされることになる。
【００５５】
図５は、分散システムにおけるグローバルデータ規則を適用する処理フロー５００を示している。処理フロー５００は処理ステップ５０２で始まり、グローバルデータ規則が記憶される。実施形態において、処理ステップ５０２は、当該分散システムにおける情報のグローバルナレッジを有する中央サーバよって実行され、例えば、図２で説明された中央サーバ（サーバ２２０、２２２、２２４及び２２６）及び図３で説明された中央サーバ（サーバ３２０、３２２、３２４及び３２６）のような中央サーバよって実行される。当該中央サーバは、グローバルデータ規則を適用するのに用いられ、当該分散システムに書き込まれる何らかのデータが、設定されたデータ規則と整合していることを保証にする。
【００５６】
処理ステップ５０２の後、フローは処理ステップ５０４に移り、書込データを含む承認リクエストが受信される。処理ステップ５０２は、当該承認リクエストを受信する中央サーバよって実行され、実施形態において、当該承認リクエストは、図２で説明された受信サーバ（サーバ２１０、２１２、２１４及び２１６）及び図３で説明された受信サーバ（サーバ３１０、３１２、３１４及び３１６）のような受信サーバによって送信される。当該承認リクエストは、書込リクエスト（すなわち、当該分散システムにデータを書き込むリクエスト）について当該中央サーバから承認を求める。他の情報に加えて、当該書込リクエストは、当該分散システムに書き込まれるべき書込データを含む。
【００５７】
処理ステップ５０６において、処理ステップ５０４で当該承認リクエストとともに受信された書込データが、処理ステップ５０２で記憶されたグローバルデータ規則を充足するか否かの判定がなされる。もし当該書込データが当該グローバルデータ規則を充足しない場合、フローは処理ステップ５０８に移り、そこにおいて、当該承認リクエストを拒否するメッセージが送信される。当該中央サーバは、実施形態において、当該承認リクエストを拒否するメッセージを生成し、これを当該承認メッセージを送信した当該受信サーバに送信する。処理ステップ５０８の後、フローは処理ステップ５１０で終わる。
【００５８】
もし、処理ステップ５０６において、当該書込データが処理ステップ５０２で記憶されたグローバルデータ規則を充足しているとする判定がなされた場合、フローは処理ステップ５１２に移り、そこにおいて、当該中央サーバは、当該承認リクエストにて受信されたデータをそれ自身の複製に書き込むことになる。上記のように、中央サーバは、当該分散システム内の情報についてのグローバルナレッジを有する（又は、迅速に構築することができる）ことによって、グローバルデータ規則の適用を可能とし、従って、実施形態において変更が承認されたとき、最初の動作は自身の複製に当該情報を書き込むことである。
【００５９】
処理ステップ５１２の後、当該承認リクエストを承認するメッセージが処理ステップ５１４において送信される。処理ステップ５１４は、実施形態において、処理ステップ５０４で受信された承認リクエストを承認するメッセージを中央サーバが生成し送信する動作を含む。当該メッセージは、受信サーバに対して、当該受信サーバが書込リクエストを受理し当該データを当該受信サーバに記憶されている複製に書き込んでも良いこと示している。
【００６０】
幾つかの実施形態において、当該グローバルデータ規則は、分散システムに書き込まれているデータに関連付けられた処理又はビジネスプロセスを含んでもよい。１つの実施形態として、名称（すなわち、新規に加えられたか又は変更された名称）が何時書かれるかに係る規則を当該グローバルデータ規則が設定してもよく、当該情報は人的資源サーバに転送されなければならない。当業者は認識するように、他のビジネスプロセス及び処理が設定されてもよい。これらの実施形態において、当該ビジネスプロセス又は処理は、処理ステップ５１２及び５１４の後に又は並行して実行されてもよい。
【００６１】
処理ステップ５１４の後、フローは次いで処理ステップ５１６に移り、そこにおいて、処理ステップ５１２で当該中央サーバよって書かれたデータが他の中央サーバに複製される。処理ステップ５１６の間に実行された特定のステップは、当該分散システムにおいて中央サーバのために設定された当該複製プロトコル及びトポロジに基づくことになる。図３に関して前に説明されたように、中央サーバは、当該分散システムにおける情報のグローバルナレッジを当該中央サーバが維持することを保証にするように設計された様々な複製プロトコル及びトポロジを実装してもよい。
【００６２】
図５は、フロー５００の動作が実行される順序を制限するように解釈されるべきでない。例えば、１つの特定の実施形態において、処理ステップ５１６は処理ステップ５１４の直後に又は並行して実行されることになる。この実施形態は、当該複製に書き込まれたデータが他の中央サーバに迅速に複製されることを保証し、当該他の中央サーバが当該分散システムにおける情報についてのグローバルナレッジを維持することを保証にする。
【００６３】
図６は、本明細書において説明されている実施形態を実施する汎用コンピュータシステム６００を示している。当該コンピュータシステム６００は、コンピュータ環境のうちの１つの例でしかなく、コンピュータ及びネットワークアーキテクチャの使用又は機能の範囲に関して何らかの限定を示唆することは意図されない。コンピュータシステム６００は、例としてのコンピュータシステム６００で示されるコンポーネントのうちの何らかの１つ又は組合せに関して何らかの依存性又は必要性を有するが如く解釈されるべきでない。実施形態において、システム６００は、図２及び図３に関して上記で説明された受信サーバ及び／又は中央サーバとして用いられてもよい。
【００６４】
その最も基本的な構成において、システム６００は、典型的には、少なくとも１つのプロセッシングユニット６０２及びメモリ６０４を含む。コンピュータ装置の実際の構成及びタイプに依存して、メモリ６０４は、（ＲＡＭのような）揮発性でもよく、（ＲＯＭ、フラッシュメモリ、その他のような）不揮発性でもよく、又はこれらの２つのタイプの組合せであってもよい。この最も基本的な構成は、図６において破線６０６よって例示されている。システムメモリ６０４は、システム６００において実行されるアプリケーションを記憶する。アプリケーションに加えて、メモリ６０４は、また、図２〜図５に関して上記で説明されたように、書込リクエスト６１０及び／又は承認リクエスト６１２のような、システム６００によって実行中の処理に用いられている情報を記憶してもよい。
【００６５】
加えて、システム６００は、また、付加的な特徴／機能を有してもよい。例えば、装置６００は、また、限定するものではないが磁気又は光学ディスク又はテープを含む付加的な（着脱可能及び／又は着脱不能）記憶部６０８を含んでもよい。そのような付加的な記憶部は、図６において記憶部６０８によって例示されている。コンピュータ記憶媒体は、情報（例えばコンピュータ読取可能命令、データ構造、プログラムモジュール又は他のデータ）の記憶のための何らかの方法も又は技術で実装される揮発性媒体及び不揮発性媒体並びに着脱可能媒体及び着脱不能媒体を含む。メモリ６０４及び記憶部６０８はコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、限定されるものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しく他のメモリ技術、ＣＤ―ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）又は光学記憶部、磁気カセット、磁気テープ、磁気ディスク記憶部又は他の磁気記憶装置、又は所望の情報を記憶するのに用いられ且つシステム６００によってアクセスされ得る何らかの他の媒体を含む。そのような何らかのコンピュータ記憶媒体は、システム６００の一部であってもよい。
【００６６】
当業者が認識するように、記憶部６０８は様々な情報を記憶してもよい。他のタイプの情報の中で、記憶部６０８は分散システム上の情報のデータ規則６１８及び複製６２０を記憶してもよい。当該データ規則は、図２及び図３に関して説明されたようにシステム６００が受信サーバ又は中央サーバであるか否かに依存して、ローカルデータ規則又はグローバルデータ規則であってもよい。
【００６７】
システム６００は、また、当該システムが他の装置との通信を可能とする通信接続部（群）６１２を含んでもよい。通信接続部（群）６１２は、通信媒体の例である。通信媒体は、典型的には、搬送波のような変調されたデータ信号又は他の転送機構における、コンピュータ読取可能命令、データ構造、プログラムモジュール、又は他のデータを実現し、何らかの情報配布媒体を含む。用語「変調されたデータ信号」とは、当該信号上に情報を符号化することに関して、その特性集合のうちの１つ以上を有するか又はそのような形で変化された信号を意味する。例えば、限定するものではないが、通信媒体は、有線ネットワーク又は直接結線された接続のような有線媒体、並びに音響、ＲＦ、赤外線、他の無線媒体のような無線媒体を含む。本明細書において用いられる用語としてコンピュータ読取可能媒体とは記憶媒体及び通信媒体を含む。
【００６８】
システム６００は、また、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、その他のような入力装置（群）６１４を含んでもよい。ディスプレイ、スピーカ、プリンタ、その他のような出力装置（群）６１６が含まれてもよい。これら全ての装置は従来技術において周知であり、ここで詳細に説明される必要はない。
【００６９】
本明細書を通してなされた「１つの実施形態」又は「幾つかの実施形態」に対する参照は、特に説明された特徴、構造又は性質が少なくとも１つの実施形態に含まれていることを意味する。このように、そのような文言の使用は、たった１つの実施形態以外の実施形態に関連付けられてもよい。さらに、当該説明されている特徴、構造又は性質は、１つ以上の実施形態における何らかの適切な形態と組み合せられてもよい。
【００７０】
しかし、本発明が１つ以上の特定の詳細によることなく実施されても又は他の方法、資源、材料、その他によって実施されてもよいことを当業者は認識するはずである。他の例において、周知の構造、資源又は処理は、単に本発明の態様を不明瞭にすることを避けるために示されないか又は説明されていない。
【００７１】
実施形態及び応用が例示され説明された一方で、本発明が上記で説明された精確な構成及び資源に限定されないことが理解されるべきである。様々な改変、変更及び変様が、本明細書で開示された方法及びシステムの配置、処理及び詳細において、本願の特許請求の範囲から逸脱することなくなされ得ることは当業者にとって明らかである。
【図１】
0004806729.tif 000002
【図２】
0004806729.tif 000003
【図３】
0004806729.tif 000004
【図４】
0004806729.tif 000005
【図５】
0004806729.tif 000006
【図６】
0004806729.tif 000007