1.     “中央集权,统一管理”——银行核心系统

核心系统是事关银行生死的系统之一,如果没有核心系统,那么这个银行就无法开展任何业务,自然也就无法存在。一个银行没有核心系统,就如同一个厨师没有锅一样。到目前为止,没有锅还能做饭的,恐怕只有“食神”了。

目前的核心系统,都是以客户为中心,进行帐务处理、满足综合柜员制、并提供24小时服务的核心银行业务系统。

主要提供两大类服务:

第一类,服务对象为银行客户,提供的服务包括存款、贷款、结算、代理等。

第二类,服务对象为银行自己,提供的服务包括网点/柜员管理、总账、内部账、现金、凭证、报表等。

即,银行所有的资金、账务、信息都由核心系统进行统一管理。

 

2.     由简至繁,由繁至精

宋代青原思行大禅师说人生有三重境界——“看山是山,看山不是山,看山还是山”。同样,架构师们对于银行核心系统的看法也类似于这三重境界。经过二十多年的发展,银行核心系统也经历了【简—繁—精】三个阶段。

         所谓的简,指的是在银行核心系统创建之初,由于银行业务单一,且技术水平有限,

此时的核心只能提供一些简单的服务,如【存款】、【贷款】等。

         而繁则指的是在银行业飞速发展之时,银行业务种类和业务量剧增,再加上信息技术水平急速提高,银行核心系统得以快速发展。许多复杂的业务开始在核心系统上集成,

使得核心系统成为了一个能提供多种服务的大型集中式系统。但由于系统的复杂性增大,随之而来的问题也不断增多。由于多种业务同时集成在核心系统上,就形成了牵一发而全身的局面。一个业务模块儿的修改或增加,会导致整个核心系统停机,今儿无法继续提供业务。为了应对高复杂性系统产生的系统灾难,银行业技术架构师们开始以一种新的思路来构建银行系统,即精简和拆分。

         在“精”的阶段,银行核心系统开始返璞归真,进行了大刀阔斧的改造,除了最核心的业务部分,其他的业务以及信息管理全部都被拆分为其他系统。例如:转账汇款部分被拆分为【支付系统】,客户信息分析管理部分被拆分为【ECIF客户信息分析管理系统】等。经过拆分之后最核心的部分形成了【新的核心系统】,只提供最核心的业务服务,其他各个系统共同与新核心系统组成了“大核心系统”。这样的大核心系统相较以前的核心系统,具有更好的健壮性与灵活性。模块儿化的系统结构使得银行在改造或者新建某一个业务模块儿的时候,其他的业务模块儿能够不被中断,继续提供服务。自此,银行系统开启了7x24小时的服务模式。

 

3.     技术为翼——打造现代化核心系统

步入21世纪后,信息技术得到了更快速的发展。银行核心系统也及时搭上了技术的顺风车,不断地对核心系统进行强化改造。

以长亮科技、神州信息、高阳科技等为领队的一大批IT服务商也在积极寻求新的解决方案,以替代老一代的核心系统。到目前为止,国内市场使用率较多的有长亮科技的SunLTTS,神州数码的Smart@Ensemble等。其中长亮科技与神州信息基于JAVA的新一代分布式核心系统也逐步上线各家银行,取得了非常不错的效果。

值得注意的是,后起之秀宇信科技也已在竞争的浪潮中占得一席之地。能在众多老牌服务商的眼皮底下拿到单子,充分说明宇信科技在金融科技行业已颇有造诣!这也给众多老牌服务商们提了个醒,一味地重视营销,一味地讲故事并不能保住自己的位置。作为科技公司,重视研发拿出好的产品才是王道!

值得庆幸的是,老牌服务商们还没有彻底被纸醉金迷的气氛冲昏头脑。这不,在分布式架构思想已经趋于成熟后,神州信息与长亮科技等服务商积极向分布式领域迈进,先后推出了自己的新一代分布式核心系统。分布式核心系统较以往的集中式核心系统拥有更强的性能与更好的灵活性,而且减小了对硬件性能的强依赖,可谓是银行新系统的一次重大进步。

不过,虽然分布式架构虽然强大,但却并非适用于所有的银行。集中式老核心虽然处理能力有限,但是在维护、改造方面具有较大的优势。新核心的处理能力很强,但开发成本大,且维护起来比较麻烦。具体使用什么样的核心,银行还需要根据自身的业务量以及成本控制等多方面进行考量,以下对两种系统进行了简单的比较:

 

【集中式老核心系统】:

集中式系统有一个大型的中央处理系统,中央处理系统时一台高性能、可扩充的计算机,所有的数据、运算、处理任务全部在中央计算机系统上完成。中央计算机连接多个终端,终端用来输入和输出,不具有数据处理能力。远程终端通过网络连接到中央计算机,它们得到的信息是一致的。

 

