元数据驱动低代码系统的革命-业务逻辑篇
例如:查询、更新、删除、批量新增、批量更新、批量删除、下推、映射数据、上传文件、发送通知、自定义接口等等。操作的数据表标识为:sys_customers ,版本号为:1.0.0 ,API标识为:InsertCustomer,版本号为:1.0.0,我们描述过,低代码系统中的数据对象与数据库数据表是对应关系,所以上述API中的数据表和字段,是可以随时调整的,低代码使用门槛较高,价格较高、业务场景支持广
本文是元数据驱动低代码系统的三篇,
前两篇:
业务逻辑的可视化设计是低代码系统的技术难点之一。
在传统的纯代码开发过程中,通常不会涉及到这一部分,
所以,各低代码厂商在业务逻辑可视化设计领域,
采用了不同的设计思想,
也为开发者提供了差异化的体验。
随着行业的发展,现在零代码和低代码已经分为了两个领域,
二者商业模式截然不同,厂商和企业用户需要对此有明确的认识。

低代码代表厂商:用友、葡萄城、得帆云等,
零代码代表厂商:轻流、简道云、明道云等。
低代码使用门槛较高,价格较高、业务场景支持广泛,
零代码使用门槛低,价格便宜、业务场景支持有限。
所以各企业用户需要根据自己的实际情况来选择对应的产品,
以避免没必要的成本消耗。
如何使用元数据来描述业务逻辑呢?
不同厂商的解决方案不同。
将元数据以设计好的结构描述业务逻辑,
这种约定好的结构,
往往会被人们赋予一个高大上的名称:“协议”。
下面,将以朱雀BOS的方案举例说明。

上图是朱雀BOS的系统架构,
朱雀BOS服务端围绕着可视化配置API接口为中心展开。

低代码平台会根据自身的能力边界,
将用来承载业务逻辑的要件(也称业务能力)进行抽象,
然后转换为元数据定义。
例如:数据对象、文件上传、分布式事务、表达式计算等等。
开发者通过可视化界面操作这些要件,
系统将这些要件配置信息保存为元数据。
运行时通过加载这些元数据,
还原出业务逻辑处理的规则和实现方式,
并最终形成可执行程序。

具体而言,低代码平台用来描述业务逻辑的元数据,
通常由若干有顺序的“操作”构成,
每个操作中包含操作类型、配置参数、输入参数、输出参数等。
例如:向数据库特定数据表写入数据等操作,
使用元数据可描述为(以JSON格式展现):
{"ApiSign": "InsertCustomer","ApiVersion": "1.0.0","ApiMethod": "Insert","HttpMethod": "POST","NeedLogin": "1","Authenticate": "1","EnableDTM": "1","NoticeID": "","PrevSQL": "","NextSQL": "","CacheKey": "","CacheTag": "","Tables": [{"TableSign": "sys_customers","TableVersion": "1.0.0","MainTable": "1","TablePrevSQL": "","TableNextSQL": "","Fields": [{"FieldSign": "CustomerName","FieldKeyType": "0","ParamFieldType": "1","DefaultValue": "","SetValue": "","RequiredOn": "","Required": "1",...}...]...}...]...}
上述是朱雀BOS描述一个API部分元数据样例。
API标识为:InsertCustomer,版本号为:1.0.0,
调用元数据引擎中的Insert模块,
调用这个API需要登录,需要做身份验证,
需要启用分布式事务,
操作的数据表标识为:sys_customers ,版本号为:1.0.0 ,
该数据表有个字段,字段标识为:CustomerName ,
这个字段为必填字段。
当然实际的元数据远比上述元数据复杂和丰富。




当客户的向服务端发起请求POST请求,
请求参数中携带了API所需参数,
那么元数据引擎会根据API标识和版本号,
调取API所有配置的元数据,
然后根据元数据配置对请求对业务参数进行处理。
这里我们只简单描述了写入数据的操作,
实际的低代码系统中有更多的对数据的操作,
例如:查询、更新、删除、批量新增、批量更新、批量删除、下推、映射数据、上传文件、发送通知、自定义接口等等。
不同的操作有不同的元数据“协议”。
在上一篇中“元数据驱动低代码系统的革命-数据库篇”中,
我们描述过,低代码系统中的数据对象与数据库数据表是对应关系,
所以上述API中的数据表和字段,是可以随时调整的,
甚至可以在实际的数据库中调整了数据库名称,
或者数据表名,或者字段名,
在低代码系统中只需要稍微做一下对应,
一分钟不到就可以完成,
而且对外的API可以不需要做任何调整,
也不需要重新编译、不需要重新发布,
甚至客户端都感知不到。
完全规避了纯代码开发的繁琐流程,
什么DevOps都不需要了。
当然,我们不建议在生产环境中直接进行调整,
最好的方式是在开发环境中调整和测试好,
然后将最新版的元数据发布到生产环境服务器即可。

后续我们将继续讨论,
元数据如何驱动软件界面。
感兴趣的朋友不妨持续关注我们的更新,
一起探索元数据驱动低代码系统奥秘。
如果您觉得本文对您有用,建议收藏;
如果您觉得对您的朋友有帮助,请分享给他们;
如果您能点个赞,那就是对作者最大的支持。
更多推荐




所有评论(0)