一种基于数据中心设备关系拓扑图生成方法及设备与流程

文档序号:14393954阅读:311来源:国知局

本发明涉及计算机技术领域,特别涉及一种基于数据中心设备关系拓扑图生成方法及设备。



背景技术:

计算机与网络设备要实现互联,就必须使用一定的组织结构进行连接,这种组织结构就叫做“拓扑结构”。网络拓扑结构形象地描述了网络的安排和配置方式,以及各节点之间的相互关系,以体现机房设备实际关系拓扑图的变化。

目前,机房设备关系拓扑图的生成过程一般包括:一是,使用visio工具,操作过程为:打开visio工具,新建网络图;从左边工具栏拖拽网络设备图到右边画图区域;点击连线,将有关系的两个设备连起来。这种方法存在的缺点是:不能实时根据设备及设备关系变化而变化。二是,使用监控技术,实时获取机房设备及设备间关系。这种方法存在的缺点是:服务器负载较重,页面加载滞后,无法关联设备管理信息。三是,通过第三方组件,实现在浏览器中绘制设备及设备间关系。这种方法存在的缺点是:费用高,不可控,安全没保障。



技术实现要素:

本发明的目的在于提供一种结构简单,容易管理维护;方便故障检测与隔离;控制简单,便于建网的机房设备关系拓扑图生成方法及设备。

为实现以上目的,本发明采用的技术方案:

一方面,提供一种基于数据中心设备关系拓扑图生成方法,包括如下步骤:

s1、对树型图根节点进行初始化,得到拓扑图生成的起始节点,其中节点由设备图片及对应的图片名称组成;

s2、根据所述起始节点,在浏览器中创建展示可缩放矢量图形的画布;

s3、根据所述节点从后台获取下一级关联设备的节点数据,并将所述节点数据保存在预先构建的缓存中,其中,节点数据包括关联设备基本信息及设备间关系;

s4、根据所述节点数据,计算节点在所述画布每层x轴偏移量和y轴偏移量,构建节点偏移表;

s5、从所述节点偏移表中获取节点位置偏移量数据,并根据单位长度计算实际的节点位置,生成机房设备拓扑图。

其中,在所述步骤s5之后,还包括:

对所述机房设备拓扑图进行渲染,得到最终的机房设备拓扑图。

其中,在所述步骤s3中将节点数据以json格式保存至所述缓存中。

其中,步骤s4,具体包括:

s41、利用广度优先搜索算法bfs,在所述画布中对所述节点数据进行处理,得到画布每层x轴偏移量;

s42、利用深度优先搜索算法dfs,在所述画布中对所述节点数据进行处理,得到画布每层y轴偏移量;

s43、根据所述画布每层x轴偏移量和画布每层y轴偏移量,构建节点偏移表。

其中,步骤s41,具体包括:

a、根据起始节点创建查找队列,添加根节点至所述查找队列;

b、遍历所述查找队列中每个节点,判断所述查找队列是否为空,如果是执行步骤c,如果否执行步骤d;

c、结束循环遍历所述查找队列;

d、通过所述查找队列中的当前节点缓存查找下级关联节点;

e、创建当前节点的偏移量记录后添加至偏移量表,并在偏移量表中写入x轴偏移量;

f、判断下级关系循环遍历是否结束,若是执行步骤b,若否执行步骤g;

g、判断下级关系的另一端点是否已在所述偏移量表中,若是执行步骤f,若否执行步骤h;

h、将下级关系的另一端点写入下级节点查找队列中。

其中,步骤s42,具体包括:

1)设置当前递归节点的y轴偏移量;

2)通过cache查找当前节点的下级关系;

3)判断是否有下级关系,如果是则执行步骤4),若否则执行步骤5);

4)设置maxoffsety为当前偏移量,然后执行步骤8);

5)返回当前y轴偏移量并加1;

6)判断是否是递归调用,若是执行步骤7),若否则结束;

7)判断下级关系循环是否结束,若否则执行步骤8),若是则执行步骤9);

8)判断下级关系的另一端点的x轴偏移量是否大于当前节点的x轴偏移量,若是则执行步骤1),若否则执行步骤12);

9)判断maxoffsety是否等于当前偏移量,若是则执行步骤10),若否则执行步骤11);

10)返回最大偏移量并执行步骤6);

11)返回最大偏移量并执行步骤10);

12)设置maxoffsety为下一级别递归的返回值。

另一方面,提供一种基于数据中心设备关系拓扑图生成设备,包括:处理器和存储器,处理器用于实现各指令;

存储器用于存储各指令,该指令由处理器加载并执行:

