Ckrule規則引擎

使用Ckrule規則引擎決策表,可以使用表格的形式,非常直觀地創建大量的規則。 CKRule就一個規則引擎,是一個中間件,目標是為了減少業務系統的底層代碼的變動。 對CKRule的使用,一般集中在業務系統的邏輯層,用來處理複雜多變的邏輯。

基本信息

軟體簡介

Ckrule規則引擎是一個嵌入到應用程式中的中間件,實現了將業務決策邏輯從應用程式代碼中分離出來,並使用預定義的語義模組編寫業務決策,接受數據輸入,解釋業務規則,根據業務規則做出業務決策。Ckrule規則引擎是一個業務規則管理和複合事件處理的綜合性引擎,可以將企業管理策略的定義,部署,管理和維護工作從核心代碼中分離。企業將深入的業務決策整合到程式,並把市場變化因素以業務規則的形式進行更新,而CKRule可大大降低程式維護的成本,促進業務程式實現更多準確、快速和有效的商務決策。
Ckrule規則引擎,引用IBM一位技術專家的說法是這樣的:“業務軟體系統通常要處理複雜的重複任務。這些系統是使用專用業務規則編碼的,用於完成這些任務,但必須能夠靈活適應變化。為了簡化開發,允許快速部署更改,人們創建了規則引擎,獨立於過程代碼執行業務規則,允許在無需修改底層代碼的前提下更改規則。”
簡單來說,規則引擎就是為了處理複雜多變的業務而出現的,把這些變化封裝到規則引擎中,提供通用的接口,讓實施人員,維護人員或客戶在不改變低層代碼的前提下,可以比較簡單地改變規則。

做法說明

規則引擎廠家大量採用rete算法作為規則引擎的核心技術,各個廠家都是以實現rete算法作為產品的標榜。而另一種做法就是使用編譯引擎來實現,即編寫出來的規則是可以生成代碼的。
Ckrule規則引擎並不使用rete算法的,而是使用編譯引擎,即規則都是用代碼來實現,基於.Net4.0的C#語言編寫的。
Rete是基於記憶體的處理,而編譯則是基於編譯器,是可以直接執行的代碼。因此從直觀感受來看,編譯會比算法要快。不過編譯也帶來語法學習成本的問題,要使用CKRule的全部功能就要掌握基本的C#語法。

軟體用途

1、套用範圍
Ckrule規則引擎是一個通用中間件,適用於各大行業,比如:促銷系統管理,生產配方系統,工資管理系統,客戶關係管理系統,供應鏈管理系統,保險業務規則管理系統,醫院信息系統等等。
2、純CSharp編寫
Ckrule規則引擎使用純CSharp編寫,任何有CSharp編程基礎的技術人員都可以非常簡便地使用該工具。
除.Net4.0Framework外,無需安裝任何客戶端或伺服器程式,如Biztalk,OracleClient等等。
維護人員可以使用最簡單的IF/THEN語句維護規則。
3、決策表
使用Ckrule規則引擎決策表,可以使用表格的形式,非常直觀地創建大量的規則。
這些規則類似一個列表形式,像Excel編寫的一個列表,即使不熟悉計算機技術的業務專家也可以很方便地設定。
而Ckrule規則引擎可以從資料庫讀取決策表並載入,實現了業務系統與規則引擎的完美隔離。
4、決策樹
決策樹表現形式相對簡單、形象和生活,也常常用於工作中,但因為大部分的業務系統都基於關係型資料庫,保存樹型數據非常不方便,決策樹上面的結點的運算也相當的困難。
Ckrule規則引擎解決了這個問題,可以比較簡便地實現。
5、客戶規則池
允許終端用戶通過業務系統輸入用戶定義的表達式,用最簡單有效的方法來表達業務規則。
例如有如下的規則:買IBMThinkpad430,有9拆優惠。
那么,在業務系統中可以這樣輸入:
IsBrand(“IBM”),Discount(0.1,”ThinkPad430”)
這個輸入的動作是在業務系統中實現的。而後面Ckrule規則引擎提供了各種各樣的接口或控制項,供業務系統使用,但始終對用戶是透明的,用戶始終是在使用業務系統。
客戶規則池生成的規則會保存在資料庫中,調用Ckrule規則引擎時才會載入。保證了業務系統與規則引擎兩者的隔離。
6、口語編輯器
口語式編輯器可以在Ckrule規則引擎內部及客戶規則池中被調用,其語法與口語表達基本相同。
與標準編輯器相比,口語式編輯器有大量的提示,這使規則編寫變得非常容易,會使用Word就會使用口語式編輯器,無需任何技術基礎,一學即會。
口語式編輯器允許客戶程式直接調用,這大大提供了業務系統規則編寫的友好性。
7、中間件的架構體系
7.1架構
CKRule就一個規則引擎,是一個中間件,目標是為了減少業務系統的底層代碼的變動。對CKRule的使用,一般集中在業務系統的邏輯層,用來處理複雜多變的邏輯。例如:業務系統是三層結構的,那么就可以使用業務邏輯層調用CKRule的DLL,或藉助Remoting或WCF技術進行服務部署及調用。
7.2調用
邏輯層對CKRule的調用主要通過RuleFacade接口,需要傳入原業務系統定義的對象(下稱BusinessEntity)和規則包的名稱。CKRule不會直接引用BusinessEntity,為了獨立與業務邏輯,CKRule也有對象定義,整個對象庫就是用來定義與BusinessEntity對應屬性和類。
一般而言,不可以把CKRule當成一個代碼編譯器,雖然這個工具有這個能力,但不能與VisualStudio等IDE相提並論。
作為規則中間件,CKRule最大的作用是快速改變規則、公式或邏輯,並提供一個異常強大的功能:允許業務系統開發商快速開發出規則池,以便最終給終端用戶自行編寫規則。

適用人群

如果企業遇到如下的情況,那么適合使用CKRule規則管理:
1、經常變,業務系統需要直接回響變化,快速實現。
常見的情況有促銷系統,企業根據市場形勢,經常變化促銷的策略,業務系統就要快速回響。
2、多樣化決策,業務系統需要適應企業的商務模型和提供的產品/服務。
常見的情況有工資系統,企業會根據自身的需要,不斷調整自己的內部管理模式,以適應公司的產品和服務。

軟體特點

1、允許決策邏輯獨立於核心程式代碼。
2、允許技術開發員和業務專家共同定義和管理決策邏輯。
3、能夠在程式運行時,允許程式執行決策邏輯管理,提供規則編輯器和運行引擎。
4、使用純.NetCSharp開發,提供豐富API並允許使用所有.NetAPI,調用.Net類,方法,實現接口。

軟體優勢

1、低耦合
引入CKRule不會導致業務系統的架構有任何的變化,業務系統可以直接引用CKRule的Dll,傳遞業務實體對象(BusinessEntity),任何變化內容都在CKRule內部進行了,整個調用過程只需要一句指令,引用兩個DLL。CKRule規則的改變完全不影響業務核心程式。
在CKRule內部可以調用資料庫,調用決策表,決策樹,客戶規則池,口語式編輯器。
2、非商業使用免費
任何機構或個人如果出於非商業用途,可以免費使用CKRule。
哪些人可以使用軟體的免費授權?
個人使用軟體用於個人的用途(如愛好,娛樂,教育目的);
學生,教員,研究員,管理員,維護員和大學員工的演示;
大學或其他教育機構,非營利性組織。

相關詞條

相關搜尋

熱門詞條

聯絡我們