細(xì)數(shù)WCF基本技術(shù)種種方法
WCF基本技術(shù)作為基于SOA的一個(gè)框架產(chǎn)品,WCF實(shí)際上是構(gòu)建了一個(gè)在互聯(lián)系統(tǒng)中實(shí)現(xiàn)各個(gè)應(yīng)用程序之間通信的分布式框架。它使得系統(tǒng)構(gòu)架師與開(kāi)發(fā)人員在構(gòu)建分布式系統(tǒng)時(shí),能將更多的精力投入到與系統(tǒng)的業(yè)務(wù)邏輯本身的設(shè)計(jì)上來(lái),而無(wú)需過(guò)多的考慮底層通信的實(shí)現(xiàn)及相關(guān)問(wèn)題。
WCF最核心的部分是能夠快捷的創(chuàng)建一個(gè)服務(wù),一個(gè)WCF服務(wù)端框架由宿主、端點(diǎn)以及服務(wù)類(lèi)三部分所組成。
宿主(Host),即承載WCF Service運(yùn)行的環(huán)境??捎玫乃拗鳝h(huán)境包括:
(1) 自承載方式:在控制臺(tái)應(yīng)用程序與基于WinForm的應(yīng)用程序中都可以使用這種方式;
(2) 系統(tǒng)服務(wù)方式:服務(wù)可以隨著操作系統(tǒng)的啟動(dòng)而自動(dòng)啟動(dòng);
(3) IIS方式:與Web Services 的部署方式類(lèi)似,由請(qǐng)求消息來(lái)激活服務(wù),但只支持HTTP方式的綁定;
(4) WAS(Windows Process Activation Service)方式:這個(gè)宿主是 IIS7 的一部分,只有 Windows Vista 和 Windows Server 2008提供默認(rèn)支持,它支持幾乎所有的通訊協(xié)議并提供了應(yīng)用程序池、循環(huán)回收、空閑管理、身份管理、隔離等強(qiáng)大的功能。
服務(wù)類(lèi)(Service Class)是指一個(gè)標(biāo)記了一些WCF特有的屬性的類(lèi),它包含了對(duì)服務(wù)的業(yè)務(wù)邏輯的具體實(shí)現(xiàn)。
端點(diǎn)(Endpoints)是WCF實(shí)現(xiàn)通信的核心要素,客戶(hù)端和服務(wù)端都通過(guò)端點(diǎn)來(lái)交換消息,WCF 允許我們?yōu)榉?wù)添加多個(gè)綁定和端點(diǎn)。端點(diǎn)由地址(Address)、綁定(Binding)以及契約(Contract)三部分組成,如圖所示。在WCF基本技術(shù)中,類(lèi)ServiceEndpoint代表了一個(gè)Endpoint,在類(lèi)中包含的EndpointAddress,Binding,ContractDescription類(lèi)型分別對(duì)應(yīng)端點(diǎn)中的地址、綁定以及契約。
地址:每個(gè)服務(wù)都會(huì)關(guān)聯(lián)到一個(gè)唯一的地址,因此地址定位和唯一標(biāo)志了一個(gè)端點(diǎn),其主要提供了兩個(gè)重要信息: 服務(wù)位置以及傳送協(xié)議。在WCF基本技術(shù)中,地址由System.ServiceModel.EndpointAddress對(duì)象來(lái)表示,其包括URI、Identity、Headers三個(gè)要素。#t#
綁定:綁定提供了一種可設(shè)置的方式來(lái)選擇傳輸協(xié)議、消息編碼、通訊模式、可靠性、安全性、事務(wù)傳播以及交互方式等。例如在傳輸協(xié)議上可以選擇HTTP/HTTPS、TCP、P2P、IPC甚至是MSMQ等方式。消息編碼上可以選擇使用純文本方式來(lái)確?;ゲ僮髂芰Γ蛘哌x擇二進(jìn)制編碼來(lái)優(yōu)化性能,或者使用 MTOM來(lái)提高負(fù)載能力,甚至是自定義編碼方式。 WCF基本技術(shù)中提供了BasicHttpBinding、NetTcpBinding、NetPeerTcpBinding、NetNamedPipeBinding、WSHttpBinding、WSFederationHttpBinding、WSDualHttpBinding 、NetMsmqBinding以及MsmqIntegrationBinding九種標(biāo)準(zhǔn)類(lèi)型的綁定。