WCF专题系列(6):消息如何传递之绑定Part 1

什么是绑定

从本质上说,WCF是一个通信服务框架,它允许我们使用不同 的传输协议(如Http、Https、TCP、P2P、IPC和MSMQ等),使用不同的消息编码 形式(文本、二进制和MTOM),跟不同的WS-*系列规范(如WS-Security、WS- Atomic Transaction等)交互。所有这些细节都是由通道堆栈来处理的,看一下 Aaron Skonnard给出的这幅图:

图1

最底层传输组件读入消息,消息编码器将传入字节读取为 逻辑消息对象,之后消息通过通道堆栈中的各个消息,它们执行各自的处理。如 果对这三者之间之间进行组合,至少可以得到上千种不同的通信方式,但是这些 传输、编码以及协议之间有些是互斥的,有些相互约束,也就是说,对于开发人 员来说,每构建一个服务,都要需要考虑这三者之间是否可以共存,是否是高效 的通信方式,显然这个工作是非常复杂的,要求开发者必须了解所有的传输、编 码以及协议等。

为了简化这三者之间的管理,WCF中引入了绑定的概念( Binding),每个绑定中都封装了传输协议、消息编码和多种协议的集合,这样 在构建服务时,我们就可以直接选择一个适用的绑定,通过调整它们的属性来适 应需求,如果系统内置的绑定通过调整属性仍然不能达到我们的要求,这时才会 考虑自定义绑定。这样,通过绑定,就把应用程序编程模型与通道模型(后面会 有专门的文章写到)关联了起来,对于开发者来说,就无需再考虑复杂的底层通 道模型,直接使用应用程序编程模型。

绑定元素

在WCF中,绑定由绑 定元素组成,每个绑定元素用来描述终结点与客户端通信方式中的某个方面,绑 定元素继承于BindingElement,其中最重要的绑定元素有如下三种:

1. 编码绑定元素(Encoding Binding Element):如采用文本、二进制还是MTOM的 方式;

2.传输绑定元素(Transport Binding Element):使用Http、 TCP或者MSMQ进行传输;

3.协议绑定元素(Protocol Binding Element) :指定可靠性、安全性、事务等。

每个绑定必须要有一个编码绑定元素 和一个传输绑定元素,以及包括任意数目的其他协议绑定元素。

时间: 2024-09-16 07:39:24

WCF专题系列(6):消息如何传递之绑定Part 1的相关文章

WCF专题系列(7):消息如何传递之绑定Part 2

概述 每个服务终结点都包含一个地址Address.一个绑定Binding 和一个 契约Contract.契约指定可用的操作,绑定指定如何与服务进行通信,而地址指 定查找服务的位置,在WCF专题系列前5篇中,深入了解了WCF中寻址的细节.本 文为消息如何传递之绑定第二部分,将详细介绍WCF内置的各种绑定元素,绑定 元素之间的顺序以及如何创建一个自定义的绑定元素. 在WCF专题系列( 6):消息如何传递之绑定Part 1一文中,我提到绑定由绑定元素组成,每个绑 定元素用来描述终结点与客户端通信方式中

WCF专题系列(4):深入WCF寻址Part 4—自定义消息筛选器

概述 在WCF专题系列(3):深入WCF寻址Part 3-消息过滤引擎一文 中,详细介绍了WCF中的消息筛选引擎,包括消息筛选器和筛选器表,每个 EndpointDispatcher都包含了两个消息筛选器,默认的地址过滤器是 EndpointAddressMessageFilter,默认的契约过滤器是ActionMessageFilter, 这些是可以通过Behavior来改变的.本文我们将学习如何创建一个自定义的消息 过滤器,并通过自定义Behavior来改变EndpointDispatche

WCF专题系列(2):深入WCF寻址Part 2—自定义寻址报头

在WCF专题系列(1):深入WCF寻址Part1一文中,我们对Web服务寻址规范做 了一些认识,了解了终结点引用和消息信息报头两种结构,该规范在Web服务中 的地位举足轻重,后续我们会经常提到该规范.在本文中,我们将继续深入WCF 寻址的内容,包括元数据中的终结点地址,自定义寻址标头等相关信息. 终结点地址定义 了解了Web服务寻址规范,再回到WCF,在WCF中,终 结点地址是由EndpointAddress类来表示的,它其中很重要的几个部分是:一个 表示服务地址的统一资源定位符 (URI),一

