專利名稱::指紋技術(shù)的實現(xiàn)方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)同步技術(shù),尤其涉及一種指紋技術(shù)的實現(xiàn)方法及系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)接收裝置。
背景技術(shù):
:現(xiàn)代社會是信息社會。用戶可以隨時隨地進(jìn)行信息的接收和發(fā)送,可以隨時隨地用一臺手持設(shè)備執(zhí)行設(shè)備中的應(yīng)用程序,而這種數(shù)據(jù)交互和執(zhí)行應(yīng)用程序的結(jié)果需要存儲到手持設(shè)備中,也需要與其他數(shù)據(jù)設(shè)備中這種類型的數(shù)據(jù)保持一致,當(dāng)其中一個設(shè)備上的數(shù)據(jù)變化時,可以操作其他設(shè)備中的數(shù)據(jù)做相應(yīng)的改變,這就是數(shù)據(jù)同步(DS,DataSynchronization)。DS技術(shù)中使用了一種稱為指紋(Fingerprint)的方法,指紋是對一組數(shù)據(jù)通過某種算法處理后得到的一個數(shù)值。數(shù)據(jù)的任何變化都會導(dǎo)致指紋的不同,因此指紋可以有效標(biāo)識數(shù)據(jù)。從一項數(shù)據(jù)元素到一個數(shù)據(jù)庫都可以產(chǎn)生對應(yīng)的指紋。指紋的用途是用于服務(wù)器來判別它從終端收到的數(shù)據(jù)與自身存儲的數(shù)據(jù)是否相同。因為無論哪一邊修改了數(shù)據(jù),指紋都會不一致。如果指紋一致,表明服務(wù)器與終端的數(shù)據(jù)一樣,終端不需要發(fā)送,如果指紋不一樣,表明數(shù)據(jù)有修改,這時要看沖突檢測策略,如果是以服務(wù)器端的數(shù)據(jù)為準(zhǔn),那終端也沒有必要發(fā)送數(shù)據(jù)。這樣,通過比較指紋可以避免發(fā)送一些不必要的數(shù)據(jù),從而節(jié)省了流量。另外,指紋也可以用作斷點(diǎn)續(xù)傳。指紋有多種算法,為了通信雙方使用一致的算法,需要進(jìn)行算法協(xié)商。一方將其所支持的算法集發(fā)送給另一方,另一方從中找到其支持的指紋算法,并告知對方,從而完成指紋算法的協(xié)商。目前使用指紋的同步流程如圖1所示1)、PKG1和2中添力口了對指玟使用方式的協(xié)商;2)、PKG3中發(fā)送的為數(shù)據(jù)的ID和指紋;3)、服務(wù)器收到PKG3后,進(jìn)行指紋比對,通過PKG4指示客戶端需要發(fā)送的數(shù)據(jù)元素的標(biāo)識。4)、客戶端收到PKG4后,根據(jù)服務(wù)器的指示通過PKG5發(fā)送需要的數(shù)據(jù)元素。5)、服務(wù)器收到PKG5后,通過PKG6返回接收狀態(tài)信息,可選地,發(fā)送服務(wù)器端的修改數(shù)據(jù)。發(fā)明人在本發(fā)明的創(chuàng)造過程中,發(fā)現(xiàn)現(xiàn)有的指統(tǒng)技術(shù)有如下缺點(diǎn)使用指紋的目的是為了用較短的指紋代替長的數(shù)據(jù)元素,從而減少傳輸?shù)臄?shù)據(jù)量,但一些算法計算得到的指紋與對應(yīng)的數(shù)據(jù)相比,指紋要比數(shù)據(jù)長,這時計算指紋并發(fā)送就沒有意義了,反而增大了設(shè)備(特別是客戶端設(shè)備)的計算量,而且對于某些數(shù)據(jù)項來說客戶端與服務(wù)器之間多了一次交互,浪費(fèi)了空口資源。目前還沒有技術(shù)來解決這個問題。
發(fā)明內(nèi)容本發(fā)明實施例提供了一種指紋技術(shù)的實現(xiàn)方法及系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)接收裝置,可以避免對一些較短的長度的數(shù)據(jù)項進(jìn)行指紋計算和數(shù)據(jù)同步過程中傳輸無用數(shù)據(jù),提高數(shù)據(jù)同步效率。本發(fā)明實施例提供了一種指纟丈技術(shù)的實現(xiàn)方法,包括根據(jù)預(yù)置的規(guī)則,判斷是否對數(shù)據(jù)項進(jìn)行指紋計算;若判斷需要對數(shù)據(jù)項進(jìn)行指紋計算,則對所述數(shù)據(jù)項進(jìn)行指紋計算,并向數(shù)據(jù)接收方發(fā)送得到的指紋,若判斷不需要對數(shù)據(jù)項進(jìn)行指紋計算,則向數(shù)據(jù)接收方發(fā)送數(shù)據(jù)元素。本發(fā)明實施例還提供了一種指故技術(shù)的實現(xiàn)方法,包括接收來自數(shù)據(jù)發(fā)送方的數(shù)據(jù)項;根據(jù)預(yù)置的規(guī)則判斷所述數(shù)據(jù)項是指紋還是數(shù)據(jù)元素,若是指紋,則將所述指紋與其保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理;若是數(shù)據(jù)元素,則將所述數(shù)據(jù)元素與其保存的數(shù)據(jù)元素進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。本發(fā)明實施例還提供了一種數(shù)據(jù)發(fā)送裝置,包括判斷模塊,用于判斷其發(fā)送的數(shù)據(jù)項的長度值是否超過預(yù)置的最短長度值;指紋計算模塊,在所述判斷模塊判斷數(shù)據(jù)項的長度值超過預(yù)置的最短長度值時,對數(shù)據(jù)項進(jìn)行指紋計算;數(shù)據(jù)發(fā)送模塊,用于將所述指紋計算模塊計算所得的指紋向數(shù)據(jù)接收裝置發(fā)送;或者在所述判斷模塊判斷數(shù)據(jù)項的長度值小于等于預(yù)置的最短長度值時,將數(shù)據(jù)元素向數(shù)據(jù)接收裝置發(fā)送。相應(yīng)地,本發(fā)明實施例還提供了一種數(shù)據(jù)接收裝置,包括數(shù)據(jù)存儲模塊,用于存儲數(shù)據(jù)或者指紋,所述數(shù)據(jù)或指紋用于與其接收的數(shù)據(jù)元素或指紋進(jìn)行比較,判斷其接收的數(shù)據(jù)元素或指紋是否發(fā)生改變;數(shù)據(jù)接收模塊,用于接收來自數(shù)據(jù)發(fā)送裝置發(fā)送的數(shù)據(jù)項;數(shù)據(jù)判斷模塊,用于根據(jù)預(yù)定的規(guī)則判斷所述數(shù)據(jù)接收模塊接收到的數(shù)據(jù)項是指紋還是數(shù)據(jù)元素;數(shù)據(jù)處理模塊,若所述數(shù)據(jù)判斷模塊接收到的是指紋,則將所述指紋與其保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理;若是數(shù)據(jù)元素,則將所述數(shù)據(jù)元素與其保存的數(shù)據(jù)元素進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。本發(fā)明實施例還提供了一種指紋技術(shù)的實現(xiàn)系統(tǒng),包括數(shù)據(jù)發(fā)送裝置,用于根據(jù)預(yù)置的規(guī)則,判斷是否對數(shù)據(jù)項進(jìn)行指紋計算;若判斷需要對數(shù)據(jù)項進(jìn)行指紋計算,則對所述數(shù)據(jù)項進(jìn)行指紋計算,并將得到的指紋向數(shù)據(jù)接收裝置發(fā)送,若判斷不需要對數(shù)據(jù)項進(jìn)行指紋計算,則將數(shù)據(jù)元素向lt據(jù)接收裝置發(fā)送;數(shù)據(jù)接收裝置,用于接收來自數(shù)據(jù)發(fā)送裝置的數(shù)據(jù)項;根據(jù)預(yù)置的規(guī)則判斷其是指紋還是數(shù)據(jù)元素,若是指紋,則將所述指紋與其保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理;若是數(shù)據(jù)元素,則將所述數(shù)據(jù)元素與其保存的數(shù)據(jù)元素進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。實施本發(fā)明實施例,具有如下有益效果通過預(yù)先設(shè)定需要計算指紋的數(shù)據(jù)的最短長度值,可以判斷數(shù)據(jù)項是否需要生成指紋,從而決定發(fā)送指紋或者發(fā)送數(shù)據(jù)項本身,從而避免對一些較短的長度的數(shù)據(jù)項進(jìn)行指紋計算和數(shù)據(jù)同步過程中傳輸無用數(shù)據(jù),提高了數(shù)據(jù)同步的效率。圖l是現(xiàn)有的指紋實現(xiàn)技術(shù)的流程示意圖2是本發(fā)明實施例提供的指纟丈技術(shù)實現(xiàn)方法的流程示意圖3是本發(fā)明實施例提供的指鄉(xiāng)丈技術(shù)實現(xiàn)系統(tǒng)的組成示意圖;圖4是本發(fā)明實施例提供數(shù)據(jù)發(fā)送裝置的組成圖;圖5是本發(fā)明實施例提供數(shù)據(jù)接收裝置的組成圖;圖6是圖5所示的數(shù)據(jù)接收裝置中的數(shù)據(jù)處理模塊的組成示意圖。具體實施例方式本發(fā)明實施提供了一種指紋技術(shù)的實現(xiàn)方法及系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)接收裝置,可以避免對一些較短的長度的數(shù)據(jù)項進(jìn)行指紋計算和數(shù)據(jù)同步過程中傳輸無用數(shù)據(jù),提高了數(shù)據(jù)同步效率。參見圖2,是本發(fā)明實施例提供的指紋實現(xiàn)技術(shù)的第一實施例的流程示意以通信雙方為客戶端和服務(wù)器為例說明本發(fā)明實施例,即,客戶端作為數(shù)據(jù)發(fā)送方,服務(wù)器作為數(shù)據(jù)接收方。首先,在客戶端上預(yù)置的一個最短長度值,用一個標(biāo)識FPLimit表示,F(xiàn)PLimit是一個整數(shù)型數(shù)據(jù),表示當(dāng)數(shù)據(jù)項的長度大于等于FPLimit指定的長度時,才會計算該數(shù)據(jù)項的指紋;當(dāng)FPLimit不出現(xiàn)時,那么將對所有數(shù)據(jù)項計算指紋。該值保存在與設(shè)備相關(guān)的DeviceInfo中,Schema可以類似于<xs:elementname="FPLimit"type="xs:int"minOccurs="0"/>該標(biāo)識也可以j呆存在DSMO中,這時為DSMO中新增的樹結(jié)構(gòu)如下<formula>formulaseeoriginaldocumentpage10</formula>在FPLimit中記錄需要計算指紋的數(shù)據(jù)項的最小長度。<x>/FP<table>tableseeoriginaldocumentpage10</column></row><table>這是一個中間節(jié)點(diǎn),記錄DS客戶端與指紋相關(guān)的信息<<x>/FP/FPLimit<table>tableseeoriginaldocumentpage10</column></row><table>該節(jié)點(diǎn)定義DS同步過程中需要計算指紋的數(shù)據(jù)項的最小長度。在步驟100,客戶端向服務(wù)器發(fā)送PKGl,所述PKG1是一個初始化包,攜帶的信息是同步協(xié)商參數(shù),包括同步方向,同步行為,ID有效性,ChangeLog有效性等等;這是本
技術(shù)領(lǐng)域:
的人員所熟知的,在此不再贅述;本發(fā)明實施例中,客戶端向服務(wù)器發(fā)送PKG1中還包括FPLimit:在步驟101,服務(wù)器接收到PKG1后保存FPLimit;并且服務(wù)器根據(jù)預(yù)定義的規(guī)則進(jìn)行判斷后,返回同意或者修改的同步參數(shù),包括同步方向,同步行為,ID有效性,ChangeLog有效性等,并指示客戶端發(fā)送數(shù)據(jù)項;在步驟102,客戶端根據(jù)服務(wù)器的指示,以及其預(yù)置的數(shù)據(jù)的最短長度值,客戶端判斷其發(fā)送的數(shù)據(jù)項的長度值是否超過預(yù)置的最短長度值,若是,則對數(shù)據(jù)項進(jìn)行指紋計算,將得到預(yù)置指紋長度的指纟丈發(fā)送至服務(wù)器,若否,將數(shù)據(jù)元素,即數(shù)據(jù)項本身發(fā)送至服務(wù)器;若數(shù)據(jù)項本身長度等于預(yù)置的指紋長度,則將其作添零計算,使其長度值等于預(yù)置的最短長度值后,發(fā)送至服務(wù)器。服務(wù)器接收到來自客戶端的數(shù)據(jù)項后,如果收到的數(shù)據(jù)項的長度小于預(yù)置指紋長度或者大于預(yù)置指紋長度而小于預(yù)置最短長度值,那么可以直接判定其為數(shù)據(jù)項本身,即數(shù)據(jù)元素,直接與服務(wù)器上保存的數(shù)據(jù)本身比較即可;若數(shù)據(jù)長度為預(yù)置指紋長度,那么將與指紋比較;若長度為預(yù)置的最短長度值,那么截斷到預(yù)置的指紋長度值后直接與服務(wù)器上保存的數(shù)據(jù)比較即可。對于判定為數(shù)據(jù)元素的數(shù)據(jù)項,與服務(wù)器上保存的數(shù)據(jù)項本身比較,如果數(shù)據(jù)項一致,表明服務(wù)器與客戶端的數(shù)據(jù)一樣,客戶端不需要發(fā)送,如果數(shù)據(jù)項不一樣,表明數(shù)據(jù)有修改,這時要看沖突檢測策略,如果是以服務(wù)器端的數(shù)據(jù)為準(zhǔn),那服務(wù)器也沒有必要更新數(shù)據(jù)。如果是以客戶端的數(shù)據(jù)為準(zhǔn),那服務(wù)器根據(jù)客戶端發(fā)送數(shù)據(jù)項更新其保存的數(shù)據(jù)。對于判定為指紋的數(shù)據(jù)項,那么服務(wù)器將與指紋進(jìn)行比較,然后進(jìn)行后續(xù)處理。如果指紋一致,表明服務(wù)器與客戶端端的數(shù)據(jù)一樣,終端不需要發(fā)送,如果指紋不一樣,表明數(shù)據(jù)有修改,這時要看沖突檢測策略,如果是以服務(wù)器端的數(shù)據(jù)為準(zhǔn),那客戶端也沒有必要發(fā)送數(shù)據(jù)。如果是以客戶端的數(shù)據(jù)為準(zhǔn),那么在步驟103,服務(wù)器指示客戶端發(fā)送數(shù)據(jù)項。這樣,通過比較指紋可以避免發(fā)送一些不必要的數(shù)據(jù),從而節(jié)省了流量??蛇x地,還可以為客戶端向服務(wù)器發(fā)送的數(shù)據(jù)項添加一個標(biāo)識FPFlag,它是一個整數(shù)型數(shù)據(jù),如果為O,表示下面發(fā)送的為數(shù)據(jù)項本身;如果不為0,則表示下面發(fā)送的為數(shù)據(jù)項的指紋,不同的值用來標(biāo)識不同的指紋算法。需要說明的是,客戶端和服務(wù)器雙方支持的指紋算法集可以事先通過協(xié)商確定。這時DSMO中新增的結(jié)構(gòu)如下所示<x>FP<x>+Algorithm<x>/FP/<x>狀態(tài)出現(xiàn)次數(shù)圍麗ll論接入方式需要1或多個節(jié)點(diǎn)獲取義:這是一個中間節(jié)點(diǎn),記錄DS客戶端所支持的一個或多個指紋算法'<x>/FP/<x>/Algorithm狀態(tài)出現(xiàn)次數(shù)格式4妄入方式需要1整型獲取這是一個葉子節(jié)點(diǎn),記錄DS客戶端所支持的一■'一'l旨紋算法。下面是該數(shù)字的意值描述1更改標(biāo)志位(ChangedLog)2更改凄t量(ChangedCount)3哈希算法(Hash)4對數(shù)據(jù)項進(jìn)行部分指紋計算(Sub-Itemspecific)當(dāng)然,也可將上述信息保存在DeviceInfo中,下面是指紋產(chǎn)生算法的Schema:<xs:elementname="FPAlgorithm"type="xs:integer"/>其值用于表明指紋算法,其值的含義可以與上表相同。需要說明的是,進(jìn)行數(shù)據(jù)同步時客戶端和服務(wù)器將從所支持的指紋算法集中選出雙方均支持的指紋算法子集;當(dāng)數(shù)據(jù)項需要計算指紋時,就從該子集中選取一種指紋算法進(jìn)行計算,并通過FPFlag進(jìn)行標(biāo)識,將得到的指紋發(fā)送至服12務(wù)器;服務(wù)器接收到來自客戶端的數(shù)據(jù)項后,根據(jù)數(shù)據(jù)項的標(biāo)識FPFlag判斷其是指紋還是數(shù)據(jù)項本身,若服務(wù)器接收到的是數(shù)據(jù)項,則將其接收到的數(shù)據(jù)項本身,與其保存的數(shù)據(jù)項進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。如果數(shù)據(jù)項一致,表明服務(wù)器與客戶端的數(shù)據(jù)一樣,服務(wù)器不需要更新數(shù)據(jù),如果數(shù)據(jù)項不一樣,表明數(shù)據(jù)有修改,這時要看沖突檢測策略,如果是以服務(wù)器端的數(shù)據(jù)為準(zhǔn),那服務(wù)器也沒有必要更新數(shù)據(jù)。如果是以客戶端的數(shù)據(jù)為準(zhǔn),那服務(wù)器根據(jù)客戶端發(fā)送數(shù)據(jù)項更新其保存的數(shù)據(jù);若是服務(wù)器接收到的是指紋,服務(wù)器將其接收到的指紋與其保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理;如果指紋一致,表明服務(wù)器與客戶端端的數(shù)據(jù)一樣,終端不需要發(fā)送,如果指紋不一樣,表明數(shù)據(jù)有修改,這時要看沖突檢測策略,如果是以服務(wù)器端的數(shù)據(jù)為準(zhǔn),那客戶端也沒有必要發(fā)送數(shù)據(jù)。如果是以客戶端的數(shù)據(jù)為準(zhǔn),那么在步驟103,服務(wù)器指示客戶端需要發(fā)送的數(shù)據(jù)元素的標(biāo)識;在步驟104,客戶端發(fā)送服務(wù)器所指示的數(shù)據(jù)元素;在步驟105,服務(wù)器向客戶端返回接收狀態(tài)信息,可選地,返回其修改的數(shù)據(jù);在步驟106,客戶端向服務(wù)器返回其接收數(shù)據(jù)的狀態(tài),發(fā)送映射命令給服務(wù)器;在步驟107,服務(wù)器向客戶端返回對映射命令的狀態(tài)信息;在步驟108,客戶端向用戶返回數(shù)據(jù)同步的結(jié)果。實施本發(fā)明實施例提供的指統(tǒng)技術(shù)的實現(xiàn)方法,通過預(yù)先設(shè)定需要計算指紋的數(shù)據(jù)的最短長度值,可以判斷數(shù)據(jù)項是否需要生成指紋,從而決定發(fā)送指紋或者發(fā)送數(shù)據(jù);并且為每一個數(shù)據(jù)項設(shè)定標(biāo)識,從而告知接收方發(fā)送的是指紋還是數(shù)據(jù)項本身,并可以告知接收方所使用的指紋算法,從而避免對一些較短的長度的數(shù)據(jù)項進(jìn)行指紋計算和數(shù)據(jù)同步過程中傳輸無用數(shù)據(jù),^提高了翁:據(jù)同步的效率。同樣參見圖2,說明本發(fā)明實施例提供的指紋實現(xiàn)技術(shù)的第二實施例;現(xiàn)假定客戶端有表l所示的數(shù)據(jù)需要發(fā)送,所用指紋算法得到的指紋長度為8字節(jié),設(shè)定FPLimit-20字節(jié)。表l中的第三列為指紋,注意只有那些長度大于等于FPLimit=20字節(jié)的數(shù)據(jù)項計算了指紋。要注意的是如果數(shù)據(jù)項本身就為8字節(jié),那么數(shù)據(jù)尾部加0—直到20字節(jié)。當(dāng)服務(wù)器發(fā)現(xiàn)一個20字節(jié)的數(shù)據(jù)時,直接截斷到8字節(jié),作為數(shù)據(jù)元素來處理。表1<table>tableseeoriginaldocumentpage14</column></row><table>在步驟IOO,客戶端向服務(wù)器發(fā)送PKGl,所述PKG1是一個初始化包,攜帶的信息是同步協(xié)商參數(shù),包括同步方向,同步行為,ID有效性,ChangeLog有效性等等;這是本
技術(shù)領(lǐng)域:
的人員所熟知的,在此不再贅述;本發(fā)明實施例中,客戶端向服務(wù)器發(fā)送PKG1中還包括FPLimit:Pkg#l:<FPLimit>20</FPLimit>在步驟101,服務(wù)器接收到PKG1后保存FPLimit;并且服務(wù)器根據(jù)預(yù)定義的規(guī)則進(jìn)行判斷后,返回同意或者修改的同步參數(shù);在步驟102,客戶端發(fā)送PKG3,根據(jù)表1,如果有指紋則發(fā)送ID和指紋,如果沒有指紋則發(fā)送ID和數(shù)據(jù)項本身服務(wù)器收到PKG3后,如果收到的dataitem中Data的數(shù)據(jù)長度小于指紋長14LUIDDataFingerPrint1012Tom—1013BEGIN:VCARDVERSION:2.1EMAIL:aaa@bbb.comTEL;HOME:(123)456-789END:VCARDOxBDEFEOFFAAFFBBAA1014Bike—1015AFilewithlength10000bytes0xAAEF3111577566DD1017abcd.comabcd.comOOOO度8字節(jié)或者大于8字節(jié)而小于20字節(jié),那么可以直接判定其為數(shù)據(jù)項本身,直接與服務(wù)器上保存的數(shù)據(jù)項本身比較即可;若數(shù)據(jù)長度為8字節(jié),那么將與指紋比較;若長度為20字節(jié),那么截斷到8個字節(jié)后直接與服務(wù)器上保存的數(shù)據(jù)項本身比較即可。對于lt據(jù)項1012和1014可以判定為數(shù)據(jù)項本身,與服務(wù)器上保存的數(shù)據(jù)項本身比較,若不等而且沖突策略為客戶端優(yōu)先,那么可以直接進(jìn)行后續(xù)處理,不再需要服務(wù)器通過PKG4告知客戶端發(fā)送這兩項數(shù)據(jù)。對于數(shù)據(jù)項1017,其長度為20字節(jié),因而截斷為8字節(jié)后,與數(shù)據(jù)項本身比較,然后進(jìn)行后續(xù)處理。如果數(shù)據(jù)項一致,表明服務(wù)器與客戶端的數(shù)據(jù)一樣,服務(wù)器不需要更新數(shù)據(jù),如果數(shù)據(jù)項不一樣,表明數(shù)據(jù)有修改,這時要看沖突檢測策略,如果是以服務(wù)器端的數(shù)據(jù)為準(zhǔn),那服務(wù)器也沒有必要更新數(shù)據(jù)。如果是以客戶端的數(shù)據(jù)為準(zhǔn),那服務(wù)器根據(jù)客戶端發(fā)送數(shù)據(jù)項更新其保存的數(shù)據(jù)。對于數(shù)據(jù)項1013、1015,由于dataitem中Data的數(shù)據(jù)長度為8字節(jié),那么服務(wù)器將與指紋進(jìn)行比較,然后進(jìn)行后續(xù)處理。如果指紋一致,表明服務(wù)器與客戶端端的數(shù)據(jù)一樣,終端不需要發(fā)送,如果指紋不一樣,表明數(shù)據(jù)有修改,這時要看沖突檢測策略,如果是以服務(wù)器端的數(shù)據(jù)為準(zhǔn),那客戶端也沒有必要發(fā)送數(shù)據(jù)。如果是以客戶端的數(shù)據(jù)為準(zhǔn),那么在步驟103,服務(wù)器指示客戶端發(fā)送數(shù)據(jù)項。這樣,通過比較指紋可以避免發(fā)送一些不必要的數(shù)據(jù),從而節(jié)省了流量。此后的步驟與第一實施例相同,也是本發(fā)明
技術(shù)領(lǐng)域:
的人員所熟知的,在此不再贅述。同樣參見圖2,說明本發(fā)明實施例提供的指紋實現(xiàn)技術(shù)的第三實施例;現(xiàn)假定客戶端有表2所示的數(shù)據(jù)需要發(fā)送,表2中的第三列為標(biāo)識FPFlag,該列的值是設(shè)備自行設(shè)定的,"0"代表發(fā)送數(shù)據(jù)項本身,其它值代表發(fā)送的為指紋,并代表著不同的指紋算法,表3給出了一個客戶端和服務(wù)器經(jīng)過協(xié)商確定的雙方均支持的指紋算法的集合。__表2_LUIDData_|FPFlag_151012Tom01013BEGIN:VCARD1VERSION:2.1EMAIL:aaa@bbb.comTEL;HOME:(123)456-789END:VCARD1014Bike01015AFilewithlength310000bytes1017abcd.com0表3值描述1更改標(biāo)志位(ChangedLog)2更改凄t量(ChangedCount)3哈希算法(Hash)4對數(shù)據(jù)項進(jìn)行部分指紋計算(Sub-Itemspecific)在步驟IOO,客戶端向服務(wù)器發(fā)送PKGl,所述PKG1是一個初始化包,攜帶的信息是同步協(xié)商參數(shù),包括同步方向,同步行為,ID有效性,ChangeLog有效性等等;這是本
技術(shù)領(lǐng)域:
的人員所熟知的,在此不再贅述;Pkg弁l:<FPLimit>20</FPLimit>在步驟101,服務(wù)器根據(jù)預(yù)定義的規(guī)則進(jìn)行判斷后,返回同意或者修改的同步參數(shù)5在步驟102,客戶端發(fā)送PKG3,包含數(shù)據(jù)項,根據(jù)表2,如果FPFlag邦則計算該數(shù)據(jù)項的指紋,并發(fā)送ID和指紋,如果FPFlag16-O則發(fā)送ID和數(shù)據(jù)項本身需要說明的是,這里FPFlag的取值,是根據(jù)數(shù)據(jù)項的長度值是否超過預(yù)置的最短長度值而定的。月良務(wù)器收到PKG3后,根據(jù)FPFlag的取值可以判斷1012、1014和1017收到的為數(shù)據(jù)項本身,與服務(wù)器上保存的數(shù)據(jù)項本身比較,若不等而且沖突策略為客戶端優(yōu)先,那么可以直接進(jìn)行后續(xù)處理,不再需要服務(wù)器通過PKG4告知客戶端發(fā)送數(shù)據(jù)。1013、1015收到的為指紋,其中1013為根據(jù)ChangeLog算法得到的指紋,而1015為根據(jù)Hash算法計算得到的指紋,因而需要與服務(wù)器上保存的指紋進(jìn)行比較,并進(jìn)行后續(xù)處理。如果指紋一致,表明服務(wù)器與客戶端端的數(shù)據(jù)一樣,終端不需要發(fā)送,如果指紋不一樣,表明數(shù)據(jù)有修改,這時要看沖突檢測策略,如果是以服務(wù)器端的數(shù)據(jù)為準(zhǔn),那客戶端也沒有必要發(fā)送數(shù)據(jù)。如果是以客戶端的數(shù)據(jù)為準(zhǔn),那么在步驟103,服務(wù)器指示客戶端發(fā)送數(shù)據(jù)項。這樣,通過比較指紋可以避免發(fā)送一些不必要的數(shù)據(jù),從而節(jié)省了流量。此后的步驟與第一實施例相同,也是本發(fā)明
技術(shù)領(lǐng)域:
的人員所熟知的,在此不再贅述。參見圖3,是本發(fā)明實施例提供的指紋技術(shù)的實現(xiàn)系統(tǒng)的組成示意圖所述系統(tǒng)包括數(shù)據(jù)發(fā)送裝置l,用于根據(jù)預(yù)置的規(guī)則,判斷是否對數(shù)據(jù)項進(jìn)行指紋計算;若判斷需要對數(shù)據(jù)項進(jìn)行指紋計算,則對所述數(shù)據(jù)項進(jìn)行指紋計算,并將得到的指纟丈發(fā)往數(shù)據(jù)接收裝置2,若判斷不需要對數(shù)據(jù)項進(jìn)行指紋計算,則將數(shù)據(jù)元素發(fā)往數(shù)據(jù)接收裝置2;具體地,數(shù)據(jù)發(fā)送裝置l包括判斷模塊IO、指紋計算模塊ll、數(shù)據(jù)發(fā)送模塊12,其組成和功能在后面結(jié)合圖4詳細(xì)描述。數(shù)據(jù)接收裝置2,用于接收來自數(shù)據(jù)發(fā)送裝置1的數(shù)據(jù)項;根據(jù)預(yù)置的規(guī)則判斷其是指紋還是數(shù)據(jù)元素,若是指紋,則將所述指紋與其保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理;若是數(shù)據(jù)元素,則將所述數(shù)據(jù)元素與其保存的數(shù)據(jù)元素進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。具體地,所述數(shù)據(jù)接收裝置2包括數(shù)據(jù)存儲模塊20、數(shù)據(jù)接收模塊21、數(shù)據(jù)判斷模塊22、數(shù)據(jù)處理模塊23,其組成和功能在后面結(jié)合圖5詳細(xì)描述。參見圖4,是本發(fā)明實施例提供數(shù)據(jù)發(fā)送裝置的組成圖;在本發(fā)明實施例中,以客戶端作為數(shù)據(jù)發(fā)送裝置進(jìn)行說明。所述客戶端包括判斷模塊10,用于判斷其發(fā)送的數(shù)據(jù)項的長度值是否超過預(yù)置的最短長度值;需要說明的是,在客戶端上預(yù)置的最短長度值用一個標(biāo)識FPLimit表示,F(xiàn)PLimit是一個整數(shù)型數(shù)據(jù),表示當(dāng)數(shù)據(jù)項的長度大于等于FPLimit指定的長度時,才會計算該數(shù)據(jù)項的指紋;指紋計算模塊11,在所述判斷模塊判斷數(shù)據(jù)項的長度值超過預(yù)置的最短長度值時,對數(shù)據(jù)項進(jìn)行指紋計算;客戶端和服務(wù)器雙方支持的指紋算法集可以事先通過協(xié)商確定,進(jìn)行數(shù)據(jù)同步時客戶端和服務(wù)器將從所支持的指紋算法集中選出雙方均支持的指紋算法子集;當(dāng)數(shù)據(jù)項需要計算指紋時,就從該子集中選取一種指紋算法進(jìn)行計算,并將得到的指紋發(fā)送至服務(wù)器;數(shù)據(jù)發(fā)送模塊12,用于將所述指紋計算模塊11計算所得的指紋發(fā)往數(shù)據(jù)接收裝置;或者在所述判斷模塊IO判斷數(shù)據(jù)項的長度值小于等于預(yù)置的最短長度值時,將數(shù)據(jù)項本身,即數(shù)據(jù)元素發(fā)送至數(shù)據(jù)接收裝置。若數(shù)據(jù)項本身長度等于預(yù)置的指紋長度,則將其作添零計算,使其長度值等于預(yù)置的最短長度值FPLimit后,發(fā)送至數(shù)據(jù)接收裝置。這里的數(shù)據(jù)接收裝置為服務(wù)器??蛇x地,所述數(shù)據(jù)發(fā)送裝置,即客戶端1還包括標(biāo)識模塊13,用于在所述數(shù)據(jù)發(fā)送模塊12發(fā)送至數(shù)據(jù)接收裝置的數(shù)據(jù)項中攜帶標(biāo)識FPFlag,所述標(biāo)識FPFlag用于表示所數(shù)數(shù)據(jù)項是經(jīng)過指紋計算后得到的指紋還是數(shù)據(jù)項本身。所述指紋計算模塊11包括算法協(xié)商單元110,用于和數(shù)據(jù)接收裝置協(xié)商雙方所支持的指紋算法集;客戶端和服務(wù)器經(jīng)過協(xié)商確定的雙方均支持的指紋算法的集合如表3所示。算法選擇單元lll,用于在數(shù)據(jù)項需要進(jìn)行指紋計算時,從所述雙方支持的指紋算法集選取出一種指紋算法對數(shù)據(jù)項進(jìn)行計算;指紋計算單元112,用于根據(jù)算法選擇單元111所選擇的算法對所述需要指紋計算的數(shù)據(jù)項進(jìn)行指紋計算,并通過所述標(biāo)識表示對數(shù)據(jù)項進(jìn)行指紋計算所使用的算法類型。參見圖5,為本發(fā)明實施例提供的數(shù)據(jù)接收裝置的組成示意在本發(fā)明實施例中,以服務(wù)器作為數(shù)據(jù)接收裝置進(jìn)行說明。所述服務(wù)器包括數(shù)據(jù)存儲模塊20,用于存儲數(shù)據(jù)或者指紋,所述數(shù)據(jù)或指紋用于與其接收的數(shù)據(jù)元素或指紋進(jìn)行比較,判斷其接收的數(shù)據(jù)元素或指紋是否發(fā)生改變;數(shù)據(jù)接收模塊21,用于接收來自數(shù)據(jù)發(fā)送裝置,即客戶端發(fā)送的數(shù)據(jù)項;數(shù)據(jù)判斷模塊22,用于根據(jù)預(yù)定的規(guī)則判斷所述數(shù)據(jù)接收模塊21接收到的數(shù)據(jù)項是指紋還是數(shù)據(jù)項本身;如果收到的數(shù)據(jù)項的長度小于預(yù)置指紋長度或者大于預(yù)置指紋長度而小于預(yù)置最短長度值,那么可以直接判定其為數(shù)據(jù)項本身,即數(shù)據(jù)元素;若數(shù)據(jù)長度為預(yù)置指紋長度,那么判定所述數(shù)據(jù)項為指紋;若所數(shù)數(shù)據(jù)項的長度為預(yù)置的最短長度值,將其判定為數(shù)據(jù)元素,即數(shù)據(jù)項本身,那么截斷到預(yù)置的指紋長度值后直接與數(shù)據(jù)存儲模塊20上保存的數(shù)據(jù)比較即可。需要說明的是,客戶端和服務(wù)器雙方支持的指紋算法集可以事先通過協(xié)商確定,進(jìn)行數(shù)據(jù)同步時客戶端和服務(wù)器將從所支持的指紋算法集中選出雙方均支持的指紋算法子集;當(dāng)數(shù)據(jù)項需要計算指紋時,就從該子集中選取一種指紋算法進(jìn)行計算,可選地,還可以通過FPFlag進(jìn)行標(biāo)識,將得到的指纟丈發(fā)送至服務(wù)器;所述標(biāo)識FPFlag,它是一個整數(shù)型數(shù)據(jù),如果為0,表示下面發(fā)送的為數(shù)據(jù)項本身;如果不為O,則表示下面發(fā)送的為數(shù)據(jù)項的指紋,不同的值用來標(biāo)識不同的指紋算法。數(shù)據(jù)處理模塊23,若所述數(shù)據(jù)判斷模塊22接收到的是指紋,則將所述指紋與其保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理;若是數(shù)據(jù)元素,則將所述數(shù)據(jù)元素與數(shù)據(jù)存儲模塊20保存的數(shù)據(jù)進(jìn)行比較,若所數(shù)數(shù)據(jù)項的長度為預(yù)置的最短長度值,那么截斷到預(yù)置的指紋長度值后直接與數(shù)據(jù)存儲模塊20上保存的數(shù)據(jù)進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。參見圖6,為圖5中所示的數(shù)據(jù)接收裝置2的數(shù)據(jù)處理模塊23的組成示意圖,數(shù)據(jù)處理模塊23具體包括指紋處理單元230,若所述數(shù)據(jù)判斷模塊22接收到的是指紋時,用于將所述指紋與數(shù)據(jù)存儲模塊20保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理;數(shù)據(jù)處理單元231,若所述數(shù)據(jù)判斷模塊22接收到的是數(shù)據(jù)元素,即數(shù)據(jù)項本身時,用于將所述數(shù)據(jù)項本身與數(shù)據(jù)存儲模塊20保存的數(shù)據(jù)進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。所述指紋處理單元230包括指紋比較子單元2300,在所述數(shù)據(jù)判斷模塊22接收到的是指紋時,用于將所述指紋與其保存的指紋進(jìn)行比較;若一致,則不需要更新數(shù)據(jù)存儲模塊20保存的數(shù)據(jù);若不一致,則表明數(shù)據(jù)發(fā)送裝置的數(shù)據(jù)項有修改;則所述指紋處理單元230進(jìn)一步包括判斷子單元2301,用于查看沖突檢測策略,判斷是否需要數(shù)據(jù)發(fā)送裝置發(fā)送數(shù)據(jù)項;若沖突檢測策略是以數(shù)據(jù)接收裝置的數(shù)據(jù)為準(zhǔn),則不需要數(shù)據(jù)發(fā)送裝置發(fā)送數(shù)據(jù)項;若沖突檢測策略是以數(shù)據(jù)發(fā)送裝置的數(shù)據(jù)為準(zhǔn),則所述指紋處理單元230進(jìn)一步包括指示子單元2302,用于指示數(shù)據(jù)發(fā)送裝置發(fā)送數(shù)據(jù)元素;數(shù)據(jù)更新子單元2303,用于將其保存的數(shù)據(jù)更新為接收的數(shù)據(jù)元素。所述數(shù)據(jù)處理單元231包括數(shù)據(jù)比較子單元2310,在所述數(shù)據(jù)判斷模塊22判斷出接收到的是數(shù)據(jù)元素時,用于將所述數(shù)據(jù)元素與數(shù)據(jù)存儲模塊20保存的數(shù)據(jù)進(jìn)行比較;若一致,則不需要更新數(shù)據(jù)存儲模塊20保存的數(shù)據(jù);若不一致,則表明數(shù)據(jù)發(fā)送裝置的數(shù)據(jù)項有修改;則所述數(shù)據(jù)處理單元231進(jìn)一步包括判斷子單元2311,用于查看沖突抬r測策略,判斷是否需要數(shù)據(jù)發(fā)送裝置發(fā)送數(shù)據(jù)項;若沖突^r測策略是以數(shù)據(jù)接收裝置的數(shù)據(jù)為準(zhǔn),則不需要更新數(shù)據(jù)存儲模塊20保存的數(shù)據(jù);若沖突檢測策略是以數(shù)據(jù)發(fā)送裝置的數(shù)據(jù)為準(zhǔn),則所述指紋處理單元231進(jìn)一步包括數(shù)據(jù)更新子單元2312,用于將數(shù)據(jù)存儲模塊20保存的數(shù)據(jù)項更新為接收的數(shù)據(jù)元素。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的硬件平臺的方式來實現(xiàn),當(dāng)然也可以全部通過石更件來實施。基于這樣的理解,本發(fā)明的技術(shù)方案對
背景技術(shù):
做出貢獻(xiàn)的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。實施本發(fā)明實施例提供的指紋技術(shù)的實現(xiàn)方法及系統(tǒng)、數(shù)據(jù)發(fā)送裝置和數(shù)據(jù)接收裝置,通過預(yù)先設(shè)定需要計算指紋的數(shù)據(jù)的最短長度值,可以判斷數(shù)據(jù)項是否需要生成指紋,從而決定發(fā)送指紋或者發(fā)送數(shù)據(jù);并且為每一個數(shù)據(jù)項設(shè)定指紋標(biāo)志項,從而告知接收方發(fā)送的是指紋還是數(shù)據(jù)項本身,并可以告知接收方所使用的指紋算法,從而避免對一些較短的長度的數(shù)據(jù)項進(jìn)行指紋計算和數(shù)據(jù)同步過程中傳輸無用數(shù)據(jù),提高了數(shù)據(jù)同步的效率。以上所揭露的僅為本發(fā)明一種實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。權(quán)利要求1、一種指紋技術(shù)的實現(xiàn)方法,其特征在于,包括根據(jù)預(yù)置的規(guī)則,判斷是否對數(shù)據(jù)項進(jìn)行指紋計算;若判斷需要對數(shù)據(jù)項進(jìn)行指紋計算,則對所述數(shù)據(jù)項進(jìn)行指紋計算,并向數(shù)據(jù)接收方發(fā)送得到的指紋,若判斷不需要對數(shù)據(jù)項進(jìn)行指紋計算,則向數(shù)據(jù)接收方發(fā)送數(shù)據(jù)元素。2、如權(quán)利要求1所述的指纟丈技術(shù)的實現(xiàn)方法,其特征在于,所述根據(jù)預(yù)置的規(guī)則判斷是否對數(shù)據(jù)項進(jìn)行指紋計算,包括判斷數(shù)據(jù)項的長度值是否超過預(yù)置的最短長度值,若是,則對數(shù)據(jù)項進(jìn)行指紋計算,若否,則不需要對數(shù)據(jù)項進(jìn)行指紋計算。3、如權(quán)利要求2所述的指紋技術(shù)的實現(xiàn)方法,其特征在于,對超過預(yù)置的最短長度值的數(shù)據(jù)項進(jìn)行指紋計算后得到預(yù)置的指紋長度值的指紋;對等于預(yù)置的指紋長度值的數(shù)據(jù)項,則對其進(jìn)行添零處理,將其長度增加至最短長度值。4、如權(quán)利要求1至3中任一項所述的指紋技術(shù)的實現(xiàn)方法,其特征在于,數(shù)據(jù)發(fā)送方在所述數(shù)據(jù)項中攜帶一標(biāo)識,用于指示數(shù)據(jù)接收方所述數(shù)據(jù)項是數(shù)據(jù)元素還是指紋。5、如權(quán)利要求4所述的指纟丈技術(shù)的實現(xiàn)方法,其特征在于,所述方法還包括..數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方協(xié)商雙方所支持的指紋算法集;當(dāng)數(shù)據(jù)項需要進(jìn)行指紋計算時,數(shù)據(jù)發(fā)送方從所述雙方支持的指紋算法集選取出一種指紋算法對數(shù)據(jù)項進(jìn)行計算,對數(shù)據(jù)項進(jìn)行指紋計算所使用的算法類型通過所述標(biāo)識進(jìn)行表示。6、一種指紋技術(shù)的實現(xiàn)方法,其特征在于,包括接收來自數(shù)據(jù)發(fā)送方的數(shù)據(jù)項;根據(jù)預(yù)置的規(guī)則判斷所述數(shù)據(jù)項是指紋還是數(shù)據(jù)元素,若是指紋,則將所述指紋與其保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理;若是數(shù)據(jù)元素,則將所述數(shù)據(jù)元素與其保存的數(shù)據(jù)元素進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。7、如權(quán)利要求6所述的指紋技術(shù)的實現(xiàn)方法,其特征在于,所述根據(jù)預(yù)置的規(guī)則判斷其是指紋還是數(shù)據(jù)元素包括,判斷數(shù)據(jù)項的長度值是否等于預(yù)置的經(jīng)過指紋計算后的指紋長度值,若是,則判定所述數(shù)據(jù)項是經(jīng)過指紋計算后的指紋,若否,則判定所述數(shù)據(jù)項是數(shù)據(jù)元素。8、如權(quán)利要求6所述的指紋技術(shù)的實現(xiàn)方法,其特征在于,所述根據(jù)預(yù)置的規(guī)則判斷其是指紋還是數(shù)據(jù)元素包括,判斷數(shù)據(jù)項中攜帶的標(biāo)識所指示的數(shù)據(jù)項是經(jīng)過指紋計算的指紋還是數(shù)據(jù)元素,所述標(biāo)識還用于表示對數(shù)據(jù)項進(jìn)行指紋計算所使用的算法類型。9、如權(quán)利要求6至8中任一項所述的指纟丈技術(shù)的實現(xiàn)方法,其特征在于,將所述指紋與其保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理包括將所述指紋與其保存的指紋進(jìn)行比較,若一致,則不需要更新數(shù)據(jù)接收方保存的數(shù)據(jù);若不一致,則表明數(shù)據(jù)發(fā)送方的數(shù)據(jù)項有修改,查看沖突檢測策略,判斷是否需要數(shù)據(jù)發(fā)送方發(fā)送數(shù)據(jù)項。10、如權(quán)利要求9所述的指纟丈技術(shù)的實現(xiàn)方法,其特征在于,所述查看沖突檢測策略,確定是否需要數(shù)據(jù)發(fā)送方發(fā)送數(shù)據(jù)項包括查看沖突檢測策略,若所述策略是以數(shù)據(jù)接收方的數(shù)據(jù)為準(zhǔn),則確定不需要數(shù)據(jù)發(fā)送方發(fā)送數(shù)據(jù)項;若所述策略是以數(shù)據(jù)發(fā)送方的數(shù)據(jù)為準(zhǔn),則確定需要數(shù)據(jù)發(fā)送方發(fā)送數(shù)據(jù)項,并指示數(shù)據(jù)發(fā)送方發(fā)送數(shù)據(jù)項。11、一種數(shù)據(jù)發(fā)送裝置,其特征在于,包括判斷模塊,用于判斷其發(fā)送的數(shù)據(jù)項的長度值是否超過預(yù)置的最短長度值;指紋計算模塊,在所述判斷模塊判斷數(shù)據(jù)項的長度值超過預(yù)置的最短長度值時,對數(shù)據(jù)項進(jìn)行指紋計算;數(shù)據(jù)發(fā)送模塊,用于將所述指紋計算模塊計算所得的指紋向數(shù)據(jù)接收裝置發(fā)送;或者在所述判斷模塊判斷數(shù)據(jù)項的長度值小于等于預(yù)置的最短長度值時,將數(shù)據(jù)元素向數(shù)據(jù)接收裝置發(fā)送。12、如權(quán)利要求11所述的數(shù)據(jù)發(fā)送裝置,其特征在于,所述數(shù)據(jù)發(fā)送裝置還包括標(biāo)識模塊,用于在所述數(shù)據(jù)發(fā)送模塊發(fā)送的數(shù)據(jù)項中攜帶標(biāo)識,所述標(biāo)識用于表示所述數(shù)據(jù)項是經(jīng)過指紋計算后得到的指紋還是數(shù)據(jù)元素。13、如權(quán)利要求11或12所述的數(shù)據(jù)發(fā)送裝置,其特征在于,所述指紋計算模塊包括算法協(xié)商單元,用于和數(shù)據(jù)接收裝置協(xié)商雙方所支持的指紋算法集;算法選擇單元,用于在數(shù)據(jù)項需要進(jìn)行指紋計算時,從所述雙方支持的指紋算法集選取出一種指紋算法對數(shù)據(jù)項進(jìn)行計算;指紋計算單元,用于根據(jù)算法選擇單元所選擇的算法對所述需要指紋計算的數(shù)據(jù)項進(jìn)行指紋計算,對數(shù)據(jù)項進(jìn)行指紋計算所使用的算法類型通過所述標(biāo)識進(jìn)行表示。14、一種數(shù)據(jù)接收裝置,其特征在于,包括數(shù)據(jù)存儲模塊,用于存儲數(shù)據(jù)或者指紋,所述數(shù)據(jù)或指紋用于與其接收的數(shù)據(jù)元素或指紋進(jìn)行比較,判斷其接收的數(shù)據(jù)元素或指紋是否發(fā)生改變;數(shù)據(jù)接收模塊,用于接收來自數(shù)據(jù)發(fā)送裝置發(fā)送的數(shù)據(jù)項;數(shù)據(jù)判斷模塊,用于根據(jù)預(yù)定的規(guī)則判斷所述數(shù)據(jù)接收模塊接收到的數(shù)據(jù)項是指紋還是數(shù)據(jù)元素;數(shù)據(jù)處理模塊,若所述數(shù)據(jù)判斷模塊接收到的是指紋,則將所述指紋與其保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理;若是數(shù)據(jù)元素,則將所述數(shù)據(jù)元素與其保存的數(shù)據(jù)元素進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。15、如權(quán)利要求14所述的數(shù)據(jù)接收裝置,其特征在于,所述數(shù)據(jù)處理模塊包括指紋處理單元,若所述數(shù)據(jù)判斷模塊接收到的是指紋時,用于將所述指紋與其保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理;數(shù)據(jù)處理單元,若所述數(shù)據(jù)判斷模塊接收到的是數(shù)據(jù)元素時,用于將所述數(shù)據(jù)元素與其保存的數(shù)據(jù)進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。16、如權(quán)利要求15所述的數(shù)據(jù)接收裝置,其特征在于,所述指紋處理單元包括指紋比較子單元,在所述數(shù)據(jù)判斷模塊接收到的是指紋時,用于將所述指紋與其保存的指紋進(jìn)行比較;若一致,則不需要更新數(shù)據(jù)接收裝置保存的數(shù)據(jù);若不一致,則表明數(shù)據(jù)發(fā)送裝置的數(shù)據(jù)項有修改;則所述指紋處理單元進(jìn)一步包括判斷子單元,用于查看沖突檢測策略,判斷是否需要數(shù)據(jù)發(fā)送裝置發(fā)送數(shù)據(jù)元素;若沖突檢測策略是以數(shù)據(jù)接收裝置的數(shù)據(jù)為準(zhǔn),則不需要數(shù)據(jù)發(fā)送裝置發(fā)送數(shù)據(jù)元素;若沖突檢測策略是以數(shù)據(jù)發(fā)送裝置的數(shù)據(jù)為準(zhǔn),則所述指紋處理單元進(jìn)一步包括指示子單元,用于指示數(shù)據(jù)發(fā)送裝置發(fā)送數(shù)據(jù)元素;數(shù)據(jù)更新子單元,用于將其保存的數(shù)據(jù)項更新為接收的數(shù)據(jù)元素。17、如權(quán)利要求15或16所述的數(shù)據(jù)接收裝置,其特征在于,所述數(shù)據(jù)處理單元包括數(shù)據(jù)比較子單元,在所述數(shù)據(jù)判斷模塊判斷出接收到的是數(shù)據(jù)元素時,用于將所述數(shù)據(jù)元素與其保存的數(shù)據(jù)進(jìn)行比較;若一致,則不需要更新數(shù)據(jù)接收方保存的數(shù)據(jù);若不一致,則表明數(shù)據(jù)發(fā)送裝置的數(shù)據(jù)項有修改;則所述數(shù)據(jù)處理單元進(jìn)一步包括判斷子單元,用于查看沖突檢測策略,判斷是否需要更新數(shù)據(jù)接收裝置保存的數(shù)據(jù);若沖突檢測策略是以數(shù)據(jù)接收裝置的數(shù)據(jù)為準(zhǔn),則不需要更新數(shù)據(jù)接收裝置的數(shù)據(jù);若沖突檢測策略是以數(shù)據(jù)發(fā)送方的數(shù)據(jù)為準(zhǔn),則所述指紋處理單元進(jìn)一步包括數(shù)據(jù)更新子單元,用于將其保存的數(shù)據(jù)項更新為接收的數(shù)據(jù)。18、一種指紋技術(shù)的實現(xiàn)系統(tǒng),其特征在于,包括數(shù)據(jù)發(fā)送裝置,用于根據(jù)預(yù)置的規(guī)則,判斷是否對數(shù)據(jù)項進(jìn)行指紋計算;若判斷需要對數(shù)據(jù)項進(jìn)行指紋計算,則對所述數(shù)據(jù)項進(jìn)行指紋計算,并將得到的指紋向數(shù)據(jù)接收裝置發(fā)送,若判斷不需要對數(shù)據(jù)項進(jìn)行指紋計算,則將數(shù)據(jù)元素向數(shù)據(jù)接收裝置發(fā)送;數(shù)據(jù)接收裝置,用于接收來自數(shù)據(jù)發(fā)送裝置的數(shù)據(jù)項;根據(jù)預(yù)置的規(guī)則判斷其是指紋還是數(shù)據(jù)元素,若是指紋,則將所述指紋與其保存的指紋進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理;若是數(shù)據(jù)元素,則將所述數(shù)據(jù)元素與其保存的數(shù)據(jù)元素進(jìn)行比較,根據(jù)比較結(jié)果進(jìn)行后續(xù)處理。全文摘要本發(fā)明公開了一種指紋技術(shù)的實現(xiàn)方法,包括根據(jù)預(yù)置的規(guī)則,判斷是否對數(shù)據(jù)項進(jìn)行指紋計算;若判斷需要對數(shù)據(jù)項進(jìn)行指紋計算,則對所述數(shù)據(jù)項進(jìn)行指紋計算,并向數(shù)據(jù)接收方發(fā)送得到的指紋,若判斷不需要對數(shù)據(jù)項進(jìn)行指紋計算,則向數(shù)據(jù)接收方發(fā)送數(shù)據(jù)元素。本發(fā)明還公開了一種數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置以及指紋技術(shù)實現(xiàn)系統(tǒng)。采用本發(fā)明,避免對一些較短的長度的數(shù)據(jù)項進(jìn)行指紋計算和數(shù)據(jù)同步過程中傳輸無用數(shù)據(jù),提高了數(shù)據(jù)同步的效率。文檔編號H04L29/08GK101494658SQ200810026009公開日2009年7月29日申請日期2008年1月24日優(yōu)先權(quán)日2008年1月24日發(fā)明者劉海濤,睿王申請人:華為技術(shù)有限公司