一、案例背景 1995年,中国建设银行在全国推广综合业务处理系统湖北版1.0(以下简称湖北版系统)。随着湖北版系统的推广,各地业务发展迅速,业务种类增加,业务量大增,湖北版系统开始暴露出了一些问题,集中表现在湖北版原通信软件上。1998年湖北版系统升级到2.0,主要解决了2000年问题,但湖北版原通信软件所暴露出来的问题并没有彻底解决。 二、技术分析 湖北版系统原通信软件没有交易管理功能,它的功能、性能与稳定性都存在着许多问题,分析如下: 湖北版原通信软件没有交易管理功能,交易的完整性保证依赖于应用系统完成,也就是依靠原来系统中的冲正机制来实现。由于原系统待冲正表机制设计上存在一些缺陷,引起各节点上业务数据不一致。 湖北版原通信软件没有应用程序的调度功能,中心服务程序的运行个数由网点请求的并发数决定,完全不受控制,业务繁忙或网间业务处理较慢时,主机中运行的进程数过多,性能下降,处理速度变慢,极端情况时造成恶性循环,引起系统崩溃。 湖北版原通信软件通信功能简单,而且没有通信管理功能。网点监控、核心调整(动态配置)、通讯流量监控、日志监控等都无法实现。而这些功能对于一个大型的业务网络的运行与管理是非常重要的。 湖北版原通信软件与应用软件之间的结合过于紧密,它和应用软件直接编译在一起,相当于应用软件的一部分,不是独立的平台,难以发展,其更新需要重新编译应用软件,很不方便。 网间业务服务程序采用同步方式处理,每一笔业务在地市级中心和省(直辖市)中心转发请求后,都必须等待应答,这种处理模式造成服务程序运行效率不高,在网间接收应答较慢且网间业务较多时,也会启动大量的服务进程造成系统性能下降。 与湖北版原通信软件不同,TongLINK是一个独立的中间件产品。 TongLINK与应用程序通过消息队列和共享内存打交道,当需要更新TongLINK版本时,只要接口函数不变,就不需要改动或编译应用软件,只要安装上新的TongLINK软件即可。TongEASY也是如此。 联机交易处理的特点要求中间件要有效率,同时又不能占用太多的资源。TongLINK与应用系统(或TongEASY)打交道主要依靠消息队列,为防止消息队列阻塞,TongLINK只把消息包头(约16个字节)放入队列,而把包体放入共享内存中。TongLINK的运行核心可以调整,消息队列和共享内存的大小,均可以根据系统规模的大小,在管理系统中设定,使得TongLINK占用资源合理,而湖北版原通信软件做不到这一点。 TongEASY有一套完整的应用进程调度策略,对服务进程进行统一的调度与管理。何时启动服务进程、启动多少进程均可由TongEASY进行管理,因而可以合理地使用主机资源,最大限度地发挥主机的效率,同时又不会造成业务量过大时把机器压跨。最新的测试结果表明:在模拟的建行柜面业务应用环境中,TongEASY和TongLINK系统可以轻松地支持800个并发前端用户,系统每秒处理交易数可达到或超过100多笔(依赖于所采用的系统和配置)。 TongEASY的交易管理功能既符合标准又具有独创性。TongEASY对交易完整性的管理提供两种方式,一种是通过XA标准与数据库接口后,采用两阶段提交协议。但由于两阶段提交协议在一个低速的广域网上使用时会有一些问题,主要表现在一是握手次数多、数据库加锁时间长,因而效率较低,二是不能很好地解决由于网络故障所造成的交易一致性问题。因而TongEASY还提供一种独创的交易管理方式,即由TongEASY监控所有交易,并发现异常交易,对异常交易采用重复核对的方式,根据核对结果确定本笔交易是提交、回滚或者冲正。这种方式正常交易握手次数少,效率高,异常交易重复核对,可以极大降低网络故障造成的交易完整性问题。鉴于国内的网络状况,这种方式更适合国内用户使用。由于系统中的错误多出现在网络上,而数据库本身又具有部分交易管理功能,本地应用程序对数据库操作引起的交易错误,可通过数据库提供的交易管理功能恢复。交易中间件的主要是处理跨过网络的各种交易的错误情况,可以保障在各种错误情况下的交易的完整,诸如网络故障、客户、服务程序不能正常运行等等。 三、解决方案 针对现在湖北版系统存在的一些问题,分别采用三种方案对山西、黑龙江、河南、四川、广西、浙江、广东省分行的湖北版系统进行改造。 (一)山西、黑龙江省分行采用的改造方案 这是最简单的改造方案,应用系统不做任何修改,原有的冲正表机制继续沿用,只是用TongLINK和TongEASY替换原系统中的通信软件,编写模拟函数,仍然使用湖北版系统中通信软件的函数名,只是函数内部调用TongEASY的函数,从而实现用TongLINK和TongEASY替换掉原通信软件。 这一方案的优点是工作量小,改造后的系统可以得到TongLINK和TongEASY的大部分功能和特点,如实时、高效,支持大业务量并发,易管理,易维护,核心规模可调整,可动态配置,对应用程序的有效管理等,可以较好地提高原有系统的性能、可靠性、可管理性,减少系统中帐不平的现象。在同等条件下应能比原系统的处理能力提高50%左右。但这一方案没有最充分地利用TongEASY的全部功能。 (二)河南、四川、广西、浙江省分行采用的方案 这一方案利用了TongEASY的交易管理方式。将湖北版系统中通信软件的函数改为TongEASY提供的函数。新的服务记帐接口函数时程序处理流程为:先接收数据,再判断接收数据类型,进行相应处理,然后根据情况进行请求转发,或返回应答,或申明确认冲正处理结果。对网间交易,原湖北版系统中采用等待网间应答方式,这样服务程序将会一段时间不工作,出现启动大量程序而导致系统效率下降的情况。因而将其将改造成异步处理模式,不等待网间应答,服务程序根据接收到的数据做不同的处理。 第二方案利用了TongLINK和TongEASY提供的全部功能,特别是充分利用了TongEASY的交易完整性管理方法,可以很好地提高系统的效率,保证交易完整性。但这一方案对原应用系统的改动量比第一方案要大。 (三)广东省分行的采用的改造方案 这一方案在XA接口的基础上利用TongEASY的交易管理方式,即前文所说的快速XA方式。这一方案与第二方案差别是,由于使用XA接口,不需要单独的冲正服务程序。在服务端做配置,以指示在来自客户端的确认或冲正命令超时未到达时,已预做的服务端操作进行提交或回滚。 与第二方案相比较,采用本方案改造所需的工作量稍有减少。不足的是,在服务端接收请求至正式提交或撤回的时间段内占用的数据库资源比前两种方案要大。 以上描述的三个方案都是切实可行的方案,且都已是成功的改造案例。从目前中国建设银行的具体情况来看,第二方案改造最为合适。 四、应用环境 应用单位中心主机操作系统数据库中心前端河南省分行HP9000T500K400K200HP-UXSCOOpenServerInformix浙江省分行SequentNUMA-QSequentS5000系列U6000系列DYNIXSCOOpenServerInformix广西分行IBMPC服务器HP
信息发布:广州名易软件有限公司 http://www.myidp.net
|