一种基于有向无环图的分布式服务编排方法与流程

文档序号:37764091发布日期:2024-04-25 10:50阅读:4来源:国知局
一种基于有向无环图的分布式服务编排方法与流程

本发明涉及计算机软件,特别涉及一种基于有向无环图的分布式服务编排方法。


背景技术:

1、未来有人无人协同的场景下,对机载平台软件提出了分布式协同、服务化的需求。为了满足上述要求,需要研制机载分布式服务编排方法,实现对分布式服务执行流程的控制。

2、机载分布式任务采用服务化设计,将任务分割成一系列细小的服务,每个服务专注于单一业务功能,运行于独立的进程中,并采用轻量级通信机制进行数据交互。分布式部署的模式涉及到多平台多服务间的协同处理,且对服务的执行顺序与方法也存在定制化的需求。因此,使用以往的高耦合任务处理方法已经不能满足新一代机载分布式软件的具体需求。同时,机载软件具有高实时性、确定性的需求,因此针对机载分布式软件部署模式,需要设计具有高并发度、确定性的服务流程控制方法。在嵌入式领域,将服务解耦、细化、进行分布式部署,提高软件复用度,实现系统能力快速构建的开放式架构计算平台将成为新一代嵌入式机载计算平台的主要形式和发展趋势。


技术实现思路

1、有鉴于此,本发明实施例提供了一种基于有向无环图的分布式服务编排方法和方法,以解决现有技术中系统对机载分布式任务的服务执行流程控制问题。本发明提供的一种基于有向无环图的分布式服务编排方法,所述方法包括:

2、根据服务流程控制规则生成对应的有向无环图,所述有向无环图中的各节点为需要进行编排的各服务,所述节点包括普通节点和特殊节点,所述特殊节点包括互斥节点、包含节点、事件节点和循环节点,所述普通节点对应的服务模型包括串行、并行与异步,所述特殊节点对应的服务模型包括互斥、包含、发布事件以及循环;

3、基于拓扑排序对有向无环图的各节点进行遍历,判断当前节点的服务模型,对特殊节点进行预处理,分批次输出当前可以批量执行的服务集合,同时对普通节点进行批量调度。

4、进一步的,所述有向无环图中,箭头的出发节点代表前驱服务,指向节点为后继服务,前驱服务包括一个或多个,所述前驱服务全部执行成功后执行所述后继服务。

5、进一步的,所述特殊节点对应的服务模型包含互斥、包含、发布事件以及循环,其中,互斥节点代表当前节点执行完成后,根据当前节点的服务执行结果指向不同的后继服务分支中的一个分支;所述包含节点代表当前节点执行完成后,根据服务执行结果指向多个后继服务分支;发布事件节点代表当前节点执行后或执行前需要发布事件;循环节点代表当前服务需要循环执行多次。

6、进一步的,互斥节点的数据结构中包含其后继不同分支所对应有向无环图的头结点信息与执行这些分支所对应的服务执行结果;包含节点的数据结构中额外包含后继不同分支所对应有向无环图的头结点信息与执行这些分支所对应的服务执行结果;发布事件节点的数据结构中额外包含发布事件的内容以及发布事件的时间,即服务执行前发布或服务执行完成后发布;循环节点的数据结构中额外包含该节点的循环次数。

7、进一步的,所述有向无环图的数据结构包括队列和链表,基于拓扑排序对有向无环图的各节点进行遍历之后,对遍历完成的各节点进行节点模型判断并将所述各节点归入队列中,其中,若当前节点为普通节点,则直接放入队列;若所述当前节点为特殊节点,对该节点进行预处理后放入队列;

8、所述各节点全部归入队列后,所述队列中的各节点即为所述服务集合,将所述队列中所有节点依次出队并将所述各节点写入链表;

9、将所述服务集合中的所有节点批量执行,如果当前节点对应的服务成功执行并获得反馈结果,则将所述当前节点标记完成并从所述链表中删除,根据所述有向无环图继续遍历下一批节点。

10、进一步的,若当前节点为互斥节点,则直接执行所述当前节点对应的服务分支并获取服务执行结果,根据所述服务执行结果将对应服务分支的头结点归入队列中;

