規則引擎 (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從業人員淹沒在軟體方法學的大量文獻中,如快速軟體開發,極限編程,敏捷式軟體開發 (Agile Software Development)等,它們無一例外地強調靈活和變化的重要性。
但商業通常比Team Dev所依賴的軟體過程和技術改變得更加迅速。當商業策劃人員試圖重整IT部門,以支援新的業務轉型時,仍然覺得很費勁。
哪些軟體項目正在使用規則引擎
目前中國移動的BOSS系統、公司專屬應用程式的ERP、CRM以及電子商務的銷售系統等。