Apache Camel(Talend SOA Suite)与Oracle Service Bus和Oracle SOA Suite

时间:2012-03-01 04:25:14

标签: apache-camel

任何机构都在他们的商店中使用Talend SOA Suite。 如何与Oracle SOA套件和服务总线进行比较,因为如果我没有错误,这两种产品都会实现EIP模式吗?

目前我正在尝试研究两者,但我倾向于使用Apache Camel和Talend Suite,但Oracle SOA套件和Oracle Service Bus提供的内容是否超出了Talend SOA套件所没有的范围。

我在这里错过了更大的图片吗?

3 个答案:

答案 0 :(得分:6)

从我的角度来看,在功能范围,复杂性,学习曲线,价格(显然)以及对Oracle堆栈的整体承诺方面,使用Oracle SOA / ESB Suite是一个完全不同的球赛......

Apache Camel专注于其中的一小部分......主要是用于实现复杂路由和组件的EIP,以简化与其他技术的集成......就是这样。它不是ESB(请参阅ServiceMix)或任何类型的容器。相反,它设计为轻量级,可轻松嵌入现有应用程序(Tomcat Web应用程序,ActiveMQ,ServiceMix,与Spring独立等)。总的来说,如果你了解Java,Maven&春天,那么你可以在几分钟内完成并运行。

Camel也有一个强大的社区关注,并且已经被越来越多的大小公司所接受(以及ActiveMQ,Servicemix,CXF和Karaf)。

(完全披露 - 我是Apache SOA顾问,但我也有一些Weblogic堆栈的经验)

答案 1 :(得分:6)

Talend确实提供完整的ESB。该ESB将Apache CXF用于SOAP和REST,Apache ActiveMQ用于JMS,Apache Camel用于中介和路由。这三个模块在分发中提供,包括Apache Karaf。 Karaf是一个OSGI容器。但是,正如boday指出的那样,如果您愿意,可以在Servlet,Java EE或甚至简单的JVM中运行任何或所有这些组件。

这是第一个区别,Talend更轻量级,模块化。这种模块化比简单地遵从Java EE API要深刻得多。您可以选择是否要包含CXF,ActiveMQ或特定的Camel组件。如果您选择使用Karaf / OSGI选项,则可以利用OSGI捆绑管理的强大功能。这看起来似乎并不重要,但在企业环境中这一点非常重要。

OSGI管理(而不是jar)级别的依赖关系。它与Eclipse IDE使用的标准相同。从Eclipse Marketplace安装功能包(例如subclipse)时,您正在使用OSGI功能管理。这就是Talend在发行版中加入Apache Karaf的原因。这样您就可以为企业应用程序提供相同的可插拔模块化框架,用于部署和依赖管理。

为什么这很重要?因为当你有不同的应用程序团队在企业中部署应用程序时,你的总线需要一点灵活性。你需要进行一些转换,一点点消息关联,使用一些EIP就像幂等消费者一样。那么所有这些转换可能需要对消息有效负载采取行动,或者使用由创作集成的应用程序的项目团队提供的jar。所有这些项目团队都处于不同的生命周期中。这就是微软所谓的DLL地狱,这就是发明的.NET程序集的原因。 Java没有与JCP相同的功能。但是有一个非常成熟的标准可以解决这个问题。那是OSGI。实现OSGI的开源引擎是Eclipse中的Equinox或Apache Felix。两者都可以插入Karaf容器中。

对于容器来说,ESB的核心是什么,Apache Camel。我相信大多数读者都知道,但Camel意识到Gregor Hohpe和Bobby Woolf同名书中的enterprise integration patterns(EIP)。它只是一个库,它可以在任何jvm中运行,实际上有或没有DI容器,如Spring。重要的是,Camel解决了异步,事件驱动集成的需求,这是解决fallacies of distributed computing所必需的。它以完全灵活的方式完成,不会要求您在任何地方部署Java EE服务器。想拥有一个专用的集成服务器,很好地使用Talend ESB开箱即用的OSGI服务器。想要在Tomcat中启用托管端点,如果您愿意,可以在Tomcat内部部署Camel,CXF和ActiveMQ。通过像Talend这样的轻量级模块化集成平台,您可以获得更大的平台无关性和架构灵活性。

值得一提的另一个区别是,转型是那些仍然非常重要的平凡事物之一。您需要真正考虑如何计划管理总线上的消息和事件的模式。 Talend ESB提供转换工具OTB。

(完全披露 - 我是Talend的技术总监,但我希望我以非常客观的方式强调Apache和OSS方面。)

答案 2 :(得分:1)

Apache Camel是一个集成框架。 Talend和Oracle分别是ESB产品集成套件。查找详细说明,比较和建议何时使用我的演示文稿幻灯片中的哪一个:“Spoilt for Choice - How to choose the right Enterprise Service Bus

(不仅对Talend和Oracle感兴趣,还对IBM,SAP,Spring Integration,Mule ESB,Fuse ESB,WSO2和其他集成框架/ ESB /集成套件感兴趣)

[和Ed一样,我也为Talend工作,但这是一个供应商中立的演示文稿]