APP下载

银行业务集中式分组交易核心平台研究与应用①

2020-11-13马胜蓝

计算机系统应用 2020年10期
关键词:集中式分组架构

马胜蓝

(福建省农村信用社联合社科技部,福州 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 节结合实验测试方法验证本平台的性能和可用.

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 读写资源使用情况也比较平稳,同时在福建农信应用中也获得较好的效果.而本文的不足之处在于未对核心平台的批量处理进行专门的研究,在后续研究工作中,将进一步探索同时调度联机交易和批量交易的解决方案.

猜你喜欢

集中式分组架构
功能架构在电子电气架构开发中的应用和实践
基于B/S架构的图书管理系统探究
构建富有活力和效率的社会治理架构
分组搭配
怎么分组
分组
硬式内镜器械清洗消毒集中式与分散式的管理效果比较
国有企业的集中式财务管理模式分析
集中互动式多媒体术前宣教在门诊手术患者中的应用
企业内部控制信息化系统架构及实现策略