WCF专题系列(1):深入WCF寻址Part 1

概述 众所周知,WCF服务的所有通信都是通过服务的终结点发生的,每个 服务终结点都包含一个地址Address.一个绑定Binding 和一个契约Contract. 契约指定可用的操作,绑定指定如何与服务进行通信,而地址指定查找服务的位 置,即非常经典的"ABC".WCF用多种不同的通信协议为公开服务终 结点和与其通信提供了灵活的模式,在WCF专题系列的第一部分,我将围绕终结 点的寻址细节展开讨论,再此之前,我们先看一下WCF的编程模型,如图1所示: 图1 Web服务寻址规范 在 WCF

WCF专题系列(3):深入WCF寻址Part 3—消息过滤引擎

概述 通过前面两篇的介绍,对Web服务寻址规范以及在WCF开发中终结点地 址有了深入的认识.本文我们继续深入WCF寻址第三部分内容,当消息传入时, 如何来确定匹配的终结点,就是我们本文要讲到的消息筛选引擎.在WCF中,消 息筛选器引擎包括两个重要的组成部分:筛选器和筛选器表. 认识消息 筛选器 在WCF中当有消息传入时,它使用消息筛选器来确定匹配的终结点,每 个终结点实际上关联着两个筛选器:一个地址筛选器和一个契约筛选器.地址筛 选器确定传入消息是否匹配终结点的"To"地址和任何必需的

WCF专题系列(8):深度通道编程模型Part 1—设计篇

引言 从本质上说,WCF是一个通信服务框架,它允许我们使用不同的传输 协议,使用不同的消息编码形式,跟不同的WS-*系列规范交互,而所有这些细节 都是由通道堆栈来处理的.为了简化这些处理,在WCF中提供了两种模型,一是 针对开发者的应用程序编程模型:二是用来通信的通道模型,这样对于开发者来 说,只要了解应用程序编程模型就足够了,而不会涉及到通道模型,然而,对于 通道模型进行必要的学习,可以让我们真正理解WCF中"通信"概念 ,了解WCF的 整个架构体系,从而构建出更加健壮的WCF服务或

WCF专题系列(5):深入WCF寻址Part 5—逻辑地址和物理地址

概述 在WCF中,每个服务终结点都与两个地址相关联,一个逻辑地址和一 个物理地址,逻辑地址就是SOAP消息的目标地址,即前面不止一次提到的 "To"地址,而物理地址是WCF侦听器真正监听的地址.在WCF中,逻 辑地址称之为终结点地址Endpoint Address,而物理地址则称之为监听地址 ListenUri. 两种地址 WCF中,物理地址负责使用特定的传输协议在特 定的位置接收传入的消息,除非特别指定,否则逻辑地址将被用来做物理地址, 换句话说,在以前我们对于终结点所配置的Endp

[WCF安全系列]消息的保护等级[下篇]

在<上篇>中,我们着重讨论了消息的保护等级如果在契约中定义,定义在不同契约(服务契约.错误契约和消息契约)中的消息保护等级具有怎样的层级关系,以及在默认情况下各种绑定采用怎样的保护等级.在下篇中,我们进一步来探讨消息保护等级和绑定的关系. 一.契约的保护等级为绑定进行消息保护设置了"最低标准" 二.显式地将保护等级设置成ProtectionLevel.None与没有设置保护等级有区别吗? 三.消息的保护等级与WS-Addressing 一.契约的保护等级为绑定进行消息保护设

WCF分布式开发步步为赢(13):WCF服务离线操作与消息队列MSMQ

之前曾经写过一个关于MSMQ消息队列的文章:WCF分布式开发必备知识 (1):MSMQ消息队列 ,当时的目的也是用它来作为学习WCF 消息队列MSMQ编程的 基础文章.在那篇文章里,我们详细介绍了MSMQ消息队列的基本概念.安装.部 署.开发.调试等相关问题.今天我们来学习WCF分布式开发步步为赢(13):WCF 服务离线操作与消息队列MSMQ.在WCF框架下使用MSMQ消息队列服务编程. 这 里我会给出一个使用WCF MSMQ实现离线请求的DEMO示例程序. 全文结构是:[1]MSMQ基本概念