掌桥专利:专业的专利平台
掌桥专利
首页

一种业务处理方法、装置及设备

文献发布时间:2023-06-19 10:54:12


一种业务处理方法、装置及设备

技术领域

本说明书实施例涉及大数据技术领域,特别涉及一种业务处理方法、装置及设备。

背景技术

随着社会的进步与发展,各个公司或机构每日所需处理的事务也在不断增多。为了加快事务处理的速度,一般会基于日常业务的执行过程,设计开发相应的业务处理模板,使得计算机直接利用所述业务处理模板对待处理的业务进行处理,从而减少了人力资源的消耗。

在待处理业务被执行时,可能会出现业务处理失败的情况。即使是处理失败的业务,在执行过程中可能也已经对数据库中的数据造成了相应的改动。为了保证业务执行的正确性,一般需要对这些数据进行回滚,以保证数据的正确性。但是,目前在利用业务处理模板执行业务时,对于业务中各个步骤的边界区分不清晰。当业务执行异常时,由于无法确定当前状态下所执行具体状态,往往需要将业务整体进行回滚。这样一来,不仅增加了处理业务异常时所消耗的时间或资源,也可能会出现数据回滚错误的情况,从而无法有效完成对异常业务的处理。因此,目前亟需一种能够正常执行业务,并在业务执行异常时快速有效地对业务异常进行处理的方法。

发明内容

本说明书实施例的目的是提供一种业务处理方法、装置及设备,以解决如何快速有效地对异常业务进行处理这一技术问题。

为了解决上述技术问题,本说明书实施例提出一种业务处理方法,包括:获取目标业务;所述目标业务包括至少两个子事务;所述子事务对应于所述目标业务的业务执行流程;根据所述业务执行流程依次执行所述目标业务中的子事务;在所述目标业务执行异常的情况下,确定出现异常时所执行的目标子事务;基于所述业务执行流程从所述目标子事务起依次逆向调用各个子事务的补偿方法;所述子事务分别对应有各自的补偿方法;所述补偿方法用于将对应的子事务所改动的数据进行回滚。

一种业务处理装置,包括:目标业务获取模块,用于获取目标业务;所述目标业务包括至少两个子事务;所述子事务对应于所述目标业务的业务执行流程;子事务执行模块,用于根据所述业务执行流程依次执行所述目标业务中的子事务;目标子事务确定模块,用于在所述目标业务执行异常的情况下,确定出现异常时所执行的目标子事务;补偿方法调用模块,用于基于所述业务执行流程从所述目标子事务起依次逆向调用各个子事务的补偿方法;所述子事务分别对应有各自的补偿方法;所述补偿方法用于将对应的子事务所改动的数据进行回滚。

一种数据迁移设备,包括存储器和处理器,所述存储器,用于存储计算机指令;所述处理器,用于执行所述计算机指令实现以下步骤:获取目标业务;所述目标业务包括至少两个子事务;所述子事务对应于所述目标业务的业务执行流程;根据所述业务执行流程依次执行所述目标业务中的子事务;在所述目标业务执行异常的情况下,确定出现异常时所执行的目标子事务;基于所述业务执行流程从所述目标子事务起依次逆向调用各个子事务的补偿方法;所述子事务分别对应有各自的补偿方法;所述补偿方法用于将对应的子事务所改动的数据进行回滚。

由以上本说明书实施例提供的技术方案可见,本说明书实施例通过将目标业务划分为多个独立的子事务,并基于业务执行流程依次执行各个子事务,使得在执行所述目标业务时,若出现业务执行异常,可以根据当前对于子事务的执行情况,从目标子事务起按照业务执行流程的顺序依次调用各个子事务的补偿方法进行补偿,使得已经被执行的子事务的数据能够进行回滚。在按照子事务的执行顺序进行补偿的情况下,确保了数据回滚的准确性。此外,针对未被执行的子事务,无需调用相应的补偿方法,从而在保证了正常处理的情况下,减少了时间和资源的消耗。因此,上述业务处理方法能够快速有效地实现对异常业务的处理。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书实施例一种业务处理方法的流程图;

图2为本说明书实施例一种业务处理方法的示意图;

图3为本说明书实施例一种业务提交过程的流程图;

图4为本说明书实施例一种业务审核过程的流程图;

图5为本说明书实施例一种业务处理装置的模块图;

图6为本说明书实施例一种业务处理设备的结构图。

具体实施方式

下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。

为了解决上述技术问题,本说明书实施例提出了一种业务处理方法。所述业务处理方法的执行主体为业务处理设备。所述业务处理设备包括但不限于服务器、工控机、PC机等。在一些示例中,所述业务处理方法可以是基于java和SpringBoot框架所实现的,当然,实际应用中对于所述业务处理方法的具体实现过程并不限于上述示例。如图1所示,所述业务处理方法可以包括以下具体实施步骤。

S110:获取目标业务;所述目标业务包括至少两个子事务;所述子事务对应于所述目标业务的业务执行流程。

目标业务是需要进行处理的业务。相应的,处理所述目标业务的设备中可以预先设置相应的业务处理模板。所述业务处理模板可以根据所述目标业务的类型利用预先设置的处理逻辑对所述目标业务进行处理。

所述目标业务在被执行的过程中可能会涉及到数据库的改动,因此当目标业务处理失败时,虽然业务已经无法再接着被处理,但目标业务中某些已经执行的步骤可能已经改动数据库中的数据。为了保证数据的正确性,在对数据进行回滚时,一般需要准确地确定需要回滚的数据。

在一些实施方式中,所述目标业务可以是支付业务。由于支付业务可能会涉及一个或多个用户的账户数据的改动,在支付业务处理失败的情况下,若处理错误,则会对用户的利益造成执行损失。保证所述支付业务正确有效地执行具有格外重要的意义。

所述目标业务中可以包含有至少两个子事务。所述子事务可以是业务执行过程中的具体的步骤,不同的子事务分别用于实现不同的功能。为了保障后续过程的正常进行,不同的子事务之间相互独立。具体的,所述子事务可以由相互独立的代码分别构成,对于某项子事务的执行不会影响到其他子事务所对应的数据的改变,从而保障了步骤之间边界清晰,能够有效对业务整体进行处理。

利用一个具体的示例对所述子事务进行说明。所述子事务例如可以是新增申请、新增交易、业务提交、申请提交、申请审核、业务审核、审核同意这七个子事务。上述七个子事务按照顺序相应地被执行,在完成一项子事务后,再进行下一项子事务的处理,例如,在针对所述业务新增交易后,将业务添加至数据库中的交易表中。而业务提交阶段限定只能对交易表中的业务进行提交,从而保证了业务之间的独立性。

具体的,设置包括子事务在内的业务处理模板的方式可以是先创建一个业务处理的抽象类AppTemplete,该抽象类中实现了submit、audit两个方法,分别处理提交和审核两个过程,定义了initTrades、businessCheck、illegalCheck、beforeSubmit、afterSubmit、beforeAudit、afterAudit方法用来供开发人员重写具体的业务逻辑。

其中,实现上述方法时,可以创建一个子事务新增申请AppSubmitBeginTask实现接口ITask,主要内容是创建一个新的业务申请,申请状态为提交状态。创建一个子事务新增交易AppTradeBeforePrepareTask实现接口ITask,主要内容是创建一个新的业务交易,交易状态为就绪状态。创建一个子事务申请提交AppSubmitEndTask实现接口ITask,主要内容是将申请流转到待审核状态。创建一个子事务申请审核AppDoBeginTask实现接口ITask,主要内容是将申请流转到同意/否决状态。创建一个子事务审核同意AppTradeBeforeDoTask实现接口ITask,主要内容是将交易流转到成功/失败状态。

以上每个task都有属于它自己的补偿方法doCompensate,作为在异常发生时做出补偿。

业务执行流程可以用于表示所述目标业务中的子事务的执行顺序。在所述子事务之间相互独立的情况下,由于子事务之间一般不存在兼并的部分,在没有额外定义子事务的执行顺序的情况下,直接按照子事务的执行逻辑可能并不能有效地按照业务处理的流程对目标业务进行处理。因此,需要设置所述业务执行流程,用于标定目标业务中的子事务的执行顺序,从而对目标业务进行有效执行。

在一些实施方式中,所述子事务可以包括提交预处理、业务提交、提交收尾、审核预处理、业务审核、审核收尾等。相应的,在处理所述目标业务时,可以按照预处理、业务提交、提交收尾、审核预处理、业务审核、审核收尾的业务执行流程依次执行上述子事务。

