Drools7.5.0教程(1)-简介
来源:互联网 发布:javascript的发展现状 编辑:程序博客网 时间:2024/05/16 13:51
Drools教程(1)-简介
drools,是由JBOSS公司开源的一套基于JAVA的规则引擎系统
什么是规则引擎
Drools实现了将业务规则从应用程序代码中分离出来。规则引擎使用特定的语法编写业务规则,规则引擎可以接受数据输入、解释业务规则、并根据业务规则做出相应的决策
规则引擎的能干什么
假设我们碰到一个需求:我们要给公司工作满5年的员工发纪念章
一般我们做法是:
if(员工工作年限>=5){ 给员工发奖(); }
这种做法的优点是简单快捷高效,但是假如我们已经开发好了程序,正在线上运行,突然,公司来了需求变更,不行,纪念章不够,我们要改变规则,工作满10年,而且是管理岗位,才发纪念章,这时候,苦逼的程序员只能火速的改代码,然后 打包,然后上线,万一 万一 手忙脚乱发生各种意外,呵呵,完蛋.
那规则引擎如何处理呢?
首先,发奖程序,先去访问,规则服务-》规则服务再去访问对应的规则=》最后规则条件通过了之后,再去请求发奖程序。这样假如公司要变更发奖规则,那只需要在规则系统上对对应规则进行变更,重新发布规则就可以满足需求。当然,从系统架构层面上来说,系统的架构就变得复杂了,所以在实际运用中,依然需要根据实际情况来决定是否采用规则系统。
规则引擎的优点
- 实现业务逻辑与业务规则的分离,业务规则的集中管理
- 可以动态修改规则,动态发布,快速响应需求变更
- 可以减低开发成本,可以让业务人员参与到规则编写,降低软件工程师的介入程度(==当然即便是drools 现在也很难做到,毕竟对业务人员的要求比较高,但是可以降低介入程度==)
- 可以降低业务复杂度,降低开发成本,当然,与之相对的,系统的架构变得更加复杂。
规则引擎的缺点
- 使程序的架构变得复杂,对程序架构提出了更高的要求
- 要学习规则脚本的语法
- 某些特殊的场景或者要求,导致各种莫名的坑
Drools规则引擎介绍
Drools是Jboss公司旗下一款开源的规则引擎,有如下特点;
完整的实现了Rete算法;
提供了强大的Eclipse Plugin开发支持;
通过使用其中的DSL(Domain Specific Language),可以实现用自然语言方式来描述业务规则,使得业务分析人员也可以看懂业务规则代码。
提供了基于WEB的BRMS——Guvnor,Guvnor提供了规则管理的知识库,通过它可以实现规则的版本控制,及规则的在线修改与编译,使得开发人员和系统管理人员可以在线管理业务规则。
如果大家觉得好,哈哈,可以给我点鼓励,谢谢大家。
- Drools7.5.0教程(1)-简介
- Drools7.5.0教程(3)-workbench安装
- Drools7.5.0教程(7)-workserver部署
- Drools7.5.0教程-目录
- Drools7.5.0教程(2)-开发环境准备
- Drools7.5.0教程(4)-workbench之项目创建
- Drools7.5.0教程(5)-workbench规则开发与测试
- Drools7.5.0教程(6)-workbench规则的打包发布
- Drools7.5.0教程(8)-workserver服务发布调用
- Drools7.5.0教程(9)-workbench中git使用
- Drools7.5.0教程(10)-drools规则流的使用
- Drools7.5.0教程(11)-drools决策表的使用
- 《Drools7.0.0.Final规则引擎教程》第1章 Drools简介
- 《Drools7.0.0.Final规则引擎教程》第4章 4.4 LHS简介&Pattern
- 《Drools7.0.0.Final规则引擎教程》第4章 4.4 约束(Pattern的一部分)
- openlaszlo教程(1)-简介
- Drools教程(1)-简介
- 《Drools7.0.0.Final规则引擎教程》之Springboot集成
- 编程训练计划
- 动态开辟二维数组
- JQ绑定select标签的onchange事件,跳转、传参、添加、删除
- Android问题之AS的DDMS打不开、file explorer文件权限问题
- Warning: No message defined for username
- Drools7.5.0教程(1)-简介
- 软件工程中的文档轨迹化
- Java.lang.OutOfMemoryError: PermGen space及其解决方法
- 互联网时代下的大数据
- Codeforces Round #400 (Div. 1 + Div. 2, combined) 776C Molly's Chemicals
- web安全概略
- 平衡树模板
- C语言实验——计算1到n的和(循环结构)
- 分布式锁与实现(一)——基于Redis实现