数据处理方法及装置与流程

文档序号:15492172发布日期:2018-09-21 20:49阅读:135来源:国知局

本申请涉及数据安全技术领域,更具体地,是数据处理方法及装置。



背景技术:

目前,各个行业的业务处理越来越依赖计算机系统,且随着业务功能的不断扩展,业务的处理过程越来越复杂。一项复杂业务的处理过程需要涉及多个独立的系统,每个系统完成各自系统的处理任务,多个系统均处理成功后,表示该项业务成功处理完毕。

在这种需要跨系统进行处理的业务,如果任意一方系统未成功完成处理任务,即表示该项任务执行失败。在这种情况下,需要将已经处理完毕的系统中的数据再恢复到处理之前的状态,以保证整个系统中数据的准确性。



技术实现要素:

有鉴于此,本申请提供了一种数据处理方法,用于在跨系统处理的业务在某一方系统中处理失败时,将已经执行处理任务的系统中的数据进行回滚,以保证整个系统中数据的准确性。

为实现所述目的,本申请提供的技术方案如下:

第一方面,本申请提供了一种数据处理方法,包括:

接收对目标业务的处理指令,所述目标业务包括多个处理子任务,处理子任务对应的处理系统为多个;

确定各个所述处理子任务的处理顺序;

依据所述处理顺序,向各个所述处理子任务对应的处理系统发送所述处理子任务,并接收各个所述处理系统返回的处理结果;

若接收到某个处理系统返回的处理结果不满足预设条件,则向返回成功的处理结果的处理系统发送冲回指令,所述冲回指令用于指示处理系统将处理子任务关联的数据回滚至处理前的状态。

在一个示例中,所述若接收到某个处理系统返回的处理结果不满足预设条件,则向返回成功的处理结果的处理系统发送冲回指令,包括:

若接收到某个处理系统返回的处理结果为错误,则在已经接收到的处理结果中查找成功的处理结果;

向返回所述成功的处理结果的处理系统发送冲回指令。

在一个示例中,若每个处理子任务具有预设的处理时长阈值;

则所述若接收到某个处理系统返回的处理结果不满足预设条件,则向返回成功的处理结果的处理系统发送冲回指令,包括:

若在某个处理系统对应的处理时长阈值内并未接收到所述某个处理系统返回的处理结果,则向所述某个处理系统发送冲回指令;

若接收到所述某个处理系统返回的成功冲回结果或者在预设的冲回时长阈值内并未接收到所述某个处理系统返回的冲回结果,则向返回成功的处理结果的处理系统发送冲回指令。

在一个示例中,若目标业务具有预设的处理时长阈值;

则所述若接收到某个处理系统返回的处理结果不满足预设条件,则向返回成功的处理结果的处理系统发送冲回指令,包括:

若所述处理时长阈值内并未接收到所有处理系统返回的处理结果,则确定已经发送处理子任务但未返回处理结果的目标处理系统,并向所述目标处理系统发送冲回指令;

若接收到所述目标处理系统返回的成功冲回结果或者在预设的冲回时长阈值内并未接收到所述目标处理系统返回的冲回结果,则向返回成功的处理结果的处理系统发送冲回指令。

第二方面,本申请提供了一种数据处理装置,包括:

处理指令接收单元,用于接收对目标业务的处理指令,所述目标业务包括多个处理子任务,处理子任务对应的处理系统为多个;

处理顺序确定单元,用于确定各个所述处理子任务的处理顺序;

子任务处理单元,用于依据所述处理顺序,向各个所述处理子任务对应的处理系统发送所述处理子任务,并接收各个所述处理系统返回的处理结果;

子任务数据冲回单元,用于若接收到某个处理系统返回的处理结果不满足预设条件,则向返回成功的处理结果的处理系统发送冲回指令,所述冲回指令用于指示处理系统将处理子任务关联的数据回滚至处理前的状态。

在一个示例中,所述子任务数据冲回单元,包括:

成功处理结果确定子单元,用于若接收到某个处理系统返回的处理结果为错误,则在已经接收到的处理结果中查找成功的处理结果;

第一冲回指令发送子单元,用于向返回所述成功的处理结果的处理系统发送冲回指令。

在一个示例中,若每个处理子任务具有预设的处理时长阈值;

则子任务数据冲回单元,包括:

