專利名稱:處理數據沖突的方法、裝置、網絡側服務器及終端的制作方法
技術領域:
本發(fā)明涉及網絡數據集合的同步技術,尤其涉及處理數據沖突的技術。
背景技術:
目前,終端和網絡側可以存儲相同的網絡數據,這些網絡數據以網絡數據集合的 形式存在,網絡數據集合例如是網絡地址本。具體的,用戶一般都會在其使用的多個終端上存儲一些親友的信息。例如,一個用 戶在其使用的移動電話和個人數字助理(PDA,Personal DigitalAssistant)中存儲有通訊 錄,在其使用的臺式計算機和便攜式計算機中也存儲有通訊錄。如果這些通訊錄的內容不 完全相同,那么當這個用戶需要查詢某個聯系人的信息時,這個用戶很可能必須要在某個 終端上才能查詢到這個聯系人的信息。如果由于這個用戶沒有隨身攜帶這個終端等原因, 導致這個用戶當時并不能使用這個終端,那么這個用戶就無法查詢到這個聯系人的信息, 這樣就會給這個用戶的工作等方面造成一些麻煩。所以,人們希望自己使用的各個終端存 儲的通訊錄的內容都能保持一致,也就是要求各個終端存儲的通訊錄都具有統(tǒng)一的標準。為此,本領域技術人員提出了融合地址本(CAB,Converged Address Book)技術, 其中,地址本中具有聯系人的信息。CAB技術支持用戶將地址本備份到網絡側,并且支持多 終端接入,即,備份到網絡側的地址本能夠被用戶的多個終端復用。將地址本備份到網絡側 后,用戶可以修改地址本中的信息,并同步網絡側和各個終端保存的地址本中的信息。在實際應用中,網絡側和終端存儲的同一個網絡數據集合中的數據可能會發(fā)生沖 突。還是以網絡地址本為例,當網絡側和終端進行地址本的同步后,網絡側和終端有可能會 分別修改地址本的同一個數據項,但修改后的這個數據項的內容不相同,這樣,存儲在網絡 側和終端的同一個數據項的內容就會不一致,即,發(fā)生了數據沖突。另外,網絡側和終端也 有可能分別修改不同的數據項,之后,當網絡側和終端同步地址本時,網絡側或終端會發(fā)現 雙方存儲的地址本中有很多數據項的內容不一致,即,發(fā)生了數據沖突?,F有技術提出了下面兩種處理數據沖突的方案1.以網絡側記載的內容為準,忽略終端記載的不一致的內容;2.以終端記載的內容為準,忽略網絡側記載的不一致的內容。本發(fā)明的發(fā)明人在仔細研究上述兩種處理數據沖突的方案后發(fā)現對于方案1, 假設一個用戶通過某一個終端在網絡側將一個數據項的內容修改為第一內容,之后,這個 用戶又希望將這個數據項的內容修改為第二內容,于是,這個用戶在另一個終端上將同一 個數據項的內容修改為第二內容,當網絡側和終端進行地址本的同步時,由于要求以網絡 側記載的內容為準,所以網絡側和終端最后保存的這個數據項的內容是第一內容。但是,第 一內容并不是這個用戶希望保存的內容,因此,網絡側和終端最后保存的這個數據項的內 容是不準確的。同理,對于方案2,假設一個用戶在一個終端上將一個數據項的內容修改為 第一內容,之后,這個用戶又希望將這個數據項的內容修改為第二內容,于是,這個用戶通 過另一個終端在網絡側將同一個數據項的內容修改為第二內容,當網絡側和終端進行地址本的同步時,由于要求以終端記載的內容為準,所以網絡側和終端最后保存的這個數據項 的內容是第一內容。但是,第一內容并不是這個用戶希望保存的內容,因此,網絡側和終端 最后保存的這個數據項的內容是不準確的。由此可見,現有的處理數據沖突的方案可能會使網絡數據集合同步后的內容不準 確。
發(fā)明內容
本發(fā)明實施例提供處理數據沖突的方法、裝置、網絡側服務器及終端,用以保證在 同步網絡數據集合的過程中,當同一個數據項的內容發(fā)生沖突時,同步后的內容準備無誤。一種處理數據沖突的方法,包括第一網絡節(jié)點獲取第二內容,其中,所述第二內 容為第二網絡節(jié)點提供的網絡數據集合中的數據項的內容;如果所述第二內容與第一內容 不同,則第一網絡節(jié)點以所述第一內容和所述第二內容中最新的內容為準進行網絡數據集 合的同步,其中,所述第一內容為所述第一網絡節(jié)點保存的所述數據項的內容。一種處理數據沖突的裝置,包括存儲單元,用于存儲網絡數據集合;獲得單元, 用于獲取第二內容,其中,所述第二內容為第二網絡節(jié)點提供的網絡數據集合中的數據項 的內容;判斷單元,用于判斷所述第二內容與第一內容是否相同,其中,所述第一內容為所 述存儲單元存儲的所述數據項的內容;同步單元,用于如果判斷單元判斷出所述第二內容 與所述第一內容不同,則以所述第一內容和所述第二內容中最新的內容為準進行網絡數據 集合的同步。一種網絡側服務器,包括上述的處理數據沖突的裝置。一種終端,包括上述的處理數據沖突的裝置。在本發(fā)明實施例中,如果兩個網絡節(jié)點保存的同一個數據項的內容不一致,那么 就以兩個網絡節(jié)點保存的內容中最新的內容為準進行網絡數據集合的同步。由于最新的內 容是用戶希望保存的內容,所以,以最新的內容為準進行網絡數據集合的同步可以保證最 后同步的內容準確無誤。
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據這些附圖獲得其他的附圖。圖1為本發(fā)明實施例的一種處理數據沖突的方法的流程圖;圖2為本發(fā)明實施例的一種處理數據沖突的裝置的邏輯結構圖;圖3為圖2所示的同步單元204的一種邏輯結構圖;圖4為圖2所示的同步單元204的另一種邏輯結構圖;圖5為本發(fā)明的第一個具體實施例的流程圖;圖6為本發(fā)明的第二個具體實施例的流程圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。為便于本領域技術人員理解本發(fā)明實施例,首先對幾個技術用語進行說明。一個網絡數據集合可以包括多個數據項,每個數據項可以具有至少一個內容,以 網絡地址本為例,數據項例如是聯系人的姓名、聯系人的電話號碼等。如果數據項是聯系人 的姓名,那么數據項的內容例如是張XX的形式;如果數據項是聯系人的電話號碼,那么數 據項的內容例如是139XXXXXXXX的形式。當然,數據項有時也可以稱為屬性等用語。更新某個數據項的內容可以是指,將這個數據項的內容由一個內容更新為另一個 內容。更新某個數據項的內容也可以是指,這個數據項的內容原本是空白的,或者說,這個 數據項原本無內容,更新后,將某個內容填充到這個數據項中,使這個數據項具有了內容。下面對本發(fā)明實施例的一種處理數據沖突的方法進行說明。如圖1所示,這種方 法包括SlOl 第一網絡節(jié)點獲取第二內容,其中,第二內容為第二網絡節(jié)點提供的網絡數 據集合中的數據項的內容;S102 如果第二內容與第一內容不同,則第一網絡節(jié)點以第一內容和第二內容中 最新的內容為準進行網絡數據集合的同步,其中,第一內容為第一網絡節(jié)點保存的上述數 據項的內容。第一網絡節(jié)點可以是指網絡側存儲網絡數據集合的服務器,第二網絡節(jié)點可以是 指終端;第一網絡節(jié)點也可以是指終端,第二網絡節(jié)點可以是指網絡側存儲網絡數據集合 的服務器;此外,第一網絡節(jié)點可以是指終端,第二網絡節(jié)點也可以是指終端。另外,第一網 絡節(jié)點和第二網絡節(jié)點都存儲SlOl中提到的網絡數據集合,也就是說,SlOl中提到的網絡 數據集合既存儲在第一網絡節(jié)點中,又存儲在第二網絡節(jié)點中。在實際應用中,如果第一網絡節(jié)點與第二網絡節(jié)點存儲的相同的網絡數據集合中的某 個數據項的內容發(fā)生更新,那么第一網絡節(jié)點和第二網絡節(jié)點就需要進行網絡數據集合的同步。具體的,第二網絡節(jié)點可以向第一網絡節(jié)點提供第二網絡節(jié)點保存的網絡數據集 合,這個網絡數據集合包括SlOl中提到的數據項。這樣,第一網絡節(jié)點通過獲取第二網絡 節(jié)點提供的第二網絡節(jié)點保存的網絡數據集合,就獲取了第二網絡節(jié)點提供的上述數據項 的第二內容。當然,第二網絡節(jié)點也可以在將上述數據項的內容更新為第二內容后,向第一網 絡節(jié)點提供第二內容??蛇x的,如果第二網絡節(jié)點只將上述數據項的內容更新為第二內容, 那么第二網絡節(jié)點可以只向第一網絡節(jié)點提供第二內容。通過這種方式,第一網絡節(jié)點也 可以獲取第二網絡節(jié)點提供的上述數據項的第二內容。如果第一內容是最新的內容,則第一網絡節(jié)點可以將第一內容提供給第二網絡節(jié) 點;如果第二內容是最新的內容,則第一網絡節(jié)點可以將第一網絡節(jié)點保存的上述數據項 的第一內容更新為第二內容。如果第二內容與第一網絡節(jié)點保存的上述數據項的第一內容不同,那么為了以最新的內容為準完成網絡數據集合的同步,就需要先區(qū)分第一內容和第二內容中的哪個內容 是最新的。對此,第一網絡節(jié)點和第二網絡節(jié)點在更新任何一個數據項的內容后,可以記錄 更新的時間。在第二網絡節(jié)點向第一網絡節(jié)點提供第二內容的同時,第二網絡節(jié)點向第一 網絡節(jié)點同時提供第二網絡節(jié)點將SlOl中提到的數據項的內容更新為第二內容的時間, 即,第一網絡節(jié)點除獲取第二網絡節(jié)點提供的第二內容外,還獲取第二網絡節(jié)點提供的第 二網絡節(jié)點將上述數據項的內容更新為第二內容的第二時間。這樣,第一網絡節(jié)點就可以 比較第二時間和第一網絡節(jié)點將上述數據項的內容更新為第一內容的第一時間。如果第一 時間在第二時間之后,那么說明第一內容是最新的,此時,第一網絡節(jié)點可以將第一內容提 供給第二網絡節(jié)點,以便第二網絡節(jié)點將上述數據項的內容由第二內容修改為第一內容。 如果第一時間在第二時間之前,那么說明第二內容是最新的,此時,第一網絡節(jié)點需要將第 一網絡節(jié)點保存的上述數據項由第一內容更新為第二內容。在上述方式中,要求第一網絡節(jié)點使用的時間和第二網絡節(jié)點使用的時間是一致 的。而在實際應用中,有些網絡節(jié)點使用的時間可能相對會有些偏差。對此,本發(fā)明實施例 還提供了另外一種區(qū)分最新的內容的方式。即,第一網絡節(jié)點和第二網絡節(jié)點在更新任何 一個數據項的內容后,可以記錄此次更新的時間與第一網絡節(jié)點和第二網絡節(jié)點最近一次 完成網絡數據集合同步的時間之間的間隔。在第二網絡節(jié)點向第一網絡節(jié)點提供第二內容 的同時,第二網絡節(jié)點可以向第一網絡節(jié)點提供第二網絡節(jié)點將上述數據項的內容更新為 第二內容的第二時間間隔,第二時間間隔是指第二網絡節(jié)點將上述數據項的內容更新為第 二內容的第二時間與第一網絡節(jié)點和第二網絡節(jié)點最近一次完成網絡數據集合同步的時 間之間的間隔,即,第一網絡節(jié)點除獲取第二網絡節(jié)點提供的第二內容外,還獲取第二網絡 節(jié)點提供的上述第二時間間隔。這樣,第一網絡節(jié)點就可以比較第二時間間隔和第一網絡 節(jié)點將上述數據項的內容更新為第一內容的第一時間間隔,第一時間間隔是指第一網絡節(jié) 點將上述數據項的內容更新為第一內容的第一時間與第一網絡節(jié)點和第二網絡節(jié)點最近 一次完成網絡數據集合同步的時間之間的間隔。如果第一時間間隔大于第二時間間隔,那 么說明第一內容是最新的,此時,第一網絡節(jié)點可以將第一內容提供給第二網絡節(jié)點,以便 第二網絡節(jié)點將上述數據項的內容由第二內容修改為第一內容。如果第一時間間隔小于第 二時間間隔,那么說明第二內容是最新的,此時,第一網絡節(jié)點將第一網絡節(jié)點保存的上述 數據項的第一內容更新為第二內容。由此可見,根據時間間隔區(qū)分最新的內容可以不必要 求兩個網絡節(jié)點使用的時間一致,所以,這種方式更具有普遍適用性。特別的,在以時間間隔為依據確定最新的內容的情形下,當第一網絡節(jié)點和第二 網絡節(jié)點完成某次網絡數據集合的同步后,如果第一網絡節(jié)點和第二網絡節(jié)點中的一個網 絡節(jié)點始終沒有修改上述數據項的內容,那么當第一網絡節(jié)點和第二網絡節(jié)點再次進行網 絡數據集合的同步時,這個網絡節(jié)點更新上述數據項的內容的時間間隔為0。只要另一個網 絡節(jié)點更新上述數據項的內容的時間間隔大于0,那么另一個網絡節(jié)點更新上述數據項后 的內容就是最新的內容。特別的,上面提到的時間可以是指網絡節(jié)點所應用的時鐘,也可以是指為區(qū)分最 新的內容而單獨設置的時鐘,還可以是指晶振時鐘。特別的,一個用戶可能會在多個網絡節(jié)點修改同一個數據項的內容,并且修改后 的內容互不相同。這種情況下,第一網絡節(jié)點除獲取第二網絡節(jié)點提供的上述數據項的第二內容外,還可能獲取其他網絡節(jié)點提供的上述數據項的其他內容。此時,第一網絡節(jié)點可 以從所有的網絡節(jié)點存儲的上述數據項的內容中選擇出最新的內容,并以最新的內容為準 完成網絡數據集合的同步。對應于上述的處理數據沖突的方法,本發(fā)明實施例還提供一種處理數據沖突的裝 置。如圖2所示,這種裝置包括存儲單元201,用于存儲網絡數據集合;獲得單元202,用于 獲取第二內容,其中,第二內容為第二網絡節(jié)點提供的網絡數據集合中的數據項的內容;判 斷單元203,用于判斷第二內容與第一內容是否相同,其中,第一內容為存儲單元201存儲 的上述數據項的內容;同步單元204,用于如果判斷單元203判斷出第二內容與第一內容不 同,則以第一內容和第二內容中最新的內容為準進行網絡數據集合的同步。在實際應用中,如果存儲單元201與第二網絡節(jié)點存儲的相同的網絡數據集合中 的某個數據項的內容發(fā)生更新,那么同步單元204和第二網絡節(jié)點就需要進行網絡數據集 合的同步。具體的,第二網絡節(jié)點可以向獲得單元202提供第二網絡節(jié)點保存的網絡數據集 合,這個網絡數據集合包括上述數據項。這樣,獲得單元202通過獲取第二網絡節(jié)點提供 的第二網絡節(jié)點保存的網絡數據集合,就獲取了第二網絡節(jié)點提供的上述數據項的第二內容。當然,第二網絡節(jié)點也可以在將上述數據項的內容更新為第二內容后,向獲得單 元202提供第二內容。優(yōu)選的,如果第二網絡節(jié)點只將上述數據項的內容更新為第二內容, 那么獲得單元202可以只向第一網絡節(jié)點提供第二內容。通過這種方式,獲得單元202也 可以獲取第二網絡節(jié)點提供的上述數據項的第二內容。如果第一內容是最新的內容,則同步單元204可以將第一內容提供給第二網絡節(jié) 點;如果第二內容是最新的內容,則同步單元204可以將第一網絡節(jié)點保存的上述數據項 的第一內容更新為第二內容。如果判斷單元203判斷出第二內容與存儲單元201保存的上述數據項的第一內容 不同,那么同步單元204為了以最新的內容為準完成網絡數據集合的同步,就需要先區(qū)分 第一內容和第二內容中的哪個內容是最新的。對此,同步單元204和第二網絡節(jié)點在更新任何一個數據項的內容后,可以記錄 更新的時間。在第二網絡節(jié)點向獲得單元202提供第二內容的同時,第二網絡節(jié)點向獲得 單元202同時提供第二網絡節(jié)點將上述數據項的內容更新為第二內容的時間,即,獲得單 元202除獲取第二網絡節(jié)點提供的第二內容外,還獲取第二網絡節(jié)點提供的第二網絡節(jié)點 將上述數據項的內容更新為第二內容的第二時間。這樣,同步單元204就可以比較第二時 間和同步單元204將上述數據項的內容更新為第一內容的第一時間。如果第一時間在第二 時間之后,那么說明第一內容是最新的,此時,同步單元204可以將第一內容提供給第二網 絡節(jié)點,以便第二網絡節(jié)點將上述數據項的內容由第二內容修改為第一內容。如果第一時 間在第二時間之前,那么說明第二內容是最新的,此時,同步單元204需要將存儲單元201 保存的上述數據項由第一內容更新為第二內容。在具體實現時,同步單元204的邏輯結構 可以如圖3所示,S卩,包括第一比較子單元2041A,用于比較第一時間和第二時間;第一提 供子單元2042A,用于如果第一比較子單元2041A確定第一時間在第二時間之后,則將第一 內容提供給第二網絡節(jié)點;第一更新子單元2043A,用于如果第一比較子單元2041A確定第一時間在第二時間之前,則將存儲單元201保存的上述數據項的第一內容更新為第二內容。另外,同步單元204和第二網絡節(jié)點在更新任何一個數據項的內容后,可以記錄 此次更新的時間與同步單元204和第二網絡節(jié)點最近一次完成網絡數據集合同步的時間 之間的間隔。在第二網絡節(jié)點向獲得單元202提供第二內容的同時,第二網絡節(jié)點可以向 獲得單元202提供第二網絡節(jié)點將上述數據項的內容更新為第二內容的第二時間間隔,第 二時間間隔是指第二網絡節(jié)點將上述數據項的內容更新為第二內容的第二時間與同步單 元204和第二網絡節(jié)點最近一次完成網絡數據集合同步的時間之間的間隔,即,獲得單元 202除獲取第二網絡節(jié)點提供的第二內容外,還獲取第二網絡節(jié)點提供的上述第二時間間 隔。這樣,同步單元204就可以比較第二時間間隔和同步單元204將上述數據項的內容更 新為第一內容的第一時間間隔,第一時間間隔是指同步單元204將上述數據項的內容更新 為第一內容的第一時間與同步單元204和第二網絡節(jié)點最近一次完成網絡數據集合同步 的時間之間的間隔。如果第一時間間隔大于第二時間間隔,那么說明第一內容是最新的,此 時,同步單元204可以將第一內容提供給第二網絡節(jié)點,以便第二網絡節(jié)點將上述數據項 的內容由第二內容修改為第一內容。如果第一時間間隔小于第二時間間隔,那么說明第二 內容是最新的,此時,同步單元204將存儲單元201保存的上述數據項的第一內容更新為第 二內容。在具體實現時,同步單元204的邏輯結構可以如圖4所示,即,包括第二比較子單 元2041B,用于比較第一時間間隔和第二時間間隔;第二提供子單元2042B,用于如果第二 比較子單元2041B確定第一時間間隔大于第二時間間隔,則將第一內容提供給第二網絡節(jié) 點;第二更新子單元2043B,用于如果第二比較子單元2041B確定第一時間間隔小于第二時 間間隔,則將存儲單元201保存的上述數據項的第一內容更新為第二內容。特別的,在以時間間隔為依據確定最新的內容的情形下,當同步單元204和第二 網絡節(jié)點完成某次網絡數據集合的同步后,如果同步單元204或第二網絡節(jié)點始終沒有修 改上述數據項的內容,那么當同步單元204和第二網絡節(jié)點再次進行網絡數據集合的同步 時,同步單元204或第二網絡節(jié)點更新上述數據項的內容的時間間隔為0。只要第二網絡節(jié) 點或同步單元204更新上述數據項的內容的時間間隔大于0,那么第二網絡節(jié)點或同步單 元204更新上述數據項后的內容就是最新的內容。特別的,上面提到的時間可以是指網絡節(jié)點所應用的時鐘,也可以是指為區(qū)分最 新的內容而單獨設置的時鐘,還可以是指晶振時鐘。特別的,一個用戶可能會在多個網絡節(jié)點修改同一個數據項的內容,并且修改后 的內容互不相同。這種情況下,獲得單元202除獲取第二網絡節(jié)點提供的上述數據項的第 二內容外,還可能獲取其他網絡節(jié)點提供的上述數據項的其他內容。此時,同步單元204可 以從所有的網絡節(jié)點存儲的上述數據項的內容中選擇出最新的內容,并以最新的內容為準 完成網絡數據集合的同步。需要說明的是,上述的處理數據沖突的裝置中的每個單元都可以設置或應用在網 絡側服務器或終端中,這些單元在網絡側服務器或終端中的工作方式與在上述的處理數據 沖突的裝置中的工作方式相同,這里不再贅述。還需要說明的是,上述的處理數據沖突的裝置可以設置或應用在第一網絡節(jié)點 中。此時,第一網絡節(jié)點可以是網絡側存儲網絡數據集合的服務器,第二網絡節(jié)點可以是終端。第一網絡節(jié)點也可以是終端,第二網絡節(jié)點也可以是網絡側存儲網絡數據集合的服務 器。此外,第一網絡節(jié)點可以是終端,第二網絡節(jié)點也可以是終端。另外,第一網絡節(jié)點和 第二網絡節(jié)點都可以存儲上述數據項所在的網絡數據集合,也就是說,上述數據項所在的 網絡數據集合既存儲在第一網絡節(jié)點中,又存儲在第二網絡節(jié)點中。為使本領域技術人員更加清楚的理解本發(fā)明實施例,下面再介紹兩個具體實施 例,在這兩個實施例中,網絡數據集合均為網絡地址本。第一個具體實施例在這個具體實施例中,以進行修改的時間作為依據,選擇出最新的內容。具體流程 如圖5所示,包括S501 終端和服務器分別對同一個網絡地址本(即第一網絡地址本)的同一個數 據項(即第一數據項)的內容進行更新,并且終端記錄更新時間為Ta,服務器記錄更新時間 為Tb ;S502 終端將其更新后的上述數據項的內容及更新時間Ta同步給服務器;S503:服務器檢查出終端更新后的上述數據項的內容與服務器更新后的上述數據 項的內容不同,之后,服務器比較Ta和Tb,如果Ta早于Tb,則轉S504,如果Ta晚于Tb,則 轉 S506 ;S504 服務器將其更新后的上述數據項的內容同步給終端,轉S505 ;S505:終端將其更新后的上述數據項的內容更新為服務器更新后的上述數據項的 內容;同步流程結束。S506:服務器將其更新后的上述數據項的內容更新為終端更新后的上述數據項的 內容。同步流程結束。對于第一個具體實施例,正確的選擇出最新的內容的一個前提是,終端的時鐘與 服務器的時鐘應該達到同步。在具體實現時,可以使用多種方式來實現時鐘的同步。例如,對于碼分多址(CDMA,CodeDivision Multiple Access)系統(tǒng),由于 CDMA 網 絡自身的特性,可以直接通過時鐘與CDMA網絡時間同步的方式來實現。再例如,采用網絡時間協議(NTP,Network Time Protocol)的方式來實現。NTP是用來使計算機時間同步化的一種協議,它可以使計算機對其服務器或時鐘 源(如石英鐘、全球定位系統(tǒng)(GPS,Global Position System)等)進行同步化,它可以提 供高精準度的時間校正(局域網(LAN,Local AreaNetwork)上與標準間差小于1毫秒,廣 域網(WAN,Wide Area Network)上與標準間差小于幾十毫秒),且可由加密確認的方式來 防止惡毒的協議攻擊。NTP提供準確時間,首先要有準確的時間來源,這一時間應該是國際標準時間 (UTC,Coordinated Universal Time maintained by International TimeBureau)。NTP獲 取UTC的時間來源可以是原子鐘、天文臺、衛(wèi)星,當然,也可以從互聯網(Internet)上獲取。 時間可以按NTP服務器的等級傳播。具體的,按照離外部UTC源的遠近將所有服務器歸入不 同的Stratum (層)中。Stratum-I在頂層,有外部UTC接入,而Stratum_2則從Stratum-I 獲取時間,Stratum-3從Stratum-2獲取時間,以此類推,但Stratum層的總數限制在15以 內。所有的服務器在邏輯上形成階梯式的架構相互連接,而Stratum-I的時間服務器是整個系統(tǒng)的基礎。計算機主機一般同多個時間服務器連接,利用統(tǒng)計學的算法過濾來自不同服務器 的時間,以選擇最佳的路徑和來源來校正主機時間。即使主機在長時間無法與某一時間服 務器相聯系的情況下,NTP服務依然有效運轉。為防止對時間服務器的惡意破壞,NTP使用了識別(Authentication)機制,檢查 來對時的信息是否是真正來自所宣稱的服務器,并檢查資料的返回路徑,以提供對抗干擾 的保護機制。時間服務器可以利用以下三種方式與其他服務器對時廣播(broadcast)/組播 (multicast)、客戶端(client)/服務器(server)和對稱方式(symmetric)。broadcast/multicast方式主要適用于局域網的環(huán)境,時間服務器周期性的以廣 播的方式,將時間信息傳送給其他網絡中的時間服務器,其時間僅會有少許的延遲,而且配 置非常的簡單。但是,通過此方式得到的時間的精確度并不高,對時間精確度要求不是很高 的情況下可以采用。在symmetric方式中,一臺服務器可以從遠端的時間服務器獲取時鐘,如果需要, 也可將時間信息提供給遠端的時間服務器。此方式適用于配置冗余的時間服務器,時間服 務器可以提供更高的精確度給主機。client/server方式與symmetric方式相似,只是不向其他時間服務器提供時間 信息,此方式適用于一臺時間服務器接收上層時間服務器的時間信息,并提供時間信息給 下層的用戶。對于上述三種方式,時間信息的傳輸都使用用戶數據報文協議(UDP,User Datagram Protocol) 0每一個時間包內包含最近一次事件的時間信息、包上次事件的發(fā)送 與接收時間、傳遞當前事件的當地時間以及此包的接收時間。在收到上述包后,即可計算出 時間的偏差量與傳遞資料的時間延遲。時間服務器利用一個過濾演算法,及先前八個校時 資料計算出時間參考值,判斷后續(xù)校時包的精確性,一個相對較高的離散程度,表示一個對 時資料的可信度比較低。僅從一個時間服務器獲取校時信息,不能校正通信過程所造成的 時間偏差,而同時與許多時間服務器通信校時,就可利用過濾算法找出相對較可靠的時間 來源,然后采用找出的可靠的時間來校時。第二個優(yōu)具體施例在這個具體實施例中,以進行修改的時間間隔作為依據,選擇出最新的內容。具體 流程如圖6所示,包括S601 終端和服務器進行網絡地址本的同步,終端記錄完成同步的時間Ta,服務 器記錄完成同步的時間Tb;S602 終端和服務器分別對同一個數據項(即第一數據項)的內容進行更新,終端 記錄更新的時間間隔Atl,Atl為終端更新上述數據項的內容的時間與Ta的差值,服務器 記錄更新的時間間隔At2,Δ t2為服務器更新上述數據項的內容的時間與Tb的差值。在 實際應用中,終端可以設置一個計時器1,服務器也可以設置一個計時器2,在時間Ta,計時 器1的計數可以置于0,在時間Tb,計時器2的計數可以置于0。當終端更新完上述數據項 的內容時,計數器1的計數就是Atl ;當服務器更新完上述數據項的內容時,計數器2的計 數就是At2。
需要說明的是,終端更新上述數據項的內容時,終端可以處于離線狀態(tài),S卩,終端 沒有與服務器連接,當然,無論終端是處于在線狀態(tài),還是處于離線狀態(tài),計數器1都照常 計時。S603 終端將其更新后的上述數據項的內容及時間間隔Atl同步給服務器。例 如,當終端上線時,終端可以與服務器之間進行網絡地址本的同步,在具體實現時,終端可 以將其更新后的上述數據項的內容同步給服務器。S604:服務器檢查出終端更新后的上述數據項的內容與服務器更新后的上述數據 項的內容不同,之后,服務器比較Atl和At2,如果Atl小于八12,則轉5605,如果Atl 大于At2,則轉S607 ;S605 服務器將其更新后的上述數據項的內容同步給終端,轉S606 ;S606:終端將其更新后的上述數據項的內容更新為服務器更新后的上述數據項的 內容;結束對該數據項的同步。S607:服務器將其更新后的上述數據項的內容更新為終端更新后的上述數據項的 內容;結束對該數據項的同步。在實際應用中,由于某種或某些原因,終端的時鐘可能會發(fā)生非正常的變化。例 如,有的終端重新啟動后,其時鐘可能會歸0。再例如,使用終端的用戶對終端的時鐘進行修 改。這種情況下,終端記錄的更新時間或時間間隔可能會影響服務器選擇最新的內容,或者 說,可能會導致服務器選擇的內容并不是最新的內容。例如,假設當終端在與服務器完成網 絡數據集合的同步后,終端的電池能量耗盡,時鐘歸零。當終端更新某個數據項的內容時, 終端記錄的更新時間為零。如果服務器在與終端完成網絡數據集合的同步后,也更新了上 述數據項的內容,并記錄了大于零的時間Tb,那么當終端將其更新后的上述數據項的內容 及更新時間提供給服務器后,服務器必然要認為自己更新后的上述數據項的內容才是最新 的內容,于是,終端與服務器以服務器更新后的上述數據項的內容為準完成網絡數據集合 的同步。顯然,終端與服務器最后存儲的上述數據項的內容不是用戶希望存儲的內容。對 此,當終端需要更新上述數據項的內容時,可以先檢查當前時間與之前一次完成網絡數據 集合同步的時間,如果當前時間早于之前一次完成網絡數據集合同步的時間,則說明終端 的時鐘在之前一次完成網絡數據集合后調整過,此時,終端可以向用戶提示,將當前時鐘調 整到與之前一次完成網絡數據集合同步的時間相適應。當用戶將終端的時鐘調整到與之前 一次完成網絡數據集合同步的時間相適應后,終端記錄的更新時間才是準確的參考時間。需要說明的是,在實際應用中,一個數據項可以有多個數據,這些數據組成 了這個數據項的內容。以網絡地址本為例,在電話號碼這個數據項中,可能有形式為 “010-59XXXXXX”(固定電話號碼)的數據和形式為“139XXXXXXXX”(移動電話號碼)的數 據,電話號碼這個數據項的內容就是“010-59XXXXXX”和“ 139XXXXXXXX”。在實際應用中, 對于同一個數據項,第一網絡節(jié)點可能保存了關于這個數據項的多個數據,第二網絡節(jié)點 可能只保存了關于這個數據項的一個數據。當第二網絡節(jié)點將關于這個數據項的這一個數 據提供給第一網絡節(jié)點時,如果第一網絡節(jié)點發(fā)現第二網絡節(jié)點提供的這一個數據與第一 網絡節(jié)點自己保存的關于這個數據項的多個數據中的一個數據相同,那么可以認為這種情 形不屬于第二網絡節(jié)點提供的這個項的內容與第一網絡節(jié)點自己保存的這個項的內容不 同的情形。例如,對于電話號碼這個數據項,假設網絡側服務器保存了 “010-59XXXXXX”和
13“139XXXXXXXX”,終端只保存了 “010-59XXXXXX”,當終端將其保存的“010-59XXXXXX”上報 給網絡側服務器后,如果網絡側服務器發(fā)現終端提供的“010-59XXXXXX”與網絡側服務器自 己保存的“010-59XXXXXX”是相同的號碼,那么網絡側服務器可以認為自己保存的電話號碼 這個數據項的內容與終端保存的電話號碼這個數據項的內容并不屬于不相同的情形,這種 情況下,網絡側服務器可以不發(fā)起網絡地址本的同步過程。當然,對于同一個數據項,如果 第一網絡節(jié)點發(fā)現第二網絡節(jié)點只保存關于這個數據項的一個數據,而第一網絡節(jié)點自己 保存了關于這個數據項的多個數據,那么第一網絡節(jié)點也可以認為這種情形屬于第二網絡 節(jié)點提供的這個項的內容與第一網絡節(jié)點自己保存的這個項的內容不同的情形,這種情況 下,第一網絡節(jié)點可以發(fā)起網絡地址本的同步過程,以使第一網絡節(jié)點保存的這個數據項 的內容與第二網絡節(jié)點保存的這個數據項的內容完全一致。還需要說明的是,在本發(fā)明實施例中,對于同一個數據項,兩個網絡節(jié)點保存的這 個數據項的內容不同可以是指,兩個網絡節(jié)點分別將自己保存的這個數據項的內容修改為 不同的內容,而導致兩個網絡節(jié)點對于同一個數據項保存了不同的內容,即,兩個網絡節(jié)點 保存的同一個數據項的內容發(fā)生了沖突。例如,假設網絡側服務器和終端進行網絡地址本 的同步后,網絡側服務器將聯系人A的電話號碼修改為“010-59XXXXXX”,終端將聯系人A的 電話號碼修改為“021-67XXXXXX”。當終端將其保存的聯系人A的電話號碼提供給網絡側服 務器時,網絡側服務器會發(fā)現自己保存的聯系人A的電話號碼“010-59XXXXXX”與終端提供 的聯系人A的電話號碼“021-67XXXXXX”不一致,即,網絡側服務器保存的聯系人A的電話 號碼與終端保存的聯系人A的電話號碼發(fā)生了沖突。綜上所述,如果兩個網絡節(jié)點保存的同一個數據項的內容不一致,那么就以兩個 網絡節(jié)點保存的內容中最新的內容為準進行網絡數據集合的同步。由于最新的內容是用戶 希望保存的內容,所以,以最新的內容為準進行網絡數據集合的同步可以保證最后同步的 內容準確無誤。需要說明的是,對于本發(fā)明實施例的處理數據沖突的裝置、網絡側服務器及終端 來說,其中包括的很多單元都是虛擬單元,即,由計算機語言的語句或語句組合實現。在實 際應用中,不同語句的組合實現的功能可以有所不同,這種情況下,對虛擬單元的劃分也可 能有所不同。也就是說,本發(fā)明實施例只是給出了一種虛擬單元的劃分方式,在實際應用 中,本領域技術人員可以根據實際需要而采用不同的虛擬單元的劃分方式,只要保證能夠 實現本發(fā)明實施例提到的處理數據沖突的裝置、網絡側服務器及終端所具有的功能即可。本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以 通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質 中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為 磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory,ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人 員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應 視為本發(fā)明的保護范圍。
權利要求
一種處理數據沖突的方法,其特征在于,包括第一網絡節(jié)點獲取第二內容,其中,所述第二內容為第二網絡節(jié)點提供的網絡數據集合中的數據項的內容;如果所述第二內容與第一內容不同,則第一網絡節(jié)點以所述第一內容和所述第二內容中最新的內容為準進行網絡數據集合的同步,其中,所述第一內容為所述第一網絡節(jié)點保存的所述數據項的內容。
2.如權利要求1所述的方法,其特征在于,第一網絡節(jié)點獲取所述第二內容包括第一 網絡節(jié)點獲取第二網絡節(jié)點提供的第二網絡節(jié)點保存的網絡數據集合,所述網絡數據集合 包括所述數據項;或第一網絡節(jié)點獲取第二網絡節(jié)點在將所述數據項的內容更新為所述第二內容后、提供 的第二內容。
3.如權利要求1所述的方法,其特征在于,所述方法還包括所述第一網絡節(jié)點獲取所述第二網絡節(jié)點提供的第二網絡節(jié)點將所述數據項的內容 更新為第二內容的第二時間;所述第一網絡節(jié)點保存所述第一網絡節(jié)點將所述數據項的內容更新為所述第一內容 的第一時間;所述第一網絡節(jié)點以所述第一內容和所述第二內容中最新的內容為準進行網絡數據 集合的同步包括所述第一網絡節(jié)點比較所述第一時間和所述第二時間;如果第一時間在第二時間之前,則所述第一網絡節(jié)點將所述第一網絡節(jié)點保存的所述 數據項的所述第一內容更新為所述第二內容。
4.如權利要求3所述的方法,其特征在于,如果所述第一時間在所述第二時間之后,所 述方法還包括所述第一網絡節(jié)點將所述第一內容提供給所述第二網絡節(jié)點。
5.如權利要求1所述的方法,其特征在于,所述方法還包括所述第一網絡節(jié)點獲取第二網絡節(jié)點提供的第二時間間隔,所述第二時間間隔為第二 網絡節(jié)點將所述數據項的內容更新為所述第二內容的第二時間與第一網絡節(jié)點和第二網 絡節(jié)點最近一次完成網絡數據集合同步的時間之間的間隔;第一網絡節(jié)點保存第一時間間隔,所述第一時間間隔為第一網絡節(jié)點將所述數據項的 內容更新為所述第一內容的第一時間與第一網絡節(jié)點和第二網絡節(jié)點最近一次完成網絡 數據集合同步的時間之間的間隔;所述第一網絡節(jié)點以所述第一內容和所述第二內容中最新的內容為準進行網絡數據 集合的同步包括所述第一網絡節(jié)點比較所述第一時間間隔和所述第二時間間隔; 如果所述第一時間間隔小于所述第二時間間隔,則所述第一網絡節(jié)點將所述第一網絡 節(jié)點保存的所述數據項的所述第一內容更新為所述第二內容。
6.如權利要求5所述的方法,其特征在于,如果所述第一時間間隔大于所述第二時間 間隔,所述方法還包括所述第一網絡節(jié)點將所述第一內容提供給所述第二網絡節(jié)點。
7.如權利要求1-6任意一項所述的方法,其特征在于,第一網絡節(jié)點是網絡側存儲網絡數據集合的服務器,第二網絡節(jié)點是終端;或者,第一網絡節(jié)點是終端,第二網絡節(jié)點是網絡側存儲網絡數據集合的服務器;或者, 第一網絡節(jié)點是終端,第二網絡節(jié)點是終端。
8.—種處理數據沖突的裝置,其特征在于,包括 存儲單元,用于存儲網絡數據集合;獲得單元,用于獲取第二內容,其中,所述第二內容為第二網絡節(jié)點提供的網絡數據集 合中的數據項的內容;判斷單元,用于判斷所述第二內容與第一內容是否相同,其中,所述第一內容為所述存 儲單元存儲的所述數據項的內容;同步單元,用于如果判斷單元判斷出所述第二內容與所述第一內容不同,則以所述第 一內容和所述第二內容中最新的內容為準進行網絡數據集合的同步。
9.如權利要求8所述的裝置,其特征在于,所述獲得單元具體用于獲取第二網絡節(jié)點 提供的第二網絡節(jié)點保存的網絡數據集合,所述網絡數據集合包括所述數據項;或者所述獲得單元具體用于獲取第二網絡節(jié)點在將所述數據項的內容更新為所述第二內 容后、提供的第二內容。
10.如權利要求8所述的裝置,其特征在于,所述獲得單元還用于獲取所述第二網絡節(jié) 點提供的第二網絡節(jié)點將所述數據項更新為第二內容的第二時間;所述存儲單元還用于保存同步單元將存儲單元存儲的所述數據項的內容更新為所述 第一內容的第一時間; 所述同步單元包括第一比較子單元,用于比較所述第一時間和所述第二時間;第一更新子單元,用于如果所述第一比較子單元確定第一時間在第二時間之前,則將 所述存儲單元保存的所述數據項的所述第一內容更新為所述第二內容。
11.如權利要求10所述的裝置,其特征在于,所述同步單元還包括第一提供子單元, 用于如果所述第一比較子單元確定第一時間在第二時間之后,則將所述第一內容提供給第 二網絡節(jié)點。
12.如權利要求8所述的裝置,其特征在于,所述獲得單元還用于獲取第二網絡節(jié)點提 供的第二時間間隔,所述第二時間間隔為第二網絡節(jié)點將所述數據項的內容更新為所述第 二內容的第二時間與同步單元和第二網絡節(jié)點最近一次完成網絡數據集合同步的時間之 間的間隔;所述存儲單元還用于保存第一時間間隔,所述第一時間間隔為同步單元將存儲單元存 儲的所述數據項的內容更新為所述第一內容的第一時間與同步單元和第二網絡節(jié)點最近 一次完成網絡數據集合同步的時間之間的間隔; 所述同步單元包括第二比較子單元,用于比較所述第一時間間隔和所述第二時間間隔; 第二更新子單元,用于如果第二比較子單元確定所述第一時間間隔小于所述第二時間 間隔,則將所述存儲單元保存的所述數據項的所述第一內容更新為所述第二內容。
13.如權利要求12所述的裝置,其特征在于,所述同步單元還包括第二提供子單元, 用于如果第二比較子單元確定所述第一時間間隔大于所述第二時間間隔,則將所述第一內容提供給第二網絡節(jié)點。
14.一種網絡側服務器,其特征在于,包括如權利要求8-13任意一項所述的處理數據 沖突的裝置。
15.一種終端,其特征在于,包括如權利要求8-13任意一項所述的處理數據沖突的裝置。
全文摘要
本發(fā)明提供一種處理數據沖突的方法,包括第一網絡節(jié)點獲取第二內容,其中,所述第二內容為第二網絡節(jié)點提供的網絡數據集合中的數據項的內容;如果所述第二內容與第一內容不同,則第一網絡節(jié)點以所述第一內容和所述第二內容中最新的內容為準進行網絡數據集合的同步,其中,所述第一內容為所述第一網絡節(jié)點保存的所述數據項的內容。本發(fā)明還提供一種處理數據沖突的裝置、一種網絡側服務器和一種終端。在本發(fā)明中,如果兩個網絡節(jié)點保存的同一個數據項的內容不一致,那么就以兩個網絡節(jié)點保存的內容中最新的內容為準進行網絡數據集合的同步,這樣可以保證最后同步的內容準確無誤。
文檔編號G06F17/30GK101924747SQ20091020368
公開日2010年12月22日 申請日期2009年6月17日 優(yōu)先權日2009年6月17日
發(fā)明者楊健, 王浩, 王雷, 范姝男 申請人:華為終端有限公司