IBM ESB产品之间的比较(一)

 
   | |

导读:SOA将应用资源看成一个个独立的,自包含并良好定义的服务,通过这些服务的组装,编排可以产生新的应用。ESB是SOA架构中核心基石,在SOA架构中,将ESB放在核心位置。

关键词:SOA 服务 应用 ESB 企业应用集成 SOA架构

 
正在加载数据...

  本文首先介绍了企业级应用程序的发展以及ESB的定义;随后,分析了ESB在SOA解决方案中所起的作用,并比较介绍了三款ESB产品在支持实现一个ESB解决方案中所起的作用。

  企业服务总线ESB的介绍

  企业应用的发展概述

  在介绍企业服务总线之前,有必要花一些笔墨来介绍企业应用架构的发展和变迁。企业级应用架构的发展经历了以下几个阶段:

  ·独立应用系统
  ·EAI阶段
  ·SOA阶段

  独立应用阶段

  20世纪60到70年代,企业应用处于独立应用系统阶段,当时的企业应用是一种用来替代重复性劳动的简单设计,其目的是用计算机代替孤立的,体力性质的工作环节,将相关联的企业信息或数据管理起来。这些系统大部分是独立的系统——有独立的数据库、应用服务器、用户界面。因此有时候这类应用也叫“竖井型”的应用。

  但是,随着业务和信息的不断扩展,独立应用系统渐渐不能满足企业对IT的需求,表现在大量的信息冗余,因为在建立一个新的应用的时候需要重新建立一套数据库;功能的重新设计,相似的功能存在于多个系统中;例如,客户信息在一个公司中可能有多个拷贝分别存在于多个数据库中,不同时期建立的应用系统所使用的技术也会不同。对于获取客户资料这样的功能,必然存在于多个系统中,而且在不同的系统中其实现方式可能是Java/J2EE、Delphi、C/C++。

  EAI阶段

  20世纪80到90年代,一些公司或集成商意识到应用集成的价值和必要性。EAI是一种将多个不同平台、用不同方案建立的异构的应用集成的一种技术和方法。它的目标包括以下几个方面:各个分离的系统间的相互通讯,消除信息孤岛,实现信息的共享。从功能的角度来看,EAI包括信息接收、转换、翻译、路由、传播和业务流程管理。从架构上看有两种方式:Hub/Spoke方式和Bus方式。

  图1所示的Hub/Spoke结构使用一个中心代理(Hub)和多个适配器(Spoke)将Hub和应用连接起来。适配器负责将应用的数据格式转换成Hub可以理解的格式,Hub将数据再转换成目标系统可以理解的格式,并执行消息的路由。Hub/Spoke方式的弊端在于只有一个代理中心,当连接的应用种类增加或者消息量增大时,代理中心的性能将成为整个系统的瓶颈,在可扩展性方面也存在着一定的问题。

  图1. Hub/Spoke结构的EAI集成
 
  图2所示的Bus结构使用一个中心总线,应用程序通过Adapter将消息发送给总线,总线负责消息的路由,接受方的应用程序也有自己的Adapter来转换接受到的消息。Bus结构和Hub/Spoke结构的最大区别在于在Bus结构中,Adapter位于应用程序中,而Hub/Spoke结构中,Adapter由Hub来统一管理。这样在Bus结构中,加入一个新的应用变得很简单,可扩展性得到了很大的提高,但是应用程序方的负担加重了。

  图2. Bus结构的EAI集成
 
  SOA阶段

  SOA将应用资源看成一个个独立的,自包含并良好定义的服务,通过这些服务的组装,编排可以产生新的应用。每一个服务可以完成一个独立业务功能,并且不依赖于业务上下文或者其他服务的状态。服务的定义是标准的且被广泛支持的,比如Web Service。在SOA的架构中,人们都用标准的方式来封装自己的服务,使得任何一个客户端程序都可以容易的和后台系统实施连接。而ESB是SOA架构中的一个核心基石,在几乎所有的SOA架构中,都将ESB放在核心的位置。图3是IBM SOA Reference architecture,从中我们可以看出ESB在一个SOA架构中的地位,对该图的详细解释不在本文介绍范围之内,有兴趣的读者可以参考一下IBM SOA专区的相关文章。

  图3. IBM的SOA参考架构
 
  下面我们来介绍一下ESB。

  什么是ESB?

  什么是ESB?ESB严格来说不是某一个产品,而是一种框架,设计模式。不同的提供商对ESB的理解也各有不同。

  “ESBs are essentially integration systems, not SOA systems. SOA is about tearing down application silos, but integration systems reinforce those silos. [...] an ESB is especially good for bridging to legacy applications, and therefore it is a useful component in a services infrastructure”

  ----Anne Thomas Manes, Research Director with Burton Group

  “An Enterprise Service Bus (ESB) is a distributed middleware system for integrating enterprise IT assets using a service-oriented approach.”

  ----Ron Ten-Hove , Sun Microsystems and JBI Spec Lead

  “A Web-services-capable infrastructure that supports intelligently directed communication and mediated relationships among loosely coupled and decoupled business components.”

  --Gartner

  IBM对ESB是这样描述的:

  “An enterprise service bus (ESB) is a pattern of middleware that unifies and connects services, applications and resources within a business. Put another way, it is the framework within which the capabilities of a business' applications are made available for reuse by other applications throughout the organization and beyond. The ESB is not a new software product — it's a new way of looking at how to integrate applications, coordinate resources and manipulate information ”

  从IBM的立场来说,ESB不仅仅是一个概念,而是一种中间件模式;它不是某个产品,而是一种全新的集成应用,协调资源和操纵信息的框架。

  下面来介绍ESB或可以称为ESB的中间件产品保护一些特征,有些是必须的,有些是可选的:

  ·连接性

  ESB必须提供一种支持服务交互的桥梁,它必须支持多协议(protocol)之间的连接。不仅要提供对消息和面向事件的中间件的支持,还要提供和现有EAI技术的连接。连接性是ESB不可缺少的特征之一。

  ·服务交互

  服务交互可以理解为ESB的一个目的之一,ESB作为SOA架构的核心,必然要支持服务的交互,要在服务的请求者和提供者架起一个坚实的桥梁,让服务的请求者和提供者只需要关心各自的业务逻辑,而不需要在发布和消费服务的环节花很大力气。服务交互也是ESB的必备特征。

  ·集成

  集成的概念是对于系统而言的,ESB不仅要能集成那些很容易封装服务的系统,也要集成不能方便地封装服务的系统,例如SAP, ERP, CRM, Siebel等EAI系统、遗留系统。集成也是ESB的核心特征之一。

  ·消息处理

  在集成的过程中,必须要面对的是消息处理,在不同的应用系统中,消息的描述格式是不一样的。在集成环境中,必须要提供一种统一的格式来处理系统间的交互,从ASBO(Application Specific Business Object)到GBO(Generic Business Object) 之间的互转是ESB的核心特征之一。

  ·管理

  对于一个具有ESB特征的产品,管理也是一个重要的方面。例如,当一个服务从一个地址切换到另一个地址,在结构等不发生任何改变的时候,ESB产品应该提供一个方便的途径适应这种改变。

  ·QoS

  对于服务交互来说,QoS也是一个重要的特征,比如针对不同的服务请求者提供不同质量的服务响应。有些服务的请求需要在事务中完成,有些服务的交互需要保证其可靠性。一个ESB产品应该提供给开发者定义QoS的接口。

  ·安全

  安全的必要性不言而喻,系统和系统之间的交互必然需要认证,授权,加密,签名等安全性。一个优秀的ESB产品应该提供可靠的,可灵活配置的安全支持。

  IBM的ESB产品

  IBM有三款ESB产品:WebSphere ESB(WESB),WebSphere Message Broker(WMB),DataPower。这三款ESB产品都提供了ESB所必备的特征,但是它们各有侧重,WESB主要构建与WebSphere Application Server之上,侧重于对标准协议和消息的支持,更适合于J2EE,Web-Service为主要特征的集成环境;WMB提供了一个高级的ESB,它构建于WebSphere Message Queue之上,提供了百种以上协议的连接和数据格式的转换机制。Datapower是一款比较新的ESB产品,除了提供必备的ESB的特性之外,Datapower更侧重于安全。众所周知,在XML的环境中,安全对于性能的影响是巨大的,Datapower给企业ESB提供了强大的安全保障。下面分别介绍这三款ESB产品。

  WebSphere ESB

  从图4中可以看出ESB构建与WAS ND之上,它使用了WAS ND及WAS对于安全,用户注册表,事务,消息引擎的支持,在其之上增加了对服务集成、消息流处理、建模以及ESB编程模型的支持等等。从图中还可以看出WebSphere Process Server是构建与WESB之上,并扩展了服务编排和流程管理方面的支持。

  图4. WESB在WAS产品线的位置
 
  下面介绍在WESB上实现一个SOA ESB解决方案上的以下九个方面的特点,这九个方面的特点来源于上文中介绍的ESB的特性,或者特性的细化:

  ·消息转换

  WESB所处理的消息为XML格式的数据,对于非XML结构的数据WESB不能处理。对于XML结构的数据,在WESB的消息流中数据以SMO形式存在,WESB可以对XML消息树的内容进行修改,包括改变某个节点的内容,增加新的节点以及删除某个节点等等。

  ·支持的协议

  WESB支持符合SOA标准的协议,比如SOAP/HTTP、SOAP/JMS、WSDL V1.1、UDDI V3.0,WebSphere MQ等。也就是说WESB目前只支持SOAP方式来描述服务,传输协议可以是HTTP、JMS记忆原生的WebSphere MQ的连接。对于多传输协议的基础,建议使用MB来做ESB的解决方案,参考MB的介绍部分。

  ·消息路由

  消息的路由在WESB中有良好的支持,开发环境WID中提供了一个节点专门来负责消息路由,WID也提供了良好的对路由规则定义的开发支持,开发人员可以很容易的定制负责的路由规则。若要实现动态路由的功能,则需要和一个服务的存储单元中来动态的查找服务,目前WSRR是一款优秀的提供该功能的工具。WESB从V6.1开始提供了Endpoint lookup节点来支持WSRR的集成,简化了开发过程。如果要实现简单的动态服务路由的功能,则可把服务的定义存放在数据库中,在WESB中通过DB lookup来查找服务的 Endpoint, 然后注入到消息流中,WESB V6.1之前的版本就已经支持与数据库的集成。

  ·对Web Service的支持

  WESB天生运行在J2EE的环境里面,对Web Service有着天然的支持。

  ·事件处理

  在消息流中,我们需要跟踪消息各节点的状态,以满足统计和出错处理的要求,在WESB中,通过CEI机制来处理消息。

  ·与遗留系统的集成

  WESB通过Adapter与遗留系统进行集成,支持IBM Websphere Adapter和JCA Adapter,通过JCA我们就可以将遗留系统里面的服务和数据通过标准(SCA/SDO)的形式整合到集成环境中。

  ·安全方面的支持

  WESB没有对安全做特殊的处理,使用WAS的安全支持来实现ESB的安全。

  ·性能

  WESB是一个纯Java的应用,运行效率上有些限制,同时可以处理的消息流的数量级为几十到几百之间。

  ·开发和部署

  开发工具是WID,一个ESB的消息流在WID中被称为Mediation Module,它是一个J2EE应用,开发和部署工作无异于普通的企业级应用。

  Message Broker

  WMB是IBM的应用整合中间件,是IBM ESB架构重要的产品组成部分之一,用于企业应用整合领域。WMB目前的版本是6.1.2,它的前身是MQSeries Integrator。本质上看,WMB是MQ的衍生产品,它使用MQ作为内部通信的机制。然后,WMB提供的接入方式远不止MQ一种,包括JMS、HTTP(S)、SCADA等常见的新一代接口规范。在消息转化过程中,WMB能够识别XML、C结构、SOAP等各种自定义的消息格式。

  如图5所示,WMB可以分为开发环境和运行环境两大部分。其中开发环境由开发工具(Toolkit)和调试环境(Rational Agent Controller)组成,运行环境是WMB核心,也叫Broker Domain,由三部分组成,配置管理器(Configuration Manager)、用户名服务器(User Name Server)和代理(Broker)。

  图5. WMB组件


