CN114489582A - 一种可控定制化的后端开发系统及方法 - Google Patents
一种可控定制化的后端开发系统及方法 Download PDFInfo
- Publication number
- CN114489582A CN114489582A CN202111650299.1A CN202111650299A CN114489582A CN 114489582 A CN114489582 A CN 114489582A CN 202111650299 A CN202111650299 A CN 202111650299A CN 114489582 A CN114489582 A CN 114489582A
- Authority
- CN
- China
- Prior art keywords
- primitive
- service
- graphical
- definition
- design
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种可控定制化的后端开发系统及方法,涉及代码开发技术领域,包括图形化服务编排工具和翻译引擎,所述图形化服务编排工具用于提供图灵完备的图形化服务编排,所述翻译引擎用于根据用户设计的一组图元翻译生成可运行的编程源码。该可控定制化的后端开发系统及方法,通过用简单的图形化服务编排替代复杂的代码编程,用户通过图形化工具进行服务编排后,根据用户在图形中定义的图元和连线的逻辑关系,并可以将图形化服务编排结果翻译成Java、Python和JavaScript多种编程语言,直接生成指定编程语言的可运行源码,然后经过源码编译形成新的编排后的服务接口。
Description
技术领域
本发明涉及代码开发技术领域,具体为一种可控定制化的后端开发系统及方法。
背景技术
当下微服务架构已经成为软件的主流技术架构,在微服务架构中基于已有的微服务接口进行组合编排形成新的业务逻辑,并暴露成新的服务接口,是一种典型的微服务应用场景。
在传统代码编程方式下,多个微服务的组合和编排,需要开发人员通过代码编程去实现,这种方式技术复杂度高、实现效率低、缺陷率高、后期扩展升级困难。
近年来业界出现了一些新的低代码开发工具,试图用一些新的设计方式解决微服务架构下服务编排的技术复杂度,但是这些设计方式都存在一定的技术局限性。一般的低代码开发工具中提供了图形化的服务编排设计工具,但是在技术实现上基本上都采用引擎解析方式,即:在设计时,由用户通过图形设计工具,选择要调用的微服务接口,通过连线指定服务的调用顺序,服务调用前后往往还会提供一些数据转换组件用于衔接多个服务调用,最终形成。在运行时,通过一个运行引擎解析用户设计的图形,分析图元的定义和属性,形成微服务的编排运行。
上述的基于引擎解析方式的服务编排工具,主要存在以下问题:
1、运行效率低,运行引擎本身在服务编排的运行过程中会增加调用耗时;
2、资源消耗大,运行引擎本身在大并发场景下容易成为性能瓶颈;
3、不能扩展,运行引擎本身往往是固化的,用户只能基于运行引擎提供的能力进行编排设计;
4、不能调试,当服务编排比较复杂,出现问题的时候,用户不能对运行过程进行白盒调试。
发明内容
针对现有技术的不足,本发明提供了一种可控定制化的后端开发系统及方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种可控定制化的后端开发系统,包括图形化服务编排工具和翻译引擎,所述图形化服务编排工具用于提供图灵完备的图形化服务编排,所述翻译引擎用于根据用户设计的一组图元翻译生成可运行的编程源码;
所述图形化服务编排工具中,图形化服务编排由服务定义和一组设计图元定义组成,图形化服务编排工具为设计人员提供可视化的设计;
所述翻译引擎中,将服务编排的设计结果中各个图元定义和服务定义翻译成多种编程语言,并将编程语言翻译成对应的编程源码。
进一步优化本技术方案,所述图形化服务编排工具在使用时,设计人员通过拖拽设计图元和图元属性定义,进行等同于代码编程的变量定义、表达式计算、函数调用、条件判断、循环调用在内的多种运算逻辑。
进一步优化本技术方案,所述翻译引擎翻译出的多种编程语言包括Java、Python和JavaScript在内的编程语言,并生成的编程源码可以通过编译或解释执行形成最终可以运行的服务接口。
进一步优化本技术方案,所述图形化服务编排工具的图形编排结果以XML格式进行存储,图形编排结果包括服务定义和各设计图元的定义信息和位置信息。
一种可控定制化的后端开发方法,基于上述的一种可控定制化的后端开发系统进行操作,后端开发方法包括以下具体步骤:
S1、运行图形化服务编排工具,提供可视化设计;
S2、根据设计要求,进行图形化服务编排;
S3、输出图形化服务编排的结果,将结果转化成XML格式进行存储;
S4、运行翻译引擎,识别XML文件中的服务定义和各图元定义;
S5、将服务定义和各图元定义翻译成对应的编程源码;
S6、将生成的编程源码通过编译或解释执行形成最终可以运行的服务接口。
进一步优化本技术方案,所述S3中,图形编排结果中进一步包括服务定义和各设计图元的定义信息和位置信息;所述服务定义包括服务的方法名、服务的入口参数以及服务的返回值类型;所述图元的定义信息包括开始图元、动作图元、条件图元、循环图元、连线图元以及结束图元。
进一步优化本技术方案,所述服务的入口参数和返回值类型进一步的包括字符串、整数、小数、日期、布尔在内的定义参数名和参数类型。
进一步优化本技术方案,所述开始图元用于定义一个服务的入口,属性定义包括:图元类型;所述动作图元用于定义一个具体的运算方法,属性定义包括:图元类型、计算表达式、计算结果变量;所述条件图元用于定义一个条件分支判断,属性定义包括:图元类型、条件计算表达式;所述循环图元用于定义一个循环体,属性定义包括:图元类型、循环变量;所述连线图元用于定义图元之间的调用顺序,属性定义包括:图元类型、起始图元、结束图元;所述结束图元用于定义一个服务的结束,属性定义包括:图元类型、返回值计算表达式。
进一步优化本技术方案,所述图元的定义信息中的各个计算表达式定义支持变量的加、减、乘、除、大于、小于、等于的运算,和调用API函数,表达式中可以使用的变量包括服务的入口参数和动作图元计算所产生的新变量。
进一步优化本技术方案,所述设计图元的位置信息为在图形化服务编排工具中的位置定义,以X和Y值记录图元在设计面板中的位置。
与现有技术相比,本发明提供了一种可控定制化的后端开发系统及方法,具备以下有益效果:
该可控定制化的后端开发系统及方法,通过用简单的图形化服务编排替代复杂的代码编程,用户通过图形化工具进行服务编排后,根据用户在图形中定义的图元和连线的逻辑关系,并可以将图形化服务编排结果翻译成Java、Python和JavaScript多种编程语言,直接生成指定编程语言的可运行源码,然后经过源码编译形成新的编排后的服务接口。同时,解决了传统编程方式开发效率低的问题,也解决了基于运行引擎的微服务编排工具的运行效率低,不能扩展和调试的问题。
附图说明
图1为本发明提出的一种可控定制化的后端开发系统的结构流程示意图;
图2为本发明提出的一种可控定制化的后端开发方法的流程示意图;
图3为本发明提出的一种可控定制化的后端开发方法中的翻译引擎的翻译流程示意图。
具体实施方式
下面将结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
请参阅图1,一种可控定制化的后端开发系统,包括图形化服务编排工具和翻译引擎,所述图形化服务编排工具用于提供图灵完备的图形化服务编排,所述翻译引擎用于根据用户设计的一组图元翻译生成可运行的编程源码。
在本实施例中,采用了基于图形翻译生成源码编译运行方式。即用户通过图形化工具进行服务编排后,根据用户在图形中定义的图元和连线的逻辑关系,直接生成指定编程语言的可运行源码(这个源码对用户是开放的),然后经过源码编译形成新的编排后的服务接口。
进一步的,所述图形化服务编排工具,图形化服务编排由服务定义和一组设计图元定义组成,图形化服务编排工具为设计人员提供可视化的设计。设计人员通过拖拽设计图元和图元属性定义,进行等同于代码编程的变量定义、表达式计算、函数调用、条件判断、循环调用在内的多种运算逻辑。同时,所述图形化服务编排工具的图形编排结果以XML格式进行存储,图形编排结果包括服务定义和各设计图元的定义信息和位置信息。
进一步的,所述翻译引擎,将服务编排的设计结果翻译成多种编程语言。其中,翻译引擎翻译出的多种编程语言包括Java、Python和JavaScript在内的编程语言,并生成的编程源码可以通过编译或解释执行形成最终可以运行的服务接口。
由上可知,本实施例所述的可控定制化的后端开发系统,实现了用简单的图形化服务编排替代复杂的代码编程,可以将图形化服务编排结果翻译成多种编程语言的优点。
实施例二:
请参阅图2,基于实施例一所述的一种可控定制化的后端开发系统,进行后端开发的操作,通过用简单的图形化服务编排替代复杂的代码编程,用户通过图形化工具进行服务编排后,平台根据用户在图形中定义的图元和连线的逻辑关系,并可以将图形化服务编排结果翻译成Java、Python和JavaScript多种编程语言,直接生成指定编程语言的可运行代码,然后经过代码编译形成新的编排后的服务接口,开发方法包括以下具体步骤:
S1、运行图形化服务编排工具,提供可视化设计以及图灵完备的图形化服务编排。
S2、根据设计要求,进行图形化服务编排,通过拖拽设计图元和图元属性定义,进行等同于代码编程的变量定义、表达式计算、函数调用、条件判断、循环调用在内的多种运算逻辑。
S3、输出图形化服务编排的结果,将结果转化成XML格式进行存储。
其中,图形编排结果中进一步包括服务定义和各设计图元的定义信息和位置信息;所述服务定义包括服务的方法名、服务的入口参数以及服务的返回值类型;所述图元的定义信息包括开始图元、动作图元、条件图元、循环图元、连线图元以及结束图元。
进一步的,所述服务的入口参数和返回值类型进一步的包括字符串、整数、小数、日期、布尔在内的定义参数名和参数类型。
进一步的,图元的定义中除了每个图元所必须的属性定义,还包含每个图元在可视化设计工具中的位置定义,以X和Y值记录图元在设计面板中的位置。
进一步的,所述开始图元用于定义一个服务的入口,属性定义包括:图元类型;所述动作图元用于定义一个具体的运算方法,属性定义包括:图元类型、计算表达式、计算结果变量;所述条件图元用于定义一个条件分支判断,属性定义包括:图元类型、条件计算表达式;所述循环图元用于定义一个循环体,属性定义包括:图元类型、循环变量;所述连线图元用于定义图元之间的调用顺序,属性定义包括:图元类型、起始图元、结束图元;所述结束图元用于定义一个服务的结束,属性定义包括:图元类型、返回值计算表达式。
更进一步的,所述图元的定义信息中的各个计算表达式定义支持变量的加、减、乘、除、大于、小于、等于的运算,和调用API函数,表达式中可以使用的变量包括服务的入口参数和动作图元计算所产生的新变量。
S4、运行翻译引擎,识别XML文件中的服务定义和各图元定义。
S5、将服务定义和各图元定义翻译成对应的编程源码。
S6、将生成的编程源码通过编译或解释执行形成最终可以运行的服务接口。
基于上述开发方法,不仅解决了传统编程方式开发效率低的问题,也解决了现有技术中基于运行引擎的微服务编排工具的运行效率低,不能扩展和调试的问题。
实施例三:
请参阅图3,基于实施例二中所述的一种可控定制化的后端开发方法,翻译引擎通过识别XML文件中的服务定义和各图元定义后,需要翻译成对应的编程代码,在本实施例中,翻译过程可以包括以下具体步骤:
1)服务定义翻译成编程语言所定义的函数体,包括函数名称、参数和返回值;
2)条件图元翻译成IF-ELSE语句;
3)循环图元翻译成FOR语句;
4)动作图元翻译成编程语言所对应的表达式运算语句,如果动作图元上定义了计算结果变量,则翻译成一个赋值语句,将表达式计算结果赋值到定义的计算结果变量。
5)结束图元翻译成RETURN语句。
本发明的有益效果是:
该可控定制化的后端开发系统及方法,通过用简单的图形化服务编排替代复杂的代码编程,用户通过图形化工具进行服务编排后,平台根据用户在图形中定义的图元和连线的逻辑关系,并可以将图形化服务编排结果翻译成Java、Python和JavaScript多种编程语言,直接生成指定编程语言的可运行代码,然后经过代码编译形成新的编排后的服务接口。同时,解决了传统编程方式开发效率低的问题,也解决了基于运行引擎的微服务编排工具的运行效率低,不能扩展和调试的问题。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种可控定制化的后端开发系统,其特征在于,包括图形化服务编排工具和翻译引擎,所述图形化服务编排工具用于提供图灵完备的图形化服务编排,所述翻译引擎用于将每组图元翻译生成可运行的编程源码;
所述图形化服务编排工具中,图形化服务编排由服务定义和一组设计图元定义组成,图形化服务编排工具为设计人员提供可视化的设计;
所述翻译引擎中,将服务编排的设计结果中各个图元定义和服务定义翻译成多种编程语言,并将编程语言翻译成对应的编程源码。
2.根据权利要求1所述的一种可控定制化的后端开发系统,其特征在于,所述图形化服务编排工具在使用时,设计人员通过拖拽设计图元和图元属性定义,进行等同于代码编程的变量定义、表达式计算、函数调用、条件判断、循环调用在内的多种运算逻辑。
3.根据权利要求1所述的一种可控定制化的后端开发系统,其特征在于,所述翻译引擎翻译出的多种编程语言包括Java、Python和JavaScript在内的编程语言,并生成的编程源码可以通过编译或解释执行形成最终可以运行的服务接口。
4.根据权利要求1所述的一种可控定制化的后端开发系统,其特征在于,所述图形化服务编排工具的图形编排结果以XML格式进行存储,图形编排结果包括服务定义和各设计图元的定义信息和位置信息。
5.一种可控定制化的后端开发方法,基于权利要求1-4所述的一种可控定制化的后端开发系统中任一项进行操作,其特征在于,后端开发方法包括以下具体步骤:
S1、运行图形化服务编排工具,提供可视化设计;
S2、根据设计要求,进行图形化服务编排;
S3、输出图形化服务编排的结果,将结果转化成XML格式进行存储;
S4、运行翻译引擎,识别XML文件中的服务定义和各图元定义;
S5、将服务定义和各图元定义翻译成对应的编程源码;
S6、将生成的编程源码通过编译或解释执行形成最终可以运行的服务接口。
6.根据权利要求5所述的一种可控定制化的后端开发方法,其特征在于,所述S3中,图形编排结果中进一步包括服务定义和各设计图元的定义信息和位置信息;所述服务定义包括服务的方法名、服务的入口参数以及服务的返回值类型;所述图元的定义信息包括开始图元、动作图元、条件图元、循环图元、连线图元以及结束图元。
7.根据权利要求6所述的一种可控定制化的后端开发方法,其特征在于,所述服务的入口参数和返回值类型进一步的包括字符串、整数、小数、日期、布尔在内的定义参数名和参数类型。
8.根据权利要求6所述的一种可控定制化的后端开发方法,其特征在于,所述开始图元用于定义一个服务的入口,属性定义包括:图元类型;所述动作图元用于定义一个具体的运算方法,属性定义包括:图元类型、计算表达式、计算结果变量;所述条件图元用于定义一个条件分支判断,属性定义包括:图元类型、条件计算表达式;所述循环图元用于定义一个循环体,属性定义包括:图元类型、循环变量;所述连线图元用于定义图元之间的调用顺序,属性定义包括:图元类型、起始图元、结束图元;所述结束图元用于定义一个服务的结束,属性定义包括:图元类型、返回值计算表达式。
9.根据权利要求8所述的一种可控定制化的后端开发方法,其特征在于,所述图元的定义信息中的各个计算表达式定义支持变量的加、减、乘、除、大于、小于、等于的运算,和调用API函数,表达式中可以使用的变量包括服务的入口参数和动作图元计算所产生的新变量。
10.根据权利要求6所述的一种可控定制化的后端开发方法,其特征在于,所述设计图元的位置信息为在图形化服务编排工具中的位置定义,以X和Y值记录图元在设计面板中的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111650299.1A CN114489582A (zh) | 2021-12-30 | 2021-12-30 | 一种可控定制化的后端开发系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111650299.1A CN114489582A (zh) | 2021-12-30 | 2021-12-30 | 一种可控定制化的后端开发系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114489582A true CN114489582A (zh) | 2022-05-13 |
Family
ID=81508773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111650299.1A Pending CN114489582A (zh) | 2021-12-30 | 2021-12-30 | 一种可控定制化的后端开发系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114489582A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661771A (zh) * | 2023-05-16 | 2023-08-29 | 江苏江顺精密机电设备有限公司 | 一种用于物流调度系统的业务逻辑编译执行组件及方法 |
-
2021
- 2021-12-30 CN CN202111650299.1A patent/CN114489582A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661771A (zh) * | 2023-05-16 | 2023-08-29 | 江苏江顺精密机电设备有限公司 | 一种用于物流调度系统的业务逻辑编译执行组件及方法 |
CN116661771B (zh) * | 2023-05-16 | 2024-04-30 | 江苏江顺精密机电设备有限公司 | 一种用于物流调度系统的业务逻辑编译执行组件及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jézéquel et al. | Mashup of metalanguages and its implementation in the kermeta language workbench | |
Zhang et al. | Design, construction, and application of a generic visual language generation environment | |
CN110376959B (zh) | 一种基于fpga平台的软plc组态软件生成系统 | |
CN106648662B (zh) | 基于工程造价计算描述语言bcl的报表生成装置及生成方法 | |
US8201140B2 (en) | System and method for creating and using graphical object instances in a statechart environment | |
CN110149800B (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
JPH08202545A (ja) | ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法 | |
CN111309292B (zh) | 一种基于MATLAB/Simulink的全模型可执行程序构建方法 | |
CN110262794B (zh) | 一种基于规范与描述语言的aadl功能行为拓展方法及工具 | |
CN109933327B (zh) | 基于代码融合编译框架的OpenCL编译器设计方法和系统 | |
CN102779044B (zh) | 表达式的解析处理系统和解析处理方法 | |
CN114489582A (zh) | 一种可控定制化的后端开发系统及方法 | |
Fauth | Beyond tool-specific machine descriptions | |
Mannadiar et al. | Domain-specific engineering of domain-specific languages | |
CN117075909B (zh) | 用于实现并行编程的编译方法、电子设备和介质 | |
CN101351801B (zh) | 再构成语句的方法以及具有该功能的计算机系统 | |
CN116909553A (zh) | 一种页面在线开发及本地编译运行系统 | |
CN111190585A (zh) | 基于字节码增强技术实现java模式匹配特性的方法 | |
CN109933308A (zh) | 基于mpi+cuda的遥感卫星数据预处理流程可视化自定制通用系统 | |
JP2010049439A (ja) | ソフトウェアモデルを用いたシステム構築方法およびモデリング装置 | |
JP2007122187A (ja) | プログラム・コード生成装置 | |
Akers et al. | Case study: Re-engineering C++ component models via automatic program transformation | |
CN111126012B (zh) | 定制生成表达式方法及装置 | |
Mosses | Component-based description of programming languages | |
CN107918958B (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 |