規則引擎是基于規則的專家系統的核心部分,主要由三部分組成:規則庫(Knowledge base)+Working Memory(Fact base)+推理機(規則引擎),規則引擎根據既定事實和知識庫按照一定的算法執行推理邏輯得到正確的結果。 規則引擎由推理引擎發展而來,是一種嵌入在應用程序中的組件,實現了將業務決策從應用程序代碼中分離出來,并使用預定義的語義模塊編寫業務決策。接受數據輸入,解釋業務規則,并根據業務規則做出業務決策。 目前,市面上應用產生了眾多的規則引擎。開源規則引擎的代表是Drools;商業規則引擎的代表是ILog。
Drools是一款基于Java的開源規則引擎,所以在使用Drools之前需要在開發機器上安裝好JDK環境,Drools5要求的JDK版本要在1.5或以上。
Drools是一款基于Java的開源規則引擎,所以在使用Drools之前需要在開發機器上安裝好JDK環境,Drools5要求的JDK版本要在1.5或以上。
Drools是一款基于Java的開源規則引擎,所以在使用Drools之前需要在開發機器上安裝好JDK環境,Drools5要求的JDK版本要在1.5或以上。
Drools是一款基于Java的開源規則引擎,所以在使用Drools之前需要在開發機器上安裝好JDK環境,Drools5要求的JDK版本要在1.5或以上。
在 Drools 當中,規則的編譯與運行要通過Drools 提供的各種API 來實現,這些API 總體來講可以分為三類:規則編譯、規則收集和規則的執行。完成這些工作的API 主要有KnowledgeBuilder、KnowledgeBase、StatefulKnowledgeSession、StatelessKnowledgeSession、、等,它們起到了對規則文件進行收集、編譯、查錯、插入fact、設置global、執行規則或規則流等作用:
Drools是一個使用基于規則的方法實現的專家系統的規則引擎,更準確的說屬于產生式規則系統。規則引擎這個術語是非常不明確的,因為任何以任意形式使用能夠應用于數據生成結果的規則的系統都可以稱為規則引擎。
在介紹規則系統的文章中,經常提到的一句話是:任何事物都會改變,唯一不變的是變化。Drools同樣也不例外。目前Drools已經從Codehaus中獨立出來,轉投JBoss這座靠山,目前最新發布版本是3.0.4。目前名稱叫JBoss Rules,但為了描述方便,這里仍稱為Drools。Drools 3與前面分析的2.5版本比較在很多方面都發生了改變。
本文檔是描述如何去使用Drools的文檔,重點放在規則的語法和用法上,可讓讀者在編寫規則是查閱,因此對于Drools的實現原理就不會詳盡的介紹,如果讀者有興趣可以聯系本文作者索取相關資料。在大型商業系統中,業務規則、商業邏輯等等都會比較復雜。而且在很多大型系統當中,很多業務規則、商業邏輯并不是一成不變的。甚至當系統進入生產階段時,客戶的業務規則、商業邏輯也會改變。某些系統要求甚至更高,要求能24小時不停機,并且能夠實時修改商業規則。這就對商業系統提出了較大的挑戰。如果將這些可變的規則直接編寫到代碼里面的話,業務規則一旦改變,就要修改代碼。并由此帶來編譯、打包、發布等等問題。這對于生產系統來說是極不方便的。因此,如何考慮把一些可變的業務規則抽取到外面,使這些業務規則獨立于程序代碼。并最好是能夠實時的修改業務規則,這樣就可以做到不用打包編譯發布等等。因此,規則引擎營運而生。
Drools是Redhat公司JBoss業務邏輯智能模塊。www.jboss.org/drools/ Drools是處理規則的專家系統。
Drools規則引擎介紹Drools是Jboss公司旗下一款開源的規則引擎,它完整的實現了Rete算法;提供了強大的EclipsePlugin開發支持;通過使用其中的DSL(DomainSpecificLanguage),可以實現用自然語言方式來描述業務規則,使得業務分析人員也可以看懂業務規則代碼。最新版本Drools5提供了基于WEB的BRMS——Guvnor,Guvnor提供了規則管理的知識庫,通過它可以實現規則的版本控制,及規則的在線修改與編譯,使得開發人員和系統管理人員可以在線管理業務規則。