企业服务总线(Enterprise Service Bus,ESB)在现代IT领域可以说一个炙手可热的名词。随着SOA进程的推进与落地,ESB的关键性更进一步的得到了广泛的认可。厂商,媒体从各种角度对其进行诠释。各个商业软件厂商以及开源社区也纷纷推出各自的ESB产品。然而我们发现,厂商,媒体对ESB的解释,以及具体ESB产品的功能定位有着相当大的差异。这种现象在某种程度上困惑着IT人士:ESB的核心功能,尤其是其在SOA体系中应当扮演的角色是什么?
在本文中,我愿意和大家分享交流我们作为SOA支撑产品提供者和SOA解决方案提供者对于在SOA体系中ESB的功能定位的理解。
本文第一和第二部分着重描述在SOA体系中,ESB这一概念层次应有的功能定位,第三部分结合目前业界相关ESB产品的功能,介绍这些产品的功能和SOA中ESB层的功能定位的关系。
1、ESB核心功能——中介代理
在SOA体系中,ESB被当作一个集成平台来将企业各种各样的软件资产服务化。这种服务化即将各种各样的私有技术以现代开放,标准的形式暴露为服务供SOA体系中的更高层次(如业务流程管理BPM)使用。
本质上说,SOA需要ESB为服务提供者和消费者之间提供中介服务。ESB作为服务提供者和消费者之间的中介,能够对服务消费者屏蔽提供者位置,协议等技术细节,从而在有多方参与的企业应用集成场景下能够更加灵活并能适应变化的集成服务的调用方与提供方,比如,提供者位置(end point)变化时对服务消费者完全透明。而且,ESB也常常充当服务集成的统一平台,在其上统一多个被集成方的调用协议,通讯方式以及消息语义(统一消息模型),使得其上层(North bound)服务调用者如BPM流程可以以单一且一致的语言与下层(South bound)实现各种各样的会话。
围绕这中介代理这一核心功能,ESB应该具备的具体能力有:
(1)完善的服务组件模型,包括服务组件的编程模型
ESB应该提供定义统一,明确的服务组件模型,所有软件功能都被封装成服务组件。只有这样才能够实现服务之间的松耦合组装。
(2)松耦合链接服务调用者与提供者的组装模型
ESB应该提供独立的服务调用者与提供者的松耦合组装模型。这里“独立”,“松耦合”指服务调用者与提供者的连接关系完全由组装模型定义,对于调用者与提供者的内部实现逻辑完全透明。
为了实现调用者与提供者的具体连接关系对服务实现透明,消息路由,服务提供者寻址(包括分布式服务寻址),以及必要的数据转换,数据填充,同步/异步通讯模式转换等中介功能需要由ESB的组装模型提供而不需要调用者与提供者实现逻辑关心。
(3)支持多种接入方式,通讯协议转换。
包括对服务调用者提供多种调用协议,以及能够连接使用各种私有传统接口的服务提供者。
2、ESB扩展功能
作为SOA体系的支撑平台,ESB将成为整个架构中核心的服务使能者(Service Enabler)。因此需要ESB在提供核心中介服务的基础上,具备下面的扩展功能特性:
(1)安全——ESB需要提供认证,授权,加密等安全功能保证ESB上的服务被安全的调用,以及ESB可以以服务提供者需要的安全机制调用提供者。
(2)与服务注册库的无缝集成——可以有效的使用服务注册库提供的服务管理功能。
(3)简化开发,部署的能力——如提供图形化的开发工具,集中的提供分布式部署能力的部署工具等。
(4)监控与管理——提供必须的ESB运行时监控与管理能力。
(5)高性能,高可靠性——ESB需要是一个高性能服务中介引擎,同时必须提供足够的高可靠性保障机制。
3、ESB产品的服务编排与EAI
最后一点想要说明的是,从ESB的发展历史看,ESB并不是天生和SOA密切相关的,他反而更多的是由企业应用集成(Enterprise Application Integration,EAI)的需求发展而来。从EAI的角度来看,将各个软件功能通过ESB的中介封装成服务显然是不够的,它一般还需要将这些服务按照一定的业务逻辑编排起来进而实现完整的EAI功能,如数据的整合,交换功能等。因此,我们看到,目前相当一部分的ESB产品同时提供(和BPM相比相对简单但高效的)服务编排功能,为松耦合但需短时间自动执行的服务编排流程提供了技术实现方案。
ESB产品提供更多的功能当然是好事。但我们想要指出的是,具体ESB产品的功能范围不应该影响SOA对ESB本质功能需求的理解,进而混淆ESB在SOA中的定位。从SOA体系的层次结构来看,我们愿意给ESB设定一个相对狭义的功能范畴,即ESB只为SOA上层构件提供透明的,标准的下层功能实体的服务化封装。而将封装好的服务进行业务编排进而实现各种业务集成功能是SOA体系中ESB之上的构件实现的,其中可以是BPM,各个ESB产品的服务编排功能等等。
虽然如前所述,对服务进行编排实现各种业务集成功能从层次上来说不建议是SOA中的ESB的功能要求,但在这里不妨补充说明一下这种业务集成功能的具体实现方式。
理论上说,基于ESB封装的服务的编排可以以任何方式实现。实际应用中,我们看到大致有三种实现方式,即使用业务流程管理(BPM)引擎实现,使用某些ESB产品自身的编排能力,以及使用自定制的方式编排集成流程。
BPM方式的优势在于:在业务服务已经被封装并能被业务人员理解的前提下,BPM提供业务人员可以理解驾驭的图形化建模手段来编排各种业务服务构成新的标准化的业务流程。BPM的引入可以有效的提升业务人员对IT系统的参与,进而实现业务主导的集成应用快速开发和随需应变。同时,BPM实现目前已经有成熟的标准支持,使用BPM实现的集成功能实现对具体产品的依赖相对较低。因此,BPM是业务层面应用集成的有力支撑技术之一,在有人工介入的长时间流程方面,其更是唯一的选择。但另外一方面,BPM实现的集成应用在运行效率方面则不如另外两种编排方式。
使用ESB产品服务编排功能的方式的优势在于可以提供短时间自动执行的服务编排流程的高效执行,但这种编排功能往往是各种ESB产品自己的特有功能,缺乏标准的支持,因此基于ESB产品集成功能实现会比较依赖于具体的ESB产品。这种方式实际上自定制实现方式的一种特例,差别是编排功能不是由应用集成系统的构建者提供而是由ESB产品供应商提供。
自定制实现方式能最直接,高效的精确实现业务集成流程,但其缺点也是显而易见的:定制开发的复杂度,难以持续功能扩充,随需应变。因此仅适用于特殊的集成需求的场景。
分享到:
相关推荐
面向服务的体系架构(SOA)是一种软件设计和构建的方法,其核心思想是将复杂的业务逻辑分解为一系列可...在实施SOA的过程中,选择合适的工具和产品,以及理解并掌握构成SOA的关键技术,对于构建成功的SOA系统至关重要。
ESB(企业服务总线)是面向服务体系架构(SOA)发展而来的,它将传统中间件技术与XML、Web服务等新兴技术相结合。ESB在企业中扮演着基础的连接中枢角色,是构成企业神经系统的必不缺少的组件。它改变了传统的软件...
### SOA Training 知识点详解 #### 一、SOA 概念解析 - **定义与用途**:SOA(Service-Oriented Architecture,面向服务的...同时,ESB 在 SOA 实施过程中扮演着关键的角色,提供了服务间集成与管理的一站式解决方案。
- **ESB(Enterprise Service Bus)**:企业服务总线是SOA中的关键组件,它简化了服务之间的通信,并提供了诸如路由、转换、安全和事务管理等功能。 - **BPM(Business Process Management)**:业务流程管理用于...
面向服务的体系架构(SOA)是一种软件设计和构建的原则,它强调将应用程序的不同功能单元作为独立的服务,通过标准化的接口进行通信。这种设计方法旨在提高系统的灵活性、可重用性和互操作性,使得不同系统和服务...
【ESB配置应用】是企业服务总线(Enterprise Service Bus)在实际操作中的核心概念,主要涉及面向服务的体系结构(Service-Oriented Architecture, SOA)。SOA是一种设计原则,它提倡将复杂的系统分解为独立且可重用...
面向服务的体系架构(SOA)是一种设计和构建软件系统的方法,强调将应用程序的不同功能单元称为服务,并通过标准化的接口和契约将...随着技术的发展,SOA 在云计算、大数据和物联网等现代场景中依然发挥着重要作用。
总的来说,ESB在SOA中扮演着连接器和协调者的角色,使得企业能够构建灵活、可扩展的IT架构,支持业务的快速变化和创新。通过理解ESB的核心功能和工作方式,企业能够更好地规划和实施其SOA战略,提高系统的互操作性和...
**作用:** 定义SOA层次结构中的元素,并在每个层次做出关键的架构设计决策。 **途径:** 结合自顶向下和自底向上的设计思路。 **阶段及其覆盖范围:** - **建立业务模型** - **识别对象和服务** - **设计服务和编排...
4. **服务发现**:服务发现机制允许服务消费者在SOA环境中查找和定位所需的服务,这通常依赖于服务注册表或目录,其中包含服务的元数据信息。 5. **服务描述**:服务通过标准化的接口(元数据)进行描述,包括服务...
为了进一步完善SOA体系结构,引入了**企业服务总线(Enterprise Service Bus, ESB)**的概念。ESB作为SOA的核心组件之一,通过总线集成各种服务,解决了SOA中的一些不足之处: - **消息传递**:ESB提供了一种可靠的...
这种中立性使得构建在不同系统中的服务能够以统一且通用的方式进行交互。SOA主要包括三个角色:服务提供者、服务注册中心和服务请求者。服务提供者负责发布服务,服务请求者通过查询服务注册中心定位所需的服务,并...
4. **ESB(Enterprise Service Bus)**:企业服务总线,作为SOA中的核心组件,负责服务的集成、路由和中介功能。 5. **消息中间件**:如MQ(Message Queuing)系统,用于异步服务通信,提高系统的可扩展性和容错性...
应用支撑层包括J2EE、ESB等给予SOA的基础中间件,数据交换、统一认证、门户、系统管理、资源管理等组件,综合信息与系统集成平台、数据资源管理平台、统一身份认证平台、数据交换共享平台、数据存储分析展现平台、...
在智能交通大数据综合服务平台中,物联网技术发挥着核心作用。物联网技术通过使用诸如射频识别(RFID)、红外感应器、全球定位系统(GPS)、激光扫描器等多种信息传感设备,将各种物品与互联网连接起来,形成一种...
5. 附录和索引:书中还包含了附录和详细的索引,为读者提供快速查询和定位信息的功能。 书中提到的Oracle Service Bus 11g开发中可能涉及的标签包括但不限于Oracle、OSB(Oracle Service Bus)、SOA(Service-...
在Web服务中,SOA的实现往往依赖于一系列标准化协议和技术,包括但不限于简单对象访问协议(SOAP)、Web服务描述语言(WSDL)、统一描述、发现和集成(UDDI)、以及可扩展标记语言(XML)。SOAP是一种基于XML的协议...
SOA通过Web Service实现了服务访问和位置透明的通信,利用元数据、目录服务和XML技术,确保了数据和服务的定位透明和无关性。J2EE体系作为应用实现的标准规范,为系统提供了稳定的运行环境。 平台的核心功能包括: ...