国产精品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>

      數(shù)據(jù)復(fù)制協(xié)議的制作方法

      文檔序號:7741852閱讀:330來源:國知局
      專利名稱:數(shù)據(jù)復(fù)制協(xié)議的制作方法
      技術(shù)領(lǐng)域
      一般地,本發(fā)明涉及用于傳遞數(shù)據(jù)的系統(tǒng)。更具體地講,本發(fā)明涉及用于通過網(wǎng)絡(luò)復(fù)制數(shù)據(jù)的系統(tǒng)與方法。
      背景技術(shù)
      存在幾種類型的分布式處理系統(tǒng)。一般地,分布式處理系統(tǒng)包括多個處理設(shè)備,諸如通過通信介質(zhì)連接的兩臺計算機(jī)。一種分布式處理系統(tǒng)為客戶端/服務(wù)器網(wǎng)絡(luò)??蛻舳?服務(wù)器網(wǎng)絡(luò)包括至少兩個處理設(shè)備,一般為中央處理器與客戶端。其他客戶端可能連接至該中央服務(wù)器,可能有多個服務(wù)器,或者該網(wǎng)絡(luò)可能只包括通過通信介質(zhì)連接的多個服務(wù)器。
      在這樣的網(wǎng)絡(luò)環(huán)境中,經(jīng)常希望從中央服務(wù)器向許多個工作站和/或其他服務(wù)器發(fā)送應(yīng)用程序或信息。這常??赡苌婕霸诟鱾€工作站上的獨(dú)立的安裝,或者可能涉及從該中央服務(wù)器向每個單個的工作站和/或服務(wù)器分別推送新的信息庫。這些方法可能很耗時,并且資源的使用效率不高。在各個工作站或服務(wù)器上分別安裝應(yīng)用程序也引入了其他潛在的錯誤來源。
      理想狀況下,信息的發(fā)送既應(yīng)該對故障可靠,也應(yīng)該可擴(kuò)展,以便該處理有效使用網(wǎng)絡(luò)。現(xiàn)有的解決方案一般不能達(dá)到這些目標(biāo)的一個或全部。一個簡單的方法是讓主服務(wù)器分別聯(lián)系各個從屬,并且通過點(diǎn)到點(diǎn)鏈接(諸如TCP/IP連接)傳遞數(shù)據(jù)。如果一個或更多個從屬暫時不可達(dá)到,或者如果從屬在處理更新時出現(xiàn)錯誤,則這種方法將導(dǎo)致數(shù)據(jù)的不一致的副本。復(fù)雜分布式協(xié)定協(xié)議是另一個極端,其要求在從屬之間進(jìn)行大量會話,以確保數(shù)據(jù)的所有副本一致。

      發(fā)明內(nèi)容
      本發(fā)明包括一種方法,用來從主服務(wù)器向至少一個從屬或被管理服務(wù)器復(fù)制數(shù)據(jù),例如這可以通過網(wǎng)絡(luò)完成。在該方法中,可能要確定該復(fù)制應(yīng)該用一階段還是兩階段方法完成。如果要用一階段方法完成該復(fù)制,則可以發(fā)送對應(yīng)主服務(wù)器上數(shù)據(jù)當(dāng)前狀態(tài)的版本號。該版本號可以被送往網(wǎng)絡(luò)上的每一個從屬服務(wù)器,或者只送往部分從屬服務(wù)器。然后,收到該版本號的從屬服務(wù)器可能請求從主服務(wù)器發(fā)送增量(delta)。該增量可以包含更新該從屬服務(wù)器上數(shù)據(jù)以對應(yīng)當(dāng)前版本號所需的數(shù)據(jù)。
      如果要用兩階段方法完成該復(fù)制,則從主服務(wù)器向每一個從屬服務(wù)器或者從屬服務(wù)器的子集發(fā)送信息包。然后,這些從屬服務(wù)器可以對主服務(wù)器作出響應(yīng),表示它們是否能夠委托該信息包。如果至少有一些從屬服務(wù)器能夠委托該數(shù)據(jù),則主服務(wù)器可以向這些從屬服務(wù)器發(fā)送信號,表示它們應(yīng)該處理該委托(commit)。在處理該委托之后,這些從屬服務(wù)器可以更新到當(dāng)前版本號。如果任一從屬服務(wù)器不能處理該委托,則可以中止該委托。


      圖1為根據(jù)本發(fā)明的一個實(shí)施例的域結(jié)構(gòu)的圖;圖2為根據(jù)本發(fā)明的一個實(shí)施例的分層體系結(jié)構(gòu)的圖;圖3為根據(jù)本發(fā)明的一個實(shí)施例的群集域結(jié)構(gòu)的圖;圖4為根據(jù)本發(fā)明的一個實(shí)施例的用于分層體系結(jié)構(gòu)的一階段處理的圖;圖5為根據(jù)本發(fā)明的一個實(shí)施例的用于分層體系結(jié)構(gòu)的兩階段處理的圖;圖6為根據(jù)本發(fā)明的一個實(shí)施例的一階段處理的流程圖;圖7為根據(jù)本發(fā)明的一個實(shí)施例的兩階段處理的流程圖;具體實(shí)施方式
      本發(fā)明支持將數(shù)據(jù)或諸如來自從主服務(wù)器或“管理員”服務(wù)器(“管理服務(wù)器”)之類的其他信息復(fù)制到例如一組從屬服務(wù)器或“被管理”服務(wù)器。這種復(fù)制可以通過任何適當(dāng)?shù)木W(wǎng)絡(luò)發(fā)生,例如常規(guī)的局域網(wǎng)或以太網(wǎng)。在一個實(shí)施例是,主服務(wù)器擁有網(wǎng)絡(luò)上所有數(shù)據(jù)的原始記錄,任何更新都應(yīng)用該原始記錄。該數(shù)據(jù)的副本與更新(在其發(fā)生時)一起可以被發(fā)送到每個從屬服務(wù)器。一個示例應(yīng)用為從管理服務(wù)器向一組被管理服務(wù)器分發(fā)配置信息。
      在根據(jù)本發(fā)明的一個系統(tǒng)中,可能需要一種諸如數(shù)據(jù)復(fù)制服務(wù)(DRS)之類的服務(wù)來從管理服務(wù)器向適當(dāng)域中的被管理服務(wù)器分發(fā)配置與部署信息。大數(shù)據(jù)項(xiàng)可以通過點(diǎn)到點(diǎn)連接(例如傳輸控制協(xié)議(“TCP”))分發(fā),這是因?yàn)槎嗖f(xié)議如用戶數(shù)據(jù)報協(xié)議(“UDP”)沒有流控制,并且可能使系統(tǒng)崩潰。遠(yuǎn)程方法調(diào)用(RMI)、超文本傳送協(xié)議(HTTP)或者類似協(xié)議可以用于點(diǎn)到點(diǎn)連接。
      被管理服務(wù)器也可以在本地磁盤上持久緩存數(shù)據(jù)。如果沒有這種緩存,可能需要無法接受的時間量來傳送必須的數(shù)據(jù)。被管理服務(wù)器的緩存能力至觀重要,這是因?yàn)檫@種能力通過減少需傳送的啟動數(shù)據(jù)量而提高了啟動速度。如果管理服務(wù)器不可達(dá)到,還允許啟動和/或重啟緩存。重啟可能是更吸引人的選擇,并且可能的情況是管理服務(wù)器指示服務(wù)器啟動。然而,重啟可能提供在管理服務(wù)器不可用時啟動域的能力。
      如圖1的域結(jié)構(gòu)100所示,管理服務(wù)器102和至少一個被管理服務(wù)器104可以構(gòu)成域106。這個域106可以是啟動與關(guān)閉的管理單位。在一個實(shí)施例中,瀏覽器108或者其他用戶應(yīng)用程序或設(shè)備命令管理服務(wù)器102啟動。然后,管理服務(wù)器102命令域106中的所有被管理服務(wù)器104啟動,并且發(fā)送適當(dāng)?shù)呐渲眯畔?。如果在被管理服?wù)器104已經(jīng)啟動之后一臺服務(wù)器出了故障,則可能希望該服務(wù)器自動重啟,而不管管理服務(wù)器102是否可用。緩存數(shù)據(jù)可以用于此目的。
      對管理服務(wù)器上數(shù)據(jù)的更新可以作為版本之間的增量增量打包。該增量可能包含要改變的配置和/或其他信息??赡芟M谠撚蜻\(yùn)行時更新配置,這是因?yàn)榭赡懿幌M麑⑾到y(tǒng)脫機(jī)。在一個實(shí)施例中,配置更改動態(tài)發(fā)生,因?yàn)檫@些修改由管理服務(wù)器推送。只有對配置的修改以增量傳送,這是因?yàn)榭赡懿恍枰看味及l(fā)送全部配置,并且可能造成不必要的麻煩。
      根據(jù)本發(fā)明的協(xié)議集成了更新分發(fā)的兩種方法,盡管可以相應(yīng)地使用其他適當(dāng)方法。這些分發(fā)方法可以稱為一階段方法與兩階段方法,并且提供了一致性與可擴(kuò)展性之間的平衡。在一階段方法中,其可能對可擴(kuò)展性有利,每個從屬服務(wù)器可以按各自的節(jié)奏取得并處理更新。從屬服務(wù)器可能在不同的時間從主服務(wù)器取得更新,但可以在接到數(shù)據(jù)后馬上委托。從屬服務(wù)器在處理更新時可能遇到錯誤,但在一階段方法中這不會阻止其他從屬服務(wù)器處理該更新。
      在根據(jù)本發(fā)明的兩階段方法中,其可能對一致性有利,分發(fā)可能是“原子”的,即全部從屬服務(wù)器或者無任何從屬服務(wù)器成功處理該數(shù)據(jù)。可能有獨(dú)立的階段(例如準(zhǔn)備與委托階段),這考慮了中止的可能性。在準(zhǔn)備階段,主服務(wù)器可以確定是否每一從屬服務(wù)器都可能采用該更新。如果所有從屬服務(wù)器都表示能夠接受該更新,則可以將新數(shù)據(jù)送往從屬服務(wù)器,以在委托階段委托。如果從屬服務(wù)器中的至少一個不能采用該更新,則可以中止該更新,并且不會有委托。在這種情況下,可以通知被管理服務(wù)器應(yīng)該退回該準(zhǔn)備,并且不做任何改變。根據(jù)本發(fā)明的這種協(xié)議是可靠的,這是因?yàn)樵谌我环椒ㄖ?,在委托更新時不可達(dá)到的從屬服務(wù)器最終會得到該更新。
      根據(jù)本發(fā)明的系統(tǒng)也可以確保暫時不可用的服務(wù)器最終會接收到所有更新。例如,服務(wù)器可能會暫時從網(wǎng)絡(luò)中隔離,然后返回網(wǎng)絡(luò)而不用重啟。因?yàn)榉?wù)器不重啟,所以該服務(wù)器一般將不檢查更新。可以通過以下方法處理重返網(wǎng)絡(luò)的服務(wù)器讓服務(wù)器定期檢查新更新,或者讓主服務(wù)器定期查看這些服務(wù)器是否已經(jīng)接收到了這些更新。
      在一個實(shí)施例中,主服務(wù)器定期發(fā)送多播(multicast)的“脈動(heartbeat)”給從屬服務(wù)器。因?yàn)槎嗖シ椒赡懿豢煽?,所以從屬服?wù)器可能會錯過任意序列的脈動。例如,由于網(wǎng)絡(luò)分區(qū),從屬服務(wù)器可能暫時從網(wǎng)絡(luò)中斷開,或者從屬服務(wù)器可能暫時對網(wǎng)絡(luò)不可用,從而錯過脈動。因此,脈動可能包含有關(guān)最近更新的信息窗口。這樣的有關(guān)先前更新的信息可以用來降低網(wǎng)絡(luò)業(yè)務(wù)量,如下所述。
      在每一主服務(wù)器與每一從屬服務(wù)器中可以有至少兩層用戶層與系統(tǒng)層(或者DRS層)。用戶層可以相應(yīng)于該數(shù)據(jù)復(fù)制系統(tǒng)的用戶。DRS層可以相應(yīng)于該數(shù)據(jù)復(fù)制系統(tǒng)自身的實(shí)現(xiàn)。有關(guān)各方與層的交互如圖2所示。
      如圖2的啟動圖200所示,本實(shí)施例中,主服務(wù)器用戶202與從屬服務(wù)器用戶204層分別向下調(diào)用主服務(wù)器DRS 206與從屬服務(wù)器DRS 208層。這些向下調(diào)用可以采用以下形式(例如)registerMaster(DID,verNum,listener)registerSlave(DID,verNum,listener)其中DID為得自公知DID知識的標(biāo)識符并且指向感興趣的對象;verNum得自本地持久的存儲,作為該用戶的當(dāng)前版本號;listener為將處理來自DRS層的向上調(diào)用(upcall)的對象。該向上調(diào)用可以調(diào)用該listener對象的方法。然后主服務(wù)器可以開始發(fā)送脈動或者周期性增量以及當(dāng)前版本號。顯示了容器層210,其可以包含適合于從從屬服務(wù)器用戶204取得信息的容器??赡艿娜萜骼影ㄆ髽I(yè)版Java beans,萬維網(wǎng)界面以及J2EE(Java 2平臺企業(yè)版)應(yīng)用程序。其他應(yīng)用程序和/或組件可以插入容器層210(例如管理客戶端212)。在用戶與DRS層之間更新消息往來的例子在圖4的一階段方法以及圖5的兩階段方法中示出。
      圖4顯示了一個基本過程400,其可用于根據(jù)本發(fā)明的分層體系結(jié)構(gòu)中的一階段分發(fā)方法。在這一過程中,主服務(wù)器用戶層402對主服務(wù)器DRS層406進(jìn)行向下調(diào)用(downcall)404,以開始一階段分發(fā)。該調(diào)用可以是針對該系統(tǒng)中所有從屬服務(wù)器的,也可以是只針對從屬服務(wù)器的一個子集。如果該調(diào)用針對子集,則主服務(wù)器用戶層402可以確定該更新的范圍,或者哪些從屬服務(wù)器應(yīng)該接收到該更新。
      主服務(wù)器DRS層開始向從屬服務(wù)器DRS層410多播脈動408,其包含了主服務(wù)器上數(shù)據(jù)的當(dāng)前版本號。從屬服務(wù)器DRS層410從從屬服務(wù)器用戶層414請求用于該從屬服務(wù)器的當(dāng)前版本號。然后,從屬服務(wù)器用戶層414以從屬服務(wù)器版本號響應(yīng)416從屬服務(wù)器DRS層416。如果該從屬服務(wù)器同步,或者已經(jīng)是當(dāng)前版本號,則不再做進(jìn)一步的請求,直到下一次更新。如果該從屬服務(wù)器不同步,并且該從屬服務(wù)器在該更新范圍內(nèi),則從屬服務(wù)器DRS層410可以從主服務(wù)器DRS層406請求增量420,以將該從屬服務(wù)器更新到主服務(wù)器上數(shù)據(jù)的當(dāng)前版本號。主服務(wù)器DRS層406請求422主用戶層402創(chuàng)建增量以更新從屬服務(wù)器。然后主服務(wù)器用戶層402發(fā)送增量424到主服務(wù)器DRS層406,主服務(wù)器DRS層406將增量426與主服務(wù)器的當(dāng)前版本號轉(zhuǎn)發(fā)到從屬服務(wù)器DRS層410,從屬服務(wù)器DRS層410將增量426發(fā)送到從屬服務(wù)器用戶以備委托。當(dāng)前版本號與增量一起發(fā)送,以防止從屬服務(wù)器接到脈動408后主服務(wù)器進(jìn)行了更新。
      主服務(wù)器DRS層406可能繼續(xù)定期向(多個)從屬服務(wù)器發(fā)送包含版本號408的多播脈動。這就使不可用或者不能接受并處理增量的任何從屬服務(wù)器能夠確定其不在數(shù)據(jù)的當(dāng)前版本號上并且在以后請求增量420,例如當(dāng)該從屬服務(wù)器返回該系統(tǒng)時。
      圖5顯示了一個基本過程500,其可用于根據(jù)本發(fā)明的分層體系結(jié)構(gòu)中的兩階段分發(fā)方法。在這一過程中,主服務(wù)器用戶層502向下調(diào)用504進(jìn)入主服務(wù)器DRS層506,以開始兩階段分發(fā)。主服務(wù)器用戶層502也可能需要確定該更新的范圍,并且可以為該更新過程設(shè)置“超時”值。
      主服務(wù)器DRS層506向從屬服務(wù)器DRS層510發(fā)送新增量508。從屬服務(wù)器DRS層510為該新增量向從屬服務(wù)器用戶層514發(fā)送準(zhǔn)備請求512。然后,從屬服務(wù)器用戶層514向從屬服務(wù)器DRS層510響應(yīng)該從屬服務(wù)器是否能夠處理該新增量。從屬服務(wù)器DRS層將響應(yīng)518轉(zhuǎn)發(fā)給主服務(wù)器DRS層506。如果該從屬服務(wù)器因?yàn)槠洳煌讲荒芴幚碓撜埱?,則主服務(wù)器DRS層506對主服務(wù)器用戶層502進(jìn)行向上調(diào)用520,以生成將使該從屬服務(wù)器同步從而委托的增量。主服務(wù)器用戶層502向主服務(wù)器DRS層發(fā)送同步增量522,主服務(wù)器DRS層將同步增量524轉(zhuǎn)發(fā)給從屬服務(wù)器DRS層510。如果該從屬服務(wù)器能夠處理該同步增量,則從屬服務(wù)器DRS層510將向主服務(wù)器DRS層506發(fā)送同步響應(yīng)526,表示該從屬服務(wù)器現(xiàn)在可以處理該新增量。如果該從屬服務(wù)器不能處理該同步增量,則從屬服務(wù)器DRS層510將向主服務(wù)器DRS層506發(fā)送適當(dāng)?shù)耐巾憫?yīng)526。然后,根據(jù)從屬服務(wù)器是否響應(yīng)其能夠處理該新增量,主服務(wù)器DRS層506向從屬服務(wù)器DRS層510發(fā)送脈動委托/中止消息528。如果所有從屬服務(wù)器都能夠準(zhǔn)備該增量,則例如主服務(wù)器可以發(fā)送脈動委托信號。否則,主服務(wù)器可以發(fā)送脈動中止信號。脈動也可以包含更新的范圍,以使從屬服務(wù)器知曉其是否應(yīng)該處理包含在該脈動中的信息。
      從屬服務(wù)器DRS層將此命令530轉(zhuǎn)發(fā)給從屬服務(wù)器用戶層514,然后從屬服務(wù)器用戶層514為委托或中止對該新增量的更新。如果在由主服務(wù)器用戶層502所設(shè)置的超時(timeout)值之內(nèi)沒有完成準(zhǔn)備階段,則主服務(wù)器DRS層506可以自動向所有從屬服務(wù)器發(fā)送脈動中止528。例如,當(dāng)主服務(wù)器DRS層506不能聯(lián)系從屬服務(wù)器中的至少一個以確定該從屬服務(wù)器是否能夠處理委托時,這就可能發(fā)生。可以這樣設(shè)置超時值,使主服務(wù)器DRS層506在中止更新前的一段特定時間嘗試聯(lián)系該從屬服務(wù)器。
      對于一階段方法中的更新,這些脈動可能引起每一從屬服務(wù)器請求從該從屬服務(wù)器的數(shù)據(jù)當(dāng)前版本開始的增量。這一過程在圖6的流程圖中顯示。在該基本過程600中,其可能使用或不使用根據(jù)本發(fā)明的分層體系結(jié)構(gòu),從主服務(wù)器向從屬服務(wù)器發(fā)送主服務(wù)器上當(dāng)前數(shù)據(jù)的版本號602。從屬服務(wù)器確定自己是否已經(jīng)被更新到該當(dāng)前版本號604。如果從屬服務(wù)器不在當(dāng)前版本上,則它將請求從主服務(wù)器發(fā)送增量以更新該從屬服務(wù)器606。當(dāng)增量被發(fā)送到從屬服務(wù)器時,該從屬服務(wù)器將處理該增量以將從屬服務(wù)器數(shù)據(jù)更新到當(dāng)前版本608。然后,從屬服務(wù)器將自己的版本號更新到單前版本號610。
      對于兩階段方法中的更新,主服務(wù)器可以開始于準(zhǔn)備階段,在該階段中主服務(wù)器主動向每一從屬服務(wù)器發(fā)送從緊接上一版本的增量。這一過程在圖7的流程圖中顯示。在基本過程700中,其可能使用或不使用根據(jù)本發(fā)明的分層體系結(jié)構(gòu),從主服務(wù)器向(多個)從屬服務(wù)器發(fā)送信息包702。每個收到該包的從屬服務(wù)器確定自己是否能夠處理該包并且更新到該當(dāng)前版本704。每個收到該包的從屬服務(wù)器向主服務(wù)器響應(yīng),指示該從屬服務(wù)器是否能夠處理該包。如果所有從屬服務(wù)器(向它們發(fā)送了增量)在某個超時時段內(nèi)確認(rèn)成功處理了增量,則主服務(wù)器可能決定委托該更新。否則,主服務(wù)器可能決定中止該更新。一旦作出了該決定,則主服務(wù)器向(多個)從屬服務(wù)器發(fā)送消息,表示應(yīng)該委托或中止該更新708。如果該決定是委托,則每一服務(wù)器處理委托710??梢赃M(jìn)一步使用脈動來表示委托或中止是否發(fā)生了,以防止從屬服務(wù)器之一錯過該命令。
      可以配置從屬服務(wù)器以使用緩存數(shù)據(jù)來立即啟動和/或重啟,而不首先從主服務(wù)器獲得當(dāng)前版本號。如上所述,根據(jù)本發(fā)明的一種協(xié)議允許從屬服務(wù)器在本地磁盤上持久緩存數(shù)據(jù)。該緩存降低了系統(tǒng)啟動所需的時間,并且通過降低需要傳送的數(shù)據(jù)量而增強(qiáng)了可擴(kuò)展性。通過允許從屬服務(wù)器在主服務(wù)器不可達(dá)到時能夠啟動和/或重啟,該協(xié)議可以增強(qiáng)可靠性,并且可以進(jìn)一步允許將更新打包為版本之間的增量。如果不存在緩存的數(shù)據(jù),則從屬服務(wù)器可以等待主服務(wù)器或者可以自己下拉數(shù)據(jù)。如果從屬服務(wù)器有緩存,則其仍然可能不希望失去同步。如果從屬服務(wù)器知道等待,則可以降低啟動時間。
      該協(xié)議可以是雙邊的,即根據(jù)環(huán)境,主服務(wù)器或者從屬服務(wù)器可以開始傳輸數(shù)據(jù)。例如,在域啟動期間,從屬服務(wù)器可以從主服務(wù)器下拉增量。當(dāng)從屬服務(wù)器確定自己與該增量所要更新的版本不同時,該從屬服務(wù)器可以請求從其當(dāng)前版本到當(dāng)前系統(tǒng)版本的增量。在一階段分發(fā)期間,從屬服務(wù)器也可以下拉增量。此處,該系統(tǒng)可以讀取脈動,確定自己已經(jīng)錯過了更新,并且請求適當(dāng)?shù)脑隽俊?br> 當(dāng)需要從例外情況恢復(fù)時,從屬服務(wù)器也可以下拉增量。例如,當(dāng)該系統(tǒng)的組件失去同步時,就可能存在以外情況。當(dāng)從屬服務(wù)器下拉增量時,該增量可以是數(shù)據(jù)任意版本之間的。換而言之,該增量可以是該從屬服務(wù)器的當(dāng)前版本與該系統(tǒng)(或域)的當(dāng)前版本之間的,而不管這些版本之間可能有多少代。在此實(shí)施例中,脈動的可用性以及接收增量的功能可以提供該系統(tǒng)的同步。
      除了從屬服務(wù)器可以下拉增量,主服務(wù)器也可以在兩階段分發(fā)期間向從屬服務(wù)器推送增量。在一個實(shí)施例中,這些增量總是在數(shù)據(jù)的連續(xù)版本之間的。該兩階段分發(fā)方法可以最小化有關(guān)方面之間不一致的可能性。只要可能,從屬服務(wù)器用戶就可以處理準(zhǔn)備,而不會向客戶端公開該更新或者使該更新無法退回。這可以包括諸如檢查服務(wù)器已防沖突的任務(wù)。如果任何一個從屬服務(wù)器發(fā)出出錯信號,例如通過發(fā)送“磁盤滿”或者“不一致配置”信息,則可以將該更新統(tǒng)一退回。
      然而,仍然有可能出現(xiàn)不一致。例如,在處理委托時可能出錯,原因是諸如不能打開套接字。服務(wù)器也可以在不同的時間委托并公開更新。因?yàn)閿?shù)據(jù)不能剛好在同一時間到達(dá)每一個被管理的服務(wù)器,所以會有一些波動效應(yīng)。使用多播可以支持小的時間窗口,以最小化該波動效應(yīng)。在一個實(shí)施例中,如果錯過了委托,不管是錯過了該信號,還是主服務(wù)器崩潰等等,則已做準(zhǔn)備的從屬服務(wù)器會中止,多播的盡力型方法可以使從屬服務(wù)器錯過委托信號。如果主服務(wù)器在委托階段中途崩潰,則可能會沒有日志,或者沒有恢復(fù)的方法。對于主服務(wù)器可能沒有方法命令剩余的從屬服務(wù)器它們需要委托。一旦中止,如果版本沒有被正確地退回,則一些從屬服務(wù)器可能會終止委托該數(shù)據(jù)。在一個實(shí)施例中,剩余從屬服務(wù)器可以使用一階段分發(fā)獲得更新。例如,這可以發(fā)生在被管理服務(wù)器響應(yīng)于接收自管理服務(wù)器的脈動而下拉增量時。這種方法可以保持系統(tǒng)可擴(kuò)展性,而如果為了避免任何委托或者版本錯,系統(tǒng)限制(tie down)分發(fā),則可能失去可擴(kuò)展性。
      系統(tǒng)所管理的每一數(shù)據(jù)項(xiàng)都可以被構(gòu)造成具有唯一的長壽命的域標(biāo)識符(DID),該域標(biāo)識符在整個域上是公知的。數(shù)據(jù)項(xiàng)可以是大型復(fù)雜對象,包括許多組件,每一組件都與該域內(nèi)服務(wù)器的某一子集有關(guān)。因?yàn)檫@些對象可以是一致性的單位,所以希望有幾個大型對象,而不是多個小型對象,作為示例,單獨(dú)一個數(shù)據(jù)項(xiàng)或?qū)ο缶涂梢源硐到y(tǒng)的所有配置信息,包括諸如config.xml文件或應(yīng)用程序EAR(application-EAR)文件的代碼文件。數(shù)據(jù)項(xiàng)內(nèi)的給定組件,例如,可以有關(guān)于單個服務(wù)器的線程數(shù)目,有關(guān)于族的被部署服務(wù),或者有關(guān)于整個域的安全證書。兩個版本之間的增量可以包括所有或者一些這些組件的新值。例如,這些組件可以包括部署在域成員上的企業(yè)版Java Beans。增量可以只包括對這些Java Beans的子集的改動。
      增量的“范圍”可以指在該增量中具有相關(guān)組件的所有服務(wù)器的集合。根據(jù)本發(fā)明的管理服務(wù)器可能能夠截收配置改動,以確定該增量的范圍。主服務(wù)器上的DRS系統(tǒng)可能需要知道該范圍,以將數(shù)據(jù)發(fā)送給適當(dāng)?shù)膹膶俜?wù)器。當(dāng)主服務(wù)器可能在每次更新中只需要聯(lián)系服務(wù)器的一個子集時,向每一服務(wù)器發(fā)送每一配置更新可能是對時間與資源的浪費(fèi)。
      為了控制分發(fā),主服務(wù)器用戶可以與連續(xù)版本之間的增量一起提供每一更新的范圍。范圍可以表示為一組指向服務(wù)器和/或族的名稱,其可以取自域內(nèi)的同一命名空間。在一個實(shí)施例中,DRS用戶使用解析器模塊將名稱映射到地址。族名稱可以映射到在該族內(nèi)的所有服務(wù)器的地址的集合。這些地址可能是相對的,例如相對于虛擬機(jī)器。如本領(lǐng)域已知并且使用的,該解析器可以確定是否存在中間防火墻,并且根據(jù)該服務(wù)器是否“在防火墻里面”而返回“里面”或著“外面”的地址。管理服務(wù)器或者其他服務(wù)器可以用配置數(shù)據(jù)初始化相應(yīng)的解析器。
      與每一被管理的數(shù)據(jù)項(xiàng)的唯一的長壽命的標(biāo)識符(DID)一起,數(shù)據(jù)項(xiàng)的每一個版本也可以具有長壽命的版本號。每一版本號對更新企圖可以是唯一的,以使服務(wù)器不會因?yàn)閷φ_版本的混淆而錯誤地更新或者不更新。類似地,被中止的兩階段分發(fā)的版本號也不能復(fù)用。只要給定了版本號,主服務(wù)器就可以產(chǎn)生兩個任意版本之間的增量。如果主服務(wù)器不能產(chǎn)生這樣的增量,則可以提供數(shù)據(jù)或應(yīng)用程序的完整拷貝。
      可能希望該數(shù)據(jù)復(fù)制服務(wù)盡可能地通用。因此可能對該系統(tǒng)的用戶有幾個假定。例如,該系統(tǒng)可能依賴于三個主要假定該系統(tǒng)可能包括增加版本號的方法。
      該系統(tǒng)可能將版本號持久存貯在主服務(wù)器以及從屬服務(wù)器上。
      該系統(tǒng)可能包括比較版本號并且確定相等的方法。
      滿足這些假定可以通過用戶級的DRS接口實(shí)現(xiàn),例如“VersionNumber”接口。這樣的接口使用戶能夠提供版本號抽象的特定概念與實(shí)現(xiàn),同時保證該系統(tǒng)可以訪問版本號屬性。例如,在Java中VersionNumber接口可以以下實(shí)現(xiàn)package weblogic.drs;public interface VersionNumber extends Serializable{VersionNumber increment();void persist()throws Exception;boolean equals(VersionNumber anotherVN);boolean strictlyGreaterThan(VersionNumber anotherVN);}用戶可以向系統(tǒng)提供的這一抽象的簡單化的實(shí)現(xiàn)可以是大的正整數(shù)。該實(shí)現(xiàn)也可以確保該系統(tǒng)可以將增量信息借助網(wǎng)絡(luò)從主服務(wù)器傳送到從屬服務(wù)器,這在本領(lǐng)域中被稱為“可序列化”。
      如果使用上述的抽象,則在用戶級上從增量的詳細(xì)內(nèi)容的概念上進(jìn)行抽象可能是有用的。系統(tǒng)可能不需要知道增量信息結(jié)構(gòu),并且實(shí)際上系統(tǒng)根本就不能確定該結(jié)構(gòu)。增量的實(shí)現(xiàn)也可能是可序列化的,這就確保了系統(tǒng)能夠借助網(wǎng)絡(luò)將增量版本信息從主服務(wù)器傳送到從屬服務(wù)器。
      可能希望主服務(wù)器與適當(dāng)?shù)腄ID和版本號一起持久存儲每一數(shù)據(jù)項(xiàng)的記錄的副本。在開始兩階段分發(fā)之前,主服務(wù)器可以持久存儲所提出的新版本號,以確保萬一主服務(wù)器出故障時,該版本號不會被復(fù)用。從屬服務(wù)器可以與適當(dāng)?shù)腄ID和版本號一起持久存儲每一相關(guān)數(shù)據(jù)項(xiàng)的最近副本。從屬服務(wù)器也可以被配置為進(jìn)行必須的緩存,以使該從屬服務(wù)器可能必須每一次都取得數(shù)據(jù)或協(xié)議。這可能不是對所有情況都希望的,但可以提供來處理可能發(fā)生的某些情況。
      根據(jù)本發(fā)明的系統(tǒng)可以進(jìn)一步包括并發(fā)限制。例如,在更新的兩階段分發(fā)期間,對于給定域上的給定DID,可能不允許某些操作。這些操作可能包括一或兩階段更新,例如在同一DID上,將范圍成員身份修改到非空交集范圍上。
      在至少一個實(shí)施例中,主服務(wù)器向域內(nèi)的每一服務(wù)器上的從屬服務(wù)器DRS定期多播脈動或者信息包。對于每一DID,脈動可以包括有關(guān)(多個)最近更新的信息窗口,包括每一更新版本號;相對于先前版本的增量的范圍,以及是否委托或者中止該更新。也可能包括有關(guān)當(dāng)前版本的信息。也可以使用有關(guān)較老版本的信息,以最小化返回主服務(wù)器的業(yè)務(wù)量,并且不是用于正確性或者鮮活性。
      在增量中包括較老版本信息的情況下,從屬服務(wù)器可以委托自己在準(zhǔn)備時所期望的那一部分更新,并且請求新的增量以處理更近的更新。至少對于某些固定的可配置數(shù)目的脈動,可以包括有關(guān)給定版本的信息,盡管快速的更新可能使窗口增大到不可接受的尺寸。在另一實(shí)施例中,一旦主服務(wù)器確定所有從屬服務(wù)器都已經(jīng)接收了更新,則可以拋棄有關(guān)較老版本的信息。
      多播的脈動可以顧及到多個屬性。這些脈動可以是異步的或“單向”的。結(jié)果,到從屬服務(wù)器響應(yīng)脈動的時間,主服務(wù)器可能已經(jīng)升級到新的狀態(tài)。另外,并非所有的從屬服務(wù)器可以在剛好同一時間響應(yīng)。這樣一來,主服務(wù)器可以假定從屬服務(wù)器不知道它的狀態(tài),并且可以包括增量要更新的狀態(tài)。這些脈動也可以是不可靠的,因?yàn)閺膶俜?wù)器可能錯過任意序列的脈動。這又可以導(dǎo)致在脈動中包括較老版本信息。在一個實(shí)施例中,從屬服務(wù)器以脈動發(fā)送的順序接收脈動。例如,從屬服務(wù)器不能調(diào)節(jié)版本七,直到它委托了版本六。服務(wù)器可以等待直到它收到六,或者它可以簡單地拋棄六而委托七。這種順序可以消除由于版本回退而產(chǎn)生混亂的可能性。
      如上所述,域也可能使用族(cluster),如圖3所示(多播脈動滑動屬性)。此實(shí)施例的一般網(wǎng)絡(luò)拓?fù)錇槎嗖u集合,這些多播島連接到包含主服務(wù)器的集線器島。多播業(yè)務(wù)可以從集線器向外點(diǎn)到點(diǎn)地轉(zhuǎn)發(fā)。可能在一階段方法中分發(fā)的小增量可以直接通過多播發(fā)送。在其他情況下,可以在轂輻式多播結(jié)構(gòu)上加上點(diǎn)到點(diǎn)轉(zhuǎn)發(fā)方案,以減少主服務(wù)器處的瓶頸。
      在圖3的域圖300中,可以將一個或更多個被管理服務(wù)器302組合到多播島內(nèi),也稱為族304。域308的管理服務(wù)器306作為集線器島312的主服務(wù)器,并且是到該域的入口點(diǎn),例如通過瀏覽器310。管理服務(wù)器306聯(lián)系族中的一個被管理服務(wù)器,也被稱為族主服務(wù)器。在此實(shí)施例中,管理服務(wù)器可以向每一族主服務(wù)器多播增量或者消息,然后每一族主服務(wù)器通過多播向該族內(nèi)的其他被管理服務(wù)器轉(zhuǎn)發(fā)該增量或者消息。族主服務(wù)器不能擁有任何配置信息,而是從管理服務(wù)器接收該信息。在族主服務(wù)器下線或者崩潰的情況下,該域中的另外一個被管理服務(wù)器可以頂替作為族主服務(wù)器。在這種情況下,可以設(shè)置一種機(jī)制來防止下線服務(wù)器返回該族作為第二族主服務(wù)器。這可以通過族或系統(tǒng)基礎(chǔ)結(jié)構(gòu)處理。
      也可能有多于一個的域。在這種情況下,可以有嵌套域或者“合成域”。通過直接聯(lián)系每一個域主服務(wù)器,可以將信息發(fā)布給域主服務(wù)器,這是因?yàn)槊恳挥蛑鞣?wù)器可以具有將信息推到其他域主服務(wù)器的功能。然而,可能不希望向域主服務(wù)器進(jìn)行多播。
      在一階段分發(fā)中,域主服務(wù)器可以進(jìn)行向下調(diào)用以觸發(fā)更新的分發(fā)。這樣的向下調(diào)用可以采用以下形式startOnePhase(DID,newVerNum,scope)其中DID為被更新的數(shù)據(jù)項(xiàng)或者對象的ID,newVerNum為該對象的新的版本號,scope為應(yīng)用該更新的范圍。主服務(wù)器DRS可以通過以下方式響應(yīng)升級到新的版本號,將新號寫入磁盤,并且在隨后的脈動中包括該信息。
      當(dāng)從屬服務(wù)器DRS接收脈動時,通過分析與最近更新有關(guān)的信息窗口,它可以確定自己是否需要下拉。如果從屬服務(wù)器的當(dāng)前版本號在該窗口之內(nèi),并且該從屬服務(wù)器不在任何隨后的被委托更新的范圍之內(nèi),則它可以簡單地升級到最近的版本號,而不下拉任何數(shù)據(jù)。該過程可以包括從屬服務(wù)器為最新的平凡情況。否則,從屬服務(wù)器DRS可以進(jìn)行點(diǎn)到點(diǎn)調(diào)用,要求從主服務(wù)器DRS的增量,或者另一類似請求,其形式可能為createDelta(DID,curVerNum)其中curVerNum為從屬服務(wù)器的當(dāng)前號,這將被送回到域主服務(wù)器或者族主服務(wù)器。為了處理該請求,主服務(wù)器DRS可以進(jìn)行向上調(diào)用,例如create(curVerNum)。該向上調(diào)用可以通過適當(dāng)?shù)谋O(jiān)聽器進(jìn)行,以取得增量與新的版本號,并且將這些返回到從屬服務(wù)器DRS。應(yīng)該包括新的版本號,這是因?yàn)樵趶膶俜?wù)器最后一次收到脈動之后版本號可能已經(jīng)改變了。增量可以只相當(dāng)于最近委托的更新。任何進(jìn)行著的兩階段更新可以通過獨(dú)立的機(jī)制進(jìn)行處理。然后,從屬服務(wù)器DRS可以向從屬服務(wù)器用戶進(jìn)行向上調(diào)用,例如commitOnePhase(newVerNum,delta),然后升級到新版本號。
      為了觸發(fā)兩階段分發(fā),主服務(wù)器用戶可以進(jìn)行向下調(diào)用,例如startTwoPhase(DID,oldVerNum,newVerNum,delta,scope,timeout),其中DID為待更新的數(shù)據(jù)項(xiàng)或者對象,oldVerNum為先前版本號,newVerNum為新版本號(距先前版本號一步),delta為待推送的連續(xù)版本之間的增量,scope為更新的范圍,而timeout為該任務(wù)的最大生存時間。因?yàn)椤皽?zhǔn)備”與“委托”是同步的,所以可能希望為該任務(wù)設(shè)置特定的時間限制。可以包括先前的版本號,以使不同版本號上的服務(wù)器不會采用該增量。
      在一個實(shí)施例中,主服務(wù)器DRS遍歷范圍中的所有服務(wù)器,并且對每一從屬服務(wù)器DRS進(jìn)行點(diǎn)到點(diǎn)調(diào)用,例如prepareTwoPhase(DID,oldVerNum,newVerNum,delta,timeout)。然后,從屬服務(wù)器取得適當(dāng)?shù)某瑫r值。在增量大時,例如包含二進(jìn)制代碼的增量,可以使用點(diǎn)到點(diǎn)協(xié)議。小一些的更新(例如,可能只包括諸如緩存大小的修改之類的次要配置改動)可以使用一階段方法進(jìn)行??梢允褂迷摲椒ㄊ且?yàn)橄駪?yīng)用程序增加的大改動以一致的方式到達(dá)服務(wù)器可能更加重要。可替換地,主服務(wù)器可能求助于族主服務(wù)器(如果存在的話),并且讓族主服務(wù)器進(jìn)行調(diào)用。讓主服務(wù)器代理族主服務(wù)器可以提高系統(tǒng)可擴(kuò)展性。
      在一個實(shí)施例中,每次向從屬服務(wù)器或者族主服務(wù)器的調(diào)用產(chǎn)生四個響應(yīng)中的一個,例如“不可達(dá)到”、“不同步”、“未確認(rèn)”和“確認(rèn)”,它們由主服務(wù)器DRS處理。如果響應(yīng)為“不可達(dá)到”,則當(dāng)前服務(wù)器不能達(dá)到,并且可能排隊重試。如果響應(yīng)為“不同步”,則該服務(wù)器可能排隊重試。同時,該服務(wù)器將通過使用從主服務(wù)器的下拉而試圖使自己同步,從而在重試時該服務(wù)器可以接收增量。如果響應(yīng)為“未確認(rèn)”,則中止該任務(wù)。當(dāng)該服務(wù)器不能接受該任務(wù)時,可能給出該響應(yīng)。如果響應(yīng)是“確認(rèn)”,則不采取行動。
      為了準(zhǔn)備從屬服務(wù)器,主服務(wù)器DRS可以調(diào)用諸如prepareTwoPhase的方法。當(dāng)從主服務(wù)器DRS收到“準(zhǔn)備”請求時,從屬服務(wù)器DRS可以先檢查自己的當(dāng)前版本號是否等于待更新的老版本號。如果不等,則該從屬服務(wù)器可以返回“不同步”的響應(yīng)。然后,該從屬服務(wù)器可以從主服務(wù)器DRS下拉增量,就好像它剛剛收到脈動一樣。最終,主服務(wù)器DRS可以重試prepareTwoPhase。與讓主服務(wù)器推送增量相比,該方法可以更加簡單,但需要主服務(wù)器的仔細(xì)配置??赡苄枰鞣?wù)器的配置,因?yàn)榈却憫?yīng)時間太長可能使任務(wù)超時。另外,等待時間不足可能導(dǎo)致取得“不同步”響應(yīng)的其他請求。更好地可能是在完成來自從屬服務(wù)器的下拉請求時,觸發(fā)重試。
      如果從屬服務(wù)器同步,則在從屬服務(wù)器一側(cè),該從屬服務(wù)器可以向客戶層盡可能深入該服務(wù)器地進(jìn)行向上調(diào)用,例如prepareTwoPhase(newVerNum,delta)。然后,將返回的結(jié)果“確認(rèn)”或者“未確認(rèn)”送到主服務(wù)器DRS。如果響應(yīng)為“確認(rèn)”,則從屬服務(wù)器可以進(jìn)入特殊的已準(zhǔn)備狀態(tài)。如果響應(yīng)為“未確認(rèn)”,則從屬服務(wù)器可以沖掉該更新的所有記錄。如果以后由于某種原因要委托該更新,則該從屬服務(wù)器可以以一階段分發(fā)取得該更新,然后這可能失敗。
      如果在超時期內(nèi)主服務(wù)器DRS從每一服務(wù)器都取得了“確認(rèn)”,則主服務(wù)器DRS可以進(jìn)行委托向上調(diào)用,例如twoPhaseSucceeded(newVerNum),并且升級到新的版本號。如果主服務(wù)器DRS從任一服務(wù)器收到“未確認(rèn)”,或者如果超時期過期,則主服務(wù)器DRS可以進(jìn)行中止向上調(diào)用,例如twoPhaseFailed(newVerNum,reason),并且不改變版本號。此處,reason為例外,包含所有“未確認(rèn)”響應(yīng)的累積。在這兩種情況下,在隨后的脈動中都可能包括中止/委托信息。
      在任意時間上,主服務(wù)器DRS都可以進(jìn)行取消向下調(diào)用,例如cancelTwoPhase(newVerNum)。然后,主服務(wù)器DRS可以通過以下方式處理帶調(diào)用如果該任務(wù)沒有正在進(jìn)行,則拋出例外,或者好象要發(fā)生中止一樣動作。
      如果已準(zhǔn)備的從屬服務(wù)器DRS獲得表示新版本已經(jīng)被委托的脈動,則從屬服務(wù)器DRS可以進(jìn)行向上調(diào)用,例如commitTwophase(newVerNum),并且升級到新的版本號。如果已準(zhǔn)備的從屬服務(wù)器DRS獲得表示新版本已經(jīng)被中止的脈動,則從屬服務(wù)器DRS可以中止該任務(wù)。當(dāng)從屬服務(wù)器獲得其中窗口已經(jīng)超過新版本、從屬服務(wù)器獲得對同一數(shù)據(jù)項(xiàng)上的新prepareTwoPhase調(diào)用或者從屬服務(wù)器對任務(wù)超時的脈動時,從屬服務(wù)器也可以中止任務(wù)。在這樣的情況下,從屬服務(wù)器可以進(jìn)行向上調(diào)用,例如abortTwophase(newVerNum),并且不改變版本號。對于(例如)在從屬服務(wù)器已經(jīng)準(zhǔn)備之后,但在從屬服務(wù)器委托之前主服務(wù)器出故障的情況下,這是一種確保正確處理的方法。
      提供本發(fā)明實(shí)施例的上述描述是為了展示與描繪的目的。這不是窮盡的也不是用來將本發(fā)明局限于所公開的精確形式。對于本領(lǐng)域的技術(shù)人員來講,顯然可以作出許多修改與變動。選擇并描述這些實(shí)施例的目的是更好地解釋本發(fā)明的原理與實(shí)際用途,由此使本領(lǐng)域技術(shù)人員能夠理解本發(fā)明的種種實(shí)施例與適合于所考慮的特定用途的種種修改。本發(fā)明的范圍由權(quán)利要求及其等價物所界定。
      權(quán)利要求
      1.一種方法,用來通過網(wǎng)絡(luò)從主服務(wù)器向從屬服務(wù)器復(fù)制數(shù)據(jù),該方法包括以下步驟從主服務(wù)器向從屬服務(wù)器發(fā)送信息包,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含該數(shù)據(jù)當(dāng)前狀態(tài)的版本號;使該從屬服務(wù)器能夠確定在該從屬服務(wù)器上的該數(shù)據(jù)是否已經(jīng)被更新以對應(yīng)包含在該包中的版本號;以及如果在該從屬服務(wù)器上的該數(shù)據(jù)不對應(yīng)包含在該包中的版本號,則請求從主服務(wù)器向從屬服務(wù)器發(fā)送增量,該增量包含更新該從屬服務(wù)器所需的信息。
      2.如權(quán)利要求1所述的方法,進(jìn)一步包括在該主服務(wù)器上存儲該數(shù)據(jù)的原始拷貝。
      3.如權(quán)利要求1所述的方法,進(jìn)一步包括在每一從屬服務(wù)器的本地磁盤上持久緩存該數(shù)據(jù)。
      4.如權(quán)利要求1所述的方法,進(jìn)一步包括如果該數(shù)據(jù)已經(jīng)改變,則為該主服務(wù)器上的該數(shù)據(jù)的當(dāng)前狀態(tài)確定唯一的版本號。
      5.一種方法,用來通過網(wǎng)絡(luò)從主服務(wù)器向從屬服務(wù)器復(fù)制數(shù)據(jù),該方法包括以下步驟從主服務(wù)器向從屬服務(wù)器發(fā)送版本號,該版本號有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的當(dāng)前狀態(tài);使該從屬服務(wù)器能夠確定該從屬服務(wù)器是否已經(jīng)被更新以反應(yīng)對應(yīng)于發(fā)送自該主服務(wù)器的版本號的該數(shù)據(jù)的當(dāng)前狀態(tài);以及如果在該從屬服務(wù)器不對應(yīng)由該主服務(wù)器發(fā)送的版本號,則請求從主服務(wù)器向從屬服務(wù)器發(fā)送增量,該增量包含更新該從屬服務(wù)器所需的信息。
      6.如權(quán)利要求5所述的方法,進(jìn)一步包括從主服務(wù)器向從屬服務(wù)器發(fā)送該增量。
      7.如權(quán)利要求5所述的方法,進(jìn)一步包括向從屬服務(wù)器委托該增量。
      8.如權(quán)利要求5所述的方法,進(jìn)一步包括在委托該增量之后,更新從屬服務(wù)器的版本號。
      9.如權(quán)利要求5所述的方法,進(jìn)一步包括從主服務(wù)器向從屬服務(wù)器周期性地發(fā)送版本號。
      10.如權(quán)利要求5所述的方法,進(jìn)一步包括向從屬服務(wù)器發(fā)送版本號直到該從屬服務(wù)器確認(rèn)收到該版本號。
      11.如權(quán)利要求5所述的方法,進(jìn)一步包括包括具有更新從屬服務(wù)器所需的版本號的數(shù)據(jù)。
      12.如權(quán)利要求11所述的方法,進(jìn)一步包括一旦收到更新該從屬服務(wù)器所需的數(shù)據(jù)就委托該數(shù)據(jù)。
      13.如權(quán)利要求5所述的方法,進(jìn)一步包括在將增量從主服務(wù)器送出之前,確定該增量的范圍。
      14.一種用來通過包括主服務(wù)器與至少一個從屬服務(wù)器的網(wǎng)絡(luò)復(fù)制數(shù)據(jù)的方法,該方法包括以下步驟從主服務(wù)器向網(wǎng)絡(luò)上每一從屬服務(wù)器發(fā)送信息包,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含用于該數(shù)據(jù)當(dāng)前狀態(tài)的當(dāng)前版本號,該信息進(jìn)一步有關(guān)于該數(shù)據(jù)的先前改動以及用于每次先前改動的版本號;使每一從屬服務(wù)器都能夠確定該從屬服務(wù)器是否已經(jīng)被更新以對應(yīng)該當(dāng)前版本號;如果該從屬服務(wù)器沒有錯過先前的改動,則允許每一從屬服務(wù)器委托該信息;以及在該從屬服務(wù)器委托該信息包之前,允許每一錯過了先前改動的從屬服務(wù)器請求從主服務(wù)器向該從屬服務(wù)器發(fā)送先前的改動。
      15.如權(quán)利要求14所述的方法,進(jìn)一步包括向從屬服務(wù)器委托該信息包。
      16.如權(quán)利要求14所述的方法,進(jìn)一步包括如果從屬服務(wù)器不能委托該更新,則中止該信息包的委托。
      17.如權(quán)利要求14所述的方法,進(jìn)一步包括在將增量從主服務(wù)器送出之前,確定該增量的范圍。
      18.如權(quán)利要求14所述的方法,進(jìn)一步包括在該增量中包括每一先前改動的范圍。
      19.一種用來通過包括主服務(wù)器與至少一個從屬服務(wù)器的網(wǎng)絡(luò)復(fù)制數(shù)據(jù)的方法,該方法包括以下步驟從主服務(wù)器向網(wǎng)絡(luò)上每一從屬服務(wù)器發(fā)送信息包,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含用于該數(shù)據(jù)在先狀態(tài)的在先版本號以及用于該數(shù)據(jù)新狀態(tài)的新版本號,該信息進(jìn)一步有關(guān)于該數(shù)據(jù)的先前改動以及用于每次先前改動的版本號;使每一從屬服務(wù)器都能夠確定該從屬服務(wù)器上的數(shù)據(jù)是否對應(yīng)包含在該包中的該在先版本號;如果在該從屬服務(wù)器上的該數(shù)據(jù)對應(yīng)包含在該包中的該在先版本號,則允許每一從屬服務(wù)器委托該信息包,該委托還將該從屬服務(wù)器的版本更新到該新版本號;以及在該從屬服務(wù)器委托該信息包之前,允許每一不對應(yīng)該在先版本號的從屬服務(wù)器請求從主服務(wù)器發(fā)送增量,該增量包含將該從屬服務(wù)器的版本更新到該在先版本號所需的信息。
      20.一種用來通過包括主服務(wù)器與至少一個從屬服務(wù)器的網(wǎng)絡(luò)復(fù)制數(shù)據(jù)的方法,該方法包括以下步驟從主服務(wù)器向網(wǎng)絡(luò)上每一從屬服務(wù)器發(fā)送信息包,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含用于該數(shù)據(jù)在先狀態(tài)的版本號以及用于該數(shù)據(jù)新狀態(tài)的版本號,該信息進(jìn)一步有關(guān)于該數(shù)據(jù)的先前改動以及用于每次先前改動的版本號;使每一從屬服務(wù)器都能夠確定該從屬服務(wù)器上的數(shù)據(jù)是否對應(yīng)包含在該包中的該在先版本號;如果在該從屬服務(wù)器上的該數(shù)據(jù)對應(yīng)包含在該包中的該在先版本號,則允許每一從屬服務(wù)器委托該信息包,該委托還將該從屬服務(wù)器的版本更新到該新版本號;以及允許每一不對應(yīng)該在先版本號的從屬服務(wù)器請求從主服務(wù)器發(fā)送增量,該增量包含將該從屬服務(wù)器更新到該新版本號所需的信息。
      21.一種用來通過網(wǎng)絡(luò)從主服務(wù)器向至少一個從屬服務(wù)器復(fù)制數(shù)據(jù)的方法,該方法包括以下步驟從主服務(wù)器向從屬服務(wù)器發(fā)送信息包,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含該數(shù)據(jù)當(dāng)前狀態(tài)的版本號;接收給從屬服務(wù)器的信息包;使該從屬服務(wù)器能夠確定在該從屬服務(wù)器是否已經(jīng)被更新以對應(yīng)包含在該包中的版本號,并且進(jìn)一步確定如果需要更新以對應(yīng)包含在該包中的版本號,該從屬服務(wù)器是否能夠處理該信息包;從該從屬服務(wù)器向主服務(wù)器發(fā)送信號,該信號表示該從屬服務(wù)器是否需要被更新,以及該從屬服務(wù)器是否能夠處理該更新;以及從主服務(wù)器向從屬服務(wù)器發(fā)送響應(yīng)信號,該信號表示該從屬服務(wù)器是否應(yīng)該對包含在該包中的信息進(jìn)行委托;以及如果該響應(yīng)信號表示應(yīng)該如此,則向該從屬服務(wù)器委托該信息包。
      22.如權(quán)利要求21所述的方法,進(jìn)一步包括確定該至少一個從屬服務(wù)器中每一個是否都能委托該數(shù)據(jù)。
      23.如權(quán)利要求21所述的方法,進(jìn)一步包括確定該至少一個從屬服務(wù)器中每一個是否都已經(jīng)將響應(yīng)發(fā)送回主服務(wù)器。
      24.如權(quán)利要求21所述的方法,進(jìn)一步包括確定該至少一個從屬服務(wù)器中任何一個是否能夠委托該數(shù)據(jù)。
      25.如權(quán)利要求21所述的方法,進(jìn)一步包括只有當(dāng)該至少一個從屬服務(wù)器中每一個都能夠處理該委托時,才委托該數(shù)據(jù)。
      26.如權(quán)利要求21所述的方法,進(jìn)一步包括只要當(dāng)該至少一個從屬服務(wù)器中任何一個不能處理該委托,就中止該數(shù)據(jù)。
      27.如權(quán)利要求21所述的方法,進(jìn)一步包括向那些能夠處理該委托的從屬服務(wù)器委托該數(shù)據(jù)。
      28.如權(quán)利要求21所述的方法,進(jìn)一步包括向該至少一個從屬服務(wù)器中任何一個不能處理該委托的從屬服務(wù)器多播該數(shù)據(jù)。
      29.如權(quán)利要求21所述的方法,進(jìn)一步包括向該至少一個從屬服務(wù)器中任何一個不能處理該委托的從屬服務(wù)器脈動該新版本號。
      30.如權(quán)利要求21所述的方法,進(jìn)一步包括請求向不能處理該委托的從屬服務(wù)器發(fā)送增量。
      31.一種用來通過網(wǎng)絡(luò)復(fù)制數(shù)據(jù)的方法,該方法包括以下步驟(a)確定該復(fù)制應(yīng)該用一階段還是兩階段方法完成;(b)通過以下方法發(fā)送被確定為用一階段方法完成的復(fù)制信息從主服務(wù)器向從屬服務(wù)器發(fā)送信息包,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含該數(shù)據(jù)當(dāng)前狀態(tài)的版本號;接收給從屬服務(wù)器的信息包;使該從屬服務(wù)器能夠確定在該從屬服務(wù)器上的該數(shù)據(jù)是否已經(jīng)被更新以對應(yīng)該版本號;使該從屬服務(wù)器能夠確定在該從屬服務(wù)器上的該數(shù)據(jù)是否已經(jīng)被更新以對應(yīng)該版本號;以及如果在該從屬服務(wù)器不對應(yīng)該版本號,則請求從主服務(wù)器向從屬服務(wù)器發(fā)送增量,該增量包含更新該從屬服務(wù)器所需的信息。(c)通過以下方法發(fā)送被確定為用兩階段方法完成的復(fù)制信息從主服務(wù)器向從屬服務(wù)器發(fā)送信息包,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含該數(shù)據(jù)當(dāng)前狀態(tài)的版本號;使該從屬服務(wù)器能夠確定在該從屬服務(wù)器是否已經(jīng)被更新以對應(yīng)該版本號,并且進(jìn)一步確定該從屬服務(wù)器是否能夠處理該信息包;從該從屬服務(wù)器向主服務(wù)器發(fā)送信號,該信號表示該從屬服務(wù)器是否需要被更新,以及該從屬服務(wù)器是否能夠處理該更新;以及從主服務(wù)器向從屬服務(wù)器發(fā)送響應(yīng)信號,該信號表示該從屬服務(wù)器是否應(yīng)該對該信息包進(jìn)行委托;以及如果該響應(yīng)信號表示應(yīng)該如此,則向該從屬服務(wù)器委托該信息包。
      32.一種用來通過網(wǎng)絡(luò)復(fù)制數(shù)據(jù)的方法,該方法包括以下步驟(a)確定該復(fù)制應(yīng)該用一階段還是兩階段方法完成;(b)通過以下方法發(fā)送用一階段方法復(fù)制的信息從主服務(wù)器向從屬服務(wù)器發(fā)送該數(shù)據(jù)當(dāng)前狀態(tài)的版本號;如果在該從屬服務(wù)器上的該數(shù)據(jù)不對應(yīng)該版本號,則請求從主服務(wù)器向從屬服務(wù)器發(fā)送增量;以及(c)通過以下方法發(fā)送用兩階段方法復(fù)制的信息從主服務(wù)器向從屬服務(wù)器發(fā)送信息包;確定該從屬服務(wù)器是否能夠處理該信息包;以及如果該從屬服務(wù)器能夠處理該信息包,則向該從屬服務(wù)器委托該信息包。
      33.一種用來在網(wǎng)絡(luò)上從主機(jī)向多個從屬復(fù)制數(shù)據(jù)的方法,該方法包括以下步驟(a)確定該復(fù)制應(yīng)該用一階段還是兩階段方法完成;(b)通過以下方法發(fā)送用一階段方法復(fù)制的信息從主機(jī)向每一個從屬發(fā)送該數(shù)據(jù)當(dāng)前狀態(tài)的版本號;請求從主機(jī)向每一包含不對應(yīng)該版本號的數(shù)據(jù)的從屬發(fā)送增量;(c)通過以下方法發(fā)送用兩階段方法復(fù)制的信息從主機(jī)向從屬發(fā)送信息包;以及如果該多個從屬中的每一個都能夠處理該信息包,則向該從屬委托該信息包。
      34.一種用來使用一及兩階段方法在網(wǎng)絡(luò)上從主機(jī)向多個從屬復(fù)制數(shù)據(jù)的方法,該方法包括以下步驟(a)通過以下方法發(fā)送用一階段方法復(fù)制的信息從主機(jī)向每一個從屬發(fā)送該數(shù)據(jù)當(dāng)前狀態(tài)的版本號,從而每一個從屬可以請求從主機(jī)向該從屬發(fā)送增量以更新該從屬上的該數(shù)據(jù);以及(b)通過以下方法發(fā)送用兩階段方法復(fù)制的信息從主機(jī)向每一個從屬發(fā)送信息包,如果每一個從屬都能夠委托該信息包,則每一個從屬委托該信息包。
      35.一種用來使用一及兩階段方法在族的網(wǎng)絡(luò)上復(fù)制數(shù)據(jù)的方法,每個網(wǎng)絡(luò)族包括族主機(jī)以及至少一個族從屬,該方法包括以下步驟(a)通過以下方法發(fā)送用一階段方法復(fù)制的信息從第一族主機(jī)向所有其他族主機(jī)發(fā)送該數(shù)據(jù)當(dāng)前狀態(tài)的版本號,從而其他族主機(jī)每一個都可以請求增量;以及(b)通過以下方法發(fā)送用兩階段方法復(fù)制的信息從該第一族主機(jī)向其他族主機(jī)的每一個發(fā)送信息包,如果其他族主機(jī)能夠委托該信息包,則其他族主機(jī)委托該信息包。
      36.如權(quán)利要求35所述的方法,進(jìn)一步包括通過一階段方法,從每一個族主機(jī)向與該族主機(jī)一同在族中的每一族從屬發(fā)送數(shù)據(jù)。
      37.如權(quán)利要求35所述的方法,進(jìn)一步包括通過兩階段方法,從每一個族主機(jī)向與該族主機(jī)一同在族中的每一族從屬發(fā)送數(shù)據(jù)。
      38.一種計算機(jī)可讀介質(zhì),包括(a)用于從主服務(wù)器向網(wǎng)絡(luò)上每一從屬服務(wù)器發(fā)送信息包的裝置,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含用于該數(shù)據(jù)當(dāng)前狀態(tài)的當(dāng)前版本號,該信息進(jìn)一步有關(guān)于該數(shù)據(jù)的先前改動以及用于每次先前改動的版本號;(b)用于使每一從屬服務(wù)器都能夠確定該從屬服務(wù)器是否已經(jīng)被更新以對應(yīng)該當(dāng)前版本號的裝置;(c)用于如果該從屬服務(wù)器沒有錯過先前的改動,則允許每一從屬服務(wù)器委托該信息的裝置;以及(d)用于在該從屬服務(wù)器委托該信息包之前,允許每一錯過了先前改動的從屬服務(wù)器請求從主服務(wù)器向該從屬服務(wù)器發(fā)送先前的改動的裝置。
      39.一種計算機(jī)程序產(chǎn)品,用來由服務(wù)器計算機(jī)執(zhí)行以通過網(wǎng)絡(luò)復(fù)制數(shù)據(jù),該產(chǎn)品包括(a)用于從主服務(wù)器向網(wǎng)絡(luò)上每一從屬服務(wù)器發(fā)送信息包的計算機(jī)代碼,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含用于該數(shù)據(jù)當(dāng)前狀態(tài)的當(dāng)前版本號,該信息進(jìn)一步有關(guān)于該數(shù)據(jù)的先前改動以及用于每次先前改動的版本號;(b)用于使每一從屬服務(wù)器都能夠確定該從屬服務(wù)器是否已經(jīng)被更新以對應(yīng)該當(dāng)前版本號的計算機(jī)代碼;(c)用于如果該從屬服務(wù)器沒有錯過先前的改動,則允許每一從屬服務(wù)器委托該信息的計算機(jī)代碼;以及(d)用于在該從屬服務(wù)器委托該信息包之前,允許每一錯過了先前改動的從屬服務(wù)器請求從主服務(wù)器向該從屬服務(wù)器發(fā)送先前的改動的計算機(jī)代碼。
      40.一種用來通過網(wǎng)絡(luò)復(fù)制數(shù)據(jù)的系統(tǒng),包括(a)用于從主服務(wù)器向網(wǎng)絡(luò)上每一從屬服務(wù)器發(fā)送信息包的裝置,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含用于該數(shù)據(jù)當(dāng)前狀態(tài)的當(dāng)前版本號,該信息進(jìn)一步有關(guān)于該數(shù)據(jù)的先前改動以及用于每次先前改動的版本號;(b)用于使每一從屬服務(wù)器都能夠確定該從屬服務(wù)器是否已經(jīng)被更新以對應(yīng)該當(dāng)前版本號的裝置;(c)用于如果該從屬服務(wù)器沒有錯過先前的改動,則允許每一從屬服務(wù)器委托該信息的裝置;以及(d)用于在該從屬服務(wù)器委托該信息包之前,允許每一錯過了先前改動的從屬服務(wù)器請求從主服務(wù)器向該從屬服務(wù)器發(fā)送先前的改動的裝置。
      41.一種計算機(jī)系統(tǒng),包括處理器;由所述處理器執(zhí)行的目標(biāo)代碼,所述目標(biāo)代碼被配置來(a)從主服務(wù)器向網(wǎng)絡(luò)上每一從屬服務(wù)器發(fā)送信息包,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含用于該數(shù)據(jù)當(dāng)前狀態(tài)的當(dāng)前版本號,該信息進(jìn)一步有關(guān)于該數(shù)據(jù)的先前改動以及用于每次先前改動的版本號;(b)使每一從屬服務(wù)器都能夠確定該從屬服務(wù)器是否已經(jīng)被更新以對應(yīng)該當(dāng)前版本號;(c)如果該從屬服務(wù)器沒有錯過先前的改動,則允許每一從屬服務(wù)器委托該信息;以及(d)在該從屬服務(wù)器委托該信息包之前,允許每一錯過了先前改動的從屬服務(wù)器請求從主服務(wù)器向該從屬服務(wù)器發(fā)送先前的改動。
      42.一種用來通過網(wǎng)絡(luò)復(fù)制數(shù)據(jù)的系統(tǒng),包括a.包含該數(shù)據(jù)原始拷貝的主服務(wù)器,所述主服務(wù)器包括i.主服務(wù)器用戶層,用來通過調(diào)用開始方法來開始數(shù)據(jù)復(fù)制過程,該主服務(wù)器用戶層進(jìn)一步用來發(fā)送有關(guān)于該數(shù)據(jù)原始拷貝的信息;ii.主服務(wù)器服務(wù)層,包括開始方法,并且用來接收來自主服務(wù)器用戶層的調(diào)用以及有關(guān)于該數(shù)據(jù)原始拷貝的信息,該主服務(wù)器服務(wù)層進(jìn)一步用來產(chǎn)生并且發(fā)送數(shù)據(jù)復(fù)制包,該包包含至少一些有關(guān)于該數(shù)據(jù)原始拷貝的信息;b.從屬服務(wù)器,用來存儲來自該主服務(wù)器的數(shù)據(jù)的拷貝,該從屬服務(wù)器包括i.從屬服務(wù)器服務(wù)層,用來接收來自主服務(wù)器服務(wù)層的數(shù)據(jù)復(fù)制包,并且處理該數(shù)據(jù)復(fù)制包,該從屬服務(wù)器服務(wù)層進(jìn)一步用來發(fā)送有關(guān)于該數(shù)據(jù)復(fù)制包的信息;ii.從屬服務(wù)器用戶層,用來接收來自從屬服務(wù)器服務(wù)層的有關(guān)于該數(shù)據(jù)復(fù)制包的信息,該從屬服務(wù)器用戶層進(jìn)一步用來存儲在該數(shù)據(jù)復(fù)制包中的信息。
      43.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器用戶層與以下至少一個進(jìn)行通信主服務(wù)器用戶與主服務(wù)器用戶設(shè)備。
      44.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器用戶層用來以增量的形式發(fā)送有關(guān)于該數(shù)據(jù)原始拷貝的信息,該增量包含有關(guān)于該數(shù)據(jù)原始拷貝的當(dāng)前狀態(tài)與先前狀態(tài)之間的改動的信息。
      45.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器用戶層用來更新該數(shù)據(jù)原始拷貝。
      46.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器用戶層用來發(fā)生退回消息,該消息表示對該數(shù)據(jù)原始拷貝的改動不應(yīng)該在從屬服務(wù)器上復(fù)制。
      47.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器用戶層用來為該復(fù)制設(shè)置超時值。
      48.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器用戶層用來產(chǎn)生該數(shù)據(jù)原始拷貝的當(dāng)前狀態(tài)與該數(shù)據(jù)原始拷貝的在先狀態(tài)之間的增量。
      49.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器用戶層用來產(chǎn)生該數(shù)據(jù)原始拷貝的當(dāng)前狀態(tài)與該數(shù)據(jù)原始拷貝的先前狀態(tài)之間的增量。
      50.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器用戶層用來為該數(shù)據(jù)原始拷貝的每一個狀態(tài)生成唯一的版本號。
      51.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層用來多播該數(shù)據(jù)復(fù)制包。
      52.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層用來脈動該數(shù)據(jù)復(fù)制包。
      53.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層用來在該數(shù)據(jù)復(fù)制包內(nèi)包括版本號。
      54.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層用來包括將從屬服務(wù)器上的該數(shù)據(jù)的拷貝更新到該數(shù)據(jù)原始拷貝的當(dāng)前狀態(tài)所許的信息。
      55.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層進(jìn)一步用來生成并發(fā)送包括增量的數(shù)據(jù)復(fù)制包。
      56.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層進(jìn)一步用來生成并發(fā)送包括該數(shù)據(jù)原始拷貝的連續(xù)狀態(tài)之間的增量的數(shù)據(jù)復(fù)制包。
      57.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層進(jìn)一步用來生成并發(fā)送包括該數(shù)據(jù)原始拷貝的任意狀態(tài)之間的增量的數(shù)據(jù)復(fù)制包。
      58.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層用來從主服務(wù)器用戶層請求增量。
      59.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層用來向從屬服務(wù)器服務(wù)層發(fā)送委托消息。
      60.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層用來向從屬服務(wù)器服務(wù)層脈動委托消息。
      61.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層用來向從屬服務(wù)器服務(wù)層多播委托消息。
      62.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層用來向從屬服務(wù)器服務(wù)層發(fā)送中止消息。
      63.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層用來脈動中止消息。
      64.如權(quán)利要求42所述的系統(tǒng),其中所述主服務(wù)器服務(wù)層用來多播中止消息。
      65.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層與以下至少一個進(jìn)行通信從屬服務(wù)器用戶與從屬服務(wù)器用戶設(shè)備。
      66.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層用來檢查在該從屬服務(wù)器上存儲的數(shù)據(jù)的當(dāng)前版本號。
      67.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層向該從屬服務(wù)器上存儲的數(shù)據(jù)委托有關(guān)于該數(shù)據(jù)復(fù)制包的信息。
      68.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層用來中止對該從屬服務(wù)器上存儲的數(shù)據(jù)的更新。
      69.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層用來處理包含在該數(shù)據(jù)復(fù)制包中的準(zhǔn)備請求。
      70.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層用來向該從屬服務(wù)器服務(wù)層發(fā)送響應(yīng),該響應(yīng)有關(guān)于包含在該數(shù)據(jù)復(fù)制包中的準(zhǔn)備請求。
      71.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層用來在本地磁盤上持久緩存數(shù)據(jù)。
      72.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層用來更新在該從屬服務(wù)器上的數(shù)據(jù)的拷貝的版本號。
      73.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層用來從主服務(wù)器服務(wù)層請求增量。
      74.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層用來從該從屬服務(wù)器用戶層請求在該從屬服務(wù)器上存儲的數(shù)據(jù)的當(dāng)前版本號。
      75.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層用來向該從屬服務(wù)器用戶層發(fā)送委托消息。
      76.如權(quán)利要求42所述的系統(tǒng),其中所述從屬服務(wù)器服務(wù)層用來向該從屬服務(wù)器用戶層發(fā)送中止消息。
      77.一種用來從主服務(wù)器向從屬服務(wù)器復(fù)制數(shù)據(jù)的方法,包括
      78.在主服務(wù)器上,從主服務(wù)器用戶級向主服務(wù)器服務(wù)級發(fā)送開始調(diào)用,該開始調(diào)用包括有關(guān)于該主服務(wù)器上主服務(wù)器數(shù)據(jù)的當(dāng)前狀態(tài)的信息;a.在主服務(wù)器上,向從屬服務(wù)器服務(wù)層發(fā)送該信息,該從屬服務(wù)器服務(wù)層用來檢查在該從屬服務(wù)器上的從屬用戶層,以確定在該從屬服務(wù)器上的從屬服務(wù)器數(shù)據(jù)是否具有當(dāng)前狀態(tài);b.從從屬服務(wù)器服務(wù)層向主服務(wù)器服務(wù)層發(fā)送對增量的請求,該主服務(wù)器服務(wù)層用來從主服務(wù)器用戶層請求并接收增量;c.從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送增量,該增量包含將從屬服務(wù)器數(shù)據(jù)帶入當(dāng)前狀態(tài)所需的信息,該從屬服務(wù)器服務(wù)層用來處理該增量并且向從屬用戶層發(fā)生該信息;以及d.使用從屬服務(wù)器用戶層更新從屬服務(wù)器數(shù)據(jù)。
      79.如權(quán)利要求77所述的方法,進(jìn)一步包括使用主服務(wù)器用戶層,確定該數(shù)據(jù)的當(dāng)前狀態(tài)的版本號。
      80.如權(quán)利要求77所述的方法,進(jìn)一步包括通過多播向從屬服務(wù)器服務(wù)層發(fā)送該信息;
      81.如權(quán)利要求77所述的方法,進(jìn)一步包括向從屬服務(wù)器服務(wù)層發(fā)生信息,該信息包括主服務(wù)器數(shù)據(jù)的當(dāng)前狀態(tài)的版本號。
      82.一種用來從主服務(wù)器向從屬服務(wù)器復(fù)制數(shù)據(jù)的方法,包括a.在主服務(wù)器上,從主服務(wù)器用戶級向主服務(wù)器服務(wù)級發(fā)送新增量,該增量包括有關(guān)于在主服務(wù)器上存儲的主服務(wù)器數(shù)據(jù)從在先狀態(tài)到當(dāng)前狀態(tài)的改動的信息;b.從主服務(wù)器服務(wù)層向從屬服務(wù)器上的從屬服務(wù)器服務(wù)層發(fā)送該新增量,該從屬服務(wù)器服務(wù)層用來檢查在該從屬服務(wù)器上的從屬用戶層,以確定在該從屬服務(wù)器上的從屬服務(wù)器數(shù)據(jù)是否具有當(dāng)前狀態(tài);c.從從屬服務(wù)器服務(wù)層向主服務(wù)器服務(wù)層發(fā)送對同步增量的請求,該主服務(wù)器服務(wù)層用來從主服務(wù)器用戶層請求并接收該同步增量,該同步增量包含將從屬服務(wù)器數(shù)據(jù)更新到主服務(wù)器數(shù)據(jù)的在先狀態(tài);d.從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送同步增量,該從屬服務(wù)器服務(wù)層用來處理該增量并且向從屬用戶層發(fā)生待向該從屬服務(wù)器數(shù)據(jù)委托的信息;以及e.使用從屬服務(wù)器用戶層向從屬服務(wù)器數(shù)據(jù)委托該新增量中的信息。
      83.一種用來從主服務(wù)器向從屬服務(wù)器復(fù)制數(shù)據(jù)的方法,該包括以下步驟a.從主服務(wù)器用戶層向主服務(wù)器服務(wù)層發(fā)送版本號,該版本號有關(guān)于在主服務(wù)器上的數(shù)據(jù)的原始拷貝的當(dāng)前狀態(tài);b.使從屬服務(wù)器用戶層能夠確定在從屬服務(wù)器上的數(shù)據(jù)是否已經(jīng)被更新以對應(yīng)該版本號;以及c.如果該在從屬服務(wù)器上的該數(shù)據(jù)不對應(yīng)該版本號,則請求從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送增量。
      84.如權(quán)利要求77所述的方法,進(jìn)一步包括對于每一個從屬服務(wù)器,允許從屬服務(wù)器用戶層在本地磁盤上持久地緩存該數(shù)據(jù)。
      85.如權(quán)利要求77所述的方法,進(jìn)一步包括使主服務(wù)器用戶層能夠?yàn)樵谥鞣?wù)器上的該數(shù)據(jù)的當(dāng)前狀態(tài)確定唯一的版本號。
      86.如權(quán)利要求77所述的方法,進(jìn)一步包括與版本號一起包括從屬服務(wù)器用戶層更新從屬服務(wù)器上數(shù)據(jù)所需的數(shù)據(jù)。
      87.如權(quán)利要求77所述的方法,進(jìn)一步包括一旦從屬服務(wù)器用戶層收到更新該從屬服務(wù)器所需的數(shù)據(jù)就委托該數(shù)據(jù)。
      88.一種用來通過包括主服務(wù)器與至少一個從屬服務(wù)器的網(wǎng)絡(luò)復(fù)制數(shù)據(jù)的方法,該方法包括以下步驟a.從主服務(wù)器服務(wù)層向網(wǎng)絡(luò)上每一從屬服務(wù)器上的從屬服務(wù)器服務(wù)層發(fā)送信息包,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含用于該數(shù)據(jù)在先狀態(tài)的在先版本號以及用于該數(shù)據(jù)新狀態(tài)的新版本號,該信息進(jìn)一步有關(guān)于該數(shù)據(jù)的先前改動以及用于每次先前改動的版本號;b.使每一從屬服務(wù)器上的從屬服務(wù)器服務(wù)層都能夠確定該從屬服務(wù)器上的數(shù)據(jù)是否對應(yīng)包含在該包中的在先版本號;c.如果在該從屬服務(wù)器上的該數(shù)據(jù)對應(yīng)包含在該包中的該在先版本號,則允許每一從屬服務(wù)器用戶層委托該信息包,該委托還將該從屬服務(wù)器的版本更新到該新版本號;以及d.在該從屬服務(wù)器服務(wù)層委托該信息包之前,允許每一不對應(yīng)該在先版本號的從屬服務(wù)器用戶層請求從對應(yīng)于該從屬服務(wù)器用戶層的主服務(wù)器服務(wù)層發(fā)送增量,該增量包含將該從屬服務(wù)器的版本更新到該在先版本號所需的信息。
      89.一種用來通過包括網(wǎng)絡(luò)從主服務(wù)器向至少一個從屬服務(wù)器復(fù)制數(shù)據(jù)的方法,該方法包括以下步驟a.從主服務(wù)器上的主服務(wù)器服務(wù)層向從屬服務(wù)器上的從屬服務(wù)器服務(wù)層發(fā)送信息包,該信息有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的改動,并且包含該數(shù)據(jù)當(dāng)前狀態(tài)的版本號;b.使服務(wù)器上的從屬服務(wù)器用戶層能夠確定在該從屬服務(wù)器是否已經(jīng)被更新以對應(yīng)包含在該包中的版本號,并且進(jìn)一步確定如果需要更新以對應(yīng)包含在該包中的版本號,該從屬服務(wù)器用戶層是否能夠處理該信息包;c.從該從屬服務(wù)器服務(wù)層向主服務(wù)器服務(wù)層發(fā)送信號,該信號表示該從屬服務(wù)器是否需要被更新,以及該從屬服務(wù)器是否能夠處理該更新;以及d.從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送響應(yīng)信號,該信號表示該從屬服務(wù)器用戶層是否應(yīng)該對包含在該包中的信息進(jìn)行委托;以及e.如果該響應(yīng)信號表示應(yīng)該如此,則向該從屬服務(wù)器委托該信息包。
      90.一種計算機(jī)可讀介質(zhì),包括(a)用于從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送版本號的裝置,該版本號有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的原始拷貝的當(dāng)前狀態(tài);(b)用于使從屬服務(wù)器用戶層能夠確定該從屬服務(wù)器上的數(shù)據(jù)是否已經(jīng)被更新以對應(yīng)該版本號的裝置;以及(c)用于如果在該從屬服務(wù)器上的數(shù)據(jù)不對應(yīng)該版本號,則請求從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送增量的裝置。
      91.一種計算機(jī)程序產(chǎn)品,用來由服務(wù)器計算機(jī)執(zhí)行以通過網(wǎng)絡(luò)復(fù)制數(shù)據(jù),該產(chǎn)品包括a.用于從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送版本號的計算機(jī)代碼,該版本號有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的原始拷貝的當(dāng)前狀態(tài);b.用于使從屬服務(wù)器用戶層能夠確定該從屬服務(wù)器上的數(shù)據(jù)是否已經(jīng)被更新以對應(yīng)該版本號的計算機(jī)代碼;以及c.用于如果在該從屬服務(wù)器上的數(shù)據(jù)不對應(yīng)該版本號,則請求從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送增量的計算機(jī)代碼。
      92.一種用來通過網(wǎng)絡(luò)復(fù)制數(shù)據(jù)的系統(tǒng),包括a.用于從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送版本號的裝置,該版本號有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的原始拷貝的當(dāng)前狀態(tài);b.用于使從屬服務(wù)器用戶層能夠確定該從屬服務(wù)器上的數(shù)據(jù)是否已經(jīng)被更新以對應(yīng)該版本號的裝置;以及c.用于如果在該從屬服務(wù)器上的數(shù)據(jù)不對應(yīng)該版本號,則請求從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送增量的裝置。
      93.一種計算機(jī)系統(tǒng),包括處理器;由所述處理器執(zhí)行的目標(biāo)代碼,所述目標(biāo)代碼被配置來a.從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送版本號,該版本號有關(guān)于存貯在該主服務(wù)器上的數(shù)據(jù)的原始拷貝的當(dāng)前狀態(tài);b.使從屬服務(wù)器用戶層能夠確定該從屬服務(wù)器上的數(shù)據(jù)是否已經(jīng)被更新以對應(yīng)該版本號;以及c.如果在該從屬服務(wù)器上的數(shù)據(jù)不對應(yīng)該版本號,則請求從主服務(wù)器服務(wù)層向從屬服務(wù)器服務(wù)層發(fā)送增量。
      全文摘要
      可以使用一或兩階段方法通過網(wǎng)絡(luò)復(fù)制數(shù)據(jù)。對于一階段方法,包含數(shù)據(jù)原始拷貝的主服務(wù)器向網(wǎng)絡(luò)上每一個從屬服務(wù)器發(fā)送該數(shù)據(jù)當(dāng)前狀態(tài)的版本號,從而每一個從屬服務(wù)器可以從主服務(wù)器請求增量。所請求的增量包括將該從屬服務(wù)器更新到該數(shù)據(jù)適當(dāng)版本所需的數(shù)據(jù)。對于兩階段方法,主服務(wù)器向每一從屬服務(wù)器發(fā)送信息包。由該從屬服務(wù)器委托(commit)該信息包,如果每個從屬服務(wù)器都能夠處理該委托的話。
      文檔編號H04L29/08GK1555530SQ02817983
      公開日2004年12月15日 申請日期2002年7月15日 優(yōu)先權(quán)日2001年7月16日
      發(fā)明者迪安·B·雅各布斯, 雷托·克雷默, 阿南薩恩·B·斯里尼瓦桑, 克雷默, 恩 B 斯里尼瓦桑, 迪安 B 雅各布斯 申請人:Bea系統(tǒng)公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1