1. 程式人生 > >WCF系列博文(三)-----WCF定義的12中標準繫結特性

WCF系列博文(三)-----WCF定義的12中標準繫結特性

在使用WCF框架進行開發時,如何選擇一個適合的繫結對於訊息傳輸的可靠性,傳輸模式是否跨程序、主機、網路,傳輸模式的支援、安全性、效能等方面有著重要的影響。從本質來看,繫結具有的這些特性源於其使用的網路協議和編碼器。繫結是一個定製好的通道棧,包含了協議通道、傳輸通道和編碼器。所以在使用WCF框架進行開發時,如何選擇一個合適的繫結是非常必要的。

下面先介紹一下這12個標準繫結:

常用

1、基本繫結(BasicHttpBinding)
對應BasicHttpBinding類,能夠將WCF服務公開為傳統的ASMX Web服務,是以前就的程式能夠使用現在的WCF

服務。在實際開發中一個WCF服務可能會給不同的程式呼叫,如給Java的程式呼叫,給Flex的程式呼叫等,那麼採

用BasicHttpBinding最合適不過了
2、TCP繫結(NetTcpBinding)
對應與NetTcpBinding類,TCP繫結使用TCP協議在Intranet中跨機器的通訊,注意這裡是Intranet而非Internet。

支援多種特性,包括可靠性、事務性、安全性、以及WCF之間通訊的優化。前提是要求客戶端與服務端都必須使用

WCF
3、IPC繫結(NetNamedPipeBinding)
對應於NetNamedPipeBinding累,使用命名管道為同一機器通訊進行傳輸,安全性最高,因為不能接收其它機器的

外部呼叫。IPC協議繫結與TCP協議繫結相似,也是效能最好的繫結,因為IPC協議比TCP協議更簡單
4、Web服務(WS)繫結(WSHttpBinding)
對應於WSHttpBinding類,WS繫結使用Http或Https進行傳輸。為基於Internet的通訊提供了多種特性(可靠性、

事務性、安全性),遵循WS-*標準。該繫結用來與支援WS-*標準的系統進行互操作
5、MSMQ繫結(NetMsmqBinding)
對應於NetMsmqBinding類,它使用MSMQ進行傳輸,用於支援斷開的佇列呼叫
:二進位制編碼格式使用TCP、IPC、MSMQ可以獲取最佳效能,但是它是以犧牲互操作性為代價,因為它只支援

WCF到WCF的通訊

不常用
6、WS雙向繫結
對應於WSDualHttpBinding類,與WS繫結幾乎一樣,不過它支援雙向通訊。由於沒有支援回撥的行業標準,所以

不支援互操作性。在.NET服務匯流排以及NetTcpRelayBinding出現後,不再推薦使用
7、對等網路繫結
對應於NetPeerTcpBinding類,它使用對等網路來傳輸訊息:使用對等網路與客戶端可以訂閱的相同網格,並且廣

播訊息。設計網路拓撲與網路計算
8、聯邦WS繫結
對應於WSFederationHttpBinding類,主要是支援聯邦安全
9、聯邦WS 2007繫結
對應於WS2007FederationHttpBinding類,為WSFederationHttpBinding的更新版本
10、MSMQ整合繫結
對應於MsmqIntegrationBinding類,支援訊息佇列的繫結,MSMQ整合繫結可以將WCF訊息轉化為MSMQ訊息,

的設計目標就是為了與MSMQ客戶端互動

11、WS 2007繫結
對應於WS2007HttpBinding類,繼承與WSHttpBinding類,添加了對於事務、安全、可靠性規範的支援。
  現在知道了這些繫結的含義了,那麼我們該如何去選擇他們,下面通過一張圖,來幫助我們選擇合適的繫結。


  除此之外,效能也是我們要考慮的因素,通常情況 ,在滿足系統使用效能前提下,選擇一種最佳的繫結方式。一般的,使用IPC(即:netNamedPipeBinding)的繫結要優於使用TCP的繫結,而使用TCP(即:netTcpBinding)的繫結又優於使用HTTP的繫結。使用針對WCF優化的繫結要優於參與非WCF系統互動的繫結。