專利名稱:同步數(shù)據(jù)和元數(shù)據(jù)的交換的制作方法
同步數(shù)據(jù)和元數(shù)據(jù)的交換背景當(dāng)今,個(gè)人經(jīng)常使用各種各樣的計(jì)算機(jī)設(shè)備或系統(tǒng)。因此,經(jīng)常希望在設(shè)備之間保持信息同步。例如,個(gè)人通常具有在工作時(shí)與其交互的臺(tái)式個(gè)人計(jì)算機(jī)(PC)和/或相關(guān)聯(lián) 的文件服務(wù)器。他們時(shí)常也有用于在離開辦公室時(shí)進(jìn)行工作的筆記本/膝上型計(jì)算機(jī)以及 家里的一個(gè)或多個(gè)臺(tái)式計(jì)算機(jī)。此外,他們可具有諸如個(gè)人數(shù)字助理(PDA)、袖珍PC、移動(dòng) 電話(例如智能電話)等手持式計(jì)算機(jī)和/或出于組織、通信和/或娛樂(lè)目的而利用的其 他便攜式設(shè)備。通常期望在多個(gè)設(shè)備之間復(fù)制或同步至少某些數(shù)據(jù)以使得能夠方便地訪問(wèn) 這些數(shù)據(jù)。例如,用戶經(jīng)常將文件從臺(tái)式計(jì)算機(jī)或文件服務(wù)器復(fù)制(或同步)到便攜式計(jì)算 機(jī)或設(shè)備,以供當(dāng)用戶離開辦公室時(shí)使用。此后,用戶很可能在離開辦公室時(shí)修改或添加某 些新文件,并且隨后當(dāng)他們返回到辦公室時(shí)希望將這些文件復(fù)制(同步)到臺(tái)式計(jì)算機(jī)或 文件服務(wù)器。相似地,在另一示例中,用戶可能希望將圖片或音樂(lè)從一個(gè)設(shè)備復(fù)制到另一個(gè) 設(shè)備(例如計(jì)算機(jī)到MP3播放器、數(shù)字照相機(jī)到計(jì)算機(jī)...)。更進(jìn)一步,用戶可能要求跨其 所有計(jì)算機(jī)或計(jì)算機(jī)子集維護(hù)個(gè)人偏好和聯(lián)系人(例如地址簿)。由此,存在其中需要跨多 個(gè)計(jì)算機(jī)或設(shè)備同步特定文件的許多情形。在其最簡(jiǎn)單的形式中,同步僅是使得來(lái)自多個(gè)設(shè)備或系統(tǒng)的指定文件或數(shù)據(jù)在所 有設(shè)備或其子集之間變成相同或一致的任務(wù)。通常,這意味著最新文件版本被用于復(fù)制到 存儲(chǔ)。這個(gè)過(guò)程通常是由雙向、對(duì)等、同步軟件應(yīng)用程序來(lái)自動(dòng)化。具體地,在接收時(shí),同步 應(yīng)用程序可以分析一組信息并且通過(guò)與第一設(shè)備內(nèi)的駐留數(shù)據(jù)進(jìn)行比較來(lái)檢測(cè)文件變更 或添加。此后,可以已經(jīng)更改的或新數(shù)據(jù)例如經(jīng)由硬連線或無(wú)線連接復(fù)制到通信地耦合第 一設(shè)備的第二設(shè)備。當(dāng)然,可以應(yīng)用沖突檢測(cè)和/或解決方案以確保數(shù)據(jù)的準(zhǔn)確性。這使得第一設(shè)備上的文件與第二設(shè)備上的文件同步。同步也可以通過(guò)訪問(wèn)具有諸 如臺(tái)式計(jì)算機(jī)等耦合到其上的第一設(shè)備的網(wǎng)絡(luò)來(lái)遠(yuǎn)程地執(zhí)行??梢允褂猛杰浖?lái)將諸如 第二臺(tái)式計(jì)算機(jī)或膝上型計(jì)算機(jī)等第二設(shè)備與第一設(shè)備同步。不幸的是,當(dāng)今的同步應(yīng)用 程序不符合當(dāng)今不斷增長(zhǎng)的對(duì)提高移動(dòng)性的需求。換而言之,常規(guī)同步應(yīng)用程序需要過(guò)量 的帶寬,因?yàn)橥ǔ⑼暾男畔⒓瘡囊粋€(gè)設(shè)備發(fā)送到另一個(gè)設(shè)備以確定要同步的變更。概述以下提供了本發(fā)明的簡(jiǎn)化概述以提供對(duì)本發(fā)明的某些方面的基本理解。本概述不 是本發(fā)明的廣泛概觀。它不不旨在標(biāo)識(shí)本發(fā)明的關(guān)鍵/重要的元素或描繪本發(fā)明的范圍。 其唯一目的是以簡(jiǎn)化的形式呈現(xiàn)本發(fā)明的一些概念,作為后面呈現(xiàn)的更加詳細(xì)的描述的序
曰ο此處所公開并要求保護(hù)的發(fā)明在其一方面包括一種使得能夠在減少傳輸通信量 的同時(shí)進(jìn)行數(shù)據(jù)同步的系統(tǒng)。鑒于此,本發(fā)明能夠在不需要常規(guī)設(shè)備中所使用的完整的同 步“往返”的情況下完成同步。相反,此處所公開的系統(tǒng)和方法采用交換數(shù)據(jù)和元數(shù)據(jù)以便 于復(fù)雜和智能信息傳遞。在各方面,可以提供向提供者通知數(shù)據(jù)變更、修改、添加或刪除的“知識(shí)”。該“知識(shí)”可以是實(shí)際知識(shí)或某種制造出的“替代”知識(shí),這兩種知識(shí)中的任一種都可以降低同步交換的開銷并提高其效率。有效地,本發(fā)明公開了用于交換例如“知識(shí)”的同步數(shù)據(jù)和/或元數(shù)據(jù)以提高同步過(guò)程的性能的替換模式。各具體方面公開了每一種模式中的用于交換數(shù)據(jù)和/或元數(shù)據(jù)的 操作的各種有效次序。具體地,可以提供“實(shí)際”(或“替代”)知識(shí)以便于復(fù)雜的同步過(guò)程。 此外,本發(fā)明可以從所提供的知識(shí)中進(jìn)行學(xué)習(xí)以進(jìn)一步增強(qiáng)同步過(guò)程。在本發(fā)明的又一方面,提供了機(jī)器學(xué)習(xí)和推理組件,該組件使用基于概率分析和/ 或基于統(tǒng)計(jì)分析來(lái)預(yù)測(cè)或推斷用戶期望自動(dòng)執(zhí)行的動(dòng)作。為了實(shí)現(xiàn)前述及相關(guān)目的,在這里結(jié)合以下描述及附圖來(lái)描述本發(fā)明的某些說(shuō)明 性方面。然而,這些方面僅指示了可采用本發(fā)明的原理的各種方法中的少數(shù)幾種,且本發(fā)明 旨在包括所有這樣的方面及其等效方式。當(dāng)結(jié)合附圖考慮以下本發(fā)明的詳細(xì)描述時(shí),本發(fā) 明的其它優(yōu)點(diǎn)和新穎特征將變得顯而易見(jiàn)。附圖簡(jiǎn)述
圖1示出了根據(jù)本發(fā)明的一方面的便于數(shù)據(jù)同步的系統(tǒng)。圖2示出了根據(jù)本發(fā)明的一方面的采用“知識(shí)”來(lái)增強(qiáng)同步過(guò)程的系統(tǒng)。圖3示出了根據(jù)本發(fā)明的一方面的便于單向基于知識(shí)的同步的過(guò)程的示例性流 程圖。圖4示出了根據(jù)本發(fā)明的一方面的便于接受變更的過(guò)程的示例性流程圖。圖5示出了根據(jù)本發(fā)明的一方面的便于非交錯(cuò)基于知識(shí)的雙向同步的過(guò)程的示 例性流程圖。圖6示出了根據(jù)本發(fā)明的一方面的便于交錯(cuò)基于知識(shí)的雙向同步的過(guò)程的示例 性流程圖。圖7示出了根據(jù)本發(fā)明的一方面的便于基于知識(shí)的多向交錯(cuò)同步的系統(tǒng)的示例 性框圖。圖8示出了根據(jù)本發(fā)明的一方面的便于監(jiān)視源以便進(jìn)行連續(xù)更新的過(guò)程的示例 性流程圖。圖9示出了根據(jù)本發(fā)明的一方面的便于“查驗(yàn)拉取(Ping-to-Pull) ”機(jī)制的過(guò)程 的示例性流程圖。圖10示出了根據(jù)本發(fā)明的一方面的便于通過(guò)中介來(lái)進(jìn)行基于知識(shí)的同步的過(guò)程 的示例性流程圖。圖11示出了可用于執(zhí)行所公開的體系結(jié)構(gòu)的計(jì)算機(jī)的框圖。圖12示出了根據(jù)本發(fā)明的示例性計(jì)算環(huán)境的示意性框圖。詳細(xì)描述現(xiàn)在參照附圖描述本發(fā)明,其中相同的附圖標(biāo)記用于指代全文中相同的元素。在 以下描述中,為解釋起見(jiàn),闡明了眾多具體細(xì)節(jié)以提供對(duì)本發(fā)明的全面理解。然而,顯然,本 發(fā)明可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)現(xiàn)。在其它情況下,以框圖形式示出了公知的結(jié) 構(gòu)和設(shè)備以便于描述本發(fā)明。如在本申請(qǐng)中所使用的,術(shù)語(yǔ)“組件”和“系統(tǒng)”旨在表示計(jì)算機(jī)相關(guān)的實(shí)體,其可 以是硬件、硬件和軟件的組合、軟件、或者執(zhí)行中的軟件。例如,組件可以是但不限于在處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行代碼、執(zhí)行的線程、程序和/或計(jì)算機(jī)。作為說(shuō)明,運(yùn)行在服務(wù)器上的應(yīng)用程序和服務(wù)器都可以是組件。一個(gè)或多個(gè)組件可以駐留在進(jìn)程和 /或執(zhí)行的線程中,并且組件可以位于一臺(tái)計(jì)算機(jī)內(nèi)和/或分布在兩臺(tái)或更多的計(jì)算機(jī)之 間。如此處所使用地,術(shù)語(yǔ)“推斷”或“推論”一般指的是從經(jīng)由事件和/或數(shù)據(jù)捕捉到的一組觀察值推理或推斷系統(tǒng)、環(huán)境和/或用戶的狀態(tài)的過(guò)程。例如,推論可用于標(biāo)識(shí)特 定的上下文或動(dòng)作,或可生成狀態(tài)的概率分布。推斷可以是概率性的,即,基于對(duì)數(shù)據(jù)和事 件的考慮計(jì)算所關(guān)注狀態(tài)的概率分布。推論也可以指用于從一組事件和/或數(shù)據(jù)組成更高 級(jí)事件的技術(shù)。這類推論導(dǎo)致從一組觀察到的事件和/或存儲(chǔ)的事件數(shù)據(jù)中構(gòu)造新的事件 或動(dòng)作,而無(wú)論事件是否在相鄰時(shí)間上相關(guān),也無(wú)論事件和數(shù)據(jù)是來(lái)自一個(gè)還是若干個(gè)事 件和數(shù)據(jù)源。最初參考附圖,圖1示出了便于在提供者之間進(jìn)行數(shù)據(jù)同步的系統(tǒng)100。如圖所 示,系統(tǒng)100可以包括管理兩個(gè)提供者(104、106)之間的同步活動(dòng)的同步引擎102??梢岳?解,雖然圖1所示的系統(tǒng)涉及兩個(gè)提供者的同步系統(tǒng),但是可以理解,本發(fā)明的其他方面可 以包括另外的提供者而不背離本發(fā)明的范圍。在標(biāo)準(zhǔn)同步系統(tǒng)(例如100)中,在同步會(huì)話中存在三個(gè)參與者同步引擎102和 兩個(gè)同步提供者104、106。同步引擎102負(fù)責(zé)協(xié)調(diào)同步會(huì)話。提供者104、106負(fù)責(zé)與正在 同步的端點(diǎn)108、110接口。如圖所示,每一個(gè)提供者104、106對(duì)應(yīng)于某一個(gè)端點(diǎn)或某一類端 點(diǎn)(108、110)??梢岳斫?,用某種同步拓?fù)浣Y(jié)構(gòu)來(lái)不同地同步在一起的多個(gè)端點(diǎn)(108、110) 有時(shí)被稱為“伙伴”。常規(guī)上,有必要的是,同步引擎102和提供者104、106必須在同一計(jì)算機(jī)上的同一 進(jìn)程中運(yùn)行,在一個(gè)計(jì)算機(jī)上的多個(gè)通信進(jìn)程中運(yùn)行,或者在分布在一個(gè)或多個(gè)計(jì)算機(jī)上 的多個(gè)通信進(jìn)程中運(yùn)行。提供了以下單向同步會(huì)話的情形,以便洞察本發(fā)明。因此,本示例 并決不旨在限制本發(fā)明的范圍。根據(jù)本發(fā)明,在單向同步會(huì)話中,將會(huì)有目的地和源(例如104和106)。根據(jù)本發(fā) 明,不管過(guò)程配置如何,目的地提供者可以使其“知識(shí)”對(duì)源提供者可用?!爸R(shí)”的概念將 在下文中更詳細(xì)地描述,概括地,“知識(shí)”可以指目的地在任何特定時(shí)刻“知道”的狀況。因此,源提供者根據(jù)目的地提供者所提供的知識(shí)來(lái)將其還不“知道”的那些變更傳 達(dá)給目的地提供者。在一方面,包括在這些變更中的可以是目的地提供者將在應(yīng)用這些變 更時(shí)“習(xí)得”的“知識(shí)”,即所謂的“習(xí)得知識(shí)”。以下附圖概述了與用于在各個(gè)同步提供者 之間傳達(dá)知識(shí)和變更的模式相關(guān)的各個(gè)實(shí)施例。更具體地,以下附圖至少針對(duì)以下七種情 形1.單向同步;2.雙向、非交錯(cuò)同步;3.雙向、交錯(cuò)同步;4.多向交錯(cuò)同步;5.連續(xù)更新同步;6.查驗(yàn)拉取同步;以及7.通過(guò)中介的同步。
如上所述,在每一種情況下,為了完成高效同步,目的地提供者使其知識(shí)對(duì)源提供者可用。然后,源提供者根據(jù)目的地提供者的知識(shí)來(lái)將目的地提供者還不“知道”的那些變 更傳達(dá)給目的地提供者。在各方面,包括在這些變更中的是目的地提供者將在應(yīng)用這些變 更時(shí)“習(xí)得”的“知識(shí)”,即所謂的“習(xí)得知識(shí)”。圖2示出了根據(jù)本發(fā)明的一方面的系統(tǒng)100的替換框圖。本質(zhì)上,圖2所示的系 統(tǒng)100分別示出了目的地和源提供者組件(104、106)中的每一個(gè)中的子組件。雖然提供者 如圖2中所示地指定,但可以理解,取決于特定同步應(yīng)用程序,每一個(gè)提供者都可以用作源 和/或目的地。由此,在各替換方面,子組件(或其子集)可以被包括在提供這者中的一個(gè) 或兩者中。相似地,如將在下文中描述的,本發(fā)明可以在涉及不止只有兩個(gè)提供者的方面中 采用。這些和其他可以想到的方面應(yīng)被包括在本發(fā)明以及所附的權(quán)利要求書的范圍內(nèi)。如圖所示,目的地提供者104可以包括知識(shí)生成器202和過(guò)濾器204。在操作中, 知識(shí)生成器202可以建立闡述目的地提供者104 (或被服務(wù)的端點(diǎn))內(nèi)的數(shù)據(jù)的狀況的“知 識(shí)”。該知識(shí)用于基于目的地提供者104所維護(hù)或管理的狀態(tài)或狀況來(lái)通知源提供者。該 知識(shí)可以通過(guò)同步引擎102傳送到源提供者106。因此,源提供者106可以包括分析組件206和變更聚集器208,這兩個(gè)組件一起根 據(jù)接收到的知識(shí)來(lái)確定和編譯數(shù)據(jù)。本質(zhì)上,這種對(duì)接收到的知識(shí)的分析提供了用于限制 或減少冗余(或不必要的)信息傳輸?shù)膹?fù)雜邏輯。換而言之,對(duì)知識(shí)的分析使得能夠在將 變更從源提供者發(fā)送到目的地之前做出決定。相似地,可以在替換存儲(chǔ)內(nèi)的日期(或同步)數(shù)據(jù)之前采用過(guò)濾器204來(lái)進(jìn)一步 過(guò)濾任何不必要的變更。該過(guò)濾功能的有效性將在審閱以下的各種情況后變得更加顯而易 見(jiàn)。更具體地,在一方面,在提供“替代知識(shí)”以代替實(shí)際知識(shí)的情況下,過(guò)濾器可以提供用 于進(jìn)一步排除目的地提供者(或所支持的端點(diǎn))內(nèi)的不必要的或冗余同步的必要邏輯。如將結(jié)合以下討論所示出的,也值得考慮的是,源提供者106無(wú)需具有來(lái)自目的 地的知識(shí)。此處,過(guò)濾器組件204可用于限制該集合。此處,目的地知識(shí)用于從源已知的變 更集中過(guò)濾出目的地不知道的變更集。因此,源可以將所有變更轉(zhuǎn)發(fā)給目的地,由此消除源 對(duì)知道目的地的實(shí)際知識(shí)的需求。然而,這要求目的地對(duì)照其自己的知識(shí)來(lái)過(guò)濾來(lái)自源的 變更以便移除過(guò)時(shí)的(或不需要的)知識(shí)。在一替換方面,目的地可以制造某種“替代”知識(shí)(可能更易于表示),以使得對(duì)實(shí) 際知識(shí)未知的所有變更對(duì)于“替代”知識(shí)是未知的,在這種情況下,該信息可以被發(fā)送給目 的地以替代真實(shí)的目的地知識(shí)??梢岳斫猓梢詫?shí)現(xiàn)這種情形以減少線上數(shù)據(jù)傳輸(在知 識(shí)傳輸方面)或簡(jiǎn)化源處的處理。注意,如果考慮到源不知道目的地知識(shí)等價(jià)于“替代”知 識(shí),則該源不知道目的地知識(shí)僅是替代知識(shí)變型的一種特殊情況是清楚的。以下討論列舉了對(duì)于與常規(guī)同步實(shí)現(xiàn)相關(guān)聯(lián)的問(wèn)題的各種解決方案。更具體地, 本發(fā)明針對(duì)與同步相關(guān)聯(lián)的許多問(wèn)題,并且尤其涉及各個(gè)同步提供者之間的知識(shí)和變更的 傳達(dá)模式。以下附圖和討論考慮如下模式單向同步(圖3);雙向、非交錯(cuò)同步(圖5);雙向交錯(cuò)同步(圖6);多向交錯(cuò)同步(圖7);
連續(xù)更新(圖8);查驗(yàn)拉取(圖9);以及通過(guò)中介的同步(圖10)。圖3示出了根據(jù)本發(fā)明的一方面的單向同步的示例性方法。換而言之,圖3示出了根據(jù)本發(fā)明的一方面的在將單個(gè)目的地與單個(gè)源進(jìn)行同步時(shí)所涉及的示例性動(dòng)作。雖然 圖3針對(duì)具有單個(gè)源的單向同步,但是可以理解,可以采用該方法來(lái)將目的地與多個(gè)源同 步,而不背離本發(fā)明的精神和/或范圍。盡管出于簡(jiǎn)明解釋的目的,此處例如以流程圖形式示出的一個(gè)或多個(gè)方法被示出 并描述為一系列動(dòng)作,但是可以理解和明白,本發(fā)明不受動(dòng)作的次序的限制,因?yàn)楦鶕?jù)本發(fā) 明,某些動(dòng)作可以按不同次序和/或與此處所示并描述的其它動(dòng)作同時(shí)發(fā)生。例如,本領(lǐng)域 技術(shù)人員將理解并領(lǐng)會(huì),方法可被替換地表示為諸如狀態(tài)圖中的一系列相互關(guān)聯(lián)的狀態(tài)或 事件。而且,并非所有示出的動(dòng)作都是實(shí)施根據(jù)本發(fā)明的方法所必需的。單向同步可以被認(rèn)為是在提供者(或端點(diǎn))之間同步數(shù)據(jù)的最簡(jiǎn)單的模式之 一??紤]提供者A(例如圖1的104)希望與提供者B(例如圖1的106)同步。如圖1所 示,可以采用同步引擎102來(lái)管理提供者之間的控制流。例如,每一提供者可以展示各種 原語(yǔ)響應(yīng)(例如getchanges (獲取變更))以及用于接受各種原語(yǔ)的結(jié)果的原語(yǔ)(例如 processchanges (處理變更))。在這種情況下,當(dāng)無(wú)狀態(tài)提供者(104、106)簡(jiǎn)單地響應(yīng)各 種方法調(diào)用時(shí),同步引擎102可以驅(qū)動(dòng)同步操作。再次參考圖3,在302,第一提供者(例如提供者A)可以生成對(duì)來(lái)自第二提供者 (例如提供者B)的變更的請(qǐng)求。實(shí)際上,提供者A向提供者B請(qǐng)求變更。如圖所示,提供 者A通常將其“知識(shí)”作為該請(qǐng)求的一部分發(fā)送給提供者B。然而,先前提到的對(duì)于發(fā)送目 的地知識(shí)的各種變型在該方法中也是有效的,例如“替代”知識(shí)。在其他方面,提供者A也 可以發(fā)送諸如批量大小(例如,在同步被分成多批變更的情況下)等各種請(qǐng)求元數(shù)據(jù)。另 夕卜,在提供者B提供多個(gè)同步范圍(例如,概念上的多個(gè)端點(diǎn))的情況下,提供者A可以發(fā) 送范圍標(biāo)識(shí)符(id)。 在304,分析請(qǐng)求,并在306枚舉變更。在該示例中,提供者B計(jì)算提供者A不知道 的變更集(包括版本)。提供者B包括對(duì)應(yīng)于批量中的每一個(gè)變更的習(xí)得知識(shí)。此外,提供 者B還可以包括諸如范圍id、返回批量大小等附加元數(shù)據(jù)。在308,可以將變更從源傳達(dá)到目的地。例如并繼續(xù)上述示例,提供者B將變更集 傳送到提供者A。在這個(gè)動(dòng)作中,變更可以包括已變更項(xiàng)目的標(biāo)識(shí)符、項(xiàng)目的創(chuàng)建版本、項(xiàng)目 的更新版本、指示項(xiàng)目是否已被刪除的標(biāo)志等。標(biāo)識(shí)準(zhǔn)則基本上可以是將變更、修改、添加、 刪除等分類到項(xiàng)目或項(xiàng)目組或者對(duì)項(xiàng)目或項(xiàng)目組的變更、修改、添力口、刪除等進(jìn)行分類的幾 乎任何標(biāo)識(shí)準(zhǔn)則。在具有變更單元的項(xiàng)目的情況下,更新版本可以按照變更單元,由此每一 個(gè)變更單元可以存在一 id。注意,提供者可以在需要或適當(dāng)時(shí)選擇個(gè)別地或按范圍提供變 更。提供者B可以將或不將已變更數(shù)據(jù)包括在批量變更中。另外,如果提供數(shù)據(jù),則提供者 B可以提供關(guān)于項(xiàng)目的所有數(shù)據(jù)或僅僅是變更增量,而不背離本發(fā)明的范圍。在310,接受變更。在上述示例中,提供者A可以接受從提供者B接收到的變更,并 且如下文圖4中所闡述的那樣應(yīng)用這些變更。可以理解,包括此處所提供的示例性方法是 為了洞察本發(fā)明,而絕不旨在限制本發(fā)明。相反,可以理解,存在包括在本發(fā)明以及所附權(quán)利要求書的范圍內(nèi)的其他示例。現(xiàn)在轉(zhuǎn)向圖4,示出了根據(jù)本發(fā)明的一方面的接受變更的示例性方法。本質(zhì)上,方 法310示出了提供者A根據(jù)從提供者B接收到的變更來(lái)執(zhí)行的處理動(dòng)作??梢岳斫?,這些 動(dòng)作幾乎可以按任何順序來(lái)執(zhí)行。同樣,可以理解,圖4的處理方法示出了一示例性情形, 且絕不旨在限制本發(fā)明的范圍。當(dāng)接受變更后,在402,檢測(cè)沖突。此處,檢測(cè)沖突(使用所提供的知識(shí))并且選擇 用于解決檢測(cè)到的沖突的機(jī)制。可以理解,可以使用本領(lǐng)域內(nèi)已知的幾乎任何沖突解決解 決機(jī)制,而不背離此處所描述 的本發(fā)明的精神和范圍。在各方面,沖突解決機(jī)制在需要或適 當(dāng)時(shí)可以是自動(dòng)和/或手動(dòng)的。再進(jìn)一步,可以理解,本發(fā)明可以管理無(wú)法在知識(shí)中檢測(cè)到(例如,它們并非來(lái)自 并發(fā)變更)但是存在的“約束”沖突,因?yàn)闊o(wú)法本地地應(yīng)用遠(yuǎn)程始發(fā)的變更,這通常是由于 違反某一業(yè)務(wù)或處理規(guī)則。例如,如果目的地是文件系統(tǒng),則它可能不允許多個(gè)文件具有相 同的名稱。或者,如果目的地是數(shù)據(jù)庫(kù),則它可以對(duì)表行具有一個(gè)或多個(gè)約束,例如范圍檢 查或其他一致性檢查。這些是沖突,但是它們無(wú)法從知識(shí)中檢測(cè)到。對(duì)于每一個(gè)變更,在404定位對(duì)應(yīng)的本地項(xiàng)目。此處,在目的地提供者中定位對(duì)應(yīng) 于源提供的本地項(xiàng)目的項(xiàng)目。可以理解,圖4的方法對(duì)于由源標(biāo)識(shí)為問(wèn)題項(xiàng)目的每一個(gè)項(xiàng) 目可以是遞歸的。在406,對(duì)于存在沖突或者遠(yuǎn)程版本是沖突獲勝者的情況,取回變更數(shù)據(jù)(如果未 包括在源提供的批次中)。此外,在408,檢測(cè)任何約束沖突(例如不使用知識(shí))。另外,在 408還選擇關(guān)于如何解決沖突的機(jī)制。如分別由410、412和414示出的,或者應(yīng)用變更、或者發(fā)起對(duì)本地項(xiàng)目的沖突解決 和/或記錄沖突。在所有情況下,可以在需要或適當(dāng)時(shí)同時(shí)更新知識(shí)。例如,可以添加對(duì)于 本地知識(shí)變更的習(xí)得知識(shí)。在各方面,在記錄沖突的情況下可以繞過(guò)添加習(xí)得知識(shí)??梢岳?解,圖3和4的方法提供了用于雙向同步(圖5)的框架以及用于描述隨后的其他模式(圖 6-10)的基礎(chǔ)。現(xiàn)在參考圖5,示出了非交錯(cuò)雙向同步的示例性方法。本質(zhì)上,該方法是單向同步 的遞歸版本。圖5所示的方法通常被認(rèn)為是雙向同步的最直接的形式。在這種方法中,提 供者A執(zhí)行來(lái)自提供者B的單向同步,如動(dòng)作502、504、506、508和510所示??梢岳斫猓@ 些動(dòng)作與圖3所示的動(dòng)作302-310相同。在第一次傳遞(例如單向同步)之后,兩個(gè)提供者交換位置,并且提供者B完成來(lái) 自提供者A的雙向同步。這種交換由圖5所示的從510到502的箭頭示出。注意,在檢測(cè) 并解決沖突的情況下,可能需要多個(gè)雙向同步操作來(lái)達(dá)到收斂,尤其是可能在任一端點(diǎn)上 存在約束沖突或在同步期間對(duì)任一端點(diǎn)做出變更的情況。該遞歸功能同樣由從動(dòng)作510到 動(dòng)作502的箭頭示出。示出了根據(jù)本發(fā)明的一方面的交錯(cuò)同步的示例性方法。如圖所示,圖6的方法是 上述雙向同步的變型。在該方法中,一旦目的地提供者與其發(fā)送批次一起傳達(dá)了用知識(shí)作 出的變更(例如動(dòng)作602-608),但在接受變更(例如在610)之前,發(fā)送提供者可以開始來(lái) 自目的地提供者的接收同步。對(duì)來(lái)自目的地提供者的同步的這種發(fā)起由從動(dòng)作608到602 的箭頭示出。由于目的地提供者具有源提供者的可用知識(shí),因此目的地提供者可以確定源不知道的目的地上的變更,并且可以將這些變更發(fā)回到源。這允許源和目的地在雙向同步 期間不同地交錯(cuò)進(jìn)行批量變更交換。 圖7示出了根據(jù)本發(fā)明的各方面的使得能夠進(jìn)行多向交錯(cuò)同步的系統(tǒng)700。本質(zhì) 上,系統(tǒng)700方便作為雙向交錯(cuò)同步(圖6)的變型但用于多個(gè)伙伴(702)的方法。具體地, 考慮提供者A向提供者B發(fā)送變更的情況?,F(xiàn)在考慮某一第三(或第四、第五)提供者,即 提供者 C(D、E. ..N)。此處,提供者C可以開始從提供者B接收變更(例如經(jīng)由同步引擎704);提供者B 可以發(fā)送來(lái)自端點(diǎn)B的提供者C不知道的所有變更,并且另外轉(zhuǎn)發(fā)來(lái)自提供者A的提供者 C也不知道的變更??梢岳斫猓梢越?jīng)由同步引擎704來(lái)完成該數(shù)據(jù)流。注意,在檢測(cè)到?jīng)_ 突并可能解決沖突之后,提供者B可以選擇僅將變更發(fā)送給C (使得沖突解決的機(jī)會(huì)減到最 少)。另外,提供者B可以僅僅將變更“傳遞通過(guò)”提供者C,例如有利于吞吐量。值得考慮 的是,該方法可以擴(kuò)展到多個(gè)提供者,提供者N如提供者C從B接收那樣從C接收等等,其 中N是整數(shù)。圖8示出了根據(jù)本發(fā)明的一方面的示例性連續(xù)更新方法。在該方法中,不存在已 定義的“同步會(huì)話”,相反,會(huì)話僅僅是正在進(jìn)行中。具體地,假設(shè)提供者A想要從接收者B 接收變更。在這種情況下,在802,提供者A向提供者B注冊(cè)它當(dāng)前知識(shí)。因此,在804,提 供者B可以監(jiān)視變更。例如,提供者B可以周期性地(在每一次變更時(shí)或某一種已定義的 或推斷出的定時(shí)器/日程表)檢查以查看是否存在提供者A不知道的變更。此處,在806,可做出決定以確定是否找到變更。如果否,則方法返回到804以監(jiān)視 變更。然而,如果定位到變更,則可以在808處發(fā)起同步。換而言之,在這種情況下,提供者 B可以聯(lián)系提供者A,并且如圖3所示的單向同步那樣發(fā)起同步。注意,在這種情況下,提供 者B可以聯(lián)系提供者A,而提供者A可以用其可能比向提供者B注冊(cè)的知識(shí)更新的當(dāng)前知識(shí) 來(lái)響應(yīng)并且可以將過(guò)時(shí)變更的發(fā)送減到最少?;蛘?,提供者B可以僅用基于所注冊(cè)的知識(shí) 的變更來(lái)回復(fù),這例如可能導(dǎo)致過(guò)時(shí)變更的傳輸,但可能節(jié)省往返行程。由此,可以分別減 少和提高開銷和效率。注意,在參考圖8描述的實(shí)現(xiàn)中,提供者A可以將其知識(shí)發(fā)布給提供者B,并接著當(dāng) 變更最終可用時(shí)阻塞某一遠(yuǎn)程過(guò)程調(diào)用以返回批量變更。或者,提供者A可以將其知識(shí)發(fā) 布給提供者B,切斷連接,而提供者B可以構(gòu)建新連接并在某一將來(lái)時(shí)刻回調(diào)?!N方式也考慮其中提供者A在同步之外周期性地向提供者B注冊(cè)已更新的知識(shí) 的變型。這在A也正在與B之外的伙伴同步的情況下可能是有用的,因?yàn)樗梢允惯^(guò)時(shí)變 更的發(fā)送減到最少。提供者B可以在變更一旦可用時(shí)就返回它們,或者它可以在配置上被 設(shè)置成從第一變更檢測(cè)開始等待某個(gè)時(shí)間段以允許累積一批變更。或者,提供者B可以在 向提供者A發(fā)送變更之前等待直至某一數(shù)量的變更可用。但是這可能導(dǎo)致提供者A處的陳 舊。但是可以理解,在某些情形中這會(huì)是有用的。雖然這些替換方面在圖8中未示出,但是 可以理解,它們應(yīng)被包括在本發(fā)明以及所附權(quán)利要求書的范圍內(nèi)?,F(xiàn)在轉(zhuǎn)向圖9,示出了根據(jù)一方面的便于“查驗(yàn)拉取”變更的示例性方法。在該變 型中,提供者A可以與提供者B同步,但是提供者A不或不能發(fā)起數(shù)據(jù)連接。相反,提供者A只有向提供者B發(fā)送“查驗(yàn)”的能力。由此,在902,提供者A向提 供者B發(fā)送查驗(yàn)而在904提供者B通過(guò)發(fā)起到A的連接來(lái)響應(yīng)。接著在906,提供者A通過(guò)使用該連接來(lái)傳送知識(shí)來(lái)開始同步,并且運(yùn)行上述同步模式中的一種。如果A能夠?qū)⒛承┹^小的數(shù)據(jù)放置到凈荷中,則A可以包括其知識(shí)或者某一 “替 代”知識(shí)(如果空間有限)。在這種情況下,節(jié)省往返行程。另外,如果B可以從所包括的 知識(shí)中確定沒(méi)有要傳送給A的變更,則B可以拒絕回復(fù)A的請(qǐng)求或者B可以發(fā)送某種簡(jiǎn)化 的“沒(méi)有東西要發(fā)送”類型的響應(yīng)?,F(xiàn)在參考圖10,示出了根據(jù)本發(fā)明的一方面的通過(guò)中介同步的示例性方法的替換 框圖。在該變型中,提供者A和提供者B除了經(jīng)由中介M之外不能(或不愿意)連接???以理解,M可以是“啞”數(shù)據(jù)存儲(chǔ)或某種更通用數(shù)據(jù)存儲(chǔ)。在這種情況下,本發(fā)明允許A和B 經(jīng)由M同步。在一直接變型中,提供者A和B彼此在M上放置消息,并且向M輪詢消息,實(shí)際上將M用作存儲(chǔ)和轉(zhuǎn)發(fā)中繼。在更復(fù)雜的變型中,提供者B可以向M發(fā)布包括習(xí)得知識(shí)的變更。 提供者A然后可以檢查這些變更,進(jìn)行過(guò)時(shí)變更檢測(cè),并且然后本地地應(yīng)用不過(guò)時(shí)變更。相 似地,提供者A也可以為B向M發(fā)布變更。另外,可以理解,模型在沒(méi)有修改的情況下縮放 到也向存儲(chǔ)發(fā)布變更并接收變更的其他方。如圖10所示,在1002,第一提供者可以將信息(包括知識(shí))發(fā)送給中介。類似地, 在1004,第二提供者可以將信息發(fā)送給中介。中介可以在1006處理信息并且在1008處將 適當(dāng)?shù)男畔l(fā)送給提供者A和/或B。在1010,提供者A和/或B處理接收到的信息并在 適當(dāng)時(shí)接受變更。在還有一些其他方面,本發(fā)明可采用便于自動(dòng)化根據(jù)本發(fā)明的一個(gè)或多個(gè)特征的 機(jī)器學(xué)習(xí)和推理(MLR)組件。本發(fā)明(例如,結(jié)合接受/處理已變更數(shù)據(jù))可采用各種基 于MLR的方案來(lái)實(shí)現(xiàn)其各個(gè)方面。例如,用于確定何時(shí)接受和/或處理變更的過(guò)程可經(jīng)由 自動(dòng)分類器系統(tǒng)和過(guò)程來(lái)促進(jìn)。分類器是將輸入屬性矢量χ = (xl,x2, x3, x4, xn)映射到該輸入屬于一個(gè)類的置 信度的函數(shù),即f(x)=置信度(類)。這種分類可采用基于概率分析和/或基于統(tǒng)計(jì)分析 (例如,分解成分析效用和成本)來(lái)預(yù)測(cè)或推斷用戶期望自動(dòng)執(zhí)行的動(dòng)作。支持向量機(jī)(SVM)是可采用的分類器的一個(gè)示例。SVM通過(guò)找出可能輸入空間中的超曲面來(lái)操作,其中超曲面試圖將觸發(fā)準(zhǔn)則從非觸發(fā)事件中分離出來(lái)。直觀上,這使得分 類對(duì)于接近但不等同于訓(xùn)練數(shù)據(jù)的測(cè)試數(shù)據(jù)正確??刹捎闷渌ㄏ蚝头嵌ㄏ蚰P头诸惙?法,包括,例如,樸素貝葉斯、貝葉斯網(wǎng)絡(luò)、決策樹、神經(jīng)網(wǎng)絡(luò)、模糊邏輯模型以及提供不同獨(dú) 立性模式的概率分類模型。此處所使用的分類也包括用于開發(fā)優(yōu)先級(jí)模型的統(tǒng)計(jì)回歸。如從本說(shuō)明書中可以容易地理解的,本發(fā)明可以使用顯式訓(xùn)練(例如,經(jīng)由一般訓(xùn)練數(shù)據(jù))以及隱式訓(xùn)練(例如,經(jīng)由觀察用戶行為、接收外來(lái)信息)的分類器。例如,SVM 經(jīng)由分類器構(gòu)造器和特征選擇模塊中的學(xué)習(xí)或訓(xùn)練階段來(lái)配置。因此,分類器可用于自動(dòng) 學(xué)習(xí)和執(zhí)行多個(gè)功能,包括但不限于根據(jù)預(yù)定準(zhǔn)則確定何時(shí)接受和/或處理變更、何時(shí)向 源查驗(yàn)變更、何時(shí)將變更通知給源等。現(xiàn)在參見(jiàn)圖11,示出了可用于執(zhí)行所公開的體系結(jié)構(gòu)的計(jì)算機(jī)的框圖。為了向本發(fā)明的各個(gè)方面提供附加上下文,圖11及以下討論旨在提供其中可實(shí)現(xiàn)本發(fā)明各個(gè)方面 的合適的計(jì)算環(huán)境1100的簡(jiǎn)要、概括描述。盡管本發(fā)明以上是在可在一個(gè)或多個(gè)計(jì)算機(jī)上 運(yùn)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中進(jìn)行描述的,但是本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明也可結(jié)合其它程序模塊和/或作為硬件和軟件的組合來(lái)實(shí)現(xiàn)。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組 件、數(shù)據(jù)結(jié)構(gòu)等等。此外,本領(lǐng)域的技術(shù)人員可以理解,本發(fā)明的方法可用其它計(jì)算機(jī)系統(tǒng) 配置來(lái)實(shí)施,包括單處理器或多處理器計(jì)算機(jī)系統(tǒng)、小型計(jì)算機(jī)、大型計(jì)算機(jī)、以及個(gè)人計(jì) 算機(jī)、手持式計(jì)算設(shè)備、基于微處理器的或可編程消費(fèi)電子產(chǎn)品等,其每一個(gè)都可操作上耦 合到一個(gè)或多個(gè)相關(guān)聯(lián)的設(shè)備。所示的本發(fā)明的各方面也可在其中某些任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè) 備來(lái)執(zhí)行的分布式計(jì)算環(huán)境中實(shí)施。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程 存儲(chǔ)器存儲(chǔ)設(shè)備中。計(jì)算機(jī)通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)訪問(wèn) 的任何可用介質(zhì),并包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。作為示例而非 限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于 存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)的信息的任何方法和技術(shù)實(shí)現(xiàn) 的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、ROM、 EEPR0M、閃存或其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲(chǔ)、磁盒、磁 帶、磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來(lái)存儲(chǔ)所需信息并可由計(jì)算機(jī)訪問(wèn)的任何其它 介質(zhì)。通信介質(zhì)通常以諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來(lái)體現(xiàn)計(jì)算機(jī)可讀 指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),且包含任何信息傳遞介質(zhì)。術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)” 指的是其一個(gè)或多個(gè)特征以在信號(hào)中編碼信息的方式被設(shè)定或更改的信號(hào)。作為示例而非 限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無(wú)線介質(zhì),諸如聲學(xué)、RF、 紅外線和其它無(wú)線介質(zhì)。上述中的任意組合也應(yīng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。再次參考圖11,用于實(shí)現(xiàn)本發(fā)明的各方面的示例性環(huán)境1100包括計(jì)算機(jī)1102,計(jì) 算機(jī)1102包括處理單元1104、系統(tǒng)存儲(chǔ)器1106和系統(tǒng)總線1108。系統(tǒng)總線1108將包括 但不限于系統(tǒng)存儲(chǔ)器1106的系統(tǒng)組件耦合到處理單元1104。處理單元1104可以是市場(chǎng)上 可購(gòu)買到的各種處理器中的任意一種。雙微處理器和其它多處理器體系結(jié)構(gòu)也可用作處理 單元1104。系統(tǒng)總線1108可以是若干種總線結(jié)構(gòu)中的任一種,這些總線結(jié)構(gòu)還可互連到存 儲(chǔ)器總線(帶有或沒(méi)有存儲(chǔ)器控制器)、外圍總線、以及使用各類市場(chǎng)上可購(gòu)買到的總線體 系結(jié)構(gòu)中的任一種的局部總線。系統(tǒng)存儲(chǔ)器1106包括只讀存儲(chǔ)器(ROM) 1110和隨機(jī)存取 存儲(chǔ)器(RAM) 1112?;据斎?輸出系統(tǒng)(BIOS)儲(chǔ)存在諸如R0M、EPR0M、EEPR0M等非易失 性存儲(chǔ)器1110中,其中BIOS包含幫助諸如在啟動(dòng)期間在計(jì)算機(jī)1102內(nèi)的元件之間傳輸信 息的基本例程。RAM 1112還可包括諸如靜態(tài)RAM等高速RAM來(lái)用于高速緩存數(shù)據(jù)。計(jì)算機(jī)1102還包括內(nèi)部硬盤驅(qū)動(dòng)器(HDD) 1114 (例如,EIDE、SATA),該內(nèi)部硬盤驅(qū) 動(dòng)器1114還可被配置成在合適的機(jī)殼(未示出)中外部使用;磁軟盤驅(qū)動(dòng)器(FDD)1116(例 如,從可移動(dòng)磁盤1118中讀取或向其寫入);以及光盤驅(qū)動(dòng)器1120 (例如,從⑶-ROM盤1122 中讀取,或從諸如DVD等高容量光學(xué)介質(zhì)中讀取或向其寫入)。硬盤驅(qū)動(dòng)器1114、磁盤驅(qū)動(dòng) 器1116和光盤驅(qū)動(dòng)器1120可分別通過(guò)硬盤驅(qū)動(dòng)器接口 1124、磁盤驅(qū)動(dòng)器接口 1126和光盤 驅(qū)動(dòng)器接口 1128來(lái)連接到系統(tǒng)總線1108。用于外置驅(qū)動(dòng)器實(shí)現(xiàn)的接口 1124包括通用串行總線(USB)和IEEE 1394接口技術(shù)中的至少一種或兩者。其它外部驅(qū)動(dòng)器連接技術(shù)在本發(fā) 明所考慮的范圍之內(nèi)。驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)提供了對(duì)數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)可執(zhí)行指 令等的非易失性存儲(chǔ)。對(duì)于計(jì)算機(jī)1102,驅(qū)動(dòng)器和介質(zhì)容納適當(dāng)?shù)臄?shù)字格式的任何數(shù)據(jù)的 存儲(chǔ)。盡管以上對(duì)計(jì)算機(jī)可讀介質(zhì)的描述涉及HDD、可移動(dòng)磁盤以及諸如CD或DVD等可移 動(dòng)光學(xué)介質(zhì),但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,示例性操作環(huán)境中也可使用可由計(jì)算機(jī)讀 取的任何其它類型的介質(zhì),諸如zip驅(qū)動(dòng)器、磁帶盒、閃存卡、盒式磁帶等等,并且任何這樣 的介質(zhì)可包含用于執(zhí)行本發(fā)明的方法的計(jì)算機(jī)可執(zhí)行指令。多個(gè)程序模塊可存儲(chǔ)在驅(qū)動(dòng)器和RAM 1112中,包括操作系統(tǒng)1130、一個(gè)或多個(gè)應(yīng) 用程序1132、其它程序模塊1134和程序數(shù)據(jù)1136。所有或部分操作系統(tǒng)、應(yīng)用程序、模塊 和/或數(shù)據(jù)也可被高速緩存在RAM 1112中??梢岳斫猓景l(fā)明可用各種市場(chǎng)上可購(gòu)得的操 作系統(tǒng)或操作系統(tǒng)的組合來(lái)實(shí)現(xiàn)。用戶可以通過(guò)一個(gè)或多個(gè)有線/無(wú)線輸入設(shè)備,例如鍵盤1138和諸如鼠標(biāo)1140 等定點(diǎn)設(shè)備將命令和信息輸入到計(jì)算機(jī)1102中。其它輸入設(shè)備(未示出)可包括話筒、IR 遙控器、操縱桿、游戲手柄、指示筆、觸摸屏等等。這些和其它輸入設(shè)備通常通過(guò)耦合到系統(tǒng) 總線1108的輸入設(shè)備接口 1142連接到處理單元1104,但也可通過(guò)其它接口連接,如并行端 口、IEEE 1394串行端口、游戲端口、USB端口、IR接口等等。監(jiān)視器1144或其它類型的顯示設(shè)備也經(jīng)由諸如視頻適配器1146等接口來(lái)連接到 系統(tǒng)總線1108。除了監(jiān)視器1144之外,計(jì)算機(jī)通常包括諸如揚(yáng)聲器、打印機(jī)等其它外圍輸 出設(shè)備(未示出)。計(jì)算機(jī)1102可使用經(jīng)由有線和/或無(wú)線通信至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),諸如遠(yuǎn)程 計(jì)算機(jī)1148的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)1148可以是工作站、服務(wù)器計(jì) 算機(jī)、路由器、個(gè)人計(jì)算機(jī)、便攜式計(jì)算機(jī)、基于微處理器的娛樂(lè)設(shè)備、對(duì)等設(shè)備或其它常見(jiàn) 的網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括相對(duì)于計(jì)算機(jī)1102描述的許多或所有元件,盡管為簡(jiǎn)明起見(jiàn)僅 示出了存儲(chǔ)器/存儲(chǔ)設(shè)備1150。所描繪的邏輯連接包括到局域網(wǎng)(LAN) 1152和/或例如廣 域網(wǎng)(WAN) 1154等更大的網(wǎng)絡(luò)的有線/無(wú)線連接。這一 LAN和WAN聯(lián)網(wǎng)環(huán)境常見(jiàn)于辦公室 和公司,并且便于諸如內(nèi)聯(lián)網(wǎng)等企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò),所有這些都可連接到例如因特網(wǎng)等 全球通信網(wǎng)絡(luò)。當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)1102通過(guò)有線和/或無(wú)線通信網(wǎng)絡(luò)接口或適 配器1156連接到局域網(wǎng)1152。適配器1156可以便于到LAN 1152的有線或無(wú)線通信,并且 還可包括其上設(shè)置的用于與無(wú)線適配器1156通信的無(wú)線接入點(diǎn)。當(dāng)在WAN連網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)1102可包括調(diào)制解調(diào)器1158,或連接到WAN 1154上的通信服務(wù)器,或具有用于通過(guò)WAN 1154,諸如通過(guò)因特網(wǎng)建立通信的其它裝置。 或?yàn)閮?nèi)置或?yàn)橥庵玫恼{(diào)制解調(diào)器1158以及有線或無(wú)線設(shè)備經(jīng)由串行端口接口 1142連接到 系統(tǒng)總線1108。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)1102所描述的程序模塊或其部分可以存儲(chǔ) 在遠(yuǎn)程存儲(chǔ)器/存儲(chǔ)設(shè)備1150中。應(yīng)該理解,所示網(wǎng)絡(luò)連接是示例性的,并且可以使用在 計(jì)算機(jī)之間建立通信鏈路的其它手段。計(jì)算機(jī)1102可用于與操作上設(shè)置在無(wú)線通信中的任何無(wú)線設(shè)備或?qū)嶓w通信,這 些設(shè)備或?qū)嶓w例如有打印機(jī)、掃描儀、臺(tái)式和/或便攜式計(jì)算機(jī)、便攜式數(shù)據(jù)助理、通信衛(wèi)星、與無(wú)線可檢測(cè)標(biāo)簽相關(guān)聯(lián)的任何一個(gè)設(shè)備或位置(例如,公用電話亭、報(bào)亭、休息室)以及電話。這至少包括Wi-Fi和藍(lán)牙 無(wú)線技術(shù)。由此,通信可以如對(duì)于常規(guī)網(wǎng)絡(luò)那樣是預(yù) 定義結(jié)構(gòu),或者僅僅是至少兩個(gè)設(shè)備之間的自組織(ad hoc)通信。Wi-Fi,即無(wú)線保真,允許從家里沙發(fā)、酒店房間的床上或工作的會(huì)議室連接到因 特網(wǎng)而不需要線纜。Wi-Fi是一種類似蜂窩電話中使用的無(wú)線技術(shù),它使得諸如計(jì)算機(jī)等 設(shè)備能夠在室內(nèi)和室外,在基站范圍內(nèi)的任何地方發(fā)送和接收數(shù)據(jù)。Wi-Fi網(wǎng)絡(luò)使用稱為 IEEE 802. 11 (a、b、g等等)的無(wú)線電技術(shù)來(lái)提供安全、可靠、快速的無(wú)線連接。Wi-Fi網(wǎng)絡(luò) 可用于將計(jì)算機(jī)彼此連接、連接到因特網(wǎng)以及連接到有線網(wǎng)絡(luò)(使用IEEE 802.3或以太 網(wǎng))。Wi-Fi網(wǎng)絡(luò)在未許可的2. 4和5GHz無(wú)線電波段內(nèi)工作,例如以llMbps(802. Ila)或 54 Mbps (802. lib)數(shù)據(jù)速率工作,或者具有包含兩個(gè)波段(雙波段)的產(chǎn)品,因此該網(wǎng)絡(luò)可 提供類似于許多辦公室中使用的基本IOBaseT有線以太網(wǎng)的真實(shí)性能。現(xiàn)在參見(jiàn)圖12,示出了根據(jù)本發(fā)明的示例性的計(jì)算環(huán)境1200的示意性框圖。系統(tǒng) 1200包括一個(gè)或多個(gè)客戶機(jī)1202。客戶機(jī)1202可以是硬件和/或軟件(例如,線程、進(jìn)程、 計(jì)算設(shè)備)。客戶機(jī)1202可例如通過(guò)本發(fā)明而容納cookie和/或相關(guān)聯(lián)的上下文信息。系統(tǒng)1200還包括一個(gè)或多個(gè)服務(wù)器1204。服務(wù)器1204也可以是硬件和/或軟件 (例如,線程、進(jìn)程、計(jì)算設(shè)備)。服務(wù)器1204可以例如通過(guò)使用本發(fā)明來(lái)容納線程以執(zhí)行 變換。在客戶機(jī)1202和服務(wù)器1204之間的一種可能的通信能夠以適合在兩個(gè)或多個(gè)計(jì)算 機(jī)進(jìn)程之間傳輸?shù)臄?shù)據(jù)分組的形式進(jìn)行。數(shù)據(jù)分組可包括例如cookie和/或相關(guān)聯(lián)的上 下文信息。系統(tǒng)1200包括可以用來(lái)使客戶機(jī)1202和服務(wù)器1204之間通信更容易的通信 框架1206 (例如,諸如因特網(wǎng)等全球通信網(wǎng)絡(luò))。通信可經(jīng)由有線(包括光纖)和/或無(wú)線技術(shù)來(lái)促進(jìn)??蛻魴C(jī)1202操作上被連 接到可以用來(lái)存儲(chǔ)對(duì)客戶機(jī)1202本地的信息(例如,cookie和/或相關(guān)聯(lián)的上下文信息) 的一個(gè)或多個(gè)客戶機(jī)數(shù)據(jù)存儲(chǔ)1208。同樣地,服務(wù)器1204可在操作上連接到一個(gè)或多個(gè)服 務(wù)器數(shù)據(jù)存儲(chǔ)1210,這可以用來(lái)存儲(chǔ)對(duì)服務(wù)器1204本地的信息。上面所描述的包括本發(fā)明的各個(gè)示例。當(dāng)然,出于描述本發(fā)明的目的而描述每一 個(gè)可以想到的組件或方法的組合是不可能的,但本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)該認(rèn)識(shí)到,本 發(fā)明的許多進(jìn)一步的組合和排列都是可能的。因此,本發(fā)明旨在涵蓋所有這些落入所附權(quán) 利要求書的精神和范圍內(nèi)的更改、修改和變化。此外,就在說(shuō)明書或權(quán)利要求書中使用術(shù)語(yǔ) “包括”而言,這一術(shù)語(yǔ)旨在以與術(shù)語(yǔ)“包含”在被用作權(quán)利要求書中的過(guò)渡此時(shí)所解釋的相 似的方式為包含性的。
權(quán)利要求
一種便于數(shù)據(jù)同步的系統(tǒng),包括標(biāo)識(shí)提供者的狀態(tài)的知識(shí)數(shù)據(jù)集;以及基于所述知識(shí)數(shù)據(jù)集來(lái)管理多個(gè)提供者之間的數(shù)據(jù)流的同步引擎,其中所述數(shù)據(jù)流定義多個(gè)同步候選。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括知識(shí)生成器,所述知識(shí)生成器至少部 分地基于所述多個(gè)提供者中的一個(gè)的狀態(tài)來(lái)建立所述知識(shí)數(shù)據(jù)集。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括 評(píng)估所述知識(shí)的分析組件;以及基于所述評(píng)估來(lái)枚舉多個(gè)變更的變更聚集器。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括基于所述知識(shí)來(lái)過(guò)濾出所述同步候 選的過(guò)濾器組件。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述知識(shí)是定義目的地提供者的狀態(tài)的實(shí) 際知識(shí)。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述知識(shí)是定義目的地提供者的狀態(tài)的“替 代”知識(shí)。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括機(jī)器學(xué)習(xí)和推理組件,所述機(jī)器學(xué)習(xí) 和推理組件采用推斷用戶期望自動(dòng)執(zhí)行的動(dòng)作的基于概率分析和基于統(tǒng)計(jì)分析中的至少一個(gè)。
8.一種在多個(gè)提供者之間同步數(shù)據(jù)的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括 生成請(qǐng)求,其中所述請(qǐng)求包括知識(shí);至少部分地基于所述知識(shí)來(lái)枚舉多個(gè)變更;以及 至少部分地基于所述知識(shí)來(lái)傳送所述多個(gè)變更。
9.如權(quán)利要求8所述的方法,其特征在于,所述知識(shí)是實(shí)際知識(shí)。
10.如權(quán)利要求8所述的方法,其特征在于,所述知識(shí)是“替代”知識(shí)。
11.如權(quán)利要求8所述的方法,其特征在于,還包括根據(jù)所述知識(shí)來(lái)從所述多個(gè)變更中 過(guò)濾出子集。
12.如權(quán)利要求8所述的方法,其特征在于,還包括接受所述多個(gè)變更的子集。
13.如權(quán)利要求8所述的方法,其特征在于,還包括檢測(cè)所述多個(gè)變更中的每一個(gè)和本 地項(xiàng)目之間的沖突。
14.如權(quán)利要求13所述的方法,其特征在于,還包括 解決所述沖突;以及根據(jù)所述解決來(lái)接受所述多個(gè)變更的子集;
15.如權(quán)利要求14所述的方法,其特征在于,還包括記錄所述沖突。
16.如權(quán)利要求8所述的方法,其特征在于,還包括 監(jiān)視與源提供者相關(guān)聯(lián)的變更;以及基于對(duì)與所述源提供者相關(guān)聯(lián)的變更的標(biāo)識(shí)來(lái)提示所述請(qǐng)求的生成。
17.如權(quán)利要求8所述的方法,其特征在于,還包括 查驗(yàn)源提供者以標(biāo)識(shí)變更;以及基于對(duì)與所述源提供者相關(guān)聯(lián)的變更的標(biāo)識(shí)來(lái)提示所述請(qǐng)求的生成。
18.—種同步數(shù)據(jù)的計(jì)算機(jī)可執(zhí)行系統(tǒng),包括用于生成標(biāo)識(shí)目的地提供者的狀態(tài)的“知識(shí)”的裝置;以及用于基于所述“知識(shí)”來(lái)枚舉源提供者和所述目的地提供者之間的多個(gè)變更的裝置。
19.如權(quán)利要求18所述的計(jì)算機(jī)可執(zhí)行系統(tǒng),其特征在于,還包括用于根據(jù)所枚舉的 變更的子集來(lái)在所述源提供者和所述目的地提供者之間同步數(shù)據(jù)的裝置。
20.如權(quán)利要求18所述的計(jì)算機(jī)可執(zhí)行系統(tǒng),其特征在于,還包括用于基于所枚舉的 變更的子集來(lái)檢測(cè)和解決多個(gè)沖突的裝置。
全文摘要
公開了公開用于交換例如“知識(shí)”的同步數(shù)據(jù)和/或元數(shù)據(jù)以提高同步過(guò)程的性能的替換模式的系統(tǒng)和方法。因此,本發(fā)明公開了在同步數(shù)據(jù)時(shí)采用數(shù)據(jù)和元數(shù)據(jù)的交換來(lái)緩解對(duì)完整的“往返”的需求的同步機(jī)制??梢蕴峁?shù)據(jù)變更、修改、添加或刪除通知給提供者的“知識(shí)”。通過(guò)啟用與枚舉同步過(guò)程中的變更相關(guān)的有知識(shí)的決策制定,“知識(shí)”可以降低同步交換的開銷和/或提高其效率。
文檔編號(hào)G06F15/16GK101809561SQ200880109276
公開日2010年8月18日 申請(qǐng)日期2008年9月23日 優(yōu)先權(quán)日2007年9月25日
發(fā)明者L·諾維克, M·R·克拉克, M·克斯拉維, N·L·帕格特, O·李 申請(qǐng)人:微軟公司