收藏 分享(赏)

easidef一种水平化轻量级物联网数据交换协议.doc

上传人:无敌 文档编号:139508 上传时间:2018-03-22 格式:DOC 页数:16 大小:151.50KB
下载 相关 举报
easidef一种水平化轻量级物联网数据交换协议.doc_第1页
第1页 / 共16页
easidef一种水平化轻量级物联网数据交换协议.doc_第2页
第2页 / 共16页
easidef一种水平化轻量级物联网数据交换协议.doc_第3页
第3页 / 共16页
easidef一种水平化轻量级物联网数据交换协议.doc_第4页
第4页 / 共16页
easidef一种水平化轻量级物联网数据交换协议.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、EasiDEF:一种水平化轻量级物联网数据交换协议 侯陈达 李栋 邱杰凡 崔莉 中国科学院计算技术研究所 中国科学院大学 摘 要: 物联网系统中数据交换协议私有化的问题日益突出,异构应用系统之间缺少水平、无缝地交换数据和共享信息的方法.而现有互联网中广泛采用的XML(eXtensible Markup Language)等数据交换协议存在数据冗余和解析复杂的问题,并不适用于资源受限的物联网前端设备.因此文中提出了一种新型的水平化轻量级物联网数据交换协议 EasiDEF.该协议根据环境监测类物联网的应用数据特点,将数据类型分为单次请求数据和周期连续上报数据两种常见形式.针对单次出现的数据请求采用

2、三级压缩机制,包括:(1)一种 XML 文件的序列化方法.该方法基于 XML 标准设计,保证了数据交换的通用性和水平化.同时序列化的操作使得在低功耗设备中应用 XML 成为可能;(2)一种将 XML 文件的字符串标签转化为占用空间小的数值标签的字典映射机制,其中字典的设计面向典型的物联网应用;(3)一种基于 LZW(Lempel-Ziv-Welch)的改进数据压缩算法 EasiLZW,该算法基于物联网应用字典压缩数据,保证协议的轻量性.而针对周期连续上报数据类型,对连续数据传输提出了一种增量式压缩算法.在保证协议低开销的前提下,EasiDEF 可有效压缩 XML 文件,降低数据传输量.实验结果

3、显示 EasiDEF 比传统方法提升了 510 倍的压缩效果,能够在物联网的资源受限环境中支持水平化的数据交换.关键词: 物联网; 水平化; 轻量级; 数据交换协议; 压缩算法; 增量传输; 作者简介:侯陈达,男,1987 年生,博士研究生,中国计算机学会(CCF)学生会员,主要研究方向为嵌入式系统和物联网.E-mail:.作者简介:李栋,男,1979 年生,博士,副研究员,中国计算机学会(CCF)会员,主要研究方向为无线传感器网络和物联网系统.作者简介:邱杰凡,男,1984 年生,博士研究生,中国计算机学会(CCF)学生会员,主要研究方向为嵌入式系统和无线传感器网络.作者简介:崔莉,女,19

4、62 年生,博士,研究员,博士生导师,中国计算机学会(CCF)会员,主要研究领域为传感器技术、无线传感器网络和物联网.收稿日期:2013-07-12基金:国家“九七三”重点基础研究发展规划项目基金(2011CB302803)EasiDEF:A Horizontal Lightweight Data Exchange Protocol for Internet of ThingsHOU Chen-Da LI Dong QIU Jie-Fan CUI Li Institute of Computing Technology,Chinese Academy of Sciences; Abstract

5、: Privatization of the data exchange protocol is a critical problem in the Internet of Things,so heterogeneous systems cannot exchange data and share information seamlessly.Moreover the existing standard protocol like XML is rather heavy load and complicated for the resourceconstrained devices in Io

6、T.Therefore this paper proposes EasiDEF,a new horizontal lightweight data exchange protocol for IoT.According to the data feature of IoT application for environmental monitoring,data types are classified as single request data and periodic continuous reporting data.For the single request data,EasiDE

