地址(Address):到哪儿可以找到服务
WCF的每一个服务都具有一个唯一的地址(Addressess)。地址包含两个重要元素:服务位置与传输协议,或者是用于服务通信的传输样式。服务位置包括目标机器名、站点或网络、通信端口、管道或队列,以及一个可选的特定路径或者URI(统一资源标识)。
绑定(Binding):如何与服务进行通讯
一个绑定封装了诸如传输协议、消息编码、通信模式、可靠性、安全性、事务传播以及互操作性等相关选项的集合,使得他们保持一致。
契约(Contract):服务能干哪些事
WCF的所有服务都会公开契约(Contract)。契约与平台无关,是描述服务功能标准方式。WCF定义了四种类型的契约。
服务契约(Service Contract)
服务契约描述了客户端能够执行的服务操作。
数据契约(Data Contract)
数据契约定义了与服务交互的数据类型。WCF为内建类型如int和string隐式地定义了契约;我们也可以非常便捷地将定制类型定义为数据契约。
错误契约(Fault Contract)
错误契约定义了服务跑出的错误,以及服务处理错误和传递错误到客户端的方式。
消息契约(Message Contract)
消息契约允许服务直接与消息交互。消息契约可以是类型化的,也可以是非类型化的。如果系统要求互操作性,或者遵循已有消息格式,那么消息契约会非常有用。
终结点(endpoint)
终结点就是地址、契约与绑定的混成品。每一个终结点都包含了三个元素,而宿主则负责公开终结点。从逻辑上将,终结点相当于服务的接口。
每个服务至少必须公开一个业务终结点,每个终结点有切只能拥有一个契约。服务上的所有终结点都包含了唯一的地址,而一个单独的服务则可以公开多个终结点。这些终结点可以使用相同或不同的绑定,公开相同或不同的契约。每个服务提供的不同终结点之间绝对没有任何关联。