OpenWebFlow是基于Activiti扩展的工作流引擎。Activiti 是一个新兴的基于 Apache 许可的支持 BPMN 2.0 标准的开源 BPM 产品,它是一个轻量级,可嵌入的 BPM 引擎,并且提供了功能丰富的开发和流程设计工具。OpenWebFlow与业务应用系统之间的关系如下图所示。
相对于Activiti,OpenWebFlow扩展的功能包括:
1) 完全接管了Activiti对活动(activity)权限的管理。
Activiti允许在设计model的时候指定每个活动的执行权限,但是,业务系统可能需要根据实际情况动态设置这些任务的执行权限(如:动态的Group)。OpenWebFlow完全实现了与流程定义时期的解耦,即用户对活动的访问控制信息单独管理(而不是在流程定义中预先写死),这样有利于动态调整权限,详见自定义活动权限管理;
2) 完全接管了Activiti对用户表(IDENTITY_XXX表)的管理。
在标准的工作流定义中,每个节点可以指定其候选人和候选用户组,但是比较惨的是,Activiti绑架了用户信息表的设计!这个是真正致命的,因为几乎每个业务系统都会属于自己的用户信息结构(包括User/Group/Membership),但不一定它存储在Activiti喜欢的那个库中,表的结构也不一定一样,有的时候,某些信息(如:动态的Group)压根儿就不采用表来存储。OpenWebFlow剥离了用户信息表的统一管理,客户程序可以忘掉Activiti的用户表、群组表、成员关系表,详见自定义用户成员关系管理;
3) 允许运行时定义activity!
彻底满足“中国特色”,并提供了安全的(同时也是优雅的)催办、代办、加签(包括前加签/后加签)、自由跳转(包括前进/后)、分裂节点等功能;
2. 快速上手
2.1 引入OpenWebFlow框架
2.1.1 以jar的方式引入OpenWebFlow
OpenWebFlow的发布形式是一组正常的jar,其中openwebflow-core.XXX.jar包含了核心的工作流控制模块,以及基于内存的管理器实现模块。
此外,OpenWebFlow还提供了几个jar:openwebflow-mgr-hibernate.XXX.jar,openwebflow-mgr-mybatis.XXX.jar,它们提供了管理器的SQL实现模块,分别选取hibernate和mybatis作为ORM模型。还有一个是openwebflow-mgr-test.XXX.jar,它包含了几个测试类。
https://www.imdb.com/list/ls080449010/
https://www.imdb.com/list/ls080449036/
https://www.imdb.com/list/ls080449027/
https://www.imdb.com/list/ls080449093/
https://www.imdb.com/list/ls080449509/
https://www.imdb.com/list/ls080449570/
https://www.imdb.com/list/ls080449514/
https://www.imdb.com/list/ls080449560/
https://www.imdb.com/list/ls080449543/
https://www.imdb.com/list/ls080449580/
https://www.imdb.com/list/ls080449708/
https://www.imdb.com/list/ls080449772/
https://www.imdb.com/list/ls080449730/
https://www.imdb.com/list/ls080449764/
https://www.imdb.com/list/ls080449795/
https://www.imdb.com/list/ls080449784/
https://www.imdb.com/list/ls080449171/
https://www.imdb.com/list/ls080449133/
https://www.imdb.com/list/ls080449147/
https://www.imdb.com/list/ls080449192/
https://www.imdb.com/list/ls080449302/
https://www.imdb.com/list/ls080449354/
https://www.imdb.com/list/ls080449361/
https://www.imdb.com/list/ls080449328/
https://www.imdb.com/list/ls080449386/
https://www.imdb.com/list/ls080449651/
https://www.imdb.com/list/ls080449610/
https://www.imdb.com/list/ls080449667/
https://www.imdb.com/list/ls080449643/
https://www.imdb.com/list/ls080449699/
https://www.imdb.com/list/ls080449208/
https://www.imdb.com/list/ls080449271/
https://www.imdb.com/list/ls080449233/
https://www.imdb.com/list/ls080449263/
https://www.imdb.com/list/ls080449295/
https://www.imdb.com/list/ls080449407/
https://www.imdb.com/list/ls080449477/
https://www.imdb.com/list/ls080449437/
https://www.imdb.com/list/ls080449425/
https://www.imdb.com/list/ls080449493/
https://www.imdb.com/list/ls080449901/
https://www.imdb.com/list/ls080449956/
https://www.imdb.com/list/ls080449912/
https://www.imdb.com/list/ls080449938/
https://www.imdb.com/list/ls080449928/
https://www.imdb.com/lis