專利名稱:一種基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊領(lǐng)域,尤其涉及通訊設(shè)備網(wǎng)絡(luò)管理領(lǐng)域。
背景技術(shù):
隨著現(xiàn)代通信技術(shù)的飛速發(fā)展,運營商對通訊設(shè)備以及網(wǎng)絡(luò)管理系統(tǒng)的要求也越來越多祥化。運營商的網(wǎng)絡(luò)中存在的網(wǎng)元數(shù)量龐大,即使同一類型網(wǎng)元的數(shù)量也非常大, 少則幾十個,多則上千個,由于分布地域不同等原因,這些網(wǎng)元使用的軟件版本可能各不相同,有些支持舊的版本,而有些已經(jīng)升級為新的版本,造成網(wǎng)元多版本在網(wǎng)絡(luò)中共存。所以在網(wǎng)元管理系統(tǒng)中,經(jīng)常會遇到網(wǎng)元升級以及多版本共存的問題。舊的版本已經(jīng)部署在現(xiàn)場,新的版本同時需要支持。此時,新版網(wǎng)元的快速支持,網(wǎng)元多版本兼容,和數(shù)據(jù)庫平滑升級都將是非常關(guān)鍵的問題?,F(xiàn)有的做法是先把數(shù)據(jù)庫里原來存在的舊的數(shù)據(jù)導(dǎo)出,然后根據(jù)新的版本的具體情況,調(diào)整原有數(shù)據(jù)庫表格,或者為新的版本創(chuàng)建新的數(shù)據(jù)庫表,以便同時兼容新舊兩種版本。再根據(jù)變化的具體狀況編寫腳本,導(dǎo)入舊數(shù)據(jù)。此外,程序員必須對代碼所有相關(guān)部分進行調(diào)整,分情況針對不同版本進行特殊處理。同時,當(dāng)有新的數(shù)據(jù)需要寫入數(shù)據(jù)庫表時,現(xiàn)有技術(shù)的實現(xiàn)方式是在數(shù)據(jù)庫與網(wǎng)絡(luò)管理系統(tǒng)交互的過程中,如果數(shù)據(jù)庫結(jié)構(gòu)發(fā)送變化,需要調(diào)整原來接ロ的實現(xiàn)方式或者添加新的接ロ。這樣會帶來一系列的開發(fā)和測試工作量。以上方法要兼容網(wǎng)元的新舊版本,數(shù)據(jù)表需要重新調(diào)整,相關(guān)數(shù)據(jù)庫調(diào)用代碼也需要重新修改,所有相關(guān)業(yè)務(wù)流程代碼,涉及到不同版本時需要特殊處理。這對開發(fā)以及測試人員來說都是一件非常困難和繁瑣的事情,并且在這個過程中也很容易出問題,對整個系統(tǒng)的維護非常不利。專利號為200510086395. 2的中國發(fā)明專利公開了ー種網(wǎng)絡(luò)管理中兼容代理不同版本的方法,在所述管理站記錄所述管理代理上的各個版本號并定義不同版本號與其支持功能之間的映射表,所述管理站獲取所述代理設(shè)備的版本號,及所述管理站根據(jù)所述代理設(shè)備的版本號的不同加載相應(yīng)的功能點至映射表。該專利通過映射表對不同的版本網(wǎng)元加載不同的功能點,但是仍然是通過對管理站進行升級實現(xiàn)對新版本設(shè)備的管理,并且該發(fā)明僅僅支持功能點的映射,如果各個版本功能點的屬性發(fā)生變化,則不能提供支持。
發(fā)明內(nèi)容
本發(fā)明的目的在于解決網(wǎng)絡(luò)中網(wǎng)元存在多種版本軟件吋,需要調(diào)整數(shù)據(jù)庫表并開發(fā)數(shù)據(jù)庫表接ロ,程序員必須重寫代碼以支持多版本共存的問題,提供ー種在網(wǎng)絡(luò)管理系統(tǒng)中,網(wǎng)元多版本快速支持的方法。一種基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,應(yīng)用于管理多版本網(wǎng)元的網(wǎng)絡(luò)管理系統(tǒng)中,包括步驟步驟I、網(wǎng)元升級版本,生成規(guī)格文件;
步驟2、網(wǎng)絡(luò)管理系統(tǒng)讀入規(guī)格文件;步驟3、比較同一規(guī)格文件的不同版本,找出規(guī)格差異;步驟4、網(wǎng)絡(luò)管理系統(tǒng)根據(jù)規(guī)格文件調(diào)整數(shù)據(jù)庫表;步驟5、網(wǎng)絡(luò)管理系統(tǒng)管理多版本網(wǎng)元,不同版本的網(wǎng)元按照各自的規(guī)格文件約束自己的行為。所述步驟I中規(guī)格文件包括規(guī)格索引文件和規(guī)格屬性文件,所述的規(guī)格索引文件包括網(wǎng)元中的具體規(guī)格和版本信息,所述的規(guī)格屬性文件包括網(wǎng)元具體規(guī)格的各項屬性和版本信息。進ー步地,所述步驟4中同一規(guī)格文件是指同一規(guī)格屬性文件,所述規(guī)格差異是指同一規(guī)格的不同版本間的屬性差異。進ー步地,所述步驟4包括找出有規(guī)格差異的規(guī)格對應(yīng)的數(shù)據(jù)庫表,在原來的數(shù)據(jù)庫表上擴充出新増加的屬性,原來該表中記錄數(shù)據(jù)保留不變。進ー步地,所述網(wǎng)絡(luò)管理系統(tǒng)不改變原有的與數(shù)據(jù)庫表的接ロ,通過原來的接ロ 來對數(shù)據(jù)庫表進行操作,網(wǎng)管系統(tǒng)與數(shù)據(jù)庫接ロ只需要簡單的對數(shù)據(jù)庫表的某一行進行操作,只要指定表名,屬性名,就可以進行數(shù)據(jù)庫表進行選定、刪除和升級操作。本發(fā)明公開的ー種基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,網(wǎng)元的配置、狀態(tài)、功能,以及支持的告警,性能等均基于規(guī)格驅(qū)動,業(yè)務(wù)模型由規(guī)格定義,可以使編碼人員專注于編碼細節(jié)。如果新版本中需要添加新的屬性,只需要根據(jù)規(guī)格直接擴充現(xiàn)有數(shù)據(jù)庫表,如果減少了某個屬性,則不對數(shù)據(jù)庫表做任何處理。此外,網(wǎng)絡(luò)管理統(tǒng)與數(shù)據(jù)庫接ロ基于表接ロ 調(diào)用,表名和屬性名不變,則原有代碼不需要修改,大大減少了開發(fā)以及測試的工作量。通過本發(fā)明的方法可以做到網(wǎng)元多版本兼容,版本升級時,數(shù)據(jù)庫平滑升級,業(yè)務(wù)模型和編碼分離,網(wǎng)元升級過程中減少乃至于完全不需要新增接ロ。
圖I為基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法流程圖。
具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明技術(shù)方案做進ー步詳細說明,以下實施例不構(gòu)成對本發(fā)明的限定。本發(fā)明公開了ー種基于規(guī)格驅(qū)動的網(wǎng)元多版本管理方法,在網(wǎng)絡(luò)管理系統(tǒng)中用規(guī)格文件來描述所有網(wǎng)管軟件可管理的網(wǎng)元,包括網(wǎng)元的類型、功能、配置、狀態(tài)、支持的管理屬性、外觀等。規(guī)格文件有兩種,規(guī)格文件I為規(guī)格索引文件,用來定義某個網(wǎng)元下所包含的具體規(guī)格,以mo后綴結(jié)尾。規(guī)格文件2為規(guī)格屬性文件,用來定義所述具體規(guī)格所包含的具體屬性,對應(yīng)到數(shù)據(jù)庫表,以ts后綴結(jié)尾。用同名文件表示同一個規(guī)格文件,用不同的后綴 VO, Vl......表不不同的版本。有網(wǎng)元A,已經(jīng)在網(wǎng)運行了一段時間,A網(wǎng)元的規(guī)格文件I為A. v0. mo。內(nèi)容如下
<ObjectPersistSpace>
くSpec key="e" specId="A.V0">
<disp>
〈String val=MAR1.0.07>
</disp>
<attrTables>
<String val="NeAttr.V0"/>
<String val="NeStat.V0"/>
〈String val=MArpCfg.V07>
<String val="ArpStat.V0"/>
</attrTables>
</Spec>
</ObjectPersistSpace>可見A 網(wǎng)兀包含了 4 個具體規(guī)格 NeAttr. VO, NeStat. VO, ArpCfg. V0,和 ArpStat. V0,對應(yīng)數(shù)據(jù)庫四張數(shù)據(jù)庫表,同時也說明了,這個類型的網(wǎng)元只支持對應(yīng)的四種功能。對于每ー個具體規(guī)格,都對應(yīng)ー個規(guī)格文件2,對于規(guī)格NeAttr. VO,其規(guī)格文件2為NeAttr. VO. ts,內(nèi)容如下
<ObiectPersistSpace>
くSpec id=MNeAttr.V0M acl=M0M sh=Mcfg:NeAttrM>
<disp>
<String val=MNE Attributes"/〉
</disp>
くfield〉
<TableSpecField id=’’Fid” acl=’’0” type=MStringM>
<disp>〈String val=nFID7>
</disp>
くdefaultVal teid=MString" val=M7>
<param>
くKVAnyPair key=HIsKeyH>
<val tcid="Boolcan" val="truc"/>
</KVAnyPair>
</param>
</TableSpecField>
くTableSpecField id=MTimeZoneM acl="0" type="Long">
<disp>
くString val="Time Zone"/〉
</disp>
<dcfaultVal tcid=MLong" val="8"/>
<param>
<KV AnyPair key=,,Limit">
<val teid=MStringM val=M[-43200,46800]7> </KVAnyPair>
</param>
く/Table SpecField〉
<TableSpecField id="NtpServer" acl="0" type=MIpAddrM> <disp>
くString val="NTP Server Address"/>
</disp>
<defaultVal teid=MIpAddrM data=M07>
</TableSpecField>
</field></Spec>
</ObjectPersistSpace>NeAttr. VO. ts對應(yīng)到數(shù)據(jù)庫,將生成表格NeAttr,其中有3個屬性Fid, TimeZone, NtpServer。這里同時說明了,這項配置支持TimeZone和NtpServer的配置功倉^:?,F(xiàn)在需要對網(wǎng)元A升級,并且要求,網(wǎng)管同時支持新舊版本。如圖I所示,基于規(guī)格驅(qū)動的網(wǎng)元多版本管理方法包括如下具體步驟步驟101、網(wǎng)元A升級版本,此時需要為網(wǎng)元A配置新的規(guī)格文件I和規(guī)格文件2, 其中規(guī)格文件I為A. vl. mo,內(nèi)容如下
<ObiectPersistSpace>
<Spec key="e" specId="A.Vl">
<disp>
<String val=MAR2.0.07>
</disp>
<attrTables>
<String val=MNeAttr.VlM/>
<String val="NeStat.VO"/>
〈String val=MArpCfg.V07>
〈String val="ArpStat.VO"/> </attrTables>
</Spec>
</ObjectPersistSpace>其中新版本在NeAttr規(guī)格上做了改動,升級到了 NeAttr. Vl版本,其他屬性不變??梢娋W(wǎng)元A在新版本中包含了 4個具體規(guī)格NeAttr. VI,NeStat. VO,ArpCfg. VO,和 ArpStat. VO,對應(yīng)數(shù)據(jù)庫四張數(shù)據(jù)庫表,對于每ー個具體規(guī)格,都對應(yīng)ー個規(guī)格文件2,對于規(guī)格NeAttr. VI,其規(guī)格文件2為NeAttr. VI. ts,內(nèi)容如下
<ObiectPersistSpace>
くSpec id=MNeAttr.V0M acl=M0M sh=Mcfg:NeAttrM>
<disp>
<String val=MNE Attributes"/〉
</disp>
くfield〉
<TableSpecField id=MFidM acl=M0M type=MStringM>
<disp>
〈String val=MFID7>
</disp>
くdefaultVal teid=MStringM val=MM/>
<param>
<KVAnyPair key=MIsKeyM>
<val teid="Boolean" val="true"/> </KV Any Pair〉
</param>
〈/Table SpecField〉
<TableSpecField id="NtpServer" acl="0" type="IpAddr"> <disp>
〈String val=MNTP Server Address"/〉
</disp>
<defaultVal teid=MIpAddrM data=M07> </TableSpecField>
<TableSpecField id="PerMonAll" acl="0" type="Boolean"> <disp>
〈String val="Performance Monitor All"/〉
</disp><defaultVal teid="Boolean" val="true"/>
</T able SpecF ield>
</field>
</Spec>
</Obj ectPersistSpace〉NeAttr. VI. ts對應(yīng)到數(shù)據(jù)庫,依然是表格NeAttr,其中有3個屬性Fid, NtpServer, PerMonAll NeAttr. Vl 與 NeAttr. VO 版本比較,NeAttr. Vl 多出了 一個屬性 PerMonAll,少了一個屬性TimeZone。即增加支持了 PerMonAll的配置功能,同時減少了對 TimeZone配置功能的支持。步驟102、網(wǎng)管系統(tǒng)讀入網(wǎng)元A規(guī)格文件。步驟103、比較同一規(guī)格文件的不同版本,找出規(guī)格差異在本實施例中,NeAttr. Vl與NeAttr. VO版本比較,NeAttr. Vl多出了一個屬性PerMonAll,少了一個屬性 TimeZone。即增加支持了 PerMonAll的配置功能,同時減少了對TimeZone配置功能的支持。步驟104、網(wǎng)管系統(tǒng)讀入規(guī)格文件時發(fā)現(xiàn)這個情況后,則在原來的數(shù)據(jù)庫表 NeAttr上擴充出I列PerMonAll,原來該表中舊有的記錄數(shù)據(jù)ー概保留不變。新舊版本都是對本版本規(guī)格定義的那些屬性進行操作,這張數(shù)據(jù)庫表就可以同時兼容新舊版本數(shù)據(jù), 不再需要重新整理數(shù)據(jù)庫。步驟105、網(wǎng)絡(luò)管理系統(tǒng)管理多版本網(wǎng)元,不同版本的網(wǎng)元按照各自的規(guī)格文件約束自己的行為,即新舊版本都是對本版本規(guī)格定義的那些屬性進行操作。本發(fā)明通過表接ロ的方式來處理數(shù)據(jù)庫與網(wǎng)管系統(tǒng)的交互的問題,例如int selectRows (......);int deleteRows (......);int updateRows (......);網(wǎng)管系統(tǒng)與數(shù)據(jù)庫接ロ只需要簡單的對數(shù)據(jù)庫表的某一行進行操作,只要指定表名,屬性名,就可以進行數(shù)據(jù)庫表進行選定、刪除和升級操作。這樣在程序開發(fā)的過程中,盡管網(wǎng)元版本升級,増加了新的功能,網(wǎng)管系統(tǒng)也不需要増加新的數(shù)據(jù)庫和網(wǎng)管程序接ロ。支持舊版本的接口和業(yè)務(wù)邏輯也不需要改動,大大提高了開發(fā)的效率以及程序的穩(wěn)定性,同時,也減輕了測試的工作量。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的一般技術(shù)人員來說,本發(fā)明還可以有各種更改和變化。在不脫離本發(fā)明原理的前提下,所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,應(yīng)用于管理多版本網(wǎng)元的網(wǎng)絡(luò)管理系統(tǒng)中,其特征在于,所述多版本網(wǎng)絡(luò)管理方法包括步驟步驟I、網(wǎng)元升級版本,生成規(guī)格文件;步驟2、網(wǎng)絡(luò)管理系統(tǒng)讀入規(guī)格文件;步驟3、比較同一規(guī)格文件的不同版本,找出規(guī)格差異;步驟4、網(wǎng)絡(luò)管理系統(tǒng)根據(jù)規(guī)格文件調(diào)整數(shù)據(jù)庫表;步驟5、網(wǎng)絡(luò)管理系統(tǒng)管理多版本網(wǎng)元,不同版本的網(wǎng)元按照各自的規(guī)格文件約束自己的行為。
2.根據(jù)權(quán)利要求I所述的基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,其特征在于,所述步驟I中規(guī)格文件包括規(guī)格索引文件和規(guī)格屬性文件。
3.根據(jù)權(quán)利要求2所述的基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,其特征在于,所述的規(guī)格索引文件包括網(wǎng)元中的具體規(guī)格和版本信息。
4.根據(jù)權(quán)利要求2所述的基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,其特征在于,所述的規(guī)格屬性文件包括網(wǎng)元具體規(guī)格的各項屬性和版本信息。
5.根據(jù)權(quán)利要求4所述的基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,其特征在于,步驟4中所述同一規(guī)格文件是指同一規(guī)格屬性文件。
6.根據(jù)權(quán)利要求5所述的基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,其特征在于,所述規(guī)格差異是指同一規(guī)格的不同版本間的屬性差異。
7.根據(jù)權(quán)利要求6所述的基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,其特征在于,步驟4包括找出有規(guī)格差異的規(guī)格對應(yīng)的數(shù)據(jù)庫表,在原來的數(shù)據(jù)庫表上擴充出新増加的屬性, 原來該表中記錄數(shù)據(jù)保留不變。
8.根據(jù)權(quán)利要求I所述的基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,其特征在于,所述網(wǎng)絡(luò)管理系統(tǒng)不改變原有的與數(shù)據(jù)庫表的接ロ,通過原來的接ロ來對數(shù)據(jù)庫表進行操作。
9.根據(jù)權(quán)利要求8所述的基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,其特征在干,網(wǎng)管系統(tǒng)與數(shù)據(jù)庫接ロ只需要簡單的對數(shù)據(jù)庫表的某一行進行操作,只要指定表名,屬性名,就可以進行數(shù)據(jù)庫表進行選定、刪除和升級操作。
全文摘要
本發(fā)明公開了一種基于規(guī)格驅(qū)動的多版本網(wǎng)絡(luò)管理方法,通過規(guī)格文件描述網(wǎng)元的具體規(guī)格屬性,網(wǎng)絡(luò)管理系統(tǒng)根據(jù)規(guī)格文件調(diào)整數(shù)據(jù)庫表,支持新舊不同的網(wǎng)元版本。如果新版本中需要添加新的屬性,只需要根據(jù)規(guī)格直接擴充現(xiàn)有數(shù)據(jù)庫表,如果減少了某個屬性,則不對數(shù)據(jù)庫表做任何處理。此外,數(shù)據(jù)庫系統(tǒng)與數(shù)據(jù)庫接口基于表接口調(diào)用,表名和屬性名不變,則原有代碼不需要修改,大大減少了開發(fā)以及測試的工作量。通過本發(fā)明的方法可以做到網(wǎng)元多版本兼容,版本升級時,數(shù)據(jù)庫平滑升級網(wǎng)元升級過程中減少乃至于完全不需要新增接口。
文檔編號H04L12/24GK102611580SQ20121009411
公開日2012年7月25日 申請日期2012年4月1日 優(yōu)先權(quán)日2012年4月1日
發(fā)明者何倩, 范曉群 申請人:Ut斯達康通訊有限公司