关于Activiti工作流框架的多种使用维度

activiti是个开源免费的工作流程框架,遵循BPMN2(Business Process Modeling Notation - BPMN业务流程模型注解)的规范,其简约思想的设计使得activiti非常轻量级,数据库层使用MyBatis,并且能与Spring完美的集成。

在笔者遇到的公司实际运用项目中,对Activiti工作流框架的使用方式,总共有三种:

(1)常规的使用。通过Ideal、Eclipse等编辑器的Activiti插件来画流程图,然后在业务系统提供工作流流程文件上传部署的功能,从而进行流程的部署和更新。业务系统对Activiti框架进行统一的封装,提供一套公共使用的API接口,同时API接口里额外增加审批状态的扩展数据存储,用来保存流程实例的审批通过、回退、拒绝、撤销等各种状态。

(2)简易流程封装使用。首先部署approval_flow.bpmn流程,此流程里通过排他网关支持回退直到审核节点,至于是回退到审核节点还是到结束节点,则根据审批任务传入的变量来确定是否循环回到审核节点还是回退。而催收系统则可以定制变量,或者通过drool规则引擎执行得到变量,再传入工作流进行任务审批,这样可以通过一个简单的流程进行被不同的业务套用。相当于在activiti基础上,自行定制流程节点,而且还不用部署各种流程(但是有局限性,无法应对复杂流程的走向)。

(3)原子流程服务编排。通过定制各种常规基础服务功能,比如 身份证号码校验、用户登录校验、发送短信、发送邮箱等各种基础服务,然后给这些服务进行组合形成一个个对外服务的接口,比如一个用户登录接口,就可以由(短信验证码校验+客户有效性校验+身份证号码校验+颁发认证token+发送登录成功邮件通知)组合而成。在项目启动的时候通过加载数据库的组件组合配置表,动态生成actviti工作流的流程文件进行部署,然后对外提供的服务通过发起指定的Activiti流程实例,从而完成一整套组件的调用。

你可能感兴趣的:(spring,java,工作流,Activiti)