主流消息中间件 SOA\ESB

IBM Oracle  MicroSoft SoftWare AG  Tibco  这几家的ESB占市场份额较高

(1)IBM WebSphere MQ (也称MQSeries)http://www.oschina.net/p/websphere+mq
(2)ActiveMQ JMS消息服务器 : http://www.oschina.net/p/activemq ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。
(3)Metamorphosis分布式消息中间件 http://www.oschina.net/p/metamorphosis 淘宝和支付宝

(4)OpenAMQ 是一个业务消息产品,http://www.oschina.net/p/openamq 为你提供一个分布式的消息通讯框架。消息的异步传递的。主要为高性能和可靠性而设计。

    该项目服务器端采用 GPL 授权协议,客户端(Python、Java、Ruby、C)是 BSD 授权协议。

(5)RabbitMQ http://www.oschina.net/p/rabbitmq
(6)Kafka 分布式发布订阅消息系统  http://www.oschina.net/p/kafka
(7)Spring AMQP http://www.oschina.net/p/spring-amqp
(8)JBOSS MQJMS服务器 JBossMQ  http://www.oschina.net/p/jbossmq

(9)JBoss Messaging  http://www.oschina.net/p/jboss+messaging


在开源ESB家族中涌现出很多优秀的开源ESB,比如,Mule,Apache ServiceMix,Open [url][/url]ESB,Apache Synapse等。为了大家更好地了解它们,我作了简要地介绍。

Mule

它是一个轻量级的消息框架和整合平台,基于EIP(Enterprise Integeration Patterns,由Hohpe和Woolf编写的一本书)而实现的。

Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑。

UMO可以是POJO,JavaBean等等。

它支持20多种传输协议(file,FTP,UDP,SMTP,POP,HTTP,SOAP,JMS等),并整合了许多流行的开源项目,比如Spring,ActiveMQ,CXF,
Axis,Drools等。虽然Mule没有基于JBI来构建其架构,但是它为JBI容器提供了JBI适配器,应此可以很好地与JBI容器整合在一起。而 Mule更关注其灵活性,高效性以及易开发性。从2005年发表1.0版本以来,Mule吸引了越来越多的关注者,成为开源ESB中的一支独秀。目前许多公司都使用了Mule,比如Walmart,HP,Sony,Deutsche Bank 以及 CitiBank等公司。

官方网站:http://mule.codehaus.org/

Apache ServiceMix

它是JBI规范的一种实现。它包涵了许多JBI组件,这些组件支持多种协议,比如JMS,HTTP,FTP,FILE等。同时也实现了EIP,规则和调度。自从JBI被JCP接收后,2005年末Apache ServiceMix才被Apache作为其卵化项目,到2007年9月,它已经成为Apache的顶级项目。ApacheServiceMix 也整合了其他的开源项目,比如Apache ActiveMQ,Apache CXF,Apahe Camel,Apache ODE以及Apache Geronimo。

说起Apache ServiceMix,就会使我想到LogicBlaze公司。它曾经是Apache ServiceMix和Apache ActiveMQ的商业支持者。2006年LogicBlaze被IONA成功收购后,IONA负责为Apache ServiceMix提供支持和服务。同时IONA也将Apache ServiceMix作为FUSE平台中的一员,FUSE旗下还包括Apache ActiveMQ,Apache CXF,Apahe Camel,FUSE HQ。

官方网站:http://servicemix.apache.org/

Fuse平台的官方网站:http://open.iona.com/products/fuse-esb/

Open ESB

前两个开源ESB都由开源社区提供支持,Mule由Codehaus社区提供支持,ServiceMix由Apache社区提供支持。Open ESB是由SUN发起,现在作为Java.net的子项目。所有Open ESB的开发人员都来自SUN。

如同Apache ServiceMix一样,Open ESB也实现了JBI规范。Open ESB可运行在由SUN支持的Glassfish应用服务中。同时SUN的Netbeans IDE为Open ESB提供了拖拉式的开发工具,这是其他开源ESB不可匹敌的,尽管Mule也提供了基于Eclipse的插件工具,但目前仍然不够强大。

