專利名稱:網絡單元中比較可控對象表示式屬性值的方法
技術領域:
本發明一般涉及通信網的管理系統。本發明尤其涉及根據所附的權利要求1,為施加于通信網網絡單元的操作選擇目標群的方法。
上面提到的網絡管理系統在實際應用中可能是
圖1所示的類型。位于網絡操作中心OC的網絡操作員使用網絡管理工作站WS,這些工作站連接到單獨的工作站網絡WSN,例如,Ethernet網。通常情況下,網絡管理系統分布在工作站網絡的幾臺計算機上,它們可以接入到包含有網絡管理所需信息的數據庫DB。管理系統通過在國際標準中定義的Q3接口連接到網絡,例如移動網絡MN,移動網絡的網絡單元包括移動業務交換中心MSC,基站控制器BSC,基站BTS,以及移動站。它們與所管理網絡的連接通過數據通信網DCN來建立。所管理的網絡同樣可以是任何通信網,例如,混合的SDH/PDH網絡。
在網絡管理中Q3接口的OSI通信中使用的CMISE應用服務要素(CMISE=公共管理信息服務要素)為應用進程提供了SCOPE/FILTER功能(參看ISO/IEC-9596-1信息技術—開放系統互連—公共管理信息協議—第一部分說明書)。該功能的目的是從所管理的對象實例中選出一個子群,對該子群實施象m-Get之類的CMIP操作(CMIP=公共管理信息協議)。
網絡單元中被管理的對象形成一種樹狀分級體系結構,這種結構保存在網絡單元的存儲器中,其節點中包含有對象實例和相關的屬性。在SCOPE/FILTER功能中,SCOPE條件用于將CMIP操作定界到管理對象實例樹(MIT,管理信息樹)的子樹。這通過操作中所給的子樹樹根名,即DN(可識別名)來進行。CMIP操作的FILTER條件分別作用于每一個其功能相當于子樹節點的對象實例。在對對象實例實施CMIP操作之前,對象實例屬性的值必須要滿足這一條件。應用SCOPE和FILTER條件后,CMIP操作所涉及的對象實例群就建立起來了。
在測試對象實例的屬性值是否滿足FILTER條件時要進行比較,在比較過程中對象實例的屬性值將與特定的參考值進行比較。由于沒有通用的測試方法,需要為網絡單元中的每種屬性類型創建單獨的特定比較函數。為了實現上述功能,網絡單元需要有很大的存儲器容量。就大的網絡單元而言,通常有數百甚至是數千個被管理的對象,由于進行比較所需要的總存儲容量擴展到很大,這樣使存儲器的管理變得復雜并且降低了它的速度。如果考慮小的網絡單元,這種網絡單元從商業角度也要強調對存儲器的這種要求。因為在盡可能經濟地生產小網絡單元(例如,移動電話)的競爭中,存儲器僅僅擴展一個字節都有意義。
由于上面的原因,在實現FILTER條件時,應該采用一種通用的方案,即如何以通用方式在網絡單元中實現FILTER條件測試。其目的是實現一種函數,該函數能夠根據CMIP操作的FILTER條件和對象實例的屬性值來判定對象實例的屬性值是否滿足FILTER條件。在前面提到的標準ISO/IEC-9596-1,p.16中公開了FILTER條件的形式,它利用了ASN.1數據類型CMISFilter中ASN.1的表示法(ASN.1=Abstract Syntax NotationOne,抽象語法表示1)。(在標準ISO 8824中定義了ASN.1表示法,對此感興趣的讀者可以從中找到更詳細的說明)。實際上,FILTER條件是正規表達式,(參見程序語言中的表達式),它可能包括邏輯運算符(AND,OR,NOT),關系運算符(=,≤,≥),圖形串運算符(initialString,anyString,finalString)以及集合運算符(present,subsetOf,supersetOf,non_nullIntersection)。
邏輯運算符和圖形串運算符在測試通用的FILTER條件時不會有問題。而在涉及關系運算符和集合運算符的執行時會產生問題。下面的例子將清楚地顯示這些運算符執行時的困難假定要比較的屬性是屬于類型A,用ASN.1表示法表示如下A∷=SEQUENCE{B INTEGER,C REAL,D GraphicString
}上述的表示法說明類型A的屬性是三個變量B,C和D的序列,其中B是整數,C是實數,D是圖形串。在網絡單元中,類型A可以用C語言的下列結構數據類型來實現typedef struct{int b;float c;char *d;} A;如果屬性值比較函數獲得的真正的屬性值和參考值僅僅是八字節串的形式,而不知道數據類型更詳細的結構,那么就很難想象該如何來進行屬性值之間通用的相等比較。即便是類型A的兩個值有完全相同的含義,如果域D的圖形串指針指向了不同的地方,那么線性八字節串的比較將導致錯誤的結果。相等比較只有在比較函數知道“數據類型A是一記錄,它的第三個域(D)是一圖形串指針,以及第三個域的相等比較要在指針尋址的圖形串之間進行”的情況下才能給出正確的結果。
因此,測試FILTER條件時出現的問題起源于這樣的事實,即不能對包含在FILTER條件中的屬性值實施線性八字節串比較,而比較者必須通過某種方式知道要比較的屬性值的數據類型。
本發明的目的是提供一種方法,通過它可能避免上述問題。這個目的通過依據本發明的方法可以達到,其特征在于單個對象實例屬性之間的比較通過下述過程來完成(a)讀取預先存儲在網絡單元存儲器中,且與該屬性相關聯的語義數據,(b)在該網絡單元中搜索該對象實例所關聯的屬性值,(c)利用所讀取的語義數據比較屬性值和收到的參考值。
本發明的思想是在網絡單元的存儲器中保存語義數據(例如已在使用階段),該語義數據指示在比較特定對象實例的屬性時要使用的數據類型。當網絡單元已投入使用,而網絡管理系統(操作員)正在為將實施于網絡單元的CMIP管理操作搜索目標群時,首先從網絡單元讀取這些語義數據,接著這些語義數據被用于比較對象實例的屬性值和所接收到的來自網絡管理系統的參考值。
依據本發明的結果,假定與所使用的描述語言(例如,ASN.1)一致的數據類型將被創建為一種程序語言的數據類型,該程序語言有翻譯程序(例如,C或C++編譯器)。這要在網絡單元中根據明確的規則來進行。前面給出了ASN.1數據類型和從ASN.1數據類型導出的C語言數據類型的例子。從ASN.1表示式導出的數據類型(例如,用C語言)的實例此處稱之為本地區域(home areas)。這樣在網絡單元中,屬性值被表示為本地區域。
本發明的基礎在于在進行CMIP管理操作時,如果在網絡單元中知道對應于屬性值的本地區域的語義,那么屬性值的比較就能夠實現。
本發明在網絡單元中使用少得多的存儲器,并改進存儲器管理。雖然必須在網絡單元中為每一種類型的屬性存儲一個不同的語義數據,但是其意義在于語義數據可以存儲在比比較函數小很多的存儲空間中,而如果沒有依據本發明的通用比較方法存在,就需要有比較函數。
下面,參考附圖的圖2..5,將詳細公開本發明和所涉及的優選實施例,其中圖1示出了一種典型的網絡管理系統;圖2示出了被管理的對象實例形成的樹;圖3示出了如上所述用C語言描述的對應于數據類型A的語義樹;圖4示出了一個對應于FILTER條件的樹狀數據結構的例子;以及圖5說明在示范條件下本發明的操作,在這里網絡操作員搜索一群特殊的用戶。
如果要在通信網絡中對網絡單元實施管理操作,必須要為該管理操作找到最終目標群,根據CMIP數據傳送協議,網絡管理系統要向網絡單元發送關于操作和目標群的信息。目標群表示為一群對象實例(即子樹,其根節點標識符要發送給網絡單元)以及對象實例屬性的比較準則,準則包括一個或多個參考值和一個或多個比較條件。接下來,在網絡單元中,屬于目標群的對象實例的屬性值將與接收到的參考值利用接收到的比較條件進行比較,最終目標群是從原始目標群中屬性值滿足所收到的比較準則的對象實例中選出。
圖2示出了被管理的對象實例的樹,即MIT,以及由SCOPE和FILTER條件所定界的對象實例群。由SCOPE條件定界的對象實例群(例如,一顆子樹)位于虛線S之內。箭頭表示FILTER條件“屬性A的值為1”所定界的對象實例。這樣,在圖2的例子中,CMIP操作的最終目標群將由箭頭所示的對象實例構成。
下面將更詳細地描述根據所收到的來自網絡管理系統的信息如何在網絡單元中進行比較。
為了實現通用的比較機制,在網絡單元中,數據類型的實例即本地區域語義表示為樹狀數據結構,它在幾個層上有節點。每一節點表示在比較對象實例屬性時要使用的數據類型。
樹狀數據結構對應于一顆分析樹,該分析樹由所使用的程序語言的翻譯程序(如C編譯器)從本地數據類型中生成。在由ASN.1數據類型生成網絡單元中使用的程序語言的數據類型的同時,生成本地區域的語義樹是有利的。通常在該階段要使用編譯程序,它把ASN.1的表達式翻譯為程序語言的數據類型。
圖3所示的語義樹相當于上例中類型A的C語言版本。利用該語義樹,可以詳盡了解存儲器中的本地區域的結構。數據類型A的本地區域的語義樹說明本地區域屬于C語言的“結構”類型,并且它包括兩個獨立的存儲器區域。第一個存儲器區域順序包括一個四字節長的整數(ASN.1的INTEGER類型,C語言的int類型),一個四字節長的浮點數(ASN.1的REAL類型,C語言的“float”類型),以及第二個存儲器區域的初始地址(ASN.1的GraphicString類型,C語言的“Char*”類型,即圖形串指針)。第二個存儲器區域包括圖形串。相應地,利用語義樹可以知道“類型A本地區域的第三個域D的相等比較可以在圖形串之間進行,圖形串通過位于距離本地區域開始位置八個字節處的指針來尋址”。相應地,在比較本地區域的第一和第二個域時也要利用語義樹所包含的信息。這樣,利用語義樹,通過對應于屬性值的本地區域的比較可以完成類型A的兩個屬性值的比較。
假定CMIP操作(例如,m-Get)的FILTER條件在網絡單元(如諾基亞DX200交換機)中表示為樹狀數據結構,其葉節點包括所比較的屬性的對象標識符,參考值的本地區域,以及運算符。至于運算符,有關系運算符(≤,≥,=),圖形串運算符(initia1String,anyString或finalString)或一串集合運算符(present,subsetOf,supersetOf或nonNullIntersection)。在樹的其它節點中可能有邏輯運算符(AND,OR或NOT)。圖四示出了一個對應于FILTER條件的樹狀數據結構的例子,在這個例子中條件語句為((屬性A=a)AND(屬性B≤b))OR((屬性C≥c)AND(具有屬性D))。
根據下述的evaluate_filter算法可以生成測試FILTER條件的程序代碼。evalate_filter迭代算法從根節點開始遍歷表示FILTER條件的樹狀數據結構,返回FILTER條件的有效性作為結果。該算法要測試除葉節點外所有的樹狀數據結構。對葉節點中條件的測試方法下面將會更詳細地描述。在這種算法中,葉節點的測試被compare_values操作所取代。這種算法沒有考慮就其結構而言樹狀數據結構可能有錯誤的情況。
evaluate_filter算法可以表示如下boolean evaluate_filter(root node){輔助變量operator,child node,reuslt;if(root node為空)return TRUE;if(樹只有root node)return compare_values(root node);operator=root node中的運算符;child node=root node的左孩子;if(operator=“NOT”)result=對evaluate_filter(child node)的值取反;elsedo{result=evaluate_filter(child node);if(child node非空)child node=child node的右兄弟;}while(((result=FALSE and operator=“OR”)or
(result=IRUE and operator=“AND”))and child node為空);return result;}evaluate_filter算法表明測試FILTER條件中的邏輯運算符不會有問題,但在測試表示FILTER條件的樹狀數據結構的葉節點中的條件時,即完成evaluate_filter算法中的compare_value操作時,會產生問題。
如上所述,用于比較FILTER條件所包含的屬性值的方法分為兩步。根據本發明,第一步包括為所有在網絡單元中存在的屬性值的本地區域構造語義樹并創建目錄。語義樹和目錄存儲在網絡單元中。第二步是對要比較的屬性值使用compare_values算法,該算法的功能以對所存儲的語義樹的解釋為基礎。
實現compare_values算法的先決條件是語義樹的節點要包括下列信息對應于本地區域的ASN.1類型的標識符,本地區域類型的標識符,記錄類型本地區域中每個域相對于本地區域起始位置的偏移,以及本地區域的大小。此外還必須有一目錄,由屬性記錄的對象標識符通過目錄與該屬性的本地區域語義樹相關聯。圖3是本地區域語義樹的例子。
屬性值比較的原則可由compare_values算法來說明。這里給出的是算法的簡化形式,并且只對相等比較進行處理。舉例來說,ASN.1類型的SET和SET OF就未作處理。但是,根據這里所公開的說明,本領域技術人員將能夠寫出完整的算法。圖4中表示FILTER條件的樹狀數據結構的葉節點將作為輸入提供給compare_values算法。葉節點中包含有比較中要使用的屬性的對象標識符,關系運算符,以及在比較中要使用的屬性值。這種算法假定在比較開始時能夠檢索出對應于屬性標識符的屬性值。因此,該算法能夠提供屬性值比較成功或失敗的信息。該算法沒有考慮任何可能出錯的情況。算法compare_values調用了輔助迭代算法compare_home。compare_values算法boolean compare_values(leaf node){輔助變量semantict ree_root,attribute_value;
semantic tree_root=search_semantictree_root(leafnode.attribute_identifier);attribute value=search_attribute_value(leafnode.attribute_identifier);return compare_home(semantic tree_root,attribute_value,leaf node.attribute_reference value);}輔助算法compare_homeboolean compare_home(root,attribute_value,attribute_referencevalue){輔助變量child node,result;if(root.home area_type=指針類型){attribute_value=<把attribute_value解釋為一個地址,并且在該地址所指示的位置搜索新的值>;attribute_compare value=<將attribute reference_value解釋為一個地址,并且在該地址所指示的位置搜索新的值>;}if(root.ASN1類型=SEQUENCE){child node=根節點的左孩子;do{result=compare_home(child node,attribute_value+child node.OFFSET,attribute reference_value+childnode.OFFSET);
child node=子節點的右兄弟;}while(result=TRUE and子節點存在);return result;}else{if(root.ASN1-type=BOOLEAN)return compare_boolean(attribute-value,attribute_reference_value);else if(root.ASN1-type=INTEGER)return compare_interger(attribute_value,attribute_reference_value);...
}}輔助子程序compare_boolean(比較整數是否相等)boolean compare_boolean(value,reference value){return value=refernce value;}正如上面公開的內容,網絡單元的比較程序要讀入所接收到的屬性的標識,參考值和數據類型語義。接著,比較程序要求單獨的自適應程序(自適應程序包含有關于何處能真正檢索到屬性,以及哪個能夠用正確的數據類型來返回屬性值的信息)提供屬性的實際值并進行比較。其結果是得到屬性值匹配的對象實例,并對這些對象實例實施操作。
為了清晰地說明上面的內容,下面將分析一個以電話交換機作為網絡單元的實際例子。網絡單元包含有用戶寄存器,它保存著連接到該網絡單元的用戶的信息。在網絡管理接口上,用戶被表示為“Subscriber”對象類,具有“Line number”和“Directory number”屬性。這個例子是虛構的,但是屬性“Directory number”可以是指,例如信令中用戶線的號碼表示,而“Line number”可以是網絡單元內分機用戶線的標識符。屬性“Line number”用對象標識符{1,2,3}來注冊,而屬性“Directory number”用標識符{1,2,4}來注冊。在ASN.1中屬性表示如下Line number∷=INTERGER;Directory number∷=GraphicString;利用ASN.1翻譯器,屬性的ASN.1表示可以被翻譯成C語言中的數據類型表示typedef long Line number;typedef char*Directory number;假定網絡管理工作站(圖1中WS參考標記)想要找出與網絡單元相連,并且其電話號碼以數字4或5開始的用戶。網絡管理工作站向網絡單元發送下面的CMIP操作m-Get,它包括第一目標群(S)和FILTER條件,即對象實例屬性的比較準則。下面利用ASN.1的符號表示法來說明,利用baseManagedObjectInstance域的值和該域的范圍值,在CMIP協議的PDU(協議數據單元)中確定S群,baseManagedObjectInstance域指出了在網絡單元的MIT中的子樹根節點。與本例無關的域已被忽略并被三個點取代。FILTER條件由filter域的值來表示。至于根節點,本例子有一個表示用戶寄存器的對象實例。為了清晰起見,本例子中用戶寄存器實例的實際名稱被標識符<Subscriber register>取代。scope域的值wholeSubtree說明群S包括了子樹的所有對象實例,即與網絡單元相連的所有用戶。至于filter域的值,有一個ASN.1表示式,如果用自然語言它可以描述為表達式“電話號碼以數字4開始或電話號碼以數字5開始”。{...
baseManagedObjectInstance<Subscriber register>
...
scope wholeSubtree,filter or{item{substrings{initialString{attributeId{124}string“4”}}}item{substrings{initialString{attributeId{124}string“5”}}}},...
}在下文中,括號內的數字表示圖5中相應的數字,它說明在網絡單元中代理程序的操作。(但是這些數字未必表示操作執行的順序)。在網絡單元中,負責執行操作的代理程序接收到了m-Get操作(1)。代理程序將m-Get操作的FILTER條件組織成樹狀的結構(2)。代理程序在網絡單元的對象實例樹(即MIT)上定界群S,群S根據m-Get操作確定(3)。圖5中群S在MIT中用虛線定界。代理程序對屬于群S的每一對象實例單獨處理(4)。通過調用上述的evaluate_filter算法實現,代理程序要確定一個特定的對象實例是否屬于最終對象實例群(5)。根據FILTER條件中的屬性標識符{124},evaluate_filter檢索對應于屬性“Directory number”的本地區域的語義樹(6)。在這個示范性的例子中,語義樹中的標記意味著標識符為{124}的屬性將被認為是ASN.1類型的GraphicString,而本地區域的數據類型是C語言的“char*”,即圖形串指針。包含在語義樹中的信息控制compare_filter以上述方式去比較包含在FILTER條件中的比較值和該對象實例的“Directorynumber”屬性。接下來,代理程序向網絡管理工作站返回電話號碼為“56789”和“442224”的用戶作為m-Get操作的結果(7)。這些用戶構成了最終目標實例群。在圖5的MIT中,箭頭指向所討論的用戶。
正如上面所提到的那樣,基于語義樹的使用并用于比較屬性值的這種比較方法是通用的。通用性這里意味著這種方法與屬性的ASN.1表示無關。除了上面所述的優點之外,該方法的通用性能夠大大地節省網絡單元軟件開發的費用,這是因為ASN.1表示的修改或新ASN.1表示的實現都不需要額外的軟件開發。由于上述的原因,可以更徹底地測試這種方法的實現,這將會提高比較結果的可靠性和整個網絡單元的可靠性。
對本領域的技術人員而言,很顯然本發明的不同實施例并不限于上面的例子,這些實施例可能會在所附的權利要求書的范圍內變化。
權利要求
1.一種為實施于通信網網絡單元(NE)的操作選擇目標群的方法,這種方法包括步驟—從網絡管理單元獲取關于操作和第一目標群(S)的信息,第一目標群(S)表示為包含在網絡單元存儲器中的一組對象實例,以及對象實例屬性的比較準則,該準則包含有參考值,—比較屬于第一目標群的對象實例的屬性值和所述參考值,以及—從第一目標群(S)中選出那些屬性值滿足所收到的比較準則的對象實例作為最終目標群,其特征在于—對象實例的屬性通過下述方式進行比較—讀入事先存儲在網絡單元存儲器中并且與該屬性關聯的語義數據,—在網絡單元中搜索該對象實例的關聯屬性值,—利用讀取的語義數據比較屬性值和接收到的參考值。
2.根據權利要求1中所述的方法,其特征在于,語義數據以樹狀分層結構存儲在網絡單元的存儲器中。
3.根據權利要求2中所述的方法,其特征在于,語義樹節點至少包括(a)對象實例屬性的標識符,和(b)關于在所述屬性值比較中要使用什么數據類型的信息。
全文摘要
本發明涉及一種為實施于通信網網絡單元(NE)的操作選擇目標群的方法。這種方法包括以下步驟:(a)從網絡管理單元接收關于操作和第一目標群(S)的信息,第一目標群(S)表示為包含在網絡單元存儲器中的一群對象實例,以及對象實例屬性的比較準則,該準則包含有參考值,(b)比較屬于第一目標群的對象實例的屬性值和所述參考值,(c)從第一目標群(S)中選出屬性滿足所接收的比較準則的那些對象實例作為最終目標群。為了實現通用的方法,單個對象實例間的屬性比較由下列步驟完成:(i)讀入事先存儲在網絡單元存儲器中并且與該屬性關聯的語義數據,(ii)在網絡單元中搜索該對象實例的關聯屬性值,以及(iii)利用讀取的語義數據比較屬性值和接收到的參考值。
文檔編號H04Q3/00GK1171873SQ95197181
公開日1998年1月28日 申請日期1995年12月29日 優先權日1994年12月30日
發明者奧里·芬尼 申請人:諾基亞電信公司