JP2010532051A - グローバルナレッジを有するサーバによる書込リクエスト処理 - Google Patents

グローバルナレッジを有するサーバによる書込リクエスト処理 Download PDF

Info

Publication number
JP2010532051A
JP2010532051A JP2010514966A JP2010514966A JP2010532051A JP 2010532051 A JP2010532051 A JP 2010532051A JP 2010514966 A JP2010514966 A JP 2010514966A JP 2010514966 A JP2010514966 A JP 2010514966A JP 2010532051 A JP2010532051 A JP 2010532051A
Authority
JP
Japan
Prior art keywords
data
server
servers
receiving
central
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.)
Granted
Application number
JP2010514966A
Other languages
English (en)
Other versions
JP2010532051A5 (ja
JP4806729B2 (ja
Inventor
ガブリロフ ドミトリー
エス.フライシュマン エリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010532051A publication Critical patent/JP2010532051A/ja
Publication of JP2010532051A5 publication Critical patent/JP2010532051A5/ja
Application granted granted Critical
Publication of JP4806729B2 publication Critical patent/JP4806729B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)

Abstract

分散システム内に情報のグローバルナレッジを有する専用のサーバを用いて書込リクエストを処理することが指向される実施形態が説明される。当該専用のサーバは、当該分散システムに書き込まれる可能性があるデータを制限するデータ規則を適用するのに用いられる。当該分散システムに書き込まれるデータが当該データ規則と整合していることを保証するために、当該分散システム内の他のサーバが当該データ規則に従う情報の書込みに対するリクエストを受信するとき、当該他のサーバが当該書込リクエストを受理することができる前に、当該他のサーバは当該専用のサーバの1つに問い合わせなければならない。当該専用のサーバが当該データが当該データ規則と整合していると判定する場合、当該書込リクエストは承認される。そうでない場合には当該書込リクエストは拒否される。

Description

ファイルシステム及びディレクトリシステムのような分散システムは、幾つかの異なるノード(すなわち、サーバ)上に同一情報の複製又はコピーを記憶する。
複製を含む幾つかのノードを有することは、フォールトトレランス、情報の高可用性及び改善されたシステム性能のような利点を提供する。これらの分散システムの部分集合によって、各ノードが情報の複製を記憶し当該情報に対するオリジナルの変更を受理することを可能とする。すなわち、ノードは、当該情報に対する読出し及び書込みの両方のアクセスを提供する権限を有する。これらシステムは、また、当該情報に対してなされた変更をノード間で互いに取得するのに複製プロトコルを用いる。このような態様は、複数のノードが各々独立して動作するのを可能とし、そして、他のノードと「同期する」することによって他のノードが最新状態になされる。このようなタイプのシステムは、マルチマスタ複製システムと称される。
ライトウエイトディレクトリアクセスプロトコル(LDAP(Lightweight Directory Access Protocol))システムは、しばしばマルチマスタ複製システムとして実現されるシステム例である。LDAPシステムは、アドレス及びパスワード等のデータ、さらには許可管理のような管理がなされたITシステムによって提供されるデータのような、ユーザによって供給されるデータを含む多くの種類のデータを記憶するのに用いられる。企業組織は、非常に多くの場合、LDAPディレクトリで記憶されたデータについて規則又はビジネス論理を適用することを求める。例えば、1つのそのようなディレクトリは、ユーザ識別番号を記憶する場合がある。IT組織は、ユーザ識別番号が唯一であること、すなわち当該ユーザ識別番号を持つ2人のユーザは存在しないことを要求する規則を適用することを当該システムに求める場合がある。残念なことに、マルチマスタ複製システムとして実現されるLDAPシステムにおいて、このような形態を達成するのは困難である。各ノードが異なる値のユーザ識別番号について書込リクエストを受理することあり得る。各ノードがデータを当該規則と照合できた一方で、各ノードは当該データに対する自身にとっての見え方に制約されている。特定のノードにとって未だ知られていない書込みを他のノードが並行して受理していて、複製が完了したとき、当該システムを当該規則と整合しない状態のままにすることがあり得る(すなわち、同一の識別番号が異なるユーザに割り当てられる)。
本発明の実施形態は、これら及び他の課題に関してなされている。また、比較的特定の課題が説明されたにもかかわらず、本発明の実施形態が背景技術において特定された課題を解決することに限られるものではないことが理解されるべきである。
本概要は、以降の発明の詳細な説明で更に説明される概念の抜粋を単純化された形式で紹介するために提供される。本概要は、本発明の鍵となる特徴又は本質的な特徴を特定することを目的としないのみならず、本発明の範囲を画定するために使用されることを目的としない。
分散システム内の情報についてグローバルナレッジを有する専用のサーバを用いて、当該分散システムのノードに向けてなされる書込リクエストを承認することを指向する実施形態が説明される。当該サーバは、当該分散システムに書き込まれ得るデータに、データの唯一性(uniqueness)のような制限を課すデータ規則を適用する。当該分散システムは、当該データ規則を適用するためのグローバルナレッジを当該専用のサーバに提供するように設計されている。当該分散システム内の他のサーバが当該データ規則に従うデータを書き込むためのリクエストを受信するとき、当該他のサーバは、自身が当該書込リクエストを受理できる前に、当該専用のサーバの1つに問い合わせなければならない。このような態様は、当該分散システムに書き込まれる何らかのデータが当該データ規則に整合していることを保証する。もし当該データが当該規則と整合していると当該専用のサーバが判定する場合、当該書込リクエストは承認され、当該専用のサーバは当該リクエストに応じてその局所的な状態を更新するか否かを判断する。そうでない場合、当該書込リクエストは拒否される。
実施形態は、コンピュータ実行方法、コンピュータシステム、又はコンピュータプログラム製品又はコンピュータ読取可能媒体のような製造物品として実施されてもよい。当該コンピュータプログラム製品は、コンピュータシステムよって読込可能なコンピュータ記憶媒体であってもよいし、コンピュータプロセスを遂行する命令のコンピュータプログラムをコード化しているコンピュータ記憶媒体であってもよい。当該コンピュータプログラム製品は、また、コンピュータシステムよって読込可能な搬送波で伝達された信号であってもよいし、コンピュータプロセスを遂行する命令のコンピュータプログラムをコード化している信号であってもよい。
非制限的且つ非排他的な実施形態が以下の図を参照して説明される。
従来技術の分散システムを示すブロック図である。 実施形態に整合する分散システムを示すブロック図である。 図2に示した分散システムにおける複製時の情報転送を示すブロック図である。 分散システムにおける書込リクエストの処理手順を示すフローチャートである。 分散システムにおけるグローバルデータ規則を適用する処理手順を示すフローチャートである。 実施形態を実施するのに適切なコンピュータ環境のブロック図である。
様々な実施形態が本願の一部をなす添付の図面を参照して完全に説明され、図面は本発明を実施する特定の例示的な実施形態を示している。しかし、実施形態は多くの異なる形態で実施されてもよく、本願明細書において説明される実施形態に限られているが如く解釈されるべきでなく、むしろ、本開示が徹底され且つ完結されたものとなって、本発明の範囲を完全に当業者に伝達するものとなるように、これら実施形態が提供される。実施形態は、方法、システム又は装置として実施されてもよい。従って、実施形態はハードウェア実現の形をなしてもよいし、全体的にソフトウェア実現、又はソフトウェア及びハードウェア態様の組合せであってもよい。引き続く発明の詳細な説明は、従って、限定的にとらえるべきではない。
図1は、ネットワーク106及び108を介してアクセスするクライアントコンピュータシステム102及び104と、サーバコンピュータシステム110、112、114及び116として図1で例示される幾つかのノードと、を備える分散システム100を示している。サーバ110、112、114及び116は、分散ファイルシステム又は分散ディレクトリのような情報を記憶する。各サーバ110、112、114及び116は、当該同一情報の複製又はコピーを記憶する。システム100は、マルチマスタ複製システムの例であり、サーバ110、112、114及び116は、読出し及び書込み両方のアクセスをクライアント102及び104のようなクライアントに提供する権限を有する。システム100は、また、当該情報になされた変更に関して互いに情報取得することをサーバ110、112、114及び116ができるようにする複製プロトコルを有する。サーバ110、112、114及び116は独立して動作し、次いで互い複製をなすことによって当該情報になされた変更に対して周期的な同期をなす。システム100は、サーバ110、112、114及び116のうちのうちの1つの不具合が情報損失又は情報アクセス損失をもたらさないことから、多くのユーザが情報に直ぐにアクセス可能とする優位性を提供すると共にフォールトトレランスを提供する。
クライアント102及び104は、データ読込又はデータ修正のためにサーバ110及び112にリクエストを発行するシステム100内のノードである。実施形態において、クライアント102及び104は、システム100から何らかのデータをホステッング処理してもよい一方で、他の実施形態において、クライアント102及び104が少なくともあるデータをホステッング処理してもよい。本願明細書における用語「クライアント」とは、他のプロセスにリクエストを発行する何らかのプロセスを意味することが意図されていると理解されるべきである。単純化のために、図1は、クライアント102及び104がそれぞれサーバ110及び112にアクセスするだけであると示している。当業者が理解するように、ある分散システムは、クライアント102及び104がサーバ110、112、114及び116の何れにでもアクセス可能である。図1は、また、アクセスサーバへのアクセスに異なるネットワーク106及び108を用いるクライアント102及び104を示しているが、ある分散システムは、幾つかのクライアントが同一のネットワーク(又は複数のネットワーク)を介してサーバにアクセスできることを当業者は理解するであろう。
システム100は、幾つかの優位点を提供するが、幾つかの欠点もある。サーバ110、112、114及び116の1つ以上が一時的にシステム100から切り離されたとき、システム100に記憶されるデータに衝突が発生する。例えば、サーバ110及び112が一時的にシステム100から切り離される場合がある。この間に、サーバ110は、ユーザIDを第1のユーザに割り当てて書込リクエストを受理してもよい一方で、サーバ112は、当該同一のユーザIDを第2のユーザに割り当てる場合がある。
システム100は、効果的にグローバルデータ規則を適用するためのメカニズムを提供することに失敗する。本特許出願において、用語「グローバルデータ規則」とは、分散システムで記憶されるデータに関連付けられたビジネスプロセスを提供する規則を意味することが意図されている。例えば、当該ビジネスプロセスは、ユーザIDが1つのユーザだけに関連付けられなければならないとするような当該データ上の制約であってもよく、又は全ての名称変更を人的資源データベースに転送するプロセスのような当該データと共に実行されるプロセスであってもよい。効果的にグローバルデータ規則を適用するために、1つ以上のサーバは、グローバルナレッジ(当該複製又はコピーの全ての情報についての更新された知識)を有しなければならない。グローバルデータ規則のうちの1つはデータ唯一性である。すなわち、情報の全ての複製又はコビーについてデータが一意の値を当該分散システムにおいて有することを要求することである。1つの具体例は、ユーザ識別番号が分散システムの全体にわたって一意な値を有することを要求する例である。
図1に示され且つ以下に説明されように、システム100は、グローバルデータ規則を適用することはできない。ユーザ識別番号の例を拡張して、各サーバ110、112、114及び116がユーザ識別番号について書込みクエストを受理し書込することができる。クライアント102は、第1のユーザに識別番号を割り当てているサーバ110に書込リクエストを発行することができる。異なるユーザに同一のユーザ識別番号を割り当てて、クライアント104が書込リクエストをサーバ112に短期間に発行した場合があり得る。各サーバ110及び112は、データをチェックし当該ユーザ識別番号が唯一か否かを判定できた一方で、各サーバ110及び112は当該データに対する彼ら自身の見え方に制約されている。従って、システム100は、ユーザ識別番号が単一ユーザと唯一関連することを要求する規則と整合しない情報を有することになる。
図2は、実施形態に従った分散システム200を示している。分散システムの普通の優位性を提供するのに加えて、システム200は、また、システム200内のデータを制限するグローバルデータ規則が能率的且つ効果的に適用されるようにすることができる。システム200は、受信サーバコンピュータシステム210、212、214及び216として図2で例示されるような幾つかのノードにアクセスするためにネットワーク206及び208を用いるクライアントコンピュータシステム202及び204を含む。システム200は、システム200における情報のグローバルナレッジを有する(又は、グローバルナレッジを非常に迅速に構築することができる)、中央コンピュータシステム220、222、224及び226を更に含み、これらはグローバルデータ規則を適用するシステム200よって使われる。多くの異なる数の、そのような受信及び中央のサーバコンピュータシステムがあってもよいことが当業者によって認識されるであろう。
受信サーバ210、212、214及び216を再度参照すると、それらサーバは、分散ファイルシステム又は分散配置されたディレクトリのような情報を記憶する。受信サーバ210、212、214及び216の各々は、同一の情報の複製又はコピーを記憶する、システム200は、クライアント202及び204のようなクライアントに読出し及び書込みの両方のアクセスを提供する権限を有する受信サーバ210、212、214及び216を備えるマルチマスタ複製システムである。システム200は、また、受信サーバ210、212、214及び216が、当該情報になされた変更に関して互いに情報取得するのを可能とする複製プロトコルを有する。サーバ210、212、214及び216は独立して動作し、そして、互いに複製を行いそれら各々の複製になされた変更に対して周期的な同期を行う。システム200は、幾つかのユーザに対して情報が直ぐにアクセス可能なようにすると共に、サーバ210、212、214及び216のうちのうちの1つの不具合が情報損失や当該情報へのアクセス損失を起こらないことから、フォールトトレラントでもある。
実施形態において、受信サーバ210、212、214及び216は、グローバルデータ規則を適用するためのグローバルナレッジを有しない。しかし、幾つかの実施形態において、受信サーバ210、212、214及び216は、「ローカルデータ規則」を記憶し適用することができる。本出願において、用語「ローカルデータ規則」とは、分散システムに記憶されたデータに制約を提供する規則を意味することが意図されるが、グローバルナレッジ(複製すなわちコビーに関する情報の知識)が効果的に適用されるべきことを要求するものではない。ローカルデータ規則の例としては、ユーザ識別番号が8桁を有することを要求する例、又は電話番号が文字を有することを許さない例がある。認識されるように、ローカルデータ規則は分散システムで記憶され得るデータを制限するのに役立つが、グローバルナレッジが効果的に適用されることを要求するものではない。
システム200は、また、破線218内に示された一組の中央サーバ220、222、224及び226を含む。中央サーバ220、222、224及び226は、システム200内の情報についてのグローバルナレッジを有し(又は、当該必要なナレッジを迅速に構築することができる)、効果的且つ能率的にグローバルデータ規則を適用する。各中央サーバ220、222、224及び226は、受信サーバ210、212、214及び216と同一のデータの複製又はコピーを記憶する。中央サーバ220、222、224及び226は、初期状態において、受信サーバ210、212、214及び216と同様のサーバである。当該中央サーバは、システム200内で常に最新に更新された情報を有するように選択され、それらデータにグローバルデータ規則が適用されるのを可能とする。幾つかの実施形態において、当該中央サーバはネットワーク管理者によって例えば単なるフラグ設定によって選択されてもよい。どのサーバが中央サーバに促されるべきかの判定はサーバ特定のプロパティに基づいてもよい。例えば、最良なネットワークリンクを有するような複数サーブが中央サーバとして選択されてもよい。どのサーバが中央サーバとして選択されるかに関する判定は、例えば、当該個々のサーバ又はシステム200の特性又はプロパティのような他の選択基準に基づいてもよい。
中央サーバ220、222、224及び226における複製は、受信サーバ210、212、214及び216における複製と比較して常に最新に更新された情報を有する。中央サーバ220、222、224及び226における当該更新された情報は、図3に関して下記に詳細に説明されように、それらの複製プロトコル及びトポロジに少なくとも部分的に基づいてもよい。図2に示されるように、受信サーバ210、212、214及び216の各々は、中央サーバ220、222、224及び226のうちの1つに接続され、グローバルデータ規則に従うデータに関連する書込リクエストを受理して取得する前に、中央サーバ220、222、224及び226のうちの1つに問い合わせなければならない。中央サーバ220、222、224及び226は、グローバルデータ規則を適用し、システム200内の複製に書き込まれる情報が、設定されたグローバルデータ規則と整合していることを保証する。
中央サーバ220、222、224及び226は、互いに複製処理を担い、システム200における情報に対してなされた変更に関して互いに情報を取得する。中央サーバ220、222、224及び226は、グローバルデータ規則に従うデータに関してグローバルナレッジを有する(又は、グローバルナレッジを迅速に構築することができる)。実施形態における中央サーバ220、222、224及び226は、システム200内でなされた何らかの変更を中央サーバ220、222、224及び226に迅速に提供する複製プロトコルを部分的に介してそれらグローバルナレッジを取得する。図3に関して下記で更に説明されるように、実施形態において、中央サーバ220、222、224及び226は、グローバルナレッジを有することを要求されない受信サーバ210、212、214及び216によって用いられる複製プロトコルとは異なる複製プロトコルを有する。他の実施形態において、中央サーバ220、222、224及び226は、サーバ210、212、214及び216と同一の複製プロトコルを用いてもよいが、変更複製の間により短い時間枠を有するようなより積極的な変更複製のプロトコルを用いてもよい。
システム200は、幾つかの実施形態において中央サーバ220、222、224及び226に少なくとも記憶されたるグローバルデータ規則を管理者が設定するのを可能とする。実施形態において、受信サーバ210、212、214及び216は、グローバルデータ規則に関わる十分な情報を記憶することによって当該グローバルデータ規則がいつ適用できるかについて判定する。当該受信サーバ210、212、214及び216は、当該グローバルデータ規則に従う書込リクエストを許可できる前に、当該中央サーバ220、222、224及び226のうちの1つに問い合わせることが要求される。当該受信サーバは単一の中央サーバに問い合わせることが要求されるだけであるから、グローバルデータ規則がシステム200内で効率的に適用され得る。
システム200は、クライアント202及び204のようなクライアントへの読出し及び書込み両方のアクセスを提供する権限を、受信サーバ210、212、214及び216に与えることよって動作する。受信サーバ210、212、214及び216は、書き込みリクエストを受理し、それぞれの複製にデータを書込む。しかし、もし書込リクエストが当該設定されたグローバルデータ規則に従うデータに関係する場合、受信サーバ210、212、214及び216は、当該書込リクエストを実行し得る前に、中央サーバ220、222、224及び226のうちの1つに問い合わせしなければならない。中央サーバ220、222、224及び226の各々は、当該グローバルナレッジを有して(又は、当該グローバルナレッジを非常に迅速に構築することができ)、当該グローバルデータ規則を適用することから、それら中央サーバの何れか1つに問い合わせることは、当該データが当該グローバルデータ規則と整合し且つ当該リクエストを実行できると受信サーバが確信できるようにしている。
実施形態は、システム200の動作を更に例示するために説明される。管理者は、システム200内のデータの値を制限するグローバルデータ規則を設定してもよい。例えば、当該データ規則は、システム200における各ユーザ識別番号が唯一の番号であることを要求してもよく、すなわち、同一のユーザ識別を持つ2人のユーザがあり得ないことを要求してもよい。各ユーザ識別番号の唯一性を要求しているデータ規則は、次いで、中央サーバ220、222、224及び226に記憶される。当該データ規則の存在指標が受信サーバ210、212、214及び216の全てに記憶されることによって、ユーザ識別番号に関するどの書込リクエストも中央サーバ220、222、224及び226のうちの1つによって承認されなければならないことを、各受信サーバが認識できるようにしている。
クライアント202のユーザは、次いで、システム200に記憶されるデータベース中にユーザ識別番号を書き込むことをリクエストする書込リクエストを受信サーバ210に送信しもよい。これに応じて、受信サーバ210は、ユーザ識別番号が以前に設定されたグローバルデータ規則を充足しなければならないことを認識することになる。その結果、受信サーバ210は、当該書込リクエストから当該ユーザ識別番号を含む承認メッセージを生成し、当該承認メッセージを中央サーバ220に承認のために送信する。
当該承認メッセージの受信に基づいて、中央サーバ220は当該グローバルデータ規則を適用する。中央サーバ220は、その複製における何らかの情報(中央サーバ220は、システム200内の情報についてのグローバルナレッジを有する)が、受信サーバ210から受信された承認リクエスト内のユーザ識別番号と整合しているか否かを判定する。もし中央サーバ220が当該ユーザ識別番号と整合していない情報があると判定した場合、中央サーバ220は、受信サーバ210に向けて当該書込リクエストの承認を拒否するメッセージを送信することになる。従って、受信サーバ210は、クライアント202からの当該書込リクエストを許可することにはならならない。幾つかの実施形態において、受信サーバ210は、また、当該書込リクエストが拒否されたことを示すメッセージを生成し、これをクライアント202に送信することになる。
中央サーバ220が、当該ユーザ識別番号が当該グローバルデータ規則に従うと判定した場合、換言すれば当該番号が唯一であると判定した場合、中央サーバ220は、それ自身の複製に当該ユーザ識別番号を書込むことになる。当該ユーザ識別番号をそれ自身の複製に書き込むことは、中央サーバ220が常に最新に更新された情報を有することを保証する。中央サーバ220が当該ユーザ識別番号をそれ自身の複製に書き込んだ後、中央サーバ220は、当該変更を他の中央サーバ222、224及び226に対して複製し、各セントラルサーバが各々のグローバルナレッジを維持することを保証する。中央サーバ220は、次いで、当該書込リクエストを承認するメッセージを生成し、これを受信サーバ210に送信することになる。受信サーバ210は、当該ユーザ識別番号をその複製に書込み、そして、幾つかの実施形態において当該書込リクエストが完了されたことを示すメッセージをクライアント202に送信することになる。
もし、当該書込リクエストがクライアント202から承認された直後である場合、及び/又はクライアント204が異なる人について同一のユーザ識別番号を含む書込リクエストを送信した場合、当該リクエストは適切に拒否されることになる。受信サーバ212が当該書込リクエストをクライアント204から受信するとき、受信サーバ212は、当該ユーザ識別番号がグローバルデータ規則に従うと認識することになる。その結果、受信サーバ212は、承認メッセージを生成し、当該メッセージを中央サーバ222に送信することになる。中央サーバ222は、当該書込リクエストからの当該セキュリティ番号がその複製において他の人について既に受信されたか否かを判定する試験をその複製に対して行うことによって当該グローバルデータ規則を適用することになる。中央サーバ222、224及び226の全ての複製に対して、中央サーバ220がクライアント202の書込リクエストからのデータで既に更新していたことから、中央サーバ222は、クライアント204の書込リクエストからのユーザ識別番号が唯一ではないと認識し、当該書込リクエストを拒否することになる。このように、システム200は、ユーザ識別番号の唯一性を要求するグローバルデータ規則を効率的且つ効果的に適用することができる。
図2で例示されるシステム200の具体的な詳細は、単純化の目的で示されたが、制限することが意図されないと理解されるべきである。例えば、図2は、各々が受信サーバ210及び212にアクセスするだけのクライアント202及び204を示し、何らクライアントに接続されていない他の受信サーバを示している。他の実施形態において、クライアント202及び204は、受信サーバ210、212、214及び216の何れにでもアクセスすることが可能である。図2は、また、異なるネットワーク206及び208を用いてサーバ210、212にアクセスするクライアント202及び204を示しているが、他の実施形態におけるシステム200は、クライアント202及び204に加えて幾つかのクライアントがサーバ210、212、214及び216に同一のネットワーク(又は、複数ネットワーク)を介してアクセスするのを可能とする。
ネットワーク206及び208は、クライアントコンピュータシステムに複数のサーバコンピュータシステムを接続するのに有用なコンピュータネットワークの何らかのタイプであってもよい。ネットワーク206及び208は、例えばローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)であってもよい。幾つかの実施形態において、ネットワーク206及び208は、イントラネット、インターネット及び/又はそれらの組合せを含む。
図2は、また、中央サーバ220、222、224及び226が何らクライアントよってアクセスされないこと示している。しかし、幾つかの実施形態において、中央サーバ220、222、224及び226は、クライアントよってアクセスされ、グローバルデータの適用が課されているのに加えて、クライアントから直接の書込リクエストを受理してもよい。これら実施形態において、上記に説明されたように、中央サーバ220、222、224及び226は、グローバル情報を有して当該グローバルデータ規則を適用することから、適用可能な何らかのグローバルデータ規則を適用するのに他の何らかのサーバに問い合わせる必要性がない。
さらに、図2は、受信サーバ210、212、214及び216の各々が1つの中央サーバ220、222、224及び226だけに接続されていること示している。幾つかの実施形態において、受信サーバ210、212、214及び216は、どの受信サーバもどの中央サーバに承認リクエストを送信できる形で、中央サーバ220、222、224及び226に接続されてもよい。これらの実施形態は、システム200に追加的なフォールトトレランスを提供する。例えば、受信サーバ210によって発行された承認リクエストを処理するのに、もし中央サーバ220が利用不能な場合、受信サーバ210は、当該リクエストを他の中央サーバに承認のために送信することができる。
図3は、分散システム300の他の実施形態である。システム300は、システム200と同様であり、そこでは、2つのタイプの異なるサーバすなわち、受信サーバ310、312、314と、破線318によって括られている一組の中央サーバ320、322、324及び326とを含む。中央サーバ320、322、324及び326の各々は、情報のグローバルナレッジをシステム300内に有し(又は、グローバルナレッジを迅速に構築することができる)、当該グローバルデータ規則を適用できる。図3には、システム300における複製時の各サーバ間の情報転送の方向を矢印で示している。すなわち、図3は、概括的に、システム300における当該サーバの複製トポロジを示している。図3で示される実施形態において、受信サーバ310、312、314及び316は、中央サーバ320、322、324及び326とは異なる複製トポロジを有する。以下で説明されるように、中央サーバ320、322、324及び326の複製トポロジは、それらのグローバルナレッジを少なくとも部分的に担っている。
図3に示されるように、受信サーバ310、312、314及び316は、リング状の複製トポロジを有する。リング複製トポロジにおいて、各サーバは2台の他のサーバ毎に複製を行い、最初と最後のサーバにおいて互いに複製を行うループを形成する。システム300において、サーバ314がサーバ310及び312と複製を行い、その一方でサーバ312がサーバ314に加えてサーバ316と複製を行う。サーバ316がサーバ312に加えてサーバ310と複製を行う。最後に、サーバ310がサーバ316及び314と複製を行い、リング形成を完了する。
実施形態において、中央サーバ320、322、324及び326は、完全に結合された複製トポロジを有する。完全に結合された複製トポロジにおいて、各サーバは他のサーバと互いに複製を行う。システム300において、サーバ320は、サーバ322、324及び326と複製を行い、サーバ322がサーバ320、324及び326と複製を行い、サーバ324がサーバ320、322及び326と複製を行い、そして、サーバ326がサーバ320、322及び324と複製を行う。図3で分かるように、中央サーバ320、322、324及び326の複製トポロジは、当該中央サーバの全てが情報を当該他の中央サーバの全てに直接送信することを可能とする。この複製トポロジは、当該中央サーバにおいて、システム300内でなされる変更のグローバルナレッジを維持するのを助ける。システム300において、グローバルデータ規則に従う情報に対する何らかの変更も中央サーバ320、322、324及び326のうちの1つのよって承認されなければならず、各サーバは、当該変更をそれ自身の複製に直ちに書き込むことになり、その完全に結合された複製トポロジに基づいて、当該他の中央サーバの全てに対して変更の複製を直接行うことができる。このプロセスは、何らかの変更がシステム300でなされた直後に、当該中央サーバが常に最新に更新されたナレッジを全て有することを保証にする。
分散システムのために効果的な複製トポロジを構成することは複雑な作業であり得るし、サーバの数、如何にしてサーバが接続されか、如何にして分散システムが組織化されるか(サイト、ドメイン、その他)、分散システムの目標(データ整合性、データの高可用性、その他)のような様々な要因に依存することを当業者は認識するであろう。このように、図3は受信サーバ及び中央サーバとの組合せを備えるシステムについての複製トポロジの1つの実施形態を示すことを単に目的とし、そこにおいて、当該中央サーバは、グローバルデータ規則を適用するためのグローバルナレッジを有する。システム300は、幾つかの実施形態において、当該受信サーバ及び当該中央サーバが異なる複製トポロジを有するとして示されているが、当該受信サーバ及び当該中央サーバは同一の複製トポロジを有してもよい。
当該複製トポロジに加えて、実施形態において、中央サーバ320、322、324及び326も、それらのグローバルナレッジを維持するのを助ける複製プロトコルを有する。当該中央サーバは、承認リクエストを受信するのに際してグローバルナレッジを有するべきであることから、中央サーバ320、322、324及び326のうちの1つになされた何らかの変更も非常に迅速に他の中央サーバに複製されなければならない。その結果、当該中央サーバは、複製処理期間がごく短時間である複製スケジュールを含むプロトコルを実装してもよい。複製動作期間が短時間であることに加えて又は代わりに、当該中央サーバは、自身の複製になした変更が直ちに(又は、非常に迅速に)直接他の中央サーバに対しても複製されることを要求するプロトコルを実装してもよい。
幾つかの実施形態において、中央サーバ320、322、324及び326よって実装されるプロトコルが、グローバルデータ規則の重要性又は決定的な性質に基づいて異なる複製スケジュールを適用してもよいことが認められるべきである。例えば、組織にとって決定的であると考えられるあるグローバルデータ規則が存在してもよく、そこにおいて、何らかの変更も直ちに当該中央サーバの全てに複製されることを管理者が欲する場合がある。しかし、ある複数のグローバルデータ規則が重要ない場合があり、この場合、当該規則に関連する変更は予定された期間内で複製されればよい。もちろん、実施形態において、中央サーバ320、322、324及び326が実装する複製プロトコルは、グローバルナレッジを有することが要求されない受信サーバ310、312、314及び316が実装するプロトコルとは異なってもよい。
他の実施形態において、中央サーバ320、322、324及び326は、また、特に設計された複製プロトコル及びトポロジに加えて、グローバルデータ規則を適用するための最新のナレッジを提供する他の方法を実現してもよい。例えば1つの実施形態において、サーバ320、322、324及び326は、受信サーバ310、312、314及び316からのリクエストを承認する前に、互いに問い合わせてもよい。すなわち、中央サーバがグローバルデータ規則に従うリクエストを受信するとき、当該中央サーバは、当該他の中央サーバの全てに問い合わせることによって、当該リクエストが当該他の中央サーバ上のデータと衝突しないことを保証する。さらに他の実施形態において、中央サーバがリクエストを受信するとき、当該中央サーバが特定のデータに関するリクエストを受信したことを示すメッセージを他の中央サーバに送信してもよい。このメッセージの受信に応じて、当該他の中央サーバは、当該同一データに関係するデータを自身が受信するようなどのリクエストも許可しないことなる。当該他の中央サーバが当該元の中央サーバから第2のメッセージを受信するとき、その状態保持が解除されることになる。当該第2のメッセージは当該変更された情報を含むことになる。
図4及び図5は、実施形態に従った処理フロー400及び処理フロー500各々を例示している。処理フロー400及び処理フロー500は、何らかの適切なコンピュータ環境において実行されてもよい。例えば、当該処理フローは、図2及び図3で例示されるようなシステムよって実行されてもよい。従って、処理フロー400及び処理フロー500の説明は、図2及び図3のコンポーネントのうちの少なくとも1つを参照する場合がある。しかし、図2及び図3のコンポーネントに対する何らかの参照は、説明目的だけのためであり、図2及び図3の実施形態が処理フロー400及び処理フロー500について非制限的な環境であることが理解されるべきである。
さらに、処理フロー400及び処理フロー500は、特定の順序で示されて説明されているが、他の実施形態において、当該処理ステップは異なる順番、複数回、及び/又は並行して実行されてもよい。更に、1つ以上の処理ステップは、幾つかの実施形態において省略されても又は結合されてもよい。
図4は、分散システムにおいて書込リクエストを実施形態に従って処理する処理フロー400を示している。処理ステップ402において、書込データを含む書込リクエストが受信される。実施形態において、当該書込リクエストは、受信サーバ上の複製に変更をなすことをリクエストするクライアント202、204、302及び304のようなクライアントコンピュータよって生成され送信される。当該書込リクエストに含まれて受信される書込データは、当該分散システムにおける複製に書き込まれるべきデータである。実施形態において、当該書込リクエストは、図2において説明された受信サーバ(サーバ210、212、214及び216)及び図3において説明された受信サーバ(サーバ310、312、314及び316)のような受信サーバよって受信されてもよい。
処理ステップ402の後、フローは次いで処理ステップ404に移り、グローバルデータ規則が当該書込リクエストで受信される書込データに適用されるか否かの判定がなされる。当該分散システムの管理者は、当該分散システムに記憶されるデータを制約するグローバルデータ規則を設定してもよい。上記のように、データ規則のうちの1つの例は、データが当該分散システム全体にわたって唯一な値を有することを要求する例である。グローバルデータ規則の適用は、幾つかの実施形態において、図2に説明された中央サーバ(サーバ220、222、224及び226)及び図3に説明された中央サーバ(サーバ320、312、324及び326)のような一群の中央サーバに委ねられる。
処理ステップ404において、もし当該書込データがグローバルデータ規則に従わないと判定された場合、フローは処理ステップ406に移る。処理ステップ406において、当該書込データがローカルデータ規則を充足するか否かの判定がなされる。上記のように、ローカルデータ規則は、当該分散システムに書き込まれるデータに対して制限を設けるが、グローバルナレッジを適用することを要求してはいない。実施形態において、受信サーバは、処理ステップ406を実行し、当該書込データが何らかの適用可能なローカルデータ規則を充足するか否かを判定する。
処理ステップ406において、当該書込データが当該ローカルデータ規則を充足しないとする判定がなされた場合、フローは処理ステップ408に移り、当該書込リクエストが拒否される。処理ステップ408は、幾つかの実施形態において、当該書込リクエストが拒否されたことを示すメッセージを当該受信サーバから当該書込リクエストを元々生成したクライアントに送信するステップを含む。処理ステップ408の後、フローは処理ステップ410で終わる。
しかし、処理ステップ406において、もし適用可能なローカルデータ規則を当該書込データが充足するとの判定がなされた場合、フローは処理ステップ412に移り、当該書込リクエストが受理され当該書込データが当該分散システムに書き込まれる。幾つかの実施形態における処理ステップ412は、当該受信サーバにおいて、当該書込リクエストが受理されたことを示すメッセージを生成し、当該書込リクエストを元々生成した当該クライアントに送信するステップを含む。処理ステップ412の後、フローは処理ステップ410で終わる。
幾つかの実施形態において、もし適用するためのローカルデータ規則がない場合、処理フロー400が処理ステップ406を含まない場合があることに留意する必要がある。これら実施形態において、フローが処理ステップ404から処理ステップ412に直接に移ることになり、そこにおいて、当該書込リクエストは受理されて当該書込データが当該分散システムに書き込まれる。フローは次いで処理ステップ410で終わることになる。
処理ステップ404を再度参照すると、グローバルデータ規則を適用するとの判定がなされた場合、フローは処理ステップ404から処理ステップ414に移る。処理ステップ414において、承認リクエストを処理するのに中央サーバが利用可能か否かについて判定がなされる。実施形態において、処理ステップ404において受信サーバがグローバルデータ規則を適用すると判定した後、当該受信サーバは、グローバルデータ規則を適用する中央サーバに承認リクエストを送信しなければならない。処理ステップ414が実行され、当該受信サーバよって生成された承認リクエストを処理するのに中央サーバが利用可能であるか否かが判定される。中央サーバは、サーバクラッシュ、接続喪失、及び/又はサーバが他のリクエストでビジーである等の幾つかの理由で利用不能な場合がある。
処理ステップ414において、中央サーバが利用不能であるとの判定がなされた場合、フローは処理ステップ416に移る。処理ステップ416において、当該中央サーバの利用不能状態に関するポリシーが適用される。当該ポリシーは、当該リクエストを承認するのに中央サーバが利用不能なとき、(グローバルデータ規則に従う)書込リクエストがどのように処理されるかについて判定する。図4に示されるように(破線内)、処理ステップ416で実行される特定のポリシーに従って、フローは処理ステップ416から処理ステップ406、408又は416の何れかに移ってもよい。実施形態において、当該ポリシーは、当該書込リクエストの全てを単純に拒否してフローが処理ステップ408に移るか、又は当該書込リクエストの全てを許可してフローが処理ステップ406に移ってもよい。他の実施形態において、当該ポリシーは、中央サーバが利用可能となるまで処理ステップ414から処理ステップ416を繰り返すフローを要求してもよい。
当該ポリシーは、個々のデータ規則の重要性を反映することになる。例えば、もし書込リクエストが組織にとって決定的に重要であるデータ規則に従う場合、当該決定的なデータ規則に従う何らかの書込リクエストを中央サーバよって承認され得ないとして拒否することよって当該データ規則の重要性を当該ポリシーが反映してもよい。同時に、より重要ではないデータ規則に従う書込リクエストが、当該書込リクエストが中央サーバよって承認され得ない場合にさえ許可されてもよい。他の実施形態において、当該ポリシーは、当該グローバルデータ規則に違反する書込リクエストを許可してもよいが、当該違反が起こったという事実を記録してもよい。そして、当該グローバルデータ規則との何らかの不一致を後で一致させるのに当該ログが用いられ得る。当業者が認識するように、処理ステップ416において設定され適用される特定のポリシーは、当該分散システムの実施形態に依存するであろう。
処理ステップ414を再度参照すると、もし中央サーバが利用可能であとの判定がなされた場合、フローは処理ステップ418に移り、承認リクエストが中央サーバに送信される。当該承認リクエストは、当該書込リクエストを受理し且つ当該書込データを当該分散システムに書き込むことの承認を中央サーバに求める。実施形態において、処理ステップ418は受信サーバよって実行され、処理ステップ402において受信された書込データを含む承認リクエストを生成するような幾つかのサブステップを含み、当該承認リクエストを中央サーバに送信するステップを含む。
処理ステップ418の後、フローは処理ステップ420へ移り、メッセージが中央サーバから受信される。当該メッセージは、処理ステップ418において送信された承認リクエストに応じたものである。処理ステップ420に続いて、フローは処理ステップ422に移り、当該中央サーバが当該書込リクエストを承認したことを、当該中央サーバから受信されたメッセージが示しているか否かについて判定がなされる。処理ステップ422において、もし当該中央サーバが当該書込リクエストを承認しなかったとする判定がなされた場合、フローは処理ステップ408に移り、前に説明したように当該書込リクエストは拒否される。
もし、処理ステップ422において、当該中央サーバが当該書込リクエストを承認したとする判定がなされた場合、フローは処理ステップ406に移り、当該書込データがローカルデータ規則を充足するか否かについて判定がなされる。処理ステップ406から、フローは前に説明されたように進むことになる。幾つかの実施形態において、何らかのローカルデータ規則が無いこともあり、この場合、フローは処理ステップ422から処理ステップ412に直接移り、当該書込リクエストが受理される。フローは次いで処理ステップ410で終わることになる。
図4は、処理フロー400の動作が実行される順序を制限するような解釈がなされるべきでない。例えば、1つの特定の実施形態において、処理ステップ404は、処理ステップ406の後に、又は並行して実行されてもよい。他の実施形態において、ローカルデータ規則が設定されていなかった場合、処理ステップ406は、まとめてスキップされることになる。
図5は、分散システムにおけるグローバルデータ規則を適用する処理フロー500を示している。処理フロー500は処理ステップ502で始まり、グローバルデータ規則が記憶される。実施形態において、処理ステップ502は、当該分散システムにおける情報のグローバルナレッジを有する中央サーバよって実行され、例えば、図2で説明された中央サーバ(サーバ220、222、224及び226)及び図3で説明された中央サーバ(サーバ320、322、324及び326)のような中央サーバよって実行される。当該中央サーバは、グローバルデータ規則を適用するのに用いられ、当該分散システムに書き込まれる何らかのデータが、設定されたデータ規則と整合していることを保証にする。
処理ステップ502の後、フローは処理ステップ504に移り、書込データを含む承認リクエストが受信される。処理ステップ502は、当該承認リクエストを受信する中央サーバよって実行され、実施形態において、当該承認リクエストは、図2で説明された受信サーバ(サーバ210、212、214及び216)及び図3で説明された受信サーバ(サーバ310、312、314及び316)のような受信サーバによって送信される。当該承認リクエストは、書込リクエスト(すなわち、当該分散システムにデータを書き込むリクエスト)について当該中央サーバから承認を求める。他の情報に加えて、当該書込リクエストは、当該分散システムに書き込まれるべき書込データを含む。
処理ステップ506において、処理ステップ504で当該承認リクエストとともに受信された書込データが、処理ステップ502で記憶されたグローバルデータ規則を充足するか否かの判定がなされる。もし当該書込データが当該グローバルデータ規則を充足しない場合、フローは処理ステップ508に移り、そこにおいて、当該承認リクエストを拒否するメッセージが送信される。当該中央サーバは、実施形態において、当該承認リクエストを拒否するメッセージを生成し、これを当該承認メッセージを送信した当該受信サーバに送信する。処理ステップ508の後、フローは処理ステップ510で終わる。
もし、処理ステップ506において、当該書込データが処理ステップ502で記憶されたグローバルデータ規則を充足しているとする判定がなされた場合、フローは処理ステップ512に移り、そこにおいて、当該中央サーバは、当該承認リクエストにて受信されたデータをそれ自身の複製に書き込むことになる。上記のように、中央サーバは、当該分散システム内の情報についてのグローバルナレッジを有する(又は、迅速に構築することができる)ことによって、グローバルデータ規則の適用を可能とし、従って、実施形態において変更が承認されたとき、最初の動作は自身の複製に当該情報を書き込むことである。
処理ステップ512の後、当該承認リクエストを承認するメッセージが処理ステップ514において送信される。処理ステップ514は、実施形態において、処理ステップ504で受信された承認リクエストを承認するメッセージを中央サーバが生成し送信する動作を含む。当該メッセージは、受信サーバに対して、当該受信サーバが書込リクエストを受理し当該データを当該受信サーバに記憶されている複製に書き込んでも良いこと示している。
幾つかの実施形態において、当該グローバルデータ規則は、分散システムに書き込まれているデータに関連付けられた処理又はビジネスプロセスを含んでもよい。1つの実施形態として、名称(すなわち、新規に加えられたか又は変更された名称)が何時書かれるかに係る規則を当該グローバルデータ規則が設定してもよく、当該情報は人的資源サーバに転送されなければならない。当業者は認識するように、他のビジネスプロセス及び処理が設定されてもよい。これらの実施形態において、当該ビジネスプロセス又は処理は、処理ステップ512及び514の後に又は並行して実行されてもよい。
処理ステップ514の後、フローは次いで処理ステップ516に移り、そこにおいて、処理ステップ512で当該中央サーバよって書かれたデータが他の中央サーバに複製される。処理ステップ516の間に実行された特定のステップは、当該分散システムにおいて中央サーバのために設定された当該複製プロトコル及びトポロジに基づくことになる。図3に関して前に説明されたように、中央サーバは、当該分散システムにおける情報のグローバルナレッジを当該中央サーバが維持することを保証にするように設計された様々な複製プロトコル及びトポロジを実装してもよい。
図5は、フロー500の動作が実行される順序を制限するように解釈されるべきでない。例えば、1つの特定の実施形態において、処理ステップ516は処理ステップ514の直後に又は並行して実行されることになる。この実施形態は、当該複製に書き込まれたデータが他の中央サーバに迅速に複製されることを保証し、当該他の中央サーバが当該分散システムにおける情報についてのグローバルナレッジを維持することを保証にする。
図6は、本明細書において説明されている実施形態を実施する汎用コンピュータシステム600を示している。当該コンピュータシステム600は、コンピュータ環境のうちの1つの例でしかなく、コンピュータ及びネットワークアーキテクチャの使用又は機能の範囲に関して何らかの限定を示唆することは意図されない。コンピュータシステム600は、例としてのコンピュータシステム600で示されるコンポーネントのうちの何らかの1つ又は組合せに関して何らかの依存性又は必要性を有するが如く解釈されるべきでない。実施形態において、システム600は、図2及び図3に関して上記で説明された受信サーバ及び/又は中央サーバとして用いられてもよい。
その最も基本的な構成において、システム600は、典型的には、少なくとも1つのプロセッシングユニット602及びメモリ604を含む。コンピュータ装置の実際の構成及びタイプに依存して、メモリ604は、(RAMのような)揮発性でもよく、(ROM、フラッシュメモリ、その他のような)不揮発性でもよく、又はこれらの2つのタイプの組合せであってもよい。この最も基本的な構成は、図6において破線606よって例示されている。システムメモリ604は、システム600において実行されるアプリケーションを記憶する。アプリケーションに加えて、メモリ604は、また、図2〜図5に関して上記で説明されたように、書込リクエスト610及び/又は承認リクエスト612のような、システム600によって実行中の処理に用いられている情報を記憶してもよい。
加えて、システム600は、また、付加的な特徴/機能を有してもよい。例えば、装置600は、また、限定するものではないが磁気又は光学ディスク又はテープを含む付加的な(着脱可能及び/又は着脱不能)記憶部608を含んでもよい。そのような付加的な記憶部は、図6において記憶部608によって例示されている。コンピュータ記憶媒体は、情報(例えばコンピュータ読取可能命令、データ構造、プログラムモジュール又は他のデータ)の記憶のための何らかの方法も又は技術で実装される揮発性媒体及び不揮発性媒体並びに着脱可能媒体及び着脱不能媒体を含む。メモリ604及び記憶部608はコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリ若しく他のメモリ技術、CD―ROM、デジタル多用途ディスク(DVD)又は光学記憶部、磁気カセット、磁気テープ、磁気ディスク記憶部又は他の磁気記憶装置、又は所望の情報を記憶するのに用いられ且つシステム600によってアクセスされ得る何らかの他の媒体を含む。そのような何らかのコンピュータ記憶媒体は、システム600の一部であってもよい。
当業者が認識するように、記憶部608は様々な情報を記憶してもよい。他のタイプの情報の中で、記憶部608は分散システム上の情報のデータ規則618及び複製620を記憶してもよい。当該データ規則は、図2及び図3に関して説明されたようにシステム600が受信サーバ又は中央サーバであるか否かに依存して、ローカルデータ規則又はグローバルデータ規則であってもよい。
システム600は、また、当該システムが他の装置との通信を可能とする通信接続部(群)612を含んでもよい。通信接続部(群)612は、通信媒体の例である。通信媒体は、典型的には、搬送波のような変調されたデータ信号又は他の転送機構における、コンピュータ読取可能命令、データ構造、プログラムモジュール、又は他のデータを実現し、何らかの情報配布媒体を含む。用語「変調されたデータ信号」とは、当該信号上に情報を符号化することに関して、その特性集合のうちの1つ以上を有するか又はそのような形で変化された信号を意味する。例えば、限定するものではないが、通信媒体は、有線ネットワーク又は直接結線された接続のような有線媒体、並びに音響、RF、赤外線、他の無線媒体のような無線媒体を含む。本明細書において用いられる用語としてコンピュータ読取可能媒体とは記憶媒体及び通信媒体を含む。
システム600は、また、キーボード、マウス、ペン、音声入力装置、タッチ入力装置、その他のような入力装置(群)614を含んでもよい。ディスプレイ、スピーカ、プリンタ、その他のような出力装置(群)616が含まれてもよい。これら全ての装置は従来技術において周知であり、ここで詳細に説明される必要はない。
本明細書を通してなされた「1つの実施形態」又は「幾つかの実施形態」に対する参照は、特に説明された特徴、構造又は性質が少なくとも1つの実施形態に含まれていることを意味する。このように、そのような文言の使用は、たった1つの実施形態以外の実施形態に関連付けられてもよい。さらに、当該説明されている特徴、構造又は性質は、1つ以上の実施形態における何らかの適切な形態と組み合せられてもよい。
しかし、本発明が1つ以上の特定の詳細によることなく実施されても又は他の方法、資源、材料、その他によって実施されてもよいことを当業者は認識するはずである。他の例において、周知の構造、資源又は処理は、単に本発明の態様を不明瞭にすることを避けるために示されないか又は説明されていない。
実施形態及び応用が例示され説明された一方で、本発明が上記で説明された精確な構成及び資源に限定されないことが理解されるべきである。様々な改変、変更及び変様が、本明細書で開示された方法及びシステムの配置、処理及び詳細において、本願の特許請求の範囲から逸脱することなくなされ得ることは当業者にとって明らかである。

