首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WCF 技術內幕(35):通道——通道功能分類與組合通道

     編輯:關於.NET

通道的三大功能面向

通道可實作任意訊息功能並嵌入 WCF 執行階段。概念上分為三類:

1. 傳輸通道

與網路、檔案系統、記憶體或外部系統(SQL Server、SAP、Oracle)互動。WCF 內建 TCP/IP、HTTP、Named Pipes、MSMQ 傳輸通道。其他候選:檔案系統、SMTP/POP3/FTP、SQL Server Service Broker。自訂傳輸通道讓開發者專注業務邏輯而非底層 API。堆疊中傳輸通道通常位於最底層:發送端為最後一關,接收端為第一關。無傳輸通道的堆疊無實際價值(極端例外除外)。

2. 協議通道

實作 WS-* 規範:WS-ReliableMessaging、WS-AtomicTransaction、WS-SecureConversation。特徵:產生額外訊息,上層通道不理解這些訊息。例如 WS-RM 通道會攔截應答訊息執行協議邏輯,僅在雙向合約時將應答傳遞上層。堆疊可包含多個協議通道,運作方式類似。

3. 組合通道

修改通道形狀,創造複用現有功能的新方式。例如:MSMQ 原為單向訊息,自訂組合通道可包裝一個 MSMQ 接收通道與一個發送通道,對外呈現 IDuplexChannel,實現雙工通訊。

組合通道的執行緒與同步挑戰

組合通道包裝多個子通道,狀態機轉換需協調所有子通道。上層呼叫 BeginOpen/BeginClose 時,組合通道必須回傳代表子通道非同步操作結果的 IAsyncResult。涉及複雜的執行緒同步機制,建議參考:

  • Wintellect PowerThreading 庫
  • Jeffrey Richter 《CLR via C#》執行緒章節
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved