摘 要:本文以云南郵政中間業(yè)務發(fā)展角度討論了銀行建立中間業(yè)務系統(tǒng)的必要性,并對云南郵政水費代收中間業(yè)務平臺系統(tǒng)進行了詳細設計,包括系統(tǒng)的需求分析、架構(gòu)設計、關(guān)鍵技術(shù)介紹,數(shù)據(jù)安全設計。系統(tǒng)運行結(jié)果表明,本系統(tǒng)性能優(yōu)良、可靠性高、安全性好、實時性強,達到了銀行與自來水公司雙贏的目的,促進了企業(yè)的信息化建設。
關(guān)鍵詞:中間業(yè)務;水費代收;安全性;實時性
中圖分類號:TP399-C2
隨著社會的發(fā)展,銀行的信息化建設成為銀行業(yè)競爭的主要焦點,為了更好的服務銀行客戶,各家銀行都投入了大量的人力、物力、財力在信息化建設上。在這些信息化產(chǎn)品上,銀行中間業(yè)務發(fā)展最為迅速。中間業(yè)務是銀行拓展業(yè)務渠道,實現(xiàn)多元化經(jīng)營的一種有效方式,不僅如此,中間業(yè)務系統(tǒng)是銀行系統(tǒng)與客戶系統(tǒng)聯(lián)接的橋梁。
銀行中間業(yè)務的發(fā)展也經(jīng)歷了多個過程,比如中間業(yè)務系統(tǒng)新起時,其交易都是非實時性的,因此所有交易都是批量進行代扣的。而目前銀行中間業(yè)務系統(tǒng)交易有已經(jīng)發(fā)展到實時性交易,代扣方式也專變?yōu)榕颗c單筆交易相結(jié)合的方式。在銀行中間業(yè)務發(fā)展初期,主要是因為技術(shù)的不成熟以及其他客觀條件的限制,主要使用的是軟盤進行數(shù)據(jù)交換,比如代扣代理單位需要將所有的代扣信息存放至軟盤中,銀行根據(jù)軟盤信息在規(guī)定時間內(nèi)完成所有的代扣處理,這種方式不僅出錯率高,而且隨著代扣業(yè)務量的增大,已經(jīng)無法滿足當前代扣業(yè)務發(fā)展的需求。而隨著計算機技術(shù)、通信技術(shù)、數(shù)據(jù)庫技術(shù)的快速發(fā)展,具有及時交易的中間業(yè)務模式應運而生。
本文以云南郵政水費代收系統(tǒng)為例,詳細對銀行中間業(yè)務系統(tǒng)進行了分析和設計,該代收系統(tǒng)通過MSTP專線與銀行后臺系統(tǒng)進行連接從而完成自來水公司的水費代收業(yè)務。
1 相關(guān)技術(shù)
1.1 中間業(yè)務
所謂中間業(yè)務是指不構(gòu)成商業(yè)銀行表內(nèi)資產(chǎn)、表內(nèi)負債、形成銀行非利息收入的業(yè)務,實際上在中間業(yè)務中,銀行的性質(zhì)屬于中介,即第三方。中間業(yè)務是銀行參與其他社會經(jīng)濟活動的必要組成部分,目前在我國中間業(yè)務滲透到各行各業(yè),比如代收業(yè)務、網(wǎng)上銀行、電話銀行等等,這些業(yè)務的發(fā)展都離不開中間業(yè)務。
一般情況下,一筆中間業(yè)務從交易發(fā)起至交易完成,需要經(jīng)過至少6次的數(shù)據(jù)傳輸。
(1)銀行中間業(yè)務系統(tǒng)向目標企業(yè)發(fā)起欠費查詢;(2)銀行中間業(yè)務系統(tǒng)向用戶確認是否交費;(3)銀行中間業(yè)務系統(tǒng)向銀行核心系統(tǒng)進行扣款;(4)銀行中間業(yè)務系統(tǒng)向目標企業(yè)發(fā)起繳費,如果出錯,需要返銷第3步的扣款;(5)銀行中間業(yè)務系統(tǒng)記賬處理,如果出錯,需要返銷第3、4步的扣款和繳費;(6)銀行中間業(yè)務系統(tǒng)打印收據(jù)給用戶。
1.2 Socket通信
Socket是一種通信機制,它可以完成網(wǎng)絡上應用程序間的跨平臺通信。實際上,Socket是應用程序進程間通信的端點,當端點與端點進行成功連接后便可以相互傳輸數(shù)據(jù)。
Socket由IP地址、通信端口、類型組成:(1)IP地址:確定目標計算機的通信地址;(2)通信端口:確定目標計算機的應用程序進程;(3)類型:確定Socket的通信方式,有流Socket、數(shù)據(jù)包Socket和基礎三種類型,而應用程序與應用程序間的通信只能在同類型中進行通訊。
Socket通信流程如下:
服務端:首先建立一個Socket,然后將建立的Socket與本地端口進行綁定,并對端口進行實時監(jiān)聽,當收到連接請求時,便建立連接。
客戶端:首先建立一個Socket,當與服務端成功連接口,便可進行數(shù)據(jù)的發(fā)送和接收,當數(shù)據(jù)傳輸結(jié)束后,關(guān)閉連接。
主要函數(shù)包含以下8種:(1)Socket():建立Socket;(2)Bind();將本地端口與Socket綁定;(3)Listen();設置Socket為監(jiān)聽狀態(tài);(4)Accept():接收socket連接請求;(5)Connect();連接socket;(6)Read():接收信息;(7)Write():發(fā)送信息;(8)Close():關(guān)閉Socket連接。
2 系統(tǒng)需求分析
2.1 功能需求
本系統(tǒng)郵政儲蓄銀行可發(fā)起柜面和ATM繳費交易,網(wǎng)銀可發(fā)起欠費、繳費記錄查詢交易,代扣簽約和解約的查詢交易。
自來水公司可發(fā)起扣款交易,然后通過郵政儲蓄銀行的中間業(yè)務平臺向已經(jīng)簽約的用戶扣款收水費。
根據(jù)中間業(yè)務的交流程序,本系統(tǒng)的具體功能需求如下:(1)查詢功能:郵政儲蓄銀行中間業(yè)務系統(tǒng)可以處理自來水公司發(fā)出的查詢請求,自來水公司可根據(jù)用戶編號查詢簽約客戶的繳費情況等;(2)交費功能:銀行工作人員錄入簽約客戶的用水交費編號進行按月交費,完成交費交易,其中每筆交易都對應著一個唯一的流水號;(3)沖正功能:對已經(jīng)完成的交易進行沖正。如果簽約客戶交費水費,中間業(yè)務系統(tǒng)向自來水公司業(yè)務系統(tǒng)發(fā)起沖正請求,并提供交易流水號,自來水公司根據(jù)流水號完成沖正;(4)對賬功能:郵政儲蓄銀行每天進行日終對賬,主要是與自來水公司完成總賬核對和明細核對,其方式是通過將交易明細傳給自來水公司完成對賬;(5)簽約功能:與客戶建立代收水費關(guān)系;(6)解約功能:與客戶撤銷代收水費關(guān)系;(7)報表管理:打印各種業(yè)務流水表;(8)收據(jù)打印:打印銀行代收水費的收據(jù);(9)系統(tǒng)管理:包括用戶管理、簽約客戶管理、日志管理等。
2.2 性能需求分析
根據(jù)中間業(yè)務的交易特點,本系統(tǒng)性能需求如下:(1)實時性:對于任何交易,系統(tǒng)實時性要求較高;(2)可靠性:由于涉及到賬戶處理,因此需要充分考慮網(wǎng)絡的可靠性和安全性;(3)易操作性:減少人為錯誤的發(fā)生;(4)完整性:銀行主機、中間業(yè)務系統(tǒng)服務器、自來水公司主機保持數(shù)據(jù)同步更新。
3 系統(tǒng)總體設計
3.1 系統(tǒng)架構(gòu)設計
根據(jù)需求分析,需要水費代扣的客戶向郵政儲蓄銀行申請辦理代扣水費業(yè)務,銀行網(wǎng)點業(yè)務人員將申請開戶的交易請求發(fā)送至網(wǎng)點服務器,然后網(wǎng)點服務器將交易請求傳輸給郵政儲蓄銀行的中間業(yè)務系統(tǒng)服務器,中間業(yè)務系統(tǒng)再把交易請求消息轉(zhuǎn)發(fā)給自來水公司,自來水公司處理請求后把處理結(jié)果轉(zhuǎn)發(fā)到郵政儲蓄銀行的中間業(yè)務系統(tǒng)服務器,中間業(yè)務系統(tǒng)再將處理結(jié)果發(fā)送給網(wǎng)點,網(wǎng)點再將交易處理結(jié)果信息反饋給簽約客戶。
根據(jù)以上的業(yè)務流程分析,系統(tǒng)架構(gòu)設計如圖1所示。
圖1 系統(tǒng)架構(gòu)圖
3.2 功能設計
根據(jù)需求分析,系統(tǒng)的功能結(jié)構(gòu)圖如圖2所示。
圖2 系統(tǒng)功能結(jié)構(gòu)圖
3.3 通信程序設計
本銀行中間業(yè)務平臺采用TCP/IP協(xié)議的Socket流方式與自來水公司系統(tǒng)進行通信,由于每次通訊時數(shù)據(jù)包長度不固定,因此本數(shù)據(jù)包設計采用變長分隔符字符串標準,數(shù)據(jù)包由單一內(nèi)容和循環(huán)內(nèi)容組成。通過編寫報文位圖實現(xiàn)變量與報文的映射,可以完成常規(guī)通訊數(shù)據(jù)報文的快速打包和解包。但是水費業(yè)務的數(shù)據(jù)結(jié)構(gòu)較為復雜,我們做了一些特殊處理。
數(shù)據(jù)解包流程:首先對接收到的數(shù)據(jù)包進行解密操作,如果數(shù)據(jù)包傳輸無誤,就調(diào)用系統(tǒng)解包程序根據(jù)報文位圖進行初次解析,將數(shù)據(jù)包的單一內(nèi)容解析到報文位圖對應的變量池中,把循環(huán)內(nèi)容解析到特殊的變量池中,再利用專門的循環(huán)內(nèi)容解析函數(shù)對其進行解析。當數(shù)據(jù)包解析完成后,計算數(shù)據(jù)包的MAC值,完成校驗工作。
數(shù)據(jù)打包流程:首先計算數(shù)據(jù)包的MAC值,然后再將從變量池中組合數(shù)據(jù)包的單一內(nèi)容和循環(huán)內(nèi)容,再調(diào)用系統(tǒng)打包程序按照打包報文位圖生成數(shù)據(jù)包,最后進行數(shù)據(jù)包加密。
4 關(guān)鍵技術(shù)
4.1 共享內(nèi)存
共享內(nèi)存是進程間共享數(shù)據(jù)最快的途徑,它是物理存儲區(qū)域中的一塊。在系統(tǒng)啟動的時候,將數(shù)據(jù)庫和配置文件里的控制信息,讀入共享內(nèi)存中,新交易發(fā)起的時候,直接從共享內(nèi)存里取數(shù)據(jù)生成交易流程和通訊報文結(jié)構(gòu)。當進程間需要協(xié)作的時候,通過設置共享內(nèi)存信息,實現(xiàn)同步與數(shù)據(jù)共享,這樣做減輕了系統(tǒng)I/O壓力,可以有效提供系統(tǒng)的工作效率。
4.2 變量池
變量池進程內(nèi)的全局變量空間,系統(tǒng)通過變量池實現(xiàn)了數(shù)據(jù)在交易各個處理環(huán)節(jié)之間的共享。我們系統(tǒng)的每一步處理都是相對獨立的子交易程序,各個子程序之間存在大量的數(shù)據(jù)交互,通過參數(shù)的調(diào)用無法完成信息傳遞工作。因此,我們采用了變量池技術(shù),在交易啟動的時候會根據(jù)共享內(nèi)存初始變量池,之后每一步處理都通過變量池獲取數(shù)據(jù)信息,再把處理結(jié)果存入變量池,到交易結(jié)束時,釋放變量池。
4.3 消息隊列
消息隊列實際上是一個鏈表,系統(tǒng)通訊的多個進程可以共享一個消息隊列來進行消息的交換。中間業(yè)務系統(tǒng)的進程發(fā)送消息時,其消息類型號都是臨時產(chǎn)生的唯一編號,在消息返回時,每個進程只接收消息類型號與自己編號相同的消息。進程都是通過消息隊列接收信息的,因此,使用消息隊列可以起到一個緩沖作用,增加了系統(tǒng)的負載能力。
本系統(tǒng)可以根據(jù)業(yè)務發(fā)展情況動態(tài)調(diào)整消息隊列數(shù)量,由于中間業(yè)務系統(tǒng)同時運行了十多個業(yè)務,因此只為代收水費分配了5個消息隊列,并且為核心系統(tǒng)分配了30個消息隊列。交易發(fā)起的時候,會被分配到負載最小的消息隊列里,在業(yè)務繁忙時,交易消息隊列可以實現(xiàn)簡單的負載均衡,并保證每個交易都能被處理,不會因為系統(tǒng)繁忙而丟棄交易。
5 安全設計
5.1 秘鑰管理機制
針對中間業(yè)務系統(tǒng)不同的加密解密操作,比如重要數(shù)據(jù)字段加密、數(shù)據(jù)報文MAC運算等提供不同的秘鑰。而且,在系統(tǒng)拓撲結(jié)構(gòu)中,提供專業(yè)的秘鑰服務器對系統(tǒng)的加密秘鑰進行管理,這樣就保證了系統(tǒng)所有的秘鑰操作都在秘鑰服務器中進行,有效防止秘鑰的泄露。與核心系統(tǒng)通訊的主秘鑰分別由兩個人管理,任何一個人都不知道完整的秘鑰。數(shù)據(jù)庫中的秘鑰都是加密存儲的。
5.2 數(shù)據(jù)安全設計
由于本系統(tǒng)采用的是Oracle 10g數(shù)據(jù)庫,安全級別較高,而且從Linux操作系統(tǒng)的文件權(quán)限規(guī)范數(shù)據(jù)庫文件的存取權(quán)限,并且利用Oracle 10g數(shù)據(jù)庫的事件跟蹤機制對數(shù)據(jù)庫的事件運行進行監(jiān)控。建立災備中心,實現(xiàn)系統(tǒng)數(shù)據(jù)和業(yè)務的異地備份。
對數(shù)據(jù)表關(guān)鍵字段設計摘要計算方法,當對數(shù)據(jù)庫進行操作時,需要計算該摘要并與數(shù)據(jù)庫中登記的DAC字段對比,在核對不一致的情況下,認為該數(shù)據(jù)字段被篡改。
6 結(jié)束語
本文以云南郵政代收水費中間業(yè)務系統(tǒng)為研究為例,詳細設計并實現(xiàn)了一個架構(gòu)良好的水費代收中間業(yè)務平臺。該平臺于2007年上線投產(chǎn),從系統(tǒng)運行情況來看,系統(tǒng)運行良好,月平均交易量在30000筆以上,金額在400萬以上,推動了云南郵政水費代收業(yè)務的穩(wěn)定發(fā)展,帶來了良好的社會和經(jīng)濟效益。
參考文獻:
[1]趙思瑤.論商業(yè)銀行中間業(yè)務的現(xiàn)狀、問題和對策研究[J].科技創(chuàng)新導報,2012(02).
[2]歐軍,吳清秀,裴云.基于socket的網(wǎng)絡通信技術(shù)研究[J].網(wǎng)絡安全技術(shù)與應用,2011(07).
[3]王遠洋,周淵平,郭煥麗.Linux下基于socket多線程并發(fā)通信的實現(xiàn)[J].微計算機信息,2009(15).
[4]張宇鴻,彭宏.基于CICS中間件的中間業(yè)務平臺系統(tǒng)[J].現(xiàn)代計算機,2004(08).
作者簡介:王平嵩,男,云南石屏人,本科,軟件研發(fā)人員,工程師,研究方向:計算機軟件開發(fā)。
作者單位:云南省郵政公司,昆明 650011