【转】webservice性能研究

最近的项目会用到webservice ,以前接触过这个东东,可是也就是简单使用,对其性能方面没有过深研究过 ,最近重新拾起来把webservice的各种实现框架和原理复习了一下,发现webservice很客户化,开发实现很简单,但是性能是一个很大问题,而对于即将用于业务应用的项目,性能问题是需要重点考虑。

webservice 提供了分布式系统之间的通讯协议 ,为应用人员提供了基本数据类型、对象、数组客户端和服务器端的通讯方式。在实际应用中客户端的并发量,数据传输量会随着业务的发展逐步升级,而我们在已经选型webservice后如何调整才能满足业务量增加的需求 。 有些人可能会说,可以去做服务器集群、平衡负载 ,对,这些都是解决方案,可是还是有个问题,我们如何预期到这个问题 。自己想了一下,可以分一下步骤去做 。

1、 webservice 选型

      项目启动前已经确定需要使用webservice,webservice的实现框架究竟应该选用哪一个是我们需要了解的 ,xfie  ? axis ? 还是其他的 ,看一下有位前辈的测试报告。

性能测试总结报告
Axis报告
●     Axis在性能测试环境中共占用内存为541MB-542MB,平均541.5MB。
●     在性能测试的运行过程中,Axis性能良好,没有出现程序中断或者内存益处的状况。
●     Axis在该性能测试中的运算效率为 82.05s/n。
●     总评,Axis性能比较稳定,占用系统资源较少,运算效率一般。
XFire报告
●     XFire 在性能环境中共占用内存为 535MB-536MB,平均为 535.6MB。
●     在性能测试的运行过程中,XFire性能卓越,没有出现程序中断或者内存益处的状况。
●     XFire在该性能测试中的运算效率为 142.86s/n。
●     总评,XFire性能卓越,占用系统资源较少,运算效率高。

 
暂不管前辈是怎么测试得出的结果,总体来看xfire还是优于axis的。
 
 
 
2、接口实现讨论
 
 开始我们已经提到了,webservice可以支持基本数据类型、自定义对象、数组的数据传输,可是在实际应用中应该使用那种方式呢 ,或者那种方式适合我们呢 ?
 
从网上看了一些相关的帖子,大家在使用webservice时为了避免出现性能问题,都在尽量使用传输小数据量的基本数据类型,可是在一些大型应用中对象传输是不可以避免的,我们该怎么办 ? 下边是一个对比的例子。
 
1.    直接返回DataSet对象
特点:通常组件化的处理机制,不加任何修饰及
            处理;
优点:代码精减、易于处理,小数据量处理较快;
缺点:大数据量的传递处理慢,消耗网络资源;
建议:当应用系统在内网、专网(局域网)的应用
            时,或外网(广域网)且数据量在KB级时的
            应用时,采用此种模式。
2.返回DataSet对象用Binary序列化后的字节数组 
特点:字节数组流的处理模式;
优点:易于处理,可以中文内容起到加密作用;
缺点:大数据量的传递处理慢,较消耗网络资源;
建议:当系统需要进行较大数据交换时采用。
3.返回DataSetSurrogate对象用Binary序列化后的字节数组 
特点:微软提供的开源组件;
                 下载地址 http://support.microsoft.com/kb/829740/zh-cn
优点:易于处理,可以中文内容起到加密作用;
缺点:大数据量的传递处理慢,较消耗网络资源;
建议:当系统需要传输中文数据或需要加密时采用此种方式
4.返回DataSetSurrogate对象用Binary序列化并Zip压缩后的字节数组
特点:对字节流数组进行压缩后传递;
优点:当数据量大时,性能提高效果明显,
             压缩比例大;
缺点:相比第三方组件,压缩比例还有待提高;
建议:当系统需要进行大数据量网络数据传递时,
             建议采用此种可靠、高效、免费的方法。 
测试用例:SqlServer2000数据库,数据量大小40000行,
看到以上内容,对于接口的定义我们心里有一些依据了。
 
 

3、 webservice服务性能测试

   选型也做好了,接口也定了,可是还是不放心,我们的方案能满足业务的要求吗? 或者说业务预期的业务量有多大,我们的系统什么时候就该升级了,这些不是谁凭空就可以说出来的,都需要拿数据说话 。那我们就得测试一下我们的接口究竟能支持多大的数据量 。

测试工具 soapui

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值