将参考模板同步到数据流的方法和信息处理系统.pdf

上传人:r5 文档编号:4283656 上传时间:2018-09-13 格式:PDF 页数:22 大小:2.02MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410510811.6

申请日:

2014.09.28

公开号:

CN104518850A

公开日:

2015.04.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 1/00申请日:20140928|||公开

IPC分类号:

H04L1/00; G06F17/30

主分类号:

H04L1/00

申请人:

国际商业机器公司

发明人:

K·B·阿加瓦尔; M·A·保利尼

地址:

美国纽约阿芒克

优先权:

14/044,212 2013.10.02 US

专利代理机构:

北京市金杜律师事务所11256

代理人:

酆迅

PDF下载: PDF下载
内容摘要

本发明提供了一种方法,其中,通过给锁步缓冲器和先行缓冲器加载从参考模板中检索的模板数据块,数据流编码器将参考模板重新同步到数据流。数据流编码器确定锁步缓冲器的模板数据不同于数据流数据块,并且转而,保存先行缓冲器中的模板数据块以用于随后的重新同步。转而,数据流编码器对先行缓冲器的保存的模板数据与随后的数据流数据块进行匹配,并且据此将参考模板重新同步到数据流。

权利要求书

权利要求书1.  一种将参考模板同步到数据流的方法,所述方法包括: 由一个或多个处理器给第一缓冲器加载第一数据块并且给第二 缓冲器加载第二数据块,所述第一数据块和所述第二数据块从参考 模板中被检索; 响应于确定所述第一数据块不同于包含在数据流中的数据流数 据块,由所述一个或多个处理器中的至少一个处理器保存所述第二 缓冲器中的所述第二数据块;以及 响应于确定保存的所述第二数据块与包含在所述数据流中的随 后的数据流数据块相匹配,由所述一个或多个处理器中的至少一个 处理器将所述参考模板同步到所述数据流。 2.  根据权利要求1所述的方法,其中所述同步包含基于对应于 所述第二缓冲器的先行指针位置更新对应于所述第一缓冲器的锁步 指针位置。 3.  根据权利要求2所述的方法,进一步包括: 响应于所述第一数据块不同于所述数据流数据块的所述确定: 使所述锁步指针位置前进;和 禁止所述先行指针位置前进。 4.  根据权利要求2所述的方法,其中在加载所述第一缓冲器和 所述第二缓冲器之前,所述方法进一步包括: 确定将从所述参考模板中排除的最大的潜在的模板数据部分; 基于所述最大的潜在的模板数据部分大小配置先行偏移值;以 及 基于所述锁步指针位置和所述先行偏移值设置所述先行指针位 置。 5.  根据权利要求4所述的方法,其中响应于所述锁步指针位置 的更新,基于更新的所述锁步指针位置和所述先行偏移值更新所述 先行指针位置。 6.  根据权利要求2所述的方法,进一步包括: 响应于保存的所述第二数据块与所述随后的数据流数据块相匹 配: 编码包含所述先行指针位置的指针信息;和 发送编码的所述指针信息给接收方计算机系统。 7.  根据权利要求6所述的方法,进一步包括: 由所述接收方计算机系统解码编码的所述指针信息;和 由所述接收方计算机系统根据解码的所述指针信息从接收方参 考模板中检索接收方模板数据。 8.  根据权利要求1所述的方法,其中所述数据流数据块被包含 在数据流消息中,所述方法进一步包括: 标识对应于所述数据流消息的消息类型;和 基于标识的所述消息类型,从多个参考模板中选择所述参考模 板。 9.  根据权利要求8所述的方法,其中所述随后的数据流数据块 在另外的数据部分之后,所述另外的数据部分包含在所述数据流消 息中并且不包含在所述参考模板中。 10.  根据权利要求8所述的方法,其中所述第二数据块在模板 数据部分之后,所述模板数据部分包含在所述参考模板中并且不包 含在所述数据流消息中。 11.  根据权利要求1所述的方法,其中所述第二数据块是所述 数据流数据块的两倍宽,所述方法进一步包括: 响应于从所述参考模板中检索的多个第二数据块与包含在所述 数据流中的多个随后的数据流数据块的匹配,执行所述同步。 12.  一种信息处理系统,包括: 一个或多个处理器; 可访问所述一个或多个处理器中至少一个处理器的多个缓冲 器; 耦合到所述一个或多个处理器中至少一个处理器的存储器; 存储在所述存储器中并且由所述一个或多个处理器中至少一个 处理器执行的指令组,以便执行包括以下各项的动作: 给第一缓冲器加载第一数据块并且给第二缓冲器加载第二 数据块,其中所述第一数据块和所述第二数据块从参考模板中被 检索,所述第一缓冲器和所述第二缓冲器包含在所述多个缓冲器 中; 响应于确定所述第一数据块不同于包含在数据流中的数据 流数据块,保存所述第二缓冲器中的所述第二数据块;以及 响应于确定保存的所述第二数据块与包含在所述数据流中 的随后的数据流数据块相匹配,将所述参考模板同步到所述数据 流。 13.  根据权利要求12所述的信息处理系统,其中所述同步包含 基于对应于所述第二缓冲器的先行指针位置更新对应于所述第一缓 冲器的锁步指针位置。 14.  根据权利要求13所述的信息处理系统,其中响应于所述第 一数据块不同于所述数据流数据块的所述确定,在由所述一个或多 个处理器中至少一个处理器执行时,所述指令组执行包括以下各项 的进一步的动作: 使所述锁步指针位置前进;和 禁止所述先行指针位置前进。 15.  根据权利要求13所述的信息处理系统,其中在加载所述第 一缓冲器和所述第二缓冲器之前,在由所述一个或多个处理器中至 少一个处理器执行时,所述指令组执行包括以下各项的进一步的动 作: 确定将从所述参考模板中排除的最大的潜在的模板数据部分; 基于所述最大的潜在的模板数据部分大小配置先行偏移值;以 及 基于所述锁步指针位置和所述先行偏移值设置所述先行指针位 置。 16.  根据权利要求13所述的信息处理系统,其中响应于保存的 所述第二数据块与所述随后的数据流数据块相匹配,在由所述一个 或多个处理器中至少一个处理器执行时,所述指令组执行包括以下 各项的进一步的动作: 编码包含所述先行指针位置的指针信息;和 发送所述编码的指针信息给接收方计算机系统。

