一种网络拓扑图的生成方法、装置及存储介质与流程

文档序号:17722089发布日期:2019-05-22 02:14阅读:267来源:国知局
一种网络拓扑图的生成方法、装置及存储介质与流程

本发明涉及信息处理领域中的图形可视化技术,尤其涉及一种网络拓扑图的生成方法、装置及存储介质。



背景技术:

在实现本发明的过程中,发明人发现相关技术中的网络拓扑图的生成,通常可以采用以下方式来实现:首先,通过超文本传输协议(http,hypertexttransferprotocol)请求获取包含关联关系的脚本语言对象简谱(json,javascriptobjectnotation)数据;然后,将获取到的json数据输入至拓扑图生成组件,如脚本语言拓扑图形化(jtopo,javascripttopologylibrary)或者数据驱动文档(d3,data-drivendocuments)等图形可视化平台中,以在拓扑图形界面上绘制出相应的拓扑图。

然而,由于拓扑图能够体现节点之间的拓扑关系,如果在根据节点数据生成拓扑图时,节点的位置可以任意移动,会导致生成的拓扑图的结构不清晰,无法准确反映节点之间的拓扑关系。



技术实现要素:

有鉴于此,本发明实施例期望提供一种网络拓扑图的生成方法、装置及存储介质,至少用以解决相关技术中难以使得拓扑图的结构清晰,以准确反映节点之间的拓扑关系的问题。

为达到上述目的,本发明实施例的技术方案是这样实现的:

第一方面,本发明实施例提供一种网络拓扑图的生成方法,所述方法包括:

加载各业务系统的结构化数据;

对所述结构化数据进行解析,获得所述业务系统对应的节点数据和节点关系数据;

对所述业务系统中所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据;

基于所述节点关系数据以及所述各分组对应的显示区域,生成网络拓扑图,对各节点进行显示。

上述方案中,所述节点数据包括节点的属性信息,其中,所述节点的属性信息包括节点的名称;

所述对所述业务系统中所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据,包括:

基于所述节点的名称,对所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据。

上述方案中,所述基于所述节点的名称,对所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据,包括:

基于所述节点的名称,确定与所述节点的名称相匹配的用于分组的正则表达式;

根据所述正则表达式,对所述节点数据包括的所有节点进行组别划分,获得各分组对应的节点分组数据;

其中,所述节点分组数据包括所述节点所属分组的分组名称。

上述方案中,在所述生成网络拓扑图之后,所述方法还包括:

基于设定的布局迭代更新条件,对所述网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图。

上述方案中,所述基于设定的布局迭代更新条件,对所述网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图,包括:

确定所述网络拓扑图的初始位置信息;

响应于监听到的位置更新事件,基于所述网络拓扑图的初始位置信息,确定更新后的位置信息;

基于所述更新后的位置信息,对所述网络拓扑图的布局进行调整,直至满足所述布局迭代更新条件时,生成所述更新后的目标网络拓扑图。

上述方案中,所述基于所述节点关系数据以及所述各分组对应的显示区域,生成网络拓扑图,包括:

基于拓扑图生成组件构造所述节点数据对应的所有节点;

遍历查找所有节点,为各节点添加内容元素;

基于所述节点关系数据,为添加所述内容元素后的各节点绘制连线;

在具有连接关系的节点中将属于同一组的节点进行聚合,以使各分组内的节点的位置信息不超过所述各分组对应的显示区域,生成所述网络拓扑图。

第二方面,本发明实施例提供一种网络拓扑图的生成装置,所述装置包括:加载单元、解析单元、分组单元和渲染单元;其中,

所述加载单元,用于加载各业务系统的结构化数据;

所述解析单元,用于对所述结构化数据进行解析,获得所述业务系统对应的节点数据和节点关系数据;

所述分组单元,用于对所述业务系统中所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据;

所述渲染单元,用于基于所述节点关系数据以及所述各分组对应的显示区域,生成网络拓扑图,对各节点进行显示。

上述方案中,所述节点数据包括节点的属性信息,其中,所述节点的属性信息包括节点的名称;

所述分组单元,具体用于:

基于所述节点的名称,对所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据。

上述方案中,所述分组单元,具体用于:

基于所述节点的名称,确定与所述节点的名称相匹配的用于分组的正则表达式;

根据所述正则表达式,对所述节点数据包括的所有节点进行组别划分,获得各分组对应的节点分组数据;

其中,所述节点分组数据包括所述节点所属分组的分组名称。

上述方案中,所述装置还包括:更新单元,用于在所述渲染单元生成网络拓扑图之后,基于设定的布局迭代更新条件,对所述网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图。

上述方案中,所述更新单元,具体用于:

确定所述网络拓扑图的初始位置信息;

响应于监听到的位置更新事件,基于所述网络拓扑图的初始位置信息,确定更新后的位置信息;