7、F adopts three-phase compression mechanism,including:(1)a serialization method of XML documents.Based on XML the work ensures interoperability for heterogeneous systems.In addition the serialization operation makes it possible to apply XML in low-power devices;(2)a dictionary mapping mechanism which

8、 transfers long text string of XML documents to short binary value according to typical IoT applications;(3)a LZW-based improved data compression algorithm named EasiLZW,which uses the IoT dictionary in thesecond phase to keep lightweight.Given the periodic continuous reporting data in IoT system,th

9、e paper presents an incremental compression algorithm.Accounting for the requirement of low cost in resource-constrained devices,EasiDEF can significantly compress XML documents and reduce the amount of data transmission.Experimental results show that EasiDEF has a 510times promotion in the compress

10、ion effect compared with conventional methods and supports seamless data exchange in resource-constrained environments.Keyword: Internet of Things; horizontal; lightweight; data exchange format; compression algorithm; incremental transmission; Received: 2013-07-121 引言近年来物联网技术的飞速发展受到了人们的广泛关注.国际电信联盟(I

11、TU)1 指出物联网从功能上能够实现“世界上所有的物体都可以通过因特网主动进行信息交换,实现任何时刻、任何地点、任何物体之间的互联、无所不在的网络和无所不在的计算”.由此可见物联网概念的出现打破了原有物理世界与信息世界相分离的传统结构,使得人们不但能够访问和管理互联网中的虚拟资源,还能够与物理世界中的实体资源互动.但是现有的物联网应用大多为专有应用,运行系统相对封闭,不同系统的数据定义格式不统一,导致异构系统之间难以进行水平、自由的数据交换和信息共享,已经成为物联网发展和产业化进程的瓶颈.因此物联网的应用系统中需要一种新型水平通用的数据交换协议.从另一方面考虑,当前互联网已经成为人们获取和共享

12、信息的主要方式,人们的生活和工作已经离不开互联网.因此越来越多的需求希望能将各种各样的智能物体也连入互联网中,以现有的互联网体系去连接物联网应用,从而大大降低上层应用的开发成本,提高物联网系统的水平性和通用性.但是从目前的研究进展看,物联网应用之间的数据通信和数据交换普遍存在协议隔离和格式差异的问题, 缺少水平化的数据交换协议和应用层访问协议,不能很好的集成到现有的互联网体系当中.为了解决物联网系统中数据交换协议私有化的问题,可以将 XML(eXtensible Markup Language) 等在互联网中广泛使用的数据交换协议引入到物联网中.但是在这一过程中面临着以下的挑战.首先由于物联网

13、在前端感知网络中通常采用低成本、低功耗的嵌入式设备,计算资源,存储资源和网络带宽都严重受限,对协议和算法的轻量性要求较高.其次由于互联网中采用的数据交换协议除了数据内容本身还包含自描述的控制信息,存在大量信息冗余,增加了网络传输开销.同时XML 技术本身很复杂,处理 XML 的开销很大.综合上述两点 XML 处理的复杂性和数据冗余对于低功耗、资源受限的物联网前端感知设备负担过重,难以在前端设备上设计和实现.同时需要考虑物联网具有与互联网不同的数据特点.互联网的 web 请求通常为大量不规律的单次请求,一次请求的内容一般比较复杂,包括各种文本和多媒体信息,数据量大.但是在物联网应用中,感知数据往

14、往具有时空相关性,即具有感知资源相对固定、单次请求的数据量小和连续传输数据相似性大的特点.特别是在环境监测类物联网应用的感知数据中,采用 XML 这种自描述的数据交换协议会导致控制信息远远多于感知内容数据,存在连续传输过程中控制内容大量冗余的问题.为了解决这些问题,本文提出了一种基于 XML 的轻量级物联网数据交换协议EasiDEF.该协议根据环境监测类物联网应用的数据特点,将数据类型分为单次请求数据和周期连续上报数据两种类型. 针对单次随机出现的请求数据采用三级压缩机制, 包括:(1)一种 XML 文件的序列化方法.该方法基于 XML 标准设计的数据格式保证了数据交换的通用性,并且序列化的操

