多事务同步协作管理方法、系统及其装置.pdf

上传人:t**** 文档编号:971385 上传时间:2018-03-22 格式:PDF 页数:18 大小:577.13KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110315216.3

申请日:

2011.10.17

公开号:

CN102347986A

公开日:

2012.02.08

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/08申请日:20111017|||公开

IPC分类号:

H04L29/08; G06F9/46

主分类号:

H04L29/08

申请人:

百度在线网络技术(北京)有限公司

发明人:

谢马林

地址:

100085 北京市海淀区上地十街10号百度大厦三层

优先权:

专利代理机构:

北京清亦华知识产权代理事务所(普通合伙) 11201

代理人:

张大威

PDF下载: PDF下载
内容摘要

本发明提出了一种多事务同步协作管理方法、系统及其装置。该方法包括:建立本地事务;向一个或多个远程协同事务管理服务器发送事务开启指令,其中,所述事务开始指令之中包括全局事务标识;一个或多个远程协同事务管理服务器根据所述事务开启指令建立远程协同事务,且远程协同事务具有全局事务标识,其中,所述本地事务管理服务器根据所述全局事务标识对所述远程协同事务进行同步协作管理。本发明可以在本地事务管理服务器和一个或多个远程协同事务管理服务器之间进行统一的同步协作管理。

权利要求书

1: 一种多事务同步协作管理方法, 其特征在于, 包括以下步骤 : 本地事务管理服务器建立本地事务 ; 所述本地事务管理服务器向一个或多个远程协同事务管理服务器发送事务开启指令, 其中, 所述事务开始指令之中包括全局事务标识 ; 以及 所述一个或多个远程协同事务管理服务器根据所述事务开启指令建立远程协同事务, 且所述远程协同事务具有所述全局事务标识, 其中, 所述本地事务管理服务器根据所述全 局事务标识对所述远程协同事务进行同步协作管理。
2: 如权利要求 1 所述的多事务同步协作管理方法, 其特征在于, 所述本地事务管理服 务器根据所述全局事务标识对所述远程协同事务进行同步协作管理进一步包括 : 在对所述本地事务进行操作时, 所述本地事务管理服务器根据所述全局事务标识向所 述一个或多个远程协同事务管理服务器发送远程控制指令以控制相应的远程协同事务。
3: 如权利要求 1 所述的多事务同步协作管理方法, 其特征在于, 所述本地事务管理服 务器中运行有多个线程和多个本地事务, 且每个本地事务均与一个线程相对应, 每个线程 均具有独立的全局事务标识。
4: 如权利要求 1-3 任一项所述的多事务同步协作管理方法, 其特征在于, 其中, 所述本 地事务管理服务器中设置有远程方法调用 RMI 客户端, 所述一个或多个远程协同事务管理 服务器中均设置有 RMI 服务器端, 所述本地事务管理服务器通过所述 RMI 客户端向所述一 个或多个远程协同事务管理服务器的 RMI 服务器端发送事务远程控制指令。
5: 如权利要求 4 所述的多事务同步协作管理方法, 其特征在于, 所述本地事务管理服 务器根据全局事务标识向所述一个或多个远程协同事务管理服务器发送控制相应远程协 同事务的远程控制指令进一步包括 : 生成事务远程控制指令, 并将所述事务远程控制指令发送至 RMI 客户端 ; 在所述 RMI 客户端的调用接口对携带所述事务远程控制指令的 RMI 消息包进行拦截 ; 根据所述事务远程控制指令的类型及所述本地事务所对应的线程确定全局事务标识 ; 以及 将所述全局事务标识添加至所述 RMI 消息包中并向所述一个或多个远程协同事务管 理服务器的 RMI 服务器端发送。
6: 如权利要求 5 所述的多事务同步协作管理方法, 其特征在于, 通过侵入或非侵入方 式对携带所述事务远程控制指令的 RMI 消息包进行拦截。
7: 如权利要求 1 所述的多事务同步协作管理方法, 其特征在于, 其中, 所述多个远程协 同事务管理服务器均与所述本地事务管理服务器相互通信, 以构成横向协同事务管理。
8: 如权利要求 1 所述的多事务同步协作管理方法, 其特征在于, 还包括 : 所述一个或多个远程协同事务管理服务器在收到所述本地事务管理服务器发送的远 程控制指令之后, 所述一个或多个远程协同事务管理服务器进一步将所述远程控制指令转 发至下一级的一个或多个远程协同事务管理服务器, 以构成纵向协同事务管理。
9: 如权利要求 1 所述的多事务同步协作管理方法, 其特征在于, 所述远程控制指令包 括事务开启指令、 事务提交指令和事务回滚指令。
10: 一种多事务同步协作管理系统, 其特征在于, 包括本地事务管理服务器和与所述本 地事务管理服务器相互通信的一个或多个远程协同事务管理服务器 : 2 所述本地事务管理服务器用于建立本地事务, 并向所述一个或多个远程协同事务管理 服务器发送事务开启指令, 其中, 所述事务开始指令之中包括全局事务标识 ; 所述一个或多个远程协同事务管理服务器用于根据所述本地事务管理服务器发送的 事务开启指令建立远程协同事务, 且所述远程协同事务具有所述全局事务标识, 其中, 所述 本地事务管理服务器根据所述全局事务标识对所述远程协同事务进行同步协作管理。
11: 如权利要求 10 所述的多事务同步协作管理系统, 其特征在于, 所述本地事务管理 服务器中运行有多个线程和多个本地事务, 且每个本地事务均与一个线程相对应, 每个线 程均具有独立的全局事务标识。
12: 如权利要求 10 或 11 所述的多事务同步协作管理系统, 其特征在于, 其中, 所述本地 事务管理服务器具有 RMI 客户端, 所述一个或多个远程协同事务管理服务器具有 RMI 服务 器端, 所述本地事务管理服务器通过所述 RMI 客户端向所述一个或多个远程协同事务管理 服务器的 RMI 服务器端发送事务远程控制指令。
13: 如权利要求 12 所述的多事务同步协作管理系统, 其特征在于, 所述本地事务管理 服务器包括 : 建立模块, 用于建立本地事务 ; 以及 指令生成及发送模块, 用于根据所述本地事务的操作生成事务远程控制指令, 其中, 所 述事务开始指令之中包括全局事务标识, 并根据所述全局事务标识向所述一个或多个远程 协同事务管理服务器发送控制相应远程协同事务的远程控制指令, 所述一个或多个远程协 同事务管理服务器根据所述远程控制指令及所述全局事务标识对对应的远程协同事务进 行操作。
14: 如权利要求 13 所述的多事务同步协作管理系统, 其特征在于, 所述指令生成及发 送模块进一步包括 : RMI 客户端子模块, 用于接收所述指令生成模块生成的事务远程控制指令, 并根据所述 事务远程控制指令生成对应的 RMI 消息包 ; 拦截子模块, 用于在所述 RMI 客户端模块的调用接口对携带所述事务远程控制指令的 RMI 消息包进行拦截 ; 全局事务标识确定子模块, 用于根据所述事务远程控制指令的类型及所述本地事务所 对应的线程确定全局事务标识 ; 以及 添加子模块, 用于将所述全局事务标识确定模块确定的所述全局事务标识添加至所述 RMI 消息包中, 并通过所述 RMI 客户端子模块向所述一个或多个远程协同事务管理服务器 的 RMI 服务器端发送。
15: 如权利要求 14 所述的多事务同步协作管理系统, 其特征在于, 所述拦截模块通过 侵入或非侵入方式对携带所述事务远程控制指令的 RMI 消息包进行拦截。
16: 如权利要求 10 所述的多事务同步协作管理系统, 其特征在于, 其中, 所述多个远程 协同事务管理服务器均与所述本地事务管理服务器相互通信, 以构成横向协同事务管理。
17: 如权利要求 10 所述的多事务同步协作管理系统, 其特征在于, 所述一个或多个远 程协同事务管理服务器还用于在收到所述本地事务管理服务器发送的远程控制指令之后, 以构成纵向协 将所述远程控制指令转发至下一级的一个或多个远程协同事务管理服务器, 同事务管理。 3
18: 如权利要求 10 所述的多事务同步协作管理系统, 其特征在于, 所述远程控制指令 包括事务开启指令、 事务提交指令和事务回滚指令。
19: 一种本地事务管理服务器, 其特征在于, 包括 : 建立模块, 用于建立本地事务 ; 以及 指令生成及发送模块, 用于根据所述本地事务的操作生成事务远程控制指令, 其中, 所 述事务开始指令之中包括全局事务标识, 并根据所述全局事务标识向所述一个或多个远程 协同事务管理服务器发送控制相应远程协同事务的远程控制指令, 所述一个或多个远程协 同事务管理服务器根据所述远程控制指令及所述全局事务标识对对应的远程协同事务进 行操作。
20: 如权利要求 19 所述的本地事务管理服务器, 其特征在于, 所述建立模块建立有多 个本地事务, 且每个本地事务均与一个线程相对应, 每个线程均具有独立的全局事务标识。
21: 如权利要求 19 或 20 所述的本地事务管理服务器, 其特征在于, 所述指令生成及发 送模块进一步包括 : RMI 客户端子模块, 用于接收所述指令生成模块生成的事务远程控制指令, 并根据所述 事务远程控制指令生成对应的 RMI 消息包 ; 拦截子模块, 用于在所述 RMI 客户端模块的调用接口对携带所述事务远程控制指令的 RMI 消息包进行拦截 ; 全局事务标识确定子模块, 用于根据所述事务远程控制指令的类型及所述本地事务所 对应的线程确定全局事务标识 ; 以及 添加子模块, 用于将所述全局事务标识确定模块确定的所述全局事务标识添加至所述 RMI 消息包中, 并通过所述 RMI 客户端子模块向所述一个或多个远程协同事务管理服务器 的 RMI 服务器端发送。
22: 如权利要求 21 所述的本地事务管理服务器, 其特征在于, 所述拦截模块通过侵入 或非侵入方式对携带所述事务远程控制指令的 RMI 消息包进行拦截。
23: 如权利要求 10 所述的本地事务管理服务器, 其特征在于, 所述远程控制指令包括 事务开启指令、 事务提交指令和事务回滚指令。
24: 一种远程协同事务管理服务器, 其特征在于, 包括 : 接收模块, 用于接收本地事务管理服务器发送的远程控制指令 ; 解析模块, 用于从所述远程控制指令中获得对应的全局事务标识 ; 以及 控制模块, 用于根据所述全局事务标识及所述远程控制指令创建远程协同事务或对已 有的远程协同事务进行控制。
25: 如权利要求 24 所述的远程协同事务管理服务器, 其特征在于, 所述接收模块为 RMI 服务器端, 与所述本地事务管理服务器的 RMI 客户端相互通信。
26: 如权利要求 24 所述的远程协同事务管理服务器, 其特征在于, 所述远程控制指令 包括事务开启指令、 事务提交指令和事务回滚指令。
27: 如权利要求 24 所述的远程协同事务管理服务器, 其特征在于, 还包括 : 转发模块, 用于在收到所述本地事务管理服务器发送的远程控制指令之后, 将所述远 程控制指令转发至下一级的一个或多个远程协同事务管理服务器。

