银行前置系统的设计和发展
第 1 章 绪论
1.1 研究背景及意义
在银行的实际应用中,与银行后台对接的系统逐步增多,导致核心的压力越来越大,而外围系统的通讯协议和报文格式等又不尽相同,所以必须采用银行前置系统来进行系统间服务的调用和交互,但目前很多银行的前置都是分别对应单一的渠道,资源的冗余浪费导致了银行的成本负担过高,因此开发统一的综合前置平台来进行各渠道之间的交互和整合势在必行[1],这会极大的提升系统的运行工作效率,而所研发的新前置系统可以支持各类通讯协议之间的转换,不同类型的报文格式转换,以及支撑跨系统之间交互交易的实现[2],并且需要能够支撑参数化配置,增加复用度,这样才能保证新产品的研发周期短,提高银行的行业竞争力,取得商业先机、获得客户的认可,进一步增加银行的盈利水平。
以下几个因素要求我们必须进行银行大前置系统的设计和开发:
⑴银行的核心系统压力越来越大
传统的银行前置系统功能过于单一,主要偏重于交易的转发,并不做其它处理[3],而本地特色和个性化产品的业务逻辑和界面的处理对核心的压力越来越大,严重的影响了核心系统传统资产负债类主营业务的高效性和稳定性。
⑵银行前置系统功能杂乱无章
银行前置系统作为所有后台的前台和所有前台的后台,有数据转换和业务逻辑处理的能力,由于系统模块功能划分的不清晰,定位不准确,导致了复用率很低,未能达到预期应有的系统交互中枢的作用,限制了产品的创新能力和系统运行效率[4-5]。
⑶接入手段繁多对统一接入的要求
社会飞速发展,银行的服务手段越来越多,如代收付类中间业务、网上银行、手机银行、ATM 等,这就对银行接入系统提出了十分高的要求。很明显采用过去那种网状结构的接入方式势必会造成整个银行系统入口繁多,管理和维护起来很复杂。统一的接入平台势在必行,平台采用的是一种总线接入方式,使用这种接入方式,一方面各种应用都能够架构在这个平台之上,另一方面这个平台又能够支持多种接入方式,并提供多种应用统一的接入点[6-7]。
...........................................
1.2 国内外研究现状
90 年代前期,银行前置系统主要是作为银行后台核心系统的一个补充模块,解决的是两个及以上系统间的通讯差异,方便交互,但是前置平台并不做其它的处理,就是所谓的穿透通道;,仅仅起到通讯协议的转换,并没有实现前置平台的其它特色功能[8]。
90 年代后期,随着 ATM 和 POS 机的广泛应用,促进了前置系统的发展,但是采用的基本上都是相互独立的前置,没有整合,导致银行成本大,不同系统间的交互比较繁琐[9]。
2000 年左右,随着中间业务的兴起[10-11],外围系统的不断增多,银行后台核心系统的压力越来越大,稳定性和效率性逐步降低,所以银行对前置系统进行初期整合,并在前置系统上进行一部分交易的完成,降低核心系统的压力,减少部分成本,系统间的交互变得更快捷一些。
2021 年以后,基于 SOA 体系架构的综合前置平台应运而生[12],系统性能提高很大,降低耦合度,系统的服务采用构件化,可以重复利用,便于技术人员的开发,缩短了产品的开发周期,集成接口使平台独立,兼容多种技术,方便的访问服务,不需要关心服务提供者的软硬件设施,同时使服务提供者只需要关注服务的业务逻辑而不需要关心多样的服务使用者。
目前,前置系统实现异构通讯协议接入,从而简化系统集成,完成基于实时交易的只能路由控制[13],并对业务流程进行调度与管理,实现多种报文格式的转换。
.........................................
第 2 章 系统需求分析
2.1 系统目标和解决的问题
⑴银行前置系统作为各外围系统与核心系统交互的关键环节,系统要完成7*24 小时连续工作,这对系统的安全性和稳定性是个严峻的考验。本前置系统是在 AIX 操作系统下进行的基于 C 语言开发,在 IBM X3750 M4 小型机上运行。系统预期完成下列几个目标:
①不同格式的报文转换和解析。系统间传递的信息都是通过报文来进行表述的,但是各个系统之间的报文格式不尽相同[16],有普通的 XML 格式,账务类的8583 报文、定长报文、和一些自定义格式的报文等。前置系统作为枢纽,必须能够兼容各类报文,并对各种报文格式进行相互的转换,完成跨系统之间的报文交互。
②系统间通讯问题的解决方案。由于有些交易时需要跨系统之间进行交互的,系统间的通讯协议存在较大差异如 TCP/IP、HTTP、SOAP 等,有的系统还是通过CICS 或 TUXEDO 等中间件进行交互的,网络结构复杂,主机间的通讯不能靠网络进行识别,前置系统作为各系统间的中介,需要能够对各类协议进行转换,实现跨系统业务的通信[17]。
③部分业务交易的预处理。替核心系统完成一部分交易的处理,将核心系统要求的数据提前进行转换,提高后台核心系统的工作效率 。
④监控交易的完成情况,并记录交易流水和日志,便于发现问题的同时对问题进行跟踪、定位和分析,减少外围系统与主机交互式出现的数据不正确或者不完整的情况[18]。
系统对以下几个问题进行解决:
⑴通过前置系统对各外围系统的集中,使各系统之间的耦合度降低,提高系统的稳定性和安全性。
⑵提供统一的新业务开发接口,对于新产品的研发做到快速响应。
⑶对系统进行模块化,各系统间相互独立,一旦某个模块出现问题,不会对银行其它业务有影响[19]。
⑷服务实现构件化,可以重复利用,提高开发效率和资源利用率[20]。
....................................
2.2 功能需求
功能需求通常是指一般指具体的行方业务需要。在银行的数据大集中的形势下,前置系统的重要性不言而喻。在各系统的数据交互传输过程中,功能需求方面要能够实现高效率、高稳定性的数据交换,保证文件和数据传输的完整性和安全性,软、硬件加密的可靠性等,必须要支持多种数据格式和不同的通讯协议之间的相互转换,提供应用交易的组装调度和的路由选择完整并且一致。完成自助存取款机、POS 机以及柜面等外围设备的接入功能[21]。
2.2.1 业务功能方面
⑴需要为银各业务系统接入银行后台数据核心进行报文和协议的转换,成为系统间交互的枢纽。
⑵需要为大小额支付、银联交易、卡类业务、电子银行、网上银行等交易的统一接入的业务流程调度和处理的平台[22]。
⑶它需要为分行和支行的手机银行等电子类服务渠道的提供接入平台。
⑷作为处理平台对各分行支行的地方性、个性化产品进行处理。⑸作为接入渠道成为代收付费等中间类业务和其相应系统的提供接入服务。
2.2.2 技术方面
⑴多线程处理
并行的交易是通过操作系统本身处理的,之所以选用线程处理是因为它比系统进程开销更小,自然资源的占用率就会更小[23],这是为支持大量的交易并发打下了夯实的基础。
⑵能够对 TCP/IP 协议、HTTP 协议、SOAP 协议等各类通讯协议进行转换,对于 TUXEDO 等中间件进行兼容,并支持典型的 XML 报文、8583 报文[24]、定长报文以及各类自定义组合报文等进行解析和转换。
⑶统一的服务框架程序
这个系统平台由统一的执行程序来进行起停,服务框架程序通过服务配置信息决定服务的线索数、队列数以及提供的服务[25]。
⑷可维护和扩展性。
前置系统必须考虑银行的长远发展,预留部分接口,使其能够进行二次扩展开发,提高原有资源的利用率,并保证新产品的研发周期快速响应,配置灵活,易于维护[26]。
⑸数据传输保证
前置平台必须做到数据在传输前后保持一致性,不会出现数据漏传、错传的现象,保证数据的完整性[27-29]。
⑹数据安全通道
数据安全作为银行最重要的考虑因素,前置平台要支持各类的硬件加密机,并根据加密级别的不同来使用合适的软件加密算法,保证敏感数据能在各系统间的安全传输。
.....................................
第 3 章 系统架构设计....................................... 13
3.1 系统设计目标和原则 .................................... 13
3.1.1 设计思想 ........................................ 13
3.1.2 系统总体架构图 .................................... 14
3.2 环境要求 ................................. 14
3.3 开发语言 ......................................... 15
3.4 系统平台设计 ............................................ 15
3.4.1 系统总体功能 .................................... 15
3.4.2 系统内部功能 ........................................ 15
3.5 各类交易流程处理分析 ..................................... 17
3.5.1 穿透类交易处理流程 ................................. 17
3.5.2 交换类交易处理流程 ..................................... 17
3.5.3 本地交易类处理流程 ................................... 17
3.5.4 单方交易类处理流程 ................................... 17
3.5.5 多方交易类处理流程 .................................... 18
3.6 技术特色 .......................................... 18
3.7 本章小结 ...................................... 18
第 4 章 系统详细设计......................................... 19
4.1 公共支撑模块 ...................................... 19
4.1.1 超时控制子模块 .................................. 19
4.1.2 自动冲正子模块 ................................ 20
4.1.3 自动任务子模块 ..................................... 23
4.2 通讯模块 ....................................... 25
4.2.1 各模块工作流程 ........................................... 25
4.2.2 数据库表设计 ....................................... 27
4.3 路由模块 .............................................. 28
4.3.1 模块设计目标 ..................................... 28
4.3.2 工作流程 ...................................... 28
4.4 报文转换模块 ................................ 29
4.5 业务流程管理模块 ................................... 31
4.6 系统的安全性设计 ................................... 33
4.6.1 网络安全机制 ................................. 34
4.6.2 渠道安全机制 ................................... 34
4.6.3 报文安全机制 ................................ 35
4.6.4 密码安全机制 ....................................... 35
4.6.5 授权安全 ............................................ 35
4.6.6 双机热备 ......................................... 35
4.6.7 数据安全 ............................ 36
4.7 本章小结 ................................... 36
第 5 章 系统开发与测试
5.1 银行前置系统的应用开发过程
总体流程是需求分析 整体设计 详细设计 系统开发 系统测试 上线,开发过程和其它系统的对比如下:
⑴需求分析阶段:都是对业务现将进行需求分析,并对外围规划要与前置相连通的系统进行通讯协议和报文格式等进行调研。
⑵整体和详细设计阶段:前置系统是在综合考虑到本身的整体框架结构,然后进行进一步的详细设计,所开发的模块都是统一的标准,方便之后各外围系统的逐步接入,保证它们之间的连通可操作性,主要是通过不同种类的通讯适配器和消息适配器配合各种业务逻辑模型来进行设计,能够充分的满足实际需求。
⑶系统开发阶段:将底层的各类 API 设计好之后,对于实际交易的开发我们的系统采用统一的智能开发平台,所有业务流程都是通过操作界面的参数化配置来完成,不需要再对系统环境进行操作,保证了系统的安全性,与传统开发过程相比,我们的开发更加方便、快捷、简易,缩短了新产品研发的周期,快速跟上客户的实际需求,外围系统的服务以构件式存在于平台,极大的提升了复用度,资源利用率更高[50-51]。
⑷测试阶段:前置系统需要做的测试覆盖面很广,首先需要进行单元测试,检测,所开发的 API 能否达到预定的目标,其次进行与各系统的连通性测试,保证外围渠道能够准确安全的接入,对通讯协议和报文进行正确的解析和转换,之后进行整体联调,达到业务逻辑的具体要求,并对数据的正确性和安全性进行校验,最后要进行压力测试,保证系统能够稳定、高效的运行。
⑸上线阶段:与其他系统的上线方式基本相同,首先要在标准环境上进行上线,无问题后,将可执行程序拿到实际生产环境,并进行部分环境变量和配置文件的设定,之后正常上线。
5.2 开发实现
经过前几章的系统分析和系统详细设计解决了系统是完成什么样的功能,和如何完成这样的功能的问题,而系统先阶段主要解决的问题是如何操作的,由于系统的操作界面繁多,且不能逐一列出,所以根据系统功能举例分为以下几种:登陆界面、系统参数配置、数据存储、通讯协议转换、报文格式转换、流程调度界面,面就对几个典型的页面进行介绍。
5.2.1 系统登陆界面
登陆界面作为柜员操作的第一屏障,对柜员的身份进行验证,柜员的身份通过两个表格控制,分别是柜员角色表和柜员权限控制表,控制的是哪个机构哪个level 的柜员有操作权限,并对于密码给予校验,如果有一条不满足控制条件即返回报错信息如:柜员无此操作权限;等。
5.2.2 相关主机环境配置
............................................
结论与展望
随着时代的发展和社会的进步,人们对于银行的要求已经不再局限于传统的资产负债类业务,对于各种代理类中间业务的需求逐步增大,要提高客户的满意度,增强银行的核心竞争力,各外围渠道的整合和对外围业务的统一管理就必须执行。当前,大部分银行的各个渠道的前置系统是完全独立的,彼此之间的信息不能同步共享,资源严重浪费,针对于这种业务现状,本文对银行的综合大前置系统进行了设计与开发,对各类交易的处理流程给予了介绍,并给出了前置系统的概要模型,在此基础上,对其中几个重要的模块进行了分析、设计和开发,给出了相应的解决方案,本文重点表述了以下几个关键问题:
⑴分析了当前国内银行前置系统的研究和发展现状,得到了前置系统所需要解决的关键问题,结合银行平台统一的建设要求,对系统功能和相关的业务及性能需求进行了表述。
⑵对银行前置系统的几个主要支撑模块进行了深入的研究和分析,并给出了公共支撑模块、通讯模块、路由模块、报文转换模块的概要模型,前置系统作为银行后台核心与外围系统间交互的枢纽,各类交易的处理流程必须明确,否则会出现功能杂乱的现象,文中对各类交易的处理流程进行详细的策划。
⑶在上述内容的基础上,对银行前置平台的架构和各个模块功能的实现和处理流程进行了分析和详细设计。
⑷另外,本文还给出了系统开发界面的展示,并举例测试,对测试结果进行了分析。
但由于对前置系统的部分的关键技术研究还不够深刻,因此需要接下来继续对以下几个问题进入探讨和研究:
⑴怎样将银行前置系统的安全机制进行规划和统一,进一步保证相关信息的安全性,降低风险系数。
⑵对于系统的开发平台进行进一步整合和功能优化,使新产品的开发速度更进一步,并且开发和二次开发起来更加顺手、高效。
⑶随着外围系统的数目不断递增,平台数据库的压力愈来愈大,需要对其进行深入的剖析和数据挖掘,以保证数据库的稳定和高效。
....................................
参考文献(略)