Drools引擎学习

时间:2024-12-01 13:03:43

首先上一段话:

为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。
市场要求业务规则经常变化,系统必须依据业务规则的变化快速、低成本的更新。
为了快速、低成本的更新,业务人员应能直接管系统中的规则,不需要程序开发人员参与。

作为一名java程序员,我是这么理解的。在现代社会中,很多事情的处理都需要一个流程。哈哈,比如你户口本丢了,你得求爷爷,告奶奶,找这个签字,找那个盖章,最终把问题解决。这叫程序,也就是流程。

Drools引擎学习

这是我昨天画的请假流程。如果通过引擎来做,就有个什么好处呢,就是自动流转,引擎驱动。本来我们需要考虑每一个任务task的执行人,执行数据,然后它的下一步,如果有可能的话,记录它的历史执行信息。现在我们activiti这个平台来实现这些基本的功能需求,对有个平台化的基本概念。

恩,这个思想很强大。

-------------------------------------------

引擎不是框架

框架本质上说还是一段一段的代码,没有一个驱动流转的概念。

为什么呢?

因为框架不连接数据库,而引擎需要数据库。往往自己也带有数据库中的表。

---------------------------------------------

接着上面说到,我们需要引擎来做自动化的工作,可是引擎只是实现了一个api结构。没有定义规则。

可是什么是规则呢,举个例子:工资的算法=f(税前,税率,五险一金)

一般就是这几个参数,但是算法 f 本身会变化的。f 就是规则。

---------------------------------------------

f怎么来做呢?

硬编码到activiti的xml代码中吗?改起来麻烦,而且部署以后比较麻烦。

至于写到其他的地方,然后读取-解析-配置的流程,则完全可以指定一个规则了。所以,drools属于一个规则标准。

---------------------------------------------

spring是用来取代 new关键字;

hibernate 是为了取代各种繁杂的jdbc代码;

struts是为了减少与httpservlet的交互。

流程引擎或者说规则引擎是用来干嘛的呢?

我们的业务逻辑从本质上说,还是if-else,各种各样的分支结构。而引擎的功能就是为了来管理业务逻辑。

--------------------------------------------

昨晚睡了一夜,回来看自己写的东西,都是狗屁。

没做过几个工作流,就在这里瞎比比,真是傻逼。

整个工作流体系是什么样子的,现在有哪些现成的、流行的工作流引擎,

牵涉到哪些标准+规范,我知道吗?

我还是多学学再说吧。

------------------------------------------

贴几本书:

Drools引擎学习Drools引擎学习Drools引擎学习

Drools引擎学习

----------------------------------------