欢迎来到天天文库
浏览记录
ID:18731065
大小:93.01 KB
页数:18页
时间:2018-09-21
《提高jsp系统数据传输效率》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、提高WebService数据传输效率的基本方法如何提高WebService的数据传输效率及其应用场景王云 (cdlwangy@cn.ibm.com),软件工程师,IBM中国研发中心简介: 本文介绍了在WebService实施和开发过程中,提高系统效率的一些方法,实践证明,这些方法都是非常有效且易于实现的。针对各种方法的优缺点以及应用场景,文章也进行了相应的讨论。背景WebService现如今已经成为SOA实现标准之一。很多公司已经或者正在参与到WebService项目的实现和部署中。WebService的优点在于松散的处
2、理异构系统之间的通信和数据交换,可以随机应变的处理企业各个系统之间的整合问题。但是同时,WebService采用XML标准进行系统间的数据传输,加大了传输的数据量,尤其是在传输一些具有比较严格结构的数据时,会使得传输效率有所下降。所以,如何提高WebService传输效率成为很多公司进行项目部署时非常关心的问题。目的本文介绍了在WebService实施和开发过程中,提高系统效率的一些方法,实践证明,这些方法都是非常有效且易于实现的。不同的方法都有其应用领域和优缺点,我们会分别进行讨论。文章的主要目的在于,提供给读者多种方
3、式的基本解决方案,使得读者在WebService项目部署时,拥有更多的思路。原因分析WebService是采用XML标准进行数据传输的。XML在传输过程中,会附带很多数据的相关信息,并以标签的形式表现出来。在传输过程中,一些情况下,这些标签会占用一半以上甚至更多的数据传输量,例如,要传输一个表格信息,如下(表格中的人名为虚构的):表1.将要进行传输的表格示例NameCityApartmentAirWangBeijingSomePlace表1中的数据在传输过程中,有可能会生成下面的XML文件: 清单1.对应于表1数据所传输
4、的XML文件示例NameCityApartmentAirWangBeijingIBMCDL如果上面的表格中还带有格式的信息(比如字体,背景颜色等等)的话,那么相应的XML就会更加复杂了。从上述XML中我们可以看出,除了数
5、据之外,XML会附加很多标签信息,这就使得传输的数据量增大,当所需要传输的数据比较多的时候,XML的标签就会带来比较大的效率问题。解决方案一:压缩与解压缩WebService在网络中传输的是以XML为基础的消息的请求和响应。大量的数据传输会使网络成为瓶颈。一个最直接的解决方案就是对传输的消息进行压缩。对于不同规模的数据量,压缩应该有不同的解决方案,下面分别介绍如下:1.对于整个XML传输文件进行压缩数据压缩已经发展了很多年,有很多成熟的技术,算法以及工具包。经常用于对数据压缩的API有gzip等方式。对文件进行压缩的做法
6、非常简单,就是在发送XML之前对XML进行压缩,经过压缩以后,再在XML接收端对已经压缩的文件进行解压缩。优点: 该方法的优点在于,使用了成熟的压缩和解压缩技术,当数据量比较大的时候,可以大大提高传输效率。对于纯文本的XML,压缩可以减少其80%以上的体积。缺点:压缩和解压缩虽然可以使得XML的体积大大减少,但是其过程却是十分耗费系统资源的。压缩和解压缩往往会具有很大的CPU占有率以及内存占有率。对于配置不高的客户端甚至是服务器端,都会造成不小的压力。应用场景:该技术应用于网络瓶颈非常严重的情况或是主机配置比较高的情况。
7、举例: 正如本小节最开始已经介绍的,现在已经有很多成熟的压缩与解压缩的API提供给开发人员进行使用,我们选取其中最常用的gzip方式举例说明。一般来讲,系统请求XML的体积相对较小,没有必要使用压缩和解压缩的方法处理请求XML。而对于系统响应XML来讲,一般都包含大量的数据,导致其体积庞大,需要进行压缩处理。对响应XML进行压缩的流程如下:服务器端数据模型-->序列化操作-->利用gzip方式对序列化后的XML进行压缩-->返回到客户端-->以gzip方式进行解压缩-->对解压缩后的XML进行反序列化操作-->客户端数据
8、模型这里需要说明的一点是,客户端以及服务器端的数据模型需要实现Serializable接口。 清单2.gzip方式压缩部分实现代码示例(java实现)importjava.io.*;importjava.util.zip.*;publicclassCompress{publicStringgzip(OutputStr
此文档下载收益归作者所有