[发明专利]一种客户端发起事务的事务实现方法和系统有效
申请号: | 201210246336.7 | 申请日: | 2012-07-16 |
公开(公告)号: | CN103546440B | 公开(公告)日: | 2016-10-12 |
发明(设计)人: | 汤春艳;姜宇;曹杰;龚敬群 | 申请(专利权)人: | 上海宝信软件股份有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 郭国中 |
地址: | 201203 上海市浦*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 客户端 发起 事务 实现 方法 系统 | ||
技术领域
本发明涉及计算机通信技术领域,具体地说,涉及的是一种客户端发起事务的事务实现方法和系统。
背景技术
事务处理是开发和管理三层结构的客户端/服务器型应用系统工作中需要考虑的问题。由于业务处理的需要,很多应用系统提出必须提供由客户端发起事务的事务实现方案。
目前已有的客户端发起事务的方法和系统中,主要考虑了两个方面:减轻客户端开发压力;提高客户端单位时间内事务处理的并发量。但在以下方面均存在改进空间:在事务处理中,不仅尽可能减轻客户端压力,而且也减轻服务端开发压力;提高客户端大并发事务处理时的吞吐量;增加客户端发起事务的安全性。
事务处理方案的制定需依据一定的事务模型,并得到平台软件和数据库开发商的支持。事务是访问并可能更新数据库中各种数据项的一个程序执行单元。它通常由高级数据库操纵语言或编程语言书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始和事务结束之间执行的全体操作组成。事务具有4个属性:原子性、一致性、隔离性、持久性。涉及到数据库使用的领域,都需要进行事务处理,包括金融、建筑、交通、行政管理等各个行业领域。
以上所述的事务是指全局事务,它其中所包含的诸操作可以分封在多个服务中,而每个服务便是一个事务分支,这些服务在三层结构的客户端/服务器型应用系统中,运行在服务器端。可见,全局事务是有关联的事务分支的集合。这些事务分支的特点是:要么全部被执行,要么全部未被执行。故依事务的原子性特点:一个全局事务提交成功指的是它的所有事务分支均提交成功,否则,就应回滚其所包含的所有事务分支。
为支持事务、使事务的各种属性得到保障,一些国际化组织提供了典型的事务模型,以供三层结构的客户端/服务器型应用系统更好地在事务操作中分工合作。这些事务模型,包括X/Open DTP和OTS模型。
两大主流数据库db2和oracle均支持的DTP事务模型如图1所示,模型中:
RM提供RM API并开放给AP使用。这里RM API的作用是:在资源管理器中插入、删除、更新或搜索指定的资源。如图1中的箭头1所示。
TM提供TX接口并开放给AP使用。这些TX接口的作用是界定事务的开始、结束。如图1中的箭头2所示。同时,TM还提供ax接口并开放给RM使用。这些ax接口的作用是让RM在事务中能动态控制TM。如图1中的箭头4所示。
RM提供xa接口并开放给TM使用。这些xa接口的作用是命令RM(这里RM通常是指数据库)对事务进行提交或回滚。如图1中的箭头3所示。同时,DTP模型推荐TM提交事务的协议采取一阶段提交(one-phase commit)或两阶段提交(two-phase commit)协议。如图1中的箭头5所示。
事务提交的协议有一阶段提交协议和二阶段提交协议。DTP模型推荐采用二阶段提交协议:在第一阶段,TM请求RM准备提交所有事务分支,当且仅当所有事务分支的预提交均成功时,才进入提交的第二阶段,即TM请求RM正式提交所有事务分支,否则,TM应控制RM回滚所有事务分支,保证事务的原子性。如图1中的箭头5所示。
xa接口协议规定RM提供xa接口并开放给TM使用。两大主流数据库db2和oracle定义的xa接口及其与事务分支的关系如下表所示:
综上,DTP模型使得AP可以仅实现业务逻辑,而全局事务的开始、结束、提交则可交由TM控制RM实现。
经对现有技术的检索,申请号为CN201010105099.3的中国发明专利,该专利提供一种处理事务的方法及装置,其中所述方法包括:在多服务调用过程中,当被调用的当前服务需要启动事务时,检测是否已有其它服务启动事务;若没有其它服务启动事务,则当前服务启动事务,并进行当前服务处理;在当前服务处理完毕后,提交启动的事务,并退出当前服务。通过本发明实施例所提供的方法及装置,可以保证处理的事务要么都提交,要么都回滚,有效的保证了事务处理的原子性与一致性。
该发明与本发明的技术要点比较:
1、该发明中,为调用事务性质的服务设计了服务处理单元,为事务提交后的服务退出设计了服务退出单元。而本发明中采用的应用服务容器,既可加载事务性质的服务供调用,也不必在事务提交后让服务退出,这样可以让服务常驻容器中,节省每次重新启动服务时对资源的消耗;同时也可以将服务端的开发量减少到最低(仅需含业务逻辑的实现即可)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海宝信软件股份有限公司,未经上海宝信软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210246336.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种扣合式搭铁线端子锁紧装置
- 下一篇:转接头