WCF的体系架构
WCF的体系基本上包括4个方面,分别为契约、服务运行时、消息和寄宿。
契约(能干什么)
契约属于一个服务公开接口的一部分,一个服务的契约,定义了服务器公开的服务方法、使用的传输协议、可访问的地址、可传输的消息格式等内容。
服务运行时(怎么干)
服务运行时定义了服务在运行时的具体行为。
消息
消息方面包含了消息的传输方式、消息的编码与解码,消息方面的内容基于属于服务边界以内的具体实现。具体的传递时限,必须符合在契约中定义的绑定协议。
激活和宿主(在哪干)
激活和宿主属于WCF程序的部署方式。一个WCF服务需要在一个可运行的程序中寄宿,常用的寄宿方式包括自寄宿、IIS寄宿、Windows激活服务、Windows服务、Com+组件等。(根据SOA的原则,激活和宿主类型的变化不会影响服务本身的特性和外部对该服务的访问)
WCF需要明白的基础概念
1. 地址(Address)
在WCF 框架中,每个服务都具有唯一的地址。在SOA系统中,其他服务和客户端通过服务的地址来对服务进行访问。一个服务的地址由一个URI来表示。
如:http://127.0.0.1:6789/CaculatorService
http://127.0.0.1/WcfService/Caculator.svc
https://127.0.0.1:6788/CaculatorService
net.tcp://127.0.0.1:8888/CaculatorService
net.msmq://localhost/Service或 net.msmq://[hostName]/public(private)/[QueueName]
net.pipe://[hostName]/[Port]/[ServiceAddress]
2. 绑定(Binding)
绑定定义了服务与外部通信的方式。它由一组称为绑定元素的元素构成。这些元素组合在一起形成通信基础结构。
一个绑定包含以下内容:
(1) 通信所使用的协议,如Http、TCP、P2P等;
(2) 消息编码方式,如纯文本、二进制编码、MTOM等;
(3) 消息安全保障策略;
(4) 通信堆栈的其它任何要素。
3. 契约(Contract)
在WCF中一共包括4种契约:服务契约、数据契约、错误契约和消息契约。
(1) 服务契约[ServiceContract]
将多个相关的操作联系在一起,组成单个功能单元。
(2) 数据契约[DataContract]
数据类型的说明称为数据契约,服务使用的数据类型必须在元数据中进行描述,以使其他各方面可以与该服务进行交互操作。
(3) 错误契约[FaultContract]
错误类型的说明。
(4) 消息契约[MessageContract]
描述消息的格式。
4. 终结点(EndPoint)
终结点是用来发送或接收消息(或同时执行这两者操作)的构造,一个终结点有三个要素组成:Address、Binding、Contract。以SOA的思想来看,一个终结点就相当于服务的公共接口。
5. 元数据(metaData)
服务的元数据描述服务的特征,外部实体需要了解这些特赠以便与该服务进行通信。服务所公开的元数据包括XML构架文档(用于定义服务的数据协定)和WSDL文档(用于描述服务的方法)。启用元数据后,WCF通过检查服务及其终结点自动生成服务的元数据。
6. 宿主(Host)
服务必须承载于某个进程中,宿主是控制服务的生存期的应用程序。