專(zhuān)利名稱(chēng):服務(wù)器輔助的對(duì)等同步的制作方法
服務(wù)器輔助的對(duì)等同步
背景
數(shù)據(jù)可以按各種各樣的方式并使用各種各樣的連接拓?fù)鋪?lái)在不同端點(diǎn),如 在不同計(jì)算設(shè)備之間同步。例如,某些系統(tǒng)或技術(shù)可依賴(lài)于端點(diǎn)與諸如計(jì)算服 務(wù)器等單個(gè)(或多個(gè))集中端點(diǎn)同步。在其它系統(tǒng)或技術(shù)中,端點(diǎn)可能按各種 方式,包括在一個(gè)或多個(gè)分散或?qū)Φ韧負(fù)渲兄苯颖舜送ㄐ拧?br>
端點(diǎn)和不同通信拓?fù)涞牟煌才趴筛髯跃哂衅渥约旱膬?yōu)點(diǎn)和缺點(diǎn)。僅作為 一個(gè)示例,其中端點(diǎn)可能在不使用集中或"服務(wù)器"端點(diǎn)而直接彼此同步數(shù)據(jù) 的系統(tǒng)可具有各種優(yōu)點(diǎn)。例如,在這一系統(tǒng)中,端點(diǎn)可能能夠與物理上或邏輯 上"接近"的其它端點(diǎn)通信并同步數(shù)據(jù),而無(wú)需首先(或曾經(jīng))與可能位于比 同步端點(diǎn)更遠(yuǎn)之處的中央服務(wù)器同步數(shù)據(jù)。作為另一示例,如果端點(diǎn)能夠與各 種其它端點(diǎn)通信,則可消除如當(dāng)需要集中服務(wù)器端點(diǎn)時(shí)可能存在的單個(gè)故障 點(diǎn)。作為另一示例,在某些實(shí)現(xiàn)中,如果例如對(duì)等同步系統(tǒng)的建立不需要配置 具有諸如始終需要可用于服務(wù)來(lái)自其它端點(diǎn)的請(qǐng)求或能夠伸縮以提供附加容 量等特定要求的一個(gè)或多個(gè)服務(wù)器,則至少此類(lèi)對(duì)等同步系統(tǒng)的建立或配置可 能更為容易。
然而,分散系統(tǒng)也可具有缺點(diǎn),包括在某些情況下可在使用一個(gè)或多個(gè)集 中端點(diǎn)的拓?fù)渲屑m正或預(yù)防的至少某些缺點(diǎn)。例如,對(duì)等端點(diǎn)可能并不始終可 用于或能夠同步數(shù)據(jù)(這與至少某些"服務(wù)器"端點(diǎn)形成對(duì)比,后者可能被配 置成"始終可用"),并且缺少可用端點(diǎn)有時(shí)可能意味著數(shù)據(jù)直到或除非特定 端點(diǎn)可用才能被同步。另一可能的缺點(diǎn)可涉及確定如何在可能以任意拓?fù)溥B接 的一組端點(diǎn)之間高效地同步數(shù)據(jù),尤其是大量數(shù)據(jù)。在至少某些情況下,確定 哪些端點(diǎn)應(yīng)與其它端點(diǎn)同步、應(yīng)同步什么數(shù)據(jù)等并不是微不足道的問(wèn)題,并且 要找到解決方案可能要高強(qiáng)度的計(jì)算,這些解決方案可能不是最優(yōu)的(這進(jìn)而 可導(dǎo)致諸如傳送比需要的更多數(shù)據(jù)等問(wèn)題),等等。分散系統(tǒng)的另一可能的缺 點(diǎn)在于關(guān)于端點(diǎn)的系統(tǒng)的信息,如端點(diǎn)的特性、特定或所有端點(diǎn)所傳送的數(shù)據(jù)
6的整體視圖等,在沒(méi)有一個(gè)端點(diǎn)或端點(diǎn)子集必要地同步或能夠訪(fǎng)問(wèn)全部或至少相當(dāng)大量的同步數(shù)據(jù)的時(shí)候可能更難以收集。還有一個(gè)可能的缺點(diǎn)可涉及應(yīng)用安全策略或其它安全相關(guān)功能而無(wú)需能夠完全信任任何特定對(duì)等機(jī)器;這些安全問(wèn)題中的至少某一些在某些實(shí)現(xiàn)中可由于一個(gè)或多個(gè)集中且可能可信的端點(diǎn)的存在而得到改善。
概述
下面提供本發(fā)明的簡(jiǎn)要概述以便向讀者提供基本的理解。本概述不是本發(fā)明的詳盡概觀(guān),并且既不標(biāo)識(shí)本發(fā)明的關(guān)鍵或重要元素,也不描繪本發(fā)明的范圍。其唯一目的是以簡(jiǎn)化形式提供在此公開(kāi)一些概念作為稍后提供的更詳細(xì)描述的序言。
此處所描述的是針對(duì)使用集中和分散同步系統(tǒng)和通信拓?fù)涞母髟貋?lái)在端點(diǎn)之間同步數(shù)據(jù)的各種技術(shù)和方法。在至少某些實(shí)現(xiàn)中,同步數(shù)據(jù)的某一子集可被傳送到集中端點(diǎn),而該同步數(shù)據(jù)的另一子集可用分散或?qū)Φ确绞街苯优c其它端點(diǎn)傳送。另外,在某些實(shí)現(xiàn)中,可在特定端點(diǎn),包括在集中端點(diǎn)上實(shí)現(xiàn)各種協(xié)作且可能有益的功能以輔助端點(diǎn)之間的數(shù)據(jù)同步。
附圖描述
圖1示出了其中數(shù)據(jù)可以用集中和對(duì)等兩種拓?fù)鋪?lái)同步和共享的示例性系統(tǒng)。
圖2示出了示例性概括操作流程,其包括當(dāng)變更同步的數(shù)據(jù)并使得這一變更對(duì)其它端點(diǎn)可用時(shí)由包括設(shè)備端點(diǎn)在內(nèi)的端點(diǎn)執(zhí)行的各種操作。
圖3示出了示例性概括操作流程,其包括在同步來(lái)自另一端點(diǎn)的數(shù)據(jù)時(shí)由包括設(shè)備端點(diǎn)在內(nèi)的端點(diǎn)執(zhí)行的各種操作。
圖4示出了示例性概括操作流程,其包括可被執(zhí)行來(lái)檢索或下載團(tuán)塊的各種操作。
圖5示出了示例性概括操作流程,其包括可在維護(hù)和提供元數(shù)據(jù)時(shí)執(zhí)行的各種操作。
圖6示出了示例性概括操作流程,其包括可在存儲(chǔ)和提供與元數(shù)據(jù)所引用的團(tuán)塊相關(guān)聯(lián)的位置和定位符時(shí)執(zhí)行的各種操作。
圖7示出了示例性概括操作流程,其包括可在將團(tuán)塊存儲(chǔ)在高速緩存中并從高速緩存提供團(tuán)塊時(shí)執(zhí)行的各種操作。
圖8示出了示例性概括操作流程,其包括可在將團(tuán)塊存儲(chǔ)在云存儲(chǔ)中并從運(yùn)存儲(chǔ)提供團(tuán)塊時(shí)執(zhí)行的各種操作。
圖9示出了示例性概括操作流程,其包括可在不使用示例性服務(wù)器端點(diǎn)提
供的完整元數(shù)據(jù)或至少某些功能的情況下檢索團(tuán)塊時(shí)執(zhí)行的各種操作。
圖10示出了在其中可以實(shí)現(xiàn)此處所描述的各種技術(shù)的示例性計(jì)算環(huán)境。
詳細(xì)描述
此處所描述的是針對(duì)使用集中和分散同步系統(tǒng)和通信拓?fù)涞母髟貋?lái)在端點(diǎn)之間同步數(shù)據(jù)的各種技術(shù)和方法。更具體地,在至少某些實(shí)現(xiàn)中,同步數(shù)據(jù)的某一子集可被傳送到集中端點(diǎn),而該同步數(shù)據(jù)的另一子集可用分散或?qū)Φ确绞街苯优c其它端點(diǎn)傳送。另外,在某些實(shí)現(xiàn)中,可在特定端點(diǎn),包括在集中端點(diǎn)上實(shí)現(xiàn)各種協(xié)作且可能有益的功能以輔助端點(diǎn)之間的數(shù)據(jù)同步。
現(xiàn)在轉(zhuǎn)向圖1,所示是其中數(shù)據(jù)可以用集中和對(duì)等兩種拓?fù)鋪?lái)同步和共享
的示例性系統(tǒng)100。示例性系統(tǒng)100包含服務(wù)器端點(diǎn)110、設(shè)備端點(diǎn)A 160、設(shè)備端點(diǎn)B 170以及設(shè)備端點(diǎn)C 180。示例性服務(wù)器端點(diǎn)110被示為包含存儲(chǔ)服務(wù)120、團(tuán)塊(blob)查找服務(wù)125、團(tuán)塊高速緩存服務(wù)130、云存儲(chǔ)服務(wù)135、通知服務(wù)140、知識(shí)存儲(chǔ)模塊145、以及團(tuán)塊下載模塊150。示例性設(shè)備端點(diǎn)A160被示為包含團(tuán)塊下載模塊162。圖1的此描述可參考其它服務(wù)來(lái)進(jìn)行。然而,應(yīng)當(dāng)理解,參考圖l所描述的各元素并不旨在限于用于參考其它附圖所描述的元素。另外,盡管圖1中的示例性圖示表明特定元素,但在某些實(shí)現(xiàn)中,并非這些元素全部都存在,并且在某些實(shí)現(xiàn)中,可存在其它元素。
一般而言,在至少某些實(shí)現(xiàn)中,數(shù)據(jù)可在任何兩個(gè)或更多端點(diǎn)之間同步。例如,但非限制,如圖1所示,數(shù)據(jù)可在設(shè)備端點(diǎn)A160和服務(wù)器端點(diǎn)110之間同步。同一或其它數(shù)據(jù)然后可在服務(wù)器端點(diǎn)和設(shè)備端點(diǎn)B 170之間同步。在某些情況下,設(shè)備端點(diǎn)B然后又可與設(shè)備端點(diǎn)C 180同步數(shù)據(jù)。在某些實(shí)現(xiàn)中,特點(diǎn)端點(diǎn)僅可與特定其它端點(diǎn)同步,而在其它實(shí)現(xiàn)中,端點(diǎn)可以與各種各樣的端點(diǎn)同步,包括在某些實(shí)現(xiàn)中與所有其它端點(diǎn)同步。
盡管存在并且可使用各種各樣的同步技術(shù),但在至少某些實(shí)現(xiàn)中,至少某
些數(shù)據(jù)可使用諸如簡(jiǎn)單共享擴(kuò)展(SSE)等技術(shù)來(lái)在端點(diǎn)之間同步。SSE—般可被描述為包含用于使用對(duì)諸如RSS ("真正簡(jiǎn)單聚合"或"豐富站點(diǎn)概要")或Atom文檔等訂閱源文檔的(相對(duì))簡(jiǎn)單數(shù)據(jù)添加來(lái)在端點(diǎn)之間共享和同步數(shù)據(jù)的數(shù)據(jù)格式和過(guò)程。在某些情況下,包括SSE信息的訂閱源可被稱(chēng)為"SSE訂閱源"。
采用此類(lèi)實(shí)現(xiàn),或采用至少某些其它實(shí)現(xiàn),端點(diǎn)可通過(guò)提供既包括SSE信息又包括同步數(shù)據(jù)的至少一部分的訂閱源文檔來(lái)使得數(shù)據(jù)可供其它端點(diǎn)進(jìn)行同步。要向其同步信息的端點(diǎn)可獲得該訂閱源文檔,并使用用于將來(lái)自訂閱源的信息與一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)中的信息合并的SSE過(guò)程以及其它技術(shù)來(lái)解釋其內(nèi)容。作為該過(guò)程的一部分,要向其同步信息的端點(diǎn)一般可更新該同步數(shù)據(jù)的其自己的副本或版本,并且由此完成數(shù)據(jù)從第一端點(diǎn)到第二端點(diǎn)的同步。僅作為一個(gè)具體示例,設(shè)備端點(diǎn)A 160可使得包括SSE信息的RSS訂閱源對(duì)服務(wù)器端點(diǎn)110可用,以使由該設(shè)備端點(diǎn)A維護(hù)或訪(fǎng)問(wèn)的信息可被同步到服務(wù)器端點(diǎn)。服務(wù)器端點(diǎn)可獲得該訂閱源,并且可能使用"SSE合并"來(lái)將該訂閱源的內(nèi)容與服務(wù)器端點(diǎn)所維護(hù)的數(shù)據(jù)合并。在這一合并之后,設(shè)備端點(diǎn)A提供的數(shù)據(jù)中的至少某一些可被并入服務(wù)器端點(diǎn)所維護(hù)的數(shù)據(jù)中。此外,在設(shè)備端點(diǎn)A上所做出的對(duì)數(shù)據(jù)的附加變更也可用類(lèi)似的方式同步到服務(wù)器端點(diǎn)該附加變更可在設(shè)備端點(diǎn)A上做出,設(shè)備端點(diǎn)A可更新其提供的訂閱源以包括該附加變更,然后服務(wù)器端點(diǎn)可處理該更新的訂閱源并并入該附加變更。
以上的解釋描述了如何可在一個(gè)方向上,即從第一端點(diǎn)到第二端點(diǎn)同步數(shù)據(jù)和變更。包括SSE在內(nèi)的各種同步技術(shù)也使得變更可在"其它方向",即本示例中從第二端點(diǎn)到第一端點(diǎn)來(lái)同步變得可能。例如,當(dāng)在前一示例中將SSE用于設(shè)備端點(diǎn)A 160和服務(wù)器端點(diǎn)110時(shí),服務(wù)器端點(diǎn)也可使得其自己的(至少最初)包括由設(shè)備端點(diǎn)A提供的相同信息的SSE訂閱源可用。然后,在該訂閱源所包含的信息中的某一些在服務(wù)器端點(diǎn)上被更新時(shí),服務(wù)器端點(diǎn)進(jìn)而可更新其自己的訂閱源以同時(shí)包括該變更或更新的數(shù)據(jù)以及對(duì)該訂閱源中的SSE信息的相應(yīng)更新兩者。包括設(shè)備端點(diǎn)A在 的同步來(lái)自服務(wù)器端點(diǎn)的此信息的另一端點(diǎn)然后可獲得該訂閱源,并合并變更(可能執(zhí)行服務(wù)器端點(diǎn)所執(zhí)行來(lái)并入來(lái)自設(shè)備端點(diǎn)A的變更的相同或相似的合并處理)。概括而言,采用某些同步技術(shù),兩個(gè)端點(diǎn)可彼此同步相同的數(shù)據(jù),使得任一端點(diǎn)可例如通過(guò)各自使得數(shù)據(jù)可用并通過(guò)各自在另一端點(diǎn)提供的數(shù)據(jù)變更時(shí)更新其自己的本地?cái)?shù)據(jù)來(lái)做出對(duì)該數(shù)據(jù)的變更。
此外,多個(gè)端點(diǎn)能夠使用包括SSE在內(nèi)的諸如至少某些同步技術(shù)所描述的那些技術(shù)來(lái)與單個(gè)(或多個(gè))端點(diǎn)同步。例如,設(shè)備端點(diǎn)B170可同步在設(shè)備端點(diǎn)A160和服務(wù)器端點(diǎn)IIO之間同步的相同(或某一其它)數(shù)據(jù)。當(dāng)使用SSE訂閱源時(shí),設(shè)備端點(diǎn)可通過(guò)檢索由服務(wù)器端點(diǎn)所提供的訂閱源,在某些情況下包括設(shè)備端點(diǎn)A所檢索的同一訂閱源,并并入該訂閱源所表示的數(shù)據(jù)或變更,來(lái)同步相同的數(shù)據(jù)。設(shè)備端點(diǎn)B還可使得訂閱源對(duì)服務(wù)器端點(diǎn)可用,以使服務(wù)器端點(diǎn)可包括由設(shè)備端點(diǎn)B對(duì)該數(shù)據(jù)做出的變更。
盡管在某些情況下數(shù)據(jù)可通過(guò)另一端點(diǎn)在設(shè)備之間同步,如在先前的其中由設(shè)備端點(diǎn)A 160做出的變更可通過(guò)服務(wù)器端點(diǎn)110同步到設(shè)備端點(diǎn)B 170的示例性描述中那樣,但在至少某些情況下,并且在至少使用特定同步技術(shù)的時(shí)候,其它同步技術(shù)也是可用的。例如,在某些情況下,包括SSE在內(nèi)的同步技術(shù)或協(xié)議可提供既通過(guò)可能像服務(wù)器端點(diǎn)110那樣的集中服務(wù)器來(lái)同步又直接與其它端點(diǎn)同步的能力。例如,設(shè)備端點(diǎn)A在某些實(shí)現(xiàn)中可能能夠或者通過(guò)經(jīng)由服務(wù)器端點(diǎn)IIO來(lái)同步,或者通過(guò)直接與設(shè)備端點(diǎn)B同步(如由圖1中設(shè)備端點(diǎn)A和設(shè)備端點(diǎn)B之間的虛線(xiàn)所示)來(lái)將數(shù)據(jù)同步到設(shè)備端點(diǎn)B。在同一或其它實(shí)現(xiàn)中,設(shè)備端點(diǎn)B可直接與設(shè)備端點(diǎn)C180同步數(shù)據(jù)。例如,這一直接同步可在設(shè)備端點(diǎn)A和設(shè)備端點(diǎn)B之間,或在設(shè)備端點(diǎn)B和設(shè)備端點(diǎn)C之間,通過(guò)交換SSE訂閱源文檔并合并包括在所交換的訂閱源中的數(shù)據(jù)來(lái)實(shí)現(xiàn)。此外,在某些實(shí)現(xiàn)中,甚至可能不要求存在服務(wù)器端點(diǎn)。例如,在某些實(shí)現(xiàn)中,在某些情況下元數(shù)據(jù)和團(tuán)塊數(shù)據(jù)可直接在知道其它設(shè)備端點(diǎn)的位置的設(shè)備端點(diǎn)之間傳送,而無(wú)需一個(gè)或多個(gè)服務(wù)器端點(diǎn)的介入或其提供的輔助。
在至少某些實(shí)現(xiàn)中,可在端點(diǎn)之間同步各種各樣類(lèi)型的數(shù)據(jù)。例如,兩個(gè)端點(diǎn)可同步包括各種各樣信息的文本信息;可同步諸如音頻或視頻文件或編譯的可執(zhí)行代碼等"二進(jìn)制"信息;或可同步任何其它類(lèi)型或格式的數(shù)據(jù)。所同步的數(shù)據(jù)可用各種各樣方式來(lái)表示。在某些實(shí)現(xiàn)中,此類(lèi)數(shù)據(jù)可被包括在端點(diǎn)之間同步的信息中,包括通過(guò)使用如上所述的步驟來(lái)同步的信息。例如,在使用SSE的實(shí)現(xiàn)中,此類(lèi)數(shù)據(jù)可被包括在端點(diǎn)之間交換的SSE訂閱源中。然而,在同一或其它實(shí)現(xiàn)中,在端點(diǎn)之間傳送的信息可能不包括最終可在端點(diǎn)之間同步或傳送的全部數(shù)據(jù)。在某些此類(lèi)情況下,在端點(diǎn)之間傳送的信息可改為或還包括對(duì)要同步的其它數(shù)據(jù)的引用。這一引用可用各種方式來(lái)提供,
如可能通過(guò)使用RSS或Atom訂閱源中包括引用資源的URL的"enclosure (附件)"元素。引用所標(biāo)識(shí)的數(shù)據(jù)然后可使用各種手段來(lái)訪(fǎng)問(wèn)或存儲(chǔ)。
如此處所使用的,術(shù)語(yǔ)"元數(shù)據(jù)"可被解釋為指在端點(diǎn)之間傳送的、標(biāo)識(shí)(并且在某些實(shí)現(xiàn)中可包括)同步或傳送的數(shù)據(jù)的信息。例如,在某些實(shí)現(xiàn)中,元數(shù)據(jù)可由為每一條同步數(shù)據(jù)包括一"項(xiàng)目"的文檔或訂閱源來(lái)包含。每一項(xiàng)目在某些示例性實(shí)現(xiàn)中進(jìn)而可包括"同步數(shù)據(jù)"部分和"項(xiàng)目數(shù)據(jù)"部分。在這些情況下,同步數(shù)據(jù)可以與關(guān)于特定項(xiàng)目的同步的信息相關(guān)聯(lián),而項(xiàng)目數(shù)據(jù)可以與要同步的信息相關(guān)聯(lián)。例如,同步數(shù)據(jù)可包括諸如與項(xiàng)目相關(guān)聯(lián)的版本號(hào)或該項(xiàng)目如何或何時(shí)被更新的歷史等信息,而項(xiàng)目數(shù)據(jù)可包括項(xiàng)目本身,或至少與該項(xiàng)目相關(guān)聯(lián)的信息。
在某些情況下,所有項(xiàng)目數(shù)據(jù)可被包括在元數(shù)據(jù)中,而在其它情況下,元數(shù)據(jù)可能不包括全部項(xiàng)目數(shù)據(jù)并且可改為包括對(duì)項(xiàng)目數(shù)據(jù)的一個(gè)或多個(gè)引用。使用引用可使得元數(shù)據(jù)能夠保持(相對(duì))小,尤其是在有大量項(xiàng)目數(shù)據(jù)的情況下。例如,代替在元數(shù)據(jù)本身的項(xiàng)目數(shù)據(jù)部分中包括全部大音頻或視頻文件,項(xiàng)目數(shù)據(jù)元素可改為包括引用、標(biāo)識(shí)大音頻或視頻文件或以其它方式輔助該文件的檢索的某種類(lèi)型的引用或標(biāo)識(shí)符。諸如由元數(shù)據(jù)來(lái)引用的這一信息或數(shù)據(jù)可與元數(shù)據(jù)分開(kāi)存儲(chǔ)或訪(fǎng)問(wèn),并且在某些情況下可被稱(chēng)為數(shù)據(jù)的"團(tuán)塊"或簡(jiǎn)稱(chēng)為"團(tuán)塊"或"附f^"。(在某些情況下,至少部分同步數(shù)據(jù)也可不包括在元數(shù)據(jù)中而改為從元數(shù)據(jù)引用)。
在使用SSE的實(shí)現(xiàn)中,在某些情況下元數(shù)據(jù)可由SSE訂閱源來(lái)包含。例如,包括SSE信息的RSS訂閱源可被具體化為包括諸如針對(duì)每一條數(shù)據(jù)的"item(項(xiàng)目)"元素等常見(jiàn)RSSXML元素的XML文檔。每一 "item"元素進(jìn)而可包括同步數(shù)據(jù)和項(xiàng)目數(shù)據(jù),并且可包括關(guān)于項(xiàng)目的信息或項(xiàng)目本身,同步數(shù)據(jù)在至少某些實(shí)現(xiàn)中可由名為"sync (同步)"的XML元素來(lái)包含,而項(xiàng)目數(shù) 據(jù)在至少某些實(shí)現(xiàn)中可由名為"item"的XML元素來(lái)包含。
一般而言,項(xiàng)目數(shù)據(jù)或項(xiàng)目數(shù)據(jù)元素可包括任何類(lèi)型的數(shù)據(jù)。在采用RSS 文檔的簡(jiǎn)單情況下,項(xiàng)目數(shù)據(jù)可包括如"title (標(biāo)題)"和"description (描述)" 等標(biāo)準(zhǔn)RSS元素。在同一或其它情況下,項(xiàng)目數(shù)據(jù)可包括例如可能使用如hCard 等格式來(lái)編碼的聯(lián)系人信息或其它數(shù)據(jù)。在又一個(gè)或相同的實(shí)現(xiàn)中,項(xiàng)目數(shù)據(jù) 可包括對(duì)位于別處的信息,包括未包括在元數(shù)據(jù)或RSS訂閱源中的信息的一個(gè) 或多個(gè)引用。當(dāng)元數(shù)據(jù)使用RSS時(shí),這些引用可使用如RSS "enclosure"元素 等元素來(lái)包含。
應(yīng)當(dāng)注意,在至少某些情況下,元數(shù)據(jù)可包括同步的所有信息。S卩,在端 點(diǎn)之間同步的元數(shù)據(jù)可能并不總是引用或標(biāo)識(shí)其它信息。例如,如果元數(shù)據(jù)包 括如與聯(lián)系人相關(guān)聯(lián)的全部信息,則包括訂閱源或文檔在內(nèi)的包括該聯(lián)系人信 息的同步數(shù)據(jù)可能仍被統(tǒng)稱(chēng)為元數(shù)據(jù)。
盡管許多同步技術(shù)在同一時(shí)刻一起或使用相同的端點(diǎn)傳輸關(guān)于要傳輸?shù)?數(shù)據(jù)的信息(即,元數(shù)據(jù))以及該信息本身(包括元數(shù)據(jù)所引用的數(shù)據(jù)的團(tuán)塊), 則將元數(shù)據(jù)和團(tuán)塊分開(kāi)處理會(huì)有某些好處,如由此處所描述的至少某些技術(shù)所 完成的。在至少某些實(shí)現(xiàn)中,例如,元數(shù)據(jù)的量可能并不像所引用的數(shù)據(jù)或團(tuán) 塊數(shù)據(jù)的量那樣大,并且因此在一個(gè)方向上且在特定端點(diǎn)之間傳送元數(shù)據(jù),而 在另一方向上且可能在不同一組端點(diǎn)之間傳送團(tuán)塊數(shù)據(jù)是有利的。在一個(gè)這樣 的安排中,元數(shù)據(jù)可以被傳送到服務(wù)器端點(diǎn)IIO并通過(guò)使用服務(wù)器端點(diǎn)110來(lái) 傳送,而團(tuán)塊數(shù)據(jù)在至少某些情況下可以直接在設(shè)備端點(diǎn)之間傳送。此外,盡 管部分或全部元數(shù)據(jù)可以在同步數(shù)據(jù)的所有端點(diǎn)之間傳輸,但是團(tuán)塊數(shù)據(jù)可以 不必在每一端點(diǎn)之間傳送。例如,在例如團(tuán)塊被特別地請(qǐng)求或要求時(shí),團(tuán)塊可 以只在端點(diǎn)之間傳送。
此外,在某些實(shí)現(xiàn)中,取決于各種特性可以生成團(tuán)塊數(shù)據(jù)的一個(gè)或多個(gè)替 換表示并在端點(diǎn)之間傳送。例如,僅使用相對(duì)慢地傳送信息的通信機(jī)制連接到 一個(gè)或多個(gè)其它端點(diǎn)的端點(diǎn)可能期望或檢索在某些情況下小于可被至少某些 其它端點(diǎn)檢索的團(tuán)塊的團(tuán)塊。在一個(gè)具體示例中,使用相對(duì)低帶寬數(shù)據(jù)網(wǎng)絡(luò)連 接的移動(dòng)電話(huà)可獲得被轉(zhuǎn)碼或轉(zhuǎn)換以使圖像或視頻以較少量空間來(lái)表示(可能
12通過(guò)減小圖像的大小,通過(guò)使用更積極的壓縮設(shè)置等)的圖像或視頻文件。其 它種類(lèi)的替換表示也是可能的,或可由至少某些實(shí)現(xiàn)來(lái)支持。例如,某些端點(diǎn) 可以檢索例如音頻或視頻文件的剪輯而非整個(gè)音頻或視頻文件,等等。
在至少某些此類(lèi)實(shí)現(xiàn)中, 一個(gè)或多個(gè)特定端點(diǎn)可具有生成或提供特定替換 表示的能力。例如,在某些實(shí)現(xiàn)中,"替換表示服務(wù)"或"轉(zhuǎn)碼服務(wù)"可存在 于服務(wù)器端點(diǎn)110 (圖1中未示出)上,并且可參與存儲(chǔ)在服務(wù)器端點(diǎn)或其它 端點(diǎn)上的團(tuán)塊的至少某些替換表示的生成。在同一或其它實(shí)現(xiàn)中,諸如一個(gè)或 多個(gè)設(shè)備端點(diǎn)等至少某些特定其它端點(diǎn)還可或改為具有提供團(tuán)塊的替換表示 的能力。與替換表示的生成和提供有關(guān)的其它模塊、服務(wù)或過(guò)程也在本文別處 進(jìn)一步描述。
服務(wù)器端點(diǎn)的一個(gè)示例性實(shí)現(xiàn)可包括各種功能,包括圖1示為示例性服務(wù) 器端點(diǎn)110的一部分的一個(gè)或多個(gè)服務(wù)或模塊。如上所述,并非所有服務(wù)器端 點(diǎn)都可包括所有示出的模塊和服務(wù),而其它服務(wù)器端點(diǎn)可包括附加模塊和服 務(wù)。此外,盡管某些模塊和服務(wù)可被描述為以特定方式彼此通信,但一般而言, 許多模塊和服務(wù)可與其它模塊或服務(wù)通信,包括與位于服務(wù)器端點(diǎn)以及其它端 點(diǎn)上的模塊和服務(wù)通信,并包括與其中未具體描述這一通信的模塊和服務(wù)通 信。例如,知識(shí)存儲(chǔ)模塊145可被描述為以一種或多種特定方式與例如團(tuán)塊高 速緩存服務(wù)130—起使用,但這一描述并不將知識(shí)存儲(chǔ)模塊限于僅與團(tuán)塊高速
緩存服務(wù)或與其中具體描述了該通信的其它模塊或服務(wù)通信;知識(shí)存儲(chǔ)模塊在
至少某些實(shí)現(xiàn)中還可與各種其它模塊或服務(wù)通信。此外,盡管未在圖1中示出, 但在某些實(shí)現(xiàn)中,可存在多于單個(gè)服務(wù)器端點(diǎn)。在至少某些這樣的實(shí)現(xiàn)中,至 少某些服務(wù)器端點(diǎn)可以與其它服務(wù)器端點(diǎn)通信并參與不同端點(diǎn)之間的數(shù)據(jù)同 步。這多個(gè)服務(wù)器端點(diǎn)中的每一個(gè)可以?xún)H包括部分或可能包括全部圖1所示的
示例性服務(wù)和模塊,作為示例性服務(wù)器端點(diǎn)110的一部分。
示例性存儲(chǔ)服務(wù)120 —般可存儲(chǔ)元數(shù)據(jù)并為其它端點(diǎn)提供與服務(wù)器端點(diǎn) 110同步元數(shù)據(jù)的能力。示例性設(shè)備端點(diǎn)A 160例如可做出本地變更并且更新 其維護(hù)的元數(shù)據(jù)以使該元數(shù)據(jù)包括該變更,然后將經(jīng)更新的元數(shù)據(jù)傳送到存儲(chǔ) 服務(wù)。存儲(chǔ)服務(wù)然后可將從設(shè)備端點(diǎn)A傳送來(lái)的元數(shù)據(jù)中的變更與存儲(chǔ)服務(wù)所 管理的同一元數(shù)據(jù)的某一表示合并。存儲(chǔ)服務(wù)然后可使其自己的合并的或經(jīng)更新的元數(shù)據(jù)對(duì)其它端點(diǎn)可用(這又可使其它端點(diǎn)能夠檢索存儲(chǔ)服務(wù)所提供的元 數(shù)據(jù)并且然后并入最初由設(shè)備端點(diǎn)A做出的變更)。存儲(chǔ)服務(wù)可存儲(chǔ)并提供多 條單獨(dú)的元數(shù)據(jù),如在至少某些實(shí)現(xiàn)中的多個(gè)SSE訂閱源,并且每一條元數(shù)據(jù)
可以標(biāo)識(shí)不同(或相同)的數(shù)據(jù)集??捎墒纠源鎯?chǔ)服務(wù)120執(zhí)行的至少某些 操作可以在下文中尤其參考圖5來(lái)更詳細(xì)描述。
在包括使用SSE的實(shí)現(xiàn)在內(nèi)的某些實(shí)現(xiàn)中,存儲(chǔ)服務(wù)可以接受(或檢索, 或以某種方式獲得)由其它端點(diǎn)變得可用的SSE訂閱源。存儲(chǔ)服務(wù)然后可將所 獲得的訂閱源中的變更與該存儲(chǔ)服務(wù)可用各種方式(包括作為文件本身、作為 數(shù)據(jù)庫(kù)中的記錄等等)存儲(chǔ)或訪(fǎng)問(wèn)的訂閱源的本地表示合并。存儲(chǔ)服務(wù)然后可 能使用web或文件服務(wù)器、通過(guò)主動(dòng)將經(jīng)更新的訂閱源傳送到其它端點(diǎn)等等, 來(lái)使得作為合并操作的結(jié)果的經(jīng)更新的訂閱源對(duì)至少某些端點(diǎn)可用(同樣以各 種方式,包括作為可由其它端點(diǎn)訪(fǎng)問(wèn)的文件)。
在某些實(shí)現(xiàn)中,示例性團(tuán)塊查找服務(wù)125可接受諸如團(tuán)塊標(biāo)識(shí)符等某種標(biāo) 識(shí)團(tuán)塊的數(shù)據(jù),并提供端點(diǎn)然后可用于獲得或檢索該團(tuán)塊的一個(gè)或多個(gè)"定位 符"。例如,在包括其中元數(shù)據(jù)和團(tuán)塊可被直接或單獨(dú)傳送或同步的實(shí)現(xiàn)在內(nèi) 的實(shí)現(xiàn)中, 一個(gè)或多個(gè)端點(diǎn)可向團(tuán)塊查找服務(wù)提供包括可檢索特定團(tuán)塊的一個(gè) 或多個(gè)位置的信息。在某些實(shí)現(xiàn)中,這些位置可包括設(shè)備端點(diǎn)、團(tuán)塊高速緩存 服務(wù)130或云存儲(chǔ)服務(wù)135。團(tuán)塊查找服務(wù)然后可在某一稍后的時(shí)間向希望獲 得該團(tuán)塊的另一端點(diǎn)提供這些位置中的一個(gè)或多個(gè)??捎墒纠詧F(tuán)塊查找服務(wù) 執(zhí)行的至少某些操作可以在下文中尤其參考圖4和圖6來(lái)更詳細(xì)描述。
團(tuán)塊標(biāo)識(shí)符一般可以是標(biāo)識(shí)該團(tuán)塊的某條數(shù)據(jù)。在某些實(shí)現(xiàn)中,團(tuán)塊標(biāo)識(shí) 符可由各種設(shè)備和服務(wù)器功能用于特別地標(biāo)識(shí)團(tuán)塊而無(wú)需傳送該團(tuán)塊本身。因 此,例如,存儲(chǔ)服務(wù)和其它端點(diǎn)可在元數(shù)據(jù)中使用團(tuán)塊標(biāo)識(shí)符,團(tuán)塊查找服務(wù) 可使用團(tuán)塊標(biāo)識(shí)符來(lái)存儲(chǔ)和提供位置,團(tuán)塊高速緩存服務(wù)或云存儲(chǔ)服務(wù)可使用 相關(guān)聯(lián)的團(tuán)塊標(biāo)識(shí)符來(lái)存儲(chǔ)索引的或可被檢索的團(tuán)塊,等等。在某些實(shí)現(xiàn)中, 單個(gè)團(tuán)塊標(biāo)識(shí)符可由各種模塊或功能用于標(biāo)識(shí)團(tuán)塊,而在同一或其它實(shí)現(xiàn)中, 多個(gè)且可能不同的團(tuán)塊標(biāo)識(shí)符可能可由不同的模塊或功能用于標(biāo)識(shí)特定的單 個(gè)團(tuán)塊。
團(tuán)塊標(biāo)識(shí)符可以用各種方式來(lái)實(shí)現(xiàn)并采取各種形式。在至少一個(gè)實(shí)現(xiàn)中,團(tuán)塊標(biāo)識(shí)符可以?xún)H僅是一串或一組字母數(shù)字或其它字符,如像"ABC123"、 "ABCDEFGH" 、 " 123456"等。在另一實(shí)現(xiàn)中,團(tuán)塊標(biāo)識(shí)符可采取例如統(tǒng) 一資源定位符(URL)或統(tǒng)一資源標(biāo)識(shí)符(URI)等形式,如可能是 "http:〃www.els,live.com/ABC123" 、 "http:〃www.els.live.com/ABCDEFGH"、 "http:〃www.els.live.com/123456 "等等。在這 一 示例中,在該標(biāo)識(shí)符的 "http://www.els.live.com/"部分之后的串可實(shí)際標(biāo)識(shí)該團(tuán)塊。在某些情況下, 該標(biāo)識(shí)符的"http://www.els.live.com/"部分可用于各種其它目的,包括可能使 得團(tuán)塊標(biāo)識(shí)符看上去更像用戶(hù)可能熟悉的標(biāo)識(shí)符,或甚至在至少某些特定情況 下實(shí)際定位該團(tuán)塊,包括在以下尤其參考圖9描述的示例性實(shí)現(xiàn)中。
示例性團(tuán)塊高速緩存服務(wù)130可為臨時(shí)團(tuán)塊或文件提供存儲(chǔ)位置。這一位 置在某些情況下可幫助在端點(diǎn)之間傳輸團(tuán)塊。例如,假定設(shè)備端點(diǎn)A160與服 務(wù)器端點(diǎn)110同步元數(shù)據(jù),并且這一元數(shù)據(jù)標(biāo)識(shí)了可從設(shè)備端點(diǎn)A獲得的團(tuán)塊。 還假定該團(tuán)塊未被傳送到服務(wù)器端點(diǎn),相反,其保留在設(shè)備端點(diǎn)A上可供檢索。 然后假定設(shè)備端點(diǎn)A離線(xiàn)或變得對(duì)服務(wù)器端點(diǎn)和設(shè)備端點(diǎn)B 170中的一個(gè)或兩 者不可用?,F(xiàn)在,如果設(shè)備端點(diǎn)B同步來(lái)自服務(wù)器端點(diǎn)的元數(shù)據(jù)并確定它希望 從設(shè)備端點(diǎn)A檢索團(tuán)塊,則它可能無(wú)法這樣做,因?yàn)榫哂性搱F(tuán)塊的唯一副本的 設(shè)備端點(diǎn)A不在線(xiàn)或不可用。這一問(wèn)題可通過(guò)包括使用團(tuán)塊高速緩存服務(wù)在內(nèi) 的各種手段來(lái)解決。在一個(gè)這樣的實(shí)現(xiàn)中,與設(shè)備端點(diǎn)A提供的元數(shù)據(jù)相關(guān)聯(lián) 的團(tuán)塊可在設(shè)備端點(diǎn)A變?yōu)椴豢捎弥氨淮鎯?chǔ)在團(tuán)塊高速緩存服務(wù)中,然后設(shè) 備端點(diǎn)B可從該團(tuán)塊高速緩存服務(wù)而非從設(shè)備端點(diǎn)A檢索該團(tuán)塊。
作為高速緩存,一個(gè)示例性團(tuán)塊高速緩存服務(wù)可將團(tuán)塊作為臨時(shí)數(shù)據(jù)來(lái)存 儲(chǔ)。g卩,可能與以下描述的云存儲(chǔ)服務(wù)135相反,團(tuán)塊高速緩存服務(wù)所存儲(chǔ)的 團(tuán)塊可以?xún)H被存儲(chǔ)一段有限的時(shí)間,并且在某些情況下可在團(tuán)塊高速緩存服務(wù) 本身由某一其它模塊或服務(wù)控制的各種時(shí)間移除。例如,在某些實(shí)現(xiàn)中,團(tuán)塊 高速緩存服務(wù)可使用一個(gè)或多個(gè)高速緩存算法來(lái)確定何時(shí)刪除團(tuán)塊或用新團(tuán) 塊來(lái)替換當(dāng)前存儲(chǔ)的團(tuán)塊。例如,在至少一個(gè)實(shí)現(xiàn)中,團(tuán)塊高速緩存服務(wù)可首 先填滿(mǎn)或占據(jù)其可用存儲(chǔ)空間,然后在要存儲(chǔ)新團(tuán)塊時(shí),可使用諸如"最近最 少使用"(即LRU)算法等算法來(lái)找到并刪除最近未被使用的一個(gè)或多個(gè)團(tuán)塊, 并因此使得空間可用于新團(tuán)塊數(shù)據(jù)。至少在某些情況下,實(shí)現(xiàn)與團(tuán)塊高速緩存服務(wù)相關(guān)聯(lián)的功能可需要比實(shí)現(xiàn)與可能包括以下描述的云存儲(chǔ)服務(wù)135在內(nèi)的
持久存儲(chǔ)相關(guān)聯(lián)的功能更少的金錢(qián)、操作或其它資源。例如,由于與團(tuán)塊高速 緩存服務(wù)相關(guān)聯(lián)的信息可以不保證被可靠或無(wú)限地存儲(chǔ),因此團(tuán)塊高速緩存服 務(wù)可能無(wú)需被設(shè)計(jì)成保持至少某些其它非臨時(shí)數(shù)據(jù)的存儲(chǔ)可能所需要的同一 級(jí)別或類(lèi)型的冗余數(shù)據(jù)存儲(chǔ)功能。
可由示例性團(tuán)塊高速緩存服務(wù)130執(zhí)行的至少某些操作可以在下文中尤 其參考圖7來(lái)更詳細(xì)描述。
示例性云存儲(chǔ)服務(wù)135可以為一般非臨時(shí)的數(shù)據(jù)提供"云中"存儲(chǔ)。艮口, 盡管云存儲(chǔ)服務(wù)可以按類(lèi)似團(tuán)塊高速緩存服務(wù)的某些方式來(lái)操作(這例如表現(xiàn) 在它可存儲(chǔ)團(tuán)塊),但它可以被用戶(hù)和端點(diǎn)看作例如"始終開(kāi)啟"或"始終可 訪(fǎng)問(wèn)"并提供"可靠"存儲(chǔ)。端點(diǎn)可在各種情況下使用云存儲(chǔ)服務(wù)來(lái)存儲(chǔ)團(tuán)塊 數(shù)據(jù),包括在某些情況下代替將團(tuán)塊數(shù)據(jù)存儲(chǔ)在如設(shè)備端點(diǎn)上??捎墒纠栽?存儲(chǔ)服務(wù)執(zhí)行的至少某些操作可以在下文中尤其參考圖8來(lái)更詳細(xì)描述。
在某些實(shí)現(xiàn)中,提供對(duì)團(tuán)塊數(shù)據(jù)的存儲(chǔ)并且與團(tuán)塊高速緩存服務(wù)130或云
存儲(chǔ)服務(wù)135不同地操作的一個(gè)或多個(gè)附加服務(wù)或模塊可以是示例性服務(wù)器端
點(diǎn)110的一部分。例如,在一個(gè)實(shí)現(xiàn)中,這一不同的團(tuán)塊數(shù)據(jù)存儲(chǔ)服務(wù)可提供
比團(tuán)塊高速緩存服務(wù)所提供的相對(duì)更持久但比云存儲(chǔ)服務(wù)所提供的相對(duì)較不
持久(至少與以上介紹的這些示例性服務(wù)一樣持久)的存儲(chǔ)。這一服務(wù)可通過(guò) 使用例如其上可存儲(chǔ)團(tuán)塊或可從中獲得團(tuán)塊的其它端點(diǎn)的知識(shí)來(lái)確定何時(shí)存
儲(chǔ)團(tuán)塊來(lái)這樣做。例如,這一團(tuán)塊數(shù)據(jù)存儲(chǔ)服務(wù)在某些知識(shí)指示團(tuán)塊已經(jīng)存儲(chǔ) 在某些數(shù)量的已知相對(duì)高度可用的其它端點(diǎn)上的情況下可以不存儲(chǔ)團(tuán)塊。在一 個(gè)具體示例中,因此如果對(duì)團(tuán)塊數(shù)據(jù)存儲(chǔ)服務(wù)可訪(fǎng)問(wèn)的知識(shí)指示特定團(tuán)塊被存
儲(chǔ)在如通常在大部分或全部時(shí)間開(kāi)啟并連接到網(wǎng)絡(luò)的四個(gè)其它端點(diǎn)上,則示例 性團(tuán)塊數(shù)據(jù)存儲(chǔ)服務(wù)能夠不存儲(chǔ)該團(tuán)塊,因?yàn)檎?qǐng)求端點(diǎn)可能能夠從這四個(gè)其它 端點(diǎn)中的至少一個(gè)檢索該團(tuán)塊。還應(yīng)注意,在至少某些實(shí)現(xiàn)中,這些不同機(jī)制 不必在某種新類(lèi)型的團(tuán)塊數(shù)據(jù)存儲(chǔ)服務(wù)中實(shí)現(xiàn),相反,這些機(jī)制可以是團(tuán)塊高 速緩存服務(wù)或云存儲(chǔ)服務(wù)的一部分或包括在其中。
同步特定元數(shù)據(jù)的端點(diǎn)一般希望知道這一元數(shù)據(jù)何時(shí)在一個(gè)或多個(gè)其它 端點(diǎn)上更新,使得例如端點(diǎn)可以更新該元數(shù)據(jù)的其自己的副本以及可能檢索任何所需團(tuán)塊數(shù)據(jù)。在一個(gè)有時(shí)低效的實(shí)現(xiàn)中,端點(diǎn)可"輪詢(xún)"或周期性地檢査
一條或多條其它可用元數(shù)據(jù)(可能包括服務(wù)器端點(diǎn)iio提供的那些元數(shù)據(jù))并
在其它元數(shù)據(jù)變更時(shí)確定有要同步的變更。或者,端點(diǎn)可利用示例性通知服務(wù) 140所提供的功能。通知服務(wù)可為端點(diǎn)提供注冊(cè)或指示對(duì)特定元數(shù)據(jù)的興趣的 能力,然后可在特定元數(shù)據(jù)變更時(shí)向感興趣的或注冊(cè)的端點(diǎn)提供通知。結(jié)果, 端點(diǎn)能夠避免輪詢(xún)變更,或至少可較不頻繁地輪詢(xún),并且仍能夠在元數(shù)據(jù)變更 時(shí)釆取某一動(dòng)作。通知可用各種方式來(lái)實(shí)現(xiàn),包括通過(guò)使用各種聯(lián)網(wǎng)或其它通 信機(jī)制提供的點(diǎn)對(duì)點(diǎn)或廣播功能。在同一或其它實(shí)現(xiàn)中,示例性通知模塊還可 提供關(guān)于除對(duì)元數(shù)據(jù)的變更之外的其它事件的通知。例如,在某些實(shí)現(xiàn)中,通 知模塊可周期性地向端點(diǎn)提供包括關(guān)于經(jīng)更新或變更的定位符(這些定位符可 由示例性團(tuán)塊查找服務(wù)來(lái)管理)的信息的通知。在檢索團(tuán)塊時(shí)使用經(jīng)更新的定 位符可使得端點(diǎn)能夠改變其如何檢索團(tuán)塊,且因此可能更高效地檢索團(tuán)塊,適 合改變的網(wǎng)絡(luò)或其它條件,等等。
示例性知識(shí)存儲(chǔ)模塊145可以提供用于可通過(guò)服務(wù)器端點(diǎn)110所提供的交 互或功能來(lái)獲得的"知識(shí)"的存儲(chǔ)以及對(duì)該"知識(shí)"的訪(fǎng)問(wèn)。這一知識(shí)然后可 在某些情況下用于各種目的,包括控制或優(yōu)化數(shù)據(jù)同步。盡管本文中可在別處 描述可如何收集并使用知識(shí)的更多示例,但在某些情況下,知識(shí)一般可涉及諸 如與同服務(wù)器端點(diǎn)通信或同其它端點(diǎn)通信的端點(diǎn)相關(guān)聯(lián)的特性等數(shù)據(jù)。知識(shí)存 儲(chǔ)模塊所存儲(chǔ)或使用的特性一般可被稱(chēng)為"知識(shí)特性"。例如,某些示例性知 識(shí)特性可包括關(guān)于設(shè)備端點(diǎn)通常連接到服務(wù)器端點(diǎn)的方式的信息,如連接速 度、連接的可用帶寬、與連接相關(guān)聯(lián)的任何成本等等。例如,通信可以是通過(guò) 高速數(shù)據(jù)網(wǎng)絡(luò)或通過(guò)相對(duì)慢的移動(dòng)電話(huà)網(wǎng)絡(luò)的,連接可在一天的特定時(shí)間具有 空閑帶寬但在該天的其它時(shí)間被使用,等等。知識(shí)特性還可包括關(guān)于端點(diǎn)的其 它信息,包括關(guān)于端點(diǎn)通常何時(shí)在線(xiàn)或可用的信息一設(shè)備可以是膝上型設(shè)備或 移動(dòng)電話(huà)并且可能會(huì)間歇性地連接、可以是"始終"連接的"始終開(kāi)啟"臺(tái)式 計(jì)算機(jī)、等等。作為另一示例,知識(shí)模塊可存儲(chǔ)從端點(diǎn)與服務(wù)器端點(diǎn)的交互中 產(chǎn)生的信息,如以何頻率請(qǐng)求特定團(tuán)塊、從哪些端點(diǎn)請(qǐng)求團(tuán)塊、等等。不論是 如何或在何處獲得知識(shí)的,該知識(shí)然后都可由服務(wù)器端點(diǎn)或可能由其它端點(diǎn)以 各種方式,包括作為控制或優(yōu)化如何同步數(shù)據(jù)的一部分,來(lái)提供和使用。
17在又一示例中,諸如設(shè)備的連接特性或其它特性或其它知識(shí)等知識(shí)可用于 確定是否標(biāo)識(shí)或提供所請(qǐng)求的團(tuán)塊的一個(gè)或多個(gè)替換表示。例如,且如上所述, 替換表示可包括如圖像的較小的經(jīng)轉(zhuǎn)碼的版本,該圖像否則當(dāng)在被使用慢連接 機(jī)制連接的端點(diǎn)請(qǐng)求時(shí)或當(dāng)團(tuán)塊將被存儲(chǔ)在具有相對(duì)更有限的存儲(chǔ)空間的端 點(diǎn)上時(shí)將是大圖像。在同一或另一示例中,知識(shí)可包括特定端點(diǎn)是否具有特定 團(tuán)塊的特定替換表示,和/或特定端點(diǎn)是否具有生成或提供使用特定替換表示來(lái) 表示的團(tuán)塊(可能通過(guò)在特定端點(diǎn)上生成替換表示,通過(guò)從某一其它端點(diǎn)檢索 替換版本,等等)的能力。
最后,諸如作為服務(wù)器端點(diǎn)110的一部分的團(tuán)塊下載模塊150或作為設(shè)備
端點(diǎn)A 160的一部分的團(tuán)塊下載模塊162等示例性團(tuán)塊下載模塊在某些情況下 可從包括其它端點(diǎn)在內(nèi)的各種其它位置下載或檢索團(tuán)塊。 一般而言,團(tuán)塊下載 模塊可使用一個(gè)或多個(gè)團(tuán)塊檢索機(jī)制來(lái)檢索團(tuán)塊的某一部分或整個(gè)團(tuán)塊,其中 "團(tuán)塊檢索機(jī)制"可指定例如可定位團(tuán)塊的一種或多種方式和/或可檢索團(tuán)塊的 一種或多種方式。 一個(gè)可能相對(duì)簡(jiǎn)單的團(tuán)塊下載模塊可能僅能夠使用例如利用 諸如HTTP、 FTP或各種其它文件共享協(xié)議之一等協(xié)議的單個(gè)團(tuán)塊檢索機(jī)制來(lái) 檢索團(tuán)塊。另一團(tuán)塊下載模塊可能能夠使用這些團(tuán)塊檢索機(jī)制以及其它團(tuán)塊檢 索機(jī)制中的任一個(gè)來(lái)檢索文件。例如,某些團(tuán)塊下載模塊可能能夠使用可"同 時(shí)"從各種端點(diǎn)檢索同一團(tuán)塊的各片斷的機(jī)制,如又例如BitTorrent協(xié)議等協(xié) 議所描述的機(jī)制。同一或其它團(tuán)塊下載模塊還可使用其它功能來(lái)更高效地檢索 團(tuán)塊,諸如,例如"差異壓縮",其中僅團(tuán)塊的變更的部分被傳送,使得無(wú)需 每次在即使之后團(tuán)塊的一小部分變更時(shí)都傳送整個(gè)團(tuán)塊。某些團(tuán)塊下載模塊在 某些情況下可使用團(tuán)塊查找服務(wù)來(lái)定位團(tuán)塊,團(tuán)塊查找服務(wù)在某些實(shí)現(xiàn)中可以 與以上介紹的示例性團(tuán)塊査找服務(wù)125相同或相似,而在同一或其它實(shí)現(xiàn)中團(tuán) 塊下載模塊可以在不使用團(tuán) 塊查找功能或不使用團(tuán)塊查找服務(wù)的情況下定位 或檢索團(tuán)塊。
此外,在某些情況下,團(tuán)塊下載模塊可使用"可插入"體系結(jié)構(gòu)來(lái)組織團(tuán) 塊下載模塊所使用的團(tuán)塊檢索機(jī)制(或本上下文中的"驅(qū)動(dòng)程序")。例如, 一個(gè)團(tuán)塊檢索機(jī)制或驅(qū)動(dòng)程序可啟用從示例性團(tuán)塊高速緩存服務(wù)的團(tuán)塊檢索, 另一驅(qū)動(dòng)程序可使用團(tuán)塊査找服務(wù)來(lái)檢索能夠提供團(tuán)塊的一組端點(diǎn)然后從這些端點(diǎn)中的一個(gè)或多個(gè)檢索團(tuán)塊(包括在具有多于一個(gè)端點(diǎn)的某些情況下通過(guò)
使用像BitTorrent的機(jī)制),而又一驅(qū)動(dòng)程序可能不使用團(tuán)塊查找服務(wù),而可 能標(biāo)識(shí)可使用各種其它機(jī)制中的一種或多種來(lái)從中檢索到團(tuán)塊的一個(gè)或多個(gè) 端點(diǎn),等等??刹迦塍w系結(jié)構(gòu)還可使得能在各種時(shí)間添加附加團(tuán)塊檢索機(jī)制, 包括在部署或已經(jīng)使用了團(tuán)塊下載模塊之后,而不必改變團(tuán)塊下載模塊或包括 該團(tuán)塊下載模塊的端點(diǎn)的整體組織或?qū)崿F(xiàn)。這一功能可啟用對(duì)新團(tuán)塊檢索機(jī)制 的稍后添加而不改變核心團(tuán)塊下載模塊或端點(diǎn)本身。
應(yīng)當(dāng)注意,本示例中的每一端點(diǎn)可表示任意數(shù)量的通用或?qū)S糜?jì)算機(jī),包 括臺(tái)式計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、膝上型計(jì)算機(jī)、工作站計(jì)算機(jī)、移動(dòng)或蜂窩電 話(huà)、個(gè)人數(shù)字助理(PDA)等等。此外,盡管特定示例性端點(diǎn)可被描述為"設(shè) 備"或"服務(wù)器"端點(diǎn),但是這些命名不一定要限制端點(diǎn)的計(jì)算硬件或類(lèi)型的 本質(zhì)。服務(wù)器端點(diǎn)或設(shè)備端點(diǎn)在至少某些實(shí)現(xiàn)中可在任何類(lèi)型的計(jì)算硬件上實(shí) 現(xiàn),包括臺(tái)式計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、膝上型計(jì)算機(jī)、工作站計(jì)算機(jī)、移動(dòng)或 蜂窩電話(huà)、PDA等等。 一般而言,端點(diǎn)被認(rèn)為是設(shè)備端點(diǎn)還是服務(wù)器端點(diǎn)可以 特別地通過(guò)端點(diǎn)所提供的功能而非通過(guò)例如其上實(shí)現(xiàn)端點(diǎn)的計(jì)算硬件的本質(zhì) 來(lái)確定。例如,使用先前描述為與示例性服務(wù)器端點(diǎn)UO相關(guān)聯(lián)的服務(wù)和模塊 中的一個(gè)或多個(gè)來(lái)提供服務(wù)器功能的端點(diǎn)可被認(rèn)為是服務(wù)器端點(diǎn),即使該端點(diǎn) 是在如膝上型計(jì)算機(jī)上實(shí)現(xiàn)的。還應(yīng)注意,端點(diǎn)可在特定時(shí)間提供服務(wù)器功能 且因此可被認(rèn)為是服務(wù)器端點(diǎn),而在同一或其它時(shí)間作為設(shè)備端點(diǎn)或其它類(lèi)型 的端點(diǎn)來(lái)操作。并且,在某些實(shí)現(xiàn)中,特定或單個(gè)計(jì)算設(shè)備可主存或包括多個(gè) 端點(diǎn)。在這些或其它實(shí)現(xiàn)中,端點(diǎn)之間的信息通信在至少某些情況下可以?xún)H包 括在特定單個(gè)計(jì)算設(shè)備上運(yùn)行的可執(zhí)行代碼之間的通信。
端點(diǎn)且甚至端點(diǎn)內(nèi)的模塊和服務(wù)可使用各種聯(lián)網(wǎng)或其它連接手段來(lái)連接。 這些通信手段可包括可用于傳送數(shù)據(jù)的任何手段,包括任何類(lèi)型的網(wǎng)絡(luò),如以 太網(wǎng)、Wi-Fi或移動(dòng)電話(huà)或數(shù)據(jù)網(wǎng)絡(luò),并且在至少某些情況下包括任何其它種 類(lèi)的轉(zhuǎn)移,包括像緊致盤(pán)(CD)或閃存驅(qū)動(dòng)器等物理介質(zhì)的轉(zhuǎn)移。
現(xiàn)在轉(zhuǎn)向圖2,所示是一示例性概括操作流程200,其包括當(dāng)變更同步的 數(shù)據(jù)并使得這一變更對(duì)其它端點(diǎn)可用時(shí)由包括設(shè)備端點(diǎn)在內(nèi)的端點(diǎn)執(zhí)行的各 種操作。圖2的以下描述可參考其它附圖來(lái)進(jìn)行。然而,應(yīng)當(dāng)理解,參考圖2所描述的操作流程并不旨在限于用于參考其它附圖所描述的元素。另外,盡管 圖2的示例性操作流程指示了特定執(zhí)行次序,但在一個(gè)或多個(gè)替換實(shí)施例中操 作可被不同地排序。此外,盡管該示例性操作流程包含多個(gè)步驟,但應(yīng)認(rèn)識(shí)到 在某些實(shí)現(xiàn)中,這些操作中的至少某一些可被組合或同時(shí)執(zhí)行,并且在同一或 其它實(shí)現(xiàn)中,可以不執(zhí)行某些步驟。
在操作210的示例性實(shí)現(xiàn)中,對(duì)諸如可能設(shè)備端點(diǎn)A 160等先前參考圖1
介紹的端點(diǎn)上的本地?cái)?shù)據(jù)做出變更。例如,用戶(hù)可使用應(yīng)用程序來(lái)創(chuàng)建新數(shù)據(jù), 或修改或刪除現(xiàn)有數(shù)據(jù)。經(jīng)修改的數(shù)據(jù)可包括各種各樣類(lèi)型的數(shù)據(jù)中的一種或 多種,諸如,例如但非限制,聯(lián)系人、日歷項(xiàng)目、音頻剪輯、視頻剪輯、文字 處理或電子表格文件、其它文件等等。
這一變更然后可導(dǎo)致對(duì)在端點(diǎn)之間同步的元數(shù)據(jù)或團(tuán)塊數(shù)據(jù)的一個(gè)或多 個(gè)變更。例如,假定用戶(hù)使用如視頻編輯應(yīng)用程序來(lái)創(chuàng)建新視頻文件,并且該
新文件是與至少一個(gè)其它端點(diǎn)同步的數(shù)據(jù)的一部分。作為操作210的一部分, 或作為另一操作的一部分,由其上做出變更的端點(diǎn)所維護(hù)的元數(shù)據(jù)可被更新以 使該元數(shù)據(jù)包括與該新視頻文件相關(guān)聯(lián)的項(xiàng)目。這一新項(xiàng)目在至少某些實(shí)現(xiàn)中 可包括與項(xiàng)目同步相關(guān)的數(shù)據(jù)(如,可能是關(guān)于項(xiàng)目何時(shí)創(chuàng)建或稍后何時(shí)更新 的版本信息或數(shù)據(jù)),以及關(guān)于項(xiàng)目本身的信息,如,可能是視頻的名稱(chēng)、視 頻的文本描述、以及標(biāo)識(shí)實(shí)際視頻數(shù)據(jù)或內(nèi)容的引用(如果視頻數(shù)據(jù)或內(nèi)容未 被包括在元數(shù)據(jù)訂閱源本身中的話(huà))。當(dāng)修改現(xiàn)有項(xiàng)目時(shí),元數(shù)據(jù)以及可能的 團(tuán)塊數(shù)據(jù)可被類(lèi)似地更新。如果刪除現(xiàn)有項(xiàng)目,則可修改元數(shù)據(jù),以使例如該 項(xiàng)目被標(biāo)記為被刪除,并且任何相關(guān)聯(lián)的團(tuán)塊數(shù)據(jù)可被刪除(或在至少某些實(shí) 現(xiàn)中可保持可用)。
在操作215的示例性實(shí)現(xiàn)中,作為操作210的一部分更新的元數(shù)據(jù)可被傳 送到服務(wù)器端點(diǎn),如,可能是以至少某種方式像以上參考圖l所描述的示例性 服務(wù)器端點(diǎn)IIO那樣的服務(wù)器端點(diǎn)。這一通信可取決于例如如何表示元數(shù)據(jù), 以及對(duì)做出變更的端點(diǎn)可用或?qū)邮斩它c(diǎn)可用的聯(lián)網(wǎng)或其它通信功能而用各 種各樣的方式來(lái)實(shí)現(xiàn)。例如,在其中元數(shù)據(jù)被包含在XML文檔中的實(shí)現(xiàn)中, 元數(shù)據(jù)可使用可能是包含XML文檔并提交給在服務(wù)器端點(diǎn)上運(yùn)行或與其相關(guān) 聯(lián)的HTTP服務(wù)器的HTTP POST請(qǐng)求來(lái)傳送到服務(wù)器端點(diǎn)。在另一實(shí)現(xiàn)中,
20做出變更的端點(diǎn)可使得經(jīng)更新的元數(shù)據(jù)在特定位置,如網(wǎng)絡(luò)共享上或通過(guò)與端 點(diǎn)本身相關(guān)聯(lián)的HTTP服務(wù)器可用,并且服務(wù)器端點(diǎn)可以從該位置檢索元數(shù)據(jù)。 在至少某些實(shí)現(xiàn)中,與元數(shù)據(jù)變更相關(guān)聯(lián)的團(tuán)塊數(shù)據(jù)可以不被傳送到服務(wù) 器端點(diǎn)。相反,團(tuán)塊數(shù)據(jù)可以例如,但非限制,被保留在做出變更的端點(diǎn)上(至 少保留某一時(shí)間段)。例如,當(dāng)團(tuán)塊數(shù)據(jù)包括在端點(diǎn)上創(chuàng)建的視頻數(shù)據(jù)時(shí),該
視頻數(shù)據(jù)在完成了操作215的實(shí)現(xiàn)之后可僅駐留在該端點(diǎn)上。在某些情況下,
這一團(tuán)塊數(shù)據(jù)可由另一端點(diǎn)在某一稍后的時(shí)間點(diǎn)檢索或獲得。
在某些實(shí)現(xiàn)中,團(tuán)塊查找服務(wù)可作為操作215的實(shí)現(xiàn)的一部分來(lái)更新,使 得團(tuán)塊查找服務(wù)包括關(guān)于與元數(shù)據(jù)變更相關(guān)聯(lián)的團(tuán)塊數(shù)據(jù)的位置信息。另一端 點(diǎn)然后可使用團(tuán)塊査找服務(wù),作為從端點(diǎn)檢索團(tuán)塊數(shù)據(jù)的一部分。在同一或其 它實(shí)現(xiàn)中,團(tuán)塊查找服務(wù)可在另一端點(diǎn)合并或處理了傳送到另一端點(diǎn)的元數(shù)據(jù) 時(shí)更新。這一操作在某些示例中可至少由像以下參考圖5描述的操作525的操 作來(lái)實(shí)現(xiàn)。
最后,盡管在操作215的某些實(shí)現(xiàn)中經(jīng)更新的元數(shù)據(jù)可被傳送到服務(wù)器端 點(diǎn),但在同一或其它實(shí)現(xiàn)中,經(jīng)更新的元數(shù)據(jù)可改為或還可被傳送到一個(gè)或多 個(gè)其它端點(diǎn),包括其它服務(wù)器端點(diǎn)或其它設(shè)備端點(diǎn),如設(shè)備端點(diǎn)B170和/或設(shè) 備端點(diǎn)C180,這兩個(gè)端點(diǎn)都是先前參考圖l所描述的。例如,在其中元數(shù)據(jù) 包括或使用SSE信息,且因此元數(shù)據(jù)可在任意(且有時(shí)是非服務(wù)器)端點(diǎn)之間 傳送和同步的實(shí)現(xiàn)中,操作215的至少某些實(shí)現(xiàn)可以將經(jīng)更新的元數(shù)據(jù)傳送到 各種其它端點(diǎn)。
在操作220的示例性實(shí)現(xiàn)中,其上做出變更的端點(diǎn)可以訂閱或注冊(cè)對(duì)先前 傳送到服務(wù)器(或其它端點(diǎn))的元數(shù)據(jù)的將來(lái)更新的通知。在這一訂閱或注冊(cè) 之后,在至少某些情況下,端點(diǎn)可以在元數(shù)據(jù)在諸如服務(wù)器端點(diǎn)等先前向其傳 送了經(jīng)更新的元數(shù)據(jù)的某一其它端點(diǎn)上變更時(shí)接著接收通知(用各種方式來(lái)具 體化或?qū)崿F(xiàn))。如上所述,這可使得端點(diǎn)能夠知道對(duì)它所關(guān)注的數(shù)據(jù)的其它變 更而無(wú)需該端點(diǎn)主動(dòng)地輪詢(xún)或檢查對(duì)該數(shù)據(jù)的變更。
盡管在某些情況下訂閱或注冊(cè)可作為執(zhí)行操作220的一部分來(lái)進(jìn)行,但同 一 (或不同)訂閱或注冊(cè)可在另一時(shí)刻進(jìn)行,或完全不進(jìn)行。
在操作225的示例性實(shí)現(xiàn)中,端點(diǎn)可以通過(guò)例如向請(qǐng)求者提供團(tuán)塊來(lái)響應(yīng)于對(duì)與元數(shù)據(jù)變更相關(guān)聯(lián)的團(tuán)塊的請(qǐng)求。即,例如,在一個(gè)或多個(gè)其它端點(diǎn)接 收或處理了涉及團(tuán)塊或與團(tuán)塊相關(guān)聯(lián)的元數(shù)據(jù)變更之后的某一時(shí)間點(diǎn),這些其 它端點(diǎn)中的一個(gè)或多個(gè)(或另一端點(diǎn))可確定它們需要或期望該團(tuán)塊所包括的 數(shù)據(jù)。在某些實(shí)現(xiàn)中,包括其中團(tuán)塊數(shù)據(jù)未作為元數(shù)據(jù)的一部分來(lái)傳送的實(shí)現(xiàn) 中,這些其它端點(diǎn)然后可通過(guò)向團(tuán)塊存在于其上的另一端點(diǎn)請(qǐng)求團(tuán)塊來(lái)檢索團(tuán) 塊。請(qǐng)求團(tuán)塊的方式以及將團(tuán)塊提供給請(qǐng)求者的方式可以用各種各樣的方式來(lái) 實(shí)現(xiàn),包括以上參考例如團(tuán)塊査找服務(wù)和團(tuán)塊下載模塊所介紹的那些方式,以 及以下詳細(xì)描述的那些方式中的某一些。
現(xiàn)在轉(zhuǎn)向圖3,所示是一示例性概括操作流程300,其包括在同步來(lái)自另
一端點(diǎn)的數(shù)據(jù)時(shí)由包括設(shè)備端點(diǎn)在內(nèi)的端點(diǎn)執(zhí)行的各種操作。圖3的以下描述 可參考其它附圖來(lái)進(jìn)行。然而,應(yīng)當(dāng)理解,參考圖3所描述的操作流程并不旨 在限于用于參考其它附圖所描述的元素。另外,盡管圖3的示例性操作流程指 示了特定執(zhí)行次序,但在一個(gè)或多個(gè)替換實(shí)施例中操作可被不同地排序。此外, 盡管該示例性操作流程包含多個(gè)步驟,但應(yīng)認(rèn)識(shí)到在某些實(shí)現(xiàn)中,這些操作中 的至少某一些可被組合或同時(shí)執(zhí)行,并且在同一或其它實(shí)現(xiàn)中,可以不執(zhí)行某 些步驟。
在操作310的示例性實(shí)現(xiàn)中,端點(diǎn)可確定該端點(diǎn)有某種興趣的元數(shù)據(jù)己變 更。例如,端點(diǎn)可能先前已經(jīng)更新了同一元數(shù)據(jù)并可能以像先前參考圖2所描 述的方式注冊(cè)了將來(lái)變更的通知。在這一情況下,或在其它情況下,這一端點(diǎn) 可從某一其它端點(diǎn),包括從維護(hù)元數(shù)據(jù)的副本的服務(wù)器端點(diǎn)接收通知。在另一
實(shí)現(xiàn)中,端點(diǎn)可周期性地輪詢(xún)某一位置,并通過(guò)該輪詢(xún)動(dòng)作來(lái)確定該位置處的 元數(shù)據(jù)已變更。在又一些實(shí)現(xiàn)中,可以不執(zhí)行該操作一在這一實(shí)現(xiàn)中,端點(diǎn)可 例如周期性地執(zhí)行示例性操作流程300中的其它操作中的至少某一些,如獲得 元數(shù)據(jù)和合并元數(shù)據(jù),而不管元數(shù)據(jù)是否已變更。(與該操作流程相關(guān)聯(lián)的描 述在某些情況下可假定在所討論的元數(shù)據(jù)中存在變更,在實(shí)際不存在變更的情 況下,可不同地執(zhí)行各種操作或者可完全不執(zhí)行這些操作。)
在操作315的至少某些實(shí)現(xiàn)中,端點(diǎn)可獲取包括可以通過(guò)各種手段來(lái)包含 變更的元數(shù)據(jù)。例如,包括可能的像以上參考圖1所描述的設(shè)備端點(diǎn)A160那 樣的設(shè)備端點(diǎn)在內(nèi)的端點(diǎn)可向作為可能是以上也參考圖I所描述的服務(wù)器端點(diǎn)110等服務(wù)器端點(diǎn)的一部分或與其相關(guān)聯(lián)的web服務(wù)器發(fā)起HTTP GET請(qǐng)求, 并作為響應(yīng)接收包括一個(gè)或多個(gè)變更的元數(shù)據(jù)。在其它實(shí)現(xiàn)中,元數(shù)據(jù)可由另 一端點(diǎn)主動(dòng)傳送,或可用各種其它方式來(lái)獲得。在某些實(shí)現(xiàn)中,所獲得的元數(shù) 據(jù)可包括可由該特定一條元數(shù)據(jù)表示的所有項(xiàng)目,而在同一或其它實(shí)現(xiàn)中,在 至少某些情況下,元數(shù)據(jù)可以?xún)H包括項(xiàng)目的子集,包括例如僅變更的項(xiàng)目。
在操作320的示例性實(shí)現(xiàn)中,所獲得的元數(shù)據(jù)可以與本地維護(hù)的元數(shù)據(jù)的 副本合并。這一合并操作可將所獲得的元數(shù)據(jù)中包含的變更并入可由執(zhí)行操作 流程300的端點(diǎn)維護(hù)或修改的元數(shù)據(jù)的另一副本中。元數(shù)據(jù)的這一本地副本或 本地元數(shù)據(jù)存儲(chǔ)可用各種方式來(lái)維護(hù),包括(至少在某些實(shí)現(xiàn)中)作為數(shù)據(jù)庫(kù) 中的行或記錄、作為可能存在于文件系統(tǒng)中的一個(gè)或多個(gè)文件中的XML訂閱 源(或其它)文檔的副本、等等。
在其中元數(shù)據(jù)包括SSE信息的實(shí)現(xiàn)中,這一合并操作可使用SSE合并來(lái) 實(shí)現(xiàn)。在實(shí)現(xiàn)SSE合并的一種方式的簡(jiǎn)化描述中,可遵循由SSE指定的過(guò)程, 該過(guò)程將"外"項(xiàng)目(本示例中由所獲得的元數(shù)據(jù)來(lái)包含)與本地地或與合并 元數(shù)據(jù)的端點(diǎn)相關(guān)聯(lián)地維護(hù)的"本地"項(xiàng)目合并。不存在于本地元數(shù)據(jù)存儲(chǔ)中 的新的外項(xiàng)目一般可被并入本地元數(shù)據(jù)存儲(chǔ)中,由此創(chuàng)建新的本地項(xiàng)目。在外 項(xiàng)目對(duì)應(yīng)于本地項(xiàng)目(可能由于兩個(gè)項(xiàng)目都具有相同的SSE標(biāo)識(shí)符)的情況下, 合并過(guò)程可使用一種或多種手段來(lái)選擇"獲勝項(xiàng)目"和"失敗項(xiàng)目",如通過(guò) 將具有最新近被更新的項(xiàng)目選擇為獲勝項(xiàng)目。最后,當(dāng)本地項(xiàng)目不是獲勝項(xiàng)目
時(shí),可更新該本地項(xiàng)目以使其并入獲勝項(xiàng)目所包含的數(shù)據(jù)。
在操作325的至少某些實(shí)現(xiàn)中,可確定正在同步信息并且已經(jīng)獲得了元數(shù) 據(jù)的端點(diǎn)是否還需要或期望由元數(shù)據(jù)引用或標(biāo)識(shí)的一個(gè)或多個(gè)團(tuán)塊。例如,在 其中元數(shù)據(jù)不包括與該元數(shù)據(jù)相關(guān)聯(lián)的至少某些信息的實(shí)現(xiàn)中,而是可能例如 包括對(duì)存儲(chǔ)在別處的數(shù)據(jù)團(tuán)塊的一個(gè)或多個(gè)引用,則該操作可確定這些團(tuán)塊中 的一個(gè)或多個(gè)是期望的或需要的。在僅一個(gè)示例中,這可能是當(dāng)操作流程300 的至少部分目的是將元數(shù)據(jù)和相關(guān)聯(lián)的團(tuán)塊數(shù)據(jù)兩者同步到正在執(zhí)行操作流 程300的端點(diǎn)的情況。如果需要團(tuán)塊,則示例性操作流程可前進(jìn)到操作330。 如果不需要團(tuán)塊,則示例性操作流程可結(jié)束。
在操作330的示例性實(shí)現(xiàn)中,可檢索由所獲得的元數(shù)據(jù)標(biāo)識(shí)或引用的一個(gè)或多個(gè)團(tuán)塊。要檢索的一個(gè)或多個(gè)團(tuán)塊可用各種方式來(lái)標(biāo)識(shí)。例如,在某些情 況下,可檢索與變更的元數(shù)據(jù)項(xiàng)目相關(guān)聯(lián)的任何團(tuán)塊。在其它實(shí)現(xiàn)中,可以只 檢索變更的團(tuán)塊的一個(gè)子集,這可能只檢索特定大小的團(tuán)塊,或者可使用某一 其它準(zhǔn)則來(lái)過(guò)濾或確定要檢索的一個(gè)或多個(gè)團(tuán)塊。在某些實(shí)現(xiàn)中,單個(gè)元數(shù)據(jù) 項(xiàng)目可標(biāo)識(shí)單個(gè)團(tuán)塊,而在同一或其它實(shí)現(xiàn)中,單個(gè)元數(shù)據(jù)項(xiàng)目可標(biāo)識(shí)多個(gè)團(tuán) 塊。每一標(biāo)識(shí)的團(tuán)塊然后可用一種或多種不同方式來(lái)檢索。在某些實(shí)現(xiàn)中,可 檢索所標(biāo)識(shí)的團(tuán)塊的一個(gè)或多個(gè)替換表示,如特定文件(如圖像、視頻或音頻 文件)的經(jīng)轉(zhuǎn)碼的版本等等。最后,在某些實(shí)現(xiàn)中,團(tuán)塊可使用與以下參考圖 4描述的操作相同或相似的操作來(lái)檢索。在其它實(shí)現(xiàn)中,團(tuán)塊可以用一種或多 種不同的方式來(lái)檢索。
現(xiàn)在轉(zhuǎn)向圖4,所示是一示例性概括操作流程400,其包括可被執(zhí)行來(lái)檢 索或下載團(tuán)塊的各種操作。圖4的以下描述可參考其它附圖來(lái)進(jìn)行。然而,應(yīng) 當(dāng)理解,參考圖4所描述的操作流程并不旨在限于用于參考其它附圖所描述的 元素。另外,盡管圖4的示例性操作流程指示了特定執(zhí)行次序,但在一個(gè)或多 個(gè)替換實(shí)施例中操作可被不同地排序。此外,盡管該示例性操作流程包含多個(gè) 步驟,但應(yīng)認(rèn)識(shí)到在某些實(shí)現(xiàn)中,這些操作中的至少某一些可被組合或同時(shí)執(zhí) 行,并且在同一或其它實(shí)現(xiàn)中,可以不執(zhí)行某些步驟。
在操作410的示例性實(shí)現(xiàn)中,可以確定是否將使用團(tuán)塊查找服務(wù)(即BLS) 來(lái)作為檢索團(tuán)塊的一部分。例如,該確定可至少部分地由于在某些實(shí)現(xiàn)中端點(diǎn) 可能試圖首先在不使用(或不通過(guò)使用)團(tuán)塊査找服務(wù)的情況下檢索團(tuán)塊而做 出。在這一實(shí)現(xiàn)中,團(tuán)塊査找服務(wù)例如可以?xún)H在做出了不使用團(tuán)塊査找服務(wù)來(lái) 檢索團(tuán)塊的初始嘗試之后才使用。如果這一初始嘗試失敗,則可使用團(tuán)塊査找 服務(wù)。在另一實(shí)現(xiàn)中,團(tuán)塊查找服務(wù)可能不可用,或者該確定可用各種其它方 式來(lái)做出。如果使用團(tuán)塊査找服務(wù),則該操作流程400可前進(jìn)到操作415。如 果不使用團(tuán)塊查找服務(wù),則該操作流程可前進(jìn)到操作435。
如果使用團(tuán)塊查找服務(wù),則操作流程400可前進(jìn)到操作415,在那里,在 一個(gè)示例性實(shí)現(xiàn)中,端點(diǎn)可詢(xún)問(wèn)或査詢(xún)團(tuán)塊査找服務(wù)來(lái)尋找與所需團(tuán)塊相關(guān)聯(lián) 的一個(gè)或多個(gè)定位符。這一查詢(xún)可使用各種通信機(jī)制或手段來(lái)傳送到團(tuán)塊査找 服務(wù)。在某些實(shí)現(xiàn)中,也可在請(qǐng)求中包括附加信息。例如,在某些實(shí)現(xiàn)中,端20
點(diǎn)還可請(qǐng)求用一種或多種替換表示來(lái)提供特定團(tuán)塊。例如,移動(dòng)電話(huà)可請(qǐng)求占 據(jù)相對(duì)少量空間(以便容易地通過(guò)可能慢的網(wǎng)絡(luò)連接來(lái)傳輸、容易地存儲(chǔ)在具 有有限存儲(chǔ)空間的設(shè)備上、等等)的團(tuán)塊的表示。
響應(yīng)于這一請(qǐng)求,團(tuán)塊查找服務(wù)可提供一個(gè)或多個(gè)"定位符",其中定位 符一般可包括能夠提供該團(tuán)塊的至少一部分的端點(diǎn)的標(biāo)識(shí)。例如,在一個(gè)實(shí)現(xiàn) 中,團(tuán)塊査找服務(wù)可提供一個(gè)或多個(gè)定位符,這些定位符各自又包括標(biāo)識(shí)團(tuán)塊 查找服務(wù)確定能夠提供所請(qǐng)求的團(tuán)塊的至少一部分的一個(gè)或多個(gè)端點(diǎn)的域名 或IP地址。
在這些實(shí)現(xiàn)的至少某一些中(但不一定在所有實(shí)現(xiàn)中),以及在其它實(shí)現(xiàn) 中,由團(tuán)塊査找服務(wù)提供的一個(gè)或多個(gè)定位符還可包括其它信息。例如,在某 些情況下,定位符可包括可至少部分地用于確定應(yīng)聯(lián)系該定位符所標(biāo)識(shí)的端點(diǎn) 的方式或應(yīng)檢索團(tuán)塊的方式。例如,定位符可包括可使用的所支持的協(xié)議的某
種指示,如某種對(duì)等或分布式數(shù)據(jù)傳輸機(jī)制、HTTP、 FTP等等。在同一或其 它情況下, 一個(gè)或多個(gè)定位符可包括偏好或次序的某種指示,該指示可將特定 的一個(gè)或多個(gè)定位符標(biāo)識(shí)為偏愛(ài)的,這一偏愛(ài)的定位符可例如被首先且在使用 其它定位符之前使用。
在同一或其它實(shí)現(xiàn)中,僅特定團(tuán)塊的部分或局部可從特定端點(diǎn)獲得。例如, 特定團(tuán)塊的前50%可使用特定端點(diǎn)來(lái)訪(fǎng)問(wèn),而同一團(tuán)塊的后50%可使用另一端 點(diǎn)來(lái)訪(fǎng)問(wèn)。在這些實(shí)現(xiàn)中,在某些情況下,定位符可包括指示團(tuán)塊的什么部分 可由與該定位符相關(guān)聯(lián)的特定端點(diǎn)來(lái)提供的信息。
在同一或又一實(shí)現(xiàn)中,定位符可包括由同一類(lèi)型的知識(shí),如由先前參^"圖 1描述的示例性知識(shí)存儲(chǔ)模塊145變得可用的知識(shí)來(lái)導(dǎo)出或提供的信息。這一 知識(shí)例如可使得提供一個(gè)或多個(gè)定位符的團(tuán)塊查找服務(wù)能夠指示對(duì)于特定定 位符的使用的偏好(可能因?yàn)檫@些定位符標(biāo)識(shí)了具有更快連接、在物理上或邏 輯上更靠近請(qǐng)求定位符的端點(diǎn)等等),或可以使團(tuán)塊査找服務(wù)能夠用各種其它 方式來(lái)修改或改變其提供的定位符。
應(yīng)當(dāng)注意,盡管定位符可包含附加信息,包括如上所述地在同一情況或?qū)?現(xiàn)的某一些中,所提供的定位符可能不包括任何附加信息。在這種情況下,以 及在其它情況下,包括未示出的那些在內(nèi)的其它操作可確定如何通過(guò)其它手段來(lái)檢索團(tuán)塊,如通過(guò)與定位符中所標(biāo)識(shí)的端點(diǎn)的協(xié)商過(guò)程來(lái)確定要使用的通信 或傳輸協(xié)議,等等。
在操作420的至少某些實(shí)現(xiàn)中,可以確定所提供的定位符是否可用于檢索 團(tuán)塊。例如,可查詢(xún)定位符中所標(biāo)識(shí)的端點(diǎn)或者可發(fā)送檢索團(tuán)塊的請(qǐng)求,以發(fā) 起團(tuán)塊檢索、團(tuán)塊狀態(tài)或可用性的檢查等等。如果可以確定團(tuán)塊不能被檢索, 這可能是例如定位符標(biāo)識(shí)了離線(xiàn)的端點(diǎn),或者團(tuán)塊由于某種其它原因而不能被
檢索,則在至少某些實(shí)現(xiàn)中,操作流程400可前進(jìn)到操作430。如果可使用一 個(gè)或多個(gè)定位符來(lái)檢索團(tuán)塊,則該操作流程可前進(jìn)到操作425。
在操作425的示例性實(shí)現(xiàn)中,可使用定位符來(lái)檢索團(tuán)塊。該操作可以取決 于各種特性用各種各樣的方式來(lái)實(shí)現(xiàn),這些特性包括但不限于,定位符中所提 供的信息、所支持的或可用的通信或文件傳輸協(xié)議、等等。在某些實(shí)現(xiàn)中,檢 索團(tuán)塊可至少部分地通過(guò)使用團(tuán)塊下載模塊來(lái)實(shí)現(xiàn),該模塊可類(lèi)似于先前參考 圖1所描述的團(tuán)塊下載模塊150和團(tuán)塊下載模塊162或與其相同。
例如,在使用示例性團(tuán)塊下載模塊的實(shí)現(xiàn)中,端點(diǎn)可向團(tuán)塊下載模塊提供 定位符,且團(tuán)塊下載模塊然后可評(píng)估定位符中的信息并使用該信息來(lái)確定檢索 或下載所請(qǐng)求的團(tuán)塊的一種或多種方式。在一個(gè)相對(duì)簡(jiǎn)單的情況下,端點(diǎn)或團(tuán) 塊下載模塊可僅使用單個(gè)定位符來(lái)定位具有該團(tuán)塊的另一端點(diǎn),向所標(biāo)識(shí)的其 它端點(diǎn)發(fā)送某種類(lèi)型的網(wǎng)絡(luò)通信(如可能的HTTP GET或文件系統(tǒng)文件檢索請(qǐng) 求),并作為響應(yīng)接收所請(qǐng)求的團(tuán)塊。在這一實(shí)現(xiàn)中,以及在其它實(shí)現(xiàn)中,如 果這一請(qǐng)求不成功或出于某種原因(例如可能是連接較慢)而被確定為較不優(yōu) 選,則還可以或可以改為使用一個(gè)或多個(gè)其它定位符。
在另一實(shí)現(xiàn)中,端點(diǎn)或團(tuán)塊下載服務(wù)可使用多個(gè)定位符來(lái)發(fā)起對(duì)不同端點(diǎn) 的多個(gè)請(qǐng)求,包括可能對(duì)單個(gè)團(tuán)塊的不伺(或相同)部分的單獨(dú)的請(qǐng)求。在某 些情況下,從多個(gè)端點(diǎn)獲得同一團(tuán)塊的不同部分可使得團(tuán)塊的檢索能更快地完 成,或者可以在對(duì)任何特定單個(gè)端點(diǎn)有較少影響的情況下完成,或者可具有其 它優(yōu)點(diǎn)。
在至少某些團(tuán)塊檢索實(shí)現(xiàn)或操作中,可使用一種或多種技術(shù)來(lái)最小化要傳 輸?shù)臄?shù)據(jù)量或以其它方式進(jìn)一步優(yōu)化團(tuán)塊檢索。例如,某些實(shí)現(xiàn)可使用諸如 ZIP或其它壓縮技術(shù)等數(shù)據(jù)壓縮來(lái)檢索較少數(shù)據(jù)。在同一或其它實(shí)現(xiàn)中,僅團(tuán)
26塊中從該團(tuán)塊的可能存在于請(qǐng)求端點(diǎn)上的副本變更的那些部分可從一個(gè)或多 個(gè)其它端點(diǎn)請(qǐng)求或傳送。這一 "差異壓縮"可使得即使在其中存在變更的數(shù)據(jù) 的團(tuán)塊相對(duì)較大時(shí)也能夠僅傳送少量數(shù)據(jù)。
在某些實(shí)現(xiàn)中,端點(diǎn)可以向另一服務(wù)或端點(diǎn)通知團(tuán)塊檢索或下載的狀態(tài)。 例如,端點(diǎn)可通知團(tuán)塊查找服務(wù)其己經(jīng)檢索了特定團(tuán)塊的部分或全部。使用這 一信息,團(tuán)塊查找服務(wù)能夠提供標(biāo)識(shí)該端點(diǎn)的定位符來(lái)作為服務(wù)對(duì)同一團(tuán)塊的 某一其它請(qǐng)求的一部分。在某些情況下,提供該信息的端點(diǎn)可以只在團(tuán)塊被完 整檢索時(shí)才這樣做,而在其它情況或?qū)崿F(xiàn)中,端點(diǎn)可在檢索團(tuán)塊時(shí)周期性地提 供信息,以使例如團(tuán)塊查找服務(wù)在檢索了該團(tuán)塊的25%時(shí)、在檢索了該團(tuán)塊的 50%時(shí)等更新。在同一或其它實(shí)現(xiàn)中,傳送到另一端點(diǎn)的信息可包括檢索了團(tuán)
塊的哪些部分的標(biāo)識(shí),如檢索了團(tuán)塊的前50%、檢索了團(tuán)塊的前10%和后10%,
等等,并且這一標(biāo)識(shí)進(jìn)而可用于使得其它端點(diǎn)能從不同端點(diǎn)檢索同一團(tuán)塊的各 部分。
如果團(tuán)塊的檢索在操作425的執(zhí)行期間失敗,則在某些情況下該操作流程 可以結(jié)束。在其它實(shí)現(xiàn)中,可以用與先前描述的操作420的失敗相似或相同的 方式來(lái)解釋檢索失敗。在這一實(shí)現(xiàn)中,如果團(tuán)塊檢索在操作425期間失敗,則 該操作流程可前進(jìn)到操作430 (如圖4中使用虛線(xiàn)所示的路徑)。
如果出于各種原因中的一種或多種團(tuán)塊不能被檢索,則操作流程400在某 些情況下可前進(jìn)到操作430。用于執(zhí)行操作430的此類(lèi)原因可包括上述那些原 因,如當(dāng)團(tuán)塊査找服務(wù)所標(biāo)識(shí)的端點(diǎn)不能提供該團(tuán)塊時(shí),這可能是因?yàn)檫@些端 點(diǎn)不在線(xiàn)或不可用。在操作430的示例性實(shí)現(xiàn)中,端點(diǎn)可以請(qǐng)求團(tuán)塊高速緩存 服務(wù)檢索并高速緩存所請(qǐng)求的團(tuán)塊的副本。在某些實(shí)現(xiàn)中,這一團(tuán)塊高速緩存 服務(wù)可以被至少某些端點(diǎn)更可靠地訪(fǎng)問(wèn),并且因此可用作用于團(tuán)塊的有用中間 或臨時(shí)位置,希望檢索該團(tuán)塊的端點(diǎn)可使用該位置來(lái)代替某一其它(可能不可 用的)端點(diǎn)。
在某些此類(lèi)實(shí)現(xiàn)中,團(tuán)塊高速緩存服務(wù)可以接受該請(qǐng)求并在可能時(shí)檢索該 團(tuán)塊本身。例如,團(tuán)塊高速緩存服務(wù)可以等待,直到最初標(biāo)識(shí)的端點(diǎn)可用,然 后可從該原始端點(diǎn)檢索該團(tuán)塊(或者可指示該端點(diǎn)上傳該團(tuán)塊)。可由團(tuán)塊高 速緩存服務(wù)執(zhí)行的某些示例性團(tuán)塊高速緩存服務(wù)實(shí)現(xiàn)和操作在本文的別處尤其參考圖1和圖7來(lái)描述。
在某些實(shí)現(xiàn)中,請(qǐng)求由團(tuán)塊高速緩存服務(wù)存儲(chǔ)團(tuán)塊的端點(diǎn)稍后可再次執(zhí)行
操作415,并向團(tuán)塊查找服務(wù)查詢(xún)可用于檢索該團(tuán)塊的定位符。例如,端點(diǎn)可
接收?qǐng)F(tuán)塊高速緩存服務(wù)可提供所需關(guān)塊的通知(可能從像先前參考圖1描述的
通知服務(wù)140那樣的一方)。如果團(tuán)塊高速緩存服務(wù)存儲(chǔ)了該團(tuán)塊,則它可能 己經(jīng)告知了團(tuán)塊查找服務(wù)其具有該團(tuán)塊,并且因此團(tuán)塊查找服務(wù)可以向請(qǐng)求端 點(diǎn)提供將該團(tuán)塊標(biāo)識(shí)為可使用團(tuán)塊高速緩存服務(wù)來(lái)獲得的定位符。最終,原始 端點(diǎn)可從團(tuán)塊高速緩存服務(wù)檢索該團(tuán)塊。
在其它實(shí)現(xiàn)中,使用包括其它更可靠或可用端點(diǎn),如可能的像先前參考圖 1所描述的云存儲(chǔ)服務(wù)在內(nèi)的其它端點(diǎn),來(lái)代替團(tuán)塊高速緩存服務(wù),作為端點(diǎn) 可從中檢索團(tuán)塊的位置。
如果例如作為操作410的一部分確定不使用團(tuán)塊查找服務(wù),則操作流程 400可前進(jìn)到操作435,在那里可使用可能不利用團(tuán)塊査找服務(wù)的各種其它機(jī) 制來(lái)檢索團(tuán)塊。例如,在某些實(shí)現(xiàn)中, 一個(gè)或多個(gè)端點(diǎn)可試圖使用可能不與團(tuán) 塊查找服務(wù)相關(guān)聯(lián)或不為其所知的某一存儲(chǔ)來(lái)檢索團(tuán)塊。在這一情況下,或在 其它情況下,團(tuán)塊可使用包括先前所描述的那些在內(nèi)的各種機(jī)制中的任一種來(lái) 檢索,如HTTP、 FTP、對(duì)等"BitTorrent"類(lèi)型的通信、或其它機(jī)制。另外, 在別處變得可用的功能,如由團(tuán)塊高速緩存服務(wù)或其它服務(wù)功能提供的功能, 也可在不使用團(tuán)塊查找服務(wù)的至少某些實(shí)現(xiàn)中使用。
應(yīng)當(dāng)注意,在某些實(shí)現(xiàn)中,可使用其它用于檢索團(tuán)塊的方法來(lái)代替或補(bǔ)充 先前參考圖4所描述的示例性操作流程。這些其它方法中的至少某一些還可執(zhí) 行參考圖4所描述的示例性操作中的一個(gè)或多個(gè),或可使用一個(gè)或多個(gè)其它模 塊或服務(wù),包括例如參考圖1所描述的模塊和服務(wù)。這些其它方法中的至少某 一些還可執(zhí)行其它指令或使用其它模塊和服務(wù)。僅作為一個(gè)示例,端點(diǎn)可請(qǐng)求 團(tuán)塊下載模塊(可能像先前參考圖1所描述的團(tuán)塊下載模塊150或團(tuán)塊下載模 塊162)獲得特定團(tuán)塊。在某些實(shí)現(xiàn)中,團(tuán)塊下載模塊可能具有一個(gè)或多個(gè)可 插入"驅(qū)動(dòng)程序",其每一個(gè)都可能用不同的方式來(lái)定位和/或獲得所請(qǐng)求的團(tuán) 塊。例如, 一個(gè)驅(qū)動(dòng)程序可使用團(tuán)塊查找服務(wù)來(lái)獲得一組定位符,然后使用單 個(gè)定位符來(lái)檢索該團(tuán)塊;另一驅(qū)動(dòng)程序也可使用團(tuán)塊查找服務(wù)并可能并行地或以BitTorrent或其它相似類(lèi)型的機(jī)制使用多個(gè)定位符來(lái)檢索團(tuán)塊;又一驅(qū)動(dòng)程 序可以不使用團(tuán)塊查找服務(wù)并且可用各種其它方式來(lái)定位并檢索團(tuán)塊;等等。 在至少某些此類(lèi)實(shí)現(xiàn)中,團(tuán)塊下載模塊可以用各種方式來(lái)確定要使用的驅(qū)動(dòng)程 序。例如,團(tuán)塊下載模塊可向每一驅(qū)動(dòng)程序查詢(xún)對(duì)該驅(qū)動(dòng)程序可能花費(fèi)多久來(lái) 檢索團(tuán)塊的估計(jì),并且每一驅(qū)動(dòng)程序然后可返回所估計(jì)的時(shí)間或可能指示該驅(qū) 動(dòng)程序不能檢索團(tuán)塊的某一值。使用這一返回的數(shù)據(jù),團(tuán)塊下載模塊可選取一 個(gè)(或多個(gè))驅(qū)動(dòng)程序,并指示所選驅(qū)動(dòng)程序?qū)嶋H檢索該團(tuán)塊。
現(xiàn)在轉(zhuǎn)向圖5,所示是一示例性概括操作流程500,其包括可在維護(hù)和提 供元數(shù)據(jù)時(shí)執(zhí)行的各種操作。圖5的以下描述可參考其它附圖來(lái)進(jìn)行。然而, 應(yīng)當(dāng)理解,參考圖5所描述的操作流程并不旨在限于用于參考其它附圖所描述 的元素。另外,盡管圖5的示例性操作流程指示了特定執(zhí)行次序,但在一個(gè)或 多個(gè)替換實(shí)施例中操作可被不同地排序。此外,盡管該示例性操作流程包含多 個(gè)步驟,但應(yīng)認(rèn)識(shí)到在某些實(shí)現(xiàn)中,這些操作中的至少某一些可被組合或同時(shí) 執(zhí)行,并且在同一或其它實(shí)現(xiàn)中,可以不執(zhí)行某些步驟。
在操作510的示例性實(shí)現(xiàn)中,諸如先前參考圖1描述的服務(wù)器端點(diǎn)110 等端點(diǎn)可從另一端點(diǎn)獲得元數(shù)據(jù)。例如,在某些實(shí)現(xiàn)中,獲得元數(shù)據(jù)的端點(diǎn)可 以是接收具有其它端點(diǎn)所傳送的變更的元數(shù)據(jù)的服務(wù)器端點(diǎn),如先前例如參考 圖2的操作215所描述的。此外,在某些實(shí)現(xiàn)中,此處參考操作流程400所描 述的操作中的至少某一些可以由先前也參考圖1所描述的示例性存儲(chǔ)服務(wù)120 來(lái)實(shí)現(xiàn)。(盡管該描述中的某一些將在操作流程400中接收元數(shù)據(jù)的端點(diǎn)稱(chēng)為 "服務(wù)器端點(diǎn)",但是應(yīng)當(dāng)理解,接收元數(shù)據(jù)的端點(diǎn)不必是服務(wù)器端點(diǎn),也不 必使別處描述的至少某些或全部功能可能與服務(wù)器端點(diǎn)相關(guān)聯(lián),等等)。
元數(shù)據(jù)可以使用適用于傳送元數(shù)據(jù)的各種通信機(jī)制中的任一種來(lái)獲得。例 如,在某些實(shí)現(xiàn)中,與接收或獲得端點(diǎn)相關(guān)聯(lián)的HTTP服務(wù)器可以接受包含某 一URL處的元數(shù)據(jù)的HTTP POST請(qǐng)求。在同一或其它實(shí)現(xiàn)中,另一端點(diǎn)可使 用如FTP或一種或多種文件共享協(xié)議、電子郵件等另一協(xié)議來(lái)傳送元數(shù)據(jù)。在 某些實(shí)現(xiàn)中,接收端點(diǎn)可主動(dòng)檢索元數(shù)據(jù),而非依賴(lài)于另一端點(diǎn)提交元數(shù)據(jù)。 例如,獲得端點(diǎn)可向某一其它端點(diǎn)發(fā)起HTTP GET請(qǐng)求,并作為響應(yīng)被提供以 元數(shù)據(jù)。在操作515的至少某些實(shí)現(xiàn)中,所獲得的元數(shù)據(jù)可以與服務(wù)器端點(diǎn)維護(hù)的 元數(shù)據(jù)的副本合并。這一合并操作可導(dǎo)致在所獲得的元數(shù)據(jù)中包含的變更并入
可由執(zhí)行操作流程500的端點(diǎn)維護(hù)并修改的元數(shù)據(jù)的另一副本中。元數(shù)據(jù)的這
一本地副本可以用各種方式來(lái)維護(hù),包括(在至少某些實(shí)現(xiàn)中)作為數(shù)據(jù)庫(kù)中
的行或記錄、作為XML訂閱源(或其它)文檔的副本等等。在使用包括SSE 信息的元數(shù)據(jù)的實(shí)現(xiàn)中,所獲得的元數(shù)據(jù)可以使用SSE合并技術(shù)來(lái)與本地元數(shù) 據(jù)合并。在某些實(shí)現(xiàn)中,這一 SSE合并技術(shù)可以與先前尤其參考圖3的操作 320描述的SSE合并技術(shù)相同或相似。
在操作520的示例性實(shí)現(xiàn)中,先前注冊(cè)或訂閱了在所討論的元數(shù)據(jù)變更時(shí) 得到通知的一個(gè)或多個(gè)端點(diǎn)可使用一個(gè)或多個(gè)通知手段來(lái)得到通知。(在接收 到這一通知之后,在某些實(shí)現(xiàn)中,端點(diǎn)可發(fā)起操作的執(zhí)行以從服務(wù)器端點(diǎn)獲得 新更新的元數(shù)據(jù)并將新更新的元數(shù)據(jù)中的變更與該端點(diǎn)自己的本地元數(shù)據(jù)存 儲(chǔ)合并。這些操作可包括可能先前參考圖3描述的那些操作中的至少某一些。) 在至少某些其它實(shí)現(xiàn)中,包括不提供通知的那些實(shí)現(xiàn),可以不通知訂閱者。
在操作525的某些實(shí)現(xiàn)中,團(tuán)塊查找服務(wù)可以用關(guān)于所獲得的元數(shù)據(jù)所標(biāo) 識(shí)的一個(gè)或多個(gè)團(tuán)塊的位置信息來(lái)更新,使得獲得或使用該元數(shù)據(jù)的端點(diǎn)能夠 檢索由該元數(shù)據(jù)引用或與其相關(guān)聯(lián)的團(tuán)塊。即,例如,假定所獲得的元數(shù)據(jù)包 括引用一新團(tuán)塊的新項(xiàng)目。情況可以是當(dāng)執(zhí)行操作流程500時(shí),所引用的團(tuán)塊 僅存在于生成并向服務(wù)器端點(diǎn)傳送了經(jīng)更新的元數(shù)據(jù)的端點(diǎn)上。為使包括服務(wù) 器端點(diǎn)或其它設(shè)備端點(diǎn)在內(nèi)的任何端點(diǎn)能夠檢索該團(tuán)塊,該團(tuán)塊的(初始)位 置可由包括向本文別處所描述的團(tuán)塊査找服務(wù)那樣的團(tuán)塊查找服務(wù)在內(nèi)的團(tuán) 塊查找服務(wù)來(lái)存儲(chǔ)。
最后,在操作530的示例性實(shí)現(xiàn)中,作為合并操作515的一部分創(chuàng)建的經(jīng) 更新的元數(shù)據(jù)可被傳送到一個(gè)或多個(gè)端點(diǎn)。例如,同步該元數(shù)據(jù)所表示的數(shù)據(jù) 的另一端點(diǎn)可向服務(wù)器端點(diǎn)提交對(duì)經(jīng)更新的元數(shù)據(jù)的請(qǐng)求。這一請(qǐng)求可在該另 一端點(diǎn)接收到元數(shù)據(jù)已變更的通知之后、在該另一端點(diǎn)輪詢(xún)服務(wù)器端點(diǎn)并發(fā)現(xiàn) 元數(shù)據(jù)已變更時(shí)等提交。服務(wù)器端點(diǎn)可以用各種方式來(lái)向該另一端點(diǎn)提供元數(shù) 據(jù),包括先前以及在本文別處描述的那些方式,如通過(guò)使用HTTP GET或POST 請(qǐng)求和響應(yīng)、文件共享協(xié)議、FTP、電子郵件、 一個(gè)或多個(gè)其它某種通信機(jī)制現(xiàn)在轉(zhuǎn)向圖6,所示是一示例性概括操作流程600,其包括可在存儲(chǔ)和提 供與元數(shù)據(jù)所引用的團(tuán)塊相關(guān)聯(lián)的位置和定位符時(shí)執(zhí)行的各種操作。圖6的以
下描述可參考其它附圖來(lái)進(jìn)行。然而,應(yīng)當(dāng)理解,參考圖6所描述的操作流程 并不旨在限于用于參考其它附圖所描述的元素。另外,盡管圖6的示例性操作
流程指示了特定執(zhí)行次序,但在一個(gè)或多個(gè)替換實(shí)施例中操作可被不同地排 序。此外,盡管該示例性操作流程包含多個(gè)步驟,但應(yīng)認(rèn)識(shí)到在某些實(shí)現(xiàn)中, 這些操作中的至少某一些可被組合或同時(shí)執(zhí)行,并且在同一或其它實(shí)現(xiàn)中,可 以不執(zhí)行某些步驟。
在操作610的示例性實(shí)現(xiàn)中,端點(diǎn)可接受與特定團(tuán)塊相關(guān)聯(lián)的一個(gè)或多個(gè) 位置。 一般而言,這些位置可指定可在其中檢索特定團(tuán)塊的至少一部分的端點(diǎn)。 在至少某些實(shí)現(xiàn)中, 一個(gè)或多個(gè)團(tuán)塊可使用一個(gè)或多個(gè)團(tuán)塊標(biāo)識(shí)符來(lái)標(biāo)識(shí)。接 受一個(gè)或多個(gè)位置的端點(diǎn)可包括至少某些服務(wù)器端點(diǎn),如先前參考圖1描述的 示例性服務(wù)器端點(diǎn)110。此外,與操作流程600相關(guān)聯(lián)的至少某些操作在至少 某些實(shí)現(xiàn)中可以由諸如也先前參考圖1描述的示例性團(tuán)塊查找服務(wù)125等團(tuán)塊 查找服務(wù)來(lái)實(shí)現(xiàn)。盡管操作流程600的某些操作此處可被描述為與示例性服務(wù) 器端點(diǎn)或示例性團(tuán)塊查找服務(wù)相關(guān)聯(lián),但應(yīng)理解,這些操作不必由服務(wù)器端點(diǎn) 或團(tuán)塊査找服務(wù)來(lái)實(shí)現(xiàn)或執(zhí)行,并且可改為由各種端點(diǎn)中的一個(gè)或多個(gè)或由這 些端點(diǎn)中包括的模塊或服務(wù)來(lái)實(shí)現(xiàn)或執(zhí)行。
一個(gè)或多個(gè)團(tuán)塊位置可以從各種其它端點(diǎn)和過(guò)程接受或檢索。例如,當(dāng)服 務(wù)器端點(diǎn)或存儲(chǔ)服務(wù)處理來(lái)自另一端點(diǎn)的元數(shù)據(jù)時(shí),它可以向該操作提供與它 接收到的元數(shù)據(jù)所標(biāo)識(shí)的一個(gè)或多個(gè)團(tuán)塊相關(guān)聯(lián)的一個(gè)或多個(gè)位置(這一動(dòng)作 可以與例如先前參考圖5描述的操作525相關(guān)聯(lián))。在另一示例中,當(dāng)一端點(diǎn) 從一個(gè)或多個(gè)其它端點(diǎn)獲得一團(tuán)塊的部分或全部時(shí),這可能是作為同步元數(shù)據(jù) 和與該元數(shù)據(jù)相關(guān)聯(lián)的團(tuán)塊的一部分,包括通過(guò)使用先前參考圖4所描述的操 作,則該端點(diǎn)還可用其自己的位置來(lái)更新團(tuán)塊査找服務(wù),以使得其它端點(diǎn)能夠 從現(xiàn)在也獲得了該團(tuán)塊的端點(diǎn)檢索該團(tuán)塊的部分或全部(除了從例如最初創(chuàng)建 該團(tuán)塊的端點(diǎn)接收之外)。
除了現(xiàn)在已經(jīng)具有了該團(tuán)塊的至少一部分的端點(diǎn)的位置之外,更新團(tuán)塊查找服務(wù)的端點(diǎn)還可向團(tuán)塊査找服務(wù)提供其它信息。此類(lèi)其它信息可包括例如在 特定端點(diǎn)處可用的團(tuán)塊的一部分(或各部分)的標(biāo)識(shí)(或整個(gè)團(tuán)塊可用的指示)、 特定端點(diǎn)能夠提供該團(tuán)塊的一個(gè)或多個(gè)替換表示的指示、等等。
在操作615的至少某些實(shí)現(xiàn)中,所接受的位置(以及可能其它所接受的數(shù) 據(jù))可由團(tuán)塊査找服務(wù)使用各種手段或機(jī)制中的一個(gè)或多個(gè),包括作為數(shù)據(jù)庫(kù) 中的行或記錄等來(lái)存儲(chǔ)。
在操作620的示例性實(shí)現(xiàn)中,團(tuán)塊查找服務(wù)可以接收對(duì)與一個(gè)或多個(gè)團(tuán)塊 相關(guān)聯(lián)的定位符的請(qǐng)求。這些請(qǐng)求可從各種端點(diǎn)、模塊或服務(wù)發(fā)送或傳送。例 如,設(shè)備端點(diǎn)可提交對(duì)特定團(tuán)塊的定位符的請(qǐng)求,使得設(shè)備端點(diǎn)能夠同步由特 定元數(shù)據(jù)所標(biāo)識(shí)的團(tuán)塊。(設(shè)備端點(diǎn)然后可使用任何返回的定位符來(lái)實(shí)際檢索 該團(tuán)塊。)在另一示例中,團(tuán)塊高速緩存服務(wù)或云存儲(chǔ)服務(wù)可請(qǐng)求定位符,以 使團(tuán)塊高速緩存服務(wù)或云存儲(chǔ)服務(wù)能夠檢索一個(gè)或多個(gè)團(tuán)塊。
在操作625的某些實(shí)現(xiàn)中,團(tuán)塊查找服務(wù)可標(biāo)識(shí)與特定的所請(qǐng)求的團(tuán)塊相 關(guān)聯(lián)的一個(gè)或多個(gè)定位符。在某些實(shí)現(xiàn)中,該操作可至少部分地通過(guò)查找特定 團(tuán)塊(可能使用與該團(tuán)塊相關(guān)聯(lián)的團(tuán)塊標(biāo)識(shí)符),并標(biāo)識(shí)被注冊(cè)為能夠提供所 請(qǐng)求的團(tuán)塊的每一端點(diǎn)的定位符來(lái)執(zhí)行。例如,如果三個(gè)端點(diǎn)先前已注冊(cè)為具 有所請(qǐng)求的團(tuán)塊,則該操作可標(biāo)識(shí)三個(gè)定位符,對(duì)三個(gè)端點(diǎn)中的每一個(gè)有一個(gè) 定位符。
在某些實(shí)現(xiàn)中,所標(biāo)識(shí)的定位符還可包括除僅僅用于標(biāo)識(shí)與團(tuán)塊相關(guān)聯(lián)的 端點(diǎn)的手段之外的附加信息。例如,某些定位符可包括關(guān)于該團(tuán)塊的哪一 (些) 部分可從特定端點(diǎn)檢索的信息,同一或其它定位符可包括關(guān)于可用于特定端點(diǎn) 檢索團(tuán)塊的一個(gè)或多個(gè)通信協(xié)議的信息,等等。
盡管在某些實(shí)現(xiàn)中團(tuán)塊查找服務(wù)可以?xún)H例如標(biāo)識(shí)可提供特定團(tuán)塊的每一 端點(diǎn)的定位符,但在其它實(shí)現(xiàn)中,標(biāo)識(shí)定位符的過(guò)程可例如使用附加信息或知 識(shí)。例如,團(tuán)塊查找服務(wù)可使用關(guān)于元數(shù)據(jù)、關(guān)于服務(wù)器端點(diǎn)和設(shè)備端點(diǎn)等的 各種知識(shí),來(lái)過(guò)濾、優(yōu)先化或以其它方式標(biāo)識(shí)(可能是最合適的)定位符。在 某些實(shí)現(xiàn)中,這一知識(shí)可至少部分地由諸如先前參考圖l所描述的示例性知識(shí) 存儲(chǔ)模塊145等知識(shí)存儲(chǔ)來(lái)提供。
例如,假定多個(gè)端點(diǎn)先前注冊(cè)為能夠提供特定團(tuán)塊的各部分。還假定知識(shí)存儲(chǔ)提供端點(diǎn)之一由通常使用高速和高帶寬網(wǎng)絡(luò)連接來(lái)連接到網(wǎng)絡(luò)的工作站 類(lèi)臺(tái)式計(jì)算機(jī)來(lái)實(shí)現(xiàn);提供端點(diǎn)中的另一個(gè)是使用具有不同連接特性的各種網(wǎng)
絡(luò)來(lái)連接的膝上型計(jì)算機(jī);以及第三提供端點(diǎn)是通常打開(kāi)并連接到網(wǎng)絡(luò)但使用 其中數(shù)據(jù)傳輸與每單位金錢(qián)收費(fèi)相關(guān)聯(lián)的相對(duì)慢的連接的移動(dòng)電話(huà)的知識(shí)。在 這一示例中,操作625的至少某些實(shí)現(xiàn)可使用該知識(shí)以及可能的其它知識(shí)來(lái)過(guò) 濾或優(yōu)先化所標(biāo)識(shí)的一個(gè)或多個(gè)定位符。例如,在一個(gè)實(shí)現(xiàn)中,可標(biāo)識(shí)所有三 個(gè)端點(diǎn)的定位符,但是它們可包括指示應(yīng)首先使用臺(tái)式計(jì)算機(jī)、應(yīng)接著使用膝 上型計(jì)算機(jī)、以及移動(dòng)電話(huà)應(yīng)僅被用作最后手段的優(yōu)先級(jí)信息,或可以用此優(yōu) 先級(jí)信息來(lái)傳送。在另一示例中,所標(biāo)識(shí)的定位符甚至可以不包括特定端點(diǎn), 如本示例中的移動(dòng)電話(huà),而是可以?xún)H標(biāo)識(shí)臺(tái)式和膝上型計(jì)算機(jī)的定位符。
也可使用其它信息或準(zhǔn)則來(lái)標(biāo)識(shí)一個(gè)或多個(gè)定位符,并且甚至可能確定是 否究竟要返回任何定位符。例如,假定元數(shù)據(jù)包括引用被確定為危險(xiǎn)的、不適 當(dāng)?shù)?、或出于某種原因不合需要的團(tuán)塊(例如,該團(tuán)塊可能包含含有病毒的可 執(zhí)行代碼、可能包含具有反對(duì)內(nèi)容的視頻數(shù)據(jù)等等)的項(xiàng)目。在這一情況下, 操作625的實(shí)現(xiàn)可以不標(biāo)識(shí)該特定團(tuán)塊的定位符,即使一個(gè)或多個(gè)端點(diǎn)己經(jīng)注 冊(cè)了能夠提供所討論的團(tuán)塊。以此方式,可使用團(tuán)塊查找服務(wù)來(lái)過(guò)濾或控制可 在同步或傳送數(shù)據(jù)時(shí)傳送的內(nèi)容。這一控制在例如其中端點(diǎn)可以在可能不涉及 集中端點(diǎn)的情況下交換數(shù)據(jù)的分散或?qū)Φ韧较到y(tǒng)中可能很難或不可能實(shí)現(xiàn)。
最后,在操作630的示例性實(shí)現(xiàn)中,例如在操作625中標(biāo)識(shí)的、作為操作 620的一部分接收的一個(gè)或多個(gè)定位符可被傳送到或被提供給一個(gè)或多個(gè)端 點(diǎn),包括做出請(qǐng)求的端點(diǎn)。
現(xiàn)在轉(zhuǎn)向圖7,所示是一示例性概括操作流程700,其包括可在將團(tuán)塊存 儲(chǔ)在高速緩存中并從高速緩存提供團(tuán)塊時(shí)執(zhí)行的各種操作。圖7的以下描述可 參考其它附圖來(lái)進(jìn)行。然而,應(yīng)當(dāng)理解,參考圖7所描述的操作流程并不旨在 限于用于參考其它附圖所描述的元素。另外,盡管圖7的示例性操作流程指示 了特定執(zhí)行次序,但在一個(gè)或多個(gè)替換實(shí)施例中操作可被不同地排序。此外, 盡管該示例性操作流程包含多個(gè)步驟,但應(yīng)認(rèn)識(shí)到在某些實(shí)現(xiàn)中,這些操作中 的至少某一些可被組合或同時(shí)執(zhí)行,并且在同一或其它實(shí)現(xiàn)中,可以不執(zhí)行某 些 驟。在操作710的示例性實(shí)現(xiàn)中,端點(diǎn)可以接受或接收存儲(chǔ)或高速緩存特定團(tuán) 塊的請(qǐng)求。接收這一請(qǐng)求的端點(diǎn)可包括至少某些服務(wù)器端點(diǎn),如先前參考圖1
描述的示例性服務(wù)器端點(diǎn)110。此外,與操作流程700相關(guān)聯(lián)的至少某些操作
在至少某些實(shí)現(xiàn)中可以由諸如也先前參考圖1描述的示例性團(tuán)塊高速緩存服務(wù)
130等團(tuán)塊高速緩存服務(wù)來(lái)實(shí)現(xiàn)。盡管操作流程700的某些操作此處可被描述 為與示例性服務(wù)器端點(diǎn)或示例性團(tuán)塊高速緩存服務(wù)相關(guān)聯(lián),但應(yīng)理解,這些操 作不必由服務(wù)器端點(diǎn)或團(tuán)塊高速緩存服務(wù)來(lái)實(shí)現(xiàn)或執(zhí)行,并且可改為由各種端 點(diǎn)中的一個(gè)或多個(gè)或由這些端點(diǎn)中包括的模塊或服務(wù)來(lái)實(shí)現(xiàn)或執(zhí)行。
可從包括服務(wù)器端點(diǎn)和設(shè)備端點(diǎn)在內(nèi)的各種端點(diǎn)接收高速緩存特定團(tuán)塊 的請(qǐng)求。例如,在一個(gè)示例中,設(shè)備端點(diǎn)可在其無(wú)法從另一端點(diǎn)獲得團(tuán)塊本身 時(shí)(例如先前所描述的在兩個(gè)設(shè)備端點(diǎn)同時(shí)不在線(xiàn)的情況)提交高速緩存該團(tuán) 塊的請(qǐng)求。在另一示例中,存儲(chǔ)服務(wù)或其它服務(wù)或模塊可出于各種原因中的一 種或多種來(lái)提交高速緩存一特定團(tuán)塊的請(qǐng)求。例如,可能使用像先前參考圖1 描述的知識(shí)存儲(chǔ)模塊145那樣的知識(shí)存儲(chǔ)所維護(hù)的知識(shí),存儲(chǔ)服務(wù)可具有特定 端點(diǎn)經(jīng)常不可用的知識(shí)。在這一情況下,以及可能在其它情況下,當(dāng)這一端點(diǎn) 提供與新的或經(jīng)變更的團(tuán)塊相關(guān)聯(lián)的元數(shù)據(jù)時(shí),存儲(chǔ)服務(wù)可甚至在另一端點(diǎn)請(qǐng) 求團(tuán)塊之前主動(dòng)地請(qǐng)求高速緩存一個(gè)或多個(gè)特定的團(tuán)塊。這一實(shí)現(xiàn)可使得希望 檢索這一團(tuán)塊的設(shè)備端點(diǎn)不必做出高速緩存該團(tuán)塊本身的請(qǐng)求。
在操作715的某些實(shí)現(xiàn)中,團(tuán)塊高速緩存服務(wù)可檢索所請(qǐng)求的團(tuán)塊。檢索 團(tuán)塊可用各種方式實(shí)現(xiàn)。在某些實(shí)現(xiàn)中,團(tuán)塊高速緩存服務(wù)可執(zhí)行與先前參考 圖4描述的那些操作相同或相似的一個(gè)或多個(gè)操作。這些操作可例如使用團(tuán)塊 查找服務(wù)來(lái)標(biāo)識(shí)團(tuán)塊在那里可用的一個(gè)或多個(gè)位置,并且可從這些位置檢索團(tuán) 塊。
在同一或其它實(shí)現(xiàn)中,端點(diǎn)可周期性地與團(tuán)塊高速緩存服務(wù)通信,或可接 收與團(tuán)塊高速緩存服務(wù)的通信是必需的通知,并且可提供或上傳團(tuán)塊高速緩存 服務(wù)所請(qǐng)求的團(tuán)塊。例如,設(shè)備端點(diǎn)可接收?qǐng)F(tuán)塊高速緩存服務(wù)期望設(shè)備端點(diǎn)上 可用的特定團(tuán)塊的通信或通知,并且因此可作為操作715的一部分使得該團(tuán)塊 可供團(tuán)塊高速緩存服務(wù)檢索,或者可作為操作715的另一實(shí)現(xiàn)的一部分主動(dòng)將 該團(tuán)塊上傳到或提供給團(tuán)塊高速緩存服務(wù)。在某些實(shí)現(xiàn)中,團(tuán)塊高速緩存服務(wù)可使用關(guān)于同步系統(tǒng)、元數(shù)據(jù)、端點(diǎn)等 的知識(shí),包括由諸如先前參考圖1描述的示例性知識(shí)存儲(chǔ)145等知識(shí)存儲(chǔ)維護(hù) 的知識(shí),來(lái)更高效地檢索要高速緩存的團(tuán)塊。在僅一個(gè)示例中,團(tuán)塊高速緩存 服務(wù)可能不立即試圖高速緩存某一其它端點(diǎn)所請(qǐng)求的團(tuán)塊。相反,團(tuán)塊高速緩 存服務(wù)可等待,直到如有空閑帶寬可用于可提供該團(tuán)塊的一個(gè)或多個(gè)端點(diǎn),或 直到有相對(duì)便宜的帶寬可用,或直到具有足夠計(jì)算能力來(lái)服務(wù)該請(qǐng)求的端點(diǎn)可 用,等等。
在操作720的實(shí)現(xiàn)中,所檢索的團(tuán)塊可使用各種存儲(chǔ)機(jī)制或手段中的任一 個(gè)來(lái)存儲(chǔ)。在某些實(shí)現(xiàn)中,團(tuán)塊可被存儲(chǔ)在數(shù)據(jù)庫(kù)中、可作為文件系統(tǒng)中的文 件來(lái)存儲(chǔ)、或可用某種其它方式來(lái)存儲(chǔ)。在至少某些實(shí)現(xiàn)中,團(tuán)塊高速緩存服 務(wù)可使用各種高速緩存技術(shù)來(lái)確定例如特定團(tuán)塊應(yīng)被存儲(chǔ)多久。例如,團(tuán)塊高 速緩存服務(wù)的一個(gè)實(shí)現(xiàn)可存儲(chǔ)團(tuán)塊直到其可用存儲(chǔ)空間滿(mǎn),并且然后可使用包 括LRU算法在內(nèi)的一個(gè)或多個(gè)算法來(lái)確定要?jiǎng)h除哪些團(tuán)塊以使空間可用于其 它團(tuán)塊。在某些實(shí)現(xiàn)中,最近檢索或訪(fǎng)問(wèn)的團(tuán)塊可被保持,而最近未被檢索的 團(tuán)塊可被刪除。在同一或其它實(shí)現(xiàn)中,團(tuán)塊可以與定義有多少端點(diǎn)可能希望檢 索該團(tuán)塊的引用計(jì)數(shù)相關(guān)聯(lián),并且在某些情況下,團(tuán)塊可以在指定數(shù)量的端點(diǎn) 檢索了該團(tuán)塊之后被刪除。在同一或又一些實(shí)現(xiàn)中,可使用各種其它技術(shù)和算 法來(lái)管理與團(tuán)塊高速緩存服務(wù)相關(guān)聯(lián)的存儲(chǔ)。
在至少某些實(shí)現(xiàn)中,團(tuán)塊高速緩存服務(wù)可以在團(tuán)塊高速緩存服務(wù)存儲(chǔ)了特 定團(tuán)塊的至少一部分并且可向其它端點(diǎn)提供該團(tuán)塊的所存儲(chǔ)的部分時(shí)用與團(tuán) 塊高速緩存服務(wù)相關(guān)聯(lián)的位置來(lái)更新示例性團(tuán)塊查找服務(wù)。使用這一位置,團(tuán) 塊査找服務(wù)能夠向端點(diǎn)提供與團(tuán)塊高速緩存服務(wù)相關(guān)聯(lián)的定位符,并且這一端 點(diǎn)能夠由此從該團(tuán)塊高速緩存服務(wù)檢索團(tuán)塊。在某些實(shí)現(xiàn)中,端點(diǎn)還能夠在不 使用團(tuán)塊查找服務(wù)的情況下從團(tuán)塊高速緩存服務(wù)檢索團(tuán)塊。
在操作725的示例性實(shí)現(xiàn)中,在高速緩存了特定的一個(gè)或多個(gè)團(tuán)塊之后的 某一點(diǎn),團(tuán)塊高速緩存服務(wù)可以從一個(gè)或多個(gè)端點(diǎn)接收對(duì)所高速緩存的團(tuán)塊的 全部或一部分的請(qǐng)求,并且可在操作730的示例性實(shí)現(xiàn)中向請(qǐng)求者提供所請(qǐng)求 的團(tuán)塊(或該團(tuán)塊的部分)。與高速緩存的團(tuán)塊相關(guān)聯(lián)的請(qǐng)求和響應(yīng)可以用各 種各樣的方式,使用各種各樣的通信機(jī)制等來(lái)實(shí)現(xiàn),包括本文別處描述的機(jī)制,
35如HTTP傳輸、FTP傳輸、BitTorrent類(lèi)型的傳輸?shù)鹊取?br>
現(xiàn)在轉(zhuǎn)向圖8,所示是一示例性概括操作流程800,其包括可在將團(tuán)塊存 儲(chǔ)在云存儲(chǔ)中并從云存儲(chǔ)提供數(shù)據(jù)團(tuán)塊時(shí)執(zhí)行的各種操作。圖8的以下描述可 參考其它附圖來(lái)進(jìn)行。然而,應(yīng)當(dāng)理解,參考圖8所描述的操作流程并不旨在 限于用于參考其它附圖所描述的元素。另外,盡管圖8的示例性操作流程指示 了特定執(zhí)行次序,但在一個(gè)或多個(gè)替換實(shí)施例中操作可被不同地排序。此外, 盡管該示例性操作流程包含多個(gè)步驟,但應(yīng)認(rèn)識(shí)到在某些實(shí)現(xiàn)中,這些操作中 的至少某一些可被組合或同時(shí)執(zhí)行,并且在同一或其它實(shí)現(xiàn)中,可以不執(zhí)行某 些步驟。
在操作810的示例性實(shí)現(xiàn)中,端點(diǎn)可接受或接收將特定團(tuán)塊的部分或全部 存儲(chǔ)"在云中"或在云存儲(chǔ)中的請(qǐng)求。接受該請(qǐng)求的端點(diǎn)或模塊或服務(wù)在某些 情況下可由可能像服務(wù)器端點(diǎn)110那樣的服務(wù)器端點(diǎn)來(lái)實(shí)現(xiàn),并且與操作流程 800相關(guān)聯(lián)的至少某些操作可由示例性云存儲(chǔ)模塊135來(lái)實(shí)現(xiàn)或提供,這兩者 都在先前參考圖1描述。盡管操作流程800的某些操作此處可被描述為與示例 性服務(wù)器端點(diǎn)或示例性云存儲(chǔ)服務(wù)相關(guān)聯(lián),但應(yīng)理解,這些操作不必由服務(wù)器 端點(diǎn)或云存儲(chǔ)服務(wù)來(lái)實(shí)現(xiàn)或執(zhí)行,并且可改為由各種端點(diǎn)中的一個(gè)或多個(gè)或由 這些端點(diǎn)中包括的模塊或服務(wù)來(lái)實(shí)現(xiàn)或執(zhí)行D
盡管操作流程800中的許多操作可以看似為類(lèi)似于團(tuán)塊高速緩存服務(wù)操 作流程700中的那些操作,但云存儲(chǔ)服務(wù)可與團(tuán)塊高速緩存服務(wù)不同地使用。 例如,與團(tuán)塊高速緩存服務(wù)提供的臨時(shí)存儲(chǔ)相反,云存儲(chǔ)服務(wù)可通過(guò)例如除非 例如用戶(hù)具體指示否則不刪除所存儲(chǔ)的團(tuán)塊;通過(guò)可能在單獨(dú)的盤(pán)驅(qū)動(dòng)器或其 它存儲(chǔ)機(jī)制上維護(hù)所存儲(chǔ)的數(shù)據(jù)的多個(gè)副本;等等,來(lái)為團(tuán)塊(以及可能的其 它數(shù)據(jù))提供非臨時(shí)或"可靠"存儲(chǔ)。
在操作815的至少某些實(shí)現(xiàn)中,云存儲(chǔ)服務(wù)可檢索或被提供以團(tuán)塊數(shù)據(jù), 包括在某些情況下的與在操作810接收到的請(qǐng)求相關(guān)聯(lián)的團(tuán)塊的一部分或全 部。云存儲(chǔ)服務(wù)可用各種方式來(lái)檢索團(tuán)塊,包括在某些情況下通過(guò)使用團(tuán)塊査 找服務(wù)、團(tuán)塊下載模塊、或可能先前例如參考圖4描述的某些操作。在其它實(shí) 現(xiàn)中,云存儲(chǔ)服務(wù)可使用各種其它通信或文件傳輸機(jī)制中的任一種來(lái)檢索或被 提供以團(tuán)塊。在至少某些實(shí)現(xiàn)中,可使用通信系統(tǒng)、元數(shù)據(jù)、團(tuán)塊等的知識(shí),可能包括與如先前參考圖1描述的知識(shí)存儲(chǔ)模塊145等示例性知識(shí)存儲(chǔ)相關(guān)聯(lián) 的知識(shí),來(lái)可能以類(lèi)似于己參考團(tuán)塊高速緩存服務(wù)描述的那些方式的方式或以 其它方式更高效地獲得所請(qǐng)求的團(tuán)塊。
在操作820的示例性實(shí)現(xiàn)中,所檢索或提供的團(tuán)塊可由云存儲(chǔ)服務(wù)以各種
方式來(lái)存儲(chǔ)。例如,如先前所介紹的,云存儲(chǔ)服務(wù)可使用多個(gè)冗余存儲(chǔ)來(lái)存儲(chǔ) 數(shù)據(jù),包括團(tuán)塊。另外,在某些情況下,云存儲(chǔ)服務(wù)可在其存儲(chǔ)了團(tuán)塊時(shí)向示 例性團(tuán)塊查找服務(wù)更新或提供信息,以使團(tuán)塊查找服務(wù)在某些實(shí)現(xiàn)中可向其它 端點(diǎn)提供引用或標(biāo)識(shí)云存儲(chǔ)服務(wù)的定位符,之后其它端點(diǎn)在某些情況下可從云 存儲(chǔ)服務(wù)檢索團(tuán)塊。
在某一時(shí)間點(diǎn),在操作825的至少某些實(shí)現(xiàn)中,云存儲(chǔ)服務(wù)可接收提供所 存儲(chǔ)的團(tuán)塊或所存儲(chǔ)的團(tuán)塊的一部分的請(qǐng)求。響應(yīng)于這一請(qǐng)求,云存儲(chǔ)服務(wù)然 后在操作830的示例性實(shí)現(xiàn)中可能通過(guò)使用包括本文別處描述的在內(nèi)的各種通 信或傳輸機(jī)制來(lái)提供所請(qǐng)求的團(tuán)塊數(shù)據(jù)。
現(xiàn)在轉(zhuǎn)向圖9,所是示是一示例性概括操作流程900,其包括可在不使用 示例性服務(wù)器端點(diǎn)提供的完整元數(shù)據(jù)或至少某些功能的情況下檢索團(tuán)塊時(shí)執(zhí) 行的各種操作。圖9的以下描述可參考其它附圖來(lái)進(jìn)行。然而,應(yīng)當(dāng)理解,參 考圖9所描述的操作流程并不旨在限于用于參考其它附圖所描述的元素。另外, 盡管圖9的示例性操作流程指示了特定執(zhí)行次序,但在一個(gè)或多個(gè)替換實(shí)施例 中操作可被不同地排序。此外,盡管該示例性操作流程包含多個(gè)步驟,但應(yīng)認(rèn) 識(shí)到在某些實(shí)現(xiàn)中,這些操作中的至少某一些可被組合或同時(shí)執(zhí)行,并且在同 一或其它實(shí)現(xiàn)中,可以不執(zhí)行某些步驟。
盡管此處的描述中的大部分描述了使用元數(shù)據(jù)的團(tuán)塊數(shù)據(jù)檢索,但在至少 某些實(shí)現(xiàn)中,對(duì)整個(gè)元數(shù)據(jù)集的使用并不總是檢索團(tuán)塊時(shí)所必需的。相反,在 某些情況下,可以只需要最少量數(shù)據(jù),如僅團(tuán)塊標(biāo)識(shí)符,來(lái)利用各種端點(diǎn)功能, 包括例如團(tuán)塊查找服務(wù)和可能的各種可提供一團(tuán)塊的全部或部分的端點(diǎn)。在某 些環(huán)境中,使用此類(lèi)功能可使端點(diǎn)能夠更快地、更便宜地、或在某種程度上更 高效地檢索團(tuán)塊。
在操作910的示例性實(shí)現(xiàn)中,端點(diǎn)可通過(guò)某些手段來(lái)獲得團(tuán)塊標(biāo)識(shí)符。在 某些先前所描述的實(shí)現(xiàn)中,團(tuán)塊標(biāo)識(shí)符被包括在可在不同端點(diǎn)之間同步的元數(shù)
37據(jù)中。這些同步的元數(shù)據(jù)提供了端點(diǎn)可用于獲得團(tuán)塊標(biāo)識(shí)符的至少一種機(jī)制。 然而,在各種相同或其它實(shí)現(xiàn)中,包括不同步元數(shù)據(jù)等的那些實(shí)現(xiàn)中,團(tuán)塊標(biāo) 識(shí)符可以用各種其它方式來(lái)提供。例如,用戶(hù)可向另一用戶(hù)發(fā)送包括團(tuán)塊標(biāo)識(shí) 符的電子郵件或即時(shí)消息,團(tuán)塊標(biāo)識(shí)符進(jìn)而標(biāo)識(shí)團(tuán)塊,如可能的音頻或視頻剪 輯、文字處理文檔或電子表格、某種其它文件等等。
在操作915的至少某些實(shí)現(xiàn)中,可以確定是否應(yīng)使用團(tuán)塊查找服務(wù)來(lái)檢索 團(tuán)塊。例如,某些端點(diǎn)可能無(wú)法訪(fǎng)問(wèn)或甚至不了解團(tuán)塊査找服務(wù)。在這一情況 下,以及在其它情況中,包括在團(tuán)塊查找服務(wù)可用但未被使用時(shí),可以做出不
使用團(tuán)塊查找服務(wù)的判定,并且操作流程900可前進(jìn)到操作930。如果要使用 團(tuán)塊査找服務(wù)來(lái)檢索團(tuán)塊,則操作流程900可前進(jìn)到操作920。
作為其中團(tuán)塊查找服務(wù)可能被使用或可能未被使用的環(huán)境的一個(gè)示例,考 慮web瀏覽器的示例。許多web瀏覽器包括允許使用諸如HTTP等協(xié)議來(lái)下 載或檢索資源的可執(zhí)行代碼。采用這一web瀏覽器,可對(duì)單個(gè)服務(wù)器,或至少 對(duì)單個(gè)URL做出HTTP請(qǐng)求,并且可從單個(gè)服務(wù)器接收響應(yīng)。然而,在某些 情況下,例如在檢索可能較大的團(tuán)塊時(shí),使用一種或多種其它機(jī)制來(lái)下載團(tuán)塊 可能更高效且更快,這些機(jī)制包括如BitTorrent或BitTorrent類(lèi)傳輸實(shí)現(xiàn)等機(jī) 制,其中特定團(tuán)塊的不同片斷從多個(gè)不同端點(diǎn)檢索或由多個(gè)不同端點(diǎn)提供。
然而,盡管用于下載文件或團(tuán)塊的這些機(jī)制可能是合乎需要的,但web 瀏覽器可能未本機(jī)包括允許此類(lèi)或其它類(lèi)型的下載的功能。在某些情況下,有 可能向web瀏覽器或某一其它應(yīng)用程序添加功能,該功能例如通過(guò)使得web 瀏覽器或應(yīng)用程序能支持對(duì)團(tuán)塊査找服務(wù)(并且還可能有團(tuán)塊下載模塊,如以 下更詳細(xì)描述的)的使用來(lái)增加此能力。例如,web瀏覽器可支持用戶(hù)添加的 "插件"或其它代碼。 一個(gè)這樣的插件可實(shí)現(xiàn)對(duì)團(tuán)塊查找服務(wù)的支持,并且在 被安裝時(shí),可以使web瀏覽器能使用團(tuán)塊查找服務(wù)(并且因此前進(jìn)到操作920, 而非前進(jìn)到操作930)。
在操作920的一個(gè)示例性實(shí)現(xiàn)中,檢索團(tuán)塊的端點(diǎn)可能通過(guò)向團(tuán)塊查找服 務(wù)提供如團(tuán)塊標(biāo)識(shí)符等標(biāo)識(shí)所需團(tuán)塊的某種數(shù)據(jù)來(lái)向團(tuán)塊査找服務(wù)查詢(xún)或詢(xún) 問(wèn)與所需團(tuán)塊相關(guān)聯(lián)的一個(gè)或多個(gè)定位符。這一操作在至少某些實(shí)現(xiàn)中可以用 與其中例如實(shí)現(xiàn)先前參考圖4描述的操作415的方式相似或相同的方式來(lái)實(shí)現(xiàn)。
然后,在操作925的示例性實(shí)現(xiàn)中,可使用所獲得的定位符中的一個(gè)或多
個(gè),以及在某些情況下可使用團(tuán)塊下載模塊來(lái)實(shí)際檢索團(tuán)塊。這一操作在至少
某些實(shí)現(xiàn)中可以用與其中例如實(shí)現(xiàn)先前參考圖4描述的操作425的方式相似或 相同的方式來(lái)實(shí)現(xiàn)。
在某些實(shí)現(xiàn)中,端點(diǎn)可在團(tuán)塊不能被下載或者團(tuán)塊檢索失敗的情況下釆取 附加動(dòng)作。例如,如果團(tuán)塊査找服務(wù)未提供任何定位符,或者僅提供了不能用 于實(shí)際檢索團(tuán)塊的定位符(由于網(wǎng)絡(luò)條件、由于定位符所標(biāo)識(shí)的端點(diǎn)不可用等 等),則檢索團(tuán)塊的端點(diǎn)例如可請(qǐng)求團(tuán)塊高速緩存服務(wù)存儲(chǔ)該團(tuán)塊,并然后試 圖在稍后從團(tuán)塊高速緩存服務(wù)檢索該團(tuán)塊。這一機(jī)制先前參考例如圖4來(lái)描述, 并且未在圖9中示出。
如果端點(diǎn)成功地檢索到團(tuán)塊,則它可用附加信息來(lái)更新團(tuán)塊查找服務(wù),以 使團(tuán)塊查找服務(wù)在某些情況下可在其它端點(diǎn)請(qǐng)求同一團(tuán)塊時(shí)將該端點(diǎn)標(biāo)識(shí)為 該團(tuán)塊的源。采用這一實(shí)現(xiàn),辦公室中的一個(gè)用戶(hù)有可能例如下載或檢索大文 件或團(tuán)塊,并且使如同一辦公室中的其它用戶(hù)從第一用戶(hù)而非從可能位于一個(gè) 或多個(gè)其它網(wǎng)絡(luò)上的別處的某一其它端點(diǎn)檢索該團(tuán)塊。在這一示例中,在第一 用戶(hù)檢索到團(tuán)塊之后,與第一用戶(hù)相關(guān)聯(lián)的端點(diǎn)可以向團(tuán)塊查找服務(wù)提供標(biāo)識(shí) 該端點(diǎn)的信息。當(dāng)?shù)诙蛏院蟮挠脩?hù)向團(tuán)塊査找服務(wù)請(qǐng)求同一團(tuán)塊時(shí),團(tuán)塊查 找服務(wù)可以提供標(biāo)識(shí)該第一用戶(hù)的端點(diǎn)的定位符。在某些實(shí)現(xiàn)中,團(tuán)塊查找服 務(wù)可通過(guò)使用包括知識(shí)存儲(chǔ)所維護(hù)和提供的知識(shí)在內(nèi)的、表明第一用戶(hù)的端點(diǎn) 可能在地理上更靠近原始端點(diǎn)、使用比原始端點(diǎn)更快的網(wǎng)絡(luò)連接來(lái)連接到第二 端點(diǎn)等的知識(shí),來(lái)提供這一定位符。
如果未使用團(tuán)塊查找服務(wù),則操作流程900可前進(jìn)到操作930。在操作930 的示例性實(shí)現(xiàn)中,團(tuán)塊可使用一個(gè)或多個(gè)不直接(但在某些實(shí)現(xiàn)中間接)使用 團(tuán)塊査找服務(wù)或團(tuán)塊下載模塊的文件傳輸或團(tuán)塊檢索機(jī)制來(lái)檢索。此類(lèi)機(jī)制可 包括HTTP、 FTP、文件共享或傳輸協(xié)議等等。例如,在團(tuán)塊標(biāo)識(shí)符是類(lèi)似于 "http://www.els.live.com/ABC123"的樣子的情況下,端點(diǎn)可簡(jiǎn)單地像該團(tuán)塊 標(biāo)識(shí)符所包含的URL發(fā)起HTTP請(qǐng)求。在某些實(shí)現(xiàn)中,響應(yīng)該對(duì)團(tuán)塊的請(qǐng)求 的服務(wù)器端點(diǎn)或HTTP服務(wù)器然后可被配置成通過(guò)提取標(biāo)識(shí)符(如"ABC123")并使用該標(biāo)識(shí)符來(lái)定位所請(qǐng)求的團(tuán)塊來(lái)使用該特定形式的url,然后最后以http響應(yīng)返回團(tuán)塊。(在某些情況下,服務(wù)器端點(diǎn)本身可通過(guò)使用與例如先前參考圖4描述的團(tuán)塊檢索操作相同或類(lèi)似的操作來(lái)定位團(tuán)塊。在同一或其它
實(shí)現(xiàn)中,服務(wù)器端點(diǎn)可能僅返回存在于特定存儲(chǔ)位置,如團(tuán)塊高速緩存服務(wù)或云存儲(chǔ)服務(wù)中的團(tuán)塊。)
示例計(jì)算環(huán)境
現(xiàn)在轉(zhuǎn)向圖10,該圖和相關(guān)描述旨在提供其中可實(shí)現(xiàn)此處所描述的各種技術(shù)的示例性計(jì)算環(huán)境的簡(jiǎn)要概括描述。盡管并非所需,但各技術(shù)中至少部分地在諸如程序模塊等由控制器、處理器、個(gè)人計(jì)算機(jī)或如圖io所示的計(jì)算設(shè)備1000等其它計(jì)算設(shè)備來(lái)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述。
一般而言,程序模塊包括執(zhí)行特定任務(wù)、顯示特定信息、或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的例程、程序、對(duì)象、組件、用戶(hù)界面、數(shù)據(jù)結(jié)構(gòu)等等。由程序模塊執(zhí)行的操作先前已借助一個(gè)或多個(gè)框圖和操作流程圖來(lái)描述。
本領(lǐng)域的技術(shù)人員可以按可被包含在一種或多種形式的計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)可執(zhí)行指令的形式來(lái)實(shí)現(xiàn)該描述、框圖和操作流程。如此處所使用的,計(jì)算機(jī)可讀介質(zhì)可以是可存儲(chǔ)或包含以可由計(jì)算機(jī)訪(fǎng)問(wèn)和理解的形式編碼的信息的任何介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的典型形式包括但不限于易失性與非易失存儲(chǔ)器兩者、包括可移動(dòng)和/或不可移動(dòng)介質(zhì)在內(nèi)的數(shù)據(jù)存儲(chǔ)設(shè)備、以及通信介質(zhì)。
通信介質(zhì)具體化經(jīng)調(diào)制數(shù)據(jù)信號(hào)如載波或其它傳輸機(jī)制中的計(jì)算機(jī)可讀信息,并且包括任何信息傳遞介質(zhì)。術(shù)語(yǔ)"已調(diào)制數(shù)據(jù)信號(hào)"指的是其一個(gè)或多個(gè)特征以在信號(hào)中編碼信息的方式被設(shè)定或更改的信號(hào)。作為示例而非限制,通信介質(zhì)包括有線(xiàn)介質(zhì),諸如有線(xiàn)網(wǎng)絡(luò)或直接線(xiàn)連接,以及無(wú)線(xiàn)介質(zhì),諸如聲學(xué)、rf、紅外線(xiàn)和其它無(wú)線(xiàn)介質(zhì)。
圖10所示的計(jì)算設(shè)備1000在其最基本的配置中包括至少一個(gè)處理單元1002和存儲(chǔ)器1004。在某些實(shí)現(xiàn)中,計(jì)算設(shè)備1000可實(shí)現(xiàn)例如先前參考圖1描述的端點(diǎn),如服務(wù)器端點(diǎn)110、設(shè)備端點(diǎn)a 160、設(shè)備端點(diǎn)b 170等中的一個(gè)的至少一部分。在某些實(shí)現(xiàn)中,處理單元1002可以是存在于例如包括臺(tái)式和膝上型計(jì)算機(jī)在內(nèi)的各種計(jì)算機(jī)上的通用中央處理單元(CPU)。取決于計(jì)
算設(shè)備的確切配置和類(lèi)型,存儲(chǔ)器1004可以是易失性的(諸如RAM)、非易失性的(諸如ROM、閃存等)或是兩者的某種組合。該最基本配置在圖10中由虛線(xiàn)1006來(lái)例示。另外,計(jì)算設(shè)備1000還可具有附加特征和功能。例如,計(jì)算設(shè)備IOOO還可包含附加存儲(chǔ)(可移動(dòng)和/或不可移動(dòng)),包括但不限于磁盤(pán)、光盤(pán)或磁帶。這樣的附加存儲(chǔ)在圖10中由可移動(dòng)存儲(chǔ)1008和不可移動(dòng)存儲(chǔ)1010示出。
計(jì)算設(shè)備IOOO還可包含允許計(jì)算設(shè)備IOOO與其它設(shè)備和服務(wù)通信的一個(gè)或多個(gè)通信連接1012。例如,計(jì)算設(shè)備可具有到各種通信裝置或通信設(shè)備的一個(gè)或多個(gè)連接,包括例如到先前參考圖1描述的到端點(diǎn)的連接或在這些端點(diǎn)之間的連接。計(jì)算設(shè)備1000還可具有一個(gè)或多個(gè)輸入設(shè)備1014,如像照相機(jī)或掃描儀那樣的圖像輸入設(shè)備、鍵盤(pán)、鼠標(biāo)、筆、包括話(huà)筒陣列在內(nèi)的語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備等等。諸如顯示器、揚(yáng)聲器、打印機(jī)等一個(gè)或多個(gè)輸出設(shè)備1016也可以被包括在計(jì)算設(shè)備1000中。
本領(lǐng)域的技術(shù)人員可以理解,此處所描述的技術(shù)可以用除圖IO所示的計(jì)算設(shè)備1000之外的計(jì)算設(shè)備來(lái)實(shí)施。例如,但非限制,此處所描述的技術(shù)同樣可以在包括移動(dòng)電話(huà)和PDA在內(nèi)的手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型計(jì)算機(jī)等中實(shí)施。這些計(jì)算設(shè)備中的每一個(gè)可以在某一細(xì)節(jié)水平由圖10的系統(tǒng)來(lái)描述,或可被不同地描述。
此處所描述的技術(shù)還能在其中操作由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的分布式計(jì)算環(huán)境中實(shí)現(xiàn)。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程設(shè)備中。
盡管此處被描述為以軟件實(shí)現(xiàn),但還可以理解,此處所描述的技術(shù)可替換地全部或部分被實(shí)現(xiàn)為硬件、固件、或軟件、硬件和/或固件的各種組合。
盡管在附圖中例示且在上文中描述了系統(tǒng)和方法的一些特定實(shí)現(xiàn),但將會(huì)理解,示出和描述的系統(tǒng)和方法不限于所述的特定實(shí)現(xiàn),而是能夠在不脫離所附權(quán)利要求書(shū)闡述和定義的精神的情況下作出眾多重新布置、修改和替換。
4權(quán)利要求
1.一種方法,包括從服務(wù)器端點(diǎn)獲得元數(shù)據(jù),其中所述元數(shù)據(jù)標(biāo)識(shí)一團(tuán)塊并且所述團(tuán)塊不被包括在所述元數(shù)據(jù)中;將所述元數(shù)據(jù)與本地元數(shù)據(jù)合并;向團(tuán)塊查找服務(wù)詢(xún)問(wèn)包括與所述團(tuán)塊相關(guān)聯(lián)的至少一個(gè)定位符的集合;以及在第一端點(diǎn)上,從由所述至少一個(gè)定位符的集合中的特定定位符標(biāo)識(shí)的第二端點(diǎn)檢索所述團(tuán)塊的一部分。
2. 如權(quán)利要求l所述的方法,其特征在于,還包括在所述團(tuán)塊的所述部分最初不能被檢索時(shí),請(qǐng)求團(tuán)塊高速緩存服務(wù)存儲(chǔ)所 述團(tuán)塊的至少第二部分。
3. 如權(quán)利要求1所述的方法,其特征在于,檢索所述團(tuán)塊的所述部分還 包括從不同于所述第二端點(diǎn)的第三端點(diǎn)檢索所述團(tuán)塊的、不同于所述團(tuán)塊的所 述部分的第二部分。
4. 如權(quán)利要求l所述的方法,其特征在于,所述檢索是由團(tuán)塊下載模塊 來(lái)實(shí)現(xiàn)的,所述團(tuán)塊下載模塊使用第一團(tuán)塊檢索機(jī)制來(lái)檢索所述團(tuán)塊的所述部 分,并且所述團(tuán)塊下載模塊具有使用不同于所述第一團(tuán)塊檢索機(jī)制的第二團(tuán)塊 檢索機(jī)制來(lái)檢索所述團(tuán)塊的第二部分和第二團(tuán)塊的一部分中的至少一個(gè)的能 力。
5. 如權(quán)利要求l所述的方法,其特征在于,還包括在所述團(tuán)塊的所述部分被檢索到之后,告知所述團(tuán)塊查找服務(wù)所述團(tuán)塊的 所述部分可從所述第一端點(diǎn)檢索。
6. 如權(quán)利要求l所述的方法,其特征在于,還包括響應(yīng)于來(lái)自第三端點(diǎn)的、對(duì)所述團(tuán)塊的所述部分的請(qǐng)求,向所述第三端點(diǎn) 提供所述團(tuán)塊的所述部分。
7. 如權(quán)利要求l所述的方法,其特征在于,還包括在所述第一端點(diǎn)上接收所述元數(shù)據(jù)已在所述服務(wù)器端點(diǎn)上更新的通知,并 且所述通知發(fā)起所述獲得、所述合并、所述詢(xún)問(wèn)和所述檢索操作。
8. 如權(quán)利要求1所述的方法,其特征在于,還包括 執(zhí)行對(duì)與所述本地元數(shù)據(jù)相關(guān)聯(lián)的數(shù)據(jù)的本地變更;更新所述本地元數(shù)據(jù)以形成經(jīng)更新的本地元數(shù)據(jù),并更新所述第一端點(diǎn)上 的所述團(tuán)塊的第二部分以使所述經(jīng)更新的本地元數(shù)據(jù)和所述團(tuán)塊的所述第二 部分包括所述本地變更;以及將所述經(jīng)更新的本地元數(shù)據(jù)傳送到所述服務(wù)器端點(diǎn)。
9. 一種方法,包括在服務(wù)器端點(diǎn)上從第一端點(diǎn)獲得元數(shù)據(jù),其中所述元數(shù)據(jù)標(biāo)識(shí)一團(tuán)塊且所 述團(tuán)塊不被包括在所述元數(shù)據(jù)中;將所述元數(shù)據(jù)與由所述服務(wù)器端點(diǎn)維護(hù)的服務(wù)器元數(shù)據(jù)合并;以及 用標(biāo)識(shí)所述第一端點(diǎn)的位置更新團(tuán)塊查找服務(wù)。
10. 如權(quán)利要求9所述的方法,其特征在于,還包括 將所述服務(wù)器元數(shù)據(jù)傳送到不同于所述第一端點(diǎn)的第二端點(diǎn)。
11. 如權(quán)利要求9所述的方法,其特征在于,還包括 從請(qǐng)求者接收對(duì)標(biāo)識(shí)可從何處檢索所述團(tuán)塊的一部分的定位符的請(qǐng)求; 使用所述團(tuán)塊查找服務(wù)來(lái)標(biāo)識(shí)所述定位符;以及 將所述定位符傳送到所述請(qǐng)求者。
12. 如權(quán)利要求11所述的方法,其特征在于,所述定位符是由所述團(tuán)塊 査找服務(wù)使用與所述第一端點(diǎn)相關(guān)聯(lián)的第一知識(shí)特性來(lái)標(biāo)識(shí)的,并且未標(biāo)識(shí)與 第二端點(diǎn)相關(guān)聯(lián)且標(biāo)識(shí)了可從何處檢索所述團(tuán)塊的第二部分的第二定位符,因 為與所述第二端點(diǎn)相關(guān)聯(lián)的第二知識(shí)特性與所述第一知識(shí)特性相比較不優(yōu)選。
13. 如權(quán)利要求9所述的方法,其特征在于,還包括 接受標(biāo)識(shí)第二端點(diǎn)的第二位置,其中所述第二端點(diǎn)存儲(chǔ)所述團(tuán)塊的第二部分并且所述團(tuán)塊的所述第二部分可從所述第二端點(diǎn)檢索;接收對(duì)標(biāo)識(shí)可從何處檢索所述團(tuán)塊的至少一個(gè)定位符的請(qǐng)求; 標(biāo)識(shí)與所述位置相關(guān)聯(lián)的第一定位符以及與所述第二位置相關(guān)聯(lián)的第二定位符;以及響應(yīng)于所述請(qǐng)求傳送所述第一定位符和所述第二定位符。
14. 如權(quán)利要求9所述的方法,其特征在于,還包括接受高速緩存所述團(tuán)塊的一部分的請(qǐng)求; 檢索所述團(tuán)塊的所述部分;將所述團(tuán)塊的所述部分存儲(chǔ)在團(tuán)塊高速緩存中;以及 用標(biāo)識(shí)所述團(tuán)塊高速緩存的第二位置來(lái)更新所述團(tuán)塊查找服務(wù)。
15. 如權(quán)利要求14所述的方法,其特征在于,提供端點(diǎn)是使用與所述提 供端點(diǎn)相關(guān)聯(lián)的知識(shí)特性來(lái)標(biāo)識(shí)的,并且所述團(tuán)塊的所述部分是從所述提供端 點(diǎn)檢索的。
16. 如權(quán)利要求9所述的方法,其特征在于,還包括 接受將所述團(tuán)塊的一部分存儲(chǔ)在非臨時(shí)云存儲(chǔ)數(shù)據(jù)存儲(chǔ)中的請(qǐng)求; 檢索所述團(tuán)塊的所述部分;以及將所述團(tuán)塊的所述部分存儲(chǔ)在所述云存儲(chǔ)數(shù)據(jù)存儲(chǔ)中。
17. 如權(quán)利要求9所述的方法,其特征在于,還包括 在所述合并之后通知訂閱端點(diǎn)所述服務(wù)器元數(shù)據(jù)已被修改;以及 將所述服務(wù)器元數(shù)據(jù)傳送到所述訂閱端點(diǎn)。
18. 如權(quán)利要求14所述的方法,其特征在于,所述檢索是由團(tuán)塊下載模 塊來(lái)實(shí)現(xiàn)的,所述團(tuán)塊下載模塊使用第一團(tuán)塊檢索機(jī)制來(lái)檢索所述團(tuán)塊的所述 部分,并且所述團(tuán)塊下載模塊具有使用不同于所述第一團(tuán)塊檢索機(jī)制的第二團(tuán) 塊檢索機(jī)制來(lái)檢索所述團(tuán)塊的第二部分和第二團(tuán)塊的一部分中的至少一個(gè)的 能力。
19. 如權(quán)利要求14所述的方法,其特征在于,還包括 將所述團(tuán)塊的所述部分從所述團(tuán)塊高速緩存?zhèn)魉偷讲煌谒龅谝欢它c(diǎn)的第二端點(diǎn)。
20. —種系統(tǒng),包括 團(tuán)塊查找服務(wù); 存儲(chǔ)服務(wù),其被配置成從第一端點(diǎn)獲得元數(shù)據(jù),其中所述元數(shù)據(jù)標(biāo)識(shí)一團(tuán)塊并且所述團(tuán)塊不被包括在所述元數(shù)據(jù)中;將所述元數(shù)據(jù)與由所述存儲(chǔ)服務(wù)維護(hù)的服務(wù)器元數(shù)據(jù)合并;以及 用標(biāo)識(shí)所述第一端點(diǎn)的位置來(lái)更新所述團(tuán)塊查找服務(wù);以及 團(tuán)塊高速緩存服務(wù),其被配置成接受高速緩存所述團(tuán)塊的一部分的請(qǐng)求; 從所述第一端點(diǎn)檢索所述團(tuán)塊的所述部分;使用與所述團(tuán)塊高速緩存服務(wù)相關(guān)聯(lián)的存儲(chǔ)來(lái)存儲(chǔ)所述團(tuán)塊的所述 部分;以及用標(biāo)識(shí)所述團(tuán)塊高速緩存服務(wù)的第二位置來(lái)更新所述團(tuán)塊查找服務(wù)。
全文摘要
公開(kāi)了用于使用集中和分散同步系統(tǒng)和通信拓?fù)涞母髟貋?lái)在端點(diǎn)之間同步數(shù)據(jù)的系統(tǒng)和方法。這些系統(tǒng)和方法在某些情況下可與集中端點(diǎn)同步數(shù)據(jù)的某一子集,而數(shù)據(jù)的另一子集以分散方式直接與其它端點(diǎn)同步。這些系統(tǒng)和方法可包括各種協(xié)作功能以輔助端點(diǎn)之間的數(shù)據(jù)同步。
文檔編號(hào)G06F15/16GK101689164SQ200880021302
公開(kāi)日2010年3月31日 申請(qǐng)日期2008年6月20日 優(yōu)先權(quán)日2007年6月22日
發(fā)明者A·J·沙加, D·R·里德, G·P·莫羅米薩托, J·E·奧奇, M·S·韋納爾, M·安納馬萊, R·E·奧奇, R·Y-S·鄭, V·D·費(fèi)奧多羅夫 申請(qǐng)人:微軟公司