基于所述更新后的位置信息,对所述网络拓扑图的布局进行调整,直至满足所述布局迭代更新条件时,生成所述更新后的目标网络拓扑图。

上述方案中,所述渲染单元,具体用于:

基于拓扑图生成组件构造所述节点数据对应的所有节点;

遍历查找所有节点,为各节点添加内容元素;

基于所述节点关系数据,为添加所述内容元素后的各节点绘制连线;

在具有连接关系的节点中将属于同一组的节点进行聚合,以使各分组内的节点的位置信息不超过所述各分组对应的显示区域,生成所述网络拓扑图。

第三方面,本发明实施例还提供一种网络拓扑图的生成装置,包括存储器、处理器及存储在存储器上并能够由所述处理器运行的可执行程序,所述处理器运行所述可执行程序时执行本发明实施例提供的网络拓扑图的生成方法的步骤。

第四方面,本发明实施例还提供一种存储介质,其上存储有可执行程序,所述可执行程序被处理器执行时实现本发明实施例提供的网络拓扑图的生成方法的步骤。

本发明实施例所提供的网络拓扑图的生成方法、装置及存储介质,加载各业务系统的结构化数据;对所述结构化数据进行解析,获得所述业务系统对应的节点数据和节点关系数据;对所述业务系统中所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据;以及,基于所述节点关系数据以及所述各分组对应的显示区域,生成网络拓扑图,对各节点进行显示。如此,通过对业务系统中的所有节点进行分组,实现对网络拓扑图中的节点建立约束,避免节点重叠的情况发生,使得最终形成的网络拓扑图中的所有节点能够完整呈现,从而保证拓扑结构清晰、美观,可展示性强,能够准确反映节点之间的拓扑关系,大大提高图形可视化的效率。

附图说明

图1为本发明实施例提供的一种网络拓扑图的生成方法的实现流程示意图;

图2为本发明实施例提供的一种网络拓扑图的生成方法的具体实现流程示意图;

图3为本发明实施例提供的一种网络拓扑图的展示效果示意图;

图4为本发明实施例提供的一种网络拓扑图的生成装置的功能结构示意图;

图5为本发明实施例提供的另一种网络拓扑图的生成装置的功能结构示意图;

图6为本发明实施例提供的一种网络拓扑图的生成装置的硬件结构示意图。

具体实施方式

为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。

需要说明的是,在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

图1为本发明实施例提供的一种网络拓扑图的生成方法的实现流程示意图,所述网络拓扑图的生成方法可应用于服务器或终端设备中;如图1所示,本发明实施例中网络拓扑图的生成方法的实现流程,可以包括以下步骤:

步骤101:加载各业务系统的结构化数据。

这里,所述各业务系统的结构化数据,包括业务系统内部的结构化数据以及跨业务系统之间的结构化数据,所述结构化数据与网络拓扑结构相关,其中,该结构化数据通常可以为结构化的json数据,具体来说,所述结构化数据中可以携带有节点数据和节点关系数据。

在本发明的一些实施例中,在执行本步骤101中的加载各业务系统的结构化数据之前,所述方法还包括:提取所述节点数据和所述节点关系数据对应的字符串的摘要;基于提取的所述摘要,生成所述结构化数据。

需要说明的是,所述节点数据对应的字符串的摘要可以用来表示节点数据的关键信息,比如节点的名称;所述节点关系数据对应的字符串的摘要可以用来表示节点关系数据的关键信息,比如节点连线的长度。

在本发明的一些实施例中,在生成所述结构化数据之后,所述方法还包括:对所述结构化数据进行存储。

这里,需要特别强调的是,可将生成的结构化数据存储于布局存储器中,以便于服务器或终端设备加载各业务系统的结构化数据。其中,所述结构化数据可以按照以当前页面路径为键,以对提取的所述摘要进行数字签名的结果为值的键值对的方式进行存储。这里的键值对通常可以序列化为字符串的形式进行存储。

步骤102:对所述结构化数据进行解析,获得所述业务系统对应的节点数据和节点关系数据。

这里,所述节点数据可以包括节点的基本信息,即节点的属性信息,例如,节点的属性信息可以包括节点标识id、节点的名称、节点图标、节点颜色、节点宽度、节点高度和节点内边距等。所述节点关系数据即为节点间的连线数据,例如,节点间的连线数据可以包括连线id、连线的长度,连线的起始位置和连线的目标位置等。

步骤103:对所述业务系统中所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据。

在本发明的一些实施例中,对于本步骤103中的对所述业务系统中所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据来说,可以采用以下方式来实现:基于所述节点的名称,对所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据。

这里,对于基于所述节点的名称,对所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据的具体实现过程,可以包括以下步骤:首先,基于所述节点的名称,确定与所述节点的名称相匹配的用于分组的正则表达式;然后,根据所述正则表达式,对所述节点数据包括的所有节点进行组别划分,获得各分组对应的节点分组数据。

