.NET 框架中的编排模式与 WF 工作流服务详解
编排模式基础
编排旨在构建一个能够集中执行和管理多个自动化业务流程的物理环境。编排 [758] 复合模式通过一组特定模式的协同应用来实现这一环境,其中关键的模式包括流程抽象 [762]、流程集中化 [763]。
流程抽象 [762] 是编排的基础,因为编排平台专门用于承载和执行父业务流程逻辑。流程集中化 [763] 同样重要,它使编排平台能够对相同的父业务流程逻辑进行集中托管、执行和治理。单独应用流程抽象 [762] 会创建任务服务,而流程抽象 [762] 和流程集中化 [763] 的组合应用则定义了编排任务服务模型。编排任务服务与常规任务服务的区别在于,前者托管在编排平台内。
以下为编排 [758] 复合模式的相关元素:
| 模式 | 描述 |
| — | — |
| 流程抽象 [762] | 承载和执行父业务流程逻辑 |
| 流程集中化 [763] | 对父业务流程逻辑进行集中托管、执行和治理 |
| 状态仓库 [785] | 存储长时间运行流程的状态 |
| 补偿服务事务 [724] | 处理失败事务的补偿逻辑 |
编排平台通常与 WS - BPEL 的使用相关联,它是一种将父业务流程逻辑以可执行语法表达的方式。
在长时间运行的服务活动方面,编排提供了创建和管理的能力。由于执行时间可能从几秒到数小时甚至数天,编排平台自然会提供中央状态数据库(对应状态仓库 [785] 模式)和不允许更改回滚的替代事务机制(对应补偿服务事务 [724] 模式)。
在 .NET 中,长时间运行的流程在不活动时可通过脱水技术存储