交易中间件在银行业务系统中的应用 |
发布时间:2002.08.27 10:01 来源:软件世界-赛迪网 作者:吴民 |
金融行业的竞争日趋激烈,各家银行纷纷采用最新的计算机技术及业务系统,以便为给客户提供更好的金融服务和产品。但随着银行对各种旧有应用系统的不断扩充,新业务需求的不断增加以及分布式应用的迅猛发展,银行IT部门正面临着越来越多的问题,例如不同的硬件平台、异构的网络环境、系统效率较低、网络传输不可靠、开发周期长等。如果仅仅通过购买更高档的主机、申请更宽的网络带宽,或依赖传统的系统软件和工具软件,都不能完全满足银行业务系统的发展。因此,银行业的技术人员开始更多地关注中间件,希望能借助于中间件的强大功能来满足迅速增长的银行业务需求。 中间件及其分类 中间件的概念 目前关于中间件的定义很多,较常见的一种定义为:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通讯。 中间件的分类 按照IDC的分类方法,中间件大致可分为六类:终端仿真/屏幕转换中间件、数据访问中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件。 其中,交易中间件在理论上相对成熟,功能和性能界定清晰,是专门针对联机业务处理系统而设计的,例如银行业务系统、电信计费系统等。在联机业务处理系统中,需处理大量并发进程,涉及到操作系统、文件系统、数据通讯、数据库管理、应用软件等,是一个相当庞大的任务。通过交易中间件,可降低联机业务处理系统的开发难度,提高系统运行的安全稳定性。 交易中间件在银行业务系统中的应用 交易中间件的作用 1. 提供高效的处理能力 针对银行联机业务系统的特点,交易中间件提供了高效的并发处理能力,即保证日均处理业务量、峰值处理业务量能达到业务系统的要求。交易中间件一般采用高效的通讯处理技术,如链路复用、滑动窗口、数据包压缩、传输优先级等来充分利用网络带宽,保证传输效率;同时交易中间件利用服务器并发访问控制技术,并行处理和管理多个服务请求,有效地保障了业务系统的处理效率。 2. 保障交易的完整性 交易中间件通过监控和管理系统中的每笔交易,根据一定的交易管理方法,如两阶段提交协议、核对/冲正机制等,解决因硬件故障、网络故障、应用程序错误、人为故障等原因带来的交易完整性问题,从而将业务系统的错误率降到最低限度。 3. 提高系统的容错能力 交易中间件可以监控当前系统运行状态,包括客户数、系统提供的服务数、每一服务被调用次数等。管理员可以启动或停止其中的任一服务而不影响其他服务,系统本身也会根据运行情况进行动态平衡。多机群集运行时,若某一主机出现故障,交易中间件能自动将交易请求送到备机上运行。 4. 简化系统开发 交易中间件屏蔽了底层操作系统及网络传输的复杂性,使开发人员面对简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在业务逻辑上,大大减少了应用开发的技术难度,缩短应用开发周期。 5. 减少系统的运行、维护工作量 交易中间件简化了系统的层次结构和处理过程,提供了对系统运行情况的实时监控,从而使系统运行故障率大大降低,提高了系统的可管理性,减少了系统的总体投入。 银行业务系统中交易中间件的主要功能 交易中间件通过对系统资源的有效管理,能最大限度地提高系统的并发处理能力,从而提高整个系统的效率。在银行联机业务系统中,交易中间件通常都提供了以下功能: 1. 进程管理:通过对服务进程的调度,使得在正常情况下,能用尽量少的服务进程处理尽量多的请求,减少进程的启动/终止次数。 在银行业务出现峰值的情况下,控制服务进程的总数,使得服务器在设定的负载下工作;当请求服务的数量超过了服务器的处理能力时,中间件则把请求排队进行缓冲。 2. 交易优先级管理:通过对交易优先级的划分,确保优先级高的银行业务能尽快地得到响应。 3. 数据传输:管理并监控全辖范围内的所有银行网点的通信状态,保持网点与主机的通信畅通,提供流量控制功能,保证在各种线路情况下都能进行高效的数据传输。 4. 均衡负载:中间件可根据业务性质的不同,把请求分配到不同的服务器、不同的服务进程上进行处理,保证每个服务器、每个服务进程的处理能力得到充分的发挥。 5. 权限控制、安全管理:交易中间件具备多级的安全审计功能,可对服务端程序进行控制,以及限制客户端对应用程序的访问;同时提供了节点认证、传输加密等功能。 使用交易中间件的银行业务系统体系结构 1.银行业务系统体系结构 引入交易中间件后,银行业务系统已从传统的二层结构转化为三层体系结构,即操作层、应用服务层、数据服务层。第一层为操作层,即前台网点,通过终端或PC机接入;第二层为应用服务层,安装交易中间件以及应用服务程序,进行业务逻辑的处理;第三层为数据服务层,采用高性能计算机(如AS400、RS/6000等),其上使用大型数据库(如Oracle、Informix等)作为业务处理的核心主机。 操作服务层要求维护简单,易于大规模推广应用;应用服务层要求能方便快捷地进行产品拓展;数据服务层要求保障数据存取的稳定安全,见图1。
图1 操作层包括前台营业网点、ATM和POS前置机等,其上安装有中间件的客户端程序,主要作用是录入业务要素,组织报文上传,并显示打印结果。 应用服务层包括二级分行的名字服务器(Name Server)、中心的多台应用服务器(AP Server)。二级分行的名字服务器汇集前端所有网点及自助设备上传的所有交易请求,并根据请求的不同类型进行分发,送到中心不同的应用服务器中。在AP Server中,交易中间件对进程进行调度,启停相关的应用服务,完成业务逻辑的处理,并向数据库服务器提交数据操作请求。 数据服务层则配置了强大处理能力的机器及高效的数据库,可以保证高速并发地处理交易请求。 2.采用以上体系结构的好处 1) 三层结构,提高系统安全性。 系统采用三层结构,操作层、应用服务层、数据服务层相对隔离,有效防止了误操作和人为的攻击; 同时,应用服务层专注于业务逻辑的处理,数据服务层保障数据的完整性,都有效地提高了系统的安全性。 2) 交易请求分发,实现负载平衡。 在二级分行的名字服务器上安装交易中间件,根据交易的不同类型及不同的特征值,将交易请求分发到不同的主机系统进行处理。可根据后台主机的实际处理能力,在不同的主机上可灵活地配置逻辑上不同的应用系统,实现负载平衡。 3) 简化网络配置,提高网络安全。 名字服务器同时承担了通信节点机的功能,所有的网点不需要直接联到中心主机,而是分层次地联接到二级分行的名字服务器;中心主机也不必配置到每个网点的路由,而只配置到名字服务器的路由,这样可极大地简化网络管理,提高网络安全。 4) 结构灵活,方便处理中间业务。 中间业务具有很强的地方特色,常因客户的需求而变动数据格式,因此中间业务可采取分散管理数据、本地处理的方式。 在二级行设立中间业务服务器,存放并处理中间业务数据,只有需要进行核心帐务处理的交易才通过名字服务功能送到中心主机上,这样可大大减少了主机的压力,也提高了中间业务的处理效率。 银行联机业务系统中,交易中间件的运行维护经验 银行联机业务系统的特点是网点众多、通信条件参差不齐、交易高峰期集中、文件传输量多,因此在运用中间件构建银行联机业务系统的过程中,必须根据实际情况对系统及中间件参数进行调整,以便能最大限度地发挥出中间件的作用。 系统核心参数的调整 1. 由于应用服务器的负载较重,接入的网点和名字服务器较多,其主机的系统核心参数需进行优化。主要是根据高峰期交易量的多少,确定共享内存大小、联接共享内存个数、消息队列的大小等; 同时可将频繁访问的服务进程绑定在特定CPU上,提高处理的速度。 2. 在操作层的前端PC机上,一台机器可安装多个营业网点的业务系统,或者是一些大网点的PC机上接入较多的终端(如30台以上),则需要对前端机器的共享内存大小、消息队列总数及大小、信号灯个数等进行优化,才能确保系统稳定地工作。 中间件参数的调整 1. 在应用服务器上,根据日常运行的交易情况统计,对应用进程的总数进行配置。服务器上每天的交易量分布极不平均,交易高峰期处理的交易数量是低谷期的几十倍。 因此合理地调整服务进程总数,使得交易高峰与低谷期系统的负载都较为合理。 2. 利用中间件的进程管理技术,实现进程常驻。应用服务程序的很大一部分时间开销是用于建立数据库连接与撤销连接,中间件可通过长驻服务进程的方法,使服务进程与数据库的连接被保持和复用,从而大大减少与数据库连接的次数和时间。 因此,可将最常用进程进行常驻,如存取款交易就可配备较多的常驻数量,确保存取款交易能最快地得到响应。 3. 对每类交易设置最大请求数量限制,通过并发控制手段,防止出现队列堵塞现象,就可保证每笔交易的响应时间,避免交易出现峰值时系统的阻塞和崩溃。 |