專利名稱:一種gmlc中用戶標(biāo)識的快速轉(zhuǎn)換算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是3G系統(tǒng)GMLC(移動位置中心網(wǎng)關(guān))設(shè)備中的應(yīng)用業(yè)務(wù)流程,具體應(yīng)用于用戶標(biāo)識到整數(shù)值的轉(zhuǎn)換,并作為關(guān)鍵字進(jìn)行hash查找的一種GMLC中用戶標(biāo)識的快速轉(zhuǎn)換算法。
背景技術(shù):
GMLC是客戶端(Client)通過3G定位系統(tǒng)獲取用戶位置信息的過程中一個關(guān)鍵設(shè)備,GMLC的主要完成以下功能客戶端的接入控制功能GMLC用于管理與LCF(定位客戶端功能體)之間的Le接口,GMLC對客戶端的Client ID(客戶端標(biāo)識符)、Password(密碼)進(jìn)行驗證,對客戶端的請求頻率進(jìn)行控制,對Le接口的消息合法性進(jìn)行檢查,調(diào)度設(shè)備內(nèi)部定位處理流程,發(fā)送消息到外部設(shè)備[HLR(歸屬位置寄存器)、SGSN(GPRS服務(wù)節(jié)點(diǎn))、MSC(移動交互中心)、數(shù)據(jù)庫]或者從這些設(shè)備接收消息。
客戶端的鑒權(quán)功能GMLC對客戶端的簽約類型進(jìn)行鑒權(quán),針對發(fā)起者和被定位用戶對客戶端的授權(quán)用戶列表,阻塞用戶列表進(jìn)行搜索,對發(fā)起者和被定位用戶的簽約信息進(jìn)行檢查,對被定位用戶的黑盒和白盒進(jìn)行匹配。
GMLC操作維護(hù)功能完成對GMLC的預(yù)配置和動態(tài)配置,GMLC在運(yùn)行的過程中各種統(tǒng)計指標(biāo)的統(tǒng)計,運(yùn)行狀態(tài)的監(jiān)視,各種異常情況的匯報。
GMLC計費(fèi)功能完成每次定位操作相關(guān)計費(fèi)的計費(fèi)信息的收集,并且將計費(fèi)信息報告給CGF。
在GMLC完成這些定位功能的過程中,在GMLC設(shè)備內(nèi)部建立了對應(yīng)定位流程的上下文(context),負(fù)責(zé)流程中相關(guān)定位參數(shù)的管理。這就需要通過用戶的IMSl(國際移動用戶標(biāo)識符)、MSISDN(移動用戶電話號碼)、IMEI(國際移動設(shè)備標(biāo)識符)或者Client(客戶端)的名稱找到定位流程的上下文。
典型的查找方法是用IMSI、MSISDN、IMEI或者Client(客戶端)名稱進(jìn)行字符串的ASCII碼值相加,轉(zhuǎn)換為整數(shù)值直接作為關(guān)鍵字進(jìn)行hash查找,但是這種直接的算法產(chǎn)生的關(guān)鍵字不能保證唯—性,導(dǎo)致采用用戶標(biāo)識定位上下文時會出現(xiàn)碰撞,降低了系統(tǒng)的性能。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于提供一種GMLC中用戶標(biāo)識的快速轉(zhuǎn)換算法,本發(fā)明中采取了一種新的hash算法,對關(guān)鍵字的選取做了改進(jìn),采用字符位置加權(quán)算法,將字符串轉(zhuǎn)換成32位的整數(shù)值,并能夠保證關(guān)鍵字的唯一的一種GMLC中用戶標(biāo)識的快速轉(zhuǎn)換算法。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是一種GMLC中用戶標(biāo)識的快速轉(zhuǎn)換算法,其特征在于通過字符位置加權(quán)算法,把客戶端名稱或IMSI或MSISDN或MEI字符串轉(zhuǎn)換為整數(shù)類型的Hash(哈希)關(guān)鍵字,組成Hash表;然后根據(jù)Hash關(guān)鍵字進(jìn)行快速查找和處理;所述的字符位置加權(quán)算法,是將字符串中的每個字符的相應(yīng)權(quán)重數(shù)乘以它的位置序號所得到的整數(shù)值累加,得到用于hash查找的關(guān)鍵字;所述的字符權(quán)重數(shù)為該字符的ASCII碼值或者其它編碼。
如上所述的GMLC中用戶標(biāo)識的快速轉(zhuǎn)換算法,其特征在于上述算法分別用于①、鑒權(quán)流程中對客戶端上下文的查找;②、收到路由響應(yīng)后,以MSISDN或IMSI為關(guān)鍵字,將用戶上下文id插入哈希表的流程;③、立即請求處理流程和延遲請求處理流程中對目標(biāo)ue上下文的哈希查找。
本發(fā)明的原理是GMLC為了通過hash查找方法找到對應(yīng)上下文,必須把Client name(客戶端名稱)、IMSI、MSISDN、IMEI等字符串轉(zhuǎn)換為整數(shù)類型的hash關(guān)鍵字,便于hash函數(shù)根據(jù)關(guān)鍵字查找對應(yīng)的Client上下文和UE上下文。
本發(fā)明中采取了一種新的hash算法,對關(guān)鍵字的選取做了改進(jìn),采用字符位置加權(quán)算法,將字符串轉(zhuǎn)換成32位的整數(shù)值,并能夠保證關(guān)鍵字的唯一。
圖1是GMLC對客戶端鑒權(quán)流程圖。
圖2是客戶端hash查找流程圖。
圖3是將上下文id插入msisdn或imsi哈希表流程。
圖4是收到立即或延遲請求后在哈希表中查找目標(biāo)ue,根據(jù)查找結(jié)果發(fā)送路由請求或位置請求的流程。
具體實施例方式
以下結(jié)合附圖對本發(fā)明中的hash查找算法進(jìn)行說明。
本發(fā)明的技術(shù)方案是根據(jù)IMSI、MSISDN、IMEI和Client name的唯—性,把字符串中的字符和其對應(yīng)位置(字符串中的字符權(quán)重)相乘,然后求和,取得hash關(guān)鍵字。這樣取出的hash關(guān)鍵字能夠和對應(yīng)字符串一一對應(yīng),便于hash查找。
key=Σii=1,nCi*Wi]]>i——符串的位置號,從左到右依次為1,2,3......n。
C——字符串中的某個位置上的字符;W——符權(quán)重,取值為字符在字符串中的位置。
舉例如下如Client name為abcde(運(yùn)算過程對應(yīng)ASCII值參加運(yùn)算,a、b、c、d、e對應(yīng)的ASCII分別為97、98、99、100、101),計算過程為key=97×1+98×2+99×3+100×4+101×5=1495如IMSI(或者M(jìn)SISDN、IMEI)為35279(3、5、2、7、9對應(yīng)ASCII值分別為51、53、50、55、57),計算過程為key=51×1+53×2+50×3+55×4+57×5=812圖1是GMLC中收到位置請求后對client的鑒權(quán)流程。
本發(fā)明中所涉及的client鑒權(quán)流程步驟101,收到來自client的定位請求,步驟102,取出請求中的client名稱,步驟103,在hash表中查找client名稱,步驟104,判斷103步中的查找是否成功,如果成功,步驟105返回鑒權(quán)成功,如果失敗,步驟106返回鑒權(quán)失敗。
圖2是客戶端hash查找流程圖。
正如以上所討論的,步驟103中對發(fā)起請求的client進(jìn)行hash查找。對應(yīng)本發(fā)明的hash算法,步驟201,取出client名稱字符串,步驟202,依次取一個字符的ASCII碼值,步驟203,將該字符的ASCII碼值乘以該字符的位置(從1開始),步驟204,判斷是否取完所有字符,如果沒有取完,返回步驟202,取下一個字符;如果取完,執(zhí)行步驟205,將結(jié)果值作為關(guān)鍵字查找hash表,步驟206,判斷查找是否成功,如果成功,執(zhí)行步驟207,根據(jù)hash地址取出client上下文索引號并返回給程序,如果查找失敗,執(zhí)行步驟208,返回查找失敗。
除了對client的上下文查找采用這種hash算法,對ue上下文的查找同樣采取這種算法,只不過client名稱字符串換作MSISDN、IMSI、IMEI等字符串。
圖3是收到路由響應(yīng)后將上下文id插入MSISDN或IMSI哈希表流程。
如圖步驟301,GMLC收到SGSN返回的目標(biāo)ue的路由響應(yīng)消息,步驟302,判斷目標(biāo)ue的類型,如果是MSISDN類型,進(jìn)入步驟303,依次取一個MSISDN字符的ASCII值,步驟304,將碼值乘以字符序號,累加到結(jié)果值,步驟305,判斷是否取完所有字符,如果沒有取完,轉(zhuǎn)到步驟303,如果取完,進(jìn)入步驟306,將結(jié)果值作為關(guān)鍵字,將上下文id插入MSISDN的哈希表。
如果步驟302判斷是IMSI類型的ue,進(jìn)入步驟307,依次取一個IMSI字符的ASCII值,步驟308,將碼值乘以字符序號,累加到結(jié)果值,步驟309,判斷是否取完所有字符,如果沒有取完,轉(zhuǎn)到步驟307,如果取完,進(jìn)入步驟310,將結(jié)果值作為關(guān)鍵字,將上下文id插入IMSI的哈希表。
圖4是收到立即或延遲請求后在哈希表中查找目標(biāo)ue,根據(jù)查找結(jié)果發(fā)送路由請求或位置請求的流程。
如圖步驟401,GMLC收到client的立即或延遲請求消息,步驟402,從請求消息中取出目標(biāo)ue的類型和值。步驟403,判斷目標(biāo)ue類型,如果是MSISDN類型,執(zhí)行步驟404,依次取一個MSISDN字符的ASCII值,步驟405,將碼值乘以字符序號,累加到結(jié)果值,步驟406,判斷是否取完所有字符,如果沒有取完,轉(zhuǎn)到步驟404,如果取完,執(zhí)行步驟407,將結(jié)果值作為關(guān)鍵字查找msisdn的哈希表,步驟412,判斷查找是否成功,如果成功,執(zhí)行步驟413,發(fā)送位置請求消息;如果查找不成功,執(zhí)行步驟414,發(fā)送路由請求消息。
步驟403中如果是IMSI類型,執(zhí)行步驟408,依次取一個IMSI字符的ASCII值,步驟409,將碼值乘以字符序號,累加到結(jié)果值,步驟410,判斷是否取完所有字符,如果沒有取完,轉(zhuǎn)到步驟408,如果取完,執(zhí)行步驟411,將結(jié)果值作為關(guān)鍵字查找imsi的哈希表,進(jìn)入步驟412,以下步驟同上所述。
以上結(jié)合實例對本發(fā)明作了說明,應(yīng)指出,本領(lǐng)域技術(shù)人員可以做出各種形式的和細(xì)節(jié)上的改變,而不偏離由所附權(quán)利要求所確定的本發(fā)明的精神和范圍。
權(quán)利要求
1.一種GMLC中用戶標(biāo)識的快速轉(zhuǎn)換算法,其特征在于通過字符位置加權(quán)算法,把客戶端名稱或IMSI或MSISDN或MEI字符串轉(zhuǎn)換為整數(shù)類型的Hash(哈希)關(guān)鍵字,組成Hash表;然后根據(jù)Hash關(guān)鍵字進(jìn)行快速查找和處理;所述的字符位置加權(quán)算法,是將字符串中的每個字符的相應(yīng)權(quán)重數(shù)乘以它的位置序號所得到的整數(shù)值累加,得到用于hash查找的關(guān)鍵字;所述的字符權(quán)重數(shù)為該字符的ASCII碼值或者其它編碼。
2.如權(quán)利要求1所述的GMLC中用戶標(biāo)識的快速轉(zhuǎn)換算法,其特征在于上述算法分別用于①、鑒權(quán)流程中對客戶端上下文的查找;②、收到路由響應(yīng)后,以MSISDN或IMSI為關(guān)鍵字,將用戶上下文id插入哈希表的流程;③、立即請求處理流程和延遲請求處理流程中對目標(biāo)ue上下文的哈希查找。
全文摘要
一種GMLC中用戶標(biāo)識的快速轉(zhuǎn)換算法,其特征在于通過字符位置加權(quán)算法,把客戶端名稱或IMSI或MSISDN或MEI字符串轉(zhuǎn)換為整數(shù)類型的Hash(哈希)關(guān)鍵字,組成Hash表;然后根據(jù)Hash關(guān)鍵字進(jìn)行快速查找和處理;所述的字符位置加權(quán)算法,是將字符串中的每個字符的相應(yīng)權(quán)重數(shù)乘以它的位置序號所得到的整數(shù)值累加,得到用于hash查找的關(guān)鍵字;所述的字符權(quán)重數(shù)為該字符的ASCII碼值或者其它編碼。能夠保證關(guān)鍵字的唯一,提高了系統(tǒng)的性能。
文檔編號H04W4/18GK1658702SQ20051001845
公開日2005年8月24日 申請日期2005年3月25日 優(yōu)先權(quán)日2005年3月25日
發(fā)明者張運(yùn)坡, 鄭亮 申請人:北京北方烽火科技有限公司