1. 引言
2005年中國人民銀行、國家稅務總局和財政部啟動了以國庫為中心的稅(稅務)、庫(國庫)、銀(銀行)橫向聯網建設工程。其中橫向聯網系統的實時交易處理流程主要有兩種:
第一種為從稅務發起的實時扣稅:
(1)?納稅人到稅務大廳,或者通過稅務網上自助納稅系統,發起納稅,納稅人等候處理結果;
(2)?稅務征管系統接收到納稅請求后,將扣稅報文發送到人民銀行國庫信息處理系統(Treasury Information Processing? System , 以下簡稱TIPS);
(3)?TIPS進行信息校驗,并存儲扣稅信息,然后將扣稅信息轉發到納稅人的開戶銀行;
(4)?開戶銀行按照扣稅指令,進行校驗后,對指定賬戶進行扣款,將扣款回執傳回TIPS;
(5)?TIPS進行信息匹配,并更改扣稅狀態,將扣稅回執轉發給稅務征管系統;
(6)?稅務征管系統匹配扣稅回執,將扣稅結果,反饋給納稅大廳,或者網上納稅系統;
(7)?納稅人獲知納稅結果。
第二種為從銀行發起的繳稅:
(1)?納稅人到銀行大廳,或者通過網上銀行,發起繳稅請求,納稅人等候處理結果;
(2)?銀行后臺系統接收到繳稅請求后,將繳稅請求報文發送到TIPS;
(3)?TIPS存儲繳稅請求信息后,將繳稅請求信息轉發到稅務征管系統;
(4)?稅務征管系統檢索納稅信息,將扣稅報文發送至TIPS;
(5)?TIPS存儲扣稅報文,并返回銀行系統;
(6)?銀行系統收到扣稅報文后,匹配繳款請求,并反饋給銀行對公大廳,或者網上銀行;
(7)?納稅人確認納稅項目和金額;
(8)?銀行后臺系統收到扣稅確認后,從指定賬戶扣款,將扣款回執傳回TIPS;
(9)?TIPS進行信息匹配,并更改扣稅狀態,將扣稅回執轉發給稅務征管系統;
(10)?稅務征管系統按照扣稅回執,更改納稅信息狀態。
2.?系統分析
在上述兩種業務流程中,納稅人無論在稅務端發起,還是在銀行端發起,都要等待處理結果,系統平均響應時間應不超過5秒,最大響應時間不超過20秒。如果響應時間超過20秒,業務發起端就要自動發起沖正指令,取消此筆交易。
其中聯網稅務節點包括32個省級國稅、32個省級地稅、600余個地市級國地稅,總數將達到700個左右。聯網銀行節點包括14個全國性商業銀行,100余個城市商業銀行,100余個城市和農村信用社,總數將達到300余個左右。在納稅高峰期,TIPS需要每秒鐘轉接處理報文1000筆。這就要求橫向聯網系統必須具有高性能、高可用和高擴展性,是對系統實時處理的挑戰。
在整個聯網交易中,存在四種角色,即交易發起者(人機交互界面)、數據交換服務發起者、數據交換服務中轉者和數據交換服務響應者。如圖1所示。
?
??????????????????????????????????????
????????????????????????????????????? ?圖1發起/請求/中轉/響應模式示意圖
交易發起者,具體是指征管系統前臺操作員操作征管軟件發起納稅;或者納稅人操作網上自助納稅系統納稅;或者銀行柜臺操作員操作銀行系統前臺發起納稅;或者納稅人操作網上銀行自助納稅。
數據交換服務發起者,包括構造請求報文,并將請求報文發送至數據交換服務中轉者;接收響應/回執報文,以及對響應/回執報文的解析和其他后續處理。
數據交換服務中轉者,負責請求報文和響應/回執數據包的轉發,及數據處理。
數據交換服務響應者,負責接收、解析、處理請求報文,根據處理結果構造響應/回執報文,并將響應/回執報文轉發給數據交換服務中轉者。
按照客戶端/服務器模型,可以將上述4個角色,劃分成3對客戶端/服務器關系。交易發起者和數據交換服務發起者之間,交易發起者(人機交互界面)為客戶端,數據交換服務發起者為服務器端。數據交換服務發起者和數據交換服務中轉者之間,數據交換服務發起者為客戶端,數據交換服務中轉者為服務器端。數據交換服務中轉者和數據交換服務響應者之間,數據交換服務中轉者為客戶端,數據交換服務響應者為服務器端。客戶端和服務器端處理模式分同步和異步兩種模式[1]。同步模式表示客戶端向服務器端發起請求后,等待服務器處理完請求并返回結果。異步模式表示客戶端向服務器端發起請求后,不等待服務器返回結果。
由于存在從稅務發起和銀行發起兩種實時交易流程。因此稅務系統既有可能為數據交換發起者,又有可能為數據交換服務響應者;銀行系統既有可能為數據交換服務響應者,又有可能為數據交換服務發起者。這樣便意味著稅務系統、TIPS和銀行系統均有可能成為服務器端。
3. 聯網體系架構設計
?????????????????????????????????????????????? 圖2 聯網體系架構示意圖
如圖2所示,TIPS、稅務、銀行通過消息中間件建立起數據交換通道。TIPS中心由數據庫、基于J2EE架構的交易服務和數據交換平臺三部分組成。外部通訊網關、企業服務總線和內部通訊網關通過基于消息中間件的集群技術[2]整合成一個相互獨立、可平行擴展的統一整體。外部通訊網關通過消息中間件和稅務、銀行連接;企業服務總線(ESB)[3]負責對報文預處理,并進行消息路由的操作,ESB通過內外通訊網關分別與交易服務和稅務、銀行系統進行消息交互。交易服務通過JMS/MDB[4]方式實現對消息中間件的操作。
以稅務發起實時扣稅交易為例,消息的流轉過程為:
(1) 稅務征管系統提交請求報文,發送到外部通訊網關;
(2)?通訊網關通過消息中間件的集群機制將請求報文轉發到ESB;
(3)?ESB系統收到請求報文,進行預處理,然后通過內部通訊網關轉發到交易服務;
(4)?交易服務通過JMS/MDB與內部通訊網關進行交互,進行業務處理后,將請求報文通過內部通訊網關轉發給ESB,并通知ESB將請求報文轉給商業銀行;
(5)?轉發的請求報文經過外部通訊網關到達商業銀行;
(6)?商業銀行進行相應的業務處理后,發送回執信息;
(7)?回執信息經過外部通訊網關,到達ESB;
(8)?ESB系統進行回執報文的預處理,然后通過內部通訊網關轉發給交易服務;
(9)?交易服務進行業務處理后,將回執報文通過內部通訊網關轉發給ESB,并通知ESB將回執報文發送給稅務;
(10)?回執報文經過外部通訊網關,到達稅務,扣稅交易結束。
4.?基于消息中間件的通訊實現
IBM MQSeries(以下簡稱MQ)提供一個具有工業標準、安全、可靠的消息傳輸系統。MQ的關鍵功能之一是確保信息可靠傳輸,同時,MQ是靈活的應用程序通信方案[5]。
TIPS與稅務、商業銀行通過配置MQ Server的通道實現通訊。在創建通道時,需要設置隊列管理器名稱、服務器連接通道名稱、主機名或IP地址、偵聽端口、發送通道名稱、接收通道名稱、發送隊列名稱、接收隊列名稱、字符集等配置項。
稅務、TIPS和商業銀行都配置發送和接收2個通道。為了滿足實時交易流程要求,將MQ通道屬性設置成非持久(即內存方式Non-Persistent),同時設置消息的過期時間,如10秒,這樣消息有一定的生命周期。同時再輔助以沖正流程設計,保證交易的完整性。
數據交換服務發起者和數據交換服務中轉者,都存在報文匹配的要求。存在兩種報文匹配機制。第一種為基于報文內容的匹配(異步模式),即從接收通道接收報文后,根據業務關鍵字組合,從存儲數據庫查找原發起報文,實現與原發起報文的匹配;第二種為利用消息中間件提供的同步模式下的消息過濾和匹配機制。基于報文內容的匹配(異步模式),適合數據交換服務中轉者采用;利用消息中間件提供的同步模式下的消息過濾和匹配機制,適合數據交換服務發起者采用。
利用消息中間件提供的消息過濾和匹配機制如圖3所示。
????????????????????????????????????????????圖3 消息過濾和匹配機制圖
其中同步模式匹配機制為:
(1) 人機交互界面向交易請求服務發起交易申請,阻塞等待;
(2)?交易請求服務得到交易申請后,首先將交易申請轉換成MQ消息報文,并將MQ的CorrelId屬性值設為約定值,如“REQ”。然后會將MQ消息報文發送至MQ隊列。在報文發送成功后,程序會保存MQ返回的MsgId;
(3)?交易請求服務按照CorrelId屬性值為MsgId從接收隊列中捕獲回執報文,并將處理結果返回人機交互界面。
異步模式匹配機制:
(1)?交易響應服務從接收隊列接收到報文,進行業務處理,如果需要匹配其他業務,直接根據業務關鍵字,基于數據庫進行檢索匹配;
(2)?將回執報文中的CorrelId設為對應請求報文中MsgId的值,將回執報文發送到發送隊列。
5.結論
2006年2月15日系統成功地在北京、湖南、貴州三省市上線運行,參加試運行的單位包括北京地稅、湖南國稅等12家稅務局,工、農、中、建等14家全國性商業銀行和北京銀行、貴州省農聯社等8家地方性金融機構,以及13個國庫部門。
經過幾個月的運行表明,在聯網實時交易中,采用消息中間件,實時性可以滿足設計要求。當因為網絡、交易處理異常等各種原因引起超時的時候,數據交換服務發起者發起沖正交易,同時每隔一定時間,以數據交換中轉者為基準進行對賬,可以保證交易完整性。
?
6.參考文獻
[1] S Goel; H Sharda; D Taniar, Messaging in distributed systems , International Journal of Computer Systems Science & Engineering , 2003(6), 339-355
[2] 邱巖; 王衛兵,消息中間件的集群技術,計算機工程,2003(2),107-108,200.
[3] Christy Bass,??J.Michael Lee. Building a Business Case for EAI. EAI Journal.2002(1),18-20.
[4] Richard MonsonHaefelEnterprise Java beans O′Reilly & associates 2001.
[5] 王小霞,消息中間件在數據交換中的應用研究及其面臨的挑戰,電子技術應用,2005(1),1-4.
?