上海可擴展性規(guī)則引擎

來源: 發(fā)布時間:2022-08-01

使用規(guī)則引擎可以給系統(tǒng)帶來如下優(yōu)勢:高靈活性:在規(guī)則保存在知識庫中,可以在規(guī)則變動輕易做出修改。容易掌控:規(guī)則比過程代碼更易于理解,因此可以有效地來彌補業(yè)務(wù)分析師和開發(fā)人員之間的溝通問題。降低復(fù)雜度:在程序中編寫大量的判斷條件,很可能是會造成一場噩夢。使用規(guī)則引擎卻能夠通過一致的表示形式,更好的處理日益復(fù)雜的業(yè)務(wù)邏輯。可重用性:規(guī)則集中管理,可提高業(yè)務(wù)的規(guī)則的可重用性。而且,傳統(tǒng)的代碼程序通常會添加不必要的變數(shù),很然進(jìn)行重復(fù)利用。需要留意的是,在業(yè)務(wù)規(guī)則沒有太多變動,業(yè)務(wù)規(guī)則比較簡單的情況下,是沒有必要使用規(guī)則引擎的。URule Pro規(guī)則引擎以RETE算法為中心算法。上??蓴U展性規(guī)則引擎

在使用規(guī)則引擎的時候,規(guī)則往往都是動態(tài)變化的,如何在生產(chǎn)系統(tǒng)動態(tài)的更新(增刪改)規(guī)則也是比較重要的一點,因為實現(xiàn)的方式有很多種,但具體選擇哪一種要根據(jù)實際的業(yè)務(wù)場景和架構(gòu)設(shè)計進(jìn)行權(quán)衡。規(guī)則引擎較中心的部分就是推理引擎,推理引擎的好壞決定了程序在大量的規(guī)則和事實進(jìn)行模式匹配的效率,所以在使用的時候請務(wù)必了解推理引擎的匹配模式和匹配算法,目前常見匹配模式有前向鏈接和后向鏈接,匹配算法有Rete、Linear、Treat、Leaps。當(dāng)有多個匹配結(jié)果時,規(guī)則引擎的矛盾解決策略將會決定規(guī)則執(zhí)行的靈活性,所以規(guī)則引擎的矛盾解決策略是需要關(guān)注的一點。廣東Windows規(guī)則引擎好用嗎URule Pro規(guī)則引擎采用業(yè)內(nèi)流行的純?yōu)g覽器編輯模式。

規(guī)則引擎的工作機制:規(guī)則引擎從隊列管理器中依次接收信息元,然后依規(guī)則的定義順序檢查信息元所帶規(guī)則集中的規(guī)則。規(guī)則引擎檢查第1個規(guī)則并對其條件過濾器求值,如果值為假,所有與此規(guī)則相關(guān)的動作皆被忽略并繼續(xù)執(zhí)行下一條規(guī)則。如果第二條規(guī)則的過濾器值為真,所有與此規(guī)則相關(guān)的動作皆依定義順序執(zhí)行,執(zhí)行完畢繼續(xù)下一條規(guī)則。該信息元中的所有規(guī)則執(zhí)行完畢后,信息元將被銷毀,然后從隊列管理器接收下一個信息元。在這個過程中并未考慮兩個特殊動作:放棄動作(Discard Action)和包含動作(Include Action)。放棄動作如果被執(zhí)行,將會跳過其所在信息元中接下來的所有規(guī)則,并銷毀所在信息元,規(guī)則引擎繼續(xù)接收隊列管理器中的下一個信息元。包含動作其實就是動作中包含其它現(xiàn)存規(guī)則集的動作。包含動作如果被執(zhí)行,規(guī)則引擎將暫停并進(jìn)入被包含的規(guī)則集,執(zhí)行完畢后,規(guī)則引擎還會返回原來暫停的地方繼續(xù)執(zhí)行。這一過程將遞歸進(jìn)行。

