一种基于有向无环图的系统构建策略生成方法技术方案

技术编号:32478207 阅读:14 留言:0更新日期:2022-03-02 09:41
本发明专利技术提供了一种基于有向无环图的系统构建策略生成方法,通过将待构建系统抽象为一个有向无环图,优化了系统构建数据存储方法,便于系统构建状态更新和维护,通过动态生成构建策略,避免了频繁遍历系统构建目标导致的性能开销,提高了系统构建的稳定性和拓展性。提高了系统构建的稳定性和拓展性。提高了系统构建的稳定性和拓展性。

【技术实现步骤摘要】
一种基于有向无环图的系统构建策略生成方法


[0001]本专利技术属于计算机
,尤其涉及一种基于有向无环图的系统构建策略生成方法。

技术介绍

[0002]近年来,随着软件插件化技术,微服务技术等技术飞速发展,构建大型软件系统的复杂度直线上升,呈现出软件数量多,机器规模大,软件间依赖关系复杂等特点,快速开设大型软件系统已成为当前集成部署领域的热点问题。在软件系统构建过程中,合理的构建策略能够显著提升系统构建效率,降低服务端资源占用,同时正确处理多机器条件下的软件之间依赖关系。传统系统构建策略大多采用静态方式生成,每次状态更新都需要遍历构建图,带来较大的性能浪费和时间开销。因此,如何设计一种高效合理的大型软件系统构建策略,保证系统构建的正确性和效率,成为集成部署领域的研究热点与挑战。

技术实现思路

[0003]专利技术目的:在批量部署构建软件系统的应用场景下,为正确处理软件、机器之间复杂的依赖关系,避免部署过程遍历待部署列表造成的计算资源浪费,本专利技术提出了一种基于有向无环图的系统构建策略生成方法,所述方法通过将待构建系统抽象为一张有向无环图,实现对各节点各软件部署状态的统一管控,并动态生成构建策略,避免全局遍历导致的资源浪费。
[0004]本专利技术的技术方案为一种基于有向无环图的系统构建策略生成方法,包括以下步骤:
[0005]步骤1,基于用户输入所需构建系统生成构建图;
[0006]步骤2,判断构建图的无环性;
[0007]步骤3,启动部署并根据反馈结果解算后续部署任务;
[0008]步骤4,统计系统构建结果。
[0009]所述基于用户输入系统生成构建图,是指用户在前端页面上对于系统内所有机器,指定每台机器所需安装的软件列表,并已满足软件间依赖关系,后端服务收到前端输入的待构建系统后,将其转换为一个有向构建图,步骤1包括:
[0010]步骤1

1,用户在前端页面针对每台机器IP,分别指定目标机器所需安装的软件列表,设置好待部署软件的各项参数;
[0011]步骤1

2,后端服务接收到前台传回的构建系统信息,以软件为基本单元,遍历待构建系统内所有待部署软件以及部署依赖关系,为每个软件建立图节点,每个节点作为一个单独的部署任务,所有节点组成整个系统的部署任务;
[0012]步骤1

3,对于每个节点A,除包含软件本身的信息外,应添加部署前置条件列表和部署后续任务列表,前置条件列表中存放节点A所依赖的软件节点索引,即前置条件列表中节点均部署成功后节点A才能够部署,后续任务列表中存放依赖节点A的软件节点索引,即
节点A部署成功是后续任务列表中节点部署的必要条件;
[0013]步骤1

4,创建一个初始节点列表,选择所有前置条件列表为空的节点作为初始节点,保存至初始节点列表中。
[0014]步骤1

3中,判断软件能否进入部署时需要查找其前置条件,使用双向图为软件之间的每条依赖关系创建正反两条有向边,软件A1有两个前置条件,设定软件A2部署成功,通过正向边查找到A1,此时A1需要判断是否所有前置条件均部署成功,则通过反向边查找到前置条件节点进行判断。
[0015]所述构建图无环型判断,是指在开始系统构建之前,必须确保系统构建图不存在环依赖问题,若存在环依赖,系统构建将进入无限等待状态,步骤2包括以下步骤:
[0016]步骤2

1,新建储存经过路径的哈希表,找到初始节点列表,从初始节点出发遍历所有初始节点;
[0017]步骤2

2,对于当前遍历到的节点,判断是否在路径表中已存在,如果已存在,跳至步骤2

5,否则将当前节点压入路径表中;
[0018]步骤2

3,深度优先遍历当前节点的后续任务列表,跳至步骤2

2;如果后续任务列表为空,跳至步骤2

4;
[0019]步骤2

4,删除路径表中的当前节点,回溯至上一级;
[0020]步骤2

5,发现环依赖存在,终止遍历,返回搜索结果;
[0021]步骤2