上述实施方式只是对各项子事务进行示意性说明,实际应用中也可以根据业务的需求设置其他子事务或按照其他方式将业务执行流程划分为不同的子事务,在此不再赘述。

S120:根据所述业务执行流程依次执行所述目标业务中的子事务。

在确定所述目标业务的业务执行流程和对应的子事务后,可以根据所述业务执行流程依次进行执行。例如,在所述目标业务中包括提交预处理、业务提交、提交收尾、审核预处理、业务审核、审核收尾的子事务的情况下,可以直接按照上述子事务的顺序依次对其进行执行。

利用一个具体的示例进行说明,实现所述业务执行流程时可以先创建一个接口类ITask,该接口类中定义了check、doTask、compensable、doCompensate四个方法,分别是校验方法,逻辑处理方法,是否需要补偿方法,补偿方法,供开发人员重写具体的逻辑。创建一个业务处理类CommonBusiness,该业务处理类中实现了子事务的注册方法,业务处理链按子事务的注册顺序依次执行每个子事务的校验方法check和逻辑处理方法doTask,一旦判断异常发生,根据该子事务是否需要补偿,执行补偿方法,按照子事务被提交的逆序调用它的补偿方法doCompensate。

在一些实施方式中,针对业务处理场景的不同,可以将所述目标业务的执行过程划分为业务提交部分和业务审核部分。所述业务提交部分可以是将所述目标业务的数据进行初步审核,并在审核通过后登记所述目标业务,以使在后续步骤中能够对所登记的业务进行处理。所述业务审核部分可以是对业务的实际处理部分,所述业务审核部分可以是将业务推送至相应的审核人员,也可以是基于预先设定的校验规则对业务进行审核,还可以将上述两种审核方式进行结合以完成相应的业务审核。在对业务审核完毕后,完成对于业务的处理。

具体的,针对业务提交部分,当目标业务中包括提交预处理、业务提交、提交收尾的子事务时,如图3所示,所述执行过程可以包括以下具体步骤。

S310:创建对应于目标业务的业务申请;所述业务申请为提交状态。

该步骤可以对应于提交预处理这一子事务。在处理目标业务时,一般需要先针对所述目标业务创建相应的申请,进而在后续过程中由业务处理模板中的相应部分完成对于业务的处理过程。在创建所述业务申请后,所述业务申请的状态为提交状态。

在一些实施方式中,创建所述业务申请后,还可以创建对应于所述目标业务的交易。所述交易可以是所述业务执行流程。在分析所述目标业务的具体内容后,可以基于预先设定的逻辑将所述目标业务划分为多个子事务,并确定各个子事务之间的执行顺序,作为对应于所述目标业务的业务执行流程,进而在后续步骤中根据所述业务执行流程完成对于目标业务的处理。

具体的,在实际实现时可以利用beforeSubmit调用具体业务继承类中重写的逻辑;利用illegalCheck调用具体业务继承类中重写的合法性校验。

S320:基于合法性校验条件对所述目标业务进行校验;所述合法性校验条件包括针对目标业务是否为空、日期格式、数据类型、数字长度、数字精度、手机号格式、身份证号码格式的校验条件。

该步骤可以对应于业务提交这一子事务。在处理所述目标业务之前,首先需要对所述目标业务的数据进行合法性审核。一些业务其本身的数据不符合相应的要求,为了减少后续过程中处理此类业务所消耗的资源,可以预先将这些业务进行过滤。

具体的,所述合法校验条件可以包括针对目标业务是否为空、日期格式、数据类型、数字长度、数字精度、手机号格式、身份证号码格式的校验条件。目标业务是否为空可以用于判断目标业务是否不包含具体的实质性内容,从而预先对该类业务进行筛选。而日期格式、数据类型、数字长度、数字精度、手机号格式、身份证号码格式可以预先设置相应的固定判断格式。具体的判断过程可以根据实际应用的需求进行设置,在此不再赘述。

具体的,在实际实现时可以通过CommonBusiness业务处理链,依次调用上述子事务AppSubmitBeginTask,AppTradeBeforePrepareTask,具体业务的PrepareTask,AppSubmitEndTask,执行各子事务的逻辑处理方法dotask,若异常发生,则逆序依次调用各个task的补偿方法。

S330:在所述目标业务符合所述合法性校验条件的情况下,将所述目标业务提交至对应的业务交易表中;所述业务交易表用于记录需要进行业务处理的业务。

