欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

自動同步?jīng)_突解決的制作方法

文檔序號:6359768閱讀:186來源:國知局
專利名稱:自動同步?jīng)_突解決的制作方法
自動同步?jīng)_突解決
背景技術
當前,許多人使用多臺計算機,諸如其家用計算機、工作用計算機、膝上型計算機等等。在使用多臺計算機時,可能出現(xiàn)用戶期望在兩臺計算機上同步對文檔進行的改變的情況。這種同步允許在計算機之一上對文檔做出的改變也自動地在另一臺計算機上做出。然而,這種同步不是沒有問題的。一個這樣的問題是在其能夠相互同步之前可能在兩臺計算機上對這些文檔做出不同的改變,這使之難以準確地確定如何同步這些文檔。

發(fā)明內(nèi)容
提供這個發(fā)明內(nèi)容部分來以簡化的形式介紹下面在具體描述部分中進一步描述的概念的選擇。這個發(fā)明內(nèi)容部分并不打算識別所請求保護的主題的關鍵特征或基本特征,也不打算用于限制所請求保護的主題的范圍。 根據(jù)一個或多個方面,在第一計算設備上做出在第一計算設備上對第一同步項進行的改變與在第二計算設備上對第二同步項進行的改變之間是否具有同步?jīng)_突的確定。執(zhí)行基于規(guī)則的沖突解決(方案)(resolution)來自動解決同步?jīng)_突?;谝?guī)則的沖突解決至少部分基于對第一同步項做出的改變的類型、對第二同步項做出的改變的類型和多個規(guī)則的集合。該解決的通知隨后被發(fā)送到第二計算設備。


