WCF - 架构

WCF 具有分层架构,可为开发各种分布式应用程序提供充足的支持。下面将详细介绍该架构。

WCF 架构

契约

契约层紧挨着应用程序层,包含的信息类似于现实世界中的契约,该契约指定了服务的操作及其将生成的可访问信息类型。契约基本上分为以下四种类型 −

  • 服务契约 − 该契约向客户端和外部世界提供有关端点产品以及通信过程中要使用的协议的信息。

  • 数据契约 − 服务交换的数据由数据契约定义。客户端和服务都必须遵守数据契约。

  • 消息契约 − 数据契约由消息契约控制。它主要对 SOAP 消息参数的类型格式进行自定义。这里需要指出的是,WCF 使用 SOAP 格式进行通信。SOAP 代表简单对象访问协议。

  • 策略和绑定 − 与服务进行通信有一定的先决条件,这些条件由策略和绑定契约定义。客户端需要遵守此契约。

服务运行时

服务运行时层位于契约层之下。它指定运行时发生的各种服务行为。有许多类型的行为可以进行配置并属于服务运行时。

  • 限制行为 −管理已处理的消息数量。

  • 错误行为 − 定义任何内部服务错误发生的结果。

  • 元数据行为 − 指定元数据对外界的可用性。

  • 实例行为 − 定义需要创建的实例数量,以使其可供客户端使用。

  • 事务行为 − 在发生任何故障时启用事务状态的更改。

  • 调度行为 − 控制 WCF 基础结构处理消息的方式。

  • 并发行为 −控制客户端-服务器通信期间并行运行的功能。

  • 参数过滤 − 具有在调用方法之前验证方法参数的过程。

消息传递

此层由多个通道组成,主要处理两个端点之间要传达的消息内容。一组通道形成通道堆栈,组成通道堆栈的两种主要通道类型如下 −

  • 传输通道 − 这些通道位于堆栈的底部,负责使用传输协议(如 HTTP、TCP、对等、命名管道和 MSMQ)发送和接收消息。

  • 协议通道 −这些通道位于堆栈顶部,也称为分层通道,通过修改消息来实现线路级协议。

激活和托管

WCF 架构的最后一层是服务实际托管或可执行以便客户端轻松访问的地方。这是通过下面简要讨论的各种机制实现的。

  • IIS − IIS 代表 Internet 信息服务。它通过服务使用 HTTP 协议提供了无数优势。在这里,不需要有主机代码来激活服务代码;相反,服务代码会自动激活。

  • Windows 激活服务 − 这通常称为 WAS,随 IIS 7.0 一起提供。通过使用 TCP 或 Namedpipe 协议,HTTP 和非 HTTP 通信均可在此实现。

  • 自托管 − 这是一种机制,通过该机制,WCF 服务可作为控制台应用程序进行自托管。此机制在选择所需协议和设置自己的寻址方案方面提供了惊人的灵活性。

  • Windows 服务 − 使用此机制托管 WCF 服务非常有利,因为由于没有运行时激活,服务将保持激活状态并可供客户端访问。