Drools引擎学习
首先上一段话:
为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。
市场要求业务规则经常变化,系统必须依据业务规则的变化快速、低成本的更新。
为了快速、低成本的更新,业务人员应能直接管系统中的规则,不需要程序开发人员参与。
作为一名java程序员,我是这么理解的。在现代社会中,很多事情的处理都需要一个流程。哈哈,比如你户口本丢了,你得求爷爷,告奶奶,找这个签字,找那个盖章,最终把问题解决。这叫程序,也就是流程。

这是我昨天画的请假流程。如果通过引擎来做,就有个什么好处呢,就是自动流转,引擎驱动。本来我们需要考虑每一个任务task的执行人,执行数据,然后它的下一步,如果有可能的话,记录它的历史执行信息。现在我们activiti这个平台来实现这些基本的功能需求,对有个平台化的基本概念。
恩,这个思想很强大。
-------------------------------------------
引擎不是框架
框架本质上说还是一段一段的代码,没有一个驱动流转的概念。
为什么呢?
因为框架不连接数据库,而引擎需要数据库。往往自己也带有数据库中的表。
---------------------------------------------
接着上面说到,我们需要引擎来做自动化的工作,可是引擎只是实现了一个api结构。没有定义规则。
可是什么是规则呢,举个例子:工资的算法=f(税前,税率,五险一金)
一般就是这几个参数,但是算法 f 本身会变化的。f 就是规则。
---------------------------------------------
f怎么来做呢?
硬编码到activiti的xml代码中吗?改起来麻烦,而且部署以后比较麻烦。
至于写到其他的地方,然后读取-解析-配置的流程,则完全可以指定一个规则了。所以,drools属于一个规则标准。
---------------------------------------------
spring是用来取代 new关键字;
hibernate 是为了取代各种繁杂的jdbc代码;
struts是为了减少与httpservlet的交互。
流程引擎或者说规则引擎是用来干嘛的呢?
我们的业务逻辑从本质上说,还是if-else,各种各样的分支结构。而引擎的功能就是为了来管理业务逻辑。
--------------------------------------------
昨晚睡了一夜,回来看自己写的东西,都是狗屁。
没做过几个工作流,就在这里瞎比比,真是傻逼。
整个工作流体系是什么样子的,现在有哪些现成的、流行的工作流引擎,
牵涉到哪些标准+规范,我知道吗?
我还是多学学再说吧。
------------------------------------------
贴几本书:




----------------------------------------
Drools引擎学习的更多相关文章
- Drools 函数学习
Drools 函数学习 函数是定义在规则文件当中一代码块,作用是将在规则文件当中若干个规则都会用到的业务操作封装起来,实现业务代码的复用,减少规则编写的工作量.函数的编写位置可以是规则文件当中 pac ...
- Drools 查询学习
Drools 查询学习查询以 query 关键字开始,以 end 关键字结束,在 package 当中一个查询要有唯一的名称,查询的内容就是查询的条件部分,条件部分内容的写法与规则的 LHS 部分写法 ...
- NVelocity模板引擎学习笔记
NVelocity模板引擎学习笔记 学习模板引擎有一段时间现在做一些总结
- artTemplate模板引擎学习实战
在我的一篇关于智能搜索框异步加载数据的文章中,有博友给我留言,认为我手写字符串拼接效率过低,容易出错.在经过一段时间的摸索和学习之后,发现现在拼接字符串的方法都不在是自己去书写了,而是使用Javasc ...
- jade模板引擎学习笔记(WebsStorm9.0.3+ nodejs+express+jade)
jade环境搭建 jade标签写法 jade注释 jade添加类名.id.属性 jade添加脚本,css jade变量 jade多行文本显示 jade流程代码:for,each,while jade流 ...
- Away3D引擎学习笔记,持续更新
(1). 准备工作,一些必须知道的东西 (创建时间:2014-06-05) A.必要的开发语言基础.至少要懂点ActionScript 3.0语法(ActionScript 3.0语法及API参考), ...
- [Firefly引擎][学习笔记一][已完结]带用户验证的聊天室
原地址:http://bbs.9miao.com/thread-44571-1-1.html 前言:早在群里看到大鸡蛋分享他们团队的Firefly引擎,但一直没有时间去仔细看看,恰好最近需要开发一个棋 ...
- p2.js物理引擎学习
P2简介 P2是一款基于Javascript编写的HTML5 2D物理引擎,和Box2D.Nape等2D物理引擎一样,P2集成了各种复杂的物理公式和算法,可以帮助我们轻松的实现碰撞.反弹等物理现象的模 ...
- Away3D引擎学习入门笔记
(1). 准备工作,一些必须知道的东西 (创建时间:2014-06-05) A.必要的开发语言基础.至少要懂点ActionScript 3.0语法(ActionScript 3.0语法及API参考), ...
随机推荐
- Android studio错误及解决办法
错误: Cannot launch AVD in emulator. Output: emulator: ERROR: GPU emulation is disabled. Only screen s ...
- Binding 中 Elementname,Source,RelativeSource 三种绑定的方式
在WPF应用的开发过程中Binding是一个非常重要的部分. 在实际开发过程中Binding的不同种写法达到的效果相同但事实是存在很大区别的. 这里将实际中碰到过的问题做下汇总记录和理解. 1. so ...
- jQuery Ajax 实例 全解析
jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是 ...
- 【原创教程】一、Angular教程系列之认识angular
为什么我会准备写这个原创教程系列? 写下这个标题之后,看着屏幕上空白的内容区,不知从何下手,想说的似乎有很多,似乎又没啥说的.有时候就会陷入这种矛盾中,有时候就是这样,于是,我下定决心这一次一定要把这 ...
- 数据库(学习整理)----7--Oracle多表查询,三种join连接
聚合函数:(都会忽略null数据) 常用的有5种:将字段中所有的数据聚合在一条中 .sum(字段名) :求总和 .avg(字段名) :求平均值 .max(字段名) :求最大值 .min(字段名) :求 ...
- PHP设计模式之:外观模式
外观模式: 外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用: 外观模式又称为门面模 ...
- 一个在线的C++帮助文档网站 转载
http://www.cplusplus.com/ //C++参考 http://www.cppreference.com/wiki/start //C++参考 http ...
- Windows phone 之独立存储
独立存储命名空间的说明:
- CSS3圆角(border-radius)
CSS3中的border-radius支持IE9+,chrome,firefox 2.3+,以及safari3.2+浏览器. border-radius可直接使用,无需加前缀(注意:firefox13 ...
- Struts2输入校验
1.编写校验规则文件 (<ActionName>-validation.xml),文件放在Action类文件相同的路径下校验失败返回input的result. <vali ...