6,未发现嵌入型环依赖,通过判断是否完全遍历得知是否存在独立型环依赖。
[0022]所述启动部署并根据反馈结果解算后续部署任务,是指首先为前置条件列表为空的初始节点软件发送部署指令,等待各自反馈部署结果,根据结果结算出后续可进入部署的软件或无法继续部署的软件,步骤3包括以下步骤:
[0023]步骤3

1,定义节点的部署状态,包括未开始、部署中、成功和失败四种状态,系统构建开始时所有节点状态均为未开始;
[0024]步骤3

2,新建一个部署中的节点集合,用于维护所有正在部署节点状态;
[0025]步骤3

3,找到初始节点列表,遍历所有初始节点,将状态置为部署中,同时向对应客户端机器下发对应部署指令,将当前节点加入部署中节点集合;
[0026]步骤3

4,服务端接收客户端部署执行结果,如果结果反馈为成功,跳至步骤3

5,如果结果为失败,跳至步骤3

6;
[0027]步骤3

5,将当前节点状态置为成功,并从部署中集合移除,遍历当前节点的后续任务列表,对每个后续任务节点,判断其前置条件列表中所有节点是否状态都为成功,如果是,则将后续任务节点状态置为部署中并加入部署中集合,并下发部署指令;否则,不做操作;跳至步骤3

7;
[0028]步骤3

6,将当前节点状态置为失败,并从部署中集合移除,并递归遍历当前节点后续任务节点,将所有后续节点状态均置为失败,跳至步骤3

7;
[0029]步骤3

7,检查部署中集合状态,如果集合为空,表示系统构建已停止,反馈系统构建结果,否则,不做操作。
[0030]所述统计系统构建结果,是指系统中所有软件均达到部署成功或失败状态,由用户决定后续操作,步骤4包括以下步骤:
[0031]步骤4

1,经过步骤3

7判断,若系统构建已停止,遍历系统中所有软件节点,统计处于成功或失败状态的软件并向用户反馈;
[0032]步骤4

2,用户排查部署失败原因并排除故障后,能够将所有失败状态软件重新作为待部署软件,从步骤1开始继续部署系统,直至系统内所有软件全部部署成功。
[0033]本专利技术提出了一种基于有向无环图的系统构建策略生成方法,通过将待构建系统抽象为一个有向无环图,优化了系统构建数据存储方法,便于系统构建状态更新和维护,通过动态生成构建策略,避免了频繁遍历系统构建目标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于有向无环图的系统构建策略生成方法,其特征在于,包括以下步骤:步骤1,基于用户输入所需构建系统生成构建图;步骤2,判断构建图的无环性;步骤3,启动部署并根据反馈结果解算后续部署任务;步骤4,统计系统构建结果。2.根据权利要求1所述的方法,其特征在于,步骤1包括:步骤1

1,用户在前端页面针对每台机器IP,分别指定目标机器所需安装的软件列表,设置好待部署软件的各项参数;步骤1

2,后端服务接收到前台传回的构建系统信息,以软件为基本单元,遍历待构建系统内所有待部署软件以及部署依赖关系,为每个软件建立图节点,每个节点作为一个单独的部署任务,所有节点组成整个系统的部署任务;步骤1

3,对于每个节点A,除包含软件本身的信息外,应添加部署前置条件列表和部署后续任务列表,前置条件列表中存放节点A所依赖的软件节点索引,即前置条件列表中节点均部署成功后节点A才能够部署,后续任务列表中存放依赖节点A的软件节点索引,即节点A部署成功是后续任务列表中节点部署的必要条件;步骤1

4,创建一个初始节点列表,选择所有前置条件列表为空的节点作为初始节点,保存至初始节点列表中。3.根据权利要求2所述的方法,其特征在于,步骤1

3中,判断软件能否进入部署时需要查找其前置条件,使用双向图为软件之间的每条依赖关系创建正反两条有向边,软件A1有两个前置条件,设定软件A2部署成功,通过正向边查找到A1,此时A1需要判断是否所有前置条件均部署成功,则通过反向边查找到前置条件节点进行判断。4.根据权利要求3所述的方法,其特征在于,步骤2包括:步骤2

1,新建储存经过路径的哈希表,找到初始节点列表,从初始节点出发遍历所有初始节点;步骤2

2,对于当前遍历到的节点,判断是否在路径表中已存在,如果已存在,跳至步骤2

5,否则将当前节点压入路径表中;步骤2

3,深度优先遍历当前节点的后续任务列表,跳至步骤2

2;如果后续任务列表为空,跳至步骤2

4;步骤2

【专利技术属性】
技术研发人员:马毓凯谢荣平戴佳男赵侃侃张晓兵丁仕明孙扬
申请(专利权)人:中国电子科技集团公司第二十八研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1