首页> 中国专利> 一种基于函数契约旁路分析的准实时金融系统对账方法

一种基于函数契约旁路分析的准实时金融系统对账方法

摘要

本发明公开了一种基于函数契约旁路分析的准实时金融系统对账方法,包括如下步骤:在系统开发阶段产生包含函数契约规则的可执行文件,通过函数注解方式、定义和账务相关的关键函数执行后需要满足的契约,并利用面向方面编程对旁路触发契约验证代码进行编译器织入;在系统运行时,由旁路监听器接受数据,在数据库运行契约验证;当发现契约被违反后,执行补偿规则并报警。本发明在不影响系统运行效率的前提下,使金融系统中错账数据被更加及时的发现,降低因为系统错误造成的经济损失。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-29

    授权

    授权

  • 2018-01-12

    实质审查的生效 IPC(主分类):G06Q40/00 申请日:20170706

    实质审查的生效

  • 2017-12-19

    公开

    公开

说明书

技术领域

本发明涉及一种金融系统的账务对账系统实现方法,具体地,涉及到通过定义函数契约,在系统运行时触发对数据的旁路分析,从而对金融系统的账务准确性进行验证的方法。

背景技术

目前的账务类金融系统,采用每日日终跑批方式,对数据库中所有当天发现的交易进行会计对账的方式,保证账务的正确性,该技术的原理是利用会计等式,核对存储在数据库中各会计要素数据是否满足会计规则,从而发现错账,并对错账进行事后处理。错账的原因一般为运行时软件的BUG引起,例如数据库事务未正确执行、高并发情况下对竞争资源的使用不当、逻辑错误等。该方法的局限性主要体现在:时效性低、影响运行时系统性能。

发明内容

针对上述现有技术中的缺陷,本发明要解决的技术问题体现在以下几点:1)采用更细粒度的函数级规则定义,实现局部数据对账;2)采用旁路分析方法,不影响运行时系统性能;3)提高发现错账的时效性,进行及时补偿操作。

针对上述技术问题,本发明提供了一种基于函数契约旁路分析的准实时金融系统对账方法,在程序语言的关键函数中定义契约规则,并在函数运行完成后触发对契约规则的准实时旁路数据分析,能够达到快速发现账务错误并进行补偿行为的功效。

为实现上述目的,本发明是根据以下技术方案实现的:

一种基于函数契约旁路分析的准实时金融系统对账方法,包括如下步骤:

步骤S1:在系统开发阶段产生包含函数契约规则的可执行文件,通过函数注解方式、定义和账务相关的关键函数执行后需要满足的契约,并利用面向方面编程对旁路触发契约验证代码进行编译期织入;

步骤S2:在系统运行时,由旁路监听器接受数据,在数据库从库中运行契约验证;

步骤S3:当发现契约被违反后,执行补偿规则并报警。

上述技术方案中,步骤S1具体包括:

步骤S101:根据业务规则及系统数据模型设计,建立系统核心规则的不变式及识别不变式中变量可能被改变的场景;

步骤S102:在函数上编写注释,注释内容包括契约规则、补偿规则;例如,在虚拟账户充值函数后,对虚拟账户和实体账户数据进行校验的契约为“转入资金和-转出资金和=实体余额”且“余额变动表中,引起余额变动的交易类型为充值,则必须有且仅有一条原交易流水号对应这种余额的变化”;

步骤S103:在程序编译阶段,解析函数注释上的契约规则,转换为可执行的验证脚本;将转换后的契约规则验证脚本、原程序代码、触发旁路验证的客户端代码,通过面向方面编程的编织技术,共同编译成可执行代码,产生可运行的可执行文件。

上述技术方案中,步骤S2具体包括:

步骤S201:系统运行时,首先执行正常业务逻辑函数,数据会被写入数据库主库中,利用数据库自身的数据主从同步技术,将该次操作变动的数据备份到从库中;

步骤S202:当带有契约规则定义的正常业务逻辑函数被执行后,编织到可执行文件中的旁路验证客户端将在正常业务逻辑函数结束时,将函数输出、输出、契约验证脚本、验证失败补偿脚本通过异步通讯的方式发送到旁路分析服务器;

步骤S203:旁路分析服务器的契约监听收到信息后,到数据库从库中获取契约验证需要的数据,并验证契约规则是否被满足;

步骤S204:当发现契约被违反后,执行补偿规则并报警。

由于采用了上述技术方案,本发明的有益效果是:

本发明在不影响系统运行效率的前提下,使金融系统中错账数据被更加及时的发现,降低因为系统错误造成的经济损失。

附图说明

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

图1为本发明的金融系统对账方法示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

图1为本发明的金融系统对账方法示意图,如图1所示,本发明的一种基于函数契约旁路分析的准实时金融系统对账方法,包括如下步骤:

步骤S1:在系统开发阶段产生包含函数契约规则的可执行文件,通过函数注解方式、定义和账务相关的关键函数执行后需要满足的契约,并利用面向方面编程对旁路触发契约验证代码进行编译器织入;

步骤S2:在系统运行时,由旁路监听器接受数据,在数据库从库中运行契约验证;

步骤S3:当发现契约被违反后,执行补偿规则并报警。

步骤S1具体包括:

步骤S101:根据业务规则及系统数据模型设计,建立系统核心规则的不变式及识别不变式中变量可能被改变的场景;不同的业务,包含不同的规则,大部分情况账务类的规则来自于会计科目的设置及会计公式。

步骤S102:在函数上编写注释,注释内容包括契约规则、补偿规则;契约规则用来验证账务数据的准确性,补偿规则用于契约规范被违反情况下所采取的补救措施。例如,在虚拟账户充值函数后,对虚拟账户和实体账户数据进行校验的契约为“转入资金和-转出资金和=实体余额”且“余额变动表中,引起余额变动的交易类型为充值,则必须有且仅有一条原交易流水号对应这种余额的变化”。补偿规则为“将此笔操作涉及的虚拟账户可用余额减少,将冻结金额增加,并通过短信报警”。

步骤S103:在程序编译阶段,解析函数注释上的契约规则,转换为可执行的验证脚本;将转换后的契约规则验证脚本、原程序代码、触发旁路验证的客户端代码,通过面向方面编程的编织技术,共同编译成可执行代码,产生可运行的可执行文件。

步骤S2具体包括:

步骤S201:系统运行时,首先执行正常业务逻辑函数,数据会被写入数据库主库中,利用数据库自身的数据主从同步技术,将该次操作变动的数据备份到从库中。

步骤S202:当带有契约规则定义的正常业务逻辑函数被执行后,编织到可执行文件中的旁路验证客户端将在正常业务逻辑函数结束时,将函数输出、输出、契约验证脚本、验证失败补偿脚本通过异步通讯的方式发送到旁路分析服务器。

步骤S203:旁路分析服务器的契约监听收到信息后,到数据库从库中获取契约验证需要的数据,并验证契约规则是否被满足。例如,针对用户充值的场景,支付交易的结果由第三方支付通道采用异步通知形式告知账务系统,可能由于网络延迟原因在同一时间针对一个订单通知2次。在更新数据库用户余额字段时,如果未对用户余额记录加锁,会造成重复更新数据问题,使得余额被重复累加。此时,契约监听模块会发现“余额变动表中,引起余额变动的交易类型为充值,则必须有且仅有一条原交易流水号对应这种余额的变化”规则中,“必须有且仅有一条原交易流水号对应这种余额的变化”被违反,从而立即处理补偿规则“对用户账号余额做冻结交由人工处理”,及时避免损失。

步骤S204:当发现契约被违反后,执行补偿规则并报警。

虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号