15、作使得在低功耗设备中应用XML 成为可能;(2)针对现有的物联网典型应用方式,采用能将 XML 文件的字符串标签转化为数值标签的映射字典机制;通过字典映射将占用空间较大的字符串转化成二进制数值,实现了数据压缩; (3)一种基于 LZW(Lempel-Ziv-Welch)的改进数据压缩算法 EasiLZW,该算法基于物联网应用字典压缩数据,压缩数据保证协议的轻量级特点.而针对周期连续上报数据的类型,提出了一种增量式压缩传输算法.通过比较连续传输过程中传输文件与标准文件的不同,传输增量 XML 文件,实现 XML 文件的压缩.在保证协议低开销的前提下,EasiDEF 能够大幅压缩XML 文件,降低

16、数据传输量,为物联网系统前端感知网络提供轻量级水平化的数据交换协议.同时针对互联网中的一般 XML 格式数据集、故宫博物院文物监测系统和无锡太湖水污染监测系统的数据集,设计了 4 种实验场景以验证该数据交换协议的压缩效果和算法开销.本文的贡献主要集中在以下 3 方面:(1)针对单次请 求数据类 型采用三 级压缩机 制,有效提高了 XML 的压缩率和处理效率,包括: 1 一种 XML 文件的序列化方法;2 一种字符串标签到二进制数值映射字典机制;3 一种基于 LZW 的改进数据压缩算法 EasiLZW.通过这三级压缩机制压缩数据保证协议的轻量级特点.(2)针对周期性连续上报数据类型,提出了一种增

17、量式压缩算法,减少了连续数据传输过程中重复数据的冗余传输.(3)设计了 4 种实验场景,通过文件压缩率和处理时间开销的对比实验,验证了EasiDEF 的协议性能和算法开销.本文第 2 节简要介绍研究背景和相关工作;第 3 节给出 EasiDEF 概述;第 4 节是协议的详细设计和实现;第 5 节是性能与效果实验评价;最后第 6 节给出本文的结论和展望.2 研究背景与相关工作目前在数据交换协议方面的工作主要包括互联网通用协议、互联网轻量级协议和物联网轻量级协议 3 类.首先在互联网中广泛采用的协议有 XML、JSON 等协议,尤其以 XML 占主导地位.XML 是为了人类可读性和互操作性而设计的

18、一种通用数据交换协议,因此 XML 在描述数据的过程中采用了大量重复的数据标签,造成了大量数据冗余.一旦这种冗余与应用程序中的元素和属性名结合起来,XML 文件中标签成分的大小可能远远超出文件中实际数据成分的大小.这种数据冗余通常会给网络传输带来负担.为了降低数据传输量,在互联网中通常采用的方式是先压缩再传输.在实际应用中,Gzip(GNU zip) 是互联网中被广泛采用的数据压缩方式,HTTP 协议(Hypertext Transfer Protocol)即支持 Gzip 的压缩传输.Gzip 是一种开源的文件压缩程序,其核心采用 LZ77 与哈夫曼编码的组合方法,因而 Gzip 是对一般字

19、符串做处理的压缩算法,并没有考虑 XML 的结构化特点,缺少相对应的压缩优化方法.在学术界很多学者同样提出了一些 XML 压缩方法,以优化 XML 在应用中的性能.文献1-2提出的压缩方法主要思想是将 XML 文档拆分成属性名、文本数据和文档结构 3 个不同的部分后分别进行压缩.在压缩每个部分时,还要将数据划分到不同的容器内使得每个容器内的数据具有一定的相关性,然后再根据每个容器内的数据特点进行压缩.Millau3-4采用了差异 DTD(Document Type Definition)树来压缩符合 DTD 定义的 XML 数据,其主要思想是从 DTD 树的解析过程中获得语义信息,通过 XML

