使命必達:深入剖析WCF的可靠會話

作者: Artech  來源: 博客園  發布時間: 2010-05-14 10:59  閱讀: 1565 次  推薦: 0   原文鏈接   [收藏]  

  作為一個通信基礎平臺,WCF必須保證通信的可靠性。由于消息交換是WCF采用的通信手段,通信可靠性的保障體現在確保消息的可靠傳輸。WCF本質上是一個消息處理框架,作為整個消息交換系統的兩個終端,即發送端和接收端。換句話說,WCF僅僅負責對消息的發送和接收,一旦消息通過WCF的信道層進入了網絡,就脫離了WCF的控制范圍。但是,由于網絡環境的限制,網絡層不能百分之百地確保對消息的有效交付。如何克服中間環節的制約,確保從一端發送的消息能夠被有效地交付給另一端,這就是可靠消息傳輸(Reliable Messaging)需要解決的問題。WCF通過可靠會話(Reliable Sessions)實現了種種端到端(End to End)的可靠消息傳輸。

  【實例篇】

  為了讓讀者對可靠會話的作用現有一個直觀的認識,我們先來做一個很有意思的實例演示。這也是早年微軟推廣WCF技術頻繁使用的案例:圖片傳輸。在客戶端,我們選擇一張圖片,并對它進行切片,最后通過調用WCF服務將每一個切片依次傳輸到服務端。服務端則按照切片被接收到的順序重新組裝成一張完整的圖片。如果中間有任何一張切片丟失,服務端最終組裝圖片將不會完整;如果服務端切片接收的次序和發送順序不一致,將會造成組裝后的圖片并不能還原其發送前的模樣。在這里,我們充分利用了WCF中的可靠會話提供了可靠而有序的消息交付… 閱讀全文

  【概念篇】

  WCF的可靠會話這涉及到WS中一個重要的概念——可靠消息傳輸(RM:Reliable Messaging)。如果想對可靠會話有一個深入的認識,對可靠消息傳輸的了解是必須的。我們可以將一個通過WCF構建的分布式應用劃分為兩個部分,即客戶端應用和服務端應用,它們之間的交互方式即采用某種MEP的消息交換。在這里,我們需要通過可靠消息傳輸機制確保從客戶端應用(或者服務端應用)發送的消息能夠成功地被服務端應用(或者客戶端應用)接收。也就是說,可靠消息傳輸提供的是一種端到端的消息傳輸確保機制,而不管兩個終端之間是否具有相應的中間結點(Intermediary),比如路由器、防火墻和代理之類… 閱讀全文

  【協議篇-上】

  在WS-*大家庭中,WS-RM為可靠消息傳輸提供了一個一個規范,使互操作成為可能。在《協議篇》中,我們側重對WS-RM的介紹。WS- RM,為WS-Reliable Messaging的簡稱,是WS-*大家庭的一個重要成員。和前面介紹的WS-Coordination和WS-AT一樣,WS-RM的制定者是結構化信息標準促進組織(OASIS)。制定WS-RM的一個主要目的就是創建一個模塊化的實現可靠詳細傳輸(Reliable Messaging)的機制。WS-RM定義了一種消息傳輸協議(Messaging Protocol),以實現在可靠消息傳輸過程中對消息的識別、追蹤和管理。并在此基礎上,定義了SOAP綁定實現了互操作。到目前為止,WS-RM先后出了兩個官方版本,即WS-RM 1.0和WS-RM 1.1… 閱讀全文

  【協議篇-下】

  在《上篇》中,我們認識了從序列創建到終止過程中消息交換的大致流程。下篇將關注點聚焦到單個消息上,看看在整個基于序列的上下文中進行的,不同類型的消息具有怎樣的結構… 閱讀全文

  【編程篇-上】

  在《實例篇》給出的例子中,我們實際上是通過對終結點的綁定進行相應的配置讓整個消息的交換過程在一個可靠會話中進行,進而實現可靠消息傳輸的目的。由于整個可靠會話的機制是完全在信道層實現的,而整個信道層的最終締造者就是綁定,所以可靠會話編程是圍繞著綁定進行的。本篇文章主要為你講述基于綁定的可靠會話編程… 閱讀全文

  【編程篇-下】

  整個可靠會話的機制是完全在信道層實現的,而整個信道層的最終締造者就是綁定,所以可靠會話編程是圍繞著綁定進行的。《上篇》對實現可靠會話的綁定元素已經如何使用系統綁定實現可靠會話進行了介紹,下篇將和你探討WCF可靠會話編程模型余下兩個主題:自定義綁定和對消息傳遞的強制約束… 閱讀全文

  【原理篇-上】

  可靠會話的編程僅僅圍繞著一個對象,那就是綁定。綁定在整個WCF架構模型具有重要的地位。WCF整個架構模型由兩部分構成,即服務模型(Service Model)層和信道(Channel)層,而綁定是信道層的締造者,同時也是連接兩個層次的紐帶。對可靠會話的實現,是完全在信道層實現的。 綁定是由一系列綁定元素的有序組合,不同的保定元素具有各自的目的,而實現可靠會話的是一個叫做ReliableSessionBindingElement的綁定元素… 閱讀全文

  【原理篇-下】

  上面一部分我們站在信道層的角度剖析了WCF為了實現可靠會話在信道層進行的一系列消息交換,或者說客戶端和服務端的RS信道為了實現可靠消息傳輸所進行一輪又一輪的握手。這一切都是基于這樣一個假設:兩個RS信道均可以在適當的時機向對方發送消息,或者說兩個RS信道之間是一個雙工的通道。 如果我們站在傳輸層看待這個問題,該假設對于TCP傳輸是成立的,但是對于HTTP來說就有點問題了。HTTP本身就是一個基于請求|回復消息交換模式的應用層網絡協議,并不能對雙工通信提供支持。而WCF通過WSDualHttpBinding實現的雙工通信機制和NetTcpBinding支持的雙工通信具有本質的區別。 NetTcpBinding創建的傳輸通道就是一個雙工的TCP連接,而WSDualHttpBinding創建的所謂的雙工通道實際上是兩個方向相反的HTTP連接。接下來我們主要討論當我們采用基于HTTP綁定——WSHttpBinding(或者是 WS2007HttpBinding)和WSDualHttpBinding)時,實現可靠會話所進行的通信方式… 閱讀全文

  作者:Artech
  出處:http://artech.cnblogs.com
  本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
0
0
 
標簽:WCF
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()