Apache camel ApacheCamel(Talend SOA套件)与Oracle服务总线和Oracle SOA套件

Apache camel ApacheCamel(Talend SOA套件)与Oracle服务总线和Oracle SOA套件,apache-camel,Apache Camel,任何人都在他们的商店里使用Talend SOA套件。 如果我没有错的话,它与Oracle SOA套件和Service Bus相比如何,因为这两种产品都实现了EIP模式 目前,我正试图研究这两个方面,但我倾向于ApacheCamel和Talend套件,但Oracle SOA套件和Oracle服务总线是否提供了比Talend SOA套件所没有的更多的东西 我是否错过了这里的大局?从我的角度来看,使用Oracle SOA/ESB套件在功能范围、复杂性、学习曲线、价格(显然)以及对Oracle堆栈的总体

任何人都在他们的商店里使用Talend SOA套件。 如果我没有错的话,它与Oracle SOA套件和Service Bus相比如何,因为这两种产品都实现了EIP模式

目前,我正试图研究这两个方面,但我倾向于ApacheCamel和Talend套件,但Oracle SOA套件和Oracle服务总线是否提供了比Talend SOA套件所没有的更多的东西


我是否错过了这里的大局?

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

ApacheCamel专注于其中的一小部分…主要是EIP来实现复杂的路由和组件,以便于与其他技术的集成…就是这样。它不是ESB(请参见ServiceMix)或任何类型的容器。相反,它的设计是轻量级的,并且易于嵌入现有的应用程序(Tomcat web apps、ActiveMQ、ServiceMix、standalone with Spring等)。总的来说,如果您了解Java、Maven和Spring,那么您可以在几分钟内启动并运行它们

Camel还拥有强大的社区追随者,并与ActiveMQ、Servicemix、CXF和Karaf一起被越来越多的大公司和小公司所接受


(完全公开-我是一名Apache SOA顾问,但我对Weblogic堆栈也有一些经验)

Talend确实提供了完整的ESB。ESB使用ApacheCXF实现SOAP和REST,使用ApacheActiveMQ实现JMS,使用ApacheCamel实现中介和路由。这三个模块在包含ApacheKaraf的发行版中提供。Karaf是一个OSGI容器。然而,正如boday指出的,如果您愿意,您可以在Servlet、JavaEE甚至简单的JVM中运行这些组件中的任何或所有组件

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

OSGI在包(而不是jar)级别管理依赖关系。它与EclipseIDE使用的标准相同。当您从Eclipse Marketplace(例如subclipse)安装功能包时,您正在使用OSGI功能管理。这就是为什么Talend在发行版中包括ApacheKaraf。因此,对于企业应用程序的部署和依赖关系管理,您拥有相同的可插拔、模块化框架

为什么这很重要?因为当您有不同的应用程序团队在企业中部署应用程序时,您的总线中需要一些灵活性。您需要做一些转换,一些消息关联,使用一些像幂等消费者一样的EIP。所有这些转换可能都需要对消息有效负载进行操作,或者使用由编写正在集成的应用程序的项目团队提供的JAR。所有这些项目团队都处于不同的生命周期。这就是微软称之为DLL地狱的地方,这就是为什么发明了.NET程序集。Java没有作为JCP一部分的等效功能。但是有一个非常成熟的标准来解决这个问题。那是奥斯基。实现OSGI的开源引擎是Eclipse中的Equinox或ApacheFelix。两者都可以插入到Karaf容器中

容器的内容到此为止,ESB的核心ApacheCamel又如何呢。我相信大多数读者都知道,但是Camel意识到了来自Gregor Hohpe和Bobby Woolf同名书的(EIP)。它只是一个库,可以在任何jvm中运行,事实上,无论是否使用DI容器(如Spring)。需要注意的重要一点是,Camel解决了异步、事件驱动集成的需求,这是解决问题所必需的。它以一种完全灵活的方式实现了这一点,不需要在任何地方部署JavaEE服务器。想要有一个专用的集成服务器,最好使用Talend ESB作为OSGI服务器。想要在Tomcat内启用托管端点,很好,如果愿意,可以在Tomcat内部署Camel、CXF和ActiveMQ。通过像Talend这样的轻量级模块化集成平台,您可以获得更大的平台无关性和架构敏捷性

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


(充分披露-我是Talend的技术总监,但我希望我在这里以非常客观的方式强调了Apache和OSS方面。)

Apache Camel是一个集成框架。Talend和Oracle分别是ESB产品集成套件。请在我的演示幻灯片中找到详细的说明、比较和建议,以确定何时使用哪一种:

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


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

Boday非常感谢您抽出时间回答这个问题。感谢您提供的信息丰富的回答。我有一个问题:我正在web应用程序中使用spring和CXF开发web服务,如何将web服务部署到talend ESB中?或者我只是将我的web应用程序部署到我自己的JavaEE应用程序服务器,然后在ESB中创建一个代理,将我的消息路由到另一个应用程序,对吗?