低代码平台选型(一)| 引擎篇 | bpm-九游会平台靠谱吗

编者按:在选型低代码平台时,我们需要注意些什么呢?本文将带你认识流程引擎相关知识,并介绍了低代码平台与其的关系,不同的流程引擎对低代码平台的影响。

  1. 常见的开源流程引擎
  2. 低代码平台和流程引擎的关系
  3. 低代码平台选型之流程引擎activiti

常见的开源流程引擎

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

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

(天翎平台技术参数)

低代码平台和流程引擎的关系

低代码,指一种快速开发的方式,使用最少的代码、以最快的速度来交付应用程序。一般采用简单的图形化界面和拖、拉、拽的开发方式,通过可视化的逻辑引擎开发自己所需的应用程序。

forrester将低代码平台定义为“利用很少或几乎不需要写代码就可以快速开发应用,并可以快速配置和部署的一种技术和工具”。

流程引擎作为一种核心功能,低代码平台、办公自动化(oa)、bpm平台、工作流系统均需要,如果说低代码平台是一辆货车,流程引擎就是车的控制系统,表单是车厢,数据是货物。

低代码平台选型之流程引擎activiti

既然流程引擎是低代码平台的核心功能,那么在选型低代码平台时就需要格外注意流程引擎方面,包括其适用性、性能等。本文主要主要讲开源流程引擎activiti,因为这是在低代码平台中常用的流程引擎,比如宏天、红迅是基于开源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 作为一个流程引擎, 可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言(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流程的低代码平台,不可避免受到以上这些限制,所以在选型时我们需要多加考虑。

推荐

网站地图