CN112433722A - 模块化系统代码开发方法、装置、设备及系统 - Google Patents

模块化系统代码开发方法、装置、设备及系统 Download PDF

Info

Publication number
CN112433722A
CN112433722A CN202011364744.3A CN202011364744A CN112433722A CN 112433722 A CN112433722 A CN 112433722A CN 202011364744 A CN202011364744 A CN 202011364744A CN 112433722 A CN112433722 A CN 112433722A
Authority
CN
China
Prior art keywords
module
information
code
service
preset
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.)
Pending
Application number
CN202011364744.3A
Other languages
English (en)
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.)
WeBank Co Ltd
Original Assignee
WeBank 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 WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202011364744.3A priority Critical patent/CN112433722A/zh
Publication of CN112433722A publication Critical patent/CN112433722A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Landscapes

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

Abstract

本申请提供一种模块化系统代码开发方法、装置、设备及系统。首先根据待开发系统的业务需求以及业务流程确定目标模块,目标模块用于表征业务流程中业务节点对应的代码信息。然后根据业务流程及目标模块生成对应的格式化报文信息,并将格式化报文信息发送给服务单元,以使服务单元基于预设流程执行器生成代码文件,从而完成待开发系统的代码开发。本申请提供了一种模块化的代码开发思路,对于待开发系统不存在代码的重复开发,避免了开发资源的浪费且降低了后续的测试和维护成本。并且,基于预设流程执行器生成代码文件,无需考虑每个目标模块中的代码逻辑,不但保证运行质量还有效缩短了系统开发周期,进而提高了系统开发效率。

Description

