CN106161106B - 一种应用于有向拓扑图的节点聚合方法及装置 - Google Patents

一种应用于有向拓扑图的节点聚合方法及装置 Download PDF

Info

Publication number
CN106161106B
CN106161106B CN201610719498.6A CN201610719498A CN106161106B CN 106161106 B CN106161106 B CN 106161106B CN 201610719498 A CN201610719498 A CN 201610719498A CN 106161106 B CN106161106 B CN 106161106B
Authority
CN
China
Prior art keywords
node
destination node
source node
points relationship
currentelement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610719498.6A
Other languages
English (en)
Other versions
CN106161106A (zh
Inventor
肖松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201610719498.6A priority Critical patent/CN106161106B/zh
Publication of CN106161106A publication Critical patent/CN106161106A/zh
Application granted granted Critical
Publication of CN106161106B publication Critical patent/CN106161106B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种应用于有向拓扑图的节点聚合方法及装置,该方法包括:根据目标有向拓扑图,确定所述目标有向拓扑图中所有节点之间的指向关系;根据所述指向关系,获得源节点集合和目的节点集合;按照预设聚合规则,将所述源节点集合和目的节点集合中的节点进行聚合。应用本发明实施例可以自动聚合节点,降低错误机率,精简有向拓扑图。

Description

一种应用于有向拓扑图的节点聚合方法及装置
技术领域
本发明涉及计算机网络服务领域,特别涉及一种应用于有向拓扑图的节点聚合方法及装置。
背景技术
随着反向代理技术(如Nginx)在现代业务系统中应用得越来越广泛,用户通过公网请求业务资源往往需要穿过多层服务器。在复杂业务环境下,服务器之间的指向关系错综复杂且层次较多,为了直观的查看反向代理服务器与具体业务应用服务器之间的指向和层级关系,需要维护规模较为庞大的IP拓扑图。
目前维护IP拓扑图是由人工聚合相同业务IP与备份IP,而且由于机器变动造成的服务拓扑结构改变,也只能手工去维护拓扑图。这种人工聚合的方式产生错误的机率较大。同时,由于分布式以及备份等原因,业务系统中可能会存在大量的IP信息,使得拓扑图十分庞大,可视化效果很差。
发明内容
本发明实施例的目的在于提供一种应用于有向拓扑图的节点聚合方法及装置,以自动聚合节点,降低错误机率,精简有向拓扑图。
为达到上述目的,本发明实施例提供了一种应用于有向拓扑图的节点聚合方法,所述方法包括:
根据目标有向拓扑图,确定所述目标有向拓扑图中所有节点之间的指向关系;
根据所述指向关系,获得源节点集合和目的节点集合;
按照预设聚合规则,将所述源节点集合和目的节点集合中的节点进行聚合。
可选的,所述根据所述指向关系,获得源节点集合和目的节点集合,包括:
根据所述指向关系,对所述指向关系中源节点相同的目的节点进行聚合,得到每个源节点的目的节点集合;
根据每个源节点的目的节点集合,更新所述指向关系;
根据更新后的指向关系,对所述指向关系中目的节点集合相同的源节点进行聚合,得到多个源节点集合。
可选的,所述根据所述指向关系,获得源节点集合和目的节点集合,包括:
根据所述指向关系,对所述指向关系中目的节点相同的源节点进行聚合,得到每个目的节点的源节点集合;
根据每个目的节点的源节点集合,更新所述指向关系;
根据更新后的指向关系,对所述指向关系中源节点集合相同的目的节点进行聚合,得到多个目的节点集合。
可选的,所述按照预设聚合规则,将所述多个源节点集合和目的节点集合中的节点进行聚合,包括:
将每一个源节点集合作为预设碰撞集合中的一个元素,并对所述预设碰撞集合中的元素进行排序;
依次将每一个目的节点集合确定为候选集合;
针对当前候选集合,按照所述碰撞集合中元素的顺序,进行当前候选集合和当前元素的差集和交集运算,将所述当前元素从当前碰撞集合中删除;并将所述当前元素与所述当前候选集合的差集,以及所述当前元素与所述当前候选集合的交集添加在当前碰撞集合中;将所述当前候选集合与所述当前元素的差集,确定为当前候选集合,直至当前候选集合为空或与最后一个元素进行差集和交集运算完成后,所述当前候选集合与所述当前元素的差集不为空,并将当前候选集合与所述当前元素的差集添加在当前碰撞集合中;
将最终碰撞集合中的同一元素包含的至少两个节点进行聚合。
可选的,所述方法还包括:
根据节点聚合的聚合结果,更新所述目标有向拓扑图。
为达到上述目的,本发明实施例还提供了一种应用于有向拓扑图的节点聚合装置,所述装置包括:
确定单元,用于根据目标有向拓扑图,确定所述目标有向拓扑图中所有节点之间的指向关系;
获得单元,用于根据所述指向关系,获得源节点集合和目的节点集合;
聚合单元,用于按照预设聚合规则,将所述源节点集合和目的节点集合中的节点进行聚合。
可选的,所述获得单元,包括:
第一聚合子单元,用于根据所述指向关系,对所述指向关系中源节点相同的目的节点进行聚合,得到每个源节点的目的节点集合;
第一更新子单元,用于根据每个源节点的目的节点集合,更新所述指向关系;
第二聚合子单元,用于根据更新后的指向关系,对所述指向关系中目的节点集合相同的源节点进行聚合,得到多个源节点集合。
可选的,所述获得单元,包括:
第三聚合子单元,用于根据所述指向关系,对所述指向关系中目的节点相同的源节点进行聚合,得到每个目的节点的源节点集合;
第二更新子单元,用于根据每个目的节点的源节点集合,更新所述指向关系;
第四聚合子单元,用于根据更新后的指向关系,对所述指向关系中源节点集合相同的目的节点进行聚合,得到多个目的节点集合。
可选的,所述聚合单元,包括:
排序子单元,用于将每一个源节点集合作为预设碰撞集合中的一个元素,并对所述预设碰撞集合中的元素进行排序;
确定子单元,用于依次将每一个目的节点集合确定为候选集合;
处理子单元,用于针对当前候选集合,按照所述碰撞集合中元素的顺序,进行当前候选集合和当前元素的差集和交集运算,将所述当前元素从当前碰撞集合中删除;并将所述当前元素与所述当前候选集合的差集,以及所述当前元素与所述当前候选集合的交集添加在当前碰撞集合中;将所述当前候选集合与所述当前元素的差集,确定为当前候选集合,直至当前候选集合为空或与最后一个元素进行差集和交集运算完成后,所述当前候选集合与所述当前元素的差集不为空,并将当前候选集合与所述当前元素的差集添加在当前碰撞集合中;
第五聚合子单元,用于将最终碰撞集合中的同一元素包含的至少两个节点进行聚合。
可选的,所述装置还包括:
更新单元,用于根据节点聚合的聚合结果,更新所述目标有向拓扑图。
由上述的技术方案可见,本发明实施例提供的一种应用于有向拓扑图的节点聚合方法及装置,首先确定有向拓扑图中所有节点之间的指向关系,根据确定的指向关系,获得多个源节点集合和多个目的节点集合,最后按照预设聚合规则,将获得的多个源节点集合和目的节点集合中的节点进行聚合。不同于现有技术中依靠人工来聚合有向拓扑图中的节点,本发明实施例能够实现节点聚合过程自动化,从而降低错误机率,并且将指向关系相同的节点聚合,能够精简有向拓扑图。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用于有向拓扑图的节点聚合方法的流程示意图;
图2为本发明实施例提供的一个具体实施例中节点聚合前的有向拓扑图;
图3为根据图2中的有向拓扑图进行节点聚合处理后的有向拓扑图;
图4为本发明实施例提供的一种应用于有向拓扑图的节点聚合装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决现有技术问题,本发明实施例提供了一种应用于有向拓扑图的节点聚合方法及装置。下面通过具体实施例,先对本发明实施例提供的一种应用于有向拓扑图的节点聚合方法进行详细说明。
图1为本发明实施例提供的一种应用于有向拓扑图的节点聚合方法的流程示意图,该方法可以包括:
S101,根据目标有向拓扑图,确定目标有向拓扑图中所有节点之间的指向关系。
实际应用中,有向拓扑图中的任意一个箭头连接的两个节点中,箭头指出的节点为源节点,箭头指向的节点为目的节点,即,任意一个箭头表示两个节点之间的指向关系。因此,可以根据目标有向拓扑图所有箭头的指向,确定所有节点之间的指向关系。
S102,根据指向关系,获得源节点集合和目的节点集合。
具体的,源节点集合为指向关系中目的节点相同的所有节点的集合,同样的,目的节点集合为指向关系中源节点相同的所有节点的集合。
在一种优选的实施方式中,根据指向关系,获得源节点集合和目的节点集合,可以包括:
根据指向关系,对指向关系中源节点相同的目的节点进行聚合,得到每个源节点的目的节点集合;
根据每个源节点的目的节点集合,更新指向关系;
根据更新后的指向关系,对指向关系中目的节点集合相同的源节点进行聚合,得到多个源节点集合。
在另一种优选的实施方式中,根据指向关系,获得源节点集合和目的节点集合,可以包括:
根据所述指向关系,对所述指向关系中目的节点相同的源节点进行聚合,得到每个目的节点的源节点集合;
根据每个目的节点的源节点集合,更新所述指向关系;
根据更新后的指向关系,对所述指向关系中源节点集合相同的目的节点进行聚合,得到多个目的节点集合。
S103,按照预设聚合规则,将源节点集合和目的节点集合中的节点进行聚合。
实际应用中,在经过步骤S102得到目的节点集合和源节点集合后,由于目的节集合和源节点集合中可能会存在相同的冗余节点,因此需要将将源节点集合和目的节点集合中的节点进行聚合,将目标有向拓扑图中具有相同的指向关系的节点聚合在一起,这里,指向关系相同表示指向和被指向的节点相同。
在一种具体实现方式中,按照预设聚合规则,将多个源节点集合和目的节点集合中的节点进行聚合,可以包括:
将每一个源节点集合作为预设碰撞集合中的一个元素,并对预设碰撞集合中的元素进行排序;
依次将每一个目的节点集合确定为候选集合;
针对当前候选集合,按照碰撞集合中元素的顺序,进行当前候选集合和当前元素的差集和交集运算,将所述当前元素从当前碰撞集合中删除;并将当前元素与当前候选集合的差集,以及当前元素与当前候选集合的交集添加在当前碰撞集合中;将当前候选集合与所述当前元素的差集,确定为当前候选集合,直至当前候选集合为空或与最后一个元素进行差集和交集运算完成后,当前候选集合与当前元素的差集不为空,并将当前候选集合与当前元素的差集添加在当前碰撞集合中;
将最终碰撞集合中的同一元素包含的至少两个节点进行聚合。
实际应用中,在将多个源节点集合和目的节点集合中的节点进行聚合后,还可以根据节点聚合的聚合结果,更新所述目标有向拓扑图,得到节点聚合后的有向拓扑图。
应用本发明实施例,首先确定有向拓扑图中所有节点之间的指向关系,根据确定的指向关系,获得多个源节点集合和多个目的节点集合,最后按照预设聚合规则,将获得的多个源节点集合和目的节点集合中的节点进行聚合。不同于现有技术中依靠人工来聚合有向拓扑图中的节点,本发明实施例能够实现节点聚合过程自动化,从而降低错误机率,并且将指向关系相同的节点聚合,能够精简有向拓扑图。
下面以一个具体实施例对本发明实施例所提供的一种应用于有向拓扑图的节点聚合方法进行介绍。
如图2所示,图2为本发明实施例提供的一个具体实施例中节点聚合前的有向拓扑图,图中有A~O共15个节点,由图2可知,所有节点的之间的指向关系如下:
A→B,A→C,A→D,B→C,B→D,B→E,B→F,C→E,C→F,C→G,C→H,C→I,D→E,D→F,D→G,D→H,D→I,E→J,E→K,E→L,F→J,F→K,F→L,G→K,G→L,G→M,H→K,H→L,H→M,I→M,I→N,I→O,I→A。
根据上述指向关系,对指向关系中源节点相同的目的节点进行聚合,得到每个源节点的目的节点集合。例如以节点A为源节点,A的目的节点有B、C、D,得到A的目的节点集合为{B,C,D};同样的,确定其他节点作为源节点时所对应的目的节点集合,如下:
B的目的节点集合为{C,D,E,F}
C的目的节点集合为{E,F,G,H,I}
D的目的节点集合为{E,F,G,H,I}
E的目的节点集合为{J,K,L}
F的目的节点集合为{J,K,L}
G的目的节点集合为{K,L,M}
H的目的节点集合为{K,L,M}
I的目的节点集合为{M,N,O,A}。
根据上述每个源节点的目的节点集合,更新指向关系,例如源节点A指向目的节点集合{B,C,D},记为A→{B,C,D}。因此更新后的指向关系为:
A→{B,C,D}
B→{C,D,E,F}
C→{E,F,G,H,I}
D→{E,F,G,H,I}
E→{J,K,L}
F→{J,K,L}
G→{K,L,M}
H→{K,L,M}
I→{M,N,O,A}。
根据上述更新后的指向关系,对指向关系中目的节点集合相同的源节点进行聚合,得到多个源节点集合。例如,源节点源节点C和D指向相同的目的节点集合{E,F,G,H,I},因此将源节点C和D聚合,得到源节点集合{C,D},同样的,聚合源节点E和F得到源节点集合{E,F},聚合源节点G和H得到源节点集合{G,H},另外源节点A、B、I分别作为源节点集合{A},{B},{I}。因此,获得的目的节点集合和源节点集合及其指向关系如下,其中箭头左侧代表源节点集合,箭头右侧代表目的节点集合:
{A}→{B,C,D}
{B}→{C,D,E,F}
{C,D}→{E,F,G,H,I}
{E,F}→{J,K,L}
{G,H}→{K,L,M}
{I}→{M,N,O,A}。
上述得到源节点集合和目的节点集合为先获得目的节点集合、后获得源节点集合的结果。
若先获得源节点集合、后获得目的节点集合,则获得的结果如下:
{A}→{B}
{A,B}→{C,D}
{B,C,D}→{E,F}
{C,D}→{G,H,I,J}
{E,F}→{J}
{E,F,G,H}→{K,L}
{G,H,I}→{M}
{I}→{N,O,A}。
在得到源节点集合和目的节点集合后,按照预设聚合规则,将源节点集合和目的节点集合中的节点进行聚合。具体的,以先获得目的节点集合、后获得源节点集合的结果为例。首先将每一个源节点集合作为预设碰撞集合中的一个元素,并对预设碰撞集合中的元素进行排序,排序后的预设碰撞集合中包含的元素为{A}、{B}、{C,D}、{E,F}、{G,H}、{I}。先将目的节点集合{B,C,D}确定为候选集合。
对于候选集合{B,C,D},按照碰撞集合中元素的顺序,首先与碰撞集合中的第一个元素{A}进行当前候选集合和当前元素的差集和交集运算,并将当前元素{A}从当前碰撞集合中删除。当前元素{A}与当前候选集合{B,C,D}的差集为集合{A},当前元素{A}与当前候选集合{B,C,D}的交集为空集将集合{A}和空集添加到当前碰撞集合中,成为当前碰撞集合中的元素。需要说明的是,由于空集中不包含任何节点,因此将空集添加到当前碰撞集合中不影响当前碰撞集合中元素的组成,因此可以视为没有将空集添加到当前碰撞集合中。
当前候选集合{B,C,D}与当前元素{A}的差集为{B,C,D},因此将{B,C,D}确定为当前候选集合,继续与下一个元素{B}进行上述处理过程。首先将当前元素{B}从当前碰撞集合中删除,此时由于当前元素{B}与当前候选集合{B,C,D}的差集为空集当前元素{B}与当前候选集合{B,C,D}的交集为{B},因此将空集和集合{B}添加到当前碰撞集合中,成为当前碰撞集合中的元素。
此时,当前候选集合{B,C,D}与当前元素{B}的差集为{C,D},因此将{C,D}确定为当前候选集合,继续与下一个元素{C,D}进行上述处理过程。首先将当前元素{C,D}从当前碰撞集合中删除,由于当前元素{C,D}与当前候选集合{C,D}的差集为空集交集为{C,D},因此将空集和集合{C,D}添加到当前碰撞集合中,成为当前碰撞集合中的元素。
到目前,由于当前候选集合{C,D}与当前元素{C,D}的差集为空集,因此以第一个目的节点集合为候选集合的处理过程已经完成。即,可以将下一个目的节点集合确定为候选集合,重复执行上述过程,以其他目的节点集合为候选集合进行处理的具体过程可以参照上述相应描述内容,在此不做赘述。
为清楚起见,依次将每一个目的节点集合确定为候选集合进行处理的过程如表1所示,其中,第二列的第一行为预设碰撞集合,第一列第二行到第六行表示目的节点集合依次为候选集合的顺序,第二列的第二行到第六行依次为根据对应的候选集合的顺序进行处理后的当前碰撞集合。
表1
由表1可知,最终碰撞集合中的各元素依次为{A}、{B}、{C,D}、{E,F}、{G,H}、{I}、{J}、{K,L}、{M}、{N,O},因此可以将最终碰撞集合中的同一元素包含的至少两个节点进行聚合,具体的,将节点C、D进行聚合,节点E、F进行聚合,将节点G、H进行聚合,将节点K、L进行聚合,将节点N、O进行聚合。
若以先获得源节点集合、后获得目的节点集合的方式,则依次将每一个目的节点集合确定为候选集合进行处理的过程如表2所示。
表2
由表2可知,最终碰撞集合中的各元素依次为{A}、{B}、{C,D}、{E,F}、{G,H}、{I}、{J}、{K,L}、{M}、{N,O},因此可以将最终碰撞集合中的同一元素包含的至少两个节点进行聚合,具体的,将节点C、D进行聚合,节点E、F进行聚合,将节点G、H进行聚合,将节点K、L进行聚合,将节点N、O进行聚合。
根据上述聚合结果,更新图2所示的有向拓扑图,得到节点聚合后的有向拓扑图,如图3所示。
由图2和图3所示的具体实施例可知,本发明实施例所提供的一种应用于有向拓扑图中的节点聚合方法,首先确定有向拓扑图中所有节点之间的指向关系,根据确定的指向关系,获得多个源节点集合和多个目的节点集合,最后按照预设聚合规则,将获得的多个源节点集合和目的节点集合中的节点进行聚合。不同于现有技术中依靠人工来聚合有向拓扑图中的节点,本发明实施例能够实现节点聚合过程自动化,从而降低错误机率,并且将指向关系相同的节点聚合,能够有向精简拓扑图,而且还能够有效处理有向拓扑图中的环状结构,如图2中的节点A和I。
下面以IP拓扑图中的IP聚合为具体应用实例,对本发明实施例所提供的一种应用于有向拓扑图的节点聚合方法进行介绍,该具体应用实例中能够对不同层次的节点指向关系进行聚合,确保IP拓扑图中所有的节点不存在冗余,且将表现相同的节点聚合。
具体的聚合过程由Python程序实现,具体源文件有:
main.py,程序入口;
globalvar.py,用于默认全局变量;
aggregation.py,包括各种聚合函数;
drawtopology.py,用于利用节点聚合结果画图。
首先在利用源文件globalvar.py默认全局变量之后,利用源文件main.py检测程序运行参数,参数为二元的IP映射文件,文件内容格式为“源IP目的IP”,参数的顺序遵循实际网络拓扑中从高层到底层,类似于“城市→机房→第一层Nginx→第二层Nginx(或Java服务)→第三层Nginx(或Java服务)→…”的结构。该层次中,城市和机房在程序的处理中与IP等价,均是进行字符串的比对,因此理论上本发明实施例所述的方法可以对任何字符串进行聚合。当没有参数时,按照默认的三层Nginx(或Java服务)处理,每一层的文件名分别为:
CITY_ISP_INFO="city_isp_info";
MACHINE_ROOM_INFO="first_level_nginx_ip";
FIRST_LEVEL_IP_TOPOLOGY_FILE="level1_nginx_ip_topology";
SECOND_LEVEL_IP_TOPOLOGY_FILE="level2_nginx_ip_topology";
NGINX_TOPOLOGY_GV_FILE="nginx_topology.gv"。
接下来做IP的聚合,需要调用所述源文件aggregation.py中的若干方法,其中:
函数dest_ip_aggregate(ip_file),用于聚合源IP相同的目的IP,得到每个源IP的目的IP集合;
函数source_ip_aggregate(ip_dict),用于聚合目的IP集合相同的源IP,得到源IP集合;
函数split_to_meta_set(meta_set,candidate_set),用于将每个聚合后的源IP集合作为预设碰撞集合中的一个元素,并调用collision_sputtering函数;
函数collision_sputtering(stone,debris),用于按照预设聚合规则,将源IP集合和目的IP集合中的IP进行聚合;
函数reformat_ip_aggregate(ip_dict,meta_set),用于根据IP聚合结果,更新指向关系。
最后,利用源文件drawtopology.py,使用画图工具Graphviz的DOT语言来描述IP拓扑结构,生成聚合后的IP拓扑图,使用的代码可以为:dot example.gv–Tpng–oexample.png。
综上可知,本发明实施例提供的一种应用于有向拓扑图的节点聚合方法,首先确定有向拓扑图中所有节点之间的指向关系,根据确定的指向关系,获得多个源节点集合和多个目的节点集合,最后按照预设聚合规则,将获得的多个源节点集合和目的节点集合中的节点进行聚合。不同于现有技术中依靠人工来聚合有向拓扑图中的节点,本发明实施例能够实现节点聚合过程自动化,从而降低错误机率,并且将指向关系相同的节点聚合,能够精简有向拓扑图。在实际应用中,本发明实施例可以应用于Nginx和Java服务网络拓扑结构的自动化绘图,代替原有手工聚合的方式,减少错误的发生,也使IP服务管理的自动化更进一步。
相应于上述方法实施例,本发明实施例还提供了一种应用于有向拓扑图的节点聚合装置,如图4所示,该装置可以包括:
确定单元401,用于根据目标有向拓扑图,确定所述目标有向拓扑图中所有节点之间的指向关系;
获得单元402,用于根据所述指向关系,获得源节点集合和目的节点集合;
聚合单元403,用于按照预设聚合规则,将所述源节点集合和目的节点集合中的节点进行聚合。
应于本发明实施例,首先确定有向拓扑图中所有节点之间的指向关系,根据确定的指向关系,获得多个源节点集合和多个目的节点集合,最后按照预设聚合规则,将获得的多个源节点集合和目的节点集合中的节点进行聚合。不同于现有技术中依靠人工来聚合有向拓扑图中的节点,本发明实施例能够实现节点聚合过程自动化,从而降低错误机率,并且将指向关系相同的节点聚合,能够精简有向拓扑图。
在一种优选的实施方式中,所述获得单元402,可以包括:第一聚合子单元、第一更新子单元和第二聚合子单元(图中未示出),其中,
第一聚合子单元,用于根据所述指向关系,对所述指向关系中源节点相同的目的节点进行聚合,得到每个源节点的目的节点集合;
第一更新子单元,用于根据每个源节点的目的节点集合,更新所述指向关系;
第二聚合子单元,用于根据更新后的指向关系,对所述指向关系中目的节点集合相同的源节点进行聚合,得到多个源节点集合。
在另一种优选的实施方式中,所述获得单元402,可以包括:第三聚合子单元、第二更新子单元和第四聚合子单元(图中未示出),其中,
第三聚合子单元,用于根据所述指向关系,对所述指向关系中目的节点相同的源节点进行聚合,得到每个目的节点的源节点集合;
第二更新子单元,用于根据每个目的节点的源节点集合,更新所述指向关系;
第四聚合子单元,用于根据更新后的指向关系,对所述指向关系中源节点集合相同的目的节点进行聚合,得到多个目的节点集合。
优选的,所述聚合单元403,可以包括:排序子单元、确定子单元、处理子单元和第五聚合子单元(图中未示出),其中
排序子单元,用于将每一个源节点集合作为预设碰撞集合中的一个元素,并对所述预设碰撞集合中的元素进行排序;
确定子单元,用于依次将每一个目的节点集合确定为候选集合;
处理子单元,用于针对当前候选集合,按照所述碰撞集合中元素的顺序,进行当前候选集合和当前元素的差集和交集运算,将所述当前元素从当前碰撞集合中删除;并将所述当前元素与所述当前候选集合的差集,以及所述当前元素与所述当前候选集合的交集添加在当前碰撞集合中;将所述当前候选集合与所述当前元素的差集,确定为当前候选集合,直至当前候选集合为空或与最后一个元素进行差集和交集运算完成后,所述当前候选集合与所述当前元素的差集不为空,并将当前候选集合与所述当前元素的差集添加在当前碰撞集合中;
第五聚合子单元,用于将最终碰撞集合中的同一元素包含的至少两个节点进行聚合。
在实际应用中,该装置还可以包括:
更新单元(图中未示出),用于根据节点聚合的聚合结果,更新所述目标有向拓扑图。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (8)

1.一种应用于有向拓扑图的节点聚合方法,其特征在于,所述方法包括:
根据目标有向拓扑图,确定所述目标有向拓扑图中所有节点之间的指向关系;
根据所述指向关系,获得源节点集合和目的节点集合;
按照预设聚合规则,将所述源节点集合和目的节点集合中的节点进行聚合;
其中,所述按照预设聚合规则,将多个源节点集合和目的节点集合中的节点进行聚合,包括:
将每一个源节点集合作为预设碰撞集合中的一个元素,并对所述预设碰撞集合中的元素进行排序;
依次将每一个目的节点集合确定为候选集合;
针对当前候选集合,按照所述碰撞集合中元素的顺序,进行当前候选集合和当前元素的差集和交集运算,将所述当前元素从当前碰撞集合中删除;并将所述当前元素与所述当前候选集合的差集,以及所述当前元素与所述当前候选集合的交集添加在当前碰撞集合中;将所述当前候选集合与所述当前元素的差集,确定为当前候选集合,直至当前候选集合为空或与最后一个元素进行差集和交集运算完成后,所述当前候选集合与所述当前元素的差集不为空,并将当前候选集合与所述当前元素的差集添加在当前碰撞集合中;
将最终碰撞集合中的同一元素包含的至少两个节点进行聚合。
2.根据权利要求1所述的方法,其特征在于,所述根据所述指向关系,获得源节点集合和目的节点集合,包括:
根据所述指向关系,对所述指向关系中源节点相同的目的节点进行聚合,得到每个源节点的目的节点集合;
根据每个源节点的目的节点集合,更新所述指向关系;
根据更新后的指向关系,对所述指向关系中目的节点集合相同的源节点进行聚合,得到多个源节点集合。
3.根据权利要求1所述的方法,其特征在于,所述根据所述指向关系,获得源节点集合和目的节点集合,包括:
根据所述指向关系,对所述指向关系中目的节点相同的源节点进行聚合,得到每个目的节点的源节点集合;
根据每个目的节点的源节点集合,更新所述指向关系;
根据更新后的指向关系,对所述指向关系中源节点集合相同的目的节点进行聚合,得到多个目的节点集合。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据节点聚合的聚合结果,更新所述目标有向拓扑图。
5.一种应用于有向拓扑图的节点聚合装置,其特征在于,所述装置包括:
确定单元,用于根据目标有向拓扑图,确定所述目标有向拓扑图中所有节点之间的指向关系;
获得单元,用于根据所述指向关系,获得源节点集合和目的节点集合;
聚合单元,用于按照预设聚合规则,将所述源节点集合和目的节点集合中的节点进行聚合;
其中,所述聚合单元,包括:
排序子单元,用于将每一个源节点集合作为预设碰撞集合中的一个元素,并对所述预设碰撞集合中的元素进行排序;
确定子单元,用于依次将每一个目的节点集合确定为候选集合;
处理子单元,用于针对当前候选集合,按照所述碰撞集合中元素的顺序,进行当前候选集合和当前元素的差集和交集运算,将所述当前元素从当前碰撞集合中删除;并将所述当前元素与所述当前候选集合的差集,以及所述当前元素与所述当前候选集合的交集添加在当前碰撞集合中;将所述当前候选集合与所述当前元素的差集,确定为当前候选集合,直至当前候选集合为空或与最后一个元素进行差集和交集运算完成后,所述当前候选集合与所述当前元素的差集不为空,并将当前候选集合与所述当前元素的差集添加在当前碰撞集合中;
第五聚合子单元,用于将最终碰撞集合中的同一元素包含的至少两个节点进行聚合。
6.根据权利要求5所述的装置,其特征在于,所述获得单元,包括:
第一聚合子单元,用于根据所述指向关系,对所述指向关系中源节点相同的目的节点进行聚合,得到每个源节点的目的节点集合;
第一更新子单元,用于根据每个源节点的目的节点集合,更新所述指向关系;
第二聚合子单元,用于根据更新后的指向关系,对所述指向关系中目的节点集合相同的源节点进行聚合,得到多个源节点集合。
7.根据权利要求5所述的装置,其特征在于,所述获得单元,包括:
第三聚合子单元,用于根据所述指向关系,对所述指向关系中目的节点相同的源节点进行聚合,得到每个目的节点的源节点集合;
第二更新子单元,用于根据每个目的节点的源节点集合,更新所述指向关系;
第四聚合子单元,用于根据更新后的指向关系,对所述指向关系中源节点集合相同的目的节点进行聚合,得到多个目的节点集合。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
更新单元,用于根据节点聚合的聚合结果,更新所述目标有向拓扑图。
CN201610719498.6A 2016-08-24 2016-08-24 一种应用于有向拓扑图的节点聚合方法及装置 Active CN106161106B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610719498.6A CN106161106B (zh) 2016-08-24 2016-08-24 一种应用于有向拓扑图的节点聚合方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610719498.6A CN106161106B (zh) 2016-08-24 2016-08-24 一种应用于有向拓扑图的节点聚合方法及装置

Publications (2)

Publication Number Publication Date
CN106161106A CN106161106A (zh) 2016-11-23
CN106161106B true CN106161106B (zh) 2019-08-09

Family

ID=57343518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610719498.6A Active CN106161106B (zh) 2016-08-24 2016-08-24 一种应用于有向拓扑图的节点聚合方法及装置

Country Status (1)

Country Link
CN (1) CN106161106B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709189A (zh) * 2016-12-28 2017-05-24 中国水利水电科学研究院 一种水资源配置系统网络图的自查方法及装置
CN106897446A (zh) * 2017-03-02 2017-06-27 中国农业银行股份有限公司 一种数据流可视化方法及装置
CN109145178A (zh) * 2017-06-16 2019-01-04 阿里巴巴集团控股有限公司 一种关系图处理方法及装置
CN107171862A (zh) * 2017-06-29 2017-09-15 联想(北京)有限公司 设备集群的拓扑结构展示方法和系统
CN109840533B (zh) * 2017-11-28 2020-12-11 中国移动通信集团浙江有限公司 一种应用拓扑图识别方法及装置
CN109005117B (zh) * 2018-08-10 2020-12-15 迈普通信技术股份有限公司 网络拓扑的聚合方法、装置及sdn网络

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1601934A (zh) * 2004-10-15 2005-03-30 清华大学 波长路由光网络的一种分布式拓扑聚合方法
CN102014073A (zh) * 2010-12-22 2011-04-13 电子科技大学 一种多域光网拓扑的聚合方法
CN103863365A (zh) * 2014-03-21 2014-06-18 上海富欣智能交通控制有限公司 用有向图方法生成轨道交通线路拓扑图的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8588108B2 (en) * 2011-02-21 2013-11-19 Cisco Technology, Inc. Method and apparatus to trigger DAG reoptimization in a sensor network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1601934A (zh) * 2004-10-15 2005-03-30 清华大学 波长路由光网络的一种分布式拓扑聚合方法
CN102014073A (zh) * 2010-12-22 2011-04-13 电子科技大学 一种多域光网拓扑的聚合方法
CN103863365A (zh) * 2014-03-21 2014-06-18 上海富欣智能交通控制有限公司 用有向图方法生成轨道交通线路拓扑图的方法

Also Published As

Publication number Publication date
CN106161106A (zh) 2016-11-23

Similar Documents

Publication Publication Date Title
CN106161106B (zh) 一种应用于有向拓扑图的节点聚合方法及装置
CN102770845B (zh) 档案管理调度的优化
US8826032B1 (en) Systems and methods for network change discovery and host name resolution in storage network environments
US8626835B1 (en) Social identity clustering
CN106294713A (zh) 基于增量日志解析的数据同步方法和数据同步装置
CN106789303A (zh) 一种容器日志采集方法及装置
CN107229751A (zh) 一种面向流式数据的并行增量式关联规则挖掘方法
JP2018147261A (ja) モデル統合装置、モデル統合システム、方法およびプログラム
CN103067525A (zh) 一种基于特征码的云存储数据备份方法
EP3163446A1 (en) Data storage method and data storage management server
CN111767321B (zh) 节点关系网络的确定方法、装置、电子设备和存储介质
CN104573185A (zh) 高速列车技术指标的处理方法及装置
CN109799948A (zh) 一种数据存储方法及装置
JP4882498B2 (ja) 運用管理装置および運用管理方法ならびにプログラム
CN103117864B (zh) 一种子网合并的方法及装置
CN109741034B (zh) 一种网格树形组织管理方法及装置
CN111897604A (zh) 服务调用的调用数据处理方法及装置
CN107656796A (zh) 一种虚拟机冷迁移方法、系统及设备
CN107818113B (zh) 文件访问位置的确定方法及装置
CN104820682B (zh) 一种高速列车需求数据实例构建方法和装置
CN104778259A (zh) 一种高效的数据分析处理方法
CN105740054A (zh) 一种虚拟机管理方法及装置
CN109684588A (zh) 一种资产管理系统及方法
CA2702351A1 (en) Identifying universal resource locator rewriting rules
CN114118944A (zh) 一种取证实验室分级管理方法、终端设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant