一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多应用的部署方法、装置、设备及可读存储介质与流程

2022-06-01 12:29:40 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别涉及一种多应用的部署方法、装置、设备及可读存储介质。


背景技术:

2.随着微服务架构的兴起,对微服务架构中的应用进行部署的运维工具仅支持对单个应用下脚本的依赖关系、解决单个应用的部署问题,现有的运维工具在面对多个应用之间依赖性较复杂、多个应用重复利用同一个脚本等场景时,都无法发挥成效,所以现有技术中,在对多个应用进行部署,且应用和应用之间存在复杂的依赖关系时,需要人为介入到应用的脚本中,将多个应用按照依赖关系进行手动编排,再根据编排结果人为的对多个应用进行部署;由于无法直接使用现有的运维工具,所以实现多应用的部署对运维人员的要求较高。
3.因此,如何对存在复杂依赖编排的多个应用进行一键部署成为本领域技术人员亟需解决的技术问题。


技术实现要素:

4.本发明的目的在于提供一种多应用的部署方法、装置、设备及可读存储介质,能够对存在复杂依赖编排的多个应用进行一键部署。
5.根据本发明的一个方面,提供了一种多应用的部署方法,所述方法包括:
6.获取用于表征待部署的多个应用之间的依赖关系的树状拓扑图;其中,所述树状拓扑图包括:用于表征应用的节点图例和用于表征依赖关系的连接线;
7.根据所述树状拓扑图中各个节点图例之间通过连接线的连接关系,重新对所述树状拓扑图中的各个节点图例进行排序,以形成包含所述树状拓扑图中所有类型的节点图例的部署队列;
8.按照所述部署队列中各个节点图例的先后顺序依次执行与每个节点图例对应的应用的部署操作。
9.可选的,所述方法还包括:
10.通过显示界面中的第一窗体显示用于表征待部署的各种应用的节点图例;
11.响应于从所述第一窗体中将目标节点图例拖拽至所述显示界面中的第二窗体的第一操作,在所述第二窗体内按照所述第一操作的结束位置布置所述目标节点图例;
12.响应于在所述第二窗体中对所述目标节点图例的第二操作,在所述显示界面中显示第三窗体,并将在所述第三窗体内输入的信息作为节点属性信息添加至所述目标节点图例;
13.响应于在所述第二窗体中对第一节点图例和第二节点图例的第三操作,在所述第二窗体中绘制用于连接所述第一节点图例和第二节点图例的连接线;
14.响应于在所述第二窗体中对所述连接线的第四操作,在所述显示界面中显示第四
窗体,并将在所述第四窗体内输入的信息作为线属性信息添加至所述连接线;
15.响应于在所述第二窗体中触发的第五操作,将所述第二窗体中通过连接线互相连接的所有节点图例设置为树状拓扑图。
16.可选的,所述节点属性信息包括:用于部署与节点图例对应的应用的部署脚本,以及在所述部署脚本中包括的参数;
17.所述线属性信息包括:第一节点图例对应的第一应用与第二节点图例对应的第二应用之间的依赖关系;其中,所述依赖关系包括:第一应用依赖第二应用,或第一应用的部署脚本中的参数依赖第二应用的部署脚本中的参数。
18.可选的,所述方法还包括:
19.从所述树状拓扑图中解析出根节点图例、分支以及各个分支的子分支;
20.其中,每个分支至少包括两个层级的节点图例,且每个分支中最高层级的节点图例均为根节点图例;
21.所述子分支中各个层级的节点图例最多只与一个低层级的节点图例连接。
22.可选的,所述根据所述树状拓扑图中各个节点图例之间通过连接线的连接关系,重新对所述树状拓扑图中的各个节点图例进行排序,以形成包含所述树状拓扑图中所有类型的节点图例的部署队列,具体包括:
23.从所述树状拓扑图中最左边的子分支开始,按照从左到右的顺序依次遍历各个子分支,并判断在当前遍历到的第i个子分支中是否存在与第1至第(i-1)个子分支中相重复的节点图例,若是,则在第i个子分支中将重复的节点图例删除,并在遍历完所有子分支后得到清洁树状拓扑图;
24.从所述清洁树状拓扑图中最左边的子分支开始,按照从左到右的顺序依次遍历各个子分支,并将在当前遍历到的子分支中的各个节点图例按照从低层级至高层级的顺序依次存储至所述部署队列中;
25.将所述清洁树状拓扑图中除已遍历的所有子分支之外的其他节点图例,按照从低层级至高层级的顺序依次存储至所述部署队列中;
26.根据所述清洁树状拓扑图中各个节点图例之间的连接线为所述部署队列中的各个节点图例之间添加对应的连接线。
27.可选的,所述从所述树状拓扑图中最左边的子分支开始,按照从左到右的顺序依次遍历各个子分支,并判断在当前遍历到的第i个子分支中是否存在与第1至第(i-1)个子分支中相重复的节点图例,若是,则在第i个子分支中将重复的节点图例删除,并在遍历完所有子分支后得到清洁树状拓扑图,具体包括:
28.从所述第i个子分支的第一个节点图例开始,按照从高层级至低层级的顺序依次遍历各个节点图例,并判断由当前遍历到的目标节点图例和位于所述目标节点图例之后的所有节点图例构成的节点串是否存在于第n个子分支中;其中,所述第n个子分支为第1个子分支至第(i-1)个子分支中的一个子分支;
29.若是,则将所述节点串删除,并为所述目标节点图例的高一层级的节点图例的节点属性信息中添加关联节点图例的标识;其中,所述关联节点图例为第n个分支中的与所述目标节点图例为同一类型的节点图例;
30.若否,则继续遍历低一层级的节点图例。
31.可选的,所述按照所述部署队列中各个节点图例的先后顺序依次执行与每个节点图例对应的应用的部署操作,具体包括:
32.接收部署指令;其中,所述部署指令包括:用于生成动态参数的参数值的参数生成规则;
33.按照存储至所述部署队列中的先后顺序,依次从所述部署队列中获取待部署节点图例;
34.获取所述待部署节点图例的节点属性信息,以及所述待部署节点图例与所述部署队列中前一节点图例之间的连接线的线属性信息;
35.根据所述节点属性信息中的部署脚本、所述线属性信息中的依赖关系以及所述部署指令中的参数生成规则完成对所述待部署节点图例的部署操作。
36.可选的,所述根据所述节点属性信息中的部署脚本、所述线属性信息中的依赖关系以及所述部署指令中的参数生成规则完成对所述待部署节点图例的部署操作,具体包括:
37.从所述部署脚本中解析出部署步骤,并从每个部署步骤中解析出静态参数和/或动态参数;
38.按照部署步骤的先后顺序依次遍历各个部署步骤,并判断当前遍历到的目标部署步骤中是否包括动态参数;
39.若是,则当所述动态参数的参数类型为被引用时,从所述部署指令中获取所述动态参数的参数生成规则,根据所述参数生成规则生成动态参数值,并将所述动态参数值存储至与所述动态参数对应的全局占位中;当所述动态参数的参数类型为引用时,从与所述动态参数对应的全局占位中获取所述动态参数的动态参数值。
40.为了实现上述目的,本发明还提供一种计算机设备,该计算机设备具体包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述介绍的多应用的部署方法的步骤。
41.为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述介绍的多应用的部署方法的步骤。
42.本发明提供的多应用的部署方法、装置、设备及可读存储介质,通过获取记录待部署的多个应用之间的依赖关系的树状拓扑图,修改树状拓扑图以得到了清洁树状拓扑图,进而解析清洁树状拓扑图以实现对具有复杂依赖关系的多个应用的一键部署操作,通过在清洁树状拓扑图中存储节点图例的节点属性信息和连接线的线属性信息,可以得到多个节点图例对应的应用的复杂依赖关系,避免了由于重复利用同一个节点图例进行部署而产生的部署困难的问题,节约了部署资源、提高了自动化部署应用的水平,同时,还支持在部署过程中设置动态占位以使得应用产生的动态参数可以在部署的多个应用中传递使用;本实施例达到了对单个应用多层级、分阶段部署,使得静态参数和/或动态参数可以在应用中同时传递,大幅提高多个应用的并发部署效率和对重复应用的部署效率。
附图说明
43.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明
的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
44.图1为实施例一提供的多应用的部署方法的一种可选的流程示意图;
45.图2为实施例一提供的第一窗体中多应用的节点图例示意图;
46.图3为实施例一提供的树状拓扑图示意图;
47.图4为实施例一提供的树状拓扑图中的根节点图例、分支以及子分支的示意图;
48.图5为实施例一提供的删除树状拓扑图中重复的节点串的示意图;
49.图6为实施例一提供的清洁树状拓扑图示意图;
50.图7为实施例一提供的完成部署后的应用的示意图;
51.图8为实施例三提供的多应用的部署装置的一种可选的组成结构示意图;
52.图9为实施例四提供的计算机设备的一种可选的硬件架构示意图。
具体实施方式
53.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
54.实施例一
55.本发明实施例提供了一种多应用的部署方法,如图1所示,该方法具体包括以下步骤:
56.步骤s101:获取用于表征待部署的多个应用之间的依赖关系的树状拓扑图;其中,所述树状拓扑图包括:用于表征应用的节点图例和用于表征依赖关系的连接线。
57.其中,所述树状拓扑图是由多个待部署的应用的节点图例和连接线构成,连接线中箭头的指向与依赖关系有关,连接线的箭头指向被依赖方。
58.具体的,步骤s101,包括以下步骤:
59.步骤a1:通过显示界面中的第一窗体显示用于表征待部署的各种应用的节点图例。
60.其中,所述通过显示界面中的第一窗体显示用于表征待部署的各种应用的节点图例,如图2所示,一种类型的应用对应一种类型的节点图例。
61.步骤a2:响应于从所述第一窗体中将目标节点图例拖拽至所述显示界面中的第二窗体的第一操作,在所述第二窗体内按照所述第一操作的结束位置布置所述目标节点图例。
62.其中,所述第一操作为拖拽操作,应用于每个目标节点图例,在第二窗体内可以出现同一节点图例被多次编排,以表征一个节点图例对应的应用在编排过程中被多次使用。
63.步骤a3:响应于在所述第二窗体中对所述目标节点图例的第二操作,在所述显示界面中显示第三窗体,并将在所述第三窗体内输入的信息作为节点属性信息添加至所述目标节点图例。
64.其中,所述第二操作为点击操作,应用于每个目标节点图例。
65.具体的,所述节点属性信息包括:用于部署与节点图例对应的应用的部署脚本,以及在所述部署脚本中包括的参数。
66.在本实施例中,在部署脚本中会包含多个部署步骤,且在部分部署步骤中会包括动态参数和/或静态参数;其中,部署步骤是部署脚本的最小执行单位,多个部署步骤可以完成一个应用的部署流程,且各个部署步骤之间是串行执行。
67.需要说明的是,静态参数的参数值为在执行部署脚本前就已设置好的固定参数值;动态参数的参数值在执行部署脚本前未设置,需要在执行部署脚本的过程中生成。
68.步骤a4:响应于在所述第二窗体中对第一节点图例和第二节点图例的第三操作,在所述第二窗体中绘制用于连接所述第一节点图例和第二节点图例的连接线。
69.其中,所述第三操作为连线操作,优选的,所述连接线为具有箭头的连接线,用于使用带箭头的连接线连接两个节点图例,例如,如图3所示,由应用b的节点图例指向应用g的节点图例,以标识应用b需要依赖应用g。
70.具体的,所述连接线还包括虚线,如图3所示,虚线表征应用c生成的参数动态传递到应用e中。
71.步骤a5:响应于在所述第二窗体中对所述连接线的第四操作,在所述显示界面中显示第四窗体,并将在所述第四窗体内输入的信息作为线属性信息添加至所述连接线。
72.其中,所述第四操作为点击操作,用于为连接线添加线属性信息。
73.具体的,所述线属性信息包括:第一节点图例对应的第一应用与第二节点图例对应的第二应用之间的依赖关系。
74.进一步的,所述依赖关系包括:第一应用依赖第二应用,或第一应用的部署脚本中的参数依赖第二应用的部署脚本中的参数;其中,第一应用依赖第二应用是指在第一应用开始执行前第二应用必须已经执行完成。
75.更进一步的,所述步骤a5还包括:
76.当所述连接线为虚线时,为所述虚线添加虚线属性信息,其中,所述虚线属性信息表征动态参数传递关系。
77.步骤a6:响应于在所述第二窗体中触发的第五操作,将所述第二窗体中通过连接线互相连接的所有节点图例设置为树状拓扑图。
78.其中,所述第五操作为设置操作,用于将第二窗体中通过连接线进行连接的所有节点图例设置为树状拓扑图,所述树状拓扑图如图3所示。
79.在本实施例中,所述树状拓扑图包括:用于表征待部署应用的节点图例和用于表征多个待部署应用之间的依赖关系的连接线,且每个节点图例均有对应的节点属性信息、每个连接线均有对应的线属性信息。此外,在所述树状拓扑图中,针对一种应用的节点图例可能会多次出现在所述树状拓扑图中。
80.进一步的,在步骤a6之后,所述方法还包括:
81.从所述树状拓扑图中解析出根节点图例、分支以及各个分支的子分支;
82.其中,如图4所示,所述根节点图例为在树状拓扑图中位于树状拓扑图的最高层级的节点图例,例如图4所示的应用a这一节点图例为根节点图例。
83.具体的,每个分支至少包括两个层级的节点图例,且每个分支中最高层级的节点图例均为所述根节点图例,例如图4所示的应用a、应用d、应用b和应用g是一个分支;所述子分支中各个层级的节点图例最多只与一个低层级的节点图例连接,例如图4所示的应用f和应用g是一个子分支,应用b和应用g也是一个子分支。
84.步骤s102:根据所述树状拓扑图中各个节点图例之间通过连接线的连接关系,重新对所述树状拓扑图中的各个节点图例进行排序,以形成包含所述树状拓扑图中所有类型的节点图例的部署队列。
85.其中,所述树状拓扑图中针对一种类型的节点图例会重复出现,因此若直接按照所述树状拓扑图进行应用树部署,则需要对同一节点图例对应的应用进行重复部署,为了避免多次部署而造成的资源浪费,现将树状拓扑图首先优化为清洁树状拓扑图,并将清洁树状拓扑图中的节点图例按照顺序存储至部署队列中,且理想状态下,每种类型的节点图例仅在部署队列中出现一次,从而达到一键部署的效果。
86.具体的,步骤s102,包括:
87.根据所述树状拓扑图中各个节点图例之间通过连接线的连接关系,将所述树状拓扑图中重复出现的连接关系所对应的节点图例和连接线删除,以得到清洁树状拓扑图,并对所述清洁树状拓扑图中的各个节点图例进行排序,以形成包含所述树状拓扑图中所有类型的节点图例的部署队列。
88.进一步的,步骤s102,具体包括以下步骤:
89.步骤b1:从所述树状拓扑图中最左边的子分支开始,按照从左到右的顺序依次遍历各个子分支,并判断在当前遍历到的第i个子分支中是否存在与第1至第(i-1)个子分支中相重复的节点图例,若是,则在第i个子分支中将重复的节点图例删除,并在遍历完所有子分支后得到清洁树状拓扑图;其中,i为正整数。
90.例如,重复的节点图例如图5中灰色的节点图例所示,所述清洁树状拓扑图如图6所示。
91.更进一步的,步骤b1,具体包括以下步骤:
92.步骤b11:从所述第i个子分支的第一个节点图例开始,按照从高层级至低层级的顺序依次遍历各个节点图例,并判断由当前遍历到的目标节点图例和位于所述目标节点图例之后的所有节点图例构成的节点串是否存在于第n个子分支中;其中,所述第n个子分支为第1个子分支至第(i-1)个子分支中的一个子分支。
93.其中,所述节点串由一个或多个节点图例构成。
94.步骤b12:若是,则将所述节点串删除,并为所述目标节点图例的高一层级的节点图例的节点属性信息中添加关联节点图例的标识;其中,所述关联节点图例为第n个分支中的与所述目标节点图例为同一类型的节点图例;
95.若否,则继续遍历低一层级的节点图例。
96.其中,将所述节点串删除,并为与已删除的节点串相邻层级的节点图例的节点属性信息中添加已删除的节点图例的标识,分为两种情况,第一种情况,把删除的所有节点图例的标识均添加到所述上一节点图例的节点属性信息中;例如,图5所示的第1个子分支为应用b和应用g,第2个子分支为应用c、应用b和应用g,其中,第1个子分支存在于第2个子分支中,所以删除第2个子分支中的应用b和应用g,并在第2个子分支的应用c的节点属性信息中添加应用b和应用g的标识;图5所示的第2个子分支为应用c、应用b和应用g,第3个子分支为应用c、应用b和应用g,第2个子分支存在于第3个子分支中,所以删除第3个子分支中的应用c、应用b和应用g,并在应用d的节点属性信息中添加应用c、应用b和应用g的标识。第二种情况,把删除的节点串中的最高层级的节点图例的标识添加到所述上一节点图例的节点属
性信息中;例如:图5所示的第1个子分支为应用b和应用g,第2个子分支为应用c、应用b和应用g,其中,第1个子分支存在于第2个子分支中,所以删除第2个子分支中的应用b和应用g,由于应用b依赖应用g,所以只需在第2个子分支的应用c的节点属性信息中添加应用b的标识。
97.在本实施例中,删除重复的节点串中的节点图例,提高了对重复应用的编排效率,进而可以提高重复部署效率。同时,为目标节点图例的高一层级的节点图例的节点属性信息中添加关联节点图例的标识是为了简化树状拓扑图的编排复杂度,并保证每个应用对应的节点图例的节点属性信息的完整性,虽然删除了重复的节点图例,但并没有改变节点图例的节点属性信息,也没有改变原始树状拓扑图中节点图例之间的依赖关系,清洁树状拓扑图中的节点图例对应的应用仍然存在原始的依赖关系,所以为目标节点图例的高一层级的节点图例的节点属性信息中添加关联节点图例的标识,保证了多个节点图例对应的应用在部署过程中的节点属性信息完整性的同时,简化了节点图例之间复杂的依赖编排,节约了部署资源。
98.步骤b2:从所述清洁树状拓扑图中最左边的子分支开始,按照从左到右的顺序依次遍历各个子分支,并将在当前遍历到的子分支中的各个节点图例按照从低层级至高层级的顺序依次存储至所述部署队列中。
99.其中,根节点图例最后存入部署队列中,如图7所示,应用a对应的节点图例为部署队列中最后一个被部署的节点图例。
100.在本实施例中,所述子分支中的各个节点图例存在高层级的节点图例依赖低层级的节点图例的依赖关系,所以需要将子分支中的各个节点图例按照从低层级至高层级的顺序依次存储至所述部署队列中,以保证节点图例对应的应用的依赖关系简约和准确。
101.步骤b3:将所述清洁树状拓扑图中除已遍历的所有子分支之外的其他节点图例,按照从低层级至高层级的顺序依次存储至所述部署队列中。
102.步骤b4:根据所述清洁树状拓扑图中各个节点图例之间的连接线为所述部署队列中的各个节点图例之间添加对应的连接线。
103.其中,为所述部署队列中的各个节点图例之间添加对应的连接线,如图7所示,所述连接线包括实线和虚线,实线表征两个节点图例对应的应用存在依赖关系,虚线表征动态参数在节点图例对应的应用之间传递。
104.需要说明的是,所述部署队列中的各个节点图例均保留有所述清洁树状拓扑图中同类型的所有节点图例的节点属性信息,所述部署队列中的各个连接线均保留有所述清洁树状拓扑图中对应连接线的线属性信息。
105.步骤s103:按照所述部署队列中各个节点图例的先后顺序依次执行与每个节点图例对应的应用的部署操作。
106.具体的,步骤s103,包括以下步骤:
107.步骤c1:接收部署指令;其中,所述部署指令包括:用于生成动态参数的参数值的参数生成规则。
108.步骤c2:按照存储至所述部署队列中的先后顺序,依次从所述部署队列中获取待部署节点图例。
109.步骤c3:获取所述待部署节点图例的节点属性信息,以及所述待部署节点图例与
所述部署队列中前一节点图例之间的连接线的线属性信息。
110.其中,所述节点属性信息包括:用于部署与节点图例对应的应用的部署脚本、在所述部署脚本中包括的参数以及关联节点图例的标识。
111.具体的,所述线属性信息包括:待部署节点图例对应的待部署应用与所述部署队列中前一节点图例对应的前一应用之间的依赖关系以及动态参数在节点图例对应的应用之间的传递关系。
112.在本实施例中,由于删除了重复的节点串,得到了清洁树状拓扑图,并且为清洁树状拓扑图中的目标节点图例的高一层级的节点图例的节点属性信息中添加关联节点图例的标识,保证了部署队列中每个节点图例的节点属性信息的完整性,以及每个节点图例对应的应用之间的依赖关系的完整性。
113.步骤c4:根据所述节点属性信息中的部署脚本、所述线属性信息中的依赖关系以及所述部署指令中的参数生成规则完成对所述待部署节点图例的部署操作。
114.在本实施例中,部署操作为先确定出所有部署步骤中的每个节点图例的节点属性信息,获取每个节点图例中的在所述部署脚本中包括的参数,再按照部署顺序(即连接线的箭头指向)依次执行各个部署步骤,以完成对应用的部署,由于部署队列中的先后顺序是优化后的,减少了不必要的重复工作,且可以高效的完成对多个应用的一键部署。
115.进一步的,所述根据所述节点属性信息中的部署脚本、所述线属性信息中的依赖关系以及所述部署指令中的参数生成规则完成对所述待部署节点图例的部署操作,具体包括:
116.步骤c41:从所述部署脚本中解析出部署步骤,并从每个部署步骤中解析出静态参数和/或动态参数。
117.步骤c42:按照部署步骤的先后顺序依次遍历各个部署步骤,并判断当前遍历到的目标部署步骤中是否包括动态参数。
118.步骤c43:若是,则当所述动态参数的参数类型为被引用时,从所述部署指令中获取所述动态参数的参数生成规则,根据所述参数生成规则生成动态参数值,并将所述动态参数值存储至与所述动态参数对应的全局占位中;当所述动态参数的参数类型为引用时,从与所述动态参数对应的全局占位中获取所述动态参数的动态参数值。
119.其中,所述动态参数是由部署步骤对应的应用生成的,并存放在预先配置好的全局占位中,当该动态参数被其它部署步骤对应的应用引用时,可以从全局占位中获取该动态参数,完成动态参数在应用中的传递。
120.在本实施例中,通过获取记录待部署的多个应用之间的依赖关系的树状拓扑图,修改树状拓扑图以得到了清洁树状拓扑图,进而解析清洁树状拓扑图以实现对具有复杂依赖关系的多个应用的一键部署操作,通过在清洁树状拓扑图中存储节点图例的节点属性信息和连接线的线属性信息,可以得到多个节点图例对应的应用的复杂依赖关系,避免了由于重复利用同一个节点图例进行部署而产生的部署困难的问题,节约了部署资源、提高了自动化部署应用的水平,同时,还支持在部署过程中设置动态占位以使得应用产生的动态参数可以在部署的多个应用中传递使用;本实施例达到了对单个应用多层级、分阶段部署,使得静态参数和/或动态参数可以在应用中同时传递,大幅提高多个应用的并发部署效率和对重复应用的部署效率。
121.实施例二
122.本发明实施例还提供了一种多应用的部署方法,该方法具体包括以下步骤:
123.步骤s1:通过显示界面中的第一窗体显示用于表征待部署的各种应用的节点图例。
124.其中,所述通过显示界面中的第一窗体显示用于表征待部署的各种应用的节点图例,一种类型的应用对应一种类型的节点图例。
125.步骤s2:响应于从所述第一窗体中将目标节点图例拖拽至所述显示界面中的第二窗体的第一操作,在所述第二窗体内按照所述第一操作的结束位置布置所述目标节点图例。
126.其中,所述第一操作为拖拽操作,应用于每个目标节点图例。
127.步骤s3:响应于在所述第二窗体中对所述目标节点图例的第二操作,在所述显示界面中显示第三窗体,并将在所述第三窗体内输入的信息作为节点属性信息添加至所述目标节点图例;
128.其中,所述第二操作为点击操作,应用于每个目标节点图例。
129.具体的,所述节点属性信息包括:用于部署与节点图例对应的应用的部署脚本,以及在所述部署脚本中包括的参数。
130.在本实施例中,在部署脚本中会包含多个部署步骤,且在部分部署步骤中会包括动态参数和/或静态参数;其中,部署步骤是部署脚本的最小执行单位,多个部署步骤可以完成一个应用的部署流程,且各个部署步骤之间是串行执行。
131.需要说明的是,静态参数的参数值为在执行部署脚本前就已设置好的固定参数值;动态参数的参数值在执行部署脚本前未设置,需要在执行部署脚本的过程中生成。
132.步骤s4:响应于在所述第二窗体中对第一节点图例和第二节点图例的第三操作,在所述第二窗体中绘制用于连接所述第一节点图例和第二节点图例的连接线。
133.其中,所述第三操作为连线操作,优选的,所述连接线为具有箭头的连接线,例如,由第一节点图例指向第二节点图例,以第一节点图例需要依赖第二节点图例。
134.步骤s5:响应于在所述第二窗体中对所述连接线的第四操作,在所述显示界面中显示第四窗体,并将在所述第四窗体内输入的信息作为线属性信息添加至所述连接线。
135.其中,所述第四操作为点击操作,用于为连接线添加线属性信息。
136.具体的,所述线属性信息包括:第一节点图例对应的第一应用与第二节点图例对应的第二应用之间的依赖关系;其中,所述依赖关系包括:第一应用依赖第二应用,或第一应用的部署脚本中的参数依赖第二应用的部署脚本中的参数。
137.步骤s6:响应于在所述第二窗体中触发的第五操作,将所述第二窗体中通过连接线互相连接的所有节点图例设置为树状拓扑图。
138.在本实施例中,所述树状拓扑图包括:用于表征待部署应用的节点图例和用于表征多个待部署应用之间的依赖关系的连接线,且每个节点图例均有对应的节点属性信息、每个连接线均有对应的线属性信息。此外,在所述树状拓扑图中,针对一种应用的节点图例会多次出现在所述树状拓扑图中。
139.步骤s7:从所述树状拓扑图中解析出根节点图例、分支以及各个分支的子分支。
140.其中,所述根节点图例为在树状拓扑图中位于树状拓扑图的最高层级的节点图
例,每个分支至少包括两个层级的节点图例,且每个分支中最高层级的节点图例均为所述根节点图例;所述子分支中各个层级的节点图例最多只与一个低层级的节点图例连接。
141.步骤s8:接收针对所述树状拓扑图的部署指令,以对所述树状拓扑图中的各个节点图例所对应的待部署应用进行部署操作。
142.其中,所述部署指令包括:用于生成动态参数的参数值的参数生成规则。
143.步骤s9:从所述树状拓扑图中最左边的子分支开始,按照从左到右的顺序依次遍历各个子分支,并判断在当前遍历到的第i个子分支中是否存在与第1至第(i-1)个子分支中相重复的节点图例,若是,则在第i个子分支中将重复的节点图例删除,并在遍历完所有子分支后得到清洁树状拓扑图;其中,i为正整数。
144.具体的,所述步骤s9,包括:
145.步骤d1:从所述第i个子分支的第一个节点图例开始,按照从高层级至低层级的顺序依次遍历各个节点图例,并判断由当前遍历到的目标节点图例和位于所述目标节点图例之后的所有节点图例构成的节点串是否存在于第n个子分支中;其中,所述第n个子分支为第1个子分支至第(i-1)个子分支中的一个子分支;其中,n为正整数。
146.步骤d2:若是,则将所述节点串删除,并为所述目标节点图例的高一层级的节点图例的节点属性信息中添加关联节点图例的标识;其中,所述关联节点图例为第n个分支中的与所述目标节点图例为同一类型的节点图例;
147.若否,则继续遍历低一层级的节点图例。
148.其中,将所述节点串删除是在保证剩余节点图例之间依赖关系完整性的情况下,避免了由于重复利用相同应用进行编排而产生的编排困难的问题。
149.步骤s10:从所述清洁树状拓扑图中最左边的子分支开始,按照从左到右的顺序依次遍历各个子分支,并将在当前遍历到的子分支中的各个节点图例按照从低层级至高层级的顺序依次存储至所述部署队列中。
150.其中,根节点图例最后存入部署队列中。
151.具体的,所述步骤s10包括:
152.步骤e1:在所述清洁拓扑图中获取最左边的子分支中的各个节点图例。
153.步骤e2:按照从下至上的顺序依次将所述最左边的子分支中的各个节点图例存储至所述部署队列中。
154.其中,按照从下至上的顺序依次进行节点图例的存储是由于所述子分支中的各个节点图例存在高层级的节点图例依赖低层级的节点图例的依赖关系,所以需要将子分支中的各个节点图例按照从低层级至高层级的顺序依次存储至所述部署队列中,以保证节点图例对应的应用的依赖关系的准确性。
155.步骤e3:按照从左至右的顺序,依次将所述最低层级的各个节点图例存储至所述部署队列中。
156.步骤e4:将所述最左边的子分支从所述清洁拓扑图中删除,并重新执行步骤e1。
157.步骤s11:将所述清洁树状拓扑图中除已遍历的所有子分支之外的其他节点图例,按照从低层级至高层级的顺序依次存储至所述部署队列中。
158.步骤s12:根据所述清洁树状拓扑图中各个节点图例之间的连接线为所述部署队列中的各个节点图例之间添加对应的连接线。
159.其中,为所述部署队列中的各个节点图例之间添加对应的连接线,所述连接线包括实线和虚线,实线表征两个节点图例对应的应用存在依赖关系,虚线表征动态参数在节点图例对应的应用之间传递。
160.需要说明的是,所述部署队列中的各个节点图例均保留有所述清洁树状拓扑图中同类型的所有节点图例的节点属性信息,所述部署队列中的各个连接线均保留有所述清洁树状拓扑图中对应连接线的线属性信息。
161.步骤s13:按照存储至所述部署队列中的先后顺序,依次从所述部署队列中获取待部署节点图例。
162.步骤s14:获取所述待部署节点图例的节点属性信息,以及所述待部署节点图例与所述部署队列中前一节点图例之间的连接线的线属性信息。
163.其中,所述节点属性信息包括:用于部署与节点图例对应的应用的部署脚本、在所述部署脚本中包括的参数以及关联节点图例的标识。
164.具体的,所述线属性信息包括:待部署节点图例对应的待部署应用与所述部署队列中前一节点图例对应的前一应用之间的依赖关系以及动态参数在节点图例对应的应用之间的传递关系。
165.步骤s15:根据所述节点属性信息中的部署脚本、所述线属性信息中的依赖关系以及所述部署指令中的参数生成规则完成对所述待部署节点图例的部署操作。
166.其中,部署操作为先确定出所有部署步骤中的每个节点图例的节点属性信息,获取每个节点图例中的在所述部署脚本中包括的参数,再按照部署顺序(即连接线的箭头指向)依次执行各个部署步骤,以完成对应用的部署,由于部署队列中的先后顺序是优化后的,减少了不必要的重复工作,且可以高效的完成对多个应用的一键部署。
167.具体的,所述步骤s15,包括:
168.步骤f1:从所述部署脚本中解析出部署步骤,并从每个部署步骤中解析出静态参数和/或动态参数。
169.步骤f2:按照部署步骤的先后顺序依次遍历各个部署步骤,并判断当前遍历到的目标部署步骤中是否包括动态参数。
170.步骤f3:若是,则当所述动态参数的参数类型为被引用时,从所述部署指令中获取所述动态参数的参数生成规则,根据所述参数生成规则生成动态参数值,并将所述动态参数值存储至与所述动态参数对应的全局占位中;当所述动态参数的参数类型为引用时,从与所述动态参数对应的全局占位中获取所述动态参数的动态参数值。
171.具体的,所述动态参数是由部署步骤对应的应用生成的,并存放在预先配置好的全局占位中,当该动态参数被其它部署步骤对应的应用引用时,可以从全局占位中获取该动态参数,完成动态参数在应用中的传递。
172.实施例三
173.本发明实施例提供了一种多应用的部署装置,如图8所示,该装置具体包括以下组成部分:
174.获取模块801,用于获取用于表征待部署的多个应用之间的依赖关系的树状拓扑图;其中,所述树状拓扑图包括:用于表征应用的节点图例和用于表征依赖关系的连接线;
175.排序模块802,用于根据所述树状拓扑图中各个节点图例之间通过连接线的连接
关系,重新对所述树状拓扑图中的各个节点图例进行排序,以形成包含所述树状拓扑图中所有类型的节点图例的部署队列;
176.部署模块803,用于按照所述部署队列中各个节点图例的先后顺序依次执行与每个节点图例对应的应用的部署操作。
177.具体的,所述装置还包括:
178.绘制模块,用于通过显示界面中的第一窗体显示用于表征待部署的各种应用的节点图例;响应于从所述第一窗体中将目标节点图例拖拽至所述显示界面中的第二窗体的第一操作,在所述第二窗体内按照所述第一操作的结束位置布置所述目标节点图例;响应于在所述第二窗体中对所述目标节点图例的第二操作,在所述显示界面中显示第三窗体,并将在所述第三窗体内输入的信息作为节点属性信息添加至所述目标节点图例;响应于在所述第二窗体中对第一节点图例和第二节点图例的第三操作,在所述第二窗体中绘制用于连接所述第一节点图例和第二节点图例的连接线;响应于在所述第二窗体中对所述连接线的第四操作,在所述显示界面中显示第四窗体,并将在所述第四窗体内输入的信息作为线属性信息添加至所述连接线;响应于在所述第二窗体中触发的第五操作,将所述第二窗体中通过连接线互相连接的所有节点图例设置为树状拓扑图。
179.进一步的,所述节点属性信息包括:用于部署与节点图例对应的应用的部署脚本,以及在所述部署脚本中包括的参数;
180.所述线属性信息包括:第一节点图例对应的第一应用与第二节点图例对应的第二应用之间的依赖关系;其中,所述依赖关系包括:第一应用依赖第二应用,或第一应用的部署脚本中的参数依赖第二应用的部署脚本中的参数。
181.具体的,所述装置还包括:
182.解析模块,用于从所述树状拓扑图中解析出根节点图例、分支以及各个分支的子分支;其中,每个分支至少包括两个层级的节点图例,且每个分支中最高层级的节点图例均为根节点图例;所述子分支中各个层级的节点图例最多只与一个低层级的节点图例连接。
183.进一步的,排序模块802,具体包括:
184.遍历单元,用于从所述树状拓扑图中最左边的子分支开始,按照从左到右的顺序依次遍历各个子分支,并判断在当前遍历到的第i个子分支中是否存在与第1至第(i-1)个子分支中相重复的节点图例,若是,则在第i个子分支中将重复的节点图例删除,并在遍历完所有子分支后得到清洁树状拓扑图;
185.第一存储单元,用于从所述清洁树状拓扑图中最左边的子分支开始,按照从左到右的顺序依次遍历各个子分支,并将在当前遍历到的子分支中的各个节点图例按照从低层级至高层级的顺序依次存储至所述部署队列中;
186.第二存储单元,用于将所述清洁树状拓扑图中除已遍历的所有子分支之外的其他节点图例,按照从低层级至高层级的顺序依次存储至所述部署队列中;
187.添加单元,用于根据所述清洁树状拓扑图中各个节点图例之间的连接线为所述部署队列中的各个节点图例之间添加对应的连接线。
188.更进一步的,所述遍历单元,具体用于:
189.从所述第i个子分支的第一个节点图例开始,按照从高层级至低层级的顺序依次遍历各个节点图例,并判断由当前遍历到的目标节点图例和位于所述目标节点图例之后的
所有节点图例构成的节点串是否存在于第n个子分支中;其中,所述第n个子分支为第1个子分支至第(i-1)个子分支中的一个子分支;若是,则将所述节点串删除,并为所述目标节点图例的高一层级的节点图例的节点属性信息中添加关联节点图例的标识;其中,所述关联节点图例为第n个分支中的与所述目标节点图例为同一类型的节点图例;若否,则继续遍历低一层级的节点图例。
190.进一步的,部署模块803,具体包括:
191.接收单元,用于接收部署指令;其中,所述部署指令包括:用于生成动态参数的参数值的参数生成规则;
192.第一获取单元,用于按照存储至所述部署队列中的先后顺序,依次从所述部署队列中获取待部署节点图例;
193.第二获取单元,用于获取所述待部署节点图例的节点属性信息,以及所述待部署节点图例与所述部署队列中前一节点图例之间的连接线的线属性信息;
194.部署单元,用于根据所述节点属性信息中的部署脚本、所述线属性信息中的依赖关系以及所述部署指令中的参数生成规则完成对所述待部署节点图例的部署操作。
195.更进一步的,所述部署单元,具体用于:
196.从所述部署脚本中解析出部署步骤,并从每个部署步骤中解析出静态参数和/或动态参数;
197.按照部署步骤的先后顺序依次遍历各个部署步骤,并判断当前遍历到的目标部署步骤中是否包括动态参数;
198.若是,则当所述动态参数的参数类型为被引用时,从所述部署指令中获取所述动态参数的参数生成规则,根据所述参数生成规则生成动态参数值,并将所述动态参数值存储至与所述动态参数对应的全局占位中;当所述动态参数的参数类型为引用时,从与所述动态参数对应的全局占位中获取所述动态参数的动态参数值。
199.实施例四
200.本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图9所示,本实施例的计算机设备90至少包括但不限于:可通过系统总线相互通信连接的存储器901、处理器902。需要指出的是,图9仅示出了具有组件901-902的计算机设备90,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
201.本实施例中,存储器901(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器901可以是计算机设备90的内部存储单元,例如该计算机设备90的硬盘或内存。在另一些实施例中,存储器901也可以是计算机设备90的外部存储设备,例如该计算机设备90上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器901还可以既包括计算机设备90的内部存储单元也包括其外部存储设备。在本实施例中,存储器901通常用于存储安装于计算机设备90的操作系统和各类应用软件。此外,存储器901还可以用于暂时地存
储已经输出或者将要输出的各类数据。
202.处理器902在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器902通常用于控制计算机设备90的总体操作。
203.具体的,在本实施例中,处理器902用于执行存储器901中存储的多应用的部署方法的程序,所述多应用的部署方法的程序被执行时实现如下步骤:
204.获取用于表征待部署的多个应用之间的依赖关系的树状拓扑图;其中,所述树状拓扑图包括:用于表征应用的节点图例和用于表征依赖关系的连接线;
205.根据所述树状拓扑图中各个节点图例之间通过连接线的连接关系,重新对所述树状拓扑图中的各个节点图例进行排序,以形成包含所述树状拓扑图中所有类型的节点图例的部署队列;
206.按照所述部署队列中各个节点图例的先后顺序依次执行与每个节点图例对应的应用的部署操作。
207.上述方法步骤的具体实施例过程可参见实施例一,本实施例在此不再重复赘述。
208.实施例五
209.本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法步骤:
210.获取用于表征待部署的多个应用之间的依赖关系的树状拓扑图;其中,所述树状拓扑图包括:用于表征应用的节点图例和用于表征依赖关系的连接线;
211.根据所述树状拓扑图中各个节点图例之间通过连接线的连接关系,重新对所述树状拓扑图中的各个节点图例进行排序,以形成包含所述树状拓扑图中所有类型的节点图例的部署队列;
212.按照所述部署队列中各个节点图例的先后顺序依次执行与每个节点图例对应的应用的部署操作。
213.上述方法步骤的具体实施例过程可参见实施例一,本实施例在此不再重复赘述。
214.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
215.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
216.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
217.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技
术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献