亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

使用二進(jìn)制比較優(yōu)化文件復(fù)制的制作方法

文檔序號(hào):6433877閱讀:168來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):使用二進(jìn)制比較優(yōu)化文件復(fù)制的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及計(jì)算機(jī)文件復(fù)制領(lǐng)域,尤其涉及使用二進(jìn)制比較的文件復(fù)制。
背景技術(shù)
復(fù)制通過(guò)令文件或文檔的客戶(hù)機(jī)和服務(wù)器版本保持同步而使本地和遠(yuǎn)程訪(fǎng)問(wèn)數(shù)據(jù)得以進(jìn)行。盡管這一功能性對(duì)應(yīng)用程序是重要且關(guān)鍵的,然而鑒于必須在客戶(hù)機(jī)和服務(wù)器之間傳輸?shù)臄?shù)據(jù)量,它也是高成本的。整個(gè)文件和文檔連同其各種版本一起儲(chǔ)存在服務(wù)器上,并在服務(wù)器及其客戶(hù)機(jī)之間傳輸。由此,許多復(fù)制系統(tǒng)試圖通過(guò)在發(fā)送之前壓縮數(shù)據(jù)來(lái)節(jié)省帶寬。然而,這一傳統(tǒng)的壓縮形式為整個(gè)文件編碼數(shù)據(jù),即使該數(shù)據(jù)的大部分是作為前一版本的一部分曾傳輸過(guò)的。由此,文件或文檔中的細(xì)小變化仍需要壓縮并傳輸整個(gè)文件或文檔,盡管大多數(shù)數(shù)據(jù)已以較早接收到的版本的形式駐留在目標(biāo)地上。
鑒于上述原因,需要一種克服現(xiàn)有技術(shù)的局限和缺點(diǎn)的系統(tǒng)和方法。

發(fā)明內(nèi)容
本發(fā)明提供一種用于當(dāng)對(duì)文件作出改變時(shí)保持文件的基于客戶(hù)機(jī)和基于服務(wù)器的副本同步的機(jī)制。將數(shù)據(jù)與對(duì)客戶(hù)機(jī)和服務(wù)器都已知的前一版本相比較,并生成兩者之間的差異的高度壓縮表示。
依照一個(gè)實(shí)施例,在客戶(hù)機(jī)處接收并儲(chǔ)存一基礎(chǔ)文件的第一副本和第二副本。這兩個(gè)副本是相同的—客戶(hù)機(jī)接收一個(gè)副本并儲(chǔ)存該副本的兩個(gè)實(shí)例??蛻?hù)機(jī)然后對(duì)第一副本作出改變,然后確定改變的第一副本和第二副本之間的差異(如,二進(jìn)制差異)。差異被發(fā)送到維護(hù)該基礎(chǔ)文件的服務(wù)器。如果服務(wù)器上的基礎(chǔ)文件與儲(chǔ)存在第一裝置上的基礎(chǔ)文件相同,則服務(wù)器接受該差異;否則,服務(wù)器拒絕該差異。
依照本發(fā)明的各方面,如果服務(wù)器拒絕差異,則服務(wù)器向客戶(hù)機(jī)發(fā)送第二差異??蛻?hù)機(jī)然后向儲(chǔ)存在第一裝置處的基礎(chǔ)文件的第二副本應(yīng)用該第二差異。這令客戶(hù)機(jī)的基礎(chǔ)文件變得對(duì)于駐留在服務(wù)器上的基礎(chǔ)文件為最新??蛻?hù)機(jī)然后可對(duì)該更新的基礎(chǔ)文件作出改變,生成一新差異,然后向服務(wù)器發(fā)送該新差異。
結(jié)合附圖閱讀以下說(shuō)明性實(shí)施例的詳細(xì)描述,可以清楚本發(fā)明的另外的特征和優(yōu)點(diǎn)。