对树型图根节点进行初始化,得到拓扑图生成的起始节点,其中节点由设备图片及对应的图片名称组成;

根据所述起始节点,在浏览器中创建展示可缩放矢量图形的画布;

根据所述节点从后台获取下一级关联设备的节点数据,并将所述节点数据保存在预先构建的缓存中,其中,节点数据包括关联设备基本信息及设备间关系;

根据所述节点数据,计算节点在所述画布每层x轴偏移量和y轴偏移量,构建节点偏移表;

从所述节点偏移表中获取节点位置偏移量数据,并根据单位长度计算实际的节点位置,生成机房设备拓扑图。

与现有技术相比,本发明存在以下技术效果:本发明以当前设备为中心,查询、生成和显示关联设备及关系。将当前设备作为拓扑图生成的起始点,节点代表设备,用连线代表设备间关系,在浏览器中创建画布并将设备和设备间关系以拓扑图的方式展示在画布中。与现有技术相比,本发明采用svg技术在浏览器中生成机房设备关系拓扑图,提高了拓扑图生成效率效率,且结构简单,容易管理维护,在出现故障时方便故障检测与隔离。

附图说明

下面结合附图,对本发明的具体实施方式进行详细描述:

图1是本发明中一种基于数据中心设备关系拓扑图生成方法的流程示意图;

图2是本发明中采用广度优先搜索算法bfs计算画布每层x轴偏移量的流程示意图;

图3是本发明中采用深度优先搜索算法dfs计算画布每层y轴偏移量的流程示意图。

具体实施方式

为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。

如图1所示,本实施例公开了一种基于数据中心设备关系拓扑图生成方法,包括如下步骤s1至s5:

s1、对树型图根节点进行初始化,得到拓扑图生成的起始节点,其中节点由设备图片及对应的图片名称组成;

s2、根据所述起始节点,在浏览器中创建展示可缩放矢量图形的画布;

需要说明的是,在浏览器中创建画布即显示图形区域,用节点代表设备,用连线代表设备间关系,将设备和设备间关系以拓扑图的方式展示在画布中。其中,每个节点由设备图片和图片名称组成,不同图片代表不同设备。图片名称即设备名称,也即资产名称。

s3、根据所述节点从后台获取下一级关联设备的节点数据,并将所述节点数据保存在预先构建的缓存中,其中,节点数据包括关联设备基本信息及设备间关系;

需要说明的是,每个节点具有关系两边关联的节点,即关系两端的位置数据,以用于来进行画布中每层偏移量的计算。

其中,下一级关联设备的节点数据包括关联设备基本信息及设备间关系,该节点数据来自于数据库表,节点数据已预先在设备资产管理模块进行配置。

s4、根据所述节点数据,计算节点在所述画布每层x轴偏移量和y轴偏移量,构建节点偏移表;

s5、从所述节点偏移表中获取节点位置偏移量数据,并根据单位长度计算实际的节点位置,生成机房设备拓扑图。

需要说明的是,在步骤s5中,从生成的节点偏移表中获取节点位置偏移量数据,根据单位长度计算实际的节点位置。在节点布局完成后,遍历管理列表,并查询关系两边关联的节点,确定关系两端的位置,生成关系线条布局数据,即可得到机房设备关系拓扑图。

进一步地,在步骤s3中,当用户点击设备节点,触发加载事件。程序会根据事件源所在节点的id,从系统后台获取下一级关联设备数据,并以json格式返回。然后将json格式数据保存到引擎内部构建的缓存中。如此,加速了节点数据和关系数据之间的关联查询,有效提高了布局算法的性能。

进一步地,在上述步骤s5之后,还包括如下步骤:

对所述机房设备拓扑图进行渲染,得到最终的机房设备拓扑图。

通过对已经形成的拓扑图进行样式修饰,使设备拓扑图显示更加美观和合理。

进一步地,步骤s4,具体包括:

s41、利用广度优先搜索算法bfs,在所述画布中对所述节点数据进行处理,得到画布每层x轴偏移量;

s42、利用深度优先搜索算法dfs,在所述画布中对所述节点数据进行处理,得到画布每层y轴偏移量;

s43、根据所述画布每层x轴偏移量和画布每层y轴偏移量,构建节点偏移表。

需要说明的是,本实施例中利用广度优先搜索算法(breadthfirstsearch,bfs)计算画布层级深度,根据画布宽度,计算出每层在x轴偏移量。然后在画布中,从左到右以树的形式排列节点。利用深度优先搜索算法(depthfirstsearch,dfs),计算节点y轴偏移量,即节点y坐标的长度单位个数。然后布局过程中,从上到下,排布每层所有节点。将x轴偏移量、y轴偏移量添加至偏移量列表中。

