ite數(shù)據(jù)庫(kù)。
[0023] (3)在本地?cái)?shù)據(jù)庫(kù)中,調(diào)取標(biāo)注的變化對(duì)象,并將其打上時(shí)間戳,從而抽象為事務(wù) 日志; 具體為,設(shè)定變化對(duì)象的一次變化打上時(shí)間戳封裝為一條事務(wù)日志。
[0024] 例如:對(duì)象類型,對(duì)象ID,操作類型,對(duì)象屬性1對(duì)象屬性2......對(duì)象屬性N,時(shí)間 戳。
[0025] (4)將事務(wù)日志寫入本地同步表中; 具體本地同步表,是移動(dòng)終端設(shè)備維護(hù)的一個(gè)增量更新表,用于記錄事務(wù)日志。
[0026] 以照片同步為示例,若用戶添加了一張照片,修改了已有兩張照片的拍攝時(shí)間,并 刪除了一張照片,則本地同步表中會(huì)保留4條事務(wù)日志,如下示: INSERTINTOT_Photo(VO,VI,VN); UPDATET_PhotoSETF_ExifTime=XXWHEREID=XX; UPDATET_PhotoSETF_ExifTime=XXWHEREID=X; DELETET_PhotoWHEREID=XXXX; 本地同步表的目的是保存變化的對(duì)象,其通用表結(jié)構(gòu)如下:
(5)終端設(shè)備后臺(tái)啟動(dòng)同步服務(wù),循環(huán)讀取本地同步表中的事務(wù)日志,并將其批量提交 到服務(wù)器端,存入服務(wù)器端數(shù)據(jù)庫(kù)中; 具體服務(wù)器端數(shù)據(jù)庫(kù)為MySQL或MongoDB等非關(guān)系型數(shù)據(jù)庫(kù)。
[0027] (6)提交成功的日志,將事務(wù)日志從本地同步表中刪除; (7)服務(wù)器端循環(huán)讀取事務(wù)日志,逐條進(jìn)行解析還原變化對(duì)象; 具體為若服務(wù)器端在事務(wù)日志變化時(shí)做其它處理(如用戶添加照片后發(fā)送推送消息), 僅需設(shè)置一系列數(shù)據(jù)處理器,將各事務(wù)日志分開處理。
[0028] 如圖2所示具體還包括以下幾個(gè)步驟: 將讀取的事務(wù)日志提交到處理器鏈表中; 處理完成的事務(wù)日志存儲(chǔ)到本地?cái)?shù)據(jù)庫(kù)中; 等待其它終端設(shè)備獲取并同步到本地同步表。
[0029] (8)另一終端設(shè)備接入后,從服務(wù)器端獲取最新的事務(wù)日志; (9)將獲取的事務(wù)日志在本地?cái)?shù)據(jù)庫(kù)中回放; (10) 通過訪問本地?cái)?shù)據(jù)庫(kù)中新的事務(wù)日志,記錄事務(wù)日志的當(dāng)前時(shí)間戳; 具體記錄當(dāng)前時(shí)間戳,用于下一次獲取同步事務(wù)日志時(shí),服務(wù)器端計(jì)算這段時(shí)間內(nèi)的 增量日志列表。
[0030] (11)數(shù)據(jù)同步工作完成后,即可通知上層界面去更新數(shù)據(jù)。
[0031] 最后說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較 佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技 術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的宗旨和范圍,其均應(yīng)涵蓋在本 發(fā)明的權(quán)利要求范圍當(dāng)中。
【主權(quán)項(xiàng)】
1. 一種多終端設(shè)備上的數(shù)據(jù)同步方法,其特征在于包括以下幾個(gè)步驟: 1) 在終端設(shè)備中識(shí)別出變化對(duì)象并將其進(jìn)行標(biāo)注; 2) 將標(biāo)注的變化對(duì)象寫入到本地?cái)?shù)據(jù)庫(kù); 3) 在本地?cái)?shù)據(jù)庫(kù)中,調(diào)取標(biāo)注的變化對(duì)象,將其打上時(shí)間戳抽象形成事務(wù)日志; 4) 將事務(wù)日志寫入本地同步表中; 5) 終端設(shè)備后臺(tái)啟動(dòng)同步服務(wù),循環(huán)讀取本地同步表中的事務(wù)日志,并將其批量提交 到服務(wù)器端,存入服務(wù)器端數(shù)據(jù)庫(kù)中; 6) 在本地同步表中刪除提交成功的事務(wù)日志; 7) 服務(wù)器端循環(huán)讀取事務(wù)日志,逐條進(jìn)行解析還原變化對(duì)象; 8) 另一終端設(shè)備接入后,從服務(wù)器端獲取最新的事務(wù)日志; 9) 將獲取的事務(wù)日志在本地?cái)?shù)據(jù)庫(kù)中回放; 10) 通過訪問本地?cái)?shù)據(jù)庫(kù)中新的事務(wù)日志,記錄事務(wù)日志的當(dāng)前時(shí)間戳; 11) 通知上層界面更新數(shù)據(jù)。2. 根據(jù)權(quán)利要求1所述多終端設(shè)備上的數(shù)據(jù)同步方法,其特征在于,步驟(1)中,根據(jù) 業(yè)務(wù)邏輯劃分變化對(duì)象,變化對(duì)象通過全局描述符GUID標(biāo)識(shí),變化對(duì)象之間的關(guān)系通過變 化對(duì)象ID關(guān)聯(lián)。3. 根據(jù)權(quán)利要求1所述多終端設(shè)備上的數(shù)據(jù)同步方法,其特征在于,步驟(2)中,本地 數(shù)據(jù)庫(kù)使用Sqlite數(shù)據(jù)庫(kù)。4. 根據(jù)權(quán)利要求1所述多終端設(shè)備上的數(shù)據(jù)同步方法,其特征在于,步驟(3)中,設(shè)定 變化對(duì)象的一次變化打上時(shí)間戳封裝為一條事務(wù)日志。5. 根據(jù)權(quán)利要求1所述多終端設(shè)備上的數(shù)據(jù)同步方法,其特征在于,步驟(4)中,本地 同步表是終端設(shè)備中維護(hù)的一個(gè)增量更新表,用于記錄事務(wù)日志。6. 根據(jù)權(quán)利要求1所述多終端設(shè)備上的數(shù)據(jù)同步方法,其特征在于,步驟(5)中,服務(wù) 器端數(shù)據(jù)庫(kù)為MySQL或MongoDB非關(guān)系型數(shù)據(jù)庫(kù)。7. 根據(jù)權(quán)利要求1所述多終端設(shè)備上的數(shù)據(jù)同步方法,其特征在于,步驟(7)中,若服 務(wù)器端在讀取事務(wù)日志時(shí)需要做額外的處理,則設(shè)置數(shù)據(jù)處理器,將事務(wù)日志分開處理。8. 根據(jù)權(quán)利要求7所述多終端設(shè)備上的數(shù)據(jù)同步方法,其特征在于:所述步驟(7)具體 步驟如下: 將讀取的事務(wù)日志提交到數(shù)據(jù)處理器; 處理完成的事務(wù)日志存儲(chǔ)到本地?cái)?shù)據(jù)庫(kù)中; 等待另一終端設(shè)備獲取并同步到本地同步表。9. 根據(jù)權(quán)利要求1所述多終端設(shè)備上的數(shù)據(jù)同步方法,其特征在于,步驟(10)中,記錄 當(dāng)前時(shí)間戳,用于下一次獲取事務(wù)日志時(shí),服務(wù)器端計(jì)算本時(shí)間段內(nèi)的增量日志列表。
【專利摘要】本發(fā)明提供了一種多終端設(shè)備上的數(shù)據(jù)同步方法,步驟包括:在終端設(shè)備中識(shí)別變化對(duì)象并進(jìn)行標(biāo)注;將標(biāo)注的變化對(duì)象寫入本地?cái)?shù)據(jù)庫(kù),打上時(shí)間戳抽象為事務(wù)日志;事務(wù)日志寫入本地同步表中;終端設(shè)備后臺(tái)循環(huán)讀取本地同步表中的事務(wù)日志,提交并存入服務(wù)器端數(shù)據(jù)庫(kù);從本地同步表中刪除提交成功的事務(wù)日志;服務(wù)器端循環(huán)讀取事務(wù)日志,逐條進(jìn)行解析還原;其它終端設(shè)備從服務(wù)器端獲取事務(wù)日志;將事務(wù)日志在本地?cái)?shù)據(jù)庫(kù)中回放;記錄事務(wù)日志的當(dāng)前時(shí)間戳;通知上層界面更新數(shù)據(jù)。發(fā)明適用于多種移動(dòng)設(shè)備在無(wú)網(wǎng)環(huán)境下的數(shù)據(jù)同步,支持用戶編輯后,在網(wǎng)絡(luò)恢復(fù)后同步數(shù)據(jù)到后臺(tái)。另外,本發(fā)明提高了網(wǎng)絡(luò)利用率,數(shù)據(jù)訪問更加高效流暢。
【IPC分類】G06F17/30, H04L29/08
【公開號(hào)】CN104967658
【申請(qǐng)?zhí)枴緾N201510229300
【發(fā)明人】殷宇
【申請(qǐng)人】成都品果科技有限公司
【公開日】2015年10月7日
【申請(qǐng)日】2015年5月8日