ESB概述

企业服务总线

企业服务总线,即ESB全称为(Enterprise Service Bus),指的是传统中间技术与XML,Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要的元素。

定义:面向服务的体系结构已经逐渐成为IT集成的主流的技术。面向服务的体系结构(Service-oriented architure,SOA)是一种软件系统设计方法,通过已经发布的和可发现的接口为终端用户应用程序或其他服务提供服务。

面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者更迅速、更可靠、更具重用性地架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。

SOA 把 IT 架构分为组件层、Web 服务层、业务流程层等。

组件层:包括各种应用组件,它们通常是技术相关的具体实现,各种具体的 分布式组件技术(CORBA、COM/DCOM、J2EE) 都可以用于实现组件层的应用组件。通常复杂的 IT 环境中的组件层都同时使用了多种分布式组件技术,而不同实现技术之间的互联性障碍给应用集成带来了极大的困难,进而形成了一个个信息孤岛。SOA 引入了Web 服务层来解决此种情况下的应用集成问题。

Web 服务:是独立于各种分布式组件技术的,它使用标准的基于 XML 的服务描述语言(Web Service Description Language,WSDL)来定义和封装离散的业务功能各种支持 Web 服务的分布式组件技术能够将其上的业务组件发布成 Web 服务并产生相应的 WSDL 文档,并且只需要依据 WSDL 描述的信息就能够调用 Web 服务,即 WSDL 所描述的业务功能。 Web 服务在系统集成方面得到了广泛的应用。在 SOA 中,需要进入系统集成环节的业务组件都被映射为 Web 服务,形成了 Web 服务层。业务流程层则处于 Web 服务层之上,通过对 Web 服务的流程编排来实现商业流程。业务流程层通过 Web 服务层能够调用到基于各种分布式组件技术实现的业务组件,实现了复杂 IT 系统环境的应用集成。

组件层使用具体的分布式组件技术实现业务功能,Web 服务层则为组件层提供了一种技术无关的通用访问方式,屏蔽组件层具体技术之间的差异,突出业务逻辑的封装性。组件层中的业务组件和 Web 服务层的 Web 服务构成了企业 IT架构的主要可重用部件,它们应该保持相对的稳定,业务流程层则通过对服务进行编排,来适应业务需求的变化。将组件层的业务组件映射为 Web 服务层的服务是成功实现 SOA 的关键步骤,目前对于特定的业务组件,业界广泛使用具体于分布式组件技术内建的支持 Web 服务的功能来实现组件与服务的映射。这种映射方法高度依赖于具体分布式组件技术本身,并且在使用和定制的过程中缺乏灵活性,当某个 Web 服务的实现需要多个分布式组件技术中的业务组件实现时,这种映射方法就会无法支持。

总线

企业服务总线(Enterprise Service Bus,ESB)是构建基于面向服务体系结构(SOA)解决方案时所使用基础架构的关键部分,是由中间件技术实现并支持 SOA 的一组基础架构功能。ESB 支持异构环境中的 服务、消息,以及基于事件的交互,并且具有适当的服务级别和可管理性。简而言之,ESB 提供了连接企业内部及跨企业间新的和现有软件应用程序的功能,以一组丰富的功能启用管理和监控应用程序之间的交互

在 SOA 分层模型中,ESB 用于组件层以及服务层之间,它能够通过多种通信协议连接并集成不同平台上的组件将其映射成服务层的服务。

作为 SOA 基础架构的关键部分,ESB 的功能主要体现在通信、服务交互、应用集成、服务质量、安全性以及管理和监控等方面

在通信方面,ESB 能够支持消息路由/寻址,支持多种通信技术、通信协议(如 JMS、HTTP),支持发布/订阅的通信模式,能够处理请求/响应、同步以及异步的消息传递方式,并且要求以可靠的方式传递消息。

服务交互方面,ESB 上所发布的服务是以当前标准的Web 服务描述语言(WebServicesDescriptionLanguage)来定义 Web 服务的,并且 ESB 上通常配备有服务目录和发现机制。ESB 的重要功能就是集成不同的系统,必须能够支持多种接入 ESB 的方式(例如将 ESB、WebService、CORBA 以及使用 Socket 等方式访问的遗留系统接入到 ESB 系统),将接入的系统映射
成 Web 服务。在集成不同系统的同时,必须考虑服务质量方面的问题,如事务性和消息传递的可靠性。对于关键的 Web 服务,ESB 需要以加密的方式进行消息传递,并且必须验证访问者的权限。ESB 软件作为 SOA 基础架构的一个复杂子系统,还必须配有相应的管理和监控功能,用于 ESB软件自身的系统管理、日志记录、测量和监控等。目前国内外对企业服务总线的研究都比较积极,IBM 的 ISV、BEA 的 AquaLogicServiceBus、开源的 Mule、Sun 领导的 JBI 规范草案等,都是企业服务总线的具体实现。但是这些公司的 ESB 实现都更关注于对自有品牌产品的支持,对如何集成更多
分布式组件技术考虑得不够

连接框架

在这里插入图片描述
综述 企业连接框架是企业服务总线的一种具体实现。该框架的首要目标是使用标准的开放的协议以及经过验证的企业应用集成模式,将不同的应用程序系统集成起来。ESB 连接框架定义了一系列构建,用于处理在集成不同系统时所涉及的通信、路由、服务交互等方面的任务。企业连接框架体系展示了使用该框架集成 2 个端对端的应用程序的连接方式。

企业连接框架包含以下几个部分:适配器,前置路由器,后置路由器,应用组件等。

适配器 :适配器等价于 EIP 中的 ChannelAdapter(通道衔接器),用于连接应用组建与外部应用程序。 适配器包括连接器、消息接收器/消息发送器、消息转换器 3 个部分。

