一種數(shù)據(jù)同步方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及互聯(lián)網(wǎng)通訊領(lǐng)域,尤其涉及一種數(shù)據(jù)同步方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)在的多終端和多設(shè)備數(shù)據(jù)同步很多采用的是Webdav (Web-based DistributedAuthoring and Vers1ning)數(shù)據(jù)同步方式,這種方式的數(shù)據(jù)同步采用全量同步的方式,適用于數(shù)據(jù)量小的應(yīng)用場景,如通訊錄、日歷等應(yīng)用場景。
[0003]然而,隨著終端設(shè)備技術(shù)日益發(fā)展,在目前多圖片和多視頻的同步場景中,數(shù)據(jù)量要求較大,Webdav這種全量同步方式顯然不能適用現(xiàn)在的場景需求。并且,采用Webdav這種全量同步方式,消耗網(wǎng)絡(luò)數(shù)據(jù)同步時(shí)間和消耗網(wǎng)絡(luò)資源,特別是在便攜式設(shè)備上,例如,手機(jī)、平板電腦等,針對(duì)多圖片和多視頻的同步場景,這種全量同步模式十分消耗資源。
[0004]因此,針對(duì)現(xiàn)有技術(shù)中存在的上述技術(shù)問題,需要提出改進(jìn)的數(shù)據(jù)同步的方案。
【發(fā)明內(nèi)容】
[0005]本申請的主要目的在于提供一種數(shù)據(jù)同步方法、裝置及系統(tǒng),以解決現(xiàn)有技術(shù)存在的全量數(shù)據(jù)同步的方式無法滿足數(shù)據(jù)量較大的同步場景的需求的問題。
[0006]為解決上述問題,本申請實(shí)施例提供一種數(shù)據(jù)同步方法,包括:客戶端向服務(wù)器端發(fā)送數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中包含上一次同步的時(shí)間戳;接收所述服務(wù)器端返回的將所述請求中包含的上一次同步的時(shí)間戳與所述服務(wù)器端保存的上一次同步的時(shí)間戳進(jìn)行匹配的結(jié)果;如果所述結(jié)果為匹配,則與服務(wù)器交互修改的數(shù)據(jù)。
[0007]其中,與服務(wù)器交互修改的數(shù)據(jù),進(jìn)一步包括:向所述服務(wù)器端發(fā)送上一次同步后客戶端修改的數(shù)據(jù),由所述服務(wù)器端根據(jù)所述客戶端修改的數(shù)據(jù)更新本地相應(yīng)的數(shù)據(jù)。
[0008]其中,與服務(wù)器交互修改的數(shù)據(jù),進(jìn)一步包括:接收所述服務(wù)器端發(fā)送的上一次同步后服務(wù)器端修改的數(shù)據(jù),并根據(jù)所述服務(wù)器端修改的數(shù)據(jù)更新本地相應(yīng)的數(shù)據(jù)。
[0009]其中,與服務(wù)器交互修改的數(shù)據(jù),進(jìn)一步包括:向所述服務(wù)器端發(fā)送上一次同步后客戶端修改的數(shù)據(jù),由所述服務(wù)器端根據(jù)所述客戶端修改的數(shù)據(jù)更新本地相應(yīng)的數(shù)據(jù);以及接收所述服務(wù)器端發(fā)送的上一次同步后服務(wù)器端修改的數(shù)據(jù),并根據(jù)所述服務(wù)器端修改的數(shù)據(jù)更新本地相應(yīng)的數(shù)據(jù)。
[0010]其中,向所述服務(wù)器端發(fā)送上一次同步后客戶端修改的數(shù)據(jù),包括:向所述服務(wù)器端發(fā)送客戶端修改的數(shù)據(jù),該修改的數(shù)據(jù)為JSON數(shù)據(jù)格式。
[0011]其中,如果所述結(jié)果為不匹配,則向所述服務(wù)器端發(fā)送所述客戶端的所有數(shù)據(jù);接收所述服務(wù)器端返回的所述客戶端需要修改的數(shù)據(jù),其中,所述需要修改的數(shù)據(jù)是所述服務(wù)器端將所述的所有數(shù)據(jù)與所述服務(wù)器端保存的相應(yīng)的數(shù)據(jù)進(jìn)行比對(duì)確定的;根據(jù)所述需要修改的數(shù)據(jù)更新所述客戶端的所有數(shù)據(jù)。
[0012]其中,客戶端向服務(wù)器端發(fā)送數(shù)據(jù)同步請求之前,還包括:接收到所述服務(wù)器端推送的數(shù)據(jù)更新通知。
[0013]本申請實(shí)施例還提供一種數(shù)據(jù)同步方法,包括:服務(wù)器接收客戶端發(fā)送的數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中包含上一次同步的時(shí)間戳;將所述請求中包含的上一次同步的時(shí)間戳與本地保存的上一次同步的時(shí)間戳進(jìn)行匹配,并向所述客戶端返回匹配的結(jié)果;在所述結(jié)果為匹配的情況下,與客戶端交互修改的數(shù)據(jù)。
[0014]其中,與客戶端交互修改的數(shù)據(jù),進(jìn)一步包括:接收所述客戶端發(fā)送的上一次同步后客戶端修改的數(shù)據(jù),并根據(jù)所述客戶端修改的數(shù)據(jù)更新本地相應(yīng)的數(shù)據(jù)。
[0015]其中,與客戶端交互修改的數(shù)據(jù),進(jìn)一步包括:向所述客戶端發(fā)送上一次同步后服務(wù)器修改的數(shù)據(jù),由所述客戶端根據(jù)接收的該修改的數(shù)據(jù)更新本地相應(yīng)的數(shù)據(jù)。
[0016]其中,與客戶端交互修改的數(shù)據(jù),進(jìn)一步包括:接收所述客戶端發(fā)送的上一次同步后客戶端修改的數(shù)據(jù),并根據(jù)所述客戶端修改的數(shù)據(jù)更新本地相應(yīng)的數(shù)據(jù);以及向所述客戶端發(fā)送上一次同步后服務(wù)器修改的數(shù)據(jù),由所述客戶端根據(jù)接收的該修改的數(shù)據(jù)更新本地相應(yīng)的數(shù)據(jù)。
[0017]其中,向所述客戶端發(fā)送上一次同步后服務(wù)器修改的數(shù)據(jù),包括:向所述客戶端發(fā)送上一次同步后服務(wù)器修改的數(shù)據(jù),該修改的數(shù)據(jù)為JSON數(shù)據(jù)格式。
[0018]其中,還包括:在所述驗(yàn)證結(jié)果為不匹配的情況下,接收所述客戶端發(fā)送的所述客戶端的所有數(shù)據(jù);將所述所有數(shù)據(jù)與所述服務(wù)器保存的相應(yīng)的數(shù)據(jù)進(jìn)行比對(duì)確定所述客戶端需要修改的數(shù)據(jù);向所述客戶端發(fā)送所述需要修改的數(shù)據(jù),由所述客戶端根據(jù)所述需要修改的數(shù)據(jù)更新所述所有數(shù)據(jù)。
[0019]其中,還包括:將所述客戶端的所有數(shù)據(jù)與所述服務(wù)器保存的相應(yīng)的數(shù)據(jù)進(jìn)行比對(duì)確定所述服務(wù)器需要修改的數(shù)據(jù);根據(jù)所述服務(wù)器需要修改的數(shù)據(jù)更新所述服務(wù)器保存的相應(yīng)的數(shù)據(jù)。
[0020]本申請實(shí)施例提供一種數(shù)據(jù)同步裝置,包括:請求發(fā)送模塊,用于向服務(wù)器端發(fā)送數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中包含上一次同步的時(shí)間戳;第一接收模塊,用于接收所述服務(wù)器端返回的將所述請求中包含的上一次同步的時(shí)間戳與本地保存的上一次同步的時(shí)間戳進(jìn)行匹配的結(jié)果;第一交互模塊,用于在所述結(jié)果為匹配時(shí),與服務(wù)器交互修改的數(shù)據(jù)。
[0021]本申請實(shí)施例還提供一種數(shù)據(jù)同步裝置,包括:請求接收模塊,用于接收客戶端發(fā)送的數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中包含上一次同步的時(shí)間戳;匹配模塊,用于將所述請求中包含的上一次同步的時(shí)間戳與本地保存的上一次同步的時(shí)間戳進(jìn)行匹配,并向所述客戶端返回匹配的結(jié)果;第二交互模塊,用于在所述結(jié)果為匹配的情況下,與客戶端交互修改的數(shù)據(jù)。
[0022]本申請實(shí)施例還提供一種數(shù)據(jù)同步系統(tǒng),包括:客戶端和服務(wù)器,所述客戶端,用于向服務(wù)器端發(fā)送數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中包含上一次同步的時(shí)間戳;接收所述服務(wù)器端返回的將所述請求中包含的上一次同步的時(shí)間戳與所述服務(wù)器端保存的上一次同步的時(shí)間戳進(jìn)行匹配的結(jié)果;所述服務(wù)器,用于接收客戶端發(fā)送的數(shù)據(jù)同步請求,將所述請求中包含的上一次同步的時(shí)間戳與服務(wù)器保存的上一次同步的時(shí)間戳進(jìn)行匹配,且向所述客戶端返回匹配的結(jié)果;在所述結(jié)果為匹配的情況下,客戶端與服務(wù)器交互修改的數(shù)據(jù)。
[0023]與現(xiàn)有技術(shù)相比,本申請可以獲得包括以下技術(shù)效果:
[0024](I)根據(jù)本申請的技術(shù)方案,采用增量同步的方式進(jìn)行客戶端與服務(wù)器端的數(shù)據(jù)同步,客戶端和/或服務(wù)器端只將上一次同步后修改的數(shù)據(jù)向?qū)Ψ桨l(fā)送,減少了數(shù)據(jù)同步過程中的數(shù)據(jù)傳輸量,而且減少了網(wǎng)絡(luò)資源和時(shí)間消耗,提高數(shù)據(jù)同步的效率。
[0025](2)采用JSON(JavaScript Object Notat1n)數(shù)據(jù)格式進(jìn)行同步數(shù)據(jù)的傳輸,數(shù)據(jù)體積小,進(jìn)一步減少了數(shù)據(jù)同步時(shí)的數(shù)據(jù)傳輸量,并且,采用JSON數(shù)據(jù)格式傳遞數(shù)據(jù),編碼簡單且解析快速,進(jìn)一步提高了數(shù)據(jù)同步的效率。
【附圖說明】
[0026]此處所說明的附圖用來提供對(duì)本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對(duì)本申請的不當(dāng)限定。在附圖中:
[0027]圖1是本申請實(shí)施例一提供的數(shù)據(jù)同步方法的流程圖;
[0028]圖2是本申請實(shí)施例二提供的數(shù)據(jù)同步方法的流程圖;
[0029]圖3是本申請實(shí)施例三提供的數(shù)據(jù)同步方法的流程圖;
[0030]圖4是本申請實(shí)施例四提供的數(shù)據(jù)同步方法的流程圖;
[0031]圖5是本申請實(shí)施例五提供的數(shù)據(jù)同步方法的流程圖;
[0032]圖6是本申請實(shí)施例六提供的數(shù)據(jù)同步方法的流程圖;
[0033]圖7是本申請實(shí)施例七提供的數(shù)據(jù)同步方法的流程圖;
[0034]圖8是本申請實(shí)施例八提供的數(shù)據(jù)同步方法的流程圖;
[0035]圖9是本申請實(shí)施例九提供的數(shù)據(jù)同步裝置的結(jié)構(gòu)框圖;
[0036]圖10是本申請實(shí)施例十提供的數(shù)據(jù)同步裝置的結(jié)構(gòu)框圖;以及
[0037]圖11是本申請實(shí)施例十一提供的數(shù)據(jù)同步系統(tǒng)的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0038]本申請的主要思想在于,在進(jìn)行客戶端與服務(wù)器端的數(shù)據(jù)同步時(shí),客戶端和/或服務(wù)器端只將上一次同步后修改的數(shù)據(jù)向?qū)Ψ桨l(fā)送,以減少數(shù)據(jù)同步過程中的數(shù)據(jù)傳輸量,并減少網(wǎng)絡(luò)資源和時(shí)間的消耗,提高數(shù)據(jù)同步的效率。采用JSON數(shù)據(jù)格式進(jìn)行同步數(shù)據(jù)的傳輸,數(shù)據(jù)體積小,進(jìn)一步減少了數(shù)據(jù)同步時(shí)的數(shù)據(jù)傳輸量,且JSON格式的數(shù)據(jù)編碼簡單、解析快速,進(jìn)一步提高了數(shù)據(jù)同步的效率。
[0039]以下將配合附圖及實(shí)施例來詳細(xì)說明本申請的實(shí)施方式,藉此對(duì)本申請如何應(yīng)用技術(shù)手段來解決技術(shù)問題并達(dá)成技術(shù)功效的實(shí)現(xiàn)過程能充分理解并據(jù)以實(shí)施。
[0040]如在說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會(huì)用不同名詞來稱呼同一個(gè)組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)則。如在通篇說明書及權(quán)利要求當(dāng)中所提及的“包含”為一開放式用語,故應(yīng)解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮盏恼`差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述技術(shù)問題,基本達(dá)到所述技術(shù)效果。此外,“耦接”一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述