消息格式转换方法和网络设备及代理装置的制作方法

文档序号:7697624阅读:138来源:国知局
专利名称:消息格式转换方法和网络设备及代理装置的制作方法
技术领域
本发明涉及网络技术领域,尤其涉及一种消息格式转换方法和网络设备及 代理装置。
背景技术
在网管软件应用日趋广泛,被管设备也越来越多。在网管产品中会涉及到
很多消息格式的转换工作。网管中被管设备的Agent (代理)为了适配不同的 协议,并且为了获得很好的可扩展性和可移植性需要在Agent内部自定义一套 消息格式(消息格式A)。该消息格式(消息格式A)与业务软件的消息格式 (消息格式B )存在格式上的差别。接口适配模块所需要做的工作就是将内部 消息格式转换成设备消息格式。接口适配模块还可以做为 一个各个网管协议模 块的接入点,如果需要扩展新的网管协议,直接从接口适配模块接入即可。
现有技术采用硬编码的形式实现接口适配模块中消息格式之间的转换。根 据不同的内部消息命令字,调用相应的消息处理函数实现消息的转换。采用这 种方式,需要对每一个命令都实现一个消息处理对象。消息处理对象的功能就 是将内部消息转换成设备消息。 一般包括以下几个步骤l)消息处理器接收 到消息格式为A的命令;2)根据不同的命令字创建不同的消息处理对象;3) 调用消息处理对象提供的命令处理接口将命令转换成消息格式B的命令;4) 将转换完成的消息格式为B的消息下发到业务模块设备。其中消息格式A可 能是设备的内部消息,消息格式B可能是对外的设备消息。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺点
现有技术对所有的命令字都需要实现一个消息处理对象,增加命令需要增加转 换的代码,对接口的修改也需要修改相对应的命令字的转换代码,可扩展性差。

发明内容
本发明实施例提供了 一种消息格式转换方法和网络设备及代理装置,可以 增强接口适配过程中的可扩展性。一种消息格式转换方法,包括
接收设备的内部消息,所述内部消息包括命令字;
利用统一的命令处理函数从预先设置的配置文件中获取与所述命令字相 应的参数,并根据获取的参数创建预定格式的设备消息;
其中,所述配置文件定义有所述命令字需要从内部消息中取出的参数信

