一种基于gis的计算机网络地图的组织维护方法

文档序号:6369227阅读:190来源:国知局
专利名称:一种基于gis的计算机网络地图的组织维护方法
技术领域
本发明涉及地理信息系统(GIS)与网络管理系统的结合技术领域,特别是涉及一种基于GIS的计算机网络地图的组织维护方法,尤其是层次化网络GIS地图的组织维护方法。
GIS与网络管理系统的结合引入了一个需要解决的新的问题,即虚拟的网络拓扑与实际的GIS地图的结合。网络拓扑是网络组件的物理或逻辑分布形式,即网络节点(包括计算机、网络打印机、服务器等)在互通网络上的分布形式,GIS地图展现某一地域的地理位置信息,需要利用一定方法才能将二者的信息有效的统一在一张层次化网络GIS地图中。一种比较简单的实现方法是将整个网络的拓扑信息全部显示在一张GIS地图上,但是由于GIS地图显示平面大小及人眼视野范围有限,在网络对象较多时,显示效果不佳,并且在一张地图上显示大量对象严重影响系统性能。对于具有设备种类繁多、数量巨大、网络拓扑复杂等特点的大型计算机网络,需要考虑网络GIS地图的使用效果、性能和效率问题,因此需要适用的解决方法。


图1是一个计算机网络拓扑示意图;图2是本发明中层次化网络GIS地图示意图;图3是本发明中网络或节点标识的层次结构示意图;图4是本发明中展开网络地图示意图;图5是本发明中添加一条实际连接过程示意图;图6是本发明中删除一条实际连接过程示意图。
发明的实施方式首先给出层次化网络GIS地图的定义包括三个基本对象,节点,表示被管理网络设备,如主机、交换机、路由器等;网络,表示一组对象集合以及这些对象的互连,这些对象可以是节点,亦可以是网络;链路,链路表示节点或网络之间的连接;此外还有网络状态的定义。
定义1节点节点是三元组<I,L,S>,其中I是节点的标识;L表示节点在层次化地图中所处层次;S表明节点运行状态,详见定义9。
定义2网络网络是五元组<I,L,M,T,S>,其中I是网络的标识;L是网络在层次化地图中所处层次;M是网络相关的GIS地图,详见定义4;T是网络内各对象的互连拓扑信息集合,详见定义3;S是运行状态集,详见定义9。
定义3拓扑对于网络GIS地图中的一个网络而言,拓扑是四元组<Ns,Vs,Ei,Ex>,其中,Ns是网络内子网集合;Vs是网络内节点的集合;Ei是内部链路集合,Ex是外部链路集合,参见定义3-1、3-2。
定义3-1链路
链路为五元组<I,R,P1,P2,S>,其中,I是链路标识,R是链路的依赖参数,参见定义8,P1和P2是一条链路的两个端点,可以是网络或节点,S是链路状态,详见定义9。链路表示节点或网络之间的连接。
定义3-2内部链路集与外部链路集对于网络N的拓扑T而言,内部链路集为五元组集合{<I,R,P1,P2,S>|P1,P2∈T.Ns∪T.Vs}。外部链路集为五元组集合Ex={<I,R,P1,P2,S>|P1 T.Ns∪T.Vs,P2∈T.Ns∪T.Vs或者P2 T.Ns∪T.Vs,Pi∈T.Ns∪T.Vs}定义4网络相关GIS地图对于网络N,其相关GIS地图M是四元组<B1,N1,V1,E1>,其中B1是背景地层,存储网络所在的地理范围信息,如网络覆盖省市、街区的地理信息等,N1是子网图层,层存储网络内子网的分布信息;V1是节点图层,存储网络内节点的分布信息;E1是链路图层,存储网络内链路的分布信息。
定义4-1子网图层对于网络N的GIS地图M而言,子网图层是二元组集合{<I,LOC>| net∈N.T.Ns,I=net.I,LOC是net所在地理位置}定义4-2节点图层对于网络NET的GIS地图M而言,节点图层是二元组集合{<I,LOC>| node∈N.T.Vs,I=node.I,LOC是node所在地理位置}定义4-3链路图层对于网络N的GIS地图集M而言,链路图层是五元组集合{<I,I1,I2,LOC1,LOC2>| link∈N.T.Ei或N.T.Ex,I=link.I,I1=link.P1.I,I2=link.P2.I,LOC1、LOC2分别是link.P1和link.P2所在地理位置}
这里不定义B1图层的细节,而定义4-1,4-2,4-3也只是对N1,V1,E1三个图层应该包括的内容的抽象(当前实际的GIS系统均可以提供),这里不做进一步详细定义。
定义5父网络,祖先,子孙对于网络net1,net2,节点node1,如果net1∈net2.T.Ns,node1∈net2.T.Vs,则称net1为net2的子网络,node1为net2的子节点,net2为net1、node1的父网络,且net1.L=net2.L+1,node1.L=net2.L+1,记net2=f(net1)=f(node1);记f(f(...f(a)))=fn(a),且f0(a)=a,称fn(a)(n>1)为a的祖先,a为其子孙。对于链路link,如果link.P1或link.P2是网络net的子孙,则称链路link是网络net的子孙链路。
定义6层次化网络GIS地图层次化网络GIS地图是一个四元组<NO,Ln,ILEN,P>,其中NO是顶层网络,P是参数指标集(见定义9),Ln是网络分层(不包括顶层),ILEN是各层地图网络或节点标识有效位长度集合ILEN=<LEN1,LEN2,......,LENi,......,LENH.Ln>其中ΣiLENi=32,]]>且当i≤j,1≤i,j≤H.Ln时,LENi<LENj。
为适应层次化网络的组织,网络/节点ID的构成也是层次化的,如附图3每一级网络/节点都有一个ID长度,表明本级别的网络/节点对象ID的有效位数,除了顶级网络外,每一级网络/节点对象ID均以其父对象ID作为前缀。根据ID有效长度来计算掩码,可以方便地判别两个节点、网络之间在网络层次结构上的位置。
举例说明网络GIS地图,附图1是一个实际的网络拓扑,a-i是节点,附图2是对应于附图1中网络拓扑的层次化网络GIS地图,最顶层的顶级网络是整个网络的抽象;下一层是一组一级子网,表明整个网络在本层的抽象,如此类推。最底层的显示对象包括诸如主机、交换机、路由器等的网络设备和设备之间的实际链路;通过综合特定网络的GIS地图的四个图层(背景图层、节点图层、网络图层、链路图层),我们可以得到该网络的直观形象的网络地图,并且,特定的网络地图显示的信息与网络和抽象层次相关。这种层次化的实现方法减少了一张GIS地图需要显示的对象信息,可以改善系统的运行性能。
通过递归的网络定义,网络GIS地图实现了逐层向上的网络拓扑与状态信息汇聚。而在实际应用中,全局的详细的网络视图也是必不可少的,此时,需要在一张地图上展现网络具有一定详细程度的拓扑和状态信息。因此,我们在层次化网络模型的基础上定义展开网络,实现网络信息的解汇聚。
定义7展开网络对于层次化网络GIS地图H中的一个网络N,展开至层次le(N.L<le≤H.Ln)的展开网络Ne为六元组<I,L,le,M,T,S>,其中I=N.I,L=N.L,M,T,S的定义同定义2,且Ne.S=N.S;Ne.T.Ns={net|fn(net)=N,n=le-N.L};Ne.T.Vs={node|fn(node)=N,1≤n≤le-N.L};Ne.T.Ei={link| n∈Ne.T.Ns∪Ne.T.Vs,link∈f(n).T.Ei∪f(n).T.Ex,link.R=0,并且link.P1,link.P2∈Ne.T.Ns∪Ne.T.Vs};Ne.T.Ex={link| n∈Ne.T.Ns∪Ne.T.Vs,link∈f(n).T.Ex,link.P1(或ink.P2)=n,且link.p2(或ink.P1) Ne.T.Ns∪Ne.T.Vs};Ne.m.B1=N.M.B1;Ne.M.N1={<I,LOC>| net∈Ne.T.Ns,I=net.I,且<I,LOC>∈f(net).M.N1};Ne.M.V1={<I,LOC>| node∈Ne.T.Vs,I=node.I,<I,LOC>∈f(node).M.V1};Ne.M.E1={<I,I1,I2,LOC1,LOC2>| link∈Ne.T.Ei∪Ne.T.Ex,令link.p1∈Ne.T.Ns∪Ne.T.Vs,I=link.I,且<I,I1,I2,LOC1,LOC2>∈f(link.P1).M.E1}
下面举例说明展开网络的概念附图4是附图2中的网络1展开至第三层的展开网络地图。实际上附图3是通过展开网络1及其三层以上子孙网络得到的,显示了网络1在第三层的全部的拓扑信息。通过将网络逐层展开,可以得到网络越来越详细的信息,直至网络完全的拓扑与状态信息。
定义8实际链路,汇聚链路如果链路两个端点都是节点,则该链路称为实际链路,否则称该链路为汇聚链路。对于一条汇聚链路,两个端点之间以及端点的子孙之间的链路称为该汇聚链路的相关链路。汇聚链路的依赖参数R等于它的相关实际链路数,而实际链路的依赖参数R等于0。如果网络1的子孙节点与网络2的一个子节点间存在实际链路,有以下几种情况两个网络处于同一层次,则二者之间存在一条汇聚链路,如附图2中的网络1、2;如果两个网络处于不同层次,则低层网络与高层网络的子节点间存在汇聚链路,如附图2中的网络1、4。区分上述两种情况,是为了体现层次化的网络拓扑结构。此外,一个节点与一个网络之间,或两个网络之间最多只能有一条汇聚链路。
定义9网络/节点/链路状态给定参数指标向量P=<p1,......,pM>,其中pi表示一个网络运行状况的参数指标,如链路的延迟,丢包率等,1≤i≤M,节点/网络/链路的状态S定义如下S=<s1,......,sM>,其中,若pi对于本节点/网络/链路而言没有定义,则令si=-1,否则si表示以参数pi为衡量标准,节点/实际链路发生故障的程度0≤si≤1,si为0表示完全没有问题,为1表示确定出现故障,si越接近1,表明节点/网络/实际链路状态越接近发生故障,对于如何实现从参数pi到si的转换,可以根据实际需要选择算法,这里不做详细规定。
网络是一个抽象对象,它的状态应当是其所有节点、相关实际链路状态的汇聚,对于一个网络net,定义net.S.si=Agi(Sid),其中Sid={s| a,a∈X∪Y,s=a.S.si且s≠-1,其中X、Y分别是网络net的子孙节点集合、子孙实际链路集合},Ag是状态信息汇聚函数,用于计算汇聚状态信息,汇聚链路也是一个抽象对象,其状态也应该是与其相关的所有实际链路状态的汇聚,计算方法与上类似对于一个汇聚链路link,定义link.S.si=Agi(Sri),其中Sir={s| a,a∈Z,s=a.S.si且s≠-1,其中Z是汇聚链路link的相关实际链路集合}。
下面给出层次化网络GIS地图的组织,拓扑更新,状态更新算法说明(a)在算法描述中引入了C语言的一些操作,包括(1)op1<<n表示将操作数op1按二进制左移n位(2)~op表示将操作数按二进制位取反(3)op1 & op2表示将操作数op1与操作数op2按二进制位与(b)下列算法中用到常用数据结构FIFO队列Q,这里不做详细定义,现将相关操作说明如下AddTail(Q,n)将n加入到队列Q队尾。
GetHead(Q)将队列队头元素从队列中取出。
(c)对于以下算法提及的新ID的计算方法,本发明不做详细规定,但计算方法应当遵守定义6的规定。
首先是网络GIS地图的拓扑更新算法1.网络GIS地图中增加一个网络在层次化网络GIS地图H的网络f中添加一个子网络的步骤如下假设,子网络所在地理位置为loc,背景地层b1。
Step1.构造一个空的网络net,net.L←f.L+1。根据f.I以及H.ILEN计算得到子网络标识net.I,net.M.B1←b1。f.T.Ns←f.T.Ns∪{net}。f.M.N1←f.M.N1∪{<net.I,loc>}。
2.网络GIS地图中增加一个节点在层次化网络GIS地图H的网络f中添加一个节点的步骤如下假设,节点所在地理位置loc。
Step1.构造一个空的节点node,node.L←f.L+1。根据f.I以及H.ILEN计算得到node.I。f.T.Vs←f.T.Vs∪{node}。f.M.V1←f.M.V1∪{<node.I,loc>}。
3.网络GIS地图中增加一条实际链路如果链路的两个节点在网络层次结构中具有相同的父网络,则操作简单直接,否则操作会影响两节点的父网络甚至是祖先网络之间的汇聚链路的产生或状态更新。对上层网络汇聚链路的影响回溯至距离两个节点最近的共同祖先网络处终止。在层次化网络GIS地图H的网络f中增加一条实际链路的基本步骤如下步骤1在链路两端节点中处于较低层的节点的父网络GIS地图中添加实际链路;步骤2从步骤1中较低层的节点沿网络层次结构向上回溯,在其祖先网络中添加汇聚链路,直至与链路另一节点同层次的祖先网络;若相应汇聚链路已经存在,则只将其相关实际链路数加一;步骤3在步骤2基础上,沿网络层次结构向上回溯,分别在链路两端节点的祖先网络GIS地图中添加汇聚链路,直至离两节点最近的祖先网络处结束;若相应汇聚链路已经存在,则只将其相关实际链路数加一。
具体步骤如下假设链路两个端点为节点1(node1),节点2(node2),Step1.不失一般性,设node1.L≥node2.L,net1←f(node1),net2←f(node2)。
Step2.构造一条空实际链路link,为其分配新链路标识,且link.P1←node1,link.P2←node2,link.R←0。设node1,node2的地理位置分别为loc1,loc2。若net1=net2,net1.T.Ei←net1.T.Ei∪{link},net1.M.E1←net1.M.E1∪{<link.I,node1.I,node2.I,loc1,loc2>},转Step6;否则若node1.L=node2.L,则net1.T.Ex←net1.T.Ex∪{link},net1.M.E1←net1.M.E1∪{<link.I,node1.I,node2.I,loc1,loc2>},在net2地图中类似地添加实际链路(产生的实际链路的标识相同),令n2←net2,转Step4;若node1.L≠node2.L,只在net1中添加一条外部实际链路,令n2←node2,转Step3。
Step3.若net1.L=n2.L,则转Step4,否则,设f1←f(net1),若 link∈f1.T.Ex,且link.P1=net1(或n2),link.P2=n2(或net1),link.R←link.R+1,否则构造一条空汇聚链路alink,并为其分配新链路标识,且alink.R←1,alink.P1←net1,alink.P2←n2,f1.T.Ex←f1.T.Ex∪{alink};设net1,n2的地理位置分别为loc1,loc2,f1.M.E1←f1.M.E1∪{<alink.I,net1.I,n2.I,loc1,loc2>}。net1←f1,转Step3。
Step4.若f(net1)=f(n2),转Step5,否则用类似Step3的方法分别在f(net1),f(n2)中创建或更新net1到n2的汇聚链路。net1←f(net1),n2←f(n2),转Step4。
Step5用类似Step3中方法,在f(net1)中创建或更新net1至n2的汇聚链路。
Step6结束。
举个例子说明算法3的过程,如附图5,现要在节点a和节点b之间添加一条实际链路。第一步在网络3地图中添加一条a到b的实际链路;第二步在网络1地图中添加一条网络3到节点b的一条汇聚链路;第三步在网络2地图中添加一条节点b到网络3的汇聚链路;第四部在顶层网络地图中添加一条网络1到网络2的汇聚链路。
4.网络GIS地图中删除一条实际链路删除一条实际链路,可能会影响链路端节点的父网络甚至是祖先网络之间的汇聚链路,但这种影响在两个节点最近的共同祖先网络处终止。如果汇聚链路所依赖的所有实际链路都被删除,则要彻底将其从地图中删除,基本步骤如下步骤1在链路两端节点中处于较低层的节点的父网络GIS地图中删除实际链路;步骤2从步骤1中较低层的节点沿网络层次结构向上回溯,在其祖先网络中删除至另一节点的汇聚链路,直至与另一节点同层次的祖先网络处结束;若该汇聚链路的相关实际链路数大于1,则只将其减一,而不从地图中删除汇聚链路;步骤3在步骤2基础上,沿网络层次结构向上回溯,分别在链路两端节点的祖先网络GIS地图中删除相关汇聚链路,直至离两节点最近的祖先网络处结束;若该汇聚链路的相关实际链路数大于1,则只将其减一,而不从地图中删除汇聚链路。
具体步骤如下设删除层次化网络地图H中节点1(node1),节点2(node2)之间的链路标识为I的一条实际链路。
Step1.若f(node1)=f(node2), link∈f(node1).T.Ei,link.I=I,令f(node1).T.Ei←f(node1).T.Ei-{link}; gislink∈f(node1).M.E1,gislink.I=I,令f(node1).M.El←f(node1).M.E1-{gislink},转Step6,否则 link∈f(node1).T.Ex,link.I=I,令f(node1).T.Ex←f(node1).T.Ex-{link}; gislink∈f(node1).M.E1,gislink.I=I,令f(node1).M.E1←f(node1).M.E1-{gislink},Step2。
Step2.若node1.L=node2.L,则用类似Step1种的方法从f(node2)中删除标识为I的实际链路,并且n1←f(node1),n2←f(node2),转Step4。否则,不失一般性,设node1.L>node2.L,n1←f(node1),n2←node2。
Step3.若n1.L=n2.L,转Step4,否则,设f1←f(n1),则 link∈f1.T.Ex且link.P1=n1(或n2),link.P2=n2(或n1),若link.R>1,link.R←link.R-1,否则f1.T.Ex←f1.T.Ex-{link},并且 g1∈f1.M.E1,g1.I=link.I,f1.M.E1←f1.M.E1-{g1}。n1←f(n1)。转Step3。
Step4.若f(n1)=f(n2),则转Step5,否则,类似Step3分别在f(n1),f(n2)中删除或更新相关汇聚链路。n2←f(n2),f2←f(n2),转Step4。
Step5.类似Step3,在f(n1)中删除或更新相关汇聚链路。
Step6.结束。
举个例子说明算法4的过程,如附图6,现要删除节点f和节点d之间的一条实际链路。第一步在网络3地图中删除f到d的实际链路;第二步在网络2地图中删除网络3到节点d的汇聚链路;第三步在网络1地图中删除节点d到网络3的汇聚链路;第四部在顶层网络地图中删除网络1到网络2的汇聚链路。
5.网络GIS地图中删除一条汇聚链路删除一条汇聚链路,必须删除与此链路相关的所有低层汇聚链路和实际链路,并且删除或更新其端点祖先网络之间的汇聚链路。基本步骤如下步骤1从汇聚链路两端点,分别沿网络层次结构向下扫描,删除两端点的子孙之间的所有汇聚链路和实际链路,直至删除的实际链路数目等于汇聚链路的相关实际链路数;
步骤2从汇聚链路两端点,分别沿网络层次结构向上回溯,删除两端点的祖先网络之间的汇聚链路,直至离被删汇聚链路两端点最近的共同祖先网络处结束;如果该汇聚链路的相关实际链路数大于被删汇聚链路的相关实际链路数,则只更新该汇聚链路的相关实际链路数,而不从地图中将其删除。
具体步骤如下设删除层次化网络地图H中p1,p2之间的汇聚链路,其中p1,p2中至少有一个是网络。
Step1.设ref←汇聚链路的相关链路数R。调用子算法5-1或5-2删除汇聚链路的低层的相关链路。不失一般性,设p1.L≥p2.L。
Step2.若p1.L=p2.L,转Step3,否则,设f1←f(p1)。 link∈f1.T.Ex且link.P1=p1(或p2),link.P2=p2(或p1)。link.R←link.R-ref,如果link.R=0,f1.T.Ex←f1.T.Ex-{link},且 gislink∈f1.M.E1,gislink.I=link.I,f1.M.E1←f1.M.E1-{gislink}。p1←f1,转Step2。
Step3.若f(p1)=f(p2),则转Step4,否则用类似Step2.的方法,分别在f(p1)和f(p2)中删除两端点为p1和p2的汇聚链路。p1←f(p1),p2←f(p2),转Step3。
Step4.用类似Step2.的方法,在f(p1)中删除两端点为p1和p2的汇聚链路。
Step5.结束。
5-1.汇聚链路的相关链路删除算法-端点p1为节点,端点p2为网络本算法从端点之一的网络开始逐层向下,删除每一层相关的汇聚链路或实际链路。
Step1.设Q为一队列,AddTail(Q,p2),r←refStep2.若IsEmpty(Q)或r=0,转Step3,否则,net←GetHead(Q),link∈net.T.Ex,link.P1(或link.P2)=node1(不妨设link.P1=p1)net.T.Ex←net.T.Ex-{link}。若link.R=0,则r←r-1,否则AddTail(Q,link.P2); g1∈net.M.E1,gislink.I=link.I,net.M.E1←net.M.E1-{g1}。转Step2。
Step3.结束。
5-2.汇聚链路的相关链路删除算法-端点p1、p2均为网络分别从两个网络开始,逐层向下删除以这两个网络子孙网络或节点为两个端点的汇聚链路或实际链路。
Step1.分别根据net1.L及net2.L在H.ILEN中查得p1和p2的标识长度id_len1和id_len2,计算掩码如下mask1←~(1<<(32-id_len1)-1),mask2←~(1<<(32-id_len2)-1)。设Q为一队列,AddTail(Q,p1),r←ref。
Step2.若IsEmpty(Q)或r=0,则AddTail(Q,p2),r←ref,转Step3,否则net←GetHead(Q),link∈net.T.Ex且link.p1.I & mask2=p2.I或者link.P2.I & mask2=p2.I(不妨设为link.P1)net.T.Ex←net.T.Ex-{link},若link.R=0,r←r-1,否则AddTail(Q,link.P2); g1∈net.M.E1,g1.I=link.I,net.M.El←net.M.E1-{g1},转Step2。
Step3.若IsEmpty(Q)或r=0转Step4,否则net←GetHead(Q),link∈net.T.Ex且link.P1.I & mask1=p1.I或者link.P2.I & mask1=p1.I(不妨设为link.P1)net.T.Ex←net.T.Ex-{link},若link.R=0,r←r-1,否则AddTail(Q,link.P2); g1∈net.M.E1,gislink.I=link.I,net.M.E1←net.M.E1-{g1},转Step3。
Step4.结束。
6.网络GIS地图中删除一个节点删除一个节点,必须删除以该节点为端点的所有链路,具体步骤如下假设删除层次化网络地图H中的节点node。
Step1.令net←f(node),link∈net.T.Ei∪net.T.Ex且link.P1=node或link.P2=node,调用算法5或算法6删除链路link。
Step2.net.T.Vs←net.T.Vs-{node}, gisnode∈net.M.V1,且gisnode.I=node.I,net.M.V1←net.M.V1-{gisnode}。
Step3.结束7.网络GIS地图中删除一个网络因为网络的内部链路被删除不会影响H中其他网络,只有删除了以待删网络为一端点的外部链路,才会对H中其他网络拓扑有影响,因此本算法中,首先删除以待删网络为一端点的所有外部链路,然后逐层删除其所有子孙网络。具体步骤如下假设删除层次化网络地图H中的网络net。
Step1.令f←f(net),link∈f.T.Ei∪f.T.Ex且link.P1=net或者link.P2=net,调用算法6删除link。
Step2. f.T.Ns←f.T.Ns-{net}, gisnet∈f.M.N1且gisnet.I=net.I,f.M.N1←f.M.N1-{gisnet}。设Q为一空队列,AddTail(Q,net)。
Step3.如果Q为空队列,转Step5,否则Step4。
Step4.headnet←GetHead(Q),subnet∈headnet.T.Ns,AddTail(Q,subnet)。删除headnet,转Step3.
Step5..结束下面是网络GIS地图组织算法8.网络GIS地图的生成网络GIS地图的生成步骤如下Step1.根据管理需要,构造网络层次结构。所谓网络层次结构,是对网络实际拓扑的一种层次化的抽象。层次结构是一棵树,树根是整个网络的抽象代表,树中每一个非叶子中间节点是一个抽象的网络,每一个叶子节点代表是实际网络拓扑中的节点。
Step2.构造一个空的网络GIS地图H,根据网络层次结构初始化H。
Step3.根据算法1,2逐一将网络层次结构中的网络,节点添加到H中。
Step4.根据算法3,逐一将网络节点连接拓扑中的实际链路添加到H中。
Step5.结束下面是网络GIS地图状态更新算法9.展开网络生成算法一种层次化网络GIS地图中网络拓扑和运行状态解汇聚方法-展开网络,其特征在于,展开网络表示了特定网络在网络层次结构中特定层次的全部拓扑细节和运行状态细节。
从被展开网络开始,逐层向下直到指定的展开层次遍历其子孙网络。遍历过程将被遍历网络中的所有节点的拓扑和地理信息复制到展开网络中;将被遍历网络中的所有实际链路的拓扑和地理信息复制到展开网络中;在最后一层,将所有网络的拓扑和地理信息复制到展开网络中,并且将所有汇聚链路的拓扑和地理信息也复制到展开网络中。基本步骤如下步骤1从被展开网络开始,逐层向下直到指定的展开层次遍历其子孙网络。
步骤2在遍历过程遇到的非指定层次网络将其中的所有节点信息复制到展开网络GIS地图中;将其中的所有实际链路信息复制到展开网络GIS地图中;
步骤3在遍历过程遇到的指定层次网络将其所有的节点、子网络、链路信息复制到展开网络的GIS地图中。
具体步骤如下假设展开层次化网络GIS地图H中的网络net至层次le,(net.L<le≤H.Ln)。
Step1.构造一个空的展开网络exnet。设Q为一空队列,AddTail(Q,net)。根据net.L在H.IDLEN中查得net.I长度id_len,计算掩码mask←~(1<<(32-id_len)-1)Step2.如果Q为空队列,则转Step7,否则Step3。
Step3 net1←GetHead(Q)。如果net1.L=le-1转Step6,否则Step4。
Step4.(1)exnet.T.Vs←exnet.T.Vs∪net1.T.Vs,且exnet.M.V1←exnet.M.V1∪net1.M.V1;(2)link∈net1.T.Ei且link.R=0,exnet.T.Ei←exnet.T.Ei∪{link}。link∈net1.T.Ex且link.R=0,link.P1.I & mask=net.I,link.P2.I & mask=net.I,且link exnet.T.Ei,exnet.T.Ei←exnet.T.Ei∪{link};(3)link∈net1.T.Ex且link.R=0,link.P1.I & mask≠net.I或者link.P2.I &mask≠net.I,exnet.T.Ex←exnet.T.Ex∪{link}。对于上述link, g1∈net1.M.E1且g1.I=link.I,令exnet.M.E1←exnet.M.E1∪{g1}。
Step5.subnet∈net1.T.Ns,AddTail(Q,subnet)。转Step2。
Step6.(1)exnet.T.Ns←exnet.T.Ns∪net1.T.Ns,且exnet.M.Nl←exnet.M.N1∪net1.M.N1;(2)exnet.T.Vs←exnet.T.Vs∪net1.T.Vs,且exnet.M.V1←exnet.M.V1∪net1.exnet.M.V1;(3)link∈net1.T.Ei且link exnet.T.Ei,exnet.T.Ei←exnet.T.Ei∪{link};link∈net1.T.Ex且link.P1.I & mask=net.I,link.P2.I &mask=net.I,link exnet.T.Ei,令exnet.T.Ei←exnet.T.Ei∪{link};link∈net1.T.Ex且link.p1.I & mask≠net.I或者link.P2.I & mask≠net.I,exnet.T.Ex←exnet.T.Ex∪{link}。对于上述link, g1∈net1.M.E1且g1.I=link.I,exnet.M.E1←exnet.M.E1∪{g1}。转Step2。
Step7.结束10.节点状态信息更新算法首先,更新节点自身状态,然后逐层向上更新父网络和祖先网络状态。基本步骤如下步骤1更新节点自身运行状态;步骤2从节点开始,沿网络层次结构向上回溯,更新祖先网络运行状态,直至网络GIS地图中的顶层网络处结束。
具体步骤如下假设层次化网络GIS地图中,节点node的状态发生了变化,Step1.更新节点node状态。f←f(node)Step2.更新网络f的状态,如果f≠H.NO,f←f(f),转Step2,否则Step3Step3.结束11.实际链路状态信息更新算法首先,更新链路自身状态,然后逐层向上更新相关汇聚链路状态及父网络和祖先网络状态。基本步骤如下步骤1更新实际链路自身运行状态;步骤2从实际链路的两个端节点开始,沿网络层次结构向上回溯,更新祖先网络及相应汇聚链路运行状态,直至网络GIS地图中的顶层网络处结束。
具体步骤如下假设层次化网络GIS地图中,链路link的状态发生了变化,
Step1.令f1←f(link.P1),f1←f(link.P2),p1←link.P1,p2←link.P2,不妨设p1.L≥p2.LStep2.若p1.L=p2.L,则转Step4,否则Step3。
Step3. link1∈f1.T.Ex,link1.P1=p1(p2)且link1.P2=p2(p1),更新link1状态。更新f1状态,p1←f1,f1←f(f1),转Step3。
Step4若f1=f2,转Step8,否则Step5。
Step5.则根据上述算法3, alink∈f1.T.Ex,alink.P1=p1(p2)且alink.P2=p2(p1),更新alink状态。更新f1状态。
Step6.则根据上述算法3, alink∈f2.T.Ex,alink.P1=p2(p1)且alink.P2=p1(p2),更新alink状态。更新f2状态。
Step7.p1←f1,f1←f(f1),p2←f2,f2←f(f2),转Step4。
Step8.根据上述算法3, alinkef1.T.Ei,alink.P1=p1(或p2)且alink.P2=p2(或p1),更新alink状态。更新f1状态Step9.若f1=H.NO,则转Step10,否则f1←f(f1),更新f1状态。转Step9。
Step10.结束
权利要求
1.一种层次化网络GIS地图组织方法,其特征在于,具体步骤如下步骤1按照管理需要,构造网络的层次结构;步骤2对于层次结构中每一个网络,构造相关GIS地图,其中包括四个图层背景图层,子网络图层,节点图层,链路图层,显示网络内可见的拓扑信息;步骤3针对网络连接拓扑中每一条节点之间的连接,在层次化网络GIS地图中添加相应实际链路,并维护实际链路与上层汇聚链路一致性,即如果两个网络的子孙节点间存在实际链路,则这两个网络之间有一条汇聚链路,其相关实际链路数等于子孙节点之间的所有实际链路总数;如果两个网络的子孙节点间不存在任何实际链路,则两个网络之间没有汇聚链路。
2.根据权利要求1方法,其特征在于步骤3所述的层次网络GIS地图中实际链路添加方法,具体步骤如下步骤1在链路两端节点中处于较低层的节点的父网络GIS地图中添加实际链路;步骤2从步骤1中较低层的节点沿网络层次结构向上回溯,在其祖先网络中添加汇聚链路,直至与链路另一节点同层次的祖先网络;若相应汇聚链路已经存在,则只将其相关实际链路数加一;步骤3在步骤2基础上,沿网络层次结构向上回溯,分别在链路两端节点的祖先网络GIS地图中添加汇聚链路,直至离两节点最近的祖先网络处结束;若相应汇聚链路已经存在,则只将其相关实际链路数加一。
3.一种层次化网络GIS地图中实际链路的删除方法,其特征在于,自动维护上层汇聚链路的一致性,具体步骤如下步骤1在链路两端节点中处于较低层的节点的父网络GIS地图中删除实际链路;步骤2从步骤1中较低层的节点沿网络层次结构向上回溯,在其祖先网络中删除至另一节点的汇聚链路,直至与另一节点同层次的祖先网络处结束;若该汇聚链路的相关实际链路数大于1,则只将其减一,而不从地图中删除汇聚链路。步骤3在步骤2基础上,沿网络层次结构向上回溯,分别在链路两端节点的祖先网络GIS地图中删除相关汇聚链路,直至离两节点最近的祖先网络处结束;若该汇聚链路的相关实际链路数大于1,则只将其减一,而不从地图中删除汇聚链路。
4.一种层次化网络GIS地图中汇聚链路的删除方法,其特征在于,自动维护网络GIS地图中实际链路与汇聚链路之间关系的一致性,具体步骤如下步骤1从汇聚链路两端点,分别沿网络层次结构向下扫描,删除两端点的子孙之间的所有汇聚链路和实际链路,直至删除的实际链路数目等于汇聚链路的相关实际链路数;步骤2从汇聚链路两端点,分别沿网络层次结构向上回溯,删除两端点的祖先网络之间的汇聚链路,直至离被删汇聚链路两端点最近的共同祖先网络处结束;如果该汇聚链路的相关实际链路数大于被删汇聚链路的相关实际链路数,则只更新该汇聚链路的相关实际链路数,而不从地图中将其删除。
5.一种层次化网络GIS地图中网络运行信息表示与汇聚的通用方法,其特征在于给定参数指标向量P=<p1,......,pM>,其中pi表示一个网络运行状况的参数指标,1≤i≤M,节点/网络/链路的状态S定义如下S=<s1,......,sM>,其中,若pi对于本节点/网络/链路而言没有定义,则令si=-1,否则si表示以参数pi为衡量标准,节点/实际链路发生故障的程度0≤si≤1,si为0表示完全没有问题,为1表示确定出现故障,si越接近1,表明节点/网络/实际链路状态越接近发生故障,对于如何实现从参数pi到si的转换,可以根据实际需要选择算法,网络是一个抽象对象,它的状态应当是其所有节点、相关实际链路状态的汇聚,对于一个网络net,定义net.S.si=Agi(Sdi),其中Sdi={s| a,a∈X∪Y,s=a.S.si且s≠-1,其中X、Y分别是网络net的子孙节点集合、子孙实际链路集合},Ag是状态信息汇聚函数,用于计算汇聚状态信息可以根据实际需要选择算法,汇聚链路也是一个抽象对象,其状态也应该是与其相关的所有实际链路状态的汇聚,计算方法与上类似对于一个汇聚链路link,定义link.S.si=Agi(Sri),其中Sri={s| a,a∈Z,s=a.S.si且s≠-1,其中Z是汇聚链路link的相关实际链路集合}。
6.一种层次化网络GIS地图中节点运行状态更新方法,其特征在于,自动逐层向上更新高层祖先网络运行状态,具体步骤如下步骤1更新节点自身运行状态;步骤2从节点开始,沿网络层次结构向上回溯,更新祖先网络运行状态,直至网络GIS地图中的顶层网络处结束。
7.一种层次化网络GIS地图中实际链路运行状态更新方法,其特征在于,自动逐层向上更新高层祖先网络及相应汇聚链路运行状态,具体步骤如下步骤1更新实际链路自身运行状态;步骤2从实际链路的两个端节点开始,沿网络层次结构向上回溯,更新祖先网络及相应汇聚链路运行状态,直至网络GIS地图中的顶层网络处结束。
8.一种层次化网络GIS地图中网络拓扑和运行状态解汇聚方法-展开网络,其特征在于,展开网络表示了特定网络在网络层次结构中特定层次的全部拓扑细节和运行状态细节。
9.根据权利要求8中的展开网络方法,其特征在于,展开网络的生成步骤如下步骤1从被展开网络开始,逐层向下直到指定的展开层次遍历其子孙网络;步骤2在遍历过程遇到的非指定层次网络将其中的所有节点信息复制到展开网络GIS地图中;将其中的所有实际链路信息复制到展开网络GIS地图中;步骤3在遍历过程遇到的指定层次网络将其所有的节点、子网络、链路信息复制到展开网络的GIS地图中。
全文摘要
本发明涉及一种层次化计算机网络GIS地图的组织方法,包括步骤步骤1按照网络实际情况和管理需要,构造网络的层次结构;步骤2对于层次结构中每一个网络,构造相关GIS地图;步骤3针对网络拓扑中每一条连接,在层次化网络GIS地图中添加相应实际链路,并维护实际链路与上层汇聚链路一致性;层次化网络GIS地图提供了层次化的网络拓扑和状态信息的汇聚与解汇聚的方法,本发明给出了层次化网络GIS地图的拓扑更新、状态更新算法,自动维护网络GIS地图的拓扑的一致性和状态的一致性。本发明可广泛应用于计算机网络管理系统和网络监测系统。同时,将本发明提出的模型推而广之,可以应用于无线通讯、运输管理等领域。
文档编号G06F15/16GK1474297SQ0314514
公开日2004年2月11日 申请日期2003年6月18日 优先权日2003年6月18日
发明者王恺, 杨峰, 王 恺 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1