下载此文档

提高WebService数据传输效率的基本方法.docx


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
提高 Web Service 数据传输效率的基本方法
如何提高 Web Service 的数据传输效率及其应用场景
王 云 (******@), 软件工程师, IBM 中国研发中心
简介: 本文介绍了在 方式举例说明。一般来讲,系统请求 XML 的体积相对较小,没有必要使用压缩和解压缩的方法处理请求 XML。而对于系统响应 XML 来讲,一般都包含大量的数据,导致其体积庞大,需要进行压缩处理。对响应 XML 进行压缩的流程如下:
服务器端数据模型-->序列化操作-->利用 gzip 方式对序列化后的 XML 进行压缩-->返回到客户端-->以 gzip 方式进行解压缩-->对解压缩后的 XML 进行反序列化操作-->客户端数据模型
这里需要说明的一点是,客户端以及服务器端的数据模型需要实现 Serializable 接口。
清单 2. gzip 方式压缩部分实现代码示例(java 实现)

import .*;
import .*;
public class Compress
{
public String gzip(OutputStream pStream)
{

try
{
GZIPOutputStream stream = new GZIPOutputStream(pStream);
return ();
}catch(IOException e){…}

return null;
}

}
在程序将对象模型序列化成 XML 之前,可以使用上面的压缩方法,对数据流进行压缩。部分代码如下:
清单 3. 对象模型序列化后再进行压缩的实现代码示例

public class XMLSerializerHelper
{

public static String saveOBJtoString(Object inputOBJ) throws ConverException
{
……
ByteArrayOutputStream outputStream = null;
try{
outputStream = new ();
((IXMLSerializable) inputObject, outputStream);
return (outputStream);
}catch(Exception e){…}
……
}

}
解压缩的过程也类似于上述代码。测试表明,采用 gzip 压缩可以减少60%以上的网络所带来的消耗。
2. 对于特定的数据进行特殊的处理
在企业日常的数据传输中,往往大量的数据具有很多共同的特点。数据和数据之间往往具有很多相同的地方,或者说,具有很多重复的地方。例如,在一个以 Web Service 为构架的报表处理系统中,报表往往会含有很多的空数据,或者相同属性和值域的数据,对于这样的情况,可以在代码中对特殊情况进行特殊的处理。我们同样以传输一个表格作为例子,如下:
表 2. 将要传输的含有多个空值的表格示例
Software sold
Hardware sold
System sold
Others
120
-
-
-
-
-
90
-
-
110
-
-
可以看到,上述表格具有很多的空值,那么在 XML 中完全可以把空值的部分统一处理,这样就能大大减少网络传输的数量,其对应的部分 XML 如下:
清单 4. 对空值进行处理后的简化 XML 示例

……
<NULL Value>(1,2),(1,3),(1,4),(2,1),(2,2),(2,4)(3,1),(3,3),(3,4)</NULL Value>
……
优点:
对于重复性的数据来说,该方法可以几十倍甚至上百倍的减少传输的数据量(这取决于数据重复的数量大小),相对于第一种压缩方式,由于只是对固定形式的数据进行处理,所以不会占用很大的 CPU 以及内存。
缺点:
数据的特点不容易把握,能够处理的情况比较简单和单一。对于空值或者某些值重复较多的情况,可以采用本方法。
解决方案二: 减少多次调用,尽量使用一次性的调用方式。
传统的 RPC 调用,

提高WebService数据传输效率的基本方法 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小77 KB
  • 时间2022-05-19