版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、規(guī)規(guī)則引擎的定義及其體系結構摘 要 隨著經濟的迅速發(fā)展,市場的快速變化導致商業(yè)業(yè)務規(guī)則的變化也越來越快,因此對于企業(yè)的IT部門或者IT企業(yè)來說,這就要求設計出來的應用系統(tǒng)能夠適應這種快速變化。然而,軟件的開發(fā)周期和維護周期長,這和適應快速變化的市場需求產生了矛盾。規(guī)則引擎的出現(xiàn)很好的解決了這一矛盾。有了規(guī)則引擎,我們可將以程序代碼的形式固化在應用系統(tǒng)中的業(yè)務邏輯分離、抽象出來,被分離的業(yè)務邏輯以業(yè)務規(guī)則形式存儲在規(guī)則庫中,并通過規(guī)則引擎進行執(zhí)行。本文將介紹規(guī)則引擎的定義,并將以WebSphere ILOG JRules 規(guī)則引擎為例介紹其體系結構。關鍵字 規(guī)則引擎 業(yè)務規(guī)則 業(yè)務對象模型 規(guī)則
2、執(zhí)行模型 規(guī)則調用目 錄第1章 緒論1.1規(guī)則引擎的產生背景第2章 規(guī)則引擎概述2.1 業(yè)務規(guī)則2.2 規(guī)則引擎2.2.1 什么是規(guī)則引擎2.2.2 使用規(guī)則引擎的優(yōu)點2.3 規(guī)則引擎運行模式第3章 規(guī)則引擎的架構和工作機制3.1 規(guī)則引擎的架構原理3.2 規(guī)則引擎的工作機制第4章 總結第1章 緒論1.1 規(guī)則引擎的產生背景隨著信息技術在企業(yè)的廣泛的應用,企業(yè) IT 部門所開發(fā)和維護的應用系統(tǒng)也越來越復雜,而現(xiàn)代企業(yè)要求響應快速及靈活,他們對企業(yè)軟件也有同樣的要求。企業(yè)管理者對企業(yè)級IT系統(tǒng)的開發(fā)有著如下的要求:一、為提高效率,管理流程必須自動化,即使現(xiàn)代商業(yè)規(guī)則異常復雜。二、市場要求業(yè)務規(guī)則
3、經常變化,IT系統(tǒng)必須依據業(yè)務規(guī)則的變化快速、低成本的更新。三、為了快速、低成本的更新,業(yè)務人員應能直接管理IT系統(tǒng)中的規(guī)則,不需要程序開發(fā)人員參與。因此如何使應用系統(tǒng)能夠更快的響應的企業(yè)業(yè)務的變化已成為企業(yè) IT 發(fā)展的重要挑戰(zhàn)之一。另外,項目開發(fā)人員會碰到了以下問題:一、程序=算法+數據結構,有些復雜的商業(yè)規(guī)則很難推導出算法和抽象出數據模型。二、軟件工程要求從需求>設計>編碼,然而業(yè)務規(guī)則常常在需求階段可能還沒有明確,在設計和編碼后還在變化,業(yè)務規(guī)則往往嵌在系統(tǒng)各處代碼中。三、對程序員來說,系統(tǒng)已經維護、更新困難,更不可能讓業(yè)務人員來管理。但是,當包含業(yè)務邏輯的代碼隱藏在大量其
4、他代碼中時,修改就變得緩慢、痛苦且易出錯了。因此,復雜企業(yè)級項目的開發(fā)以及其中隨外部條件不斷變化的業(yè)務規(guī)則,迫切需要分離商業(yè)決策者的商業(yè)決策邏輯和應用開發(fā)者的技術決策,并把這些商業(yè)決策放在中心數據庫或其他統(tǒng)一的地方,讓它們能在運行時(即商務時間)可以動態(tài)地管理和修改從而提供軟件系統(tǒng)的柔性和適應性。規(guī)則引擎正是應用于上述動態(tài)環(huán)境中的一種解決方法。第2章 規(guī)則引擎概述2.1業(yè)務規(guī)則業(yè)務規(guī)則專家組 (BRG)規(guī)定了業(yè)務規(guī)則的兩個定義。第一個定義與業(yè)務觀點相關,而第二個定義與IT相關:1、“從業(yè)務的角度而言,業(yè)務規(guī)則是一種原則,包含在特定活動或范圍內關于指導、操作、實踐或過程的行為規(guī)范?!?2、“從I
5、T角度而言,規(guī)則是可集成到現(xiàn)有基礎結構(如基于應用程序或面向服務的體系結構)的決策系統(tǒng)的靈活實現(xiàn)?!币粋€業(yè)務規(guī)則包含一組條件和在此條件下執(zhí)行的操作,它們表示業(yè)務規(guī)則應用程序的一段業(yè)務邏輯。業(yè)務規(guī)則通常應該由業(yè)務分析人員和策略管理者開發(fā)和修改,但有些復雜的業(yè)務規(guī)則也可以由技術人員使用面向對象的技術語言或腳本來定制。業(yè)務規(guī)則的理論基礎是:設置一個或多個條件,當滿足這些條件時會觸發(fā)一個或多個操作。 運行時,規(guī)則引擎必須對這些業(yè)務規(guī)則進行解釋。可以將規(guī)則引擎理解為一種高性能的專用解釋程序,其中包含if-then命令,可根據預先定義的規(guī)則對轉換的值和對象進行分析,然后返回修改后的值和對象,或直接執(zhí)行操作
6、。2.2 規(guī)則引擎 2.2.1 什么是規(guī)則引擎規(guī)則引擎由推理引擎發(fā)展而來,是一種嵌入在應用程序中的組件,實現(xiàn)了將業(yè)務決策從應用程序代碼中分離出來,并使用預定義的語義模塊編寫業(yè)務決策。接受數據輸入,解釋業(yè)務規(guī)則,并根據業(yè)務規(guī)則做出業(yè)務決策。其中,推理引擎由三部分組成,它們分別是規(guī)則解釋器Rule Interprete、模式匹配器Pattern Matcher和議程Agenda。模式匹配器從規(guī)則庫中找出需要執(zhí)行的規(guī)則并寫入議程;議程為這些規(guī)則賦予優(yōu)先級,確定執(zhí)行順序;規(guī)則解釋器執(zhí)行這些規(guī)則并輸出運行結果。規(guī)則引擎具有以下功能:1、能夠將關鍵的業(yè)務規(guī)則與其他源代碼分開保存。它使用戶能夠迅速實施業(yè)務邏
7、輯的更改而不必重新編寫應用程序。2、它使用了XOM,即定義應用執(zhí)行規(guī)則的類。這些類可以有不同的數據來源,這些數據可以在XOM中像對Java類一樣進行查看和處理。例如,XOM使用了功能強大的XML綁定系統(tǒng),使規(guī)則引擎能夠直接對XML數據或Web Service所提供的數據進行操作。3、通過嵌入方式,可以在任何Java應用程序中執(zhí)行業(yè)務規(guī)則,并支持多種部署方案,從而優(yōu)化了系統(tǒng)性能和擴展性。2.2.2 使用規(guī)則引擎的優(yōu)點使用規(guī)則引擎可以通過降低實現(xiàn)復雜業(yè)務邏輯的組件的復雜性,降低應用程序的維護和可擴展性成本,其優(yōu)點如下: 1、分離商業(yè)決策者的商業(yè)決策邏輯和應用開發(fā)者的技術決策; 2、能有效的提高實現(xiàn)
8、復雜邏輯的代碼的可維護性; 3、在開發(fā)期間或部署后修復代碼缺陷; 4、應付特殊狀況,即客戶一開始沒有提到要將業(yè)務邏輯考慮在內; 5、符合組織對敏捷或迭代開發(fā)過程的使用;2.3 規(guī)則引擎的運行模式 規(guī)則引擎根據規(guī)則的不同應用場景和業(yè)務規(guī)則的特點提供了三種常用的不同的運行模式:RetePlus、Sequential 和 FastPath。下面將以當前最主流的規(guī)則引擎JRules ILog 為例介紹這三種運行模式。RetePlusRete是目前主流的規(guī)則引擎模式匹配算法,RetePlus 則是 JRules 在 Rete 算法上的擴展和優(yōu)化,也是 JRules 規(guī)則引擎默認的運行模式。RetePlu
9、s 運行模式為 ILOG 規(guī)則引擎提供了種種手段,用以盡量減少需要加以評估的規(guī)則和條件的數量,計算哪些規(guī)則應當執(zhí)行,并確定這些規(guī)則的執(zhí)行順序。在 RetePlus 算法中,規(guī)則引擎使用 Working memory(工作內存) 和 Agenda來存放和操作應用程序對象。Working memory 中包含的應用程序對象的引用,Agenda 則按順序列出將要執(zhí)行的規(guī)則實例。如圖1所示: 圖 1. RetePlus 執(zhí)行模式具體執(zhí)行過程如下:1、規(guī)則引擎依據 Working Memory 中的數據對象來匹配規(guī)則集中規(guī)則的條件部分。在模式匹配過程中,RetePlus 首先創(chuàng)建出以規(guī)則條件測試之間的語
10、義關系為基礎的網絡(步驟 1),然后將匹配的規(guī)則實例化并添加到 Agenda 中,隨后對 Agenda 中的規(guī)則按照一定原則進行排序(步驟2)。2、執(zhí)行 Agenda 中的規(guī)則實例,即執(zhí)行規(guī)則的動作(Action)部分。同時,規(guī)則實例的執(zhí)行也會影響 Working Memory 中的數據對象,主要方式有:(步驟3):(1)往 Working Memory 中加入一個新的對象(2)移除 Working Memory 中現(xiàn)有對象(3)修改現(xiàn)有對象的屬性3、 以上過程將不斷重復,直至執(zhí)行完 Agenda 中所有規(guī)則實例。在RetePlus 算法中每當 Working Memory 被修改,規(guī)則引擎將
11、重復模式匹配的過程。它在每次規(guī)則執(zhí)行數據修改后重新評估每個規(guī)則匹配。這可能會改變 Agenda 中的規(guī)則實例。因此,RetePlus 是漸進的和數據驅動的。這些特點使 RetePlus 在計算和關聯(lián)性類型的應用方面擁有卓越的性能。Sequential順序運行模式,顧名思義,即規(guī)則引擎按順序執(zhí)行 rule task 中符合條件的所有規(guī)則。如圖 2 所示: 圖 2. 順序執(zhí)行模式具體執(zhí)行過程如下:1、 規(guī)則引擎根據輸入參數以及 working memory 中的對象集合和規(guī)則的條件部分進行匹配。每次匹配都將生成一個規(guī)則實例并立即運行。(步驟 1)2、 當規(guī)則實例被執(zhí)行后,它有可能設置屬性或規(guī)則集輸
12、出參數的值。(步驟 2)順序算法執(zhí)行的規(guī)則是無狀態(tài)的。順序算法的運行就像堆棧一樣,匹配的規(guī)則只會運行一次,而不會再次評估。因此在順序模式下,規(guī)則中不能使用類似“至少有一 個 < 詞匯 >”、“如下對象的數目:< 詞匯 >”等等跟 working memory 中對象有關系的存在性條件(existence conditions),除非這個對象是集合類型。順序模式的特性決定了其在校驗和一致性等類型的應用中有良好的性能表現(xiàn)。FastPathFastpath 運行模式是增強型的順序運行模式,和順序模式類似,F(xiàn)astpath 也是順序運行,但是它同時還能和 RetePlus 模式
13、一樣在進行模式匹配時檢測規(guī)則條件的語義關系。如圖 3所示: 圖 3.FastPath 執(zhí)行模式具體執(zhí)行過程如下:1、在 Fastpath 模式中,規(guī)則引擎可以通過 working memory 引用應用數據對象或規(guī)則集參數。與 Reteplus 類似,在模式匹配時 Fastpath 同樣創(chuàng)建以規(guī)則條件測試之間的語義關系為基礎的網絡(步驟 1)。2、每次匹配,將創(chuàng)建一個規(guī)則實例并立即執(zhí)行。規(guī)則實例執(zhí)行后,它可能修改 working memory 中的對象,但是這些修改不會影響其它規(guī)則的執(zhí)行,并且規(guī)則引擎也不會重復模式匹配的過程(步驟 2)。Fastpath 綜合了 Reteplus 的模式匹配和
14、順序運行模式的規(guī)則執(zhí)行的特性,從這個意義上來說,它在關聯(lián)型應用和校驗類應用中都有較好表現(xiàn)。和順序運行模式一樣,F(xiàn)astpath 運行模式也是無狀態(tài)的,適合在大量單獨執(zhí)行簡單判定或少量交叉測試的規(guī)則上進行對象匹配。這樣一些規(guī)則集可以在沒有任何 agenda 支持下很好的按順序執(zhí)行。除了作為一種變異的順序模式的優(yōu)勢,F(xiàn)astpath 運行模式的目的是進一步優(yōu)化一致性和校驗性類型規(guī)則的執(zhí)行,通常這些類型的規(guī)則占據了商業(yè)規(guī)則的絕大部分。第3章 規(guī)則引擎的體系結構3.1 規(guī)則引擎的架構原理1、規(guī)則引擎的架構如圖4所示:圖4.業(yè)務規(guī)則引擎架構2、 規(guī)則引擎的推理步驟如下: (1)將初始數據(fact)輸入
15、至工作內存(Working Memory)。 (2)使用Pattern Matcher將規(guī)則庫(Rules repository)中的規(guī)則(rule)和數據(fact)比較。 (3)如果執(zhí)行規(guī)則存在沖突(conflict),即同時激活了多個規(guī)則,將沖突的規(guī)則放入沖突集合。 (4)解決沖突,將激活的規(guī)則按順序放入Agenda。 (5)執(zhí)行Agenda中的規(guī)則。重復步驟(2)至(5),直到執(zhí)行完畢Agenda中的所有規(guī)則。上述即是規(guī)則引擎的原始架構,商業(yè)規(guī)則引擎就是從這一原始架構演變而來的。3.2 規(guī)則引擎的工作機制規(guī)則引擎是一種根據規(guī)則中包含的指定過濾條件,判斷其能否匹配運行時刻的實時條件來執(zhí)行
16、規(guī)則中所規(guī)定的動作的引擎。為更好的理解并闡述規(guī)則引擎的工作機制,下面先介紹四個與規(guī)則引擎相關的基本概念。1、 信息元(Information Unit)信息元是規(guī)則引擎的基本建筑塊,它是一個包含特定事件的所有信息的對象。這些信息包括:消息、產生事件的應用程序標識、事件產生事件、信息元類型、相關規(guī)則集、通用方法、通用屬性以及一些系統(tǒng)相關信息。2、 信息服務(Information Services)信息服務產生信息元對象。每個信息服務產生它自己類型相對應的信息元對象。即特定信息服務根據信息元所產生的每個信息元對象有相同的格式,但可以有不同的屬性和規(guī)則集。需要注意的事,在一臺機器上可以運行許多不同
17、的信息服務,還可以運行同一信息服務的不同實例。但無論如何,每個信息服務只產生它自己類型相對應的信息元。3、 規(guī)則集(Rule Set)顧名思義,規(guī)則集就是許多規(guī)則的集合。每條規(guī)則包含一個過濾器和多個動作。一個條件過濾器可以包含多個過濾條件。條件過濾器是多個布爾表達式的組合,其組合結果仍然是一個布爾類型的。在程序運行時,動作將會在條件過濾器值真的情況下執(zhí)行。除了一般的執(zhí)行動作,還有三類比較特別的動作,它們分別是:放棄動作(Discard Action)、包含動作(Include Action)和使信息元對象內容持久化的動作。4、 隊列管理器(Queue Manager)隊列管理器用來管理來自不同
18、信息服務的信息元對象的隊列。下面介紹規(guī)則引擎的工作機制。規(guī)則引擎從隊列管理器中依次接收信息元(若是java規(guī)則引擎,即為java對象),然后依規(guī)則定義的順序檢查第一個規(guī)則并對其條件過濾器求值,如果值為假,所有與此規(guī)則相關的動作皆被忽略并繼續(xù)執(zhí)行下一條規(guī)則。如果第二條規(guī)則的過濾器值為真,所有與此規(guī)則相關的動作皆依定義順序執(zhí)行,執(zhí)行完畢繼續(xù)下一條規(guī)則。該信息元中的所有規(guī)則執(zhí)行完畢后,信息元將被銷毀,然后從隊列管理器接收下一個信息元。在這個過程中并考慮兩個特殊動作:放棄動作(Discard Action)和包含動作(Include Action)。放棄動作如果被執(zhí)行,將會跳過其所在信息元中接下來的規(guī)則,并銷毀所在信息元,規(guī)則引擎繼續(xù)接收隊列管理器中的下個信息元。包含動作其實就是動作中包含其它現(xiàn)存規(guī)則集的動作。包含動作如果被執(zhí)行,規(guī)則引擎將暫停并進入被包含的規(guī)則集,執(zhí)行完畢后,規(guī)則引擎還會返回原來暫停的地方繼續(xù)執(zhí)行。以上過程將遞歸進行。由規(guī)則引擎的工作機制可以看出,任
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024幼兒園教育集團股權收購與教育產業(yè)發(fā)展合作協(xié)議3篇
- 2024年酒吧經營權承接合同
- 2024年集裝箱搬運吊裝合同6篇
- 2024年高端電子產品研發(fā)與銷售合同
- 2024年跨國技術授權與關鍵設備進口合同樣本版B版
- 2024年適用出租車租賃承包協(xié)議版
- 2024年跨區(qū)域醫(yī)療機構雙向轉診服務合作協(xié)議3篇
- 2024年軟件開發(fā)合同-軟件公司為客戶定制開發(fā)軟件
- 2025年度智能溫室大棚控制系統(tǒng)集成合同3篇
- 第16課-三國鼎立-作業(yè)課件-2020-2021學年部編版歷史與社會七年級上冊
- 湖北省襄陽市數學中考2024年測試試題及解答
- 2024中考語文《儒林外史》歷年真題專練(學生版+解析版)
- DB12T 1334-2024 養(yǎng)老機構衛(wèi)生管理規(guī)范
- 工程項目審核現(xiàn)場踏勘記錄表
- YYT 0698.1-2011 最終滅菌醫(yī)療器械包裝材料 第1部分 吸塑包裝共擠塑料膜 要求和試驗方法
- 入職申請登記表(模板)
- 高考物理動量守恒定律試題(有答案和解析)
- 兒童運動發(fā)育的早期干預和康復
- 《道路交通安全法》課件
- 工作優(yōu)化與效益提升
- 電機教學能力大賽獲獎之教學實施報告
評論
0/150
提交評論