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