當(dāng)結(jié)合附圖閱讀時(shí),可以更好地理解以上概述以及以下較佳實(shí)施例的詳細(xì)描述。為說(shuō)明本發(fā)明的目的,附圖中示出了本發(fā)明的示例性構(gòu)造;然而,本發(fā)明不限于所揭示的具體方法和手段。附圖中圖1所示是可實(shí)現(xiàn)本發(fā)明的各方面的示例性計(jì)算環(huán)境的框圖;圖2是依照本發(fā)明維護(hù)更新的文件的示例性方法的流程圖;圖3是依照本發(fā)明維護(hù)更新的文件的另一示例性方法的流程圖;圖4示出了有助于描述本發(fā)明的各方面的示例性系統(tǒng)的框圖;以及圖5和6是依照本發(fā)明維護(hù)更新的文件的另一示例性方法的流程圖。
具體實(shí)施例方式
綜述本發(fā)明針對(duì)當(dāng)對(duì)文件作出改變時(shí)保持文件的本地(也稱(chēng)為“客戶(hù)機(jī)”)副本和基于服務(wù)器的副本同步。本發(fā)明描述的示例性系統(tǒng)和方法比現(xiàn)有技術(shù)更有效,并將帶寬需求和執(zhí)行同步的時(shí)間元素都最小化。
將數(shù)據(jù)與對(duì)客戶(hù)機(jī)和服務(wù)器都已知的前一版本相比較,并生成兩者之間的差異的高度壓縮表示。這些差異,或“差”然后可被發(fā)送,并可使用對(duì)HTTP(超文本傳輸協(xié)議)協(xié)議的擴(kuò)充。
示例性計(jì)算環(huán)境圖1示出了可在其中實(shí)現(xiàn)本發(fā)明的合適的計(jì)算系統(tǒng)環(huán)境100的一個(gè)示例。計(jì)算系統(tǒng)環(huán)境100僅為合適的計(jì)算環(huán)境的一個(gè)示例,并非建議對(duì)本發(fā)明的使用或功能的范圍的局限。也不應(yīng)將計(jì)算環(huán)境100解釋為對(duì)示例性操作環(huán)境100中示出的任一組件或其組合具有依賴(lài)或需求。
本發(fā)明可以使用眾多其它通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置來(lái)操作。適合使用本發(fā)明的眾所周知的計(jì)算系統(tǒng)、環(huán)境和/或配置包括但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子設(shè)備、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)、包括任一上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
本發(fā)明可在諸如由網(wǎng)絡(luò)環(huán)境中的計(jì)算機(jī)執(zhí)行的程序模塊等計(jì)算機(jī)可執(zhí)行指令的一般上下文環(huán)境中描述。一般而言,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等,執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類(lèi)型。本發(fā)明也可以在分布式計(jì)算環(huán)境中實(shí)踐,其中,任務(wù)由通過(guò)通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)媒質(zhì)中,包括存儲(chǔ)器存儲(chǔ)設(shè)備。
參考圖1,用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括以計(jì)算機(jī)110形式的通用計(jì)算裝置。計(jì)算機(jī)110的組件包括但不限于,處理單元120、系統(tǒng)存儲(chǔ)器130以及將包括系統(tǒng)存儲(chǔ)器的各類(lèi)系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線(xiàn)121。系統(tǒng)總線(xiàn)121可以是若干種總線(xiàn)結(jié)構(gòu)類(lèi)型的任一種,包括存儲(chǔ)器總線(xiàn)或存儲(chǔ)器控制器、外圍總線(xiàn)以及使用各類(lèi)總線(xiàn)體系結(jié)構(gòu)的局部總線(xiàn)。作為示例而非局限,這類(lèi)體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線(xiàn)、微通道體系結(jié)構(gòu)(MCA)總線(xiàn)、增強(qiáng)ISA(EISA)總線(xiàn)、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線(xiàn)以及外圍部件互連(PCI)總線(xiàn)(也稱(chēng)為Mezzanine總線(xiàn))。
計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀媒質(zhì)。計(jì)算機(jī)可讀媒質(zhì)可以是可由計(jì)算機(jī)110訪(fǎng)問(wèn)的任一可用媒質(zhì),包括易失和非易失媒質(zhì)、可移動(dòng)和不可移動(dòng)媒質(zhì)。作為示例而非局限,計(jì)算機(jī)可讀媒質(zhì)包括計(jì)算機(jī)存儲(chǔ)媒質(zhì)和通信媒質(zhì)。計(jì)算機(jī)存儲(chǔ)媒質(zhì)包括以用于儲(chǔ)存諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任一方法或技術(shù)實(shí)現(xiàn)的易失和非易失,可移動(dòng)和不可移動(dòng)媒質(zhì)。計(jì)算機(jī)存儲(chǔ)媒質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán)(DVD)或其它光盤(pán)存儲(chǔ)、磁盒、磁帶、磁盤(pán)存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來(lái)儲(chǔ)存所期望的信息并可由計(jì)算機(jī)110訪(fǎng)問(wèn)的任一其它媒質(zhì)。通信媒質(zhì)通常在諸如載波或其它傳輸機(jī)制的已調(diào)制數(shù)據(jù)信號(hào)中包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任一信息傳送媒質(zhì)。術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)”指以對(duì)信號(hào)中的信息進(jìn)行編碼的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。作為示例而非局限,通信媒質(zhì)包括有線(xiàn)媒質(zhì),如有線(xiàn)網(wǎng)絡(luò)或直接連線(xiàn)連接,以及無(wú)線(xiàn)媒質(zhì),如聲學(xué)、RF、紅外和其它無(wú)線(xiàn)媒質(zhì)。上述任一的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀媒質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲(chǔ)器130包括以易失和/或非易失存儲(chǔ)器形式的計(jì)算機(jī)存儲(chǔ)媒質(zhì),如只讀存儲(chǔ)器(ROM)131和隨機(jī)存取存儲(chǔ)器(RAM)132。基本輸入/輸出系統(tǒng)133(BIOS)包括如在啟動(dòng)時(shí)幫助在計(jì)算機(jī)110內(nèi)的元件之間傳輸信息的基本例程,通常儲(chǔ)存在ROM 131中。RAM 132通常包含處理單元120立即可訪(fǎng)問(wèn)或者當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非局限,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110也可包括其它可移動(dòng)/不可移動(dòng)、易失/非易失計(jì)算機(jī)存儲(chǔ)媒質(zhì)。僅作示例,圖1示出了對(duì)不可移動(dòng)、非易失磁媒質(zhì)進(jìn)行讀寫(xiě)的硬盤(pán)驅(qū)動(dòng)器141、對(duì)可移動(dòng)、非易失磁盤(pán)152進(jìn)行讀寫(xiě)的磁盤(pán)驅(qū)動(dòng)器151以及對(duì)可移動(dòng)、非易失光盤(pán)156,如CD ROM或其它光媒質(zhì)進(jìn)行讀寫(xiě)的光盤(pán)驅(qū)動(dòng)器155。可以在示例性操作環(huán)境中使用的其它可移動(dòng)/不可移動(dòng)、易失/非易失計(jì)算機(jī)存儲(chǔ)媒質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤(pán)、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等等。硬盤(pán)驅(qū)動(dòng)器141通常通過(guò)不可移動(dòng)存儲(chǔ)器接口,如接口140連接到系統(tǒng)總線(xiàn)121,磁盤(pán)驅(qū)動(dòng)器151和光盤(pán)驅(qū)動(dòng)器155通常通過(guò)可移動(dòng)存儲(chǔ)器接口,如接口150連接到系統(tǒng)總線(xiàn)121。
圖1討論并示出的驅(qū)動(dòng)器及其關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)媒質(zhì)為計(jì)算機(jī)110提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲(chǔ)。例如,在圖1中,示出硬盤(pán)驅(qū)動(dòng)器141儲(chǔ)存操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同,也可以與它們不同。這里對(duì)操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146和程序數(shù)據(jù)147給予不同的標(biāo)號(hào)來(lái)說(shuō)明至少它們是不同的副本。用戶(hù)可以通過(guò)輸入設(shè)備,如鍵盤(pán)162和定位設(shè)備161(通常指鼠標(biāo)、跟蹤球或觸摸板)向計(jì)算機(jī)110輸入命令和信息。其它輸入設(shè)備(未示出)可包括麥克風(fēng)、操縱桿、游戲墊、圓盤(pán)式衛(wèi)星天線(xiàn)、掃描儀等等。這些和其它輸入設(shè)備通常通過(guò)耦合至系統(tǒng)總線(xiàn)的用戶(hù)輸入接口160連接至處理單元120,但是也可以通過(guò)其它接口和總線(xiàn)結(jié)構(gòu)連接,如并行端口、游戲端口或通用串行總線(xiàn)(USB)。監(jiān)視器191或其它類(lèi)型的顯示設(shè)備也通過(guò)接口,如視頻接口190連接至系統(tǒng)總線(xiàn)121。除監(jiān)視器之外,計(jì)算機(jī)也包括其它外圍輸出設(shè)備,如揚(yáng)聲器197和打印機(jī)196,通過(guò)輸出外圍接口195連接。
計(jì)算機(jī)110可以在使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī)180的邏輯連接的網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其它公用網(wǎng)絡(luò)節(jié)點(diǎn),并通常包括許多或所有上述與計(jì)算機(jī)110相關(guān)的元件,盡管在圖1中僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備181。圖1描述的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可包括其它網(wǎng)絡(luò)。這類(lèi)網(wǎng)絡(luò)環(huán)境常見(jiàn)于辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通過(guò)網(wǎng)絡(luò)接口或適配器170連接至LAN 171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110通常包括調(diào)制解調(diào)器172或其它裝置,用于通過(guò)WAN 173,如因特網(wǎng)建立通信。調(diào)制解調(diào)器172可以是內(nèi)置或外置的,通過(guò)用戶(hù)輸入接口160或其它合適的機(jī)制連接至系統(tǒng)總線(xiàn)121。在網(wǎng)絡(luò)化環(huán)境中,描述的與計(jì)算機(jī)110相關(guān)的程序模塊或其部分可儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非局限,圖1示出了遠(yuǎn)程應(yīng)用程序185駐留在存儲(chǔ)器設(shè)備181中??梢岳斫猓境龅木W(wǎng)絡(luò)連接是示例性的,也可以使用在計(jì)算機(jī)之間建立通信鏈路的其它裝置。
示例性分布式計(jì)算框架或體系結(jié)構(gòu)鑒于個(gè)人計(jì)算活動(dòng)與因特網(wǎng)的交匯,已經(jīng)發(fā)展并且正在發(fā)展各種分布式計(jì)算框架。個(gè)人和商業(yè)用戶(hù)同樣地?fù)碛杏糜趹?yīng)用程序和計(jì)算設(shè)備的無(wú)縫的互操作和web激活的接口,使得計(jì)算活動(dòng)越來(lái)越面向web瀏覽器和網(wǎng)絡(luò)。
例如,MICROSOFT的.NET平臺(tái)包括服務(wù)器、構(gòu)件服務(wù)如基于web的數(shù)據(jù)存儲(chǔ)、以及可下載設(shè)備軟件。通常來(lái)說(shuō),.NET平臺(tái)提供(1)令整個(gè)范圍的計(jì)算設(shè)備共同工作并在所有設(shè)備上自動(dòng)更新并同步化用戶(hù)信息的能力,(2)提高的web站點(diǎn)交互能力,通過(guò)大量使用XML而不是HTML來(lái)實(shí)現(xiàn),(3)從用于各種應(yīng)用,如電子郵件,或軟件,如Office.NET的管理的中央起點(diǎn)到用戶(hù)的具有產(chǎn)品和服務(wù)的定制訪(fǎng)問(wèn)和傳送的特點(diǎn)的在線(xiàn)服務(wù),(4)中央化數(shù)據(jù)存儲(chǔ),將增加對(duì)信息訪(fǎng)問(wèn)以及用產(chǎn)和設(shè)備間的信息同步的效率和簡(jiǎn)易性,(5)整合各種通信媒質(zhì),如電子郵件、傳真和電話(huà)的能力,(6)對(duì)開(kāi)發(fā)員來(lái)說(shuō),創(chuàng)建可重復(fù)使用模塊的能力,借此提高生產(chǎn)力并降低編程錯(cuò)誤數(shù),以及(7)還有其它跨平臺(tái)整合特征。
盡管這里的示例性實(shí)施例是結(jié)合駐留在計(jì)算設(shè)備上的軟件描述的,也可以通過(guò)操作系統(tǒng)、API或協(xié)處理器和請(qǐng)求對(duì)象之間的“中間人”對(duì)象來(lái)實(shí)現(xiàn)本發(fā)明的一個(gè)或多個(gè)部分,使服務(wù)可以由所有.NET的語(yǔ)言和服務(wù)、以及在其它分布式計(jì)算框架中來(lái)完成、支持或訪(fǎng)問(wèn)。
示例性實(shí)施例圖2是依照本發(fā)明維護(hù)更新的文件的示例性方法的流程圖。在本示例性實(shí)施例中,客戶(hù)機(jī)修改文件并將變化上傳到服務(wù)器。在步驟200,客戶(hù)機(jī)接收儲(chǔ)存在服務(wù)器上的基礎(chǔ)文件的最近版本(“版本A”)的副本。在步驟210,客戶(hù)機(jī)對(duì)版本A作出其改變以創(chuàng)建版本A′。在步驟220,客戶(hù)機(jī)保存原始版本A的副本和新版本A′。由此,即使用戶(hù)更新該文件,客戶(hù)機(jī)也維護(hù)最后一個(gè)已知的服務(wù)器狀態(tài)的副本。預(yù)期版本A的副本可以在步驟210之前或之后儲(chǔ)存在客戶(hù)機(jī)上。
然后,在步驟230,通過(guò)比較版本A和A′生成差異,或“差”。差是一種將文件的兩個(gè)版本進(jìn)行比較以生成可應(yīng)用到較舊的文件來(lái)生成較新文件的壓縮差的機(jī)制??赏ㄟ^(guò)對(duì)本領(lǐng)域的技術(shù)人員已知的用于確定基礎(chǔ)形式和修改形式之間的差異的任一方法、技術(shù)或系統(tǒng)來(lái)執(zhí)行差異生成。生成的一種較佳的差異是二進(jìn)制差異。文件被認(rèn)為是一系列字節(jié)。常規(guī)的壓縮算法被用于通過(guò)計(jì)算陰影或基礎(chǔ)副本與修正的副本之間的差異來(lái)生成二進(jìn)制差異。該差異然后被發(fā)送到服務(wù)器,服務(wù)器拒絕差異或接受差異。如果服務(wù)器上的基礎(chǔ)已改變,則出現(xiàn)拒絕,在此情況下,該差異對(duì)服務(wù)器無(wú)用。預(yù)期依照本發(fā)明可使用任一差異引擎或技術(shù)。在本發(fā)明中,為示例性目的提供了二進(jìn)制差異技術(shù)的使用。
具體地,在步驟240,客戶(hù)機(jī)向服務(wù)器發(fā)送該差。在檢查以確保其基礎(chǔ)文件的最近版本并未從客戶(hù)機(jī)用以作出修改的版本A有所改變之后,在步驟250,服務(wù)器向版本A應(yīng)用該差,以生成該文件的新的、最近的版本一版本B。服務(wù)器執(zhí)行的版本檢查在后文參考圖3-6進(jìn)一步描述。
在步驟260,服務(wù)器儲(chǔ)存新版本B以及客戶(hù)機(jī)提供的差(可任選)。新版本B被認(rèn)為是基礎(chǔ)文件的最近更新,并保留該差以由可對(duì)原始版本A作出改變的其它客戶(hù)機(jī)使用,這在后文參考圖3-6進(jìn)一步描述。服務(wù)器可任選地儲(chǔ)存該差,以向其它客戶(hù)機(jī)提供優(yōu)化的更新。如果作出了多個(gè)修訂,則需要獲取從較舊版本到最新版本的多個(gè)差。注意,該差也可對(duì)不打算作出改變,但是希望讀取最近的版本B并已具有版本A的客戶(hù)機(jī)有用。
在步驟270,服務(wù)器向客戶(hù)機(jī)通知新版本標(biāo)識(shí)符(如,“版本B”)??蛻?hù)機(jī)然后丟棄它在步驟230所確定的差以及它所儲(chǔ)存的版本A,并且在步驟280用新版本標(biāo)識(shí)符標(biāo)記其版本A′。由此,客戶(hù)機(jī)將版本A′更名為版本B。
圖3是維護(hù)更新的文件的另一示例性方法的流程圖。在本示例中,服務(wù)器向客戶(hù)機(jī)提供差文件形式的最近變化。在步驟300,具有文件的版本A的客戶(hù)機(jī)請(qǐng)求文件更新。例如,客戶(hù)機(jī)因?yàn)槠谕麑?duì)該文件的最近版本作出改變而可能作出這一請(qǐng)求。客戶(hù)機(jī)向服務(wù)器通知它具有版本A,并且作為響應(yīng),在步驟310,服務(wù)器返回該差。服務(wù)器可能在維護(hù)的是來(lái)自前一客戶(hù)機(jī)更新(如,圖2的步驟260)的A的差異。在步驟320,客戶(hù)機(jī)向其儲(chǔ)存的版本A應(yīng)用A的差以生成該文件的最近版本(如,“版本B”)。
圖4示出了有助于描述本發(fā)明的各方面的示例性系統(tǒng)的框圖,圖5和6示出了當(dāng)兩個(gè)用戶(hù)對(duì)同一基礎(chǔ)文件作出改變時(shí)維護(hù)更新的文件的示例性方法的流程圖。在本示例中,假定服務(wù)器400維護(hù)基礎(chǔ)文件(版本A),兩個(gè)客戶(hù)機(jī)410、420(此處分別稱(chēng)為客戶(hù)機(jī)1和客戶(hù)機(jī)2)都期望對(duì)同一基礎(chǔ)文件作出改變。
在步驟500,客戶(hù)機(jī)1和客戶(hù)機(jī)2都從服務(wù)器400請(qǐng)求并接收最近版本(“版本A”)(即,客戶(hù)機(jī)1和2下載基礎(chǔ)文件)。預(yù)期客戶(hù)機(jī)1和2可并發(fā)地或在時(shí)間上順序地對(duì)基礎(chǔ)文件作出改變。然而,僅一個(gè)客戶(hù)機(jī)將首先把其對(duì)原始基礎(chǔ)文件的改變送到服務(wù)器。這些改變被應(yīng)用到原始基礎(chǔ)文件。由此,向服務(wù)器發(fā)送差異的第一客戶(hù)機(jī)令服務(wù)器接受該差異?;诨A(chǔ)文件的隨后的客戶(hù)機(jī)差異將被服務(wù)器拒絕。因此,稍后發(fā)送其對(duì)原始基礎(chǔ)文件的改變的客戶(hù)機(jī)必須首先接收更新的基礎(chǔ)文件,然后對(duì)該更新的基礎(chǔ)文件作出改變,如后文更詳細(xì)描述的。
假定客戶(hù)機(jī)1首先作出改變,方法按似于圖2中所描述的步驟200到260前進(jìn)。即,在步驟505,客戶(hù)機(jī)1對(duì)版本A作出其改變以創(chuàng)建版本A′。在步驟510,客戶(hù)機(jī)1保存原始版本A的副本和新版本A′。預(yù)期可在步驟505之前或之后在客戶(hù)機(jī)1上儲(chǔ)存版本A的副本。然后在步驟515,通過(guò)比較版本A和A′生成差(較佳地為二進(jìn)制差)。
在步驟520,客戶(hù)機(jī)1向服務(wù)器400發(fā)送該差。當(dāng)向服務(wù)器同步回改變時(shí),客戶(hù)機(jī)核實(shí)服務(wù)器支持差機(jī)制,然后將“差”連同指定原始文件的版本的版本信息一起上傳。在檢查以確保其基礎(chǔ)文件的最近版本未在客戶(hù)機(jī)用于作出修改的版本A上進(jìn)行改變之后,在步驟525,服務(wù)器400應(yīng)用客戶(hù)機(jī)1提供的版本A的差以生成該文件的新的、最近的版本—版本B。
在步驟530,服務(wù)器儲(chǔ)存該新版本B以及客戶(hù)機(jī)1提供的差。新版本B被認(rèn)為是基礎(chǔ)文件的最近更新,并保留差以由可對(duì)原始版本A作出改變的其它客戶(hù)機(jī)(如,客戶(hù)機(jī)2)使用。
類(lèi)似于步驟270和280,盡管在圖5中未示出,服務(wù)器400向客戶(hù)機(jī)1通知新版本標(biāo)識(shí)符(如,“版本B”)??蛻?hù)機(jī)1然后丟棄它所確定的差以及它所儲(chǔ)存的版本A,并用新版本標(biāo)識(shí)符標(biāo)記其版本A′。由此,客戶(hù)機(jī)將版本A′更名為版本B。
同時(shí),在步驟535,客戶(hù)機(jī)2修改它所接收到的原始基礎(chǔ)文件版本A以創(chuàng)建新版本一版本A″。在步驟540,客戶(hù)機(jī)2保存原始版本A的副本和新版本A″。預(yù)期可在步驟540之前或之后在客戶(hù)機(jī)2上儲(chǔ)存版本A的副本。然后在步驟545,通過(guò)比較版本A和A″生成差。
在550,客戶(hù)機(jī)2向服務(wù)器400發(fā)送其版本A的差。服務(wù)器400檢查它所儲(chǔ)存的基礎(chǔ)文件是否在客戶(hù)機(jī)2用作客戶(hù)機(jī)2的修改的基礎(chǔ)的基礎(chǔ)文件上做了改變。
如果基礎(chǔ)文件的服務(wù)器狀態(tài)被高速緩存到與請(qǐng)求方客戶(hù)機(jī)關(guān)聯(lián)的本地存儲(chǔ)中,則在本地存儲(chǔ)中的文件和服務(wù)器上對(duì)應(yīng)的文件狀態(tài)之間作出比較??蛇M(jìn)行該比較以確定儲(chǔ)存在本地存儲(chǔ)中的文件的副本是否為最近版本,或者在服務(wù)器上是否存在更近的版本。換言之,該比較著眼于自從請(qǐng)求方客戶(hù)機(jī)獲取該文件的副本以來(lái),另一客戶(hù)機(jī)修改并更新了所請(qǐng)求的文件的可能性。應(yīng)當(dāng)注意,期望該比較包括表示文件狀態(tài)的標(biāo)識(shí)符的傳輸,而無(wú)需在客戶(hù)機(jī)和服務(wù)器之間傳輸整個(gè)文件。以這一方式,該比較減少了否則將需要的網(wǎng)絡(luò)通信量,并避免將文件的同一版本發(fā)送一次以上。
由此,在步驟555,服務(wù)器檢查以確?;A(chǔ)文件的最近版本未在客戶(hù)機(jī)2用于作出修改的版本A上做過(guò)改變。如果基礎(chǔ)文件未改變,則在步驟590,服務(wù)器400向服務(wù)器儲(chǔ)存的基礎(chǔ)文件應(yīng)用客戶(hù)機(jī)2提供的差以生成該文件的新的、最近版本,在步驟595,服務(wù)器儲(chǔ)存該版本以及客戶(hù)機(jī)2提供的差。服務(wù)器400向客戶(hù)機(jī)2通知新版本標(biāo)識(shí)符,客戶(hù)機(jī)2然后可丟棄它所確定的差以及它所儲(chǔ)存的版本A,并用新版本標(biāo)識(shí)符來(lái)標(biāo)記其修改的版本A″。
然而,在本示例中,客戶(hù)機(jī)1已向服務(wù)器400提供了改變,因此儲(chǔ)存在服務(wù)器上的基礎(chǔ)文件變?yōu)榱税姹綛??蛻?hù)機(jī)2沒(méi)有版本B的副本,并對(duì)文件的版本A作出修改。因此,由于基礎(chǔ)文件已改變,在步驟560,服務(wù)器400拒絕客戶(hù)機(jī)2提供的差,并向客戶(hù)機(jī)2發(fā)送客戶(hù)機(jī)1提供的、服務(wù)器400較早接收并儲(chǔ)存(步驟530)的版本A的差。
在步驟565,客戶(hù)機(jī)2向它所儲(chǔ)存的版本A應(yīng)用客戶(hù)機(jī)1提供的差,以獲取該文件的最近的服務(wù)器儲(chǔ)存版本(這里為版本B)??蛻?hù)機(jī)2然后分別在步驟570和575確定最近版本與其修改的版本A″之間的差,并向服務(wù)器400發(fā)送該新的差。在步驟580,服務(wù)器400向其儲(chǔ)存的最近版本(版本B)應(yīng)用該新的差,以生成新的最近版本(這里為版本C)。在步驟585,服務(wù)器400儲(chǔ)存該新的、最近版本以及新接收的差。類(lèi)似于步驟270和280,盡管未在圖5中示出,服務(wù)器400向客戶(hù)機(jī)2通知新版本標(biāo)識(shí)符(如,“版本C”)??蛻?hù)機(jī)2然后丟棄它所確定的差以及它所儲(chǔ)存的版本,并用新版本標(biāo)識(shí)符來(lái)標(biāo)記其版本A″。由此,客戶(hù)將版本A″更名為版本C。
與在服務(wù)器上自動(dòng)保存修改的版本相反,預(yù)期諸如管理員等用戶(hù)可確定應(yīng)當(dāng)如何把改變集成。這可避免與前一用戶(hù)改變的內(nèi)容沖突。
注意,可在服務(wù)器表明批準(zhǔn)接受差之前或之后確定該差。由此,為提高效率,客戶(hù)機(jī)可等到服務(wù)器已指示客戶(hù)機(jī)已對(duì)服務(wù)器當(dāng)前作為最近版本維護(hù)的基礎(chǔ)文件的同一版本作出改變。僅在那時(shí)客戶(hù)機(jī)才能確定差并向服務(wù)器提供該差。理想地,服務(wù)器不計(jì)算差異,而僅應(yīng)用差異。
預(yù)期到一種情況,一個(gè)客戶(hù)機(jī)在另一客戶(hù)機(jī)連接到服務(wù)器以提供其改變之前作出了多次上傳。例如,假定原始基礎(chǔ)文件是版本A??蛻?hù)機(jī)1然后作出改變并且這些改變被接受為版本B。如果客戶(hù)機(jī)1作出進(jìn)一步的改變,并將它們提供給服務(wù)器,則這一新的最近版本被保存為版本C。理想地,服務(wù)器保存版本A和B之間的差異,以及版本B和C之間的差異。由此,當(dāng)另一客戶(hù)機(jī)作出其改變時(shí),服務(wù)器較佳地將在同一消息中向該客戶(hù)機(jī)發(fā)送版本A和B之間的差異,以及版本B和C之間的差異??蛻?hù)機(jī)然后重新創(chuàng)建版本B和版本C,并確定版本C和其改變之間的差異,并向服務(wù)器提供該差異。
如果過(guò)時(shí)的客戶(hù)機(jī)連接到服務(wù)器以獲取最近版本,它告訴服務(wù)器它具有哪一版本,并且如果儲(chǔ)存的差追溯到該版本,則返回適當(dāng)?shù)囊粋€(gè)或多個(gè)差以及當(dāng)前版本ID。較佳地,服務(wù)器保留它在處理過(guò)程中接收的各種版本之間的所有差,以容納哪些仍希望對(duì)舊版本作出改變的客戶(hù)機(jī)(即,對(duì)基礎(chǔ)文件的舊版本“向后兼容”)。然而,在某一點(diǎn)上,服務(wù)器可刪除或移除先前儲(chǔ)存的它所保留的差。例如,這些行動(dòng)可由日期或存儲(chǔ)容量提示。
理想地,使用超文本傳輸協(xié)議(HTTP)來(lái)傳輸差。具體地,可使用協(xié)議擴(kuò)充來(lái)警告服務(wù)器正在傳輸“差”,或在消息內(nèi)實(shí)現(xiàn)或結(jié)合進(jìn)該差。
HTTP已形成為一種信息可借以在諸如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)和外聯(lián)網(wǎng)等兼容TCP/IP(傳輸控制協(xié)議/因特網(wǎng)協(xié)議)的網(wǎng)絡(luò)上傳輸?shù)臉?biāo)準(zhǔn)機(jī)制。HTTP更特別地是一種用于分布式、協(xié)作、超媒體信息系統(tǒng)的應(yīng)用程序級(jí)協(xié)議。它是一種一般性、無(wú)國(guó)界協(xié)議,可通過(guò)其請(qǐng)求方法、錯(cuò)誤代碼和頭部的擴(kuò)充,除其對(duì)超文本的使用之外還可用于許多任務(wù),如名字服務(wù)器和分布式對(duì)象管理系統(tǒng)。由于信息依照其規(guī)范來(lái)傳輸,因此它被稱(chēng)為一種傳輸協(xié)議,而由于信息由作出對(duì)生成響應(yīng)的服務(wù)器的請(qǐng)求的客戶(hù)機(jī)來(lái)交換,因此它也被稱(chēng)為一種請(qǐng)求—響應(yīng)協(xié)議。本發(fā)明所引用的HTTP一般涉及HTTP的任一標(biāo)準(zhǔn),并可在網(wǎng)站http//www.w3.org上找到。
HTTP的一種常見(jiàn)使用是依照標(biāo)記語(yǔ)言格式化的信息的傳輸。例如,因特網(wǎng)的一種普遍應(yīng)用是瀏覽其萬(wàn)維網(wǎng)頁(yè)。在這些實(shí)例中,通常所檢索到的信息是依照HTTP傳輸?shù)某谋緲?biāo)記語(yǔ)言(HTML)格式。然而,也出現(xiàn)了其它標(biāo)準(zhǔn)標(biāo)記語(yǔ)言。一個(gè)這樣的標(biāo)記語(yǔ)言是可擴(kuò)展標(biāo)記語(yǔ)言(XML)。XML描述了一類(lèi)被稱(chēng)為是XML文檔的數(shù)據(jù)對(duì)象,并部分地描述了處理它們的計(jì)算機(jī)程序的行為。HTML和XML之間的主要差異是,在前者內(nèi),信息內(nèi)容與內(nèi)容的布局相互纏結(jié),例如,很難分離它們。相反,在XML內(nèi),與內(nèi)容本身分離地維護(hù)內(nèi)容的存儲(chǔ)布局和邏輯結(jié)構(gòu)的描述。然而,XML和HTML都是被稱(chēng)為標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(SGML)的標(biāo)記語(yǔ)言的派生。本發(fā)明所引用的XML一般涉及XML的任一標(biāo)準(zhǔn),并可在網(wǎng)站http//www.w3.org上找到。
例如,為維護(hù)向后兼容性和互操作性,可使用OPTIONS(選項(xiàng))響應(yīng)中的已擴(kuò)充HTTP頭部來(lái)允許客戶(hù)機(jī)發(fā)現(xiàn)服務(wù)器支持二進(jìn)制差。GET(獲取)請(qǐng)求中的已擴(kuò)充頭部向服務(wù)器通知客戶(hù)機(jī)接受該差。
客戶(hù)機(jī)和服務(wù)器皆可選擇不使用二進(jìn)制差。在某些情況下,發(fā)送差的消息(如,HTTP二進(jìn)制差頭部)可能大于文件本身。在這一情況下,更理想的是發(fā)送文檔而非服務(wù)器和客戶(hù)機(jī)之間的差??蛻?hù)機(jī)可確定差的尺寸大于新文件。例如,如果新文件具有0字節(jié),則會(huì)發(fā)生這一情況。服務(wù)器可決定丟棄差來(lái)節(jié)省存儲(chǔ)空間。如果未使用差,則發(fā)送整個(gè)文件。為發(fā)信號(hào)通知何時(shí)發(fā)送差,客戶(hù)機(jī)可用其PUT(放置)請(qǐng)求發(fā)送已擴(kuò)充頭部,以指示正文中二進(jìn)制差的存在以及從其生成差的基礎(chǔ)文件的版本號(hào)。服務(wù)器用其GET響應(yīng)發(fā)送已擴(kuò)充頭部,以指示二進(jìn)制差鏈的存在、基礎(chǔ)文件的版本號(hào)以及鏈中差的數(shù)量。
當(dāng)需要多個(gè)差來(lái)將客戶(hù)機(jī)文件變?yōu)樽钚聲r(shí),服務(wù)器可選擇在單個(gè)回復(fù)中將差鏈接在一起,或如果差的總和大于新版本時(shí),發(fā)送新版本本身。
計(jì)算并應(yīng)用差的引擎較佳地在客戶(hù)機(jī)和/或服務(wù)器內(nèi)提供。較佳地也實(shí)現(xiàn)用于發(fā)現(xiàn)和差/版本管理的協(xié)議。已擴(kuò)充HTTP頭部允許客戶(hù)機(jī)和服務(wù)器解釋其生成差異的能力。例如,客戶(hù)機(jī)用其PUT請(qǐng)求發(fā)送已擴(kuò)充頭部,以指示正文中二進(jìn)制差的存在以及從其生成差的基礎(chǔ)文件的版本號(hào)。服務(wù)器用其GET響應(yīng)發(fā)送已擴(kuò)充頭部,以指示二進(jìn)制差鏈的存在、基礎(chǔ)文件的版本號(hào)以及鏈中差的數(shù)量。
服務(wù)器代碼理想地能夠管理差以應(yīng)用(使用引擎)、儲(chǔ)存并返回差,每一客戶(hù)機(jī)較佳地具有維護(hù)服務(wù)器狀態(tài)、生成差、向服務(wù)器發(fā)送差以及應(yīng)用返回的差的能力。
復(fù)制在各種各樣的應(yīng)用程序廣泛使用,但是這些系統(tǒng)的成本和性能永遠(yuǎn)都是一種挑戰(zhàn)。本發(fā)明調(diào)節(jié)了復(fù)制的特性(已知的客戶(hù)機(jī)/服務(wù)器狀態(tài))以在系統(tǒng)的效率中產(chǎn)生一個(gè)重要飛躍。本發(fā)明可應(yīng)用到需復(fù)制例行更新的大文件的系統(tǒng),諸如允許離線(xiàn)訪(fǎng)問(wèn)基于服務(wù)器的文檔或文件的產(chǎn)品。
如上所述,盡管是結(jié)合各種計(jì)算裝置描述了本發(fā)明的示例性實(shí)施例,然而其基礎(chǔ)概念可應(yīng)用到任何計(jì)算裝置或系統(tǒng)。
本發(fā)明所描述的各種技術(shù)可結(jié)合硬件或軟件實(shí)現(xiàn),或者在適當(dāng)時(shí)用兩者的組合來(lái)實(shí)現(xiàn)。由此,本發(fā)明的方法和裝置,或其某些方面或部分,可采用包含在諸如軟盤(pán)、CD-ROM、硬盤(pán)或任一其它及其可讀存儲(chǔ)媒質(zhì)等有形媒質(zhì)中的程序代碼(即,指令)的形式,其中,當(dāng)程序代碼被加載到諸如計(jì)算機(jī)等機(jī)器中并由其執(zhí)行時(shí),該機(jī)器變成用于實(shí)踐本發(fā)明的裝置。在可變成計(jì)算機(jī)上執(zhí)行程序代碼的情況下,計(jì)算裝置一般包括處理器、可由處理器讀的存儲(chǔ)媒質(zhì)(包括易失和非易失存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入設(shè)備和至少一個(gè)輸出設(shè)備。如需要,程序可以匯編語(yǔ)言或機(jī)器語(yǔ)言實(shí)現(xiàn)。在任一情況下,語(yǔ)言可以是編譯或解釋語(yǔ)言,并可與硬件實(shí)現(xiàn)相組合。
本發(fā)明的方法和裝置也可通過(guò)以程序代碼的形式實(shí)施的通信來(lái)實(shí)踐,這些程序代碼通過(guò)諸如電線(xiàn)或電纜、光纖或任一其它形式的傳輸?shù)饶承﹤鬏斆劫|(zhì)來(lái)傳輸,其中,當(dāng)由諸如EPROM、門(mén)陣列、可變成邏輯器件(PLD)、客戶(hù)機(jī)計(jì)算機(jī)等機(jī)器接收程序代碼,并加載到其中由其執(zhí)行時(shí),該機(jī)器變成用于實(shí)踐本發(fā)明的裝置。當(dāng)在通用處理器上實(shí)現(xiàn)時(shí),程序代碼與處理器組合以提供一種操作來(lái)調(diào)用本發(fā)明的功能的唯一裝置。另外,結(jié)合本發(fā)明使用的任何存儲(chǔ)技術(shù)可不變地為硬件和軟件的組合。
盡管結(jié)合各個(gè)附圖的較佳實(shí)施例描述了本發(fā)明,然而可以理解,可在不脫離本發(fā)明的情況下下使用其它類(lèi)似的實(shí)施例,或?qū)λ枋龅膶?shí)施例作出修改和添加,以執(zhí)行本發(fā)明的同一功能。因此,本發(fā)明不應(yīng)當(dāng)限于任一單個(gè)的實(shí)施例,而是相反,應(yīng)當(dāng)在依照所附權(quán)利要求書(shū)的寬度和范圍內(nèi)解釋。
權(quán)利要求
1.一種維護(hù)更新的文件的方法,其特征在于,它包括在第一裝置上儲(chǔ)存一基礎(chǔ)文件的第一副本和第二副本;在所述第一裝置上接收對(duì)所述第一副本的改變;確定所述經(jīng)改變的第一副本和所述第二副本之間的第一差異;向服務(wù)器發(fā)送所述第一差異;以及如果所述服務(wù)器上的基礎(chǔ)文件與儲(chǔ)存在所述第一裝置上的基礎(chǔ)文件相同,則在所述服務(wù)器上接受所述第一差異,否則,在服務(wù)器上拒絕所述第一差異。
2.如權(quán)利要求1所述的方法,其特征在于,它還包括在所述第一裝置上從所述服務(wù)器接收所述文件的第一副本,并在所述第一裝置上儲(chǔ)存所述文件的第一副本和第二副本之前,在所述第一裝置上制作所述文件的第二副本。
3.如權(quán)利要求1所述的方法,其特征在于,確定所述第一差異包括使用所述經(jīng)改變的第一副本和所述第二副本之間的二進(jìn)制比較。
4.如權(quán)利要求1所述的方法,其特征在于,所述第一差異是二進(jìn)制差。
5.如權(quán)利要求1所述的方法,其特征在于,如果在所述服務(wù)器上拒絕所述差異,則從所述服務(wù)器向所述第一裝置發(fā)送第二差異,并向儲(chǔ)存在所述第一裝置上的基礎(chǔ)文件的第二副本應(yīng)用所述第二差異。
6.如權(quán)利要求1所述的方法,其特征在于,它還包括確定所述服務(wù)器上的基礎(chǔ)文件是否與儲(chǔ)存在所述第一裝置上的基礎(chǔ)文件相同。
7.如權(quán)利要求1所述的方法,其特征在于,發(fā)送所述第一差異包括使用HTTP協(xié)議的擴(kuò)充。
8.如權(quán)利要求1所述的方法,其特征在于,它還包括在第二裝置上儲(chǔ)存所述基礎(chǔ)文件的第一副本和第二副本;在所述第二裝置上接收對(duì)所述第一副本的改變;確定所述經(jīng)改變的第一副本和所述第二副本之間的第二差異;向所述服務(wù)器發(fā)送所述第二差異;以及如果所述服務(wù)器上的基礎(chǔ)文件與儲(chǔ)存在所述第二裝置上的基礎(chǔ)文件相同,則在服務(wù)器上接受所述第二差異,否則,在服務(wù)器上拒絕所述第二差異。
9.如權(quán)利要求8所述的方法,其特征在于,它還包括,如果在所述服務(wù)器上拒絕所述第二差異,則向所述第二裝置發(fā)送第三差異,并向所述第二裝置上的基礎(chǔ)文件的第二副本應(yīng)用所述第三差異。
10.如權(quán)利要求8所述的方法,其特征在于,它還包括在所述第二裝置上從所述服務(wù)器接收所述文件的第一副本,并在所述第二裝置上儲(chǔ)存所述文件的第一副本和第二副本之前,在所述第二裝置上制作所述文件的第二副本。
11.如權(quán)利要求8所述的方法,其特征在于,確定所述第二差異包括使用所述第二裝置上所述經(jīng)改變的第一副本和所述第二副本之間的二進(jìn)制比較。
12.如權(quán)利要求8所述的方法,其特征在于,所述第二差異是二進(jìn)制差。
13.如權(quán)利要求8所述的方法,其特征在于,它還包括確定所述服務(wù)器上的基礎(chǔ)文件是否與儲(chǔ)存在所述第二裝置上的基礎(chǔ)文件相同。
14.如權(quán)利要求8所述的方法,其特征在于,發(fā)送所述第二差異包括使用HTTP協(xié)議的擴(kuò)充。
15.一種在其上儲(chǔ)存了用于執(zhí)行維護(hù)更新的文件的方法的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述方法包括在第一裝置上儲(chǔ)存一基礎(chǔ)文件的第一副本和第二副本;在所述第一裝置上接收對(duì)所述第一副本的改變;確定所述經(jīng)改變的第一副本和所述第二副本之間的第一差異;向服務(wù)器發(fā)送所述第一差異;以及如果所述服務(wù)器上的基礎(chǔ)文件與儲(chǔ)存在所述第一裝置上的基礎(chǔ)文件相同,則在所述服務(wù)器上接受所述第一差異,否則,在所述服務(wù)器上拒絕所述第一差異。
16.如權(quán)利要求15所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,它還包括計(jì)算機(jī)可執(zhí)行指令,用于在所述第一裝置上從所述服務(wù)器接收所述文件的第一副本,并在所述第一裝置上儲(chǔ)存所述文件的第一副本和第二副本之前,在所述第一裝置上制作所述文件的第二副本。
17.如權(quán)利要求15所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,確定所述第一差異包括使用所述經(jīng)改變的第一副本和所述第二副本之間的二進(jìn)制比較。
18.如權(quán)利要求15所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述第一差異是二進(jìn)制差。
19.如權(quán)利要求15所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,它還包括計(jì)算機(jī)可執(zhí)行指令,用于如果在所述服務(wù)器上拒絕所述差異,則從所述服務(wù)器向所述第一裝置發(fā)送第二差異,并向儲(chǔ)存在所述第一裝置上的基礎(chǔ)文件的第二副本應(yīng)用所述第二差異。
20.如權(quán)利要求15所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,它還包括計(jì)算機(jī)可執(zhí)行指令,用于確定所述服務(wù)器上的基礎(chǔ)文件是否與儲(chǔ)存在所述第一裝置上的基礎(chǔ)文件相同。
21.如權(quán)利要求15所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,發(fā)送所述第一差異包括使用HTTP協(xié)議的擴(kuò)充。
22.如權(quán)利要求15所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,它還包括計(jì)算機(jī)可執(zhí)行指令,用于在第二裝置上儲(chǔ)存所述基礎(chǔ)文件的第一和第二副本;在所述第二裝置上接收對(duì)所述第一副本的改變;確定所述經(jīng)改變的第一副本和所述第二副本之間的第二差異;向所述服務(wù)器發(fā)送所述第二差異;以及如果所述服務(wù)器上的基礎(chǔ)文件與儲(chǔ)存在所述第二裝置上的基礎(chǔ)文件相同,則在所述服務(wù)器上接受所述第二差異,否則,在所述服務(wù)器上拒絕所述第二差異。
23.如權(quán)利要求22所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,它還包括計(jì)算機(jī)可執(zhí)行指令,用于如果在所述服務(wù)器上拒絕所述第二差異,則向所述第二裝置發(fā)送第三差異,并向儲(chǔ)存在所述第二裝置上的基礎(chǔ)文件的第二副本應(yīng)用所述第三差異。
24.如權(quán)利要求22所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,它還包括計(jì)算機(jī)可執(zhí)行指令,用于在所述第二裝置上從所述服務(wù)器接收所述文件的第一副本,并在所述第二裝置上儲(chǔ)存所述文件的第一副本和第二副本之前,在所述第二裝置上制作所述文件的第二副本。
25.如權(quán)利要求22所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,確定所述第二差異包括使用所述第二裝置上的所述改變的第一副本和所述第二副本之間的二進(jìn)制比較。
26.如權(quán)利要求22所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述第二差異是二進(jìn)制差。
27.如權(quán)利要求22所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,它還包括計(jì)算機(jī)可執(zhí)行指令,用于確定所述服務(wù)器上的基礎(chǔ)文件是否與儲(chǔ)存在所述第二裝置上的基礎(chǔ)文件相同。
28.如權(quán)利要求22所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,發(fā)送所述第二差異包括使用HTTP協(xié)議的擴(kuò)充。
29.一種在文件同步系統(tǒng)中使用的系統(tǒng),其特征在于,它包括一存儲(chǔ)裝置,用于儲(chǔ)存一基礎(chǔ)文件的第一副本和第二副本;一輸入裝置,用于接收對(duì)所述基礎(chǔ)文件的第一副本的改變;以及一處理器,用于基于所接收的改變來(lái)改變所述第一副本,并確定所述經(jīng)改變的第一副本和所述第二副本之間的差異。
30.如權(quán)利要求29所述的系統(tǒng),其特征在于,所述差異是二進(jìn)制差異。
31.如權(quán)利要求29所述的系統(tǒng),其特征在于,所述基礎(chǔ)文件駐留在服務(wù)器上,它還包括一輸出裝置,用于向所述服務(wù)器發(fā)送所述差異。
32.如權(quán)利要求29所述的系統(tǒng),其特征在于,所述差異使用HTTP協(xié)議的擴(kuò)充來(lái)發(fā)送到所述服務(wù)器。
33.如權(quán)利要求29所述的系統(tǒng),其特征在于,它還包括一用于接收第二差異的裝置,其中,所述處理器向所述基礎(chǔ)文件的第二副本應(yīng)用所述第二差異以生成一修改的第二副本,并向所述修改的第二副本應(yīng)用所接收的改變以生成第三副本,并確定所述第三副本和所述經(jīng)修改的第二副本之間的第三差異。
34.如權(quán)利要求33所述的系統(tǒng),其特征在于,它還包括一用于向服務(wù)器發(fā)送所述第三差異的輸出裝置。
35.一種在文件同步系統(tǒng)中使用的系統(tǒng),其特征在于,它包括一存儲(chǔ)裝置,用于儲(chǔ)存一基礎(chǔ)文件;一輸入裝置,用于從客戶(hù)機(jī)裝置接收差異;以及一處理器,用于確定所述差異是否能應(yīng)用到所儲(chǔ)存的基礎(chǔ)文件,并且如果能,則向所述基礎(chǔ)文件應(yīng)用所述差異,否則,向所述客戶(hù)機(jī)裝置指示所述差異被拒絕。
36.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述差異是二進(jìn)制差異。
37.如權(quán)利要求35所述的系統(tǒng),其特征在于,所述差異以HTTP協(xié)議的擴(kuò)充的形式接收。
38.如權(quán)利要求35所述的系統(tǒng),其特征在于,如果所述差異被所述處理器拒絕,則從所述存儲(chǔ)裝置檢索第二差異,并通過(guò)一輸出裝置向所述客戶(hù)機(jī)裝置發(fā)送所述第二差異。
39.如權(quán)利要求38所述的系統(tǒng),其特征在于,所述第二差異從第二客戶(hù)機(jī)裝置接收。
40.如權(quán)利要求35所述的系統(tǒng),其特征在于,如果所述基礎(chǔ)文件與所述客戶(hù)機(jī)裝置用于生成所述差異的客戶(hù)機(jī)基礎(chǔ)文件相同,則所述差異可應(yīng)用到所儲(chǔ)存的基礎(chǔ)文件。
全文摘要
當(dāng)對(duì)文件作出改變時(shí),將文件的基于客戶(hù)機(jī)和基于服務(wù)器的版本保持同步。將數(shù)據(jù)與對(duì)客戶(hù)機(jī)和服務(wù)器都已知的前一版本相比較,并生成兩者之間的差異的高度壓縮的表示。差異,或“差”然后被發(fā)送,并可使用HTTP(超文本傳輸協(xié)議)協(xié)議的擴(kuò)充。
文檔編號(hào)G06F17/30GK1624661SQ20041008589
公開(kāi)日2005年6月8日 申請(qǐng)日期2004年11月5日 優(yōu)先權(quán)日2003年11月6日
發(fā)明者劉海, L·N·安托諾夫 申請(qǐng)人:微軟公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1