天天看点

drools介绍

1.什么是规则引擎?

规则引擎是一种嵌套在应用程序中的组件,实现了将业务规则从应用程序代码中分离出来。规则引擎使用特定的语法编写业务规则,规则引擎可以接受数据输入、解释业务规则、并根据业务规则做出相应的决策。

2.应用背景

为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。

市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新。

为了快速、低成本的更新,业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与。

3.优点

实现业务逻辑与业务规则的分离,实现业务规则的集中管理

可以动态修改业务规则,从而快速响应需求变更

使业务分析人员也可以参与编辑、维护系统的业务规则

使用规则引擎提供的规则编辑工具,使复杂的业务规则实现变得的简单

目前开源的代表是Drools,商业的代表是iLog。

3.Drools规则引擎介绍

Drools是Jboss公司旗下一款开源的规则引擎,有如下特点;

完整的实现了Rete算法;

提供了强大的Eclipse Plugin开发支持;

通过使用其中的DSL(Domain Specific Language),可以实现用自然语言方式来描述业务规则,使得业务分析人员也可以看懂业务规则代码。

提供了基于WEB的BRMS——Guvnor,Guvnor提供了规则管理的知识库,通过它可以实现规则的版本控制,及规则的在线修改与编译,使得开发人员和系统管理人员可以在线管理业务规则。

目前版本5.1.1

3.1组件

Drools 是业务逻辑集成平台,被分为4个项目:

Drools Guvnor (BRMS/BPMS):业务规则管理系统

Drools Expert (rule engine):规则引擎,drools的核心部分

Drools Flow (process/workflow):工作流引擎

Drools Fusion (cep/temporal reasoning):事件处理

3.2Guvnor

何时使用Guvnor:

管理规则的部署/版本

不同人员访问/编辑规则

没有现有的管理规则的工具

业务规则多

3.3Guvnor的安装

下载地址:

​​http://jboss.org/drools/downloads.html​​​

1。jBoss

直接下载drools-5.0-guvnor-standalone.zip ,解压

2。Tomcat

下载drools-5.0-guvnor.zip,解压

将drools-guvnor.war拷贝至tomcat_home/webapps

将tomcat_home/webapps/drools-guvnor/ WEB-INF/lib/el-api-1.2.jar移动至tomcat_home/lib下

3。Guvnor的数据库配置

使用缺省的derby

使用其他关系数据库,配置步骤如下:

启动Guvnor,生成缺省的repository.xml
  
 修改components.xml文件,将<component name=“repositoryConfiguration”> 中路径改成自己使用的路径
  
 将repository.xml拷贝至自己使用的路径下
  
 修改repository.xml中 <Workspace name=“${wsp.name}”>下的<PersistenceManager>      

Guvnor的数据库配置…

<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager">
  
 <param name="driver" value="com.mysql.jdbc.Driver"/> 
  
 <param name="url" value="jdbc:mysql://localhost:3306/drools"/>
  
 <param name="user" value="root"/>
  
 <param name="password" value="root"/>
  
 <param name="schema" value="mysql"/> 
  
 <param name="schemaObjectPrefix" value="guvnor_"/>
  
 </PersistenceManager>