睿治

智能数据治理平台

睿治作为国内功能最全的数据治理产品之一,入选IDC企业数据治理实施部署指南。同时,在IDC发布的《中国数据治理市场份额,2022》报告中,蝉联数据治理解决方案市场份额第一。

基于业务中台技术的低代码开发平台

时间:2022-09-27来源:二次元男神浏览数:160

一、前言

在企业数字化建设中,由于建设缺乏整体规划导致多应用访问入口,各个系统之间的流程、数据未打通,存在重复建设的问题。当市场、客户需求变化带来的商业模式、业务需求和管理流程不断变化都要求信息系统适配企业,通过服务、管理的差异化进行市场竞争,由此引发的个性化需求标准化软件满足的难度比较大,且项目周期、成本不容易控制,带来的运维团队固定成本开支比较高,给企业带来比较大的经营成本压力所以传统烟囱式企业应用架构、数据孤岛、厚重的应用架构和集成关系,导致个性化的需求开发难度大、周期长、成本高、资源复用性差、开发效率低无法快速应对市场的变化。急需一套上手快、效率高、易维护的通用型开发、定制框架,用以提升业务应用的快速开发,解决软件开发中大量的重复工作,从而达到降本增效的目的,让业务人员更加关注于业务逻辑。

二、研究背景

企业传统的 IT 系统因其先天固有的强调标准化、封闭化、模块化的特点,正显著制约着企业的数字化建设战略:一是传统烟囱式企业应用架构,数据相互隔离形成孤岛,难以打通产生业务价值;面对市场变化响应速度慢,维护成本非常高。二是厚重的应用架构和集成关系,导致个性化的需求开发难度大、周期长、费用高。三是缺乏创新,技术陈旧,流程固化,无法快速应对市场的变化。低代码开发是一种通过可视化进行应用程序开发的方法,使具有不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程序。

低代码开发平台使非技术开发人员可不必编写代码,而是将传统 IT 架构抽象化来支持专业开发人员。业务部门和 IT 部门的开发人员可以共同创建、迭代和发布应用程序,花费的时间则比传统方式更少。低代码开发平台可以加速和简化从小型部门到大型复杂任务的应用程序开发,实现开发一次即可跨平台部署,但这只是它能力的一部分。

低代码开发平台还加快并简化了应用程序、云端、本地数据库以及记录系统的集成。因此,低代码开发平台可以实现企业数字化对应用需求分析、界面设计、开发、交付和管理,并且使之具备快速、敏捷以及连续的特性。企业生存的关键取决于产品与业务能力,低代码平台为了让企业更轻松的应对由业务部门发起的大量需求,基于不同的场景和企业人力资源配置,使 IT 人员和业务人员都能以更高效的方式开发软件。

三、低代码开发平台的研究

通过标准化、共享式、组件化、可复用性的技术资源的建立,打造可视化的开发环境,拖拽式的开发方式,简单、易用的低代码开发平台,能够降低开发难度,提升开发效率。当前信息系统开发行业,大多数软件公司以 VS、Eclipse 等工具的传统开发中,所采用的开发语言、开发规范、开发标准和架构设计的不同,致使油田应用软件集成整合难度大,功能复用难度高,开发效率低下,资源浪费严重。国内某油田基于总部梦想云 PaaS 架构,建立统一开放的技术平台,支持系统开发、集成、运行、服务的统一管理,以“平台化”取代“竖井式”,形成“积木式”系统开发模式,支撑高效、云化、可持续应用建设思路,通过统一开发平台、统一运行平台、微服务支撑框架开发、软件流水线设计开发、企业应用商店、平台云门户等功能建设,实现业务系统开发过程的标准化、服务化、系统部署自动化,提高开发效率、项目管控能力,提升了企业整体的软件研发水平。

(一)微服务技术研究为保证通用业务功能实现,规划设计完成可共享、可复用、可定制、可重构的业务功能、图形、数据、算法、流程五类模块化服务,支撑后续开发应用场景的共建、共享,通过管理流程化及功能模块化,支撑业务深化改革及业务流程再造。微服务是业务中台重要的基础服务,将为各个业务应用提供原子化、可复用、可共享的基础支撑能力。

