WCF-架构


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

WCF架构

合约

合约层紧邻应用程序层,包含与现实世界合约类似的信息,该合约指定服务的操作以及它将生成的可访问信息的类型。合同基本上有四种类型,下面简要讨论 -

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

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

  • 消息契约- 数据契约由消息契约控制。它主要对 SOAP 消息参数的类型格式进行定制。这里需要提到的是,WCF 采用 SOAP 格式来进行通信。SOAP 代表简单对象访问协议。

  • 策略和绑定- 与服务通信有某些先决条件,这些条件由策略和具有约束力的合同定义。客户需要遵守本合同。

服务运行时

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

  • 限制Behave- 管理处理的消息数量。

  • 错误Behave- 定义任何内部服务错误发生的结果。

  • 元数据Behave- 指定元数据对外界的可用性。

  • 实例Behave- 定义需要创建的实例数量,以使它们可供客户端使用。

  • 事务Behave- 在发生任何故障时启用事务状态的更改。

  • 调度Behave- 控制 WCF 基础结构处理消息的方式。

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

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

消息传递

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

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

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

激活和托管

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

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

  • Windows 激活服务- 这通常称为 WAS,随 IIS 7.0 一起提供。通过使用 TCP 或 Namedpipe 协议,HTTP 和基于非 HTTP 的通信都可以实现。

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

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