计算机系统应用  2020, Vol. 29 Issue (10): 97-102   PDF    
银行业务集中式分组交易核心平台研究与应用
马胜蓝     
福建省农村信用社联合社科技部, 福州 350001
摘要:银行核心系统是以处理银行最基本的存款、贷款业务为主的IT系统, 其中的交易平台体现了银行核心乃至整体IT服务能力. 为了提高集中式架构的核心系统在交易高峰期的服务能力, 本文设计了一种具备交易分组能力的核心平台. 该平台涵盖了交易服务器、交易分发器、交易处理器三层架构, 通过交易分组服务算法实现处理作业按交易分组以及动态分配系统资源. 实验结果表明, 相较于传统的监听-分发两层结构, 本文设计的具备交易分组能力的三层结构的核心平台, 具备较高的并发处理能力, 系统资源使用情况也比较平稳.
关键词: 核心系统    集中式架构    交易分组服务    三层结构    
Research and Application of Banking Centralized Grouped Transaction Core Platform
MA Sheng-Lan     
Science and Technology Service Center, Fujian Rural Credit Union, Fuzhou 350001, China
Abstract: The core system of the bank is an IT system mainly dealing with the most basic deposit and loan business of the bank, and the trading platform therein reflects the core of the bank and even the overall IT service capabilities. In order to improve the service capability based on the centralized architecture core system during peak trading hours, this study designs a core platform with transaction grouping service. The core platform covers a three-tier architecture of a trading server, a trading distributor, and a trading processor. The transaction grouping service algorithm is used to implement processing tasks grouped by transactions and dynamically allocate system resources. The experimental results show that compared with the traditional two-tier structure core trading platform of monitoring and distribution, the core platform with a three-tier structure with grouping services designed in this study has higher concurrent processing capabilities, and more stable system resource usage.
Key words: core system     centralized architecture     transaction grouping services     three-tier structure    

银行核心系统作为银行业务信息化处理的引擎, 是银行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节结合实验测试方法验证本平台的性能和可用.

1 核心平台概念

核心系统是以处理银行最基本的存款、贷款业务为主的IT系统, 在整个IT体系架构中, 核心系统是其他业务子系统的基础, 通过直连、间连与其他系统有着密切的关系, 处于承上启下的关键位置.

因为核心系统的重要性, 对于迁移变换技术架构每个银行都很慎重[15], 绝大部分银行都是采用深度优化核心系统的方式[16]. 目前存在两类技术架构, 一个是集中式, 一个是分布式. 集中式架构因其交互和应用集成方便, 应用运行可靠, 性能指标高, 运维难度低, 目前仍然是大量核心系统的技术方案. AS400核心系统是主流的集中式架构的核心系统. 该类核心系统是构建在操作系统OS400上的商用中、小型机上, 采用集成数据库DB2/400, 并且使用RPG语言开发[17]. 由于具备极高的安全性, 是世界上唯一没有受到黑客攻击和病毒感染的系统, 同时拥有99.9%以上的可用性.

核心系统从架构上大体可以分为表示层、服务接入层、业务逻辑层和数据逻辑层, 其中服务接入层负责把各渠道的服务请求进行整合, 形成统一的对核心业务处理层的交易请求, 并传输到可信的队列或者服务中处理. 服务接入层常被称为核心平台(或者叫做核心主控、核心交易平台), 主要负责通讯稳定、报文完整、服务可靠、作业调度的工作. 各渠道接入核心业务系统的服务请求报文各不相同, 有定长和不定长方式, 核心平台在收到报文后需要进行应用路由到不同的分组作业中, 实现通讯网关、应用路由、报文解析、流程控制. 而由于不同业务逻辑处理的时效不同、要求的报文可靠性不同, 核心平台就需要进一步实现系统提交的请求和数据可在网络故障或目的服务瘫痪的情况下, 也能递交到目的服务中. 目前常见的集中式的核心平台主要采用两层结构, 即采用无优先级区别的监听-分发模式, 这种模式下就无法实现故障隔离和按照交易优先级进行不同资源权限处理[18].

2 具备交易分组服务的集中式架构核心平台

