馬勝藍
(福建省農村信用社聯合社科技部,福州 350001)
銀行核心系統作為銀行業務信息化處理的引擎,是銀行IT 系統中最關鍵的環節[1].銀行核心系統也從早期的PC 單機、聯網聯機、數據大集中、客戶為中心,演變成瘦核心[2,3]、互聯網核心、雙核心,技術上也從最早的“主機-終端”結構,到后來的Unix 系統集群分布式計算,再到大集中時代的“大型機”以及部分中小行的中、小型機集群[4],直至現代的主機下移“分布式X86 服務器”[5].目前針對核心系統的架構主要分為集中式架構和分布式架構.集中式架構是由大型主機的興起而成,國內商業銀行的核心系統多數采用基于IOE(IBM、Oracle、EMC)技術的集中式架構[6],主機資源集中在大型主機或小型機上(例如基于AS400 的核心系統).隨著2016年7月銀監會發布的《中國銀行業信息科技“十三五”發展規劃監督指導意見》中提到的互聯網場景的主要信息系統盡可能遷移至云計算架構平臺,銀行核心系統也朝向采用X86 和云計算[7]為基礎的分布式架構[8–10].在金融科技的趨勢下[11],對于銀行核心系統的替換、改造或者升級,主要看重低成本、運行的穩定性、高效運維、復用、技術前瞻性與可控性[12,13].
銀行核心系統從架構上大體可以分為表示層、服務接入層、業務邏輯層和數據邏輯層,其中服務接入層形成統一的對核心業務處理層的交易請求,并傳輸到可信的隊列或者服務中處理,常被稱為核心平臺(或者叫做核心主控、核心交易平臺),該平臺的能力體現了銀行核心乃至整體IT 服務能力[14].本文主要研究集中式架構的核心平臺的能力提升,設計涵蓋交易服務器、交易分發器、交易處理器的三層架構,實現按照交易級別分發給不同的處理器.
本文后續部分的結構如下:第1 節介紹核心平臺的基本概念和技術框架;第2 節闡述本文提出的具備分組服務的集中式架構核心平臺;第3 節結合實驗測試方法驗證本平臺的性能和可用.
核心系統是以處理銀行最基本的存款、貸款業務為主的IT 系統,在整個IT 體系架構中,核心系統是其他業務子系統的基礎,通過直連、間連與其他系統有著密切的關系,處于承上啟下的關鍵位置.
因為核心系統的重要性,對于遷移變換技術架構每個銀行都很慎重[15],絕大部分銀行都是采用深度優化核心系統的方式[16].目前存在兩類技術架構,一個是集中式,一個是分布式.集中式架構因其交互和應用集成方便,應用運行可靠,性能指標高,運維難度低,目前仍然是大量核心系統的技術方案.AS400 核心系統是主流的集中式架構的核心系統.該類核心系統是構建在操作系統OS400 上的商用中、小型機上,采用集成數據庫DB2/400,并且使用RPG 語言開發[17].由于具備極高的安全性,是世界上唯一沒有受到黑客攻擊和病毒感染的系統,同時擁有99.9%以上的可用性.
核心系統從架構上大體可以分為表示層、服務接入層、業務邏輯層和數據邏輯層,其中服務接入層負責把各渠道的服務請求進行整合,形成統一的對核心業務處理層的交易請求,并傳輸到可信的隊列或者服務中處理.服務接入層常被稱為核心平臺(或者叫做核心主控、核心交易平臺),主要負責通訊穩定、報文完整、服務可靠、作業調度的工作.各渠道接入核心業務系統的服務請求報文各不相同,有定長和不定長方式,核心平臺在收到報文后需要進行應用路由到不同的分組作業中,實現通訊網關、應用路由、報文解析、流程控制.而由于不同業務邏輯處理的時效不同、要求的報文可靠性不同,核心平臺就需要進一步實現系統提交的請求和數據可在網絡故障或目的服務癱瘓的情況下,也能遞交到目的服務中.目前常見的集中式的核心平臺主要采用兩層結構,即采用無優先級區別的監聽-分發模式,這種模式下就無法實現故障隔離和按照交易優先級進行不同資源權限處理[18].
本文以AS400 核心系統為例,設計具有交易服務器、交易分發器、交易處理器的三層架構的集中式架構核心平臺,實現處理作業按交易分組,保障交易高峰期時關鍵業務的處理效率.核心平臺架構如圖1所示.
交易服務器作為核心平臺與外圍系統聯機交互的入口,主要與產生的交易分發器產生快速通訊連接與傳遞,創建過程見算法1.

