最近一直在做工作流程相关的项目,几个流程做下来,感觉我们的工作流能力还是很有限的。
也参考了几个开源的,比如activiti,jbpm等,功能很强大,但对于我们要使用的一些简单的流程,就显得有点过重了。
基于此,本人想设计一套轻量级的工作流引擎,实现基本的工作流功能,使用起来也更简单,明白。同时,对自己能力的提升,也是一个好的实践。
大模块和主流的工作流引擎,大致是一致的:
1.用户管理模块
包括用户的管理,用户组,角色等相关关联关系的维护。
2.流程定义模块
用于定义流程,比如流程定义,流程节点的定义,流程节点方向的定义,和流程方向条件的维护。
3.流程实例模块
对流程运行过程中的数据进行管理,比如流程实例生成,流程任务的生成,处理等操作。
4.流程相关业务的整合
对流程业务表进行简单操作,使得业务数据和工作流中相关字段有个简单同步过程。