標籤:blog class c ext http int
1.WebService:嚴格來說是行業標準,不是技術,使用XML擴充標記語言來表示資料(這個是誇語言和平台的關鍵)。微軟的Web服務實現稱為ASP.NET Web Service.它使用Soap簡易物件存取通訊協定 (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”)是使用Managed 程式碼建立和運行面向服務(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完全是由Managed 程式碼編寫,因此開發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 支援多種併發模式:單例、單調、會話 。W