1.WebService:嚴(yán)格來說是行業(yè)標(biāo)準(zhǔn),不是技術(shù),使用xml擴(kuò)展標(biāo)記語言來表示數(shù)據(jù)(這個(gè)是夸語言和平臺(tái)的關(guān)鍵)。微軟的Web服務(wù)實(shí)現(xiàn)稱為asp.netWebService.它使用Soap簡(jiǎn)單對(duì)象訪問協(xié)議來實(shí)現(xiàn)分布式環(huán)境里應(yīng)用程序之間的數(shù)據(jù)交互。WSDL來實(shí)現(xiàn)服務(wù)接口相關(guān)的描述。此外Webservices可以注冊(cè)到UDDI中心.供其客戶查找使用。后來微軟做了ASP.NETWebService的安全,性能,數(shù)據(jù)加密、解密,托管宿主等多方面的擴(kuò)展,稱為WSE系列,這個(gè)是過度產(chǎn)品,最高到WSE3.0.后來就是WCF時(shí)代。
2.WCF:其實(shí)一定程度上就是ASP.NETWebService,因?yàn)樗С諻ebService的行業(yè)標(biāo)準(zhǔn)和核心協(xié)議,因此ASP.NETWebService和WSE能做的事情,它幾乎都能勝任,跨平臺(tái)和語言更不是問題(數(shù)據(jù)也支持XML格式化,而且提供了自己的格式化器)。但是WCF作為微軟主推一個(gè)通訊組件或者平臺(tái),它的目標(biāo)不僅僅是在支持和集成WebService,因?yàn)樗€兼容和具備了微軟早期很多技術(shù)的特性。
根據(jù)微軟官方的解釋,WCF(之前的版本名為“Indigo”)是使用托管代碼建立和運(yùn)行面向服務(wù)(ServiceOriented)應(yīng)用程序的統(tǒng)一框架。它使得開發(fā)者能夠建立一個(gè)跨平臺(tái)的安全、可信賴、事務(wù)性的解決方案,且能與已有系統(tǒng)兼容協(xié)作。WCF是微軟分布式應(yīng)用程序開發(fā)的集大成者,它整合了.Net平臺(tái)下所有的和分布式系統(tǒng)有關(guān)的技術(shù),如EnterPRiseSevices(COM+).NetRemoting、WebService(ASMX)、WSE3.0和MSMQ消息隊(duì)列。以通信(Communiation)范圍而論,它可以跨進(jìn)程、跨機(jī)器、跨子網(wǎng)、企業(yè)網(wǎng)乃至于Internet;以宿主程序而論,可以以ASP.NET,EXE,WPF,WindowsForms,NTService,COM+作為宿主(Host)。WCF可以支持的協(xié)議包括TCP,HTTP,跨進(jìn)程以及自定義,安全模式則包括SAML,Kerberos,X509,用戶/密碼,自定義等多種標(biāo)準(zhǔn)與模式。也就是說,在WCF框架下,開發(fā)基于SOA的分布式系統(tǒng)變得容易了,微軟將所有與此相關(guān)的技術(shù)要素都包含在內(nèi),掌握了WCF,就相當(dāng)于掌握了叩開SOA大門的鑰匙。
WCF具有如下的優(yōu)勢(shì):
1、統(tǒng)一性 前面已經(jīng)敘述,WCF是對(duì)于ASMX,.NetRemoting,EnterpriseService,WSE,MSMQ等技術(shù)的整合。由于WCF完全是由托管代碼編寫,因此開發(fā)WCF的應(yīng)用程序與開發(fā)其它的.Net應(yīng)用程序沒有太大的區(qū)別,我們?nèi)匀豢梢韵駝?chuàng)建面向?qū)ο蟮膽?yīng)用程序那樣,利用WCF來創(chuàng)建面向服務(wù)的應(yīng)用程序。
2、互操作性 由于WCF最基本的通信機(jī)制是SOAP(SimpleObjectaccessProtocol簡(jiǎn)易對(duì)象訪問協(xié)議),這就保證了系統(tǒng)之間的互操作性,即使是運(yùn)行不同的上下文中。這種通信可以是基于.Net到.Net間的通信,如下圖所示: 可以跨進(jìn)程、跨機(jī)器甚至于跨平臺(tái)的通信,只要支持標(biāo)準(zhǔn)的WebService,例如J2EE應(yīng)用服務(wù)器(如WebSphere,WebLogic)。應(yīng)用程序可以運(yùn)行在Windows操作系統(tǒng)下,也可以運(yùn)行在其他的操作系統(tǒng),如SunSolaris,HPUnix,linux等等。如下圖所示:
3、安全與可信賴 WS-Security,WS-Trust和WS-SecureConversation均被添加到SOAP消息中,以用于用戶認(rèn)證,數(shù)據(jù)完整性驗(yàn)證,數(shù)據(jù)隱私等多種安全因素。 在SOAP的header中增加了WS-ReliableMessaging允許可信賴的端對(duì)端通信。而建立在WS-Coordination和WS-AtomicTransaction之上的基于SOAP格式交換的信息,則支持兩階段的事務(wù)提交(two-phasecommittransactions)。
上述的多種WS-Policy在WCF中都給與了支持。對(duì)于Messaging而言,SOAP是WebService的基本協(xié)議,它包含了消息頭(header)和消息體(body)。在消息頭中,定義了WS-Addressing用于定位SOAP消息的地址信息,同時(shí)還包含了MTOM(消息傳輸優(yōu)化機(jī)制,MessageTransmissionOptimizationMechanism)。如圖所示:
4、兼容性 WCF充分的考慮到了與舊有系統(tǒng)的兼容性。安裝WCF并不會(huì)影響原有的技術(shù)如ASMX和.NetRemoting。即使對(duì)于WCF和ASMX而言,雖然兩者都使用了SOAP,但基于WCF開發(fā)的應(yīng)用程序,仍然可以直接與ASMX進(jìn)行交互。
更本區(qū)別
WCF支持多種通信協(xié)議Http/Https、TCP/UDP、MSMQ、命名管道、對(duì)等網(wǎng)、
消息可達(dá)性、事務(wù)流等。
WCF可以與ASP.NET集成、共享一個(gè)上下文(HttpContext)。
WCF支持多種消息傳輸格式:text,binary,mtom,Json等。
WCF安全性要強(qiáng):支持對(duì)稱安全、非對(duì)稱安全、消息安全、傳輸安全、
SSL流安全、Windows流安全等。
WCF支持多種會(huì)話模式:?jiǎn)蜗颉㈦p向、請(qǐng)求/響應(yīng)。
WCF支持REST。
WCF支持多種格式化方式。DataContractSerializer、XmlSerializer、
DataContractJsonSerializer等。
WCF支持WAShosting、Windows服務(wù)hosting、Self-Hosting、IIShosting等。
WCF支持多種并發(fā)模式:?jiǎn)卫握{(diào)、會(huì)話。W
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注