一种网络设备的代理装置,包括
接收单元,用于接收设备的内部消息,所述内部消息包括命令字;
消息生成单元,用于利用统一的命令处理函数从预先设置的配置文件中获 取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息;其 中,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息。
一种网络设备,包括
第二存储单元,用于存储配置文件,所述配置文件用于实现适配不同网管 接口,将设备的内部消息转换成不同网管协议格式的设备消息,所述配置文件 定义有所述命令字需要从内部消息中取出的参数信息;
代理装置,用于接收设备的内部消息,所述内部消息包括命令字;利用统 一的命令处理函数从所述配置文件中获取与所述命令字相应的参数,并根据获 取的参数创建预定格式的设备消息。
上述技术方案对所有的命令字只需要同一个消息处理函数,增强接口适配 过程中的可扩展性;对接口的修改不需要修改相应的代码,只需要修改相应的 配置文件即可。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的消息格式转换方法一的流程示意图; 图2为本发明实施例提供的网络设备的代理装置的结构示意图; 图3为本发明实施例的网络设备的代理装置执行消息格式转换方法的流 程示意图4为本发明实施例提供的网络设备的结构示意图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所荻得的所有其他实施例,都属于本发明保护的范围。
实施例一 消息格式转换方法
技术领域
本发明实施例采用配置文件的形式,将每一个命令字需要从内部消息中取 出的参数定义到配置文件中,然后采用统一的命令处理函数,从配置文件中获 取命令字的参数,添加到设备消息中,实现了内部消息与设备消息的格式转换。 如图1所示,消息格式转换方法包括
511、 接收设备的内部消息,内部消息包括命令字;
512、 利用统一的命令处理函数从预先设置的配置文件中获取与所述命令 字相应的参数;其中,所述配置文件定义有所述命令字需要从内部消息中取出 的参数信息。
配置文件的内容可以包括命令字名称、命令字的值,及与所述命令字对 应的参数、参数值和参数类型等。例如,配置文件格式可以如下代码所示
〈C0MM扁S〉
〈Co咖and key=〃GET—ALRAM〃 CMDCode=〃54323〃〉 〈Parameter TAG=〃TAG—GET—ALARM—START—SEQUENCE" value=〃0" Type=〃unsigned 1ong'7〉 (Parameter TAG=〃TAG_GET_ALARM—COUNT" value=〃0〃 Type="unsigned long",'〉 〈Pa腦eter TAG="TAG—INVALID" value="0" Type="unsigned long7> <Paxameter TAG=〃TAG_INVALID" value=〃0〃 Type="unsigned long7></Command>
〈Command key=〃XXX〃 CMDCode=〃12345〃〉 〈Parameter TAG="TAG1" Value="0〃 Type=〃string7>
</Command>
</C0MMANDS>
上述代码中,各个字段描述如下
COMMANDS段用来描述所有命令;
Command段用来描述一个命令的命令字及参数;
Command段中的Key表示命令字的名称;
Command段中的CMDCode表示命令字的值。 Parameter段用来描述一个参数;
TAG表述参数的标记符,Value表示一个默认值;Type表示参数的类型; 如果参数TAG为"TAG_INVALID",则表述此命令参数填写默认值即可。 S13、根据获取的参数创建预定格式的设备消息。
根据配置文件的定义取出相应的参数,并填充到设备消息中便生成了所需 要的设备消息。利用所述命令处理函数从所述内部消息中获取命令字的名称, 根据所述命令字的名称从所述配置文件中获取相应命令字的值、命令字的参数 和参数值,将所述命令字的值、命令字的参数和参数值填充到预定格式的设备 消息中。
采用本发明实施例提供的消息格式转换方法,可以将所有的命令处理函数 实现改为一个,如查询告警的命令通过配置文件就可以找到要从消息格式A 中获取什么参数,并顺序填到消息格式B中即可。统一的命令处理函数可以 参考如下int porocessMessage (MSGTypel in, MSGType2H5 out)
string strCommand 二 getCommandNajne(in. cmd()); 〃命令字转换成Command key map<std:: string, Uirvt32〉 iterator it一cmd;
it_cmd 二 m_cmdTable. find (strCommand); 〃从配置文件中读取命令字的值 int u32Qnd 二 it一cmd—>second; out. cmd (u32Cmd);
std:: vector〈CParam5^ >:: iterator iter = pCmd-〉—params. begin(); for(;iter != pCmd-〉—params. end();iter++)
〃获取命令中的参数, 一个一个参数处理
CParam氺pPara =(氺iter);
if (pPara->TAG = TAG—INVALID)
out-〉addParameter(pPaxa-〉value);
if( "string" =二 pPara-〉type )
string value 二 in. getPaxameterStr (pParti->TAG); out->addParaineter (value);
else if( 〃usingned lcmg〃 " pPara-〉typc )
int value 二 in. getParameter(pPara-〉TAG); out-〉addParameter(value);return RETURN—OK;
本发明实施例的消息格式转换方法,对所有的命令字只需要同一个消息处
理函数,增强接口适配过程中的可扩展性;对接口的修改不需要修改相应的代 码,只需要纟务改相应的配置文件即可。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随才几存A者记忆体(RandomAccess Memory, RAM)等。
如图2所示,是本发明实施例提供的网络设备的代理装置的结构示意图, 包括
接收单元21,用于接收设备的内部消息,所述内部消息包括命令字;
消息生成单元22,用于利用统一的命令处理函数从预先设置的配置文件 中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消 息;其中,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息。
消息生成单元22包括
命令字获取单元221,用于利用所述命令处理函数从所述内部消息中获取 命令字的名称;
参数获取单元222,用于根据所述命令字的名称从所述配置文件中获取相 应命令字的值、命令字的参数和参数值;
构建单元223,用于将所述命令字的值、命令字的参数和参数值填充到预 定格式的设备消息中,构建所述预定格式的设备消息。代理装置还包括第一存储单元23,用于存储所述配置文件。配置文件的 内容可以包括命令字名称、命令字的值,及与所述命令字对应的参数、参数值 和参数类型。
图3是本发明实施例的网络设备的代理装置执行消息格式转换方法的流 程示意图,代理装置30接收内部消息31,从接收到的内部消息31中获取命 令字。代理装置30创建设备消息对象,生成初始的设备消息33,根据内部消 31息包含的命令字从配置文件中循环读取设备消息所需要的参数,依次将获 取的参数值添加到设备消息中,而后代理装置返回生成的设备消息。
本发明实施例的网络设备的代理装置,对所有的命令字只需要同 一个消息 处理函数,增强接口适配过程中的可扩展性;对接口的修改不需要修改相应的 代码,只需要^务改相应的配置文件即可。
如图4所示,本发明实施例还提供了 一种网络设备41 ,网络设备41包括 有第二存储单元411,用于存储配置文件,所述配置文件用于实现适配不同网 管接口,将设备的内部消息转换成不同网管协议格式的设备消息,所述配置文
件定义有所述命令字需要从内部消息中取出的参数信息。配置文件的内容可以 包括命令字名称、命令字的值,及与所述命令字对应的参数、参数值和参数类型。
网络设备41还包括
代理装置412,用于接收设备的内部消息,所述内部消息包括命令字;利 用统一的命令处理函数从所述配置文件中获取与所述命令字相应的参数,并根 据获取的参数创建预定格式的设备消息。
本发明实施例的网络设备,在进行消息格式转换时,对所有的命令字只需 要同一个消息处理函数,增强接口适配过程中的可扩展性;对接口的修改不需 要修改相应的代码,只需要修改相应的配置文件即可。
以上所述仅为本发明的几个实施例,本领域的技术人员依据申请文件公开 的可以对本发明进行各种改动或变型而不脱离本发明的精神和范围。
权利要求
1、一种消息格式转换方法,其特征在于,包括接收设备的内部消息,所述内部消息包括命令字;利用统一的命令处理函数从预先设置的配置文件中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息;其中,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息。
2、 如权利要求1所述的方法,其特征在于,所述配置文件的内容包括命令字名称、命令字的值,及与所述命令字对应的参数、参数值和参数类型。
3、 如权利要求2所述的方法,其特征在于,所述利用统一的命令处理函数从预先设置的配置文件中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息的步骤包括利用所述命令处理函数从所述内部消息中荻取命令字的名称;根据所述命令字的名称从所述配置文件中获取相应命令字的值、命令字的参数和参数值;将所述命令字的值、命令字的参数和参数值填充到预定格式的设备消息中。
4、 一种网络设备的代理装置,其特征在于,包括接收单元,用于接收设备的内部消息,所述内部消息包括命令字;消息生成单元,用于利用统一的命令处理函数从预先设置的配置文件中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息;其中,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息。
5、 如权利要求4所述的装置,其特征在于,所述消息生成单元包括命令字获取单元,用于利用所述命令处理函数从所述内部消息中获取命令字的名称;参数获取单元,用于根据所述命令字的名称从所述配置文件中获取相应命令字的值、命令字的参数和参数值;构建单元,用于将所述命令字的值、命令字的参数和参数值填充到预定格式的设备消息中,构建所述预定格式的设备消息。
6、 如权利要求4所述的装置,其特征在于,还包括第一存储单元,用于存储所述配置文件。
7、 如权利要求4至6任一项所述的装置,其特征在于,所述配置文件的内容包括命令字名称、命令字的值,及与所述命令字对应的参数、参数值和参数类型。
8、 一种网络设备,其特征在于,包括第二存储单元,用于存储配置文件,所述配置文件用于实现适配不同网管接口,将设备的内部消息转换成不同网管协议格式的设备消息,所述配置文件定义有所述命令字需要从内部消息中取出的参数信息;代理装置,用于接收设备的内部消息,所述内部消息包括命令字;利用统一的命令处理函数从所述配置文件中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息。
9、 根据权利要求8所述的网络设备,其特征在于,所述配置文件的内容包括命令字名称、命令字的值,及与所述命令字对应的参数、参数值和参数类型。
10、 根据权利要求8所述的网络设备,其特征在于,所述代理装置用于利用所述命令处理函数从所述内部消息中获取命令字的名称;根据所述命令字的名称从所述配置文件中获取相应命令字的值、命令字的参数和参数值;将所述命令字的值、命令字的参数和参数值填充到预定格式的设备消息中。
全文摘要
本发明实施例公开了一种消息格式转换方法,所述方法包括接收设备的内部消息,所述内部消息包括命令字;利用统一的命令处理函数从预先设置的配置文件中获取与所述命令字相应的参数,并根据获取的参数创建预定格式的设备消息;其中,所述配置文件定义有每所述命令字需要从内部消息中取出的参数信息。本发明实施例还相应公开了一种网络设备的代理装置和一种网络设备。上述技术方案对所有的命令字只需要同一个消息处理函数,增强接口适配过程中的可扩展性;对接口的修改不需要修改相应的代码,只需要修改相应的配置文件即可。
文档编号H04L12/24GK101515929SQ20091005869
公开日2009年8月26日 申请日期2009年3月24日 优先权日2009年3月24日
发明者王亚东 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1