自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

WCF體系架構(gòu)基本概念解讀

開發(fā) 開發(fā)工具
WCF體系架構(gòu)的了解,對于掌握這一功能強(qiáng)大的開發(fā)工具是一個至關(guān)重要的步驟。那么接下來就讓我們一起來看看相關(guān)的內(nèi)容吧。

我們?nèi)绻胍浞值恼莆諔?yīng)用WCF開發(fā)工具,首先需要了解的就是這一工具的一些基本概念。比如今天為大家介紹的WCF體系架構(gòu),就是初學(xué)者們在學(xué)習(xí)過程中需要掌握的一個最基本的概念。#t#

在了解WCF體系架構(gòu)之前,首先需要叩問自己服務(wù)是否需要與非WCF的客戶端交互。如果是,同時客戶端又是舊的MSMQ客戶端,選擇MsmqIntegrationBinding綁定就能夠使得服務(wù)通過MSMQ與該客戶端實(shí)現(xiàn)互操作。如果服務(wù)需要與非WCF客戶端交互,并且該客戶端期望調(diào)用基本的Web服務(wù)協(xié)議(ASMX Web服務(wù)),那么選擇BasicHttpBinding綁定就能夠模擬ASMX Web服務(wù)(即WSI-Basic Profile)公開WCF服務(wù)。缺點(diǎn)是我們無法使用大多數(shù)最新的WS-*協(xié)議的優(yōu)勢。

但是,如果非WCF客戶端能夠識別這些標(biāo)準(zhǔn),就應(yīng)該選擇其中一種WS綁定,例如WSHttpBinding、WSFederationBinding或者WSDualHttpBinding。如果假定客戶端為WCF客戶端,同時需要支持脫機(jī)或斷開狀態(tài)下的交互,則可以選擇NetMsmqBinding使用MSMQ傳輸消息。如果客戶端需要聯(lián)機(jī)通信,但是需要跨機(jī)器邊界調(diào)用,則應(yīng)該選擇NetTcpBinding通過TCP協(xié)議進(jìn)行通信。如果相同機(jī)器上的客戶端同時又是服務(wù),選擇NetNamePipeBinding使用命名管道可以使性能達(dá)到最優(yōu)化。如果基于額外的標(biāo)準(zhǔn),例如回調(diào)(選擇WSDualHttpBinding)或者聯(lián)邦安全(選擇WSFederationBinding),則應(yīng)對選擇的綁定進(jìn)行微調(diào)。

即使超出了使用的目標(biāo)場景,大多數(shù)綁定工作仍然良好。例如,我們可以使用TCP綁定實(shí)現(xiàn)相同機(jī)器甚至進(jìn)程內(nèi)的通信;我們也可以使用基本綁定實(shí)現(xiàn)Intranet中WCF對WCF的通信。

WCF體系架構(gòu)提供了對可靠性、事務(wù)性、并發(fā)管理、安全性以及實(shí)例激活等技術(shù)的有力支持,它們均依賴于基于攔截機(jī)制的WCF體系架構(gòu)。通過代理與客戶端的交互意味著WCF總是處于服務(wù)與客戶端之間,攔截所有的調(diào)用,執(zhí)行調(diào)用前和調(diào)用后的處理。當(dāng)代理將調(diào)用棧幀(Stack Frame)序列化到消息中,并將消息通過通道鏈向下傳遞時,WCF就開始執(zhí)行攔截。

通道相當(dāng)于一個攔截器,目的在于執(zhí)行一個特定的任務(wù)。每個客戶端通道都會執(zhí)行消息的調(diào)用前處理。鏈的組成與結(jié)構(gòu)主要依賴于綁定。例如,一個通道對消息編碼(二進(jìn)制格式、文本格式或者M(jìn)TOM),另一個通道傳遞安全的調(diào)用上下文;還有一個通道傳播客戶端的事務(wù),一個通道管理可靠會話,另一個通道對消息正文(Message Body)加密(如果進(jìn)行了配置),諸如此類??蛻舳说淖詈笠粋€通道是傳輸通道,根據(jù)配置的傳輸方式發(fā)送消息給宿主。

