天天看點

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>