国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      使用具有全局知識的服務(wù)器處理寫請求的制作方法

      文檔序號:6477645閱讀:155來源:國知局
      專利名稱:使用具有全局知識的服務(wù)器處理寫請求的制作方法
      使用具有全局知識的服務(wù)器處理寫請求
      背景
      分布式系統(tǒng),諸如文件系統(tǒng)和目錄系統(tǒng)在多個不同節(jié)點(diǎn)(即服務(wù)器)上存 儲同一信息的復(fù)制品或副本。擁有多個具有復(fù)制品的節(jié)點(diǎn)提供了諸如容錯、信 息的高可用性以及提高的系統(tǒng)性能等好處。這些分布式系統(tǒng)的子集允許存儲信 息復(fù)制品的每個節(jié)點(diǎn)接受對該信息的原始改變。也就是說,節(jié)點(diǎn)有權(quán)提供對該 信息的讀和寫訪問。這些系統(tǒng)還使用復(fù)制協(xié)議,在該協(xié)議中各節(jié)點(diǎn)互相獲得對 該信息所作出的改變。這允許各節(jié)點(diǎn)各自孤立地操作,并且隨后與它們的對等 節(jié)點(diǎn)"同步"使得其它節(jié)點(diǎn)具有當(dāng)前的信息。這些類型的系統(tǒng)稱為多主復(fù)制系 統(tǒng)。
      輕量級目錄訪問協(xié)議(LDAP)系統(tǒng)是有時被實(shí)現(xiàn)為多主復(fù)制系統(tǒng)的系統(tǒng) 的示例。LDAP系統(tǒng)用于存儲許多種類的數(shù)據(jù),包括由用戶提供的數(shù)據(jù),諸如 地址和口令,并且還包括由受管IT系統(tǒng)提供的數(shù)據(jù),諸如許可。各組織經(jīng)常 希望對存儲在LDAP目錄中的數(shù)據(jù)實(shí)施規(guī)則或業(yè)務(wù)邏輯。例如, 一個這樣的目 錄可存儲用戶標(biāo)識號。IT組織可能希望系統(tǒng)實(shí)施一個要求用戶標(biāo)識號唯一的規(guī) 則,即兩個用戶不會具有相同的用戶標(biāo)識號。遺憾的是,在被實(shí)現(xiàn)為多主復(fù)制 系統(tǒng)的LDAP系統(tǒng)中,這難以實(shí)現(xiàn)。每個節(jié)點(diǎn)可接受對具有不同值的用戶的標(biāo) 識號的寫請求。盡管每個節(jié)點(diǎn)可針對該規(guī)則檢查數(shù)據(jù),但它們被限于其自己的 數(shù)據(jù)視圖。有可能的是,其它節(jié)點(diǎn)正在同時接受特定節(jié)點(diǎn)尚不知道的寫,而這 將在復(fù)制完成時使系統(tǒng)處于對于該規(guī)則而言它是不一致的(即將同一標(biāo)識號分 配給了不同的用戶)的狀態(tài)中。
      針對這些和其它考慮作出了本發(fā)明的各實(shí)施例。而且,盡管已經(jīng)討論了相 對具體的問題,但應(yīng)當(dāng)理解,本發(fā)明的實(shí)施例不應(yīng)當(dāng)限于解決在背景中所標(biāo)識 的具體問題。
      概述
      提供本概述以便用簡化形式介紹在下面的詳細(xì)描述章節(jié)中進(jìn)一步描述的
      6一些概念。本概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不 旨在用于幫助確定所要求保護(hù)的主題的范圍。
      所描述的是針對使用具有分布式系統(tǒng)中的信息的全局知識的指定服務(wù)器 來批準(zhǔn)對該分布式系統(tǒng)中的各節(jié)點(diǎn)所作的寫請求的實(shí)施例。這些服務(wù)器實(shí)施對 可被寫到該分布式系統(tǒng)的數(shù)據(jù)施加限制的數(shù)據(jù)規(guī)則,數(shù)據(jù)規(guī)則的一個示例是數(shù)
      據(jù)的唯一性。該分布式系統(tǒng)被設(shè)計(jì)成向指定服務(wù)器提供全局知識以用于實(shí)施數(shù) 據(jù)規(guī)則。當(dāng)該分布式系統(tǒng)內(nèi)的另一個服務(wù)器接收到服從數(shù)據(jù)規(guī)則的寫數(shù)據(jù)的請 求時,該服務(wù)器必須在它可以接受該寫請求之前咨詢這些指定服務(wù)器之一。這 確保被寫到該分布式系統(tǒng)的任何數(shù)據(jù)都與該數(shù)據(jù)規(guī)則相一致。如果指定服務(wù)器
      確定該數(shù)據(jù)與該規(guī)則相一致,則批準(zhǔn)該寫請求并且指定服務(wù)器決定是否要響應(yīng) 于該請求而更新其局部狀態(tài)。否則,拒絕該寫請求。
      各實(shí)施例可被實(shí)現(xiàn)為計(jì)算機(jī)過程、計(jì)算系統(tǒng)或諸如計(jì)算機(jī)程序產(chǎn)品或計(jì)算 機(jī)可讀介質(zhì)等制品。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算機(jī)系統(tǒng)可讀并且編碼了用于執(zhí) 行計(jì)算機(jī)過程的指令的計(jì)算機(jī)程序的計(jì)算機(jī)存儲介質(zhì)。計(jì)算機(jī)程序產(chǎn)品也可以 是在計(jì)算系統(tǒng)可讀并且編碼了用于執(zhí)行計(jì)算機(jī)過程的指令的計(jì)算機(jī)程序的載 波上的傳播信號。
      附圖簡述
      參考下面的附圖描述各非限制性和非窮盡性實(shí)施例。


      圖1示出現(xiàn)有技術(shù)的分布式系統(tǒng)。
      圖2示出根據(jù)一實(shí)施例的分布式系統(tǒng)。
      圖3示出在圖2所示的分布式系統(tǒng)中的復(fù)制期間的信息傳輸。 圖4示出用于在分布式系統(tǒng)中對寫請求進(jìn)行處理的操作流程。 圖5示出用于在分布式系統(tǒng)中應(yīng)用全局?jǐn)?shù)據(jù)規(guī)則的操作流程。 圖6示出適用于實(shí)現(xiàn)各實(shí)施例的計(jì)算環(huán)境的框圖。
      詳細(xì)描述
      下面參考附圖更完整地描述各實(shí)施例,這些附圖形成本發(fā)明的一部分并且 示出用于實(shí)踐本發(fā)明的各具體示例性實(shí)施例。然而,各實(shí)施例可以用多種不同形式來實(shí)現(xiàn)并且不應(yīng)當(dāng)解釋為限于在本文所述的這些實(shí)施例;相反,提供這些 實(shí)施例以使本公開變得透徹和完整和全面,并且向本領(lǐng)域的技術(shù)人員完整地傳 達(dá)本發(fā)明的范圍。各實(shí)施例可實(shí)踐為方法、系統(tǒng)或設(shè)備。因此,各實(shí)施例可采 用硬件實(shí)現(xiàn)、完全軟件實(shí)現(xiàn)、或者組合軟硬件方面的實(shí)現(xiàn)的形式。因此,下面 的詳細(xì)描述不是限制性的。
      圖1示出分布式系統(tǒng)100,其具有可通過網(wǎng)絡(luò)106和108訪問在圖1中被 示為服務(wù)器計(jì)算機(jī)系統(tǒng)110、 112、 114和116的多個節(jié)點(diǎn)的客戶機(jī)計(jì)算機(jī)系統(tǒng) 102和104。服務(wù)器110、 112、 114和116可存儲諸如分布式文件系統(tǒng)或分布 式目錄等信息。服務(wù)器110、 112、 114和116每一個可存儲同一信息的復(fù)制品 或副本。系統(tǒng)100是多主復(fù)制系統(tǒng)的示例,在該系統(tǒng)中服務(wù)器110、 112、 114 和116有權(quán)向諸如客戶機(jī)102和104等客戶機(jī)提供讀和寫訪問。系統(tǒng)100還具 有允許服務(wù)器110、 112、 114和116從彼此獲得有關(guān)對該信息所作的改變的信 息的復(fù)制協(xié)議。服務(wù)器110、 112、 114和116孤立地操作,并且隨后相互復(fù)制 來周期性地同步對該信息所作的改變。系統(tǒng)100提供許多優(yōu)點(diǎn),諸如使信息能 夠容易地被多個用戶訪問,并且還能容錯,因?yàn)榉?wù)器110、 112、 114和116 之一的故障不會導(dǎo)致信息的丟失或者對信息的訪問的丟失。
      客戶機(jī)102和104是系統(tǒng)100內(nèi)的向服務(wù)器110和112發(fā)出讀或修改數(shù)據(jù) 的請求的節(jié)點(diǎn)。在各實(shí)施例中,客戶機(jī)102和104可以不主存來自系統(tǒng)100的 任何數(shù)據(jù),而在其它實(shí)施例中,客戶機(jī)102和104可主存至少一些數(shù)據(jù)。應(yīng)當(dāng) 理解,在本專利申請中術(shù)語"客戶機(jī)"旨在表示向另一個進(jìn)程發(fā)出請求的任何 進(jìn)程。為簡明起見,圖1將客戶機(jī)102和104示為分別僅訪問服務(wù)器110和112。 如本領(lǐng)域的技術(shù)人員將理解的, 一些分布式系統(tǒng)允許客戶機(jī)102和104訪問服 務(wù)器IIO、 112、 114和116中的任何一個。圖1還將客戶機(jī)102和104示為使 用不同的網(wǎng)絡(luò)106和108來訪問服務(wù)器110和112,然而本領(lǐng)域的技術(shù)人員將 理解, 一些分布式系統(tǒng)允許多個客戶機(jī)通過同一個(或多個)網(wǎng)絡(luò)來訪問服務(wù) 器。
      盡管系統(tǒng)100提供了許多優(yōu)點(diǎn),但它還是受到一些限制。在存儲在系統(tǒng) 100中的數(shù)據(jù)中的沖突可在服務(wù)器110、 112、 114和116中的一個或多個暫時 與系統(tǒng)100斷開時發(fā)生。例如,服務(wù)器110和112可變?yōu)闀簳r與系統(tǒng)100斷開。
      8在此期間,服務(wù)器110可接受將用戶ID分配給第一用戶的寫請求,而服務(wù)器
      112可能將同一用戶ID分配給第二用戶。
      系統(tǒng)100未能提供有效實(shí)施全局?jǐn)?shù)據(jù)規(guī)則的機(jī)制。在本專利申請中,術(shù)語 "全局?jǐn)?shù)據(jù)規(guī)則"旨在表示用于提供與可存儲在分布式系統(tǒng)中的數(shù)據(jù)相關(guān)聯(lián)的 業(yè)務(wù)過程的規(guī)則。例如,業(yè)務(wù)過程可以是對數(shù)據(jù)的約束,例如用戶ID必須只 與一個用戶相關(guān)聯(lián),或者業(yè)務(wù)過程可以是一個對數(shù)據(jù)執(zhí)行的過程,例如將所有 名字改變轉(zhuǎn)發(fā)至人類資源數(shù)據(jù)庫。為有效地實(shí)施全局?jǐn)?shù)據(jù)規(guī)則, 一個或多個服 務(wù)器必須具有全局知識(有關(guān)所有復(fù)制品或副本的信息的經(jīng)更新的知識)。全
      局?jǐn)?shù)據(jù)規(guī)則的一個示例是數(shù)據(jù)唯一性。即,要求數(shù)據(jù)在信息在分布式系統(tǒng)中的 所有復(fù)制品或副本上具有唯一值。 一個具體示例是要求用戶標(biāo)識號在整個分布 式系統(tǒng)中具有唯一值。
      如圖1所示且如下所述,系統(tǒng)100不能實(shí)施全局?jǐn)?shù)據(jù)規(guī)則。進(jìn)一步闡述用 戶標(biāo)識號的示例,服務(wù)器110、 112、 114和116中的每一個可接受和應(yīng)用對一 個人的用戶標(biāo)識號的寫請求??蛻魴C(jī)102可將向第一用戶分配標(biāo)識號的寫請求 提交至服務(wù)器110??蛻魴C(jī)104最近可能已經(jīng)向服務(wù)器112提交了將同一用戶 標(biāo)識號分配給不同用戶的寫請求。盡管服務(wù)器110和112每一個可檢査數(shù)據(jù)以 確定該用戶標(biāo)識號是否唯一,但它們受限于它們自己的數(shù)據(jù)視圖。因此,系統(tǒng) 100將具有與要求用戶標(biāo)識號唯一地與單個用戶相關(guān)聯(lián)的規(guī)則不一致的信息。
      圖2示出根據(jù)一實(shí)施例的分布式系統(tǒng)200。除了提供分布式系統(tǒng)的一般優(yōu) 點(diǎn)之外,系統(tǒng)200還允許能有效且高效地實(shí)施對系統(tǒng)200內(nèi)的數(shù)據(jù)進(jìn)行約束的 全局?jǐn)?shù)據(jù)規(guī)則。系統(tǒng)200包括使用網(wǎng)絡(luò)206和208訪問在圖2中被示為接收服 務(wù)器計(jì)算機(jī)系統(tǒng)210、 212、 214和216的多個節(jié)點(diǎn)的客戶機(jī)計(jì)算機(jī)系統(tǒng)202和 204。系統(tǒng)200還包括具有系統(tǒng)200中的信息的全局知識(或者可非??焖俚?構(gòu)建全局知識)并且由系統(tǒng)200用于實(shí)施全局?jǐn)?shù)據(jù)規(guī)則的中央計(jì)算機(jī)系統(tǒng)220、 222、 224和226。如本領(lǐng)域的技術(shù)人員將理解的,存在許多不同數(shù)量的這樣的 接收和中央服務(wù)器計(jì)算機(jī)系統(tǒng)。
      再次參考接收服務(wù)器210、 212、 214和216,它們存儲諸如分布式文件系 統(tǒng)或分布式目錄等信息。接收服務(wù)器210、 212、 214和216中的每一個存儲同 一信息的復(fù)制品或副本。系統(tǒng)200是多主復(fù)制系統(tǒng),其具有有權(quán)向諸如客戶機(jī)202和204等客戶機(jī)提供讀和寫訪問的接收服務(wù)器210、 212、 214和216。系 統(tǒng)200還具有允許接收服務(wù)器210、 212、 214和216從彼此獲得有關(guān)對該信息 所作的改變的信息的復(fù)制協(xié)議。服務(wù)器210、 212、 214和216孤立地操作,并 且隨后相互復(fù)制來周期性地同步在其各自的復(fù)制品中所作的改變。系統(tǒng)200使 信息能易于由多個用戶來訪問,并且還是容錯的,因?yàn)榉?wù)器210、 212、 214 和216之一的故障不會導(dǎo)致信息的丟失或?qū)π畔⒌脑L問的丟失。
      在一實(shí)施例中,接收服務(wù)器210、 212、 214和216沒有實(shí)施全局?jǐn)?shù)據(jù)規(guī)則 的全局知識。然而,在一些實(shí)施例中,接收服務(wù)器210、 212、 214和216可存 儲和實(shí)施"局部數(shù)據(jù)規(guī)則"。在本專利申請中,術(shù)語"局部數(shù)據(jù)規(guī)則"旨在表 示對可存儲在分布式系統(tǒng)中的數(shù)據(jù)提供約束,但不要求全局知識(關(guān)于所有復(fù) 制品或副本的信息的知識)來有效實(shí)施的規(guī)則。局部數(shù)據(jù)規(guī)則的示例包括要求 用戶標(biāo)識號具有8位數(shù)字,或者不允許電話號碼具有字母。如可理解的,局部 數(shù)據(jù)規(guī)則對于在限制可存儲在分布式系統(tǒng)中的數(shù)據(jù)但不要求全局知識來有效 實(shí)施時是有用的。
      系統(tǒng)200還包括在虛線218內(nèi)示出的一組中央服務(wù)器220、 222、 224和 226。中央服務(wù)器220、 222、 224和226具有系統(tǒng)200中的信息的全局知識(或 者可快速構(gòu)建必要的知識)來有效且高效地實(shí)施全局?jǐn)?shù)據(jù)規(guī)則。中央服務(wù)器 220、 222、 224和226每一個與接收服務(wù)器210、 212、 214和216—樣存儲同 一信息的復(fù)制品或副本。中央服務(wù)器220、 222、 224和226最初是與接收服務(wù) 器210、 212、 214和216類似的正常服務(wù)器。選擇這些中央服務(wù)器來具有系統(tǒng) 200內(nèi)信息的最新知識以允許它們實(shí)施全局?jǐn)?shù)據(jù)規(guī)則。在一些實(shí)施例中,它們 可由網(wǎng)絡(luò)管理員例如通過簡單地設(shè)置一個標(biāo)志來選擇。哪些服務(wù)器應(yīng)當(dāng)被提升 為中央服務(wù)器的決定可基于服務(wù)器的特定屬性。例如,具有最佳網(wǎng)絡(luò)鏈路的那 些服務(wù)器可被選擇為中央服務(wù)器。有關(guān)選擇哪些服務(wù)器作為中央服務(wù)器的決定 可基于其它選擇準(zhǔn)則,例如各個服務(wù)器或系統(tǒng)200的特性或?qū)傩浴?br> 中央服務(wù)器220、 222、 224和226中的復(fù)制品與接收服務(wù)器210、 212、 214和216中的復(fù)制品相比具有最新的信息。中央服務(wù)器220、 222、 224和226 中的更新信息可至少部分地基于其復(fù)制協(xié)議和拓?fù)浣Y(jié)構(gòu),這在下面參考圖3更 詳細(xì)地討論。如圖2所示,接收服務(wù)器210、 212、 214和216每一個連接至中
      10央服務(wù)器220、 222、 224和226之一,并且在能夠接受與服從全局?jǐn)?shù)據(jù)規(guī)則的 數(shù)據(jù)有關(guān)的寫請求之前必須咨詢中央服務(wù)器220、 222、 224和226之一。中央 服務(wù)器220、 222、 224和226實(shí)施全局?jǐn)?shù)據(jù)規(guī)則以確保被寫到系統(tǒng)200內(nèi)的復(fù) 制品的信息與所建立的全局?jǐn)?shù)據(jù)規(guī)則相一致。
      中央服務(wù)器220、 222、 224和226進(jìn)行相互復(fù)制以從彼此獲得有關(guān)對系統(tǒng) 200中的信息所作的改變的信息。中央服務(wù)器220、 222、 224和226具有關(guān)于 服從全局?jǐn)?shù)據(jù)規(guī)則的數(shù)據(jù)的全局知識(或能夠快速構(gòu)建全局知識)。在各實(shí)施 例中,中央服務(wù)器220、 222、 224和226部分地通過快速地向中央服務(wù)器220、 222、224和226提供在系統(tǒng)200內(nèi)所作的任何改變的復(fù)制協(xié)議來獲得它們的全 局知識。如下面參考圖3進(jìn)一步說明的,在各實(shí)施例中,中央服務(wù)器220、 222、 224和226具有與接收服務(wù)器210、 212、 214和216所使用的不要求具有全局 知識的復(fù)制協(xié)議不同的復(fù)制協(xié)議。在其它實(shí)施例中,中央服務(wù)器220、 222、 224 和226可使用與服務(wù)器210、 212、 214和216相同的復(fù)制協(xié)議,但更積極地復(fù) 制改變,諸如在改變的復(fù)制之間具有更短的時間窗口。
      系統(tǒng)200允許管理員建立全局?jǐn)?shù)據(jù)規(guī)則,在一些實(shí)施例中該規(guī)則至少被存 儲在中央服務(wù)器220、 222、 224和226中。在各實(shí)施例中,接收服務(wù)器210、 212、 214和216存儲有關(guān)全局?jǐn)?shù)據(jù)規(guī)則的足夠信息以確定該規(guī)則何時可以應(yīng) 用。接收服務(wù)器210、 212、 214和216隨后被要求在它們可允許服從全局?jǐn)?shù)據(jù) 規(guī)則的寫請求之前咨詢中央服務(wù)器220、 222、 224和226之一。因?yàn)閮H要求這 些接收服務(wù)器咨詢單個中央服務(wù)器,所以可高效地在系統(tǒng)200內(nèi)實(shí)施全局?jǐn)?shù)據(jù) 規(guī)則。
      系統(tǒng)200通過給予接收服務(wù)器210、 212、 214和216向諸如客戶機(jī)202 和204等客戶機(jī)提供讀和寫訪問的權(quán)限來操作。接收服務(wù)器210、 212、 214和 216可接受寫請求來將數(shù)據(jù)寫至其相應(yīng)的復(fù)制品。然而,如果寫請求與服從所 建立的全局?jǐn)?shù)據(jù)規(guī)則的數(shù)據(jù)有關(guān),則接收服務(wù)器210、 212、 214和216必須在 它們可執(zhí)行該寫請求之前咨詢中央服務(wù)器220、 222、 224和226之一。因?yàn)橹?央服務(wù)器220、 222、 224和226每一個具有全局知識(或者可非??焖俚貥?gòu)建 全局知識)以實(shí)施全局?jǐn)?shù)據(jù)規(guī)則,所以咨詢這些中央服務(wù)器中任何一個都允許 接收服務(wù)器確信數(shù)據(jù)與全局?jǐn)?shù)據(jù)規(guī)則相一致并且因而可執(zhí)行該請求。
      11將描述一個示例以進(jìn)一步示出系統(tǒng)200的操作。管理員可建立全局?jǐn)?shù)據(jù)規(guī)
      則以限制系統(tǒng)200內(nèi)的數(shù)據(jù)的值。作為示例,該數(shù)據(jù)規(guī)則可要求系統(tǒng)200中的 每個用戶標(biāo)識號是唯一的,即沒有兩個人可具有同一用戶標(biāo)識號。隨后將該要 求每個用戶標(biāo)識號的唯一性的數(shù)據(jù)規(guī)則存儲在中央服務(wù)器220、222、224和226 中。該數(shù)據(jù)規(guī)則的存在的指示被存儲在所有接收服務(wù)器210、 212、 214和216 上,使得它們知道與用戶標(biāo)識號有關(guān)的任何寫請求必須由中央服務(wù)器220、222、 224和226之一批準(zhǔn)。
      在客戶機(jī)202上的用戶隨后可發(fā)送寫請求至接收服務(wù)器210,請求將用戶 標(biāo)識號寫到存儲在系統(tǒng)200上的數(shù)據(jù)庫中。作為響應(yīng),接收服務(wù)器210將認(rèn)識 到,用戶標(biāo)識號必須滿足先前建立的全局?jǐn)?shù)據(jù)規(guī)則。結(jié)果,接收服務(wù)器210根 據(jù)該寫請求生成帶有用戶標(biāo)識號的批準(zhǔn)消息,并且將該批準(zhǔn)消息發(fā)送至中央服 務(wù)器220以供批準(zhǔn)。
      在接收到該批準(zhǔn)消息時,中央服務(wù)器220應(yīng)用全局?jǐn)?shù)據(jù)規(guī)則。中央服務(wù)器 220確定在其復(fù)制品(它具有系統(tǒng)200中的信息的全局知識)中的任何信息是 否與它在來自接收服務(wù)器210的批準(zhǔn)請求中接收到的用戶標(biāo)識號不一致。如果 中央服務(wù)器220確定存在與該用戶標(biāo)識號不一致的信息,則它將向接收服務(wù)器 210發(fā)送拒絕批準(zhǔn)該寫請求的消息。因此,接收服務(wù)器210將不允許來自客戶 機(jī)202的寫請求。在一些實(shí)施例中,接收服務(wù)器210還將生成指示該寫請求已 被拒絕的消息并將其發(fā)送至客戶機(jī)202。
      如果中央服務(wù)器220確定該用戶標(biāo)識號確實(shí)服從全局?jǐn)?shù)據(jù)規(guī)則,換言之它 是唯一的,則中央服務(wù)器220將該用戶標(biāo)識號寫到其自己的復(fù)制品中。將該用 戶標(biāo)識號寫到其自己的復(fù)制品中確保了它具有最新更新的信息。在中央服務(wù)器 220將該用戶標(biāo)識號寫到其自己的復(fù)制品中之后,它將該改變復(fù)制到其它中央 服務(wù)器222、 224、和226上的復(fù)制品以確保它們維持其全局知識。中央服務(wù)器 220隨后將生成批準(zhǔn)該寫請求的消息并將其發(fā)送至接收服務(wù)器210。接收服務(wù) 器210將該用戶標(biāo)識號寫到其復(fù)制品中,并且在一些實(shí)施例中向客戶機(jī)202發(fā) 送指示該寫請求已完成的消息。
      如果在批準(zhǔn)來自客戶機(jī)202的寫請求之后不久,在客戶機(jī)204上的另一個 用戶發(fā)送帶有針對不同人員的同一用戶標(biāo)識號的寫請求,則該請求將被適當(dāng)?shù)鼐芙^。當(dāng)接收服務(wù)器212從客戶機(jī)204接收到該寫請求時,則它將認(rèn)識到該用
      戶標(biāo)識號要服從全局?jǐn)?shù)據(jù)規(guī)則。結(jié)果,它將生成批準(zhǔn)消息并將該消息發(fā)送至中
      央服務(wù)器222。中央服務(wù)器222將通過檢查其復(fù)制品來應(yīng)用全局?jǐn)?shù)據(jù)規(guī)則以確 定在其復(fù)制品中是否已經(jīng)針對另一個人接收了來自該寫請求的安全號碼。因?yàn)?中央服務(wù)器220已經(jīng)用來自客戶機(jī)202的寫請求的數(shù)據(jù)更新了中央服務(wù)器222、 224和226上的所有復(fù)制品,所以中央服務(wù)器222將認(rèn)識到,來自客戶機(jī)204 的寫請求的用戶標(biāo)識號不是唯一的并且將拒絕該寫請求。因而,系統(tǒng)200可有 效且高效地實(shí)施要求用戶標(biāo)識號的唯一性的全局?jǐn)?shù)據(jù)規(guī)則。
      應(yīng)當(dāng)理解,圖2所示的系統(tǒng)200的一些具體細(xì)節(jié)僅是處于簡明的目的而提 出的并且不旨在是限制性的。例如,圖2分別將客戶機(jī)202和204示為只訪問 接收服務(wù)器210、 212,而其它接收服務(wù)器沒有連接至任何客戶機(jī)。在其它實(shí)施 例中,客戶機(jī)202和204能夠訪問接收服務(wù)器210、 212、 214和216中的任何 一個。圖2還示出客戶機(jī)202和204使用不同的網(wǎng)絡(luò)206和208訪問服務(wù)器210 和212,然而在其它實(shí)施例中,系統(tǒng)200允許除客戶機(jī)202和204之外的許多 客戶機(jī)通過同一個(或多個)網(wǎng)絡(luò)訪問服務(wù)器210、 212、 214和216。
      網(wǎng)絡(luò)206和208可以是可用于連接客戶機(jī)計(jì)算機(jī)系統(tǒng)與服務(wù)器計(jì)算機(jī)系統(tǒng) 的任何類型的計(jì)算機(jī)網(wǎng)絡(luò)。網(wǎng)絡(luò)206和208例如可以是局域網(wǎng)(LAN)或廣域 網(wǎng)(WAN)。在一些實(shí)施例中,網(wǎng)絡(luò)206和208包括內(nèi)聯(lián)網(wǎng)、因特網(wǎng)和/或它 們的組合。
      圖2還示出中央服務(wù)器220、 222、 224和226未被客戶機(jī)訪問。然而,在 一些實(shí)施例中,除了被分配有實(shí)施全局?jǐn)?shù)據(jù)規(guī)則的任務(wù)之外,中央服務(wù)器220、 222、 224和226可被客戶機(jī)訪問并且直接從客戶機(jī)接受寫請求。在這些實(shí)施例 中,沒有必要咨詢?nèi)魏纹渌?wù)器以實(shí)施任何可應(yīng)用的全局?jǐn)?shù)據(jù)規(guī)則,因?yàn)槿?上所述,中央服務(wù)器220、 222、 224和226具有用于實(shí)施全局?jǐn)?shù)據(jù)規(guī)則的全局 信息。
      此外,圖2示出接收服務(wù)器210、 212、 214和216每一個僅連接至一個中 央服務(wù)器220、 222、 224和226。在一些實(shí)施例中,接收服務(wù)器210、 212、 214 和216可以按任何接收服務(wù)器可發(fā)送批準(zhǔn)請求至任何中央服務(wù)器的方式來連接 至中央服務(wù)器220、 222、 224和226。這些實(shí)施例向系統(tǒng)200提供附加容錯。
      13例如,如果中央服務(wù)器220不能處理由接收服務(wù)器210所發(fā)出的批準(zhǔn)請求,則 接收服務(wù)器210可發(fā)送該請求至另一個中央服務(wù)器以供批準(zhǔn)。
      圖3示出分布式系統(tǒng)的另一個實(shí)施例300。系統(tǒng)300與系統(tǒng)200相似,因 為它包括兩種不同類型的服務(wù)器,即接收服務(wù)器310、 312、 314和316和由虛 線318包圍的一組中央服務(wù)器320、 322、 324和326。中央服務(wù)器320、 322、 324和326各自具有系統(tǒng)300內(nèi)的信息的全局知識(或者可快速地構(gòu)建全局知 識),該全局知識允許它們實(shí)施全局?jǐn)?shù)據(jù)規(guī)則。在圖3所示的箭頭示出在系統(tǒng) 300中的服務(wù)器之間進(jìn)行復(fù)制期間的信息傳送的方向。即,圖3概括地示出系 統(tǒng)300中的服務(wù)器的復(fù)制拓?fù)浣Y(jié)構(gòu)。在圖3所示的實(shí)施例中,接收服務(wù)器310、 312、 314和316具有與中央服務(wù)器320、 322、 324和326不同的復(fù)制拓?fù)浣Y(jié)構(gòu)。 如下所述,中央服務(wù)器320、 322、 324和326的復(fù)制拓?fù)浣Y(jié)構(gòu)至少部分地負(fù)責(zé) 它們的全局知識。
      如圖3所示的,接收服務(wù)器310、 312、 314和316具有環(huán)形復(fù)制拓?fù)浣Y(jié)構(gòu)。 在環(huán)形復(fù)制拓?fù)浣Y(jié)構(gòu)中,每個服務(wù)器與另外兩個服務(wù)器進(jìn)行復(fù)制,其中第一個 和最后一個服務(wù)器彼此進(jìn)行復(fù)制以形成一個圈或環(huán)。在系統(tǒng)300中,服務(wù)器314 與服務(wù)器310和312進(jìn)行復(fù)制,而服務(wù)器312除了與服務(wù)器314進(jìn)行復(fù)制外還 與服務(wù)器316進(jìn)行復(fù)制。服務(wù)器316除了與服務(wù)器312進(jìn)行復(fù)制外還與服務(wù)器 310進(jìn)行復(fù)制。最后,服務(wù)器310與服務(wù)器316和314進(jìn)行復(fù)制,這完成了環(huán) 的形成。
      在一實(shí)施例中,中央服務(wù)器320、 322、 324和326具有全連接的復(fù)制拓?fù)?結(jié)構(gòu)。在全連接的復(fù)制拓?fù)浣Y(jié)構(gòu)中,這些服務(wù)器中的每一個與其它每一個服務(wù) 器進(jìn)行復(fù)制。在系統(tǒng)300中,服務(wù)器320與服務(wù)器322、 324和326進(jìn)行復(fù)制; 服務(wù)器322與服務(wù)器320、 324和326進(jìn)行復(fù)制;服務(wù)器324與服務(wù)器320、 322 和326進(jìn)行復(fù)制;并且服務(wù)器326與服務(wù)器320、 322和324進(jìn)行復(fù)制。如在 圖3中可看到的,中央服務(wù)器320、 322、 324和326的復(fù)制拓?fù)浣Y(jié)構(gòu)允許所有 中央服務(wù)器直接發(fā)送信息至所有其它中央服務(wù)器。該復(fù)制拓?fù)浣Y(jié)構(gòu)幫助在這些 中央服務(wù)器中維護(hù)在系統(tǒng)300內(nèi)所作的改變的全局知識。在系統(tǒng)300中,對信 息所作出的服從全局?jǐn)?shù)據(jù)規(guī)則的任何改變必須由中央服務(wù)器320、 322、 324和 326之一批準(zhǔn),該中央服務(wù)器立即將該改變寫到其自己的復(fù)制品并且基于其全連接的復(fù)制拓?fù)浣Y(jié)構(gòu)可直接將該改變復(fù)制到所有其它的中央服務(wù)器。該過程確 保這些中央服務(wù)器在系統(tǒng)300中作出任何改變之后幾乎立即全部都具有最新的 知識。
      如本領(lǐng)域技術(shù)人員將理解的,為分布式系統(tǒng)配置高效的復(fù)制拓?fù)浣Y(jié)構(gòu)是一 項(xiàng)復(fù)雜的任務(wù),并且取決于各種因素,諸如服務(wù)器的數(shù)量、服務(wù)器是如何連接 的、分布式系統(tǒng)是如何組織(站點(diǎn)、域等)、和分布式系統(tǒng)的目標(biāo)(數(shù)據(jù)一致 性、數(shù)據(jù)的高可用性等)。因而,圖3僅旨在示出具有接收服務(wù)器和中央服務(wù) 器的組合的系統(tǒng)的復(fù)制拓?fù)浣Y(jié)構(gòu)的一個實(shí)施例,其中中央服務(wù)器具有全局知識
      以便實(shí)施全局?jǐn)?shù)據(jù)規(guī)則。盡管系統(tǒng)300示出接收服務(wù)器和中央服務(wù)器具有不同
      的復(fù)制拓?fù)浣Y(jié)構(gòu),但在一些實(shí)施例中,接收服務(wù)器和中央服務(wù)器可具有相同的 復(fù)制拓?fù)浣Y(jié)構(gòu)。
      在各實(shí)施例中,除了復(fù)制拓?fù)浣Y(jié)構(gòu)之外,中央服務(wù)器320、 322、 324和 326還具有幫助維護(hù)其全局知識的復(fù)制協(xié)議。因?yàn)橹醒敕?wù)器在它們接收到批 準(zhǔn)請求時應(yīng)當(dāng)具有全局知識,所以對中央服務(wù)器320、 322、 324和326之一所
      作的任何改變必須非??焖俚貜?fù)制到其它中央服務(wù)器。結(jié)果,中央服務(wù)器可實(shí) 現(xiàn)一種具有在復(fù)制操作之間只有非常短的時間段的復(fù)制時間表的協(xié)議。作為復(fù)
      制操作之間的短時間段的補(bǔ)充或替換,中央服務(wù)器可實(shí)現(xiàn)一種要求對其復(fù)制品 所作的改變立即(或非??焖俚?直接復(fù)制到其它中央服務(wù)器的協(xié)議。
      應(yīng)當(dāng)理解,在一些實(shí)施例中,由中央服務(wù)器320、 322、 324和326所實(shí)現(xiàn) 的協(xié)議可基于全局?jǐn)?shù)據(jù)規(guī)則的重要性或關(guān)鍵性來應(yīng)用不同的復(fù)制時間表。例 如,存在一些被認(rèn)為對組織而言很關(guān)鍵的全局?jǐn)?shù)據(jù)規(guī)則,在該情形中管理員可 能想要將任何改變立即復(fù)制到所有中央服務(wù)器。然而有些全局?jǐn)?shù)據(jù)規(guī)則不這樣 重要,在該情形中,與這些規(guī)則有關(guān)的改變可在預(yù)定的復(fù)制時間段內(nèi)進(jìn)行復(fù)制。 當(dāng)然,在各實(shí)施例中,由中央服務(wù)器320、 322、 324和326所實(shí)現(xiàn)的復(fù)制協(xié)議 可以與由不要求具有全局知識的接收服務(wù)器310、 312、 314和316所實(shí)現(xiàn)的協(xié) 議不同。
      在其它實(shí)施例中,中央服務(wù)器320、 322、 324和326在除了專門設(shè)計(jì)的復(fù) 制協(xié)議和拓?fù)浣Y(jié)構(gòu)之外,還可實(shí)現(xiàn)向它們提供用于實(shí)施全局?jǐn)?shù)據(jù)規(guī)則的最新知 識的其它方法。例如在一個實(shí)施例中,服務(wù)器320、 322、 324和326可在批準(zhǔn)來自接收服務(wù)器310、 312、 314和316的請求之前相互咨詢。即,在中央服務(wù) 器接收到服從全局?jǐn)?shù)據(jù)規(guī)則的請求時,它將咨詢所有其它中央服務(wù)器以確保該 請求不與其它中央服務(wù)器上的數(shù)據(jù)沖突。在又一個實(shí)施例中,當(dāng)中央服務(wù)器接 收到請求時,它可向其它中央服務(wù)器發(fā)出指示它接收到了與特定數(shù)據(jù)相關(guān)的請 求的消息。響應(yīng)于接收到該消息,其它中央服務(wù)器將不允許它們所接收到的與 該同一數(shù)據(jù)相關(guān)的任何請求。在其它中央服務(wù)器從最初的中央服務(wù)器接收到第 二消息時將移除保持。該第二消息將包含經(jīng)改變的信息。
      圖4和5示出根據(jù)各實(shí)施例的操作流程400和500。操作流程400和500 可在任何合適的計(jì)算環(huán)境中執(zhí)行。例如,這些操作流程可由諸如圖2和圖3所 示出的系統(tǒng)來執(zhí)行。因此,操作流程400和500的描述可參考圖2和圖3的組 件中的至少一個。然而,對圖2和圖3的組件的任何這樣的參考僅是為了描述, 并且應(yīng)當(dāng)理解,圖2和圖3的實(shí)現(xiàn)是用于操作流程400和500的非限制性環(huán)境。
      此外,盡管以特定次序順序地示出和描述了操作流程400和500,但在其 它實(shí)施例中,這些操作可按不同的次序、多次和/或并行地執(zhí)行。而且,在一些 實(shí)施例中, 一個或多個操作可被省略或組合。
      圖4示出根據(jù)一實(shí)施例的用于在分布式系統(tǒng)中處理寫請求的操作流程 400。在操作402,接收帶有寫數(shù)據(jù)的寫請求。在各實(shí)施例中,該寫請求是由請 求對接收服務(wù)器上的復(fù)制品作出改變的客戶機(jī)計(jì)算設(shè)備(諸如客戶機(jī)202、204、 302和304)所生成和發(fā)送的。與該寫請求一起接收到的寫數(shù)據(jù)包括要被寫到 分布式系統(tǒng)中的復(fù)制品的數(shù)據(jù)。在各實(shí)施例中,該寫請求可由諸如圖2 (服務(wù) 器210、 212、 214和216)和圖3 (服務(wù)器310、 312、 314和316)所示的接收
      服務(wù)器等接收服務(wù)器來接收。
      在操作402之后,流程隨后轉(zhuǎn)到操作404,在那里作出關(guān)于全局?jǐn)?shù)據(jù)規(guī)則 是否適用于在寫請求中接收到的寫數(shù)據(jù)的判斷。分布式系統(tǒng)的管理員可建立約 束存儲在分布式系統(tǒng)中的數(shù)據(jù)的全局?jǐn)?shù)據(jù)規(guī)則。如上所述,數(shù)據(jù)規(guī)則的一個示 例要求數(shù)據(jù)在整個分布式系統(tǒng)中具有唯一值。在一些實(shí)施例中,全局?jǐn)?shù)據(jù)規(guī)則 的實(shí)施被委托給一組中央服務(wù)器,諸如圖2 (服務(wù)器220、 222、 224和226) 和圖3 (服務(wù)器320、 312、 324和326)描述的中央服務(wù)器。
      如果在操作404確定寫數(shù)據(jù)不服從全局?jǐn)?shù)據(jù)規(guī)則,則流程轉(zhuǎn)到操作406。
      16在操作406,作出關(guān)于寫數(shù)據(jù)是否滿足任何局部數(shù)據(jù)規(guī)則的判斷。如上所述, 局部數(shù)據(jù)規(guī)則對被寫到分布式系統(tǒng)的數(shù)據(jù)施加限制,但不要求全局知識來實(shí)
      施。在各實(shí)施例中,接收服務(wù)器執(zhí)行操作406并且確定寫數(shù)據(jù)是否滿足任何適
      用的局部數(shù)據(jù)規(guī)則。
      如果在操作406作出寫數(shù)據(jù)不滿足局部數(shù)據(jù)規(guī)則的判斷,則流程轉(zhuǎn)到操作 408,在那里拒絕寫請求。在一些實(shí)施例中,操作408涉及接收服務(wù)器生成消 息并將其發(fā)送至最初生成寫請求的客戶機(jī),該消息指示寫請求已被拒絕。在操 作408之后,流程在操作410結(jié)束。
      然而,如果在操作406作出寫數(shù)據(jù)確實(shí)滿足適用的局部數(shù)據(jù)規(guī)則,則流程 轉(zhuǎn)到操作412,在那里接受寫請求并且將寫數(shù)據(jù)寫到分布式系統(tǒng)。在一些實(shí)施 例中,操作412涉及接收服務(wù)器生成消息并將其發(fā)送至最初生成寫請求的客戶 機(jī),該消息指示寫請求已被接受。在操作412之后,流程在操作410結(jié)束。
      應(yīng)當(dāng)注意,在一些實(shí)施例中,如果沒有局部數(shù)據(jù)規(guī)則適用,則操作流程 400可不包括操作406。在這些實(shí)施例中,流程將直接從操作404轉(zhuǎn)到操作412, 在那里接受寫請求并且將寫數(shù)據(jù)寫到分布式系統(tǒng)。流程隨后將在操作410結(jié)束。
      回頭參考操作404,如果作出全局?jǐn)?shù)據(jù)規(guī)則確實(shí)適用的判斷,則流程將從 操作404轉(zhuǎn)到操作414。在操作414,作出有關(guān)中央服務(wù)器是否可用于處理批 準(zhǔn)請求的判斷。在各實(shí)施例中,在接收服務(wù)器在操作404確定全局?jǐn)?shù)據(jù)規(guī)則適 用之后,它必須發(fā)送批準(zhǔn)請求至實(shí)施全局?jǐn)?shù)據(jù)規(guī)則的中央服務(wù)器。執(zhí)行操作414 以確定中央服務(wù)器是否可用于處理接收服務(wù)器所生成的批準(zhǔn)請求。中央服務(wù)器 可能因?yàn)槎喾N原因而不可用,諸如服務(wù)器崩潰、失去連接、和/或服務(wù)器正忙于 處理其它請求。
      如果在操作414作出中央服務(wù)器不可用的判斷,則流程轉(zhuǎn)到操作416。在 操作416應(yīng)用與中央服務(wù)器的不可用性有關(guān)的策略。該策略確定在中央服務(wù)器 不能用于批準(zhǔn)請求時如何處理(服從全局?jǐn)?shù)據(jù)規(guī)則的)寫請求。如圖4所示(在 虛線中),取決于在操作416實(shí)現(xiàn)的特定策略,流程可從操作416轉(zhuǎn)到操作406、 408或416中的任何一個操作。在各實(shí)施例中,該策略可以是簡單地拒絕所有 寫請求,在該情形中流程轉(zhuǎn)到操作408,或者是允許所有寫請求,在該情形中 流程轉(zhuǎn)到操作406。在另一實(shí)施例中,該策略可要求流程從操作416循環(huán)回到
      17操作414,直至中央服務(wù)器變得可用。
      該策略將反映各個數(shù)據(jù)規(guī)則的重要性。例如,如果寫請求服從對于組織而 言極其重要的數(shù)據(jù)規(guī)則,則該策略可通過拒絕服從該關(guān)鍵性數(shù)據(jù)規(guī)則的、未被 中央服務(wù)器批準(zhǔn)的任何寫請求來反映該數(shù)據(jù)規(guī)則的重要性。同時,可允許服從 較不重要的數(shù)據(jù)規(guī)則的寫請求,即使它們不能被中央服務(wù)器批準(zhǔn)。在其它實(shí)施 例中,該策略可允許違反全局?jǐn)?shù)據(jù)規(guī)則的寫請求,但記錄該違反已經(jīng)發(fā)生的事 實(shí)。該記錄隨后可用于在以后協(xié)調(diào)與全局?jǐn)?shù)據(jù)規(guī)則的任何不一致性。如本領(lǐng)域
      的技術(shù)人員將會理解的,在操作416確立和應(yīng)用的特定策略將取決于分布式系
      統(tǒng)的實(shí)現(xiàn)。
      回頭參考操作414,如果作出中央服務(wù)器可用的判斷,則流程轉(zhuǎn)到操作 418,在那里將批準(zhǔn)請求發(fā)送至中央服務(wù)器。該批準(zhǔn)請求尋求中央服務(wù)器對接 受寫請求并且將寫數(shù)據(jù)寫到分布式系統(tǒng)的批準(zhǔn)。在各實(shí)施例中,操作418由接 收服務(wù)器執(zhí)行并且涉及多個子操作,諸如生成帶有在操作402接收到的寫數(shù)據(jù) 的批準(zhǔn)請求,以及隨后發(fā)送該批準(zhǔn)請求至中央服務(wù)器。
      在操作418之后,流程轉(zhuǎn)到操作420,在那里從中央服務(wù)器接收消息。該 消息是響應(yīng)于在操作418發(fā)送的批準(zhǔn)請求的。在操作420之后,流程轉(zhuǎn)到操作 422,在那里作出從中央服務(wù)器接收到的消息是否指示中央服務(wù)器已經(jīng)批準(zhǔn)了 寫請求的判斷。如果在操作422作出中央服務(wù)器沒有批準(zhǔn)寫請求的判斷,則流 程轉(zhuǎn)到操作408,在那里如前所述地拒絕寫請求。
      如果在操作422作出中央服務(wù)器批準(zhǔn)了寫請求的判斷,則操作流程轉(zhuǎn)到操 作406,在那里作出寫數(shù)據(jù)是否滿足任何局部數(shù)據(jù)規(guī)則的判斷。從操作406起, 流程將如上所述地繼續(xù)。在一些實(shí)施例中,沒有任何局部數(shù)據(jù)規(guī)則,在該情形 中,流程將直接從操作422轉(zhuǎn)到操作412,在那里接受寫請求。流程隨后將在 操作410結(jié)束。
      圖4不應(yīng)當(dāng)被解釋為限制執(zhí)行操作流程400的操作的次序。例如,在一個 特定實(shí)施例中,操作404將在操作406之后或者與之同時執(zhí)行。在其它實(shí)施例 中,如果還沒有確立局部數(shù)據(jù)規(guī)則,則操作406將被一起跳過。
      圖5示出用于在分布式系統(tǒng)中實(shí)施全局?jǐn)?shù)據(jù)規(guī)則的操作流程500。流程500 從操作502開始,在那里存儲全局?jǐn)?shù)據(jù)規(guī)則。在各實(shí)施例中,操作502由具有分布式系統(tǒng)中的信息的全局知識的中央服務(wù)器執(zhí)行,諸如在圖2 (服務(wù)器220、 222、 224和226)和圖3 (服務(wù)器320、 322、 324和326)中描述的那些中央 服務(wù)器。這些中央服務(wù)器用于實(shí)施全局?jǐn)?shù)據(jù)規(guī)則,并且確保被寫到分布式系統(tǒng) 的任何數(shù)據(jù)與所確立的數(shù)據(jù)規(guī)則相一致。
      在操作502之后,流程轉(zhuǎn)到操作504,在那里接收帶有寫數(shù)據(jù)的批準(zhǔn)請求。 操作502是由接收該批準(zhǔn)請求的中央服務(wù)器來執(zhí)行的,在各實(shí)施例中該批準(zhǔn)請 求是由諸如圖2 (服務(wù)器210、 212、 214和216)和圖3 (服務(wù)器310、 312、 314和316)所示的接收服務(wù)器等接收服務(wù)器發(fā)送的。該批準(zhǔn)請求尋求來自中 央服務(wù)器的對寫請求(即將數(shù)據(jù)寫到分布式系統(tǒng)的請求)的批準(zhǔn)。除了其它信 息之外,寫請求包括要被寫到分布式系統(tǒng)的寫數(shù)據(jù)。
      在操作506,作出有關(guān)在操作504的批準(zhǔn)請求中接收到的寫數(shù)據(jù)是否滿足 來自操作502的所存儲的全局?jǐn)?shù)據(jù)規(guī)則的判斷。如果寫數(shù)據(jù)不滿足全局?jǐn)?shù)據(jù)規(guī) 則,則流程轉(zhuǎn)到操作508,在那里發(fā)送拒絕批準(zhǔn)請求的消息。在各實(shí)施例中, 中央服務(wù)器生成拒絕批準(zhǔn)請求的消息并將其發(fā)送至發(fā)送該批準(zhǔn)消息的接收服 務(wù)器。在操作508之后,流程在操作510結(jié)束。
      如果在操作506作出寫數(shù)據(jù)滿足來自操作502的所存儲的全局?jǐn)?shù)據(jù)規(guī)則的 判斷,則流程轉(zhuǎn)到操作512,在那里中央服務(wù)器將在批準(zhǔn)請求中接收到的數(shù)據(jù) 寫到其自己的復(fù)制品中。如上所述,中央服務(wù)器具有(或者可快速地構(gòu)建)分 布式系統(tǒng)內(nèi)的信息的全局知識以便能夠?qū)嵤┤謹(jǐn)?shù)據(jù)規(guī)則,并且因此在各實(shí)施 例中,當(dāng)批準(zhǔn)改變時第一個操作是將該信息寫到其自己的復(fù)制品中。
      在操作512之后,在操作514發(fā)送批準(zhǔn)該批準(zhǔn)請求的消息。在各實(shí)施例中, 操作514涉及中央服務(wù)器生成并發(fā)送批準(zhǔn)在操作504中接收到的批準(zhǔn)請求的消 息。該消息向接收服務(wù)器指示它可以接受寫請求并且將數(shù)據(jù)寫到存儲在該接收 服務(wù)器中的復(fù)制品。
      在一些實(shí)施例中,全局?jǐn)?shù)據(jù)規(guī)則可涉及與被寫到分布式系統(tǒng)的數(shù)據(jù)相關(guān)聯(lián) 的操作或業(yè)務(wù)過程。作為一個示例,全局?jǐn)?shù)據(jù)規(guī)則可確立在寫入(即新增加或 改變)名字時必須將該信息轉(zhuǎn)發(fā)至人類資源服務(wù)器的規(guī)則。如在本領(lǐng)域的技術(shù) 人員將會理解的,可確立其它業(yè)務(wù)過程和操作。在這些實(shí)施例中,業(yè)務(wù)過程或 操作可在操作512和514之前、之后或與其同時執(zhí)行。
      19在操作514之后,流程隨后轉(zhuǎn)到操作516,在那里中央服務(wù)器將在操作512 所寫的數(shù)據(jù)復(fù)制到其它中央服務(wù)器。在操作516期間執(zhí)行的特定步驟將基于為 分布式系統(tǒng)中的中央服務(wù)器確立的復(fù)制協(xié)議和拓?fù)浣Y(jié)構(gòu)。如前參考圖3所述, 中央服務(wù)器可實(shí)現(xiàn)各種復(fù)制協(xié)議和拓?fù)浣Y(jié)構(gòu),它們被設(shè)計(jì)成確保這些中央服務(wù) 器維護(hù)分布式系統(tǒng)中的信息的全局知識。
      圖5不應(yīng)當(dāng)被解釋為限制執(zhí)行操作流程500的操作的次序。例如,在一個 特定實(shí)施例中,操作516將在操作514之后立即執(zhí)行或與其同時執(zhí)行。該實(shí)施 例確保寫到復(fù)制品的數(shù)據(jù)被快速地復(fù)制到其它中央服務(wù)器,以確保它們維護(hù)分 布式系統(tǒng)中的信息的全局知識。
      圖6示出可用于實(shí)現(xiàn)本文所述的各實(shí)施例的通用計(jì)算機(jī)系統(tǒng)600。計(jì)算機(jī) 系統(tǒng)600僅是計(jì)算環(huán)境的一個示例,并且不旨在對計(jì)算機(jī)和網(wǎng)絡(luò)體系結(jié)構(gòu)的使 用范圍或功能提出任何限制。也不應(yīng)當(dāng)將計(jì)算機(jī)系統(tǒng)600解釋為對在示例計(jì)算 機(jī)系統(tǒng)600中所示的任何一個組件或組件組合有任何依賴性或要求。在各實(shí)施 例中,系統(tǒng)600可用作以上參考圖2和圖3所描述的接收服務(wù)器和/或中央服務(wù) 器。
      在其最基本的配置中,系統(tǒng)600 —般包括至少一個處理單元602和存儲器 604。取決于計(jì)算設(shè)備的確切配置和類型,存儲器604可以是易失性(諸如 RAM)、非易失性(諸如ROM、閃存等)、或者這兩者的某種組合。該最基 本的配置在圖6中由虛線606示出。系統(tǒng)存儲器604存儲在系統(tǒng)600上執(zhí)行的 應(yīng)用程序。除了應(yīng)用程序之外,存儲器604還可存儲在系統(tǒng)600所執(zhí)行的操作 中使用的信息,諸如寫請求610和/或批準(zhǔn)請求612,如以上參考圖2-5所描述 的。
      另外,系統(tǒng)600還可具有附加特征/功能。例如,設(shè)備600還可包括附加 存儲608 (可移動和/或不可移動),包括但不限于磁盤或光盤或磁帶。這樣的 附加存儲在圖6中由存儲608所示。計(jì)算機(jī)存儲介質(zhì)包括以用于存儲諸如計(jì)算 機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的 易失性和非易失性、可移動和不可移動介質(zhì)。存儲器604和存儲608是計(jì)算機(jī) 存儲介質(zhì)的示例。計(jì)算機(jī)存儲介質(zhì)包括但不限于RAM、 ROM、 EEPROM、閃 存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光學(xué)存儲、磁帶盒、磁帶、磁盤存儲或其它磁存儲設(shè)備、或者可用于存儲所需信息并可由系
      統(tǒng)600訪問的任何其它介質(zhì)。任何這樣的計(jì)算機(jī)存儲介質(zhì)可以都是系統(tǒng)600的
      一部分。
      如本領(lǐng)域技術(shù)人員將會理解的,存儲608可存儲各種信息。除了其它類型 的信息之外,存儲608可存儲數(shù)據(jù)規(guī)則618和分布式系統(tǒng)上的信息的復(fù)制品 620。如上參考圖2和3所述,取決于系統(tǒng)600是接收服務(wù)器還是中央服務(wù)器, 該數(shù)據(jù)規(guī)則可以是局部數(shù)據(jù)規(guī)則或全局?jǐn)?shù)據(jù)規(guī)則。
      系統(tǒng)600還包含允許系統(tǒng)與其它設(shè)備通信的通信連接612。通信連接612 是通信介質(zhì)的示例。通信介質(zhì)一般以諸如載波或者其它傳輸機(jī)制等已調(diào)制數(shù)據(jù) 信號來體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任何
      信息傳送介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號"指其一個或多個特征以將信息編碼在 信號中的方式被設(shè)定或更改的信號。作為示例而非限制,通信介質(zhì)包括有線介 質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì),諸如聲學(xué)、RF、紅外和其它 無線介質(zhì)。本文使用的術(shù)語計(jì)算機(jī)可讀介質(zhì)包括存儲介質(zhì)和通信介質(zhì)兩者。
      系統(tǒng)600還可具有諸如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備等 輸入設(shè)備614。也可包括諸如顯示器、揚(yáng)聲器、打印機(jī)等輸出設(shè)備616。所有 這些設(shè)備在本領(lǐng)域中是已知的并且不必在此詳細(xì)討論。
      本說明書通篇引述了 "一個實(shí)施例"或"一實(shí)施例",這意指特定描述的 特征、結(jié)構(gòu)或特性包括在至少一個實(shí)施例中。因而,對這樣的短語的使用可指 一個以上的實(shí)施例。此外,在一個或多個實(shí)施例中,所描述的特征、結(jié)構(gòu)或特 性可用任何合適的方式組合起來。
      然而,本領(lǐng)域的技術(shù)人員可認(rèn)識到,本發(fā)明可在沒有這些具體細(xì)節(jié)中的一 個或多個的情況下實(shí)施或者使用其它方法、資源、材料等來實(shí)施。僅僅為了避 免模糊本發(fā)明的各方面,在其它情況中,沒有具體示出或者描述的公知的結(jié)構(gòu)、 資源或操作。
      盡管已經(jīng)示出和描述了各示例實(shí)施例和應(yīng)用,但應(yīng)當(dāng)理解,本發(fā)明不限于 所述的精確配置和資源。對于本領(lǐng)域技術(shù)人員顯而易見的是,可在不背離本發(fā) 明的范圍的情況下對在本文所公開的方法和系統(tǒng)的安排、操作和細(xì)節(jié)方面作出 各種修改、改變和變化。
      2權(quán)利要求
      1.一種處理包括多個服務(wù)器的分布式系統(tǒng)中的寫請求的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述多個服務(wù)器各自存儲同一數(shù)據(jù)的復(fù)制品并且進(jìn)行復(fù)制以維護(hù)存儲在所述多個服務(wù)器上的所述復(fù)制品中的每一個之間的數(shù)據(jù)一致性,所述方法包括在第一服務(wù)器處接收帶有要被寫到存儲在所述第一服務(wù)器上的復(fù)制品的數(shù)據(jù)的寫請求,其中所述第一服務(wù)器是多個服務(wù)器之一;確定所述寫請求中的所述數(shù)據(jù)是否服從全局?jǐn)?shù)據(jù)規(guī)則;發(fā)送批準(zhǔn)請求至中央服務(wù)器以批準(zhǔn)接受所述寫請求,其中所述中央服務(wù)器是所述多個服務(wù)器中的另一個服務(wù)器并且具有全局知識;從所述中央服務(wù)器接收指示所述批準(zhǔn)請求是否已經(jīng)被批準(zhǔn)的消息;響應(yīng)于所述中央服務(wù)器批準(zhǔn)所述批準(zhǔn)請求,所述第一服務(wù)器接受所述寫請求并將所述數(shù)據(jù)寫到存儲在所述第一服務(wù)器上的所述復(fù)制品;以及響應(yīng)于所述中央服務(wù)器不批準(zhǔn)所述批準(zhǔn)請求,所述第一服務(wù)器拒絕所述寫請求。
      2. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括所述第一服務(wù)器確定所述寫請求中的所述數(shù)據(jù)是否滿足局部數(shù)據(jù)規(guī)則;以及響應(yīng)于所述數(shù)據(jù)確實(shí)滿足所述局部數(shù)據(jù)規(guī)則的判斷和所述中央服務(wù)器批 準(zhǔn)所述批準(zhǔn)請求,所述第一服務(wù)器接受所述寫請求并且將所述數(shù)據(jù)寫到存儲在 所述第一服務(wù)器上的所述復(fù)制品;以及響應(yīng)于所述數(shù)據(jù)不服從所述局部數(shù)據(jù)規(guī)則的判斷,所述第一服務(wù)器拒絕所 述寫請求。
      3. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述發(fā)送包括生 成所述批準(zhǔn)消息和將所述數(shù)據(jù)包括在所述批準(zhǔn)請求中。
      4. 如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述中央服務(wù)器 存儲所述全局?jǐn)?shù)據(jù)規(guī)則并且確定所述批準(zhǔn)請求中的所述數(shù)據(jù)是否滿足所述全 局?jǐn)?shù)據(jù)規(guī)則。
      5. 如權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述數(shù)據(jù)規(guī)則要 求所述數(shù)據(jù)相對于存儲在所述分布式系統(tǒng)中的其它數(shù)據(jù)是唯一的。
      6. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述分布式系統(tǒng) 存儲分布式目錄并且所述寫請求是使用輕量級目錄訪問協(xié)議來生成的。
      7. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述分布式系統(tǒng)存儲分布式文件系統(tǒng)并且所述寫請求涉及將數(shù)據(jù)寫到在所述分布式文件系統(tǒng) 上的文件。
      8. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述寫請求是從 訪問所述分布式系統(tǒng)的客戶機(jī)接收的。
      9. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括在所述第 一服務(wù)器處存儲用于在中央服務(wù)器不可用時決定接受還是拒絕寫請求的策略。
      10. —種在包括多個服務(wù)器的分布式系統(tǒng)中實(shí)施全局?jǐn)?shù)據(jù)規(guī)則的計(jì)算機(jī)實(shí) 現(xiàn)的方法,所述多個服務(wù)器各自存儲同一數(shù)據(jù)的復(fù)制品并且進(jìn)行復(fù)制以維護(hù)存 儲在所述多個服務(wù)器上的所述復(fù)制品之間的數(shù)據(jù)一致性,所述方法包括下列步 驟.'在中央服務(wù)器處存儲供該中央服務(wù)器實(shí)施的全局?jǐn)?shù)據(jù)規(guī)則,其中該中央服 務(wù)器是所述多個服務(wù)器之一;在所述中央服務(wù)器處接收由作為所述多個服務(wù)器中的一個不同服務(wù)器的 接收服務(wù)器所發(fā)送的批準(zhǔn)請求,其中所述批準(zhǔn)請求與在所述接收服務(wù)器處接收 到的寫請求有關(guān)并且所述批準(zhǔn)請求包括要被寫到存儲在所述接收服務(wù)器上的復(fù)制品的數(shù)據(jù);所述中央服務(wù)器確定要被寫到所述接收服務(wù)器的所述數(shù)據(jù)是否滿足所述 全局?jǐn)?shù)據(jù)規(guī)則;響應(yīng)于所述數(shù)據(jù)不滿足所述全局?jǐn)?shù)據(jù)規(guī)則的判斷,發(fā)送拒絕所述批準(zhǔn)請求 的消息至所述接收服務(wù)器;以及響應(yīng)于所述數(shù)據(jù)滿足所述數(shù)據(jù)規(guī)則的判斷將所述數(shù)據(jù)寫到存儲在所述中央服務(wù)器上的復(fù)制品;以及發(fā)送批準(zhǔn)所述寫請求的消息至所述接收服務(wù)器。
      11. 如權(quán)利要求10所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括.-在所述寫入之后,將所述數(shù)據(jù)復(fù)制到作為所述多個服務(wù)器之一的第二中央服務(wù)器。
      12. 如權(quán)利要求11所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述復(fù)制是在 所述發(fā)送之前執(zhí)行的。
      13. 如權(quán)利要求11所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述復(fù)制是按 預(yù)定的時間表執(zhí)行的。
      14. 如權(quán)利要求10所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述分布式系 統(tǒng)存儲分布式目錄服務(wù)并且所述寫請求是使用輕量級目錄訪問協(xié)議生成的。
      15. —種分布式系統(tǒng),包括多個中央服務(wù)器,所述多個中央服務(wù)器中的每一個都存儲要求全局知識來實(shí)施的數(shù)據(jù)規(guī)則并且每一個中央服務(wù)器可用于接收尋求批準(zhǔn)將數(shù)據(jù)寫到接收服務(wù)器的批準(zhǔn)請求,其中所述批準(zhǔn)請求包 括所述數(shù)據(jù);確定所述寫數(shù)據(jù)是否服從所述數(shù)據(jù)規(guī)則;響應(yīng)于所述數(shù)據(jù)不服從所述數(shù)據(jù)規(guī)則的判斷,發(fā)送拒絕所述批準(zhǔn)請求的 消息至所述接收服務(wù)器;以及響應(yīng)于所述數(shù)據(jù)服從所述數(shù)據(jù)規(guī)則的判斷 將所述數(shù)據(jù)寫到所述中央服務(wù)器,以及 發(fā)送批準(zhǔn)所述批準(zhǔn)請求的消息至所述接收服務(wù)器;以及 多個接收服務(wù)器,所述接收服務(wù)器中的每一個可用于 接收將數(shù)據(jù)寫到所述接收服務(wù)器的寫請求;發(fā)送批準(zhǔn)請求至所述多個中央服務(wù)器之一,其中所述批準(zhǔn)請求尋求所述 多個中央服務(wù)器之一對所述寫請求的批準(zhǔn);響應(yīng)于從所述中央服務(wù)器接收到批準(zhǔn)所述批準(zhǔn)請求的消息,接受所述寫 請求并且將所述數(shù)據(jù)寫到所述接收服務(wù)器;以及響應(yīng)于從所述中央服務(wù)器接收到拒絕所述批準(zhǔn)請求的消息,拒絕所述寫請求。
      16. 如權(quán)利要求15所述的分布式系統(tǒng),其特征在于,所述多個中央服務(wù)器 實(shí)現(xiàn)與所述多個接收服務(wù)器不同的復(fù)制協(xié)議。
      17. 如權(quán)利要求15所述的分布式系統(tǒng),其特征在于,所述多個中央服務(wù)器 實(shí)現(xiàn)與所述多個接收服務(wù)器不同的復(fù)制拓?fù)浣Y(jié)構(gòu)。
      18. 如權(quán)利要求17所述的分布式系統(tǒng),其特征在于,所述多個中央服務(wù)器 實(shí)現(xiàn)全連接的復(fù)制拓?fù)浣Y(jié)構(gòu)。
      19. 如權(quán)利要求15所述的分布式系統(tǒng),其特征在于,所述多個接收服務(wù)器 各自還可用于存儲在中央服務(wù)器不能用于接收批準(zhǔn)請求時決定接受還是拒絕 寫請求的策略。
      20. 如權(quán)利要求15所述的分布式系統(tǒng),所述多個中央服務(wù)器各自還可用于 接收將數(shù)據(jù)寫到所述中央服務(wù)器的寫請求。
      全文摘要
      所描述的是針對使用具有分布式系統(tǒng)中的信息的全局知識的指定服務(wù)器來處理寫請求的各實(shí)施例。這些指定服務(wù)器用于實(shí)施對可被寫到該分布式系統(tǒng)的數(shù)據(jù)進(jìn)行限制的數(shù)據(jù)規(guī)則。為了確保被寫到該分布式系統(tǒng)的數(shù)據(jù)與數(shù)據(jù)規(guī)則相一致,當(dāng)該分布式系統(tǒng)內(nèi)的另一個服務(wù)器接收到寫入服從該數(shù)據(jù)規(guī)則的信息的請求時,該服務(wù)器必須在它可接受該寫請求之前咨詢指定服務(wù)器之一。如果指定服務(wù)器確定該數(shù)據(jù)與數(shù)據(jù)規(guī)則相一致,則批準(zhǔn)該寫請求。否則,拒絕該寫請求。
      文檔編號G06F15/16GK101689166SQ200880022216
      公開日2010年3月31日 申請日期2008年6月16日 優(yōu)先權(quán)日2007年6月27日
      發(fā)明者D·加夫里洛夫, E·S·弗萊士曼 申請人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1