深入探索Windows Communication Foundation工作流服务开发
1. 工作流服务简介
工作流服务是Windows Communication Foundation(WCF)与工作流基础(Workflow Foundation)相结合的产物。借助工作流服务,工作流能够以服务的形式对外暴露,并且可以调用其他服务。由于大多数服务都会公开高级接口(契约),因此使用工作流来实现契约是合理的。WCF提供契约,工作流基础提供流程,二者结合便形成了用于业务逻辑流程的WCF契约,即一种通过WCF支持的明确定义的通信协议来实现流程的服务。
当查看服务契约时,我们往往不清楚应该首先调用哪个消息,正确的消息序列是什么,以及消息之间是如何相互关联的。而工作流则定义了协议,并能根据该协议接收消息。
可以使用CanCreateInstance布尔属性标记Receive活动,这将创建一个新的工作流实例。对同一工作流实例的后续调用将继续执行协议,直到工作流结束。工作流基础非常适合用于长时间运行的流程。工作流服务为长时间运行的服务提供了将其状态持久化到持久化数据库的能力,以及在调用服务方法时自动加载状态的机制。
一个业务流程通常由许多较小的业务流程组成。例如,一次购物交易可能包括调用库存服务、支付服务、欺诈检测服务和发货服务。工作流可以编排这类业务流程。可以在任何同时提供WCF托管的工作流主机中托管工作流服务,但Windows Server® AppFabric™是工作流服务的最佳主机选择。
2. 使用Visual Studio 2010创建工作流服务
可以向任