使用数据库和JAVA创建简单的工作流引擎

时间:2017-10-13 04:05:49

标签: java database workflow

对于一个小项目,我需要创建一个简单的批准工作流程。基本上,只需单击一个按钮,应用程序就会转到下一个批准者。问题是如何在没有在JAVA中编写任何可能的场景的情况下实现这一点。我的想法是拥有一个数据库表,其中一个描述工作流场景,JAVA代码查找此表的后续步骤。但我无法考虑细节,表格结构等。所以底线是尽可能多地使用配置。

1 个答案:

答案 0 :(得分:0)

您在寻找什么,是一种以人为本的工作流引擎。正如您已经注意到的那样,实践中的可能情况可能是多方面的。原因是可以有

  • 顺序流程
  • 分叉和分裂
  • 也是循环或循环

问题是数据结构如何描述所有这些场景?这里的答案是OMG standard BPMN 2.0。这是描述工作流程的描述性方法。 BPMN文件是简单的XML,可以使用Eclipse BPMN等建模工具进行可视化。

如果您存储这种XML(例如,只是存储到您的文件系统中),那么您可以编写一个引擎来解析此模型并以适当的方式做出反应。 有基于BPMN的工作流引擎,也可用作开源项目。 看一下Imixs-Workflow project,它提供了一个专注于以人为中心的wokflow的开源工作流引擎。 以人为中心的工作流引擎会回答您在要求中提到的问题,例如:

  • 谁是业务任务的所有者=>路由
  • 允许谁访问和修改数据=>安全
  • 谁需要被告知=>消息

但实现工作流引擎也不容易。最后,您需要一个XML解析器来回答问题'下一个任务是什么?'。