其中,所述节点分组数据包括所述节点所属分组的分组名称。

具体来说,所述节点的名称中包括节点的分组属性,也就是节点所属分组的分组名称。本发明实施例可以通过正则表达式,从节点的名称中提取出该节点所属分组的分组名称。例如,某节点的名称为ocean-ne40e,那么,“-”之前的“ocean”表示的就是该节点所属分组的分组名称。

步骤104:基于所述节点关系数据以及所述各分组对应的显示区域,生成网络拓扑图,对各节点进行显示。

在本发明的一些实施例中,对于本步骤104中的基于所述节点关系数据以及所述各分组对应的显示区域,生成网络拓扑图来说,可以采用以下方式来实现:基于拓扑图生成组件构造所述节点数据对应的所有节点;遍历查找所有节点,为各节点添加内容元素;基于所述节点关系数据,为添加所述内容元素后的各节点绘制连线;在具有连接关系的节点中将属于同一组的节点进行聚合,以使各分组内的节点的位置信息不超过所述各分组对应的显示区域,生成所述网络拓扑图。

具体来说,在生成网络拓扑图的过程中,可以先基于预先设置的拓扑图生成组件构造节点数据对应的所有节点,然后,遍历查找所有节点,分别为每个节点添加内容元素,其中,所述内容元素可以包括图标元素、矩形框元素和文本信息元素;接下来,基于节点关系数据确定各节点间的连线,以及确定用于表征所述连线的方向数据;基于所述连线和方向数据,为添加内容元素后的各节点绘制连线;最后,在具有连接关系的节点中将属于同一组的节点进行聚合,以使各分组内的节点的位置信息不超过所述各分组对应的显示区域,生成所述网络拓扑图。

需要说明的是,所述各分组对应的显示区域是固定的,其不会随着节点位置的更新或移动而发生改变。

在本发明的一些实施例中,在执行本步骤104中的生成网络拓扑图之后,所述方法还包括:基于设定的布局迭代更新条件,对所述网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图。

这里,对于基于设定的布局迭代更新条件,对所述网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图的具体实现过程,可以包括以下步骤:首先,确定所述网络拓扑图的初始位置信息;然后,响应于监听到的位置更新事件,基于所述网络拓扑图的初始位置信息,确定更新后的位置信息;最后,基于所述更新后的位置信息,对所述网络拓扑图的布局进行调整,直至满足所述布局迭代更新条件时,生成所述更新后的目标网络拓扑图。

需要说明的是,本发明实施例中的布局迭代更新条件包括布局调整次数达到设定的调整次数阈值,其中,所述调整次数阈值可以根据实际情况进行预先设定。

具体来说,在对网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图的过程中,可以先确定网络拓扑图的初始位置信息,其中,网络拓扑图的初始位置信息包括网络拓扑图中的节点的初始位置信息,所述节点关系数据的初始位置信息,以及对所述业务系统中的所有节点进行分组后的分组的初始位置信息;然后,监听是否发生位置更新事件,当监听到位置更新事件时,响应于所监听到的事件,基于所述节点的初始位置信息确定更新后的节点位置信息,基于所述节点关系数据的初始位置信息确定更新后的节点关系数据位置信息,以及基于所述分组的初始位置信息,确定更新后的分组位置信息;最后,基于所述更新后的节点位置信息、节点关系数据位置信息以及分组位置信息,对所述网络拓扑图的布局进行调整,直至调整次数达到设定的调整次数阈值时,生成所述目标网络拓扑图。

本发明实施例所示的技术方案,通过设置布局迭代更新条件,在每次布局更新完成后,返回更新后的位置信息,如更新后的节点位置信息,根据更新后的位置信息对网络拓扑图的布局再次进行调整,之后返回本次更新后的位置信息,直至完成循环执行布局迭代更新次数,最终生成更新后的目标网络拓扑图,从而使得目标网络拓扑图的布局更加稳定。

这里,所述节点的属性信息包括节点的初始高度、节点的初始宽度、节点的内边距,所述节点的初始位置信息包括所述节点的初始横坐标和初始纵坐标。

在本发明的一些实施例中,对于基于所述节点的初始位置信息确定更新后的节点位置信息来说,可以采用以下方式来实现:

通过设定的节点位置变换函数,基于所述节点的初始横坐标、所述节点的初始宽度和所述节点的内边距,确定更新后的节点的横坐标;

通过所述节点位置变换函数,基于所述节点的初始纵坐标、所述节点的初始高度和所述节点的内边距,确定更新后的节点的纵坐标;

基于所述更新后的节点的横坐标和所述更新后的节点的纵坐标,确定所述更新后的节点位置信息。

需要说明的是,本发明实施例中的节点位置变换函数可以基于节点变换规则进行设置。

