WCF 之 消息交换模式

时间:2022-09-01 08:56:32
        消息交换模式(Message Exchange Pattern:MEP)在SOA中是一个重要的概念。MEP定义了参与者进行消息交换的模板,这是一个很抽象的定义。实际上我们可以这样理解MEP:消息交换模式(MEP)代表一系列的模板,它们定义了消息的发送者和接收者相互进行消息传输的次序。消息交换模式包括:数据报模式(Datagram)、请求/回复模式(Request/Reply)和双工模式(Duplex)。


1.数据报模式(Datagram)
        数据报模式是最简单的消息交换模式,又称为发送/遗忘(Send/Forget)或单向模式(One-way)。数据报模式基于从一个源到一个或多个目的地的单向消息传输。在数据报模式下,消息的发送方将消息发送到接收方,并不希望收到对方的回复。
                                    
WCF 之 消息交换模式 
2.请求/回复模式(Request/Reply)
        请求/回复模式是使用得最多的一种模式。在这种模式下,消息发送方将消息发送给接收方后会等待对方的回复。请求/回复模式一般采用同步的通信模式。
                                    WCF 之 消息交换模式

3.双工模式(Duplex)
        如果采用双工的消息交换模式,在进行消息交换过程中,任何一方都可以向对方发送消息。双工通信使服务端回调客户端操作成为可能。我熟悉的订阅/发布模式就是比较典型的双工通信。订阅/发布模式下的消息交换双方的角色从传统的发送方和接收方变成订阅方和发布方。订阅方向发布方发送对某一主题的订阅请求,发布方接收到订阅消息后将订阅方添加到订阅列表中。主题发布的时候,发布方提取当前主题的所有订阅方,对它们进行消息广播。
                                    WCF 之 消息交换模式



        消息的交换依赖于网络传递,不同的网络传输协议对双工通信具有不同的支持方式。对于TCP来说,其协议本身就是全双工的网络通信协议,所以能够提供双工通信原生的支持。但是对于HTTP来说,它本身就是简单的基于请求/回复的网络协议,是不支持双工通信的。WCF通过WsFualHttpBinding实现了基于HTTP的双工通信,实际上是采用两个HTTP通道实现。