java 工作流開發框架比較
阿新 • • 發佈:2019-02-02
Shark
Shark是體系和功能最為複雜的代表。它是另一款遵循WfMC的XPDL標準開源工作流引擎,並且同時遵循OMG組織的Workflow Management Facility規範。在所有開源工作流引擎中,Shark的體系最為完備和複雜。其一直秉承著“模組化”的思想,所以比較容易擴充套件。但是自從被Together公司收購後,Shark的商業化色彩已經越來越濃,改稱為Together Workflow Server,並僅以Community Edition的形式提供了部分開原始碼供參考。
OSWorkflow
OSWorkflow是最輕量型的代表,也是一款非常靈活和低級別定位的工作流引擎的實現框架。低級別定位的意思是說,它不是定位在解決流程模型物件和運轉場景,而是提供一套可維護排程的機制,供開發人員自主擴充套件。這個維護流程排程機制OSWorkflow選擇的是基於行為(Action)的FSM理論,所以OSWorkflow更像是一個複雜而靈活的有限狀態排程機。
OSWorkflow在國內專案應用得較多,很多國內的簡易審批流程專案都是基於其引擎二次開發而來。這主要是由於OSWorkflow是基於Action驅動的,而國內的客戶也很容易接受這樣的操作習慣。但OSWorkflow所依賴的FSM模型對於分支、聚合、子流程的支援度很低,這一點在實施過程中需要注意。
jBpm
jBpm是最適合擴充套件的代表,是在所有開源引擎中最適宜被商業化應用的一款。首先其流程建模模型是基於Activity Diagram(活動圖)的,並在引擎構建上融入了FSM和PetriNet思想,所以其核心和根基比較牢固紮實。其次,自從被JBoss收購後,其3. x系列的結構更加趨於微核心,Plug-in思想也更加深入。其同時還提供了對BPEL擴充套件,儲存支援JBoss Hibernate實現,集成了JBoss seam,規則引擎準備採用JBoss rules,並準備整合JBoss Messaging。這樣,不論從核心和外圍應用,jBpm都具有了強勁的動力。
另外,jBpm對Token的應用也很有特色,巧妙地利用Parent-Child Token的機制處理分支、父子流程等複雜應用場景。這個設計思想很值得大家學習參考。
YAWL
YAWL是演算法和模式最值得研究的代表,它是Alast力主倡導的一款基於PetriNet建模的工作流引擎,其將PetriNet的Token與And、XOR、OR演算法進行了融合,並對Workflow Patterns(工作流模式)中所有模式提供支援。但YAWL本身僅是一個研究性專案,所以其結構和實現缺少了商業化應用的特點。但有必要研究一下YAWL,一方面可以加深對工作流模式的理解,另一方面,YAWL的一些建模思想、處理演算法很值得推敲和吸納。
ActiveBPEL
ActiveBPEL 是BPEL引擎的代表,也是一款可執行BPEL4WS規範的開源流程引擎,其結構和實現方式具有很高的參考價值。目前國內很多正在開發基於BPEL產品的中小型軟體廠商,其實現的很多基礎性內容和思想都參考自ActiveBPEL。受目前國內中小型客戶對流程需求的限制,基於BPEL的開源引擎或小型產品被市場接受度還很低。但BPEL所圍繞的業務流程及流程整合應用是一個發展趨勢。
Shark是體系和功能最為複雜的代表。它是另一款遵循WfMC的XPDL標準開源工作流引擎,並且同時遵循OMG組織的Workflow Management Facility規範。在所有開源工作流引擎中,Shark的體系最為完備和複雜。其一直秉承著“模組化”的思想,所以比較容易擴充套件。但是自從被Together公司收購後,Shark的商業化色彩已經越來越濃,改稱為Together Workflow Server,並僅以Community Edition的形式提供了部分開原始碼供參考。
OSWorkflow
OSWorkflow是最輕量型的代表,也是一款非常靈活和低級別定位的工作流引擎的實現框架。低級別定位的意思是說,它不是定位在解決流程模型物件和運轉場景,而是提供一套可維護排程的機制,供開發人員自主擴充套件。這個維護流程排程機制OSWorkflow選擇的是基於行為(Action)的FSM理論,所以OSWorkflow更像是一個複雜而靈活的有限狀態排程機。
OSWorkflow在國內專案應用得較多,很多國內的簡易審批流程專案都是基於其引擎二次開發而來。這主要是由於OSWorkflow是基於Action驅動的,而國內的客戶也很容易接受這樣的操作習慣。但OSWorkflow所依賴的FSM模型對於分支、聚合、子流程的支援度很低,這一點在實施過程中需要注意。
jBpm
jBpm是最適合擴充套件的代表,是在所有開源引擎中最適宜被商業化應用的一款。首先其流程建模模型是基於Activity Diagram(活動圖)的,並在引擎構建上融入了FSM和PetriNet思想,所以其核心和根基比較牢固紮實。其次,自從被JBoss收購後,其3. x系列的結構更加趨於微核心,Plug-in思想也更加深入。其同時還提供了對BPEL擴充套件,儲存支援JBoss Hibernate實現,集成了JBoss seam,規則引擎準備採用JBoss rules,並準備整合JBoss Messaging。這樣,不論從核心和外圍應用,jBpm都具有了強勁的動力。
另外,jBpm對Token的應用也很有特色,巧妙地利用Parent-Child Token的機制處理分支、父子流程等複雜應用場景。這個設計思想很值得大家學習參考。
YAWL
YAWL是演算法和模式最值得研究的代表,它是Alast力主倡導的一款基於PetriNet建模的工作流引擎,其將PetriNet的Token與And、XOR、OR演算法進行了融合,並對Workflow Patterns(工作流模式)中所有模式提供支援。但YAWL本身僅是一個研究性專案,所以其結構和實現缺少了商業化應用的特點。但有必要研究一下YAWL,一方面可以加深對工作流模式的理解,另一方面,YAWL的一些建模思想、處理演算法很值得推敲和吸納。
ActiveBPEL
ActiveBPEL 是BPEL引擎的代表,也是一款可執行BPEL4WS規範的開源流程引擎,其結構和實現方式具有很高的參考價值。目前國內很多正在開發基於BPEL產品的中小型軟體廠商,其實現的很多基礎性內容和思想都參考自ActiveBPEL。受目前國內中小型客戶對流程需求的限制,基於BPEL的開源引擎或小型產品被市場接受度還很低。但BPEL所圍繞的業務流程及流程整合應用是一個發展趨勢。