一種數據同步方法及系統的製作方法
2023-08-06 10:01:26 1
專利名稱:一種數據同步方法及系統的製作方法
技術領域:
本發明涉及數據同步,尤其涉及一種基於客戶端/伺服器模型的數據同步方法與系統。
背景技術:
網際網路為人們提供豐富的服務,比如地址本管理,聊天記錄管理。這些服務的特點是基於客戶端/伺服器(C/S)模型,用戶通過客戶端與伺服器交互。由於客戶端數量巨大,客戶端需要頻繁地向伺服器發回數據和處理請求,對伺服器的性能要求非常高,在低帶寬或高延遲的情況下,情況會被惡化,產生的性能問題可能導致應用程式可用性和用戶效率大幅度下降。為了提高客戶端操作的性能,當前很多系統採用了在客戶端部署代碼和數據,在本地執行和訪問數據,通過本地數據緩存,減少從客戶端傳輸到伺服器的數據量,進而提高系統的性能和實用性。這種處理方式客戶端和伺服器都存在數據,系統需要進行必要的數據同步。比如在聊天工具中,用戶在客戶端進行地址簿維護,添加聯繫人信息,修改聯繫人號碼,刪除聯繫人等,系統修改伺服器數據後再修改客戶端的數據,這些操作可能在多個客戶端進行,這樣,各個客戶端的數據和伺服器數據可能不一致,造成客戶端操作的數據不是最新數據的問題。
現有技術一的同步方案完全下載同步方案,用戶在客戶端每次操作本地資料庫前,首先從伺服器下載相關表的所有數據,完成同步,然後進行維護操作。
現有技術一的缺點數據表的數據量一般比較大,頻繁完全下載數據,效率低,嚴重影響伺服器性能,與本地數據方案提高性能的目標有衝突,在數據量大的系統中不可用。
現有技術二的同步方案資料庫系統負責同步處理,系統定義哪些表需要同步即可,資料庫的列級和行級檢測保證同步。
現有技術二的缺點此方案需要客戶端具備本地資料庫,對客戶端的運行設備要求比較高。
發明內容
本發明提供一種數據同步方法,用以解決現有技術中存在的客戶端和伺服器之間數據同步效率低、以及對伺服器及客戶端設備要求較高的問題。
根據本發明提供的方法,本發明另提供一種相對應的數據同步系統。
本發明方法包括對用戶數據記錄根據操作順序設置遞增的記錄版本號;客戶端將本地存儲的用戶數據記錄的最大記錄版本號作為客戶端數據總版本號;伺服器將本地存儲的該用戶數據記錄的最大記錄版本號作為該用戶數據總版本號;當客戶端登錄伺服器時,執行下列步驟A、客戶端向伺服器發起數據同步請求,攜帶所述客戶端數據總版本號;B、伺服器判斷所述客戶端數據總版本號和該用戶數據總版本號是否相同,當兩者不相同時,伺服器將本地存儲的記錄版本號大於客戶端數據總版本號的該用戶的數據記錄,發送給客戶端,進行數據同步。
所述步驟A之前還包括客戶端判斷本地數據文件是否存在或損壞;當本地數據文件不存在或已損壞時,創建新的數據文件;所述步驟A中,所述客戶端向伺服器發起數據同步請求,攜帶客戶端數據總版本號為0;所述步驟B中,伺服器將本地存儲的該用戶的全部用戶數據記錄發送給所述客戶端,進行數據完全同步並記錄完全同步時間。
根據本發明的上述方法,還包括所述客戶端登錄伺服器後,向所述伺服器發起數據記錄操作請求,攜帶操作類型信息;所述伺服器根據請求的操作類型對用戶數據記錄執行相應操作,並返回操作結果信息和當前伺服器中存儲的該用戶數據總版本號;所述客戶端對本地用戶數據記錄進行相應操作,並更新客戶端數據總版本號為伺服器返回的該用戶數據總版本號。
根據本發明的上述方法,當所述客戶端向伺服器發起新增數據記錄請求時,攜帶操作類型為新增記錄;所述伺服器新增一條用戶數據記錄,設置該新增記錄的記錄版本號;更新伺服器端存儲的該用戶數據總版本號;並獲取該客戶端的地址信息,返回新增記錄操作結果和更新後的該用戶數據總版本號;所述客戶端新增對應的用戶數據記錄,並更新客戶端數據總版本號為伺服器返回的該用戶數據總版本號。
根據本發明的上述方法,當所述客戶端向伺服器發起刪除數據記錄請求時,攜帶操作類型為刪除記錄;所述伺服器對請求刪除的用戶數據記錄設置刪除標誌、更新其記錄版本號;更新伺服器端存儲的該用戶數據總版本號;並獲取該客戶端的地址信息,返回刪除記錄操作結果和更新後的該用戶數據總版本號;所述客戶端實刪除本地對應的用戶數據記錄,並更新客戶端數據總版本號為伺服器返回的該用戶數據總版本號。
根據本發明的上述方法,所述伺服器定期執行實刪除操作,刪除本地有刪除標誌的用戶數據記錄;並記錄最近一次執行實刪除操作的對應時間。
根據本發明的上述方法,當客戶端登錄伺服器發起數據同步請求時,所述伺服器還判斷該客戶端的完全同步時間是否早於最近一次執行實刪除操作的時間;如果是,將本地存儲的該用戶的全部數據記錄發送給該客戶端,進行數據完全同步,並攜帶該用戶數據總版本號。
根據本發明的上述方法,當所述客戶端向伺服器發起修改數據記錄請求時,攜帶操作類型為修改記錄;所述伺服器對請求修改的用戶數據記錄先進行實刪除,再新增一條對應的數據記錄,設置該新增記錄的記錄版本號;更新伺服器端存儲的該用戶數據總版本號;並獲取該客戶端的地址信息,返回修改記錄操作結果和更新後的該用戶數據總版本號;所述客戶端修改本地對應的用戶數據記錄,並更新客戶端數據總版本號為伺服器返回的該用戶數據總版本號。
根據本發明的上述方法,當用戶同時有兩個或以上的客戶端登錄伺服器,且伺服器根據其中之一客戶端發起的數據記錄操作請求,對用戶數據記錄進行操作後,獲取已登錄的其餘客戶端的地址信息,將發生了變化的數據記錄及變化後的該用戶數據總版本號發送給其餘客戶端;所述其餘客戶端分別對本地用戶數據記錄進行相應操作,並更新本地存儲的客戶端數據總版本號為伺服器返回的該用戶數據總版本號。
所述記錄版本號為遞增的整數值,或為表示當前具體時間的對應時間戳。
本發明提供一種數據同步系統,包括客戶端和伺服器,所述客戶端包括有同步請求執行單元,用於向伺服器發起數據同步請求,攜帶客戶端數據總版本號;所述客戶端數據總版本號為客戶端本地存儲的用戶數據記錄的最大記錄版本號;所述伺服器包括有同步判斷執行單元,用於接收客戶端的數據同步請求,判斷所述客戶端數據總版本號和該用戶數據總版本號是否相同,所述該用戶數據總版本號為伺服器存儲的該用戶數據記錄的最大記錄版本號;當兩者不相同時,伺服器將本地存儲的記錄版本號大於客戶端數據總版本號的該用戶的數據記錄,發送給客戶端,進行數據同步。
所述客戶端還包括第一數據記錄操作單元,向所述伺服器發起數據記錄操作請求,攜帶操作類型信息;在接收到伺服器返回的操作結果信息和該用戶數據總版本號後,對本地用戶數據記錄進行相應操作,並更新客戶端數據總版本號為伺服器返回的該用戶數據總版本號;所述伺服器還包括第二數據記錄操作單元,根據客戶端請求的操作類型對用戶數據記錄執行相應操作,並向客戶端返回操作結果信息和當前伺服器中存儲的該用戶數據總版本號。
所述第二數據記錄操作單元包括記錄操作執行模塊,根據客戶端請求的操作類型對用戶數據記錄執行相應操作;記錄版本號生成模塊,對被操作的用戶數據記錄生成新的遞增的記錄版本號;用戶數據總版本更新發送模塊,將本地存儲的該用戶數據記錄的最大記錄版本號作為該用戶數據總版本號並發送給客戶端。
本發明有益效果如下(1)本發明採用對用戶數據記錄根據操作順序設置遞增的記錄版本號;客戶端將本地存儲的用戶數據記錄的最大記錄版本號作為客戶端數據總版本號;伺服器將本地存儲的該用戶數據記錄的最大記錄版本號作為該用戶數據總版本號;當客戶端登錄伺服器時,客戶端向伺服器發起數據同步請求,攜帶客戶端數據總版本號;由伺服器判斷客戶端數據總版本號和該用戶數據總版本號是否相同,當兩者不相同時,伺服器將本地存儲的記錄版本號大於客戶端數據總版本號的該用戶的數據記錄,發送給客戶端,進行數據同步。這樣,數據同步量僅為客戶端與伺服器之間的差異部分,同步的數據量小,減少了客戶端與伺服器的交互數據量和交互次數,提高了數據同步效率。
(2)當用戶同時有兩個或以上的客戶端登錄伺服器,且伺服器根據其中之一客戶端發起的數據記錄操作請求,對用戶數據記錄進行操作後,獲取已登錄的其餘客戶端的地址信息,將發生了變化的數據記錄及變化後的該用戶數據總版本號發送給其餘客戶端;其餘客戶端分別對本地用戶數據記錄進行相應操作,並更新本地存儲的客戶端數據總版本號為伺服器返回的該用戶數據總版本號。這樣,對同一用戶的多個客戶端數據實現了實時同步,保證了各客戶端數據的準確性和完整性。
圖1為本發明實施例客戶端登錄伺服器的信令交互流程圖;圖2為本發明實施例客戶端登錄伺服器之後請求新增用戶數據記錄信令流程圖;圖3為本發明系統結構示意圖。
具體實施例方式
本發明提供的數據同步方法,應用於客戶端和伺服器之間的數據同步。下面結合附圖對本發明方法進行詳細描述。
在伺服器端,為每一個用戶建立一個或多個用戶數據表,存儲用戶的用戶數據記錄。在伺服器與客戶端之間,需要同步的是該用戶的用戶數據。
在伺服器中,為每一個用戶的用戶數據每一條記錄設置一個對應的記錄版本號,該記錄版本號根據對用戶數據記錄的操作順序設置為一個遞增的整數值,或設置為對應的時間戳,如YYYYMMDDHHMMSS,表示當前記錄的操作時間為某年某月某日某時某分某秒,以此作為該數據記錄的記錄版本號。
在伺服器中,每一個用戶的用戶數據對應一個伺服器端此用戶數據總版本號。採用被操作的最後一條用戶數據記錄對應的記錄版本號作為該用戶的伺服器端用戶數據總版本號;即伺服器將本地存儲的用戶記錄的最大記錄版本號作為該用戶數據總版本號。若採用時間戳作為記錄版本號,則伺服器端用戶數據總版本號為最近時間戳。
本發明還對需要刪除的用戶數據記錄分兩步進行處理第一步,對需要刪除的用戶數據記錄在伺服器端設置刪除標記,稱為偽刪除;第二步,伺服器定期執行實刪除操作,將設置了刪除標記的記錄從本地真正刪除。
伺服器端為了實現對每個用戶的管理和數據同步,還需要存儲一些相應的管理信息。例如(1)在伺服器端存儲用戶完全同步記錄表,如下表1所示表1
(2)在伺服器端存儲用戶數據總版本號記錄表,如下表2所示表2
表2中的用戶數據總版本號也可以是時間戳,且當對用戶數據記錄進行了操作時,進行相應改變。例如,當伺服器對用戶AAA的一條用戶記錄數據進行了修改,則該條記錄的記錄版本號必須改變為一個大於3的整數值,假設該條記錄的記錄版本號變為4,則用戶AAA在伺服器端的當前數據總版本號也變為4。
(3)在伺服器中存儲用戶的呼叫日誌表,如下表3所示表3
表3中,用戶數據的記錄版本號,對同一個用戶,不會存在兩條記錄擁有相同的記錄版本號;但對於不同的用戶,可以具有相同的記錄版本號。如表3中的用戶AAA請求對自己的記錄版本號為3的用戶數據進行修改;用戶BBB請求對自己的記錄版本號為3的用戶數據進行刪除;儘管兩條數據記錄的記錄版本號都是3,但由於是分屬於不同用戶的數據,因此,可以具有相同的記錄版本號。
(4)在伺服器中存儲客戶端登錄信息表,如下表4所示表4
在伺服器中還存儲最近一次對用戶數據執行實刪除操作的時間,當客戶端的完全同步時間早於伺服器最近一次執行實刪除操作的時間,則必須對客戶端進行一次完全同步即刪除客戶端數據文件,重新建立新的數據文件,將伺服器中存儲的該用戶的全部記錄數據都發送到該用戶客戶端。
當用戶客戶端首次登錄伺服器後,伺服器將本地存儲的該用戶的全部用戶數據及對應的用戶數據總版本號發送給該客戶端;客戶端在本地存儲用戶數據,並將伺服器發送的用戶數據總版本號作為本地客戶端數據總版本號,首次實現數據完全同步。
當客戶端再次登錄伺服器後,主動向伺服器發起數據同步請求,攜帶本地存儲的客戶端數據總版本號;伺服器將接收到的客戶端數據總版本號和伺服器存儲的該用戶數據總版本號進行比較,若兩者相同,表示該用戶的數據已同步;如果客戶端數據總版本號較小,則表示客戶端和伺服器端數據不同步,伺服器將本地存儲的記錄版本號大於客戶端數據總版本號的該用戶的記錄數據發送給該客戶端,進行數據同步。
以個人地址通訊簿同步為例,具體步驟流程圖如圖1所示,包括1、用戶通過客戶端發起登錄伺服器的申請;2、伺服器對用戶進行合法性鑑權,鑑權通過後,記錄客戶端IP位址和埠號,並返回相應信息,由客戶端呈現給用戶(如一些可操作的功能列表,用戶個人的一些資料等);3、客戶端首先判斷個人客戶端通訊簿文件是否存在或者是否損壞;如果文件不存在或已損壞,則執行步驟4;否則,直接執行步驟5;4、如果文件不存在,則創建文件,並設置客戶端數據總版本號為0;如果文件損壞,則刪除已損壞文件後再創建新文件,並設置客戶端數據總版本號為0;如果文件存在並且沒有損壞,繼續步驟5;5、客戶端發起數據同步請求,攜帶客戶端數據總版本號信息;6、如果伺服器判斷客戶端數據總版本號等於0,則讀取伺服器中用戶通訊簿數據,進行完全同步;如果伺服器判斷客戶端數據總版本號大於0,則進一步判斷該用戶數據的最後一次完全同步時間是否早於伺服器端最近一次實刪除時間,如果是,則必須進行完全同步;否則,伺服器選擇出該用戶通訊簿數據記錄版本號大於同步請求中攜帶的客戶端數據總版本號的記錄,發送給客戶端;如果伺服器中不存在數據記錄版本號大於客戶端數據總版本號的相應記錄,則表示數據已同步;7、伺服器向客戶端返回同步標識、步驟6中獲取的用戶的通訊簿記錄和伺服器端該用戶的用戶數據總版本號;8、客戶端根據同步標識分析是否需要進行完全同步或部分同步;如果需要完全同步,則刪除客戶端數據文件,重新建新的數據文件,並記錄完全同步時間;如果僅需要部分同步,則根據需要同步的記錄對應的操作類型進行相應處理;如果操作類型為新增類型,則在客戶端增加一條相應記錄;如果操作類型為修改類型,則在客戶端數據文件中先刪除對應記錄,然後增加一條記錄;如果操作類型為刪除類型,則在客戶端數據文件中進行記錄刪除;並更新客戶端數據總版本號為伺服器端返回的用戶數據總版本號。
以上流程為客戶端登錄伺服器時實現數據同步。當客戶端登錄伺服器後,客戶端可以向伺服器發起數據記錄操作申請,攜帶操行類型信息,例如客戶端向伺服器請求新增記錄、刪除記錄或修改記錄;伺服器收到客戶端發起的記錄操作請求後,根據操作類型對相應的記錄進行操作,並返回操作結果信息和更新後的用戶數據總版本號。
如果用戶同時有兩個或以上的客戶端登錄伺服器,伺服器根據其中之一客戶端發起的數據記錄操作請求,對用戶數據記錄進行操作後,獲取已登錄的其餘客戶端的地址信息,將發生了變化的數據記錄及變化後的該用戶數據總版本號發送給其餘客戶端;其餘客戶端分別對本地用戶數據記錄進行相應操作,並更新本地存儲的客戶端數據總版本號為伺服器返回的該用戶數據總版本號,實現數據同步。
如圖2所示,為用戶的客戶端1請求往地址簿中新增記錄時,通過伺服器實現數據同步流程圖,具體步驟包括1、用戶通過客戶端1往地址簿中增加一聯繫人,客戶端查詢本地數據,判斷不存在該記錄,向伺服器發起新增記錄申請;2和3、如果伺服器判斷此記錄不存在,則新增一條用戶數據記錄;將該記錄的操作類型設置為新增,設置該記錄的記錄版本號,並更新伺服器端該用戶數據總版本號;如果伺服器判斷該記錄存在,由於客戶端在登錄時已與伺服器進行過數據同步,則該記錄在伺服器端的最近操作類型應為刪除類型,在這種情況下,伺服器將該記錄的操作類型更改為新增,設置該記錄的記錄版本號,並更新伺服器端該用戶的數據總版本號;4、伺服器獲取客戶端1的IP位址和埠號,返回操作結果信息和該用戶在伺服器端的用戶數據總版本號;5、客戶端1在本地新增對應記錄;6、客戶端1更新本地存儲的客戶端數據總版本號為伺服器端發送的用戶數據總版本號。
如果伺服器將該新增的記錄同時加入到了用戶其它登錄客戶端的地址簿中,則需要對用戶的其他已經登錄的客戶端進行數據同步,具體步驟包括4』、伺服器獲取已登錄的其它客戶端2的IP位址和埠號,發送同步更新消息,通知客戶端2新增一條記錄,並攜帶伺服器端該用戶數據總版本號;5』客戶端2在本地新增對應記錄;6』客戶端2更新本地存儲的客戶端數據總版本號為伺服器端發送的用戶數據總版本號。
根據本發明提供的上述方法,本發明另提供一種相對應的數據同步系統,其結構示意圖如圖3所示,包括包括客戶端和伺服器,其中客戶端包括有同步請求執行單元,用於向伺服器發起數據同步請求,攜帶客戶端數據總版本號;所述客戶端數據總版本號為客戶端本地存儲的用戶數據記錄的最大記錄版本號;伺服器包括有同步判斷執行單元,用於接收客戶端的數據同步請求,判斷所述客戶端數據總版本號和該用戶數據總版本號是否相同,所述該用戶數據總版本號為伺服器存儲的該用戶數據記錄的最大記錄版本號;當兩者不相同時,伺服器將本地存儲的記錄版本號大於客戶端數據總版本號的該用戶的數據記錄,發送給客戶端,進行數據同步。
所述客戶端還包括第一數據記錄操作單元,向伺服器發起數據記錄操作請求,攜帶操作類型信息;在接收到伺服器返回的操作結果信息和該用戶數據總版本號後,對本地用戶數據記錄進行相應操作,並更新客戶端數據總版本號為伺服器返回的該用戶數據總版本號;伺服器還包括第二數據記錄操作單元,根據客戶端請求的操作類型對用戶數據記錄執行相應操作,並向客戶端返回操作結果信息和當前伺服器中存儲的該用戶數據總版本號。
第二數據記錄操作單元還可以包括記錄操作執行模塊,根據客戶端請求的操作類型對用戶數據記錄執行相應操作;記錄版本號生成模塊,對被操作的用戶數據記錄生成新的遞增的記錄版本號;用戶數據總版本更新發送模塊,將本地存儲的該用戶數據記錄的最大記錄版本號作為該用戶數據總版本號並發送給客戶端。
綜上所述,本發明通過在客戶端登錄伺服器過程中,由客戶端主動發起數據同步請求,伺服器僅將本地存儲的記錄版本號大於客戶端數據總版本號的該用戶的數據記錄,發送給客戶端,這樣,數據同步量僅為客戶端與伺服器之間的差異部分,同步的數據量小,減少了客戶端與伺服器的交互數據量和交互次數,提高了數據同步效率。
客戶端登錄伺服器後,可以發起數據記錄操作請求,如新增數據、刪除數據和修改數據,伺服器和客戶端數據進行同步更新。且當用戶同時有兩個或以上的客戶端登錄伺服器,且伺服器根據其中之一客戶端發起的數據記錄操作請求,對用戶數據記錄進行操作後,通過獲取已登錄的其餘客戶端的地址信息,將發生了變化的數據記錄及變化後的該用戶數據總版本號發送給其餘客戶端;其餘客戶端分別對本地用戶數據記錄進行相應操作,並更新本地存儲的客戶端數據總版本號為伺服器返回的該用戶數據總版本號。這樣,對同一用戶的多個客戶端數據實現了實時同步,保證了各客戶端數據的準確性和完整性。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1.一種數據同步方法,應用於客戶端和伺服器之間的數據同步,其特徵在於,包括對用戶數據記錄根據操作順序設置遞增的記錄版本號;客戶端將本地存儲的用戶數據記錄的最大記錄版本號作為客戶端數據總版本號;伺服器將本地存儲的該用戶數據記錄的最大記錄版本號作為該用戶數據總版本號;當客戶端登錄伺服器時,執行下列步驟A、客戶端向伺服器發起數據同步請求,攜帶所述客戶端數據總版本號;B、伺服器判斷所述客戶端數據總版本號和該用戶數據總版本號是否相同,當兩者不相同時,伺服器將本地存儲的記錄版本號大於客戶端數據總版本號的該用戶的數據記錄,發送給客戶端,進行數據同步。
2.如權利要求1所述的方法,其特徵在於,所述步驟A之前還包括客戶端判斷本地數據文件是否存在或損壞;當本地數據文件不存在或已損壞時,創建新的數據文件;所述步驟A中,所述客戶端向伺服器發起數據同步請求,攜帶客戶端數據總版本號為0;所述步驟B中,伺服器將本地存儲的該用戶的全部用戶數據記錄發送給所述客戶端,進行數據完全同步並記錄完全同步時間。
3.如權利要求2所述的方法,其特徵在於,還包括所述客戶端登錄伺服器後,向所述伺服器發起數據記錄操作請求,攜帶操作類型信息;所述伺服器根據請求的操作類型對用戶數據記錄執行相應操作,並返回操作結果信息和當前伺服器中存儲的該用戶數據總版本號;所述客戶端對本地用戶數據記錄進行相應操作,並更新客戶端數據總版本號為伺服器返回的該用戶數據總版本號。
4.如權利要求3所述的方法,其特徵在於,當所述客戶端向伺服器發起新增數據記錄請求時,攜帶操作類型為新增記錄;所述伺服器新增一條用戶數據記錄,設置該新增記錄的記錄版本號;更新伺服器端存儲的該用戶數據總版本號;並獲取該客戶端的地址信息,返回新增記錄操作結果和更新後的該用戶數據總版本號;所述客戶端新增對應的用戶數據記錄,並更新客戶端數據總版本號為伺服器返回的該用戶數據總版本號。
5.如權利要求3所述的方法,其特徵在於,當所述客戶端向伺服器發起刪除數據記錄請求時,攜帶操作類型為刪除記錄;所述伺服器對請求刪除的用戶數據記錄設置刪除標誌、更新其記錄版本號;更新伺服器端存儲的該用戶數據總版本號;並獲取該客戶端的地址信息,返回刪除記錄操作結果和更新後的該用戶數據總版本號;所述客戶端實刪除本地對應的用戶數據記錄,並更新客戶端數據總版本號為伺服器返回的該用戶數據總版本號。
6.如權利要求5所述的方法,其特徵在於,所述伺服器定期執行實刪除操作,刪除本地有刪除標誌的用戶數據記錄;並記錄最近一次執行實刪除操作的對應時間。
7.如權利要求6所述的方法,其特徵在於,當客戶端登錄伺服器發起數據同步請求時,所述伺服器還判斷該客戶端的完全同步時間是否早於最近一次執行實刪除操作的時間;如果是,將本地存儲的該用戶的全部數據記錄發送給該客戶端,進行數據完全同步,並攜帶該用戶數據總版本號。
8.如權利要求3所述的方法,其特徵在於,當所述客戶端向伺服器發起修改數據記錄請求時,攜帶操作類型為修改記錄;所述伺服器對請求修改的用戶數據記錄先進行實刪除,再新增一條對應的數據記錄,設置該新增記錄的記錄版本號;更新伺服器端存儲的該用戶數據總版本號;並獲取該客戶端的地址信息,返回修改記錄操作結果和更新後的該用戶數據總版本號;所述客戶端修改本地對應的用戶數據記錄,並更新客戶端數據總版本號為伺服器返回的該用戶數據總版本號。
9.如權利要求1-8任意權項所述的方法,其特徵在於,當用戶同時有兩個或以上的客戶端登錄伺服器,且伺服器根據其中之一客戶端發起的數據記錄操作請求,對用戶數據記錄進行操作後,獲取已登錄的其餘客戶端的地址信息,將發生了變化的數據記錄及變化後的該用戶數據總版本號發送給其餘客戶端;所述其餘客戶端分別對本地用戶數據記錄進行相應操作,並更新本地存儲的客戶端數據總版本號為伺服器返回的該用戶數據總版本號。
10.如權利要求1-8任意權項所述的方法,其特徵在於,所述記錄版本號為遞增的整數值,或為表示當前具體時間的對應時間戳。
11.一種數據同步系統,包括客戶端和伺服器,其特徵在於所述客戶端包括有同步請求執行單元,用於向伺服器發起數據同步請求,攜帶客戶端數據總版本號;所述客戶端數據總版本號為客戶端本地存儲的用戶數據記錄的最大記錄版本號;所述伺服器包括有同步判斷執行單元,用於接收客戶端的數據同步請求,判斷所述客戶端數據總版本號和該用戶數據總版本號是否相同,所述該用戶數據總版本號為伺服器存儲的該用戶數據記錄的最大記錄版本號;當兩者不相同時,伺服器將本地存儲的記錄版本號大於客戶端數據總版本號的該用戶的數據記錄,發送給客戶端,進行數據同步。
12.如權利要求11所述的數據同步系統,其特徵在於,所述客戶端還包括第一數據記錄操作單元,向所述伺服器發起數據記錄操作請求,攜帶操作類型信息;在接收到伺服器返回的操作結果信息和該用戶數據總版本號後,對本地用戶數據記錄進行相應操作,並更新客戶端數據總版本號為伺服器返回的該用戶數據總版本號;所述伺服器還包括第二數據記錄操作單元,根據客戶端請求的操作類型對用戶數據記錄執行相應操作,並向客戶端返回操作結果信息和當前伺服器中存儲的該用戶數據總版本號。
13.如權利要求12所述的數據同步系統,其特徵在於,所述第二數據記錄操作單元包括記錄操作執行模塊,根據客戶端請求的操作類型對用戶數據記錄執行相應操作;記錄版本號生成模塊,對被操作的用戶數據記錄生成新的遞增的記錄版本號;用戶數據總版本更新發送模塊,將本地存儲的該用戶數據記錄的最大記錄版本號作為該用戶數據總版本號並發送給客戶端。
全文摘要
本發明公開了一種數據同步方法,應用於客戶端和伺服器之間的數據同步,包括對用戶數據記錄根據操作順序設置遞增的記錄版本號;客戶端將本地存儲的用戶數據記錄的最大記錄版本號作為客戶端數據總版本號;伺服器將本地存儲的該用戶數據記錄的最大記錄版本號作為該用戶數據總版本號;當客戶端登錄伺服器時,客戶端向伺服器發起數據同步請求,攜帶所述客戶端數據總版本號;伺服器判斷所述客戶端數據總版本號和該用戶數據總版本號是否相同,當兩者不相同時,伺服器將本地存儲的記錄版本號大於客戶端數據總版本號的該用戶的數據記錄,發送給客戶端,進行數據同步。本發明還公開了一種相對應的數據同步系統。本發明能高效率地實現客戶端和伺服器之間的數據實時同步。
文檔編號H04L29/08GK101064630SQ20061007602
公開日2007年10月31日 申請日期2006年4月24日 優先權日2006年4月24日
發明者尚萬軍 申請人:華為技術有限公司