IBM ESB产品之间的比较及应用场景
 IBM ESB产品之间的比较(二)
 IBM ESB产品之间的比较(一)
 实际应用场景(二)
 实际应用场景(一)
 选择ESB的三个技巧
 使用IBM中间件实现SaaS多承租解决方案浅析
 IBM公司收购SPSS
 用友签约IBM:集团航母驶离信息孤岛
 选型:Tomcat JBoss还是WebSphere社区版

原文出处:http://www.ibm.com/developerworks/cn/webservices/0811_magy_esb/index.html
 
来源:IBM    作者:马国耀,吴宇    
 
 
 
 
 

ESB

 
你有若干协议,希望股给华为一个单一的协议(如FTP、email、XMPP到一个消息系统),如ActiveMQ、ESB可以帮助你解耦来自协议的服务实施。
 
Mule和其他ESB产品在场景中的真正价值是至少几个集成点或者至少三个集成应用。他们很好的适用需求松耦合、可扩展性和鲁棒性的场景。
 
在20世纪90年代中期,许多企业期待企业应用集成就像圣杯一样,可以使IT基础设施中的不同竖井集合在一起。在1999年,产业专家开始探讨企业神经系统……
 
银行业在各种领头应用之间充当着关键角色,起初就是这些银行的应用促进了面向消息的中间件的发展。在不同平台上的各种应用需要可靠地连接起来……
 