使用規(guī)則引擎的注意事項有哪些?在不同的架構(gòu)設(shè)計中,對規(guī)則引擎的使用是不同的,在單一應(yīng)用架構(gòu)中,你需要把規(guī)則嵌入到應(yīng)用中,在大型的分布式應(yīng)用場景中,你也可以將規(guī)則引擎當(dāng)作一個公共服務(wù)存在,但此時對規(guī)則服務(wù)的設(shè)計將便會變得更加苛刻,特別是在將邏輯和數(shù)據(jù)方面需要徹底解耦,否則任何服務(wù)的業(yè)務(wù)數(shù)據(jù)的變動都將會對規(guī)則服務(wù)產(chǎn)生影響,這種影響是不必要的而且可能會讓規(guī)則服務(wù)喪失可維護(hù)性并失去控制。在設(shè)計之初除了規(guī)則和數(shù)據(jù)的解耦之外,規(guī)則與規(guī)則之間耦合關(guān)系也需要關(guān)注,因為規(guī)則之間的強耦合會導(dǎo)致應(yīng)用越來越難維護(hù)但這里并不是說規(guī)則之間的弱耦合或解耦和就是好的,強耦合是不好的,適度設(shè)計)。ps:規(guī)則之間的強耦合就是一個規(guī)則的觸發(fā)肯定會導(dǎo)致另外一個規(guī)則觸發(fā)。URule Pro規(guī)則引擎中提供了交叉決策表(決策矩陣)等多種類型的業(yè)務(wù)規(guī)則設(shè)計工具。

URule Pro是一款由上海銳道信息技術(shù)有限公司自主研發(fā)的一款純Java規(guī)則引擎,它可以運行在Windows、Linux、Unix等各種類型的操作系統(tǒng)之上; URule Pro的規(guī)則設(shè)計器采用業(yè)內(nèi)頭創(chuàng)的純?yōu)g覽器編輯模式,無須安裝任何工具,打開瀏覽器即可完成復(fù)雜規(guī)則的設(shè)計與測試。URule提供了兩個版本:一個是基于Apache-2.0協(xié)議開源無償版本,URule開源版本第1款基于Apache-2.0協(xié)議開源的中式規(guī)則引擎;另一個是商用PRO版本;URule提供一個完善的web界面,我們只需要在web項目中引入即可。URule Pro規(guī)則引擎中提供了評分卡等多種類型的業(yè)務(wù)規(guī)則設(shè)計工具。江蘇純?yōu)g覽器編輯模式規(guī)則引擎如何安裝

URule Pro規(guī)則引擎采用了基于瀏覽器的仿真測試機制。上??蓴U展性規(guī)則引擎

URule Pro規(guī)則引擎交叉決策表(決策矩陣):普通決策表是通過縱向一個維度的條件來實現(xiàn)規(guī)則的約束,而交叉決策表(決策矩陣)則是通過橫向和縱向兩個維度進(jìn)行條件約束,兩個維度交叉生的單元格就是實際業(yè)務(wù)規(guī)則生效的條件,因為這種樣式有些類似于我們報表中的交叉表,所以稱之為交叉決策表,也叫決策矩陣。可以看到,交叉決策表的特點使得其可以定義更為復(fù)雜的交叉類型的業(yè)務(wù)規(guī)則。URule Pro規(guī)則引擎決策樹:之所以稱之為決策樹,是因為業(yè)務(wù)規(guī)則以樹形方式展現(xiàn)。在URule Pro當(dāng)中的決策樹,是一棵平躺的樹,設(shè)計成平躺的目的是為了可以展現(xiàn)樹的更多內(nèi)容,更好的利用顯示空間。上??蓴U展性規(guī)則引擎

上海銳道信息技術(shù)有限公司是一家有著雄厚實力背景、信譽可靠、勵精圖治、展望未來、有夢想有目標(biāo),有組織有體系的公司,堅持于帶領(lǐng)員工在未來的道路上大放光明,攜手共畫藍(lán)圖,在上海市等地區(qū)的數(shù)碼、電腦行業(yè)中積累了大批忠誠的客戶粉絲源,也收獲了良好的用戶口碑,為公司的發(fā)展奠定的良好的行業(yè)基礎(chǔ),也希望未來公司能成為*****,努力為行業(yè)領(lǐng)域的發(fā)展奉獻(xiàn)出自己的一份力量,我們相信精益求精的工作態(tài)度和不斷的完善創(chuàng)新理念以及自強不息,斗志昂揚的的企業(yè)精神將**和您一起攜手步入輝煌,共創(chuàng)佳績,一直以來,公司貫徹執(zhí)行科學(xué)管理、創(chuàng)新發(fā)展、誠實守信的方針,員工精誠努力,協(xié)同奮取,以品質(zhì)、服務(wù)來贏得市場,我們一直在路上!

標(biāo)簽: 決策引擎 規(guī)則引擎