WCF體系結構基本概念分析
WCF開發框架的學習需要從基礎開始,只有將基礎大夯實了,才能方便我們將來對于這個框架的熟練掌握。下面就先來一起看看WCF體系結構的相關方法。#t#
WCF體系結構之協定和說明
協定定義消息系統的各個方面。數據協定描述組成某一服務可創建或使用的每則消息的每個參數。消息參數由 XML 架構定義語言 (XSD) 文檔定義,這使得任何理解 XML 的系統均可處理該文檔。消息協定使用 SOAP 協議定義特定消息部分,當互操作性要求對消息的某些部分進行更精細的控制時,消息協定可實現這種控制。服務協定指定服務的實際方法簽名,并以支持的編程語言之一(例如 Visual Basic 或 Visual C#)作為接口進行分發。
策略和綁定規定與某一服務進行通信所需的條件。例如,綁定必須(至少)指定所使用的傳輸(例如 HTTP 或 TCP)和編碼。策略包括安全要求和其他條件,必須滿足這些要求和條件才能與服務進行通信。
WCF體系結構之服務運行時
服務運行時層包含僅在服務實際運行期間發生的行為,即該服務的運行時行為。遏制控制處理的消息數,如果對服務的需求增長到預設限制,該消息數則會發生變化。錯誤行為指定服務出現內部錯誤時應采取的操作,例如控制傳遞給客戶端的信息(信息過多會向惡意用戶提供攻擊的機會)。元數據行為控制是否以及如何向外部提供元數據。
實例行為指定可運行的服務實例的數目(例如,singleton 指定只能用單一實例來處理所有消息)。通過事務行為,可以在失敗時回滾已進行事務處理的操作。調度行為用于控制 WCF 基礎結構處理消息的方式。
通過擴展性功能可以自定義運行時進程。例如,消息檢查功能用于檢查消息的各個部分,使用參數篩選功能可以根據作用于消息頭的篩選器來執行預設操作。
WCF體系結構之消息傳遞
消息傳遞層由通道組成。通道是以某種方式對消息進行處理(例如通過對消息進行身份驗證)的組件。一組通道也稱為“通道堆棧”。通道對消息和消息頭進行操作。這與服務運行時層不同,服務運行時層主要涉及對消息正文內容的處理。
有兩種類型的通道:傳輸通道和協議通道。
傳輸通道讀取和寫入來自網絡(或外部的某些其他通信點)的消息。某些傳輸通道使用編碼器來將消息(表示為 XML Infoset)轉換為網絡所使用的字節流的表示形式,或將字節流表示形式轉換為消息。傳輸通道的示例包括 HTTP、命名管道、TCP 和 MSMQ。編碼的示例包括 XML 和優化的二進制文件。
協議通道經常通過讀取或寫入消息的其他頭的方式來實現消息處理協議。此類協議的示例包括 WS-Security 和 WS-Reliability。
消息傳遞層說明數據的可能格式和交換模式。WS-Security 是對在消息層啟用安全性的 WS-Security 規范的實現。通過 WS-Reliable Messaging 通道可以保證消息的傳遞。編碼器提供了大量的編碼,可使用這些編碼來滿足消息的需要。HTTP 通道指定應使用超文本傳輸協議來傳遞消息。同理,TCP 通道指定 TCP 協議。事務流通道控制已經過事務處理的消息模式。通過命名管道通道可以進行進程間通信。使用 MSMQ 通道可以與 MSMQ 應用程序進行互操作。
WCF體系結構之承載和激活
服務的最終形式為程序。與其他程序類似,服務必須在可執行文件中運行。這稱為“自承載”服務。
某些服務(如 IIS 或 Windows 激活服務 (WAS))“被承載”,即在外部代理管理的可執行文件中運行。通過 WAS,可以在運行 WAS 的計算機上部署 WCF 應用程序時自動激活該應用程序。還可通過可執行文件(.exe 文件)的形式來手動運行服務。服務也可作為 Windows 服務自動運行。COM+ 組件也可作為 WCF 服務承載。