第二冲回指令发送子单元,用于若在某个处理系统对应的处理时长阈值内并未接收到所述某个处理系统返回的处理结果,则向所述某个处理系统发送冲回指令;

第三冲回指令发送子单元,用于若接收到所述某个处理系统返回的成功冲回结果或者在预设的冲回时长阈值内并未接收到所述某个处理系统返回的冲回结果,则向返回成功的处理结果的处理系统发送冲回指令。

在一个示例中,若目标业务具有预设的处理时长阈值;

则所述子任务数据冲回单元,包括:

第四冲回指令发送子单元,用于若所述处理时长阈值内并未接收到所有处理系统返回的处理结果,则确定已经发送处理子任务但未返回处理结果的目标处理系统,并向所述目标处理系统发送冲回指令;

第五冲回指令发送子单元,用于若接收到所述目标处理系统返回的成功冲回结果或者在预设的冲回时长阈值内并未接收到所述目标处理系统返回的冲回结果,则向返回成功的处理结果的处理系统发送冲回指令。

在一个示例中,若目标业务具有预设的处理时长阈值;

则所述子任务数据冲回单元,包括:

第六冲回指令发送子单元,用于若所述处理时长阈值内并未接收到所有处理系统返回的处理结果,则确定已经发送处理子任务但未返回处理结果的目标处理系统,并向所述目标处理系统发送冲回指令及等待指令;其中所述等待指令用于在所述目标处理系统返回成功处理结果后触发所述冲回指令的执行;

第七冲回指令发送子单元,用于向所述目标处理系统之外的其他返回成功的处理结果的处理系统发送冲回指令。

由以上技术方案可知,本申请提供了一种数据处理方法,该方法可以在接收到对目标任务的处理指令后,确定该目标任务中包含的多个处理子任务,其中该多个处理子任务对应的处理系统为多个,并按照处理子任务的处理顺序依次向各个处理子任务对应的处理系统发送处理子任务,若某个处理系统返回的处理结果并不符合预设条件,则可以向该处理系统发送冲回指令,以使该处理系统依据处理子任务所处理的关联数据恢复至之前的状态,以保证处理系统中的关联数据保持在目标任务未执行之前的状态,保证数据的准确性。

附图说明

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

图1为本申请提供的数据处理方法的一种流程图;

图2为本申请提供的目标业务的一种流程示意图;

图3为本申请提供的对某个处理系统进行冲回的一种示意图;

图4为本申请提供的数据处理装置的一种结构示意图。

具体实施方式

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

随着信息技术的发展,很多业务都需要由计算机处理系统完成处理。在业务处理逻辑较为复杂的情况下,所涉及的处理系统不止一个。为了可以由计算机处理系统完成,可以根据业务的处理逻辑生成计算机处理系统能够执行的处理任务,一个处理任务即对应一项业务。在本申请的应用场景中,该项处理任务需要由多个计算机处理系统配合完成,因此,需要将处理任务划分为多个处理子任务,不同的计算机处理系统完成不同的处理子任务。若某个处理系统未成功处理子任务,则需要将其他处理系统中成功处理完毕的数据恢复至未处理的状态,以保证整个计算机系统中数据的准确性。

以银行系统中的某项跨系统业务为例进行说明。假设某项跨系统业务为申请购买基金,该项业务在各个系统中的处理流程为,客户首先通过网银客户端向网银系统发送申购请求,网银系统接收到该申购请求后,首先请求金融核心系统在该用户的账户余额中扣除申购基金所需的金额数目,并请求基金系统为该用户分配其所申购的基金份额并更新基金剩余份额,在该两个系统均处理成功的前提下,网银系统向网银客户端发送申购成功的提示信息。

如果金融核心系统或者基金系统任意一个系统处理失败,需要将其他系统中已经处理成功的数据进行回滚,以保证这些数据在整个系统之下是一致的,进而保证数据的准确性。对此,本申请提供了一种数据处理方法,以实现所述目标。

见图1,其示出了数据处理方法的一种流程,具体包括步骤s101~s104。

s101:接收对目标业务的处理指令,目标业务包括多个处理子任务,处理子任务对应的处理系统为多个。

其中,若需要对某个业务进行处理,可以将该某个业务称为目标业务。为了实现对目标业务的处理,会向执行该数据处理方法的处理装置发送对目标业务的处理指令。

