Ckrule規則引擎是一種嵌入在應用程式中的組件,實現了,並使用預定義的語義模組編寫業務決策。接受數據輸入,解釋業務規則,並根據業務規則做出業務決策。CKRule是一個業務規則管理和複合事件處理的綜合性引擎,可以將企業管理策略的定義,部署,管理和維護工作從核心代碼中分離。企業將深入的業務決策整合到程式,並把市場變化因素以業務規則的形式進行更新。而CKRule可大大降低程式維護的成本,促進業務程式實現更多準確和有效的商務決策。簡單來說,規則引擎就是為了將業務決策從應用程式代碼中分離出來處理複雜多變的業務而出現的,而把這些變化封裝到規則引擎中,提供通用的接口,讓實施人員或客戶在不改變低層代碼的前提下,可以比較簡單地改變規則。
基本介紹
- 中文名:Ckrule規則引擎
- 性質:嵌入式組件
- 作用:將業務決策分離出來
- 性能:綜合性引擎
做法說明,軟體評價,軟體用途,適用人群,軟體特點,
做法說明
規則引擎廠家大量採用rete算法來作為規則引擎的核心技術,各個廠家都是以實現rete算法作為產品的標榜。
而另一種做法就是使用編譯來實現,即編寫出來的規則是可以生成代碼的。
CKRule並不是使用rete算法的,而是使用編譯,即規則都是代碼來實現,基於.Net4.0的C#語言編寫的。
Rete是基於記憶體的處理,而編譯則是基於編譯器,是可以直接執行的代碼。因此從直觀感受來看,編譯會比算法要快。不過編譯也帶來語法學習成本的問題,要使用CKRule就要掌握基本的C#語法。
軟體評價
Ckrule規則引擎,引用IBM一位技術專家的說法是這樣的:
“業務軟體系統通常要處理複雜的重複任務。這些系統是使用專用業務規則編碼的,用於完成這些任務,但必須能夠靈活適應變化。為了簡化開發,允許快速部署更改,人們創建了規則引擎,獨立於過程代碼執行業務規則,允許在無需修改底層代碼的前提下更改規則。”
軟體用途
1、 純csharp編寫
CKRule使用純CSharp編寫,任何有CSharp編程基礎的技術人員都可以非常簡便地使用該工具。
除.Net4.0 Framework外,無需安裝任何客戶端或伺服器程式,如Biztalk,Oracle Client等等。
技術員可以使用最簡單的IF/THEN語句維護規則。
2、 決策表
使用CKRule決策表,你可以使用表格的形式,非常直觀地創建大量的規則。
這些規則類似一個列表形式,如Excel編寫的一個列表,即使不熟悉計算機技術的業務專家也方便設定。
而作為CKRule作為中間件可以從資料庫讀取決策表並載入,實現了業務系統與規則引擎的完美隔離。
3、 決策樹
決策樹表現形式相對簡單、形象和生活,也常常用於工作中,但因為大部分的業務系統都基於關係型資料庫,保存樹型數據非常不方便,
決策樹上面的結點的運算也相當的困難。
CKRule解決了這個問題,可以比較簡便地實現。
4、 客戶規則池
允許終端用戶輸入用戶定義的表達式,用最簡單有效的方法來表達業務規則。
例如有如下的規則: 買IBM Thinkpad430,有9拆優惠。
那么,在業務系統中可以這樣輸入:
IsBrand(“IBM”),Discount(0.1,”ThinkPad430”)
這個輸入的動作是在業務系統中實現的。在客戶規則池功能中,CKRule提供了各種各樣的接口或控制項,供業務系統使用,但CKRule對用戶是透明的,用戶始終是在使用業務系統中。客戶規則池生成的規則會保存在資料庫中,調用CKRule時才會載入。
5、 口語編輯器
口語式編輯器可以在CKRule內部及客戶規則池中被調用,正如其名,其語法與口語表達基本相同。
與標準編輯器相比,口語式編輯器有大量的提示,這使規則編寫變得非常容易,會使用Word就會使用口語式編輯器,無需任何技術基礎,一學即會。
口語式編輯器允許客戶程式直接調用,這大大提供了業務系統規則編寫的友好性。
6.中間件的架構體系
6.1.架構
CKRule就一個規則引擎,C#編寫,可編譯,是一個中間件的角色,目標是為了減少底層代碼的變動。如此可知,對CKRule的使用,是集中在邏輯處理,使用CKRule的一般都是處理複雜多變的業務,即業務系統與中間件的關係。而如果業務系統是三層結構的,那么就是業務邏輯層調用 CKRule的。CKRule可以藉助CKRemote的遠程能力獨立為一個Remoting或WCF伺服器,而業務系統的套用邏輯層使用Remoting或WCF調用這個服務。
6.2調用
套用服務層對CKRule的調用集中在RuleFacade接口,需要傳入原業務系統定義的對象(下稱BusinessEntity)和規則包的名稱。CKRule不會直接引用BusinessEntity,為了獨立與業務邏輯,CKRule有對象定義,可以定義傳入傳出屬性。
整個對象庫就是用來定義與BusinessEntity對應屬性和類。通過下表,可以更清晰兩者的關係。
一般而言,不可以把CKRule當成一個代碼編譯器,雖然這個工具有這個能力,但要與Visual Studio等IDE對比,那是自取其辱了。
作為規則中間件,CKRule最大的作用是快速改變規則或公式,同時有一個異常強大的功能是允許業務系統開發商快速開發出規則池,以便最終給終端用戶自行編寫規則。規則池的使用另有文章介紹。
7.套用範圍
CKRule適用於各大行業,比如:1.CKRule在HIS醫保登記中的使用 2.使用CKRule實現促銷管理系統(一) 3.使用CKRule實現PVC配方計算(三) 4.使用CKRule實現PVC配方計算(一) 5.使用CKRule實現工資計算(工資項和公式) 6.某系統的積分管理業務
適用人群
如果您的企業遇到如下的情況,那么你適合使用規則管理:
1, 經常變,業務系統需要直接回響變化,快速實現。
常見的情況有促銷系統,企業根據市場形勢,經常變化促銷的策略,業務系統就要快速回響。
2, 多樣化決策,業務系統需要適應企業的商務模型和提供的產品/服務。
常見的情況有工資系統,企業會根據自身的需要,不斷調整自己的內部管理模式,以適應公司的產品和服務。
軟體特點
1、 允許決策邏輯獨立於核心程式代碼。
2、允許技術開發員和業務專家共同定義和管理決策邏輯。
3、能夠在程式運行時,允許程式執行決策邏輯管理,提供規則編輯器和運行引擎。
4、使用純.Net CSharp開發,提供豐富API並允許使用所有.Net API,調用.Net類,方法,實現接口。
5、能夠實現您表達式求值快速化,以及pvc配方計算,通過Ckrule規則引擎,還能方便您促銷管理