專利名稱:消息格式轉換方法和網(wǎng)絡設備及代理裝置的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡技術領域,尤其涉及一種消息格式轉換方法和網(wǎng)絡設備及 代理裝置。
背景技術:
在網(wǎng)管軟件應用日趨廣泛,被管設備也越來越多。在網(wǎng)管產(chǎn)品中會涉及到
很多消息格式的轉換工作。網(wǎng)管中被管設備的Agent (代理)為了適配不同的 協(xié)議,并且為了獲得很好的可擴展性和可移植性需要在Agent內(nèi)部自定義一套 消息格式(消息格式A)。該消息格式(消息格式A)與業(yè)務軟件的消息格式 (消息格式B )存在格式上的差別。接口適配模塊所需要做的工作就是將內(nèi)部 消息格式轉換成設備消息格式。接口適配模塊還可以做為 一個各個網(wǎng)管協(xié)議模 塊的接入點,如果需要擴展新的網(wǎng)管協(xié)議,直接從接口適配模塊接入即可。
現(xiàn)有技術采用硬編碼的形式實現(xiàn)接口適配模塊中消息格式之間的轉換。根 據(jù)不同的內(nèi)部消息命令字,調(diào)用相應的消息處理函數(shù)實現(xiàn)消息的轉換。采用這 種方式,需要對每一個命令都實現(xiàn)一個消息處理對象。消息處理對象的功能就 是將內(nèi)部消息轉換成設備消息。 一般包括以下幾個步驟l)消息處理器接收 到消息格式為A的命令;2)根據(jù)不同的命令字創(chuàng)建不同的消息處理對象;3) 調(diào)用消息處理對象提供的命令處理接口將命令轉換成消息格式B的命令;4) 將轉換完成的消息格式為B的消息下發(fā)到業(yè)務模塊設備。其中消息格式A可 能是設備的內(nèi)部消息,消息格式B可能是對外的設備消息。
發(fā)明人在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術至少存在以下缺點
現(xiàn)有技術對所有的命令字都需要實現(xiàn)一個消息處理對象,增加命令需要增加轉 換的代碼,對接口的修改也需要修改相對應的命令字的轉換代碼,可擴展性差。
發(fā)明內(nèi)容
本發(fā)明實施例提供了 一種消息格式轉換方法和網(wǎng)絡設備及代理裝置,可以 增強接口適配過程中的可擴展性。一種消息格式轉換方法,包括
接收設備的內(nèi)部消息,所述內(nèi)部消息包括命令字;
利用統(tǒng)一的命令處理函數(shù)從預先設置的配置文件中獲取與所述命令字相 應的參數(shù),并根據(jù)獲取的參數(shù)創(chuàng)建預定格式的設備消息;
其中,所述配置文件定義有所述命令字需要從內(nèi)部消息中取出的參數(shù)信
自
一種網(wǎng)絡設備的代理裝置,包括
接收單元,用于接收設備的內(nèi)部消息,所述內(nèi)部消息包括命令字;
消息生成單元,用于利用統(tǒng)一的命令處理函數(shù)從預先設置的配置文件中獲 取與所述命令字相應的參數(shù),并根據(jù)獲取的參數(shù)創(chuàng)建預定格式的設備消息;其 中,所述配置文件定義有所述命令字需要從內(nèi)部消息中取出的參數(shù)信息。
一種網(wǎng)絡設備,包括
第二存儲單元,用于存儲配置文件,所述配置文件用于實現(xiàn)適配不同網(wǎng)管 接口,將設備的內(nèi)部消息轉換成不同網(wǎng)管協(xié)議格式的設備消息,所述配置文件 定義有所述命令字需要從內(nèi)部消息中取出的參數(shù)信息;
代理裝置,用于接收設備的內(nèi)部消息,所述內(nèi)部消息包括命令字;利用統(tǒng) 一的命令處理函數(shù)從所述配置文件中獲取與所述命令字相應的參數(shù),并根據(jù)獲 取的參數(shù)創(chuàng)建預定格式的設備消息。
上述技術方案對所有的命令字只需要同一個消息處理函數(shù),增強接口適配 過程中的可擴展性;對接口的修改不需要修改相應的代碼,只需要修改相應的 配置文件即可。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施 例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述 中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的消息格式轉換方法一的流程示意圖; 圖2為本發(fā)明實施例提供的網(wǎng)絡設備的代理裝置的結構示意圖; 圖3為本發(fā)明實施例的網(wǎng)絡設備的代理裝置執(zhí)行消息格式轉換方法的流 程示意圖4為本發(fā)明實施例提供的網(wǎng)絡設備的結構示意圖。
具體實施例方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清 楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是 全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造 性勞動前提下所荻得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例一 消息格式轉換方法
技術領域:
本發(fā)明實施例采用配置文件的形式,將每一個命令字需要從內(nèi)部消息中取 出的參數(shù)定義到配置文件中,然后采用統(tǒng)一的命令處理函數(shù),從配置文件中獲 取命令字的參數(shù),添加到設備消息中,實現(xiàn)了內(nèi)部消息與設備消息的格式轉換。 如圖1所示,消息格式轉換方法包括
511、 接收設備的內(nèi)部消息,內(nèi)部消息包括命令字;
512、 利用統(tǒng)一的命令處理函數(shù)從預先設置的配置文件中獲取與所述命令 字相應的參數(shù);其中,所述配置文件定義有所述命令字需要從內(nèi)部消息中取出 的參數(shù)信息。
配置文件的內(nèi)容可以包括命令字名稱、命令字的值,及與所述命令字對 應的參數(shù)、參數(shù)值和參數(shù)類型等。例如,配置文件格式可以如下代碼所示
〈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段用來描述一個命令的命令字及參數(shù);
Command段中的Key表示命令字的名稱;
Command段中的CMDCode表示命令字的值。 Parameter段用來描述一個參數(shù);
TAG表述參數(shù)的標記符,Value表示一個默認值;Type表示參數(shù)的類型; 如果參數(shù)TAG為"TAG_INVALID",則表述此命令參數(shù)填寫默認值即可。 S13、根據(jù)獲取的參數(shù)創(chuàng)建預定格式的設備消息。
根據(jù)配置文件的定義取出相應的參數(shù),并填充到設備消息中便生成了所需 要的設備消息。利用所述命令處理函數(shù)從所述內(nèi)部消息中獲取命令字的名稱, 根據(jù)所述命令字的名稱從所述配置文件中獲取相應命令字的值、命令字的參數(shù) 和參數(shù)值,將所述命令字的值、命令字的參數(shù)和參數(shù)值填充到預定格式的設備 消息中。
采用本發(fā)明實施例提供的消息格式轉換方法,可以將所有的命令處理函數(shù) 實現(xiàn)改為一個,如查詢告警的命令通過配置文件就可以找到要從消息格式A 中獲取什么參數(shù),并順序填到消息格式B中即可。統(tǒng)一的命令處理函數(shù)可以 參考如下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++)
〃獲取命令中的參數(shù), 一個一個參數(shù)處理
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;
本發(fā)明實施例的消息格式轉換方法,對所有的命令字只需要同一個消息處
理函數(shù),增強接口適配過程中的可擴展性;對接口的修改不需要修改相應的代 碼,只需要纟務改相應的配置文件即可。
本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程, 是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算 機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。 其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨才幾存A者記憶體(RandomAccess Memory, RAM)等。
如圖2所示,是本發(fā)明實施例提供的網(wǎng)絡設備的代理裝置的結構示意圖, 包括
接收單元21,用于接收設備的內(nèi)部消息,所述內(nèi)部消息包括命令字;
消息生成單元22,用于利用統(tǒng)一的命令處理函數(shù)從預先設置的配置文件 中獲取與所述命令字相應的參數(shù),并根據(jù)獲取的參數(shù)創(chuàng)建預定格式的設備消 息;其中,所述配置文件定義有所述命令字需要從內(nèi)部消息中取出的參數(shù)信息。
消息生成單元22包括
命令字獲取單元221,用于利用所述命令處理函數(shù)從所述內(nèi)部消息中獲取 命令字的名稱;
參數(shù)獲取單元222,用于根據(jù)所述命令字的名稱從所述配置文件中獲取相 應命令字的值、命令字的參數(shù)和參數(shù)值;
構建單元223,用于將所述命令字的值、命令字的參數(shù)和參數(shù)值填充到預 定格式的設備消息中,構建所述預定格式的設備消息。代理裝置還包括第一存儲單元23,用于存儲所述配置文件。配置文件的 內(nèi)容可以包括命令字名稱、命令字的值,及與所述命令字對應的參數(shù)、參數(shù)值 和參數(shù)類型。
圖3是本發(fā)明實施例的網(wǎng)絡設備的代理裝置執(zhí)行消息格式轉換方法的流 程示意圖,代理裝置30接收內(nèi)部消息31,從接收到的內(nèi)部消息31中獲取命 令字。代理裝置30創(chuàng)建設備消息對象,生成初始的設備消息33,根據(jù)內(nèi)部消 31息包含的命令字從配置文件中循環(huán)讀取設備消息所需要的參數(shù),依次將獲 取的參數(shù)值添加到設備消息中,而后代理裝置返回生成的設備消息。
本發(fā)明實施例的網(wǎng)絡設備的代理裝置,對所有的命令字只需要同 一個消息 處理函數(shù),增強接口適配過程中的可擴展性;對接口的修改不需要修改相應的 代碼,只需要^務改相應的配置文件即可。
如圖4所示,本發(fā)明實施例還提供了 一種網(wǎng)絡設備41 ,網(wǎng)絡設備41包括 有第二存儲單元411,用于存儲配置文件,所述配置文件用于實現(xiàn)適配不同網(wǎng) 管接口,將設備的內(nèi)部消息轉換成不同網(wǎng)管協(xié)議格式的設備消息,所述配置文
件定義有所述命令字需要從內(nèi)部消息中取出的參數(shù)信息。配置文件的內(nèi)容可以 包括命令字名稱、命令字的值,及與所述命令字對應的參數(shù)、參數(shù)值和參數(shù)類型。
網(wǎng)絡設備41還包括
代理裝置412,用于接收設備的內(nèi)部消息,所述內(nèi)部消息包括命令字;利 用統(tǒng)一的命令處理函數(shù)從所述配置文件中獲取與所述命令字相應的參數(shù),并根 據(jù)獲取的參數(shù)創(chuàng)建預定格式的設備消息。
本發(fā)明實施例的網(wǎng)絡設備,在進行消息格式轉換時,對所有的命令字只需 要同一個消息處理函數(shù),增強接口適配過程中的可擴展性;對接口的修改不需 要修改相應的代碼,只需要修改相應的配置文件即可。
以上所述僅為本發(fā)明的幾個實施例,本領域的技術人員依據(jù)申請文件公開 的可以對本發(fā)明進行各種改動或變型而不脫離本發(fā)明的精神和范圍。
權利要求
1、一種消息格式轉換方法,其特征在于,包括接收設備的內(nèi)部消息,所述內(nèi)部消息包括命令字;利用統(tǒng)一的命令處理函數(shù)從預先設置的配置文件中獲取與所述命令字相應的參數(shù),并根據(jù)獲取的參數(shù)創(chuàng)建預定格式的設備消息;其中,所述配置文件定義有所述命令字需要從內(nèi)部消息中取出的參數(shù)信息。
2、 如權利要求1所述的方法,其特征在于,所述配置文件的內(nèi)容包括命令字名稱、命令字的值,及與所述命令字對應的參數(shù)、參數(shù)值和參數(shù)類型。
3、 如權利要求2所述的方法,其特征在于,所述利用統(tǒng)一的命令處理函數(shù)從預先設置的配置文件中獲取與所述命令字相應的參數(shù),并根據(jù)獲取的參數(shù)創(chuàng)建預定格式的設備消息的步驟包括利用所述命令處理函數(shù)從所述內(nèi)部消息中荻取命令字的名稱;根據(jù)所述命令字的名稱從所述配置文件中獲取相應命令字的值、命令字的參數(shù)和參數(shù)值;將所述命令字的值、命令字的參數(shù)和參數(shù)值填充到預定格式的設備消息中。
4、 一種網(wǎng)絡設備的代理裝置,其特征在于,包括接收單元,用于接收設備的內(nèi)部消息,所述內(nèi)部消息包括命令字;消息生成單元,用于利用統(tǒng)一的命令處理函數(shù)從預先設置的配置文件中獲取與所述命令字相應的參數(shù),并根據(jù)獲取的參數(shù)創(chuàng)建預定格式的設備消息;其中,所述配置文件定義有所述命令字需要從內(nèi)部消息中取出的參數(shù)信息。
5、 如權利要求4所述的裝置,其特征在于,所述消息生成單元包括命令字獲取單元,用于利用所述命令處理函數(shù)從所述內(nèi)部消息中獲取命令字的名稱;參數(shù)獲取單元,用于根據(jù)所述命令字的名稱從所述配置文件中獲取相應命令字的值、命令字的參數(shù)和參數(shù)值;構建單元,用于將所述命令字的值、命令字的參數(shù)和參數(shù)值填充到預定格式的設備消息中,構建所述預定格式的設備消息。
6、 如權利要求4所述的裝置,其特征在于,還包括第一存儲單元,用于存儲所述配置文件。
7、 如權利要求4至6任一項所述的裝置,其特征在于,所述配置文件的內(nèi)容包括命令字名稱、命令字的值,及與所述命令字對應的參數(shù)、參數(shù)值和參數(shù)類型。
8、 一種網(wǎng)絡設備,其特征在于,包括第二存儲單元,用于存儲配置文件,所述配置文件用于實現(xiàn)適配不同網(wǎng)管接口,將設備的內(nèi)部消息轉換成不同網(wǎng)管協(xié)議格式的設備消息,所述配置文件定義有所述命令字需要從內(nèi)部消息中取出的參數(shù)信息;代理裝置,用于接收設備的內(nèi)部消息,所述內(nèi)部消息包括命令字;利用統(tǒng)一的命令處理函數(shù)從所述配置文件中獲取與所述命令字相應的參數(shù),并根據(jù)獲取的參數(shù)創(chuàng)建預定格式的設備消息。
9、 根據(jù)權利要求8所述的網(wǎng)絡設備,其特征在于,所述配置文件的內(nèi)容包括命令字名稱、命令字的值,及與所述命令字對應的參數(shù)、參數(shù)值和參數(shù)類型。
10、 根據(jù)權利要求8所述的網(wǎng)絡設備,其特征在于,所述代理裝置用于利用所述命令處理函數(shù)從所述內(nèi)部消息中獲取命令字的名稱;根據(jù)所述命令字的名稱從所述配置文件中獲取相應命令字的值、命令字的參數(shù)和參數(shù)值;將所述命令字的值、命令字的參數(shù)和參數(shù)值填充到預定格式的設備消息中。
全文摘要
本發(fā)明實施例公開了一種消息格式轉換方法,所述方法包括接收設備的內(nèi)部消息,所述內(nèi)部消息包括命令字;利用統(tǒng)一的命令處理函數(shù)從預先設置的配置文件中獲取與所述命令字相應的參數(shù),并根據(jù)獲取的參數(shù)創(chuàng)建預定格式的設備消息;其中,所述配置文件定義有每所述命令字需要從內(nèi)部消息中取出的參數(shù)信息。本發(fā)明實施例還相應公開了一種網(wǎng)絡設備的代理裝置和一種網(wǎng)絡設備。上述技術方案對所有的命令字只需要同一個消息處理函數(shù),增強接口適配過程中的可擴展性;對接口的修改不需要修改相應的代碼,只需要修改相應的配置文件即可。
文檔編號H04L12/24GK101515929SQ20091005869
公開日2009年8月26日 申請日期2009年3月24日 優(yōu)先權日2009年3月24日
發(fā)明者王亞東 申請人:成都市華為賽門鐵克科技有限公司