專利名稱:用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)測(cè)試領(lǐng)域,具體涉及用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法。
背景技術(shù):
隨著Internet和PSTN(Public Switched Telephone Network公共交換電話網(wǎng)絡(luò))的進(jìn)一步發(fā)展,NGN(Next Generation Network,下一代網(wǎng)絡(luò))已經(jīng)在中國(guó)進(jìn)入小規(guī)模商用階段。NGN承載了原有PSTN網(wǎng)絡(luò)的所有業(yè)務(wù),把大量的數(shù)據(jù)傳輸卸載到IP網(wǎng)絡(luò)中以減輕PSTN網(wǎng)絡(luò)的重荷,又以IP技術(shù)的新特性增加和增強(qiáng)了許多新老業(yè)務(wù)。NGN全面無縫支持話音、視頻和數(shù)據(jù),具有龐大復(fù)雜的協(xié)議體系架構(gòu)。NGN網(wǎng)絡(luò)將傳統(tǒng)交換機(jī)的功能單元分離成為獨(dú)立的網(wǎng)絡(luò)部件,各個(gè)部件可以按相應(yīng)的功能劃分各自獨(dú)立發(fā)展,部件間的協(xié)議接口基于相應(yīng)的標(biāo)準(zhǔn)。
NGN的網(wǎng)絡(luò)結(jié)構(gòu)如圖1,從功能上看,自上而下可以分為業(yè)務(wù)/應(yīng)用層1(網(wǎng)絡(luò)服務(wù)/請(qǐng)求層)、控制層2(控制層)、媒體層3(媒體層)、接入和傳輸層4(通路和傳輸層)四個(gè)層次。每個(gè)層次上都由不同的網(wǎng)絡(luò)設(shè)備完成相應(yīng)的功能。其中業(yè)務(wù)/應(yīng)用層包括應(yīng)用服務(wù)器;控制層包括軟交換設(shè)備;接入和傳輸層包括接入網(wǎng)關(guān)、綜合接入設(shè)備、信令網(wǎng)關(guān)、中繼網(wǎng)關(guān)。其中,軟交換是NGN的控制功能實(shí)體,為NGN提供具有實(shí)時(shí)性要求的業(yè)務(wù)的呼叫控制和連接控制功能,是NGN呼叫與控制的核心,它提供多種業(yè)務(wù)的連接控制、路由、網(wǎng)絡(luò)資源管理、計(jì)費(fèi)、認(rèn)證等功能。軟交換設(shè)備與各種媒體網(wǎng)關(guān)、終端、應(yīng)用服務(wù)器、其它軟交換設(shè)備間采用標(biāo)準(zhǔn)協(xié)議相互通信。
對(duì)于NGN網(wǎng)絡(luò)測(cè)試而言,基本上可以分為兩大類NGN網(wǎng)絡(luò)業(yè)務(wù)測(cè)試與NGN網(wǎng)絡(luò)設(shè)備測(cè)試。而網(wǎng)絡(luò)設(shè)備的仿真測(cè)試是所有NGN測(cè)試中最重要的測(cè)試之一。
NGN網(wǎng)絡(luò)設(shè)備的仿真測(cè)試是指通過測(cè)試儀表模擬出規(guī)范中規(guī)定的信令,將網(wǎng)絡(luò)設(shè)備對(duì)于不同信令的處理過程與規(guī)范中規(guī)定的處理過程進(jìn)行對(duì)比,從而得出NGN網(wǎng)絡(luò)設(shè)備是否符合規(guī)范的結(jié)論。
在現(xiàn)有技術(shù)中可以采用協(xié)議流程直接編程方式實(shí)現(xiàn)NGN仿真測(cè)試,此技術(shù)使用協(xié)議流程直接編制方式來實(shí)現(xiàn)仿真測(cè)試的執(zhí)行過程。在此技術(shù)中,使用現(xiàn)有的高級(jí)程序語(yǔ)言,直接對(duì)具體的協(xié)議流程進(jìn)行編程,不同的協(xié)議使用不同的代碼實(shí)現(xiàn)。
但是采用這種方法,需要針對(duì)每種協(xié)議單獨(dú)編寫仿真測(cè)試流程代碼,每次改變需要重新編譯程序。又因?yàn)椴煌瑓f(xié)議的具體流程在不同環(huán)境是變化的,此方式無法適應(yīng)這種變化,并且由于編寫的代碼工作量巨大,版本維護(hù)困難。使得這種方式不適用NGN協(xié)議的仿真測(cè)試。
為了克服上述方法的不便,產(chǎn)生了測(cè)試腳本方式。此技術(shù)使用測(cè)試腳本來實(shí)現(xiàn)仿真測(cè)試的執(zhí)行過程。測(cè)試腳本語(yǔ)言類似高級(jí)語(yǔ)言,它用語(yǔ)句代碼的方式對(duì)協(xié)議的測(cè)試流程進(jìn)行編程,生成測(cè)試腳本。之后在運(yùn)行過程中,對(duì)所編的腳本每條語(yǔ)句逐條進(jìn)行翻譯解釋,最后形成可執(zhí)行的實(shí)際代碼塊執(zhí)行。腳本制作是將所有的業(yè)務(wù)流程轉(zhuǎn)入測(cè)試腳本,測(cè)試腳本通常指的是虛擬用戶腳本或虛擬用戶。虛擬用戶通過驅(qū)動(dòng)一個(gè)客戶程序來模擬真實(shí)用戶。利用測(cè)試腳本可以保證獲得準(zhǔn)確、適當(dāng)、可重復(fù)的測(cè)試進(jìn)程與測(cè)試結(jié)果。通過測(cè)試腳本的限定,我們可以排除測(cè)試過程中可能出現(xiàn)的干擾和意外,保證獲得穩(wěn)定的評(píng)價(jià)結(jié)果。
雖然測(cè)試腳本方式克服了直接編程產(chǎn)生的缺陷,但是,目前沒有用于仿真測(cè)試的標(biāo)準(zhǔn)腳本語(yǔ)言,需要各廠家自行開發(fā)仿真測(cè)試腳本語(yǔ)言以及相應(yīng)的語(yǔ)言解釋器。且在執(zhí)行過程中需要對(duì)腳本進(jìn)行解釋,執(zhí)行效率低;無法進(jìn)行大話務(wù)量呼叫的仿真;腳本解釋過程執(zhí)行復(fù)雜,難以實(shí)現(xiàn)復(fù)雜流程的仿真;測(cè)試腳本語(yǔ)言的版本更新,會(huì)引起腳本解釋器的重新編譯,帶來麻煩的版本維護(hù)問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,以克服現(xiàn)有技術(shù)執(zhí)行仿真測(cè)試過程效率低、實(shí)現(xiàn)復(fù)雜、維護(hù)困難、無法進(jìn)行大話務(wù)量測(cè)試的缺點(diǎn)。
為此,本發(fā)明提供如下的解決方案用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,所述方法包括
A、啟動(dòng)一個(gè)呼叫狀態(tài)機(jī)實(shí)例;B、初始化所述呼叫狀態(tài)機(jī)實(shí)例;C、對(duì)所述呼叫狀態(tài)機(jī)實(shí)例消息進(jìn)行處理;D、判斷所述呼叫狀態(tài)機(jī)實(shí)例的狀態(tài)是否為結(jié)束狀態(tài),如果是,則進(jìn)行終止后的清理工作,否則轉(zhuǎn)步驟E;E、對(duì)所述呼叫狀態(tài)機(jī)實(shí)例的動(dòng)作進(jìn)行處理,并將處理結(jié)果發(fā)送給被測(cè)試設(shè)備;F、判斷所述呼叫狀態(tài)機(jī)實(shí)例的狀態(tài)是否可以轉(zhuǎn)移,如果是則停止所述狀態(tài)存在的定時(shí)器,并轉(zhuǎn)步驟D,否則保持狀態(tài),等待下一次處理。
所述步驟A包括啟動(dòng)主叫呼叫狀態(tài)機(jī)實(shí)例或被叫呼叫狀態(tài)機(jī)實(shí)例;其中,啟動(dòng)所述主叫狀態(tài)機(jī)實(shí)例的過程為(a1)判斷狀態(tài)機(jī)當(dāng)前的負(fù)載是否已達(dá)到要求;(a2)如果已達(dá)到要求,則等待正在執(zhí)行的呼叫狀態(tài)機(jī)實(shí)例結(jié)束,否則啟動(dòng)所述呼叫狀態(tài)機(jī)實(shí)例;啟動(dòng)所述被叫狀態(tài)機(jī)實(shí)例的過程為(b1)從所述被測(cè)設(shè)備接收一個(gè)消息模板;(b2)判斷是否有被叫狀態(tài)機(jī)能夠處理所述消息模板,如果有,則轉(zhuǎn)(b3),否則拒絕所述消息模板;(b3)判斷狀態(tài)機(jī)當(dāng)前的負(fù)載是否已達(dá)到要求,如果已達(dá)到要求,則拒絕所述消息模板,否則,啟動(dòng)所述呼叫狀態(tài)機(jī)實(shí)例。
所述步驟B對(duì)呼叫狀態(tài)機(jī)實(shí)例的初始化包括對(duì)所述呼叫狀態(tài)機(jī)實(shí)例中參數(shù)解析和所述呼叫狀態(tài)機(jī)實(shí)例執(zhí)行的次數(shù)。
所述步驟C所述的接收消息的處理包括收到消息轉(zhuǎn)移、針對(duì)收到消息的呼叫關(guān)鍵字的設(shè)置、從收到的消息中拷貝數(shù)據(jù)。
所述步驟E中對(duì)呼叫狀態(tài)機(jī)實(shí)例的處理包括數(shù)據(jù)拷貝、呼叫狀態(tài)機(jī)實(shí)例關(guān)鍵字設(shè)置、定時(shí)器設(shè)置、查找數(shù)據(jù)庫(kù)參數(shù)。
所述步驟F中的轉(zhuǎn)移條件包括收到消息轉(zhuǎn)移和定時(shí)轉(zhuǎn)移。
所述方法用狀態(tài)機(jī)機(jī)制描述不同協(xié)議流程的一般行為,將協(xié)議流程抽象為消息模板。
一個(gè)狀態(tài)機(jī)一次執(zhí)行一個(gè)呼叫狀態(tài)機(jī)實(shí)例進(jìn)行測(cè)試仿真或同時(shí)生成多個(gè)呼叫狀態(tài)機(jī)實(shí)例進(jìn)行測(cè)試仿真。
所述被測(cè)設(shè)備為下一代網(wǎng)絡(luò)中的軟交換設(shè)備。
所述多協(xié)議包括媒體網(wǎng)關(guān)控制協(xié)議、會(huì)話初始協(xié)議、多媒體網(wǎng)關(guān)的工業(yè)標(biāo)準(zhǔn)協(xié)議、與承載無關(guān)的呼叫控制協(xié)議、信令傳輸協(xié)議。
由以上本發(fā)明提供的技術(shù)方案可以看出,該系統(tǒng)采用狀態(tài)機(jī)機(jī)制來描述NGN網(wǎng)絡(luò)中不同協(xié)議的呼叫流程與不同協(xié)議的測(cè)試流程,準(zhǔn)確地表達(dá)復(fù)雜的不同協(xié)議的呼叫/測(cè)試流程的邏輯結(jié)構(gòu),通過模擬仿真不同協(xié)議的呼叫測(cè)試流程,抽象了協(xié)議的一般流程,因此,與具體協(xié)議無關(guān),簡(jiǎn)化了測(cè)試流程,并且由于可以同時(shí)執(zhí)行多個(gè)仿真呼叫流程,所以可以進(jìn)行大話務(wù)量測(cè)試。因此,本發(fā)明明顯改善了現(xiàn)有技術(shù)中的缺陷,對(duì)網(wǎng)絡(luò)系統(tǒng)的仿真測(cè)試具有重大意義。
圖1是NGN網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)圖;圖2是本發(fā)明的流程圖;圖3是本發(fā)明中主叫呼叫啟動(dòng)的流程圖;圖4是本發(fā)明中被叫呼叫啟動(dòng)的流程圖;圖5是SIP注冊(cè)流程圖;圖6是用狀態(tài)機(jī)仿真SIP注冊(cè)過程的流程圖;具體實(shí)施方式
由于本發(fā)明的方法是利用狀態(tài)機(jī)仿真方式實(shí)現(xiàn)的,所以,在說明本發(fā)明的具體實(shí)施例之前需要先對(duì)仿真流程的狀態(tài)機(jī)進(jìn)行描述。我們首先確定一個(gè)需要仿真的呼叫流程或測(cè)試流程的邏輯結(jié)構(gòu);其次找出流程中包含的所有狀態(tài)及此狀態(tài)下網(wǎng)絡(luò)設(shè)備的具體動(dòng)作;最后確定狀態(tài)間的轉(zhuǎn)移條件。當(dāng)所有的狀態(tài)、動(dòng)作和轉(zhuǎn)移條件確定之后,對(duì)一個(gè)協(xié)議仿真流程的描述也就確定了下來。
本發(fā)明公開了用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,其主要流程圖如圖2所示,該方法包括201啟動(dòng)呼叫狀態(tài)機(jī)實(shí)例;202初始化所述呼叫狀態(tài)機(jī)實(shí)例;203進(jìn)行接收消息的處理;;204判斷所述呼叫狀態(tài)機(jī)實(shí)例的狀態(tài)是否為結(jié)束狀態(tài),如果是,206則結(jié)束進(jìn)行結(jié)束后的清理工作,否則轉(zhuǎn)205;205對(duì)所述呼叫狀態(tài)機(jī)實(shí)例的數(shù)據(jù)進(jìn)行處理后;207判斷所述呼叫狀態(tài)機(jī)實(shí)例的狀態(tài)是否可以轉(zhuǎn)移,如果是則停止?fàn)顟B(tài)機(jī)存在的定時(shí)器,并轉(zhuǎn)204,否則208保持狀態(tài),等待下一次處理。
其中,啟動(dòng)所述呼叫狀態(tài)機(jī)實(shí)例包括啟動(dòng)主叫狀態(tài)機(jī)呼叫實(shí)例或啟動(dòng)被叫狀態(tài)機(jī)實(shí)例,圖3為啟動(dòng)所述主叫狀態(tài)機(jī)實(shí)例的過程;(a1)301判斷狀態(tài)機(jī)當(dāng)前的負(fù)載是否已達(dá)到要求;(a2)如果為是,302等待正在執(zhí)行的呼叫狀態(tài)機(jī)實(shí)例結(jié)束,否則,303則啟動(dòng)所述呼叫狀態(tài)機(jī)實(shí)例,;圖4為啟動(dòng)所述被叫狀態(tài)機(jī)實(shí)例的過程;(b1)401從被測(cè)設(shè)備收到一個(gè)消息模板;(b2)402判斷是否有被叫狀態(tài)機(jī)能夠處理所述消息模板,如果有,403則轉(zhuǎn)(b3),否則404拒絕所述消息模板;(b3)403判斷狀態(tài)機(jī)當(dāng)前的負(fù)載是否已達(dá)到要求,如果是,404拒絕所述消息模板,否則,405啟動(dòng)所述呼叫狀態(tài)機(jī)實(shí)例。
根據(jù)上述描述,簡(jiǎn)要描述主叫和被叫狀態(tài)機(jī)實(shí)例的啟動(dòng)過程。主叫狀態(tài)機(jī)實(shí)例啟動(dòng)過程為在仿真程序空閑時(shí)刻,檢查每個(gè)狀態(tài)機(jī)當(dāng)前的負(fù)載是否已達(dá)要求,如果沒有到達(dá)要求,則要求啟動(dòng)該狀態(tài)機(jī)的一個(gè)呼叫狀態(tài)機(jī)實(shí)例,用狀態(tài)機(jī)運(yùn)行數(shù)據(jù)初始化啟動(dòng)的呼叫狀態(tài)機(jī)實(shí)例,即將呼叫實(shí)例中的重要參數(shù)復(fù)制到協(xié)議模板中,以便它能獨(dú)立運(yùn)行。被叫狀態(tài)機(jī)啟動(dòng)過程為當(dāng)收到一個(gè)消息模板時(shí),查找是否有被叫狀態(tài)機(jī)能夠處理,如果有,繼續(xù)處理;否則拒絕這個(gè)消息模板的處理;然后檢查該呼叫狀態(tài)機(jī)實(shí)例的負(fù)載是否達(dá)到要求,如果沒有,則啟動(dòng)該狀態(tài)機(jī)的一個(gè)呼叫狀態(tài)機(jī)實(shí)例,否則拒絕這個(gè)消息模板的處理;對(duì)啟動(dòng)的呼叫狀態(tài)機(jī)實(shí)例,用狀態(tài)機(jī)運(yùn)行數(shù)據(jù)初始化,以便它能獨(dú)立運(yùn)行。
每次仿真是以仿真呼叫實(shí)例為單位進(jìn)行的,仿真呼叫實(shí)例中包含了一些呼叫狀態(tài)機(jī)以及負(fù)載描述,其中所述負(fù)載為每次仿真所要執(zhí)行的呼叫次數(shù)。每個(gè)狀態(tài)機(jī)描述了一類呼叫流程,狀態(tài)機(jī)的一次執(zhí)行是這個(gè)狀態(tài)機(jī)的一個(gè)呼叫狀態(tài)機(jī)實(shí)例,一個(gè)呼叫狀態(tài)機(jī)實(shí)例對(duì)應(yīng)著一個(gè)具體的協(xié)議仿真流程,每個(gè)狀態(tài)機(jī)可以并發(fā)生成多個(gè)呼叫狀態(tài)機(jī)實(shí)例同時(shí)進(jìn)行多個(gè)流程仿真,同一個(gè)狀態(tài)機(jī)的不同實(shí)例的各個(gè)狀態(tài)參數(shù)可以從提取,從而,這些實(shí)例雖然流程相同,但是實(shí)際的流程參數(shù)可能各不相同。當(dāng)進(jìn)行仿真測(cè)試時(shí),對(duì)客戶端下載的呼叫實(shí)例進(jìn)行參數(shù)解析,形成狀態(tài)機(jī)執(zhí)行時(shí)需要的數(shù)據(jù),此數(shù)據(jù)為從客戶端發(fā)送的某種協(xié)議的測(cè)試實(shí)例中提取出的一些重要參數(shù),它們與本系統(tǒng)中存在的該種協(xié)議的消息模板相匹配,當(dāng)測(cè)試實(shí)例啟動(dòng)時(shí),這些數(shù)據(jù)初始化呼叫狀態(tài)機(jī)實(shí)例,即將這些重要參數(shù)填充到相應(yīng)的協(xié)議模板中,使?fàn)顟B(tài)機(jī)能仿真該協(xié)議的測(cè)試流程。然后接受客戶端測(cè)試啟動(dòng)/停止命令。
對(duì)每個(gè)呼叫例狀態(tài)機(jī)實(shí)例進(jìn)行仿真流程的控制,包括狀態(tài)的轉(zhuǎn)移控制、狀態(tài)變化過程的動(dòng)作。呼叫狀態(tài)機(jī)實(shí)例的執(zhí)行外部驅(qū)動(dòng)事件有2個(gè)一個(gè)是呼叫狀態(tài)機(jī)實(shí)例消息到達(dá);一個(gè)是呼叫狀態(tài)機(jī)實(shí)例的定時(shí)事件。
一個(gè)呼叫狀態(tài)機(jī)實(shí)例消息到達(dá)后,這個(gè)呼叫狀態(tài)機(jī)實(shí)例的處理過程如下首先,進(jìn)行接收消息的處理,包括收到消息轉(zhuǎn)移處理,針對(duì)收到消息的呼叫狀態(tài)機(jī)實(shí)例關(guān)鍵字Key的設(shè)置,從消息中拷貝數(shù)據(jù)以備呼叫狀態(tài)機(jī)實(shí)例使用。消息接收處理后就進(jìn)行狀態(tài)機(jī)狀態(tài)處理。
然后,在狀態(tài)機(jī)狀態(tài)處理時(shí),檢查該狀態(tài)是否實(shí)例結(jié)束狀態(tài),如果是,提交到呼叫狀態(tài)機(jī)實(shí)例執(zhí)行控制來進(jìn)行終止后的清理工作。
接著,進(jìn)行動(dòng)作的處理,可能的動(dòng)作包括消息發(fā)送、數(shù)據(jù)拷貝、呼叫狀態(tài)機(jī)實(shí)例Key的設(shè)置、定時(shí)器設(shè)置、查找數(shù)據(jù)庫(kù)參數(shù)。處理消息發(fā)送動(dòng)作時(shí),根據(jù)設(shè)置的消息模板由指定的協(xié)議單元?jiǎng)?chuàng)建,并用數(shù)據(jù)拷貝動(dòng)作設(shè)置好消息參數(shù),最后將此消息發(fā)送到這個(gè)協(xié)議的消息隊(duì)列中,由該協(xié)議單元發(fā)送出去。
而后,檢查該狀態(tài)下是否可以轉(zhuǎn)移下一個(gè)狀態(tài),轉(zhuǎn)移的條件有定時(shí)到后的轉(zhuǎn)移,某些參數(shù)條件滿足后的轉(zhuǎn)移,無條件的自動(dòng)轉(zhuǎn)移。如果可以轉(zhuǎn)移,停止該狀態(tài)存在的定時(shí)器,再次進(jìn)行消息達(dá)到后的處理步驟。
最后,如果該狀態(tài)下,沒有轉(zhuǎn)移條件滿足,該呼叫狀態(tài)機(jī)實(shí)例暫時(shí)處于當(dāng)前狀態(tài),等待下次處理。
一個(gè)呼叫狀態(tài)機(jī)實(shí)例的定時(shí)器到后,表示的是這個(gè)呼叫的一個(gè)定時(shí)轉(zhuǎn)移事件發(fā)生了,處理如下首先進(jìn)行定時(shí)處理,根據(jù)設(shè)置好的定時(shí)轉(zhuǎn)移,將狀態(tài)轉(zhuǎn)移到指定狀態(tài)。
然后進(jìn)行消息達(dá)到后的處理步驟,如上所述。
下面是一個(gè)結(jié)合具體協(xié)議的實(shí)施例,用狀態(tài)機(jī)仿真SIP的注冊(cè)流程。
首先對(duì)SIP的注冊(cè)流程進(jìn)行簡(jiǎn)單描述,一個(gè)SIP設(shè)備在加電啟動(dòng)后,首先需要向能管理這個(gè)設(shè)備的軟交換注冊(cè)才能進(jìn)行正常的呼叫發(fā)起或接收。一個(gè)SIP Phone注冊(cè)到軟交換的流程如圖3所示F1SIP Phone向軟交換發(fā)送“注冊(cè)”消息,在“注冊(cè)”消息中指明軟交換的SIP-URI,Call-ID,SIP Phone的SIP-URI;F2軟件換回應(yīng)401,表示這個(gè)SIP Phone沒有合法注冊(cè),請(qǐng)它重新注冊(cè),并要求用MD5算法做PGP驗(yàn)證。在這個(gè)回應(yīng)消息中,還要指明剛才請(qǐng)求注冊(cè)的URI、Call-ID、消息類型“注冊(cè)”;F3SIP Phone收到需要驗(yàn)證的回應(yīng)后,用MD5算法計(jì)算驗(yàn)證序列,在“注冊(cè)”消息中填充驗(yàn)證序列,并向軟交換重新發(fā)送“注冊(cè)”消息;F4軟交換經(jīng)過驗(yàn)證后,允許注冊(cè)這個(gè)SIP Phone注冊(cè),就向SIP Phone發(fā)送200 OK的注冊(cè)成功消息。之后,SIP Phone就可以用SIP協(xié)議撥打電話了。
根據(jù)上述過程,可以用狀態(tài)機(jī)仿真模擬這個(gè)注冊(cè)過程,如圖4。在這個(gè)仿真狀態(tài)機(jī)中一共有8個(gè)狀態(tài)Start,S1,S2,S3,S4,Pass,F(xiàn)ail,Stop。其中4個(gè)狀態(tài)是特殊的“開始”是每個(gè)狀態(tài)機(jī)啟動(dòng)時(shí)的狀態(tài),“通過”是表示這個(gè)測(cè)試成功的狀態(tài),“失敗”是這個(gè)測(cè)試失敗的狀態(tài),“停止”是測(cè)試結(jié)束狀態(tài)。一個(gè)狀態(tài)機(jī)一次執(zhí)行后,達(dá)到“停止”狀態(tài)時(shí),表示這個(gè)呼叫狀態(tài)機(jī)實(shí)例結(jié)束。從“開始”到S1,“通過”到“停止”,“失敗”到“停止”是自動(dòng)轉(zhuǎn)移的。仿真狀態(tài)機(jī)執(zhí)行過程狀態(tài)機(jī)啟動(dòng)一個(gè)呼叫狀態(tài)機(jī)實(shí)例時(shí),直接進(jìn)入“開始”狀態(tài)
(1)“開始”到S1是一個(gè)自動(dòng)轉(zhuǎn)移,這個(gè)實(shí)例的狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移到S1(2)在S1狀態(tài),執(zhí)行6個(gè)動(dòng)作a)從數(shù)據(jù)庫(kù)中取用戶URI;b)從數(shù)據(jù)庫(kù)中取Call-ID;c)設(shè)置呼叫狀態(tài)機(jī)實(shí)例的KEY;d)創(chuàng)建“注冊(cè)”消息;e)設(shè)置“注冊(cè)”參數(shù);f)發(fā)送“注冊(cè)”消息。從S1到S2是自動(dòng)轉(zhuǎn)移,這個(gè)實(shí)例的狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移到S2(3)在S2狀態(tài),執(zhí)行一個(gè)動(dòng)作設(shè)置一個(gè)10秒定時(shí)器。S2轉(zhuǎn)移前等待接收200 OK消息、401消息或超時(shí)。根據(jù)設(shè)置的呼叫狀態(tài)機(jī)實(shí)例KEY,如果接收到200 OK消息,轉(zhuǎn)移到“通過”;如果接收到401消息,轉(zhuǎn)移到S3;如果超時(shí),轉(zhuǎn)移到“失敗”(4)在S3狀態(tài),執(zhí)行5個(gè)動(dòng)作a)從收到的401消息中取出MD5參數(shù);b)構(gòu)造MD5驗(yàn)證參數(shù);c)創(chuàng)建“注冊(cè)”消息;d)設(shè)置“注冊(cè)”消息參數(shù);e)發(fā)送“注冊(cè)”消息。根據(jù)設(shè)置的呼叫狀態(tài)機(jī)實(shí)例KEY,如果接收到200 OK消息,轉(zhuǎn)移到“通過”;如果超時(shí),轉(zhuǎn)移到“失敗”(5)在“通過”狀態(tài)下,自動(dòng)轉(zhuǎn)移到“停止”(6)在“失敗”狀態(tài)下,自動(dòng)轉(zhuǎn)移到“停止”(7)在“停止”狀態(tài)下,這個(gè)呼叫狀態(tài)機(jī)實(shí)例執(zhí)行結(jié)束。
由于狀態(tài)機(jī)描述抽象了協(xié)議流程一般行為,將協(xié)議的流程歸結(jié)為狀態(tài)、轉(zhuǎn)移、動(dòng)作,將協(xié)議消息抽象為消息模板。這使得狀態(tài)機(jī)仿真測(cè)試技術(shù)可以支持多種協(xié)議,實(shí)現(xiàn)多協(xié)議的仿真測(cè)試。因此,在NGN網(wǎng)絡(luò)中的其它協(xié)議,包括MGCP(Media Gateway Control Protocol,媒體網(wǎng)關(guān)控制協(xié)議)、H.248/MEGACO(多媒體網(wǎng)關(guān)的工業(yè)標(biāo)準(zhǔn)協(xié)議)、BICC(Bearer Independent Call Control,與承載無關(guān)的呼叫控制)協(xié)議、SIGTRAN(Signaling Transport,信令傳輸)協(xié)議都可以用狀態(tài)機(jī)進(jìn)行仿真測(cè)試。
另外,本發(fā)明主要用于NGN網(wǎng)絡(luò)中的仿真測(cè)試,但本發(fā)明并不僅限于此。對(duì)于在其它網(wǎng)絡(luò)中,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,采用的測(cè)試仿真方法也屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,其特征在于,所述方法包括A、啟動(dòng)一個(gè)呼叫狀態(tài)機(jī)實(shí)例;B、初始化所述呼叫狀態(tài)機(jī)實(shí)例;C、對(duì)所述呼叫狀態(tài)機(jī)實(shí)例消息進(jìn)行處理;D、判斷所述呼叫狀態(tài)機(jī)實(shí)例的狀態(tài)是否為結(jié)束狀態(tài),如果是,則進(jìn)行終止后的清理工作,否則轉(zhuǎn)步驟E;E、對(duì)所述呼叫狀態(tài)機(jī)實(shí)例的動(dòng)作進(jìn)行處理,并將處理結(jié)果發(fā)送給被測(cè)試設(shè)備;F、判斷所述呼叫狀態(tài)機(jī)實(shí)例的狀態(tài)是否可以轉(zhuǎn)移,如果是則停止所述狀態(tài)存在的定時(shí)器,并轉(zhuǎn)步驟D,否則保持狀態(tài),等待下一次處理。
2.如權(quán)利要求1所述的用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,其特征在于,所述步驟A包括啟動(dòng)主叫呼叫狀態(tài)機(jī)實(shí)例或被叫呼叫狀態(tài)機(jī)實(shí)例;其中,啟動(dòng)所述主叫狀態(tài)機(jī)實(shí)例的過程為(a1)判斷狀態(tài)機(jī)當(dāng)前的負(fù)載是否已達(dá)到要求;(a2)如果已達(dá)到要求,則等待正在執(zhí)行的呼叫狀態(tài)機(jī)實(shí)例結(jié)束,否則啟動(dòng)所述呼叫狀態(tài)機(jī)實(shí)例;啟動(dòng)所述被叫狀態(tài)機(jī)實(shí)例的過程為(b1)從所述被測(cè)設(shè)備接收一個(gè)消息模板;(b2)判斷是否有被叫狀態(tài)機(jī)能夠處理所述消息模板,如果有,則轉(zhuǎn)(b3),否則拒絕所述消息模板;(b3)判斷狀態(tài)機(jī)當(dāng)前的負(fù)載是否已達(dá)到要求,如果已達(dá)到要求,則拒絕所述消息模板,否則,啟動(dòng)所述呼叫狀態(tài)機(jī)實(shí)例。
3.如權(quán)利要求1所述的用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,其特征在于,所述步驟B對(duì)呼叫狀態(tài)機(jī)實(shí)例的初始化包括對(duì)所述呼叫狀態(tài)機(jī)實(shí)例中參數(shù)解析和所述呼叫狀態(tài)機(jī)實(shí)例執(zhí)行的次數(shù)。
4.如權(quán)利要求1所述的用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,其特征在于,所述步驟C所述的接收消息的處理包括收到消息轉(zhuǎn)移、針對(duì)收到消息的呼叫關(guān)鍵字的設(shè)置、從收到的消息中拷貝數(shù)據(jù)。
5.如權(quán)利要求1所述的用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,其特征在于,所述步驟E中對(duì)呼叫狀態(tài)機(jī)實(shí)例的處理包括數(shù)據(jù)拷貝、呼叫狀態(tài)機(jī)實(shí)例關(guān)鍵字設(shè)置、定時(shí)器設(shè)置、查找數(shù)據(jù)庫(kù)參數(shù)。
6.如權(quán)利要求1所述的用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,其特征在于,所述步驟F中的轉(zhuǎn)移條件包括收到消息轉(zhuǎn)移和定時(shí)轉(zhuǎn)移。
7.如權(quán)利要求1-6中任一項(xiàng)所述的用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,其特征在于,所述方法用狀態(tài)機(jī)機(jī)制描述不同協(xié)議流程的一般行為,將協(xié)議流程抽象為消息模板。
8.如權(quán)利要求1-6中任一項(xiàng)所述的用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,其特征在于,一個(gè)狀態(tài)機(jī)一次執(zhí)行一個(gè)呼叫狀態(tài)機(jī)實(shí)例進(jìn)行測(cè)試仿真或同時(shí)生成多個(gè)呼叫狀態(tài)機(jī)實(shí)例進(jìn)行測(cè)試仿真。
9.如權(quán)利要求1-6中任一項(xiàng)所述的用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,其特征在于,所述被測(cè)設(shè)備為下一代網(wǎng)絡(luò)中的軟交換設(shè)備。
10.如權(quán)利要求1-6中任一項(xiàng)所述的用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,其特征在于,所述多協(xié)議包括媒體網(wǎng)關(guān)控制協(xié)議、會(huì)話初始協(xié)議、多媒體網(wǎng)關(guān)的工業(yè)標(biāo)準(zhǔn)協(xié)議、與承載無關(guān)的呼叫控制協(xié)議、信令傳輸協(xié)議。
全文摘要
本發(fā)明公開了用狀態(tài)機(jī)模擬多協(xié)議仿真流程的方法,該方法包括201啟動(dòng)呼叫狀態(tài)機(jī)實(shí)例;202初始化所述呼叫狀態(tài)機(jī)實(shí)例;203進(jìn)行接收消息的處理;204判斷所述呼叫狀態(tài)機(jī)實(shí)例的狀態(tài)是否為結(jié)束狀態(tài),如果是,206則結(jié)束進(jìn)行結(jié)束后的清理工作,否則轉(zhuǎn)205;205對(duì)所述呼叫狀態(tài)機(jī)實(shí)例的數(shù)據(jù)進(jìn)行處理后;207判斷所述呼叫狀態(tài)機(jī)實(shí)例的狀態(tài)是否可以轉(zhuǎn)移,如果是則停止?fàn)顟B(tài)機(jī)存在的定時(shí)器,并轉(zhuǎn)204,否則208保持狀態(tài),等待下一次處理。所以,本發(fā)明與具體協(xié)議無關(guān),簡(jiǎn)化了測(cè)試流程,并且由于可以同時(shí)執(zhí)行多個(gè)仿真協(xié)議,所以可以進(jìn)行大話務(wù)量測(cè)試。因此,本發(fā)明明顯改善了現(xiàn)有技術(shù)中的缺陷,對(duì)多協(xié)議網(wǎng)絡(luò)系統(tǒng)的仿真測(cè)試具有重大意義。
文檔編號(hào)H04L29/06GK1758612SQ20041008094
公開日2006年4月12日 申請(qǐng)日期2004年10月10日 優(yōu)先權(quán)日2004年10月10日
發(fā)明者賈林, 朱明新, 佟明君, 陳楚華 申請(qǐng)人:北京中創(chuàng)信測(cè)科技股份有限公司