一、消息中间件
消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。只要有网络,就会有数据(数据包,文件)传递,这就会牵扯到数据传输的安全可靠性,网络越是发达对这类要求就越高,消息中间件就会长久生存发展。
消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步的原因。
消息中间件最突出的特点就是提供数据传输的可靠性和高效性,主要解决分布式的系统数据传输需求。以用户数据整合应用阶段而言,最重要的一点就是将数据从一点传输到另一点。现在市场上已有相应的数据整合工具,这些数据整合工具中通常多包含这几部分模块:数据抽取模块、数据加工模块、数据传输模块、数据加载模块,而其中数据传输模块多由消息中间件担当,并在数据整合过程中发挥着不可替代的作用。
其他内容参考:https://blog.csdn.net/wqc19920906/article/details/82193316
二、我理解的交易中间件
交易中间件是协助开发在线交易系统(OLTP)的C/S/S应用框架。它提供如下功能:
一个交易框架系统,至少提供1,2才可以称为交易中间件。
SDBC实现1,2,4,5。3是在LVS协助下完成。
PPC模式具有最好的可靠性,所有的服务均无需考虑线程安全。任何一个服务发生异常,最多引起自己的服务崩溃,不影响其他客户。但系统资源消耗比较大,最好配合交易管理器使用,否则,客户端接入数量不超过256。PPC的样本在:$SDBCDIR/utility/sqlsrv.
TPC模式比PPC有更好的资源利用率,如数据库资源可以设置连接池,使资源得到合理利用。这个模式有更好的可移植性,适用于各种平台,客户端接入数量在1000以下。TPC的样本在:$SDBCDIR/utility/thread.
TPOOL模式具有极佳的系统资源控制和使用能力,它使用了epoll事件通知机制,虽然具有极高的性能,但可移植的平台受限,只能在LINUX系统,它可以承载上万的客户端接入。TPOOL的样本在:$SDBCDIR/utility/tpool.
三者都可以配合交易管理器使用。交易管理器是tpool模式,因此只适合在LINUX平台运行。交易管理器的样本在:$SDBCDIR/utility/mod_sc.
0:不加密,1:快速加密,2:中等程度的加密,3:高强度加密。
认证:SDBC提供了绑定设备的认证方式,同时支持用户自定义的认证方式。可以针对一个客户端设备许可其连接,未经许可的设备不能连接。这个许可权是不可转让的。
SDBC对数据库的操作还有一套访问授权机制:针对每个表,对每个登录用户分别授予select、insert、update、delete权限。通过一个二维表进行设置,很简便。
SDBC提供了多进程、多线程安全的日志系统,用于记录应用软件的行为,协助安全审计。
另外,C的服务器,内存的使用是由程序员自行管理的,一个经验不足的程序员,常常造成内存违例或内存泄露。SDBC提供了一系列的常用例程,使用这些例程有助于写出内存可靠的程序。对于建立可靠的应用服务器非常有帮助。
交易中间件的词条解释(来自MBA词条):
交易中间件是指联机事务处理平台软件,可以快速建立三层结构的联机事务处理应用。它主要是为应用程序提供运行环境及各种服务,如程序加载、程序启动、内存管理、负载平衡、出错恢复及一些应用管理功能。它是专门针对联机交易处理系统而设计的,联机交易处理系统需要处理大量并发进程,涉及到操作系统、文件系统、编程语言、数据通信、数据库系统、系统管理和应用软件,是一个相当艰巨的任务,但是可以通过采用一个交易中间件来简化。交易中间件就是一组程序模块,可以大大减少开发联机交易处理系统所需的编程量。
交易中间件理论上相对成熟,功能和性能界定清晰,基本上适用于联机交易系统,如银行业务系统、订票系统等。尽管交易信息也是消息,交易中间件也是基于消息的传输,也可支持同步和异步方式,属于一种较专用的中间件。
[编辑]
采用交易中间件对于应用系统带来以下主要好处:,
(1)提供一个预先定义的应用框架和模型,允许开发者以板卡/插槽的开发方式进行开发,提供很强的模块化结构;
(2)可以减少系统的复杂性(包括屏蔽硬件、网络环境、异构数据库等);
(3)可以有效完成负载均衡;
(4)能保证分布式环境下交易的完整性;
(5)能保证应用软件在不同平台上的平滑移植;
(6)能将前端的大量网络连接汇接成较少的后台连接,降低网络负担,提高数据库效率。
交易中间件在金融、财税、运输、电力、电信等行业中得到了广泛应用和推广。据统计,在幸福(Fortune)杂志中排到世界前500家的公司,几乎100%都采用交易中间件作为其联机业务系统的平台。
交易中间件在银行业务系统中的应用
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通讯。
中间件的分类
按照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. 对每类交易设置最大请求数量限制,通过并发控制手段,防止出现队列堵塞现象,就可保证每笔交易的响应时间,避免交易出现峰值时系统的阻塞和崩溃。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!