企业服务总线(ESB)在众多现代架构的工具箱中已经找到了自己的一席之地,但是它仍旧是一种年轻的技术,安装细节令人生畏……

热门技术手册排行

 

随着开源技术越来越成熟,一个稍有开发经验的人通过学习就可以用开源的产品和技术构建一套可用的系统。对于从事软件开发的人员,尤其是对Java或动态语言相关领域的人来说,“开源”也许是他们最喜爱的单词。但是,很多时候我们需要的不仅仅是一个可用的系统,而是希望这个系统开发更简易、性能更高和扩展性更好等。这确实是一个令人头痛的问题。本指南很多地方都是点到为止,要深入了解相关信息的读者请借助参考资料、网站等自行挖掘。

 

本专题分六部分探讨SOA设计模式,当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度。

 

业务流程管理(business process management,bpm)不是一个新概念,甚至不是一个新名词。它是从相关的业务流程变革领域,如业务流程改进(bpi)、业务流程重组(bpr)、业务流程革新中发展起来的。流程管理技术也是从早期的工作流管理、eai、流程自动化、流程集成、流程建模、流程优化等技术中发展起来的。

 

TOAGF是一个架构框架,简而言之,TOGAF是一种协助发展,验收,运行,使用,和维护架构的工具。它是基于一个迭代(Iterative)的过程模型,支持最佳实践和一套可重用的现有架构资产。

 

云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。

 

Mashup是一个非常cool的新的应用程序种类。如果你想真正的了解它们,我们需要回过头来看看你现在的计算机,其实它就是一个非常好的帮助你理解mashup的模型。现在开源的操作系统无疑是非常好的apis的集合或应用程序编程接口,帮助开发者去构建其应用程序。计算机本身也是一个很好的为用户提供接口的例子,键盘和鼠标可以被理解为你通过计算机的接口而使用的不同的应用程序。本技术手册为读者提供了一些相关信息,如果需要深入了解mashup,读者可以借助其他参考资源。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录