9

SOA 的概念很容易掌握,但我对企业服务集成架构和 BPEL 和 Apache Camel 等技术完全不熟悉。

我知道 BPEL 有助于编排服务,并且 Camel 是企业集成模式的一种实现。我目前正在阅读著名的企业集成模式一书。

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

Camel 比 BPEL 好吗?
或者是否有可能用 BPEL 做一些你不能用 Camel 做的事情?
哪个?
关于我读到的内容,似乎 Camel 在编排 REST 服务方面比 BPEL 更好:这是真的吗?

4

2 回答 2

7

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

我们得出了简单的结论:

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

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

于 2013-03-05T15:01:47.543 回答
6

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

当然,两者之间存在一些问题——例如任何解决方案都可以在同类协议之间进行路由。比如你的休息例子。另请注意,Camel 可以与诸如 activti 和 apache ode 之类的编排引擎一起运行。

于 2012-04-26T22:16:11.850 回答