CN104022896B - 一种配置管理方法、装置及网络设备 - Google Patents

一种配置管理方法、装置及网络设备 Download PDF

Info

Publication number
CN104022896B
CN104022896B CN201410202737.1A CN201410202737A CN104022896B CN 104022896 B CN104022896 B CN 104022896B CN 201410202737 A CN201410202737 A CN 201410202737A CN 104022896 B CN104022896 B CN 104022896B
Authority
CN
China
Prior art keywords
attribute
configuration
configuration object
version number
message
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
CN201410202737.1A
Other languages
English (en)
Other versions
CN104022896A (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.)
Ruijie Networks Co Ltd
Original Assignee
Fujian Star Net Communication 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 Fujian Star Net Communication Co Ltd filed Critical Fujian Star Net Communication Co Ltd
Priority to CN201410202737.1A priority Critical patent/CN104022896B/zh
Publication of CN104022896A publication Critical patent/CN104022896A/zh
Application granted granted Critical
Publication of CN104022896B publication Critical patent/CN104022896B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供了一种配置管理方法、装置及网络设备,涉及通信领域,实现避免用户配置命令的配置丢失或者配置错误。本发明实施例采用的方案包括:通过配置应用客户端进程接收第一消息;根据第一消息,获取配置对象的属性的当前版本号;比较配置对象的属性的当前版本号与本地版本号;若配置对象的属性的当前版本号高于本地版本号,则依次删除本地的配置对象的属性下的配置命令信息,将配置对象的属性的本地版本号更新为当前版本号,接受处理第一消息;若配置对象的属性的当前版本号与本地版本号相同,则接受处理第一消息;若配置对象的属性的当前版本号低于本地版本号,则丢弃第一消息。

Description

