连续变化数据集传输及更新方法

文档序号:7612799阅读:234来源:国知局
专利名称:连续变化数据集传输及更新方法
技术领域
本发明涉及一种连续变化数据集传输及更新方法,具体涉及由服务器计算机(以下称服务器)将连续变化的数据集通过网络传输到一个或多个客户计算机(以下称客户机)和服务器响应客户机更新请求的方法。
背景技术
当服务器有连续变化的数据集,需要传输到客户机,服务器连续循环地按较少的时间间隔将数据提出,传输到客户机。此传输不被传输系统的物理约束所限制,但受带宽影响,需要将数据压缩后才传输到客户机。
比如证券期货或外汇行情的传输,价格的变化须及时传输到客户机,行情数据比较大,受带宽影响,需要将数据处理后才传输到客户机。
又如组播,将内容传送到一组客户机,存在传输路径,是需要一份客户机列表(传输控制数据),列表动态变化,我们需要维护它,使源端和客户机的客户数据保持一致。应传输速度的要求,需要传输尽量少的字节,所以也需要将数据处理后才传输到客户机。
传统的数据压缩(比如字典压缩)耗时较多,难以满足实时传输要求。一般会采用标记所变化部分,生成变化集Cn,才传输到客户机。比如,第i项目变化时,标记为[i+第i项目内容],“i”代表第i个项目,然后将[i+第i项目内容]传输到客户机,客户机根据接收到的内容只更新第i个项目。变化部分通过将当前数据集Pn和前一个变化的数据集Pn-1相比较得出,在比较时,是将数据集Pn的每一个项目(ITEM)和数据集Pn-1的相对应的项目比较,将有变化的项目选出,组成变化的串,即变化的串中包括有变化项目的所有字节。这种传输方法的缺点是1)在有变化的项目中,有很多字节是没有变化的,通常情况下每次的变化只是个别字节的变化,如果将整个项目都包含在变化的串中,必然会增加变化集的长度,增加网络的传输量,增加对带宽的要求,降低传输速度。2)当项目的长度不一致时,按项目比较会变得困难,还需有长度信息。3)在只传输变化部分的传输中,会伴随大量作标记用的附加信息,从而也增加了所传输的整个数据集的长度,增加了对带宽的要求,降低了传输速度。
传统的数据传输中服务器每传输给客户机一个变化集都需要客户机回传一个收到的回执,这无形中也增加了网络的传输量,也很难提供一台服务器对多个客户机的服务。

