欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種電信管理網(wǎng)上下層網(wǎng)管數(shù)據(jù)比較方法

文檔序號:7614915閱讀:181來源:國知局
專利名稱:一種電信管理網(wǎng)上下層網(wǎng)管數(shù)據(jù)比較方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種針對電信管理網(wǎng)(TMN)中的分層網(wǎng)管系統(tǒng)之間數(shù)據(jù)一致性處理中的數(shù)據(jù)比較方法。
背景技術(shù)
國際電信同盟ITU-T M.3010將電信管理層模型劃分為網(wǎng)元層(NEL)、網(wǎng)元管理層(EML)、網(wǎng)絡(luò)管理層(NML)、業(yè)務(wù)管理層(SML)、事務(wù)管理層(BML)。針對不同層次存在不同的網(wǎng)絡(luò)管理系統(tǒng),比如網(wǎng)元層網(wǎng)管系統(tǒng)(EMS)、網(wǎng)絡(luò)層網(wǎng)管系統(tǒng)(NMS)、業(yè)務(wù)層網(wǎng)管系統(tǒng)(SMS)等等。它們各有側(cè)重,互相協(xié)調(diào)共同構(gòu)成整個電信管理網(wǎng)絡(luò)。因為采用分層管理,所以關(guān)于某個實體的信息常常同時在多個層次系統(tǒng)存在。保持這些信息之間緊密的一致性是一項重要任務(wù)。要判斷某個信息在不同層次網(wǎng)管系統(tǒng)中的狀態(tài)是否一致性,必須先通過某種數(shù)據(jù)格式從各層提取信息,對其進行比較得出一致性狀態(tài)報告。
目前在電信管理網(wǎng)分層管理模型中,各層次之間數(shù)據(jù)通訊的格式主要是Abstract Syntax Notation One(ASN.1),它是一種描述結(jié)構(gòu)化對象的語法標準。ASN.1具有很好的延伸性和自定義能力,其類似于樹的結(jié)構(gòu)層次清晰、表達能力強,特別適合表示現(xiàn)代通信應(yīng)用中那些復(fù)雜的、變化的及可擴展的數(shù)據(jù)結(jié)構(gòu)。所以它在電信領(lǐng)域獲得了廣泛應(yīng)用,以ASN.1報文格式提取信息進行比較也就成為電信網(wǎng)管系統(tǒng)最常見的一致性比較方式。在此特別說明的是ASN.1報文呈樹狀結(jié)構(gòu),因此本說明書全文較多地方采用了數(shù)據(jù)結(jié)構(gòu)中“樹”的觀點和名詞,如遍歷、節(jié)點、葉子節(jié)點等等。
ASN.1報文具有如下特殊性質(zhì)1.報文呈樹狀結(jié)構(gòu),可以根據(jù)需要定義較多層次的報文嵌套2.報文中某個節(jié)點的類型多種多樣,可能為一個簡單數(shù)據(jù)類型,比如整型、字符串等等;也有可能為包含再下級節(jié)點的復(fù)合數(shù)據(jù)類型;3.某個位置上的節(jié)點有可能不存在,因為對應(yīng)報文節(jié)點允許設(shè)置為OPTIONAL,表示可有可無。
因此,一致性比較過程必須對報文體進行詳細的解析,獲取每個細節(jié)的屬性。常用的解析報文途徑是將ASN.1報文字節(jié)流轉(zhuǎn)換成為內(nèi)存中的對等類對象(簡稱ASN.1內(nèi)存對象),然后對報文內(nèi)存對象進行比較。比較方式主要有兩種1.直接對ASN.1內(nèi)存對象整體進行“等、不等”運算,這種方式簡單快速,避開了復(fù)雜的報文層次分析。但是產(chǎn)生的結(jié)果不能反映每個節(jié)點的具體比較細節(jié);2.對照報文的定義得知報文樹中每個節(jié)點的數(shù)據(jù)類型、名稱,代碼中的每步操作都明確指定所針對的節(jié)點的名稱。
對于第一種比較方法,缺點非常明顯比較的結(jié)果只能反映兩個報文整體等或不等,信息粒度太粗,展示在界面上后需要用戶自己去尋找到底哪些位置的信息不相等,因此基本上沒有實際使用意義。而對于第二種方法,由于代碼和報文結(jié)構(gòu)捆綁得過于緊密,一旦報文發(fā)生任何細微的改動,比如節(jié)點名稱、類型變化,都會引起代碼的修改,極大地增加了開發(fā)和維護的工作量。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種電信管理網(wǎng)(TMN)上下層網(wǎng)管數(shù)據(jù)比較方法,該方法將代碼與報文之間的耦合性減至最小,并可以得到清晰的比較結(jié)果。
本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)方案為一種電信管理網(wǎng)上下層網(wǎng)管數(shù)據(jù)比較方法,包括以下步驟A、創(chuàng)建結(jié)果報文及容器對象;所述結(jié)果報文至少包含被比較報文節(jié)點值的對比情況,以及每個節(jié)點在報文中的位置信息;所述容器用來緩存所述被比較報文節(jié)點的信息;B、將兩個被比較報文中根節(jié)點信息添入所述容器內(nèi)的元素中;C、循環(huán)取出所述容器中的元素進行分析處理,將處理結(jié)果返回所述結(jié)果報文,直到所述容器中不存在任何元素時為止。
所述的比較方法,其中所述的步驟C包括如下步驟C1、從所述容器內(nèi)取出一個元素,得到其記錄的兩個被比較報文節(jié)點;C2、對所述兩個被比較報文節(jié)點進行對比,將對比情況保存到所述結(jié)果報文中;C3、如果當前被比較節(jié)點有子節(jié)點,則解析所述子節(jié)點序列,將子節(jié)點序列中代表同一信息的的成員結(jié)為待比較子節(jié)點對,并將所有待比較子節(jié)點對的信息順序存入所述容器內(nèi)的元素中;C4、循環(huán)步驟C1至C3,直到所述容器中不存在任何元素時為止。
所述的比較方法,其中步驟C3所述子節(jié)點配對方法為搜索兩個子節(jié)點序列,將關(guān)鍵字相等的子節(jié)點結(jié)為一個待比較子節(jié)點對;而序列中剩下的各子節(jié)點與一個空節(jié)點結(jié)為待比較子節(jié)點對。
所述的比較方法,其中所述結(jié)果報文為ASN.1報文;所述容器為隊列、棧或鏈表。
所述的比較方法,其中當所述容器為隊列時,隊列元素中保存的被比較報文節(jié)點信息為報文節(jié)點地址。
所述的比較方法,其中當所述容器為隊列時,如果采用按深度遍歷策略,子節(jié)點對的信息插入到所述隊列的當前元素之后;如果采用按寬度遍歷策略,子節(jié)點對的信息依次插入到整個所述隊列的最后。
所述的比較方法,其中所述步驟C1包括如下處理當發(fā)現(xiàn)從所述容器取出的元素其中有一個為空節(jié)點時,比較過程仍繼續(xù),并在后繼比較過程中,該節(jié)點的所有子孫節(jié)點均以空節(jié)點代替。
本發(fā)明的有益效果為本發(fā)明技術(shù)方案有以下優(yōu)點1)采用常見的ASN.1報文作為電信管理網(wǎng)不同層次間信息傳遞的協(xié)議,針對分別從上下層網(wǎng)管提取的ASN.1報文進行比較,得到的結(jié)果數(shù)據(jù)也為ASN.1報文,因此具有良好的通用性;2)由于比較結(jié)果為ASN.1報文,結(jié)果報文反映了報文中每個節(jié)點的對比情況和詳細的位置信息,界面可以根據(jù)它輕松地組織顯示,直接表現(xiàn)出所有節(jié)點的差異情況而不需要用戶去仔細對比尋找哪些節(jié)點不同。
3)對ASN.1報文進行解析,根據(jù)解析出的節(jié)點類型決定下一步如何處理,整個過程不包含報文名稱,因而適應(yīng)于任意的兩個類型相同ASN.1報文之間的比較。
4)本發(fā)明所述比較過程和傳統(tǒng)的報文比較方式——報文整體“等、不等”運算或針對報文具體定義進行處理相比,具有明顯的優(yōu)勢本發(fā)明將代碼和報文結(jié)構(gòu)之間的耦合性減少到最小,代碼維護簡單。程序適應(yīng)于任何類型報文,輸入端可以處理任意報文而不需要針對不同報文做大量修改。