一种配置管理方法、装置及网络设备
技术领域
本发明涉及通信领域,尤其涉及一种配置管理方法、装置及网络设备。
背景技术
随着网络应用的不断发展壮大,不同的用户都会提出适合自己特性的需求,传统固定配置形式的网络设备在很大程度上已经不能满足网络的发展和用户的要求。于是,基于模块化平台的网络设备应运而生,并逐渐成为市场中关注的焦点。相比于传统的网络设备,基于模块化平台的网络设备可以根据不同用户的不同需求来选择使用不同的模块,同时可以增加或替换模块来适应应用需求的改变,达到在保持原有投资的情况下通过不同的配置以实现新的功能的目标。
在基于模块化平台的网络设备中,用户通过对网络设备进行不同配置命令的配置管理,实现不同的功能;在模块化平台上,大部分的配置命令通常归属于网络设备软件系统中不同的业务进程。对于某些配置命令,所归属的多个业务进程之间可能存在着配置依赖关系,则需要这些业务进程之间相互协同来执行配置命令。
当配置命令归属的网络设备中的多个进程间存在配置依赖关系时,由于消息的时序问题,将不可避免的造成的用户配置命令的配置丢失或者配置错误。
例如,以在一台交换机设备或者路由器设备上对一个三层接口上进行一条网络协议(Internet Protocol,简称IP)地址配置这个配置命令为例,执行该配置命令时,则需要先创建三层接口,然后在该三层接口上配置IP地址;在模块化平台网络设备中,由于接口的创建管理归属于接口管理进程,而IP地址的配置管理则归属于传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,简称TCP/IP)进程,那么,接口管理进程与TCP/IP进程之间就存在配置依赖关系,该配置命令的执行就会需要接口管理进程与TCP/IP进程相互协同完成;正常的实现过程为:配置命令终端进程接收配置命令,向接口管理进程发送三层接口创建消息;接口管理进程创建三层接口,并向TCP/IP进程发送三层接口创建成功的通告消息;配置终端进程向TCP/IP进程发送在该三层接口上配置IP地址的配置消息;TCP/IP进程接收三层接口创建成功的通告消息和在该三层接口上配置IP地址的配置消息,在三层接口上配置IP地址。在整个配置管理执行过程中,若TCP/IP进程收到配置IP地址的配置消息早于接收到三层接口创建成功的通告消息,那么TCP/IP进程就会在收到IP地址配置消息时因为还没有收到三层接口创建成功的通告消息,而错误的将IP地址配置消息丢弃掉,从而造成用户配置命令的配置丢失。
再例如,假设连续接收到如下配置命令:先创建一个三层接口,之后在该三层接口上配置IP地址1,然后再删除该三层接口,接着再重新创建该三层接口,然后再在该三层接口上配置IP地址2;那么,在整个配置管理执行过程中,在TCP/IP进程接收消息时,有可能存在一种特殊的情况:TCP/IP进程接连收到在该三层接口上配置IP地址1的配置消息和在该三层接口上配置IP地址2的配置消息;由于对于同一个三层接口,只能配置一条IP地址,且后面配置的命令不能覆盖之前配置的命令,那么,TCP/IP进程就可能将在该三层接口上配置IP地址2的配置消息丢弃,而保留了在该三层接口上配置IP地址1的配置消息,造成用户配置命令的配置错误(用户实际期望最终生效的在该三层接口上配置IP地址2,而不是IP地址1)。
发明内容
本发明实施例提供一种配置管理的方法及网络设备,实现避免用户配置命令的配置丢失或者配置错误。
为达到上述目的,本发明实施例采用的技术方案是,
第一方面,提供一种配置管理方法,包括:
配置应用客户端进程接收第一消息;其中,所述第一消息包括配置对象的属性标识;
根据所述第一消息,获取所述配置对象的属性的当前版本号;
比较所述配置对象的属性的当前版本号与所述配置对象的属性的本地版本号;
若所述配置对象的属性的当前版本号,高于所述配置对象的属性的本地版本号,则依次删除本地的所述配置对象的属性下的配置命令信息,将所述配置对象的属性的本地版本号更新为所述配置对象的属性的当前版本号,接受处理所述第一消息;
若所述配置对象的属性的当前版本号,与所述配置对象的属性的本地版本号相同,则接受处理所述第一消息;
若所述配置对象的属性的当前版本号,低于所述配置对象的属性的本地版本号,则丢弃所述第一消息。
结合第一方面,在第一方面的第一种可能的实现方式中,所述配置应用客户端进程接收第一消息,包括:
所述配置应用客户端进程接收配置对象属性控制进程发送的属性状态变化消息;其中,所述属性状态变化消息包括属性生成消息或属性删除消息;或者,
所述配置应用客户端进程接收配置命令终端进程发送的属性配置应用命令消息。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,若所述第一消息为属性删除消息,当所述配置对象的属性的当前版本号高于所述配置对象的属性的本地版本号,或者若所述配置对象的属性的当前版本号与所述配置对象的属性的本地版本号相同时,所述方法还包括:
删除本地所述配置对象的属性下的配置命令信息;
删除所述配置对象的属性的本地版本号。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述第一消息,获取所述配置对象的属性的当前版本号,包括:
根据所述第一消息,查询所述第一内存,获取所述配置对象的属性的当前版本号;其中,所述第一内存为进程可查询的内存区域中的任一区域;或者,
获取所述第一消息包括的所述配置对象的属性的当前版本号;其中,所述第一消息包括所述配置对象的属性的当前版本号。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第四种可能的实现方式中,在所述比较所述配置对象的属性的当前版本号与所述配置对象的属性的本地版本号之前,所述方法还包括:
获取所述配置对象的属性的状态值;其中,所述状态值用于指示所述配置对象的属性生成或者删除;
若所述配置对象的属性的状态值指示所述配置对象的属性生成,则比较所述配置对象的属性的当前版本号与所述配置对象的属性的本地版本号;
若所述配置对象的属性的状态值指示所述配置对象的属性删除,则删除本地所述配置对象的属性下的配置命令信息,删除所述配置对象的属性的本地版本号,丢弃所述第一消息。
第二方面,提供一种配置管理方法,包括:
配置对象属性控制进程接收配置命令终端进程转发的配置命令;其中,所述配置命令包括配置对象的属性的标识;
根据所述配置命令,配置所述配置对象的属性;
更新所述配置对象的属性的版本号及更新所述配置对象的属性的状态值;其中,所述版本号记录所述配置对象的属性的配置记录;所述状态值用于指示所述配置对象的属性生成或者删除;
将更新后的所述配置对象的属性的版本号和状态值实时的同步至第一内存中;其中,所述第一内存为进程可查询的内存区域中的任一区域;
若所述配置对象的属性发生变化,向所述配置应用客户端进程发送的属性状态变化消息,以使得所述配置应用客户端进程根据所述属性状态变化消息,对所述配置对象的属性的配置命令信息进行管理;其中,所述属性状态变化消息包括所述配置对象的属性的标识。
结合第二方面,在第二方面的第一种可能的实现方式中,结合所述属性状态变化消息包括属性生成消息或属性删除消息。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述属性状态变化消息还包括:
所述配置对象的属性的当前版本号。
第三方面,提供一种配置管理装置,包括:
接收单元,用于接收第一消息;其中,所述第一消息包括配置对象的属性标识;
获取单元,用于根据所述第一消息,获取所述配置对象的属性的当前版本号;
比较单元,比较所述配置对象的属性的当前版本号与所述配置对象的属性的本地版本号;
处理单元,用于若所述比较单元比较出所述配置对象的属性的当前版本号,高于所述配置对象的属性的本地版本号,则依次删除本地的所述配置对象的属性下的配置命令信息,将所述配置对象的属性的本地版本号更新为所述配置对象的属性的当前版本号,接受处理所述第一消息;
所述处理单元还用于,若所述比较单元比较出所述配置对象的属性的当前版本号,与所述配置对象的属性的本地版本号相同,则接受处理所述第一消息;
所述处理单元还用于,若所述比较单元比较出所述配置对象的属性的当前版本号,低于所述配置对象的属性的本地版本号,则丢弃所述第一消息。
结合第三方面,在第三方面的第一种可能的实现方式中,所述接收单元具体用于:
所述配置应用客户端进程接收配置对象属性控制进程发送的属性状态变化消息;其中,所述属性状态变化消息包括属性生成消息或属性删除消息;或者,
所述配置应用客户端进程接收配置命令终端进程发送的属性配置应用命令消息。
结合第三方面或第三方面的第一种可能的实现方式中,在第三方面的第二种可能的实现方式中,若所述第一消息为属性删除消息,当所述配置对象的属性的当前版本号高于所述配置对象的属性的本地版本号,或者所述配置对象的属性的当前版本号与所述配置对象的属性的本地版本号相同时,所述处理单元还用于:
删除本地所述配置对象的属性下的配置命令信息;
删除所述配置对象的属性的本地版本号。
结合第三方面或第三方面的第一种可能的实现方式中,在第三方面的第三种可能的实现方式中,所述获取单元具体用于:
根据所述第一消息,查询所述第一内存,获取所述配置对象的属性的当前版本号;其中,所述第一内存为进程可查询的内存区域中的任一区域;或者,
获取所述第一消息包括的所述配置对象的属性的当前版本号;其中,所述第一消息包括所述配置对象的属性的当前版本号。
结合第三方面或第三方面的第一种可能的实现方式中,在第三方面的第四种可能的实现方式中,
所述获取单元还用于,获取所述配置对象的属性的状态值;其中,所述状态值用于指示所述配置对象的属性生成或者删除;
所述比较单元还用于,若所述获取单元获取的所述配置对象的属性的状态值指示所述配置对象的属性生成,则比较所述配置对象的属性的当前版本号与所述配置对象的属性的本地版本号;
所述处理单元还用于,若所述获取单元获取的所述配置对象的属性的状态值指示所述配置对象的属性删除,则删除本地所述配置对象的属性下的配置命令信息,删除所述配置对象的属性的本地版本号,丢弃所述第一消息。
第四方面,提供一种配置管理装置,包括:
接收单元,用于接收配置命令终端进程转发的配置命令;其中,所述配置命令包括配置对象的属性的标识;
配置单元,用于根据所述配置命令,配置所述配置对象的属性;
更新单元,用于更新所述配置对象的属性的版本号及更新所述配置对象的属性的状态值;其中,所述版本号记录所述配置对象的属性的配置记录;所述状态值用于指示所述配置对象的属性生成或者删除;
同步单元,用于将更新后的所述配置对象的属性的版本号和状态值实时的同步至第一内存中;其中,所述第一内存为进程可查询的内存区域中的任一区域;
发送单元,用于若所述配置对象的属性发生变化,向所述配置应用客户端进程发送的属性状态变化消息,以使得所述配置应用客户端进程根据所述属性状态变化消息,对所述配置对象的属性的配置命令信息进行管理;其中,所述属性状态变化消息包括所述配置对象的属性的标识。
结合第四方面,在第四方面的第一种可能的实现方式中,所述属性状态变化消息包括属性生成消息或属性删除消息。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述属性状态变化消息还包括:
所述配置对象的属性的当前版本号。
第五方面,提供一种网络设备,包括:
至少一个如第三方面及上述任一种可能的实现方式所述的配置管理装置;或者,
至少一个如第四方面及上述任一种可能的实现方式所述的配置管理装置;或者,
至少一个如第三方面及上述任一种可能的实现方式所述的配置管理装置和至少一个如第四方面及上述任一种可能的实现方式所述的配置管理装置。
本发明提供一种配置管理方法、装置及网络设备,通过配置应用客户端进程接收第一消息;其中,第一消息包括配置对象的属性标识;根据第一消息,获取配置对象的属性的当前版本号;比较配置对象的属性的当前版本号与配置对象的属性的本地版本号;若配置对象的属性的当前版本号,高于配置对象的属性的本地版本号,则依次删除本地的配置对象的属性下的配置命令信息,将配置对象的属性的本地版本号更新为配置对象的属性的当前版本号,接受处理第一消息;若配置对象的属性的当前版本号,与配置对象的属性的本地版本号相同,则接受处理第一消息;若配置对象的属性的当前版本号,低于配置对象的属性的本地版本号,则丢弃第一消息;达到避免用户配置命令的配置丢失或者配置错误的目的,解决了现有技术中由于消息的时序问题,不可避免的造成的用户配置命令的配置丢失或者配置错误的缺陷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种配置管理方法的流程示意图;
图2为本发明实施例提供的另一种配置管理方法的流程示意图;
图3为本发明实施例提供的再一种配置管理方法的流程示意图;
图4为本发明实施例提供的又一种配置管理方法的流程示意图;
图5为本发明实施例提供的一种配置管理装置的结构示意图;
图6为本发明实施例提供的另一种配置管理装置的结构示意图;
图7A为本发明实施例提供的一种网络设备的结构示意图;
图7B为本发明实施例提供的一种网络设备的结构示意图;
图7C为本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种配置管理方法,在配置应用客户端进程侧,对本发明提供的配置管理方法进行详细说明;参见图1,所述配置管理方法可以包括:
101、配置应用客户端进程接收第一消息;
其中,配置应用客户端进程可以为网络设备上的一种业务模块进程,用于配置命令的应用,即对用户输入的配置命令的最终实现应用。
第一消息可以包括配置对象的属性标识;所述第一消息用于通知所述配置应用客户端进程对所述配置对象的属性的配置命令信息进行管理;
需要说明的是,在网络设备中,可以有多个配置对象,每一个配置对象可以具备多个属性,第一消息中包括的配置对象的属性标识,是网络设备中任意一个配置对象的任意一个属性的标识。
其中,所述配置对象的属性标识,是可以唯一标识配置对象的属性的信息,可以包括但不限于下述信息:配置对象的属性的名称或者配置对象的属性的代码等;本发明所有实施例对于配置对象的属性标识的具体形式不进行限定。
当第一消息包括多个配置对象的属性标识时,对于第一消息中包括的每一个配置对象的属性标识,配置应用客户端进程对该配置对象的属性都进行相同的操作(即步骤102~步骤106),故本发明实施例以一个配置对象的一个属性为例,对配置管理的过程进行描述。
可选的,配置应用客户端进程接收第一消息,包括:
配置应用客户端进程接收配置对象属性控制进程发送的属性状态变化消息;其中,属性状态变化消息可以为属性生成消息或属性删除消息;或者,
配置应用客户端进程接收配置命令终端进程发送的属性配置应用命令消息。
本发明所有实施例对于第一消息不进行具体限定。
进一步的,若第一消息包括属性状态变化消息时,第一消息还可以包括配置对象的属性的当前版本号;
102、配置应用客户端进程根据第一消息,获取配置对象的属性的当前版本号;
其中,配置对象的属性的当前版本号,可以为配置对象的属性的最新的版本号;配置对象的属性的版本号可以用来记录该配置对象的属性的配置历史记录。
其中,配置应用客户端进程可以根据第一消息中包括配置对象的属性标识,获取配置对象的属性的当前版本号;
根据第一消息是否包括配置对象的属性的当前版本号,配置应用客户端进程根据第一消息,获取配置对象的属性的当前版本号的方式也不同,具体可以包括下述两种方式:
第一种方式:第一消息不包括配置对象的属性的当前版本号,配置应用客户端进程根据第一消息,查询第一内存,获取配置对象的属性的当前版本号;
其中,第一内存为进程可查询的内存区域中的任一区域。
示例性的,第一内存可以为共享内存;需要说明的是,本发明所有实施例对于第一内存的形式不进行具体限定,凡是采用在进程可查询的内存区域查询获取配置对象的属性的版本号的方法,都属于本发明的保护范围。
第二种方式:第一消息包括配置对象的属性的当前版本号,配置应用客户端进程获取第一消息包括的配置对象的属性的当前版本号。
103、比较配置对象的属性的当前版本号与配置对象的属性的本地版本号;
其中,比较配置对象的属性的当前版本号与配置对象的属性的本地版本号,是对配置对象的属性的版本号的内容进行比较;
配置对象的属性的版本号内容可以由配置对象属性控制进程分配和更新;例如,配置对象属性控制进程对配置对象的属性的版本号初始化起始值,在每一次对配置对象的属性的配置命令信息进行管理后,更新该配置对象的属性的版本号;
例如,配置对象的属性的版本号采用0、1、2……等阿拉伯数字的形式;也可以采用A、B、C……等字母的形式,本发明对此不进行具体限定;
可选的,配置对象属性控制进程在更新配置对象的属性的版本号的过程中,可以每配置一次配置对象的属性,版本号随之而增加或者保持不变,也可以每配置一次配置对象的属性,版本号随之而减小;本发明对此不进行具体限定。
示例性的,当配置对象的属性的版本号采用0、1、2……等阿拉伯数字的形式,且配置对象属性控制进程在更新配置对象的属性的版本号的过程中,每配置一次配置对象的属性,版本号随之而增加,那么版本号2则高于版本号0或1,版本号1则低于版本号2。
根据步骤103中,比较的配置对象的属性的当前版本号与配置对象的属性的本地版本号的结果,所述配置管理方法可以包括配置应用客户端进程执行步骤104或步骤105或步骤106。
104、若配置对象的属性的当前版本号,高于配置对象的属性的本地版本号,则依次删除本地的配置对象的属性下的配置命令信息,将配置对象的属性的本地版本号更新为配置对象的属性的当前版本号,接受处理第一消息;
具体的,当在步骤103中,比较的配置对象的属性的当前版本号,高于配置对象的属性的本地版本号,说明该配置对象的本地信息已经过期,而配置对象的属性的当前版本号是最新状态,且第一消息为网络设备的用户对配置对象的属性的最新配置,配置应用客户端进程则需要先删除本地的该配置对象的属性下的配置命令信息,用于清除本地的该配置对象的属性下的过期的配置命令信息,再将该配置对象的属性的本地版本号更新为配置对象的属性的当前版本号,之后再接受处理第一消息;
其中,所述接收处理第一消息,可以根据第一消息包括的内容不同而不同,具体可以包括下述两种情况中的任意一种:
第一种情况:当第一消息包括属性状态变化消息中的属性生成消息时,配置应用客户端进程根据属性生成消息,生成本地配置命令信息;
第二种情况:当第一消息包括属性配置应用命令消息时,配置应用客户端进程根据属性配置应用命令消息,对该配置对象的属性的配置命令信息进行配置管理。
进一步的,若第一消息包括属性状态变化消息中的属性删除消息,说明网络设备的用户已将配置对象的属性删除,此时,步骤104则可以直接执行:配置应用客户端进程根据属性删除消息,删除本地的该配置对象的属性下的配置命令信息,删除配置对象的属性的本地版本号;
其中,删除配置对象的属性的本地版本号可以包括将配置对象的属性的本地版本号更改为默认初始值,或者可以包括将配置对象的属性的本地版本号彻底删除,本发明对此不进行具体限定。
105、若配置对象的属性的当前版本号,与配置对象的属性的本地版本号相同,则接受处理第一消息;
具体的,当在步骤103中,比较的配置对象的属性的当前版本号,与配置对象的属性的本地版本号相同,说明该配置对象的本地信息是实时最新的,则配置应用客户端进程直接接受处理第一消息。
需要说明的是,对于第一消息包括非属性删除消息时,接受处理第一消息的具体过程,在步骤104中已经进行了详细描述,此处不再进行赘述。
进一步的,若第一消息包括属性状态变化消息中的属性删除消息,说明网络设备的用户已将配置对象的属性删除,此时,步骤105则可以直接执行:配置应用客户端进程根据属性删除消息,删除本地的该配置对象的属性下的配置命令信息,删除配置对象的属性的本地版本号;
其中,删除配置对象的属性的本地版本号可以包括将配置对象的属性的本地版本号更改为默认初始值,或者可以包括将配置对象的属性的本地版本号彻底删除,本发明对此不进行具体限定。
106、若配置对象的属性的当前版本号,低于配置对象的属性的本地版本号,则丢弃第一消息。
具体的,当在步骤103中,比较的配置对象的属性的当前版本号,低于配置对象的属性的本地版本号,说明第一消息已经过期,则配置应用客户端进程直接丢弃第一消息。
需要说明的是,若配置对象属性控制进程在更新配置对象的属性的版本号的过程中,每配置一次配置对象的属性,版本号随之而增加或者保持不变,可以根据104或步骤105或步骤106处理第一消息;若配置对象属性控制进程在更新配置对象的属性的版本号的过程中,每配置一次配置对象的属性,版本号随之而减小,本领域技术人员可以根据步骤104~步骤106很容易想到,将根据步骤104与步骤106的执行内容调换来处理第一消息,故本发明对于配置对象属性控制进程在更新配置对象的属性的版本号的过程中,每配置一次配置对象的属性,版本号随之而减小不进行详细赘述。
本发明实施例提供一种配置管理方法,通过配置应用客户端进程接收第一消息;其中,第一消息包括配置对象的属性标识;根据第一消息,获取配置对象的属性的当前版本号;比较配置对象的属性的当前版本号与配置对象的属性的本地版本号;若配置对象的属性的当前版本号,高于配置对象的属性的本地版本号,则依次删除本地的配置对象的属性下的配置命令信息,将配置对象的属性的本地版本号更新为配置对象的属性的当前版本号,接受处理第一消息;若配置对象的属性的当前版本号,与配置对象的属性的本地版本号相同,则接受处理第一消息;若配置对象的属性的当前版本号,低于配置对象的属性的本地版本号,则丢弃第一消息;达到避免用户配置命令的配置丢失或者配置错误的目的,解决了现有技术中由于消息的时序问题,不可避免的造成的用户配置命令的配置丢失或者配置错误的缺陷。
实施例二
本发明实施例二提供另一种配置管理方法,在配置应用客户端进程侧,对本发明提供的配置管理方法进行详细说明;
由于配置对象的属性的版本号的生成规则可以有多种形式,若采用的配置对象的属性的版本号的生成规则为:若配置对象的属性被删除,将配置对象的属性的版本号保持不变;若配置对象的属性生成,将配置对象的属性的版本号增加;那么,当配置对象的属性被删除时,版本号未发生变化,此时根据比较版本号容易造成接收处理了过期的第一消息;在此场景下,本发明实施例二提供的方法,在比较配置对象的属性的当前版本号与配置对象的属性的本地版本号之前,先判断配置对象的属性的状态值,根据配置对象的属性的状态值指示该配置对象的属性生成或删除,确定再判断配置对象的属性的版本号或者删除配置对象的属性的本地信息,进一步提高配置管理的准确度。
需要说明的是,本发明实施例二所述的方法可以应用于各种配置对象的属性的版本号的生成规则场景下,本发明对此并不进行具体限定。
参见图2,所述配置管理方法可以包括:
201、配置应用客户端进程接收第一消息;
其中,所述配置应用客户端进程接收第一消息,可以包括:
配置应用客户端进程接收配置对象属性控制进程发送的属性状态变化消息;其中,属性状态变化消息为属性生成消息或属性删除消息;或者,
配置应用客户端进程接收配置命令终端进程发送的属性配置应用命令消息。
具体的,步骤201与步骤101相同,在此不再进行赘述。
202、配置应用客户端进程根据第一消息,在第一内存中获取配置对象的属性的当前版本号及属性的状态值;
其中,第一内存为进程可查询的内存区域中的任一区域。
示例性的,第一内存可以为共享内存;需要说明的是,本发明所有实施例对于第一内存的形式不进行具体限定,凡是采用在进程可查询的内存区域查询获取配置对象的属性的版本号的方法,都属于本发明的保护范围。
203、判断配置对象的属性的状态值是否指示配置对象的属性删除;
若判断配置对象的属性的状态值指示配置对象的属性生成,则执行步骤205;若判断配置对象的属性的状态值指示配置对象的属性删除,则执行步骤204。
204、删除本地配置对象的属性下的配置命令信息并删除配置对象的属性的本地版本号并丢弃第一消息;
当在步骤203中,判断配置对象的属性的状态值指示配置对象的属性删除,说明该配置对象的属性已经不存在,故需删除本地配置对象的属性下的配置命令信息并删除配置对象的属性的本地版本号并丢弃第一消息。
205、比较配置对象的属性的当前版本号与配置对象的属性的本地版本号;
其中,比较配置对象的属性的当前版本号与配置对象的属性的本地版本号,是对配置对象的属性的版本号的内容进行比较;
根据步骤205中,比较的配置对象的属性的当前版本号与配置对象的属性的本地版本号的结果不同,所述配置管理方法可以包括配置应用客户端进程执行步骤206或步骤207或步骤208。
206、若配置对象的属性的当前版本号,高于配置对象的属性的本地版本号,则依次删除本地的配置对象的属性下的配置命令信息,将配置对象的属性的本地版本号更新为配置对象的属性的当前版本号,接受处理第一消息;
具体的,当在步骤205中,比较的配置对象的属性的当前版本号,高于配置对象的属性的本地版本号,说明该配置对象的本地信息已经过期,配置应用客户端进程则需要先删除本地的该配置对象的属性下的配置命令信息,再将该配置对象的属性的本地版本号更新为配置对象的属性的当前版本号,之后再接受处理第一消息;
对于接受处理第一消息的方式,实施例一中已经进行的详细描述,此处不再进行赘述。
207、若配置对象的属性的当前版本号,与配置对象的属性的本地版本号相同,则接受处理第一消息;
具体的,当在步骤205中,比较的配置对象的属性的当前版本号,与配置对象的属性的本地版本号相同,说明该配置对象的本地信息是实时最新的,则配置应用客户端进程直接接受处理第一消息。
208、若配置对象的属性的当前版本号,低于配置对象的属性的本地版本号,则丢弃第一消息。
具体的,当在步骤205中,比较的配置对象的属性的当前版本号,低于配置对象的属性的本地版本号,说明第一消息已经过期,则配置应用客户端进程直接丢弃第一消息。
本发明实施例提供一种配置管理方法,通过配置应用客户端进程接收第一消息;根据第一消息,获取配置对象的属性的当前版本号及状态值;判断配置对象的属性的状态值是否指示配置对象的属性删除;若判断配置对象的属性的状态值指示配置对象的属性删除,则删除本地配置对象下的配置命令信息;若判断配置对象的属性的状态值指示配置对象的属性生成,则比较配置对象的属性的当前版本号与配置对象的属性的本地版本号;若配置对象的属性的当前版本号,高于配置对象的属性的本地版本号,则依次删除本地的配置对象的属性下的配置命令信息,将配置对象的属性的本地版本号更新为配置对象的属性的当前版本号,接受处理第一消息;若配置对象的属性的当前版本号,与配置对象的属性的本地版本号相同,则接受处理第一消息;若配置对象的属性的当前版本号,低于配置对象的属性的本地版本号,则丢弃第一消息;达到避免用户配置命令的配置丢失或者配置错误的目的,解决了现有技术中由于消息的时序问题,不可避免的造成的用户配置命令的配置丢失或者配置错误的缺陷。
实施例三
本发明实施例三提供再一种配置管理方法,在配置对象属性控制进程侧,对本发明提供的配置管理方法进行详细说明;参见图3,所述配置管理方法可以包括:
301、配置对象属性控制进程接收配置命令终端进程转发的配置命令;
其中,配置对象属性控制进程可以为网络设备上的一种业务模块进程,用于根据配置命令,对配置对象的属性的配置命令信息进行管理,还用于分配配置对象的属性的版本号、更新配置对象的属性的状态值。
配置命令终端进程可以为网络设备上的一种业务模块进程,用于接收用户输入的配置命令,根据配置命令归属的不同进程,将配置命令转发。
其中,配置命令是由用户输入,再由配置命令终端进程接收并分类转发;配置命令可以包括配置对象的属性的标识,配置命令用于指示网络设备配置所述配置对象的属性。
302、配置对象属性控制进程根据配置命令,配置所述配置对象的属性;
例如,在步骤301中接收到配置命令为创建三层接口,则配置对象属性控制进程根据该配置命令,创建三层接口。
303、配置对象属性控制进程更新配置对象的属性的版本号及更新配置对象的属性的状态值;
其中,版本号记录配置对象的属性的配置记录;状态值用于指示配置对象的属性生成或者删除;
具体的,更新配置对象的属性的版本号,可以通过下述两种方式中的任意一种实现:
第一种方式:若配置对象的属性被删除,将配置对象的属性的版本号保持不变;若配置对象的属性生成,将配置对象的属性的版本号增加;
第二种方式:当配置对象的属性生成或删除,将配置对象的属性的版本号增加。
需要说明的是,上述两种更新配置对象的属性的版本号的方式只是列举示例,并不是对更新配置对象的属性的版本号的方式的限定。例如,配置对象的属性的版本号除了上述的两种递增方式,也可以采用递减方式,本发明对于更新配置对象的属性的版本号的规则不进行具体限定。
配置对象的属性的版本号内容可以由配置对象属性控制进程分配和更新;例如,配置对象属性控制进程对配置对象的属性的版本号初始化起始值,在每一次对配置对象的属性的配置命令信息进行管理后,更新该配置对象的属性的版本号;
示例性的,配置对象的属性的版本号采用0、1、2……等阿拉伯数字的形式;也可以采用A、B、C……等字母的形式,本发明对此不进行具体限定;
进一步优选的,为了防止数据翻转,可以将属性版本号定义成一个64位的无符号整形数。
进一步的,所述更新配置对象的属性的状态值,可以包括:
若配置对象的属性删除,更新配置对象的属性的状态值指示配置对象的属性删除的值;
若配置对象的属性生成,更新配置对象的属性的状态值指示配置对象的属性生成的值。
示例性的,可以更新配置对象的属性的状态值为“false”指示配置对象的属性删除的值,更新配置对象的属性的状态值为“true”指示配置对象的属性生成的值。
需要说明的是,对于状态值的内容,以及状态值的内容与指示的配置对象的属性的生成或删除的对应关系,可以根据实际需求确定,本发明所有实施例对此不进行具体限定。
304、将更新后的配置对象的属性的版本号和状态值实时的同步至第一内存中;
其中,所述第一内存为进程可查询的内存区域中的任一区域;
示例性的,第一内存可以为共享内存;需要说明的是,本发明所有实施例对于第一内存的形式不进行具体限定,凡是采用在进程可查询的内存区域查询获取配置对象的属性的版本号和属性的状态值的方法,都属于本发明的保护范围。
305、若配置对象的属性发生变化,向配置应用客户端进程发送属性状态变化消息,以使得配置应用客户端进程根据属性状态变化消息,对配置对象的属性的配置命令信息进行管理;
其中,属性状态变化消息可以包括配置对象的属性的标识。
可选的,属性状态变化消息可以包括属性生成消息或属性删除消息。
进一步的,属性状态变化消息还可以包括:配置对象的属性的当前版本号。
本发明实施例提供一种配置管理方法,通过配置对象属性控制进程接收配置命令终端进程转发的配置命令;根据配置命令,配置所述配置对象的属性;更新配置对象的属性的版本号及更新配置对象的属性的状态值;将更新后的配置对象的属性的版本号和状态值实时的同步至第一内存中;若配置对象的属性发生变化,向配置应用客户端进程发送的属性状态变化消息,以使得配置应用客户端进程根据属性状态变化消息,对配置对象的属性的配置命令信息进行管理;达到避免用户配置命令的配置丢失或者配置错误的目的,解决了现有技术中由于消息的时序问题,不可避免的造成的用户配置命令的配置丢失或者配置错误的缺陷。
实施例四
本发明实施例四提供又一种配置管理方法,通过配置命令终端进程、配置对象属性控制进程及配置应用客户端进程的实现配置管理的交互过程,对图1、图2及图3所示的配置管理方法进行详细说明。
例如,在交换机设备上,用户期望对配置对象(接口Gigabit Ethernet0/1)配置IP地址,在此过程中,需要配置命令终端进程、配置对象属性控制进程及配置应用客户端进程之间协同完成,其中,配置命令终端进程为命令行界面(Command line Interface,简称CLI)进程,配置对象属性控制进程为接口管理进程,配置应用客户端进程为TCP/IP进程;
假设,用户通过配置命令终端进程性质的命令行界面(Command line Interface,简称CLI)进程对配置对象(接口Gigabit Ethernet0/1)连续执行如下的配置:
配置命令1:no switchport;
配置命令2:ip address10.1.1.1255.255.0.0;
配置命令3:switchport;
配置命令4:no switchport;
配置命令5:ip address10.1.1.2255.255.0.0;
根据上述配置命令1至配置命令5可知,整个配置过程执行完毕后,用户期望实际真正生效的是配置命令4和配置命令5,即对配置对象(接口Gigabit Ethernet0/1)配置为一个三层路由口,同时给该三层路由口配置IP地址10.1.1.2/16。
其中,配置命令1用于将配置对象(接口Gigabit Ethernet0/1)的属性从二层交换口属性转换为三层路由口属性,使得配置对象(接口Gigabit Ethernet0/1)具有了三层路由口属性;配置命令3用于将配置对象(接口Gigabit Ethernet0/1)的属性从三层路由口属性转换为二层交换口属性,使得配置对象(接口Gigabit Ethernet0/1)不再具有三层路由口属性;配置命令4用于将配置对象(接口Gigabit Ethernet0/1)的属性再次从二层交换口属性转换为三层路由口属性,使得配置对象(接口Gigabit Ethernet0/1)重新具有了三层路由口属性;故配置命令1、配置命令3、配置命令4归属于配置对象属性控制进程,即归属于控制和性质的接口管理进程,接口管理进程用于管理配置对象(接口Gigabit Ethernet0/1)的各种属性;
配置命令2用于在配置对象(接口Gigabit Ethernet0/1)上配置IP地址10.1.1.1/16;配置命令5用于在配置对象(接口Gigabit Ethernet0/1)上配置IP地址10.1.1.2/16;故配置命令2和配置命令5归属于配置应用客户端进程性质的TCP/IP进程。
根据上述假设,参见图4,本发明实施例四提供的配置管理方法可以包括:
401、CLI进程接收用户输入的配置命令;
例如,CLI进程接收用户输入的配置命令1~配置命令5。
402、CLI进程将归属于接口管理进程的配置命令转发至接口管理进程;
例如,CLI进程将配置命令1、配置命令3、配置命令4转发至接口管理进程。
403、CLI进程向TCP/IP进程发送属性配置应用命令消息;
例如,CLI进程向TCP/IP进程发送在配置对象(接口Gigabit Ethernet0/1)上执行配置命令2的属性配置应用命令消息,记为消息2;
CLI进程向TCP/IP进程发送在配置对象(接口Gigabit Ethernet0/1)上执行配置命令5的属性配置应用命令消息,记为消息5。
404、接口管理进程依次执行配置命令1、配置命令3、配置命令4,同时更新接口配置对象的属性的版本号及状态值,将配置对象的属性的版本号及状态值同步至共享内存中;
例如,接口管理进程执行配置命令1,将配置对象(接口Gigabit Ethernet0/1)的属性从二层交换口属性转换为三层路由口属性,使得配置对象(接口Gigabit Ethernet0/1)具有了三层路由口属性;将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的版本号更新为1(假设之前该接口没有具有过三层路由口属性,故该接口的三层路由口属性为初始值0),将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的状态值更新为true,指示配置对象的属性生成;将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的版本号及状态值同步至共享内存中;
接口管理进程执行配置命令3,将配置对象(接口Gigabit Ethernet0/1)的属性从三层路由口属性转换为二层交换口属性,使得配置对象(接口Gigabit Ethernet0/1)不再具有三层路由口属性;将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的版本号更新保持为1,将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的状态值更新为false,指示配置对象(接口Gigabit Ethernet0/1)的三层路由口属性删除;将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的版本号及状态值同步至共享内存中;
接口管理进程执行配置命令4,将配置对象(接口Gigabit Ethernet0/1)的属性再次从二层交换口属性转换为三层路由口属性,使得配置对象(接口Gigabit Ethernet0/1)重新具有了三层路由口属性;将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的版本号更新为2,将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的状态值更新为true,指示配置对象(接口Gigabit Ethernet0/1)的三层路由口属性生成;将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的版本号及状态值同步至共享内存中。
405、接口管理进程向TCP/IP进程发送属性状态变化消息;
例如,接口管理进程向TCP/IP进程发送属性状态生成消息,记为消息1;消息1用于通知TCP/IP进程,配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的状态变化,消息1携带了配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1;
接口管理进程向TCP/IP进程发送属性状态删除消息,记为消息3;消息3用于通知TCP/IP进程,配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的状态变化,消息3中携带了配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1;
接口管理进程向TCP/IP进程发送属性状态生成消息,记为消息4;消息4用于通知TCP/IP进程,配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的状态变化,消息4中携带了配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号2。
从步骤401至步骤405可知,TCP/IP进程在整个过程中将接收到消息1、消息2、消息3、消息4和消息5,这些消息既有来自于接口管理进程的,又有来自于CLI进程;
由于进程间的通信无法保证时序性,除了可能接收到正常的消息顺序依次为消息1、消息2、消息3、消息4和消息5外(这里标记为情况1),TCP/IP进程还可能接收到的如下7种存在消息时序问题的消息顺序:
情况2:消息1、消息2、消息5、消息3和消息4;
情况3:消息1、消息3、消息2、消息4和消息5;
情况4:消息1、消息3、消息2、消息5和消息4;
情况5:消息2、消息1、消息3、消息4和消息5;
情况6:消息2、消息1、消息3、消息5和消息4;
情况7:消息2、消息1、消息5、消息3和消息4;
情况8:消息2、消息5、消息1、消息3和消息4。
对于保证消息时序的情况1,所有消息完全根据配置命令顺序有序送达,因此TCP/IP进程可以保证配置命令的正确生效,故TCP/IP进程对情况1所示的顺序的消息的处理,本发明在此不再进行赘述。
本发明实施例中,通过步骤406~步骤410,以TCP/IP进程处理情况2所示顺序的消息为例,对图1及图2所示的配置管理方法进行详细说明。
406、TCP/IP进程处理消息1;
其中,TCP/IP进程处理消息1的过程,可以参见图1所示方法,具体包括:TCP/IP进程接收消息1,获取消息1中包括的配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1;TCP/IP进程比较配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1与配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号0(假设之前该接口没有具有过三层路由口属性,故该接口的三层路由口属性为初始值0),结果为配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1高于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号0。
那么,TCP/IP进程则依次删除本地的配置对象(接口Gigabit Ethernet0/1)的三层路由口属性下的配置命令信息(由于之前该接口没有具有过三层口属性,故本地的配置对象(接口Gigabit Ethernet0/1)的三层路由口属性下的配置命令信息本身就为空);将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号更新为配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1;接受处理消息1,即在TCP/IP进程中记录该配置对象(接口Gigabit Ethernet0/1)的三层路由口信息。
407、TCP/IP进程处理消息2;
例如,TCP/IP进程再接收到消息2;
TCP/IP进程获取共享内存中配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1及状态值true;
需要说明的是,配置命令终端进程与配置对象属性控制进程,也就是本实施例中的CLI进程与接口管理进程,对于配置命令的执行是按序进行的,也就是说,CLI进程将配置命令1转发给接口管理进程,待接口管理进程执行了配置命令1生成消息1之后,CLI进程才会将配置命令2转发给TCP/IP进程;因此,步骤407中,TCP/IP进程处理消息2时,能接收到消息2,则说明接口管理进程已经执行了配置命令1,那么此时,获取的共享内存中配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号为1,状态值为true);
由于配置对象(接口Gigabit Ethernet0/1)的三层路由口状态值指示该配置对象生成,则比较配置对象的属性的当前版本号与配置对象的属性的本地版本号;
TCP/IP进程比较配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1与配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号1相同,则接受处理消息2,即在接口Gigabit Ethernet0/1上生效IP地址为10.1.1.1/16的配置。
408、TCP/IP进程处理消息5;
其中,TCP/IP进程处理消息5的方法与步骤407中处理消息2的方法相同,具体可以包括:
TCP/IP进程再接收到消息5,获取共享内存中配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号2及状态值true;
需要说明的是,配置命令终端进程与配置对象属性控制进程,也就是本实施例中的CLI进程与接口管理进程,对于配置命令的执行是按序进行的,也就是说,CLI进程将配置命令1转发给接口管理进程,待接口管理进程执行了配置命令1生成消息1之后,CLI进程才会将配置命令2转发给TCP/IP进程;待接口管理进程执行了配置命令3生成消息3、执行了配置命令4生成消息4之后,CLI进程才会将配置命令5转发给TCP/IP进程;因此,步骤408中,TCP/IP进程处理消息5时,能接收到消息5,则说明接口管理进程已经执行了配置命令3和配置命令4,故获取的共享内存中配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号为2,状态值为true。
由于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的状态值指示该配置对象生成,则比较配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号2与配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号1;
由于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号2,高于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号1,TCP/IP进程先删除处理消息2时生效的IP地址配置,然后将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号更新为2,再接受处理消息5,即在接口Gigabit Ethernet0/1上生效IP地址为10.1.1.2/16的配置。
409、TCP/IP进程处理消息3;
例如,TCP/IP进程先接收到消息3,获取消息3中包括的配置对象(接口GigabitEthernet0/1)的三层路由口属性的当前版本号1。
例如,TCP/IP进程比较配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1与配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号2;
由于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1低于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号2,故,直接丢弃消息3。
410、TCP/IP进程处理消息4;
例如,TCP/IP进程先接收到消息4,获取消息4中包括的配置对象(接口GigabitEthernet0/1)的三层路由口属性的当前版本号2。
TCP/IP进程比较配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号2与配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号2;
由于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号2与配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号2相同,则接受处理消息4。但是实际上消息4所指示的信息已经在处理前面的消息5时处理完成了本地更新,因此此时不需要特殊处理。
通过上述步骤406~步骤410,当TCP/IP进程将情况2顺序所示的5个消息都处理完后,TCP/IP进程上最后生效的是在接口Gigabit Ethernet0/1的三层口上生效IP地址为10.1.1.2/16的配置,与用户的配置期望结果吻合。
TCP/IP进程对情况3~情况8所示顺序的五个信息的处理过程,与步骤406~步骤410相似,下面简单对TCP/IP进程处理情况8所示顺序的消息进行说明,其他情况所示顺序的消息处理过程,本发明实施例在此不再进行详细赘述。
示例性的,TCP/IP进程处理情况8所示顺序的消息的过程可以包括:
TCP/IP进程首先接收到消息2,获取共享内存中配置对象(接口GigabitEthernet0/1)的三层路由口属性的当前版本号1及状态值true;由于配置对象(接口Gigabit Ethernet0/1)的三层路由口状态值指示该配置对象生成,则比较配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1与配置对象(接口GigabitEthernet0/1)的三层路由口属性的本地版本号0;由于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1高于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号0,TCP/IP进程则依次删除本地的配置对象(接口GigabitEthernet0/1)的三层路由口属性下的配置命令信息;将配置对象(接口GigabitEthernet0/1)的三层路由口属性的本地版本号更新为配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1;再接受处理消息2,即在接口Gigabit Ethernet0/1上生效IP地址为10.1.1.1/16的配置;
TCP/IP进程再接收到消息5,获取共享内存中配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号2及状态值true;由于配置对象(接口GigabitEthernet0/1)的三层路由口属性的状态值指示该配置对象生成,则比较配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号2与配置对象(接口GigabitEthernet0/1)的三层路由口属性的本地版本号1;由于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号2,高于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号1,TCP/IP进程先删除处理消息2时生效的IP地址配置,然后将配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号更新为2,再接受处理消息5,即在接口Gigabit Ethernet0/1上生效IP地址为10.1.1.2/16的配置;
TCP/IP进程下来接收到消息1,获取消息1中包括的配置对象(接口GigabitEthernet0/1)的三层路由口属性的当前版本号1;比较配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1与配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号2;配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1低于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号2,故直接丢弃消息1;
TCP/IP进程下来接收到消息3,获取消息3中包括的配置对象(接口GigabitEthernet0/1)的三层路由口属性的当前版本号1;比较配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1与配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号2;由于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号1低于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号2,故,直接丢弃消息3;
TCP/IP进程下来接收到消息4,获取消息4中包括的配置对象(接口GigabitEthernet0/1)的三层路由口属性的当前版本号2;比较配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号2与配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号2;由于配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的当前版本号2与配置对象(接口Gigabit Ethernet0/1)的三层路由口属性的本地版本号2相同,则接受处理消息4。但是实际上消息4所指示的信息已经在处理前面的消息5时处理完成了本地更新,因此此时不需要特殊处理。
通过上述简单对TCP/IP进程处理情况8所示顺序的消息进行说明,当TCP/IP进程将情况8顺序所示的5个消息都处理完后,TCP/IP进程上最后生效的是在接口GigabitEthernet0/1的三层口上生效IP地址为10.1.1.2/16的配置,与用户的配置期望结果吻合。
本发明实施例提供一种配置管理方法,通过配置应用客户端进程接收属性状态变化消息或属性配置应用命令消息;根据属性状态变化消息或属性配置应用命令消息,获取配置对象的属性的当前版本号;比较配置对象的属性的当前版本号与配置对象的属性的本地版本号;若配置对象的属性的当前版本号,高于配置对象的属性的本地版本号,则依次删除本地的配置对象的属性下的配置命令信息,将配置对象的属性的本地版本号更新为配置对象的属性的当前版本号,接受处理属性状态变化消息或属性配置应用命令消息;若配置对象的属性的当前版本号,与配置对象的属性的本地版本号相同,则接受处理属性状态变化消息或属性配置应用命令消息;若配置对象的属性的当前版本号,低于配置对象的属性的本地版本号,则丢弃属性状态变化消息或属性配置应用命令消息;达到避免用户配置命令的配置丢失或者配置错误的目的,解决了现有技术中由于消息的时序问题,不可避免的造成的用户配置命令的配置丢失或者配置错误的缺陷。
实施例五
本发明实施例五提供一种配置管理装置50,参见图5,所述配置管理装置50可以包括:
接收单元501,用于接收第一消息;其中,第一消息包括配置对象的属性标识;
获取单元502,用于根据第一消息,获取配置对象的属性的当前版本号;
比较单元503,比较配置对象的属性的当前版本号与配置对象的属性的本地版本号;
处理单元504,用于若比较单元比较出配置对象的属性的当前版本号,高于配置对象的属性的本地版本号,则依次删除本地的配置对象的属性下的配置命令信息,将配置对象的属性的本地版本号更新为配置对象的属性的当前版本号,接受处理第一消息;
所述处理单元504还可以用于,若比较单元比较出配置对象的属性的当前版本号,与配置对象的属性的本地版本号相同,则接受处理第一消息;
所述处理单元504还可以用于,若比较单元比较出配置对象的属性的当前版本号,低于配置对象的属性的本地版本号,则丢弃第一消息。
可选的,所述接收单元501具体可以用于:
接收配置对象属性控制进程发送的属性状态变化消息;其中,属性状态变化消息包括属性生成消息或属性删除消息;或者,
接收配置命令终端进程发送的属性配置应用命令消息。
进一步的,若第一消息为属性删除消息,当配置对象的属性的当前版本号高于该配置对象的属性的本地版本号,或者当配置对象的属性的当前版本号与该配置对象的属性的本地版本号相同时,所述处理单元504还可以用于:
删除本地配置对象的属性下的配置命令信息;
删除配置对象的属性的本地版本号。
可选的,所述获取单元502具体可以用于:
根据第一消息,查询第一内存,获取配置对象的属性的当前版本号;其中,第一内存为进程可查询的内存区域中的任一区域;
或者,
获取第一消息包括的配置对象的属性的当前版本号;其中,第一消息还可以包括配置对象的属性的当前版本号。
可选的,所述获取单元503还可以用于,获取配置对象的属性的状态值;其中,状态值用于指示配置对象的属性生成或者删除;
所述比较单元503还可以用于,若获取单元502获取的配置对象的属性的状态值指示配置对象的属性生成,则比较配置对象的属性的当前版本号与配置对象的属性的本地版本号;
所述处理单元504还可以用于,若获取单元502获取的配置对象的属性的状态值指示配置对象的属性删除,则删除本地配置对象的属性下的配置命令信息,删除配置对象的属性的本地版本号,丢弃第一消息。
本发明实施例提供一种配置管理装置50,通过配置应用客户端进程接收第一消息;根据第一消息,获取配置对象的属性的当前版本号;比较配置对象的属性的当前版本号与配置对象的属性的本地版本号;若配置对象的属性的当前版本号,高于配置对象的属性的本地版本号,则依次删除本地的配置对象的属性下的配置命令信息,将配置对象的属性的本地版本号更新为配置对象的属性的当前版本号,接受处理第一消息;若配置对象的属性的当前版本号,与配置对象的属性的本地版本号相同,则接受处理第一消息;若配置对象的属性的当前版本号,低于配置对象的属性的本地版本号,则丢弃第一消息;达到避免用户配置命令的配置丢失或者配置错误的目的,解决了现有技术中由于消息的时序问题,不可避免的造成的用户配置命令的配置丢失或者配置错误的缺陷。
实施例六
本发明实施例六提供另一种配置管理装置60,参见图6,所述配置管理装置60可以包括:
接收单元601,用于接收配置命令终端进程转发的配置命令;其中,配置命令包括配置对象的属性的标识;
配置单元602,用于根据配置命令,配置所述配置对象的属性;
更新单元603,用于更新配置对象的属性的版本号及更新配置对象的属性的状态值;其中,版本号记录配置对象的属性的配置记录;状态值用于指示配置对象的属性生成或者删除;
同步单元604,用于将更新后的配置对象的属性的版本号和状态值实时的同步至第一内存中;其中,第一内存为进程可查询的内存区域中的任一区域;
发送单元605,用于若配置对象的属性发生变化,向配置应用客户端进程发送的属性状态变化消息,以使得配置应用客户端进程根据属性状态变化消息,对配置对象的属性的配置命令信息进行管理;其中,属性状态变化消息包括配置对象的属性的标识。
可选的,所述属性状态变化消息可以包括属性生成消息或属性删除消息。
可选的,属性状态变化消息还可以包括配置对象的属性的当前版本号。
进一步的,所述更新单元603具体还可以用于:
若配置对象的属性被删除,将配置对象的属性的版本号保持不变;
若配置对象的属性生成,将配置对象的属性的版本号增加;
若配置对象的属性删除,更新配置对象的属性的状态值指示配置对象的属性删除的值;
若配置对象的属性生成,更新配置对象的属性的状态值指示配置对象的属性生成的值;
或者,
当配置对象的属性生成或删除,将配置对象的属性的版本号增加;
若配置对象的属性删除,更新配置对象的属性的状态值指示配置对象的属性删除的值;
若配置对象的属性生成,更新配置对象的属性的状态值指示配置对象的属性生成的值。
本发明实施例提供一种配置管理装置60,通过配置对象属性控制进程接收配置命令终端进程转发的配置命令;根据配置命令,配置所述配置对象的属性;更新配置对象的属性的版本号及更新配置对象的属性的状态值;将更新后的配置对象的属性的版本号和状态值实时的同步至第一内存中;若配置对象的属性发生变化,向配置应用客户端进程发送的属性状态变化消息,以使得配置应用客户端进程根据属性状态变化消息,对配置对象的属性的配置命令信息进行管理;达到避免用户配置命令的配置丢失或者配置错误的目的,解决了现有技术中由于消息的时序问题,不可避免的造成的用户配置命令的配置丢失或者配置错误的缺陷。
实施例七
本发明实施例七提供一种网络设备70,参见图7A、图7B、图7C,所述网络设备70可以包括:
至少一个如上述任一实施例所述的配置管理装置50;或者,
至少一个如上述任一实施例所述的配置管理装置60;或者,
至少一个如上述任一实施例所述的配置管理装置50和至少一个如上述任一实施例所述的配置管理装置60。
其中,网络设备70可以为任何具有网络通信功能的设备,例如交换机设备;本发明对于网络设备70的形式不进行具体限定。
配置管理装置50、配置管理装置60的结构及用途在上述实施例已经进行了详细描述,此处不再进行赘述。
本发明实施例提供一种网络设备70,通过配置管理装置50、配置管理装置60的协同配置,达到避免用户配置命令的配置丢失或者配置错误的目的,解决了现有技术中由于消息的时序问题,不可避免的造成的用户配置命令的配置丢失或者配置错误的缺陷。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种配置管理方法,其特征在于,包括:
配置对象属性控制进程接收配置命令终端进程转发的配置命令;其中,所述配置命令包括配置对象的属性的标识;
根据所述配置命令,配置所述配置对象的属性;
更新所述配置对象的属性的版本号及更新所述配置对象的属性的状态值;其中,所述版本号记录所述配置对象的属性的配置记录;所述状态值用于指示所述配置对象的属性生成或者删除;
将更新后的所述配置对象的属性的版本号和状态值实时的同步至第一内存中;其中,所述第一内存为进程可查询的内存区域中的任一区域;
若所述配置对象的属性发生变化,向配置应用客户端进程发送属性状态变化消息,以使得所述配置应用客户端进程根据所述属性状态变化消息,对所述配置对象的属性的配置命令信息进行管理;其中,所述属性状态变化消息包括所述配置对象的属性的标识;
其中,所述更新所述配置对象的属性的版本号及更新所述配置对象的属性的状态值包括:
若配置对象的属性被删除,将配置对象的属性的版本号保持不变;若配置对象的属性生成,将配置对象的属性的版本号增加或减少;
或,
当配置对象的属性生成或删除,将配置对象的属性的版本号增加或减少。
2.根据权利要求1所述的配置管理方法,其特征在于,所述属性状态变化消息包括属性生成消息或属性删除消息。
3.根据权利要求1所述的配置管理方法,其特征在于,所述属性状态变化消息还包括:
所述配置对象的属性的当前版本号。
4.一种配置管理装置,其特征在于,包括:
接收单元,用于接收配置命令终端进程转发的配置命令;其中,所述配置命令包括配置对象的属性的标识;
配置单元,用于根据所述配置命令,配置所述配置对象的属性;
更新单元,用于更新所述配置对象的属性的版本号及更新所述配置对象的属性的状态值;其中,所述版本号记录所述配置对象的属性的配置记录;所述状态值用于指示所述配置对象的属性生成或者删除;
同步单元,用于将更新后的所述配置对象的属性的版本号和状态值实时的同步至第一内存中;其中,所述第一内存为进程可查询的内存区域中的任一区域;
发送单元,用于若所述配置对象的属性发生变化,向配置应用客户端进程发送属性状态变化消息,以使得所述配置应用客户端进程根据所述属性状态变化消息,对所述配置对象的属性的配置命令信息进行管理;其中,所述属性状态变化消息包括所述配置对象的属性的标识;
其中,所述更新单元具体用于:
若配置对象的属性被删除,将配置对象的属性的版本号保持不变;若配置对象的属性生成,将配置对象的属性的版本号增加或减少;
或,
当配置对象的属性生成或删除,将配置对象的属性的版本号增加或减少。
5.根据权利要求4所述的配置管理装置,其特征在于,所述属性状态变化消息包括属性生成消息或属性删除消息。
6.根据权利要求5所述的配置管理装置,其特征在于,所述属性状态变化消息还包括:
所述配置对象的属性的当前版本号。
7.一种网络设备,其特征在于,包括:
至少一个如权利要求4-6任一项所述的配置管理装置。
CN201410202737.1A 2014-05-14 2014-05-14 一种配置管理方法、装置及网络设备 Active CN104022896B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410202737.1A CN104022896B (zh) 2014-05-14 2014-05-14 一种配置管理方法、装置及网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410202737.1A CN104022896B (zh) 2014-05-14 2014-05-14 一种配置管理方法、装置及网络设备