11、若当前节点为包含节点,则直接执行所述当前节点对应的服务分支并获取服务执行结果,根据所述服务执行结果将所有分支的头结点归入队列中;

12、若当前节点为发布事件节点,则查看所述当前节点数据结构中发布事件的时机,若是执行前发布则发布事件并执行该服务,若为执行后发布则等待该服务执行完成后发布事件,执行完成后标记所述当前节点已遍历并跳过入队;

13、若当前节点为循环节点,则按照所述当前节点数据结构记录的循环次数进行服务的执行,执行完成后标记所述当前节点已遍历并跳过入队。

14、进一步的,将所述有向无环图中的相同服务节点进行差异化编号,并分别记录所述相同服务节点的前驱节点、后继节点、输入参数以及输出参数。

15、与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:本发明提供了一种基于有向无环图的分布式服务编排方法,基于服务分布式部署、协同任务处理的场景下,解决了服务流程控制问题。相比于现有的适配控制模式,本发明更加轻量化,且针对机载环境具有高并发、流程精确控制的特性,更加贴合机载需求,只需手动配置信息以及输入流程控制规则的有向无环图,使得控制流程定制、测试、维护成本及难度大幅度降低。



技术特征:

1.一种基于有向无环图的分布式服务编排方法,其特征在于,该方法包括:

2.根据权利要求1所述的一种基于有向无环图的分布式服务编排方法,其特征在于,所述有向无环图中,箭头的出发节点代表前驱服务,指向节点为后继服务,前驱服务包括一个或多个,所述前驱服务全部执行成功后执行所述后继服务。

3.根据权利要求2所述的一种基于有向无环图的分布式服务编排方法,其特征在于,所述特殊节点对应的服务模型包含互斥、包含、发布事件以及循环,其中,互斥节点代表当前节点执行完成后,根据当前节点的服务执行结果指向不同的后继服务分支中的一个分支;所述包含节点代表当前节点执行完成后,根据服务执行结果指向多个后继服务分支;发布事件节点代表当前节点执行后或执行前需要发布事件;循环节点代表当前服务需要循环执行多次。

4.根据权利要求3所述的一种基于有向无环图的分布式服务编排方法,其特征在于:互斥节点的数据结构中包含其后继不同分支所对应有向无环图的头结点信息与执行这些分支所对应的服务执行结果;包含节点的数据结构中额外包含后继不同分支所对应有向无环图的头结点信息与执行这些分支所对应的服务执行结果;发布事件节点的数据结构中额外包含发布事件的内容以及发布事件的时间,即服务执行前发布或服务执行完成后发布;循环节点的数据结构中额外包含该节点的循环次数。

5.根据权利要求1所述的一种基于有向无环图的分布式服务编排方法,其特征在于,所述有向无环图的数据结构包括队列和链表,基于拓扑排序对有向无环图的各节点进行遍历之后,对遍历完成的各节点进行节点模型判断并将所述各节点归入队列中,其中,若当前节点为普通节点,则直接放入队列;若所述当前节点为特殊节点,对该节点进行预处理后放入队列;

6.根据权利要求5所述的一种基于有向无环图的分布式服务编排方法,其特征在于,

7.根据权利要求1所述的一种基于有向无环图的分布式服务编排方法,其特征在于,将所述有向无环图中的相同服务节点进行差异化编号,并分别记录所述相同服务节点的前驱节点、后继节点、输入参数以及输出参数。


技术总结
本发明涉及计算机软件技术领域,提供一种基于有向无环图的分布式服务编排方法,该方法包括:通过模型设定来标识流程控制中的特殊、普通节点;通过有向无环图记录服务的流程控制规则;基于图的拓扑排序进行多次遍历并分批识别当前可执行服务集合;通过链表与队列对服务流程中的节点进行模型判断与批量执行。本申请在服务分布式部署且进行协同任务处理的场景下,根据既定服务执行规则抽象形成的有向无环图,解决了服务执行过程的流程控制问题。

技术研发人员:刘雨坤,吕广喆,王一凡,任晓瑞,齐舸,樊超
受保护的技术使用者:中国航空工业集团公司西安航空计算技术研究所
技术研发日:
技术公布日:2024/4/24
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1