采用本发明实施例的技术方案,通过对业务系统中的所有节点进行分组,实现对网络拓扑图中的节点建立约束,避免节点重叠的情况发生,使得最终形成的网络拓扑图中的所有节点能够完整呈现,从而保证拓扑结构清晰、美观,可展示性强,能够准确反映节点之间的拓扑关系,大大提高图形可视化的效率。

下面结合附图对本发明实施例中的网络拓扑图的生成方法的具体实现过程做进一步地详细说明。

图2为本发明实施例提供的一种网络拓扑图的生成方法的具体实现流程示意图,所述网络拓扑图的生成方法可应用于服务器或终端设备中;如图2所示,所述网络拓扑图的生成方法的具体实现流程,可以包括以下步骤:

步骤201:提取节点数据和节点关系数据对应的字符串的摘要,基于提取的摘要生成结构化数据。

这里,所述结构化数据通常可以为结构化的json数据,也就是说,结构化数据中可以携带有节点数据和节点关系数据。其中,所述节点数据对应的字符串的摘要可以用来表示节点数据的关键信息,比如节点的名称;所述节点关系数据对应的字符串的摘要可以用来表示节点关系数据的关键信息,比如节点连线的长度。

在本发明的一些实施例中,在生成结构化数据之后,所述方法还包括:对所述结构化数据进行存储。

需要说明的是,所述结构化数据可以按照以当前页面路径为键,以对提取的所述摘要进行数字签名的结果为值的键值对的方式进行存储。

步骤202:加载各业务系统的结构化数据。

步骤203:对所述结构化数据进行解析,获得所述业务系统对应的节点数据和节点关系数据,其中,所述节点数据包括节点的属性信息,所述节点的属性信息包括节点的名称。

这里,节点的属性信息可以在对节点进行初始化的阶段中获得。举例来说,节点的属性信息可以包括节点标识id、节点的名称、节点图标、节点颜色、节点宽度、节点高度和节点内边距等;所述节点关系数据即为节点间的连线数据,例如,节点间的连线数据可以包括连线id、连线的长度,连线的起始位置和连线的目标位置等。

需要说明的是,通过连线的起始位置和连线的目标位置,可以确定连线对应的源节点(source)和目标节点(target)。连线的起始位置和连线的目标位置可以基于连线id,从布局存储器保存的连线数据中查找连线,并获知该连线的起始位置和目标位置。

步骤204:基于所述节点的名称,对所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据。

在本发明的一些实施例中,对于本步骤204中的基于所述节点的名称,对所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据来说,可以采用以下方式来实现:首先,基于所述节点的名称,确定与所述节点的名称相匹配的用于分组的正则表达式;然后,根据所述正则表达式,对所述节点数据包括的所有节点进行组别划分,获得各分组对应的节点分组数据。

具体来说,所述节点的名称中包括节点的分组属性,也就是节点所属分组的分组名称。本发明实施例可以通过正则表达式,从节点的名称中提取出该节点所属分组的分组名称。例如,某节点的名称为ocean-ne40e,那么,“-”之前的“ocean”表示的就是该节点所属分组的分组名称。

步骤205:基于所述节点关系数据以及所述各分组对应的显示区域,生成网络拓扑图,对各节点进行显示。

在本发明的一些实施例中,对于本步骤205中的基于所述节点关系数据以及所述各分组对应的显示区域,生成网络拓扑图来说,可以采用以下方式来实现:基于拓扑图生成组件构造所述节点数据对应的所有节点;遍历查找所有节点,为各节点添加内容元素;基于所述节点关系数据,为添加所述内容元素后的各节点绘制连线;在具有连接关系的节点中将属于同一组的节点进行聚合,以使各分组内的节点的位置信息不超过所述各分组对应的显示区域,生成所述网络拓扑图。

具体来说,在生成网络拓扑图的过程中,可以先基于预先设置的拓扑图生成组件构造节点数据对应的所有节点,然后,遍历查找所有节点,分别为每个节点添加内容元素,其中,所述内容元素可以包括图标元素、矩形框元素和文本信息元素;接下来,基于节点关系数据确定各节点间的连线,以及确定用于表征所述连线的方向数据;基于所述连线和方向数据,为添加内容元素后的各节点绘制连线;最后,在具有连接关系的节点中将属于同一组的节点进行聚合,以使各分组内的节点的位置信息不超过所述各分组对应的显示区域,生成所述网络拓扑图。其中,所述各分组对应的显示区域是固定的,其不会随着节点位置的更新或移动而发生改变。

这里,在构造节点数据对应的所有节点的过程中,首先给所有节点的容器绑定数据,然后在容器中添加一个表示节点的可伸缩矢量图形(svg,scalablevectorgraphics)的图形元素(g元素),接下来遍历查找所有节点,分别为每个节点添加图标元素、矩形框元素和文本信息元素。

需要指出的是,为每个节点添加的文本信息元素,可以包括该节点的名称或者ip地址。下面针对为每个节点添加图标元素、矩形框元素和文本信息元素的过程进行说明。为节点添加图标元素的过程为遍历所有节点,为每个节点添加图像(image),设置图标的链接为图标格式(icon),并设置图标的宽度和图标的高度。为节点添加矩形框元素的过程为遍历所有节点,为每个节点添加设置的相应宽度(nw)和高度(nh),以及两个圆角(两个圆角均为5)的矩形框,且填充颜色为color,其中,矩形框的实际宽度nw=width-2*padding,矩形框的实际高度nh=height-2*padding,其中,width表示节点的初始宽度,height表示节点的初始高度,padding表示节点的内边距大小。为节点添加文本信息元素的过程为遍历所有节点,为每个节点添加文本(text),并设置text元素的坐标为(x,y),其中,text元素的横坐标x=width/2,text元素的纵坐标y=height/2,这里,width表示节点的初始宽度,height表示节点的初始高度,在设置text元素的坐标之后,再为所添加的文本内容设置文本名称。

这里,在基于所述节点关系数据,为添加所述内容元素后的各节点绘制连线的过程中,首先给所有连线的容器绑定数据,然后在容器中添加一个表示节点的svg的图形元素(g元素),再在g元素下添加一个路径(svg的path元素),并为路径设置d属性,其属性值为m、x0、y0、l、x1、y1,其中,(x0,y0)表示源节点即source节点的(x,y)坐标,(x1,y1)表示目标节点即target节点的(x,y)坐标,最后,在g元素下添加一个多边形(polygon)元素,该多边形元素用于表示连线的方向数据,即在连线中绘制一个箭头,也就是多边形元素表示箭头的方向。

这里,在基于所述节点分组数据,在具有连接关系的节点中将属于同一组的节点进行聚合的过程中,首先给分组的容器绑定数据,然后在容器中添加一个表示节点的svg的图形元素(g元素),将g元素移动至target节点的(x,y)坐标的位置处,其中,x和y的值可由分布式网络爬虫框架(cola布局)进行设定;接下来,在g元素中添加一个矩形框元素,其中,矩形框元素的属性值,比如矩形框元素的高度和宽度可由cola布局进行设定;最后,在g元素中添加一个text元素,用于设置分组的分组名称。

基于上述对所述节点数据、所述节点关系数据以及所述节点分组数据进行渲染的过程的描述,最终可以生成网络拓扑图,参见图3,图3为本发明实施例提供的一种网络拓扑图的展示效果示意图,在图3中,将subsys-1和subsys-2分为一组,且subsys-1和subsys-2均属于分组subsys,而subsys的上一级分组(uppergroup)的分组名称为ocean;将router2-s101和router2-s201分为一组,且router2-s101和router2-s201均属于分组router2,而router2的上一级分组(uppergroup)的分组名称为elephant。

步骤206:基于设定的布局迭代更新条件,对所述网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图。

在本发明的一些实施例中,对于本步骤206中的基于设定的布局迭代更新条件,对所述网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图来说,可以采用以下方式来实现:首先,确定所述网络拓扑图的初始位置信息;其次,响应于监听到的位置更新事件,基于所述网络拓扑图的初始位置信息,确定更新后的位置信息;最后,基于所述更新后的位置信息,对所述网络拓扑图的布局进行调整,直至满足所述布局迭代更新条件时,生成所述更新后的目标网络拓扑图。

需要说明的是,本发明实施例中的布局迭代更新条件包括布局调整次数达到设定的调整次数阈值,其中,所述调整次数阈值可以根据实际情况进行预先设定。

具体来说,在对网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图的过程中,可以先确定网络拓扑图的初始位置信息,其中,网络拓扑图的初始位置信息包括网络拓扑图中的节点的初始位置信息,所述节点关系数据的初始位置信息,以及对所述业务系统中的所有节点进行分组后的分组的初始位置信息;然后,监听是否发生位置更新事件,当监听到位置更新事件时,响应于所监听到的事件,基于所述节点的初始位置信息确定更新后的节点位置信息,基于所述节点关系数据的初始位置信息确定更新后的节点关系数据位置信息,以及基于所述分组的初始位置信息,确定更新后的分组位置信息;最后,基于所述更新后的节点位置信息、节点关系数据位置信息以及分组位置信息,对所述网络拓扑图的布局进行调整,直至调整次数达到设定的调整次数阈值时,生成所述目标网络拓扑图。

这里,在对网络拓扑图的布局进行更新的过程中,通过设置布局迭代更新条件即布局迭代更新次数(包括节点、连线和分组对应的位置更新的次数),循环执行网络拓扑图的布局更新,即在每次布局更新完成之后,将返回更新后的位置信息,如更新后的节点位置信息,然后,根据更新后的位置信息对网络拓扑图的布局再次进行调整,之后返回本次更新后的位置信息,直至布局调整次数达到预设的布局迭代更新次数,最终生成稳定的更新后的目标网络拓扑图。

