專利名稱:同步結(jié)構(gòu)化網(wǎng)站內(nèi)容的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請涉及同步結(jié)構(gòu)化網(wǎng)站內(nèi)容的技術(shù)。
背景技術(shù):
網(wǎng)絡(luò)軟件應(yīng)用程序通常維護(hù)用于應(yīng)用程序和/或用戶數(shù)據(jù)的集中式網(wǎng)絡(luò)數(shù)據(jù)庫。 在某些情況下,設(shè)備可以從網(wǎng)絡(luò)數(shù)據(jù)庫下載或復(fù)制中央數(shù)據(jù)庫的子集,然后從網(wǎng)絡(luò)斷開連 接。例如,無線手持式設(shè)備可以從諸如網(wǎng)站等中央數(shù)據(jù)庫下載日歷和聯(lián)系人信息。如果網(wǎng) 絡(luò)數(shù)據(jù)庫所維護(hù)的信息被修改,或者復(fù)制的信息子集本身被修改,則可能需要同步事件來 更新兩個(gè)數(shù)據(jù)位置中的這些改變。例如,假定用戶向日歷應(yīng)用程序添加了新約會(huì)。當(dāng)手持 式設(shè)備建立了與網(wǎng)絡(luò)數(shù)據(jù)庫的連接時(shí),可能需要更新網(wǎng)絡(luò)數(shù)據(jù)庫所存儲(chǔ)的日歷信息以反映 來自手持式設(shè)備的修改的數(shù)據(jù),反之亦然。然而,隨著應(yīng)用程序數(shù)據(jù)數(shù)量以及試圖與網(wǎng)絡(luò)數(shù) 據(jù)庫同步的設(shè)備的數(shù)目的增加,同步事件可能變得需要越來越多的時(shí)間和帶寬。因此,可能 需要改進(jìn)的同步技術(shù)來解決這些和其它問題。
發(fā)明內(nèi)容
提供本概述以便以簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概念。 本概述并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要 求保護(hù)的主題的范圍。各實(shí)施例一般涉及用于在物理或邏輯實(shí)體之間同步結(jié)構(gòu)化內(nèi)容的技術(shù)。更具體而 言,各實(shí)施例涉及客戶機(jī)和服務(wù)器之間的同步技術(shù)。例如,在某些實(shí)施例中,可在同步操作 之前標(biāo)識(shí)在服務(wù)器和客戶機(jī)之間共享的某些結(jié)構(gòu)化內(nèi)容類型。一旦被標(biāo)識(shí),然后可同步對 應(yīng)于該結(jié)構(gòu)化內(nèi)容類型的結(jié)構(gòu)化內(nèi)容。以此方式,同步可以集中于如由結(jié)構(gòu)化內(nèi)容類型所 標(biāo)識(shí)的共享的結(jié)構(gòu)化內(nèi)容,而非客戶機(jī)和/或服務(wù)器存儲(chǔ)的全部數(shù)據(jù)集。因此,可減少同步 時(shí)間和資源,由此對于用戶增強(qiáng)總體設(shè)備操作和網(wǎng)絡(luò)服務(wù)。在一個(gè)實(shí)施例中,客戶機(jī)可以執(zhí)行發(fā)現(xiàn)或標(biāo)識(shí)操作。例如,服務(wù)器可以接收對服務(wù) 器內(nèi)容列表的請求。服務(wù)器可以檢索并發(fā)送具有表示服務(wù)器所支持的結(jié)構(gòu)化內(nèi)容類型的結(jié) 構(gòu)化內(nèi)容值的服務(wù)器內(nèi)容列表??蛻魴C(jī)可以接收該服務(wù)器內(nèi)容列表,并將該服務(wù)器內(nèi)容列 表與具有表示客戶機(jī)所支持的結(jié)構(gòu)化內(nèi)容類型的結(jié)構(gòu)化內(nèi)容值的客戶機(jī)內(nèi)容列表進(jìn)行比 較??蛻魴C(jī)可以發(fā)送同步請求和/或共享內(nèi)容列表以同步服務(wù)器和客戶機(jī)所支持的結(jié)構(gòu)化 內(nèi)容類型。服務(wù)器可接收同步請求和/或共享內(nèi)容列表,并相應(yīng)地執(zhí)行同步操作。在一個(gè)實(shí)施例中,服務(wù)器可以執(zhí)行發(fā)現(xiàn)或標(biāo)識(shí)操作。例如,服務(wù)器可以接收客戶機(jī) 內(nèi)容列表。服務(wù)器可以檢索服務(wù)器內(nèi)容列表,并比較兩個(gè)內(nèi)容列表。服務(wù)器可以根據(jù)比較
4生成具有表示客戶機(jī)和服務(wù)器所支持的結(jié)構(gòu)化內(nèi)容類型的結(jié)構(gòu)化內(nèi)容值的共享內(nèi)容列表。 服務(wù)器可以將該共享內(nèi)容列表發(fā)送給客戶機(jī)。客戶機(jī)可以接收該共享內(nèi)容列表,并發(fā)送根 據(jù)該共享內(nèi)容列表來同步結(jié)構(gòu)化內(nèi)容類型的同步請求。服務(wù)器可以接收該同步請求,并根 據(jù)同步請求來執(zhí)行同步操作。對其它實(shí)施例也予以描述并主張權(quán)利。
圖1示出網(wǎng)絡(luò)的示例性實(shí)施例。圖2示出一邏輯流程的示例性實(shí)施例。圖3示出第一消息流的示例性實(shí)施例。圖4示出第二消息流的示例性實(shí)施例。
具體實(shí)施例方式圖1示出網(wǎng)絡(luò)的一個(gè)示例性實(shí)施例。圖1示出網(wǎng)絡(luò)100的框圖。網(wǎng)絡(luò)100可以表 示適用于實(shí)現(xiàn)各種實(shí)施例的通用網(wǎng)絡(luò)體系結(jié)構(gòu)。網(wǎng)絡(luò)100可以包括多個(gè)元素。元素可以包 括被安排來執(zhí)行特定操作的任何物理或邏輯結(jié)構(gòu)。視給定的一組設(shè)計(jì)參數(shù)或性能約束的需 要,每一元素可被實(shí)現(xiàn)為硬件、軟件、或其任意組合。硬件元素的示例可以包括處理器、微處 理器、電路、電路元素(例如,晶體管、電阻器、電容器、電感器等)、集成電路、專用集成電路 (ASIC)、可編程邏輯器件(PLD)、數(shù)字信號處理器(DSP)、現(xiàn)場可編程門陣列(FPGA)、存儲(chǔ)器 單元、邏輯門、寄存器、半導(dǎo)體設(shè)備、芯片、微芯片、芯片組等。軟件的示例可以包括任何軟件 組件、程序、應(yīng)用軟件、計(jì)算機(jī)程序、應(yīng)用程序、系統(tǒng)程序、機(jī)器程序、操作系統(tǒng)軟件、中間件、 固件、軟件模塊、例程、子例程、函數(shù)、方法、接口、軟件接口、應(yīng)用程序接口(API)、指令集、計(jì) 算代碼、計(jì)算機(jī)代碼、代碼段、計(jì)算機(jī)代碼段、文字、值、符號、或其任意組合。雖然圖1中示 出的網(wǎng)絡(luò)100在特定拓?fù)渲芯哂杏邢迶?shù)量的元素,但可以理解,網(wǎng)絡(luò)100視給定實(shí)現(xiàn)所需在 另選拓?fù)渲锌梢园ǜ嗷蚋僭?。各?shí)施例在該上下文中不受限制。例如,如圖1所示,網(wǎng)絡(luò)100可以包括各種元素,如計(jì)算陣列140、服務(wù)器150、網(wǎng) 絡(luò)160、負(fù)載均衡器170、和客戶機(jī)設(shè)備180-1-s。例如,在一實(shí)施例中,服務(wù)器150可以被 實(shí)現(xiàn)為web服務(wù)器。web服務(wù)器可以包括能夠接受來自客戶機(jī)設(shè)備(例如,客戶機(jī)180-1-s 和/或計(jì)算設(shè)備122-1-n)的超文本傳輸協(xié)議(HTTP)請求以提供網(wǎng)頁的計(jì)算設(shè)備。網(wǎng)頁 通常是使用諸如超文本標(biāo)記語言(HTML)、可擴(kuò)展標(biāo)記語言(XML)、可擴(kuò)展超文本標(biāo)記語言 (XHTML)、MICROSOFT WORD 標(biāo)記語言(WordML)等某種形式的標(biāo)記語言生成的文檔。網(wǎng) 絡(luò)160可以包括使用諸如傳輸控制協(xié)議和網(wǎng)際協(xié)議(TCP/IP)等一種或多種因特網(wǎng)協(xié)議的 分組網(wǎng)絡(luò)。負(fù)載平衡器170可以包括以計(jì)算資源被以高效的方式使用的方式向一組聯(lián)網(wǎng)的 計(jì)算機(jī)服務(wù)器(例如,計(jì)算陣列140)分派工作負(fù)載的設(shè)備。負(fù)載平衡器170可以使用例如 計(jì)算機(jī)、服務(wù)器、虛擬服務(wù)器、網(wǎng)絡(luò)設(shè)備等來實(shí)現(xiàn)。在各實(shí)施例中,網(wǎng)絡(luò)100可包括各種計(jì)算設(shè)備。例如,在各實(shí)施例中,計(jì)算陣列 140可以包括多個(gè)計(jì)算設(shè)備122-1-n。類似地,客戶機(jī)設(shè)備180-1-s也可被實(shí)現(xiàn)為各種類型 的計(jì)算設(shè)備。計(jì)算設(shè)備的示例可包括,但不一定限于,計(jì)算機(jī)、計(jì)算機(jī)系統(tǒng)、計(jì)算機(jī)子系統(tǒng)、 工作站、終端、服務(wù)器、web服務(wù)器、虛擬服務(wù)器、個(gè)人計(jì)算機(jī)(PC)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算 機(jī)、超膝上型計(jì)算機(jī)、便攜式計(jì)算機(jī)、手持式計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、移動(dòng)計(jì)算設(shè)備、蜂窩電話、組合蜂窩電話/PDA、數(shù)字視頻設(shè)備(例如,數(shù)碼相機(jī)、視頻攝像機(jī)、或攝像放像一體 機(jī))、數(shù)字音頻設(shè)備(例如,MP3播放器)、單向?qū)ず魴C(jī)、雙向?qū)ず魴C(jī)、上述示例中任一個(gè)的虛 擬實(shí)例化、以及任何其它電子、機(jī)電或電氣設(shè)備。各實(shí)施例在該上下文中不受限制。例如,在一實(shí)施例中,計(jì)算陣列140可被實(shí)現(xiàn)為服務(wù)器場,其中計(jì)算設(shè)備122-1-n 的每一個(gè)都表示服務(wù)器、虛擬服務(wù)器、虛擬機(jī)、單板計(jì)算機(jī)(SBC)、服務(wù)器刀片、web服務(wù)器 等。服務(wù)器場一般是通常由公司維護(hù)以實(shí)現(xiàn)超出一個(gè)機(jī)器的能力的服務(wù)器需求的計(jì)算機(jī)服 務(wù)器的集合。通常,服務(wù)器場將主服務(wù)器和后備服務(wù)器兩者同時(shí)分配給單個(gè)任務(wù),以便在主 服務(wù)器發(fā)生故障的情況下,后備服務(wù)器將接管主服務(wù)器的功能。例如,服務(wù)器場通常被用來 提供web主存服務(wù)。web主存服務(wù)是向個(gè)人和組織提供在線系統(tǒng)以供存儲(chǔ)信息、圖像、視頻、 音頻、文本、動(dòng)畫、電影、圖片或可經(jīng)由萬維網(wǎng)(WWW或“web”)訪問的任何其它形式的web內(nèi) 容的一類因特網(wǎng)主存服務(wù)。web主機(jī)是在其擁有的服務(wù)器上提供空間以供其客戶機(jī)使用以 及提供因特網(wǎng)連接的公司,通常位于數(shù)據(jù)中心中。web主機(jī)還可以為其不擁有的、位于其數(shù) 據(jù)中心中的服務(wù)器提供數(shù)據(jù)中心空間和到因特網(wǎng)的連接。圖1還示出計(jì)算設(shè)備122-1的更詳細(xì)的框圖。計(jì)算設(shè)備122-1可以表示任何計(jì)算 設(shè)備122-1-n。此外,計(jì)算設(shè)備122-1也可以表示任何客戶機(jī)設(shè)備180-1-s。在其最基本的 配置106中,計(jì)算設(shè)備122-1通常包括至少一個(gè)處理單元102和存儲(chǔ)器104。存儲(chǔ)器104 可以使用機(jī)器可讀的或計(jì)算機(jī)可讀的、能夠存儲(chǔ)數(shù)據(jù)的任何介質(zhì)來實(shí)現(xiàn),包括易失性和非 易失性存儲(chǔ)器。例如,存儲(chǔ)器104可以包括只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、動(dòng)態(tài) RAM (DRAM)、雙數(shù)據(jù)率 DRAM (DDRAM)、同步 DRAM (SDRAM)、靜態(tài) RAM (SRAM)、可編程 ROM (PROM)、 可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、閃存、諸如鐵電聚合物存儲(chǔ)器等 聚合物存儲(chǔ)器、奧氏存儲(chǔ)器、相變或鐵電存儲(chǔ)器、硅-氧化物-氮化物-氧化物-硅(SONOS) 存儲(chǔ)器、磁卡或光卡、或適于存儲(chǔ)信息的任何其它類型的介質(zhì)。如圖1所示,存儲(chǔ)器104可 以存儲(chǔ)各種軟件程序,如一個(gè)或多個(gè)應(yīng)用程序118、服務(wù)器同步模塊120和附帶數(shù)據(jù)。計(jì)算設(shè)備122-1還可以具有在配置106之外的另外的特征和/或功能。例如,計(jì) 算設(shè)備122-1可以包括可移動(dòng)存儲(chǔ)108和不可移動(dòng)存儲(chǔ)110,這些存儲(chǔ)還可以包括如前所述 的各種類型的機(jī)器可讀的或計(jì)算機(jī)可讀的介質(zhì)。計(jì)算設(shè)備122-1還可以具有一個(gè)或多個(gè)輸 入設(shè)備114,如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備等。諸如顯示器、揚(yáng)聲器、打印機(jī) 等一個(gè)或多個(gè)輸出設(shè)備116也可以被包括在計(jì)算設(shè)備122-1中。計(jì)算設(shè)備122-1還可以包括允許計(jì)算設(shè)備122-1與其它設(shè)備進(jìn)行通信的一個(gè)或多 個(gè)通信連接112。通信連接112可以包括各種類型的標(biāo)準(zhǔn)通信元件,如一個(gè)或多個(gè)通信接 口、網(wǎng)絡(luò)接口、網(wǎng)絡(luò)接口卡(NIC)、無線電、無線發(fā)射機(jī)/接收機(jī)(收發(fā)機(jī))、有線和/或無 線通信介質(zhì)、物理連接器等。通信介質(zhì)通常以諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號 來體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并包括任意信息傳送介質(zhì)。術(shù)語 “已調(diào)制數(shù)據(jù)信號”指的是其一個(gè)或多個(gè)特征以在信號中編碼信息的方式被設(shè)定或更改的 信號。作為示例而非局限,通信介質(zhì)包括有線通信介質(zhì)和無線通信介質(zhì)。有線通信介質(zhì)的 示例可以包括導(dǎo)線、電纜、金屬線、印刷電路板(PCB)、背板、交換光纖、半導(dǎo)體材料、雙絞線、 同軸電纜、光纖、經(jīng)傳播的信號等。無線通信介質(zhì)的示例可以包括聲學(xué)、射頻(RF)頻譜、紅 外和其它無線介質(zhì)。此處使用的術(shù)語機(jī)器可讀介質(zhì)和計(jì)算機(jī)可讀介質(zhì)旨在包括存儲(chǔ)介質(zhì)和 通信介質(zhì)兩者。
計(jì)算設(shè)備122-1-n的每一個(gè)都可以包括多個(gè)數(shù)據(jù)庫。如參考計(jì)算設(shè)備122_1詳細(xì) 示出的,計(jì)算設(shè)備122-1可以被耦合到數(shù)據(jù)庫124、126。每一數(shù)據(jù)庫可被安排成存儲(chǔ)用于計(jì) 算設(shè)備122-1、應(yīng)用程序118、服務(wù)器同步模塊120等的各種類型的數(shù)據(jù)。例如,在一個(gè)實(shí)施 例中,數(shù)據(jù)庫124可以存儲(chǔ)客戶機(jī)內(nèi)容列表130、服務(wù)器內(nèi)容列表132、共享內(nèi)容列表134等 等??蛻魴C(jī)內(nèi)容列表130可以包括表示諸如一個(gè)或多個(gè)客戶機(jī)180-1-s等客戶機(jī)所支持的 結(jié)構(gòu)化內(nèi)容類型的結(jié)構(gòu)化內(nèi)容值。服務(wù)器內(nèi)容列表132可以包括表示諸如一個(gè)或多個(gè)服務(wù) 器122-1-n等服務(wù)器所支持的結(jié)構(gòu)化內(nèi)容類型的結(jié)構(gòu)化內(nèi)容值。共享內(nèi)容列表134可以包 括表示一個(gè)或多個(gè)客戶機(jī)180-1-s和一個(gè)或多個(gè)服務(wù)器122-1-n共享的結(jié)構(gòu)化內(nèi)容類型的 結(jié)構(gòu)化內(nèi)容值??梢杂糜?jì)算設(shè)備122-1來實(shí)現(xiàn)其它類型的數(shù)據(jù)和數(shù)據(jù)庫,且這些實(shí)施例在 該上下文中不受限制。在一般的操作中,網(wǎng)絡(luò)100可以幫助由計(jì)算陣列140的一個(gè)或多個(gè)計(jì)算設(shè)備 122-1-n存儲(chǔ)或執(zhí)行的一個(gè)或多個(gè)應(yīng)用程序與由一個(gè)或多個(gè)客戶機(jī)設(shè)備1801-s存儲(chǔ)或執(zhí) 行的一個(gè)或多個(gè)應(yīng)用程序之間的同步操作。假定計(jì)算設(shè)備122-1-n的每一個(gè)都實(shí)現(xiàn)一個(gè)或 多個(gè)應(yīng)用程序118,如基于服務(wù)器的web應(yīng)用程序?;诜?wù)器的web應(yīng)用程序的示例可 包括MICROSOFT 公司生產(chǎn)的WINDOWS SHAREPOINT SERVICES (WSS) 2. 0 版、 3.0版以及各種變體(此處統(tǒng)稱為“WSS應(yīng)用程序”或“SiarePoint應(yīng)用程序”)。WSS 3.0 版是例如向諸如客戶機(jī)180-1-s等各客戶機(jī)提供基本團(tuán)隊(duì)服務(wù)、門戶網(wǎng)站和內(nèi)聯(lián)網(wǎng)功能的 集成的應(yīng)用程序套件。用于WSS 3.0版的用戶數(shù)據(jù)或內(nèi)容數(shù)據(jù)可由數(shù)據(jù)庫124、1沈存儲(chǔ)。 此外,一個(gè)或多個(gè)計(jì)算設(shè)備122-1-n可以實(shí)現(xiàn)構(gòu)建在WSS 3. 0版之上的第三方應(yīng)用程序,例 如,諸如 SharePoint 門戶服務(wù)器(SPS) 2003 或 Off ice SharePoint 服務(wù)(OSS) 2006。雖然 作為示例參考WSS應(yīng)用程序和附帶的第三方程序描述了一些實(shí)施例,但可以理解,可以使 用此處描述的同步技術(shù)來同步由單個(gè)或多個(gè)計(jì)算設(shè)備執(zhí)行的任何應(yīng)用程序。各實(shí)施例在該 上下文中不受限制。WSS 3.0版提供了供多個(gè)用戶以高效的方式共享數(shù)據(jù)的平臺(tái)。例如,用戶可以被 組織成團(tuán)隊(duì),每一團(tuán)隊(duì)具有共享日歷、聯(lián)系人列表、任務(wù)列表、電子郵件、討論板、文檔等等。 為了增加這些共享數(shù)據(jù)的可用性,網(wǎng)絡(luò)100的各元素可以被組織為間歇同步數(shù)據(jù)庫系統(tǒng) (ISDB)。ISDB例如允許各種物理或邏輯客戶機(jī)實(shí)體從數(shù)據(jù)庫124、1 將信息部分下載或復(fù) 制到諸如客戶機(jī)設(shè)備180-1等客戶機(jī)設(shè)備。假定客戶機(jī)設(shè)備180-1包括諸如微軟公司生產(chǎn) 的MICROSOFT OUTLOOK 等應(yīng)用程序。Microsoft Outlook可以從如使用WSS 3. 0版維 護(hù)的服務(wù)器122-1導(dǎo)入共享數(shù)據(jù)。因此,用戶可具有諸如手持式計(jì)算設(shè)備等執(zhí)行Microsoft Outlook的本地版本的便攜式設(shè)備,并從服務(wù)器122-1下載共享數(shù)據(jù)的各部分。客戶機(jī)設(shè) 備180-1可以在沒有到服務(wù)器122-1的恒定連接(例如,在線)的情況下修改本地復(fù)制的 數(shù)據(jù),諸如通過添加約會(huì)、刪除聯(lián)系人、修改任務(wù)、生成筆記、更新項(xiàng)目時(shí)間線等來修改。同 時(shí),其它用戶也可修改來自數(shù)據(jù)庫124、1沈的本地復(fù)制的數(shù)據(jù)。為了維持?jǐn)?shù)據(jù)完整性,客戶 機(jī)設(shè)備180-1可能需要周期性地或間歇地與服務(wù)器122-1同步以反映對在兩個(gè)設(shè)備之間共 享的任何結(jié)構(gòu)化內(nèi)容或數(shù)據(jù)集的改變。為了執(zhí)行同步操作,每一客戶機(jī)設(shè)備180-1-s可以包括客戶機(jī)同步模塊182,并且 每一服務(wù)器122-1-n可以包括服務(wù)器同步模塊120。同步模塊120、182可以具有變化的集成 水平以允許服務(wù)器122和客戶機(jī)設(shè)備180分別同步兩個(gè)設(shè)備支持的結(jié)構(gòu)化內(nèi)容或數(shù)據(jù)集。
7例如,在一個(gè)實(shí)施例中,客戶機(jī)設(shè)備180可以包括由服務(wù)器122執(zhí)行的WSS應(yīng)用程序在同一 層集成的Microsoft Outlook客戶機(jī)應(yīng)用程序。這一集成可以包括在Microsoft Outlook 和WSS應(yīng)用程序之間同步數(shù)據(jù)。例如,WSS應(yīng)用程序可包括存儲(chǔ)在WSS應(yīng)用程序中的共享 日歷、聯(lián)系人、任務(wù)、電子郵件以及討論板。各實(shí)施例可定義用戶模型、驅(qū)動(dòng)程序、規(guī)范、數(shù)據(jù) 模式以及同步基礎(chǔ)結(jié)構(gòu)以供Microsoft Outlook的用戶與WSS應(yīng)用程序數(shù)據(jù)交互。盡管僅 作為示例,某些實(shí)施例可被描述為在Microsoft Outlook和WSS應(yīng)用程序之間同步結(jié)構(gòu)化 內(nèi)容,但可以理解,結(jié)構(gòu)化內(nèi)容的同步可以視給定一組設(shè)計(jì)參數(shù)和性能約束對任何應(yīng)用程 序和計(jì)算平臺(tái)實(shí)現(xiàn)。各實(shí)施例在該上下文中不受限制。當(dāng)試圖同步諸如服務(wù)器122-1和客戶機(jī)設(shè)備180-1等兩個(gè)或多個(gè)應(yīng)用程序和/或 設(shè)備時(shí)有若干設(shè)計(jì)考慮事項(xiàng)。例如,為將網(wǎng)站用作中央數(shù)據(jù)存儲(chǔ)庫,數(shù)據(jù)應(yīng)被快速同步到 其它應(yīng)用程序而同時(shí)在網(wǎng)站服務(wù)器上生成最小負(fù)載。此外,用戶通常僅對總體數(shù)據(jù)中的小 范圍感興趣,且因此用戶需要可被容易發(fā)現(xiàn)的位置來開始對于感興趣的相關(guān)數(shù)據(jù)的同步操 作。另外,不同同步客戶機(jī)只能與來自服務(wù)器的特定類型的數(shù)據(jù)同步。類似地,某些同步客 戶機(jī)可以支持網(wǎng)站服務(wù)器不支持的數(shù)據(jù)類型或值,而網(wǎng)站服務(wù)器可以支持同步客戶機(jī)不支 持的數(shù)據(jù)類型或值。在另一示例中,網(wǎng)站和同步客戶機(jī)可以用不同的語言來運(yùn)行。在又一 示例中,多個(gè)同步客戶機(jī)可能在不連接到服務(wù)器的同時(shí)更新相同的數(shù)據(jù),因此需要采取措 施來確保數(shù)據(jù)在同步事件期間不丟失。在再一示例中,用戶需要與在專用網(wǎng)絡(luò)和諸如因特 網(wǎng)等公共網(wǎng)絡(luò)兩者內(nèi)的網(wǎng)站同步。在還有一個(gè)示例中,同步來自服務(wù)器的內(nèi)容的客戶機(jī)不 能準(zhǔn)確地預(yù)測內(nèi)容會(huì)以什么頻率改變,導(dǎo)致服務(wù)器上的額外負(fù)載或同步的客戶機(jī)上的陳舊 內(nèi)容。最后,服務(wù)器管理員希望能夠控制通過同步客戶機(jī)而在服務(wù)器上生成的負(fù)載。為了解決這些和其它問題,服務(wù)器122和/或客戶機(jī)設(shè)備180可以利用結(jié)構(gòu)化 內(nèi)容來實(shí)現(xiàn)改進(jìn)的同步技術(shù)。結(jié)構(gòu)化內(nèi)容可以涉及具有諸如寬度、長度、位大小、字節(jié)大 小、句法、字段、值、代碼、標(biāo)志等一個(gè)或多個(gè)定義的結(jié)構(gòu)參數(shù)的任何類型的媒體內(nèi)容(例 如,文本、音頻、視頻、圖像、圖片、動(dòng)畫、符號、字符、數(shù)字、圖標(biāo)等等)。結(jié)構(gòu)化內(nèi)容可包 括支持諸如 MICR0S0FT0UTL00K、MICROSOFT ACCESS 、MICROSOFT FRONTPAGE 、 MICROSOFT ONENOTE 、MICROSOFT POWERPOINT 、MI CROSOFTff ORD , MICROSOFT VISIO 、WSS應(yīng)用程序、SPS應(yīng)用程序等任意數(shù)目的應(yīng)用程序的應(yīng)用程序數(shù)據(jù)和 /或用戶數(shù)據(jù)。例如,在一個(gè)實(shí)施例中,結(jié)構(gòu)化內(nèi)容可包括用于Microsoft Outlook的應(yīng)用 程序數(shù)據(jù)和/或用戶數(shù)據(jù),諸如來自日歷列表、任務(wù)列表、聯(lián)系人列表、筆記或備忘錄列表、 郵件列表等的一個(gè)或多個(gè)項(xiàng)。服務(wù)器同步模塊120和客戶機(jī)同步模塊182可被集成以標(biāo)識(shí) 在服務(wù)器122和客戶機(jī)180之間共享的結(jié)構(gòu)化內(nèi)容類型。對應(yīng)于在服務(wù)器122和客戶機(jī) 180之間共享的結(jié)構(gòu)化內(nèi)容類型的結(jié)構(gòu)化內(nèi)容信息然后可被同步。使用結(jié)構(gòu)化內(nèi)容來執(zhí)行同步操作可以提供優(yōu)于常規(guī)的同步技術(shù)的若干優(yōu)點(diǎn)。例 如,在各實(shí)施例中,設(shè)備之間的發(fā)起同步操作可以用多種方式來改進(jìn)。例如,可以為同步客 戶機(jī)生成網(wǎng)絡(luò)地址和/或超鏈接以發(fā)起基于服務(wù)器和/或客戶機(jī)支持的特定內(nèi)容類型的同 步操作。可生成不同超鏈接以發(fā)起對不同內(nèi)容范圍的同步操作。在另一示例中,同步操作可 以基于所同步的內(nèi)容的數(shù)量(例如,僅同步標(biāo)題對比同步整個(gè)內(nèi)容集)來不同地發(fā)起。在 又一示例中,可使用協(xié)議處理程序來從web瀏覽器發(fā)起同步操作。一旦發(fā)起了同步操作,各實(shí)施例可改進(jìn)內(nèi)容實(shí)際如何被同步。例如,可使用服務(wù)器側(cè)改變?nèi)罩緛韮H同步改變的內(nèi)容??蓙砘貍鬟f令牌以僅獲得自從前一同步事件以來做出的 新改變。在另一示例中,同步操作可以僅支持結(jié)構(gòu)化模式中個(gè)別地請求或定義的字段。在 又一示例中,同步操作可以支持諸如在文件夾分層結(jié)構(gòu)中創(chuàng)建的不同分層范圍。在再一示 例中,可以生成同步視圖以顯示由各字段值確定的經(jīng)過濾的內(nèi)容集。在還有一示例中,某些 實(shí)施例可以支持使用分頁技術(shù)對非常大的數(shù)據(jù)集的同步。在另一示例中,某些實(shí)施例可以 使用版本歷史來執(zhí)行沖突檢測和自動(dòng)解決。在又一示例中,某些實(shí)施例可以支持使用“E標(biāo) 簽”來進(jìn)行沖突解決的附件同步。在另一示例中,某些實(shí)施例可使用特性包(property bag) 支持同步網(wǎng)站和客戶機(jī)之間的模式失配。在又一示例中,某些實(shí)施例可使用字段值映射支 持服務(wù)器/客戶機(jī)語言失配。在再一示例中,某些實(shí)施例可使用讀/發(fā)送/刷新模式支持 讀取和更新。最后,某些實(shí)施例可向客戶機(jī)提供其可同步來訪問來自內(nèi)部專用網(wǎng)絡(luò)或外部 公共網(wǎng)絡(luò)的網(wǎng)站的替換統(tǒng)一資源定位符(URL)。為進(jìn)一步改進(jìn)同步操作,各實(shí)施例可改進(jìn)關(guān)于何時(shí)將客戶機(jī)設(shè)備與網(wǎng)站同步的定 時(shí)問題。例如,某些實(shí)施例可以通過向同步客戶機(jī)提供建議的同步間隔(例如,每隔P分鐘 的客戶機(jī)同步)來管理客戶機(jī)負(fù)載和/或服務(wù)器負(fù)載。建議的同步間隔可以表示最小同步 間隔、最大同步間隔或兩者之間的某一值。建議的同步間隔可以基于存儲(chǔ)在服務(wù)器上的歷 史內(nèi)容改變數(shù)據(jù)(例如,網(wǎng)格同步),或基于來自客戶機(jī)的先前的同步請求的結(jié)果(例如,指 數(shù)型衰減)。為了與服務(wù)器122同步結(jié)構(gòu)化內(nèi)容,客戶機(jī)設(shè)備180可使用SiarePoint. StssyncHandler ActiveX控件。該控件被安裝在具有Microsoft Outlook的客戶機(jī)設(shè)備 180上,并指示客戶機(jī)設(shè)備180上是否安裝了 Microsoft Outlook且能夠同步特定類型的列 表。例如,在WSS 3.0板中,可被同步的列表的類型包括日歷列表、聯(lián)系人列表、文檔列表、 任務(wù)列表、討論列表以及其它列表。以上各實(shí)施例的操作可以參考以下附圖和所附示例來進(jìn)一步描述。一些附圖可以 包括邏輯流程。雖然此處呈現(xiàn)的這些附圖可以包括特定的邏輯流程,但可以理解,邏輯流程 僅僅提供如何實(shí)現(xiàn)此處描述的一般功能的示例。此外,除非另外指明,否則給出的邏輯流程 不必要以所呈現(xiàn)的順序執(zhí)行。另外,給出的邏輯流程可由硬件元素、由處理器執(zhí)行的軟件元 素、或其任意組合來實(shí)現(xiàn)。各實(shí)施例在該上下文中不受限制。圖2示出邏輯流程的一個(gè)實(shí)施例。圖2示出邏輯流程200。邏輯流程200可以表 示此處描述的諸如網(wǎng)絡(luò)100、計(jì)算設(shè)備112-1-n和/或客戶機(jī)設(shè)備180-1-S等一個(gè)或多個(gè)實(shí) 施例所執(zhí)行的操作。例如,在某些實(shí)施例中,可在框202處在同步操作之前標(biāo)識(shí)在服務(wù)器和 客戶機(jī)之間共享的某些結(jié)構(gòu)化內(nèi)容類型。一旦被標(biāo)識(shí),然后可在框204處同步對應(yīng)于該結(jié) 構(gòu)化內(nèi)容類型的結(jié)構(gòu)化內(nèi)容。以此方式,同步可以集中于如由結(jié)構(gòu)化內(nèi)容類型所標(biāo)識(shí)的共 享的結(jié)構(gòu)化內(nèi)容,而非客戶機(jī)和/或服務(wù)器存儲(chǔ)的全部數(shù)據(jù)集。因此,可減少同步時(shí)間和資 源,由此對于用戶增強(qiáng)總體設(shè)備操作和網(wǎng)絡(luò)服務(wù)。圖3示出第一消息流的一個(gè)實(shí)施例。圖3示出其中客戶機(jī)執(zhí)行標(biāo)識(shí)操作的消息流 300。如圖3所示,客戶機(jī)設(shè)備180可向服務(wù)器122發(fā)送消息302,其中消息302包括對服務(wù) 器內(nèi)容列表的請求。服務(wù)器122可以接收消息302,并從數(shù)據(jù)庫124中檢索服務(wù)器內(nèi)容列 表132。服務(wù)器122可以向客戶機(jī)設(shè)備180發(fā)送消息304,其中消息304包括具有表示服務(wù) 器122所支持的結(jié)構(gòu)化內(nèi)容類型的結(jié)構(gòu)化內(nèi)容值的服務(wù)器內(nèi)容列表132??蛻魴C(jī)設(shè)備180可接收服務(wù)器內(nèi)容列表132,并檢索客戶機(jī)內(nèi)容列表130??蛻魴C(jī)內(nèi)容列表130可包括表示 客戶機(jī)所支持的結(jié)構(gòu)化內(nèi)容類型的結(jié)構(gòu)化內(nèi)容值。客戶機(jī)設(shè)備180可以將服務(wù)器內(nèi)容列表 132與客戶機(jī)內(nèi)容列表130進(jìn)行比較以找出匹配的內(nèi)容類型。客戶機(jī)設(shè)備180可以生成共 享內(nèi)容列表134,并向服務(wù)器122發(fā)送消息306。消息306可以包括同步請求和/或共享內(nèi) 容列表134。服務(wù)器122可以接收消息306,并且服務(wù)器122和客戶機(jī)設(shè)備180可以開始同 步操作以如箭頭308所示地同步服務(wù)器122和客戶機(jī)180所支持的結(jié)構(gòu)化內(nèi)容類型。圖4示出第二消息流的一個(gè)示例性實(shí)施例。圖4示出其中服務(wù)器執(zhí)行標(biāo)識(shí)操作的 消息流400。如圖4所示,服務(wù)器122可以經(jīng)由消息402來接收客戶機(jī)內(nèi)容列表130。服務(wù) 器122可檢索服務(wù)器內(nèi)容列表132,并比較兩個(gè)內(nèi)容列表。服務(wù)器122可以根據(jù)比較生成具 有表示客戶機(jī)設(shè)備180和服務(wù)器122所支持的結(jié)構(gòu)化內(nèi)容類型的結(jié)構(gòu)化內(nèi)容值的共享內(nèi)容 列表134。服務(wù)器122可經(jīng)由消息404將共享內(nèi)容列表134發(fā)送給客戶機(jī)設(shè)備180??蛻?機(jī)設(shè)備180可以接收共享內(nèi)容列表134,并經(jīng)由消息406發(fā)送根據(jù)共享內(nèi)容列表134來同步 結(jié)構(gòu)化內(nèi)容類型的同步請求。服務(wù)器122可接收該同步請求,并且服務(wù)器122和客戶機(jī)設(shè) 備180可以如箭頭408所示地根據(jù)該同步請求來執(zhí)行同步操作。在各實(shí)施例中,設(shè)備之間的發(fā)起同步操作可以用多種方式來改進(jìn)。例如,可以為同 步客戶機(jī)生成網(wǎng)絡(luò)地址和/或超鏈接以基于服務(wù)器和/或客戶機(jī)支持的特定內(nèi)容類型來發(fā) 起同步操作??缮刹煌溄右园l(fā)起對不同內(nèi)容范圍的同步操作。在一個(gè)實(shí)施例中,服 務(wù)器同步模塊120可以生成一超鏈接以發(fā)送具有至少一個(gè)結(jié)構(gòu)化內(nèi)容類型的同步請求。結(jié) 果,用戶可用無縫的方式選擇性地與服務(wù)器122同步特定的結(jié)構(gòu)化內(nèi)容類型。在各實(shí)施例中,同步操作可以基于所同步的內(nèi)容數(shù)量來不同地發(fā)起。例如,在一個(gè) 實(shí)施例中,服務(wù)器同步模塊120可以確定要同步的結(jié)構(gòu)化內(nèi)容的數(shù)量。服務(wù)器同步模塊120 可以基于所確定的數(shù)量來設(shè)置同步參數(shù)。服務(wù)器122-1可以根據(jù)同步參數(shù)向客戶機(jī)180-1 發(fā)送同步信息。例如,假定結(jié)構(gòu)化內(nèi)容類型是電子郵件消息。如果所確定的數(shù)量是要在服 務(wù)器122-1和客戶機(jī)180-1之間同步的較大量電子郵件消息,則服務(wù)器122-1可以設(shè)置一 同步參數(shù)以指示最初只需同步電子郵件標(biāo)題而非整個(gè)電子郵件內(nèi)容。相反,如果所確定的 數(shù)量是較少量的電子郵件消息,則服務(wù)器122-1可以設(shè)置一同步參數(shù)以指示要與客戶機(jī) 180-1同步整個(gè)電子郵件內(nèi)容。在另一示例中,假定結(jié)構(gòu)化內(nèi)容類型是文檔。如果所確定 的數(shù)量是要在服務(wù)器122-1和客戶機(jī)180-1之間同步的大量文檔,則服務(wù)器122-1可以設(shè) 置一同步參數(shù)以指示最初只需同步每一文檔的特定部分而非每一文檔的全部正文。相反, 如果所確定的數(shù)量是較少量的文檔,則服務(wù)器122-1可以設(shè)置一同步參數(shù)以指示要與客戶 機(jī)180-1同步每一文檔的全部內(nèi)容。該同一技術(shù)也可通過檢查文檔的總大小來應(yīng)用,其中 較大的文檔每次僅發(fā)送一部分,而較小的文檔在一次交易中全部發(fā)送。這些僅是幾個(gè)示例, 并且可使用結(jié)構(gòu)化內(nèi)容類型的其它特征來設(shè)置同步參數(shù)。在各實(shí)施例中,可使用協(xié)議處理程序來從web瀏覽器發(fā)起同步操作。一旦標(biāo)識(shí)了 共享結(jié)構(gòu)化內(nèi)容類型,則客戶機(jī)180-1上的web瀏覽器可以提供一個(gè)或多個(gè)URL來如上所 述地發(fā)起同步操作。為此,客戶機(jī)同步模塊182可使用協(xié)議處理程序來向服務(wù)器122-1發(fā) 送不同的同步請求。一旦發(fā)起了同步操作,各實(shí)施例可改進(jìn)內(nèi)容實(shí)際如何被同步。例如,可使用服務(wù)器 側(cè)改變?nèi)罩緛韮H同步改變的內(nèi)容。例如,在一個(gè)實(shí)施例中,服務(wù)器同步模塊120可以接收同步特定結(jié)構(gòu)化內(nèi)容類型的同步請求。服務(wù)器同步模塊120可以使用改變?nèi)罩緛泶_定該結(jié)構(gòu) 化內(nèi)容類型所指示的結(jié)構(gòu)化內(nèi)容是否已被修改。服務(wù)器122-1可以基于該確定向客戶機(jī)發(fā) 送同步信息。對于讀/寫同步,Microsoft Outlook需要定義的技術(shù)來從WSS應(yīng)用程序同步改 變。這可使用改變?nèi)罩竞透綆У膚eb服務(wù)API來實(shí)現(xiàn)。例如,WSS 3.0版支持按虛擬服務(wù) 器、站點(diǎn)和列表的改變?nèi)罩尽_@將允許Microsoft Outlook能夠特別地輪詢增加的、編輯的、 刪除的、重命名的和移動(dòng)的項(xiàng)。另外,可以實(shí)現(xiàn)web服務(wù)來允許Microsoft Outlook執(zhí)行對 改變?nèi)罩卷?xiàng)的“成批”獲取。各實(shí)施例可使用版本歷史來確定結(jié)構(gòu)化內(nèi)容的多個(gè)版本是否已被獨(dú)立修改。某些 實(shí)施例可以使用版本歷史來執(zhí)行沖突檢測和自動(dòng)解決。版本歷史是用于在對等環(huán)境中自動(dòng) 解決一類特定同步?jīng)_突的機(jī)制。特別地,它可自動(dòng)解決因?qū)σ粋€(gè)項(xiàng)的一致的順序改變而引 起的沖突。作為示例,假定第一用戶將一個(gè)項(xiàng)同步到第一客戶機(jī)設(shè)備180-1,諸如在辦公室 使用的臺(tái)式計(jì)算機(jī)。第一用戶對該項(xiàng)做出一些改變,但是沒有將這些改變復(fù)制回服務(wù)器 122-1。第一用戶將第一客戶機(jī)設(shè)備180-1與諸如PDA等第二客戶機(jī)設(shè)備180-2同步,并離 開辦公室回家。當(dāng)?shù)谝挥脩舻郊視r(shí),該第一用戶將第二客戶機(jī)設(shè)備180-2與諸如家庭PC等 第三客戶機(jī)設(shè)備180-3同步。第一用戶對該項(xiàng)做出進(jìn)一步的改變,之后將其從第三客戶機(jī) 設(shè)備180-3同步到服務(wù)器122-1。第二天,第一用戶上班并將第一客戶機(jī)設(shè)備180-1與服務(wù) 器122-1同步。第一客戶機(jī)設(shè)備180-1試圖將其具有的更新的項(xiàng)發(fā)送給服務(wù)器122-1,但 是服務(wù)器122-1檢測到自從與第一客戶機(jī)設(shè)備180-1的前一次同步以來對該項(xiàng)有改變,因 此引發(fā)沖突。然而,該沖突并不是真正的沖突,因?yàn)轳v留在服務(wù)器122-1上的該項(xiàng)的更新的 版本在第一用戶將第三客戶機(jī)設(shè)備180-3與服務(wù)器122-1同步時(shí)已經(jīng)包括了在第一客戶機(jī) 180-1上做出的改變某些實(shí)施例可使用版本歷史來檢測此類情形并自動(dòng)解決該沖突。在以上情形中,項(xiàng)上的單個(gè)版本號可能不足以解決沖突。例如,如果第一用戶未從 第三客戶機(jī)設(shè)備180-3與服務(wù)器122-1同步將會(huì)如何。相反,假定第二用戶對該項(xiàng)做出了 不相關(guān)的改變。在這一情況下,的確存在沖突。單個(gè)版本號不足以區(qū)分這兩種情形。版本 歷史技術(shù)存儲(chǔ)了幫助解決這一問題的附加信息。特別地,可使用版本歷史技術(shù)來確定是否有一個(gè)項(xiàng)的多個(gè)版本(例如,版本A和版 本B),以及一個(gè)版本是否包括在另一版本中做出的改變(例如,版本B是否包括在版本A中 做出的改變)。在這一情況下,所述項(xiàng)的文本檢查被證明是困難且不準(zhǔn)確的。例如,考慮其 中版本B的確包括來自版本A的改變,然而版本B中的改變之一是移除在版本A中添加的 行的情形。可使用版本歷史技術(shù)來記錄作者列表以及對每一作者的遞增的改變號碼,該改變 號碼指示這些作者依次做了什么改變。這一情況下的“作者”是由全局用戶標(biāo)識(shí)符(⑶ID) 表示的計(jì)算機(jī)。版本歷史特性因此可包括候選GUID列表和改變號碼,如下{199A4AEA-A573-40CB-BB3C-7A66C0375104 1, 201B4AEA-A573-40CB-BB3C-7A66C 0375104 2,185D4AEA-A573-40CB-BB3C-7A66C0375104 :3}每次一特定計(jì)算設(shè)備編輯一給定項(xiàng),適當(dāng)?shù)耐侥K(例如,同步模塊120和/或 182)取上一個(gè)改變號碼,將其遞增一,然后將其寫在其⑶ID旁邊。通過比較每一版本的最高改變集,在版本A和版本B之間自動(dòng)解決了沖突?!白罡吒淖兗笨梢园ň哂凶罡咛柎a 的GUID和號碼的對。如果版本A的最高改變集被包括在版本B中,并且版本B的最高改變 集沒有被包括在版本A中,則版本B較新,并且解決沖突以使版本B為勝者。然而,如果版 本A的最高改變集未被包括在版本B中且版本B的最高改變集未被包括在版本A中,則版 本B不包括在版本A中做出的所有編輯。在這一情況下用戶將需要手動(dòng)解決沖突。繼續(xù)上面的示例,假定第一用戶將一項(xiàng)目向下同步到第一客戶機(jī)設(shè)備180-1。服務(wù) 器同步模塊120可以在數(shù)據(jù)庫124中維護(hù)版本歷史??蛻魴C(jī)同步模塊182也可在客戶機(jī)設(shè) 備180-1-s上維護(hù)版本歷史。此時(shí),該版本歷史可表現(xiàn)如下版本歷史{服務(wù)器_GUID 1}第一用戶然后在第一客戶機(jī)設(shè)備180-1上編輯該項(xiàng)目。該版本歷史現(xiàn)在可表現(xiàn)如 下版本歷史{服務(wù)器_GUID :1,工作_GUID :2}第一用戶將該項(xiàng)目同步到第二客戶機(jī)設(shè)備180-2,然后從第二客戶機(jī)設(shè)備180-2 同步到第三客戶機(jī)設(shè)備180-3。由于沒有對該項(xiàng)目的編輯,因此在版本歷史中沒有相應(yīng)的改 變。第一用戶在第三客戶機(jī)設(shè)備180-3上編輯該項(xiàng)目。該版本歷史被更新如下版本歷史{服務(wù)器_GUID :1,工作 _GUID :2,家_6^0 :3}第一用戶從第三客戶機(jī)設(shè)備180-3同步到服務(wù)器122-1。第一用戶第二天回去上班并將第一客戶機(jī)設(shè)備180-1與服務(wù)器122-1同步。第一 客戶機(jī)設(shè)備180-1上的客戶機(jī)同步模塊182可以具有如下版本歷史{服務(wù)器 _GUID 1,工作 _GUID 2}服務(wù)器122-1上的服務(wù)器同步模塊120可以具有如下版本歷史{服務(wù)器 _GUID 1,工作 _GUID 2,家 _GUID 3}對于版本A和版本B的版本歷史的比較揭示A中的最高改變集(工作_GUID 2) 被包括在版本B中,但是版本B的最高改變集(家_GUID 3)不被包括在版本A中。服務(wù)器 同步模塊120因此知道版本B包括了對版本A做出的所有編輯,但是版本A不包括在版本 B中做出的所有改變。版本B是版本A的超集,因此在沖突中獲勝。然而,假定第一用戶從未從第三客戶機(jī)設(shè)備180-3與服務(wù)器122-1同步,而是第二 用戶對駐留在服務(wù)器122-1上的該項(xiàng)目做出了改變??墒褂冒姹練v史來檢測此情形中的沖 突。在這一情況下,第四客戶機(jī)設(shè)備180-4的客戶機(jī)同步模塊182可以具有以下版本歷史{服務(wù)器 _GUID 1,工作 _GUID 2}同時(shí),服務(wù)器122-1的服務(wù)器同步模塊120可以具有以下版本歷史{服務(wù)器 _GUID :1,用戶 2_ 工作 _GUID :2}對版本A和版本B的版本歷史的比較現(xiàn)在揭示版本A中的最高改變集(工作_ ⑶ID 2)未被包括在版本B中,且版本B中的最高改變集(用戶2_工作_GUID 2)未被包 括在版本A中。因此,版本B不是版本A的超集,版本A不是版本B的超集,且服務(wù)器同步 模塊120檢測到需要解決的真正沖突。各實(shí)施例可使用特性包來檢測數(shù)據(jù)模式?jīng)_突。某些實(shí)施例可使用特性包支持服務(wù) 器122和客戶機(jī)180之間的模式失配。特性包可以指應(yīng)用程序和/或設(shè)備使用的各種數(shù)據(jù) 模式的一組字段定義。特性包可用于在按需的基礎(chǔ)上定義字段而非一組固定或硬編碼的字段。例如,客戶機(jī)設(shè)備180執(zhí)行的Microsoft Outlook的任務(wù)模式可能需要服務(wù)器122 的WSS應(yīng)用程序不可用的某些字段,反之亦然。特性包可用于在特設(shè)的基礎(chǔ)上為可同時(shí)由 Microsoft Outlook和WSS應(yīng)用程序兩者使用的各種列表或應(yīng)用程序定義字段。以此方式, 服務(wù)器122和客戶機(jī)180之間的模式失配可被糾正而不必更新或修改兩個(gè)設(shè)備執(zhí)行的實(shí)際
應(yīng)用程序。各實(shí)施例可以使用字段值映射來檢測語言沖突。某些實(shí)施例可以使用字段值映 射來支持服務(wù)器122-1和客戶機(jī)180-1之間的語言失配。該特征對于支持其中客戶機(jī)設(shè) 備180-1和服務(wù)器122-1不使用同一語言的國際情形是合乎需要的。例如,Microsoft Outlook具有基于“狀態(tài)”字段和“優(yōu)先級”字段的值來執(zhí)行任務(wù)的邏輯。服務(wù)器122-1可 以基于服務(wù)器的語言將不同的值寫入這些字段中。例如,在英語語言中,狀態(tài)字段可以包 括諸如"Not Started"(未開始)、“Deferred” (推遲)、“Completed,,(完成)等表達(dá)式。 Microsoft Outlook需要知道如何可靠地將這些值映射到其理解的值。在一個(gè)實(shí)施例中,可 以向Microsoft Outlook能使用的列表的模式添加映射部分以將寫入的值映射到其理解的 值。各實(shí)施例可使用一種或多種分頁技術(shù)來同步結(jié)構(gòu)化內(nèi)容類型。某些實(shí)施例可以使 用各種分頁技術(shù)來支持服務(wù)器122-1和客戶機(jī)180-1之間非常大的數(shù)據(jù)集的同步。為增強(qiáng) 服務(wù)器122-1和客戶機(jī)180-1的性能,可使用頁請求來獲得在列表中已經(jīng)改變的一組項(xiàng)。服 務(wù)器122-1可以僅返回最后Q個(gè)項(xiàng)(例如,最后100個(gè)項(xiàng))而非返回已經(jīng)改變的所有項(xiàng)。該 特征在客戶機(jī)180-1具有到服務(wù)器122-1的較慢的通信連接或在服務(wù)器122-1在列表中具 有數(shù)千或數(shù)百萬個(gè)項(xiàng)時(shí)特別有用。大量的項(xiàng)可造成性能瓶頸,尤其是在例如在客戶機(jī)設(shè)備 180-1和服務(wù)器122-1上的Microsoft Outlook之間同步地址簿結(jié)構(gòu)化內(nèi)容類型的時(shí)候。給定的分頁技術(shù)可以用任意數(shù)量的方式來實(shí)現(xiàn)。例如,在一個(gè)實(shí)施例中,服務(wù)器同 步模塊120可以被安排成支持GetListChangesSinceToker^獲取自從令牌以來的列表改 變)web服務(wù)上稱為“rowLimit”(行限制)的特性,該特性指定要返回的項(xiàng)的最大數(shù)目。例 如,“rowLimit = 100”將返回自從改變令牌的值以來已經(jīng)更新的前100個(gè)項(xiàng)。如果未指定 該特性,則將返回自從改變令牌以來改變的所有項(xiàng)。當(dāng)服務(wù)器122-1的WSS應(yīng)用程序接收到具有項(xiàng)限制的請求時(shí),刪除操作可被 排除在項(xiàng)限制之外??稍诹斜聿樵冎袀鬟f一參數(shù)以限制返回給rowLimit的項(xiàng)的個(gè) 數(shù)。如果少于該數(shù)目的項(xiàng)改變,則將隨著項(xiàng)一起返回更新的改變令牌。然而,如果多 于該數(shù)目的項(xiàng)改變,則不更新改變令牌,并且可返回最初傳入的相同的改變令牌。也 可返回ListltemCollectionPositionNext (列表項(xiàng)集合下一位置)的值。在接收到 ListltemCollectionPositionNext的值時(shí),客戶機(jī)設(shè)備180-1應(yīng)重新查詢服務(wù)器122-1,同 時(shí)發(fā)送改變令牌和該值兩者。服務(wù)器122-1將運(yùn)行一新查詢以返回從ListltemCollection PositionNext的開頭開始的下rowLimit個(gè)項(xiàng)。該“如果”框然后可按需重新執(zhí)行。值得注意的是,客戶機(jī)180-1需要確保在處理更新之前處理刪除。在客戶機(jī)180-1 接收到對已經(jīng)刪除的項(xiàng)的刪除的情況下,它應(yīng)抑制該錯(cuò)誤并繼續(xù)。在客戶機(jī)180-1嘗試對 已經(jīng)在服務(wù)器122-1上刪除的項(xiàng)的更新的情況下,客戶機(jī)180-1應(yīng)抑制該錯(cuò)誤并繼續(xù)操作。各實(shí)施例可向客戶機(jī)180-1提供其可用于經(jīng)由內(nèi)部專用網(wǎng)絡(luò)或外部公共網(wǎng)絡(luò)(例 如,公共因特網(wǎng))與服務(wù)器122-1同步的替換URL。例如,在一個(gè)實(shí)施例中,服務(wù)器同步模
13塊120可以生成第一網(wǎng)絡(luò)地址從內(nèi)部專用網(wǎng)絡(luò)發(fā)送具有至少一個(gè)結(jié)構(gòu)化內(nèi)容類型的同步 請求,并生成第二網(wǎng)絡(luò)地址以從外部公共網(wǎng)絡(luò)發(fā)送具有至少一個(gè)結(jié)構(gòu)化內(nèi)容類型的同步請 求。第一和第二地址可包括例如使用超鏈接實(shí)現(xiàn)的URL。作為示例,服務(wù)器同步模塊120可被安排成響應(yīng)于同步請求傳送具有返回?cái)?shù)據(jù)的 替換域映射。這允許其中用戶導(dǎo)航到專用網(wǎng)絡(luò)(例如,企業(yè)內(nèi)聯(lián)網(wǎng))內(nèi)的列表并將該列表 同步到諸如Microsoft Outlook等本地應(yīng)用程序的情形。用戶然后回家,使用遠(yuǎn)程過程調(diào) 用(RPC)通過超文本傳輸協(xié)議(HTTP)連接到郵件,并期望其SiarePoint列表也能同步。如 果服務(wù)器122-1(例如,SharePoint站點(diǎn))也被展示在公共網(wǎng)絡(luò)(例如,諸如因特網(wǎng)等外聯(lián) 網(wǎng))上,則用戶即使在該URL的域不同的情況下也能同步該列表。替換域映射可用任意數(shù)目的方式來實(shí)現(xiàn)。例如,在一個(gè)實(shí)施例中,替換域可按以下 順序返回[內(nèi)聯(lián)網(wǎng)],[默認(rèn)],[外聯(lián)網(wǎng)],[因特網(wǎng)],[自定義]這些映射可在“l(fā)istitems” (列表項(xiàng))標(biāo)簽上的“Alternatetols” (替換URL)屬 性中返回。如果映射不存在,則可返回相同的次序,并且為遺漏的域插入逗號如下(http://intranet, https://default, https //extranet, com,, http://custom)這五個(gè)替換域映射都可以在中央管理中定義。域可僅包括URL的第一部分,例 如 ““http://www. microsoft, com,,,,或 http://msw??蛻魴C(jī)應(yīng)用程序(例如,Microsoft Outlook)負(fù)責(zé)解析這些域并基于客戶機(jī)設(shè)備180-1-s的狀態(tài)來確定要使用哪一個(gè)。一般而 言,客戶機(jī)180-1應(yīng)以第一個(gè)域開始并按序迭代通過其余的域。為進(jìn)一步改進(jìn)同步操作,各實(shí)施例可改進(jìn)關(guān)于何時(shí)將客戶機(jī)設(shè)備與網(wǎng)站同步的定 時(shí)問題。例如,某些實(shí)施例可以通過向同步客戶機(jī)提供建議的同步間隔(例如,每隔R分鐘 的客戶機(jī)同步)來管理客戶機(jī)負(fù)載。建議的同步間隔可以表示最小同步間隔、最大同步間 隔或兩者之間的某一值。例如,在一個(gè)實(shí)施例中,服務(wù)器同步模塊120可以生成同步間隔參 數(shù)。服務(wù)器同步模塊120可將該同步間隔參數(shù)發(fā)送給客戶機(jī)180-1。服務(wù)器122-1可以根 據(jù)同步間隔參數(shù)從客戶機(jī)180-1接收同步請求。使用建議的同步間隔可提供若干優(yōu)點(diǎn)。對建議的同步間隔的使用可提高規(guī)模,使 得大量Microsoft Outllok客戶機(jī)(例如,100,000個(gè))不會(huì)使得SharePoint服務(wù)器場(例 如,計(jì)算陣列140)不可使用。例如,假定Microsoft Outlook具有使得客戶機(jī)設(shè)備180-1 每隔60分鐘同步每一結(jié)構(gòu)化內(nèi)容列表的默認(rèn)同步間隔。假定每一用戶最終合計(jì)有10個(gè)同 步的列表,則對服務(wù)器122-1的總命中數(shù)可達(dá)每天1(^24*100,000次,這算出為一天M小 時(shí)每秒大約278次命中。大約每隔60分鐘同步的真正簡單同步(RSS)源可使該問題進(jìn)一 步加劇??墒褂酶鞣N技術(shù)來減小給定服務(wù)器122-1-n上的工作負(fù)載。例如,在一個(gè)實(shí)施例 中,可在前端上實(shí)現(xiàn)對高速緩存列表和/或站點(diǎn)的修改的次數(shù)。如果要求自從最后一次高 速緩存的列表或站點(diǎn)以來的改變的請求到達(dá)服務(wù)器122-1修改的次數(shù),則服務(wù)器122-1將 知道沒有改變并且可完全避免查詢數(shù)據(jù)庫124、126。高速緩存可能需要以某一定期的間隔, 諸如例如大約每隔5分鐘過期。被高速緩存的列表或站點(diǎn)的數(shù)目可能需要被限制以容納存 儲(chǔ)器資源,諸如,例如大約100個(gè)列表和/或站點(diǎn)。減小給定服務(wù)器122-1-n上的工作負(fù)載的另一技術(shù)可以是實(shí)現(xiàn)日期/時(shí)間自適應(yīng)同步技術(shù)。服務(wù)器同步模塊120可以通過向客戶機(jī)設(shè)備180-1發(fā)送同步間隔參數(shù)來減少給 定Microsoft Outlook客戶機(jī)做出的同步請求的數(shù)目,該同步檢測參數(shù)基于利用將諸如工 作時(shí)段、夜間時(shí)段和周末等日期/時(shí)間信息計(jì)算在內(nèi)的歷史列表改變數(shù)據(jù)對下一列表改變 時(shí)間的概率的估計(jì)而改變。在各實(shí)施例中,建議的同步間隔可以基于存儲(chǔ)在服務(wù)器上的歷史內(nèi)容改變數(shù)據(jù)。 例如,在一個(gè)實(shí)施例中,服務(wù)器同步模塊120可以基于服務(wù)器122-1存儲(chǔ)的歷史內(nèi)容改變數(shù) 據(jù)來為客戶機(jī)180-1生成同步間隔參數(shù)。服務(wù)器同步模塊120可將該同步間隔參數(shù)發(fā)送給 客戶機(jī)180-1?;跉v史內(nèi)容改變數(shù)據(jù)的技術(shù)的一個(gè)示例可以被稱為基于網(wǎng)格的自適應(yīng)同步 (“網(wǎng)格同步”)。SiarePoint服務(wù)器上的每一列表具有不同的使用特征。多個(gè)因素可影響 列表使用且因此影響更新頻率。這些因素的示例可包括列表類型、站點(diǎn)類型、列表大小、列 表定制數(shù)量、站點(diǎn)用戶數(shù)量、用戶的地理位置和分布、對站點(diǎn)的總訪問數(shù)、日時(shí)、站點(diǎn)項(xiàng)目的 周期中的當(dāng)前位置(例如,開始、中間、結(jié)束或歸檔)等等。多個(gè)此類因素是基于配置的,并 且關(guān)于使用模式的估計(jì)可基于該數(shù)據(jù)來做出。然而,多個(gè)此類因素也是基于時(shí)間的?;跁r(shí) 間的因素可對使用模式有顯著影響。站點(diǎn)通常本質(zhì)是循環(huán)的,并且網(wǎng)站很少永遠(yuǎn)以相同的 速率使用。此外,人們往往按時(shí)間表工作。因此,從晚上10點(diǎn)到早上6點(diǎn)發(fā)生的工作的量 通常要少于在早上9點(diǎn)和下午5點(diǎn)之間發(fā)生的工作的量,即使每一時(shí)段都包括8小時(shí)。人 們也往往不在周末工作。值得注意的是,工作的本質(zhì)和工作的地理分布能影響這些因素,并 且因此適合使用模式而非試圖事先對其進(jìn)行硬編碼是重要的。對減少對服務(wù)器的請求數(shù)同 時(shí)仍滿足用戶期望有顯著影響的提議需要涉及基于時(shí)間的算法,并且需要對人們工作且因 此使用給定站點(diǎn)的方式是敏感的。從這一觀點(diǎn)來看,一個(gè)設(shè)計(jì)考慮事項(xiàng)是向客戶機(jī)設(shè)備180-1提供其接下來應(yīng)執(zhí)行 同步操作的建議的時(shí)間??蛻魴C(jī)設(shè)備180-1應(yīng)僅在客戶機(jī)設(shè)備180-1或服務(wù)器122-1中任 一個(gè)上有改變時(shí)與服務(wù)器122-1同步。因此,可使用概率分析來確定理想同步間隔。管理 員可以通過調(diào)整其希望客戶機(jī)設(shè)備180-1-s重新同步的概率的閾值來以智能的方式調(diào)整 網(wǎng)絡(luò)100的行為。例如,服務(wù)器管理員可以調(diào)整該概率閾值以使客戶機(jī)設(shè)備180-1在內(nèi)容 有10%的機(jī)率被更新時(shí)同步。如果這生成太多的服務(wù)器負(fù)載,則管理員可將該閾值調(diào)整為 50%概率閾值。管理員可以繼續(xù)細(xì)化該過程,直到網(wǎng)絡(luò)性能在可接受的參數(shù)內(nèi)。在某些情況下,對將來列表使用的概率閾值可以基于歷史使用數(shù)據(jù)。列表可包括, 例如一個(gè)或多個(gè)結(jié)構(gòu)化內(nèi)容類型的數(shù)據(jù)或項(xiàng)的集合。使用通常遵循模式。人自然是習(xí)慣 的生物,并且結(jié)構(gòu)化工作環(huán)境通常在其創(chuàng)建可預(yù)測性時(shí)進(jìn)一步鼓勵(lì)這一習(xí)慣。為表示過去 的使用,時(shí)間可被劃分成網(wǎng)格。假定一周的時(shí)間段,則y軸可具有一周的各天,而χ軸可具 有每天的各小時(shí)。在該網(wǎng)格的每一單元格中,可設(shè)置指示列表在該時(shí)間段內(nèi)是否被更新的 布爾值,其中“ 1”值表示列表在該時(shí)間段內(nèi)被更新,而“0”值表示列表在該時(shí)間段內(nèi)未被更 新。例如,觀察周一的行以及上午9:30-9:40的單元格,如果該單元格中的值是“1”,則列 表在周一上午9:30到上午9:40之間的某一時(shí)刻被修改。下一個(gè)“1”可能直到周一的下午 3:10-下午3:20才出現(xiàn)。向前移動(dòng),監(jiān)視一周的站點(diǎn)使用提供了完整的網(wǎng)格。如果列表被 更頻繁地更新則該網(wǎng)格將有更多1值,并且如果列表被較不頻繁地更新則具有較多的0值。 假定客戶機(jī)設(shè)備180-1在周一上午9:05與服務(wù)器122-1同步。在運(yùn)行了查詢來查看是否有任何東西改變之后,服務(wù)器122-1現(xiàn)在需要向客戶機(jī)設(shè)備180-1做出關(guān)于其何時(shí)應(yīng)執(zhí)行 其下一次同步事件的建議。分析歷史數(shù)據(jù),發(fā)現(xiàn)在周一上午9:30-上午9:40之間發(fā)生了更 新?;谠摎v史數(shù)據(jù),服務(wù)器122-1可以指示客戶機(jī)設(shè)備180-1在上午9:30-上午9:40之 間執(zhí)行其下一次同步。在算法上,這可通過遍歷網(wǎng)格直到達(dá)到1值來實(shí)現(xiàn)。對于經(jīng)過的每一 單元格,可將單元格時(shí)間大小添加到同步之間的建議時(shí)間。在該示例中,經(jīng)過了 9 00-9 10 單元格、9 10-9 20單元格以及9 20-9 30單元格。服務(wù)器122-1因此可以返回建議的同步 間隔30分鐘。此時(shí),上午9:30-9:40的建議僅是起始點(diǎn)。更長的時(shí)間段將細(xì)化建議。繼續(xù)以上 示例,假定列表在第二周的上午9:22被更新。在第三周期間,客戶機(jī)設(shè)備180-1再一次在 上午9:05執(zhí)行與服務(wù)器122-1的同步并且服務(wù)器122-1需要做出更新的建議。遍歷該網(wǎng) 格,在上午9:20-9 30單元格中有1值,并且在上午9:30-940單元格中有1值。該網(wǎng)格算 法在當(dāng)前單元格處開始,并隨著經(jīng)過每一單元格增加10分鐘,直到到達(dá)具有1值的單元格。 經(jīng)過了上午9:00-9:10單元格,并經(jīng)過了上午9:10-9:20單元格。服務(wù)器122-1現(xiàn)在向客 戶機(jī)180-1返回值20分鐘。然而,基于歷史證據(jù),可生成指示列表是否在20分鐘之內(nèi)更新 的概率。在從起始時(shí)間上午9:05到完成時(shí)間上午9:30的兩個(gè)可能的周一,列表僅在一個(gè) 周一被更新?;谠摎v史數(shù)據(jù),概率可被計(jì)算為1/2,即50%??上蛟摻ㄗh的同步間隔增加 10分鐘,并且可再次執(zhí)行概率分析。對于從起始時(shí)間上午9:05到完成時(shí)間上午9:40的兩 個(gè)周一的數(shù)據(jù),列表被更新了兩次。因此,對于30分鐘的概率為1/2+1/2 = 2/2,即100%。 使用更多數(shù)據(jù)得到細(xì)化的建議?,F(xiàn)在變?yōu)殛P(guān)于對于服務(wù)器管理員而言客戶機(jī)設(shè)備180-1-s 多久一次向服務(wù)器122-1-n請求信息是輕松對比用戶立即擁有最新的數(shù)據(jù)有多重要的有 見識(shí)的決策。如果服務(wù)器管理員將閾值設(shè)為例如50%或更少,則服務(wù)器122-1將返回同步 間隔20分鐘。然而,如果閾值被設(shè)在50-100%之間,則服務(wù)器將返回同步間隔30分鐘。生成同步間隔的概括算法可如下表示P是概率T是用戶定義的閾值S是每一單元格的時(shí)間跨度,在以上示例中為10分鐘C是當(dāng)前單元格計(jì)數(shù),G[]是網(wǎng)格,假定G
表示當(dāng)前時(shí)間處的值M是網(wǎng)格中的單元格的最大值,在以上示例中是周數(shù)P = 0;For (C = 0 ;P < T ;C++)P = P+G[C]/M ;return OS值得注意的是,返回值不必對每一客戶機(jī)請求重新計(jì)算。相反,它可被高速緩存一 段時(shí)間,并且直到下一時(shí)間間隔開始之前都被認(rèn)為是有效的。在以上示例中,該段時(shí)間可達(dá) 10分鐘。為構(gòu)建實(shí)際網(wǎng)格,每次當(dāng)修改一個(gè)項(xiàng)時(shí),檢查列表的最后修改時(shí)間。如果列表的最 后修改時(shí)間發(fā)生在與當(dāng)前時(shí)間相同的時(shí)間跨度內(nèi),則不需要寫入改變。例如,發(fā)生在上午 9:00和上午9:10之間的同一時(shí)間段內(nèi)的兩個(gè)改變僅需要一次更新。這將寫入次數(shù)保持為
16最小,從而有助于鎖競爭和規(guī)模。如果列表的最后修改時(shí)間發(fā)生在與當(dāng)前時(shí)間不同的時(shí)間 跨度中,則當(dāng)前時(shí)間跨度單元格中的值可被遞增“1”。在某些情況下,列表的修改時(shí)間也需 要被更新,盡管WSS3. 0版已經(jīng)處理了這一情況。該網(wǎng)格算法基于可儲(chǔ)存多少數(shù)據(jù)以及在特定應(yīng)用程序的使用中什么趨勢是常見 的,可以在許多維度中縮放。在χ方向中,每一單元格的時(shí)間跨度可被減小到分鐘,或延長 到小時(shí)或更多。在y維度中,網(wǎng)格可被擴(kuò)展為包括對于一個(gè)月的每天的不同行,或者網(wǎng)格可 被折疊到僅表示一天的一行。實(shí)際上,它可通過具有兩天來以略微更智能的方式折疊,其中 一天表示工作日而另一天表示周末。如果網(wǎng)格表示了 12小時(shí)輪班工作,則網(wǎng)格可具有y行, 每一行表示從開始到結(jié)束的12小時(shí)輪班。如上所述,站點(diǎn)使用通常遵循可預(yù)測周期。這些周期時(shí)間段通常在幾個(gè)月中緩慢 變化。為細(xì)化網(wǎng)格算法,新近數(shù)據(jù)可能是比較舊的數(shù)據(jù)更好的指示符。例如,發(fā)生在6個(gè)月 之前的周一的列表更新通常具有比發(fā)生在昨天的小的值。因此,網(wǎng)格算法可通過維護(hù)較大 的數(shù)據(jù)集并應(yīng)用基于時(shí)間對該較大集合中的數(shù)據(jù)不同地加權(quán)的函數(shù)來細(xì)化?;蛘?,可通過 使舊數(shù)據(jù)過期來更有效地使用存儲(chǔ)器資源。例如,假定網(wǎng)格每8周被重置。在以上示例中 定義的網(wǎng)格中,每一單元格中的最大值是8。每一單元格因此可僅用3位來表示。然而,重置網(wǎng)格也移除了可影響網(wǎng)格算法結(jié)果的數(shù)據(jù)。該問題可通過創(chuàng)建從彼此 偏移一時(shí)間段的兩個(gè)網(wǎng)格來緩解。例如,第一網(wǎng)格可以在第1周開始記錄數(shù)據(jù),而第二網(wǎng)格 可以在第4周開始記錄數(shù)據(jù)。此時(shí),服務(wù)器同步模塊120可使用第一網(wǎng)格來進(jìn)行概率計(jì)算。 在第8周,第一網(wǎng)格可被重置,并且服務(wù)器同步模塊120可切換到使用第二網(wǎng)格來執(zhí)行概率 計(jì)算。服務(wù)器同步模塊120可以開始再次在第一網(wǎng)格中記錄。以此方式,服務(wù)器同步模塊 120可以不斷地從一個(gè)網(wǎng)格旋轉(zhuǎn)到下一網(wǎng)格,而永遠(yuǎn)不必從頭開始。在這一情況下,數(shù)據(jù)流 中的不連續(xù)性以4周為間隔出現(xiàn)。取決于平滑度的重要性,這可通過添加更多網(wǎng)格來減少。 例如,8個(gè)網(wǎng)格將導(dǎo)致各自有1周的更微小的不連續(xù)性。注意,該系統(tǒng)也可用于通過使用多 個(gè)網(wǎng)格來生成概率來給予更新近的事件更多能量。為進(jìn)一步改進(jìn)網(wǎng)格算法的性能,可設(shè)置最大和最小同步間隔。最小同步間隔應(yīng)可 能默認(rèn)為單元格跨度的大小,在以上示例中為10分鐘。最大間隔的大小取決于系統(tǒng)中的置 信度水平。兩者都應(yīng)可由管理員連同閾值一起來配置。這些值可被調(diào)整以在使用期間細(xì)化 系統(tǒng),盡管在已經(jīng)處于使用中時(shí)改變網(wǎng)格結(jié)構(gòu)(例如,X軸和y軸上的時(shí)間表示)可能是麻 煩的。應(yīng)對初始的同步設(shè)置默認(rèn)時(shí)間,直到該網(wǎng)格被填充到最小可使用狀態(tài)。該方法適用于諸如RSS等其它同步協(xié)議。它還適用于諸如搜索爬尋器、索引器和 高速緩存內(nèi)容的代理服務(wù)器等領(lǐng)域。盡管該網(wǎng)格算法可以在客戶機(jī)上實(shí)現(xiàn),但是準(zhǔn)確度最 有可能降低,因?yàn)榭蛻魴C(jī)不知道在服務(wù)器上做出的所有改變。該網(wǎng)格算法可在客戶機(jī)-客 戶機(jī)同步時(shí)使用。它也可結(jié)合基于通知的同步方法來使用,其中通知處理很少改變的內(nèi)容, 并且該系統(tǒng)處理更頻繁改變的內(nèi)容。網(wǎng)格算法可取決于給定實(shí)現(xiàn)對存儲(chǔ)器資源有變化的影響。對數(shù)據(jù)存儲(chǔ)的估計(jì)可如 下做出20分鐘跨度7個(gè)不同的天每張表8周
2 張表= 378 字節(jié)10分鐘跨度2行(工作日/周末)每張表6周2 張表= 288 字節(jié)除了基于歷史數(shù)據(jù)生成建議的同步間隔之外,建議的同步間隔也可基于來自客戶 機(jī)的先前的同步請求的結(jié)果。例如,在一個(gè)實(shí)施例中,服務(wù)器同步模塊120可以基于來自客 戶機(jī)180-1的先前同步請求的先前同步結(jié)果為客戶機(jī)生成同步間隔參數(shù)。服務(wù)器同步模塊 120可將該同步間隔參數(shù)發(fā)送給客戶機(jī)180-1。作為示例,服務(wù)器同步模塊120可以執(zhí)行基于功能的自適應(yīng)同步來生成同步間隔 參數(shù)。給定Microsoft Outlook客戶機(jī)做出的同步請求的數(shù)量可以使用某一形式的指數(shù)衰 減/生長函數(shù)來生成。例如,取最后一個(gè)同步間隔。如果發(fā)生了改變,則將時(shí)間間隔減小一 指數(shù)函數(shù)。然而,如果未發(fā)生改變,則將時(shí)間間隔增加一指數(shù)函數(shù)。也可使用其它技術(shù)來生成同步間隔參數(shù)。例如,可使用最后一次修改的自適應(yīng)同 步技術(shù)。該技術(shù)通過向客戶機(jī)180-1發(fā)送基于對列表的最后一次修改時(shí)間嚴(yán)格改變的同 步間隔來減少M(fèi)icrosoft Outlook客戶機(jī)做出的同步請求的數(shù)目。例如,如果列表在上一 小時(shí)內(nèi)修改,則在20分鐘之后再次同步。如果列表在多于一小時(shí)但少于一天之前修改,則 在2小時(shí)之后再次同步。如果列表在多于一天之前修改,則在一天之后再次同步。在另一 示例中,也可使用對多個(gè)列表的單個(gè)查詢技術(shù)。該技術(shù)通過允許客戶機(jī)180-1做出一次傳 入所有感興趣的GUID列表的一個(gè)請求來減少M(fèi)icrosoft Outlook客戶機(jī)做出的同步請求 的數(shù)目??蓪@些列表批量檢查最后一次修改時(shí)間,然后服務(wù)器同步模塊120可以通知客 戶機(jī)設(shè)備180-1要顯式同步哪些列表。在又一示例中,可使用基于電子郵件通知的同步技 術(shù)。現(xiàn)有同步技術(shù)可使用各種輪詢技術(shù),其中客戶機(jī)在定期或半定期的基礎(chǔ)上輪詢服務(wù)器。 在一個(gè)實(shí)施例中,服務(wù)器122-1可以通過發(fā)送“隱藏電子郵件警告”來通知客戶機(jī)180-1需 要同步事件。這可以充分利用現(xiàn)有的警告基礎(chǔ)結(jié)構(gòu)。警告不一定要被用戶看見,并且它在 SharePoint中在用戶選擇執(zhí)行同步操作時(shí)自動(dòng)創(chuàng)建。這對于不頻繁改變的列表尤其有效。 然而,客戶機(jī)設(shè)備180-1可能需要支持對傳入郵件請求的接收以實(shí)現(xiàn)該特定技術(shù)。此處闡明了許多具體細(xì)節(jié)以提供對這些實(shí)施例的全面理解。然而,本領(lǐng)域技術(shù)人 員將理解,沒有這些具體細(xì)節(jié)也可實(shí)踐這些實(shí)施例。在其它實(shí)例中,沒有詳細(xì)地描述公知的 操作、組件和電路以免得使這些實(shí)施例顯得晦澀難懂??梢岳斫?,此處公開的具體的結(jié)構(gòu)和 功能細(xì)節(jié)可以是代表性的且不必要限制這些實(shí)施例的范圍。還值得注意的是,任何對“一實(shí)施例”或“實(shí)施例”的引用都意味著結(jié)合該實(shí)施例 所描述的特定的特征、結(jié)構(gòu)、或特性被包括在至少一個(gè)實(shí)施例中。出現(xiàn)在說明書中各個(gè)地方 的短語“在一實(shí)施例中”不必全都指的是同一實(shí)施例。某些實(shí)施例可能使用表述“耦合的”和“連接的”及其派生詞來描述。應(yīng)當(dāng)理解, 這些術(shù)語不旨在互為同義詞。例如,某些實(shí)施例可能使用術(shù)語“連接的”來描述以指示兩個(gè) 或更多元素互相有直接的物理的或電的接觸。在另一示例中,某些實(shí)施例可能使用術(shù)語“耦合的”來描述以指示兩個(gè)或更多元素有直接的物理的或電的接觸。然而,術(shù)語“耦合的”還 可以意味著兩個(gè)或更多元素互相不直接接觸,而仍互相合作或交互。各實(shí)施例在該上下文 中不受限制。某些實(shí)施例可以例如使用可以存儲(chǔ)如果被機(jī)器執(zhí)行則使得機(jī)器執(zhí)行根據(jù)這些實(shí) 施例的方法和/或操作的指令或一組指令的機(jī)器可讀介質(zhì)或物品來實(shí)現(xiàn)。例如,這種機(jī)器 可以包括任何合適的處理平臺(tái)、計(jì)算平臺(tái)、計(jì)算設(shè)備、計(jì)算系統(tǒng)、處理系統(tǒng)、計(jì)算機(jī)、處理器 等,且可以使用硬件和/或軟件的任意合適的組合來實(shí)現(xiàn)。例如,機(jī)器可讀介質(zhì)或物品可 以包括任何合適類型的存儲(chǔ)器單元、存儲(chǔ)器設(shè)備、存儲(chǔ)器物品、存儲(chǔ)器介質(zhì)、存儲(chǔ)設(shè)備、存儲(chǔ) 物品、存儲(chǔ)介質(zhì)和或存儲(chǔ)單元,例如,存儲(chǔ)器、可移動(dòng)或不可移動(dòng)介質(zhì)、可擦除或不可擦除介 質(zhì)、可寫或可重寫介質(zhì)、數(shù)字或模擬介質(zhì)、硬盤、軟盤、壓縮盤只讀存儲(chǔ)器(CD-ROM)、可記錄 壓縮盤(⑶-R)、可重寫壓縮盤(⑶-RW)、光盤、磁性介質(zhì)、磁光介質(zhì)、可移動(dòng)存儲(chǔ)器卡或盤、 各種類型的數(shù)字多功能盤(DVD)、磁帶、磁盒等。盡管用對結(jié)構(gòu)特征和/或方法動(dòng)作專用的語言描述了本主題,但可以理解,所附 權(quán)利要求書中定義的主題不必限于上述具體特征或動(dòng)作。相反,上述具體特征和動(dòng)作是作 為實(shí)現(xiàn)權(quán)利要求的示例形式公開的。
權(quán)利要求
1.一種用于同步結(jié)構(gòu)化網(wǎng)站內(nèi)容的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括由客戶機(jī)設(shè)備發(fā)送對服務(wù)器內(nèi)容列表的請求,其中所述服務(wù)器內(nèi)容列表包括服務(wù)器設(shè) 備所支持的一個(gè)或多個(gè)結(jié)構(gòu)化內(nèi)容類型,所述一個(gè)或多個(gè)結(jié)構(gòu)化內(nèi)容類型包括由日歷、聯(lián) 系人、討論、文檔和任務(wù)組成的組中的一個(gè)或多個(gè); 由所述客戶機(jī)設(shè)備接收所述服務(wù)器內(nèi)容列表;將所述服務(wù)器內(nèi)容列表與客戶機(jī)內(nèi)容列表進(jìn)行比較,其中所述客戶機(jī)內(nèi)容列表包含所 述客戶機(jī)設(shè)備所支持的一個(gè)或多個(gè)結(jié)構(gòu)化內(nèi)容類型;由所述客戶機(jī)設(shè)備標(biāo)識(shí)所述客戶機(jī)設(shè)備和所述服務(wù)器設(shè)備兩者共享的一個(gè)或多個(gè)結(jié) 構(gòu)化內(nèi)容類型;由所述客戶機(jī)設(shè)備發(fā)送同步所述共享的一個(gè)或多個(gè)結(jié)構(gòu)化內(nèi)容類型的第一同步查詢, 其中所述同步查詢包括改變令牌和要被返回的最大項(xiàng)數(shù),其中要被返回的項(xiàng)是自從改變令 牌的值以來發(fā)生改變的項(xiàng);當(dāng)多于所請求的最大項(xiàng)數(shù)的項(xiàng)發(fā)生了改變時(shí)由所述客戶機(jī)設(shè)備接收第一數(shù)量的項(xiàng)直到所述最大項(xiàng)數(shù),以及接收所述改變令牌; 由所述客戶機(jī)設(shè)備接收一值,用于請求從該值開始下一數(shù)量的項(xiàng)直到所述最大項(xiàng)數(shù);以及由所述客戶機(jī)設(shè)備發(fā)送第二同步查詢,所述第二同步查詢包括所述改變令牌和所述值。
2.如權(quán)利要求1所述的方法,其特征在于,所述最大項(xiàng)數(shù)包括“rowLimit”特性。
3.如權(quán)利要求1所述的方法,其特征在于,所述第一同步請求和所述第二同步請求使 用分頁技術(shù)。
4.如權(quán)利要求1所述的方法,其特征在于,所述分頁技術(shù)是在所述客戶機(jī)設(shè)備減少了 到所述服務(wù)器設(shè)備的通信連接時(shí)使用的。
5.如權(quán)利要求1所述的方法,其特征在于,還包括由所述客戶機(jī)設(shè)備接收同步間隔參 數(shù),其中所述同步間隔參數(shù)基于歷史內(nèi)容改變數(shù)據(jù)。
6.如權(quán)利要求5所述的方法,其特征在于,所述歷史內(nèi)容改變數(shù)據(jù)基于基于網(wǎng)格的自 適應(yīng)同步。
7.如權(quán)利要求6所述的方法,其特征在于,所述基于網(wǎng)格的自適應(yīng)同步基于以下因素 組成的組中的一個(gè)或多個(gè)因素列表類型、站點(diǎn)類型、列表大小、列表定制數(shù)量、站點(diǎn)用戶數(shù) 量、地理位置和用戶分布。
8.一種用于同步結(jié)構(gòu)化網(wǎng)站內(nèi)容的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 由服務(wù)器接收來自客戶機(jī)的內(nèi)容列表;檢索服務(wù)器內(nèi)容列表;由所述服務(wù)器處的至少一個(gè)處理器比較客戶機(jī)內(nèi)容列表和服務(wù)器內(nèi)容列表; 確定由所述客戶機(jī)和所述服務(wù)器兩者都支持的結(jié)構(gòu)化內(nèi)容類型; 基于對所述客戶機(jī)和所述服務(wù)器兩者都支持的結(jié)構(gòu)化內(nèi)容類型的確定,生成共享內(nèi)容 列表;將所述共享內(nèi)容列表發(fā)送到所述客戶機(jī);從所述客戶機(jī)接收同步所述共享內(nèi)容列表中的一個(gè)或多個(gè)結(jié)構(gòu)化內(nèi)容類型的請求,所述請求包括對要被返回的項(xiàng)數(shù)的限制;以及基于所接收的同步請求執(zhí)行一個(gè)或多個(gè)同步操作,所接收的請求和項(xiàng)限制使得所述服 務(wù)器將一參數(shù)傳遞至列表查詢中以將返回的項(xiàng)數(shù)限制到所請求的限制,其中任何刪除操作 都被排除在項(xiàng)限制外。
9.如權(quán)利要求8所述的方法,其特征在于,所述同步包括分頁技術(shù)。
10.如權(quán)利要求8所述的方法,其特征在于,發(fā)送同步間隔參數(shù),其中所述同步間隔參 數(shù)基于歷史內(nèi)容改變數(shù)據(jù)。
11.如權(quán)利要求10所述的方法,其特征在于,所述歷史內(nèi)容改變數(shù)據(jù)基于基于網(wǎng)格的 自適應(yīng)同步。
12.一種用于同步結(jié)構(gòu)化網(wǎng)站內(nèi)容的系統(tǒng),所述系統(tǒng)包括用于由客戶機(jī)設(shè)備發(fā)送對服務(wù)器內(nèi)容列表的請求的裝置,其中所述服務(wù)器內(nèi)容列表包 括服務(wù)器設(shè)備所支持的一個(gè)或多個(gè)結(jié)構(gòu)化內(nèi)容類型,所述一個(gè)或多個(gè)結(jié)構(gòu)化內(nèi)容類型包括 由日歷、聯(lián)系人、討論、文檔和任務(wù)組成的組中的一個(gè)或多個(gè);用于由所述客戶機(jī)設(shè)備接收所述服務(wù)器內(nèi)容列表的裝置;用于將所述服務(wù)器內(nèi)容列表與客戶機(jī)內(nèi)容列表進(jìn)行比較的裝置,其中所述客戶機(jī)內(nèi)容 列表包含所述客戶機(jī)設(shè)備所支持的一個(gè)或多個(gè)結(jié)構(gòu)化內(nèi)容類型;用于由所述客戶機(jī)設(shè)備標(biāo)識(shí)所述客戶機(jī)設(shè)備和所述服務(wù)器設(shè)備兩者共享的一個(gè)或多 個(gè)結(jié)構(gòu)化內(nèi)容類型的裝置;用于由所述客戶機(jī)設(shè)備發(fā)送同步所述共享的一個(gè)或多個(gè)結(jié)構(gòu)化內(nèi)容類型的第一同步 查詢的裝置,其中所述同步查詢包括改變令牌和要被返回的最大項(xiàng)數(shù),其中要被返回的項(xiàng) 是自從改變令牌的值以來發(fā)生改變的項(xiàng);當(dāng)多于所請求的最大項(xiàng)數(shù)的項(xiàng)發(fā)生了改變時(shí)用于由所述客戶機(jī)設(shè)備接收第一數(shù)量的項(xiàng)直到所述最大項(xiàng)數(shù),以及接收所述改變令牌 的裝置;用于由所述客戶機(jī)設(shè)備接收一值的裝置,用于請求從該值開始下一數(shù)量的項(xiàng)直到所述 最大項(xiàng)數(shù);以及用于由所述客戶機(jī)設(shè)備發(fā)送第二同步查詢的裝置,所述第二同步查詢包括所述改變令 牌和所述值。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,還包括用于由所述客戶機(jī)設(shè)備接收同步 間隔參數(shù)的裝置,其中所述同步間隔參數(shù)基于歷史內(nèi)容改變數(shù)據(jù),所述同步間隔參數(shù)由所 述服務(wù)器設(shè)備存儲(chǔ)。
14.如權(quán)利要求13所述的方法,其特征在于,所述歷史內(nèi)容改變數(shù)據(jù)基于基于網(wǎng)格的 自適應(yīng)同步。
15.如權(quán)利要求14所述的方法,其特征在于,所述基于網(wǎng)格的自適應(yīng)同步基于以下因 素組成的組中的一個(gè)或多個(gè)因素列表類型、站點(diǎn)類型、列表大小、列表定制數(shù)量、站點(diǎn)用戶 數(shù)量、地理位置和用戶分布。
16.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述最大項(xiàng)數(shù)包括“rowLimit”特性。
全文摘要
描述了同步結(jié)構(gòu)化網(wǎng)站內(nèi)容的技術(shù)。一種裝置可包括具有服務(wù)器同步模塊的服務(wù)器,該服務(wù)器同步模塊標(biāo)識(shí)服務(wù)器和客戶機(jī)共享的結(jié)構(gòu)化內(nèi)容類型,并同步對應(yīng)于該結(jié)構(gòu)化內(nèi)容類型的結(jié)構(gòu)化內(nèi)容。對其它實(shí)施方式也予以描述并主張權(quán)利。
文檔編號G06F17/30GK102081663SQ20111002153
公開日2011年6月1日 申請日期2007年5月22日 優(yōu)先權(quán)日2006年5月22日
發(fā)明者D·B·維特利歐, J·費(fèi)雷拉 申請人:微軟公司