專(zhuān)利名稱(chēng):呼叫保護(hù)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種呼叫保護(hù)方法和裝置。
背景技術(shù):
隨著智能網(wǎng)系統(tǒng)的的迅速發(fā)展,智能業(yè)務(wù)的發(fā)展也越發(fā)復(fù)雜,智能業(yè)務(wù)每次呼叫過(guò)程中都會(huì)攜帶大量的包括呼叫狀態(tài),業(yè)務(wù)的應(yīng)用數(shù)據(jù)等信息,部分智能業(yè)務(wù)甚至?xí)ㄟ^(guò)呼叫間實(shí)例通信(算法或函數(shù))來(lái)交換數(shù)據(jù)。SCP(Service Control Point,業(yè)務(wù)控制點(diǎn))是智能網(wǎng)系統(tǒng)的核心部分,負(fù)責(zé)處理業(yè)務(wù)的業(yè)務(wù)邏輯程序和智能業(yè)務(wù)的業(yè)務(wù)數(shù)據(jù)。傳統(tǒng)的SCP呼叫保護(hù)功能的方案是采用數(shù)據(jù)庫(kù)的存取模式,具體流程如圖I所 示,首先需要在數(shù)據(jù)庫(kù)建立數(shù)據(jù)相關(guān)的表,并將對(duì)話(huà)號(hào)作為索引預(yù)置進(jìn)去。當(dāng)呼叫保護(hù)開(kāi)關(guān)開(kāi)啟后,SLP (Service Logic Process,業(yè)務(wù)邏輯進(jìn)程)和 SCSM(Service Control StateMachine,狀態(tài)機(jī))進(jìn)程將每次信令交互后的數(shù)據(jù)區(qū)的數(shù)據(jù)生成二進(jìn)制的字節(jié)流,發(fā)送給SDF (Service DatabaseFunction,業(yè)務(wù)數(shù)據(jù)庫(kù)功能),作為blob字段入庫(kù)。入庫(kù)過(guò)程以對(duì)話(huà)號(hào)為索引,填入對(duì)應(yīng)的表中。在重啟或倒換后由SDF從數(shù)據(jù)區(qū)中讀取blob字節(jié)流,生成二進(jìn)制文件,然后通知SLP和各個(gè)SCSM進(jìn)程來(lái)將文件加載到內(nèi)存中。這種方案由于采用了數(shù)據(jù)庫(kù)存取來(lái)實(shí)現(xiàn)數(shù)據(jù)的保護(hù),只能保護(hù)一些重要信息,同時(shí)采用update (刷新)機(jī)制也對(duì)系統(tǒng)的資源占用較高,每秒只能處理最多5caps, —旦話(huà)務(wù)量過(guò)大,就會(huì)造成消息積壓,進(jìn)程重啟等故障,根本無(wú)法滿(mǎn)足商用的要求。同時(shí)由于該方案的局限性,數(shù)據(jù)庫(kù)中能保護(hù)中的信息也很有限,所以它僅僅能對(duì)已經(jīng)建立的呼叫進(jìn)行保護(hù),對(duì)SCP倒換前已經(jīng)發(fā)起但是沒(méi)有接續(xù)的呼叫無(wú)法保護(hù),同時(shí)針對(duì)數(shù)據(jù)庫(kù)宕機(jī)的故障也無(wú)法保護(hù),顯示出較多的局限型。由于增值業(yè)務(wù)的復(fù)雜度也在不斷增加,需要保護(hù)的數(shù)據(jù)內(nèi)容也在持續(xù)增加,傳統(tǒng)的呼叫保護(hù)模式就愈加的不適用了,針對(duì)相關(guān)技術(shù)中無(wú)法在數(shù)據(jù)庫(kù)宕機(jī)時(shí)提供呼叫保護(hù)的問(wèn)題,目如尚未提出有效的解決方案。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種呼叫保護(hù)方法和裝置,以至少解決上述問(wèn)題。根據(jù)本發(fā)明的一個(gè)方面,提供了一種呼叫保護(hù)方法,其包括在呼叫出現(xiàn)故障時(shí)將呼叫信息存儲(chǔ)在內(nèi)存數(shù)據(jù)區(qū)中;在存儲(chǔ)設(shè)備上建立映射到內(nèi)存數(shù)據(jù)區(qū)的鏡像文件,其中,鏡像文件中存儲(chǔ)有呼叫信息;在呼叫恢復(fù)時(shí),通過(guò)鏡像文件的映射地址訪(fǎng)問(wèn)鏡像文件,并讀取鏡像文件中的呼叫信息;根據(jù)鏡像文件中的呼叫信息恢復(fù)呼叫。在存儲(chǔ)設(shè)備上建立映射到內(nèi)存數(shù)據(jù)區(qū)的鏡像文件的步驟包括在存儲(chǔ)設(shè)備上創(chuàng)建鏡像文件;在與內(nèi)存數(shù)據(jù)區(qū)對(duì)應(yīng)的進(jìn)程的虛擬空間創(chuàng)建文件鏡像信息;將文件鏡像信息對(duì)應(yīng)的呼叫信息映射到鏡像文件中;在進(jìn)程中記錄鏡像文件的指針作為鏡像文件的映射地址。根據(jù)鏡像文件中的呼叫信息恢復(fù)呼叫的步驟包括將鏡像文件中的每一個(gè)呼叫的呼叫信息讀入到消息隊(duì)列中;根據(jù)消息隊(duì)列中的消息數(shù)量以及當(dāng)前CPU的占用率來(lái)確定用于恢復(fù)呼叫的控制級(jí)別;按照控制級(jí)別來(lái)控制呼叫恢復(fù)的速率,其中,速率指的是單位時(shí)間內(nèi)恢復(fù)的呼叫個(gè)數(shù)。根據(jù)消息隊(duì)列中的消息數(shù)量以及當(dāng)前CPU的占用率來(lái)確定用于恢復(fù)呼叫的控制級(jí)別的步驟包括若消息數(shù)量越多且當(dāng)前CPU的占用率越高,確定越高的控制級(jí)別,其中,高的控制級(jí)別與低的控制級(jí)別相比用于恢復(fù)呼叫的時(shí)間較長(zhǎng)。呼叫恢復(fù)的速率隨著時(shí)間的增長(zhǎng)而變大。在存儲(chǔ)設(shè)備上建立映射到內(nèi)存數(shù)據(jù)區(qū)的鏡像文件的步驟包括根據(jù)內(nèi)存數(shù)據(jù)索引來(lái)判斷是否已存在鏡像文件;若存在,則將內(nèi)存數(shù)據(jù)區(qū)中的呼叫信息映射到鏡像文件中;若不存在,則在存儲(chǔ)設(shè)備上建立映射到內(nèi)存數(shù)據(jù)區(qū)的鏡像文件,并將內(nèi)存數(shù)據(jù)區(qū)中的呼叫 信息映射到鏡像文件中。呼叫信息以?xún)?nèi)存中數(shù)據(jù)區(qū)編號(hào)或呼叫的對(duì)話(huà)號(hào)為索引存儲(chǔ)在內(nèi)存數(shù)據(jù)區(qū)中以及映射到鏡像文件中。根據(jù)本發(fā)明的另一方面,提供了一種呼叫保護(hù)裝置,包括存儲(chǔ)單元,用于在呼叫出現(xiàn)故障時(shí)將呼叫信息存儲(chǔ)在內(nèi)存數(shù)據(jù)區(qū)中;映射單元,用于在存儲(chǔ)設(shè)備上建立映射到內(nèi)存數(shù)據(jù)區(qū)的鏡像文件,其中,鏡像文件中存儲(chǔ)有呼叫信息;讀取單元,用于在呼叫恢復(fù)時(shí),通過(guò)鏡像文件的映射地址訪(fǎng)問(wèn)鏡像文件,并讀取鏡像文件中的呼叫信息;恢復(fù)單元,用于根據(jù)鏡像文件中的呼叫信息恢復(fù)呼叫。恢復(fù)單元包括讀入模塊,用于將鏡像文件中的每一個(gè)呼叫的呼叫信息讀入到消息隊(duì)列中;確定模塊,用于根據(jù)消息隊(duì)列中的消息數(shù)量以及當(dāng)前CPU的占用率來(lái)確定用于恢復(fù)呼叫的控制級(jí)別;控制模塊,用于按照控制級(jí)別來(lái)控制呼叫恢復(fù)的速率,其中,速率指的是單位時(shí)間內(nèi)恢復(fù)的呼叫個(gè)數(shù)。確定模塊包括獲取子模塊,用于獲取消息隊(duì)列中的消息數(shù)量以及當(dāng)前CPU的占用率;確定子模塊,用于在消息數(shù)量越多且當(dāng)前CPU的占用率越高時(shí),確定越高的控制級(jí)另IJ,其中,高的控制級(jí)別與低的控制級(jí)別相比用于恢復(fù)呼叫的時(shí)間較長(zhǎng),且呼叫恢復(fù)的速率隨著時(shí)間的增長(zhǎng)而變大。本發(fā)明具有以下有益技術(shù)效果I)本發(fā)明采用文件鏡像的方式來(lái)存儲(chǔ)呼叫信息,刷新速度快,恢復(fù)起來(lái)方便;2)由于與內(nèi)存數(shù)據(jù)區(qū)具有映射關(guān)系的鏡像文件建立在存儲(chǔ)設(shè)備上,其不受數(shù)據(jù)庫(kù)大小的限制,從而可以保護(hù)更多的呼叫過(guò)程數(shù)據(jù),由此可以對(duì)各種狀態(tài)的呼叫都能合理保護(hù),進(jìn)一步可應(yīng)用于有較大呼叫量的商用局點(diǎn),而不會(huì)發(fā)生消息積壓等問(wèn)題;3)本發(fā)明采用與內(nèi)存數(shù)據(jù)區(qū)具有映射關(guān)系的鏡像文件來(lái)存儲(chǔ)呼叫信息,而并不依賴(lài)數(shù)據(jù)庫(kù)存取,從而可以保護(hù)數(shù)據(jù)庫(kù)宕機(jī)情況下的呼叫,進(jìn)一步,可利用于各種業(yè)務(wù)升級(jí)過(guò)程中,維持呼叫,保護(hù)計(jì)費(fèi),保證了用戶(hù)和運(yùn)營(yíng)商的利益;4)本發(fā)明采用了多級(jí)控制級(jí)別來(lái)控制呼叫的恢復(fù)、且恢復(fù)速率隨著時(shí)間的變化從小到大,使得恢復(fù)呼叫的過(guò)程平滑穩(wěn)定,能夠有效防止老呼叫,新呼叫并發(fā)而導(dǎo)致的軟、硬件問(wèn)題。
當(dāng)然,本發(fā)明中的每一個(gè)優(yōu)選實(shí)施例并不需要實(shí)現(xiàn)上面的所有技術(shù)效果。
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖I是根據(jù)相關(guān)技術(shù)的傳統(tǒng)方式的呼叫保護(hù)流程圖;圖2是根據(jù)本發(fā)明實(shí)施例的呼叫保護(hù)方法的一種優(yōu)選的流程圖;圖3是根據(jù)本發(fā)明實(shí)施例的呼叫保護(hù)方法的另一種優(yōu)選的流程圖;圖4是根據(jù)本發(fā)明實(shí)施例的創(chuàng)建鏡像文件的一種優(yōu)選的流程圖;圖5是根據(jù)本發(fā)明實(shí)施例的SLP和SCSM的同步機(jī)制的示意圖; 圖6是根據(jù)本發(fā)明實(shí)施例的呼叫保護(hù)裝置的一種優(yōu)選的結(jié)構(gòu)圖。
具體實(shí)施例方式實(shí)施例I圖2是根據(jù)本發(fā)明實(shí)施例的呼叫保護(hù)方法的一種優(yōu)選的流程圖,其包括S202,在呼叫出現(xiàn)故障時(shí)將呼叫信息存儲(chǔ)在內(nèi)存數(shù)據(jù)區(qū)中;優(yōu)選的,呼叫出現(xiàn)故障包括平臺(tái)倒換,應(yīng)用程序重啟或業(yè)務(wù)數(shù)據(jù)庫(kù)宕機(jī)等;S204,在存儲(chǔ)設(shè)備上建立映射到內(nèi)存數(shù)據(jù)區(qū)的鏡像文件,其中,鏡像文件中存儲(chǔ)有呼叫信息;S206,在呼叫恢復(fù)時(shí),通過(guò)鏡像文件的映射地址訪(fǎng)問(wèn)鏡像文件,并讀取鏡像文件中的呼叫信息;S208,根據(jù)鏡像文件中的呼叫信息恢復(fù)呼叫。在本發(fā)明的優(yōu)選實(shí)施例中,采用與內(nèi)存數(shù)據(jù)區(qū)具有映射關(guān)系的鏡像文件來(lái)存儲(chǔ)呼叫信息,而并不依賴(lài)數(shù)據(jù)庫(kù)存取,從而可以保護(hù)數(shù)據(jù)庫(kù)宕機(jī)情況下的呼叫,進(jìn)一步,可利用于各種業(yè)務(wù)升級(jí)過(guò)程中,維持呼叫,保護(hù)計(jì)費(fèi),保證了用戶(hù)和運(yùn)營(yíng)商的利益。此外,采用文件鏡像的方式來(lái)存儲(chǔ)呼叫信息,刷新速度快,恢復(fù)起來(lái)方便。在存儲(chǔ)設(shè)備上建立映射到內(nèi)存數(shù)據(jù)區(qū)的鏡像文件的步驟包括在存儲(chǔ)設(shè)備上創(chuàng)建鏡像文件;在與內(nèi)存數(shù)據(jù)區(qū)對(duì)應(yīng)的進(jìn)程的虛擬空間創(chuàng)建文件鏡像信息;將文件鏡像信息對(duì)應(yīng)的呼叫信息映射到鏡像文件中;在進(jìn)程中記錄鏡像文件的指針作為鏡像文件的映射地址。在本優(yōu)選的實(shí)施例中,存儲(chǔ)設(shè)備可以是磁盤(pán)、硬盤(pán)等。由于與內(nèi)存數(shù)據(jù)區(qū)具有映射關(guān)系的鏡像文件建立在存儲(chǔ)設(shè)備上,其不受數(shù)據(jù)庫(kù)大小的限制,從而可以保護(hù)更多的呼叫過(guò)程數(shù)據(jù),由此可以對(duì)各種狀態(tài)的呼叫都能合理保護(hù),進(jìn)一步可應(yīng)用于有較大呼叫量的商用局點(diǎn),而不會(huì)發(fā)生消息積壓等問(wèn)題。根據(jù)鏡像文件中的呼叫信息恢復(fù)呼叫的步驟包括將鏡像文件中的每一個(gè)呼叫的呼叫信息讀入到消息隊(duì)列中;根據(jù)消息隊(duì)列中的消息數(shù)量以及當(dāng)前CPU的占用率來(lái)確定用于恢復(fù)呼叫的控制級(jí)別;按照控制級(jí)別來(lái)控制呼叫恢復(fù)的速率,其中,速率指的是單位時(shí)間內(nèi)恢復(fù)的呼叫個(gè)數(shù)。本優(yōu)選的實(shí)施例采用了多級(jí)控制級(jí)別來(lái)控制呼叫的恢復(fù)、且恢復(fù)速率隨著時(shí)間的變化從小到大,使得恢復(fù)呼叫的過(guò)程平滑穩(wěn)定,能夠有效防止老呼叫,新呼叫并發(fā)而導(dǎo)致的軟、硬件問(wèn)題。
根據(jù)消息隊(duì)列中的消息數(shù)量以及當(dāng)前CPU的占用率來(lái)確定用于恢復(fù)呼叫的控制級(jí)別的步驟包括若消息數(shù)量越多且當(dāng)前CPU的占用率越高,確定越高的控制級(jí)別,其中,高的控制級(jí)別與低的控制級(jí)別相比用于恢復(fù)呼叫的時(shí)間較長(zhǎng)。本優(yōu)選的實(shí)施例采用了多級(jí)控制級(jí)別來(lái)控制呼叫的恢復(fù)、且恢復(fù)速率隨著時(shí)間的變化從小到大,使得恢復(fù)呼叫的過(guò)程平滑穩(wěn)定,能夠有效防止老呼叫,新呼叫并發(fā)而導(dǎo)致的軟、硬件問(wèn)題。優(yōu)選的,呼叫恢復(fù)的速率隨著時(shí)間的增長(zhǎng)而變大。以下通過(guò)表I和表2來(lái)對(duì)控制級(jí)別進(jìn)行說(shuō)明表I
權(quán)利要求
1.一種呼叫保護(hù)方法,其特征在于,包括 在呼叫出現(xiàn)故障時(shí)將呼叫信息存儲(chǔ)在內(nèi)存數(shù)據(jù)區(qū)中; 在存儲(chǔ)設(shè)備上建立映射到所述內(nèi)存數(shù)據(jù)區(qū)的鏡像文件,其中,所述鏡像文件中存儲(chǔ)有所述呼叫信息; 在所述呼叫恢復(fù)時(shí),通過(guò)所述鏡像文件的映射地址訪(fǎng)問(wèn)所述鏡像文件,并讀取所述鏡像文件中的呼叫信息; 根據(jù)所述鏡像文件中的呼叫信息恢復(fù)所述呼叫。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,在存儲(chǔ)設(shè)備上建立映射到所述內(nèi)存數(shù)據(jù)區(qū)的鏡像文件的步驟包括 在所述存儲(chǔ)設(shè)備上創(chuàng)建鏡像文件; 在與所述內(nèi)存數(shù)據(jù)區(qū)對(duì)應(yīng)的進(jìn)程的虛擬空間創(chuàng)建文件鏡像信息; 將所述文件鏡像信息對(duì)應(yīng)的呼叫信息映射到所述鏡像文件中; 在所述進(jìn)程中記錄所述鏡像文件的指針作為所述鏡像文件的映射地址。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,根據(jù)所述鏡像文件中的呼叫信息恢復(fù)所述呼叫的步驟包括 將所述鏡像文件中的每一個(gè)呼叫的呼叫信息讀入到消息隊(duì)列中; 根據(jù)所述消息隊(duì)列中的消息數(shù)量以及當(dāng)前CPU的占用率來(lái)確定用于恢復(fù)呼叫的控制級(jí)別; 按照所述控制級(jí)別來(lái)控制所述呼叫恢復(fù)的速率,其中,所述速率指的是單位時(shí)間內(nèi)恢復(fù)的呼叫個(gè)數(shù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,根據(jù)所述消息隊(duì)列中的消息數(shù)量以及當(dāng)前CPU的占用率來(lái)確定用于恢復(fù)呼叫的控制級(jí)別的步驟包括 若消息數(shù)量越多且當(dāng)前CPU的占用率越高,確定越高的控制級(jí)別,其中,高的控制級(jí)別與低的控制級(jí)別相比用于恢復(fù)呼叫的時(shí)間較長(zhǎng)。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述呼叫恢復(fù)的速率隨著時(shí)間的增長(zhǎng)而變大。
6.根據(jù)權(quán)利要求I所述的方法,其特征在于,在存儲(chǔ)設(shè)備上建立映射到所述內(nèi)存數(shù)據(jù)區(qū)的鏡像文件的步驟包括 根據(jù)內(nèi)存數(shù)據(jù)索引來(lái)判斷是否已存在所述鏡像文件; 若存在,則將所述內(nèi)存數(shù)據(jù)區(qū)中的呼叫信息映射到所述鏡像文件中; 若不存在,則在存儲(chǔ)設(shè)備上建立映射到所述內(nèi)存數(shù)據(jù)區(qū)的鏡像文件,并將所述內(nèi)存數(shù)據(jù)區(qū)中的呼叫信息映射到所述鏡像文件中。
7.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述呼叫信息以?xún)?nèi)存中數(shù)據(jù)區(qū)編號(hào)或所述呼叫的對(duì)話(huà)號(hào)為索引存儲(chǔ)在所述內(nèi)存數(shù)據(jù)區(qū)中以及映射到所述鏡像文件中。
8.—種呼叫保護(hù)裝置,其特征在于,包括 存儲(chǔ)單元,用于在呼叫出現(xiàn)故障時(shí)將呼叫信息存儲(chǔ)在內(nèi)存數(shù)據(jù)區(qū)中; 映射單元,用于在存儲(chǔ)設(shè)備上建立映射到所述內(nèi)存數(shù)據(jù)區(qū)的鏡像文件,其中,所述鏡像文件中存儲(chǔ)有所述呼叫信息; 讀取單元,用于在所述呼叫恢復(fù)時(shí),通過(guò)所述鏡像文件的映射地址訪(fǎng)問(wèn)所述鏡像文件,并讀取所述鏡像文件中的呼叫信息; 恢復(fù)單元,用于根據(jù)所述鏡像文件中的呼叫信息恢復(fù)所述呼叫。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述恢復(fù)單元包括 讀入模塊,用于將所述鏡像文件中的每一個(gè)呼叫的呼叫信息讀入到消息隊(duì)列中; 確定模塊,用于根據(jù)所述消息隊(duì)列中的消息數(shù)量以及當(dāng)前CPU的占用率來(lái)確定用于恢復(fù)呼叫的控制級(jí)別; 控制模塊,用于按照所述控制級(jí)別來(lái)控制所述呼叫恢復(fù)的速率,其中,所述速率指的是單位時(shí)間內(nèi)恢復(fù)的呼叫個(gè)數(shù)。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述確定模塊包括獲取子模塊,用于獲取所述消息隊(duì)列中的消息數(shù)量以及當(dāng)前CPU的占用率; 確定子模塊,用于在所述消息數(shù)量越多且當(dāng)前CPU的占用率越高時(shí),確定越高的所述控制級(jí)別,其中,高的控制級(jí)別與低的控制級(jí)別相比用于恢復(fù)呼叫的時(shí)間較長(zhǎng),且所述呼叫恢復(fù)的速率隨著時(shí)間的增長(zhǎng)而變大。
全文摘要
本發(fā)明提供了一種呼叫保護(hù)方法和裝置,其中,該方法包括在呼叫出現(xiàn)故障時(shí)將呼叫信息存儲(chǔ)在內(nèi)存數(shù)據(jù)區(qū)中;在存儲(chǔ)設(shè)備上建立映射到內(nèi)存數(shù)據(jù)區(qū)的鏡像文件,其中,鏡像文件中存儲(chǔ)有呼叫信息;在呼叫恢復(fù)時(shí),通過(guò)鏡像文件的映射地址訪(fǎng)問(wèn)鏡像文件,并讀取鏡像文件中的呼叫信息;根據(jù)鏡像文件中的呼叫信息恢復(fù)呼叫。本發(fā)明解決了現(xiàn)有技術(shù)中無(wú)法在數(shù)據(jù)庫(kù)宕機(jī)時(shí)提供呼叫保護(hù)的問(wèn)題,從而可以保護(hù)數(shù)據(jù)庫(kù)宕機(jī)情況下的呼叫。
文檔編號(hào)H04L29/06GK102801748SQ20111013530
公開(kāi)日2012年11月28日 申請(qǐng)日期2011年5月23日 優(yōu)先權(quán)日2011年5月23日
發(fā)明者嚴(yán)杰, 舒暢, 劉昕宇, 丁巖 申請(qǐng)人:中興通訊股份有限公司