这里,所述节点的属性信息包括节点的初始高度、节点的初始宽度、节点的内边距,所述节点的初始位置信息包括所述节点的初始横坐标和初始纵坐标。

在本发明的一些实施例中,对于基于所述节点的初始位置信息确定更新后的节点位置信息来说,可以采用以下方式来实现:

首先,通过设定的节点位置变换函数,基于所述节点的初始横坐标、所述节点的初始宽度和所述节点的内边距,确定更新后的节点的横坐标;然后,通过所述节点位置变换函数,基于所述节点的初始纵坐标、所述节点的初始高度和所述节点的内边距,确定更新后的节点的纵坐标;最后,基于所述更新后的节点的横坐标和所述更新后的节点的纵坐标,确定所述更新后的节点位置信息。

需要说明的是,所述节点的初始横坐标和初始纵坐标可以基于节点的名称,从布局存储器保存的节点数据中进行查找。在对节点位置信息进行更新时,是对所有节点进行一次节点位置变换。假设设定的节点位置变换函数为nt=translate(x,y),这里的x和y可通过下述公式获得,其中,x=x`-width/2+padding,y=y`-height/2+padding,其中,(x`,y`)表示当前节点的坐标,即变换前节点的初始坐标,(x,y)表示更新后节点的坐标,width表示节点的初始宽度,height表示节点的初始高度,padding表示节点的内边距大小。

下面以一个具体示例对本发明实施例中的网络拓扑图的生成方法进行说明。首先,执行初始化操作,初始化操作主要包括初始化cola布局和初始化svg元素,其中,初始化cola布局,是通过cola提供的接口来初始化布局,以供用户交互,并设置布局中的节点之间不重叠,设置cola不处理非连通图(也即不需要重新计算非连通图节点的位置),且设置布局画布的尺寸与输入的拓扑图的宽高保持一致;初始化svg元素,是向html文档中添加拓扑图根节点的svg元素,并设置其宽高与输入的拓扑图的宽高保持一致。然后,加载各业务系统的结构化数据,如结构化的json数据,包括节点数据和节点关系数据如连线。接下来,在加载节点和连线的json数据之后,根据结构化数据来初始化所有节点和连线,然后根据输入的正则表达式,对所有节点进行初始化分组,并将得到的所有节点、所有连线、所有分组分配给cola,并设置节点连线的距离(其中,cola布局将自动计算,试图让节点连接接近这个距离的长度)。接下来分别绘制分组、绘制连线、绘制节点,以及配置更新事件发生时的回调次数,也就是每次布局迭代后更新节点、连线、分组的位置的次数。当判断出需要缓存拓扑图时,如已经有保存的拓扑图,则根据缓存的拓扑图来设置当前拓扑图中的所有分组、所有节点、所有连线,否则循环执行cola的更新方法,即基于当前网络拓扑图的初始位置信息,确定更新后的位置信息,基于更新后的位置信息,对当前网络拓扑图的布局进行调整,直至调整次数满足设定的回调次数时结束布局调整,布局收敛以后将绘制后的分组、节点、连线保存起来,此时会连同其属性一起保存。

采用本发明实施例的技术方案,通过对业务系统中的所有节点进行分组,实现对网络拓扑图中的节点建立约束,避免节点重叠的情况发生,使得最终形成的网络拓扑图中的所有节点能够完整呈现,从而保证拓扑结构清晰、美观,可展示性强,能够准确反映节点之间的拓扑关系,大大提高图形可视化的效率;另外,通过设置布局迭代更新条件,在每次布局更新完成后,返回更新后的位置信息,然后根据更新后的位置信息对网络拓扑图的布局再次进行调整,之后返回本次更新后的位置信息,直至完成循环执行布局迭代更新次数,最终生成更新后的目标网络拓扑图,从而使得目标网络拓扑图的布局更加稳定。

为了实现上述网络拓扑图的生成方法,本发明实施例还提供了一种网络拓扑图的生成装置,所述网络拓扑图的生成装置可应用于服务器或终端设备中,图4为本发明实施例提供的一种网络拓扑图的生成装置的功能结构示意图;如图4所示,所述网络拓扑图的生成装置包括:加载单元41、解析单元42、分组单元43和渲染单元44。下面对上述各程序单元的功能进行说明。

所述加载单元41,用于加载各业务系统的结构化数据。

所述解析单元42,用于对所述结构化数据进行解析,获得所述业务系统对应的节点数据和节点关系数据。

所述分组单元43,用于对所述业务系统中所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据。

所述渲染单元44,用于基于所述节点关系数据以及所述各分组对应的显示区域,生成网络拓扑图,对各节点进行显示。

这里,所述节点数据包括节点的属性信息;其中,所述节点的属性信息包括节点的名称。

在本发明的一些实施例中,对于所述分组单元43对所述业务系统中所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据来说,可以采用以下方式实现:基于所述节点的名称,对所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据。

