实战 – 低代码平台在金融行业的创新研究及实践(低代码平台实现)
文 / 中国工商银行金融科技研究院前端领域研究员 杨丹
“十四五”时期,我国开启全面建设社会主义现代化国家新征程,数字技术成为新的发展引擎,数字经济浪潮势不可挡。为加快企业数字化转型速度及满足业务高速发展,赋能专业研发人员、运营人员及分行业务,减少低价值重复性的研发工作,更多聚焦和满足业务敏捷创新,低代码平台已成为众多企业在数字化转型升级中的重要手段。
围绕国家“十四五”战略规划,工商银行迅速布局数字化转型效能提升领域,开展低代码平台创新研究,积极探索低代码在金融领域的应用场景。随着工商银行IT架构转型的深入推进,云原生基础设施及微服务架构发展已趋于成熟,在此基础之上,工商银行积极探索低代码在数字化赋能方面的创新及实践。
低代码平台概述
低代码开发平台是一种可视化快速搭建软件应用的开发平台。通过拖拽、拼接等方式,在只编写少量代码或不写代码的情况下,将通用的资产组件快速组装为所需应用,从而实现快速交付和产品迭代,同时有助于解决应用系统过多带来的信息孤岛问题。
低代码平台的概念于2014年首次提出,在近几年的发展中,主要经历了三个阶段。一是低速发展期,这段时期内尚无成熟的产品,但是部分CRM(客户关系管理)、BPM(业务流程管理)、ERP(企业资源计划)厂商已经具备部分低代码能力。二是快速成长期,伴随着DevOps、分布式、云原生等技术的不断发展,低代码平台的能力也日益成熟。三是高速井喷期,随着移动互联网的普及以及企业数字化转型的趋势下,软件开发需求爆炸式增长,生产力已跟不上企业日益增长的业务需求。
在此大背景下,低代码开发平台的企业级市场快速增长,适用的场景越来越多。疫情期间,各大云厂商利用低代码技术支持机构及个人在短时间内搭建了2000多个防疫应用,充分体现了低代码技术的开发效率。随着低代码技术的不断成熟,主流低代码平台已经可以满足OA、内部管理、移动APP等众多信息系统的研发需求,支撑各行各业轻应用数字化转型的需要。
从技术路径上分析,低代码有表单驱动和模型驱动两种路径。表单驱动模式与传统的BPM软件类似,通过流程串联表单,比较适合轻量级应用的打造,如OA审批、客户管理等。模型驱动面向数据对象,对业务实体进行建模,灵活性较高,能够服务于企业的复杂场景开发需求,适合大中型企业根据核心业务进行个性化定制。从运行模式划分,业界主流的低代码平台可划分为基于配置运行以及生成代码运行两类。基于配置文件依托于低代码平台引擎进行解析运行,低代码生成物无法进行二次开发和扩展,开发能力受到平台可视化资产及组件的严重制约;生成代码,即可视化搭建结果通过解析并转换为可读性源码工程,开发人员可充分了解代码运行机制,并在源码上进行二次开发及扩展。
工商银行低代码平台的创新研究及实践
工商银行2012年就进行了可视化开发模式的探索,并在开发平台中集成了部分可视化开发工具,以简化繁重的研发工作。随着工商银行分布式技术体系的不断发展,前后端分离研发模式、新一代企业级基础开发平台、云平台、微服务体系走向成熟,为充分复用优良的技术资产的架构沉淀,同时满足金融业务安全及性能的较高要求,工商银行于2020年底启动业界低代码平台研究,并于2021年建成了基于数据模型驱动、依托代码运行模式的低代码平台。
基于上述背景,工商银行形成了融合现有研发体系、打造全链路可视化开发的建设思路。一是纳管存量技术资产,继承分布式技术体系,构建多层次细粒度可复用的企业数字化资产;二是建设云上可视化开发IDE,以数据模型驱动为核心,面向整个研发过程,实现全流程可视化开发的能力;三是完善代码扩展能力,让低代码平台的产出应用不再受制于平台本身的能力;四是打通DevOps构建交付流程,支撑应用全生命周期管理。充分整合现有研发支撑体系能力,复用存量资产,实现更高效的企业级应用开发。平台整体架构建立于行内新一代前后端分离开发体系之上,引入可视化技术,承接现有服务体系,基于数据模型驱动技术,快速实现应用开发,并整合行内研发支撑体系,实现应用的快速构建及交付。如图1所示。
图1 低代码平台总体架构
1.构建多层次细粒度可复用企业数字化资产
低代码平台的快速搭建应用能力依托于丰富的数字化资产。工商银行始终走在金融科技创新的先列,已建成数量众多的企业级应用,积累了宝贵的研发资产。通过规范化、标准化的资产接入方式,将已有资产纳入低代码平台,能够为“积木式”搭建提供有效物料,实现已有资产的复用。
资产接入主要划分为组件、模板及外部接口。通过提供资产扩展脚手架,在其中添加组件、区块的结构化定义,实现可视化组件纳入。基于原子化组件在平台内进行编排搭建的页面、流程及应用可导出为模板,供后续开发复用。通过平台内置的接口中心,可以导入外部接口实现能力复用。如图2所示。
图2 资产中心
存量技术资产纳入低代码开发平台后,实现了应用开发资产互通互联,可以有效盘活存量资产;同时角色划分更为清晰,对于技术能力较强的专业开发人员,可以聚焦于平台基础组件开发,通过不断持续交付新的组件,实现平台整体能力提升,对于业务流程熟悉的开发人员,低代码能有效屏蔽底层技术细节,让开发人员聚焦于业务实现。如图3所示。
图3 低代码开发模式
2.以数据模型驱动为核心,建设全流程可视化开发能力
数据是金融行业的关键生产要素。在技术选型上,我行低代码平台以数据模型驱动为核心,围绕业务数据处理流转等场景,根据开发过程中涉及的表结构设计、前端页面开发、业务逻辑及业务流程开发等环节分别对标建设了数据模型可视化开发、页面可视化编排、逻辑可视化编排、流程可视化编排,实现了全流程可视化开发能力。
数据模型可视化开发提供表格化的数据模型设计能力,通过数据模型驱动引擎识别元数据和自定义字段,自动生成建表脚本,并同步生成表单页面及持久层交互接口。其中,元数据基于业务标准、技术规范设计,能够动态满足客户需求变化,通过数据模型驱动动态建模,实现对业务数据的快速处理功能。如图4所示。
图4 数据模型驱动
页面可视化编排指的是通过多种交互行为,比如拖拽组件、设计布局等,形成一个完整的前端页面,降低了前端页面的开发门槛。编排后的页面和流程通常以Schema的形式保存。Schema是一种数据结构规范,常用的有JSON Schema和XML Schema,通过Schema可以实现可视化页面或流程与数据之间的双向转换。
逻辑可视化编排将传统编程语言提取为可视化的逻辑图元,提供可视化创建变量、公式、规则的能力,通过开发人员的拖拽组合行为,将业务逻辑可视化地表达为逻辑节点与线条,以图形化形式直观地表达业务逻辑,屏蔽技术实现细节。
流程可视化编排遵循业界BPMN2.0标准,建设流程环节定义、流程环节调度与控制等核心模块,对业务流程进行可视化定义与编排,从而快速实现业务流、审批流等常见流程类场景。
3.完善代码扩展机制,实现灵活业务逻辑拓展
由于低代码开发依赖于可复用资产的完善程度,无法完全取代代码开发的灵活性和安全性。例如针对涉账类、涉密类或某业务有高度个性化需求等场景,仍需开发人员手动编码以保障业务需求灵活实现,故低代码平台采用了高低代码相结合的开发模式。针对业务逻辑相对简单的轻应用场景,在页面样式编辑、前后端逻辑编排中,内置可编辑代码块,实现函数级别的代码扩展;针对复杂业务逻辑或面向存量业务系统开发时,采用导出源码二次开发的模式,将低代码的快速搭建能力与传统编码能力相结合,以覆盖更多业务场景。
4.打通构建部署环节,支撑应用全生命周期管理
金融企业有着比一般企业更严格的稳定性及安全性要求,通过适配行内实施多年已经过稳定性验证的DevOps流程,做到充分适配我行全生命周期管理,在开发阶段,基于全流程的可视化开发能力,实现在线协作开发,并对接Git进行项目管理;在测试阶段,提供功能在线发布与测试,通过静态类型校验进行异常提示以及在线问题定位;在交付阶段,对接流水线实现持续集成与持续交付,通过将引擎以及中间件等资源打包入镜像,结合前端资源与结构化配置文件,自动化构建标准Docker镜像进行交付,从而实现低代码平台对应用的全生命周期管理。
低代码平台运用成效
低代码开发平台底层基于云架构,支持容器化部署方式,有着友好的可视化界面、一键部署的运行环境以及高度可扩展性,能够降低开发门槛,打通信息孤岛,赋能IT人员,加速数字技术发展。目前工商银行低代码平台已在内管类、工具类等多个系统中进行了落地试点,在围绕业务数据的增删改查场景、业务逻辑较为固化的场景中实现业务的快速上线。此外,工商银行也在继续挖掘领域级解决方案,通过划分业务领域,在领域内不断完善低代码资产,抽取通用化业务场景,满足更多业务线的需求。工商银行低代码平台有以下4个显著特点。
一是降低应用构建门槛:全云化线上开发模式,图形可视化操作,学习成本低,开发人员能够直接构建并运行应用。
二是加速业务敏捷创新:拖拽式页面构建、灵活可视的逻辑编排、流程编排,积木式搭建应用可提升开发效率,缩短业务创新周期。
三是快速复用已有资产:提供全面开放的生态与丰富的集成能力,有效地沉淀业务与技术资产,可在多个项目间快速复用和灵活扩展。
四是提供标准化开发能力:标准组件化开发方式,屏蔽各种技术规范,降低技术栈迭代成本,破解前端框架无法前向兼容带来的升级难题,将开发人员从重复的编码与测试中解放,去专注业务逻辑。
总结与展望
基于低代码平台标准化开发能力,能够降低应用构建成本,助力企业统一技术路线与规范,保障应用安全与稳定,加速金融行业的数字化转型速度。随着产品技术水平的不断提升,低代码开发未来仍有巨大的提升空间。工商银行将全面总结试点经验,在以下3个方面提升平台建设,精进低代码平台在金融业务领域的应用。一是建设领域级技术资产:依照业务领域划分,结合各领域特点,抽象提取公共组件、页面、流程等,建设领域级低代码应用模板。二是提升移动端场景覆盖:建设H5及小程序的可视化开发能力,覆盖更多业务领域。三是探索SaaS场景的建设模式:在金融业、生态云等基础平台上,建设低代码开发及一键发布上线能力,赋能业务开发人员,助力传统金融行业加速实现数字化转型。
(栏目编辑:韩维蜜)