在第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系统以其强大和可靠性著称,但即使是经验丰富的用户也会遇到意想不到的问题。无论是意外删除的文件、忘记的root密码,还是系统运行缓慢,高效的故障排除技巧是成为Linux专家的关键。 本指南将介绍一些常见的Linux问题解决场景以及逐步解决方案,这些问题在系统管理员、开发人员和日常Linux用户中普遍存在。 场景一:意外删除重要文件 您意外地使用rm命令删除了一个重要文件,现在需要恢复它。与Windows和macOS不同,Linux没有内置的“回收站”来存储从终端删除的文件。 恢复选项取决

Docker 是一款強大的工具,允許您在稱為 容器 的隔離環境中運行應用程序。但是,有時您可能需要更改 Docker 文件夾的權限,以確保您的應用程序可以訪問必要的文 件和目錄。 本文將指導您完成在 Linux 系統上永久更改 Docker 文件夾權限的過程。 了解 Docker 文件夾權限 默認情況下,Docker 將其數據(包括鏡像、容器和卷)存儲在 Linux 系統上的特定目錄中。最常見的目錄是 /var/lib/docker。 這些文件夾的權限決定了誰可以讀取、寫入或執行其中的文件。如果

用Linux上的Portainer CE簡化Docker Management:逐步指南 通過命令行管理Docker容器可能令人生畏,尤其是對於新移民而言。 Portainer CE(社區版)提供免費,輕巧且直觀的Solutio

本指南詳細介紹瞭如何在Linux系統上安裝和使用Whisper AI進行實時語音到文本轉錄。 Whisper AI是一種Openai創作,可提供多種語言的高準確性轉錄。雖然主要是為批處理設計的

對於Linux終端愛好者,強大的文件經理至關重要。 儘管存在許多人,但Superfile卻是一種現代,輕巧且視覺上吸引人的選擇。本文探討了超級文件,其起源,以及為什麼它是您F的最大競爭者

Zellij:用於增強Linux工作流的現代終端多路復用器 Linux終端多路復用器是針對開發人員和系統管理員的必不可少的工具,可以簡化命令行交互。 Zellij,一個相對較新的開源多路復用器

Linux的啟動過程包括:1.啟動BIOS/UEFI,2.加載GRUB,3.加載內核和initrd,4.執行init進程,5.啟動系統服務,6.啟動登錄管理器;Windows的啟動過程包括:1.啟動BIOS/UEFI,2.加載WindowsBootManager,3.加載winload.exe,4.加載ntoskrnl.exe和HAL,5.啟動系統服務,6.啟動登錄屏幕;Linux提供更多的自定義選項,而Windows則更注重用戶體驗和穩定性。

本指南詳細介紹瞭如何使用SystemD配置自動服務在Linux中重新啟動,從而增強了系統的可靠性並最大程度地減少停機時間。 系統管理員通常依靠此功能來確保關鍵服務,例如Web服務器(APA


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

記事本++7.3.1
好用且免費的程式碼編輯器

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

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

Dreamweaver CS6
視覺化網頁開發工具