官方网站:https://open-esb.dev.java.net/

Apache Synapse

虽然Apache Synapse具备一些ESB所必备的功能,但是从本质上而言Synapse更是一个web服务仲裁框架,它是构建在Apache Axis2之上的。Synapse的关注点是路由,转换,消息验证以及基于web服务和xml标准的注册。它支持HTTP, SOAP, SMTP, JMS,FTP ,MTOM/XOPPOP3/IMAP/SMTP 等传输协议,还支持多种web服务规范(WS-*),比如WS-Addressing,WS-Security,WS-Policy以及WS- Reliable Messaging。在它的最新版本1.2中加入了对FIX(Financial Information eXchange,金融信息交换协议 ) 和 Hessian  的支持。同时它还支持多种流行语言,比如Java, JavaScript, Ruby, Groovy等。

官方网站:http://ws.apache.org/synapse

JBoss ESB

JBoss ESB是基于JBoss公司的ESB产品Rosetta的。Jboss ESB将JbossMQ作为其消息层,将JBoss rules为其提供路由功能, 将jBPM为其提供服务编排功能。足以见得JBoss的野心。

官方网站:http://labs.jboss.com/jbossesb/

其他的开源ESB

WSO2是基于Apache Synapse产品的,通过它可以在web服务,REST/POX服务以及遗留系统间连接,管理和转换服务交互。它还提供了一个基于AJAX的ESB管理控制台对其配置文件进行统计分析,管理(添加,删除以及修改等),和指定执行相应的配置文件。这在开源ESB中是非常少见的。

官方网站:http://wso2.com/products/esb/

OpenAdaptor定位于EAI (Enterprise Application Integration,企业应用集成)软件。它支持各种传输协议,如JMS, JDBC, IBM MQ Series, TIBCO Rendezvous, TCP/IP Sockets, SOAP, HTTP 和 File等。其最新版本为openadaptor3,与先前版本相比,它完全重写了一边,保留了原有的功能,提升了其简单性。

官方网站:https://www.openadaptor.org/

点击 http://opensourceforce.org/?fromuid=217 在《整合层综合》版块中即可查看相关开源ESB的架构图。



