基于模型驱动低代码平台的实现原理

基于模型驱动的可视化开发是当前低代码平台实现的主要实现技术,为什么基于模型驱动开发成为了低代码的主要技术途径,本文阐述其基本的实现原理和逻辑。


一、应用构成要素

我们先看一下汽车的基本构造,由车身、发动机、方向盘等多个零部件构成,因为它是一个工业产品,有实物存在,摸得着看得见,所以大家很容易理解。日本丰田汽车是如何做到自动化流水线生产的,本质上是把产品xBOM定义得很清晰,而且完全结构化了,才能用数字化技术生产汽车产品。

 


       其实,软件系统也是有构成要素的,只不过软件系统跟汽车相比,比较抽象,难以理解,但是想做到低代码/零代码方式开发应用系统,必须对应用系统构成要素进行抽象,层层拆解,直到最小的元素,其实也是一个产品结构树BOM。反过来,如果每个最小的元素都可以通过拖拉拽可视化方式开发,然后可以把这些元素通过配置方式组合起来,就达到了低代码平台开发的要求。

 


我们大体上可以把软件系统分成:数据、界面、流程、逻辑、菜单这几个一级构成要素,每个一级要素继续分解成二级构成要素,依次类推。以界面为例,界面可以由表单、视图、图表构成,表单由布局、控件、样式、事件构成,控件由复选框、下拉框、输入框等元素构成。通过这个逻辑,大家就能理解低代码平台为什么需要表单设计器了。如果数据、界面、流程、逻辑、菜单都是通过可视化方式配置完成的,那么就形成了低代码平台。


二、模型驱动原理

        模型驱动是一种软件开发方法,利用一系列模型的设计、映射、引用、转换,来驱动软件的需求、设计、实现的软件工程过程。

 


       以上是低代码平台表单引擎原理图,主要包括模型建模工具(表单设计器)、模型解析引擎、模型实例化引擎、界面渲染引擎、模型库、实例库几部分构成,实际产品开发中部分引擎可以合并为一个组件。

以下通过一个业务场景举例说明其逻辑,假设用户要设计一个请假申请单。

第一步:首先要打开表单建模工具,通过拖拉拽方式设计表单,格式是Json或xml均可,设计完成后,提交保存表单模型,调用后端模型解析引擎,模型解析引擎会解析json或xml,生成表单模型元数据,插入到模型数据库中,此时就完成了表单设计工作。

第二步:表单发布后,用户打开URL链接,请求表单界面渲染引擎,界面渲染引擎通过模型解析引擎得到模型定义对象,进而完成页面动态渲染。

第三步:用户录入数据,点击提交,请求模型实例化引擎,并把数据插入到数据库业务表中。

        那么基于模型驱动开发的原理有什么好处呢?

  1. 快速设计原型系统,项目经理在需求调研时,直接设计高保真原型系统;

  2. 快速开发业务应用,通过拖拉拽方式比硬编码方式大幅提升开发效率;

  3. 响应需求高动态变化,比如:客户调整样式、加字段、改流程等经常发生;

  4. 模型积累和重用,模型可以导入导出,模型可以分享,相比代码更具备复用性;


三、低代码核心功能

1、业务建模:基于元数据模型驱动开发的思想,提供灵活、稳定的元数据模型建模与管理,通过数据实体、属性、关系等元数据配置响应业务需求变化,提供了在线的数据库实体建模和E-R建模功能,支持单表、一对一、一对多关系。


2、表单建模:在线可视化化表单设计器可快速建符合业务的表单,用于数据采集和流程审批,在线预览,所见即所得。


3、页面建模:提供可视化配置功能,支持单表、主子表、树等多种模板,基于组件化组合思想,可构建复杂页面功能,并可配置页面查询框、操作按钮等功能。


4、流程建模:BPMN2.0规范,可视化拖拉拽流程设计;会签、加签、跳转、退回、撤销等多种流程操作,配置即用;用户、部门、角色、岗位、 关系等多种选人方式,符合中国特色组织选人需求。


5、报表建模:报表设计器是一款在线可视化报表建模工具,提供了汇总表、明细表、柱形图、条形图、饼图、折线图、面积图、雷达图、指标图等多种种常用图表,可以组合及联动使用。设计器采用拖拽操作的风格,简单易用,能够实时展示配置效果,一目了然。


6、门户建模:拖拉拽方式设计首页,无需编码;多种布局风格,可自由布局;支持多角色门户,不同角色不同首页;在线预览,所见即所得。


7、大屏建模:无需写代码,在线可视化设计大屏,支持图表、表格、媒体等20+常用组件,支持静态数据、HTTP、SQL等多种获取数据方式。


8、移动建模:可以在线设计流程和表单,开发应用,无需手写代码,可自动生成移动端界面,极大提升了移动应用开发效率。


9、数据服务化:无需开发Controller、Service、Dao、Mapper、XML、VO等Java对象,一键即可生成HTTP API接口,跟Swagger无缝结合,生成标准RESTful接口文档。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.didaima.org/?id=750

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。