优点:

数据容易备份,只需要把中央计算机上的数据备份即可;不易感染病毒,只要对中央计算机做好保护,终端一般不需要外接设备,感染病毒的几率很低;总费用较低,中央计算机的功能非常强大,终端只需要简单、便宜的设备。

 

缺点:

中央计算机需要执行所有的运算,当终端很多时,会导致响应速度变慢;另外,如果终端用户有不同的需要,要对每个用户的程序和资源做单独的配置,在集中式系统上做起来比较困难,而且效率不高。

缺点补充:

1.网络需要度高,各终端与中央主服务器要保持畅通,有时会影响工作效率

2.容错率极低,一挂全挂

3.数据太过集中,容易产生安全问题

 

【分布式新核心系统】:

分布式系统是相对于集中式系统而言的。

个人计算机性能的提高、使用的普及使得数据的存储、计算都可以由本地机完成,促进了分布式系统的发展。

分布式系统中的数据存储、任务的处理分布在网络中的不同机器上,每台主机都是一个独立的系统,联网的目的是为了获取更多的资源、丰富的服务。

分布式系统是由许多台不同的机器组成的,每台主机都有自己的数据库、中央处理器、终端等,它们在物理上是分散的,在逻辑上属于同一系统。

优点:

1.高度的可靠性:

数据分散存储在网络中的不同主机上,系统中存在数据冗余,当一台机器发生故障时,可以使用另一台主机的备份。

2.均衡负载:

每台主机可以缓存本地最常用的数据,不需要频繁地访问服务器,减轻了服务器的负担,减少了网络的流量。服务器也可以对任务进行分配和优化,克服几种系统中央计算机资源紧张的瓶颈。

 3.满足不同的需要:

用户可以根据自己的需要在自己的主机上安装不同的操作系统、应用软件,使用不同的服务,不再像集中式计算机系统那样受限于中央计算机的功能。

 

缺点:

1.开发成本高,测试难度大

2.维护困难,改造升级难度大,需要一套完善的服务治理体系

 

4.     博采众长,稳固系统

俗语云:“麻雀虽小五脏俱全”,现代核心系统作为一个复杂的集合体,不能单纯的靠某一个硬件或者软件系统来提供服务,必须依靠多个资源集合,才能提供强大的服务。

硬件层面,需要【服务器(例如IBM刀片机、惠普刀片机、PC服务器等)】、【特定网络环境】、【网络服务设备】、【F5负载均衡】、【存储设备】、【控制终端】、【安全设备】等(列举的均为必须,另有其他非必须辅助资源)。

软件层面,需要【存储管理软件】、【虚拟化环境(虚拟机)】、【操作系统(如linux)】、【数据库应用软件(例如ORACLE、MYSQL)】、【中间件(例如weblogic)】、【核心系统应用软件】、【其他系统软件】等(列举的均为必须,另有其他非必须辅助资源)。

 

         1.【服务器】:服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。服务器的构成包括处理器硬盘内存系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。在网络环境下,根据服务器提供的服务类型不同,分为文件服务器、数据库服务器、应用程序服务器、WEB服务器等。

         2.【特定网络环境】:特定网络环境可分为内部网络、专用网络、外联网络,对于核心系统来说其一般需求的是内部网络,用于与各个内部系统进行交互。

         3.【网络服务设备】:路由器,光纤,交换机等。

         4.【F5负载均衡】:用于流量控制,负载均衡控制的硬件设备,使得系统在硬件层面做到高可用。

         5.【存储设备】:大量的存储磁盘等。

         6.【控制终端】:用于操作应用系统的控制终端硬件资源。

         7.【安全设备】:密码服务器,密押机等硬件资源。

         8.【存储管理软件】:用于管理存储磁盘的应用软件。

         9.【虚拟化环境(虚拟机)】:以物理机串行生成虚拟化环境,并在虚拟化的环境上建立虚拟机,使得系统在软件层面达到高可用目的。

         10.【操作系统】:目前市面上有很多类型的操作系统,常用的操作系统主要有linux、unix、Windows Server、Netware等,而linux与unix又是使用率最高的操作系统。但需要注意的是,linux与unix分别有多种不同的发行版,各种发行版之间无论是系统调度还是操作方式都存在诧异,在选择的时候需要慎重。

         11.【数据库应用软件】:数据库分为关系型数据库和非关系型数据库。常用的关系型数据库有oracle、mysql、DB2、OceanBase等;常用的非关系型数据库有Hbase、Redis、MongodDB等。(详情见数据库专题。)

         12.【中间件】weblogic、tomcat、mq等(详情见中间件专题。)

         13.【核心系统应用软件】:核心系统应用软件是真正应用于业务处理的软件,目前市面上有种类繁多的核心系统应用软件,较为出色的厂商有长亮科技,高阳科技,神州数码。(详情见核心应用系统专题。)

         14.【其他系统软件】:堡垒机、防火墙、监控软件等。

 

         2013年之后建立的银行核心系统一般都采用虚拟化或者半虚拟化:

     

 

 

                  在【中国银监会认可虚拟化环境】后,银行系统部署均采用多台物理机串行,利用软件生成【虚拟化环境】,并在虚拟化环境中安装虚拟机及操作系统,所有软件系统均运行在虚拟机中。银行核心系统并不追求极致的速度和效率,更多的在意的是【稳定】和【安全】。因此,系统部署运行所采用的组件也均是行业中最为稳定和安全的,而并非最新最快的组件。

 

 