(二)低代码开发平台架构研究面向开发人员提供图形化的开发界面,利用拖拽组件和模型驱动完成功能设计。通过解析引擎(变量、数据集等)生成解析页面,将组件、样式、脚本资源等进行合并打包压缩,自动生成功能模块,发布到云平台上,完成应用展示。同时构建协同管理与开发环境,通过预制模板、服务定制、流程定制以及模块预览,打造可视化、组件拖拽式的低代码开发环境,实现开发共享、高效协同。同时建立项目管理、资源共享、可模块开发、组件定制以及复杂逻辑的代码编写能力,快速完成界面设计、开发、交付、发布和管理,打造协同开发环境。

依托于微服务的支撑能力。定制:在定制环境中,通过协同开发能力进行项目管理能力包括创建项目、组织项目成员、分配岗位及权限,面向开发人员进行拖拽式的模块开发定制(包括摆放布局、拖拽组件、属性交互设置,复杂逻辑则可进行低码注入),针对复合功能的扩展提供复合组件的扩展能力解析:通过开发保存生成赛鲁班定制文件,通过解析引擎(变量、数据集等)生成解析页面。发布:通过提供的发布功能对环境变量及配置进行正式环境的替换,通过对组件、样式、脚本资源等进行合并打包压缩等,模块信息进行注册,发布到云平台上。运行:依托于微服务在 PC 端等进行展示呈现。

1. 技术架构。构建协同管理与开发环境,通过预制模板、服务定制、流程定制以及模块预览,打造可视化、组件拖拽式的低代码开发环境,实现开发共享、高效协同。底层数据层支持非关系数据和关系数据库,通过“云+ 微服务技术”构建了 10 余个服务中心,提供服务支撑,设计时包括协同开发、模块设计包括图表、流程、数据服务等定制,依赖的技术框架有 html5、dhtmlx 和 exjts 等,运行时态主要是模块的展示运行,有报表、曲线、图形及流程等模块的呈现。

2. 功能架构。通过项目管理、资源共享、可模块开发、组件定制以及复杂逻辑的代码编写能力,快速完成界面设计、开发、交付、发布和管理,打造协同开发环境。

(三)低代码开发工具功能研究

1. 组织机构管理:通过组织机构、岗位、角色、用户以及功能权限,实现项目之间的协同作业、协作共享、资源复用的管控。基于岗位业务需求,将应用资源、用户岗位、权限合理配置,形成岗位业务菜单,整合应用资源构建组件,建立岗位化定制工作台,实现日常业务、办公工作的自动推送,统一办理,形成 “事找人”的业务协同工作模式,提升办公效率。岗位化定制工作台,以协同办公、高效工作为出发点,为用户提供待办、已办、通知、公告等办公信息以及统计图、统计表等业务关心主题,构建适合各业务岗位的专属工作台。将可复用的脚本、样式、图片等资源进行集中管理,形成资源中心,实现资源共享,建立资源的规范化、统一化,提高资源的复用率,满足项目开发和应用的需要。

2. 项目管理:面向项目研发,建立项目管理、人员配置、角色划分等功能,实现开发过程中“开发者与项目”的协调管控。

3. 模块开发:通过预制模板、服务定制、流程定制以及模块预览,打造可视化、组件拖拽式的低代码开发环境,实现开发共享、高效协同。

4. 组件服务:组件服务为各类开发应用提供功能性支撑,代表低代码开发平台的开发能力。在开发过程中,将具有相似功能、相似界面的模块,进行共同功能的封装,形成业务组件,使之成为可共享和复用的资源。经过不断的迭代升级,建立和完善组件库,通过组件的复用功能可大大缩短开发周期,有效提升开发效率。在技术架构采用微服务架构:前端采用 Html5 + DhtmlxGrid 进行网格化呈现,后台基于 Node.js + Qt 进行报表模板解析与矩阵计算,前后端通过 Rest 接口通信。

