CN118096060A - 工作流程执行方法、流程编排系统、设备、介质及产品 - Google Patents

工作流程执行方法、流程编排系统、设备、介质及产品 Download PDF

Info

Publication number
CN118096060A
CN118096060A CN202410166648.XA CN202410166648A CN118096060A CN 118096060 A CN118096060 A CN 118096060A CN 202410166648 A CN202410166648 A CN 202410166648A CN 118096060 A CN118096060 A CN 118096060A
Authority
CN
China
Prior art keywords
flow
working node
node
working
configuration
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
CN202410166648.XA
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.)
China Mobile Communications Group Co Ltd
China Mobile Group Jiangsu Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Jiangsu 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 China Mobile Communications Group Co Ltd, China Mobile Group Jiangsu Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202410166648.XA priority Critical patent/CN118096060A/zh
Publication of CN118096060A publication Critical patent/CN118096060A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种工作流程执行方法、流程编排系统、设备、存储介质及计算机程序产品,该方法通包括:响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置;基于所述流程配置确定所述目标流程中的工作节点;通过工作节点的访问地址调用工作节点执行所述目标流程。在本实施例中由于工作节点是通过访问地址调用的,对于执行流程的系统,仅需确定自定义工作节点的访问地址即可,无需执行自定义工作节点,因此,工作节点的功能可由用户自定义且不必受到执行流程系统原本开发规范的制约,从而提升了流程编排系统的灵活性,以满足用户自定义编排的需求。

Description

