一种客户端发起事务的事务实现方法和系统的制作方法

文档序号:7980963阅读:224来源:国知局
一种客户端发起事务的事务实现方法和系统的制作方法
【专利摘要】本发明公布了一种客户端发起事务的事务实现方法和系统,其中所述方法步骤为:通过客户端向服务端的网络处理器发起全局事务开始请求;网络处理器创建事务上下文;客户端随后向网络处理器发起事物性质的服务调用;网络处理器传递事务上下文给应用服务容器并调用服务,其中,服务容器统一将事务性质服务封装成完整的事务分支;客户端随后指示网络处理器提交全局事务;网络处理器分两阶段指示事务处理器向资源管理器提交全局事务;客户端接收到返回的提交的结果,整个事务得到实现。本发明大大减轻客户端和服务器端的压力,同时,能满足客户端快速处理大并发量事务的高性能需求,对客户端发起事务的安全性提供了保障。
【专利说明】一种客户端发起事务的事务实现方法和系统
【技术领域】
[0001]本发明涉及计算机通信【技术领域】,具体地说,涉及的是一种客户端发起事务的事务实现方法和系统。
【背景技术】
[0002]事务处理是开发和管理三层结构的客户端/服务器型应用系统工作中需要考虑的问题。由于业务处理的需要,很多应用系统提出必须提供由客户端发起事务的事务实现方案。
[0003]目前已有的客户端发起事务的方法和系统中,主要考虑了两个方面:减轻客户端开发压力;提高客户端单位时间内事务处理的并发量。但在以下方面均存在改进空间:在事务处理中,不仅尽可能减轻客户端压力,而且也减轻服务端开发压力;提高客户端大并发事务处理时的吞吐量;增加客户端发起事务的安全性。
[0004]事务处理方案的制定需依据一定的事务模型,并得到平台软件和数据库开发商的支持。事务是访问并可能更新数据库中各种数据项的一个程序执行单元。它通常由高级数据库操纵语言或编程语言书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始和事务结束之间执行的全体操作组成。事务具有4个属性:原子性、一致性、隔离性、持久性。涉及到数据库使用的领域,都需要进行事务处理,包括金融、建筑、交通、行政管理等各个行业领域。
[0005]以上所述的事务是指全局事务,它其中所包含的诸操作可以分封在多个服务中,而每个服务便是一个事务分支,这些服务在三层结构的客户端/服务器型应用系统中,运行在服务器端。可见,全局事务是有关联的事务分支的集合。这些事务分支的特点是:要么全部被执行,要么全部未被执行。故依事务的原子性特点:一个全局事务提交成功指的是它的所有事务分支均提交成功,否则,就应回滚其所包含的所有事务分支。
[0006]为支持事务、使事务的各种属性得到保障,一些国际化组织提供了典型的事务模型,以供三层结构的客户端/服务器型应用系统更好地在事务操作中分工合作。这些事务模型,包括X/0pen DTP和OTS模型。
[0007]两大主流数据库db2和oracle均支持的DTP事务模型如图1所示,模型中:
[0008]RM提供RM API并开放给AP使用。这里RM API的作用是:在资源管理器中插入、删除、更新或搜索指定的资源。如图1中的箭头I所示。
[0009]TM提供TX接口并开放给AP使用。这些TX接口的作用是界定事务的开始、结束。如图1中的箭头2所示。同时,TM还提供ax接口并开放给RM使用。这些ax接口的作用是让RM在事务中能动态控制TM。如图1中的箭头4所示。
[0010]RM提供xa接口并开放给TM使用。这些xa接口的作用是命令RM (这里RM通常是指数据库)对事务进行提交或回滚。如图1中的箭头3所示。同时,DTP模型推荐TM提交事务的协议采取一阶段提交(one-phase commit)或两阶段提交(two-phase commit)协议。如图1中的箭头5所示。[0011]事务提交的协议有一阶段提交协议和二阶段提交协议。DTP模型推荐采用二阶段提交协议:在第一阶段,TM请求RM准备提交所有事务分支,当且仅当所有事务分支的预提交均成功时,才进入提交的第二阶段,即TM请求RM正式提交所有事务分支,否则,TM应控制RM回滚所有事务分支,保证事务的原子性。如图1中的箭头5所示。
[0012]xa接口协议规定RM提供xa接口并开放给TM使用。两大主流数据库db2和oracle定义的xa接口及其与事务分支的关系如下表所示:
【权利要求】
1.一种客户端发起事务的事务实现方法,其特征在于包括如下步骤: 步骤一:客户端向服务端的网络处理器发起全局事务开始请求; 步骤二:网络处理器创建事务上下文; 步骤三:客户端随后向网络处理器发起事务性质的服务调用; 步骤四:网络处理器传递事务上下文给应用服务容器并调用服务,其中,服务容器统一将事务性质服务封装成完整的事务分支; 步骤五:客户端随后指示网络处理器提交全局事务; 步骤六:网络处理器分两阶段指示事务处理器向资源管理器提交全局事务; 步骤七:客户端接收到返回的提交的结果,整个事务得到实现。
2.根据权利要求1所述的客户端发起事务的事务实现方法,其特征在于:所述步骤一具体为: 11:客户端发起事务开始的请求,其中,客户端发起的全局事务请求可以是大并发量的,这些请求被服务端的网络处理器接收; 12:服务端的网络处理器可灵活配置为多个,接收到客户端发起的请求后,向事务处理器获取并保存全局唯一的事务标识; 13:网络处理器向客户端返回事务开始请求的执行结果。
3.根据权利要求1·所述的客户端发起事务的事务实现方法,其特征在于:所述步骤四具体为: 41:网络处理器接收到事务性质的服务调用后,向事务处理器获取并保存全局唯一的事务分支标识,同时向应用服务容器传递由全局事务标识和分支事务标识共同组成的事务上下文并调用应用服务容器中加载的服务; 42:应用服务容器在接收到网络处理器发出的事务性质的服务调用请求后,会统一在执行服务调用之前和之后分别加上带有事务上下文的事务分支的开始和结束,将被调用服务封装成完整的事务分支并调用之; 43:应用服务容器返回服务调用结果给网络处理器,并经由网络处理器最终返回给客户端。
4.根据权利要求3所述的客户端发起事务的事务实现方法,其特征在于:所述应用服务容器是加载服务的容器,根据服务的不同而不同,各个容器可以互为独立、互不影响;同时,同种应用服务容器可以多份存在。
5.根据权利要求3所述的客户端发起事务的事务实现方法,其特征在于:被加载在所述应用服务容器中的服务,仅仅是业务逻辑的实现,而事务分支的开始和结束由容器自动嵌入服务前后。
6.根据权利要求1所述的客户端发起事务的事务实现方法,其特征在于:所述步骤五具体为:客户端向网络处理器发起事务提交通知,其中,网络处理器可灵活配置为多个。
7.根据权利要求1所述的客户端发起事务的事务实现方法,其特征在于:所述步骤六具体为: 61:网络处理器收到客户端的全局事务提交通知后,通知事务处理器开始两阶段提交事务,其中,事务处理器可灵活配置为多个; 62:第一阶段预提交时,事务处理器向数据库预提交所有事务分支,并返回执行结果和所有事务分支的即时状态给网络处理器,网络处理器保存返回的所有事务分支的即时状态,并通知事务处理器开始第二阶段正式提交; 63:事务处理器作第二阶段正式提交:其中,事务处理器先判断所有事务分支的状态是否为已预备好,若是,则向数据库正式提交所有事务分支;如正式提交时有任一事务分支提交失败,则回滚该分支及所有剩下的事务分支,并对已提交的事务分支做冲正逻辑;如事务处理器判断出并非所有的事务分支均预提交好,则回滚所有事务分支,保证事务的原子性和一致性。
8.一种用于权利要求1-7所述方法的客户端发起事务的事务实现系统,其特征在于:包括: 客户端,用于发起事务、调用服务并指示网络处理器分阶段提交全局事务; 服务端,包括网络处理器、应用服务容器、事务处理器;其中: 网络处理器,位于服务端,用于接收来自客户端的事务开始请求并传递事务上下文给应用服务容器,同时还负责调用服务,并指示事务处理器提交全局事务; 应用服务容器,位于服务端,用于加载服务,供网络处理器调用; 事务处理器,位于服务端,用于向资源管理器提交全局事务; 资源管理器,独立于客户端和服务端,用于执行服务的相关操作,包括查询、插入、删除、更新数据库操作。
9.根据权利要求8所述的客户端发起事务的事务实现系统,其特征在于:在全局事务的开始阶段中,所述应用服务容器和事务处理器分别与资源管理器建立连接,同时,由客户端向服务端的网络处理器发起全局事务请求,而接收到请求的网络处理器通过事务处理器获取并保存全局事务的唯一标识。
10.根据权利要求8或9所述的客户端发起事务的事务实现系统,其特征在于:在事务性质的服务调用阶段,所述网络处理器会获取针对本次服务调用的事务分支唯一标识,并将其与在事务开始阶段获得的全局事务标识组合成事务上下文保存起来;随后,网络处理器调用加载在应用服务容器中的服务,并将事务上下文传递给它;应用服务容器负责在服务执行的前后自动加入事务分支开始和结束的界定逻辑,将服务封装在事务分支中,最后,服务调用的结果由应用服务容器返回给客户端。
11.根据权利要求8或9所述的客户端发起事务的事务实现系统,其特征在于:在全局事务提交阶段,所述网络处理器通知事务处理器分两阶段向资源管理器提交所有事务分支。
【文档编号】H04L29/06GK103546440SQ201210246336
【公开日】2014年1月29日 申请日期:2012年7月16日 优先权日:2012年7月16日
【发明者】汤春艳, 姜宇, 曹杰, 龚敬群 申请人:上海宝信软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1