通用報(bào)文交換平臺(tái)設(shè)計(jì)論文
時(shí)間:2022-09-15 04:31:00
導(dǎo)語:通用報(bào)文交換平臺(tái)設(shè)計(jì)論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
2005年9月,農(nóng)發(fā)行綜合業(yè)務(wù)系統(tǒng)順利上線運(yùn)行,全系統(tǒng)的業(yè)務(wù)經(jīng)營活動(dòng)實(shí)現(xiàn)了數(shù)據(jù)大集中。同時(shí)隨著業(yè)務(wù)經(jīng)營范圍的不斷拓展,業(yè)務(wù)部門對(duì)增加科技支撐力度也提出了更高的要求。在新形勢(shì)下,如何既快速高效、又安全平穩(wěn)地滿足業(yè)務(wù)部門的需求,是農(nóng)發(fā)行科技部門面臨的一個(gè)重要課題。筆者認(rèn)為,在綜合業(yè)務(wù)系統(tǒng)前端,開發(fā)部署一個(gè)通用的、穩(wěn)定的、可擴(kuò)展的通用報(bào)文交換平臺(tái)是適應(yīng)業(yè)務(wù)發(fā)展、滿足業(yè)務(wù)需求變化和規(guī)避技術(shù)風(fēng)險(xiǎn)的一個(gè)有效舉措。
通用報(bào)文交換平臺(tái)(UniversalMessageExchangingPlat)簡稱UMEP,是按照標(biāo)準(zhǔn)化的原則,為處理異步報(bào)文交換業(yè)務(wù)而設(shè)計(jì)的通用平臺(tái)。在當(dāng)前數(shù)據(jù)大集中的環(huán)境下,設(shè)計(jì)通用報(bào)文交換平臺(tái)能有效的解決綜合業(yè)務(wù)系統(tǒng)的通用性和擴(kuò)展性問題,從而高效安全地滿足業(yè)務(wù)變化的需求。本文將就農(nóng)發(fā)行UMEP的分析與設(shè)計(jì)作一闡述。
一、平臺(tái)的軟件基礎(chǔ)
UMEP選用Tuxedo作為基礎(chǔ)軟件平臺(tái)來進(jìn)行設(shè)計(jì)和部署。Tuxedo是BEA公司的一個(gè)商品化的交易中間件軟件產(chǎn)品,從軟件最初推出至今已經(jīng)經(jīng)歷了9個(gè)版本的升級(jí)變遷,廣泛應(yīng)用于金融、電信、郵政、航空等領(lǐng)域,是業(yè)內(nèi)歷史最久、應(yīng)用最廣的中間件產(chǎn)品。
農(nóng)發(fā)行從電子聯(lián)行系統(tǒng)開始,就引入了Tuxedo中間件產(chǎn)品,直至在綜合業(yè)務(wù)系統(tǒng)中更為全面地使用。在多年的開發(fā)維護(hù)工作中,農(nóng)發(fā)行不僅積累了大量的經(jīng)驗(yàn),而且還培養(yǎng)了一批技術(shù)人才。選用Tuxedo作為UMEP的基礎(chǔ)軟件平臺(tái),做到核心系統(tǒng)相一致,不單單是為了減輕系統(tǒng)維護(hù)的工作量,降低系統(tǒng)故障的風(fēng)險(xiǎn),更重要的是考慮到在其基礎(chǔ)上設(shè)計(jì)出來的UMEP,可以具備較高的可靠性、通用性、安全性和可擴(kuò)展性。
二、平臺(tái)的總體設(shè)計(jì)
根據(jù)報(bào)文交換類業(yè)務(wù)的處理流程,UMEP在總體的邏輯結(jié)構(gòu)上設(shè)計(jì)為三層:前置機(jī)接口層、通訊平臺(tái)層和核心服務(wù)層。其結(jié)構(gòu)圖如下:
外接系統(tǒng)匯入的報(bào)文,由前置機(jī)通過外接系統(tǒng)提供的接口API(應(yīng)用程序接口)獲取后,發(fā)送至UMEP,再轉(zhuǎn)發(fā)至核心服務(wù)進(jìn)行業(yè)務(wù)處理。行內(nèi)系統(tǒng)匯出的報(bào)文,由核心系統(tǒng)發(fā)送至UMEP,再轉(zhuǎn)發(fā)到前置機(jī),通過外接系統(tǒng)接口API發(fā)送給外接系統(tǒng)。前置機(jī)和UMEP的通信,以及UMEP與核心系統(tǒng)的通信,均是以Tuxedo服務(wù)調(diào)用的方式進(jìn)行的,并且使用Tuxedo的事務(wù)管理功能,保證報(bào)文傳送的準(zhǔn)確性和唯一性。
三、前置機(jī)接口層的設(shè)計(jì)
在一個(gè)外接系統(tǒng)的前置機(jī)上,一般都會(huì)部署兩套接口軟件。一套是行內(nèi)系統(tǒng)的接口軟件,功能就是通過外接系統(tǒng)API進(jìn)行報(bào)文的收發(fā)工作。另一套就是由外接系統(tǒng)提供的API接口。兩者之間是調(diào)用與被調(diào)用的關(guān)系。
為了保證行內(nèi)接口的通用性,我們把行內(nèi)接口軟件設(shè)計(jì)為兩層結(jié)構(gòu),一層是穩(wěn)定的,一層是不穩(wěn)定的。
穩(wěn)定的一層稱之為UMEPClient,由兩個(gè)定時(shí)啟動(dòng)的守護(hù)進(jìn)程uploadMsg和downloadMsg組成,分別實(shí)現(xiàn)報(bào)文接收和報(bào)文發(fā)送的功能。之所以稱之為穩(wěn)定的,是因?yàn)檫@兩個(gè)守護(hù)進(jìn)程可以在任何外接系統(tǒng)的前置機(jī)上使用,并不需要針對(duì)不同的外接系統(tǒng)重寫代碼,體現(xiàn)了行內(nèi)接口的通用性。
不穩(wěn)定的一層稱之為BranchInterfaceAPI(簡稱BIA),由一組API函數(shù)組成,以庫文件的方式提供,被UMEPClient調(diào)用。之所以稱之為不穩(wěn)定的,是因?yàn)樗菍?duì)外接系統(tǒng)提供的API接口函數(shù)的封裝,需要針對(duì)不同的外接系統(tǒng)改寫代碼。BIA被設(shè)計(jì)為10個(gè)API函數(shù),分別處理非實(shí)時(shí)通訊和實(shí)時(shí)通訊兩種情況:
BIA不僅封裝了外接系統(tǒng)的API函數(shù),還有一個(gè)重要的工作就是負(fù)責(zé)報(bào)文格式的轉(zhuǎn)換。不同的外接系統(tǒng),其報(bào)文的描述格式各有不同。為了行內(nèi)系統(tǒng)能夠以同樣的方式處理,就需要對(duì)報(bào)文用統(tǒng)一的格式進(jìn)行重新描述,轉(zhuǎn)換為行內(nèi)系統(tǒng)使用的標(biāo)準(zhǔn)報(bào)文。同樣,行內(nèi)發(fā)出的標(biāo)準(zhǔn)報(bào)文也需要由經(jīng)BIA轉(zhuǎn)換后,再發(fā)送給外接系統(tǒng)。這種將報(bào)文格式轉(zhuǎn)換功能由通信平臺(tái)實(shí)現(xiàn)改為由前置機(jī)實(shí)現(xiàn)的設(shè)計(jì)方式,不僅是實(shí)現(xiàn)UMEP通用性的需要,也是為了充分利用前置機(jī)的運(yùn)算功能,減輕通訊平臺(tái)的運(yùn)算壓力,使其集中資源處理報(bào)文轉(zhuǎn)發(fā)的功能,提高平臺(tái)的處理能力。
前置機(jī)接口層的系統(tǒng)結(jié)構(gòu)如圖:
在前置機(jī)端引入BIA的設(shè)計(jì)模式的另一個(gè)優(yōu)點(diǎn)是,可以最大限度地降低總行科技部門的開發(fā)工作量。一個(gè)新系統(tǒng)的接入,總行不再需要集中開發(fā)行內(nèi)接口軟件(全國性系統(tǒng)仍可由總行統(tǒng)一開發(fā)),只要由分行按照UMEP的報(bào)文標(biāo)準(zhǔn)和API標(biāo)準(zhǔn),自行組織開發(fā)一套相應(yīng)的BIA,以庫文件的方式提供給UMEP使用,然后就可以通過UMEP順利接入核心系統(tǒng)。另外由于BIA層的開發(fā)工作并不涉及到Tuxedo技術(shù),因此對(duì)于分行而言,也降低了技術(shù)開發(fā)的難度。同時(shí),這樣的分層設(shè)計(jì)也為分行特色業(yè)務(wù)的開展提供了技術(shù)上的便利條件。
UMEPClient在部署之前,附帶的BIA是一個(gè)完全由空API函數(shù)編譯后獲得的庫文件。部署到前置機(jī)以后,只要將這個(gè)文件替換為相應(yīng)外接系統(tǒng)的BIA庫文件,即可完成系統(tǒng)對(duì)接功能。由此可見,UMEPClient在前置機(jī)上的安裝部署也是相對(duì)簡單靈活的。此外,由于Tuxedo的跨平臺(tái)性,可以使得我們的UMEPClient不僅可以部署在HPUX/AIX/SCOUnix/Linux等Unix或類Unix平臺(tái)上,而且可以運(yùn)行在AS400或Windows平臺(tái)上。換句話說,無論外接系統(tǒng)前置機(jī)采用的是什么樣的操作系統(tǒng)平臺(tái),我們的UMEPClient都可以正常部署使用。這也從一個(gè)側(cè)面體現(xiàn)了UMEP的通用性。
四、通訊平臺(tái)層的設(shè)計(jì)
UMEP通訊平臺(tái)層的設(shè)計(jì),使用了Tuxedo服務(wù)程序和Tuxedo客戶端程序相結(jié)合的方式。兩個(gè)Tuxedo服務(wù)程序名為uploadMsgSvc和downloadMsgSvc,分別被前置機(jī)端UMEPClient的up-loadMsg和downloadMsg進(jìn)程調(diào)用,用于平臺(tái)的報(bào)文接收和發(fā)送。兩個(gè)Tuxedo客戶端程序名為uploadKernel和download-Kernel,是兩個(gè)定時(shí)啟動(dòng)的守護(hù)進(jìn)程,分別負(fù)責(zé)上傳平臺(tái)報(bào)文至核心系統(tǒng)和下載核心系統(tǒng)報(bào)文至平臺(tái)。其系統(tǒng)結(jié)構(gòu)圖如下:
在UMEP的平臺(tái)設(shè)計(jì)中,我們引入了數(shù)據(jù)庫的內(nèi)容。這主要是考慮到UMEP平臺(tái)將被設(shè)計(jì)為一個(gè)擁有較高處理能力的報(bào)文交換平臺(tái)。如果單純的依靠核心服務(wù)完成業(yè)務(wù)處理后,再寫入核心應(yīng)用數(shù)據(jù)庫,勢(shì)必會(huì)增加調(diào)用端的等待時(shí)間,影響平臺(tái)的處理效率和吞吐量。此外,使用數(shù)據(jù)庫對(duì)報(bào)文進(jìn)行暫存,可以減少報(bào)文傳送過程中因網(wǎng)絡(luò)通訊問題而導(dǎo)致的報(bào)文丟失現(xiàn)象,保證報(bào)文的正確傳輸。在報(bào)文的上行過程中,平臺(tái)服務(wù)uploadMsgSvc收到前置機(jī)發(fā)來的標(biāo)準(zhǔn)報(bào)文后,不作任何處理,直接寫入數(shù)據(jù)庫并返回,完成平臺(tái)的報(bào)文接收工作。平臺(tái)上的uploadKernel進(jìn)程啟動(dòng)后,負(fù)責(zé)從數(shù)據(jù)庫中讀取報(bào)文信息,并根據(jù)共享內(nèi)存中存放的XML標(biāo)準(zhǔn)報(bào)文格式描述文件,將報(bào)文中的業(yè)務(wù)要素解析出來,轉(zhuǎn)換為Tuxe-do服務(wù)調(diào)用所需的FMLBuffer格式,再通過Tuxedo服務(wù)調(diào)用,上傳給核心系統(tǒng)完成業(yè)務(wù)處理。
在報(bào)文的下行過程中,通過平臺(tái)上定時(shí)啟動(dòng)的downloadKernel進(jìn)程,調(diào)用核心系統(tǒng)的相關(guān)服務(wù),獲取下傳報(bào)文信息,再根據(jù)XML報(bào)文格式描述文件,轉(zhuǎn)換為標(biāo)準(zhǔn)報(bào)文后寫入數(shù)據(jù)庫。平臺(tái)服務(wù)downloadMsgSvc由前置機(jī)端的down-loadMsg進(jìn)程定時(shí)調(diào)用。每次調(diào)用時(shí),該服務(wù)從數(shù)據(jù)庫中讀取待發(fā)送的報(bào)文,返回給前置機(jī)。
行內(nèi)標(biāo)準(zhǔn)報(bào)文的格式解析和打包是通過XML報(bào)文格式描述文件來完成的。不同外接系統(tǒng)所使用的報(bào)文集,都會(huì)用行內(nèi)的標(biāo)準(zhǔn)格式重新加以定義,體現(xiàn)為一個(gè)XML描述文件。這個(gè)XML文件作為BIA的一部分,由BIA的開發(fā)者按照標(biāo)準(zhǔn)編寫完成后,提供給UMEP平臺(tái)使用。平臺(tái)啟動(dòng)時(shí),將裝載所有外接系統(tǒng)的XML描述文件到共享內(nèi)存中,供uploadKernel和downloadKernel處理標(biāo)準(zhǔn)報(bào)文解析和打包時(shí)使用。鑒于XML強(qiáng)大的擴(kuò)展性和良好的易用性,這樣的設(shè)計(jì)必然使我們的平臺(tái)具備優(yōu)秀的報(bào)文兼容性,同樣也保證了UMEP的通用性。
五、核心服務(wù)層的設(shè)計(jì)
UMEP的核心服務(wù)層采用了面向服務(wù)的設(shè)計(jì)模式,每一種業(yè)務(wù)類型的處理都被細(xì)化為一個(gè)或多個(gè)核心服務(wù)來完成。每個(gè)核心服務(wù)只完成某一種特定的功能,服務(wù)與服務(wù)之間的耦合關(guān)系遵循“松散”的原則。這種“松散”的耦合關(guān)系,大大的增加了核心服務(wù)的可重用性,為業(yè)務(wù)的變更和擴(kuò)展帶來巨大的靈活性和便利性。
在核心服務(wù)的外圍,部署了一類管理調(diào)度服務(wù),稱為TxDispatcher。TxDis-patcher不僅能夠管理報(bào)文交換類交易的服務(wù)請(qǐng)求,而且可以管理聯(lián)機(jī)實(shí)時(shí)交易的服務(wù)請(qǐng)求,并根據(jù)不同類型的交易,按照事先定義好的業(yè)務(wù)處理流程,調(diào)度相應(yīng)的核心服務(wù)處理。
核心服務(wù)層的結(jié)構(gòu)示意圖如下:
在服務(wù)的調(diào)用者和核心服務(wù)之間引入TxDispatcher管理服務(wù)層,使得核心業(yè)務(wù)系統(tǒng)對(duì)業(yè)務(wù)需求的變更或調(diào)整,具備快速投產(chǎn)的能力。因?yàn)樵诤诵姆?wù)具有較高可重用性的基礎(chǔ)之上,僅僅通過定制合理的業(yè)務(wù)處理流程,組合不同的核心服務(wù),就有可能完成新業(yè)務(wù)功能的開發(fā)工作。
六、安全模塊的設(shè)計(jì)
UMEP中安全模塊的設(shè)計(jì),仍然采用原有的PKI證書模式。因?yàn)榛赑KI證書的安全技術(shù)是目前安全級(jí)別較高,并且是國家有關(guān)安全部門認(rèn)可的一種加密認(rèn)證技術(shù)。這種技術(shù)在業(yè)界被廣泛使用,也是農(nóng)發(fā)行綜合業(yè)務(wù)系統(tǒng)目前正在使用的安全技術(shù)措施之一。
在使用PKI證書的安全模式下,UMEP服務(wù)器和外接系統(tǒng)前置機(jī)均需要獲得由總行CA中心簽發(fā)的IC卡,作為自己合法身份的唯一標(biāo)識(shí)。報(bào)文上行時(shí),前置機(jī)使用自己的IC卡私鑰對(duì)報(bào)文進(jìn)行加密簽名,然后上傳UMEP服務(wù)器。UMEP服務(wù)器使用該前置機(jī)證書中的公鑰解密并核驗(yàn)簽名,確認(rèn)報(bào)文的合法性。報(bào)文下行時(shí),UMEP服務(wù)器使用自己的IC卡私鑰,對(duì)下傳報(bào)文加密簽名后發(fā)送前置機(jī)。前置機(jī)收到報(bào)文后,使用UMEP服務(wù)器的證書公鑰進(jìn)行解密并核驗(yàn)簽名,核驗(yàn)通過后再發(fā)送給外接系統(tǒng)。UMEP的安全體系結(jié)構(gòu)如下圖所示:
需要強(qiáng)調(diào)的是,在UMEP的設(shè)計(jì)過程中,通用性是整個(gè)平臺(tái)的核心原則。只有具備了通用性能力的業(yè)務(wù)平臺(tái),才能最大程度的避免因業(yè)務(wù)變化帶來的系統(tǒng)運(yùn)行風(fēng)險(xiǎn)。
鑒于UMEP本身建構(gòu)在基于服務(wù)的基礎(chǔ)軟件平臺(tái)之上,并且核心服務(wù)采用了分布式結(jié)構(gòu)的設(shè)計(jì),因此在物理部署上UMEP能夠支持異地多機(jī)集群方式部署,具有高度的可靠性和靈活的可擴(kuò)展性。此外,多層結(jié)構(gòu)的設(shè)計(jì)思想,也使得UMEP具備了良好的伸縮性,既可以部署在總行中心,也可以部署在省級(jí)分行,如有需要甚至可以部署在二級(jí)分行乃至網(wǎng)點(diǎn)。先進(jìn)的PKI證書安全技術(shù),可以有效地阻止非法報(bào)文的進(jìn)入和防范數(shù)據(jù)在傳輸過程中被非法篡改,保證了平臺(tái)系統(tǒng)的安全性。
綜上所述,UMEP是一個(gè)基于分布式服務(wù)設(shè)計(jì)的具備通用性、高可靠性、高擴(kuò)展性、高安全性,并具有良好的伸縮性和跨平臺(tái)能力的通用報(bào)文交換平臺(tái)。