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

Fire Workflow 源碼深度解析 (三):流程網路模型與 Petri Net 理論實踐

     編輯:Java 相關知識

Fire Workflow 核心流程定義模型 `org.fireflow.model.net` 基於 Petri Net 理論構建,定義節點、邊、同步器等核心圖元素。本文解析類別繼承體系與關鍵屬性設計。

整體類別繼承結構

net 套件類圖

  • Node (繼承 `AbstractWFElement`):流程網路節點基類
  • Activity (繼承 Node):業務活動節點,豐富任務屬性 (執行者、表單、工具、子流程等)
  • Synchronizer (繼承 Node):同步器/路由節點,對應 Petri Net 的分支合流控制
    • StartNode:流程唯一開始節點
    • EndNode:流程唯一結束節點
  • Edge:連接兩個節點的有向邊 (弧)
    • Transition:流程轉移 (Petri Net 的 Transition)
    • Loop:迴路/回退邊

核心類別屬性詳解

Synchronizer - 同步器核心屬性

  • `enteringTransitions` / `leavingTransitions`:輸入/輸出轉移列表
  • `enteringLoops` / `leavingLoops`:輸入/輸出迴路列表,配合 Loop 實現迴路語義

Edge - 邊的約束規則

邊類型來源節點目標節點
TransitionStartNode, Activity, SynchronizerEndNode, Activity, Synchronizer
LoopSynchronizer, EndNodeSynchronizer, StartNode (必須為來源節點的前驅)

所有邊支援 `condition` 屬性定義啟動條件。

Node 類別 Activity 類別 Synchronizer 類別 StartNode 類別 EndNode 類別 Edge 類別 Transition 類別 Loop 類別

Petri Net 理論映射關係

  • Place (庫所) → 擴展為 `Activity` (業務活動) 與 `Synchronizer` (路由控制)
  • Transition (變遷) → `Transition` (流程轉移)
  • Arc (弧) → `Edge` 基類與 `Loop` (回路弧)
  • Token 流轉 → 由引擎運行時依條件驅動節點間流轉

模型完整性評估

目前模型已支援基本流程設計需求:序列、並行分支 (AND-split/join)、選擇分支 (OR-split/join)、迴路、開始/結束控制。對於複雜工作流模式 (如多實例、取消區域、臨時任務) 仍有擴展空間。詳細模式支援情況參考《Fire Workflow 工作流原理、設計與應用》專著。

開發者計畫

作者正進行國際化文檔翻譯工作,計畫將 Fire Workflow 推向國際開源社區,歡迎有興趣開發者加入貢獻。

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