在宿主端,消息同樣通過通道鏈進(jìn)行傳輸,它會對消息執(zhí)行宿主端的調(diào)用前處理。宿主端的第一個通道是傳輸通道,接收傳輸過來的消息。隨后的通道執(zhí)行不同的任務(wù),例如消息正文的解密、消息的解碼、參與傳播事務(wù)、設(shè)置安全準(zhǔn)則、管理會話、激活服務(wù)實(shí)例。宿主端的最后一個通道負(fù)責(zé)將消息傳遞給分發(fā)器(Dispatcher)。分發(fā)器將消息轉(zhuǎn)換到一個棧幀,并調(diào)用服務(wù)實(shí)例。執(zhí)行順序如圖所示。

WCF體系架構(gòu)執(zhí)行順序 

服務(wù)并不知道它是否被本地客戶端調(diào)用。事實(shí)上,服務(wù)會被本地客戶端——分發(fā)器調(diào)用??蛻舳伺c服務(wù)端的攔截器確保了它們能夠獲得運(yùn)行時環(huán)境,以便于它們執(zhí)行正確的操作。服務(wù)實(shí)例會執(zhí)行調(diào)用,然后將控制權(quán)(Control)返回給分發(fā)器。分發(fā)器負(fù)責(zé)將返回值以及錯誤信息(如果存在)轉(zhuǎn)換為一條返回消息。

分發(fā)器獲得控制權(quán),執(zhí)行的過程則剛好相反:分發(fā)器通過宿主端通道傳遞消息,執(zhí)行調(diào)用后的處理,例如管理事務(wù)、停用實(shí)例、回復(fù)消息的編碼與加密等。為了執(zhí)行客戶端調(diào)用后的處理,包括解密、解碼、提交或取消事務(wù)等任務(wù),傳輸通道會將返回消息發(fā)送到客戶端通道。最后一個通道將消息傳遞給代理。代理將返回消息轉(zhuǎn)化到棧幀,然后將控制權(quán)返回給客戶端。

特別值得注意的是,WCF體系架構(gòu)中的所有要點(diǎn)均與可擴(kuò)展性息息相關(guān)。我們可以為專有交互定制通道,為實(shí)例管理定制行為,以及定制安全行為等。事實(shí)上,WCF提供的標(biāo)準(zhǔn)功能都能夠通過相同的可擴(kuò)展模式實(shí)現(xiàn)。

責(zé)任編輯:曹凱 來源: IT168
相關(guān)推薦

2010-02-25 14:46:31

2010-03-01 16:41:04

WCF數(shù)據(jù)表

2009-12-22 10:16:54

WCF服務(wù)狀態(tài)

2009-12-21 14:37:14

2009-12-21 10:27:52

WCF基本概念

2010-02-23 16:32:29

WCF服務(wù)

2010-02-24 17:17:04

WCF宿主環(huán)境

2010-03-02 13:14:38

WCF MSMQ隊列

2009-12-21 15:33:07

WCF集合元素

2010-03-01 14:50:30

WCF行為類型

2010-03-01 18:04:35

WCF配置綁定

2010-03-02 11:10:43

WCF標(biāo)準(zhǔn)終結(jié)點(diǎn)

2010-03-02 16:22:31

WCF狀態(tài)應(yīng)用

2009-12-21 16:52:02

WCF序列化

2010-03-01 17:57:11

WCF緩存機(jī)制

2010-01-25 10:57:57

Android系統(tǒng)應(yīng)用

2010-04-01 16:54:06

Oracle體系結(jié)構(gòu)

2011-03-28 11:05:17

ODBC

2021-05-17 07:22:05

Elasticsear架構(gòu)存儲

2010-07-02 11:48:30

RS-232C協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號