消息格式转换方法和网络设备及代理装置
技术领域
本发明涉及网络技术领域,尤其涉及一种消息格式转换方法和网络设备及代理装置。
背景技术
在网管软件应用日趋广泛,被管设备也越来越多。在网管产品中会涉及到很多消息格式的转换工作。网管中被管设备的Agent(代理)为了适配不同的协议,并且为了获得很好的可扩展性和可移植性需要在Agent内部自定义一套消息格式(消息格式A)。该消息格式(消息格式A)与业务软件的消息格式(消息格式B)存在格式上的差别。接口适配模块所需要做的工作就是将内部消息格式转换成设备消息格式。接口适配模块还可以做为一个各个网管协议模块的接入点,如果需要扩展新的网管协议,直接从接口适配模块接入即可。
现有技术采用硬编码的形式实现接口适配模块中消息格式之间的转换。根据不同的内部消息命令字,调用相应的消息处理函数实现消息的转换。采用这种方式,需要对每一个命令都实现一个消息处理对象。消息处理对象的功能就是将内部消息转换成设备消息。一般包括以下几个步骤:1)消息处理器接收到消息格式为A的命令;2)根据不同的命令字创建不同的消息处理对象;3)调用消息处理对象提供的命令处理接口将命令转换成消息格式B的命令;4)将转换完成的消息格式为B的消息下发到业务模块设备。其中消息格式A可能是设备的内部消息,消息格式B可能是对外的设备消息。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺点:现有技术对所有的命令字都需要实现一个消息处理对象,增加命令需要增加转换的代码,对接口的修改也需要修改相对应的命令字的转换代码,可扩展性差。
发明内容
本发明实施例提供了一种消息格式转换方法和网络设备及代理装置,可以增强接口适配过程中的可扩展性。
一种消息格式转换方法,包括:
接收设备的内部消息,所述内部消息包括命令字;
利用统一的命令处理函数从预先设置的配置文件中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息;
其中,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息,所述配置文件的内容包括:命令字名称、命令字的值,及与所述命令字对应的参数、参数值和参数类型;
所述利用统一的命令处理函数从预先设置的配置文件中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息的步骤包括:
利用所述命令处理函数从所述内部消息中获取命令字的名称;
根据所述命令字的名称从所述配置文件中获取相应命令字的值、命令字的参数和参数值;
将所述命令字的值、命令字的参数和参数值填充到预定格式的设备消息中。
一种网络设备的代理装置,包括:
接收单元,用于接收设备的内部消息,所述内部消息包括命令字;
消息生成单元,用于利用统一的命令处理函数从预先设置的配置文件中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息;其中,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息,所述配置文件的内容包括:命令字名称、命令字的值,及与所述命令字对应的参数、参数值和参数类型;
所述消息生成单元包括:
命令字获取单元,用于利用所述命令处理函数从所述内部消息中获取命令字的名称;
参数获取单元,用于根据所述命令字的名称从所述配置文件中获取相应命令字的值、命令字的参数和参数值;
构建单元,用于将所述命令字的值、命令字的参数和参数值填充到预定格式的设备消息中,构建所述预定格式的设备消息。
一种网络设备,包括:第二存储单元和代理装置;
所述第二存储单元,用于存储配置文件,所述配置文件用于实现适配不同网管接口,将设备的内部消息转换成不同网管协议格式的设备消息,所述设备的内部消息包括命令字,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息;
所述代理装置,包括接收单元和消息生成单元;
所述接收单元,用于接收设备的内部消息;
所述消息生成单元,用于利用统一的命令处理函数从预先设置的配置文件中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息;其中,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息,所述配置文件的内容包括:命令字名称、命令字的值,及与所述命令字对应的参数、参数值和参数类型;
所述消息生成单元包括:命令字获取单元、参数获取单元和构建单元
所述命令字获取单元,用于利用所述命令处理函数从所述内部消息中获取命令字的名称;
所述参数获取单元,用于根据所述命令字的名称从所述配置文件中获取相应命令字的值、命令字的参数和参数值;
所述构建单元,用于将所述命令字的值、命令字的参数和参数值填充到预定格式的设备消息中,构建所述预定格式的设备消息。
上述技术方案对所有的命令字只需要同一个消息处理函数,增强接口适配过程中的可扩展性;对接口的修改不需要修改相应的代码,只需要修改相应的配置文件即可。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的消息格式转换方法一的流程示意图;
图2为本发明实施例提供的网络设备的代理装置的结构示意图;
图3为本发明实施例的网络设备的代理装置执行消息格式转换方法的流程示意图;
图4为本发明实施例提供的网络设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一消息格式转换方法
本发明实施例采用配置文件的形式,将每一个命令字需要从内部消息中取出的参数定义到配置文件中,然后采用统一的命令处理函数,从配置文件中获取命令字的参数,添加到设备消息中,实现了内部消息与设备消息的格式转换。如图1所示,消息格式转换方法包括:
S11、接收设备的内部消息,内部消息包括命令字;
S12、利用统一的命令处理函数从预先设置的配置文件中获取与所述命令字相应的参数;其中,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息。
配置文件的内容可以包括:命令字名称、命令字的值,及与所述命令字对应的参数、参数值和参数类型等。例如,配置文件格式可以如下代码所示:
上述代码中,各个字段描述如下:
COMMANDS段:用来描述所有命令;
Command段:用来描述一个命令的命令字及参数;
Command段中的Key表示命令字的名称;
Command段中的CMDCode表示命令字的值。
Parameter段:用来描述一个参数;
TAG表述参数的标记符,Value表示一个默认值;Type表示参数的类型;
如果参数TAG为“TAG_INVALID”,则表述此命令参数填写默认值即可。
S13、根据获取的参数创建预定格式的设备消息。
根据配置文件的定义取出相应的参数,并填充到设备消息中便生成了所需要的设备消息。利用所述命令处理函数从所述内部消息中获取命令字的名称,根据所述命令字的名称从所述配置文件中获取相应命令字的值、命令字的参数和参数值,将所述命令字的值、命令字的参数和参数值填充到预定格式的设备消息中。
采用本发明实施例提供的消息格式转换方法,可以将所有的命令处理函数实现改为一个,如查询告警的命令通过配置文件就可以找到要从消息格式A中获取什么参数,并顺序填到消息格式B中即可。统一的命令处理函数可以参考如下:
本发明实施例的消息格式转换方法,对所有的命令字只需要同一个消息处 理函数,增强接口适配过程中的可扩展性;对接口的修改不需要修改相应的代码,只需要修改相应的配置文件即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
如图2所示,是本发明实施例提供的网络设备的代理装置的结构示意图,包括:
接收单元21,用于接收设备的内部消息,所述内部消息包括命令字;
消息生成单元22,用于利用统一的命令处理函数从预先设置的配置文件中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息;其中,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息。
消息生成单元22包括:
命令字获取单元221,用于利用所述命令处理函数从所述内部消息中获取命令字的名称;
参数获取单元222,用于根据所述命令字的名称从所述配置文件中获取相应命令字的值、命令字的参数和参数值;
构建单元223,用于将所述命令字的值、命令字的参数和参数值填充到预定格式的设备消息中,构建所述预定格式的设备消息。
代理装置还包括第一存储单元23,用于存储所述配置文件。配置文件的内容可以包括命令字名称、命令字的值,及与所述命令字对应的参数、参数值和参数类型。
图3是本发明实施例的网络设备的代理装置执行消息格式转换方法的流程示意图,代理装置30接收内部消息31,从接收到的内部消息31中获取命 令字。代理装置30创建设备消息对象,生成初始的设备消息33,根据内部消31息包含的命令字从配置文件中循环读取设备消息所需要的参数,依次将获取的参数值添加到设备消息中,而后代理装置返回生成的设备消息。
本发明实施例的网络设备的代理装置,对所有的命令字只需要同一个消息处理函数,增强接口适配过程中的可扩展性;对接口的修改不需要修改相应的代码,只需要修改相应的配置文件即可。
如图4所示,本发明实施例还提供了一种网络设备41,网络设备41包括有第二存储单元411,用于存储配置文件,所述配置文件用于实现适配不同网管接口,将设备的内部消息转换成不同网管协议格式的设备消息,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息。配置文件的内容可以包括:命令字名称、命令字的值,及与所述命令字对应的参数、参数值和参数类型。
网络设备41还包括:
代理装置412,用于接收设备的内部消息,所述内部消息包括命令字;利用统一的命令处理函数从所述配置文件中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息。
本发明实施例的网络设备,在进行消息格式转换时,对所有的命令字只需要同一个消息处理函数,增强接口适配过程中的可扩展性;对接口的修改不需要修改相应的代码,只需要修改相应的配置文件即可。
以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。