CN110471746B - 一种分布式事务回调方法、装置及系统 - Google Patents

一种分布式事务回调方法、装置及系统 Download PDF

Info

Publication number
CN110471746B
CN110471746B CN201910778869.1A CN201910778869A CN110471746B CN 110471746 B CN110471746 B CN 110471746B CN 201910778869 A CN201910778869 A CN 201910778869A CN 110471746 B CN110471746 B CN 110471746B
Authority
CN
China
Prior art keywords
callback
transaction
service system
interface
distributed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910778869.1A
Other languages
English (en)
Other versions
CN110471746A (zh
Inventor
滕达
隋臣
王宇轩
曹辉健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201910778869.1A priority Critical patent/CN110471746B/zh
Publication of CN110471746A publication Critical patent/CN110471746A/zh
Application granted granted Critical
Publication of CN110471746B publication Critical patent/CN110471746B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例公开了一种分布式事务回调方法、装置及系统,所述方法包括当业务系统确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;事务协调系统调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;事务协调系统向业务系统发送所述实例名以及回调参数数据;业务系统的回调接口基于所述实例名以及回调参数数据确定所述待回调事务的回调方法,所述回调接口中预先配置有所述业务系统的回调实例;业务系统根据所述回调方法执行回调处理。利用本说明书各个实施例,可以进一步提高分布式事务回调操作执行的简便性以及高效性。

Description

一种分布式事务回调方法、装置及系统
技术领域
本发明涉及计算机数据处理技术领域,特别地,涉及一种分布式事务回调方法、装置及系统。
背景技术
在分布式事务系统中,对于如TCC、SAGA模型的分布式事务,一般都存在一套分布式事务协调系统,通过该协调系统对于需要CONFIRM和CANCEL的业务系统发起回调。一般对于事务协调系统的回调,每个业务都需要定义自身的回调接口,而且业务人员必须深入理解事务协调系统回调接口的实现机制和注册机制,才能实现分布式事务系统的接入。
发明内容
本说明书实施例的目的在于提供一种分布式事务回调方法、装置及系统,可以降低分布式事务回调操作的复杂度,提高分布式事务回调操作执行的简便性以及高效性。
本说明书提供一种分布式事务回调方法、装置及系统是包括如下方式实现的:
一种分布式事务回调方法,包括:
当业务系统确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;
事务协调系统调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;
事务协调系统向业务系统发送所述实例名以及回调参数数据;
业务系统的回调接口基于所述实例名以及回调参数数据确定所述待回调事务的回调方法,所述回调接口中预先配置有所述业务系统的回调实例;
业务系统根据确定的回调方法执行回调处理。
另一方面,本说明书实施例还提供一种分布式事务回调方法,包括:
当确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;
接收事务协调系统反馈的所述事务标识所对应的事务回调方法的实例名以及回调参数数据;
获取回调接口基于所述实例名以及回调参数数据确定的所述待回调事务的回调方法,所述回调接口中预先配置有业务系统的回调实例;
根据确定的回调方法执行回调处理。
本说明书所述的方法的另一个实施例中,所述回调接口采用下述方式预先配置:
根据事务标识所对应的配置文件以及配置参数在回调接口中配置事务回调所对应的回调实例。
另一方面,本说明书实施例还提供一种分布式事务回调装置,包括:
回调请求发送模块,用于当确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;
数据接收模块,用于接收事务协调系统反馈的所述事务标识所对应的事务回调方法的实例名以及回调参数数据;
数据获取模块,用于获取回调接口基于所述实例名以及回调参数数据确定的所述待回调事务的回调方法,所述回调接口中预先配置有业务系统的回调实例;
事务回调执行模块,用于根据确定的回调方法执行回调处理。
本说明书所述的装置的另一个实施例中,所述装置还包括:
实例配置模块,用于根据事务标识所对应的配置文件以及配置参数在回调接口中配置事务回调所对应的回调实例。
另一方面,本说明书实施例还提供一种分布式事务回调设备,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
当确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;
接收事务协调系统反馈的所述事务标识所对应的事务回调方法的实例名以及回调参数数据;
获取回调接口基于所述实例名以及回调参数数据确定的所述待回调事务的回调方法,所述回调接口中预先配置有业务系统的回调实例;
根据确定的回调方法执行回调处理。
另一方面,本说明书实施例还提供一种分布式事务回调方法,包括:
接收业务系统发送的回调请求,所述回调请求包括待回调事务的事务标识;
调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;
向业务系统发送所述实例名以及回调参数数据,以使业务系统根据确定的回调方法执行回调处理,所述回调方法由业务系统的回调接口基于所述实例名以及回调参数数据确定,所述回调接口中预先配置有所述业务系统的回调实例。
另一方面,本说明书实施例还提供一种分布式事务回调装置,所述装置包括:
接收模块,用于接收业务系统发送的回调请求,所述回调请求包括待回调事务的事务标识;
调取模块,用于调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;
发送模块,用于向业务系统发送所述实例名以及回调参数数据,以使业务系统根据确定的回调方法执行回调处理,所述回调方法由业务系统的回调接口基于所述实例名以及回调参数数据确定,所述回调接口中预先配置有所述业务系统的回调实例。
另一方面,本说明书实施例还提供一种分布式事务回调设备,包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
接收业务系统发送的回调请求,所述回调请求包括待回调事务的事务标识;
调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;
向业务系统发送所述实例名以及回调参数数据,以使业务系统根据确定的回调方法执行回调处理,所述回调方法由业务系统的回调接口基于所述实例名以及回调参数数据确定,所述回调接口中预先配置有所述业务系统的回调实例。
另一方面,本说明书实施例还提供一种分布式事务回调系统,所述系统包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个实施例所述方法的步骤。
本说明书一个或多个实施例提供的分布式事务回调方法、装置及系统,通过在单一调用接口预先配置回调实例,并在事务记录时,将回调实例名及参数发生给事务协调系统存储。然后,在实际应用场景中,需要执行事务回调时,根据事务ID获取回调实例名及参数,进而利用单一回调接口来确定回调所需的实例数据,以进行事务回调处理。可以避免不同业务场景注册不同的业务回调接口,降低分布式事务回调操作的复杂度,提高分布式事务回调操作执行的简便性以及高效性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本说明书提供的一种分布式事务回调方法实施例的流程示意图;
图2为本说明书提供的一个实施例中的分布式事务回调方法流程示意图;
图3为本说明书提供的另一个实施例中的分布式事务回调方法流程示意图;
图4为本说明书提供的一种分布式事务回调装置实施例的模块结构示意图;
图5为本说明书提供的另一个实施例中的分布式事务回调方法流程示意图;
图6为根据本说明书的一个示例性实施例的服务器的示意结构;
图7为本说明书提供的一个实施例中的分布式事务回调系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是说明书一部分实施例,而不是全部的实施例。基于说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例方案保护的范围。
在分布式事务系统中,对于如TCC、SAGA模型的分布式事务,一般都存在一套分布式事务协调系统,通过该协调系统对于需要CONFIRM和CANCEL的业务系统发起回调。一般对于事务协调系统的回调,每个业务都需要定义自身的回调接口,而且业务人员必须深入理解事务协调系统回调接口的实现机制和注册机制,才能实现分布式事务系统的接入。本说明书实施例中,可以通过利用预先配置的单一回调接口实现业务的回调处理,避免不同业务场景注册不同的业务回调接口,降低分布式事务回调操作的复杂度,提高分布式事务回调操作执行的简便性以及高效性。
图1是本说明书提供的所述一种分布式事务回调方法实施例流程示意图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者部分合并后更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例或附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置、服务器或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境、甚至包括分布式处理、服务器集群的实施环境)。
具体的一个实施例如图1所示,本说明书提供的分布式事务回调方法的一个实施例中,所述方法可以包括:
S0:当业务系统确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识。
所述业务系统可以包括执行分布式事务具体事务操作的业务应用服务器运行系统。所述事务协调系统可以包括用于协调分布式事务各子事务运行的系统。一个分布式事务通常可以包括多个子事务,当各子事务均成功时,则该分布式事务成功;否则,分布式事务失败,需要对执行成功的子事务执行回调操作。事务协调系统可以用于协调分布式事务各子事务的运行,以保证各子事务最终运行的一致性,要么同时成功,要么失败。
例如,买家在电商平台下单,往往会涉及到两个动作,一个是扣库存,第二个是更新订单状态,库存和订单一般属于不同的数据库,可以采用分布式事务的方式来保证处理的一致性。一次交易订单对应的分布式事务可以作为一个分布式事务,而扣库存和更新订单状态则分属于两个不同的子事务,当两个子事务均执行成功时,则该分布式事务才执行成功,若其中一个子事务失败,则分布式事务失败。
分布式事务所包含的子事务都已经在业务系统侧执行成功后,事务协调系统会收到业务系统发送的提交本次分布式事务的请求;但当分布式事务所包含的子事务中存在至少一个子事务执行失败,事务协调系统则会收到业务系统发送的回调本次分布式事务的回调请求,以对已经执行成功的各子事务进行回调操作,使得各子事务对应的数据恢复到相应子事务执行前的状态。
当确定至少一个子事务执行失败时,业务系统可以确定事务待回调,然后,可以向事务协调系统发送回调请求。所述回调请求中可以包括待回调事务的事务标识(事务ID)。当开启分布式事务时,业务系统可向事务协调系统发送开启本次分布式事务的请求,并从事务协调系统获取本次分布式事务对应的事务标识。一些实施方式中,业务系统欲发起一个分布式事务,可以先向事务协调系统声明开启分布式事务,然后从事务协调系统获取分布式事务的事务ID,以在整个分布式事务操作中,对本次分布式事务进行标识。
S2:事务协调系统调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据。
所述事务链路数据可以包括该事务ID在事务协调系统中已存储的事务记录数据。所述事务记录数据可以包括事务标识、子事务标识、事务执行状态以及事务回调方法的实例名、回调参数数据等数据。所述实例名可以为事务回调时所执行的各实例的标识。所述实例可以包括根据类创建出来的一个个具体的对象,为计算机内存中处于运行状态的数据库程序,以用于实现特定的功能。所述回调参数数据为事务回调所对应的实例运行时所需的参数数据。
业务系统可以预先根据配置注解和配置文件,确定分布式事务中各子事务回调时所对应的实例名以及回调参数数据。子事务向事务协调系统发送事务记录时,业务系统可以同时将相应子事务对应的回调方法的实例名以及回调参数数据利用事务ID进标识后,发送给事务协调系统进行存储。
当事务协调系统接收到回调请求时,可以根据回调请求中的事务ID获取待回调分布式事务的事务链路数据,从而获得待回调事务的实例名以及回调参数数据。
S4:事务协调系统向业务系统发送所述实例名以及回调参数数据。
S6:业务系统的回调接口基于所述实例名以及回调参数数据确定所述待回调事务的回调方法。
所述回调接口中可以预先配置有业务系统所对应的回调方法的实例数据。业务系统可以根据配置文件以及配置参数,预先在自身内存里面注册分布式事务所对应的所有回调方法的实例数据。在回调实例注册完成后,启动统一回调接口,相应的,该回调接口中可以保存有业务应用的所有回调方法的实例数据。
在实际分布式事务处理过程中,业务系统可以利用该统一回调接口执行回调操作。业务系统在收到事务协调系统反馈的实例名以及回调参数数据后,回调接口可以利用实例名确定需要调用的实例,然后,再将回调参数数据赋值给相应的实例,获得该待回调事务的回调方法的各实例数据,从而获得最终的回调方法。
S8:业务系统根据确定的回调方法执行回调处理。
业务系统运行回调方法的各实例数据,实现待回调事务的事务回调处理,使得各子事务对应的数据恢复到相应子事务执行前的状态,完成事务补偿,保证分布式事务整体的一致性。
通过在单一调用接口预先配置回调实例,并在事务记录时,将回调实例名及参数发生给事务协调系统存储。然后,在实际应用场景中,需要执行事务回调时,根据事务ID获取回调实例名及参数,进而利用单一回调接口来确定回调所需的实例数据,以进行事务回调处理。可以避免不同业务场景注册不同的业务回调接口,降低分布式事务回调操作的复杂度,提高分布式事务回调操作执行的简便性以及高效性。
图2表示本说明书提供的一种分布式事务回调方法的流程图。如图2所示,本说明书的一个或者多个实施例中,还提供一种分布式事务回调方法,应用于业务系统,所述方法可以包括:
S202:当确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;
S204:接收事务协调系统反馈的所述事务标识所对应的事务回调方法的实例名以及回调参数数据;
S206:获取回调接口基于所述实例名以及回调参数数据确定的所述待回调事务的回调方法,所述回调接口中预先配置有业务系统的回调实例;
S208:根据确定的回调方法执行回调处理。
优选的,本说明书的另一个实施例中,所述回调接口可以采用下述方式预先配置:
根据事务标识所对应的配置文件以及配置参数在回调接口中配置事务回调所对应的回调实例。
图3表示本说明书提供的一种分布式事务回调方法的流程图。如图3所示,本说明书的一个或者多个实施例中,还提供一种分布式事务回调方法,应用于事务协调系统,所述方法可以包括:
S302:接收业务系统发送的回调请求,所述回调请求包括待回调事务的事务标识;
S304:调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;
S306:向业务系统发送所述实例名以及回调参数数据,以使业务系统根据确定的回调方法执行回调处理,所述回调方法由业务系统的回调接口基于所述实例名以及回调参数数据确定,所述回调接口中预先配置有所述业务系统的回调实例。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书一个或多个实施例提供的分布式事务回调方法,可以利用预先配置的单一回调接口实现业务的回调处理,避免不同业务场景注册不同的业务回调接口,降低分布式事务回调操作的复杂度,提高分布式事务回调操作执行的简便性以及高效性。
基于上述所述的分布式事务回调方法,本说明书一个或多个实施例还提供一种分布式事务回调装置。所述的装置可以包括使用了本说明书实施例所述方法的系统、软件(应用)、模块、组件、服务器等并结合必要的实施硬件的装置。具体的,图4表示说明书提供的一种分布式事务回调装置实施例的模块结构示意图。如图4所示,本说明书一个或者多个实施例中提供一种分布式事务回调装置,应用于业务系统,所述装置可以包括:
回调请求发送模块402,可以用于当确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;
数据接收模块404,可以用于接收事务协调系统反馈的所述事务标识所对应的事务回调方法的实例名以及回调参数数据;
数据获取模块406,可以用于获取回调接口基于所述实例名以及回调参数数据确定的所述待回调事务的回调方法,所述回调接口中预先配置有业务系统的回调实例;
事务回调执行模块408,可以用于根据确定的回调方法执行回调处理。
优选的,本说明书的另一个实施例中,所述装置还可以包括:
实例配置模块,可以用于根据事务标识所对应的配置文件以及配置参数在回调接口中配置事务回调所对应的回调实例。
图5表示说明书提供的一种分布式事务回调装置实施例的模块结构示意图。如图5所示,本说明书一个或者多个实施例中提供一种分布式事务回调装置,应用于事务协调系统,所述装置可以包括:
接收模块502,可以用于接收业务系统发送的回调请求,所述回调请求包括待回调事务的事务标识;
调取模块504,可以用于调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;
发送模块506,可以用于向业务系统发送所述实例名以及回调参数数据,以使业务系统根据确定的回调方法执行回调处理,所述回调方法由业务系统的回调接口基于所述实例名以及回调参数数据确定,所述回调接口中预先配置有所述业务系统的回调实例。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书一个或多个实施例提供的分布式事务回调装置,可以利用预先配置的单一回调接口实现业务的回调处理,避免不同业务场景注册不同的业务回调接口,降低分布式事务回调操作的复杂度,提高分布式事务回调操作执行的简便性以及高效性。
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。本说明书一个或者多个实施例中还提供一种分布式事务回调设备,应用于业务系统,可以包括处理器及存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
当确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;
接收事务协调系统反馈的所述事务标识所对应的事务回调方法的实例名以及回调参数数据;
获取回调接口基于所述实例名以及回调参数数据确定的所述待回调事务的回调方法,所述回调接口中预先配置有业务系统的回调实例;
根据确定的回调方法执行回调处理。
本说明书一个或者多个实施例中还提供一种分布式事务回调设备,应用于事务协调系统,可以包括处理器及存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
接收业务系统发送的回调请求,所述回调请求包括待回调事务的事务标识;
调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;
向业务系统发送所述实例名以及回调参数数据,以使业务系统根据确定的回调方法执行回调处理,所述回调方法由业务系统的回调接口基于所述实例名以及回调参数数据确定,所述回调接口中预先配置有所述业务系统的回调实例。
本说明书实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图6是应用本说明书实施例的消息推送服务器的硬件结构框图。如图6所示,服务器10可以包括一个或多个(图中仅示出一个)处理器20(处理器20可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器30、以及用于通信功能的传输模块40。本邻域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图6中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、GPU,或者具有与图6所示不同的配置。
存储器30可用于存储应用软件的软件程序以及模块,如本发明实施例中的搜索方法对应的程序指令/模块,处理器20通过运行存储在存储器30内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器30可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器30可进一步包括相对于处理器20远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块40用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块40包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块40可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
需要说明的,上述所述的设备根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
上述实施例所述的分布式事务回调设备,可以利用预先配置的单一回调接口实现业务的回调处理,避免不同业务场景注册不同的业务回调接口,降低分布式事务回调操作的复杂度,提高分布式事务回调操作执行的简便性以及高效性。
本说明书还提供一种分布式事务回调系统,所述系统可以为单独的分布式事务回调系统,也可以应用在多种计算机数据处理系统中。所述的系统可以为单独的服务器,也可以包括使用了本说明书的一个或多个所述方法或一个或多个实施例装置的服务器集群、系统(包括分布式系统)、软件(应用)、实际操作装置、逻辑门电路装置、量子计算机等并结合必要的实施硬件的终端装置。所述分布式事务回调系统可以包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现上述任意一个或者多个实施例中所述方法的步骤。
图7表示本说明书提供的一个实施例中的分布式事务回调系统的结构示意图。如图7所示,所述回调系统可以包括业务系统以及事务协调系统,所述业务系统端还可以包括事务客户端,所述事务客户端中可以包括统一的调用接口。
业务系统可以在开启分布式事务后,在业务系统保存分布式事务标识,并根据配置注解和配置文件,在自身内存里面注册所有需要回调的方法的实例。
在回调实例注册完成后,可以启动统一回调接口,该调用接口保存了该业务应用所有回调实例。
在发生分布式事务的某子事务交易后,业务系统可以在发送事务记录时,把本次子事务交易对应的事务标识、实例名以及调用参数一起发送到事务协调系统储存。
当确定分布式事务需要回调时,业务系统向事务协调系统发送回调请求,回调请求中包括事务标识。
业务系统收到事务协调系统反馈的实例名和调用参数后,利用调用接口确定回调方法,实施业务回调。
所述事务回调系统可以执行如下操作:
接收器模块可以接收业务系统基于RPC(Remote Procedure Call,远程过程调用)发送的包含事务标识、实例名以及调用参数数据的事务记录,并持久化到后端数据库,以及,接收待回调事务的事务ID,发送到消息系统(MQ)。
控制器模块可以消费消息系统的事务ID,并根据事务ID将事务链路数据反馈给业务系统,以使得业务系统执行回调操作,完成事务补偿。
扫描查询模块可以扫描数据库,根据事务ID查询待回调事务的事务链路数据,同时,还可以定期扫描数据库,查看事务记录中是否存在异常的事务,如果存在,则反馈给MQ以进行处理。
需要说明的,上述所述的系统根据方法或者装置实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
上述实施例所述的分布式事务回调系统,可以利用预先配置的单一回调接口实现业务的回调处理,避免不同业务场景注册不同的业务回调接口,降低分布式事务回调操作的复杂度,提高分布式事务回调操作执行的简便性以及高效性。
需要说明的是,本说明书上述所述的装置或者系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照方法实施例的描述,在此不作一一赘述。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类、存储介质+程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书实施例并不局限于必须是符合标准数据模型/模板或本说明书实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书的可选实施方案范围之内。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述并不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种分布式事务回调方法,其特征在于,包括:
当业务系统确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;所述事务标识是指对分布式事务进行标识的信息,所述分布式事务包括两个以上的子事务;
事务协调系统调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;
事务协调系统向业务系统发送所述实例名以及回调参数数据;
业务系统的回调接口基于所述实例名以及回调参数数据确定所述待回调事务的回调方法,所述回调接口中预先配置有所述业务系统中所有回调方法的实例数据;
业务系统根据确定的回调方法执行回调处理。
2.一种分布式事务回调方法,其特征在于,应用于业务系统,所述业务系统中配置有单一调用接口,回调接口中预先配置有所述业务系统中所有回调方法的实例数据,包括:
当确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;所述事务标识是指对分布式事务进行标识的信息,所述分布式事务包括两个以上的子事务;
接收事务协调系统反馈的所述事务标识所对应的事务回调方法的实例名以及回调参数数据;
获取所述回调接口基于所述实例名以及回调参数数据确定的所述待回调事务的回调方法;
根据确定的回调方法执行回调处理。
3.根据权利要求2所述的方法,其特征在于,所述回调接口采用下述方式预先配置:
根据事务标识所对应的配置文件以及配置参数在回调接口中配置事务回调所对应的回调实例。
4.一种分布式事务回调装置,其特征在于,应用于业务系统,所述业务系统中配置有单一调用接口,回调接口中预先配置有所述业务系统中所有回调方法的实例数据,包括:
回调请求发送模块,用于当确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;所述事务标识是指对分布式事务进行标识的信息,所述分布式事务包括两个以上的子事务;
数据接收模块,用于接收事务协调系统反馈的所述事务标识所对应的事务回调方法的实例名以及回调参数数据;
数据获取模块,用于获取回调接口基于所述实例名以及回调参数数据确定的所述待回调事务的回调方法;
事务回调执行模块,用于根据确定的回调方法执行回调处理。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
实例配置模块,用于根据事务标识所对应的配置文件以及配置参数在回调接口中配置事务回调所对应的回调实例。
6.一种分布式事务回调设备,其特征在于,应用于业务系统,所述业务系统中配置有单一调用接口,回调接口中预先配置有所述业务系统中所有回调方法的实例数据;所述设备包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
当确定事务待回调时,向事务协调系统发送回调请求,所述回调请求包括待回调事务的事务标识;所述事务标识是指对分布式事务进行标识的信息,所述分布式事务包括两个以上的子事务;
接收事务协调系统反馈的所述事务标识所对应的事务回调方法的实例名以及回调参数数据;
获取回调接口基于所述实例名以及回调参数数据确定的所述待回调事务的回调方法;
根据确定的回调方法执行回调处理。
7.一种分布式事务回调方法,其特征在于,应用于事务协调系统,包括:
接收业务系统发送的回调请求,所述回调请求包括待回调事务的事务标识;所述业务系统中配置有单一调用接口,回调接口中预先配置有所述业务系统中所有回调方法的实例数据;所述事务标识是指对分布式事务进行标识的信息,所述分布式事务包括两个以上的子事务;
调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;
向业务系统发送所述实例名以及回调参数数据,以使业务系统根据确定的回调方法执行回调处理,所述回调方法由业务系统的回调接口基于所述实例名以及回调参数数据确定。
8.一种分布式事务回调装置,其特征在于,应用于事务协调系统,所述装置包括:
接收模块,用于接收业务系统发送的回调请求,所述回调请求包括待回调事务的事务标识;所述业务系统中配置有单一调用接口,回调接口中预先配置有所述业务系统中所有回调方法的实例数据;所述事务标识是指对分布式事务进行标识的信息,所述分布式事务包括两个以上的子事务;
调取模块,用于调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;
发送模块,用于向业务系统发送所述实例名以及回调参数数据,以使业务系统根据确定的回调方法执行回调处理,所述回调方法由业务系统的回调接口基于所述实例名以及回调参数数据确定。
9.一种分布式事务回调设备,其特征在于,应用于事务协调系统,所述设备包括处理器及用于存储处理器可执行指令的存储器,所述指令被所述处理器执行时实现包括以下步骤:
接收业务系统发送的回调请求,所述回调请求包括待回调事务的事务标识;所述业务系统中配置有单一调用接口,回调接口中预先配置有所述业务系统中所有回调方法的实例数据;所述事务标识是指对分布式事务进行标识的信息,所述分布式事务包括两个以上的子事务;
调取所述事务标识对应的事务链路数据,所述事务链路数据包括事务回调方法的实例名以及回调参数数据;
向业务系统发送所述实例名以及回调参数数据,以使业务系统根据确定的回调方法执行回调处理,所述回调方法由业务系统的回调接口基于所述实例名以及回调参数数据确定,所述回调接口中预先配置有所述业务系统的回调实例。
10.一种分布式事务回调系统,其特征在于,所述系统包括至少一个处理器以及存储计算机可执行指令的存储器,所述处理器执行所述指令时实现所述权利要求1-3、7任一项所述方法的步骤。
CN201910778869.1A 2019-08-22 2019-08-22 一种分布式事务回调方法、装置及系统 Active CN110471746B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910778869.1A CN110471746B (zh) 2019-08-22 2019-08-22 一种分布式事务回调方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910778869.1A CN110471746B (zh) 2019-08-22 2019-08-22 一种分布式事务回调方法、装置及系统

Publications (2)

Publication Number Publication Date
CN110471746A CN110471746A (zh) 2019-11-19
CN110471746B true CN110471746B (zh) 2022-04-19

Family

ID=68512812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910778869.1A Active CN110471746B (zh) 2019-08-22 2019-08-22 一种分布式事务回调方法、装置及系统

Country Status (1)

Country Link
CN (1) CN110471746B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110995803B (zh) * 2019-11-22 2022-04-19 用友网络科技股份有限公司 上、下游业务处理方法及系统、计算机可读存储介质
CN111756649A (zh) * 2020-05-29 2020-10-09 浪潮电子信息产业股份有限公司 一种数据传输方法、装置、设备及计算机可读存储介质
CN112559140B (zh) * 2020-12-17 2022-07-26 江苏满运物流信息有限公司 数据一致性的事务控制方法、系统、设备及存储介质
CN112612551A (zh) * 2020-12-31 2021-04-06 中国农业银行股份有限公司 一种分布式事务的管理方法、装置、设备、介质及产品
CN113051182B (zh) * 2021-04-30 2024-02-09 中国工商银行股份有限公司 一种基于分布式事务的灰度发布方法、装置及设备
CN113438206B (zh) * 2021-06-02 2022-08-16 中科海微(北京)科技有限公司 分布式事件驱动的物联网运行时系统、方法、终端及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262674A (zh) * 2011-08-11 2011-11-30 大唐移动通信设备有限公司 一种分布式内存数据库的数据同步方法及系统
CN105786594A (zh) * 2016-02-25 2016-07-20 北京小米移动软件有限公司 分布式事务处理方法、装置及系统
CN108446167A (zh) * 2018-02-09 2018-08-24 烽火通信科技股份有限公司 一种分布式事务处理方法及系统
CN109542964A (zh) * 2018-11-06 2019-03-29 用友网络科技股份有限公司 一种数据调用方法及数据调用系统
CN110012008A (zh) * 2019-04-02 2019-07-12 山东国子软件股份有限公司 基于http协议的异构数据源分布式协调一致性方法及系统
CN110019112A (zh) * 2017-08-25 2019-07-16 阿里巴巴集团控股有限公司 数据事务处理方法、装置以及电子设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2409544A (en) * 2003-12-24 2005-06-29 Ibm Involving participants in a distributed transaction
US7774565B2 (en) * 2005-12-21 2010-08-10 Emc Israel Development Center, Ltd. Methods and apparatus for point in time data access and recovery
US9582314B2 (en) * 2009-09-25 2017-02-28 International Business Machines Corporation Managing data consistency between loosely coupled components in a distributed computing system
CN101763283A (zh) * 2010-01-26 2010-06-30 上海交通大学 网格环境下的补偿事务自动产生方法
US9417906B2 (en) * 2010-04-01 2016-08-16 Red Hat, Inc. Transaction participant registration with caveats
US9542220B2 (en) * 2014-04-28 2017-01-10 Oracle International Corporation System and method for supporting resource manager (RM) instance awareness in a transactional environment
CN106446300A (zh) * 2016-12-01 2017-02-22 郑州云海信息技术有限公司 一种基于共享存储池的事务处理方法及系统
CN106775959B (zh) * 2016-12-06 2017-12-22 上海壹账通金融科技有限公司 分布式事务处理方法和系统
CN109426552A (zh) * 2017-09-05 2019-03-05 阿里巴巴集团控股有限公司 事务处理方法、装置和系统以及电子设备
CN110019443B (zh) * 2017-09-08 2023-08-11 阿里巴巴集团控股有限公司 非关系型数据库事务处理方法、装置及电子设备
CN109684045B (zh) * 2017-10-18 2023-04-28 阿里巴巴集团控股有限公司 事务消息的处理方法、装置及电子设备
CN107908494B (zh) * 2017-11-10 2021-05-07 泰康保险集团股份有限公司 异常事件的处理方法、装置、电子设备及存储介质
CN109245941B (zh) * 2018-10-15 2022-05-31 传化智联股份有限公司 一种服务补偿方法及装置
CN109933412B (zh) * 2019-01-28 2021-02-23 武汉慧联无限科技有限公司 基于分布式消息中间件的分布式事务处理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262674A (zh) * 2011-08-11 2011-11-30 大唐移动通信设备有限公司 一种分布式内存数据库的数据同步方法及系统
CN105786594A (zh) * 2016-02-25 2016-07-20 北京小米移动软件有限公司 分布式事务处理方法、装置及系统
CN110019112A (zh) * 2017-08-25 2019-07-16 阿里巴巴集团控股有限公司 数据事务处理方法、装置以及电子设备
CN108446167A (zh) * 2018-02-09 2018-08-24 烽火通信科技股份有限公司 一种分布式事务处理方法及系统
CN109542964A (zh) * 2018-11-06 2019-03-29 用友网络科技股份有限公司 一种数据调用方法及数据调用系统
CN110012008A (zh) * 2019-04-02 2019-07-12 山东国子软件股份有限公司 基于http协议的异构数据源分布式协调一致性方法及系统

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Automatic Generation of Software/Hardware Co-Emulation Interface for;Young-Il Kim等;《2005 IEEE VLSI-TSA International Symposium on VLSI Design, Automation and Test, 2005. (VLSI-TSA-DAT)》;IEEE;20050829;第196-199页 *
分布式事务管理模型的性能改进技术研究;林克明等;《计算机应用与软件》;20101115(第11期);第191-194页 *
分布式数据库中间件server层的设计与实现;宿方文;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;中国学术期刊(光盘版)电子杂志社;20150215(第2期);I138-640 *
基于WS-C/T协议的Web服务业务事务处理研究与实现;何演等;《计算机技术与发展》;20110410(第04期);第90-97页 *
支付系统中间件应用研究;索燕;《金融科技时代》;20131210(第12期);第95-97页 *

Also Published As

Publication number Publication date
CN110471746A (zh) 2019-11-19

Similar Documents

Publication Publication Date Title
CN110471746B (zh) 一种分布式事务回调方法、装置及系统
CN107015853B (zh) 多阶段任务的实现方法和装置
CN107016029B (zh) 一种业务数据的处理方法、装置及系统
CN108280150B (zh) 一种分布式异步业务分发方法及系统
CN111897633A (zh) 一种任务处理的方法和装置
CN110765165B (zh) 一种跨系统数据同步处理的方法、装置及系统
CN110825807B (zh) 基于人工智能的数据交互转换方法、装置、设备及介质
CN107133233B (zh) 一种配置数据查询的处理方法及装置
CN111784318A (zh) 数据处理方法、装置、电子设备及存储介质
CN113094125A (zh) 业务流程处理方法、装置、服务器及存储介质
CN111176641A (zh) 流程节点执行方法、装置、介质及电子设备
CN116048609A (zh) 配置文件更新方法、装置、计算机设备和存储介质
CN110609707A (zh) 在线数据处理系统生成方法、装置及设备
CN111159311B (zh) 一种数据映射集成的方法、装置、设备及存储介质
CN111061576B (zh) 一种实体对象的创建方法及系统
CN113934552A (zh) 功能代码的确定方法及装置、存储介质、电子装置
CN109901933B (zh) 业务系统的操作方法及装置、存储介质、电子装置
CN113902415A (zh) 财务数据核对方法、装置、计算机设备和存储介质
CN114116908A (zh) 一种数据管理方法、装置及电子设备
CN116010126B (zh) 一种服务聚合方法、装置及系统
CN112769688B (zh) 协议栈适配的方法、装置、电子设备及存储介质
CN112311833B (zh) 数据更新方法和装置
CN112330304A (zh) 一种合同审批方法和装置
CN114936226A (zh) 报文关联方法、关联报文查询方法、装置、设备及介质
CN114398437A (zh) 用户信息处理方法、装置、电子设备和计算机可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant