專利名稱:一種傳輸系統(tǒng)數(shù)據(jù)的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明公開了一種傳輸系統(tǒng)數(shù)據(jù)的系統(tǒng)及方法,特別涉及到一種利用企業(yè)服務(wù)總線和消息服務(wù)器來進行傳輸系統(tǒng)數(shù)據(jù)的系統(tǒng)及方法。
背景技術(shù):
近年來,由于企業(yè)信息化的不斷深入以及網(wǎng)絡(luò)技術(shù)突飛猛進的發(fā)展,分布式系統(tǒng)部署在大規(guī)模軟件應(yīng)用中得到廣泛應(yīng)用。大規(guī)模分布式的企業(yè)應(yīng)用需要相對簡單而實用的中間件技術(shù)來簡化和統(tǒng)一越來越復(fù)雜、繁瑣的企業(yè)級信息系統(tǒng)平臺,為此,IT業(yè)界提出面向服務(wù)的體系結(jié)構(gòu)(Service-OrientedArchitecture, SOA), SOA是一種架構(gòu)和組織IT基礎(chǔ)架構(gòu)及業(yè)務(wù)功能的方法,它是一個開放的、可擴展、可組合的分布式軟件架構(gòu)模型,它將應(yīng)用程序的不同功能單元封裝為服務(wù)。服務(wù)之間通過定義良好的接口和契約聯(lián)系起來,接口是 采用中立的方式進行定義的,獨立于實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言,使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以用一種統(tǒng)一和通用的方式進行交互。為了能夠更好的地控制構(gòu)建于SOA上的服務(wù),又為了應(yīng)用安全性、策略性、可靠性以及管理方面的要求,在SOA體系結(jié)構(gòu)的框架中加入了一個新的軟件對象。這個對象就是企業(yè)服務(wù)總線(Enterprise Service Bus,ESB),ESB作為SOA的核心和基礎(chǔ)架構(gòu),它提供了網(wǎng)絡(luò)中服務(wù)最基本的連接中樞,ESB是傳統(tǒng)中間件技術(shù)與XML、Web服務(wù)等技術(shù)相互結(jié)合的產(chǎn)物,用于實現(xiàn)企業(yè)不同服務(wù)之間的通信與整合,不同消息和信息的準確、高效和安全傳遞。具體到行業(yè)和應(yīng)用上,很多行業(yè)和領(lǐng)域大規(guī)模軟件應(yīng)用范圍廣,系統(tǒng)版本、子系統(tǒng)眾多,并且各級版本、子系統(tǒng)之間要保持數(shù)據(jù)的互聯(lián)互通。如何建立一條信息通道是應(yīng)用需要解決的關(guān)鍵步驟。某個大型公司的數(shù)據(jù)可能保存在不同的數(shù)據(jù)庫系統(tǒng)甚至文件系統(tǒng)上。比如北京分公司的數(shù)據(jù)保存在Oracle數(shù)據(jù)庫中,總部的數(shù)據(jù)保存在SQL Server數(shù)據(jù)庫中,甚至這些不同的信息系統(tǒng),是由不同的軟件廠商、基于不同的開發(fā)語言開發(fā)的。比如北京分公司的信息系統(tǒng)是用J2EE架構(gòu)的,公司總部信息系統(tǒng)是.NET架構(gòu)的,其他分公司的信息系統(tǒng)可能是采用VB、Delphi等開發(fā)的等等。目前現(xiàn)有對不同系統(tǒng)的數(shù)據(jù)傳輸?shù)慕鉀Q方案主要有兩個方面一是利用數(shù)據(jù)庫本身能力完成數(shù)據(jù)同步工作;二是研制過程中將數(shù)據(jù)傳輸功能硬編碼在系統(tǒng)中。但是,這兩種解決方案存在明顯的不足。第一種方法無法適應(yīng)復(fù)雜多變的數(shù)據(jù)庫類型、數(shù)據(jù)結(jié)構(gòu)。第二種方法各子系統(tǒng)、子模塊均要進行編碼,其維護性和復(fù)雜度均不理想,影響系統(tǒng)的開發(fā)效率、靈活性和穩(wěn)定性。另外,在大型分布式系統(tǒng)中,數(shù)據(jù)的傳輸?shù)姆€(wěn)定性還取決于網(wǎng)絡(luò)的穩(wěn)定性,即時在線式的同步傳輸數(shù)據(jù)經(jīng)常發(fā)生由于網(wǎng)絡(luò)通訊不暢引起的數(shù)據(jù)傳輸斷線或者錯誤,導(dǎo)致數(shù)據(jù)傳輸?shù)牟环€(wěn)定性
發(fā)明內(nèi)容
本發(fā)明提供了一種傳輸系統(tǒng)數(shù)據(jù)的系統(tǒng)及方法,利用消息中間件的傳輸穩(wěn)定性和企業(yè)服務(wù)總線的強大控制能力,統(tǒng)一處理解決多系統(tǒng)間的數(shù)據(jù)上報、下發(fā)等傳輸業(yè)務(wù),消除各子系統(tǒng)間的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫種類的差異,降低業(yè)務(wù)系統(tǒng)的研發(fā)復(fù)雜度,保證系統(tǒng)間數(shù)據(jù)傳輸穩(wěn)定。 根據(jù)本發(fā)明的一個方面,提供了一種傳輸系統(tǒng)數(shù)據(jù)的系統(tǒng),該系統(tǒng)包括源端業(yè)務(wù)模塊源端業(yè)務(wù)模塊生成數(shù)據(jù)傳輸消息,并向源端消息服務(wù)器模塊發(fā)送消息;源端消息服務(wù)器模塊接收和存儲源端業(yè)務(wù)模塊發(fā)送的消息,接收和存儲源端企業(yè)服務(wù)總線模塊處理后的數(shù)據(jù)包消息,并將處理后的數(shù)據(jù)包消息發(fā)送到目標消息服務(wù)器模塊;源端企業(yè)服務(wù)總線模塊定時從源端消息服務(wù)器模塊上讀取消息,解析消息,在源端業(yè)務(wù)模塊的數(shù)據(jù)庫中查找到需要投遞的數(shù)據(jù),將查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù),并將處理后的數(shù)據(jù)發(fā)送到源端消息服務(wù)器模塊;目標消息服務(wù)器模塊接收和存儲從源端消息服務(wù)器模塊發(fā)送的消息;目標企業(yè)服務(wù)總線模塊定時從目標消息服務(wù)器模塊上提取消息,解析消息,在目標數(shù)據(jù)庫服務(wù)器上執(zhí)行數(shù)據(jù)傳輸命令,完成數(shù)據(jù)傳輸。其中,所述傳輸系統(tǒng)數(shù)據(jù)的系統(tǒng)進一步還包括,日志記錄模塊,該模塊記錄所述各個模塊之間消息傳遞的日志,以及各個模塊內(nèi)部數(shù)據(jù)處理的操作日志。根據(jù)本發(fā)明的另一個方面,提供了一種傳輸系統(tǒng)數(shù)據(jù)的方法,該方法包括以下步驟業(yè)務(wù)系統(tǒng)將傳輸命令通過接口的方式,發(fā)送消息到源端消息服務(wù)器上;源端企業(yè)服務(wù)總線程序定時從源端消息服務(wù)器上讀取消息,解析消息,在源端數(shù)據(jù)庫查找到需要投遞到目標系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù);源端企業(yè)服務(wù)總線將所述查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù),然后將處理后的數(shù)據(jù)發(fā)送到源端消息服務(wù)器上;源端消息服務(wù)器將處理后的數(shù)據(jù)投遞到目標消息服務(wù)器上;目標企業(yè)服務(wù)總線程序定時從目標消息服務(wù)器上提取消息,解析消息,在目標數(shù)據(jù)庫服務(wù)器上完成數(shù)據(jù)傳輸。其中,所述源端消息服務(wù)器和所述目標消息服務(wù)器發(fā)送和接收消息是異步進行的,進一步,所述源端消息服務(wù)器和所述目標消息服務(wù)器發(fā)送和接收消息還可以是離線進行的,所述源端消息服務(wù)器和所述目標消息服務(wù)器為異步離線消息的中轉(zhuǎn)站。其中,所述的方法進一步還包括日志記錄步驟,該步驟對所述每一個動作進行日志記錄,以保證全過程可審計和查詢。其中,所述業(yè)務(wù)系統(tǒng)的傳輸命令包括上報、下發(fā)、發(fā)布三組命令集,分別對應(yīng)業(yè)務(wù)系統(tǒng)中對上級系統(tǒng)的數(shù)據(jù)報送、對下級系統(tǒng)的數(shù)據(jù)下發(fā)及對于所有系統(tǒng)的數(shù)據(jù)共享業(yè)務(wù)。其中,所述消息接口的方式,包括不限于socket、jms、webservice、HTTP。其中,所述源端消息服務(wù)器上的消息包含源地址、目標地址、業(yè)務(wù)代碼和數(shù)據(jù)傳輸命令。其中,所述源端企業(yè)服務(wù)總線程序定時從源端消息服務(wù)器上讀取消息后,將消息的狀態(tài)設(shè)置為“已讀取”。其中,所述方法還包括,在源端數(shù)據(jù)庫查找到需要投遞到目標系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)后,進一步還包括,對查找到的數(shù)據(jù)進行檢測,判斷數(shù)據(jù)是否符合數(shù)據(jù)傳輸條件,結(jié)果如果為“是”,所述源端企業(yè)服務(wù)總線將所述查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù),如果判斷結(jié)果為“否”,則將消息的狀態(tài)設(shè)置為“檢測失敗”,同時源端消息服務(wù)器通知業(yè)務(wù)系統(tǒng)重新發(fā)送傳輸命令。其中,所述檢測包括判斷數(shù)據(jù)量是否符合傳輸大小要求,或檢測數(shù)據(jù)狀態(tài)是否處于非編輯狀態(tài)。其中,所述源端企 業(yè)服務(wù)總線將所述查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù),所述的處理過程為在源端企業(yè)服務(wù)總線中對所述查找到的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換,包括不限于為不同的數(shù)據(jù)庫類型的轉(zhuǎn)換、不同數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換,不同SQL腳本的轉(zhuǎn)換。其中,所述源端企業(yè)服務(wù)總線將所述查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù),所述的處理過程進一步還包括,將數(shù)據(jù)轉(zhuǎn)換后的數(shù)據(jù)進行Base64編碼處理,然后將Base64編碼后消息體數(shù)據(jù)和消息頭數(shù)據(jù)進行進一步組合形成新的數(shù)據(jù)包,所述消息頭數(shù)據(jù)包括源地址、目標地址、業(yè)務(wù)代碼和數(shù)據(jù)傳輸命令。其中,所述源端企業(yè)服務(wù)總線將所述查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù)后,進一步還包括,判斷數(shù)據(jù)轉(zhuǎn)換是否成功的步驟,若處理結(jié)果為“失敗”,則將源端消息服務(wù)器上的消息的狀態(tài)設(shè)置為“轉(zhuǎn)換失敗”,同時源端消息服務(wù)器通知業(yè)務(wù)系統(tǒng)重新發(fā)送傳輸命令;若處理結(jié)果為“正?!保瑒t源端消息服務(wù)器將處理后的數(shù)據(jù)發(fā)送到目標消息服務(wù)器。其中,源端消息服務(wù)器將處理后的數(shù)據(jù)發(fā)送到目標消息服務(wù)器的過程,包括如下步驟讀取所述消息頭數(shù)據(jù)中的源地址、目標地址;源端消息服務(wù)器啟動路由表查詢功能,根據(jù)所述源地址和目標地址,進行尋址;查找到其相應(yīng)的目標地址后,將處理后的數(shù)據(jù)發(fā)送到目標消息服務(wù)器上。其中,所述源端消息服務(wù)器將處理后的數(shù)據(jù)發(fā)送到目標消息服務(wù)器后,進一步還包括如下步驟所述數(shù)據(jù)發(fā)送結(jié)果是否成功,如果發(fā)送失敗,則將源端消息服務(wù)器上的消息的狀態(tài)設(shè)置為“投遞失敗”,同時源端消息服務(wù)器通知業(yè)務(wù)系統(tǒng)重新發(fā)送傳輸命令。其中,所述目標企業(yè)服務(wù)總線程序定時從目標消息服務(wù)器上提取消息,解析消息,在目標數(shù)據(jù)庫服務(wù)器上完成數(shù)據(jù)傳輸?shù)倪^程為目標企業(yè)服務(wù)總線程序定時從目標消息服務(wù)器上提取消息;分解消息體數(shù)據(jù)和消息頭數(shù)據(jù); 將消息體數(shù)據(jù)進行Base64解碼;在目標數(shù)據(jù)庫上運行解碼后的SQL語句;如果SQL語句執(zhí)行不正常,則目標企業(yè)服務(wù)總線通知目標消息服務(wù)器任務(wù)執(zhí)行失敗,修改目標消息服務(wù)器的消息頭數(shù)據(jù)中的消息狀態(tài)為“SQL執(zhí)行失敗”。成功執(zhí)行SQL腳本后,完成整個系統(tǒng)數(shù)據(jù)的傳輸。依據(jù)本發(fā)明的系統(tǒng)和方法,在數(shù)據(jù)傳輸過程中,增加了源端消息服務(wù)器和目標消息服務(wù)器,利用消息中間件的傳輸穩(wěn)定性和企業(yè)服務(wù)總線的控制能力,統(tǒng)一處理解決多系統(tǒng)間的數(shù)據(jù)上報、下發(fā)等數(shù)據(jù)傳輸業(yè)務(wù),業(yè)務(wù)系統(tǒng)只需要負責將數(shù)據(jù)傳輸命令發(fā)出,不用負責目標數(shù)據(jù)庫的類型和具體結(jié)構(gòu),同樣,目標數(shù)據(jù)庫服務(wù)器可以對應(yīng)不同的源端數(shù)據(jù)庫類型。傳輸數(shù)據(jù)的查找、打包、數(shù)據(jù)轉(zhuǎn)換、發(fā)送處理通過源端企業(yè)服務(wù)總線和源端消息服務(wù)器的交互完成,轉(zhuǎn)換后的數(shù)據(jù)包通過源端消息服務(wù)器和目標消息服務(wù)器的交互完成,數(shù)據(jù)包的提取和解析,SQL的執(zhí)行由目標企業(yè)服務(wù)總線和目標消息服務(wù)器的交互完成,這些交互過程可以是即時在線進行,還可以是異步離線進行。該系統(tǒng)和方法可以適應(yīng)復(fù)雜多變的數(shù)據(jù)庫類型、數(shù)據(jù)結(jié)構(gòu),各子系統(tǒng)、子模塊不用單獨進行編碼,提高了系統(tǒng)的可維護性,降低了系統(tǒng)的復(fù)雜度,使系統(tǒng)整體的開發(fā)效率、靈活性和穩(wěn)定性得到極大提高。另外,源端消息服務(wù)器和目標消息服務(wù)器充當了消息發(fā)送和接收的中轉(zhuǎn)站,整個數(shù)據(jù)傳輸系統(tǒng)和方法可以實現(xiàn)異步離線進行數(shù)據(jù)傳輸,從而使得整個系統(tǒng)可以適應(yīng)復(fù)雜的網(wǎng)絡(luò)環(huán)境,可以靈活適應(yīng)多變的拓撲環(huán)境,從而有效統(tǒng)一處理數(shù)據(jù)傳輸業(yè)務(wù)、保證系統(tǒng)間數(shù)據(jù)傳輸穩(wěn)定。
圖I為本發(fā)明實施例一傳輸系統(tǒng)數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)圖。圖2為本發(fā)明實施例二傳輸系統(tǒng)數(shù)據(jù)的方法流程圖。
具體實施例方式本發(fā)明實施例一提供一種傳輸系統(tǒng)數(shù)據(jù)的系統(tǒng),其結(jié)構(gòu)如圖I所示,該系統(tǒng)包括源端業(yè)務(wù)模塊Ml :源端業(yè)務(wù)模塊生成數(shù)據(jù)傳輸消息,并向源端消息服務(wù)器模塊2發(fā)送消息;源端消息服務(wù)器模塊M2 :接收和存儲源端業(yè)務(wù)模塊Ml發(fā)送的消息,接收和存儲源端企業(yè)服務(wù)總線模塊M3處理后的數(shù)據(jù)包消息,并將處理后的數(shù)據(jù)包消息發(fā)送到目標消息服務(wù)器模塊M4;源端企業(yè)服務(wù)總線模塊M3 :定時從源端消息服務(wù)器模塊M2上讀取消息,解析消息,在源端業(yè)務(wù)模塊Ml的數(shù)據(jù)庫中查找到需要投遞的數(shù)據(jù),將查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù),并將處理后的數(shù)據(jù)發(fā)送到源端消息服務(wù)器模塊M2 ;目標消息服務(wù)器模塊M4:接收和存儲從源端消息服務(wù)器模塊M2發(fā)送的消息;目標企業(yè)服務(wù)總線模塊M5:定時從目標消息服務(wù)器模塊上提取消息,解析消息,在目標數(shù)據(jù)庫服務(wù)器上執(zhí)行數(shù)據(jù)傳輸命令,完成數(shù)據(jù)傳輸。日志記錄模塊M6,該模塊記錄所述各個模塊之間消息傳遞的日志,以及各個模塊內(nèi)部數(shù)據(jù)處理的操作日志。本發(fā)明實施例二提供一種在一個訂單業(yè)務(wù)系統(tǒng)中傳輸系統(tǒng)數(shù)據(jù)的方法,如圖2所示,為本發(fā)明實施例二的方法流程圖。現(xiàn)結(jié)合圖2,對本發(fā)明傳輸系統(tǒng)數(shù)據(jù)的方法進行詳細說明。以一個企業(yè)的訂單處理業(yè)務(wù)系統(tǒng)為例,北京分公司要定期將訂單數(shù)據(jù)傳輸?shù)焦究偛浚本┓止镜挠唵蜗到y(tǒng)IP地址為192. 168. I. 1,由J2EE平臺實現(xiàn),采用Oracle數(shù)據(jù)庫服務(wù),而總部訂單系統(tǒng)的IP地址為192. 168. O. 1,由.NET平臺構(gòu)建,采用Sql Server數(shù)據(jù)庫服務(wù)。
表一北京分公司和總部訂單系統(tǒng)配置
權(quán)利要求
1.一種傳輸系統(tǒng)數(shù)據(jù)的方法,該方法包括以下步驟 業(yè)務(wù)系統(tǒng)將傳輸命令通過接口的方式,發(fā)送消息到源端消息服務(wù)器上; 源端企業(yè)服務(wù)總線程序定時從源端消息服務(wù)器上讀取消息,解析消息,在源端數(shù)據(jù)庫查找到需要投遞到目標系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù); 源端企業(yè)服務(wù)總線將所述查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù),然后將處理后的數(shù)據(jù)發(fā)送到源端消息服務(wù)器上; 源端消息服務(wù)器將處理后的數(shù)據(jù)投遞到目標消息服務(wù)器上; 目標企業(yè)服務(wù)總線程序定時從目標消息服務(wù)器上提取消息,解析消息,在目標數(shù)據(jù)庫服務(wù)器上完成數(shù)據(jù)傳輸。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述源端消息服務(wù)器和所述目標消息服務(wù)器發(fā)送和接收消息是異步進行的,進一步,所述源端消息服務(wù)器和所述目標消息服務(wù)器發(fā)送和接收消息還可以是離線進行的,所述源端消息服務(wù)器和所述目標消息服務(wù)器為異步離線消息的中轉(zhuǎn)站。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述的方法進一步還包括日志記錄步驟,該步驟對所述每一個動作進行日志記錄,以保證全過程可審計和查詢。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述業(yè)務(wù)系統(tǒng)的傳輸命令包括上報、下發(fā)、發(fā)布三組命令集,分別對應(yīng)業(yè)務(wù)系統(tǒng)中對上級系統(tǒng)的數(shù)據(jù)報送、對下級系統(tǒng)的數(shù)據(jù)下發(fā)及對于所有系統(tǒng)的數(shù)據(jù)共享業(yè)務(wù)。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述消息接口的方式,包括不限于socket、jms、webservice、HTTP。
6.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述源端消息服務(wù)器上的消息包含源地址、目標地址、業(yè)務(wù)代碼和數(shù)據(jù)傳輸命令。
7.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述源端企業(yè)服務(wù)總線程序定時從源端消息服務(wù)器上讀取消息后,將消息的狀態(tài)設(shè)置為“已讀取”。
8.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括,在源端數(shù)據(jù)庫查找到需要投遞到目標系統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)后,進一步還包括,對查找到的數(shù)據(jù)進行檢測,判斷數(shù)據(jù)是否符合數(shù)據(jù)傳輸條件,結(jié)果如果為“是”,所述源端企業(yè)服務(wù)總線將所述查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù),如果判斷結(jié)果為“否”,則將消息的狀態(tài)設(shè)置為“檢測失敗”,同時源端消息服務(wù)器通知業(yè)務(wù)系統(tǒng)重新發(fā)送傳輸命令。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述檢測包括判斷數(shù)據(jù)量是否符合傳輸大小要求,或檢測數(shù)據(jù)狀態(tài)是否處于非編輯狀態(tài)。
10.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述源端企業(yè)服務(wù)總線將所述查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù),所述的處理過程為在源端企業(yè)服務(wù)總線中對所述查找到的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換,包括不限于為不同的數(shù)據(jù)庫類型的轉(zhuǎn)換、不同數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換,不同SQL腳本的轉(zhuǎn)換。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述源端企業(yè)服務(wù)總線將所述查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù),所述的處理過程進一步還包括,將數(shù)據(jù)轉(zhuǎn)換后的數(shù)據(jù)進行Base64編碼處理,然后將Base64編碼后消息體數(shù)據(jù)和消息頭數(shù)據(jù)進行進一步組合形成新的數(shù)據(jù)包,所述消息頭數(shù)據(jù)包括源地址、目標地址、業(yè)務(wù)代碼和數(shù)據(jù)傳輸命令。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述源端企業(yè)服務(wù)總線將所述查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù)后,進一步還包括,判斷數(shù)據(jù)轉(zhuǎn)換是否成功的步驟,若處理結(jié)果為“失敗”,則將源端消息服務(wù)器上的消息的狀態(tài)設(shè)置為“轉(zhuǎn)換失敗”,同時源端消息服務(wù)器通知業(yè)務(wù)系統(tǒng)重新發(fā)送傳輸命令;若處理結(jié)果為“正?!?,則源端消息服務(wù)器將處理后的數(shù)據(jù)發(fā)送到目標消息服務(wù)器。
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,源端消息服務(wù)器將處理后的數(shù)據(jù)發(fā)送到目標消息服務(wù)器的過程,包括如下步驟 讀取所述消息頭數(shù)據(jù)中的源地址、目標地址; 源端消息服務(wù)器啟動路由表查詢功能,根據(jù)所述源地址和目標地址,進行尋址; 查找到其相應(yīng)的目標地址后,將處理后的數(shù)據(jù)發(fā)送到目標消息服務(wù)器上。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述源端消息服務(wù)器將處理后的數(shù)據(jù)發(fā)送到目標消息服務(wù)器后,進一步還包括如下步驟所述數(shù)據(jù)發(fā)送結(jié)果是否成功,如果發(fā)送失敗,則將源端消息服務(wù)器上的消息的狀態(tài)設(shè)置為“投遞失敗”,同時源端消息服務(wù)器通知業(yè)務(wù)系統(tǒng)重新發(fā)送傳輸命令。
15.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述目標企業(yè)服務(wù)總線程序定時從目標消息服務(wù)器上提取消息,解析消息,在目標數(shù)據(jù)庫服務(wù)器上完成數(shù)據(jù)傳輸?shù)倪^程為 目標企業(yè)服務(wù)總線程序定時從目標消息服務(wù)器上提取消息; 分解消息體數(shù)據(jù)和消息頭數(shù)據(jù); 將消息體數(shù)據(jù)進行Base64解碼; 在目標數(shù)據(jù)庫上運行解碼后的SQL語句; 如果SQL語句執(zhí)行不正常,則目標企業(yè)服務(wù)總線通知目標消息服務(wù)器任務(wù)執(zhí)行失敗,修改目標消息服務(wù)器的消息頭數(shù)據(jù)中的消息狀態(tài)為“SQL執(zhí)行失敗”。
16.—種傳輸系統(tǒng)數(shù)據(jù)的系統(tǒng),該系統(tǒng)包括 源端業(yè)務(wù)模塊源端業(yè)務(wù)模塊生成數(shù)據(jù)傳輸消息,并向源端消息服務(wù)器模塊發(fā)送消息;源端消息服務(wù)器模塊接收和存儲源端業(yè)務(wù)模塊發(fā)送的消息,接收和存儲源端企業(yè)服務(wù)總線模塊處理后的數(shù)據(jù)包消息,并將處理后的數(shù)據(jù)包消息發(fā)送到目標消息服務(wù)器模塊;源端企業(yè)服務(wù)總線模塊定時從源端消息服務(wù)器模塊上讀取消息,解析消息,在源端業(yè)務(wù)模塊的數(shù)據(jù)庫中查找到需要投遞的數(shù)據(jù),將查找到的數(shù)據(jù)處理為符合投遞要求的數(shù)據(jù),并將處理后的數(shù)據(jù)發(fā)送到源端消息服務(wù)器模塊; 目標消息服務(wù)器模塊接收和存儲從源端消息服務(wù)器模塊發(fā)送的消息; 目標企業(yè)服務(wù)總線模塊定時從目標消息服務(wù)器模塊上提取消息,解析消息,在目標數(shù)據(jù)庫服務(wù)器上執(zhí)行數(shù)據(jù)傳輸命令,完成數(shù)據(jù)傳輸。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其特征在于,所述傳輸系統(tǒng)數(shù)據(jù)的系統(tǒng)進一步還包括,日志記錄模塊,該模塊記錄所述各個模塊之間消息傳遞的日志,以及各個模塊內(nèi)部數(shù)據(jù)處理的操作日志。
全文摘要
本發(fā)明公開了一種利用企業(yè)服務(wù)總線來進行傳輸系統(tǒng)數(shù)據(jù)的系統(tǒng)及方法,該系統(tǒng)和方法利用消息中間件的傳輸穩(wěn)定性和企業(yè)服務(wù)總線的控制能力,統(tǒng)一處理解決多系統(tǒng)間的數(shù)據(jù)上報、下發(fā)等數(shù)據(jù)傳輸業(yè)務(wù),業(yè)務(wù)系統(tǒng)只需要負責將數(shù)據(jù)傳輸命令發(fā)出,不用負責目標數(shù)據(jù)庫的類型和具體結(jié)構(gòu)。傳輸數(shù)據(jù)的查找、打包、數(shù)據(jù)轉(zhuǎn)換、投遞處理通過企業(yè)服務(wù)總線和源端消息服務(wù)器、目標消息服務(wù)器的交互完成,該交互過程可以即時同步進行,還可以是異步離線進行。該系統(tǒng)和方法可以適應(yīng)復(fù)雜多變的數(shù)據(jù)庫類型、數(shù)據(jù)結(jié)構(gòu),各子系統(tǒng)、子模塊不用單獨進行編碼,提高了系統(tǒng)的可維護性,降低了系統(tǒng)的復(fù)雜度,使系統(tǒng)整體的開發(fā)效率、靈活性和穩(wěn)定性得到極大提高。
文檔編號H04L12/58GK102970112SQ201210504619
公開日2013年3月13日 申請日期2012年11月30日 優(yōu)先權(quán)日2012年11月30日
發(fā)明者安洋, 陳雪松, 欒明君, 張立松, 焦金禹, 代啟亮, 楊梅, 文遼兵 申請人:中國電子科技集團公司第十五研究所