该步骤可以对应于提交收尾这一子事务。在所述目标业务符合合法性校验条件的情况下,可以正式提交所述目标业务,以在后续步骤中实现对所述目标业务的处理。具体的,可以将所述目标业务登记至业务交易表中。所述业务交易表即用于记录需要进行业务处理的业务。后续步骤中的子事务在处理目标业务时,可以是从所述业务交易表中提取相应的业务执行相应的处理操作。

相应的,在判断所述目标业务符合合法性校验条件的情况下,可以将所述业务申请推送至待审核状态,用于表明该业务可以进行后续步骤中的审核操作。

通过上述步骤,对目标业务的提交过程进行了细化分割,使得不同的子事务能够相互独立地执行相应的操作,从而保证了业务的准确有效的执行。

具体的,在实际实现时可以利用afterSubmit调用具体业务继承类中重写的逻辑。

在一些实施方式中,也可能会出现目标业务不符合合法性校验条件的情况,则可以确定不符合合法性校验条件的目标子事务,以待后续步骤中进行进一步的排查,相应的也加快业务检查的效率。与此同时,可以将所述业务申请的状态修改为否决状态,以对该业务进行标记。

在一些实施方式中,针对业务审核部分,当目标业务中包括审核预处理、业务审核、审核收尾的子事务时,如图4所示,所述执行过程可以包括以下具体步骤。

S410:将所述目标业务推送至审核终端。

该步骤可以对应于审核预处理这一子事务。在对业务的处理过程中,可以还需要业务人员对业务进行审批。因此可以将所述目标业务推送至审核终端,在业务人员对目标业务完成审核之后,可以进行后续的处理。具体的业务人员的审核标准可以根据实际情况进行设置,在此不做限制。

审核终端可以是所述业务人员所使用的终端。所述审核终端可以是PC机、移动终端、智能穿戴设备等。业务人员可以通过所述审核终端接收目标业务,也可以通过所述审核终端输入相应的指令以对所述目标业务进行审核。

具体的,在实际实现时可以利用beforeAudit调用具体业务继承类中重写的逻辑;利用businessCheck调用具体业务继承类中重写的业务逻辑校验。

S420:接收到审核终端所反馈的审核同意信息后,利用业务逻辑校验规则对所述目标业务进行审核;所述业务逻辑校验规则用于对所述目标业务的执行逻辑进行审核。

该步骤可以对应于业务审核这一子事务。在业务人员确定所审核的目标业务不存在问题的情况下,可以通过所述审核终端向业务处理设备反馈相应的审核同意信息。所述审核同意信息即用于表示该业务通过审核,可以执行后续的步骤。

业务逻辑校验规则可以是针对业务本身的具体情况所制定的规则。例如,所述业务逻辑校验规则可以是表示已使用的定价日不能删除,或者对于具体的计算公式的定义,例如,“期末净资产”等于“期初净资产+本期净资产增加数-本期净资产减少数”。实际应用中可以根据业务的具体情况选取相应的业务逻辑校验规则进行审核,不同的目标业务可以利用不同的业务逻辑校验规则,从而使得目标业务的利用更符合实际情况。

具体的,在实际实现时可以通过CommonBusiness业务处理链,依次调用上述子事务AppDoBeginTask,AppTradeBeforeDoTask,具体业务的DoTask,执行各子事务的逻辑处理方法dotask,若异常发生,则逆序依次调用各个task的补偿方法。

在一些实施方式中,业务人员在审核所述目标业务后,也可以反馈审核否决信息。所述审核否决信息可以用于表示业务人员未审核通过所述目标业务。相应的,在接收到所述审核否决信息的情况下,可以将所述目标业务的状态修改为审核未通过。对于状态为审核未通过的业务,可以不再继续处理,表示该业务已经处理完成;也可以将所述目标业务的数据进行回滚,重新执行该业务,以正确完成所述目标业务。

S430:在所述目标业务符合所述逻辑校验规则的情况下,将所述目标业务的业务数据记入业务正式表;所述业务正式表用于记录处理完毕的业务。