本文以AS400核心系统为例, 设计具有交易服务器、交易分发器、交易处理器的三层架构的集中式架构核心平台, 实现处理作业按交易分组, 保障交易高峰期时关键业务的处理效率. 核心平台架构如图1所示.

2.1 交易服务器

交易服务器作为核心平台与外围系统联机交互的入口, 主要与产生的交易分发器产生快速通讯连接与传递, 创建过程见算法1.

算法1.交易服务器创建算法

1. 读取配置参数服务器编号、端口号、分发器程序、分发器数量.

2. 创建socket.

3. 调用setsockopt函数设置socket句柄重复使用.

4. 调用listen函数监听通讯端口.

5. 调用spawn函数生成N个交易分发器程序, 执行算法2.

6. 循环等待外围通讯链接.

2.2 交易分发器

交易分发器作为通讯连接源头交易服务器和交易执行主体交易处理器的中间环节, 实现分组分配的作用, 创建过程见算法2.

算法2. 交易分发器创建算法

1. 调用QUSCRTUI函数创建用户视图, 名称为B+服务器编号.

2. 循环读取原交易定义表, 调用QUSADDUI函数将原交易码和业务组编号的对应关系添加到新建的用户视图中.

3. 循环执行, 获取由交易服务器分发的socket句柄. 若失败则关闭通讯句柄, 结束算法.

图 1 核心平台架构

2.3 交易处理器

交易处理器将自身的作业ID置入处理组队列中, 由交易分发器读取处理组队列中的ID进行作业分配. 交易处理器的创建过程见算法3.

算法3. 交易处理器创建算法

1. 根据业务组编号读取配置参数作业优先级、运行次数.

2. 调用CHGJOB函数修改作业运行优先级.

3. 调用STRCMTCTL函数启动事务处理.

4. 循环调用核心交易主程序, 阻塞等待分发器分发的通讯句柄.

5. 判断核心交易主程序的返回码成功时提交确认事务, 失败时回滚事务.

6. 累计循环执行次数, 达到最大运行次数时提交结束作业命令PJ作业重启.

2.4 交易分组服务算法

交易分组服务算法, 根据交易报文中的交易码所属的业务属性和优先级, 将服务请求分配到具备不同系统资源优先级的队列中的作业, 具体如算法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句柄.

3 实验与验证

本文采用i750的机器作为实验与验证环境, 物理配置32 Core处理器(激活12 Core), 主频3.6 GHZ, 内存150 GB, 采用IBM机器自带的资源监控工具. 实验中设置队列数量为2个, 一个为高优先级H(执行账务类交易或者高频交易), 一个为低优先级L(执行低频的查询交易). 实验通过压力测试和稳定性测试进行比较[19].

3.1 压力测试