工作流程执行方法、流程编排系统、设备、介质及产品
技术领域
本申请涉及流程编排技术领域,尤其涉及一种工作流程执行方法、流程编排系统、设备、存储介质及计算机程序产品。
背景技术
在目前的流程编排系统中,通常会向用户提供预制流程节点,再由用户对预制流程节点进行编排,形成用户所需要的流程。但如果遇到系统未提供预制节点的场景,就需要系统提供方进行新流程节点的开发。或者由用户按照系统提供开发规范,完成节点开发,然后进行节点扩展后再使用。因此,当前传统的流程编排系统灵活性较差,难以满足的用户编排需求。
发明内容
本申请的主要目的在于提供了一种工作流程执行方法、流程编排系统、设备、存储介质及计算机程序产品,旨在解决当前传统流程编排系统灵活性较差的技术问题。
为实现上述目的,本申请提供了一种工作流程执行方法,所述方法包括以下步骤:
响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置;
基于所述流程配置确定所述目标流程中的工作节点;
通过工作节点的访问地址调用工作节点执行所述目标流程。
可选地,所述通过工作节点的访问地址调用工作节点执行所述目标流程的步骤包括:
对于所述目标流程中的任意一个工作节点,基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点,得到所述工作节点的输出参数,其中,所述输入参数为所述流程执行请求中的初始入参,或者,为所述工作节点的上一工作节点的输出参数;
基于所述工作节点的下一工作节点执行所述基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点的步骤,直至遍历目标流程中的工作节点。
可选地,在所述基于所述流程配置确定所述目标流程中的工作节点的步骤之前,所述方法包括:
在所述目标流程中各工作节点的节点配置信息被确定后,对于任意一个所述节点配置信息,基于所述节点配置信息查询所述节点配置信息对应工作节点是否创建完成;
若所述工作节点未创建完成,则基于所述节点配置信息创建所述工作节点。
可选地,所述基于所述节点配置信息创建所述工作节点的步骤包括:
创建所述工作节点的容器;
确定所述节点配置信息中功能代码的语言类型;
基于所述语言类型在所述容器中部署所述功能代码的依赖环境;
基于所述功能代码生成可执行功能程序,其中,所述功能程序用于响应于调用请求,基于所述调用请求中的输入参数生成的输出参数,并将生成的输出参数返回至所述调用请求的请求方。
可选地,在所述基于所述工作节点的下一工作节点执行所述基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点的步骤之前,所述方法还包括:
基于所述流程配置确定所述工作节点的下一工作节点,以及所述下一工作节点的输入参数的第一参数类型;
若所述第一参数类型与所述工作节点的输出参数的第二参数类型不同,则将所述第二参数类型转换至与所述第一参数类型一致。
可选地,在所述响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置的步骤之前,所述方法包括:
响应于流程创建请求,获取所述流程创建请求中的流程配置;
在确定所述流程配置符合语法要求后,输出流程创建成功的提示信息。此外,为实现上述目的,本申请还提出一种流程编排系统,所述流程编排系统包括:
工作节点,用于执行功能任务;
函数引擎模块,用于维护所述工作节点;
配置管理模块,用于流程配置的管理;
流程引擎模块,用于响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置;基于所述流程配置确定所述目标流程中的工作节点;通过工作节点的访问地址调用工作节点执行所述目标流程。
此外,为实现上述目的,本申请还提出一种工作流程执行设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的工作流程执行程序,所述工作流程执行程序配置为实现如上文所述的工作流程执行方法的步骤。
此外,为实现上述目的,本申请还提出一种存储介质,所述存储介质上存储有工作流程执行程序,所述工作流程执行程序被处理器执行时实现如上文所述的工作流程执行方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机程序产品,所述计算机程序产品包括工作流程执行程序,所述工作流程执行程序被处理器执行时实现如上文所述的工作流程执行方法的步骤。
本申请实施例提出一种工作流程执行方法、流程编排系统、设备、介质及产品。在本申请实施例中,将响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置;基于所述流程配置确定所述目标流程中的工作节点;通过工作节点的访问地址调用工作节点执行所述目标流程。也即,本申请在执行目标流程的过程中,将通过访问地址来调用目标流程中工作节点来实现流程的执行。因此,工作节点的创建可不受流程执行系统的限制,也即用户增添自定义工作节点时,对于执行流程的系统,仅需确定自定义工作节点的访问地址即可,无需执行自定义工作节点,因此,工作节点的功能可由用户自定义且不必受到执行流程系统原本开发规范的制约,从而提升了流程编排系统的灵活性,以满足用户自定义编排的需求。
附图说明
图1是本申请实施例方案涉及的硬件运行环境的工作流程执行设备的结构示意图;
图2为本申请工作流程执行方法第一实施例的流程示意图;
图3为本申请工作流程执行方法第二实施例的流程示意图;
图4为本申请流程编排系统的结构示意图;
图5为本申请流程编排系统的框架示意图;
图6为本申请流程编排系统的工作时序图;
图7为本申请流程编排系统工作过程中流程实例的工作原理示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
参照图1,图1为本申请实施例方案涉及的硬件运行环境的工作流程执行设备结构示意图。
如图1所示,该工作流程执行设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对工作流程执行设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及工作流程执行程序。
在图1所示的工作流程执行设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本申请工作流程执行设备中的处理器1001、存储器1005可以设置在工作流程执行设备中,所述工作流程执行设备通过处理器1001调用存储器1005中存储的工作流程执行程序,并执行以下操作:
响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置;
基于所述流程配置确定所述目标流程中的工作节点;
通过工作节点的访问地址调用工作节点执行所述目标流程。
进一步地,处理器1001可以调用存储器1005中存储的车辆健康状态诊断程序,还执行以下操作:
所述通过工作节点的访问地址调用工作节点执行所述目标流程的步骤包括:
对于所述目标流程中的任意一个工作节点,基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点,得到所述工作节点的输出参数,其中,所述输入参数为所述流程执行请求中的初始入参,或者,为所述工作节点的上一工作节点的输出参数;
基于所述工作节点的下一工作节点执行所述基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点的步骤,直至遍历目标流程中的工作节点。
进一步地,处理器1001可以调用存储器1005中存储的车辆健康状态诊断程序,还执行以下操作:
在所述基于所述流程配置确定所述目标流程中的工作节点的步骤之前,所述方法包括:
在所述目标流程中各工作节点的节点配置信息被确定后,对于任意一个所述节点配置信息,基于所述节点配置信息查询所述节点配置信息对应工作节点是否创建完成;
若所述工作节点未创建完成,则基于所述节点配置信息创建所述工作节点。
进一步地,处理器1001可以调用存储器1005中存储的车辆健康状态诊断程序,还执行以下操作:
所述基于所述节点配置信息创建所述工作节点的步骤包括:
创建所述工作节点的容器;
确定所述节点配置信息中功能代码的语言类型;
基于所述语言类型在所述容器中部署所述功能代码的依赖环境;
基于所述功能代码生成可执行功能程序,其中,所述功能程序用于响应于调用请求,基于所述调用请求中的输入参数生成的输出参数,并将生成的输出参数返回至所述调用请求的请求方。
进一步地,处理器1001可以调用存储器1005中存储的车辆健康状态诊断程序,还执行以下操作:
在所述基于所述工作节点的下一工作节点执行所述基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点的步骤之前,所述方法还包括:
基于所述流程配置确定所述工作节点的下一工作节点,以及所述下一工作节点的输入参数的第一参数类型;
若所述第一参数类型与所述工作节点的输出参数的第二参数类型不同,则将所述第二参数类型转换至与所述第一参数类型一致。
进一步地,处理器1001可以调用存储器1005中存储的车辆健康状态诊断程序,还执行以下操作:
在所述响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置的步骤之前,所述方法包括:
响应于流程创建请求,获取所述流程创建请求中的流程配置;
在确定所述流程配置符合语法要求后,输出流程创建成功的提示信息。
本申请实施例提供了一种工作流程执行方法,参照图2,图2为本申请工作流程执行方法第一实施例的流程示意图。
本实施例中,所述工作流程执行方法包括以下步骤:
步骤S10,响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置;
需要说明的是,本实施例的执行主体可以是一种具有数据处理、网络通信以及程序运行功能的计算服务设备,例如平板电脑、个人电脑、手机等,或者是一种能够实现上述功能的电子设备等,故本实施例将不会对执行主体进行限制。
示例性的,在本实施例中,上述工作流程执行方法可应用于流程编排系统(值得注意的是,流程编排系统除了可以基于用户操作形成任务流程外,还可以执行编排好的任务流程)。如用户在流程编排系统中编排好一个任务流程后,需要执行编排好的流程任务,相应的,用户可在流程编排系统中触发执行该任务流程。而流程编排系统则响应于用户触发的流程执行请求,执行该流程执行请求所指向的目标流程(也即需要执行的任务流程)。例如,在流程执行请求中可携带目标流程的流程编码以及执行目标流程的初始入参等。根据流程编码可确定目标流程以及目标流程的流程配置,通常为流程配置文件。其中,流程配置优选为最新的流程配置文件,以达到修改即生效的效果。
步骤S20,基于所述流程配置确定所述目标流程中的工作节点;
示例性的,通过对获取到的流程配置进行解析,可得到目标流程所包括的工作节点,其中,工作节点的数量可以是一个,也可以是多个。在实际应用中,对流程配置解析得到的工作节点,可以是对流程配置进行解析得到工作节点的节点配置信息。同样的,在节点配置信息中可包括工作节点的节点名称或者节点编码等信息。根据节点名称或者节点编码等信息查询得到目标流程中工作节点的访问地址,也即确定各工作节点。
步骤S30,通过工作节点的访问地址调用工作节点执行所述目标流程。
示例性的,通过访问地址调用工作节点执行目标流程,也即通过访问地址将入参输入至相应的工作节点,工作节点再根据入参输出结果。其中,入参可以是流程执行请求中携带的初始入参,也可以是上一个工作节点的输出结果。可以理解的是,目标流程可以是由多个工作节点按照一定顺序组成的,故基于访问地址依次调用完目标流程中工作节点得到的结果即为执行目标流程的结果。由于本申请执行流程的过程是通过访问地址来调用流程中的工作节点来实现执行的,因此,用户若增添自定义工作节点时(即非预制工作节点),对于执行流程的系统,仅需确定自定义工作节点的访问地址即可,无需执行自定义工作节点,因此,工作节点的功能可由用户自定义且不必受到执行流程系统原本的开发规范的制约。
在本实施例中,响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置;基于所述流程配置确定所述目标流程中的工作节点;通过工作节点的访问地址调用工作节点执行所述目标流程。也即,本申请在执行目标流程的过程中,将通过访问地址来调用目标流程中工作节点来实现流程的执行。因此,工作节点的创建可不受流程执行系统的限制,也即用户增添自定义工作节点时,对于执行流程的系统,仅需确定自定义工作节点的访问地址即可,无需执行自定义工作节点,因此,工作节点的功能可由用户自定义且不必受到执行流程系统原本开发规范的制约,从而提升了流程编排系统的灵活性,以满足用户自定义编排的需求。
在一可行的实施方式中,所述通过工作节点的访问地址调用工作节点执行所述目标流程的步骤包括:
步骤S310,对于所述目标流程中的任意一个工作节点,基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点,得到所述工作节点的输出参数,其中,所述输入参数为所述流程执行请求中的初始入参,或者,为所述工作节点的上一工作节点的输出参数;
步骤S320,基于所述工作节点的下一工作节点执行所述基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点的步骤,直至遍历目标流程中的工作节点。
示例性的,在根据访问地址调用工作节点执行所述目标流程的过程中,解析流程配置得到工作节点,再依次基于各工作节点的访问地址调用执行各工作节点。如可先确定初始工作节点的访问地址,基于访问地址将输入参数输入至初始工作节点(初始工作节点的输入参数可以是流程执行请求中携带的初始入参),初始工作节点再根据输入参数生成输出参数。得到输出参数后,再查找初始工作节点的下一工作节点为工作节点A,通过工作节点A的访问地址调用工作节点A,如将初始工作节点的输出参数发送给工作节点A,工作节点A再得到输出结果,如此循环直到遍历目标流程中的各工作节点后,即执行完成目标流程。
参考图3,图3为本申请工作流程执行方法第一实施例提出,本申请的第二实施例的流程示意图。在本实施例中与上述实施例相同或者相似的部分可参照上述内容,此处将不再赘述。在所述基于所述流程配置确定所述目标流程中的工作节点的步骤之前,所述方法包括:
步骤S210,在所述目标流程中各工作节点的节点配置信息被确定后,对于任意一个所述节点配置信息,基于所述节点配置信息查询所述节点配置信息对应工作节点是否创建完成;
步骤S220,若所述工作节点未创建完成,则基于所述节点配置信息创建所述工作节点。
示例性的,目标流程中各工作节点的节点配置信息可通过对流程配置进行解析得到。而节点配置信息可包括有节点名称或者节点编码等信息。通过节点名称或者节点编码确定目标流程中各工作节点是否均创建完成,如通过节点编码查询该节点编码对应的工作节点是否创建。值得注意的是,在本实施中,确定工作节点是否创建,指确定流程配置中该工作节点部分的功能代码是否可运行,以调用该工作节点。在实际应用中,目标流程中的工作节点可包括预制工作节点以及用户新增的自定义工作节点,而预制的工作节点通常为创建完成,用户新增的自定义工作节点通常为未创建完成。对于存在未创建完成的工作节点的情况,基于未创建完成的工作节点的节点配置信息创建该工作节点即可。
在一可行的实施方式中,所述基于所述节点配置信息创建所述工作节点的步骤包括:
步骤S231,创建所述工作节点的容器;
步骤S232,确定所述节点配置信息中功能代码的语言类型;
步骤S233,基于所述语言类型在所述容器中部署所述功能代码的依赖环境;
步骤S234,基于所述功能代码生成可执行功能程序,其中,所述功能程序用于响应于调用请求,基于所述调用请求中的输入参数生成的输出参数,并将生成的输出参数返回至所述调用请求的请求方。
示例性的,根据节点配置信息创建工作节点的过程包括,为该工作节点创建容器。工作节点对应节点配置信息中可包括用户自定义输入的功能代码,再确定功能代码的语言类型。确定该语言类型的依赖包,并在容器中安装依赖包,也即在容器中部署功能代码的依赖环境。再对功能代码进行编译得到可执行的功能程序,从而完成工作节点的创建。其中,功能程序则可响应于调用请求,基于调用请求中的输入参数生成的输出参数,再将生成的输出参数返回至调用请求的请求方。如流程编排系统中执行流程的部分,通过工作节点的访问地址调用该工作节点,将输入参数发送至该工作节点,工作节点中的功能代码基于输入参数得到输出参数,并将输出参数返回给流程编排系统中执行流程的部分。
在实际应用中,创建工作节点的过程可包括,以功能代码、Dockerfile(用于构建镜像的文本文件)、基础镜像构成工作节点的基础文件,通过dockerbuild(用于使用Dockerfile创建镜像)构建工作节点镜像。而工作节点的具体代码可由标准的http(Hypertext Transfer Protocol,超文本传送协议)服务器代码和httphandler代码组成。其中handler代码为具体能力的体现,可用于完成创建。比如Http工作节点,httphandler代码里面就是一段httpclient(一种支持HTTP协议的客户端编程工具包)的代码。而用户仅需要在流程编排的流程任务中引用http工作节点,指定具体参数即可使用该工作节点。其中,httphandler代码的逻辑如下:
1、解析请求参数。请求参数标准字段:{“files”:[{“name”:“filename”,”context”:base64<code>}],“params”:[{“key”:“keyname1”,”value”:“value1”},]},可用于确定代码的语言类型。
2、针对不同语言,采用不同方式安装依赖。如语言类型可包括Python、Node、Go,相应的安装依赖方式,依次可包括pipreqs+pip、npminit+npm install、go mod init+go modtidy。即在代码里面可使用exceute-cmd方式在宿主操作系统上通过命令调用完成依赖安装。
3、针对特定语言,进行构建处理。例如,Go语言的安装依赖方式为go build-o。对于特定环境,在代码里面可使用exceute-cmd方式在宿主操作系统上通过命令调用完成构建处理,也即完成代码的编译。
4、调用命令执行代码,并传入参数。完成具体逻辑执行,通过在可编程代码里解析传入参数,可进行参数传递,如将上一工作节点的输出结果传入,供本工作节点使用。也即,功能代码对应的可执行功能程序执行的过程。
5、代码解析调用命令返回结果,并通过HTTP响应返回结果。也即将可执行功能程序的输出参数返回给调用请求的请求方。
在一可行的实施方式中,在所述响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置的步骤之前,所述方法包括:
步骤S101,响应于流程创建请求,获取所述流程创建请求中的流程配置;
步骤S102,在确定所述流程配置符合语法要求后,输出流程创建成功的提示信息。
示例性的,上述流程创建请求可以是基于用户在操作页面上进行的用户操作触发生成。例如,用户在新建流程时,可在操作页面上拖拽预制的工作节点并将工作节点连接起来形成流程,对于自定义工作节点用户可自定义其功能代码以及入参等。在流程编排完成后,用户可通过点击保存按钮触发流程创建请求。而流程编排系统,则可以响应于流程创建请求,对流程创建请求进行解析,得到流程配置。流程配置中可包括相应的功能代码,通过语法检测工具可检测功能代码中是否存在语法错误,也即确定流程配置是否符合语法要求,在确定符合语法要求后,则保存该流程,并返回创建成功的消息在显示页面上展示,同时消息中可包含有该流程的流程编码。反之,若不符合语法要求,则返回失败的消息,该消息中可包括有详细的语法错误信息。
在一可行的实施方式中,在所述基于所述工作节点的下一工作节点执行所述基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点的步骤之前,所述方法还包括:
步骤S201,基于所述流程配置确定所述工作节点的下一工作节点,以及所述下一工作节点的输入参数的第一参数类型;
步骤S202,若所述第一参数类型与所述工作节点的输出参数的第二参数类型不同,则将所述第二参数类型转换至与所述第一参数类型一致。
示例性的,在执行流程的过程中,当调用一个工作节点A得到该工作节点的输出参数后,再基于流程配置查找工作节点A的下一工作节点B,并确定工作节点B的输入参数的第一参数类型(同样可通过流程配置确定),若第一参数类型与工作节点B的第二参数类型不同,则将第二参数类型转换至与所述第一参数类型一致。可以理解的是,由于本实施例在执行流程过程会将工作节点与工作节点之间的输入与输出进行参数类型转化,从而使得自定义工作节点可以与预制的工作节点混合使用,对于用户而言可专心与自动定义节点的功能开发,不必受到已有流程或者预制工作节点的约束。
在一可行的实施方式中,在遍历目标流程中的工作节点之后,所述方法包括还:响应于流程执行结果查询请求,输出所述目标流程中各所述工作节点的执行状态,和/或,各所述工作节点的输出结果,和/或,所述目标流程的最终输出结果。也即,用户可通过触发流程执行结果查询请求主动查询目标流程执行完成后的输出内容。输出内容可以是各工作节点的执行状态,和/或,各所述工作节点的输出结果,和/或,所述目标流程的最终输出结果。具体的,输出内容可由技术人员根据实际需求进行设置,此处,不再赘述。
此外,参照图4,本申请实施例还提出一种流程编排系统100,所述流程编排系统100包括:
工作节点10,用于执行功能任务;
函数引擎模块20,用于维护所述工作节点;
配置管理模块30,用于流程配置的管理;
流程引擎模块40,用于响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置;基于所述流程配置确定所述目标流程中的工作节点;通过工作节点的访问地址调用工作节点执行所述目标流程。
可选的,所述流程引擎模块40还用于:
对于所述目标流程中的任意一个工作节点,基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点,得到所述工作节点的输出参数,其中,所述输入参数为所述流程执行请求中的初始入参,或者,为所述工作节点的上一工作节点的输出参数;
基于所述工作节点的下一工作节点执行所述基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点的步骤,直至遍历目标流程中的工作节点。
可选地,所述函数引擎模块20还用于:
基于所述流程配置确定所述目标流程中各工作节点的节点配置信息;
对于任意一个所述节点配置信息,基于所述节点配置信息查询所述节点配置信息对应工作节点是否创建完成;
若所述工作节点未创建完成,则基于所述节点配置信息创建所述工作节点。
可选地,所述函数引擎模块20还用于:
创建所述工作节点的容器;
确定所述节点配置信息中功能代码的语言类型;
基于所述语言类型在所述容器中部署所述功能代码的依赖环境;
基于所述功能代码生成可执行功能程序,其中,所述功能程序用于响应于调用请求,基于所述调用请求中的输入参数生成的输出参数,并将生成的输出参数返回至所述调用请求的请求方。
可选地,所述流程引擎模块40,还用于:
基于所述流程配置确定所述工作节点的下一工作节点,以及所述下一工作节点的输入参数的第一参数类型;
若所述第一参数类型与所述工作节点的输出参数的第二参数类型不同,则将所述第二参数类型转换至与所述第一参数类型一致。
可选地,所述配置管理模块30还用于:
响应于流程创建请求,获取所述流程创建请求中的流程配置;
在确定所述流程配置符合语法要求后,输出流程创建成功的提示信息。
本申请提供的流程编排系统,采用上述实施例中的工作流程执行方法,旨在解决当前传统流程编排系统灵活性较差的技术问题。与现有技术相比,本申请实施例提供的流程编排系统的有益效果与上述实施例提供的工作流程执行方法的有益效果相同,且该流程编排系统中的其他技术特征与上述实施例方法公开的特征相同,在此不做赘述。
此外,参照图5,为本申请流程编排系统的框架示意图,图中流程编排系统包括工作节点、函数引擎模块、配置管理模块以及流程引擎模块。其中,配置管理模块用于流程配置的管理,例如流程配置的校验和、保存和读取等。流程引擎模块为流程执行的管理单元,当收到用户的执行流程接口时,会查找配置管理获取最新的配置文件,同时根据配置触发函数引擎初始化任务节点。待任务节点初始化完毕后,流程引擎会实例化流程任务管理单元,流程任务管理单元可以是线程也可以是协程的方式,主要用于维护流程任务实例的上下文管理和任务执行的调度切换(根据配置请求任务节点,获取参数,进行参数保持和处理,若任务为完成,执行下一个任务)。函数引擎模块用于维护工作节点的生命周期管理,根据流程引擎的要求进行工作节点的创建,工作节点状态的检查,工作节点的销毁等。工作节点为具体任务的执行节点,如HTTP请求,可根据配置参数,如URL,HTTP HEADER,HTTPPARAM,HTTP METHOD等,请求外部服务,获取响应后,返回流程引擎实例。由于工作节点的通用性,可供多个流程实例复用。此外,流程编排系统还可以包括接口模块,接口模块则用于对外提供接口,例如,流程创建接口、执行流程接口以及流程执行结果查询接口等。其中,流程创建接口,用于创建流程,请求参数为流程名称和对应的YAML(YAML Ain't MarkupLanguage,另一种标记语言)。接口调用返回参数为流程创建接口状态,以及流程编号。执行流程接口,用于触发流程执行,请求参数为流程编号,以及流程调用的参数。执行流程接口可分为同步和异步两种,如果同步方式,会直接返回执行结果。异步接口返回流程任务编码,后续可根据任务编码查询任务执行结果和状态。流程执行结果查询接口。用于异步查询流程执行结果。请求参数为流程任务编码。返回参数为执行状态和执行结果。
进一步的,参照图6,为本申请中流程编排系统的工作时序图,图中以,用户基于界面进触发创建流程、执行流程以及流程状态查询三个场景进行说明。具体过程如下:
步骤1:用户在界面(GUI,图形化页面)上操作创建流程。前端页面调用接口(API-GW,接口关网)的创建流程接口。接口将请求(请求中可功能代码、代码的语言种类等)转发给配置管理模块(也即图中配置管理)。
步骤2:配置管理模块收到创建流程请求后,解析参数,获取流程名称和流程配置字段,判断是流程配置是否满足语法要求。如果通过检查则保持配置,并返回,同时成功的消息中可包含流程编码,否则返回失败,并返回详细错误信息。
步骤3:API-GW返回配置管理模块响应给GUI,GUI完成页面展示。
步骤4:用户在界面上操作执行流程,携带具体的流程编码和执行参数。API-GW将用户请求转发给流程引擎模块(即图中的流程引擎)。
步骤5:流程引擎模块收到请求后,根据流程编码查询配置管理模块,获取最新流程配置。配置管理模块查询后返回具体结果。
步骤6:流程引擎模块解析流程配置后,获取工作节点配置信息。
步骤7:流程引擎模块将工作节点配置信息发送给函数引擎模块(即图中的函数引擎)。工作节点配置信息可能为单条或者多条信息。
步骤8:函数引擎模块查询工作节点是否已创建,如果未创建,则创建工作节点。
步骤9:函数引擎模块返回流程引擎工作节点创建结果。
步骤10:当流程引擎收到工作节点创建结果后,判断结果,若所有工作节点状态正常(即创建完成),则创建流程执行实例,否则报错。流程执行实例负责具体流程的一次执行的所有工作节点调用和状态存储功能。
步骤11:流程执行实例根据流程配置文件,解析出初始工作节点,及配置参数,根据函数引擎返回的工作节点的访问地址,调用对应的工作节点。
步骤12:工作节点收到请求,解析参数,根据本工作节点的能力执行具体操作,完成具体任务。
步骤13:返回执行结果给流程实例。
步骤14:流程实例解析执行结果,根据流程配置文件,判断执行结果是否正常,如果正常,查找下一节点的地址和相关参数。
步骤15:流程执行实例调用新的工作节点。
步骤16:新的工作节点收到请求,解析参数,根据本工作节点的能力执行具体操作,完成具体任务。:
步骤17:流程实例解析执行结果,判断执行结果是否正常,如果正常,查找是否还有下一节点。如果无,则根据用户调用方式返回结果。若用户配置同步调用方式,则返回执行结果。如用户配置异步调用方式,则保持结果。若有下一节点,则重新确定新的工作节点,并返回执行上述步骤15。
步骤18:API-GW收到返回结果,返回GUI。
步骤19:GUI收到返回结果,完成展示。
步骤20:可选操作,用户通过页面刷新状态,GUI调用流程状态查询接口查询具体流程实例状态,API-GW转发流程实例状态查询到流程引擎,流程引擎根据具体流程实例编码查询具体执行状态,返回结果。
此外,参照图7,为本申请流程编排提醒工作过程中流程实例的工作原理示意图。如图7所示,流程控制实例由流程控制器、流程配置、工作节点配置、执行器和流程执行上下文组成。其中流程配置为流程引擎初始化流程实例时携带过来的参数,进行的本地保存。工作节点配置为流程引擎初始化工作节点获取的工作节点的访问地址信息。流程执行上下文保持不同步骤的请求和响应参数,可用于不同步骤的参数传递,也可用于步骤执行的详情展示。流程控制器完成整个流程的运行控制。基础的流程如下:流程控制器读取流程配置;流程控制器读取工作节点配置;流程控制器解析流程配置为任务列表。选择未执行的第一个任务,获取对应参数和工作节点信息;流程控制器初始化流程执行上下文,保持任务的请求参数;流程控制器通过执行器调用工作节点完成任务;执行器为两种,一种是串行任务执行器,即一次只调用一个工作节点。一种是并行任务执行器,一次调用多个工作节点。并行任务执行器需待所有任务执行完毕后才能返回;执行器根据工作节点信息获取工作节点返回地址,将该阶段任务对应的参数传递给工作节点;工作节点执行对应逻辑完成具体操作;工作节点返回执行结果(即工作节点的输出结果);流程控制器将执行结果保持到流程执行上下文;流程控制器判断任务列表是否已执行完成,若未完成,则选择下一个任务(工作节点)进行执行;若执行完成,流程控制器将执行结果入库进行保存。对于执行失败的情况,可以根据节点执行配置的策略进行重试。
此外,本申请实施例还提出一种工作流程执行设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的工作流程执行程序,所述工作流程执行程序配置为实现如上文所述的工作流程执行方法的步骤。
此外,本申请实施例还提出一种存储介质,所述存储介质上存储有工作流程执行程序,所述工作流程执行程序被处理器执行时实现如上文所述的工作流程执行方法的步骤。
此外,本申请实施例还提出一种计算机程序产品,包括工作流程执行程序,所述工作流程执行程序被处理器执行时实现如上所述的工作流程执行方法的步骤。
本申请计算机程序产品具体实施方式与上述工作流程执行方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种工作流程执行方法,其特征在于,所述工作流程执行方法:
响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置;
基于所述流程配置确定所述目标流程中的工作节点;
通过工作节点的访问地址调用工作节点执行所述目标流程。
2.如权利要求1所述的工作流程执行方法,其特征在于,所述通过工作节点的访问地址调用工作节点执行所述目标流程的步骤包括:
对于所述目标流程中的任意一个工作节点,基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点,得到所述工作节点的输出参数,其中,所述输入参数为所述流程执行请求中的初始入参,或者,为所述工作节点的上一工作节点的输出参数;
基于所述工作节点的下一工作节点执行所述基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点的步骤,直至遍历目标流程中的工作节点。
3.如权利要求1所述的工作流程执行方法,其特征在于,在所述基于所述流程配置确定所述目标流程中的工作节点的步骤之前,所述方法包括:
在所述目标流程中各工作节点的节点配置信息被确定后,对于任意一个所述节点配置信息,基于所述节点配置信息查询所述节点配置信息对应工作节点是否创建完成;
若所述工作节点未创建完成,则基于所述节点配置信息创建所述工作节点。
4.如权利要求3所述的工作流程执行方法,其特征在于,所述基于所述节点配置信息创建所述工作节点的步骤包括:
创建所述工作节点的容器;
确定所述节点配置信息中功能代码的语言类型;
基于所述语言类型在所述容器中部署所述功能代码的依赖环境;
基于所述功能代码生成可执行功能程序,其中,所述功能程序用于响应于调用请求,基于所述调用请求中的输入参数生成的输出参数,并将生成的输出参数返回至所述调用请求的请求方。
5.如权利要求3所述的工作流程执行方法,其特征在于,在所述基于所述工作节点的下一工作节点执行所述基于所述工作节点的输入参数以及工作节点的访问地址调用所述工作节点的步骤之前,所述方法还包括:
基于所述流程配置确定所述工作节点的下一工作节点,以及所述下一工作节点的输入参数的第一参数类型;
若所述第一参数类型与所述工作节点的输出参数的第二参数类型不同,则将所述第二参数类型转换至与所述第一参数类型一致。
6.如权利要求1至5任意一项所述的工作流程执行方法,其特征在于,在所述响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置的步骤之前,所述方法包括:
响应于流程创建请求,获取所述流程创建请求中的流程配置;
在确定所述流程配置符合语法要求后,输出流程创建成功的提示信息。
7.一种流程编排系统,其特征在于,所述流程编排系统包括:
工作节点,用于执行功能任务;
函数引擎模块,用于维护所述工作节点;
配置管理模块,用于流程配置的管理;
流程引擎模块,用于响应于流程执行请求,获取所述流程执行请求指向的目标流程的流程配置;基于所述流程配置确定所述目标流程中的工作节点;通过工作节点的访问地址调用工作节点执行所述目标流程。
8.一种工作流程执行设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的工作流程执行程序,所述工作流程执行程序配置为实现如权利要求1至6中任一项所述的工作流程执行方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有工作流程执行程序,所述工作流程执行程序被处理器执行时实现如权利要求1至6中任一项所述的工作流程执行方法的步骤。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括工作流程执行程序,所述工作流程执行程序被处理器执行时实现如权利要求1至6中任一项所述的工作流程执行方法的步骤。
CN202410166648.XA 2024-02-05 2024-02-05 工作流程执行方法、流程编排系统、设备、介质及产品 Pending CN118096060A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410166648.XA CN118096060A (zh) 2024-02-05 2024-02-05 工作流程执行方法、流程编排系统、设备、介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410166648.XA CN118096060A (zh) 2024-02-05 2024-02-05 工作流程执行方法、流程编排系统、设备、介质及产品

Publications (1)

Publication Number Publication Date
CN118096060A true CN118096060A (zh) 2024-05-28

Family

ID=91144589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410166648.XA Pending CN118096060A (zh) 2024-02-05 2024-02-05 工作流程执行方法、流程编排系统、设备、介质及产品

Country Status (1)

Country Link
CN (1) CN118096060A (zh)

Similar Documents

Publication Publication Date Title
US8108834B2 (en) Defining and executing processes using declarative programming language constructs
EP1873706A1 (en) Systems and methods for integrating services
US20060080117A1 (en) Maintaining integrity within an adaptive value chain involving cross enterprise interactions
EP1662383A2 (en) Prescriptive architecture for application development
CN111142933B (zh) 工作流生成方法、装置、计算机设备和存储介质
CN111026634A (zh) 一种接口自动化测试系统、方法、装置及存储介质
US20160294929A1 (en) System and method for reusing javascript code available in a soa middleware environment from a process defined by a process execution language
CN113961332A (zh) 一种工作流引擎实现的方法、装置、电子设备及存储介质
CN116523457A (zh) 基于业务流程的工作流处理方法、装置、设备及存储介质
US8572223B2 (en) System and method for utilizing event templates in an event manager to execute application services
US20100153913A1 (en) Systems and Methods for Executing Object-Oriented Programming Code Invoking Pre-Existing Objects
CN112487163B (zh) 自动化流程的执行方法及其接口数据的获取方法、装置
CN113179269B (zh) 基于物联网的协议数据解析方法、系统、介质
CN110119269B (zh) 控制任务对象的方法、装置、服务器及存储介质
US10268496B2 (en) System and method for supporting object notation variables in a process defined by a process execution language for execution in a SOA middleware environment
US20160291941A1 (en) System and method for supporting javascript as an expression language in a process defined by a process execution language for execution in a soa middleware environment
CN110874278A (zh) 外部系统的嵌入方法、工作流系统、设备及存储介质
CN118096060A (zh) 工作流程执行方法、流程编排系统、设备、介质及产品
US20070073902A1 (en) Information processor, information processing method and program
CN112698817B (zh) 基于微服务架构的消息接入方法、装置、系统及存储介质
KR101684454B1 (ko) 하이브리드 애플리케이션 및 이의 이벤트 처리 방법
Schuette et al. Exploiting instruction-level resource parallelism for transparent, integrated control-flow monitoring
CN111078571A (zh) 模拟响应的测试方法、终端设备及计算机可读存储介质
CN112817813B (zh) 基于react hooks的数据收集方法、装置及设备
KR102679305B1 (ko) 외부 시스템들 간 연계 흐름을 제공하는 흐름 관리 시스템 및 연계 흐름 관리 방법

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