專利名稱::移動通訊的業(yè)務匹配方法移動通訊的業(yè)務匹配方法
技術(shù)領域:
:本發(fā)明涉及移動通訊,具體涉及一種移動通訊的業(yè)務匹配方法。
背景技術(shù):
:用戶通過消息通道,如短信、彩信方式請求使用業(yè)務時,業(yè)務平臺(包括運營商業(yè)務管理平臺、服務供應商(SP)平臺等)能夠獲取的信息只有發(fā)送的信息內(nèi)容以及發(fā)送的目的號碼,需要根據(jù)這兩項內(nèi)容解析出用戶請求使用的是哪個業(yè)務,以及該業(yè)務的操作類型是訂購、退訂、還是點播等信息。用戶的業(yè)務申請消息如移動夢網(wǎng)(M0)短信包括發(fā)送號碼和發(fā)送內(nèi)容兩個部分,再加上業(yè)務申請時設置的匹配模式,這三項數(shù)據(jù)共同構(gòu)成了匹配的依據(jù)。進行SP業(yè)務申請時,如通過消息通道訪問,則按照不同的業(yè)務及操作類型填寫業(yè)務指令,包含長接入號(LongAccessNO)和特征串(FeatureStr,也可稱為指令串)兩部分。SP業(yè)務申請的消息通道接入號標識稱為短接入號(AccessN0),在短接入號的基礎上,SP可將之擴展并應用在不同的業(yè)務上,即稱為長接入號。如某網(wǎng)站的短接入號可能為"8001",其中某個彩信業(yè)務接入號為"8001***"。特征串'是用戶使用業(yè)務時發(fā)送的內(nèi)容。匹配模式設置是選擇對長接入號和特征串采用精確匹配還是模糊匹配。當所匹配內(nèi)容和所設置的指令完全相同(包括長度、內(nèi)容,但大小寫可以不同)時為精確匹配。例如,若設置了長接入號為"800101",則當用戶發(fā)送一條MO短信到號碼"80010123"時,將不會匹配上"800101";只有發(fā)往號碼"800101"的指令才會被匹配上。如果不需做精確匹配,則為模糊匹配。模糊匹配時,用戶發(fā)送的指令包含業(yè)務指令即可,但要求從第一位開始包含。例如,用戶發(fā)送一條MO短信到"80010123"時,在模糊匹配模式下會匹配上"800101",但不會匹配上"7800101"。另外,模糊匹配模式下,如果特征串為空(NULL),則輸入的任何指令都是與之匹配的。同時,長接入號和特征串均滿足最長匹配原則,即按照用戶輸入的指令盡量匹配到與之符合程度最高的指令,也即能夠匹配的字符串最長的指令,例如業(yè)務指令有"8001"和"800101",用戶發(fā)送一條MO短信到"80010123"時會匹配到"800101"。根據(jù)以上內(nèi)容,可以匹配出業(yè)務標識,以及針對該業(yè)務的操作類型如"訂購"、"取消"、"點播"等。M0短信業(yè)務匹配有如下規(guī)則處理一條業(yè)務請求時,首先對發(fā)送號碼進行匹配,按照最長匹配的原則匹配到長接入號;根據(jù)匹配出來的長接入號所對應的特征串列表,再按照最長匹配的原則對指令內(nèi)容進行匹配,如果有能對應上的匹配結(jié)果,則取出對應的業(yè)務代碼和操作類型,如果沒有能對應上的匹配結(jié)果,則當根據(jù)發(fā)送號碼能夠匹配到SP的短接入號時,通知短信網(wǎng)關將此條短信當作普通M0短信向SP轉(zhuǎn)發(fā);如果按照最長匹配的原則對指令內(nèi)容的匹配沒有匹配結(jié)果或匹配不到SP的短接入號,則將長接入號的長度減一,重新開始上一歩的操作;如果最終匹配不上,則鑒權(quán)失敗,該MO短信將不能發(fā)給SP。M0短信匹配對大小寫不敏感。現(xiàn)有MO業(yè)務匹配舉例如下<例一>假設存在某SP,其短接入號為"88",企業(yè)代碼(ICPCode)為"920001",在M0業(yè)務指令表中存在如下數(shù)據(jù)表1M0指令表<table>tableseeoriginaldocumentpage6</column></row><table>其中接入號精確匹配標志(ANCheckFlag)值為1時,表示該SP業(yè)務對接入號使用精確匹配,特征串精確匹配標志(FSCheckFlag)值為1時,表示該SP業(yè)務對指令內(nèi)容使用精確匹配。針對上面的設置,用戶進行業(yè)務申請時有如下匹配結(jié)果當用戶發(fā)送xy到8821時,將匹配到記錄1;當用戶發(fā)送xydb到8821時,由于記錄l中特征串為精確匹配,故不滿足記錄1的匹配要求,將匹配到記錄2;當用戶發(fā)送yz到882101時,將匹配到記錄3;當用戶發(fā)送Olyz到88201時,將匹配到記錄4;當用戶發(fā)送xy到875時,將匹配失?。划斢脩舭l(fā)送xy到886時,匹配到SP,但匹配不到業(yè)務?,F(xiàn)有的M0指令匹配方法是基于接入號的哈希散列算法,對每一條MO指令,即截取一定長度的長接入號,得出一個key值,然后對預設的哈希桶(Bucket)的數(shù)目取余,根據(jù)余數(shù)取值決定該M0指令歸屬哪一個哈希桶,需要遍歷的M0指令數(shù)就是在同一個桶中的指令數(shù)。然后遍歷比較該桶里的M0指令,以字符串比較方式找出相匹配的特征串。如果沒有找到,則將截取的長接入號的長度減一,然后重復上述操作,直到成功找到相匹配的特征串,或者滿足一定結(jié)束條件,如長接入號長度小于短接入號長度為l丄:。理想的情況是,MO指令根據(jù)長接入號完全散列,即長接入號不同的指令都分布于不同的桶中,此時需要遍歷的M0指令數(shù)就是同一個長接入號的M0指令數(shù)。MO指令匹配的數(shù)據(jù)哈希散列算法的缺點是速度較慢,同時在不同場景下算法復雜度差異較大,特別是極端情況下會出現(xiàn)系統(tǒng)效率急劇下降的情況。下面以一個具體例子進行說明-假定存在如表2的MO指令表2MO指令表<table>tableseeoriginaldocumentpage7</column></row><table>其中"****"表示指令的不同組合,此處假定特征串的最大長度為4位,有100種不同的指令(如"JCXH"一精彩笑話、"TLXZ"-一圖鈴下載等,但不包括"TQYB"'--天氣預報指令)。另外,長接入號充分散列,即上表中不同長接入號的指令分布于不同的哈希桶中。用戶發(fā)送"TQYB"到"88888800",按照MO哈希匹配算法,需要進行最長匹配,上表中長接入號"888888"(序號5)與用戶發(fā)送的"88888800"最為符合,因此首先在"888888"的指令組中進行特征串匹配。經(jīng)過100次對每個指令的逐一比較,找不到匹配的指令,則將長接入號長度減一,在長接入號"88888"(序號4)的指令組中進行特征串匹配。又經(jīng)過100次比較,還是找不到匹配的指令,此時再將長接入號長度減一,在長接入號"8888"(序號3)的指令組中進行特征串匹配,終于找到了符合匹配條件的指令。至此,一共進行了201次比較才找到相匹配的數(shù)據(jù)。而事實上,實際應用中的數(shù)據(jù)比這還要復雜的多,例如長接入號一般可以為20位長,特征串甚至超過100位。隨著長度的加長,該匹配方法的效率將呈級數(shù)下降,對系統(tǒng)消耗以及處理效率帶來不可預知的風險。
發(fā)明內(nèi)容本發(fā)明的主要目的就是解決現(xiàn)有技術(shù)中的問題,提供--種移動通訊的業(yè)務匹配方法,能夠提高業(yè)務指令的匹配效率,將最大匹配次數(shù)限制在較小的范圍內(nèi)。為實現(xiàn)上述目的,本發(fā)明提供一種移動通訊的業(yè)務匹配方法,用于將業(yè)務申請消息匹配到預先設置的業(yè)務指令,業(yè)務申請消息包括發(fā)送號碼和指令內(nèi)容,業(yè)務指令包括根據(jù)短接入號擴展的長接入號和特征串,該匹配方法包括以下步驟Al、設置接入號根節(jié)點,并根據(jù)預先設置的業(yè)務指令,按照從高位到低位的順序?qū)⒏鏖L接入號的每一位作為一個長接入號節(jié)點加入,建立長接入號多叉樹;Bl、按照從高位到低位的順序?qū)⒏魈卣鞔拿恳晃蛔鳛橐粋€特征串節(jié)點加入,建立特征串多叉樹,將長接入號的末位節(jié)點指向?qū)奶卣鞔嗖鏄?,并為各特征串的末位?jié)點添加業(yè)務匹配數(shù)據(jù);Cl、根據(jù)業(yè)務申請消息,在長接入號多叉樹中査找發(fā)送號碼最深所能匹配到的長接入號節(jié)點;Dl、在所能匹配到的長接入號節(jié)點所指的特征串多叉樹中,査找指令內(nèi)容最深所能匹配到的特征串節(jié)點,若未査找到,進入步驟E1,若查找到,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果El、若有上層長接入號節(jié)點,則返回上層長接入號節(jié)點并再次執(zhí)行步驟D1,若無上層長接入號節(jié)點,則匹配失敗。接入號根節(jié)點包含長度為10且用于指向其下層節(jié)點的子節(jié)點指針數(shù)組,各長接入號節(jié)點包含用于指向其上層節(jié)點的父節(jié)點指針、長度為10且用于指向其下層節(jié)點的子節(jié)點指針數(shù)組以及用于指向其對應的特征串多叉樹的指針;各特征串節(jié)點包含用于指向其上層節(jié)點的父節(jié)點指針、長度為256且用于指向其下層節(jié)點的子節(jié)點指針數(shù)組。所述步驟Bl還包括在長接入號的末位節(jié)點和特征串的首位節(jié)點之間加入特征串根節(jié)點,特征串根節(jié)點包含用于指向長接入號的末位節(jié)點的父節(jié)點指針、長度為256且用于指向其下層節(jié)點的子節(jié)點指針數(shù)組,長接入號的末位節(jié)點用于指向其對應的特征串多叉樹的指針指向特征串根節(jié)點。所述業(yè)務匹配數(shù)據(jù)包括接入號精確匹配標志和特征串精確匹配標志;所述步驟D1包括以下步驟Dll、在所能匹配到的長接入號節(jié)點所指的特征串多叉樹中,查找指令內(nèi)容最深所能匹配到的特征串節(jié)點,若未査找到,進入步驟E1;D12、若查找到,則判斷接入號精確匹配標志和特征串精確匹配標志的狀態(tài)是否為有效,若均無效,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果,若接入號精確匹配標志和/或特征串精確匹配標志有效,則判斷發(fā)送號碼與長接入號的長度和/或指令內(nèi)容與特征串的長度是否相等;D13、若相等,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果;否則,進入步驟E1。所述步驟A1中,若長接入號對應的特征串為空,則為該長接入號的末位節(jié)點添加業(yè)務匹配數(shù)據(jù);所述步驟D1中,當未查找到指令內(nèi)容匹配的特征串節(jié)點時,先判斷長接入號節(jié)點是否包含業(yè)務匹配數(shù)據(jù),是則判斷特征串精確匹配標志的狀態(tài)是否為有效,若為無效則以該業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果。所述業(yè)務匹配數(shù)據(jù)還包括企業(yè)代碼、業(yè)務代碼和操作類型。在所述步驟Cl之前還包括以下步驟判斷是否存在對應特征串為空的長接入號,若存在則判斷該長接入號是否等于短接入號,若為短接入號則執(zhí)行步驟C1,否則,為短接入號的末位節(jié)點添加企業(yè)代碼,并將接入號精確匹配標志和特征串精確匹配標志的狀態(tài)設為無效。所述步驟E1中,若返回到長接入號多叉樹的某一層節(jié)點時,j亥長S^入—號節(jié)點有業(yè)務匹配數(shù)據(jù),且荅中的企業(yè)代碼有值而業(yè)務代碼無值,則以該企業(yè)代碼作為匹配結(jié)果。所述步驟B1還包括將特征串的所有字符轉(zhuǎn)換為小寫或大寫。為實現(xiàn)上述目的,本發(fā)扭還提供一種移動通訊的業(yè)務匹配系統(tǒng),用于將業(yè)務申請消息匹配到預先設置的業(yè)務指令,業(yè)務申請消息包括發(fā)送號碼和指令內(nèi)容,業(yè)務指令包括根據(jù)短接入號擴展的長接入號和特征串,該業(yè)務匹配系統(tǒng)包括長接入號多叉樹建立裝置,用于按照從高位到低位的順序以各長接入號的每一位作為一個長接入號節(jié)點,建立長接入號多叉樹;特征串多叉樹建立裝置,用于按照從高位到低位的順序以各特征串的每一位作為一個特征串節(jié)點加入長接入號多叉樹后,建立特征串多叉樹;第一數(shù)據(jù)添加裝置,用于為各特征串的末位節(jié)點添加業(yè)務匹配數(shù)據(jù);長接入號查找裝置,用于在長接入號多叉樹中査找發(fā)送號碼最深所能匹配到的長接入號節(jié)點;特征串査找裝置,用于在所能匹配到的長接入號節(jié)點所指的特征串多叉樹中,査找指令內(nèi)容最深所能匹配到的特征串節(jié)點,當未查找到時,若有上層長接入號節(jié)點,則返回上層長接入號節(jié)點查找,若無上層長接入號節(jié)點,則匹配失敗,當査找到時,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果。還包括精確匹配判斷裝置,用于査找到時判斷接入號精確匹配標志和特征串精確匹配標志的狀態(tài)是否為有效,若均無效,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果;若接入號精確匹配標志和/或特征串精確匹配標志有效,則判斷發(fā)送號碼與長接入號的長度和/或指令內(nèi)容與特征串的長度是否相等,若相等則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果。還包括第二數(shù)據(jù)添加裝置,用于對對應空特征串的長接入號的末位節(jié)點添加業(yè)務匹配數(shù)據(jù);所述特征串査找裝置在未査找到指令內(nèi)容匹配的特征串節(jié)點時,若長接入號節(jié)點帶有業(yè)務匹配數(shù)據(jù)且特征串精確匹配標志的狀態(tài)被判斷為無效,以該業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果。還包括第三數(shù)據(jù)添加裝置,用于對無相應空特征串的短接入號的末位節(jié)點添加企業(yè)代碼,并將接入號精確匹配標志和特征串精確匹配標志的狀態(tài)設為無效;所述特征串查找裝置在返回到長接入號多叉樹的某一層節(jié)點時,若該.長接入號節(jié)點存在企業(yè)代碼有值而業(yè)務代碼無值的業(yè)務匹配數(shù)據(jù),則以該企業(yè)代碼作為匹配結(jié)果。本發(fā)明的有益效果是本發(fā)明的移動通訊業(yè)務匹配方法及系統(tǒng)采用基于多叉樹的査找匹配方式,在預先設定的業(yè)務指令的基礎上,通過多叉樹構(gòu)造方法構(gòu)建含長接入號節(jié)點和特征串節(jié)點的多叉樹,需要對用戶的業(yè)務申請消息進行業(yè)務匹配時,利用高效的多叉樹査詢方法在多叉樹中査找,査找匹配的次數(shù)主要與長接入號和特征串的位數(shù)有關,采用本發(fā)明進行業(yè)務匹配的效率較現(xiàn)有基于哈希匹配算法的匹配方式更高,故能夠在實現(xiàn)業(yè)務指令準確匹配的基礎上大大提高對用戶業(yè)務請求的處理效率。圖1為本發(fā)明實施例的業(yè)務指令多叉樹構(gòu)建流程圖2為本發(fā)明實施例的長接入號節(jié)點結(jié)構(gòu)圖3為本發(fā)明實施例的特征串節(jié)點結(jié)構(gòu)圖4為本發(fā)明實施例的業(yè)務指令多叉樹的結(jié)構(gòu)示意圖5為本發(fā)明實施例的業(yè)務匹配流程圖。具體實施方式本發(fā)明的特征及優(yōu)點將通過實施例結(jié)合附圖進行詳細說明。本實施例所用到的業(yè)務指令為移動MO指令,請參考圖l,根據(jù)如表l的M0指令表中的長接入號和特征串等數(shù)據(jù),構(gòu)造業(yè)務指令多叉樹的步驟如下1.首先構(gòu)造長接入號多叉樹,設置接入號根節(jié)點,然后按照從高位到低位的順序?qū)㈤L接入號的每一位作為一個節(jié)點加入多叉樹中。接入號根節(jié)點包含長度為10且用于指向其下層節(jié)點即長接入號的首位節(jié)點的子節(jié)點指針數(shù)組。長接入號節(jié)點結(jié)構(gòu)如圖2所示,每個節(jié)點包含如下信息parent—node——父節(jié)點指針;Child_node_[10]—子節(jié)點指針數(shù)組,指針數(shù)組成員用于指向其下層節(jié)點。由于接入號由數(shù)字字符串組成,因此最多可有10個子節(jié)點;feature—tree—特征串樹指針,用于指向該業(yè)務指令中的特征串多叉樹;match—data——業(yè)務匹配數(shù)據(jù),包括接入號精確匹配標志、特征串精確匹配標志等用于指令匹配的數(shù)據(jù),接入號精確匹配標志值為1時,表示該SP業(yè)務對接使用精確匹配,特征串精確匹配標志值為1時,表示該SP業(yè)務對指令內(nèi)容使用精確匹配;還包括企業(yè)代碼(ICPCode)、業(yè)務代碼(ICPServID)、操作類型(0perType)等業(yè)務相關數(shù)據(jù)。在長接入號多叉樹中,只有當該業(yè)務指令中特征串為空時match—data—字段才有意義。2.將長接入號加入多叉樹后,如果業(yè)務指令對應的特征串不為空,則開始構(gòu)造特征串多叉樹。首先加入特征串根節(jié)點,特征串根節(jié)點包含用于指向長接入號的末位節(jié)點的父節(jié)點指針、長度為256且用于指向其下層節(jié)點即特征串的首位節(jié)點的子節(jié)點指針數(shù)組。將長接入號的末位節(jié)點用于指向其對應的特征串多叉樹的指針指向特征串根節(jié)點。然后,按照從高位到低位的順序?qū)⑻卣鞔拿恳晃蛔鳛橐粋€節(jié)點加入樹中,同時將長接入號的最低位葉子節(jié)點指向該特征串根節(jié)點。由于M0指令匹配邏輯對字符的大小寫不敏感,為便于后續(xù)操作,可先將特征串所有字符轉(zhuǎn)換為小寫(也可轉(zhuǎn)換為大寫)。特征串節(jié)點結(jié)構(gòu)如圖3所示,每個節(jié)點包含如下信息parent—node——父節(jié)點指針child——node—[256]—子節(jié)點指針數(shù)組。由于特征串由ASCII字符組成,因此最多可有256個子節(jié)點。為簡單起見,此處不考慮特征串都已轉(zhuǎn)換為小寫。match—data——業(yè)務匹配數(shù)據(jù),包括接入號精確匹配標志、特征串精確匹配標志等用于指令匹配的數(shù)據(jù),以及企業(yè)代碼、業(yè)務代碼以及操作類型等希望匹配出的業(yè)務數(shù)據(jù)。3.判斷M0指令表是否存在該一長接入號等于SP的短接入號且特征串為空的業(yè)務指令即先判斷是否存在對應特征串為空的長接入號,如果存在判斷該長接入號是否等于短接入號,是則可已確定,該長接入號的末位節(jié)點即SP短接入號末位節(jié)點的match—data—成員中已經(jīng)包含了企業(yè)代碼數(shù)據(jù);否則可知在SP的短接入號下沒有任何業(yè)務,則在業(yè)務指令多叉樹構(gòu)造完成后,在SP的短接入號下關聯(lián)該SP的企業(yè)代碼數(shù)據(jù),即在該長接入號的末位節(jié)點的match_data—成員中添加企業(yè)代碼數(shù)據(jù)。同時match—data—中的接入號精確匹配標志、特征串精確匹配標志都設置為模糊匹配。此步驟是為了處理在進行業(yè)務匹配時匹配不到具體業(yè)務,但能匹配出SP即獲得SP企業(yè)代碼的情況。由上例中SP的業(yè)務指令數(shù)據(jù)所構(gòu)建的業(yè)務指令多叉樹如圖4所示,業(yè)務指多叉樹的葉子節(jié)點按照從接入號根節(jié)點往下順序的伸展。其中,標示為"8"(第二個)、"2""x""y"(右)"z""m""h"的子節(jié)點為具有實際業(yè)務匹配數(shù)據(jù)的節(jié)點,而接入號根節(jié)點、特征串根節(jié)點以及標示為"8"(第一個)、"1""6""y"(左)"a"的節(jié)點為支持上述節(jié)點所添加的多叉樹節(jié)點。如圖4中第一個特征串根節(jié)點之前為"8"、"8"、"2"、"1"節(jié)點,第二個特征串根節(jié)點之前為"8"、"8"、"6"節(jié)點,即表示存在著"8821"和"886"的長接入號;第一個特征串根節(jié)點下面有"x"、"y"和"y"、"z"節(jié)點,表示存在"xy"和"yz"的特征串;圖中,"y"(左)等節(jié)點上引出的數(shù)據(jù),表示長接入號為"8821"、特征串為"xy"的業(yè)務指令所對應的業(yè)務匹配數(shù)據(jù)。請參考圖5,本實施例業(yè)務匹配的操作流程分為如下步驟1.將用戶業(yè)務申請消息中的指令內(nèi)容的所有字符轉(zhuǎn)換為小寫;2.根據(jù)用戶業(yè)務申請消息中的發(fā)送號碼在多叉樹中進行查找,找出發(fā)送號碼最深所能匹配到的長接入號多叉樹節(jié)點,如圖4所示,從上往下觀察,最深的節(jié)點即最下方所能匹配到的多叉樹子節(jié)點;3.在所能匹配到的長接入號節(jié)點所指的特征串多叉樹進行匹配,查找指令內(nèi)容最深所能匹配到的特征串節(jié)點;若查找到,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果返回;4.如果特征串多叉樹沒有匹配的數(shù)據(jù),則結(jié)果返回到上一層長接入號節(jié)點進行匹配,依此類推重復第3、4步;如果退回到某一層節(jié)點時,其match—data—中的企業(yè)代碼字段有值,但業(yè)務代碼字段沒有值,則認為已匹配到該SP的接入號,此時直接返回該SP的企業(yè)代碼信息,流程結(jié)束;5.如果直到退回到長接入號樹的根節(jié)點還沒有匹配成功,則返回匹配失敗。以前述〈例一〉中的數(shù)據(jù)為例若用戶發(fā)送"xx"到"8821",根據(jù)上面的多叉樹,可以很直觀的看出,經(jīng)過5次檢索,就找到了長接入號為"8821",特征串為"x"的M0匹配指令。若用戶發(fā)送"xx"到"886",首先判斷"886"下沒有匹配的指令,則退回上一層繼續(xù)匹配,"88"下面也沒有匹配的指令?;谇笆鰧P短接入號末位節(jié)點的處理,發(fā)現(xiàn)"88"節(jié)點的match—data—成員中企業(yè)代碼有值但業(yè)務代碼為空,則可確定走到了SP的短接入號節(jié)點,此時雖然沒有匹配到業(yè)務,但仍然得到對應的企業(yè)代碼信息,匹配結(jié)束。用戶發(fā)送"xx"到"86",根據(jù)長接入號檢索時根本找不到業(yè)務信息,也沒有SP信息,所以匹配失敗。作為本發(fā)明的另一方面,還提供一種移動通訊的業(yè)務匹配系統(tǒng),它包括如下部分長接入號多叉樹建立裝置,用于按照從高位到低位的順序以各長接入號的每一位作為一個長接入號節(jié)點,建立長接入號多叉樹;特征串多叉樹建立裝置,用于按照從高位到低位的順序以各特征串的每一位作為一個特征串節(jié)點加入長接入號多叉樹后,建立特征串多叉樹;第一數(shù)據(jù)添加裝置,用于為各特征串的末位節(jié)點添加業(yè)務匹配數(shù)據(jù);長接入號查找裝置,用于在長接入號多叉樹中查找發(fā)送號碼最深所能匹配到的長接入號節(jié)點;特征串查找裝置,用于在所能匹配到的長接入號節(jié)點所指的特征串多叉樹中,查找指令內(nèi)容最深所能匹配到的特征串節(jié)點,當未査找到時,若有上層長接入號節(jié)點,則返回上層長接入號節(jié)點查找,若無上層長接入號節(jié)點,則匹配失敗,當査找到時,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果。進一步的,還包括精確匹配判斷裝置,用于查找到時判斷接入號精確匹配標志和特征串精確匹配標志的狀態(tài)是否為有效,若均無效,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果;若接入號精確匹配標志和/或特征串精確匹配標志有效,則判斷發(fā)送號碼與長接入號的長度和/或指令內(nèi)容與特征串的長度是否相等,若相等則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果。還包括第二數(shù)據(jù)添加裝置,用于對對應空特征串的長接入號的末位節(jié)點添加業(yè)務匹配數(shù)據(jù);所述特征串査找裝置在未查找到指令內(nèi)容匹配的特征串節(jié)點時,若長接入號節(jié)點帶有業(yè)務匹配數(shù)據(jù)且特征串精確匹配標志的狀態(tài)被判斷為無效,以該業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果。還包括第三數(shù)據(jù)添加裝置,用于對無相應空特征串的短接入號的末位節(jié)點添加企業(yè)代碼,并將接入號精確匹配標志和特征串精確匹配標志的狀態(tài)設為無效;所述特征串査找裝置在返回到長接入號多叉樹的某一層節(jié)點存在企業(yè)代碼有值而業(yè)務代碼無值的業(yè)務匹配數(shù)據(jù),則以該企業(yè)代碼作為匹配結(jié)果。本發(fā)明采用基于多叉樹的業(yè)務指令匹配方法,對于一次業(yè)務請求的匹配次數(shù)基本上只與業(yè)務指令的長接入號和特征串的位數(shù)有關。以〈例二〉中的MO指令數(shù)據(jù)的匹配操作為例,〈例二〉中,采用現(xiàn)有的M0哈希散列算法需要進行201次匹配,而采用本發(fā)明基于多叉樹的指令匹配方法時,由于特征串長度為4,當長接入號為"888888"和"88888"時各比較4次,所以當進行第9次比較時就可以找到所需要的數(shù)據(jù)了。顯然,本發(fā)明匹配方法的業(yè)務匹配效率較現(xiàn)有技術(shù)更高。以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)朗的具體實施只局限于這些說明。對于本發(fā)明所屬
技術(shù)領域:
的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發(fā)明的Y呆護范圍。權(quán)利要求1.一種移動通訊的業(yè)務匹配方法,用于將業(yè)務申請消息匹配到預先設置的業(yè)務指令,業(yè)務申請消息包括發(fā)送號碼和指令內(nèi)容,業(yè)務指令包括根據(jù)短接入號擴展的長接入號和特征串,其特征在于該匹配方法包括以下步驟A1、設置接入號根節(jié)點,并根據(jù)預先設置的業(yè)務指令,按照從高位到低位的順序?qū)⒏鏖L接入號的每一位作為一個長接入號節(jié)點加入,建立長接入號多叉樹;B1、按照從高位到低位的順序?qū)⒏魈卣鞔拿恳晃蛔鳛橐粋€特征串節(jié)點加入,建立特征串多叉樹,將長接入號的末位節(jié)點指向?qū)奶卣鞔嗖鏄?,并為各特征串的末位?jié)點添加業(yè)務匹配數(shù)據(jù);C1、根據(jù)業(yè)務申請消息,在長接入號多叉樹中查找發(fā)送號碼最深所能匹配到的長接入號節(jié)點;D1、在所能匹配到的長接入號節(jié)點所指的特征串多叉樹中,查找指令內(nèi)容最深所能匹配到的特征串節(jié)點,若未查找到,進入步驟E1,若查找到,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果;E1、若有上層長接入號節(jié)點,則返回上層長接入號節(jié)點并再次執(zhí)行步驟D1,若無上層長接入號節(jié)點,則匹配失敗。2.如權(quán)利要求1所述的移動通訊的業(yè)務匹配方法,其特征在于接入號根節(jié)點包含長度為10且用于指向其下層節(jié)點的子節(jié)點指針數(shù)組,各長接入號節(jié)點包含用于指向其上層節(jié)點的父節(jié)點指針、長度為10且用于指向其下層節(jié)點的子節(jié)點指針數(shù)組以及用于指向其對應的特征串多叉樹的指針;各特征串節(jié)點包含用于指向其上層節(jié)點的父節(jié)點指針、長度為256且用于指向其下層節(jié)點的子節(jié)點指針數(shù)組。3.如權(quán)利要求1所述的移動通訊的業(yè)務匹配方法,其特征在于所述步驟Bl還包括在長接入號的末位節(jié)點和特征串的首位節(jié)點之間加入特征串根節(jié)點,特征串根節(jié)點包含用于指向長接入號的末位節(jié)點的父節(jié)點指針、長度為256且用于指向其下層節(jié)點的子節(jié)點指針數(shù)組,長接入號的末位節(jié)點用于指向其對應的特征串多叉樹的指針指向特征串根節(jié)點。4.如權(quán)利要求1至3任意一項所述的移動通訊的業(yè)務匹配方法,其特征在于所述業(yè)務匹配數(shù)據(jù)包括接入號精確匹配標志和特征串精確匹配標志;所述步驟D1包括以下步驟Dll、在所能匹配到的長接入號節(jié)點所指的特征串多叉樹中,査找指令內(nèi)容最深所能匹配到的特征串節(jié)點,若未査找到,進入步驟E1;D12、若查找到,則判斷接入號精確匹配標志和特征串精確匹配標志的狀態(tài)是否為有效,若均無效,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果,若接入號精確匹配標志和/或特征串精確匹配標志有效,則判斷發(fā)送號碼與長接入號的長度和/或指令內(nèi)容與特征串的長度是否相等;D13、若相等,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果;否則,進入步驟E1。5.如權(quán)利要求4所述的移動通訊的業(yè)務匹配方法,其特征在于所述步驟Al中,若長接入號對應的特征串為空,則為該長接入號的末位節(jié)點添加業(yè)務匹配數(shù)據(jù);所述步驟Dl中,當未查找到指令內(nèi)容匹配的特征串節(jié)點時,先判斷長接入號節(jié)點是否包含業(yè)務匹配數(shù)據(jù),是則判斷特征串精確匹配標志的狀態(tài)是否為有效,若為無效則以該業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果。6.如權(quán)利要求5所述的移動通訊的業(yè)務匹配方法,其特征在于所述業(yè)務匹配數(shù)據(jù)還包括企業(yè)代碼、業(yè)務代碼和操作類型。7.如權(quán)利要求6所述的移動通訊的業(yè)務匹配方法,其特征在于在所述步驟Cl之前還包括以下步驟判斷是否存在對應特征串為空的長接入號,若存在則判斷該長接入號是否等于短接入號,若為短接入號則執(zhí)行步驟ci,否則,為短接入號的末位節(jié)點添加企業(yè)代碼,并將接入號精確匹配標志和特征串精確匹配標志的狀態(tài)設為無效。8.如權(quán)利要求7所述的移動通訊的業(yè)務匹配方法,其特征在于所述步驟El中,若返回到長接入號多叉樹的某一層節(jié)點時,該長接入號節(jié)點有業(yè)務匹配數(shù)據(jù),且其中的企業(yè)代碼有值而業(yè)務代碼無值,則以該企業(yè)代碼作為匹配結(jié)果。9.如權(quán)利要求4所述的移動通訊的業(yè)務匹配方法,其特征在于所述步驟Bl還包括將特征串的所有字符轉(zhuǎn)換為小寫或大寫。10.—種移動通訊的業(yè)務匹配系統(tǒng),用于將業(yè)務申請消息匹配到預先設置的業(yè)務指令,業(yè)務申請消息包括發(fā)送號碼和指令內(nèi)容,業(yè)務指令包括根據(jù)短接入號擴展的長接入號和特征串,其特征在于該匹配系統(tǒng)包括長接入號多叉樹建立裝置,用于按照從高位到低位的順序以各長接入號的每一位作為一個長接入號節(jié)點,建立長接入號多叉樹;特征串多叉樹建立裝置,用于按照從高位到低位的順序以各特征串的每一位作為一個特征串節(jié)點加入長接入號多叉樹后,建立特征串多叉樹;第一數(shù)據(jù)添加裝置,用于為各特征串的末位節(jié)點添加業(yè)務匹配數(shù)據(jù);長接入號查找裝置,用于在長接入號多叉樹中查找發(fā)送號碼最深所能匹配到的長接入號節(jié)點;特征串查找裝置,用于在所能匹配到的長接入號節(jié)點所指的特征串多叉樹中,查找指令內(nèi)容最深所能匹配到的特征串節(jié)點,當未査找到時,若有上層長接入號節(jié)點,則返回上層長接入號節(jié)點查找,若無上層長接入號節(jié)點,則匹配失敗,當査找到時,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果。11.如權(quán)利要求10所述的移動通訊的業(yè)務匹配系統(tǒng),其特征在于還包括精確匹配判斷裝置,用于查找到時判斷接入號精確匹配標志和特征串精確匹配標志的狀態(tài)是否為有效,若均無效,則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果;若接入號精確匹配標志和/或特征串精確匹配標志有效,則判斷發(fā)送號碼與長接入號'的長度和/或指令內(nèi)容與特征串的長度是否相等,若相等則以該特征串節(jié)點的業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果。12.如權(quán)利要求10所述的移動通訊的業(yè)務匹配系統(tǒng),其特征在于還包括第二數(shù)據(jù)添加裝置,用于對對應空特征串的長接入號的末位節(jié)點添加業(yè)務匹配數(shù)據(jù);所述特征串查找裝置在未査找到指令內(nèi)容匹配的特征串節(jié)點時,若長接入號節(jié)點帶有業(yè)務匹配數(shù)據(jù)且特征串精確匹配標志的狀態(tài)被判斷為無效,以該業(yè)務匹配數(shù)據(jù)作為匹配結(jié)果。13.如權(quán)利要求12所述的移動通訊的業(yè)務匹配系統(tǒng),其特征在于還包括第三數(shù)據(jù)添加裝置,用于對無相應空特征串的短接入號的末位節(jié)點添加企業(yè)代碼,并將接入號精確匹配標志和特征串精確匹配標志的狀態(tài)設為無效;所述特征串査找裝置在返回到長接入號多叉樹的某一層節(jié)點時,若該長接入號節(jié)點存在企業(yè)代碼有值而業(yè)務代碼無值的業(yè)務匹配數(shù)據(jù),則以該企業(yè)代碼作為匹配結(jié)果。全文摘要本發(fā)明公開了一種移動通訊的業(yè)務匹配方法,包括以下步驟按照從高位到低位的順序?qū)⒏鏖L接入號的每一位作為一個長接入號節(jié)點加入,建立長接入號多叉樹;按照從高位到低位的順序?qū)⒏魈卣鞔拿恳晃蛔鳛橐粋€特征串節(jié)點加入,建立特征串多叉樹;在長接入號多叉樹中查找發(fā)送號碼最深所能匹配到的長接入號節(jié)點;在所能匹配到的長接入號節(jié)點所指的特征串多叉樹中,查找指令內(nèi)容最深所能匹配到的特征串節(jié)點,若未查找到,則返回上層長接入號節(jié)點查找。本發(fā)明還公開了一種移動通訊的業(yè)務匹配系統(tǒng)。采用本發(fā)明,能在實現(xiàn)業(yè)務指令準確匹配的基礎上,提高用戶業(yè)務請求的處理效率。文檔編號G06F17/30GK101516086SQ20081006538公開日2009年8月26日申請日期2008年2月21日優(yōu)先權(quán)日2008年2月21日發(fā)明者劉志堯,廖炳才,李升林,李繼勇申請人:卓望數(shù)碼技術(shù)(深圳)有限公司