18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 事务处理中间件(数据库)

事务处理中间件(数据库)

时间:2022-11-13 18:30:01 | 来源:信息时代

时间:2022-11-13 18:30:01 来源:信息时代

    事务处理中间件 : 提供事务处理所需要的通信、并发访问控制、事务控制、资源管理和其他必要的服务的中间件,又称事务处理监控器(TP monitor)。
在事务处理过程中,事务有明确的起止点,如果中途出现故障,则要么将已经执行的请求回滚,使系统退回到执行前的状态;要么通过一定的处理,克服故障,使没有完成的请求都能够得到正确执行。如果有多个事务并发执行,需要保证每一个事务的执行都不会受到其他事务的干扰,就像只有一个事务在执行一样,同时需要保证多事务并行执行的性能。事务处理中间件的任务就是一要为保持事务特性提供支持; 二要提高事务处理的性能,包括吞吐率、安全性、可靠性等。
在主机时代,最早的事务处理中间件是IBM的IMS和CICS(1968),它们采用的技术包括请求队列管理、检查点机制和批处理程序的(重)启动机制。当时的主机还只能支持单任务执行,为了支持多任务处理,请求队列管理技术将不能及时处理的多个请求缓存起来,按照一定的策略,调度请求的执行。在调度过程中,可能需要暂时中断执行的请求,检查点(checkpoint)机制用于保存请求被中断时的执行状态,以便下一次请求被调度执行时能够从上次中断点开始继续执行,而批处理程序的(重)启动机制可以按照请求执行的需要启动相关的程序。到1970年,CICS已经研制出了多用户并发控制模块,通过锁机制,控制多个请求并行执行时对共享资源的访问。
到1970年后期,网络技术的发展导致分布式系统的产生,数据库系统开始由mainframe体系结构向C/S体系结构发展。CICS于1978研制出了分布式事务处理、远程进程访问、连接管理以及资源管理等技术,通过上述技术,外部异构资源可以参与分布式事务。这时的CICS资源管理接口已经很类似于标准的X/Open XA接口,并被DB2、IMS/DB和MQSeries等使用。为了支持不同的CICS程序之间透明的远程同步和异步调用,CICS OS/2引入了分布式程序链(distributed program link)和外部调用接口。于1993年,建立在分布式计算环境上的CICS/6000集成了支持OLTP类应用的Transarc构件和作为事务协调者的Encina服务器,其事务协调支持X/Open标准的XA协调接口,其CICS基本具备目前事务处理中间件的主要功能。
尽管CICS对于事务处理中间件做出了很大的贡献,但最先以独立的事务处理中间件形式推出的产品是20世纪90年代BEA的TUXEDO,TUXEDO是用于支持OLTP类应用的事务处理中间件,其主要特点是独立于不同的数据库产品,采用标准的接口,遵循标准的事务处理模型,以及标准的分布式事务处理协议。另外,在TUXEDO中充分考虑了事务处理所需的平台无关性、系统可移植性、分布式透明性、可扩展性、可用性、可配置性、高效性以及可管理性等,是最早的独立的事务处理中间件产品。
目前,主流的事务处理中间件产品有BEA的Tuxedo、IBM的CICS、NCR的TopEnd、Microsoft的MTS等。近年来,事务处理中间件产品也在不断发展,不断与新技术相结合,如Microsoft的MTS支持COM/DCOM、ActiveX等多种技术。未来的事务处理中间件除了对Java、J2EE/CORBA的支持以外,将更多地集成到面向Web的应用服务器中。
一般事务处理中间件体系结构如图1所示,分为三个层次,包括表现服务器、工作流控制器和事务服务器,其中事务服务器主要由用户开发的执行业务逻辑的事务程序构成。


图1 事务处理中间件体系结构


表现服务器用于以表单或表格的形式收集输入信息,如用户名和口令、输入设备号、服务请求类型和参数等,将用户输入信息转换成TP-Monitor的内部表示,形成能够被系统理解的用户请求。另外,表现服务器还负责安全管理和日志管理。安全管理包括认证、授权和加密,以及用户管理等; 日志管理主要进行日志登记,以备系统恢复使用,其中数据库负责自身的局部事务的恢复,TP-Monitor负责跨数据库的全局事务的恢复。
工作流控制器根据请求类型将用户的请求映射到事务服务器的事务程序上,如果该事务程序在多个事务服务器上有备份,则进行负载平衡调度,将请求传送给一个空闲的事务服务器。工作流控制器还提供名字服务功能,使用户只需关心事务程序的名字和参数形式,而不必关心事务程序的位置。
事务程序用于执行用户请求,访问数据库,进行数据分析和处理,再将结果返回给用户。
事务处理中间件包括以下关键技术:
(1)事务处理协议:事务特性保持是事务处理中间件的基本功能,在分布式环境下的事务(全局事务)将需要在多个数据库上执行,而每一个数据库只能保证其上事务(局部事务)的事务特性,数据库之间并不提供事务协调的功能。事务处理中间件按照一定的事务处理协议负责协调各个局部事务的执行,并提供全局事务管理,以使事务特性得以保持。典型的事务处理协议有主机环境下的两阶段锁协议、分布环境下的两阶段提交协议等。
(2)并发控制:按照事务并发控制理论,只要每个读写事务的操作对象与其他写事务的操作对象能相互分离,事务就可以完全隔离地并发执行。并发控制技术对事务所需要访问的资源都加锁,以避免其他事务对这些资源的并发访问。一个事务需要访问某个资源,首先需要获取该资源的锁,如果该资源被其他事务加锁,则该事务必须等待,直到其他事务释放该锁。并发控制技术指的是对锁的调度和管理的技术,包括锁的创建、删除、申请和释放以及锁的分配等操作。由于相互等待的事务之间可能形成环(又称死锁),并发控制技术还包括死锁的检测与消除。
(3)容错与恢复管理:在基于事务处理中间件的事务处理系统中,用户程序的请求首先发送给事务处理中间件,事务处理中间件再调度合适的服务程序处理该请求。如果服务程序出现故障,不能继续处理用户请求,事务处理中间件需要将用户请求重新调度给其他服务程序处理。由于事务是逻辑上不可分割的有序的操作集合,每一个事务操作执行都需要依赖前面已经完成的操作状态(也称事务上下文),因此,调度的过程实际上包括选取服务程序,将其状态恢复到请求的上下文状态,将请求调度给服务程序执行。恢复管理需要保存请求执行的状态,并在执行事务的服务程序出现故障时,能够将请求的状态在另一个服务程序上恢复。
(4)连接管理:用户进程与数据库或者事务服务器的交互必须建立连接,受系统连接资源的限制,这种一对一的连接不能支持大规模的并发访问。连接管理技术用于管理用户与数据库之间的连接关系,用户的请求交给事务处理中间件,事务处理中间件采用连接复用技术和请求队列技术来管理用户的并发请求。连接复用指的是将数据库有限的连接资源在不同的时间用于不同的客户,或多个用户同一时刻共享一个连接。当用户并发请求太多,超过了数据库的承受能力时,用户请求必须等待,这时事务处理中间件将请求在队列中缓存,并按照一定的策略调度请求的执行。
(5)负载均衡:事务处理中间件的负载均衡是指在大量事务请求到达时,将请求调度到能够完成请求的不同的服务器上,实现服务器之间均衡的负载分布,提高事务处理的性能。由于事务处理请求与其上下文有关,因此,在负载均衡调度时,需要确保事务操作的上下文一致性。事务处理中间件的负载均衡一般分为基于连接的负载均衡和基于事务的负载均衡。基于连接的负载均衡指用户程序请求与服务程序建立连接时进行负载均衡,一旦建立好连接,该客户的所有事务请求都由与其连接的服务程序执行; 基于事务的负载均衡指用户在初始化一个事务时进行负载均衡。
(6)服务管理: 在多层客户/服务体系结构中,中间层的业务逻辑被实现为独立的服务,在这种体系结构下,事务处理中间件需要协助对服务的管理,包括服务的启动和关闭(在构件环境下,又称为服务的加载和卸载)。服务管理还包括根据用户请求类型选择匹配的服务执行请求,在存在冗余服务副本(完成相同功能,具有相同接口的服务)时,按照一定的策略为请求分配服务副本等。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