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

最近一直在研究工作流。

工作流的种类:

1、侧重人机交互的工作流,以WFMC规范为重点参考;

2、侧重服务整合和应用自动化的工作流,以BPEL规范为重点参考。

无论哪种,陷进去都是一个坑。我关注前者,研究思路和方法:

1、了解规范:看WFMC的资料,了解5个接口模型,了解XPDL;

2、了解开源产品:研究OSWorkflow(这个我花了些力气,也在整理学习笔记)、Shark、OBE;

3、适度看看当前强大的商用工作流,以ULTIMUS为重点。

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

于是又google翻这些资料,得看大师的文章:

http://en.wikipedia.org/wiki/Finite_state_machine

http://en.wikipedia.org/wiki/Event_driven_finite_state_machine

……

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

这时候我想试问一下了:工作流是否应该建立在有限状态机(FiniteStateMachine,FSM)引擎之上?

还希望大家切磋、指导。

相关推荐