CN115373696B - 软件资源生成的低代码配置方法、***、设备及存储介质 - Google Patents

软件资源生成的低代码配置方法、***、设备及存储介质 Download PDF

Info

Publication number
CN115373696B
CN115373696B CN202211314947.0A CN202211314947A CN115373696B CN 115373696 B CN115373696 B CN 115373696B CN 202211314947 A CN202211314947 A CN 202211314947A CN 115373696 B CN115373696 B CN 115373696B
Authority
CN
China
Prior art keywords
low
code program
software
deployment
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211314947.0A
Other languages
English (en)
Other versions
CN115373696A (zh
Inventor
贺光忠
艾润
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yudongyuan Beijing Information Technology Co ltd
Original Assignee
Yudongyuan Beijing Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yudongyuan Beijing Information Technology Co ltd filed Critical Yudongyuan Beijing Information Technology Co ltd
Priority to CN202211314947.0A priority Critical patent/CN115373696B/zh
Publication of CN115373696A publication Critical patent/CN115373696A/zh
Application granted granted Critical
Publication of CN115373696B publication Critical patent/CN115373696B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供的软件资源生成的低代码配置方法、***、设备及存储介质,包括:基于待部署软件的部署需求信息,生成多个低代码程序实体、以及多个低代码程序实体对应的配置数据;对配置数据进行解析,并基于解析得到的图数据构建待部署软件的部署策略图;部署策略图用于表征多个低代码程序实体之间的依赖关系;基于多个低代码程序实体之间的依赖关系,确定每个低代码程序实体的执行顺序,并按照执行顺序,依次执行每个低代码程序实体;当全部低代码程序实体均被成功执行,确定完成部署资源的配置任务。本发明不用编写大量运行脚本,而是以低代码方式对功能组件编排,逐个部署或生成应用软件所需的基础设施资源,操作简单,部署效率高。

Description

软件资源生成的低代码配置方法、***、设备及存储介质
技术领域
本发明涉及计算机技术领域,具体而言,涉及软件资源生成的低代码配置方法、***、设备及存储介质。
背景技术
软件从开发到发布的流程通常会包含部署阶段,软件部署是将代码自动部署到各个运行环境,使其能够尽快地被用户所使用。
现有技术中,在软件部署过程中,为应用软件准备基础软件环境或重新配置基础软件环境和云基础资源时,大部份采用安装脚本、交互式命令行或管理界面的方式,按照某种规则或规范进行操作,设置或修改,完成基础资源的创建、修改、卸载等动作,这种部署脚本编写比较复杂,灵活性较差,导致部署效率较低。
发明内容
本发明的目的之一在于提供一种软件资源生成的低代码配置方法、***、设备及存储介质,用以简化软件部署流程,提高软件部署效率和灵活性。
第一方面,本发明提供一种软件资源生成的低代码配置方法,所述方法包括:基于待部署软件的部署需求信息,生成多个低代码程序实体、以及多个所述低代码程序实体对应的配置数据;其中,所述低代码程序实体被执行时用于生成所述待部署软件所需的部署资源;对多个所述低代码程序实体对应的配置数据进行解析,并基于解析得到的图数据构建所述待部署软件的部署策略图;所述部署策略图用于表征多个所述低代码程序实体之间的依赖关系;生成每个所述低代码程序实体对应的调度任务,并基于多个所述低代码程序实体之间的依赖关系,确定每个所述调度任务的执行顺序;按照所述执行顺序,依次执行每个所述调度任务,直到全部所述调度任务均被成功执行,确定所述待部署软件完成部署。
第二方面,本发明提供一种软件资源生成的低代码配置***,包括:一种软件资源生成的低代码配置***,包括:前端模块、解析模块、图构建模块和图调度模块;所述前端模块,用于基于待部署软件的部署需求信息,生成多个低代码程序实体、以及多个所述低代码程序实体对应的配置数据;其中,所述低代码程序实体被执行时用于生成所述待部署软件所需的部署资源;所述解析模块,用于对多个所述低代码程序实体对应的配置数据进行解析,所述图构建模块,用于并基于解析得到的图数据构建所述待部署软件的部署策略图;所述部署策略图用于表征多个所述低代码程序实体之间的依赖关系;图调度模块,用于基于多个所述低代码程序实体之间的依赖关系,确定每个所述低代码程序实体的执行顺序,并按照所述执行顺序,依次执行每个所述低代码程序实体;当全部所述低代码程序实体均被成功执行,确定完成所述部署资源的配置任务。
第三方面,本发明实施例提供一种软件资源生成的低代码配置设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现第一方面所述的软件资源生成的低代码配置方法。
第四方面,本发明提供一种存储介质,存储有可执行指令,用于被处理器执行时,实现第一方面所述的软件资源生成的低代码配置方法。
本发明提供一种软件资源生成的低代码配置方法、***、设备及存储介质,方法包括:基于待部署软件的部署需求信息,得到多个低代码程序实体以及配置数据,由于低代码程序实体可以生成部署资源,因此先基于配置数据构建用于表征这些低代码程序实体之间的依赖关系的部署策略图,然后基于部署策略图中表征的依赖关系确定低代码程序实体的执行顺序,从而完成软件部署资源的配置任务,上述整个过程不需要编写大量的运行脚本,而是通过低代码方式对一些功能组件进行编排,最终绘制出应用软件所需的基础设施资源生成和配置的部署策略图,然后根据部署策略图,逐个部署或生成应用软件的相关的基础设施资源,操作简单,提高了软件部署的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的软件资源生成的低代码配置设备的结构框图;
图2为本发明实施例提供的软件资源生成的低代码配置方法的示意性流程图;
图3为本发明实施例提供的步骤S201的示意性流程图;
图4为本申请实施例提供的步骤S202的示意性流程图;
图5为本发明实施例提供的一种部署策略图的示例;
图6为本发明实施例提供的一种场景示意图;
图7为本发明实施例提供的步骤S204的示意性流程图;
图8为本发明实施例提供的云组件模块的工作原理图;
图9为本发明实施例提供的软件资源生成的低代码配置***的功能模块图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
软件从开发到发布的流程通常会包含部署阶段,软件部署是将代码自动部署到各个运行环境,使其能够尽快地被用户所使用,在软件部署阶段,所用到的基础资源,例如云主机、数据库,应用服务器,消息中间件的安装脚本、交互式命令行的操作方式,存在维护复杂,人工参与过多,基础资源准备的过程基本不可复用。
例如,云主机的生成、Web应用服务器的提供、数据库环境的部署,以及应用数据初始化等过程,传统方式均是通过人员编写脚本,人与机器进行交互的方式进行,效率低下,容易出错。
另一方面,运维人员需要变形编写大量的脚本代码;同时应用软件在开发、测试、生产环境发布的各个环节中,都会涉及基础资源的部署、变更工作,例如:开发环境虚拟云主机内存的数量、CPU的数量、磁盘容量、网络带宽等硬件参数调整;测试环境操作***环境参数、应用数据库配置参数主更等,生产环境中消息中间件、Web应用服务器的配置参数调整等,目前的方式***运维人员或专业软件产品服务工程师在特定的软硬件管理工具下进行参数修改及变更操作,自动化程度不高(效率低下),操作过程通常不可复用。
进一步,目前的软件部署过程中,如果应用软件基础软件资源部署规则或配置发生变化,通常需要修改相关脚本代码或直接对基础资源参数进行修改,并手工应用生效,如果相关人员离职的话,后续人员操作修改或生成应用软件的基础资源时,后续人员操作修改或变更应用软件的基础资源时,没有基础资源修改操作流程的历史记录,误操作的风险很大。
为了解决上述技术问题,本发明实施例提供了一种软件资源生成的低代码配置方法,主要是将应用软件基础资源的生成和配置功能定义为一个一个的组件,通过低代码方式对这些组件进行编排,最终绘制出应用软件所需的基础设施资源生成和配置的部署策略图,该部署策略图是一种有向无环图,因此可以基于有向无环图(Directed AcyclicGraph,简称DAG)算法的解析引擎和调度引擎根据部署策略图,逐个部署或生成应用软件的相关的基础设施资源,直到完成应用软件的部署,整个过程中不需要编写大量的运行脚本,操作简单,提高了软件部署的效率。
下面先介绍用于执行本发明实施例提供的软件资源生成的低代码配置方法的软件资源生成的低代码配置设备。
请参见图1,图1为本发明实施例提供的软件资源生成的低代码配置设备的结构框图。如图1所示,软件资源生成的低代码配置设备100包括存储器101、处理器102和通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
存储器101可用于存储软件程序及模块,如本发明实施例提供的软件资源生成的低代码配置***300的指令/模块,可以软件或固件(firmware)的形式存储于存储器101中或固化在软件资源生成的低代码配置设备100的操作***(operating system,OS)中,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。
其中,存储器101可以是但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以理解,图1所示的结构仅为示意,软件资源生成的低代码配置设备100还可以包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1所示的各组件可以采用硬件、软件或其组合实现。
下面以图1所示的软件资源生成的低代码配置设备100为执行主体,对本发明实施例提供的软件资源生成的低代码配置方法进行详细介绍。
请参见图2,图2为本发明实施例提供的软件资源生成的低代码配置方法的示意性流程图,该方法可以包括如下步骤:
S201:基于待部署软件的部署需求信息,生成多个低代码程序实体、以及多个低代码程序实体对应的配置数据。
其中,低代码程序实体被执行时用于生成待部署软件所需的部署资源;
S202:对多个低代码程序实体对应的配置数据进行解析,并基于解析得到的图数据构建待部署软件的部署策略图。
其中,部署策略图用于表征多个低代码程序实体之间的依赖关系;
S203:基于多个低代码程序实体之间的依赖关系,确定每个低代码程序实体的执行顺序,并按照执行顺序,依次执行每个低代码程序实体;
S204:当全部低代码程序实体均被成功执行,确定完成部署资源的配置任务。
在上述部署方法中,首先基于部署需求信息,得到多个低代码程序实体以及配置数据,由于低代码程序实体可以生成部署资源,因此先基于配置数据构建用于表征这些低代码程序实体之间的依赖关系的部署策略图,然后基于部署策略图中表征的依赖关系确定低代码程序实体的执行顺序,从而完成软件部署资源的配置任务,上述整个过程不需要编写大量的运行脚本,而是通过低代码方式对一些功能组件进行编排,最终绘制出应用软件所需的基础设施资源生成和配置的部署策略图,然后根据部署策略图,逐个部署或生成应用软件的相关的基础设施资源,操作简单,提高了软件部署的效率。
下面对上述步骤S201至步骤S202进行详细介绍。
在步骤S201中、基于待部署软件的部署需求信息,生成多个低代码程序实体、以及多个低代码程序实体对应的配置数据。
本实施例中,待部署软件可以是通过低代码开发平台开发的任意至少一种软件,本发明实施例提供的低代码化的部署方法可以并行部署多个软件,提高了软件部署效率。
上述部署需求信息用于指示待部署软件所用到的基础资源,例如云主机,数据库,应用服务器,其中,云主机资源还可以包括CPU数量、内存数量、网络带宽服务器等信息、以及创建数据库服务器、web服务所需要的表信息、存储过程、导入默认表数据内容等信息、软件相关启动规则、主机地址信息等等。
在本实施例中,低代码程序实体是一种可被执行的程序模型,是实现基础软件环境或重新配置基础软件环境和云基础资源的功能的一种抽象,被执行时用于生成待部署软件所需的部署资源,也可以理解为程序组件。
作为一种可选的实施方式,每个低代码程序实体可以依据其能够实现的能够进行命名,例如,本实施例提供的低代码程序实体可以但不限于实现如下功能:生成应用软件所需要的主机资源、数据库服务、web服务、tcp服务、确定软件部署环境、测试主机是否符合应用软件的部署要求、对部署完毕的应用软件web服务进行验证等功能。
因此,本发明实施例给出了一种生成多个低代码程序实体、以及配置数据的实施方式,请参见图3,图3为本发明实施例提供的步骤S201的示意性流程图:
S201-1:获得多个未配置的低代码程序模型。
本实施例中,低代码程序模型指得是还未被用户进行配置的组件模型,用户可以在前端通过编辑操作实时生成多个低代码程序模型,也可以在预先生成的组件库中进行选择。
S201-2:接收针对每个所述低代码程序模型的属性配置操作,以使每个被配置后的所述低代码程序模型具有生成所述部署资源信息的功能,得到所述低代码程序实体。
S201-3:获得多个所述低代码程序实体之间的被配置的所述依赖关系,并基于所述依赖关系以及被配置后的所述低代码程序实体的属性信息,生成所述配置数据。
可以理解的是,在获得多个低代码程序实体之后,用户可以基于部署需求信息,为每个组件配置属性信息,每个被配置了属性信息的低代码程序实体则成为本发明实施例中的低代码程序实体,依赖关系即低代码程序实体之间的数据流走向关系或者不同部署资源的部署顺序关系,然后低代码程序实体之间的依赖关系,完成一个完整的工作流程,软件资源生成的低代码配置设备基于依赖关系以及被配置后的低代码程序实体的属性信息,生成配置数据。
在本申请实施例中,配置数据可以为Json格式或者XML格式的数据文件或者字符串,以Json格式为例,配置数据形如:
[{
"name": "start",
"nextnode": ["deploymode"]
"configfile”: ["./config.conf"]
}, {
"name": "deploymode",
"nextnode": ["singlenode"]
}, {
"name": "singlenode",
"cpu": 1,
"disk": 256G,
"memory": 4G,
"nextnode": ["end"]
}, {
"name": "end"
上述Json数据中包含一个start(开始)节点和一个end(结束)节点,中间连接了部署模式节点(deploymode)和单机节点(singlenode),单机节点包含单机的基础配置信息,nextnode字段可以理解为依赖关系字段,代表该节点要连接的下一个或者下多个节点,此字段为数组类型,此Json示例代表根据配置文件中的信息可以创建指定参数的云主机。
从上述示例中可以看出,“name”即为低代码程序实体的名称,以“alicloud”为例,可以看到其对应的属性信息为:“cpu”:1,“disk”:256,“mem”: 256,其中,“nextnode”表征与低代码程序实体有依赖关系的下一个低代码程序实体,软件资源生成的低代码配置设备生成上述配置数据之后,即可对该配置数据进行解析,构建待部署软件的部署策略图,即执行步骤S202。
在步骤S202中、对多个低代码程序实体对应的配置数据进行解析,并基于解析得到的图数据构建待部署软件的部署策略图。
本实施例中,部署策略图用于表征多个低代码程序实体之间的依赖关系。
可以理解的是,本实施例中的部署策略图是一种有向无环图,有向无环图是一个无有向循环的、有限的有向图,它由有限个顶点和有向边组成,每条有向边都是从一个顶点指向另一个顶点,有向无环图就是从一个图中的任何一点出发,不管走过多少个分叉路口,都不会回到之前的节点,本申请实施例正是利用有向无环图的这一特性,将应用软件基础资源的生成和配置功能定义为一个一个的组件,通过低代码方式对这些组件进行编排,最终绘制出待部署软件的部署策略图,最后根据部署策略图,逐个部署或生成应用软件的相关的基础设施资源,从而完成软件部署。
本发明实施例给出了一种构建部署策略图的实施方式,请参见图4,图4为本申请实施例提供的步骤S202的示意性流程图:
S202-1:对配置数据进行解析,获得每个低代码程序实体对应的目的低代码程序实体。
在本发明实施例中,对配置数据进行解析,可以得到图数据包括:每个低代码程序实体的配置信息、以及每个低代码程序实体的下一个低代码程序实体,即目的低代码程序实体。例如,继续以上述配置数据为例,其中“name”表征的是每个低代码程序实体的名称,“nextnode”则表征每个低代码程序实体对应的目的低代码程序实体,“cpu”、“disk”和“memory”则表征低代码程序实体的配置信息。
S202-2:建立每个低代码程序实体与低代码程序实体对应的目的低代码程序实体的有向连接关系,并基于全部有向连接关系,构建部署策略图。
本实施例中,从上述Json数据示例来看,对配置数据进行解析时,每个“name”对应的则为低代码程序实体,“nextnode”表征与低代码程序实体有依赖关系的下一个低代码程序实体,即为目标低代码程序实体,然后将低代码程序实体与该低代码程序实体对应的目的低代码程序实体进行连接,完成全部连接关系之后,即形成一个部署策略图。
为了方便理解,请参见图5,图5为本发明实施例提供的一种部署策略图的示例,其中,每个方框表示一个低代码程序实体,可以看成一个组件节点,低代码程序实体之间通过有向线连接。
部署策略图以开始节点为出发点,此节点只是标记为基础部署资源生成的开始,开始节点的目标组件节点为仓库事件,该组件节点指定的软件仓库中特定的应用软件包发布新版时,会被该组件节点侦测到,触发仓库事件,此组件节点主要读取应用软件部署相关初始化信息,以确定后续基础资源生成的结果。
应用部署规则:此组件节点主要功能为接收用户针对应用软件配置的部署规则及相关启动规则,在进行图数据解析的过程中,根据用户设置的参数进行计算,并结合当前低代码程序执行的上下文环境信息,确定最终的变量值;
单节点部署:此组件节点主要功能为接收用户的配置信息,将该信息传递给后续组件节点;
创建云主机:此组件节点根据单节点部署节点传递过来的配置信息,包括但不限于云主机提供商信息,云主机管理API,认证信息等内容,通过连接云主机的API服务,生成应用软件所需要的主机资源,配置主要内容包括云主机的CPU数量、内存数量、网络带宽服务器、操作***类型及版本等;
创建Web服务器:此组件节点根据初始化信息,创建特定类型的Web服务器,并将应用部署在该服务器上;
创建数据库:此组件节点则将对数据库进行部署和配置,配置内容包括创建数据库服务器、web服务所需要的表信息、存储过程、导入默认表数据内容等;
K8s部署:此组件节点主要功能为接收用户的配置信息,将该信息传递给后续服务节点;
创建多个云主机:此组件节点根据K8s部署节点传递过来的配置信息,包括云主机提供商信息,云主机管理API,认证信息等内容,通过连接云主机的API服务,生成应用软件集群部署所需要的多个主机资源,配置主要内容包括云主机的数量,每台云主机的CPU数量、内存数量、网络带宽服务器、操作***类型及版本等;
创建K8s集群:此组件节点接受用户的相关设置,以及指定K8s集群相关配置信息,创建K8s集群,并部署应用软件;
应用验证:此组件节点接受用户对应用软件验证要求相关的配置信息,通常是一个标准HTTP API接口,根据该接口的状态返回应用软件部署是否正常的信息。该节点执行时根据设置的参数,对部署完毕的应用软件Web服务进行验证,检查服务启动是否正常,核心功能是否正常等信息,具体看应用软件验证HTTP API的功能以及组件对HTTP API返回信息的解析。
结束,此组件节点仅通知解析执行引擎该低代码程序执行完毕,以便保留相关信息。
在实际场景中,本发明实施例提供的部署方法可以对多个待部署软件并行部署,因此,当存在多个待部署软件时,可以按照如下方式进行处理:
a1:当存在多条待部署软件对应的配置数据,生成配置数据队列,并创建多个线程;
a2:针对每条配置数据,若多条线程中不存在空闲线程,则控制配置数据处于等待状态,直到存在空闲线程后,利用空闲线程解析配置数据。
例如,以配置数据为Json数据为例,请参见图6,图6为本发明实施例提供的一种场景示意图,生成的配置数据队列按提交顺序进入线程池,解析引擎按调度规则寻找空闲线程,如果没有空闲线程,则阻塞至空闲线程出现,获取到空闲线程后,利用此线程解析Json数据或者XML数据,此时线程处于工作状态,其他Json数据解析不能使用此线程,等线程解析Json或者xml数据完毕后,会在内存中形成一个部署策略图,然后将得到的部署策略图,通过队列方式发送至图调度模块,至此一条Json数据或者xml数据解析完毕,线程由工作状态转化为空闲状态,其他阻塞的Json数据或者xml数据可以使用此空闲状态线程。
可以理解的是,在对配置数据进行解析的过程中,还可以基于DAG图的约束对配置数据进行检查,如发现错误,即中止解析,并输出数据修正的提示信息,直至整个建图任务结束。
得到部署策略图之后,即可按照部署策略图,执行各个低代码程序实体,完成待部署软件的部署,即执行步骤S203。
在步骤S203中、基于多个低代码程序实体之间的依赖关系,确定每个低代码程序实体的执行顺序,并按照执行顺序,依次执行每个低代码程序实体。
本实施例中,将每个低代码程序实体对应一个生成一个调度任务,部署策略图中的每条有向连接线可以确定每个调度任务执行的先后顺序,然后可以按照执行先后顺序去执行调度任务,有依赖关系的低代码程序实体需要等待执行,无依赖关系的低代码程序实体可以并发执行。
在步骤S204中、当全部低代码程序实体均被成功执行,确定完成部署资源的配置任务。
本实施例中,可以先找到开始节点,在内存中标记为调度开始,然后寻找开始节点的目的节点(即目标低代码程序实体),开启新的线程执行后续节点的调度任务,直到发现目的节点为结束节点时,则说明调度任务全部完成,并在内存中标记配置任务结束。
因此,本发明实施例给出了一种步骤S203的实施方式,请参见图7,图7为本发明实施例提供的步骤S203的示意性流程图:
S203-1:生成每个低代码程序实体的调度任务;
S203-2:将属性信息为开始的低代码程序实体所对应的目的低代码程序实体,作为待执行低代码程序实体;
S203-3:运行待执行低代码程序实体对应的调度任务;
S203-4:当待执行低代码程序实体执行完毕后,根据按照执行顺序,确定下一个待执行低代码程序实体,并返回运行待执行低代码程序实体对应的调度任务的步骤,直到下一个待执行低代码程序实体的属性信息为结束。
如果当前有多个待执行低代码程序实体,则开启多个线程同时执行,提高执行效率,等待每个待执行低代码程序实体均执行完毕后,会继续寻找后续待执行低代码程序实体,继续启动线程执行。
整个部署策略图执行过程中,如果有一个低代码程序实体出错,则停止执行后续低代码程序实体,并记录错误日志,供用户可通过查看执行日志了解详情。
在可选地实施方式中,如果组件执行需要申请云主机集群,则需要先去申请指定内存、CPU、硬盘等硬件信息的云主机集群,申请成功后在对应的云主机上部署用户配置的软件服务。因此,本发明实施例提供的部署方法还包括:
b1:若当前待执行任务对应的低代码程序实体的属性信息为云主机属性信息,则向云平台发送云主机资源申请请求,并基于申请到的云主机,执行当前待执行任务。
本实施例中,如果低代码程序实体的执行需要云主机,则需要调用云组件模块来执行该低代码程序实体的调度任务,该任务通过云平台服务商提供的API,在云平台***上申请指定数量的内存,CPU,硬盘等配置。云组件模块主要用来配置和管理云资源,例如网络,计算和数据资源,可以对阿里云、腾讯云等其他云构建基础架构进行版本化和重用,采用标准化开发接口,使得每个云厂商都可以定制自己的云组件模块,对于不同的云平台,需要不同的云组件模块,这样可以非常灵活的添加平台云组件模块云组件模块云组件模块云组件模块云组件模块。
本申请实施例提供的云组件模块的工作原理如图8所示,图8为本发明实施例提供的云组件模块的工作原理图。
云组件模块提供了4种可以供调用的接口,分别为创建接口,读取接口(图8中省略了),更新接口,删除接口,其中,创建接口,用于创建部署任务中需要的云主机,读取接口用于读取已经创建的云主机资源。更新接口,用于当部署任务资源更新配置信息后,对已经申请的云主机资源进行更新配置。删除接口,用于删除部署任务后,对资源的释放。
通过调用这些接口,以使云组件模块会通过HTTP服务与云平台通信,将要执行的调度任务信息发送给云平台,云平台则根据调度任务信息,调用自身API接口,以此创建,删除,更新,读取云主机资源,然后根据调用结果,将成功或失败信息返回给云组件模块,云组件模块又将信息返回给图调度模块,这样一个完整的云组件模块工作过程至此结束。
可以理解的是,如果部署策略图中的低代码执行程序实体在执行过程中需要执行非云组件,则需要按组件开发规范开发相应的非云组件,并注册非云组件的组件信息,这样一来,可以根据非云组件信息生成对应的部署策略图,那么在执行部署策略图的过程中,就可以访问正确的非云组件,部署正确的软件基础资源。例如创建数据库组件,通过封装特定数据库的部署代码,就可以实现可视化的数据库部署。
基于相同的发明构思,本发明实施例还提供了一种软件资源生成的低代码配置***,请参见图9,图9为本发明实施例提供的软件资源生成的低代码配置***的功能模块图,该软件资源生成的低代码配置***300可以以软件或固件(firmware)的形式存储于软件资源生成的低代码配置设备100的操作***(operating system,OS)中。
如图9所示,本发明实施例提供的软件资源生成的低代码配置***300可以包括:前端模块310,解析模块320、图构建模块330、图调度模块340。
前端模块310,用于基于待部署软件的部署需求信息,生成多个低代码程序实体、以及多个低代码程序实体对应的配置数据;其中,所述低代码程序实体被执行时用于生成所述待部署软件所需的部署资源;
解析模块320,用于对多个低代码程序实体对应的配置数据进行解析,图构建模块330用于构建待部署软件的部署策略图;部署策略图用于表征多个低代码程序实体之间的依赖关系;
图调度模块330,用于基于多个低代码程序实体之间的依赖关系,确定每个低代码程序实体的执行顺序,并按照执行顺序,依次执行每个低代码程序实体;当全部低代码程序实体均被成功执行,确定完成部署资源的配置任务。
在可选的实施方式中,前端模块310,具体用于:获得多个未配置的低代码程序模型;接收针对每个所述低代码程序模型的属性配置操作,以使每个被配置后的所述低代码程序模型具有生成所述部署资源信息的功能,得到所述低代码程序实体;获得多个所述低代码程序实体之间的被配置的所述依赖关系,并基于所述依赖关系以及被配置后的所述低代码程序实体的属性信息,生成所述配置数据。
在可选的实施方式中,解析模块320:对配置数据进行解析,获得每个低代码程序实体对应的目的低代码程序实体;图构建模块330用于建立每个低代码程序实体与低代码程序实体对应的目的低代码程序实体的有向连接关系,基于全部有向连接关系,构建部署策略图。
在可选的实施方式中,图调度模块330,还用于当存在多条待部署软件对应的配置数据,生成配置数据队列,并创建多个线程;解析与图构建模块320还用于针对每条配置数据,若多条线程中不存在空闲线程,则控制配置数据处于等待状态,直到存在空闲线程后,利用空闲线程解析配置数据。
在可选的实施方式中,图调度模块330,具体用于生成每个所述低代码程序实体的调度任务;将属性信息为开始的低代码程序实体所对应的目的低代码程序实体,作为待执行低代码程序实体;运行所述待执行低代码程序实体对应的所述调度任务;当所述待执行低代码程序实体执行完毕后,根据按照所述执行顺序,确定下一个所述待执行低代码程序实体,并返回运行所述待执行低代码程序实体对应的所述调度任务的步骤,直到下一个所述待执行低代码程序实体的属性信息为结束。
在可选的实施方式中,软件资源生成的低代码配置***300还可以包括云组件模块,该云组件模块可以如图8所示,云组件模块用于若当前待执行任务对应的低代码程序实体的属性信息为云主机属性信息,则向云平台发送云主机资源申请请求,并基于申请到的云主机,执行当前待执行任务。
在可选的实施方式中,软件资源生成的低代码配置***300还可以包括生成模块,用于若任意一个调度任务执行错误,则停止后续调度任务,生成错误记录日志。
本发明实施例还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中任一项的软件资源生成的低代码配置方法。该计算机可读存储介质可以是,但不限于,U盘、移动硬盘、ROM、RAM、PROM、EPROM、EEPROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种软件资源生成的低代码配置方法,其特征在于,所述方法包括:
基于待部署软件的部署需求信息,生成多个低代码程序实体、以及多个所述低代码程序实体对应的配置数据;其中,所述低代码程序实体被执行时用于生成所述待部署软件所需的部署资源;
对多个所述低代码程序实体对应的配置数据进行解析,并基于解析得到的图数据构建所述待部署软件的部署策略图;所述部署策略图用于表征多个所述低代码程序实体之间的依赖关系;
基于多个所述低代码程序实体之间的依赖关系,确定每个所述低代码程序实体的执行顺序,并按照所述执行顺序,依次执行每个所述低代码程序实体;
当全部所述低代码程序实体均被成功执行,确定完成所述部署资源的配置任务。
2.根据权利要求1所述的方法,其特征在于,基于待部署软件的部署需求信息,生成多个低代码程序实体、以及多个所述低代码程序实体对应的配置数据,包括:
获得多个未配置的低代码程序模型;
接收针对每个所述低代码程序模型的属性配置操作,以使每个被配置后的所述低代码程序模型具有生成所述部署资源信息的功能,得到所述低代码程序实体;
获得多个所述低代码程序实体之间的被配置的所述依赖关系,并基于所述依赖关系以及被配置后的所述低代码程序实体的属性信息,生成所述配置数据。
3.根据权利要求1所述的方法,其特征在于,对多个所述低代码程序实体对应的配置数据进行解析,并基于解析得到的图数据构建所述待部署软件的部署策略图,包括:
对所述配置数据进行解析,获得每个所述低代码程序实体对应的目的低代码程序实体;
建立每个所述低代码程序实体与所述低代码程序实体对应的目的低代码程序实体的有向连接关系,并基于全部所述有向连接关系,构建所述部署策略图。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当存在多条所述待部署软件对应的所述配置数据,生成配置数据队列,并创建多个线程;
针对每条所述配置数据,若多条所述线程中不存在空闲线程,则控制所述配置数据处于等待状态,直到存在空闲线程后,利用所述空闲线程解析所述配置数据。
5.根据权利要求1所述的方法,其特征在于,基于多个所述低代码程序实体之间的依赖关系,确定每个所述低代码程序实体的执行顺序,并按照所述执行顺序,依次执行每个所述低代码程序实体,包括:
生成每个所述低代码程序实体的调度任务;
将属性信息为开始的低代码程序实体所对应的目的低代码程序实体,作为待执行低代码程序实体;
运行所述待执行低代码程序实体对应的所述调度任务;
当所述待执行低代码程序实体执行完毕后,根据按照所述执行顺序,确定下一个所述待执行低代码程序实体,并返回运行所述待执行低代码程序实体对应的所述调度任务的步骤,直到下一个所述待执行低代码程序实体的属性信息为结束。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若所述待执行低代码程序实体的属性信息为云主机属性信息,则向云平台发送云主机资源申请请求,并基于申请到的云主机,执行所述待执行低代码程序实体。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若任意一个所述低代码程序实体执行错误,则停止执行任务,生成错误记录日志。
8.一种软件资源生成的低代码配置***,其特征在于,包括:前端模块、解析模块、图构建模块和图调度模块;
所述前端模块,用于基于待部署软件的部署需求信息,生成多个低代码程序实体、以及多个所述低代码程序实体对应的配置数据;其中,所述低代码程序实体被执行时用于生成所述待部署软件所需的部署资源;
所述解析模块,用于对多个所述低代码程序实体对应的配置数据进行解析,所述图构建模块,用于并基于解析得到的图数据构建所述待部署软件的部署策略图;所述部署策略图用于表征多个所述低代码程序实体之间的依赖关系;
图调度模块,用于基于多个所述低代码程序实体之间的依赖关系,确定每个所述低代码程序实体的执行顺序,并按照所述执行顺序,依次执行每个所述低代码程序实体;当全部所述低代码程序实体均被成功执行,确定完成所述部署资源的配置任务。
9.一种软件资源生成的低代码配置设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述的方法。
10.一种存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至7任一项所述的方法。
CN202211314947.0A 2022-10-26 2022-10-26 软件资源生成的低代码配置方法、***、设备及存储介质 Active CN115373696B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211314947.0A CN115373696B (zh) 2022-10-26 2022-10-26 软件资源生成的低代码配置方法、***、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211314947.0A CN115373696B (zh) 2022-10-26 2022-10-26 软件资源生成的低代码配置方法、***、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115373696A CN115373696A (zh) 2022-11-22
CN115373696B true CN115373696B (zh) 2022-12-23

Family

ID=84074351

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211314947.0A Active CN115373696B (zh) 2022-10-26 2022-10-26 软件资源生成的低代码配置方法、***、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115373696B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703749A (zh) * 2021-09-06 2021-11-26 河北雄安新区公安局 一种基于可视化编程技术的信息***及其构建方法
CN113849165A (zh) * 2021-09-28 2021-12-28 航天科工网络信息发展有限公司 基于可视化拖拉且可定制的低代码前端开发框架及方法
CN114281318A (zh) * 2021-12-27 2022-04-05 武汉创聚信科技服务有限公司 一种低代码应用软件开发装置
CN114579145A (zh) * 2022-02-22 2022-06-03 腾讯科技(深圳)有限公司 一种软件部署方法、装置、计算机设备、存储介质
CN115016784A (zh) * 2022-08-08 2022-09-06 宇动源(北京)信息技术有限公司 低代码应用复用方法、应用解析***、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935666B2 (en) * 2010-06-30 2015-01-13 Gordon G. MILLER, III Systems and methods for dynamic mobile applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703749A (zh) * 2021-09-06 2021-11-26 河北雄安新区公安局 一种基于可视化编程技术的信息***及其构建方法
CN113849165A (zh) * 2021-09-28 2021-12-28 航天科工网络信息发展有限公司 基于可视化拖拉且可定制的低代码前端开发框架及方法
CN114281318A (zh) * 2021-12-27 2022-04-05 武汉创聚信科技服务有限公司 一种低代码应用软件开发装置
CN114579145A (zh) * 2022-02-22 2022-06-03 腾讯科技(深圳)有限公司 一种软件部署方法、装置、计算机设备、存储介质
CN115016784A (zh) * 2022-08-08 2022-09-06 宇动源(北京)信息技术有限公司 低代码应用复用方法、应用解析***、设备及存储介质

Also Published As

Publication number Publication date
CN115373696A (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
US11630646B2 (en) Software defined network controller
CN107370786B (zh) 一种基于微服务架构的通用信息管理***
CN107766126B (zh) 容器镜像的构建方法、***、装置及存储介质
US20210311858A1 (en) System and method for providing a test manager for use with a mainframe rehosting platform
CN106559438B (zh) 一种基于目标网络平台的程序上传方法和装置
CN110673923A (zh) Xwiki***配置方法、***及计算机设备
CN113885849B (zh) 基于工业互联网平台的应用开发方法、装置及终端设备
US11089000B1 (en) Automated source code log generation
US11381638B1 (en) System and method for parallel execution of activites in an integration flow
CN115632944B (zh) 一种节点配置方法、装置、设备、可读存储介质及服务器
CN113448678A (zh) 应用信息生成方法、部署方法及装置、***、存储介质
US7805711B2 (en) Redirection interface system and method for CIM object manager provider
CN111651352A (zh) 一种仓库代码的合并方法及装置
CN117539459B (zh) 一种api接口配置方法、***及设备
CN112558930B (zh) 一种面向容器服务的软件生成***及方法
US10200271B2 (en) Building and testing composite virtual services using debug automation
CN115373696B (zh) 软件资源生成的低代码配置方法、***、设备及存储介质
CN115617668A (zh) 一种兼容性测试方法、装置及设备
US11947966B2 (en) Identifying computer instructions enclosed by macros and conflicting macros at build time
CN115237441A (zh) 一种基于云平台的升级测试方法、装置及介质
CN112783757B (zh) 测试***、方法、计算机***和计算机可读存储介质
CN114143235A (zh) Nfv自动测试方法、装置、设备及存储介质
CN112363700A (zh) 智能合约的协同创建方法、装置、计算机设备和存储介质
CN112422308A (zh) 一种实现运维监控的方法及装置
CN109995617A (zh) 主机管理特性的自动化测试方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant