WCF – 架构
WCF – 架构
WCF 具有分层架构,可为开发各种分布式应用程序提供充分的支持。下面详细解释该架构。
合同
合约层紧邻应用层,包含类似于现实世界合约的信息,该合约指定服务的操作以及它将提供的可访问信息的类型。合同基本上分为以下简要讨论的四种类型 –
-
服务合同– 该合同向客户端以及外部世界提供有关端点产品以及通信过程中使用的协议的信息。
-
数据合同– 服务交换的数据由数据合同定义。客户端和服务都必须同意数据合同。
-
消息合同– 数据合同由消息合同控制。它主要对 SOAP 消息参数的类型格式进行定制。这里需要说明的是,WCF 使用 SOAP 格式进行通信。SOAP 代表简单对象访问协议。
-
Policy and Binding – 与服务通信有一定的先决条件,这些条件由策略和绑定合同定义。客户需要遵守此合同。
服务运行时
服务运行时层就在契约层之下。它指定了在运行时发生的各种服务行为。有许多类型的行为可以进行配置并归入服务运行时。
-
节流行为– 管理处理的消息数量。
-
错误行为– 定义任何内部服务错误发生的结果。
-
元数据行为– 指定元数据对外界的可用性。
-
Instance Behavior – 定义需要创建的实例数以使它们可供客户端使用。
-
交易行为– 在发生任何故障时启用交易状态的更改。
-
Dispatch Behavior – 控制 WCF 基础结构处理消息的方式。
-
并发行为– 控制在客户端 – 服务器通信期间并行运行的功能。
-
参数过滤– 具有在调用之前验证方法参数的过程。
消息传递
该层由若干个通道组成,主要处理两个端点之间要通信的消息内容。一组通道形成通道堆栈,构成通道堆栈的两种主要通道类型如下 –
-
传输通道– 这些通道位于堆栈的底部,负责使用 HTTP、TCP、点对点、命名管道和 MSMQ 等传输协议发送和接收消息。
-
协议通道– 出现在堆栈的顶部,这些通道也称为分层通道,通过修改消息来实现线级协议。
激活和托管
WCF 架构的最后一层是服务实际托管或可以执行以便客户端轻松访问的地方。这是通过下面简要讨论的各种机制来完成的。
-
IIS – IIS 代表 Internet 信息服务。它通过服务使用 HTTP 协议提供了无数的优势。这里不需要有激活服务码的主机码;相反,服务代码会自动激活。
-
Windows 激活服务– 这通常称为 WAS,随 IIS 7.0 一起提供。通过使用 TCP 或 Namedpipe 协议,基于 HTTP 和非 HTTP 的通信在这里都是可能的。
-
自托管– 这是一种 WCF 服务作为控制台应用程序自托管的机制。这种机制在选择所需协议和设置自己的寻址方案方面提供了惊人的灵活性。
-
Windows 服务– 使用此机制托管 WCF 服务是有利的,因为由于没有运行时激活,这些服务将保持激活状态并可供客户端访问。