本发明涉及光网络通信技术领域,具体涉及一种光网络终端设备的配置管理的方法。
背景技术
随着互联网流量的持续高速增长,光网络系统凭借成熟的系统和优异的性能,成为了运营商骨干网升级和新建的优先选择。
如今,光网络已经成为国家重要的信息基础设施,支撑着下一代互联网、移动互联网、物联网、云计算和大数据等战略性新兴产业的发展,同时,也是人工智能以及“数字化、网络化、智能化”制造等新一轮科技革命和产业变革的核心所在。
要想充分利用光技术的优点,实现光网络快速、无差错、自动化配置是非常重要的。而从一个统一的配置系统对环形或格形的多运营商接入城域网和长途网进行端到端的电路配置的能力,对于提供持久的竞争优势是十分关键的。但是,自动化和操作简便的配置并不是一个简单的任务,它需要诸多系统的密切合作,主要体现在:
由于接入网终端设备的型号和类型多,对其的配置管理需要与类型相耦合,同时因其配置数据本身多种多样,彼此间又存在关联性,导致了在网管软件实现上管理复杂、开发工作量大,同时一些特定的功能变得无法实现,比如离线设备管理、配置迁移等。
有鉴于此,需要提供一种光网络终端设备的配置管理的新方法,以简化网管软件的实现外,在此基础上可衍生实现配置迁移、离线设备管理等诸多扩展功能。
技术实现要素:
本发明所要解决的技术问题是现有的光网络终端设备的配置管理实现上复杂、开发工作量大,同时一些特定的功能无法实现的问题。
为了解决上述技术问题,本发明所采用的技术方案是提供一种光网络终端设备的配置管理的方法,包括以下步骤:
确定各配置项的业务索引以及各配置项之间的依赖关系,构造依赖关系树;
对各配置项采用通用表示进行描述形成配置记录,包括配置项属性和配置项记录索引;
将每一条配置项记录串行化成一条二进制数据存放到数据库中;
使用业务索引在数据库中进行离线配置管理;
采用广度优先算法对所述依赖关系树进行遍历,并按照遍历的先后顺序逐一下发各个配置项。
在上述方法中,构造依赖关系树时,如果,本条配置依赖另一条配置,则将本条配置放置到以另一条配置为树根的子节点中;无依赖关系的配置则保持为平级的节点。
在上述方法中,配置项记录由一个配置项记录索引和一个或多个配置项属性组成,配置项属性用于表示配置中的各种基本数据类型,每个配置项属性具有一个属性id;配置项记录索引由0个或多个索引值构成。
在上述方法中,
对于需增量配置的数据,每条配置项的通用表示分别定义一个唯一索引,用于标识每条配置项;
对于使用全量配置的数据,所有配置项的通用表示共用一个索引,作为一个记录进行存储。
在上述方法中,在数据库中,配置数据的存储以配置项记录为单位,配置项记录包括配置类型,依赖关系树使用配置类型进行描述,树上每一个节点与一个配置类型类型对应,整个树上任意两个节点的配置类型都不相同。
在上述方法中,对于简单的应用,业务配置依赖关系树可简化为一个线性的业务配置依赖关系列表,表头相当于树根,表的尾部相当于树叶;对业务配置依赖关系树的遍历封装到一个模块当中,该模块使用静态数据进行初始化。
在上述方法中,将配置项记录串行化成一条二进制数据存放到数据库中时,其中的配置项记录索引必须拆分成若干个索引值进行存放。
在上述方法中,所有数值类的业务索引均用数字表示,无法用数值表示的使用字符串表示。
在上述方法中,所述业务索引具有网元内的唯一性。
在上述方法中,所述依赖关系树保存在所述数据库或磁盘文件中。
与现有技术相比,将配置采用通用表示,并串行化为一条二进制数据保存在数据库中,通过业务配置依赖关系树描述各配置之间存在的相互依赖关系,采用广度优先算法对依赖关系树进行遍历,并按照遍历的先后顺序逐一下发各个配置项,进行离线配置管理时,使用业务索引在所述数据库中进行查找定位。简化了网管软件的实现,并在此基础上可衍生实现配置迁移、离线设备管理等诸多扩展功能。
并且,在数据库中,配置数据以记录为单位进行存储,每条记录对应于一条配置项记录,数据库的表结构可支持以不同的粒度为单位对配置数据进行存储,不需要数据库关心的数据,均可串行化为字符串后存储为一条配置项记录;对需要借助数据库的查询能力进行管理的数据,则为其给出索引值,然后分多条记录进行存储。由于该表的存储方式灵活,可以在代码实现的简单性和数据库存储性能之间找到比较合适的平衡点。
在一个优选的实施例中,本发明方法同时给出了构造依赖关系树的一种具体方法,构造依赖关系树时,如果本条配置依赖另一条配置,则将本条配置放置到以另一条配置为树根的子节点中;无依赖关系的配置则保持为平级的节点。该方法,实现方式简单,效率高,易于实现。
在另一个优选的实施例中,对于数据库进行了有效的管理,对于需增量配置的数据,每条配置项的通用表示分别定义一个唯一索引,用于标识每条配置项;对于使用全量配置的数据,所有配置项的通用表示共用一个索引,作为一个记录进行存储。因此,提高了数据库管理效率,同时又保证了数据的快速查找和增加、删除。
在另一个优选的实施例中,可将业务配置依赖关系树简化为一个线性的业务配置依赖关系列表,表头相当于树根,表的尾部相当于树叶,使其在应用于简单应用时,操作简单,效率高。
附图说明
图1为本发明具体实施例1技术方案的实现流程图;
图2为本发明中一种依赖关系树的具体实例示意图;
图3为本发明中配置项的通用表示示意图。
具体实施方式
本发明提供了一种光网络终端设备的配置管理的方法,可简化网管软件的实现,并在此基础上可衍生实现配置迁移、离线设备管理等诸多扩展功能。下面结合说明书附图和具体实施方式对本发明做出详细说明。
本发明的实现原理是:
将配置采用通用表示,并串行化为一条二进制数据保存在数据库中,通过业务配置依赖关系树描述各配置之间存在的相互依赖关系,采用广度优先算法对依赖关系树进行遍历,并按照遍历的先后顺序逐一下发各个配置项,进行离线配置管理时,使用业务索引在所述数据库中进行查找定位。
本发明提供的光网络终端设备的配置管理的方法,其基本技术方案的实现主要包括以下步骤:
确定各配置项的业务索引以及各配置项之间的依赖关系,构造依赖关系树;
对各配置项采用通用表示进行描述形成配置记录,包括配置项属性和配置项记录索引;
将每一条所述配置项记录串行化成一条二进制数据存放到数据库中;
使用业务索引在所述数据库中进行离线配置管理;
从根节点开始采用广度优先算法对所述依赖关系树进行遍历,并按照遍历中对各节点访问的先后顺序逐一下发各个节点对应的配置项。
通过上述方法,简化了网管软件的实现,并在此基础上可衍生实现配置迁移、离线设备管理等诸多扩展功能。
广度优先遍历是连通图的一种遍历策略,亦可用于对树进行遍历。做法如下:
(1)从图中某个顶点v0出发,并访问此顶点;
(2)从v0出发,访问v0的各个未曾访问的邻接点w1,w2,…,wk;然后,依次从w1,w2,…,wk出发访问各自未被访问的邻接点;
(3)重复步骤(2),直到全部顶点都被访问为止。
为了对本发明的技术方案和实现方式做出更清楚地解释和说明,以下介绍实现本发明技术方案的几个优选的具体实施例。显然,以下所描述的具体实施例仅为本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
具体实施例1。
如图1所示,本发明具体实施例1技术方案的实现,包括以下步骤:
步骤10:确定各配置项的业务索引,业务索引应当具有网元内的唯一性,从而实现能够唯一定位到某条业务的配置项。
步骤20:确定各配置项之间的依赖关系,并根据依赖关系构造依赖关系树。依赖关系树可以保存在数据库中,或者保存在其他位置,例如保存在硬盘存储器的磁盘文件中,使用依赖关系树时,从数据库中提取或从其他位置提取。
由于设备配置之间往往存在相互依赖关系,为了描述这种依赖关系,在此引入业务配置依赖关系树的概念。业务配置依赖关系树以静态数据的形式进行定义,最为基础、影响范围最大的配置类别位于树的根部,与之相反的配置类别则靠近树的叶子部分。
在对通用配置数据进行下发的过程中,如果涉及到多种配置的下发,可按照业务配置依赖关系树的定义,从树根开始采用广度优先算法的遍历方法对遍历到的配置类别进行下发。
步骤30:采用通用表示对各配置项进行表示。
本发明中,一个配置项记录cfgrecord的通用表示由一个配置项记录索引gencfgindex和一个或多个配置项属性genattr组成,如图3所示,其中:
配置项属性genattr,用于表示各种基本数据类型,如整型、枚举、64位整型、字符串等,每个配置项属性genattr具有一个属性id,用于通过属性id来访问某个属性项;
配置项记录索引gencfgindex,用于唯一标识一条配置项记录,由0个或多个索引值构成。
多条配置项记录cfgrecord的集合形成了配置项记录集合cfgrecordvec。
以上通用表示仅为举例,使用类似的方式可以实现各种配置项的通用表示。
基于以上介绍,一条配置项中的一个配置数据表示为一个配置项属性genattr;一条配置项,由多个配置项属性genattr组成,再加上配置项记录索引gencfgindex形成了一条完整的配置项记录cfgrecord;某项配置由多个配置项记录cfgrecord构成,可表示为配置项记录集合cfgrecordvec。
步骤40:将每条配置项记录cfgrecord串行化成每条二进制数据存放到数据库中,生成一条条的记录。
在数据库中,配置数据以记录为单位进行存储,每条记录对应于一条配置项记录,数据库的表结构的原型如下:
每条配置项记录对应表结构中的“配置项记录id”。但其中的配置项记录索引gencfgindex必须分成若干个索引值进行存放,对应于表结构中的index0~indexn。
其中:配置项记录cfgrecord的成员cfgtype,对应表中的配置类型字段,表示存储的配置的类型,cfgtype也决定了其后索引字段的使用方式。例如依赖关系树使用cfgtype进行描述,树上每一个节点与一个cfgtype类型对应,整个树上任意两个节点的cfgtype都不相同。
配置项记录cfgrecord的成员gencfgindex,对应于表中的索引字段index0至indexn,索引字段应该包含该配置数据的全部关键业务的索引项;如对onu业务配置,例如可用index0表示fe端口,index1表示vlanid等。
配置项记录cfgrecord的成员“genattr列表”,在串行化为string之后,保存至配置项记录字段。
该表可支持以不同的粒度为单位对配置数据进行存储,不需要数据库关心的数据,均可串行化为字符串后存储为一条配置项记录;对需要借助数据库的查询能力进行管理的数据,应为其给出索引值,然后分多条记录进行存储。
由于该表的存储方式灵活,可以在代码实现的简单性和数据库存储性能之间找到比较合适的平衡点。
步骤50:离线配置管理时,使用业务索引在数据库中进行查找定位,从而实现增删改查操作。
步骤60:进行配置下发时,按照依赖关系树进行广度优先算法遍历,按照遍历的先后顺序对各个配置项逐一执行下发操作,直至完成全部配置项的下发。
具体实施例2。
本具体实施例2中,数据库既可以用于存储设备实际配置,也可以存储离线配置数据,其中离线配置数据仅比实际配置数据增加了配置下发状态字段,离线配置成功下发之后即成为实际配置数据。
具体实施例3。
本具体实施例3中,数据库保存数据时,
对于某类需增量配置的数据,对每条配置项的通用表示分别定义一个唯一索引,以保证数据可以单独存取,否则无法实现增量修改;
对于某类使用全量配置的数据,所有配置项的通用表示共用一个索引,将全部数据作为一个记录来存储。
具体实施例4。
为进一步提高操作效率,所有数值类的业务索引均用数字表示,无法用数值表示的使用字符串表示。
依据配置项的业务特性,在单个业务索引无法对配置项进行唯一标识的情况下可以使用多个业务索引组合进行表示,但业务索引的数量应尽量少。
具体实施例5。
可以将业务配置依赖关系树简化为一个线性的业务配置依赖关系列表,表头相当于树根,表的尾部相当于树叶。在实现中对业务配置依赖关系树的遍历将封装到一个模块当中,该模块使用静态数据进行初始化,其内部是否使用简化后的业务配置依赖关系树对外部不可见。
这种方式应用于较简单的应用中,可以提高效率,简化操作。
具体实施例6。
构造依赖关系树时,如果一条配置依赖另一条配置,则将此条配置放置到以另一条配置为树根的子节点中;无依赖关系的配置则保持为平级的节点。例如:配置b依赖配置a,则将配置b放置到以配置a为树根的子节点中;配置c依赖配置b,则将配置c放到配置b的子节点中。
在图2所示的具体应用中,盘配置和全局业务配置都依赖全局基础配置,因此,二者都是全局基础配置的子节点,因为盘配置和全局业务配置间无依赖关系,因此二者表示为平级的节点。而盘内配置依赖于盘配置,因此盘内配置位于盘配置的子节点上。以此类推,形成全部配置的依赖关系树。
这种构造依赖关系树的方式,实现方式简单,易于实现。
本发明并不局限于上述最佳实施方式,任何人应该得知在本发明的启示下做出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。