20、 结构信息和数据编码形成结构流和内容流来达到压缩的目的.文献5用树型结构表示 XML 文档,通过提取公共子树来压缩 XML 数据中的结构冗余.文献6给出了第一个支持查询处理的 XML 压缩方法.它用数值来表示元素名和属性名,而数据项则用非自适应的哈夫曼编码来进行压缩.根据某些典型应用仅访问 XML 文档中的某些特定元素的特点, 文献7中的方法保持应用需要的元素不变而将其他元素用 XSLT(Extensible Stylesheet Language Transformations)转换成 CSV(Comma Separated Values)的格式,进而达到压缩XML 的目的.2013 年 L

21、ohrey 等学者在文献8中提出基于有向无环图的 XML 压缩方法,用无等级 的节点标 签树来表 示 XML 的编码二叉树,减少了标签冗余,实现了数据压缩.然而上述工作 XML 压缩方法的不足都是处理相对复杂,需要大量的计算和存储资源,难以应用在资源受限的物联网前端设备.2007 年 W3C 标准组织发布了高效 XML 交换格式第一版公开草案 EXI9(Efficient XML Interchange).EXI 格式使用由信息和正规语言理论衍生出的一种混合方法,利用相对简单的算法以及少量的数据类型,可靠地产生 XML 事件流的高效编码. 虽然 EXI 针对 XML 文件结构做了优化处理,可应

22、用在资源受限设备,但是由于 EXI 的普适性,没有面向物联网的特点进行方法优化,在数据压缩率方面还有提高的空间.在物联网领域内,目前已有的工作中微软研究院的 Priyantha10等学者于 2008年发表了首篇关于物联网 web 服务及其系统架构的论文,文章提到了在能量和计算能力受限的情况下基于传感器节点的 XML 解析方法和压缩算法.UC Berkley大学的 Dawson-Haggerty11等研究人员在 2010 年提出了首个基于REST(REpresentational State Transfer) 风格的物理信息交换协议 sMap,该协议使用了编码后的 JSON (JavaScri

23、pt Object Notation)数据描述格式进行数据封装,减少了数据传输量.Castellani 等人在文献12中提出了物 联网中基 于 CoAP 和 EXI 的 web 服务框架.CoAP(Constrained Application Protocol)协议是国 际标准制 定组织下 CoRE (Constrained RESTful Environment)工作组为受限节点制定相关的 REST 架构风格的应用层协议,以取代 HTTP 协议在受限设备中运行.文章用 CoAP 协议传输 EXI 格式的载荷数据,在资源受限的节点上验证了 EXI 的可行性.2013 年 Thoma 等人13

24、提出了基于 REST 的传感器网络,该框架采用 Atom 和 JSON 的编码方式减少数据传输,提高网络性能.同年Groppe14等研究人员提出了一种嵌入式 XML 语言,该工作通过减少 XML 查询时的多余计算来降低处理 XML 的开销,缺点是该工作并没有减少 XML 的数据冗余.上述内容介绍了现有水平化数据交换协议的研究现状,所述水平化网络协议栈如图 1 所示.在互联网中自下而 上采用了 TCP(Transmission Control Protocol)、HTTP 和 XML 的水平网络协议体系.在物联网相关的已有工作中 sMap 采用了UDP(User Datagram Protoco

25、l)、EBHTTP(Embedded Binary HTTP)和 Encoded JSON 结合的水平网络协议体系,也有包括 UDP、CoAP 和 EXI 结合的水平网络协议体系.本文提出采用 EasiDEF 与 UDP 和 CoAP 构成的新的适用于物联网应用特点的轻量级水平网络协议体系.图 1 水平化网络协议栈示意图 下载原图综上所述的研究背景和相关工作表明,目前在物联网前端感知网络中需要一套高压缩率和低开销的水平化轻量级数据交换协议.3 EasiDEF 协议概述EasiDEF 是一种基于 XML 的物联网轻量级数据交换协议,解决了物联网不同应用系统数据交换协议私有化的问题,同时采用了一定

