CN116643854A - 一种服务编排方法、装置、流程控制器及任务处理器 - Google Patents
一种服务编排方法、装置、流程控制器及任务处理器 Download PDFInfo
- Publication number
- CN116643854A CN116643854A CN202210141812.2A CN202210141812A CN116643854A CN 116643854 A CN116643854 A CN 116643854A CN 202210141812 A CN202210141812 A CN 202210141812A CN 116643854 A CN116643854 A CN 116643854A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- transaction
- processor
- service
- 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
- 238000000034 method Methods 0.000 title claims abstract description 84
- 230000008569 process Effects 0.000 claims description 24
- 230000000007 visual effect Effects 0.000 claims description 17
- 238000002372 labelling Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种服务编排方法、装置、流程控制器及任务处理器,涉及通信技术领域。该方法包括:接收第一用户的第一服务请求指令;根据所述第一服务请求指令,获取第一配置信息,所述第一配置信息包括编排流程信息;根据所述第一配置信息,创建工作流实例;在所述工作流实例运行至第一节点时,向任务处理器发布任务,其中,所述第一节点为所述工作流实例中所包含的工作流节点中除开始节点和结束节点之外的任一工作流节点;接收所述任务处理器反馈的任务执行结果;根据所述任务执行结果,对所述第一节点的节点状态进行更新。本发明的方案,解决了现有技术在服务编排时难以灵活增加编排逻辑的问题。
Description
技术领域
本发明涉及服务编排技术领域,特别是指一种服务编排方法、装置、流程控制器及任务处理器。
背景技术
中台架构是当前最流行的系统架构之一,中台里包含了大量的原子能力服务,每个原子能力服务提供其负责的特定领域的功能。在某些情况下,需要将多个原子能力服务协同组合起来,形成一个新的符合业务要求的原子能力服务提供给调用方。服务编排就是这个协调组合的过程,它按照一定的调用顺序和逻辑协调多个原子能力,编排出一个满足业务需求的新能力服务。特别的,在涉及订单支付等要求一致性的场景时,服务编排还需要保证分布式事务一致性。
服务编排可以通过硬编码的方式进行,但这种方式开发效率较低、迭代周期慢,难以适应快速变化的业务。相比较而言,结构化描述语言能够动态生成编排,其开发效率较高。
然而,现有方案虽然实现了动态生成编排逻辑的功能,但是其逻辑均存在于编译生成的可执行脚本中,当业务功能需要增加编排文件难以描述的逻辑时,现有的编排框架难以灵活处理。
发明内容
本发明的目的是提供一种服务编排方法、装置、流程控制器及任务处理器,解决了现有技术在服务编排时难以灵活增加编排逻辑的问题。
为达到上述目的,本发明的实施例提供一种服务编排方法,应用于流程控制器,包括:
接收第一用户的第一服务请求指令;
根据所述第一服务请求指令,获取第一配置信息,所述第一配置信息包括编排流程信息;
根据所述第一配置信息,创建工作流实例;
在所述工作流实例运行至第一节点时,向任务处理器发布任务,其中,所述第一节点为所述工作流实例中所包含的工作流节点中除开始节点和结束节点之外的任一工作流节点;
接收所述任务处理器反馈的任务执行结果;
根据所述任务执行结果,对所述第一节点的节点状态进行更新。
可选地,在获取第一配置信息之前,所述方法还包括:
接收第二用户通过可视化界面输入的第一服务配置指令;
基于BPMN(Business Process Modeling Notation,业务流程建模与标注)工作流协议,根据所述第一服务配置指令,生成所述第一配置信息。
可选地,所述在所述工作流实例运行至第一节点时,向任务处理器发布任务,包括:
在所述工作流实例运行至所述第一节点时,确定所述第一节点的节点状态是否为就绪状态;
在所述第一节点的节点状态为就绪状态的情况下,向所述任务处理器中的任务队列发布任务。
可选地,在根据所述任务执行结果,对所述第一节点的节点状态进行更新之后,所述方法还包括:
在所述工作流实例运行至所述结束节点的情况下,向所述第一用户发送编排服务执行结果。
为达到上述目的,本发明的实施例提供一种服务编排方法,应用于任务处理器,包括:
接收流程控制器发布的任务;
进行所述任务的执行;
在所述任务执行完成后,向所述流程控制器反馈所述任务的任务执行结果。
可选地,所述进行所述任务的执行,包括:
所述任务处理器中的执行器读取任务队列中的任务,确定所述任务中是否存在与所述执行器的类型相匹配第一任务;
在存在所述第一任务的情况下,所述执行器执行所述第一任务。
可选地,所述方法还包括:
第一执行器开启第一事务的执行流程时,生成所述第一事务的第一标识,并向TC(Transaction Controller,事务协调器)注册所述第一标识,以及将所述第一标识写入编排上下文;
第二执行器在执行所述第一事务时,从所述编排上下文中获取所述第一标识,并将所述第一标识传递给第一原子能力服务,以及将所述第一标识与所述第一事务绑定,其中,所述第一原子能力服务为所述第二执行器执行所述第一事务时所调用的原子能力服务;
所述第二执行器在执行完所述第一事务之后,将所述第一事务的事务执行结果写入到编排上下文中;
第三执行器从所述编排上下文中获取所述第一事务的事务执行结果,并根据所述第一事务的事务执行结果,向所述TC发送指示信息;
其中,所述执行器包括所述第一执行器、所述第二执行器和所述第三执行器。
可选地,所述根据所述第一事务的事务执行结果,向所述TC发送指示信息,包括以下至少一项:
在所述第一事务中的全部任务均执行成功的情况下,向所述TC发送指示信息,所述指示信息用于指示提交所述事务执行结果;
在所述第一事务中的任意一个任务执行失败的情况下,向所述TC发送指示信息,所述指示信息用于指示回滚所述第一事务。
为达到上述目的,本发明的实施例提供一种服务编排装置,应用于流程控制器,包括:
第一接收模块,用于接收第一用户的第一服务请求指令;
第一获取模块,用于根据所述第一服务请求指令,获取第一配置信息,所述第一配置信息包括编排流程信息;
实例创建模块,用于根据所述第一配置信息,创建工作流实例;
任务发布模块,用于在所述工作流实例运行至第一节点时,向任务处理器发布任务,其中,所述第一节点为所述工作流实例中所包含的工作流节点中除开始节点和结束节点之外的任一工作流节点;
第二接收模块,用于接收所述任务处理器反馈的任务执行结果;
状态更新模块,用于根据所述任务执行结果,对所述第一节点的节点状态进行更新。
可选地,所述装置还包括:
第四接收模块,用于接收第二用户通过可视化界面输入的第一服务配置指令;
第一配置模块,用于基于业务流程建模与标注BPMN工作流协议,根据所述第一服务配置指令,生成所述第一配置信息。
可选地,所述任务发布模块包括:
在所述工作流实例运行至所述第一节点时,确定所述第一节点的节点状态是否为就绪状态;
在所述第一节点的节点状态为就绪状态的情况下,向所述任务处理器中的任务队列发布任务。
可选地,所述装置还包括:
第二发送模块,用于在所述工作流实例运行至所述结束节点的情况下,向所述第一用户发送编排服务执行结果。
为达到上述目的,本发明的实施例提供一种服务编排装置,应用于任务处理器,包括:
第三接收模块,用于接收流程控制器发布的任务;
任务执行模块,用于进行所述任务的执行;
第一发送模块,用于在所述任务执行完成后,向所述流程控制器反馈所述任务的任务执行结果。
可选地,所述任务执行模块包括:
读取单元,用于所述任务处理器中的执行器读取任务队列中的任务,确定所述任务中是否存在与所述执行器的类型相匹配第一任务;
执行单元,用于在存在所述第一任务的情况下,所述执行器执行所述第一任务。
可选地,所述装置还包括:
第一执行模块,用于第一执行器开启第一事务的执行流程时,生成所述第一事务的第一标识,并向事务协调器TC注册所述第一标识,以及将所述第一标识写入编排上下文;
第二执行模块,用于第二执行器在执行所述第一事务时,从所述编排上下文中获取所述第一标识,并将所述第一标识传递给第一原子能力服务,以及将所述第一标识与所述第一事务绑定,其中,所述第一原子能力服务为所述第二执行器执行所述第一事务时所调用的原子能力服务;
第三执行模块,用于所述第二执行器在执行完所述第一事务之后,将所述第一事务的事务执行结果写入到编排上下文中;
第四执行模块,用于第三执行器从所述编排上下文中获取所述第一事务的事务执行结果,并根据所述第一事务的事务执行结果,向所述TC发送指示信息;
其中,所述执行器包括所述第一执行器、所述第二执行器和所述第三执行器。
可选地,所述第四执行模块包括:
第一发送单元,用于在所述第一事务中的全部任务均执行成功的情况下,向所述TC发送指示信息,所述指示信息用于指示提交所述事务执行结果;
第二发送单元,用于在所述第一事务中的任意一个任务执行失败的情况下,向所述TC发送指示信息,所述指示信息用于指示回滚所述第一事务。
为达到上述目的,本发明的实施例提供一种流程控制器,包括处理器和收发机,其中,所述处理器用于:
接收第一用户的第一服务请求指令;
根据所述第一服务请求指令,获取第一配置信息,所述第一配置信息包括编排流程信息;
根据所述第一配置信息,创建工作流实例;
在所述工作流实例运行至第一节点时,向任务处理器发布任务,其中,所述第一节点为所述工作流实例中所包含的工作流节点中除开始节点和结束节点之外的任一工作流节点;
接收所述任务处理器反馈的任务执行结果;
根据所述任务执行结果,对所述第一节点的节点状态进行更新。
可选地,所述处理器还用于:
接收第二用户通过可视化界面输入的第一服务配置指令;
基于业务流程建模与标注BPMN工作流协议,根据所述第一服务配置指令,生成所述第一配置信息。
可选地,所述处理器在所述工作流实例运行至第一节点时,向任务处理器发布任务时,具体用于:
在所述工作流实例运行至所述第一节点时,确定所述第一节点的节点状态是否为就绪状态;
在所述第一节点的节点状态为就绪状态的情况下,向所述任务处理器中的任务队列发布任务。
可选地,所述处理器还用于:
在所述工作流实例运行至所述结束节点的情况下,向所述第一用户发送编排服务执行结果。
为达到上述目的,本发明的实施例提供一种任务处理器,包括处理器和收发机,其中,所述处理器用于:
接收流程控制器发布的任务;
进行所述任务的执行;
在所述任务执行完成后,向所述流程控制器反馈所述任务的任务执行结果。
可选地,所述处理器在进行所述任务的执行时,具体用于:
所述任务处理器中的执行器读取任务队列中的任务,确定所述任务中是否存在与所述执行器的类型相匹配第一任务;
在存在所述第一任务的情况下,所述执行器执行所述第一任务。
可选地,所述处理器还用于:
第一执行器开启第一事务的执行流程时,生成所述第一事务的第一标识,并向事务协调器TC注册所述第一标识,以及将所述第一标识写入编排上下文;
第二执行器在执行所述第一事务时,从所述编排上下文中获取所述第一标识,并将所述第一标识传递给第一原子能力服务,以及将所述第一标识与所述第一事务绑定,其中,所述第一原子能力服务为所述第二执行器执行所述第一事务时所调用的原子能力服务;
所述第二执行器在执行完所述第一事务之后,将所述第一事务的事务执行结果写入到编排上下文中;
第三执行器从所述编排上下文中获取所述第一事务的事务执行结果,并根据所述第一事务的事务执行结果,向所述TC发送指示信息;
其中,所述执行器包括所述第一执行器、所述第二执行器和所述第三执行器。
可选地,所述处理器在根据所述第一事务的事务执行结果,向所述TC发送指示信息时,具体用于:
在所述第一事务中的全部任务均执行成功的情况下,向所述TC发送指示信息,所述指示信息用于指示提交所述事务执行结果;
在所述第一事务中的任意一个任务执行失败的情况下,向所述TC发送指示信息,所述指示信息用于指示回滚所述第一事务。
为达到上述目的,本发明的实施例提供一种流程控制器,包括收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;所述处理器执行所程序或指令时实现如上所述的应用于流程控制器的服务编排方法。
为达到上述目的,本发明的实施例提供一种任务处理器,包括收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;所述处理器执行所程序或指令时实现如上所述的应用于任务处理器的服务编排方法。
为达到上述目的,本发明的实施例提供一种可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时实现如上所述的服务编排方法中的步骤。
本发明的上述技术方案的有益效果如下:
本发明实施例的方法,流程控制器可以根据用户的第一服务请求指令获取第一配置信息并创建工作流实例,以及控制该工作流实例的运行。其中,在运行过程中,流程控制器可以发布任务,从而使得任务处理器接收到任务并执行任务,继而根据任务处理器反馈该任务的任务执行结果更新工作流实例中工作流节点的节点状态,以及进一步控制工作流实例的运行。这样,任务处理器负责执行具体逻辑,而流程控制器负责控制执行流程,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。
附图说明
图1为本发明实施例的服务编排方法的流程图;
图2为本发明实施例的工作流节点状态更新示意图;
图3为本发明实施例的服务编排方法示意图;
图4为本发明另一实施例的服务编排方法的流程图;
图5为本发明实施例的编排事务一致性原理示意图;
图6为本发明实施例的编排引擎架构示意图;
图7为本发明实施例的服务编排装置的结构图;
图8为本发明另一实施例的服务编排装置的结构图;
图9为本发明实施例的流程控制器的结构图;
图10为本发明另一实施例的流程控制器的结构图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常可互换使用。
在本申请所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
如图1所示,本发明实施例的一种服务编排方法,应用于流程控制器,包括:
步骤101,接收第一用户的第一服务请求指令;
步骤102,根据所述第一服务请求指令,获取第一配置信息,所述第一配置信息包括编排流程信息。
这里,第一配置信息还可以包括服务参数信息。
需要说明的是,第一配置信息可以是用户通过可视化界面配置形成的文件,例如,用户可以在可视化界面用拖拽拉等方式配置一个编排流程,形成编排流程信息,还可以用可视化勾选的方式,对各工作流节点的原子能力调用出参和入参进行配置,形成服务参数信息,最终形成标准BPMN协议文件(即第一配置信息)。
步骤103,根据所述第一配置信息,创建工作流实例;
需要说明的是,该步骤可以由流程控制器中的状态机控制程序执行,状态机控制程序是工作流状态机中的控制程序,可以控制工作流状态机流转,该工作流状态机负责持久化工作流文件(即第一配置信息),根据第一配置信息生成工作流状态机实例(即工作流实例)。
步骤104,在所述工作流实例运行至第一节点时,向任务处理器发布任务,其中,所述第一节点为所述工作流实例中所包含的工作流节点中除开始节点和结束节点之外的任一工作流节点;
步骤105,接收所述任务处理器反馈的任务执行结果;
步骤106,根据所述任务执行结果,对所述第一节点的节点状态进行更新。
该步骤中,流程控制器可以根据用户的第一服务请求指令获取第一配置信息并创建工作流实例,以及控制该工作流实例的运行,其中,在运行过程中,流程控制器可以发布任务,从而使得任务处理器接收到任务并执行任务,继而根据任务处理器反馈该任务的任务执行结果更新工作流实例中工作流节点的节点状态,以及进一步控制工作流实例的运行。这样,任务处理器负责执行具体逻辑,而流程控制器负责控制执行流程,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。
如图2所示,作为本发明一可选实施例,工作流节点的节点状态的更新情况包括:
情况一,工作流实例创建后(即工作流实例启动后),工作流节点处于ready状态。
情况二,ready状态的工作流节点收到run指令(即运行指令)后,该工作流节点发布节点任务(即任务)到任务队列,且该工作流节点的节点状态更新为running状态。
情况三,节点任务执行完成之后,若返回的任务执行结果表示任务执行成功时,将该工作流节点的节点状态由running状态更新为finish状态(即完成状态),并向该工作流节点的下一工作流节点发出run指令。
情况四,节点任务执行完成之后,若返回的任务执行结果表示任务执行失败时,将该工作流节点的节点状态由running状态更新为fail状态(即失败状态)。
情况五,节点状态为fail状态的工作流节点收到retry指令(即重试指令)后,将工作流节点的节点状态由fail状态更新为running状态,发布节点任务到任务队列。
以上列举的各情况,可以理解为工作流节点的节点状态的转移规则,工作流状态机可根据该转移规则,控制各个工作流节点的流转和状态转移。
可选地,在获取第一配置信息之前,所述方法还包括:
接收第二用户通过可视化界面输入的第一服务配置指令;
基于业务流程建模与标注BPMN工作流协议,根据所述第一服务配置指令,生成所述第一配置信息。
需要说明的是,现有技术中通常使用的编排文件为自定义规范的文件,导致学习成本高且不具有完善的技术标准。而本发明实施例的服务编排方法,是基于BPMN标准工作流协议生成关于编排流程及相关参数配置的第一配置信息,适用范围更广,学习成本较低,且支持串行、并行、分支等常用执行逻辑,可以通过可视化界面进行拖拽拉等方式进行配置。
本发明实施例中,基于BPMN标准工作流协议,通过可视化拖拽拉等方式进行配置,生成服务编排模型(即第一配置信息),并动态生成对应的工作流状态机,进而由相应的worker(即执行器)执行具体的编排逻辑,适用范围更广,学习成本较低。
可选地,所述在所述工作流实例运行至第一节点时,向任务处理器发布任务,包括:
在所述工作流实例运行至所述第一节点时,确定所述第一节点的节点状态是否为就绪状态;
在所述第一节点的节点状态为就绪状态的情况下,向所述任务处理器中的任务队列发布任务。
该实施例中,任务队列用于在工作流状态机与执行器之间传递任务,可以起到解耦和流量控制的作用。
可选地,在根据所述任务执行结果,对所述第一节点的节点状态进行更新之后,所述方法还包括:
在所述工作流实例运行至所述结束节点的情况下,向所述第一用户发送编排服务执行结果。
如图3所示,作为本发明一可选实施例,针对服务编排方法的具体流程说明如下:
1.流程控制器可以提供可视化的工作流配置界面,用户可以通过可视化界面(即工作流配置界面)用拖拽拉等方式配置一个编排流程,形成编排流程信息,还可以用可视化勾选的方式,对各工作流节点的原子能力调用出参和入参进行配置,形成服务参数信息,最终形成标准BPMN协议文件(即第一配置信息)。需要说明的是,可以配置多个BPMN协议文件,每个BPMN协议文件对应一个编排名。
2.流程控制器可以提供供用户操作的客户端(例如编排引擎客户端),用户通过该客户端,可以发送第一服务请求指令,流程控制器根据该指令初始化编排上下文,调用流程控制器中的工作流状态机执行编排,生成工作流实例。
例如,客户端提供调用编排服务的SDK(Software Development Kit,软件开发工具包),工作流状态机通过SDK提供的接口接收用户的第一服务请求指令。
3.工作流状态机根据编排名启动相应的编排工作流开始执行,即启动工作流实例。
4.工作流状态机的状态机控制程序根据当前工作流节点(例如第一节点,即工作流实例运行至第一节点)的节点状态是否为ready状态(即就绪状态),决定是否向任务队列发布任务,并更新该工作流节点的节点状态为running状态(即运行状态)。
5.worker拉取任务队列,判断任务队列中是否存在与该worker的类型相匹配的任务,若有,则该worker执行与其类型相匹配的任务。
6.若worker为可以调用原子能力的类型,则该worker根据任务元信息(即第一配置信息)和编排上下文,构造原子能力服务入参,来调用原子能力服务以获取结果,并根据任务元信息与编排上下文构造编排服务出参。
7.worker执行完成任务之后,向工作流状态机反馈任务执行结果。
8.状态机控制程序根据任务执行结果更新工作流节点的节点状态,进行下一步工作流流转。
9.当工作流流转到结束节点时,向客户端返回该次编排服务执行结果。
需要说明的是,现有技术中通常通过将编排文件编译为可执行脚本的方式,实现服务编排,因此难以实现编排功能灵活扩展,且通过编排文件描述业务逻辑有局限性,很难实现复杂逻辑。
本发明实施例的服务编排方法,通过流程控制器负责控制执行流程,而任务处理器负责执行具体逻辑,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。
如图4所示,本发明实施例的一种服务编排方法,应用于任务处理器,包括:
步骤401,接收流程控制器发布的任务。
具体的,流程控制器可以向任务处理器中的任务队列发布任务,任务队列用于在工作流状态机与执行器之间传递任务,可以起到解耦和流量控制的作用。
步骤402,进行所述任务的执行。
需要说明的是,该步骤中,可以由任务处理器中的执行器执行任务。
步骤403,在所述任务执行完成后,向所述流程控制器反馈所述任务的任务执行结果。
该实施例中,任务处理器可以接收流程控制器发布的任务,并从而执行任务并向流程控制器反馈该任务的任务执行结果,使得流程控制器可以根据该任务执行结果更新工作流实例中工作流节点的节点状态,以及进一步控制工作流实例的运行。这样,任务处理器负责执行具体逻辑,而流程控制器负责控制执行流程,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。
可选地,所述进行所述任务的执行,包括:
所述任务处理器中的执行器读取任务队列中的任务,确定所述任务中是否存在与所述执行器的类型相匹配第一任务;
在存在所述第一任务的情况下,所述执行器执行所述第一任务。
本发明实施例中,执行worker(即执行器)可以负责服务编排中具体的业务逻辑,例如调用一个原子能力服务,或者开启一个事务等。需要说明的是,执行器和任务都具有类型属性,即一个类型的执行器只能处理与其类型相匹配的任务。
需要指出的是,现有技术中的服务编排,仅仅实现了普通的串并行等执行逻辑,而不能提供分布式事务一致性的支持,导致其难以应用于对一致性要求高的场景中,本申请实施例通过增加用于开启事务的执行流程的第一执行器和用于结束事务的执行流程的第二执行器,并定义事务的唯一标识等方式,实现了对编排服务中分布式事务一致性的支持,具体情况详述如下:
可选地,所述方法还包括:
第一执行器开启第一事务的执行流程时,生成所述第一事务的第一标识,并向事务协调器TC注册所述第一标识,以及将所述第一标识写入编排上下文;
第二执行器在执行所述第一事务时,从所述编排上下文中获取所述第一标识,并将所述第一标识传递给第一原子能力服务,以及将所述第一标识与所述第一事务绑定,其中,所述第一原子能力服务为所述第二执行器执行所述第一事务时所调用的原子能力服务;
所述第二执行器在执行完所述第一事务之后,将所述第一事务的事务执行结果写入到编排上下文中;
第三执行器从所述编排上下文中获取所述第一事务的事务执行结果,并根据所述第一事务的事务执行结果,向所述TC发送指示信息;
其中,所述执行器包括所述第一执行器、所述第二执行器和所述第三执行器。
该实施例中,通过集成分布式事务框架,以及在编排服务中增加用于开启事务的执行流程的第一执行器和用于结束事务的执行流程的第二执行器,以及定义了事务上下文传递事务标识(即第一标识)、事务成功、事务失败等信息的方式,实现了对编排服务中分布式事务一致性的支持。
可选地,所述根据所述第一事务的事务执行结果,向所述TC发送指示信息,包括以下至少一项:
在所述第一事务中的全部任务均执行成功的情况下,向所述TC发送指示信息,所述指示信息用于指示提交所述事务执行结果;
在所述第一事务中的任意一个任务执行失败的情况下,向所述TC发送指示信息,所述指示信息用于指示回滚所述第一事务。
如图5所示,作为本发明一可选实施例,实现支持分布式事务一致性的服务编排方法的流程如下:
1.第一执行器(即事务开始worker)生成事务的唯一标识(即第一标识,用xid表示),并向TC注册xid开启该事务。
2.完成开启事务之后,将xid放入编排上下文中。
3.第二执行器(即任务执行worker)从编排上下文获取xid。
4.第二执行器将xid传递给第二执行器所调用的原子能力服务,执行本地事务,并将xid与该次本地事务绑定。
5.第二执行器将本地事务的事务执行结果传递到编排上下文中。
6.第三执行器(即事务结束worker)获取xid所标识的事务的执行情况(即事务执行结果)。
7.第三执行器对xid所标识的事务的执行情况判断。若该事务中的全部任务均执行成功,则向TC发送全局提交命令;若未全部成功(即任意一项或多项任务执行失败),则向TC发送全局回滚命令。
8.TC根据接收到的第三执行器的指示信息(即全局提交命令或全局回滚命令),向各原子能力服务发送xid全局事务提交(或者回滚命令)。
9.事务执行结束后,可以清空该xid。
该实施例的服务编排方法,通过任务处理器负责执行具体逻辑,而流程控制器负责控制执行流程,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。通过集成分布式事务框架,以及在编排服务中增加用于开启事务的执行流程的第一执行器和用于结束事务的执行流程的第二执行器,实现了对编排服务中分布式事务一致性的支持。
作为本发明一可选实施例,上述服务编排方法可应用于服务编排引擎,其中,该服务编排引擎包括流程控制器和任务处理器,该流程控制器和该任务处理器相互配合,基于工作流实现了服务编排引擎的支持分布式事务的服务编排功能。
具体的,如图6所示,流程控制器包括:工作流配置界面、编排引擎客户端、工作流状态机,任务处理器包括:任务队列和执行worker(即执行器)。其中需要说明的是,该服务编排引擎的工作原理可参见图3。
需要说明的是,该服务编排引擎支持BPMN标准工作流协议,能够通过可视化拖拽等方式定义服务编排执行流程,以及通过可视化勾选方式进行参数适配配置,生成服务编排文件(即第一配置信息,也即模型文件),最终根据模型文件生成对应的工作流状态机。
本发明实施例中的服务编排引擎,通过抽象出控制执行流程的工作流状态机和执行具体逻辑的worker,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。且通过集成分布式事务框架,以及在编排服务中增加用于开启事务的执行流程的第一执行器和用于结束事务的执行流程的第二执行器等方式,实现了编排服务分布式事务一致性功能。
如图7所示,本发明实施例的一种服务编排装置,应用于流程控制器,包括:
第一接收模块710,用于接收第一用户的第一服务请求指令;
第一获取模块720,用于根据所述第一服务请求指令,获取第一配置信息,所述第一配置信息包括编排流程信息;
实例创建模块730,用于根据所述第一配置信息,创建工作流实例;
任务发布模块740,用于在所述工作流实例运行至第一节点时,向任务处理器发布任务,其中,所述第一节点为所述工作流实例中所包含的工作流节点中除开始节点和结束节点之外的任一工作流节点;
第二接收模块750,用于接收所述任务处理器反馈的任务执行结果;
状态更新模块760,用于根据所述任务执行结果,对所述第一节点的节点状态进行更新。
该步骤中,流程控制器可以根据用户的第一服务请求指令获取第一配置信息并创建工作流实例,以及控制该工作流实例的运行,其中,在运行过程中,流程控制器可以发布任务,从而使得任务处理器接收到任务并执行任务,继而根据任务处理器反馈该任务的任务执行结果更新工作流实例中工作流节点的节点状态,以及进一步控制工作流实例的运行。这样,任务处理器负责执行具体逻辑,而流程控制器负责控制执行流程,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。
可选地,所述装置还包括:
第四接收模块,用于接收第二用户通过可视化界面输入的第一服务配置指令;
第一配置模块,用于基于业务流程建模与标注BPMN工作流协议,根据所述第一服务配置指令,生成所述第一配置信息。
可选地,所述任务发布模块740包括:
在所述工作流实例运行至所述第一节点时,确定所述第一节点的节点状态是否为就绪状态;
在所述第一节点的节点状态为就绪状态的情况下,向所述任务处理器中的任务队列发布任务。
可选地,所述装置还包括:
第二发送模块,用于在所述工作流实例运行至所述结束节点的情况下,向所述第一用户发送编排服务执行结果。
该实施例的服务编排装置,通过流程控制器负责控制执行流程,而任务处理器负责执行具体逻辑,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。
在此需要说明的是,本发明实施例提供的上述服务编排装置,能够实现上述应用于流程控制器的服务编排方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
如图8所示,本发明实施例的一种服务编排装置,应用于任务处理器,包括:
第三接收模块810,用于接收流程控制器发布的任务;
任务执行模块820,用于进行所述任务的执行;
第一发送模块830,用于在所述任务执行完成后,向所述流程控制器反馈所述任务的任务执行结果。
该实施例中,任务处理器可以接收流程控制器发布的任务,并从而执行任务并向流程控制器反馈该任务的任务执行结果,使得流程控制器可以根据该任务执行结果更新工作流实例中工作流节点的节点状态,以及进一步控制工作流实例的运行。这样,任务处理器负责执行具体逻辑,而流程控制器负责控制执行流程,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。
可选地,所述任务执行模块包括:
读取单元,用于所述任务处理器中的执行器读取任务队列中的任务,确定所述任务中是否存在与所述执行器的类型相匹配第一任务;
执行单元,用于在存在所述第一任务的情况下,所述执行器执行所述第一任务。
可选地,所述装置还包括:
第一执行模块,用于第一执行器开启第一事务的执行流程时,生成所述第一事务的第一标识,并向事务协调器TC注册所述第一标识,以及将所述第一标识写入编排上下文;
第二执行模块,用于第二执行器在执行所述第一事务时,从所述编排上下文中获取所述第一标识,并将所述第一标识传递给第一原子能力服务,以及将所述第一标识与所述第一事务绑定,其中,所述第一原子能力服务为所述第二执行器执行所述第一事务时所调用的原子能力服务;
第三执行模块,用于所述第二执行器在执行完所述第一事务之后,将所述第一事务的事务执行结果写入到编排上下文中;
第四执行模块,用于第三执行器从所述编排上下文中获取所述第一事务的事务执行结果,并根据所述第一事务的事务执行结果,向所述TC发送指示信息;
其中,所述执行器包括所述第一执行器、所述第二执行器和所述第三执行器。
可选地,所述第四执行模块包括:
第一发送单元,用于在所述第一事务中的全部任务均执行成功的情况下,向所述TC发送指示信息,所述指示信息用于指示提交所述事务执行结果;
第二发送单元,用于在所述第一事务中的任意一个任务执行失败的情况下,向所述TC发送指示信息,所述指示信息用于指示回滚所述第一事务。
该实施例的服务编排装置,通过任务处理器负责执行具体逻辑,而流程控制器负责控制执行流程,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。通过集成分布式事务框架,以及在编排服务中增加用于开启事务的执行流程的第一执行器和用于结束事务的执行流程的第二执行器,实现了对编排服务中分布式事务一致性的支持。
在此需要说明的是,本发明实施例提供的上述服务编排装置,能够实现上述应用于任务处理器的服务编排方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
如图9所示,本发明实施例的一种流程控制器900,包括处理器910和收发机920,其中,所述处理器910用于:
接收第一用户的第一服务请求指令;
根据所述第一服务请求指令,获取第一配置信息,所述第一配置信息包括编排流程信息;
根据所述第一配置信息,创建工作流实例;
在所述工作流实例运行至第一节点时,向任务处理器910发布任务,其中,所述第一节点为所述工作流实例中所包含的工作流节点中除开始节点和结束节点之外的任一工作流节点;
接收所述任务处理器910反馈的任务执行结果;
根据所述任务执行结果,对所述第一节点的节点状态进行更新。
该步骤中,流程控制器可以根据用户的第一服务请求指令获取第一配置信息并创建工作流实例,以及控制该工作流实例的运行,其中,在运行过程中,流程控制器可以发布任务,从而使得任务处理器接收到任务并执行任务,继而根据任务处理器反馈该任务的任务执行结果更新工作流实例中工作流节点的节点状态,以及进一步控制工作流实例的运行。这样,任务处理器负责执行具体逻辑,而流程控制器负责控制执行流程,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。
可选地,所述处理器910还用于:
接收第二用户通过可视化界面输入的第一服务配置指令;
基于业务流程建模与标注BPMN工作流协议,根据所述第一服务配置指令,生成所述第一配置信息。
可选地,所述处理器910在所述工作流实例运行至第一节点时,向任务处理器910发布任务时,具体用于:
在所述工作流实例运行至所述第一节点时,确定所述第一节点的节点状态是否为就绪状态;
在所述第一节点的节点状态为就绪状态的情况下,向所述任务处理器910中的任务队列发布任务。
可选地,所述处理器910还用于:
在所述工作流实例运行至所述结束节点的情况下,向所述第一用户发送编排服务执行结果。
该实施例的流程控制器,通过流程控制器负责控制执行流程,而任务处理器负责执行具体逻辑,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。
在此需要说明的是,本发明实施例提供的上述流程控制器,能够实现上述应用于流程控制器的服务编排方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本发明实施例的一种任务处理器900,其可以采用与如图9所示的流程控制器相同的结构,包括处理器910和收发机920,所述处理器910用于:
接收流程控制器发布的任务;
进行所述任务的执行;
在所述任务执行完成后,向所述流程控制器反馈所述任务的任务执行结果。
该实施例中,任务处理器可以接收流程控制器发布的任务,并从而执行任务并向流程控制器反馈该任务的任务执行结果,使得流程控制器可以根据该任务执行结果更新工作流实例中工作流节点的节点状态,以及进一步控制工作流实例的运行。这样,任务处理器负责执行具体逻辑,而流程控制器负责控制执行流程,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。
可选地,所述处理器910在进行所述任务的执行时,具体用于:
所述任务处理器910中的执行器读取任务队列中的任务,确定所述任务中是否存在与所述执行器的类型相匹配第一任务;
在存在所述第一任务的情况下,所述执行器执行所述第一任务。
可选地,所述处理器910还用于:
第一执行器开启第一事务的执行流程时,生成所述第一事务的第一标识,并向事务协调器TC注册所述第一标识,以及将所述第一标识写入编排上下文;
第二执行器在执行所述第一事务时,从所述编排上下文中获取所述第一标识,并将所述第一标识传递给第一原子能力服务,以及将所述第一标识与所述第一事务绑定,其中,所述第一原子能力服务为所述第二执行器执行所述第一事务时所调用的原子能力服务;
所述第二执行器在执行完所述第一事务之后,将所述第一事务的事务执行结果写入到编排上下文中;
第三执行器从所述编排上下文中获取所述第一事务的事务执行结果,并根据所述第一事务的事务执行结果,向所述TC发送指示信息;
其中,所述执行器包括所述第一执行器、所述第二执行器和所述第三执行器。
可选地,所述处理器910在根据所述第一事务的事务执行结果,向所述TC发送指示信息时,具体用于:
在所述第一事务中的全部任务均执行成功的情况下,向所述TC发送指示信息,所述指示信息用于指示提交所述事务执行结果;
在所述第一事务中的任意一个任务执行失败的情况下,向所述TC发送指示信息,所述指示信息用于指示回滚所述第一事务。
该实施例的任务处理器,通过任务处理器负责执行具体逻辑,而流程控制器负责控制执行流程,实现了执行流程与具体能力调用以及其他业务逻辑之间的解耦,能够在服务编排场景中更加灵活地增加编排逻辑,以支持多变的业务需求。通过集成分布式事务框架,以及在编排服务中增加用于开启事务的执行流程的第一执行器和用于结束事务的执行流程的第二执行器,实现了对编排服务中分布式事务一致性的支持。
在此需要说明的是,本发明实施例提供的上述任务处理器,能够实现上述应用于任务处理器的服务编排方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
本发明另一实施例的一种流程控制器,如图10所示,包括收发器1010、处理器1000、存储器1020及存储在所述存储器1020上并可在所述处理器1000上运行的程序或指令;所述处理器1000执行所述程序或指令时实现上述应用于流程控制器的服务编排方法。
所述收发器1010,用于在处理器1000的控制下接收和发送数据。
其中,在图10中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1000代表的一个或多个处理器和存储器1020代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发器1010可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口1030还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器1000负责管理总线架构和通常的处理,存储器1020可以存储处理器1000在执行操作时所使用的数据。
本发明另一实施例的一种任务处理器,其可以采用与如图10所示的流程控制器相同的结构,包括收发器1010、处理器1000、存储器1020及存储在所述存储器1020上并可在所述处理器1000上运行的程序或指令;所述处理器1000执行所述程序或指令时实现上述应用于任务处理器的服务编排方法。
所述收发器1010,用于在处理器1000的控制下接收和发送数据。
其中,在图10中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1000代表的一个或多个处理器和存储器1020代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发器1010可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口1030还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器1000负责管理总线架构和通常的处理,存储器1020可以存储处理器1000在执行操作时所使用的数据。
本发明实施例的一种可读存储介质,其上存储有程序或指令,所述程序或指令被处理器执行时实现如上所述的服务编排方法中的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
进一步需要说明的是,此说明书中所描述的终端包括但不限于智能手机、平板电脑等,且所描述的许多功能部件都被称为模块,以便更加特别地强调其实现方式的独立性。
本发明实施例中,模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。
实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。
在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。
上述范例性实施例是参考该些附图来描述的,许多不同的形式和实施例是可行而不偏离本发明精神及教示,因此,本发明不应被建构成为在此所提出范例性实施例的限制。更确切地说,这些范例性实施例被提供以使得本发明会是完善又完整,且会将本发明范围传达给那些熟知此项技术的人士。在该些图式中,组件尺寸及相对尺寸也许基于清晰起见而被夸大。在此所使用的术语只是基于描述特定范例性实施例目的,并无意成为限制用。如在此所使用地,除非该内文清楚地另有所指,否则该单数形式“一”、“一个”和“该”是意欲将该些多个形式也纳入。会进一步了解到该些术语“包含”及/或“包括”在使用于本说明书时,表示所述特征、整数、步骤、操作、构件及/或组件的存在,但不排除一或更多其它特征、整数、步骤、操作、构件、组件及/或其族群的存在或增加。除非另有所示,陈述时,一值范围包含该范围的上下限及其间的任何子范围。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种服务编排方法,应用于流程控制器,其特征在于,包括:
接收第一用户的第一服务请求指令;
根据所述第一服务请求指令,获取第一配置信息,所述第一配置信息包括编排流程信息;
根据所述第一配置信息,创建工作流实例;
在所述工作流实例运行至第一节点时,向任务处理器发布任务,其中,所述第一节点为所述工作流实例中所包含的工作流节点中除开始节点和结束节点之外的任一工作流节点;
接收所述任务处理器反馈的任务执行结果;
根据所述任务执行结果,对所述第一节点的节点状态进行更新。
2.根据权利要求1所述的方法,其特征在于,在获取第一配置信息之前,所述方法还包括:
接收第二用户通过可视化界面输入的第一服务配置指令;
基于业务流程建模与标注BPMN工作流协议,根据所述第一服务配置指令,生成所述第一配置信息。
3.根据权利要求1所述的方法,其特征在于,所述在所述工作流实例运行至第一节点时,向任务处理器发布任务,包括:
在所述工作流实例运行至所述第一节点时,确定所述第一节点的节点状态是否为就绪状态;
在所述第一节点的节点状态为就绪状态的情况下,向所述任务处理器中的任务队列发布任务。
4.根据权利要求1所述的方法,其特征在于,在根据所述任务执行结果,对所述第一节点的节点状态进行更新之后,所述方法还包括:
在所述工作流实例运行至所述结束节点的情况下,向所述第一用户发送编排服务执行结果。
5.一种服务编排方法,应用于任务处理器,其特征在于,包括:
接收流程控制器发布的任务;
进行所述任务的执行;
在所述任务执行完成后,向所述流程控制器反馈所述任务的任务执行结果。
6.根据权利要求5所述的方法,其特征在于,所述进行所述任务的执行,包括:
所述任务处理器中的执行器读取任务队列中的任务,确定所述任务中是否存在与所述执行器的类型相匹配第一任务;
在存在所述第一任务的情况下,所述执行器执行所述第一任务。
7.根据权利要求5所述的方法,其特征在于,还包括:
第一执行器开启第一事务的执行流程时,生成所述第一事务的第一标识,并向事务协调器TC注册所述第一标识,以及将所述第一标识写入编排上下文;
第二执行器在执行所述第一事务时,从所述编排上下文中获取所述第一标识,并将所述第一标识传递给第一原子能力服务,以及将所述第一标识与所述第一事务绑定,其中,所述第一原子能力服务为所述第二执行器执行所述第一事务时所调用的原子能力服务;
所述第二执行器在执行完所述第一事务之后,将所述第一事务的事务执行结果写入到编排上下文中;
第三执行器从所述编排上下文中获取所述第一事务的事务执行结果,并根据所述第一事务的事务执行结果,向所述TC发送指示信息;
其中,所述执行器包括所述第一执行器、所述第二执行器和所述第三执行器。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一事务的事务执行结果,向所述TC发送指示信息,包括以下至少一项:
在所述第一事务中的全部任务均执行成功的情况下,向所述TC发送指示信息,所述指示信息用于指示提交所述事务执行结果;
在所述第一事务中的任意一个任务执行失败的情况下,向所述TC发送指示信息,所述指示信息用于指示回滚所述第一事务。
9.一种服务编排装置,应用于流程控制器,其特征在于,包括:
第一接收模块,用于接收第一用户的第一服务请求指令;
第一获取模块,用于根据所述第一服务请求指令,获取第一配置信息,所述第一配置信息包括编排流程信息;
实例创建模块,用于根据所述第一配置信息,创建工作流实例;
任务发布模块,用于在所述工作流实例运行至第一节点时,向任务处理器发布任务,其中,所述第一节点为所述工作流实例中所包含的工作流节点中除开始节点和结束节点之外的任一工作流节点;
第二接收模块,用于接收所述任务处理器反馈的任务执行结果;
状态更新模块,用于根据所述任务执行结果,对所述第一节点的节点状态进行更新。
10.一种服务编排装置,应用于任务处理器,其特征在于,包括:
第三接收模块,用于接收流程控制器发布的任务;
任务执行模块,用于进行所述任务的执行;
第一发送模块,用于在所述任务执行完成后,向所述流程控制器反馈所述任务的任务执行结果。
11.一种流程控制器,其特征在于,包括:收发机和处理器;所述处理器用于:
接收第一用户的第一服务请求指令;
根据所述第一服务请求指令,获取第一配置信息,所述第一配置信息包括编排流程信息;
根据所述第一配置信息,创建工作流实例;
在所述工作流实例运行至第一节点时,向任务处理器发布任务,其中,所述第一节点为所述工作流实例中所包含的工作流节点中除开始节点和结束节点之外的任一工作流节点;
接收所述任务处理器反馈的任务执行结果;
根据所述任务执行结果,对所述第一节点的节点状态进行更新。
12.一种任务处理器,其特征在于,包括:收发机和处理器;所述处理器用于:
接收流程控制器发布的任务;
进行所述任务的执行;
在所述任务执行完成后,向所述流程控制器反馈所述任务的任务执行结果。
13.一种流程控制器,包括:收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;其特征在于,所述处理器执行所述程序或指令时实现如权利要求1至4任一项所述的服务编排方法。
14.一种任务处理器,包括:收发器、处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令;其特征在于,所述处理器执行所述程序或指令时实现如权利要求5至8任一项所述的服务编排方法。
15.一种可读存储介质,其上存储有程序或指令,其特征在于,所述程序或指令被处理器执行时实现如权利要求1至4任一项所述的服务编排方法中的步骤,或者如权利要求5至8任一项所述的服务编排方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210141812.2A CN116643854A (zh) | 2022-02-16 | 2022-02-16 | 一种服务编排方法、装置、流程控制器及任务处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210141812.2A CN116643854A (zh) | 2022-02-16 | 2022-02-16 | 一种服务编排方法、装置、流程控制器及任务处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116643854A true CN116643854A (zh) | 2023-08-25 |
Family
ID=87617492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210141812.2A Pending CN116643854A (zh) | 2022-02-16 | 2022-02-16 | 一种服务编排方法、装置、流程控制器及任务处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116643854A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472553A (zh) * | 2023-12-28 | 2024-01-30 | 中移(苏州)软件技术有限公司 | 一种工作流处理方法、装置、处理设备及可读存储介质 |
CN118132212A (zh) * | 2024-03-14 | 2024-06-04 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备、介质及程序产品 |
-
2022
- 2022-02-16 CN CN202210141812.2A patent/CN116643854A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472553A (zh) * | 2023-12-28 | 2024-01-30 | 中移(苏州)软件技术有限公司 | 一种工作流处理方法、装置、处理设备及可读存储介质 |
CN117472553B (zh) * | 2023-12-28 | 2024-05-03 | 中移(苏州)软件技术有限公司 | 一种工作流处理方法、装置、处理设备及可读存储介质 |
CN118132212A (zh) * | 2024-03-14 | 2024-06-04 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备、介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100545851C (zh) | 使用命令行环境的远程系统管理 | |
CN104102949B (zh) | 一种分布式工作流装置及其处理工作流的方法 | |
CN111694888A (zh) | 基于微服务架构的分布式etl数据交换系统及方法 | |
CN116643854A (zh) | 一种服务编排方法、装置、流程控制器及任务处理器 | |
US6385668B1 (en) | Method and apparatus for compound hardware configuration control | |
CN112463211A (zh) | 一种兼容多种开发架构的系统架构改造方法及系统架构 | |
CN112905339B (zh) | 任务调度执行方法、装置及系统 | |
CN108897591B (zh) | 联合试验平台中间件插件装置及其试验资源信息交互的方法 | |
CN113032166B (zh) | 核间通信的方法、处理器、核间通信系统及计算机可读存储介质 | |
CN109901818B (zh) | 用于软件架构设计的系统和方法 | |
CN110764752A (zh) | 基于微服务架构实现Restful服务图形化服务编排的系统及其方法 | |
CN112418784B (zh) | 一种服务的编排执行系统及方法 | |
CN109635028A (zh) | 数据查询方法及装置、服务器及计算机可读存储介质 | |
CN110597634A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN111897799A (zh) | 一种基于流程引擎的水文模型服务系统 | |
CN115297008A (zh) | 基于智算网络的协同训练方法、装置、终端及存储介质 | |
CN113094125B (zh) | 业务流程处理方法、装置、服务器及存储介质 | |
US20190007489A1 (en) | System and Methods for Running a Condition-Triggered Process Involving Movement of Objects from a Node to at least one other Node Until a Condition with a Set of Parameters Are Met By An Event | |
JP3712984B2 (ja) | 業務進捗制御装置及びその方法と、業務進捗制御プログラム及びそのプログラムを記録した記録媒体 | |
CN116680209A (zh) | 基于wasm的多智能合约实例管理方法 | |
CN101751626B (zh) | 组合服务演化中运行实例的在线迁移方法 | |
CN111597035A (zh) | 基于多线程的仿真引擎时间推进方法及系统 | |
CN110018831A (zh) | 程序处理方法、装置及相关产品 | |
CN113810402B (zh) | 多协议适配方法和系统,计算机设备,存储介质 | |
CN112416980B (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 |