首页> 中国专利> 一种检验规则的生成方法及装置

一种检验规则的生成方法及装置

摘要

本说明书公开了一种检验规则的生成方法及装置,用于生成适用于指定业务类型的检验规则。在业务执行过程中,对应本次业务的业务数据发生变化时,生成针对该条业务数据的一次快照;该方法包括:获得所述指定业务类型的业务数据样本集合,针对所述集合中的每条业务数据,获取针对该条业务数据所生成的快照集合;遍历所述业务数据样本集合中的业务数据,基于每条业务数据的快照集合,生成适用于该条业务数据的备选检验规则;对所生成的多条备选检验规则进行统计,将符合预设统计要求的备选检验规则确定为适用于所述指定业务类型的正式检验规则。

著录项

  • 公开/公告号CN112632056A

    专利类型发明专利

  • 公开/公告日2021-04-09

    原文格式PDF

  • 申请/专利权人 蚂蚁智信(杭州)信息技术有限公司;

    申请/专利号CN202110242668.7

  • 发明设计人 熊士强;邵开来;牟键;

    申请日2021-03-05

  • 分类号G06F16/215(20190101);

  • 代理机构11415 北京博思佳知识产权代理有限公司;

  • 代理人周嗣勇

  • 地址 310013 浙江省杭州市西湖区西溪路556号8层B段801-12

  • 入库时间 2023-06-19 10:32:14

说明书

技术领域

本说明书实施例涉及计算机应用技术领域,尤其涉及一种检验规则的生成方法及装置。

背景技术

业务系统通常在执行业务的过程中产生大量业务数据,由于业务系统故障、或者业务的违规执行等原因,会产生部分错误的业务数据,影响业务系统的运行,或者造成业务方的损失。例如,在商品交易业务中,订单在支付失败后,由于业务系统的故障,允许用户针对该订单申请退款并退款成功,造成商户的损失。为了避免或减少出现上述情况,需要对业务数据进行检验以发现其中的错误。

为了实现对业务数据的检验,一种现有的方式是利用预先制定好的检验规则对业务数据进行检验。如果业务数据不符合检验规则,可以确定该业务数据存在错误。例如,在商品交易业务中,预先制定的检验规则可以是:如果订单支付失败,则只允许用户查询订单。如果一条业务数据中,在订单支付失败后,用户仍然可以申请退款,则可以确定该条业务数据存在错误。

但是,检验规则通常是人工基于经验总结出的,随着业务的不断更新迭代,或者在面对复杂业务数据的情况下,通过人工总结检验规则的效率较低,难以有效帮助检验出业务数据中的错误。

发明内容

为了解决上述技术问题,本说明书提供了一种检验规则的生成方法及装置。技术方案如下所示。

一种检验规则的生成方法,用于生成适用于指定业务类型的检验规则;在业务执行过程中,对应本次业务的业务数据发生变化时,生成针对该条业务数据的一次快照;所述方法包括:

获得所述指定业务类型的业务数据样本集合,针对所述集合中的每条业务数据,获取针对该条业务数据所生成的快照集合;

遍历所述业务数据样本集合中的业务数据,基于每条业务数据的快照集合,生成适用于该条业务数据的备选检验规则;

对所生成的多条备选检验规则进行统计,将符合预设统计要求的备选检验规则确定为适用于所述指定业务类型的正式检验规则。

一种检验规则的生成装置,用于生成适用于指定业务类型的检验规则;在业务执行过程中,对应本次业务的业务数据发生变化时,生成针对该条业务数据的一次快照;所述装置包括:

快照集合获取单元:用于获得所述指定业务类型的业务数据样本集合,针对所述集合中的每条业务数据,获取针对该条业务数据所生成的快照集合;

备选规则生成单元:用于遍历所述业务数据样本集合中的业务数据,基于每条业务数据的快照集合,生成适用于该条业务数据的备选检验规则;

统计单元:用于对所生成的多条备选检验规则进行统计,将符合预设统计要求的备选检验规则确定为适用于所述指定业务类型的正式检验规则。

上述技术方案通过机器,基于业务数据的快照集合自动生成多条备选检验规则,并进一步基于统计从备选检验规则中确定出正式检验规则,实现了利用机器替代人工从业务数据中总结检验规则,提高了总结检验规则的效率,可以有效帮助检验出业务数据中的错误。

附图说明

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

图1是本说明书实施例提供的一种商品交易业务的状态机示意图;

图2是本说明书实施例提供的一种检验规则的生成方法的流程示意图;

图3是本说明书实施例提供的一种检验规则的生成装置的结构示意图;

图4是本说明书实施例提供的另一种检验规则的生成装置的结构示意图;

图5是用于配置本说明书实施例方法的一种设备的结构示意图。

具体实施方式

为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于公开的范围。

业务系统通常在执行业务的过程中产生大量业务数据,由于业务系统故障、或者业务的违规执行等原因,会产生部分错误的业务数据,影响业务系统的运行,或者造成业务方的损失。例如,在商品交易业务中,订单在支付失败后,由于业务系统的故障,允许用户针对该订单申请退款并退款成功,造成商户的损失。为了避免或减少出现上述情况,需要对业务数据进行检验以发现其中的错误。

为了实现对业务数据的检验,一种现有的方式是利用预先制定好的检验规则对业务数据进行检验。如果业务数据不符合检验规则,可以确定该业务数据存在错误。

例如,在商品交易业务中,对订单支付失败状态,常规情况下执行任何操作都无法转换成申请退款状态,因为用户原本支付已经失败,并未付款,也就无法申请退款。因此,预先制定的检验规则可以包括:如果订单支付失败,则只允许用户查询订单。如果检验到一条业务数据中,在订单支付失败后,用户仍然可以申请退款,则可以确定该条业务数据存在错误。

但是,检验规则通常是人工基于经验总结出的,具体可以是基于多条业务数据,通过对业务数据中每个字段值实际业务含义的分析、业务数据之间关联关系的分析等总结出的。随着业务的不断更新迭代,或者在面对复杂业务数据的情况下,通过人工总结检验规则的效率较低,难以有效帮助检验出业务数据中的错误。

为了解决上述问题,本说明书提供了一种检验规则的生成方法,通过机器自动根据多条业务数据生成检验规则,用于业务数据的检验。

即使面对业务的更新迭代,或者面对复杂业务数据的情况,通过机器总结检验规则的效率高于人工总结,可以有效帮助检验出业务数据中的错误。

而本说明书所提供的检验规则生成方法,主要是通过机器提取业务数据中包含的信息,生成对应的预备检验规则并进行统计,将符合统计要求的预备检验规则确定为正式检验规则。

下面分别针对本说明书提供的检验规则生成方法涉及的业务数据和检验规则进行简单的解释。

1、业务数据。

业务数据可以是业务在执行过程中产生的数据,可以是用于描述该次业务执行过程的数据,用于表征业务执行过程中的相关信息。例如,业务类型信息、业务执行时间信息、业务对象信息、业务交易金额信息等。

为了便于理解,在一种可选的实施例中,可以将业务执行过程中产生的业务数据存储在业务数据库中,随着业务执行过程的进行,可以根据该次业务相关信息的更新,在业务数据库中更新对应的业务数据。

例如,在商品交易的业务中,针对一次商品的交易,可以利用一条业务数据表征本次商品交易过程的相关信息。相关信息具体可以包括商品交易类型、商品信息、商品标识、交易用户标识、交易时间、商品单价、交易商品数量、成交金额、是否支付。

在商品开始交易时,可以在业务数据库创建一条对应的业务数据,其中可以包含上述相关信息的初始值。随着交易的进行,交易商品数量可能发生变化,成交金额也可能随着交易商品数量和实际的优惠情况发生变化,根据这些变化情况,可以实时更新业务数据库中对应的业务数据。

为了便于理解,以业务数据中的成交金额为例,成交金额的初始值为5;随着用户增加交易商品数量为10,成交金额的值从5变为50;随着用户添加30的优惠券,成交金额的值从50变为20。

解释完业务数据,下面针对业务数据可能包含的信息进行解释。

1)业务类型信息。

在一种可选的实施例中,业务数据中可以包含业务类型信息,用于表征业务数据所对应执行的业务的类型。业务类型可以是某种业务的标识,是区别于其他业务的表征。

例如,业务数据库中包含有商品交易业务的业务数据、物品租赁业务的业务数据、其他业务的业务数据。为了区分不同的业务,可以使用业务类型信息进行区分。对于商品交易业务的业务数据,可以都包含表征“商品交易”的业务类型信息;对于物品租赁业务的业务数据,可以都包含表征“物品租赁”的业务类型信息。

在一种可选的实施例中,可以具体由业务数据的一个或多个字段(作为业务类型字段)表征业务类型信息。

例如,具体可以是通过业务标识字段这1个字段表征业务类型信息,在101表征“商品交易”的情况下,商品交易业务的业务数据中包含的业务标识字段的值可以为101。

或者,具体可以利用业务大分类字段、业务细分类字段这2个字段共同表征业务类型信息。在大分类“交易”中,还包括细分类“商品交易”和“服务交易”,因此,商品交易业务的业务数据中包含的业务大分类字段的值可以为“交易”,包含的业务细分类字段的值可以为“商品交易”,这2个字段的值可以共同表征“商品交易”这一业务类型信息。

2)业务状态信息。

在一种可选的实施例中,业务数据中可以包含业务状态信息,用于表征业务在执行过程中的状态。

业务状态可以用于表征业务在执行过程中可能存在的阶段或在执行过程中可能出现的多种情况。部分业务状态也可以根据部分操作转换到其他状态。

例如,在商品交易的业务中,随着商品交易的过程,可能存在创建阶段、支付阶段、退款阶段、关闭阶段。而对应于支付阶段和退款阶段,都可能存在成功或失败的情况。因此,可能存在订单创建、成交金额计算、支付成功、支付失败、退款申请、退款成功、退款失败、订单关闭等状态。

显然,在订单创建之后,可以根据订单中的商品数量、商品单价以及优惠情况计算成交金额。之后可能随着客户支付情况的不同,分为支付成功状态和支付失败状态。而支付失败之后,业务状态会转换为订单关闭状态结束交易。在支付成功之后,可以转换成订单关闭状态结束交易,也可以转换成退款申请状态,进而根据退款情况,转换成退款成功或退款失败状态,再转换成订单关闭状态结束交易。

在一种可选的实施例中,为了便于管理业务的执行过程,方便定位当前业务在执行过程中的阶段或情况,通常会预先规定业务在执行过程中可能存在的阶段或情况,作为多种业务状态,并且可以根据多种业务状态之间的转换关系构建状态机。状态之间的转换需要符合状态机的规定。

如图1所示,为本说明书提供的一种商品交易业务的状态机示意图。

其中的状态节点包括订单创建、支付成功、支付失败、退款申请、退款成功、退款失败、订单关闭7个状态。

处于订单创建状态的业务,通过“预设时长内客户支付成交金额”这一事件,可以转换为支付成功的状态;通过“预设时长内客户未支付成交金额”这一事件,可以转换为支付失败的状态。

处于支付成功状态的业务,通过“客户申请退款”这一事件可以转换为退款申请状态;通过“客户预设时长内无操作”这一事件可以转换为订单关闭状态结束交易。

处于支付失败状态的业务,通过“客户预设时长内无操作”这一事件可以转换为订单关闭状态结束交易。

处于退款申请状态的业务,通过“判断交易符合退款标准并退款成功”这一事件,可以转换为退款成功状态,并进一步可以通过“客户预设时长内无操作”这一事件可以转换为订单关闭状态结束交易;通过“判断交易不符合退款标准”或者“判断交易符合退款标准但无法退款”任一事件可以转换为退款失败状态。

处于退款失败状态的业务,可以通过“客户预设时长内无操作”这一事件可以转换为订单关闭状态结束交易;也可以通过“客户重新申请退款”这一事件转换为退款申请状态。

此外,值得强调的是,业务状态中存在一种特殊的状态,即初始状态。业务开始执行时必须处于初始状态。例如,对于上述描述的商品交易业务,初始状态可以包括订单创建状态。一次商品交易必须从订单创建开始,如果从其他状态开始,则不符合业务规定。

而初始状态可以是一个或多个。例如,在商品交易业务中,初始状态可以包括订单创建状态和支付成功状态。

将支付成功的订单添加到业务数据库中执行商品交易业务,也就无需创建订单,初始状态可以是支付成功状态。

在一种可选的实施例中,可以具体由业务数据的一个或多个字段(作为业务状态字段)表征业务状态信息。通常情况下,业务状态信息可以由单个字段表征。业务状态信息的表征方式并不限定。例如,可以利用标号表征不同的业务状态。“1”表征“订单创建”,“2”表征“退款申请”等。

3)业务关键字段。

在一种可选的实施例中,业务数据中可以包括一个或多个关键字段,这些关键字段可以是在业务中用于表征重要信息的字段,需要重点检验。

关键字段可以根据业务的实际需求指定,并不具体限定。

例如,在商品交易业务的业务数据中,可以将商品单价作为关键字段,尽管成交金额可能因为商品数量和优惠情况存在变动,但商品单价应当是不变的,如果存在修改或变动的情况,则说明这条业务数据存在错误。

4)其他信息。

在一种可选的实施例中,业务数据中可以包括本次业务执行的标识信息,用于唯一标识该次业务执行。

例如,在商品交易业务中,可以利用订单号标记一次商品交易。当商品开始交易时创建订单,也就创建了唯一的订单号,方便后续查询该次商品交易相关的数据。

需要注意的是,一条业务数据中可以包含上述任意一种信息,并不限定一条业务数据中一定包含上述全部信息。

2、检验规则。

本说明书提供的方法主要是提取业务数据中包含的信息,构建检验规则。

在一种可选的实施例中,检验规则可以是分别针对不同的业务类型构建的,这是因为同一业务类型下的业务通常遵循同一规范,而不同业务类型下的业务可以不遵循同一规范。

例如,对于商品交易的业务,根据前述所构建的状态机,存在退款申请状态;而对于股票交易的业务,并不存在退款申请的状态,可以存在买入和卖出的状态。

因此,检验规则中可以包括对业务类型的判断。在确定待检验业务数据所属业务的类型后,可以确定对应的规范用于检验。

在一种可选的实施例中,一条检验规则可以包括一个前置条件和规范。

其中,该条检验规则中的前置条件可以用于判断待检验业务数据所属业务类型是否是指定业务类型。在确定待检验业务数据所属业务类型是指定业务类型的情况下,可以进一步利用该条检验规则中的规范进行检验。

而具体的规范可以基于上述业务数据中包含的信息确定,根据业务数据中包含的信息可以总结出多种规范,从而生成多种检验规则。下面给出3种规范的示例。

1)初始状态规范。

在一种可选的实施例中,可以基于业务数据中包含的业务类型信息生成前置条件,并进一步基于业务数据中包含的业务状态信息生成状态机。

由于业务中的初始状态存在限制,业务在每次执行时必须从初始状态开始,并且初始状态可能不止一个。因此可以从业务数据包含的业务状态信息中总结最早出现的状态信息作为可能的初始状态,生成针对初始状态的规范。以便于针对待检验业务数据,根据初始状态规范确定待检验业务数据最早的状态是否是初始状态。

2)状态切换规范。

在一种可选的实施例中,可以基于业务数据中包含的业务类型信息生成前置条件,并进一步基于业务数据中包含的业务状态信息生成状态机。

由于状态机中,业务状态之间的切换必须以规定的事件为依据,只有监测到规定的事件才能切换状态,并且部分业务状态之间不存在切换关系。因此,可以从业务数据包含的业务状态信息中总结业务状态之间可能出现的切换情况,生成针对状态切换的规范。以便于针对待检验业务数据,根据状态切换规范,确定待检验业务数据中的状态之间的切换关系是否存在。

3)关键字段规范。

在一种可选的实施例中,可以基于业务数据中包含的业务类型信息生成前置条件,并进一步基于业务数据中包含的关键字段生成规范。

针对关键字段,可以根据业务的实际需求生成规范。例如,可以确定关键字段的值是否是可变的;或者可以确定关键字段的值是否应当限制在一个取值范围内。从而生成对应于关键字段的规范。

在一种具体的示例中,商品交易的业务数据中,关键字段可以是商品单价和成交金额,需要根据关键字段的值是否可变生成规范,则可以基于多条业务数据确定商品单价是不可变的,而成交金额是可变的。进而可以利用关键字段规范,针对待检验业务数据中的关键字段(商品单价),确定是否发生了变动。如果商品单价发生了变动,则该条待检验业务数据存在错误。

下面结合附图,对本说明书提供的一种检验规则的生成方法进行详细的解释。

如图2所示,为本说明书提供的一种检验规则的生成方法的流程示意图。

可选地,在业务执行过程中,对应本次业务的业务数据发生变化时,可以生成针对该条业务数据的一次快照。相对应地,业务数据每发生一次变化,可以生成针对该条业务数据的一次快照,从而可以得到多个快照记录该次业务执行过程中、业务数据的全部变化过程。

其中,可以理解的是,在业务数据初始化时,可以生成最早的一次快照。所生成的快照之间也可以具有时序关系。

此外,本方法流程主要解释针对单个指定的业务类型的业务数据生成检验规则的过程,可以理解的是,针对多个不同业务类型的业务数据分别生成检验规则的过程可以通过简单推理得到。

该方法可以至少包括以下步骤。

S101:获得指定业务类型的业务数据样本集合,针对业务数据样本集合中的每条业务数据,获取针对该条业务数据所生成的快照集合。

由于本方法流程是基于多条业务数据生成检验规则,因此,所基于的多条业务数据是经过挑选的样本。

可选地,业务数据样本集合可以是从业务数据库中随机挑选的、指定业务类型的多条业务数据。

可选地,也可以是将指定业务类型的多条可信业务数据添加到业务数据样本集合;其中的可信业务数据可以是基于指定业务类型的一次业务可信执行过程产生的业务数据。由于业务可信执行过程一定是符合业务规范的,不存在错误,因此可以方便生成正确的检验规则。

而快照集合中可以包括针对一条业务数据所生成的至少一个快照,可以记录有一条业务数据的多次变化。

为了便于理解快照,在一种可选的实施例中,同一条业务数据在业务数据库中的变化可以如下表1所示。

针对于业务进展过程中成交金额的值的变化,可以更新同一条业务数据中的数据。而对应于每次变化,可以将该条业务数据变化后的全部信息保存下来,作为一次快照。即,上述表1中每条数据都是业务数据的一次快照。

快照集合在后续步骤中可以用于检验规则的生成。

在一种可选的实施例中,针对每条业务数据所生成的快照集合可以包含针对该条业务数据所生成的全部快照,从而可以使得快照集合中包含该条业务数据的所有变化(即全部变化的信息),进而方便直接根据快照集合获取所需的信息生成检验规则。

在另一种可选的实施例中,也可以根据后续生成的检验规则所需要的指定信息,从针对一条业务数据所生成的全部快照中,获取与指定信息的变化有关的至少一个快照作为快照集合。这种实施例可以减小针对每条业务数据所需要获取的快照集合的大小,便于后续加快检验规则的生成效率。

基于上述对于检验规则的解释,可选地,为了生成初始状态规范相关的检验规则,可以只获取与初始状态有关的快照,快照集合中可以包括一条业务数据的最早的第一个快照,即业务数据创建时所包含的全部信息。

可选地,为了生成状态切换规范相关的检验规则,可以只获取与状态切换有关的快照,即业务状态字段的值发生变化时生成的快照。因此,快照集合中可以包括一条业务数据在业务状态字段的值发生变化时生成的全部快照。

可选地,为了生成关键字段规范相关的检验规则,可以只获取关键字段的值发生变化时生成的快照。因此,快照集合中可以包括一条业务数据在关键字段的值发生变化时生成的全部快照。

S102:遍历业务数据样本集合中的业务数据,基于每条业务数据的快照集合,生成适用于该条业务数据的备选检验规则。

基于上述对于业务数据所包含信息的解释,在一种可选的实施例中,一条业务数据可以包括一个或多个业务类型字段、以及一个业务状态字段。一个或多个业务类型字段可以用于共同表征一条业务数据所属的业务类型;业务状态字段可以用于表征一条业务数据所属业务在执行过程中的状态。在该实施例中,可以方便生成以下2种与业务状态相关的备选检验规则。

1)针对业务初始状态的备选检验规则。

可选地,在生成备选检验规则时,备选检验规则可以包括前置条件和规范,所生成的备选检验规则可以是用于检验业务初始状态的规则。

因此,可以基于每条业务数据的快照集合,确定其中最早的快照,根据该快照的全部业务类型字段的值生成前置条件,根据该快照的业务状态字段的值生成规范,得到适用于该条业务数据的备选检验规则。

其中,所生成的前置条件可以用于判断一条待检验业务数据所包含的全部业务类型字段的值、是否与该快照所包含的全部业务类型字段的值相同。即,前置条件可以用于判断一条待检验业务数据所属业务的类型是否与该快照所属业务的类型相同。

所生成的规范可以用于表征该快照的业务状态字段的值,具体用于帮助判断一条待检验业务数据在初始状态下、业务状态字段的值是否与该快照的业务状态字段的值相同。

需要注意的是,针对一条业务数据所生成的、用于检验业务初始状态的备选检验规则,仅仅表示在一次业务执行过程中的初始状态,适用于该条业务数据,并不能包含业务中可能存在的全部初始状态。

为了便于理解,下面给出一种备选检验规则的具体示例。

根据一条业务数据的快照集合,确定其中最早的快照如下表表2所示。

表2.一条业务数据的最早快照

则可以生成备选检验规则为:如果(业务类型=‘商品交易’),那么(业务初始状态=‘订单创建’)。

当然,备选检验规则的形式并不限定,也可以是IF(业务类型=‘商品交易’)THEN(业务初始状态=‘订单创建’),只要可以表征上述前置条件和规范即可。

2)针对业务状态切换的备选检验规则。

可选地,在生成备选检验规则时,所生成的备选检验规则可以是用于检验业务状态切换的规则。

因此,可以基于每条业务数据的快照集合,针对其中任一快照,根据该快照的全部业务类型字段的值生成前置条件,根据该快照的业务状态字段的值、以及该快照的前一快照的业务状态字段的值生成规范,得到适用于该条业务数据的备选检验规则。

首先需要强调的是,该快照的前一快照指的是,在一条业务数据的存在时序关系的多个快照中,该快照在时序关系上紧邻的前一快照。具体可以是将一条业务数据的快照集合中全部快照、按照时序关系的先后排序,再确定某一快照在排序上紧邻的前一快照。

通过该快照的业务状态字段的值、以及该快照的前一快照的业务状态字段的值,可以确定业务状态之间的切换关系,从而生成业务状态切换的规范。

在一种可选的实施例中,可以针对快照集合中的多个快照,生成适用于该条业务数据的多条备选检验规则。

其他前置条件的解释可以参见上文,此处不再赘述。需要注意的是,针对一条业务数据所生成的、用于检验业务状态切换的备选检验规则,仅仅表示在一次业务执行过程中的状态切换情况,适用于该条业务数据,并不能包含业务中可能存在的全部状态切换情况。

为了便于理解,下面给出另一种备选检验规则的具体示例。

确定一条业务数据的快照集合如下表表3所示。

表3.一条业务数据的快照集合

则可以生成2条备选检验规则,分别为:如果(业务类型=‘商品交易’),那么(S1可以切换为S2)、以及如果(业务类型=‘商品交易’),那么(S2可以切换为S4)。

当然,备选检验规则的形式并不限定,也可以是IF(业务类型=‘商品交易’)THEN(S1→S2);IF(业务类型=‘商品交易’)THEN(S2→S4),只要可以表征上述前置条件和规范即可。

3)针对关键字段的备选检验规则。

在生成关键字段相关的备选检验规则时,由于并不需要业务状态,因此,基于上述针对业务数据所包含信息的解释,在一种可选的实施例中,一条业务数据可以包括一个或多个业务类型字段、以及一个或多个关键字段;其中,一个或多个业务类型字段用于共同表征一条业务数据所属的业务类型。

在该实施例中,可以方便生成关键字段相关的备选检验规则。

可选地,所生成的备选检验规则可以用于检验关键字段是否可变,也可以用于检验关键字段的值是否限制在一个固定取值范围内。

为了便于理解,在一种可选的实施例中,为了生成用于检验关键字段是否可变的备选检验规则,可以基于每条业务数据的快照集合,可以针对其中任一快照的任一关键字段,根据该快照的全部业务类型字段的值生成前置条件,根据该快照的该关键字段的值、以及该快照的前一快照的该关键字段的值生成规范,得到适用于该条业务数据的备选检验规则。

关于前一快照的解释可以参见上文,此处不再赘述。

通过两个时序上紧邻的快照,可以确定关键字段是否在这两个快照之间发生变化,如果发生了变化,则可以直接确定关键字段是可变的;如果没有发生变化,则可以确定在这两个快照之间没有变化。

更进一步地,在一种可选的实施例中,如果通过快照集合,确定在整个业务执行过程中关键字段都没有发生变化,则可以确定关键字段是不可变的。

具体可以通过根据关键字段将所生成的备选检验规则进行合并,针对一个关键字段,如果在基于快照集合所生成的全部备选检验规则中的规范全部是不可变的,则生成一条备选检验规则表征该关键字段不可变;如果在基于快照集合所生成的全部备选检验规则中的规范存在一条是可变的,则生成一条备选检验规则表征该关键字段可变。

需要注意的是,针对一条业务数据所生成的、用于检验关键字段是否可变的备选检验规则,仅仅表示在一次业务执行过程中的关键字段是否存在变化,适用于该条业务数据,并不意味着关键字段在每次业务执行过程中不可变。

此外,如果一条备选检验规则表征某一关键字段可变,实际上该关键字段的值在业务执行过程中可以变化,也可以不变化,都不会违反该条备选检验规则。

为了便于理解,下面给出另一种备选检验规则的具体示例。

确定一条业务数据的快照集合如下表表4所示,其中关键字段包括商品单价和成交金额。

表4.一条业务数据的快照集合

则可以先生成2条备选检验规则,分别为:如果(业务类型=‘商品交易’),那么(商品单价不可变)、如果(业务类型=‘商品交易’),那么(商品单价不可变)、如果(业务类型=‘商品交易’),那么(成交金额可变)、以及如果(业务类型=‘商品交易’),那么(成交金额不可变)。

可选地,经过根据关键字段的合并之后,可以得到2条备选检验规则,分别是如果(业务类型=‘商品交易’),那么(商品单价不可变)、如果(业务类型=‘商品交易’),那么(成交金额可变)。

当然,备选检验规则的形式并不限定,也可以是IF(业务类型=‘商品交易’)THEN(商品单价:immutable);IF(业务类型=‘商品交易’)THEN(成交金额:mutable),只要可以表征上述前置条件和规范即可。

当然,上述仅仅是针对关键字段是否可变生成备选检验规则,其他关键字段相关的备选检验规则可以基于相同的逻辑推导得到,此处不再赘述。例如,关键字段的取值范围可以根据快照集合中关键字段的最大值和最小值确定。

在解释完上述3种备选检验规则的生成过程之后,需要注意的是,本说明书中的检验规则并不局限于上述3种,只要是基于快照集合可以得到的检验规则,都在本说明书公开的范围之内。

而其他检验规则的生成过程可以基于上述3种检验规则的生成过程通过简单的推理得到。检验规则可以具体用于,在利用前置条件判断一条待检验业务数据所属业务的类型与该快照所属业务的类型相同的情况下,判断该条待检验业务数据是否符合检验规则中的规范。

下面针对“备选检验规则”进行解释。

由于备选检验规则的依据仅仅是一条业务数据,无法排除该条业务数据存在错误的可能;此外,针对业务数据的错误的检验,需要完整的检验规则进行检验,例如,业务的初始状态可能有多个,而一条业务数据所能确定的业务初始状态仅仅只有一个,所生成的检验规则并不完整。

因此,针对备选检验规则,还需要经过筛选才能确定正式的检验规则,用于业务数据的检验。

S103:对所生成的多条备选检验规则进行统计,将符合预设统计要求的备选检验规则确定为适用于指定业务类型的正式检验规则。

在一种可选的实施例中,由于不同的业务数据可能生成相同的备选检验规则,因此,针对每条备选检验规则可以统计所生成的相同的该条备选检验规则的数量。

可选地,预设统计要求可以包括所生成的相同规则的数量大于预设数量。如果所生成的相同规则的数量大于预设数量,则可以将对应的备选检验规则确定为正式检验规则,可以适用于指定业务类型。

可选地,预设统计要求可以包括所生成的相同规则在所生成的全部规则中的占比大于预设占比。如果所生成的相同规则在所生成的全部规则中的占比大于预设占比,则可以将对应的备选检验规则确定为正式检验规则,可以适用于指定业务类型。

由于错误的业务数据通常不多,或者占比不大,因此,可以通过上述统计筛选过程,将依据错误业务数据生成的错误备选检验规则筛除出去,保留正确的备选检验规则。

此外,由于相同的备选检验规则较多,这一正式检验规则所依据的业务数据也较多,可以在一定程度上保证正式检验规则的正确。

由于正式检验规则是根据备选检验规则确定的,因此,在一种可选的实施例中,正式检验规则可以包括前置条件和规范;前置条件可以用于确定待检验业务数据是否属于指定业务类型;正式检验规则可以用于确定属于指定业务类型的待检验业务数据是否符合正式检验规则中的规范。

而在利用正式检验规则,针对业务数据进行检验时,为了确保是基于完整的检验规则进行检验的,在一种可选的实施例中,正式检验规则可以是分散的,具体检验时,可以遍历所确定的全部正式检验规则进行检验。

如果遍历之后,待检验业务数据没有通过任一正式检验规则的检验,则可以确定该待检验业务数据存在错误。

而如果待检验业务数据通过任一正式检验规则的检验,则可以确定该待检验业务数据符合该正式检验规则中的规范。

需要注意的是,基于上述分析,不同的正式检验规则可能是检验不同的规范,例如,初始业务状态规范、业务状态转换规范等等。

针对同一规范可能存在至少一个正式检验规则,如果遍历之后,待检验业务数据没有通过该规范下任一正式检验规则的检验,则可以确定该待检验业务数据在该规范上存在错误。

在另一种可选的实施例中,可以将正式检验规则合并起来,方便后续的检验,无需遍历。

由于所确定的全部正式检验规则具有相同的前置条件,都可以用于确定待检验业务数据是否属于指定业务类型,因此,可以基于相同的前置条件,合并所确定的全部正式检验规则。

可选地,可以基于所确定的全部正式检验规则,综合得到一条适用于指定业务类型的综合检验规则。其中,综合检验规则可以包括前置条件和规范集合。规范集合中可以包括所生成的全部正式检验规则中包含的全部规范。规范之间可以使用‘或’进行关联。

可选地,也可以基于所确定的全部正式检验规则,根据不同的规范(具体可以是检验不同内容的规范),得到至少一条适用于指定业务类型、用于检验某一种规范的综合检验规则。其中,综合检验规则可以包括前置条件和规范集合。规范集合中可以包括所生成的全部正式检验规则中包含的该种规范的全部。规范之间可以使用‘或’进行关联。

显然,经过合并之后,可以减少遍历的次数,加快检验的效率。

为了便于理解,下面给出一个具体的示例。通过上述方法流程所确定的全部正式检验规则可以参见下表表5。

表5.全部正式检验规则

根据上述合并的可能,可选地,可以合并成一条综合检验规则。如下所示。

如果(业务类型=商品交易),那么(初始状态=订单创建、或初始状态=支付成功、或订单创建转换为支付成功、或支付成功转换为退款申请、或商品单价:不可变、或成交金额:可变)。

可选地,也可以根据规范所检验的内容合并成3条综合检验规则。如下所示。

如果(业务类型=商品交易),那么(初始状态=订单创建或支付成功)。

如果(业务类型=商品交易),那么(订单创建转换为支付成功、或支付成功转换为退款申请)。

如果(业务类型=商品交易),那么(商品单价:不可变、或成交金额:可变)。

值得强调的是,针对成交金额可变的检验规则,如果成交金额在业务执行过程中没有发生变化,也并不会违反检验规则。

上述方法流程通过机器,基于业务数据的快照集合自动生成多条备选检验规则,并进一步基于统计从备选检验规则中确定出正式检验规则,实现了利用机器替代人工从业务数据中总结检验规则,提高了总结检验规则的效率,可以有效帮助检验出业务数据中的错误。

此外,需要注意的是,在利用通过上述方法流程生成的检验规则、针对待检验的业务数据进行检验时,需要根据所检验的内容获取所生成的至少一个相关快照。

可选地,在检验初始状态时,可以针对待检验的业务数据获取最早生成的一个快照,获取该快照中的业务状态信息,确定检验规则中是否存在该业务状态信息。具体可以是获取该快照中业务状态字段的值,确定检验规则中是否存在该值。

例如,针对商品交易业务,在针对一条业务数据最早生成的快照中,获取业务状态字段的值为‘支付失败’,根据检验规则如果(业务类型=商品交易),那么(初始状态=订单创建或支付成功),显然没有符合检验规则中的任一规范,则确定该条业务数据存在错误。

可选地,在检验状态切换时,可以针对待检验的业务数据获取时序关系上的前一快照,获取该快照中的业务状态信息,并将该快照的业务状态信息与待检验业务数据的业务状态信息组合成为一组转换关系,确定检验规则中是否存在这一转换关系。具体可以是获取该快照中业务状态字段的值,并将该值与待检验业务数据的业务状态字段的值组合成为一组转换关系,确定检验规则中是否存在这一转换关系。

例如,针对商品交易业务,在针对一条业务数据所生成的前一快照中,获取业务状态字段的值为‘支付失败’,并获取该条业务数据的业务状态字段的值为‘退款申请’。将这两个值组合为一组转换关系,具体是‘支付失败转换成退款申请’。根据检验规则如果(业务类型=商品交易),那么(订单创建转换为支付成功、或支付成功转换为退款申请),显然没有符合检验规则中的任一规范,则确定该条业务数据存在错误。

可选地,在检验关键字段是否可变时,可以针对待检验的业务数据获取时序关系上的前一快照,获取该快照中的关键字段的值,并将该快照的关键字段的值与待检验业务数据的关键字段的值进行对比,确定是否发生了变化,并确定是否符合检验规则中关键字段的规范。

例如,针对商品交易业务,在针对一条业务数据所生成的前一快照中,获取关键字段‘商品单价’的值为‘5’、关键字段‘成交金额’的值为‘9’,并获取该条业务数据的关键字段‘商品单价’的值为‘8’、关键字段‘成交金额’的值为‘9’。

其中,商品单价发生了变化,而关键字段没有发生变化。根据检验规则如果(业务类型=商品交易),那么(商品单价:不可变、或成交金额:可变),商品单价显然不应当发生变化,存在错误;而成交金额可以变化,也可以不变化,并不存在错误。

本说明书还提供了对应于上述方法流程的装置实施例。

如图3所示,为本说明书提供的一种检验规则的生成装置的结构示意图。该装置可以用于生成适用于指定业务类型的检验规则。在业务执行过程中,对应本次业务的业务数据发生变化时,生成针对该条业务数据的一次快照;该装置可以至少包括以下单元。

快照集合获取单元201:用于获得指定业务类型的业务数据样本集合,针对业务数据样本集合中的每条业务数据,获取针对该条业务数据所生成的快照集合。

备选规则生成单元202:用于遍历业务数据样本集合中的业务数据,基于每条业务数据的快照集合,生成适用于该条业务数据的备选检验规则。

统计单元203:用于对所生成的多条备选检验规则进行统计,将符合预设统计要求的备选检验规则确定为适用于指定业务类型的正式检验规则。

其中,正式检验规则可以包括前置条件和规范;前置条件可以用于确定待检验业务数据是否属于指定业务类型;正式检验规则可以用于确定属于指定业务类型的待检验业务数据是否符合正式检验规则中包含的规范。

如图4所示,为本说明书提供的另一种检验规则的生成装置的结构示意图。除了上述3个单元,还可以包括合并单元204。

其中,统计单元203所确定的全部正式检验规则可以具有相同的前置条件。

合并单元204:用于基于相同的前置条件,合并所确定的全部正式检验规则,得到一条适用于指定业务类型的综合检验规则;综合检验规则可以包括前置条件和规范集合;规范集合可以包括所确定的全部正式检验规则中包含的全部规范。

指定业务类型的业务数据样本集合的获取方法,可以包括:将指定业务类型的多条可信业务数据添加到指定业务类型的业务数据样本集合;可信业务数据为业务可信执行过程产生的业务数据。

此外,一条业务数据可以包括一个或多个业务类型字段、以及一个业务状态字段;一个或多个业务类型字段可以用于共同表征一条业务数据所属的业务类型;业务状态字段可以用于表征一条业务数据所属业务在执行过程中的状态。备选检验规则可以包括前置条件和规范。

相对应地,备选规则生成单元202具体可以用于:基于每条业务数据的快照集合,确定其中最早的快照,根据该快照的全部业务类型字段的值生成前置条件,根据该快照的业务状态字段的值生成规范,得到适用于该条业务数据的备选检验规则。

备选规则生成单元202具体也可以用于:基于每条业务数据的快照集合,针对其中任一快照,根据该快照的全部业务类型字段的值生成前置条件,根据该快照的业务状态字段的值、以及该快照的前一快照的业务状态字段的值生成规范,得到适用于该条业务数据的备选检验规则。

一条业务数据可以包括一个或多个业务类型字段、以及一个或多个关键字段;一个或多个业务类型字段用于共同表征一条业务数据所属的业务类型。

相对应地,备选规则生成单元202具体可以用于:基于每条业务数据的快照集合,针对其中任一快照的任一关键字段,根据该快照的全部业务类型字段的值生成前置条件,根据该快照的该关键字段的值、以及该快照的前一快照的该关键字段的值生成规范,得到适用于该条业务数据的备选检验规则。

上述装置实施例的具体解释可以参见上述方法流程。

本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现一种检验规则的生成方法。

图5示出了本说明书实施例所提供的一种更为具体的计算机设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种检验规则的生成方法。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

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

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

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号