ZT - WebSphere ILOG JRules 規則引擎執行模式簡介(2)
JRules 規則引擎執行模式
JRules 規則引擎根據規則的不同應用場景和業務規則的特點提供了三種不同的執行模式:RetePlus、Sequential 和 FastPath。
RetePlus
Rete 是目前主流的規則引擎模式匹配演算法,RetePlus 則是 JRules 在 Rete 演算法上的擴充套件和最佳化,也是 JRules 規則引擎預設的執行模式。RetePlus 執行模式為 ILOG 規則引擎提供了種種手段,用以儘量減少需要加以評估的規則和條件的數量,計算哪些規則應當執行,並確定這些規則的執行順序。在 RetePlus 演算法中,規則引擎使用 Working memory 和 Agenda 來存放和操作應用程式物件。Working memory 中包含的應用程式物件的引用,Agenda 則按順序列出將要執行的規則例項。如圖 1 所示:
圖 1. RetePlus 執行模式
RetePlus 模式的執行過程如下:
規則引擎依據 Working Memory 中的資料物件來匹配規則集中規則的條件部分。在模式匹配過程中,RetePlus 首先建立出以規則條件測試之間的語義關係為基礎的網路(步驟 1),然後將匹配的規則例項化並新增到 Agenda 中,隨後對 Agenda 中的規則按照一定原則進行排序(步驟 2)。
執行 Agenda 中的規則例項,即執行規則的動作(Action)部分。同時,規則例項的執行也會影響 Working Memory 中的資料物件,主要方式有:(步驟 3):
往 Working Memory 中加入一個新的物件
移除 Working Memory 中現有物件
修改現有物件的屬性
以上過程將不斷重複,直至執行完 Agenda 中所有規則例項。
在 RetePlus 演算法中每當 Working Memory 被修改,規則引擎將重複模式匹配的過程。它在每次規則執行資料修改後重新評估每個規則匹配。這可能會改變 Agenda 中的規則例項。因此,RetePlus 是漸進的和資料驅動的。這些特點使 RetePlus 在計算和關聯性型別的應用方面擁有卓越的效能。
Sequential
順序執行模式,顧名思義,即規則引擎按順序執行 rule task 中符合條件的所有規則。如圖 2 所示:
圖 2. 順序執行模式
具體執行過程如下:
規則引擎根據輸入引數以及 working memory 中的物件集合和規則的條件部分進行匹配。每次匹配都將生成一個規則例項並立即執行。(步驟 1)
當規則例項被執行後,它有可能設定屬性或規則集輸出引數的值。(步驟 2)
順序演算法執行的規則是無狀態的。順序演算法的執行就像堆疊一樣,匹配的規則只會執行一次,而不會再次評估。因此在順序模式下,規則中不能使用類似“至少有一個 ”、“如下物件的數目:”等等跟 working memory 中物件有關係的存在性條件(existence conditions),除非這個物件是集合型別。
順序模式的特性決定了其在校驗和一致性等型別的應用中有良好的效能表現。
順序處理可以透過規則任務的演算法屬性來指定,通常可以在 Rule Studio 中顯式的選擇。
FastPath
Fastpath 執行模式是增強型的順序執行模式,和順序模式類似,Fastpath 也是順序執行,但是它同時還能和 RetePlus 模式一樣在進行模式匹配時檢測規則條件的語義關係。
圖 3.FastPath 執行模式
在 Fastpath 模式中,規則引擎可以透過 working memory 引用應用資料物件或規則集引數。與 Reteplus 類似,在模式匹配時 Fastpath 同樣建立以規則條件測試之間的語義關係為基礎的網路(步驟 1)。
每次匹配,將建立一個規則例項並立即執行。規則例項執行後,它可能修改 working memory 中的物件,但是這些修改不會影響其它規則的執行,並且規則引擎也不會重複模式匹配的過程(步驟 2)。
Fastpath 綜合了 Reteplus 的模式匹配和順序執行模式的規則執行的特性,從這個意義上來說,它在關聯型應用和校驗類應用中都有較好表現。
和順序執行模式一樣,Fastpath 執行模式也是無狀態的,適合在大量單獨執行簡單判定或少量交叉測試的規則上進行物件匹配。這樣一些規則集可以在沒有任何 agenda 支援下很好的按順序執行。除了作為一種變異的順序模式的優勢,Fastpath 執行模式的目的是進一步最佳化一致性和校驗性型別規則的執行,通常這些型別的規則佔據了商業規則的絕大部分。[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16896827/viewspace-1036449/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ZT - WebSphere ILOG JRules 規則引擎執行模式簡介(4)Web模式
- ZT - WebSphere ILOG JRules 規則引擎執行模式簡介(3)Web模式
- ZT - WebSphere ILOG JRules 規則引擎執行模式簡介(1)Web模式
- WebSphere ILOG JRules 規則引擎執行模式簡介Web模式
- Drools規則引擎簡介
- Evrete 規則引擎簡介 | baeldungVR
- 整合 WebSphere ILOG JRules 與 IBM Content Manager Enterprise EditionWebIBM
- 規則引擎模式 - upperdine模式
- 【java規則引擎】規則引擎RuleBase中利用觀察者模式Java模式
- Java中最流行的幾種業務規則引擎簡介Java
- 使用 Web Services 整合 IBM FileNet P8 BPM 與 IBM WebSphere ILOG JRulesWebIBM
- 【java規則引擎】drools6.5.0版本api簡介JavaAPI
- 【java規則引擎】之規則引擎解釋Java
- 【java規則引擎】簡單規則的rete網路示意圖Java
- RAP簡介教程&常用規則
- Devs--開源規則引擎介紹dev
- 在Java中用規則引擎模式替代ifelse - VitaliJava模式
- 如何學習Java的規則引擎模式? - plagovJava模式Go
- drools執行String規則或執行某個規則檔案
- 用 Java 構建簡單的規則引擎Java
- 【java規則引擎】java規則引擎搭建開發環境Java開發環境
- ibm websphere簡介IBMWeb
- drools執行完某個規則後終止別的規則執行
- 開放封閉原則與規則引擎設計模式 - devgenius設計模式dev
- 規則引擎模式的.NET開源專案案例模式
- drools執行指定的規則
- 執行緒簡介執行緒
- Dart VM 的相關簡介與執行模式解析Dart模式
- 正規表示式單行、多行模式簡介(使用說明)模式
- CSS規則的執行順序CSS
- 第2-4-4章 規則引擎Drools規則屬性-業務規則管理系統-元件化-中臺元件化
- Java規則引擎 Easy RulesJava
- 架構 規則引擎 quartz架構quartz
- Java各種規則引擎Java
- Drools 規則引擎應用
- [Drools]JAVA規則引擎 -- DroolsJava
- TDengine3.0 流式計算引擎語法規則介紹
- 決策表模式: 一種業務規則引擎實現方式模式