一種通過xml文件生成mib文件的系統及方法
【專利摘要】本發明公開了一種通過XML文件生成MIB文件的系統及方法,所述系統包括:Schema規則定義單元、XML語法校驗單元、XML語義解析單元、MIB文件規則解析單元和MIB文件生成單元。所述方法原理為:Schema規則定義單元定義了一種XML到MIB校驗及映射的Schema;XML語義解析單元定義XML元素到MIB元素的映射規則,并對語法校驗通過的XML文件進行解析處理,完成XML元素到MIB元素的映射;MIB文件生成單元按照MIB文件具體元素的生成方法生成MIB文件。采用本發明,可以降低在MIB文件編寫過程中的出錯概率,加快網絡管理系統的開發。本發明方案通過把熟悉和通用的XML形式的接口暴露給用戶,用戶基于XMLSchema來編寫XML文件,通過本發明提供的方法和系統,可以方便的生成MIB文件,避免直接操作難懂的MIB文件。
【專利說明】—種通過XML文件生成MIB文件的系統及方法
【技術領域】
[0001 ] 本發明涉及SNMP網絡管理技術,特別涉及一種通過XML文件生成MIB文件的系統及方法。
【背景技術】
[0002]隨著網絡規模的越來越大,網絡中的設備類型越來越多。目前主要使用SNMP(Simple Network Management Protocol,簡單網絡管理協議)對網絡設備進行管理。SNMP網絡管理框架定義了三個主要部件:管理信息結構(SMI)、管理信息庫(MIB)和管理協議(SNMP)0其中,管理信息庫(MIB)定義了可以通過網絡管理協議進行訪問的管理對象的集合,是SNMP管理的基礎。用ASN.1語法書寫的MIB只有在經過MIB編譯器編譯后才能在開發中使用。然而ASN.1語法和SMI描述的信息結構抽象性很強,而且通用的MIB是基于文本方式來編寫或生成的,如果手工來編寫的,需要對MIB文件和相關的文本宏定義需要深入了解,即使是使用工具,也需要用戶對MIB相關的概念需要了解,加大網絡管理系統代理的開發難度。
[0003]傳統的MIB編寫多通過MIB編輯工具進行編輯,通過MIB編輯工具的可視化界面操作來生成MIB文件,不過大多數MIB編輯工具都需要License,而且也需要用戶按照SMI的語法和語義進行編輯,只是省略了書寫的過程。此種方法需要用戶對抽象的SMI很了解,增加了開發難度。
[0004]中國專利申請號為“CN101446896A”的文獻中公開了一種MIB文件編輯器,在這種方法中,通過把MIB文件的編寫轉化為一種對菜單的選擇和操作處理來生成MIB文件,類似于傳統的MIB編輯工具。
[0005]通過對現有技術和專利的分析,現有的公開技術多是直接按照SMI的語法進行MIB文件編寫,如果用戶手工編寫的時候,加大出錯概率,而且不便于閱讀和修改。
【發明內容】
[0006]本發明目的在于,為降低MIB文件編寫的難度和減少MIB編寫中的錯誤,本發明提供一種通過XML文件生成MIB文件的系統及方法。
[0007]為實現上述目的,本發明提供了一種通過XML文件生成MIB文件的系統,所述系統包含:
[0008]Schema規則定義單元,用于定義一種用于完成XML到MIB校驗及映射的Schema規則;
[0009]XML語法校驗單元,用于按照定義的Schema規則,利用XML的校驗器對輸入的XML文件進行校驗;
[0010]XML語義解析單元,用于定義XML元素到MIB元素的映射規則,并對校驗通過的XML文件進行解析處理;
[0011 ] MIB文件規則解析單元,用于維護MIB文件的語義和語法,并進行MIB文件的校驗;和
[0012]MIB文件生成單元,用于調用MIB文件規則解析單元對MIB元素的語義和語法表示方法,生成MIB文件。
[0013]上述XML語義解析單元進一步包含:
[0014]映射關系初始化子模塊,用于定義Schema和MIB元素的對應對關系;
[0015]處理方法初始化子模塊,用于注冊和實例化對具體的節點的處理方法;
[0016]XML節點分類子模塊,用于把解析到的XML節點及其子元素分為數據類型節點塊、宏節點塊、標量類型節點塊、Table類型節點塊和Trap類型節點塊;和
[0017]解析子模塊,用于把分好類的XML節點映射到其注冊的具體的處理方法。
[0018]基于上述系統本發明提供了一種通過XML文件生成MIB文件的方法,所述方法包含:
[0019]步驟101) Schema規則定義單元定義一種用于完成XML到MIB校驗及映射的Schema,并按照定義的Schema進行文件的編輯和修改;
[0020]步驟102) XML語法校驗單元根據步驟101)定義的Schema進行XML文件校驗;
[0021]步驟103) XML語義解析單元定義XML元素到MIB元素的映射規則,對語法校驗通過的XML文件進行解析處理,并完成XML元素到MIB元素的映射;
[0022]步驟104) MIB文件生成單元按照MIB文件具體元素的生成方法生成MIB文件。
[0023]上述步驟101)進一步包含:
[0024]步驟101-1)定義的Schema采用XML語言映射MIB文件規則為XML的元素節點、屬性及類型;
[0025]步驟101-2)定義的Schema把MIB文件的宏,映射為具體的XML節點,把宏的具體屬性映射為XML節點的元素屬性;
[0026]步驟101-3)定義的Schema把MIB的樹形關系,映射為節點的父子關系;
[0027]步驟101-4)定義的Schema把MIB中的數據類型,映射為基于XML基本數據類型的自定義數據類型;
[0028]步驟101-5)定義的Schema把MIB中的標量對象、Table對象和Trap對象映射為三種通用的節點;
[0029]步驟101-6)定義的Schema引入數據節點datanode,表示MIB中的具體對象,還支持對datanode的引用,用于對XML文件進行壓縮。
[0030]上述步驟103)根據中定義的Schema定義一個對此Schema的XML語義解析單元,且在XML語義解析單元解析處理時,定義了 Schema和MIB元素的對應對關系,在處理具體的XML元素時,查找其對應的MIB元素,由MIB文件生成單元,生成MIB文件片段。
[0031 ] 上述步驟103 )進一步包含:
[0032]步驟103-1)加載Schema元素與MIB規則映射表,放入哈希表中,為Schema元素注入處理方法;
[0033]步驟103-2)按照映射表關系對處理函數進行初始化和實例化;
[0034]步驟103-3)加載校驗通過的XML文件;
[0035]步驟103-4)按照Schema解析出節點,并判斷是否是最后一個節點,如果是則停止,否則進入下一步驟;[0036]步驟103-5)進一步判斷是否是數據類型定義,如果是,則解析其數據類型,并映射到MIB的數據類型,然后返回步驟103-4)進行下一個節點解析;否則,進入下一步驟;
[0037]步驟103-6)再判斷是否是宏元素定義,如果是,則按照映射關系轉變為MIB宏定義,并返回步驟103-4)進行下一個節點解析;否則進入一下步驟;
[0038]步驟103-7)最后判斷是否是對象類型節點,如果是,則從哈希表中查找其注冊的實例化處理方法,并生成MIB樹結構返回步驟103-4)進行下一個節點解析,否則停止。
[0039]步驟103-7)所述的對象類型節點包含:標量對象、Table對象和Trap對象。
[0040]上述步驟104)進一步包含:
[0041]步驟104-1)通過MIB文件規則解析單元,獲得MIB文件中MIB元素類型及其屬性的具體語法和表示方法;
[0042]步驟104-2)生成MIB文件中的頭和導入的數據類型;
[0043]步驟104-3)生成MIB文件中的中間節點;
[0044]步驟104-4)如果有自定義數據類型的,生成MIB文件中的數據類型定義宏;
[0045]步驟104-5)把XML節點中的標量類型節點、Table類型節點和Trap類型節點,按照104-1)的表示方法,把XML節點的屬性映射到對應MIB元素的屬性中,生成MIB葉子節點;并表示出OID ;
[0046]步驟104-6)生成MIB文件的結束符。
[0047]本發明所述系統主要包括Schema規則定義單元、XML語法校驗單元、XML語義解析單元、MIB文件規則解析單元和MIB文件生成單元。
[0048]與現有技術相比,本發明的有益效果在于:
[0049]1.本方法對手工編寫MIB文件,可以給出智能提示和及時校驗,減少了出錯概率,加快開發進度。
[0050]2.本方法同時可以用于MIB編輯工具的開發,便于在各種編輯工具之間做中間數據格式的交互。
[0051]3.本方法生成的XML文檔可以方便的在不同的Schema之間進行轉換,可以用于基于XML的網絡管理系統。在異構系統的網絡管理中,能很好的在不同平臺之間進行轉換。
[0052]總之,本發明提供的方法通過把熟悉和通用的XML形式的接口暴露給用戶,用戶基于XML Schema來編寫XML文件,通過本發明提供的方法和系統,可以方便的生成MIB文件,避免直接操作難懂的MIB文件。
【專利附圖】
【附圖說明】
[0053]圖1是本發明通過XML生成MIB文件的系統模塊圖;
[0054]圖2是本發明通過XML生成MIB文件的方法流程圖;
[0055]圖3是本發明XML語義解析單元工作流程圖。
【具體實施方式】
[0056]下面結合附圖來進行詳細說明通過XML生成MIB文件的實現方法。
[0057]本發明提供一種通過XML文件生成MIB文件的方法及系統,所述方法包含:
[0058]101) Schema規則定義單兀,基于XML定義了一種通用的Schema,用于完成XML到MIB的校驗及映射;
[0059]102) XML語法校驗單元,按照Schema規則,利用XML的校驗機制對輸入的XML文件進行校驗;
[0060]103) XML語義解析單元,用于對校驗通過的XML文件進行解析處理,根據映射關系,映射到相應的MIB元素;
[0061]104) MIB文件規則解析單元,解析MIB文件規則并進行MIB文件的校驗,維護著MIB元素及其生成MIB文件的語義和語法;
[0062]105) MIB文件生成單元,調用MIB文件規則解析單元對MIB元素的語義和語法表示方法,生成MIB文件。
[0063]上述單元101)進一步包含:
[0064]由于用ASN.1語法和SMI描述的MIB’結構復雜,而且抽象。本方法把表示方法進行了簡化。首先把Schema的描述分為以下四個部分:
[0065]I)針對MIB中的宏,本發明通過把其映射到Schema中的具體的節點來表示,把宏的具體屬性映射為節點元素的屬性;
[0066]2)針對MIB中的數據類型,本發明基于XML的基本數據類型來封裝自定義類型進行表示;
[0067]3)針對MIB中的具體三種數值類型:標量對象、Table對象和Trap對象,也映射為三種通用的節點。
[0068]4)把具體的MIB節點表示為數據節點datanode,還支持對datanode的引用,用于對XML文件進行壓縮。
[0069]依據上述規則,或手工編寫或基于XML的編輯工具,進行XML文件編寫。在XML編寫過程中,即可進行文件的及時校驗和屬性提醒,方便管理屬性的XML文件編寫。
[0070]上述單元102)進一步包含:
[0071]XML語法校驗單元,可以在編寫過程中進行智能的提醒和屬性校驗,也可以在編輯完后進行校驗。針對101)單元中輸出的文件的校驗基于通用的XML工具進行校驗。
[0072]上述單元103)進一步包含:
[0073]XML語義解析單元,用于對校驗通過的XML文件進行解析處理,映射到相對應的MIB語義和語法。此單元是本發明的核心部件。
[0074]由于MIB本身需要維護一個全局的樹形結構,本單元按照基于DOM的方式對XML進行解析。在解析之前,本單元需要加載Schema與MIB的具體映射關系,并進行具體初始化,并放置在內存中,保證對具體節點的處理只初始化和實例化一次,并把相對應的實例化方法注冊給DOM解析器。
[0075]在XML解析到具體的節點時,檢查該節點的已注冊的實例化處理方法,進行調用處理。
[0076]上述單元104)進一步包含:
[0077]MIB文件規則解析單元,是按照ASN.1語法和SMI描述的信息結構的字典庫,維護了 MIB文件本身的語法和語義結構,包括對常見的SMI宏、數據類型的表示方法和生成方法。
[0078]上述單元105)進一步包含:[0079]MIB文件生成單元,按照MIB文件規則解析單元對具體塊和元素的表示方法和生成方法,輸出MIB文件。
[0080]圖1是本發明通過XML生成MIB文件的系統模塊圖,具體包括:
[0081]Schema規則定義單兀101,基于XML定義了 一種通用的Schema,用于完成XML到MIB的校驗及映射;
[0082]XML語法校驗單元102,按照Schema規則,利用XML的校驗機制對輸入的XML文件進行校驗;
[0083]MIB文件規則解析單元103,用于按照MIB文件的語義和語法,進行MIB文件的校驗和解析;
[0084]XML語義解析單元104,用于對校驗通過的XML文件進行解析處理,根據Schema和MIB的映射關系,調用相應的處理函數進行處理。
[0085]MIB文件生成單元105,根據MIB文件規則解析單元對具體MIB對象的表示方法和生成方法,輸出MIB文件。
[0086]圖2是本發明通過XML生成MIB文件的工作流程圖,具體包括:
[0087]201)按照 Schema 編輯 XML 文件
[0088]按照定義的Schema進行XML文件的編輯和修改;
[0089]202 ) XML 語法校驗
[0090]對編輯完成后的XML進行語法和格式校驗,生成符合Schema規則的XML文件;[0091 ] 203 ) XML語義解析處理
[0092]XML語義解析處理,對校驗通過的XML文件進行解析處理;
[0093]204) MIB文件規則映射
[0094]MIB文件規則映射,解析MIB文件的規則,維護著對應XML的MIB規則;
[0095]2O5) MIB 文件生成
[0096]按照MIB文件規則的表示方法,生成MIB文件。
[0097]圖3是本發明XML語義解析單元工作流程圖,下面結合具體例子,解釋通過XML生成MIB文件的方法:
[0098]按照Schema規則,生成的XML文件如下:
[0099]
【權利要求】
1.一種通過XML文件生成MIB文件的系統,所述系統包含: Schema規則定義單元,用于定義一種用于完成XML到MIB校驗及映射的Schema規則;XML語法校驗單元,用于按照定義的Schema規則,利用XML的校驗器對輸入的XML文件進行校驗; XML語義解析單元,用于定義XML元素到MIB元素的映射規則,并對校驗通過的XML文件進行解析處理; MIB文件規則解析單元,用于維護MIB文件的語義和語法,并進行MIB文件的校驗;和MIB文件生成單元,用于調用MIB文件規則解析單元對MIB元素的語義和語法表示方法,生成MIB文件。
2.根據權利要求1所述的通過XML文件生成MIB文件的系統,其特征在于,所述XML語義解析單元進一步包含: 映射關系初始化子|吳塊,用于定義Schema和MIB兀素的對應對關系; 處理方法初始化子模塊,用于注冊和實例化對具體的節點的處理方法; XML節點分類子模塊,用于把解析到的XML節點及其子元素分為數據類型節點塊、宏節點塊、標量類型節點塊、Table類型節點塊和Trap類型節點塊;和 解析子模塊,用于把分好類的XML節點映射到其注冊的具體的處理方法。
3.—種通過XML文件生成MIB文件的方法,該方法基于權利要求1所述的系統,所述方法包含: 步驟101) Schema規則定義單元定義一種用于完成XML到MIB校驗及映射的Schema,并按照定義的Schema進行文件的編輯和修改; 步驟102) XML語法校驗單元根據步驟101)定義的Schema進行XML文件校驗; 步驟103) XML語義解析單元定義XML元素到MIB元素的映射規則,對語法校驗通過的XML文件進行解析處理,并完成XML元素到MIB元素的映射; 步驟104) MIB文件生成單元按照MIB文件具體元素的生成方法生成MIB文件。
4.根據權利要求3所述的通過XML文件生成MIB文件的方法,其特征在于,所述步驟101)進一步包含: 步驟101-1)定義的Schema采用XML語言映射MIB文件規則為XML的元素節點、屬性及類型; 步驟101-2)定義的Schema把MIB文件的宏,映射為具體的XML節點,把宏的具體屬性映射為XML節點的元素屬性; 步驟101-3)定義的Schema把MIB的樹形關系,映射為節點的父子關系; 步驟101-4)定義的Schema把MIB中的數據類型,映射為基于XML基本數據類型的自定義數據類型; 步驟101-5)定義的Schema把MIB中的標量對象、Table對象和Trap對象映射為三種通用的節點; 步驟101-6)定義的Schema引入數據節點datanode,表示MIB中的具體對象,還支持對datanode的引用,用于對XML文件進行壓縮。
5.根據權利要求3所述的通過XML文件生成MIB文件的方法,其特征在于,所述步驟103)根據中定義的Schema定義一個對此Schema的XML語義解析單元,且在XML語義解析單元解析處理時,定義了 Schema和MIB元素的對應對關系,在處理具體的XML元素時,查找其對應的MIB元素,由MIB文件生成單元,生成MIB文件片段。
6.根據權利要求5所述的通過XML文件生成MIB文件的方法,其特征在于,所述步驟103)進一步包含: 步驟103-1)加載Schema元素與MIB規則映射表,放入哈希表中,為Schema元素注入處理方法; 步驟103-2)按照映射表關系對處理函數進行初始化和實例化; 步驟103-3)加載校驗通過的XML文件; 步驟103-4)按照Schema解析出節點,并判斷是否是最后一個節點,如果是則停止,否則進入下一步驟; 步驟103-5)進一步判斷是否是數據類型定義,如果是,則解析其數據類型,并映射到MIB的數據類型,然后返回步驟103-4)進行下一個節點解析;否則,進入下一步驟; 步驟103-6)再判斷是否是宏元素定義,如果是,則按照映射關系轉變為MIB宏定義,并返回步驟103-4)進行下一個節點解析;否則進入一下步驟; 步驟103-7)最后判斷是否是對象類型節點,如果是,則從哈希表中查找其注冊的實例化處理方法,并生成MIB樹結構返回步驟103-4)進行下一個節點解析,否則停止。
7.根據權利要求5所述的通過XML文件生成MIB文件的方法,其特征在于,步驟103-7)所述的對象類型節點包含:標量對象、Table對象和Trap對象。
8.根據權利要求2所述的通過XML文件生成MIB文件的方法,其特征在于,所述步驟104)進一步包含: 步驟104-1)通過MIB文件規則解析單元,獲得MIB文件中MIB元素類型及其屬性的具體語法和表不方法; 步驟104-2)生成MIB文件中的頭和導入的數據類型; 步驟104-3)生成MIB文件中的中間節點; 步驟104-4)如果有自定義數據類型的,生成MIB文件中的數據類型定義宏; 步驟104-5)把XML節點 中的標量類型節點、Table類型節點和Trap類型節點,按照104-1)的表示方法,把XML節點的屬性映射到對應MIB元素的屬性中,生成MIB葉子節點;步驟104-6)生成MIB文件的結束符。
【文檔編號】G06F9/44GK103902269SQ201210581216
【公開日】2014年7月2日 申請日期:2012年12月27日 優先權日:2012年12月27日
【發明者】黨壽江, 李艷霞, 劉學 申請人:中國科學院聲學研究所, 北京海力匯通數字系統技術有限公司