原文地址:http://www.po-soft.com/blog/csh/359.html
本文WCF的优势和性能测试摘要:WCF
是
FrameWork3.0
下的分布式框架,下面主要从
WCF
的优势和性能测试两个方面阐述。
一 WCF的优势:
1、统一性
WCF是对于ASMX, .Net Remoting,Enterprise Service,WSE,MSMQ等技术的整合。由于
WCF完全是由托管代码编写,因此开发
WCF的应用程序与开发其它的.Net应用程序没有太大的区别,我们仍然可以像创建面向对象的应用程序那样,利用WCF来创建面向服务的应用程序。
2、互操作性
由于
WCF最基本的通信机制是SOAP,这就保证了系统之间的互操作性,即使是运行不同的上下文中。这种通信可以是基于 .Net 到.Net间的通信。
可以跨进程、跨机器甚至于跨平台的通信,只要支持标准的Web Service,例如J2EE应用服务器(如WebSphere,WebLogic)。应用程序可以运行在Windows操作系统下,也可以运行在其他的操作系统,如Sun Solaris,HP Unix,Linux等等。
3、安全与可信赖
WS-Security,WS-Trust和WS-SecureConversation均被添加到SOAP消息中,以用于用户认证,数据完整性验证,数据隐私等多种安全因素。
在SOAP的header中增加了WS-ReliableMessaging允许可信赖的端对端通信。而建立在WS-Coordination和WS-AtomicTransaction之上的基于SOAP格式交换的信息,则支持两阶段的事务提交(two-phase commit transactions)。
上述的多种WS-Policy在
WCF中都给与了支持。对于Messaging而言,SOAP是Web Service的基本协议,它包含了消息头(header)和消息体(body)。在消息头中,定义了WS-Addressing用于定位SOAP消息的地址信息,同时还包含了MTOM(消息传输优化机制,Message Transmission Optimization Mechanism)。
4、兼容性
WCF充分的考虑到了与旧有系统的兼容性。安装WCF并不会影响原有的技术如ASMX和.Net Remoting。即使对于WCF和ASMX而言,虽然两者都使用了SOAP,但基于WCF开发的应用程序,仍然可以直接与ASMX进行交互。
二、
WCF的一些性能测试(
WCF
与现存的分布式通讯技术进行对比):
在
A Performance Comparison of Windows Communication Foundation (WCF) with Existing Distributed Communication Technologies
一文中,
通过与
现有的分布式技术
ASP.NET Web Services (ASMX)
、
Web Services Enhancements (WSE)
、
.Net Enterprise Services (ES)
、
.NET Remoting
的测试比较后,表明:相比较基于
ASP.NET Web Service
、
WSE
、
.NET Enterprise
和
.NET Remoting
技术的分布式应用,
WCF
的表现至少这四种现有的分布式通信技术要强的多。并且,在大部分情况下,
WCF
的表现明显优于其他现有技术。
WCF
的另一个的非常重要的特点就是他的吞吐量本身就随着从单核处理器到双核处理器的升级。因此,
WCF
比
ASP.NET Web Services (ASMX)
快了
25%-50%
;
比
.Net Remoting大约
快了约
25%
;与.NET Enterprise Service 的比较依赖负载,一个情况WCF快了近100%,而另外一个情况
WCF慢了25%。最后如果将WSE 2.0/3.0 移植到WCF 上,那么性能是原来的4倍!
同时,Marcin Celej 在他的blog的中写出了他的测试结论,
1.
发送不带二进制数据的DataSet Remoting 仍然比WCF快,这个结论甚至在发送200行数据的基础上,都看得到的。
2.
发动带xml格式的DataSet 序列化数据,WCF比Remoting 快一点。这可能是因为WCF本质上就是以XML传输数据。
但是,WCF和Remoting 表现上虽然差距不大,但是
WCF 有明显优越的服务器吞吐量。就好象VISTA比XP慢,但是他确实比XP要好的多。同样的WCF比Remoting 要好很多啦。