说明书


多事务同步协作管理方法、 系统及其装置

    【技术领域】
     本发明涉及互联网技术领域, 特别地涉及一种多事务同步协作管理方法、 系统及其装置。 背景技术 事务管理在应用程序中起着至关重要的作用。它是一系列任务的组成工作单元, 在这个工作单元中, 所有的任务必须同时执行。 它们只有二种可能执行结果, 要么所有任务 全部执行成功, 要么所有任务全部执行失败。在 Spring Framework 中提供了丰富的事务管 理功能。Spring Framework 是一种基于动态代理的 AOP(Aspect Oriented Programming, 面向切面编程 ) 框架, 其中动态代理来自于代理设计模式。
     然而, 现有技术的缺点是, 多个 Spring Framework 实例上事务不能够实现同步协 作管理, 例如事务的统一提交等, 从而导致无法满足目前商业灵活应用的需求。
     发明内容 本发明旨在至少解决现有技术中存在的技术问题之一, 特别是解决目前事务不能 实现同步协作管理的缺陷。
     本发明实施例第一方面提出了一种多事务同步协作管理方法, 包括以下步骤 : 本 地事务管理服务器建立本地事务 ; 所述本地事务管理服务器向一个或多个远程协同事务管 理服务器发送事务开启指令, 其中, 所述事务开始指令之中包括全局事务标识 ; 以及所述一 个或多个远程协同事务管理服务器根据所述事务开启指令建立远程协同事务, 且所述远程 协同事务具有所述全局事务标识, 其中, 所述本地事务管理服务器根据所述全局事务标识 对所述远程协同事务进行同步协作管理。
     在本发明的一个实施例中, 所述本地事务管理服务器中设置有远程方法调用 RMI 客户端, 所述一个或多个远程协同事务管理服务器中均设置有 RMI 服务器端, 所述本地事 务管理服务器通过所述 RMI 客户端向所述一个或多个远程协同事务管理服务器的 RMI 服务 器端发送事务远程控制指令。
     通过本发明第一方面实施例提出的方法, 可以在本地事务管理服务器和一个或多 个远程协同事务管理服务器之间进行统一的同步协作管理, 这样本地事务管理服务器就 可以接管一个或多个远程协同事务管理服务器中的远程协同事务 ( 与全局事务标识相对 应的远程协同事务 ), 在本地事务管理服务器对本地事务进行操作的同时, 根据设置的全 局事务标识可以对其他一个或多个远程协同事务管理服务器中对应的远程协同事务进行 管理, 例如控制这些对应的远程协同事务与该本地事务同时递交, 或者同时进行回滚操作 等。在本发明的优选实施例中, 本地事务管理服务器和一个或多个远程协同事务管理服务 器之间是通过 RMI 的方式进行远程控制指令的传递, 本发明实施例通过 RMI 技术可实现 SpringFramework 事务的同步及协调管理。
     本发明实施例第二方面还提出了一种多事务同步协作管理系统, 包括本地事务管
     理服务器和与所述本地事务管理服务器相互通信的一个或多个远程协同事务管理服务器 : 所述本地事务管理服务器用于建立本地事务, 并向所述一个或多个远程协同事务管理服务 器发送事务开启指令, 其中, 所述事务开始指令之中包括全局事务标识 ; 所述一个或多个远 程协同事务管理服务器用于根据所述本地事务管理服务器发送的事务开启指令建立远程 协同事务, 且所述远程协同事务具有所述全局事务标识, 其中, 所述本地事务管理服务器根 据所述全局事务标识对所述远程协同事务进行同步协作管理。
     在本发明的一个实施例中, 所述本地事务管理服务器具有 RMI 客户端, 所述一个 或多个远程协同事务管理服务器具有 RMI 服务器端, 所述本地事务管理服务器通过所述 RMI 客户端向所述一个或多个远程协同事务管理服务器的 RMI 服务器端发送事务远程控制 指令。
     通过本发明第二方面实施例提出的系统, 本地事务管理服务器和一个或多个远程 协同事务管理服务器之间可以进行统一的同步协作管理, 这样本地事务管理服务器就可以 接管一个或多个远程协同事务管理服务器中的远程协同事务 ( 与全局事务标识相对应的 远程协同事务 )。 在本地事务管理服务器对本地事务进行操作的同时, 本地事务管理服务器 能够根据设置的全局事务标识可以对其他一个或多个远程协同事务管理服务器中对应的 远程协同事务进行管理, 例如控制这些对应的远程协同事务与该本地事务同时递交, 或者 同时进行回滚操作等。在本发明的优选实施例中, 本地事务管理服务器和一个或多个远程 协同事务管理服务器之间是通过 RMI 的方式进行远程控制指令的传递, 本发明实施例通过 RMI 技术可实现 SpringFramework 事务的同步及协调管理。 本发明实施例第三方面还提出了一种本地事务管理服务器, 包括 : 建立模块, 用于 建立本地事务 ; 以及指令生成及发送模块, 用于根据所述本地事务的操作生成事务远程控 制指令, 其中, 所述事务开始指令之中包括全局事务标识, 并根据所述全局事务标识向所述 一个或多个远程协同事务管理服务器发送控制相应远程协同事务的远程控制指令, 所述一 个或多个远程协同事务管理服务器根据所述远程控制指令及所述全局事务标识对对应的 远程协同事务进行操作。
     本发明实施例的第四方面还提出了一种远程协同事务管理服务器, 包括 : 接收模 块, 用于接收本地事务管理服务器发送的远程控制指令 ; 解析模块, 用于从所述远程控制指 令中获得对应的全局事务标识 ; 以及控制模块, 用于根据所述全局事务标识及所述远程控 制指令创建远程协同事务或对已有的远程协同事务进行控制。
     通过本发明实施例的上述本地事务管理服务器及远程协同事务管理服务器, 可以 实现统一的同步协作管理, 这样本地事务管理服务器就可以接管一个或多个远程协同事务 管理服务器中的远程协同事务 ( 与全局事务标识相对应的远程协同事务 )。在本地事务管 理服务器对本地事务进行操作的同时, 本地事务管理服务器能够根据设置的全局事务标识 可以对其他一个或多个远程协同事务管理服务器中对应的远程协同事务进行管理, 例如控 制这些对应的远程协同事务与该本地事务同时递交, 或者同时进行回滚操作等。
     本发明的附加方面和优点将在下面的描述中部分给出, 部分将从下面的描述中变 得明显, 或通过本发明的实践了解到。
     附图说明本发明的上述和 / 或附加的方面和优点从结合下面附图对实施例的描述中将变 得明显和容易理解, 其中 :
     图 1 为本发明实施例的多事务同步协作管理方法流程图 ;
     图 2 为本发明实施例通过 RMI 方式发送远程控制指令的流程图 ;
     图 3 为本发明实施例的横向协同事务管理示意图 ;
     图 4 为本发明实施例的纵向协同事务管理示意图 ;
     图 5 为本发明实施例的多事务同步协作管理系统结构图 ; 和
     图 6 为本发明实施例的远程协同事务管理服务器结构图。 具体实施方式
     下面详细描述本发明的实施例, 所述实施例的示例在附图中示出, 其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。 下面通过参考附 图描述的实施例是示例性的, 仅用于解释本发明, 而不能理解为对本发明的限制。
     参照下面的描述和附图, 将清楚本发明的实施例的这些和其他方面。在这些描述 和附图中, 具体公开了本发明的实施例中的一些特定实施方式, 来表示实施本发明的实施 例的原理的一些方式, 但是应当理解, 本发明的实施例的范围不受此限制。相反, 本发明的 实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、 修改和等同物。 如图 1 所示, 为本发明实施例的多事务同步协作管理方法流程图。需要说明的 是, 在该实施例中所述的事务为在 JVM(Java Virtual Machine, Java 虚拟机 ) 之上的 SpringFramework 事务, 当然在本发明的其他实施例中也可为其他类型的事务。此外, 在该 实施例中包括本地事务管理服务器和一个或多个远程协同事务管理服务器, 当然还可包括 另外一些远程协同事务管理服务器 ( 在本发明的实施例中将其称为下一级的远程协同事 务管理服务器 ), 这些远程协同事务管理服务器与上述一个或多个远程协同事务管理服务 器相互通信, 从而构成纵向协同事务管理 ( 在后续的实施例中将对此进行详细描述 )。 另外 还需要说明的是, 在实际的应用中一个事务管理服务器即可能是本地事务管理服务器, 也 可能是远程协同事务管理服务器, 其针对事务的不同而有所变化。例如以工商银行的事务 管理服务器举例来说, 如果建设银行的用户从工商银行取钱, 则工商银行的事务管理服务 器就是本地事务管理服务器, 此时建设银行的事务管理服务器就是远程协同事务管理服务 器; 反之, 如果工商银行的用户从建设银行取钱, 则建设银行的事务管理服务器就是本地事 务管理服务器, 而工商银行的事务管理服务器就是远程协同事务管理服务器。以上仅是举 例描述, 在实际的事务应用中, 应用场景更为复杂, 但均可采用本发明实施例的方法。具体 地, 该方法包括以下步骤 :
     步骤 S101, 本地事务管理服务器建立本地事务。在本发明的一个实施例中, 本地 事务管理服务器中可仅运行一个本地事务。在本发明通常的实施例中, 本地事务管理服务 器中运行有多个线程和多个本地事务, 且每个本地事务均与一个线程相对应, 即在一个线 程之内仅保持有一个本地事务。 在本发明实施例的实际应用之中在本地事务管理服务器之 中可运行有多个事务, 其中, 多个事务中的一些需要与远程协同事务管理服务器之中的远 程协同事务进行同步协同管理, 在此将这些事务称之为本地事务。 在本发明的实施例中, 所 谓的 “同步协同管理” 是指本地事务与远程协同事务之间同步地操作, 或者按照预设的顺序
     进行操作, 在之后的实施例中将结合横向协同事务管理及纵向协同事务管理进行详细地介 绍。
     步骤 S102, 本地事务管理服务器向一个或多个远程协同事务管理服务器发送事务 开启指令, 其中, 该事务开始指令之中包括全局事务标识。在本发明的实施例中, 如果本地 事务管理服务器中运行有多个线程, 则每个线程对应有独立的全局事务标识。这样本地事 务管理法服务器就可根据线程号来确定全局事务标识。在本发明的一个实施例中, 该全局 事务标识可为一个唯一的 UUID(Universally Unique Identifier, 通用唯一识别码 ) 串。 其中, UUID 是一个软件建构的标准, 也是被开源软件基金会 (Open Software Foundation, OSF) 的组织在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部 份。由于 UUID 为本领域已知的技术, 因此在此不再赘述。在本发明的实施例中, 全局事务 标识是标记事务协同操作的唯一 ID, 在一次协同事务处理过程之中, 全局事务标识都只有 一个且唯一。因此, 事务的远程控制指令 ( 也可称为协同处理命令 ) 都需要通过这个全局 事务标记发起, 从而一个或多个远程协同事务管理服务器才能够获知本地事务管理服务器 想要对其上的哪个事务进行操作。
     在该实施例中, 事务开启指令可通过多种方式发送。优选地, 通过 RMI(Remote Method Invocation, 远程方法调用 ) 发送事务开启指令。在以下的实施例中将对如何通过 RMI 发送事务开启指令及其他远程控制指令, 例如事务提交指令和事务回滚指令等, 以及全 局事务标识的选择及添加等, 进行详细描述。 步骤 S103, 一个或多个远程协同事务管理服务器根据事务开启指令建立远程协同 事务, 且远程协同事务具有对应的全局事务标识。一个或多个远程协同事务管理服务器在 收到本地事务管理服务器发送的事务开启指令之后, 根据事务开启指令之中的信息建立相 应的事务 ( 在此将其称为远程协同事务 ), 将该远程协同事务与事务开启指令之中的全局 事务标识相关联。 这样一个或多个远程协同事务管理服务器之后如果再收到本地事务管理 服务器的远程控制指令的话, 就可以根据远程控制指令之中的全局事务标识获知该远程控 制指令是想要对哪个事务进行操作。
     步骤 S104, 在本地事务管理服务器对本地事务进行操作时, 例如事务提交操作或 回滚操作等, 本地事务管理服务器根据全局事务标识向一个或多个远程协同事务管理服务 器发送控制相应远程协同事务的远程控制指令, 以对本地事务与一个或多个远程协同事务 管理服务器中的远程协同事务进行同步协作管理。在本发明的一个实施例中, 本地事务管 理服务器和一个或多个远程协同事务管理服务器之间是通过 RMI 的方式进行远程控制指 令的传递。进一步地, 本地事务管理服务器中设置有远程方法调用 RMI 客户端, 一个或多个 远程协同事务管理服务器中均设置有 RMI 服务器端, 本地事务管理服务器通过 RMI 客户端 向一个或多个远程协同事务管理服务器的 RMI 服务器端发送事务远程控制指令。如上所述 的对于一个事务管理服务器来说, 其可能既是本地事务管理服务器, 也是远程协同事务管 理服务器, 因此该事务管理服务器既包括 RMI 客户端, 也包括 RMI 服务器端。 需要说明的是, 在该步骤中优选地, 可在本地事务操作之前的预设时间发送远程控制指令, 从而可以使得 本地事务及远程协同事务可同步进行操作, 例如同步提交等。该预设时间需要根据本地事 务管理服务器与远程协同事务管理服务器之间的通信时间等因素设定。在该实施例中, 同 时仅是相对的概念, 只要在可容忍的误差范围内保证本地事务与远程协同事务递交即可。
     在本发明的其他实施例中, 该远程控制指令中还可以包括提交时间, 这样本地事务管理服 务器和远程协同事务管理服务器就可在该提交时间同时提交本地事务和远程协同事务。 具 体地, 如图 2 所示, 为本发明实施例通过 RMI 方式发送远程控制指令的流程图, 进一步包括 以下步骤 :
     步骤 S201, 在本地事务管理服务器对本地事务进行操作时, 例如事务提交操作或 回滚操作等, 本地事务管理服务器生成事务远程控制指令, 并将所述事务远程控制指令发 送至 RMI 客户端。
     步 骤 S202, 在 RMI 客 户 端 的 调 用 接 口 对 携 带 事 务 远 程 控 制 指 令 的 RMI 消 息 包 进 行 拦 截。 在 本 发 明 的 一 个 实 施 例 中, 如 果 为 SpringFramework 事 务, 则可扩展 SpringFramework 的声明式事务拦截类 TransactionInterceptor, 对每次事务的处理过程 中, 事务开启指令 “createTransactionIfNecessary” , 事务提交指令 “commitTransactionA fterReturning” , 以及事务回滚指令 “completeTransactionAfterThrowing” 进行扩展以确 定事务的执行状态 ( 分为开始, 提交或回滚三个状态 ), 并且将事务的执行状态保存到线程 的 ThreadLocal 对象中。因此本发明实施例基于上述扩展可对 RMI 消息包进行拦截, 具体 拦截的方式可为侵入式拦截或非侵入式拦截。例如利用 SpringFramework 的 AOP(Aspect Oriented Programming, 面向界面编程 ) 技术对每次事务的处理过程中所有涉及 RMI 操作 的指令进行拦截, 并对 RMI 消息包进行扩展。
     步骤 S203, 根据事务远程控制指令的类型及本地事务所对应的线程确定全局事务 标识。 具体地, 如果该事务远程控制指令为事务开启指令, 则根据该本地事务所对应的线程 号设定全局事务标识, 或者, 直接为该本地事务分配一个唯一的全局事务标识, 并将该全局 事务标识与该本地事务对应的线程号相关联。 如果该事务远程控制指令为事务提交指令或 事务回滚指令等, 则说明该本地事务已有对应的全局事务标识, 此时本地事务管理服务器 将根据该本地事务所对应的线程确定相应的全局事务标识。
     步骤 S204, 将全局事务标识添加至 RMI 消息包中并向一个或多个远程协同事务管 理服务器的 RMI 服务器端发送。在本发明的一个实施例中, 可通过动态织入的方式将上述 步骤所确定的全局事务标识添加至 RMI 消息包中。至此, 该 RMI 消息包中不仅包含有远程 控制指令, 还包含有全局事务标识。
     步骤 S105, 一个或多个远程协同事务管理服务器根据本地事务管理服务器发送的 远程控制指令对远程协同事务进行控制。具体地, 如果本地事务管理服务器与一个或多个 远程协同事务管理服务器之间通过 RMI 的方式进行通信, 则一个或多个远程协同事务管理 服务器首先解析 RMI 数据包以获得全局事务标识。接着一个或多个远程协同事务管理服务 器根据该全局事务标识确定其上的远程协同事务, 最后根据该 RMI 数据包之中的远程控制 指令对该远程协同事务进行操作, 例如提交操作或回滚操作等。 通常地, 在本发明的实施例 中, 远程协同事务管理服务器中也运行有多个事务, 其中部分事务为远程协同事务, 即根据 本地事务管理服务器的事务启动指令所创建, 且具有全局事务标识。对于这样的远程协同 事务, 远程协同事务管理服务器将控制管理权交给本地事务管理服务器, 也就是说在没有 收到本地事务管理服务器的指令的情况下, 远程协同事务管理服务器不对远程协同事务进 行操作。因此, 本发明就可实现多个 SpringFramework 事务的同步协作管理。
     通过本发明实施例的方法, 可以在本地事务管理服务器和一个或多个远程协同事务管理服务器之间进行统一的同步协作管理, 这样本地事务管理服务器就可以接管一个或 多个远程协同事务管理服务器中的远程协同事务 ( 与全局事务标识相对应的远程协同事 务 ), 在本地事务管理服务器对本地事务进行操作的同时, 根据设置的全局事务标识可以对 其他一个或多个远程协同事务管理服务器中对应的远程协同事务进行管理, 例如控制这些 对应的远程协同事务与该本地事务同时递交, 或者同时进行回滚操作等。在本发明的优选 实施例中, 本地事务管理服务器和一个或多个远程协同事务管理服务器之间是通过 RMI 的 方式进行远程控制指令的传递, 本发明实施例通过 RMI 技术可实现 SpringFramework 事务 的同步及协调管理。
     以下分别对本发明实施例的横向协同事务管理及纵向协同事务管理进行详细介 绍。
     如图 3 所示, 为本发明实施例的横向协同事务管理示意图。其中, 多个远程协同事 务管理服务器均与本地事务管理服务器相互通信。 横向协同事务管理是针对一个操作过程 中, 需要协同多个事务管理服务器的事务管理的方式。 例如, 用户在通过机票提供商用信用 卡订购飞机票时, 需要向航空公司的服务器请求出票, 同时又需要向信用卡银行的服务器 请求转账给航空公司, 这两个需要同时操作完成后才算是一次完整的事务操作。 此时, 机票 提供商的服务器为本地事务管理服务器, 而航空公司及信用卡银行的服务器就为远程事务 管理服务器。 在该实施例中, 本地事务管理服务器需要控制自身的本地事务, 航空公司及信 用卡银行的远程事务管理服务器的远程事务同时提交。 如图 4 所示, 为本发明实施例的纵向协同事务管理示意图。其中, 一个或多个远 程协同事务管理服务器在收到本地事务管理服务器发送的远程控制指令之后, 还需要进一 步将所述远程控制指令转发至下一级的一个或多个远程协同事务管理服务器, 以构成纵向 协同事务管理。 其中, 纵向协同事务管理是针对一个操作过程中, 需要协同服务器的事务管 理的方式时, 可能涉及该远程协同事务管理服务器还同时需要协同其它远程协同事务管理 服务器 ( 下一级的远程协同事务管理服务器 ) 的事情, 从而形成了一个纵向的事务协同扩 展。例如, 用户在建设银行 ATM 自动取款机用工商银行卡进行取款时, ATM 自动取款机需要 远程访问建设银行的服务器请求取款服务时, 此时建设银行的服务器会识别该用户的银行 账户是工商银行的, 这样就需要远程再访问工商银行的服务器请求取款, 只有工商银行, 建 设银行的服务器操作成功后, ATM 自动取款机才会向用户提示成功并把所取现金交给用户, 整个操作过程就是一个完整的事务。此时, 建设银行 ATM 自动取款机就为本地事务管理服 务器, 建设银行的服务器就为远程协同事务管理服务器, 而工商银行的服务器就为下一级 的远程协同事务管理服务器。此时, 建设银行服务器中事件的提交需要等待工商银行服务 器事件提交的结果, 同样 ATM 自动取款机的事件提交需要等待建设银行服务器中事件的提 交结果。
     还需要说明的是, 在该实施例中上述 “转发” 应做广义理解, 例如远程协同事务管 理服务器可将本地事务管理服务器的远程控制指令直接转发给下一级远程协同事务管理 服务器, 或者, 远程协同事务管理服务器也可以对远程控制指令的内容进行转换后发送。
     如图 5 所示, 为本发明实施例的多事务同步协作管理系统结构图。该多事务同步 协作管理系统包括本地事务管理服务器 100 和与本地事务管理服务器 100 相互通信的一个 或多个远程协同事务管理服务器 200。在本发明的其他实施例中还包括一个或多个下一级
     的远程协同事务管理服务器 300, 例如对于纵向协同事务管理的应用。其中, 本地事务管理 服务器 100 用于建立本地事务, 并向一个或多个远程协同事务管理服务器发送事务开启指 令, 其中, 事务开始指令之中包括全局事务标识, 以及在对本地事务进行操作时, 根据全局 事务标识向一个或多个远程协同事务管理服务器 200 发送控制相应远程协同事务的远程 控制指令。在该实施例中所述的事务为在 JVM(Java Virtual Machine, Java 虚拟机 ) 之上 的 SpringFramework 事务, 当然在本发明的其他实施例中也可为其他类型的事务。
     在本发明的一个实施例中, 本地事务管理服务器 100 中可仅运行一个本地事务。 但是在本发明通常的实施例中, 本地事务管理服务器 100 中运行有多个线程和多个本地事 务, 且每个本地事务均与一个线程相对应, 即在一个线程之内仅保持有一个本地事务。 在本 发明实施例的实际应用之中, 在本地事务管理服务器 100 之中可运行有多个事务, 其中, 多 个事务中的一些需要与远程协同事务管理服务器 200 之中的远程协同事务进行同步协同 管理, 在此将这些事务称之为本地事务。
     在本发明的实施例中, 所谓的 “同步协同管理” 是指本地事务与远程协同事务之间 同步地操作, 或者按照预设的顺序进行操作。 在本发明的实施例中, 如果本地事务管理服务 器 100 中运行有多个线程, 则每个线程对应有独立的全局事务标识。这样本地事务管理法 服务器 100 就可根据线程号来确定全局事务标识。在本发明的一个实施例中, 该全局事务 标识可为一个唯一的 UUID 串。 在本地事务管理服务器 100 对本地事务进行操作时, 例如事务提交操作或回滚操 作等, 本地事务管理服务器 100 根据全局事务标识向一个或多个远程协同事务管理服务器 200 发送控制相应远程协同事务的远程控制指令, 以对本地事务与一个或多个远程协同事 务管理服务器 200 中的远程协同事务进行同步协作管理。
     其中, 一个或多个远程协同事务管理服务器 200 用于根据本地事务管理服务器 100 发送的事务开启指令建立远程协同事务, 且该远程协同事务具有全局事务标识。一个 或多个远程协同事务管理服务器 200 还用于根据本地事务管理服务器 100 发送的远程控制 指令对远程协同事务进行控制。一个或多个远程协同事务管理服务器 200 收到本地事务管 理服务器 100 发送的事务开启指令之后, 根据事务开启指令之中的信息建立相应的远程协 同事务, 将该远程协同事务与事务开启指令之中的全局事务标识相关联。这样一个或多个 远程协同事务管理服务器 200 之后如果再收到本地事务管理服务器 100 的远程控制指令的 话, 就可以根据远程控制指令之中的全局事务标识获知该远程控制指令是想要对哪个事务 进行操作。具体地, 如果本地事务管理服务器 100 与一个或多个远程协同事务管理服务器 200 之间通过 RMI 的方式进行通信, 则一个或多个远程协同事务管理服务器 200 首先解析 RMI 数据包以获得全局事务标识。接着一个或多个远程协同事务管理服务器 200 根据该全 局事务标识确定其上的远程协同事务, 最后根据该 RMI 数据包之中的远程控制指令对该远 程协同事务进行操作, 例如提交操作或回滚操作等。通常地, 在本发明的实施例中, 远程协 同事务管理服务器 200 中也运行有多个事务, 其中部分事务为远程协同事务, 即根据本地 事务管理服务器 100 的事务启动指令所创建, 且具有全局事务标识。对于这样的远程协同 事务, 远程协同事务管理服务器 200 将控制管理权交给本地事务管理服务器 100, 也就是说 在没有收到本地事务管理服务器 100 的指令的情况下, 远程协同事务管理服务器 200 不对 远程协同事务进行操作。因此, 本发明就可实现多个 SpringFramework 事务的同步协作管
     理。 在本发明的一个实施例中, 本地事务管理服务器 100 和一个或多个远程协同事务 管理服务器 200 之间是通过 RMI 的方式进行远程控制指令的传递。进一步地, 本地事务管 理服务器 100 具有 RMI 客户端, 一个或多个远程协同事务管理服务器 200 具有 RMI 服务器 端, 本地事务管理服务器 100 通过 RMI 客户端向一个或多个远程协同事务管理服务器 200 的 RMI 服务器端发送事务远程控制指令。
     进一步地, 本地事务管理服务器 100 包括建立模块 110 和指令生成及发送模块 120。建立模块 110 用于建立本地事务。指令生成及发送模块 120 用于根据本地事务的操 作生成事务远程控制指令, 其中, 事务开始指令之中包括全局事务标识。 且指令生成及发送 模块 120 还用于根据全局事务标识向一个或多个远程协同事务管理服务器 200 发送控制相 应远程协同事务的远程控制指令, 一个或多个远程协同事务管理服务器 200 根据远程控制 指令及全局事务标识对对应的远程协同事务进行操作。
     更进一步地, 指令生成及发送模块 120 进一步包括 RMI 客户端子模块 121、 拦截 子模块 122、 全局事务标识确定子模块 123、 添加子模块 124。其中, RMI 客户端子模块 121 用于接收指令生成模块 110 生成的事务远程控制指令, 例如事务提交操作或回滚操作等, 并根据事务远程控制指令生成对应的 RMI 消息包。在本发明的一个实施例中, 拦截子模块 122 用于在 RMI 客户端模块 121 的调用接口对携带事务远程控制指令的 RMI 消息包进行拦 截。在本发明的一个实施例中, 如果为 SpringFramework 事务, 则可扩展 SpringFramework 的声明式事务拦截类 TransactionInterceptor, 对每次事务的处理过程中, 事务开启指令 “createTransactionIfNecessary” , 事务提交指令 “commitTransactionAfterReturning” ,
     以及事务回滚指令 “completeTransactionAfterThrowing” 进行扩展以确定事务的执行状 态 ( 分为开始, 提交或回滚三个状态 ), 并且将事务的执行状态保存到线程的 ThreadLocal 对象中。因此本发明实施例基于上述扩展可对 RMI 消息包进行拦截, 具体拦截的方式可 为 侵 入 式 拦 截 或 非 侵 入 式 拦 截。 例 如 利 用 SpringFramework 的 AOP(Aspect Oriented Programming, 面向界面编程 ) 技术对每次事务的处理过程中所有涉及 RMI 操作的指令进行 拦截, 并对 RMI 消息包进行扩展。
     在本发明的一个实施例中, 全局事务标识确定子模块 123 用于根据事务远程控制 指令的类型及本地事务所对应的线程确定全局事务标识。具体地, 如果该事务远程控制指 令为事务开启指令, 则根据该本地事务所对应的线程号设定全局事务标识, 或者, 直接为该 本地事务分配一个唯一的全局事务标识, 并将该全局事务标识与该本地事务对应的线程号 相关联。如果该事务远程控制指令为事务提交指令或事务回滚指令等, 则说明该本地事务 已有对应的全局事务标识, 此时本地事务管理服务器将根据该本地事务所对应的线程确定 相应的全局事务标识。
     在本发明的一个实施例中, 添加子模块 124 用于将全局事务标识确定模块 123 确 定的全局事务标识添加至 RMI 消息包中, 并通过 RMI 客户端子模块 121 向一个或多个远程 协同事务管理服务器 200 的 RMI 服务器端发送。在本发明的一个实施例中, 可通过动态织 入的方式将确定的全局事务标识添加至 RMI 消息包中。至此, 该 RMI 消息包中不仅包含有 远程控制指令, 还包含有全局事务标识。
     在本发明的一个实施例中, 多个远程协同事务管理服务器 200 均与本地事务管理服务器 100 相互通信, 以构成横向协同事务管理。
     在本发明的一个实施例中, 一个或多个远程协同事务管理服务器 200 还用于在收 到本地事务管理服务器 100 发送的远程控制指令之后, 将远程控制指令转发至下一级的一 个或多个远程协同事务管理服务器 300, 以构成纵向协同事务管理。
     通过本发明实施例提出的系统, 本地事务管理服务器和一个或多个远程协同事务 管理服务器之间可以进行统一的同步协作管理, 这样本地事务管理服务器就可以接管一个 或多个远程协同事务管理服务器中的远程协同事务 ( 与全局事务标识相对应的远程协同 事务 )。 在本地事务管理服务器对本地事务进行操作的同时, 本地事务管理服务器能够根据 设置的全局事务标识可以对其他一个或多个远程协同事务管理服务器中对应的远程协同 事务进行管理, 例如控制这些对应的远程协同事务与该本地事务同时递交, 或者同时进行 回滚操作等。在本发明的优选实施例中, 本地事务管理服务器和一个或多个远程协同事务 管理服务器之间是通过 RMI 的方式进行远程控制指令的传递, 本发明实施例通过 RMI 技术 可实现 SpringFramework 事务的同步及协调管理。
     如图 6 所示, 为本发明实施例的远程协同事务管理服务器结构图。该远程协同事 务管理服务器 200 包括接收模块 210、 解析模块 220 和控制模块 230。接收模块 210 用于接 收本地事务管理服务器 100 发送的远程控制指令。解析模块 210 用于从远程控制指令中获 得对应的全局事务标识。控制模块 230 用于根据所述全局事务标识及所述远程控制指令创 建远程协同事务或对已有的远程协同事务进行控制。
     在本发明的一个实施例中, 该远程协同事务管理服务器 200 还包括转发模块 240, 用于在收到本地事务管理服务器 100 发送的远程控制指令之后, 将远程控制指令转发至下 一级的一个或多个远程协同事务管理服务器 300。
     通过本发明实施例的上述本地事务管理服务器 100 及远程协同事务管理服务器 200, 可以实现统一的同步协作管理, 这样本地事务管理服务器就可以接管一个或多个远程 协同事务管理服务器中的远程协同事务 ( 与全局事务标识相对应的远程协同事务 )。在本 地事务管理服务器对本地事务进行操作的同时, 本地事务管理服务器能够根据设置的全局 事务标识可以对其他一个或多个远程协同事务管理服务器中对应的远程协同事务进行管 理, 例如控制这些对应的远程协同事务与该本地事务同时递交, 或者同时进行回滚操作等。
     在流程图中表示或在此以其他方式描述的逻辑和 / 或步骤, 例如, 可以被认为是 用于实现逻辑功能的可执行指令的定序列表, 可以具体实现在任何计算机可读介质中, 以 供指令执行系统、 装置或设备 ( 如基于计算机的系统、 包括处理器的系统或其他可以从指 令执行系统、 装置或设备取指令并执行指令的系统 ) 使用, 或结合这些指令执行系统、 装置 或设备而使用。就本说明书而言, “计算机可读介质” 可以是任何可以包含、 存储、 通信、 传播 或传输程序以供指令执行系统、 装置或设备或结合这些指令执行系统、 装置或设备而使用 的装置。
     计算机可读介质的更具体的示例 ( 非穷尽性列表 ) 包括以下 : 具有一个或多个布 线的电连接部 ( 电子装置 ), 便携式计算机盘盒 ( 磁装置 ), 随机存取存储器 (RAM), 只读存 储器 (ROM), 可擦除可编辑只读存储器 (EPROM 或闪速存储器 ), 光纤装置, 以及便携式光盘 只读存储器 (CDROM)。另外, 计算机可读介质甚至可以是可在其上打印所述程序的纸或其 他合适的介质, 因为可以例如通过对纸或其他介质进行光学扫描, 接着进行编辑、 解译或必要时以其他合适方式进行处理来以电子方式获得所述程序, 然后将其存储在计算机存储器 中。
     应当理解, 本发明的各部分可以用硬件、 软件、 固件或它们的组合来实现。在上述 实施方式中, 多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件 或固件来实现。例如, 如果用硬件来实现, 和在另一实施方式中一样, 可用本领域公知的下 列技术中的任一项或他们的组合来实现 : 具有用于对数据信号实现逻辑功能的逻辑门电路 的离散逻辑电路, 具有合适的组合逻辑门电路的专用集成电路, 可编程门阵列 (PGA), 现场 可编程门阵列 (FPGA) 等。
     在本说明书的描述中, 参考术语 “一个实施例” 、 “一些实施例” 、 “示例” 、 “具体示 例” 、 或 “一些示例” 等的描述意指结合该实施例或示例描述的具体特征、 结构、 材料或者特 点包含于本发明的一个或多个实施例或示例中。在本说明书中, 对上述术语的示意性表述 不一定指的是相同的实施例或示例。而且, 描述的具体特征、 结构、 材料或者特点可以在任 何的一个或多个实施例或示例中以合适的方式结合。
     尽管已经示出和描述了本发明的实施例, 本领域的普通技术人员可以理解 : 在不 脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、 修改、 替换和变型, 本 发明的范围由权利要求及其等同物限定。

