独家干货!两种低代码模型驱动开发技术对比(低代码 模型驱动)

独家干货!两种低代码模型驱动开发技术对比(低代码 模型驱动)

本文概述

近两年低代码技术突然变得格外火热,各种低代码平台纷纷粉墨登场。尤其是国内互联网大厂不断推出云端低代码开放平台,更是给低代码技术添了一大把柴火。实际上低代码技术不是近两年才出现的新鲜事,早在上个世纪80年代起以CASE(计算机辅助软件工程)技术为代表的低代码技术就已经出现了。其中典型的产品有:Oracle公司的CaseDesigner、GeneXus公司的GeneXus等。由于大量的战团加入了低代码市场的竞争,典型的包括有基于OA、BPM、RAD、ERP、PAAS、APAAS、SAAS等不同的技术背景。不同的技术实现给企业用户对低代码平台的选择带来了较大的困难,哪种平台更适合自己呢?本文将通过对低代码技术中的两种核心关键技术的分析帮助企业用户进行选择。我们知道大部分低代码平台都采用了模型驱动的开发模式,即通过可视化建模的方式来实现软件的设计和生成。领域模型创建完成后,有两种技术路线来生成和运行模型应用:A,对生成的模型进行编译并生成所有相关的源代码,使其成为普通的应用系统,该技术称为“代码生成”;B,利用模型解析执行引擎直接解析并运行所生成的模型,该技术称为“模型解析”。以下将简要介绍两种技术的实现原理和特点。

代码生成

低代码开发平台对于所创建的模型进行分析并生成指定的目标源代码,可以是Java、.NET/core、JS、CSS、H5等。在生成源代码时,常见的方法是使用模板引擎技术。以Java代码生成为例,一个模板会包含一系列相关的Java代码段,同时包括了若干个空白标识,这些标识将根据对应模型的定义内容来填充。经过填充的模板将成为完整的Java类代码。为了提升代码执行效率和代码质量,有些公司在生成代码的过程中还引入了AI技术。例如:GeneXus公司一开始就利用了人工智能语言PROLOG来完成模型的分析与源代码的生成工作,同时还在模型分析的过程中还对每个模型的优化提供建议与指导(Navigation Report)。

模型解析执行

采用模型解析技术时,平台并不会生成模型的目标源代码,而是通过平台自带的运行时模型解析器(也称执行引擎)来直接运行这些模型。这个执行引擎就是一个由Java或者其它语言编写智能执行程序。一般执行引擎会包含一个模型哈希键值映射表,引擎会 根据这个映射表找到并执行指定的模型。模型解析技术被许多低代码云平台厂商所采用,例如:Mendix等。

代码生成优点分析

1.应用可以脱离开发平台任意部署

这可能是代码生成最大的优势所在,因为应用生成后就与开放平台无关了,应用部署规模和数量都不会受平台的限制,因此也不会为此继续为平台付费。这种模式将软件开发总拥有成本降到最低;

2.可以保护开发商的知识产权

可以为特定客户进行定制的开发,开发商只需要将生成的源代码(如果需要的话)及编译后的安装包提交给客户即可,不需要提供开发环境及整合运行环境。而模型解析则需要向客户提供所有的后期运行及运维环境。

3.很好地融入客户的IT架构中

由于是生成传统的软件安装包,因此可以很容易地在客户已有的IT基础架构环境中进行安装部署,不需要对客户的IT架构提出新的要求,从而避免了在IT架构方面的额外投入。有些代码生成技术开发平台(例如:GeneXus)还能够生成不同运行环境下的源代码,例如:生成在Windows环境下的.NET语言、或者Linux环境下的Java语言等。而模型解析则需要安装运行平台的架构要求单独部署新的运行环境,或者租用平台商指定的云平台。

4.生成的代码更容易理解

由于是生成了指定语言的源代码,对该语言熟悉的技术人员可以很容易地读懂和理解软件的处理逻辑。而模型解析则由于其技术封闭性,客户无法阅读和了解软件的处理逻辑和流程。当软件运行出现问题时只能依赖平台商的技术支持,而这种支持由于平台商需要同时支持大量的客户群,无法提供及时有效的支持。特别是由于软件问题是由于平台本身的问题所引起的时,只能等到平台升级后才能够解决,这对于许多客户来说是难以接受的。