圖1為本發(fā)明方法的流程圖;圖2為光傳輸網(wǎng)管系統(tǒng)NMS和EMS典型體系圖;圖3為DSET所定義的ASN.1報文類框架圖;圖4為報文的比較過程流程圖;圖5為以隊列為容器時的比較流程圖;由于圖3為C++類的繼承關(guān)系圖,類名本身就是英文字符串,是標準中規(guī)定好的名字,因此無法用中文標注。
具體實施例方式
下面根據(jù)附圖和實施例對本發(fā)明作進一步詳細說明本發(fā)明比較的數(shù)據(jù)來源,分別是從上下層網(wǎng)管提取的兩個ASN.1報文,它們分別代表同一信息在上下層網(wǎng)管中的狀態(tài),其定義相同但是具體的值可能存在不一致。而得到的比較結(jié)果也為ASN.1報文,比較結(jié)果首先應(yīng)該包含被比較報文中每個節(jié)點的對比結(jié)果,其次因為ASN.1報文具有樹狀層次結(jié)構(gòu),結(jié)果報文還必須反映這種結(jié)構(gòu)特點,以便通過它可以方便地恢復(fù)出整個報文樹;所以結(jié)果報文至少應(yīng)該包含兩個方面的內(nèi)容被比較報文每個節(jié)點值的對比情況,以及每個節(jié)點在報文中的位置信息。本發(fā)明所陳述的比較方法利用容器(如隊列、棧、鏈表等等)緩存需要進行比較的報文節(jié)點來完成比較過程。每個容器元素對應(yīng)比較報文中的一個位置,記錄參與比較的兩個報文在該位置上的節(jié)點信息,需要進行比較的每對節(jié)點都經(jīng)歷一次入容器和出容器,利用容器可以靈活地實現(xiàn)“按深度遍歷”和“按寬度遍歷”等多種策略。
本發(fā)明所述數(shù)據(jù)比較方法的步驟如圖1所示a)創(chuàng)建結(jié)果報文以及容器對象;b)將兩個源報文中位于比較過程開始位置的節(jié)點的信息(根節(jié)點信息)填入容器內(nèi)的元素中;
c)循環(huán)取容器中的元素進行一系列分析處理,直到容器中不再存在任何元素時停止;d)返回結(jié)果報文。
所述方法,其中所述步驟c)取容器元素所進行的一系列分析處理包括以下步驟c1)從容器里取出一個元素,得到它記錄的兩個待比較報文節(jié)點;c2)對報文節(jié)點值進行對比,將對比情況保存到結(jié)果報文中;c3)如果節(jié)點包含下級子節(jié)點,則解析兩個當前對比節(jié)點的子節(jié)點序列,將雙方對應(yīng)的子節(jié)點信息順序保存進容器的元素,留待后繼步驟取出進行比較。
其中所述步驟c3)解析子節(jié)點序列過程可能涉及到子節(jié)點配對問題。它的含義是將本發(fā)明比較方法步驟c3所得到的兩個子節(jié)點序列中代表同一信息的那些成員結(jié)為待比較節(jié)點對,該處理只針對所包含子節(jié)點的位置不固定的ASN.1數(shù)據(jù)類型,比如SEQUENCE OF、SET OF。在這些類型的數(shù)據(jù)中,因為內(nèi)部是類似數(shù)組的平級結(jié)構(gòu),子節(jié)點的位置完全由生成報文時的填寫順序決定,所以不能直接將兩個序列中位置對應(yīng)的子節(jié)點結(jié)為待比較節(jié)點對,而需要有一個尋找、匹配的過程。子節(jié)點配對的具體方法如下1)搜索兩個子節(jié)點序列,將表示同一對象的子節(jié)點結(jié)為一個待比較節(jié)點對,而對于序列中剩下的子節(jié)點,各自和一個空節(jié)點結(jié)為待比較節(jié)點對;2)將所有待比較節(jié)點對的信息保存進容器的元素。
上述配對方法中“表示同一對象”的判據(jù)是子節(jié)點的關(guān)鍵字相等??梢酝ㄟ^提供預(yù)備的關(guān)鍵字注冊表來指定整個比較過程中需要進行配對處理的節(jié)點和各自的關(guān)鍵字。而需要進行聲明的是1)報文中有定義但實際上在比較報文雙方均沒有出現(xiàn)的節(jié)點,可根據(jù)需要靈活處理。比如選擇忽略它們而不進行任何處理;2)如果在本發(fā)明所述步驟c1),當取出容器元素發(fā)現(xiàn)其中有一個為空節(jié)點時,比較過程將照常進行。在后繼比較過程中,該節(jié)點的所有子孫節(jié)點均以空節(jié)點代替。
下面結(jié)合一個光傳輸網(wǎng)管系統(tǒng)的實例,詳細說明上下層網(wǎng)管數(shù)據(jù)的比較過程。
典型的C/S結(jié)構(gòu)光傳輸網(wǎng)絡(luò)層管理系統(tǒng)(NMS)和網(wǎng)元層管理系統(tǒng)(EMS)邏輯組成如附圖2所示。類似這種結(jié)構(gòu)的網(wǎng)管體系中,NMS和EMS二者使用各自的數(shù)據(jù)庫獨立運行但NMS的初始數(shù)據(jù)來源于EMS。NMSServer通過適配器向EMS發(fā)送消息請求服務(wù);EMS Server響應(yīng)來自適配器的消息并向適配器回發(fā)NMS所需要的數(shù)據(jù)。因為NMS中的基礎(chǔ)數(shù)據(jù)都來源于EMS,所以兩個系統(tǒng)并存了大量的對等信息,在光傳輸網(wǎng)管系統(tǒng)中包括網(wǎng)元屬性、網(wǎng)元單板、拓撲連接等等。運行中要求它們在EMS和NMS間保持嚴格的一致。所以對兩個層次的同一信息進行比較并在界面上展示差異性,成為NMS的一個重要功能。
利用本發(fā)明所述的比較方案,可以很好地滿足這個需求。以下分成數(shù)據(jù)比較方案、結(jié)果報文定義、編譯平臺、容器的定義、比較過程、特別說明幾部分對該實例進行詳細說明。
(一)數(shù)據(jù)比較方案根據(jù)電信網(wǎng)管的功能分層定義,EMS接受NMS的管理。NMS的數(shù)據(jù)直接來源是受其管理的EMS。所以對如圖2所示的電信管理網(wǎng)分層網(wǎng)管體系,信息的比較應(yīng)該放在NMS進行。整個過程步驟如下1)NMS界面發(fā)起信息比較命令;2)NMS Server向本層網(wǎng)管數(shù)據(jù)庫要求提取信息;3)NMS Server收到本層網(wǎng)管數(shù)據(jù)庫返回的信息;4)NMS Server通過適配器向EMS Server要求提取信息;
5)NMS Server收到適配器上報的來自EMS Server的返回信息;6)NMS Server將兩個信息進行比較,獲得結(jié)果給發(fā)送到NMS界面;7)NMS界面以圖形方式展示比較結(jié)果。
整個過程中,圖示各個模塊之間的通訊全都采用ASN.1報文作為協(xié)議。關(guān)鍵性的比較活動發(fā)生在上述步驟6)中兩個ASN.1報文被對比,產(chǎn)生結(jié)果ASN.1報文發(fā)送給NMS界面。
(二)結(jié)果報文定義按照“發(fā)明內(nèi)容”部分所述結(jié)果報文應(yīng)該包含的信息,對結(jié)果報文作如下定義CompareResultList-T∷=SEQUENCE OF CompareResult-TCompareResult-T∷=SEQUENCE{numberINTEGER,parentNumber INTEGER,depth INTEGER,itemName GraphicString(32),valueOne
GraphicString OPTIONAL,valueTwo [1]GraphicString OPTIONAL,ifSameBOOLEAN}各個字段的含義解釋如下number當前節(jié)點的編號(也就是節(jié)點為父節(jié)點的第幾個子節(jié)點)parentNumber父節(jié)點編號depth節(jié)點在整個節(jié)點樹中的層次itemName節(jié)點名稱valueOne節(jié)點在報文一中的值valueTwo節(jié)點在報文二中的值
ifSame節(jié)點在兩個報文中的值是否相等比較完成后的結(jié)果報文類型為CompareResultList-T,它由一系列CompareResult-T類型的數(shù)據(jù)組成。在排列順序上提供“按深度優(yōu)先遍歷”和“按寬度優(yōu)先遍歷”兩種方式。該定義很清楚地體現(xiàn)出一個節(jié)點在整個報文樹中的位置和數(shù)值的比較情況。網(wǎng)管界面能夠非常方便地將這樣的結(jié)果報文恢復(fù)成樹狀進行顯示。
(三)編譯平臺ASN.1報文在網(wǎng)絡(luò)中以編碼字節(jié)流方式傳送。程序代碼中要對其進行解析,必須先將它轉(zhuǎn)換成內(nèi)存中的數(shù)據(jù)格式,這一工作依靠ASN.1編譯平臺的支持來進行。可供選用的編譯平臺有很多,這里采用DSET。它提供從ASN.1報文編碼字節(jié)流到C++內(nèi)存類對象之間的映射,可以將ASN.1報文的定義編譯生成一系列C++類。而且它還內(nèi)含了一個完整的ASN.1報文類繼承體系如圖3所示,這個體系為每種ASN.1報文數(shù)據(jù)類型處理都提供了豐富的接口函數(shù)。圖3包含了大多數(shù)常用ASN.1報文類型所對應(yīng)的C++類。從圖3中可以看到,所有類型都發(fā)源于AbstractData,該類為內(nèi)存中的報文對象處理定義了基本行為集合。這種繼承框架為代碼的泛型處理提供了天然的支撐。
在DSET編譯平臺上進行ASN.1報文比較,實際上是先將兩個報文解碼成對應(yīng)的內(nèi)存報文類對象,再調(diào)用DSET的各種接口函數(shù)解析它們進行比較,獲得結(jié)果報文類對象,然后再編碼為ASN.1結(jié)果報文發(fā)送給界面。
(四)容器的定義本發(fā)明利用容器來緩存需要進行比較的報文節(jié)點信息,容器可以是隊列(deque),也可以是鏈表(list)或棧(stack)。下文以隊列為例來說明本發(fā)明所述比較方法。隊列泛指一種處理思想,可以自定義實現(xiàn),也可以利用STL(標準模板庫)中提供的隊列類型STD∷deque。隊列的元素需要保存待比較的報文節(jié)點信息,這里的實現(xiàn)方式是記錄節(jié)點地址。為此定義如下結(jié)構(gòu)作為隊列的元素struct T_BRANCH{int iDepth;int iParentNumber;int iSelfNumber;string strNodeName;constASN1∷AbstractData*pValueOne;constASN1∷AbstractData*pValueTwo;}各個成員的含義解釋如下iDepth父節(jié)點的深度iParentNumber父節(jié)點的編號iSelfNumber節(jié)點的編號(為父節(jié)點的第幾個子節(jié)點)strNodeName節(jié)點的名稱pValueOne報文一中的節(jié)點指針pValueTwo報文二中的節(jié)點指針本實施所使用的隊列定義為STD∷deque<T_BRANCH*>。該隊列的作用是在比較當前報文節(jié)點的時候一旦發(fā)現(xiàn)其存在下級子節(jié)點,則將需要比較的子節(jié)點地址緩存在隊列中待后繼過程處理。在其基礎(chǔ)上可以實現(xiàn)“按深度遍歷”和“按寬度遍歷”兩種策略。策略的區(qū)別在于隊列的“插入點”,插入點指新元素加入到隊列中所在的位置。如圖4所示,如果是“按深度遍歷”,新元素插入到隊列當前元素之后(圖4中的位置1);如果是“按寬度遍歷”,新元素將依次追加到整個隊列的后面(圖4中的位置2)。
(五)比較過程說明采用隊列作為容器時,比較過程的流程如圖5所示。下面以光傳輸網(wǎng)管系統(tǒng)中常見的數(shù)據(jù)——單板信息為例,詳細說明本發(fā)明所述比較方法的具體過程和注意事項。
單板對應(yīng)的ASN.1報文及其含義如下MEBoard-T∷=SEQUENCE{meName GraphicString(60),//光傳輸網(wǎng)絡(luò)網(wǎng)元名稱meBoardList BoardList-T//網(wǎng)元包含單板集合}BoardList-T∷=SEQUENCE OF BoardInfo-TBoardInfo-T∷=SEQUENCE{name GraphicString(60), //單板名稱serviceState INTEGER,//服務(wù)狀態(tài)expectedType
INTEGER OPTIONAL,//設(shè)計單板類型installedType [1]INTEGER OPTIONAL,//實際安裝單板類型addtionalInfo [2]GraphicString(60)OPTIONAL//單板備注信息}對應(yīng)這樣的兩個ASN.1報文A和B,按照本發(fā)明所述比較方法,處理步驟為1)創(chuàng)建一個CompareResultList-T結(jié)果報文對象pResult;2)創(chuàng)建一個STD∷deque<T_BRANCH*>類型的隊列pDeque;3)創(chuàng)建一個T_BRANCH類型的結(jié)構(gòu)實例,將A、B的地址分別填寫到pValueOne、pValueTwo,設(shè)置層次深度值iDepth為0,加入隊列pDeque;4)取隊列頭元素,由pValueOne、pValueTwo得到當前比較報文節(jié)點(即A和B)的地址。對pValueOne調(diào)用方法ASN1∷AbstractData∷get_adTypeId(),得到代表類型StructuredData的一個整數(shù)值。注StructuredData是ASN.1報文的SEQUENCE類型在DSET中的實現(xiàn);5)由步驟4)得到的整數(shù)值判定當前節(jié)點是一個復(fù)合類型,自身并不具備值。為其創(chuàng)建一個CompareResult-T報文對象,其中depth賦為隊列當前頭元素的iDepth值,number賦為1,valueOne、valueTwo賦為空字符串,IfSame設(shè)置為True,然后將該報文對象添加到pResult中;6)由步驟4)得到的整數(shù)值判定當前節(jié)點是一個復(fù)合類型,可能含有下級子節(jié)點。所以分別對pValueOne、pValueTwo調(diào)用方法ASN1∷AbstractData∷size(),得到它們所包含的下級子節(jié)點序列長度,這里為2。然后再根據(jù)長度對pValueOne、pValueTwo調(diào)用方法ASN1∷StructuredData∷get(unsigned int)得到它們的子節(jié)點meName、meBoardList;7)創(chuàng)建一個T_BRANCH類型的結(jié)構(gòu)實例,將雙方的meName子節(jié)點對象地址填寫到其中,設(shè)置層次深度值iDepth為1,iSelfNumber為0,然后加入隊列pDeque;同樣的處理針對meBoardList,只是iSelfNumber應(yīng)該按次序設(shè)置為1;8)第一個節(jié)點的比較過程到這里已經(jīng)結(jié)束,彈出隊列頭元素。
9)因為隊列不為空,所以繼續(xù)取隊列頭元素,此時得到的元素對應(yīng)的報文節(jié)點是meName。同樣先獲取數(shù)據(jù)類型,然后為其創(chuàng)建一個CompareResult-T報文對象,它的depth、number賦為隊列當前頭元素的iDepth、iSelfNumber值。再對pValueOne、pValueTwo調(diào)用ASN1∷AbstractData∷asValueNotation(),解析返回的字符串得到當前比較節(jié)點的名稱和雙方的值,名稱填寫到itemName分量中,值填寫到valueOne、valueTwo中。將填寫完成的CompareResult-T報文對象添加到pResult中;10)當前節(jié)點的比較過程到這里已經(jīng)結(jié)束,彈出隊列頭元素。
11)再次重復(fù)取隊列頭元素進行分析的過程。此時隊列頭元素代表的報文節(jié)點是meBoardList。需要注意的是因為它對應(yīng)的ASN.1類型是SEQUENCE OF,在DSET中為D_SeqOfObj。于是應(yīng)該對pValueOne、pValueTwo調(diào)用ASN1∷D_SeqOfObj∷size(unsigned int)和ASN1∷D_SeqOfObj∷get(unsigned int)來判斷子節(jié)點序列長度以及獲取每個子節(jié)點,同樣,將每一對待比較的子節(jié)點地址信息緩存到一個T_BRANCH結(jié)構(gòu)實例并加入隊列,留待處理;12)后繼比較步驟與前述一樣,不再累述。整個比較過程到隊列中不存在任何元素時結(jié)束。
(六)特別說明對以單板信息為例的比較過程需要進行特別說明的是1.比較步驟11),因為meBoardList的ASN.1類型定義是SEQUENCEOF,內(nèi)部子節(jié)點呈類似數(shù)組的平級結(jié)構(gòu)。由pValueOne獲得的單板序列1,其中第i個單板信息可能位于由pValueTwo獲得的單板序列2中第j個位置(i不等于j)。因此不能直接將序列1和序列2相同位置的單板進行比較。必須遍歷兩個序列,逐個進行對比判斷才能得知到底哪些數(shù)據(jù)表示同一單板。
判斷兩個報文節(jié)點是否表征同一信息的方法是對報文節(jié)點的關(guān)鍵字進行對比,該處理需要給程序提供關(guān)鍵字名稱參照表。對于單板報文BoardInfo-T,關(guān)鍵字是“name”。于是定義一個參照表,表中包含這樣一對值{“meBoardList”,“name”}。這個參照表是預(yù)定義的,由程序員編寫程序的時候根據(jù)待比較報文結(jié)構(gòu)而制定。需要聲明的是這是本發(fā)明唯一需要和報文結(jié)構(gòu)捆綁的地方,但它只是整個比較模塊與外界的一個接口,并不影響模塊內(nèi)部過程良好的封裝性和獨立性。整個比較過程中,每當程序根據(jù)ASN1∷AbstractData∷get_adTypeId()返回的類型值得知當前比較節(jié)點是平行結(jié)構(gòu)類型(如SEQUENCE OF),就去關(guān)鍵字名稱對照表中尋找相應(yīng)關(guān)鍵字信息。對于例中的meBoardList,將查到名稱字符串“name”。接下來的配對步驟是1)交叉對比序列1、2中每個單板信息的name節(jié)點,這個對比直接采用節(jié)點“等、不等”運算。值相同的那些節(jié)點對代表了同一單板分別在上下層網(wǎng)管的狀態(tài)。為每對節(jié)點創(chuàng)建T_BRANCH結(jié)構(gòu)實例并將節(jié)點地址分別賦給pValueOne、pValueTwo,加入隊列pDeque;2)剩下沒有配對成功的單板,意味著只在某一層網(wǎng)管中存在。它們的處理方法是對于只在序列1中存在的節(jié)點,同樣生成T_BRANCH結(jié)構(gòu)實例,將pValueOne設(shè)定為節(jié)點地址,而將pValueTwo賦為空地址,再加入隊列pDeque;只在序列2中存在的節(jié)點處理方式相同,只是賦為空地址的相應(yīng)變?yōu)閜ValueOne。
2.當對兩個BoardInfo-T類型報文節(jié)點的子節(jié)點序列進行配對的時候,因為expectedType成員的性質(zhì)是OPTIONAL的,所以可能只在其中一方出現(xiàn)。處理策略是創(chuàng)建T_BRANCH結(jié)構(gòu)實例時,將對應(yīng)不存在一方的節(jié)點地址賦為空地址值。而如果節(jié)點在兩個報文中都沒有出現(xiàn),可以根據(jù)需要確定是否為其創(chuàng)建T_BRANCH結(jié)構(gòu)實例并插入隊列。本發(fā)明采用的方式是忽略這種報文節(jié)點。
3.因為前述兩種處理方式導(dǎo)致取出隊列頭元素時,可能會發(fā)現(xiàn)pValueOne與pValueTwo其中之一為空地址,此時循環(huán)比較過程并不會停頓。處理策略是(假設(shè)pValueTwo為空地址)生成一個CompareResult-T類型報文對象,根據(jù)pValueOne獲取報文節(jié)點值填賦給valueOne,而置valueTwo為空字符串;如果該節(jié)點同時還包含下級子節(jié)點,那么照樣需要為子節(jié)點創(chuàng)建T_BRANCH結(jié)構(gòu)實例。所創(chuàng)建的結(jié)構(gòu)對象中pValueTwo均賦為空地址值,pVavlueOne處理方式正常。也就是說空地址將在整個過程中被傳遞。
可以理解的是,對本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方案及其發(fā)明構(gòu)思加以等同替換或改變,而所有這些改變或替換都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。
權(quán)利要求
1.一種電信管理網(wǎng)上下層網(wǎng)管數(shù)據(jù)比較方法,包括以下步驟A、創(chuàng)建結(jié)果報文及容器對象;所述結(jié)果報文至少包含被比較報文節(jié)點值的對比情況,以及每個節(jié)點在報文中的位置信息;所述容器用來緩存所述被比較報文節(jié)點的信息;B、將兩個被比較報文中根節(jié)點信息添入所述容器內(nèi)的元素中;C、循環(huán)取出所述容器中的元素進行分析處理,將處理結(jié)果返回所述結(jié)果報文,直到所述容器中不存在任何元素時為止。
2.根據(jù)權(quán)利要求1所述的比較方法,其特征在于所述的步驟C包括如下步驟C1、從所述容器內(nèi)取出一個元素,得到其記錄的兩個被比較報文節(jié)點;C2、對所述兩個被比較報文節(jié)點進行對比,將對比情況保存到所述結(jié)果報文中;C3、如果當前被比較節(jié)點有子節(jié)點,則解析所述子節(jié)點序列,將子節(jié)點序列中代表同一信息的的成員結(jié)為待比較子節(jié)點對,并將所有待比較子節(jié)點對的信息順序存入所述容器內(nèi)的元素中;C4、循環(huán)步驟C1至C3,直到所述容器中不存在任何元素時為止。
3.根據(jù)權(quán)利要求2所述的比較方法,其特征在于步驟C3所述子節(jié)點配對方法為搜索兩個子節(jié)點序列,將關(guān)鍵字相等的子節(jié)點結(jié)為一個待比較子節(jié)點對;而序列中剩下的各子節(jié)點與一個空節(jié)點結(jié)為待比較子節(jié)點對。
4.根據(jù)權(quán)利要求3所述的比較方法,其特征在于所述結(jié)果報文為ASN.1報文;所述容器為隊列、?;蜴湵怼?br> 5.根據(jù)權(quán)利要求4所述的比較方法,其特征在于當所述容器為隊列時,隊列元素中保存的被比較報文節(jié)點信息為報文節(jié)點地址。
6.根據(jù)權(quán)利要求5所述的比較方法,其特征在于當所述容器為隊列時,如果采用按深度遍歷策略,子節(jié)點對的信息插入到所述隊列的當前元素之后;如果采用按寬度遍歷策略,子節(jié)點對的信息依次插入到整個所述隊列的最后。
7.根據(jù)權(quán)利要求6所述的比較方法,其特征在于所述步驟C1包括如下處理當發(fā)現(xiàn)從所述容器取出的元素其中有一個為空節(jié)點時,比較過程仍繼續(xù),并在后繼比較過程中,該節(jié)點的所有子孫節(jié)點均以空節(jié)點代替。
全文摘要
本發(fā)明公開了一種電信管理網(wǎng)上下層網(wǎng)管數(shù)據(jù)比較方法,包括以下步驟A.創(chuàng)建結(jié)果報文及容器對象;結(jié)果報文至少包含被比較報文節(jié)點值的對比情況,以及每個節(jié)點在報文中的位置信息;容器用來緩存所述被比較報文節(jié)點的信息;B.將兩個被比較報文中根節(jié)點信息添入所述容器內(nèi)的元素中;C.循環(huán)取出容器中的元素進行分析處理,將處理結(jié)果返回所述結(jié)果報文,直到所述容器中不存在任何元素時為止。該方法能夠?qū)⒋a與報文之間的耦合性減至最小,并可以得到清晰的比較結(jié)果,維護簡單并具有良好的通用性。
文檔編號H04L12/24GK1929388SQ20051003708
公開日2007年3月14日 申請日期2005年9月9日 優(yōu)先權(quán)日2005年9月9日
發(fā)明者陳明, 馬潤宏 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
长治县| 祥云县| 开化县| 长宁县| 桦甸市| 南昌县| 淮南市| 涞水县| 金堂县| 任丘市| 四会市| 双辽市| 东海县| 台东市| 海林市| 云和县| 蛟河市| 临西县| 平定县| 临沧市| 靖宇县| 金昌市| 淳安县| 德钦县| 兴国县| 麻栗坡县| 永定县| 南华县| 琼结县| 青岛市| 峨眉山市| 旬邑县| 周宁县| 类乌齐县| 麻江县| 陈巴尔虎旗| 碌曲县| 墨江| 宁海县| 通辽市| 句容市|