模块化系统代码开发方法、装置、设备及系统
技术领域
本申请涉及金融科技(Fintech)技术领域,尤其涉及一种模块化系统代码开发方法、装置、设备及系统。
背景技术
随着互联网技术,尤其是互联网金融科技(Fintech)的飞速发展,越来越多的技术(大数据、分布式、区块链Blockchain、人工智能等)应用在金融领域,使得金融业务以及金融业务相关的业务数据爆炸式增长。
当前,在为金融业务平台中不同业务领域提供系统服务时,则需要对相应的系统代码进行开发。一种可实施的方案是由于不同业务领域存在业务要求差异以及业务内容及字段的差异,使得对应的系统处理流程以及内容必然存在差异,因而,可以在各子系统中重新开发与各业务产品相匹配的业务流程代码。另一种方案是基于软件开发工具包(Software Development Kit,简称SDK)进行相应功能模块的快速复用。例如,将金融业务平台的应用系统底层框架集成在SDK上,通过快速复用在系统框架的基础上开发业务所需的业务流程代码。其中,在代码开发过程中,若SDK中存在相应的业务流程代码,则直接引用相关代码即可。而若SDK中未存在相应的业务流程代码,则可以在其他的系统中查询近似的业务流程代码,对近似的业务流程代码进行修改,以得到所需的业务流程代码。
然而,上述的系统代码开发方案存在诸多问题。例如,对新建子系统的业务流程进行代码重新开发,可能导致部分其他子系统已有功能模块或相似功能模块的重复开发,浪费开发人力的投入,且开发效率低。而当基于SDK进行快速复用时,在后续的系统服务过程中又容易产生差异,并且开发维护及测试成本都会比较高,运行质量也无法保证。
发明内容
本申请提供一种模块化系统代码开发方法、装置、设备及系统,用于解决现有的系统代码开发方案存在重复开发现象,浪费开发资源且开发效率低下,以及维护测试成本较高且运行质量无法保证的技术问题。
第一方面,本申请提供一种模块化系统代码开发方法,包括:
根据待开发系统的业务需求以及业务流程确定目标模块,所述目标模块用于表征所述业务流程中业务节点对应的代码信息;
根据所述业务流程以及所述目标模块生成对应的格式化报文信息,所述格式化报文信息通过预设编程语言描述所述业务流程和所述目标模块;
发送所述格式化报文信息至服务单元。
在一种可能设计中,所述根据待开发系统的业务需求以及业务流程确定目标模块,包括:
根据所述业务需求以及所述业务流程从预设模块库中确定公用模块,以将所述公用模块确定为所述目标模块,所述预设模块库中包括多个所述公用模块。
在一种可能设计中,当所述业务节点包括差异性业务属性,所述方法还包括:
生成空白模块,并根据所述差异性业务属性对所述空白模块进行代码编辑,得到自定义模块以及对应的模块信息;
将所述自定义模块确定为所述目标模块,所述自定义模块中的代码信息用于表征对应业务节点的所述差异性业务属性。
在一种可能设计中,在所述根据所述业务需求以及所述业务流程从预设模块库中确定公用模块之前,还包括:
根据预设业务需求按照预设统一格式生成对应的代码信息,以得到多个代码模块;
对每个代码模块中的代码信息按照预设规范定义对应的初始化函数、阶段指征函数以及输出结果函数;
将定义后的每个代码模块进行图形化封装,以得到对应的公用模块;
将每个公用模块对应的模块信息按照预设列表格式存储至预设模块库,所述模块信息至少包括模块名称信息、模块描述信息、模块路径信息以及条件字段信息。
在一种可能设计中,所述根据所述业务流程以及所述目标模块生成对应的格式化报文信息,包括:
根据所述业务流程中每个业务节点以及对应的所述目标模块生成所述格式化报文信息,所述格式化报文信息包括所述业务流程的流程名称信息、流程代码路径信息、流程描述信息以及节点模块信息;
其中,所述节点模块信息包括所述业务节点的类型信息、内容属性描述信息以及子节点描述信息,所述内容属性描述信息用于描述与所述业务节点对应的所述目标模块。
第二方面,本申请提供一种模块化系统代码开发方法,包括:
接收流程设计单元发送的格式化报文信息,所述格式化报文信息包括待开发系统中业务流程的流程名称信息、流程代码路径信息、流程描述信息以及节点模块信息,所述节点模块信息包括业务节点的类型信息、内容属性描述信息以及子节点描述信息;
基于预设流程执行器根据所述格式化报文信息生成代码文件,以完成对所述待开发系统的代码开发。
在一种可能的设计中,所述基于预设流程执行器根据所述格式化报文信息生成代码文件,包括:
根据所述业务流程对所述格式化报文信息进行预处理,以得到每个业务节点对应的目标数据;
将各目标数据存储至预设源代码列表,每个目标数据包括对应的目标模块以及注解代码信息,所述注解代码信息用于对所述目标模块对应的相应信息进行标注;
基于所述预设流程执行器根据所述预设源代码列表生成对应的所述代码文件。
在一种可能的设计中,所述根据所述业务流程对所述格式化报文信息进行预处理,以得到每个业务节点对应的目标数据,包括:
根据所述业务流程读取所述格式化报文信息,并通过预设注解算法将所述格式化报文信息转换为请求对象信息;
根据所述请求对象信息获取所述流程名称信息以及所述流程描述信息,以确定首个业务节点;
根据所述首个业务节点对应的所述内容属性描述信息确定对应的所述注解代码信息,以得到对应的所述目标数据;
通过当前业务节点对应的所述子节点描述信息确定下一个业务节点对应的目标数据,直到所述当前业务节点对应的所述子节点描述信息为空。
在一种可能的设计中,所述基于所述预设流程执行器根据所述预设源代码列表生成对应的所述代码文件,包括:
运行所述预设流程执行器,以根据所述预设源代码列表确定所述业务流程的所述流程名称信息,得到可执行bean,以确定所述业务流程的入口;
所述预设流程执行器通过所述业务流程的入口依次对所有业务节点对应的各目标模块执行生成代码操作,以得到各业务节点对应的所述代码文件。
在一种可能的设计中,所述预设流程执行器通过所述业务流程的入口依次对所有业务节点对应的各目标模块执行生成代码操作,包括:
所述预设流程执行器对首个目标模块执行生成代码操作,并在执行完对应的输出结果函数之后,所述首个目标模块将自身对应的阶段指征函数反馈至所述预设流程执行器;
所述预设流程执行器对所述阶段指征函数指示的下一个业务节点对应的所述目标模块执行生成代码操作;
直到当前目标模块未向所述预设流程执行器反馈所述阶段指征函数,或者所述预设流程执行器接收到结束指征函数,所有业务节点对应的生成代码操作结束。
第三方面,本申请提供一种模块化系统代码开发方法,包括:
当目标模块的来源为公用模块,通过预设链接引用预设数据包的方式从服务单元调用对应的代码文件,所述预设数据包包括所述公用模块对应的代码信息;和/或
当目标模块的来源为自定义模块,生成自定义文件,以根据所述自定义文件从服务单元调用对应的代码文件,所述自定义文件包括各自定义模块对应的代码信息。
第四方面,本申请提供一种模块化系统代码开发装置,包括:
处理模块,用于根据待开发系统的业务需求以及业务流程确定目标模块,所述目标模块用于表征所述业务流程中业务节点对应的代码信息;
生成模块,用于根据所述业务流程以及所述目标模块生成对应的格式化报文信息,所述格式化报文信息通过预设编程语言描述所述业务流程和所述目标模块;
发送模块,用于发送所述格式化报文信息至服务单元。
在一种可能的设计中,所述处理模块,具体用于:
根据所述业务需求以及所述业务流程从预设模块库中确定公用模块,以将所述公用模块确定为所述目标模块,所述预设模块库中包括多个所述公用模块。
在一种可能的设计中,当所述业务节点包括差异性业务属性,所述处理模块,还具体用于:
生成空白模块,并根据所述差异性业务属性对所述空白模块进行代码编辑,得到自定义模块以及对应的模块信息;
将所述自定义模块确定为所述目标模块,所述自定义模块中的代码信息用于表征对应业务节点的所述差异性业务属性。
在一种可能的设计中,所述处理模块,还用于:
根据预设业务需求按照预设统一格式生成对应的代码信息,以得到多个代码模块;
对每个代码模块中的代码信息按照预设规范定义对应的初始化函数、阶段指征函数以及输出结果函数;
将定义后的每个代码模块进行图形化封装,以得到对应的公用模块;
将每个公用模块对应的模块信息按照预设列表格式存储至预设模块库,所述模块信息至少包括模块名称信息、模块描述信息、模块路径信息以及条件字段信息。
在一种可能的设计中,所述生成模块,具体用于:
根据所述业务流程中每个业务节点以及对应的所述目标模块生成所述格式化报文信息,所述格式化报文信息包括所述业务流程的流程名称信息、流程代码路径信息、流程描述信息以及节点模块信息;
其中,所述节点模块信息包括所述业务节点的类型信息、内容属性描述信息以及子节点描述信息,所述内容属性描述信息用于描述与所述业务节点对应的所述目标模块。
第五方面,本申请提供一种模块化系统代码开发装置,包括:
接收模块,用于接收流程设计单元发送的格式化报文信息,所述格式化报文信息包括待开发系统中业务流程的流程名称信息、流程代码路径信息、流程描述信息以及节点模块信息,所述节点模块信息包括业务节点的类型信息、内容属性描述信息以及子节点描述信息;
生成模块,用于基于预设流程执行器根据所述格式化报文信息生成代码文件,以完成对所述待开发系统的代码开发。
在一种可能的设计中,所述生成模块,包括:
预处理子模块,用于根据所述业务流程对所述格式化报文信息进行预处理,以得到每个业务节点对应的目标数据;
存储子模块,用于将各目标数据存储至预设源代码列表,每个目标数据包括对应的目标模块以及注解代码信息,所述注解代码信息用于对所述目标模块对应的相应信息进行标注;
生成子模块,用于基于所述预设流程执行器根据所述预设源代码列表生成对应的所述代码文件。
在一种可能的设计中,所述预处理子模块,具体用于:
根据所述业务流程读取所述格式化报文信息,并通过预设注解算法将所述格式化报文信息转换为请求对象信息;
根据所述请求对象信息获取所述流程名称信息以及所述流程描述信息,以确定首个业务节点;
根据所述首个业务节点对应的所述内容属性描述信息确定对应的所述注解代码信息,以得到对应的所述目标数据;
通过当前业务节点对应的所述子节点描述信息确定下一个业务节点对应的目标数据,直到所述当前业务节点对应的所述子节点描述信息为空。
在一种可能的设计中,所述生成子模块,具体用于:
运行所述预设流程执行器,以根据所述预设源代码列表确定所述业务流程的所述流程名称信息,得到可执行bean,以确定所述业务流程的入口;
所述预设流程执行器通过所述业务流程的入口依次对所有业务节点对应的各目标模块执行生成代码操作,以得到各业务节点对应的所述代码文件。
在一种可能的设计中,所述生成子模块,还具有用于:
所述预设流程执行器对首个目标模块执行生成代码操作,并在执行完对应的输出结果函数之后,所述首个目标模块将自身对应的阶段指征函数反馈至所述预设流程执行器;
所述预设流程执行器对所述阶段指征函数指示的下一个业务节点对应的所述目标模块执行生成代码操作;
直到当前目标模块未向所述预设流程执行器反馈所述阶段指征函数,或者所述预设流程执行器接收到结束指征函数,所有业务节点对应的生成代码操作结束。
第六方面,本申请提供一种模块化系统代码开发装置,包括:调用模块;所述调用模块,用于:
当目标模块的来源为公用模块,通过预设链接引用预设数据包的方式从服务单元调用对应的代码文件,所述预设数据包包括所述公用模块对应的代码信息;和/或
当目标模块的来源为自定义模块,生成自定义文件,以根据所述自定义文件从服务单元调用对应的代码文件,所述自定义文件包括各自定义模块对应的代码信息。
第七方面,本申请提供一种电子设备,包括:
处理器;以及
与所述处理器通信连接的存储器;其中,存储器存储有可被所述处理器执行的指令,指令被所述处理器执行,以使所述处理器能够执行第一方面及第一方面的可选方案中任一项所述的模块化系统代码开发方法。
第八方面,本申请提供一种电子设备,包括:
处理器;以及
与所述处理器通信连接的存储器;其中,存储器存储有可被所述处理器执行的指令,指令被所述处理器执行,以使所述处理器能够执行第二方面及第二方面的可选方案中任一项所述的模块化系统代码开发方法。
第九方面,本申请提供一种电子设备,包括:
处理器;以及
与所述处理器通信连接的存储器;其中,存储器存储有可被所述处理器执行的指令,指令被所述处理器执行,以使所述处理器能够执行第三方面所述的模块化系统代码开发方法。
第十方面,本申请提供一种模块化系统代码开发系统,包括:
流程设计单元,包括第四方面及其可选方案中任一项所述的模块化系统代码开发装置;
服务单元,包括第五方面及其可选方案中任一项所述的模块化系统代码开发装置;
应用单元,包括第六方面所述的模块化系统代码开发装置;
其中,所述服务单元分别与所述流程设计单元和所述应用单元通信连接。
本申请提供一种模块化系统代码开发方法、装置、设备及系统。模块化系统代码开发系统中的流程设计单元,首先根据待开发系统的业务需求以及业务流程确定目标模块,该目标模块用于表征业务流程中业务节点对应的代码信息,然后根据业务流程以及目标模块生成对应的格式化报文信息,并将格式化报文信息发送给代码开发系统中的服务单元。服务单元基于预设流程执行器根据接收到的格式化报文信息生成代码文件,以完成对待开发系统的代码开发。代码开发系统中的应用单元通过调用代码文件为用户提供满足业务需求的相应服务。从而,为开发人员提供了一种模块化的代码开发思路,针对待开发系统无需进行代码的重复开发,避免了开发资源的浪费并有效降低了后续的测试和维护成本。并且,基于预设流程执行器生成代码文件,无需考虑每个目标模块中的代码逻辑,在保证运行质量的同时能够被直接运行,有效缩短了系统开发周期,进而提高了系统开发效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的一种模块化系统代码开发方法的流程示意图;
图3为本申请实施例提供的一种业务流程示意图;
图4为本申请实施例提供的一种格式化报文信息的示意图;
图5为本申请实施例提供的另一种模块化系统代码开发方法的流程示意图;
图6为本申请实施例提供的再一种模块化系统代码开发方法的流程示意图;
图7为本申请实施例提供的又一种模块化系统代码开发方法的流程示意图;
图8为本申请实施例提供的又一种模块化系统代码开发方法的流程示意图;
图9为本申请实施例提供的一种模块化系统代码开发装置的结构示意图;
图10为本申请实施例提供的另一种模块化系统代码开发装置的结构示意图;
图11为本申请实施例提供的一种生成模块的结构示意图;
图12为本申请实施例提供的再一种模块化系统代码开发装置的结构示意图;
图13为本申请实施例提供的一种电子设备的结构示意图;
图14为本申请实施例提供的另一种电子设备的结构示意图;
图15为本申请实施例提供的再一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法和装置的例子。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在互联网金融科技领域,对于金融业务平台而言,在为不同业务领域提供系统服务时,例如贷款服务,则需要对相应的系统代码进行开发。现有技术中,一种可实现的方案是,由于不同业务领域存在业务要求差异以及业务内容及字段差异,使得对应的系统处理流程及内容必然也存在差异,因而,为了满足业务流程的需求,则需要在各子系统中重新开发与业务产品相匹配的业务流程代码。另一种可实现的方案是,基于软件开发工具包(SDK)直接根据业务流程进行相应功能模块的快速复用。例如,提前将金融业务平台的应用系统底层框架集成于SDK,然后通过快速复用的方式在系统框架的基础上开发业务所需的相应代码。在代码开发过程中,当SDK中存在相应的业务流程代码,也直接引用即可,而当SDK中不存在相应的业务流程代码,则通过在其他系统中查询近似的代码,对其进行修改,得到所需的业务流程代码。
然而,现有方案存在诸多问题,例如,对于新建子系统业务流程代码的重新开发,可能导致其他子系统中已有的功能模块或相似功能模块对应代码的重复开发,浪费了开发资源,且延长了开发周期,开发效率低下。而基于SDK进行的代码快速复用,在后续的系统服务过程中容易产生差异,并且开发维护及测试成本较高,还无法保证运行质量。
针对现有技术中的上述技术问题,本申请提供的模块化系统代码开发方法的发明构思在于:流程设计单元可以根据待开发系统的业务需求和业务流程直接确定模块化的目标模块,无需对每个业务节点对应的代码信息都进行重新开发,进而可以有效降低开发维护和测试成本。服务单元可以基于预设流程执行器根据格式化报文信息生成代码文件,其中,预设流程执行器只需按照业务流程循环对每个业务节点对应的目标模块执行生成代码操作,而无需考虑每个目标模块中的代码逻辑,不但保证了代码质量还能确保在应用单元中的兼容性及其可运行性。应用单元能够直接从服务单元调用代码文件以直接运行,能够缩短系统开发周期,进而提高系统开发效率。
以下,对本申请实施例的示例性应用场景进行介绍。
本申请实施例提供的模块化系统代码开发方法可以应用于本申请实施例提供的模块化系统代码开发系统,该系统代码开发系统包括有流程设计单元、服务单元以及应用单元,服务单元分别与流程设计单元和应用单元通信连接。其中,流程设计单元、服务单元以及应用单元各自包括有对应的模块化系统代码开发装置,每个模块化系统代码开发装置可以执行对应的模块化系统代码开发方法,每个模块化系统代码开发装置对应的电子设备可以是终端设备、服务器或服务器集群等设备。图1为本申请实施例提供的一种应用场景示意图,如图1所示,网络用于为服务器11、服务器12和终端设备13之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。服务器11、服务器12和终端设备13之间可以通过网络进行交互,以接收或发送消息。其中,服务器11和服务器12可以为被分别配置于流程设计单元和服务单元,而终端设备13可以被配置于应用单元,以分别执行各自的模块化系统代码开发方法,通过相互之间的交互实现对待开发系统的代码开发。另外,本申请实施例对于上述描述中的服务器和终端设备的类型不作限定,例如终端设备13可以是智能手机、智能眼镜、智能手环、智能手表、平板电脑等等,图1中的终端设备13以智能手机为例示出。
需要说明的是,上述应用场景仅仅是示意性的,本申请实施例提供的模块化系统代码开发方法、装置、设备及系统包括但不仅限于上述应用场景。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的一种模块化系统代码开发方法的流程示意图,如图2所示,本实施例提供的方法,包括:
S101:根据待开发系统的业务需求以及业务流程确定目标模块。
其中,目标模块用于表征业务流程中业务节点对应的代码信息。
流程设计单元作为前端流程界面设计端,可以根据待开发系统的业务需求以及业务流程设计满足业务需求所需的目标模块,目标模块(Module)可以理解为模块化后的代码信息,换言之,目标模块能够表征业务流程中业务节点对应的代码信息。可以理解的是,业务流程中包括多个业务节点,每个业务节点对应有目标模块。待开发系统可以为贷款系统等金融平台中的相应服务系统,业务流程则可以为贷款系统中的贷款交易流程等。
目标模块可以是现有的正在被维护的公用模块,也可以是开发人员针对待开发系统中业务需求的差异化业务属性开发的自定义模块。因而,在一种可能的设计中,本步骤S101中流程设计单元确定目标模块一种可能的实现方式为:根据业务需求以及业务流程从预设模块库中确定公用模块,以将公用模块确定为目标模块。
例如,开发人员已提前设置并维护有预设模块库,预设模块库中包括多个公用模块,每个公用模块为能够表征业务节点中对应业务属性的代码信息,流程设计单元可以根据业务需求和业务流程从预设模块库中直接选用与当前业务节点对应的业务属性相匹配的公用模块,将所选用的公用模块确定为目标模块。
而在实际工况中,可能待开发系统的当前业务节点包括差异性业务属性,选用公用模块作为目标模块可能无法满足当前业务节点的业务需求,则需要流程设计单元确定自定义模块。因而,本步骤S101中流程设计单元确定目标模块可能的实现方式包括:
生成空白模块,并根据差异性业务属性对空白模块进行代码编辑,得到自定义模块以及对应的模块信息;
将自定义模块确定为目标模块,自定义模块中的代码信息用于表征对应业务节点的差异性业务属性。
若从预设模块库中确定公用模块将其作为目标模块时,于流程设计单元只需直接选用即可,预设模块库中已存储的公用模块无法进行任何编辑。而当业务节点包括差异性业务属性时,则需根据差异性业务属性进行相应代码编辑。例如,首先生成空白模块,然后根据差异性业务属性对空白模块进行代码编辑,得到开发人员于流程设计单元根据差异性业务属性创建的自定义模块以及该自定义模块对应的模块信息,进而将该自定义模块确定为目标模块,以通过其中的代码信息表征本业务节点的差异性业务属性。
其中,自定义模块的模块信息用于描述该自定义模块的所有相关信息。例如对应的模块名称信息、模块描述信息、模块路径信息以及条件字段信息等等。从而使得所开发的相应代码能够保证待开发系统的实际情况。并且,可以对存在差异性业务属性的业务节点,在业务流程中实现快速嵌入。
图3为本申请实施例提供的一种业务流程示意图,如图3所示,流程设计单元可以根据待开发系统的业务需求以及业务流程确定出满足待开发系统的业务属性的所有目标模块。参照图3所示,在待开发系统的一个完成业务流程中,从业务流程的开始到结束,选用了公用模块21、公用模块22、公用模块23、公用模块24和公用模块25,以及可以在包括差异性业务属性的业务节点,确定自定义模块为目标模块,例如嵌入自定义模块26和自定义模块27,从而完成整个业务流程的目标模块20设计。
S102:根据业务流程以及目标模块生成对应的格式化报文信息。
其中,格式化报文信息通过预设编程语言描述业务流程和目标模块。
流程设计单元在确定了整个业务流程的目标模块之后,进一步地,根据业务流程以及目标模块生成对应的格式化报文信息。其中,格式化报文信息是指用预设编程语言描述待开发系统中业务流程以及其对应的目标模块的相关信息。
例如,流程设计单元根据业务流程中每个业务节点以及对应的目标模块生成格式化报文信息。格式化报文信息包括业务流程的流程名称信息、流程代码路径信息、流程描述信息以及节点模块信息等。流程名称信息、流程代码路径信息以及流程描述信息均用于通过预设编程语言描述业务流程。
其中,节点模块信息是指通过相应的预设编程语言描述业务流程中各业务节点对应的目标模块,例如业务节点的类型信息、内容属性描述信息以及子节点描述信息等。业务节点的类型信息是指当前业务节点的类型,具体可以根据待开发系统的具体业务流程确定,例如该业务节点为交易、验证、查询等类型。内容属性描述信息用于描述当前业务节点对应的目标模块,例如,可以包括有目标模块对应的模块信息以及输出结果信息等,输出结果信息为与模块信息中条件字段信息相对应的结果。子节点描述信息则指是否存在与当前业务节点相邻的下一个业务节点,例如子节点描述信息为空,则表明当前业务节点之后不存在下一个业务节点,反之,则存在下一个业务节点。从而可以通过子节点描述信息由当前业务节点指示至下一个业务节点,以形成整个业务流程。可以理解的是,当通过子节点描述信息流转至下一个业务节点时,在格式化报文信息中包括有该下一个业务节点对应的节点模块信息。
值得说明的是,上述实施例中的预设编程语言可以为C++或java等编程语言,对此,本申请实施例不作限定。
图4为本申请实施例提供的一种格式化报文信息的示意图,如图4所示,例如,待开发业系统的业务流程为一交易流程,流程名称信息为该交易流程的名称,即交易流程名称;流程代码路径信息为该交易流程对应的代码的路径,即交易代码所在路径;流程描述信息可以是该交易流程的中文描述,即交易流程中文描述;节点模块信息为业务流程用于描述所有业务节点对应目标模块的相应信息,即模块节点描述。继续参照图4所示,节点模块信息可以理解为对上述交易流程中的模块节点描述定义,例如可以包括图4中所示的节点类型、节点详细内容属性描述以及模块子节点描述。
S103:发送格式化报文信息至服务单元。
相应地,服务单元接收流程设计单元发送的格式化报文信息。
流程设计单元在生成格式化报文信息之后,将其发送至服务单元,使得服务单元根据接收到的格式化报文信息进一步生成代码文件。
其中,格式化报文信息可以包括待开发系统中业务流程的流程名称信息、流程代码路径信息、流程描述信息以及节点模块信息,节点模块信息包括业务节点的类型信息、内容属性描述信息以及子节点描述信息。对于格式化报文信息的具体内容可参考步骤S102中的详细描述,在此不再赘述。
S104:基于预设流程执行器根据格式化报文信息生成代码文件,以完成对待开发系统的代码开发。
服务单元接收到格式化报文信息之后,基于预设流程执行器根据格式化报文信息生成对应的代码文件,以完成对待开发系统的代码开发。其中,预设流程执行器为在底层框架中设计的用于执行目标模块的生成代码操作的流程执行器(State Executor),该预设流程执行器可以按照预设的标准模式对每一个目标模块执行生成代码操作,其中仅用于对每个目标模块所表征的代码信息执行生成代码操作,而无需考虑每个目标模块各自具体的代码逻辑。从而可以保证最终生成的代码文件在运行时的兼容性和良好的运行性。
服务单元基于预设流程执行器,根据流程设计单元生成的格式化报文信息生成对应的代码文件之后,即完成对待开发系统的代码开发。此时,应用单元可以直接从服务单元下载代码文件对其进行运行。当代码开发完成之后,为了后续的维护以及测试方便,对所生成的代码文件根据目标模块的来源进行归类,以供应用单元按照目标模块的来源按照各自不同的存储方式调用对应的代码文件,即应用单元执行步骤S105和/或步骤S106。
S105:当目标模块的来源为公用模块,通过预设链接引用预设数据包的方式从服务单元调用对应的代码文件。
其中,预设数据包包括各公用模块对应的代码信息。
S106:当目标模块的来源为自定义模块,生成自定义文件,以根据自定义文件从服务单元调用对应的代码文件。
其中,自定义文件包括各自定义模块对应的代码信息。
在服务单元生成整个业务流程的代码文件之后,当其中的目标模块为公用模块所确定,即目标模块的来源为公用模块,则可以将这些目标模块对应的代码文件通过预设数据包进行存储,换言之,预设数据包包括有公用模块对应的代码信息。应用单元可以通过与预设数据包相映射的预设连接从服务单元进行下载,即通过预设连接引用预设数据包的方式从服务单元调用对应的代码文件。由于公用模块不可编辑,通过预设数据包的方式直接调用代码文件,可以有效避免对公用模块对应的源代码信息进行修改。
其中,预设数据包可以为压缩包,例如当预设编程语言为java时,则预设数据包即为预设jar包。本实施例对于预设数据包的具体形式等参数不作限定。
而当目标模块是由自定义模块确定时,即目标模块的来源为自定义模块,则在得到自定义模块的同时,生成自定义文件,将得到的自定义模块存储于自定义文件中,换言之,自定义文件中包括各自定义模块对应的代码信息。应用单元可以从服务单元直接下载自定义文件以调用对应的代码文件,即应用单元根据自定义文件从服务单元调用对应的代码文件。从而,在后续的代码测试及维护阶段,可以直接基于自定义文件中的相应内容进行,提高了一定的便利性。
应用单元通过步骤S105和/或S106可以直接获取到为待开发系统开发的代码文件,将其投放至运行环境以提供相应的系统服务。
本申请实施例提供的模块化系统代码开发方法,首先由流程设计单元根据待开发系统的业务需求及业务流程确定目标模块,其中,所确定的目标模块用于表征业务流程中业务节点对应的代码信息,继而根据业务流程以及目标模块生成对应的格式化报文信息,以通过预设编程语言描述业务流程和目标模块。之后,流程设计单元将格式化报文信息发送至服务单元。服务单元基于预设流程执行器,根据格式化报文信息生成代码文件,完成对待开发系统的代码开发。应用单元依据目标模块的来源为公用模块和/或自定义模块,采用相应的方式从服务单元对代码文件进行调用,以投放至运行环境为用户提供满足业务需求的相应服务。本申请实施例为开发人员提供了一种模块化的代码开发思路,确定公用模块为目标模块,无需对实现相同功能的模块进行重复开发,避免了开发资源的浪费。公用模块以及自定义模块的存在,能够有效降低后续的测试和维护成本。另外,基于预设流程执行器生成代码文件,无需考虑每个目标模块中的代码逻辑,在保证运行质量的同时还具备良好的兼容性和运行性。应用单元基于目标模块不同的来源,采用不同的方式能够对相应代码文件直接下载以运行。基于上述特点,本申请实施例提供的系统代码开发方法,能够有效缩短系统开发周期,进而提高系统开发效率。
在上述实施例的基础上,步骤S101中的目标模块可以由公用模块确定,具体可以是从包括有多个公用模块的预设模块库中确定,因而,从预设模块库中确定公用模块之前,本申请实施例提供的模块化系统代码开发方法还包流程设计单元创建预设模块库。图5为本申请实施例提供的另一种模块化系统代码开发方法的流程示意图,如图5所示,本实施例包括:
S201:根据预设业务需求按照预设统一格式生成对应的代码信息,以得到多个代码模块。
可以由开发人员提前根据一些预设业务需求按照预设统一格式开发对应的代码信息,从而得到多个代码模块。其中,预设业务需求可以是根据金融平台等领域中的任意业务属性提出的相应需求,以保证对应得到的代码模块具有较高的通用性。预设统一格式可以理解为针对所有的预设业务需求,在生成对应代码信息时均按照该预设统一格式进行代码开发,从而使得得到的多个代码模块均能够继承抽象类。
S202:对每个代码模块中的代码信息按照预设规范定义对应的初始化函数、阶段指征函数以及输出结果函数。
在每个代码模块都继承抽象类的情况下,对每个代码模块中的具体代码信息按照预设规范进行定义对应的初始化函数(init())、阶段指针函数(Next State)以及输出结果函数(proc())。其中,初始化函数用于实现数据的初始化、外部接口调用等内容。阶段指针函数用于实现不同代码模块之间的数据反馈,以满足业务流程的相应顺序。输出结果函数用于实现数据的结果处理,以表明对应的代码模块以执行结束。其中,预设规范可以是本实施例提供的上述各函数,但也可以根据实际工况设置为其他的内容,对此,本实施例不作限定。
S203:将定义后的每个代码模块进行图形化封装,以得到对应的公用模块。
进一步地,将按照预设规范定义后的每个代码模块进行图形化封装,从而得到对应的公用模块。其中,图形化封装可以理解为根据该代码模块对应的业务需求的属性特点将该代码模块进行图形化得以封装,以当在选用的公用模块时,只需根据业务流程选用相应的图形化模块即可。
S204:将每个公用模块对应的模块信息按照预设列表格式存储至预设模块库。
其中,模块信息至少包括模块名称信息、模块描述信息、模块路径信息以及条件字段信息。
在得到多个公用模块之后,为了方便流程设计单元根据业务流程的直接选用,可以将每个公用模块对应的模块信息按照预设列表格式存储至预设模块库,当流程设计单元设计整个业务流程对应的目标模块时,只需通过查询预设模块库,浏览预设模块库中各公用模块的模块信息,实现对公用模块的选用。表1为示例性列举的预设模块库的一部分,如表1所示,每个公用模块的模块信息可以包括有模块名称信息(Module Name)、模块描述信息(Module_Desc)、模块路径信息(Module Path),以及条件字段信息,例如注册者(Registrant)、创建时间(Created_Datetime)和更新时间(Modified_Datetime)等信息。
表1
Figure BDA0002805089140000171
参照表1所示,模块名称信息即为当前公用模块的名称,模块描述信息可以为该公用模块的中文描述,模块路径信息即该公用模块在流程设计单元中的存储路径,条件字段信息即为开发人员创建公用模块时根据实际情况所设置的一些相关信息。表1中的模块信息仅是示意性列举,在实际工况中,可以根据待开发业务中的业务属性进行设置,对此,本实施例不作限定。其中,预设列表格式所对应的具体格式可以根据模块信息所包括的内容进行确定,其目的为便于查询预设模块库以直接选用公用模块。
本申请实施例提供的模块化系统代码开发方法,在确定目标模块之前需流程设计单元生成公用模块,以创建预设模块库。首先根据预设业务需求按照预设统一格式生成对应的代码信息,得到多个代码模块。然后对每个代码模块中的代码信息按照预设规范定义对应的初始化函数、阶段指征函数以及输出结果函数。再将定义后的每个代码模块进行图形化封装,得到对应的公用模块。最后将每个公用模块对应的模块信息按照预设列表格式存储至预设模块库。当确定公用模块时,可以通过查询预设模块库进行直接选用。并且,开发人员还可以基于预设模块库对其中的公用模块进行维护,以保证每个公用模块的高质量。
上述实施例描述了流程设计单元执行的步骤,以及流程设计单元与服务单元和应用单元之间的交互以实现对待开发系统的代码开发。进一步地,以下实施例将对服务单元所执行的步骤进行详细描述。
在一种可能的设计中,步骤S104可能的实现方式如图6所示,图6为本申请实施例提供的再一种模块化系统代码开发方法的流程示意图,如图6所示,本实施例提供的服务单元基于预设流程执行器根据格式化报文信息生成代码文件,包括:
S301:根据业务流程对格式化报文信息进行预处理,以得到每个业务节点对应的目标数据;
S302:将各目标数据存储至预设源代码列表;
S303:基于预设流程执行器根据预设源代码列表生成对应的代码文件。
其中,每个目标数据包括对应的目标模块以及注解代码信息,注解代码信息用于对目标模块对应的相应信息进行标注。
换言之,服务单元在接收到格式化报文信息之后,根据业务流程对格式化报文信息进行预处理,解析出业务流程中各业务节点对应的目标模块以及该目标模块对应的注解代码信息(Autowired),从而得到每个业务节点对应的目标数据。其中,注解代码信息用于对目标模块对应的相关信息进行标注,以为该目标模块相关的所有信息创建对应关系,例如通过注解代码信息可以将目标模块所属业务节点的节点模块信息、节点模块信息中所包括的各信息以及该业务节点所属的业务流程的相关信息都建立对应关系,使得每个目标模块中的代码信息能够生成完成的代码文件。
在得到每个目标数据之后,进一步地,可将各目标数据存储至预设源代码列表(Row Code List),以使得服务单元基于预设流程执行器根据该预设源代码列表生成对应的代码文件,有利于规范代码文件的生成过程,进而提高系统代码的开发进程。
进一步地,图7示出了步骤S301的可能实现方式。图7为本申请实施例提供的又一种模块化系统代码开发方法的流程示意图,如图7所示,本实施例中服务单元根据业务流程对格式化报文信息进行预处理,得到每个业务节点对应的目标数据,包括:
S401:根据业务流程读取格式化报文信息,并通过预设注解算法将格式化报文信息转换为请求对象信息。
服务单元首先根据业务流程读取格式化报文信息,首先通过预设注解算法将格式化报文信息转换为服务单元可读的请求对象信息,其中预设注解算法可以是Spring Web应用程序中的@Request Mapping,即将格式化报文信息对应的HTTP请求映射至服务单元中的MVC和REST控制器中,得到服务单元可读的请求对象信息(Flow Request)。
S402:根据请求对象信息获取流程名称信息以及流程描述信息,以确定首个业务节点。
在得到服务单元内部可读的请求对象信息之后,根据请求对象信息获取格式化报文信息对应的业务流程的流程名称信息以及流程描述信息,以确定业务流程中的首个业务节点。首个业务节点即为业务流程中的第一个业务节点。
S403:根据首个业务节点对应的内容属性描述信息确定对应的注解代码信息,以得到对应的目标数据。
在确定了首个业务节点之后,即可根据该首个业务节点对应的节点模块信息中的内容属性描述信息为对应的当前目标模块进行注入,以得到注解代码信息,为当前目标模块相关的所有信息创建对应关系,从而确定了该首个业务节点对应的目标数据。
S404:通过当前业务节点对应的子节点描述信息确定下一个业务节点对应的目标数据,直到当前业务节点对应的子节点描述信息为空。
在确定了首个业务节点对应的目标数据之后,进一步地,通过该首个业务节点对应的节点模块信息中的子节点描述信息确定下一个业务节点对应的目标数据。可以理解的是,当子节点描述信息非空时,即表明相对于该业务节点,还存在下一个业务节点。
进而,可以根据步骤S403确定该下一个业务节点对应的节点模块信息中的内容属性信息,对于该下一个业务节点相对应的目标模块进行注入,以得到对应的注解代码信息,从而得到该下一个业务节点对应的目标数据。当子节点描述信息非空时,依次类推,重复步骤S403,从而通过当前业务节点对应的子节点描述信息可以确定下一个业务节点对应的目标数据。直到当前业务节点对应的子节点描述信息为空时,则表明该当前业务节点为业务流程中的最后一个业务节点,当前已完成格式化报文信息的整个预处理过程,得到了每个业务节点对应的目标数据。
本申请实施例提供的模块化系统代码开发方法,服务单元首先根据业务流程读取格式化化报文信息,通过预设注解算法将格式化报文信息进行转换,得到请求对象信息。然后根据请求对象信息获取业务流程的流程名称信息以及流程描述信息,以确定业务流程中的首个业务节点。进而根据该首个业务节点对应的内容属性描述信息确定对应注解代码信息,得到该首个业务节点对应的目标数据。进一步地,若当前业务节点对应的子节点描述信息非空,则可以通过当前业务节点对应的子节点描述信息确定下一个业务节点对应的目标数据,依次类推,直到当前业务节点对应的子节点描述信息为空,则表明完成对格式化报文信息进行预处理的整个过程,得到了每个业务节点对应的目标数据。从而为预设流程执行器生成代码文件提供了有利的数据依据,使得代码文件生成过程更为规范。
进一步地,服务单元基于预设流程执行器根据预设源代码列表生成对应的代码文件可能的实现方式包括:
运行预设流程执行器,以根据预设源代码列表确定业务流程对应的流程名称信息,得到可执行bean,以确定业务流程的入口。
预设流程执行器通过业务流程的入口依次对所有业务节点对应的各目标模块执行生成代码操作,以得到各业务节点对应的代码文件。
首先服务单元运行预设流程执行器,根据预设源代码列表确定业务流程的流程名称信息,将表示流程名称信息的首字母转换为小写,得到可执行bean,将其作为业务流程的入口,即确定首个业务节点对应的目标模块,即首个目标模块。其中,可以通过BeanFactory获得可执行bean,也可以根据底层框架相对应的相应工具获得,对此,本实施例不作限定。
在确定了业务流程的入口之后,预设流程执行器通过业务流程的入口依次对所有业务节点对应目标模块执行生成代码操作,以得到各业务节点对应的代码文件。
在上述实施例中,预设流程执行器依次对所有业务节点对应的各目标模块执行生成代码操作的实现方式如图8所示,图8为本申请实施例提供的又一种模块化系统代码开发方法的流程示意图,如图8所示,本实施例中预设流程执行器通过业务流程的入口依次对所有业务节点对应的各目标模块执行生成代码操作,包括:
S501:预设流程执行器对首个目标模块执行生成代码操作,并在执行完对应的输出结果函数之后,首个目标模块将自身对应的阶段指征函数反馈至预设流程执行器。
预设流程执行器首先对首个目标模块执行生成代码操作,其中,执行生成代码操作的过程可以为依次执行首个目标模块对应的代码信息中的初始化函数、阶段指征函数以及输出结果函数,也可以根据目标模块具体的代码信息对应的内容进行,即预设的标准模式进行,对此本实施例不作限定,其目的为将目标模块对应的代码信息生成对应的代码文件。
在执行完首个目标模块对应的输出结果函数之后,该首个目标模块将其自身对应的阶段指征函数反馈给预设流程执行器,使得预设流程执行器根据阶段指征函数从该目标模块流转至下一个目标模块,以执行步骤S602。
S502:预设流程执行器对阶段指征函数指示的下一个业务节点对应的目标模块执行生成代码操作。
预设流程执行器响应阶段指征函数,以对阶段指征函数指示的下一个业务节点对应的目标模块,即下一个目标模块执行生成代码操作。具体的内容与步骤S501相类似,在此不再赘述。
S503:直到当前目标模块未向预设流程执行器反馈阶段指征函数,或者预设流程执行器接收到结束指征函数,所有业务节点对应的生成代码操作结束。
每个目标模块在执行完输出结果函数之后,若当前目标模块对应的业务节点还存在下一个业务节点,则都会将自身的阶段指征函数反馈给预设流程执行器,以使预设流程执行器继续执行步骤S502,依次完成对所有业务节点的生成代码操作。
相反地,若当前目标模块在执行完输出结果之后,未向预设流程执行器反馈自身的阶段指征函数,则表明当前目标模块对应的业务节点为业务流程中的最后一个业务节点,预设流程执行器已对所有业务节点完成生成代码操作,即所有业务节点对应的生产代码操作结束。
示例性地,预设流程执行器在执行完当前目标模块的输出结果函数之后,当前目标模块还可以向预设流程执行器发送结束指征函数,以通过结束指征函数表征当前目标模块对应的业务节点为业务流程中的最后一个。换言之,预设流程执行器在接收到结束指征函数,表明所有业务节点对应的生成代码操作结束。
本申请实施例提供的模块化系统代码开发方法,服务单元中的预设流程执行器首先对首个目标模块执行生成代码操作,并在执行完对应的输出结果函数之后,该首个目标模块将自身对应的阶段指征函数反馈给预设流程执行器,以使预设流程执行器根据阶段指征函数对其所指示的下一个业务节点对应的目标函数执行生成代码操作。依次类推,直到当前目标模块未向预设流程执行器反馈阶段指征函数,或者预设流程执行器接收到当前目标模块发送的结束指征函数,则表明已完成对所有业务节点对应的各目标模块的执行生成代码操作,即所有业务节点对应的生成代码操作结束。本实施例提供的通过预设执行器生成代码操作,其中预设执行器只需按照预设的标准模式对业务流程中的每个目标模块依次执行生成代码操作即可,无需考虑每个目标模块中代码信息的代码逻辑,从而可以保证生成的代码文件在运行环境具有良好的兼容性和运行性。
下述为本申请装置实施例,可以用于执行本申请对应的方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请对应的方法实施例。
图9为本申请实施例提供的一种模块化系统代码开发装置的结构示意图,如图9所示,本实施例提供的模块化系统代码开发装置300,包括:
处理模块301,用于根据待开发系统的业务需求以及业务流程确定目标模块。
其中,目标模块用于表征业务流程中业务节点对应的代码信息。
生成模块302,用于根据业务流程以及目标模块生成对应的格式化报文信息。
其中,格式化报文信息通过预设编程语言描述业务流程和目标模块。
发送模块303,用于发送格式化报文信息至服务单元。
在一种可能的设计中,处理模块301,具体用于:
根据业务需求以及业务流程从预设模块库中确定公用模块,以将公用模块确定为目标模块,预设模块库中包括多个公用模块。
当业务节点包括差异性业务属性,处理模块301,还具体用于:
生成空白模块,并根据差异性业务属性对空白模块进行代码编辑,得到自定义模块以及对应的模块信息;
将自定义模块确定为目标模块,自定义模块中的代码信息用于表征对应业务节点的差异性业务属性。
在一种可能的设计中,处理模块301,还用于:
根据预设业务需求按照预设统一格式生成对应的代码信息,以得到多个代码模块;
对每个代码模块中的代码信息按照预设规范定义对应的初始化函数、阶段指征函数以及输出结果函数;
将定义后的每个代码模块进行图形化封装,以得到对应的公用模块;
将每个公用模块对应的模块信息按照预设列表格式存储至预设模块库,模块信息至少包括模块名称信息、模块描述信息、模块路径信息以及条件字段信息。
在一种可能的设计中,生成模块302,具体用于:
根据业务流程中每个业务节点以及对应的目标模块生成格式化报文信息,格式化报文信息包括业务流程的流程名称信息、流程代码路径信息、流程描述信息以及节点模块信息;
其中,节点模块信息包括业务节点的类型信息、内容属性描述信息以及子节点描述信息,内容属性描述信息用于描述与业务节点对应的目标模块。
值得说明的,上述实施例提供的模块化系统代码开发装置,可用于执行上述任一实施例提供的模块化系统代码开发方法中流程设计单元侧的步骤,具体实现方式和技术效果类似,这里不再赘述。
图10为本申请实施例提供的另一种模块化系统代码开发装置的结构示意图,如图10所示,本实施例提供的模块化系统代码开发装置400,包括:
接收模块401,用于接收流程设计单元发送的格式化报文信息。
格式化报文信息包括待开发系统中业务流程的流程名称信息、流程代码路径信息、流程描述信息以及节点模块信息,节点模块信息包括业务节点的类型信息、内容属性描述信息以及子节点描述信息;
生成模块402,用于基于预设流程执行器根据格式化报文信息生成代码文件,以完成对待开发系统的代码开发。
在图10所示实施例的基础上,图11为本申请实施例提供的一种生成模块的结构示意图,如图11所示,本实施例提供的生成模块402,包括:
预处理子模块4021,用于根据业务流程对格式化报文信息进行预处理,以得到每个业务节点对应的目标数据;
存储子模块4022,用于将各目标数据存储至预设源代码列表,每个目标数据包括对应的目标模块以及注解代码信息,注解代码信息用于对目标模块对应的相应信息进行标注;
生成子模块4023,用于基于预设流程执行器根据预设源代码列表生成对应的代码文件。
在一种可能的设计中,预处理子模块4021,具体用于:
根据业务流程读取格式化报文信息,并通过预设注解算法将格式化报文信息转换为请求对象信息;
根据请求对象信息获取流程名称信息以及流程描述信息,以确定首个业务节点;
根据首个业务节点对应的内容属性描述信息确定对应的注解代码信息,以得到对应的目标数据;
通过当前业务节点对应的子节点描述信息确定下一个业务节点对应的目标数据,直到当前业务节点对应的子节点描述信息为空。
在一种可能的设计中,生成子模块4023,具体用于:
运行预设流程执行器,以根据预设源代码列表确定业务流程的流程名称信息,得到可执行bean,以确定业务流程的入口;
预设流程执行器通过业务流程的入口依次对所有业务节点对应的各目标模块执行生成代码操作,以得到各业务节点对应的代码文件。
在一种可能的设计中,生成子模块4023,还具有用于:
预设流程执行器对首个目标模块执行生成代码操作,并在执行完对应的输出结果函数之后,首个目标模块将自身对应的阶段指征函数反馈至预设流程执行器;
预设流程执行器对阶段指征函数指示的下一个业务节点对应的目标模块执行生成代码操作;
直到当前目标模块未向预设流程执行器反馈阶段指征函数,或者预设流程执行器接收到结束指征函数,所有业务节点对应的生成代码操作结束。
值得说明的,上述图10和图11以及可选的实施例提供的模块化系统代码开发装置,可用于执行上述任一实施例提供的模块化系统代码开发方法中服务单元侧的步骤,具体实现方式和技术效果类似,这里不再赘述。
图12为本申请实施例提供的再一种模块化系统代码开发装置的结构示意图,如图12所示,本实施例提供的模块化系统代码开发装置500,包括:调用模块501,用于:
当目标模块的来源为公用模块,通过预设链接引用预设数据包的方式从服务单元调用对应的代码文件,预设数据包包括公用模块对应的代码信息;和/或
当目标模块的来源为自定义模块,生成自定义文件,以根据自定义文件从服务单元调用对应的代码文件,自定义文件包括各自定义模块对应的代码信息。
值得说明的,图12实施例提供的模块化系统代码开发装置,可用于执行上述实施例提供的模块化系统代码开发方法中应用单元单元侧的步骤,具体实现方式和技术效果类似,这里不再赘述。
本申请所提供的上述各装置实施例仅仅是示意性的,其中的模块划分仅仅是一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个模块可以结合或者可以集成到另一个系统。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。
图13为本申请实施例提供的一种电子设备的结构示意图,如图13所示,本实施例提供的电子设备600,包括:
处理器601;以及
与处理器601通信连接的存储器602;其中,
存储器602存储有可被处理器601执行的指令,指令被处理器601执行,以使处理器601能够执行上述方法实施例中的流程设计单元侧的模块化系统代码开发方法的各个步骤,具体可以参考前述方法实施例中的相关描述。
可选地,存储器602既可以是独立的,也可以跟处理器601集成在一起。
当存储器602是独立于处理器601之外的器件时,电子设备600,还可以包括:
总线603,用于连接处理器601以及存储器602。
此外,本申请实施例还提供一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行上述各实施例中流程设计单元侧的模块化系统代码开发方法的各个步骤。例如,可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图14为本申请实施例提供的另一种电子设备的结构示意图,如图14所示,本实施例提供的电子设备700,包括:
处理器701;以及
与处理器701通信连接的存储器702;其中,
存储器702存储有可被处理器701执行的指令,指令被处理器701执行,以使处理器701能够执行上述方法实施例中的服务单元侧的模块化系统代码开发方法的各个步骤,具体可以参考前述方法实施例中的相关描述。
可选地,存储器702既可以是独立的,也可以跟处理器701集成在一起。
当存储器702是独立于处理器701之外的器件时,电子设备700,还可以包括:
总线703,用于连接处理器701以及存储器702。
此外,本申请实施例还提供一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行上述各实施例中服务单元侧的模块化系统代码开发方法的各个步骤。例如,可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图15为本申请实施例提供的再一种电子设备的结构示意图,如图15所示,本实施例提供的电子设备800,包括:
处理器801;以及
与处理器801通信连接的存储器802;其中,
存储器802存储有可被处理器801执行的指令,指令被处理器801执行,以使处理器801能够执行上述方法实施例中的应用单元侧的模块化系统代码开发方法的各个步骤,具体可以参考前述方法实施例中的相关描述。
可选地,存储器802既可以是独立的,也可以跟处理器801集成在一起。
当存储器802是独立于处理器801之外的器件时,电子设备800,还可以包括:
总线803,用于连接处理器801以及存储器802。
此外,本申请实施例还提供一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行上述各实施例中应用单元侧的模块化系统代码开发方法的各个步骤。例如,可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (18)