Publications (2)

Publication Number Publication Date
CN104022896A CN104022896A (zh) 2014-09-03
CN104022896B true CN104022896B (zh) 2019-01-11

Family

ID=51439479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410202737.1A Active CN104022896B (zh) 2014-05-14 2014-05-14 一种配置管理方法、装置及网络设备

Country Status (1)

Country Link
CN (1) CN104022896B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108449261B (zh) * 2018-03-19 2020-10-02 腾讯科技(深圳)有限公司 消息提示方法、消息版本号处理方法、装置和存储介质
CN110233744B (zh) * 2019-06-12 2021-06-01 广东佳米科技有限公司 一种会议状态显示方法、会议状态更新方法及装置
CN114448803B (zh) * 2022-01-29 2024-06-28 网宿科技股份有限公司 一种配置下发方法、电子设备及存储介质
CN115150344B (zh) * 2022-06-30 2023-07-25 苏州浪潮智能科技有限公司 一种交换机网路端口模式切换方法、装置、设备、介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667131A (zh) * 2009-10-14 2010-03-10 中兴通讯股份有限公司 移动终端及其配置信息的更新方法
CN102026255A (zh) * 2010-12-21 2011-04-20 大唐移动通信设备有限公司 天线参数配置及应用的方法、系统和设备
CN102148698A (zh) * 2010-12-29 2011-08-10 华为技术有限公司 基于网络配置协议的网络配置管理方法、设备和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667131A (zh) * 2009-10-14 2010-03-10 中兴通讯股份有限公司 移动终端及其配置信息的更新方法
CN102026255A (zh) * 2010-12-21 2011-04-20 大唐移动通信设备有限公司 天线参数配置及应用的方法、系统和设备
CN102148698A (zh) * 2010-12-29 2011-08-10 华为技术有限公司 基于网络配置协议的网络配置管理方法、设备和系统

