專利名稱:基于map隊列的數據傳送方法
技術領域:
本發明方法屬于軟件協議接口領域。尤其是不同協議和平臺基于map隊列的數據 傳送方法。
二背景技術:
目前電信運營商系統當中,接口系統千差萬別且形式各異;開發電信軟件的行業通 常設立接口組,某些部門專門就負責開發接口,因接口差異性大,開發軟件成本也是相 當地大,這些接口前期的開發,后期的版本維護、升級,都相當的消耗人力成本;
一般情況下電信運營商的業務都是由以下幾個渠道進行受理
1) 營業前臺受理大部分用戶是到營業廳去辦理業務
2) 電話語音自動受理通過拔打電話或短信方式受理
3) 1000號直接受理10000號語音平臺客服直接受理部分業務
4) 銀行受理充值等
以上各渠道進行受理以后形成訂單,以統一的形式發向后臺各種類型的交換機、智能 網等平臺, 一般情況下不同的平臺與不同的協議,就需要開發不同的接口與之相對應; 按平臺分種類一般如下
HLR;端局;智能網;IVR平臺等
按協議分一般如下-
Socket (TCP/UDP); X. 25; Q3; 串信口; FTAM; CMIASE; LLC2; Web Services; Sybase; Oracle; Tuxeuo; IBM MQ等等
按具體業務平臺類型來分
貝爾S1240-72/74交換機;華為CC08、 SMP協議;中興HLR、 SMP協議;北電HLR;
LAN平臺(好多公司提供的接口協議都不一樣);ADSL平臺(同上);小靈通;村村通;一 號通;同振平臺;互聯星空;B頂S帳戶開通平臺;愛立信;F150; NEC;西門子;朗訊。
由于上面各種協議、各種平臺,又有好多廠家在做這些平臺,要把CRM統一受理下
的業務訂單轉化成為各平臺接口協議,這種各平臺、各廠商、各協議一組合以后就煩多
了;從事電信、移動、聯通的業務支撐系統開發就很有必要成立接口組這樣的部門,對 于處理如此煩多的協議種類、業務平臺、各平臺廠家又做出不同的協議,各協議還存在 版本差異,以前開發時只是對于有共性的接口開發一套應用程序,盡管這樣,仍然需 要開發很多軟件協議、軟件版本,這就對接口組的開發提出了非常高的要求;在此環境 下就誕生出此技術內容;進行平臺差異化的屏蔽、統一業務的處理。而MAP數據結構的 功能即實現差異化屏蔽功能的一種應用程序,可以用解決本發明提出的問題。
三
發明內容
本發明目的是提出不同協議和平臺基于Hl即隊列的數據傳送方法;主要解決多平臺 接口的差異性,例如電信行業中一個項目中遇到外圍接口有上百個,而在本發明當中 理論上是用一個進程可以解決所有平臺接口差異性,使得上百套接口系統采用同一套軟 件版本;可擴展性強;應用重載后二次開發量變小;本發明的技術方案是基于map隊列的數據傳送方法,數據系統總體分為源端Souce 端與靶端Target端兩個部分,將Source端數據送到Target端調用,包括同歩模式與異 歩模式調用;數據傳送過程中核心部分的數據結構就是map數據結構;對map結構進行 了封裝后利用map語法進行配置;
map數據結構的定義Source端定義的虛函數有連接、重新連接、選擇、Key處 理、更新、失敗更新、完工等等;
Target端定義的虛函數有連接、重新連接、插入、選擇、Key處理、更新、失敗 更新等等; 一個數據系統帶多個Source加Target,且一一對應;相互之間沒有任何操 作;Source只訪問它對應的Target, Target只調用它相應的Souce對象;而Source 與Target中所有的成員都使用map結構進行數據傳輸;邏輯實現步驟 操作層采用統一的邏輯來控制同步模式與異步模式的調用 接口層提供系統內部和外部的數據交互與數據處理
數據層基于map的數據傳輸,在Source與Target中引用map對象,利用它的鍵 名與鍵值都設定這個特性;
對于數據庫中的數據處理是由BRS系統應用m鄰語法;或者是0ralce時將一張表里 的數據導入到另一個數據庫中,并且對這些數據不是單純的導出與導入操作,對滿足條 件的數據要進行中間過程處理;就直接派生一個類,再重寫"Key處理"即可;
基于map語法的應用如下
數據庫之間數據傳輸在Source端配置即m即KEY的應用;
將配置的表名中字段名0LC0M_W0RK—ID讀到m鄰KEY的id中,把字段SERIAL—NUMBER 中值放到ma沐EY的serial中,把字段SERVLIST中值放到m即KEY的servlist中;每 一條記錄形成一個map對象,加載到鏈表當中;Source進行"選擇"動作選擇到這些數 據以后把鏈表中一個個map對象傳遞給相應的Target對象調用"插入"動作;插入對 象相應的配置如下-
針對ma沐EY的應用解釋如下
'Kid' 意思讀取m鄰KEY中的id值
lserial'意思讀取mapKEY中的serial值
'S1:2'意思讀取mapKEY中的servlist值中的第一個服務中的第二組值; 如上述數據庫之間進行數據導換的時候主要配置項,如果涉及多張表之間的操作,
對Source與Target進行擴展,也就是添加派生類;如果是單張表的情況下直接配置
即可完成數據的導換、參數值的翻譯等功能;
IBM MQ消息隊列處理假設CRM送訂單過來是以MQ方式送的,那么添加Source派
生類,重寫虛函數連接、選擇、更新、更新失敗、完工,這些對應到IBM MQ消息息
隊列的動作是連接連接MQ消息隊列、選擇讀并刪MQ消息、更新提交讀并刪操 作、更新失敗回退讀并刪動作、完工異歩消息需要回單,這個是封裝向回單隊列發 送消息;這個派生類中就直接指定生成的mapKEY名稱;把讀取到的消息解析后定義好 KEY直接放入m即KEY中;利用Target數據庫擴展類配置一下就可以進行入庫操作了 ;無需針對入庫再次進行開發。
對平臺是以Web Service方式發送的,那添加Target派生類,重寫虛函數連接 與插入虛函數即可; 一般Web Service請求是以同步方式請求的;其它項目只要配置即 可利用Source從數據庫中讀出表中內容并且放到map中;在虛函數插入中只要直接利 用這些ma沐EY時有一套相應的語法直接利用。
本發明當中map是整個系統的核心,所有系統都是圍繞map這個概念在運作,且同 時具備同歩與異歩的功能;當然如果僅僅是map是不可能完成這樣的功能的;對map 的處理已經形成一套map語法,且是把map應用到相應的體系架構當中才發揮出它的能 力;
系統總體分為兩部分, 一般稱它為Souce端(圖1上半部分)與Target端(圖1下半 部分);總體思想就是把Souce端的數據傳輸到Target端這步立即返回就算結束,這就 是同歩模式;如果說把Source端數據送到Target端調用返回后,Target端又可以選到 這部分工單向Source端主動發送,這個完整的過程就是異步模式;而這些過程中最核 心的部分的數據結構就是map數據結構;對map結構進行了封裝后利用map語法進行配 置;
(一) 邏輯實現
操作層主要是采用統一的邏輯來控制同步模式與異步模式的調用 接口層提供系統內部和外部的數據交互,與數據處理 數據層基于m即技術的數據傳輸
(二) 技術實現概述
Source端定義的虛函數有連接、重新連接、選擇、Key處理、更新、失敗更新、 完工等等;Target端定義的虛函數有連接、重新連接、插入、選擇、Key處理、更新、 失敗更新等等;
一個系統可以帶多個Source+Target,進行一一對應;相互之間沒有任何操作; Source只訪問它對應的Target, Target只調用它相應的Souce對象;而Source與Target 中所有的成員方法都使用了 m即結構進行數據傳輸;
在Source與Target中大量引用map對象,利用它的鍵名與鍵值都可以設定這個特 性,這樣就不會局限于某個值只能放于某個變量當中;這就解決了一個異構系統中數 據參數種類煩多、形式各異的問題,并且我們對map的處理已有了一套全新的語法,我 們稱它為map語法;
本發明有益效果:Map語法帶給我們在異構協議、異構系統、異構平臺中的數據傳輸得 到統一的定義;可以把CRM的訂單數據以統一的形式直接送至各平臺封裝的協議接口中; 使得各廠商、各平臺、各協議輕松得到統一的各式各樣數據源;使得各廠商、各平臺、 各協議可以輕松融合在統一個系統中; 四
圖1是利用map語法進行支撐的BRS系統, 圖2是BRS系統類圖,主線程與配置部分圖3是BRS系統類圖Source線程與Target線程及擴展類部分 五具體實施例方式
描述BRS系統類圖太大,分成了兩個線,圖2是主線程與配置對象;圖3是Source 線程與Target線程,這樣一對對線程可以根據配置對象,產生很多對;每個線程控制自 己的擴展類對象;實施過程中,有兩種模式-
1) 同歩模式
同歩模式就是由Source端選出數據,插入Target端,插入返回成功在Source確認 后即算結束;
2)異歩模式
異步模式的包含同步模式所有動作;另外多一個步驟是插入到Target端的數 據,由Target方處理完成后,還需要向Source端返回結果;所以,這個步驟內容是 把Target處理后的結果選取出來,反向調用Source端相應回單接口 ,調用成功后Target 端得到確認即算結束。
對于數據庫中的數據處理是BRS系統應用map語法以后最基本也是最具有特色的部 分,如果Oralce要把一張表里的數據導入到另一個數據庫中,并且對這些數據不是單純 的導出與導入操作,對滿足條件的數據要進行中間過程處理就可以直接派生一個類, 再重寫"Key處理"即可。基于map語法的應用如下
數據庫之間數據傳輸在Source端配置即mapKEY處理的應用
SSelect=0LC0M—WORK—ID&id;SERIAL—NUMBE腿se rial;SERVLIST&servlist;
說明把配置的表名中字段名0LC0M一W0RK一ID讀到mapKEY的id中,把字段 SERIAL—NUMBER中值放到mapKEY的serial中,把字段SERVLIST中j直放到mapKEY的 servlist中;每一條記錄形成一個map對象,加載到鏈表當中;Source進行"選擇"動 作選擇到這些數據以后把鏈表中一個個map對象傳遞給相應的Target對象調用"插入" 動作;
插入對象相應的配置如下
insert into TI—ORDER—CD(0RDER1D,MSISDN,SERVLIST)
va]ues(' —Kid" ,' —Kserial" ,' —Sl:2 —') 這里就是針對mapKEY的應用解釋如下 lid' 意思讀取mapKEY中的id值 'Kseriar意思:讀取mapKEY中的serial值
'SI :2' 意思讀取m鄰KEY中的servlist值中的第一個服務,中的第二組值 (servlist中數據格式為1+2+3, a+b+c, E+F+G)
如上是數據庫之間進行數據導換的時候主要配置項,如果涉及多張表之間的操作, 可以對Source與Target進行擴展,也就是添加派生類;如果是單張表的情況下直接 配置即可完成數據的導換、參數值的翻譯等功能;
2) IBM MQ消息隊列處理假設C躍送訂單過來是以MQ方式送的,那么添加Source派生類,重寫虛函數連 接、選擇、更新、更新失敗、完工,這些對應到IBM MQ消息息隊列的動作是連接 連接MQ消息隊列、選擇讀并刪MQ消息、更新提交讀并刪操作、更新失敗回退讀 并刪動作、完工異步消息需要回單,這個是封裝向回單隊列發送消息;
這個派生類中就可以直接指定生成的m叩KEY名稱;把讀取到的消息解析后定義好 KEY直接放入ma沐EY中;利用Target數據庫擴展類配置一下就可以進行入庫操作了 ; 無需針對入庫再次進行開發;
3) Web Service消息
假設某些智能網平臺是以Web Service方式發送的,那么添加Target派生類,重寫 虛函數連接與插入虛函數即可; 一般Web Service請求是以同歩方式請求的;重寫連 接函數只是為了一些初始化工作,其實只要重寫插入動作即可完成所有功能,也就是說 這樣的系統開發,我們只要重寫一個函數即可完成這套系統的開發,其它項目只要配置 配置即可利用Source從數據庫中讀出表中內容并且放到map中;在虛函數插入中只要 直接利用這些mapKEY就可以了 ,利用這些m即KEY時有一套相應的語法可以直接利用。 以上是對mapKEY的一此基本就用舉例,本文提到的map語法也就是這些是最基本的 體現方式,現在對一些基本的m鄰語法作個說明,其格式如下
'KKey:0'意思取Key中值,如果無此KEY則默認值為0
'PU001:(T意思取參數列表中值,其參數列表KEY定義為varlist,其值內容表 形形式為U001=l\0x01P002=2\0x01P003=3,如果varlist中不存在UOOl時,那么默認 值為O
'Sx:y' 意思取服務列表中值,其服務殫表KEY定義為servlist,其值內容
表現形式為1+2+3, a+b+c, E+F+G,本樣例意思是取第X個服務中第Y個位置
'RKey:x:y'意思替換mapKEY中的KEY名為Key的,如果它值為x,則替為y ll: = :2:,'意思本表達式以冒號(:)相隔,在冒號之間如果是數字,那么就取
服務列表中服務位置相應的值,這啟到了過濾服務或是摘取服務的目的
以上map語法還有許多功能可以附加,它雖然與正則表達式一樣難懂,但它與正則
表達式一樣其針對性功能強大,當然這些語法還可以隨時進行擴充,任何位置都可以隨
時調用它們;它作為一個單獨的模塊存在。
權利要求
1、基于map隊列的數據傳送方法,數據系統分為源端Souce端與靶端Target端兩個部分,將Source端數據送到Target端調用,包括同步模式與異步模式調用;其特征是數據傳送過程中的核心部分的數據結構就是map數據結構;對map結構進行了封裝后利用map語法進行配置;map數據結構的定義Source端定義的虛函數有連接、重新連接、選擇、Key處理、更新、失敗更新、完工;Target端定義的虛函數有連接、重新連接、插入、選擇、Key處理、更新、失敗更新;一個數據系統帶多個源端與靶端,且一一對應;相互之間沒有任何操作;Source端只訪問它對應的Target端,Target端只調用它相應的Souce對象;而Source端與Target端中所有的成員都使用map結構進行數據傳輸;邏輯實現步驟操作層采用統一的邏輯來控制同步模式與異步模式的調用,接口層提供系統內部和外部的數據交互與數據處理,數據層基于map的數據傳輸,在Source端與Target端中引用map對象,利用map的鍵名與鍵值都設定這個特性;對于數據庫中的數據處理是由BRS系統應用map語法;或者是Oralce時將一張表里的數據導入到另一個數據庫中,并且對這些數據不是單純的導出與導入操作,對滿足條件的數據要進行中間過程處理;就直接派生一個類,再重寫“Key處理”即可;基于map語法的應用如下數據庫之間數據傳輸在Source端配置即mapKEY的應用;將配置的表名中字段名OLCOM_WORK_ID讀到mapKEY的id中,把字段SERIAL_NUMBER中值放到mapKEY的serial中,把字段SERVLIST中值放到mapKEY的servlist中;每一條記錄形成一個map對象,加載到鏈表當中;Source端進行“選擇”動作選擇到這些數據以后把鏈表中一個個map對象傳遞給相應的Target端對象調用“插入”動作;插入對象相應的配置上述數據庫之間進行數據導換的時候主要配置項,如果涉及多張表之間的操作,對Source端與Target端進行擴展,也就是添加派生類;如果是單張表的情況下直接配置即可完成數據的導換、參數值的翻譯功能。
2、 根據權利要求1所述的基于map隊列的數據傳送方法,其特征是IBM MQ消息隊 列處理假設CRM送訂單過來是以MQ方式送的,那么添加Source派生類,重寫虛函數 連接、選擇、更新、更新失敗、完工,這些對應到IBM MQ消息息隊列的動作是連接連接MQ消息隊列、選擇讀并刪MQ消息、更新提交讀并刪操作、更新失敗回退讀 并刪動作、完工異步消息需要回單,這個是封裝向回單隊列發送消息;這個派生類中就直接指定生成的ma沐EY名稱;把讀取到的消息解析后定義好KEY直接放入ma沐EY中; 利用Target數據庫擴展類配置一下就可以進行入庫操作了 ;無需針對入庫再次進行開發。 對平臺是以Web Service方式發送的,那添加Target派生類,重寫虛函數連接 與插入虛函數即可; 一般Web Service請求是以同步方式請求的;其它項目只要配置即 可利用Source從數據庫中讀出表中內容并且放到map中;在虛函數插入中只要直接利 用這些ma沐EY時有一套相應的語法直接利用。
全文摘要
基于map隊列的數據傳送方法,數據系統分為源端Souce端與靶端Target端兩個部分,將Source端數據送到Target端調用,采用map數據結構;對map結構進行了封裝后利用map語法進行配置;一個數據系統帶多個源端與靶端,且一一對應;Source端只訪問它對應的Target端,Target端只調用它相應的Souce端對象;而Source端與Target端中所有的成員都使用map結構進行數據傳輸;邏輯實現步驟操作層采用統一的邏輯來控制同步模式與異步模式的調用,接口層提供系統內部和外部的數據交互與數據處理,數據層基于map的數據傳輸,在Source端與Target端中引用map對象,利用map的鍵名與鍵值都設定這個特性。
文檔編號H04L29/06GK101483651SQ20091002810
公開日2009年7月15日 申請日期2009年1月9日 優先權日2009年1月9日
發明者孫力斌, 宋海華, 張春飛, 陸志強, 高福海, 魏本棟 申請人:南京聯創科技股份有限公司