在 Drools 當中,規則的編譯與運行要通過Drools 提供的各種API 來實現,這些API 總體來講可以分為三類:規則編譯、規則收集和規則的執行。完成這些工作的API 主要有KnowledgeBuilder、KnowledgeBase、StatefulKnowledgeSession、StatelessKnowledgeSession、、等,它們起到了對規則文件進行收集、編譯、查錯、插入fact、設置global、執行規則或規則流等作用:
在 Drools 當中,規則的編譯與運行要通過Drools 提供的各種API 來實現,這些API 總體來講可以分為三類:規則編譯、規則收集和規則的執行。完成這些工作的API 主要有KnowledgeBuilder、KnowledgeBase、StatefulKnowledgeSession、StatelessKnowledgeSession、、等,它們起到了對規則文件進行收集、編譯、查錯、插入fact、設置global、執行規則或規則流等作用:
所謂“專家”,一般都擁有某一特定領域的大量 知識,以及豐富的經驗。在解決問題時,專家 們通常擁有一套獨特的思維方式,能較圓滿地 解決一類困難問題,或向用戶提出一些建設性 的建議等。 什么是專家系統呢?簡單地講,專家系統就是 一個具有智能特點的計算機程序,它的智能化 主要表現為能夠在特定的領域內模仿人類專家 思維來求解復雜問題。因此,專家系統必須包 含領域專家的大量知識,擁有類似人類專家思 維的推理能力,并能用這些知識來解決實際問 題。例如,一個醫學專家系統就能夠像真正的 專家一樣,診斷病人的疾病,判別出病情的嚴 重性,并給出相應的處方和治療建議等等。
Drools支持2種事件處理模式:云模式(Cloud Mode)和流模式(Stream Mode) 1.云模式(Cloud Mode) 云(Cloud)處理模式是默認的處理方式。 在云模式下,不會區分事實和事件,都看成是事實。
Drools是一個使用基于規則的方法實現的專家系統的規則引擎,更準確的說屬于產生式規則系統。規則引擎這個術語是非常不明確的,因為任何以任意形式使用能夠應用于數據生成結果的規則的系統都可以稱為規則引擎。
Drools是一款基于Java的開源規則引擎,所以在使用Drools之前需要在開發機器上安裝好JDK環境,Drools5要求的JDK版本要在1.5或以上。
規則引擎API將管理API和運行時API加以分開,從而為這些包提供了較好粒度的安全控制.規則引擎API并沒有提供明顯的安全機制,它可以和J2EE規范中定義的標準安全API聯合使用.安全可以由以下機制提供,如Java authentication and authorization service (JAAS),the Java cryptography extension (JCE),Java secure Socket Extension (JSSE),或者其它定制的安全API.JAAS能被用來定義規則執行集的許可權限,從而只有授權用戶才能訪問。
Drools是Redhat公司JBoss業務邏輯智能模塊。www.jboss.org/drools/ Drools是處理規則的專家系統。
Drools是一個基于java的規則引擎,開源的,可以將復雜多變的規則從硬編碼中解放出來,以規則腳本的形式存放在文件中,使得規則的變更不需要修正代碼重啟機器就可以立即在線上環境生效。
本文檔是描述如何去使用Drools的文檔,重點放在規則的語法和用法上,可讓讀者在編寫規則是查閱,因此對于Drools的實現原理就不會詳盡的介紹,如果讀者有興趣可以聯系本文作者索取相關資料。在大型商業系統中,業務規則、商業邏輯等等都會比較復雜。而且在很多大型系統當中,很多業務規則、商業邏輯并不是一成不變的。甚至當系統進入生產階段時,客戶的業務規則、商業邏輯也會改變。某些系統要求甚至更高,要求能24小時不停機,并且能夠實時修改商業規則。這就對商業系統提出了較大的挑戰。如果將這些可變的規則直接編寫到代碼里面的話,業務規則一旦改變,就要修改代碼。并由此帶來編譯、打包、發布等等問題。這對于生產系統來說是極不方便的。因此,如何考慮把一些可變的業務規則抽取到外面,使這些業務規則獨立于程序代碼。并最好是能夠實時的修改業務規則,這樣就可以做到不用打包編譯發布等等。因此,規則引擎營運而生。
什么是規則引擎?規則引擎由推理引擎發展而來,是一種嵌入在應用程序中的組件,實現了將業務決策從應用程序代碼中分離出來,并使用預定義的語義模塊編寫業務決策。接受數據輸入,解釋業務規則,并根據業務規則做出業務決策。使用規則引擎的好處。聲明式編程:規則引擎允許你描述做什么而不是如何去做。邏輯與數據分離:數據保存在系統對象中,邏輯保存在規則中。這根本性的打破了面向對象系統中將數據和邏輯耦合起來的局面。速度及可測量性:Rete算法、Leaps算法,以及由此衍生出來的Drools的Rete、Leaps算法,提供了對系統數據對象非常有效率的匹配。
Drools簡介隨著開發的系統越來越復雜,我們需要去實現各種復雜的業務流程和業務決策。然而傳統的開發語言如Java、C#在處理這些流程和決策時并不能做的很好,我們可以通過Drools業務規則引擎取而代之。Drools規則引擎在電信、金融業有廣闊的應用空間。是基于CharlesForgy的RETE算法的開源規則引擎實現。1.1傳統開發的問題·企業系統經常是多層開發,比如可分為表現層、業務邏輯層和持久層,業務邏輯層是應用系統的核心部分,決定著業務流程和業務決策。軟件系統開發及上線的過程中客戶經常會提出一些新的業務需求或想法,所以業務邏輯層的業務流程及決策經常會發生改變,可能比其它層變動會更多。傳統開發語言如Java、C#面對復雜的業務流程時最常用的做法就是使用if/else,設想一下,如果業務夠復雜,那么系統中會出現大量的if/else存在于代碼中,伴隨著業務需求的變更,這無疑是系統維護人員的惡夢
1.Drools規則引擎基本介紹1.1Drools基本介紹Drools是用Java語言編寫的開放源碼的規則引擎。Drools使用RETE算法對規則進行求值,在Drools6.0(當前最新版本)中還引進了PHREAK算法,Drools允許使用聲明方式表達業務邏輯。可以使用非XML的本地語言編寫規則,從而便于學習和理解。并且,還可以將Java代碼直接嵌入到規則文件中,這令Drools的學習更加吸引人。1.2那什么是規則引擎呢?規則引擎由推理引擎發展而來,是一種嵌入在應用程序中的組件,實現了將業務決策從應用程序代碼中分離出來,并使用預定義的語義模塊編寫業務決策。接受數據輸入,解釋業務規則,并根據業務規則做出業務決策。
Drools規則引擎介紹Drools是Jboss公司旗下一款開源的規則引擎,它完整的實現了Rete算法;提供了強大的EclipsePlugin開發支持;通過使用其中的DSL(DomainSpecificLanguage),可以實現用自然語言方式來描述業務規則,使得業務分析人員也可以看懂業務規則代碼。最新版本Drools5提供了基于WEB的BRMS——Guvnor,Guvnor提供了規則管理的知識庫,通過它可以實現規則的版本控制,及規則的在線修改與編譯,使得開發人員和系統管理人員可以在線管理業務規則。
Drools是一款基于Java的開源規則引擎,所以在使用Drools之前需要在開發機器上安裝好JDK環境,Drools5要求的JDK版本要在1.5或以上。
Drools是一款基于Java的開源規則引擎,所以在使用Drools之前需要在開發機器上安裝好JDK環境,Drools5要求的JDK版本要在1.5或以上。
在介紹規則系統的文章中,經常提到的一句話是:任何事物都會改變,唯一不變的是變化。Drools同樣也不例外。目前Drools已經從Codehaus中獨立出來,轉投JBoss這座靠山,目前最新發布版本是3.0.4。目前名稱叫JBoss Rules,但為了描述方便,這里仍稱為Drools。Drools 3與前面分析的2.5版本比較在很多方面都發生了改變。
Drools(JBoss Rules )具有一個易于訪問企業策略、易于調整以及易于管理的開源業務規則引擎,符合業內標準,速度快、效率高。業務分析師或審核人員可以利用它輕松查看業務規則,從而檢驗是否已編碼的規則執行了所需的業務規則。