Web Service 的工做原理
Web Service也叫XML Web Service WebService是一種能夠接收從Internet或者Intranet上的其它系統中傳遞過來的請求,輕量級的獨立的通信技術。是:經過SOAP在Web上提供的軟件服務,使用WSDL文件進行說明,並經過UDDI進行註冊。WebService可用基於XML的SOAP來表示數據和調用請求,而且經過HTTP協議來傳輸這些XML格式的數據。web
webservice最大優勢就是實現異構平臺間的互通,這也是使用WebService的主要緣由之一。任何兩個應用程序,只要他們能讀寫XML,就能相互通訊。安全
一、webservice部署比較方便服務器
二、webservice的編寫,跟普通的class差很少網絡
三、固然還有一個好處:平臺無關。C#,Java寫的ws能夠相互調用併發
四、作分佈式系統框架
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的特性
一、統一性
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進行交互。
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。
WCF:WCF是一個分佈式應用的開發框架,屬於特定的技術,或者平臺。既不是標準也不是規範。
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 支持多種併發模式:單例、單調、會話