在本发明的一些实施例中,对于所述分组单元43基于所述节点的名称,对所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据来说,可以采用以下方式实现:基于所述节点的名称,确定与所述节点的名称相匹配的用于分组的正则表达式;根据所述正则表达式,对所述节点数据包括的所有节点进行组别划分,获得各分组对应的节点分组数据。

这里,所述节点分组数据包括所述节点所属分组的分组名称。

在本发明的一些实施例中,对于所述渲染单元44对所述节点数据、所述节点关系数据以及所述节点分组数据进行渲染,生成网络拓扑图来说,可以采用以下方式来实现:基于拓扑图生成组件构造所述节点数据对应的所有节点;遍历查找所有节点,为各节点添加内容元素;基于所述节点关系数据,为添加所述内容元素后的各节点绘制连线;在具有连接关系的节点中将属于同一组的节点进行聚合,以使各分组内的节点的位置信息不超过所述各分组对应的显示区域,生成所述网络拓扑图。

参见图5,图5为本发明实施例提供的另一种网络拓扑图的生成装置的功能结构示意图,所述装置还包括:更新单元45,用于在所述渲染单元44生成网络拓扑图之后,基于设定的布局迭代更新条件,对所述网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图。

在本发明的一些实施例中,对于所述更新单元45基于设定的布局迭代更新条件,对所述网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图来说,可以采用以下方式来实现:

确定所述网络拓扑图的初始位置信息;

响应于监听到的位置更新事件,基于所述网络拓扑图的初始位置信息,确定更新后的位置信息;

基于所述更新后的位置信息,对所述网络拓扑图的布局进行调整,直至满足所述布局迭代更新条件时,生成所述更新后的目标网络拓扑图。

需要说明的是:上述实施例提供的网络拓扑图的生成装置在生成网络拓扑图时,仅以上述各程序单元的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序单元完成,即将网络拓扑图的生成装置的内部结构划分成不同的程序单元,以完成以上描述的全部或者部分处理。另外,上述实施例提供的网络拓扑图的生成装置与网络拓扑图的生成方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再详细赘述。

在实际应用中,所述加载单元41、解析单元42、分组单元43、渲染单元44和更新单元45均可由位于服务器或终端设备上的中央处理器(cpu,centralprocessingunit)、微处理器(mpu,microprocessorunit)、数字信号处理器(dsp,digitalsignalprocessor)或现场可编程门阵列(fpga,fieldprogrammablegatearray)等实现。

为了实现上述网络拓扑图的生成方法,本发明实施例还提供了一种网络拓扑图的生成装置的硬件结构。现在将参考附图描述实现本发明实施例的网络拓扑图的生成装置,所述网络拓扑图的生成装置可以以各种形式来实施,例如服务器、终端设备(如台式机电脑、笔记本电脑、智能手机)等各种类型的计算机设备。下面对本发明实施例的网络拓扑图的生成装置的硬件结构做进一步说明,可以理解,图6仅仅示出了网络拓扑图的生成装置的示例性结构而非全部结构,根据需要可以实施图6示出的部分结构或全部结构。

参见图6,图6为本发明实施例提供的一种网络拓扑图的生成装置的硬件结构示意图,图6所示的网络拓扑图的生成装置600包括:至少一个处理器601、存储器602、用户接口603和至少一个网络接口604。所述网络拓扑图的生成装置600中的各个组件通过总线系统605耦合在一起。可以理解,总线系统605用于实现这些组件之间的连接通信。总线系统605除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统605。

其中,用户接口603可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。

可以理解,存储器602可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。

本发明实施例中的存储器602用于存储各种类型的数据以支持网络拓扑图的生成装置600的操作。这些数据的示例包括:用于在网络拓扑图的生成装置600上操作的任何计算机程序,如可执行程序6021和操作系统6022,实现本发明实施例的网络拓扑图的生成方法的程序可以包含在可执行程序6021中。

本发明实施例揭示的网络拓扑图的生成方法可以应用于处理器601中,或者由处理器601实现。处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述网络拓扑图的生成方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器601可以实现或者执行本发明实施例中提供的各网络拓扑图的生成方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所提供的网络拓扑图的生成方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成本发明实施例提供的网络拓扑图的生成方法的步骤。

本发明实施例中,所述网络拓扑图的生成装置600包括存储器602、处理器601及存储在存储器602上并能够由所述处理器601运行的可执行程序6021,所述处理器601运行所述可执行程序6021时实现:加载各业务系统的结构化数据;对所述结构化数据进行解析,获得所述业务系统对应的节点数据和节点关系数据;对所述业务系统中所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据;基于所述节点关系数据以及所述各分组对应的显示区域,生成网络拓扑图,对各节点进行显示。

作为一种实施方式,所述处理器601运行所述可执行程序6021时实现:基于所述节点的名称,对所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据。