Claims (20)

  1. 各々が同一データの複製を記憶し且つ複製処理を担う複数のサーバを含む分散システムにおいて書込リクエストを処理し、前記複数のサーバに記憶された複製の各々間のデータ整合性を維持するコンピュータ実行方法であって、
    第1のサーバにおいて、前記第1のサーバに記憶された複製に書き込まれるべきデータを含む書込リクエストを受信するステップであり、前記第1のサーバは前記複数のサーバのうちの1つであるステップと、
    前記書込リクエスト内のデータがグローバルデータ規則に従うか否かについて判定するステップと、
    中央サーバに前記書込リクエストの受理の承認を求める承認リクエストを送信するステップであって、前記中央サーバは、前記サーバのうちの他の1つであると共にグローバルナレッジを有するステップと、
    前記承認リクエストが承認されたか否かを示すメッセージを前記中央サーバから受信するステップと、
    前記承認リクエストに対する前記中央サーバの承認に応じて、前記第1のサーバにおいて、前記書込リクエストを受理し、前記データを前記第1のサーバに記憶されていた複製に書き込むステップと、
    前記承認リクエストに対する前記中央サーバの非承認に応じて、前記第1のサーバにおいて、前記書込リクエストを拒否するステップとを備えることを特徴とするコンピュータ実行方法。
  2. 前記書込リクエスト内のデータがローカルデータ規則を充足するか否かを前記第1のサーバよって判定するステップと、
    前記データが前記ローカルデータ規則を充足するという判定と前記中央サーバが前記承認リクエストを承認していることとに応じて、前記第1のサーバが前記書込リクエストを受理し、前記データを前記第1のサーバに記憶された複製に書き込むステップと、
    前記データが前記ローカルデータ規則に適合しないという判定に応じて、前記第1のサーバが前記書込リクエストを拒否するステップとをさらに備えることを特徴とする請求項1に記載のコンピュータ実行方法。
  3. 前記送信するステップは、承認メッセージを生成し、前記承認リクエスト内に前記データを含ませることを特徴とする請求項1に記載のコンピュータ実行方法。
  4. 前記中央サーバは、前記グローバルデータ規則を記憶し、前記承認リクエスト内の前記データが前記グローバルデータ規則を充足するか否かを判定することを特徴とする請求項3に記載のコンピュータ実行方法。
  5. 前記データ規則は、前記データが前記分散システムに記憶された他のデータとの関係において唯一であることを要求することを特徴とする請求項3に記載のコンピュータ実行方法。
  6. 前記分散システムは分散ディレクトリを記憶し、前記書込リクエストはライトウエイトディレクトリアクセスプロトコルを用いて生成されることを特徴とする請求項1に記載のコンピュータ実行方法。
  7. 前記分散システムは、分散ファイルシステムを記憶し、前記書込リクエストは、前記分散ファイルシステム上のファイルにデータを書き込むことに関係することを特徴とする請求項1に記載のコンピュータ実行方法。
  8. 前記書込リクエストは、前記分散システムにアクセスしているクライアントから受信されることを特徴とする請求項1に記載のコンピュータ実行方法。
  9. 中央サーバが利用不能な場合に書込リクエストを受理するか又は拒否するかを判断するためのポリシーを前記第1のサーバに記憶するステップをさらに備えることを特徴とする請求項1に記載のコンピュータ実行方法。
  10. 各々が同一データの複製を記憶し且つ複製処理を担う複数のサーバを含む分散システムにおいてグローバルデータ規則を適用し、前記複数のサーバに記憶された複製の各々間のデータ整合性を維持するコンピュータ実行方法であって、
    中央サーバにグローバルデータ規則を前記中央サーバによる適用のために記憶するステップであり、前記中央サーバは前記複数のサーバのうちの1つであるステップと、
    前記中央サーバにおいて、前記複数のサーバのうちの異なる1つである受信サーバよって送信された承認リクエストを受信するステップであり、前記承認リクエストは前記受信サーバにおいて受信された書込リクエストに関連し、前記承認リクエストは、前記受信サーバに記憶された複製に書き込まれるべきデータを含むステップと、
    前記受信サーバに書き込まれるべきデータが前記グローバルデータ規則を充足するか否かについて前記中央サーバよって判定するステップと、
    前記データが前記グローバルデータ規則を充足しないとする判定に応じて、前記承認リクエストを拒否するメッセージを前記受信サーバに送信するステップと、
    前記データが前記グローバルデータ規則を充足するとする判定に応じて、前記データを前記中央サーバに記憶された複製に書き込むステップと、
    前記書込リクエストを承認するメッセージを前記受信サーバに送信するステップとを備えることを特徴とするコンピュータ実行方法。
  11. 前記書き込むステップの後に、前記複数のサーバのうちの1つである第2の中央サーバに前記データを複製するステップをさらに備えることを特徴とする請求項10に記載のコンピュータ実行方法。
  12. 前記複製するステップは、前記送信するステップより前に実行されることを特徴とする請求項11に記載のコンピュータ実行方法。
  13. 前記複製するステップは、所定スケジュールに基づいて実行されることを特徴とする請求項11に記載のコンピュータ実行方法。
  14. 前記分散システムは、分散ディレクトリサービスを記憶し、前記書込リクエストは、前記ライトウエイトディレクトリアクセスプロトコルを用いて生成されることを特徴とする請求項10に記載のコンピュータ実行方法。
  15. グローバルナレッジの適用を要求するデータ規則を各々が記憶している複数の中央サーバを備える分散システムであって、前記中央サーバの各々は、
    受信サーバにデータを書き込むことについて承認を求めると共に前記データを含む承認リクエストを受信し、
    前記書込データが前記データ規則に適合するか否かを判定し、
    前記データが前記データ規則に適合していないという判定に応じて、前記承認リクエストを拒否するメッセージ前記受信サーバに送信し、
    前記データが前記データ規則に適合しているとする判定に応じて、前記データを前記中央サーバに書き込み、前記承認リクエストを承認するメッセージを前記受信サーバに送信する、ことを実行可能とし、
    前記受信サーバは複数であり、前記受信サーバの各々は、
    書込リクエストを受信してデータを前記受信サーバに書き込み、
    前記書込リクエストについての承認を前記複数の中央サーバのうちの1つから求める承認リクエストを前記複数の中央サーバのうちの1つに送信し、
    前記中央サーバからの前記承認リクエストを承認するメッセージの受信に応じて、前記書込リクエストを受理して前記データを前記受信サーバに書き込み、
    前記中央サーバからの前記承認リクエストを拒否するメッセージの受信に応じて、前記書込リクエストを拒否することを実行可能とすることを特徴とする分散システム。
  16. 前記複数の中央サーバは、前記複数の受信サーバ以上の異なる複製プロトコルを実装していることを特徴とする請求項15に記載の分散システム。
  17. 前記複数の中央サーバは、前記複数の受信サーバ以上の異なる複製トポロジを実装していることを特徴とする請求項15に記載の分散システム。
  18. 前記複数の中央サーバは、完全に連結された複製トポロジを実装していることを特徴とする請求項17に記載の分散システム。
  19. 前記受信サーバの各々は、承認リクエストの受信について中央サーバが利用不能な場合に、書込リクエストを受理するか又は拒否するかを判断するためのポリシーを記憶することをさらに実行可能であることを特徴とする請求項15に記載の分散システム。
  20. 前記複数の中央サーバの各々は、書込リクエストを受信してデータを前記中央サーバに書き込むことをさらに実行可能とすることを特徴とする請求項15に記載の分散システム。
