低代码开发平台核心组件——元数据管理(低代码云开发)
低代码开发平台最薄弱的环节应该就是业务对象的建模。很多低代码平台用页面代替业务对象建模,页面就是业务对象。这样做的最大好处就是上手比较容易,直接拖拽一个页面就可以运行。但是对应复杂的业务逻辑往往力不从心,很多低代码平台在页面上拓展了主子页面的概念、页面间数据引用的概念等等,都是为了提升平台应对复杂业务的能力,但是并没有从根本上解决问题。
乐扣低代码平台通过元数据来描述业务对象模型,并从研发人员的视角将业务对象模型和数据的持久化、外部资源的调用集合起来。元数据管理是前面在乐扣低代研发平台研发思路中阐述了低代码平台的核心组件之一, 元数据管理中包括以下四种资源。
关系数据库
关系数据库是我们在信息化系统中使用的最多的数据持久化方案,关系数据库中的表结构可以和业务对象模型对应。元数据在低代码平台中的着用就像ORM(比如:Hibernate、Mybatis等等)在传统开发中的着用。
低代码平台中关系数据库元数据管理需要具备以下特性和能力:
- 反向工程能力,能够从现有的数据库中自动生成元数据。
- 重构数据库的能力,在修改元数据后能够重构数据库中的表结构,使得元数据和数据库表结构一致。
- 提供基于元数据的数据增删改查能力,提供GraphQL或者类似的接口。
- 和传统的设计工具对接的能力,比如导入PowerDesigner设计的数据模型。
非关系数据库
非关系数据库,比如文档数据库mongoDB、ElasticSearch,和低代码平台中的自定义表单非常般配可以说是天生一对。再复杂的页面表单数据都可以用json或者xml作为一个文档保存到数据库中。但是在后续的查询、分析和统计中需要将相关的属性抽取出来,所以非关系数据库的元数据就是为了解决这个工作的。
非关系数据库元数据提供以下特性和能力:
- 描述文档中关键字段对应的属性或者路径。
- 配合数据转换工具,将非关系数据库中的数据转换到关系数据库中。
消息队列与外部服务
现在信息化系统越来越发展,并不是所有的业务操作都是简单的数据持久化,有些操作需要将数据推送改消息队列或者调用其他外部服务。
消息队列和外部服务的元数据是为了给前端自定义表单提供统一的访问接口,以提高低代码平台的研发能力。