ESB解决方案

上传人:jiups****uk12 文档编号:52743202 上传时间:2018-08-25 格式:DOC 页数:27 大小:218.50KB
返回 下载 相关 举报
ESB解决方案_第1页
第1页 / 共27页
ESB解决方案_第2页
第2页 / 共27页
ESB解决方案_第3页
第3页 / 共27页
ESB解决方案_第4页
第4页 / 共27页
ESB解决方案_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《ESB解决方案》由会员分享,可在线阅读,更多相关《ESB解决方案(27页珍藏版)》请在金锄头文库上搜索。

1、ESB 解决方案问问题题描描述述在商业激烈竞争的今天,很多企业,特别是大型企业都应用了 IT 技术来提高企业竞争力,提高公司的运作效率与资源利用率等,而技术的更迭,业务变化等等造成了企业内部多种异构应用软件、平台、系统共存的局面。这些系统、平台可能使用不同的通信协议,或者是不同格式的数据,互相之间交换数据、通信显然十分困难。如果企业还需要与外部其他系统交互,则还面临着需要调查其他系统的结构,通信协议等等问题。这些都是企业系统集成所面临的问题与困境。近年来,也出现了一些解决集成问题的技术,例如 EAI(Enterprise Application Integration),B2B(Busines

2、s-2-Business),SOA(Service Oriented Architecture)以及 Web Service,这些解决方案能够解决一些问题,但是往往有以下诟病:或者有专利保护,需要支付昂贵费用,实现起来耗时费力,或者是一次性定制的,花费成本高,后期难以维护,系统扩展不灵活。什什么么是是 ESBESB 全称为 Enterprise Service Bus,即企业服务总线。它是传统中间件技术与 XML、Web 服务等技术结合的产物。ESB 提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB 的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时

3、它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB 提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。ESB 的五个基本功能:1)服务的 MetaData 管理:在总线范畴内对服务的注册命名及寻址管理功能。2)传输服务:必须确保通过企业总线互连的业务流程间的消息的正确交付,传输还包括基于内容的路由功能。3)中介:提供位置透明性的服务路由和定位服务;多种消息传递形式;支持广泛使用的传输协议。4)多种服务集成方式:如 JCA,Web 服务,M

4、essaging ,Adaptor 等。5)服务和事件管理支持:如服务调用的记录、测量和监控数据;提供事件检测、触发和分布功能。ESB 的八个扩展功能: 1)面向服务的元数据管理: 他必须了解被他中介的两端,即服务的请求以及请求者对服务的要求,以及服务的提供者和他所提供的服务的描述; 2) Mediation :它必须具有某种机制能够完成中介的作用,如协议转换; 3)通信:服务发布、订阅,响应 请求,同步异步消息,路由和寻址等; 4) 集成: 遗留系统适配器,服务编排和映射,协议转换,数据变换,企业应用集成中间件的连续等。 5)服务交互: 服务接口定义,服务实现的置换,服务消息模型,服务目录和

5、发现等。 6)服务安全: 认证和授权、不可否认和机密性、安全标准的支持等; 7)服务质量: 事务,服务的可交付性等; 8)服务等级: 性能、可用性等。 ESB 中最常提到的两个功能是消息转换和消息路由。解解决决方方案案选选择择方案目前实现了 ESB 的产品有很多,选取具有代表性的几种为例,如:WebSphere Enterprise Service Bus(IBM 的基于 WebSphere 的解决方案,基于 Service component Architecture,SCA,商业产品);Apache ServiceMix(Java Business Integration,JBI 规范的一

6、种实现,它包涵了许多 JBI 组件,这些组件支持多种协议,比如 JMS,HTTP,FTP,FILE 等。同时也实现了 EIP,规则和调度。早在几年前,它就已经成为了 Apache 的顶级项目,开源);Mule(一个基于 ESB 架构理念的消息平台,它是可升级的、高分布式的对象代理,可以通过异步传输消息技术来无缝的处理服务与应用之间的交互。目前分开源与商业两个版本)Open ESB(Sun 公司支持下的一个开源项目,其核心是基于 JBI 规范的实现。Open ESB 可运行在Glassfish 应用服务中,同时 Netbeans IDE 也为 Open ESB 提供了拖拽式的开发工具,这是其他开

7、源 ESB 不可匹敌的。)选型考虑到有稳定社区维护的开源产品,如 ServiceMix,具有高可靠性与低成本代价两个较大优势,以及在市场上的应用率以及呼声较高,最终将选择对象锁定到 ServiceMix 与 Mule 两个产品。在开源产品中,两者在网络上呼声最高,将两者对比的文章很多。下面摘选作者谈开源 ESB一文中的书两位作者 Tijs Rademakers,Jos Dirksen 对两者的对比:InfoQInfoQ:您认为,对于 MuleESB 和 ServiceMix,它们各自的优缺点是什么?在使用时有何建议?JDJD:二者都有优缺点。我喜欢 ServiceMix 的模型,它让热部署新的

8、集成流程变得容易,并且事实上它是基于标准的。尽管 JBI 标准没有获得太多的青睐,但它是一个相当不错的规范,当你理解 JBI 时,它会让你对 ServiceMix 很容易上手。我很喜欢有可热插拔的集成组件,特别是它们是可以热部署的。包含 Camel 也是 ServiceMix 的一个亮点。我真的喜欢可以用 DSL 去开发集成流程。ServiceMix 的不足之处跟它的优点是有关联的。JBI 规范确实引入了另一个困难级别,对 XML 的关注并不见得总是适合你在集成领域中遇到的需求。另一方面,Mule 让集成流程的创建变得容易和简单。它有非常广泛的路由器,易于扩展,并有很多可选的开箱即用的连通性、