5. 报表组件:该组件依赖于报表微服务,在可视化环境,通过拖拽的形式完成网格、分组、嵌套、交叉、分栏、分片、多级序号、条件分页、树形展示、填报表等多种类型的报表定制。查询报表定制流程整体可分为数据服务编写、选择报表模板、数据绑定、表单设计、事件逻辑定义、运行展示六部分。以带有条件区的分组报表为例,讲解报表定制的流程。报表定制过程中所使用的数据表和字段等信息都来自于数据访问服务。首先,需要编写并测试数据访问服务,测试无误后开始报表的定制工作。报表定制过程中所使用的数据表和字段等信息都来自于数据访问服务。

6. 曲线组件:通过灵活的动态交互效果加上个性化的图表属性配置,满足不同类型的数据阅读需要,支持用户自定义图板复用与共享。曲线定制流程整体可分为数据服务编写、曲线模板选择、数据集绑定、曲线样式设置、事件逻辑定义、运行展示六部分。以带有条件区的曲线为例,讲解曲线定制的流程。曲线定制过程中所使用的数据表和字段等信息都来自于数据访问服务。首先,需要编写并测试数据访问服务,测试无误后开始曲线的定制工作。具有丰富的可视化图表,包含柱形图、折线图、散点图、雷达图等几十种图表样式;拖拽设计自由布局:根据业务分析场景确定好分析布局排版,通过自由拖拽实现布局方式的多样化;自适应 PC/ 移动端:设计的分析模板,在 PC 端、移动端和大屏等多种设备上实现自适应展示;数据钻取联动分析:数据之间可以进行联动、钻取、跳转等 OLAP 分析操作,实现可视化主题分析的快速搭建。

图 1 采集组件示意图

7. 采集组件:可灵活调整界面布局、录入顺序、校验规则、自定义快捷键、自定义换行字段等。单表采集:最基础、应用最广的采集需求,数据来源于单表归于单表,见图 1。联合表采集:是将多个表进行联合录入,多用于一条数据来源于多张表,并存储于多表。适用于一对多的数据采集场景,通常是指有主外键关联的多表采集,通过主外键关系,实现主从表的数据联动和数据保存;添加数据:先保存主表数据,再保存从表数据。删除数据:先删除从表数据,再删除主表数据;修改数据:先修改主表数据,再修改从表数据。适用于一对多的数据采集场景,通常是指有主外键关联的多表采集,通过主外键关系,实现主从表的数据联动和数据保存。垂直表多用于设备数据、指标等业务逻辑数据项进行转置的应用场景,通过中间虚拟表来构建行列转置的垂直表数据,在采集组件中绑定虚拟表即可完成对数据采集的录入。将业务中应用的表格直接通过填报方式进行展示,不改变用户习惯的情况下完成数据的采集。支持表单的复制粘贴、样式调整等类 Excel 的操作。

8.项目发布:低代码开发平台具备镜像构建与代码提交的能力,通过镜像构建功能,生成 docker 镜像,推送到镜像仓库。通过代码提交功能,将开发的模块代码提交到代码仓库。借助于 devops 流水线,完成对模块的镜像构建。最后利用云平台的部署能力、调度能力、编排能力实现项目运行,见图 2。

图 2 项目发布流程图

9. 平台扩展能力:主要体现在二次开发、复合组件定制。二次开发:通过代码注入来解决复杂的业务逻辑处理,实现功能的灵活扩展。复合组件定制:根据应用需求,通过组件构建出复合组件,同时该组件也可以参与到其他组件的构建过程中,通过组件的迭代,形成可复用的组件资源,提升平台的开发能力。主要特点:通过工具化、可视化的方式,实现复合组件开发,开发技术门槛低。通过基础组件的迭代组合,建立“高级”复合组件,形成可复用的资源,提升业务模块开发效率。屏蔽开发过程技术细节,形成规范的代码模式,减少开发人员对开发技术的依赖,可以更多的专注业务需求和逻辑处理。

四、结语

产品化工具,由于自身市场定位不同,所具备的优势各有千秋,将它们应用到最适合的地方,发挥最大的作用才是硬道理。通过低代码开发平台,建立各类可视化分析应用功能,实现复杂式报表分析应用,并集成于分析平台中,最终实现了业务各环节生产、运行数据的统一管理、集成应用,为将来的大数据分析奠定了基础。

(部分内容来源网络,如有侵权请联系删除)
立即申请数据分析/数据治理产品免费试用 我要试用
customer

在线咨询