WCF入门概念归纳

时间:2022-01-07 13:28:12

1、wcf是什么?
wcf是微软提供的分布式通讯框架,本质上提供一个跨进程、跨机器以致跨网络的服务调用。

2、服务及服务寄宿
wcf的核心是服务,服务需要寄宿在宿主程序中才能被访问,宿主程序可以是自寄宿的控制台程序、windows桌面程序,也可以是IIS程序。服务寄宿后,会公布一个或多个终结点用于服务调用者访问服务,客户端同样使用终结点与服务端进行通讯。

3、终结点
终结点包含地址,契约和绑定三要素。地址用于解决服务寻址问题(where);绑定用于实现所有与通信相关的细节,如传输协议、消息编码、安全传输、可靠传输、事务控制等(how);契约用于定义服务所能提供的操作,也是消息交换模式(Request/Response、 One-way、Duplex)和消息结构的定义(what);另外还可以为服务或者终结点指定行为,行为是在服务运行时为服务或终结点定制的一些行为,如服务回调客户端的超时时间等。

4、终结点地址和服务匹配
客户端和服务端通信是基于终结点来进行的,所以服务的发现必然是基于终结点的,当客户端的终结点与服务端的某个终结点匹配时,客户端便可以调用该服务。这里的匹配不仅仅指地址的URI一致,地址的Headers也必须匹配。地址的Headers包含一些与地址过滤相关的信息,在Headers中加入的信息可以实现Routing、Authentication等功能,Headers最终会被加入Soap消息的头部中被发送。终结点地址还包含Identity属性,该属性用于指明消息的身份,目标节点可以使用该属性来进行认证操作。

5、终结点的绑定
终结点的绑定定义的是终结点之间通讯的细节,如通信协议,HTTP、TCP、Named Pipe或MSMQ;消息的编码,text/XML、Binary、MTOM;安全,是采用传输层的安全控制,还是采用消息级别的安全控制;另外还提供可靠传输、事务的支持等。绑定是绑定元素的一个集合,每一个绑定元素完成一个与通讯相关的操作。

6、通过配置来使用wcf
wcf中绝大部分的操作都提供了代码和配置两种实现方式,比如终结点的定义,行为的定义等。在实际应用中,绝大部分都是使用配置文件这种方式,该方式可以在不修改代码的情况下使wcf能够满足新的要求。

7、客户端调用服务
客户端调用服务,需要生成相应的代理类。有两种实现方式,这两种实现方式都需要添加对服务的引用。添加服务引用后,便会生成一个服务契约接口、一个服务代理对象和其他相关的类。客户端可以直接使用继承自ClientBase并实现了IService接口的服务代理类来调用服务。还可以通过ChannelFactory创建服务代理的方法来调用服务。在定义自己的服务代理类时,同样需要指定终结点的三要素,客户端使用这个终结点来匹配服务端的终结点进行服务调用。

8、结构图
WCF入门概念归纳