為支援多種流程語言與活動的插件化擴展,jBPM 基於流程虛擬機(PVM)架構。PVM 本質是一個可執行圖形框架:流程定義表達為具有圖形結構的執行流。
關鍵分離:PVM 將流程定義(結構)與活動行為(邏輯)徹底分離。引擎負責根據圖形結構推進執行流,具體業務邏輯委派給可插拔的 Java 類(ActivityBehaviour)。jPDL 等語言僅是活動行為實現與解析器的集合。

圖 2.1 流程定義實例圖

圖 2.2 流程結構 UML 類圖
ActivityBehaviour 實現中
圖 2.3 執行實例:指向當前活動的指針
單一流程定義可啟動多個執行實例。為支援併發同步路徑,執行採用父子樹結構:流程實例為根節點,分支創建子執行,合併終止子執行。

圖 2.4 執行類圖:父子繼承關係支援併發建模