專利名稱::用于反應(yīng)式系統(tǒng)測(cè)試的編解碼系統(tǒng)及其編解碼器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及編解碼技術(shù),尤其涉及一種用于反應(yīng)式系統(tǒng)測(cè)試的編解碼器。
背景技術(shù):
:在反應(yīng)式系統(tǒng)測(cè)試中,需要將概念數(shù)據(jù)轉(zhuǎn)化成被測(cè)系統(tǒng)能識(shí)別的碼流,這就需要編解碼器。目前反應(yīng)式系統(tǒng)測(cè)試以TTCN-3(TestingandTestControlNotationversion3,測(cè)試和測(cè)試控制表示法第三版)語(yǔ)言為主導(dǎo),TTCN-3語(yǔ)言在電信等領(lǐng)域被廣泛應(yīng)用。但TTCN-3測(cè)試規(guī)范只支持TTCN-3,ASN.1等數(shù)據(jù)語(yǔ)言的直接使用,翻譯得到中間表示數(shù)據(jù)語(yǔ)言的設(shè)計(jì)也僅僅局限于這幾種語(yǔ)言的特點(diǎn),不能很好的包容新的類型語(yǔ)言,故不能方便的擴(kuò)充對(duì)新的類型語(yǔ)言的支持。另外,目前的各種編解碼庫(kù)的實(shí)現(xiàn)都與特定的TTCN-3測(cè)試平臺(tái)緊密相關(guān),它們的實(shí)現(xiàn)方法通常是調(diào)用與平臺(tái)相關(guān)的TCI接口(終端控制接口),獲取需要編解碼的類型和值信息,進(jìn)行相應(yīng)的編解碼操作。由于不同的編譯平臺(tái)對(duì)應(yīng)不同的TCI接口,所以在一種平臺(tái)上開發(fā)的編解碼方式,較難移植到另一種編譯器平臺(tái)。如果編譯器翻譯方案出現(xiàn)變化后,往往需要重新修改已經(jīng)實(shí)現(xiàn)的編解碼庫(kù)。因此,如何實(shí)現(xiàn)一個(gè)與測(cè)試平臺(tái)相對(duì)獨(dú)立的通用編解碼系統(tǒng),并具有較強(qiáng)的可擴(kuò)充能力,包括對(duì)新的類型語(yǔ)言的擴(kuò)充以及編碼方式的擴(kuò)充,以適應(yīng)對(duì)未來(lái)測(cè)試業(yè)務(wù)的需要,是一個(gè)比較迫切的問(wèn)題。
發(fā)明內(nèi)容本發(fā)明的目的旨在至少解決現(xiàn)有技術(shù)中的上述問(wèn)題之一。為此,本發(fā)明的實(shí)施例提出了一種以XML類型描述為主的其它語(yǔ)言向TTCN-3語(yǔ)言轉(zhuǎn)換器,以方便的在TTCN-3測(cè)試平臺(tái)中使用外部編解碼信息。某些特定編解碼類型的XMLSchema標(biāo)準(zhǔn)定義文檔就可以直接用在TTCN-3測(cè)試平臺(tái)中。此外,本發(fā)明的實(shí)施例還提出了一種與測(cè)試平臺(tái)相對(duì)獨(dú)立的、通用的編解碼器。根據(jù)本發(fā)明的一個(gè)方面,本發(fā)明實(shí)施例的用于反應(yīng)式系統(tǒng)測(cè)試的編解碼系統(tǒng)包括類型轉(zhuǎn)換器,所述類型轉(zhuǎn)換器用于將特定語(yǔ)言類型轉(zhuǎn)換為測(cè)試和測(cè)試控制表示法第三版TTCN-3測(cè)試平臺(tái)支持的對(duì)應(yīng)TTCN-3語(yǔ)言類型;和編解碼器,所述編解碼器用于根據(jù)轉(zhuǎn)換的對(duì)應(yīng)TTCN-3語(yǔ)言進(jìn)行屬性信息解析;以及根據(jù)TTCN-3語(yǔ)言屬性信息中的編解碼控制字所指定的編/解碼方式進(jìn)行編/解碼。根據(jù)本發(fā)明進(jìn)一步的實(shí)施例,所述編解碼器包括對(duì)外接口模塊,所述對(duì)外接口模塊執(zhí)行特定TTCN-3測(cè)試平臺(tái)的外部編解碼調(diào)用,以獲取特定TTCN-3測(cè)試平臺(tái)生成的需要編/解碼的類型和值;通用編解碼類型與值模塊,所述通用編解碼類型與值模塊將所述特定TTCN-3測(cè)試平臺(tái)生成的需要編/解碼的類型和值轉(zhuǎn)換為與該特定TTCN-3測(cè)試平臺(tái)無(wú)關(guān)的通用編/解碼的中間類型和值;以及編解碼實(shí)現(xiàn)模塊,所述編解碼實(shí)現(xiàn)模塊根據(jù)所述通用編/解碼的中間類型對(duì)應(yīng)的編解碼控制字信息選擇對(duì)應(yīng)的編解碼方式以進(jìn)行編/解碼。根據(jù)本發(fā)明再一步的實(shí)施例,所述通用編解碼類型與值模塊根據(jù)各種TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型與通用編/解碼的中間類型的映射關(guān)系表進(jìn)行轉(zhuǎn)換,其中所述通用編解碼類型與值模塊通過(guò)參考已有的數(shù)據(jù)描述語(yǔ)言,提取出一個(gè)公共的類型集,并將各種TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型映射成公共類型集的一個(gè)特定的類型,以得到所述映射關(guān)系表。其中,當(dāng)該特定TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型在所述映射關(guān)系表不存在對(duì)應(yīng)的映射特定類型時(shí),所述通用編解碼類型與值模塊根據(jù)該特定TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型生成的二進(jìn)制字符串作為其對(duì)應(yīng)的通用編/解碼的類型。根據(jù)本發(fā)明進(jìn)一步的實(shí)施例,所述類型轉(zhuǎn)換器包括第一轉(zhuǎn)換模塊,用以轉(zhuǎn)換XML文檔邏輯結(jié)構(gòu)語(yǔ)言XMLSchema類型為TTCN-3語(yǔ)言類型,所述第一轉(zhuǎn)換模塊從Schema文檔解析生成的XMLSchema定義的類型信息集中獲取Schema文檔含有的所有組件;調(diào)用相應(yīng)組件的信息獲取類從XMLSchema定義的類型信息集中獲得各自需要的組件信息;以及調(diào)用相應(yīng)信息獲取類對(duì)應(yīng)的翻譯類根據(jù)對(duì)應(yīng)的組件信息進(jìn)行翻譯,以生成TTCN-3代碼。根據(jù)本發(fā)明進(jìn)一步的實(shí)施例,所述類型轉(zhuǎn)換器包括第二轉(zhuǎn)換模塊,用以轉(zhuǎn)換XML文檔類型定義XMLDTD類型為TTCN-3語(yǔ)言類型,所述第二轉(zhuǎn)換模塊從DTD文檔解析生成的DTD定義的類型信息集中獲取DTD文檔含有的所有組件;調(diào)用相應(yīng)組件的信息獲取類從DTD定義的類型信息集中獲得各自需要的組件信息;以及調(diào)用相應(yīng)信息獲取類對(duì)應(yīng)的翻譯類根據(jù)對(duì)應(yīng)的組件信息進(jìn)行翻譯,以生成TTCN-3代碼。根據(jù)本發(fā)明的另一方面,本發(fā)明的實(shí)施例提出一種用于反應(yīng)式系統(tǒng)測(cè)試的編解碼器,所述編解碼器包括對(duì)外接口模塊,所述對(duì)外接口模塊執(zhí)行特定TTCN-3測(cè)試平臺(tái)的外部編解碼調(diào)用,以獲取特定TTCN-3測(cè)試平臺(tái)生成的編/解碼的類型和值;通用編解碼類型與值模塊,所述通用編解碼類型與值模塊將所述編/解碼的類型和值轉(zhuǎn)換為與該特定TTCN-3測(cè)試平臺(tái)無(wú)關(guān)的通用編/解碼的中間類型和值;以及編解碼實(shí)現(xiàn)模塊,所述編解碼實(shí)現(xiàn)模塊根據(jù)所述通用編/解碼的中間類型對(duì)應(yīng)的編解碼控制字,選擇對(duì)應(yīng)的編解碼方式進(jìn)行編/解碼。根據(jù)本發(fā)明進(jìn)一步的實(shí)施例,所述通用編解碼類型與值模塊根據(jù)各種TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型與通用編/解碼的中間類型的映射關(guān)系表進(jìn)行轉(zhuǎn)換,其中所述通用編解碼類型與值模塊通過(guò)參考已有的數(shù)據(jù)描述語(yǔ)言,提取出一個(gè)公共的類型集,并將各種TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型映射成公共類型集的一個(gè)特定的類型,以得到所述映射關(guān)系表。另外,在非TTCN-3語(yǔ)言的測(cè)試平臺(tái)上,只要定義了該測(cè)試平臺(tái)的數(shù)據(jù)類型向通用編解碼的中間類型的轉(zhuǎn)換映射表,就仍然可以使用該通用編解碼器,實(shí)現(xiàn)獨(dú)立于測(cè)試平臺(tái)的通用特性。根據(jù)本發(fā)明再一步的實(shí)施例,當(dāng)該特定TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型在所述映射關(guān)系表不存在對(duì)應(yīng)的映射特定類型時(shí),所述通用編解碼類型與值模塊根據(jù)該特定TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型生成的二進(jìn)制字符串作為其對(duì)應(yīng)的通用編/解碼的類型。本發(fā)明的編解碼系統(tǒng)可以實(shí)現(xiàn)各種語(yǔ)言的類型定義(主要是XML類型定義)在TTCN-3測(cè)試系統(tǒng)中的直接使用,并能夠較好地支持模板賦值和匹配功能。還可以結(jié)合通用編解碼器實(shí)現(xiàn)與測(cè)試平臺(tái)相對(duì)獨(dú)立的通用,并具有較強(qiáng)的可擴(kuò)充能力,包括對(duì)新的類型語(yǔ)言的擴(kuò)充以及編碼方式的擴(kuò)充,以適應(yīng)對(duì)未來(lái)測(cè)試業(yè)務(wù)的需要。支持ASCII,BER,PER,BCD,TLV,SIP,IS08583等編解碼方式,支持?jǐn)U充新類型編解碼方式。本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中圖1為本發(fā)明實(shí)施例的用于反應(yīng)式系統(tǒng)測(cè)試的編解碼系統(tǒng)結(jié)構(gòu)示意圖;圖2(a)和圖2(b)分別為本發(fā)明實(shí)施例的類型轉(zhuǎn)換器的結(jié)構(gòu)框圖;圖3(a)和圖3(b)分別為本發(fā)明實(shí)施例的信息獲取類和翻譯類的示例圖;圖4為本發(fā)明實(shí)施例的通用編解碼器的結(jié)構(gòu)框圖;圖5為本發(fā)明實(shí)施例的通用編解碼器ASN.1數(shù)據(jù)類型到中間規(guī)范類型的映射關(guān)系示意圖;圖6和圖7分別為本發(fā)明實(shí)施例的通用編解碼器中間規(guī)范類型和中間規(guī)范值的繼承層次結(jié)構(gòu)圖;圖8為本發(fā)明實(shí)施例的通用編解碼器中以BER編碼函數(shù)為例的接口示意圖;圖9為本發(fā)明實(shí)施例的通用編解碼器的編碼接口調(diào)用示意圖;圖10為本發(fā)明實(shí)施例的通用編解碼器的編碼過(guò)程流程圖;圖11為本發(fā)明實(shí)施例的通用編解碼器的解碼過(guò)程流程圖;以及圖12為使用本發(fā)明實(shí)施例通用編解碼器的某協(xié)議測(cè)試流程。具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。參考圖1,該圖為本發(fā)明實(shí)施例的用于反應(yīng)式系統(tǒng)測(cè)試的編解碼系統(tǒng)結(jié)構(gòu)示意圖。如圖所示,本發(fā)明實(shí)施例的編解碼系統(tǒng)包括類型轉(zhuǎn)換器10和編解碼器30,其中類型轉(zhuǎn)換器10用于將特定語(yǔ)言類型,例如可擴(kuò)展標(biāo)識(shí)語(yǔ)言(XML)文檔邏輯結(jié)構(gòu)(XMLSchema)類型、XML文檔類型定義(XMLDTD)類型及/或其它類型語(yǔ)言,轉(zhuǎn)換為TTCN-3(測(cè)試和測(cè)試控制表示法第三版)測(cè)試平臺(tái)支持的對(duì)應(yīng)TTCN-3語(yǔ)言類型。編解碼器30用于根據(jù)轉(zhuǎn)換的對(duì)應(yīng)TTCN-3語(yǔ)言進(jìn)行屬性信息解析;以及根據(jù)TTCN-3語(yǔ)言屬性信息中的編解碼控制字所指定的編/解碼方式進(jìn)行編/解碼。具體來(lái)說(shuō),對(duì)于TTCN-3測(cè)試規(guī)范不支持的數(shù)據(jù)語(yǔ)言,各種語(yǔ)言如ASN.1,XML等若想在TTCN-3測(cè)試系統(tǒng)中使用,并能夠較好的支持模板賦值和匹配功能,首先由類型轉(zhuǎn)換器10將其轉(zhuǎn)換為對(duì)應(yīng)的TTCN-3語(yǔ)言類型,使用TTCN-3語(yǔ)言的這些功能。為了解決轉(zhuǎn)換過(guò)程中出現(xiàn)的信息丟失,需要將丟失的信息保存到對(duì)應(yīng)的TTCN-3類型的自定義屬性中。關(guān)于類型轉(zhuǎn)換器10的工作原理可以參考圖2(a)和圖2(b),其中圖2(a)為本發(fā)明實(shí)施例的類型轉(zhuǎn)換器將XMLSchema類型轉(zhuǎn)換為TTCN-3語(yǔ)言類型的結(jié)構(gòu)框圖;圖2(b)為本發(fā)明實(shí)施例的類型轉(zhuǎn)換器將XMLDTD類型轉(zhuǎn)換為TTCN-3語(yǔ)言類型的結(jié)構(gòu)框圖。實(shí)現(xiàn)XML的數(shù)據(jù)類型定義到TTCN-3類型定義的映射,包括XMLSchema和DTD,可以稱作為類型轉(zhuǎn)換器10的XMLtoTTCN-3模塊,簡(jiǎn)稱X2T模塊。整個(gè)轉(zhuǎn)換過(guò)程可自動(dòng)完成,通過(guò)X2T模塊,將XML的類型定義轉(zhuǎn)換為TTCN-3的類型定義,從而可以在TTCN-3測(cè)試平臺(tái)上實(shí)現(xiàn)對(duì)XML描述的消息類型進(jìn)行各種編解碼。X2T模塊包括Schema的翻譯和DTD的翻譯,Schema的翻譯由X2TSchema實(shí)現(xiàn),而DTD的翻譯則由X2TDTD實(shí)現(xiàn)。從功能上看,無(wú)論是Schema的翻譯或是DTD的翻譯,都由兩部分組成,即文檔解析器和翻譯器。本模塊的實(shí)現(xiàn)借助于開源XML解析工具Xerces-c(Xerces-c是一個(gè)開源的XML解析器,c語(yǔ)言編寫)來(lái)解析Scheme和DTD。例如,對(duì)于將XMLSchema語(yǔ)言類型轉(zhuǎn)換為TTCN-3語(yǔ)言類型,如圖2(a)所示首先將XMLSchema文檔經(jīng)過(guò)Xerces-c的解析,保存在語(yǔ)法信息池中。XSD信息集代表Schema文檔經(jīng)過(guò)Xerces-c工具解析后,保存在語(yǔ)法池(grammarpool)中的類型信息集。若解析的文檔中沒(méi)有語(yǔ)法錯(cuò)誤,則調(diào)用X2T控制器14,由控制器14控制整個(gè)翻譯流程。上述文檔解析以及控制器調(diào)用由主函數(shù)12執(zhí)行??刂破?4從類型信息集中獲取Schema文檔含有的所有組件,并調(diào)用相應(yīng)組件的信息獲取類16來(lái)獲得該組件的所有信息。例如對(duì)于XSDItem類結(jié)構(gòu)中的類,其中XSDItem類16可以是圖3(a)所示的類中的一種,這里稱作為Iteml...η。這些Item類從XSD類型信息集中獲取各自需要的組件定義的所有信息,每個(gè)類只獲取自己需要的組件信息,并將這些信息傳遞給TTCN生成器類18。TTCN生成器類18有很多,例如圖示的Iteml..η翻譯類可以是圖3(b)所示類中的一種。翻譯類18從信息獲取類16獲得組件的所有信息(參數(shù)傳遞),并完成TTCN-3代碼的生成。對(duì)于將XMLDTD類型轉(zhuǎn)換為TTCN-3語(yǔ)言類型,如圖2(b)所示,其中與圖2(a)不同的是,主函數(shù)12’對(duì)應(yīng)的XSD信息集由DTD文檔解析生成,相應(yīng)地,Χ2Τ控制器14’和信息獲取類16’、翻譯類18’對(duì)應(yīng)的組件信息和信息翻譯是在DTD文檔解析得到的對(duì)應(yīng)類型信息集的基礎(chǔ)上完成??傮w來(lái)說(shuō),XSD信息集代表Schema文檔或DTD文檔經(jīng)過(guò)Xerces-c工具解析后,保存在語(yǔ)法池中的類型信息集;XSDItem為組件信息獲取類層次;X2T控制器聯(lián)接著類型信息集和組件信息獲取類;而TTCN生成器則為組件翻譯類層次。在翻譯過(guò)程中,需要獲取翻譯中的一些重要信息,一方面可以保證翻譯過(guò)程的信息不丟失,另一方面則可將這些信息用于編解碼中,因此在翻譯中添加必要的with屬性是必須的。在本發(fā)明中主要使用with的variant屬性,且根據(jù)TTCN-3語(yǔ)言標(biāo)準(zhǔn),with屬性只能修飾type,group禾口module。With屬性設(shè)計(jì)的難點(diǎn)正是由于只能修飾type的限制,使得內(nèi)層組件的重要信息難以記錄,必須將嵌套在內(nèi)層的組件的with屬性在外層記錄。本發(fā)明中,自行設(shè)計(jì)一種with屬性的表示方式,既能符合TTCN-3標(biāo)準(zhǔn)語(yǔ)法,又能記錄翻譯過(guò)程中的信息。該設(shè)計(jì)區(qū)分對(duì)待各種組件,分為被翻譯外層組件和內(nèi)層組件,而內(nèi)層組件又分為內(nèi)層有嵌套組件和內(nèi)層無(wú)嵌套組件。現(xiàn)在返回參考圖1,對(duì)于類型轉(zhuǎn)換器10轉(zhuǎn)換的TTCN-3類型語(yǔ)言,或者TTCN-3測(cè)試平臺(tái)可以直接使用的ASN.1類型語(yǔ)言,在引入TTCN-3測(cè)試平臺(tái)20后,由TTCN-3測(cè)試平臺(tái)20編譯生成該特定TTCN-3測(cè)試平臺(tái)20相關(guān)的中間語(yǔ)言類型,即特定TTCN-3測(cè)試平臺(tái)20生成需要編/解碼的類型和值。對(duì)于特定TTCN-3測(cè)試平臺(tái)20,如現(xiàn)有的編解碼方式,編解碼器30將根據(jù)測(cè)試平臺(tái)20提供的需要編解碼的類型和值,來(lái)生成中間類型和值,再對(duì)中間類型進(jìn)行屬性信息解析,對(duì)中間值進(jìn)行編/解碼。但是如
背景技術(shù):
所述,目前的各種編解碼庫(kù)的實(shí)現(xiàn)都與特定的TTCN-3測(cè)試平臺(tái)緊密相關(guān),它們的實(shí)現(xiàn)方法通常是調(diào)用與平臺(tái)相關(guān)的TCI接口,獲取需要編解碼的類型和值信息,進(jìn)行相應(yīng)的編解碼操作。不同的編譯平臺(tái)對(duì)應(yīng)不同的TCI接口,在一種TTCN-3測(cè)試平臺(tái)上開發(fā)的編解碼方式,較難移植到另一種編譯器平臺(tái)。因此,目前的編解碼器依賴于特定的TTCN-3測(cè)試平臺(tái),無(wú)法實(shí)現(xiàn)編解碼的通用性。因此為了解決上述問(wèn)題,本發(fā)明提出了一種與特定TTCN-3測(cè)試平臺(tái)相對(duì)獨(dú)立的通用編解碼器30,關(guān)于該通用編解碼器30的結(jié)構(gòu)可以參考圖4的實(shí)施例。如圖4所述,通用編解碼器30包括對(duì)外接口模塊32、通用編解碼類型與值模塊34以及編解碼實(shí)現(xiàn)模塊36。其中,對(duì)外接口模塊32執(zhí)行特定TTCN-3測(cè)試平臺(tái)的外部編解碼調(diào)用,以獲取特定TTCN-3測(cè)試平臺(tái)生成的需要編/解碼的類型和值;通用編解碼類型與值模塊34將特定TTCN-3測(cè)試平臺(tái)生成的需要編/解碼的類型和值轉(zhuǎn)換為與該特定TTCN-3測(cè)試平臺(tái)無(wú)關(guān)的通用編/解碼的中間類型和值;以及編解碼實(shí)現(xiàn)模塊36根據(jù)通用編/解碼的中間類型對(duì)應(yīng)的編解碼控制字選擇對(duì)應(yīng)的編解碼方式以進(jìn)行編/解碼。具體來(lái)說(shuō),通用編解碼作為一個(gè)支持庫(kù),在需要進(jìn)行編解碼操作時(shí)被外界平臺(tái),即具有不同目標(biāo)語(yǔ)言的特定TTCN-3測(cè)試平臺(tái)所調(diào)用。對(duì)外接口模塊32向外提供外部平臺(tái)需要的調(diào)用接口。外部平臺(tái)通過(guò)調(diào)用對(duì)外接口模塊32從而對(duì)通用編解碼器進(jìn)行相應(yīng)的操作,進(jìn)而對(duì)外接口模塊32獲取特定TTCN-3測(cè)試平臺(tái)生成的需要編/解碼的類型和值信息,并輸入通用編解碼類型與值模塊34進(jìn)行處理。通用編解碼類型與值模塊34提供一套包含已有的常用類型(如TTCN-3,ASN.1,XMLSchema)的極大值,并且具有較好的擴(kuò)充能力。通過(guò)使用該類型與值模塊34,將特定TTCN-3測(cè)試平臺(tái)生成的需要編/解碼的類型和值轉(zhuǎn)換為與該特定TTCN-3測(cè)試平臺(tái)無(wú)關(guān)的通用編/解碼的中間類型和值,從而通用編解碼器能夠?qū)崿F(xiàn)與其集成環(huán)境之間的獨(dú)立性。通用編解碼類型與值模塊34根據(jù)各種TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型與通用編/解碼的中間類型的映射關(guān)系表進(jìn)行轉(zhuǎn)換。在下文中,稱作通用編/解碼的中間類型和值分別為中間規(guī)范類型和中間規(guī)范值。中間規(guī)范類型不僅要包含已有的TTCN-3標(biāo)準(zhǔn)類型,而且需要提供將來(lái)擴(kuò)充其它的數(shù)據(jù)類型語(yǔ)言等功能。通用編解碼類型與值模塊34通過(guò)參考已有的數(shù)據(jù)描述語(yǔ)言如TTCN-3,ASN.1,XMLSchema/DTD,提取出一個(gè)公共的類型集,并使用類型值的設(shè)計(jì)方案,將每一個(gè)特定的數(shù)據(jù)類型對(duì)應(yīng)成公共類型集的一個(gè)特定的類型,以得到所述映射關(guān)系表。并且,通過(guò)方便的接口提供訪問(wèn)其內(nèi)部數(shù)據(jù)成員的功能。該中間規(guī)范類型所包含的類型舉例主要如下l)boolean類型2)integer類型3)float類型4)bitstring類型5)charstring類型6)hexstring類型7)octetstring類型8)universalcstring類型9)enumerated類型10)field類型11)objid類型12)null類型13)struct類型14)choice類型15)sequence類型16)structof類型17)sequenceof類型公共類型集中的類型都將提供一些可供擴(kuò)展的數(shù)據(jù)域,以便以后公共類型集兼容新的數(shù)據(jù)類型。使用C++類庫(kù)的設(shè)計(jì)方案,將中間規(guī)范的類型與值都是用類進(jìn)行封裝。將類型與值的信息保存為類的成員變量,編解碼功能作為類的接口函數(shù)對(duì)外提供。設(shè)計(jì)所有中間規(guī)范類型的父類CType,在CType類中定義編解碼實(shí)現(xiàn)的純虛函數(shù)。使用C++中的繼承機(jī)制,在CType上派生出所有的中間規(guī)范類型,并通過(guò)繼承來(lái)的編解碼函數(shù)實(shí)現(xiàn)對(duì)應(yīng)類型的編解碼功能中間規(guī)范值的設(shè)計(jì)與中間規(guī)范類型的設(shè)計(jì)類似,設(shè)計(jì)所有中間規(guī)范值的純虛基類CValue,使用C++中的繼承機(jī)制,使中間規(guī)范值繼承于CValue類,并在繼承類型上實(shí)現(xiàn)相應(yīng)的值接口函數(shù)。本發(fā)明實(shí)施例的通用編解碼器ASN.1數(shù)據(jù)類型到中間規(guī)范類型的映射關(guān)系如圖5所示,圖6和圖7分別為本發(fā)明實(shí)施例的通用編解碼器中間規(guī)范類型和中間規(guī)范值的繼承層次結(jié)構(gòu)圖。通用編解碼類型與值模塊34根據(jù)其中保存的已有的外部平臺(tái)數(shù)據(jù)類型到中間類型的映射關(guān)系表,在編解碼操作時(shí)根據(jù)外部平臺(tái)的數(shù)據(jù)類型,查找映射關(guān)系表,如果沒(méi)找到對(duì)應(yīng)的中間類型,實(shí)時(shí)地生成對(duì)應(yīng)的中間類型,否則直接使用查找得到的中間類型。其中當(dāng)該特定TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型在映射關(guān)系表不存在對(duì)應(yīng)的映射特定類型時(shí),通用編解碼類型與值模塊34根據(jù)該特定TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型生成的二進(jìn)制字符串作為其對(duì)應(yīng)的通用編/解碼的類型。通用編解碼類型與值模塊34將通用編解碼需要的類型和值信息輸入到編解碼實(shí)現(xiàn)模塊36中,對(duì)外接口模塊32根據(jù)通用編/解碼的類型對(duì)應(yīng)的TTCN-3語(yǔ)言屬性信息中的withencode屬性中所指定的編解碼方式調(diào)用相應(yīng)的編解碼接口函數(shù),稱TTCN-3語(yǔ)言的encode屬性為“編解碼控制字”,并由編解碼實(shí)現(xiàn)模塊36根據(jù)通用編/解碼的類型對(duì)應(yīng)的編解碼控制字對(duì)應(yīng)的編解碼方式以進(jìn)行編/解碼。實(shí)現(xiàn)編解碼功能。編解碼實(shí)現(xiàn)模塊36的各種編解碼的實(shí)現(xiàn)都是基于中間規(guī)范類型與值的,編解碼功能通過(guò)中間規(guī)范類型以響應(yīng)函數(shù)接口提供。目前提供的編解碼方式主要包括BER,PER,XER,TLV,HTTP,IS08583,SIP等。編解碼實(shí)現(xiàn)采用虛函數(shù)與繼承的方法,由中間規(guī)范的基類型提供一個(gè)統(tǒng)一的接口,然后每一種中間規(guī)范子類型去實(shí)現(xiàn)其對(duì)應(yīng)類型的編解碼方式。以BER編碼函數(shù)為例示意接口如圖8所示,CType為基類,基類聲明抽象BER編碼接口,基類并不實(shí)現(xiàn)該接口;子類CInteger繼承CType類,子類具體的實(shí)現(xiàn)該接口。這樣,通過(guò)一種通用的調(diào)用方式“調(diào)用基類CType的BER編碼接口”,可以實(shí)時(shí)決定實(shí)際調(diào)用到的子類的特定BER編碼接口。編解碼實(shí)現(xiàn)模塊36的通用編解碼中提供非顯式的調(diào)用編解碼方案的編解碼接口Encode與Decode,此時(shí),編解碼實(shí)現(xiàn)模塊36會(huì)根據(jù)類型的encode屬性即“編解碼控制字”來(lái)選擇對(duì)應(yīng)的編解碼方案。調(diào)用示意圖如圖9所示。本發(fā)明實(shí)施例的編解碼實(shí)現(xiàn)模塊36已經(jīng)實(shí)現(xiàn)了各種常見(jiàn)的編解碼方式,包括ASN.1中的BER,PER與XER,以及IS08583,BCD,Http,TLV等,還有SIP等,并且支持未來(lái)在其基礎(chǔ)上方便的擴(kuò)充其他編解碼方式。在編解碼實(shí)現(xiàn)模塊36得到通用編解碼值信息后,對(duì)外接口模塊32將該通用編解碼值信息(即碼流)對(duì)外提供給其連接的外部特定TTCN-3測(cè)試平臺(tái)。下面,將結(jié)合圖10和圖11對(duì)本發(fā)明實(shí)施例的通用編解碼器的編解碼原理作出詳細(xì)說(shuō)明,其中圖10為本發(fā)明實(shí)施例的通用編解碼器的編碼過(guò)程流程圖;以及圖11為本發(fā)明實(shí)施例的通用編解碼器的解碼過(guò)程流程圖。參考圖10,首先是TTCN-3測(cè)試平臺(tái)中的執(zhí)行器在執(zhí)行可執(zhí)行的測(cè)試套件(ETS,ExecutableTestSuite)中的send操作時(shí),需要對(duì)send的對(duì)象進(jìn)行編碼,故進(jìn)入對(duì)外接口模塊32中,執(zhí)行TTCN-3測(cè)試平臺(tái)外部編碼調(diào)用(步驟102)。并且得到TTCN-3測(cè)試平臺(tái)生成的需要編碼的類型和值。然后,需要在步驟104,步驟106中先對(duì)將特定TTCN-3測(cè)試平臺(tái)的類型和值轉(zhuǎn)換到通用編解碼的中間類型和值,即需要通用編解碼類型與值模塊34的支持,得到通用編解碼的中間類型和值的表示。然后,會(huì)調(diào)用編解碼實(shí)現(xiàn)模塊36,根據(jù)類型的encoding方式,即“編解碼控制字”選擇相應(yīng)的編解碼器進(jìn)行編解碼工作(步驟108),得到相應(yīng)的編碼所得碼流。在執(zhí)行編解碼前,被編碼消息的類型都已經(jīng)被X2T模塊轉(zhuǎn)化成TTCN-3語(yǔ)言類型。所得碼流可以作為現(xiàn)實(shí)記錄編碼結(jié)果顯示給用戶(步驟110),和/或?qū)ν饨涌谀K32以調(diào)用平臺(tái)所需的格式,將碼流遞交給對(duì)應(yīng)的TTCN-3測(cè)試平臺(tái)?,F(xiàn)在參考圖11,解碼流程就是根據(jù)已知的類型和碼流來(lái)構(gòu)造該類型的值,在特定TTCN-3測(cè)試平臺(tái)發(fā)起解碼Decode(TciValue&value,TriMessagemsg)操作的調(diào)用時(shí),value只是被分配了內(nèi)存空間且僅僅初始化的一個(gè)TciValue類型的值。解碼方法是對(duì)外接口模塊32根據(jù)特定TTCN-3測(cè)試平臺(tái)的TTCN-3自定義屬性信息指定的方法。進(jìn)行解碼時(shí),對(duì)外接口模塊32執(zhí)行TTCN-3測(cè)試平臺(tái)外部解碼調(diào)用(步驟202)。并且得到TTCN-3測(cè)試平臺(tái)生成的需要解碼的類型。然后,將value的類型在通用編解碼類型和值模塊34的支持下執(zhí)行與具體的TTCN-3測(cè)試平臺(tái)相關(guān)的轉(zhuǎn)換操作,從而轉(zhuǎn)換得到與具體的TTCN-3測(cè)試平臺(tái)無(wú)關(guān)的通用編解碼的中間類型(步驟204),得到通用編解碼類型表示。接著,根據(jù)encoding屬性來(lái)調(diào)用編解碼實(shí)現(xiàn)模塊36中的相應(yīng)編解碼方式,選擇相應(yīng)的解碼器對(duì)外部接口模塊32輸入的碼流進(jìn)行解碼(步驟206)。然后,判斷解碼是否成功(步驟210),若解碼未成功,顯示記錄解碼結(jié)果給用戶(步驟212)。否則,則可以得到通用編解碼的值表示,通用編解碼類型與值模塊34再將該值的表示轉(zhuǎn)換成特定TTCN-3測(cè)試平臺(tái)的值表示(步驟214),并通過(guò)外部接口模塊32提供給特定TTCN-3測(cè)試平臺(tái)。對(duì)于圖1來(lái)說(shuō),編解碼系統(tǒng)的類型轉(zhuǎn)換器10和編解碼器30這兩個(gè)部分是相互獨(dú)立的,它們之間的聯(lián)系在于類型轉(zhuǎn)換器10生成的TTCN-3屬性信息能在編解碼時(shí)被正確解析。其中類型轉(zhuǎn)換器10將對(duì)每一種其他語(yǔ)言類型實(shí)現(xiàn)一個(gè)exe程序,而編解碼器30部分將以dll的形式嵌入各種TTCN-3測(cè)試平臺(tái)中。下面,對(duì)于使用本發(fā)明實(shí)施例編解碼系統(tǒng)的反應(yīng)式系統(tǒng)測(cè)試舉例如下。(1)對(duì)于圖12某協(xié)議測(cè)試流程,其中對(duì)于步驟1中“通知提交返獎(jiǎng)文件”消息,按照規(guī)范要求需要用XML格式編解碼,只需要指定該消息類型的“編解碼控制字”為XML即可。步驟2中“獲取返獎(jiǎng)文件”消息需要用TLV和BCD編解碼方式,指定其消息類型的“編解碼控制字”為TLV和BCD即可,如對(duì)長(zhǎng)度有特殊要求,還可以指定為BCD-6表示該域占用6個(gè)字節(jié)并使用BCD編碼。其編解碼過(guò)程將交給通用編解碼器完成,相對(duì)于傳統(tǒng)的需要用到哪一種編解碼方式就加載其dll的方案來(lái)說(shuō),性能開銷減少很多。(2)銀聯(lián)測(cè)試等金融行業(yè)的協(xié)議測(cè)試,會(huì)用到IS08583編解碼,通用編解碼器支持該編解碼方式,支持該類測(cè)試,只需在測(cè)試腳本中指定其“編解碼控制字”為IS08583。(3)Web測(cè)試等使用Http協(xié)議以及XML編解碼方式的,通用編解碼器支持Http消息填充和XML編解碼方式,可以支持該類測(cè)試,只需在用到相應(yīng)編解碼時(shí)指定“編解碼控制字”為Http或XER。(4)提供BER,PER,BCD,TLV,SIP編解碼方式,用到該編解碼方式時(shí),只需在測(cè)試腳本中指定其“編解碼控制字”。(5)在需要新編解碼方式時(shí),通用編解碼器支持?jǐn)U展,可以在編解碼實(shí)現(xiàn)模塊中擴(kuò)展一個(gè)相應(yīng)編解碼實(shí)現(xiàn)過(guò)程,在通用編解碼器框架下實(shí)現(xiàn)NewEncodeO與NewDecode()接口即可,整體管理過(guò)程由通用編解碼器完成。本發(fā)明具有以下優(yōu)點(diǎn)和積極效果(1)不依賴于外部的TTCN測(cè)試平臺(tái)通用編解碼器中的編解碼實(shí)現(xiàn)模塊是獨(dú)立于TTCN測(cè)試平臺(tái)的,TTCN平臺(tái)使用通用編解器時(shí),只需要添加相應(yīng)的轉(zhuǎn)換接口,比如在Telelogic工具(TelelogicTester是IBM公司的一款TTCN-3編譯開發(fā)工具)上使用該通用編解碼器,只需要有一個(gè)Telelogic的類型和值與通用編解碼類型和值的轉(zhuǎn)換接口即可,而在其它平臺(tái)上也只需要添加一個(gè)相應(yīng)的轉(zhuǎn)換接口。這樣,相對(duì)于直接在已有的TTCN-3測(cè)試平臺(tái)上實(shí)現(xiàn)的編解碼方案來(lái)說(shuō),具有更好的可移植性和重用性。(2)編解碼實(shí)現(xiàn)與集成環(huán)境獨(dú)立編解碼的實(shí)現(xiàn)可以是任意語(yǔ)言,一種編解碼方式集成到編解碼器中時(shí),只需在相應(yīng)編解碼器接口實(shí)現(xiàn)中調(diào)用該編解碼的實(shí)現(xiàn)即可。例如XML解碼實(shí)現(xiàn),在編解碼器的XMLDecode()接口的實(shí)現(xiàn)中,調(diào)用開源的XML解析器即可。類型與值模塊的設(shè)計(jì),就是為了實(shí)現(xiàn)一個(gè)與現(xiàn)有的各個(gè)TTCN-3測(cè)試平臺(tái)無(wú)關(guān)的內(nèi)部數(shù)據(jù)表示,基于通用編解碼器自有的類型和值模塊,各種編解碼的實(shí)現(xiàn)就可以與集成環(huán)境獨(dú)立,實(shí)現(xiàn)應(yīng)用范圍的通用性。(3)提供中間類型的管理通用編解碼器自身管理中間類型的內(nèi)存創(chuàng)建與銷毀,因?yàn)樵诿看尉幗獯a過(guò)程中共享中間類型信息,所以由通用編解碼器管理中間類型內(nèi)存更加高效安全。盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對(duì)這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權(quán)利要求及其等同限定。權(quán)利要求1.一種用于反應(yīng)式系統(tǒng)測(cè)試的編解碼系統(tǒng),其特征在于,所述編解碼系統(tǒng)包括類型轉(zhuǎn)換器,所述類型轉(zhuǎn)換器用于將特定語(yǔ)言類型轉(zhuǎn)換為測(cè)試和測(cè)試控制表示法第三版TTCN-3測(cè)試平臺(tái)支持的對(duì)應(yīng)TTCN-3語(yǔ)言類型;和編解碼器,所述編解碼器用于根據(jù)轉(zhuǎn)換的對(duì)應(yīng)TTCN-3語(yǔ)言進(jìn)行屬性信息解析;以及根據(jù)TTCN-3語(yǔ)言屬性信息中的編解碼控制字所指定的編/解碼方式進(jìn)行編/解碼。2.如權(quán)利要求1所述的編解碼系統(tǒng),其特征在于,所述編解碼器包括對(duì)外接口模塊,所述對(duì)外接口模塊執(zhí)行特定TTCN-3測(cè)試平臺(tái)的外部編解碼調(diào)用,以獲取特定TTCN-3測(cè)試平臺(tái)生成的需要編/解碼的類型和值;通用編解碼類型與值模塊,所述通用編解碼類型與值模塊將所述特定TTCN-3測(cè)試平臺(tái)生成的需要編/解碼的類型和值轉(zhuǎn)換為與該特定TTCN-3測(cè)試平臺(tái)無(wú)關(guān)的通用編/解碼的中間類型和值;以及編解碼實(shí)現(xiàn)模塊,所述編解碼實(shí)現(xiàn)模塊根據(jù)所述通用編/解碼的中間類型對(duì)應(yīng)的編解碼控制字信息選擇對(duì)應(yīng)的編解碼方式以進(jìn)行編/解碼。3.如權(quán)利要求1所述的編解碼系統(tǒng),其特征在于,所述類型轉(zhuǎn)換器包括第一轉(zhuǎn)換模塊,用以轉(zhuǎn)換XML文檔邏輯結(jié)構(gòu)語(yǔ)言XMLSchema類型為TTCN-3語(yǔ)言類型,所述第一轉(zhuǎn)換模塊從Schema文檔解析生成的XMLSchema定義的類型信息集中獲取Schema文檔含有的所有組件;調(diào)用相應(yīng)組件的信息獲取類從XMLSchema定義的類型信息集中獲得各自需要的組件信息;以及調(diào)用相應(yīng)信息獲取類對(duì)應(yīng)的翻譯類根據(jù)對(duì)應(yīng)的組件信息進(jìn)行翻譯,以生成TTCN-3代碼。4.如權(quán)利要求1所述的編解碼系統(tǒng),其特征在于,所述類型轉(zhuǎn)換器包括第二轉(zhuǎn)換模塊,用以轉(zhuǎn)換XML文檔類型定義XMLDTD類型為TTCN-3語(yǔ)言類型,所述第二轉(zhuǎn)換模塊從DTD文檔解析生成的DTD定義的類型信息集中獲取DTD文檔含有的所有組件;調(diào)用相應(yīng)組件的信息獲取類從DTD定義的類型信息集中獲得各自需要的組件信息;以及調(diào)用相應(yīng)信息獲取類對(duì)應(yīng)的翻譯類根據(jù)對(duì)應(yīng)的組件信息進(jìn)行翻譯,以生成TTCN-3代碼。5.如權(quán)利要求2所述的編解碼系統(tǒng),其特征在于,所述通用編解碼類型與值模塊根據(jù)各種TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型與通用編/解碼的中間類型的映射關(guān)系表進(jìn)行轉(zhuǎn)換,其中所述通用編解碼類型與值模塊通過(guò)參考已有的數(shù)據(jù)描述語(yǔ)言,提取出一個(gè)公共的類型集,并將各種TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型映射成公共類型集的一個(gè)特定的類型,以得到所述映射關(guān)系表。6.如權(quán)利要求5所述的編解碼系統(tǒng),其特征在于,當(dāng)該特定TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型在所述映射關(guān)系表不存在對(duì)應(yīng)的映射特定類型時(shí),所述通用編解碼類型與值模塊根據(jù)該特定TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型生成的二進(jìn)制字符串作為其對(duì)應(yīng)的通用編/解碼的類型。7.一種用于反應(yīng)式系統(tǒng)測(cè)試的編解碼器,其特征在于,所述編解碼器包括對(duì)外接口模塊,所述對(duì)外接口模塊執(zhí)行特定TTCN-3測(cè)試平臺(tái)的外部編解碼調(diào)用,以獲取特定TTCN-3測(cè)試平臺(tái)生成的編/解碼的類型和值;通用編解碼類型與值模塊,所述通用編解碼類型與值模塊將所述編/解碼的類型和值轉(zhuǎn)換為與該特定TTCN-3測(cè)試平臺(tái)無(wú)關(guān)的通用編/解碼的中間類型和值;以及編解碼實(shí)現(xiàn)模塊,所述編解碼實(shí)現(xiàn)模塊根據(jù)所述通用編/解碼的中間類型對(duì)應(yīng)的編解碼控制字,選擇對(duì)應(yīng)的編解碼方式進(jìn)行編/解碼。8.如權(quán)利要求7所述的編解碼器,其特征在于,所述通用編解碼類型與值模塊根據(jù)各種TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型與通用編/解碼的中間類型的映射關(guān)系表進(jìn)行轉(zhuǎn)換,其中所述通用編解碼類型與值模塊通過(guò)參考已有的數(shù)據(jù)描述語(yǔ)言,提取出一個(gè)公共的類型集,并將各種TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型映射成公共類型集的一個(gè)特定的類型,以得到所述映射關(guān)系表。9.如權(quán)利要求8所述的編解碼器,其特征在于,當(dāng)該特定TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型在所述映射關(guān)系表不存在對(duì)應(yīng)的映射特定類型時(shí),所述通用編解碼類型與值模塊根據(jù)該特定TTCN-3測(cè)試平臺(tái)對(duì)應(yīng)的數(shù)據(jù)類型生成的二進(jìn)制字符串作為其對(duì)應(yīng)的通用編/解碼的類型。全文摘要本發(fā)明公開了一種用于反應(yīng)式系統(tǒng)測(cè)試的編解碼系統(tǒng),包括類型轉(zhuǎn)換器,所述類型轉(zhuǎn)換器用于將特定語(yǔ)言類型轉(zhuǎn)換為測(cè)試和測(cè)試控制表示法第三版TTCN-3測(cè)試平臺(tái)支持的對(duì)應(yīng)TTCN-3語(yǔ)言類型;和編解碼器,所述編解碼器用于根據(jù)轉(zhuǎn)換的對(duì)應(yīng)TTCN-3語(yǔ)言進(jìn)行屬性信息解析;以及根據(jù)TTCN-3語(yǔ)言屬性信息中的編解碼控制字所指定的編/解碼方式進(jìn)行編/解碼。本發(fā)明能夠支持各種數(shù)據(jù)類型描述,尤其著重支持XML類型描述在TTCN-3測(cè)試直接使用,并能夠?qū)崿F(xiàn)各種TTCN-3測(cè)試平臺(tái)的通用編解碼。文檔編號(hào)H03M13/01GK102111160SQ20101056599公開日2011年6月29日申請(qǐng)日期2010年11月23日優(yōu)先權(quán)日2010年11月23日發(fā)明者楊俊,王峰,王金錠,程紹銀,蔣凡申請(qǐng)人:中國(guó)科學(xué)技術(shù)大學(xué)