JP2010514966A 2007-06-27 2008-06-16 グローバルナレッジを有するサーバによる書込リクエスト処理 Active JP4806729B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/769,474 US7945639B2 (en) 2007-06-27 2007-06-27 Processing write requests with server having global knowledge
US11/769,474 2007-06-27
PCT/US2008/067143 WO2009002752A2 (en) 2007-06-27 2008-06-16 Processing write requests with server having global knowledge

Publications (3)

Publication Number Publication Date
JP2010532051A true JP2010532051A (ja) 2010-09-30
JP2010532051A5 JP2010532051A5 (ja) 2011-08-04
JP4806729B2 JP4806729B2 (ja) 2011-11-02

Family

ID=40161925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010514966A Active JP4806729B2 (ja) 2007-06-27 2008-06-16 グローバルナレッジを有するサーバによる書込リクエスト処理

Country Status (7)

Country Link
US (1) US7945639B2 (ja)
EP (1) EP2176777B1 (ja)
JP (1) JP4806729B2 (ja)
CN (1) CN101689166B (ja)
CL (1) CL2008001604A1 (ja)
TW (1) TWI450109B (ja)
WO (1) WO2009002752A2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10154034B2 (en) * 2010-04-26 2018-12-11 International Business Machines Corporation Cooperative data access request authorization in a dispersed storage network
US11080138B1 (en) 2010-04-26 2021-08-03 Pure Storage, Inc. Storing integrity information in a vast storage system
US11327674B2 (en) 2012-06-05 2022-05-10 Pure Storage, Inc. Storage vault tiering and data migration in a distributed storage network
US10866754B2 (en) 2010-04-26 2020-12-15 Pure Storage, Inc. Content archiving in a distributed storage network
US11340988B2 (en) 2005-09-30 2022-05-24 Pure Storage, Inc. Generating integrity information in a vast storage system
US10956292B1 (en) 2010-04-26 2021-03-23 Pure Storage, Inc. Utilizing integrity information for data retrieval in a vast storage system
US9268960B2 (en) 2011-06-01 2016-02-23 Microsoft Technology Licensing, Llc Moderation of shared data objects
US9613052B2 (en) * 2012-06-05 2017-04-04 International Business Machines Corporation Establishing trust within a cloud computing system
US9584358B2 (en) 2014-03-06 2017-02-28 International Business Machines Corporation Global production rules for distributed data
CN105224541B (zh) * 2014-05-30 2019-01-04 阿里巴巴集团控股有限公司 数据的唯一性控制方法、信息存储方法及装置
US11113259B2 (en) * 2017-08-02 2021-09-07 Tata Consultancy Services Limited Method and system for analyzing unstructured data for compliance enforcement
CN111600958B (zh) * 2020-05-21 2023-06-02 广州市百果园信息技术有限公司 服务发现系统、服务数据管理方法、服务器及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0214354A (ja) * 1988-07-01 1990-01-18 Fujitsu Ltd 共通データの管理処理方式
US6356941B1 (en) 1999-02-22 2002-03-12 Cyber-Ark Software Ltd. Network vaults
US6467012B1 (en) * 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US7024429B2 (en) 2002-01-31 2006-04-04 Nextpage,Inc. Data replication based upon a non-destructive data model
US6732171B2 (en) * 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US7266702B2 (en) 2002-10-21 2007-09-04 Solid Information Technology Oy Method and system for managing security material and services in a distributed database system
US7428751B2 (en) 2002-12-05 2008-09-23 Microsoft Corporation Secure recovery in a serverless distributed file system
GB2401693B (en) 2003-05-15 2005-08-17 Sun Microsystems Inc Conflictless replication in a multi-master directory system
JP4568576B2 (ja) * 2004-10-26 2010-10-27 株式会社デンソーアイティーラボラトリ データ共有システム及び通信端末並びにデータ共有方法
TWI338473B (en) * 2005-08-19 2011-03-01 Hon Hai Prec Ind Co Ltd System and method for managing storage of components in a distributed system
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance

