剖析概括WCF可靠性能
對于我們開發(fā)項目我們都是做到最安全的,如果一門技術(shù)安全性能特別好的它就會被我們使用,沒人想建立一個全是安全隱患的應用系統(tǒng)。恰恰相反,我們會盡量確保我們的系統(tǒng)是安全的。如果我們現(xiàn)在這樣做,將來一定會做。過去,它取決于我們、開發(fā)者架構(gòu)師或者測試人員知道如何用安全的方式配置我們的系統(tǒng)。我們可以看到無數(shù)為我們的系統(tǒng)提供安全的技術(shù),而確定那種技術(shù)或者技術(shù)的整個對我們的應用安全是正確的選擇是非常困難的。
創(chuàng)新的是,WCF支持多種安全模型,并且可以方便地實現(xiàn)廣泛接受的安全措施。自從WCF有的擴展架構(gòu),擴展WCF安全滿足特殊應用的需求相對變的容易許多。默認的安全選項從像WS-Security和相關(guān)規(guī)范里描述的傳統(tǒng)的傳輸安全到現(xiàn)代的消息安全。
WCF可靠性
分布式應用經(jīng)常需要支持可靠消息。在分布式計算,可靠消息在保證里經(jīng)常提到。一個保證就像擔保。下面是4種保證使用在分布式計算場景里;
1.最多一次一個消息保證最多發(fā)送到目的地一次。如果一個消息到達目的地多次,可以被忽略或者當做錯誤。
2.最少一次一個消息保證最少到達目的地一次,如果沒有到達,則視為錯誤。
3.僅僅一次最多一次和最少一次的結(jié)合,它擔保消息只到達目的地一次。
4.有序一個信息的邏輯集合可以分布在多個消息體了,這些消息可以在特定的順序發(fā)送,有序保證就是確保消息可以按照發(fā)送的順序處理。
#T#經(jīng)驗告訴我們,網(wǎng)絡和產(chǎn)生網(wǎng)絡通信的應用程序師部可靠的。整體來說,如果一個應用經(jīng)過網(wǎng)絡發(fā)送消息到另外一個應用,保證消息到達目的地的機制傳統(tǒng)上來自于傳輸??隙赡芤粋€或者兩個消息在傳輸?shù)倪^程中丟失。接受和發(fā)送的消息也可能不同,盡管消息到達的次數(shù)多于發(fā)送次數(shù)。粗多因素導致了不WCF可靠性,包括網(wǎng)絡過載,網(wǎng)絡連接丟失,程序bug和環(huán)境變化這些因素。
一個不可靠的網(wǎng)絡是氣人的,當你正在檢查郵件或者網(wǎng)上沖浪的時候,尤其是在分布式計算情況下會帶來更多麻煩。比如,如果一個順序處理程序當它在各個計算節(jié)點上傳輸消息的時候丟失了消息,這些問題可以類比到延遲送貨和憤怒的客戶。如果,當失敗發(fā)生的時候一個應用可以學習,那么它可以采取補救措施。
過去,一個應用的可靠需求指明了應用里要使用的技術(shù)。例如,MSMQ提供不同應用間的WCF可靠性傳輸。如果一個應用需要卡考消息傳輸,MSMQ是邏輯上的技術(shù)選擇。實現(xiàn)MSMQ,相當坦率地說,需要MSMQ規(guī)范知識和MSMQ規(guī)范代碼。編寫這些代碼和設置正確的運行環(huán)境需要知道MSMQ一些
不能與其他技術(shù)互用的MSMQ規(guī)范。本質(zhì)上,在過去,從一個應用到另外一個應用發(fā)送消息可靠的決心已經(jīng)影響到了應用程序的代碼和需要編寫程序的知識。WCF包括最多一次、最少一次、僅僅一次和有序傳遞的機制。WCF給應用系統(tǒng)提供了活多或少的修訂。甚至更好的是,傳輸保證機制是傳輸?shù)娜躐詈系?,因此即使通過傳統(tǒng)的非安全傳輸也是可以保證消息傳遞。
備注:不要混淆可靠消息和持久化消息。從高層次看,持久化消息被處理的時候會被存儲到非易失性介質(zhì)中。如果應用程序粗意外終止和易失性內(nèi)存被清空,消息依然在持久化介質(zhì)中。
事務支持
在互聯(lián)的世界里,處理收到消息的工作涉及后續(xù)的發(fā)送給其他應用系統(tǒng)的消息。優(yōu)勢這些工作需要執(zhí)行在事務的范圍內(nèi)。簡單地說,事務是一個可以確保所有或沒有任何工作可以被執(zhí)行完成。WCF支持跨越多個系統(tǒng)的事務范圍。