论文部分内容阅读
近年来随着计算机技术的迅猛发展,XML已经成为Internet上数据表示、存储和交换方面的标准,而电子商务的兴起与企业自身业务的需求又带动了面向服务架构体系(SOA)的蓬勃发展,使得SOA成为当前热门的讨论话题。SOA实质上是组织服务的一种架构模式,它把服务通过统一的、中立的、定义良好的接口和契约联系起来,独立于实现服务的硬件平台、操作系统和编程语言,使服务通过统一通用的方式进行交互。而XML具有的自我描述性与跨平台性,使得它非常符合SOA环境的要求,因此,在SOA体系中使用XML文档作为数据的传输格式和信息载体是XML一个很好的应用。但是,XML文档一个最大缺陷就是它的冗余性,尤其是结构信息大量重复造成XML数据体积庞大,占用过多的存储空间与网络带宽,降低了处理效率,增加了SOA消息的传输难度,造成了SOA数据传输问题。为了解决这个问题,在SOA体系中可以通过对服务器的配置采用Gzip对传输的消息进行压缩,Gzip是通用文本压缩技术而不是专门为XML设计的,而本文考虑了XML数据自身特点和SOA这个具体应用环境,重点研究了面向存储与交换的、适合XML数据的压缩方法,并在前人研究的基础上提出自己的改进。本文首先阐述SOA基本概念、实现途径及由于XML冗余造成的SOA数据传输问题,提出对XML数据进行压缩是解决问题的有效手段。然后介绍XML基本概念、相关处理技术及存在的冗余,并介绍通用数据压缩技术中两种经典算法,分别是哈夫曼编码和LZ77算法,这些基本的压缩算法是所有压缩技术、压缩工具的基础。随后本文叙述了源压缩模型XMill的工作原理,它将结构信息与数据内容相分离,对结构信息进行字典编码压缩,对数据部分按照它们所属标签分门别类地放进相应容器中,用Gzip压缩。在XMill中如果有用户参与,可以根据用户的指令对数据容器选用更适合的压缩方法进行处理,能使压缩率有所提高。本文是在SOA应用环境中,SOA中传输的数据必须遵循XML Schema文档定义的规范,因此,本文在XMill的基础上将辅助结构Schema运用到XML文档的数据压缩部分,Schema中包含所有XML文档元素类型的定义。当把数据放进容器时通过读取XML Schema文档中的数据类型值,选用适合的压缩算法对数据容器进行压缩,而不是一味地只用Gzip,如果某些特殊的数据类型与压缩算法没有匹配成功,就依然使用Gzip压缩,这样做的优势是可以独立于用户参与,减轻用户负担,在一定程度上实现自动化。本文将改进后的模型命名为XS-XMLComp (Based on XML Schema of XML data Compression Technology),它的一个创新之处就是“因地制宜”地运用了辅助性文档XML Schema,并且压缩效果比SOA使用的Gzip要好。本文最后进行了仿真实验,将XS-XMLComp与其他几种压缩模型进行比较,主要比较了压缩率、处理速度和效率等性能指标。通过对实验结果的分析评述了各个方法的优缺点,并且证实本文提出的压缩模型XS-XMLComp具有可行性与有效性,使压缩率有一定提高。