專利名稱:一種基于消息隊列的數(shù)據(jù)傳輸方法、服務(wù)器及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明關(guān)于計算機網(wǎng)絡(luò)的數(shù)據(jù)傳輸技術(shù),具體的講是關(guān)于一種基于消息 隊列的數(shù)據(jù)傳輸方法、服務(wù)器及系統(tǒng)。
背景技術(shù):
對于具有分支機構(gòu)的大型企業(yè)或單位而言,由于其業(yè)務(wù)種類繁多,因此 會存在各種不同的業(yè)務(wù)應(yīng)用系統(tǒng)。為了實現(xiàn)各個分支結(jié)構(gòu)之間的數(shù)據(jù)通信需 要一個復(fù)雜的網(wǎng)絡(luò)關(guān)系進行支撐,從而使網(wǎng)絡(luò)之間的消息數(shù)據(jù)能夠順利、可 靠的分發(fā)到相應(yīng)的目的地。
在現(xiàn)有技術(shù)中,基于IP地址的消息數(shù)據(jù)轉(zhuǎn)發(fā)是常用的數(shù)據(jù)傳輸方式,也
有些應(yīng)用系統(tǒng)之間是根據(jù)IP地址建立HTTP連接進行消息數(shù)據(jù)的傳遞和分發(fā)。
然而在實現(xiàn)本發(fā)明的過程中發(fā)明人發(fā)現(xiàn),基于IP地址的消息數(shù)據(jù)轉(zhuǎn)發(fā)需要目 標與IP地址的一一對應(yīng)關(guān)系的支持,也就是說相對于一個目標,發(fā)起方就需 要知道一個IP地址,這樣只能進行點對點的消息數(shù)據(jù)轉(zhuǎn)發(fā);并且應(yīng)用程序知 道目標后,需要對消息數(shù)據(jù)傳輸?shù)目煽啃赃M行控制,這樣便增加了應(yīng)用程序 的負擔。而且,如果要修改或者新增應(yīng)用系統(tǒng),就需要重新部署調(diào)整應(yīng)用布 局,導(dǎo)致靈活性和擴展性較差。
在現(xiàn)有技術(shù)中,基于中間件的消息數(shù)據(jù)轉(zhuǎn)發(fā)也是一種數(shù)據(jù)傳輸方式,這 種消息數(shù)據(jù)轉(zhuǎn)發(fā)一般這樣實現(xiàn)當發(fā)送方應(yīng)用程序?qū)⑾l(fā)送到中間件客戶 端后,中間件消息接收進程(MessageReceiver)執(zhí)行消息接收操作 (MessageReceiving)。如果消息接收成功,與之合作的消息分發(fā)進程 (MessageDispatcher)通過消息通道將消息分發(fā)(MessageDispatching)到與之對 應(yīng)的中間件服務(wù)器端。然而在實現(xiàn)本發(fā)明的過程中發(fā)明人發(fā)現(xiàn),這種基于中間件的分發(fā)方式將消息的可靠傳遞交給了中間件來完成,但是如何利用中間 件分發(fā)卻沒有完善的方案,只是簡單的利用中間件本身的特性進行分發(fā),這 樣對于分發(fā)數(shù)量大、分支節(jié)點深的情況,中間件就無法完成。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)的缺陷,本發(fā)明實施例提供了一種基于消息隊列的數(shù) 據(jù)傳輸方法、服務(wù)器及系統(tǒng)。以提供一種可靠的消息數(shù)據(jù)包轉(zhuǎn)發(fā)機制,使消 息數(shù)據(jù)包能夠根據(jù)自身的一個路由屬性隨意分發(fā)和返回。
本發(fā)明實施例的目的之一是提供一種基于消息隊列的數(shù)據(jù)傳輸方法, 該方法包括以下步驟通過接收消息隊列接收源應(yīng)用端發(fā)送的消息數(shù)據(jù)包; 從所述的接收消息隊列中獲取所述的消息數(shù)據(jù)包;根據(jù)所述消息數(shù)據(jù)包的地 址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置;通過發(fā) 送消息隊列將路由配置后的消息數(shù)據(jù)包傳輸給目的應(yīng)用端。 '
本發(fā)明實施例的目的之一是提供一種基于消息隊列的數(shù)據(jù)傳輸服務(wù)器, 該服務(wù)器包括消息隊列單元,用于通過接收消息隊列接收源應(yīng)用端發(fā)送的 消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元,用于從所述的接收消息隊列中獲取所述的消 息數(shù)據(jù)包;數(shù)據(jù)包處理單元,用于根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲 的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置;所述的消息隊列單元通 過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包傳輸給目的應(yīng)用端。
本發(fā)明實施例的目的之一是提供一種基于消息隊列的數(shù)據(jù)傳輸系統(tǒng), 該系統(tǒng)包括源應(yīng)用設(shè)備、數(shù)據(jù)傳輸服務(wù)器和目的應(yīng)用設(shè)備,所述的數(shù)據(jù)傳 輸服務(wù)器分別與所述的源應(yīng)用設(shè)備和目的應(yīng)用設(shè)備相連接;所述的源應(yīng)用設(shè) 備生成消息數(shù)據(jù)包,并將該消息數(shù)據(jù)包發(fā)送給所述的數(shù)據(jù)傳輸服務(wù)器;所述 的數(shù)據(jù)傳輸服務(wù)器包括消息隊列單元,用于通過接收消息隊列接收源應(yīng)用 端發(fā)送的消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元,用于從所述的接收消息隊列中獲取 所述的消息數(shù)據(jù)包;數(shù)據(jù)包處理單元,用于根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置;所述的消息隊 列單元通過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包傳輸給目的應(yīng)用設(shè)備; 所述的目的應(yīng)用設(shè)備從所述的發(fā)送消息隊列獲取所述的路由配置后的消息數(shù) 據(jù)包。
本發(fā)明實施例的目的之一是提供一種基于消息隊列的數(shù)據(jù)傳輸系統(tǒng), 該系統(tǒng)包括源應(yīng)用設(shè)備、區(qū)域數(shù)據(jù)傳輸服務(wù)器和中心數(shù)據(jù)傳輸服務(wù)器,所 述的源應(yīng)用設(shè)備通過所述的區(qū)域數(shù)據(jù)傳輸服務(wù)器與所述的中心數(shù)據(jù)傳輸服務(wù) 器相連接;所述的源應(yīng)用設(shè)備生成消息數(shù)據(jù)包,并將該消息數(shù)據(jù)包發(fā)送給所 述的數(shù)據(jù)傳輸服務(wù)器;所述的區(qū)域數(shù)據(jù)傳輸服務(wù)器包括消息隊列單元,用 于通過接收消息隊列接收源應(yīng)用端發(fā)送的消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元,用 于從所述的接收消息隊列中獲取所述的消息數(shù)據(jù)包;數(shù)據(jù)包處理單元,用于 根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù) 包進行路由配置;所述的消息隊列單元通過發(fā)送消息隊列將路由配置后的消 息數(shù)據(jù)包傳輸給所述的中心數(shù)據(jù)傳輸服務(wù)器;所述的中心數(shù)據(jù)傳輸服務(wù)器包 括消息隊列單元,用于通過接收消息隊列接收所述的區(qū)域數(shù)據(jù)傳輸服務(wù)器 發(fā)送的消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元,用于從所述的接收消息隊列中獲取所 述的消息數(shù)據(jù)包;數(shù)據(jù)包處理單元,用于根據(jù)所述消息數(shù)據(jù)包的地址信息和 預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置;所述的消息隊列 單元通過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包轉(zhuǎn)發(fā)。
本發(fā)明實施例的目的之一是提供一種基于消息隊列的數(shù)據(jù)傳輸系統(tǒng), 該系統(tǒng)包括目的應(yīng)用設(shè)備、區(qū)域數(shù)據(jù)傳輸服務(wù)器和中心數(shù)據(jù)傳輸服務(wù)器, 所述的目的應(yīng)用設(shè)備通過所述區(qū)域數(shù)據(jù)傳輸服務(wù)器與所述中心數(shù)據(jù)傳輸服務(wù) 器相連接;所述的中心數(shù)據(jù)傳輸服務(wù)器包括消息隊列單元,用于通過接收 消息隊列接收源應(yīng)用端發(fā)來的消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元,用于從所述的 接收消息隊列中獲取所述的消息數(shù)據(jù)包;數(shù)據(jù)包處理單元,用于根據(jù)所述消 息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置;所述的消息隊列單元通過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包轉(zhuǎn) 發(fā);所述的區(qū)域數(shù)據(jù)傳輸服務(wù)器包括消息隊列單元,用于通過接收消息隊 列接收所述中心數(shù)據(jù)傳輸服務(wù)器轉(zhuǎn)發(fā)的消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元,用于 從所述的接收消息隊列中獲取所述的消息數(shù)據(jù)包;數(shù)據(jù)包處理單元,用于根 據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包 進行路由配置;所述的消息隊列單元通過發(fā)送消息隊列將路由配置后的消息 數(shù)據(jù)包轉(zhuǎn)發(fā);所述的目的應(yīng)用設(shè)備從所述區(qū)域數(shù)據(jù)傳輸服務(wù)器的發(fā)送消息隊 列獲取所述的路由配置后的消息數(shù)據(jù)包。
本發(fā)明實施例的有益效果在于,使消息數(shù)據(jù)包透明的分發(fā)到各個目的應(yīng) 用,消息轉(zhuǎn)發(fā)到眾多分支后,能夠及時追蹤。并且利用消息隊列實現(xiàn)跨區(qū)域 跨平臺的數(shù)據(jù)傳輸,消息數(shù)據(jù)包能夠根據(jù)自身的一個路由屬性隨意分發(fā)和返 回。特別是對于分支屬性復(fù)雜、分支數(shù)量繁多和分支機構(gòu)層次深的消息數(shù)據(jù) 包轉(zhuǎn)發(fā),本發(fā)明實施例能夠體現(xiàn)出簡單、高效的技術(shù)特點。
圖1為本發(fā)明實施例1的系統(tǒng)組成的樹形結(jié)構(gòu)圖2為本發(fā)明實施例數(shù)據(jù)傳輸服務(wù)器的結(jié)構(gòu)圖3為本發(fā)明實施例消息數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu)圖4為本發(fā)明實施例消息隊列的消息鏈表圖5為本發(fā)明實施例系統(tǒng)的數(shù)據(jù)傳輸流程圖6為本發(fā)明實施例系統(tǒng)基于消息隊列的數(shù)據(jù)傳輸示意圖7為本發(fā)明實施例數(shù)據(jù)傳輸服務(wù)器的處理流程圖8為本發(fā)明實施例2的系統(tǒng)組成的樹形結(jié)構(gòu)圖9為本發(fā)明實施例3的系統(tǒng)組成的樹形結(jié)構(gòu)圖。
具體實施例方式
下面結(jié)合
本發(fā)明的具體實施方式
。實施例一
在計算機數(shù)據(jù)傳輸?shù)耐ㄐ啪W(wǎng)絡(luò)中,按照區(qū)域建立分層次的樹形網(wǎng)絡(luò)拓撲 結(jié)構(gòu),并將負責(zé)數(shù)據(jù)通信的服務(wù)器與業(yè)務(wù)應(yīng)用設(shè)備相分離。如圖1所示,為 本實施例的一種基于消息隊列的數(shù)據(jù)傳輸系統(tǒng),該系統(tǒng)包括中心服務(wù)器、 區(qū)域服務(wù)器和應(yīng)用設(shè)備。 一個中心服務(wù)器可以和n個區(qū)域服務(wù)器相連接(n為 正整數(shù)), 一個區(qū)域服務(wù)器可以和n個應(yīng)用設(shè)備相連接(n為正整數(shù))。各區(qū) 域服務(wù)器都經(jīng)上一層的總中心服務(wù)器進行連接和數(shù)據(jù)轉(zhuǎn)發(fā),并不直接相連; 應(yīng)用設(shè)備可再分為應(yīng)用前端設(shè)備、應(yīng)用后端設(shè)備,應(yīng)用前端設(shè)備為消息數(shù)據(jù) 的發(fā)送方,應(yīng)用后端設(shè)備為消息數(shù)據(jù)的接收方。
如圖2所示,中心服務(wù)器100包括消息隊列單元101用于通過接收消 息隊列接收源應(yīng)用端發(fā)送的消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元102用于從所述的 接收消息隊列中獲取所述的消息數(shù)據(jù)包;數(shù)據(jù)包處理單元103用于根據(jù)所述 消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路 由配置;消息隊列單元101通過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包傳 輸給目的應(yīng)用端。
如圖5所示,本實施例的基于消息隊列的數(shù)據(jù)傳輸方法,區(qū)域服務(wù)器1 通過接收消息隊列接收應(yīng)用端1發(fā)送的消息數(shù)據(jù)包;從所述的接收消息隊列 中獲取所述的消息數(shù)據(jù)包;根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由 配置信息對所述的消息數(shù)據(jù)包進行路由配置;通過發(fā)送消息隊列將路由配置 后的消息數(shù)據(jù)包傳輸給中心服務(wù)器。中心服務(wù)器從所述的接收消息隊列中獲 取所述的消息數(shù)據(jù)包;根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置 信息對所述的消息數(shù)據(jù)包進行路由配置;通過發(fā)送消息隊列將路由配置后的 消息數(shù)據(jù)包傳輸給區(qū)域服務(wù)器2。區(qū)域服務(wù)器2通過接收消息隊列接收中心服 務(wù)器發(fā)送的消息數(shù)據(jù)包;從所述的接收消息隊列中獲取所述的消息數(shù)據(jù)包; 根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù) 包進行路由配置;通過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包傳輸給應(yīng)用端2。
區(qū)域服務(wù)器與中心服務(wù)器100的功能相同,該區(qū)域服務(wù)器包括消息隊 列單元,用于通過接收消息隊列接收所述中心數(shù)據(jù)傳輸服務(wù)器轉(zhuǎn)發(fā)的消息數(shù) 據(jù)包;數(shù)據(jù)包獲取單元,用于從所述的接收消息隊列中獲取所述的消息數(shù)據(jù) 包;數(shù)據(jù)包處理單元,用于根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由 配置信息對所述的消息數(shù)據(jù)包進行路由配置;所述的消息隊列單元通過發(fā)送 消息隊列將路由配置后的消息數(shù)據(jù)包轉(zhuǎn)發(fā);所述的目的應(yīng)用設(shè)備從所述區(qū)域 數(shù)據(jù)傳輸服務(wù)器的發(fā)送消息隊列獲取所述的路由配置后的消息數(shù)據(jù)包。
中心服務(wù)器和區(qū)域服務(wù)器均為通信服務(wù)器,在中心服務(wù)器和區(qū)域服務(wù)器 間建立一種消息分發(fā)和管理機制,在該處理機制下,中心服務(wù)器和區(qū)域服務(wù) 器之間通過隊列到隊列的通信來進行部署,數(shù)據(jù)傳遞不依賴中間件來分發(fā)處 理,而是由專門的消息交易傳遞轉(zhuǎn)發(fā)模塊(MTTS)來管理。
如圖6所示,MTTS分別分布于中心服務(wù)器601和區(qū)域服務(wù)器(602, 603) 上,MTTS由以下幾部份組成
交換中心,由數(shù)據(jù)包處理單元和一組消息隊列組成,數(shù)據(jù)包處理單元主 要完成從消息隊列接收、拆分、分發(fā)數(shù)據(jù)包,并執(zhí)行數(shù)據(jù)包命令等處理操作; 消息隊列根據(jù)分工的不同,可進一步分為傳輸隊列和緩沖隊列,傳輸隊列負 責(zé)各數(shù)據(jù)交換服務(wù)器之間消息的接收和分發(fā);緩沖隊列負責(zé)數(shù)據(jù)交換服務(wù)器 與應(yīng)用系統(tǒng)設(shè)備之間消息數(shù)據(jù)的接收與分發(fā)。當傳輸隊列接收到消息數(shù)據(jù)包 時,如果是屬于本區(qū)域應(yīng)用數(shù)據(jù)包,則把該數(shù)據(jù)包存儲到數(shù)據(jù)緩沖池;如果 不屬于本區(qū)域應(yīng)用數(shù)據(jù)包,則進行數(shù)據(jù)轉(zhuǎn)發(fā)。
數(shù)據(jù)緩沖池,接收交換中心分發(fā)的數(shù)據(jù),并將消息隊列數(shù)據(jù)進行處理和 存儲,并同時啟動消息數(shù)據(jù)到達提醒,通知目的地應(yīng)用系統(tǒng)進行讀?。幌?隊列數(shù)據(jù)可駐留在內(nèi)存或磁盤上,直到它們被目的應(yīng)用設(shè)備讀走。
數(shù)據(jù)存儲模塊負責(zé)存儲登記消息路由參數(shù)配置文件、消息接收轉(zhuǎn)發(fā)日 志等,如交換中心與所轄地區(qū)對照關(guān)系表、消息隊列路由匹配參數(shù)表、消息包錯誤日志表等。 , MTTS還具有以下管理功能
交易跟蹤,類似于IP網(wǎng)的TRACERT功能,可跟蹤査詢每筆數(shù)據(jù)傳輸業(yè) 務(wù)從起點到終點的全過程。交換中心上的MTTS會對消息的包頭進行解析, 如果是發(fā)現(xiàn)包頭是含有調(diào)試信息指令,則MTTS在轉(zhuǎn)發(fā)給下一個節(jié)點的同時 也會向回(即源頭)發(fā)一筆路由信息的調(diào)試信息,這樣,如果想追蹤一筆消 息,只要消息頭設(shè)置調(diào)試指令,每到一個節(jié)點,節(jié)點都會返回一條調(diào)試信息, 表示已經(jīng)經(jīng)過了這個節(jié)點。最終,在源頭的調(diào)試屏幕上打出來就是經(jīng)過的一 條條路由信息。
遠程監(jiān)視和遠程配置,可查詢和配置遠程站點的參數(shù)配置信息。如果從 源頭想知道某個節(jié)點路由配置是否正確,從源頭向節(jié)點發(fā)送命令消息。(消 息包頭的地址信息還是APPID,表示要到那個節(jié)點,不過消息頭里面加上査 看的命令)。當該節(jié)點收到該査看節(jié)點信息的消息的。節(jié)點就會根據(jù)命令消 息的地址信息,把配置信息按原路發(fā)送回去。在源頭就能收到節(jié)點返回的配 置信息,實現(xiàn)遠程監(jiān)視和配置的目的。
在該通信機制下,通信信息數(shù)據(jù)包由地址和內(nèi)容兩部份組成,分別存放 于消息體的不同位置,從而使傳輸過程中只査看地址信息,不對內(nèi)容進行任 何處理。
在該通信機制下,參與數(shù)據(jù)交換的業(yè)務(wù)應(yīng)用系統(tǒng)只需正確填寫地址信息 即可,不需關(guān)心傳輸過程的細節(jié)。地址信息包括收件地址和發(fā)件地址,地址 信息存放在消息包頭的ApplicationID字段,每個地址由以下部份組成(1) 地區(qū)代號,包含接受方和發(fā)送方的地區(qū)號,用于定位到具體的交換基站,相 當于郵編。(2)應(yīng)用號,為每個應(yīng)用定義不重復(fù)的代碼,相當于門牌號。 圖3示出了消息路由應(yīng)用ID (ApplicationID)的規(guī)則。 在總中心及區(qū)域中心建立數(shù)據(jù)交換服務(wù)器,每個服務(wù)器上部署MTTS路 由軟件。其中,A、 B、 C、 D代表要接入本發(fā)明系統(tǒng)中的各前端應(yīng)用。各前端應(yīng)用把請求消息發(fā)送到總中心后,就不用關(guān)心后面的處理。這些前端應(yīng)用
的責(zé)任只是放入消息,和等待總中心返回消息。
在應(yīng)用部署中,總中心主要負責(zé)接收消息請求,它與前端區(qū)域中心和后 端區(qū)域中心聯(lián)系,把消息請求分發(fā)給區(qū)域中心處理或者分發(fā)給總中心后端應(yīng) 用系統(tǒng)。區(qū)域中心則將消息請求轉(zhuǎn)發(fā)給總中心,或者直接轉(zhuǎn)給屬于本區(qū)域中 心的應(yīng)用后端。
例如區(qū)域中心l的E應(yīng)用要傳遞一個消息數(shù)據(jù)到區(qū)域中心2的F應(yīng)用, E應(yīng)用只需要將消息數(shù)據(jù)所對應(yīng)的目的地區(qū)、目的應(yīng)用相應(yīng)代號寫入消息包頭 地址信息,區(qū)域中心1根據(jù)該數(shù)據(jù)包頭的地址信息,并結(jié)合區(qū)域中心所登記 的路由配置信息,自動轉(zhuǎn)發(fā)到總中心,總中心接收到該消息數(shù)據(jù)包后,再根
據(jù)自身登記的路由配置信息,自動轉(zhuǎn)到區(qū)域中心2,區(qū)域中心2根據(jù)消息包頭 會自動轉(zhuǎn)發(fā)到F應(yīng)用對應(yīng)的處理服務(wù)器上。參與交換的E應(yīng)用只需正確填寫 地址信息即可,不需關(guān)心傳輸過程的細節(jié)。
下面分階段詳細說明一個完整的消息數(shù)據(jù)傳輸?shù)奶幚磉^程 (一)數(shù)據(jù)從應(yīng)用前端(起點)到區(qū)域中心數(shù)據(jù)交換服務(wù)器l:應(yīng)用前端發(fā) 起數(shù)據(jù)傳輸請求,生成消息數(shù)據(jù)包,并把數(shù)據(jù)包通過傳輸隊列發(fā)送給區(qū)域中 心數(shù)據(jù)交換服務(wù)器(如果該應(yīng)用前端連接的是總中心數(shù)據(jù)交換服務(wù)器,則直 接到總中心數(shù)據(jù)交換服務(wù)器),數(shù)據(jù)包內(nèi)容如下
消息內(nèi)容需傳輸?shù)臉I(yè)務(wù)數(shù)據(jù)信息;
消息包頭消息的包頭放入的是消息數(shù)據(jù)的路由信息,也就是APPID, APPID的形成過程大致如下應(yīng)用前端首先根據(jù)自身應(yīng)用中的具體的業(yè)務(wù)要
求數(shù)據(jù)生成目的地地區(qū)號、目的地應(yīng)用系統(tǒng),并填充APPID的接收方地區(qū)號、
接收方應(yīng)用號字段,再把自身應(yīng)用系統(tǒng)所屬于的地區(qū)號、應(yīng)用系統(tǒng)編號填充
APPID的源地區(qū)號和源應(yīng)用系統(tǒng)編號字段。
如圖4所示,舉例如下在A地區(qū)(屬于區(qū)域中心l)的應(yīng)用前端A1需 傳輸一筆業(yè)務(wù)數(shù)據(jù)到B地區(qū)(屬于區(qū)域中心2)的應(yīng)用后端B1進行處理,則APPID的目的地地區(qū)號字段填寫的就是B的地區(qū)代號"BXXX" , APPID的 目的應(yīng)用字段填寫的就是B1應(yīng)用對應(yīng)的代碼號"B1YY" , APPID的源地區(qū) 號字段填寫的就是A的地區(qū)代號"AZZZ" , APPID的源應(yīng)用字段填寫的就 是Al應(yīng)用對應(yīng)的代碼號"A1WW"。這樣應(yīng)用前端的路由信息就拼裝為-BXXXB1YYAZZZZA1 WW,放在發(fā)出消息數(shù)據(jù)包的包頭路由標識字段。
消息唯一標識應(yīng)用前端隨機計算出一個唯一的消息標識ID字段,放在 消息的包頭的消息標識字段,備以后接收返回消息時能唯一識別是這條消息 的返回消息。
(二)總中心換服務(wù)器處理步驟(如圖7所示) 步驟S10h總中心數(shù)據(jù)交換服務(wù)器從緩沖隊列里面讀取消息包; 步驟S102:總中心數(shù)據(jù)交換服務(wù)器拆分請求消息包的包頭和消息內(nèi)容;
步驟S103:總中心數(shù)據(jù)交換服務(wù)器判斷包頭的APPID是否有空,如果 APPID不為空,則進行拆分出目的地址、源地址及路由的相關(guān)信息,執(zhí)行步 驟S105;否則執(zhí)行步驟S104;
步驟S104:總中心數(shù)據(jù)交換服務(wù)器對數(shù)據(jù)包進行解包,寫數(shù)據(jù)包錯誤曰
志,丟棄該數(shù)據(jù)包,處理結(jié)束。
步驟S105:總中心數(shù)據(jù)交換服務(wù)器根據(jù)APPID的后綴是否含有命令字符 "絲弁",判斷是否命令消息還是簡單的轉(zhuǎn)發(fā)消息;如果是命令消息(例如 交易跟蹤等命令消息),則執(zhí)行步驟S106,否則,如果是轉(zhuǎn)發(fā)消息,則執(zhí)行
步驟S107;
步驟S106:總中心數(shù)據(jù)交換服務(wù)器執(zhí)行命令消息###后面的命令指令操 作,再執(zhí)行步驟S107;
步驟S107:總中心數(shù)據(jù)交換服務(wù)器進行路由匹配,根據(jù)本地路由參數(shù)配 置文件和APPID的目的地址、目的地應(yīng)用、源地址、源應(yīng)用進行路由匹配, 匹配方法說明如下
總中心根據(jù)目標地區(qū)號訪問"交換中心與所轄地區(qū)對照關(guān)系表",如果目的地區(qū)屬于其它區(qū)域中心地區(qū),則轉(zhuǎn)發(fā)給相應(yīng)的區(qū)域中心,如果是本交換 中心所轄地區(qū),則再進行以下"消息隊列路由匹配參數(shù)表"的匹配判斷
如圖7所示,地區(qū)AZZZ的應(yīng)用系統(tǒng)A1WW發(fā)送數(shù)據(jù)到地區(qū)BXXX的 應(yīng)用系統(tǒng)B1YY,在消息路由參數(shù)表可以匹配上Routel路由,則將該數(shù)據(jù)消 息寫入路由消息隊列1111。
如果路由參數(shù)表匹配成功,則執(zhí)行步驟S109,否則,執(zhí)行步驟S108;
步驟S108:總中心數(shù)據(jù)交換服務(wù)器附上錯誤碼,把源地址和目的地址交 換,把源當作目的進行原路返回路由;提示前端路由失敗,結(jié)束處理。
步驟S109:總中心數(shù)據(jù)交換服務(wù)器把消息數(shù)據(jù)包向目的區(qū)域中心,或者 將數(shù)據(jù)包寫入本交換中心所轄目的地區(qū)對應(yīng)的消息隊列(進一步的,還可以 觸發(fā)一個消息到達提醒通知),處理結(jié)束。
實施例二
如圖8所示,為本發(fā)明實施例的利用消息隊列實現(xiàn)跨區(qū)域跨平臺的數(shù)據(jù) 傳輸系統(tǒng),該系統(tǒng)基于消息交易傳遞轉(zhuǎn)發(fā)軟件(MTTS)來管理,由總中心服 務(wù)器、區(qū)域服務(wù)器、業(yè)務(wù)應(yīng)用設(shè)備組成。其中,總中心服務(wù)器可直接與業(yè)務(wù) 應(yīng)用設(shè)備相連接。
總中心數(shù)據(jù)交換服務(wù)器連接各區(qū)域中心數(shù)據(jù)交換服務(wù)器和應(yīng)用設(shè)備,負 責(zé)接收和轉(zhuǎn)發(fā)消息請求,并把請求數(shù)據(jù)分發(fā)給區(qū)域中心數(shù)據(jù)交換服務(wù)器或者 總中心的應(yīng)用后端處理。
區(qū)域中心數(shù)據(jù)交換服務(wù)器主要完成消息請求向后給其他區(qū)域中心或總中 心服務(wù)器轉(zhuǎn)發(fā),或者直接轉(zhuǎn)給接入本區(qū)域中應(yīng)用后端處理。
業(yè)務(wù)應(yīng)用系統(tǒng)裝置是消息數(shù)據(jù)的發(fā)送方和消息數(shù)據(jù)的最終接收使用方, 如果是發(fā)起方可以稱為應(yīng)用前端,如果是最終接收方可以成為應(yīng)用后端。
該系統(tǒng)利用交換中心服務(wù)器隊列到隊列通信方式的特性進行部署,交換 中心服務(wù)器與業(yè)務(wù)應(yīng)用系統(tǒng)裝置以MTTS作為重要基礎(chǔ)組件進行數(shù)據(jù)的接收 與發(fā)送,各接入業(yè)務(wù)應(yīng)用系統(tǒng)裝置處于平等的地位,當需要新增一個業(yè)務(wù)應(yīng)用系統(tǒng),只要將給系統(tǒng)服務(wù)器接入到某個交換中心節(jié)點就可以完成系統(tǒng)的通 信部署。
實施例三
如圖9所示,為本發(fā)明實施例的利用消息隊列實現(xiàn)跨區(qū)域跨平臺的數(shù)據(jù)
傳輸系統(tǒng),該系統(tǒng)基于MTTS來管理,由總中心服務(wù)器、區(qū)域服務(wù)器、業(yè)務(wù)
應(yīng)用設(shè)備組成。其中,該系統(tǒng)的配置結(jié)構(gòu)可以根據(jù)需要進行擴展,例如交
換中心還可以繼續(xù)往下延伸,根據(jù)需要可以接出多層次的區(qū)域中心數(shù)據(jù)交換 服務(wù)器,每個區(qū)域中心數(shù)據(jù)交換服務(wù)器再接入業(yè)務(wù)應(yīng)用系統(tǒng)裝置。
本實施例的利用消息隊列實現(xiàn)跨區(qū)域跨平臺的數(shù)據(jù)傳輸系統(tǒng)建立在圖2
所描述的服務(wù)器基礎(chǔ)上,在該系統(tǒng)中,數(shù)據(jù)的傳輸從開始到結(jié)束只和樹型網(wǎng) 絡(luò)結(jié)構(gòu)中應(yīng)用前端、應(yīng)用后端所處的位置相關(guān),如一個三層的樹型結(jié)構(gòu),整
個傳輸可劃分為四個處理階段(1)數(shù)據(jù)從應(yīng)用前端(起點)到區(qū)域中心數(shù)據(jù) 交換服務(wù)器l (如果該應(yīng)用前端連接的是總中心數(shù)據(jù)交換服務(wù)器,則直接到總
中心數(shù)據(jù)交換服務(wù)器);(2)數(shù)據(jù)從區(qū)域中心數(shù)據(jù)交換服務(wù)器1到總中心數(shù) 據(jù)交換服務(wù)器;(3 )數(shù)據(jù)從總中心數(shù)據(jù)交換服務(wù)器到區(qū)域中心數(shù)據(jù)交換服務(wù) 器2; (4)數(shù)據(jù)從區(qū)域中心數(shù)據(jù)交換服務(wù)器2到應(yīng)用后端(終點)。
應(yīng)用后端處理應(yīng)用后端處理系統(tǒng)在接收到通訊交換中心傳來的消息數(shù)
據(jù)到達的觸發(fā)提醒后,從本應(yīng)用系統(tǒng)所對應(yīng)的緩存隊列中讀出所屬消息數(shù)據(jù), 再完成后臺的業(yè)務(wù)處理。
當應(yīng)用后端完成業(yè)務(wù)處理后,可以把處理結(jié)果處理形成一個含有結(jié)果的 返回消息包(包格式同前面描述的統(tǒng)一消息包格式),沿原路由相反方向再 返還給應(yīng)用前端,其處理流程和方法與發(fā)送消息數(shù)據(jù)完全一致。
本發(fā)明實施例使消息數(shù)據(jù)包透明的分發(fā)到各個目的應(yīng)用,消息轉(zhuǎn)發(fā)到眾 多分支后,能夠及時追蹤。并且利用消息隊列實現(xiàn)跨區(qū)域跨平臺的數(shù)據(jù)傳輸, 消息數(shù)據(jù)包能夠根據(jù)自身的一個路由屬性隨意分發(fā)和返回。特別是對于分支 屬性復(fù)雜、分支數(shù)量繁多和分支機構(gòu)層次深的消息數(shù)據(jù)包轉(zhuǎn)發(fā),本發(fā)明實施例能夠體現(xiàn)出簡單、高效的技術(shù)特點。
以上僅為本發(fā)明的較佳實施例,非因此局限本發(fā)明的權(quán)利要求,運用本 發(fā)明說明書及圖示內(nèi)容所作的等效結(jié)構(gòu)變化,均同理包含在本發(fā)明的范圍內(nèi)。
權(quán)利要求
1. 一種基于消息隊列的數(shù)據(jù)傳輸方法,其特征是,所述的方法包括以下步驟通過接收消息隊列接收源應(yīng)用端發(fā)送的消息數(shù)據(jù)包;從所述的接收消息隊列中獲取所述的消息數(shù)據(jù)包;根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置;通過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包傳輸給目的應(yīng)用端。
2. 如權(quán)利要求l所述的方法,其特征是,所述的消息數(shù)據(jù)包由包頭和包 體組成;其中,所述的包頭包括目的地區(qū)號、目的應(yīng)用號、源地區(qū)號和源應(yīng)用號; 所述的包體包括消息數(shù)據(jù)內(nèi)容。
3. 如權(quán)利要求l所述的方法,其特征是,根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息將所述的消息數(shù)據(jù)包傳輸給目的應(yīng)用端包括 拆分所述消息數(shù)據(jù)包的包頭和消息內(nèi)容;判斷包頭的地址信息是否為空,如果不為空,則從所述的地址信息中拆 分出該消息數(shù)據(jù)包的路由信息;如果為空,則進行消息數(shù)據(jù)包錯誤記錄,并 丟棄該消息數(shù)據(jù)包。
4. 如權(quán)利要求3所述的方法,其特征是,判斷所述路由信息是命令消息 還是轉(zhuǎn)發(fā)消息,如果為命令消息,則執(zhí)行命令消息中命令指令的操作; 如果為轉(zhuǎn)發(fā)消息,則根據(jù)本地路由參數(shù)配置文件和包頭的目的地區(qū)號、 目的應(yīng)用號、源地區(qū)號和源應(yīng)用號進行路由匹配。
5. 如權(quán)利要求4所述的方法,其特征是,判斷所述的路由匹配是否成功, 如果不成功,則生成路由失敗信息,并將該路由失敗信息反饋給所述的源應(yīng)用端;如果成功,則把消息數(shù)據(jù)包向目的應(yīng)用端發(fā)送。
6. —種基于消息隊列的數(shù)據(jù)傳輸服務(wù)器,其特征是,所述的服務(wù)器包括: 消息隊列單元,用于通過接收消息隊列接收源應(yīng)用端發(fā)送的消息數(shù)據(jù)包; 數(shù)據(jù)包獲取單元,用于從所述的接收消息隊列中獲取所述的消息數(shù)據(jù)包; 數(shù)據(jù)包處理單元,用于根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置;所述的消息隊列單元通過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包傳輸 給目的應(yīng)用端。
7. 如權(quán)利要求6所述的服務(wù)器,其特征是,所述的消息數(shù)據(jù)包由包頭和 包體組成;其中,所述的包頭包括目的地區(qū)號、目的應(yīng)用號、源地區(qū)號和源應(yīng)用號; 所述的包體包括消息數(shù)據(jù)內(nèi)容。
8. 如權(quán)利要求6所述的服務(wù)器,其特征是,所述的數(shù)據(jù)包處理單元拆分 所述消息數(shù)據(jù)包的包頭和消息內(nèi)容;判斷包頭的地址信息是否為空,如果不 為空,則從所述的地址信息中拆分出該消息數(shù)據(jù)包的路由信息;如果為空, 則進行消息數(shù)據(jù)包錯誤記錄,并丟棄該消息數(shù)據(jù)包。
9. 如權(quán)利要求8所述的服務(wù)器,其特征是,所述的數(shù)據(jù)包處理單元判斷 所述路由信息是命令消息還是轉(zhuǎn)發(fā)消息,如果為命令消息,則執(zhí)行命令消息 中命令指令的操作;如果為轉(zhuǎn)發(fā)消息,則根據(jù)本地路由參數(shù)配置文件和包頭 的目的地區(qū)號、目的應(yīng)用號、源地區(qū)號和源應(yīng)用號進行路由匹配。
10. 如權(quán)利要求9所述的服務(wù)器,其特征是,所述的數(shù)據(jù)包處理單元判 斷所述的路由匹配是否成功,如果不成功,則生成路由失敗信息,并將該路 由失敗信息反饋給所述的源應(yīng)用端;如果成功,則把消息數(shù)據(jù)包向目的應(yīng)用 端發(fā)送。
11. 一種基于消息隊列的數(shù)據(jù)傳輸系統(tǒng),其特征是,所述的系統(tǒng)包括源應(yīng)用設(shè)備、數(shù)據(jù)傳輸服務(wù)器和目的應(yīng)用設(shè)備,所述的數(shù)據(jù)傳輸服務(wù)器分別與所述的源應(yīng)用設(shè)備和目的應(yīng)用設(shè)備相連接;所述的源應(yīng)用設(shè)備生成消息數(shù)據(jù)包,并將該消息數(shù)據(jù)包發(fā)送給所述的數(shù) 據(jù)傳輸服務(wù)器;所述的數(shù)據(jù)傳輸服務(wù)器包括消息隊列單元,用于通過接收消息隊列接收源應(yīng)用端發(fā)送的消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元,用于從所述的接收消息隊 列中獲取所述的消息數(shù)據(jù)包;數(shù)據(jù)包處理單元,用于根據(jù)所述消息數(shù)據(jù)包的 地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置;所述 的消息隊列單元通過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包傳輸給目的應(yīng) 用設(shè)備;所述的目的應(yīng)用設(shè)備從所述的發(fā)送消息隊列獲取所述的路由配置后的消 息數(shù)據(jù)包。
12. —種基于消息隊列的數(shù)據(jù)傳輸系統(tǒng),其特征是,所述的系統(tǒng)包括-源應(yīng)用設(shè)備、區(qū)域數(shù)據(jù)傳輸服務(wù)器和中心數(shù)據(jù)傳輸服務(wù)器,所述的源應(yīng)用設(shè) 備通過所述的區(qū)域數(shù)據(jù)傳輸服務(wù)器與所述的中心數(shù)據(jù)傳輸服務(wù)器相連接;所述的源應(yīng)用設(shè)備生成消息數(shù)據(jù)包,并將該消息數(shù)據(jù)包發(fā)送給所述的數(shù) 據(jù)傳輸服務(wù)器;所述的區(qū)域數(shù)據(jù)傳輸服務(wù)器包括消息隊列單元,用于通過接收消息隊 列接收源應(yīng)用端發(fā)送的消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元,用于從所述的接收消 息隊列中獲取所述的消息數(shù)據(jù)包;數(shù)據(jù)包處理單元,用于根據(jù)所述消息數(shù)據(jù) 包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置; 所述的消息隊列單元通過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包傳輸給所 述的中心數(shù)據(jù)傳輸服務(wù)器;所述的中心數(shù)據(jù)傳輸服務(wù)器包括消息隊列單元,用于通過接收消息隊 列接收所述的區(qū)域數(shù)據(jù)傳輸服務(wù)器發(fā)送的消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元,用 于從所述的接收消息隊列中獲取所述的消息數(shù)據(jù)包;數(shù)據(jù)包處理單元,用于根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置;所述的消息隊列單元通過發(fā)送消息隊列將路由配置后的消 息數(shù)據(jù)包轉(zhuǎn)發(fā)。
13. —種基于消息隊列的數(shù)據(jù)傳輸系統(tǒng),其特征是,所述的系統(tǒng)包括目的應(yīng)用設(shè)備、區(qū)域數(shù)據(jù)傳輸服務(wù)器和中心數(shù)據(jù)傳輸服務(wù)器,所述的目的應(yīng)用設(shè)備通過所述區(qū)域數(shù)據(jù)傳輸服務(wù)器與所述中心數(shù)據(jù)傳輸服務(wù)器相連接;所述的中心數(shù)據(jù)傳輸服務(wù)器包括消息隊列單元,用于通過接收消息隊列接收源應(yīng)用端發(fā)來的消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元,用于從所述的接收消 息隊列中獲取所述的消息數(shù)據(jù)包;數(shù)據(jù)包處理單元,用于根據(jù)所述消息數(shù)據(jù) 包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置; 所述的消息隊列單元通過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包轉(zhuǎn)發(fā);所述的區(qū)域數(shù)據(jù)傳輸服務(wù)器包括消息隊列單元,用于通過接收消息隊 列接收所述中心數(shù)據(jù)傳輸服務(wù)器轉(zhuǎn)發(fā)的消息數(shù)據(jù)包;數(shù)據(jù)包獲取單元,用于 從所述的接收消息隊列中獲取所述的消息數(shù)據(jù)包;數(shù)據(jù)包處理單元,用于根 據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包 進行路由配置;所述的消息隊列單元通過發(fā)送消息隊列將路由配置后的消息 數(shù)據(jù)包轉(zhuǎn)發(fā);所述的目的應(yīng)用設(shè)備從所述區(qū)域數(shù)據(jù)傳輸服務(wù)器的發(fā)送消息隊列獲取所 述的路由配置后的消息數(shù)據(jù)包。
全文摘要
本發(fā)明提供一種基于消息隊列的數(shù)據(jù)傳輸方法、服務(wù)器及系統(tǒng),所述的方法包括以下步驟通過接收消息隊列接收源應(yīng)用端發(fā)送的消息數(shù)據(jù)包;從所述的接收消息隊列中獲取所述的消息數(shù)據(jù)包;根據(jù)所述消息數(shù)據(jù)包的地址信息和預(yù)存儲的路由配置信息對所述的消息數(shù)據(jù)包進行路由配置;通過發(fā)送消息隊列將路由配置后的消息數(shù)據(jù)包傳輸給目的應(yīng)用端。以提供一種可靠的消息數(shù)據(jù)包轉(zhuǎn)發(fā)機制,使消息數(shù)據(jù)包能夠根據(jù)自身的一個路由屬性隨意分發(fā)和返回。
文檔編號H04L12/58GK101431476SQ20081023960
公開日2009年5月13日 申請日期2008年12月12日 優(yōu)先權(quán)日2008年12月12日
發(fā)明者伊勁松, 明 殷, 怡 王, 趙子川 申請人:中國工商銀行股份有限公司