目标业务中包括多个处理子任务,处理子任务是需要处理系统进行处理的,处理子任务对应的处理系统为多个。以目标业务为申请购买基金为例,该目标业务中包括2个处理子任务,分别为分配基金份额及更新基金剩余份额以及扣除申购基金所需的金额数目。该2个处理子任务对应的处理系统为2个,即金融核心系统及基金系统。

s102:确定各个处理子任务的处理顺序。

其中,目标业务中的各个处理子任务是具有预设的处理顺序的,该处理顺序可以是串行执行,也可以是并行执行。处理顺序是根据目标业务的处理逻辑预先设置的,处理顺序可以包含在对目标业务的处理指令中。

确定每个处理子任务的处理顺序后,可以按照该处理顺序为每个处理子任务对应的处理系统设置优先级。以目标业务为申请购买基金为例,各个处理子任务的处理顺序依次为,扣除申购基金所需的金额数目、分配基金份额及更新基金剩余份额,则处理系统的优先级分别设置为:金融核心系统的优先级为0,基金系统的优先级为1。

处理系统的优先级的另一个示例如图2所示,假设目标业务中包括四个处理子任务,分别由处理系统a、b、c、d处理,四个处理子任务的处理顺序为:处理子任务1与处理子任务4需要首先并行处理,处理子任务2需要在处理子任务1及处理子任务4均处理完成后进行处理,处理子任务3需要在处理子任务2处理完成后进行处理。按照上述处理顺序可以确定该四个处理系统的优先级分别为:处理系统a及处理系统d的优先级为0,处理系统b的优先级为1,处理系统c的优先级为2。

s103:依据处理顺序,向各个处理子任务对应的处理系统发送处理子任务,并接收各个处理系统返回的处理结果。

其中,按照确定出来的各个处理子任务的处理顺序,向处理各个处理子任务的处理系统发送处理子任务,以使处理系统对处理子任务进行处理。在实际应用中,处理子任务可以是各种,其对应的处理系统也可以是各种,处理系统对处理子任务的处理方式本申请并不做具体限定。

数据处理装置还需要接收处理系统返回的处理结果,处理结果可能是成功的处理结果,也可能是失败的处理结果。需要说明的是,可以在接收到前一顺序的处理系统返回的成功处理结果后,才发送下一顺序的处理子任务。

如图2所示,数据处理装置依次向四个处理系统发送处理子任务,由于处理系统具有优先级,该优先级是按照处理子任务的处理顺序设置的,因此可以直接根据处理系统的优先级依次发送该四个处理子任务。

s104:若接收到某个处理系统返回的处理结果不满足预设条件,则向返回成功的处理结果的处理系统发送冲回指令,冲回指令用于指示处理系统将处理子任务关联的数据回滚至处理前的状态。

其中,数据处理装置可以接收处理系统返回的处理结果,并预先设置条件对处理结果进行判断,如果处理结果不满足预设条件,则需要对已经成功处理子任务的处理系统进行冲回操作。其中预设条件可以是对处理过程在时间方面的要求,也可以是对处理结果在内容方面的要求。

对处理系统进行冲回操作的一种具体实现方式为,向处理系统发送冲回指令,冲回指令的作用是指示处理系统将处理子任务关联的数据回滚至之前的状态。其中关联的数据指的是处理子任务处理的对象数据。

例如,目标业务为某个用户申请购买基金,若金融核心系统成功在该用户的资金总额中扣除申购基金所需的金额数目,且假设该金额数目为1万元,但基金系统并未成功分配基金,则数据处理系统需要向金融核心系统发送冲回指令,以使金融核心系统在该用户的资金总额中增加1万元的金额数目。

以下对发送冲回指令的几种具体情况进行说明。

在第一种实现方式中,如果接收到某个处理系统返回的处理结果为错误的处理结果,则表示该某个处理系统并未成功处理其所对应的子任务,在这种情况下,需要在已经接收到的处理结果中,查找出成功的处理结果,并确定出返回成功的处理结果的处理系统为哪些系统,向这些处理系统发送冲回指令。可以理解的是,确定出的处理系统

见图2,假设数据处理装置接收到处理系统c返回的处理结果为失败,按照处理子任务的处理顺序可知,其已经成功接收到处理系统a、处理系统d、处理系统b返回的处理结果,因此如图3所示,数据处理装置会向依次向该三个处理系统发送冲回指令。

