该如何选择,顺序工作流(Sequential Workflow)还是状态机器工作流(State Machine Workflow)

简介:
.Net framework 的 Windows Workflow Foundation 有两种工作流,一种是Sequential workflow 一种是State machine 工作流,在实际开发中我该如何做出选择呢? 
 
一般来说Sequential Workflow 用于流程已定的情况。什么是流程已定,这是说工作流的流向大体上不取决于外部的决定,比如贷款审批,流程基本上确定,并且其分支和循环也是规定好了的。又如文档审批,假期审批等都比较适合用Sequential Workflow.  一般Sequential Workflow 是不可逆的。除了循环Activity 外,一般一个Activity 执行完毕后便不再被执行。
State Machine 工作流则一般用于 方向不明确的事情当中,一件事完成(state activity)面临着很多不同的选择,并且,这个选择要依赖于人的决定(事件驱动)。State machine 往往是可逆的。一个状态(State Activity)有可能要被多次的执行。比如在线购物便可以看成一个state machine workflow. 工作流的进行往往有赖于外部事件(比如人)的推动。 再有,如看电视,可以开电视,可以关电视,可以随便转台,也可以专注看某个节目,状态与状态间并没有一个必然的顺序关系。如此,我们便可以使用state machine workflow.

一个流程很多时候 用Sequential Workflow 可以,用State Machine Workflow 也可以,但是正确的选择往往能更有效的使用WF, 节省成本,提高开发效率。有的时候,我们甚至要同时使用到两种工作流,一切都是为了满足现实的需求。



本文转自 xhinkerx 51CTO博客,原文链接:http://blog.51cto.com/xhinker/182092,如需转载请自行联系原作者
目录
相关文章
68 Azkaban Command类型多job工作流flow
68 Azkaban Command类型多job工作流flow
52 0
|
Kubernetes Java Docker
工作流 workflow
工作流:就是一个可以处理复杂情况的状态机。
366 0
|
XML SQL 分布式计算
Apache Oozie- 节点类型 (control flow. action) & 工作流类型 (coordinator. bundle)|学习笔记
快速学习 Apache Oozie- 节点类型 (control flow. action) & 工作流类型 (coordinator. bundle)
Apache Oozie- 节点类型 (control flow. action) & 工作流类型 (coordinator. bundle)|学习笔记