对于低代码工具来说,如果能在业务需求上提供更强的能力支持,那么必须要有足够强的模型提炼能力和更细颗粒度的配置元素。这往往取决于产品研发团队的项目经验和积累。因为如果没有系统开发的实践经验,在业务需求上是很难凭空想象的。
那么面向企业级应用的低代码平台除了具备典型低代码平台的基本能力外,还应该具备以下6个关键能力:
01面向业务的软件设计模式
有些低代码平台采用 “ 以人的活动为中心 ” 的软件设计模式,这类平台关注前端页面展示及人机交互,对于追求用户体验的客户来说具有一定的吸引力。但是对于像核心业务系统这样的复杂应用,这种设计模式就显得有些力不从心,因为这类应用除了要处理人工决策流外,还要处理大量的商流、资金流、物流、数据流等,其中会包括很多复杂的业务规则和计算。
开发这类应用系统需要面向业务设计模式的低代码技术平台,例如:模型驱动架构(ModelDriven Architecture-MDA)、领域驱动设计(Domain Driven Design-DDD)。
02能够处理复杂业务流程的流程引擎技术
与我们在OA系统中的以人工决策处理的审批流不同,业务流程相对来说要复杂的多。
业务流程管理需要能够处理复杂的业务活动形式外,还需要能够响应来自其它系统或流程发出的各种信号;除了能够处理人工任务外,更需要处理自动化任务;业务流程更关注的是自动完成复杂的业务规则及数据计算,而不是仅完成表单数据的传递。
03能够定义复杂业务规则的规则引擎技术
企业级应用系统中要处理的业务规则非常多、业务规则所关联的业务对象很多、业务规则应用的应用场景也各不相同,同时这些业务要素也经常处于变化之中,这样印证了一句俗语 “ 惟一不变的是变化 ”。在开发这类应用时最初的解决方案是通过硬代码的方式来实现这些业务规则,这种解决方案的不足之处是代码复杂、开发周期长,同时也无法很好地解决业务规则变化的问题。由于是紧耦合模式,对于一个地方的修改都可能会给其它正常功能模块带来无法预知的影响,正所谓 “ 牵一发而动全身 ”。
为了解决变化的需求,人们首先采用了参数配置的模式来解决(我们常用的ERP系统通常都有大量的后台配置页面,有些后台配置页面甚至会比前端业务处理页面还要多,例如:SAP/R3、Oracle/EBS等)。但这种解决方案不是以业务人员容易理解的语言和形式来进行规则配置,也无法满足细颗粒度灵活配置业务规则的需求。
为了更好地解决上述问题,一种新的技术便应运而生:规则引擎技术。规则引擎技术将业务规则、业务对象等要素从主处理流程代码剥离,通过一个独立的管理系统对这些要素进行统一管理、可视化业务规则建模(甚至允许业务人员参与规则的定义和修改)和规则的高效执行,最终对外提供统一的服务接口。利用规则引擎技术不但能够很好地解决规则可配置化的需求,同时还大大地降低了应用系统代码的复杂性,使得应用系统的鲁棒性得以极大地提升。
因此企业级应用的低代码平台应该拥有一个好的规则引擎。一个合格的规则引擎应该能够实现:对业务对象的有效管理、可视化配置业务规则、支持多种业务规则模式、高效的计算规则执行器、集成流程引擎、规则服务化等关键要素。
04能够定义复杂业务对象及数据模型的技术
企业级应用所要处理的业务对象模式都比较复杂,普通的页面展示模型及基于关系数据库的关系模型无法很好地描述这些复杂的业务对象,这也是人们认为传统的基于前端页面交互式的低代码开发平台无法用于开发复杂应用的主要原因。因此,企业级应用的低代码平台应该具备很强的定义和处理复杂业务对象模型的能力。
典型的复杂业务对象包括:
- SDT( Structured DataType)对象:一种结构化、集合类的复杂数据类型对象,常用于描述复杂的业务对象,例如JSON等;
- Transaction对象:一种基于关系模式的高级抽象与扩展层对象,作用与传统的数据库关系对象类似;
- DataProvider对象:基于SDT数据类型的实例化数据对象,常用于复杂的数据转换及数据传递管道;
- 业务流程图:可执行的业务流程的可视化展现;
- Query对象:可以从数据源返回一组数据集,通过可视化模式定义复杂的数据处理逻辑;
- Procedure对象:能够处理任何业务逻辑的处理单元;
- API对象:可以将第三方API转换成内部使用的普通业务对象等。
05能够实现系统整合能力与数据整合能力等
我们知道企业级应用需要与许多第三方系统进行大量的交互,开发人员在开发企业级应用时便需要针对这些第三方系统开发大量的接口模块来实现。有过开发接口程序经历的技术人员都知道接口开发工作既繁琐又容易出错,这也使得接口开发工作占据了整个软件开发工作相当大的比重。
为了降低接口开发的难度和工作量,同时又能够保证接口开发质量,企业级低代码平台应该能够针对第三方系统所常用的不同技术和架构提供有效的接口整合解决方案,并能够将接口程序的底层代码进行封装,让开发人员像调用本地对象那样调用相关接口。同时又能够将本地业务组件方便地封装成标准协议接口服务,以便于第三方系统的调用。
06能够支持多种部署模式
随着基于Docker容器技术的虚拟化技术的成熟,越来越多的企业开始拥抱Docker技术,企业级低代码平台应该能够支持基于Docker技术的虚拟化部署模式;在支持 “ 云 ” 部署方面,应该能够支持公有云、混合云及私有云的部署模式。考虑到应用整合需求及数据安全性,企业一般都不会选择将其企业级应用部署到到云端,因此,支持本地化部署将是企业级应用的首选。
飞速低代码平台能够支持私有化部署、公有化部署、混合部署,满足各类定制化需求。
根据低代码平台的软件生成的两大技术(源代码生成技术、模型解析技术)的分析,源代码生成技术能够使得所生成的软件应用脱离开发运行平台进行独立部署,这使得软件系统部署灵活性更高、更容易与企业自身的IT基础架构相兼容,同时也避免受低代码云平台技术架构能力不足的限制。
能够满足上述需求的低代码平台能够让专业开发者更关注于业务本身,而平台将提供其它技术保障,这样才能够使得开发团队在较低的投入(包括:人力成本、资金成本、时间成本等)下开发出能够满足企业级应用要求的应用系统或平台,并通过后期的运维保障机制使得软件的生命周期更长,建设投资回报率更高。