发明内容本发明的主要目的就是为了解决现有技术的问题,提供一种连续变化数据集传输及更新方法,减少传输量,提高传输速度,减少对带宽的要求。
本发明的次一目的就是为了解决现有技术的问题,提供一种连续变化数据集传输及更新方法,使客户机收到变化集后不需要回传回执,减少了网络传输量。
本发明的再一目的就是为了解决现有技术的问题,提供一种连续变化数据集传输及更新方法,减少作标记用的附加信息的字节数。
为实现上述目的,本发明提出的一种连续变化数据集传输及更新方法,包括以下步骤A1、服务器对于连续变化的数据按设定时间间隔连续提取数据集;B1、服务器将最新数据集的整集与其前一个数据集的整集按符号比较,得出变化串;C1、将变化串进行变形后得到变化集;D1、将变化集传输到一个或多个客户机,以供客户机根据其当前的数据集将数据集更新为最新数据集。
上述步骤D1的客户机允许一台或多台客户机,一次压缩后的变化集可传输到多台客户机。
本发明的进一步改进是所述每个变化集包括开始标记、新的数据集标记、旧的数据集标记、至少一个变化串元素和该变化串元素相对于上一个变化串元素结束位置的偏移值,所述变化串元素包括变化串元素头部和变化串,所述变化串元素头部包括变化串头标记和变化串长度。
本发明的更进一步改进是服务器将提取出的所述数据集按照提取的先后次序标记;并且服务器将变化串变形后进行相应标记得到变化集。标记可以是一系列连续数据,也可以是一系列不连续但具有一定规律的数据,用以区别不同的数据集。
服务器向客户机所传输的变化集中包括相应的标记。
服务器保存最近的若干个具有标记的数据集,客户机根据接收到的变化集和其当前的数据集将数据集更新为最新数据集,并将该最新数据集标记上与服务器上的最新数据集相同的标记。
所述客户机更新数据集包括以下步骤A2、客户机接收到最新变化集时,判断客户机是否存在变化集所依据的数据集(即判断客户机的当前所存有的数据集中是否有该变化集所依据的数据集),如果存在,则执行步骤B2,如果不存在,则执行步骤C2;B2、根据变化集所依据的数据集和最新变化集,将数据集更新为最新数据集并标记;C2、根据客户机上的当前的数据集的标记,请求服务器传输相应的变化集;D2、客户机接收到相应的变化集后,将客户机上变化集所依据的数据集更新为最新数据集并标记。
最新数据集与之前的某个数据集比较后得到变化串,则某个数据集为该变化集所依据的数据集。该变化集所依据的数据集有可能为客户机上的当前数据集,也可能是客户机以前的数据集。
上述步骤D2更新的最新数据集保存并作为下一次更新中的当前数据集,也就是说,客户机存在一旧的数据集(开始是空集),变化集依赖之而变形,依赖之而还原为最新数据集,这也是本发明压缩数据的基础。
当服务器接收到客户机对相应变化集的传输请求时,执行以下步骤A3、查找服务器中是否保存有客户机所请求的相应变化集,如果有,则执行步骤E3,如果没有则执行步骤B3;B3、查找出服务器中保存的与客户机上的当前的数据集标记相同的相应数据集;C3、将最新数据集和步骤B3中的相应数据集按符号比较,得出变化串;D3、将该变化串进行变形并标记后得到相应变化集;E3、将相应变化集传输到客户机,以供客户机根据其当前的数据集将数据集更新为最新数据集并标记。
步骤B3中在服务器中查找不到与客户机上的当前的数据集标记相同的相应数据集时,将该相应数据集设定为空集。
本发明所提供的另一减少网络传输量的技术方案包括以下步骤A4、服务器对于连续变化的数据按设定时间间隔连续提取数据集并按照提取的先后次序标记;B4、服务器将最新数据集的整集与其前一个数据集的整集进行比较,得出变化串;C4、将变化串进行变形并进行相应标记后得到变化集;D4、将变化集传输到一个或多个客户机,以供客户机根据其当前的数据集将数据集更新为最新数据集,并将该最新数据集标记上与服务器上相同数据集相同的标记。
步骤A4中提取数据集采用按照提取的先后次序标记,可以方便知道客户机数据集的实时性,以及方便数据集更新。
优选的,步骤B4所述的将最新数据集的整集与其前一个数据集的整集进行比较时是按符号进行比较。
本发明的有益效果是1)在很多动态变化的数据集,通常在一定时间内变化的量很少,在只传输变化部分的传输模式中,将数据集划分成若干符号,由于符号的随意性很大,其长度可以为一个字节,也可以为两个字节等,一个项目可能划分为多个符号,数据集之间按照符号为单位进行比较,缩小了比较的单位,所以得出的变化串的字节的长度减小,从而大大减少了传输量,提高了传输速度,减少了对带宽的要求。2)所输出的变化集中的变化串采用相对位置标记法,利用相对于上一个变化串元素结束位置的偏移值来说明变化串的位置,减少了用于表明位置的附加标记的字节数,从而进一步减少了传输量,传输速度更高。3)服务器在提出数据集时即对数据集按照提出的次序进行标记,并对变化集也进行相应的标记,同时客户机收到变化集、更新数据集后也将数据集标记上与服务器上的最新数据集标记相同的标记,这样使得在客户机收到变化集时,可根据数据集的标记来判断是否是需要的变化集,如果是则更新,如果不是再向服务器请求传输所需要的变化集,不需要每收到一个变化集即回传回执,从而减少了网络的传输量,减轻了网络堵塞情况。4)一次压缩的结果,同时为多个客户机使用,减轻了计算量,提高了服务器的响应速度。
本发明的特征及优点将通过实施例结合附图进行详细说明。

