ESB企业服务总线解决方案剖析
SOA企业服务总线解决方案(ESB)-ProBus

用EMB管理,使SOA服务的实现与管理分工明确、合理定位。
Tier
presentation Tier
interface Tier
application Tier
SOA
服务前端
服务总线(Mega Flow) + 服务注册
业务服务总线(Micro Flow) + 服务注册
Terminals/Portal
▪ 实时处理企业数据所需的F/W ▪ 提供通过下一代数据整合所需的DBMS
ESB在SOA中的作用
SOA体系架构在逻辑上分为Business Process、Service Orchestration、Service Implementation Layer。ESB在 SOA体系架构中位于中间件,实现各种系统、终端、对内外渠道等的接口整合,通过服务层之间的互联,支持服务组合。
MCI
服务分层 标准
Portal Engine
Service Registry
Service Flow
EAI
• 通 过 X-internet、 企 业门户请求服务
• 构成服务为单位的界面
• 集成各种应用的服务,形成企业服务总线,由此支持 整合互联建模。
• ESB上执行业务流和服务流。 • 业务流和服务流是通过SFDL(Service Flow
▪ X-Internet : 提供Web的优点“容易的部署”和4GL的优点“丰富和华丽的界 面”以及“快速成的界面响应速度”。
▪ 内置满足高性能和稳定性的同时,基于SOA的服务组件开发更加容易的新的 EMB(Enterprise Module Bus) Architecture。
Business. F/W
ProBus功能架构——产品架构(1/12)
ESB项目需求分析和方案设计浅谈

ESB项目需求分析和方案设计浅谈ESB(Enterprise Service Bus)即企业服务总线,是一种整合企业各种服务和应用的中间件技术。
在企业建设中,ESB的需求分析和方案设计是非常关键的步骤,本文将对ESB项目的需求分析和方案设计进行浅谈。
首先,ESB项目的需求分析是指对企业现有业务流程和系统的分析,确定ESB的应用范围、功能需求和性能需求等。
需求分析的过程主要包括以下几个方面:1.业务流程分析:对企业的现有业务流程进行详细分析,包括各个部门间的数据交互和业务流程的规范化等。
通过分析企业的业务流程,可以确定ESB的应用范围和业务集成需求。
2.系统集成需求分析:对企业现有的系统进行梳理,了解现有系统的功能和数据接口,以及系统之间的依赖关系。
通过分析现有系统的集成需求,可以确定ESB的功能需求和接口设计。
3.性能需求分析:根据企业的业务规模和预期的性能指标,分析ESB在并发访问量、响应时间等方面的性能需求。
通过性能需求分析,可以确定ESB的部署架构和硬件资源配置等。
4.安全需求分析:根据企业的安全策略和合规要求,分析ESB在数据传输、身份认证、访问控制等方面的安全需求。
通过安全需求分析,可以确定ESB的安全机制和策略。
基于需求分析的基础上,ESB项目的方案设计是指对ESB的组成和功能进行详细设计,并制定具体的实施和测试计划。
方案设计的过程主要包括以下几个方面:1.架构设计:根据需求分析的结果,设计ESB的总体架构,包括中间件选型、消息传输协议、服务容器等方面的设计。
同时,还需要考虑ESB与企业现有系统的集成方式和接口设计。
2.服务设计:根据业务流程和系统集成需求,设计ESB的服务组件和消息格式。
通过定义服务接口和消息格式,可以实现不同系统之间的数据交互和服务调用。
3.安全设计:根据安全需求分析的结果,设计ESB的安全机制和策略。
包括数据传输的加密和解密、身份认证和访问控制等方面的设计。
4.性能设计:根据性能需求分析的结果,设计ESB的部署架构和硬件资源配置。
ESB企业服务总线解决方案

互和数据传递
ESB构架 面向服务体系架构
▪ 通过企业服务总线实现服务的整 合集中和流程实现
▪ 借助标准的接口灵活地连接,实 现真正的随需应变
过度页
第二章
ESB架构体系
企业服务总线角色职能 企业服务总线整体结构 全方位支持能力
正文·第二章
企业服务总线(ESB)是用于集成应用和服务的灵活的连接基础设施。
Java
可见性
信息板
组合
消息流建模
监视
SLA
报表
开放式界面
发现/验证
转换
服务调 出
测试浏览 器
安全性
传输安全性
消息处理
服务传输层
WS-Security
控制台安全性
策略
传输 SDK
服务
服务
服务
服务
正文·第二章
E
S
B企
架 构
业 服 务
体总
系
线 整
体
架
构
第二节
ቤተ መጻሕፍቲ ባይዱ
正文·第二章
E
S
B企
架 构
业 服 务
体总
系
注意事项:把对ESB产品功能的需求在第一批上 线系统的需求分析阶段就分析完成,并充分考虑 未来其他系统接入时的报文、协议格式等
正文·第三章
E
S
BE
实S
施B
方 法 论
项 目 实 施
过
程
第二节
整理分析 接口文档
服务归纳 分析
服务规范 文档整理
2 需求分析
对各系统提供的接口文档进行业务分 析,分析了解各种交易完整的业务含义, 审核接口文档中的错误疑点
企业服务总线解决方案

企业服务总线解决方案随着科技的不断发展,企业的业务系统和应用程序数量也在不断增加。
然而,这些系统和应用程序之间的集成及通信问题却成为了企业面临的一个重要挑战。
为了解决这一问题,许多企业开始采用企业服务总线解决方案。
一、什么是企业服务总线解决方案?企业服务总线(Enterprise Service Bus,简称ESB)是一种用于集成企业中各种应用程序和系统的解决方案。
它提供了一条统一的通信通道,通过这个通道,不同的应用程序可以相互之间进行数据传输和交流。
ESB充当了一个中间层,负责处理不同应用程序之间的数据格式转换、消息传递和协议转换等任务。
二、为什么需要企业服务总线解决方案?1. 提高系统整合效率:企业内部通常拥有多个应用系统,这些系统之间的数据和消息传递需要进行集成和协调。
采用ESB可以将多个系统的数据进行整合,提高数据的处理效率和质量。
2. 实现系统互联互通:不同的应用程序通常使用不同的数据格式和通信协议,直接进行通信会非常困难。
ESB可以作为中间层,将不同系统之间的通信进行协调和转换,使得系统之间可以进行无缝的互联互通。
3. 简化企业系统架构:采用ESB可以将企业系统架构中的复杂性进行简化。
通过ESB,企业可以将不同的应用程序和系统进行解耦,从而提高系统的可维护性和可扩展性。
三、企业服务总线解决方案的主要特点1. 中央集中管理:ESB作为中央枢纽,集中管理企业中的各种应用程序和系统。
通过ESB,企业可以实现对不同系统的集中监控、管理和调度。
2. 支持多种通信协议:ESB提供了对多种通信协议的支持,包括SOAP、REST、JMS等。
这使得不同系统之间可以使用适合自身的通信协议进行数据传输和交流。
3. 数据转换和格式转换:不同应用程序和系统之间通常使用不同的数据格式。
ESB提供了数据转换和格式转换的功能,可以将不同格式的数据进行转换,使得系统之间可以无缝进行数据交互。
4. 消息路由和转发:ESB可以根据不同的规则和条件对进入的消息进行路由和转发。
esb解决方案

esb解决方案
《ESB解决方案:构建灵活可靠的企业集成平台》
企业服务总线(Enterprise Service Bus,ESB)是一种用于构建复杂集成系统的解决方案,它可以帮助企业实现不同应用系统之间的数据交换和通信。
ESB解决方案不仅提供了灵活性和
可靠性,还可以帮助企业降低成本、提高效率和加快业务创新的速度。
在当今的企业信息化环境中,众多的业务系统和应用程序需要进行集成和交互,而ESB解决方案可以帮助企业简化这一复
杂的集成过程。
通过ESB,企业可以实现不同应用系统之间
的无缝集成,无论是在同一平台内部还是在不同平台之间。
ESB解决方案还可以提供可靠的消息传输和数据交换的机制,确保数据的安全传输和完整性。
而且,ESB还可以集成企业
的各种系统和服务,为企业提供统一的接口和标准化的数据格式,帮助企业降低集成成本和提高业务系统的可维护性。
另外,ESB解决方案还可以帮助企业实现业务流程的自动化
和优化,提高企业的业务效率和灵活性。
通过ESB,企业可
以将不同的业务系统和服务进行统一管理和调度,实现业务流程的整合和优化,从而提高企业的运营效率和响应速度。
总之,ESB解决方案是企业集成的关键技术之一,可以帮助
企业实现复杂系统的集成和交互、提高企业的业务灵活性和可靠性,是现代企业信息化建设的重要组成部分。
因此,对于有
需要进行系统集成和数据交换的企业来说,ESB解决方案无疑是一个不错的选择。
ESB企业服务总线解决方案

ESB企业服务总线解决方案ESB(Enterprise Service Bus)企业服务总线是一种软件架构模式,用于在企业中集成和管理不同的应用程序和服务。
ESB通过提供统一的通信、消息传递和服务管理功能,使企业能够轻松地创建、管理和扩展复杂的跨应用程序和服务的集成解决方案。
本文将详细介绍ESB企业服务总线解决方案的架构和功能,以及它对企业的优势和应用实例。
ESB企业服务总线解决方案的架构包括以下几个主要组件:1. 消息引擎:负责处理和路由消息。
消息引擎可以将消息从一个应用程序传递到另一个应用程序,并根据预先定义的路由规则将消息分发给正确的接收方。
2. 服务注册与发现:用于管理企业中的各种应用程序和服务。
它允许应用程序和服务注册自己,并提供统一的接口供其他应用程序和服务使用。
通过服务注册与发现,企业可以方便地发现和使用其他应用程序和服务,从而加快开发和集成的速度。
3. 数据转换和映射:负责将不同应用程序之间的数据格式进行转换,并将数据映射到目标应用程序所需要的格式。
数据转换和映射功能可以确保不同应用程序之间能够正确地共享和理解数据。
4. 安全管理:用于保护企业中的应用程序和服务。
安全管理功能包括身份验证、授权和加密等措施,以确保只有经过授权的用户可以访问企业的应用程序和服务。
5. 事务管理:负责处理企业中的事务。
事务管理功能可以确保在多个应用程序和服务之间的操作能够以事务的方式进行,从而保证操作的一致性和完整性。
ESB企业服务总线解决方案的主要功能包括:1. 应用程序和服务集成:ESB可以将企业中的不同应用程序和服务集成在一起,以实现跨系统和跨平台的数据交换和业务流程。
通过ESB,企业可以实现实时、可靠和安全的应用程序和服务集成,从而提高企业的业务效率和灵活性。
2. 业务过程管理:ESB可以帮助企业实现业务过程的自动化和流程优化。
ESB可以通过定义和管理业务过程的规则和工作流程,自动执行复杂的业务操作,并对业务过程进行监控和优化。
esb 总线解决方案

ESB(企业服务总线)解决方案概述企业服务总线(Enterprise Service Bus,ESB)是一种软件架构模式,旨在帮助企业构建灵活、可扩展的集成解决方案。
ESB通过提供统一的通信和消息传递机制,将各个分布式应用集成在一起,从而实现系统间的无缝数据交流和业务流程的协调。
本文将介绍ESB总线解决方案,包括其架构、核心功能和优势等方面的内容。
架构ESB总线解决方案的核心组件包括:1.消息中介(Message Broker):负责接收、转发和路由消息。
它允许不同的应用之间通过消息进行通信,并提供了消息的可靠性传递保证。
2.服务注册与发现(Service Registry and Discovery):用于服务的注册和查找,使得各个应用能够动态地发现和调用其他应用的服务。
3.数据转换与协议适配(Data Transformation and Protocol Adaptation):对接不同的数据格式和通信协议,实现数据的转换和适配。
4.连接器(Connectors):提供与不同应用和系统进行集成的能力。
连接器通过提供特定的协议和接口,使得ESB能够与各种应用和系统进行无缝集成。
5.监控与管理(Monitoring and Management):提供对ESB总线进行监控和管理的功能,包括消息流量、服务运行状态等的监控与报警。
核心功能ESB总线解决方案提供以下核心功能:消息传递ESB总线使用消息作为通信机制。
不同的应用通过发送和接收消息来进行交互。
消息可以是同步的也可以是异步的,这样不仅可以实现应用之间的实时通信,还可支持批量数据处理和异步任务处理等。
服务集成ESB总线提供服务注册与发现的功能,使得各个应用可以动态地查找和调用其他应用的服务。
通过将服务封装成可重用的组件,ESB能够提高系统的灵活性和可维护性,降低代码的冗余性和复杂性。
数据转换与协议适配不同的应用可能使用不同的数据格式和通信协议,ESB总线通过提供数据转换和协议适配的功能,使得各个应用能够无缝集成。
ESB企业服务总线解决方案

ESB企业服务总线解决方案ESB(Enterprise Service Bus)企业服务总线是一种用于构建和管理企业级系统的解决方案。
它通过提供一种标准化的、灵活的、可扩展的集成框架,使得不同企业应用程序和系统能够在统一的服务总线上相互连接和通信。
ESB解决方案主要包括以下几个方面的功能和特点:1.消息传递:ESB充当消息传递和路由的中心枢纽,将不同系统之间的消息进行传递和转发。
它提供了各种消息传递模式,如同步和异步,点对点和发布订阅等。
2.服务集成:ESB能够通过适配器和连接器与不同的系统和协议进行集成。
它支持多种通信协议,如HTTP、JMS、SOAP、REST等,并能够处理一些诸如身份验证、消息转换等的集成细节。
3.服务编排:ESB支持对多个服务进行编排和协调,以满足复杂的业务需求。
它可以定义和管理业务流程,将不同的服务组合起来,形成完整的业务流程。
4.服务安全性:ESB提供了一系列的安全措施来保护服务和数据的安全性。
它支持身份验证、授权、加密、审计等安全机制,能够确保只有合法用户才能访问和使用服务。
5.监控和管理:ESB提供了对服务总线和集成流程的监控和管理功能。
通过实时监控和统计数据,可以对服务的性能、可用性和稳定性进行评估和优化。
ESB解决方案的优势如下:1.提高系统的灵活性和可扩展性:ESB将企业应用程序和系统解耦,使得它们能够独立演化和扩展。
当新系统或应用程序加入到企业架构中时,只需通过ESB进行集成,而无需改变其他系统。
2.提升系统的集成效率和可重用性:ESB提供了一种标准化的集成框架,通过可重用的适配器和连接器,可以快速实现不同系统之间的集成。
同时,通过面向服务的设计,可以将常用功能和服务进行抽象和封装,以便在其他地方进行重复使用。
3.加强系统的安全性和可靠性:ESB提供了一系列的安全措施,能够确保服务和数据的安全性。
同时,它还可以处理错误和故障,提供消息的可靠传递,以确保服务的连续性和可用性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于SOA关于SOA的概念,你可以找到很多的文章从不同的角度来描述它,不同的软件提供商也有不同的定义方式。
BEA有流体计算,微软有Indigo和SOA-building,SAP有ESA。
每个人都可以从不同的视角来理解SOA,从程序员的角度,SOA是一种全新的开发技术,新的组件模型,比如说Web Service;从架构设计师的角度,SOA就是一种新的设计模式,方法学;从业务分析人员的角度,SOA就是基于标准的业务应用服务。
从概念的角度,IBM 对SOA的定义是最为全面的,既SOA是一种构造分布式系统的方法,它将业务应用功能以服务的形式提供给最终用户应用或其他服务。
SOA包括如下要素:一个体系架构,用开放的标准将软件资产(Asset)化为服务提供标准的方法来表示软件资产及其交互单独的软件资产作为构造单元,被重复使用来开发其他应用将关注点从细节实现转移到应用(application)组装整合企业外部的应用(B2B)的方式开发(现在)和整合(未来)的统一本文针对的读者是软件开发人员,站在开发人员的角度,往往希望软件开发能够满足对于开发效率、可靠性、易维护性、易管理等多方面的更高要求。
让我们通过回顾软件开发的演化过程来看一看SOA出现的必然性:面向机器语言(Monolithic)的开发模式:需要根据不同平台的机器语言来开发代码。
面向过程(Procedure)的开发模式:独立于机器的程序语言(C,Pascal等)使开发过程变得简单了,用过程来代表一个抽象的代码集合,包装重用现成的代码。
面向对象(Object)的开发模式:用更接近现实的对象来表述一个相对完整的事物。
面向对象的语言(Smalltalk,Java等),提供了更抽象的封装和重用模式。
面向对象的开发强调从现实世界问题域到软件程序的直接映射,更接近人类的自然思维方式。
面向组件(Component)的模式:随着软件开发规模的扩大,在涉及分布式、异构等复杂特征的环境中,代码级别的重用性差,可维护性差,效率低的弱点是不可逾越的,因此人们以架构运行环境(如.Net,J2ee等)来提供完善的支撑平台,从而把开发者解放出来,更专注于业务核心的开发。
而这些业务功能(Business Function)以组件的形式(DCOM,EJB等)发布运行在架构运行环境中。
软件开发的重用模式也上升到业务组件的级别。
面向服务(SOA)的模式:当软件的使用范围扩展到更广阔的范围,往往会面对更加复杂的IT环境和更加灵活多变的需求。
服务(Service)的概念出现了,人们将应用(Application)以业务服务(Business Service)的形式公布出来供别人使用,而完全不需要去考虑这些业务服务运行在哪一个架构体系上,因为所有的服务都讲着同样的语言。
SOA考虑了业务发展的长期性,体现了"变化就是永恒"的思想。
SOA的核心体现在企业应用或者业务功能上的"重用"和"互操作",而不再把IT与业务对立起来,这可以被视为在IT驱动业务的方向上迈出的重要一步。
我们注意到,SOA同样也强调重用(Reuse),但是相对于传统的代码重用,对象重用,和部件重用,SOA的重用粒度更粗。
SOA的重用在于业务级的应用,即服务的重用,这与软件的发展规律是相一致的。
在软件发展的过程中,软件重用的对象越来越接近我们的现实生活。
通过部件的重用,软件的开发更具效率,并且开始试图用组件表达业务模式。
但是,IT人员仍很难对业务人员解释清楚IT结构怎样映射到业务模型上。
然而,IT架构与业务模型的弥合是不可避免的方向。
现代企业的业务环境所面临的最大挑战就是变化,规则在变,需求在变,而对变化做出最快的反应,尽快地适应变化,成为企业占得先机,成功运作的关键。
很多企业的业务环境依赖于他们的IT架构,因此,IT部门往往直接承载了业务变化带来的压力。
每一个具体的业务变化,都直接反应到对现有的IT平台的要求:要么企业IT架构本身对变化自适应,要么IT架构能够在短时间内根据新的业务规则做出调整。
这就是SOA 架构提出的根本原因,我们需要一种更加贴近业务的IT架构,能够直接描绘业务,对那些不懂IT技术的业务领域专家来说,业务服务却是他们最熟悉的,也就是说是SOA把软件重用的对象从IT人员上升到了业务人员。
因此,我们可以说SOA与其它的模式相比,最大的进步在于它与业务的关联性,"服务"对应到实际业务。
IT通过"服务"与业务发生了密切的关系,业务人员和IT人员都可以专注于业务逻辑的实现,而共同的语言就是"服务"。
但不是什么场合都适用SOA。
通常来讲,SOA适用于较为复杂的IT架构,经常需要与外部复杂的IT环境交互,并且需要快速地应对频繁发生的业务变化。
就像你不可能在控制洗衣机的芯片上使用EJB开发一样,如果你的IT环境规模很小,足以灵活地应对变化,不需要与其他的异构IT环境频繁交互,那么SOA带来的好处就不足以抵消它给你带来的系统复杂性。
但是,即令如此,你也并没有被完全排除在SOA的大趋势之外。
SOA是如此地倍受瞩目,我们可以预见到它的迅猛发展,因此即使你的内部IT架构本身并不是基于SOA 的,你也还有机会参与到未来的SOA架构中去。
例如,将你的某个业务以服务的形式发布到某个外部SOA平台上供别人使用,作为第三方SOA平台的一个服务提供者(Service Provider)存在。
在选择SOA的实施方案时,要记住,软件的具体实现技术诸如Web服务与SOA是两回事,SOA是一个概念,方法学,或者用一个更时髦的词:一种模型。
而Web服务呢?它是一种具体的实现技术,就像EJB一样。
SOA≠Web服务。
不过公平地讲,Web服务倒确实是目前最适合实现SOA的技术之一,用Web服务来封装业务服务是个不错的选择。
因为Web服务是标准的,WS-I协议保证了来自不同厂商的Web服务即使运行在不同的平台上,底层的实现机理不同也可以顺利交互,这是以前的任何一种技术如CORBA,EJB,或DCOM都不能做到的。
而且,Web服务的定义与实现是分开描述的,即松散耦合,因此,可以很方便地替换服务的内在实现而不会对现有的系统造成任何冲击,这也极大地促进了IT 架构的灵活性。
对于SOA更进一步的了解,可以参考IBM developerWorks上其他SOA相关的文章(请参见参考资料),我们的系列文章将主要讨论ESB,因此不再此过多地论述SOA了。
为了使我们下面的论述更顺畅,请先牢记典型的SOA架构有哪些基本的要求:SOA在相对较粗的粒度上对应用服务或业务模块进行封装与重用;服务间保持松散耦合,基于开放的标准,服务的接口描述与具体实现无关;灵活的架构-服务的实现细节,服务的位置乃至服务请求的底层协议都应该透明;ESB让我们暂时回到网络技术不普及的时代,你怎样在两台机器之间传递文件?我还记得为了给实验室的每台机器安装Borland C++的环境,猜猜我动用了什么:一根"串口线"。
不过,我仍然觉得庆幸,好在每台机器都运行同样的操作系统-DOS(很少有人还记得DOS中有Interlnk这样一个命令吧),用来通过串口线在两台机器间传递流文件。
否则我将不得不用软盘来拷贝所有的安装文件。
我那个时候的梦想就是,哪一天有这么一个叫做"网络"的东西能够把实验室里面所有机器都连接起来,而不用我在各机器之间跑来跑去。
让我们回归主题,你现在已经基本明白了什么是SOA。
假定你已经按照SOA的思想提炼出了各种业务服务,公布出来,同样,你发现其他很多人也做了同样的事情。
大家都很振奋,开始踊跃的尝试,我调用你的一个服务,你调我的一个服务。
啊哈!大家都SOA了。
且慢,那么这个SOA给你们带来了什么好处呢?Ok,现在我可以在J2EE环境里调用.Net 的组件了,但是原来没有SOA的时候也可以做到的呀。
只要两个节点之间互相认可对方的方式,即使不存在公开/统一的服务界面也可以实现点到点的互联。
因此我们不得不承认,如果我们只有服务,而服务的请求者和服务的提供者之间仍然需要这种显式的点到点的调用,那么这就不是一个典型的SOA架构。
请看图二,服务的参与双方都必须建立1对1的联系。
这样一个结构与我十几年前的那种互联的方式何其相似!但是,还记得我们上面提到的SOA 三个基本要素吗?显然第三点没有做到。
因此,在SOA中,我们还需要这样一个中间层,能够帮助实现在SOA架构中不同服务之间的智能化管理。
最容易想到的是这样一个HUB-Spoke结构,在SOA架构中的各服务之间设置一个类似于Hub的中间件,由它充当整个SOA架构的中央管理器的作用。
请看图三,现在服务的请求者和提供者之间有了一个智能的中转站,服务的请求者不再需要了解服务提供者的细节。
不错!看上去是一个好的SOA结构。
事实上,传统的EAI就是通过这样一种方式来试图解决企业内部的应用整合问题。
EAI的目标是支持对现有IT系统的重新利用,通过EAI技术能够将不同的软件和系统串联起来,延长这些应用系统的生命周期。
传统的EAI,往往使用如CORBA和COM等的消息中间件进行分布式,跨平台的程序交互,修改企业资源规划以达到新的目标,使用中间件、XML等方法来进行数据分配。
因此,实际上传统的EAI是部件级的重用。
很不幸的是,基于部件的架构没有统一的标准,因此,各个厂商都有各自不同的EAI解决方案,你会看到各种各样的中间件平台。
如果EAI碰到了异构的IT环境,就必须分别考虑怎样在各个不同的中间件之间周旋,来实现合理的互联方式,你不得不考虑各种复杂的可能性。
因此,你所见过的大多数传统EAI解决方案都比较笨重。
再回顾一下我们上面介绍过的SOA的应用场景:复杂的企业级架构。
如果我们选择Hub的模式来构建SOA基础架构,从纯粹逻辑的角度,可能会出现哪些问题呢?首先,整个SOA架构的性能,如果每个服务的请求都经过中央Hub的中转,那么Hub的负担会很重,速度会随着参与者的增多而愈来愈慢;其次,这样的系统会很脆弱,一旦Hub出错,整个SOA架构都会瘫痪;最后,这样的架构会破坏SOA的开放性原则,参与者运行在一个相对封闭的环境中,扩展起来十分麻烦。
因此,这也不是理想的SOA架构。
好了,现在该ESB登场了,请看我们的正解:它与前面的Hub结构有什么不同呢?首先,它比单一Hub的形式更开放,总线结构有无限扩展的可能;其次,真正体现了SOA的理念,一切皆为服务,服务在总线(BUS)中处于平等的地位。
即使我们需要一些Hub,那么它们也是以某种服务的形式部署在总线上,相比上面的结构要灵活的多。
这就是ESB,我们需要给它一个明确的定义:ESB是一种在松散耦合的服务和应用之间标准的集成方式。