拓扑适配方法及装置 【技术领域】
本发明涉及通信领域, 具体而言, 涉及一种拓扑适配方法及装置。背景技术
随着通信设备开发和应用范围越来越广, 对于通信设备拓扑的使用要求越来越 高, 因此拓扑适配技术的发展也越来越迫切。但目前对于拓扑适配技术具体实现方法语焉 不详或者实现方法可执行性不高。专利 CN200910172067.2 中介绍了一种用于自动化测试 的拓扑适配方法, 根据物理拓扑的结构和逻辑拓扑的结构, 构造物理拓扑矩阵和逻辑拓扑 矩阵 ; 根据所述物理拓扑矩阵和所述逻辑拓扑矩阵中各元素的值的大小关系以及所述各元 素的类型的一致性, 适配所述物理拓扑和所述逻辑拓扑 ; 适配成功, 输出适配结果。该专利 提供了基础了适配思路, 但是对于具体的适配过程没有给出详细的计算方法。 另外, 该专利 提供的方法忽略了拓扑的一些属性, 如设备类型, 设备软件版本, 端口光电模式, 端口速率 等。忽略这些属性匹配出的拓扑并不一定能满足实际需求。发明内容
本发明的主要目的在于提供一种拓扑适配方法及装置, 以至少解决上述问题之一。 根据本发明的一个方面, 提供了一种拓扑适配方法, 包括 : 获取可用的物理拓扑和 需要匹配的逻辑拓扑的拓扑信息, 其中, 拓扑信息包括 : 设备属性、 端口属性和设备间连接 关系 ; 采用拓扑信息对物理拓扑和逻辑拓扑进行匹配 ; 输出物理拓扑和逻辑拓扑的匹配结 果。
根据本发明的另一个方面, 提供了一种拓扑适配装置, 包括 : 拓扑输入模块, 用于 获取可用的物理拓扑和需要匹配的逻辑拓扑的拓扑信息, 其中, 拓扑信息包括 : 设备属性、 端口属性和设备间连接关系 ; 拓扑匹配模块, 用于采用上述拓扑信息对物理拓扑和逻辑拓 扑进行匹配 ; 拓扑输出模块, 用于输出上述物理拓扑和逻辑拓扑的匹配结果。
通过本发明, 在拓扑适配中添加了必要的拓扑属性并提供了对应的算法, 解决了 现有拓扑适配过程中忽略了一些拓扑属性的问题, 进而达到了提高实际应用中拓扑适配准 确率的效果。
附图说明 此处所说明的附图用来提供对本发明的进一步理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。在附图中 :
图 1 是根据本发明实施例的拓扑适配方法的流程图 ;
图 2 是根据本发明优选实施例的拓扑适配方法的流程图 ;
图 3 是根据本发明实例的拓扑适配方法的流程图 ;
图 4 是根据本发明实例的物理拓扑的结构示意图 ;
图 5 是根据本发明实例的逻辑拓扑的结构示意图 ; 图 6 是根据本发明实例的逻辑拓扑设备邻接关系图 ; 图 7 是根据本发明实例的物理拓扑设备邻接关系图 ; 图 8 是根据本发明实例的端口连接关系图 ; 图 9 是根据本发明实例的设备类、 端口类、 拓扑类定义结构示意图 ; 图 10 是根据本发明实施例的拓扑适配装置的结构示意图。具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是, 在不冲突的 情况下, 本申请中的实施例及实施例中的特征可以相互组合。
图 1 是根据本发明实施例的拓扑适配方法的流程图。如图 1 所示, 根据本发明实 施例的拓扑适配方法包括 :
步骤 S102, 获取可用的物理拓扑和需要匹配的逻辑拓扑的拓扑信息, 其中, 拓扑信 息包括 : 设备属性、 端口属性和设备间连接关系。
步骤 S104, 采用上述拓扑信息对物理拓扑和逻辑拓扑进行匹配。
步骤 S106, 输出上述物理拓扑和逻辑拓扑的匹配结果。
上述方法在进行拓扑适配时, 充分考虑到了拓扑属性的作用, 从而大大提高了拓 扑适配的准确率, 保证了可以在现有物理拓扑环境中准确寻找到符合逻辑拓扑详细描述的 拓扑环境。
优选地, 如图 2 所示, 步骤 S202( 相当于步骤 S102), 在获取到物理拓扑和逻辑拓扑 的拓扑信息后, 还可以进一步包括 :
步骤 S204, 以定义类方式处理上述拓扑信息, 其中, 上述定义类包括 : 设备类、 端 口类和拓扑类。
优选地, 在步骤 S204 中, 上述设备类可以进一步包括以下至少之一 : 设备类型、 设 备端口列表、 设备连接地址、 设备逻辑名、 设备预留字段、 设备扩展属性字段 ; 上述端口类可 以进一步包括以下至少之一 : 端口媒介类型、 端口速率、 端口物理接口、 端口逻辑接口、 端口 所属设备、 端口预留字段、 设备扩展属性字段 ; 上述拓扑类可以进一步以包括下至少之一 : 设备对象列表、 拓扑扩展属性字段、 拓扑优先级。
获取到当请可用的物理拓扑和需要匹配的逻辑拓扑的拓扑信息后, 可以按照上述 定义类对其进行分类处理, 以便于后续匹配过程的进行。
优选地, 如图 2 所示, 步骤 S104 还可以进一步包括 :
步骤 S206, 整理上述拓扑信息, 判断物理拓扑是否能够满足整个逻辑拓扑的需求, 如果不能则匹配失败。
步骤 S208, 如果能够满足则逐个对逻辑拓扑中的逻辑设备进行物理设备匹配。
步骤 S210, 判断逻辑拓扑中是否存在未匹配过的逻辑设备, 如果是则返回步骤 S208, 逐个对上述未匹配过的逻辑设备进行物理设备匹配, 否则输出匹配结果。
在进行匹配时, 首先需要判断可用的物理拓扑是否可以整体上满足逻辑拓扑的需 求, 在得到肯定的结果之后在开始对逐个设备进行匹配, 这种做法在很大程度上提高了匹 配的效率, 在最后判断是否还有未进行匹配的逻辑拓扑设备, 有则继续进行步骤 S208 对其进行匹配, 没有则说明匹配完成输出最终的匹配结果。
优选地, 如图 3 所示, 步骤 S206 可以进一步包括 :
步骤 S304, 分别生成物理拓扑和逻辑拓扑的用于描述各个设备之间的连接关系的 设备邻接矩阵。
步骤 S306, 分别对物理拓扑和逻辑拓扑中的设备进行排序, 针对每种设备类型生 成一个设备优先队列。
步骤 S308, 判断逻辑拓扑中的各设备类型的设备数是否大于物理拓扑中该设备类 型的设备数, 如果大于则拓扑适配失败, 如果小于或等于, 则执行步骤 S310( 相当于图 2 中 步骤 S208)。
对拓扑信息的整理包括两方面, 一为分别生成物理拓扑和逻辑拓扑的设备邻接矩 阵, 二为分别对物理拓扑和逻辑拓扑中的设备进行排序, 针对每种设备类型生成一个设备 优先队列, 设备邻接矩阵和设备优先队列在后续匹配过程中起到很重要的作用。 最后, 可进 行一次最初的匹配判断, 即判断逻辑拓扑中的各设备类型的设备数是否大于物理拓扑中该 设备类型的设备数, 当逻辑拓扑中的某种设备类型的设备数大于物理拓扑中该设备类型的 设备数, 那么匹配一定会失败的, 就没有必要进行后续的步骤了。
优选地, 步骤 S306, 分别对物理拓扑和逻辑拓扑中的设备进行排序可以进一步包括: (1) 分别把物理拓扑和逻辑拓扑中的设备类型按照设备类型对应的设备数由少到 多, 端口数由多到少进行排序。
(2) 对于设备数和端口数相同的设备类型, 进行随机排序。
根据上述策略对物理拓扑和逻辑拓扑中的设备进行排序得到的设备优先队列最 为合理, 有利于后续匹配过程顺利、 快速的进行。
优选地, 如图 3 所示, 步骤 S208 可以进一步包括 :
步骤 S310, 在逻辑拓扑设备优先队列中挑取一个设备对象。
步骤 S312, 判断物理拓扑中的该设备类型的设备优先队列中是否还有未被选取过 的物理设备, 如果否, 则执行回溯机制。
步骤 S314, 如果是, 则在物理拓扑中的该设备类型的设备优先队列中选取一个物 理设备。
步骤 S316, 判断该逻辑设备端口数是否大于该物理设备端口数, 如果大于, 则拓扑 适配失败退出。
步骤 S318, 如果小于或等于, 则根据设备邻接关系, 判断该物理设备和之前已完成 匹配的物理设备之间的连接数是否和逻辑拓扑中对应的两台设备之间的连接关系相同, 如 果不同, 则返回步骤 S312。
步骤 S320, 如果相同, 则判断有所述连接关系的端口的属性是否一致, 如果不一致 则返回步骤 S312。
步骤 S322, 如果一致, 则保存该逻辑设备和该物理设备之间的对应关系。
优选地, 如图 3 所示, 步骤 S312 中的回溯机制进一步包括 :
步骤 S330, 回退到上一个逻辑设备匹配环节, 即在逻辑拓扑的一种设备类型对应 的设备优先队列中选取下一个逻辑设备。
步骤 S332, 判断是否已经回退到匹配初始状态, 如果是则拓扑匹配失败。
步骤 S334, 否则, 判断是否还有未被选取过、 并且设备数和端口数与该逻辑设备匹 配的物理设备, 如果否则返回步骤 S330。
步骤 S336, 如果是, 则标记已选取过的物理设备不再选取。
步骤 S338, 选取未被选取过、 并且类型和端口数和该逻辑设备匹配的下一个物理 设备, 返回步骤 S318。
通过上述匹配算法, 即可在充分地利用各种拓扑属性, 准确的对每一个逻辑拓扑 设备进行匹配。
优选地, 如图 2( 图 3) 所示, 步骤 S106 可以进一步包括 :
步骤 S212( 相当于步骤 S326), 根据全部逻辑与物理设备之间的对应关系, 记录逻 辑与物理拓扑定义的设备、 端口和拓扑类属性值。
步骤 S214( 相当于步骤 S328), 根据设备、 端口和拓扑类属性值之间的对应关系生 成匹配结果并输出。
最终需要将各个逻辑拓扑设备的匹配结果进行汇总和整理, 然后生成最后的拓扑 匹配结果。 图 3 是根据本发明实例的拓扑适配方法的流程图。下面结合图 3 对上述优选实施 例进行详细说明, 如图 3 所示, 根据本发明优选拓扑适配方法的测试脚本的生成方法包括 :
步骤 S302 : 根据图形化界面输入的物理拓扑和逻辑拓扑信息, 如图 4、 图5所 示, 分别定义物理拓扑和逻辑拓扑的设备类、 端口类和拓扑类。其中设备类包括设备类型 DevType, 设备端口列表 Ports, 设备连接地址 DevPhy, 设备逻辑名 DevLgc, 设备预留字段 DevAtts。 端口类包括端口媒介类型 MediaType, 端口速率 Speed, 端口物理接口 PortPhy, 端 口逻辑接口 PortLgc, 端口所属设备 Device, 端口预留字段 PortAtts。 拓扑类包括了设备类 和端口类, 以及拓扑预留字段, 描述该拓扑中各个设备对象和端口对象, 以及拓扑的一些属 性, 如拓扑优先级。
步骤 S304 : 分别生成物理拓扑和逻辑拓扑的设备邻接矩阵, 如图 6、 图 7 所示, 用于 描述各个设备之间的连接关系 ;
步骤 S306 : 分别把物理拓扑和逻辑拓扑中的设备按照设备类型对应的设备数由 少到多, 端口数由多到少的策略进行排序, 对于设备数和端口数相同的设备类型采取随机 顺序 ( 该随机顺序在某些情况下可能会影响拓扑适配速率, 对于适配结果也有一定影响, 但不影响拓扑适配的准确性 ), 每种设备类型都生成一个设备优先队列。 因此该步骤将生成 多个物理设备优先队列和多个逻辑设备优先队列 ;
步骤 S308 : 判断逻辑拓扑中该类型设备数是否大于物理拓扑中某类型设备数。如 果大于, 则说明物理拓扑无法满足逻辑拓扑需求, 拓扑适配失败, 退出该装置 ; 如果小于等 于, 则说明物理拓扑有可能满足逻辑拓扑需求 ;
步骤 S310 : 在逻辑拓扑中设备类型中设备数较少的设备优先队列中选取一个逻 辑拓扑设备对象 ;
步骤 S312 : 判断对应的物理拓扑中的该设备类型的设备优先队列中是否还有未 被选取过的物理设备对象 ; 如果有, 则继续往下执行步骤 S314 ; 如果没有, 则需要进行回溯 机制, 详见步骤 S330-S338 描述的内容 ;
步骤 S314 : 在物理拓扑中的该设备类型的设备优先队列中选取一个物理拓扑设 备对象 ;
步骤 S316 : 判断逻辑设备端口数是否大于物理设备端口数 ; 如果大于, 则说明该 设备类型的物理设备都不符合逻辑设备的需求, 适配失败, 退出。
步骤 S318 : 从设备邻接关系中判断该物理设备和之前已完成匹配的物理设备之 间的连接数是否和逻辑拓扑中对应的两台设备之间的连接关系相同, 如图 8 所示 ; 如果不 同, 则返回步骤 S312, 试图继续选取物理拓扑中该设备类型的下一个物理设备对象 ; 如果 相同, 则进入步骤 S320 ;
步骤 S320 : 进一步判断有连接关系的端口对象的属性是否一致, 如端口介质类 型, 端口速率等。 此时需要参考逻辑拓扑和物理拓扑的端口连接关系图, 对照邻接关系查看 各个端口对象的属性值。 如果不一致, 则返回步骤 S312, 试图继续选取物理拓扑中该设备类 型的下一个物理设备对象 ; 如果一致, 则进入步骤 S322 ;
步骤 S322 : 记录这两个比较的逻辑设备对象和物理设备对象之间的临时对应关 系, 此时, 单个逻辑设备适配结束 ;
步骤 S324 : 判断逻辑拓扑的所有设备类型的优先队列中是否还有未被选取的设 备对象。如果是, 则继续返回步骤 S310, 进行下一个逻辑设备对象的匹配工作 ; 如果否, 则 进入步骤 S326 ; 步骤 S326 : 如图 9 所示, 根据所有逻辑、 物理设备对象之间的对应关系填写逻辑、 物理拓扑定义的设备、 端口、 拓扑类属性值 ;
步骤 S328 : 将以上设备、 端口、 拓扑类属性值之间对应关系生成应用拓扑对应的 xml 文件, 在图形化界面上可以显示该应用拓扑各个节点对应的逻辑、 物理属性值。
图 3 中的步骤 S330-S338 描述了拓扑适配过程中为了充分考虑优先队列方法的公 平性而引入的回溯机制。 如果按照某种物理设备优先队列次序, 在某一轮适配过程中, 耗尽 了所有符合该逻辑设备的类型和端口数的物理设备, 则开始进入回溯匹配过程。
步骤 S330 : 本次匹配失败, 回退到上一个逻辑设备匹配环节中 ;
步骤 S332 : 判断是否已经回退到匹配初始状态, 即已完成匹配逻辑设备为空的初 始状态 ; 如果是, 则说明已经退至最前一轮, 匹配失败, 退出 ; 如果否, 则执行步骤 S334 ;
步骤 S334 : 判断本轮匹配中是否还有其他未被选取过、 并且类型和端口数和逻辑 设备匹配的物理设备可选。如果是, 则执行步骤 S336, 如果否, 则继续执行步骤 S330, 回退 到更上一轮 ;
步骤 S336 : 标记上一轮已选取过的物理设备在该逻辑拓扑设备匹配环节中不再 选取, 但在下一个逻辑拓扑设备匹配环节中仍然可用 ;
步骤 S338 : 选取未被选取过、 并且类型和端口数和本逻辑设备匹配的下一个物理 设备, 并跳转至步骤 S318, 继续往下匹配。
图 10 是根据本发明实施例的拓扑适配装置的结构示意图。如图 10 所示, 根据本 发明实施例的拓扑适配装置包括 :
拓扑输入模块 1002, 用于获取可用的物理拓扑和需要匹配的逻辑拓扑的拓扑信 息, 其中, 上述拓扑信息包括 : 设备属性、 端口属性和设备间连接关系。
拓扑匹配模块 1004, 用于采用上述拓扑信息对物理拓扑和逻辑拓扑进行匹配。
拓扑输出模块 1006, 用于输出物理拓扑和逻辑拓扑的匹配结果。
优选地, 拓扑输入模块 1002 还可以用于在获取到物理拓扑和逻辑拓扑的拓扑信 息后, 以定义类方式处理上述拓扑信息, 其中, 上述定义类包括 : 设备类、 端口类和拓扑类。
优选地, 上述设备类可以进一步包括以下至少之一 : 设备类型、 设备端口列表、 设 备连接地址、 设备逻辑名、 设备预留字段、 设备扩展属性字段 ; 上述端口类可以进一步包括 以下至少之一 : 端口媒介类型、 端口速率、 端口物理接口、 端口逻辑接口、 端口所属设备、 端 口预留字段、 端口扩展属性字段 ; 上述拓扑类可以进一步以包括下至少之一 : 设备对象列 表、 拓扑扩展属性字段、 拓扑优先级。
拓扑输入模块 1002 可以提供图形化界面输入当前可用的物理拓扑和需要匹配的 逻辑拓扑, 包含了物理拓扑和逻辑拓扑中的设备属性、 端口属性和拓扑中各设备间的连接 关系, 保存为 xml 格式文件。用户可以使用图形化界面填入拓扑图中各个节点的信息, 如设 备类型, 设备软件版本, 端口光电模式, 端口速率等。
拓扑匹配模块 1004 则接收拓扑输入模块 1002 生成的拓扑描述文件, 以定义类的 方式将这些信息进行管理, 将这些拓扑信息对象根据特定优先策略建立优先队列, 按照次 序进行各个逻辑拓扑对象到物理拓扑对象的匹配, 最终实现从物理拓扑中挑取符合逻辑拓 扑描述的拓扑。此外, 拓扑匹配模块 1004 还可以提供物理拓扑、 逻辑拓扑以及拓扑适配结 果的保存功能, 对于一些重复使用相同逻辑拓扑的情况可以直接调用记录的拓扑适配结 果, 省去了反复适配的操作, 提高适配效率。
进一步的, 拓扑匹配模块 1004 还可以引入拓扑优先级管理的思路, 某优先级的逻 辑拓扑只能在低于该优先级的物理拓扑子集中进行适配。此外, 拓扑匹配模块 1004 还可以 配合实现拓扑资源调度功能, 根据拓扑优先级属性实现拓扑的抢占机制, 提供更灵活更高 效使用拓扑资源的方法。
拓扑输出模块 1006 最终通过图形化界面显示符合逻辑拓扑描述的实际物理拓扑 子集, 保存为 xml 格式文件。
将上述拓扑适配装置引入到通信设备的自动化应用中, 可以用于实现通信设备使 用过程中拓扑资源的自动化管理, 从而可以根据各次应用拓扑的不同需求和拓扑优先级有 序地机动地分配实际物理拓扑资源。
从以上的描述中, 可以看出, 本发明通过提供图形化界面输入物理拓扑和逻辑拓 扑, 利用考虑拓扑属性的适配方法提高了实际应用中拓扑适配的准确率, 提供了完善的计 算思路, 保证在现有物理拓扑环境中准确寻找到符合逻辑拓扑详细描述的拓扑环境, 为搭 建拓扑环境提供了快捷、 高质量的实现方法, 提高了通信设备开发和应用的效率。
显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所组成 的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现, 从而, 可以将它们存储 在存储装置中由计算装置来执行, 并且在某些情况下, 可以以不同于此处的顺序执行所示 出或描述的步骤, 或者将它们分别制作成各个集成电路模块, 或者将它们中的多个模块或 步骤制作成单个集成电路模块来实现。 这样, 本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。