发明内容
发明目的:本发明提供一种基于低代码和可视化拖拽的电力业务可拓展开发框架,旨在通过电力行业自身的特点,构建可以复用的碎片应用,由此用户可以挑选碎片应用,或通过框架建立碎片应用,快速开发得到电力应用软件。
技术方案:本发明一种基于低代码和可视化拖拽的电力业务可拓展开发框架,包括:基础组件物料单元、业务碎片编辑单元和应用编辑单元,其中,所述基础组件物料单元,用于提供电力数据接口和格式组件单元;所述业务碎片编辑单元,包括管理界面模块和业务应用碎片编辑模块,所述管理界面模块,用于提供数据源接口重写单元、业务主题重写单元和属性重写单元,所述业务应用碎片编辑模块,用于提供参数定义单元、组件关联关系单元和低代码单元;所述应用编辑单元,用于将业务应用碎片集成为的电力业务应用软件;其中,数据源接口重写单元对电力数据接口进行重写,使得接收的数据符合低代码的电力数据接口格式;响应用户的操作指令,从格式组件单元中将格式组件拖拽至指定位置,并与相应的电力数据接口建立关联关系;通过业务主题重写单元,选择相应的主题样式;属性重写单元,提供相应的电力数据模型,与相应的电力数据接口对接,用于建立数据模型;参数定义单元提供各数据模型之间的入参和出参,用于建立逻辑模型;组件关联关系单元对格式组件和电力数据模型之间的数据进行对接,用于建立展示模型;低代码单元对数据模型、逻辑模型和展示模型进行封装,得到碎片应用,用于复用;应用编辑单元将所述碎片应用集成为的电力业务应用软件。
具体的,低代码单元按照碎片应用的数据模型、逻辑模型和展示模型的数据类型、数据关系和结果数据的数据类型,输出相应的说明文档;所述数据关系包括计算和预测。
具体的,还包括业务抽象单元,用于接收用户输入的计划业务流程和计划业务目标,使用语义识别算法模型,提取其中的目标数据类型和数据关系,查询现有的碎片应用的说明文档,确认目标数据类型与结果数据的数据类型的一致性,以及数据关系的一致性,若存在满足一致性的碎片应用则提供作为备选。
具体的,所述属性重写单元,提供如下电力数据模型:电费计算模型、用电量时间分布模型、用电量位置分布模型和用电量预测模型;各个电力数据模型的输入数据类型和输出数据类型设置有预定类型;其中,电力数据模型的输入数据类型和输出数据类型,在用户的操作指令下进行变更。
具体的,所述属性重写单元,响应用户的操作指令,建立额外的电力数据模型,算法模型、输入数据类型和输出数据类型,由用户自定义。
具体的,所述参数定义单元提供的各数据模型之间的入参和出参,建立入参对应的数据和出参对应的数据之间的调用关系。
具体的,所述组件关联关系单元,响应用户的操作指令,将电力数据模型的输出数据和格式组件上展示数据的位置进行关联。
具体的,所述业务碎片编辑单元,还包括碎片应用有效性检测模块,用于完成数据模型、逻辑模型和展示模型之后,进行碎片应用的数据检测、逻辑检测和展示检测;数据检测包括:将数据输入至相应的电力数据模型,得到输出数据,查询预设关联的行政区域的公开数据信息,将输出数据与公开数据信息中相同类型的数据进行比对,若偏差在标准偏差之内,则检测通过,否则发出提醒;将数据输入至相应的电力数据模型,得到输出数据,计算输入数据的方差与输出数据的方差之间的差值,若差值在标准范围之内,则检测通过,否则发出提醒;逻辑检测包括:进行电力数据模型之间的数据调用有效性进行检测,检测是否存在中间数据未被利用的情形,若不存在,则检测通过,否则发出提醒;所述中间数据,指电力数据模型之间进行传递的数据;分别查询电力数据模型的输入数据和输出数据的数据类型对应的数据处理等级,若输出数据的数据处理等级高于输入数据的数据处理等级,则检测通过,否则发出提醒;所述数据处理等级根据数据经过的处理次数确定;展示检测包括:检测是存在中间数据或结果数据未被利用的情形,若不存在,则检测通过,否则发出提醒;所述结果数据,指电力数据模型的最终输出数据。
具体的,所述应用编辑单元,用于将碎片应用之间的建立数据关联;所述应用编辑单元,还包括应用软件有效性检测模块,用于检测碎片应用之间的数据传递的有效性。
具体的,所述业务碎片编辑单元,还包括指令集,用于提供碎片应用的指令控制方式。
有益效果:与现有技术相比,本发明具有如下显著优点:构建可以复用的碎片应用,快速开发得到电力应用软件,提高开发效率,降低人力成本。
实施方式
下面结合附图对本发明的技术方案作进一步说明。
为了解决传统电力应用软件开发效率低和人力成本高的问题,本发明提供了一种基于低代码和可视化拖拽的电力业务可拓展开发框架。
低代码平台提供简单易用的可视化工作平台,可以基于无代码或者少量代码快速搭建应用系统。电力行业虽然涉及的基础数据庞杂,但无论需求方的目标数据类型(最终需要的结果数据类型),其数据模型所需要的输入数据,也即基础数据是类似的,使用的算法模型或者数据模型也是类似的,因此,电力行业与低代码开发平台是相契合的,封装后的碎片应用可以进行复用,即使不能复用封装完成的碎片应用,也可以调取低代码开发平台提供的数据模型进行软件的开发。
本发明提供的基于低代码和可视化拖拽的电力业务可拓展开发框架,包括:基础组件物料单元、业务碎片编辑单元和应用编辑单元,其中,所述基础组件物料单元,用于提供电力数据接口和格式组件单元;所述业务碎片编辑单元,包括管理界面模块和业务应用碎片编辑模块,所述管理界面模块,用于提供数据源接口重写单元、业务主题重写单元和属性重写单元,所述业务应用碎片编辑模块,用于提供参数定义单元、组件关联关系单元和低代码单元;所述应用编辑单元,用于将业务应用碎片集成为的电力业务应用软件;其中,响应用户的操作指令,数据源接口重写单元对电力数据接口进行重写,使得接收的数据符合低代码的电力数据接口格式;响应用户的操作指令,从格式组件单元中将格式组件拖拽至指定位置,并与相应的电力数据接口建立关联关系;通过业务主题重写单元,选择相应的主题样式;属性重写单元,提供相应的电力数据模型,与相应的电力数据接口对接,用于建立数据模型;参数定义单元提供各数据模型之间的入参和出参,用于建立逻辑模型;组件关联关系单元对格式组件和电力数据模型之间的数据进行对接,用于建立展示模型;低代码单元对数据模型、逻辑模型和展示模型进行封装,得到碎片应用,用于复用;响应用户的操作指令,应用编辑单元将所述碎片应用集成为的电力业务应用软件。
在具体实施中,低代码框架,基于JSON格式封装的常用的软件代码,形成一套机制。基于此框架开发业务应用碎片,可大大缩短需求交付周期。主要包含解析器(电力数据模型)、说明文档两个部分,定义业务应用碎片布局、主题、渲染及业务应用碎片之间通信等功能的一组约定。主要包含页面解析器、规范文档两个部分。
在具体实施中,电力数据接口连接系统外部数据的一套配置信息和数据集,如Mysql的jdbc连接字符串、Excel文档地址等,数据集,可分为SQL数据库数据集、Excel文本数据集、API接口数据集等,数据源接口重写单元对电力数据接口进行重写,将从数据集中抽取的数据的结构和格式,符合低代码和相应的即将输入的电力数据模型的要求,才可以被低代码解析引擎解析引用,包含数据源属性名称、数据源参数名称、参数类型、动作类型、数据源编号、数据源子字段的定义、额外配置、前端配置;格式组件单元,提供图形类(折线图、玫瑰图、饼图等)、表格类(静态表格、动态表格)、过滤类(下拉框、按钮、输入框)、通用类(文本、图片、视频等)等格式组件,格式组件的用处主要是在于通过格式组件进行处理后的数据的展示。
在具体实施中,业务碎片编辑单元,基于低代码规范为用户提供可视化辅助开发的一套工具,所见即所得。
在具体实施中,主题部分包括简单样式到布局,业务主题重写单元对一个业务应用碎片应用可以根据需要布局成移动端或PC端的样式,也可以按照明亮、传统等风格主题的方式进行布局。
在具体实施中,属性部分包括业务应用碎片除数据源和主题外的其他可变参数,属性重写单元提供如计算算法类型等电力数据摸,如一个用电量预测应用,默认采用ARIMA,可以将该参数作为公共变量开放为一个MT属性,由外部环境或业务应用碎片应用动态输入,改成Holt-Winters。
本发明实施例中,低代码单元按照碎片应用的数据模型、逻辑模型和展示模型的数据类型、数据关系和结果数据的数据类型,输出相应的说明文档;所述数据关系包括计算和预测。
本发明实施例中,业务抽象单元,用于接收用户输入的计划业务流程和计划业务目标,使用语义识别算法模型,提取其中的目标数据类型和数据关系,查询现有的碎片应用的说明文档,确认目标数据类型(计划业务目标的目标数据的类型)与结果数据的数据类型的一致性,以及数据关系的一致性,若存在满足上述两个一致性的碎片应用则提供作为备选。
本发明实施例中,所述属性重写单元,提供如下电力数据模型:电费计算模型、用电量时间分布模型、用电量位置分布模型和用电量预测模型;各个电力数据模型的输入数据类型和输出数据类型设置有预定类型;其中,电力数据模型的输入数据类型和输出数据类型,在用户的操作指令下进行变更。
本发明实施例中,所述属性重写单元,响应用户的操作指令,建立额外的电力数据模型,算法模型、输入数据类型和输出数据类型,由用户自定义。
本发明实施例中,所述参数定义单元提供的各数据模型之间的入参和出参,建立入参对应的数据和出参对应的数据之间的调用关系。
本发明实施例中,所述组件关联关系单元,响应用户的操作指令,将电力数据模型的输出数据和格式组件上展示数据的位置进行关联。
在具体实施中,数据类型按照数据的意义进行划分,例如用电负载、用电时间、用电户数、电费等。
在具体实施中,电力数据模型:电费计算模型、用电量时间分布模型、用电量位置分布模型可以属于计算的数据关系,也即输入数据和输出数据是单纯的数学计算关系,而用电量预测模型可以属于预测的数据关系,输出数据基于一定的概率得到,或者输出相应的数据概率。属性重写单元提供例如求和模型、方差模型和神经网络算法等算法或数据模型,用户可以对模型进行调整,包括对输入数据类型和输出数据类型的调整和定义。
在具体实施中,参数定义单元提供:入参,包括参数名称、关联对象、关联对象类型、关联对象额外配置、参数描述;属性,参数名、参数默认值、参数类型、参数描述;出参,包含参数名称、参数类型、出参的名称、动作类型、额外的配置、前端配置。低代码单元,包含前端展示的基础页面结构及样式说明,可以根据需要渲染成不同平台的应用。组件关联关系单元,包含来源组件、去向组件、来源组件触发对象、来源组件触发事件名称、传递参数、参数类型、事件类型。
在具体实施中,业务应用碎片编辑模块,还提供静态数据部分,碎片应用所依赖数据的一个缓存、数据模型定义描述参数。
在具体实施中,业务应用碎片构建流程大致可以分为七个步骤。
第一步业务需求导入,是设计业务对象的基础,理清业务需求及数据需求。
第二步需求模型梳理,分为三块内容,可视化展示需求梳理,相同的一份业务逻辑模型可以根据不同的需求展示为不同的样式,后期可以用不同的主题、皮肤来构建;逻辑模型设计,对业务逻辑部分做逻辑筛选,其中的梳理逻辑是否已经存在,能否复用已有的业务应用碎片模型;数据源抽取,对涉及到的数据部分分析数据工程链路,数据从哪里过来,需要进行那些处理过程。
第三步对象化抽象,对于符合抽象逻辑的业务模型,抽象为基础模型,可以使用语义识别等算法模型,该步骤导出的是用文本表示的业务模型。
第四步低代码模型的落地,根据第三步设计的业务模型,进入设计平台批量制作相应的数据模型、逻辑模型、展示模型,并封装成一个应用,给出相应的使用文档。
第五步打标签,该步骤依据之前输出的业务模型定义给将该应用赋予一定的业务标签,降低该业务应用的使用门槛,确定好标签后发布进入业务应用碎片市场,将做好的业务应用碎片发布到业务应用碎片市场中待复用。
第六步拼装业务应用,业务人员根据需要(不同的岗位职责),开发相应的页面。
第七步打包、发布、部署和运营,系统将依据不同的运行平台将低代码编译为具体的目标应用,由发布部署脚手架部署到目标端,交由运维运营人员使用。
在具体实施中,在开发框架中,复杂应用由多个业务应用碎片通过关联、聚合、依赖、组合等操作逐层构建。因此按业务应用碎片用途来分可以大致分为:数据源类业务应用碎片、消息接收业务应用碎片、展示业务应用碎片等。
本发明实施例中,所述业务碎片编辑单元,还包括碎片应用有效性检测模块,用于完成数据模型、逻辑模型和展示模型之后,进行碎片应用的数据检测、逻辑检测和展示检测;数据检测包括:将数据输入至相应的电力数据模型,得到输出数据,查询预设关联的行政区域的公开数据信息,将输出数据与公开数据信息中相同类型的数据进行比对,若偏差在标准偏差之内,则检测通过,否则发出提醒;将数据输入至相应的电力数据模型,得到输出数据,计算输入数据的方差与输出数据的方差之间的差值,若差值在标准范围之内,则检测通过,否则发出提醒;逻辑检测包括:进行电力数据模型之间的数据调用有效性进行检测,检测是否存在中间数据未被利用的情形,若不存在,则检测通过,否则发出提醒;所述中间数据,指电力数据模型之间进行传递的数据;分别查询电力数据模型的输入数据和输出数据的数据类型对应的数据处理等级,若输出数据的数据处理等级高于输入数据的数据处理等级,则检测通过,否则发出提醒;所述数据处理等级根据数据经过的处理次数确定;展示检测包括:检测是存在中间数据或结果数据未被利用的情形,若不存在,则检测通过,否则发出提醒;所述结果数据,指电力数据模型的最终输出数据。
本发明实施例中,所述应用编辑单元,用于将碎片应用之间的建立数据关联;所述应用编辑单元,还包括应用软件有效性检测模块,用于检测碎片应用之间的数据传递的有效性。
本发明实施例中,所述业务碎片编辑单元,还包括指令集,用于提供碎片应用的指令控制方式。
在具体实施中,数据模型是指电力数据模型,逻辑模型是指电力数据模型之间的数据传递方式模型,展示模型是指格式组件对于数据的展示方式模型。对于传统的应用软件快速开发系统而言,软件开发的稳定性是最值得关注的问题之一,而对于数据模型、逻辑模型和展示模型进行检测,基本可以涵盖碎片应用的全方面,可以确保应用的顺畅运行。
在具体实施中,查询预设关联的行政区域的公开数据信息,将输出数据与公开数据信息中相同类型的数据进行比对,一般而言,输入数据与公开数据的数据类型和数值相同或可以进行数值换算,例如在输入数据一定范围、时间和电费费率,输出数据是电费,相应的公开数据需要是相同或相似范围、时间和电费费率。方差是用于表征数据离散程度的参数,通过比较电力数据模型的输入数据的方差与输出数据的方差,在方差的差值在标准范围(可以根据实际应用场景进行设定)时,表明输入数据和输出数据在离散程度上保持了一致,进一步说明电力数据模型的计算过程没有过大的偏离数据本身的属性特征或者计算没有出现较大错误。
在具体实施中,通常而言,电力数据模型会对电力数据进行加工处理,因此电力数据模型的输入数据和输出数据的数据类型会发生变化,同时引入数据处理等级的概念,每经过一次数据处理,数据处理等级便会增加,例如,电费是通过用电量计算处理得到,用电量的数据处理等级高于电费。数据类型的数据处理等级可以预先定好,在进行检测时予以引用。由于电力数据在数据处理上有着较为明确的分类,比如原始数据、一次处理数据和二次处理数据等,因此通过引入数据处理等级可以较为快速的判断电力数据模型是否存在逻辑问题。
参阅图1至图6所示,本实施例中低代码应用封装框架1中,模块2基础组件物料,基础物料包括内容基础组件库、事件动作、响应动作、样式模型等,各类数据源,如实时数据源、接口数据源、数据库数据源、文件数据源等;模块3外部附属的插件,插件通过插件规范集成到业务平台上;模块4低代码碎片应用模型构建规范,规定业务应用碎片的构成及存储格式;模块5业务碎片应用模板编辑器(业务碎片编辑单元),制作业务碎片的工作台,将模块2、模块3多种物料聚合为应用碎片;模块6应用集成规范,应用内各种业务应用碎片集成的一套规约;模块7业务碎片应用库,使用模块5工具封装好的各个业务碎片应用的合集;模块8应用集成规范(应用编辑单元),设计应用的编辑器,可以将多个业务应用碎片按照应用集成规范存储起来;模块9应用交互规范,包含应用间、应用内业务碎片间、业务碎片内组件间几个部分的交互事件规约;模块10应用库,存储做好的各个专业应用;模块11移动端渲染解释器,将应用库在存储的业务应用格式文件,使用Vue框架动态渲染为移动端浏览器应用;模块12H5渲染解释器,将应用库在存储的业务应用格式文件,使用Vue框架动态渲染为桌面浏览器应用;模块13桌面渲染解释器,将应用库在存储的业务应用格式文件,使用Electron框架动态渲染为桌面应用。
在具体实施中,进一步地,模块4-1应用碎片封装模型,描述业务应用碎片的存储结构;模块4-2数据源,数据源定义的基础结构,包括数据库数据源、接口数据源、文件数据源、实时数据源;模块4-3低代码,业务碎片展示部分的结构;模块4-4静态数据,低代码中的初始化数据,供预览业务应用碎片时使用;模块4-5组件关联关系,描述业务碎片内组件间的关联关系,包括数据关联,弹窗等;模块4-6属性,业务碎片可以实例化的参数部分,在应用编辑器中拖入时注入,如样式布局类型参数;模块4-7出参,业务应用碎片参与编排的输出参数,在业务碎片编辑器中可以将数据源、用户点击事件、输入参数等信息作为出参;模块4-8入参,业务应用碎片参与编排的输入参数。
在具体实施中,进一步地,模块6-1应用封装模型,描述应用的基础构成模块;模块6-2联动关系,业务应用内业务碎片间的关联关系,包括数据联动、跳转等;模块6-3应用布局,业务应用内各业务碎片的布局信息,包括位置、大小、布局类型等信息;模块6-4应用碎片模板,业务应用中引用的业务碎片;模块6-5应用碎片实例,对业务应用碎片模板重写的部分,如数据、样式布局等;模块6-6编排布局,描述编排页面背景风格及各个编排项属性位置信息,其中编排项可以是业务碎片也可以是业务应用;模块6-7出参,如用户输入参数、页面当前展示的图表数据等;模块6-8入参,页面支持输入的参数,如页面样式变量、数据接口参数变量等;模块6-9:主题样式,描述应用的背景图、页面大小、布局结构等配置信息。
在具体实施中,进一步地,模块8-1展示交互部分,应用展示部分的可视化设计及渲染;模块8-2控制部分,应用的状态管理服务,为可视化应用提供数据、模型框架、计算支撑;模块8-3运行模式,针对应用不同的运行环境系统框架提供三种模式,受控态、编辑态、运行态,应用编辑器中有编辑态、运行态、受控态,不同解释器中有运行态和受控态,三种不同状态对应8-10交互指令中的指令集也不同;模块8-4受控态,拥有业务碎片管理类指令、布局样式管理类指令,远控类的指令;模块8-5编辑态,拥有业务碎片管理类指令、布局样式管理类指令类的指令;模块8-6运行态,拥有数据交互、通信一类的指令集;模块8-7数据,集成业务应用数据部分的存储交互内容;模块8-8数据服务,集成SG-ETL对上层应用提供实时数据源、接口数据源、数据库数据源、文件数据源的支撑;模块8-9缓存服务,基于Redis等缓存库,提供组件模块、业务应用碎片模板、主题、权限、布局等资源的缓存服务;模块8-10交互指令,大致可以分为六类指令,业务应用碎片管理类指令,用于增加、删除、替换、升级业务碎片相关命令;业务应用碎片间、业务应用碎片与应用外部通信指令,用于完成一套图6流程的指令;业务应用碎片内单元模块通信指令,用于业务碎片内组件间的数据信号传递;布局主题样式类指令,用于主题/样式/布局切换;远控指令,用于弹窗、跳转、状态报告、升级、数据刷新等;数据交互通信指令,用于单业务碎片数据刷新、应用级数据刷新、数据提交、实时数据推送、数据计算处理。
本实例中数据的流转过程如图5所示。
S101:首先准备数据格式文档、连接基础信息等内容,为数据迁移与计算做好准备。
S102:使用SG-ETL工具配置数据处理与迁移地流程、处理算子,将多源异构数据聚合到应用内置数据库中,根据业务应用的需求配置调度周期。
S103:本系统中针对不同的数据提供不同的上数通道,有三类:实时类、结构化类、接口类。
S104:根据需求对数据集进行建模,针对结构化数据集,使用SQL、手动或者图形化方式用结构化数据自带的建模能力构建数据集模型,针对接口及实时数据用Xpath、JsonPath等工具将非结构化数据转为二维表结构的数据集再使用结构化数据集建模方式进行处理。
S105:根据已构建的数据集,将不同字段按业务情况标识为不同的专业类别,其中大类包括维度、指标,按数据类型分为字符串、时间、数值,按专业将维度、指标归为具体的业务含义,如组织机构、设备类型等。
S106:对准备好的数据集做进一步的加工处理,如无可直接跳转S106,计算加工算法包括时序预测、聚类等。
S107:对数据授权处理,根据实际需要按角色低数据集进行授权,对源端表进行行列授权。
S108:根据业务需求,选择不同数据展示载体,比如柱状图等,配置相应的计算信息。
S109:重复上述S101-S108步骤,直至做好一个业务碎片,将该碎片保存入库,设置碎片的基本信息、分级分类信息、版本信息、对外交互出入参等描述信息。
S110:在应用编排界面上引入设计的业务碎片。
S111:根据需要修改数据源等实例化参数,对该业务碎片进行实例化设置。
S112:重复上述S110-S111步骤,直至业务应用布局排布完成,开始编排业务应用碎片间、业务应用碎片与其他应用间(跳转、传参)的关联关系。
S113:打包发布。
事件通信消息包的格式分为应用碎片内和应用碎片间两种,应用碎片间主要是依靠全局级事件管理器来协调。每个业务应用碎片都有一个事件源及接收端,事件源来源与出参部分的定义,可以将事件变化通过全局页面的事件管理器通知到对端。事件管理器会维护一个注册表,存储源端和目标的动作引用关联关系。
本实例中应用通信模型如图6所示。
本实例中应用运行中客户端服务端交互如图7所示。
S201:客户端发送建立连接请求,传递运行状态、认证信息、应用编号等信息。
S202:服务端在收到客户端发送请求后,执行鉴权、资源初始化等操作。
S203:服务端向客户端发送初始化应用结构信息,通知建立成功可以开始交互。
S204:客户端执行应用初始化,完成初始交互界面的渲染。根据应用配置及用户指令与服务端交互,如应用碎片的删减、应用碎片间关联关系的构建及触发响应,数据重组等。
S205:客户端根据服务端的命令渲染应用交互界面。
S206:服务端跟踪客户端应用数据的变化,更新内部状态。
S207:当客户端执行应用关闭操作时,会向服务端发送断开连接命令。
S208:服务端在收到客户端断开连接命令并校验认证信息后,执行资源释放操作。
如上流程,客户端发送到服务端的报文消息:来源应用编号、来源客户端用户信息、来源客户端IP、当前消息报文客户端的编号、来源客户端软硬件环境、状态(编辑态、运行态、发布态)、是否是应用碎片内部消息、来源应用碎片编号、来源应用碎片的版本号、应用碎片实例编号、操作类型、操作参数。
如上流程,服务端发到客户端的消息报文:服务端编号、响应耗时、来源客户端IP、对应处理的消息报ID、服务端处理的程序信息、是否是应用碎片内部消息、受影响的切片应用碎片实例编号、受影响应用碎片响应动作的类型、响应的数据、额外消息。