在整個附圖中使用相同的數(shù)字來引用相似的特征。圖I說明根據(jù)一個或多個實施例的實現(xiàn)自動同步?jīng)_突解決的示例系統(tǒng)。圖2是說明根據(jù)一個或多個實施例的用于識別哪個計算設備是同步?jīng)_突的解決器(resolver)的示例狀態(tài)圖表的框圖。圖3說明根據(jù)一個或多個實施例的識別解決同步?jīng)_突的結果的示例圖表。圖4是說明根據(jù)一個或多個實施例的用于自動同步?jīng)_突解決的示例過程的流程圖。圖5是說明根據(jù)一個或多個實施例的用于使用規(guī)則集合來自動解決同步?jīng)_突的示例過程的流程圖。圖6說明根據(jù)一個或多個實施例的能夠被配置來實現(xiàn)自動同步?jīng)_突解決的示例計算設備。
具體實施例方式在本文討論自動同步?jīng)_突解決。諸如文件和文件夾之類的不同項能夠在多個計算設備上被同步。多個計算設備之中的每一個計算設備保持它自己的對于這些項的本地拷貝并且將對那些項進行的改變與其他計算設備同步。當出現(xiàn)在不同的計算設備上具有對項進行的相沖突的改變的情況時,這些計算設備之中的一個成為該沖突的解決器。該解決器識別對這些項做出的改變的類型,并應用規(guī)則的集合來自動確定如何解決這些相沖突的改變。該解決器隨后按照利用該規(guī)則集合之中的合適規(guī)則所確定的方式來解決這些相沖突的改變,并將該解決通知其他的計算設備。圖I說明根據(jù)一個或多個實施例的實現(xiàn)自動同步?jīng)_突解決的示例系統(tǒng)100。系統(tǒng)100包括能夠經(jīng)由網(wǎng)絡106與同步服務104通信的多(X)個計算設備102。網(wǎng)絡106可以是各種不同的網(wǎng)絡,這包括因特網(wǎng)、局域網(wǎng)(LAN)、共用電話網(wǎng)絡、蜂窩或其他無線電話網(wǎng)絡、內(nèi)聯(lián)網(wǎng)、其他公用和/或專用網(wǎng)絡、其組合等等。每個計算設備102可以是各種不同類型的設備。例如,計算設備102可以是桌上型計算機、移動站、娛樂設施、通信耦合到顯示設 備的機頂盒、電視、蜂窩或其他無線電話、個人數(shù)字助理(PDA)、游戲控制臺、車用計算機等。因而,每個計算設備102的范圍可以從具有大量內(nèi)存和處理器資源的全資源設備(例如個人計算機、游戲控制臺)到具有有限內(nèi)存和/或處理資源的低資源設備(例如傳統(tǒng)的機頂盒、手持式游戲機)。不同的計算設備102可以是相同類型或二者擇一地不同類型的設備。同步服務104能夠使用各種不同類型的計算設備之中的一個或多個來實現(xiàn)。類似于計算設備102的討論,服務104能夠在從具有大量內(nèi)存和處理器資源的全資源設備到具有有限內(nèi)存和/或處理資源的低資源設備的范圍中進行實現(xiàn)。每個計算設備102包括具有同步饋送模塊114、解決器識別模塊116、沖突解決模塊118和規(guī)則集合120的同步模塊112。同步饋送模塊114識別對計算設備102上的項的本地拷貝做出的改變并將那些改變的通知發(fā)送到具有那些項的本地拷貝的其他計算設備102。解決器識別模塊116識別其中在對同步項的兩個或多個拷貝進行的改變之間或在對兩個或多個不同的同步項進行的改變之間的同步?jīng)_突存在的情況。當同步項的兩個或多個拷貝在不同的計算設備102上以不同的方式被改變時,同步?jīng)_突(也被簡稱為沖突)可能存在。當是文件夾的同步項被改變并且是那個文件夾內(nèi)的文件或其他文件夾的同步項也被改變時,同步?jīng)_突也可能存在。各種不同類型的改變能夠導致同步?jīng)_突,諸如文件的編輯、文件或文件夾的重命名、文件或文件夾的刪除等等,如在下面更詳細討論的。當同步?jīng)_突存在時,每個解決器識別模塊116也確定包括那個解決器識別模塊116的計算設備102是否負責解決該同步?jīng)_突。每個沖突解決模塊118在包括該沖突解決模塊118的計算設備102負責解決同步?jīng)_突時為該計算設備102解決同步?jīng)_突。同步?jīng)_突由沖突解決模塊118基于如在下面更詳細討論的規(guī)則集合120來自動解決。同步?jīng)_突的解決被稱為自動的,這是因為它典型地被執(zhí)行而無需任何的如何解決同步?jīng)_突的用戶輸入或用戶指示。每個計算設備102也具有相應的存儲設備122。存儲設備122可以是固定的或可移動的存儲設備。在一個或多個實施例中,存儲設備122被包括作為計算設備102的一部分(例如,計算設備102的內(nèi)部磁盤驅動器)。作為選擇,這個存儲設備能夠諸如經(jīng)由總線(例如IEEE 1394總線、通用串行總線(USB)、無線通用串行總線(無線USB)等)、經(jīng)由本地網(wǎng)(例如,LAN)等耦合到計算設備102。雖然在圖I的計算設備102中示出單個存儲設備122,但是將意識到計算設備102能夠包括多個存儲設備122。在一個或多個實施例中,同步服務104有助于在計算設備102上項的同步。同步服務104包括同步饋送控制模塊124,其從同步饋送模塊114接收同步饋送并將同步饋送轉發(fā)至在其上面同步項的其他計算設備102的其他同步饋送模塊114。同步饋送包括識別對同步項做出的改變的信息,并且也能夠包括這些同步項本身。在一個或多個實施例中,同步饋送控制模塊124將這些同步饋送存儲某一時間量,從而允許這些同步饋送從一個計算設備102傳送到另一個,即使這兩個計算設備可能沒有同時與同步服務104通信。應注意雖然在圖I中示出同步服務104,但是在其他的實施例中沒有這樣的服務需要被使用。例如,能夠在計算設備102上直接地經(jīng)由網(wǎng)絡106同步項而無需同步服務104的輔助。通過另一個示例,通過計算設備102經(jīng)由有線或無線連接并且獨立于網(wǎng)絡106直接地相互通信而能夠在計算設備102上同步項。在其上面同步項的計算設備102能夠以各種不同的方式來識別。在一個或多個實施例中,特定計算設備102的用戶識別與之同步項的一個或多個其他計算設備102。這一個或多個其他計算設備102能夠例如經(jīng)由在特定計算設備102上顯示或以其它方式呈現(xiàn)的用戶接口來識別。在其上面同步項的這些計算設備102包括例如用戶擁有和/或使用的其他計算設備102。作為選擇,計算設備102能夠與諸如同步服務104之類的遠程服務通信來識別可 能的在其上面同步項的其他計算設備102。這些可能的其他計算設備能夠以不同的方式來識別,諸如通過包括用戶選擇來向同步服務104注冊用于同步的計算設備、用戶從其登錄到同步服務104的計算設備、用戶使用相同的用戶證書(諸如id和口令)從其登錄到同步服務104的計算設備等等來識別。同步服務104保持這些可能的其他計算設備的記錄。這個記錄能夠由計算設備102來訪問,并且由計算設備102顯示或以其它方式呈現(xiàn)的用戶接口允許用戶從這些可能的計算設備中選擇一個或多個計算設備。這些選擇的計算設備是在其上面同步項的設備。在其他可供選擇的實施例中,在其上面同步項的計算設備以不同的方式來識別。例如,項能夠在用戶從其登錄到遠程服務(諸如同步服務104)或使用相同的用戶證書(諸如id和口令)登錄到遠程服務的所有計算設備102上進行同步。通過另一個示例,用戶能夠經(jīng)由利用同步服務104所呈現(xiàn)的用戶接口來指定何時利用特定計算設備將用戶登錄到同步服務104、是否應用設置將利用那個特定計算設備來漫游。應注意雖然本文中的討論包括對計算設備上同步項的引用,但是也能夠在同一計算設備的不同部分上同步項。例如,計算設備102的第一用戶的文件夾(例如,文件夾users\userl\photos (多個用戶\用戶1\相片))和同一計算設備102的第二用戶的文件夾(例如,文件夾users\user2\pictures (多個用戶\用戶2\照片))二者能夠存儲在同一計算設備102的同一存儲設備122上。本文中涉及在計算設備上同步項的討論類似地適用于在同一計算設備的不同部分上同步項。還應注意能夠在計算設備上同步項而與登錄到計算設備的用戶無關。同步項能夠由使用不同的用戶證書登錄到遠程服務的不同用戶來改變。被識別為要進行同步的項被同步而與對項做出改變的用戶無關。各種不同的項能夠在計算設備102上進行同步。能夠被存儲或以其他方式被保持在存儲設備122上的信息或數(shù)據(jù)能夠是在計算設備102上同步的項。在一個或多個實施例中,跨計算設備102同步的項包括文件和文件夾(也被稱為目錄)二者。一個或多個其他文件夾和/或文件能夠存儲在文件夾中。其他類型的信息或數(shù)據(jù)也能夠是在計算設備102上同步的項,諸如配置值或設置。這些其他類型的信息或數(shù)據(jù)不必是文件或文件夾,而能夠是在計算設備102的操作期間例如作為數(shù)據(jù)結構被保持在存儲器中的信息或數(shù)據(jù)。在計算設備102上同步的項也被稱為同步項。同步的特定項能夠以不同的方式來識別。在一個或多個實施例中,存儲設備122上的一個或多個特定文件夾被選擇用于同步。這一個或多個特定文件夾能夠包括默認文件夾和/或用戶選擇的文件夾(或計算設備102的其他組件或模塊)。存儲在這一個或多個文件夾內(nèi)的文件和/或其他文件夾是同步項。作為選擇,同步的特定項能夠以其他的方式來識別,諸如由用戶或管理員選擇的特定文件、在存儲設備122上的所有文件和/或文件夾、在存儲設備122的特定分區(qū)或卷中的所有文件和/或文件夾等。同步饋送模塊114監(jiān)視特定計算設備102上的同步項,其中同步饋送模塊114被包括在特定計算設備102中以識別何時同步項被改變。同步饋送模塊114能夠以各種不同的方式來監(jiān)視同步項。例如,模塊114能夠保持同步項的記錄,該記錄針對每一個同步項包括該同步項的識別符、可選地該同步項的版本號以及通過對該同步項應用各種不同的常 規(guī)哈希(hash)函數(shù)而生成的該同步項的哈希值。模塊114能夠以規(guī)則或不規(guī)則間隔檢查這些同步項,檢查自最后一次檢查這些同步項以來是否已改變這些同步項之中的一個或多個。這個檢查能夠例如通過為同步項生成新的哈希值并將新的哈希值與記錄中用于該同步項的哈希值進行比較來執(zhí)行。如果新的哈希值與記錄中用于該同步項的哈希值是不同的,則對該同步項進行的改變被識別。作為選擇,不是保持對于每個同步項具有哈希值的記錄,而是該記錄能夠針對每個同步項包括時間戳。同步項的時間戳是該同步項最后被改變的時間。時間戳能夠例如通過改變同步項的應用或計算設備的操作系統(tǒng)來記錄。模塊114能夠以規(guī)則或不規(guī)則間隔來檢查同步項,從而檢查自這些同步項被檢查的最后時間以來是否已改變這些同步項中的一個或多個。這個檢查能夠通過例如將同步項的當前時間戳與記錄中該同步項的時間戳進行比較來執(zhí)行。如果該同步項的當前時間戳與記錄中該同步項的時間戳是不同的,則對該同步項進行的改變被識別。作為選擇,對同步項進行的改變能夠以不同的方式來識別。例如,當同步項被改變時,能夠利用另一個組件或模塊(例如,利用做出改變的應用、利用運行在與模塊114相同的計算設備上的操作系統(tǒng)等等)來通知模塊114。同步饋送模塊114給在其上面同步項的其他計算設備102的同步饋送模塊114之中的每一個傳送指示已被識別的每一個改變的同步項的通知。這個指示包括由模塊114在記錄中保持的信息(例如同步項的標識符、同步項的版本號以及同步項的哈希值和/或時間戳)。被改變的同步項還被傳送到其他計算設備102的同步饋送模塊之中的每一個。相應地,每次對同步項進行的改變被一個計算設備102的同步模塊112識別時,被改變的同步項被傳送到在其上面同步該項的其他計算設備102的同步模塊112。作為選擇,同步模塊112能夠將對一個或多個同步項進行的一個或多個改變存儲某一時間量,并且這個時間量能夠變化。例如,這個時間量可以是特定分鐘數(shù)、特定小時數(shù)、在至少閾值數(shù)量的改變已被存儲之前流逝的時間量、在某一其它事件發(fā)生(例如包括同步模塊112的計算設備登錄到遠程服務、包括同步模塊112的計算設備的帶寬量或計算設備耦合至的網(wǎng)絡變得空閑等)之前流逝的時間量等等。 在其它實施例中,被改變的同步項的指示以及被改變的同步項本身二者不需要被傳送到在其上面同步該項的其它計算設備102。例如,只有被改變的同步項能夠被發(fā)送(該項本身充當被改變的同步項的指示)。通過另一個示例,被改變的同步項的指示能夠被發(fā)送,但是被改變的同步項本身不被發(fā)送,直至被另一個計算設備請求(例如,被是沖突的解決器的計算設備請求,如在下文更詳細討論的)。在一個或多個實施例中,同步饋送模塊114保持對同步項做出的改變以及沖突的解決的歷史或其它記錄,而不管在哪個計算設備上做出該改變。這個歷史允許例如用戶或其它組件或模塊查看和識別已對同步項做出的過去的改變以及過去的沖突如何被解決。這個歷史或記錄能夠包括各種不同數(shù)量的改變和沖突解決。例如,只有最近的改變和沖突解決能夠被保持在記錄中,大量的改變(例如,100)和沖突解決能夠被保持在記錄中,占據(jù)特定空間量(例如,I兆字節(jié))的改變和沖突解決能夠被保持,等等。每個計算設備102保持同步項的拷貝。相應地,本文中討論的自動同步?jīng)_突解決所支持的同步也被稱為多主復制系統(tǒng)(multi master replication system)。同步項的拷貝也能夠但不一定通過同步服務104來保持。如下更具體討論的沖突解決期間丟失的同步項的拷貝也能夠通過同步服務104來保持。例如,沒有根據(jù)如下更具體討論的規(guī)則保持的 同步項的拷貝仍然能夠通過同步服務104來保持(例如,以允許用戶回滾或撤銷(rollbackor undue)使用在本文討論的技術自動做出的改變)。在兩個同步項之間可能出現(xiàn)同步?jīng)_突。當同步項的兩個或多個拷貝被改變并且那些改變的指示在大約相同的時間經(jīng)由同步饋送模塊114被傳送時,同步?jīng)_突發(fā)生。在是文件夾的同步項被改變、并且是那個文件夾內(nèi)的文件或其它文件夾的同步項也被改變、而且那些改變的指示在大約相同的時間經(jīng)由同步饋送模塊114被傳送時,同步?jīng)_突也發(fā)生。在沒有沖突已被解決的指示的情況下,同步饋送模塊114確定當模塊114基于它從其它模塊114已接收到的被改變的同步項的指示以及它已識別的被改變的同步項的指示而確定對于同一同步項(或對于另一個同步項內(nèi)的同步項)具有兩個或多個改變時,沖突存在。一旦接收到對其而言沒有沖突的被改變的同步項的指示,同步饋送模塊114就替換存儲設備122中那個同步項的拷貝。同步饋送模塊114也更新針對該同步項的其記錄,以反映被改變的同步項的哈希值或時間戳。這個時間戳指的是在其上最初做出該改變的計算設備上改變該項時的時間戳。在每一個同步饋送模塊114在傳送其改變的同步項的指示以及改變的同步項的拷貝的指示時,在其上面同步這些項的每一個計算設備102具有相沖突的被改變的同步項之中的每一個的拷貝。通常,在其上面同步這些項的計算設備102中的一個成為該沖突的解決器,并基于規(guī)則集合來解決該沖突。解決器隨后將該沖突的解決傳送到在其上面同步這些項的其他計算設備102。當沖突發(fā)生時,每一個同步饋送模塊114識別默認贏家,其是初始被識別為將要使用的同步項的拷貝的同步項的拷貝。默認贏家能夠以各種不同的方式來識別。在一個或多個實施例中,默認贏家被識別為具有最近時間戳的同步項的拷貝(或被改變的同步項的指示)。作為選擇,能夠使用不同的標準,諸如具有至少最近時間戳的同步項的拷貝(或被改變的同步項的指示)、具有為最大值的哈希值的同步項、具有數(shù)值最小的哈希值的同步項、來自已被宣布為主要設備(或主設備或默認獲勝設備)的計算設備102的同步項等等。雖然默認贏家能夠以不同的方式來識別,但是不同的同步饋送模塊114 一般識別默認贏家,以致每一個模塊114識別相同的贏家。不是默認贏家的同步項的拷貝均是默認輸家。默認贏家作為同步項的正確版本向用戶顯示或以其他方式呈現(xiàn)給用戶,盡管這在應用如下所討論的規(guī)則集合120之后可能改變。默認輸家單獨地諸如在單獨的文件夾或存儲設備122的一部分中被保持。然而,在其上面同步這些項的每個計算設備102具有包括默認贏家和默認輸家的相沖突的被改變的同步項之中的每一個的拷貝。默認輸家因而在計算設備102上是可用的,盡管一般不被顯示為可用于計算設備102的用戶。作為選擇,這些默認輸家的一個或多個指示能夠顯示或以其他方式呈現(xiàn)給計算設備102的用戶。作為選擇,默認贏家對于計算設備102的用戶而言不一定被識別。相反,這些同步項的多個拷貝能夠作為正確版本(但是可選地,利用具有沖突的指示)顯示給用戶。在其它實施例中,默認贏家能夠由不同的模塊以不同的方式來識別(這可能導致不同的模塊識別不同的默認贏家)。然而,單個計算設備102成為沖突的解決器,如在下面 更詳細討論的。因而,不同的同步模塊112能夠以不同的方式來表示沖突(包括以不同的方式識別默認贏家),而單個計算設備成為該沖突的解決器。相應地,是默認贏家的特定項能夠基于成為該沖突的解決器的計算設備而變化。在其上面同步項的計算設備102之中的一個成為沖突的解決器。雖然多個計算設備102確定為默認贏家的同步項的拷貝,但是只有一個計算設備102成為該沖突的解決器。對于該沖突而言具有單個解決器,這消除由于多個計算設備102同時解決沖突而導致的級聯(lián)集合的沖突的可能性。沖突的解決器能夠以各種不同的方式來確定,只要只有一個計算設備102成為該沖突的解決器。雖然針對該沖突具有單個解決器,但是在其上面同步這些項的其它計算設備102以規(guī)則或不規(guī)則間隔嘗試成為該沖突的解決器。這樣的嘗試繼續(xù),直至該沖突被解決。因而,如果初始為該沖突的解決器的計算設備102(例如,由于計算設備的故障、計算設備被斷電或退出遠程服務等)不再成為解決器,另一個計算設備102能夠成為解決器并完成解決該沖關。在每個計算設備102中,解決器識別模塊116確定是否那個計算設備102是該沖突的解決器。在一個或多個實施例中,每個解決器識別模塊116嘗試寫入特定值作為指示模塊116正嘗試解決該沖突的令牌(token)。解決器識別模塊116使用開放式并發(fā)技術(optimistic concurrency technique)來驗證多個解決器識別模塊116是否嘗試在大約相同的時間寫到那個令牌,這些模塊116之中只有一個將成功寫到那個令牌。包括成功寫到令牌的解決器識別模塊116的計算設備102是該沖突的解決器。作為選擇,其它的技術能夠用來識別哪個計算設備102是該沖突的解決器。例如,能夠遵循計算設備的預定義排序,諸如選擇具有最低(或二者擇一,最高)數(shù)值設備標識符的計算設備作為解決器。通過另一個示例,同步服務104能夠有助于識別哪個計算設備102是該沖突的解決器,諸如通過保持被解決器標識模塊116請求以便成為沖突的解決器的令牌。同步服務104 —次僅向一個解決器標識模塊116提供令牌,且不給另一模塊116提供該令牌,直到該令牌被返回。包括具有令牌的解決器標識模塊116的計算設備102是該沖突的解決器。通過再一個示例,能夠接收將成為該沖突的解決器的計算設備102之中的一個的用戶選擇。圖2是說明根據(jù)一個或多個實施例的用于識別哪個計算設備是同步?jīng)_突的解決器的示例狀態(tài)圖表200的框圖。狀態(tài)圖表200被每個解決器識別模塊(例如,圖I的模塊116)使用。狀態(tài)圖表200包括初始狀態(tài)202、待定狀態(tài)204、解決狀態(tài)206和空閑狀態(tài)208。與狀態(tài)圖表200 —起,解決器識別模塊使用解決器值。解決器值是能夠由不同計算設備的解決器標識模塊讀取和寫入的值。這個解決器值例如是在使用開放式并發(fā)時的令牌值。初始狀態(tài)202是解決器標識模塊的初始狀態(tài),并且是在解決器標識模塊開始運行時解決器標識模塊的狀態(tài)。如果同步饋送模塊(例如,圖I的模塊112)確定具有沖突,則解決器標識模塊記錄當前的解決器值并過渡到待定狀態(tài)204。然而,如果同步饋送模塊確定沒有沖突,則解決器識別模塊過渡到空閑狀態(tài)208。當在空閑狀態(tài)208中時,解決器識別模塊保留在空閑狀態(tài)208中,直到同步饋送模塊確定具有沖突,此時解決器識別模塊記錄當前的解決器值并過渡到待定狀態(tài)204。在待定狀態(tài)204中,解決器識別模塊通過嘗試寫新的解決器值來嘗試成為沖突的解決器。在處于待定狀態(tài)204中的同時,以規(guī)則或不規(guī)則間隔,解決器識別模塊還讀取當前的解決器值并將讀取的值與以前記錄的解決器值進行比較。在一個或多個實施例中,這個 間隔是時間2t,其中t的值能夠變化(例如30秒、一分鐘、一小時、五小時等)。如果這些值是相同的并且沖突仍然存在,則解決器識別模塊保留在待定狀態(tài)204中。然而,如果這些值不是相同的并且沖突仍然存在,則解決器識別模塊嘗試寫入新的解決器值。解決器嘗試寫入的新的解決器值是例如包括解決器標識模塊的計算設備的標識符和全球唯一標識符(GUID)的組合(例如,級聯(lián))。如果嘗試寫失敗,則解決器標識模塊保留在待定狀態(tài)204中,并記錄當前的解決器值以便在下一個間隔之后在比較時使用。然而,如果嘗試寫成功,則解決器標識模塊過渡到解決狀態(tài)206。在處于待定狀態(tài)204中的同時,如果沖突不再存在,則解決器標識模塊過渡到空閑狀態(tài)208。當解決器標識模塊處于解決狀態(tài)206中時,包括那個解決器標識模塊的計算設備是沖突的解決器。計算設備的沖突解決模塊(例如,圖I的模塊118)基于如下更詳細討論的規(guī)則集合來解決這些沖突。解決器標識模塊保留在解決狀態(tài)206中,解決沖突并在每個沖突被解決之后或以規(guī)則或不規(guī)則間隔寫入新的解決器值。這個規(guī)則或不規(guī)則間隔小于在處于待定狀態(tài)204中時比較解決器值的間隔,并且在一個或多個實施例中,這個間隔位于時間t。如果新的解決器值的寫失敗或另外遇到錯誤,則解決器標識模塊記錄當前的解決器值并過渡到待定狀態(tài)204。在沖突被解決之后,解決器標識模塊過渡到空閑狀態(tài)208。轉到圖1,由為沖突的解決器的計算設備102的沖突解決模塊118來解決沖突。這個解決基于一個或多個規(guī)則的集合120來執(zhí)行。不同類型的沖突可能出現(xiàn),諸如牽涉對同一文件的不同改變的沖突、牽涉文件的改變和刪除的沖突、牽涉文件的改變和其中存儲該文件的文件夾的刪除的沖突等等。此外,對文件進行的改變可能是對文件的內(nèi)容(例如文件數(shù)據(jù)本身)進行的改變或可選地對與文件相關聯(lián)的元數(shù)據(jù)(例如,與音樂文件相關聯(lián)的播放計數(shù)或用戶評級)進行的改變。沖突解決模塊Il8識別已出現(xiàn)的沖突的類型,并從規(guī)則集合120中識別適用于那種類型的沖突的規(guī)則。所識別的規(guī)則規(guī)定該沖突將如何被解決,并且沖突解決模塊118根據(jù)所識別的規(guī)則來解決該沖突。對同步項進行的各種不同的改變可能潛在地導致沖突。這些改變能夠包括例如項的重命名、項的刪除、改變項的內(nèi)容、改變與項相關聯(lián)的元數(shù)據(jù)等。表I列出可能潛在地導致沖突的對同步項進行的改變的類型的示例。將意識到表I中的改變只是示例,并且其它類型的改變也可能潛在地導致 沖突。表 I
權利要求
1.一種在第一計算設備中實現(xiàn)的方法,所述方法包括 確定在第一計算設備上對第一同步項進行的改變和在第二計算設備上對第二同步項進行的改變之間具有同步?jīng)_突; 響應于確定具有同步?jīng)_突,執(zhí)行基于規(guī)則的沖突解決來自動解決所述同步?jīng)_突,所述基于規(guī)則的沖突解決至少部分基于對第一同步項進行的改變的類型、對第二同步項進行的改變的類型和多個規(guī)則的集合;以及 發(fā)送所述基于規(guī)則的沖突解決的通知給第二計算設備。
2.如權利要求I所述的方法,進一步包括 響應于確定具有同步?jīng)_突,嘗試成為所述同步?jīng)_突的解決器;以及 僅在成為所述同步?jīng)_突的解決器的嘗試是成功的情況下,才執(zhí)行所述基于規(guī)則的沖突解決和發(fā)送所述通知。
3.如權利要求2所述的方法,其中在與第二計算設備嘗試成為所述同步?jīng)_突的解決器相同的時間,第一計算設備嘗試成為所述同步?jīng)_突的解決器,并且第一計算設備和第二計算設備之中只有一個成為所述同步?jīng)_突的解決器。
4.如權利要求I所述的方法,進一步包括保持對同步項進行的改變的記錄,其包括在第一計算設備上或在第二計算設備上已做出的對第一同步項進行的改變和對第二同步項進行的改變。
5.如權利要求I所述的方法,其中所述確定進一步包括確定在對第一同步項進行的改變和在一個或多個附加計算設備上對一個或多個附加同步項進行的改變之間具有同步?jīng)_突,并且進一步包括一次或多個附加次數(shù)執(zhí)行所述基于規(guī)則的沖突解決,每一次解決與對一個或多個附加同步項之中的一個進行的改變有關的同步?jīng)_突。
6.如權利要求I所述的方法,其中同步?jīng)_突起因于由第一計算設備的第一用戶對第一同步項做出的改變和由第二計算設備的第二用戶對第二同步項做出的改變,其中第一用戶和第二用戶是不同的用戶。
7.如權利要求I所述的方法,其中第一同步項和第二同步項包括相同文件的不同拷貝。
8.如權利要求I所述的方法,其中第一同步項和第二同步項包括文件夾。
9.如權利要求I所述的方法,其中第一同步項和第二同步項之中的一個包括文件,以及第一同步項和第二同步項之中的另一個包括文件夾。
10.如權利要求I所述的方法,其中第一同步項和第二同步項包括在第一計算設備和第二計算設備的存儲器的數(shù)據(jù)結構中保持的數(shù)據(jù)的不同拷貝。
11.如權利要求I所述的方法,其中執(zhí)行基于規(guī)則的沖突解決包括通過應用指示第一同步項和第二同步項將一起被合并成一個同步項的規(guī)則來自動解決所述同步?jīng)_突。
12.如權利要求I所述的方法,其中執(zhí)行基于規(guī)則的沖突解決包括通過應用指示第一同步項和第二同步項之中的一個將被保持而第一同步項和第二同步項之中的另一個將被丟棄的規(guī)則來自動解決所述同步?jīng)_突。
13.如權利要求I所述的方法,其中執(zhí)行基于規(guī)則的沖突解決包括通過應用指示第一同步項和第二同步項二者將被保持的規(guī)則來自動解決所述同步?jīng)_突。
14.多個計算設備之中的第一計算設備,所述第一計算設備包括處理器;以及 一個或多個計算機可讀媒體,在其上面存儲有多個指令,所述多個指令當由所述處理器執(zhí)行時使得所述處理器 確定在第一計算設備上對第一同步項進行的改變和在多個計算設備之中的第二計算設備上對第二同步項進行的改變之間存在同步?jīng)_突; 嘗試成為所述同步?jīng)_突的解決器,其中第一計算設備或第二計算設備之中的一個成為所述同步?jīng)_突的解決器; 如果第一計算設備沒有成為所述同步?jīng)_突的解決器,則將從所述同步?jīng)_突的解決器接收的同步?jīng)_突的解決并入第一同步項;以及 如果第一計算設備成為所述同步?jīng)_突的解決器,則執(zhí)行基于規(guī)則的沖突解決來解決所述同步?jīng)_突。
15.如權利要求14所述的第一計算設備,其中執(zhí)行基于規(guī)則的沖突解決是 如果所述同步?jīng)_突是編輯一刪除沖突,則保持第一和第二同步項之中是編輯的一個同步項并丟棄第一和第二同步項之中是刪除的一個同步項, 如果所述同步?jīng)_突是添加一刪除沖突,則保持第一和第二同步項之中是添加的一個同步項并丟棄第一和第二同步項之中是刪除的一個同步項, 如果所述同步?jīng)_突是文件編輯一編輯沖突,則在第一和第二同步項能夠被合并的情況下合并第一和第二同步項,否則保持第一和第二同步項二者, 如果所述同步?jīng)_突是刪除一刪除沖突,則合并第一和第二同步項, 如果所述同步?jīng)_突是重命名一重命名沖突,則保持第一和第二同步項之中是最近改變的一個同步項,以及 否則,保持第一和第二同步項二者。
全文摘要
在第一計算設備上做出在第一計算設備上對第一同步項進行的改變與在第二計算設備上對第二同步項進行的改變之間是否具有同步?jīng)_突的確定。如果同步?jīng)_突存在,則執(zhí)行基于規(guī)則的沖突解決來自動解決同步?jīng)_突?;谝?guī)則的沖突解決至少部分基于對第一同步項做出的改變的類型、對第二同步項做出的改變的類型和多個規(guī)則的集合。解決的通知隨后被發(fā)送到第二計算設備。
文檔編號G06F15/16GK102770854SQ201180011793
公開日2012年11月7日 申請日期2011年3月1日 優(yōu)先權日2010年3月2日
發(fā)明者B.D.雷米克, C.M.哈根 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
边坝县| 壶关县| 桃源县| 舞阳县| 萨嘎县| 尼木县| 屏东市| 大悟县| 南和县| 休宁县| 大厂| 崇阳县| 铜川市| 惠州市| 田阳县| 湟源县| 镇沅| 嫩江县| 景宁| 新竹市| 丹江口市| 玛纳斯县| 嘉兴市| 武冈市| 渭南市| 封丘县| 九寨沟县| 内江市| 通化县| 开鲁县| 富源县| 曲松县| 定结县| 米脂县| 井研县| 永年县| 神木县| 澳门| 清河县| 贺兰县| 谷城县|