用于远程差分压缩的有效算法和协议的制作方法

文档序号:7616252阅读:471来源:国知局

专利名称::用于远程差分压缩的有效算法和协议的制作方法
技术领域
:本发明一般涉及用有限带宽经网络更新数据对象,尤其涉及使用远程差分压缩(RDC)方法来进行对象数据的差分传输的系统和方法。可使用RDC方法的递归应用来进一步地使大型对象传送所使用的带宽最小。
背景技术
:诸如内联网、外联网以及互联网的网络盛行已导致共享跨越广泛网络的信息的用户数量有了很大的增长。基于与传输介质以及其它基础设施相关限制相关联的带宽,最大数据传输速率关联于每个物理网络。作为有限网络带宽的结果,用户在网络上取得和传送大量数据时会经历长时间的滞后。数据压缩技术已经变成在具有有限带宽的网络上传送大量数据的普遍方法。通常数据压缩可为无损的或有损的。无损压缩涉及这样的数据集转换,即通过应用解压转换可取得该数据集的精确副本。当需要精确副本时,最常使用无损压缩来压缩数据。在数据对象的接收者已经具有对象先前的或较旧的版本情形下,可使用一种称为远程差分压缩(RDC)的无损压缩方法来确定并仅传送该对象新旧版本间的差异。由于RDC传送仅涉及传送观察到的新旧版本之间的差异(比如,对于文件情形,文件更改或上次访问日期、文件属性、或对文件内容的较小改变),所传送的数据总量可大大减少。RDC可与另一无损压缩算法组合,以进一步减少网络通信量。当大对象需要在计算装置之间频繁地往返传送,并且难以或不能维持这些对象的旧副本从而不能使用本地差分算法时,RDC的优点最为显著。
发明内容简言之,本发明涉及用于经有限带宽网络更新对象的方法和系统。使用远程差分压缩(RDC)技术在两个或多个计算装置间更新对象,使得所需要的数据传送最少。在一方面中,通过把RDC算法迭递归地应用到对象自己的元数据中可完成大对象的有效传送;在此情形中可使用单个或多个递归步骤以减少由RDC算法经网络发送的元数据量。通过把边界置于经动态确定的位置上,对象和/或签名以及信息块长度列表可得以拆分(chunk)。一数学函数可估算相对于可能的信息块边界的与水平窗口相关联的散列值。所述方法和系统在各种网络化应用中有用,诸如点对点重复符、电子邮件客户机和服务器、客户机侧高速缓存系统、通用复制实用程序、数据库重复符、入口、软件更新服务、文件/数据同步、以及其它。可参照在下面简要归纳的附图、以下详述的本发明说明性实施例以及所附权利要求来获得本发明及其改进的更完整理解。本发明的非限制和非穷举实施例参照以下附图进行描述。图1是示出操作环境的示图;图2是示出示例计算装置的示图;图3A和3B是示出示例RDC过程的示图;图4A和4B是示出在示例RDC过程期间用于本地装置和远程装置之间交互的过程流的示图;图5A和5B是示出在RDC过程期间用于示例交互中签名和信息块长度列表的递归远程差分压缩的过程流的示图;图6是图形地示出示例RDC序列中递归压缩示例的示图;图7是示出使用示例RDC过程进行客户机和服务器应用的交互的示图;图8是示出用于示例拆分过程的过程流的示图;图9是示出用于示例拆分过程的示例指令代码的示图;图10和11是根据本发明的至少一方面安排的,示出用于另一示例拆分过程的另一示例指令代码的示图。具体实施例方式本发明的各种实施例参照附图进行详细描述,其中相同标号在附图中代表相同的部件和装配件。对各种实施例的应用并不限制本发明的范围,它仅受所附权利要求范围限制。另外,在本说明书中陈述的任何示例并非旨在限制本发明,且仅陈述许多可能实施例中的若干实施例。本发明在具有一个或多个存储在其上的共同相关联对象的本地和远程计算装置(或“装置”,为简化起见)的环境中进行描述。术语“本地”和“远程”指的是方法的一个情况。然而,同一装置在不同情况中可扮演“本地”和“远程”两种角色。可使用远程差分压缩(RDC)方法以经网络用有限带宽来有效更新共同相关联的对象。当具有对象新副本的装置需要更新具有该对象或相似对象旧副本的装置时,采用RDC方法来经网络仅仅传送对象之间的差异。描述RDC方法的示例使用(1)用来传送RDC元数据的递归方法,以减少为大对象传送的元数据量;以及(2)本地的基于最大值的拆分方法,以增加关联于对象差异的精度从而使带宽利用最少。获益于所述RDC方法的某些示例应用包括点对点复制服务、诸如SMB的文件传输协议、传送大图像的虚拟服务器、电子邮件服务器、蜂窝电话及PDA同步、数据库服务器复制,仅在此列举若干。操作环境图1是示出本发明示例操作环境的示图。如图所示,安排装置经网络进行通信。这些装置可以是连接于网络的通用计算装置、专用计算装置、或任何其它适当的装置。网络102可对应于任何链接技术,包括,但不限于直接接线链接(例如并行端口、串行端口、USB、IEEE1394等等)、无线链接(例如IR端口、蓝牙端口等等)、有线网络、无线网络、局域网、广域网、超广域网、互联网、内联网以及外联网。在装置A(100)和装置B(101)之间的示例交互中,对象的不同版本本地地存储在两个装置中对象OA在100上,以及对象OB在101上。在某点,装置A(100)决定要用存储在装置B(101)上的副本(对象OB)来更新对象OA的副本,并向装置B(101)发送启用RDC方法的请求。在另一可选实施例中,RDC方法可由装置B(101)启用。装置A(100)和装置B(101)都处理其本地存储对象,并将相关联数据以数据依赖方式拆分成可变数量块(例如块1-n、块1-k分别是对象OA、OB的)。诸如信息块强散列(SHA)的签名集由两个装置本地计算。两个装置都编译签名的单独列表。在RDC方法的下一步骤期间,装置B(101)经网络102向装置A(100)传送经计算的签名列表和信息块长度1-n。装置A(100)通过把每个收到的签名与其自己生成的签名列表1-k相比较,装置A(100)估算签名的这个列表。签名列表中的不匹配指示对象中需要修正的一个或多个差异。装置A(100)传送对装置B(101)发送已由签名列表中的不匹配所标识的信息块的请求。装置B(101)随后压缩并传送被请求的信息块,然后该信息块在接收和解压缩完成后由装置A(100)进行重组。装置A(100)把收到的信息块与其自己的匹配信息块进行重组,以获取对象OB的本地副本。示例计算装置图2是根据本发明安排的示例计算装置的框图。在基本配置中,计算装置200通常包括至少一个处理单元(202)和系统存储器(204)。取决于计算装置的准确配置和类型,系统存储器204可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等等)、或两者的某些组合。系统存储器204通常包括操作系统(205);一个或多个程序模块(206);也可包括程序数据(207)。基本配置由虚线208内那些组件如图2所示。计算装置200还可具有附加特征或功能。例如,计算装置200还可包括附加数据存储装置(可移动的和/或不可移动的)诸如磁盘、光盘或磁带。这种附加存储由可移动存储209以及不可移动存储210如图2所示。计算机存储介质包括以用来存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性的和非易失性的、可移动的和不可移动的介质。系统存储器204、可移动存储器209和不可移动存储器210都是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术,CD-ROM、数字式多用盘(DVD)或其它光学存储器,磁盒、磁带、磁盘存储器或其它磁性存储装置,或任何可用于存储所需信息并可由计算装置200访问的其它介质。任何这种计算机存储介质可以是装置200的一部分。计算装置200也可具有诸如键盘、鼠标、笔、语音输入装置、触摸输入装置等等的输入装置212。还可包括诸如显示器、扬声器、打印机等等的输出装置214。这些装置都是本领域技术人员众所周知的,在此无需赘述。计算装置200还可包含使装置能与其它计算装置218诸如经网络进行通信的通信连接216。通信连接216是通信介质的一个示例。通信介质通常体现为计算机可读指令、数据结构、程序模块、或其它诸如载波或其它传输机制的已调制数据信号中的数据,并包括任何信息传递介质。术语“已调数据信号”意指用将信息编码成信号的方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、微波、卫星、红外和其它无线介质的无线介质。在此所用的术语计算机可读介质包括存储介质和通信介质。各种过程和接口在驻留于系统存储器204中的一个或多个应用程序中实现。在一示例中,应用程序是在计算装置(例如客户机)和另一位于远程的计算装置(例如服务器)之间安排文件同步的远程差分压缩算法。在另一示例中,应用程序是在系统存储器204中提供的用来压缩和解压缩数据的压缩/解压缩过程。在又一示例中,应用程序是客户机装置的系统存储器204中提供的解密过程。远程差分压缩(RDC)图3A和3B是根据本发明的至少一方面示出示例RDC过程的示图。取决于实际对象OA和OB特定信息块的数量可根据每个实例变化。参照图3A,基本RDC协议在两个计算装置之间(装置A和装置B)达成。RDC协议隐含地假设装置A和B具有相同对象或资源的两个不同实例(或版本),分别由对象实例(或版本)OA和OB标识。作为本图中示出的实例,装置A具有资源OA的旧版本,而装置B具有关联于该资源的在内容(或数据)上稍有(或增加)不同的版本OB。用来从装置B把经更新对象OB传送到装置A的协议如下所述。可使用类似的协议把对象从装置A传送到装置B,且无需对以下所述的协议作重大更改就可在装置A或装置B的要求下开始该传送。1.装置A使用RDC协议向装置B发送传送对象OB的请求。在一可选实施例中,装置B开始传送;在此情形中,协议跳过步骤1并从下面的步骤2开始。2.装置A将对象OA拆分成信息块1-k,且对对象OA的每个信息块1……k分别计算签名SigAi和长度(或字节字节数的大小)LenAi。将在下面详细描述拆分成信息块。装置A存储签名和信息块长度的列表((SigA1,LenA1)……(SigAk,LenAk))。3.装置B将对象OB拆分成信息块1-n,且对对象OB的每个信息块1……n分别计算签名SigBi和长度字节LenBi。在步骤3中使用的拆分算法必须匹配在以上步骤2中的算法。4.装置B向装置A发送关联于对象OB的经计算的信息块签名和信息块长度列表((SigB1,LenB1)……(SigBn,LenBn))。随后可由装置A使用信息块长度信息以通过用其开始偏移及长度对它们的标识来请求信息块的特定组。由于列表的固有序列,通过合计列表中所有前面信息块的长度,在每个信息块的字节数Bi中计算起始偏移是可能的。在另一实施例中,在发送给装置A之前,可使用无损压缩算法对信息块签名和信息块长度的列表进行紧密编码,并作进一步压缩。5.收到该数据后,装置A根据在步骤2中为对象OA计算的关联于内容旧版本的签名SigA1……SigAk来比较收到的签名列表。6.装置A向装置B发送对所有在步骤4接收的其签名与在步骤2由装置A计算的任何签名都不匹配的信息块的请求。对于每个被请求的信息块Bi,该请求包括在步骤4中由装置A计算的信息块起始偏移和信息块长度。7.装置B向装置A发送关联于所有被请求信息块的内容。由装置B发送的内容在发送给装置A之前可使用无损压缩算法进行进一步的压缩。8.通过使用在步骤7中从装置B接收的信息块,以及匹配步骤4中由装置B发送的签名的对象OA自己的信息块,装置A重建了对象OB的本地副本。在装置A上重新排列的本地和远程信息块的顺序由在步骤4中装置A接收的信息块签名列表来确定。拆分步骤2和3以使用在相关联对象(分别为OA和OB)的每个字节位置上计算的指纹函数的数据依赖方式出现。对于一给定位置,使用包围对象中位置的小数据窗口来计算指纹函数;指纹函数的值取决于包括在该窗口的对象的所有字节数。指纹函数可以是任何适当函数,诸如散列函数或Rabin多项式。在指纹函数算出满足选定条件的值的对象位置上确定信息块边界。可使用密码学安全散列函数(SHA)或诸如抗冲突(collision-resistant)散列函数的某些其它散列函数来计算信息块签名。步骤4中发送的签名和信息块长度列表提供了使用原始信息块和经标识更新的或新的信息块来重建对象的基础。步骤6中请求的信息块由其偏移和长度标识。通过以相同顺序使用其签名匹配步骤4中由装置A所接收签名的本地和远程信息块,在装置A上重建对象。当重建步骤由装置A完成后,可删除对象OA并以在装置A上重建的对象OB的副本替换之。在其它实施例中,装置A可保留对象OA用于未来RDC传送期间信息块可能的“重新使用”。对于大对象,即使对象OA和对象OB非常接近或相同,图3A中示出的基本RDC协议实例在步骤4仍然导致了大量固定的额外开销(overhead)。给定一平均信息块尺寸C,步骤4中经网络传送的信息量与对象OB的尺寸成比例,尤其与对象OB的尺寸除以C,即对象B的信息块数量成比例,且因此与在步骤4中传送的(信息块签名,信息块长度)对成比例。例如,参照图6,大图像(由诸如微软虚拟服务器的虚拟机器监视器使用的虚拟硬盘图像)可导致尺寸为9.1GB的对象(OB)。对于平均信息块尺寸C为3KB而言,9GB的对象可导致为对象OB产生的三百万个信息块,带有在步骤4需要经网络传送的42MB的相关联签名和信息块长度信息。由于即使当对象OA和OB的差异(且因此需要在步骤7传送的数据量)非常小时仍需经网络传送42MB的签名信息,协议的固定额外开销成本非常高。通过使用RDC协议的递归应用而不是步骤4中的签名信息传送,可大大减少固定额外开销成本。参照图3B,替换基本RDC算法步骤4的附加步骤4.2-4.8描述如下。步骤4.2-4.8对应于如上所述的基本RDC协议的步骤2-8的递归应用。递归应用还可进一步地应用于以下的步骤4.4等等,直至任意所需递归深度。4.2装置A执行其签名和信息块长度列表((SigA1,LenA1)……(SigAk,LenAk))的递归拆分,形成递归式签名信息块,从而获得递归式签名和递归式信息块长度的另一列表((RSigA1,RLenA1)……(RSigAs,RLenAs)),其中s<<k。4.3装置B递归地把签名和信息块长度列表((SigB1,LenB1)……(SigBk,LenBk))拆分成块,从而产生递归式签名和递归式信息块长度的另一列表((RSigB1,RLenB1)……(RSigBr,RLenBr)),其中r<<n。4.4装置B向装置A发送递归式签名和递归式信息块长度的按序列表((RSigB1,RLenB1)……(RSigBr,RLenBr))。在发送给装置A之前,可使用无损压缩算法对递归式信息块签名和递归式信息块长度的列表进行紧密编码,并作进一步压缩。4.5装置A把在步骤4.2中计算的递归式签名的自己的列表与从装置B收到的递归式签名进行比较。4.6装置A向装置B发送对在其集(RSigA1……RSigAs)中没有匹配的递归式签名的每个单个递归式签名信息块(带有递归式签名RsigBk)的请求。4.7装置B向装置A发送被请求递归式签名信息块。在发送给装置A之前可使用无损压缩算法对该被请求递归式签名信息块进行进一步的压缩。4.8通过使用局部匹配的递归式签名信息块,以及在步骤4.7中从装置B接收的递归式信息块,装置A重建了签名和信息块信息列表((SigB1,LenB1)……(SigBn,LenBn))。当完成以上的步骤4.8后,执行在如上所述基本RDC协议的步骤5上继续,如图3A所示。作为递归式拆分操作的结果,关联于对象的递归式签名的数量按等于平均信息块尺寸C的系数减少,产生极少的递归式签名量(分别是对于对象OA,r<<n;对于对象OB,s<<k)。在一实施例中,可使用与拆分原始对象OA和OB相同的拆分参数来拆分签名。在一可选实施例中,可将其它拆分参数用于递归步骤。对于非常大的对象,可应用以上的递归步骤k次,其中k≥1。对于平均信息块尺寸C,递归式拆分可导致网络上的签名通信量的尺寸(步骤4.2到4.8)按约对应于Ck的系数减少。由于C相对较大,一般对于极大的对象才会需要大于1的递归深度。在一实施例中,通过考虑包括一个或多个以下参数可动态地确定的递归步骤数期望平均信息块尺寸、对象OA和/或OB的尺寸、对象OA和/或OB的数据格式、链接装置A和装置B的网络的等待时间和带宽特征。在步骤2使用的指纹函数与步骤3中使用的指纹函数相匹配。类似地,在步骤4.2使用的指纹函数与步骤4.3中使用的指纹函数相匹配。步骤2-3的指纹函数与步骤4.2-4.3的指纹函数可有选择地匹配。如前所述,每个指纹函数都使用包围对象中位置的小数据窗口;其中关联于指纹函数的值取决于包括在数据窗口内的对象的所有字节数。数据窗口的尺寸可基于一个或多个标准进行动态地调整。此外,拆分过程使用指纹函数的值以及一个或多个附加拆分参数,以确定以上步骤2-3和4.2-4.3中的信息块边界。通过动态地改变窗口尺寸和拆分参数,信息块边界得以调整从而任何必须的数据传送都可使用最少的可用带宽来完成。用于调整窗口尺寸和拆分参数的示例标准包括关联于对象的数据类型、环境限制、使用模型、连接装置A和装置B的网络的等待时间和带宽特征、以及用来确定平均数据传送块尺寸的任何其它适当模型。示例数据类型包括字处理文件、数据库图像、电子制表软件表格、展示放映幻灯片以及图像。示例使用模型可在典型数据传送所需的平均字节数受到监测之处。对应用程序中单个元素的改变可导致对相关联数据和/或文件的一些改变。因为大多数应用程序具有相关联文件类型,该文件类型是值得在调整窗口尺寸和拆分参数中考虑的一个可能标准。在一示例中,字处理文件中单个字符的更改导致了相关联文件中约100个字节的改变。在另一示例中,数据库应用程序中单个元素的更改导致了数据库索引文件中1000个字节的改变。对于每个示例,适当的窗口尺寸和拆分参数可能是不同的,从而使拆分过程具有适当的基于特定应用而最优化的粒度。示例过程流图4A和4B是示出根据本发明的至少一方面安排的用于在示例RDC过程期间本地装置(例如装置A)和远程装置(例如装置B)之间交互的过程流。图4A的左侧示出了在本地装置A上操作的步骤400-413,而图4A的右侧示出了在远程装置B上操作的步骤450-456。如图4A所示,交互由装置A在步骤400请求对对象OB的RDC传送开始,而装置B在步骤450接收该请求。随后,本地装置A和远程装置B分别在步骤401和451独立地计算指纹、在步骤402和452将其各自的对象拆分成信息块、并在步骤403和453计算每个信息块的签名(例如SHA)。在步骤454,装置B向装置A发送在步骤452和453中计算的签名和信息块长度列表,而装置A在步骤404接收该信息。在步骤405,本地装置A把被请求信息块的列表初始化为空列表,并把远程信息块的跟踪偏移初始化为零。在步骤406,基于对步骤404中接收的列表的考虑,选择下一(签名,信息块长度)对(SigBi,LenBi)。在步骤407,装置A检查在步骤406中选定的签名SigBi是否匹配在步骤403期间计算的任一签名。如果匹配,执行在步骤409继续。如果不匹配,跟踪远程信息块偏移和字节长度LenBi在步骤408被添加到请求列表中。在步骤409,跟踪偏移增加一个当前信息块长度LenBi。在步骤410,本地装置A测试是否已处理了在步骤404中接收的所有(签名,信息块长度)对。如果没有,执行在步骤406继续。否则,在步骤411对信息块请求列表以紧密方式进行适当地编码、压缩、并发送给远程装置B。远程装置B在步骤455接收信息块的经压缩列表,并在步骤456对其解压缩,然后压缩并送回信息块数据。本地装置在步骤412接收并解压缩被请求的信息块。使用对象OA的本地副本和收到的信息块数据,本地装置在步骤413重组OB的本地副本。图4B示出图4A步骤413的具体示例。过程在步骤414继续,其中本地装置A把重建对象初始化为空。在步骤415,基于对步骤404接收的列表考虑,选择下一(签名,信息块长度)对(SigBi,LenBi)。在步骤416,装置A检查在步骤417选择的签名SigBi是否匹配在步骤403期间计算的任一签名。如果匹配,执行在步骤417继续,其中对应的本地信息块被附加到重建对象中。如果不匹配,则被接收及解压缩的远程信息块在步骤418附加于重建对象上。在步骤419,本地装置A测试是否已处理了在步骤404接收的所有(签名,信息块长度)对。如果没有,执行在步骤415继续。否则,在步骤420使用重建对象来替代装置A上对象OA的旧副本。示例递归式签名传送过程流图5A和5B是示出根据本发明的至少一方面安排的用于在示例RDC过程中签名和信息块长度列表的递归传送的过程流的示图。可把以下所述的过程应用于尝试更新共同关联对象的本地和远程装置。图5A的左侧示出了在本地装置A上操作的步骤501-513,而图5A的右侧示出了在远程装置B上操作的步骤551-556。步骤501-513替换图4A中的步骤404,而步骤551-556替换图4A中的步骤454。在步骤501和551中,本地装置A和远程装置B分别独立地计算在步骤402/403和452/453已分别计算的其签名和信息块长度列表((SigA1,LenA1)……(SigAk,LenAk))和((SigB1,LenB1)……(SigBn,LenBn))的递归式指纹。在步骤502和552装置把其相应的签名和信息块长度列表拆分成递归式信息块,且在步骤503和553为每个递归式信息块分别计算递归式签名(例如SHA)。在步骤554,装置B向装置A发送在步骤552和553中计算的递归式签名和信息块长度列表,而装置A在步骤504接收该信息。在步骤505,本地装置A把被请求的递归式信息块的列表初始化为空列表,并把远程递归式信息块的跟踪远程递归式偏移初始化为零。在步骤506,基于对步骤504收到列表的考虑,选择下一(递归式签名,递归式信息块长度)对(RSigBi,RLenBi)。在步骤507,装置A检查在步骤506选定的递归式签名RSigBi是否与其在步骤503期间计算的任一递归式签名匹配。如果匹配,执行在步骤509继续。如果不匹配,追踪远程递归式信息块偏移,且字节长度RLenBi在步骤508添加到请求列表。在步骤509,追踪远程递归式偏移增加当前递归式信息块的长度RLenBi。在步骤510,本地装置A测试是否已处理了在步骤504收到的所有(递归式签名,递归式信息块长度)对。如果没有,执行在步骤506继续。否则,递归式信息块请求列表在步骤511被紧密编码、压缩、并发送到远程装置B。远程装置B在步骤555接收递归式信息块的经压缩列表、解压缩该列表,然后在步骤556压缩并送回递归式信息块数据。本地装置在步骤512接收并解压缩被请求的递归式信息块数据。使用签名和信息块长度列表((SigA1,LenA1)……(SigAk,LenAk))的本地副本和收到的递归式信息块数据,本地装置在步骤513重组签名和信息块长度列表((SigB1,LenB1)……(SigBn,LenBn))的本地副本。然后执行在图4A中的步骤405上继续。图5B示出了图5A步骤513的详细示例。过程在步骤514继续,其中本地装置A把远程签名和信息块长度列表SIGCL初始化为空列表。在步骤515,基于对在步骤504收到列表的考虑选择下一(递归式签名,递归式信息块长度)对(RSigBi,RLenBi)。在步骤516,装置A检查在步骤515选定的递归式签名RSigBi是否与步骤503期间其计算的任一递归式签名匹配。如果匹配,执行在步骤517继续,其中装置A将对应的本地递归式信息块附加到SIGCL。如果不匹配,在步骤518把远程接收的递归式信息块附加到SIGCL。在步骤519,本地装置A测试是否已处理在步骤504收到的所有(递归式签名,递归式信息块长度)对。如果没有,执行在步骤515继续。否则,签名和信息块信号列表((SigB1,LenB1)……(SigBn,LenBn))的本地副本在步骤520被设定为SIGCL的值。然后执行回到图4A中的步骤405继续。可任选地估算递归式签名和信息块长度列表以确定是否必需附加的递归式远程差分压缩以使带宽利用最少,如前所述。通过用RDC过程的另一实例替换步骤504和554来使用所述拆分过程等等,直到达到所需的压缩级别,递归式签名和信息块长度列表可递归地加以压缩。当递归式签名列表充分压缩之后,为了如前在所述远程和本地装置之间的传送返回递归式签名列表。图6是图形地示出根据实例实施例安排的示例RDC序列中递归压缩示例的示图。如图6所示的示例,原始对象是9.1GB的数据。使用拆分过程编译签名和信息块长度列表,其中签名和信息块长度列表导致三百万个信息块(或42MB的尺寸)。在第一次递归步骤后,签名列表被拆分成三万三千个信息块,并减少为尺寸为33KB的递归式签名和递归式信息块长度列表。通过递归地压缩签名列表,可显著地减少用来传送签名列表的带宽利用,从42MB下降到约395KB。示例对象更新图7是示出根据本发明的至少一方面安排的使用示例RDC过程进行客户机和服务器应用的交互的示图。在服务器和客户机两者上的原始文件都包含有文本“Thequickfoxjumpedoverthelazybrowndog.Thedogwassolazythathedidn’tnoticethefoxjumpingoverhim.”。随后,服务器上的文件被更新为“Thequickfoxjumpedoverthelazybrowndog.Thebrowndogwassolazythathedidn’tnoticethefoxjumpingoverhim.”。如前所述,客户机周期性地请求文件作更新。客户机和服务器都把对象(文本)拆分成如图所示的信息块。在客户机上,信息块为“Thequickfoxjumped”、“overthelazybrowndog.”、“Thedogwassolazythathedidn’tnotice”、以及“thefoxjumpingoverhim.”;生成的客户机签名列表为SHA11、SHA12、SHA13、以及SHA14。在服务器上,信息块为“Thequickfoxjumped”、“overthelazybrowndog.”、“Thebrowndogwas”、“solazythathedidn’tnotice”、以及“thefoxjumpingoverhim.”;生成的服务器签名列表为SHA21、SHA22、SHA23、SHA24、以及SHA25。服务器使用如前所述的递归式压缩技术传送签名列表(SHA21-SHA25)。客户机确认本地存储的签名列表(SHA11-SHA14)与收到的签名列表(SHA21-SHA25)不匹配,并向服务器请求遗漏的信息块3和4。服务器压缩并传送信息块3和4(“Thebrowndogwas”、和“solazythathedidn’tnotice”)。客户机接收经压缩信息块、解压缩它们、并更新文件,如图7所示。拆分信息块分析通过优化用于拆分对象数据和/或拆分签名和信息块长度列表的拆分信息块过程,可提高以上所述的基本RDC过程的效率。基本RDC过程具有由以下诸项之和标识的网络通信额外开销成本(S1)|来自B的签名和信息块长度|=|OB|*|SigLen|/C,其中|OB|是对象OB的字节长度,SigLen是(签名,信息块长度)对的字节长度、以及C是期望平均信息块的字节长度;以及(S2)∑chunk_length(信息块长度),其中(签名,信息块长度)∈来自B的签名,且签名来自A的签名因此通信成本获益于平均的大信息块尺寸、以及远程和本地信息块之间的大交集。选择如何把对象拆分成信息块确定了协议的质量。本地和远程装置必需无预先通信地同意在何处拆分对象。以下描述并分析用来找出拆分点的各种方法。假设拆分算法已知以下特征1.松弛字节(slack)用于调和文件差异所需要的信息块字节数。假设有序列s1、s2和s3,并通过连接形成两个序列s1s3、s2s3。这两个序列生成信息块Chunks1和Chunks2。如果Chunks1’和Chunks2’分别是从Chunks1和Chunks2直到抵达第一个共同后缀的信息块长度的和,松弛字节由以下公式给出slack=Chunks1’-|s1|=Chunks2’-|s2|2.平均信息块尺寸C当对象OA和OB有S段都共同具有平均尺寸K,可在客户机上本地获得的信息块数量由以下给出且以上的(S2)改写为因而,使松弛字节最少的拆分信息块算法将使经网络传送的字节数最少。因此使用使预计的松弛字节最少的拆分信息块算法是有利的。指纹函数所有的拆分信息块算法都使用取决于小窗口(即有限字节序列)的指纹函数或散列(hash)。当那些算法适合有限差分(强度缩减)优化时,用于拆分信息块的散列算法的执行时间不依赖散列窗口尺寸。因而,对于尺寸为k的散列窗口,仅使用b0、bk、以及#[b0,b1,...,bk-1]来计算散列#[b1,...,bk-1,bk]应当是容易的(仅需一定数量的步骤)。可采用各种散列函数,诸如使用Rabin多项式的散列函数、以及基于预先计算的随机数表格(table)显得计算更为有效的其它散列函数。在一示例中,可使用基于滚动求校验和的32位Adler散列作为指纹的散列函数。该过程通过使用带有256个条目的固定表格提供相当好的随机散列函数,其中表格的每个条目是预先计算的16位随机数。使用该表格把指纹字节转换成16位随机数。32位散列被拆分成两个16位数sum1和sum2,它们由以下过程更新sum1+=table[bk]-table[b0]sum2+=sum1-k*table[b0]在另一示例中,可使用具有循环位移的64位随机散列作为指纹的散列函数。循环位移的周期由散列值的尺寸进行限制。因而,使用64位散列值来设定散列周期为64。更新散列的过程如下给出hash=hash^((table[b0]<<1)|(table[b0]>>u))^table[bk];hash=(hash<<1)|(hash>>63);where1=k%64并且u=64-1在又一示例中,可采用其它位移方法来提供指纹。直接循环位移产生有限长度的周期,并受散列值尺寸的限制。其它置换有更长的周期。例如,由循环(1230)(5678910111213144)(16171819202115)(2324252622)(282927)(3130)给出的置换具有长度为4*3*5*7*11=4620的周期。使用右位移以及随后的修补每个间隔开始位置的操作,可计算该示例置换的单个应用。分析用于以预定模式拆分信息块的现有技术通过用预定窗口尺寸k(=48)计算指纹散列,并基于散列字节的子集是否匹配预定模式来标识拆分点,可确定初步的拆分信息块方法。有了随机散列值,该模式也可以为0,且相关子集也可以是散列的前缀。在基本指令中,这翻译成以下形式的谓词CutPoint(hash)≡0==(hash&((1<<c)-1))其中c是要相匹配的字节数。由于给定随机散列函数匹配的概率为2-c,导致平均信息块尺寸C=2c。然而,最小和最大的信息块尺寸都不由该过程确定。如果给予的最小信息块长度为m,则平均信息块尺寸为C=m+2c期望松弛字节的粗略估算通过考虑流s1s3和s2s3获取。s1和s2中的拆分点可出现在任意位置。由于平均信息块长度是C=m+2c,s1和s2中最后拆分点的约(2c/C)2部分将在距离m之外。它们将作为在约为2c的松弛。剩下的1-(2c/C)2作为长度约为C的松弛。期望松弛将约为(2c/C)3+(1-(2c/C)2)*(C/C)=(2c/C)3+1-(2c/C)2,它具有对于m=2c-1的总体最小值,其值约为23/27=0.85。更精确的分析将对剩下的1-(2c/C)2部分给出较低的估算,但仍需要对s3中距离m内的拆分点作补偿,这些出发点用于更高的估算。因而,现有技术的期望松弛约为0.85*C。过滤器上拆分信息块(新技术)过滤器上拆分信息块基于固定一过滤器(长度为m的模式序列),并根据该过滤器匹配指纹散列序列。当过滤器不允许散列序列匹配过滤器的前缀和后缀时,可推断任何两个匹配之间的最小距离必须至少为m。可从现有技术中使用的CutPoint(拆分点)谓词中获取示例过滤器,通过把第一个m-1模式设定为0!=(hash&((1<<c)-1))并将最后的模式设定为0==(hash&((1<<c)-1))匹配该过滤器的概率由(1-p)m-1p给出,其中p为2-c。可计算期望信息块长度由匹配过滤器概率的倒数给出(要求过滤器不允许序列匹配前缀和后缀两者),因而示例过滤器的期望长度为(1-p)-m+1p-1。当设定p=1/m时该长度最小化,且它变为约(e*m)。如本领域技术人员可查证的,平均松弛在0.8左右徘徊。该方法的可选实施例使用直接用原始输入工作的模式,而不使用滚动散列。本地最大极限上的信息块拆分(新技术)本地最大极限上的信息块拆分基于选择限制界限(horizon)内最大的拆分点位置。以后,我们将使用h作为界限的值。如果在偏移offset-h,...,offset-1,以及offset+1,...,offset+h的散列值比offset上的散列值都小,我们说在位置offset上的散列是h-本地最大极限。换言之,从h向左和向右的所有位置都具有较小的散列值。本领域技术人员将理解本地最大极限可由本地最小极限或任何其它基于米制的比照进行替换(诸如“与散列中值最接近”)。对于尺寸为n的对象的本地最大极限集可在由2·n次操作限制的时间内进行计算,从而计算本地最大极限集的成本接近于基于独立拆分信息块计算拆分点的成本,或者与其相同。使用本地最大极限生成的信息块总是具有对应于h的最小尺寸,其平均尺寸约为2h+1。CutPoint(拆分点)过程如图8和9所示,并如下所述1.分配长度为h的阵列M,其中阵列的条目用记录{isMax=false,hash=0,offset=0}({isMax=假,散列=0,偏移=0})进行初始化。每个域的第一条目(isMax)指示候选对象是否是本地最大极限。第二个域条目(hash)指示关联于该条目的散列值,并初始化为零(或可选地,初始化为最大的可能散列值)。条目中最后的域(offset)字节中指示向候选对象的绝对偏移进入指纹对象。2.把阵列M的最小和最大偏移初始化为零。这些变量指向当前正在使用的阵列的第一个和最后的元素。3.Cutpoint(hash,offset)在图8中的步骤800上开始,并在对象的每次偏移中调用以更新M并返回指示特定偏移是否是拆分点的结果。过程通过在步骤801设定结果=假开始。在步骤803,过程检查是否M[max].offset+h+1=offset。如果该条件为真,执行在步骤804继续,其中执行以下分配结果设定为M[max].isMax,,且max设定为(max-1)%h。然后执行在步骤805继续。如果步骤803上的条件为假,执行在步骤805继续。在步骤805,过程检查是否M[min].hash>hash。如果该条件为真,执行在步骤806上继续,其中min设定为min-1%h。执行继续到步骤807,其中M[min]设定为{isMax=false,hash=hash,offset=offset}({isMax=假,散列=散列,偏移=偏移}),且到步骤811,返回经计算结果。如果步骤805上的条件为假,执行在步骤808上继续,其中过程检查是否M[min].hash=hash。如果该条件为真,执行在步骤807继续。如果步骤808上的条件为假,执行在步骤809上继续,其中过程检查是否min=max。如果该条件为真,执行在步骤810继续,其中M[min]设定为{isMax=true,hash=hash,offset=offset}({isMax=真,散列=散列,偏移=偏移})。然后执行在步骤811上继续,返回经计算结果。如果步骤809上的条件为假,执行在步骤811上继续,其中min设定为(min+1)%h。然后执行回到步骤805上继续。4.当CutPoint(散列,偏移)返回为真时,情形将为在位置offset-h-1上的偏移是新的拆分点。本地最大极限过程的分析带有n个字节的对象通过调用CutPointn次进行处理,从而最多有n个条目插入给定对象中。每重复一次在步骤805开始的循环去除一个条目,从而不会有超过n个条目删除。因而,对于每个条目可进入处理循环一次,且重复的组合次数最多可为n次。这隐含了对CutPoint的每次调用循环中的平均步骤数比2略小,且计算拆分点的步骤数不依赖h。由于来自元素的散列值形成min和max之间的递减链,我们将看到min和max之间的平均距离(|min-max|%h)由h的自然对数给出。未包括在M中两个相邻条目之间的偏移具有小于等于两个条目的散列值。这种链的平均长度由递归等式f(n)=1+1/n*∑k<nf(k)给出。长度n间隔上的最长递减链的平均长度比从最大元素位置开始的最长递减链的平均长度大1,其中最大元素可以1/n的概率在任意位置找到。递归关系具有对应于调和数Hn=1++++....+1/n的解答,这可通过把Hn代入等式并执行n的归纳来验证。Hn与n的自然对数成比例。因而,尽管阵列M被分配以尺寸h,在任一次中只会使用尺寸的一小部分1n(h)。只要数间的距离保持在h之内,用模数h计算min和max允许M的使用间距的任意增长。M初始值额的选择隐含了拆分点可在前h个偏移中产生。可改写算法以避免这些前h个偏移上的拆分点。由该过程生成的信息块的期望尺寸约为2h+1。我们从给定位置是拆分点的概率获取该数字。假设散列具有m个不同的可能值。然后概率可由以下公式确定∑0≤k<m1/m(k/m)2h近似地使用积分∫0≤x<m1/m(x/m)2hdx=1/(2h+1)指示当m足够大时的概率。概率可进行更精确地计算,首先把和简化为(1/m)2h+1∑0≤k<mk2h它使用Bernoulli数Bk扩展为(1/m)2h+11/(2h+1)∑0≤k<2h(2h+1)!/k!(2h+1-k)!Bkm2h+1-k非零的仅有的Bernoulli奇数是B1,具有-的对应值。Bernoulli偶数满足等式H∞(2n)=(-1)n-122n-1π2nB2n/(2n)!等式左边代表无限和1+(1/2)2n+(1/3)2n+...,对n的偶数中值它非常接近于1。当m比h大得多时可忽略除第一项的所有项,如通过积分可见。它们可由0与1之间的常数乘以与hk-1/mk成比例的项给出。第一项(其中B0=1)简化为1/(2h+1)。(第二项为-1/(2m,第三项为h/(6m2))。)对于期望松弛的粗略估算考虑流s1s3和s2s3。s1和s2中的最后拆分点可出现在任意位置。由于平均信息块长度约为2h+1,最后拆分点的约1/4在s1和s2中都将在距离h之内。它们将作为约7/8h上的拆分点。在另一1/2的情形中,一个拆分点将在距离h之内,而另一个则落于距离h之外。这些作为约3/4h上的拆分点。s1和s2中的最后拆分点剩下的1/4部分将在大于h的距离上。因此期望松弛约为*7/8+*3/4+*=0.66。因此,我们独立拆分信息块方法的期望松弛是0.66*C,它是对现有技术的(0.85*C)的改进。有标识拆分点的可选方法,该方法需要执行平均较少的指令,而使用最多与h成比例的、或平均为1nh的空间。以上过程在长度为n的流中的每个位置0..n-1插入条目。可选过程中的基本思路是仅当在长度为h的间隔中遭遇递增链元素时进行更新。我们观察到每个间隔上平均仅有1nh个这种更新。此外,通过比较两个长度为h的连续间隔中的本地最大极限,可确定两个本地最大极限中的每一个是否也是h本地最大极限。在可选过程中有一特征;它需要通过以尺寸为h的块来遍历该流来计算递增链,其中每个块沿反方向遍历。在该可选过程中(见图10、11),为了简便我们假设散列流作为序列给出。子例程CutPoint在长度为h(在图中扩展为“horizon”)的每个子序列中得到调用。它返回零个或被确定为拆分点的一个偏移。仅有对插入的调用的1n(h)将通过第一次测试。通过根据A中最大条目来测试偏移上的散列值,可完成对A的插入。可最优化更新A[k]和B[k].isMax两者的循环,使得在循环体中仅执行一次测试。B[l].hash<=A[k].hash和B[l].isMax的情形在两个循环中处理,第一个循环根据B[l].hash检查散列值直到它不小于,第二个循环更新A[k]。其它情形可使用仅更新A[k]随后更新B[l].isMax的循环来处理。每次对CutPoint的调用需要对A的平均1nh次存储器写入,以及关于找出最大极限的循环提升h+1nh比较。通过平均最多有1nh个步骤的二进制检索或从索引0开始对B的遍历,可执行对A[k].isMax的最后更新。每次对CutPoint的调用还需要在更新窗口中的last(最后)位置上重新计算滚动散列。这需要像滚动散列窗口的尺寸一样多的步骤。经改进拆分信息块算法的观察优点最小的信息块尺寸在如上所述的本地最大极限和过滤器方法中建立。常规实现需要最小信息块尺寸单独用额外参数提供。基于本地最大值(或数学)方法产生可测量的更佳松弛估算,其翻译成经网络的进一步压缩。过滤器方法还产生比常规方法更佳的松弛性能。两种新方法都有拆分点的位置属性。在s3中界限之外的所有拆分点将是流s1s3和s2s3的拆分点。(换言之,考虑流s1s3,如果p是≥|s1|+界限的位置且p是s1s3中的拆分点,则它也是s2s3的拆分点。相同的属性反向保持(对称),如果p是s2s3中的拆分点,则它也是s1s3的拆分点。)对于常规方法情形则不同,其中拆分点在某些最小信息块尺寸之外的要求会有不利的干扰。可选数学函数尽管上述的拆分信息块过程描述了使用本地最大极限计算定位拆分点的装置,本发明不受限制。可安排任何数学函数来检查可能的拆分点。通过估算位于界限窗口内假想拆分点附近的散列值,可估算每个可能的拆分点。散列值的估算由数学函数完成,该数学函数可包括定位界限内最大值、定位界限内最小值、估算散列值之间的差值、估算散列值的差值、以及根据随机常数比较结果的至少之一,以及某些其它数学或统计函数。如前所述的用于本地最大极限的特定数学函数是二进制谓词“_>_”。当p是对象中的偏移时,如果对于所有的k,hashp>hashk,,其中p-horizon≤k<p,或者p<k≤p+horizon,p被选为拆分点。然而,二进制谓词>可用任何数学函数替换,不背离本发明精神。以上说明书、示例和数据提供了对本发明组成的制造和使用的完整描述。由于可作成本发明的许多实施例而不背离本发明的精神和范围,本发明驻留于所附权利要求书。权利要求1.一种用于经网络在本地装置和远程装置间更新对象的系统,其特征在于,包括一装置,用于在所述远程装置上第一对象的每个字节偏移上计算第一指纹函数;一装置,用于基于所述第一指纹函数在所述远程装置上拆分所述第一对象;一装置,用于计算关联于所述远程装置上所述第一对象的每个信息块的远程签名;一装置,用于在所述远程装置上产生远程签名和信息块长度列表,其中所述远程签名和信息块长度列表关联于所述第一对象;一装置,用于在所述本地装置上第二对象的每个字节偏移上计算第二指纹函数,其中所述第一对象和第二对象彼此相关联,且所述第一指纹函数与所述第二指纹函数相匹配;一装置,用于基于所述第二指纹函数在所述本地装置上拆分所述第二对象,其中用于拆分所述远程装置上所述第一对象的装置与用于拆分所述本地装置上所述第二对象的装置相匹配;一装置,用于计算关联于所述本地装置上所述第二对象的每个信息块的本地签名,其中用于计算所述本地签名的装置与用于计算所述远程签名的装置相匹配;一装置,用于在所述本地装置上产生本地签名和信息块长度列表,其中所述本地签名和信息块长度列表关联于所述第二对象;一装置,用于谈判经网络的所述远程签名和信息块长度列表从所述远程装置到所述本地装置的经拆分传送,从而使得用于把所述远程签名和信息块长度列表传送到所述本地装置的带宽使用为最少;一装置,用于通过在所述本地装置上比较所述本地签名和信息块长度列表与远程签名和信息块长度列表,来标识所述第一对象和所述第二对象的差异;一装置,用于当由所述本地装置标识出了所述第一对象和所述第二对象的差异时,来请求从所述远程装置传送至少一个经更新的对象信息块;一装置,用于经网络从所述远程装置把至少一个经更新的对象信息块传送到所述本地装置;以及一装置,用于以所述至少一个经更新的对象信息块来重组所述本地装置上所述第一对象的副本。2.如权利要求1所述的系统,其特征在于,还包括一装置,用于请求来自所述远程装置的所述第一对象的更新。3.如权利要求1所述的系统,其特征在于,还包括一装置,用于请求来自所述本地装置的所述第一对象的更新。4.如权利要求1所述的系统,其特征在于,谈判所述远程签名和信息块长度列表的经拆分传送包括从所述远程装置把所述远程签名和信息块长度列表的至少一部分传送到所述本地装置。5.如权利要求1所述的系统,其特征在于,所述本地装置和所述远程装置之一是客户机,且所述本地装置和所述远程装置的另一个是服务器。6.如权利要求1所述的系统,其特征在于,所述网络是以下的至少之一直接接线链接、并行端口、串行端口、USB端口、IEEE1394端口、无线链接、IR端口、蓝牙端口、有线网络、无线网络、局域网、广域网、超广域网、互联网、内联网、以及外联网。7.如权利要求1所述的系统,其特征在于,用于计算与所述本地装置上第二对象相关联的每个信息块的所述本地签名的所述装置包括应用于所述本地装置上信息块的强散列函数。8.如权利要求1所述的系统,其特征在于,用于标识所述本地装置上第一对象和第二对象间差异的所述装置包括一装置,用于比较所述远程签名和信息块长度列表与本地签名和信息块长度列表;一装置,用于标识所述远程签名和信息块长度列表与本地签名和信息块长度列表之间的至少一个差异;一装置,用于把所述至少一个差异映射到所述远程签名和信息块长度列表;以及一装置,用于从所述至少一个差异与所述远程签名和信息块长度列表之间的映射中标识所述至少一个经更新的对象信息块。9.如权利要求1所述的系统,其特征在于,用于在所述远程装置上第一对象的每个偏移字节上计算所述第一指纹函数的所述装置包括一装置,用于提供指向关联于所述第一对象的每个字节位置周围的小窗口;一装置,用于使用每个字节位置上的所述小窗口来产生指纹。10.如权利要求9所述的系统,其特征在于,还包括一装置,用来基于以下的至少一个而调整关联于所述小窗口的窗口尺寸关联于所述第一对象的数据类型、关联于所述第二对象的数据类型、关联于所述远程装置的环境限制、关联于所述本地装置的环境限制、所述网络的特征、关联于所述第一对象的使用模型、以及关联于所述第二对象的使用模型。11.如权利要求1所述的系统,其特征在于,所述第一指纹函数包括以下至少一个使用Rabin多项式的散列函数、循环位移散列函数、32位Adler散列函数。12.如权利要求1所述的系统,其特征在于,用于拆分所述远程装置上所述第一对象的所述装置包括用来确定至少一个拆分参数的装置。13.如权利要求12所述的系统,其特征在于,用于拆分所述远程装置上所述第一对象的所述装置还包括一装置,用于从所述至少一个拆分参数确定拆分界限;一装置,用于在所述第一对象内的每个位置上计算散列值;一装置,用于把数学函数应用到位于所述第一对象内每个位置周围的所述拆分界限内的散列值;一装置,用于当满足所述数学函数时指定拆分点与拆分边界的至少一个;一装置,用于以所述经指定的拆分点来拆分所述第一对象。14.如权利要求13所述的系统,其特征在于,所述数学函数包括以下的至少一个确定所述界限内的最大值、确定所述界限内的最小值、以及估算所述界限内散列值之间的差异。15.如权利要求12所述的系统,其特征在于,用于拆分所述远程装置上所述第一对象的所述装置还包括一装置,用于从所述至少一个拆分参数来确定界限、触发值、以及其它触发器的列表;一装置,用于计算所述第一对象中每个位置上的散列值;一装置,用于把数学函数应用在每个经计算的散列值上;一装置,用于在数学函数获得给定偏移上的所述触发值并获得由所述界限给出的所有对应偏移上的其它触发值时,指定拆分点拆分边界的至少之一;一装置,用于以所述经指定的拆分点来拆分所述第一对象。16.如权利要求13所述的系统,其特征在于,所述数学函数包括以下的至少之一把散列值映射成布尔值的谓词、以及把散列值分成适当小范围的另一数学函数。17.如权利要求12所述的系统,其特征在于,还包括一装置,用以基于以下至少之一来调整所述至少一个拆分参数关联于所述第一对象的数据类型、关联于所述第二对象的数据类型、关联于所述远程装置的环境限制、关联于所述本地装置的环境限制、所述网络的特征、关联于所述第一对象的使用模型、以及关联于所述第二对象的使用模型。18.如权利要求1所述的系统,其特征在于,还包括一装置,用于接收对所述远程装置上至少一个经更新对象信息块的传送的请求;一装置,用以响应于收到的对所述至少一个经更新对象信息块的传送的请求,从所述远程装置上的第二对象提取所述至少一个经更新对象信息块;一装置,用于经网络以所述远程装置发送所述至少一个经更新对象信息块;一装置,用于从网络以所述本地装置接收所述至少一个经更新对象信息块;以及一装置,用于以所述至少一个经更新对象信息块来更新所述本地装置上的第一对象。19.如权利要求18所述的系统,其特征在于,用于更新所述第一对象的所述装置被安排以在所述本地装置上提供新对象,其中所述新对象包括所述至少一个经更新对象信息块。20.如权利要求1所述的系统,其特征在于,还包括一装置,用于从网络以所述本地装置接收所述至少一个经更新对象信息块;以及一装置,用于以所述至少一个经更新对象信息块在所述本地装置上组建经更新第一对象。21.如权利要求20所述的系统,其特征在于,用于组建所述经更新第一对象的所述装置被进一步安排使得所述经更新第一对象包括来自所述第一对象的至少一个未经改变的信息块。22.如权利要求1所述的系统,其特征在于,用于谈判所述远程签名和信息块长度列表经网络从所述远程装置到所述本地装置的经拆分传送的所述装置包括一装置,用于拆分所述远程装置上的所述远程签名和信息块长度列表,以提供经拆分远程签名和信息块长度列表;一装置,用于为关联于所述远程装置上经拆分远程签名和信息块长度列表的每个信息块计算递归式远程签名;一装置,用于以所述递归式远程签名和所述经拆分远程签名和信息块长度列表来生成所述远程装置上的递归式远程签名和信息块长度列表;一装置,用于拆分所述本地装置上的所述本地签名和信息块长度列表,其中用于拆分所述本地签名和信息块长度列表的所述装置与用于拆分所述远程签名和信息块长度列表的所述装置相匹配;一装置,用于为关联于所述本地装置上经拆分本地签名和信息块长度列表的每个信息块计算递归式本地签名,其中用于计算所述递归式本地签名的所述装置与用于计算所述递归式远程签名的所述装置相匹配;一装置,用于以所述递归式本地签名和所述经拆分本地签名和信息块长度列表来生成所述本地装置上的递归式本地签名和信息块长度列表,其中用于生成所述递归式本地签名和信息块长度列表的所述装置与用于生成所述递归式远程签名和信息块长度列表的所述装置相匹配;一装置,用于谈判所述递归式远程签名和信息块长度列表经网络从所述远程装置到所述本地装置的传送,从而使得用于把所述递归式远程签名和信息块长度列表传送到所述本地装置的带宽使用为最少;一装置,用于在所述本地装置上标识所述递归式远程签名和信息块长度列表与所述递归式本地签名和信息块长度列表的差异;一装置,用于当由所述本地装置标识出了所述递归式远程签名和信息块长度列表与所述递归式本地签名和信息块长度列表的差异时,来请求从所述远程装置传送至少一个经更新的签名信息块;一装置,用于经网络从所述远程装置把至少一个经更新签名信息块传送到所述本地装置,其中所述被请求的至少一个经更新签名信息块与所述远程签名和信息块长度列表相关联;以及一装置,用于以所述至少一个经更新签名信息块在所述本地装置上组建所述远程签名和信息块长度列表的副本。23.如权利要求22所述的系统,其特征在于,用于谈判所述递归式远程签名和信息块长度列表从所述远程装置到所述本地装置的传送的所述装置包括经网络把所述递归式远程签名和信息块长度列表的至少一部分从所述远程装置发送到所述本地装置。24.如权利要求22所述的系统,其特征在于,用于拆分所述远程装置上远程签名和信息块长度列表的所述装置包括一装置,用于计算所述远程装置上所述远程签名和信息块长度列表的每个字节偏移上的第三指纹函数;一装置,用以基于所述第三指纹函数来拆分所述远程装置上的远程签名和信息块长度列表,以提供经拆分的远程签名和信息块长度列表。25.如权利要求24所述的系统,其特征在于,用于拆分所述本地装置上本地签名和信息块长度列表的所述装置包括一装置,用于计算所述本地装置上所述本地签名和信息块长度列表的每个字节偏移上的第四指纹函数,其中所述第四指纹函数与所述第三指纹函数相匹配;一装置,用以基于所述第四指纹函数来拆分所述本地装置上的本地签名和信息块长度列表,以提供经拆分的本地签名和信息块长度列表,其中用于拆分所述本地装置上的所述本地签名和信息块长度列表与用于拆分所述远程装置上的所述远程签名和信息块长度列表相匹配。26.如权利要求24所述的系统,其特征在于,用于计算所述第三指纹函数的所述装置以及用于拆分所述远程装置上远程签名和信息块长度列表的所述装置采用了与用于计算所述第一指纹函数的所述装置以及用于拆分所述远程装置上所述第一对象的所述装置不同的方法。27.如权利要求24所述的系统,其特征在于,用于计算所述第三指纹函数的所述装置以及用于拆分所述远程装置上远程签名和信息块长度列表的所述装置采用了与用于计算所述第一指纹函数的所述装置以及用于拆分所述远程装置上所述第一对象的所述装置相同的方法。28.如权利要求24所述的系统,其特征在于,用于计算所述远程装置上所述远程签名和信息块长度列表的每个字节偏移上所述第三指纹函数的所述装置包括一装置,用于提供指向关联于所述远程签名和信息块长度列表的每个字节位置周围的小窗口;一装置,用于使用每个字节位置上的所述小窗口来产生指纹。29.如权利要求28所述的系统,其特征在于,还包括一装置,用来基于以下的至少一个而调整关联于所述小窗口的窗口尺寸关联于所述第一对象的数据类型、关联于所述第二对象的数据类型、关联于所述远程装置的环境限制、关联于所述本地装置的环境限制、所述网络的特征、关联于所述第一对象的使用模型、以及关联于所述第二对象的使用模型。30.如权利要求24所述的系统,其特征在于,所述第三指纹函数包括以下至少一个使用Rabin多项式的散列函数、循环位移散列函数、32位Adler散列函数。31.如权利要求22所述的系统,其特征在于,用于拆分所述远程装置上所述远程签名和信息块长度列表的所述装置包括用来确定至少一个递归式拆分参数的装置。32.如权利要求31所述的系统,其特征在于,用于拆分所述远程装置上所述远程签名和信息块长度列表的所述装置还包括一装置,用于从所述至少一个递归式拆分参数确定递归式拆分界限;一装置,用于在所述远程签名和信息块长度列表内的每个位置上计算散列值;一装置,用于把数学函数应用到位于所述远程签名和信息块长度列表内每个位置周围的所述递归式拆分界限内的散列值;一装置,用于当满足所述数学函数时指定拆分边界中的拆分点;一装置,用于以所述经指定拆分点来拆分所述远程签名和信息块长度列表。33.如权利要31所述的系统,其特征在于,用于拆分所述远程装置上所述远程签名和信息块长度列表的所述装置包括一装置,用于从所述至少一个递归式拆分参数来确定递归式界限、递归式触发值、以及其它递归式触发器的列表;一装置,用于计算所述远程签名和信息块长度列表中每个位置上的散列值;一装置,用于把数学函数应用在每个经计算散列值上;一装置,用于在数学函数获得给定偏移上的所述递归式触发值并获得由所述递归界限给出的所有对应偏移上的其它递归式触发值时,指定拆分点和拆分边界的至少之一;一装置,用于以所述经指定拆分点来拆分所述远程签名和信息块长度列表。34.如权利要求32所述的系统,其特征在于,所述数学函数包括以下的至少之一把散列值映射成布尔值的谓词、以及把散列值分成适当小范围的另一数学函数。35.如权利要求32所述的系统,其特征在于,所述数学函数包括以下的至少之一确定所述界限内的最大值、确定所述界限内的最小值、以及估算所述界限内散列值之间的差异、累加所述界限内的散列值、以及计算所述界限内散列值的中值。36.如权利要求33所述的系统,其特征在于,还包括一装置,用以基于以下至少之一来调整所述至少一个递归式拆分参数关联于所述第一对象的数据类型、关联于所述第二对象的数据类型、关联于所述远程装置的环境限制、关联于所述本地装置的环境限制、所述网络的特征、关联于所述第一对象的使用模型、以及关联于所述第二对象的使用模型。37.如权利要求29所述的系统,其特征在于,用于计算与所述远程装置上经拆分远程签名和信息块长度列表相关联的每个签名信息块的所述递归式远程签名的所述装置包括应用于所述远程装置上签名信息块的强散列函数。38.如权利要求22所述的系统,其特征在于,还包括一装置,用于接收对所述远程装置上至少一个经更新签名信息块的传送的请求;一装置,用以响应于收到的对所述至少一个经更新签名信息块的传送的请求,从所述远程装置上的远程签名和信息块长度列表提取所述至少一个经更新签名信息块;一装置,用于经网络以所述远程装置发送所述至少一个经更新签名信息块;一装置,用于从网络以所述本地装置接收所述至少一个经更新签名信息块;以及一装置,用于以所述至少一个经更新签名信息块在所述本地装置上组建远程签名和信息块长度列表的副本。39.如权利要求38所述的系统,其特征在于,用于组建所述本地签名和信息块长度列表的所述装置被安排以在所述本地装置上提供所述远程签名和信息块长度列表的新副本,其中所述远程签名和信息块长度列表的新副本包括所述至少一个经更新签名信息块。40.如权利要求22所述的系统,其特征在于,还包括一装置,用于从网络以所述本地装置接收所述至少一个经更新签名信息块;以及一装置,用于以所述至少一个经更新签名信息块来组建所述本地装置上所述远程签名和信息块长度列表的副本。41.如权利要求38所述的系统,其特征在于,用于组建所述远程签名和信息块长度列表副本的所述装置被进一步安排使得所述所述远程签名和信息块长度列表副本包括来自所述本地签名和信息块长度列表的至少一个未经改变的信息块。42.如权利要求22所述的系统,其特征在于,用于标识所述本地装置上所述递归式远程签名和信息块长度列表与所述递归式本地签名和信息块长度列表间差异的所述装置包括一装置,用于比较所述递归式远程签名和信息块长度列表与所述递归式本地签名和信息块长度列表;一装置,用于标识关联于所述递归式远程签名和信息块长度列表与所述递归式本地签名和信息块长度列表之间差异的至少一个签名信息块;一装置,用于把所述至少一个签名信息块映射到所述远程签名和信息块长度列表;以及一装置,用于从所述至少一个签名信息块与所述远程签名和信息块长度列表之间的映射中标识所述至少一个经更新签名信息块。43.如权利要求1所述的系统,其特征在于,用于谈判所述远程签名和信息块长度列表经网络从所述远程装置到所述本地装置的经拆分传送的所述装置包括一装置,用以基于以下至少之一来确定用于递归处理的迭代次数关联于所述第一对象的数据尺寸、关联于所述第二对象的数据尺寸、关联于所述远程装置的环境限制、关联于所述本地装置的环境限制、所述网络的特征、关联于所述第一对象的使用模型、关联于所述第二对象的使用模型、关联于所述第一对象的信息块签名数量、以及关联于所述经拆分远程签名和信息块长度列表的信息块签名数量。44.如权利要求43所述的系统,其特征在于,还包括一递归过程,用于处理签名和信息块长度列表,它包括一装置,用于拆分所述签名和信息块长度列表以提供经拆分签名和信息块长度列表;一装置,用于计算关联于所述经拆分签名和信息块长度列表的每个信息块的递归式签名;一装置,用于以所述递归式签名与所述经拆分签名和信息块长度列表来生成递归式签名和信息块长度列表;一装置,用于在需要附加迭代来进行递归处理时把所述签名和信息块长度列表初始化为所述递归式签名和信息块长度列表;以及一装置,用于在所述递归过程已完成了迭代次数时,返回所述递归式签名和信息块长度列表;一装置,用于通过向所述递归过程传递所述远程签名和信息块长度列表作为签名和信息块长度列表,并通过返回来自所述递归式过程的递归式远程签名和信息块长度列表,来以所述递归式过程在所述远程装置上处理所述远程签名和信息块长度列表;以及一装置,用于通过向所述递归过程传递所述本地签名和信息块长度列表作为签名和信息块长度列表,并通过返回来自所述递归过程的递归式本地签名和信息块长度列表,来以所述递归式过程在所述本地装置上处理所述本地签名和信息块长度列表。45.如权利要求1所述的系统,其特征在于,用于在所述远程装置上生成所述远程签名和信息块长度列表的所述装置被进一步安排以紧密地编码所述远程签名和信息块长度列表。46.如权利要求1所述的系统,其特征在于,用于在所述本地装置上生成所述本地签名和信息块长度列表的所述装置被进一步安排以紧密地编码所述本地签名和信息块长度列表。47.如权利要求22所述的系统,其特征在于,用于在所述远程装置上生成所述递归式远程签名和信息块长度列表的所述装置被进一步安排以紧密地编码所述递归式远程签名和信息块长度列表。48.如权利要求22所述的系统,其特征在于,用于在所述本地装置上生成所述递归式本地签名和信息块长度列表的所述装置被进一步安排以紧密地编码所述递归式本地签名和信息块长度列表。49.一种具有计算机可执行指令的计算机可读介质,所述指令用于经通信介质在本地装置和远程装置之间更新对象,其特征在于,包括在所述远程装置上拆分第一对象;为关联于所述远程装置上所述第一对象的每个信息块计算签名,以提供远程签名;从所述远程签名组合所述远程装置上的远程签名和信息块长度列表;通过以下各项生成所述远程装置上的递归式远程签名和信息块长度列表在所述远程装置上拆分所述远程签名和信息块长度列表;为关联于所述远程装置上所述经拆分远程签名和信息块长度列表的每个信息块计算签名,以提供递归式远程签名;以所述递归式远程签名组合所述远程装置上的递归式远程签名和信息块长度列表;在所述本地装置上拆分第二对象;为关联于所述本地装置上所述第二对象的每个信息块计算签名,以提供本地签名;从所述本地签名组合所述本地装置上的本地签名和信息块长度列表,从而当所述第一对象匹配于所述第二对象时,使所述本地签名和信息块长度列表与所述远程签名和信息块长度列表相匹配;通过以下生成所述本地装置上的递归式本地签名和信息块长度列表拆分所述本地签名和信息块长度列表;为关联于所述经拆分本地签名和信息块长度列表的每个信息块计算签名,以提供递归式本地签名;以所述递归式本地签名组合所述递归式本地签名和信息块长度列表;谈判经通信介质将所述递归式远程签名和信息块长度列表从所述远程装置到所述本地装置的传送,从而使用于所述递归式远程签名和信息块长度列表向所述本地装置的传送的带宽使用为最少;通过以下各项标识所述第一对象与第二对象之间的至少一个差异比较所述本地装置上的所述递归式远程签名和信息块长度列表以及所述递归式本地签名和信息块长度列表以标识差异;以及把所述差异映射到关联于所述第二对象的至少一个信息块;以及通过以下在所述本地装置上更新所述第一对象请求从所述远程装置传送至少一个信息块;经通信介质接收来自所述远程装置的传送,其中所述传送包括所述至少一个信息块;以及以所述至少一个信息块组合一对象。50.如权利要求49所述的计算机可读介质,其特征在于,拆分所述远程装置上的所述第一对象包括把一指纹函数应用到所述第一对象以生成第一个指纹集,并基于所述第一个指纹集把所述第一对象分割成第一个信息块集。51.如权利要求50所述的计算机可读介质,其特征在于,拆分所述本地装置上的所述第二对象包括把所述指纹函数应用到所述第二对象以生成第二个指纹集,并基于所述第二个指纹集把所述第二对象分割成第二个信息块集。52.如权利要求49所述的计算机可读介质,其特征在于,所述通信介质是以下的至少之一直接接线链接、并行端口、串行端口、USB端口、IEEE1394端口、无线链接、IR端口、蓝牙端口、有线网络、无线网络、局域网、广域网、超广域网、互联网、内联网、以及外联网。53.如权利要求49所述的计算机可读介质,其特征在于,所述指纹函数包括提供指向所述第一对象的每个字节位置周围的窗口;以及从位于所述窗口内的字节值计算散列;54.如权利要求53所述的计算机可读介质,其特征在于,还包括基于以下的至少一个而调整关联于所述窗口的窗口尺寸关联于所述第一对象的数据类型、关联于所述第二对象的数据类型、关联于所述远程装置的环境限制、关联于所述本地装置的环境限制、所述通信介质的特征、关联于所述第一对象的使用模型、以及关联于所述第二对象的使用模型。55.如权利要求49所述的计算机可读介质,其特征在于,标识所述第一对象和所述第二对象之间的至少一个差异还包括基于所述差异标识所述远程装置上经更新签名信息块;请求经所述通信介质将所述经更新签名信息块从所述远程装置到所述本地装置的传送;从所述通信介质在所述本地装置上接收所述经更新签名信息块;以及以所述经更新签名信息块在所述本地装置上组合经更新签名和信息块长度列表。56.如权利要求55所述的计算机可读介质,其特征在于,把所述差异映射到关联于所述第二对象的至少一个信息块包括比较所述经更新签名和信息块长度列表与本地签名和信息块长度列表,以在所述远程装置上标识至少一个经更新信息块。57.如权利要求49所述的计算机可读介质,其特征在于,拆分所述远程装置上的远程签名和信息块长度列表包括把指纹函数应用到所述远程签名和信息块长度列表,以生成第一个指纹集并基于所述第一个指纹集把所述远程签名和信息块长度列表分割成第一个信息块集。58.如权利要求57所述的计算机可读介质,其特征在于,拆分所述远程装置上的本地签名和信息块长度列表包括把指纹函数应用到所述本地签名和信息块长度列表,以生成第二个指纹集并基于所述第二个指纹集把所述本地签名和信息块长度列表分割成第二个信息块集。59.如权利要求57所述的计算机可读介质,其特征在于,所述指纹函数包括提供指向所述远程签名和信息块长度列表的每个字节位置周围的窗口;以及从位于所述窗口内的字节值计算散列值。60.如权利要求59所述的计算机可读介质,其特征在于,还包括基于以下的至少一个而调整关联于所述窗口的窗口尺寸关联于所述第一对象的数据类型、关联于所述第二对象的数据类型、关联于所述远程装置的环境限制、关联于所述本地装置的环境限制、所述通信介质的特征、关联于所述第一对象的使用模型、以及关联于所述第二对象的使用模型。61.如权利要求60所述的计算机可读介质,其特征在于,拆分所述远程装置上所述远程签名和信息块长度列表包括确定至少一个递归式拆分参数;从所述至少一个递归式拆分参数确定至少一个递归式界限和至少一个递归式触发值;在所述远程签名和信息块长度列表中的每个位置上计算散列值;把一数学函数应用在每个经计算散列值;当所述数学函数在给定偏移上获得所述至少一个递归式触发值时,指定拆分边界;以所述指定拆分点拆分所述远程签名和信息块长度列表。62.如权利要求61所述的计算机可读介质,其特征在于,所述数学函数被安排为把散列值映射成布尔值的谓词、把散列值分割为小范围的第一函数、确定所述界限内最大值的第二函数、确定所述界限内最小值的第三函数、估算所述界限内散列值之间差异的第四函数、累加所述界限内散列值的第五函数、以及计算所述界限内散列值的中值的第六函数。63.如权利要求61所述的计算机可读介质,其特征在于,还包括基于以下的至少一个而调整所述至少一个递归式拆分参数关联于所述第一对象的数据类型、关联于所述第二对象的数据类型、关联于所述远程装置的环境限制、关联于所述本地装置的环境限制、所述通信介质的特征、关联于所述第一对象的使用模型、以及关联于所述第二对象的使用模型。64.一种用于经一通信信道在本地装置和远程装置之间更新对象的计算机实现方法,其特征在于,包括在所述远程装置上拆分第一对象;为关联于所述远程装置上所述第一对象的每个信息块计算签名,以提供远程签名;从所述远程签名组合所述远程装置上的远程签名和信息块长度列表;基于所述经计算的指纹函数拆分所述本地装置上的第二对象;为关联于所述本地装置上所述第二对象的每个信息块计算签名,以提供本地签名;从所述本地签名组合所述本地装置上的本地签名和信息块长度列表,从而当所述第一对象匹配于所述第二对象时,使所述本地签名和信息块长度列表与所述远程签名和信息块长度列表相匹配;通过以下提供所述本地装置和远程装置上的递归式过程,其中所述递归式过程被安排以处理指定的签名和信息块长度列表拆分所述指定的签名和信息块长度列表以提供经拆分签名和信息块长度列表;为关联于所述经拆分签名和信息块长度列表的每个信息块计算递归式签名;以所述递归式签名与经拆分签名和信息块长度列表生成所述递归式签名和信息块长度列表;在需要附加迭代来进行递归处理时把所述指定的签名和信息块长度列表初始化为所述递归式签名和信息块长度列表;以及在所述递归式过程已完成了所要求的迭代次数时,返回所述递归式签名和信息块长度列表;通过向所述递归式过程传递所述远程签名和信息块长度列表作为指定的签名和信息块长度列表,并通过返回来自所述递归式过程的递归式远程签名和信息块长度列表,来在所述远程装置上生成所述递归式远程签名和信息块长度列表;以及通过向所述递归式过程传递所述本地签名和信息块长度列表作为签名和信息块长度列表,并通过返回来自所述递归式过程的递归式本地签名和信息块长度列表,来在所述本地装置上生成所述递归式本地签名和信息块长度列表;经所述通信信道把所述递归式远程签名和信息块长度列表从所述远程装置发送到所述本地装置;通过比较收到的递归式远程签名和信息块长度列表与递归式本地签名和信息块长度列表,标识所述第一对象和所述第二对象之间的至少一个差异;基于所述至少一个差异来标识关联于所述第二对象的至少一个经更新信息块;以及通过以下更新所述本地装置上的所述第一对象请求从所述远程装置传送至少一个经更新信息块;经所述通信信道接收来自所述远程装置的传送,其中所述传送包括所述至少一个经更新信息块;以及以所述至少一个经更新信息块组合一对象。65.如权利要求64所述的计算机实现方法,其特征在于,拆分所述远程装置上的所述第一对象包括把一指纹函数应用到所述第一对象以生成第一个指纹集,并基于所述第一个指纹集把所述第一对象分割成第一个信息块集。66.如权利要求65所述的计算机实现方法,其特征在于,拆分所述本地装置上的所述第二对象包括把所述指纹函数应用到所述第二对象以生成第二个指纹集,并基于所述第二个指纹集把所述第二对象分割成第二个信息块集。67.如权利要求64所述的计算机实现方法,其特征在于,所述通信信道是以下的至少之一直接接线链接、并行端口、串行端口、USB端口、IEEE1394端口、无线链接、IR端口、蓝牙端口、有线网络、无线网络、局域网、广域网、超广域网、互联网、内联网、以及外联网。68.如权利要求64所述的计算机实现方法,其特征在于,基于所述至少一个差异来标识关联于所述第二对象的至少一个信息块包括标识与所述递归式本地签名和信息块长度列表不同的接收到的所述递归式远程签名和信息块传递列表的至少一个递归式信息块;把所述至少一个递归式信息块映射为所述远程签名和信息块传递列表的至少一个信息块;请求从所述远程装置传送所述远程签名和信息块长度列表的至少一个信息块;接收经所述通信信道来自所述远程装置的传送,其中所述传送包括所述远程签名和信息块长度列表的至少一个信息块;以及以接收到的所述远程签名和信息块长度列表的至少一个信息块组合经更新签名和信息块长度列表。69.如权利要求68所述的计算机实现方法,其特征在于,基于所述至少一个差异标识关联于所述第二对象的至少一个信息块包括比较所述经更新签名和信息块长度列表与本地签名和信息块长度列表,以在所述远程装置上标识至少一个经更新信息块。70.如权利要求64所述的计算机实现方法,其特征在于,拆分所述指定签名和信息块长度列表包括把一指纹函数应用到所述指定签名和信息块长度列表,以生成一指纹集并基于所述指纹集把所述指定签名和信息块长度列表分割成信息块集。71.如权利要求70所述的计算机实现方法,其特征在于,所述指纹函数包括提供指向关联于所述指定签名和信息块长度列表的每个字节位置周围的窗口;以及从位于所述窗口内的字节值计算散列值。72.如权利要求71所述的计算机实现方法,其特征在于,还包括基于以下的至少一个而调整关联于所述窗口的窗口尺寸关联于所述第一对象的数据类型、关联于所述第二对象的数据类型、关联于所述远程装置的环境限制、关联于所述本地装置的环境限制、所述通信信道的特征、关联于所述第一对象的使用模型、以及关联于所述第二对象的使用模型。73.如权利要求64所述的计算机实现方法,其特征在于,拆分所述指定的签名和信息块长度列表以提供经拆分的签名和信息块长度列表包括确定至少一个递归式拆分参数;从所述至少一个递归式拆分参数确定递归式界限、递归式触发值、和递归式触发器列表的至少一个;在所述指定签名和信息块长度列表中的每个位置上计算散列值;把一数学函数应用到位于指定签名和信息块长度列表中每个位置周围的所述拆分界限内的散列值;当满足所述数学函数时,指定拆分点和拆分边界的至少之一;以指定的拆分点拆分所述指定签名和信息块长度列表。74.如权利要求73所述的计算机实现方法,其特征在于,所述数学函数被安排为把散列值映射成布尔值的谓词、把散列值分割为小范围的第一函数、确定所述界限内最大值的第二函数、确定所述界限内最小值的第三函数、估算所述界限内散列值之间差异的第四函数、累加所述界限内散列值的第五函数、以及计算所述界限内散列值的中值的第六函数。75.如权利要求73所述的计算机实现方法,其特征在于,还包括基于以下的至少一个而调整所述至少一个递归式拆分参数关联于所述第一对象的数据类型、关联于所述第二对象的数据类型、关联于所述远程装置的环境限制、关联于所述本地装置的环境限制、所述通信介质的特征、关联于所述第一对象的使用模型、以及关联于所述第二对象的使用模型。76.如权利要求64所述的计算机实现方法,其特征在于,还包括基于以下至少之一来确定用于递归处理所需的迭代次数关联于所述第一对象的数据尺寸、关联于所述第二对象的数据尺寸、关联于所述远程装置的环境限制、关联于所述本地装置的环境限制、所述通信信道的特征、关联于所述第一对象的使用模型、关联于所述第二对象的使用模型、关联于所述第一对象的信息块签名数量、以及关联于所述经拆分远程签名和信息块长度列表的信息块签名数量。77.如权利要求64所述的计算机实现方法,其特征在于,所述用于递归处理的所需迭代次数对应于至少一次迭代。全文摘要本方法和系统涉及经有限带宽网络更新对象。使用远程差分压缩(RDC)技术在两个或多个计算装置间更新对象,使得所需要的数据传送最少。在一方面中,通过把RDC算法递归地应用到对象自己的元数据中可完成大对象的有效传送;在此情形中可使用单个或多个递归步骤以减少由RDC算法经网络发送的元数据量。通过把边界置于经动态确定的位置上,对象和/或签名以及信息块长度列表可得以拆分。一数学函数可估算相对于可能拆分边界的与水平窗口相关联的散列值。所述方法和系统在各种网络化应用中有用,诸如点对点重复符、电子邮件客户机和服务器、客户机侧高速缓存系统、通用复制实用程序、数据库重复符、入口、软件更新服务、文件/数据同步、以及其它。文档编号H04L29/00GK1684464SQ20051005510公开日2005年10月19日申请日期2005年3月15日优先权日2004年4月15日发明者D·特奥多苏,N·S·比恩纳,P·E·博滋曼,Y·谷列维奇申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1