需要说明的是,冲回指令的发送顺序可以是同时发送,也可以是按照处理顺序的反顺序依次发送。若按照处理顺序的反顺序发送冲回指令,则可以再在前一顺序的处理系统返回成功的冲回结果后,才向后一顺序的处理系统发送冲回指令。

在第二种实现方式中,可以为每个处理子任务预先设置对应的处理时长阈值,处理时长阈值用于限制每个处理子任务的处理时长。在预设处理时长阈值的基础上,若在某个处理系统对应的处理时长阈值内并未接收到该某个处理系统返回的处理结果,则向该某个处理系统发送冲回指令。

具体地,数据处理装置向处理系统发送处理子任务后,便可以开始计时,如果达到处理时长阈值后,还并未收到该处理系统返回的处理结果,则可以确定该处理系统出现异常,因此需要向该处理系统发送冲回指令,以触发该处理系统将处理子任务关联的数据恢复到处理之前的状态。

由于该处理系统之前还可能存在已经处理成功的处理系统,因此数据处理装置在发送冲回指令后,还可以等待冲回结果。

如果接收到该某个处理系统返回的成功冲回结果,则数据处理装置确定已经接收到的成功处理子任务的处理结果,并向返回成功处理结果的处理系统发送冲回指令。或者,预先设置冲回指令的处理时长阈值,该时长阈值可以称为冲回时长阈值,如果在预设的冲回时长阈值内并未接收到该某个处理系统返回的冲回结果,则数据处理装置确定已经接收到的成功处理子任务的处理结果,并向返回成功处理结果的处理系统发送冲回指令。当然,如果接收到的该某个处理系统返回的冲回结果为冲回失败,则在执行上述处理的基础上,还可以向该处理系统重发冲回指令或者对该某个处理系统进行故障清理。

在该种实现方式中,需要为每个处理子任务均设置对应的处理时长阈值,对每个处理子任务的处理时长阈值进行监控,如果某个处理子任务的执行时长超过对应的处理时长阈值,则需要对该某个处理子任务对应的处理系统进行冲回。

在第三种实现方式中,可以为整个目标业务设置处理时长阈值,用于对整个目标业务的处理过程进行监控。若处理时长阈值内并未接收到所有处理系统返回的处理结果,则确定已经发送处理子任务但未返回处理结果的目标处理系统,并向所述目标处理系统发送冲回指令。

具体地,数据处理装置向首个处理系统发送首个处理子任务后,可以对处理过程进行计时,如果计时时长达到处理时长阈值,但并未向所有的处理系统发送处理子任务,则数据处理装置便首先确定当前正在执行处理任务的处理系统,该处理系统即数据处理装置已经向其发送了处理子任务但是并未接收到该处理系统返回的处理结果的处理系统,为了便于描述,可以将该处理系统称为目标处理系统。进而向该目标处理系统发送冲回指令,以触发该处理系统将处理子任务关联的数据恢复到处理之前的状态。

向该目标处理系统发送冲回指令后,与上述第二种实现方式相同,由于该处理系统之前还可能存在已经处理成功的处理系统,因此数据处理装置在发送冲回指令后,还可以等待冲回结果。

如果接收到该某个处理系统返回的成功冲回结果,则数据处理装置确定已经接收到的成功处理子任务的处理结果,并向返回成功处理结果的处理系统发送冲回指令。或者,预先设置冲回指令的处理时长阈值,该时长阈值可以称为冲回时长阈值,如果在预设的冲回时长阈值内并未接收到该某个处理系统返回的冲回结果,则数据处理装置确定已经接收到的成功处理子任务的处理结果,并向返回成功处理结果的处理系统发送冲回指令。当然,如果接收到的该某个处理系统返回的冲回结果为冲回失败,则在执行上述处理的基础上,还可以向该处理系统重发冲回指令或者对该某个处理系统进行故障清理。

以上实现方式中,为整个处理业务设置处理时长阈值,如果在该处理时长阈值内并未处理完,则需要向正在执行处理任务的处理系统及其之前发送成功处理结果的处理系统发送冲回指令,以使这些处理系统回滚数据。

在第四种实现方式中,处理系统在处理过程中不能中断,因此处理系统在接收到冲回指令后,需要等待数据处理完成才能执行冲回指令。针对这种情况,冲回指令需要等待一段时间后才能执行。

