專利名稱:Mib文件編輯器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及SNMP網(wǎng)絡(luò)管理技術(shù),尤其是一種MIB文件編輯器。
背景技術(shù):
基于SNMP (Simple Network Management Protocol,簡(jiǎn)單網(wǎng)絡(luò)管 理協(xié)議)的網(wǎng)絡(luò)管理模型包括以下關(guān)鍵部分管理工作站、代理、MIB (Management Information Base ,管理信息庫(kù))、網(wǎng)絡(luò)管理協(xié)議。它 的基本構(gòu)成 一組具有分析數(shù)據(jù)、發(fā)現(xiàn)故障等功能的管理程序; 一個(gè) 用于網(wǎng)絡(luò)管理監(jiān)控網(wǎng)絡(luò)的接口;將網(wǎng)絡(luò)管理員的要求轉(zhuǎn)變?yōu)閷?duì)遠(yuǎn)程網(wǎng) 絡(luò)信息的實(shí)際監(jiān)控的協(xié)議; 一個(gè)從所有被管網(wǎng)絡(luò)實(shí)體的MIB中抽取信 息的數(shù)據(jù)庫(kù)。
MIB是管理對(duì)象的集合,管理對(duì)象表示網(wǎng)絡(luò)設(shè)備運(yùn)行狀態(tài)的一 個(gè)或多個(gè)變量,而且它存放管理代理中有關(guān)配置和性能的數(shù)據(jù),包含 分屬不同組的多個(gè)數(shù)據(jù)對(duì)象。這些數(shù)據(jù)對(duì)象以樹(shù)狀分層結(jié)構(gòu)組織,每 個(gè)分支有其專用的名字和一個(gè)數(shù)字形式的標(biāo)識(shí)符。
每個(gè)MIB對(duì)象都用OID(Object Identifier,對(duì)象標(biāo)識(shí)符)來(lái)唯一的 標(biāo)識(shí),這是用定義在ASN.1語(yǔ)法中的樹(shù)型結(jié)構(gòu)來(lái)組織的可用信息,其 中每個(gè)可用信息是一個(gè)帶標(biāo)號(hào)的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)用數(shù)字和字符兩種方 式顯示,其中對(duì)象標(biāo)識(shí)符OID是由句點(diǎn)隔開(kāi)的一組整數(shù),也就是從根 節(jié)點(diǎn)通向它的路徑,它命名節(jié)點(diǎn)并指示它在ASN.l樹(shù)中的準(zhǔn)確位置。 一個(gè)帶標(biāo)號(hào)節(jié)點(diǎn)可以擁有包含其它帶標(biāo)號(hào)節(jié)點(diǎn)為它的子樹(shù),如果沒(méi)有 子樹(shù)它就是葉子節(jié)點(diǎn),它包含一個(gè)值并被稱為對(duì)象。
5MIB中每種對(duì)象類型都有名字,語(yǔ)法和編碼3種屬性。名字
由ASN.l中的對(duì)象標(biāo)識(shí)符來(lái)表示,語(yǔ)法確定用哪種ASN.l數(shù)據(jù)類 型表示管理信息,編碼方式是相應(yīng)的ASN.l數(shù)據(jù)類型的BER編碼 格式。
SMI(Structure of Management Information,管理{言息結(jié)構(gòu))是 SNMP的描述方法。ASN.l功能很強(qiáng)大,但SNMP只用到其中一小部 分,為了方便使用,對(duì)這部分內(nèi)容做了描述,限定了范圍,這就是SMI。 SMI由ASN.l的一個(gè)子集合和一部分自定義的類型、宏等組成。SMI 是ASN.l的一個(gè)子集和超集。SMI經(jīng)過(guò)發(fā)展有SMIvl和SMIv2兩個(gè) 版本,目前大部分,特別是私有MIB,更多地使用SMIv2來(lái)定義。SMIv2 對(duì)SMIvl重新做了修訂,增加了幾個(gè)宏定義,SMIv2常見(jiàn)的宏是 MODULE-IDENTITY 、 OBJECT-IDENTITY 、 OBJECT-TYPE 、 NOTIFICATION-TYPE (RFC2578) ; TEXTUAL-CONVENTION(RFC2579);OBJECT-GROUP 、 NOTIFICATION-GROUP 、 MODULE-COMPLIANCE AGENT-CAPABILITIES (RFC2580)。
MIB文件定義了對(duì)于通過(guò)網(wǎng)絡(luò)管理可以訪問(wèn)的信息。MIB文件是 用ASN.1語(yǔ)法來(lái)描述的,因此在制作MIB文件的時(shí)候,用戶不得不參 考ASN.1語(yǔ)法的有關(guān)文檔,這給用戶帶來(lái)許多不便。目前制作MIB文 件的軟件工具很少見(jiàn),很多開(kāi)發(fā)者還是使用手寫(xiě)的方式來(lái)制作MIB文 件,有些可視化的MIB編輯器,比如MG-SOFT公司的MIB Builder軟 件也是需要注冊(cè)才可以使用,而且MIB Builder軟件是英文界面,給許 多國(guó)內(nèi)中文使用者造成不便。除此之外,MIB Builder軟件在設(shè)計(jì)上有 所不足首先是其MIB節(jié)點(diǎn)菜單(功能是提供需要?jiǎng)?chuàng)建的節(jié)點(diǎn)項(xiàng))設(shè)計(jì),MIBBuilder將菜單以樹(shù)結(jié)構(gòu)放置于界面的右端,這樣布局設(shè)置導(dǎo) 致了界面中間的節(jié)點(diǎn)編輯版塊的面積偏小,在輸入大量文本信息時(shí)非 常不方便。其次,MIB Builder的節(jié)點(diǎn)菜單選項(xiàng)在任何時(shí)候都是可選的, 而在實(shí)際設(shè)計(jì)中,當(dāng)建立某些節(jié)點(diǎn)后,其節(jié)點(diǎn)下是不允許再建子節(jié)點(diǎn), 比如OBJECT-TYPE類型,因此節(jié)點(diǎn)菜單的可選性會(huì)給用戶帶來(lái)誤解, 以為仍是可選節(jié)點(diǎn)。再者,MIBBuilder在導(dǎo)入外部MIB時(shí)候解析了所 有的MIB信息,這樣降低了解析速度,也沒(méi)有必要,因?yàn)橛脩羰褂猛?br>
部節(jié)點(diǎn)時(shí)候關(guān)注的只是其節(jié)點(diǎn)名和節(jié)點(diǎn)類型,其他的信息不是必要的。 最后,MIBBuilder軟件在生成MIB文件后是將文件保存到某個(gè)目錄, 用戶必須根據(jù)路徑去打開(kāi)這個(gè)生成文件,比較不便。上述的MIB Builder的幾個(gè)缺點(diǎn)導(dǎo)致國(guó)內(nèi)開(kāi)發(fā)者編寫(xiě)MIB文件時(shí),出錯(cuò)概率較高、 編寫(xiě)速度慢。
發(fā)明內(nèi)容
為了克服已有的MIB編輯器的在編寫(xiě)MIB文件時(shí),出錯(cuò)概率較 高、編寫(xiě)速度慢的不足,本發(fā)明提供一種在編寫(xiě)MIB文件時(shí),降低出 錯(cuò)概率、加快編寫(xiě)速度的MIB文件編輯器。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是
一種MIB文件編輯器,設(shè)定一組菜單項(xiàng)供用戶選擇,菜單項(xiàng)上的 節(jié)點(diǎn)是對(duì)應(yīng)于SMIv2的節(jié)點(diǎn)宏,當(dāng)用戶選擇其中一個(gè)節(jié)點(diǎn),創(chuàng)建相應(yīng) 的一個(gè)節(jié)點(diǎn)對(duì)象,掛載到相應(yīng)的MIB編輯樹(shù)下,在界面顯示相對(duì)應(yīng)的 供用戶輸入相應(yīng)的節(jié)點(diǎn)信息的信息框,建立MIB樹(shù),將各個(gè)節(jié)點(diǎn)的數(shù) 據(jù)提取、組織并生成MIB文件,所述MIB編輯器包括 MIB導(dǎo)入模塊,用于導(dǎo)入外部MIB文件,解析外部MIB文件,獲取 所有節(jié)點(diǎn)的名稱,將節(jié)點(diǎn)名稱添加到Import節(jié)點(diǎn)下;MIB解析模塊,用于解析MIB文件,獲取MIB文件各個(gè)節(jié)點(diǎn)的信息, 將MIB文件的信息轉(zhuǎn)換為MIB樹(shù),在獲取載入的MIB文件路徑后, 分析文件的Import部分,如果發(fā)現(xiàn)有需要導(dǎo)入的MIB,提示用戶導(dǎo)入 文件;在用戶導(dǎo)入完成后,繼續(xù)分析MIB文件,把文件中定義的節(jié)點(diǎn) 的參數(shù)提取出來(lái),然后放到文本生成模塊的各個(gè)對(duì)應(yīng)的類中;在分析 完一個(gè)節(jié)點(diǎn)后,就在MIB樹(shù)上創(chuàng)建一個(gè)樹(shù)節(jié)點(diǎn);最終生成一棵完整的
MIB樹(shù);
信息輸入模塊,用于獲取用戶輸入的MIB節(jié)點(diǎn)信息,創(chuàng)建不同的信息 輸入面板與SMIv2的節(jié)點(diǎn)宏相對(duì)應(yīng),面板負(fù)責(zé)MIB節(jié)點(diǎn)信息的顯示 和信息收集;
文本生成模塊,用于生成特定格式的對(duì)象文本,每一個(gè)類與特定的 SMIv2節(jié)點(diǎn)對(duì)應(yīng);每一個(gè)類中的參數(shù)包括name、 syntax、 status、 description節(jié)點(diǎn)信息以及text參數(shù),所述text參數(shù)和節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的 節(jié)點(diǎn)文本,將所有的節(jié)點(diǎn)文本結(jié)合組織起來(lái)為一個(gè)MIB文件,每一個(gè) Text類中都有一個(gè)getText ()方法和setText參數(shù)方法,getText () 方法返回text參數(shù),獲取該對(duì)象的節(jié)點(diǎn)文本;而setText參數(shù)方法輸入 節(jié)點(diǎn)參數(shù)生成特定格式的text。
作為優(yōu)選的一種方案所述MIB編輯器還包括檢錯(cuò)模塊,用于 對(duì)用戶輸入信息的檢査,當(dāng)用戶編輯結(jié)束,點(diǎn)擊編譯按鈕后,先檢查 用戶輸入是否符合要求,檢查項(xiàng)包括是否有節(jié)點(diǎn)的名字為空;是否 有多個(gè)節(jié)點(diǎn)使用相同的名字;是否表格節(jié)點(diǎn)名以Table結(jié)束;是否表 列節(jié)點(diǎn)名以Entry結(jié)束;是否表列下有OBJECT-TYPE對(duì)象;是否 GROUP類型節(jié)點(diǎn)包含了對(duì)象。作為優(yōu)選的再一種方案所述MIB編輯器還包括保存模塊,用 于在關(guān)閉軟件前保存當(dāng)前的編輯狀態(tài),需要保存如下信息MIB文件 名、根節(jié)點(diǎn)、導(dǎo)入文件的路徑和所有對(duì)象節(jié)點(diǎn)的參數(shù)信息,所有的信 息以特定的格式保存到一個(gè)文本文件;恢復(fù)模塊,用于恢復(fù)編輯器上 次編輯的狀態(tài),先讀取保存信息的那個(gè)文本文件,將其解析,讀取
MIB文件名、根節(jié)點(diǎn)、導(dǎo)入文件的路徑和所有對(duì)象節(jié)點(diǎn)的參數(shù)信息, 然后根據(jù)參數(shù)信息重新建立MIB編輯樹(shù)。
再進(jìn)一步,在所述信息輸入模塊中,每一個(gè)面板類都有一個(gè)Void set_parm參數(shù)的方法,當(dāng)用戶選中MIB編輯樹(shù)中的某一個(gè)節(jié)點(diǎn)對(duì)象 時(shí),軟件獲取該節(jié)點(diǎn)的MIB信息,然后調(diào)用Void set_j3arm參數(shù)方法, 顯示該節(jié)點(diǎn)對(duì)象的信息;當(dāng)用戶新建一個(gè)節(jié)點(diǎn)時(shí),Void set_parm參 數(shù)方法填入初始化的信息,當(dāng)用戶點(diǎn)擊面板上的確定按鈕時(shí),將各個(gè) 參數(shù)收集并傳遞給相應(yīng)的Text類,生成一個(gè)節(jié)點(diǎn)文本。
本發(fā)明的技術(shù)構(gòu)思為:MIB編輯器提供了 一組菜單項(xiàng)供用戶選擇, 菜單項(xiàng)上的節(jié)點(diǎn)是對(duì)應(yīng)于SMIv2的11個(gè)節(jié)點(diǎn)宏,用戶選擇其中一個(gè) 節(jié)點(diǎn),就創(chuàng)建相應(yīng)的一個(gè)節(jié)點(diǎn)對(duì)象,掛載到相應(yīng)的MIB編輯樹(shù)下。在 界面中間的窗口區(qū)域會(huì)顯示相對(duì)應(yīng)的信息框,用戶就可以輸入相應(yīng)的 節(jié)點(diǎn)信息。這樣不斷的創(chuàng)建節(jié)點(diǎn),就建立了 MIB樹(shù),用戶編輯結(jié)束后, 點(diǎn)擊編譯按鈕,軟件就會(huì)檢査用戶輸入,如果發(fā)現(xiàn)錯(cuò)誤(比如數(shù)據(jù)填 寫(xiě)不完整,節(jié)點(diǎn)重名等),就會(huì)提示用戶改正,最后軟件將各個(gè)節(jié)點(diǎn)的 數(shù)據(jù)提取,組織,生成MIB文件。
本發(fā)明的有益效果主要表現(xiàn)在將繁瑣的MIB文件編寫(xiě)過(guò)程轉(zhuǎn)換 為快速高效的信息填寫(xiě)過(guò)程,減少了編寫(xiě)過(guò)程的出錯(cuò)可能,提高了效率,使編寫(xiě)MIB文件的用戶不再需要豐富的ASN.l的知識(shí),就可以
編寫(xiě)出自己需要的MIB庫(kù)。
圖1為導(dǎo)入外部MIB文件的流程圖。 圖2為MIB解析的流程圖。 圖3為信息輸入模塊的流程圖。 圖4為檢錯(cuò)模塊的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。
參照?qǐng)D1 圖4, 一種MIB文件編輯器,設(shè)定一組節(jié)點(diǎn)菜單項(xiàng)供 用戶選擇,菜單項(xiàng)上的節(jié)點(diǎn)是對(duì)應(yīng)于SMIv2的節(jié)點(diǎn)宏。為提供較大的 編輯界面,將節(jié)點(diǎn)菜單設(shè)置在上方工具欄上。當(dāng)用戶選擇其中一個(gè)節(jié) 點(diǎn),會(huì)創(chuàng)建相應(yīng)的一個(gè)節(jié)點(diǎn)對(duì)象,掛載到相應(yīng)的MIB編輯樹(shù)下,在界 面顯示相對(duì)應(yīng)的供用戶輸入相應(yīng)的節(jié)點(diǎn)信息的信息框。如果當(dāng)前的父 節(jié)點(diǎn)下不允許建立其他子節(jié)點(diǎn)或只能建立個(gè)別節(jié)點(diǎn)類型,工具欄的節(jié) 點(diǎn)菜單項(xiàng)會(huì)將不可選的節(jié)點(diǎn)灰色化(不使能),避免用戶誤選。在導(dǎo)入 外部MIB文件的設(shè)計(jì)上,本發(fā)明只解析用戶關(guān)心的MIB節(jié)點(diǎn)類型和 節(jié)點(diǎn)名。在建立MIB樹(shù)后,編譯通過(guò)后將各個(gè)節(jié)點(diǎn)的數(shù)據(jù)提取、組織 并生成MIB文件,文件可通過(guò)"預(yù)覽"按鈕直接?xùn)丝?,所述MIB編輯 器包括MIB導(dǎo)入模塊,用于導(dǎo)入外部MIB文件,解析外部MIB文 件,獲取所有節(jié)點(diǎn)的名稱,將節(jié)點(diǎn)名稱添加到Import節(jié)點(diǎn)下;MIB解 析模塊,用于解析MIB文件,獲取MIB文件各個(gè)節(jié)點(diǎn)的信息,將MIB 文件的信息轉(zhuǎn)換為MIB樹(shù),在獲取載入的MIB文件路徑后,分析文件的Import部分,如果發(fā)現(xiàn)有需要導(dǎo)入的MIB,提示用戶導(dǎo)入文件; 在用戶導(dǎo)入完成后,繼續(xù)分析MIB文件,把文件中定義的節(jié)點(diǎn)的參數(shù) 提取出來(lái),然后放到文本生成模塊的各個(gè)對(duì)應(yīng)的類中;在分析完一個(gè) 節(jié)點(diǎn)后,就在MIB樹(shù)上創(chuàng)建一個(gè)樹(shù)節(jié)點(diǎn);最終生成一棵完整的MIB 樹(shù);信息輸入模塊,用于獲取用戶輸入的MIB節(jié)點(diǎn)信息,創(chuàng)建不同的 信息輸入面板與SMIv2的節(jié)點(diǎn)宏相對(duì)應(yīng),面板負(fù)責(zé)MIB節(jié)點(diǎn)信息的 顯示和信息收集;文本生成模塊,用于生成特定格式的對(duì)象文本,每 一個(gè)類與特定的SMIv2節(jié)點(diǎn)對(duì)應(yīng);每一個(gè)類中的參數(shù)包括name、 syntax、 status、 description節(jié)點(diǎn)〈言息以及text參數(shù),所述text參數(shù)禾口 節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)文本,將所有的節(jié)點(diǎn)文本結(jié)合組織起來(lái)為一個(gè) MIB文件,每一個(gè)Text類中都有一個(gè)getText ()方法和setText參數(shù) 方法,getText()方法返回text參數(shù),獲取該對(duì)象的節(jié)點(diǎn)文本;而setText 參數(shù)方法輸入節(jié)點(diǎn)參數(shù)生成特定格式的text。
所述MIB編輯器還包括檢錯(cuò)模塊,用于對(duì)用戶輸入信息的檢査, 當(dāng)用戶編輯結(jié)束,點(diǎn)擊編譯按鈕后,先檢查用戶輸入是否符合要求, 檢査項(xiàng)包括是否有節(jié)點(diǎn)的名字為空;是否有多個(gè)節(jié)點(diǎn)使用相同的名 字;是否表格節(jié)點(diǎn)名以Table結(jié)束;是否表列節(jié)點(diǎn)名以Entry結(jié)束;是 否表列下有OBJECT-TYPE對(duì)象;是否GROUP類型節(jié)點(diǎn)包含了對(duì)象。
所述MIB編輯器還包括保存模塊,用于在關(guān)閉軟件前保存當(dāng)前 的編輯狀態(tài),需要保存如下信息MIB文件名、根節(jié)點(diǎn)、導(dǎo)入文件的 路徑和所有對(duì)象節(jié)點(diǎn)的參數(shù)信息,所有的信息以特定的格式保存到一 個(gè)文本文件;恢復(fù)模塊,用于恢復(fù)編輯器上次編輯的狀態(tài),先讀取保 存信息的那個(gè)文本文件,將其解析,讀取MIB文件名、根節(jié)點(diǎn)、導(dǎo)入文件的路徑和所有對(duì)象節(jié)點(diǎn)的參數(shù)信息,然后根據(jù)參數(shù)信息重新建立
MIB編輯樹(shù)。
在所述信息輸入模塊中,每一個(gè)面板類都有一個(gè)Void set_parm 參數(shù)的方法,當(dāng)用戶選中MIB編輯樹(shù)中的某一個(gè)節(jié)點(diǎn)對(duì)象時(shí),軟件獲 取該節(jié)點(diǎn)的MIB信息,然后調(diào)用Voidsetjarm參數(shù)方法,顯示該節(jié) 點(diǎn)對(duì)象的信息;當(dāng)用戶新建一個(gè)節(jié)點(diǎn)時(shí),Void set一j)arm參數(shù)方法填 入初始化的信息,當(dāng)用戶點(diǎn)擊面板上的確定按鈕時(shí),將各個(gè)參數(shù)收集
并傳遞給相應(yīng)的Text類,生成一個(gè)節(jié)點(diǎn)文本。
圖1為導(dǎo)入模塊的流程圖。首先軟件根據(jù)用戶選擇的文件路徑獲 取文件,去掉文件的后綴名可以獲得模塊名。這里對(duì)MIB文件的解析 不需要獲取各個(gè)MIB節(jié)點(diǎn)對(duì)象的詳細(xì)信息,只要得到各個(gè)節(jié)點(diǎn)的名字 和對(duì)象類型就可以了。于是這里采取讀關(guān)鍵字的辦法,對(duì)文本按行讀 取,如果讀取到SMIv2關(guān)鍵字就處理,得到節(jié)點(diǎn)對(duì)象名,將其保存到 內(nèi)部向量中,同時(shí)在Import節(jié)點(diǎn)下新建一個(gè)節(jié)點(diǎn),節(jié)點(diǎn)的名字是外部 MIB名,在這個(gè)節(jié)點(diǎn)下掛載的是這個(gè)MIB文件的所有節(jié)點(diǎn)。
圖2為MIB解析模塊流程圖。在獲取了 MIB文件路徑后,軟件 先分析其需要導(dǎo)入的文件,如果發(fā)現(xiàn)有除SNMPv2-SMI, SNMPv2-TC 和SNMPv2-CONF這三個(gè)文件外還有其他文件,就提示用戶先導(dǎo)入。 只有導(dǎo)入完畢后,模塊才會(huì)繼續(xù)解析MIB。解析過(guò)程是對(duì)文件按行讀 取,讀取到關(guān)鍵字時(shí)就解析,這些關(guān)鍵字就就是SMIv2的一些宏關(guān)鍵 詞。當(dāng)發(fā)現(xiàn)一個(gè)節(jié)點(diǎn)時(shí),就進(jìn)入相應(yīng)的函數(shù)處理,獲取完整的信息后 就創(chuàng)建一個(gè)樹(shù)節(jié)點(diǎn),同時(shí)將MIB信息保存到相關(guān)的向量和哈希表中。
信息輸入模塊負(fù)責(zé)MIB節(jié)點(diǎn)信息的顯示和收集,。當(dāng)用戶新建一 個(gè)節(jié)點(diǎn)時(shí),會(huì)有一個(gè)相對(duì)應(yīng)當(dāng)面板讓用戶輸入信息。如果用戶點(diǎn)擊了一個(gè)已經(jīng)建立的節(jié)點(diǎn),軟件就會(huì)根據(jù)這個(gè)節(jié)點(diǎn)獲得其信息,將其顯示
到面板上。每一個(gè)面板類都有一個(gè)Void set jarm(參數(shù)),通過(guò)這個(gè)方 法控制其顯示的內(nèi)容。每一個(gè)面板上都有一個(gè)"確定"按鈕,當(dāng)用戶按 下"確定"按鈕后,軟件會(huì)把各個(gè)組件的信息收集,傳遞給text類,重 新生成對(duì)象文本,并顯示到下方的文本區(qū)中。
圖3是檢錯(cuò)模塊的流程圖。由于多種原因,用戶輸入的信息不一 定正確和完整,這就需要檢錯(cuò)模塊來(lái)檢查錯(cuò)誤,提示用戶更正。檢錯(cuò) 是通過(guò)對(duì)編輯樹(shù)的遍歷來(lái)實(shí)現(xiàn)的。 一共遍歷三次,每次檢查不同的內(nèi) 容。檢查項(xiàng)包括以下幾個(gè)是否有節(jié)點(diǎn)的名字為空;是否有多個(gè)節(jié)點(diǎn) 使用相同的名字;是否表格節(jié)點(diǎn)名以Table結(jié)束;是否表列節(jié)點(diǎn)名以 Entry結(jié)束;是否表列下有OBJECT-TYPE對(duì)象;是否GROUP類型節(jié) 點(diǎn)包含了對(duì)象。發(fā)現(xiàn)錯(cuò)誤,就在文本區(qū)中顯示具體的錯(cuò)誤,方便用戶 更正。
保存模塊,負(fù)責(zé)關(guān)閉軟件前保存當(dāng)前的編輯狀態(tài)。MIB編輯軟件必 須能夠保存用戶當(dāng)前的編輯狀態(tài),以便下次繼續(xù)編輯。本發(fā)明將所有 的信息以一定的格式保存到一個(gè)文本文件中。模塊先保存幾個(gè)關(guān)鍵變 量,如MIB名,根節(jié)點(diǎn)名稱,導(dǎo)入的外部MIB的路徑向量等。保存 時(shí)采用關(guān)鍵字識(shí)別,首先在一行的開(kāi)頭寫(xiě)入關(guān)鍵字,如"mibname:", 然后再寫(xiě)入其信息。在啟動(dòng)恢復(fù)時(shí),讀取到"mibname:"開(kāi)頭的一行 就知道該行是用來(lái)保存MIB文件名的。同理,將所有建立的節(jié)點(diǎn)信息 按照這種方法保存下來(lái)。
恢復(fù)模塊,負(fù)責(zé)恢復(fù)編輯器上次編輯的狀態(tài)。和保存模塊對(duì)應(yīng), 恢復(fù)模塊將會(huì)恢復(fù)編輯狀態(tài)。前面保存模塊將數(shù)據(jù)信息保存到一個(gè)文 本文件,恢復(fù)時(shí)就要讀取這個(gè)文件,解析獲取信息,重新恢復(fù)編輯狀態(tài)?;謴?fù)時(shí)還是利用關(guān)鍵字識(shí)別的方法,讀取到關(guān)鍵字,就解析該行, 讀取數(shù)據(jù)。在分析節(jié)點(diǎn)對(duì)象信息時(shí),由于保存的信息中包含了父節(jié)點(diǎn) 名,這樣就可以把節(jié)點(diǎn)掛載到正確的父節(jié)點(diǎn)下。
權(quán)利要求
1、一種MIB文件編輯器,其特征在于設(shè)定一組菜單項(xiàng)供用戶選擇,菜單項(xiàng)上的節(jié)點(diǎn)是對(duì)應(yīng)于SMIv2的節(jié)點(diǎn)宏,當(dāng)用戶選擇其中一個(gè)節(jié)點(diǎn),創(chuàng)建相應(yīng)的一個(gè)節(jié)點(diǎn)對(duì)象,掛載到相應(yīng)的MIB編輯樹(shù)下,在界面顯示相對(duì)應(yīng)的供用戶輸入相應(yīng)的節(jié)點(diǎn)信息的信息框,建立MIB樹(shù),將各個(gè)節(jié)點(diǎn)的數(shù)據(jù)提取、組織并生成MIB文件,所述MIB編輯器包括MIB導(dǎo)入模塊,用于導(dǎo)入外部MIB文件,解析外部MIB文件,獲取所有節(jié)點(diǎn)的名稱,將節(jié)點(diǎn)名稱添加到Import節(jié)點(diǎn)下;MIB解析模塊,用于解析MIB文件,獲取MIB文件各個(gè)節(jié)點(diǎn)的信息,將MIB文件的信息轉(zhuǎn)換為MIB樹(shù),在獲取載入的MIB文件路徑后,分析文件的Import部分,如果發(fā)現(xiàn)有需要導(dǎo)入的MIB,提示用戶導(dǎo)入文件;在用戶導(dǎo)入完成后,繼續(xù)分析MIB文件,把文件中定義的節(jié)點(diǎn)的參數(shù)提取出來(lái),然后放到文本生成模塊的各個(gè)對(duì)應(yīng)的類中;在分析完一個(gè)節(jié)點(diǎn)后,就在MIB樹(shù)上創(chuàng)建一個(gè)樹(shù)節(jié)點(diǎn);最終生成一棵完整的MIB樹(shù);信息輸入模塊,用于獲取用戶輸入的MIB節(jié)點(diǎn)信息,創(chuàng)建不同的信息輸入面板與SMIv2的節(jié)點(diǎn)宏相對(duì)應(yīng),面板負(fù)責(zé)MIB節(jié)點(diǎn)信息的顯示和信息收集;文本生成模塊,用于生成特定格式的對(duì)象文本,每一個(gè)類與特定的SMIv2節(jié)點(diǎn)對(duì)應(yīng);每一個(gè)類中的參數(shù)包括name、syntax、atus、escription節(jié)點(diǎn)信息以及text參數(shù),所述text參數(shù)和節(jié)點(diǎn)對(duì)象對(duì)應(yīng)的節(jié)點(diǎn)文本,將所有的節(jié)點(diǎn)文本結(jié)合組織起來(lái)為一個(gè)MIB文件,每一個(gè)Text類中都有一個(gè)getText()方法和setText參數(shù)方法,getText()方法返回text參數(shù),獲取該對(duì)象的節(jié)點(diǎn)文本;而setText參數(shù)方法輸入節(jié)點(diǎn)參數(shù)生成特定格式的text。
2、 如權(quán)利要求1所述的MIB文件編輯器,其特征在于所述MIB編 輯器還包括檢錯(cuò)模塊,用于對(duì)用戶輸入信息的檢査,當(dāng)用戶編輯結(jié)束,點(diǎn)擊編譯 按鈕后,先檢查用戶輸入是否符合要求,檢査項(xiàng)包括是否有節(jié)點(diǎn)的 名字為空;是否有多個(gè)節(jié)點(diǎn)使用相同的名字;是否表格節(jié)點(diǎn)名以Table 結(jié)束;是否表列節(jié)點(diǎn)名以Entry結(jié)束;是否表列下有OBJECT-TYPE 對(duì)象;是否GROUP類型節(jié)點(diǎn)包含了對(duì)象。
3、 如權(quán)利要求1或2所述的MIB文件編輯器,其特征在于所述MIB 編輯器還包括保存模塊,用于在關(guān)閉軟件前保存當(dāng)前的編輯狀態(tài),需要保存如下信 息MIB文件名、根節(jié)點(diǎn)、導(dǎo)入文件的路徑和所有對(duì)象節(jié)點(diǎn)的參數(shù)信 息,所有的信息以特定的格式保存到一個(gè)文本文件; 恢復(fù)模塊,用于恢復(fù)編輯器上次編輯的狀態(tài),先讀取保存信息的那個(gè) 文本文件,將其解析,讀取MIB文件名、根節(jié)點(diǎn)、導(dǎo)入文件的路徑和 所有對(duì)象節(jié)點(diǎn)的參數(shù)信息,然后根據(jù)參數(shù)信息重新建立MIB編輯樹(shù)。
4、 如權(quán)利要求3所述的MIB文件編輯器,其特征在于在所述信息 輸入模塊中,每一個(gè)面板類都有一個(gè)Void setjarm參數(shù)的方法,當(dāng) 用戶選中MIB編輯樹(shù)中的某一個(gè)節(jié)點(diǎn)對(duì)象時(shí),軟件獲取該節(jié)點(diǎn)的MIB 信息,然后調(diào)用Void setjarm參數(shù)方法,顯示該節(jié)點(diǎn)對(duì)象的信息; 當(dāng)用戶新建一個(gè)節(jié)點(diǎn)時(shí),Void setjarm參數(shù)方法填入初始化的信息, 當(dāng)用戶點(diǎn)擊面板上的確定按鈕時(shí),將各個(gè)參數(shù)收集并傳遞給相應(yīng)的Text類,生成一個(gè)節(jié)點(diǎn)文本。
全文摘要
一種MIB文件編輯器,設(shè)定一組菜單項(xiàng)供用戶選擇,菜單項(xiàng)上的節(jié)點(diǎn)是對(duì)應(yīng)于SMIv2的節(jié)點(diǎn)宏,當(dāng)用戶選擇其中一個(gè)節(jié)點(diǎn),創(chuàng)建相應(yīng)的一個(gè)節(jié)點(diǎn)對(duì)象,掛載到相應(yīng)的MIB編輯樹(shù)下,在界面顯示相對(duì)應(yīng)的供用戶輸入相應(yīng)的節(jié)點(diǎn)信息的信息框,建立MIB樹(shù),將各個(gè)節(jié)點(diǎn)的數(shù)據(jù)提取、組織并生成MIB文件,MIB編輯器包括MIB導(dǎo)入模塊、MIB解析模塊、信息輸入模塊和文本生成模塊。本發(fā)明提供一種在編寫(xiě)MIB文件時(shí),降低出錯(cuò)概率、加快編寫(xiě)速度的MIB文件編輯器。
文檔編號(hào)G06F9/44GK101446896SQ20081016374
公開(kāi)日2009年6月3日 申請(qǐng)日期2008年12月30日 優(yōu)先權(quán)日2008年12月30日
發(fā)明者孟利民, 徐志江, 趙志定 申請(qǐng)人:浙江工業(yè)大學(xué)