專利名稱:一種多線程報文轉(zhuǎn)發(fā)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及實時數(shù)據(jù)交換系統(tǒng),具體涉及一種多線程報文轉(zhuǎn)發(fā)方法及系統(tǒng)。
背景技術(shù):
隨著信息技術(shù)的不斷發(fā)展和各行業(yè)信息化建設(shè)逐步完善,新建、舊有軟件系統(tǒng)之間或者不同用戶的軟件系統(tǒng)之間存在實時數(shù)據(jù)交換的要求。為解決軟件之間的實時數(shù)據(jù)交換問題,各類一對一、一對多或多對多的實時數(shù)據(jù)交換系統(tǒng)或技術(shù)應(yīng)運而生。按財政部要求,財政業(yè)務(wù)中涉及資金劃撥、支付、清算的業(yè)務(wù)操作都要由財政部門和銀行共同完成。以江西省財政廳區(qū)縣財政應(yīng)用系統(tǒng)為例,全省財(政)銀(行)數(shù)據(jù)交換平臺統(tǒng)一部署在省廳,同時服務(wù)于涉及財政資金業(yè)務(wù)的全省30多家全國和地方銀行、130多 個地市(區(qū)縣)財政局、上萬個預(yù)算單位,并且財政業(yè)務(wù)系統(tǒng)和銀行業(yè)務(wù)系統(tǒng)都是實時系統(tǒng),這就對財銀數(shù)據(jù)交換平臺的穩(wěn)定性、可靠性、可擴展性,特別是通訊協(xié)議兼容性、數(shù)據(jù)收發(fā)準(zhǔn)確性和系統(tǒng)響應(yīng)實時性提出了極高要求。經(jīng)過分析,已有的財銀數(shù)據(jù)交換系統(tǒng)大都有以下部分或全部缺點>只能一對一或一對多數(shù)據(jù)交換,不能滿足江西省多家銀行與多個財政局多對多數(shù)據(jù)交換的功能要求;>只能提供單向?qū)崟r數(shù)據(jù)交換,不能同時滿足財政到銀行和銀行到財政雙向?qū)崟r數(shù)據(jù)交換的功能要求;>內(nèi)部報文轉(zhuǎn)發(fā)模塊是單線程模式,效率較低。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種多線程報文轉(zhuǎn)發(fā)方法及系統(tǒng),實現(xiàn)財銀數(shù)據(jù)交換平臺多對多實時報文數(shù)據(jù)的交換,提高報文轉(zhuǎn)發(fā)的效率。為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下一種多線程報文轉(zhuǎn)發(fā)方法,包括以下步驟(I)為每家銀行創(chuàng)建一個銀行代理對象,為每個財政局創(chuàng)建一個財政局代理對象;所述銀行代理對象用于處理財銀數(shù)據(jù)交換平臺與銀行業(yè)務(wù)系統(tǒng)的轉(zhuǎn)發(fā)報文;所述財政局代理對象用于處理財銀數(shù)據(jù)交換平臺與財政局業(yè)務(wù)系統(tǒng)的轉(zhuǎn)發(fā)報文;所述財銀數(shù)據(jù)交換平臺是指銀行業(yè)務(wù)系統(tǒng)和財政局業(yè)務(wù)系統(tǒng)的業(yè)務(wù)交換平臺;(2)為每個銀行代理對象設(shè)置一個銀行專用線程和多個銀行處理線程,為每個財政局代理對象設(shè)置一個財政局專用線程和多個財政局處理線程;所述銀行專用線程用于接收財政局業(yè)務(wù)系統(tǒng)發(fā)送到銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文;所述財政局專用線程用于接收銀行業(yè)務(wù)系統(tǒng)發(fā)送到財政局業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文;(3)查看銀行專用線程/財政局專用線程是否接收到財政局業(yè)務(wù)系統(tǒng)/銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文,若是則進入步驟(4),若否則重復(fù)步驟(3);所述業(yè)務(wù)報文包括報文頭標(biāo)識;所述報文頭標(biāo)識包括業(yè)務(wù)報文來源的銀行或財政局ID、業(yè)務(wù)報文所要發(fā)送到的銀行或財政局ID和業(yè)務(wù)類型;(4)根據(jù)業(yè)務(wù)報文的報文頭標(biāo)識查找所對應(yīng)的銀行處理線程或財政局處理線程,啟動銀行處理線程或財政局處理線程對業(yè)務(wù)報文進行處理。進一步,如上所述的一種多線程報文轉(zhuǎn)發(fā)方法,每個銀行處理線程都有一個銀行專用消息隊列用來存放銀行業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的待處理的業(yè)務(wù)報文;每個財政業(yè)務(wù)處理線程都有一個財政局專用消息隊列用來存放財政局業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的待處理的業(yè)務(wù)報文。進一步,如上所述的一種多線程報文轉(zhuǎn)發(fā)方法,步驟(4)中,所述的銀行處理線程和財政局處理線程均工作在等待-響應(yīng)模式下,當(dāng)處理線程所對應(yīng)的專用消息隊列中存入業(yè)務(wù)報文時,處理線程由等待狀態(tài)轉(zhuǎn)為工作狀態(tài)進行業(yè)務(wù)報文處理。此工作模式可在線程處于等待狀態(tài)時不消耗CPU資源。進一步,如上所述的一種多線程報文轉(zhuǎn)發(fā)方法,財銀數(shù)據(jù)交換平臺設(shè)有全局隊列·映射表,每個銀行專用消息隊列和財政局專用消息隊列都要將其相關(guān)信息注冊到全局隊列映射表中;所述相關(guān)信息包括專用消息隊列的銀行或財政局ID、業(yè)務(wù)類型、消息隊列ID。進一步,如上所述的一種多線程報文轉(zhuǎn)發(fā)方法,步驟(4)中,啟動銀行處理線程或財政局處理線程對業(yè)務(wù)報文進行處理的具體方式如下I)根據(jù)報文頭標(biāo)識中的銀行或財政局ID從全局隊列映射表中查找業(yè)務(wù)報文所要發(fā)送到的銀行或財政局;2)根據(jù)業(yè)務(wù)類型查找銀行或財政局對應(yīng)的銀行處理線程或財政局處理線程;3)將業(yè)務(wù)報文保存到銀行處理線程或財政業(yè)務(wù)處理線程的專用消息隊列中,專用消息隊列所對應(yīng)的處理線程從等待狀態(tài)轉(zhuǎn)為工作狀態(tài)開始處理專用消息隊列中的業(yè)務(wù)報文數(shù)據(jù)。更進一步,如上所述的一種多線程報文轉(zhuǎn)發(fā)方法,步驟(3)中,當(dāng)處理線程處理完業(yè)務(wù)報文后,處理線程自動由工作狀態(tài)進入等待狀態(tài),直到有新的業(yè)務(wù)報文放入到處理線程所對應(yīng)的專用消息隊列中。一種多線程報文轉(zhuǎn)發(fā)系統(tǒng),包括代理對象創(chuàng)建模塊用于為每家銀行創(chuàng)建一個銀行代理對象,為每個財政局創(chuàng)建一個財政局代理對象;所述銀行代理對象用于處理財銀數(shù)據(jù)交換平臺與銀行業(yè)務(wù)系統(tǒng)的報文;所述財政局代理對象用于處理財銀數(shù)據(jù)交換平臺與財政局業(yè)務(wù)系統(tǒng)的報文;處理線程設(shè)置模塊用于為每個銀行代理對象設(shè)置多個銀行處理線程,為每個財政局代理對象設(shè)置多個財政業(yè)務(wù)處理線程;所述銀行處理線程用于處理銀行業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的業(yè)務(wù)報文;所述財政業(yè)務(wù)處理線程用于處理財政局業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的業(yè)務(wù)報文;專用線程創(chuàng)建模塊用于為每個銀行代理對象設(shè)置一個銀行專用線程,為每個財政局代理對象設(shè)置一個財政局專用線程;所述銀行專用線程用于接收財政局業(yè)務(wù)系統(tǒng)發(fā)送到銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文;所述財政局專用線程用于接收銀行業(yè)務(wù)系統(tǒng)發(fā)送到財政局業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文;專用線程查看模塊查看銀行專用線程/財政局專用線程是否接收到財政局業(yè)務(wù)系統(tǒng)/銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文,若是則進入報文處理模塊,若否則繼續(xù)查看;所述業(yè)務(wù)報文包括報文頭標(biāo)識;所述報文頭標(biāo)識包括銀行或財政局ID和業(yè)務(wù)類型;報文處理模塊用于根據(jù)業(yè)務(wù)報文的報文頭標(biāo)識查找對應(yīng)的銀行處理線程或財政局處理線程對業(yè)務(wù)報文的處理。進一步,如上所述的一種多線程報文轉(zhuǎn)發(fā)系統(tǒng),依據(jù)配置信息,銀行處理線程和財政局處理線程處理不同業(yè)務(wù)類型的業(yè)務(wù)報文。進一步,如上所述的一種多線程報文轉(zhuǎn)發(fā)系統(tǒng),財銀數(shù)據(jù)交換平臺設(shè)有全局隊列映射表,每個銀行專用消息隊列和財政局專用消息隊列都要將其相關(guān)信息注冊到全局隊列映射表中;所述相關(guān)信息包括專用消息隊列的銀行或財政局ID、業(yè)務(wù)類型、消息隊列ID。進一步,如上所述的一種多線程報文轉(zhuǎn)發(fā)系統(tǒng),所述報文處理模塊包括發(fā)送地查找單元根據(jù)報文頭標(biāo)識中的銀行或財政局ID從全局隊列映射表中查找業(yè)務(wù)報文所要發(fā)送到的銀行或財政局; 處理線程查找單元用于根據(jù)業(yè)務(wù)類型查找銀行或財政局對應(yīng)的銀行處理線程或財政局處理線程;業(yè)務(wù)報文處理單元用于將業(yè)務(wù)報文保存到銀行處理線程或財政業(yè)務(wù)處理線程的專用消息隊列中,專用消息隊列所對應(yīng)的處理線程從等待狀態(tài)轉(zhuǎn)為工作狀態(tài)開始處理專用消息隊列中的業(yè)務(wù)報文數(shù)據(jù)。本發(fā)明的有益效果在于本發(fā)明所述的方法及系統(tǒng),通過為銀行代理對象和財政局代理對象設(shè)置多個處理線程,同時設(shè)置用于銀行業(yè)務(wù)系統(tǒng)與財政局業(yè)務(wù)系統(tǒng)數(shù)據(jù)交換的專用線程,實現(xiàn)了兩者間雙向?qū)崟r的多對多數(shù)據(jù)的交換,且能夠根據(jù)報文業(yè)務(wù)類型對內(nèi)部報文的分揀、轉(zhuǎn)發(fā)。
圖I為本發(fā)明一種多線程報文轉(zhuǎn)發(fā)系統(tǒng)的工作示意圖;圖2為本發(fā)明一種多線程報文轉(zhuǎn)發(fā)系統(tǒng)的結(jié)構(gòu)框圖;圖3為本發(fā)明一種多線程報文轉(zhuǎn)發(fā)方法的流程圖。
具體實施例方式下面結(jié)合說明書附圖與具體實施方式
對本發(fā)明做進一步的詳細說明。圖I與圖2分別示出了本發(fā)明一種多線程報文轉(zhuǎn)發(fā)系統(tǒng)的工作示意圖和結(jié)構(gòu)框圖,由圖中可以看出,該系統(tǒng)主要包括代理對象創(chuàng)建模塊11、處理線程設(shè)置模塊12、專用線程創(chuàng)建模塊13、專用線程查看模塊14和報文處理模塊15,其中,代理對象創(chuàng)建模塊11用于為每家銀行創(chuàng)建一個銀行代理對象,為每個財政局創(chuàng)建一個財政局代理對象;銀行代理對象用于處理財銀數(shù)據(jù)交換平臺與銀行業(yè)務(wù)系統(tǒng)的報文;財政局代理對象用于處理財銀數(shù)據(jù)交換平臺與財政局業(yè)務(wù)系統(tǒng)的報文;處理線程設(shè)置模塊12用于為每個銀行代理對象設(shè)置多個銀行處理線程,為每個財政局代理對象設(shè)置多個財政業(yè)務(wù)處理線程;銀行處理線程用于處理銀行業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的業(yè)務(wù)報文;財政業(yè)務(wù)處理線程用于處理財政局業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的業(yè)務(wù)報文。專用線程創(chuàng)建模塊13用于為每個銀行代理對象設(shè)置一個銀行專用線程,為每個財政局代理對象設(shè)置一個財政局專用線程;銀行專用線程用于接收財政局業(yè)務(wù)系統(tǒng)發(fā)送到銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文;財政局專用線程用于接收銀行業(yè)務(wù)系統(tǒng)發(fā)送到財政局業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文;專用線程查看模塊14用于查看銀行專用線程/財政局專用線程是否接收到財政局業(yè)務(wù)系統(tǒng)/銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文,若是則進入報文處理模塊15,若否則繼續(xù)查看;所述業(yè)務(wù)報文包括報文頭標(biāo)識;所述報文頭標(biāo)識包括銀行或財政局ID和業(yè)務(wù)類型;報文處理模塊15用于根據(jù)業(yè)務(wù)報文的報文頭標(biāo)識查找對應(yīng)的銀行處理線程或財政局處理線程對業(yè)務(wù)報文的處理。由圖2中可以看出,報文處理模塊15包括了用于根據(jù)報文頭標(biāo)識中的銀行或財政局ID從全局隊列映射表中查找業(yè)務(wù)報文所要發(fā)送到的銀行或財政局的發(fā)送地查找單元151、用于根據(jù)業(yè)務(wù)類型查找銀行或財政局對應(yīng)的銀行處理線程或財政局處理線程的處理線程查找單元152、以及用于將業(yè)務(wù)報文保存到銀行處理線程或財政業(yè)務(wù)處理線程的專用消息隊列中,專用消息隊列所對應(yīng)的處理線程從等待狀態(tài)轉(zhuǎn)為工作 狀態(tài)開始處理專用消息隊列中的業(yè)務(wù)報文數(shù)據(jù)的業(yè)務(wù)報文處理單元153。該系統(tǒng)在將銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文轉(zhuǎn)發(fā)到其所要轉(zhuǎn)發(fā)的財政局時,首先由銀行代理11將銀行通訊前置機中的業(yè)務(wù)報文發(fā)送到財銀數(shù)據(jù)交換平臺,業(yè)務(wù)報文中包括報文頭標(biāo)識(其所要發(fā)送到的財政局ID和業(yè)務(wù)類型),此時,根據(jù)報文頭標(biāo)識中的財政局ID查找到業(yè)務(wù)報文所要發(fā)送到的財政局,并根據(jù)業(yè)務(wù)類型找到處理該類型業(yè)務(wù)報文的處理線程,將業(yè)務(wù)報文保存到處理線程所對應(yīng)的專用消息隊列中,當(dāng)專用消息隊列中由報文放入時,專用消息隊列所屬的處理線程會得到通知從等待狀態(tài)變?yōu)楣ぷ鳡顟B(tài)開始處理專用消息隊列中的報文數(shù)據(jù)。為節(jié)約計算機資源,所有報文數(shù)據(jù)處理完成后該線程自動進入等待狀態(tài)(Waiting)直到有新報文放入的通知(Notify)。由于全局隊列映射表在系統(tǒng)啟動時已經(jīng)初始化完成,運行時不會修改相關(guān)信息,所以該全局隊列映射表中可以被多個線程并發(fā)訪問。圖3示出了基于圖I和圖2 —種多線程報文轉(zhuǎn)發(fā)系統(tǒng)的多線程報文轉(zhuǎn)發(fā)方法的流程圖,該方法包括以下步驟步驟Sll :為銀行創(chuàng)建銀行代理對象,為財政局創(chuàng)建財政局代理對象;財銀數(shù)據(jù)交換平臺要支持多家全國和地方銀行與財政局雙向、實時、高并發(fā)交換業(yè)務(wù)數(shù)據(jù),本發(fā)明所述的方法及系統(tǒng),首先在數(shù)據(jù)交換平臺內(nèi)部,為每家銀行創(chuàng)建一個銀行代理對象,負(fù)責(zé)銀數(shù)據(jù)交換平臺與銀行業(yè)務(wù)系統(tǒng)(銀行通訊前置機)的報文處理。為每個財政局創(chuàng)建一個財政局代理對象,負(fù)責(zé)財銀數(shù)據(jù)交換平臺是指銀行業(yè)務(wù)系統(tǒng)和財政局業(yè)務(wù)系統(tǒng)的報文處理。步驟S12 :為銀行代理對象設(shè)置一個銀行專用線程和多個銀行處理線程,為財政局代理對象設(shè)置一個財政局專用線程和財政局處理線程;為每個銀行代理對象設(shè)置多個(I、個)銀行處理線程用來處理銀行業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的業(yè)務(wù)報文;為每個財政局代理對象設(shè)置多個(I、個)財政業(yè)務(wù)處理線程用來處理財政局業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的業(yè)務(wù)報文。其中,銀行代理對象的處理線程是發(fā)送線程,財政局代理對象的處理線程是應(yīng)答線程。依據(jù)配置信息,發(fā)送線程或應(yīng)答線程可以處理I種或N種業(yè)務(wù)類型的報文數(shù)據(jù)。每個銀行處理線程都有一個銀行專用消息隊列用來暫時存放銀行業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的待處理的業(yè)務(wù)報文;每個財政業(yè)務(wù)處理線程都有一個財政局專用消息隊列用來暫時存放財政局業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的待處理的業(yè)務(wù)報文。銀行專用消息隊列和財政局專用消息隊列均采用先進先出算法,并工作在等待-響應(yīng)多線程模式下。為便于內(nèi)部轉(zhuǎn)發(fā)時的搜索對應(yīng)的消息隊列,所有專用消息隊列都要注冊相關(guān)信息(財政局或銀行ID、業(yè)務(wù)類型、消息隊列ID)到財銀數(shù)據(jù)交換平臺的全局隊列映射表中。為每個銀行代理對象設(shè)置一個銀行專用線程用來接收財政局業(yè)務(wù)系統(tǒng)發(fā)送到銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文;為每個財政局代理對象設(shè)置一個財政局專用線程用來接收銀行業(yè)務(wù)系統(tǒng)發(fā)送到財政局業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文。銀行專用線程為接收線程,財政局專用線程是請求線程。步驟S13 :監(jiān)控銀行專用線程和財政局專用線程;查看銀行專用線程/財政局專用線程是否接收到財政局業(yè)務(wù)系統(tǒng)/銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文,若是則進入步驟S14,若否則重復(fù)該步驟;業(yè)務(wù)報文包括報文頭標(biāo)識;所述報文頭標(biāo)識包括銀行或財政局ID和業(yè)務(wù)類型。
步驟S14 :啟動處理線程處理業(yè)務(wù)報文。根據(jù)業(yè)務(wù)報文的報文頭標(biāo)識查找對應(yīng)的銀行處理線程或財政局處理線程,啟動銀行處理線程或財政局處理線程對業(yè)務(wù)報文進行處理。對業(yè)務(wù)報文進行處理的具體方式如下I)根據(jù)報文頭標(biāo)識中的銀行或財政局ID從全局隊列映射表中查找業(yè)務(wù)報文所要發(fā)送到的銀行或財政局;2)根據(jù)業(yè)務(wù)類型查找銀行或財政局對應(yīng)的銀行處理線程或財政局處理線程;3)將業(yè)務(wù)報文保存到銀行處理線程或財政業(yè)務(wù)處理線程的專用消息隊列中,專用消息隊列所對應(yīng)的處理線程從等待狀態(tài)轉(zhuǎn)為工作狀態(tài)開始處理專用消息隊列中的業(yè)務(wù)報文數(shù)據(jù)。當(dāng)接收線程或請求線程收到系統(tǒng)外的業(yè)務(wù)報文時,根據(jù)報文頭標(biāo)識的“財政局或銀行ID”、“業(yè)務(wù)類型”從全局隊列映射表中查找對應(yīng)的處理線程“消息隊列ID”,并將該業(yè)務(wù)報文放入該消息隊列。當(dāng)消息隊列有報文放入時,消息隊列所屬的處理線程會得到通知(Notify)從等待狀態(tài)(Waiting)變?yōu)楣ぷ鳡顟B(tài)(Running)開始處理專用消息隊列中的報文數(shù)據(jù)。為節(jié)約計算機資源,所有報文數(shù)據(jù)處理完成后該線程自動進入等待狀態(tài)(Waiting)直到有新報文放入的通知(Notify)。由于全局隊列映射表在系統(tǒng)啟動時已經(jīng)初始化完成,運行時不會修改相關(guān)信息,所以該全局隊列映射表中可以被多個線程并發(fā)訪問。本發(fā)明所述的方法及系統(tǒng)。充分利用計算機多處理器、多線程并發(fā)處理的特性,引入了類似物流分揀系統(tǒng)的“基于等待-響應(yīng)模式和隊列映射的多線程報文轉(zhuǎn)發(fā)系統(tǒng)”實現(xiàn)方法,從而實現(xiàn)可配置的多對多數(shù)據(jù)交換以及雙向?qū)崟r數(shù)據(jù)交換和轉(zhuǎn)發(fā)的多線程并發(fā)處理。該方法及系統(tǒng)適用于各類實時數(shù)據(jù)交換系統(tǒng)。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其同等技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種多線程報文轉(zhuǎn)發(fā)方法,包括以下步驟 (1)為每家銀行創(chuàng)建一個銀行代理對象,為每個財政局創(chuàng)建一個財政局代理對象;所述銀行代理對象用于處理財銀數(shù)據(jù)交換平臺與銀行業(yè)務(wù)系統(tǒng)的轉(zhuǎn)發(fā)報文;所述財政局代理對象用于處理財銀數(shù)據(jù)交換平臺與財政局業(yè)務(wù)系統(tǒng)的轉(zhuǎn)發(fā)報文;所述財銀數(shù)據(jù)交換平臺是指銀行業(yè)務(wù)系統(tǒng)和財政局業(yè)務(wù)系統(tǒng)的業(yè)務(wù)交換平臺; (2)為每個銀行代理對象設(shè)置一個銀行專用線程和多個銀行處理線程,為每個財政局代理對象設(shè)置一個財政局專用線程和多個財政局處理線程;所述銀行專用線程用于接收財政局業(yè)務(wù)系統(tǒng)系統(tǒng)發(fā)送到銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文;所述財政局專用線程用于接收銀行業(yè)務(wù)系統(tǒng)發(fā)送到財政局業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文; (3)查看銀行專用線程/財政局專用線程是否接收到財政局業(yè)務(wù)系統(tǒng)/銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文,若是則進入步驟(4),若否則重復(fù)步驟(3);所述業(yè)務(wù)報文包括報文頭標(biāo)識;所述報文頭標(biāo)識包括業(yè)務(wù)報文來源的銀行或財政局ID、業(yè)務(wù)報文所要發(fā)送到的銀行或財政局 ID和業(yè)務(wù)類型; (4)根據(jù)業(yè)務(wù)報文的報文頭標(biāo)識查找所對應(yīng)的銀行處理線程或財政局處理線程,啟動銀行處理線程或財政局處理線程對業(yè)務(wù)報文進行處理。
2.如權(quán)利要求I所述的一種多線程報文轉(zhuǎn)發(fā)方法,其特征在于每個銀行處理線程都有一個銀行專用消息隊列用來存放銀行業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的待處理的業(yè)務(wù)報文;每個財政業(yè)務(wù)處理線程都有一個財政局專用消息隊列用來存放財政局業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的待處理的業(yè)務(wù)報文。
3.如權(quán)利要求2所述的一種多線程報文轉(zhuǎn)發(fā)方法,其特征在于步驟(4)中,所述的銀行處理線程和財政局處理線程均工作在等待-響應(yīng)模式下,當(dāng)處理線程所對應(yīng)的專用消息隊列中存入業(yè)務(wù)報文時,處理線程由等待狀態(tài)轉(zhuǎn)為工作狀態(tài)進行業(yè)務(wù)報文處理。
4.如權(quán)利要求3所述的一種多線程報文轉(zhuǎn)發(fā)方法,其特征在于財銀數(shù)據(jù)交換平臺設(shè)有全局隊列映射表,每個銀行專用消息隊列和財政局專用消息隊列都要將其相關(guān)信息注冊到全局隊列映射表中;所述相關(guān)信息包括專用消息隊列的銀行或財政局ID、業(yè)務(wù)類型、消息隊列ID。
5.如權(quán)利要求4所述的一種多線程報文轉(zhuǎn)發(fā)方法,其特征在于步驟(4)中,啟動銀行處理線程或財政局處理線程對業(yè)務(wù)報文進行處理的具體方式如下 1)根據(jù)報文頭標(biāo)識中的銀行或財政局ID從全局隊列映射表中查找業(yè)務(wù)報文所要發(fā)送到的銀行或財政局; 2)根據(jù)業(yè)務(wù)類型查找銀行或財政局對應(yīng)的銀行處理線程或財政局處理線程; 3)將業(yè)務(wù)報文保存到銀行處理線程或財政業(yè)務(wù)處理線程的專用消息隊列中,專用消息隊列所對應(yīng)的處理線程從等待狀態(tài)轉(zhuǎn)為工作狀態(tài)開始處理專用消息隊列中的業(yè)務(wù)報文數(shù)據(jù)。
6.如權(quán)利要求5所述的一種多線程報文轉(zhuǎn)發(fā)方法,其特征在于步驟(3)中,當(dāng)處理線程處理完業(yè)務(wù)報文后,處理線程自動由工作狀態(tài)進入等待狀態(tài),直到有新的業(yè)務(wù)報文放入到處理線程所對應(yīng)的專用消息隊列中。
7.—種多線程報文轉(zhuǎn)發(fā)系統(tǒng),包括 代理對象創(chuàng)建模塊用于為每家銀行創(chuàng)建一個銀行代理對象,為每個財政局創(chuàng)建一個財政局代理對象;所述銀行代理對象用于處理財銀數(shù)據(jù)交換平臺與銀行業(yè)務(wù)系統(tǒng)的報文;所述財政局代理對象用于處理財銀數(shù)據(jù)交換平臺與財政局業(yè)務(wù)系統(tǒng)的報文; 處理線程設(shè)置模塊用于為每個銀行代理對象設(shè)置多個銀行處理線程,為每個財政局代理對象設(shè)置多個財政業(yè)務(wù)處理線程;所述銀行處理線程用于處理銀行業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的業(yè)務(wù)報文;所述財政業(yè)務(wù)處理線程用于處理財政局業(yè)務(wù)系統(tǒng)內(nèi)部轉(zhuǎn)發(fā)過來的業(yè)務(wù)報文; 專用線程創(chuàng)建模塊用于為每個銀行代理對象設(shè)置一個銀行專用線程,為每個財政局代理對象設(shè)置一個財政局專用線程;所述銀行專用線程用于接收財政局業(yè)務(wù)系統(tǒng)發(fā)送到銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文;所述財政局專用線程用于接收銀行業(yè)務(wù)系統(tǒng)發(fā)送到財政局業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文; 專用線程查看模塊用于查看銀行專用線程/財政局專用線程是否接收到財政局業(yè)務(wù) 系統(tǒng)/銀行業(yè)務(wù)系統(tǒng)的業(yè)務(wù)報文,若是則進入報文處理模塊,若否則繼續(xù)查看;所述業(yè)務(wù)報文包括報文頭標(biāo)識;所述報文頭標(biāo)識包括銀行或財政局ID和業(yè)務(wù)類型; 報文處理模塊用于根據(jù)業(yè)務(wù)報文的報文頭標(biāo)識查找對應(yīng)的銀行處理線程或財政局處理線程對業(yè)務(wù)報文的處理。
8.如權(quán)利要求7所述的一種多線程報文轉(zhuǎn)發(fā)系統(tǒng),其特征在于依據(jù)配置信息,銀行處理線程和財政局處理線程處理不同業(yè)務(wù)類型的業(yè)務(wù)報文。
9.如權(quán)利要求7或8所述的一種多線程報文轉(zhuǎn)發(fā)系統(tǒng),其特征在于財銀數(shù)據(jù)交換平臺設(shè)有全局隊列映射表,每個銀行專用消息隊列和財政局專用消息隊列都要將其相關(guān)信息注冊到全局隊列映射表中;所述相關(guān)信息包括專用消息隊列的銀行或財政局ID、業(yè)務(wù)類型、消息隊列ID。
10.如權(quán)利要求9所述的一種多線程報文轉(zhuǎn)發(fā)系統(tǒng),其特征在于,所述報文處理模塊包括 發(fā)送地查找單元根據(jù)報文頭標(biāo)識中的銀行或財政局ID從全局隊列映射表中查找業(yè)務(wù)報文所要發(fā)送到的銀行或財政局; 處理線程查找單元用于根據(jù)業(yè)務(wù)類型查找銀行或財政局對應(yīng)的銀行處理線程或財政局處理線程; 業(yè)務(wù)報文處理單元用于將業(yè)務(wù)報文保存到銀行處理線程或財政業(yè)務(wù)處理線程的專用消息隊列中,專用消息隊列所對應(yīng)的處理線程從等待狀態(tài)轉(zhuǎn)為工作狀態(tài)開始處理專用消息隊列中的業(yè)務(wù)報文數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種多線程報文轉(zhuǎn)發(fā)方法及系統(tǒng),首先為銀行和財政局分別建立銀行代理對象和財政局代理對象,并為代理對象設(shè)置多個處理線程和一個專用線程,專用線程用來接收系統(tǒng)外的業(yè)務(wù)報文;當(dāng)專用線程接收到業(yè)務(wù)報文時,根據(jù)業(yè)務(wù)報文的報文頭標(biāo)識查找到該業(yè)務(wù)報文所要發(fā)送到的財政局或銀行,并根據(jù)業(yè)務(wù)類型查到財政局或銀行的處理線程,將業(yè)務(wù)報文保存到處理線程的專用消息隊列中并啟動處理線程處理業(yè)務(wù)報文。通過該方法及系統(tǒng)能夠?qū)崿F(xiàn)可配置的多對多、雙向?qū)崟r的數(shù)據(jù)交換。此外,本發(fā)明的所有處理線程工作在等待-響應(yīng)多線程模式下,節(jié)約計算機資源。
文檔編號H04L12/931GK102868600SQ20121033265
公開日2013年1月9日 申請日期2012年9月10日 優(yōu)先權(quán)日2012年9月10日
發(fā)明者崔立國 申請人:北京用友政務(wù)軟件有限公司