26、的压缩策略,降低了数据传输量,优化了资源受限网络的性能.为了能够设计出适合物联网前端感知网络的数据交换协议,首先要分析现有物联网应用系统中前端感知网络通常具的数据特点:(1)在物联网的应用系统中前端感知资源类型相对固定.一旦感知网络被部署,硬件传感器基本不会被修改和更换,所以感知网络中感知资源在一段连续的时间区间内是相对固定的.即使是异主系统,面向同类应用的传感器具有种类、数量、密度等相似性或互补性,如采用通用数据交换协议,则可达到资源共享;(2)物联网系统中单次请求数据量一般比较小.因为物联网应用系统的前端感知网络一般采用低成本的嵌入式节 点,计算、存储和通 信能力非 常有限,尤其在环 境监

27、测类的物联网应用中,感知数据通常为温度、湿度等环境信息,以数据内容为主,图片等多媒体内容占据较少 的比例,所以单次 的数据量 通常只在 10500byte 范围内;(3)在环境监测等普遍部署的物联网应用中,数据采集往往具有周期性和规律性. 应用中用户主动发送请求获取数据的需求较少,数据大多采用用户订阅然后感知节点周期上报的形 式,数据的格式和内容在一段时期内基本不变,只有采集的实时数据会变化.对于这类的物联网应用,如果每次都完整传输所有信息,会出现连续数据上报的重复性问题,可以采用增量传输数据的方式进行数据压缩.以故宫博物院文物监测系统15和无锡太湖水污染监测系统16为例说明以上列出的 3 个

28、物联网系统前端感知网络的数据特点.首先在故宫博物院文物监测系统和无锡太湖水污染监测系统中包含的感知资源类 型和对应 的数据量 级如表1 所示.从表 1 中可以看出物联网前端感知网络根据实际应用的不同具有 相对固定 和专有的 硬件感知 资源. 资源单次通信的数据量比较小,通常只有几十到几百字节.表 1 故宫博物院文物监察系统和无锡太湖水污染 监测系统感知资源和对应数据量示例 下载原表 其次本文统计了在无锡太湖水污染监测系统和故宫博物院文物监测系统中 1000次数据传输中包含的单次请求数据与周期连续上报数据的分布比例,如图 2 所示.从图 2 中可以看出在物联网的环境监测类系统中数据通信方式以周期

29、上报为主,单次随机请求的需要比较少,占请求总量的 20%以下.该统计的结果验证了上述总结的物联网数据特点的第 3 点,即周期性连续上报的数据请求在总体请求中占多数. 在连续数据上报的过程中,相邻两次的数据上报的控制内容基本相同,只有实时感知数据发生变化,因此适合在这类应用中采用增量数据传输的方法来压缩数据,降低数据传输量.根据上述对物联网系统前端感知网络数据特点的总结,本文将应用数据分为单次请求数据和周期连续上报数据两种.EasiDEF 处理流程图如图 3 所示.对于单次 请求数据 采用三级 压缩机制,包括: (1)XML 文件的序列化.将格式化的 XML 文件通过序列化的操作转换为字符串 ,

30、减少 XML 标签冗余,便于后期处理;(2)一种标签 数值映射 字典机制.设计针对不同物联网应用的标签字典,对要传输的XML 文件进行字典映射,将多字节字符串标签转换成单字节数值;(3)改进的 LZW数据压缩算法 EasiLZW.对于周期连续上报数据提出增量式数据传输压缩算法,通过比较传输文件与标准文件的不同,传输增量 XML 文件,达到压缩传输数据,降低传输数据量的目的.总体来说,EasiDEF 通过三级压缩机制和增量传输压缩算法实现面向物联网的轻量级数据交换协议.图 2 环境监测系统中请求类型分布图 下载原图图 3 EasiDEF 的整体处理流程图 下载原图4 EasiDEF 设计与实现本

