Activiti源码——建模概念

主要概念与PT工作流进行对比分析

activiti工作流中的核心概念主要有流程、活动、任务、顺序流、网关、变量、流程实例、任务实例、执行实例、表单、用户、用户组、历史,这些概念支撑了工作流引擎的最少必须核心功能,其中活动、任务、顺序流、网关描述了流程的业务流转路线,表单承载了流程的具体展示内容,用户、用户组则是流程任务的实际参与者,这些概念有一个共同的特点,它们在配置层面都是静态的。activiti中的动态的或运行时的概念主要指实例,流程实例、任务实例、变量等,流程引擎的核心工作就是根据静态的配置产生动态的实例在不同的活动环节流转以完成业务需求。

PT工作流的业务目标与activiti一致,流程引擎的核心工作职责一致,但在设计上实现上有明显的差别,这就带来了二者在能够支撑的业务场景上的差异。
PT工作流中运用了流程实例、环节实例、任务实例,activiti则弱化了环节实例,新提出了执行实例。在只有一个执行实例的情况下,该执行实例就是流程实例,但在多个执行实例的情况下,执行实例表达了一种并行的含义,activiti借助执行实例实现了同一任务多实例并行的业务,PT工作流则是基于会签实现了类似的效果。但执行实例的作用不仅于此,它更一步的支持了同一任务多实例串行的业务,即可以指定多任务实例执行的顺序,PT工作流目前对于这样的场景尚难以支撑。

activiti中流程的流转取决于网关及顺序流条件表达式的配置与变量结合的结果,PT工作流的流转取决于决策环节及条件表达式与变量结合的结果,都是基于静态表达式+运行时数据运算得出实际的流转方向,不同的是activiti的网关有多种类型能够支持多种业务场景,如排他网关与PT工作流的决策环节功能一致,并行网关与PT分支环节实现的功能一致,而包含网关则实现了PT目前没有支持的非对称分支聚合功能。

另一个比较大的差异是activiti对于任务的理解,activiti中任务类型众多,如用户任务、脚本任务、服务任务、规则任务、邮件任务等等,其中用户任务相当于PT工作流中的任务,而其它的任务类型在PT中或不存在或是其它方式实现,如脚本任务在PT中是通过后置程序实现的,并没有设计为一个任务节点,PT对于任务的定位更多的是考虑了需要有人参与的因素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值