CN111142867B - 微服务架构下的服务可视化编排***及方法 - Google Patents
微服务架构下的服务可视化编排***及方法 Download PDFInfo
- Publication number
- CN111142867B CN111142867B CN201911416158.6A CN201911416158A CN111142867B CN 111142867 B CN111142867 B CN 111142867B CN 201911416158 A CN201911416158 A CN 201911416158A CN 111142867 B CN111142867 B CN 111142867B
- Authority
- CN
- China
- Prior art keywords
- flow
- api
- service
- node
- execution
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000000007 visual effect Effects 0.000 title abstract description 14
- 230000008569 process Effects 0.000 claims abstract description 37
- 238000012544 monitoring process Methods 0.000 claims abstract description 17
- 238000012800 visualization Methods 0.000 claims abstract description 14
- 239000008186 active pharmaceutical agent Substances 0.000 claims description 25
- 238000013499 data model Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000002085 persistent effect Effects 0.000 claims description 4
- 238000007781 pre-processing Methods 0.000 claims description 3
- 238000012216 screening Methods 0.000 claims description 3
- 238000011144 upstream manufacturing Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 3
- 238000010276 construction Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000006798 recombination Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Classifications
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及微服务应用程序领域,具体涉及微服务架构下的服务可视化编排***及方法。包括用于进行流程运行状态可视化显示的编排流程监控模块;用于将API组合编排出新流程的可视化流程编排模块;用于将已编排好的流程重新发布为新的API,并进行管理的API服务管理模块;用于对流程编排过程中所需的业务逻辑处理进行统一规则创建和管理的规则管理模块;用于对已编排流程设定流程运行频率,并调度已编排流程的调度频率配置模块;用于在内存中根据编排的节点流程进行节点构建并推进执行,最后输出流程执行结果给调用端的流程执行引擎模块。本发明可以实现对微服务的大量API接口进行可视化编排和监控,并直接在内存中构建编排节点进行执行和调度。
Description
技术领域
本发明涉及微服务应用程序领域,具体涉及微服务架构下的服务可视化编排***及方法。
背景技术
微服务架构是一项在云中部署应用和服务的新技术。微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有***中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构。
API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件***不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。
微服务编排是指把已经开发好的微服务API接口(Restful、WebService、Dubbo、gRPC等)按照一定的业务逻辑和流程进行可视化编排的过程,微服务编排平台会在内部构建一个流程调度引擎进行自动化的调度或者重新聚合为一个新的微服务API进行发布。
通过微服务编排可以把已经开发好的API服务无需任何代码就可以进行业务逻辑的重组与重构,可以提升API服务的复用效率实现前台业务或业务***集成的敏捷交付,通过微服务编排平台也能把业务***、数据、业务逻辑进行解藕,业务逻辑的编排交由专门的微服务编排平台完成,而API服务只需要专注完成自已内部的逻辑即可。
随着微服务架构的推行,企事业单位基于微服务架构的业务***会越来越多,而微服务架构会产生大量的API服务接口以及接口之间的相互调用。目前的开发人员主要的处理方式通过编码的方式实现多个API之间的组合与调用,存在编码效率低下接口之间的调用监控存在困难等问题出现故障时不能主动恢复等问题。
同时也有基于工作流方式来实现API服务接口进行编排的工具和***,目前的这种工具***都需要强依赖于持久化的SQL数据库技术来实现的,基于数据库存的表结构来实现API节点的状态改变和推进,被编排的节点在运行过程中需要实时把状态数据持久化到数据库中,基于这类技术的编排***都存在并发性能问题,因为并行执行节点时很大一部分取决于数据库的读写性能,随着微服务架构的推行和使用,大量的API会被同时编排在一个复杂的流程中,而且分布式***一般对性能要求很高,具有很高的并发特性,而目前这种基于SQL数据库技术的API组合与编排在大并发场景下存在明显的缺陷。
发明内容
针对现有技术存在的不足,本发明提供了微服务架构下的服务可视化编排***及方法,其应用时,可以实现对微服务的大量API接口进行可视化编排和监控,并直接在内存中构建编排节点进行执行和调度,编排API在运行过程中不依赖于数据库。
本发明所采用的技术方案为:
微服务架构下的服务可视化编排***,包括用于监控正在调度和运行中的流程,并进行流程运行状态可视化显示和回放的编排流程监控模块;用于对API采用可视化拖、拉、拽的方式组合编排出新的流程的可视化流程编排模块;用于将已编排好的流程重新发布为一个新的API,并对新发布的API进行管理和测试的API服务管理模块;用于对流程编排过程中所需的业务逻辑处理进行统一规则创建和管理的规则管理模块;用于对已编排流程设定流程运行频率,并根据流程运行频率调度已编排流程的调度频率配置模块;以及用于在内存中根据编排的节点流程进行节点构建并推进执行,最后输出流程执行结果给调用端的流程执行引擎模块。
作为上述技术方案的优选,所述编排流程监控模块所监控的流程信息包括流程运行情况统计信息、运行失败流程信息、正常结束流程信息和待补偿流程信息;所述可视化流程编排模块组合编排后的流程包括流程名称、流程编号、节点名称、节点类型、API URL地址、API的调用方法、API的结果断言和API的输入参数;所述API服务管理模块的测试管理内容包括API的名称、API发布的URL地址、API的权限、API的请求方式和API的Doc文档;所述规则管理模块的管理内容包括规则名称、规则编号、规则可见范围和规则逻辑代码;所述调度频率配置模块的调度依据包含调度名称、调度时间表达式和调度可用状态;所述流程执行引擎模块的执行内容包括流程启动、流程暂停、流程等待、流程恢复、流程补偿和节点驱动。
微服务架构下的服务可视化编排方法,包括以下步骤:
S1、对API服务进行图形化的流程编排;
S2、在内存中构建编排后的流程所对应的流程实例对象;
S3、读取编排流程的JSON数据模型并加载各种API节点的驱动逻辑到内存中;
S4、根据JSON数据模型中描述的路由线和条件计算流程实例各节点的前后关联节点;
S5、在内存中逐个执行流程实例的节点中指定的API并对返回结果进行断言,根据断言结果选择下一步要执行的路由和节点;
S6、在内存中使用队列来保存流程实例各节点当前运行状态以及运行的结果数据;
S7、流程结束时将流程实例各节点中API的调用结果数据在内存中进行汇总并输出至调用端,并采用异步线程方式对流程实例在内存中产生的实例数据持久化到MongoDB数据库中。
作为上述技术方案的优选,在步骤S1中,进行流程编排的具体步骤包括:
S11、创建一个新流程;
S12、在新创建的流程中进行API节点的流程图绘制;
S13、将现有的API节点拖拽到流程图中,并使用路由线按照执行的先后顺序进行各节点的链接;
S14、对拖入的各API节点进行API URL的绑定和输入输出参数的设定;
S15、将编排的流程图形文件发布为一个新的API,并绑定一个调度策略。
作为上述技术方案的优选,在步骤S2中,在内存中构建流程实例对象后的步骤还包括:
S21、判断流程实例的并发数,若并发数有限制则退出执行,否则创建新的ProcessEngine来保存全局的流程变量数据;
S22、将流程实例对象加入全局的可执行队列中并进行时监控;
S23、构建一个全局的流程事务id来统一标识流程实例以及后继运行的流程节点实例。
作为上述技术方案的优选,所述步骤S3的具体步骤包括:
S31、读取编排流程的JSON数据模型并解析为Document对象,然后进行数据预处理;
S32、分析JSON数据模型中所有的API类型和路由线,并加载各API节点的驱动逻辑到内存中。
作为上述技术方案的优选,所述步骤S4的具体步骤包括:
S41、加载各路由线中的计算条件逻辑并进行语法的预校验,如果出错则退出流程的执行;
S42、对加载的计算条件进行编译并计算,根据计算结果排除不合逻辑的节点;
S43、根据路由关系重新进行节点的上下游关联,并重新计算API节点和路由线的关系。
作为上述技术方案的优选,所述步骤S5的具体步骤包括:
S51、根据API的类型执行API驱动的统一入口执行方法;
S52、获取API驱动执行方法的返回字符串结果,并存入流程实例的全局变量中;
S53、调用API节点中配置的断言逻辑并根据断言逻辑返回相应的数据,如果断言成功则返回true,如果断言失败则返回false;
S54、根据断言结果计算后继的路由线并获取路由线的目标节点进行推进执行。
作为上述技术方案的优选,在步骤S7中将API的调用结果数据进行输出的步骤包括:
S71、根据API节点中的结果数据需求进行数据筛选;
S72、把要输出的结果数据组合成JSON数据包;
S73、根据各节点执行的成功与失败来标识整个流程实例的执行成功与失败,不管流程实例是否执行成功都将已经运行的结果数据输出至调用端。
本发明的有益效果为:
本发明可以使微服务编排***的API执行和调度效率获得大幅提升,同时带来管理和监控方面的效率提升,如果企业的业务能力全部以API的形式对外开放时,服务编排平台将具有实现企业业务能力快速重组的功能,即通过拖、拉、拽就可以实现一个新的业务创新点然后对外提供服务,编排平台将处于所有业务***之上的一种高级的能力重组中心,同时通过编排平台还可以实现企业私有化业务***与云端SaaS***、数据中心进行打通,可以大幅降低API相互调用的开发成本,同时可支持大并发量API同时执行与调度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的***结构示意框图;
图2为本发明的方法流程示意图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,术语第一、第二等仅用于区分描述,而不能理解为指示或暗示相对重要性。尽管本文可以使用术语第一、第二等等来描述各种单元,这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
应当理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况,本文中术语“/和”是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况,另外,本文中字符“/”,一般表示前后关联对象是一种“或”关系。
应当理解,在本发明的描述中,术语“上”、“竖直”、“内”、“外”等指示的方位或位置关系,是该发明产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
应当理解,当将单元称作与另一个单元“连接”、“相连”或“耦合”时,它可以与另一个单元直相连接或耦合,或中间单元可以存在。相対地,当将单元称作与另一个单元“直接相连”或“直接耦合”时,不存在中间单元。应当以类似方式来解释用于描述单元之间的关系的其他单词(例如,“在……之间”对“直接在……之间”,“相邻”对“直接相邻”等等)。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本文使用的术语仅用于描述特定实施例,并且不意在限制本发明的示例实施例。如本文所使用的,单数形式“一”、“一个”以及“该”意在包括复数形式,除非上下文明确指示相反意思。还应当理解术语“包括”、“包括了”、“包含”、和/或“包含了”当在本文中使用时,指定所声明的特征、整数、步骤、操作、单元和/或组件的存在性,并且不排除一个或多个其他特征、数量、步骤、操作、单元、组件和/或他们的组合存在性或增加。
还应当注意到在一些备选实施例中,所出现的功能/动作可能与附图出现的顺序不同。例如,取决于于所涉及的功能/动作,实际上可以实质上并发地执行,或者有时可以以相反的顺序来执行连续示出的两个图。
在下面的描述中提供了特定的细节,以便于对示例实施例的完全理解。然而,本领域普通技术人员应当理解可以在没有这些特定细节的情况下实现示例实施例。例如可以在框图中示出***,以避免用不必要的细节来使得示例不清楚。在其他实施例中,可以不以非必要的细节来示出众所周知的过程、结构和技术,以避免使得示例实施例不清楚。
实施例1:
本实施例提供了微服务架构下的服务可视化编排***,如图1所示,包括:
编排流程监控模块:流程监控模块主要对正在内存中运行的流程或已经结束并持久化的流程进行监控和分析,统计成功和失败的次数以及每个流程的平均执行时间,主要用来快速定位每个流程的执行情况,监控数据中包含流程执行成功次数、失败次数、待补偿次数、流程开始时间、流程结束时间、执行流程所在的服务器IP、流程执行实生的日志数据等。
可视化流程编排模块:可视化流程编排模块主要通过图形化的方式把相互关联的API通过拖、拉、拽的方式拉到入图形绘制区域,再根据API需要相互执行的逻辑如:串行执行、并行执行、异步并行执行等关系使用路由线进行链接,每个节点需要指定要调用的API的名称、API的Method、API的URL地址、API的输入参数、API的Header头信息、API调用结果的断言逻辑等,完成流程图的绘制后把流程图形保存为一个JSON数据的字符串并与流程执行引擎模块相关联。
API服务管理模块:API服务管理模块主要是把编排好的流程发布成为一个新的API接口,当用户调用这个API服务时流程执行引擎将立即在内存中运行一次本流程并把运行结果输出给调用端,一个流程允许同时发布多个不同URL的API接口,在API服务管理模块中可对已经发布的API接口进行统一管理,可以对API进行发布、删除、修改、输入参数配置、API测试、API权管理等。
规则管理模块:服务编排中各节点之间存在数据转换逻辑以及业务代码逻辑,通过统一的规则管理模块实现业务逻辑代码的统一管理,规则代码使用纯Java语法进行编写,规则管理包含:规则名称、规则类型、规则代码、创建时间、是否公开规则、创建人等信息,规则管理模块与可视化流程编排模块进行关联选择。
调度频率配置模块:调度频率配置主要实现对编排好的流程设定一定的执行频率和间隔时间,流程调度引擎根据此设置自动在内存中启动流程实例并执行,调度模块包含:调度名称、调度时间表达式、调度可用状态、创建人、创建时间等信息。
流程执行引擎模块:流程执行引擎模块主要负责加载流程模型数据,首先根据流程唯一ID加载流程模型的所有节点数据到内存中,并使用Map对像根据API节点的类型进行分类存储,并按以下步骤在内存中进行流程推进:
1.启动编排执行引擎;
2.从内存中查找流程是否存在,如果流程模型存在则立即创建流程主实例对像;
3.立即查找流程的开始节点,如果流程没有开始节点则提示错误,如果存在则返回节点的后续所有路由线配置对像;
4.如果路由线的后续节点存在则立即查找开始节点后继的路由线;
5.立即计算路由线中绑定的计算逻辑,如果逻辑成立则找到目标节点并加载目标节点的驱动;
6.执行目标节点的业务驱动逻辑并把节点的状态数据保存到内存的Map对像中;
7.节点执行成功重复步骤6.4-6.6即可完成整个流程节点在内存中的推进直到运行到结束节点时才结束整个流程的运行;
8.开启一个异步线程把内存中所有运行状态数据和结果数据持久化到MongoDB数据库中。
具体实施时,用户可通过浏览器进入***的用户UI操作界面来进行流程的可视化编排,***最终将内存中所有运行状态数据和结果数据持久化到MongoDB数据库中。
本发明通过图形化的方式快速对大规模的API服务进行可视化的编排和聚合并形成流程模型的JSON描述格式,在编排引擎运行时全面基于内存来存储流程节点所运行的状态数据,相比采用实时持久化数据库和编码模式的方式来编排API服务具有编排效率高,运行稳定、支持高性大并发等优势,为企业基于微服务架构的业务***提供一层专门的服务编排和聚合层。
实施例2:
本实施例提供了微服务架构下的服务可视化编排***,如图2所示,包括以下步骤:
S1、对API服务进行图形化的流程编排;
S2、在内存中构建编排后的流程所对应的流程实例对象;
S3、读取编排流程的JSON数据模型并加载各种API节点的驱动逻辑到内存中;
S4、根据JSON数据模型中描述的路由线和条件计算流程实例各节点的前后关联节点;
S5、在内存中逐个执行流程实例的节点中指定的API并对返回结果进行断言,根据断言结果选择下一步要执行的路由和节点;
S6、在内存中使用队列来保存流程实例各节点当前运行状态以及运行的结果数据;
S7、流程结束时将流程实例各节点中API的调用结果数据在内存中进行汇总并输出至调用端,并采用异步线程方式对流程实例在内存中产生的实例数据持久化到MongoDB数据库中。
在步骤S1中,进行流程编排的具体步骤包括:
S11、创建一个新流程;
S12、在新创建的流程中进行API节点的流程图绘制;
S13、将现有的API节点拖拽到流程图中,并使用路由线按照执行的先后顺序进行各节点的链接;
S14、对拖入的各API节点进行API URL的绑定和输入输出参数的设定;
S15、将编排的流程图形文件发布为一个新的API,并绑定一个调度策略。
在步骤S2中,在内存中构建流程实例对象后的步骤还包括:
S21、判断流程实例的并发数,若并发数有限制则退出执行,否则创建新的ProcessEngine来保存全局的流程变量数据;
S22、将流程实例对象加入全局的可执行队列中并进行时监控;
S23、构建一个全局的流程事务id来统一标识流程实例以及后继运行的流程节点实例。
所述步骤S3的具体步骤包括:
S31、读取编排流程的JSON数据模型并解析为Document对象,然后进行数据预处理;
S32、分析JSON数据模型中所有的API类型和路由线,并加载各API节点的驱动逻辑到内存中。
所述步骤S4的具体步骤包括:
S41、加载各路由线中的计算条件逻辑并进行语法的预校验,如果出错则退出流程的执行;
S42、对加载的计算条件进行编译并计算,根据计算结果排除不合逻辑的节点;
S43、根据路由关系重新进行节点的上下游关联,并重新计算API节点和路由线的关系。
所述步骤S5的具体步骤包括:
S51、根据API的类型执行API驱动的统一入口执行方法;
S52、获取API驱动执行方法的返回字符串结果,并存入流程实例的全局变量中;
S53、调用API节点中配置的断言逻辑并根据断言逻辑返回相应的数据,如果断言成功则返回true,如果断言失败则返回false;
S54、根据断言结果计算后继的路由线并获取路由线的目标节点进行推进执行。
在步骤S7中将API的调用结果数据进行输出的步骤包括:
S71、根据API节点中的结果数据需求进行数据筛选;
S72、把要输出的结果数据组合成JSON数据包;
S73、根据各节点执行的成功与失败来标识整个流程实例的执行成功与失败,不管流程实例是否执行成功都将已经运行的结果数据输出至调用端。
本发明通过内存数据的异步持久化技术在API调用失败时可以进行全流程重跑也可以只跑某几个重要API节点,采用本发明的***能够很好的进行节点数据的恢复并进行失败节点的恢复重跑。
本发明在流程图形的设计上遵循BPMN2.0规范,这样有利于原来就熟悉工作流的人员可以快速的进行API服务的编排与绘制。在编排流程的监控上实现了完全可视化的流程回放能力,可视化的数据追朔能力,API调用实时监控能力,同时可以统计编排流程的平均性能、运行次数、失败次数。
实施例3:
作为对上述实施例的优化,流程引擎接口逻辑定义代码如下:
编排节点的驱动接口定义如下:
/>
本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。
Claims (6)
1.微服务架构下的服务可视化编排方法,其特征在于,包括以下步骤:
S1、对API服务进行图形化的流程编排;
S2、在内存中构建编排后的流程所对应的流程实例对象;
S3、读取编排流程的JSON数据模型并加载各种API节点的驱动逻辑到内存中,具体包括:
S31、读取编排流程的JSON数据模型并解析为Document对象,然后进行数据预处理;
S32、分析JSON数据模型中所有的API类型和路由线,并加载各API节点的驱动逻辑到内存中;
S4、根据JSON数据模型中描述的路由线和条件计算流程实例各节点的前后关联节点;
S5、在内存中逐个执行流程实例的节点中指定的API并对返回结果进行断言,根据断言结果选择下一步要执行的路由和节点;
S6、在内存中使用队列来保存流程实例各节点当前运行状态以及运行的结果数据;
S7、流程结束时将流程实例各节点中API的调用结果数据在内存中进行汇总并输出至调用端,并采用异步线程方式对流程实例在内存中产生的实例数据持久化到MongoDB数据库中。
2.根据权利要求1所述的微服务架构下的服务可视化编排方法,其特征在于:在步骤S1中,进行流程编排的具体步骤包括:
S11、创建一个新流程;
S12、在新创建的流程中进行API节点的流程图绘制;
S13、将现有的API节点拖拽到流程图中,并使用路由线按照执行的先后顺序进行各节点的链接;
S14、对拖入的各API节点进行API URL的绑定和输入输出参数的设定;
S15、将编排的流程图形文件发布为一个新的API,并绑定一个调度策略。
3.根据权利要求1所述的微服务架构下的服务可视化编排方法,其特征在于:在步骤S2中,在内存中构建流程实例对象后的步骤还包括:
S21、判断流程实例的并发数,若并发数有限制则退出执行,否则创建新的ProcessEngine来保存全局的流程变量数据;
S22、将流程实例对象加入全局的可执行队列中并进行时监控;
S23、构建一个全局的流程事务id来统一标识流程实例以及后继运行的流程节点实例。
4.根据权利要求1所述的微服务架构下的服务可视化编排方法,其特征在于:所述步骤S4的具体步骤包括:
S41、加载各路由线中的计算条件逻辑并进行语法的预校验,如果出错则退出流程的执行;
S42、对加载的计算条件进行编译并计算,根据计算结果排除不合逻辑的节点;
S43、根据路由关系重新进行节点的上下游关联,并重新计算API节点和路由线的关系。
5.根据权利要求1所述的微服务架构下的服务可视化编排方法,其特征在于:所述步骤S5的具体步骤包括:
S51、根据API的类型执行API驱动的统一入口执行方法;
S52、获取API驱动执行方法的返回字符串结果,并存入流程实例的全局变量中;
S53、调用API节点中配置的断言逻辑并根据断言逻辑返回相应的数据,如果断言成功则返回true,如果断言失败则返回false;
S54、根据断言结果计算后继的路由线并获取路由线的目标节点进行推进执行。
6.根据权利要求1所述的微服务架构下的服务可视化编排方法,其特征在于:在步骤S7中将API的调用结果数据进行输出的步骤包括:
S71、根据API节点中的结果数据需求进行数据筛选;
S72、把要输出的结果数据组合成JSON数据包;
S73、根据各节点执行的成功与失败来标识整个流程实例的执行成功与失败,不管流程实例是否执行成功都将已经运行的结果数据输出至调用端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911416158.6A CN111142867B (zh) | 2019-12-31 | 2019-12-31 | 微服务架构下的服务可视化编排***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911416158.6A CN111142867B (zh) | 2019-12-31 | 2019-12-31 | 微服务架构下的服务可视化编排***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111142867A CN111142867A (zh) | 2020-05-12 |
CN111142867B true CN111142867B (zh) | 2024-04-02 |
Family
ID=70522740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911416158.6A Active CN111142867B (zh) | 2019-12-31 | 2019-12-31 | 微服务架构下的服务可视化编排***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111142867B (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694888A (zh) * | 2020-06-12 | 2020-09-22 | 谷云科技(广州)有限责任公司 | 基于微服务架构的分布式etl数据交换***及方法 |
CN111722929A (zh) * | 2020-06-18 | 2020-09-29 | 南京龙猫商业智能科技股份有限公司 | 一种基于PaaS的微服务编排引擎管理方法 |
CN113923250B (zh) * | 2020-07-07 | 2023-04-07 | 华为技术有限公司 | 一种辅助网络服务编排的方法、装置及*** |
CN112015372B (zh) * | 2020-07-24 | 2022-12-23 | 北京百分点科技集团股份有限公司 | 一种异构服务的编排方法、处理方法、装置及电子设备 |
CN112083912B (zh) * | 2020-08-17 | 2024-03-12 | 山东中创软件商用中间件股份有限公司 | 服务编排的中间结果处理方法、装置、设备及存储介质 |
CN112085591B (zh) * | 2020-09-03 | 2023-11-07 | 广州嘉为科技有限公司 | 一种基于图论在银行跑批的可视化编排方法 |
CN112068825A (zh) * | 2020-09-23 | 2020-12-11 | 山东泽鹿安全技术有限公司 | 一种可实现异构化节点的可视化联动编排方法 |
CN112256258A (zh) * | 2020-10-22 | 2021-01-22 | 北京神州数字科技有限公司 | 微服务编排自动代码生成方法及*** |
CN112462629A (zh) * | 2020-11-06 | 2021-03-09 | 蘑菇物联技术(深圳)有限公司 | 一种控制器控制算法的解释方法 |
CN112380199A (zh) * | 2020-11-10 | 2021-02-19 | 珠海市新德汇信息技术有限公司 | 一种大数据端到端的数据对账编排方法 |
CN112418784B (zh) * | 2020-11-11 | 2021-11-30 | 北京京航计算通讯研究所 | 一种服务的编排执行***及方法 |
CN112379884B (zh) * | 2020-11-13 | 2024-01-12 | 李斌 | 基于Spark和并行内存计算的流程引擎实现方法及*** |
CN112506498A (zh) * | 2020-11-30 | 2021-03-16 | 广东电网有限责任公司 | 一种智慧型可视化api编排方法、存储介质及电子设备 |
CN112486073B (zh) * | 2020-12-03 | 2022-04-19 | 用友网络科技股份有限公司 | 机器人控制方法、控制***和可读存储介质 |
CN112527254B (zh) * | 2020-12-04 | 2024-06-28 | 佰聆数据股份有限公司 | 基于服务编排的业务策略设计方法、***及计算机设备 |
CN112558934B (zh) * | 2020-12-10 | 2024-01-05 | 中盈优创资讯科技有限公司 | 一种基于编排控制流程业务开通的控制子任务引擎装置 |
CN112698878A (zh) * | 2020-12-18 | 2021-04-23 | 浙江中控技术股份有限公司 | 基于算法微服务的计算方法及*** |
CN112685011B (zh) * | 2020-12-21 | 2022-06-07 | 福建新大陆软件工程有限公司 | 一种基于Vue的AI应用可视化编排方法 |
CN112685004B (zh) * | 2020-12-21 | 2022-08-05 | 福建新大陆软件工程有限公司 | 一种基于实时流计算的在线组件编排计算方法及*** |
CN112966202A (zh) * | 2021-03-03 | 2021-06-15 | 浪潮云信息技术股份公司 | 一种多个政务服务融合的实现方法 |
CN113254004B (zh) * | 2021-04-13 | 2023-02-21 | 西安热工研究院有限公司 | 一种基于wf4.0框架的数据统计平台 |
CN113157268B (zh) * | 2021-04-26 | 2024-03-22 | 绵阳市智慧城市产业发展有限责任公司 | 一种流程引擎与物联网相结合的设备状态处理*** |
CN113268319A (zh) * | 2021-05-07 | 2021-08-17 | 中国电子科技集团公司第五十四研究所 | 基于微服务架构的业务流程定制与分布式流程调度方法 |
CN113238844A (zh) * | 2021-05-17 | 2021-08-10 | 上海中通吉网络技术有限公司 | 服务编排执行路径回显方法 |
CN113448568A (zh) * | 2021-06-24 | 2021-09-28 | 未鲲(上海)科技服务有限公司 | 服务编排调用方法、装置、计算机设备及存储介质 |
CN113726871B (zh) * | 2021-08-27 | 2024-02-02 | 猪八戒股份有限公司 | 一种自动化代码发布的调度方法及*** |
CN113791766B (zh) * | 2021-09-16 | 2023-05-16 | 易保网络技术(上海)有限公司 | 组合数据接口的方法、电子设备和可读存储介质 |
CN113805870B (zh) * | 2021-09-18 | 2024-01-30 | 上海熙菱信息技术有限公司 | 一种基于bff架构的服务接口编排方法和*** |
CN114416064A (zh) * | 2021-12-16 | 2022-04-29 | 江苏康众汽配有限公司 | 基于bpmn2.0的分布式服务编排***及方法 |
WO2023159573A1 (zh) * | 2022-02-28 | 2023-08-31 | 西门子股份公司 | 接口映射方法、装置、电子设备和计算机可读介质 |
CN114691233A (zh) * | 2022-03-16 | 2022-07-01 | 中国电子科技集团公司第五十四研究所 | 一种基于工作流引擎的遥感数据处理插件分布式调度方法 |
CN115202641B (zh) * | 2022-09-13 | 2023-02-03 | 深圳联友科技有限公司 | 一种不限开发语言的混合任务编排引擎的方法 |
CN115509523B (zh) * | 2022-11-24 | 2023-03-03 | 湖南创星科技股份有限公司 | 一种api服务快速组建方法以及*** |
CN115955408A (zh) * | 2022-12-23 | 2023-04-11 | 上海基煜基金销售有限公司 | 基于Conductor框架的应用编排服务***及方法 |
CN116860362B (zh) * | 2023-07-05 | 2024-03-19 | 广州市玄武无线科技股份有限公司 | 一种应用于流程编排引擎的插件事务管理方法及装置 |
CN117806611B (zh) * | 2024-02-29 | 2024-05-14 | 鱼快创领智能科技(南京)有限公司 | 基于接口发现的可视化自动编排创建新服务接口的方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102034151A (zh) * | 2010-12-13 | 2011-04-27 | 东莞市高鑫机电科技服务有限公司 | 基于soa的企业协同管理***业务流程设计方法及*** |
CN105512304A (zh) * | 2015-12-11 | 2016-04-20 | 西安道同信息科技有限公司 | 在线生成互联网应用方法和***集成方法及支撑平台 |
CN106846226A (zh) * | 2017-01-19 | 2017-06-13 | 湖北省基础地理信息中心(湖北省北斗卫星导航应用技术研究院) | 一种时空信息组装管理*** |
CN108279866A (zh) * | 2018-01-24 | 2018-07-13 | 马上消费金融股份有限公司 | 一种业务流程的编排执行方法、装置及介质 |
CN108681451A (zh) * | 2018-05-14 | 2018-10-19 | 浪潮软件集团有限公司 | 一种可视化的kubernetes微服务编排的实现方法 |
CN109634561A (zh) * | 2018-10-16 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 一种在线可视化编程方法及装置 |
CN110442481A (zh) * | 2019-07-10 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 业务处理方法、业务组件容器及电子设备 |
CN110532020A (zh) * | 2019-09-04 | 2019-12-03 | 中国工商银行股份有限公司 | 一种微服务编排的数据处理方法、装置及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8332864B2 (en) * | 2003-06-12 | 2012-12-11 | Reuters America Inc. | Business process automation |
US10389602B2 (en) * | 2016-12-05 | 2019-08-20 | General Electric Company | Automated feature deployment for active analytics microservices |
-
2019
- 2019-12-31 CN CN201911416158.6A patent/CN111142867B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102034151A (zh) * | 2010-12-13 | 2011-04-27 | 东莞市高鑫机电科技服务有限公司 | 基于soa的企业协同管理***业务流程设计方法及*** |
CN105512304A (zh) * | 2015-12-11 | 2016-04-20 | 西安道同信息科技有限公司 | 在线生成互联网应用方法和***集成方法及支撑平台 |
CN106846226A (zh) * | 2017-01-19 | 2017-06-13 | 湖北省基础地理信息中心(湖北省北斗卫星导航应用技术研究院) | 一种时空信息组装管理*** |
CN108279866A (zh) * | 2018-01-24 | 2018-07-13 | 马上消费金融股份有限公司 | 一种业务流程的编排执行方法、装置及介质 |
CN108681451A (zh) * | 2018-05-14 | 2018-10-19 | 浪潮软件集团有限公司 | 一种可视化的kubernetes微服务编排的实现方法 |
CN109634561A (zh) * | 2018-10-16 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 一种在线可视化编程方法及装置 |
CN110442481A (zh) * | 2019-07-10 | 2019-11-12 | 阿里巴巴集团控股有限公司 | 业务处理方法、业务组件容器及电子设备 |
CN110532020A (zh) * | 2019-09-04 | 2019-12-03 | 中国工商银行股份有限公司 | 一种微服务编排的数据处理方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN111142867A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111142867B (zh) | 微服务架构下的服务可视化编排***及方法 | |
CN106528424B (zh) | 基于后台***服务或接口的测试方法和测试平台 | |
US10909028B1 (en) | Multi-version regression tester for source code | |
US20200174917A1 (en) | Rapid Automation First-pass Testing Framework | |
US9542256B2 (en) | Analysis stack for an event flow | |
CN110928772A (zh) | 一种测试方法及装置 | |
CN102222043B (zh) | 一种测试方法和测试装置 | |
US9466041B2 (en) | User selected flow graph modification | |
US20110047415A1 (en) | Debugging of business flows deployed in production servers | |
KR101797185B1 (ko) | 분산 환경에서 효율적으로 트랜젝션-분리 메트릭들을 수집하는 방법 | |
US20110283239A1 (en) | Visual analysis and debugging of complex event flows | |
US8769086B2 (en) | Component independent process integration message monitoring | |
CN108255585B (zh) | Sdk异常控制及应用程序运行方法、装置及其设备 | |
US20140123143A1 (en) | Transaction load reduction for process completion | |
US20170262497A1 (en) | Component independent process integration message search | |
US20110145518A1 (en) | Systems and methods for using pre-computed parameters to execute processes represented by workflow models | |
CN113961332A (zh) | 一种工作流引擎实现的方法、装置、电子设备及存储介质 | |
CN106062738B (zh) | 管理作业状态 | |
CN113485911A (zh) | 一种基于银行业务的测试数据生成平台 | |
CN117762865A (zh) | 大数据平台的数据入湖方法及*** | |
US11995587B2 (en) | Method and device for managing project by using data merging | |
CN103092617A (zh) | 一种基于后备服务的高可靠工作流开发方法 | |
CN115794917A (zh) | 一种资源数据的导入方法及装置 | |
CN114936152A (zh) | 应用测试方法及设备 | |
CN111651223B (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 |