工作流引擎是否应该建立在有限状态机(Finite State Machine, FSM)引擎之上?

最近一直在研究工作流。

工作流的种类:
1、侧重人机交互的工作流,以WFMC规范为重点参考;
2、侧重服务整合和应用自动化的工作流,以BPEL规范为重点参考。

无论哪种,陷进去都是一个坑。我关注前者,研究思路和方法:
1、了解规范:看WFMC的资料,了解5个接口模型,了解XPDL;
2、了解开源产品:研究OSWorkflow(这个我花了些力气,也在整理学习笔记)、Shark、OBE;
3、适度看看当前强大的商用工作流,以ULTIMUS为重点。

研究了几天,总觉得应该工作流应该基于Event-Driven FSM才是引擎的微内核,也更贴近WFMC所描述的概念与状态模型,而Petri Nets总觉得有点怪怪的。

于是又google翻这些资料,得看大师的文章:
http://en.wikipedia.org/wiki/Finite_state_machine
http://en.wikipedia.org/wiki/Event_driven_finite_state_machine
……

也找到了一些java FSM的实现,但还没深入研究。

这时候我想试问一下了:工作流是否应该建立在有限状态机(Finite State Machine, FSM)引擎之上?
还希望大家切磋、指导。

你可能感兴趣的:(工作,workflow,jbpm,项目管理,出版)