ESB是企业服务总线(Enterprise Service Bus)的缩写,是中间件技术与Web Service等技术结合的产物,也是SOA系统中的核心基础设施。ESB就是一个服务的中介,形成服务使用者->ESB服务Proxy->服务提供者的生物链,中介的作用在不同应用中各有不同:
- 解耦中介:客户对实际服务提供者的身份、物理位置、传输协议和接口定义都是不知道也不关心的,交互集成代码提取到了业务逻辑之外,由ESB平台进行中央的宣告式定义。ESB平台实现协议转换 (WebService,Http,JMS...),消息转换 (转换、充实、过滤),消息路由 (同步/异步、发布/订阅、基于内容路由、分支与聚合...)。
- 服务中介 :ESB平台作为中介提供服务交互中的基础服务。ESB平台实现SLA (可靠性保证,负载均衡,流量控制,缓存,事务控制,加密传输),服务管理监控 (异常处理,服务调用及消息数据记录,系统及服务的状态监控,ESB配置管理),统一安全管理 (这个有点理想主义)。
- 服务编排 :多个服务进行编排形成新的服务。ESB支持一个直观的形式定义新组合服务的流程(工作流、BPEL 或代码级编排)。
从上面可以看到ESB的基本功能仍然是数据传输,消息协议转化,路由三大核心功能。有这三大核心功能也可以看到在进行异构系统的整合时候往往根据需要ESB提供这些功能。没有ESB时候也可以实现SOA,比如借助SCA和BPEL来实现SOA,当时却很难实现消息协议转化和动态路由。
ESB在发展过程中有从原有的消息中间件转化为ESB产品的,这类消息中间件和数据总线产品在原有的EAI企业应用集成中应用比较多。而SOA根据强调了基于服务的集成,以Web Service服务为基本的管理单元。一个服务的定位是关于如何把业务逻辑表现成为一组相互独立的,自描述的且能互操作的实体。
对于SOA关注的是服务全生命周期,通过服务实现业务价值。而ESB关注的是服务中介和服务的集成,是SOA的基础设施。SOA有两个核心组件,一个是ESB,一个是BPEL,而ESB是基础设施,BPEL是业务流程驱动下服务的集成和整合。离开了SOA,ESB将失去它所连接的服务,而仅仅是一个总线,同时也将变得毫无价值。Bobby做了一个比喻:路是没有任何价值的,除非你利用它把一个东西从一个地方移到另外一个地方。而离开SOA,ESB就像一个没人使用的道路。
做SOA的事情不要先上来建立一个大而全的ESB,相反是关注你的业务问题,找到用SOA的方法来解决业务上的需求,在解决这个问题的过程当中,你会看到一系列的业务服务。这些业务服务是会产生业务价值的。它可以灵活地组装,动态地解决你变化的业务需求。这是它的价值,只有这样才能使你的业务敏捷起来,随需应变起来。而在服务的组装过程中,你再去考虑利用ESB来把他们连接起来。
ESB 需要某种形式的服务路由目录(service routing directory)来路由服务请求。然而,SOA 可能还有单独的业务服务目录(business service directory),其最基本的形式可能是设计时服务目录,用于在组织的整个开发活动中实现服务的重用。Web 服务远景在业务服务目录和服务路由目录的角色中都放置了一个 UDDI 目录,因而使得可以动态发现和调用服务。这样的目录可以视为 ESB 的一部分;然而,在这样的解决方案变得普遍之前,业务服务目录可能与 ESB 是分离的。
标准的 ESB 功能
通信 |
服务交互 |
|
|
集成 |
服务质量 |
|
|
安全性 |
服务级别 |
|
|
消息处理 |
管理和自治 |
|
|
建模 |
基础架构智能 |
|
|
上面的许多功能既可以使用专有技术实现,也可以通过利用开放标准实现。然而,使用不同的技术来实现 ESB 可能会使它们的性能、可伸缩性和可靠性这些特性显著不同,同时 ESB 功能和所支持的开放标准也会有所不同。由于这些原因,再加上最近制订和正在兴起的一些相关标准,当今实现 ESB 的许多关键决策都涉及到成熟的专有技术和不成熟的开放标准之间的权衡。
支持 SOA 的最低功能的 ESB 实现
如果在前面确定的功能中只有一部分和大多数 SOA 场景相关,我们可能会问:实现 ESB 所需的一组最低功能由什么构成?为此,考虑最被普遍认同的 ESB 定义的原理:
- ESB 是一种逻辑体系结构组件,它提供与 SOA 的原则保持一致的集成基础架构。
- SOA 原则需要使用与实现无关的的接口、强调位置透明性和可互操作性的通信协议、相对粗粒度和封装可重用功能的服务定义。
- ESB 可以作为分布式的异构基础架构进行实现。
- ESB 提供了管理服务基础架构的方法和在分布式异构环境中进行操作的功能。
最低的 ESB 功能
通信 |
集成 |
|
|
服务交互 |
|
|
|
请注意这些最低功能并不需要使用特别的技术,比如 EAI 中间件、Web 服务、J2EE 或 XML。这些技术的使用非常接近也非常符合需求,但是不必强制要求使用它们。相反,最低功能几乎只需简单地使用 SOAP/HTTP 和 WSDL 就可以实现(当然不是所有的情况都这样):
- URL 寻址和现有的 HTTP 和 DNS 基础架构提供了一个具有路由服务和位置透明性的“总线(bus)”。
- SOAP/HTTP 支持请求-响应(Request-Response)通信规范。
- HTTP 传输协议被广泛地使用。
- SOAP 和 WSDL 是开放、与实现无关的服务通信和连接模型。
然而,这些 SOAP/HTTP 和 WSDL 的基本应用只是点到点(point-to-point)的集成,并不能实现一些 ESB 需要的关键功能:
- 目前还没有用于控制服务寻址和命名的管理功能。服务名称通过每个适配器单独进行控制的,服务路由控制则分散在由服务客户端调用的地址、HTTP 基础架构和分配给适配器的服务名称之间。
- 虽然这种方法依赖于实现细节,但是它往往并不能使服务实现的替代变得简单;服务请求者代码(也可能是开发工具生成的)通常通过特定地址的特定协议直接绑定到具体的服务提供者实现。如果想要用另一个服务实现来替代原来的服务实现,就需要修改应用程序代码并重新部署这些代码。
当然,在许多甚至是大多数情形中往往需要其他的功能,并且这种需要变得越来越常见。特别地,不管是现在还是以后,下面的需求类型可能会导致更复杂高级的技术的使用:
- 服务质量和服务级别功能。
- 高级 SOA 概念,例如服务编排、目录、转换等等。
- 按需操作环境需求,比如管理与自治功能以及基础架构智能功能。
- 跨越具有不同所有权的多个网络、多个协议以及多个域的真正意义上的异步操作
相关推荐
ESB(Enterprise Service Bus,即企业服务总线)是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。企业服务总线ESB就是一种可以提供可靠的、有...
SOA倡导将软件组件提供的功能尽量封装成能被其它软件组件调用的服务。组件(或服务)就是可重用的软件构建块。 SOA允许集成现存的系统,应用和用户,形成一个能够随着需求变化容易调整的灵活的架构。总之,集成的...
作为基础架构的EAI系统,必须能够对系统范畴内的任何一种消息进行解析。传统的EAI系统中的消息处理大多是被动的,消息的处理需要各自中间件的私有方式支持,例如API的方式。...这也是ESB中总线(Bus)功能的体现。
ESB的出现改变了传统的软件架构,可以提供比...从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。
关于SOA的概念,你可以找到很多的文章从不同的角度来描述它,不同的软件...从概念的角度,IBM对SOA的定义是最为全面的,既SOA是一种构造分布式系统的方法,它将业务应用功能以服务的形式提供给最终用户应用或其他服务。
关于SOA的概念,你可以找到...从概念的角度,IBM对SOA的定义是最为全面的,既SOA是一种构造分布式系统的方法,它将业务应用功能以服务的形式提供给最终用户应用或其他服务。一个体系架构,用开放的标准将软件资产(Asse
内容背景介绍健康服务总线总体架构集成WTX转换HL7消息集成TDS和TSPM提供安全网关使用适配器集成医疗服务提供者应用集成WSRR提供服务管理总结参考资料简介: 健康服务总线是企业服务总线在医疗行业的实现,它使用SOA...
ESB全称为Enterprise Service Bus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以...
IDC将ESB定义为:基于开放的标准消息总线,用于通过标准的适配器和接口,来提供各程序和组件之间的互操作功能。它支持相互独立的异构环境中的服务、消息及基于事件的交互,并且具有适当的服务级别和可管理性。
2)传输服务: 必须确保通过企业总线互连的业务流程间的消息的正确交付,传输还包括基于内容的路由功能。 3)中介:提供位置透明性的服务路由和定位服务;多种消息传递形式;支持广泛使用的传输协议。 4)多种...
健康服务总线是企业服务总线在医疗行业的实现,它使用 SOA 架构和医疗行业标准为基础,将医疗卫生机构的业务流程、应用系统和相关数据整合起来,提供统一的访问总线。本文给出了 IBM WebSphere Message Broker 为...
1) 数据交换中心及资源服务:构建数据交换共享企业级服务总线ESB,基于ESB的数据中心数据资源交换共享服务。 2) 数据交换接入前置系统:ESB总线前置实现需要交换的部门数据接入和服务接入。 3) 交换管理监控系统,...
最近,企业服务总线(EnterpriseServiceBus,ESB)的概念被表述为SOA基础架构的关键组件。然而,有必要阐明ESB究竟是一个产品、技术、标准,还是别的什么。特别是,当前是否可以构建ESB?如果这样,该如何构建?本文...
本文试图提出采用ESB(Enterprise Services Bus,企业服务总线)的解决方案,通过构建一个松散耦合的综合门户管理系统,实现企 业中多个异构业务系统的集成,同时继承企业已有的IT资产,并提供丰富的管理功能和 未来...
企业服务总线 (ESB) 执行查询标准之间的转换 Apache Solr 集成 众所周知的文本 (WKT) 索引和搜索空间意识 全文检索 XML 索引 开放地理空间联盟 (OGC) KML、CSW 和 WFS 联合服务 OpenSearch 联合服务 用于目录操作的 ...
企业服务总线 (ESB) 执行查询标准之间的转换 Apache Solr 集成 众所周知的文本 (WKT) 索引和搜索空间意识 全文检索 XPath 搜索 XML 索引 开放地理空间联盟 (OGC) KML、CSW 和 WFS 联合服务 OpenSearch 联合