5.对于需要提供源代码的客户更有吸引力

国内许多客户(尤其是大中型企业)由于知识产权或知识保密等原因,往往需要开发商提供所开发软件所有的源代码进行备案或由客户自己的IT团队进行后期的运维和二次开发。针对这种客户的需求只能选择代码生成模式。

6.更容易利用和整合已有的IT成果

代码生成平台由于其技术的开放性,可以很好地与目标语言的各种已有的资源进行集成。这样前期已完成的软件模块(例如:jar包、DLLs、Java包、JS控件等)可以很容易地集成到开发平台,这就避免了重复开发工作。甚至随着这些模块的进一步完善,可以作为平台插件成为平台的扩展包。这种模式使得代码生成技术开发平台具有很好的扩展性和兼容性。

7.提供额外的编译检查

代码生成需要对生成的源代码进行编译,而编译器会对生成的代码进行语法检查,针对编译器检查出来的错误平台会主动处理以保证代码质量。有些代码生成技术开发平台还会提供不同层次的质量检查工具,例如:模型级检查工具、源代码级检查工具、网络运行安全检查工具等,甚至能够集成流行的代码检查工具。而模型解析平台则必须靠自己的技术来解决这个问题,同时开发环境与运行环境必须紧耦合以消除开发环境与运行环境的不同带来的软件运行潜在问题。

8.提供Debug功能

许多代码生成开放平台能够提供模型级的软件测试跟踪器(Debuger),这种Debug工具能够帮助开发者调试模型定义和业务规则代码的质量。

模型解析优点分析

1.一站式解决方案

采用模型解析技术的厂商倾向于将开发与运行融为一体给客户一个“一站式”IT解决方案,这一点对于中小企业客户有很大的吸引力。但是“一站式”解决方案牵扯到技术与管理等方方面面,对于厂商的挑战极大。另外,厂商也需要经过较长时间的积累使得平台更加成熟。客户不希望自己在低代码平台的投入由于厂商技术的限制或生存能力的限制打了水漂,“一站式”解决方案的技术封闭性使得客户在平台上开发的应用无法移植到任何其它平台上。

2.模型的调整更容易

模型的调整不需要重新显式地进行生成、编译、重构、测试、部署等步骤,这样会大大降低周转时间。

3.可以在运行时对模型进行实时调整

由于模型是运行时可用,因此可以在不停止运行应用的情况下对模型进行调整。

4.模型的兼容性更强

原则上解析器会开发一个能够在不同平台上独立运行的解析器,这样只要有相同的解析器就能够在该平台上运行模型。而代码生成模式需要针对不同的平台生成对于的语言代码。

5.模型应用发布简单

在模型解析场景下,只要启动模型解析器并将开发的模型导入即可。这样,领域专家只需要关注于模型建立,模型创建成功后,点击“发布”按钮即可实现应用的发布。

6.升级便捷而且具有很好的系统可伸缩性

这个优点主要是针对云平台模式,因为云平台本身具有非常好的系统可伸缩性。

7.系统更安全

由于模型解析平台的相对封闭性,再加上云平台运行模式,普通人无法接触到文件系统及模型定义文件。这样就避免了模型被破坏的风险。

8.更灵活

解析器比代码生成器更简单也需要更少的代码来实现相同的功能,因此也更容易进行功能扩展。

9.能够实现运行时Debug

在应用运行时可以提供针对模型级的调试跟踪。

结论

在对上述两种低代码技术进行分析后,我们发现两种技术各有春秋,换句话说“没有最好的,只有最合适的”。那么,企业用户如何选择适合自己低代码平台呢?这可能取决于企业规模、企业管理水平、企业信息化建设阶段、开发应用业务领域、企业IT战略及企业内部IT团队的技术技能等要素。鉴于国内低代码平台技术的成熟度与国外知名企业还有一定的差距,因此,建议企业在选择低代码平台时要综合考虑更多的要素并与自身特点、技术需求进行匹配,这样才能够选出更适合自己的低代码平台,毕竟这与企业购买一款应用软件完全不同。关于如何选择低代码平台的建议,这里暂时卖个关子,我将会在另一篇文章中详细介绍。

相关新闻

联系我们
联系我们
公众号
公众号
在线咨询
分享本页
返回顶部