多事务同步协作管理方法、系统及其装置.pdf_第1页
第1页 / 共18页
多事务同步协作管理方法、系统及其装置.pdf_第2页
第2页 / 共18页
多事务同步协作管理方法、系统及其装置.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《多事务同步协作管理方法、系统及其装置.pdf》由会员分享,可在线阅读,更多相关《多事务同步协作管理方法、系统及其装置.pdf(18页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102347986A43申请公布日20120208CN102347986ACN102347986A21申请号201110315216322申请日20111017H04L29/08200601G06F9/4620060171申请人百度在线网络技术(北京)有限公司地址100085北京市海淀区上地十街10号百度大厦三层72发明人谢马林74专利代理机构北京清亦华知识产权代理事务所普通合伙11201代理人张大威54发明名称多事务同步协作管理方法、系统及其装置57摘要本发明提出了一种多事务同步协作管理方法、系统及其装置。该方法包括建立本地事务;向一个或多个远程协同事务管理服务器发送事务开。

2、启指令,其中,所述事务开始指令之中包括全局事务标识;一个或多个远程协同事务管理服务器根据所述事务开启指令建立远程协同事务,且远程协同事务具有全局事务标识,其中,所述本地事务管理服务器根据所述全局事务标识对所述远程协同事务进行同步协作管理。本发明可以在本地事务管理服务器和一个或多个远程协同事务管理服务器之间进行统一的同步协作管理。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书10页附图4页CN102348005A1/3页21一种多事务同步协作管理方法,其特征在于,包括以下步骤本地事务管理服务器建立本地事务;所述本地事务管理服务器向一个或多个远程协同事务管理服务。

3、器发送事务开启指令,其中,所述事务开始指令之中包括全局事务标识;以及所述一个或多个远程协同事务管理服务器根据所述事务开启指令建立远程协同事务,且所述远程协同事务具有所述全局事务标识,其中,所述本地事务管理服务器根据所述全局事务标识对所述远程协同事务进行同步协作管理。2如权利要求1所述的多事务同步协作管理方法,其特征在于,所述本地事务管理服务器根据所述全局事务标识对所述远程协同事务进行同步协作管理进一步包括在对所述本地事务进行操作时,所述本地事务管理服务器根据所述全局事务标识向所述一个或多个远程协同事务管理服务器发送远程控制指令以控制相应的远程协同事务。3如权利要求1所述的多事务同步协作管理方法。

4、,其特征在于,所述本地事务管理服务器中运行有多个线程和多个本地事务,且每个本地事务均与一个线程相对应,每个线程均具有独立的全局事务标识。4如权利要求13任一项所述的多事务同步协作管理方法,其特征在于,其中,所述本地事务管理服务器中设置有远程方法调用RMI客户端,所述一个或多个远程协同事务管理服务器中均设置有RMI服务器端,所述本地事务管理服务器通过所述RMI客户端向所述一个或多个远程协同事务管理服务器的RMI服务器端发送事务远程控制指令。5如权利要求4所述的多事务同步协作管理方法,其特征在于,所述本地事务管理服务器根据全局事务标识向所述一个或多个远程协同事务管理服务器发送控制相应远程协同事务的。

5、远程控制指令进一步包括生成事务远程控制指令,并将所述事务远程控制指令发送至RMI客户端;在所述RMI客户端的调用接口对携带所述事务远程控制指令的RMI消息包进行拦截;根据所述事务远程控制指令的类型及所述本地事务所对应的线程确定全局事务标识;以及将所述全局事务标识添加至所述RMI消息包中并向所述一个或多个远程协同事务管理服务器的RMI服务器端发送。6如权利要求5所述的多事务同步协作管理方法,其特征在于,通过侵入或非侵入方式对携带所述事务远程控制指令的RMI消息包进行拦截。7如权利要求1所述的多事务同步协作管理方法,其特征在于,其中,所述多个远程协同事务管理服务器均与所述本地事务管理服务器相互通信。

6、,以构成横向协同事务管理。8如权利要求1所述的多事务同步协作管理方法,其特征在于,还包括所述一个或多个远程协同事务管理服务器在收到所述本地事务管理服务器发送的远程控制指令之后,所述一个或多个远程协同事务管理服务器进一步将所述远程控制指令转发至下一级的一个或多个远程协同事务管理服务器,以构成纵向协同事务管理。9如权利要求1所述的多事务同步协作管理方法,其特征在于,所述远程控制指令包括事务开启指令、事务提交指令和事务回滚指令。10一种多事务同步协作管理系统,其特征在于,包括本地事务管理服务器和与所述本地事务管理服务器相互通信的一个或多个远程协同事务管理服务器权利要求书CN102347986ACN1。

7、02348005A2/3页3所述本地事务管理服务器用于建立本地事务,并向所述一个或多个远程协同事务管理服务器发送事务开启指令,其中,所述事务开始指令之中包括全局事务标识;所述一个或多个远程协同事务管理服务器用于根据所述本地事务管理服务器发送的事务开启指令建立远程协同事务,且所述远程协同事务具有所述全局事务标识,其中,所述本地事务管理服务器根据所述全局事务标识对所述远程协同事务进行同步协作管理。11如权利要求10所述的多事务同步协作管理系统,其特征在于,所述本地事务管理服务器中运行有多个线程和多个本地事务,且每个本地事务均与一个线程相对应,每个线程均具有独立的全局事务标识。12如权利要求10或1。

8、1所述的多事务同步协作管理系统,其特征在于,其中,所述本地事务管理服务器具有RMI客户端,所述一个或多个远程协同事务管理服务器具有RMI服务器端,所述本地事务管理服务器通过所述RMI客户端向所述一个或多个远程协同事务管理服务器的RMI服务器端发送事务远程控制指令。13如权利要求12所述的多事务同步协作管理系统,其特征在于,所述本地事务管理服务器包括建立模块,用于建立本地事务;以及指令生成及发送模块,用于根据所述本地事务的操作生成事务远程控制指令,其中,所述事务开始指令之中包括全局事务标识,并根据所述全局事务标识向所述一个或多个远程协同事务管理服务器发送控制相应远程协同事务的远程控制指令,所述一。

9、个或多个远程协同事务管理服务器根据所述远程控制指令及所述全局事务标识对对应的远程协同事务进行操作。14如权利要求13所述的多事务同步协作管理系统,其特征在于,所述指令生成及发送模块进一步包括RMI客户端子模块,用于接收所述指令生成模块生成的事务远程控制指令,并根据所述事务远程控制指令生成对应的RMI消息包;拦截子模块,用于在所述RMI客户端模块的调用接口对携带所述事务远程控制指令的RMI消息包进行拦截;全局事务标识确定子模块,用于根据所述事务远程控制指令的类型及所述本地事务所对应的线程确定全局事务标识;以及添加子模块,用于将所述全局事务标识确定模块确定的所述全局事务标识添加至所述RMI消息包中。

10、,并通过所述RMI客户端子模块向所述一个或多个远程协同事务管理服务器的RMI服务器端发送。15如权利要求14所述的多事务同步协作管理系统,其特征在于,所述拦截模块通过侵入或非侵入方式对携带所述事务远程控制指令的RMI消息包进行拦截。16如权利要求10所述的多事务同步协作管理系统,其特征在于,其中,所述多个远程协同事务管理服务器均与所述本地事务管理服务器相互通信,以构成横向协同事务管理。17如权利要求10所述的多事务同步协作管理系统,其特征在于,所述一个或多个远程协同事务管理服务器还用于在收到所述本地事务管理服务器发送的远程控制指令之后,将所述远程控制指令转发至下一级的一个或多个远程协同事务管理。

11、服务器,以构成纵向协同事务管理。权利要求书CN102347986ACN102348005A3/3页418如权利要求10所述的多事务同步协作管理系统,其特征在于,所述远程控制指令包括事务开启指令、事务提交指令和事务回滚指令。19一种本地事务管理服务器,其特征在于,包括建立模块,用于建立本地事务;以及指令生成及发送模块,用于根据所述本地事务的操作生成事务远程控制指令,其中,所述事务开始指令之中包括全局事务标识,并根据所述全局事务标识向所述一个或多个远程协同事务管理服务器发送控制相应远程协同事务的远程控制指令,所述一个或多个远程协同事务管理服务器根据所述远程控制指令及所述全局事务标识对对应的远程协同。

12、事务进行操作。20如权利要求19所述的本地事务管理服务器,其特征在于,所述建立模块建立有多个本地事务,且每个本地事务均与一个线程相对应,每个线程均具有独立的全局事务标识。21如权利要求19或20所述的本地事务管理服务器,其特征在于,所述指令生成及发送模块进一步包括RMI客户端子模块,用于接收所述指令生成模块生成的事务远程控制指令,并根据所述事务远程控制指令生成对应的RMI消息包;拦截子模块,用于在所述RMI客户端模块的调用接口对携带所述事务远程控制指令的RMI消息包进行拦截;全局事务标识确定子模块,用于根据所述事务远程控制指令的类型及所述本地事务所对应的线程确定全局事务标识;以及添加子模块,用。

13、于将所述全局事务标识确定模块确定的所述全局事务标识添加至所述RMI消息包中,并通过所述RMI客户端子模块向所述一个或多个远程协同事务管理服务器的RMI服务器端发送。22如权利要求21所述的本地事务管理服务器,其特征在于,所述拦截模块通过侵入或非侵入方式对携带所述事务远程控制指令的RMI消息包进行拦截。23如权利要求10所述的本地事务管理服务器,其特征在于,所述远程控制指令包括事务开启指令、事务提交指令和事务回滚指令。24一种远程协同事务管理服务器,其特征在于,包括接收模块,用于接收本地事务管理服务器发送的远程控制指令;解析模块,用于从所述远程控制指令中获得对应的全局事务标识;以及控制模块,用于。

14、根据所述全局事务标识及所述远程控制指令创建远程协同事务或对已有的远程协同事务进行控制。25如权利要求24所述的远程协同事务管理服务器,其特征在于,所述接收模块为RMI服务器端,与所述本地事务管理服务器的RMI客户端相互通信。26如权利要求24所述的远程协同事务管理服务器,其特征在于,所述远程控制指令包括事务开启指令、事务提交指令和事务回滚指令。27如权利要求24所述的远程协同事务管理服务器,其特征在于,还包括转发模块,用于在收到所述本地事务管理服务器发送的远程控制指令之后,将所述远程控制指令转发至下一级的一个或多个远程协同事务管理服务器。权利要求书CN102347986ACN102348005。

15、A1/10页5多事务同步协作管理方法、系统及其装置技术领域0001本发明涉及互联网技术领域,特别地涉及一种多事务同步协作管理方法、系统及其装置。背景技术0002事务管理在应用程序中起着至关重要的作用。它是一系列任务的组成工作单元,在这个工作单元中,所有的任务必须同时执行。它们只有二种可能执行结果,要么所有任务全部执行成功,要么所有任务全部执行失败。在SPRINGFRAMEWORK中提供了丰富的事务管理功能。SPRINGFRAMEWORK是一种基于动态代理的AOPASPECTORIENTEDPROGRAMMING,面向切面编程框架,其中动态代理来自于代理设计模式。0003然而,现有技术的缺点是,。

16、多个SPRINGFRAMEWORK实例上事务不能够实现同步协作管理,例如事务的统一提交等,从而导致无法满足目前商业灵活应用的需求。发明内容0004本发明旨在至少解决现有技术中存在的技术问题之一,特别是解决目前事务不能实现同步协作管理的缺陷。0005本发明实施例第一方面提出了一种多事务同步协作管理方法,包括以下步骤本地事务管理服务器建立本地事务;所述本地事务管理服务器向一个或多个远程协同事务管理服务器发送事务开启指令,其中,所述事务开始指令之中包括全局事务标识;以及所述一个或多个远程协同事务管理服务器根据所述事务开启指令建立远程协同事务,且所述远程协同事务具有所述全局事务标识,其中,所述本地事务。

17、管理服务器根据所述全局事务标识对所述远程协同事务进行同步协作管理。0006在本发明的一个实施例中,所述本地事务管理服务器中设置有远程方法调用RMI客户端,所述一个或多个远程协同事务管理服务器中均设置有RMI服务器端,所述本地事务管理服务器通过所述RMI客户端向所述一个或多个远程协同事务管理服务器的RMI服务器端发送事务远程控制指令。0007通过本发明第一方面实施例提出的方法,可以在本地事务管理服务器和一个或多个远程协同事务管理服务器之间进行统一的同步协作管理,这样本地事务管理服务器就可以接管一个或多个远程协同事务管理服务器中的远程协同事务与全局事务标识相对应的远程协同事务,在本地事务管理服务器。

18、对本地事务进行操作的同时,根据设置的全局事务标识可以对其他一个或多个远程协同事务管理服务器中对应的远程协同事务进行管理,例如控制这些对应的远程协同事务与该本地事务同时递交,或者同时进行回滚操作等。在本发明的优选实施例中,本地事务管理服务器和一个或多个远程协同事务管理服务器之间是通过RMI的方式进行远程控制指令的传递,本发明实施例通过RMI技术可实现SPRINGFRAMEWORK事务的同步及协调管理。0008本发明实施例第二方面还提出了一种多事务同步协作管理系统,包括本地事务管说明书CN102347986ACN102348005A2/10页6理服务器和与所述本地事务管理服务器相互通信的一个或多个。

19、远程协同事务管理服务器所述本地事务管理服务器用于建立本地事务,并向所述一个或多个远程协同事务管理服务器发送事务开启指令,其中,所述事务开始指令之中包括全局事务标识;所述一个或多个远程协同事务管理服务器用于根据所述本地事务管理服务器发送的事务开启指令建立远程协同事务,且所述远程协同事务具有所述全局事务标识,其中,所述本地事务管理服务器根据所述全局事务标识对所述远程协同事务进行同步协作管理。0009在本发明的一个实施例中,所述本地事务管理服务器具有RMI客户端,所述一个或多个远程协同事务管理服务器具有RMI服务器端,所述本地事务管理服务器通过所述RMI客户端向所述一个或多个远程协同事务管理服务器的。

20、RMI服务器端发送事务远程控制指令。0010通过本发明第二方面实施例提出的系统,本地事务管理服务器和一个或多个远程协同事务管理服务器之间可以进行统一的同步协作管理,这样本地事务管理服务器就可以接管一个或多个远程协同事务管理服务器中的远程协同事务与全局事务标识相对应的远程协同事务。在本地事务管理服务器对本地事务进行操作的同时,本地事务管理服务器能够根据设置的全局事务标识可以对其他一个或多个远程协同事务管理服务器中对应的远程协同事务进行管理,例如控制这些对应的远程协同事务与该本地事务同时递交,或者同时进行回滚操作等。在本发明的优选实施例中,本地事务管理服务器和一个或多个远程协同事务管理服务器之间是。

21、通过RMI的方式进行远程控制指令的传递,本发明实施例通过RMI技术可实现SPRINGFRAMEWORK事务的同步及协调管理。0011本发明实施例第三方面还提出了一种本地事务管理服务器,包括建立模块,用于建立本地事务;以及指令生成及发送模块,用于根据所述本地事务的操作生成事务远程控制指令,其中,所述事务开始指令之中包括全局事务标识,并根据所述全局事务标识向所述一个或多个远程协同事务管理服务器发送控制相应远程协同事务的远程控制指令,所述一个或多个远程协同事务管理服务器根据所述远程控制指令及所述全局事务标识对对应的远程协同事务进行操作。0012本发明实施例的第四方面还提出了一种远程协同事务管理服务器。

22、,包括接收模块,用于接收本地事务管理服务器发送的远程控制指令;解析模块,用于从所述远程控制指令中获得对应的全局事务标识;以及控制模块,用于根据所述全局事务标识及所述远程控制指令创建远程协同事务或对已有的远程协同事务进行控制。0013通过本发明实施例的上述本地事务管理服务器及远程协同事务管理服务器,可以实现统一的同步协作管理,这样本地事务管理服务器就可以接管一个或多个远程协同事务管理服务器中的远程协同事务与全局事务标识相对应的远程协同事务。在本地事务管理服务器对本地事务进行操作的同时,本地事务管理服务器能够根据设置的全局事务标识可以对其他一个或多个远程协同事务管理服务器中对应的远程协同事务进行管。

23、理,例如控制这些对应的远程协同事务与该本地事务同时递交,或者同时进行回滚操作等。0014本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明说明书CN102347986ACN102348005A3/10页70015本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中0016图1为本发明实施例的多事务同步协作管理方法流程图;0017图2为本发明实施例通过RMI方式发送远程控制指令的流程图;0018图3为本发明实施例的横向协同事务管理示意图;0019图4为本发明实施例的纵向协同事务管理示意图;0020。

24、图5为本发明实施例的多事务同步协作管理系统结构图;和0021图6为本发明实施例的远程协同事务管理服务器结构图。具体实施方式0022下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。0023参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入。

25、所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。0024如图1所示,为本发明实施例的多事务同步协作管理方法流程图。需要说明的是,在该实施例中所述的事务为在JVMJAVAVIRTUALMACHINE,JAVA虚拟机之上的SPRINGFRAMEWORK事务,当然在本发明的其他实施例中也可为其他类型的事务。此外,在该实施例中包括本地事务管理服务器和一个或多个远程协同事务管理服务器,当然还可包括另外一些远程协同事务管理服务器在本发明的实施例中将其称为下一级的远程协同事务管理服务器,这些远程协同事务管理服务器与上述一个或多个远程协同事务管理服务器相互通信,从而构成纵向协同事务管理在后续的实施。

26、例中将对此进行详细描述。另外还需要说明的是,在实际的应用中一个事务管理服务器即可能是本地事务管理服务器,也可能是远程协同事务管理服务器,其针对事务的不同而有所变化。例如以工商银行的事务管理服务器举例来说,如果建设银行的用户从工商银行取钱,则工商银行的事务管理服务器就是本地事务管理服务器,此时建设银行的事务管理服务器就是远程协同事务管理服务器;反之,如果工商银行的用户从建设银行取钱,则建设银行的事务管理服务器就是本地事务管理服务器,而工商银行的事务管理服务器就是远程协同事务管理服务器。以上仅是举例描述,在实际的事务应用中,应用场景更为复杂,但均可采用本发明实施例的方法。具体地,该方法包括以下步骤。

27、0025步骤S101,本地事务管理服务器建立本地事务。在本发明的一个实施例中,本地事务管理服务器中可仅运行一个本地事务。在本发明通常的实施例中,本地事务管理服务器中运行有多个线程和多个本地事务,且每个本地事务均与一个线程相对应,即在一个线程之内仅保持有一个本地事务。在本发明实施例的实际应用之中在本地事务管理服务器之中可运行有多个事务,其中,多个事务中的一些需要与远程协同事务管理服务器之中的远程协同事务进行同步协同管理,在此将这些事务称之为本地事务。在本发明的实施例中,所谓的“同步协同管理”是指本地事务与远程协同事务之间同步地操作,或者按照预设的顺序说明书CN102347986ACN102348。

28、005A4/10页8进行操作,在之后的实施例中将结合横向协同事务管理及纵向协同事务管理进行详细地介绍。0026步骤S102,本地事务管理服务器向一个或多个远程协同事务管理服务器发送事务开启指令,其中,该事务开始指令之中包括全局事务标识。在本发明的实施例中,如果本地事务管理服务器中运行有多个线程,则每个线程对应有独立的全局事务标识。这样本地事务管理法服务器就可根据线程号来确定全局事务标识。在本发明的一个实施例中,该全局事务标识可为一个唯一的UUIDUNIVERSALLYUNIQUEIDENTIFIER,通用唯一识别码串。其中,UUID是一个软件建构的标准,也是被开源软件基金会OPENSOFTWA。

29、REFOUNDATION,OSF的组织在分布式计算环境DISTRIBUTEDCOMPUTINGENVIRONMENT,DCE领域的一部份。由于UUID为本领域已知的技术,因此在此不再赘述。在本发明的实施例中,全局事务标识是标记事务协同操作的唯一ID,在一次协同事务处理过程之中,全局事务标识都只有一个且唯一。因此,事务的远程控制指令也可称为协同处理命令都需要通过这个全局事务标记发起,从而一个或多个远程协同事务管理服务器才能够获知本地事务管理服务器想要对其上的哪个事务进行操作。0027在该实施例中,事务开启指令可通过多种方式发送。优选地,通过RMIREMOTEMETHODINVOCATION,远程。

30、方法调用发送事务开启指令。在以下的实施例中将对如何通过RMI发送事务开启指令及其他远程控制指令,例如事务提交指令和事务回滚指令等,以及全局事务标识的选择及添加等,进行详细描述。0028步骤S103,一个或多个远程协同事务管理服务器根据事务开启指令建立远程协同事务,且远程协同事务具有对应的全局事务标识。一个或多个远程协同事务管理服务器在收到本地事务管理服务器发送的事务开启指令之后,根据事务开启指令之中的信息建立相应的事务在此将其称为远程协同事务,将该远程协同事务与事务开启指令之中的全局事务标识相关联。这样一个或多个远程协同事务管理服务器之后如果再收到本地事务管理服务器的远程控制指令的话,就可以根。

31、据远程控制指令之中的全局事务标识获知该远程控制指令是想要对哪个事务进行操作。0029步骤S104,在本地事务管理服务器对本地事务进行操作时,例如事务提交操作或回滚操作等,本地事务管理服务器根据全局事务标识向一个或多个远程协同事务管理服务器发送控制相应远程协同事务的远程控制指令,以对本地事务与一个或多个远程协同事务管理服务器中的远程协同事务进行同步协作管理。在本发明的一个实施例中,本地事务管理服务器和一个或多个远程协同事务管理服务器之间是通过RMI的方式进行远程控制指令的传递。进一步地,本地事务管理服务器中设置有远程方法调用RMI客户端,一个或多个远程协同事务管理服务器中均设置有RMI服务器端,。

32、本地事务管理服务器通过RMI客户端向一个或多个远程协同事务管理服务器的RMI服务器端发送事务远程控制指令。如上所述的对于一个事务管理服务器来说,其可能既是本地事务管理服务器,也是远程协同事务管理服务器,因此该事务管理服务器既包括RMI客户端,也包括RMI服务器端。需要说明的是,在该步骤中优选地,可在本地事务操作之前的预设时间发送远程控制指令,从而可以使得本地事务及远程协同事务可同步进行操作,例如同步提交等。该预设时间需要根据本地事务管理服务器与远程协同事务管理服务器之间的通信时间等因素设定。在该实施例中,同时仅是相对的概念,只要在可容忍的误差范围内保证本地事务与远程协同事务递交即可。说明书CN。

33、102347986ACN102348005A5/10页9在本发明的其他实施例中,该远程控制指令中还可以包括提交时间,这样本地事务管理服务器和远程协同事务管理服务器就可在该提交时间同时提交本地事务和远程协同事务。具体地,如图2所示,为本发明实施例通过RMI方式发送远程控制指令的流程图,进一步包括以下步骤0030步骤S201,在本地事务管理服务器对本地事务进行操作时,例如事务提交操作或回滚操作等,本地事务管理服务器生成事务远程控制指令,并将所述事务远程控制指令发送至RMI客户端。0031步骤S202,在RMI客户端的调用接口对携带事务远程控制指令的RMI消息包进行拦截。在本发明的一个实施例中,如果。

34、为SPRINGFRAMEWORK事务,则可扩展SPRINGFRAMEWORK的声明式事务拦截类TRANSACTIONINTERCEPTOR,对每次事务的处理过程中,事务开启指令“CREATETRANSACTIONIFNECESSARY”,事务提交指令“COMMITTRANSACTIONAFTERRETURNING”,以及事务回滚指令“COMPLETETRANSACTIONAFTERTHROWING”进行扩展以确定事务的执行状态分为开始,提交或回滚三个状态,并且将事务的执行状态保存到线程的THREADLOCAL对象中。因此本发明实施例基于上述扩展可对RMI消息包进行拦截,具体拦截的方式可为侵入式。

35、拦截或非侵入式拦截。例如利用SPRINGFRAMEWORK的AOPASPECTORIENTEDPROGRAMMING,面向界面编程技术对每次事务的处理过程中所有涉及RMI操作的指令进行拦截,并对RMI消息包进行扩展。0032步骤S203,根据事务远程控制指令的类型及本地事务所对应的线程确定全局事务标识。具体地,如果该事务远程控制指令为事务开启指令,则根据该本地事务所对应的线程号设定全局事务标识,或者,直接为该本地事务分配一个唯一的全局事务标识,并将该全局事务标识与该本地事务对应的线程号相关联。如果该事务远程控制指令为事务提交指令或事务回滚指令等,则说明该本地事务已有对应的全局事务标识,此时本地。

36、事务管理服务器将根据该本地事务所对应的线程确定相应的全局事务标识。0033步骤S204,将全局事务标识添加至RMI消息包中并向一个或多个远程协同事务管理服务器的RMI服务器端发送。在本发明的一个实施例中,可通过动态织入的方式将上述步骤所确定的全局事务标识添加至RMI消息包中。至此,该RMI消息包中不仅包含有远程控制指令,还包含有全局事务标识。0034步骤S105,一个或多个远程协同事务管理服务器根据本地事务管理服务器发送的远程控制指令对远程协同事务进行控制。具体地,如果本地事务管理服务器与一个或多个远程协同事务管理服务器之间通过RMI的方式进行通信,则一个或多个远程协同事务管理服务器首先解析R。

37、MI数据包以获得全局事务标识。接着一个或多个远程协同事务管理服务器根据该全局事务标识确定其上的远程协同事务,最后根据该RMI数据包之中的远程控制指令对该远程协同事务进行操作,例如提交操作或回滚操作等。通常地,在本发明的实施例中,远程协同事务管理服务器中也运行有多个事务,其中部分事务为远程协同事务,即根据本地事务管理服务器的事务启动指令所创建,且具有全局事务标识。对于这样的远程协同事务,远程协同事务管理服务器将控制管理权交给本地事务管理服务器,也就是说在没有收到本地事务管理服务器的指令的情况下,远程协同事务管理服务器不对远程协同事务进行操作。因此,本发明就可实现多个SPRINGFRAMEWORK。

38、事务的同步协作管理。0035通过本发明实施例的方法,可以在本地事务管理服务器和一个或多个远程协同事说明书CN102347986ACN102348005A6/10页10务管理服务器之间进行统一的同步协作管理,这样本地事务管理服务器就可以接管一个或多个远程协同事务管理服务器中的远程协同事务与全局事务标识相对应的远程协同事务,在本地事务管理服务器对本地事务进行操作的同时,根据设置的全局事务标识可以对其他一个或多个远程协同事务管理服务器中对应的远程协同事务进行管理,例如控制这些对应的远程协同事务与该本地事务同时递交,或者同时进行回滚操作等。在本发明的优选实施例中,本地事务管理服务器和一个或多个远程协同。

39、事务管理服务器之间是通过RMI的方式进行远程控制指令的传递,本发明实施例通过RMI技术可实现SPRINGFRAMEWORK事务的同步及协调管理。0036以下分别对本发明实施例的横向协同事务管理及纵向协同事务管理进行详细介绍。0037如图3所示,为本发明实施例的横向协同事务管理示意图。其中,多个远程协同事务管理服务器均与本地事务管理服务器相互通信。横向协同事务管理是针对一个操作过程中,需要协同多个事务管理服务器的事务管理的方式。例如,用户在通过机票提供商用信用卡订购飞机票时,需要向航空公司的服务器请求出票,同时又需要向信用卡银行的服务器请求转账给航空公司,这两个需要同时操作完成后才算是一次完整的。

40、事务操作。此时,机票提供商的服务器为本地事务管理服务器,而航空公司及信用卡银行的服务器就为远程事务管理服务器。在该实施例中,本地事务管理服务器需要控制自身的本地事务,航空公司及信用卡银行的远程事务管理服务器的远程事务同时提交。0038如图4所示,为本发明实施例的纵向协同事务管理示意图。其中,一个或多个远程协同事务管理服务器在收到本地事务管理服务器发送的远程控制指令之后,还需要进一步将所述远程控制指令转发至下一级的一个或多个远程协同事务管理服务器,以构成纵向协同事务管理。其中,纵向协同事务管理是针对一个操作过程中,需要协同服务器的事务管理的方式时,可能涉及该远程协同事务管理服务器还同时需要协同其。

41、它远程协同事务管理服务器下一级的远程协同事务管理服务器的事情,从而形成了一个纵向的事务协同扩展。例如,用户在建设银行ATM自动取款机用工商银行卡进行取款时,ATM自动取款机需要远程访问建设银行的服务器请求取款服务时,此时建设银行的服务器会识别该用户的银行账户是工商银行的,这样就需要远程再访问工商银行的服务器请求取款,只有工商银行,建设银行的服务器操作成功后,ATM自动取款机才会向用户提示成功并把所取现金交给用户,整个操作过程就是一个完整的事务。此时,建设银行ATM自动取款机就为本地事务管理服务器,建设银行的服务器就为远程协同事务管理服务器,而工商银行的服务器就为下一级的远程协同事务管理服务器。。

42、此时,建设银行服务器中事件的提交需要等待工商银行服务器事件提交的结果,同样ATM自动取款机的事件提交需要等待建设银行服务器中事件的提交结果。0039还需要说明的是,在该实施例中上述“转发”应做广义理解,例如远程协同事务管理服务器可将本地事务管理服务器的远程控制指令直接转发给下一级远程协同事务管理服务器,或者,远程协同事务管理服务器也可以对远程控制指令的内容进行转换后发送。0040如图5所示,为本发明实施例的多事务同步协作管理系统结构图。该多事务同步协作管理系统包括本地事务管理服务器100和与本地事务管理服务器100相互通信的一个或多个远程协同事务管理服务器200。在本发明的其他实施例中还包括一。

43、个或多个下一级说明书CN102347986ACN102348005A7/10页11的远程协同事务管理服务器300,例如对于纵向协同事务管理的应用。其中,本地事务管理服务器100用于建立本地事务,并向一个或多个远程协同事务管理服务器发送事务开启指令,其中,事务开始指令之中包括全局事务标识,以及在对本地事务进行操作时,根据全局事务标识向一个或多个远程协同事务管理服务器200发送控制相应远程协同事务的远程控制指令。在该实施例中所述的事务为在JVMJAVAVIRTUALMACHINE,JAVA虚拟机之上的SPRINGFRAMEWORK事务,当然在本发明的其他实施例中也可为其他类型的事务。0041在本发。

44、明的一个实施例中,本地事务管理服务器100中可仅运行一个本地事务。但是在本发明通常的实施例中,本地事务管理服务器100中运行有多个线程和多个本地事务,且每个本地事务均与一个线程相对应,即在一个线程之内仅保持有一个本地事务。在本发明实施例的实际应用之中,在本地事务管理服务器100之中可运行有多个事务,其中,多个事务中的一些需要与远程协同事务管理服务器200之中的远程协同事务进行同步协同管理,在此将这些事务称之为本地事务。0042在本发明的实施例中,所谓的“同步协同管理”是指本地事务与远程协同事务之间同步地操作,或者按照预设的顺序进行操作。在本发明的实施例中,如果本地事务管理服务器100中运行有多。

45、个线程,则每个线程对应有独立的全局事务标识。这样本地事务管理法服务器100就可根据线程号来确定全局事务标识。在本发明的一个实施例中,该全局事务标识可为一个唯一的UUID串。0043在本地事务管理服务器100对本地事务进行操作时,例如事务提交操作或回滚操作等,本地事务管理服务器100根据全局事务标识向一个或多个远程协同事务管理服务器200发送控制相应远程协同事务的远程控制指令,以对本地事务与一个或多个远程协同事务管理服务器200中的远程协同事务进行同步协作管理。0044其中,一个或多个远程协同事务管理服务器200用于根据本地事务管理服务器100发送的事务开启指令建立远程协同事务,且该远程协同事务。

46、具有全局事务标识。一个或多个远程协同事务管理服务器200还用于根据本地事务管理服务器100发送的远程控制指令对远程协同事务进行控制。一个或多个远程协同事务管理服务器200收到本地事务管理服务器100发送的事务开启指令之后,根据事务开启指令之中的信息建立相应的远程协同事务,将该远程协同事务与事务开启指令之中的全局事务标识相关联。这样一个或多个远程协同事务管理服务器200之后如果再收到本地事务管理服务器100的远程控制指令的话,就可以根据远程控制指令之中的全局事务标识获知该远程控制指令是想要对哪个事务进行操作。具体地,如果本地事务管理服务器100与一个或多个远程协同事务管理服务器200之间通过RM。

47、I的方式进行通信,则一个或多个远程协同事务管理服务器200首先解析RMI数据包以获得全局事务标识。接着一个或多个远程协同事务管理服务器200根据该全局事务标识确定其上的远程协同事务,最后根据该RMI数据包之中的远程控制指令对该远程协同事务进行操作,例如提交操作或回滚操作等。通常地,在本发明的实施例中,远程协同事务管理服务器200中也运行有多个事务,其中部分事务为远程协同事务,即根据本地事务管理服务器100的事务启动指令所创建,且具有全局事务标识。对于这样的远程协同事务,远程协同事务管理服务器200将控制管理权交给本地事务管理服务器100,也就是说在没有收到本地事务管理服务器100的指令的情况下。

48、,远程协同事务管理服务器200不对远程协同事务进行操作。因此,本发明就可实现多个SPRINGFRAMEWORK事务的同步协作管说明书CN102347986ACN102348005A8/10页12理。0045在本发明的一个实施例中,本地事务管理服务器100和一个或多个远程协同事务管理服务器200之间是通过RMI的方式进行远程控制指令的传递。进一步地,本地事务管理服务器100具有RMI客户端,一个或多个远程协同事务管理服务器200具有RMI服务器端,本地事务管理服务器100通过RMI客户端向一个或多个远程协同事务管理服务器200的RMI服务器端发送事务远程控制指令。0046进一步地,本地事务管理服。

49、务器100包括建立模块110和指令生成及发送模块120。建立模块110用于建立本地事务。指令生成及发送模块120用于根据本地事务的操作生成事务远程控制指令,其中,事务开始指令之中包括全局事务标识。且指令生成及发送模块120还用于根据全局事务标识向一个或多个远程协同事务管理服务器200发送控制相应远程协同事务的远程控制指令,一个或多个远程协同事务管理服务器200根据远程控制指令及全局事务标识对对应的远程协同事务进行操作。0047更进一步地,指令生成及发送模块120进一步包括RMI客户端子模块121、拦截子模块122、全局事务标识确定子模块123、添加子模块124。其中,RMI客户端子模块121用。

50、于接收指令生成模块110生成的事务远程控制指令,例如事务提交操作或回滚操作等,并根据事务远程控制指令生成对应的RMI消息包。在本发明的一个实施例中,拦截子模块122用于在RMI客户端模块121的调用接口对携带事务远程控制指令的RMI消息包进行拦截。在本发明的一个实施例中,如果为SPRINGFRAMEWORK事务,则可扩展SPRINGFRAMEWORK的声明式事务拦截类TRANSACTIONINTERCEPTOR,对每次事务的处理过程中,事务开启指令“CREATETRANSACTIONIFNECESSARY”,事务提交指令“COMMITTRANSACTIONAFTERRETURNING”,以及事。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1