开始入冬时知识储藏啦。前几年听一位高人讲过ESB这个概念,但一直没有时间去仔细了解。而近段时间。找了一本ESB in Action学习.准备好好学习ESB啦,以下主要是该书抽取内容。

  • 什么是ESB? ESB,消息服务总线,它是一个较新但又较难理解的技术。
    ESB从集成供应商角度来看,它是一个产品,这个产品提供一体化的功能,开发工具,和管理环境。
    另一个角度看,ESB是作为服务为导向架构( SOA )重要组成部分。从SOA的角度看,一个ESB可以作为一体化平台,使现有的IT资产和应用暴露成为服务。
    在这里,我们将关注开源的ESB的产品,目前可用的产品有:Mule和Apache ServiceMix 。
    如果你问架构师,当今市场那个时髦词最热,企业服务总线( ESB )将是最多的答案。同时,像面向服务的架构( SOA )和商业流程管理( BPM )也将提到。这些流行语声音非常
    有趣的,但那个才是最有商业价值呢?
    现在ESB产品有很多,特别是企业应用上,我们来看一下有哪些,IBM ,TIBCO ,微软和甲骨文。这些好像都是大牌,但所有ESB都有相同的特点。而这里我们只提供两个开源产品(Mule 和 ServiceMix)
     
  • ESB特点但用于区分相关EAI和ESB产品,一个是星形结构的,而另一个是总线结构的ESB产品。星型结构模型是一种集中式的架构,所有的数据交流都由中心点来处理。该星型结构模型可以被看作
    继承的点对点模式 。而总线模型,采用分布式体系结构,其中的ESB 功能,可以由几个其他物理产品来实现其功能。
    第二个用于区别的EAI和ESB产品是使用开放标准是什么。EAI的产品,如WebSphere的消息代理,TIBCO的BusinessWorks ,和Sonic XQ使用一个专利技术来实现信息功能及传送逻辑。而ESB产品是基于开放标准,如Java消息服务( JMS的) , XML和J2EE连接器架构( JCA的) ,和Web服务标准。
     
  • ESB 优点 ESB主要是解决"整合"问题。例如下图是较早系统架构。


    主流消息中间件 SOA\ESB_第1张图片


    ESB处理后


    主流消息中间件 SOA\ESB_第2张图片


     
  • 何时要考虑ESB:理由:Necessity to integrate applications
    描述:There must be a clear business need to integrate applications. Time-to-market and real-time reports are examples of business drivers.

    理由:Heterogonous environment
    描述:When you have to deal with lots of different technologies
    and protocols, there is a clear need for a central solution
    that's made to deal with these challenges.

    理由:Reduction of total cost of ownership
    描述:IT departments are forced to cut maintenance costs to be
    able to satisfy demands for new products by the business
    departments. A central integration solution can help
    decrease the management and maintenance costs of the
    full application landscape.
     
  • 架构设计ESB帮助 J2EE体系

    主流消息中间件 SOA\ESB_第3张图片

    这里需要增加一个呼叫中心会如何办?我看到很多系统会这样处理。好像还取名叫嵌入式系统。

    主流消息中间件 SOA\ESB_第4张图片

    在一个多系统服务公司。系统一开始可能是这样来架构的。

    主流消息中间件 SOA\ESB_第5张图片

    ESB总线在中间加了这一层后,对异构系统的增加,提供很大的支撑。

    主流消息中间件 SOA\ESB_第6张图片

    说了这多ESB如此好。那到底ESB有那些功能呢?ESB有七大功能。
  • Location transparency
    主流消息中间件 SOA\ESB_第7张图片
     
  • Transport protocol conversion
    主流消息中间件 SOA\ESB_第8张图片
     
  • Message transformation
    主流消息中间件 SOA\ESB_第9张图片

     
  • Message routing
    主流消息中间件 SOA\ESB_第10张图片
     
  • Message enhancement
    主流消息中间件 SOA\ESB_第11张图片
     
  • Security
    主流消息中间件 SOA\ESB_第12张图片
     
  • Monitoring and management
    主流消息中间件 SOA\ESB_第13张图片

     
  • 相关开源ESB产品有如下这些
     
    1. Mule :   http://www.mulesource.com 并没有完全按JBI规范产品。


      主流消息中间件 SOA\ESB_第14张图片
       
    2. APACHE SERVICEMIX  [url]http://servicemix.apache.org [/url] JSR 208 IBM BEA投了弃权,故他们产品也没按JBI规范

      主流消息中间件 SOA\ESB_第15张图片
       
    3. OPEN ESB https://open-esb.dev.java.net JBI implementation provided by  Open ESB Sun that provides great tool support with NetBeans
    4. APACHE SYNAPSE [url]http://ws.apache.org/synapse [/url]
    5. JBOSS ESB http://labs.jboss.com/jbossesb/ The JBoss implementation of an ESB based on JBoss JBoss ESB messaging
    6. SPRING INTEGRATION http://www.springframework.org/  Spring Integration spring-integration An integration framework that is provided by the well-known Spring Framework
    7. Apache Tuscany http://tuscany.apache.org/ Implementation of the (SCA) specification
    8. ChainBuilder ESB http://www.chainforge.net/ A JBI-based ESB that focuses on providing graphical tools to ease the development effort
    9. FUSE ESB [url]http://open.iona.com/products/ fuse-esb/[/url] IONA's open source ESB offering based on Apache ServiceMix
    10. OpenAdapter https://www.openadaptor.org/ EAI-based platform that provides a number of adaptors to implement integration solutions
    11. PEtALS http://petals.objectweb.org/ Another JBI-based ESB, hosted by OW2 (formerly ObjectWeb)
    12. WSO2 ESB http://wso2.com/products/esb/ WSO2's open source ESB offering based on Apache Synapse
推荐书籍:
<<Enterprise Integration Patterns>>
<<ESB in Action>>
<<Enterprise Service Bus>>

你可能感兴趣的:(apache,jboss,activemq,SOA,消息中间件,产品)