推薦教學:java教學
Drools簡介
Drools(JBoss Rules )具有一個易於存取企業策略、易於調整以及易於管理的開源業務規則引擎,符合業內標準,速度快、效率高。業務分析師或審核人員可以利用它輕鬆查看業務規則,從而檢驗是否已編碼的規則執行了所需的業務規則。
JBoss Rules 的前身是Codehaus的一個開源專案叫做Drools。最近被納入JBoss門下,更名為JBoss Rules,成為了JBoss應用伺服器的規則引擎。
Drools是為Java量身定制的基於Charles Forgy的RETE演算法的規則引擎的實作。具有了OO介面的RETE,使得商業規則有了更自然的表達。
Drools的用XML的
其中Java程式碼會使用Antlr來解釋,而Groovy和Python本身就是腳本語言,可以直接呼叫。
Drools的聰明之處在於,用XML節點來規範If--Then句式和事實的定義,使引擎幹起活來很舒服。
而使用Java,Groovy等原生語言來做判斷和執行語句,讓程式設計師很容易過渡、移植,學習曲線很低。
擴充內容:規則引擎
# 規則引擎起源於基於規則的專家系統,而基於規則的專家系統又是專家系統的其中一個分支。 專家系統屬於人工智慧的範疇,它模仿人類的推理方式,使用試探性的方法進行推理,並使用人類能理解的術語解釋和證明它的推理結論
規則引擎一般由3個部分組成:規則函式庫(Knowledge base) Working Memory(Fact base) 推理機(規則引擎)。
規則引擎的工作:模式匹配、衝突消解、執行引擎。
模式比對演算法:將事實與規則進行比對的演算法。 常見的模式比對演算法有RETE,LFA,TREAI,LEAPS。 Drools採用的匹配演算法就是RETE,該演算法被認為是目前世界上最先進的模式匹配演算法。
補充:規則引擎(rule engine)是有很多種的。依據規則的執行方式來劃分。商業上採用的大部分規則引擎都是 forward chaining(漢語咋解釋不知道)類型的。 forward chaining類型有分為2種:(1)production/inference rules(漢語咋解釋不知道)它是透過IFconditionTHEN action這種條件判斷的形式來驅動規則引擎的。 (2)reaction/Event Condition Action rules,這個規則引擎是透過事件機制來驅動規則引擎的。這是我從維基百科上了解的。
以上是drools規則引擎是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!