算法1.交易服務器創建算法1.讀取配置參數服務器編號、端口號、分發器程序、分發器數量.2.創建socket.3.調用setsockopt 函數設置socket 句柄重復使用.4.調用listen 函數監聽通訊端口.5.調用spawn 函數生成N 個交易分發器程序,執行算法2.6.循環等待外圍通訊鏈接.
交易分發器作為通訊連接源頭交易服務器和交易執行主體交易處理器的中間環節,實現分組分配的作用,創建過程見算法2.

算法2.交易分發器創建算法1.調用QUSCRTUI 函數創建用戶視圖,名稱為B+服務器編號.2.循環讀取原交易定義表,調用QUSADDUI 函數將原交易碼和業務組編號的對應關系添加到新建的用戶視圖中.3.循環執行,獲取由交易服務器分發的socket 句柄.若失敗則關閉通訊句柄,結束算法.

圖1 核心平臺架構
交易處理器將自身的作業ID 置入處理組隊列中,由交易分發器讀取處理組隊列中的ID 進行作業分配.交易處理器的創建過程見算法3.

算法3.交易處理器創建算法1.根據業務組編號讀取配置參數作業優先級、運行次數.2.調用CHGJOB 函數修改作業運行優先級.3.調用STRCMTCTL 函數啟動事務處理.4.循環調用核心交易主程序,阻塞等待分發器分發的通訊句柄.5.判斷核心交易主程序的返回碼成功時提交確認事務,失敗時回滾事務.6.累計循環執行次數,達到最大運行次數時提交結束作業命令PJ 作業重啟.
交易分組服務算法,根據交易報文中的交易碼所屬的業務屬性和優先級,將服務請求分配到具備不同系統資源優先級的隊列中的作業,具體如算法4 所示.

算法4.交易分組服務算法1.初始化,執行算法1、算法2、算法3.2.交易服務器接收外圍程序通訊接口請求.3.交易服務器將socket 句柄隨機分配給交易分發器.4.交易分發器接收到交易服務器分配的socket 句柄,調用peek 函數讀取報文信息,獲取原交易碼.根據原交易碼取該交易對應的數據隊列DTAQ 及對應交易處理器組別.5.交易分發器調用函數givedescriptor()將socket 句柄分發給對應的交易處理器.6.交易處理器調用函數takedescriptor()接收socket 句柄.

7.交易處理器調用peek 函數預讀取出交易報文頭.調用失敗時登記異常日志、的通訊關閉通訊句柄、退出本次循環繼續等待下次交易服務器分發 鏈接.8.交易服務器讀取服務器IP,根據報文頭交易時間、客戶端地址、IP 控制等進行安全性校驗.9.交易服務器根據報文頭中的原交易碼,調用QUSRTVUI 函數取出用戶視圖中對應的業務組號.賦值對應的處理作業數據隊列名=分發器編號+業務組編號.10.交易分發器從執行的DTAQ 中取得空閑的作業ID,將通訊句柄發送給交易處理器.11.交易處理器程序執行完將作業ID 發送到對應的分組DTAQ 中,阻塞等待交易分發器程序傳入的socket 句柄.
本文采用i750 的機器作為實驗與驗證環境,物理配置32 Core 處理器(激活12 Core),主頻3.6 GHZ,內存150 GB,采用IBM 機器自帶的資源監控工具.實驗中設置隊列數量為2 個,一個為高優先級H(執行賬務類交易或者高頻交易),一個為低優先級L(執行低頻的查詢交易).實驗通過壓力測試和穩定性測試進行比較[19].
壓力測試比較監聽-分發兩層結構的核心平臺(以下簡稱“Core2”)和具備分發服務的三層結構的核心平臺(Core3)的性能.
(1)單交易壓力測試
單交易壓力測試中選擇13 支交易進行單交易壓力測試,驗證在1500 個用戶并發下的最大TPS 情況,如表1所示.

