规则引擎

您所在的位置:网站首页 规则引擎选型 规则引擎

规则引擎

2024-07-16 02:44:16| 来源: 网络整理| 查看: 265

我是阿里巴巴做规则引擎相关工作多年的java工程师一枚,本职工作就是通过规则引擎、规则管理平台等技术输出,来应对阿里巴巴复杂多变的上层规则相关业务的支持。限于技术保密、安全等因素,本文只讲一些个人对“规则引擎”的看法,欢迎大家一起探讨。

总体来说,要搞清楚“规则引擎”,需要很好的回答以下几个问题。1、“规则引擎”的实际用途和价值2、“规则引擎”的一般实现方式3、“规则引擎”发展的一些坎坷

一、“规则引擎”的实际用途和价值

规则引擎和流程引擎一起,是使用在大规模复杂业务场景下必备的业务框架技术,使用这两门技术搭建起来的系统能够很好的梳理清楚业务逻辑,并且方便快速的修改业务逻辑,甚至可以做到需求的实时生效。

1、案例分析:

image

hard code的代价非常大,随着业务的膨胀会使开发人员和规则需求方非常的疲惫。image

然而,“规则引擎”技术的运用会使整个业务发生很大变化。image

从上面的案例可以看出,规则引擎最大的价值就在于通过以下的三个过程,大大的缓解了频繁的需求变化给整个业务系统带来的灾难。

a、逼迫系统开发人员和业务专家梳理业务,定义统一的BOM(业务对象模型)。 b、业务专家可以快速的制定修改规则,然后交由规则引擎自动化地来处理分析。 c、规则引擎代替系统开发人员,解决由规则条件关联动作变化带来的开发工作。 二、“规则引擎”的一般实现方式

一套规则引擎总体就是要做到以下的目标:

建立规则语言标准,动态编辑,自动化执行。

很多业务系统一般会使用某种脚本语言来实现,比如groovy,jruby,javascript,原因很简单单,因为脚本语言本质上可以解决变量识别和自动运行的问题,而且扩展性强,表达能力强,动态部署生效。另外,其他比如决策表等类似excel的输入,form表单的配置化 也可以转化为脚本语言。

三、“规则引擎”发展的一些坎坷 1、规则管理的复杂性:

a、优先级问题:比如你买了50块钱的东西,有满30减10,满50减20,系统会优先使用哪个规则呢?

b、冲突问题:假设有10条相关的法律规定,伤害致人死亡,会有可能判死刑。然后《未成年人保护法》规定,未满18周岁,不能判处死刑。这种情况下,系统对未成年人的杀人罪该如何判定呢?

c、规则列表的选择问题:很多时候,这可能只是个规则管理的业务模型问题,但是如何设计出一套足够应对所有的业务场景的模型还是非常难的。

2、面向运营人员的规则的页面配置化

a、通过一套通用的form表单来配置规则,产生规则脚本。最佳的实践可能是采用 表单--------->json,xml格式化数据--------->规则脚本,这样可以很好的分离配置界面和脚本的强耦合关系,方便以后的维护。

3、规则运行效率的问题

如果你google下“规则引擎”,一般会有关于JSR94 和rete算法的介绍。https://www.ibm.com/developerworks/cn/java/j-java-rules/

image

本质上,“专家决策系统规则引擎模型”和rate算法,解决的是大量重复的condition匹配效率的问题,以及规则冲突规范的问题,和脚本的性能比较不在同一个层面上。具体,大家可以看看开源规则引擎:drools的实现方式。当然,实际业务场景并不一定适合这套比价重量级的规则模型,会遇到学习成本高,灵活性差,rate算法不能发挥优势反而初始化成本很高的问题。

以上是个人结合工作实践,将一些个人对“规则引擎”的看法。本人在阿里巴巴长期担任和负责规则引擎、流程引擎相关的技术开发,并且这方面也相当的缺乏人才。这个是我们底层脚本引擎的开源项目:

https://github.com/alibaba/QLExpress

欢迎对这方面感兴趣的人联系我哦。微信: 371754252 email: [email protected]

原文第一版发表于知乎专栏 https://zhuanlan.zhihu.com/p/28487660



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