作为一种实施方式,所述处理器601运行所述可执行程序6021时实现:基于所述节点的名称,确定与所述节点的名称相匹配的用于分组的正则表达式;根据所述正则表达式,对所述节点数据包括的所有节点进行组别划分,获得各分组对应的节点分组数据;其中,所述节点分组数据包括所述节点所属分组的分组名称。

作为一种实施方式,所述处理器601运行所述可执行程序6021时实现:在所述生成网络拓扑图之后,基于设定的布局迭代更新条件,对所述网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图。

作为一种实施方式,所述处理器601运行所述可执行程序6021时实现:确定所述网络拓扑图的初始位置信息;响应于监听到的位置更新事件,基于所述网络拓扑图的初始位置信息,确定更新后的位置信息;基于所述更新后的位置信息,对所述网络拓扑图的布局进行调整,直至满足所述布局迭代更新条件时,生成所述更新后的目标网络拓扑图。

作为一种实施方式,所述处理器601运行所述可执行程序6021时实现:基于拓扑图生成组件构造所述节点数据对应的所有节点;遍历查找所有节点,为各节点添加内容元素;基于所述节点关系数据,为添加所述内容元素后的各节点绘制连线;在具有连接关系的节点中将属于同一组的节点进行聚合,以使各分组内的节点的位置信息不超过所述各分组对应的显示区域,生成所述网络拓扑图。

在示例性实施例中,本发明实施例还提供了一种存储介质,所述存储介质可为光盘、闪存或磁盘等存储介质,可选为非瞬间存储介质。

本发明实施例中,所述存储介质上存储有可执行程序6021,所述可执行程序6021被处理器601执行时实现:加载各业务系统的结构化数据;对所述结构化数据进行解析,获得所述业务系统对应的节点数据和节点关系数据;对所述业务系统中所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据;基于所述节点关系数据以及所述各分组对应的显示区域,生成网络拓扑图,对各节点进行显示。

作为一种实施方式,所述可执行程序6021被处理器601执行时实现:基于所述节点的名称,对所述节点数据包括的所有节点进行分组,获得各分组对应的节点分组数据。

作为一种实施方式,所述可执行程序6021被处理器601执行时实现:基于所述节点的名称,确定与所述节点的名称相匹配的用于分组的正则表达式;根据所述正则表达式,对所述节点数据包括的所有节点进行组别划分,获得各分组对应的节点分组数据;其中,所述节点分组数据包括所述节点所属分组的分组名称。

作为一种实施方式,所述可执行程序6021被处理器601执行时实现:在所述生成网络拓扑图之后,基于设定的布局迭代更新条件,对所述网络拓扑图的布局进行更新,生成更新后的目标网络拓扑图。

作为一种实施方式,所述可执行程序6021被处理器601执行时实现:确定所述网络拓扑图的初始位置信息;响应于监听到的位置更新事件,基于所述网络拓扑图的初始位置信息,确定更新后的位置信息;基于所述更新后的位置信息,对所述网络拓扑图的布局进行调整,直至满足所述布局迭代更新条件时,生成所述更新后的目标网络拓扑图。

作为一种实施方式,所述可执行程序6021被处理器601执行时实现:基于拓扑图生成组件构造所述节点数据对应的所有节点;遍历查找所有节点,为各节点添加内容元素;基于所述节点关系数据,为添加所述内容元素后的各节点绘制连线;在具有连接关系的节点中将属于同一组的节点进行聚合,以使各分组内的节点的位置信息不超过所述各分组对应的显示区域,生成所述网络拓扑图。

综上所述,本发明实施例具有以下有益效果:

1)通过对业务系统中的所有节点进行分组,实现对网络拓扑图中的节点建立约束,避免节点重叠的情况发生,使得最终形成的网络拓扑图中的所有节点能够完整呈现,从而保证拓扑结构清晰、美观,可展示性强,能够准确反映节点之间的拓扑关系,大大提高图形可视化的效率;

2)通过设置布局迭代更新条件,在每次布局更新完成后,返回更新后的位置信息,然后根据更新后的位置信息对网络拓扑图的布局再次进行调整,之后返回本次更新后的位置信息,直至完成循环执行布局迭代更新次数,最终生成更新后的目标网络拓扑图,从而使得目标网络拓扑图的布局更加稳定。

本领域技术人员应当理解,本发明实施例所记载的各技术方案之间,在不冲突的情况下,可以任意组合。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或可执行程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的可执行程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和可执行程序产品的流程图和/或方框图来描述的。应理解可由可执行程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些可执行程序指令到通用计算机、专用计算机、嵌入式处理机或参考可编程数据处理设备的处理器以产生一个机器,使得通过计算机或参考可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些可执行程序指令也可存储在能引导计算机或参考可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些可执行程序指令也可装载到计算机或参考可编程数据处理设备上,使得在计算机或参考可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或参考可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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

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