进一步地,如图2所示,步骤s41,具体包括:

a、根据起始节点创建查找队列,添加根节点至所述查找队列;

b、遍历所述查找队列中每个节点,判断所述查找队列是否为空,如果是执行步骤c,如果否执行步骤d;

c、结束循环遍历所述查找队列;

d、通过所述查找队列中的当前节点缓存查找下级关联节点;

e、创建当前节点的偏移量记录后添加至偏移量表,并在偏移量表中写入x轴偏移量;

f、判断下级关系循环遍历是否结束,若是执行步骤b,若否执行步骤g;

g、判断下级关系的另一端点是否已在所述偏移量表中,若是执行步骤f,若否执行步骤h;

h、将下级关系的另一端点写入下级节点查找队列中。

需要说明的是,本实施例采用分层查找的策略,由中心节点向外逐步扩展,当队列为空时,即完成所有节点的遍历,已经遍历过的节点不会入队,杜绝了循环遍历。需要说明的是,若某节点到起始节点在整个关系网络中没有可达路径,则认为该节点为孤立节点,视为错误数据,不会展示。

进一步地,如图3所示,步骤s42,具体包括:

1)设置当前递归节点的y轴偏移量;

2)通过cache查找当前节点的下级关系;

3)判断是否有下级关系,如果是则执行步骤4),若否则执行步骤5);

4)设置maxoffsety为当前偏移量,然后执行步骤8);

5)返回当前y轴偏移量并加1;

6)判断是否是递归调用,若是执行步骤7),若否则结束;

7)判断下级关系循环是否结束,若否则执行步骤8),若是则执行步骤9);

8)判断下级关系的另一端点的x轴偏移量是否大于当前节点的x轴偏移量,若是则执行步骤1),若否则执行步骤12);

9)判断maxoffsety是否等于当前偏移量,若是则执行步骤10),若否则执行步骤11);

10)返回最大偏移量并执行步骤6);

11)返回最大偏移量并执行步骤10);

12)设置maxoffsety为下一级别递归的返回值。

需要说明的是,对于节点的y轴偏移,每个节点的位置都取决于它所有前置节点及其子节点的排布。所以需采用类dfs遍历搜索算法,不断迭代汇总前置节点及其子节点的y轴分布,从而得到当前节点的y轴偏移。

需要说明的是,采用本实施例提供的设备拓扑图生成方法对一机房的设备关系拓扑图进行生成,生成过程采用了去重策略,理论事件复杂度为o(n),足够高效,执行效率理论上已不存在一阶系数以上的优化空间。以具体实验数据进行举例说明如下:

(1)实验数据规模为:

第一次:11个节点,15个节点关系;

第二次追加数据:1个节点,3个节点关系;

(2)实验结果如下:

通过记录执行前、初始化程序实例、第一次渲染数据完毕,追加数据后第二次渲染数据完毕,得到如下四个时间点的时间戳:

1511831819316(start);

1511831819319(oninit);

1511831819329(renderfinish1(11nodes,15links));

1511831819337(renderfinish2(append10nodes,10links))。

通过计算可知,四个时间戳(单位:ms)分别为:

程序实例化所需时间为:

1511831819319-1511831819316=3ms。

加载并渲染11个节点和15条关系连线的时间为:

1511831819329–1511831819319=10ms。

追加并渲染10个节点和10条关系连线的时间为:

1511831819337–1511831819329=8ms。

(3)实验结果分析:

加载并渲染11节点,15关系需要10ms。

由此推断,处理n节点,n+关系约需要nms时间。按照常见的最高300节点的规模,约0.3s的渲染时间满足用户友好性需求。

因此,本实施例提供的设备拓扑图生成方法,具有如下有益效果:

(1)由于关系数据模型具有起始点和终止点两个参数,可以描述一个有方向的拓扑关系。在实际的数据中心设备拓扑应用中,具有支持有向关系。

(2)由于算法采用基于中心设备向外拓展搜索的方式,遍历过的节点不会再次遍历,做到支持回环的情况下避免了程序死循环。

(3)中心明确,层次清晰,便于机房管理人员分析;可实现高效计算和渲染,在用户友好的时间内,满足90%以上的数据规模需求。

而且,相对于常见的星型结构和上下分层结构布局结构的全局视角,本方案立足于从一个指定的中心设备节点视角来逐层分析连接关系,从而最终得到一份完整的的设备周边网络环境拓扑图。这在基于指定中心点的网络环境分析应用有较高的实用价值。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1