CN111427578A - 一种数据转换方法、装置及设备 - Google Patents
一种数据转换方法、装置及设备 Download PDFInfo
- Publication number
- CN111427578A CN111427578A CN202010296766.4A CN202010296766A CN111427578A CN 111427578 A CN111427578 A CN 111427578A CN 202010296766 A CN202010296766 A CN 202010296766A CN 111427578 A CN111427578 A CN 111427578A
- Authority
- CN
- China
- Prior art keywords
- level node
- main body
- class
- level
- source 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种数据转换方法,该方法在获取待转换有向图之后,可以先对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息,其中,所述目标业务信息反映了所述待转换有向图的业务处理逻辑;接着,可以根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码。可见,本发明可以根据有向图生成目标编程语言源码,即实现了通过将业务系统基于有向图建模,进而根据有向图确定业务系统对应的目标编程语言源码,这样,提升了业务系统开发的灵活度,以及实现了业务系统编码的可复用性,从而便可以基于业务系统对应的有向图生成目标编程语言源码,而不再需要开发人员手动编写所有程序,进而提高了业务系统的开发效率。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种数据转换方法、装置及设备。
背景技术
随着IT信息化的蓬勃发展,各行各业信息系统数量及规模爆炸式增长,业务流程越来越复杂,系统可用性及性能要求越来越高,企业技术团队在保证业务系统的业务连续性、可靠性、敏捷性及高性能等指标的同时,更重要的是控制成本和研发周期。
而传统的业务系统开发方式是需要开发人员手动编写所有程序,完全由程序开发人员重头编码,但是,如果每个系统都需要完全手动编码,会导致业务系统的开发效率比较低下。由于大多数公司开发的程序中常常具有很多共性,,但现有技术不能解决多项目同时开发的问题,故此,如何利用这些共性提高业务系统的开发效率是当前亟待解决的技术难点。
发明内容
本发明提供一种数据转换方法及装置,以提升业务系统开发的灵活度,以及实现了业务系统编码的可复用性,从而提高业务系统的开发效率。
第一方面,本发明提供了一种数据转换方法,所述方法包括:
获取待转换有向图;
对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息;其中,所述目标业务信息反映了所述待转换有向图的业务处理逻辑;
根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码。
第二方面,本发明提供了一种数据转换装置,所述装置包括:
获取模块,用于获取待转换有向图;
有向图解析模块,用于对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息;其中,所述目标业务信息反映了所述待转换有向图的业务处理逻辑;
源码生成模块,用于根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码。
第三方面,本发明提供了一种可读介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述电子设备执行如第一方面中任一所述的方法。
第四方面,本发明提供了一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如第一方面中任一所述的方法。
由上述技术方案可以看出,本发明获取待转换有向图之后,可以先对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息,其中,所述目标业务信息反映了所述待转换有向图的业务处理逻辑;接着,可以根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码。可见,本发明可以根据有向图生成目标编程语言源码,即实现了通过将业务系统基于有向图建模,进而根据有向图确定业务系统对应的目标编程语言源码,这样,提升了业务系统开发的灵活度,以及实现了业务系统编码的可复用性,从而便可以基于业务系统对应的有向图生成目标编程语言源码,而不再需要开发人员手动编写所有程序,也可以避免由于人工手动编写程序所导致的程序编写错误问题,进而提高了业务系统的开发效率。
上述的非惯用的优选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
为了更清楚地说明本发明实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种示例性应用场景的框架示意图;
图2为本发明一实施例提供的一种数据转换方法的流程示意图;
图3A为本发明一实施例提供的一种Step有向图的示意图;
图3B为本发明一实施例提供的一种Node有向图的示意图;
图4为本发明一实施例提供的一种数据转换系统的结构示意图;
图5为本发明一实施例提供的一种数据转换系统的结构示意图
图6A为本发明一实施例提供的一种二维有向图中的Step有向图的示意图;
图6B为本发明一实施例提供的一种二维有向图中的Node有向图的示意图;
图7为本发明一实施例提供的一种数据转换装置的结构示意图;
图8为本发明一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决传统的业务系统开发方式由于需要开发人员手动编写所有程序,导致业务系统的开发效率低下的问题。本发明提供了一种数据转换方法,所述方法在获取待转换有向图之后,可以先对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息,其中,所述目标业务信息反映了所述待转换有向图的业务处理逻辑;接着,可以根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码。可见,本发明可以根据有向图生成目标编程语言源码,即实现了通过将业务系统基于有向图建模,进而根据有向图确定业务系统对应的目标编程语言源码,这样,提升了业务系统开发的灵活度,以及实现了业务系统编码的可复用性,从而便可以基于业务系统对应的有向图生成目标编程语言源码,而不再需要开发人员手动编写所有程序,也可以避免由于人工手动编写程序所导致的程序编写错误问题,进而提高了业务系统的开发效率。
举例说明,本发明实施例可以应用到如图1所示的场景。在该场景中,包括终端101和服务器102;其中,终端101可以为具有通信功能的终端,例如,可以为智能手机、平板电脑、台式电脑、笔记本电脑等终端设备,可以理解的是,终端101还可以为其他终端设备,在本实施例中对此不进行限定。
在本场景中,终端101可以响应源码获取指令,将源码获取指令对应的待转换有向图和目标编程语言向服务器102发送。服务器102获取待转换有向图和目标编程语言之后,可以先对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息;然后,服务器102可以根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码;接着,服务器102可以将该目标编程语言源码返回至终端101,以便终端101根据该目标编程语言源码进行后续处理。可见,本发明服务器102可以根据有向图生成目标编程语言源码,即实现了通过将业务系统基于有向图建模,进而根据有向图确定业务系统对应的目标编程语言源码,这样,提升了业务系统开发的灵活度,以及实现了业务系统编码的可复用性,从而便可以基于业务系统对应的有向图生成目标编程语言源码,而不再需要开发人员手动编写所有程序,也可以避免由于人工手动编写程序所导致的程序编写错误问题,进而提高了业务系统的开发效率。
可以理解的是,在上述应用场景中,虽然将本发明实施方式的部分动作描述为由终端101执行,部分动作由服务器102执行,但是这些动作也可以全部由终端101或者服务器102执行。本发明在执行主体方面不受限制,只要执行了本发明实施方式所公开的动作即可。
需要注意的是,上述应用场景仅是为了便于理解本申请而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
下面结合附图,详细说明本发明的各种非限制性实施方式。
参见图2,示出了本发明实施例中的一种数据转换方法,该数据转换方法具体为有向图转换为编程语言源码的方法。在本实施例中,所述方法例如可以包括以下步骤:
S201:获取待转换有向图。
在本实施例中,待转换有向图可以理解为需要进行数据转换的有向图,即需要转换为编程语言源码的有向图。需要说明的是,待处理有向图可以是一维有向图,也可以是二维有向图,还可以是其他维度有向图,具体地,一维有向图是扁平化的有向图,其只有一层结构,类似于编程语言中的一维数组a[],而二维有向图有两层结构,比如可以包括Step、Node两层结构,类似于编程语言中的二维数组a[][]。在本实施例中,将主要以待处理有向图为二维有向图进行介绍说明。
二维有向图可以包括若干个第一级节点,且各个第一级节点分别包括若干个第二级节点,举例说明,第一级节点可以为业务节点,比如step节点,第二级节点可以为第一级节点的下一级节点,可以为技术节点,比如node节点。可以理解的是,第一级节点为业务场景逻辑处理的业务流程节点,第二级节点为一业务流程节点对应的业务逻辑技术实现节点。
接下来,结合图3A和图3B举例说明,如图3A和图3B为业务场景二维有向图(业务场景逻辑处理流程图),具体由Step有向图和Node有向图构成二维结构。其中,业务场景可以理解为可向外暴露的业务逻辑单元,即实现一种业务的逻辑处理,一个业务系统中通常包含多个业务场景,比如支付系统包含汇兑往帐、来帐接收、来帐清分、往帐查询、来帐查询等业务场景。Step有向图为粗粒度业务逻辑有向图,粗粒度业务逻辑是指一个业务场景逻辑处理的骨架流程,比如,Step有向图为购物下单业务场景的有向图,其的骨架流程为:创建订单->订单支付->订单出库,也就是说,Step有向图包括三个第一级节点(创建订单、订单支付、订单出库),第一级节点(即Step节点)可以理解为Step有向图中的流程节点;Node有向图为细粒度业务逻辑有向图,细粒度业务逻辑是相对应粗粒度业务逻辑的一个概念,本实施例中的细粒度业务逻辑是指Step有向图中每个节点的处理逻辑,Node有向图中的第二级节点(即Node节点)可以理解为Node有向图中的流程节点,比如上述例子中的“创建订单”具体的实现逻辑,对应一Node有向图。具体地,图3A对应的Step有向图为购买积存金业务场景的有向图,其包括五个第一级节点(即step节点),分别为拆请求报文节点、检查账户有效性节点、购买积存金节点、异常处理节点和拼响应报文节点,其中,图3B为对应Step有向图中的购买积存金节点的Node有向图,该Node有向图包括五个第二级节点(即node节点),分别为开始节点、默认逻辑错误委托节点、扣款节点、冲正节点、异常结束节点和正常结束节点,可以理解的是,这五个第二级节点为第一级节点“购买积存金节点”对应的第二级节点。其中,第一级节点之间的连接关系可以理解为第一级节点之间的先后连接关系,例如,图3A中的“购买积存金”节点与“异常处理”节点之间具有先后连接关系,“购买积存金”节点与“拼响应报文”节点之间也具有先后连接关系;第二级节点之间的连接关系可以理解为第二级节点之间的先后连接关系,例如,图3B中的“开始”节点与“默认逻辑错误委托”节点之间具有先后连接关系;第一级节点包括的各个第二级节点之间的连接关系可以理解为第一级节点与其对应的第二级节点之间的对应关系,例如图3B中的五个第二级节点为第一级节点“购买积存金节点”对应的第二级节点,即这五个第二级节点与第一级节点“购买积存金节点”之间的连接关系为第一级节点包括的各个第二级节点之间的连接关系。
作为一种示例,S201的实现方式可以为:先获取源码获取指令,其中,源码获取指令可以包括待转换有向图和目标编程语言,该目标编程语言可以理解为待转换有向图需要转换为的数据所对应的编程语言类型,比如,待转换有向图可以为一个格式为xml、json或者yaml格式的业务场景二维有向图,目标编程语言为Java语言或者Python语言;接着,可以响应源码获取指令,获取该源码获取指令对应的待转换有向图和目标编程语言;紧接着,根据该目标编程语言对该待转换有向图进行后续处理。即本实施例中,可以先获取待转换有向图和目标编程语言。
S202:对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息。
其中,目标业务信息为待转换有向图对应的业务信息,业务信息可以理解为能够反映有向图对应的业务处理逻辑的信息,即所述目标业务信息反映了所述待转换有向图的业务处理逻辑(即业务的名称信息以及业务处理流程)。
在一种实现方式中,目标业务信息可以包括业务场景类主体信息以及第一级节点类集合;需要说明的是,在一种实现方式中,如图4所示,目标业务信息的形式可以为业务场景模型。业务场景类主体信息为与业务场景相关的信息,比如可以包括场景元数据(例如名称、描述、作者等)、控制标志位数据。第一级节点类集合可以为该待转换有向图中所有第一级节点各自对应的业务组件的信息集合,其中,业务组件可以理解为粗粒度的功能单元,实现可复用的通用业务功能逻辑,即业务组件是包括业务逻辑的、且由若干个技术组件组合形成携带有业务的可复用组件,比如支付类的登记大额支付数据、获取大额支付数据等组件;在一种实现方式中,如图4所示,第一级节点类集合的形式可以为Step扁平化列表,且Step扁平化列表中每个第一级节点(即Step节点)各自分别对应一个step模型,且不同第一级节点对应的step模型不同。
所述第一级节点类集合可以包括所述若干个第一级节点各自分别对应的第一级节点类主体信息以及第二级节点类集合,其中,在一种实现方式中,如图4所示,第一级节点各自分别对应的第一级节点类主体信息以及第二级节点类集合的形式可以为step模型。第一级节点类主体信息为可以为与第一级节点相关的信息,比如可以包括Step元数据(名称、编号、描述)、Step关系数据(各个连线出口连接的下一个Step编号)及控制标志位数据。第一级节点对应的第二级节点类集合可以为第一级节点对应的具体技术实现逻辑信息,具体地,可以为第一级节点对应的所有第二级节点各自对应的技术组件的信息集合,其中,技术组件可以理解为细颗粒的功能单元,通常可以与具体业务解耦,实现可复用的基础性功能逻辑(需要通过编写代码实现),比如文件操作类的技术组件包含文件创建、文件删除、内容写入、内容读取、文件压缩、文件加解密等组件;在一种实现方式中,如图4所示,第二级节点类集合的形式可以为Node扁平化列表,且Node扁平化列表中每个第二级节点(即Node节点)各自分别对应一个Node模型,且不同第二级节点对应的Node模型不同。
第二级节点类集合可以包括若干个第二级节点各自分别对应的第二级节点类主体信息;第二级节点类主体信息为可以为与第二级节点相关的信息,比如可以包括Node元数据(名称、编号、描述)、入参出参列表、Node关系数据(各个连线出口连接的下一个Node编号)及控制标志位数据。其中,在一种实现方式中,如图4所示,第二级节点对应的第二级节点类主体信息的形式可以为Node模型。
在本实施例中,获取到待转换有向图之后,可以先对待转换有向图进行解析,以得到所述待转换有向图对应的目标业务信息。例如,如图5所示,当有向图编译器获取到待转换有向图之后,可以通过有向图编译器中的有向图解析器对该待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息。
作为一种示例,可以先确定所述待转换有向图中的第一级节点、各个第一级节点包括的第二级节点、各个第一级节点之间的连接关系以及第一级节点包括的各个第二级节点之间的连接关系;接着,可以根据所述待转换有向图中的第一级节点、各个第一级节点包括的第二级节点、各个第一级节点之间的连接关系以及第一级节点包括的各个第二级节点之间的连接关系,确定所述待转换有向图对应的目标业务信息。举例来说,假设待转换有向图为图3A所示的有向图,则可以第一级节点、各个第一级节点之间的连接关系,确定该待转换有向图对应的目标业务信息为:业务场景类主体信息(元数据包括应用代码:TradeService、应用名称:交易服务、场景代码:BuyGold、场景名称:BuyGold、场景描述:购买积存金、最后修改时间:2019-11-08 13:38:38、场景版本:1.0.0以及控制标志位包括服务启动时执行:false、调试模式:false),以及第一级节点类集合为Step模型扁平列表:List<StepModel>。
S203:根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码。
本实施例中,获取到目标编程语言和待转换有向图对应的目标业务信息之后,可以根据目标编程语言和待转换有向图对应的目标业务信息,确定所述待转换有向图对应的目标编程语言源码;其中,目标编程语言源码即为待转换有向图对应目标编程语言的源码,例如,假设目标编程语言为Java,则目标编程语言源码为Java源码。举例来说,如图5所示,当有向图解析器输出待转换有向图对应的目标业务信息之后,可以将该目标业务信息输入至源码生成器,源码生成器可以输出该目标业务信息对应的目标编程语言源码。
在一种实现方式中,可以利用模板技术生成待转换有向图对应的目标编程语言源码,例如,假设目标编程语言为Java,则可以基于开源的、轻量级的且支持变量注入、循环语句、判断语句、回调方法等特性的模板引擎(例如FreeMarker模板引擎)生成Java源码,这样,可以简化Java源码生成过程,提升源码生成器的功能扩展性及可维护性,并且实现了基于模板文件可灵活根据目标编程语言(比如Java、Python等)的特性扩展、优化编译结果。也就是说,本实施例中可以先根据目标编程语言和待转换有向图对应的目标业务信息,确定该目标业务信息对应的模板文件,接着,再根据该目标业务信息以及该模板文件,得到该待转换有向图对应的目标编程语言源码。
作为一种示例,S203可以包括以下步骤:
S203a:根据所述业务场景类主体信息,确定所述业务场景类主体信息对应的业务场景类主体源码。
在本实施例中,可以先根据所述目标业务信息中的业务场景类主体信息,确定所述业务场景类主体信息对应的业务场景模板文件。其中,所述业务场景模板文件对应的编程语言类型为目标编程语言类型。接着,可以根据所述业务场景类主体信息以及所述业务场景模板文件,确定所述业务场景类主体信息对应的业务场景类主体源码。
可以理解的是,业务场景模板文件可以理解为预先根据目标编程语言对应的编码规则所生成的模板文件(即静态固定文本),而业务场景类主体信息可以理解为根据实际需求所确定的动态数据,这样,可以根据预设规则将该动态数据填入模板文件,即将业务场景类主体信息填入业务场景模板文件,便可以得到业务场景类主体信息对应的业务场景类主体源码。需要说明的是,业务场景模板文件可以包括包定义语句、包导入语句。
S203b:针对所述第一级节点类集合中每一第一级节点对应的第一级节点类主体信息以及第二级节点类集合,根据该第一级节点对应的第一级节点类主体信息,确定所述第一级节点类主体信息对应的第一级节点类主体源码,以及,根据该第一级节点对应的第二级节点类集合,获取所述第二级节点类集合对应的第二级节点类源码集合。
由于第一级节点类集合包括多个第一级节点各自对应的第一级节点类主体信息以及第二级节点类集合,因此,可以分别根据各个第一级节点对应的第一级节点类主体信息以及第二级节点类集合,确定各个第一级节点对应的第一级节点类主体源码和第二级节点类源码集合。例如,第一级节点类集合包括第一级节点A对应的第一级节点类主体信息以及第二级节点类集合,和第一级节点B对应的第一级节点类主体信息以及第二级节点类集合,则可以根据第一级节点A对应的第一级节点类主体信息以及第二级节点类集合,确定第一级节点A对应的第一级节点类主体源码和第二级节点类源码集合,以及第一级节点B对应的第一级节点类主体源码和第二级节点类源码集合。需要说明的是,当第一级节点类集合的形式为Step扁平化列表时,Step扁平化列表可以利用模板引擎的回调方法特性(例如回调writeStepClasses方法)回调各Step节点(即第一级节点)的第一级节点类主体源码和第二级节点类源码集合。
具体地,writeStepClasses方法为一个循环体,可以用于遍历第一级节点类集合中所有第一级节点(即Step扁平化列表中的Step节点),以便于每个第一级节点(即Step节点)均可以生成一个与其对应的第一级节点类主体源码以及第二级节点类源码集合,其中,由于第一级节点类主体源码也包括了第一级节点的所有信息,如:元数据、控制标志位、Step关系数据和该Step的Node扁平化列表,其中,Step关系数据记录了流程中下一个第一级节点(即Step节点)的标识。这样,在生成所述第一级节点类集合中每一第一级节点对应的第一级节点类主体源码以及第二级节点类源码集合的过程中,可以根据流程中下一个第一级节点(即Step节点)的标识返回下一个待处理的第一级节点的信息,以便业务场景类主体源码中状态机驱动流程往下执行该下一个待处理的第一级节点,直至第一级节点类集合中所有第一级节点均生成各自对应的第一级节点类主体源码以及第二级节点类源码集合。
在本实施例中,根据第一级节点对应的第一级节点类主体信息,确定所述第一级节点类主体信息对应的第一级节点类主体源码的方式可以为:可以先根第一级节点类主体信息,确定所述第一级节点类主体信息对应的第一级节点类模板文件;其中,所述第一级节点类模板文件对应的编程语言类型为目标编程语言类型,且,所述第一级节点类模板文件至少包括逻辑执行机制模块;接着,可以根据所述第一级节点类主体信息以及所述第一级节点类模板文件,确定所述第一级节点类主体信息对应的第一级节点类主体源码。
可以理解的是,第一级节点类模板文件可以理解为预先根据目标编程语言对应的编码规则所生成的模板文件(即静态固定文本),而第一级节点类主体信息可以理解为根据实际需求所确定的动态数据,这样,可以根据预设规则将该动态数据填入模板文件,即将第一级节点类主体信息填入第一级节点类模板文件,便可以得到第一级节点类主体信息对应的第一级节点类主体源码。
需要说明的是,第一级节点类模板文件可以包括包定义语句、包导入语句、类定义语句、类属性和逻辑执行机制模块。需要说明的是,第一级节点类模板文件与业务场景模板文件可以构成一个第一模型,第一级节点类模板文件中的逻辑执行机制模块用于在生成第一级节点类模板文件过程中,可以根据第一级节点执行结果,基于状态机驱动各个第一级节点进行流转,以使各个第一级节点均进行源码生成处理。例如,当目标编程语言为Java时,逻辑执行机制模块可以基于状态机驱动各Step节点流转,而非使用传统技术的Java方法嵌套调用,而状态机的主体是一个循环体,循环的执行依据为上一次执行返回的节点对象即为Step节点对象,循环体的主要内容为执行Step对象的execute()方法,并返回下一个待执行的Step节点对象。也就是说,逻辑执行机制模块可以对一第一级节点执行Step对象的execute()方法,得到第一级节点执行结果,并将该第一级节点执行结果传输给状态机,以便状态机根据该第一级节点执行结果,确定并指向下一个逻辑执行机制模块需要进行处理的第一级节点。可见,本实施例通过利用逻辑执行机制模块和状态机代替传统的方法嵌套调用,即本实施例在生成第一级节点类主体源码时以状态机作为各个第一级节点流转的驱动机制,巧妙避免了深度方法嵌套调用,防止流程图复杂情况下的栈嵌套过深进而引发的栈溢出。
在本实施例中,根据该第一级节点对应的第二级节点类集合,获取所述第二级节点类集合对应的第二级节点类源码集合方式可以为:
可以先针对所述第二级节点类集合中每一第二级节点对应的第二级节点类主体信息,根据该第二级节点对应的第二级节点类主体信息,确定所述第二级节点类主体信息对应的第二级节点类主体源码。接着,可以根据所述第二级节点类集合中若干个第二级节点各自对应的第二级节点类主体源码,确定所述第二级节点类集合对应的第二级节点类源码集合,即将第二级节点类集合中若干个第二级节点各自对应的第二级节点类主体源码作为所述第二级节点类集合对应的第二级节点类源码集合。
由于第二级节点类集合包括多个第二级节点各自对应的第二级节点类主体信息,因此,可以分别根据各个第二级节点对应的第二级节点类主体信息,确定各个第二级节点对应的第二级节点类主体源码,并将第二级节点类集合中若干个第二级节点各自对应的第二级节点类主体源码作为所述第二级节点类集合对应的第二级节点类源码集合。例如,第二级节点类集合包括第二级节点A对应的第二级节点类主体信息,和第二级节点B对应的第二级节点类主体信息,则可以根据第二级节点A对应的第二级节点类主体信息,确定第二级节点A对应的第二级节点类主体源码,以及第二级节点B对应的第二级节点类主体源码。需要说明的是,当第二级节点类集合的形式为Node扁平化列表时,Node扁平化列表可以利用模板引擎的回调方法特性(例如回调writeNodeClasses方法)回调各Node节点(即第二级节点)的第二级节点类主体源码。并将第二级节点类集合中第二级节点A、B各自对应的第二级节点类主体源码作为所述第二级节点类集合对应的第二级节点类源码集合。
具体地,WriteNodeClasses方法为一个循环体,可以用于遍历第二级节点类集合中所有第二级节点(即Node扁平化列表中的Node节点),以便于每个第二级节点(即Node节点)均可以生成一个与其对应的第二级节点类主体源码,其中,由于第二级节点类主体源码包括了第二级节点的所有信息,如:元数据、控制标志位、Node关系数据和组件出入参数,其中,Node关系数据记录了流程中下一个第二级节点(即Node节点)的标识。这样,在生成所述第二级节点类集合中若干个第二级节点各自对应的第二级节点类主体源码的过程中,可以根据流程中下一个第二级节点(即Node节点)的标识返回下一个待处理的第二级节点的信息,以便第一级节点类模板文件中的状态机驱动流程往下执行该下一个待处理的第二级节点,直至第二级节点类集合中所有第二级节点均生成各自对应的第二级节点类主体源码。
其中,所述根据该第二级节点对应的第二级节点类主体信息,确定所述第二级节点类主体信息对应的第二级节点类主体源码的方式可以为:先根据所述第二级节点类主体信息,确定所述第二级节点类主体信息对应的第二级节点类模板文件;其中,所述第二级节点类模板文件对应的编程语言类型为目标编程语言类型,且,所述第二级节点类模板文件至少包括逻辑执行机制模块;然后,根据所述第二级节点类主体信息以及所述第二级节点类模板文件,确定所述第二级节点类主体信息对应的第二级节点类主体源码。
可以理解的是,第二级节点类模板文件可以理解为预先根据目标编程语言对应的编码规则所生成的模板文件(即静态固定文本),而第二级节点类主体信息可以理解为根据实际需求所确定的动态数据,这样,可以根据预设规则将该动态数据填入模板文件,即将第二级节点类主体信息填入第二级节点类模板文件,便可以得到第二级节点类主体信息对应的第二级节点类主体源码。
需要说明的是,第一级节点对应的每一个第二级节点类模板文件都是该第一级节点对应的第一级节点类模板文件的内部类,第二级节点类模板文件可以包括类定义语句、类属性和逻辑执行机制模块。需要说明的是,第一级节点对应的所有第二级节点各自对应的第二级节点类模板文件可以构成一个第二模型,而一个第二级节点对应的第二级节点类模板文件可以单独构成一个第三模型,第二级节点类模板文件中的逻辑执行机制模块用于在生成第二级节点类模板文件过程中,可以根据第一级节点对应的一第二级节点执行结果,基于状态机驱动该第一级节点对应的各个第二级节点进行流转,以使各个第二级节点均进行源码生成处理。例如,当目标编程语言为Java时,逻辑执行机制模块可以基于状态机驱动各Node节点流转,而非使用传统技术的Java方法嵌套调用,而状态机的主体是一个循环体,循环的执行依据为上一次执行返回的节点对象即为Node节点对象,循环体的主要内容为执行Node对象的execute()方法,并返回下一个待执行的Node节点对象。也就是说,逻辑执行机制模块可以对一第二级节点执行Node对象的execute()方法,得到第二级节点执行结果,并将该第二级节点执行结果传输给状态机,以便状态机根据该第二级节点执行结果,确定并指向下一个逻辑执行机制模块需要进行处理的第二级节点。可见,本实施例通过利用逻辑执行机制模块和状态机代替传统的方法嵌套调用,即本实施例在生成第二级节点类主体源码时以状态机作为各个第二级节点流转的驱动机制,巧妙避免了深度方法嵌套调用,防止流程图复杂情况下的栈嵌套过深进而引发的栈溢出。
需要说明的是,第二级节点类模板文件可以包括多种类型,其中,各个类型的第二级节点类模板文件的区别仅在于类属性和逻辑执行机制模块中的模板定义有所区别,其他部分均是相同的,即其他部分均与第二级节点类模板文件的父类模板一样,其中,该父类模板定义了一个Node节点的类主体结构(例如java类主体结构)及通用的逻辑代码。
具体地,第二级节点类模板文件的类型可以包括以下至少一种:开始节点模板文件、结束节点模板文件、默认逻辑错误委托节点模板文件、技术组件节点模板文件或业务组件节点模板文件。接下来,详细介绍各种类型第二级节点类模板文件。
开始节点模板文件:定义了“开始”Node节点的开始组件内容,并包括第二级节点类模板文件的父类模板中的内容。
结束节点模板文件包括正常结束节点模板文件和异常结束节点模板文件。其中,正常结束节点模板文件:定义了“正常结束”Node节点的正常结束组件内容,并包括第二级节点类模板文件的父类模板中的内容。异常结束节点模板文件:定义了“异常结束”Node节点的异常结束组件内容,并包括第二级节点类模板文件的父类模板中的内容。
默认逻辑错误委托节点模板文件:定义了“默认逻辑错误委托”Node节点的默认逻辑错误委托机制内容,并包括第二级节点类模板文件的父类模板中的内容。由于默认逻辑错误委托节点模板文件提供了异常处理机制,即默认逻辑错误委托节点模板文件内置的异常处理机制:生成的目标编程语言源码均提供有向图级别的默认逻辑错误委托机制,预留了业务场景级别的异常处理钩子,以确保不会因为流程中某节点异常而直接终止交易,而可以实现节点的跳转,例如,如图3B所示,当“扣款”节点或“正常结束”节点出现异常时,不会直接终止交易,而是默认逻辑错误委托节点会实现节点跳转至“冲正”节点,以保证业务技术流程的继续,从而保证了业务技术流程的健壮性。
技术组件节点模板文件:定义了“技术组件”Node节点的技术组件内容,并包括第二级节点类模板文件的父类模板中的内容。
业务组件节点模板文件:定义了“业务组件”Node节点的业务组件内容,并包括第二级节点类模板文件的父类模板中的内容。
至此,介绍完各种类型第二级节点类模板文件。
还需要说明的是,在一种实现方式中,所述业务场景模板文件、所述第一级节点类模板文件、所述第二级节点类模板文件中均还可以包括以下至少一种组件:日志输出机制组件、静态编译机制组件。
其中,日志输出机制组件用于在生成模板文件时在入参检验、出参检验、返回值等关键部位设置相应的日志,其中,日志级别可以预先定义,以便运行时根据需求调整输出响应的日志级别,从而实现了自动注入响应的日志以及自动对源码中的参数进行校验。
静态编译机制组件用于在生成模板文件时实现利用字面调用(即静态编译,可以理解为直接根据节点的信息,比如名称,直接调用节点对应的内部类)而非反射调用,由于现有技术中联机交易对性能要求相当高,并且在当前内存不再昂贵的背景下,本实施例通过静态编译机制组件实现了以空间换时间,在驱动各类流程节点(即第一级节点和第二级节点)时调用机制中使用了字面调用方式(即静态编译的方式)而非反射调用机制(其中,反射机制导致性能降低),从而提升了生成目标编程语言源码的性能;需要说明的是,静态编译机制组件需要预先定义各个流程节点的内部类。
接下来,结合图6A和图6B举例说明S203,假设待转换有向图包括图6A所示的二维有向图中的Step有向图以及图6B所示的二维有向图中的Node有向图,且目标编程语言为Java,则可以根据该二维有向图对应的目标业务信息,确定该二维有向图对应的目标编程语言源码为以下源码:
需要说明的是,当待转换有向图是基于非目标编程语言生成时,为了保证能够得到符合目标编程语言规定的目标业务信息,在S203a:所述根据所述业务场景类主体信息,确定所述业务场景类主体信息对应的业务场景类主体源码之前,所述方法还包括:
判断所述业务场景类主体信息中是否包括非目标编程语言的参数;
若是,将所述业务场景类主体信息中非目标编程语言的参数编译为目标编程语言的参数,并针对编译后的业务场景类主体信息继续执行S203a;
若否,则直接执行S203a。
举例来说,假设目标编程语言为Java语言,若确定业务场景主体信息中包括Python语言的组件参数,则可以将业务场景主体信息中的Python语言的组件参数编译为Java语言的组件参数,得到编译后的业务场景类主体信息,即仅包括Java语言的组件参数的业务场景类主体信息,并且,可以基于编译后的业务场景类主体信息继续执行S203a。这样,本实施例便可以将简洁的Python语法参数编译成Java语法参数,从而可以简化有向图流程节点填写参数的复杂度,提供了更加简洁的填写参数语法,提升了业务系统开发效率及可维护性。
S203c:根据业务场景类主体源码,以及所述第一级节点类集合中若干个第一级节点各自分别对应的第一级节点类主体源码和第二级节点类源码集合,确定所述待转换有向图对应的目标编程语言源码。
在获取到业务场景类主体源码,以及所述第一级节点类集合中若干个第一级节点各自分别对应的第一级节点类主体源码和第二级节点类源码集合之后,可以根据业务场景类主体源码,以及所述第一级节点类集合中若干个第一级节点各自分别对应的第一级节点类主体源码和第二级节点类源码集合,确定所述待转换有向图对应的目标编程语言源码。
例如,可以利用预先定义的用于串联业务场景类主体源码以及第一级节点类集合中若干个第一级节点各自分别对应的第一级节点类主体源码和第二级节点类源码集合的代码生成逻辑,将业务场景类主体源码,以及所述第一级节点类集合中若干个第一级节点各自分别对应的第一级节点类主体源码和第二级节点类源码集合进行串联,从而得到待转换有向图对应的目标编程语言源码。
由上述技术方案可以看出,本发明获取待转换有向图之后,可以先对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息,其中,所述目标业务信息反映了所述待转换有向图的业务处理逻辑;接着,可以根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码。可见,本发明可以根据有向图生成目标编程语言源码,即实现了通过将业务系统基于有向图建模,进而根据有向图确定业务系统对应的目标编程语言源码,这样,提升了业务系统开发的灵活度,以及实现了业务系统编码的可复用性,从而便可以基于业务系统对应的有向图生成目标编程语言源码,而不再需要开发人员手动编写所有程序,也可以避免由于人工手动编写程序所导致的程序编写错误问题,进而提高了业务系统的开发效率。
需要说明的是,由于虚拟机中不能直接执行目标编程语言源码,故此,在一种实现方式中,在S203之后,所述方法还包括:
根据目标编程语言对应的编译规则,对所述待转换有向图对应的目标编程语言源码进行编译处理,得到所述待转换有向图对应的目标编程语言字节码。
举例来说,如图5所示,当源码生成器输出待转换有向图对应的目标编程语言源码之后,可以将该目标编程语言源码输入至源码编译器,源码编译器可以输出该目标编程语言源码对应的目标编程字节码。例如,当目标编程语言为Java语言时,可以基于ECJ完成Java源码文件的编译,其输出结果为包含字节码的字节数组,即目标编程字节码。这样,虚拟机便可以直接利用目标编程字节码进行处理。
为了进一步对数据进行归档整理,提高数据的压缩率,在所述根据目标编程语言对应的编译规则,对所述待转换有向图对应的目标编程语言源码进行编译处理,得到所述待转换有向图对应的目标编程语言字节码之后,所述方法还包括:
对所述目标编程语言字节码进行文件打包处理,得到所述目标编程语言字节码对应的软件包文件。
举例来说,如图5所示,当源码编译器输出待转换有向图对应的目标编程字节码之后,可以将该目标编程字节码输入至字节码文件打包器,字节码文件打包器可以输出该目标编程字节码对应的软件包文件。例如,当目标编程语言为Java语言时,可以基于Java JDK自带的jar处理类库,把各个类的字节码归档入业务场景的jar包,从而得到目标编程字节码对应的软件包文件。
至此,本实施例结合具体的应用场景实现了数据转换方法过程。当然应该认为,上述场景仅仅为示例性场景,并不对本发明提供的方法构成限定。本发明提供的方法可延申的应用在其他相同原理的数据转换过程当中。
如图7所示,为本发明所述数据转换装置的一个具体实施例。本实施例所述装置,即用于执行上述实施例所述方法的实体装置。其技术方案本质上与上述实施例一致,上述实施例中的相应描述同样适用于本实施例中。本实施例中所述装置包括:
获取模块701,用于获取待转换有向图;
有向图解析模块702,用于对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息;其中,所述目标业务信息反映了所述待转换有向图的业务处理逻辑;
源码生成模块703,用于根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码。
可选的,所述待转换有向图为二维有向图,且所述待转换有向图包括若干个第一级节点,且各个第一级节点分别包括若干个第二级节点;所述有向图解析模块702,具体用于:
确定所述待转换有向图中的第一级节点、各个第一级节点包括的第二级节点、各个第一级节点之间的连接关系以及第一级节点包括的各个第二级节点之间的连接关系;
根据所述待转换有向图中的第一级节点、各个第一级节点包括的第二级节点、各个第一级节点之间的连接关系以及第一级节点包括的各个第二级节点之间的连接关系,确定所述待转换有向图对应的目标业务信息;
其中,所述目标业务信息包括业务场景类主体信息以及第一级节点类集合,所述第一级节点类集合包括所述若干个第一级节点各自分别对应的第一级节点类主体信息以及第二级节点类集合;第二级节点类集合包括若干个第二级节点各自分别对应的第二级节点类主体信息。
可选的,所述源码生成模块703,具体用于:
根据所述业务场景类主体信息,确定所述业务场景类主体信息对应的业务场景类主体源码;
针对所述第一级节点类集合中每一第一级节点对应的第一级节点类主体信息以及第二级节点类集合,根据该第一级节点对应的第一级节点类主体信息,确定所述第一级节点类主体信息对应的第一级节点类主体源码,以及,根据该第一级节点对应的第二级节点类集合,获取所述第二级节点类集合对应的第二级节点类源码集合;
根据业务场景类主体源码,以及所述第一级节点类集合中若干个第一级节点各自分别对应的第一级节点类主体源码和第二级节点类源码集合,确定所述待转换有向图对应的目标编程语言源码。
可选的,所述源码生成模块703,具体用于:
针对所述第二级节点类集合中每一第二级节点对应的第二级节点类主体信息,根据该第二级节点对应的第二级节点类主体信息,确定所述第二级节点类主体信息对应的第二级节点类主体源码;
根据所述第二级节点类集合中若干个第二级节点各自对应的第二级节点类主体源码,确定所述第二级节点类集合对应的第二级节点类源码集合。
可选的,所述源码生成模块703,具体用于:
根据所述业务场景类主体信息,确定所述业务场景类主体信息对应的业务场景模板文件;其中,所述业务场景模板文件对应的编程语言类型为目标编程语言类型;
根据所述业务场景类主体信息以及所述业务场景模板文件,确定所述业务场景类主体信息对应的业务场景类主体源码。
可选的,所述源码生成模块703,具体用于:
根据所述第一级节点类主体信息,确定所述第一级节点类主体信息对应的第一级节点类模板文件;其中,所述第一级节点类模板文件对应的编程语言类型为目标编程语言类型,且,所述第一级节点类模板文件至少包括逻辑执行机制模块;
根据所述第一级节点类主体信息以及所述第一级节点类模板文件,确定所述第一级节点类主体信息对应的第一级节点类主体源码。
可选的,所述源码生成模块703,具体用于:
根据所述第二级节点类主体信息,确定所述第二级节点类主体信息对应的第二级节点类模板文件;其中,所述第二级节点类模板文件对应的编程语言类型为目标编程语言类型,且,所述第二级节点类模板文件至少包括逻辑执行机制模块;
根据所述第二级节点类主体信息以及所述第二级节点类模板文件,确定所述第二级节点类主体信息对应的第二级节点类主体源码。
可选的,所述第二级节点类模板文件的类型包括以下至少一种:开始节点模板文件、结束节点模板文件、默认逻辑错误委托节点模板文件、技术组件节点模板文件或业务组件节点模板文件。
可选的,所述逻辑执行机制模块用于根据节点执行结果,基于状态机驱动各个第一级节点或第二级节点进行流转,以使各个节点均进行源码生成处理。
可选的,所述业务场景模板文件、所述第一级节点类模板文件、所述第二级节点类模板文件还包括以下至少一种组件:日志输出机制组件、静态编译机制组件。
可选的,所述源码生成模块703,还用于:
判断所述业务场景类主体信息中是否包括非目标编程语言的参数;
若是,将所述业务场景类主体信息中非目标编程语言的参数编译为目标编程语言的参数。
可选的,所述装置还包括源码编译器,用于:
根据目标编程语言对应的编译规则,对所述待转换有向图对应的目标编程语言源码进行编译处理,得到所述待转换有向图对应的目标编程语言字节码。
可选的,所述装置还包括字节码文件打包器,用于:
对所述目标编程语言字节码进行文件打包处理,得到所述目标编程语言字节码对应的软件包文件。
图8是本发明实施例提供的一种电子设备的结构示意图。在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放执行指令。具体地,执行指令即可被执行的计算机程序。存储器可以包括内存和非易失性存储器,并向处理器提供执行指令和数据。
在一种可能实现的方式中,处理器从非易失性存储器中读取对应的执行指令到内存中然后运行,也可从其它设备上获取相应的执行指令,以在逻辑层面上形成数据转换装置。处理器执行存储器所存放的执行指令,以通过执行的执行指令实现本发明任一实施例中提供的数据转换方法。
上述如本发明图2所示实施例提供的数据转换装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本发明实施例还提出了一种可读介质,该可读存储介质存储有执行指令,存储的执行指令被电子设备的处理器执行时,能够使该电子设备执行本发明任一实施例中提供的数据转换方法,并具体用于执行上述数据转换所述的方法。
前述各个实施例中所述的电子设备可以为计算机。
本领域内的技术人员应明白,本发明的实施例可提供为方法或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例,或软件和硬件相结合的形式。
本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (15)
1.一种数据转换方法,其特征在于,所述方法包括:
获取待转换有向图;
对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息;其中,所述目标业务信息反映了所述待转换有向图的业务处理逻辑;
根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码。
2.根据权利要求1所述的方法,其特征在于,所述待转换有向图为二维有向图,且所述待转换有向图包括若干个第一级节点,且各个第一级节点分别包括若干个第二级节点;所述对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息,包括:
确定所述待转换有向图中的第一级节点、各个第一级节点包括的第二级节点、各个第一级节点之间的连接关系以及第一级节点包括的各个第二级节点之间的连接关系;
根据所述待转换有向图中的第一级节点、各个第一级节点包括的第二级节点、各个第一级节点之间的连接关系以及第一级节点包括的各个第二级节点之间的连接关系,确定所述待转换有向图对应的目标业务信息;
其中,所述目标业务信息包括业务场景类主体信息以及第一级节点类集合,所述第一级节点类集合包括所述若干个第一级节点各自分别对应的第一级节点类主体信息以及第二级节点类集合;第二级节点类集合包括若干个第二级节点各自分别对应的第二级节点类主体信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码,包括:
根据所述业务场景类主体信息,确定所述业务场景类主体信息对应的业务场景类主体源码;
针对所述第一级节点类集合中每一第一级节点对应的第一级节点类主体信息以及第二级节点类集合,根据该第一级节点对应的第一级节点类主体信息,确定所述第一级节点类主体信息对应的第一级节点类主体源码,以及,根据该第一级节点对应的第二级节点类集合,获取所述第二级节点类集合对应的第二级节点类源码集合;
根据业务场景类主体源码,以及所述第一级节点类集合中若干个第一级节点各自分别对应的第一级节点类主体源码和第二级节点类源码集合,确定所述待转换有向图对应的目标编程语言源码。
4.根据权利要求3所述的方法,其特征在于,所述根据该第一级节点对应的第二级节点类集合,获取所述第二级节点类集合对应的第二级节点类源码集合,包括:
针对所述第二级节点类集合中每一第二级节点对应的第二级节点类主体信息,根据该第二级节点对应的第二级节点类主体信息,确定所述第二级节点类主体信息对应的第二级节点类主体源码;
根据所述第二级节点类集合中若干个第二级节点各自对应的第二级节点类主体源码,确定所述第二级节点类集合对应的第二级节点类源码集合。
5.根据权利要求3所述的方法,其特征在于,所述根据所述业务场景类主体信息,确定所述业务场景类主体信息对应的业务场景类主体源码,包括:
根据所述业务场景类主体信息,确定所述业务场景类主体信息对应的业务场景模板文件;其中,所述业务场景模板文件对应的编程语言类型为目标编程语言类型;
根据所述业务场景类主体信息以及所述业务场景模板文件,确定所述业务场景类主体信息对应的业务场景类主体源码。
6.根据权利要求3所述的方法,其特征在于,所述根据该第一级节点对应的第一级节点类主体信息,确定所述第一级节点类主体信息对应的第一级节点类主体源码,包括:
根据所述第一级节点类主体信息,确定所述第一级节点类主体信息对应的第一级节点类模板文件;其中,所述第一级节点类模板文件对应的编程语言类型为目标编程语言类型,且,所述第一级节点类模板文件至少包括逻辑执行机制模块;
根据所述第一级节点类主体信息以及所述第一级节点类模板文件,确定所述第一级节点类主体信息对应的第一级节点类主体源码。
7.根据权利要求4所述的方法,其特征在于,所述根据该第二级节点对应的第二级节点类主体信息,确定所述第二级节点类主体信息对应的第二级节点类主体源码,包括:
根据所述第二级节点类主体信息,确定所述第二级节点类主体信息对应的第二级节点类模板文件;其中,所述第二级节点类模板文件对应的编程语言类型为目标编程语言类型,且,所述第二级节点类模板文件至少包括逻辑执行机制模块;
根据所述第二级节点类主体信息以及所述第二级节点类模板文件,确定所述第二级节点类主体信息对应的第二级节点类主体源码。
8.根据权利要求7所述的方法,其特征在于,所述第二级节点类模板文件的类型包括以下至少一种:开始节点模板文件、结束节点模板文件、默认逻辑错误委托节点模板文件、技术组件节点模板文件或业务组件节点模板文件。
9.根据权利要求6-7中任一所述的方法,其特征在于,所述逻辑执行机制模块用于根据节点执行结果,基于状态机驱动各个第一级节点或第二级节点进行流转,以使各个节点均进行源码生成处理。
10.根据权利要求6-7中任一所述的方法,其特征在于,所述业务场景模板文件、所述第一级节点类模板文件、所述第二级节点类模板文件还包括以下至少一种组件:日志输出机制组件、静态编译机制组件。
11.根据权利要求3-8中任一所述的方法,其特征在于,在所述根据所述业务场景类主体信息,确定所述业务场景类主体信息对应的业务场景类主体源码之前,所述方法还包括:
判断所述业务场景类主体信息中是否包括非目标编程语言的参数;
若是,将所述业务场景类主体信息中非目标编程语言的参数编译为目标编程语言的参数。
12.根据权利要求1-8中任一所述的方法,其特征在于,所述方法还包括:
根据目标编程语言对应的编译规则,对所述待转换有向图对应的目标编程语言源码进行编译处理,得到所述待转换有向图对应的目标编程语言字节码。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
对所述目标编程语言字节码进行文件打包处理,得到所述目标编程语言字节码对应的软件包文件。
14.一种数据转换装置,其特征在于,所述装置包括:
获取模块,用于获取待转换有向图;
有向图解析模块,用于对所述待转换有向图进行解析,得到所述待转换有向图对应的目标业务信息;其中,所述目标业务信息反映了所述待转换有向图的业务处理逻辑;
源码生成模块,用于根据所述目标业务信息,确定所述待转换有向图对应的目标编程语言源码。
15.一种电子设备,其特征在于,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如权利要求1-13中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010296766.4A CN111427578B (zh) | 2020-04-15 | 2020-04-15 | 一种数据转换方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010296766.4A CN111427578B (zh) | 2020-04-15 | 2020-04-15 | 一种数据转换方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111427578A true CN111427578A (zh) | 2020-07-17 |
CN111427578B CN111427578B (zh) | 2023-08-29 |
Family
ID=71556414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010296766.4A Active CN111427578B (zh) | 2020-04-15 | 2020-04-15 | 一种数据转换方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111427578B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076345A (zh) * | 2021-03-31 | 2021-07-06 | 烽火通信科技股份有限公司 | 一种系统化的各层业务表项信息管理的方法和装置 |
CN113449948A (zh) * | 2020-12-31 | 2021-09-28 | 北京新氧科技有限公司 | 业务处理的方法、装置、电子设备及介质 |
CN115357252A (zh) * | 2022-10-08 | 2022-11-18 | 成都数联云算科技有限公司 | 源码文件生成方法、装置、电子设备和存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567002A (zh) * | 2010-12-29 | 2012-07-11 | 上海邮电设计咨询研究院有限公司 | 一种电信增值业务开发环境中转换代码的方法 |
JP5405684B1 (ja) * | 2013-03-28 | 2014-02-05 | 株式会社バリュー | ソースプログラムのプログラミング言語変換装置 |
CN104866298A (zh) * | 2014-02-26 | 2015-08-26 | 阿里巴巴集团控股有限公司 | 基于流程图的流程化业务实现方法和装置 |
CN106919434A (zh) * | 2017-03-22 | 2017-07-04 | 恒生电子股份有限公司 | 一种代码生成方法及装置 |
CN109784716A (zh) * | 2019-01-14 | 2019-05-21 | 北京纷扬科技有限责任公司 | 任务的处理方法及装置 |
CN109933315A (zh) * | 2019-02-26 | 2019-06-25 | 广州衡昊数据科技有限公司 | 一种图形化的业务处理系统和方法 |
CN110286893A (zh) * | 2019-06-28 | 2019-09-27 | 百度在线网络技术(北京)有限公司 | 服务生成方法、装置、设备、系统和存储介质 |
CN110297633A (zh) * | 2019-06-28 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 代码转换方法、装置、设备和存储介质 |
CN110874367A (zh) * | 2018-09-03 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 结构化查询语言语句的可视化方法和装置 |
-
2020
- 2020-04-15 CN CN202010296766.4A patent/CN111427578B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567002A (zh) * | 2010-12-29 | 2012-07-11 | 上海邮电设计咨询研究院有限公司 | 一种电信增值业务开发环境中转换代码的方法 |
JP5405684B1 (ja) * | 2013-03-28 | 2014-02-05 | 株式会社バリュー | ソースプログラムのプログラミング言語変換装置 |
CN104866298A (zh) * | 2014-02-26 | 2015-08-26 | 阿里巴巴集团控股有限公司 | 基于流程图的流程化业务实现方法和装置 |
CN106919434A (zh) * | 2017-03-22 | 2017-07-04 | 恒生电子股份有限公司 | 一种代码生成方法及装置 |
CN110874367A (zh) * | 2018-09-03 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 结构化查询语言语句的可视化方法和装置 |
CN109784716A (zh) * | 2019-01-14 | 2019-05-21 | 北京纷扬科技有限责任公司 | 任务的处理方法及装置 |
CN109933315A (zh) * | 2019-02-26 | 2019-06-25 | 广州衡昊数据科技有限公司 | 一种图形化的业务处理系统和方法 |
CN110286893A (zh) * | 2019-06-28 | 2019-09-27 | 百度在线网络技术(北京)有限公司 | 服务生成方法、装置、设备、系统和存储介质 |
CN110297633A (zh) * | 2019-06-28 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 代码转换方法、装置、设备和存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113449948A (zh) * | 2020-12-31 | 2021-09-28 | 北京新氧科技有限公司 | 业务处理的方法、装置、电子设备及介质 |
CN113449948B (zh) * | 2020-12-31 | 2024-05-03 | 北京新氧科技有限公司 | 业务处理的方法、装置、电子设备及介质 |
CN113076345A (zh) * | 2021-03-31 | 2021-07-06 | 烽火通信科技股份有限公司 | 一种系统化的各层业务表项信息管理的方法和装置 |
CN115357252A (zh) * | 2022-10-08 | 2022-11-18 | 成都数联云算科技有限公司 | 源码文件生成方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111427578B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422778B2 (en) | Development environment for real-time dataflow programming language | |
CN111427578B (zh) | 一种数据转换方法、装置及设备 | |
CN109614324B (zh) | 一种测试用例生成方法和装置 | |
CN110704037B (zh) | 一种规则引擎实现方法及装置 | |
CN110780870B (zh) | 一种业务执行方法、装置、设备及存储介质 | |
CN110069259B (zh) | 基于idl文件的解析方法、装置、电子设备和存储介质 | |
CN112486563A (zh) | 一种代码管理方法、系统、计算设备及可读存储介质 | |
CN114968807A (zh) | 代码检测方法、装置、电子设备及可读存储介质 | |
CN112328259A (zh) | 一种编译时长的处理方法和装置 | |
CA3184892A1 (en) | Data parsing method and device, computer equipment and storage medium for batch stream computing tasks | |
CN111142925A (zh) | 一种管道式数据处理方法、设备以及存储介质 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN111176660A (zh) | 一种面向分布式架构的微服务契约管理方法、装置、计算机设备、和可读存储介质 | |
CN108595656B (zh) | 一种数据的处理方法及系统 | |
CN111352631B (zh) | 一种接口兼容性检测方法及装置 | |
CN116627669A (zh) | 一种异业合作适配api方法、装置、设备和介质 | |
CN111258562A (zh) | Java代码质量检查方法、装置、设备和存储介质 | |
CN111399842B (zh) | 一种代码编译方法及装置 | |
CN110750271B (zh) | 服务聚合、聚合服务的执行方法、装置和电子设备 | |
CN114116674A (zh) | 基于综合业务平台的业务建模方法、装置、介质及设备 | |
CN114629807A (zh) | 工单处理方法、装置及设备 | |
CN112261075A (zh) | 网络请求处理方法、装置、设备及计算机可读存储介质 | |
CN114116462A (zh) | 一种Web项目的前后端自动化测试整合方法和装置 | |
CN116185425A (zh) | 基于节点组合的事件流程编排方法、装置、设备及介质 | |
CN115328447A (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 |