原文地址: http://blog.csdn.net/calvinxiu/archive/2007/06/19/1657989.aspx ,版权所有,转载请保留原文链接,谢谢。-- 江南白衣

Mule,目前综合状态最良好的开源ESB方案----源码每天都在更新,2007年大会MuleConf2007,给大家贡献代码的MuleForge.org,商业的支持公司Mulesource.com,代表了商业开源项目的成熟运营,国内的电信案例有.......甘肃万维。

1.Feature List

1.1 企业服务总线-主要特性:Pluggable的传输层,转换器,路由器三者是ESB的公共核心功能,同时Mule还是《Enterprise Intergration Patterns》与SEDA(Staged Event-Driven Architecture)的遵循者。

1.2 企业服务总线-其他特性:事务、安全、异常管理 ,JMX管理架构。

1.3 SOA环境的业务服务器:解耦于传输层的POJO Component,与Spring Container及应用服务器集成。

2.架构

2.1 总文档

  • Artichitecture Guide
  • Mule Training
  • 《企业集成模式》中文版

可以看出Mule的架构分三大块,传输层一块,POJO一块,还有一块运行时管理模块。

2.2 Transport Provider

Transport 是ESB最苦力的部分,Mule支持了WebService(Axis,XFire)/REST、Ejb/Rmi、Email、Jdbc、Tcp/Udp、Xmpp、VM、Ftp、File、Quartz,还有一些Transport如vfs、IBM MQ,藏在某个sandbox代码分支或者muleforge.org中。

  • 名词:Provider由Message Receiver/Dispatcher,Connector,Adapter组成。
    Message Receiver/Dispatcher负责具体收发,Connector负责与外系统的连接,Adapter负责转换协议特殊的数据格式,取得一些协议相关参数,比如http的Content-Length。Endpoint 定义了Transport+地址,如jms://topic:myTopic
  • Transport Guide
  • 编写Transport

2.3 Filter、Router、Transformer
      在mule里各种模式通常只是一个名词,要把《EIP》摆在手边,参考其描述与用例。

  • Router 
    动态的、宣告式的、基于内容的路由、基于规则的路由、BPEL、过滤、分解、聚合、重排http://mule.codehaus.org/display/MULE/Message+Routers
  • Filter 
    http://mule.codehaus.org/display/MULE/Filters
  • Transformer

    转换、包装、扩充、规范、压缩、加密、编码
    http://mule.codehaus.org/display/MULE/Transformers

2.3 UMO Component

  • Entrypoint Resolver,消息->UMO方法的解释与调度。
  • 对象容器,基于Spring。
  • UMO对象池,基于Apache Common  Pools。
  • Interceptor ,默认有log和profile.
  • 编写UMO

2.4 SEDA

  • 默认分为inbound-umo-outbound三个阶段,还可以配置更多的处理阶段。
  • 同步异步模型,线程模型,队列路由的配置。
  • http://www.infoq.com/articles/SEDA-Mule

3. DEMO
Mule的Example很丰富,下面三个最为典型:

3.1 Echo Demo

最简单的Demo,演示System.in 与 Xfire Web Service双入口的场景。
http://mule.codehaus.org/display/MULE/Echo+Example

3.2 股票询价 Demo

访问Internet上真实的股票询价服务器。
http://mule.codehaus.org/display/MULE/Stock+Quote+Example

3.3 借贷代理 Demo

最真实,最复杂的Demo,详细用例见EIP 第九章。

http://mule.codehaus.org/display/MULE/Stock+Quote+Example

http://mule.codehaus.org/download/attachments/223/javazone-2005-mule-real-world-old.ppt

4.未来发展

  • RoadMap 
    http://mule.codehaus.org/download/attachments/4585/Mule+Roadmap+Discussion+-+Ross+Mason.pdf
  • Mule 2.0 
    6月份发布,完全基于Spring 2.0。
  • Mule 3.0 
    年底发布,OSGI热部署、Failover支持。
  • MuleForge 
    http://www.muleforge.org/,大家可以在上面发布自己写的Transport和Example,体现了mulesource良好的运营素质。
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等公司。

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/ 

更多elemenope信息

 ServiceMix

ServiceMix是一个建立在JBI (JSR 208)语法规则和APIs上的开源ESB(Enterprise Service Bus:企业服务总线)。它包括一个完整的JBI容器,其主要是由标准化信息服务和路由器,JBI管理MBeans,JBI配置单元和Ant任务(安装组件和管理容器)组成。新版本中集成了BPEL,增加了一个基于router的高性能目录,XPath转换引擎,Drools新规则,对RSS的支持与JCA的完全结合等等。

