编者按:流程引擎在各个行业都有应用,其重要性不言而喻,充分了解流程引擎是一项重要课题。本文详细介绍了开源流程引擎Activiti 的优点与局限性,为流程引擎的选型提出了参考性建议。

基础概念

首先,我们来了解几个概念:BPM、BPMN、流程引擎。

BPM(Business Process Management),即业务流程管理,BPM系统,即业务流程管理的系统。

BPMN(Business Process Model And Notation), 业务流程模型和符号,是由BPMI(BusinessProcess Management Initiative)开发的一套标准的业务流程建模符号,使用 BPMN 提供的符号可以创建业务流程。即BPMN是用来建模业务流程的标准规则。

流程引擎,用来驱动业务按照设定的固定流程去流转的东西,在复杂多变的业务情况下,使用既定的流程能够大大降低我们设计业务的成本,并且保证了我们业务执行的准确性。

流程引擎选型之Activiti

市场上比较有名的开源流程引擎有osworkflow、jbpm、activiti、flowable、camunda。其中:Jbpm4、Activiti、Flowable、camunda四个框架同宗同源,祖先都是Jbpm4,开发者只要用过其中一个框架,基本上就会用其它三个。另外,也有一些厂商自主研发的流程引擎,表现很不错,特别是在满足中国特色的流程需求方面,比如国产老厂商天翎。

孙子兵法有云:“知己知彼,百战不殆。”在充分了解流程引擎后,我们才能做出更好的选择。今天我们主要讲讲开源流程引擎Activiti。

Activiti由Alfresco软件开发,目前最高版本是Activiti 7。Activiti的版本比较复杂,有Activiti5、Activiti6、Activiti7几个主流版本。Activiti5和Activiti6的核心leader是Tijs Rademakers,由于团队内部分歧,在2017年时Tijs Rademakers离开团队,创建了后来的flowable, Activiti6以及Activiti5代码已经交接给了 Salaboy团队,Activiti6以及Activiti5的代码官方已经暂停维护了, Salaboy团队目前在开发Activiti7框架,activiti7内核使用的还是Activiti6,并没有为引擎注入更多的新特性,只是在Activiti6之外的上层封装了一些应用。

Activiti 是一个流程引擎, activiti 可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言(BPMN2.0)进行定义,业务系统按照预先定义的流程进行执行,实现了业务系统的业务流程由 Activiti 进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系统的健壮性,同时也减少了系统开发维护成本。

Activiti的设计初衷是嵌入式引擎应用,减少大量的硬编码工作,而应对BPM引擎中心需求仍有很多不足。

1 Activiti启动后,自动初始化23张数据表(作为Activiti升级版的Flowable,会自动创建46张表),实际业务场景中很多基本用不上。

2 流程变量属性数据的存储方式,采用纵表结构(为每个字段保存一条数据记录)。当一条流程记录中由500个字段,则会产生500条变量属性记录,当业务量大时会严重影响性能,并产生锁表现象。

3 自动数据源绑定,一个引擎实例指定一个数据源,在多应用(应用商店)场景下,无法为不同应用绑定不同的数据源

4 流程历史表同样采用纵表结构,不保存历史数据,则无法回溯,保存会产生单表过亿数据

5 无法多数据源同时工作,业务数据源和流程数据源不在一个数据库事务,会导致数据不一致。

6 表单和流程无法紧密耦合,如果有业务表单存在,则只能业务表单存一份数据,流程参数存一份数据,处理不好会导致数据不一致。

7 Activiti自带用户体系,主要是:用户 + 用户组实现,在复杂组织架构中,需要扩展。但扩展后无法做到向后兼容,后续(Activiti)版本升级是个问题。

8 Activiti和升级版Flowable(flowable是基于activiti6衍生出来的版本,flowable目前最新版本是v6.6.0)已经是属于两个商业实体,在后续的技术进化路线上产生明显的分歧。

小结:

目前市面上比较火爆的低代码平台,都是基于流程引擎开发的,我们在选择平台时需要仔细斟酌,比如宏天、红迅是基于开源Activiti作为流程引擎,所以不可避免受到Activiti的限制,建议三思而后行。