该步骤可以对应于审核收尾这一子事务。在所述目标业务符合所述逻辑校验规则的情况下,表明该业务不存在问题,可以将所述目标业务的业务数据记入业务正式表。在所述业务数据记入业务正式表时,即完成了根据所述目标业务对数据库中的数据进行新增或修改的过程,从而完成了所述目标业务。所述业务正式表相应的也可以用于记录处理完毕的业务,在所述目标业务记入所述业务正式表后,即可表明所述目标业务已经被正常处理。

相应的,在表明业务被正常处理的同时,可以将所述业务申请的状态修改为同意状态。

具体的,在实际实现时可以利用afterAudit调用具体业务继承类中重写的逻辑。

通过上述步骤,对目标业务包括审核在内的业务处理步骤进行了细化分割,使得不同的子事务能够相互独立地执行相应的操作,从而保证了业务的准确有效的执行。

需要说明的是,由于本说明书实施例所针对的场景在业务处理的过程中可能会涉及业务处理失败的情况,因此该步骤所涉及的依次执行各项子事务并不完全指代将所有子事务执行完毕,可能会出现只将部分子事务执行完毕的情况,进而在该种情况下执行后续的步骤S130、S140。

S130:在所述目标业务执行异常的情况下,确定出现异常时所执行的目标子事务。

所述目标业务在被执行的过程中,可能会出现执行异常的情况。若判断所述目标业务已经执行异常,由于所述目标业务是按照业务执行流程所定义的子事务依次进行执行的,因此可以确定出现异常时所执行的目标子事务。所述目标子事务即为出现执行异常的情况的子事务。

在确定所述目标子事务后,即可明确所述目标业务的执行状态,从而能够基于所述目标子事务对目标业务的数据进行回滚,保证了数据的准确性。

相应的,在业务执行出现异常时,可以将所述业务申请的状态修改为否决状态,从而能够方便地基于业务的状态对业务进行排查。

S140:基于所述业务执行流程从所述目标子事务起依次逆向调用各个子事务的补偿方法;所述子事务分别对应有各自的补偿方法;所述补偿方法用于将对应的子事务所改动的数据进行回滚。

在确定所述目标子事务后,可以依次对已经执行完毕的子事务进行补偿。具体的,各个子事务对应有各自的补偿方法。所述补偿方法即用于将对应的子事务所改动的数据进行回滚,从而在目标业务执行失败的情况下,不会让失败的业务对数据造成影响。

具体的,所述补偿方法的实施方式,可以是获取日志中的操作记录,并根据所述操作记录中所记载的数据变动情况,依次对改动的数据进行回滚,从而实现对各项子事务的补偿。具体的补偿方式可以根据实际情况进行设置,并不限于上述示例,在此不再赘述。

如图2所示,为一种目标业务执行异常的情况下处理方式的示意图。在业务正常执行的情况下,按照子事务1、子事务2、子事务3、子事务4、子事务5的顺序进行处理,并最终正常完成目标业务。相应的,不同的子事务对应有各自的补偿方法。在该示例中,假设子事务4在执行过程中出现了异常,则此时子事务3、2、1均已经完成了执行,可以依次执行补偿方法3、补偿方法2和补偿方法1,对各自的子事务进行补偿,从而保障数据的准确性。

在该示例中,假定子事务4执行异常时未对数据进行改动,因此从补偿方法3起开始对各项子事务进行补偿;也可能会出现从补偿方法4开始依次进行补偿的情况。具体的补偿过程可以根据实际应用中的具体情况进行设置,并不限于上述示例,在此不再赘述。

需要说明的是,图2中将子事务与补偿方法进行连接,只是为了说明这两者之间存在有对应关系,并不是用来表示两者之间为强耦合的关系。实际应用中两者之间可以为解耦的关系,只在需要时才对补偿方法进行调用。

基于步骤S110中的叙述,在所述目标业务是支付业务的情况下,对应于所述补偿业务的各项子事务的补偿方法可以是删除和/或回调所述支付业务所修改的业务数据。

在一些实施方式中,在利用补偿方法对各个子事务进行补偿时,还可以先获取对应的子事务的业务处理操作。所述业务处理操作可以是单一的具体的操作内容,例如某一项函数执行过程或数值修改过程。

在获取到所述业务处理操作后,可以判断所述业务处理操作是否涉及业务数据的改动。业务数据可以是目标业务实际执行时所涉及的数据,例如在所述目标业务为支付业务时,所述业务数据可以是与支付相关的账户数据。

