一種多終端設備上的數據同步方法
【技術領域】
[0001] 屬于移動通信技術領域,特別是涉及基于離網環境下多種移動終端設備之間的數 據同步的方法。 技術背景
[0002] 90年代未,數據同步始于有線連接,如MAC機作為數據中心,與終端設備(iPod)通 過FireWire進行同步。2000年以后,云服務迅速發展,以PC/MAC機為代表的數據中心逐漸 轉向了云端只要設備有網絡,就可以使用,如通訊錄,微信的消息備份與恢復,AppStore。
[0003] 近年來伴隨著互聯網和芯片技術的高速發展,移動終端設備的種類也越來越多。 移動終端設備是指可以在移動中使用的計算機設備,例如手機、筆記本、平板電腦、POS機甚 至包括車載電腦都屬于移動終端設備,這些設備的出現,極大的方便和豐富了人們的工作 和生活,顯著的優點促使人們根據自己的需求選擇適合自己的智能終端設備。
[0004] 然而,人們在使用中經常需要對各種信息進行修改,導致在設備中的所儲存的 數據信息需要比定期改變,而且同一種類型的數據需要存儲在多種終端設備中,這樣就產 生了一個需要保持各種終端中同類型數據的一致性和完整性問題。由于無線網絡通信能力 自身存在的局限性,不能隨時連接網絡進行數據交換,使得離線應用的需求逐漸普及。
[0005] 在現有的技術中,解決此問題的方法主要是同步式的云服務訪問方式,雖然這種 方法比較方便,但現有的大部分云服務并沒有充分考慮移動客戶端的特性,傳輸數據量很 大,為移動設備帶來較大的計算資源消耗和網絡帶寬占用,使其響應并不流暢,無法高效便 捷地訪問云服務。
[0006] 因此為滿足人們于同時使用多種移動終端設備時各終端設備間對于數據同步的 要求,以及在訪問數據過程中更加流暢、高效的體驗要求,需要找到一種新型的數據同步方 法,以實現多種移動終端設備之間數據同步的一致性和用戶體驗的流暢性。該類應用不再 同步地與云交互,而是直接訪問本地文件系統交換數據,取而代之的是,數據在后臺與云端 進行通信,數據訪問與同步兩個過程是異步執行的。
【發明內容】
[0007] 針對現有技術的缺點的基礎上,本發明的目的在于提供一種能夠滿足在離網環境 下多終端設備間的保持數據最終一致性的解決方式。
[0008] 為實現上述目的,本發明提供一種多終端設備上的數據同步方法,主要包括以下 幾個步驟: (1) 在終端設備中識別出相應的變化對象并將其進行標注; (2) 將標注的變化對象寫入到本地數據庫; (3) 在本地數據庫中,調取標注的變化對象,將其打上時間戳抽象為事務日志; (4) 將事務日志寫入本地同步表中; (5) 終端設備后臺啟動同步服務,循環讀取本地同步表中的事務日志,并將其批量提交 到服務器端,存入服務器端數據庫中; (6) 提交成功的日志,將事務日志從本地同步表中刪除; (7) 服務器端循環讀取事務日志,逐條進行解析還原變化對象; (8) 另一終端設備接入后,從服務器端獲取最新的事務日志; (9) 將獲取的事務日志在本地數據庫中回放; (10) 通過訪問本地數據庫中新的事務日志,記錄事務日志的當前時間戳; (11) 數據同步工作完成后,即可通知上層界面去更新數據。
[0009] 進一步,所述步驟(1)中,根據業務邏輯劃分變化對象,變化對象通過全局描述符 ⑶ID標識,變化對象之間的關系通過變化對象ID關聯。
[0010] 進一步,所述步驟(2)中,本地數據庫使用Sqlite數據庫。
[0011] 進一步,所述步驟(3)中,設定變化對象的一次變化打上時間戳封裝為一條事務日
[0012] 進一步,所述步驟(4)中,本地同步表是終端設備中維護的一個增量更新表,用于 記錄事務日志。
[0013] 進一步,所述步驟(5 )中,服務器端數據庫為MySQL或MongoDB等非關系型數據庫。
[0014] 進一步,所述步驟(7)中,若服務器端在對象變化時做其它處理,僅需設置一系列 數據處理器,將事件分開處理。
[0015] 進一步,所設置的數據處理器還包括以下幾個步驟: 將讀取的事務日志提交到處理器; 處理完成的事務日志存儲到本地數據庫中; 等待其它終端設備獲取并同步到本地。
[0016] 進一步,所述步驟(10)中,記錄當前時間戳,用于下一次獲取事務日志時,服務器 端計算這段時間內的增量日志列表。
[0017] 結合附圖閱讀本發明實施方式的詳細描述后,本發明的其他特點和優點將變得更 加清楚。
[0018] 本方法與現有數據同步方案相比,具有以下幾點優勢:數據訪問與數據同步分離, 用戶信息的展示與用戶的修改操作可以離線完成,本地操作快速體驗好;服務器端不需要 提供若干的變化對象讀寫接口,僅需要維護一個數據同步接口和一系列注冊后的任務處理 器,業務擴展僅增加任務處理器,體現了軟件設計中的開閉原則;事務日志抽象成變化對象 的事務日志,而不是SQL語句,事務日志可以在客戶端對接sqlite,在服務器端對接MySQL 或MongoDB等非關系型數據庫;服務器端主要功能為事務日志透傳與數據備份,能夠在多 個應用中復用,節省了后臺開發成本與開發時間。
【附圖說明】
[0019] 下面結合附圖與【具體實施方式】對本發明作進一步詳細的說明: 圖1為本發明的用于多終端設備上數據同步方法的流程圖 圖2為服務器端事務日志處理流程圖。
【具體實施方式】
[0020] 為了使本發明的目的、技術方案和優點更加清楚,下面將對本發明的具體實施方 式作進一步的詳細描述。
[0021] 參見圖1,本實施例的適用于多終端設備上的數據同步方法,包括以下步驟: (1)在終端設備中識別出相應的變化對象并將其進行標注; 具體根據業務邏輯劃分變化對象,變化對象通過全局描述符GUID標識,變化對象之間 的關系通過變化對象ID關聯。
[0022] (2)將標注的變化對象寫入到本地數據庫; 本地數據庫使用Sql