規則引擎 (Rule Engine)介紹
規則引擎起源於基於規則的專家系統,而基於規則的專家系統又是專家系統的其中一個分支。專家系統屬於人工智能的范疇,它模仿人類的推理方式,使用試探性的方法進行推理,並使用人類能理解的術語解釋和證明它的推理結論。
利用它就可以在應用系統中分離商業決策者的商業決策邏輯和應用開發者的技術決策,並把這些商業決策放在中心數據庫或其他統一的地方,讓它們能在運行時可以動態地管理和修改,從而為企業保持靈活性和競爭力提供有效的技術支持。
簡單地說:讓程序的業務邏輯可以通過規則配置進行處理。
.NET下的開源規則引擎有:
序號:1
規則引擎:Drools.NET
介紹說明:Drools.NET 是 .NET 版的 Drools,基於Charles Forgy的RETE算法的開源的業務規則引擎。
官方地址:http://droolsdotnet.codehaus.org/
序號:2
規則引擎:SRE
介紹說明:SRE (Simple Rule Engine)是.NET下的一款輕量級的開源正向串行的推理規則引擎(forward chaining inference rule engine)。它容易理解,可以解決復雜的問題。
官方地址:http://sourceforge.net/projects/sdsre/
序號:3
規則引擎:NxBRE
介紹說明:NxBRE是.NET平台下的一款開源輕量級的業務規則引擎(aka Rule Based Engine),它由正向串行的推理引擎(forward-chaining inference engine)和XML驅動流控制引擎(XML-driven flow control engine)組成.它支持 RuleML 0.9 Naf Datalog 和 Visio 2003 建模。
官方地址:http://sourceforge.net/projects/nxbre
Java下的開源規則引擎有:
序號:1
規則引擎:Drools
介紹說明:Drools是Java語言開發,基於Charles Forgy的RETE算法的開源的業務規則引擎。
官方地址:http://www.jboss.org/drools/
序號:2
規則引擎:Jamocha
介紹說明:Jamocha是一個Java語言開發的開源規則引擎。
官方地址:http://sourceforge.net/projects/jamocha/
規則引擎相關構件
規則引擎是一種根據規則中包含的指定過濾條件,判斷其能否匹配運行時刻的實時條件來執行規則中所規定的動作的引擎。與規則引擎相關的有四個基本概念,為更好地理解規則引擎的工作原理,下面將對這些概念進行逐一介紹。
1)信息元(Information Unit)
信息元是規則引擎的基本建築塊,它是一個包含了特定事件的所有信息的對象。這些信息包括:消息、產生事件的應用程序標識、事件產生事件、信息元類型、相關規則集、通用方法、通用屬性以及一些系統相關信息等等。
2)信息服務(Information Services)
信息服務產生信息元對象。每個信息服務產生它自己類型相對應的信息元對象。即特定信息服務根據信息元所產生每個信息元對象有相同的格式,但可以有不同的屬性和規則集。需要注意的是,在一台機器上可以運行許多不同的信息服務,還可以運行同一信息服務的不同實例。但無論如何,每個信息服務只產生它自己類型相對應的信息元。
3)規則集(Rule Set)
顧名思義,規則集就是許多規則的集合。每條規則包含一個條件過濾器和多個動作。一個條件過濾器可以包含多個過濾條件。條件過濾器是多個布爾表達式的組合,其組合結果仍然是一個布爾類型的。在程序運行時,動作將會在條件過濾器值為真的情況下執行。除了一般的執行動作,還有三類比較特別的動作,它們分別是:放棄動作(Discard Action)、包含動作(Include Action)和使信息元對象內容持久化的動作。
4)隊列管理器(Queue Manager)
隊列管理器用來管理來自不同信息服務的信息元對象的隊列。
未來應用規則引擎的趨勢
商業世界充滿了關於變化的陳詞濫調,如任何事物都會改變,唯一不變的是變化等等。而在技術領域里,情況正好相反。我們仍然在試圖解決30年前軟件業中同樣的一堆問題--也許比30年前還要多的問題。在過去的十年,IT從業人員淹沒在軟件方法學的大量文獻中,如快速軟件開發,極限編程,敏捷軟件開發等,它們無一例外地強調靈活和變化的重要性。
但商業通常比開發團隊所依賴的軟件過程和技術改變得更加迅速。當商業策划人員試圖重整IT部門,以支持新的業務轉型時,仍然覺得很費勁。
哪些軟件項目正在使用規則引擎
目前中國移動的BOSS系統、企業應用的ERP、CRM以及電子商務的銷售系統等。
其他規則引擎資料:
http://www.cnblogs.com/jietang/p/5321841.html
開源規則引擎:http://www.drools.org/
https://sourceforge.net/projects/jamocha/
規則校驗+工作流(Activiti):
http://my.oschina.net/lock0818/blog/740399
http://my.oschina.net/xiehongfei/blog/690074?p={{currentPage+1}}
http://git.oschina.net/hongfeieleven/monster-framework
規則引擎博客:http://blog.csdn.net/wangmengqz/article/details/11895941