因此,若所述处理时长阈值内并未接收到所有处理系统返回的处理结果,则确定已经发送处理子任务但未返回处理结果的目标处理系统,并向所述目标处理系统发送冲回指令及等待指令;其中所述等待指令用于在所述目标处理系统返回成功处理结果后触发所述冲回指令的执行;向所述目标处理系统之外的其他返回成功的处理结果的处理系统发送冲回指令。

具体地,数据处理装置在向目标处理系统发送冲回指令时,也同时发送等待指令。如果目标处理系统还在处理过程中,则需要进行等待,如果目标处理系统返回处理结果,如果该处理结果为成功的处理结果,则等待指令需要触发冲回指令的执行。冲回指令执行完毕,便可以将目标处理系统所处理过的数据恢复至之前的状态。

另外,数据处理装置还需要向其他返回成功的处理结果的处理系统发送冲回指令,也使得其他系统的处理数据能够恢复至之前的状态。

由以上技术方案可知,本申请提供了一种数据处理方法,该方法可以在接收到对目标任务的处理指令后,确定该目标任务中包含的多个处理子任务,其中该多个处理子任务对应的处理系统为多个,并按照处理子任务的处理顺序依次向各个处理子任务对应的处理系统发送处理子任务,若某个处理系统返回的处理结果并不符合预设条件,则可以向该处理系统发送冲回指令,以使该处理系统依据处理子任务所处理的关联数据恢复至之前的状态,以保证处理系统中的关联数据保持在目标任务未执行之前的状态,保证数据的准确性。

见图4,其示出了本申请提供的一种数据处理装置的结构,具体包括:处理指令接收单元401、处理顺序确定单元402、子任务处理单元403、子任务数据冲回单元404。

处理指令接收单元401,用于接收对目标业务的处理指令,所述目标业务包括多个处理子任务,处理子任务对应的处理系统为多个;

处理顺序确定单元402,用于确定各个所述处理子任务的处理顺序;

子任务处理单元403,用于依据所述处理顺序,向各个所述处理子任务对应的处理系统发送所述处理子任务,并接收各个所述处理系统返回的处理结果;

子任务数据冲回单元404,用于若接收到某个处理系统返回的处理结果不满足预设条件,则向返回成功的处理结果的处理系统发送冲回指令,所述冲回指令用于指示处理系统将处理子任务关联的数据回滚至处理前的状态。

在一种实现方式中,所述子任务数据冲回单元,包括:

成功处理结果确定子单元,用于若接收到某个处理系统返回的处理结果为错误,则在已经接收到的处理结果中查找成功的处理结果;

第一冲回指令发送子单元,用于向返回所述成功的处理结果的处理系统发送冲回指令。

在一种实现方式中,若每个处理子任务具有预设的处理时长阈值;

则子任务数据冲回单元,包括:

第二冲回指令发送子单元,用于若在某个处理系统对应的处理时长阈值内并未接收到所述某个处理系统返回的处理结果,则向所述某个处理系统发送冲回指令;

第三冲回指令发送子单元,用于若接收到所述某个处理系统返回的成功冲回结果或者在预设的冲回时长阈值内并未接收到所述某个处理系统返回的冲回结果,则向返回成功的处理结果的处理系统发送冲回指令。

在一种实现方式中,若目标业务具有预设的处理时长阈值;

则所述子任务数据冲回单元,包括:

第四冲回指令发送子单元,用于若所述处理时长阈值内并未接收到所有处理系统返回的处理结果,则确定已经发送处理子任务但未返回处理结果的目标处理系统,并向所述目标处理系统发送冲回指令;

第五冲回指令发送子单元,用于若接收到所述目标处理系统返回的成功冲回结果或者在预设的冲回时长阈值内并未接收到所述目标处理系统返回的冲回结果,则向返回成功的处理结果的处理系统发送冲回指令。

在一种实现方式中,若目标业务具有预设的处理时长阈值;

则所述子任务数据冲回单元,包括:

第六冲回指令发送子单元,用于若所述处理时长阈值内并未接收到所有处理系统返回的处理结果,则确定已经发送处理子任务但未返回处理结果的目标处理系统,并向所述目标处理系统发送冲回指令及等待指令;其中所述等待指令用于在所述目标处理系统返回成功处理结果后触发所述冲回指令的执行;

第七冲回指令发送子单元,用于向所述目标处理系统之外的其他返回成功的处理结果的处理系统发送冲回指令。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1