艾伟:WCF从理论到实践(2):决战紫禁之巅
本系列文章導(dǎo)航
WCF從理論到實踐(1):揭開神秘面紗
WCF從理論到實踐(2):決戰(zhàn)紫禁之巔
WCF從理論到實踐(3):八號當(dāng)鋪之黑色契約
WCF從理論到實踐(4):路在何方
WCF從理論到實踐(5):Binding細(xì)解
WCF從理論到實踐(6):WCF架構(gòu)
WCF從理論到實踐(7):消息交換模式
WCF從理論到實踐(8):事件廣播
WCF從理論到實踐(9):實例模式和對象生命周期
WCF從理論到實踐(10):異常處理
WCF從理論到實踐(11)-異步
WCF從理論到實踐(12):事務(wù)
WCF從理論到實踐(13):事務(wù)投票
WCF從理論到實踐(14):WCF解決方案模板
WCF從理論到實踐(15):響應(yīng)變化
WCF從理論到實踐(16):操作重載(帶視頻+ppt+源碼)
WCF從理論到實踐(17):OO大背離(帶視頻+ppt+源碼)
本文的出發(fā)點
通過閱讀本文,能解決如下問題:
?
本文適合的讀者
有過分布式開發(fā)和SOA相關(guān)實施經(jīng)驗的開發(fā)人員
?
WCF與以往的分布式技術(shù)有何區(qū)別?
在上篇文章 WCF從理論到實踐一:揭開神秘面紗 中曾經(jīng)闡述過WCF的前生今世,說的比較概括,本文詳細(xì)的說明WCF和以往的分布式技術(shù)的區(qū)別,目的是讓大家更詳細(xì)的了解WcF的應(yīng)用場合,為日后系統(tǒng)的架構(gòu)作鋪墊。首先先看下面這張對比表格
WCF與其他分布式技術(shù)對比表
| ? | Xml Web Service | .Net Remoting | Enterprice Service | WSE | MSMQ | WCF |
| 跨平臺 | √ | ? | ? | ? | ? | √ |
| .Net與.Net通訊 | ? | √ | ? | ? | ? | √ |
| 分布式事務(wù) | ? | ? | √ | ? | ? | √ |
| 安全可靠性 | ? | ? | ? | √ | ? | √ |
| 消息隊列 | ? | ? | ? | ? | √ | √ |
上面的表格參考了Bruchzhang文章中的對比圖,原文地址: http://www.cnblogs.com/wayfarer/archive/2006/04/05/367474.html
從表格中我們可以看出,WCF似乎等于前面幾項技術(shù)之和,但事實并非如此,它既整合了原來的多項技術(shù),而且擁有著自己得天獨厚的優(yōu)點,如下
:??WCF 在安全性方面做了哪些改進(jìn)?
為了保證數(shù)據(jù)通訊的安全,WCF提供了三種保護(hù)措施:1)機(jī)密性(Confidentiality)2)完整性(Integrity) 3)可驗證性(Authentication),這三種措施聯(lián)合起來被稱為CIA。并且這些措施在WCF中是默認(rèn)支持的。機(jī)密性能保證傳輸?shù)臄?shù)據(jù)是經(jīng)過加密的,不被非法監(jiān)聽(eavesdrop),而完整性利用數(shù)字簽名技術(shù)防止數(shù)據(jù)在傳輸過程中被注入(injected)或篡改(tampered),而驗證(Authentication)可以采用靈活的策略來處理達(dá)到的客戶端請求,比如用戶名密碼驗證,客戶端證書驗證等。為了顯示W(wǎng)CF在安全性方面的特點和優(yōu)點,我制作了演示程序:Security_Compare方案,這個方案主要通過對比wcf和xml web service的消息來表現(xiàn)wcf在安全方面的改進(jìn),工程清單如下:
| ProjectName(項目名稱) | Remark(備注) |
| Wcf | WCF的服務(wù)端程序,默認(rèn)創(chuàng)建,功能未經(jīng)修改 |
| WcfClient | WCF程序的客戶端,用于調(diào)用Wcf |
| WebService | Xml Web Service服務(wù)程序,完成功能和Wcf一樣 |
| WsClient | 是Xml Web Service的客戶端,用于調(diào)用WebService |
為了跟蹤Web Service和WCF的消息,我們還需要了解一下兩個工具:
原來一直用Trace Utilty來跟蹤xml web service的消息報文,非常好用,它能按包顯示出Soap信息,看起來也非常方便。有關(guān)它的消息,請從http://www.microsoft.com/downloads/details.aspx?FamilyId=C943C0DD-CEEC-4088-9753-86F052EC8450&displaylang=en 上下載SOAP Toolkit 3.0,安裝后,便出現(xiàn)了這個工具,在跟蹤xml web service的消息報文的時候,這個工具很好用,但跟蹤wcf的報文卻不行,能截獲到數(shù)據(jù),但每個報文都是空的,可能也和wcf報文是經(jīng)過加密的有關(guān)系吧, 搜索了一下,在artech的blog中發(fā)現(xiàn)這么一篇文章:[原創(chuàng)]我的WCF之旅(9):如何在WCF中使用tcpTrace來進(jìn)行Soap Trace,解決了我不能跟蹤wcf消息報文的難題,他也提到Trace Utilty不能跟蹤wcf,同時建議大家使用tcpTrace,并且說明了使用方法,對tcpTrace不熟悉的同學(xué)可以到他的blog上學(xué)習(xí),很實用,我在這里就不再贅述。
經(jīng)過我的跟蹤,我分別將Xml web Service的消息log到ws.txt中,將wcf的消息log到wcf.txt中,您可以從下面的本文相關(guān)文件下載中獲取這兩個文件,觀察二者在消息上的不同。用于演示的示例解決方案您也在相關(guān)文件下載中獲得。
?
WCF在性能方面有那些改進(jìn)?
大家都知道,越復(fù)雜,結(jié)構(gòu)層次越多的框架一般效率也越低,WCF是以往其他分布式技術(shù)的集成者,它結(jié)構(gòu)相對復(fù)雜,且由于默認(rèn)支持安全傳輸,在性能上應(yīng)該不如Xml Web Service技術(shù),更不用和.Net Remoting等比較,這是一個有框架設(shè)計經(jīng)驗和架構(gòu)師們都明白的簡單道理,但是事實怎么樣呢?wcf比xml web service性能到底是高還是底,低要低多少?這些問題很值得大家的研究和討論,其實已經(jīng)有人在此方面做了很詳細(xì)的對比,msdn上便有一篇專門介紹此方面知識的文章: WCF Performance Comparison?,對wcf性能感興趣的同學(xué),可以到這文章中學(xué)習(xí)。很詳盡。限于條件的限制,我這里只在我一臺機(jī)器上作一個簡單的對比,僅供參考。分別測試循環(huán)1000次對wcf和xml web service相同功能方法的調(diào)用,得到如下的數(shù)據(jù):
?
| ? | WCF | Web Service |
| 第一次 | 9523ms | 7561ms |
| 第二次 | 9480ms | 7465ms |
| 第三次 | 9508ms | 7708ms |
| 第四次 | 9487ms | 7900ms |
經(jīng)過四次測試數(shù)據(jù),我們可以得出,wcf的性能和xml web service相比的確要低,但差別不大,肯定在一個數(shù)量級之上。有關(guān)測試性能的解決方案Perfermence_Compare您能在相關(guān)文件下載中獲得。
?
WCF開發(fā)模型和以往的其他分布式技術(shù)有何區(qū)別?
WCF不僅僅在功能上集成了以往的分布式開發(fā)技術(shù),而且在編程模型中充分吸取原來技術(shù)的優(yōu)點,如xml web service的聲明性編程(declareable),和.net remoting中的配置(configuration)和wse中的安全策略聲明性配置方法,這樣wcf雖然功能強(qiáng)大,而且學(xué)習(xí)簡單,便于推廣。在vs2008中還集成了WCF Test Client,開發(fā)服務(wù)的時候,甚至不需要再開發(fā)測試客戶端就能用WCF Test Client來進(jìn)行調(diào)用,簡單之極,示例程序更是無需更改以行代碼,便可以運行。
上面這些是說了wse編程的簡單易學(xué)性,我總結(jié)出來,主要包括以下幾種特性
?
相關(guān)示例文件
?
示例程序和本文對比測試的平臺依據(jù)
windows xp sp2 + visual studio.net 2008 rtm
?
參考資料
轉(zhuǎn)載于:https://www.cnblogs.com/waw/archive/2011/08/29/2156926.html
總結(jié)
以上是生活随笔為你收集整理的艾伟:WCF从理论到实践(2):决战紫禁之巅的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 具有全局观的网络拓扑
- 下一篇: 5230主题下载