多业务系统的统一账户管理方法及装置与流程

文档序号:17329991发布日期:2019-04-05 22:01阅读:355来源:国知局
多业务系统的统一账户管理方法及装置与流程

本发明属于软件开发技术领域,具体地涉及一种多业务系统的统一账户管理方法、装置、计算机设备及存储介质。



背景技术:

现有的大部分信息系统,如果包括多个涉及交易的业务系统,那么,是在各个业务系统分别执行用户的交易操作;然后,定期从各个业务系统提取相应的数据,进行汇总处理,统计、核验最终的账户数据。

这种方式下,由于交易过程分散在各个业务系统完成,缺乏统一的管理行为,对于并发操作、非法篡改等行为,会导致账户数据出错的情况,存在着一定的安全风险。



技术实现要素:

本发明的技术解决问题是:通过对各业务系统的交易操作进行统一账户管理,对账户数据一致性实施控制,从而增强账户系统的安全性。

本发明的技术解决方案是:

一种多业务系统的统一账户管理方法,包括:

接收与账户系统相关的业务操作请求;

记录所述账户系统的乐观锁字段;

当确定所述业务操作请求已经完成时,校验当前乐观锁字段是否与记录一致,如果是,更新所述账户系统的数据,更新所述乐观锁字段;否则,执行账户异常处理流程。

可选地,该方法还包括:

对同一类型的业务操作请求执行单线程管理。

可选地,更新所述账户系统的数据,包括:

更新账户系统的余额、更新账户系统的操作流水。

可选地,该方法还包括:

获取业务系统的操作流水;

对所述账户系统的余额、所述账户系统的操作流水和所述业务系统的操作流水进行一致性校验,如果校验失败,执行账户异常处理流程。

可选地,所述执行账户异常处理流程,包括:

锁定账户并通知管理员。

可选地,该方法还包括:

根据所述业务操作请求,进行输入参数校验、服务流水号校验、机构校验、企业日结状态校验、提现安全校验、唯一请求校验。

一种多业务系统的统一账户管理装置,包括:

业务系统模块,用于接收与账户系统相关的业务操作请求,响应所述业务操作请求,向统一账户管理模块返回业务操作结果;

统一账户管理模块,用于在所述业务系统模块接收与账户系统相关的业务操作请求之后,记录乐观锁字段,当所述业务系统模块返回业务操作已完成的结果时,校验当前乐观锁字段是否与记录一致,如果是,更新账户系统的数据,更新所述乐观锁字段;否则,执行账户异常处理流程。

可选地,所述业务系统模块对同一类型的业务操作请求执行单线程管理。

可选地,所述统一账户管理模块用于更新所述账户系统的数据时,具体用于:更新账户系统的余额、更新账户系统的操作流水。

可选地,所述统一账户管理模块还用于:获取业务系统的操作流水;对所述账户系统的余额、所述账户系统的操作流水和所述业务系统的操作流水进行一致性校验,如果校验失败,执行账户异常处理流程。

可选地,所述执行账户异常处理流程包括:锁定账户并通知管理员。

可选地,所述统一账户管理模块还用于:根据所述业务操作请求,进行输入参数校验、服务流水号校验、机构校验、企业日结状态校验、提现安全校验、唯一请求校验。

一种计算机设备,包括存储器、处理器及存储在所述存储器上并可被所述处理器运行的程序,所述处理器执行所述程序时实现上述的多业务系统的统一账户管理方法。

一种存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时实现上述的多业务系统的统一账户管理方法。

本发明通过接收与账户系统相关的业务操作请求,记录所述账户系统的乐观锁字段,当确定所述业务操作请求已经完成时,校验当前乐观锁字段是否与记录一致,如果是,更新所述账户系统的数据,更新所述乐观锁字段,否则,执行账户异常处理流程;实现对账户系统的统一管理,以及,新增乐观锁字段,能够避免多业务系统的并发业务影响账户资金的准确性;在可选实施例中,还对所述账户系统的余额、所述账户系统的操作流水、业务系统的操作流水进行一致性校验,降低账户数据被篡改的风险。

附图说明

图1为根据本发明实施例提供的多业务系统的统一账户管理方法的流程示意图;

图2为根据本发明实施例提供的多业务系统的统一账户管理装置的结构示意图。

具体实施方式

为使得本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图和具体实施例进行详细描述。

如图1所示,本发明实施例提供的多业务系统的统一账户管理方法包括:

s110、接收与账户系统相关的业务操作请求;

s120、记录所述账户系统的乐观锁字段;

s130、当确定所述业务操作请求已经完成时,校验当前乐观锁字段是否与记录一致,如果是,更新所述账户系统的数据,更新所述乐观锁字段;否则,执行账户异常处理流程。

对涉及账户的业务操作增加的乐观锁(optimisticlocking)相对于悲观锁而言,采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。例如:一个金融系统,当某个操作员读取用户的数据,并在读出的用户数据的基础上进行修改时(如更改用户帐户余额),如果不采用乐观锁机制,整个操作过程中(从操作员读出数据、开始修改直至提交修改结果的全过程,甚至还包括操作员中途去煮咖啡的时间),数据库记录始终处于加锁状态,如果面对几百上千个并发,系统是无法使用的。使用乐观锁,通过为数据库中增加一个‘version’字段,每次修改数据时,判断version与之前是否相同,如果不相同,则不进行修改,从而确保数据一致性,防止系统发生异常时,账户被重复修改。

关于乐观锁的使用场景举例:

a、用户s向用户m发转账业务,转账金额为1000元,此时,用户m的账户余额为5000元。

b、转账请求到达服务器时,首先查询m的账户信息,获取到账户余额为5000元,账户version=1,系统发起转账处理,受网络等因素制约,处理时间较长。

c、在处理过程中,用户p向用户m发起转账500元请求,并且转账成功,此时,m的账户余额为5500元,version更新为2。

d、此时,s的请求处理到更新账户余额阶段,进行乐观锁校验,发现version!==1,所以,s发起的请求,不会执行成功,起到了账户保护的作用。

由于乐观锁的使用,重复提交和异常的请求,无法实际更新到账户,保证了用户请求和账户数据的一致性。

在本发明又一实施例中,包括对同一类型的业务操作请求执行单线程管理的操作。具体地,将账户同一业务类型的请求放到redis中,并设置一个合理的失效时间,利用redis的特性,过滤掉重复提交的请求。

使用redis控制重复提交流程包括:利用redis的单线程特性,为用户对账户的操作设置全局唯一的主键,用户开始一项操作时,将对应的主键及对应值写入redis,在本次操作完成前,主键及对应值一直存活在redis中,此时,如果有相同的操作试图向redis中写入主键及对应值时,redis会给出提示:主键及对应值已经存在,无法写入。这样,就实现了对操作唯一性的控制,进而确保了账户操作的一致性。

本发明还提供一实施例,对于账户系统的余额和操作流水进行统一管理,相比于现有的账户系统,额外保存了账户变动的全部明细信息;与此同时,各个业务系统仍然保持对操作流水的记录。进一步地,本发明实施例对账户系统的余额、账户系统的操作流水、业务系统的操作流水进行一致性校验,如果校验失败,执行账户异常处理流程。示例如下:

a、查询账户系统账户主信息表中的余额值,记为a1;

b、查询账户系统账户操作流水表中相关操作记录,并汇总为a2;

c、如果a1!=a2,对账户进行锁定,禁止发上后续交易;

d、如果a1=a2,通过接口查询各业务操作流水并汇总为a3;

e、如果a1!=a3,对账户进行锁定,禁止发上后续交易;

f、如果a1=a3,校验通过。

通过建立统一的账户数据安全性校验机制,对于用户的每次涉及账户的操作(例如:提现操作),将账户系统的数据与业务系统的数据进行比对,如果发现异常,则执行账户异常处理流程,大幅提高了资金安全性。

本发明的实施例提到的执行账户异常处理流程,包括:锁定账户并通知管理员。例如:采用短信通知的方式,通知中可包括异常类型信息。

在本发明另一实施例中,还提供了完备的业务操作请求校验方法,包括:输入参数校验、服务流水号校验、机构校验、企业日结状态校验、提现安全校验、唯一请求校验、以及其它扩展的校验方式。

如图2所示,本发明实施例提供的一种多业务系统的统一账户管理装置,包括:

业务系统模块210,用于接收与账户系统相关的业务操作请求,响应所述业务操作请求,向统一账户管理模块返回业务操作结果;

统一账户管理模块220,用于在所述业务系统模块接收与账户系统相关的业务操作请求之后,记录乐观锁字段,当所述业务系统模块返回业务操作已完成的结果时,校验当前乐观锁字段是否与记录一致,如果是,更新账户系统的数据,更新所述乐观锁字段;否则,执行账户异常处理流程。

可选地,所述业务系统模块210对同一类型的业务操作请求执行单线程管理。

可选地,所述统一账户管理模块220用于更新所述账户系统的数据时,具体用于:更新账户系统的余额、更新账户系统的操作流水。

可选地,所述统一账户管理模块220还用于:对所述账户系统的余额、所述账户系统的操作流水、业务系统的操作流水进行一致性校验,如果校验失败,执行账户异常处理流程。

可选地,所述执行账户异常处理流程包括:锁定账户并通知管理员。

可选地,所述统一账户管理模块220还用于:根据所述业务操作请求,进行输入参数校验、服务流水号校验、机构校验、企业日结状态校验、提现安全校验、唯一请求校验。

本发明还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上并可被所述处理器运行的程序,所述处理器执行所述程序时实现上述的多业务系统的统一账户管理方法。

本发明还提供一种存储介质,其上存储有计算机程序,当所述计算机程序被处理器执行时实现上述的多业务系统的统一账户管理方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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