專利名稱:一種snmp代理上管理信息庫的升級方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及基于簡單網(wǎng)絡管理協(xié)議(Simple Network Management Protocol, 簡稱SNMP)進行設備遠程網(wǎng)絡管理的領域,具體涉及SNMP代理(Agent)上管理信息庫 (Management Information Base, MIB)的升級方法禾口系統(tǒng)。
背景技術:
SNMP協(xié)議是由互聯(lián)網(wǎng)工程任務組定義的一套網(wǎng)絡管理協(xié)議。利用SNMP,一個管理者(Manager)可以遠程管理所有支持這種協(xié)議的網(wǎng)絡設備。SNMP管理模型有三個基本組成部分管理者(Manager),代理(Agent)和管理信息庫(Management Information Base,簡稱 MIB),其中Manager駐留在管理設備中,管理設備一般是一個單機設備或是一個共享網(wǎng)絡中的一員,Manager是網(wǎng)絡管理員和網(wǎng)絡管理系統(tǒng)的接口,將網(wǎng)絡管理員的命令由SNMP協(xié)議轉換成SNMP協(xié)議報文傳遞至駐留在被管理設備的Agent,通過Agent的MIB讀取或設置被管理設備的參數(shù)。Agent駐留在被管理設備中,是用于跟蹤監(jiān)測被管理設備狀態(tài)的特殊軟件或硬件, 每個代理都擁有自己本地的MIB。Agent翻譯來自Manager的協(xié)議報文請求,驗證操作的可執(zhí)行性,通過搜索MIB,查找對應的設備參數(shù),執(zhí)行請求操作,同時向Manager返回響應信肩、οMIB包含被管理設備上所有可被查詢和修改的操作對象,以及允許對該些操作對象進行的操作函數(shù)。從組織結構上,所有的操作對象被組織成為一個對象樹,通常稱作MIB 樹,如圖1所示,樹上的操作對象稱為節(jié)點,每個節(jié)點關聯(lián)若干個操作函數(shù)(如Getjet、Get Next等,該些操作函數(shù)目前無統(tǒng)一中文術語),稱為對該節(jié)點的操作。在實際應用中,Manager將要訪問的節(jié)點信息通過SNMP報文發(fā)送至Agent,Agent 接收到的節(jié)點信息,在本地MIB樹中查找到節(jié)點,并依據(jù)報文中指定的操作,調(diào)用不同的操作函數(shù),實現(xiàn)對設備上某個參數(shù)的訪問。通過以上介紹可知,Manager上必須具有與Agent上相同結構的MIB,這樣才能實現(xiàn)對Agent上所有MIB數(shù)據(jù)的訪問。但是在實際使用中,由于需求變更等原因,需要對MIB 進行升級,如圖2所示的情況。一般作為Manager的均為PC機,且物理位置集中,所以對 Manager上MIB可以方便地進行升級,但是對Agent之上的MIB,由于Agent物理位置分散, 對其MIB進行升級難度很大。除此而外,當Agent為嵌入式系統(tǒng)時,其上運行的軟件系統(tǒng)為一個整體,如果需要升級MIB,就需要將整個軟件系統(tǒng)進行升級。現(xiàn)有技術中通過以下方法解決上述問題1)在Agent上預置多套MIB,或者若干個 MIB片段,在需要對當前正在使用的MIB進行升級時,放棄正在使用的MIB,而使用預置的其他MIB ;2)將需要的且在本地存在的MIB片段增加到正在使用的MIB中??梢钥闯?,無論是采用預置多套MIB的方法,還是采用預置MIB片段方法。所能夠升級的MIB節(jié)點均受限于預置的MIB套數(shù),或者預置的MIB片段數(shù)目。MIB擴展的靈活度差,另外預置的MIB信息必然帶來Agent上的數(shù)據(jù)冗余。
發(fā)明內(nèi)容
本發(fā)明要解決的技術問題是提供一種SNMP代理上管理信息庫的升級方法和系統(tǒng),能夠?qū)崿F(xiàn)對Agent上MIB的遠程在線升級。為解決上述技術問題,本發(fā)明提供了一種SNMP代理上管理信息庫(MIB)升級方法,包括當管理者(Manager)啟動升級后,Manager遍歷操作本地MIB所有節(jié)點,向代理 (Agent)發(fā)送請求,Agent根據(jù)接收到的請求判斷出Manager上的MIB與本地MIB有差別, 則將所述差別上報給所述Manager,所述Manager根據(jù)上報的差別確定需要同步的節(jié)點,構造相應補丁并將所述補丁下發(fā)到Agent,Agent根據(jù)接收到的補丁同步本地MIB。進一步地,所述Manager和Agent的MIB中各包含一作為補丁控制節(jié)點的節(jié)點,兩節(jié)點的對象標識符(OID)相同;所述方法還包括預設所述補丁控制節(jié)點對應的操作用于指示Agent執(zhí)行的動作,一個預設操作對應以下一個或多個動作判斷Manager上的MIB與本地MIB的差別、獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB。進一步地,所述Manager遍歷操作本地MIB所有節(jié)點,向Agent發(fā)送請求的步驟包括所述Manager向Agent發(fā)送一個或多個SNMP消息請求,以將Manager本地MIB中每個節(jié)點的OID及其對應的操作類型標識發(fā)送給Agent。進一步地,所述Agent根據(jù)接收到的請求判斷出Manager上的MIB與本地MIB有差別的步驟包括=Agent收到所述SNMP消息請求后,讀取該消息請求中攜帶的OID及操作類型標識,所述操作類型標識所標識的操作觸發(fā)Agent以節(jié)點為單位,判斷并記錄所述第一 MIB與第二 MIB的差別。進一步地,所述Manage根據(jù)上報的差別確定需要同步的節(jié)點,構造相應補丁的步驟包括Manage根據(jù)上報的差別確定需要同步的節(jié)點包括新增的節(jié)點和刪除的節(jié)點時,所述Manager構造的補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的OID及其對應的η個操作的地址,η彡0且η為整數(shù);對于待刪除的節(jié)點,該節(jié)點的OID對應的操作的地址個數(shù)η = 0,即其對應的操作地址為空;對于待增加的節(jié)點,該節(jié)點的OID對應的操作的地址個數(shù)η > 0,且所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容;或者Manage根據(jù)上報的差別確定需要同步的節(jié)點僅包括新增的節(jié)點時,所述Manager 構造的補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的OID及其對應的m個操作的地址,m > 0且m為整數(shù),所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容;或者Manage根據(jù)上報的差別確定需要同步的節(jié)點僅包括刪除的節(jié)點時,所述Manager 構造的補丁包括注冊表,所述注冊表中包括多個待刪除節(jié)點的0ID,其對應的操作地址為空。進一步地,所述Manager將補丁下發(fā)到Agent,Agent根據(jù)接收到的補丁同步本地 MIB的步驟包括Manager通過操作所述補丁控制節(jié)點指示所述Agent獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB。進一步地,所述Manager通過操作所述補丁控制節(jié)點指示所述Agent獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB的步驟包括所述Manager向Agent發(fā)送一個或多個SNMP消息請求,所述SNMP消息請求中包括所述補丁控制節(jié)點的OID以及預設操作的操作類型標識,所述Agent收到所述SNMP協(xié)議消息后,根據(jù)其中攜帶的操作類型標識執(zhí)行相應的動作,完成獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB的動作。進一步地,所述Agent根據(jù)所述補丁同步本地MIB的步驟包括l)Agent從補丁中的注冊表中選取一 OID作為當前同步的OID ;2)判斷注冊表中該OID對應操作地址是否為空,如果為空,則將本地MIB中的具有相同OID的節(jié)點刪除,如果不為空,則進一步判斷本地MIB中是否有相同OID的節(jié)點,如果有,則按照該OID對應的操作地址讀取操作代碼目標文件,獲取更新內(nèi)容,同步本地MIB中的具有相同OID的節(jié)點,如果沒有,則以該OID在本地MIB中注冊一新節(jié)點,根據(jù)從操作代碼目標文件中讀取的更新內(nèi)容,同步新節(jié)點對應的操作;3)從補丁中的注冊表中再選取一未同步過的OID作為當前同步的0ID,執(zhí)行上述步驟 2);重復執(zhí)行上述步驟幻和步驟幻直到注冊表中的OID全部同步完畢。進一步地,所述預設補丁控制節(jié)點對應的操作用于指示Agent執(zhí)行的動作的步驟包括預設所述補丁控制節(jié)點對應的第一操作用于指示Agent獲取補丁,第二操作用于指示Agent解析補丁,第三操作用于指示Agent根據(jù)補丁同步本地MIB ;所述Manager通過操作所述補丁控制節(jié)點指示所述Agent獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB的步驟包括當所述Manager指示Agent獲取補丁時,所述Manager向Agent發(fā)送的SNMP消息請求中包括所述補丁控制節(jié)點的0ID、第一操作的操作類型標識以及補丁內(nèi)容;當所述 Manager指示Agent解析補丁時,所述Manager向Agent發(fā)送的SNMP消息請求中包括所述補丁控制節(jié)點的OID以及第二操作的操作類型標識;當所述Manager指示Agent根據(jù)接收到的補丁同步本地MIB時,所述Manager向Agent發(fā)送的SNMP消息請求中包括所述補丁控制節(jié)點的OID以及第三操作的操作類型標識;所述Agent根據(jù)接收到的SNMP消息請求攜帶的內(nèi)容執(zhí)行相應的動作;或者當所述Manager指示Agent獲取補丁時,所述Manager向Agent發(fā)送的SNMP消息請求中包括所述補丁控制節(jié)點的0ID、第一操作的操作類型標識以及補丁內(nèi)容;當所述 Manager指示Agent解析補丁和根據(jù)接收到的補丁同步本地MIB時,所述Manager向Agent 發(fā)送的SNMP消息請求中包括所述補丁控制節(jié)點的OID以及第二操作的操作類型標識;所述 Agent根據(jù)接收到的SNMP消息請求攜帶的內(nèi)容執(zhí)行相應的動作。為解決上述技術問題,本發(fā)明提供了一種SNMP代理上管理信息庫(MIB)升級系統(tǒng),包括管理者(Manager)和代理(Agent),其中所述Manager,用于在啟動升級后,Manager遍歷操作本地MIB所有節(jié)點,向Agent 發(fā)送請求;以及用于根據(jù)Agent上報的差別確定需要同步的節(jié)點,構造相應補丁并將所述補丁下發(fā)到Agent ;所述Agent,用于根據(jù)接收到的請求判斷出Manager上的MIB與本地MIB有差別, 則將所述差別上報給所述Manager ;以及用于根據(jù)接收到的補丁同步本地MIB。進一步地,所述Manager進一步包括第一 MIB、發(fā)送單元、補丁構造單元,其中
所述第一 MIB中至少包括一作為補丁控制節(jié)點的節(jié)點,所述節(jié)點對應多個操作, 預設所述操作用于指示Agent執(zhí)行以下一個或多個動作判斷Manager上的MIB與本地MIB 的差別、獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地第二 MIB ;所述發(fā)送單元,用于在啟動升級后,遍歷操作所述第一 MIB所有節(jié)點,向Agent發(fā)送請求;以及用于基于所述補丁構造單元的觸發(fā)將所述補丁下發(fā)到Agent ;所述補丁構造單元,用于在接收到Agent上報的MIB差別后,根據(jù)所述差別確定需要同步的節(jié)點,構造相應補丁,并觸發(fā)所述發(fā)送單元;所述Agent進一步包括第二 MIB、差別判斷單元、上報單元、同步單元,其中所述第二 MIB中至少包括一作為補丁控制節(jié)點的節(jié)點,該補丁控制節(jié)點的對象標識符(OID)與第一 MIB中的補丁控制節(jié)點的OID相同,所述節(jié)點對應多個操作,預設所述操作用于執(zhí)行以下一個或多個動作判斷Manager上的MIB與本地MIB的差別、獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地第二 MIB ;所述差別判斷單元,用于在接收到所述Manager的發(fā)送單元發(fā)送的請求后,根據(jù)所述請求判斷出Manager上的第一 MIB與本地第二 MIB有差別,則收集差別并觸發(fā)上報單元;所述上報單元,用于基于所述差別判斷單元的觸發(fā),將所述差別上報給所述 Manager ;所述同步單元,用于在接收到所述Manager的發(fā)送單元發(fā)送的補丁后,根據(jù)所述補丁同步本地第二 MIB。進一步地,所述發(fā)送單元,向Agent發(fā)送的請求包括一個或多個SNMP消息請求,以將Manager本地第一 MIB中每個節(jié)點的OID及其對應的操作類型標識發(fā)送給Agent ;所述差別判斷單元,進一步用于基于該消息請求中攜帶的操作類型標識對應的操作的觸發(fā),以節(jié)點為單位,判斷并記錄所述第一 MIB與第二 MIB的差別。進一步地,所述補丁構造單元在確定需要同步的節(jié)點包括新增的節(jié)點和刪除的節(jié)點時,構造的補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的OID及其對應的η個操作的地址,η > 0且η為整數(shù);對于待刪除的節(jié)點,該節(jié)點的OID對應的操作的地址個數(shù)η = 0,即其對應的操作地址為空;對于待增加的節(jié)點,該節(jié)點的OID對應的操作的地址個數(shù)η > 0,且所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容;或者所述補丁構造單元在確定需要同步的節(jié)點僅包括新增的節(jié)點時,構造的補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的 OID及其對應的m個操作的地址,m > 0且m為整數(shù),所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容;或者所述補丁構造單元在確定需要同步的節(jié)點僅包括刪除的節(jié)點時,構造的補丁包括注冊表,所述注冊表中包括多個待刪除節(jié)點的0ID,其對應的操作地址為空。進一步地,所述發(fā)送單元,進一步用于向Agent發(fā)送一個或多個SNMP消息請求,所述SNMP消息請求中包括所述補丁控制節(jié)點的OID以及預設操作的操作類型標識;所述同步單元,進一步用于收到所述SNMP協(xié)議消息后,根據(jù)其中攜帶的操作類型標識執(zhí)行以下動作,獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地第二 MIB。
本發(fā)明通過“補丁”方式實現(xiàn)Agent上MIB的升級有以下優(yōu)點1) “補丁”的制作可以借用其他平臺(如PC機),不需要Agent參與;2)通過制作不同的“補丁”可以實現(xiàn)對MIB的靈活擴展;3)可以實現(xiàn)對Agent上MIB的遠程在線升級,較現(xiàn)有方法更為簡潔、靈活。
圖1為SNMP網(wǎng)絡管理中MIB樹示意圖;圖2為Manager與Agent上MIB不相同引發(fā)升級需求的示意圖;圖3為本發(fā)明實施例流程圖;圖4為本發(fā)明實施例“補丁”結構圖。
具體實施例方式由于MIB從組織結構上呈“樹狀”結構,對MIB的升級也就是向MIB中添加若干節(jié)點及其對應的操作,或者從其中刪除若干節(jié)點及其對應的操作。因此,本發(fā)明考慮將擴展部分的節(jié)點及其操作制作成“補丁”,Manager通過控制Agent動態(tài)地啟用或刪除該補丁,以實現(xiàn)對Agent上MIB的升級。本發(fā)明的發(fā)明構思是當Manager啟動升級后,Manager遍歷操作本地MIB所有節(jié)點,向Agent發(fā)送請求,Agent根據(jù)接收到的請求判斷Manager上的MIB與本地MIB是否有差別,如果有差別,則將所述差別上報給所述Manager,所述Manager根據(jù)上報的差別確定需要同步的節(jié)點,構造相應補丁并將所述補丁下發(fā)到Agent,Agent根據(jù)接收到的補丁同步本地MIB。如果沒有差別,則本次升級過程結束。優(yōu)選地,在設計MIB (包括Manager的MIB和Agent的MIB)時,任意選擇其中一節(jié)點作為補丁控制節(jié)點,即所述Manager和Agent的MIB中各包含一個作為補丁控制節(jié)點的節(jié)點,該節(jié)點在Manager中的OID和在Agent中的OID相同;預設所述補丁控制節(jié)點對應的操作用于指示Agent執(zhí)行的動作,一個預設操作對應以下一個或多個動作判斷Manager上的MIB與本地MIB是否有差別、獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB。所述Manager將補丁下發(fā)到Agent,Agent根據(jù)接收到的補丁同步本地MIB的步驟包括=Manager通過操作所述補丁控制節(jié)點指示所述Agent獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB。進一步地,所述Manager向Agent發(fā)送一個或多個SNMP消息請求,所述SNMP消息請求中包括所述補丁控制節(jié)點的OID以及預設操作的操作類型標識, 所述Agent收到所述SNMP協(xié)議消息后,根據(jù)其中攜帶的操作類型標識執(zhí)行相應的動作,完成獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB的動作。具體地,所述補丁控制節(jié)點對應若干操作,預設所述補丁控制節(jié)點對應的第一操作用于指示Agent獲取補丁,第二操作用于指示Agent解析補丁,第三操作用于指示Agent 根據(jù)補丁同步本地MIB ;當所述Manager指示Agent獲取補丁時,所述Manager向Agent發(fā)送的SNMP消息請求中包括所述補丁控制節(jié)點的OID (Object Identifiers,對象標識符)、 第一操作的操作類型標識以及補丁內(nèi)容;當所述Manager指示Agent解析補丁時,所述 Manager向Agent發(fā)送的SNMP消息請求中包括所述補丁控制節(jié)點的OID以及第二操作的操作類型標識;當所述Manager指示Agent根據(jù)接收到的補丁同步本地MIB時,所述Manager向Agent發(fā)送的SNMP協(xié)議消息中包括所述補丁控制節(jié)點的OID以及第三操作的操作類型標識。Agent收到所述SNMP消息請求后,根據(jù)接收到的SNMP消息請求攜帶的內(nèi)容執(zhí)行相應的動作。上述第一操作、第二操作和第三操作可以相同也可以不同,可在Agent的流程中規(guī)定何時在收到哪種操作類型標識時執(zhí)行怎樣的動作,但需要與Manager統(tǒng)一設定。優(yōu)選地,Manger可根據(jù)一操作類型標識指示Agent執(zhí)行兩步以上的動作,例如, Manager發(fā)送補丁控制節(jié)點的OID以及第二操作的操作類型標識,通過該第二操作的操作類型標識指示Agent解析補丁及同步本地MIB,此時可認為第二操作與第三操作相同。所述Manager遍歷操作本地MIB所有節(jié)點,向Agent發(fā)送請求的步驟包括所述 Manager向Agent發(fā)送一個或多個SNMP消息請求,以將Manager本地MIB中每個節(jié)點的OID 及其對應的某一操作χ的操作類型標識發(fā)送給Agent。優(yōu)選地,Manager本地MIB中有m個節(jié)點時,Manager向Agent發(fā)送m條SNMP消息請求,每條消息請求中攜帶一個節(jié)點的OID及其對應的操作χ的操作類型標識。預設所述補丁控制節(jié)點對應的操作χ用于指示Agent判斷Manager上的MIB與本地MIB是否有差別;所述Agent根據(jù)接收到的請求判斷Manager上的MIB與本地MIB是否有差別的步驟包括=Agent收到該消息請求后,讀取該消息請求中攜帶的OID及操作類型標識,所述操作類型標識所標識的操作χ觸發(fā)Agent以節(jié)點為單位,判斷并記錄所述第一 MIB與第二 MIB的差別,具體包括=Agent判斷本地MIB中是否有與消息請求中的OID相同的0ID,如果有,則判斷該本地節(jié)點與Manager上的節(jié)點無差別,如果沒有,則判斷該本地節(jié)點與Manager上的節(jié)點有差別,并記錄所述差別;當判斷完所有消息請求中的OID后,判斷本地MIB中是否還有未進行過比較的節(jié)點,如果有,則判斷該節(jié)點與Manager上的節(jié)點有差別,并記錄該差別,如果沒有,判斷操作結束。優(yōu)選地,Agent記錄的差別包括節(jié)點0ID。優(yōu)選地,可分類記錄差別包括Manager上存在而本地不存在的MIB節(jié)點,以及本地存在而Manager上不存在的MIB節(jié)點。對應不同的情況所述Manager構造的補丁包括的內(nèi)容不同,有以下幾種1)所述同步操作包括新增節(jié)點和刪除節(jié)點時,即Manage根據(jù)上報的差別確定需要同步的節(jié)點包括新增的節(jié)點和刪除的節(jié)點時,所述補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的OID及其對應的η個操作的地址(η彡0,且η為整數(shù)),對于待刪除的節(jié)點,該節(jié)點的OID對應的操作的地址個數(shù)η = 0 時,即其對應的操作地址為空;對于待增加的節(jié)點,該節(jié)點的OID對應的操作的地址個數(shù)η >0,且所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容(所述內(nèi)容以目標代碼形式給出),該OID表示的節(jié)點對應的操作需被更新或該節(jié)點需被增加。2)所述同步操作僅包括新增節(jié)點時,即Manage根據(jù)上報的差別確定需要同步的節(jié)點僅包括新增的節(jié)點時,所述補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的OID及其對應的m個操作的地址(m > 0,且η為整數(shù)),所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容(所述內(nèi)容以目標代碼形式給出)。如果OID相同但對應的操作不同時,可按照新增節(jié)點的流程進行更新。
3)所述同步操作僅包括刪除節(jié)點時,即Manage根據(jù)上報的差別確定需要同步的節(jié)點僅包括刪除的節(jié)點時,所述補丁包括注冊表,所述注冊表中包括多個待刪除節(jié)點的 0ID,其對應的操作地址為空。所述根據(jù)補丁同步Agent本地MIB的步驟包括l)Agent從補丁中的注冊表中選取一 OID作為當前同步的OID ;2)判斷注冊表中該OID對應操作地址是否為空,如果為空, 則將本地MIB中的具有相同OID的節(jié)點刪除,如果不為空,則進一步判斷本地MIB中是否有相同OID的節(jié)點,如果有,則按照該OID對應的操作地址讀取操作代碼目標文件,獲取更新內(nèi)容,同步本地MIB中的具有相同OID的節(jié)點,如果沒有,則以該OID在本地MIB中注冊一新節(jié)點,根據(jù)從操作代碼目標文件中讀取的更新內(nèi)容,同步新節(jié)點對應的操作;幻從補丁中的注冊表中再選取一未同步過的OID作為當前同步的0ID,執(zhí)行上述步驟2);重復執(zhí)行上述步驟幻和步驟幻直到注冊表中的OID全部同步完畢。注冊表的設計是為了實現(xiàn)動態(tài)擴展節(jié)點的靈活配置,補丁控制節(jié)點每次按照注冊表中的MIB節(jié)點進行擴展,注冊表中不存在的MIB節(jié)點,即使操作代碼目標文件中存在該 MIB的操作代碼,也不會進行擴展。實現(xiàn)上述升級方法的系統(tǒng),包括Manager和Agent,其中所述Manager,用于在啟動升級后,Manager遍歷操作本地MIB所有節(jié)點,向Agent 發(fā)送請求;以及用于根據(jù)Agent上報的差別確定需要同步的節(jié)點,構造相應補丁并將所述補丁下發(fā)到Agent ;所述Agent,用于根據(jù)接收到的請求判斷Manager上的MIB與本地MIB是否有差別,如果有差別,則將所述差別上報給所述Manager ;以及用于根據(jù)接收到的補丁同步本地 MIB。優(yōu)選地所述Manager進一步包括第一 MIB、發(fā)送單元、補丁構造單元,其中所述第一 MIB中至少包括一作為補丁控制節(jié)點的節(jié)點,所述節(jié)點對應多個操作, 預設所述操作用于指示Agent執(zhí)行以下一個或多個動作判斷Manager上的MIB與本地MIB 是否有差別、獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地第二 MIB ;所述發(fā)送單元,用于在啟動升級后,遍歷操作所述第一 MIB所有節(jié)點,向Agent發(fā)送請求;以及用于基于所述補丁構造單元的觸發(fā)將所述補丁下發(fā)到Agent ;所述補丁構造單元,用于在接收到Agent上報的MIB差別后,根據(jù)所述差別確定需要同步的節(jié)點,構造相應補丁,并觸發(fā)所述發(fā)送單元;優(yōu)選地所述Agent進一步包括第二 MIB、差別判斷單元、上報單元、同步單元,其中所述第二 MIB中至少包括一作為補丁控制節(jié)點的節(jié)點,該補丁控制節(jié)點的OID與第一 MIB中的補丁控制節(jié)點的OID相同,所述節(jié)點對應多個操作,預設所述操作用于執(zhí)行以下一個或多個動作判斷Manager上的MIB與本地MIB是否有差別、獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地第二 MIB ;所述差別判斷單元,用于在接收到所述Manager的發(fā)送單元發(fā)送的請求后,根據(jù)所述請求判斷Manager上的第一 MIB與本地第二 MIB是否有差別,如果有差別,則收集差別并觸發(fā)上報單元;所述上報單元,用于基于所述差別判斷單元的觸發(fā),將所述差別上報給所述Manager ;所述同步單元,用于在接收到所述Manager的發(fā)送單元發(fā)送的補丁后,根據(jù)所述補丁同步本地第二 MIB。優(yōu)選地,所述發(fā)送單元,向Agent發(fā)送的請求包括一個或多個SNMP消息請求,以將 Manager本地第一 MIB中每個節(jié)點的OID及其對應的操作類型標識發(fā)送給Agent ;所述差別判斷單元,進一步用于基于該消息請求中攜帶的操作類型標識對應的操作的觸發(fā),以節(jié)點為單位,判斷并記錄所述第一 MIB與第二 MIB的差別;所述差別包括 Manager上存在而本地不存在的MIB節(jié)點,以及本地存在而Manager上不存在的MIB節(jié)點。判斷操作的一種形式是判斷本地第二 MIB中是否有與消息請求中的OID相同的0ID, 如果有,則判斷該本地節(jié)點與Manager上的節(jié)點無差別,如果沒有,則判斷該本地節(jié)點與 Manager上的節(jié)點有差別,并記錄所述差別;當判斷完所有消息請求中的OID后,判斷本地 MIB中是否還有節(jié)點未進行過比較,如果有則判斷該節(jié)點與Manager上的節(jié)點有差別,并記錄該差別,如果沒有,判斷操作結束。優(yōu)選地,所述補丁構造單元在確定需要同步的節(jié)點包括新增的節(jié)點和刪除的節(jié)點時,構造的補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的OID及其對應的η個操作的地址,η彡0且η為整數(shù);對于待刪除的節(jié)點,該節(jié)點的OID對應的操作的地址個數(shù)η = 0,即其對應的操作地址為空;對于待增加的節(jié)點,該節(jié)點的OID對應的操作的地址個數(shù)η > 0,且所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容;或者所述補丁構造單元在確定需要同步的節(jié)點僅包括新增的節(jié)點時,構造的補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的 OID及其對應的m個操作的地址,m > 0且m為整數(shù),所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容;或者所述補丁構造單元在確定需要同步的節(jié)點僅包括刪除的節(jié)點時,構造的補丁包括注冊表,所述注冊表中包括多個待刪除節(jié)點的0ID,其對應的操作地址為空。優(yōu)選地,所述發(fā)送單元,進一步用于向Agent發(fā)送一個或多個SNMP消息請求,所述 SNMP消息請求中包括所述補丁控制節(jié)點的OID以及預設操作的操作類型標識;所述同步單元,進一步用于收到所述SNMP協(xié)議消息后,根據(jù)其中攜帶的操作類型標識執(zhí)行以下動作,獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地第二 MIB。下面結合附圖和具體實施例對本發(fā)明做進一步的闡述。如圖3所示,預先在MIB設計時,預設一個補丁控制節(jié)點;該節(jié)點除了具有一般 MIB節(jié)點具有的操作外,還具有控制Agent上MIB升級過程的功能,包括Agent和Manager 各自MIB差異的傳輸,補丁的傳輸,以及通知Agent根據(jù)補丁進行同步操作;實現(xiàn)MIB升級的方法包括步驟1 =Manager激活Agent上補丁流程,即Agent發(fā)送進入補丁流程的通知;步驟2 =Agent向Manager發(fā)送已進入補丁流程的響應;步驟3 =Manager遍歷操作本地MIB,向Agent發(fā)送SNMP請求,其中包括節(jié)點OID以及對應的操作類型標識;步驟4 =Agent接收到Manager發(fā)送的請求后,由該操作類型標識所標識的操作觸發(fā)Agent進行比較Agent本地MIB與Manager上MIB差別的操作,Agent收集該差別后上報給Manager,所述差別包括Manager上存在而本地不存在的MIB節(jié)點,以及本地存在而 Manager上不存在的MIB節(jié)點;步驟5 =Manager根據(jù)Agent上報的Agent本地MIB與Manager上MIB的差別,制作對應的補丁,并通過操作補丁控制節(jié)點,將補丁發(fā)送給Agent ;該補丁結構如圖4所示,包含待同步MIB節(jié)點的操作代碼目標文件,以及待同步 MIB節(jié)點的OID與對應操作的注冊表。該注冊表每一個表項為OID與其多種操作的對應。 如前所述,OID對應的操作地址為空時,則表示需要Agent刪除該節(jié)點,如果OID對應的操作地址不為空,則表示需要Agent更新該節(jié)點。本實施例所給出的圖4僅為示例。步驟6 =Agent成功接收補丁后,以Trap形式,即主動發(fā)送Trap報文的方式,通知 Manager接收成功;步驟7 =Manager操作補丁控制節(jié)點,啟動Agent解析該“補丁”的操作;步驟8 =Agent解析補丁,并根據(jù)補丁同步本地MIB ;具體地,讀取補丁中的注冊表(結構如圖4),遍歷該注冊表,提取出每一個節(jié)點的 OID和相關操作的目標代碼信息。以補丁中僅包括新增節(jié)點為例,Agent將解析得到的節(jié)點OID注冊到現(xiàn)有MIB中相應的分支,按照本地MIB中節(jié)點的數(shù)據(jù)結構,構造一個節(jié)點結構用來掛接該OID的若干中操作代碼。如果Agent解析到的節(jié)點OID在本地MIB中存在,則采用覆蓋的方式更新本地節(jié)點。步驟9 同步完成后,Agent以"Trap形式通知Manager本次新增的節(jié)點OID完成;步驟10 =Manager操作補丁控制節(jié)點,通知Agent補丁流程結束。上文描述了一種利用“補丁”技術對Agent中MIB進行遠程在線升級的方法實例, 其中可以看出本發(fā)明所提出的方法不需要在近端逐一對網(wǎng)絡內(nèi)被管理設備Agent的MIB進行重新制作并更換,只需在Agent上增加“補丁”方式的少量支撐機制就可以實現(xiàn)MIB的靈活升級,有很強的實用性。本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關硬件完成,所述程序可以存儲于計算機可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現(xiàn)。相應地,上述實施例中的各單元可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結合。當然,本發(fā)明還可有其他多種實例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領域的技術人員可對本發(fā)明做出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。此外,本發(fā)明還可以有其它改進方法,如對“補丁”程序制作方法的修改,對獲取補丁方法的修改等等,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1.一種SNMP代理上管理信息庫(MIB)升級方法,包括當管理者(Manager)啟動升級后,Manager遍歷操作本地MIB所有節(jié)點,向代理 (Agent)發(fā)送請求,Agent根據(jù)接收到的請求判斷出Manager上的MIB與本地MIB有差別, 則將所述差別上報給所述Manager,所述Manager根據(jù)上報的差別確定需要同步的節(jié)點,構造相應補丁并將所述補丁下發(fā)到Agent,Agent根據(jù)接收到的補丁同步本地MIB。
2.如權利要求1所述的方法,其特征在于所述Manager和Agent的MIB中各包含一作為補丁控制節(jié)點的節(jié)點,兩節(jié)點的對象標識符(OID)相同;所述方法還包括預設所述補丁控制節(jié)點對應的操作用于指示Agent執(zhí)行的動作,一個預設操作對應以下一個或多個動作判斷Manager上的MIB與本地MIB的差別、獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB0
3.如權利要求1所述的方法,其特征在于所述Manager遍歷操作本地MIB所有節(jié)點, 向Agent發(fā)送請求的步驟包括所述Manager向Agent發(fā)送一個或多個SNMP消息請求,以將Manager本地MIB中每個節(jié)點的OID及其對應的操作類型標識發(fā)送給Agent。
4.如權利要求3所述的方法,其特征在于所述Agent根據(jù)接收到的請求判斷出 Manager上的MIB與本地MIB有差別的步驟包括Agent收到所述SNMP消息請求后,讀取該消息請求中攜帶的OID及操作類型標識,所述操作類型標識所標識的操作觸發(fā)Agent以節(jié)點為單位,判斷并記錄所述第一 MIB與第二 MIB的差別。
5.如權利要求1所述的方法,其特征在于所述Manage根據(jù)上報的差別確定需要同步的節(jié)點,構造相應補丁的步驟包括Manage根據(jù)上報的差別確定需要同步的節(jié)點包括新增的節(jié)點和刪除的節(jié)點時,所述 Manager構造的補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的OID及其對應的η個操作的地址,η彡0且η為整數(shù);對于待刪除的節(jié)點,該節(jié)點的OID對應的操作的地址個數(shù)η = 0,即其對應的操作地址為空;對于待增加的節(jié)點,該節(jié)點的OID對應的操作的地址個數(shù)η > 0,且所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容;或者Manage根據(jù)上報的差別確定需要同步的節(jié)點僅包括新增的節(jié)點時,所述Manager構造的補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的OID及其對應的m個操作的地址,m > 0且m為整數(shù),所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容;或者Manage根據(jù)上報的差別確定需要同步的節(jié)點僅包括刪除的節(jié)點時,所述Manager構造的補丁包括注冊表,所述注冊表中包括多個待刪除節(jié)點的0ID,其對應的操作地址為空。
6.如權利要求1所述的方法,其特征在于所述Manager將補丁下發(fā)到Agent,Agent 根據(jù)接收到的補丁同步本地MIB的步驟包括Manager通過操作所述補丁控制節(jié)點指示所述Agent獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB。
7.如權利要求6所述的方法,其特征在于所述Manager通過操作所述補丁控制節(jié)點指示所述Agent獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB的步驟包括所述Manager向Agent發(fā)送一個或多個SNMP消息請求,所述SNMP消息請求中包括所述補丁控制節(jié)點的OID以及預設操作的操作類型標識,所述Agent收到所述SNMP協(xié)議消息后,根據(jù)其中攜帶的操作類型標識執(zhí)行相應的動作,完成獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB的動作。
8.如權利要求5或6或7所述的方法,其特征在于所述Agent根據(jù)所述補丁同步本地MIB的步驟包括DAgent從補丁中的注冊表中選取一 OID作為當前同步的OID ;2)判斷注冊表中該OID對應操作地址是否為空,如果為空,則將本地MIB中的具有相同 OID的節(jié)點刪除,如果不為空,則進一步判斷本地MIB中是否有相同OID的節(jié)點,如果有,則按照該OID對應的操作地址讀取操作代碼目標文件,獲取更新內(nèi)容,同步本地MIB中的具有相同OID的節(jié)點,如果沒有,則以該OID在本地MIB中注冊一新節(jié)點,根據(jù)從操作代碼目標文件中讀取的更新內(nèi)容,同步新節(jié)點對應的操作;3)從補丁中的注冊表中再選取一未同步過的OID作為當前同步的0ID,執(zhí)行上述步驟2);重復執(zhí)行上述步驟幻和步驟幻直到注冊表中的OID全部同步完畢。
9.如權利要求6或7所述的方法,其特征在于所述預設補丁控制節(jié)點對應的操作用于指示Agent執(zhí)行的動作的步驟包括預設所述補丁控制節(jié)點對應的第一操作用于指示Agent獲取補丁,第二操作用于指示Agent解析補丁,第三操作用于指示Agent根據(jù)補丁同步本地MIB ;所述Manager通過操作所述補丁控制節(jié)點指示所述Agent獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地MIB的步驟包括當所述Manager指示Agent獲取補丁時,所述Manager向Agent發(fā)送的SNMP消息請求中包括所述補丁控制節(jié)點的0ID、第一操作的操作類型標識以及補丁內(nèi)容;當所述Manager 指示Agent解析補丁時,所述Manager向Agent發(fā)送的SNMP消息請求中包括所述補丁控制節(jié)點的OID以及第二操作的操作類型標識;當所述Manager指示Agent根據(jù)接收到的補丁同步本地MIB時,所述Manager向Agent發(fā)送的SNMP消息請求中包括所述補丁控制節(jié)點的 OID以及第三操作的操作類型標識;所述Agent根據(jù)接收到的SNMP消息請求攜帶的內(nèi)容執(zhí)行相應的動作;或者當所述Manager指示Agent獲取補丁時,所述Manager向Agent發(fā)送的SNMP消息請求中包括所述補丁控制節(jié)點的0ID、第一操作的操作類型標識以及補丁內(nèi)容;當所述Manager 指示Agent解析補丁和根據(jù)接收到的補丁同步本地MIB時,所述Manager向Agent發(fā)送的 SNMP消息請求中包括所述補丁控制節(jié)點的OID以及第二操作的操作類型標識;所述Agent 根據(jù)接收到的SNMP消息請求攜帶的內(nèi)容執(zhí)行相應的動作。
10.一種SNMP代理上管理信息庫(MIB)升級系統(tǒng),包括管理者(Manager)和代理 (Agent),其中所述Manager,用于在啟動升級后,Manager遍歷操作本地MIB所有節(jié)點,向Agent發(fā)送請求;以及用于根據(jù)Agent上報的差別確定需要同步的節(jié)點,構造相應補丁并將所述補丁下發(fā)到Agent ;所述Agent,用于根據(jù)接收到的請求判斷出Manager上的MIB與本地MIB有差別,則將所述差別上報給所述Manager ;以及用于根據(jù)接收到的補丁同步本地MIB。
11.如權利要求10所述的系統(tǒng),其特征在于所述Manager進一步包括第一 MIB、發(fā)送單元、補丁構造單元,其中 所述第一 MIB中至少包括一作為補丁控制節(jié)點的節(jié)點,所述節(jié)點對應多個操作,預設所述操作用于指示Agent執(zhí)行以下一個或多個動作判斷Manager上的MIB與本地MIB的差別、獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地第二 MIB ;所述發(fā)送單元,用于在啟動升級后,遍歷操作所述第一 MIB所有節(jié)點,向Agent發(fā)送請求;以及用于基于所述補丁構造單元的觸發(fā)將所述補丁下發(fā)到Agent ;所述補丁構造單元,用于在接收到Agent上報的MIB差別后,根據(jù)所述差別確定需要同步的節(jié)點,構造相應補丁,并觸發(fā)所述發(fā)送單元;所述Agent進一步包括第二 MIB、差別判斷單元、上報單元、同步單元,其中 所述第二 MIB中至少包括一作為補丁控制節(jié)點的節(jié)點,該補丁控制節(jié)點的對象標識符 (OID)與第一 MIB中的補丁控制節(jié)點的OID相同,所述節(jié)點對應多個操作,預設所述操作用于執(zhí)行以下一個或多個動作判斷Manager上的MIB與本地MIB的差別、獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地第二 MIB ;所述差別判斷單元,用于在接收到所述Manager的發(fā)送單元發(fā)送的請求后,根據(jù)所述請求判斷出Manager上的第一 MIB與本地第二 MIB有差別,則收集差別并觸發(fā)上報單元; 所述上報單元,用于基于所述差別判斷單元的觸發(fā),將所述差別上報給所述Manager ; 所述同步單元,用于在接收到所述Manager的發(fā)送單元發(fā)送的補丁后,根據(jù)所述補丁同步本地第二 MIB。
12.如權利要求11所述的系統(tǒng),其特征在于所述發(fā)送單元,向Agent發(fā)送的請求包括一個或多個SNMP消息請求,以將Manager本地第一 MIB中每個節(jié)點的OID及其對應的操作類型標識發(fā)送給Agent ;所述差別判斷單元,進一步用于基于該消息請求中攜帶的操作類型標識對應的操作的觸發(fā),以節(jié)點為單位,判斷并記錄所述第一 MIB與第二 MIB的差別。
13.如權利要求11所述的系統(tǒng),其特征在于所述補丁構造單元在確定需要同步的節(jié)點包括新增的節(jié)點和刪除的節(jié)點時,構造的補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的OID及其對應的η個操作的地址,η彡0且η為整數(shù);對于待刪除的節(jié)點,該節(jié)點的OID 對應的操作的地址個數(shù)η = 0,即其對應的操作地址為空;對于待增加的節(jié)點,該節(jié)點的OID 對應的操作的地址個數(shù)11 > 0,且所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容;或者所述補丁構造單元在確定需要同步的節(jié)點僅包括新增的節(jié)點時,構造的補丁包括注冊表和與所述注冊表關聯(lián)的操作代碼目標文件,所述注冊表中包括多個待同步節(jié)點的OID及其對應的m個操作的地址,m > 0且m為整數(shù),所述操作的地址指向所述操作代碼目標文件中的一塊區(qū)域,其中保存有更新的操作的內(nèi)容;或者所述補丁構造單元在確定需要同步的節(jié)點僅包括刪除的節(jié)點時,構造的補丁包括注冊表,所述注冊表中包括多個待刪除節(jié)點的0ID,其對應的操作地址為空。
14.如權利要求13所述的系統(tǒng),其特征在于所述發(fā)送單元,進一步用于向Agent發(fā)送一個或多個SNMP消息請求,所述SNMP消息請求中包括所述補丁控制節(jié)點的OID以及預設操作的操作類型標識;所述同步單元,進一步用于收到所述SNMP協(xié)議消息后,根據(jù)其中攜帶的操作類型標識執(zhí)行以下動作,獲取補丁、解析補丁,以及根據(jù)接收到的補丁同步本地第二 MIB。
全文摘要
本發(fā)明公開了一種SNMP代理上管理信息庫的升級方法和系統(tǒng),能夠?qū)崿F(xiàn)對Agent上MIB的遠程在線升級。所述升級方法包括當管理者(Manager)啟動升級后,Manager遍歷操作本地MIB所有節(jié)點,向代理(Agent)發(fā)送請求,Agent根據(jù)接收到的請求判斷出Manager上的MIB與本地MIB有差別,則將所述差別上報給所述Manager,所述Manager根據(jù)上報的差別確定需要同步的節(jié)點,構造相應補丁并將所述補丁下發(fā)到Agent,Agent根據(jù)接收到的補丁同步本地MIB。
文檔編號H04L29/08GK102299814SQ201010213090
公開日2011年12月28日 申請日期2010年6月24日 優(yōu)先權日2010年6月24日
發(fā)明者李晉, 胡鵬, 許振華, 陳瀟 申請人:中興通訊股份有限公司