1.一种模块化系统代码开发方法,其特征在于,包括:
根据待开发系统的业务需求以及业务流程确定目标模块,所述目标模块用于表征所述业务流程中业务节点对应的代码信息;
根据所述业务流程以及所述目标模块生成对应的格式化报文信息,所述格式化报文信息通过预设编程语言描述所述业务流程和所述目标模块;
发送所述格式化报文信息至服务单元。
2.根据权利要求1所述的模块化系统代码开发方法,其特征在于,所述根据待开发系统的业务需求以及业务流程确定目标模块,包括:
根据所述业务需求以及所述业务流程从预设模块库中确定公用模块,以将所述公用模块确定为所述目标模块,所述预设模块库中包括多个所述公用模块。
3.根据权利要求2所述的模块化系统代码开发方法,其特征在于,当所述业务节点包括差异性业务属性,所述方法还包括:
生成空白模块,并根据所述差异性业务属性对所述空白模块进行代码编辑,得到自定义模块以及对应的模块信息;
将所述自定义模块确定为所述目标模块,所述自定义模块中的代码信息用于表征对应业务节点的所述差异性业务属性。
4.根据权利要求2所述的模块化系统代码开发方法,其特征在于,在所述根据所述业务需求以及所述业务流程从预设模块库中确定公用模块之前,还包括:
根据预设业务需求按照预设统一格式生成对应的代码信息,以得到多个代码模块;
对每个代码模块中的代码信息按照预设规范定义对应的初始化函数、阶段指征函数以及输出结果函数;
将定义后的每个代码模块进行图形化封装,以得到对应的公用模块;
将每个公用模块对应的模块信息按照预设列表格式存储至预设模块库,所述模块信息至少包括模块名称信息、模块描述信息、模块路径信息以及条件字段信息。
5.根据权利要求1-4任一项所述的模块化系统代码开发方法,其特征在于,所述根据所述业务流程以及所述目标模块生成对应的格式化报文信息,包括:
根据所述业务流程中每个业务节点以及对应的所述目标模块生成所述格式化报文信息,所述格式化报文信息包括所述业务流程的流程名称信息、流程代码路径信息、流程描述信息以及节点模块信息;
其中,所述节点模块信息包括所述业务节点的类型信息、内容属性描述信息以及子节点描述信息,所述内容属性描述信息用于描述与所述业务节点对应的所述目标模块。
6.一种模块化系统代码开发方法,其特征在于,包括:
接收流程设计单元发送的格式化报文信息,所述格式化报文信息包括待开发系统中业务流程的流程名称信息、流程代码路径信息、流程描述信息以及节点模块信息,所述节点模块信息包括业务节点的类型信息、内容属性描述信息以及子节点描述信息;
基于预设流程执行器根据所述格式化报文信息生成代码文件,以完成对所述待开发系统的代码开发。
7.根据权利要求6所述的模块化系统代码开发方法,其特征在于,所述基于预设流程执行器根据所述格式化报文信息生成代码文件,包括:
根据所述业务流程对所述格式化报文信息进行预处理,以得到每个业务节点对应的目标数据;
将各目标数据存储至预设源代码列表,每个目标数据包括对应的目标模块以及注解代码信息,所述注解代码信息用于对所述目标模块对应的相应信息进行标注;
基于所述预设流程执行器根据所述预设源代码列表生成对应的所述代码文件。
8.根据权利要求7所述的模块化系统代码开发方法,其特征在于,所述根据所述业务流程对所述格式化报文信息进行预处理,以得到每个业务节点对应的目标数据,包括:
根据所述业务流程读取所述格式化报文信息,并通过预设注解算法将所述格式化报文信息转换为请求对象信息;
根据所述请求对象信息获取所述流程名称信息以及所述流程描述信息,以确定首个业务节点;
根据所述首个业务节点对应的所述内容属性描述信息确定对应的所述注解代码信息,以得到对应的所述目标数据;
通过当前业务节点对应的所述子节点描述信息确定下一个业务节点对应的目标数据,直到所述当前业务节点对应的所述子节点描述信息为空。
9.根据权利要求8所述的模块化系统代码开发方法,其特征在于,所述基于所述预设流程执行器根据所述预设源代码列表生成对应的所述代码文件,包括:
运行所述预设流程执行器,以根据所述预设源代码列表确定所述业务流程的所述流程名称信息,得到可执行bean,以确定所述业务流程的入口;
所述预设流程执行器通过所述业务流程的入口依次对所有业务节点对应的各目标模块执行生成代码操作,以得到各业务节点对应的所述代码文件。
10.根据权利要求9所述的模块化系统代码开发方法,其特征在于,所述预设流程执行器通过所述业务流程的入口依次对所有业务节点对应的各目标模块执行生成代码操作,包括:
所述预设流程执行器对首个目标模块执行生成代码操作,并在执行完对应的输出结果函数之后,所述首个目标模块将自身对应的阶段指征函数反馈至所述预设流程执行器;
所述预设流程执行器对所述阶段指征函数指示的下一个业务节点对应的所述目标模块执行生成代码操作;
直到当前目标模块未向所述预设流程执行器反馈所述阶段指征函数,或者所述预设流程执行器接收到结束指征函数,所有业务节点对应的生成代码操作结束。
11.一种模块化系统代码开发方法,其特征在于,包括:
当目标模块的来源为公用模块,通过预设链接引用预设数据包的方式从服务单元调用对应的代码文件,所述预设数据包包括所述公用模块对应的代码信息;和/或
当目标模块的来源为自定义模块,生成自定义文件,以根据所述自定义文件从服务单元调用对应的代码文件,所述自定义文件包括各自定义模块对应的代码信息。
12.一种模块化系统代码开发装置,其特征在于,包括:
处理模块,用于根据待开发系统的业务需求以及业务流程确定目标模块,所述目标模块用于表征所述业务流程中业务节点对应的代码信息;
生成模块,用于根据所述业务流程以及所述目标模块生成对应的格式化报文信息,所述格式化报文信息通过预设编程语言描述所述业务流程和所述目标模块;
发送模块,用于发送所述格式化报文信息至服务单元。
13.一种模块化系统代码开发装置,其特征在于,包括:
接收模块,用于接收流程设计单元发送的格式化报文信息,所述格式化报文信息包括待开发系统中业务流程的流程名称信息、流程代码路径信息、流程描述信息以及节点模块信息,所述节点模块信息包括业务节点的类型信息、内容属性描述信息以及子节点描述信息;
生成模块,用于基于预设流程执行器根据所述格式化报文信息生成代码文件,以完成对所述待开发系统的代码开发。
14.一种模块化系统代码开发装置,其特征在于,包括:调用模块;所述调用模块用于:
当目标模块的来源为公用模块,通过预设链接引用预设数据包的方式从服务单元调用对应的代码文件,所述预设数据包包括所述公用模块对应的代码信息;和/或
当目标模块的来源为自定义模块,生成自定义文件,以根据所述自定义文件从服务单元调用对应的代码文件,所述自定义文件包括各自定义模块对应的代码信息。
15.一种电子设备,其特征在于,包括:
处理器;以及
与所述处理器通信连接的存储器;其中,存储器存储有可被所述处理器执行的指令,指令被所述处理器执行,以使所述处理器能够执行权利要求1-5中任一项所述的模块化系统代码开发方法。
16.一种电子设备,其特征在于,包括:
处理器;以及
与所述处理器通信连接的存储器;其中,存储器存储有可被所述处理器执行的指令,指令被所述处理器执行,以使所述处理器能够执行权利要求6-10中任一项所述的模块化系统代码开发方法。
17.一种电子设备,其特征在于,包括:
处理器;以及
与所述处理器通信连接的存储器;其中,存储器存储有可被所述处理器执行的指令,指令被所述处理器执行,以使所述处理器能够执行权利要求11所述的模块化系统代码开发方法。
18.一种模块化系统代码开发系统,其特征在于,包括:
流程设计单元,包括如权利要求12所述的模块化系统代码开发装置;
服务单元,包括如权利要求13所述的模块化系统代码开发装置;
应用单元,包括如权利要求14所述的模块化系统代码开发装置;
其中,所述服务单元分别与所述流程设计单元和所述应用单元通信连接。
CN202011364744.3A 2020-11-27 2020-11-27 模块化系统代码开发方法、装置、设备及系统 Pending CN112433722A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011364744.3A CN112433722A (zh) 2020-11-27 2020-11-27 模块化系统代码开发方法、装置、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011364744.3A CN112433722A (zh) 2020-11-27 2020-11-27 模块化系统代码开发方法、装置、设备及系统