31、节详细介绍 EasiDEF 协议的设 计和实现. 4.1 节介绍如何序列化 XML 文件,序列化的优点和解决的问题.4.2 节对物联 网应用字 典的设计 进行详细的 描述.4.3 节提出改 进的 LZW 算法 EasiLZW.4.4 节提出一种增量化传输的数据压缩算法.4.1 XML 序列化XML 序列化是将文件转换成 字符串的 过程, 其目的一是压缩文件,减少冗余数据;二是预处理, 方便以字符流进行操作.序列化的主要思想是用元素标签(Tag)来表达 XML 数据,包括 XML 文件中的元素 (Element)、属性(Attribute)、文本 (Text). 对于在物联网 前端感知 网络中不

32、 太常用的 注释 (Comment)等内容进行了精简.图 4 和图 5 给出了一个简单的 XML 文件及其对应序列化后的结果.图 4 XML 示例文件 下载原图图 5 EasiDEF 序列化 XML 后的编码文件 下载原图图 5 所示的 EasiDEF 内容是一组标签序列,如“X”标签表示 XML 文件中的元素,“X4root”表示字符长度为 4 的元素“root”,“X4root”是一个完整意义的标签单元.从上述例子可知所有的 XML 内容在 EasiDEF 序列化的 过程中都 以标签来 表示,将元素、属性等内容由一个标签单元来表达.标签单元包括标签本身(Tag)、数据长度(Length)和

33、数据值 (Value),即 TLV.因为在 XML 中元素总 是以“elementName”和“/elementName”开始和结 束,本身就存在信息的冗余,标签化的表示方式消除了这种冗余,在通常情况下有效的减少了数据的长度;重复出现的文本只显示一次,显著地减少了冗余信息,同时压缩了 XML 的数据长度.并且传统方式在解析 XML 时,必须逐个字符的扫描,寻找 XML 元素名称、属性名称、字符文本在何处结束,而 XML 内容的标签化,免除了这一繁琐的工作.在 EasiDEF 中,文本数据的长度信息总是出现在文本之前,这样我们可以预先知道将要读取处理的数据长度,需要分配的空间大小,可以整体拷贝,

34、 而不像 XML那样只有读到结束符时才能确定文本数据的大小.所以该序列化模块具有一定的预判功能,可以提前处理数据所需的系统资源.EasiDEF 完整的结构布局如图 6 所示,由头部 (EasiDEF Header)和主体 (EasiDEF Body)构成. EasiDEF 头部包括 标识 EasiDEF 的区别标 志位 (Distinguishing Flag)、头部长度(Length)、版本号 (Version),EasiDEF 主体则是有一串标签单元构成的,标签“Z”是整个 EasiDEF 结束的标志.图 6 EasiDEF 的结构布局图 下载原图在 EasiDEF 头部,区分标志位占 2

35、 个字节;头部长度是指后续的版本和编码控制信息所占的字节数,用一个字节表示,目前取值为 5;EasiDEF 版本取值 V1.0,版本号为 数字 1,占一个字 节.对于 EasiDEF 的主体是有多个表达 XML 组成部分的标签单元构 成的,最后以“Z”结束.如图 5 所示 EasiDEF 中的数字使用ASCII 码字符表示,但在实际的 EasiDEF 中是二进制的数值,并非 ASCII 码.EasiDEF 的标签化方式使得处理器不需要扫描每一个字符,识别 XML 结构的结束符;使用数值代替文本不仅降低信息冗余、压缩数据长度,还使得数据的比较操作更快、更容易;长度前置使得块拷贝成为可能,也避免了

36、处理器动态的分配变长内存.因此 EasiDEF 的解析轻量化,解析时需要的系统资源显著减少,解析的速度得到很大提高.4.2 标签数值映射字典机制在这一节本文提出了 EasiDEF 中的标签数值映射字典机制.在上述第 2 节EasiDEF 概述中总结了物联网系统中前端感知网络的数据特点,即物联网不同应用具有不同的感知资源类型.同类物联网应用拥有大量相似的感知资源,比如在环境监测类的应用中,基本都围绕环境信息:温度、湿度和光照等参数.因此在XML 文件描述和组织感知数据的时候,有大量相关元素标签是重复和冗余的.为了解决重复标签问题,充分利用物联网前端感知网络的数据特点,本文提出要在感知节点的本地建

