專利名稱:一種數(shù)據(jù)同步的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線通訊個(gè)人信息管理技術(shù),尤其涉及一種數(shù)據(jù)同步的方法及裝置。
背景技術(shù):
移動(dòng)終端個(gè)人信息、日程信息和郵件信息等的管理日益重要,已經(jīng)成為移動(dòng)終端信息管理的一個(gè)重要組成部分。在更換移動(dòng)終端或者移動(dòng)終端數(shù)據(jù)發(fā)生變化時(shí),如何安全有效的將數(shù)據(jù)備份到網(wǎng)絡(luò)服務(wù)器中,以便日后將備份數(shù)據(jù)恢復(fù)到移動(dòng)終端,實(shí)現(xiàn)移動(dòng)終端和網(wǎng)絡(luò)服務(wù)器的數(shù)據(jù)同步,得到了越來越多的關(guān)注。目前基本的數(shù)據(jù)同步業(yè)務(wù)有雙向快同步和雙向慢同步。其中,雙向慢同步將移動(dòng)終端和網(wǎng)絡(luò)服務(wù)器上的所有數(shù)據(jù)記錄項(xiàng),如名片夾和日程表等進(jìn)行同步;雙向快同步是將移動(dòng)終端和網(wǎng)絡(luò)服務(wù)器上自從上一次同步之后發(fā)生的所有變化進(jìn)行同步。注冊(cè)同步業(yè)務(wù)的用戶可以選擇其中一種方式,將移動(dòng)終端和網(wǎng)絡(luò)服務(wù)器之間的數(shù)據(jù)進(jìn)行數(shù)據(jù)同步,最終使移動(dòng)終端和網(wǎng)絡(luò)服務(wù)器上的數(shù)據(jù)保持一致。其中,對(duì)于交換變化信息為目的的雙向快同步而言,存在changelog(修改日志) 的設(shè)計(jì)和實(shí)現(xiàn)問題。Changelog用于記錄移動(dòng)終端或者網(wǎng)絡(luò)服務(wù)器自從上一次同步之后的數(shù)據(jù)變化信息。該變化信息以數(shù)據(jù)記錄項(xiàng)的形式出現(xiàn),包括兩部分內(nèi)容對(duì)象和針對(duì)該對(duì)象進(jìn)行的操作。其中,針對(duì)對(duì)象進(jìn)行的操作包括三種類型添加(ADD)、刪除(DELETE)和更新 (UPDATE)。S卩,changelog需要記錄針對(duì)哪一條記錄做了何種修改。圖1是現(xiàn)有技術(shù)中,在諸如手機(jī)等移動(dòng)終端中changelog的數(shù)據(jù)結(jié)構(gòu)圖。如圖1 所示,該changelog結(jié)構(gòu)中包含兩個(gè)數(shù)據(jù)項(xiàng)操作對(duì)象和針對(duì)該操作對(duì)象所進(jìn)行的操作。在這里,操作對(duì)象引用的是存儲(chǔ)于移動(dòng)終端的每一條數(shù)據(jù)在數(shù)據(jù)庫中記錄的唯一 ID。在信息同步標(biāo)準(zhǔn)(SynchronizationMarkup Language,SyncML)協(xié)議中,數(shù)據(jù)庫記錄的唯一 ID稱為局部唯一標(biāo)識(shí)(Locally Unique Identif ier,LUID),該LUID在移動(dòng)終端中生成且是唯一的;在移動(dòng)終端,即使添加的記錄項(xiàng)的數(shù)據(jù)內(nèi)容與某一項(xiàng)已經(jīng)刪除的記錄完全相同,其LUID也與原來被刪除的LUID不同。圖2是圖1所示的changelog的具體實(shí)例圖,如圖2所示,分別進(jìn)行的操作為對(duì) LUID為1的記錄進(jìn)行了添加操作,對(duì)LUID為5的記錄進(jìn)行了刪除操作,對(duì)LUID為6和7的記錄進(jìn)行了更新操作。傳統(tǒng)changelog記錄方法是將所有數(shù)據(jù)修改操作寫入changelog文件,達(dá)到記錄修改日志信息的要求。然而其存在如下問題(1)當(dāng)changelog中記錄較多,數(shù)據(jù)庫數(shù)據(jù)進(jìn)行批量操作時(shí),如進(jìn)行DELETE操作時(shí),因?yàn)槊總€(gè)修改數(shù)據(jù)都需要寫入changelog,導(dǎo)致批量操作性能降低。(2)當(dāng)可以使用多個(gè)同步賬號(hào)時(shí),每個(gè)同步賬號(hào)都需要維護(hù)一個(gè)changelog文件。 當(dāng)數(shù)據(jù)發(fā)生修改時(shí),需要將修改數(shù)據(jù)同時(shí)供寫入多個(gè)changelog文將,賬號(hào)越多,性能越差。(3)多個(gè)同步賬號(hào)changelog并不獨(dú)立,同步一個(gè)賬號(hào)時(shí),需要將修改信息寫入其他同步賬號(hào)的changelog,會(huì)導(dǎo)致同步性能降低。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種數(shù)據(jù)同步的方法及裝置,能夠提高數(shù)據(jù)同步的性能。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種數(shù)據(jù)同步的方法,所述方法包括生成包含有當(dāng)前移動(dòng)終端所有數(shù)據(jù)的局部唯一標(biāo)識(shí)(LUID)的當(dāng)前數(shù)據(jù)鏈表;將當(dāng)前數(shù)據(jù)鏈表與用于記錄上次與服務(wù)器同步過的數(shù)據(jù)的已同步數(shù)據(jù)鏈表進(jìn)行對(duì)比;根據(jù)對(duì)比結(jié)果,進(jìn)行數(shù)據(jù)同步。進(jìn)一步地,所述方法還包括數(shù)據(jù)同步完成后,移動(dòng)終端根據(jù)當(dāng)前數(shù)據(jù)同步的情況,更新所述已同步數(shù)據(jù)鏈表;其中,所述已同步數(shù)據(jù)鏈表包含數(shù)據(jù)的LUID及根據(jù)所述數(shù)據(jù)的內(nèi)容生成的校驗(yàn)值。其中,所述對(duì)比已同步數(shù)據(jù)鏈表與包含有當(dāng)前所有數(shù)據(jù)的LUID的當(dāng)前數(shù)據(jù)鏈表為將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,將存在于當(dāng)前數(shù)據(jù)鏈表且不存在于已同步數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到添加鏈表。其中,所述將對(duì)比已同步數(shù)據(jù)鏈表與包含有當(dāng)前所有數(shù)據(jù)的LUID的當(dāng)前數(shù)據(jù)鏈表為將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,將存在于已同步數(shù)據(jù)鏈表且不存在于當(dāng)前數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到刪除鏈表。其中,所述將對(duì)比已同步數(shù)據(jù)鏈表與包含有當(dāng)前所有數(shù)據(jù)的LUID的當(dāng)前數(shù)據(jù)鏈表為將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,對(duì)同時(shí)存在于已同步數(shù)據(jù)鏈表和當(dāng)前數(shù)據(jù)鏈表的LUID對(duì)應(yīng)的當(dāng)前數(shù)據(jù)內(nèi)容計(jì)算校驗(yàn)值,并比較所述校驗(yàn)值與已同步數(shù)據(jù)鏈表中所述LUID對(duì)應(yīng)的校驗(yàn)值,若不一致,則將所述LUID對(duì)應(yīng)的數(shù)據(jù)加入到更新鏈表。其中,所述根據(jù)對(duì)比結(jié)果,進(jìn)行數(shù)據(jù)同步為根據(jù)對(duì)比得到的添加鏈表、刪除鏈表、更新鏈表中的一種或多種,進(jìn)行數(shù)據(jù)的同
止
少ο一種數(shù)據(jù)同步的裝置,所述裝置包括鏈表生成單元、比較單元、同步單元;其中,所述鏈表生成單元,用于生成包含有當(dāng)前移動(dòng)終端所有數(shù)據(jù)的局部唯一標(biāo)識(shí)LUID 的當(dāng)前數(shù)據(jù)鏈表;所述比較單元,用于將當(dāng)前數(shù)據(jù)鏈表與用于記錄上次與服務(wù)器同步過的數(shù)據(jù)的已同步數(shù)據(jù)鏈表進(jìn)行對(duì)比;所述同步單元,用于根據(jù)對(duì)比結(jié)果,進(jìn)行數(shù)據(jù)同步。其中,所述鏈表生成單元,還用于在同步單元完成數(shù)據(jù)同步后,根據(jù)當(dāng)前數(shù)據(jù)同步的情況,更新所述已同步數(shù)據(jù)鏈表;其中,所述已同步數(shù)據(jù)鏈表包含數(shù)據(jù)的LUID及根據(jù)所述數(shù)據(jù)的內(nèi)容生成的校驗(yàn)值。其中,所述比較單元,具體用于將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的 LUID進(jìn)行對(duì)比后,將存在于當(dāng)前數(shù)據(jù)鏈表且不存在于已同步數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到添加鏈表。其中,所述比較單元,具體用于將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的 LUID進(jìn)行對(duì)比后,將存在于已同步數(shù)據(jù)鏈表且不存在于當(dāng)前數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到刪除鏈表。其中,所述比較單元,具體用于將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的 LUID進(jìn)行對(duì)比后,對(duì)同時(shí)存在于已同步數(shù)據(jù)鏈表和當(dāng)前數(shù)據(jù)鏈表的LUID對(duì)應(yīng)的當(dāng)前數(shù)據(jù)內(nèi)容計(jì)算校驗(yàn)值,并比較所述校驗(yàn)值與已同步數(shù)據(jù)鏈表中所述LUID對(duì)應(yīng)的校驗(yàn)值,若不一致,則將所述LUID對(duì)應(yīng)的數(shù)據(jù)加入到更新鏈表。其中,所述同步單元,具體用于根據(jù)對(duì)比得到的添加鏈表、刪除鏈表、更新鏈表中的一種或多種,進(jìn)行數(shù)據(jù)的同步。本發(fā)明通過對(duì)比當(dāng)前數(shù)據(jù)鏈表與已同步數(shù)據(jù)鏈表實(shí)現(xiàn)數(shù)據(jù)的同步,不需要再依托于changelog文件進(jìn)行同步,提高了數(shù)據(jù)同步的性能,而且在修改數(shù)據(jù)時(shí)不需要調(diào)用 changelog接口,可移植性較強(qiáng)。
圖1為現(xiàn)有的changelog的數(shù)據(jù)結(jié)構(gòu)示意圖;圖2為圖1所示的changelog數(shù)據(jù)結(jié)構(gòu)的具體實(shí)例示意圖;圖3為本發(fā)明數(shù)據(jù)同步的方法的實(shí)現(xiàn)流程示意圖;圖4為本發(fā)明數(shù)據(jù)同步的方法中已同步數(shù)據(jù)鏈表的具體實(shí)例示意圖;圖5為本發(fā)明數(shù)據(jù)同步的方法中當(dāng)前數(shù)據(jù)鏈表的具體實(shí)例示意圖;圖6為圖4和圖5所示的已同步數(shù)據(jù)鏈表與當(dāng)前數(shù)據(jù)鏈表的對(duì)比示意圖;圖7為本發(fā)明數(shù)據(jù)同步的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明的基本思想為生成包含有當(dāng)前移動(dòng)終端所有數(shù)據(jù)的LUID的當(dāng)前數(shù)據(jù)鏈表;將當(dāng)前數(shù)據(jù)鏈表與用于記錄上次與服務(wù)器同步過的數(shù)據(jù)的已同步數(shù)據(jù)鏈表進(jìn)行對(duì)比; 根據(jù)對(duì)比結(jié)果,進(jìn)行數(shù)據(jù)同步。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下舉實(shí)施例并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。圖3示出了本發(fā)明數(shù)據(jù)同步的方法的實(shí)現(xiàn)流程,如圖3所示,所述方法包括下述步驟步驟301,生成包含有當(dāng)前移動(dòng)終端所有數(shù)據(jù)的LUID的當(dāng)前數(shù)據(jù)鏈表;具體地,在移動(dòng)終端準(zhǔn)備進(jìn)行數(shù)據(jù)同步時(shí),獲取當(dāng)前自身所有數(shù)據(jù)的LUID,生成當(dāng)前數(shù)據(jù)鏈表,所述當(dāng)前數(shù)據(jù)鏈表包含有所述所有數(shù)據(jù)的LUID。步驟302,將當(dāng)前數(shù)據(jù)鏈表與用于記錄上次與服務(wù)器同步過的數(shù)據(jù)的已同步數(shù)據(jù)鏈表進(jìn)行對(duì)比;具體地,本步驟中,已同步數(shù)據(jù)鏈表中包含了發(fā)送給服務(wù)器的添加和更新數(shù)據(jù),以及從服務(wù)器接收的添加和更新數(shù)據(jù)。接收服務(wù)器發(fā)送給移動(dòng)終端的添加和更新數(shù)據(jù)時(shí),移動(dòng)終端會(huì)根據(jù)其內(nèi)容生成新的校驗(yàn)值,并將LUID和校驗(yàn)值保存到已同步數(shù)據(jù)鏈表中。將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,將存在于當(dāng)前數(shù)據(jù)鏈表且不存在于已同步數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到添加鏈表;將存在于已同步數(shù)據(jù)鏈表且不存在于當(dāng)前數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到刪除鏈表;對(duì)同時(shí)存在于已同步數(shù)據(jù)鏈表和當(dāng)前數(shù)據(jù)鏈表的LUID對(duì)應(yīng)的當(dāng)前數(shù)據(jù)內(nèi)容計(jì)算校驗(yàn)值,并比較所述校驗(yàn)值與已同步數(shù)據(jù)鏈表中所述LUID對(duì)應(yīng)的校驗(yàn)值,若不一致,則將所述LUID對(duì)應(yīng)的數(shù)據(jù)加入到更新鏈表。具體地,結(jié)合圖4示出的已同步數(shù)據(jù)鏈表、圖5示出的當(dāng)前數(shù)據(jù)鏈表以及圖6的已同步數(shù)據(jù)鏈表與當(dāng)前數(shù)據(jù)鏈表的對(duì)比示意圖,進(jìn)行詳細(xì)說明。圖4示出了移動(dòng)終端上次與服務(wù)器同步過的已同步數(shù)據(jù)鏈表的示意,由圖4可知, 移動(dòng)終端與服務(wù)器同步過的數(shù)據(jù)包括LUID為1、2、4、9的數(shù)據(jù),其各自的校驗(yàn)值如圖4所示;圖5示出了移動(dòng)終端的當(dāng)前數(shù)據(jù)鏈表,即移動(dòng)終端再次與服務(wù)器進(jìn)行同步時(shí),當(dāng)前自身所有數(shù)據(jù)的LUID,如圖5所示,包括LUID為1、2、9、10的數(shù)據(jù);結(jié)合圖6,將已同步數(shù)據(jù)鏈表與當(dāng)前數(shù)據(jù)鏈表進(jìn)行對(duì)比,其中,LUID 10記錄存在于當(dāng)前數(shù)據(jù)鏈表中,但不存在于已同步數(shù)據(jù)鏈表中,所以LUID 10對(duì)應(yīng)的數(shù)據(jù)是新增數(shù)據(jù), 將該數(shù)據(jù)加入到添加鏈表中;其中,LUID 4記錄存在于已同步數(shù)據(jù)鏈表中,但不存在于當(dāng)前數(shù)據(jù)鏈表中,所以 LUID 4對(duì)應(yīng)的數(shù)據(jù)為是刪除數(shù)據(jù),將該數(shù)據(jù)加入到刪除鏈表中;找到既存在于當(dāng)前數(shù)據(jù)鏈表中,又存在于已同步數(shù)據(jù)鏈表中的LUID,并根據(jù)每個(gè) LUID當(dāng)前記錄的數(shù)據(jù)內(nèi)容產(chǎn)生新的校驗(yàn)值,形成鏈表,如圖6所示的中間數(shù)據(jù)鏈表。遍歷所述中間數(shù)據(jù)鏈表中的LUID,將中間數(shù)據(jù)鏈表和已同步數(shù)據(jù)鏈表相同LUID的校驗(yàn)值進(jìn)行比較,如果不相等,則認(rèn)為是修改數(shù)據(jù),將該數(shù)據(jù)添加到更新鏈表;如果相等,則認(rèn)為是未修改數(shù)據(jù)。如圖6所示,LUID 9在已同步數(shù)據(jù)鏈表中的校驗(yàn)值為5DB7AB8A,但在中間數(shù)據(jù)鏈表中其校驗(yàn)值為DD2E91M,由于兩個(gè)校驗(yàn)值不相等,所以LUID 9為更新數(shù)據(jù);LUID 1和 LUID 2,在中間數(shù)據(jù)鏈表中的校驗(yàn)值與已同步數(shù)據(jù)鏈表中校驗(yàn)值相等,所以這兩個(gè)數(shù)據(jù)為未修改數(shù)據(jù)。步驟303,根據(jù)對(duì)比結(jié)果,進(jìn)行數(shù)據(jù)同步。根據(jù)步驟302對(duì)比得到的添加鏈表、刪除鏈表、更新鏈表中的一種或多種,對(duì)數(shù)據(jù)進(jìn)行操作,完成數(shù)據(jù)的同步;另外,該方法還包括數(shù)據(jù)同步完成后,移動(dòng)終端根據(jù)當(dāng)前數(shù)據(jù)同步的情況,更新所述已同步數(shù)據(jù)鏈表;其中,所述已同步數(shù)據(jù)鏈表包含數(shù)據(jù)的LUID及根據(jù)所述數(shù)據(jù)的內(nèi)容生成的校驗(yàn)值,這里,所述校驗(yàn)值可以通過循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check,CRC) 等校驗(yàn)算法進(jìn)行生成。本發(fā)明還提供了一種實(shí)現(xiàn)上述數(shù)據(jù)同步的方法的裝置,圖7示出了該裝置的結(jié)構(gòu)示意,如圖7所示,所述裝置包括鏈表生成單元71、比較單元72、同步單元73;其中,所述鏈表生成單元71,用于生成包含有當(dāng)前移動(dòng)終端所有數(shù)據(jù)的局部唯一標(biāo)識(shí) LUID的當(dāng)前數(shù)據(jù)鏈表;所述比較單元72,用于將當(dāng)前數(shù)據(jù)鏈表與用于記錄上次與服務(wù)器同步過的數(shù)據(jù)的已同步數(shù)據(jù)鏈表進(jìn)行對(duì)比;所述同步單元73,用于根據(jù)對(duì)比結(jié)果,進(jìn)行數(shù)據(jù)同步。其中,所述鏈表生成單元71,還用于在同步單元73完成數(shù)據(jù)同步后,根據(jù)當(dāng)前數(shù)據(jù)同步的情況,更新所述已同步數(shù)據(jù)鏈表;其中,所述已同步數(shù)據(jù)鏈表包含數(shù)據(jù)的LUID及根據(jù)所述數(shù)據(jù)的內(nèi)容生成的校驗(yàn)值;這里,所述校驗(yàn)值可以通過CRC等校驗(yàn)算法進(jìn)行生成。其中,所述比較單元72,具體用于將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,將存在于當(dāng)前數(shù)據(jù)鏈表且不存在于已同步數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到添加鏈表;這里,已同步數(shù)據(jù)鏈表中包含了發(fā)送給服務(wù)器的添加和更新數(shù)據(jù),以及從服務(wù)器接收的添加和更新數(shù)據(jù)。接收服務(wù)器發(fā)送給移動(dòng)終端的添加和更新數(shù)據(jù)時(shí),移動(dòng)終端會(huì)根據(jù)其內(nèi)容生成新的校驗(yàn)值,并將LUID和校驗(yàn)值保存到已同步數(shù)據(jù)鏈表中。其中,所述比較單元72,具體用于將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,存在于已同步數(shù)據(jù)鏈表且不存在于當(dāng)前數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到刪除鏈表。其中,所述比較單元72,具體用于將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,對(duì)同時(shí)存在于已同步數(shù)據(jù)鏈表和當(dāng)前數(shù)據(jù)鏈表的LUID對(duì)應(yīng)的當(dāng)前數(shù)據(jù)內(nèi)容計(jì)算校驗(yàn)值,并比較所述校驗(yàn)值與已同步數(shù)據(jù)鏈表中所述LUID對(duì)應(yīng)的校驗(yàn)值,若不一致,則將所述LUID對(duì)應(yīng)的數(shù)據(jù)加入到更新鏈表。其中,所述同步單元73,具體用于根據(jù)對(duì)比得到的添加鏈表、刪除鏈表、更新鏈表中的一種或多種,進(jìn)行數(shù)據(jù)的同步。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種數(shù)據(jù)同步的方法,其特征在于,所述方法包括生成包含有當(dāng)前移動(dòng)終端所有數(shù)據(jù)的局部唯一標(biāo)識(shí)LUID的當(dāng)前數(shù)據(jù)鏈表;將當(dāng)前數(shù)據(jù)鏈表與用于記錄上次與服務(wù)器同步過的數(shù)據(jù)的已同步數(shù)據(jù)鏈表進(jìn)行對(duì)比;根據(jù)對(duì)比結(jié)果,進(jìn)行數(shù)據(jù)同步。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括數(shù)據(jù)同步完成后,移動(dòng)終端根據(jù)當(dāng)前數(shù)據(jù)同步的情況,更新所述已同步數(shù)據(jù)鏈表;其中,所述已同步數(shù)據(jù)鏈表包含數(shù)據(jù)的LUID及根據(jù)所述數(shù)據(jù)的內(nèi)容生成的校驗(yàn)值。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對(duì)比已同步數(shù)據(jù)鏈表與包含有當(dāng)前所有數(shù)據(jù)的LUID的當(dāng)前數(shù)據(jù)鏈表為將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,將存在于當(dāng)前數(shù)據(jù)鏈表且不存在于已同步數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到添加鏈表。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將對(duì)比已同步數(shù)據(jù)鏈表與包含有當(dāng)前所有數(shù)據(jù)的LUID的當(dāng)前數(shù)據(jù)鏈表為將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,將存在于已同步數(shù)據(jù)鏈表且不存在于當(dāng)前數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到刪除鏈表。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將對(duì)比已同步數(shù)據(jù)鏈表與包含有當(dāng)前所有數(shù)據(jù)的LUID的當(dāng)前數(shù)據(jù)鏈表為將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,對(duì)同時(shí)存在于已同步數(shù)據(jù)鏈表和當(dāng)前數(shù)據(jù)鏈表的LUID對(duì)應(yīng)的當(dāng)前數(shù)據(jù)內(nèi)容計(jì)算校驗(yàn)值,并比較所述校驗(yàn)值與已同步數(shù)據(jù)鏈表中所述LUID對(duì)應(yīng)的校驗(yàn)值,若不一致,則將所述LUID對(duì)應(yīng)的數(shù)據(jù)加入到更新鏈表。
6.根據(jù)權(quán)利要求1至5任一項(xiàng)所述的方法,其特征在于,所述根據(jù)對(duì)比結(jié)果,進(jìn)行數(shù)據(jù)同步為根據(jù)對(duì)比得到的添加鏈表、刪除鏈表、更新鏈表中的一種或多種,進(jìn)行數(shù)據(jù)的同步。
7.一種數(shù)據(jù)同步的裝置,其特征在于,所述裝置包括鏈表生成單元、比較單元、同步單元;其中,所述鏈表生成單元,用于生成包含有當(dāng)前移動(dòng)終端所有數(shù)據(jù)的局部唯一標(biāo)識(shí)LUID的當(dāng)前數(shù)據(jù)鏈表;所述比較單元,用于將當(dāng)前數(shù)據(jù)鏈表與用于記錄上次與服務(wù)器同步過的數(shù)據(jù)的已同步數(shù)據(jù)鏈表進(jìn)行對(duì)比;所述同步單元,用于根據(jù)對(duì)比結(jié)果,進(jìn)行數(shù)據(jù)同步。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述鏈表生成單元,還用于在同步單元完成數(shù)據(jù)同步后,根據(jù)當(dāng)前數(shù)據(jù)同步的情況,更新所述已同步數(shù)據(jù)鏈表;其中,所述已同步數(shù)據(jù)鏈表包含數(shù)據(jù)的LUID及根據(jù)所述數(shù)據(jù)的內(nèi)容生成的校驗(yàn)值。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述比較單元,具體用于將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,將存在于當(dāng)前數(shù)據(jù)鏈表且不存在于已同步數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到添加鏈表。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述比較單元,具體用于將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,將存在于已同步數(shù)據(jù)鏈表且不存在于當(dāng)前數(shù)據(jù)鏈表中的LUID對(duì)應(yīng)的數(shù)據(jù)加入到刪除鏈表。
11.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述比較單元,具體用于將已同步數(shù)據(jù)鏈表中的LUID與當(dāng)前數(shù)據(jù)鏈表中的LUID進(jìn)行對(duì)比后,對(duì)同時(shí)存在于已同步數(shù)據(jù)鏈表和當(dāng)前數(shù)據(jù)鏈表的LUID對(duì)應(yīng)的當(dāng)前數(shù)據(jù)內(nèi)容計(jì)算校驗(yàn)值,并比較所述校驗(yàn)值與已同步數(shù)據(jù)鏈表中所述LUID對(duì)應(yīng)的校驗(yàn)值,若不一致,則將所述LUID對(duì)應(yīng)的數(shù)據(jù)加入到更新鏈表。
12.根據(jù)權(quán)利要求7至11任一項(xiàng)所述的裝置,其特征在于,所述同步單元,具體用于根據(jù)對(duì)比得到的添加鏈表、刪除鏈表、更新鏈表中的一種或多種,進(jìn)行數(shù)據(jù)的同步。
全文摘要
本發(fā)明提供了一種數(shù)據(jù)同步的方法及裝置,所述方法包括生成包含有當(dāng)前移動(dòng)終端所有數(shù)據(jù)的局部唯一標(biāo)識(shí)(LUID)的當(dāng)前數(shù)據(jù)鏈表;將當(dāng)前數(shù)據(jù)鏈表與用于記錄上次與服務(wù)器同步過的數(shù)據(jù)的已同步數(shù)據(jù)鏈表進(jìn)行對(duì)比;根據(jù)對(duì)比結(jié)果,進(jìn)行數(shù)據(jù)同步。本發(fā)明通過對(duì)比當(dāng)前數(shù)據(jù)鏈表與已同步數(shù)據(jù)鏈表實(shí)現(xiàn)數(shù)據(jù)的同步,不需要再依托于changelog文件進(jìn)行同步,提高了數(shù)據(jù)同步的性能,而且在修改數(shù)據(jù)時(shí)不需要調(diào)用changelog接口,可移植性較強(qiáng)。
文檔編號(hào)H04L29/08GK102291453SQ201110227428
公開日2011年12月21日 申請(qǐng)日期2011年8月9日 優(yōu)先權(quán)日2011年8月9日
發(fā)明者付麗琴, 何建橋, 何杰, 蒲競春, 袁磊, 魏上凱 申請(qǐng)人:中興通訊股份有限公司