首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

開發工具深度解析:Java 規則引擎工作原理與應用

     編輯:Java 程式設計入門

摘要 Java 規則引擎是嵌入 Java 程式的組件,任務是將提交的 Java 資料物件與引擎載入的業務規則測試比對,激活符合當前資料狀態的業務規則,依規則宣告的執行邏輯觸發應用程式對應操作。

引言 Java 社群推動新技術——Java 規則引擎。可將商業決策者的決策邏輯與開發者的技術決策分離,置於中心資料庫或統一位置,運行時動態管理修改,為企業靈活性與競爭力提供技術支撐。

規則引擎原理

1. 基於規則的專家系統 (RBES) 簡介

Java 規則引擎源於 RBES,屬專家系統一分支,屬人工智慧範疇,模擬人類推理,用試探性方法推理並用人類可理解術語解釋結論。RBES 包含三部分:Rule Base(知識庫)、Working Memory(事實庫)、Inference Engine(推理引擎),結構如圖 1。

圖 1 基於規則的專家系統構成

推理引擎含三部份:模式匹配器、議程、執行引擎。推理引擎決定哪些規則滿足事實或目標並授予優先級,滿足者加入議程。模式匹配器決定選擇執行哪規則、何時執行;議程管理執行次序;執行引擎負責執行規則與其他動作。

對應人類思維,推理引擎有兩種推理方式:演繹法與歸納法。演繹法從初始事實出發不斷應用規則得出結論;歸納法依假設尋找符合事實。Rete 演算法是目前最高效的 Forward-Chaining 推理演算法,許多 Java 規則引擎基於此演算法。

推理步驟:(1) 初始資料輸入 Working Memory。(2) Pattern Matcher 比較規則庫規則與資料。(3) 若執行規則衝突(同時激活多規則),放入衝突集合。(4) 解決衝突,激活規則按序放入 Agenda。(5) 執行引擎執行 Agenda 中規則。重複 2-5 直到 Agenda 規則執行完畢。

2. 規則引擎相關構件

規則引擎依規則過濾條件判定能否匹配運行時即時條件來執行規定動作。四個基本概念:

  1. 信息元:規則引擎基本建築塊,包含特定事件所有資訊的物件(訊息、產生應用標識、事件時間、類型、相關規則集、通用方法/屬性、系統資訊等)。
  2. 信息服務:產生信息元物件。每服務產生對應類型信息元,格式相同但屬性與規則集可異。一機器可運行多種服務或同服務不同實例,但每服務只產生對應類型信息元。
  3. 規則集:多規則集合。每規則含條件過濾器與多動作。條件過濾器含多過濾條件(布爾運算組合)。運行時條件為真則執行動作。三類特殊動作:放棄動作、包含動作、持久化信息元動作(細節見 2.3)。
  4. 隊列管理器:管理來自不同信息服務的信息元隊列。

協同工作流程(圖 2):四階段——信息服務接收事件轉換為信息元→傳給隊列管理器→規則引擎接收並應用自身攜帶規則執行→直到隊列無信息元。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved