XML Web Services性能

1.怎样最大限度的提高XML Web Service的性能

关于您提到WebServices性能的问题,根据我的经验,影响WebServices性能的因素其实有很多,比如说网络环境,服务器性能等,但从开发的角度来说,由于WebServices是基于XML格式为对象进行序列化,由于XML格式的序列化或者反序列化效率没有二进制格式的效率高,并且以HTTP协议传输的速度没有Socket快,所以WebServices本身的效率并不高。所以,如果对于效率要求非常高的分布式应用来说,我推荐我们使用.NET Remoting更好一些。
而从WebServices的提高性能方面来讲,据我所知,我们在设计系统的,可以考虑分层,可以分为数据层——业务层——表现层,这样,我们在业务层将数据处理为一个实体(对象),而在表现层调用WebServices,就返回一个具体的属性,而非通常的DataSet,这样效率会有显著的提高。

2.请教一下 使用.NET Remoting返回DataSet,与使用WebServices返回DataSet是否是一样的原理,性能和开销会是一样。目前我们用dotnet做的一个远程客户终端 基本上使用WebServices来进行远程验证和数据传输,但是发现效率不高。带宽开销很大。 对于 需要 交互 string 和 dataset的地方,我想问一
下使用Remoting方式,是否更好。应该如何考虑。

关于您提到返回DataSet的问题,根据我的经验,影响带宽以及效率本身的原因在于返回DataSet数据量的大小,如果返回DataSet数据量不大,那么使用WebServices是不会造成很严重的效率影响。而如果返回DataSet数据量很大,那么及时使用.NET Remoting,还是会存在很严重的带宽占用量,因为从理论上来讲不管是WebServices还是Remoting,都要对数据进行序列化,然后再传送,这些步骤本身不可能想本机系统那样具有极高的访问和传输效率。所以,如果当前项目对效率存在着极高的要求,那么我们不建议采用任意一种技术来返回DataSet,而是我前文回复中提到的封装实体类,返回类的属性。
如果当前项目对效率要求不高,仅是考虑不想占用过多的带宽资源,那么我们可以考虑在WebServices端对数据进行压缩,然后在客户端对数据进行解压缩,这样带宽的资源占用量就会得到改善,但是执行的效率必然会变慢,压缩和解压同样会影响执行效率。
而.NET Remoting本身比WebServices效率高的方面在于可以使用TCP传输,并且使用Binary格式而非XML格式来序列化数据,但是这样做是没有办法穿越防火墙的,并且不采用XML格式序列化就无法与其他平台进行无缝的交互,所以一般在内部网络系统中采用的比较多。但即使使用Remoting返回DataSet,数据量大的情况依然会遭遇效率与带宽的问题。所以这方面效率本身取决于系统的设计,而并不取决于使用某种技术。

3.

如果项目非常关心性能问题,我建议在WebServices的WebMethod返回值中,我们可否无需使用DataSet做为返回值,而是如果需要返回某条信息我们可以返回一个object类型的数组,然后再客户端再去处理这些信息。这样既可防止带宽的占有量,又可以提高应用程序的处理速度。
另外,关于SOAP压缩的做法,如果我们不关心应用程序运行效率,只关心带宽占有量,那么使用压缩确实可以减少带宽的占有量,但是应用程序运行的效率肯定会受到影响,因为本身压缩和解压缩大的数据也需要消耗一定程度的系统资源。
另外,关于这个问题我想请您能否在一贴中讨论,这样也方便新闻组的其它用户浏览和查看,谢谢!

4.

从您提供的描述信息来看,根据我的经验,我们可以将调用WebServices的应用程序分层处理来大幅度提高应用程序的性能。首先,我们可以在将数据库放在单独的一台服务器上,然后将我们的商业处理逻辑放在一台服务器上,最后将我们需要对外开发的WebServices部署在一台服务器上。这样每台服务器可以只需要针对一种事务进行运算,我们就在纵向方面大幅度的提高了应用程序的性能。
其次如果依然没有达到性能要求的话,那么说明服务器处理的并发负载过高,这个时候我们需要进行负载均衡的处理。首先我们在数据库层面可以使用三台服务器做集群操作(cluster);然后针对商业处理逻辑的服务器可以增加服务器数量做负载均衡(Network Loading Balance);最后可以对我们的WebServices方面做IIS的集群(cluster)的处理。据我所知,目前我们有很多家合作伙伴都使用集群(Cluster)和网络负载均衡(NLB)的案例,而且使用非常成功。
对于SQL Server如果做cluster,我建议可以到SQL Server新闻组进行咨询;关于Windows Server的负载均衡,我建议可以到Windows新闻组咨询;关于IIS的集群处理,我建议可以到IIS的新闻组进行咨询,那里都会有专业的工程师为您解答。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值