若所述业务处理操作涉及对于业务数据的改动,可以对所述业务处理操作所改动的数据进行回滚,从而保证数据的正确性。

若所述业务处理操作不涉及业务数据改动的情况下,可以不对这些业务处理操作所改动的数据进行回滚,而只是标记所改动的数据。在所述业务处理操作不涉及对业务数据的改动的情况下,所改动的数据并不会影响业务数据的正常性,而保留这些改动情况可以在后续过程中更好地对异常发生的具体情况进行分析,有利于分析和解决异常。

下面利用一个具体的场景示例进行说明,所述场景示例为在职业年金受托系统中处理待遇支付业务。首先,创建一个具体业务类PayApp继承本发明中的抽象类AppTemplete,按照流程,只需要重写以下方法:initTrades初始化交易,注册待遇支付业务的两个子事务:待遇支付业务提交PrepareTask和待遇支付业务审核同意DoTask;beforeSubmit填充申请模型和待遇支付模型的数据;illegalCheck对待遇支付数据进行合法性校验;afterSubmit设置返回提示信息;beforeAudit填充申请模型的数据;businessCheck对待遇支付数据进行业务逻辑校验;afterAudit设置返回提示信息。

之后,可以创建待遇支付业务提交的业务处理类PayPrepareTask实现接口ITask,doTask主要内容是支付数据进入支付的交易表,doCompensate主要内容是删除本次交易的交易表数据。

最后,创建待遇支付业务审核同意的业务处理类PayDoTask实现接口ITask,doTask主要内容是支付的交易表数据进入支付的正式表,doCompensate主要内容是删除本次交易的正式表数据。

基于上述流程,可以对业务的执行流程进行明确的边界限定,从而在业务执行异常的情况下有效地对业务进行处理,保证异常处理统一规整。

通过上述方法的实施例和场景示例的介绍,可以看出,所述方法通过将目标业务划分为多个独立的子事务,并基于业务执行流程依次执行各个子事务,使得在执行所述目标业务时,若出现业务执行异常,可以根据当前对于子事务的执行情况,从目标子事务起按照业务执行流程的顺序依次调用各个子事务的补偿方法进行补偿,使得已经被执行的子事务的数据能够进行回滚。在按照子事务的执行顺序进行补偿的情况下,确保了数据回滚的准确性。此外,针对未被执行的子事务,无需调用相应的补偿方法,从而在保证了正常处理的情况下,减少了时间和资源的消耗。因此,上述业务处理方法能够快速有效地实现对异常业务的处理。

基于上述业务处理方法,本说明书实施例还提供一种业务处理装置。所述业务处理装置可以设置于所述业务处理设备。如图5所示,所述业务处理装置可以包括以下模块。

目标业务获取模块510,用于获取目标业务;所述目标业务包括至少两个子事务;所述子事务对应于所述目标业务的业务执行流程。

子事务执行模块520,用于根据所述业务执行流程依次执行所述目标业务中的子事务。

目标子事务确定模块530,用于在所述目标业务执行异常的情况下,确定出现异常时所执行的目标子事务。

补偿方法调用模块540,用于基于所述业务执行流程从所述目标子事务起依次逆向调用各个子事务的补偿方法;所述子事务分别对应有各自的补偿方法;所述补偿方法用于将对应的子事务所改动的数据进行回滚。

基于上述业务处理方法,本说明书实施例还提供一种业务处理设备。如图6所示,所述业务处理设备可以包括存储器和处理器。

在本实施例中,所述存储器可以按任何适当的方式实现。例如,所述存储器可以为只读存储器、机械硬盘、固态硬盘、或U盘等。所述存储器可以用于存储计算机程序指令。

在本实施例中,所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以执行所述计算机程序指令实现以下步骤:获取目标业务;所述目标业务包括至少两个子事务;所述子事务对应于所述目标业务的业务执行流程;根据所述业务执行流程依次执行所述目标业务中的子事务;在所述目标业务执行异常的情况下,确定出现异常时所执行的目标子事务;基于所述业务执行流程从所述目标子事务起依次逆向调用各个子事务的补偿方法;所述子事务分别对应有各自的补偿方法;所述补偿方法用于将对应的子事务所改动的数据进行回滚。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。

相关技术
  • 基于区块链的业务处理方法、业务处理方法、装置及设备
  • 基于区块链的业务处理方法、业务处理方法、装置及设备
技术分类

06120112721082