簡易規(guī)則引擎使用方法

來源: 發(fā)布時間:2022-10-27

任何一個規(guī)則引擎都需要很好地解決規(guī)則的推理機制和規(guī)則條件匹配的效率問題。規(guī)則條件匹配的效率決定了引擎的性能,引擎需要迅速測試工作區(qū)中的數(shù)據(jù)對象,從加載的規(guī)則集中發(fā)現(xiàn)符合條件的規(guī)則,生成規(guī)則執(zhí)行實例。當引擎執(zhí)行時,會根據(jù)規(guī)則執(zhí)行隊列中的優(yōu)先順序逐條執(zhí)行規(guī)則執(zhí)行實例,因為規(guī)則的執(zhí)行部分可能會改變工作區(qū)的數(shù)據(jù)對象,從而會使隊列中的某些規(guī)則執(zhí)行實例因為條件改變而失效,必須從隊列中撤銷,也可能會開啟原來不滿足條件的規(guī)則,生成新的規(guī)則執(zhí)行實例進入隊列。于是就產(chǎn)生了一種“動態(tài)”的規(guī)則執(zhí)行鏈,形成規(guī)則的推理機制。這種規(guī)則的“鏈式”反應完全是由工作區(qū)中的數(shù)據(jù)驅動的。URule Pro規(guī)則引擎功能包括決策樹等。簡易規(guī)則引擎使用方法

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

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

URule Pro規(guī)則引擎分布式計算模式介紹:在分布式計算模式下, 一個URule Pro Server可以下掛很多個需要用到規(guī)則引擎的業(yè)務系統(tǒng),但實際的業(yè)務規(guī)則在運行時還是發(fā)生在各個業(yè)務系統(tǒng)中,而不是URule Pro Server上,所以稱之為分布式計算模式。URule Pro Server只負責業(yè)務規(guī)則的定義、編譯與發(fā)布,不負責具體的業(yè)務規(guī)則執(zhí)行,具體的規(guī)則執(zhí)行還是發(fā)生在各個業(yè)務系統(tǒng)當中,可以有效減輕URule Server的壓力,使得規(guī)則的計算可以分布到各個業(yè)務系統(tǒng)所在的服務器上, 從而可以根據(jù)需要對計算規(guī)則的服務器進行靈活的擴充。銳道URule Pro規(guī)則引擎功能包括決策表等。

在分布式計算模式下, 一個URule Pro Server可以下掛多個需要用到規(guī)則引擎的業(yè)務系統(tǒng),但是實際的業(yè)務規(guī)則在運行時還是發(fā)生在各個業(yè)務系統(tǒng)中,而不是URule Pro Server上,所以稱之為分布式計算模式。各個業(yè)務系統(tǒng)在運行業(yè)務規(guī)則時,會首先檢查要運行規(guī)則對應的規(guī)則包在本地緩存中是否存在,如果存在則直接使用,不存在則通過配置的URule Pro Server地址向Server發(fā)出使用對應規(guī)則包的請求, URule Pro Server收到請求后會將指定的規(guī)則包序列化成JSON,通過HTTP協(xié)議傳遞給請求的業(yè)務系統(tǒng)。業(yè)務系統(tǒng)收到傳遞過來的規(guī)則包后,會首先對其進行反序列化,將JSON格式的規(guī)則包反序列化為Java對象并在本地緩存下來,然后再使用這個規(guī)則包進行業(yè)務規(guī)則的計算。URule Pro規(guī)則引擎中規(guī)則的多條件組合也是以圖形方式展現(xiàn)。山東規(guī)則引擎教學

銳道URule Pro規(guī)則引擎以RETE算法為中心算法。簡易規(guī)則引擎使用方法

URule Pro規(guī)則引擎有著優(yōu)良的性能:URule Pro后臺采用純Java實現(xiàn),運行時借鑒Rete了算法的優(yōu)勢,再結合中式規(guī)則引擎的特點,自創(chuàng)了一套自己的規(guī)則模式匹配算法,這套算法可以從根本上保證規(guī)則運行的效率,實現(xiàn)大量復雜業(yè)務規(guī)則計算時的毫秒級響應。URule Pro規(guī)則引擎具有完善的版本控制機制:在URule Pro當中,無論是單個規(guī)則文件、或是用戶調(diào)用的規(guī)則包,都提供了完善的版本控制機制。對于規(guī)則文件來說只要有需要,可以回退到任何一個歷史版本; 對于給用戶調(diào)用的規(guī)則包,可以在不同的歷史版本之間靈活切換。簡易規(guī)則引擎使用方法

上海銳道信息技術有限公司是一家有著先進的發(fā)展理念,先進的管理經(jīng)驗,在發(fā)展過程中不斷完善自己,要求自己,不斷創(chuàng)新,時刻準備著迎接更多挑戰(zhàn)的活力公司,在上海市等地區(qū)的數(shù)碼、電腦中匯聚了大量的人脈以及**,在業(yè)界也收獲了很多良好的評價,這些都源自于自身不努力和大家共同進步的結果,這些評價對我們而言是比較好的前進動力,也促使我們在以后的道路上保持奮發(fā)圖強、一往無前的進取創(chuàng)新精神,努力把公司發(fā)展戰(zhàn)略推向一個新高度,在全體員工共同努力之下,全力拼搏將共同上海銳道信息供應和您一起攜手走向更好的未來,創(chuàng)造更有價值的產(chǎn)品,我們將以更好的狀態(tài),更認真的態(tài)度,更飽滿的精力去創(chuàng)造,去拼搏,去努力,讓我們一起更好更快的成長!