9、路由和转换。使用 Mule,使你能够在数分钟内让相当复杂的集成流程启动并运转起来。然而,Mule 也有缺点。尽管不是很大,但是对我个人而言,它的一个最大的缺点就是没法热部署新的集成流程。如果 Mule 集成 OSGi 或者其他方法,就能很容易的更新集成流程,这将是一个大大的加分点。TJTJ:当前,ServiceMix 被分成了两个项目,ServiceMix 3.2.x/3.3.x 和 ServiceMix 4。我们书中使用 ServiceMix 3.2.x(基于 JBI),但我们对 ServiceMix 4(基于 OSGi,支持 JBI)也有一个简短的介绍。因此,ServiceMix 和 Mu

10、le ESB 之间的主要不同点就是,ServiceMix 是基于 JBI,而 Mule ESB 实现了基于 Java 的定制模型。但是这些 ESB 间还有很多共同点(支持 Spring,通过 CXF 支持 Web 服务,XML配置)。但是,让我们着重谈谈不同点。Mule ESB 是一个以 Java 为中心的 ESB,这让 Java 开发者能很容易地上手。它拥有强大的 XML 模式集合,它们创建了一个真正清洁可读的 XML 配置并提供了代码补全支持。当你想实现一项转换逻辑或者路由逻辑时,你能够很轻易地开发出一个简单的 Java 类/Spring bean/脚本文件,把它引入到 XML 配置中。如

11、果必须要指出 Mule 的一个不足之处,那就是缺乏对于热部署的支持。ServiceMix 是一个以 JBI 为中心的 ESB,它提供了大量的 JBI 组件,比如 JMS,Web 服务,Camel 以及 BPEL 组件。当然,你也可以使用来自其它基于 JBI 的 ESB 的 JBI 组件,诸如 PEtALS 和我们书中介绍的Open ESB。ServiceMix 为每个 JBI 组件都提供了一个简易的 XML 配置语言,为部署你的集成解决方案提供了热部署功能。ServiceMix 的一个缺点是进入 JBI 的学习曲线。因此,问题实际就是:在 Mule 和ServiceMix 之间,你更愿意选择哪

12、一个?。ServiceMix 提供了 JBI 支持,BPEL 集成,关注 XML 消息和热部署功能。Mule 提供了以 Java 为中心的模型,支持 jBPM,支持消息无关,没有热部署功能。JDJD:选择使用哪一个,其实取决于你的需求。当你面临的是关注 XML 标准的集成场景时,ServiceMix就是个不错的选择。如果你需要低级别的集成,Mule 可能是个好的选择。这两个 ESB 都是不错的开源集成解决方案,对于大多数集成问题都能很好地解决。InfoQInfoQ:为什么你们最终选择了:为什么你们最终选择了 ServiceMixServiceMix 和和 MuleMule,而不是其他选择?对,

13、而不是其他选择?对 ApacheApache SynapseSynapse 或者或者SpringSpring 集成(集成(SpringSpring IntegrationIntegration)有何建议?)有何建议?TJTJ:ServiceMix 和 Mule 是活跃社区中成熟开源 ESB 的绝佳范例,它们代表了基于 JBI 的 ESB 和以Java 为中心的 ESB 的方法。我们还会考虑其他替代方法,Apache Synapse 就是最主要的替代者。顺便说一句,在本书中,我们已经包含了 Apache Synapse 以及 Spring 集成的例子。Apache Synapse 是面向 Web

14、服务的 ESB 的典范,它是基于 Apache Axis2 的。当你一门心思想要获得 WS-*支持和 Rest 支持时,Synapse 显然是一个你需要考虑的 ESB。我发现 Spring 集成是个不错的框架,可以跟 Apache Camel 相媲美。它们都对 Hohpe 和 Woolf 描述的企业集成模式提供了支持,这样无需单独的集成容器,你就能很轻易地将你的 Java 应用程序集成进来。因此,在不需要引入中心 ESB 容器,在应用程序级别实现集成功能情况下,这些框架非常有用。JDJD:我个人没有过多接触 Spring 集成,为了体验它,我们正在用它做一个很小的项目。目前为止,我们对它印象还

15、不错。它是相当轻量级的解决方案,可以轻易地与我们编写的其余 Spring 应用程序相结合。在我们开始写这本书时,开源 ESB 社区还不如现在成熟,而且现在有了更成熟的解决方案。两者各有千秋,我们选取了 ServiceMix 作为 ESB 解决方案进行研究,版本 3.3.2。SERVICEMIX 相相关关SERVICEMIX 简介FeaturesServiceMix is lightweight and easily embeddable, has integrated Spring support and can be run at the edge of the network (insid

16、e a client or server), as a standalone ESB provider or as a service within another ESB. You can use ServiceMix in Java SE or a Java EE application server.ServiceMix uses ActiveMQ to provide remoting, clustering, reliability and distributed failover.ServiceMix is completely integrated into Apache Geronimo, which allows you to deploy JBI components and services directly into Geronimo. ServiceMix is being JBI certified as part of the Geronimo project.Other J2EE application servers ServiceMix ha

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号