Also Published As

Publication number Publication date
CN101689166A (zh) 2010-03-31
US7945639B2 (en) 2011-05-17
EP2176777B1 (en) 2015-04-29
CN101689166B (zh) 2013-04-24
TW200907721A (en) 2009-02-16
CL2008001604A1 (es) 2009-03-13
WO2009002752A2 (en) 2008-12-31
JP4806729B2 (ja) 2011-11-02
WO2009002752A3 (en) 2009-02-26
US20090006487A1 (en) 2009-01-01
EP2176777A2 (en) 2010-04-21
TWI450109B (zh) 2014-08-21
EP2176777A4 (en) 2012-08-22

Similar Documents

Publication Publication Date Title
JP4806729B2 (ja) グローバルナレッジを有するサーバによる書込リクエスト処理
US11615195B2 (en) Systems and methods for providing multi-node resiliency for blockchain peers
US10402115B2 (en) State machine abstraction for log-based consensus protocols
US7340488B2 (en) Conflictless replication in a multi-master directory system
KR20110110223A (ko) 선택적 데이터베이스 복제
JPH02127755A (ja) コンピュータ・システムにおけるオブジェクトに対する識別子発生のための装置及び方法
KR20190122843A (ko) 블록체인 부분 원장
JP2010532051A5 (ja)
US11122012B2 (en) License utilization management system service suite
CA3041211C (en) Utilizing nonce table to resolve concurrent blockchain transaction failure
US20200153889A1 (en) Method for uploading and downloading file, and server for executing the same
CN114238495A (zh) 数据库主备集群切换方法、装置、计算机设备及存储介质
CN110555317B (zh) 一种应用文件更改处理方法、装置及系统
US10318330B2 (en) Data-persisting temporary virtual machine environments
JP2011522337A (ja) サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュールの同期化方法、同期化システムおよびデータストレージへの適用
US20110153563A1 (en) Enhanced replication of databases
US20100125619A1 (en) Deterministic selection of domain controllers in a multi-master database distributed directory service
KR20130043823A (ko) 로그에 기반하여 데이터 정합성을 유지하는 분산 저장 시스템 및 방법
US20220335048A1 (en) Electronic content management and sharing platform utilizing coordinated distributed semi-autonomous nodes
WO2015097991A1 (ja) トランザクション分散処理装置、方法、システム、および、記憶媒体
KR101079145B1 (ko) 데이터 분산 서비스 시스템의 효율적 개발을 위한 토픽 통합 관리 서버, 토픽 통합 관리 시스템 및 토픽 통합 관리 방법 그리고 이를 행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체
CN118118564A (zh) 去中心化的主数据管理方法、装置
CN115297129A (zh) 数据通信网络建立方法及装置
CN116501544A (zh) 一种数据库备份方法及系统、电子设备、存储介质
Moats et al. Network Working Group E. Stokes Request for Comments: 3384 IBM Category: Informational R. Weiser Digital Signature Trust

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110617

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110617

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110704

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: 20110715

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110815

R150 Certificate of patent or registration of utility model

Ref document number: 4806729

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140819

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250