5.     百花齐放——程序语言间的竞争

程序语言的进步是信息技术发展的源头,在C语言诞生后的50年里,编程界又诞生了许许多多的编程语言。如C++,VB ,JAVA ,Scala ,Python等,在众多语言中,C , C++ ,JAVA 在银行业以及各个大型企业的系统开发中是运用最为广泛的。

在JAVA诞生前期,由于其语言特性再加上硬件资源不够成熟,导致其使用率较少。而C , C++等语言则凭借其灵活性以及高效性横扫编程界。所以早期建立的银行核心系统中,多数为C和C++开发。时至今日,不少的银行依旧选择使用这两门语言开发的系统。

但随着JAVA等托管型语言的不断发展优化,再加上硬件性能的持续提升,托管型语言也越来越受到编程界的青睐。虽然JAVA诞生之初都一直有人喊着JAVA要凉,但时至今日,JAVA不但没有凉,而且一直稳坐市场占有率第一的宝座。

随着硬件性能的提升以及JAVA本身的优化,一大批互联网企业率先掀起了JAVA应用的浪潮,金融IT服务业则紧随其后。神码、长亮、高伟达等龙头企业先后研发了基于JAVA的新核心系统,反响非常不错。

不出意外的话,此后的很长一段时间里,基于JAVA的系统都将成为银行核心系统的首选。

 

6.     举个栗子——S厂的新老核心

以某知名IT服务商(简称S厂)为例,其老一代核心系统采用的是【java应用 + oracle存储过程】的模式,输入输出报文校验、转发、网络控制等在java应用部分处理,具体的业务逻辑部分则在oracle存储过程中进行处理。

此类核心系统的好处是开发成本低,改造灵活性高,安全性强。缺点在于系统层次不分明,移植性差,架构复杂不易掌握,且存在目前无法解决的性能瓶颈,只适合中小型银行。

其业务逻辑处理部分严重依赖数据库性能也是一个重大的风险项,若某时刻数据库宕机则所有业务功能都会停止。总的来说,S厂的老核心系统有其继续存在的理由,但在不久的将来必定会被淘汰。

为了解决老核心无法解决的性能问题以及硬件依赖问题,S厂又在java平台研发了一套新一代分布式核心系统。这套系统是基于阿里巴巴分布式开源框架构建的,具有良好的拓展性和移值性,摆脱了强硬件依赖性,确实是一款难得的好产品。但可惜的是,由于开发人员水平层次不齐,部分程序员代码质量低下,导致整个分布式新核心的档次下降了不少。在菜逼程序员的代码堆积下,部分银行上线的新核心存在大量的缺陷甚至是性能问题。在这里点上,S厂应当要警惕一些了。否则的话,这款“橙装”级的分布式新核心必将沦为“白装”一样的垃圾!

S厂老核心系统由 java应用+数据库应用 两部分构成,【java应用】以【Spring】等框架为基础开发,使用【weblogic】作为托管容器,数据库应用部分是自主研发的CBSD数据库框架。JAVA应用部分主要负责安全性验证,报文规则验证,以及通讯控制。数据库应用部分主做业务处理,CBSD框架以数字标识设定接口标识,内部包和存储过程以接口标识为准,接收既定的报文并进行处理。部署时,应用系统和数据库分别进行部署,生产环境一般采取应用集群+数据库集群的方式进行部署,能够提高性能防止灾难性事故发生。

综上,S厂老核心的开发平台为【jdk1.6】、【oracle】,开发语言为【java】、【sql】(部分功能需要用到c++),部署环境为【linux】、【oracle数据库】,所需中间件为【weblogic】,所需硬件资源为【服务器】、【负载均衡】、【专用网络环境】等。其他厂商的核心系统也与S厂类似,都需要这些必须的组件或者平台。

posted on 2021-05-17 14:17  齐道长  阅读(1254)  评论(0)    收藏  举报