表1 1500 個用戶并發下單交易壓力測試情況(單位:筆/s)
從表1中可以看出,Core3 通過分組服務,在高并發時低優先級隊列中因為具備較低的資源,最大TPS 低于Core2,但是在高優先級的交易中具備更大的TPS.
(2)混合交易壓力測試
混合交易中采用福建農信生產的高頻26 支交易,根據業務量占比設置壓力測試數據.表2和表3是不同并發用戶數下兩種算法的TPS 及CPU 數據.從表2和表3可看出,Core2 和Core3 在用戶數1502 時候達到了最大的TPS 處理能力,分別為1473.774 筆/s 和1483.155筆/s,Core3 在擁有更大的TPS 同時比Core2 擁有更低的CPU 使用率.圖2和圖3分別顯示Core2 和Core3的機器性能情況,可以看出Core3 與Core2 相比,CPU沒有達到滿載,也沒有出現CPU 資源等待,體現了分組分配帶來的動態調整能力.

表2 不同用戶數下TPS 比較表(單位:筆/s)

表3 不同用戶數下CPU 比較表(單位:%)

圖2 Core2 機器資源情況

圖3 Core3 機器資源情況
穩定性場景測試采用Core3 混合場景測試中最優處理能力的80%發起并發壓力.設置并發1250 個用戶混合場景配置負載壓力下持續穩定運行12 小時,穩定性測試過程共計成功完成了52 906 925 筆交易,交易成功率100%,整個過程系統運行平穩,最優TPS 約為1400 筆/s,如圖4所示.圖5顯示了i750 的機器資源使用變化,CPU、內存及IO 讀寫資源使用情況也比較平穩,未發現交易性能下降、內存泄露、異常退出等現象.

圖4 12 小時TPS 變化

圖5 系統資源使用變化趨勢圖
本文設計的“集中式分組交易核心平臺”被應用在福建省農村信用社聯合社(簡稱“福建農信”)的AS400 系統中(i780,64Core).經過升級的核心平臺處理能從升級前755 筆/s 上升到2500 筆/s,系統資源占有情況下降了1/3,滿足了福建農信的核心服務需求.
隨著金融科技的發展,對于傳統的核心系統的能力提出了更高要求.不同銀行對集中式、分布式架構體系中的核心都做了大量的研究和工作.本文基于AS400 的集中式架構的銀行核心技術體系,設計了一種具備交易分組能力的核心平臺,設計涵蓋交易服務器、交易分發器、交易處理器的三層架構,結合報文中的業務性質,實現處理作業按交易分組,保障交易高峰期時關鍵業務的處理效率.實驗結果表明,相較于傳統的監聽-分發兩層結構的核心交易平臺,本文設計的具備交易分組能力的三層結構的核心平臺,能夠實現不同交易級別的交易的不同資源調配,在模擬仿真交易高峰期場景中,具備較高的TPS 處理能力,CPU、內存及IO 讀寫資源使用情況也比較平穩,同時在福建農信應用中也獲得較好的效果.而本文的不足之處在于未對核心平臺的批量處理進行專門的研究,在后續研究工作中,將進一步探索同時調度聯機交易和批量交易的解決方案.