`
阅读更多

什么是 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 的中间件产品保护一些特征,有些是必须的,有些是可选的:

  1. 连接性

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

  2. 服务交互

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

  3. 集成

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

  4. 消息处理

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

  5. 管理

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

  6. QoS

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

  7. 安全

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

 

 

下面介绍一下企业应用架构的发展和变迁,以及ESB在架构中的位置。企业级应用架构的发展经历了以下几个阶段:

  1. 独立应用系统
  2. EAI 阶段
  3. 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概述文档.zip

    内含WSO2ESB 5.0.0 的官方说明文档、借鉴关于ESB的硕士论文和博士论文、HTTPS、HTTP、JSM和AMQP(RabbitMQ)功能测研究步骤和测试功能文档

    esb概述

    文件上传功能的代码 博文链接:https://blueskylan.iteye.com/blog/250403

    泛微Ecology9.0数据展现集成之ESB接口应用

    2. 项目概述 2.1. 功能描述 3. 功能说明 3.1. ESB事件说明 3.1.1. 查询事件 3.1.2. 回显事件 3.2. 数据展现集成配置 3.2.1. 是否支持分页 3.2.2. ESB查询服务 3.2.3. ESB回显查询服务 3.2.4. 字段设置 4. 功能示例 ...

    BPEL或ESB:应该使用哪一个?

    火龙果软件工程技术中心 本文内容包括:概述ESB概述BPEL概述决定使用哪一个运行时总结参考资料在设计SOA解决方案时,并不总是清楚应该使用Web服务BPEL流程,还是应使用ESB中介流。本文将介绍帮助您决定使用哪一个的...

    ESB是什么?OSGI是什么?TOS-ESB相关组件介绍

    简要介绍talend-ESB, osgi etl 以及相关知识概述

    JBOSS ESB程序员指南

    6.6. ESB-aware和ESB-unaware用户 25 6.7. 端点引用(EPRs) 26 6.8. EPR到服务的映射 27 6.9. ESB的网关 29 6.10. 应用JCA网关 29 6.11. 配置 30 6.12. 消息 31 6.13. 扩充消息体 35 6.14. 消息头 35 6.14.1. 默认...

    IBMESB产品之间的比较及应用场景:第1部分,IBMESB产品之间的比较

    企业服务总线ESB的介绍企业应用的发展概述在介绍企业服务总线之前,有必要花一些笔墨来介绍企业应用架构的发展和变迁。企业级应用架构的发展经历了以下几个阶段:独立应用系统EAI阶段SOA阶段独立应用阶段20世纪60到...

    自己动手设计ESB(1)

    原因倒不是因为对冗长的文章产生了惰性,而是ESB中所涉及到的技术知识和需要突破的设计难点实在是比较多,再冗长的几篇博文甚至无法对它们全部进行概述,另外如果在思路上稍微有一点差池就会误导读者。一个可以稳定...

    Shuttle.Esb:高度可扩展的服务总线实施

    概述启动一个新的Console Application项目,然后从[支持的队列]({{site.baseurl}} / packages /#queues)中选择一个Shuttle.Esb队列实现: Install-Package Shuttle.Esb.Msmq 现在,我们需要选择一个: Install-...

    通过企业服务总线实现商业银行业务应用的整合

    基于SOA技术的企业应用整合解决方案包: 1.1 商业银行业所面临的问题x 1.2 商业银行整合系统的现状及问题x ...1.7 实施方案概述x 1.8 IBM在商业银行企业应用整合领域的优势x 1.9 案例参考: XX商业银行ESB系统

    ibm wmb 参考资料

    ibm wmb mq esb 参考资料, 包含精通Websphere MQ不完整版, mq入门教程, wmb概述, wmb操作命令总结, wmb中的SOAP节点简介等, 希望可以帮助大家.

    EAI技术概述及应用模式

    EAI平台提供的主要功能包括: a) 定义了中间层数据类型,数据格式,接口规范,接口通信方式和通信协议。 b) 平台去做已有系统和中间层之间的数据格式转换。 c) 对已有系统接口的封装,提供统一的接口。...

    理解面向服务的体系结构中企业服务总线场景和解决方案,第3部分

    本文内容包括:基本适配器解决方案模式服务网关解决方案模式Web服务兼容代理解决方案模式EAIInfrastructureforSOA服务编排解决方案模式完整SOA基础架构解决方案模式采用SOA和ESB的主要阶段...,ESB)的场景和解决方案...

    企业行业数据治理规划建设主数据元数据管理建设方案PPT资料(31份).zip

    MDM+ESB解决方案V1.0.pptx Oracle_MDM基础架构解决方案.pptx XXX银行数据治理平台系统介绍(55P).ppt XX药业主数据管理平台项目建议.pptx ZW大数据治理和资源平台规划方案.pptx zw大数据资源中心建设总体方案.pptx ...

    数据中心同步平台建设方案.docx

    数据中心同步平台建设方案 第一章 概述 1.1 平台建设背景 当前政府、企业的信息化的状况是,各政府和企业一般都设计和建设了属于机构、业务本身的应用、流程以及数据的信息处理系统,独立、异构、涵盖各自业务内容的...

Global site tag (gtag.js) - Google Analytics