數(shù)據(jù)同步的方法、設(shè)備及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)同步的方法、設(shè)備及系統(tǒng),屬于互聯(lián)網(wǎng)領(lǐng)域。所述方法包括:服務(wù)器接收客戶端上傳的數(shù)據(jù)同步請求;根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合;將差異數(shù)據(jù)項(xiàng)集合發(fā)送給客戶端,使得客戶端根據(jù)差異數(shù)據(jù)項(xiàng)集合同步客戶端的本地?cái)?shù)據(jù)。本發(fā)明通過服務(wù)器根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)獲取包括服務(wù)器的數(shù)據(jù)項(xiàng)中相對于客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)的差異數(shù)據(jù)項(xiàng)集合后,不修改服務(wù)器的數(shù)據(jù),使得客戶端根據(jù)服務(wù)器發(fā)送的差異數(shù)據(jù)項(xiàng)集合同步客戶端的本地?cái)?shù)據(jù),擴(kuò)展了數(shù)據(jù)同步的方式,實(shí)現(xiàn)在數(shù)據(jù)同步過程中不修改服務(wù)器的數(shù)據(jù),且能夠用服務(wù)器的數(shù)據(jù)恢復(fù)客戶端的本地?cái)?shù)據(jù),避免對服務(wù)器的數(shù)據(jù)造成錯(cuò)誤修改。
【專利說明】數(shù)據(jù)同步的方法、設(shè)備及系統(tǒng)【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,特別涉及一種數(shù)據(jù)同步的方法、設(shè)備及系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,用戶會(huì)使用多個(gè)客戶端連接到互聯(lián)網(wǎng),以便于享受互聯(lián)網(wǎng)的多種便捷服務(wù)。用戶的每個(gè)客戶端的本地都會(huì)存儲(chǔ)有一定的數(shù)據(jù),為了方便用戶管理不相同客戶端的本地?cái)?shù)據(jù),可以將不相同客戶端的本地?cái)?shù)據(jù)上傳到服務(wù)器,由服務(wù)器進(jìn)行備份。服務(wù)器的數(shù)據(jù)中包括多個(gè)數(shù)據(jù)項(xiàng),每個(gè)數(shù)據(jù)項(xiàng)可以包含用戶名、電話號(hào)碼、郵箱地址、QQ號(hào)碼等內(nèi)容,服務(wù)器的每個(gè)數(shù)據(jù)項(xiàng)可以與客戶端的本地?cái)?shù)據(jù)中的數(shù)據(jù)項(xiàng)一一對應(yīng)。多個(gè)客戶端中的一客戶端可以將服務(wù)器的數(shù)據(jù)同步到該客戶端的本地。
[0003]現(xiàn)有技術(shù)在進(jìn)行數(shù)據(jù)同步時(shí),至少提供了如下兩種同步的方式:
[0004]方式一:雙向同步。服務(wù)器接收客戶端上傳的數(shù)據(jù)同步請求,數(shù)據(jù)同步請求中攜帶有修改標(biāo)識(shí)和客戶端的本地?cái)?shù)據(jù)中的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng),服務(wù)器根據(jù)修改標(biāo)識(shí)將客戶端的本地?cái)?shù)據(jù)中的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)同步到服務(wù)器的數(shù)據(jù)中;將服務(wù)器的數(shù)據(jù)中的修改數(shù)據(jù)項(xiàng)及新增數(shù)據(jù)項(xiàng)發(fā)送給客戶端,使得客戶端根據(jù)服務(wù)器的數(shù)據(jù)中的修改數(shù)據(jù)項(xiàng)及新增數(shù)據(jù)項(xiàng)同步客戶端的本地?cái)?shù)據(jù)。
[0005]方式二:慢同步。服務(wù)器接收客戶端上傳的數(shù)據(jù)同步請求,數(shù)據(jù)同步請求中攜帶有新增標(biāo)識(shí)和客戶端的所有數(shù)據(jù)項(xiàng),根據(jù)新增標(biāo)識(shí)和客戶端的所有數(shù)據(jù)項(xiàng)獲取第一差異數(shù)據(jù)項(xiàng)集合和第二差異數(shù)據(jù)項(xiàng)集合,第一差異數(shù)據(jù)項(xiàng)集合中包括服務(wù)器的數(shù)據(jù)項(xiàng)中相對于客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng),第二數(shù)據(jù)項(xiàng)集合中包括客戶端的數(shù)據(jù)項(xiàng)中相對于服務(wù)器的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng);根據(jù)第二差異數(shù)據(jù)項(xiàng)集合同步服務(wù)器的數(shù)據(jù);將第一差異數(shù)據(jù)項(xiàng)集合發(fā)送給客戶端,使得客戶端根據(jù)第一差異數(shù)據(jù)項(xiàng)集合同步客戶端的本地?cái)?shù)據(jù)。.
[0006]在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
[0007]由于無論方式一或是方式二,在數(shù)據(jù)同步時(shí)服務(wù)器的數(shù)據(jù)都將被修改,如果服務(wù)器的數(shù)據(jù)項(xiàng)為服務(wù)器根據(jù)其他客戶端的本地?cái)?shù)據(jù)同步后的最新數(shù)據(jù)項(xiàng),或者該客戶端的數(shù)據(jù)項(xiàng)為被篡改后的錯(cuò)誤的數(shù)據(jù)項(xiàng),而對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)為正確的數(shù)據(jù)項(xiàng),由于在本次數(shù)據(jù)同步過程中服務(wù)器的數(shù)據(jù)項(xiàng)被同步于該客戶端的數(shù)據(jù)項(xiàng),導(dǎo)致服務(wù)器的數(shù)據(jù)發(fā)生錯(cuò)誤,并且難以恢復(fù)。
【發(fā)明內(nèi)容】
[0008]為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)同步的方法、設(shè)備及系統(tǒng)。所述技術(shù)方案如下:
[0009]第一方面,提供了一種數(shù)據(jù)同步的方法,所述方法包括:
[0010]服務(wù)器接收客戶端上傳的數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng);[0011]根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,所述差異數(shù)據(jù)項(xiàng)集合中包括所述服務(wù)器的數(shù)據(jù)項(xiàng)中相對于所述客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng);
[0012]將所述差異數(shù)據(jù)項(xiàng)集合發(fā)送給所述客戶端,使得所述客戶端根據(jù)所述差異數(shù)據(jù)項(xiàng)集合同步所述客戶端的本地?cái)?shù)據(jù)。
[0013]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括:
[0014]根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0015]如果比對出所述客戶端的一數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同,則將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0016]將與所述客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0017]將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0018]結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括:
[0019]根據(jù)所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng);
[0020]根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0021]如果比對出所述客戶端的一數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同,則將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0022]將與所述客戶端的所有數(shù)據(jù)項(xiàng)均不對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0023]將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0024]結(jié)合第一方面,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間;所述根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括:
[0025]根據(jù)所述恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0026]如果比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同,則將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0027]將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0028]將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0029]結(jié)合第一方面,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí)和每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間;所述根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括:
[0030]根據(jù)每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng);
[0031]根據(jù)所述恢復(fù)標(biāo)識(shí)將所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0032]如果比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同,則將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0033]將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0034]將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0035]第二方面,提供了一種數(shù)據(jù)同步的方法,所述方法包括:
[0036]客戶端將數(shù)據(jù)同步請求上傳給服務(wù)器,所述數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng),使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,將所述差異數(shù)據(jù)項(xiàng)集合發(fā)送給所述客戶端;
[0037]接收所述服務(wù)器發(fā)送的所述差異數(shù)據(jù)項(xiàng)集合,并根據(jù)所述差異數(shù)據(jù)項(xiàng)集合同步所述客戶端的本地?cái)?shù)據(jù);
[0038]其中,所述差異數(shù)據(jù)項(xiàng)集合中包括所述服務(wù)器的數(shù)據(jù)項(xiàng)中相對于所述客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)。
[0039]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出所述客戶端的一數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將與所述客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0040]結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),使得所述服務(wù)器根據(jù)所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng),并根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對,在比對出所述客戶端的一數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同時(shí),將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將與所述客戶端的所有數(shù)據(jù)項(xiàng)均不對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0041]結(jié)合第二方面,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間,使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0042]結(jié)合第二方面,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí)和每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間,使得所述服務(wù)器根據(jù)每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng),并根據(jù)所述恢復(fù)標(biāo)識(shí)將所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同時(shí),將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0043]結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式或第二方面的第四種可能的實(shí)現(xiàn)方式,在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述將數(shù)據(jù)同步請求上傳給服務(wù)器之前,還包括:
[0044]確定用戶在所述客戶端的所有數(shù)據(jù)項(xiàng)中選擇的數(shù)據(jù)項(xiàng),并根據(jù)所述用戶選擇的數(shù)據(jù)項(xiàng)確定待恢復(fù)數(shù)據(jù)項(xiàng)。
[0045]結(jié)合第二方面,在第二方面的第六種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述差異數(shù)據(jù)項(xiàng)集合同步所述客戶端的本地?cái)?shù)據(jù),包括:
[0046]將所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng);
[0047]將所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中。
[0048]結(jié)合第二方面的第六種可能的實(shí)現(xiàn)方式,在第二方面的第七種可能的實(shí)現(xiàn)方式中,所述將所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng)之前,還包括:
[0049]顯示所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng),并確定用戶在顯示的所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)中選擇的修改數(shù)據(jù)項(xiàng);
[0050]所述將所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng),包括
[0051]將所述差異數(shù)據(jù)項(xiàng)集合中用戶選擇的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng)。
[0052]結(jié)合第二方面的第七種可能的實(shí)現(xiàn)方式,在第二方面的第八種可能的實(shí)現(xiàn)方式中,所述將所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中之前,還包括:
[0053]顯示所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng),并確定用戶在顯示的所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)中選擇的新增數(shù)據(jù)項(xiàng);
[0054]所述將所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中,包括:[0055]將所述差異數(shù)據(jù)項(xiàng)集合中用戶選擇的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中。
[0056]第三方面,提供了一種服務(wù)器,所述服務(wù)器包括:
[0057]接收模塊,用于接收客戶端上傳的數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng);
[0058]獲取模塊,用于根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,所述差異數(shù)據(jù)項(xiàng)集合中包括所述服務(wù)器的數(shù)據(jù)項(xiàng)中相對于所述客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng);
[0059]發(fā)送模塊,用于將所述獲取模塊獲取到的差異數(shù)據(jù)項(xiàng)集合發(fā)送給所述客戶端,使得所述客戶端根據(jù)所述差異數(shù)據(jù)項(xiàng)集合同步所述客戶端的本地?cái)?shù)據(jù)。
[0060]結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述接收模塊接收到的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述獲取模塊,包括:
[0061]第一比對單元,用于根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0062]第一確定單元,用于在所述第一比對單元比對出所述客戶端的一數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0063]所述第一確定單元,還用于將與所述客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0064]第一合并單元,用于將所述第一確定單元確定的修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0065]結(jié)合第三方面,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述接收模塊接收到的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述獲取模塊,包括:
[0066]第二確定單元,用于根據(jù)所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng);
[0067]第二比對單元,用于根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0068]所述第二確定單元,還用于在所述第二比對單元比對出所述客戶端的一數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同,則將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0069]所述第二確定單元,用于將與所述客戶端的所有數(shù)據(jù)項(xiàng)均不對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0070]第二合并單元,用于將所述第二確定單元確定的修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0071]結(jié)合第三方面,在第三方面的第三種可能的實(shí)現(xiàn)方式中,所述接收模塊接收到的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間;所述獲取模塊,包括:
[0072]第三比對單元,用于根據(jù)所述恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0073]第三確定單元,用于在所述第三比對單元比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0074]所述第三確定單元,還用于將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0075]第三合并單元,用于將所述第三確定單元確定的所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0076]結(jié)合第三方面,在第三方面的第四種可能的實(shí)現(xiàn)方式中,所述接收模塊接收到的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí)和每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間;所述獲取模塊,包括:
[0077]第四確定單元,用于根據(jù)每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng);
[0078]第四比對單元,用于根據(jù)所述恢復(fù)標(biāo)識(shí)將所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0079]所述第四確定單元,還用于在所述第四比對單元比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同時(shí),將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0080]所述第四確定單元,還用于將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0081]第四合并單元,用于將所述第四確定單元確定的修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0082]第四方面,提供了一種客戶端,所述客戶端包括:
[0083]上傳模塊,用于將數(shù)據(jù)同步請求上傳給服務(wù)器,所述數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng),使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,將所述差異數(shù)據(jù)項(xiàng)集合發(fā)送給所述客戶端;
[0084]接收模塊,用于接收所述服務(wù)器發(fā)送的所述差異數(shù)據(jù)項(xiàng)集合;
[0085]同步模塊,用于根據(jù)所述接收模塊接收到的差異數(shù)據(jù)項(xiàng)集合同步所述客戶端的本地?cái)?shù)據(jù);
[0086]其中,所述差異數(shù)據(jù)項(xiàng)集合中包括所述服務(wù)器的數(shù)據(jù)項(xiàng)中相對于所述客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)。
[0087]結(jié)合第四方面,在第四方面的第一種可能的實(shí)現(xiàn)方式中,所述上傳模塊上傳的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出所述客戶端的一數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將與所述客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0088]結(jié)合第四方面,在第四方面的第二種可能的實(shí)現(xiàn)方式中,所述上傳模塊上傳的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),使得所述服務(wù)器根據(jù)所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng),并根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對,在比對出所述客戶端的一數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同時(shí),將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將與所述客戶端的所有數(shù)據(jù)項(xiàng)均不對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0089]結(jié)合第四方面,在第四方面的第三種可能的實(shí)現(xiàn)方式中,所述上傳模塊上傳的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間,使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0090]結(jié)合第四方面,在第四方面的第四種可能的實(shí)現(xiàn)方式中,所述上傳模塊上傳的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí)和每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間,使得所述服務(wù)器根據(jù)每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng),并根據(jù)所述恢復(fù)標(biāo)識(shí)將所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同時(shí),將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0091]結(jié)合第四方面的第三種可能的實(shí)現(xiàn)方式或第四方面的第四種可能的實(shí)現(xiàn)方式,在第四方面的第五種可能的實(shí)現(xiàn)方式中,所述客戶端還包括:
[0092]確定模塊,用于確定用戶在所述客戶端的所有數(shù)據(jù)項(xiàng)中選擇的數(shù)據(jù)項(xiàng),并根據(jù)所述確定的用戶選擇的數(shù)據(jù)項(xiàng)確定待恢復(fù)數(shù)據(jù)項(xiàng)。
[0093]結(jié)合第四方面,在第四方面的第六種可能的實(shí)現(xiàn)方式中,所述同步模塊,包括:
[0094]替換單元,用于將所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng);
[0095]添加單元,用于將所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中。
[0096]結(jié)合第四方面的第六種可能的實(shí)現(xiàn)方式,在第四方面的第七種可能的實(shí)現(xiàn)方式中,所述同步模塊,還包括:
[0097]顯示單元,用于顯示所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng);
[0098]確定單元,用于確定用戶在所述顯示單元顯示的所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)中選擇的修改數(shù)據(jù)項(xiàng);
[0099]所述替換單元,具體用于將所述確定單元確定的所述差異數(shù)據(jù)項(xiàng)集合中用戶選擇的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng)。
[0100]結(jié)合第四方面的第七種可能的實(shí)現(xiàn)方式,在第四方面的第八種可能的實(shí)現(xiàn)方式中,所述顯示單元,還用于顯示所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng);
[0101 ] 所述確定單元,還用于確定用戶在所述顯示單元顯示的所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)中選擇的新增數(shù)據(jù)項(xiàng);
[0102]所述添加單元,具體用于將所述確定單元確定的所述差異數(shù)據(jù)項(xiàng)集合在用戶選擇的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中。
[0103]第五方面,提供了一種數(shù)據(jù)同步的系統(tǒng),所述系統(tǒng)包括:服務(wù)器和客戶端;
[0104]其中,所述服務(wù)器如上述第三方面所述的服務(wù)器;
[0105]所述客戶端如上述第四方面所述的客戶端。
[0106]本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
[0107]通過服務(wù)器根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的本地?cái)?shù)據(jù)獲取包括服務(wù)器的數(shù)據(jù)中相對于客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)的差異數(shù)據(jù)項(xiàng)集合后,不修改服務(wù)器的數(shù)據(jù),將差異數(shù)據(jù)項(xiàng)集合發(fā)送給客戶端,使得客戶端根據(jù)差異數(shù)據(jù)項(xiàng)集合同步客戶端的本地?cái)?shù)據(jù),擴(kuò)展了數(shù)據(jù)同步的方式,實(shí)現(xiàn)了在數(shù)據(jù)同步過程中不修改服務(wù)器的數(shù)據(jù),且能夠用服務(wù)器的數(shù)據(jù)恢復(fù)客戶端的本地?cái)?shù)據(jù),從而避免了客戶端的本地?cái)?shù)據(jù)發(fā)生錯(cuò)誤時(shí)對服務(wù)器的數(shù)據(jù)造成的錯(cuò)誤修改。
【專利附圖】
【附圖說明】
[0108]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0109]圖1是本發(fā)明實(shí)施例一提供的一種數(shù)據(jù)同步的方法流程圖;
[0110]圖2是本發(fā)明實(shí)施例一提供的另一種數(shù)據(jù)同步的方法流程圖;
[0111]圖3是本發(fā)明實(shí)施例二提供的一種數(shù)據(jù)同步的方法流程圖;
[0112]圖4是本發(fā)明實(shí)施例二提供的一種服務(wù)器的結(jié)構(gòu)示意圖;
[0113]圖5是本發(fā)明實(shí)施例三提供的一種服務(wù)器的結(jié)構(gòu)示意圖;
[0114]圖6是本發(fā)明實(shí)施例四提供的一種客戶端的結(jié)構(gòu)示意圖;
[0115]圖7是本發(fā)明實(shí)施例五提供的一種數(shù)據(jù)同步的系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0116]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。[0117]實(shí)施例一
[0118]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)同步的方法,該方法以服務(wù)器側(cè)的角度為例,對數(shù)據(jù)同步的方法進(jìn)行說明。參見圖1,本發(fā)明實(shí)施例提供的方法流程包括:
[0119]101:服務(wù)器接收客戶端上傳的數(shù)據(jù)同步請求,數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)。
[0120]102:根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,差異數(shù)據(jù)項(xiàng)集合中包括服務(wù)器的數(shù)據(jù)項(xiàng)中相對于客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)。
[0121]具體地,數(shù)據(jù)同步請求中攜帶的客戶端的數(shù)據(jù)項(xiàng)為客戶端的所有數(shù)據(jù)項(xiàng),根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括:
[0122]根據(jù)恢復(fù)標(biāo)識(shí)將客戶端的每個(gè)數(shù)據(jù)項(xiàng)與服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0123]如果比對出客戶端的一數(shù)據(jù)項(xiàng)與服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同,則將服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0124]將與客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同的服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0125]將修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0126]具體地,數(shù)據(jù)同步請求中攜帶的客戶端的數(shù)據(jù)項(xiàng)為客戶端的所有數(shù)據(jù)項(xiàng),數(shù)據(jù)同步請求中還攜帶有客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括:
[0127]根據(jù)客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與客戶端的每個(gè)數(shù)據(jù)項(xiàng)對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng);
[0128]根據(jù)恢復(fù)標(biāo)識(shí)將客戶端的每個(gè)數(shù)據(jù)項(xiàng)與對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0129]如果比對出客戶端的一數(shù)據(jù)項(xiàng)與對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同,則將對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0130]將與客戶端的所有數(shù)據(jù)項(xiàng)均不對應(yīng)的服務(wù)器的數(shù)據(jù)中的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0131]將修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0132]具體地,數(shù)據(jù)同步請求中攜帶的客戶端的數(shù)據(jù)項(xiàng)為客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí),時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間;根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括:
[0133]根據(jù)恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0134]如果比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同,則將服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0135]將在時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0136]將修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0137]具體地,數(shù)據(jù)同步請求中攜帶的客戶端的數(shù)據(jù)項(xiàng)為客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí)和每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間;根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括:
[0138]根據(jù)每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng);
[0139]根據(jù)恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對;
[0140]如果比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同,則將對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);
[0141]將在時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);
[0142]將修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。103:將差異數(shù)據(jù)項(xiàng)集合發(fā)送給客戶端,使得客戶端根據(jù)差異數(shù)據(jù)項(xiàng)集合同步客戶端的本地?cái)?shù)據(jù)。
[0143]服務(wù)器得到與客戶端數(shù)據(jù)的差異數(shù)據(jù)項(xiàng)集合后,根據(jù)恢復(fù)(Restore)標(biāo)識(shí),確定本次客戶端上傳的數(shù)據(jù)僅用于恢復(fù)比較用,因此在比較操作完成后,不修改服務(wù)器的數(shù)據(jù);月艮務(wù)器下發(fā)差異數(shù)據(jù)項(xiàng)集合給客戶端,以使客戶端做相應(yīng)的數(shù)據(jù)更新。
[0144]若客戶端的某些數(shù)據(jù)項(xiàng)與服務(wù)器數(shù)據(jù)的所有數(shù)據(jù)項(xiàng)均不對應(yīng),即客戶端的這些數(shù)據(jù)項(xiàng)未包含在服務(wù)器的數(shù)據(jù)中,不將這些數(shù)據(jù)項(xiàng)放入差異數(shù)據(jù)項(xiàng)集合,后續(xù)客戶端根據(jù)這些數(shù)據(jù)項(xiàng)進(jìn)行的同步處理可以有不同方式,如客戶端刪除這些數(shù)據(jù)項(xiàng),或者客戶端不刪除這些數(shù)據(jù)項(xiàng),發(fā)送給服務(wù)器以添加這些數(shù)據(jù)項(xiàng)。
[0145]本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)同步的方法,該方法以客戶端側(cè)的角度為例,對數(shù)據(jù)同步的方法進(jìn)行說明。參見圖2,本發(fā)明實(shí)施例提供的方法流程包括:
[0146]201:客戶端將數(shù)據(jù)同步請求上傳給服務(wù)器,數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng),使得服務(wù)器根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,將差異數(shù)據(jù)項(xiàng)集合發(fā)送給客戶端。
[0147]202:接收服務(wù)器發(fā)送的差異數(shù)據(jù)項(xiàng)集合,并根據(jù)差異數(shù)據(jù)項(xiàng)集合同步客戶端的本地?cái)?shù)據(jù)。
[0148]其中,差異數(shù)據(jù)項(xiàng)集合中包括服務(wù)器的數(shù)據(jù)項(xiàng)中相對于客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)。
[0149]具體地,數(shù)據(jù)同步請求中攜帶的客戶端的數(shù)據(jù)項(xiàng)為客戶端的所有數(shù)據(jù)項(xiàng),使得服務(wù)器根據(jù)恢復(fù)標(biāo)識(shí)將客戶端的每個(gè)數(shù)據(jù)項(xiàng)與服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出客戶端的一數(shù)據(jù)項(xiàng)與服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將與客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同的服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0150]具體地,數(shù)據(jù)同步請求中攜帶的客戶端的數(shù)據(jù)項(xiàng)為客戶端的所有數(shù)據(jù)項(xiàng),數(shù)據(jù)同步請求中還攜帶有客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),使得服務(wù)器根據(jù)客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與客戶端的每個(gè)數(shù)據(jù)項(xiàng)對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng),并根據(jù)恢復(fù)標(biāo)識(shí)將客戶端的每個(gè)數(shù)據(jù)項(xiàng)與對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對,在比對出客戶端的一數(shù)據(jù)項(xiàng)與對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同時(shí),將對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將與客戶端的所有數(shù)據(jù)項(xiàng)均不對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0151]具體地,數(shù)據(jù)同步請求中攜帶的客戶端的數(shù)據(jù)項(xiàng)為客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí),時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間,使得服務(wù)器根據(jù)恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將在時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0152]具體地,數(shù)據(jù)同步請求中攜帶的客戶端的數(shù)據(jù)項(xiàng)為客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí)和每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間,使得服務(wù)器根據(jù)每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng),并根據(jù)恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同時(shí),將對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將在時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
[0153]進(jìn)一步地,將數(shù)據(jù)同步請求上傳給服務(wù)器之前,還包括:
[0154]確定用戶在客戶端的所有數(shù)據(jù)項(xiàng)中選擇的數(shù)據(jù)項(xiàng),并根據(jù)用戶選擇的數(shù)據(jù)項(xiàng)確定待恢復(fù)數(shù)據(jù)項(xiàng)。
[0155]具體地,根據(jù)差異數(shù)據(jù)項(xiàng)集合同步客戶端的本地?cái)?shù)據(jù),包括:
[0156]將差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)替換客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng);
[0157]將差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)添加到客戶端的本地?cái)?shù)據(jù)中。
[0158]具體地,將差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)替換客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng)之前,還包括:
[0159]顯示差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng),并確定用戶在顯示的差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)中選擇的修改數(shù)據(jù)項(xiàng);
[0160]將差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)替換客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng),包括:
[0161]將差異數(shù)據(jù)項(xiàng)集合中用戶選擇的修改數(shù)據(jù)項(xiàng)替換客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng)。
[0162]具體地,將差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)添加到客戶端的本地?cái)?shù)據(jù)中之前,還包括:
[0163]顯示差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng),并確定用戶在顯示的差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)中選擇的新增數(shù)據(jù)項(xiàng);
[0164]將差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)添加到客戶端的本地?cái)?shù)據(jù)中,包括:
[0165]將差異數(shù)據(jù)項(xiàng)集合中用戶選擇的新增數(shù)據(jù)項(xiàng)添加到客戶端的本地?cái)?shù)據(jù)中。
[0166]綜上所述,本發(fā)明實(shí)施例提供的方法,通過服務(wù)器根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的本地?cái)?shù)據(jù)獲取包括服務(wù)器的數(shù)據(jù)中相對于客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)的差異數(shù)據(jù)項(xiàng)集合后,不修改服務(wù)器的數(shù)據(jù),將差異數(shù)據(jù)項(xiàng)集合發(fā)送給客戶端,使得客戶端根據(jù)差異數(shù)據(jù)項(xiàng)集合同步客戶端的本地?cái)?shù)據(jù),擴(kuò)展了數(shù)據(jù)同步的方式,實(shí)現(xiàn)了在數(shù)據(jù)同步過程中不修改服務(wù)器的數(shù)據(jù),且能夠用服務(wù)器的數(shù)據(jù)恢復(fù)客戶端的本地?cái)?shù)據(jù),從而避免了客戶端的本地?cái)?shù)據(jù)發(fā)生錯(cuò)誤時(shí)對服務(wù)器的數(shù)據(jù)造成的錯(cuò)誤修改。
[0167]實(shí)施例二
[0168]為了避免在客戶端和服務(wù)器同步的過程中錯(cuò)誤地修改服務(wù)器的數(shù)據(jù),本發(fā)明實(shí)施例提供了一種數(shù)據(jù)同步的方法。結(jié)合上述實(shí)施例一的內(nèi)容,參見圖3,本發(fā)明實(shí)施例提供的方法流程包括:
[0169]301:客戶端上傳數(shù)據(jù)同步請求給服務(wù)器,數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)。
[0170]其中,客戶端通常安裝在終端上,也可以安裝在其他設(shè)備上。終端可以包括手機(jī)、平板電腦、電子書閱讀器、MP3播放器(Moving Picture Experts Group Audio Layer III,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)、MP4 (Moving Picture Experts Group Audio LayerIV,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面4)播放器、筆記本電腦和臺(tái)式電腦等等。
[0171]針對該步驟,在實(shí)際應(yīng)用中,服務(wù)器通常管理一個(gè)或多個(gè)客戶端,每個(gè)客戶端都可以將每個(gè)客戶端的本地?cái)?shù)據(jù)和服務(wù)器的數(shù)據(jù)進(jìn)行同步。如果用戶不確定某個(gè)客戶端的本地?cái)?shù)據(jù)中某個(gè)數(shù)據(jù)項(xiàng)或全部數(shù)據(jù)項(xiàng)是否正確,或者是否為相對于對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)來說是被修改后的數(shù)據(jù)項(xiàng),并且用戶也不期望用客戶端的本地?cái)?shù)據(jù)同步服務(wù)器的數(shù)據(jù),因而,用戶可以在該客戶端上傳給服務(wù)器的數(shù)據(jù)同步請求中攜帶恢復(fù)標(biāo)識(shí)和客戶端的本地?cái)?shù)據(jù)中的數(shù)據(jù)項(xiàng)。
[0172]客戶端上傳數(shù)據(jù)同步請求給服務(wù)器時(shí),可以通過OMA (Open Mobile Alliance,開放移動(dòng)聯(lián)盟)SyncML (Synchronization Markup Language,同步標(biāo)記語言)DS (DataSynchronization,數(shù)據(jù)同步)協(xié)議與服務(wù)器建立SyncML連接之后,通過SyncML連接發(fā)送數(shù)據(jù)同步請求給服務(wù)器。其中,數(shù)據(jù)同步請求可以是HTTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議)同步請求,數(shù)據(jù)同步請求可以通過XML (Extensible Markup Language,可擴(kuò)展標(biāo)記語言)報(bào)文或者 WBXML (Wireless Application Protocol Binary ExtensibleMarkup Language,無線應(yīng)用協(xié)議二進(jìn)制可擴(kuò)展標(biāo)記語言)報(bào)文的形式上傳給服務(wù)器。
[0173]302:服務(wù)器在接收到客戶端上傳的數(shù)據(jù)同步請求后,根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的本地?cái)?shù)據(jù)獲取差異數(shù)據(jù)項(xiàng)集合,差異數(shù)據(jù)項(xiàng)集合中包括服務(wù)器的數(shù)據(jù)項(xiàng)中相對于客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)。
[0174]由于數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí),表示客戶端期望確定客戶端的本地?cái)?shù)據(jù)中某個(gè)數(shù)據(jù)項(xiàng)或全部數(shù)據(jù)項(xiàng)是否為正確或者是否為相對于對應(yīng)的服務(wù)器的數(shù)據(jù)項(xiàng)來說是被修改后的數(shù)據(jù)項(xiàng),而不期望用客戶端的本地?cái)?shù)據(jù)同步服務(wù)器的數(shù)據(jù)。因此,服務(wù)器在接收到客戶端上傳的數(shù)據(jù)同步請求后,根據(jù)恢復(fù)標(biāo)識(shí)確定本次客戶端上傳的數(shù)據(jù)僅用于恢復(fù)比較,從而根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,且不修改服務(wù)器的數(shù)據(jù)。因此,服務(wù)器的數(shù)據(jù)不會(huì)同步于客戶端的本地?cái)?shù)據(jù)。
[0175]具體地,根據(jù)數(shù)據(jù)同步請求中攜帶的客戶端的數(shù)據(jù)項(xiàng)的不相同和數(shù)據(jù)同步請求中攜帶的信息的不相同,服務(wù)器根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合的方式也不相同,具體包括但不限于以下四種方式:
[0176]方式一:數(shù)據(jù)同步請求中攜帶的客戶端的數(shù)據(jù)項(xiàng)為客戶端的所有數(shù)據(jù)項(xiàng),根據(jù)恢復(fù)標(biāo)識(shí)和客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括:根據(jù)恢復(fù)標(biāo)識(shí)將客戶端的每個(gè)數(shù)據(jù)項(xiàng)與服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對;如果比對出客戶端的一數(shù)據(jù)項(xiàng)與服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同,則將服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng);將與客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同的服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng);將修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。[0177]該方式通常用于客戶端執(zhí)行第一次數(shù)據(jù)同步操作時(shí),由于服務(wù)器預(yù)先不知道客戶端的數(shù)據(jù)項(xiàng)與服務(wù)器的數(shù)據(jù)項(xiàng)之間的對應(yīng)關(guān)系,因此,需要將客戶端的每個(gè)數(shù)據(jù)項(xiàng)與服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對。由于數(shù)據(jù)項(xiàng)通常包含多項(xiàng)內(nèi)容,例如,可以包含用戶名、電話號(hào)碼、QQ號(hào)碼、郵箱地址等內(nèi)容,用戶在修改客戶端的一數(shù)據(jù)項(xiàng)時(shí),往往會(huì)修改其中部分項(xiàng)內(nèi)容。例如,修改該數(shù)據(jù)項(xiàng)中的QQ號(hào)碼,或在該數(shù)據(jù)項(xiàng)中繼續(xù)添加一個(gè)或多個(gè)新的電話號(hào)碼等。因而,在比對時(shí),如果比對出客戶端的一數(shù)據(jù)項(xiàng)與服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同,說明該待恢復(fù)數(shù)據(jù)項(xiàng)與該服務(wù)器的數(shù)據(jù)項(xiàng)對應(yīng),又由于其余部分項(xiàng)內(nèi)容不相同,則將該服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng)。此外,如果客戶端的一數(shù)據(jù)項(xiàng)與服務(wù)器的一數(shù)據(jù)項(xiàng)的全部內(nèi)容均相同,說明客戶端的該數(shù)據(jù)項(xiàng)與服務(wù)器的該數(shù)據(jù)項(xiàng)一致,無需使用服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行恢復(fù)操作,因而可以忽略該數(shù)據(jù)項(xiàng)。當(dāng)然,如果客戶端的所有數(shù)據(jù)項(xiàng)與服務(wù)器的數(shù)據(jù)項(xiàng)的全部內(nèi)容均相同,則差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)為空。
[0178]并且,如果一服務(wù)器的數(shù)據(jù)項(xiàng)與客戶端的所有數(shù)據(jù)項(xiàng)的全部內(nèi)容均不相同,則說明該數(shù)據(jù)項(xiàng)為新增到服務(wù)器的數(shù)據(jù)項(xiàng),在客戶端的本地?cái)?shù)據(jù)中沒有相應(yīng)的記錄,因而將該數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)。當(dāng)然,如果沒有任一服務(wù)器的數(shù)據(jù)項(xiàng)與客戶端的所有數(shù)據(jù)項(xiàng)的全部內(nèi)容均不相同,則差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)為空。
[0179]舉例來說,以客戶端的所有數(shù)據(jù)項(xiàng)和服務(wù)器的所有數(shù)據(jù)項(xiàng)如下表I所示為例,每個(gè)數(shù)據(jù)項(xiàng)中包含用戶名和手機(jī)號(hào)碼,服務(wù)器接收到客戶端上傳的數(shù)據(jù)同步請求后,將客戶端的數(shù)據(jù)項(xiàng)A與服務(wù)器的所有數(shù)據(jù)項(xiàng)Al-F進(jìn)行比對,得到客戶端的數(shù)據(jù)項(xiàng)A的用戶名與服務(wù)器的數(shù)據(jù)項(xiàng)Al的用戶名相同,且客戶端的數(shù)據(jù)項(xiàng)A的手機(jī)號(hào)碼與服務(wù)器的數(shù)據(jù)項(xiàng)Al的手機(jī)號(hào)碼不相同,則將服務(wù)器的數(shù)據(jù)項(xiàng)Al確定為修改數(shù)據(jù)項(xiàng)。同樣地,確定出服務(wù)器的數(shù)據(jù)項(xiàng)Dl為修改數(shù)據(jù)項(xiàng)。并且,由于服務(wù)器的數(shù)據(jù)項(xiàng)E和數(shù)據(jù)項(xiàng)F的所有內(nèi)容與客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同,因而將服務(wù)器的數(shù)據(jù)項(xiàng)E和F確定為新增數(shù)據(jù)項(xiàng)。將修改數(shù)據(jù)項(xiàng)Al和Dl以及新增數(shù)據(jù)項(xiàng)E和F合并為差異數(shù)據(jù)項(xiàng)集合。
[0180]表I
[0181]
【權(quán)利要求】
1.一種數(shù)據(jù)同步的方法,其特征在于,所述方法包括: 服務(wù)器接收客戶端上傳的數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng); 根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,所述差異數(shù)據(jù)項(xiàng)集合中包括所述服務(wù)器的數(shù)據(jù)項(xiàng)中相對于所述客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng);將所述差異數(shù)據(jù)項(xiàng)集合發(fā)送給所述客戶端,使得所述客戶端根據(jù)所述差異數(shù)據(jù)項(xiàng)集合同步所述客戶端的本地?cái)?shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括: 根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對; 如果比對出所述客戶端的一數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同,則 將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng); 將與所述客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng); 將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括: 根據(jù)所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng); 根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對; 如果比對出所述客戶端的一數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同,則將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng); 將與所述客戶端的所有數(shù)據(jù)項(xiàng)均不對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng); 將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間;所述根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括: 根據(jù)所述恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對; 如果比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同,則將所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng); 將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng); 將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí)和每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間;所述根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,包括: 根據(jù)每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng); 根據(jù)所述恢復(fù)標(biāo)識(shí)將所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對; 如果比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同,則將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng); 將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng); 將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
6.一種數(shù)據(jù)同步的方法,其特征在于,所述方法包括: 客戶端將數(shù)據(jù)同步請求上傳給服務(wù)器,所述數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng),使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,將所述差異數(shù)據(jù)項(xiàng)集合發(fā)送給所述客戶端; 接收所述服務(wù)器發(fā)送的所述差異數(shù)據(jù)項(xiàng)集合,并根據(jù)所述差異數(shù)據(jù)項(xiàng)集合同步所述客戶端的本地?cái)?shù)據(jù); 其中,所述差異數(shù)據(jù)項(xiàng)集合中包括所述服務(wù)器的數(shù)據(jù)項(xiàng)中相對于所述客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出所述客戶端的一數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將與所述客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集口 ο
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),使得所述服務(wù)器根據(jù)所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng),并根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對,在比對出所述客戶端的一數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同時(shí),將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將與所述客戶端的所有數(shù)據(jù)項(xiàng)均不對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間,使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
10.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí)和每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間,使得所述服務(wù)器根據(jù)每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng),并根據(jù)所述恢復(fù)標(biāo)識(shí)將所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同時(shí),將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
11.根據(jù)權(quán)利要求9或10所述的方法,其特征在于,所述將數(shù)據(jù)同步請求上傳給服務(wù)器之前,還包括: 確定用戶在所述客戶端的所有數(shù)據(jù)項(xiàng)中選擇的數(shù)據(jù)項(xiàng),并根據(jù)所述用戶選擇的數(shù)據(jù)項(xiàng)確定待恢復(fù)數(shù)據(jù)項(xiàng)。
12.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述根據(jù)所述差異數(shù)據(jù)項(xiàng)集合同步所述客戶端的本地?cái)?shù)據(jù),包括: 將所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng); 將所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述將所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng)之前,還包括: 顯示所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng),并確定用戶在顯示的所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)中選擇的修改數(shù)據(jù)項(xiàng); 所述將所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng),包括: 將所述差異數(shù)據(jù)項(xiàng)集合中用戶選擇的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng)。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述將所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中之前,還包括: 顯示所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng),并確定用戶在顯示的所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)中選擇的新增數(shù)據(jù)項(xiàng); 所述將所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中,包括: 將所述差異數(shù)據(jù)項(xiàng)集合中用戶選擇的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中。
15.一種服務(wù)器,其特征在于,所述服務(wù)器包括: 接收模塊,用于接收客戶端上傳的數(shù)據(jù)同步請求,所述數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng); 獲取模塊,用于根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,所述差異數(shù)據(jù)項(xiàng)集合中包括所述服務(wù)器的數(shù)據(jù)項(xiàng)中相對于所述客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng); 發(fā)送模塊,用于將所述獲取模塊獲取到的差異數(shù)據(jù)項(xiàng)集合發(fā)送給所述客戶端,使得所述客戶端根據(jù)所述差異數(shù)據(jù)項(xiàng)集合同步所述客戶端的本地?cái)?shù)據(jù)。
16.根據(jù)權(quán)利要求15所述的服務(wù)器,其特征在于,所述接收模塊接收到的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述獲取模塊,包括: 第一比對單元,用于根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對; 第一確定單元 ,用于在所述第一比對單元比對出所述客戶端的一數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng); 所述第一確定單元,還用于將與所述客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng); 第一合并單元,用于將所述第一確定單元確定的修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
17.根據(jù)權(quán)利要求15所述的服務(wù)器,其特征在于,所述接收模塊接收到的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述獲取模塊,包括: 第二確定單元,用于根據(jù)所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng); 第二比對單元,用于根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對; 所述第二確定單元,還用于在所述第二比對單元比對出所述客戶端的一數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同,則將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng); 所述第二確定單元,還用于將與所述客戶端的所有數(shù)據(jù)項(xiàng)均不對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng); 第二合并單元,用于將所述第二確定單元確定的修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
18.根據(jù)權(quán)利要求15所述的服務(wù)器,其特征在于,所述接收模塊接收到的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間;所述獲取模塊,包括: 第三比對單元,用于根據(jù)所述恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對; 第三確定單元,用于在所述第三比對單元比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng); 所述第三確定單元,還用于將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng); 第三合并單元,用于將所述第三確定單元確定的所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
19.根據(jù)權(quán)利要求15所述的服務(wù)器,其特征在于,所述接收模塊接收到的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí)和每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間;所述獲取模塊,包括: 第四確定單元,用于根據(jù)每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng); 第四比對單元,用于根據(jù)所述恢復(fù)標(biāo)識(shí)將所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對; 所述第四確定單元,還用于在所述第四比對單元比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全·部內(nèi)容不相同時(shí),將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng); 所述第四確定單元,還用于將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng); 第四合并單元,用于將所述第四確定單元確定的修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
20.一種客戶端,其特征在于,所述客戶端包括: 上傳模塊,用于將數(shù)據(jù)同步請求上傳給服務(wù)器,所述數(shù)據(jù)同步請求中攜帶有恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng),使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)和所述客戶端的數(shù)據(jù)項(xiàng)獲取差異數(shù)據(jù)項(xiàng)集合,將所述差異數(shù)據(jù)項(xiàng)集合發(fā)送給所述客戶端; 接收模塊,用于接收所述服務(wù)器發(fā)送的所述差異數(shù)據(jù)項(xiàng)集合; 同步模塊,用于根據(jù)所述接收模塊接收到的差異數(shù)據(jù)項(xiàng)集合同步所述客戶端的本地?cái)?shù)據(jù); 其中,所述差異數(shù)據(jù)項(xiàng)集合中包括所述服務(wù)器的數(shù)據(jù)項(xiàng)中相對于所述客戶端的數(shù)據(jù)項(xiàng)的修改數(shù)據(jù)項(xiàng)和新增數(shù)據(jù)項(xiàng)。
21.根據(jù)權(quán)利要求20所述的客戶端,其特征在于,所述上傳模塊上傳的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出所述客戶端的一數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將與所述客戶端的所有數(shù)據(jù)項(xiàng)的所有內(nèi)容均不相同的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
22.根據(jù)權(quán)利要求20所述的客戶端,其特征在于,所述上傳模塊上傳的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),使得所述服務(wù)器根據(jù)所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng),并根據(jù)所述恢復(fù)標(biāo)識(shí)將所述客戶端的每個(gè)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對,在比對出所述客戶端的一數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同時(shí),將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將與所述客戶端的所有數(shù)據(jù)項(xiàng)均不對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
23.根據(jù)權(quán)利要求20所述的方法,其特征在于,所述上傳模塊上傳的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間,使得所述服務(wù)器根據(jù)所述恢復(fù)標(biāo)識(shí)將每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的所有數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與所述服務(wù)器的一數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容相同且其余項(xiàng)內(nèi)容不相同時(shí),將所述服務(wù)器的一數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
24.根據(jù)權(quán)利要求20所述的客戶端,其特征在于,所述上傳模塊上傳的數(shù)據(jù)同步請求中攜帶的所述客戶端的數(shù)據(jù)項(xiàng)為所述客戶端的所有數(shù)據(jù)項(xiàng)中的至少一個(gè)待恢復(fù)數(shù)據(jù)項(xiàng),所述數(shù)據(jù)同步請求中還攜帶有時(shí)間標(biāo)識(shí)和每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí),所述時(shí)間標(biāo)識(shí)用于標(biāo)識(shí)所述客戶端上一次發(fā)送數(shù)據(jù)同步請求的時(shí)間,使得所述服務(wù)器根據(jù)每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)的標(biāo)識(shí)確定與所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng),并根據(jù)所述恢復(fù)標(biāo)識(shí)將所述每個(gè)待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)進(jìn)行比對,并在比對出一待恢復(fù)數(shù)據(jù)項(xiàng)與對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)的部分項(xiàng)內(nèi)容或全部內(nèi)容不相同時(shí),將對應(yīng)的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為修改數(shù)據(jù)項(xiàng),將在所述時(shí)間標(biāo)識(shí)所標(biāo)識(shí)的時(shí)間之后添加的所述服務(wù)器的數(shù)據(jù)項(xiàng)確定為新增數(shù)據(jù)項(xiàng)之后,將所述修改數(shù)據(jù)項(xiàng)和所述新增數(shù)據(jù)項(xiàng)合并為差異數(shù)據(jù)項(xiàng)集合。
25.根據(jù)權(quán)利要求23或24所述的客戶端,其特征在于,所述客戶端還包括: 確定模塊,用于確定用戶在所述客戶端的所有數(shù)據(jù)項(xiàng)中選擇的數(shù)據(jù)項(xiàng);并根據(jù)所述確定的用戶選擇的數(shù)據(jù)項(xiàng)確定待恢復(fù)數(shù)據(jù)項(xiàng)。
26.根據(jù)權(quán)利要求20所述的客戶端,其特征在于,所述同步模塊,包括: 替換單元,用于將所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng); 添加單元,用于將所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中。
27.根據(jù)權(quán)利要求26所述的客戶端,其特征在于,所述同步模塊,還包括: 顯示單元,用于顯示所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng); 確定單元,用于確定用戶在所述顯示單元顯示的所述差異數(shù)據(jù)項(xiàng)集合中的修改數(shù)據(jù)項(xiàng)中選擇的修改數(shù)據(jù)項(xiàng); 所述替換單元,具體用于將所述確定單元確定的所述差異數(shù)據(jù)項(xiàng)集合中用戶選擇的修改數(shù)據(jù)項(xiàng)替換所述客戶端的本地?cái)?shù)據(jù)中對應(yīng)的數(shù)據(jù)項(xiàng)。
28.根據(jù)權(quán)利要求27所述的客戶端,其特征在于, 所述顯示單元,還用于顯示所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng); 所述確定單元,還用于確定用戶在所述顯示單元顯示的所述差異數(shù)據(jù)項(xiàng)集合中的新增數(shù)據(jù)項(xiàng)中選擇的新增數(shù)據(jù)項(xiàng); 所述添加單元,具體用于將所述確定單元確定的所述差異數(shù)據(jù)項(xiàng)集合在用戶選擇的新增數(shù)據(jù)項(xiàng)添加到所述客戶端的本地?cái)?shù)據(jù)中。
29.一種數(shù)據(jù)同步的系統(tǒng),其特征在于,所述系統(tǒng)包括:服務(wù)器和客戶端; 其中,所述服務(wù)器如上述權(quán)利要求15至19任一權(quán)利要求所述的服務(wù)器; 所述客戶端如上述權(quán)利要 求20至28任一權(quán)利要求所述的客戶端。
【文檔編號(hào)】H04L29/06GK103428264SQ201310263448
【公開日】2013年12月4日 申請日期:2013年6月27日 優(yōu)先權(quán)日:2013年6月27日
【發(fā)明者】閔昕 申請人:華為軟件技術(shù)有限公司