專利名稱::用于復(fù)制和同步的系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明的實(shí)施例涉及用于提供網(wǎng)絡(luò)數(shù)據(jù)服務(wù)器中的復(fù)制(implication)和同步機(jī)制的系統(tǒng)和方法。更特別地,本發(fā)明的實(shí)施例涉及使得能夠?qū)崿F(xiàn)穩(wěn)健、高速的數(shù)據(jù)訪問(wèn)以供在具有許多訂戶的通信網(wǎng)絡(luò)中使用的系統(tǒng)和方法,所述訂戶的各自數(shù)據(jù)可以被部署在集中式數(shù)據(jù)倉(cāng)庫(kù)(repository)中以供在網(wǎng)絡(luò)內(nèi)運(yùn)行的各種應(yīng)用程序訪問(wèn)。
背景技術(shù):
:現(xiàn)有技術(shù)中的復(fù)制和同步機(jī)制具有許多限制。這些限制包括單線程和單進(jìn)程機(jī)制。目錄系統(tǒng)代理(DSA)中的一個(gè)服務(wù)器通常充當(dāng)對(duì)該DSA的所有更新的主站(primary)或母站(master),而不管涉及多少其他服務(wù)器或通信距離有多大。單個(gè)消息的丟失通常被視為同步的失去。需要一種自動(dòng)晉升機(jī)制(到主站)以允許第二服務(wù)器在現(xiàn)有主站發(fā)生故障的情況下承擔(dān)主站的責(zé)任。在沒(méi)有此類機(jī)制的情況下,可能存在相當(dāng)長(zhǎng)的其間不可能有更新的時(shí)間段。然而,從單獨(dú)服務(wù)器的角度來(lái)看,可能不能將到主站服務(wù)器的通信的丟失與該主站的故障區(qū)別開(kāi)。在沒(méi)有其它“上帝之眼的觀點(diǎn)”信息的情況下,服務(wù)器可以在原始主站仍在操作時(shí)決定使其自己晉升為主站(結(jié)果有兩個(gè)獨(dú)立的主站),或者在實(shí)際上原始主站已發(fā)生故障時(shí)決定不使其自己晉升(結(jié)果沒(méi)有主站)。從具有雙主站中恢復(fù)可能需要手動(dòng)過(guò)程且易于發(fā)生暫時(shí)、甚至永久性數(shù)據(jù)丟失。
發(fā)明內(nèi)容本發(fā)明的實(shí)施例提供一種對(duì)等且多線程的用于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的復(fù)制和同步機(jī)制。本發(fā)明的實(shí)施例還可以在托管(host)網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的復(fù)制品(r印lica)之間的通信丟失的情況下實(shí)現(xiàn)可用替換服務(wù),并在復(fù)制品之間的通信恢復(fù)時(shí)提供完全自動(dòng)的恢復(fù)。在計(jì)算機(jī)(例如服務(wù)器)上托管所述復(fù)制品,并且在某些實(shí)施例中,可以在計(jì)算機(jī)上托管多于一個(gè)的復(fù)制品。復(fù)制和同步機(jī)制的實(shí)施例還可以提供用于片狀(flaky)(有損耗)網(wǎng)絡(luò)中的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的穩(wěn)健處理。根據(jù)本發(fā)明的實(shí)施例,復(fù)制和同步機(jī)制還可以提供條目級(jí)(entrylevel)同步和對(duì)事務(wù)(transaction)的支持。本發(fā)明的實(shí)施例提供一種用于對(duì)等網(wǎng)絡(luò)中的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的實(shí)時(shí)數(shù)據(jù)管理的系統(tǒng)。該系統(tǒng)包括在第一服務(wù)器計(jì)算機(jī)中托管的多個(gè)復(fù)制品中的第一復(fù)制品。第一復(fù)制品被配置為接受對(duì)第一復(fù)制品上的復(fù)制品條目的數(shù)據(jù)更新,每個(gè)復(fù)制品條目對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目。第一復(fù)制品還被配置為將復(fù)制品條目進(jìn)行更新以包括所接受數(shù)據(jù)更新。第一復(fù)制品還被配置為確定具有與網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目相對(duì)應(yīng)的復(fù)制品條目的所述多個(gè)復(fù)制品中的復(fù)制品和所述第一復(fù)制品之間的復(fù)制協(xié)議的狀態(tài),其中,所述第一復(fù)制品具有與所述多個(gè)復(fù)制品中的每個(gè)復(fù)制品的復(fù)制協(xié)議,每個(gè)復(fù)制協(xié)議與該協(xié)議的復(fù)制品方之間的復(fù)制品條目的協(xié)調(diào)有關(guān)。第一復(fù)制品還可以確定第一復(fù)制品上的所更新復(fù)制品條目是否違反復(fù)制協(xié)議,其中,復(fù)制協(xié)議的違反指示第一復(fù)制品上的所接受數(shù)據(jù)更新未能被拷貝(copy)到復(fù)制協(xié)議的另一復(fù)制品方。第一復(fù)制品可以針對(duì)具有活動(dòng)(active)狀態(tài)且對(duì)于所接受數(shù)據(jù)更新而言未被違反的復(fù)制協(xié)議將所接受數(shù)據(jù)更新復(fù)制到所述多個(gè)復(fù)制品中的其它復(fù)制品。本發(fā)明的實(shí)施例可以包括被配置為類似于上述第一復(fù)制品的其它復(fù)制品。本發(fā)明的實(shí)施例還提供一種用于對(duì)等計(jì)算網(wǎng)絡(luò)中的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的實(shí)時(shí)數(shù)據(jù)管理的方法。該方法包括接受對(duì)多個(gè)復(fù)制品中的第一復(fù)制品中的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的條目的數(shù)據(jù)更新,該第一復(fù)制品在多個(gè)服務(wù)器中的第一服務(wù)器上被托管,第一復(fù)制品包含網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的至少一部分作為對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目的多個(gè)復(fù)制品條目。該方法還要求識(shí)別對(duì)應(yīng)于該條目的第一復(fù)制品上的多個(gè)復(fù)制品的復(fù)制品條目。該方法還包括檢查所述多個(gè)復(fù)制品中的第一復(fù)制品與其它復(fù)制品之間的復(fù)制協(xié)議,其中,每個(gè)復(fù)制協(xié)議描述所述多個(gè)復(fù)制品中的第一復(fù)制品與另一復(fù)制品之間的關(guān)系。該方法還包括確定所述多個(gè)復(fù)制品中的第一復(fù)制品和第二復(fù)制品之間的第一復(fù)制協(xié)議的狀態(tài),所述第二復(fù)制品在所述多個(gè)服務(wù)器中的第二服務(wù)器上被托管。該方法包括更新第一復(fù)制品上的已識(shí)別復(fù)制品條目。該方法還要求如果第一復(fù)制協(xié)議處于活動(dòng)狀態(tài)且如果可以將所接受數(shù)據(jù)更新拷貝到第二復(fù)制品,則復(fù)制第二復(fù)制品上的所接受數(shù)據(jù)更新。本發(fā)明的實(shí)施例提供一種用于管理在多個(gè)服務(wù)器上部署的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)的系統(tǒng)。第一復(fù)制品被配置為用于與所述多個(gè)復(fù)制品中的其它復(fù)制品通信并在所述多個(gè)服務(wù)器中的服務(wù)器上被托管。第一復(fù)制品上的第一復(fù)制信息庫(kù)被配置為包含網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的至少一部分,所述第一復(fù)制信息庫(kù)包括多個(gè)復(fù)制品條目,以使得每個(gè)復(fù)制品條目對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目。事務(wù)模塊被配置為接收對(duì)第一復(fù)制信息庫(kù)中的復(fù)制品條目的數(shù)據(jù)更新。第一添加增量(delta)模塊被配置為創(chuàng)建第一復(fù)制信息庫(kù)中的多個(gè)復(fù)制品條目中的第一復(fù)制品條目的第一條目增量(entrydelta),并為第一條目增量提供來(lái)自事務(wù)模塊的所接收數(shù)據(jù)更新,且創(chuàng)建所述多個(gè)復(fù)制品中的第二復(fù)制品中的第二復(fù)制品條目的所接收數(shù)據(jù)更新的副本(copy)。第一鎖定模塊被配置為鎖定第一復(fù)制信息庫(kù)中的第一復(fù)制品條目。第一增量OK(delta-OK)模塊被配置為確認(rèn)(validate)第一條目增量具有與第一數(shù)據(jù)復(fù)制品條目相容的特性,其中,第一添加增量模塊還被配置為在第一增量OK模塊已確認(rèn)第一條目增量之后通過(guò)網(wǎng)絡(luò)將所接收數(shù)據(jù)更新的副本發(fā)送到具有第二數(shù)據(jù)復(fù)制品條目的第二復(fù)制品。提交(commit)模塊被配置為在從鎖定模塊接收到成功指示符之后請(qǐng)求條目增量的應(yīng)用,所述成功指示符與對(duì)網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目的改變相關(guān)聯(lián)。第一應(yīng)用模塊被配置為將第一條目增量應(yīng)用于第一復(fù)制信息庫(kù)中的第一復(fù)制品條目,以使得對(duì)第一復(fù)制品中的條目的請(qǐng)求隨后提供所接收數(shù)據(jù)更新,該第一應(yīng)用模塊被配置為在接收到來(lái)自提交模塊的請(qǐng)求之后應(yīng)用第一條目增量。第一解鎖模塊被配置為在第一應(yīng)用模塊已向第一復(fù)制品條目應(yīng)用第一條目增量之后將第一數(shù)據(jù)復(fù)制品條目解鎖。本發(fā)明的實(shí)施例可以包括被配置為類似于上述第一復(fù)制品的其它復(fù)制品。本發(fā)明的實(shí)施例提供一種用于管理在多個(gè)服務(wù)器上部署的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)的系統(tǒng)。第一復(fù)制品被配置為用于與所述多個(gè)復(fù)制品中的其它復(fù)制品通信;第一復(fù)制品在所述多個(gè)服務(wù)器的服務(wù)器上被托管。第一復(fù)制品還包括被配置為包含網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的至少一部分的第一復(fù)制信息庫(kù),第一復(fù)制信息庫(kù)包括多個(gè)復(fù)制品條目,以使得每個(gè)復(fù)制品條目對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目,第一復(fù)制信息庫(kù)還包括所述多個(gè)復(fù)制品中的每個(gè)復(fù)制品與其它復(fù)制品之間的多個(gè)復(fù)制協(xié)議。狀態(tài)確定模塊被配置為確定所述多個(gè)復(fù)制品中的復(fù)制品之間的復(fù)制協(xié)議,且所述多個(gè)復(fù)制品中的另一復(fù)制品由于通信丟失而處于不活動(dòng)狀態(tài),所述狀態(tài)確定模塊還被配置為確定在第一復(fù)制品與另一復(fù)制品之間已恢復(fù)通信。同步模塊被配置為請(qǐng)求所述多個(gè)復(fù)制品的復(fù)制品中的條目的更新數(shù)據(jù),其在復(fù)制協(xié)議的不活動(dòng)狀態(tài)期間改變,所述同步模塊還被配置為控制所述多個(gè)復(fù)制品中的另一復(fù)制品的更新,以解決產(chǎn)生的對(duì)復(fù)制協(xié)議的違反,直至復(fù)制協(xié)議被恢復(fù)至活動(dòng)狀態(tài)為止。本發(fā)明的實(shí)施例提供一種用于管理在多個(gè)復(fù)制品上部署的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)的方法,其中,每個(gè)復(fù)制品包含網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的至少一部分且每個(gè)復(fù)制品被配置為用于與所述多個(gè)復(fù)制品中的其它復(fù)制品通信,所述復(fù)制品在服務(wù)器計(jì)算機(jī)中被托管。第一復(fù)制品接收對(duì)所述多個(gè)復(fù)制品中的第一復(fù)制品中的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目的數(shù)據(jù)更新。為所述多個(gè)復(fù)制品中的第二復(fù)制品中的第二復(fù)制品條目創(chuàng)建所接收數(shù)據(jù)更新的副本,第二復(fù)制品條目對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目。為第一復(fù)制品條目創(chuàng)建第一條目增量,其中,第一條目增量包括所接收數(shù)據(jù)更新。該條目在第一復(fù)制品上的第一復(fù)制品條目中被鎖定,且第一條目增量被確認(rèn)以確定其具有與條目相容的特性。所接收數(shù)據(jù)更新的副本被通過(guò)網(wǎng)絡(luò)發(fā)送到第二復(fù)制品。創(chuàng)建第二復(fù)制品條目上的第二條目增量,其中,第二條目增量包括適合于第二復(fù)制品條目的格式的已改變數(shù)據(jù)。第二復(fù)制品上的第二復(fù)制品條目中的條目被第二條目增量鎖定。在鎖定第二復(fù)制品條目中的條目之后,從第二復(fù)制品向第一復(fù)制品發(fā)送成功指示符。第一條目增量被應(yīng)用于第一復(fù)制品條目且第二條目增量被應(yīng)用于第二復(fù)制品條目,以使得對(duì)第一復(fù)制品和第二復(fù)制品中的條目的請(qǐng)求隨后將提供數(shù)據(jù)更新。第一復(fù)制品條目在將第一條目增量應(yīng)用于第一復(fù)制品條目之后被解鎖且第二復(fù)制品條目在將第二條目增量應(yīng)用與第二復(fù)制品條目之后被解鎖。本發(fā)明的實(shí)施例提供一種用于管理在多個(gè)復(fù)制品上部署的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)的方法,其中,網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的每個(gè)條目對(duì)應(yīng)于多個(gè)復(fù)制品中的每一個(gè)中的復(fù)制品條目,并且其中,每個(gè)復(fù)制品保持與所述多個(gè)復(fù)制品中的其它復(fù)制品的復(fù)制協(xié)議。第一復(fù)制品與第二復(fù)制品之間的第一復(fù)制協(xié)議被確定為已由于第一復(fù)制品與第二復(fù)制品之間的通信的丟失而進(jìn)入不活動(dòng)狀態(tài)。第一復(fù)制品與第三復(fù)制品之間的第二復(fù)制協(xié)議還被確定為已由于第一復(fù)制品與第三復(fù)制品之間的通信的丟失而變得不活動(dòng),其中,第二復(fù)制品與第三復(fù)制品之間的通信未被中斷。一旦確定在第一復(fù)制品與第二和第三復(fù)制品之間已恢復(fù)通信,則通過(guò)使第一復(fù)制品和第二復(fù)制品相互同步來(lái)將第一復(fù)制協(xié)議恢復(fù)至活動(dòng)狀態(tài),并通過(guò)使第一復(fù)制品和第三復(fù)制品相互同步來(lái)將第二復(fù)制協(xié)議恢復(fù)至活動(dòng)狀態(tài)。圖1示出根據(jù)本發(fā)明的實(shí)施例的復(fù)制信息庫(kù)(RIB)100的邏輯圖;圖2示出根據(jù)本發(fā)明的實(shí)施例的復(fù)制模型;圖3示出根據(jù)本發(fā)明的實(shí)施例的圖2所示的復(fù)制協(xié)議202的代表性狀態(tài);圖4示出根據(jù)本發(fā)明的實(shí)施例的復(fù)制品201在任何實(shí)例處也具有給定狀態(tài);圖5示出根據(jù)本發(fā)明的實(shí)施例的作為RIB(例如,RIB100)中的單獨(dú)實(shí)例的條目501的每個(gè)“版本”,其由其自己的id和相關(guān)聯(lián)EntryDelta(條目增量)502的組合唯一地標(biāo)識(shí);圖6示出根據(jù)本發(fā)明的實(shí)施例的依照許多方法對(duì)諸如事務(wù)601、EntryDelta602、條目603和RIB100604等類的復(fù)制處理;圖7示出根據(jù)本發(fā)明的實(shí)施例的沒(méi)有競(jìng)爭(zhēng)(contention)的RIB的更新;圖8示出根據(jù)本發(fā)明的實(shí)施例的如果在不同事務(wù)601a601b中同時(shí)創(chuàng)建參考同一條目603a的兩個(gè)EntryDelta602a602b則會(huì)發(fā)生的情況;圖910示出根據(jù)本發(fā)明的實(shí)施例的其中通過(guò)處理的排序不能避免死鎖、從而必須采取附加動(dòng)作的情況;圖1112示出根據(jù)本發(fā)明的實(shí)施例的在給定圖910所示的兩個(gè)序列的情況下,第三和第四復(fù)制品的動(dòng)作;圖13示出根據(jù)本發(fā)明的實(shí)施例的由于不活動(dòng)復(fù)制協(xié)議而要求同步的情形;圖14示出根據(jù)本發(fā)明的實(shí)施例的由于隔離的復(fù)制品而要求同步的情形;圖15示出根據(jù)本發(fā)明的實(shí)施例的由于同步的復(fù)制品而要求同步的情形;以及圖16示出根據(jù)本發(fā)明的實(shí)施例的由條目104的不同復(fù)制品作為有向圖中的節(jié)點(diǎn)而保持的許多版本。具體實(shí)施例方式本發(fā)明的實(shí)施例提供一種對(duì)等且多線程的復(fù)制和同步機(jī)制。本發(fā)明的實(shí)施例還可以在復(fù)制品之間的通信丟失的情況下實(shí)現(xiàn)可用替換服務(wù),并在復(fù)制品之間的通信恢復(fù)時(shí)提供完全自動(dòng)的恢復(fù)。在計(jì)算機(jī)(例如,服務(wù)器)上托管所述復(fù)制品,并且在某些實(shí)施例中,在單個(gè)計(jì)算機(jī)上托管多個(gè)復(fù)制品。復(fù)制和同步機(jī)制的實(shí)施例還以提供片狀(有損耗)網(wǎng)絡(luò)中的穩(wěn)健處理。根據(jù)本發(fā)明的實(shí)施例,復(fù)制和同步機(jī)制還可以提供條目級(jí)同步和對(duì)事務(wù)的13支持。本發(fā)明的實(shí)施例可以以多種方式復(fù)制數(shù)據(jù)庫(kù)條目。另外,根據(jù)本發(fā)明的實(shí)施例,任何對(duì)等端可以添加、修改、或刪除條目。此外,本發(fā)明的實(shí)施例可以采用鎖定機(jī)制來(lái)保證條目和更新的一致性。根據(jù)本發(fā)明的實(shí)施例,復(fù)制和同步機(jī)制能夠合并(merge)已由于對(duì)等端之間的通信的丟失而獨(dú)立地進(jìn)行的改變。另外,對(duì)數(shù)據(jù)的訪問(wèn)是實(shí)時(shí)的,根據(jù)本發(fā)明的實(shí)施例,且存儲(chǔ)器使用的增加僅比在現(xiàn)有技術(shù)系統(tǒng)中略高。信息模型_復(fù)制信息庫(kù)圖1示出根據(jù)本發(fā)明的實(shí)施例的復(fù)制信息庫(kù)(RIB)100的邏輯圖。RIB100包括一組信息,其中,信息的兩個(gè)或更多副本實(shí)際上對(duì)于該信息的用戶而言是相同的。這里,“用戶”可以指直接對(duì)數(shù)據(jù)采取動(dòng)作的計(jì)算機(jī)程序以及操作與數(shù)據(jù)交互的計(jì)算系統(tǒng)的人。RIB10代表該信息的用戶實(shí)現(xiàn)對(duì)該信息的永久性存儲(chǔ),從而允許用戶檢索并修改該信息。以下討論描述除提供非復(fù)制信息庫(kù)之外,如何能夠?qū)崿F(xiàn)RIB100。根據(jù)本發(fā)明的實(shí)施例,可以在一個(gè)或多個(gè)服務(wù)器計(jì)算機(jī)上托管RIB100,其中每一個(gè)服務(wù)器計(jì)算機(jī)保持RIB100的復(fù)制品。根據(jù)本發(fā)明的實(shí)施例,服務(wù)器計(jì)算機(jī)可以被配置為托管多于一個(gè)的RIB100。在本發(fā)明的其它實(shí)施例中,可以使用其它硬件布置。RIB100中的信息的單位的RIB實(shí)例(RI)101。RIB100可以具有許多RI101。給定RI101是由一組一個(gè)或多個(gè)屬性(attribute)描述的對(duì)象。每個(gè)此類屬性具有標(biāo)識(shí)符(“屬性類型”),以及一組零個(gè)或更多值。RiAttribute108示出RI101的代表性屬性,其中,RiAttribute108具有類型(例如,實(shí)(real))和一組零個(gè)或更多值(例如,1.2、1.4)。存在用于識(shí)別屬性并對(duì)其值確定類型(type)的方便的抽象語(yǔ)法表示1(ASN.1)結(jié)構(gòu),即TYPE-IDENTIFIER。RiAttribute=SET{typeTYPE-IDENTIFIER.&idvaluesSETOFTYPE-IDENTIFIER.&Type}Ri::=SETSIZE(1..MAX)OFRiAttribute注意本文的討論頻繁地對(duì)抽象語(yǔ)法表示1(ASN.1)表示法(notation)進(jìn)行參考,其特別地描述用于在遠(yuǎn)程通信和計(jì)算機(jī)聯(lián)網(wǎng)系統(tǒng)中對(duì)數(shù)據(jù)進(jìn)行表示、編碼、發(fā)送、和解碼的數(shù)據(jù)結(jié)構(gòu)??梢允褂闷渌硎痉▉?lái)表達(dá)這些思想,且ASN.1的使用意圖是示例性的,而不是限制本文所公開(kāi)的本發(fā)明的范圍。信息模型-RI標(biāo)識(shí)RIB100可能包含多個(gè)RI101。根據(jù)本發(fā)明的實(shí)施例,RI101在它們能夠被標(biāo)識(shí)、特別是唯一地標(biāo)識(shí)時(shí)是有用的。因此,至少,每個(gè)RI101通常具有為其提供唯一標(biāo)識(shí)符的屬性。請(qǐng)注意,根據(jù)本發(fā)明的實(shí)施例,“唯一”通常包括“對(duì)于RIB的使用期限而言”。對(duì)RI101的此擴(kuò)展稱為已標(biāo)識(shí)RI(IRI,IdentifiedRI)102??梢砸訟SN.1表示法用兩種方式對(duì)IRI102進(jìn)行建模。對(duì)IRI102進(jìn)行建模的一種方式要求定義供在RiSET中使用的屬性類型,諸如ri-id-idOBJECTIDENTIFIER={rIB-base-id1}ri-idTYPE-IDENTIFIER={OBJECTIDENTIFIERIDENTIFIEDBYri-id-id}Iri::=Ri(SIZE(1..MAX))(CONSTRAINEDBY{—mustincluderi-id—})對(duì)IRI102進(jìn)行建模的第二方式要求定義明確地包括標(biāo)識(shí)符屬性的新類型,諸如Ri-ID=OBJECTIDENTIFIERIri=SETidentifierRi—ID,attributesRi}在本說(shuō)明書(shū)的其余部分中,使用后一種方法來(lái)對(duì)被添加到RIB100的信息模型的附加屬性進(jìn)行建模。然而,重要的是認(rèn)識(shí)到這主要是為了幫助理解-根本的本體(reality)是簡(jiǎn)單屬性集。根據(jù)本發(fā)明的實(shí)施例,這意味著可以應(yīng)用替換覆蓋(overlay)-如果滿足該替換的約束,則還可以將Ri的Dse類型解釋為Ri的某一其它類型。信息模型_用戶信息、增量和事務(wù)IRI102包含代表(一個(gè)或多個(gè))用戶被保持的信息,且用戶可能希望改變?cè)撔畔?。?dāng)首先創(chuàng)建IRI102時(shí),可能需要將完整的IRI102拷貝到所有復(fù)制品(諸如圖2所示的復(fù)制品201)。根據(jù)本發(fā)明的實(shí)施例,復(fù)制品常常存在于不同的位置,例如在不同的服務(wù)器中。如果隨后對(duì)IRI102進(jìn)行改變,則RIB處理裝置可以僅僅再次拷貝完整的IRI102。然而,這種方法在某些實(shí)施例中可能是困難的。首先,IRI102可能具有任意大小,并且拷貝它們可能具有顯著的帶寬成本。其次,如果不能立即拷貝IRI102(例如,由于通信問(wèn)題),則兩個(gè)或更多復(fù)制品可以獨(dú)立地對(duì)給定IRI102應(yīng)用改變,這通常樣要求后續(xù)的合并。被配置為實(shí)現(xiàn)此合并的RIB程序模塊可能需要比獨(dú)立改變集的最后結(jié)果更多的信息。-部分。因昏目”),或第三,對(duì)用戶信息的任何改變本身可以是有用的信息,因此應(yīng)被視為RIBlOO的此,一個(gè)人可以將IRI102視為一條用戶信息(用戶通常將其視為數(shù)據(jù)庫(kù)中的‘對(duì)一條用戶信息的改變,諸如Entry=IriEntryDelta=SET{identifierRi-ID,transactionRi-ID,entryRi-ID,sequenceRi-IDOPTIONAL,modificationsSETOFRiAttributeModificationOPTIONAL,attributesRiOPTIONALιRiAttributeModification=SEQUENCE{typeTYPE-IDENTIFIER.&idremovedSETOFTYPE-IDENTIFIER.&TypeOPTIONALaddedSETOFTYPE-IDENTIFIER.&TypeOPTIONALqualifiersBITSTRINGOPTIONAL}根據(jù)本發(fā)明的實(shí)施例,在某種意義上,用戶更新局限于IRI102,具體而言是EntryDelta103的創(chuàng)建。當(dāng)用戶希望添加或改變給定條目104時(shí),用戶使用創(chuàng)建EntryDelta103的RIB編程功能。當(dāng)隨后讀取條目104時(shí),它是作為讀取詢問(wèn)的結(jié)果而返回的所有相關(guān)聯(lián)EntryDelta103的有序合并的結(jié)果。RIB100包括確定IRI102的有效性(或無(wú)效性)的規(guī)則。根據(jù)本發(fā)明的實(shí)施例,只允許有效的IRI102進(jìn)入RIB100。此類規(guī)則可以是語(yǔ)法的,應(yīng)用于單獨(dú)屬性的值,或者可以是語(yǔ)義的,且可應(yīng)用于單個(gè)條目104,或多個(gè)條目104。語(yǔ)義規(guī)則的一個(gè)示例可能在條目104(的屬性)之間施以參考完整性。根據(jù)此類規(guī)則,EntryDelta103可能不僅引起對(duì)其被參考條目104的更新,而且引起對(duì)多個(gè)其它條目104的更新。根據(jù)本發(fā)明的實(shí)施例,如果EntryDelta103的內(nèi)容本身有效,但結(jié)果得到的條目104不是有效的,則RIB處理功能不執(zhí)行所請(qǐng)求的改變,且EntryDelta103被拒絕。換言之,EntryDelta103的有效性由其對(duì)相關(guān)聯(lián)條目104的影響來(lái)確定。EntryDelta103的序列屬性允許按順序施加改變。特別地,序列屬性識(shí)別先前所進(jìn)行的改變,如果有的話。當(dāng)創(chuàng)建EntryDelta103時(shí),就其本身,以及其對(duì)被參考的條目104,特別是在序列中的所有先前改變完成時(shí)的條目104的影響這二者得到確認(rèn)。這通過(guò)確認(rèn)采取已經(jīng)執(zhí)行的改變的條目104來(lái)實(shí)現(xiàn)。對(duì)于一致的RIB100而言,條目104和序列屬性的組合通常應(yīng)是唯一的。EntryDelta103中的“修改”描述條目104中的已被修改的屬性集。對(duì)于每個(gè)此類屬性,連同另外描述修改的零個(gè)或更多限定詞(qualifier)—起,列出已經(jīng)添加的值和已經(jīng)去除的值。此類限定詞可能指示屬性已被新添加到條目,或從條目去除,或者可能指示添加值與去除值(例如,增加量)有關(guān)。根據(jù)本發(fā)明的實(shí)施例,EntryDelta103的其它屬性可以包括支持上述合并處理的信息,和/或提供可能對(duì)RIB處理裝置或RIB的用戶有用的其它改變信息。事務(wù)105表示被定義為提供改變IRI102的上下文并允許自動(dòng)地將對(duì)多個(gè)條目的多個(gè)改變進(jìn)行分組和應(yīng)用的第三類型的IRI102。在每個(gè)改變IRI102內(nèi)參考IRI102的事務(wù)105類型。Transaction=SETidentifierRi—ID,clientAddressOCTETSTRING,userstartTimePrintableString,INTEGER,commitTimeINTEGER,attributesRi}根據(jù)本發(fā)明的實(shí)施例,RIB100的用戶通常具有物理地址,且此類用戶通常也是邏輯數(shù)據(jù)庫(kù)的用戶。開(kāi)始時(shí)間是開(kāi)始事務(wù)105的時(shí)間(S卩,創(chuàng)建事務(wù)IRI102的時(shí)間),且提交時(shí)間是向RIB100添加EntryDelta103并更新相關(guān)聯(lián)條目104的時(shí)間。根據(jù)本發(fā)明的實(shí)施例,事務(wù)105的其它屬性可以包括可能對(duì)RIB處理裝置或?qū)IB的用戶有用的任何其它信息。信息模型-X.500信息根據(jù)本發(fā)明的實(shí)施例,RIB100可以被配置為支持X.500目錄。在這個(gè)上下文中,諸如圖2的復(fù)制品201之類的復(fù)制品充當(dāng)目錄系統(tǒng)代理(DSA),且用戶信息可以采取DSA特定條目(DSE)106的形式。因此,能夠?qū)l目104進(jìn)行擴(kuò)展以定義給定DSE106,同樣地,對(duì)EntryDelta103進(jìn)行擴(kuò)展以定義DSEDelta107。Dse=SET{identifierRi-ID,parentRi-IDOPTIONAL,—presentunlessrootrdnRelativeDistinguishedNameOPTIONAL,--presentunlessrootdseTypeDSEType,—seeX.501attributesRi}雙親(parent)和rdn組件一起提供在Χ.501部分23中定義的DSA信息模型中的所謂“隱含構(gòu)造(implicitfabric)”。對(duì)于給定雙親,rdn通常必須是唯一的。屬性組件提供一起構(gòu)成目錄條目、目錄子條目、DSA特定屬性、和DSA共享屬性的屬性集。單獨(dú)屬性被定義為在這些細(xì)分之一中,因此不需要明確的細(xì)分。DseDelta=SET{17identifiertransactiondseRi-ID,Ri-ID,Ri-ID,sequenceRi-IDOPTIONAL,changedParentRiAttributeModificationOPTIONAL,changedRdnRiAttributeModificationOPTIONAL,changedDseTypeRiAttributeModificationOPTIONAL,modificationsSETOFRiAttributeModificationOPTIONAL,attributesRiOPTIONAL}復(fù)制模型圖2示出根據(jù)本發(fā)明的實(shí)施例的復(fù)制模型。作為RIB100的完整副本的復(fù)制品201可以與其他復(fù)制品具有多個(gè)復(fù)制協(xié)議202。每個(gè)此類復(fù)制協(xié)議202是在一對(duì)復(fù)制品201之間。當(dāng)新復(fù)制品201被添加到RIB100時(shí),接著可以在新復(fù)制品201和每個(gè)現(xiàn)有復(fù)制品之間創(chuàng)建復(fù)制協(xié)議202。如在圖3中進(jìn)一步討論的那樣,每個(gè)復(fù)制品201在任何給定時(shí)間具有特定狀態(tài),并且如在圖4中進(jìn)一步討論的那樣,每個(gè)復(fù)制協(xié)議202也具有特定狀態(tài)。如果IRI102已被成功地拷貝到復(fù)制品201(包括該復(fù)制品是始發(fā)(originating)復(fù)制品),則將IRI102說(shuō)成是在復(fù)制品201處同步。如果IRI102未被成功地拷貝到復(fù)制品201,在將其說(shuō)成是“違反”任何一對(duì)復(fù)制品之間的復(fù)制協(xié)議202,其中,復(fù)制品之一具有IRI102的副本,且另一復(fù)制品不具有IRI102的副本。根據(jù)本發(fā)明的實(shí)施例,僅針對(duì)沒(méi)有違反復(fù)制協(xié)議202的那些IRI102進(jìn)行復(fù)制嘗試。一旦已經(jīng)違反復(fù)制協(xié)議202,則由同步處理負(fù)責(zé)相對(duì)于IRI102來(lái)修復(fù)復(fù)制協(xié)議202。圖3示出根據(jù)本發(fā)明的實(shí)施例的圖2所示的復(fù)制協(xié)議202的代表性狀態(tài)。復(fù)制協(xié)議202在任何給定時(shí)間具有一種狀態(tài),其可以是初始化301、活動(dòng)302、不活動(dòng)303、或恢復(fù)304之一。復(fù)制協(xié)議202在創(chuàng)建時(shí)獲得初始化狀態(tài)301并保持此狀態(tài)直至復(fù)制品201已第一次實(shí)現(xiàn)同步(“初始同步完成”)為止,這時(shí),復(fù)制協(xié)議202獲得活動(dòng)狀態(tài)302。根據(jù)本發(fā)明的實(shí)施例,可以由同步模塊來(lái)支持同步。根據(jù)本發(fā)明的實(shí)施例,同步模塊可以連同本文所述的其它組件一起位于服務(wù)器上。在活動(dòng)狀態(tài)302下,如果條目104實(shí)例在與協(xié)議相關(guān)聯(lián)的另一復(fù)制品處是同步的,則可以復(fù)制新EntryDelta103。而且,在此狀態(tài)下,可以針對(duì)違反復(fù)制協(xié)議202的任何條目嘗試條目同步。根據(jù)本發(fā)明的實(shí)施例,復(fù)制協(xié)議202還在成功恢復(fù)時(shí)重新獲得活動(dòng)狀態(tài)302。復(fù)制協(xié)議202可以在諸如復(fù)制品之間的通信丟失之類的失敗時(shí)或恢復(fù)失敗時(shí)獲得不活動(dòng)狀態(tài)303。根據(jù)本發(fā)明的實(shí)施例,在不活動(dòng)狀態(tài)303下,不復(fù)制新EntryDelta103。根據(jù)本發(fā)明的實(shí)施例,新復(fù)制品201的遷移(population)是在不活動(dòng)狀態(tài)303下嘗試的唯一同步形式。在恢復(fù)狀態(tài)304下,不復(fù)制新EntryDelta103,這是因?yàn)榛謴?fù)同步正在進(jìn)行中。當(dāng)在復(fù)制品之間建立通信時(shí),或者如果活動(dòng)協(xié)議由于違反協(xié)議的單獨(dú)條目104的數(shù)目而不再被視為可行,則進(jìn)入恢復(fù)狀態(tài)304。圖4示出根據(jù)本發(fā)明的實(shí)施例的復(fù)制品201在任何實(shí)例處也具有給定狀態(tài)。復(fù)制品201的狀態(tài)可以是初始化401、隔離402、部分同步403、或同步404之一。新復(fù)制品201獲得初始化狀態(tài)401并通常保持處于該狀態(tài),直至所有其復(fù)制協(xié)議202第一次是活動(dòng)的為止,這時(shí),復(fù)制品201進(jìn)入同步狀態(tài)403。在同步狀態(tài)404下,所有復(fù)制協(xié)議都是活動(dòng)的。在隔離狀態(tài)402下,用于復(fù)制品201的所有復(fù)制協(xié)議都是不活動(dòng)的或正在恢復(fù)。例如,復(fù)制協(xié)議202處于圖3所示的不活動(dòng)狀態(tài)303或恢復(fù)狀態(tài)304。在部分同步狀態(tài)403下,至少一個(gè)復(fù)制協(xié)議202是活動(dòng)的,且至少一個(gè)復(fù)制協(xié)議202是不活動(dòng)的或正在恢復(fù)。復(fù)制和同步示例本示例集中于一段時(shí)間內(nèi)的單個(gè)條目501,被示出為條目501a501f,在此期間,應(yīng)用多個(gè)EntryDelta502a502g。圖5示出作為RIB(例如,RIB100)中的單獨(dú)實(shí)例的條目501的每個(gè)“版本”,由其自己的id和相關(guān)聯(lián)EntryDelta502的組合唯一地標(biāo)識(shí)。圖5中的時(shí)間軸是從左到右。在任一時(shí)刻,每個(gè)復(fù)制品503a503c保持條目501的單個(gè)“當(dāng)前”版本,其與被保持在該復(fù)制品處的最新EntryDelta502相關(guān)聯(lián)。為了簡(jiǎn)化該圖,將IRI102與復(fù)制品503a503c之間的“同步”關(guān)聯(lián)示出為"synch(同步)”屬性的值,而不是實(shí)例之間的線。圖5從最左邊的條目501a和負(fù)責(zé)條目501a的內(nèi)容的相關(guān)聯(lián)EntryDeltaDl502a開(kāi)始。這里,EntryDelta502a被成功地拷貝到所有復(fù)制品503a503c,因此EntryDelta502a和條目501a在所有復(fù)制品503a503c處是同步的。隨后,向RIB100添加第二EntryDelta502b,得至Ij條目501的新版本。如EntryDelta502a的情況一樣,EntryDelta502b被成功地拷貝到全部三個(gè)復(fù)制品503a503c。例如,然后在復(fù)制品503a處接收到第三EntryDelta502c,且其被成功地拷貝到復(fù)制品503b,但由于通信失敗而不能被拷貝到復(fù)制品503a。結(jié)果是條目501c違反503a-503c和503b_503c復(fù)制協(xié)議。通常需要同步來(lái)解決此違反。在復(fù)制品503c處接收到第四EntryDelta502d,但仍存在通信問(wèn)題,因此其不能被拷貝到復(fù)制品503a或復(fù)制品503b。如前所述,結(jié)果是結(jié)果得到的條目501d不與復(fù)制品503a或復(fù)制品503b同步。在這里,存在兩個(gè)EntryDelta,EntryDelta502c禾口EntryDelta502d,其具有用于條目501的“相同的”條目對(duì)和序列屬性。這意味著即使已經(jīng)恢復(fù)通信以便可以將EntryDelta502d拷貝到復(fù)制品503a和復(fù)制品503b,那兩個(gè)復(fù)制品也將不能接受EntryDelta502d,因?yàn)檫@樣做將違反一對(duì)必須是唯一的這一原則。在復(fù)制品503b處接收到第五EntryDelta502e,且即使現(xiàn)在已經(jīng)恢復(fù)了到復(fù)制品503c的通信,也不存在將EntryDelta502e拷貝到復(fù)制品503c的嘗試,因?yàn)闂l目501(501c)的當(dāng)前版本不與復(fù)制品503c同步。因此,EntryDelta502e和條目501e僅僅與復(fù)制品503a和復(fù)制品503c同步。通信的恢復(fù)發(fā)起了與RIB100相關(guān)聯(lián)的同步處理,對(duì)于條目501而言,其包括不同“當(dāng)前”版本(501d和501e)的調(diào)解或合并。同步得到兩個(gè)新EntryDelta,EntryDelta502g和EntryDelta502f,其獨(dú)立地更新條目501d和501e以提供單個(gè)共用版本(commonversion)(501f),其因此在全部的503a503c處是同步的。如果不存在EntryDelta502d,則EntryDelta502g是EntryDelta502c與EntryDelta502e的組合,且EntryDelta502f是無(wú)效更新(nullupdate)。請(qǐng)注意,根據(jù)本發(fā)明的實(shí)施例,在這種情況下仍可以創(chuàng)建EntryDelta502f,因?yàn)閺?fù)制品503a和復(fù)制品503b上的條目501的版本已經(jīng)改變-特別地,同步屬性具有503c的新值。復(fù)制處理復(fù)制是用來(lái)進(jìn)行IRI102的拷貝以便諸如圖5所示的復(fù)制品503a503c之類的19每個(gè)復(fù)制品具有完整且最新的RIB100的手段。到外部用戶得知對(duì)RIB100的任何請(qǐng)求改變的成功(或失敗)時(shí),RIB100的所有復(fù)制品完全反映該改變。根據(jù)本發(fā)明的實(shí)施例,這通過(guò)使用兩階段方法來(lái)實(shí)現(xiàn)。首先,根據(jù)本發(fā)明的實(shí)施例,在事務(wù)的范圍內(nèi),在所有復(fù)制品處進(jìn)行改變。當(dāng)所有復(fù)制品所接受該改變時(shí),再次在事務(wù)的范圍內(nèi),向外部用戶告知更新的成功。最后,當(dāng)外部用戶請(qǐng)求提交該事務(wù)時(shí),該改變被“同時(shí)地”或“并發(fā)地”應(yīng)用于或提交給每個(gè)復(fù)制品處的RIB100,以便其在事務(wù)范圍之外可見(jiàn)。相對(duì)于IRI102考慮以上過(guò)程,三個(gè)子類(條目104、EntryDelta103、和事務(wù)105)需要不同的復(fù)制處理以保證RIB100的正確性-特別是在可以同時(shí)對(duì)多個(gè)復(fù)制品進(jìn)行改變的情況下。根據(jù)本發(fā)明的實(shí)施例,三個(gè)子類中最簡(jiǎn)單的是事務(wù)105,其被簡(jiǎn)單地拷貝-外部RIB100用戶必須保證唯一性。根據(jù)本發(fā)明的實(shí)施例,條目類型104的IRI未被明確地拷貝。作為替代,根據(jù)本發(fā)明的實(shí)施例,所述拷貝通過(guò)在每個(gè)復(fù)制品(例如,圖5所示的復(fù)制品503a503c)處本地地應(yīng)用拷貝的EntryDelta103來(lái)實(shí)現(xiàn)。根據(jù)本發(fā)明的實(shí)施例,對(duì)于EntryDelta103而言,條目和序列屬性的組合必須是唯一的。因此,應(yīng)保證如果在兩個(gè)復(fù)制品上同時(shí)創(chuàng)建具有共用條目104的兩個(gè)EntryDelta103實(shí)例,則其被正確地定序。這可以通過(guò)采用下述同步處理來(lái)執(zhí)行,因?yàn)闊o(wú)論如何其在通信失敗的情況下可能是必要的。然而,根據(jù)本發(fā)明的實(shí)施例,當(dāng)通信可用時(shí),為了獲得效率和性能,一種優(yōu)選方法包括使用鎖定,并在必要時(shí)使用重試機(jī)制。以下序列圖考慮許多條件下的EntryDelta103實(shí)例的復(fù)制,以便研究鎖定和重試機(jī)制的實(shí)施例。最初示出并然后采用事務(wù)105的復(fù)制。以下示例對(duì)被EntryUpdate(條目更新)更新的單個(gè)條目104實(shí)例進(jìn)行建模,而不是引起條目104的新版本的創(chuàng)建。這種方法允許表示對(duì)條目104的鎖定,雖然當(dāng)然可以對(duì)其中存在每個(gè)版本的實(shí)例的等價(jià)物進(jìn)行建模。復(fù)制方法/模塊如圖6所示,根據(jù)本發(fā)明的實(shí)施例,描述對(duì)諸如事務(wù)601、EntryDelta602、條目603和RIB100604等類的依照許多方法的復(fù)制處理。根據(jù)本發(fā)明的實(shí)施例,本文所述的方法還服從作為例如硬件模塊和/或軟件模塊等一系列模塊的實(shí)施方式。根據(jù)本發(fā)明的實(shí)施例,所述方法/模塊服從一個(gè)或多個(gè)計(jì)算機(jī)上的操作。事各方法/樽塊事務(wù)601的實(shí)施例包括以下方法。根據(jù)本發(fā)明的實(shí)施例,本文所述的方法還服從作為例如硬件模塊和/或軟件模塊等一系列模塊的實(shí)施方式。根據(jù)本發(fā)明的實(shí)施例,所述方法/模塊服從一個(gè)或多個(gè)計(jì)算機(jī)上的操作。addDeltaO方法向正在進(jìn)行的事務(wù)601中添加新EntryDelta602實(shí)例。這種方法用來(lái)在起始復(fù)制品上創(chuàng)建EntryDelta602,并在復(fù)制品(諸如圖5所示的復(fù)制品503a503c)之間將其拷貝。deItaOKO方法允許EntryDelta602實(shí)例向事務(wù)602指示其認(rèn)為其本身是有效的?!氨豢截惖降摹睆?fù)制品上的事務(wù)601實(shí)例同樣使用該方法來(lái)向事務(wù)602的始發(fā)副本回向指示關(guān)于被拷貝的EntryDelta602的相同信息。noLockO方法允許EntryDelta602實(shí)例向事務(wù)601指示其不能獲得用于被參考條目603的鎖定?!氨豢截惖降摹睆?fù)制品上的事務(wù)601實(shí)例同樣使用該方法來(lái)對(duì)事務(wù)601的始發(fā)副本回向進(jìn)行指示。commit()方法用信號(hào)通知事務(wù)完成并應(yīng)被提交。根據(jù)本發(fā)明的實(shí)施例,始發(fā)復(fù)制品上的事務(wù)601調(diào)用所有復(fù)制品副本上的commit()。rollback()用信號(hào)通知事務(wù)已完成,但應(yīng)被回退(rollback)(即,不應(yīng)用)。始發(fā)復(fù)制品上的事務(wù)601調(diào)用所有副本上的rollbackO。abandon()方法允許始發(fā)復(fù)制品上的事務(wù)601用信號(hào)通知事務(wù)601副本其已放棄(abandon)EntryDelta602,因?yàn)槠湮茨塬@得用于被參考條目603的鎖定。EntryDelta方法/樽塊EntryDelta602的實(shí)施例包括以下方法/模塊。根據(jù)本發(fā)明的實(shí)施例,本文所述的方法還服從作為例如硬件模塊和/或軟件模塊等一系列模塊的實(shí)施方式。根據(jù)本發(fā)明的實(shí)施例,所述方法/模塊服從一個(gè)或多個(gè)計(jì)算機(jī)上的操作。apply()方法命令EntryDelta602將其本身應(yīng)用于RIB604。abandon()方法命令EntryDelta602放棄更新并將其本身毀壞。IockedO方法允許相關(guān)聯(lián)條目603指示其被成功地鎖定。queued()方法允許相關(guān)聯(lián)條目603指示其鎖定嘗試已經(jīng)被排隊(duì),因?yàn)橐严蛄硪籈ntryDelta602許可鎖定。條目方法/模塊條目603的實(shí)施例包括以下方法/模塊。根據(jù)本發(fā)明的實(shí)施例,本文所述的方法還服從作為例如硬件模塊和/或軟件模塊等一系列模塊的實(shí)施方式。根據(jù)本發(fā)明的實(shí)施例,所述方法/模塊服從一個(gè)或多個(gè)計(jì)算機(jī)上的操作。IockO方法命令條目603針對(duì)特定的EntryDelta602實(shí)例將其本身鎖定,以使得不能將其它EntryDelta602實(shí)例應(yīng)用于條目603的該版本。請(qǐng)注意,來(lái)自此方法的響應(yīng)是EntryDelta602的IockedO或queuedO方法且在圖中已被表示為異步。然而,根據(jù)本發(fā)明的實(shí)施例,在許多情況下可以使用此方法的同步結(jié)果代碼來(lái)以高效的方式影響相同的邏輯。unlock()方法命令條目603將其本身解鎖。RIB方法/模塊add()方法允許向其本身添加EntryDelta602并將條目603的其相關(guān)聯(lián)版本添加到RIB604中,以使得其變得在事務(wù)之外可見(jiàn)。根據(jù)本發(fā)明的實(shí)施例,本文所述的方法還服從作為例如硬件模塊和/或軟件模塊等一系列模塊的實(shí)施方式。根據(jù)本發(fā)明的實(shí)施例,所述方法/模塊服從一個(gè)或多個(gè)計(jì)算機(jī)上的操作。沒(méi)有競(jìng)爭(zhēng)的更新圖7示出根據(jù)本發(fā)明的實(shí)施例的沒(méi)有競(jìng)爭(zhēng)的RIB的更新。要考慮的第一種情形是最簡(jiǎn)單的,其中不存在對(duì)鎖定的競(jìng)爭(zhēng)??梢灶A(yù)期,在RIB(諸如圖1所示的RIB100中,具有許多條目104實(shí)例)中,這將是“正?!碧幚恚?yàn)槠鋵?duì)于將在多于一個(gè)的EntryDelta103中同時(shí)參考的相同條目104實(shí)例而言可能是罕有的。根據(jù)本發(fā)明的實(shí)施例,圖7中的序列圖示出在此第一情形中涉及的兩個(gè)復(fù)制品上的(副本)實(shí)例。事務(wù)601a已在與RIB604a相關(guān)聯(lián)的一個(gè)復(fù)制品中被創(chuàng)建,并在與RIB604b相關(guān)聯(lián)的第二復(fù)制品中創(chuàng)建其自身的副本(步驟701)。擁有該事務(wù)的外部用戶請(qǐng)求添加EntryDelta602a(步驟702)。在始發(fā)復(fù)制品上創(chuàng)建EntryDelta602a(步驟703)。EntryDelta602a將條目603a鎖定(步驟704)。該鎖定立即成功(步驟705)。針對(duì)條目603a來(lái)確認(rèn)EntryDelta602a,并將其視為有效的(步驟706)。將EntryDelta602a拷貝到復(fù)制品事務(wù)601b(步驟707)。創(chuàng)建EntryDelta602b副本(步驟708)。EntryDelta602b副本將該復(fù)制品上的條目603b的副本鎖定(步驟709)。該鎖定立即成功(步驟710)。將EntryDeltal03副本視為有效的(步驟711)。用信號(hào)向事務(wù)的原始副本通知該有效性(步驟712)。EntryDelta602a和副本EntryDelta602b兩者是有效的,因此,可以將該成功告知請(qǐng)求實(shí)體(步驟713)。在稍后的時(shí)間,請(qǐng)求實(shí)體提交該事務(wù)(步驟714)。提交事務(wù)副本(步驟715)。應(yīng)用EntryDelta602a(步驟716)。應(yīng)用EntryDelta602b副本(步驟717)。將EntryDelta602a添加到RIB604a中(即,使其可見(jiàn))(步驟718)。將EntryDelta602b副本添加到RIB604b中(即,使其可見(jiàn))(步驟719)。將條目603a解鎖(步驟720)。將條目603b副本解鎖(步驟721)。通知外部用戶該事務(wù)已經(jīng)被成功提交(步驟722)。多個(gè)復(fù)制品上的同時(shí)更新_無(wú)死鎖圖8示出根據(jù)本發(fā)明的實(shí)施例的如果在不同事務(wù)601a601b中同時(shí)創(chuàng)建參考同一條目603a的兩個(gè)EntryDelta602a602b則會(huì)發(fā)生的情況。如果在同一復(fù)制品中(例如在RIB604a中)發(fā)起兩個(gè)事務(wù)601a601b,則通常發(fā)生排隊(duì),因?yàn)闂l目603a的同一副本被鎖定。然而,如果在不同的復(fù)制品中(例如在RIB604a和RIB604b中)發(fā)起事務(wù)601a601b,則存在死鎖的可能性。根據(jù)本發(fā)明的實(shí)施例,圖8的序列圖示出簡(jiǎn)單地通過(guò)處理的排序來(lái)避免死鎖的情況。請(qǐng)注意,僅示出用于復(fù)制品之一的實(shí)例。從始發(fā)復(fù)制品拷貝用于事務(wù)601a的EntryDelta602a(步驟801)。(注意此步驟類似于圖7中的步驟707)。同時(shí),擁有事務(wù)601b的外部用戶請(qǐng)求添加EntryDelta602b(步驟802)。創(chuàng)建用于事務(wù)601a的EntryDelta602a副本(步驟803)。創(chuàng)建用于事務(wù)601b的EntryDelta602b(步驟804)。用于事務(wù)601a的EntryDelta602a副本將條目603a副本鎖定(步驟805)。該鎖定立即成功(步驟806)。將用于事務(wù)601a的EntryDelta602a副本視為有效的(步驟807)。用信號(hào)向原始事務(wù)通知該有效性(步驟808)。用于事務(wù)601b的EntryDelta602b將條目603a副本鎖定(步驟809)。使鎖定請(qǐng)求排隊(duì)(步驟810)。EntryDelta602b等待鎖定得到許可。提交事務(wù)601a的副本(步驟811)。應(yīng)用用于事務(wù)601a的EntryDelta602a副本(步驟812)。將條目603a副本解鎖(步驟813)。對(duì)用于事務(wù)601b的EntryDelta602b許可鎖定(步驟814)。將用于事務(wù)B的EntryDelta602b視為有效的(步驟815)。這里的確認(rèn)包括起因于事務(wù)601a的EntryDelta602a的任何改變。根據(jù)本發(fā)明的實(shí)施例,處理可以按照前一序列繼續(xù)。多個(gè)復(fù)制品上的同時(shí)更新_死鎖圖910示出根據(jù)本發(fā)明的實(shí)施例的其中通過(guò)處理的排序不能避免死鎖、從而必22須采取附加動(dòng)作的情況。圖9示出發(fā)起事務(wù)601a的復(fù)制品,且圖10示出發(fā)起事務(wù)601b的復(fù)制品??刂剖聞?wù)601a的外部用戶請(qǐng)求添加EntryDelta602a(步驟901)。從始發(fā)復(fù)制品拷貝用于事務(wù)601b的EntryDelta602b(步驟902)。創(chuàng)建用于事務(wù)601a的EntryDelta602a(步驟903)。創(chuàng)建用于事務(wù)601b的EntryDelta904副本(步驟904)。用于事務(wù)601a的EntryDelta602a將條目603a鎖定(步驟905)。該鎖定立即成功(步驟906)。針對(duì)條目603a來(lái)確認(rèn)用于事務(wù)601a的EntryDelta602a,并將其視為有效的(步驟907)。將EntryDelta602a拷貝到復(fù)制品事務(wù)601a(步驟908)。用于事務(wù)601b的EntryDelta602b副本將條目603a鎖定(步驟909)。使鎖定請(qǐng)求排隊(duì)(步驟910)。用于事務(wù)601b的EntryDelta602b副本應(yīng)用規(guī)則(諸如下文所討論的規(guī)則)并確定其是否應(yīng)放棄排隊(duì)的鎖定,并就此對(duì)事務(wù)601b進(jìn)行指示(步驟911)。撤消鎖定請(qǐng)求(步驟912)。用信號(hào)向原始事務(wù)601b通知失敗的鎖定(步驟913)。作為在事務(wù)601b中處理的失敗鎖定的結(jié)果,事務(wù)601a可以在遠(yuǎn)程復(fù)制品上進(jìn)行,如針對(duì)下文的序列所描述的那樣(步驟914)。最后結(jié)果是用于事務(wù)A的EntryDelta103在所有復(fù)制品處被視為有效的。將該成功告知請(qǐng)求實(shí)體(步驟915)。在稍后的某一點(diǎn),請(qǐng)求實(shí)體提交該事務(wù)(步驟916)。提交事務(wù)副本(步驟917)。應(yīng)用EntryDelta602a(步驟918)。將條目603a解鎖(步驟919)。在這里,如在下文的序列中描述的那樣,可以重新嘗試用于事務(wù)601b的EntryDelta602b。圖10示出根據(jù)本發(fā)明的實(shí)施例的發(fā)起事務(wù)601b的復(fù)制品。從始發(fā)復(fù)制品拷貝用于事務(wù)601a的EntryDelta602a(步驟1001)。擁有事務(wù)601b的外部用戶請(qǐng)求添加EntryDelta602b(步驟1002)。創(chuàng)建用于事務(wù)601a的EntryDelta602a副本(步驟1003)。創(chuàng)建用于事務(wù)601b的EntryDelta602b(步驟1004)。用于事務(wù)601b的EntryDelta602b將條目603a鎖定(步驟1005)。該鎖定立即成功(步驟1006)。針對(duì)條目603a來(lái)確認(rèn)用于事務(wù)601b的EntryDelta602b,并將其視為有效的(步驟1007)。將用于事務(wù)601B的EntryDelta602b拷貝到復(fù)制品事務(wù)601b(步驟1008)。用于事務(wù)601a的EntryDelta602a副本將條目603a鎖定(步驟1009)。使鎖定請(qǐng)求排隊(duì)(步驟1010)。用于事務(wù)601a的EntryDelta602a副本應(yīng)用與在前一序列中相同的規(guī)則,但這次,結(jié)果是等待鎖定。從其它復(fù)制品接收失敗的鎖定指示(步驟1011)。事務(wù)放棄EntryDelta602b,以便對(duì)其進(jìn)行重新嘗試(步驟1012)。將條目603a解鎖(步驟1013)。對(duì)用于事務(wù)601a的EntryDelta602a許可排隊(duì)的鎖定(步驟1014)。針對(duì)條目603a來(lái)確認(rèn)用于事務(wù)601a的EntryDelta602a副本,并將其視為有效的(步驟1015)。用信號(hào)向原始事務(wù)通知該有效性(步驟1016)。創(chuàng)建用于事務(wù)601b的第二EntryDelta602c(即,對(duì)其進(jìn)行重新嘗試)(步驟1017)。用于事務(wù)601b的第二EntryDelta602c將條目603a鎖定(步驟1018)。使鎖定請(qǐng)求排隊(duì)(步驟1019)。提交事務(wù)601a的副本(步驟1020)。應(yīng)用用于事務(wù)601a的EntryDelta602a副本(步驟1021)。將條目603a副本解鎖(步驟1022)。對(duì)用于事務(wù)601b的第二EntryDelta602c許可排隊(duì)的鎖定(步驟1023)。將用于事務(wù)601b的EntryDelta602c視為有效的(步驟1024)。這里的確認(rèn)通常包括起因于事務(wù)601a的EntryDelta602a的任何改變。EntryDelta602c的處理如前所述的那樣繼續(xù)。在以上說(shuō)明中對(duì)可以由EntryDelta103副本在鎖定排隊(duì)以判定是等待還是放棄EntryDelta103并從開(kāi)始部分進(jìn)行重新嘗試時(shí)應(yīng)用的規(guī)則進(jìn)行了參考。根據(jù)本發(fā)明的實(shí)施例,對(duì)于給定事務(wù)而言,規(guī)則的結(jié)果在所有復(fù)制品上(無(wú)論存在多少)應(yīng)是相同的,以保證EntryDelta103的成功連續(xù)化(serialization)??赡軕?yīng)用的兩個(gè)可能規(guī)則如下-向每個(gè)復(fù)制品分配唯一的整數(shù)標(biāo)識(shí)符。如果始發(fā)復(fù)制品的標(biāo)識(shí)符小于具有鎖定的EntryDelta103的始發(fā)復(fù)制品的標(biāo)識(shí)符,則等待。否則放棄。-向每個(gè)外部用戶分配“優(yōu)先級(jí)”。如果擁有事務(wù)的用戶的優(yōu)先級(jí)大于擁有事務(wù)(該事務(wù)帶有具有鎖定的EntryDelta103)的用戶的優(yōu)先級(jí),則等待。否則放棄。如果對(duì)于兩個(gè)事務(wù)而言是同一用戶,則回到前一規(guī)則。圖1112示出根據(jù)本發(fā)明的實(shí)施例的在給定圖910所示的兩個(gè)序列的情況下第三和第四復(fù)制品的動(dòng)作。在圖11中,在第三復(fù)制品處,事務(wù)602a的EntryDelta602a在用于事務(wù)602b的EntryDelta602b之前獲得鎖定。這意味著當(dāng)在步驟1010處應(yīng)用等待/放棄規(guī)則時(shí),進(jìn)行“正確”判定以便在事務(wù)601b情況下后退。然而,在圖12中,在第四復(fù)制品處,用于事務(wù)601b的EntryDelta602b在用于事務(wù)601a的EntryDelta602a之前獲得鎖定。當(dāng)在步驟101處應(yīng)用等待/放棄規(guī)則時(shí),再次地,進(jìn)行正確判定,這次將等待鎖定。隨后,放棄事務(wù)601b的EntryDelta602b,解除鎖定以允許事務(wù)601a情況進(jìn)行至完成。請(qǐng)注意,根據(jù)本發(fā)明的實(shí)施例,將由事務(wù)601b實(shí)例在圖10所示的序列的步驟1011處生成步驟1211處的放棄。同步處理可能不是始終可以成功地執(zhí)行復(fù)制品之間的實(shí)時(shí)復(fù)制。例如,如果在一個(gè)或多個(gè)復(fù)制品之間丟失通信,則很明顯,復(fù)制是不可能的。在此期間防止對(duì)RIB100的改變是不可接受的,因此,將可能存在IRI102,或IRI102的版本,其存在于某些復(fù)制品中,而在其它復(fù)制品中沒(méi)有。同步是可以用來(lái)在不具有丟失的IRI102的副本的復(fù)制品處實(shí)現(xiàn)所述副本、且可以修正不一致性以便不再違反復(fù)制協(xié)議202的手段。要求同步的情形圖1315示出根據(jù)本發(fā)明的實(shí)施例的要求同步的兩個(gè)示例。圖13示出根據(jù)本發(fā)明的實(shí)施例的由于不活動(dòng)復(fù)制協(xié)議而要求同步的情形。在圖13中,復(fù)制品1307與復(fù)制品1309相互已經(jīng)丟失通信,但兩者都仍在與復(fù)制品1301通信。結(jié)果,僅僅B-C復(fù)制協(xié)議1311是不活動(dòng)的。復(fù)制品1301具有所有更新的副本;復(fù)制品1307失去來(lái)自復(fù)制品1309的更新,且反之亦然。當(dāng)隨后通信鏈路恢復(fù)時(shí),通常必須在復(fù)制品1307與復(fù)制品1309之間執(zhí)行恢復(fù)同止少ο圖14示出根據(jù)本發(fā)明的實(shí)施例的由于隔離復(fù)制品而要求同步的情形。在圖14中,復(fù)制品1409已丟失與復(fù)制品1401和復(fù)制品1407兩者的通信。假設(shè)所述復(fù)制品位于不同的地點(diǎn),則這通常表示復(fù)制品1409所在的地點(diǎn)處的地點(diǎn)通信失敗。結(jié)果,涉及復(fù)制品1409的兩個(gè)復(fù)制協(xié)議(A-C復(fù)制協(xié)議1405和B-C復(fù)制協(xié)議1411)都已變成不活動(dòng)的,且復(fù)制品1409被隔離。A-B復(fù)制協(xié)議1403不存在問(wèn)題,因此,復(fù)制品1401和1407兩者都具有其自己的副本和彼此的更新,并且兩者都不具有復(fù)制品1409的更新的副本。當(dāng)通信恢復(fù)時(shí),兩個(gè)不活動(dòng)的協(xié)議(A-C復(fù)制協(xié)議1405和B-C復(fù)制協(xié)議1411)進(jìn)入恢復(fù)狀態(tài),并且通常將對(duì)兩者執(zhí)行恢復(fù)同步。原則上,這些可以依次地或并行地執(zhí)行。根據(jù)本發(fā)明的實(shí)施例,在復(fù)制品1409上并行地執(zhí)行兩個(gè)同步是更高效的,因此可以在一遍中將其全部執(zhí)行。圖15示出根據(jù)本發(fā)明的實(shí)施例的由于同步復(fù)制品而要求同步的情形。在圖15中,全部三個(gè)復(fù)制品1501、1507和1509是同步的,且復(fù)制協(xié)議1503、1505、和1511是活動(dòng)的。然而,在復(fù)制品1507和1509處存在未被成功地拷貝到復(fù)制品1501的EntryDelta1515,因此,相關(guān)聯(lián)條目1513僅僅在復(fù)制品1507和復(fù)制品1509處同步。此失敗可能起因于暫時(shí)通信小故障,或者可能是由于在恢復(fù)處理期間遇到的不能協(xié)調(diào)的差異。在這種狀態(tài)下,通常在復(fù)制品1507、1509之間拷貝在復(fù)制品1507或1509處接收到的用于條目1513實(shí)例的任何新EntryDelta1515。同樣地,通常不將在復(fù)制品1501處接收到的用于條目1513實(shí)例的新EntryDelta1515拷貝到復(fù)制品1507或復(fù)制品1509。根據(jù)本發(fā)明的實(shí)施例,通常需要條目同步來(lái)解決此差異?;謴?fù)同步恢復(fù)同步是在復(fù)制協(xié)議處于恢復(fù)狀態(tài)時(shí)執(zhí)行的處理。簡(jiǎn)單地說(shuō),同步僅僅是拷貝并應(yīng)用丟失的IRI102的情況。實(shí)際上,對(duì)于被“保證”是唯一的事務(wù)105而言是這樣。條目104和EntryDelta103IRI出現(xiàn)困難,因?yàn)槿绻鼈儶?dú)立地在兩個(gè)或更多復(fù)制品上被創(chuàng)建,則在它們之間可能存在可能不相容的關(guān)聯(lián)。在條目104、特別是DSE106的情況下,存在rdn和雙親組合是唯一的這一要求。同樣地,在EntryDelta103的情況下,存在條目和序列對(duì)是唯一的這一要求。根據(jù)本發(fā)明的實(shí)施例,可以以兩種方式對(duì)用于EntryDelta103的同步過(guò)程進(jìn)行建模,暫時(shí)將任何不相容性解決方案放在一邊。如先前所述,第一選擇是拷貝丟失的EntryDelta103。第二選擇是在復(fù)制品上創(chuàng)建新的EntryDelta103,所述復(fù)制品丟失副本,且對(duì)用戶信息具有相同影響,但允許有實(shí)際上已應(yīng)用于復(fù)制品的不同更新的跟蹤能力。因此,例如,在通信中斷期間創(chuàng)建的復(fù)制品(諸如圖15所示的復(fù)制品1501)上的多個(gè)EntryDelta103可能引起在另一復(fù)制品(諸如圖15所示的復(fù)制品1507)上的單個(gè)EntryDelta103的創(chuàng)建作為同步過(guò)程的一部分。如果EntryDelta103包括列出其被成功地拷貝到的復(fù)制品的“同步”屬性,第二選擇還意味著此屬性不必在同步期間更新。由同步處理創(chuàng)建的EntryDelta通常服從必須被滿足以保證該EntryDelta有效的多個(gè)規(guī)則。很明顯,同步通常要求有效的EntryDelta,但如上所述,可能存在不能被過(guò)分簡(jiǎn)單化地組合的獨(dú)立EntryDelta的組合而無(wú)需結(jié)果得到的EntryDelta無(wú)效。換言之,原始EntryDelta是不相容的。在這種情況下,根據(jù)本發(fā)明的實(shí)施例,可以采用下文討論的附加合并規(guī)則來(lái)調(diào)整同步EntryDelta以使它們有效。還可以提供可擴(kuò)展機(jī)制,由此可以將與條目104相關(guān)聯(lián)的全套EntryDelta103轉(zhuǎn)發(fā)到外部系統(tǒng),所述外部系統(tǒng)可以應(yīng)用專用規(guī)則來(lái)得到合并的EntryDelta。應(yīng)注意所得到的EntryDelta103的使用,因?yàn)檫@意味著跨越多個(gè)條目104實(shí)例被應(yīng)用在特定復(fù)制品上的更新可能在同步期間實(shí)際上是按照不同的次序應(yīng)用的。如果在條目104實(shí)例之間存在依賴性,例如,如果參考完整性得到支持,則這些依賴性可能斷開(kāi)。同步服各器在某些實(shí)施例中,RIB100可以具有同步服務(wù)器,其為僅在所有復(fù)制品處于通信狀態(tài)時(shí)才被更新的復(fù)制品。因此,服務(wù)器將僅包含已知已被成功地拷貝到所有復(fù)制品的IRI102。然而,本實(shí)施例有些理想化,也可以采用其它更實(shí)際的配置。當(dāng)在通信中斷之后需要同步時(shí),按照嚴(yán)格的時(shí)間順序?qū)ntryDelta103應(yīng)用于同步服務(wù)器,以便例如可以保持參考完整性。如果不能在不破壞規(guī)則的情況下應(yīng)用更新,則存在兩種可能性,即,不應(yīng)用更新,或者即使其破壞規(guī)則也應(yīng)用該更新。根據(jù)單獨(dú)的環(huán)境,可能需要這些可能性的組合。總之,應(yīng)使用日志來(lái)記錄先前接受的“回退的”EntryDelta103或現(xiàn)在違反某些規(guī)則的條目104實(shí)例的細(xì)節(jié)。請(qǐng)注意,使EntryDelta103回退可能對(duì)后面的EntryDelta具有次要或偶然的影響。同步服各器沂似對(duì)于許多部署而言,專用同步服務(wù)器可能不是可行的,因此,作為替代,可以執(zhí)行此類處理的近似??紤]兩個(gè)復(fù)制品,每個(gè)具有需要被同步的一組獨(dú)立的EntryDelta103。處理可以將復(fù)制品之一帶回到劃分(partition)的點(diǎn),然后重放其兩個(gè)EntryDelta103,和另一復(fù)制品的那些_換言之,是有效地實(shí)現(xiàn)暫時(shí)同步服務(wù)器的處理。然而,這種方法將實(shí)際上意味著該復(fù)制品上的EntryDelta103的暫時(shí)丟失,這不可能是可接受的。替換方案是向前移動(dòng)劃分的時(shí)間,直至其趕上當(dāng)前時(shí)間為止,具有包含RIB100的同步“事務(wù)”,如同其是同步服務(wù)器一樣。盡快提交在事務(wù)內(nèi)進(jìn)行的更新并使其在事務(wù)之外可見(jiàn)。其目的是使未提交的更新的數(shù)目最小化,因?yàn)榉駝t可能不能支持存儲(chǔ)器或其它資源使用。通常一旦在本地復(fù)制品中不存在尚未被作為同步處理的一部分而應(yīng)用的隨后相關(guān)聯(lián)EntryDeltal03,就能夠提交條目104。此替換方法的細(xì)節(jié)為-劃分時(shí)間是非兩個(gè)復(fù)制品共用的最舊EntryDelta103的創(chuàng)建時(shí)間。_“事務(wù)”在兩個(gè)復(fù)制品上運(yùn)行,其目的是將劃分時(shí)間向前拖,指示其趕上當(dāng)前時(shí)間為止。-同步事務(wù)可以包含未提交的條目104實(shí)例。這些已經(jīng)使某些EntryDelta103實(shí)例被應(yīng)用,但如下所述,還不能被提交給RIB100,因?yàn)榇嬖诟嘁獞?yīng)用的本地EntryDelta103。-提交到RIB100意味著應(yīng)用合并的EntryDelta103并使結(jié)果對(duì)于外部用戶而言是可見(jiàn)的。-如果在EntryDelta的確認(rèn)期間被參考,則應(yīng)使用未提交的條目104實(shí)例,優(yōu)先于RIB100中的版本。根據(jù)本發(fā)明的實(shí)施例,如果不存在此類未提交版本,則該被參考條目104的當(dāng)前提交版本被“回退”到其在EntryDelta103得到確認(rèn)時(shí)的狀態(tài)。-根據(jù)本發(fā)明的實(shí)施例,識(shí)別最舊EntryDelta103,并將其添加到?jīng)]有它的復(fù)制品。例如,假設(shè)復(fù)制品B具有必須被拷貝到復(fù)制品A的最舊EntryDelta103。26-在復(fù)制品A上的同步事務(wù)的范圍內(nèi),可能已存在條目104的未提交版本,在這種情況下,可以對(duì)其應(yīng)用EntryDelta103,并應(yīng)使其處于未從RIB100提交的狀態(tài)。-如果不存在未提交版本且條目104不與復(fù)制品B同步,則在復(fù)制品A上通常必須存在至少一個(gè)后面的EntryDelta103?;赝怂写祟怑ntryDelta,然后應(yīng)用最舊EntryDelta103,卻又不提交到RIB100。_如果不存在未提交版本且條目104與復(fù)制品B同步,則可以應(yīng)用最舊EntryDelta103,創(chuàng)建得到的EntryDelta103,且結(jié)果被立即提交到RIB100。-在復(fù)制品B上,如果在事務(wù)的范圍內(nèi)存在條目104的未提交版本,則通常必須應(yīng)用該同一最舊EntryDelta103。如果是這樣,且不存在其它本地EntryDelta,則可以將得到的EntryDelta103和條目104立即提交到RIB100。-對(duì)次最舊EntryDelta103重復(fù)以上操作。以上說(shuō)明假設(shè)每件事都是成功的,但如前文所討論的,可能作為確認(rèn)的結(jié)果而需要不應(yīng)用改變,即使其先前已被成功地應(yīng)用。在這種情況下,結(jié)果是對(duì)RIB100的改變,并應(yīng)由新EntryDelta103來(lái)表示。條目同步條目同步情況實(shí)際上與劃分復(fù)制品的恢復(fù)沒(méi)有不同,除了以不同的方式特別地從已知不是在所有復(fù)制品上都相同的單個(gè)條目104中選擇所涉及的條目104和EntryDelta103的子集之外。一旦識(shí)別到差異,就應(yīng)嘗試條目104同步_由于復(fù)制問(wèn)題或由于后臺(tái)檢查。新復(fù)制品的遷移新復(fù)制品的遷移涉及從活(live)復(fù)制品拷貝IRI102。這通常將花費(fèi)一段時(shí)間,在此期間,將存在對(duì)RIB100的許多更新。首先,拷貝所有條目104IRI,然后在拷貝第一條目IRI102時(shí)開(kāi)始,拷貝并應(yīng)用所有EntryDelta103IRI0考慮某些EntryDelta103已被應(yīng)用這一事實(shí)。一旦大部分EntryDelta103已被應(yīng)用,就可以轉(zhuǎn)換為參與正常復(fù)制,可能執(zhí)行條目同步以覆蓋轉(zhuǎn)換時(shí)間段。增量路徑選擇在復(fù)雜(且罕有)的情況下,可以以多于一種的方式來(lái)合并一組EntryDelta103。圖16示出根據(jù)本發(fā)明的實(shí)施例的作為有向圖中的節(jié)點(diǎn)的條目104的許多版本。圖表的邊表示已經(jīng)應(yīng)用的EntryDelta103,且節(jié)點(diǎn)內(nèi)的數(shù)字表示使條目104的版本同步的復(fù)制品。在存在多個(gè)向內(nèi)箭頭(in-arrow)的情況下,已作為同步合并的結(jié)果而創(chuàng)建了條目104版本?,F(xiàn)在考慮在右側(cè)的最終合并。在這里,我們具有條目的兩個(gè)版本_被保持在復(fù)制品1和2處的版本,和被保持在復(fù)制品3和4處的版本。不需要復(fù)制品的所有組合執(zhí)行合并_只需要涉及1和2之一、及3和4之一。在可能的成對(duì)復(fù)制品中,最好的是2和3,因?yàn)榘l(fā)散點(diǎn)明顯比任何其它可能性(1和3、1和4、2和4)“更近”。因此,在同步過(guò)程開(kāi)始之前,復(fù)制品需要進(jìn)行協(xié)商以識(shí)別在同步中需要涉及哪些對(duì)。一般合并規(guī)則為了將用于給定條目104的一組EntryDelta103合并,根據(jù)可以應(yīng)用于條目104實(shí)例的任何約束,將可能需要多個(gè)規(guī)則。可以使用以下規(guī)則-后面的EntryDelta103將優(yōu)先于(override)先前的EntryDelta103。-客戶端優(yōu)先(precedence)可以優(yōu)先于基于時(shí)間的規(guī)則-可擴(kuò)展規(guī)則可以優(yōu)先于先前的兩個(gè)規(guī)則。如前文簡(jiǎn)要地討論的,通常將通過(guò)向包含要合并的一組EntryDelta103的某些外部系統(tǒng)發(fā)送通知來(lái)提供可擴(kuò)展規(guī)則。外部系統(tǒng)(例如應(yīng)用服務(wù)器)可以用要應(yīng)用的合并EntryDelta103進(jìn)行響應(yīng)。X.500合并規(guī)則除一般合并規(guī)則之外,存在將應(yīng)用于DseDelta107以保證不違反X.500規(guī)則的特定規(guī)則。至少,通常將需要用于以下各項(xiàng)的規(guī)則-添加條目104-條目已存在(相同的結(jié)構(gòu)對(duì)象類和不同的結(jié)構(gòu)對(duì)象類)-刪除條目104-條目不存在-刪除條目104-非葉(non-leaf)-去除值-值不存在-去除屬性-屬性不存在-添加屬性-屬性已存在-添加值-值已存在還可以基于對(duì)象類和屬性類型來(lái)指定特定的合并規(guī)則。其它考慮RIB100用戶服務(wù)質(zhì)量(QoS)由RIB100提供的服務(wù)質(zhì)量通常特別地取決于復(fù)制品的同步有多好。完全同步的RIB100是明顯好于劃分的RIB100的質(zhì)量數(shù)據(jù)。RIB100用戶可以僅選擇(或被允許)使用例如來(lái)自同步復(fù)制品的數(shù)據(jù)。如果QoS在其要求以下,則客戶端可以自動(dòng)地?cái)嚅_(kāi)連接,這可以經(jīng)由不同的端口或用戶配置數(shù)據(jù)來(lái)指示。還可以在模式側(cè)應(yīng)用類似配置-只有對(duì)特定對(duì)象類的特定屬性的訪問(wèn)與OoS考慮有關(guān)。霊調(diào)解是被視為同步的非同步Userlnf0實(shí)例的后臺(tái)檢測(cè)。該實(shí)例可能被標(biāo)記為非同步,但使實(shí)例同步的任何自動(dòng)嘗試通常將涉及新UserlnfoDelta的創(chuàng)建,因?yàn)樗邢惹暗腢serlnfoDelta通常已被標(biāo)記為被拷貝到所有復(fù)制品。異步復(fù)制如前所述,默認(rèn)復(fù)制模式為同步復(fù)制,S卩,通常只有當(dāng)所有復(fù)制品已應(yīng)用更新時(shí)才提交更新。同樣地,在所有復(fù)制品都已提交更新之前,通常不進(jìn)行返回客戶端的響應(yīng)。作為替換,將可以為復(fù)制協(xié)議的子集提供異步復(fù)制。所述機(jī)制將是類似地,不同的是如果復(fù)制協(xié)議被標(biāo)記為異步,則將不會(huì)立即預(yù)期有來(lái)自該復(fù)制品的響應(yīng),且將不阻止同步復(fù)制品處的更新的提交,也不阻止返回客戶端的響應(yīng)。雖然已示出并描述了本發(fā)明的特定實(shí)施例,但很明顯,本發(fā)明不僅限于這些實(shí)施例。在不脫離本發(fā)明的精神和范圍的情況下,許多修改、變化、變更、替換和等價(jià)物對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的。例如,可以由諸如用于特定功能的專用硬件之類的硬件來(lái)執(zhí)行被描述為以軟件執(zhí)行的過(guò)程、功能和操作。被描述為方法的功能可以例如被實(shí)現(xiàn)為模塊,諸如專用硬件模塊。通常,不應(yīng)將本文所使用的術(shù)語(yǔ)理解為使本發(fā)明局限于本說(shuō)明書(shū)所公開(kāi)的特定實(shí)施例,而是應(yīng)將其理解為包括根據(jù)所述和可以最后闡述的任何權(quán)利要求中的本發(fā)明的精神而操作的所有系統(tǒng)和方法。因此,意圖在于本發(fā)明涵蓋本發(fā)明的修改和變更,只要它們處于與本發(fā)明相關(guān)聯(lián)的任何權(quán)利要求及其等價(jià)物的范圍內(nèi)。權(quán)利要求一種用于對(duì)等計(jì)算網(wǎng)絡(luò)中的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的實(shí)時(shí)數(shù)據(jù)管理的系統(tǒng),包括多個(gè)復(fù)制品中的第一復(fù)制品,托管在第一服務(wù)器計(jì)算機(jī)中,第一復(fù)制品被配置為接受對(duì)第一復(fù)制品上的復(fù)制品條目的數(shù)據(jù)更新,每個(gè)復(fù)制品條目對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目,將第一復(fù)制品上的復(fù)制品條目進(jìn)行更新以包括所接受數(shù)據(jù)更新,確定具有與網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目相對(duì)應(yīng)的復(fù)制品條目的所述多個(gè)復(fù)制品中的復(fù)制品和所述第一復(fù)制品之間的復(fù)制協(xié)議的狀態(tài),其中,所述第一復(fù)制品具有與所述多個(gè)復(fù)制品中的每個(gè)復(fù)制品的復(fù)制協(xié)議,每個(gè)復(fù)制協(xié)議與該協(xié)議的復(fù)制品方之間的復(fù)制品條目的協(xié)調(diào)有關(guān),確定第一復(fù)制品上的所更新復(fù)制品條目是否違反復(fù)制協(xié)議,其中,復(fù)制協(xié)議的違反指示第一復(fù)制品上的所接受數(shù)據(jù)更新未能被拷貝到復(fù)制協(xié)議的另一復(fù)制品方,以及針對(duì)具有活動(dòng)狀態(tài)且對(duì)于所接受數(shù)據(jù)更新而言未被違反的復(fù)制協(xié)議將所接受數(shù)據(jù)更新復(fù)制到所述多個(gè)復(fù)制品中的其它復(fù)制品;以及所述多個(gè)復(fù)制品中的第二復(fù)制品,托管在第二服務(wù)器計(jì)算機(jī)中,第二復(fù)制品被配置為接受對(duì)第二復(fù)制品上的復(fù)制品條目的數(shù)據(jù)更新,每個(gè)復(fù)制品條目對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目,將第二復(fù)制品上的復(fù)制品條目進(jìn)行更新以包括所接受數(shù)據(jù)更新,確定具有與網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目相對(duì)應(yīng)的復(fù)制品條目的所述多個(gè)復(fù)制品中的復(fù)制品和所述第二復(fù)制品之間的復(fù)制協(xié)議的狀態(tài),其中,所述第二復(fù)制品具有與所述多個(gè)復(fù)制品中的每個(gè)復(fù)制品的復(fù)制協(xié)議,每個(gè)復(fù)制協(xié)議與該協(xié)議的復(fù)制品方之間的復(fù)制品條目的協(xié)調(diào)有關(guān),確定第二復(fù)制品上的所更新復(fù)制品條目是否違反復(fù)制協(xié)議,其中,復(fù)制協(xié)議的違反指示第二復(fù)制品上的所接受數(shù)據(jù)更新未能被拷貝到復(fù)制協(xié)議的另一復(fù)制品方,以及針對(duì)具有活動(dòng)狀態(tài)且對(duì)于所接受數(shù)據(jù)更新而言未被違反的復(fù)制協(xié)議將所接受數(shù)據(jù)更新復(fù)制到所述多個(gè)復(fù)制品中的其它復(fù)制品。2.權(quán)利要求1的系統(tǒng),還包括所述多個(gè)復(fù)制品中的第三復(fù)制品,托管在第一服務(wù)器計(jì)算機(jī)中,第二復(fù)制品被配置為接受對(duì)第三復(fù)制品上的復(fù)制品條目的數(shù)據(jù)更新,每個(gè)復(fù)制品條目對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目,將第三復(fù)制品上的復(fù)制品條目進(jìn)行更新以包括所接受數(shù)據(jù)更新,確定具有與網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目相對(duì)應(yīng)的復(fù)制品條目的所述多個(gè)復(fù)制品中的復(fù)制品和所述第三復(fù)制品之間的復(fù)制協(xié)議的狀態(tài),其中,所述第三復(fù)制品具有與所述多個(gè)復(fù)制品中的每個(gè)復(fù)制品的復(fù)制協(xié)議,每個(gè)復(fù)制協(xié)議與該協(xié)議的復(fù)制品方之間的復(fù)制品條目的協(xié)調(diào)有關(guān),確定第三復(fù)制品上的所更新復(fù)制品條目是否違反復(fù)制協(xié)議,其中,復(fù)制協(xié)議的違反指示第三復(fù)制品上的所接受數(shù)據(jù)更新未能被拷貝到復(fù)制協(xié)議的另一復(fù)制品方,以及針對(duì)具有活動(dòng)狀態(tài)且對(duì)于所接受數(shù)據(jù)更新而言未被違反的復(fù)制協(xié)議將所接受數(shù)據(jù)更新復(fù)制到所述多個(gè)復(fù)制品中的其它復(fù)制品。3.權(quán)利要求1的系統(tǒng),其中,所述第一復(fù)制品還被配置為使所述第一復(fù)制品上的復(fù)制品條目與具有復(fù)制協(xié)議的多個(gè)復(fù)制品中的其它復(fù)制品上的復(fù)制品條目同步,所述復(fù)制協(xié)議已由于所接受數(shù)據(jù)更新不能被拷貝到所述多個(gè)復(fù)制品中的其它復(fù)制品而被第一復(fù)制品上的所接受數(shù)據(jù)更新違反。4.權(quán)利要求3的系統(tǒng),其中,所述第一復(fù)制品還被配置為在協(xié)商中應(yīng)用合并規(guī)則來(lái)確定最佳議定的條目?jī)?nèi)容,其復(fù)制品條目已經(jīng)歷獨(dú)立且不相容的更新。5.權(quán)利要求4的系統(tǒng),其中,第一復(fù)制品被配置為應(yīng)用的合并規(guī)則包括(使用于復(fù)制品條目的后面的數(shù)據(jù)改變優(yōu)先于用于復(fù)制品條目的先前的數(shù)據(jù)改變,并優(yōu)先于基于時(shí)間的優(yōu)先而應(yīng)用客戶端優(yōu)先次序)中的至少一個(gè)。6.權(quán)利要求1的系統(tǒng),其中,所述第一復(fù)制品還被配置為確定第一復(fù)制品與第二復(fù)制品之間的復(fù)制協(xié)議已變?yōu)榛顒?dòng)狀態(tài);以及使第一復(fù)制品上的復(fù)制品條目與第二復(fù)制品上的復(fù)制品條目同步,以便在第一復(fù)制品與第二復(fù)制品之間的復(fù)制協(xié)議不活動(dòng)時(shí),將數(shù)據(jù)更新采用于未被更新的第一復(fù)制品和第二復(fù)制品上的復(fù)制品。7.權(quán)利要求1的系統(tǒng),其中,所述第一復(fù)制品還被配置為確定第一復(fù)制品與多個(gè)其它復(fù)制品之間的多個(gè)復(fù)制協(xié)議已變?yōu)榛顒?dòng)狀態(tài),與所述多個(gè)其它復(fù)制品協(xié)商以確定第一復(fù)制品和所述多個(gè)其它復(fù)制品上需要的附加數(shù)據(jù)更新的最小數(shù)目,以便使第一復(fù)制品上的復(fù)制品條目與所述多個(gè)其它復(fù)制品上的復(fù)制品條目同步,以便在所述多個(gè)復(fù)制協(xié)議不活動(dòng)時(shí)將數(shù)據(jù)更新采用于所述多個(gè)復(fù)制品上的復(fù)制品條目。8.權(quán)利要求7的系統(tǒng),其中,所述多個(gè)復(fù)制品還被配置為在協(xié)商中應(yīng)用合并規(guī)則來(lái)確定最佳議定的條目?jī)?nèi)容,其復(fù)制品條目已經(jīng)歷獨(dú)立且不相容的更新。9.權(quán)利要求8的系統(tǒng),其中,多個(gè)復(fù)制品被配置為應(yīng)用的合并規(guī)則包括(使用于復(fù)制品條目的后面的數(shù)據(jù)改變優(yōu)先于用于復(fù)制品條目的先前的數(shù)據(jù)改變,并優(yōu)先于基于時(shí)間的優(yōu)先而應(yīng)用客戶端優(yōu)先次序)中的至少一個(gè)。10.權(quán)利要求7的系統(tǒng),還包括服務(wù)質(zhì)量模塊,被配置為暫停所述多個(gè)復(fù)制品中的復(fù)制品在該復(fù)制品降到由客戶端或代表客戶端設(shè)置的同步服務(wù)質(zhì)量閾值之下時(shí)對(duì)關(guān)于客戶端的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)查詢進(jìn)行響應(yīng)的能力。11.權(quán)利要求1的系統(tǒng),其中,所述第一復(fù)制品還包括第一復(fù)制信息庫(kù),被配置為包括多個(gè)復(fù)制品條目,以使得每個(gè)復(fù)制品條目對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目;第一事務(wù)模塊,被配置為接收對(duì)第一復(fù)制信息庫(kù)中的復(fù)制品條目的數(shù)據(jù)更新;第一添加增量模塊,被配置為創(chuàng)建第一復(fù)制信息庫(kù)中的多個(gè)復(fù)制品條目中的第一復(fù)制品條目的第一條目增量,并為第一條目增量提供來(lái)自事務(wù)模塊的所接收數(shù)據(jù)更新,且被配置為創(chuàng)建所述多個(gè)復(fù)制品中的第二復(fù)制品中的第二復(fù)制品條目的所接收數(shù)據(jù)更新的副本;第一鎖定模塊,被配置為鎖定第一復(fù)制信息庫(kù)中的第一復(fù)制品條目;第一增量OK模塊,被配置為確認(rèn)第一條目增量具有與第一復(fù)制品條目相容的特性,其中,所述第一添加增量模塊還被配置為在第一增量OK模塊已確認(rèn)第一條目增量之后通過(guò)網(wǎng)絡(luò)將所接收數(shù)據(jù)更新的副本發(fā)送到具有第二復(fù)制品條目的第二復(fù)制品;提交模塊,被配置為在從鎖定模塊接收到成功指示符之后請(qǐng)求條目增量的應(yīng)用,所述成功指示符與對(duì)網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目的改變相關(guān)聯(lián);第一應(yīng)用模塊,被配置為將第一條目增量應(yīng)用于第一復(fù)制信息庫(kù)中的第一復(fù)制品條目,以使得對(duì)第一復(fù)制品中的條目的請(qǐng)求將隨后提供所接收數(shù)據(jù)更新,第一應(yīng)用模塊被配置為在接收到來(lái)自提交模塊的請(qǐng)求之后應(yīng)用第一條目增量;以及第一解鎖模塊,被配置為在第一應(yīng)用模塊已向第一復(fù)制品條目應(yīng)用第一條目增量之后將第一復(fù)制品條目解鎖。12.權(quán)利要求11的系統(tǒng),其中,所述第二復(fù)制品還包括第二復(fù)制信息庫(kù),被配置為包括多個(gè)復(fù)制品條目,以使得每個(gè)復(fù)制品條目對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目;第二添加增量模塊,被配置為從所述第一添加增量模塊接收數(shù)據(jù)更新并在第二復(fù)制品條目上創(chuàng)建第二條目增量;第二鎖定模塊,被配置為將用于第二條目增量的第二復(fù)制信息中的第二復(fù)制品條目鎖定并在將第二復(fù)制品條目鎖定之后向第一復(fù)制品發(fā)送成功指示符;第二應(yīng)用模塊,被配置為將第二條目增量應(yīng)用于第二復(fù)制品條目,以使得對(duì)第二復(fù)制品中的條目的請(qǐng)求隨后將提供所接收數(shù)據(jù)更新,第二應(yīng)用模塊被配置為在接收到來(lái)自提交模塊的請(qǐng)求之后應(yīng)用第一條目增量;以及第二解鎖模塊,被配置為在向第二復(fù)制品條目應(yīng)用第二條目增量之后將第二數(shù)據(jù)復(fù)制品條目解鎖。13.權(quán)利要求11的系統(tǒng),其中,所述第一復(fù)制品還包括通信模塊,被配置為確定所述多個(gè)復(fù)制品中的一個(gè)復(fù)制品與另一復(fù)制品之間的復(fù)制協(xié)議是否已由于第一復(fù)制品與其它復(fù)制品之間的通信丟失而變成不活動(dòng)的,該通信模塊還被配置為確定在第一復(fù)制品與另一復(fù)制品之間已經(jīng)恢復(fù)通信;以及同步模塊,被配置為請(qǐng)求在不活動(dòng)狀態(tài)期間被改變的第一復(fù)制品中的條目的更新數(shù)據(jù),該同步模塊還被配置為控制另一復(fù)制品的更新以解決復(fù)制協(xié)議的違反,直至復(fù)制協(xié)議恢復(fù)到活動(dòng)狀態(tài)為止。14.權(quán)利要求11的系統(tǒng),所述第一復(fù)制品還包括第一排隊(duì)模塊,被配置為當(dāng)?shù)谝绘i定模塊已將第一復(fù)制信息庫(kù)中的第一復(fù)制品條目鎖定時(shí)使到第一鎖定模塊的請(qǐng)求排隊(duì);以及優(yōu)先級(jí)模塊,被配置為在第一接收條目增量的處理未完成的同時(shí)確定第二接收條目增量?jī)?yōu)先于第一接收條目增量,且還被配置為命令第一解鎖模塊將第一數(shù)據(jù)復(fù)制品解鎖,且還被配置為使第一排隊(duì)模塊上的第一接收條目增量排隊(duì),直至對(duì)于第二接收條目增量而言處理已完成為止。15.權(quán)利要求14的系統(tǒng),其中,所述優(yōu)先級(jí)模塊還被配置為識(shí)別用于第一接收條目增量的第一優(yōu)先級(jí)數(shù)并識(shí)別用于第二接收條目增量的第二優(yōu)先級(jí)數(shù)目,且還被配置為確定第二優(yōu)先級(jí)數(shù)優(yōu)先于第一優(yōu)先級(jí)數(shù)。16.權(quán)利要求14的系統(tǒng),其中,所述優(yōu)先級(jí)模塊還被配置為識(shí)別與關(guān)聯(lián)于第一接收條目增量的第一外部用戶相關(guān)聯(lián)的第一優(yōu)先級(jí)數(shù)且被配置為識(shí)別與關(guān)聯(lián)于第二接收條目增量的第二外部用戶相關(guān)聯(lián)的第二優(yōu)先級(jí)數(shù),并確定第二優(yōu)先級(jí)數(shù)優(yōu)先于第一優(yōu)先級(jí)數(shù)。17.權(quán)利要求11的系統(tǒng),所述第一復(fù)制品還包括第一排隊(duì)模塊,被配置為當(dāng)?shù)谝绘i定模塊已將第一復(fù)制信息庫(kù)中的第一復(fù)制品條目鎖定時(shí)使到第一鎖定模塊的請(qǐng)求排隊(duì)。18.權(quán)利要求11的系統(tǒng),其中,所述事務(wù)模塊還被配置為接收來(lái)自外部用戶的事務(wù)請(qǐng)求以將第一復(fù)制品條目進(jìn)行更新以包括所接收數(shù)據(jù)改變,其中,所述事務(wù)模塊還被配置為在接收到事務(wù)請(qǐng)求之后使第一添加增量模塊創(chuàng)建第一條目增量。19.權(quán)利要求11的系統(tǒng),其中,所述第一事務(wù)模塊還被配置為在第一復(fù)制品已接收到成功指示符之后通知外部用戶事務(wù)請(qǐng)求已被成功確認(rèn),且還被配置為接收來(lái)自外部用戶的請(qǐng)求以將數(shù)據(jù)改變提交給第一復(fù)制品條目和第二復(fù)制品條目。20.權(quán)利要求11的系統(tǒng),其中,所述事務(wù)模塊還被配置為在將第一復(fù)制品條目解鎖并將第二復(fù)制品條目解鎖之后通知外部用戶數(shù)據(jù)改變已被成功地應(yīng)用于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)。21.一種用于管理在多個(gè)服務(wù)器上部署的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)的系統(tǒng),包括第一復(fù)制品,被配置為用于與多個(gè)復(fù)制品中的其它復(fù)制品進(jìn)行通信,在所述多個(gè)服務(wù)器中的服務(wù)器上被托管的第一復(fù)制品還包括第一復(fù)制信息庫(kù),被配置為包含網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的至少一部分,該第一復(fù)制信息庫(kù)包括多個(gè)復(fù)制品條目,以使得每個(gè)復(fù)制品條目對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目,該第一復(fù)制信息庫(kù)還包括所述多個(gè)復(fù)制品中的每個(gè)復(fù)制品與其它復(fù)制品之間的多個(gè)復(fù)制協(xié)議;狀態(tài)確定模塊,被配置為確定所述多個(gè)復(fù)制品中的復(fù)制品與所述多個(gè)復(fù)制品中的另一復(fù)制品之間的復(fù)制協(xié)議是否由于通信丟失而處于不活動(dòng)狀態(tài),該狀態(tài)確定模塊還被配置為確定在第一復(fù)制品與另一復(fù)制品之間已恢復(fù)通信;以及同步模塊,被配置為請(qǐng)求在復(fù)制協(xié)議的不活動(dòng)狀態(tài)期間改變的所述多個(gè)復(fù)制品中的復(fù)制品中的條目的更新數(shù)據(jù),所述同步模塊還被配置為控制所述多個(gè)復(fù)制品中的另一復(fù)制品的更新,以解決產(chǎn)生的對(duì)復(fù)制協(xié)議的違反,直至復(fù)制協(xié)議被恢復(fù)至活動(dòng)狀態(tài)為止。22.權(quán)利要求21的系統(tǒng),其中,所述同步模塊被配置為與同步服務(wù)器一起操作,該同步服務(wù)器被配置為獲得在具有不活動(dòng)復(fù)制協(xié)議的第一復(fù)制品條目與第二復(fù)制品條目之間共用的復(fù)合復(fù)制品條目,向該復(fù)合復(fù)制品條目應(yīng)用對(duì)在第二復(fù)制品條目中未找到的第一復(fù)制品條目的有效更新以創(chuàng)建第一更新復(fù)制品條目,向第一更新復(fù)制品條目應(yīng)用對(duì)在第一復(fù)制品條目中未找到的第二復(fù)制品條目的有效改變以創(chuàng)建第二更新復(fù)制品條目,并將第二更新復(fù)制品條目發(fā)送到第一復(fù)制信息庫(kù)。23.權(quán)利要求21的系統(tǒng),其中,所述同步模塊被配置為從狀態(tài)確定模塊獲得第一復(fù)制品條目與第二復(fù)制品條目同步的最后時(shí)間,其中,第一復(fù)制品條目與第二復(fù)制品條目之間的復(fù)制協(xié)議已變成不活動(dòng)的,暫停第一復(fù)制品條目的進(jìn)一步更新,在第一復(fù)制品中使處理時(shí)間返回到所確定的第一復(fù)制品條目與第二復(fù)制品條目同步的最后時(shí)間,處理在第一復(fù)制協(xié)議不活動(dòng)時(shí)錯(cuò)過(guò)的第一復(fù)制品條目與第二復(fù)制品條目之間的所有數(shù)據(jù)更新,并恢復(fù)第一復(fù)制品條目以接受進(jìn)一步的更新。24.一種用于對(duì)等計(jì)算網(wǎng)絡(luò)中的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的實(shí)時(shí)數(shù)據(jù)管理的方法,包括接受對(duì)多個(gè)復(fù)制品中的第一復(fù)制品中的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的條目的數(shù)據(jù)更新,第一復(fù)制品在多個(gè)服務(wù)器中的第一服務(wù)器上被托管,第一復(fù)制品包含網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的至少一部分作為對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目的多個(gè)復(fù)制品條目;識(shí)別對(duì)應(yīng)于該條目的第一復(fù)制品上的所述多個(gè)復(fù)制品條目中的復(fù)制品條目;檢查所述多個(gè)復(fù)制品的第一復(fù)制品與其它復(fù)制品之間的復(fù)制協(xié)議,其中,每個(gè)復(fù)制協(xié)議描述所述多個(gè)復(fù)制品中的第一復(fù)制品與另一復(fù)制品之間的關(guān)系;確定所述多個(gè)復(fù)制品的第一復(fù)制品與第二復(fù)制品之間的第一復(fù)制協(xié)議的狀態(tài),所述第二復(fù)制品在所述多個(gè)服務(wù)器中的第二服務(wù)器上被托管;更新第一復(fù)制品上的已識(shí)別復(fù)制品條目;以及如果第一復(fù)制協(xié)議處于活動(dòng)狀態(tài)且如果可以將所接受數(shù)據(jù)更新拷貝到第二復(fù)制品,則將所接受數(shù)據(jù)更新復(fù)制到第二復(fù)制品上。25.權(quán)利要求24的方法,還包括將另一數(shù)據(jù)更新從所述多個(gè)復(fù)制品中的第三復(fù)制品復(fù)制到第一復(fù)制品中的另一復(fù)制品條目,其中,所述第一復(fù)制品和所述第三復(fù)制品具有處于活動(dòng)狀態(tài)的復(fù)制協(xié)議,并且其中,所述另一數(shù)據(jù)更新已被從第三復(fù)制品拷貝到第一復(fù)制品。26.權(quán)利要求24的方法,還包括確定第一復(fù)制品與多個(gè)其它復(fù)制品之間的多個(gè)復(fù)制協(xié)議已變?yōu)榛顒?dòng)狀態(tài),與所述多個(gè)其它復(fù)制品協(xié)商以確定第一復(fù)制品和所述多個(gè)其它復(fù)制品之間上需要的附加數(shù)據(jù)更新的最小數(shù)目,以便使第一復(fù)制品上的復(fù)制品條目與所述多個(gè)其它復(fù)制品上的復(fù)制品條目同步,以便在所述多個(gè)復(fù)制協(xié)議不活動(dòng)時(shí)將數(shù)據(jù)更新采用于所述多個(gè)復(fù)制品上的復(fù)制品條目。27.權(quán)利要求26的方法,還包括在協(xié)商中應(yīng)用合并規(guī)則來(lái)確定最佳議定的條目?jī)?nèi)容,其復(fù)制品條目已經(jīng)歷獨(dú)立且不相容的更新。28.權(quán)利要求26的方法,其中,合并規(guī)則包括(使用于復(fù)制品條目的后面的數(shù)據(jù)更新優(yōu)先于用于復(fù)制品條目的先前的數(shù)據(jù)更新,并優(yōu)先于基于時(shí)間的優(yōu)先而應(yīng)用客戶端優(yōu)先次序)中的至少一個(gè)。29.權(quán)利要求24的方法,還包括暫停所述多個(gè)復(fù)制品中的復(fù)制品在該復(fù)制品降到由客戶端或代表客戶端設(shè)置的同步服務(wù)質(zhì)量閾值之下時(shí)對(duì)關(guān)于客戶端的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)查詢進(jìn)行響應(yīng)的能力。30.權(quán)利要求24的方法,還包括確定與第三復(fù)制品和第一復(fù)制品有關(guān)的復(fù)制協(xié)議已由于所述多個(gè)復(fù)制品中的第一復(fù)制品與第三復(fù)制品之間的通信丟失而變成不活動(dòng)的;確定第三數(shù)據(jù)復(fù)制品與第二復(fù)制品之間的復(fù)制協(xié)議也已由于第二復(fù)制品與第三復(fù)制品之間的通信丟失而變成不活動(dòng)的;確定在第一復(fù)制品與第三復(fù)制品之間已恢復(fù)通信;以及請(qǐng)求用于第一復(fù)制品的數(shù)據(jù)更新。31.權(quán)利要求24的方法,其中,將數(shù)據(jù)更新復(fù)制到第二復(fù)制品包括創(chuàng)建用于第二復(fù)制品中的第二復(fù)制品條目的數(shù)據(jù)更新的副本,第二復(fù)制品條目對(duì)應(yīng)于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目;創(chuàng)建用于第一復(fù)制品條目的第一條目增量,其中,第一條目增量包括數(shù)據(jù)更新;將第一復(fù)制品上的第一復(fù)制品條目中的條目鎖定;確認(rèn)第一條目增量具有與條目相容的特性;通過(guò)網(wǎng)絡(luò)將所接受數(shù)據(jù)更新的副本發(fā)送到第二復(fù)制品;在第二復(fù)制品上創(chuàng)建第二條目增量,其中,第二條目增量包括適合于第二復(fù)制品條目的格式的數(shù)據(jù)更新;將第二復(fù)制品上的第二復(fù)制品條目中的條目鎖定;在將第二復(fù)制品條目中的條目鎖定之后從第二復(fù)制品向第一復(fù)制品發(fā)送成功指示符;將第一條目增量應(yīng)用于第一復(fù)制品條目,并將第二條目增量應(yīng)用于第二復(fù)制品條目,以使得對(duì)第一復(fù)制品和第二復(fù)制品中的條目的請(qǐng)求隨后將提供數(shù)據(jù)更新;在將第一條目增量應(yīng)用于第一復(fù)制品條目之后將第一復(fù)制品條目解鎖;以及在將第二條目增量應(yīng)用于第二復(fù)制品條目之后將第二復(fù)制品條目解鎖。32.權(quán)利要求30的方法,還包括接收用于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目的第二數(shù)據(jù)更新,該條目對(duì)應(yīng)于位于第二復(fù)制品上的第二復(fù)制品條目;在第二復(fù)制品條目上創(chuàng)建第三條目增量,其中,第三條目增量包括第二數(shù)據(jù)更新;通過(guò)第三條目增量將第二復(fù)制品上的第二復(fù)制品條目中的條目鎖定;接收來(lái)自第二數(shù)據(jù)條目增量的鎖定請(qǐng)求;在應(yīng)用鎖定優(yōu)先級(jí)規(guī)則并使第三條目增量的鎖定排隊(duì)之后將被第三條目增量鎖定的第二復(fù)制品條目中的條目解鎖,所述鎖定優(yōu)先級(jí)規(guī)則確定第二條目增量?jī)?yōu)先于第三條目增量;以及在將第二條目增量應(yīng)用于第二復(fù)制品條目之后在將第二復(fù)制品條目解鎖之后,重新鎖定用于第三條目增量的第二數(shù)據(jù)復(fù)制品中的條目。33.權(quán)利要求32的方法,其中,應(yīng)用鎖定優(yōu)先級(jí)規(guī)則包括識(shí)別創(chuàng)建了第二數(shù)據(jù)復(fù)制品的第一復(fù)制品的第一優(yōu)先級(jí)數(shù),該優(yōu)先級(jí)數(shù)與第一復(fù)制品相關(guān)聯(lián);識(shí)別用于第三數(shù)據(jù)復(fù)制品的第二優(yōu)先級(jí)數(shù),該優(yōu)先級(jí)數(shù)與第二復(fù)制品相關(guān)聯(lián);以及確定第一優(yōu)先級(jí)數(shù)具有高于第二優(yōu)先級(jí)數(shù)的優(yōu)先級(jí),其中,該確定指示由第三數(shù)據(jù)復(fù)制品應(yīng)用的鎖定將被解除以支持用于第二數(shù)據(jù)復(fù)制品的鎖定。34.權(quán)利要求32的方法,其中,應(yīng)用鎖定優(yōu)先級(jí)規(guī)則包括識(shí)別與關(guān)聯(lián)于第一數(shù)據(jù)復(fù)制品的第一外部用戶相關(guān)聯(lián)的第一優(yōu)先級(jí)數(shù);識(shí)別與關(guān)聯(lián)于第三數(shù)據(jù)復(fù)制品的第二外部用戶相關(guān)聯(lián)的第二優(yōu)先級(jí)數(shù);以及確定第一優(yōu)先級(jí)數(shù)具有高于第二優(yōu)先級(jí)數(shù)的優(yōu)先級(jí),其中,該確定指示由第三數(shù)據(jù)復(fù)制品應(yīng)用的鎖定將被解除以支持用于第二數(shù)據(jù)復(fù)制品的鎖定。35.權(quán)利要求30的方法,還包括接收用于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的條目的第二數(shù)據(jù)更新,該條目對(duì)應(yīng)于位于第二復(fù)制品上的第二復(fù)制品條目,其中,在所接收數(shù)據(jù)更新之后接收第二數(shù)據(jù)更新;在第二復(fù)制品條目上創(chuàng)建第三條目增量,其中,第三條目增量包括適合于第二復(fù)制品條目的格式的第二數(shù)據(jù)更新;在由于第二條目增量而注意到第二復(fù)制品上的第二復(fù)制品條目中的鎖定條目之后使用于第三條目增量的第二復(fù)制品上的第二復(fù)制品條目中的條目上的鎖定排隊(duì);以及在將第二條目增量應(yīng)用于第二復(fù)制品條目之后在將第二復(fù)制品條目解鎖之后,將用于第三條目增量的第二數(shù)據(jù)復(fù)制品中的條目鎖定。36.權(quán)利要求30的方法,還包括接收來(lái)自外部用戶的事務(wù)請(qǐng)求以將第一復(fù)制品條目進(jìn)行更新以包括所接收數(shù)據(jù)更新,其中,在接收到事務(wù)請(qǐng)求之后創(chuàng)建第一條目增量。37.權(quán)利要求30的方法,還包括在第一復(fù)制品接收到成功指示符之后通知外部用戶事務(wù)請(qǐng)求已被成功確認(rèn);以及接收來(lái)自外部用戶的請(qǐng)求以將數(shù)據(jù)更新提交給第一復(fù)制品條目和第二復(fù)制品條目。38.權(quán)利要求30的方法,還包括在將第一復(fù)制品條目解鎖之后和在將第二復(fù)制品條目解鎖之后通知外部用戶數(shù)據(jù)更新已被成功地應(yīng)用于網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)。39.一種用于管理在多個(gè)復(fù)制品上部署的網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)的方法,其中,所述網(wǎng)絡(luò)數(shù)據(jù)倉(cāng)庫(kù)中的每個(gè)條目對(duì)應(yīng)于所述多個(gè)復(fù)制品中的每一個(gè)中的復(fù)制品條目,并且其中,每個(gè)復(fù)制品保持與所述多個(gè)復(fù)制品中的其它復(fù)制品的復(fù)制協(xié)議,所述方法還包括確定與第一復(fù)制品和第二復(fù)制品相關(guān)的第一復(fù)制協(xié)議已由于第一復(fù)制品與托管第二復(fù)制品條目的第二復(fù)制品之間的通信丟失而進(jìn)入不活動(dòng)狀態(tài);確定與第一復(fù)制品和第三復(fù)制品相關(guān)的第二復(fù)制協(xié)議已由于第一復(fù)制品與第三復(fù)制品之間的通信丟失而進(jìn)入不活動(dòng)狀態(tài),其中,第二復(fù)制品與第三復(fù)制品之間的通信未被中斷;確定在第一復(fù)制品與第二復(fù)制品之間已恢復(fù)通信,且在第一復(fù)制品與第三復(fù)制品之間已恢復(fù)通信;通過(guò)使第一復(fù)制品與第二復(fù)制品相互同步來(lái)將第一復(fù)制協(xié)議恢復(fù)至活動(dòng)狀態(tài);以及通過(guò)使第一復(fù)制品與第三復(fù)制品相互同步來(lái)將第二復(fù)制協(xié)議恢復(fù)至活動(dòng)狀態(tài)。40.權(quán)利要求39的方法,其中,使第一復(fù)制品和第二復(fù)制品同步包括利用在第一復(fù)制品與第二復(fù)制品之間共用的復(fù)合復(fù)制品來(lái)加載同步復(fù)制品;將復(fù)合復(fù)制品有效數(shù)據(jù)改變應(yīng)用于在第二復(fù)制品中未找到的第一復(fù)制品以創(chuàng)建第一更新復(fù)制品;將第一更新復(fù)制品有效數(shù)據(jù)改變應(yīng)用于在第一復(fù)制品中未找到的第二復(fù)制品以創(chuàng)建第二更新復(fù)制品;以及將第二更新復(fù)制品發(fā)送到第一復(fù)制品和第二復(fù)制品條目。41.權(quán)利要求39的方法,其中,使第一復(fù)制品和第二復(fù)制品同步包括確定第一復(fù)制品與第二復(fù)制品同步的最后時(shí)間;暫停第一復(fù)制品和第二復(fù)制品的進(jìn)一步數(shù)據(jù)更新;將處理時(shí)間返回到所確定的第一復(fù)制品與第二復(fù)制品同步的最后時(shí)間;處理在第一復(fù)制協(xié)議不活動(dòng)時(shí)錯(cuò)過(guò)的第一復(fù)制品與第二復(fù)制品之間的所有數(shù)據(jù)更新;以及恢復(fù)第一復(fù)制品和第二復(fù)制品以接受進(jìn)一步更新。全文摘要本發(fā)明的實(shí)施例提供一種對(duì)等且多線程的復(fù)制和同步機(jī)制。本發(fā)明的實(shí)施例還可以在復(fù)制品之間的通信丟失的情況下實(shí)現(xiàn)可用替換服務(wù)并在復(fù)制品之間的通信恢復(fù)時(shí)實(shí)現(xiàn)完全自動(dòng)恢復(fù)。復(fù)制和同步機(jī)制還可以提供條目級(jí)同步和對(duì)事務(wù)的支持。復(fù)制和同步機(jī)制將已由于對(duì)等端之間的通信丟失而獨(dú)立地進(jìn)行的改變合并。文檔編號(hào)H04L29/12GK101933014SQ200880118023公開(kāi)日2010年12月29日申請(qǐng)日期2008年9月26日優(yōu)先權(quán)日2007年9月28日發(fā)明者K·瓦克菲爾德申請(qǐng)人:阿珀蒂奧有限公司