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