學習筆記:WCF綁定介紹
WCF有很多值得學習的地方,這里我們主要介紹WCF綁定,我們來一起看看吧,希望能變?yōu)槟愕呢敻?。與任何給定的服務進行通訊都存在多方面的問題。首先,存在許多可能的通訊模式:消息可能是同步請求/響應或異步式的"激活-忘記"模式(fire-and-forget);消息也可能是雙向的;消息能夠被立即傳輸或隊列化操作而該隊列可能是持久性的或易破壞性的。
#T#還存在許多可能的消息傳輸協(xié)議:例如HTTP(或HTTPS),TCP,P2P(端對端網(wǎng)絡),IPC(命名管道)或MSMQ。也存在一些可能的消息編碼選項:你可以選擇普通文本以支持互操作性,二進制編碼以便于優(yōu)化性能,或MTOM(消息傳輸優(yōu)化機制)以便處理巨大載荷。也存在一些消息保護選項:你可以選擇不對之進行保護,你也可以使用它們來僅提供傳輸級安全或提供消息級隱私和安全,并且當然,也存在很多種方式用于對客戶端實現(xiàn)認證和授權。消息傳輸在跨越中間媒體和中斷連接時可能是不可靠的或可靠的端到端式,并且消息可能是以其發(fā)送的方式傳輸?shù)幕蚴且云浣邮辗绞絺鬏數(shù)摹?/P>
通訊服務可能需要與其它服務或僅能夠使用基本W(wǎng)eb服務協(xié)議的客戶端互操作,或者它們能夠使用WS-*現(xiàn)代協(xié)議的核心(例如WS-安全和WS-原子事務)。通訊服務可能需要與舊式的客戶端通過原始的MSMQ消息進行互操作,或你可能想限制通訊服務以便僅與另一個WCF服務或客戶端互操作。
簡言之,通訊存在許多方面的內容,包括大量的參數(shù)和決策點。其中,一些選擇可能是互斥的,而另一些選擇可能要求必須使用另外的相應選擇。很明顯,客戶端和服務必須在所有這些選項上相吻合,以達到正確交流的目的。為了簡化并使其更具可管理性,WCF小組共同在綁定中提供了一個這樣的通訊方面集合。
綁定僅僅是對于相協(xié)調的傳輸協(xié)議、消息編碼、通訊模式、可靠性、安全性、事務傳播和互操作性的預封裝。理想情況下,你能夠從通訊服務代碼中"提取"所有的這些繁重的任務方面并且允許它專注于實現(xiàn)業(yè)務邏輯。這樣做可以使你在相當不同的繁重任務方面使用相同的服務邏輯,而綁定正好使你能夠實現(xiàn)這一目的。
你可以使用提供的WCF綁定,也就是說,你或者可以"濃縮"它們的屬性,或者是從頭編寫通訊自己的定制綁定。一個服務在它的元數(shù)據(jù)中出版它的綁定選擇,這使得客戶端能夠查詢這種類型和綁定的特定屬性,因為客戶端必須使用與服務完全一樣的綁定。單個服務能夠支持在獨立的地址上的多個綁定。
通常,服務并不指定關于綁定本身。WCF定義了WCF綁定?;谖谋镜木幋a使一個WCF服務(或客戶端)能夠通過HTTP與任何其它服務(或客戶端)進行交流而不考慮它的技術;然而,通過TCP或IPC的二進制編碼傳輸能夠產(chǎn)生***的性能,但是卻以失去極廣泛的互操作性為代價(因為它必須使用WCF到WCF的通訊)。