云原生时代的开发工具集之中,至少应有这样一种利器:基于微服务架构的低代码开发平台,同时与业界标准的云原生技术支撑设施能够完全协同和融合。低代码开发平台的构建不仅仅是采用微服务开发框架,更加重要的是符合当前主流的中台和微服务架构思想。因此本项目低代码开发平台不是走零代码开发的思路,而是真正的基于模型驱动和SOA思想,允许少量代码开发和融合。
其核心思想是:
•低代码开发的小应用应该是一个个独立的微服务
•应用的构建进一步贯彻SOA体系分层构建的思路,通过服务层解耦
•低代码开发应该是模型驱动的,这个模型核心是对象和数据模型
•技术层面
通过在低代码平台中实现前后端分离、负载均衡、J2Cache 二级缓存、Redis缓存、流程异步方案等技术手段,提升软/硬件服务层的吞吐量和处理能力。
•业务层面
通过低代码平台的代码生成器和自定义表单减少大量重复性开发工作,大幅度提高开发效率。
低代码开发平台与其它支撑平台紧密协同,低代码开发完成的应用可以快速的部署和交付到容器云环境。部署于云原生环境下的低代码开发平台更加开放和友好,比如提供相应的代码导出以及部署包导出,对于导出的内容可以直接在标准的代码开发环境(如Eclipse)编译构建,可以进行部署,并脱离低代码开发平台本身运行。
流程引擎本身是低代码平台底层很重要的一个技术服务能力支持,同时流程引擎本身和组织模型绑定紧密,以进行相应的细粒度数据权限控制和流程动态权限控制,此处先不描述具体的组织引擎和流程引擎集成点,而重点分析表单和流程引擎的集成。
![](https://i-blog.csdnimg.cn/direct/6e25228575ea484eb5bff59e12a04525.png)
如上图,对表单数据进行分组,并建立流程活动节点和表单分组之间的映射和授权关系。
表单和规则引擎,需要调用后端数据才能够完成计算的规则,此类规则实际才是规则引擎可能涉及的场景。
![](https://i-blog.csdnimg.cn/direct/fd57838e54184c41b3744bc9d909a899.png)
如上图所示,此类场景下整体开发流程可以理解为
1.在规则模型中定义规则,规则接受输入并产生输出
2.表单传入关键param参数到规则引擎
3.规则引起基于param参数从数据库后台获取数据
4.基于提前定义的规则进行规则计算
5.返回规则计算结果给表单前端
那么,一个基于云原生时代良好定义低代码平台的核心要素究竟由哪些组件构成,具体可见下图:
![](https://i-blog.csdnimg.cn/direct/f9db8851ddd74abdaf6d2f64d377a5ad.png)
如上图所示:LCDP平台的核心包括了上图中的数据建模、表单建模、流程建模、权限建模、报表建模和规则建模几个关键部分的内容,通过这些建模组件,包括这些组件之间本身的协同来完成一个完整业务系统和功能的构建。
核心对象分析
表单和流程引擎、规则引擎集成:当前市面上很多低代码平台本身即是从传统的BPM软件或工作流引擎平台演变而来的,因此流程引擎本身是低代码平台底层很重要的一个技术服务能力支持。对于流程引擎本身和组织模型绑定紧密,以进行相应的细粒度数据权限控制和流程动态权限控制,这里重点分析表单和流程引擎的集成,如下图所示:
![](https://i-blog.csdnimg.cn/direct/63d60750744d457da3d1f7ea848fc8ef.png)
综上所述,可以看到,通过引入低代码平台,基于统一流程引擎及快速表单能力,使具有不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽、连线等操作,快速搭建复杂的表单、配置或发布流程审批节点,生成符合业务部门需求的表单和工作流,从而快速上线新流程。相对传统的开发方式,低代码平台+流程引擎带来了以下三个方面的改变:
1)可在表单基础上配置,应用查询条件、列表字段排序、列表的操作按钮、表单操作按钮等,一键生成到系统菜单,快速实现流程低代码开发;
2)表单挂接到流程节点,变成流程表单,可根据每个节点的业务情况再次配置表单权限、表单前后置事件,根据每个节点进行打印模块配置;
3)通过表单器配置表单布局、权限、数据视图等基本要素后,结合代码生成器生成前端、微服务接口、持久层等各个层次代码,只需手动特殊业务代码即可,节省80%以上代码开发时间。
低代码平台+流程引擎的应用让业务流程顺畅流转、高效运行,为业务部门的数智化、流程化转型提供快速的IT流程支撑能力:
-
降低门槛:无需丰富的开发经验,拥有基本的开发经验的开发人员即可通过可视化建模来完成表单、流程的设计与前端页面搭建;
-
降本增效:区别开传统写代码开发模式,优化开发流程,节省流程新增与优化的成本,提升企业运作效率;
-
快速响应:维护升级方便,即改即生效,快速响应业务调整及变化;
-
快速交付:低代码开发,复用率高,提升交付效率;
-
提高业务部门满意度:能够快速响应业务部门多样化需求,业务流程能够顺畅流转、高效运行,使业务部门满意度大幅提升。
![](https://i-blog.csdnimg.cn/direct/899bb29361434a3a82901556c61b1a3d.png)