任何机构都在他们的商店中使用Talend SOA Suite.它与Oracle SOA套件和服务总线相比如何,因为如果我没有错,这两种产品都会实现EIP模式?
目前我正在尝试研究这两种方法,但我倾向于使用Apache Camel和Talend Suite,但Oracle SOA套件和Oracle Service Bus提供的内容是否超出了Talend SOA套件所没有的范围.
我错过了这张大图吗?
从我的角度来看,在功能范围,复杂性,学习曲线,价格(显然)以及对Oracle堆栈的总体承诺方面,使用Oracle SOA/ESB Suite是一个完全不同的球赛......
Apache Camel专注于其中的一小部分......主要是用于实现复杂路由和组件的EIP,以简化与其他技术的集成......就是这样.它不是ESB(请参阅ServiceMix)或任何类型的容器.相反,它设计为轻量级,可轻松嵌入现有应用程序(Tomcat Web应用程序,ActiveMQ,ServiceMix,与Spring独立等).总的来说,如果您了解Java,Maven和Spring,那么您可以在几分钟内完成并运行.
Camel还拥有强大的社区关注,并且已经被越来越多的大小公司所接受(以及ActiveMQ,Servicemix,CXF和Karaf).
(完全披露 - 我是Apache SOA顾问,但我也有一些Weblogic堆栈的经验)
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同名书中的企业集成模式(EIP).它只是一个库,它可以在任何jvm中运行,实际上有或没有DI容器,如Spring.重要的是,Camel解决了异步,事件驱动集成的需求,这是解决分布式计算谬误所必需的.它以完全灵活的方式完成,不需要您在任何地方部署Java EE服务器.想拥有一个专用的集成服务器,很好地使用Talend ESB开箱即用的OSGI服务器.想要在Tomcat中启用托管端点,如果您愿意,可以在Tomcat内部部署Camel,CXF和ActiveMQ.通过像Talend这样的轻量级模块化集成平台,您可以获得更大的平台无关性和架构灵活性.
值得一提的另一个区别是变换是那些仍然非常重要的世俗事物之一.您需要真正考虑如何计划管理总线上的消息和事件的模式.Talend ESB提供转换工具OTB.
(完全披露 - 我是Talend的技术总监,但我希望我在这里非常客观地强调Apache和OSS方面.)
| 归档时间: |
|
| 查看次数: |
6095 次 |
| 最近记录: |