WCF學習- 體系結構

下圖說明了 Windows Communication Foundation (WCF) 體系結構的主要層。編程

WCF 體系結構

協定和說明

協定定義消息系統的各個方面。數據協定描述組成某一服務可建立或使用的每則消息的每一個參數。消息參數由 XML 架構定義語言 (XSD) 文檔定義,這使得任何理解 XML 的系統都可處理該文檔。消息協定使用 SOAP 協議定義特定消息部分,當互操做性要求對消息的某些部分進行更精細的控制時,消息協定可實現這種控制。服務協定指定服務的實際方法簽名,並以支持的編程語言之一(例如 Visual Basic 或 Visual C#)做爲接口進行分發。安全

策略和綁定規定與某一服務進行通訊所需的條件。例如,綁定必須(至少)指定所使用的傳輸(例如 HTTP 或 TCP)和編碼。策略包括安全要求和其餘條件,必須知足這些要求和條件才能與服務進行通訊。網絡

服務運行時

服務運行時層包含僅在服務實際運行期間發生的行爲,即該服務的運行時行爲。遏制控制處理的消息數,若是對服務的需求增加到預設限制,該消息數則會發生變化。錯誤行爲指定服務出現內部錯誤時應採起的操做,例如控制傳遞給客戶端的信息(信息過多會向惡意用戶提供攻擊的機會)。元數據行爲控制是否以及如何向外部提供元數據。實例行爲指定可運行的服務實例的數目(例如,singleton 指定只能用單一實例來處理全部消息)。經過事務行爲,能夠在失敗時回滾已進行事務處理的操做。調度行爲用於控制 WCF 基礎結構處理消息的方式。架構

經過擴展性功能能夠自定義運行時進程。例如,消息檢查功能用於檢查消息的各個部分,使用參數篩選功能能夠根據做用於消息頭的篩選器來執行預設操做。編程語言

消息傳遞

消息傳遞層由通道組成。通道是以某種方式對消息進行處理(例如經過對消息進行身份驗證)的組件。一組通道也稱爲「通道堆棧」。通道對消息和消息頭進行操做。這與服務運行時層不一樣,服務運行時層主要涉及對消息正文內容的處理。優化

有兩種類型的通道:傳輸通道和協議通道。編碼

傳輸通道讀取和寫入來自網絡(或外部的某些其餘通訊點)的消息。某些傳輸通道使用編碼器來將消息(表示爲 XML Infoset)轉換爲網絡所使用的字節流的表示形式,或將字節流表示形式轉換爲消息。傳輸通道的示例包括 HTTP、命名管道、TCP 和 MSMQ。編碼的示例包括 XML 和優化的二進制文件。代理

協議通道常常經過讀取或寫入消息的其餘頭的方式來實現消息處理協議。此類協議的示例包括 WS-Security 和 WS-Reliability。blog

消息傳遞層說明數據的可能格式和交換模式。WS-Security 是對在消息層啓用安全性的 WS-Security 規範的實現。經過 WS-Reliable Messaging 通道能夠保證消息的傳遞。編碼器提供了大量的編碼,可以使用這些編碼來知足消息的須要。HTTP 通道指定應使用超文本傳輸協議來傳遞消息。同理,TCP 通道指定 TCP 協議。事務流通道控制已通過事務處理的消息模式。經過命名管道通道能夠進行進程間通訊。使用 MSMQ 通道能夠與 MSMQ 應用程序進行互操做。接口

承載和激活

服務的最終形式爲程序。與其餘程序相似,服務必須在可執行文件中運行。這稱爲「自承載」服務。

某些服務(如 IIS 或 Windows 激活服務 (WAS))「被承載」,即在外部代理管理的可執行文件中運行。經過 WAS,能夠在運行 WAS 的計算機上部署 WCF 應用程序時自動激活該應用程序。還可經過可執行文件(.exe 文件)的形式來手動運行服務。服務也可做爲 Windows 服務自動運行。COM+ 組件也可做爲 WCF 服務承載。

相關文章
相關標籤/搜索