选自《证券基金行业信息技术应用创新前沿》第一期
信创适配低代码开发框架在管理系统高效建设应用及研究
文|俞枫 黄韦 任志浩 蒋强祖 凌宏健 张铭明 秦立刚 陈雨忱
国泰君安证券股份有限公司
俞枫 yufeng@gtjas.com
黄韦 hw@gtjas.com
任志浩 renzhihao@gtjas.com
蒋强祖 jiangqiangzu012364@gtjas.com
凌宏健 linghongjian@gtjas.com
张铭明 zhangmingming@gtjas.com
秦立刚 qinligang@gtjas.com
陈雨忱 chenyuchen@gtjas.com
摘要
我国IT行业的产品、生态、标准大多都使用国外公司的技术,因此许多的底层技术、信息安全存在着被“卡脖子”的风险,信创(信息技术应用创新)产业在此背景下进入了高速发展的时代。管理类系统作为企业内部重要信息的载体,迫切需要应用信创产品进一步保障系统的自主可控及数据的安全可靠。然而传统管理类系统开发模式存在技术栈分散,难以形成规模效应;开发人员技术水平参差不齐,人员流动大,交接及维护成本高;垂直化系统建设导致重复造轮子,软件资产利用率低等问题。面对需求变化快、业务持续创新的管理类系统建设现状,本文提出了一套信创适配的低代码开发框架,赋能管理类系统实现信创产品高效适配与业务需求快速迭代的有机融合,实现电子公文、人力资源等管理类系统建设,促进业务增长并保障业务连续性,进一步提升公司数字化管理水平,为实现公司重大战略目标提供强有力的支撑。
该框架适配全栈式的信创环境,基于React+ SpringCloud架构,支持“一云多芯”混合云快速部署,以“React适配器”形成统一json解析,以WebFlux 响应式架构的非阻塞模式构建高效异步网关满足服务的高吞吐需求,以配置化ETL实现数据处理,通过SaaS服务满足租户可视化、配置化开发,提供流程、会话、权限、监控等基础组件,帮助租户快速搭建一个完整的管理系统。
关键词:信创、开发框架、低代码、DevOps
概述
由于信创产品与传统的国外软硬件产品存在差异,在构建信创系统的时候都需要考虑兼容性问题,需要对所使用的服务器、操作系统、数据库、存储,甚至是浏览器都进行适配和兼容性测试,工作量巨大,且不同的系统存在着重复性劳动的问题。
为减少管理类信息系统信创适配的实施难度,提升信创改造效率,高效实现业务快速、无感切换至全栈式信创产品,本框架在适配信创技术栈的基础上,通过对自主研发的低代码开发框架进行信创适配构建,实现了对开发、部署、日志监控、运维分析等软件开发全生命周期的覆盖,大大降低了信创适配的技术门槛,实现了业务流程的可视化编程,各模块实现灵活组装,已高效支持公司管理类信息系统的信创适配工作。
目标
信创适配的低代码开发框架结合证券行业管理类系统复杂、技术栈不一的特点,以自主研发为核心,遵循“低代码”思想,将管理系统用配置化的方式实现,旨在为开发团队提供一套快速、高效、稳定、规范的开发框架,构造出前后端分离,分布式部署,动态扩展的应用系统,以适应当前快速迭代的开发任务,提升系统的规模化、流水线式的生产能力。
前端主要基于React,动态加载系统定义的功能模块,将各个子系统集成,形成一个统一的管理平台。后端主要采用Spring Cloud开发模式,用配置化的方式快速构造一个微服务,微服务的数量、类型都可扩展,通过注册中心实现路由和负载均衡。同时支持可视化的设计、发布业务流程,并提供流程运维、事务提醒等功能。框架的使用者能使用框架提供的大量基础组件,无需重复开发。让开发人员能够聚焦业务开发,打磨出更好的产品。
本框架通过提供快速搭建服务的能力、提供大量可调用的基础功能、提供快速设计发布流程和配套流程管理工具,来支持管理系统的敏捷开发、快速迭代、快速部署,并减少系统产生bug的机会,提高产品的质量。用DevOps的思想,使系统从构建到发布更加快捷、可靠,最终按时交付软件。
配置化、可视化
开发框架的主要目标是用尽可能多的技术封装,使系统开发者能够减少编程代码量,通过可视化、配置化的方式来拼装想要实现的功能,无需考虑底层的多线程模型、系统的并发性、系统运维等复杂的工作,仅仅考虑业务逻辑的开发即可。配置化、可视化程序开发使开发人员可以不用编写或只需编写很少的程序代码,就能完成应用程序的设计,这样就能极大地提高设计人员的工作效率。同时带来程序开发的标准化,用更短的开发周期、更少的开发人员完成更高质量的开发任务。
本开发框架配置化、可视化的编程方式具体包括但不局限于:
1) 微服务的接口通过配置即可对外发布;
2) 系统的权限、角色、黑白名单可配置;
3) 流程涉及的节点、路径、文种,待办提醒等都由配置实现;
4) 表单的内容可通过拖拉拽的形式绘制,所见即所得;
5)所有的微服务都统一监控,通过图表的形式展示运行情况
SaaS服务接入
SaaS给服务接入方和供应方提供了交付软件应用最低成本、最高效的模式,它的成本比传统的授权模式更节约。没有硬件和软件需求,也没有升级费用。框架的接入方无需采购服务器,无需关心程序的部署、系统的运维和数据保存、迁移,即插即用,方便快捷。
框架的接入方通过租户的形式,对接SaaS服务的相关接口,或者可视化的绘制表单,配置权限、角色等,最终发布服务。租户之间互相隔离,互不干扰,在开发框架支持的范围内,灵活的组装并构建服务。
符合信创要求
开发框架为开发者提供了一套完全符合信创要求的运行环境,就像在接入系统与底层运行环境之间架起了一座桥梁,让每一个接入系统都能够符合信创建设的要求。
图2-1:框架环境示图
开发框架的代码完全自研,同理使用开发框架开发的系统也是完全自主可控的,从而减少对厂商的依赖,能够实现快速响应。
产品实现
架构设计
图3-1:低代码开发框架图
基于以上框架逻辑架构图,自主研发的低代码开发框架以React+SpringCloud微服务架构,全栈式适配信创产品,通过技术封装,可视化、配置化,减少前后端代码开发,并提供权限、会话、文件、事务、消息、ETL、SaaS流程等基础组件,涵盖开发、部署、监控、运维等一体化支持。前端提供30多种标准UI组件,并提供可视化开发工具;后端支持多种数据源,支持配置化快速实现业务服务及数据 ETL 转换。
框架主要包括前端开发框架、高效异步网关、通用业务微服务组件、后端数据库微服务、流程引擎和日志监控系统5大部分:
1、前端开发框架
自主研发基于React的渲染框架,开发人员通过编写平台无关、语言无关的配置化代码,隔离底层技术栈,提供了可视化配置界面,通过拖拽控件布局方式在线开发,降低开发人员技术要求。
图3-2:低代码开发框架前端框架图
实现方式如下所示:
使用json(JavaScipt Object Notation,JS对象简谱,轻量级的数据交换格式,完全独立于编程语言的文本格式来存储和表示数据)来描述控件。该框架提供的“React适配器”将json翻译为对应的控件并展示于界面中。因为控件对应的json对象属性固定,规范代码开发。
提供了可视化配置功能,通过拖拽控件自动生成对应json格式源码,可以实现在线开发、在线发布、多平台运行。
提供了sdk方式供高阶项目使用,方便灵活的将基础控件加入到复杂定制功能中,将自定义和一致的体验性相融合。
SDK包含了不限于文本输入、富文本、日期/时间选择、下拉/单选/多选列表、文件上传、表格展示、树形展示等30多种控件,并且为控件的验证、联动、数据服务端加载等提供支持,提供了表单、表格、控件等的事件触发。
2、高效异步网关
应用微服务化后,大量的微服务,需要一个高性能的网关作为统一入口,解耦客户端与内部服务。因此网关核心功能是路由转发,耗时操作逻辑都放在微服务上实现,这样可以让请求快速转发到后端服务上,同时网关还提供统一的熔断、限流、认证、日志监控等功能。
图3 -3:低代码开发框架网关框架图
网关基于注册中心服务发现功能,并通过编写的 Predicate(断言)和 Filter(过滤器)实现动态路由策略,同时集成集成Hystrix的断路器功能,支持请求限流、路径重写等功能。
通用的高效网关,无须所有项目、系统独自搭建,减少开发运维,让开发人员更加专注于业务微服务的实现。
3、通用业务微服务组件
抽离并发布了通用的微服务,并提供配套的配置文件,只需少量配置,甚至不需要编写任何代码快速构建发布应用服务。
会话服务组件
会话服务组件采用无状态的API认证模式,提供统一的登录登出,会话鉴权,认证数据缓存等功能,支持多终端登录控制功能(可分别控制PC端、安卓设备、IOS设备等)以及同终端类型会话互踢功能,通过搭配 API 网关来满足 SSOff (一次登出全部登出)特性的要求,所有请求都通过网关,从而有效地隐藏了微服务。
流程引擎服务组件
流程引擎提供涵盖流程生命周期各个阶段的管理工具,像角色管理、文号管理、字典管理、附件管理、意见管理等流程设计阶段的管理工具,以及流程实例运维、监控、事务提醒等流程运行阶段的管理工具,即插即用,减少流程开发者的重复劳动。
文件网关服务组件
提供了配置化的文件管理服务,将文件上传、下载等操作微服务化,提供统一的接口,文件网关支持多种文件存储通道,包括:本地存储,NAS共享存储,FTP等,可以灵活配置混合存储模式。
搜索服务组件
提供标准化的搜索服务组件,可以通过配置搜索数据源,设置搜索规则,可快速为前端提供统一的搜索接口服务。搜索服务是基于ElasticSearch的分布式搜索引擎,具备配置灵活、方便扩展、数据缓存、功能强大、简单易用、高效稳定等特点。
4、后端业务微服务组件
业务微服务组件基于分层服务技术架构实现,运用Spring Boot可扩展性强的特点,封装了一个通用的服务。通过配置接口编号和数据库对应的存储过程或者结构化查询语句,该微服务自动从配置文件或指定数据库将业务接口进行发布供外部调用,也可以通过自定义的业务代码实现复杂的业务逻辑。兼容支持数据源包括信创达梦数据库、Oracle、MS Sqlserver、MySql、Iq、ES、MongoDB等在内多种数据库,且一个服务中能同时配置多个数据源,在接口中进行灵活组装。由此,开发者仅需要关注自身业务逻辑的编码,大部分工作都可以通过配置来完成。
图3-4:低代码开发框架后端业务服务组件图
5、日志监控系统
无须开发人员介入,自带了监控系统。其中有包含调用链自动跟踪、日志自动收集、错误日志主动提醒等各种功能。当信息处理程序发现错误信息、节点存在大量请求但未返回响应、平均响应时间超过阈值,会通过邮件、App消息、短信、IP电话等方式向产生错误系统的负责人发送错误消息。
运维监控的主要界面如下图所示:
图3-5:低代码开发框架日志监控服务明细图
图3-6:低代码开发框架日志监控日志明细图
信创适配
在经过了二十多年的发展之后,市场上已经涌现出了一大批优秀的信创软硬件产品,有的甚至已经处于业界领先位置,像鲲鹏和海光的芯片,麒麟和统信的操作系统,东方通、金蝶、宝兰德的中间件等等。各个领域都有多种多样的选择,用于构建开发框架。基于稳定性、高并发性的要求,兼顾经济性的原则,优先匹配现有人员技术特点相近的产品,对成熟的信创软硬件产品进行兼容性测试,并通过性能测试工具对不同的信创产品组合进行I/O能力,运算能力等指标比对,选择一套最优的软硬件环境。
最终,开发框架整体架构全栈适配信创软硬件产品。实现了终端->防火墙->网络->服务器->操作系统->数据库->中间件->应用服务,部署及应用环境全基于信创产品。所以租户使用该开发框架开发的系统也天然符合信创建设的要求。
开发使用
1、前端界面开发
框架提供可视化的界面生成器,如下图所示左侧为控件集合,支持拖动到中间界面预览区,右侧对控件属性进行设置变更。
图3-7:前端界面设计器
2、业务微服务开发
通过配置接口编号和数据库对应的存储过程或者语句,该微服务自动将该数据服务进行发布供外部调用。
实现方式如下所示:
配置接口编号、数据库类型和数据库执行语句(sql或者存储过程),框架将解析数据库出入参数,并发布该服务供外部调用。当该服务接受外部调用时,自动注入系统变量(例如当前用户信息等),执行相应语句后,组装标准格式,返回请求结果。
图3-8:业务微服务设计器
3、流程服务开发
流程引擎组件提供在线流程设计器。
左侧区域为流程路径节点,通过拖动节点,并连接两个节点作为路径,规划流程流转顺序。
右侧为节点或者路径的属性配置。节点可以设置参与候选人、意见、操作、表单、附件、限时等。路径可以设置条件路径等。
图3-9:流程设计器
应用实例
截止目前,采用该管理类信息系统高效适配的创新解决方案,由低代码开发框架支撑电子公文、人力资源管理、行政服务等管理信息系统实施高效信创适配,结合支持国密及信创适配的自研浏览器在各系统中的应用,完成了各系统整体无缝、无感平移。框架的流程引擎服务支持22个管理系统的信创适配建设,发布了232类流程,已覆盖财富、机构、投行、合规风控等多个条线以及期货、资管等子公司。
电子公文系统
电子公文系统是企业公文流转、保管、归档的统一管理系统,是企业重要的数据资产。系统作为低代码开发框架流程SaaS服务的第一个租户,仅半年就完成了系统建设,现阶段通过框架配置了84个流程服务。通过服务的应用实现了从传统的每个流程单独开发到现在的可配置化快速上线。系统涉及的接口都通过配置来生成,前端表单通过可视化的方式绘制。大大缩短了系统的开发周期和开发成本,并实现了流程中每个环节的可记录、可追踪,更灵活地支持了不同流程的审核人员调整及流程环节的变更,形成了企业内部的高效协同。同时,正因框架全面支持了信创产品的应用,系统在2020年实现了信创的全面改造,有力支持我司在2020年信创建设评分证券行业排名第一,在时间紧、任务重的情况下通过该框架快速有效地实现了系统的无感切换,更好地实现了企业重要系统的安全、自主、可控,并为行业开展信创工作提供了示范作用。自上线以来,整体运行稳定、流畅,性能良好,既实用又先进,具有很强的推广、示范价值。
人力资源管理系统
人力资源管理系统以数字化方式管理公司员工信息,如人事管理、考勤管理、绩效管理、人力工作流等。2021年11月22日,人力资源系统实现上线单轨运行,根据公司信创工作整体要求,人力资源部基于公司低代码开发框架,对原人力系统进行信创适配及整体替换建设工作。实现了芯片、操作系统、数据库等产品的系统级替代,人力资源管理系统中人事管理、考勤管理、绩效考核等主要功能模块已完成信创环境下的重构,人力工作流也进行了全新改造,与全连接工作台无缝对接,人力工作流各主要流程在电脑端和移动端可同步审批。
人力资源管理系统前后端改造完全基于低代码开发框架,在仅投入两名开发人员的情况下,按时并高质量的完成了改造任务。通过对低代码开发框架的应用,开发人员专注于人力需求的开发,快速配置了上百个接口,并封装成两个微服务。工作流的改造都通过配置化、可视化的方式实现,基本无需写代码。人力系统实现了从纯外包方式向自主研发为主的转变,具有更高的可控性,并通过对会话、权限等组件的功能复用,大幅提升了系统开发效率,减少了开发运维成本。上线后系统整体运行稳定,用户体验良好,功能丰富。
效益
通过信创适配的低代码开发框架,既实现开发、部署、测试、监控等一体化功能,降低技术门槛,缩短开发周期,又降低系统建设的信创适配难度,提升管理系统信创建设效率。从开发周期角度出发,常规功能的开发周期从原本的5天减少为2天;开发一个流程,开发周期从几周缩短到几天。从开发成本角度出发,一方面通过提升开发效率减少了开发人员的人力成本,另一方面通过框架实现了功能的复用,减少了功能重复开发的系统开发成本。
该框架已获得3项软件著作权,并申请3项发明专利,荣获人民银行、证监会联办的“2020年度金融科技发展奖”三等奖。
结语
基于对信创前沿技术研究,信创适配的低代码开发框架解决了管理类系统需求变化快、业务持续创新及垂直式系统建设带来的高度依赖厂商、技术栈不一等难点,化解了系统建设中每个系统需逐个信创适配、适配需要专业人才、无法大规模化信创建设等难题,提升开发效率60%,具有通用性和高效性。通过低代码开发框架建设,支撑管理系统全栈式信创产品适配,为行业提供成功案例,具有借鉴意义。
本框架聚焦技术创新进而推动业务发展及企业数字化转型,深度应用信创产品,积极落实国家战略,实现了自主可控、可视化配置、灵活复用和快速构建的低代码开发框架。通过该框架践行了公司数字化经营理念,以客户为本,快速响应客户需求、创新业务模式,不断提升企业管理、运营效率,支持公司的创新与业务增长。结合证券行业管理系统发展特点,本框架为公司降本增效、数字化转型等提供了有力支撑,项目成果具有一定的创新性与通用性,可以推广到行业或其他集团性、政务性领域,具有良好的先锋示范作用。
声明:本文来自上交所技术服务,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。