Publications (1)

Publication Number Publication Date
CN112433722A true CN112433722A (zh) 2021-03-02

Family

ID=74698745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011364744.3A Pending CN112433722A (zh) 2020-11-27 2020-11-27 模块化系统代码开发方法、装置、设备及系统

Country Status (1)

Country Link
CN (1) CN112433722A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113159723A (zh) * 2021-04-27 2021-07-23 中国工商银行股份有限公司 一种实现业务流程可视化配置的方法及装置
CN113282282A (zh) * 2021-05-31 2021-08-20 平安国际智慧城市科技股份有限公司 业务需求表单发布方法、装置、电子设备及存储介质
CN114461296A (zh) * 2021-12-29 2022-05-10 天翼云科技有限公司 基于Openresty的服务平台开发及访问方法
CN114527974A (zh) * 2022-02-28 2022-05-24 上海数禾信息科技有限公司 软件产品的业务功能实现方法、装置和计算机设备

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113159723A (zh) * 2021-04-27 2021-07-23 中国工商银行股份有限公司 一种实现业务流程可视化配置的方法及装置
CN113282282A (zh) * 2021-05-31 2021-08-20 平安国际智慧城市科技股份有限公司 业务需求表单发布方法、装置、电子设备及存储介质
CN113282282B (zh) * 2021-05-31 2022-05-06 深圳赛安特技术服务有限公司 业务需求表单发布方法、装置、电子设备及存储介质
CN114461296A (zh) * 2021-12-29 2022-05-10 天翼云科技有限公司 基于Openresty的服务平台开发及访问方法
CN114461296B (zh) * 2021-12-29 2024-01-02 天翼云科技有限公司 基于Openresty的服务平台开发及访问方法
CN114527974A (zh) * 2022-02-28 2022-05-24 上海数禾信息科技有限公司 软件产品的业务功能实现方法、装置和计算机设备
CN114527974B (zh) * 2022-02-28 2024-02-02 上海数禾信息科技有限公司 软件产品的业务功能实现方法、装置和计算机设备