压力测试比较监听-分发两层结构的核心平台(以下简称“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机器资源情况

3.2 稳定性测试

稳定性场景测试采用Core3混合场景测试中最优处理能力的80%发起并发压力. 设置并发1250个用户混合场景配置负载压力下持续稳定运行12小时, 稳定性测试过程共计成功完成了52 906 925笔交易, 交易成功率100%, 整个过程系统运行平稳, 最优TPS约为1400笔/s, 如图4所示. 图5显示了i750的机器资源使用变化, CPU、内存及IO读写资源使用情况也比较平稳, 未发现交易性能下降、内存泄露、异常退出等现象.

图 4 12小时TPS变化

图 5 系统资源使用变化趋势图

3.3 实际应用效果

本文设计的“集中式分组交易核心平台”被应用在福建省农村信用社联合社(简称“福建农信”)的AS400系统中(i780, 64Core). 经过升级的核心平台处理能从升级前755笔/s上升到2500笔/s, 系统资源占有情况下降了1/3, 满足了福建农信的核心服务需求.

4 结语

随着金融科技的发展, 对于传统的核心系统的能力提出了更高要求. 不同银行对集中式、分布式架构体系中的核心都做了大量的研究和工作. 本文基于AS400的集中式架构的银行核心技术体系, 设计了一种具备交易分组能力的核心平台, 设计涵盖交易服务器、交易分发器、交易处理器的三层架构, 结合报文中的业务性质, 实现处理作业按交易分组, 保障交易高峰期时关键业务的处理效率. 实验结果表明, 相较于传统的监听-分发两层结构的核心交易平台, 本文设计的具备交易分组能力的三层结构的核心平台, 能够实现不同交易级别的交易的不同资源调配, 在模拟仿真交易高峰期场景中, 具备较高的TPS处理能力, CPU、内存及IO读写资源使用情况也比较平稳, 同时在福建农信应用中也获得较好的效果. 而本文的不足之处在于未对核心平台的批量处理进行专门的研究, 在后续研究工作中, 将进一步探索同时调度联机交易和批量交易的解决方案.

参考文献
[1]
李法杰, 张睿. 农村商业银行核心业务系统核算引擎现状分析与改进探讨. 数字通信世界, 2018(3): 86-87. DOI:10.3969/J.ISSN.1672-7274.2018.03.056
[2]
成俊. 银行核心系统"瘦身"后重新定义. 银行家, 2008(5): 124-127. DOI:10.3969/j.issn.1671-1238.2008.05.034
[3]
马胜蓝. 蝴蝶蜕变, 打造新一代核心系统——福建农信核心账务系统架构整合实践. 中国金融电脑, 2017(6): 45-50. DOI:10.3969/j.issn.1001-0734.2017.06.011
[4]
张相广. 商业银行大型主机平台运维智能化转型探索与实践. 中国金融电脑, 2019(6): 52-56. DOI:10.3969/j.issn.1001-0734.2019.06.011
[5]
薛勇. 中国银行分布式架构的创新研究与实践. 中国金融电脑, 2016(5): 15-21. DOI:10.3969/j.issn.1001-0734.2016.05.003
[6]
叶又升. 商业银行如何“去IOE”. 金融电子化, 2014(8): 26.
[7]
刘春霖. 云计算在银行业应用趋势研究. 数字通信世界, 2019(8): 169. DOI:10.3969/J.ISSN.1672-7274.2019.08.128
[8]
老木. 银行核心业务系统采用互联网分布式架构替代主机集中式架构的研究. 金融电子化, 2015(6): 58-60.
[9]
孙明明. 人民银行分布式架构应用研究. 金融科技时代, 2019(11): 32-37. DOI:10.3969/j.issn.2095-0799.2019.11.007
[10]
金磐石. 分布式架构在银行核心业务系统的应用. 计算机系统应用, 2017, 26(6): 46-52. DOI:10.15888/j.cnki.csa.005852
[11]
李伟. 金融科技发展与监管. 中国金融, 2017(8): 14-16.
[12]
刘晨东, 侯晓强, 翟宾, 等. FinTech时代商业银行分布式核心系统研究与实践. 中国金融电脑, 2018(7): 36-41. DOI:10.3969/j.issn.1001-0734.2018.07.008
[13]
张帝, 汤勇. 基于开放式平台的银行核心业务系统服务器部署规划浅析. 中国金融电脑, 2018(12): 47-49. DOI:10.3969/j.issn.1001-0734.2018.12.011
[14]
吕远阳. 热点数据处理模型在商业银行核心系统中的应用. 数字通信世界, 2019(2): 200, 284.
[15]
乔克. 银行核心业务系统发展指引——“新一代核心系统”建设的重要意义及思路. 银行家, 2012(9): 121-124.
[16]
冯华彬. 银行核心系统支持7×24小时不间断服务分析. 中国金融电脑, 2013(5): 62-65. DOI:10.3969/j.issn.1001-0734.2013.05.015
[17]
Myers SE. RPG IV Programming on the AS/400. Upper Saddle River: Prentice Hall, 1998.
[18]
周双娥, 欧中红, 袁由光. 网络化的在线诊断、故障隔离、动态重组技术. 计算机应用研究, 2003, 20(1): 92-93. DOI:10.3969/j.issn.1001-3695.2003.01.029
[19]
孙婷, 芦英明, 陈中伟. 软件系统性能测试方法及流程规划. 自动化与仪器仪表, 2018(1): 166-169.