Also Published As

Publication number Publication date
CN104022896A (zh) 2014-09-03

Similar Documents

Publication Publication Date Title
CN107332876B (zh) 区块链状态的同步方法及装置
US9742667B2 (en) Packet processing method, device and system
CN103460203B (zh) 群集唯一标识符
KR101871383B1 (ko) 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템
CN104022896B (zh) 一种配置管理方法、装置及网络设备
EP3364310A1 (en) Data processing method and device
US9871864B2 (en) Fibre channel peer zoning
EP3637735B1 (en) Method and device for handling multi-subscriber request
CN112187491A (zh) 服务器的管理方法、装置和设备
CN103618733A (zh) 一种应用于移动互联网的数据过滤系统及方法
CN103235748A (zh) 元数据的管理方法和系统
CN106911769B (zh) 云平台路由数据的处理方法和云平台的物理服务器
CN105656643B (zh) 一种基于网络配置协议进行兼容管理的方法及设备
CN102957546A (zh) 配置处理方法、装置及系统
CN107094085B (zh) 一种信令传送方法及装置
WO2017162045A1 (zh) 一种消息的发送方法和终端设备
CN111614726A (zh) 一种数据转发方法、集群系统及存储介质
CN110851186A (zh) 网络设备重启的方法、装置、电子设备及可读存储介质
CN112804276A (zh) 虚拟化宽带远程接入服务器及其控制方法、通信系统
CN112291312B (zh) Etl数据同步方法及装置、电子设备、存储介质
CN112738153B (zh) 业务系统中的网关选择方法、系统、装置、服务器及介质
CN107493181B (zh) 虚拟扩展端口的指示方法和装置
US8700954B2 (en) Common trouble case data generating method and non-transitory computer-readable medium storing common trouble case data generating program
CN110830477B (zh) 一种业务的识别方法、装置、网关、系统及存储介质
CN107770265B (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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 juyuanzhou Industrial Park, 19 floor

Patentee after: RUIJIE NETWORKS Co.,Ltd.

Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 juyuanzhou Industrial Park, 19 floor

Patentee before: Beijing Star-Net Ruijie Networks Co.,Ltd.