图1是本发明一种实施例的系统结构示意图;图2是现有技术的变化部分和本发明的变化部分的标记的对比;图3是本发明的一种实施例中服务器将最新数据集和其前一个数据集比较生成变化集并传输的流程图;图4是本发明一种实施例中服务器将最新数据集和其前面某个数据集比较生成变化集并传输的流程图;图5是本发明一种实施例中客户机接收变化集的流程图。
具体实施方式具体实施例一如图1所示,服务器包括数据集生成单元、数据集存储单元、数据集比较单元、变化集生成单元、变化集存储单元、变化集发送单元、接收请求单元。客户机包括请求连接单元、变化集接收单元、变化集解压缩单元、数据集存储单元、数据集更新单元和请求传输变化集单元。
服务器的数据集生成单元将连续变化的数据按照设定的时间间隔生成数据集,数据集存储单元存储这些数据集。数据集比较单元将最新数据集Pn按照整集方式与其前一个数据集Pn-1按符号比较,得出变化串,变化串经变化集生成单元变形并标记后形成变化集Cn,存储在数据集存储单元中。另外,服务器的接收请求单元接收来自于客户机的请求,数据集比较单元将最新数据集Pn按照整集方式与其前某个数据集Pk按符号比较,得出变化串,变化串经变化集生成单元变形并标记后形成变化集Cnk,也存储在数据集存储单元中。变化集发送单元将连续变化集Cn或变化集Cnk发送到客户机。
一台服务器支持对多个客户机的服务,客户机的请求连接单元向服务器发出连接请求,如果是初次连接,客户机的变化集更新单元检查客户机的变化集存储单元中的当前数据集Pk,其中Pk可以为空集(P0),请求传输变化集单元向服务器请求发送变化集Cnk。经认证后,服务器向客户机传输变化集Cnk。客户机的变化集接收单元接收变化集Cnk,通过变化集解压缩单元解压缩,数据集更新单元将当前数据集Pk更新为与服务器相同的最新数据集Pn。客户机的变化集接收单元还用于接收服务器的变化集发送单元传输的连续变化集Cn。
在服务器方,在将最新数据集Pn按照整集方式与其前的某一个数据集Pk(k可以等于n-1,k也可以小于n-1)比较时,是采用按符号比较,符号的划分比较灵活,不必局限于一个项目,可以定义一个字节或两个字节就是一个符号,而一个项目往往有几个字节甚至十多个字节,所以一个项目可以划分为若干个符号,这种比较方式,缩小了对比的单元,对于只传输变化部分的方法,对比的单元越小,对比后所得出的变化串的字节数越少。然而只有变化串还无法使客户机更新数据集,还需要告诉客户机该变化串的位置,所以本实施例每个变化集包括开始标记、新的数据集标记、旧的数据集标记、至少一个变化串元素及该变化串元素相对位置的偏移值,变化串元素包括变化串元素头部和变化串,变化串元素头部包括变化串头标记和变化串长度。本实施例的变化集的变形方法及效果如下首先,改进比较对象,将按元素(记录)的比较改为按“符号”的形式,“符号”统指字节、半字、字、双字、或任何其它预先选定改善的二进制数,为便于理解,这里假定数据是字节形成的,可以为一个字节或两个字节。
设w为相对应于数据集开始到此的位置,新的数据集按从头到尾顺序跟旧的数据集比较,提取变化部分,新的数据集可以分解为<变化部分1><变化部分2>...<变化部分i>
变化部分改进后标记为标记为[w+变化的串][w+变化的串]传输到客户机客户机更新w位置开始的串然后,为了识别变化的串,加上变化的串的长度标记,标记为[w1+长度+变化的串]或改进标记为[变化的串头标记+w1+长度+串]进一步,改进标记为[变化串头部h1+串]上述标记的意义为新的数据集跟旧的数据集比较,提取变化部分,记录为变化串头部h1+串,变化串头部h1包含变化的串头标记、相对应于数据集头的起始位置w1和串的长度。
大多数数据集的相对应于数据集头的起始位置由4字节数字表示,因此,需要改善,将相对应于数据集头的起始位置改为相对应于上一个变化串结束位置的起始位置,此相对位置可以用变长编码,连同头标记用可变字节数(1-4字节)的数字表示,从而达到压缩目的。
串的长度也用变长编码,连同串头标记用可变字节数(1-4字节)的数字表示,能进一步压缩。
在这里,相对位置等同于偏移位置,称相对位置为偏移。
进一步,改进标记为[偏移w2+变化串头部h2+串]将上述标记分开表示[偏移w2][变化串头部h2+串]变化串头部h2包含变化串头标记和串的长度,没有起始位置了。
另一方面,新的数据集可以分解为<没有变化部分1><变化部分1><没有变化部分2><变化部分2>...<没有变化部分i><变化部分i>
变化为[不变串头部1+不变串1][变化串头部1+变化串1][不变串头部2+不变串2][变化串头部2+变化串2]...[不变串头部i+不变串i][变化串头部i+变化串i]因为有旧的数据集作为对照,不变串不需要记录,所以变化为[不变串头部1][变化串头部1+变化串1][不变串头部2][变化串头部2+变化串2]...[不变串头部i][变化串头部i+变化串i]对于有实时变化而变化率不大的数据集,能有一个高效的压缩。
在这里,不变串头部也等同于偏移一个位置,最后简化为[偏移1][变化串头部1+变化串1][偏移2][变化串头部2+变化串2]...[偏移i][变化串头部i+变化串i]这里偏移包含偏移头标记和变长编码的偏移长度。
变化串头部包含变化串头标记和变长编码的变化串长度。
称上述简化后的标记为按相对位置标记法。按相对位置标记法,具有以下效果1.在很多动态变化的数据集,通常在一定时间内变化的量很少,在只传输变化部分的传输中,可以大大减少传输量。
2.有效减少作标记用的附加信息。加上传输附加信息后包括开始标记,参照数据集的标号,数据集Pn的校验和,结束标记等等,新的数据集从旧的数据集中变化而得到一个变化集[开始标记][新的数据集标记][旧的数据集标记][偏移1][变串头部1+变串1][偏移2][变串头部2+变串2]...[偏移i][变串头部i+变串i][校验和][结束标记]如图2所示,I是数据集Pn-1,II是数据集Pn。IV是本实施例中变化集的组成。例如,第i个项目中中两个字节由“CD”变化为“MN”,该项目的总长度为6个字节,III是现有技术中变化集的组成,是将最新数据集Pn与其前一个数据集Pn-1采用按项目比较得出,位置标记(即标记第i个项目)需要4个字节,变化串长度需要2-4个字节,变化串为6个字节,共需要12-14个字节。IV是本实施例中变化集的组成,经变长变码压缩后,偏移需要1-4个字节,通常需要一个字节;变化串长度需要1-4个字节,通常需要一个字节;变化串需要2个字节,所以共需要4-10个字节。可见本实施例由于采用按符号比较,变化串的字节数比较少,压缩成的变化集的字节数也少,从而使传输量减少。通常情况下,一个项目会包含几十个的字节,甚至上百个字节,而发生变化的通常是其中的几个字节,这种情况下,本发明的效果更加显著。
应该理解,变化集应用本发明的发明构思所作出的不同变形也应属于本发明所保护的范围。
变化集和旧的数据集一起,可以还原成新的数据集。
服务器将最新数据集和其前一个数据集比较生成变化集并传输的流程如图3所示,包括以下步骤在步骤101,服务器按某个时间间隔连续提出数据集并标记,标记为P0,P1,......,Pn。P0为特例,是空的数据集,Pn为最新数据集。并在数据集存储单元保存(仅保存)最近多个提出数据集Pi-1,......,Pn。然后执行步骤102;在步骤102,服务器中的数据集比较单元将最新数据集Pn(n>0)按整集方式与上一个数据集Pn-1从数据集的开始到结束按符号进行比较,通过变化集生成单元将不同部分按相对位置标记法压缩成变化集Cn,并在变化集存储单元保存最近多个压缩的变化集Ci,......,Cn。然后执行步骤103;在步骤103,服务器的变化集发送单元向每个已连接好客户机传输最新变化集Cn。
在步骤104,客户机接收到通过网络传输过来的变化集并更新数据集。其具体的更新流程如图5所示。
上述实施例中,服务器将最新数据集和其前面某个数据集比较生成变化集并传输的流程如图4所示,包括以下步骤在步骤201,服务器响应客户及传输变化集Cnk的请求,执行步骤202;在步骤202,服务器查找在变化集存储单元中是否存在变化集Cnk,如果存在则执行步骤205,如果不存在则执行步骤203;在步骤203,服务器提出最新数据集Pn,然后执行步骤204;在步骤204,服务器中的数据集比较单元将数据集Pn(n>0)按整集方式与某一个数据集Pk相比较,当k<i-1(即服务器没有此数据集)时把k置为0,把不同部分按相对位置标记法压缩成变化集Cnk,数据集Pn与P0之间的压缩是特例,即不经压缩传输,也可以另选方式压缩传输。在变化集存储单元保存变化集Cnk,然后执行步骤205;在步骤205,服务器的变化集发送单元向请求的客户机传输变化集Cnk。
客户机接收变化集的流程如图5所示,包括以下步骤在步骤301,客户机判断其请求连接是否为初始连接,如果是在执行步骤305,如果不是则执行步骤302;在步骤302,客户机的变化集接收单元接收到变化集Cn,然后执行步骤303;在步骤303,变化集控制单元根据接收到的变化集Cn中的旧的数据集标记,判断客户机的数据集存储单元中的当前数据集是否为数据集Pn-1,如果是,则执行步骤304,如果不是数据集Pn-1,则认为出错,执行步骤305;在步骤304,数据集更新单元将接收到的变化集Cn与前一个数据集Pn-1比较,按相对位置标记法生成Pn,并根据变化集Cn中的新的数据集标记对更新后的数据集进行标记,从而使客户机的最新数据集和服务器上的最新数据集具有相同的标记;在步骤305,客户机查找当前数据集Pk(有可能为P0,也有可能是上一次连接所留),并根据当前数据集Pk的标记请求传输变化集单元向服务器请求传输变化集Cnk;在步骤306,客户机的变化集接收单元接收到变化集Cnk,并根据变化集Cnk中的旧的数据集标记确定正确后,执行步骤307;在步骤307,数据集更新单元将接收到的变化集Cnk与数据集Pk比较,按相对位置标记法生成Pn。
具体实施例二与具体实施例一不同的是,实施例一的步骤102中,最新数据集Pn与上一个数据集Pn-1比较时,也可以不按符号比较,而采用其他方式的比较,也可以不采用相对位置标记法,而采用其他方式的位置标记法。
权利要求
1.一种连续变化数据集传输及更新方法,其特征在于包括以下步骤A1、服务器对于连续变化的数据按设定时间间隔连续提取数据集;B1、服务器将最新数据集的整集与其前一个数据集的整集按符号比较,得出变化串;C1、将变化串进行变形后得到变化集;D1、将变化集传输到一个或多个客户机,以供客户机根据其当前的数据集将数据集更新为最新数据集。
2.如权利要求1所述的连续变化数据集传输及更新方法,其特征在于服务器将提取出的所述数据集按照提取的先后次序标记;并且服务器将变化串变形后进行相应标记得到变化集。
3.如权利要求2所述的连续变化数据集传输及更新方法,其特征在于服务器保存最近的若干个具有标记的数据集,客户机根据接收到的变化集和其当前的数据集将数据集更新为最新数据集,并将该最新数据集标记上与服务器上的最新数据集相同的标记。
4.如权利要求3所述的连续变化数据集传输及更新方法,其特征在于所述客户机更新数据集包括以下步骤A2、客户机接收到最新变化集时,判断客户机是否存在变化集所依据的数据集,如果存在,则执行步骤B2,如果不存在,则执行步骤C2;B2、根据变化集所依据的数据集和最新变化集,将数据集更新为最新数据集并标记;C2、根据客户机上的当前的数据集的标记,请求服务器传输相应的变化集;D2、客户机接收到相应的变化集后,将客户机上变化集所依据的数据集更新为最新数据集并标记。
5.如权利要求4所述的连续变化数据集传输及更新方法,其特征在于当服务器接收到客户机对相应变化集的传输请求时,执行以下步骤A3、查找服务器中是否保存有客户机所请求的相应变化集,如果有,则执行步骤E3,如果没有则执行步骤B3;B3、查找出服务器中保存的与客户机上的当前的数据集标记相同的相应数据集;C3、将最新数据集和步骤B3中的相应数据集按符号比较,得出变化串;D3、将该变化串进行变形并标记后得到相应变化集;E3、将相应变化集传输到客户机,以供客户机根据其当前的数据集将数据集更新为最新数据集并标记。
6.如权利要求5所述的连续变化数据集传输及更新方法,其特征在于步骤B3中在服务器中查找不到与客户机上的当前的数据集标记相同的相应数据集时,将该相应数据集设定为空集。
7.如权利要求1所述的连续变化数据集传输及更新方法,其特征在于步骤B1中所述符号的长度为一个字节或两个字节。
8.如权利要求1至7中任一项所述的连续变化数据集传输及更新方法,其特征在于所述每个变化集包括开始标记、新的数据集标记、旧的数据集标记、至少一个变化串元素和该变化串元素相对于上一个变化串元素结束位置的偏移值,所述变化串元素包括变化串元素头部和变化串,所述变化串元素头部包括变化串头标记和变化串长度。
9.一种连续变化数据集传输及更新方法,其特征在于包括以下步骤A4、服务器对于连续变化的数据按设定时间间隔连续提取数据集并按照提取的先后次序标记;B4、服务器将最新数据集的整集与其前一个数据集的整集进行比较,得出变化串;C4、将变化串进行变形并进行相应标记后得到变化集;D4、将变化集传输到一个或多个客户机,以供客户机根据其当前的数据集将数据集更新为最新数据集,并将该最新数据集标记上与服务器上相同数据集相同的标记。
10.如权利要求9所述的连续变化数据集传输及更新方法,其特征在于步骤B4所述的将最新数据集的整集与其前一个数据集的整集进行比较时是按符号进行比较。
11.如权利要求9或10所述的连续变化数据集传输及更新方法,其特征在于所述客户机更新数据集包括以下步骤A5、客户机接收到最新变化集时,判断客户机是否存在变化集所依据的数据集,如果存在,则执行步骤B5,如果不存在,则执行步骤C5;B5、根据变化集所依据的数据集和最新变化集,将数据集更新为最新数据集并标记;C5、根据客户机上的当前的数据集的标记,请求服务器传输相应的变化集;D5、客户机接收到相应的变化集后,将客户机上变化集所依据的数据集更新为最新数据集并标记;当服务器接收到客户机对相应变化集的传输请求时,执行以下步骤A6、查找服务器中是否保存有客户机所请求的相应变化集,如果有,则执行步骤E6,如果没有则执行步骤B6;B6、查找出服务器中保存的与客户机上的当前的数据集标记相同的相应数据集;C6、将最新数据集和步骤B6中的相应数据集按符号比较,得出变化串;D6、将该变化串进行变形并标记后得到相应变化集;E6、将相应变化集传输到客户机,以供客户机根据其当前的数据集将数据集更新为最新数据集并标记。
全文摘要
本发明提出了一种连续变化数据集传输及更新方法,包括以下步骤服务器对于连续变化的数据按设定时间间隔连续提取数据集;服务器将最新数据集的整集与其前一个数据集的整集按符号比较,得出变化串;将变化串进行变形后得到变化集;将变化集传输到一个或多个客户机,以供客户机根据其当前的数据集将数据集更新为最新数据集。本发明将数据集划分成若干符号,由于符号的随意性很大,一个项目可能划分为多个符号,数据集之间按照符号为单位进行比较,缩小了比较的单位,所以得出的变化串的字节的长度减小,从而大大减少了传输量,提高了传输速度,减少了对带宽的要求。
文档编号H04L12/00GK1913441SQ200510021480
公开日2007年2月14日 申请日期2005年8月9日 优先权日2005年8月9日
发明者张永敏 申请人:张永敏
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1