我们遇到了必须更新特定实体的状态数据库表的问题。目前,它的所有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