我们已经使用Apache camel作为工作流引擎。首先我们有WebService One并等待响应并基于响应调用WebService 2或WebService 3.它是一个纯粹的WorkFlow并且有几个像这样的WorkFlow步骤。我有更少的机会使用BPOSS产品,比如JBOSS BPM等。除了长期运行和支持人工任务之外,还有其他任何理由我们必须选择BPM产品吗?如果在我们的项目中不需要长时间运行和人工任务支持,我们可以使用Camel或JBOSS FUSE来协调业务流程吗?
谢谢, 利奥。
答案 0 :(得分:13)
是的......正如Antoine提到的那样,从技术角度来看它可能听起来很相似,但是如果你使用Camel作为状态机来移动数据你根本就没有做BPM,那么对于BPM来说你是非常遥远的。
BPM在一个简单的状态机之上增加了很多东西。从用于建模业务场景的语言开始,再到BPM提供的工具,如果你只是使用驼峰,你将会失去很多。我可以从技术角度理解您的问题,但从更广泛的角度来看,您无法比较解决方案。
我认为您需要问自己以下问题:
1)您是否有兴趣与非技术人员分享哪些网络服务(此时您的骆驼路线)?
2)您是否有兴趣获取审计日志和仪表板(如屏幕)来分析您正在调用的服务进行业务决策的情况?
3)根据业务决策,您的路线是否发生了很大变化?例如,调用不同的Web服务,因为您的公司正在根据合作伙伴关系或成本更改提供商?
4)5年内您的系统交互(和骆驼路线)有多大?
5)您是否需要遵守标准或法律规定?
如果最后5个问题的答案是否定的,那么使用驼峰并保持web服务编排在骆驼路线中是很好的,因为它只是一种保持代码清洁和可维护的方法,但它总是隐藏在贵公司的其余部分。
答案 1 :(得分:5)
狮子座,这是一个非常有趣的问题。我碰巧有使用ESB,Apache Camel和BPM系统的经验。作为完全披露,我是Intalio,Inc。的首席架构师。
Apache Camel是处理来回流动数据的绝佳解决方案。正如您所指出的,BPM系统将出人意料地添加对人工任务的支持。 Intalio | bpms还使用合作伙伴链接添加了对异步进程的复杂编排的支持。 Intalio | bpms(以及其他解决方案)还可以监控流程实例,捕获KPI并将其作为用户的仪表板提供。您还可以通过使用允许业务输入条件或计算来更改流程数据的业务规则(例如,实时更改特定供应商的折扣率)来提高运行时的灵活性。
在设计时,BPM套件围绕着更好地记录流程并让业务和IT更好地协作的想法添加了许多功能。有些套件针对的是业务用户,有些套件更倾向于IT,但它们通常会定义可以高度理解流程的工件。
我希望这很有帮助。