|
作為一個(gè)通信基礎(chǔ)平臺,WCF必須保證通信的可靠性。由于消息交換是WCF采用的通信手段,通信可靠性的保障體現(xiàn)在確保消息的可靠傳輸。WCF本質(zhì)上是一個(gè)消息處理框架,作為整個(gè)消息交換系統(tǒng)的兩個(gè)終端,即發(fā)送端和接收端。換句話說,WCF僅僅負(fù)責(zé)對消息的發(fā)送和接收,一旦消息通過WCF的信道層進(jìn)入了網(wǎng)絡(luò),就脫離了WCF的控制范圍。但是,由于網(wǎng)絡(luò)環(huán)境的限制,網(wǎng)絡(luò)層不能百分之百地確保對消息的有效交付。如何克服中間環(huán)節(jié)的制約,確保從一端發(fā)送的消息能夠被有效地交付給另一端,這就是可靠消息傳輸(Reliable Messaging)需要解決的問題。WCF通過可靠會(huì)話(Reliable Sessions)實(shí)現(xiàn)了種種端到端(End to End)的可靠消息傳輸。
【實(shí)例篇】
為了讓讀者對可靠會(huì)話的作用現(xiàn)有一個(gè)直觀的認(rèn)識,我們先來做一個(gè)很有意思的實(shí)例演示。這也是早年微軟推廣WCF技術(shù)頻繁使用的案例:圖片傳輸。在客戶端,我們選擇一張圖片,并對它進(jìn)行切片,最后通過調(diào)用WCF服務(wù)將每一個(gè)切片依次傳輸?shù)椒?wù)端。服務(wù)端則按照切片被接收到的順序重新組裝成一張完整的圖片。如果中間有任何一張切片丟失,服務(wù)端最終組裝圖片將不會(huì)完整;如果服務(wù)端切片接收的次序和發(fā)送順序不一致,將會(huì)造成組裝后的圖片并不能還原其發(fā)送前的模樣。在這里,我們充分利用了WCF中的可靠會(huì)話提供了可靠而有序的消息交付… 閱讀全文
【概念篇】
WCF的可靠會(huì)話這涉及到WS中一個(gè)重要的概念——可靠消息傳輸(RM:Reliable Messaging)。如果想對可靠會(huì)話有一個(gè)深入的認(rèn)識,對可靠消息傳輸?shù)牧私馐潜仨毜摹N覀兛梢詫⒁粋€(gè)通過WCF構(gòu)建的分布式應(yīng)用劃分為兩個(gè)部分,即客戶端應(yīng)用和服務(wù)端應(yīng)用,它們之間的交互方式即采用某種MEP的消息交換。在這里,我們需要通過可靠消息傳輸機(jī)制確保從客戶端應(yīng)用(或者服務(wù)端應(yīng)用)發(fā)送的消息能夠成功地被服務(wù)端應(yīng)用(或者客戶端應(yīng)用)接收。也就是說,可靠消息傳輸提供的是一種端到端的消息傳輸確保機(jī)制,而不管兩個(gè)終端之間是否具有相應(yīng)的中間結(jié)點(diǎn)(Intermediary),比如路由器、防火墻和代理之類… 閱讀全文
【協(xié)議篇-上】
在WS-*大家庭中,WS-RM為可靠消息傳輸提供了一個(gè)一個(gè)規(guī)范,使互操作成為可能。在《協(xié)議篇》中,我們側(cè)重對WS-RM的介紹。WS- RM,為WS-Reliable Messaging的簡稱,是WS-*大家庭的一個(gè)重要成員。和前面介紹的WS-Coordination和WS-AT一樣,WS-RM的制定者是結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織(OASIS)。制定WS-RM的一個(gè)主要目的就是創(chuàng)建一個(gè)模塊化的實(shí)現(xiàn)可靠詳細(xì)傳輸(Reliable Messaging)的機(jī)制。WS-RM定義了一種消息傳輸協(xié)議(Messaging Protocol),以實(shí)現(xiàn)在可靠消息傳輸過程中對消息的識別、追蹤和管理。并在此基礎(chǔ)上,定義了SOAP綁定實(shí)現(xiàn)了互操作。到目前為止,WS-RM先后出了兩個(gè)官方版本,即WS-RM 1.0和WS-RM 1.1… 閱讀全文
【協(xié)議篇-下】
在《上篇》中,我們認(rèn)識了從序列創(chuàng)建到終止過程中消息交換的大致流程。下篇將關(guān)注點(diǎn)聚焦到單個(gè)消息上,看看在整個(gè)基于序列的上下文中進(jìn)行的,不同類型的消息具有怎樣的結(jié)構(gòu)… 閱讀全文
【編程篇-上】
在《實(shí)例篇》給出的例子中,我們實(shí)際上是通過對終結(jié)點(diǎn)的綁定進(jìn)行相應(yīng)的配置讓整個(gè)消息的交換過程在一個(gè)可靠會(huì)話中進(jìn)行,進(jìn)而實(shí)現(xiàn)可靠消息傳輸?shù)哪康摹S捎谡麄€(gè)可靠會(huì)話的機(jī)制是完全在信道層實(shí)現(xiàn)的,而整個(gè)信道層的最終締造者就是綁定,所以可靠會(huì)話編程是圍繞著綁定進(jìn)行的。本篇文章主要為你講述基于綁定的可靠會(huì)話編程… 閱讀全文
【編程篇-下】
整個(gè)可靠會(huì)話的機(jī)制是完全在信道層實(shí)現(xiàn)的,而整個(gè)信道層的最終締造者就是綁定,所以可靠會(huì)話編程是圍繞著綁定進(jìn)行的。《上篇》對實(shí)現(xiàn)可靠會(huì)話的綁定元素已經(jīng)如何使用系統(tǒng)綁定實(shí)現(xiàn)可靠會(huì)話進(jìn)行了介紹,下篇將和你探討WCF可靠會(huì)話編程模型余下兩個(gè)主題:自定義綁定和對消息傳遞的強(qiáng)制約束… 閱讀全文
【原理篇-上】
可靠會(huì)話的編程僅僅圍繞著一個(gè)對象,那就是綁定。綁定在整個(gè)WCF架構(gòu)模型具有重要的地位。WCF整個(gè)架構(gòu)模型由兩部分構(gòu)成,即服務(wù)模型(Service Model)層和信道(Channel)層,而綁定是信道層的締造者,同時(shí)也是連接兩個(gè)層次的紐帶。對可靠會(huì)話的實(shí)現(xiàn),是完全在信道層實(shí)現(xiàn)的。 綁定是由一系列綁定元素的有序組合,不同的保定元素具有各自的目的,而實(shí)現(xiàn)可靠會(huì)話的是一個(gè)叫做ReliableSessionBindingElement的綁定元素… 閱讀全文
【原理篇-下】
上面一部分我們站在信道層的角度剖析了WCF為了實(shí)現(xiàn)可靠會(huì)話在信道層進(jìn)行的一系列消息交換,或者說客戶端和服務(wù)端的RS信道為了實(shí)現(xiàn)可靠消息傳輸所進(jìn)行一輪又一輪的握手。這一切都是基于這樣一個(gè)假設(shè):兩個(gè)RS信道均可以在適當(dāng)?shù)臅r(shí)機(jī)向?qū)Ψ桨l(fā)送消息,或者說兩個(gè)RS信道之間是一個(gè)雙工的通道。 如果我們站在傳輸層看待這個(gè)問題,該假設(shè)對于TCP傳輸是成立的,但是對于HTTP來說就有點(diǎn)問題了。HTTP本身就是一個(gè)基于請求|回復(fù)消息交換模式的應(yīng)用層網(wǎng)絡(luò)協(xié)議,并不能對雙工通信提供支持。而WCF通過WSDualHttpBinding實(shí)現(xiàn)的雙工通信機(jī)制和NETTcpBinding支持的雙工通信具有本質(zhì)的區(qū)別。 NETTcpBinding創(chuàng)建的傳輸通道就是一個(gè)雙工的TCP連接,而WSDualHttpBinding創(chuàng)建的所謂的雙工通道實(shí)際上是兩個(gè)方向相反的HTTP連接。接下來我們主要討論當(dāng)我們采用基于HTTP綁定——WSHttpBinding(或者是 WS2007HttpBinding)和WSDualHttpBinding)時(shí),實(shí)現(xiàn)可靠會(huì)話所進(jìn)行的通信方式… 閱讀全文
作者:Artech出處:http://artech.cnblogs.com
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
NET技術(shù):使命必達(dá):深入剖析WCF的可靠會(huì)話,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。