在第14章,我們講解了Activiti與規則引擎的整合使用,確切地說,是Activiti與Drools規則引擎的整合。在Activiti6版本發布後,Activiti開始實現DMN規範,換言之,Activiti正在實現自己的規則引擎,雖然尚未完成,但已具雛形。本章將講述DMN規範以及初步實現的Activit規則引擎。
筆者成書時,Activiti的規則引擎並沒有正式發布,官方文件、API中沒有找到相關的資料,本章內容為筆者參考Activiti規則引擎模組的源代碼編寫而成,在以後的Activiti版本中,規則引擎的實現及發布的文檔,有可能與本書所描述的內容有所衝突,望讀者了解該情況。
DMN的出現背景DMN是英文Decision Model and Notation的縮寫,直譯意為決策模型與圖形。根據前章節可知,BPMN是OMG公司發布的工作流程規範,而DMN同樣是OMG公司發布規範,該規範主要用於定義業務決策的模型和圖形,1.0版本發佈於2015年,目前最新的是1.1版本,發佈於2016年。
BPMN主要用於規範業務流程,業務決策的邏輯由PMML等規範來定義,例如在某些業務流程中,需要由多個決策來決定流程走向,而每個決策都要根據自身的規則來決定,並且每個決策之間可能存在關聯,此時在BPMN與PMML之間出現了空白,DMN規範出現前,決策者無法參與到業務中。為了填補模型上的空白,新增了DMN規範,定義決策的規範以及圖形,DMN規範相當於業務流程模型與決策邏輯模型之間的橋樑。
雖然DMN只作為工作流程與決策邏輯的橋樑,但實際上,規範中也包含決策邏輯部分,同時也相容於PMML規範所定義的表達式語言。換言之,實現DMN規範的框架,同時也會具備業務規則的處理能力。
Activiti與DroolsActiviti作為一個工作流程引擎,與規則引擎Drools本來沒有可比之處,它們之間更像互補關係,但是目前Activiti正在實現DMN規範,Drools則實現了PMML規範,這樣就意味著,Activiti的工作引擎完成後,也包含了規則引擎的功能,根據DMN規範可知,DMN規範的實現者,也會對PMML提供支援。如此一來,Activiti的規則引擎與Drools將產生競爭關係。
JBoss旗下有工作流程引擎jBPM,有規則引擎Drools,Activiti本身就是工作流程引擎,再加上這次更新所加入的規則引擎,估計在不久的將來,Activiti在工作流引擎以及規則引擎領域,能與JBoss分庭抗禮。
DMN的XML範例DMN主要定義決策模型,與BPMN規格類似,OMG所發布的DMN規格含有對應的XML約束。目前版本的Activiti實作了decision部分,因此本章只講述DMN中的decision部分。 DMN的XML文檔,一般情況下文件名稱後綴為dmn。程式碼清單15-1是一份簡單的DMN文件。
代碼清單15-1:codes\15\15.1\sample.dmn
#程式碼清單15-1中的XML文檔,定義了一個decision節點,該節點中含有一個輸入參數、一個輸出結果和兩個規則。注意程式碼清單的粗體字程式碼,使用了startsWith方法,定義瞭如果參數字串以“Angus”開頭,則觸發第一個規則,如果參數字元以“Paris”開頭,則觸發第二個規則。關於XML文件中各個元素的描述,將在後面章節中講述。
文章轉載自 開源中國社群 [http://www.oschina.net]以上是了解動態決策管理系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Linux基礎學習從零開始的方法包括:1.了解文件系統和命令行界面,2.掌握基本命令如ls、cd、mkdir,3.學習文件操作,如創建和編輯文件,4.探索高級用法如管道和grep命令,5.掌握調試技巧和性能優化,6.通過實踐和探索不斷提陞技能。

Linux在服務器、嵌入式系統和桌面環境中的應用廣泛。 1)在服務器領域,Linux因其穩定性和安全性成為託管網站、數據庫和應用的理想選擇。 2)在嵌入式系統中,Linux因其高度定制性和高效性而受歡迎。 3)在桌面環境中,Linux提供了多種桌面環境,滿足不同用戶需求。

Linux的缺點包括用戶體驗、軟件兼容性、硬件支持和學習曲線。 1.用戶體驗不如Windows或macOS友好,依賴命令行界面。 2.軟件兼容性不如其他系統,缺乏許多商業軟件的原生版本。 3.硬件支持不如Windows全面,可能需要手動編譯驅動程序。 4.學習曲線較陡峭,掌握命令行操作需要時間和耐心。

Linuxisnothardtolearn,butthedifficultydependsonyourbackgroundandgoals.ForthosewithOSexperience,especiallycommand-linefamiliarity,Linuxisaneasytransition.Beginnersmayfaceasteeperlearningcurvebutcanmanagewithproperresources.Linux'sopen-sourcenature,bas

Linux的五個基本組件是:1.內核,管理硬件資源;2.系統庫,提供函數和服務;3.Shell,用戶與系統交互的接口;4.文件系統,存儲和組織數據;5.應用程序,利用系統資源實現功能。

開啟智能家居新篇章:基於Ubuntu的開源家庭自動化系統 智能家居技術徹底改變了我們與生活空間的互動方式,為日常生活帶來了便利、安全和能源效率。從遠程控制燈光和電器,到監控安全攝像頭和自動化氣候控制,智能家居技術變得越來越普及。 然而,許多商業智能家居系統存在局限性:高昂的成本、隱私問題以及有限的兼容性。幸運的是,開源軟件解決方案結合Ubuntu的強大功能,提供了一種替代方案——允許用戶創建可定制、經濟高效且安全的智能家居生態系統。 本指南將探討如何使用Ubuntu和開源工具設置家庭自動化系統。

Linux與Windows:2025比較 考慮從MacOS或Windows切換? Linux可能是答案。 儘管MacOS用戶會發現相對平滑的過渡(由於MacOS的UNIX Core),但Windows用戶需要適應。此指南HIG

Linux設備是運行Linux操作系統的硬件設備,包括服務器、個人電腦、智能手機和嵌入式系統。它們利用Linux的強大功能執行各種任務,如網站託管和大數據分析。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver Mac版
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版
中文版,非常好用