最近想学习了解下ESB 就从网上转载了下:各种ESB产品比较
ESB产品一览表包括商业和开源:
类型 | 产品 | 公司 |
商业 | Oracle Service Bus (OSB) | Oracle |
Oracle Enterprise Service Bus (ESB) | ||
WebSphere Enterprise Service Bus | IBM | |
WebSphere Message Broker | ||
WebSphere DataPower | ||
Sonic ESB | Progress | |
ActiveMatrix Service Bus | TIBCO | |
开源 | Mule | MuleSoft |
ServiceMix/FUSE ESB | Progress | |
Synapse/WSO2 ESB | WSO2 |
甲骨文的OSB
Oracle Service Bus (OSB)的架构图:
主要逻辑层:底层消息 服务总线的安全, 消息Broker,服务管理。
优点:
- 易用性
开发工具从Web Console迁移到Eclipse,支持图形化拖拽和便于调试
在studio上直接集成测试功能,比如studio能提供直接发送和接收SOAP,JMS消息的功能,无需借助第三方工具,如SoapUI和编写JMS客户端代码。
- 性能提升
嵌入Oracle Coherence(企业级的内存数据网格)产品,在特定场景下为服务调用提供缓存,性能提升80%。
Cache机制为静态响应信息提升性能。静态响应信息是指在一段时间内不会发生变化的信息,如天气预报,手机套餐,人民币汇率等,这些数据变化的周期通常是1天,1月。
实现手段:采用比较成熟的开源Memcached或者轻量级的JCACHE
- 管控能力增强
采用自动化的生命周期服务治理,从服务设计、开发、部署和运行期的整个服务生命周期内和Enterprise Repository产品进行自动同步,无需人工干预。
缺点:
- 依赖于Weblogic
- 重量级的统一消息格式:
通过反编译OSB的源码,可以看出OSB将各种协议(HTTP,WS,JMS…)接入的消息统一转换为SOAP Message,再通过Xquery Engine对SOAP Message进行XML操作。
以下场景其缺点可立即显现:
1.HTTP下的大数据包
2.JMS Object类型的大数据包(最新版本OSB才支持JMS Object类型,之前只支持JMS Text类型
依据:
对大数据包进行XML操作比较耗CPU
将大的Object转换为XML是个繁重的操作
IBM的WMB
WebSphere Message Broker(WMB)的优点和趋势:
ß简化开发/部署架构
去掉configuration manager,开发工具/应用可以直接和broker交互。
ß易管理
为管理员提供专用的管理工具--WebSphere Message Broker Explorer,可以管理本地和远程的broker和queue manager,同时提供了监控broker性能和消息流的功能。
ß简化开发流程
将常用的消息流场景进行了模板化,推出了基于模式的开发方式,用户只需要配置相关参数即可。提供的模式分为两类:内置(built-in)和自定义(user-defined)。
WMB 7.0架构:
WMB开发/部署架构的变迁:
- 去掉configuration manager,开发工具/应用可以直接和broker交互。
- Broker的配置信息保存在File中,可以不依赖于DB。
- 统一安全机制,queue managers and brokers均采用MQ queue的授权机制。V6中采用的安全机制是由Configuration Manager提供的Access Control Lists (ACLs)来管理授权的。
- 统一publish/subscribe机制,Message Broker V7直接采用WebSphere MQ V7的publish/subscribe机制,因此去掉了以前版本中使用publish/subscribe时所需的User Name Server。
WMB提供了基于模式的开发, 将常用的场景模式化,比如服务穿透场景。
不使用基于模式开发一个服务穿透的场景所需步骤:
1.创建并配置业务服务
2.创建并配置代理服务
3.在代理服务中关联业务服务
如果采用模式开发,其步骤:
1.创建服务穿透模式并配置业务服务和代理服务
优点:
- 开发方式模式化
简化开发方式,减低了使用门槛,减少了使用中出现的概率。 - 开发方式的转变
由自底向上转变为自上而下。 - 自底向上
根据使用场景,逐个一步一步地开发组件,最后进行组装。 - 自上而下
根据使用场景选择特定的模式,用户只需要配置参数(比如队列名称,WSDL地址等)即可。
缺点:
- 重量级的架构
传统的EAI架构,必须依赖于WMQ。 - 笨重的ESQL
ESQL是WMB用于处理消息流的一套特有的扩展SQL的语言,功能很丰富,语法比较多,但学习门槛较高。
相比直接通过java方法操作消息,显得格外笨重。
开源Mule
优点:
- 社区活跃度
在开源ESB中,活跃程度最高,用户量大,不断推出新版本。 - 易用性
“让一切变得更简单”是Mule的宗旨。2次重构核心架构、推出接入云应用,消息流,基于模式的配置以及热部署;Mule IDE3.0,将支持图元拖拽,简化开发。 - 扩展性
增加一个新协议非常简单,只需实现5个接口类即可。
org.mule.api.transport.Connector
org.mule.api.transport.MessageReceiver
org.mule.api.transport.MessageDispatcher
org.mule.api.transport.MessageDispatcherFactory
org.mule.api.transport.MuleMessageFactory
- 异常处理框架
异常策略设置级别:
model和service
异常处理方式:
1.将异常路由到指定的目的地
2.根据异常类型过滤异常,并路由到指定目的地
3.设置重试次数
4.当采用了事务时,可以在异常处理策略中设置当发生异常时是继续提交还是回滚事务。
- 管理性
推出Mule Management Console(收费),管理、部署和监控应用。 - 文档
文档非常丰富,降低了使用门槛。
基于模式的配置
基于web service proxy模式的web service的穿透场景的配置(配置非常简单,3个属性)
<ws:proxy name="muleWsProxy"
inboundAddress="http://localhost:8080"
outboundAddress="http://webservice.webxml.com.cn/WeatherWS.asmx"/>
缺点:
- 集群非常弱
1.只能配置一个主实例和一个从实例
2.不支持flow和基于模式的配置
3.某些路由会丢失或者获得重复的消息
- Mule IDE
目前的IDE只提供XML级别的编辑,还不能实现图元的拖拽
- 稳定性
开源项目的通病,需要在测试场景下进行验证
ServiceMix
优点:
- 无缝集成CXF,ActiveMQ,Camel和ODE
因为ServiceMix,ActiveMQ,CXF,Camel都是FUSE的开源产品 - JBI的优势
组件BC,SE可以在任何JBI容器(比限于ServiceMix)中直接运行,复用性强 - 基于OSGi
具备OSGi的优势:模块化,热部署,易扩展 - 基于Karaf
提供了非常丰富的命令,管理、部署和监控ServiceMix
问题:
- JBI2.0太复杂且规范发展缓慢
IT巨头Oracle,IBM投了反对票,目前只有几家小公司投支持票。已被主流中间件厂商抛弃,没有受到业界的青睐
- 由于JBI的复杂性所致,其架构并非轻量级
缺少IDE的支持
必须手写大量的XML配置文件
缺少governor的支持
ServiceMix4只是借助Flex的web console管理OSGi的bundle
学习门槛高
用户文档和相关资料比较少
- ServiceMix迁移到OSGi
JBI2.0中增加了对OSGi的支持;
ServiceMix4.x完全基于OSGi,
ServiceMix3.x继续前行
- Apache孵化新项目
Camel
Karaf
Synapse/WSO2 ESB
- Synapse发展缓慢
发展缓慢,新版本中没有增加比较有亮点的功能特性
- WSO2 ESB发展迅速
对Synapse增加了企业级特征:
1.基于WSO2的Carbon平台(OSGi框架)
2.支持集群、负载均衡和failover routing
3.支持流量控制和数据缓存
还增加了外围产品:
1. WSO2 Governance Registry,服务注册产品
2. WSO2 ESB management console,ESB管理控制台
3. WSO2 Carbon Studio,开发ESB的studio
- 基于Axis
借助于Axis的特性,能非常好的支持ws规范,ws-*。因此非常适合WebService的场景。 - 基于WSO2的Carbon平台
Carbon是WSO2的基础平台,它是一个OSGi框架,几乎WSO2的都基于它。
- 支持集群
集群中节点间的通信框架基于Apache Tribes(组通信框架)
相关信息持久化在内嵌的Derby中
支持一个主节点和多个从节点failover routing
在集群环境中,所有的请求只能被主节点接收,从节点只能作为备份节点。
- 支持流量控制
在单个ESB实例或者集群中,可以在服务级别配置流量控制。当请求数超过阀值时,ESB将被拒绝访问。 实现机制:借助组件Throttling Mediator - 支持数据缓存
集群中的各个ESB实例共享缓存的数据。
当一个请求被ESB实例1处理完后返回响应信息,当再次向ESB实例1或者集群中其他的ESB实例发送该请求时,直接从缓存中取出原来的响应信息。
实现机制:借助组件Caching Mediator
- WSO2 Governance Registry
开源中最优秀的服务注册项目 - WSO2 ESB management console
创建和管理各组件(接入层、中介层和接出层);
图形化地方式统计系统资源(CPU,内存);
图像化统计ESB中各组件(接入层、中介层和接出层)接收发送消息的大小以及响应时间;
记录系统日志、SOAP日志;图形化显示消息的流向
- 文档丰富
WSO2提供了非常丰富的文档:
安装手册
开发手册
管理员手册
部署手册
…
大量的使用实例
缺点:
- 架构不够清晰
显得有点臃肿、不简洁、不够优雅 - 扩展性差
新增一个协议/transport非常困难 -
组件比较凌乱
对多种协议(HTTP,WebService,JMS,FTP,EMAIL)的支持,部分依赖于Axis2,部分依赖于synapse
相关推荐
Talend Open Studio是一个基于Eclipse RCP的图形化操作界面的ETL工具,用于数据仓库和数据库之间的数据同步。ETL(Extract-Transform-Load)是数据仓库建设中的一个关键步骤,描述了数据从源端经过抽取、转换、加载...
银行esb开发全过程(使用webservice) 本文档描述了银行esb开发的全过程,包括所需软件、操作步骤和相关代码。使用javawebservice技术。 一、相关软件: 1. JDK环境:Java开发的基础环境。 2. apache-cxf:一个...
wso2 esb installation part 5
### ESB主要产品比较 #### 企业服务总线(ESB):产品评估对比概览 企业服务总线(ESB)是实现有效服务导向架构(SOA)的基础组件。它提供安全的互操作性和消息传输服务,在各种Web服务及相关技术之间搭建桥梁,从而...
企业服务总线(Enterprise Service Bus,简称ESB)是企业级集成的重要工具,它作为服务导向架构(Service-Oriented Architecture,简称SOA)的核心组件,用于连接不同系统和应用程序,实现数据和服务的高效交互。ESB...
WEBSERVICE调试工具-ESB消息统一推送接口调用说明 本文档主要介绍了WEBSERVICE调试工具的使用,旨在帮助开发WEBSERVICE接口的同学更好地理解和使用ESB消息统一推送接口。该接口用于短信、微信等渠道的消息统一推送...
ESB的实施通常会涉及到一系列工具,如服务设计工具、配置管理工具、监控工具等。这些工具简化了ESB的部署和维护,如使用图形化界面进行服务配置,实时查看服务性能指标等。 **"nginx分享.ppt"可能关联的知识点:** ...
Mule ESB(Enterprise Service Bus,企业服务总线)是一种强大的集成平台,由MuleSoft公司开发,用于构建、运行和管理API以及企业应用程序的集成。Mule ESB的核心功能在于促进不同系统间的通信,通过提供一个统一的...
5. **ESBSimpleSamples.ServiceClient.Generator**: 这可能是一个工具或项目,用于自动生成服务客户端代码,简化与服务的交互。这对于快速开发客户端应用程序非常有用。 6. **ESBSimpleSamples.BizTalk**: BizTalk ...
总结来说,ESB是企业实现高效、灵活、可扩展的集成解决方案的关键工具,它通过统一的接口和标准化的通信方式,解决了企业内部各系统间的通信难题,促进了企业信息化的快速发展。而金蝶Apusic ESB作为一款成熟的产品...
ESB 工具箱包括建立流程所需的全部元素,通过拖放可以放到画布中。 ESB 的主要功能是消息路由和协议转换,Mule ESB 社区版对集群的支持不好,如果不购买 Mule ESB 企业版,将无法使用企业版提供的集群,负载均衡,...
- ESB提供强大的管理工具,可以对服务调用进行监控、记录和故障诊断。 - 这些工具帮助开发人员和服务管理员更好地理解和优化服务交互过程。 7. **协议转换能力:** - ESB能够进行多种协议之间的转换,例如从SOAP...
- **安全性与管理**: ESB提供安全机制,如认证、授权,同时提供监控和管理工具以确保系统稳定运行。 2. **ESB.NET架构特点** - **.NET平台支持**: ESB.NET是基于微软.NET框架构建的,充分利用了.NET的技术特性,...
**Mule ESB 开发工具详解** Mule ESB(Enterprise Service Bus,企业服务总线)是一种开源的集成平台,由Mulesoft公司提供,它主要用于构建和管理API及企业内部系统的集成。Mule ESB的核心特性是轻量级、高性能和...
ActiveMQ 是Apache软件基金会的一个开源项目,它是一个实现了多种消息协议的消息中间件,同时也是构建ESB的常用工具。ActiveMQ 支持JMS(Java Message Service)规范,并提供了多种语言的API,包括Java、C++、Python...
Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个应用, 使得它们可以交换数据。 Mule ESB 容易集成现有异构系统,包括:JMS, Web Services, JDBC, HTTP, 等. ESB...
此外,还有一些流行的开源ESB产品,如Apache Camel、MuleSoft Mule ESB和IBM WebSphere ESB等,它们提供了丰富的功能和工具,帮助企业构建高效的企业级集成解决方案。 **应用场景** 1. **系统整合**:当企业需要...
5. **消息过滤**:《JBoss_ESB学习笔记11——第十个ESB应用Message_Filters.doc》介绍了消息过滤器,它是控制服务间通信流程的重要工具,用于对传递的消息进行预处理或后处理,确保消息符合预期格式或满足特定条件。...
《Mule ESB详解——构建...总结来说,Mule ESB是企业级集成的重要工具,通过它,企业可以打破系统间的壁垒,实现数据和服务的高效流通。深入了解并熟练掌握Mule ESB,将极大地提升企业的技术能力,推动业务创新和发展。