日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
WCF通道形狀相關(guān)內(nèi)容深度剖析

WCF開發(fā)插件的應(yīng)用在一定程度上大大提高了開發(fā)人員的開發(fā)效率,尤其是在通信方面的操作,提供了一個(gè)簡(jiǎn)單的操作方法。在這里我們將會(huì)針對(duì)WCF通道形狀的相關(guān)內(nèi)容,為大家詳細(xì)講解這方面的知識(shí)。#t#

WCF通道形狀是我們對(duì)通道進(jìn)行分類的重要依據(jù)之一。概念上,一個(gè)通道形狀對(duì)應(yīng)于一個(gè)或多個(gè)消息交換模式(MEPs)。為了說明問題,考慮一下發(fā)送者和接收者使用請(qǐng)求/應(yīng)答模式來交換消息的情況。在請(qǐng)求/應(yīng)答模式里,發(fā)送者發(fā)送消息給接收者,接收者回復(fù)消息給發(fā)送者,請(qǐng)求消息和應(yīng)答消息之間的關(guān)系是固定的。因?yàn)橥ǖ朗前l(fā)送者和接收者交換消息的物理途徑,發(fā)送者和接收者必須建立它們自己的通道。當(dāng)發(fā)送者和接收者通過請(qǐng)求/應(yīng)答模式來交換消息的時(shí)候,發(fā)送者和接收者必須理解請(qǐng)求/應(yīng)答模式的規(guī)則。在結(jié)構(gòu)上來說,這意味著發(fā)送者上的通道要定義發(fā)送消息和接收消息的成員。此外,發(fā)送者和接收者需要定義關(guān)聯(lián)請(qǐng)求消息和應(yīng)答消息的成員。

咋一看,發(fā)送者和接收者有著相同的角色。例如,發(fā)送者和接收者都可以發(fā)送和接收消息。邏輯上的區(qū)別就是發(fā)送和接收消息過程中的順序不同。這意味著發(fā)送者和接收者上的通道會(huì)略有不同。這些不同點(diǎn)體現(xiàn)在發(fā)送者和接收者通道里定義的成員上。WCF通道形狀是我們命名和劃分這些不同點(diǎn)的方式。因?yàn)?NET接口是鑒別.NET類型成員的天然方式,所以它們也是區(qū)別通道形狀的最佳方式。

WCF類型系統(tǒng)定義了幾個(gè)描述不同WCF通道形狀的接口,這些接口與消息交換模式一一對(duì)應(yīng)。消息交換模式(MEP)、發(fā)送者和接受之間的對(duì)應(yīng)關(guān)系。這些接口都定義在System.ServiceModel.Channels命名空間下。

實(shí)際上,消息程序需要把多個(gè)消息關(guān)聯(lián)到一起。例如,一個(gè)交易系統(tǒng)(發(fā)送者)也許要發(fā)送關(guān)于一個(gè)交易訂單或者產(chǎn)品的多個(gè)消息到財(cái)務(wù)系統(tǒng)(接收者)。這個(gè)關(guān)聯(lián)的邏輯邊界就是會(huì)話(session)。當(dāng)?shù)谝淮慰紤]這些會(huì)話的時(shí)候,很容易理解為接收者會(huì)根據(jù)發(fā)送者來關(guān)聯(lián)這些消息。這樣一來,很自然地就會(huì)猜想,同時(shí)處理5個(gè)發(fā)送者請(qǐng)求的接收者將會(huì)把消息關(guān)聯(lián)到一個(gè)特定的發(fā)送者上,正像ASP.NET程序處理來自于多個(gè)瀏覽器的請(qǐng)求消息一樣。在WCF應(yīng)用程序里,這些耦合過于緊密以至于不能滿足過多的消息需求。例如,一個(gè)交易系統(tǒng)(發(fā)送者)或許發(fā)送多個(gè)訂單有關(guān)的消息,財(cái)務(wù)系統(tǒng)(接收者)也許要根據(jù)需訂單實(shí)例而不是交易系統(tǒng)(發(fā)送者)來關(guān)聯(lián)這些消息。

WCF會(huì)話是一個(gè)通道級(jí)別的構(gòu)造。因?yàn)檫@個(gè)概念也就是為了關(guān)聯(lián)消息,每個(gè)通道都自己關(guān)聯(lián)消息的方式。例如,TCP/IP通道能夠根據(jù)接收消息的socket來關(guān)聯(lián)同一個(gè)會(huì)話里的消息。與之相對(duì)的是,實(shí)現(xiàn)了WS-ReliableMessaging規(guī)范的通道,可以在消息頭里使用ID屬性來關(guān)聯(lián)同一個(gè)會(huì)話里的消息,所以,這也就不需要依賴具體的socket或者傳輸結(jié)構(gòu)了,就可以實(shí)現(xiàn)同一個(gè)會(huì)話里消息的關(guān)聯(lián)。

所有支持會(huì)話的通道的一個(gè)共同特性就是它們可以擁有自己的標(biāo)識(shí)符,WCF基礎(chǔ)結(jié)構(gòu)里的不同模塊都可以使用這個(gè)標(biāo)識(shí)符來關(guān)聯(lián)消息。概念上看,通道需要實(shí)現(xiàn)System.ServiceModel.Channels.ISessionChannel接口來會(huì)支持會(huì)話。ISessionChannel的泛型參數(shù)必須實(shí)現(xiàn)System.ServiceModel.Channels.ISession接口。下面代碼展示了這些接口里的成員:

 
 
 
  1. public interface ISession {  
  2. String Id { get; }  
  3. }  
  4. public interface ISessionChannel where T: ISession {  
  5. T Session { get; }  

如代碼所示,接口暴露了一個(gè)名為Id的成員,這個(gè)成員表示一個(gè)會(huì)話標(biāo)識(shí)符。在WCF里,實(shí)現(xiàn)了ISessionChannel接口的通道類型被稱為會(huì)話通道。為了連貫性考慮,WCF里把會(huì)話作為通道形狀的一個(gè)變量考慮。換句話說,IDuplexChannel接口包含一個(gè)名為IDuplexSessionChannel的變量。從WCF通道形狀的角度來看,IDuplexSessionChannel與IDuplexChannel的通道形狀不同,盡管它們都能夠?qū)崿F(xiàn)雙工通信。兩者真正的區(qū)別在于IDuplexSessionChannel實(shí)現(xiàn)了ISessionChannel接口。表6-3列舉了WCF類型系統(tǒng)里的會(huì)話通道形狀.


網(wǎng)站欄目:WCF通道形狀相關(guān)內(nèi)容深度剖析
文章路徑:http://www.dlmjj.cn/article/djoejhd.html