我們遇到了必須更新特定實體的狀態數據庫表的問題。目前,它的所有Java代碼都有很多條件和狀態更新。我正在考慮使用Workflow引擎,因爲將來可能會有多個流。在這裏使用工作流引擎是一個矯枉過正的行爲......你在哪裏畫線?用於工作流引擎的用例
回答
這取決於你的用例的複雜性。
在一個簡單的用例中,我們有一個數據庫列,由多個使用者爲Order生命週期中的每個階段更新。這是通過調用數據庫的Web服務完成的。 簡單的生命週期從ACKNOWLEDGED> ACCEPTED/REJECTED> FULFILLED> CLOSED。所有這些都在同一列的同一個表中。這是在沒有工作流的java類中執行的。
工作流引擎適用於更復雜的用例,該用例涉及多個數據提供者的操作,例如:數據庫或內容管理或文檔管理或搜索引擎,多個並行進程,基於前一步驟的成功/失敗,在某個步驟發送電子郵件,離線錯誤警報。
你可以看看Apache ODE來實現這個。
我認爲你應該考慮一個工作流引擎。工作流程應該與應用程序邏輯分開。
原因:
- 可維護:易於修改,增加新的流動和更容易被另一個工作流引擎來代替。
- 業務流程管理:工作流程主要是BPM的軟件表示。所以它通常由流程設計者(非技術人員)設計。因此,在應用程序內編寫代碼並不是一個好主意。相反,應使用支持圖形工作流設計的BPM產品,如ALBPM或JPBM。
- 監控業務流量:他們經常受到頂級經理的監控,並用於制定戰略決策。
- 數據挖掘/報告/統計更容易。
ALBPM(現在是Oracle BPM):是Oracle的商業工具,適用於大型項目。我的推薦是JBPM。 JBOSS的開源工具。與需要單獨的數據庫和應用程序服務器的ALBPM不同,它可以與應用程序一起打包,並作爲應用程序中的另一個模塊運行。我覺得適合你的項目。
我們遇到了數據庫表必須更新特定實體的狀態的問題。目前,它的所有Java代碼都有很多條件和狀態更新。
聽起來像某些準時,不需要在工作流程參與者之間編排操作。
也許規則引擎更適合這個。 Drools可能是一個很好的候選人。當X然後Y.
謝謝你。你可能知道Spring集成的Drools上的任何優秀資源? – 2010-06-10 10:50:27
在這裏找到 - >與泉水流口水。謝謝 ! https://springmodules.dev.java.net/docs/reference/0.7/html/jsr94.html – 2010-06-10 11:13:36
如果你使用Spring,這是如何實現您的要求
http://www.javaworld.com/javaworld/jw-04-2005/jw-0411-spring.html
- 1. Nuxeo工作流引擎VS專用工作流引擎(如Activiti)
- 2. 工作流引擎
- 3. 基於ASP.NET的工作流引擎
- 4. .NET的工作流引擎
- 5. 你如何使用工作流引擎?
- 6. 工作流引擎建議
- 7. 適用於C/C++的工作流引擎
- 8. 我應該使用哪種基於Java的工作流引擎?
- 9. 流程/工作流程引擎
- 10. 操作工作流引擎Java API
- 11. 工作流引擎中的CS0103錯誤
- 12. .NET工作流引擎的建議
- 13. 工作流引擎中的NodeJS
- 14. PHP工作流引擎框架
- 15. 工作流引擎兼容性
- 16. 工作流引擎BPMN,Drools等或ESB?
- 17. 工作流里程碑引擎
- 18. 構建Akka工作流引擎
- 19. Java開源工作流引擎
- 20. 需要基於Java的工作流引擎
- 21. 基於wf 4+的開源工作流引擎項目
- 22. 工作流引擎可以動態綁定流中的動作
- 23. 用數據庫和JAVA創建簡單的工作流引擎
- 24. 「工作流引擎」和「業務流程管理引擎」有什麼區別?
- 25. RTSP是從我的WOWZA流式引擎工作的唯一流
- 26. Django工作流引擎使用信號和Celery-django
- 27. 與主流工作流引擎的比較
- 28. 引用時XAML工作流
- 29. 構建作爲寶石的導軌引擎的工作流程
- 30. 找不到處理引擎。 camunda的webapp離不開流程引擎工作
一個很好的文章有,每個國家應該能夠過渡到每一個其他國家的要求。因此,現在對於每個新的狀態,我必須添加用於轉換到每個現有狀態的操作,並且每個現有狀態都必須有動作才能移動到新狀態。 WorkFlow解決方案是否以非重複方式處理這些問題? – 2010-06-10 08:33:47
一個可能的無限循環? – shinynewbike 2010-06-10 12:49:05
@ktaylorjohn - Ofcourse有一個階段是退出。 – 2010-06-10 21:30:49