CN101494658B - 指纹技术的实现方法、装置及系统 - Google Patents
指纹技术的实现方法、装置及系统 Download PDFInfo
- Publication number
- CN101494658B CN101494658B CN2008100260094A CN200810026009A CN101494658B CN 101494658 B CN101494658 B CN 101494658B CN 2008100260094 A CN2008100260094 A CN 2008100260094A CN 200810026009 A CN200810026009 A CN 200810026009A CN 101494658 B CN101494658 B CN 101494658B
- Authority
- CN
- China
- Prior art keywords
- data
- fingerprint
- data item
- item
- need
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Collating Specific Patterns (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
Abstract
本发明公开了一种指纹技术的实现方法,包括:根据预置的规则,判断是否对数据项进行指纹计算;若判断需要对数据项进行指纹计算,则对所述数据项进行指纹计算,并向数据接收方发送得到的指纹,若判断不需要对数据项进行指纹计算,则向数据接收方发送数据元素。本发明还公开了一种数据发送装置、数据接收装置以及指纹技术实现系统。采用本发明,避免对一些较短的长度的数据项进行指纹计算和数据同步过程中传输无用数据,提高了数据同步的效率。
Description
技术领域
本发明涉及数据同步技术,尤其涉及一种指纹技术的实现方法及系统、数据发送装置以及数据接收装置。
背景技术
现代社会是信息社会。用户可以随时随地进行信息的接收和发送,可以随时随地用一台手持设备执行设备中的应用程序,而这种数据交互和执行应用程序的结果需要存储到手持设备中,也需要与其他数据设备中这种类型的数据保持一致,当其中一个设备上的数据变化时,可以操作其他设备中的数据做相应的改变,这就是数据同步(DS,Data Synchronization)。
DS技术中使用了一种称为指纹(Fingerprint)的方法,指纹是对一组数据通过某种算法处理后得到的一个数值。数据的任何变化都会导致指纹的不同,因此指纹可以有效标识数据。从一项数据元素到一个数据库都可以产生对应的指纹。指纹的用途是用于服务器来判别它从终端收到的数据与自身存储的数据是否相同。因为无论哪一边修改了数据,指纹都会不一致。如果指纹一致,表明服务器与终端的数据一样,终端不需要发送,如果指纹不一样,表明数据有修改,这时要看冲突检测策略,如果是以服务器端的数据为准,那终端也没有必要发送数据。这样,通过比较指纹可以避免发送一些不必要的数据,从而节省了流量。另外,指纹也可以用作断点续传。
指纹有多种算法,为了通信双方使用一致的算法,需要进行算法协商。一方将其所支持的算法集发送给另一方,另一方从中找到其支持的指纹算法,并告知对方,从而完成指纹算法的协商。目前使用指纹的同步流程如图1所示:
1)、PKG1和2中添加了对指纹使用方式的协商;
2)、PKG3中发送的为数据的ID和指纹;
3)、服务器收到PKG3后,进行指纹比对,通过PKG4指示客户端需要发送的数据元素的标识。
4)、客户端收到PKG4后,根据服务器的指示通过PKG5发送需要的数据元素。
5)、服务器收到PKG5后,通过PKG6返回接收状态信息,可选地,发送服务器端的修改数据。
发明人在本发明的创造过程中,发现现有的指纹技术有如下缺点:
使用指纹的目的是为了用较短的指纹代替长的数据元素,从而减少传输的数据量,但一些算法计算得到的指纹与对应的数据相比,指纹要比数据长,这时计算指纹并发送就没有意义了,反而增大了设备(特别是客户端设备)的计算量,而且对于某些数据项来说客户端与服务器之间多了一次交互,浪费了空口资源。目前还没有技术来解决这个问题。
发明内容
本发明实施例提供了一种指纹技术的实现方法及系统、数据发送装置以及数据接收装置,可以避免对一些较短的长度的数据项进行指纹计算和数据同步过程中传输无用数据,提高数据同步效率。
本发明实施例提供了一种指纹技术的实现方法,包括:
根据预置的规则,判断是否对数据项进行指纹计算;
若判断需要对数据项进行指纹计算,则对所述数据项进行指纹计算,并向数据接收方发送得到的指纹,若判断不需要对数据项进行指纹计算,则向数据接收方发送数据元素。
本发明实施例还提供了一种指纹技术的实现方法,包括:
接收来自数据发送方的数据项;
根据预置的规则判断所述数据项是指纹还是数据元素,若是指纹,则将所述指纹与其保存的指纹进行比较,根据比较结果进行后续处理;若是数据元素,则将所述数据元素与其保存的数据元素进行比较,根据比较结果进行后续处理。
本发明实施例还提供了一种数据发送装置,包括:
判断模块,用于判断其发送的数据项的长度值是否超过预置的最短长度值;
指纹计算模块,在所述判断模块判断数据项的长度值超过预置的最短长度值时,对数据项进行指纹计算;
数据发送模块,用于将所述指纹计算模块计算所得的指纹向数据接收装置发送;或者在所述判断模块判断数据项的长度值小于等于预置的最短长度值时,将数据元素向数据接收装置发送。
相应地,本发明实施例还提供了一种数据接收装置,包括:
数据存储模块,用于存储数据或者指纹,所述数据或指纹用于与其接收的数据元素或指纹进行比较,判断其接收的数据元素或指纹是否发生改变;
数据接收模块,用于接收来自数据发送装置发送的数据项;
数据判断模块,用于根据预定的规则判断所述数据接收模块接收到的数据项是指纹还是数据元素;
数据处理模块,若所述数据判断模块接收到的是指纹,则将所述指纹与其保存的指纹进行比较,根据比较结果进行后续处理;若是数据元素,则将所述数据元素与其保存的数据元素进行比较,根据比较结果进行后续处理。
本发明实施例还提供了一种指纹技术的实现系统,包括:
数据发送装置,用于根据预置的规则,判断是否对数据项进行指纹计算;若判断需要对数据项进行指纹计算,则对所述数据项进行指纹计算,并将得到的指纹向数据接收装置发送,若判断不需要对数据项进行指纹计算,则将数据元素向数据接收装置发送;
数据接收装置,用于接收来自数据发送装置的数据项;根据预置的规则判断其是指纹还是数据元素,若是指纹,则将所述指纹与其保存的指纹进行比较,根据比较结果进行后续处理;若是数据元素,则将所述数据元素与其保存的数据元素进行比较,根据比较结果进行后续处理。
实施本发明实施例,具有如下有益效果:
通过预先设定需要计算指纹的数据的最短长度值,可以判断数据项是否需要生成指纹,从而决定发送指纹或者发送数据项本身,从而避免对一些较短的长度的数据项进行指纹计算和数据同步过程中传输无用数据,提高了数据同步的效率。
附图说明
图1是现有的指纹实现技术的流程示意图;
图2是本发明实施例提供的指纹技术实现方法的流程示意图;
图3是本发明实施例提供的指纹技术实现系统的组成示意图;
图4是本发明实施例提供数据发送装置的组成图;
图5是本发明实施例提供数据接收装置的组成图;
图6是图5所示的数据接收装置中的数据处理模块的组成示意图。
具体实施方式
本发明实施提供了一种指纹技术的实现方法及系统、数据发送装置以及数据接收装置,可以避免对一些较短的长度的数据项进行指纹计算和数据同步过程中传输无用数据,提高了数据同步效率。
参见图2,是本发明实施例提供的指纹实现技术的第一实施例的流程示意图;
以通信双方为客户端和服务器为例说明本发明实施例,即,客户端作为数据发送方,服务器作为数据接收方。
首先,在客户端上预置的一个最短长度值,用一个标识FPLimit表示,FPLimit是一个整数型数据,表示当数据项的长度大于等于FPLimit指定的长度时,才会计算该数据项的指纹;当FPLimit不出现时,那么将对所有数据项计算指纹。该值保存在与设备相关的Device Info中,Schema可以类似于:
<xs:element name=″FPLimit″type=″xs:int″minOccurs=″0″/>
该标识也可以保存在DS MO中,这时为DS MO中新增的树结构如下:
在FPLimit中记录需要计算指纹的数据项的最小长度。
<x>/FP
状态 | 出现次数 | 格式 | 接入方式 |
需要 | 1 | 节点 | 获取 |
这是一个中间节点,记录DS客户端与指纹相关的信息。
<x>/FP/FPLimit
状态 | 出现次数 | 格式 | 接入方式 |
需要 | 0或1 | 整型 | 获取 |
该节点定义DS同步过程中需要计算指纹的数据项的最小长度。
在步骤100,客户端向服务器发送PKG1,所述PKG1是一个初始化包,携带的信息是同步协商参数,包括同步方向,同步行为,ID有效性,ChangeLog有效性等等;这是本技术领域的人员所熟知的,在此不再赘述;本发明实施例中,客户端向服务器发送PKG1中还包括FPLimit:
在步骤101,服务器接收到PKG1后保存FPLimit;并且服务器根据预定义的规则进行判断后,返回同意或者修改的同步参数,包括同步方向,同步行为,ID有效性,ChangeLog有效性等,并指示客户端发送数据项;
在步骤102,客户端根据服务器的指示,以及其预置的数据的最短长度值,客户端判断其发送的数据项的长度值是否超过预置的最短长度值,若是,则对数据项进行指纹计算,将得到预置指纹长度的指纹发送至服务器,若否,将数据元素,即数据项本身发送至服务器;若数据项本身长度等于预置的指纹长度,则将其作添零计算,使其长度值等于预置的最短长度值后,发送至服务器。
服务器接收到来自客户端的数据项后,如果收到的数据项的长度小于预置指纹长度或者大于预置指纹长度而小于预置最短长度值,那么可以直接判定其为数据项本身,即数据元素,直接与服务器上保存的数据本身比较即可;若数据长度为预置指纹长度,那么将与指纹比较;若长度为预置的最短长度值,那么截断到预置的指纹长度值后直接与服务器上保存的数据比较即可。
对于判定为数据元素的数据项,与服务器上保存的数据项本身比较,如果数据项一致,表明服务器与客户端的数据一样,客户端不需要发送,如果数据项不一样,表明数据有修改,这时要看冲突检测策略,如果是以服务器端的数据为准,那服务器也没有必要更新数据。如果是以客户端的数据为准,那服务器根据客户端发送数据项更新其保存的数据。
对于判定为指纹的数据项,那么服务器将与指纹进行比较,然后进行后续处理。如果指纹一致,表明服务器与客户端端的数据一样,终端不需要发送,如果指纹不一样,表明数据有修改,这时要看冲突检测策略,如果是以服务器端的数据为准,那客户端也没有必要发送数据。
如果是以客户端的数据为准,那么在步骤103,服务器指示客户端发送数据项。这样,通过比较指纹可以避免发送一些不必要的数据,从而节省了流量。
可选地,还可以为客户端向服务器发送的数据项添加一个标识:FPFlag,它是一个整数型数据,如果为0,表示下面发送的为数据项本身;如果不为0,则表示下面发送的为数据项的指纹,不同的值用来标识不同的指纹算法。
需要说明的是,客户端和服务器双方支持的指纹算法集可以事先通过协商确定。这时DS MO中新增的结构如下所示:
<x>/FP/<x>
状态 | 出现次数 | 格式 | 接入方式 |
需要 | 1或多个 | 节点 | 获取 |
这是一个中间节点,记录DS客户端所支持的一个或多个指纹算法。
<x>/FP/<x>/Algorithm
状态 | 出现次数 | 格式 | 接入方式 |
需要 | 1 | 整型 | 获取 |
这是一个叶子节点,记录DS客户端所支持的指纹算法。下面是该数字的意义:
值 | 描述 |
1 | 更改标志位(Changed Log) |
2 | 更改数量(Changed Count) |
3 | 哈希算法(Hash) |
4 | 对数据项进行部分指纹计算(Sub-Item specific) |
当然,也可将上述信息保存在Device Info中,下面是指纹产生算法的Schema:
<xs:element name=″FPAlgorithm″type=″xs:integer″/>
其值用于表明指纹算法,其值的含义可以与上表相同。
需要说明的是,进行数据同步时客户端和服务器将从所支持的指纹算法集中选出双方均支持的指纹算法子集;当数据项需要计算指纹时,就从该子集中选取一种指纹算法进行计算,并通过FPFlag进行标识,将得到的指纹发送至服务器;
服务器接收到来自客户端的数据项后,根据数据项的标识FPFlag判断其是指纹还是数据项本身,若服务器接收到的是数据项,则将其接收到的数据项本身,与其保存的数据项进行比较,根据比较结果进行后续处理。如果数据项一致,表明服务器与客户端的数据一样,服务器不需要更新数据,如果数据项不一样,表明数据有修改,这时要看冲突检测策略,如果是以服务器端的数据为准,那服务器也没有必要更新数据。如果是以客户端的数据为准,那服务器根据客户端发送数据项更新其保存的数据;
若是服务器接收到的是指纹,服务器将其接收到的指纹与其保存的指纹进行比较,根据比较结果进行后续处理;如果指纹一致,表明服务器与客户端端的数据一样,终端不需要发送,如果指纹不一样,表明数据有修改,这时要看冲突检测策略,如果是以服务器端的数据为准,那客户端也没有必要发送数据。
如果是以客户端的数据为准,那么在步骤103,服务器指示客户端需要发送的数据元素的标识;
在步骤104,客户端发送服务器所指示的数据元素;
在步骤105,服务器向客户端返回接收状态信息,可选地,返回其修改的数据;
在步骤106,客户端向服务器返回其接收数据的状态,发送映射命令给服务器;
在步骤107,服务器向客户端返回对映射命令的状态信息;
在步骤108,客户端向用户返回数据同步的结果。
实施本发明实施例提供的指纹技术的实现方法,通过预先设定需要计算指纹的数据的最短长度值,可以判断数据项是否需要生成指纹,从而决定发送指纹或者发送数据;并且为每一个数据项设定标识,从而告知接收方发送的是指纹还是数据项本身,并可以告知接收方所使用的指纹算法,从而避免对一些较短的长度的数据项进行指纹计算和数据同步过程中传输无用数据,提高了数据同步的效率。
同样参见图2,说明本发明实施例提供的指纹实现技术的第二实施例;
现假定客户端有表1所示的数据需要发送,所用指纹算法得到的指纹长度为:8字节,设定FPLimit=20字节。表1中的第三列为指纹,注意只有那些长度大于等于FPLimit=20字节的数据项计算了指纹。要注意的是:如果数据项本身就为8字节,那么数据尾部加0一直到20字节。当服务器发现一个20字节的数据时,直接截断到8字节,作为数据元素来处理。
表1
LUID | Data | FingerPrint |
1012 | Tom | - |
1013 | BEGIN:VCARDVERSION:2.1EMAIL:aaabbb.comTEL;HOME:(123)456-789END:VCARD | 0xBDEFE0FFAAFFBBAA |
1014 | Bike | - |
1015 | A File with length10000 bytes | 0xAAEF3111577566DD |
1017 | abcd.com | abcd.com000000000000 |
在步骤100,客户端向服务器发送PKG1,所述PKG1是一个初始化包,携带的信息是同步协商参数,包括同步方向,同步行为,ID有效性,ChangeLog有效性等等;这是本技术领域的人员所熟知的,在此不再赘述;本发明实施例中,客户端向服务器发送PKG1中还包括FPLimit:
Pkg#1:
<FPLimit>20</FPLimit>
在步骤101,服务器接收到PKG1后保存FPLimit;并且服务器根据预定义的规则进行判断后,返回同意或者修改的同步参数;
在步骤102,客户端发送PKG3,根据表1,如果有指纹则发送ID和指纹,如果没有指纹则发送ID和数据项本身:
服务器收到PKG3后,如果收到的dataitem中Data的数据长度小于指纹长度8字节或者大于8字节而小于20字节,那么可以直接判定其为数据项本身,直接与服务器上保存的数据项本身比较即可;若数据长度为8字节,那么将与指纹比较;若长度为20字节,那么截断到8个字节后直接与服务器上保存的数据项本身比较即可。
对于数据项1012和1014可以判定为数据项本身,与服务器上保存的数据项本身比较,若不等而且冲突策略为客户端优先,那么可以直接进行后续处理,不再需要服务器通过PKG4告知客户端发送这两项数据。
对于数据项1017,其长度为20字节,因而截断为8字节后,与数据项本身比较,然后进行后续处理。如果数据项一致,表明服务器与客户端的数据一样,服务器不需要更新数据,如果数据项不一样,表明数据有修改,这时要看冲突检测策略,如果是以服务器端的数据为准,那服务器也没有必要更新数据。如果是以客户端的数据为准,那服务器根据客户端发送数据项更新其保存的数据。
对于数据项1013、1015,由于dataitem中Data的数据长度为8字节,那么服务器将与指纹进行比较,然后进行后续处理。如果指纹一致,表明服务器与客户端端的数据一样,终端不需要发送,如果指纹不一样,表明数据有修改,这时要看冲突检测策略,如果是以服务器端的数据为准,那客户端也没有必要发送数据。
如果是以客户端的数据为准,那么在步骤103,服务器指示客户端发送数据项。这样,通过比较指纹可以避免发送一些不必要的数据,从而节省了流量。
此后的步骤与第一实施例相同,也是本发明技术领域的人员所熟知的,在此不再赘述。
同样参见图2,说明本发明实施例提供的指纹实现技术的第三实施例;
现假定客户端有
表2所示的数据需要发送,
表2中的第三列为标识FPFlag,该列的值是设备自行设定的,“0”代表发送数据项本身,其它值代表发送的为指纹,并代表着不同的指纹算法,表3给出了一个客户端和服务器经过协商确定的双方均支持的指纹算法的集合。
表2
LUID | Data | FPFlag |
1012 | Tom | 0 |
1013 | BEGIN:VCARDVERSION:2.1EMAIL:aaabbb.comTEL;HOME:(123)456-789END:VCARD | 1 |
1014 | Bike | 0 |
1015 | A File with length10000 bytes | 3 |
1017 | abcd.com | 0 |
表3
值 | 描述 |
1 | 更改标志位(Changed Log) |
2 | 更改数量(Changed Count) |
3 | 哈希算法(Hash) |
4 | 对数据项进行部分指纹计算(Sub-Item specific) |
在步骤100,客户端向服务器发送PKG1,所述PKG1是一个初始化包,携带的信息是同步协商参数,包括同步方向,同步行为,ID有效性,ChangeLog有效性等等;这是本技术领域的人员所熟知的,在此不再赘述;
Pkg#1:
<FPLimit>20</FPLimit>
在步骤101,服务器根据预定义的规则进行判断后,返回同意或者修改的同步参数;
在步骤102,客户端发送PKG3,包含数据项,根据
表2,如果FPFlag≠0则计算该数据项的指纹,并发送ID和指纹,如果FPFlag=0则发送ID和数据项本身:需要说明的是,这里FPFlag的取值,是根据数据项的长度值是否超过预置的最短长度值而定的。
服务器收到PKG3后,根据FPFlag的取值可以判断1012、1014和1017收到的为数据项本身,与服务器上保存的数据项本身比较,若不等而且冲突策略为客户端优先,那么可以直接进行后续处理,不再需要服务器通过PKG4告知客户端发送数据。
1013、101 5收到的为指纹,其中1013为根据Change Log算法得到的指纹,而1015为根据Hash算法计算得到的指纹,因而需要与服务器上保存的指纹进行比较,并进行后续处理。如果指纹一致,表明服务器与客户端端的数据一样,终端不需要发送,如果指纹不一样,表明数据有修改,这时要看冲突检测策略,如果是以服务器端的数据为准,那客户端也没有必要发送数据。
如果是以客户端的数据为准,那么在步骤103,服务器指示客户端发送数据项。这样,通过比较指纹可以避免发送一些不必要的数据,从而节省了流量。
此后的步骤与第一实施例相同,也是本发明技术领域的人员所熟知的,在此不再赘述。
参见图3,是本发明实施例提供的指纹技术的实现系统的组成示意图:
所述系统包括:
数据发送装置1,用于根据预置的规则,判断是否对数据项进行指纹计算;若判断需要对数据项进行指纹计算,则对所述数据项进行指纹计算,并将得到的指纹发往数据接收装置2,若判断不需要对数据项进行指纹计算,则将数据元素发往数据接收装置2;
具体地,数据发送装置1包括:判断模块10、指纹计算模块11、数据发送模块12,其组成和功能在后面结合图4详细描述。
数据接收装置2,用于接收来自数据发送装置1的数据项;根据预置的规则判断其是指纹还是数据元素,若是指纹,则将所述指纹与其保存的指纹进行比较,根据比较结果进行后续处理;若是数据元素,则将所述数据元素与其保存的数据元素进行比较,根据比较结果进行后续处理。
具体地,所述数据接收装置2包括:数据存储模块20、数据接收模块21、数据判断模块22、数据处理模块23,其组成和功能在后面结合图5详细描述。
参见图4,是本发明实施例提供数据发送装置的组成图;
在本发明实施例中,以客户端作为数据发送装置进行说明。
所述客户端包括:
判断模块10,用于判断其发送的数据项的长度值是否超过预置的最短长度值;需要说明的是,在客户端上预置的最短长度值用一个标识FPLimit表示,FPLimit是一个整数型数据,表示当数据项的长度大于等于FPLimit指定的长度时,才会计算该数据项的指纹;
指纹计算模块11,在所述判断模块判断数据项的长度值超过预置的最短长度值时,对数据项进行指纹计算;客户端和服务器双方支持的指纹算法集可以事先通过协商确定,进行数据同步时客户端和服务器将从所支持的指纹算法集中选出双方均支持的指纹算法子集;当数据项需要计算指纹时,就从该子集中选取一种指纹算法进行计算,并将得到的指纹发送至服务器;
数据发送模块12,用于将所述指纹计算模块11计算所得的指纹发往数据接收装置;或者在所述判断模块10判断数据项的长度值小于等于预置的最短长度值时,将数据项本身,即数据元素发送至数据接收装置。若数据项本身长度等于预置的指纹长度,则将其作添零计算,使其长度值等于预置的最短长度值FPLimit后,发送至数据接收装置。这里的数据接收装置为服务器。
可选地,所述数据发送装置,即客户端1还包括标识模块13,用于在所述数据发送模块12发送至数据接收装置的数据项中携带标识FPFlag,所述标识FPFlag用于表示所数数据项是经过指纹计算后得到的指纹还是数据项本身。
所述指纹计算模块11包括:
算法协商单元110,用于和数据接收装置协商双方所支持的指纹算法集;客户端和服务器经过协商确定的双方均支持的指纹算法的集合如表3所示。
算法选择单元111,用于在数据项需要进行指纹计算时,从所述双方支持的指纹算法集选取出一种指纹算法对数据项进行计算;
指纹计算单元112,用于根据算法选择单元111所选择的算法对所述需要指纹计算的数据项进行指纹计算,并通过所述标识表示对数据项进行指纹计算所使用的算法类型。
参见图5,为本发明实施例提供的数据接收装置的组成示意图;
在本发明实施例中,以服务器作为数据接收装置进行说明。
所述服务器包括:
数据存储模块20,用于存储数据或者指纹,所述数据或指纹用于与其接收的数据元素或指纹进行比较,判断其接收的数据元素或指纹是否发生改变;
数据接收模块21,用于接收来自数据发送装置,即客户端发送的数据项;
数据判断模块22,用于根据预定的规则判断所述数据接收模块21接收到的数据项是指纹还是数据项本身;如果收到的数据项的长度小于预置指纹长度或者大于预置指纹长度而小于预置最短长度值,那么可以直接判定其为数据项本身,即数据元素;若数据长度为预置指纹长度,那么判定所述数据项为指纹;若所数数据项的长度为预置的最短长度值,将其判定为数据元素,即数据项本身,那么截断到预置的指纹长度值后直接与数据存储模块20上保存的数据比较即可。
需要说明的是,客户端和服务器双方支持的指纹算法集可以事先通过协商确定,进行数据同步时客户端和服务器将从所支持的指纹算法集中选出双方均支持的指纹算法子集;当数据项需要计算指纹时,就从该子集中选取一种指纹算法进行计算,可选地,还可以通过FPFlag进行标识,将得到的指纹发送至服务器;所述标识FPFlag,它是一个整数型数据,如果为0,表示下面发送的为数据项本身;如果不为0,则表示下面发送的为数据项的指纹,不同的值用来标识不同的指纹算法。
数据处理模块23,若所述数据判断模块22接收到的是指纹,则将所述指纹与其保存的指纹进行比较,根据比较结果进行后续处理;若是数据元素,则将所述数据元素与数据存储模块20保存的数据进行比较,若所数数据项的长度为预置的最短长度值,那么截断到预置的指纹长度值后直接与数据存储模块20上保存的数据进行比较,根据比较结果进行后续处理。
参见图6,为图5中所示的数据接收装置2的数据处理模块23的组成示意图,数据处理模块23具体包括:
指纹处理单元230,若所述数据判断模块22接收到的是指纹时,用于将所述指纹与数据存储模块20保存的指纹进行比较,根据比较结果进行后续处理;
数据处理单元231,若所述数据判断模块22接收到的是数据元素,即数据项本身时,用于将所述数据项本身与数据存储模块20保存的数据进行比较,根据比较结果进行后续处理。
所述指纹处理单元230包括:
指纹比较子单元2300,在所述数据判断模块22接收到的是指纹时,用于将所述指纹与其保存的指纹进行比较;若一致,则不需要更新数据存储模块20保存的数据;若不一致,则表明数据发送装置的数据项有修改;
则所述指纹处理单元230进一步包括:判断子单元2301,用于查看冲突检测策略,判断是否需要数据发送装置发送数据项;若冲突检测策略是以数据接收装置的数据为准,则不需要数据发送装置发送数据项;若冲突检测策略是以数据发送装置的数据为准,则所述指纹处理单元230进一步包括:
指示子单元2302,用于指示数据发送装置发送数据元素;
数据更新子单元2303,用于将其保存的数据更新为接收的数据元素。
所述数据处理单元231包括:
数据比较子单元2310,在所述数据判断模块22判断出接收到的是数据元素时,用于将所述数据元素与数据存储模块20保存的数据进行比较;若一致,则不需要更新数据存储模块20保存的数据;若不一致,则表明数据发送装置的数据项有修改;
则所述数据处理单元231进一步包括:判断子单元2311,用于查看冲突检测策略,判断是否需要数据发送装置发送数据项;若冲突检测策略是以数据接收装置的数据为准,则不需要更新数据存储模块20保存的数据;若冲突检测策略是以数据发送装置的数据为准,则所述指纹处理单元231进一步包括:
数据更新子单元23 12,用于将数据存储模块20保存的数据项更新为接收的数据元素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
实施本发明实施例提供的指纹技术的实现方法及系统、数据发送装置和数据接收装置,通过预先设定需要计算指纹的数据的最短长度值,可以判断数据项是否需要生成指纹,从而决定发送指纹或者发送数据;并且为每一个数据项设定指纹标志项,从而告知接收方发送的是指纹还是数据项本身,并可以告知接收方所使用的指纹算法,从而避免对一些较短的长度的数据项进行指纹计算和数据同步过程中传输无用数据,提高了数据同步的效率。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (18)
1.一种指纹技术的实现方法,其特征在于,包括:
根据预置的规则,判断是否对数据项进行指纹计算;
若判断需要对数据项进行指纹计算,则对所述数据项进行指纹计算,并向数据接收方发送得到的指纹,若判断不需要对数据项进行指纹计算,则向数据接收方发送数据元素。
2.如权利要求1所述的指纹技术的实现方法,其特征在于,所述根据预置的规则判断是否对数据项进行指纹计算,包括判断数据项的长度值是否超过预置的最短长度值,若是,则对数据项进行指纹计算,若否,则不需要对数据项进行指纹计算。
3.如权利要求2所述的指纹技术的实现方法,其特征在于,对超过预置的最短长度值的数据项进行指纹计算后得到预置的指纹长度值的指纹;对等于预置的指纹长度值的数据项,则对其进行添零处理,将其长度增加至最短长度值。
4.如权利要求1至3中任一项所述的指纹技术的实现方法,其特征在于,数据发送方在所述数据项中携带一标识,用于指示数据接收方所述数据项是数据元素还是指纹。
5.如权利要求4所述的指纹技术的实现方法,其特征在于,所述方法还包括:
数据发送方和数据接收方协商双方所支持的指纹算法集;
当数据项需要进行指纹计算时,数据发送方从所述双方支持的指纹算法集选取出一种指纹算法对数据项进行计算,对数据项进行指纹计算所使用的算法类型通过所述标识进行表示。
6.一种指纹技术的实现方法,其特征在于,包括:
接收来自数据发送方的数据项;
根据预置的规则判断所述数据项是指纹还是数据元素,若是指纹,则将所述指纹与其保存的指纹进行比较,根据比较结果进行后续处理;若是数据元素,则将所述数据元素与其保存的数据元素进行比较,根据比较结果进行后续处理。
7.如权利要求6所述的指纹技术的实现方法,其特征在于,所述根据预置的规则判断其是指纹还是数据元素包括,判断数据项的长度值是否等于预置的经过指纹计算后的指纹长度值,若是,则判定所述数据项是经过指纹计算后的指纹,若否,则判定所述数据项是数据元素。
8.如权利要求6所述的指纹技术的实现方法,其特征在于,所述根据预置的规则判断其是指纹还是数据元素包括,判断数据项中携带的标识所指示的数据项是经过指纹计算的指纹还是数据元素,所述标识还用于表示对数据项进行指纹计算所使用的算法类型。
9.如权利要求6至8中任一项所述的指纹技术的实现方法,其特征在于,将所述指纹与其保存的指纹进行比较,根据比较结果进行后续处理包括:
将所述指纹与其保存的指纹进行比较,若一致,则不需要更新数据接收方保存的数据;若不一致,则表明数据发送方的数据项有修改,查看冲突检测策略,判断是否需要数据发送方发送数据项。
10.如权利要求9所述的指纹技术的实现方法,其特征在于,所述查看冲突检测策略,确定是否需要数据发送方发送数据项包括:
查看冲突检测策略,若所述策略是以数据接收方的数据为准,则确定不需要数据发送方发送数据项;若所述策略是以数据发送方的数据为准,则确定需要数据发送方发送数据项,并指示数据发送方发送数据项。
11.一种数据发送装置,其特征在于,包括:
判断模块,用于判断其发送的数据项的长度值是否超过预置的最短长度值;
指纹计算模块,在所述判断模块判断数据项的长度值超过预置的最短长度值时,对数据项进行指纹计算;
数据发送模块,用于将所述指纹计算模块计算所得的指纹向数据接收装置发送;或者在所述判断模块判断数据项的长度值小于等于预置的最短长度值时,将数据元素向数据接收装置发送。
12.如权利要求11所述的数据发送装置,其特征在于,所述数据发送装置还包括:
标识模块,用于在所述数据发送模块发送的数据项中携带标识,所述标识用于表示所述数据项是经过指纹计算后得到的指纹还是数据元素。
13.如权利要求11或12所述的数据发送装置,其特征在于,所述指纹计算模块包括:
算法协商单元,用于和数据接收装置协商双方所支持的指纹算法集;
算法选择单元,用于在数据项需要进行指纹计算时,从所述双方支持的指纹算法集选取出一种指纹算法对数据项进行计算;
指纹计算单元,用于根据算法选择单元所选择的算法对所述需要指纹计算的数据项进行指纹计算,对数据项进行指纹计算所使用的算法类型通过所述标识进行表示。
14.一种数据接收装置,其特征在于,包括:
数据存储模块,用于存储数据或者指纹,所述数据或指纹用于与其接收的数据元素或指纹进行比较,判断其接收的数据元素或指纹是否发生改变;
数据接收模块,用于接收来自数据发送装置发送的数据项;
数据判断模块,用于根据预定的规则判断所述数据接收模块接收到的数据项是指纹还是数据元素;
数据处理模块,若所述数据判断模块接收到的是指纹,则将所述指纹与其保存的指纹进行比较,根据比较结果进行后续处理;若是数据元素,则将所述数据元素与其保存的数据元素进行比较,根据比较结果进行后续处理。
15.如权利要求14所述的数据接收装置,其特征在于,所述数据处理模块包括:
指纹处理单元,若所述数据判断模块接收到的是指纹时,用于将所述指纹与其保存的指纹进行比较,根据比较结果进行后续处理;
数据处理单元,若所述数据判断模块接收到的是数据元素时,用于将所述数据元素与其保存的数据进行比较,根据比较结果进行后续处理。
16.如权利要求15所述的数据接收装置,其特征在于,所述指纹处理单元包括:
指纹比较子单元,在所述数据判断模块接收到的是指纹时,用于将所述指纹与其保存的指纹进行比较;若一致,则不需要更新数据接收装置保存的数据;若不一致,则表明数据发送装置的数据项有修改;
则所述指纹处理单元进一步包括:判断子单元,用于查看冲突检测策略,判断是否需要数据发送装置发送数据元素;若冲突检测策略是以数据接收装置的数据为准,则不需要数据发送装置发送数据元素;若冲突检测策略是以数据发送装置的数据为准,则所述指纹处理单元进一步包括:
指示子单元,用于指示数据发送装置发送数据元素;
数据更新子单元,用于将其保存的数据项更新为接收的数据元素。
17.如权利要求15或16所述的数据接收装置,其特征在于,所述数据处理单元包括:
数据比较子单元,在所述数据判断模块判断出接收到的是数据元素时,用于将所述数据元素与其保存的数据进行比较;若一致,则不需要更新数据接收方保存的数据;若不一致,则表明数据发送装置的数据项有修改;
则所述数据处理单元进一步包括:判断子单元,用于查看冲突检测策略,判断是否需要更新数据接收装置保存的数据;若冲突检测策略是以数据接收装置的数据为准,则不需要更新数据接收装置的数据;若冲突检测策略是以数据发送方的数据为准,则所述指纹处理单元进一步包括:
数据更新子单元,用于将其保存的数据项更新为接收的数据。
18.一种指纹技术的实现系统,其特征在于,包括:
数据发送装置,用于根据预置的规则,判断是否对数据项进行指纹计算; 若判断需要对数据项进行指纹计算,则对所述数据项进行指纹计算,并将得到的指纹向数据接收装置发送,若判断不需要对数据项进行指纹计算,则将数据元素向数据接收装置发送;
数据接收装置,用于接收来自数据发送装置的数据项;根据预置的规则判断其是指纹还是数据元素,若是指纹,则将所述指纹与其保存的指纹进行比较,根据比较结果进行后续处理;若是数据元素,则将所述数据元素与其保存的数据元素进行比较,根据比较结果进行后续处理。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100260094A CN101494658B (zh) | 2008-01-24 | 2008-01-24 | 指纹技术的实现方法、装置及系统 |
JP2010543362A JP5416135B2 (ja) | 2008-01-24 | 2008-12-30 | フィンガープリント技術の実現方法、装置、及びシステム |
PCT/CN2008/073851 WO2009094889A1 (en) | 2008-01-24 | 2008-12-30 | Method, apparatus and system for realizing fingerprint technology |
EP20080871856 EP2249246B1 (en) | 2008-01-24 | 2008-12-30 | Method, apparatus and system for realizing fingerprint technology |
US12/840,305 US8706746B2 (en) | 2008-01-24 | 2010-07-21 | Method, device, and system for realizing fingerprint technology |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100260094A CN101494658B (zh) | 2008-01-24 | 2008-01-24 | 指纹技术的实现方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101494658A CN101494658A (zh) | 2009-07-29 |
CN101494658B true CN101494658B (zh) | 2013-04-17 |
Family
ID=40912257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100260094A Active CN101494658B (zh) | 2008-01-24 | 2008-01-24 | 指纹技术的实现方法、装置及系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8706746B2 (zh) |
EP (1) | EP2249246B1 (zh) |
JP (1) | JP5416135B2 (zh) |
CN (1) | CN101494658B (zh) |
WO (1) | WO2009094889A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950301A (zh) * | 2010-09-26 | 2011-01-19 | 北京飞天诚信科技有限公司 | 数据处理的方法及装置 |
US9805310B2 (en) | 2012-03-04 | 2017-10-31 | Adam Jeffries | Utilizing spatial statistical models to reduce data redundancy and entropy |
CN104008321A (zh) * | 2014-05-28 | 2014-08-27 | 惠州Tcl移动通信有限公司 | 移动终端的基于指纹识别用户权限的判别方法和判断系统 |
CN111026740B (zh) * | 2019-12-03 | 2022-07-12 | 厦门市美亚柏科信息股份有限公司 | 基于数据指纹的数据对账方法及系统 |
CN114024777B (zh) * | 2022-01-05 | 2022-03-25 | 北京顶象技术有限公司 | 一种检测设备指纹是否碰撞的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1561026A (zh) * | 2004-02-20 | 2005-01-05 | 胡祥义 | 一种基于加密算法技术的软件防盗版方法 |
CN1851659A (zh) * | 2005-12-21 | 2006-10-25 | 华为技术有限公司 | 一种主设备和备份设备之间数据核查的方法 |
CN101009516A (zh) * | 2006-01-26 | 2007-08-01 | 华为技术有限公司 | 一种进行数据同步的方法及系统 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263348B1 (en) * | 1998-07-01 | 2001-07-17 | Serena Software International, Inc. | Method and apparatus for identifying the existence of differences between two files |
US7412462B2 (en) * | 2000-02-18 | 2008-08-12 | Burnside Acquisition, Llc | Data repository and method for promoting network storage of data |
US20060089954A1 (en) * | 2002-05-13 | 2006-04-27 | Anschutz Thomas A | Scalable common access back-up architecture |
JP3848209B2 (ja) * | 2002-05-23 | 2006-11-22 | 株式会社東芝 | データ転送装置、データ転送方法及びプログラム |
US7055008B2 (en) * | 2003-01-22 | 2006-05-30 | Falconstor Software, Inc. | System and method for backing up data |
US7676506B2 (en) * | 2003-06-20 | 2010-03-09 | Innopath Software, Inc. | Differential file compression of software image versions |
US20050060643A1 (en) * | 2003-08-25 | 2005-03-17 | Miavia, Inc. | Document similarity detection and classification system |
US7454443B2 (en) * | 2003-08-26 | 2008-11-18 | Tamir Ram | Method, system, and program for personal data management using content-based replication |
DE102004046746B4 (de) * | 2004-09-27 | 2007-03-01 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Verfahren zum Synchronisieren von Zusatzdaten und Basisdaten |
GB0424479D0 (en) * | 2004-11-05 | 2004-12-08 | Ibm | Generating a fingerprint for a document |
US7844774B2 (en) * | 2005-11-16 | 2010-11-30 | Sun Microsystems, Inc. | Extensible fingerprinting functions and content addressed storage system using the same |
US7613739B2 (en) * | 2005-11-17 | 2009-11-03 | Research In Motion Limited | Method and apparatus for synchronizing databases connected by wireless interface |
US7478113B1 (en) * | 2006-04-13 | 2009-01-13 | Symantec Operating Corporation | Boundaries |
US7860825B2 (en) * | 2006-05-08 | 2010-12-28 | Palm, Inc. | Method for synchronizing software application and user data for asynchronous client-server and peer to peer computer networks |
CN1971562A (zh) * | 2006-11-29 | 2007-05-30 | 华中科技大学 | 面向对象存储系统中的对象分布方法 |
US7827146B1 (en) * | 2007-03-30 | 2010-11-02 | Symantec Operating Corporation | Storage system |
-
2008
- 2008-01-24 CN CN2008100260094A patent/CN101494658B/zh active Active
- 2008-12-30 WO PCT/CN2008/073851 patent/WO2009094889A1/zh active Application Filing
- 2008-12-30 EP EP20080871856 patent/EP2249246B1/en active Active
- 2008-12-30 JP JP2010543362A patent/JP5416135B2/ja active Active
-
2010
- 2010-07-21 US US12/840,305 patent/US8706746B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1561026A (zh) * | 2004-02-20 | 2005-01-05 | 胡祥义 | 一种基于加密算法技术的软件防盗版方法 |
CN1851659A (zh) * | 2005-12-21 | 2006-10-25 | 华为技术有限公司 | 一种主设备和备份设备之间数据核查的方法 |
CN101009516A (zh) * | 2006-01-26 | 2007-08-01 | 华为技术有限公司 | 一种进行数据同步的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP5416135B2 (ja) | 2014-02-12 |
EP2249246B1 (en) | 2015-04-22 |
US8706746B2 (en) | 2014-04-22 |
US20100287169A1 (en) | 2010-11-11 |
JP2011510572A (ja) | 2011-03-31 |
CN101494658A (zh) | 2009-07-29 |
EP2249246A4 (en) | 2011-03-02 |
WO2009094889A1 (en) | 2009-08-06 |
EP2249246A1 (en) | 2010-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101009516B (zh) | 一种进行数据同步的方法、系统及装置 | |
CN101494658B (zh) | 指纹技术的实现方法、装置及系统 | |
CN103002415B (zh) | 一种通过短信发送验证码的方法和装置 | |
CN104283975B (zh) | 文件分发方法和装置 | |
CN111459895B (zh) | 一种区块链数据分级压缩与存储方法及系统 | |
CN111563109B (zh) | 基数统计方法、装置、系统、设备和计算机可读存储介质 | |
CN106878367B (zh) | 服务接口异步调用的实现方法和装置 | |
CN101599951A (zh) | 一种发布网站信息的方法、装置及系统 | |
CN105096174A (zh) | 一种交易匹配方法以及系统 | |
CN105701694A (zh) | 创建电子商店的方法及创建电子商店的系统 | |
CN107544765A (zh) | 一种订单打印系统及方法 | |
CN111580965A (zh) | 数据请求的处理方法及系统 | |
CN112817973A (zh) | 数据处理方法、装置、数据处理设备及存储介质 | |
CN103823807A (zh) | 一种去除重复数据的方法、装置及系统 | |
CN105373746B (zh) | 一种分布式数据处理方法和装置 | |
US8281984B2 (en) | Constructing a combined tracking address | |
CN104424316B (zh) | 一种数据存储方法、数据查询方法、相关装置和系统 | |
CN101296155A (zh) | 对内容分类的方法及系统 | |
CN112231398A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN104598520A (zh) | 一种处理商品信息的方法和装置 | |
CN108241639A (zh) | 一种数据去重方法 | |
CN104679794A (zh) | 数据差异分析方法及装置 | |
CN106649678B (zh) | 一种数据处理方法及系统 | |
CN105025042A (zh) | 一种确定数据信息的方法及系统、代理服务器 | |
CN109286560B (zh) | 一种获取即时通讯消息的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |