CN106775962B - 一种规则执行方法及装置 - Google Patents

一种规则执行方法及装置 Download PDF

Info

Publication number
CN106775962B
CN106775962B CN201510831616.8A CN201510831616A CN106775962B CN 106775962 B CN106775962 B CN 106775962B CN 201510831616 A CN201510831616 A CN 201510831616A CN 106775962 B CN106775962 B CN 106775962B
Authority
CN
China
Prior art keywords
rule
condition
execution result
execution
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510831616.8A
Other languages
English (en)
Other versions
CN106775962A (zh
Inventor
朱传群
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510831616.8A priority Critical patent/CN106775962B/zh
Publication of CN106775962A publication Critical patent/CN106775962A/zh
Application granted granted Critical
Publication of CN106775962B publication Critical patent/CN106775962B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

本申请涉及计算机技术领域,尤其涉及一种规则执行方法及装置,用以解决规则执行的效率较低的问题。本申请实施例提供的一种规则执行方法包括:通过执行系统内的规则中的每个条件,确定所述规则中每个条件的执行结果及所述规则的执行结果;并根据所述规则的执行结果和所述规则中每个条件的执行结果,确定所述规则中各个条件的影响度;在规则正式运行环境中,根据确定的所述规则中各个条件的影响度,确定所述规则中各个条件的执行顺序;根据所述执行顺序,依次执行各个条件,在每个条件执行完后,判断能否得到所述规则的执行结果,若能,则停止执行剩余的条件。

Description

一种规则执行方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种规则执行方法及装置。
背景技术
为了保证网络业务服务的安全性,通常需要采用成百上千条规则进行风险防护,每个规则又会包含几十个条件(condition),按照业务量为1万笔/s来计算的话,每秒钟规则引擎就要执行超过一亿次条件执行和判断。
条件通常由变量、比较符、比较值三部分组成,在计算得到变量值后,就可以通过比较符与比较值计算条件的运行结果了。比如条件“用户过去1年内在本店购买物品累计金额大于等于1000”,其中,“用户过去1年内在本店购买物品累计金额”即为变量,“大于等于”即为比较符、“1000”即为比较值,若用户过去1年内在本店购买物品累计金额为800,则由于800小于1000,该条件的运行结果为否(false),即条件不成立,若用户过去1年内在本店购买物品累计金额为1200,则由于1200大于1000,该条件的运行结果为是(true),即条件成立。
在上述条件的执行过程中,需要根据用户标识(Identity,ID)查询数据库获取用户过去一年内的购买记录,也可能需要根据用户ID调用另外一个系统的服务获取购买记录,这个过程需要消耗存储或者外围服务资源;在获取数据查询结果后,需要对数据进行加工整理,计算变量值,这个过程需要消耗CPU和内存资源;在计算得到变量值后,就可以通过比较符与比较值计算条件运行结果了。
可见,条件的执行会消耗各种系统资源,当规则执行达到千万次/秒,条件执行达到1亿次/s时,对存储、服务、CPU等系统资源的消耗极大,当系统资源成为瓶颈时,系统的性能和稳定性也变差。
发明内容
本申请实施例提供一种规则执行方法及装置,用以提高规则执行的效率,减少资源消耗。
本申请实施例提供一种规则执行方法,包括:
通过执行系统内的规则中的每个条件,确定所述规则中每个条件的执行结果及所述规则的执行结果;并根据所述规则的执行结果和所述规则中每个条件的执行结果,确定所述规则中各个条件的影响度;
在规则正式运行环境中,根据确定的所述规则中各个条件的影响度,确定所述规则中各个条件的执行顺序;根据所述执行顺序,依次执行各个条件,在每个条件执行完后,判断能否得到所述规则的执行结果,若能,则停止执行剩余的条件。
可选地,确定所述规则中每个条件的执行结果及所述规则的执行结果之前,还包括:
通过采集系统日志,获取用于执行所述规则的业务数据;或者,
从流量生产系统在线获取用于执行所述规则的业务数据。
可选地,根据所述规则的执行结果和所述规则中每个条件的执行结果,确定所述规则中各个条件的影响度,包括:
若所述规则为和类型的规则,所述和类型的规则是指只要该规则中的任一个条件的执行结果为否,则该规则的执行结果为否,只有该规则的所有条件的执行结果为是时,该规则的执行结果才为是,则:
针对该规则中的每个条件,根据该条件的执行结果为否的次数,以及该规则的执行结果为否的次数,确定该条件的影响度;
若所述规则为或者类型的规则,所述或者类型的规则是指只要该规则中的任一个条件的执行结果为是,则该规则的执行结果为是,只有该规则的所有条件的执行结果为否时,该规则的执行结果才为否,则:
针对该规则中的每个条件,根据该条件的执行结果为是的次数,以及该规则的执行结果为是的次数,确定该条件的影响度。
可选地,根据以下公式确定规则中每个条件的影响度g:
g=k×n/m
其中,k为常数;针对和类型的规则,n为该条件的执行结果为否的次数,m为该规则的执行结果为否的次数;针对或者类型的规则,n为该条件的执行结果为是的次数,m为该规则的执行结果为是的次数。
可选地,所述规则中的各个条件包括单一型条件和/或复合型条件;所述复合型条件由多个单一型条件组成,针对和类型的规则,所述复合型条件中的各个单一型条件之间为或者的关系,针对或者类型的规则,所述复合型条件中的各个单一型条件之间为和的关系。
可选地,根据所述规则的执行结果,以及规则中每个条件的执行结果,确定所述规则中各个条件的影响度,还包括:
若所述条件为复合型条件,则在确定该复合型条件的影响度后,将该复合型条件作为一个子规则,按照所述确定规则中各个条件的影响度的步骤,确定该子规则中的各个单一型条件在该子规则中的影响度。
可选地,根据所述规则中各个条件的影响度,依次执行各个条件,包括:
当执行到复合型条件时,根据该复合型条件中各个单一型条件的影响度,依次执行各个单一型条件,在每个单一条件执行完后,判断能否得到所述复合型条件的执行结果,若能,则停止执行该复合型条件中剩余的单一型条件。
本申请实施例提供一种规则执行装置,包括:
确定模块,用于通过执行规则中的每个条件,确定规则中每个条件的执行结果及规则的执行结果;并根据所述规则的执行结果和规则中每个条件的执行结果,确定所述规则中各个条件的影响度;
执行模块,用于在规则正式运行环境中,根据所述规则中各个条件的影响度,确定所述规则中各个条件的执行顺序;根据所述执行顺序,依次执行各个条件,在每个条件执行完后,判断能否得到所述规则的执行结果,若能,则停止执行剩余的条件。
本申请实施例采用短路方式执行规则:每次执行完规则中的一个条件后,都尝试计算一次规则表达式的值,一旦可以得到规则执行的结果,则可以放弃执行剩余的条件。这种方式能带来一定的短路效果,减少对资源的消耗。另外,本申请实施例通过确定规则中各个条件的影响度,来设置规则中各个条件的执行顺序,从而可以优先执行影响度较大的条件。由于条件的影响度越大,基于该条件的执行结果直接得到该规则的执行结果的可能性越大,从而可以在尽可能降低规则运行的条件数的情况下得到规则运行结果,提高规则运行效率。
附图说明
图1为本申请实施例一提供的规则执行方法流程图;
图2为本申请实施例二提供的规则执行方法流程图;
图3为规则的二叉树体现形式;
图4为本申请实施例提供的规则执行装置结构示意图。
具体实施方式
传统的规则引擎一般都采用非短路方式执行规则,非短路方式也即先分别计算规则中各个条件的值,然后基于各个条件的值计算该规则对应的规则表达式的值。在本申请中,可以采用这种方式得到规则中各个条件的值及规则表达式的值。比如,对于规则表达式Condition1和(and)Condition2and Condition3and Condition4and(Condition5或(or)Condition6),先计算Condition1~Condition6这6个条件的值,再计算该规则表达式的值。这种非短路方式需要在规则中所有条件都执行完毕后再计算规则的值,这种方式可以通过条件之间的并行计算来提升规则引擎的执行效率,但是这种方式对于资源的消耗极大,对于条件较多或者调用数据量很多的场景并不合适。
为了提高规则执行效率,可以采用短路方式执行规则。短路方式也即每次执行完规则中的一个条件后,都尝试计算一次规则表达式的值,一旦可以得到规则执行的结果,则可以放弃执行剩余的条件。这种方式能带来一定的短路效果(比如在上述规则表达式中,当Condition1执行结果为否(false)时,整个规则的执行结果也就为false,这样就不用再执行其他条件了),可以减少对资源的消耗。
为了实现短路效果的最优,规则中各个条件的执行顺序是非常重要的,如果在采用短路算法时不去调整规则中各个条件的执行顺序,比如固定采用预设的或随机定义的执行顺序,将有可能达不到降低资源消耗的目的。基于此,本申请实施例通过确定规则中各个条件的影响度,来设置规则中各个条件的执行顺序,优先执行影响度较大的条件。由于条件的影响度越大,基于该条件的执行结果直接得到该规则的执行结果的可能性越大,从而可以尽可能降低规则运行的条件数量,提高规则运行效率。
下面结合说明书附图对本申请实施例作进一步详细描述。
实施例一
如图1所示,为本申请实施例一提供的规则执行方法流程图,包括以下步骤:
S101:通过执行系统内的规则中的每个条件,确定所述规则的执行结果及规则中每个条件的执行结果。
这里,所述规则可以是指系统内设的用于风险防护的规则。本申请实施例中确定规则中各个条件的影响度,可以是在规则投入正式运行环境之前,首次确定各个条件的影响度,也可以是在规则投入正式运行环境之后,更新(即调整)各个条件的影响度。
在具体实施中,可以根据预设的流量百分比,从流量生产系统在线获取用于执行规则的业务数据,或者,也可以通过采集系统日志获取离线的业务数据。这里,所述业务数据可以是交易数据,比如流量百分比为5%,当每秒钟从流量生产系统调用100笔交易数据时,抽取其中的5笔用于条件的影响度的训练。
另外,上述执行过程可以是在规则正式运行环境中,也可以是在规则非正式运行环境中,比如,在规则正式运行环境中,对于5%的交易,根据上述非短路方式得到规则执行结果,对于剩余的95%的交易,采用S103的短路方式得到规则执行结果。采用S101的非短路方式运行规则除可以得到针对5%的交易的规则执行结果外,还可以基于得到的各个条件的执行结果及所述规则的执行结果更新规则中各个条件的影响度,详见S103的描述。若在规则非正式运行环境中执行上述S101,则S101的执行结果用于规则影响度的更新。
在具体实施中,针对每一笔交易,确定其对应的所述规则中每一个条件中的变量的值,基于确定的该变量的值,确定该笔交易对应的该条件的执行结果。这里,变量的值有可能是直接从交易数据中提取的,也有可能是基于交易数据中的用户信息,通过查询存储或调用另一个系统的服务汇总得到的。比如,一个条件为“用户是实名制用户”,则该条件中的变量“用户”的值(也即用户标识ID)就可以直接从交易数据中提取,再比如,一个条件为“本笔交易金额大于200”,则该条件中的变量“本笔交易金额”的值也可以直接从交易数据中提取。再比如,一个条件为“用户近1个月内参与本店活动次数小于1次”,则该条件中的变量“用户近1个月内参与本店活动次数”的值就需要通过查询存储或调用另一个系统的服务汇总得到。在获取变量的值后,将该变量的值与条件中的比较值之间进行比较,判断是否符合条件中的比较符,若符合,则认为这笔交易对应的该条件的执行结果为true,否则,为false。
在得到规则中的各个条件的执行结果后,可以基于各个条件的执行结果得到该规则的执行结果。针对每个条件,执行结果为true,即符合该条件,为false,即不符合该条件。一个规则可以是由多个相互之间为“和(and)”的关系的条件组成的,在这种情况下,若该规则中的一个条件的执行结果为false,则该规则的执行结果为false,只有该规则的所有条件的执行结果为true时,该规则的执行结果才为true,这种类型的规则称为and类型的规则;一个规则也可以是由多个相互之间为“或者(or)”的关系的条件组成的,在这种情况下,若该规则中的一个条件的执行结果为true,则该规则的执行结果为true,只有该规则的所有条件的执行结果为false时,该规则的执行结果才为false,这种类型的规则称为or类型的规则。
S102:根据所述规则的执行结果,以及规则中每个条件的执行结果,确定所述规则中各个条件的影响度。
这里,所述条件的影响度也即该条件在所属规则中的重要度或权重。
在具体实施中,可以基于所述规则的执行结果,以及规则中每个条件的执行结果,设置规则中各个条件的影响度,比如当对条件的执行结果与对规则的执行结果的一致性次数越高时,将该条件的影响度设置的越大。这里,执行一次该条件/规则,是指的针对一笔交易,执行该条件/规则,执行多次该条件/规则,是指的针对多笔交易,分别执行该条件/规则。
为了进一步提高影响度设置的准确性及更新效率,在本申请优选的实施方式中提出了一种自动化设置影响度的方案。针对一个and类型的规则(也即规则中各条件之间的关系为and),可以基于在规则执行结果为false的交易笔数中,查看其中每个条件的执行结果为false的交易笔数,以此来确定每个条件的影响度。相应地,针对一个or类型的规则(也即规则中各条件之间的关系为or),可以基于在规则执行结果为true的交易笔数中,查看其中每个条件的执行结果为true的交易笔数,以此来确定每个条件的影响度。详见实施例二的描述。
S103:在规则正式运行环境中,根据确定的所述规则中各个条件的影响度,确定所述规则中各个条件的执行顺序;根据该执行顺序,依次执行各个条件,在每个条件执行完后,判断能否得到所述规则的执行结果,若能,则停止执行剩余的条件。
在具体实施中,可以按照规则中各个条件的影响度由大到小的顺序,依次执行各个条件。
该步骤即采用所述短路方式运行规则,针对每一笔交易,每执行完一个条件后,尝试计算一次规则的执行结果,若能得到执行结果,则停止条件的执行,否则继续执行下一个条件,直到得到规则的执行结果。针对一个and类型的规则,只要在其中一个条件的执行结果为false后,就可以认为该规则的执行结果为false,若所有条件的执行结果都为true,则该规则的执行结果为true。针对一个or类型的规则,只要在其中一个条件的执行结果为true后,就可以认为该规则的执行结果为true,若所有条件的执行结果都为false,则该规则的执行结果为false。
需要说明的是,在本申请中,各个条件的影响度的设定由系统自动完成,不依赖于人工设定,人工不需要关注在规则中的各个条件的先后顺序问题,系统可以自动采集规则的运行日志,来确定规则中各个条件对规则运行结果的影响度,并按照影响度动态调整执行顺序,以优化执行系统的规则引擎的执行顺序,让规则引擎运行的条件最少,达到最好的短路运行效果,使规则引擎的分析耗时最短,占用的资源最少。
实施例二
在本申请实施例二中,将对本申请自动化设置影响度的方案作进一步介绍。
如图2所示,为本申请实施例二提供的规则执行方法流程图,包括以下步骤:
S201:通过执行系统内的规则中的每个条件,确定所述规则的执行结果及规则中每个条件的执行结果。
在具体实施中,可以为每一个需要更新条件影响度的规则设置运行标签,还可以设置规则非正式运行的时间范围;服务器在达到规则非正式运行的时间范围后,按照预设的流量百分比,从流量生产系统在线获取用于执行规则的交易数据,基于获取的每一笔交易数据,执行设置运行标签的规则中的各个条件,确定规则的执行结果及规则中每个条件的执行结果。具体地,可以在执行完规则中的所有条件后,基于所有条件的执行结果,确定该规则的执行结果;也可以在执行完规则中的所有条件后,基于短路方式确定规则的执行结果。总之,该步骤中,需要分别确定规则中每个条件的执行结果。
如下表一所示,为不同规则的执行结果,表一中每一笔交易对应一个记录标识ID。如下表二所示,为不同规则的执行结果以及同一规则中各个不同条件的执行结果。
记录ID 规则ID 规则执行结果
1 规则1 false
2 规则2 false
3 规则3 false
4 规则4 false
5 规则5 false
6 规则6 false
7 规则7 false
8 规则8 true
表一
记录ID 规则ID 规则结果 条件ID 条件结果
1 规则1 false Condition1 true
2 规则1 false Condition2 false
3 规则1 false Condition3 false
4 规则1 false Condition4 false
5 规则1 false Condition5 false
6 规则1 false Condition6 false
7 规则2 false Condition1 true
8 规则2 true Condition2 false
…… …… …… …… ……
表二
S202:若所述规则为和类型的规则,则针对该规则中的每个条件,根据该条件的执行结果为false的次数,以及该规则的执行结果为false的次数,确定该条件的影响度;若所述规则为or类型的规则,则针对该规则中的每个条件,根据该条件的执行结果为true的次数,以及该规则的执行结果为true的次数,确定该条件的影响度。这里,针对每一笔交易,将规则中的各个条件分别执行一次。
具体地,可以根据以下公式确定规则中每个条件的影响度g:
g=k×n/m
其中,k为常数,可以为1或大于1的值,k的作用是为了使影响度相对直观;针对and类型的规则,n为该条件的执行结果为false的次数,m为该规则的执行结果为false的次数;针对or类型的规则,n为该条件的执行结果为true的次数,m为该规则的执行结果为true的次数。
比如,针对or类型的规则,影响度系数k为100,规则中某一条件的执行结果为true的次数(也即满足条件的交易笔数)n为6000,该规则的执行结果为true的次数(也即满足规则的交易笔数)m为10000,则该条件的影响度为100×6000/10000=60。
在具体实施中,所述规则中的各个条件可以包括单一型条件和/或复合型条件;所述复合型条件由多个单一型条件组成,针对and类型的规则,所述复合型条件中的各个单一型条件之间为or的关系,针对or类型的规则,所述复合型条件中的各个单一型条件之间为and的关系。
比如,规则为:condition1and condition2and condition3and(condition4orcondition5),其中“condition4or condition5”即为复合型条件,condition4和condition5分别为该复合型条件中的单一型条件。若某一条件为复合型条件,则在确定该复合型条件的影响度后,可以将该复合型条件作为一个子规则,进一步基于上述方式确定该复合型条件中的各个单一型条件在该复合型条件中的影响度。在根据所述规则中各个条件的影响度,依次执行各个条件时,若执行到复合型条件,则根据该复合型条件中各个单一型条件的影响度,依次执行各个单一型条件,在每个单一型条件执行完后,判断能否得到所述复合型条件的执行结果,若能,则停止执行该复合型条件中剩余的单一型条件。
在采用非短路的方式执行规则中的各个条件(复合型条件整体上作为规则中的一个条件)时,可以交换规则中的各个条件的执行顺序。比如上述规则中,condition1、condition2、condition3、(condition4or condition5)之间的执行顺序可以交换。再比如,对于规则condition1or condition2or condition3or(condition4and condition5),condition1、condition2、condition3、(condition4and condition5)之间的执行顺序可以交换。
S203:根据所述规则中各个条件的影响度,确定所述规则中各个条件的执行顺序;根据该执行顺序,依次执行各个条件,在每个条件执行完后,判断能否得到所述规则的执行结果,若能,则停止执行剩余的条件。
该步骤中,可以按照规则中各个条件的影响度由大到小的顺序,依次执行各个条件。
下面通过举例的方式对上述实施例的思想作进一步说明。
比如,某个规则为:condition1and condition2and condition3andcondition4and(condition5or condition6);其中各条件分别为:
Condition1:用户 是 实名认证用户
Condition2:用户信用分 大于 700分
Condition3:本笔交易金额 大于 200元
Condition4:用户近1个月内参与本店活动次数 小于或等于1次
Condition5:用户过去1年内在本店购买次数 大于或等于 3次
Condition6:用户过去1年内在本店购买商品累计金额 大于或等于 1000
该规则可以体现为如图3所示的二叉树形式,可以按照前序遍历的方式依次执行每一个条件。在规则非正式运行环境下,得到各个条件的影响度如下表三所示:
Figure BDA0000857588730000121
表三
从上述结果可以看出,有95%的交易不满足信用分>700分的要求,这个条件对规则的影响度最高,其次是(condition5or condition6)这个条件,70%的交易都不满足。
按照表三的影响度优化所述规则中各个条件的执行顺序后即为:
Condition2and(condition5or condition6)and condition3and condition4andcondition1。若在执行Condition2后,返回结果为false,则不用再执行其它条件,直接得到规则执行的结果为false,若在执行Condition2后,返回结果为true,此时需要执行条件(condition5or condition6),这是一复合型条件,此时可以随机选择该复合型条件中condition5和condition6的执行顺序,也可以按照预先确定的condition5和condition6对于该复合型条件的影响度,确定其执行顺序,比如,可以分别将condition5和condition6的执行结果为是的次数除以该复合型条件的执行结果为是的次数,再乘以系数k,得到condition5和condition6对于该复合型条件的影响度分别为30和70,则执行复合型条件(condition5or condition6)时,先执行condition6,若执行结果为true,则可以认为该复合型条件的执行结果为true,此时不需要再执行condition5,而对于and类型的规则“Condition2and(condition5or condition6)and condition3and condition4andcondition1”,由于(condition5or condition6)的执行结果为true,则需要继续执行下一个条件condition3,直到得到最终的执行结果。
本申请提供的规则执行方法,通过执行的规则运行结果,来确定规则中各个条件的影响度,并按照规则中各个条件对规则运行结果的影响度动态调整和设置各个条件的执行顺序,以优化执行系统的规则引擎的执行顺序,使规则引擎运行的条件最少,达到最好的短路运行效果,使规则引擎的分析耗时最短,占用的资源最少。
基于同一发明构思,本申请实施例中还提供了一种与规则执行方法对应的规则执行装置,由于该装置解决问题的原理与本申请实施例规则执行方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,为本申请实施例提供的规则执行装置结构示意图,包括:
确定模块41,用于通过执行系统内的规则中的每个条件,确定所述规则中每个条件的执行结果及所述规则的执行结果;并根据所述规则的执行结果和所述规则中每个条件的执行结果,确定所述规则中各个条件的影响度;
执行模块42,用于在规则正式运行环境中,根据确定的所述规则中各个条件的影响度,确定所述规则中各个条件的执行顺序;根据该执行顺序,依次执行各个条件,在每个条件执行完后,判断能否得到所述规则的执行结果,若能,则停止执行剩余的条件。
可选地,确定模块41具体用于:
在确定所述规则中每个条件的执行结果及所述规则的执行结果之前,通过采集系统日志,获取用于执行所述规则的业务数据;或者,从流量生产系统在线获取用于执行所述规则的业务数据。
可选地,确定模块41具体用于:
若所述规则为和类型的规则,所述和类型的规则是指只要该规则中的任一个条件的执行结果为否,则该规则的执行结果为否,只有该规则的所有条件的执行结果为是时,该规则的执行结果才为是,则:
针对该规则中的每个条件,根据该条件的执行结果为否的次数,以及该规则的执行结果为否的次数,确定该条件的影响度;
若所述规则为或者类型的规则,所述或者类型的规则是指只要该规则中的任一个条件的执行结果为是,则该规则的执行结果为是,只有该规则的所有条件的执行结果为否时,该规则的执行结果才为否,则:
针对该规则中的每个条件,根据该条件的执行结果为是的次数,以及该规则的执行结果为是的次数,确定该条件的影响度。
可选地,确定模块41具体用于根据以下公式确定规则中每个条件的影响度g:
g=k×n/m
其中,k为常数;针对和类型的规则,n为该条件的执行结果为否的次数,m为该规则的执行结果为否的次数;针对或者类型的规则,n为该条件的执行结果为是的次数,m为该规则的执行结果为是的次数。
可选地,所述规则中的各个条件包括单一型条件和/或复合型条件;所述复合型条件由多个单一型条件组成,针对和类型的规则,所述复合型条件中的各个单一型条件之间为或者的关系,针对或者类型的规则,所述复合型条件中的各个单一型条件之间为和的关系。
可选地,确定模块41还用于:
若所述条件为复合型条件,则在确定该复合型条件的影响度后,将该复合型条件作为一个子规则,按照所述确定规则中各个条件的影响度的步骤,确定该子规则中的各个单一型条件在该子规则中的影响度。
可选地,执行模块42具体用于:
当执行到复合型条件时,根据该复合型条件中各个单一型条件的影响度由大到小的顺序,依次执行各个单一型条件,在每个单一条件执行完后,判断能否得到所述复合型条件的执行结果,若能,则停止执行该复合型条件中剩余的单一型条件。
本申请提供的规则执行方法和装置,通过执行的规则运行结果,来确定规则中各个条件的影响度,并按照规则中各个条件对规则运行结果的影响度动态调整和设置各个条件的执行顺序,以优化执行系统的规则引擎的执行顺序,使规则引擎运行的条件最少,达到最好的短路运行效果,使规则引擎的分析耗时最短,占用的资源最少。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (14)

1.一种规则执行方法,其特征在于,该方法包括:
通过执行系统内的规则中的每个条件,确定所述规则中每个条件的执行结果及所述规则的执行结果;并根据所述规则的执行结果和所述规则中每个条件的执行结果,确定所述规则中各个条件的影响度;
在规则正式运行环境中,根据确定的所述规则中各个条件的影响度,确定所述规则中各个条件的执行顺序;
根据所述执行顺序,依次执行各个条件,在每个条件执行完后,判断能否得到所述规则的执行结果,若能,则停止执行剩余的条件。
2.如权利要求1所述的方法,其特征在于,确定所述规则中每个条件的执行结果及所述规则的执行结果之前,还包括:
通过采集系统日志,获取用于执行所述规则的业务数据;或者,
从流量生产系统在线获取用于执行所述规则的业务数据。
3.如权利要求1所述的方法,其特征在于,根据所述规则的执行结果和所述规则中每个条件的执行结果,确定所述规则中各个条件的影响度,包括:
若所述规则为和类型的规则,所述和类型的规则是指只要该规则中的任一个条件的执行结果为否,则该规则的执行结果为否,只有该规则的所有条件的执行结果为是时,该规则的执行结果才为是,则:
针对该规则中的每个条件,根据该条件的执行结果为否的次数,以及该规则的执行结果为否的次数,确定该条件的影响度;
若所述规则为或者类型的规则,所述或者类型的规则是指只要该规则中的任一个条件的执行结果为是,则该规则的执行结果为是,只有该规则的所有条件的执行结果为否时,该规则的执行结果才为否,则:
针对该规则中的每个条件,根据该条件的执行结果为是的次数,以及该规则的执行结果为是的次数,确定该条件的影响度。
4.如权利要求3所述的方法,其特征在于,根据以下公式确定规则中每个条件的影响度g:
g=k×n/m
其中,k为常数;针对和类型的规则,n为该条件的执行结果为否的次数,m为该规则的执行结果为否的次数;针对或者类型的规则,n为该条件的执行结果为是的次数,m为该规则的执行结果为是的次数。
5.如权利要求3或4所述的方法,其特征在于,所述规则中的各个条件包括单一型条件和/或复合型条件;所述复合型条件由多个单一型条件组成,针对和类型的规则,所述复合型条件中的各个单一型条件之间为或者的关系,针对或者类型的规则,所述复合型条件中的各个单一型条件之间为和的关系。
6.如权利要求5所述的方法,其特征在于,根据所述规则的执行结果和所述规则中每个条件的执行结果,确定所述规则中各个条件的影响度,还包括:
若所述条件为复合型条件,则在确定该复合型条件的影响度后,将该复合型条件作为一个子规则,通过执行该子规则中的每个条件,确定该子规则中每个条件的执行结果及该子规则的执行结果;并根据该子规则的执行结果和该子规则中每个条件的执行结果,确定该子规则中的各个单一型条件在该子规则中的影响度。
7.如权利要求6所述的方法,其特征在于,根据所述规则中各个条件的影响度,依次执行各个条件,包括:
当执行到复合型条件时,根据该复合型条件中各个单一型条件的影响度,依次执行各个单一型条件,在每个单一条件执行完后,判断能否得到所述复合型条件的执行结果,若能,则停止执行该复合型条件中剩余的单一型条件。
8.一种规则执行装置,其特征在于,该装置包括:
确定模块,用于通过执行系统内的规则中的每个条件,确定所述规则中每个条件的执行结果及所述规则的执行结果;并根据所述规则的执行结果和所述规则中每个条件的执行结果,确定所述规则中各个条件的影响度;
执行模块,用于在规则正式运行环境中,根据确定的所述规则中各个条件的影响度,确定所述规则中各个条件的执行顺序;根据所述执行顺序,依次执行各个条件,在每个条件执行完后,判断能否得到所述规则的执行结果,若能,则停止执行剩余的条件。
9.如权利要求8所述的装置,其特征在于,所述确定模块具体用于:
在确定所述规则中每个条件的执行结果及所述规则的执行结果之前,通过采集系统日志,获取用于执行所述规则的业务数据;或者,从流量生产系统在线获取用于执行所述规则的业务数据。
10.如权利要求8所述的装置,其特征在于,所述确定模块具体用于:
若所述规则为和类型的规则,所述和类型的规则是指只要该规则中的任一个条件的执行结果为否,则该规则的执行结果为否,只有该规则的所有条件的执行结果为是时,该规则的执行结果才为是,则:
针对该规则中的每个条件,根据该条件的执行结果为否的次数,以及该规则的执行结果为否的次数,确定该条件的影响度;
若所述规则为或者类型的规则,所述或者类型的规则是指只要该规则中的任一个条件的执行结果为是,则该规则的执行结果为是,只有该规则的所有条件的执行结果为否时,该规则的执行结果才为否,则:
针对该规则中的每个条件,根据该条件的执行结果为是的次数,以及该规则的执行结果为是的次数,确定该条件的影响度。
11.如权利要求10所述的装置,其特征在于,所述确定模块具体用于根据以下公式确定规则中每个条件的影响度g:
g=k×n/m
其中,k为常数;针对和类型的规则,n为该条件的执行结果为否的次数,m为该规则的执行结果为否的次数;针对或者类型的规则,n为该条件的执行结果为是的次数,m为该规则的执行结果为是的次数。
12.如权利要求9或10所述的装置,其特征在于,所述规则中的各个条件包括单一型条件和/或复合型条件;所述复合型条件由多个单一型条件组成,针对和类型的规则,所述复合型条件中的各个单一型条件之间为或者的关系,针对或者类型的规则,所述复合型条件中的各个单一型条件之间为和的关系。
13.如权利要求12所述的装置,其特征在于,所述确定模块还用于:
若所述条件为复合型条件,则在确定该复合型条件的影响度后,将该复合型条件作为一个子规则,通过执行该子规则中的每个条件,确定该子规则中每个条件的执行结果及该子规则的执行结果;并根据该子规则的执行结果和该子规则中每个条件的执行结果,确定该子规则中的各个单一型条件在该子规则中的影响度。
14.如权利要求13所述的装置,其特征在于,所述执行模块具体用于:
当执行到复合型条件时,根据该复合型条件中各个单一型条件的影响度,依次执行各个单一型条件,在每个单一条件执行完后,判断能否得到所述复合型条件的执行结果,若能,则停止执行该复合型条件中剩余的单一型条件。
CN201510831616.8A 2015-11-25 2015-11-25 一种规则执行方法及装置 Active CN106775962B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510831616.8A CN106775962B (zh) 2015-11-25 2015-11-25 一种规则执行方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510831616.8A CN106775962B (zh) 2015-11-25 2015-11-25 一种规则执行方法及装置

Publications (2)

Publication Number Publication Date
CN106775962A CN106775962A (zh) 2017-05-31
CN106775962B true CN106775962B (zh) 2020-06-23

Family

ID=58964781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510831616.8A Active CN106775962B (zh) 2015-11-25 2015-11-25 一种规则执行方法及装置

Country Status (1)

Country Link
CN (1) CN106775962B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542410B (zh) * 2018-11-29 2022-03-15 江苏满运软件科技有限公司 规则引擎系统、方法、设备及存储介质
CN111061763B (zh) * 2019-11-13 2023-08-04 支付宝(杭州)信息技术有限公司 用于生成规则引擎的规则执行计划的方法及装置
CN112215511A (zh) * 2020-10-22 2021-01-12 杭州海康威视系统技术有限公司 一种考勤数据的计算方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122983A (zh) * 2007-08-28 2008-02-13 南京联创科技股份有限公司 条件配置管理的方法
CN101739248A (zh) * 2008-11-13 2010-06-16 国际商业机器公司 执行规则集的方法和系统
CN101739431A (zh) * 2008-11-24 2010-06-16 中国科学院计算技术研究所 一种可自调参数的串匹配方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4870786B2 (ja) * 2007-01-30 2012-02-08 富士通株式会社 接続整合性チェック処理方法,ケーブル選択処理方法,設計確認処理装置および設計確認処理プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122983A (zh) * 2007-08-28 2008-02-13 南京联创科技股份有限公司 条件配置管理的方法
CN101739248A (zh) * 2008-11-13 2010-06-16 国际商业机器公司 执行规则集的方法和系统
CN101739431A (zh) * 2008-11-24 2010-06-16 中国科学院计算技术研究所 一种可自调参数的串匹配方法和系统

Also Published As

Publication number Publication date
CN106775962A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN103748579B (zh) 在映射化简框架中处理数据
US10489372B2 (en) Data storage methods, query methods, and apparatuses thereof
US10255300B1 (en) Automatically extracting profile feature attribute data from event data
CN108256113B (zh) 数据血缘关系的挖掘方法及装置
CN104866484A (zh) 一种数据处理方法和装置
EP3279806A1 (en) Data processing method and apparatus
CN106325756B (zh) 一种数据存储、数据计算方法和设备
US20140207820A1 (en) Method for parallel mining of temporal relations in large event file
TW201214167A (en) Matching text sets
CN106775962B (zh) 一种规则执行方法及装置
CN106844320B (zh) 一种财务报表整合方法和设备
CN106201537A (zh) 一种数据处理方法及装置
JP2017534089A (ja) リソース組み合わせ処理方法、装置、デバイス及びコンピューター記憶媒体
CN108573348B (zh) 金融指标分布式计算方法及其系统
CN107229605B (zh) 文本相似度的计算方法及装置
CN106776757B (zh) 用户完成网银操作的指示方法及装置
CN107330709B (zh) 确定目标对象的方法及装置
CN115563310A (zh) 一种关键业务节点的确定方法、装置、设备及介质
CN115495587A (zh) 一种基于知识图谱的告警分析方法及装置
CN106294096B (zh) 一种信息处理方法及装置
CN110929207B (zh) 数据处理方法、装置和计算机可读存储介质
CN105761119A (zh) 在线人数分布计算方法及装置
CN112783980A (zh) 数据同步处理方法、装置、电子设备以及计算机可读介质
CN110879810A (zh) 数据处理方法及装置
CN111461542A (zh) 一种事件统计方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200922

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: Cayman Islands Grand Cayman capital building, a four storey No. 847 mailbox

Patentee before: Alibaba Group Holding Ltd.

TR01 Transfer of patent right