Web Service 和WCF的比較


Web Service 的工作原理

      Web Service也叫XML Web Service WebService是一種可以接收從Internet或者Intranet上的其它系統中傳遞過來的請求,輕量級的獨立的通訊技術。是:通過SOAP在Web上提供的軟件服務,使用WSDL文件進行說明,並通過UDDI進行注冊。WebService可用基於XML的SOAP來表示數據和調用請求,並且通過HTTP協議來傳輸這些XML格式的數據。

      webservice最大優點就是實現異構平台間的互通,這也是使用WebService的主要原因之一。任何兩個應用程序,只要他們能讀寫XML,就能相互通信。

      1、webservice部署比較方便

      2、webservice的編寫,跟普通的class差不多

       3、當然還有一個好處:平台無關。C#,Java寫的ws可以相互調用

       4、做分布式系統

       XML:(Extensible Markup Language)擴展型可標記語言。面向短期的臨時數據處理、面向萬維網絡,是Soap的基礎。

       Soap:(Simple Object Access Protocol)簡單對象存取協議。是XML Web Service 的通信協議。當用戶通過UDDI找到你的WSDL描述文檔后,他通過可以SOAP調用你建立的Web服務中的一個或多個操作。SOAP是XML文檔形式的調用方法的規范,它可以支持不同的底層接口,像HTTP(S)或者SMTP。

       WSDL:(Web Services Description Language) WSDL 文件是一個 XML 文檔,用於說明一組 SOAP 消息以及如何交換這些消息。大多數情況下由軟件自動生成和使用。

       UDDI (Universal Description, Discovery, and Integration) 是一個主要針對Web服務供應商和使用者的新項目。在用戶能夠調用Web服務之前,必須確定這個服務內包含哪些商務方法,找到被調用的接口定義,還要在服務端來編制軟件,UDDI是一種根據描述文檔來引導系統查找相應服務的機制。UDDI利用SOAP消息機制(標准的XML/HTTP)來發布,編輯,瀏覽以及查找注冊信息。它采用XML格式來封裝各種不同類型的數據,並且發送到注冊中心或者由注冊中心來返回需要的數據。

 

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進行交互。 

WebService和WCF的到底有什么區別

WebService嚴格來說是行業標准,也就是WebService規范,也稱作WS-*規范,既不是框架,也不是技術。它有一套完成的規范體系標准,而且在持續不斷的更新完善中。它使用XML擴展標記語言來表示數據(這個是誇語言和平台的關鍵)。微軟的Web服務實現稱為ASP.NETWebService.它使用Soap簡單對象訪問協議來實現分布式環境里應用程序之間的數據交互。WSDL來實現服務接口相關的描述。此外Webservices可以注冊到UDDI中心.供其客戶查找使用。后來微軟做了ASP.NETWebService的安全,性能,數據加密、解密,托管宿主等多方面的擴展,稱為WSE系列,這個是過度產品,最高到WSE3.0.后來就是WCF時代。

ASP.NET Web Service微軟提供了Web服務的開發框架,屬於ASP.NETFramework的一部分,但是支持早起的WS規范。比如SOAP1.1。

WCFWCF是一個分布式應用的開發框架,屬於特定的技術,或者平台。既不是標准也不是規范。

WCF其實一定程度上就是ASP.NET Web Service,因為它支持WebService的行業標准和核心協議,因此ASP.NETWebService和WSE能做的事情,它幾乎都能勝任,跨平台和語言更不是問題(數據也支持XML格式化,而且提供了自己的格式化器)。

但是WCF作為微軟主推一個通訊組件或者平台,它的目標不僅僅是在支持和集成WebService,因為它還兼容和具備了微軟早期很多技術的特性。

根據微軟官方的解釋,WCF(之前的版本名為“Indigo”)是使用托管代碼建立和運行面向服務(ServiceOriented)應用程序的統一框架。它使得開發者能夠建立一個跨平台的安全、可信賴、事務性的解決方案,且能與已有系統兼容協作。WCF是微軟分布式應用程序開發的集大成者,它整合了.Net平台下所有的和分布式系統有關的技術,如EnterpriseSevices(COM+).NetRemoting、WebService(ASMX)、WSE3.0和MSMQ消息隊列。以通信(Communiation)范圍而論,它可以跨進程、跨機器、跨子網、企業網乃至於Internet;以宿主程序而論,可以以ASP.NET,EXE,WPF,WindowsForms,NTService,COM+作為宿主(Host)。WCF可以支持的協議包括TCP,HTTP,跨進程以及自定義,安全模式則包括SAML,Kerberos,X509,用戶/密碼,自定義等多種標准與模式。也就是說,在WCF框架下,開發基於SOA的分布式系統變得容易了,微軟將所有與此相關的技術要素都包含在內,掌握了WCF,就相當於掌握了叩開SOA大門的鑰匙。

WCF與Web 服務是什么關系,WCF 能夠創建兼容 Web 服務的服務,也就是說可以創建能夠與Web 服務互聯互通的服務,他們兩個並不能用簡單包含或者等同關系來表述。WCF 是一套框架,用來創建各種服務。其中包括創建 Web服務(采用 basicHttpBinding綁定的服務就是一個Web 服務)。

WCF可以不依賴於IIS。
WCF可以配置成BasicHttpBinding來兼容(或者說變身成)WS。
WCF可以基於TCP或者MessegeQueue來傳輸數據。
WCF的可配置性比WS強,比如安全性。
WCF可以是有狀態的,並支持事務。
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 支持多種並發模式:單例、單調、會話

其他的WCF文章 

1. WCF入門

2. 我的第一個WCF程序

3. Web Service 和WCF的比較

4. 基於.NET的WebService的實現和WCF的實現


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM