状态机和工作流之间有什么区别?

31

我想了解“状态机”和“工作流”的区别,以及它们与“状态机工作流”的不同之处。


“Workflow”的意义高度依赖于上下文。而“状态机工作流”有些荒谬。 - Hot Licks
但我发现这是微软发明的术语,所以我想这种无聊的说法也是可以预料的吧。 - Hot Licks
1
基本上,在.NET的背景下,这些术语的含义是微软所说的含义。 - Hot Licks
4个回答

13

工作流程有限状态机在维基百科上有很好的定义。

我猜你从这个页面了解到了“状态机工作流程”这个术语。.NET似乎支持不同的建模工作流程的方法(它们只是复杂人类任务中定义的一些步骤)。状态机(即具有状态之间转换的地图)允许循环,而不是顺序工作流程,后者沿着不同分支前进,直到完成。


8
  • 产品经理绘制工作流定义图,然后将其交给开发人员/程序员。在阅读产品经理编写的需求文档后,开发人员/程序员设计实体、实体状态,然后在一个工作流节点中设置多个实体的状态。

  • 工作流具有并行网关、包容性网关和排他网关,但状态机只有一个排他网关。因此,工作流可以在同时的几个工作流节点上运行,但状态机只能在一个节点上运行。

  • 术语工作流与表示人们如何完成工作以及如何处理信息高度相关。

  • 新手可以通过工作流定义图轻松理解程序,而工作流定义图由工作流引擎(例如acitivti或jbpm6)将其绑定到代码中。它与代码同步。需求文档不与代码同步。


7
如Jere所说,状态机可以是循环图,而工作流通常是无环的。大多数情况下,“工作流”一词用于表示某种人类交互,其中可能会修改一些信息(例如:文档)。工作流术语与表示人们如何完成工作以及如何处理信息密切相关。状态机是一个更技术性的概念,需要表示实体或一组实体的不同状态。您还应该询问有关业务流程的问题 :)祝福

1
工作流引擎和状态机之间的主要区别在于关注点。在工作流引擎中,当前一个动作完成后,会发生到下一步的转换,而状态机需要一个外部事件来导致分支到下一个活动。换句话说,状态机是事件驱动的,而工作流引擎则不是。
我一直在寻找它们之间的主要区别,直到我从这里找到了这个真正的区别,这是真实的。请参考我引用这个区别的文章。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接