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>