更多ServiceMix信息

 Mule

Mule是一个企业服务总线(ESB)消息框架.它的主要特性包括:
1.基于J2EE1.4的企业消息总线(ESB)和消息代理(broker).
2.可插入的连接性:比如Jms,jdbc,tcp,udp,multicast,http,servlet,smtp,pop3, file,xmpp等.
3.支持任何传输之上的异步,同步和请求响应事件处理机制.
4.支持Axis或者Glue的Web Service. 
5.灵活的部署结构[Topologies]包括Client/Server, P2P, ESB 和Enterprise Service Network. 
6.与Spring 框架集成:可用作ESB 容器,也可以很容易的嵌入到Spring应用中.
7.使用基于SEDA处理模型的高度可伸缩的企业服务器.
8.强大的基于EIP模式的事件路由机制等.
Mule发布最新版本1.1,这个发布包括集成了JBI,对 BPEL的支持,还增加一些新的传输器(transport)Quartz,FTP,RMI与EJB等。

更多Mule信息

 OpenQueue

OpenQueue是一个用于发布与订阅消息队列的开放协议。这使得运行在不同机器上的,采用不同语言开发的且没有联系的应用程序之间能够进行异步通信。

更多OpenQueue信息

 Celtix

Celtix提供了一个运行期Java企业服务总线和一组可扩展的API.通过使用一个基于标准的,面向服务的体系来简化商业与技术组件的构建,集成和灵活重复使用。

更多Celtix信息

 OpenSyncro

OpenSyncro是一个轻量级,开源企业应用集成工具。它运行在Apache Tomcat服务器上并把它的配置信息存储在MySQL数据库中.它的特性包括内嵌数据转换器能够把CSV表格和其它基于文本的数据格式转换成XML,支持XSL转换(XSLT),支持访问FTP服务器上的文件。OpenSyncro可通过组件来进行扩展从而使得它连接到SAP Business One与HansaWorld这样的ERP/CRM系统.

更多OpenSyncro信息

 Open ESB

Open ESB企业服务总线提供面向服务体系(SOA)的方法来构建组合应用程序。Open ESB SDK的核心是Java商业集成(JBI)技术。

更多Open ESB信息

 OpenESB

OpenESB项目实现了一个运行期企业服务总线(Enterprise Service Bus:ESB)使用JBI(Java业务集成)作为核心基础。OpenESB可以让你集成企业应用与Web Service松散地连接成复合的应用程序。这使得你可以无缝地组合与拆解该复合应用程序,并认识到一个真正面向服务架构(SOA)的优点。

更多OpenESB信息

 jeeESB

现今SOA在企业应用程序开发中是一个比较迷惑的词语。SOA的核心是Web Services。通过Webservice就能够实现SOA。Jee(G)ESB是Java企业服务总线的一个开源实现,通过简单的XML配置就能够实现SOAP)Webservices“路由”,而不需要复杂的编码。jeeESB使用XPath和XmlBeans进行配置。

更多jeeESB信息

 JBossESB

ESB是SOA基础架构的一部分,而SOA并不是一种简单的技术或产品。它是一种设计风格,包含无关于实际技术的多个方面。JBossESB能够把抽象的SOA设计映射成具体实现。它特性包括:支持大部分通知框架,Transport支持包括JMS (JBossMQ,JBoss Messaging,Oracle AQ 和MQSeries),email,数据库或文件系统。集成JMS与SQL事务。集成jBPM。支持WS-BPEL。 支持Web Services。 支持Groovy。支持使用Smooks或XSLT进行数据转换。支持使用Drools or XPath编写路由。提供图形化配置编辑器。 具高性能和高稳定性。

更多JBossESB信息

 Apache Synapse

Apache Synapse一个易于使用、轻量级的XML与Web Services管理和集成中间件。可用于搭建SOA和ESB的基础平台。Apache Synapse支持多种标准包括:XML、XSLT、XQuery、XPath、SOAP、POX/REST、HTTP/S、JMS、、FTP、SFTP、WS-RM、WS-Addressing、SMTP等Synapse还提供非常多的实用功能”开箱即用“不需要编程。但是也可以利用一些常用的语言如Java、JavaScript、Ruby和Groovy对它们进行扩展。

更多Apache Synapse信息

 WSO2 ESB

