Camel和BPEL之间的差异

时间:2012-04-26 09:06:25

标签: web-services rest soa apache-camel bpel

SOA概念很容易理解,但我对BPEL和Apache Camel等企业服务集成架构和技术并不熟悉。

我知道BPEL有助于编排服务,而且Camel是企业集成模式的实现。我目前正在阅读众所周知的企业集成模式书。

但EIP和管弦乐之间的界限对我来说似乎很薄弱。在我看来,Camel还以自己的方式协调服务。此外,Camel提供了许多连接器,因此可以轻松使用不同的协议。

Camel比BPEL更好吗? 或者是否可以使用您无法使用Camel执行的BPEL操作? 哪一个?
关于我所阅读的内容,似乎Camel比BPEL更好地协调REST服务:这是真的吗?

2 个答案:

答案 0 :(得分:7)

在我以前的工作中,我们一直试图多次回答这个问题。我们的产品是TIBCO BusinessWorks(类似Apache Camel)和TIBCO iProcess(类似于Apache ServiceMix)。

我们得出了简单的结论:

  • 如果您的流程是长期的(通常需要暂停并等到经理批准),您需要BPEL。
  • 如果您的流程更短期而且没有人参与,那么您需要集成(Camel)。

这并不总是适用,而且这两个世界没有强大的界限,但你可以简化它。还有一点需要注意 - 您可以使用集成产品执行类似BPEL的流程,反之亦然。这只是一个方法问题。但如果你坚持这些规则,你应该能够区分这两个规则。还有很多方面,但我认为这是最重要的方面。

答案 1 :(得分:6)

Bpel更像是bpm和服务编排实现的语言/标准。它有点像苹果和梨,因为camel是一个集成引擎实现。您可能希望更多地了解bpel(或bpmn)以获得高级业务自动化(例如,使用多个系统,长时间运行的流程和业务逻辑来实现购买流程)。在Camel中,您通常会处理更多技术方面,例如路由和线路协议转换。通常以相当无状态的方式。

当然,介于两者之间 - 例如在任何解决方案可以做的同质协议之间进行路由。比如你的休息例子。另请注意,Camel可以与Orchestration engiens一起运行,例如activti和apache ode。