流程引擎课堂(一)| 关于开源流程引擎Activiti 的需要注意的几点相关推荐

  1. 流程引擎课堂(二)| 基于开源流程引擎开发的BPM有那些难点?

    编者按:开源流程引擎哪个好?如何基于开源流程引擎开发BPM,存在哪些难点?本文从国内流程引擎市场的难点出发,分析了其中的利弊. 企业的流转离不开流程,一个好的流程管理系统可以为企业增效降本,增强企业综 ...

  2. 基于开源流程引擎Activiti5的工作流开发平台BPMX3

    2019独角兽企业重金招聘Python工程师标准>>> BPMX3平台是宏天软件在ESTBPM2的基础上,追随开源工作流平台Activiti5,由原班开发团队,历时一年,现重新推出一 ...

  3. 基于camunda开源流程引擎如何实现会签及会签原理解析

    一.背景 市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.由于jbpm.activiti.flowable这几个流程引擎出现的比较早, ...

  4. 开源流程引擎Camunda

    开源流程引擎Camunda 文章作者:智星 1.简介 Camunda是一个轻量级的商业流程开源平台,是一种基于Java的框架,持久层采用Mybatis,可以内嵌集成到Java应用.SpringBooo ...

  5. java fixflow流程设计_Fixflow引擎解析(一)(介绍) - Fixflow开源流程引擎介绍

    简介 Fixflow是一款开源的基于BPMN2.0标准的工作流引擎,由Fixflow开源联盟组织(Fixflow OpenSource Union) 进行社区化管理,引擎底层直接支持BPMN2.0国际 ...

  6. 开源流程引擎activiti、flowable、camunda选哪个好?

    市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.其中:Jbpm4.Activiti.Flowable.camunda四个框架同宗同源, ...

  7. 开源工作流引擎(含流程设计器)

    工作流引擎 源码 该流程引擎完全开源免费,致力于打造与平台组织架构无关.高扩展的工作流引擎. 通过自定义用户选择器和条件处理器实现既有业务的组织架构关联和审批过程处理. 使用介绍 直接从git下载源码 ...

  8. 推荐一款开源工作流引擎,改善你的开发流程

      大家好,我是小编南风吹,每天推荐一个小工具/源码,装满你的收藏夹,让你轻松节省开发效率,实现不加班不熬夜不掉头发!   今天小编推荐一款基于SpingBoot2.0与activiti7.x开发的一 ...

  9. 开源流程引擎该如何选择flowable还是camunda?

    一.功能方面对比 来自:https://blog.csdn.net/qq_30739519/article/details/86682931 由于Flowable与Camunda好多功能都是类似的,因 ...

最新文章

  1. 怎样使用OpenCV进行人脸识别
  2. ArcGIS JavaScript API 实现基本的地图功能
  3. scheduling java_JAVA定时任务实现的几种方式
  4. C语言丨栈(二):链栈
  5. C语言第七次作业---要死了----
  6. 【Java】内存解析
  7. 20200505:力扣151周周赛上
  8. Windows Server 2008 \u0026 2012在GCE上正式商用了
  9. Tensorboard 安装及使用
  10. Goby内测版和AWVS14最新版联合教程详细说明
  11. AHRS算法代码:磁力计+加计+陀螺版
  12. iOS - 暗黑模式图片、颜色的适配
  13. 【QT小记】设置窗口背景透明
  14. CAD控件:界面控制说明和方法
  15. android打开app白色页面,完美解决Android App启动页有白屏闪过的问题
  16. 工程师的基本功是什么?如何练习?—学习心得分享
  17. 微信、tim文件访问失败解决方法
  18. 关于MPO光纤连接器你知道哪些?
  19. IDEA 断点调试,为啥断点没有起作用
  20. 计算机网络自顶向下-复习

热门文章

  1. android地图旋转监听,android百度地图:地图缩放、旋转、俯视角度以及屏幕像素与经纬度的转换Projection...
  2. 如何保证API接口安全
  3. Oracle dg 不能同步原因分析(ORA-1092 : opitsk aborting process)
  4. link1104,1168
  5. SpringBoot使用Pageable实现分页
  6. ewomail 内部通讯_利用EwoMail一键搭建基于Linux 安全稳定的开源邮件系统
  7. 操作系统-文件管理(上)
  8. 解密短信木马为何屡杀不尽--android手机短信木马的攻与防
  9. MySQL8.0与MySQL5.7区别
  10. ModelArts部署紫东太初大模型推理服务经验分享