《多事务同步协作管理方法、系统及其装置.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”,以及事。