说明书

说明书将参考模板同步到数据流的方法和信息处理系统
技术领域
本发明涉及具有先行同步的差分编码器。更具体地,本发明涉 及响应于检测到参考模板不再与数据流消息同步、使用先行缓冲器 将参考模板重新同步到数据流消息的差分编码器。
背景技术
企业数据中心可以用于服务多种不同类型的工作负载,包括可 以起源于企业的客户端的客户工作负载以及支持企业的业务流程的 组织工作负载。通常,客户和组织工作负载的处理要求跨数据中心 的内部和/或外部数据网络的大量的数据和消息的通信。
在企业数据中心环境中,并且更一般地,在许多数据处理环境 中,网络带宽是限制可以利用数据处理环境的资源来执行的有用工 作量的稀缺资源。因此,已经研发了各种各样的技术以降低用于存 储和/或传达消息和/或数据文件的带宽和存储要求。这些技术包含以 比其原始的未压缩的形式更加紧凑的形式表示数据(例如消息或数 据文件)的数据压缩。
常用的压缩技术包含运行长度编码(RLE)、算术编码、Huffman 编码、基于字典的编码和增量编码。增量编码将数据表达为参考数 据与要被编码的数据之间的差异。参考数据与要被编码的数据之间 的差异然后可以代替要被编码的数据被存储或发送。
发明内容
根据本发明的一个实施例,提供了一种方法,其中,通过给锁 步缓冲器和先行缓冲器加载从参考模板中检索的模板数据块,数据 流编码器将参考模板重新同步到数据流。数据流编码器确定锁步缓 冲器的模板数据不同于数据流数据块,并且转而,保存先行缓冲器 中的模板数据块以用于随后的重新同步。转而,数据流编码器对先 行缓冲器的保存的模板数据与随后的数据流数据块进行匹配,并且 据此将参考模板重新同步到数据流。
前述内容是概要,因而必然含有对细节的简化、概括和省略; 因此,本领域技术人员应理解,本概要仅仅是说明性的,并且不旨 在以任何方式进行限制。仅由权利要求所限定的本发明的其它方面、 发明特征和优点在下面阐述的非限制性详细描述中将变得显而易 见。
附图说明
通过参照附图,本发明可以被更好地理解,并且对于本领域技 术人员其众多的目的、特征和优点变得显而易见,其中:
图1是示出发送基于比较数据流消息与参考模板编码的差分数 据的数据流编码器的一个示例的图;
图2是示出包含针对各种消息类型采集的、其转而用于确定消 息类型模板和针对每个消息类型的先行缓冲器偏移的消息类型数据 的示例性表格的图;
图3A是示出使用缓冲器比较模板数据块与数据流数据块的先 行比较器的一个示例的图;
图3B是示出在失去同步之后重新同步到数据流消息的参考模 板的一个示例的图;
图4A是示出同步到不包含模板数据块的数据流消息的参考模 板的一个示例的图;
图4B是示出在失去同步之后重新同步到数据流消息的参考模 板的一个示例的图;
图5是示出在生成用于消息类型的参考模板以及存储先行偏移 值以对应参考模板中所采取的步骤的流程图;
图6是示出用于基于参考模板编码数据流所采取的步骤的一个 示例的流程图;
图7是示出由数据流解码器采取以解码编码的差分数据流的步 骤的示例的流程图;
图8是本文所描述的方法可在其中实现的数据处理系统的框图; 以及
图9提供了对图8中示出的信息处理系统环境的扩展,以说明 本文中所描述的方法可以在种类广泛的信息处理系统上执行,该信 息处理系统是在网络环境中操作的。
具体实施方式
本文中所使用的术语仅仅是为了描述特定实施例的目的,并且 不旨在于限制本发明。如本文中所使用的,单数形式“一”、“一 个”和“该”旨在也包含复数形式,除非上下文另外明确指示。将 进一步理解的是,术语“包括”和/或“其包括”在该说明书中被使 用时指定所陈述的特征、整数、步骤、操作、元件和/或部件的存在, 但是不排除一个或多个其它特征、整数、步骤、操作、元件、部件 和/或它们的组的存在或增加。
如特别要求的,在下面的权利要求中的所有装置或步骤加功能 元件的对应结构、材料、行为和等效物旨在包含用于结合其它要求 的元件执行功能的任何结构、材料或行为。对本发明的描述已经为 了说明和描述的目的而给出,但是不旨在是穷举式的或者限于以所 公开形式的发明。在不脱离本发明的范围和精神的情况下,对于本 领域普通技术人员来说许多修改和变化将是显而易见的。实施例被 选择和描述,以便最好地解释本发明的原理和实际应用,并且以使 得其他本领域普通技术人员能够将用于具有各种修改的各种实施例 的本发明理解为适合于所考虑的特定用途。
如将由本领域技术人员理解的,本发明的方面可以被体现为系 统、方法或计算机程序产品。据此,本发明的方面可以采取在本文 中一般可以全部被称为“电路”、“模块”或“系统”的完全硬件 实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者 组合软件和硬件方面的实施例的形式。此外,本发明的方面可以采 取体现在具有计算机可读程序代码体现在其上的一个或多个计算机 可读介质(或多个介质)中的计算机程序产品的形式。
可以利用一个或多个计算机可读介质的任意组合。计算机可读 介质可以是计算机可读信号介质或者计算机可读存储介质。计算机 可读存储介质可以是例如(但不限于)电子的、磁的、光学的、电 磁的、红外线的或半导体系统、装置或设备,或者前述的任何合适 组合。计算机可读存储介质的更具体示例(非穷举式列表)将包含 以下各项:具有一条或多条导线的电连接、便携式计算机磁盘、硬 盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编 程只读存储器(EPROM或闪速存储器)、光纤、便携紧缩盘只读存 储器(CD-ROM)、光存储设备、磁存储设备或者前述的任何合适 组合。在本文档的上下文中,计算机可读存储介质可以是能够含有 或存储用于由指令执行系统、装置或设备或者与它们连接使用的程 序的任何有形介质。
计算机可读信号介质可以包括具有计算机可读程序代码体现在 其中的传播数据信号,例如,在基带中或作为载波的一部分。这样 的传播信号可以采取各种各样形式中的任一个,包含(但不限于) 电磁的、光学的或者其任何合适组合。计算机可读信号介质可以是 其不是计算机可读存储介质并且可以传达、传播或者传输用于由指 令执行系统、装置或设备或者与它们连接使用的程序的任何计算机 可读介质。
体现在计算机可读介质上的程序代码可以使用任何适当的介质 来发送,包含(但不限于)无线、有线、光纤电缆、RF等、或者前 述的任何合适组合的。
用于执行针对本发明方面的操作的计算机程序代码可以以一个 或多个编程语言的任意组合来编写,包含诸如Java、Smalltalk,C++ 等之类的面向对象的编程语言以及诸如“C”编程语言或类似编程语 言之类的传统的过程编程语言。程序代码可以作为独立的软件包完 全在用户的计算机上、部分在用户的计算机上、部分在用户的计算 机上并且部分在远程计算机上或者完全在远程计算机或服务器上执 行。在后面的情景中,远程计算机可以通过任意类型的网络连接到 用户的计算机,包含局域网(LAN)或广域网(WAN),或者可以 进行到外部计算机的连接(例如,通过使用互联网服务提供商的互 联网)。
下面参照根据本发明实施例的方法、装置(系统)和计算机程 序产品的流程图图示和/或框图来描述本发明的方面。将理解的是, 流程图图示和/或框图的每个方框以及在流程图图示和/或框图中的 方框的组合可以由计算机程序指令来实现。这些计算机程序指令可 以被提供给通用计算机、专用计算机或其它可编程数据处理装置的 处理器以产生机器,使得经由计算机或其它可编程数据处理装置的 处理器执行的指令创建用于实现在流程图和/或框图方框或多个方框 中指定的功能/行为的装置。
这些计算机程序指令还可以被存储在可以引导计算机、其它可 编程数据处理装置或其它设备以特定方式起作用的计算机可读介质 中,使得存储在计算机可读介质中的指令产生一件包含实现在流程 图和/或框图方框或多个方框中指定的功能/行为的指令的制造品 (manufacture)。
计算机程序指令还可以被加载到计算机、其它可编程数据处理 装置或其它设备上以使得一系列操作步骤在计算机、其它可编程装 置或其它设备上被执行以产生计算机实现的过程,使得在计算机或 其它可编程装置上执行的指令提供用于实现在流程图和/或框图方框 或多个方框中指定的功能/行为的过程。
附图中的流程图和框图图示了根据本发明各种实施例的系统、 方法和计算机程序产品的可能实施方式的架构、功能和操作。就这 一点而言,流程图或框图中的每个方框均可以表示包括用于实现指 定的逻辑功能(或多个功能)的一个或多个可执行指令的代码的模 块、段或一部分。还应当注意的是,在一些备选实施方式中,在方 框中提到的功能可以不按附图中提到的顺序发生。例如,取决于所 涉及的功能,连续示出的两个方框实际上可以大致同时被执行,或 者有时方框可以以相反的顺序被执行。还应注意的是,框图和/或流 程图图示中的每个方框以及在框图和/或流程图图示中的方框的组合 可以由执行指定功能或行为的特殊用途的基于硬件的系统或者特殊 用途的硬件和计算机指令的组合来实现。
以下详细描述将整体遵循如上面阐述的发明内容,根据需要进 一步解释和展开对本发明的各种方面和实施例的限定。
图1是示出发送基于对输入的数据流消息与参考模板进行比较 而编码的差分数据的数据流编码器的一个示例的图。数据流编码器 100接收包含各种数据流消息132、134和136(例如,简单对象访 问协议(SOAP)消息)的数据流130。数据流编码器100包含标识 各个消息132至136各自的消息类型(例如,消息类型A)并且从 模板存储145中检索对应参考模板的先行比较器110。转而,先行比 较器110将检索的参考模板中的数据块(例如,一组模板数据的字 节)同步到数据流消息中的数据块(例如,流数据的字节)。在一 个实施例中,基于对相同消息类型的消息之间的共同内容的分析来 预生成参考模板(对于进一步的细节,见图2和对应正文)。
数据流编码器100依照指针编码或者文字编码(数据流字节中 的文字被直接编码)来编码输入的数据流130中的数据块。指针编 码对指针信息进行编码(例如,在参考模板中的位置和参考模板中 匹配字节的数目),并且提供增加的数据压缩,因为指针编码要求 较少的位以编码数据流中相同数目的数据字节。此外,指针编码要 求数据流位置与参考模板中对应位置之间的同步。
为了在失去同步之后高效地将数据流消息重新同步到参考模 板,先行比较器110采用利用锁步缓冲器112以及先行缓冲器114 和116的先行同步技术。锁步缓冲器112存储来自对应于锁步指针 122的模板数据位置的模板数据块,并且在与输入的数据流相同的速 率下前进(增量)。先行缓冲器114和116存储来自分别对应于先 行指针124和126的模板数据位置的模板数据块。如本文中所讨论 的,先行指针124和126在锁步缓冲器112被同步到数据流130(匹 配数据)时前进,但是在锁步缓冲器112失去与数据流130的同步 时不前进。因此,先行缓冲器124和/或126存储最终被匹配到数据 流数据130的模板数据块(对于进一步的细节,见图3A、3B、4A、 4B和对应正文)。
在数据流与锁步缓冲器112之间的数据块比较结果是命中(匹 配)时,先行比较器110发送对应于锁步指针122的匹配的指针信 息给编码器150以用于编码。同样,数据流编码器100通过计算机 网络发送作为编码的数据流160的编码的指针信息给数据流解码器 170。在一个实施例中,指针信息包含在参考模板中的位置和匹配的 匹配字节的数目,诸如“在位置132处,16个字节”。
在接收侧,数据流解码器170接收编码的数据流160并且解码 编码的指针信息(经由解码器175)。同样,数据流解码器170基于 解码的指针信息从匹配参考模板140的参考模板180中提取模板数 据字节。转而,数据流解码器170将提取的模板数据传输到后处理 195以用于进一步的处理(解码的数据流190)。
回来参照先行比较器110,在锁步缓冲器112失去与数据流130 的同步时,先行比较器110发送实际的数据流数据给编码器150以 用于编码并用于经由编码的数据流160传输到数据流解码器170。如 下面更详细讨论的,通过匹配存储在先行缓冲器114和/或116中的 模板数据块与随后接收到的数据流数据,先行比较器110将数据流 130重新同步到参考模板140。
图2是示出包含针对各种消息类型采集的、其转而被用于确定 消息类型模板和针对每个消息类型的先行缓冲器偏移的消息类型数 据的示例性表格的图。表200包含针对八个不同消息类型的样本数 据,诸如八个不同的SOAP(简单对象访问协议)消息。列210包含 用于八个不同消息类型的消息类型标识符。列220包含针对每个消 息类型所提取的样本消息的数目,并且列230包含每个消息类型的 平均大小。例如,表200示出1504个消息类型A消息被取样,并且 消息类型A消息的平均大小是23762字节。
列240包含相同消息类型的消息之间的共同内容的量,并且列 250包含共同内容与每个消息类型的平均大小的比值。如所示,消息 类型A消息具有22670字节的共同内容,这相当于95.4%的百分比。 换句话说,通过基于共同内容创建针对消息类型A消息类型的参考 模板,参考模板中95.4%的字节(平均)应当匹配数据流中的消息类 型A消息。
图3A是示出用于比较模板数据块与数据流数据块的先行比较 器110的缓冲器的一个示例的图。在图3A中示出的示例示出,参考 模板140包含十个数据块B1至B10(每个块可以含有多于一个字 节),并且数据流消息136包含相同的十个数据块加上另外的数据 部分300,该另外的数据部分包含五个另外的数据块的。
先行缓冲器114和116从锁步缓冲器112偏移预定义的量(对 于进一步的细节,见图5和对应正文)。图3A示出先行缓冲器114 偏移一个数据块,并且先行缓冲器116偏移七个数据块。在一个实 施例中,先行缓冲器114偏移一个数据块以使得具有另外的数据部 分的数据流消息(图3A中示出的)的迅速重新同步能够进行,并且 在该实施例中,先行缓冲器116偏移的数据块的量对应于不包含在 数据流消息中的最大的潜在的模板数据部分大小(对于进一步的细 节,见图4A、4B和对应正文)。在另一实施例中,先行比较器110 可以使用比本文中所公开的数目更多或更少的先行缓冲器。
在锁步缓冲器112的指针122前进以指向“块2”时,锁步缓冲 器112从模板加载块2数据块。同样地,指针124和126前进,并 且先行缓冲器114加载块3数据块,先行缓冲器116存储块9数据 块。然而,在先行比较器110对锁步缓冲器112的内容与新的块310 进行比较时,先行比较器110确定未命中(miss),并且转而,先行 缓冲器114的指针冻结并且块3保持存储在先行缓冲器114中。同 样地,先行缓冲器116的指针冻结并且块9保持存储在先行缓冲器 116中。然而,因为先行比较器110继续从数据流消息136接收新的 数据块并且试图同步数据流消息136与参考模板140,锁步缓冲器 112的指针继续前进(对于进一步的细节,见图3B和对应正文)。
图3B是示出在失去同步之后重新同步到数据流消息的参考模板 的一个示例的图。图3B示出了前进通过参考模板140的块3、4、5、 6、7和8的锁步缓冲器112,其数据与数据流消息136中随后的数 据块相比较。因为数据流消息136包含另外的数据部分300,数据流 消息136不再与参考模板140同步,从而由先行比较器110生成未 命中。然而,在先行比较器110接收数据流消息136的块3(350) 时,先行比较器110匹配数据流数据块与先行缓冲器114的数据(如 上面讨论的其被冻结)。因此,先行比较器110将锁步缓冲器112 的指针信息更新成先行缓冲器114的指针的信息,并且转而,重新 同步数据流消息136与参考模板140。例如,假设先行缓冲器114 指向参考模板中的位置“632”,先行比较器110更新锁步缓冲器以 指向位置“632”。此外,先行比较器110解冻先行缓冲器,并且将 它们的指针设置成相对于锁步缓冲器的新位置的预定义的先行偏移 值。
图4A是示出同步到不包含模板数据块的数据流消息的参考模 板的一个示例的图。在图4A中示出的示例示出,参考模板400包含 十个数据块(B1至B10),并且数据流消息134包含十个数据块中 的六个(不包含的模板数据部分410不包含在数据流消息134中)。
在锁步缓冲器112存储块2并且先行比较器110比较锁步缓冲 器112的内容与数据流消息134的块6时,先行比较器110确定未 命中,并且转而,缓冲器114的指针冻结并且数据块3保持在先行 缓冲器114中。同样地,先行缓冲器116的指针冻结并且数据块9 保持在先行缓冲器116中。因为先行比较器110从数据流消息134 接收随后的数据块并且试图同步数据流消息136与参考模板140,锁 步缓冲器112的指针继续前进(对于进一步的细节,见图4B和对应 正文)。
图4B是示出在失去同步之后重新同步到数据流消息的参考模板 的一个示例的图。图4B示出了前进通过参考模板400的数据块3、 4和5(先行比较器110将其与数据流消息134的数据块7、8和9 相比较)的锁步缓冲器112。因为数据流消息134不包含数据块2 至5,先行比较器110相对于锁步缓冲器112的内容确定未命中。然 而,在先行比较器110比较数据块9(440)与先行缓冲器116的数 据(如上面讨论的其被冻结)时,先行比较器110确定命中(匹配)。 因此,先行比较器110将锁步缓冲器112的指针信息更新成先行缓 冲器116的指针的信息,并且转而,重新同步数据流消息134与参 考模板400。此外,先行比较器110解冻先行缓冲器,并且将它们的 指针设置成相对于锁步缓冲器的新位置的预定义的先行偏移值。
图5是示出在生成针对消息类型的参考模板以及存储先行偏移 值以对应参考模板时所采取的步骤的流程图。处理开始于500,于是 在510处处理选择第一消息类型。例如,处理可以选择图2中的“消 息类型A”作为第一消息类型。在520处,处理将先行缓冲器1(114) 的偏移值设置成最小偏移值,诸如一个数据块。如本文中所讨论的, 在数据流包含另外的数据部分时,先行缓冲器1114可以被用于重新 同步参考模板与数据流。通过将先行缓冲器1的偏移值配置在最小 值处,重新同步发生在另外的数据部分结束之后不久(对于进一步 的细节,见图3A、3B和对应正文)。
在530处,基于例如在消息类型评估期间找到的共同内容,处 理生成针对所选择的消息类型的模板。例如,图2示出了针对每个 消息类型的共同内容的量(列240),并且基于在分析期间标识的共 同内容,处理生成消息类型模板。如本领域技术人员可以理解的, 参考模板可以使用最长共同子序列提取技术来生成。在一个实施例 中,样本消息中的一个可以被挑选作为模板。
在540处,处理从相同消息类型的不同消息中标识最大的潜在 的不包含的模板数据部分大小(相对于生成的参考模板,其不包含 在不同消息中)。例如,消息类型A的模板可以包含22670字节, 并且在评估期间消息中的一个是22000字节,因为包含在模板中的 670个连续字节不包含在消息中。在该示例中,最大的潜在的不包含 的模板数据部分大小是670字节。
在550处,处理设置比最大的潜在的不包含的模板数据部分大 小更大的(例如,大一个块)缓冲器2(116)的先行偏移值。如本 文中所讨论的,在其中参考模板包含模板数据部分(该部分不包含 在数据流消息中)的情况下,先行缓冲器2被用于重新同步数据流 与参考模板(对于进一步的细节,见图4A、4B和对应正文)。在 一个实施例中,处理可以缓冲器2的先行偏移值设置成小于最大的 潜在的不包含的模板数据部分大小的值,这对于具有大的不包含的 模板数据部分的消息来说可能降低同步性能,但是减少了用于同步 消息与较小的不包含的模板数据部分的时间。在另一实施例中,处 理可以使用具有不同先行偏移值的多于两个的先行缓冲器。
就是否存在更多的消息类型(针对其生成模板并且针对消息类 型配置先行偏移值)做出确定(决策560)。如果存在更多的消息类 型,决策560分支到“是”分支,其循环回去以选择和分析下一个 消息类型。该循环继续,直到处理已经生成模板并且已经针对每个 消息类型配置对应先行偏移值,此时决策560分支到“否”分支, 于是处理结束于570。
图6是示出基于参考模板编码数据流所采取的步骤的一个示例 的流程图。处理开始于600,于是处理接收数据流上的消息,并且在 602处标识消息的消息类型(例如,消息类型A、消息类型B等)。 在605处,处理选择对应于标识的消息类型的参考模板并且设置对 应于消息类型的先行缓冲器偏移。基于指针的对应指针信息,处理 还将模板数据块加载到锁步缓冲器和先行缓冲器中。在一个实施例 中,处理通过计算机网络发送消息类型标识符,所以接收解码器可 以加载对应于消息类型的参考模板,为解码做准备(对于进一步的 细节,见图7和对应正文)。
在步骤610处,处理接收数据流消息中的第一数据块并且比较 数据流数据块与加载在锁步缓冲器(锁步缓冲器112)中的模板值。 就数据流数据是否匹配锁步缓冲器值做出确定(决策615)。如果匹 配存在,决策615分支到“是”分支,于是处理编码由锁步缓冲器 的指针指向的模板数据块位置620。同样,在接收系统的解码器解码 编码的模板数据块位置时,解码器从模板数据块位置检索对应数据 块(对于进一步的细节,见图7和对应正文)。
就数据流消息中是否存在更多的数据块做出确定(决策625)。 如果数据流消息中存在更多的数据块,决策625分支到“是”分支, 于是处理使所有缓冲器指针(锁步指针122以及先行指针124和126) 前进,并且取样数据流中的下一个数据流数据块(630)。另一方面, 如果数据流消息中不存在更多的数据块,决策625分支到“否”分 支,于是就数据流上是否存在更多的数据流消息做出确定(决策 628)。如果存在更多的数据流消息,决策628分支到“是”分支, 其循环回去以接收下一个数据流消息,加载对应参考模板以及加载 对应先行缓冲器偏移值。另一方面,如果数据流已经结束,决策628 分支到“否”分支,于是处理结束于629。
回来参照决策615,在数据流数据与锁步缓冲器值之间不发生匹 配时,决策615分支到“否”分支,于是在640处处理编码数据流 数据块。在645处,处理冻结先行缓冲器(指针),从而维持当前 加载的模板数据块值。
在650处,处理使锁步缓冲器(缓冲器112)前进并且取样下一 个数据流数据块。在655处,处理比较先行缓冲器值与取样的数据 流数据块。在一个实施例中,处理从输入流接收n字节的数据,并 且缓冲器各自包含2n字节的模板数据。在该实施例中,缓冲器中的 比较需要“n+1”个比较,使得比较各自比较模板数据与缓冲器中不 同的连续的n个字节。例如,如果n=8,处理比较输入数据的字节 0至7与缓冲器的字节0至7,然后缓冲器的字节1至8,然后字节 2至9等。
就是否包含在一个缓冲器(锁步或先行)中的一个数据块匹配 取样的数据流数据块做出确定(缓冲器命中,决策660)。如果不存 在缓冲器命中,决策660分支到“否”分支,于是在665处,处理 编码输入流值。在步骤650处,处理取样下一个数据流数据块并且 使锁步缓冲器指针前进(在继续冻结先行缓冲器指针的同时)。
回来参照决策660,在取样的输入流值匹配一个先行缓冲器值 时,决策660分支到“是”分支,于是在670处,处理编码匹配的 先行缓冲器指针的信息(位置和匹配字节的数目)。在一个实施例 中,缓冲器可以是“2n”字节,其中“n”是在输入流中取样的字节 的数目。在该实施例中,处理增量式地检查输入字节的n位与缓冲 器中的2n字节。例如,模板缓冲器可以含有模板的字节48至63(16 字节),并且输入宽度是8字节。在该示例中,处理比较字节48至 55与输入样本,然后字节49至56,然后字节50至57等。在该示 例中,如果在字节50至57处发生匹配,处理编码指针位置“50” (以及诸如匹配字节的数目之类的其它相关的指针信息)。
在685处,通过将锁步缓冲器的指针信息更新成对应于匹配的 先行缓冲器的指针的指针信息,处理重新同步锁步缓冲器与数据流。 在690处,处理解冻先行缓冲器,并且使先行缓冲器从锁步缓冲器 前进到预定义的先行偏移值,以开始取样数据流。在一个实施例中, 处理可以等待以重新同步锁步缓冲器,直到检测到先行缓冲器与数 据流之间的多个连续匹配,以便避免过早的同步。处理然后行进以 确定是否更多数据块和/或消息包含在数据流中(决策625和628), 并且如上面所讨论的,处理数据块和/或更多的消息。
图7是示出由数据流解码器采取以解码编码的差分数据流的步 骤的示例的流程图。处理开始于700,于是在710处,处理接收第一 消息类型标识符和编码的消息。在一个实施例中,数据流在数据头 中包含消息类型标识符,该消息类型标识符指示正接收的编码消息 的类型。在720处,处理选择对应于接收的消息类型标识符(例如, 消息类型A)的参考模板。
在725处,处理解码第一数据块,并且就解码的数据块是否包 含对应于模板数据块位置的指针信息做出确定(决策730)。如果解 码的数据块包含指针信息,决策730分支到“是”分支,于是处理 从模板180中对应模板数据块位置处检索数据块,并且发送检索的 数据块给后处理(740)。
另一方面,如果解码的数据块不是对应于模板数据块位置的指 针信息,而是实际的数据流数据,决策730分支到“否”分支,于 是处理发送解码的数据流数据给后处理(760)。就处理是否已经到 达接收的消息的结尾做出确定(决策770)。如果还没有到达消息的 结尾,决策770分支到“否”分支,于是处理循环回去以解码消息 中的下一个数据块。该循环继续,直到消息已经被处理完,此时决 策770分支到“是”分支,于是就编码的数据流中是否存在更多的 消息要处理做出确定(决策780)。如果存在更多的消息要处理,决 策780分支到“是”分支,其循环回去以接收下一个消息并且基于 下一个消息类型检索参考模板。该循环继续,直到数据流结束,此 时决策780分支到“否”分支,于是处理结束于790。
图8图示了信息处理系统800,其是有执行本文中所描述的计算 操作能力的计算机系统的简化示例。信息处理系统800包含耦合到 处理器接口总线812的一个或多个处理器810。处理器接口总线812 将处理器810连接到北桥(Northbridge)815,其还被称为存储器控 制器中枢(MCH)。北桥815连接到系统存储器820,并且提供用 于处理器(或多个处理器)810访问系统存储器的装置。图形控制器 825也连接到北桥815。在一个实施例中,PCI Express总线818将北 桥815连接到图形控制器825。图形控制器825连接到诸如计算机监 控器之类的显示设备830。
北桥815和南桥(Southbridge)835使用总线819连接到彼此。 在一个实施例中,总线是在北桥815与南桥835之间的每个方向中 高速传递数据的直接媒体接口(DMI)总线。在另一实施例中,外 围部件互连(PCI)总线连接北桥和南桥。南桥835(还被称为I/O 控制器中枢(ICH))是通常实现在比由北桥提供的性能更慢的速度 下操作的性能的芯片。南桥835通常提供用于连接各种部件的各种 总线。这些总线包含例如PCI和PCI Express总线、ISA总线、系统 管理总线(SMBus或SMB)和/或低引脚数(LPC)总线。LPC总线 常常连接诸如引导ROM 896和“旧有”I/O设备(使用“超级I/O” 芯片)之类的低带宽设备。“旧有”I/O设备(898)可以包含例如 串行和并行端口、键盘、鼠标和/或软盘控制器。LPC总线还将南桥 835连接到受信任的平台模块(TPM)895。常常包含在南桥835中 的其它部件包含直接存储器存取(DMA)控制器、可编程中断控制 器(PIC)以及使用总线884将南桥835连接到诸如硬盘驱动器之类 的非易失性存储设备885的存储设备控制器。
快速卡(ExpressCard)855是将热插拔设备连接到信息处理系统 的插槽。快速卡855支持PCI Express和USB连接两者,因为它使 用通用串行总线(USB)和PCI Express总线两者连接到南桥835。 南桥835包含提供USB连接给连接到USB的设备的USB控制器 840。这些设备包含摄像头(相机)850、红外(IR)接收器848、键 盘和触控板844以及提供无线个人区域网络(PAN)的蓝牙设备846。 USB控制器840还提供USB连接给其它杂项USB连接的设备842, 诸如鼠标、可移除的非易失性存储设备845、调制解调器、网卡、ISDN 连接器、传真机、打印机、USB集线器和许多其它类型的USB连接 的设备。虽然可移除的非易失性存储设备845被示出为USB连接的 设备,可移除的非易失性存储设备845也可以使用诸如火线接口等 等之类的不同接口来连接。
无线局域网(LAN)设备875经由PCI或PCI Express总线872 连接到南桥835。LAN设备875通常实现所有使用相同协议以在信 息处理系统800与另一计算机系统或设备之间进行无线通信的空中 调制技术的IEEE 802.11标准之一。光学存储设备890使用串行ATA (SATA)总线888连接到南桥835。串行ATA适配器和设备在高速 串行链路之上进行通信。串行ATA总线还将南桥835连接到诸如硬 盘驱动器之类的其它形式的存储设备。诸如声卡之类的音频电路装 置860经由总线858连接到南桥835。音频电路装置860还提供诸如 音频输入和光学数字音频输入端口862、光学数字输出和耳机插孔 864、内部扬声器866和内部麦克风868之类的功能。以太网控制器 870使用诸如PCI或PCI Express总线之类的总线连接到南桥835。 以太网控制器870将信息处理系统800连接到诸如局域网(LAN)、 因特网和其它公共和私人计算机网络之类的计算机网络。
虽然图8示出了一种信息处理系统,信息处理系统可以采取许 多形式。例如,信息处理系统可以采取台式、服务器、便携式、膝 上型、笔记本或其它形状因子的计算机或数据处理系统的形式。此 外,信息处理系统可以采取诸如个人数字助理(PDA)、游戏设备、 ATM机、便携式电话设备、通信设备或者包含处理器和存储器的其 它设备之类的其它形状因子。
在图8中示出和在本文中所描述的、用于提供安全功能的受信 任的平台模块(TPM 895)只是硬件安全模块(HSM)的一个示例。 因此,本文中所描述和要求的TPM包含任何类型的HSM,包括(但 不限于)符合题为“受信任的平台模块(TPM)规范版本1.2”的受 信任的计算组(TCG)标准的硬件安全设备。TPM是硬件安全子系 统,其可以被并入到任何数目的信息处理系统(诸如在图9中概述 的那些)中。
图9提供了对图8中示出的信息处理系统环境的扩展,以说明 本文中所描述的方法可以在其在网络环境中操作的种类广泛的信息 处理系统上来执行。信息处理系统的类型范围从诸如手持计算机/移 动电话910之类的小型手持设备到诸如主机计算机970之类的大型 主机系统。手持计算机910的示例包含个人数字助理(PDA)、诸 如MP3播放器之类的个人娱乐设备、便携式电视和紧缩盘播放器。 信息处理系统的其它示例包含笔输入或平板电脑920、膝上型或笔记 本电脑930、工作站940、个人计算机系统950和服务器960。在图 9中未单独示出的其它类型的信息处理系统由信息处理系统980表 示。如示出的,各种信息处理系统可以使用计算机网络900被联网 在一起。可以用于互连各种信息处理系统的计算机网络的类型包含 局域网(LAN)、无线局域网(WLAN)、因特网、公共交换电话 网(PSTN)、其它无线网络以及可以用于互连信息处理系统的任何 其它网络拓扑。许多信息处理系统包含诸如硬盘驱动器和/或非易失 性存储器之类的非易失性数据存储。图9中示出的一些信息处理系 统描绘了单独的非易失性数据存储(服务器960利用非易失性数据 存储965,主机计算机970利用非易失性数据存储975,并且信息处 理系统980利用非易失性数据存储985)。非易失性数据存储可以是 在各种信息处理系统外部的部件或者可以是在一个信息处理系统内 部的部件。此外,通过使用诸如将可移除的非易失性存储设备845 连接到USB端口或者信息处理系统的其它连接器之类的各种技术, 可移除的非易失性存储设备845可以在两个或多个信息处理系统之 间共享。
虽然已经示出和描述了本发明的特定实施例,基于本文中的教 导,对于本领域技术人员将是明显的是,在不脱离该发明及其更广 泛方面的情况下可以做出改变和修改。因此,所附权利要求要在它 们的范围内包含所有这些改变和修改,如在该发明的真实精神和范 围内。此外,要理解的是,本发明仅由所附权利要求限定。将由本 领域技术人员理解的是,如果旨在具体数目的引入的权利要求元件, 这种意图将在权利要求中明确记载,并且在缺乏这样的记载的情况 下,没有这样的限制被给出。对于作为对理解的帮助的非限制性示 例,以下所附权利要求含有引入短语“至少一个”和“一个或多个” 的用法,以引入权利要求元件。然而,这些短语的使用不应当被解 释成暗示,权利要求元件通过不定冠词“一”或“一个”的引入将 含有这些引入的权利要求元件的任何特定的权利要求限制于仅仅含 有一个这样的元件的公开内容,即使在相同的权利要求包含引入短 语“一个或多个”或“至少一个”以及诸如“一”或“一个”之类 的不定冠词时;类似情况同样适用于权利要求中对定冠词的使用。

将参考模板同步到数据流的方法和信息处理系统.pdf_第1页
第1页 / 共22页
将参考模板同步到数据流的方法和信息处理系统.pdf_第2页
第2页 / 共22页
将参考模板同步到数据流的方法和信息处理系统.pdf_第3页
第3页 / 共22页
点击查看更多>>
资源描述

《将参考模板同步到数据流的方法和信息处理系统.pdf》由会员分享,可在线阅读,更多相关《将参考模板同步到数据流的方法和信息处理系统.pdf(22页珍藏版)》请在专利查询网上搜索。

本发明提供了一种方法,其中,通过给锁步缓冲器和先行缓冲器加载从参考模板中检索的模板数据块,数据流编码器将参考模板重新同步到数据流。数据流编码器确定锁步缓冲器的模板数据不同于数据流数据块,并且转而,保存先行缓冲器中的模板数据块以用于随后的重新同步。转而,数据流编码器对先行缓冲器的保存的模板数据与随后的数据流数据块进行匹配,并且据此将参考模板重新同步到数据流。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1