WSO2 ESB是一套轻量级,以XML和Web service为核心的ESB(Enterprise Service Bus)。基于Apache Synapse和Apache Axis2项目构建。它支持connectivity,transformation,mediation和Web service交互管理。

Mule,目前综合状态最良好的开源ESB方案相关推荐

  1. Mule,目前综合状态最良好的开源ESB方案引文

    Mule,目前综合状态最良好的开源ESB方案收藏 http://blog.csdn.net/zhangliulin/archive/2007/10/16/1826703.aspx 新一篇: 设计一个美 ...

  2. pms输变电状态监测_智能电网输变电设备综合状态监测系统的设计与实现

    检测技术/ Power detection 智能电网输变电设备综合状态监测系统的设计与实现 时间:2013/11/5   来源:华天电力  阅读:6723 次 摘 要: 状态监测是运用先进的技术手段对 ...

  3. 现有一些开源ESB总线的比较

    现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,现在已经是百花争鸣的景象了.现在我就对现有的各种开源ESB总线依据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. 一. ...

  4. 几款流行开源ESB总线简介

    现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,现在已经是百花争鸣的景象了.现在我就对现有的各种开源ESB总线依据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. CX ...

  5. 现有一些开源ESB总线的比較

    现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,如今已经是百花争鸣的景象了.如今我就对现有的各种开源ESB总线根据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. 一. ...

  6. 几款开源ESB总线的比较

    现有的开源ESB总线中,自从2003年第一个开源总线Mule出现后,现在已经是百花争鸣的景象了.现在我就对现有的各种开源ESB总线依据性能.可扩展性.资料文档完整程度以及整合难易程度等方面展开. CX ...

  7. 【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案–5 Bert 方案

    目录 1 相关信息 2 引言 3 实现 3.1 数据预处理 3.2 Bert 4 提分点技巧讲解 5 未来展望 1 相关信息 [NLP]讯飞英文学术论文分类挑战赛Top10开源多方案–1 赛后总结与分 ...

  8. 【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案--1 赛后总结与分析

    目录 1 相关信息 2 总结 2.1 TextCNN.Fasttext等DL方案 2.2 机器学习LGB方案 2.3 Bert方案 3 继续提分点 1 相关信息 [NLP]讯飞英文学术论文分类挑战赛T ...

  9. 开源SLAM方案评价与比较

    开源SLAM方案评价与比较:ORB-SLAM2,VIORB,VINS-MONO 一.简介 二.EVO安装及测试 三.运行数据集 四.APE,RPE计算并绘图 五.evo_res 进行结果比较 一.简介 ...

最新文章

  1. fscanf不读取_思考了一天,终于把matlab的fscanf中的sizeA搞清楚了
  2. print的小白用法
  3. Permutations II
  4. 转:Ruby 的性能 与如何选用正确的framework来做web
  5. 1120. Friend Numbers (20)-PAT甲级真题
  6. mysql格式化11位时间戳_格式化MYSQL时间戳函数FROM_UNIXTIME
  7. Transaction事务
  8. 寻找自己的道路——与技术同胞共勉 一种划分为七个阶段的道路:自信=意志=布局=切入点=团队=渠道=产品...
  9. LeetCode6 Z字形变换
  10. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_10 打印流_1_打印流_概述和使用...
  11. c语言sqrt函数无作用,如何在不使用C语言的sqrt函数的情况下获得数字的平方根...
  12. EditPlus使用技巧
  13. svn如何退回软件版本_SVN版本控制工具的使用
  14. html中使用js实现体彩大乐透随机选号
  15. Windows.ScreenToClient
  16. 不能启动的问题 社区版安装后_Windows To Go安装使用手记
  17. word中无法识别到e-study插件
  18. 浅析hybrid模式下地支付宝钱包和微信
  19. 微信自定义分享功能二次封装
  20. 小米手机线下营销方案设计(毕业作品+任务书+设计方案+成果报告书)

热门文章

  1. 避免需求分析与定义误区的7个招式:作为产品新人,我所遇到的坑(续)
  2. 中国社交产品十年记...
  3. PMCAFF | 产品微操的艺术:提高核心指标的5个需求原理
  4. 【阿里聚安全·安全周刊】Python库现后门 可窃取用户SSH信息|Facebook再曝300万用户数据泄露...
  5. 安装ESXI 5.1
  6. 局域网无法访问本地apache
  7. 【原】十张javascript思维导图
  8. unity android 集成指南
  9. 手把手教你怎么用动软.net代码生成器 搭建三层架构
  10. API接口让呼叫中心渠道,变更加全面丰富