消息接收器/消息发送器用于接收和发送消息,消息转换器用于消息与组件所识别数据类型之间的数据转换,连接器则用于维护外部应用程序与应用组件之间通信的会话。连接器是适配器的核心,用于管理消息接收器/消息发送器以及消息转换器。

对于消息接收器和消息发送器,连接器可以在其上定义接收端点和发送端点,用于指定该消息从哪儿接收或者发送到何处,如 JMS 的队列名称、HTTP 的 URL 地址、pop3/smtp 协议的邮件地址。同时,连接器使用消息转换器将接收来的消息或者即将发送的数据进行转换。

企业连接框架对不同的通信协议提供相应的适配器,如 HTTP 适配器、JMS 适配器、邮件服务适配器、TCP/IPsocket 适配器,CORBA 适配器、EJB 适配器、COM/DCOM 适配器、HTTP/SOAP(Web 服务)适配器等。种类丰富的适配器确保企业连接框架能够集成基于不同分布式组件技术的业务组件。

路由器 路由器分为前置路由器以及后置路由器 2 种,分别用于应用组件处理消息前的接收路由和应用组件处理消息后的发送路由。通过前置路由器,应用组件可以接收来自不同适配器或者同一适配器不同接收端点的消息;通过后置路由器,应用组件可以将其处理结果发送到不同适配器或者同一适配器的不同端点上。路由器可以实现动态的、声明性的、基于内容的以及基于规则的消息路由。通过消息路由,可以顺序、选择或者串联地调用应用组件,实现 Enterprise Integration Pattern 中的消息路由模式。 应用组件 应用组件是基于某种具体分布式技术实现的业务逻辑模块。通过路由器和适配器的连接,应用组件可以与其它应用组件或者外部应用程序交互。 外部应用程序 外部应用程序可以是任何类型的应用程序,如 Web 应用程序、办公自动化系统、应用程序服务器、业务流程执行引擎等

服务映射

综述 使用企业连接框架能够轻易地实现应用系统的集成,并可以将已有应用系统的功能作为应用组件,通过消息适配器和消息路由将应用组件自由组合形成 Web 服务,从而实现组件与 Web 服务的映射。使用企业连接框架进行组件与服务的映射可以加快开发速度,更好地重用已有系统的功能,同时能够获得更好的灵活性,降低系统维护的复杂度。根据业务需要,应用组件可以通过如下方式映射成 Web 服务:简单映射,路由映射,复杂映射和镜像映射等。

在这里插入图片描述
简单映射 图 1 将一个组件映射成对应的 Web 服务:这是实现组件与 Web 服务之间映射的最简单的一种方式。业务组件的接口正好与 Web 服务的接口相一致,直接为此组件配置 HTTP/SOAP(Web服务)适配器,将其映射为 Web 服务(如图 1 所示) 路由映射 图 2 通过路由机制,将多个组件通过
路由组合成一个 Web 服务。

在这里插入图片描述
对于某些 Web 服务,其业务功能的实现可能需要多个应用组件协作完成,

如图 2 所示。适配器使服务总线具备连接不同技术标准组件的能力,路由器则增强了这种连接的灵活性。通过路由器,各种应用组件可以灵活地组合起来,协同完成某项业务功能。

路由器有前置路由器及后置路由器 2 类。前置路由器有: 幂等路由器,对于带有 uniqueID 的消息,幂等路由器确保组件不会接收到 ID 重复的消息。 条件路由器,一个条件路由器可以同时作为多个组件的前置路由器,它为每个组件配置各自的过滤器,符合过滤器所设置条件的消息将被转发到相应的组件上。条件路由器的作用类似于编程语言中的 switch 语句。聚合路由器,将接收到的 2 条或者更多条消息合并成一条消息进行处理。 排序路由器,缓存一组接收到的消息,并将它们重新排序,然后再转发给目标组件。 转发路由器,不对消息进行任何处理,直接将接收到的消息转发给后置路由器。 后置路由器有: 过滤路由器,为一个组件配置多个过滤路由器,各路由器根据自己的过滤规则,判断消息内容是否通过本路由器转发。多播路由器,将组件发出的消息转发到多个不同的目标藏地址。 链路由器,将消息通过链表传递,传递过程中,前一个组件的输出消息作为后一个组件的输入消息。 消息分割路由器,将组件发出的消息切分成小块,转发到不同的目标地址。 多选一路由器,从多个目标地址中,选择一个运行正常的目标地址,并将消息转发。

● 功能

  • 总线基础服务框架:提供系统一致性、安全性、可靠性,以及性能和扩展能力保障的基础
    技术手段。
  • 集成服务:提供基础的集成服务与用户定制的应用服务;支持多种集成服务模式;支持服
    务的封装、重用、服务组合、服务调度。
  • 公用服务:提供内置的各种公用服务。例如,渠道认证服务,日志服务等公用服务。
  • 服务管理和服务标准:提供服务配置管理的前台工具集合,并提供行业的服务规约标准。
  • 系统监控:提供多角度的系统实时监控与交易报表,提供用户定制的告警。
  • 安全体系:提供多种安全机制并支持和第三方安全系统的有效集成,提供有效的安全监控
    机制
    ● 优势
  1. 可用性和可靠性 支持群集物理部署来保证系统的高可用性,支持系统的长期稳定运行。
  2. 性能和可伸缩性 支持在达到系统性能指标峰值要求的同时,系统处理能力还能够留有足够
    的余量。
  3. 扩展性和灵活性 支持系统扩展部署和多个逻辑单元的分离部署。提供对系统的维护与参数
    配置的管理功能。
  4. 安全性 提供安全认证和授权机制,提供不可否认和机密性,支持安全标准.
  • 3
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

眼里只有码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值