WCF 之 消息交換模式
來(lái)源:程序員人生 發(fā)布時(shí)間:2015-07-27 08:37:52 閱讀次數(shù):3854次
消息交換模式(Message Exchange Pattern:MEP)在SOA中是1個(gè)重要的概念。MEP定義了參與者進(jìn)行消息交換的模板,這是1個(gè)很抽象的定義。實(shí)際上我們可以這樣理解MEP:消息交換模式(MEP)代表1系列的模板,它們定義了消息的發(fā)送者和接收者相互進(jìn)行消息傳輸?shù)拇涡颉O⒔粨Q模式包括:數(shù)據(jù)報(bào)模式(Datagram)、要求/回復(fù)模式(Request/Reply)和雙工模式(Duplex)。
1.數(shù)據(jù)報(bào)模式(Datagram)
數(shù)據(jù)報(bào)模式是最簡(jiǎn)單的消息交換模式,又稱為發(fā)送/遺忘(Send/Forget)或單向模式(One-way)。數(shù)據(jù)報(bào)模式基于從1個(gè)源到1個(gè)或多個(gè)目的地的單向消息傳輸。在數(shù)據(jù)報(bào)模式下,消息的發(fā)送方將消息發(fā)送到接收方,其實(shí)不希望收到對(duì)方的回復(fù)。
2.要求/回復(fù)模式(Request/Reply)
要求/回復(fù)模式是使用得最多的1種模式。在這類模式下,消息發(fā)送方將消息發(fā)送給接收方后會(huì)等待對(duì)方的回復(fù)。要求/回復(fù)模式1般采取同步的通訊模式。

3.雙工模式(Duplex)
如果采取雙工的消息交換模式,在進(jìn)行消息交換進(jìn)程中,任何1方都可以向?qū)Ψ桨l(fā)送消息。雙工通訊使服務(wù)端回調(diào)客戶端操作成為可能。我熟習(xí)的定閱/發(fā)布模式就是比較典型的雙工通訊。定閱/發(fā)布模式下的消息交換雙方的角色從傳統(tǒng)的發(fā)送方和接收方變成定閱方和發(fā)布方。定閱方向發(fā)布方發(fā)送對(duì)某1主題的定閱要求,發(fā)布方接收到定閱消息后將定閱方添加到定閱列表中。主題發(fā)布的時(shí)候,發(fā)布方提取當(dāng)前主題的所有定閱方,對(duì)它們進(jìn)行消息廣播。

消息的交換依賴于網(wǎng)絡(luò)傳遞,不同的網(wǎng)絡(luò)傳輸協(xié)議對(duì)雙工通訊具有不同的支持方式。對(duì)TCP來(lái)講,其協(xié)議本身就是全雙工的網(wǎng)絡(luò)通訊協(xié)議,所以能夠提供雙工通訊原生的支持。但是對(duì)HTTP來(lái)講,它本身就是簡(jiǎn)單的基于要求/回復(fù)的網(wǎng)絡(luò)協(xié)議,是不支持雙工通訊的。WCF通過(guò)WsFualHttpBinding實(shí)現(xiàn)了基于HTTP的雙工通訊,實(shí)際上是采取兩個(gè)HTTP通道實(shí)現(xiàn)。
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)