本文WCF的優點和性能測試摘要:WCF是FrameWork3.0下的分佈式框架,下面主要從WCF的優點和性能測試兩個方面闡述。
一 WCF的優點:
一、統一性
WCF是對於ASMX, .Net Remoting,Enterprise Service,WSE,MSMQ等技術的整合。因爲WCF徹底是由託管代碼編寫,所以開發WCF的應用程序與開發其它的.Net應用程序沒有太大的區別,咱們仍然能夠像建立面向對象的應用程序那樣,利用WCF來建立面向服務的應用程序。
二、互操做性
因爲WCF最基本的通訊機制是SOAP,這就保證了系統之間的互操做性,即便是運行不一樣的上下文中。這種通訊能夠是基於.Net 到.Net間的通訊。
能夠跨進程、跨機器甚至於跨平臺的通訊,只要支持標準的Web Service,例如J2EE應用服務器(如WebSphere,WebLogic)。應用程序能夠運行在Windows操做系統下,也能夠運行在其餘的操做系統,如Sun Solaris,HP Unix,Linux等等。
三、安全與可信賴
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)。
四、兼容性
WCF充分的考慮到了與舊有系統的兼容性。安裝WCF並不會影響原有的技術如ASMX和.Net Remoting。即便對於WCF和ASMX而言,雖然二者都使用了SOAP,但基於WCF開發的應用程序,仍然能夠直接與ASMX進行交互。
2、 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 要好不少啦。