37、立标签数值映射字典.根据对历史数据进行统计和分析,得到出现频率较高的关键词,建立应用字典,将多字节字符串转换成单字节的数值,在 XML 序列化的基础上进一步压缩了 XML 文件.本节建立的物联网应用字典作为下一节 4.3 中 EasiLZW 的初始化输入字典.图 7 是以环境监测为背景的物联网应用字典示例.图 7 EasiDEF 物联网应用字典示例 下载原图4.3 改进的 LZW 压缩算法 EasiLZW1984 年 Welch 在文献 17中提出了 LZW 算法.LZW 算法的压缩原理是通过分析输入字符流, 在压缩的时候自适应地生成字典,记录此前所有出现过的不重复的字符串.通过比较当前输入字

38、符流与字典中的字符串来确定输出值,并更新字典,其压缩流程中没有传输开销,计算相对简单.发送方和接受方都包含初始化字典,基于已经存在的字典词条建立新的字典词条.一旦接收到数据,接收方就可以重新建立字典.其最大的特点是逻辑简单,易于实现,速度快.但是经典 LZW 算法存在以下 2 个不足:(1)经典 LZW 算法针对的是无结构的字符流,没有考虑结构化数据的压缩方法.结构化数据一般是自描述的,比如 XML,数据的结构和内容混在一起.结构化的数据有很多信息是已知的,但是 LZW 无法利用; (2)用 LZW 算法压缩时自适应形成字典的过程需要积累足够的长度,根据本文第 2 节中所总结的物联网数据特点可

39、知,物联网系统中存在的信息大多数都是短而小的,容易造成在压缩时字典无法积累相当的结构化信息,也就不能有效地压缩文件中的冗余信息.为了克服上述的不足,本文提出了 EasiLZW 算法.其主要思想是编码和解码不再是以单个字符而是以字典中的标准子串为单位进行.而标准子串是针对物联网应用从 XML 文件中提取出的结构化标签的字符串,这些字符串组成了 4.2 节中的物联网应用字典.因此将 4.2 节中生成的典型物联网专有字典作为 EasiLZW 的初始化 字典输入 算法.EasiLZW 的编码和解码过程如算法 1 和算法 2 所示.算法 1. EasiLZW 编码算法.算法 2. EasiLZW 译码算

40、法.对于标准子串的匹配问题我们采用滑动窗口的机制来优化标准子串的匹配过程,如图 8 所示.该滑动窗口包含两个指针 P1 和 P2,P1 是字符流输入位置的当前指针,P2 是搜索标准子串时的超前指针.P1 和 P2 要满足以下 3 个条件:(1)初始时P2=P1; (2)匹配的范围在 P2 到 P1 之间,滑动窗口的大小 W 为标准子串的最大长度和剩余字符流长度的较小值;(3)结束时 P1=P2+1;当找到匹配的标准子串时(P2=P1),窗口向前滑动 P2-P1 个字节.图 8 滑动窗口匹配标准子串示意图 下载原图对于 EasiLZW 的算法效率分析如下.传统 LZW 算法大量依赖快速的字典查找,若直接检索字典,代码执行速度慢,其时间复杂度为 O(n).因此需要对字典检索进行优化,引入 Hash 表能有效提高字符串表的检索效率及整体执行效率.Hash 表的容量与字典的容量均为表中不定长元素的代码数组,用于存放 Hash 值相同的字符串代码.一般 Hash 函数产生的重复值较少,这样检索字符串所需比较的次数将大幅减少,时间复杂度几乎接近于 O(n),从而有效提高了代码的执行效率.改进的 EasiLZW 算法采用物联网应用字典,以标准子串为单位进行字典匹配,删除

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

当前位置:首页 > 学术论文 > 期刊/会议论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报