您好,欢迎访问三七文档
-1-规则引擎Version1.0.0作者:JohnnyLeon发布日期:2016-08-08-2-目录1业务规则....................................................................................................................................31.1什么是业务规则..........................................................................................................31.2业务规则的例子..........................................................................................................31.3业务规则的分类..........................................................................................................31.4业务规则的特性..........................................................................................................41.5业务规则的要素..........................................................................................................42规则引擎....................................................................................................................................52.1规则引擎是什么..........................................................................................................52.2规则引擎的组成..........................................................................................................62.3规则引擎的推理..........................................................................................................62.4规则引擎的应用..........................................................................................................72.5业务规则的提取..........................................................................................................92.6业务规则的管理........................................................................................................103典型案例..................................................................................................................................10案例1:信用卡申请.............................................................................................................11案例2:企业薪资计算..........................................................................................................13案例3:保险公司核保理赔..................................................................................................13案例4:快递产品报价..........................................................................................................14案例5:电商促销.................................................................................................................14-3-1业务规则1.1什么是业务规则与业务相关的操作规范、管理章程、规章制度、行业标准等,都可以称为业务规则(BusinessRules,简称BR)。业务规则描述了业务过程中重要的且值得记录的对象、关系和活动。其中包括业务操作中的流程、规范与策略。业务规则保证了业务能满足其目标和义务。业务规则实质上也可以理解为一组条件和在此条件下的操作,是一组准确凝练的语句,用于描述、约束及控制企业的结构、运作和战略,是应用程序中的一段业务逻辑。该业务逻辑通常由业务人员、企业的管理人员和程序开发人员共同开发和修改。业务规则的理论基础是:设置一个条件集合,当满足这个条件集合时候,触发一个或者多个动作。以规则形式捕捉策略语句能提供极大的灵活性和良好的适应性,是企业保持竞争优势的决定性因素。在市场驱动的情况下,系统架构和模型必须对客户、竞争对手、合作伙伴和整个市场情况的各种变更及时响应,同时将这些变更产生的需求作为业务规则体现到系统中去。业务规则技术的基本思想是将系统处理的业务逻辑从程序代码中抽取出来,将其转变为简单的业务规则,以结构化的业务规则数据来表示业务行为,采用类自然语言来描述,并集中存储在规则库中。业务规则由业务人员创建、实时更新和调试,业务规则之问的复杂逻辑关系由规则引擎处理。业务规则技术改变了传统的、以过程形式处理业务逻辑的方式。1.2业务规则的例子生活中的一些业务规则可能是:当顾客进入店内,最近的员工须向顾客打招呼说:“欢迎来到×××”。当客户兑换超过200元的奖券时,柜员须要求查看客户的身份证并复印。当兑换的奖券金额小于25元时,无需客户签字。早上第一个进办公室的人需要把饮水机加热按钮打开。找一些数据相关的业务规则,一些例子如下:只有当客户产生第一个订单时才创建该客户的记录。若一名学生没有选任何一门课程,把他的状态字段设为空。若销售员在一个月中卖出10套沙发,奖励500元。一个收件人必须至少有1个电话号码和1个收货地址。若一个订单的除税总额超过1000元则能有5%的折扣。若一个订单的除税总额超过500元则免运费。员工购买本公司商品能有5%的折扣。若仓库中某货品的存量低于上月卖出的总量时,则需要进货。1.3业务规则的分类-4-业务规则主要分为五类,第六类规则是术语,即专门定义的、对业务很重要的词、短语或缩略词汇,通常在术语表中定义术语。1.事实(fact):通常是对业务的真实陈述,常常与重要的业务术语关联,事实也称为不变量——关于数据实体及其属性的不可改变的真实情况。2.约束(constraint):约束限制了系统或它的用户可以执行哪些操作;例如:图书馆的借阅者最多可以同时借10本书。3.动作触发规则(actionenabler):在特定条件下触发某个动作的规则被称为动作触发规则;例如:如果某瓶化学药品到了失效日期,则通知其当前持有人。4.推论(inference):推论是根据某个条件的真实性得出某些新事实的规则,通常用“如果/则”的句式来表达;例如:如果到期30天后还没有偿还应付款,则该帐户是在拖欠债务。5.计算(computation):使用特定的数学公式或算法进行的计算业务规则;例如:订单的数量为6件~10件,则单价降低10%,数量为11件~20件,单价降低20%。1.4业务规则的特性1、原子性。业务规则不可再分,每条规则只定义一种判断和操作,复杂的业务逻辑由多条规则协同处理。2、独立性。业务规则彼此之问独立,复杂的逻辑关系由规则引擎来处理。业务规则存储在规则库中,独立于数据和程序。3、简单性。业务规则用简单直接的类自然语言来描述,很容易被业务人员和技术人员所理解。4、动态性。业务人员可以实时地修改业务规则,快捷地更新系统,低成本地维护系统。5、逻辑性。业务规则至少包含条件和执行两个部分,条件是对业务数据作用的判定,执行是对业务数据的处理。在基于业务规则的软件系统中,业务规则存储在规则库中,业务人员可以进行查询、添加、更新、统计,可以不断积累经验,实现对业务行为的知识管理,这使得业务规则与单位的数据信息一样成为单位的重要资产。1.5业务规则的要素业务规则最基本的组成成份是用于表示它的语言,业务术语是人们用于定义事物的工具,例如术语表。一个组织的本质和运行结构可以用相关的术语来描述,如“客户借一笔1年期流贷”,类似“企业信用评级不可以低于A”这样的规则则能够限定和控制企业的某些行为。此外,利用业务规则可以从一种知识推导出另一种知识。业务规则的属性包括名称、状态(被提议的、有效的、被核准的、终止的)、有效日期和终止日期、业务规则描述、表达式、触发事件等。其主要形式有决策表、决策树、规则语言和脚本。决策表:以表格的形式表示业务规则,每一行表示一条规则,列表示条件或动作,当所有条件满足时,执行动作。决策树:将一组业务规则以树型结构来表示,每一个分支表示一条决策路径,叶子节点表示结果或动作。规则语言:使用类似自然语言的句法描述规则。目前有很多种规则语言,每种语言适合解决其特定领域的问题,可以提供较好的性能,但比图形化的表示难于维护。脚本(模板):用于描述过程性的业务逻辑,是决策表、决策树、规则语言的基础。如:IF...THEN...ELSE...。-5-2规则引擎在很对行业的系统应用里,业务规则往往非常复杂,并且处于不断的更新变化之中,而现有很多系统的做法,是将业务规则绑定在程序代码里;当业务规则变更时,对应的代码也必须得跟着修改,每次即使很小的变更都需要经历开发、测试、验证、上线等过程,变更成本比较大;长时间的规则变更,系统变得越来越难以维护;如此以往,系统变得僵化、新需求插入也比较困难,上线周期也较长;另一方面,开发人员熟悉业务的程度远远比不上业务人员,却需要承担将业务规则准确无误实现的重任;使用传统的应用系统开发和实施方法,业务规则相对固定不易改动。系统的每一项策略、规则的变化都需要开发人员对源代码进行修改,业务规则动态的特点使传统的解决方案越来越难以满足电子商务业务系统的实际需求,限制了系统的灵活性和生命力。所以能否让我们的业务系统更灵活一点呢,将业务规则从技术实现中提取出来,实现技术和业务的分离,开发人员处理技术,业务人员定义业务规则,各自做自己擅长的事,这个方法就是所谓的规则引擎;以电子商务为例,电商促销是一种典型的业务规则需要频繁改动的应用;各电商平台为了吸引用户,不断推出新的服务
本文标题:业务规则和规则引擎
链接地址:https://www.777doc.com/doc-3589595 .html