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