国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

使用CKRule規(guī)則引擎處理多變業(yè)務(wù)

2019-11-17 03:14:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
使用CKRule規(guī)則引擎處理多變業(yè)務(wù)

1, 多變業(yè)務(wù)

開(kāi)發(fā)系統(tǒng)時(shí),有沒(méi)有試過(guò)下面的情況,如果你試過(guò),那可以考慮一下使用規(guī)則引擎了。

序號(hào)

問(wèn)題

舉例

1

業(yè)務(wù)規(guī)則來(lái)自于一個(gè)或多個(gè)表格

商店的會(huì)員積分表,停車(chē)場(chǎng)的計(jì)費(fèi)標(biāo)準(zhǔn),快遞費(fèi)的計(jì)算表,客戶信用評(píng)分表

2

業(yè)務(wù)規(guī)則是客戶自己寫(xiě)的,難以結(jié)構(gòu)化。

工資計(jì)算辦法,生產(chǎn)配方計(jì)算,保險(xiǎn)計(jì)算,公式系統(tǒng)。

業(yè)務(wù)規(guī)則來(lái)自于表格,一般情況下表格有多個(gè)列,而這些列之間有條件和結(jié)果關(guān)系。如:

積分

會(huì)員等級(jí)

打折

0-100

普通會(huì)員

--

100-1000

白銀會(huì)員

0.99

1000-5000

黃金會(huì)員

0.9

5000~

Vip

0.85

這三列中,積分和會(huì)員等級(jí)就是條件,而打折往往就是結(jié)果,通常都是通過(guò)條件找到結(jié)果,上述表格可以用數(shù)據(jù)表保存起來(lái),但這個(gè)做法真不提倡,上表也許是用戶隨手搞的,可能過(guò)一兩個(gè)月就會(huì)變。

這些基于表格的規(guī)則,可以理解為結(jié)構(gòu)化的規(guī)則。

但用戶常常都會(huì)有非結(jié)構(gòu)化的規(guī)則要求軟件公司實(shí)現(xiàn)的,如上表,客戶增加如下要求:A,入黑名單的會(huì)員不打折,B,3月8日婦女節(jié),女會(huì)員折上折98,C,商品X不參與打折。

那就不是表格式的規(guī)則了,可以理解為非結(jié)構(gòu)化的規(guī)則。

事實(shí)上,非結(jié)構(gòu)化的規(guī)則,簡(jiǎn)直就是用戶隨手編寫(xiě)的公式,也許很多會(huì)員系統(tǒng)已經(jīng)處理了這些問(wèn)題,但對(duì)于小開(kāi)發(fā)團(tuán)隊(duì)或行業(yè)經(jīng)驗(yàn)還不夠豐富的團(tuán)隊(duì)來(lái)說(shuō),上面的要求就是“變態(tài)”,因?yàn)樽约簩?shí)現(xiàn)不了。

2,規(guī)則引擎

規(guī)則引擎就是為了處理復(fù)雜多變的業(yè)務(wù)而出現(xiàn)的,而把這些變化封裝到規(guī)則引擎中,提供通用的接口,讓實(shí)施人員或客戶在不改變低層代碼的前提下,可以比較簡(jiǎn)單地改變規(guī)則。

CKRule規(guī)則引擎并不是使用rete算法實(shí)現(xiàn)的,而是使用編譯,即規(guī)則都是代碼來(lái)實(shí)現(xiàn),基于.Net4.0的C#語(yǔ)言編寫(xiě)的。

上面的問(wèn)題,規(guī)則引擎都處理得非常好。對(duì)于表格式的數(shù)據(jù),可定義決策表進(jìn)行處理,對(duì)于非結(jié)構(gòu)化的規(guī)則,就直接編寫(xiě)公式來(lái)處理。對(duì)表格式數(shù)據(jù),需要先標(biāo)出條件列和結(jié)論列,引擎掃描每一行數(shù)據(jù),用條件列來(lái)判斷條件是否正確,如果成立就執(zhí)行結(jié)論列的數(shù)據(jù)。

而針對(duì)非結(jié)構(gòu)化的規(guī)則,開(kāi)發(fā)員可以在引擎中定義非常簡(jiǎn)化的關(guān)鍵字,對(duì)比邏輯和結(jié)論操作。并在業(yè)務(wù)系統(tǒng)調(diào)用這些定義,開(kāi)發(fā)出適合當(dāng)前業(yè)務(wù)系統(tǒng)的界面,提供友好,簡(jiǎn)單的公式編輯。在CKRule中,非結(jié)構(gòu)化規(guī)則被稱為客戶規(guī)則池,其架構(gòu)圖如下:

CKRule客戶規(guī)則池

從上圖中,可以清楚看到,終端用戶始終在業(yè)務(wù)系統(tǒng)上面操作非結(jié)構(gòu)化的公式編輯,和測(cè)試編寫(xiě)的公式,保存之后被放在數(shù)據(jù)庫(kù)中,終端用戶是不需要與引擎直接接觸的,這一特點(diǎn)就是強(qiáng)大的客戶規(guī)則池功能。

即使你遇到再無(wú)厘頭的業(yè)務(wù)規(guī)則要求,都可以在引擎中編輯好基礎(chǔ)的元數(shù)據(jù),然后在你的業(yè)務(wù)系統(tǒng)中編輯公式。這些公式是使用C#編譯的,你可以非常簡(jiǎn)單地改變?nèi)魏螛I(yè)務(wù)規(guī)則。如果開(kāi)發(fā)員定義的關(guān)鍵字,比較邏輯和結(jié)論邏輯足夠完善或客戶公式足夠簡(jiǎn)單,那把客戶規(guī)則完全交給客戶來(lái)編寫(xiě),是絕對(duì)可行而且非常節(jié)約成本的事。

想了解CKRule的體系結(jié)構(gòu),案例和下載應(yīng)用,請(qǐng)查看:

http://www.ckrule.com/


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 城口县| 南召县| 崇礼县| 弥勒县| 喜德县| 永仁县| 石首市| 清河县| 白山市| 漾濞| 乌兰县| 美姑县| 苍山县| 惠安县| 广水市| 盐池县| 辽宁省| 鹤庆县| 柞水县| 微山县| 彭山县| 禄劝| 青铜峡市| 遵化市| 恭城| 邯郸县| 瑞丽市| 石门县| 宜丰县| 平顺县| 衢州市| 澳门| 永修县| 玉溪市| 天长市| 忻城县| 化州市| 佛冈县| 济源市| 岚皋县| 苗栗市|