專利名稱:一種Diameter消息的封裝、解封裝方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,更具體地說,涉及一種Diameter消息的封裝、解封 裝方法和裝置。
背景技術(shù):
Diameter 協(xié)議是由互聯(lián)網(wǎng)工程任務(wù)組(IETF,Internet Engineering Task Force)開 發(fā)的認證(Authentication)、授權(quán)(Authorization)和計費(Accounting)的 AAA 協(xié)議,用來
給眾多的接入技術(shù)提供AAA服務(wù)。Diameter協(xié)議由兩部分組成Diameter基本協(xié)議和Diameter應(yīng)用協(xié)議。Diameter 基本協(xié)議用來傳遞Diameter數(shù)據(jù)單元、協(xié)商能力集、處理錯誤并提供可擴展性。Diameter 應(yīng)用協(xié)議部分則定義了特定應(yīng)用的功能和數(shù)據(jù)單元,并且每個Diameter應(yīng)用都具有單獨定義。Diameter 基本協(xié)議可以使用傳輸控制協(xié)議(TCP,Transmission Control Protocol) 或者流控制傳輸協(xié)議(SCTP,Stream Control Transmission Protocol)作為傳輸協(xié)議。 Diameter應(yīng)用協(xié)議在Diameter基本協(xié)議的基礎(chǔ)上進行了擴展,以完成特定的接入應(yīng)用業(yè)務(wù)。而目前,由于Diameter應(yīng)用協(xié)議的多樣性,在對Diameter進行應(yīng)用的過程中,
需要為不同的Diameter應(yīng)用協(xié)議提供對應(yīng)的接口,使這些接口為對應(yīng)的Diameter應(yīng)用 協(xié)議提供特定的編解碼功能。例如在在線計費應(yīng)用中,電信智能網(wǎng)業(yè)務(wù)平臺上的業(yè) 務(wù)控制點(SCP,Service Control Point)上承載著多種電信業(yè)務(wù),而對端的在線計費系統(tǒng) (OCS, OnlineChargingSystem)提供在線計費功能。通過在電信智能網(wǎng)業(yè)務(wù)平臺和在線 計費系統(tǒng)之間進行Diameter消息的交互,完成計費事務(wù)。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)存在如下問題由于SCP—般針 對一種Diameter應(yīng)用協(xié)議提供一套接口,而Diameter協(xié)議編解碼功能是強應(yīng)用相關(guān)的, 同時SCP上可能承載多種不同的業(yè)務(wù),并且每種業(yè)務(wù)可能用不同的應(yīng)用協(xié)議與OCS進行 交互,這樣就必須提供多套接口,并相應(yīng)需要開發(fā)大量的接口。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實施例提供一種Diameter消息封裝、解封裝方法和裝置,可 以有效減少Diameter消息接口的開發(fā)和維護的工作量。本發(fā)明實施例是這樣實現(xiàn)的本發(fā)明實施例提供了一種Diameter消息封裝方法,包括根據(jù)業(yè)務(wù)應(yīng)用所提供數(shù)據(jù)信息創(chuàng)建Diameter對象,其中,所述Diameter對象的 數(shù)據(jù)域包括多個Diameter AVP對象,所述Diameter AVP對象的數(shù)據(jù)域包括所述業(yè)務(wù)應(yīng)用
所提供的所述數(shù)據(jù)信息;提取所述Diameter對象的頭域和數(shù)據(jù)域,組成Diameter消息。
本發(fā)明實施例提供了一種Diameter消息解封裝方法,包括提取所接收到的Diameter消息的消息頭和數(shù)據(jù)部分,分別組成Diameter對象的頭域和數(shù)據(jù)域;根據(jù)所述Diameter對象的數(shù)據(jù)域獲取Diameter AVP對象。本發(fā)明實施例提供了 一種Diameter消息封裝平臺,包括Diameter對象創(chuàng)建單元,用于根據(jù)業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息創(chuàng)建Diameter對 象;Diameter消息組成單元,用于提取所創(chuàng)建的Diameter對象的頭域和數(shù)據(jù)域,組 成Diameter消息。本發(fā)明實施例提供了 一種Diameter消息解封裝平臺,包括Diameter對象獲取單元,用于根據(jù)所接收到的Diameter消息的消息頭和數(shù)據(jù)部 分,分別組成Diameter對象的頭域和數(shù)據(jù)域;Diameter AVP對象獲取單元,用于根據(jù)所述Diameter對象的數(shù)據(jù)域獲取Diameter AVP對象。與現(xiàn)有技術(shù)相比,本發(fā)明實施例提供的技術(shù)方案具有以下優(yōu)點和特點本發(fā) 明實施例所提供的技術(shù)方案,通過將不同業(yè)務(wù)應(yīng)用的數(shù)據(jù)信息以統(tǒng)一的封裝格式進行封 裝,生成通用的Diameter消息,以供與對端平臺進行信息交互;而當接收到對端平臺發(fā) 送的Diameter消息后,還可以將該Diameter消息以預(yù)先規(guī)定的格式進行解封裝,獲取不 同業(yè)務(wù)應(yīng)用的數(shù)據(jù)信息。本發(fā)明實施例所提供的技術(shù)方案可以有效減少接口的開發(fā)量和 后續(xù)的維護工作,并相應(yīng)降低在接口維護過程中其他業(yè)務(wù)應(yīng)用所受影響。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或 現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅 是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提 下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例所涉及的一種Diameter消息封裝方法流程圖;圖2為本發(fā)明實施例所涉及的一種Diameter消息解封裝方法流程圖;圖3為本發(fā)明實施例所涉及的一種Diameter消息封裝平臺結(jié)構(gòu)示意圖;圖4為本發(fā)明實施例所涉及的一種Diameter消息封裝平臺中某一單元的結(jié)構(gòu)示意 圖;圖5為本發(fā)明實施例所涉及的一種Diameter消息封裝平臺中另一單元的結(jié)構(gòu)示意 圖;圖6為本發(fā)明實施例所涉及的一種Diameter消息解封裝平臺結(jié)構(gòu)示意圖;圖7為本發(fā)明實施例所涉及的另一種Diameter消息封裝方法流程圖;圖8為本發(fā)明實施例所涉及的另一種Diameter消息解封裝方法流程圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施 例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得 的所有其他實施例,都屬于本發(fā)明保護的范圍。 本發(fā)明實施例提供了一種Diameter消息封裝方法,該方法具體流程如圖1所示, 包括SlOl 根據(jù)業(yè)務(wù)應(yīng)用所提供數(shù)據(jù)信息創(chuàng)建Diameter對象,其中,所述Diameter 對象的數(shù)據(jù)域包括多個Diameter屬性值對(AVP,Attribute-Length-Value Pair)對象, DiameterAVP對象的數(shù)據(jù)域包括業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息;在SlOl中,由于Diameter對象的數(shù)據(jù)域由多個Diameter AVP對象所構(gòu)成,因 此,在創(chuàng)建Diameter對象的過程中,可以首先創(chuàng)建Diameter AVP對象,根據(jù)所創(chuàng)建的 Diameter AVP對象生成Diameter對象;當然也可以采用首先創(chuàng)建Diameter對象,再創(chuàng)建 Diameter AVP對象,并將創(chuàng)建完成的Diameter AVP對象填充至Diameter對象的數(shù)據(jù)域部分。其中,對于前面所述的兩種方法中的第一種,可以具體為由于Diameter對象的數(shù)據(jù)域中包括Diameter AVP對象,因此,可以首先進行 Diameter AVP對象的創(chuàng)建,并根據(jù)創(chuàng)建后的Diameter AVP對象進行Diameter對象的創(chuàng) 建。其中。在進行DiameterAVP對象的創(chuàng)建時,需要首先提取業(yè)務(wù)應(yīng)用所提供的各 種數(shù)據(jù)信息,例如,在進行用戶的認證業(yè)務(wù)時,所提供的數(shù)據(jù)信息可能會包括用戶的 標識信息;而在進行計費服務(wù)時,所提供的數(shù)據(jù)信息可能會包括用戶的標識信息、資 費標準等。在提取業(yè)務(wù)應(yīng)用所提供的各種數(shù)據(jù)信息后,根據(jù)所提取的數(shù)據(jù)信息構(gòu)建對 應(yīng)DiameterAVP對象的數(shù)據(jù)域,并根據(jù)所生成的DiameterAVP對象的數(shù)據(jù)域構(gòu)建對應(yīng) Diameter AVP對象的頭域,從而實現(xiàn)創(chuàng)建一個完整的Diameter AVP對象。另外,在創(chuàng) 建DiameterAVP對象時,由于業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息之間有可能存在的是并列的關(guān) 系,并且該數(shù)據(jù)信息中不包括其他子信息,例如在某用戶的一次計費過程中所提供的用 戶標識信息、通話時長信息以及資費信息等,在這種情況下所創(chuàng)建的Diameter AVP對象 可稱為原子型DiameterAVP對象。同時,還存在另外一種情況,也就是說,業(yè)務(wù)應(yīng)用 所提供的數(shù)據(jù)信息中仍包含子信息,這樣,在創(chuàng)建Diameter AVP對象時,就需要首先提 取業(yè)務(wù)應(yīng)用中所提供的最小單元信息,將該信息首先創(chuàng)建為對應(yīng)的底層DiameterAVP對 象,之后,再將這些創(chuàng)建好的底層Diameter AVP對象進行組合,生成上層底層Diameter AVP對象,在此,將這種Diameter AVP對象稱為復(fù)合型Diameter AVP對象。在創(chuàng)建Diameter AVP對象完成后,利用所創(chuàng)建的Diameter AVP對象組成 Diameter對象的數(shù)據(jù)域,根據(jù)所組成的Diameter對象的數(shù)據(jù)域,生成對應(yīng)的Diameter對 象的頭域,最終創(chuàng)建Diameter對象。而對于前面所述的兩種方法中的第二種,可以具體為首先進行Diameter對象的創(chuàng)建,之后再進行Diameter AVP對象的創(chuàng)建。此時,
需要預(yù)估業(yè)務(wù)應(yīng)用的業(yè)務(wù)量,并根據(jù)該業(yè)務(wù)量首先申請一定量的內(nèi)存,并根據(jù)所申請到 的內(nèi)存,確定Diameter對象的頭域和數(shù)據(jù)域。在創(chuàng)建Diameter對象完成之后,進行Diameter AVP對象的創(chuàng)建,該創(chuàng)建過程同 前面所述DiameterAVP的創(chuàng)建方法相同,在此不做贅述。之后,將創(chuàng)建完成的DiameterAVP對象填充至Diameter對象的數(shù)據(jù)域中即可。
S102 提取所述Diameter對象的頭域和數(shù)據(jù)域,組成Diameter消息。本發(fā)明實施例所提供的一種Diameter消息封裝方法,該方法通過將不同業(yè)務(wù)應(yīng) 用的數(shù)據(jù)信息以統(tǒng)一的封裝格式進行封裝,生成通用的Diameter消息,以供與對端平臺 進行信息交互。本發(fā)明實施例所提供的技術(shù)方案可以有效減少接口的開發(fā)量和后續(xù)的維 護工作,并相應(yīng)降低在接口維護過程中其他業(yè)務(wù)應(yīng)用所受影響。本發(fā)明實施例提供了一種Diameter消息解封裝方法,該方法具體流程如圖2所 示,包括S201 提取所接收到的Diameter消息的消息頭和數(shù)據(jù)部分,分別組成Diameter
對象的頭域和數(shù)據(jù)域;在S201中,在接收到對端平臺發(fā)送的Diameter消息后,提取該Diameter消息的 頭部,構(gòu)成Diameter對象的頭域;提取該Diameter消息的數(shù)據(jù)部分,即構(gòu)成Diameter對
象的數(shù)據(jù)域。S202 根據(jù)所述Diameter對象的數(shù)據(jù)域獲取Diameter AVP對象。在S202中,在獲取Diameter對象之后,要對其數(shù)據(jù)域中所包括的Diameter AVP
對象進行獲取,在獲取過程中,由于Diameter AVP對象有可能是原子型的,也有可能是 復(fù)合型的,因此,在完成對頂層DiameterAVP對象的獲取之后,還需要檢查該Diameter AVP對象是否還對應(yīng)有下層DiameterAVP對象,如果有,則需要對下層Diameter AVP對 象進行獲取,直至獲取全部DiameterAVP對象。有前面所述封裝過程可以得知,由于 Diameter AVP對象中包括業(yè)務(wù)應(yīng)用基本數(shù)據(jù)信息,因此,將所獲取的Diameter AVP對象 中所包括的各種進行按照所歸屬的業(yè)務(wù)應(yīng)用進行處理。本發(fā)明實施例所提供的一種Diameter消息解封裝方法,該方法通過將所接收到 的Diameter消息以預(yù)先規(guī)定的格式進行解封裝,以獲取不同業(yè)務(wù)應(yīng)用的數(shù)據(jù)信息。本發(fā) 明實施例所提供的技術(shù)方案可以有效減少接口的開發(fā)量和后續(xù)的維護工作,并相應(yīng)降低 在接口維護過程中其他業(yè)務(wù)應(yīng)用所受影響。相應(yīng)地,本發(fā)明實施例還提供了一種Diameter消息封裝平臺,該裝置結(jié)構(gòu)如圖3 所示,包括Diameter對象創(chuàng)建單元301,用于根據(jù)業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息創(chuàng)建Diameter
對象;Diameter消息組成單元302,用于提取所創(chuàng)建的Diameter對象的頭域和數(shù)據(jù)域, 組成Diameter消息。其中,對于Diameter對象創(chuàng)建單元301,還可根據(jù)Diameter對象創(chuàng)建方式的不同
做進一步劃分,可包括如圖4所述結(jié)構(gòu)第一提取子單元401,用于提取所述業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息;DiameterAVP對象創(chuàng)建子單元402,用于根據(jù)所述數(shù)據(jù)信息創(chuàng)建DiameterAVP對 象;Diameter對象創(chuàng)建子單元403,用于利用所述Diameter AVP對象組成所述 Diameter對象的數(shù)據(jù)域,根據(jù)所組成的Diameter對象的數(shù)據(jù)域,生成對應(yīng)的Diameter對
象的頭域,并利用所述Diameter對象的數(shù)據(jù)域和頭域創(chuàng)建生成所述Diameter對象。
除此以外,還可包括如圖5所示結(jié)構(gòu) Diameter對象創(chuàng)建子單元501,用于預(yù)先申請一定量內(nèi)存,根據(jù)所申請內(nèi)存生成 所述Diameter對象;第二提取子單元502,用于提取所述業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息;Diameter AVP對象創(chuàng)建子單元503,用于根據(jù)所述數(shù)據(jù)信息創(chuàng)建Diameter AVP對 象,并將所述DiameterAVP對象填充至所述Diameter對象的數(shù)據(jù)域中。本發(fā)明實施例所提供的一種Diameter消息封裝平臺,該裝置通過將不同業(yè)務(wù)應(yīng) 用的數(shù)據(jù)信息以統(tǒng)一的封裝格式進行封裝,生成通用的Diameter消息,以供與對端平臺 進行信息交互。本發(fā)明實施例所提供的技術(shù)方案可以有效減少接口的開發(fā)量和后續(xù)的維 護工作,并相應(yīng)降低在接口維護過程中其他業(yè)務(wù)應(yīng)用所受影響。另外,本發(fā)明實施例還提供了一種Diameter消息解封裝平臺,該裝置結(jié)構(gòu)如圖6 所示,包括Diameter對象獲取單元601,用于根據(jù)所接收到的Diameter消息的消息頭和數(shù)據(jù) 部分,分別組成Diameter對象的頭域和數(shù)據(jù)域;DiameterAVP對象獲取單元602,用于根據(jù)所述Diameter對象的數(shù)據(jù)域獲取 DiameterAVP 對象。本發(fā)明實施例所提供的一種Diameter消息解封裝平臺,該裝置通過將所接收到 的Diameter消息以預(yù)先規(guī)定的格式進行解封裝,以獲取不同業(yè)務(wù)應(yīng)用的數(shù)據(jù)信息。本發(fā) 明實施例所提供的技術(shù)方案可以有效減少接口的開發(fā)量和后續(xù)的維護工作,并相應(yīng)降低 在接口維護過程中其他業(yè)務(wù)應(yīng)用所受影響。結(jié)合上述方法、系統(tǒng)、裝置和具體用應(yīng)場景,對本發(fā)明所涉及的技術(shù)方案做進 一步介紹,目前,運營商為了減小運營成本以及提高設(shè)備的利用率,通常將多個電信業(yè) 務(wù)加載于一個SCP上,而該SCP可以根據(jù)具體的業(yè)務(wù)應(yīng)用通過向不同的平臺進行信息交 互為用戶提供相應(yīng)的服務(wù)。在本實施例中,以電信業(yè)務(wù)中的計費業(yè)務(wù)為例對本發(fā)明所涉 及的技術(shù)方案做一個較為詳細的介紹。具體步驟如圖7所示步驟701 SCP上的某電信業(yè)務(wù)向通用軟件開發(fā)工具包(SDK,Software Development Kit)提供計費數(shù)據(jù)信息;在步驟701中,SCP上的某電信業(yè)務(wù)需要進行計費活動,此時,該業(yè)務(wù)應(yīng)用需要 向該SCP上的通用接口提供進行計費活動所需的相關(guān)數(shù)據(jù),例如,該業(yè)務(wù)中所要計費的 用戶的標識信息、該業(yè)務(wù)的資費標準以及業(yè)務(wù)時長等信息。需要說明的是,此處所提到的通用SDK,是指該SDK可以將同一 SCP上所承載 的不同業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息按照統(tǒng)一的格式進行封裝,以生成通用的Diameter消
肩、ο步驟702 通用SDK根據(jù)該電信業(yè)務(wù)所提供的數(shù)據(jù)信息創(chuàng)建相應(yīng)的Diameter AVP對象;Diameter AVP對象存在原子型和復(fù)合型兩種形式,其中,原子型Diameter AVP 對象是指該Diameter AVP對象已不可進一步劃分,并且各個Diameter AVP之間的關(guān)
系為并列關(guān)系;以一次短信計費為例,某一 DiameterAVP對象中包含的是用戶的標識 信息,而另一 DiameterAVP對象中包含的是該條短信的資費標準,由此可以看出,該兩個DiameterAVP對象已 不可再進一步劃分。而復(fù)合型DiameterAVP對象則是各個 Diameter AVP對象以分層的形式存在,位于上層的DiameterAVP對象可以劃分為多個下 層Diameter AVP對象,以某用戶一個月的電話計費為例,在上層的某一 Diameter AVP對
象中可包含該用戶的標識信息,另一上層DiameterAVP對象中可包含此次計費的業(yè)務(wù)類 型——電話業(yè)務(wù),而在該Diameter AVP對象還可進行進一步劃分,由于電話業(yè)務(wù)可包括 長途電話業(yè)務(wù)或本地電話業(yè)務(wù),因此,下層Diameter AVP對象中可分別包含長途電話業(yè) 務(wù)的資費標準和本地電話業(yè)務(wù)的資費標準。需要說明的是,無論是原子型Diameter AVP對象還是復(fù)合型Diameter AVP對
象,均包括頭域和數(shù)據(jù)域。其中,頭域部分包括AVP碼,該AVP碼結(jié)合Vendor-ID, 可構(gòu)成該Diameter AVP對象的唯一標識,通常位于所創(chuàng)建的Diameter AVP對象的前4個 字節(jié);兩外,頭域部分還可包括消息標志位,位于所創(chuàng)建的Diameter AVP對象的第5字 節(jié),對于信息標志位,通常有V、M或P三個標識,其中V表示Vendor-ID有效、M表 示該AVP必選、P表示需要進行端對端加密;除此以外,頭域部分還可包括該Diameter AVP對象的長度以及發(fā)行商標識等信息。由于Diameter AVP對象包括原子型和復(fù)合型兩種,對于原子型Diameter AVP對 象來說,通用SDK可以根據(jù)所要進行的業(yè)務(wù)中所提供的數(shù)據(jù)直接采用設(shè)置AVP值的方式 來設(shè)置Diameter AVP對象內(nèi)容。而對于復(fù)合型Diameter AVP對象來說,則需要逐層創(chuàng) 建,即首先創(chuàng)建下層Diameter AVP對象,在完成下層Diameter AVP對象的創(chuàng)建工作后, 通用SDK調(diào)用Append AVP List將該層所創(chuàng)建好的Diameter AVP對象加入到列表中, 形成集合,然后利用集合中Diameter AVP對象的頭域和數(shù)據(jù)域分別填充至對應(yīng)的上層 DiameterAVP對象的頭域和數(shù)據(jù)以形成上層對應(yīng)DiameterAVP對象。步驟703 通用SDK根據(jù)創(chuàng)建完成的DiameterAVP對象創(chuàng)建Diameter對象;在步驟703中,Diameter對象同樣包括頭域和數(shù)據(jù)域兩部分,其中,數(shù)據(jù)域部分 包括所創(chuàng)建的DiameterAVP對象的內(nèi)容,由于Diameter AVP有原子型和復(fù)合型兩種,如 果所創(chuàng)建的Diameter AVP對象為原子型,則Diameter對象的數(shù)據(jù)域部分需要包括所有創(chuàng) 建完成的DiameterAVP對象;而如果所創(chuàng)建的Diameter AVP對象為復(fù)合型,則Diameter 對象的數(shù)據(jù)域部分只需要包括所有最上層DiameterAVP對象即可。需要說明的是,由于一個Diameter對象可能包括多個Diameter AVP對象,因此 在Diameter對象的數(shù)據(jù)域部分,每個Diameter AVP對象以首尾相接的方式存在,并且還 可以根據(jù)DiameterAVP對象的長度動態(tài)改變Diameter對象的長度。除了上述的數(shù)據(jù)域部分外,Diameter對象還包括攜帶有各種標識信息的頭域部 分,例如版本信息,通常情況位于Diameter對象頭域的第1個字節(jié);信息長度,該信 息位于Diameter對象頭域第2-4個字節(jié);消息標志位,相應(yīng)地位于Diameter對象頭域 的第5個字節(jié);消息命令碼,位于Diameter對象頭域的第6-8個字節(jié),應(yīng)用標識,位于 Diameter對象頭域的9-12個字節(jié);除此以外,還包括匹配請求和相應(yīng)以及檢測重復(fù)消息 標識等信息。需要說明的是,在本發(fā)明實施例中,是首先創(chuàng)建Diameter AVP對象,并根據(jù)創(chuàng) 建完成之后的Diameter AVP對象來創(chuàng)建Diameter對象。除了該種方法外,還可以首先進 行Diameter對象的創(chuàng)建,之后再進行Diameter AVP對象的創(chuàng)建,下面將該方法做相應(yīng)說明此時通用SDK需要對業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)量進行一個預(yù)估,并根據(jù)預(yù)估的結(jié)果申 請一定量的內(nèi)存,在申請到相應(yīng)的內(nèi)存之后,確定所創(chuàng)建的Diameter對象的頭域和數(shù)據(jù) 域。由于Diameter對象的數(shù)據(jù)域中應(yīng)該包括的是多個DiameterAVP對象,因此,需要 進行Diameter AVP對象的創(chuàng)建,此處對于Diameter AVP對象的創(chuàng)建與前面所述的方法相 同,均是通過業(yè)務(wù)應(yīng)用所提供的相應(yīng)數(shù)據(jù)來進行創(chuàng)建,此處就不再做贅述。在利用這種 方法進行Diameter對象的創(chuàng)建時,需要說明的是,由于在進行內(nèi)存的申請時,是根據(jù)預(yù) 估的業(yè)務(wù)數(shù)據(jù)量來進行申請的,因此,在遇到所申請的內(nèi)存不夠的情況時,通用SDK還 可以根據(jù)實際需要進行內(nèi)存的動態(tài)申請。步驟704:通用SDK提取所創(chuàng)建的Diameter對象的頭域和數(shù)據(jù)域,形成 Diameter消息流。在步驟704中,由于在創(chuàng)建Diameter對象的過程中,通用SDK均是按照統(tǒng)一 的格式將不同業(yè)務(wù)的數(shù)據(jù)內(nèi)容進行封裝,例如創(chuàng)建生成的Diameter對象的頭域和數(shù)據(jù) 域所包括的信息內(nèi)容以及各部分的字節(jié)長度等均有一定的標準和順序,因此,在進行 Diameter消息流的創(chuàng)建時,只需要將Diameter對象的頭域部分和數(shù)據(jù)域部分進行提取即可。步驟705 SCP將所生成的Diameter消息流發(fā)送至計費平臺。在步驟705中,在通用SDK將Diameter消息封裝生成之后,SCP將生成的
Diameter消息流利用可以識別Diameter消息的通信組件發(fā)送至對端的計費平臺,使計費 平臺根據(jù)該Diameter消息流中所攜帶的信息進行對應(yīng)業(yè)務(wù)的計費。至此,SCP通過通用SDK將不同應(yīng)用業(yè)務(wù)的數(shù)據(jù)進行封裝轉(zhuǎn)化為統(tǒng)一格式的 Diameter消息的過程已全部結(jié)束。本實施例是通過將一個SCP上的業(yè)務(wù)應(yīng)用所提供的數(shù) 據(jù)信息以統(tǒng)一的格式進行封裝,生成相應(yīng)的Diameter消息,以用于進行相關(guān)業(yè)務(wù)。如前面所述,一個SCP上很可能承載這多個業(yè)務(wù)應(yīng)用,而當該SCP接收到某個 對端平臺發(fā)送的Diameter消息后,仍然需要利用通用SDK進行對該消息的解封裝,并將 解封裝后的業(yè)務(wù)數(shù)據(jù)發(fā)送至對應(yīng)的業(yè)務(wù)應(yīng)用。其中,仍以上以實施例中所提供的計費業(yè) 務(wù)為例,對本發(fā)明所提供的技術(shù)方案做相應(yīng)介紹步驟801 SCP接收計費平臺發(fā)送的Diameter消息流;在步驟801中,SCP利用可以識別Diameter消息的通信組件接收到計費平臺發(fā) 送的Diameter消息,并執(zhí)行步驟802。步驟802 通用SDK將SCP所接收到的Diameter消息流轉(zhuǎn)化為對應(yīng)的Diameter
對象;在步驟802中,SCP在接收到計費平臺返回的計費請求消息的反饋信息之后,需 要通過通用SDK將該消息轉(zhuǎn)化為對應(yīng)的Diameter對象,在轉(zhuǎn)化過程中,只需要將所接收 到的Diameter反饋消息的消息頭提取至Diameter對象的頭域部分,而將消息的數(shù)據(jù)部分 提取至Diameter對象的數(shù)據(jù)域即可。步驟803 通用SDK獲取Diameter對象中的DiameterAVP對象; 在步驟803中,在通用SDK將所接收到的Diameter消息轉(zhuǎn)化為Diameter對象之
后,有前面所述的封裝過程可以得知,Diameter對象的數(shù)據(jù)域部分所包括的信息即為各 個Diameter AVP對象,而由于Diameter AVP對象包括原子型和復(fù)合型兩種,因此,在進行Diameter AVP對象的獲取時,SDK通過Get AVP List方法首先獲取頂層所有Diameter AVP對象內(nèi)容,如果該Diameter對象中的DiameterAVP對象為原子型,則進行到該步驟 就可獲取全部的Diameter AVP對象;如果該Diameter對象中的Diameter AVP對象為復(fù)合
型,則還需要對其他的DiameterAVP對象進行逐層獲取,直至全部獲取。步驟804 通用SDK根據(jù)所獲取的Diameter AVP對象進行業(yè)務(wù)應(yīng)用數(shù)據(jù)信息的 提取。在步驟804中,由前面所述相關(guān)內(nèi)容可以得知,Diameter AVP對象中所包含的 內(nèi)容為各種業(yè)務(wù)應(yīng)用的具體數(shù)據(jù)信息,例如所進行業(yè)務(wù)的業(yè)務(wù)標識信息、用戶的標識信 息,結(jié)合本實施例中的計費業(yè)務(wù),還包括各項通 信業(yè)務(wù)的資費標識等。那么在計費平臺 所發(fā)送的Diameter消息中,所獲取的Diameter AVP對象中相應(yīng)包含所進行業(yè)務(wù)的業(yè)務(wù)標 識信息、用戶的標識信息以及計費結(jié)果信息等。因此,在進行Diameter消息中數(shù)據(jù)信息的提取時,只需要逐個提取Diameter
AVP對象中的數(shù)據(jù)域即可,之后執(zhí)行步驟805。步驟805 通用軟件開發(fā)工具包SDK將所提取的業(yè)務(wù)應(yīng)用的數(shù)據(jù)信息發(fā)送至對 應(yīng)業(yè)務(wù)應(yīng)用。在步驟805中,由于通用SDK已將該SCP所接收到的Diameter消息中所包含的 業(yè)務(wù)數(shù)據(jù)信息進行了提取,因此可以根據(jù)所獲取的數(shù)據(jù)信息找到對應(yīng)的業(yè)務(wù)應(yīng)用,并將 該數(shù)據(jù)信息發(fā)送至對應(yīng)的業(yè)務(wù)應(yīng)用上。在上兩個實施例中,分別介紹了多業(yè)務(wù)SCP如何通過通用的SDK進行Diameter
消息的封裝和解封裝。在實際應(yīng)用過程中,由于多業(yè)務(wù)SCP可能會在一定情況下成為服 務(wù)器端設(shè)備,例如接收用戶的認證請求等業(yè)務(wù);而在一定情況下也會成為客戶端設(shè)備, 例如向計費平臺發(fā)送計費請求等。無論屬于哪種情況,多業(yè)務(wù)SCP通過通用SDK對業(yè)務(wù) 數(shù)據(jù)信息封裝生成Diameter消息和對Diameter消息解封裝生成業(yè)務(wù)數(shù)據(jù)信息的方式和過 程并沒有區(qū)別。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可 以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì) 中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括 ROM (Read-Only Memory,只讀存儲記憶體)、RAM (Random Access Memory,隨機存儲
記憶體)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā) 明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所 定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因 此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和 新穎特點相一致的最寬的范圍。
權(quán)利要求
1.一種Diameter消息封裝方法,其特征在于,包括根據(jù)業(yè)務(wù)應(yīng)用所提供數(shù)據(jù)信息創(chuàng)建Diameter對象,其中,所述Diameter對象的數(shù)據(jù) 域包括多個Diameter AVP對象,所述Diameter AVP對象的數(shù)據(jù)域包括所述業(yè)務(wù)應(yīng)用所提 供的所述數(shù)據(jù)信息;提取所述Diameter對象的頭域和數(shù)據(jù)域,組成Diameter消息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息創(chuàng) 建Diameter對象,包括提取所述業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息; 根據(jù)所述數(shù)據(jù)信息創(chuàng)建DiameterAVP對象;利用所述Diameter AVP對象組成所述Diameter對象的數(shù)據(jù)域,根據(jù)所組成的 Diameter對象的數(shù)據(jù)域,生成對應(yīng)的Diameter對象的頭域,并利用所述Diameter對象的 數(shù)據(jù)域和頭域創(chuàng)建生成所述Diameter對象。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)業(yè)務(wù)用所提供數(shù)據(jù)信息創(chuàng)建 Diameter對象,包括預(yù)先申請一定量內(nèi)存,根據(jù)所申請內(nèi)存生成所述Diameter對象,所述Diameter對象 包括頭域和數(shù)據(jù)域;提取所述業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息;根據(jù)所述數(shù)據(jù)信息創(chuàng)建DiameterAVP對象;將所述DiameterAVP對象填充至所述Diameter對象的數(shù)據(jù)域中。
4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述根據(jù)所述數(shù)據(jù)信息創(chuàng)建 DiameterAVP 對象,包括利用所述數(shù)據(jù)信息構(gòu)成所述DiameterAVP對象的數(shù)據(jù)域;根據(jù)所生成的DiameterAVP對象的數(shù)據(jù)域構(gòu)建對應(yīng)DiameterAVP對象的頭域。
5.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述根據(jù)所述數(shù)據(jù)信息創(chuàng)建對應(yīng)的 DiameterAVP 對象,包括利用所述數(shù)據(jù)信息構(gòu)成底層DiameterAVP對象的數(shù)據(jù)域;根據(jù)所生成的底層Diameter AVP對象的數(shù)據(jù)域構(gòu)建對應(yīng)底層Diameter AVP對象的頭域;根據(jù)所述數(shù)據(jù)信息創(chuàng)建對應(yīng)的底層DiameterAVP對象;根據(jù)所述將所述底層DiameterAVP對象創(chuàng)建上層DiameterAVP對象。
6.—種Diameter消息解封裝方法,其特征在于,包括提取所接收到的Diameter消息的消息頭和數(shù)據(jù)部分,分別組成Diameter對象的頭域 和數(shù)據(jù)域;根據(jù)所述Diameter對象的數(shù)據(jù)域獲取DiameterAVP對象。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述根據(jù)所述Diameter對象的數(shù)據(jù)域獲 取DiameterAVP對象,包括提取所述Diameter對象的數(shù)據(jù)域內(nèi)容,解析出其中所包括的DiameterAVP對象。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述根據(jù)所述Diameter對象的數(shù)據(jù)域獲 取DiameterAVP對象,包括提取所述Diameter對象的數(shù)據(jù)域內(nèi)容,解析出其中所包括的最上層Diameter AVP對 象,根據(jù)所述最上層DiameterAVP對象解析出對應(yīng)的下層DiameterAVP對象。
9.一種Diameter消息封裝平臺,其特征在于,包括Diameter對象創(chuàng)建單元,用于根據(jù)業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息創(chuàng)建Diameter對象; Diameter消息組成單元,用于提取所創(chuàng)建的Diameter對象的頭域和數(shù)據(jù)域,組成 Diameter 消息。
10.根據(jù)權(quán)利要求9所述的Diameter消息封裝平臺,其特征在于,所述Diameter對象創(chuàng)建單元包括第一提取子單元,用于提取所述業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息; DiameterAVP對象創(chuàng)建子單元,用于根據(jù)所述數(shù)據(jù)信息創(chuàng)建DiameterAVP對象; Diameter對象創(chuàng)建子單元,用于利用所述Diameter AVP對象組成所述Diameter對象 的數(shù)據(jù)域,根據(jù)所組成的Diameter對象的數(shù)據(jù)域,生成對應(yīng)的Diameter對象的頭域,并 利用所述Diameter對象的數(shù)據(jù)域和頭域創(chuàng)建生成所述Diameter對象;或者,Diameter對象創(chuàng)建子單元,用于預(yù)先申請一定量內(nèi)存,根據(jù)所申請內(nèi)存生成所述 Diameter 對象;第二提取子單元,用于提取所述業(yè)務(wù)應(yīng)用所提供的數(shù)據(jù)信息; Diameter AVP對象創(chuàng)建子單元,用于根據(jù)所述數(shù)據(jù)信息創(chuàng)建Diameter AVP對象,并 將所述DiameterAVP對象填充至所述Diameter對象的數(shù)據(jù)域中。
11.一種Diameter消息解封裝平臺,其特征在于,包括Diameter對象獲取單元,用于根據(jù)所接收到的Diameter消息的消息頭和數(shù)據(jù)部分, 分別組成Diameter對象的頭域和數(shù)據(jù)域;Diameter AVP對象獲取單元,用于根據(jù)所述Diameter對象的數(shù)據(jù)域獲取Diameter AVP對象。
全文摘要
本發(fā)明實施例公開了一種Diameter消息封裝、解封裝方法和裝置,其中封裝方法包括根據(jù)業(yè)務(wù)應(yīng)用所提供數(shù)據(jù)信息創(chuàng)建Diameter對象,其中,所述Diameter對象的數(shù)據(jù)域部分包括多個Diameter AVP對象,所述DiameterAVP對象的數(shù)據(jù)域部分包括所述業(yè)務(wù)應(yīng)用所提供的所述數(shù)據(jù)信息;提取所述Diameter對象的頭域和數(shù)據(jù)域,組成Diameter消息;而在解封裝階段,提取所接收到的Diameter消息的消息頭和數(shù)據(jù)部分,分別組成Diameter對象的頭域和數(shù)據(jù)域;根據(jù)所述Diameter對象的數(shù)據(jù)域獲取Diameter AVP對象。本發(fā)明實施例所提供的技術(shù)方案,通過將不同業(yè)務(wù)應(yīng)用的數(shù)據(jù)信息以統(tǒng)一的根式進行封裝、解封裝,可以有效減少接口的開發(fā)量和后續(xù)的維護工作,并相應(yīng)降低在接口維護過程中其他業(yè)務(wù)應(yīng)用所受影響。
文檔編號H04L29/06GK102025699SQ20091017394
公開日2011年4月20日 申請日期2009年9月22日 優(yōu)先權(quán)日2009年9月22日
發(fā)明者查峰 申請人:華為技術(shù)有限公司