一、定義
1.WebService:嚴格來說是行業標准,不是技術,使用XML擴展標記語言來表示數據(這個是誇語言和平台的關鍵)。微軟的Web服務實現稱為ASP.NET Web Service.它使用Soap簡單對象訪問協議來實現分布式環境裡應用程序之間的數據交互。WSDL來實現服務接口相關的描述。此外Web services 可以注冊到UDDI中心.供其客戶查找使用。 後來微軟做了ASP.Net Web Service的安全,性能,數據加密、解密,托管宿主等多方面的擴展,稱為WSE系列,這個是過度產品,最高到WSE3.0.後來就是WCF時代。
2.WCF:其實一定程度上就是ASP.NET Web Service,因為它支持Web Service的行業標准和核心協議,因此ASP.Net Web Service和WSE能做的事情,它幾乎都能勝任,跨平台和語言更不是問題(數據也支持XML格式化,而且提供了自己的格式化器)。
但是WCF作為微軟主推一個通訊組件或者平台,它的目標不僅僅是在支持和集成Web Service,因為它還兼容和具備了微軟早期很多技術的特性。
根據微軟官方的解釋,WCF(之前的版本名為“Indigo”)是使用托管代碼建立和運行面向服務(Service OrIEnted)應用程序的統一框架。它使得開發者能夠建立一個跨平台的安全、可信賴、事務性的解決方案,且能與已有系統兼容協作。WCF是微軟分布式應用程序開發的集大成者,它整合了.Net平台下所有的和分布式系統有關的技術,如Enterprise Sevices(COM+).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息隊列。以通信(Communiation)范圍而論,它可以跨進程、跨機器、跨子網、企業網乃至於 Internet;以宿主程序而論,可以以ASP.Net,EXE,WPF,Windows Forms,NT Service,COM+作為宿主(Host)。WCF可以支持的協議包括TCP,HTTP,跨進程以及自定義,安全模式則包括SAML, Kerberos,X509,用戶/密碼,自定義等多種標准與模式。也就是說,在WCF框架下,開發基於SOA的分布式系統變得容易了,微軟將所有與此相關的技術要素都包含在內,掌握了WCF,就相當於掌握了叩開SOA大門的鑰匙。
二、WCF的優勢
1、統一性 前面已經敘述,WCF是對於ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技術的整合。由於WCF完全是由托管代碼編寫,因此開發WCF的應用程序與開發其它的.Net應用程序沒有太大的區別,我們仍然可以像創建面向對象的應用程序那樣,利用WCF來創建面向服務的應用程序。
2、互操作性 由於WCF最基本的通信機制是SOAP(Simple Object Access Protocol 簡易對象訪問協議),這就保證了系統之間的互操作性,即使是運行不同的上下文中。這種通信可以是基於.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 支持多種通信協議 Http/Https 、TCP/UDP、MSMQ、命名管道、對等網、消息可達性、事務流等。
WCF 可以與ASP.Net 集成、共享一個上下文(HttpContext)。
WCF 支持多種消息傳輸格式 :text,binary,mtom,JSon 等。
WCF 安全性要強:支持對稱安全、非對稱安全、消息安全、傳輸安全、SSL 流安全、Windows 流安全等。
WCF 支持多種會話模式:單向、雙向、請求/響應。
WCF 支持REST 。
WCF 支持多種格式化方式。DataContractSerializer、XMLSerializer、 DataContractJSonSerializer 等。
WCF 支持 WAS hosting、Windows 服務 hosting、Self-Hosting、IIS hosting 等。
WCF 支持多種並發模式:單例、單調、會話 。
以上就是本文的全部內容,希望對大家的學習有所幫助。