Similar Documents

Publication Publication Date Title
CN112433722A (zh) 模块化系统代码开发方法、装置、设备及系统
CN108845940B (zh) 一种企业级信息系统自动化功能测试方法和系统
US20060265469A1 (en) XML based scripting framework, and methods of providing automated interactions with remote systems
US10140098B2 (en) Code generation
CN102395950A (zh) 与数据存储系统的通信
CN110543328A (zh) 基于Ambari的跨平台组件管理方法、系统、终端及存储介质
CN110928548B (zh) 一种数据处理方法以及设备
CN115065652B (zh) 消息回复方法、装置、存储介质及计算机设备
CN111026634A (zh) 一种接口自动化测试系统、方法、装置及存储介质
Gómez et al. A model-based approach for developing event-driven architectures with asyncapi
CN112083926A (zh) 一种Web用户界面生成方法及装置
CN113296742A (zh) App数据处理方法、装置及移动终端
CN111488144A (zh) 一种数据处理方法以及设备
CN105933396B (zh) 一种协同各渠道系统接口实现长流程的方法及系统
CN110018831A (zh) 程序处理方法、装置及相关产品
CN115934093A (zh) 小程序跨端应用方法、相关装置及计算机存储介质
CN113485942A (zh) 一种基于独立模块的自动化测试方法及装置
CN111309319B (zh) 可继承的局数据动态页面配置方法和装置
CN114416305A (zh) 一种机器人引擎实现方法、系统及电子设备
CN112685043A (zh) 回调函数的异步转化方法、装置、设备及可读存储介质
Dalibor et al. Tagging Model Properties for Flexible Communication.
CN112487170A (zh) 面向场景配置的人机交互对话机器人系统
Strassburger et al. Applying CSPI reference models for factory planning
KR101398959B1 (ko) 플러그인을 이용한 인터페이스 방법 및 장치
CN117591104B (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