專利名稱:一種信令展示方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信令跟蹤領(lǐng)域,特別是指一種信令展示方法及系統(tǒng)。
背景技術(shù):
當前,信令跟蹤系統(tǒng)在通信系統(tǒng)中逐漸得到普遍應用,信令跟蹤運用在包括短信、 彩信等多種業(yè)務中,它能夠?qū)I(yè)務流程間交互的信令進行跟蹤顯示,并提供相應的解釋和 分析,方便開發(fā)人員觀察信令內(nèi)容和交互流程,定位業(yè)務出現(xiàn)的問題,例如信令的缺失和信 令內(nèi)容的異常。信令跟蹤系統(tǒng)總體上可分為信令跟蹤前臺和信令跟蹤后臺兩個部分。信令 跟蹤前臺通常運行在業(yè)務處理機上,負責向信令跟蹤后臺發(fā)送業(yè)務處理中的信令,信令跟 蹤后臺運行在跟蹤客戶端上,例如個人計算機,負責建立和取消跟蹤任務,顯示信令內(nèi)容, 所述業(yè)務處理機根據(jù)業(yè)務的不同而不同,包括短信業(yè)務處理機、彩信業(yè)務處理機等。現(xiàn)在的信令跟蹤工具一般是將信令逐條顯示,并以文本的方式將信令的關(guān)鍵信息 顯示出來,所述關(guān)鍵信息為信令的結(jié)構(gòu)字段的值,所述結(jié)構(gòu)字段是信令的特征字段,例如參 數(shù)項等。這種方法的缺點顯而易見,首先,這種方法的可擴展性不強,不同的信令,其信令結(jié) 構(gòu)也不同,所述信令結(jié)構(gòu)為包含不同結(jié)構(gòu)字段的信令,這樣,信令結(jié)構(gòu)不同,其包含的結(jié)構(gòu) 字段自然也不同,針對不同的信令結(jié)構(gòu)需要區(qū)別處理,如果某種業(yè)務的信令結(jié)構(gòu)成百上千, 這種方法處理起來無疑代碼量巨大,維護工作復雜;其次,文本方式顯示信令關(guān)鍵信息不能 很好地體現(xiàn)信令結(jié)構(gòu)中根節(jié)點和葉子節(jié)點、母結(jié)構(gòu)與其各個子結(jié)構(gòu)之間的關(guān)系,不能表示 出各關(guān)鍵信息在結(jié)構(gòu)中的相對位置,進而表達出信令的結(jié)構(gòu);再次,這種方法是讀取承載信 令的碼流,通過關(guān)鍵信息在碼流中的不同字段,獲得關(guān)鍵信息的,如果碼流異常,將無法定 位并獲取關(guān)鍵信息。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種信令展示方法及系統(tǒng),清楚顯示信令 中的結(jié)構(gòu)關(guān)系,有利于問題定位。為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的本發(fā)明提供了一種信令展示方法,該方法包括轉(zhuǎn)換模塊將C語言表示的信令結(jié)構(gòu)轉(zhuǎn)換為java語言表示的結(jié)構(gòu)類,信令跟蹤后臺 配置結(jié)構(gòu)類與鍵值的對應關(guān)系,將結(jié)構(gòu)類與鍵值對象化,成為類對象,確定接收的信令中的 鍵值與類對象匹配,根據(jù)類對象將接收的信令展示為樹結(jié)構(gòu)。上述方案中,所述信令跟蹤后臺配置結(jié)構(gòu)類與鍵值的對應關(guān)系包括信令跟蹤后 臺根據(jù)結(jié)構(gòu)規(guī)則,配置結(jié)構(gòu)類名稱與鍵值的對應關(guān)系,保存在特定文件中。上述方案中,所述將結(jié)構(gòu)類與鍵值對象化,成為類對象包括創(chuàng)建與特定文件匹配 的類,創(chuàng)建所述類的類對象,將鍵值添加到類對象中,根據(jù)結(jié)構(gòu)類中的結(jié)構(gòu)構(gòu)造方法創(chuàng)建結(jié) 構(gòu)類的結(jié)構(gòu)對象,將結(jié)構(gòu)對象添加到類對象中,保存類對象。上述方案中,所述確定接收的信令中的鍵值與類對象匹配包括接收信令,所述信令中包含根據(jù)結(jié)構(gòu)規(guī)則添加的鍵值,讀取信令中的鍵值,根據(jù)鍵值查詢類對象,確定類對象 中的鍵值與所讀取的信令中的鍵值相符,則鍵值與類對象匹配。上述方案中,所述根據(jù)類對象將接收的信令展示為樹結(jié)構(gòu)包括讀取類對象中的 結(jié)構(gòu)對象,調(diào)用結(jié)構(gòu)對象中的樹結(jié)構(gòu)展示方法,將信令展示為樹結(jié)構(gòu),同時調(diào)用結(jié)構(gòu)對象中 的結(jié)構(gòu)字段賦值方法,將信令中結(jié)構(gòu)字段對應的內(nèi)容添加到樹結(jié)構(gòu)的相應結(jié)構(gòu)字段中。本發(fā)明還提供了一種信令展示系統(tǒng),該系統(tǒng)包括轉(zhuǎn)換模塊、信令跟蹤前臺、信令 足艮S宗M ;轉(zhuǎn)換模塊,用于將C語言表示的信令結(jié)構(gòu)轉(zhuǎn)換為java語言表示的結(jié)構(gòu)類;信令跟蹤前臺,用于接收信令跟蹤后臺的跟蹤條件,根據(jù)跟蹤條件將包含鍵值的 信令發(fā)送給信令跟蹤后臺;信令跟蹤后臺,用于配置結(jié)構(gòu)類與鍵值的對應關(guān)系,將結(jié)構(gòu)類與鍵值對象化,成為 類對象;向信令跟蹤前臺發(fā)送跟蹤條件,確定所接收的信令中的鍵值與類對象匹配,根據(jù)類 對象將所接收的信令展示為樹結(jié)構(gòu)。上述方案中,所述信令跟蹤后臺具體用于,根據(jù)結(jié)構(gòu)規(guī)則,配置結(jié)構(gòu)類名稱與鍵值 的對應關(guān)系,保存在特定文件中。上述方案中,所述信令跟蹤后臺具體用于,創(chuàng)建與特定文件匹配的類,創(chuàng)建所述類 的類對象,將鍵值添加到類對象中,根據(jù)結(jié)構(gòu)類中的結(jié)構(gòu)構(gòu)造方法創(chuàng)建結(jié)構(gòu)類的結(jié)構(gòu)對象, 將結(jié)構(gòu)對象添加到類對象中并保存。上述方案中,所述信令跟蹤后臺,具體用于讀取所接收的信令中的鍵值,根據(jù)鍵值 查詢類對象,確定類對象中的鍵值與所讀取的信令中的鍵值相符,則鍵值與類對象匹配。上述方案中,所述信令跟蹤后臺,具體用于讀取類對象中的結(jié)構(gòu)對象,調(diào)用結(jié)構(gòu)對 象中的樹結(jié)構(gòu)展示方法,將接收的信令展示為樹結(jié)構(gòu),同時調(diào)用結(jié)構(gòu)對象中的結(jié)構(gòu)字段賦 值方法,將信令中結(jié)構(gòu)字段的內(nèi)容添加到樹結(jié)構(gòu)的相應結(jié)構(gòu)字段中。本發(fā)明所述的信令展示方法及系統(tǒng),根據(jù)信令結(jié)構(gòu),通過樹結(jié)構(gòu)的方式展示信令, 更加清楚的顯示信令的結(jié)構(gòu)關(guān)系,有利于問題定位;進一步的,轉(zhuǎn)換為java結(jié)構(gòu)類的信令 結(jié)構(gòu),包含信令結(jié)構(gòu)的所有類型,信令跟蹤后臺接收的信令的信令結(jié)構(gòu)不同,根據(jù)樹結(jié)構(gòu)展 示方法及不同的轉(zhuǎn)換后的信令結(jié)構(gòu),將信令展示為樹結(jié)構(gòu),維護工作簡單;信令出現(xiàn)異常, 可快速準確的定位。
圖1為本發(fā)明實現(xiàn)信令展示方法流程示意圖;圖2為本發(fā)明實現(xiàn)信令展示系統(tǒng)組成示意圖。
具體實施例方式本發(fā)明的基本思想是將C語言表示的信令結(jié)構(gòu)轉(zhuǎn)換為java語言表示的結(jié)構(gòu)類, 配置結(jié)構(gòu)類與鍵值的對應關(guān)系,并將結(jié)構(gòu)類與鍵值對象化,稱之為類對象,接收信令跟蹤前 臺發(fā)送的包含鍵值的信令,確定所接收的信令中的鍵值與類對象匹配,根據(jù)類對象將信令 展示為樹結(jié)構(gòu);所述鍵值根據(jù)業(yè)務的不同而不同,可以是事件號、線程號等。
5
下面通過具體實施例與附圖來對本發(fā)明進行詳細說明,一種信令展示方法,如圖1 所示,具體步驟如下步驟101、信令跟蹤后臺配置結(jié)構(gòu)類與鍵值的對應關(guān)系,并將結(jié)構(gòu)類與鍵值對象 化,成為類對象;信令跟蹤后臺將結(jié)構(gòu)類與鍵值相關(guān)聯(lián),所述結(jié)構(gòu)類為轉(zhuǎn)換模塊將C語言表示的信 令結(jié)構(gòu)轉(zhuǎn)換為java語言表示的信令結(jié)構(gòu),稱之為結(jié)構(gòu)類,是包含結(jié)構(gòu)字段的文件,所述結(jié) 構(gòu)字段是信令的特征字段,例如參數(shù)項等。所述轉(zhuǎn)換模塊可以通過現(xiàn)有技術(shù)中的C語言轉(zhuǎn)換為java語言的轉(zhuǎn)換工具實現(xiàn), 具體轉(zhuǎn)換過程為首先根據(jù)信令結(jié)構(gòu)中不同類型的結(jié)構(gòu)字段所占用字節(jié)數(shù)確定結(jié)構(gòu)字段的
^flJJl1J, C i吾^“中的 char> signed char java i吾^“中的 byte, C i吾^“中的 unsigned char、short> signed short 對應 java i吾 llf 中白勺 short, C i吾言中白勺 unsigned short> int> signed int> long 對應 java i吾言中白勺 int, C i吾言中白勺 unsigned int> unsigned long對應java語言中的long,轉(zhuǎn)換規(guī)則確定以后,就可以實現(xiàn)轉(zhuǎn)換,下面以信令結(jié)構(gòu) InterCommSendXMLReq_T為例介紹轉(zhuǎn)換過程。以下為C語言描述的該信令結(jié)構(gòu),typedef struct{unsigned short all_len ;unsigned char tag—did ;DialogueIDd_id ;unsigned char i_id ;unsigned chartag—lid ;unsigned charl_id ;OperCodeopercode ;unsigned charl_component ;CParametersi_para ;}InterCommSendXMLReq_T ;其中 DialogueID、OperCode、CParameters 為父結(jié)構(gòu) InterCommSendXMLReq 的子結(jié) 構(gòu),根據(jù)轉(zhuǎn)換規(guī)則,可得出該信令結(jié)構(gòu)對應的java語言標識的信令結(jié)構(gòu),如下所示,public int all_len ;public short tag_did ;public DialogueID d_id ;public short i_id ;public short tag_lid ;public short l_id ;public OperCode opercode ;public short l_component ;public CParameters i_para ;C語言表示的信令結(jié)構(gòu)為預置在轉(zhuǎn)換模塊中的包含了所有結(jié)構(gòu)類型的多種信令結(jié) 構(gòu);本發(fā)明中所述的信令跟蹤后臺用java語言編寫,只能識別java語言,而信令結(jié)構(gòu)為C
6語言,則需要將C語言表示的信令結(jié)構(gòu)轉(zhuǎn)換為java語言表示的結(jié)構(gòu)類,所述結(jié)構(gòu)類的名稱 可根據(jù)需要自行命名,同時,在轉(zhuǎn)換后的結(jié)構(gòu)類中預置結(jié)構(gòu)構(gòu)造方法、結(jié)構(gòu)字段賦值方法及 樹結(jié)構(gòu)展示方法,所述結(jié)構(gòu)構(gòu)造方法指結(jié)構(gòu)構(gòu)造方法的程序代碼,是java中常用的構(gòu)造方 法,用于將結(jié)構(gòu)類創(chuàng)建為結(jié)構(gòu)對象,所述結(jié)構(gòu)字段賦值方法指結(jié)構(gòu)字段賦值方法的程序代 碼,用于將結(jié)構(gòu)字段對應的內(nèi)容賦值給相應的結(jié)構(gòu)字段,所述樹結(jié)構(gòu)展示方法指樹結(jié)構(gòu)展 示方法的程序代碼,用于將信令展示為樹結(jié)構(gòu)。轉(zhuǎn)換模塊與信令跟蹤后臺的關(guān)系是轉(zhuǎn)換模塊負責結(jié)構(gòu)轉(zhuǎn)換,轉(zhuǎn)換得到的結(jié)構(gòu)類 添加到信令跟蹤后臺的java工程中,編譯后生成可運行的信令跟蹤后臺。所述將結(jié)構(gòu)類與鍵值相關(guān)聯(lián)包括信令跟蹤后臺根據(jù)結(jié)構(gòu)規(guī)則將結(jié)構(gòu)類名稱與相 應的鍵值相關(guān)聯(lián),并將結(jié)構(gòu)類與鍵值的對應關(guān)系保存在特定文件中,所述特定文件為java 可以解析的文件,例如可擴展標記語言Uml)文件,包含了一組一組的信令結(jié)構(gòu)、即結(jié)構(gòu)類 與鍵值的對應關(guān)系;所述結(jié)構(gòu)類名稱可以與一個或多個鍵值相關(guān)聯(lián),所述結(jié)構(gòu)規(guī)則包括具 體的信令結(jié)構(gòu)的種類及應關(guān)聯(lián)的鍵值的類別與個數(shù)。以下列程序為例< ? xml version = “ 1.0〃 encoding = “ gb2312〃 ? ><trace><general><struct_count>2</struct_count></general><struct><structevent = " 9212 " opecode =" 3 " structname =〃 InterCommSendXMLReq_T" /><struct2 event = " 9213 " opecode = 〃 4 〃 structname =〃 InterCommSendXMLRsp_T" /></struct></trace>結(jié)構(gòu)類名稱為InterCommSendXMLReq_T的信令結(jié)構(gòu)與鍵值為event = " 9212〃及 opecode = “ 3〃關(guān)聯(lián),結(jié)構(gòu)類名稱為In terCommSendXMLRsp_T的信令結(jié)構(gòu)與鍵值為event ="9213〃及opecode =〃 4〃關(guān)聯(lián),并保存在xml文件中。所述將信令結(jié)構(gòu)與鍵值對象化包括java語言是面向?qū)ο蟮木幊?,只能直接調(diào)用 對象,因此,需要先創(chuàng)建與特定文件匹配的類,以下列程序為例class Item{protected String event ;protected String opecode ;protected String structname ;protected String struct ;public Item(String event, String opecode, String structname, object struct){
7
this, event = event ;this, opecode = opecode ;this, structname = structname ;this, struct = struct ;}}上述類文件定義了四個變量,event對應鍵值event,例如event =〃 9212", opecode對應鍵值opecode,例如opecode = 〃 3 〃 ,structname對應結(jié)構(gòu)類名禾爾,例如 InterCommSendXMLReq_T, struct用于保存結(jié)構(gòu)對象,所述類與結(jié)構(gòu)類名稱、如structname 一一對應,也就是說一組結(jié)構(gòu)類與鍵值的對應關(guān)系對應一個類。然后將類創(chuàng)建為類對象,定義一個一維數(shù)組,用于保存類對象,所述一維數(shù)組的長 度、即一維數(shù)組中元素的個數(shù)與類的個數(shù)對應,也就是說一組結(jié)構(gòu)類與鍵值的對應關(guān)系對 應一個一維數(shù)組元素,一個一維數(shù)組元素保存一個類對象,例如,假設xml文件有兩組結(jié)構(gòu) 類與鍵值的對應關(guān)系,則一維數(shù)組的長度為2,其中的第一組結(jié)構(gòu)類與鍵值的對應關(guān)系中的 結(jié)構(gòu)類及鍵值,所對應的類對象的一維數(shù)組元素假設為AW],第二組結(jié)構(gòu)類與鍵值的對應 關(guān)系中的結(jié)構(gòu)類及鍵值,所對應的類對象的一維數(shù)組元素假設為A[l]。信令跟蹤后臺將鍵 值添加到所對應的類對象中,同時根據(jù)特定文件中結(jié)構(gòu)類包含的結(jié)構(gòu)構(gòu)造方法,創(chuàng)建結(jié)構(gòu) 類的對象,即結(jié)構(gòu)對象,將結(jié)構(gòu)對象添加到所匹配的類所對應的類對象中,例如,將xml文 件中,第一組結(jié)構(gòu)類與鍵值的對應關(guān)系中的鍵值添加到AW],將第一組結(jié)構(gòu)類與鍵值的對 應關(guān)系中的結(jié)構(gòu)類根據(jù)結(jié)構(gòu)構(gòu)造方法創(chuàng)建為結(jié)構(gòu)對象,添加到A
中,將第二組結(jié)構(gòu)類與 鍵值的對應關(guān)系中的鍵值添加到A[l],將第二組結(jié)構(gòu)類與鍵值的對應關(guān)系中的結(jié)構(gòu)類根據(jù) 結(jié)構(gòu)構(gòu)造方法創(chuàng)建為結(jié)構(gòu)對象,添加到A[l]中。信令跟蹤后臺保存類對象,所述的類、類對 象是指不同的結(jié)構(gòu)形式。步驟102、信令跟蹤前臺接收信令跟蹤后臺發(fā)送的跟蹤條件,將信令發(fā)送給信令跟 S示后臺ο信令跟蹤后臺向信令跟蹤前臺發(fā)送跟蹤條件,所述跟蹤條件包括所要跟蹤的終端 號碼、信令的業(yè)務類型等等,信令跟蹤前臺接收跟蹤條件,讀取業(yè)務處理機中符合跟蹤條件 的信令,根據(jù)結(jié)構(gòu)規(guī)則,在信令中添加鍵值,并發(fā)送給信令跟蹤后臺。同樣的,信令跟蹤后臺 可向信令跟蹤前臺發(fā)送取消跟蹤信息,則信令跟蹤前臺停止跟蹤,停止向信令跟蹤后臺發(fā) 送{曰令。步驟103、信令跟蹤后臺根據(jù)信令中的鍵值確定匹配的類對象,根據(jù)類對象將信令 展示為樹結(jié)構(gòu)。信令跟蹤后臺接收信令,讀取信令中的鍵值,根據(jù)鍵值查詢保存的類對象,若類對 象中的鍵值與所讀取的信令中的鍵值不相符,則流程結(jié)束;若類對象中的鍵值與所讀取的信令中的鍵值相符,讀取所述類對象的結(jié)構(gòu)對 象,在用戶選擇查看此信令的結(jié)構(gòu)時,調(diào)用結(jié)構(gòu)對象中的結(jié)構(gòu)字段賦值方法,將所述信令 中結(jié)構(gòu)字段對應的內(nèi)容,例如數(shù)值,添加到結(jié)構(gòu)對象對應的結(jié)構(gòu)字段中,以信令結(jié)構(gòu)為 InterCommSendXMLReq_T為例,所述結(jié)構(gòu)字段賦值過程如下public void parse(byte input[], int start)
8
TLangAdaptor adaptor = new TLangAdaptor(platform, bitorder);
all_len = adaptor, getint(input, " unsigned short" , start);
start = start+2 ;
tag_did = adaptor, getshort(input, " unsigned char" , start);
start = start+1 ;
d_id. parse (input, start);
start = start+d_id. length ;
i_id = adaptor, getshort(input, " unsigned char" , start);
start = start+1 ;
tag_lid = adaptor, getshort (input, " unsigned char" , start);
start = start+1 ;
l_id = adaptor, getshort (input, " unsigned char" , start);
start = start+1 ;
opercode. parse(input, start);
start = start+opercode. length ;
l_component = adaptor, getshort(input, " unsigned char" , start);
start = start+1 ;
i_para. parse(input, start);
start = start+i_para. length ;
};
根據(jù)平臺類型platform、字節(jié)序bitorder解析信令內(nèi)容,所述平臺類型及字節(jié)序
為預先定義的參數(shù),假設platform為true時為intel平臺,bitorder為true時是從高位 到低位開始解析,根據(jù)葉子節(jié)點類型的字節(jié)長度,以alljen為例,all_len類型為int,字 節(jié)長度為2,則allien對應的內(nèi)容為從高位到低位選取信令中與結(jié)構(gòu)對象對應位置的2個 字節(jié)長度的內(nèi)容。然后根據(jù)結(jié)構(gòu)對象中的樹結(jié)構(gòu)展示方法,將所述信令展示為樹結(jié)構(gòu)。具體內(nèi) 容包括首先創(chuàng)建一個樹結(jié)構(gòu)類StructTree,所述樹結(jié)構(gòu)類StructTree,包含節(jié)點名稱 structName、子樹sonTree、節(jié)點信息structlnfo、結(jié)構(gòu)起始位置startlndex及結(jié)束位置 endlndex,具體結(jié)構(gòu)如下public class StructTree{public String structName ;public Vector sonTree ;public String structlnfo ;public int startlndex, endlndex ;public StructTree(String name, String info, int start, int end){structName = name ;
90120]structlnfo = info ;
0121]sonTree = null ;
0122]startlndex = start ;
0123]endlndex = end ;
0124]}
0125]public void addTreeNode (StructTree tree)
0126]{
0127]if (sonTree == null)
0128]sonTree = new Vector ();
0129]sonTree. add (tree);
0130]}}然后將樹結(jié)構(gòu)類StructTree創(chuàng)建為對象,即為樹結(jié)構(gòu)類對象,將結(jié)構(gòu)對象中的結(jié) 構(gòu)字段作為節(jié)點,所述節(jié)點包括根節(jié)點、葉子節(jié)點等,其在樹結(jié)構(gòu)類對象中的起始及結(jié)束位 置可根據(jù)節(jié)點的類型的字節(jié)長度獲取,然后結(jié)合節(jié)點信息將樹節(jié)點創(chuàng)建節(jié)點對象,將創(chuàng)建 的節(jié)點對象添加進樹結(jié)構(gòu)類對象,所述節(jié)點信息包括節(jié)點名稱、節(jié)點對應的內(nèi)容、節(jié)點起始 位置、節(jié)點結(jié)束位置。下面以信令結(jié)構(gòu)為InterCommSendXMLReqJ的信令展示為樹結(jié)構(gòu)為 例進行說明public StructTree getStructTree(int startindex){int start = startindex, end = startindex ;StructTree tree = new StructTree ();start = end ;end+ = 2 ;tree. addTreeNode (newStructTree {“ all_len",Integer. toString(all_en), start,end));start = end ; end+ = 1 ;tree. addTreeNode (newStructTree (" tag—did",Integer. toString (tag—did), start,end));start = end ;end+ = d—id. length ;StructTree d—idtree = d—id. getStructTree (start);d_idtree. structName = /r d一id";tree. addTreeNode (d—idtree);start = end ;end+ = 1 ;tree. addTreeNode (new StructTree {“ i—id",Integer. toString(i—id), start,end));start = end ;end+ = 1 ;tree. addTreeNode (new
10
StructTree(“ tag_lid〃 , Integer. toString(tag_lid),start,end))
start = end ;end+ = 1 ;
tree. addTreeNode (new StructTree {“ l_id",Integer. toString(l_id),start,end))
start = end ;end+ = opercode. length ;
StructTree opercodetree = opercode. getStructTree(start);
opercodetree. structName = “ opercode“;
tree. addTreeNode(opercodetree);
start = end ;end+ = 1 ;
tree. addTreeNode (new
StructTree (" l_component",Integer. toString(l_component),start,end))
start = end ;end+ = i_para. length ;
StructTreei—paratree = i_ara. getStructTree (start);
i—paratree· structName =" i—para";
tree· addTreeNode(i—paratree);
tree. structName =" InterCommSendXMLReq—T";
return tree ;
}
將StructTree創(chuàng)建為樹結(jié)構(gòu)類對象,以InterCommSendXMLReq_T中的葉子節(jié)點
all_len為例,all_len在樹結(jié)構(gòu)類對象中的起始及結(jié)束位置,根據(jù)all_len類型,即int 的字節(jié)長度獲取,int的字節(jié)長度為2,則allien的起始位置為0,結(jié)束位置為2,然后結(jié) 合 all_len 信息將 all_len 創(chuàng)建為節(jié)點對象,即 newStructTree(〃 all_len〃,Integer. toString(all_len),start, end),將創(chuàng)建的all_len的對象添加到樹結(jié)構(gòu)類對象中?;谏鲜龇椒?,本發(fā)明還提供了一種信令展示系統(tǒng),如圖2所示,該系統(tǒng)包括轉(zhuǎn) 換模塊201、信令跟蹤后臺202、信令跟蹤前臺203 ;轉(zhuǎn)換模塊201,用于將C語言表示的信令結(jié)構(gòu)轉(zhuǎn)換為java語言表示的信令結(jié)構(gòu), 稱之為結(jié)構(gòu)類,同時在結(jié)構(gòu)類中預置結(jié)構(gòu)構(gòu)造方法、結(jié)構(gòu)字段賦值方法及樹結(jié)構(gòu)展示方法; 所述結(jié)構(gòu)類名稱可根據(jù)需要自行命名;所述結(jié)構(gòu)構(gòu)造方法指結(jié)構(gòu)構(gòu)造方法的程序代碼,是 java中常用的構(gòu)造方法,用于將結(jié)構(gòu)類創(chuàng)建為結(jié)構(gòu)對象,所述結(jié)構(gòu)字段賦值方法指結(jié)構(gòu)字 段賦值方法的程序代碼,用于將結(jié)構(gòu)字段對應的內(nèi)容賦值給相應的結(jié)構(gòu)字段,所述樹結(jié)構(gòu) 展示方法指樹結(jié)構(gòu)展示方法的程序代碼,用于將信令展示為樹結(jié)構(gòu);信令跟蹤后臺202,用于根據(jù)結(jié)構(gòu)規(guī)則配置結(jié)構(gòu)類與鍵值的對應關(guān)系并保存在特 定文件中,所述特定文件為信令跟蹤后臺可解析的文件,例如xml文件,將結(jié)構(gòu)類與鍵值對 象化,形成類對象;向信令跟蹤前臺203發(fā)送跟蹤條件,接收信令跟蹤前臺203發(fā)送的信令, 確定所接收的信令的鍵值與類對象匹配,根據(jù)類對象將信令展示為樹結(jié)構(gòu),所述結(jié)構(gòu)類與 鍵值的對應關(guān)系,即為結(jié)構(gòu)類名稱與鍵值的對應關(guān)系;信令跟蹤前臺203,用于接收信令跟蹤后臺202發(fā)送的跟蹤條件,確定與跟蹤條件相符的信令,根據(jù)結(jié)構(gòu)規(guī)則在信令中添加鍵值,將包含鍵值的信令發(fā)送給信令跟蹤后臺 202;所述結(jié)構(gòu)規(guī)則包括具體的信令結(jié)構(gòu)的種類及應關(guān)聯(lián)的鍵值的類別與個數(shù)。信令跟蹤后臺202,具體用于創(chuàng)建與特定文件匹配的類,所述類與特定文件中的結(jié) 構(gòu)類與鍵值的對應關(guān)系一一對應,進一步創(chuàng)建類對象,所述類對象與類一一對應,也就是說 特定文件中的一組結(jié)構(gòu)類與鍵值的對應關(guān)系對應一個類對象,定義一維數(shù)組,所述一維數(shù) 組中的元素與所述類對象對應,用于保存類對象,將特定文件中的鍵值添加到所對應的類 對象中,讀取特定文件中的結(jié)構(gòu)類名稱對應的結(jié)構(gòu)類,根據(jù)結(jié)構(gòu)類中的結(jié)構(gòu)構(gòu)造方法創(chuàng)建 結(jié)構(gòu)類對象,即為結(jié)構(gòu)對象,并添加到所對應的類對象中。信令跟蹤后臺202,具體用于讀取所接收的信令中的鍵值,根據(jù)鍵值查詢所保存的 類對象,確定有類對象中的鍵值與所接收的信令中的鍵值相符,則所接收信令的鍵值與類 對象匹配。信令跟蹤后臺202,具體用于讀取類對象中的結(jié)構(gòu)對象,調(diào)用結(jié)構(gòu)對象中的結(jié)構(gòu)字 段賦值方法,將信令中結(jié)構(gòu)字段的內(nèi)容添加到結(jié)構(gòu)對象中相應的結(jié)構(gòu)字段中,調(diào)用結(jié)構(gòu)對 象中的樹結(jié)構(gòu)展示方法,將信令展示為樹結(jié)構(gòu)。信令跟蹤后臺202進一步用于,向信令跟蹤前臺203發(fā)送取消跟蹤信息;信令跟蹤前臺203,用于接收取消跟蹤信息,停止信令跟蹤,停止向信令跟蹤后臺 202發(fā)送信令。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍,凡在 本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護 范圍之內(nèi)。
權(quán)利要求
一種信令展示方法,其特征在于,該方法包括轉(zhuǎn)換模塊將C語言表示的信令結(jié)構(gòu)轉(zhuǎn)換為java語言表示的結(jié)構(gòu)類,信令跟蹤后臺配置結(jié)構(gòu)類與鍵值的對應關(guān)系,將結(jié)構(gòu)類與鍵值對象化,成為類對象,確定接收的信令中的鍵值與類對象匹配,根據(jù)類對象將接收的信令展示為樹結(jié)構(gòu)。
2.根據(jù)權(quán)利要求1所述的信令展示方法,其特征在于,所述信令跟蹤后臺配置結(jié)構(gòu)類 與鍵值的對應關(guān)系包括信令跟蹤后臺根據(jù)結(jié)構(gòu)規(guī)則,配置結(jié)構(gòu)類名稱與鍵值的對應關(guān)系,保存在特定文件中。
3.根據(jù)權(quán)利要求2所述的信令展示方法,所述將結(jié)構(gòu)類與鍵值對象化,成為類對象包括創(chuàng)建與特定文件匹配的類,創(chuàng)建所述類的類對象,將鍵值添加到類對象中,根據(jù)結(jié)構(gòu)類 中的結(jié)構(gòu)構(gòu)造方法創(chuàng)建結(jié)構(gòu)類的結(jié)構(gòu)對象,將結(jié)構(gòu)對象添加到類對象中,保存類對象。
4.根據(jù)權(quán)利要求1至3任一項所述的信令展示方法,其特征在于,所述確定接收的信令 中的鍵值與類對象匹配包括接收信令,所述信令中包含根據(jù)結(jié)構(gòu)規(guī)則添加的鍵值,讀取信令中的鍵值,根據(jù)鍵值查 詢類對象,確定類對象中的鍵值與所讀取的信令中的鍵值相符,則鍵值與類對象匹配。
5.根據(jù)權(quán)利要求3所述的信令展示方法,其特征在于,所述根據(jù)類對象將接收的信令 展示為樹結(jié)構(gòu)包括讀取類對象中的結(jié)構(gòu)對象,調(diào)用結(jié)構(gòu)對象中的樹結(jié)構(gòu)展示方法,將信令展示為樹結(jié)構(gòu), 同時調(diào)用結(jié)構(gòu)對象中的結(jié)構(gòu)字段賦值方法,將信令中結(jié)構(gòu)字段對應的內(nèi)容添加到樹結(jié)構(gòu)的 相應結(jié)構(gòu)字段中。
6. 一種信令展示系統(tǒng),其特征在于,該系統(tǒng)包括轉(zhuǎn)換模塊、信令跟蹤前臺、信令跟蹤 后臺;轉(zhuǎn)換模塊,用于將C語言表示的信令結(jié)構(gòu)轉(zhuǎn)換為java語言表示的結(jié)構(gòu)類;信令跟蹤前臺,用于接收信令跟蹤后臺的跟蹤條件,根據(jù)跟蹤條件將包含鍵值的信令 發(fā)送給信令跟蹤后臺;信令跟蹤后臺,用于配置結(jié)構(gòu)類與鍵值的對應關(guān)系,將結(jié)構(gòu)類與鍵值對象化,成為類對 象;向信令跟蹤前臺發(fā)送跟蹤條件,確定所接收的信令中的鍵值與類對象匹配,根據(jù)類對象 將所接收的信令展示為樹結(jié)構(gòu)。
7.根據(jù)權(quán)利要求6所述的信令展示系統(tǒng),其特征在于,所述信令跟蹤后臺具體用于,根據(jù)結(jié)構(gòu)規(guī)則,配置結(jié)構(gòu)類名稱與鍵值的對應關(guān)系,保存 在特定文件中。
8.根據(jù)權(quán)利要求7所述的信令展示系統(tǒng),其特征在于,所述信令跟蹤后臺具體用于,創(chuàng)建與特定文件匹配的類,創(chuàng)建所述類的類對象,將鍵值 添加到類對象中,根據(jù)結(jié)構(gòu)類中的結(jié)構(gòu)構(gòu)造方法創(chuàng)建結(jié)構(gòu)類的結(jié)構(gòu)對象,將結(jié)構(gòu)對象添加 到類對象中并保存。
9.根據(jù)權(quán)利要求6至8任一項所述的信令展示系統(tǒng),其特征在于,所述信令跟蹤后臺,具體用于讀取所接收的信令中的鍵值,根據(jù)鍵值查詢類對象,確定 類對象中的鍵值與所讀取的信令中的鍵值相符,則鍵值與類對象匹配。
10.根據(jù)權(quán)利要求8所述的信令展示系統(tǒng),其特征在于,所述信令跟蹤后臺,具體用于讀取類對象中的結(jié)構(gòu)對象,調(diào)用結(jié)構(gòu)對象中的樹結(jié)構(gòu)展 示方法,將接收的信令展示為樹結(jié)構(gòu),同時調(diào)用結(jié)構(gòu)對象中的結(jié)構(gòu)字段賦值方法,將信令中 結(jié)構(gòu)字段的內(nèi)容添加到樹結(jié)構(gòu)的相應結(jié)構(gòu)字段中。
全文摘要
本發(fā)明公開了一種信令展示方法,包括轉(zhuǎn)換模塊將信令結(jié)構(gòu)轉(zhuǎn)換為java語言表示的結(jié)構(gòu)類,信令跟蹤后臺配置結(jié)構(gòu)類與鍵值的對應關(guān)系,將結(jié)構(gòu)類與鍵值對象化,成為類對象,確定接收的信令中的鍵值與類對象匹配,根據(jù)類對象將接收的信令展示為樹結(jié)構(gòu),所述結(jié)構(gòu)類還預置了結(jié)構(gòu)構(gòu)造方法、結(jié)構(gòu)字段賦值方法、樹結(jié)構(gòu)展示方法。本發(fā)明還公開了一種信令展示系統(tǒng),采用本發(fā)明所述的方法及系統(tǒng),清楚顯示信令中的結(jié)構(gòu)關(guān)系,有利于問題定位。
文檔編號G06F9/45GK101916202SQ201010251389
公開日2010年12月15日 申請日期2010年8月9日 優(yōu)先權(quán)日2010年8月9日
發(fā)明者孟凡波 申請人:中興通訊股份有限公司