CN116010071A - 业务编排方法及装置、计算机可存储介质 - Google Patents
业务编排方法及装置、计算机可存储介质 Download PDFInfo
- Publication number
- CN116010071A CN116010071A CN202111232122.XA CN202111232122A CN116010071A CN 116010071 A CN116010071 A CN 116010071A CN 202111232122 A CN202111232122 A CN 202111232122A CN 116010071 A CN116010071 A CN 116010071A
- Authority
- CN
- China
- Prior art keywords
- service
- service node
- node
- state
- dependent
- 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 36
- 230000001419 dependent effect Effects 0.000 claims abstract description 127
- 230000014509 gene expression Effects 0.000 claims description 9
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本公开涉及业务编排方法及装置、计算机可存储介质,涉及计算机技术领域。业务编排方法包括:确定待处理服务节点及其需要切换到的目标业务状态;获取待处理服务节点的目标业务状态所依赖的至少一个依赖服务节点的依赖业务状态以及待处理服务节点与至少一个依赖服务节点之间的依赖关系方向;获取待处理服务节点从当前业务状态切换到目标业务状态所需的业务操作以及每个依赖服务节点从当前业务状态切换到依赖业务状态所需的业务操作;根据待处理服务节点与至少一个依赖服务节点之间的依赖关系方向,确定所确定的多个业务操作之间的执行顺序,被依赖的服务节点对应的业务操作优先被执行;按照多个业务操作之间的执行顺序,依次执行多个业务操作。
Description
技术领域
本公开涉及计算机技术领域,特别涉及基于多个服务节点的业务编排方法及装置、计算机可存储介质。
背景技术
随着云计算技术和虚拟化技术的大规模普及,越来越多的底层基础网络能力都被开放出来,作为远程调用的服务的形式而存在。为了实现一种业务往往需要对接众多系统和平台,云端所要解决的问题也越来越复杂,因此顶层服务的编排能力成为了加速业务落地,提升运营效率的关键所在。
相关技术中,通过为每个编排流程设计相应的编排包,来实现相应的业务编排。
发明内容
相关技术中的编排过程复杂、维护困难且复用能力欠缺。
针对上述技术问题,本公开提出了一种解决方案,可以实现业务状态层面的自动化编排,简便、容易维护且复用能力较高。
根据本公开的第一方面,提供了一种基于多个服务节点的业务编排方法,包括:确定待处理服务节点及其需要切换到的目标业务状态;获取所述待处理服务节点的目标业务状态所依赖的至少一个依赖服务节点的依赖业务状态以及所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向;获取所述待处理服务节点从当前业务状态切换到目标业务状态所需的业务操作以及每个依赖服务节点从当前业务状态切换到依赖业务状态所需的业务操作;根据所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向,确定所确定的多个业务操作之间的执行顺序,其中,被依赖的服务节点对应的业务操作优先被执行;按照所述多个业务操作之间的执行顺序,依次执行所述多个业务操作。
在一些实施例中,每个服务节点预配置有节点描述信息,每个服务节点的节点描述信息中包括该服务节点的至少一个业务状态以及每个业务状态与其他服务节点的业务状态之间的依赖关系信息,所述依赖关系信息描述该服务节点的每个业务状态所直接依赖的其他服务节点的业务状态以及该服务节点与其他服务节点之间的依赖关系方向,所述至少一个依赖服务节点包括直接依赖服务节点和间接依赖服务节点,获取所述待处理服务节点的目标业务状态所依赖的至少一个依赖服务节点的依赖业务状态以及所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向包括:从所述待处理服务节点的节点描述信息中,获取所述待处理服务节点的目标业务状态所直接依赖的至少一个服务节点的业务状态以及相应的依赖关系方向,作为所述待处理服务节点所依赖的直接依赖服务节点的依赖业务状态以及相应的依赖关系方向;从针对每个直接依赖服务节点的节点描述信息中,获取所述每个直接依赖服务节点的依赖业务状态所直接依赖的至少一个服务节点的业务状态以及相应的依赖关系方向,作为所述待处理服务节点的目标业务状态所依赖的至少一个间接依赖服务节点的依赖业务状态以及相应的依赖关系方向,直到所述待处理服务节点的目标业务状态所依赖的间接依赖服务节点的节点描述信息中不再存在相应的间接依赖服务节点的依赖业务状态所直接依赖的服务节点的业务状态。
在一些实施例中,每个服务节点预配置有节点描述信息,每个服务节点的节点描述信息中包括该服务节点的不同业务状态之间切换所需的业务操作,获取所述待处理服务节点从当前业务状态切换到目标业务状态所需的业务操作以及每个依赖服务节点从当前业务状态切换到依赖业务状态所需的业务操作包括:获取所述待处理服务节点及其对应的依赖服务节点的当前业务状态;针对所述待处理服务节点及其对应的依赖服务节点中的每个服务节点,从该服务节点的节点描述信息中,获取其从当前业务状态切换到目标业务状态或依赖业务状态所需的业务操作。
在一些实施例中,所述依赖关系方向为指向被依赖的服务节点,根据所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向,确定所确定的多个业务操作之间的执行顺序包括:根据所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向,构建所述待处理服务节点与所述至少一个依赖服务节点之间的有向无环图,所述有向无环图以服务节点为图节点,图节点之间的方向为相应依赖关系方向的反方向;利用拓扑排序算法,对所述有向无环图进行拓扑排序,得到顺序排列的所述待处理服务节点及其对应的至少一个依赖服务节点;将所述多个业务操作,按照服务节点的排列顺序进行排序,得到所述多个业务操作之间的执行顺序。
在一些实施例中,每个服务节点预配置有节点描述信息,每个服务节点的节点描述信息中包括该服务节点的不同业务状态之间切换所需的业务操作的输入参数和输出参数,依次执行所述多个业务操作包括:从所述待处理服务节点与所述至少一个依赖服务节点的节点描述信息中,获取所述多个业务操作的输入参数和输出参数;按照所述多个业务操作之间的执行顺序,依次根据每个业务操作的输入参数和输出参数,执行所述每个业务操作。
在一些实施例中,所述输入参数信息包括输入参数的参数名和参数值,所述输出参数信息包括输出参数的参数名和参数值。
在一些实施例中,所述参数值为参数值来源、表达式或数值。
在一些实施例中,确定待处理服务节点及其需要切换到的目标业务状态包括:接收来自用户的编排请求,所述编排请求包括所述待处理服务节点的节点标识和所述待处理服务节点的目标业务状态。
根据本公开第二方面,提供了一种基于多个服务节点的业务编排装置,包括:第一确定模块,被配置为确定待处理服务节点及其需要切换到的目标业务状态;第一获取模块,被配置为获取所述待处理服务节点的目标业务状态所依赖的至少一个依赖服务节点的依赖业务状态以及所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向;第二获取模块,被配置为获取所述待处理服务节点从当前业务状态切换到目标业务状态所需的业务操作以及每个依赖服务节点从当前业务状态切换到依赖业务状态所需的业务操作;第二确定模块,被配置为根据所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向,确定所确定的多个业务操作之间的执行顺序,其中,被依赖的服务节点对应的业务操作优先被执行;执行模块,被配置为按照所述多个业务操作之间的执行顺序,依次执行所述多个业务操作。
根据本公开第三方面,提供了一种基于多个服务节点的业务编排装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行上述任一实施例所述的业务编排方法。
根据本公开的第四方面,提供了一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任一实施例所述的业务编排方法。
在上述实施例中,可以实现业务状态层面的自动化编排,简便、容易维护且复用能力较高。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1是示出根据本公开一些实施例的业务编排方法的流程图;
图2是示出根据本公开一些实施例的业务编排装置的框图;
图3是示出根据本公开另一些实施例的业务编排装置的框图;
图4是示出用于实现本公开一些实施例的计算机系统的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是示出根据本公开一些实施例的业务编排方法的流程图。
如图1所示,基于多个服务节点的业务编排方法包括步骤S1-步骤S5。在一些实施例中,服务节点可以是具体的原子能力(开通、修改、关闭)的集合,也可以是网元的一类操作(创建、配置、删除等)的集合,甚至也可以是云网编排中的某个虚拟化的节点。
在步骤S1中,确定待处理服务节点及其需要切换到的目标业务状态。
在一些实施例中,接收来自用户的编排请求。编排请求包括待处理服务节点的节点标识和待处理服务节点的目标业务状态。即根据用户的编排请求确定待处理服务节点及其需要切换到的目标业务状态。例如,业务状态包括开通、关闭、安装、拆卸、配置、清除配置、获取、释放等状态。
在步骤S2中,获取待处理服务节点的目标业务状态所依赖的至少一个依赖服务节点的依赖业务状态以及待处理服务节点与至少一个依赖服务节点之间的依赖关系方向。
在一些实施例中,每个服务节点预配置有节点描述信息,每个服务节点的节点描述信息中包括该服务节点的至少一个业务状态以及每个业务状态与其他服务节点的业务状态之间的依赖关系信息。依赖关系信息描述该服务节点的每个业务状态所直接依赖的其他服务节点的业务状态以及该服务节点与其他服务节点之间的依赖关系方向。
服务节点与服务节点之间存在着依赖关系,这种依赖关系是绑定在状态之上的。当前节点的状态的前置条件是另外一个节点的目标状态的完成。描述该依赖关系需要的信息如下:该依赖关系中当前服务节点的业务状态;该依赖关系中需要依赖的服务节点;该依赖关系中需要依赖的服务节点的业务状态;特定的依赖存在条件,用表达式进行表示。特定的依赖存在条件表征该依赖关系是有条件的依赖,可以通过属性进行条件约束。
例如,已知服务节点有两个状态:开通状态(ON)和关闭状态(OFF)。有两个服务节点A和B,描述基于业务状态的依赖关系为:A的开通状态依赖于B的关闭状态,A节点需要操作,目标业务状态为开通状态,描述为[A:开通状态]。根据依赖信息,A的开通状态依赖于B的关闭状态,表示为“A:开通状态->B:关闭状态”。最终操作列表为:[A:开通状态,B:关闭状态]。动态推导后可根据依赖关系排序为:[B:关闭状态,A:开通状态]。
基于以上设定,依赖关系也可抽象为更为复杂的依赖关系,但都最终可表示为以上依赖关系。本公开保护所有能够表示成状态依赖关系的抽象依赖关系。例如,严格依赖关系表示为“A开通状态依赖于B开通状态”且“B关闭状态依赖于A关闭状态”。又例如,互斥依赖关系表示为“A开通状态依赖于B关闭状态”且“B开通状态依赖于A关闭状态”。
在构建服务节点的依赖关系时,应当避免服务节点之间产生环状结构或者产生业务状态上的冲突。例如,避免出现当前节点经过依赖推导后产生了依赖当前节点的现象。两个不同节点同时依赖于另外一个节点的状态不同,要保证同一个节点在依赖状态图中处于唯一状态。
待处理服务节点的至少一个依赖服务节点包括直接依赖服务节点和间接依赖服务节点。直接依赖服务节点与待处理服务节点之间具有直接依赖关系,间接依赖服务节点与待处理服务节点之间通过其他服务节点具有间接依赖关系。例如,服务节点A依赖于服务节点B,服务节点B依赖于服务节点C。服务节点A与服务节点B之间是直接依赖关系,服务节点A与服务节点C之间是间接依赖关系。
获取所述待处理服务节点的目标业务状态所依赖的至少一个依赖服务节点的依赖业务状态以及所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向包括如下步骤。
首先,从待处理服务节点的节点描述信息中,获取待处理服务节点的目标业务状态所直接依赖的至少一个服务节点的业务状态以及相应的依赖关系方向,作为待处理服务节点所依赖的直接依赖服务节点的依赖业务状态以及相应的依赖关系方向。
然后,从针对每个直接依赖服务节点的节点描述信息中,获取每个直接依赖服务节点的依赖业务状态所直接依赖的至少一个服务节点的业务状态以及相应的依赖关系方向,作为待处理服务节点的目标业务状态所依赖的至少一个间接依赖服务节点的依赖业务状态以及相应的依赖关系方向,直到待处理服务节点的目标业务状态所依赖的间接依赖服务节点的节点描述信息中不再存在相应的间接依赖服务节点的依赖业务状态所直接依赖的服务节点的业务状态。即,知道间接依赖服务节点的依赖业务状态不再依赖于其他服务节点的业务状态。
在一些实施例中,服务节点的描述信息还可以包括服务节点的节点名称和业务信息等元数据信息。元数据信息主要用于描述服务节点的基本情况,便于整体管理和维护。
在步骤S3中,获取待处理服务节点从当前业务状态切换到目标业务状态所需的业务操作以及每个依赖服务节点从当前业务状态切换到依赖业务状态所需的业务操作。
在一些实施例中,每个服务节点的节点描述信息中还包括该服务节点的不同业务状态之间切换所需的业务操作。服务节点在运行时或者存储历史数据的情况下,需要记录其状态信息。服务节点状态有其生命周期的定义,根据编排业务的特点,设计为开通(ON)和关闭(OFF)两种状态,不排除通过添加其他状态来实现更为复杂的业务中间态。通过生命周期中状态的转换,来判断需要执行的操作。服务节点在设计态时并没有任何状态,只有关于状态切换需要封装的操作。为了封装服务节点的操作,对其生命周期的不同操作阶段设计不同的预定义。
例如:服务节点从关闭状态到开通状态,称之为开通流程,需要经过以下有序的操作:开通前(pre-install)操作、开通(install)操作、开通后(post-install)操作。服务节点从开通状态到关闭状态,称之为关闭流程,需要经过以下有序操作:关闭前(pre-uninstall)操作、关闭(uninstall)操作、关闭后(post-uninstall)操作。通过这些操作的预定义,我们可以配置服务节点不同的状态转换动作需要触发的操作。操作可以通过多种形式进行调用,操作不局限于一次调用,可以是一组有序的操作,按照顺序依次执行。
操作描述中包含:操作所属的服务节点的目前的阶段,例如开通前。操作需要的输入参数,以键值对的形式进行传输,键为参数的名称,值为参数的具体数值,也可以是表达式,也可以是具体的取值来源。操作的输出参数,以键值对的形式表示。键为某个编排服务节点的某个属性值,值为表达式,从响应中获取值。
获取待处理服务节点从当前业务状态切换到目标业务状态所需的业务操作以及每个依赖服务节点从当前业务状态切换到依赖业务状态所需的业务操作包括如下步骤。
首先,获取待处理服务节点及其对应的依赖服务节点的当前业务状态。例如,可以从数据库中获取服务节点的历史状态信息,以最接近时刻的历史业务状态作为当前业务状态。如果没有历史业务状态,则采用默认的业务状态作为当前业务状态。
然后,针对待处理服务节点及其对应的依赖服务节点中的每个服务节点,从该服务节点的节点描述信息中,获取其从当前业务状态切换到目标业务状态或依赖业务状态所需的业务操作。
例如,开通状态切换到关闭状态:调用相应操作进行关闭流程。关闭状态切换到开通状态:调用相应操作进行开通流程。开通状态切换到开通状态:对服务节点的参数进行比较,如果参数发生改变则调用相应的配置接口进行参数的修改。关闭状态切换到关闭状态:无任何操作。
在步骤S4中,根据待处理服务节点与至少一个依赖服务节点之间的依赖关系方向,确定所确定的多个业务操作之间的执行顺序。被依赖的服务节点对应的业务操作优先被执行。
在一些实施例中,依赖关系方向为指向被依赖的服务节点,根据待处理服务节点与至少一个依赖服务节点之间的依赖关系方向,确定所确定的多个业务操作之间的执行顺序包括如下步骤。
首先,根据待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向,构建待处理服务节点与至少一个依赖服务节点之间的有向无环图(Directed AcyclicGraph,DAG)。有向无环图以服务节点为图节点,图节点之间的方向为相应依赖关系方向的反方向。
然后,利用拓扑排序算法,对有向无环图进行拓扑排序,得到顺序排列的待处理服务节点及其对应的至少一个依赖服务节点。待处理服务节点及其对应的至少一个依赖服务节点的排列顺序为被依赖的服务节点排在前面。
最后,将多个业务操作,按照服务节点的排列顺序进行排序,得到多个业务操作之间的执行顺序。
在步骤S5中,按照多个业务操作之间的执行顺序,依次执行多个业务操作。
在一些实施例中,每个服务节点的节点描述信息中还包括该服务节点的不同业务状态之间切换所需的业务操作的输入参数和输出参数。即,节点描述信息中包括参数描述信息。参数描述信息最基本的作用时是描述该业务的具体参数数值上的状态,另外的作用是节点之间存在依赖关系时,通过参数进行数据传递。参数描述信息包括参数类型、参数默认值和参数本身的含义等。参数类型包括整型、字符型和布尔型等。参数默认值主要用于服务节点在获取参数时获得默认配置,为该服务节点的初始化默认配置。参数本身的含义例如为参数表征短信的条数。
依次执行所述多个业务操作包括如下步骤。
首先,从待处理服务节点与至少一个依赖服务节点的节点描述信息中,获取多个业务操作的输入参数和输出参数。在一些实施例中,输入参数信息包括输入参数的参数名和参数值,输出参数信息包括输出参数的参数名和参数值。例如,参数值为参数值来源、表达式或数值。
然后,按照多个业务操作之间的执行顺序,依次根据每个业务操作的输入参数和输出参数,执行每个业务操作。例如,编排器执行每个业务操作。编排器完全执行成功之后,会将当前所有的服务节点的业务状态以及属性信息存储到数据库中,用于下次的业务编排流程。
在一些实施例中,可以通过发起HTTP(HyperText Transfer Protocol,超文本传输协议)请求调用远端的服务、Kafka客户端发送消息、二进制代码、脚本等方式执行多个业务操作。
在上述实施例中,从服务节点的业务状态之间的依赖关系和业务状态切换的业务操作角度出发,自动化确定待处理服务节点从当前业务状态切换到目标业务状态所需要的多个业务操作及其执行顺序,从而实现了业务状态层面的自动化编排,无需单独涉及相应的编排包,简便、容易维护且复用能力较高。即,提高了业务编排的简便性、易维护性和复用能力。
基于状态的业务描述,对一些具有状态表达和固定生命周期的业务描述更为友好。特别适合在运营商的运营系统和云网编排领域之中。在编排器的运行时,只需要关心目标业务的状态即可,后台可以自动根据目标的业务状态,运算出达到目标状态所需要的操作,以及该目标状态关联的其他业务的状态和操作。业务之间的关系可以充分在不同系统之间复用。将业务的描述内化成基于状态的表达,便于编排业务本身的存储和演进。
图2是示出根据本公开一些实施例的业务编排装置的框图。
如图2所示,业务编排装置2包括第一确定模块21、第一获取模块22、第二获取模块23、第二确定模块24和执行模块25。
第一确定模块21被配置为确定待处理服务节点及其需要切换到的目标业务状态,例如执行如图1所示的步骤S1。
第一获取模块22被配置为获取待处理服务节点的目标业务状态所依赖的至少一个依赖服务节点的依赖业务状态以及待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向,例如执行如图1所示的步骤S2。
第二获取模块23被配置为获取待处理服务节点从当前业务状态切换到目标业务状态所需的业务操作以及每个依赖服务节点从当前业务状态切换到依赖业务状态所需的业务操作,例如执行如图1所示的步骤S3。
第二确定模块24被配置为根据待处理服务节点与至少一个依赖服务节点之间的依赖关系方向,确定所确定的多个业务操作之间的执行顺序,例如执行如图1所示的步骤S4。被依赖的服务节点对应的业务操作优先被执行。
执行模块25被配置为按照多个业务操作之间的执行顺序,依次执行多个业务操作,例如执行如图1所示的步骤S5。
图3是示出根据本公开另一些实施例的业务编排装置的框图。
如图3所示,业务编排装置3包括存储器31;以及耦接至该存储器31的处理器32。存储器31用于存储执行业务编排方法对应实施例的指令。处理器32被配置为基于存储在存储器31中的指令,执行本公开中任意一些实施例中的业务编排方法。
图4是示出用于实现本公开一些实施例的计算机系统的框图。
如图4所示,计算机系统40可以通用计算设备的形式表现。计算机系统40包括存储器410、处理器420和连接不同系统组件的总线400。
存储器410例如可以包括系统存储器、非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。系统存储器可以包括易失性存储介质,例如随机存取存储器(RAM)和/或高速缓存存储器。非易失性存储介质例如存储有执行业务编排方法中的至少一种的对应实施例的指令。非易失性存储介质包括但不限于磁盘存储器、光学存储器、闪存等。
处理器420可以用通用处理器、数字信号处理器(DSP)、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管等分立硬件组件方式来实现。相应地,诸如判断模块和确定模块的每个模块,可以通过中央处理器(CPU)运行存储器中执行相应步骤的指令来实现,也可以通过执行相应步骤的专用电路来实现。
总线400可以使用多种总线结构中的任意总线结构。例如,总线结构包括但不限于工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、外围组件互连(PCI)总线。
计算机系统40还可以包括输入输出接口430、网络接口440、存储接口450等。这些接口430、440、450以及存储器410和处理器420之间可以通过总线400连接。输入输出接口430可以为显示器、鼠标、键盘等输入输出设备提供连接接口。网络接口440为各种联网设备提供连接接口。存储接口450为软盘、U盘、SD卡等外部存储设备提供连接接口。
这里,参照根据本公开实施例的方法、装置和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个框以及各框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可提供到通用计算机、专用计算机或其他可编程装置的处理器,以产生一个机器,使得通过处理器执行指令产生实现在流程图和/或框图中一个或多个框中指定的功能的装置。
这些计算机可读程序指令也可存储在计算机可读存储器中,这些指令使得计算机以特定方式工作,从而产生一个制造品,包括实现在流程图和/或框图中一个或多个框中指定的功能的指令。
本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
通过上述实施例中的业务编排方法及装置、计算机可存储介质,可以实现业务状态层面的自动化编排,简便、容易维护且复用能力较高。
至此,已经详细描述了根据本公开的业务编排方法及装置、计算机可存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
Claims (11)
1.一种基于多个服务节点的业务编排方法,包括:
确定待处理服务节点及其需要切换到的目标业务状态;
获取所述待处理服务节点的目标业务状态所依赖的至少一个依赖服务节点的依赖业务状态以及所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向;
获取所述待处理服务节点从当前业务状态切换到目标业务状态所需的业务操作以及每个依赖服务节点从当前业务状态切换到依赖业务状态所需的业务操作;
根据所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向,确定所确定的多个业务操作之间的执行顺序,其中,被依赖的服务节点对应的业务操作优先被执行;
按照所述多个业务操作之间的执行顺序,依次执行所述多个业务操作。
2.根据权利要求1所述的业务编排方法,其中,每个服务节点预配置有节点描述信息,每个服务节点的节点描述信息中包括该服务节点的至少一个业务状态以及每个业务状态与其他服务节点的业务状态之间的依赖关系信息,所述依赖关系信息描述该服务节点的每个业务状态所直接依赖的其他服务节点的业务状态以及该服务节点与其他服务节点之间的依赖关系方向,所述至少一个依赖服务节点包括直接依赖服务节点和间接依赖服务节点,获取所述待处理服务节点的目标业务状态所依赖的至少一个依赖服务节点的依赖业务状态以及所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向包括:
从所述待处理服务节点的节点描述信息中,获取所述待处理服务节点的目标业务状态所直接依赖的至少一个服务节点的业务状态以及相应的依赖关系方向,作为所述待处理服务节点所依赖的直接依赖服务节点的依赖业务状态以及相应的依赖关系方向;
从针对每个直接依赖服务节点的节点描述信息中,获取所述每个直接依赖服务节点的依赖业务状态所直接依赖的至少一个服务节点的业务状态以及相应的依赖关系方向,作为所述待处理服务节点的目标业务状态所依赖的至少一个间接依赖服务节点的依赖业务状态以及相应的依赖关系方向,直到所述待处理服务节点的目标业务状态所依赖的间接依赖服务节点的节点描述信息中不再存在相应的间接依赖服务节点的依赖业务状态所直接依赖的服务节点的业务状态。
3.根据权利要求1所述的业务编排方法,其中,每个服务节点预配置有节点描述信息,每个服务节点的节点描述信息中包括该服务节点的不同业务状态之间切换所需的业务操作,获取所述待处理服务节点从当前业务状态切换到目标业务状态所需的业务操作以及每个依赖服务节点从当前业务状态切换到依赖业务状态所需的业务操作包括:
获取所述待处理服务节点及其对应的依赖服务节点的当前业务状态;
针对所述待处理服务节点及其对应的依赖服务节点中的每个服务节点,从该服务节点的节点描述信息中,获取其从当前业务状态切换到目标业务状态或依赖业务状态所需的业务操作。
4.根据权利要求1所述的业务编排方法,其中,所述依赖关系方向为指向被依赖的服务节点,根据所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向,确定所确定的多个业务操作之间的执行顺序包括:
根据所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向,构建所述待处理服务节点与所述至少一个依赖服务节点之间的有向无环图,所述有向无环图以服务节点为图节点,图节点之间的方向为相应依赖关系方向的反方向;
利用拓扑排序算法,对所述有向无环图进行拓扑排序,得到顺序排列的所述待处理服务节点及其对应的至少一个依赖服务节点;
将所述多个业务操作,按照服务节点的排列顺序进行排序,得到所述多个业务操作之间的执行顺序。
5.根据权利要求1所述的业务编排方法,其中,每个服务节点预配置有节点描述信息,每个服务节点的节点描述信息中包括该服务节点的不同业务状态之间切换所需的业务操作的输入参数和输出参数,依次执行所述多个业务操作包括:
从所述待处理服务节点与所述至少一个依赖服务节点的节点描述信息中,获取所述多个业务操作的输入参数和输出参数;
按照所述多个业务操作之间的执行顺序,依次根据每个业务操作的输入参数和输出参数,执行所述每个业务操作。
6.根据权利要求5所述的业务编排方法,其中,所述输入参数信息包括输入参数的参数名和参数值,所述输出参数信息包括输出参数的参数名和参数值。
7.根据权利要求6所述的业务编排方法,其中,所述参数值为参数值来源、表达式或数值。
8.根据权利要求1所述的业务编排方法,其中,确定待处理服务节点及其需要切换到的目标业务状态包括:
接收来自用户的编排请求,所述编排请求包括所述待处理服务节点的节点标识和所述待处理服务节点的目标业务状态。
9.一种基于多个服务节点的业务编排装置,包括:
第一确定模块,被配置为确定待处理服务节点及其需要切换到的目标业务状态;
第一获取模块,被配置为获取所述待处理服务节点的目标业务状态所依赖的至少一个依赖服务节点的依赖业务状态以及所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向;
第二获取模块,被配置为获取所述待处理服务节点从当前业务状态切换到目标业务状态所需的业务操作以及每个依赖服务节点从当前业务状态切换到依赖业务状态所需的业务操作;
第二确定模块,被配置为根据所述待处理服务节点与所述至少一个依赖服务节点之间的依赖关系方向,确定所确定的多个业务操作之间的执行顺序,其中,被依赖的服务节点对应的业务操作优先被执行;
执行模块,被配置为按照所述多个业务操作之间的执行顺序,依次执行所述多个业务操作。
10.一种基于多个服务节点的业务编排装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行如权利要求1至8任一项所述的业务编排方法。
11.一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如权利要求1至8任一项所述的业务编排方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111232122.XA CN116010071A (zh) | 2021-10-22 | 2021-10-22 | 业务编排方法及装置、计算机可存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111232122.XA CN116010071A (zh) | 2021-10-22 | 2021-10-22 | 业务编排方法及装置、计算机可存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010071A true CN116010071A (zh) | 2023-04-25 |
Family
ID=86034073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111232122.XA Pending CN116010071A (zh) | 2021-10-22 | 2021-10-22 | 业务编排方法及装置、计算机可存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010071A (zh) |
-
2021
- 2021-10-22 CN CN202111232122.XA patent/CN116010071A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8589864B2 (en) | Automating the creation of an application provisioning model | |
CN110888722A (zh) | 任务处理方法、装置、电子设备及计算机可读存储介质 | |
US11861394B2 (en) | Automated semantic tagging | |
US10810343B2 (en) | Mapping software constructs to synchronous digital circuits that do not deadlock | |
US11275568B2 (en) | Generating a synchronous digital circuit from a source code construct defining a function call | |
AU2012256399A1 (en) | Registration and execution of highly concurrent processing tasks | |
US11907296B2 (en) | Method and system for traversing an object graph using traversal context objects | |
US20190278607A1 (en) | Event handling instruction processing | |
CN113867600A (zh) | 处理流式数据的开发方法、装置和计算机设备 | |
US9519528B2 (en) | Checking undoability of an API-controlled computing system | |
CN110956485B (zh) | 基于RocketMQ的消息订阅方法及组件、消息订阅系统 | |
WO2021129812A1 (zh) | 运行人工智能应用的方法、系统及设备 | |
CN116010071A (zh) | 业务编排方法及装置、计算机可存储介质 | |
JP2024061591A (ja) | 関数およびサブ関数分析に基づく自動的コード再構成 | |
Le Goaer et al. | Android executable modeling: Beyond android programming | |
CN113391795A (zh) | 一种应用场景和软件开发包自适应映射的实现方法和系统 | |
US20210055971A1 (en) | Method and node for managing a request for hardware acceleration by means of an accelerator device | |
CN111124386A (zh) | 基于Unity的动画事件处理方法、装置、设备和存储介质 | |
CN108351788B (zh) | 提供对数据流的访问的数据处理设备 | |
US20170061289A1 (en) | Pluggable knowledge types in a rule engine | |
US11487606B2 (en) | Automated alert augmentation for deployments of software-defined storage | |
Bharti et al. | A Scalable Design Approach for State Propagation in Serverless Workflow | |
Pogrebnoy | Constructing graph models for software system development and analysis | |
CN118277460A (zh) | 数据匹配装置以及数据匹配方法 | |
CN117632372A (zh) | 一种基于Helm实现的持续部署管理方法 |
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 |