精华内容
下载资源
问答
  • 企业服务总线功能
    千次阅读
    2021-08-27 14:41:23

    企业级的IT系统往往是非常复杂的。但某件事情是否复杂并不一定是一个独立的推动力,重要的是系统是否以应有的方式运行。企业服务总线(ESB)看起来非常复杂,但事实上,它可以非常有效地执行几个关键功能,协助开发人员进行应用集成。

    什么是ESB(企业服务总线)?

    ESB是一种IT架构方法。ESB旨在通过”总线式”基础设施将各种应用集成在一起。ESB通常位于框架和套件之间,作为执行应用集成的另一种方式。ESB是一个中间件工具,它在构成应用程序的不同连接组件之间分配任务。

    它为完成一些任务奠定了基本的基础架构,例如:

    实现路由选择
    翻译
    提供一个移动任务的总体方法
    提供应用程序连接到”总线”的能力。
    订阅基于结构和业务政策规则发送的消息。
    其他集成能力

    ESB如何工作

    ESB的建立是为了简化从服务和应用程序到大型机等不同格式想要相互集成时可能出现的混乱。然而,问题是ESB究竟是如何工作的?

    1.企业服务总线是一组交换机,在应用程序和/或组件之间的特定路线上直接发送消息。

    2.每个企业都有特定的业务策略,决定ESB将采取哪条路径来处理这些消息。

    无论是客户端还是业务流程,任何连接到ESB的系统都不会直接相互通信,因为它们通过ESB本身进行通信。本质上,ESB向潜在的客户机暴露了相同的服务接口,而连接的服务则向ESB暴露。

    ESB的一个主要好处是围绕着ESB是一个单一的访问点。通过ESB连接客户和服务,公司只需要在一个单一的位置,即ESB中寻找服务。即使一个业务流程更换了服务器,只需要重新配置ESB,公司仍然可以通过ESB访问服务。

    ESB还可以作为事务管理器工作,这意味着它可以协调多个服务参与的分布式事务。当许多不同的业务流程和服务需要在一个事务中一起工作时,通常需要一个配置来协调事务。然而,通过ESB,这就不再需要了,公司可以访问ESB来顺利地处理交易。

    ESB还可以作为一个安全管理器,集中处理认证和授权等流程。无论应用程序中的一个业务流程是否具有认证或授权,ESB都可以调整它的设置,在它暴露给使用它的客户端的服务界面中要求这样做。

    ESB 的另一种工作方式是作为服务代理,为没有暴露在标准化服务接口上的应用程序充当网关。举个例子,如果一个应用程序暴露了一个Java RMI服务,但网络的其他部分运行在.NET上,因此它不能直接调用RMI服务。通过利用ESB,公司可以很容易地在Java中实现一个可以调用RMI服务的服务代理。然后,服务代理通过ESB向.NET应用暴露出Web服务接口,如SOAP和WSDL。

    ESB有哪些实际用途?

    我们已经讨论了ESB的工作原理,现在我们来深入探讨企业如何利用ESB在公司内部执行不同的任务。如果使用得当,ESB可以成为一个有价值的工具。

    有一些核心功能是在ESB的外壳下的。这些功能结合起来构成了ESB架构。这些功能包括:

    解耦
    ESB的一个非常有价值的功能是围绕着客户与服务提供商的解耦。
    传输协议转换
    使用ESB还可以接受一个输入协议,并与不同的服务提供商进行通信,即使服务提供商使用的是单独的协议。
    消息增强
    通过ESB,用户可以在隔离客户端的同时,对消息进行一些一般性的修改。
    消息转换

    此外,通过ESB,用户可以将任何潜在的传入消息转化为传出格式和结构。

    除了企业服务总线的这些关键成分外,附加功能还包括增加安全性以保护任何未经授权的访问,路由能力以将请求重定向到不同的服务提供商,以及事务管理。企业可以利用ESB的其他一些方法包括:

    目的地服务和资源的运行时解决方法。
    位置透明度
    任何对任何的连接,以及最大的连接密度。
    专为冗余、水平扩展性、故障转移而设计。
    政策、访问控制、规则外部化
    逻辑消息网络层实现在物理消息网络层之上。
    通用名称空间

    专有还是开源?

    在企业服务总线的框架下,当公司需要决定他们想要什么样的ESB时,有几种不同的方法。这个决定有许多因素,从成本和可扩展性到软件供应商和许可证合作伙伴。公司必须问自己的一个主要问题是,他们是想选择专有的还是开源的ESB,实际上两者互有利弊。

    专有的

    专有的ESB对于那些需要更简单的可用性、产品稳定性和所有权的公司来说是非常有意义的。专有ESB的一些特点包括:

    功能性
    专有的ESB提供了广泛的集成功能以及大量的工具,如BAM、EDA和CEP。
    维护
    专有ESB的管理和监控工具提供了无与伦比的稳定性和功能水平。

    开放源码

    现在另一方面,开源ESB也提供了大量的好处和功能,企业可以将其转换成一些主要的优势。从安装的方便性到开源社区,开源ESB最大的优势是:

    成本
    开源ESB的成本比专有解决方案的成本要低很多。
    与厂商无关
    因为开源ESB是与厂商无关的,所以公司有更大的灵活性在不同的平台上工作。

    因此,虽然专有ESB和开源ESB各有优势,但也有一些缺点。专有ESB的成本可能很高,比ESB高得多,而且安装起来也比较困难。同时,开源ESB在混合和匹配的情况下,在不同的供应商之间进行整合可能会很棘手,而且还需要更多的员工技能和时间来测试、管理和维护产品。

    在ESB平台中应注意什么?

    如上所述,ESB有许多重要的功能,确保企业服务总线执行所有需要的流程是至关重要的。一个ESB必须具有以下的某种形式:

    路由–将请求引导到特定的服务提供商。
    消息转换–将传入的业务服务请求的结构和格式转换为服务提供商所期望的结构和格式。
    消息增强–根据服务提供者的要求在消息中添加或修改信息。
    协议转换–接受消费者的一种协议形式作为输入,并通过不同的协议将其传达给服务提供者。
    服务映射–将业务服务转化为相应的服务实现。
    消息处理–通过接受输入的请求并确保传递回客户端,进行状态管理和执行请求管理。
    流程编排–管理复杂的业务流程,需要协调多个业务服务来完成一个业务服务请求。
    服务编排–管理不同实施服务的协调。
    事务管理–通过提供一个框架来协调不同的不同服务的多个服务,为业务服务请求提供一个单一的工作单元。
    安全性–保护企业免受未经授权的访问。

    要想让ESB高效运行,具备所有这些功能是不可或缺的。当公司决定采用企业服务总线时,必须采取适当的措施,以确保它具有所需的所有功能。

    无缝连接企业服务总线架构

    业务流程和应用集成会是相当复杂的,这就是为什么您需要一个能让生态系统和应用集成变得简单的解决方案。通过内部资源规划、ESB、传统EDI和云解决方案,消除应用到应用或系统到应用集成的复杂性,同时还可以通过知行软件的应用集成技术连接外部业务系统。

    此外,知行之桥允许您通过深入的协议灵活性来扩展您的ESB的功能,在企业应用和ESB之间提供更可靠和强大的数据移动能力。

    知行之桥通过利用大量的适配器、API和向导,简化了新连接器的上岗和集成,从而在内部和合作伙伴系统之间无缝地建立和管理端到端集成。通过这种方式,知行之桥帮助您的企业屏蔽了集成到ESB时的一些固有复杂性,增加了一种无缝的方式来进行应用集成,并帮助您的企业清除复杂的集成障碍。

    结束语

    ESB可能看起来很复杂,也很难驾驭,但它确实是企业内非常有用的工具。很难用几句话就对ESB的作用下一个真正简明的定义,因为它是一个提供多种好处的广泛工具。然而,ESB仍然很常见,尽管存在某些缺点,但它已被证明在促进服务位置的透明度、在企业内共享服务和流程以及将业务服务与服务实施分离方面非常有用。最终,选择ESB的公司必须确保ESB符合所有必要的目标,否则有可能失去ESB所承诺的灵活性。

    注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

    更多相关内容
  • 运行端到端测试结束语下载参考资料第1部分介绍了IBM:registered:WebSphere:registered:EnterpriseServiceBus(ESB)提供的用于构建ESB的关键功能,其中使用了一个贯穿本系列的示例业务上下文,还阐述了...
  • 本文内容包括:引言调用服务其他集成功能开发企业服务总线结束语参考资料本文不仅仅是为架构师准备的:使用企业服务总线(EnterpriseServiceBus),作为支持面向服务的体系结构(SOA)的基础架构,也将使开发人员能够...
  • 关于SOA的概念,你可以找到...从概念的角度,IBM对SOA的定义是最为全面的,既SOA是一种构造分布式系统的方法,它将业务应用功能服务的形式提供给最终用户应用或其他服务。一个体系架构,用开放的标准将软件资产(Asse
  • 几种ESB(企业服务总线)介绍

    万次阅读 2018-07-16 19:24:45
    ESB(Enterprise Service Bus,即企业服务总线)是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。 企业服务总线ESB就是一种可以提供可靠的、有...

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

    企业服务总线ESB就是一种可以提供可靠的、有保证的消息技术的最新方法。ESB中间件产品利用的是Web服务标准和与公认的可靠消息MOM协议接口(例如 IBM的WebSphere MQ、Tibco的Rendezvous和Sonic Software的SoniCMQ)。ESB产品的共有特性包括:连接异构的MOM、利用Web服务描述语言接口封装MOM协议,以及在MOM传输层上传送简单对象应用协议(SOAP)传输流的能力。大多数ESB产品支持在分布式应用之间通过中间层如集成代理实现直接对等沟通。

    企业服务总线(Enterprise Service Bus,ESB)的概念是从面向服务体系架构(Service -Oriented Architecture, SOA)发展而来的。SOA描述了一种IT基础设施的应用集成模型,其中的软构件集是以一种定义清晰的层次化结构相互耦合,其中,一个ESB是一个预先组装的SOA实现,它包含了实现SOA分层目标所必需的基础功能部件。

    一、ESB的出现改变了传统的软件架构

    ESB 是传统中间件技术与XML、Web服务等技术相互结合的产物,ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。

    二、企业服务总线(ESB)的用处

    ESB 不是万能的,他不是一个应用程序框架,也不是一个企业应用的解决方案.它只是一个基于消息的调用企业服务的通信模块!你可以把它嵌入到你的应用程序框架中,例如嵌入到spring容器里面,或者嵌入到工作流系统中.它的作用是对企业里面的SOA服务的调用提供一个框架和简便的方法.

    三、企业服务总线(ESB)的应用特征 

    大规模分布式的企业应用需要相对简单而实用的中间件技术来简化和统一越来越复杂、繁琐的企业级信息系统平台。面向服务体系架构(SOA)是能够将应用程序的不同功能单元通过服务之间定义良好的接口和契约联系起来。SOA使用户可以不受限制地重复使用软件、把各种资源互连起来,只要IT人员选用标准接口包装旧的应用程序、把新的应用程序构建成服务,那么其他应用系统就可以很方便的使用这些功能服务。 

    支撑SOA的关键是其消息传递架构-企业服务总线(ESB)ESB是传统中间件技术与XML、Web服务等技术相互结合的产物用于实现企业应用不同消息和信息的准确、高效和安全传递。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务协调运作,实现不同服务之间的通信与整合。ESB在不同领域具有非常广泛的用途: 

    电信领域:ESB能够在全方位支持电信行业OSS的应用整合概念。是理想的电信级应用软件承载平台。 

    电力领域:ESB能够在全方位支持电力行业EMS的数据整合概念,是理想的SCADA系统数据交换平台。 

    金融领域:ESB能够在全方位支持银企间业务处理平台的流程整合概念,是理想的B2B交易支撑平台。 

    电子政务:ESB能够在全方位支持电子政务应用软件业务基础平台、信息共享交换平台、决策分析支撑平台和政务门户的平台化实现。 

    四、几种ESB的结构和功能 

    ESB提供了一种开放的、基于标准的消息机制,通过简单的标准适配器和接口,来完成粗粒度应用(服务)和其他组件之间的互操作,能够满足大型异构企业环境的集成需求。它可以在不改变现有基础结构的情况下让几代技术实现互操作。

    通过使用ESB,可以在几乎不更改代码的情况下,以一种无缝的非侵入方式使企业已有的系统具有全新的服务接口,并能够在部署环境中支持任何标准。更重要的是,充当“缓冲器”的ESB(负责在诸多服务之间转换业务逻辑和数据格式)与服务逻辑相分离,从而使得不同的应用程序可以同时使用同一服务,用不着在应用程序或者数据发生变化时,改动服务代码。

    1. IBM WebSphere ESB

    IBM 提供了三种 ESB 产品:IBM WebSphere ESB、IBM WebSphere Message Broker、IBM WebSphere DataPower Integration Appliance XI50。根据您的需求选择 ESB 来增强您的 SOA。WebSphere ESB 是一种基于平台的 ESB,作为集成的 SOA 平台,针对 WebSphere 应用服务器进行了优化。WebSphere Message Broker 是跨平台的 ESB,是为异构 IT 环境中的统一连接和转换而构建的。WebSphere DataPower Integration Appliance XI50 是一种基于设备的 ESB,是为简化的部署和更强的安全性而构建的。客户面临着从简单到复杂的各式各样的 ESB 需求。WebSphere ESB的结构如图一所示。

    图一 WebSphere ESB

    2. Microsoft ESB

    微软通过其应用平台提供了全面的ESB服务,包括:Windows Server® 2003,.NET Framework, BizTalk® Server 2006 R2. 应用平台提供了一个基础架构,基于此可以灵活和安全地重复使用架构和商业服务,并具有协调原有的服务整合到新的端到端的业务流程中的能力。如图二所示。

    图二 Microsoft ESB

    微软通过一些列的产品Windows Server 2003, the .NET Framework 3.0, and BizTalk Server 2006作为对企业实现ESB的支撑,Microsoft ESB Guidance是基于BizTalk Server 2006一组应用,它提供以下公用的ESB组件:

    l       Message routing (消息路由) 

    l       Message validation (消息验证) 

    l       Message transformation (消息转换) 

    l       Centralized exception management(集中的异常管理) 

    l       Extensible adapter framework(可扩展的适配器框架) 

    l       Service orchestration(服务的编制支持) 

    l       Business rules engine(业务规则引擎) 

    l       Business activity monitoring(业务活动监视)

    微软 ESB 指南提供了架构指导,模式和实践,以及一套BizTalk Server 和 .NET Framework 组件来简化基于微软平台的大型或小规模的ESB解决方案的开发。它还可以帮助开发人员扩展现有的信息和集成解决方案,包括的一些服务和组件。 

    3. JBOSS SOA Platform

    JBoss Enterprise SOA Platform提供了一个基于标准的平台,用以集成应用、SOA服务、业务事件和自动化业务流程。这一SOA平台集成了特定版本的JBoss ESB、jBPM、Drools、和已得到验证的JBoss企业应用平台,把它们组织在一起形成一个单一的企业级发布。如图三所示。



     

    图三 JBOSS SOA Platform

    JBoss Enterprise SOA Platform打包了不少流行组件如:

    l     JBoss ESB 

    l     JBoss jBPM jPDL 

    l     JBoss Rules (Drools) 

    l     JBoss Application Server 

    l     Hibernate 

    l     Hibernate Entity Manager 

    l     Hibernate Annotations 

    l     JBoss Seam 

    l     JBoss Web (嵌入式Tomcat 6.0) 

    l     JBoss Cache 

    l     JGroups 

    l     JBoss Messaging 

    l     JBoss Transactions 

    l     JBoss Web Services (JBossWS) 

    l     JBossXB 

    l     JBoss AOP 

    l     JBoss Remoting 

    l     JBoss Serialization 

    l     JacORB 

    4. ServiceMix对ESB的实现

    ServiceMix是一个建立在JBI (JSR 208)语法规则和APIs上的开源ESB(Enterprise Service Bus:企业服务总线)项目。

    ServiceMix是基于JBI的ESB。它是开源的基于JBI语义和API的ESB和SOA工具包,以Apache许可证方式发布。 它是轻量的ESB实现,易于作为嵌入式ESB使用;集成了对Spring技术的支持;可以在客户端或服务器端运行;可以作为独立的ESB提供者,也可以作为另外ESB的服务组件; 可以在JavaSE或JavaEE服务器中使用;ServiceMix同Apache Geronimo以及JBoss服务器完全集成,并且在Apache Geronimo服务器中可以直接部署JBI组件和服务。

    Java Business Integration (JBI,Java业务集成)技术规范定义了SOA的服务导向集成的内核和组成架构。它对公共讯息路径架构、服务引擎与捆绑的插件程序接口,以及复合型服务描述机制等都进行了标准化,这样就将多种服务结合成为一个单一的可执行的和可审核的工作单元。 参见图四。



     

    图4 JBI和ServiceMix关系图

    JBI并不是一个为开发者设计的一个接口,更准确的说它是在JBI容器里为集成商提供相互集成的一个体系和一系列的接口。所以人们能集合他们所需要的所有部分,做出一个总体解决。例如在理论你能从BPEL引擎上,EJB容器上或者是数据传输产品上集合一个基础设施,并且能够集成的很合适。 

    ServiceMix 中包含完整的JBI容器,支持JBI规范的所有功能要求:

    l     规范化消息服务和路由 

    l     JBI管理Beans (MBeans)

    l     组件管理和安装的Ant任务

    l     对JBI部署单元的完全支持,支持JBI组件的热部署

     

     

    JBoss ESB


      JBossESB是JBoss推出的ESB的实现,也是JBoss的SOA产品的基础,JBossESB能够把抽象的SOA设计映射成具体实现。它作为企业应用程序、业务服务、业务组件与中间件交互的一个媒介,对实现整合及业务流程自动化起重要作用。

      Apache ServiceMix


      ServiceMix是JBI规范的一种实现。它包涵了许多JBI组件,这些组件支持多种协议,比如JMS,HTTP,FTP,FILE等。同时也实现了EIP,规则和调度。早在几年前,它就已经成为了Apache的顶级项目。ApacheServiceMix 也整合了其他的开源项目,比如Apache ActiveMQ,Apache CXF,Apahe Camel,Apache ODE以及Apache Geronimo。

    http://servicemix.apache.org/download.html

      OpenESB


      Open ESB是在Sun公司支持下的一个开源项目,其核心是基于JBI(Java Business Integration)规范的实现。Open ESB可运行在Glassfish应用服务中,同时Netbeans IDE也为Open ESB提供了拖拽式的开发工具,这是其他开源ESB不可匹敌的。

    在开源ESB家族中涌现出很多优秀的开源ESB,比如,Mule,Apache ServiceMix,Open[/url]ESB,Apache Synapse等。为了大家更好地了解它们,我作了简要地介绍。

    Mule

    它是一个轻量级的消息框架和整合平台,基于EIP(Enterprise Integeration Patterns,由Hohpe和Woolf编写的一本书)而实现的。

    Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑。

    UMO可以是POJO,JavaBean等等。

    它支持20多种传输协议(file,FTP,UDP,SMTP,POP,HTTP,SOAP,JMS等),并整合了许多流行的开源项目,比如Spring,ActiveMQ,CXF,
    Axis,Drools等。虽然Mule没有基于JBI来构建其架构,但是它为JBI容器提供了JBI适配器,应此可以很好地与JBI容器整合在一起。而 Mule更关注其灵活性,高效性以及易开发性。从2005年发表1.0版本以来,Mule吸引了越来越多的关注者,成为开源ESB中的一支独秀。目前许多公司都使用了Mule,比如Walmart,HP,Sony,Deutsche Bank 以及 CitiBank等公司。

    官方网站:[url]http://mule.codehaus.org/


    Apache ServiceMix

    它是JBI规范的一种实现。它包涵了许多JBI组件,这些组件支持多种协议,比如JMS,HTTP,FTP,FILE等。同时也实现了EIP,规则和调度。自从JBI被JCP接收后,2005年末Apache ServiceMix才被Apache作为其卵化项目,到2007年9月,它已经成为Apache的顶级项目。ApacheServiceMix 也整合了其他的开源项目,比如Apache ActiveMQ,Apache CXF,Apahe Camel,Apache ODE以及Apache Geronimo。

    说起Apache ServiceMix,就会使我想到LogicBlaze公司。它曾经是Apache ServiceMix和Apache ActiveMQ的商业支持者。2006年LogicBlaze被IONA成功收购后,IONA负责为Apache ServiceMix提供支持和服务。同时IONA也将Apache ServiceMix作为FUSE平台中的一员,FUSE旗下还包括Apache ActiveMQ,Apache CXF,Apahe Camel,FUSE HQ。

    官方网站:http://servicemix.apache.org/

    Fuse平台的官方网站:http://open.iona.com/products/fuse-esb/

    Open ESB

    前两个开源ESB都由开源社区提供支持,Mule由Codehaus社区提供支持,ServiceMix由Apache社区提供支持。Open ESB是由SUN发起,现在作为Java.net的子项目。所有Open ESB的开发人员都来自SUN。

    如同Apache ServiceMix一样,Open ESB也实现了JBI规范。Open ESB可运行在由SUN支持的Glassfish应用服务中。同时SUN的Netbeans IDE为Open ESB提供了拖拉式的开发工具,这是其他开源ESB不可匹敌的,尽管Mule也提供了基于Eclipse的插件工具,但目前仍然不够强大。

    官方网站:https://open-esb.dev.java.net/

    Apache Synapse

    虽然Apache Synapse具备一些ESB所必备的功能,但是从本质上而言Synapse更是一个web服务仲裁框架,它是构建在Apache Axis2之上的。Synapse的关注点是路由,转换,消息验证以及基于web服务和xml标准的注册。它支持HTTP, SOAP, SMTP, JMS,FTP ,MTOM/XOPPOP3/IMAP/SMTP 等传输协议,还支持多种web服务规范(WS-*),比如WS-Addressing,WS-Security,WS-Policy以及WS- Reliable Messaging。在它的最新版本1.2中加入了对FIX(Financial Information eXchange,金融信息交换协议 ) 和 Hessian 的支持。同时它还支持多种流行语言,比如Java, JavaScript, Ruby, Groovy等。

    官方网站:http://ws.apache.org/synapse

    JBoss ESB

    JBoss ESB是基于JBoss公司的ESB产品Rosetta的。Jboss ESB将JbossMQ作为其消息层,将JBoss rules为其提供路由功能, 将jBPM为其提供服务编排功能。足以见得JBoss的野心。

    官方网站:http://labs.jboss.com/jbossesb/

    其他的开源ESB

    WSO2是基于Apache Synapse产品的,通过它可以在web服务,REST/POX服务以及遗留系统间连接,管理和转换服务交互。它还提供了一个基于AJAX的ESB管理控制台对其配置文件进行统计分析,管理(添加,删除以及修改等),和指定执行相应的配置文件。这在开源ESB中是非常少见的。

    官方网站:http://wso2.com/products/esb/

    OpenAdaptor定位于EAI (Enterprise Application Integration,企业应用集成)软件。它支持各种传输协议,如JMS, JDBC, IBM MQ Series, TIBCO Rendezvous, TCP/IP Sockets, SOAP, HTTP 和 File等。其最新版本为openadaptor3,与先前版本相比,它完全重写了一边,保留了原有的功能,提升了其简单性。

    ESB有听到其他人说过,今天搜索出来了解一下概念!

    转载于:https://www.cnblogs.com/duanxz/p/4912827.html

    展开全文
  • 随着面向服务的体系结构(SOA)越来越受到人们的重视,以及Web服务规范系列的复杂性不断增加,对于如雷贯耳的企业服务总线(ESB)之类的术语难免会感到困惑。它是一个产品?还仅是一个营销术语?它是否代表了可以实际使用...
  • 作为基础架构的EAI系统,必须能够对系统范畴内的任何一种消息进行解析。传统的EAI系统中的消息处理大多是被动的,消息的处理需要各自中间件的私有方式支持,例如API的方式。...这也是ESB中总线(Bus)功能的体现。
  • 引言场景设计服务提供程序中介模块完成解决方案结束语下载参考资料在本系列文章的前两篇文章中,我们讨论了WebSphereESB的关键功能,并介绍了JMS之间的消息交换,现在,我们通过在混合体中添加Web服务场景,进一步...
  • 系统采用最新的SOA架构思想、B/S结构模式,依托企业服务总线实现各业务系统数据交换及共享。数据交换与管理模块采用Web Service接口方式实现业务数据的同步,为建设权威、一致的船舶及港航企业主数据库提供数据基础。...
  • 10分钟带你彻底搞懂企业服务总线

    千次阅读 2021-08-07 15:47:44
    文章目录什么是企业服务总线?路由器转换器端点 我相信你一定有生病去医院的经历,你一般通过什么渠道挂号呢?我们很多人会借助在线挂号 App 或小程序来预约挂号,但你有没有想过,全国有这么多家医院,每个医院内部...

    十分钟搞懂系列

    序号标题链接
    110分钟带你彻底搞懂企业服务总线https://blog.csdn.net/belongtocode/article/details/119487731
    210分钟带你彻底搞懂微内核架构https://blog.csdn.net/belongtocode/article/details/119107837
    310分钟带你彻底搞懂服务限流和服务降级https://blog.csdn.net/belongtocode/article/details/119107785
    410分钟带你彻底搞懂负载均衡https://blog.csdn.net/belongtocode/article/details/118977839
    510分钟带你彻底搞懂集群容错和服务隔离https://blog.csdn.net/belongtocode/article/details/118968771
    610分钟带你彻底搞懂注册中心https://blog.csdn.net/belongtocode/article/details/118639474
    710分钟带你彻底搞懂RPC架构https://blog.csdn.net/belongtocode/article/details/118639448

    我相信你一定有生病去医院的经历,你一般通过什么渠道挂号呢?我们很多人会借助在线挂号 App 或小程序来预约挂号,但你有没有想过,全国有这么多家医院,每个医院内部都可能有自己的信息化系统,在线挂号 App 是怎么帮你准确而高效地找到目标医院和医生的呢?

    我们看一下挂号预约的整个业务流程,你就明白了。这里的移动医疗系统就是 App 供应商所开发的系统,而医院信息系统则位于各个医院的内部。

    img

    那么,怎么实现这个场景呢?这里的核心需求在于,使用合适的系统集成机制来整合我们自己的移动医疗系统与医院信息系统。而这个整合过程一定具备高扩展性和灵活性,因为医院系统的差异化对系统集成的影响非常大。

    你可能会关心,这个过程会涉及到哪些技术难点?包含这么 4 点:

    • 怎么对数据进行有效的路由?因为用户要挂某个医生的号,而这个医生任职于某个医院,这就要求把用户请求正确的路由到这家医院的系统中;
    • 怎么完成异构系统之间的适配?因为每个医院系统的技术体系可能都有区别,所以需要处理异构系统的数据交互问题;
    • 怎么根据特定医院做定制化扩展和过滤?因为不同的医院对问诊排班流程,可能有不同的处理方式,针对特定医院的特定需求,就需要实现对数据的扩展和过滤;
    • 怎么实现系统集成组件与平台系统之间的解耦?从架构上讲,平台系统应该专注于处理平台级的业务流程,而系统集成组件只需要处理与医院系统对接方面的逻辑,两者应该各司其职,独立发展。

    基于这 4 个难点,显然,通过硬编码的方式实现与外部多个医院系统之间的信息传递和交互就不合适了,需要引入更为合适的技术体系来对整个流程进行建模并实现。

    企业服务总线就是用来处理这类场景的最佳技术方案。

    什么是企业服务总线?

    什么是企业服务总线?就是我们常说的 ESB(Enterprise Service Bus)。我们可以把服务总线当成用来连接分布式异构后端和前端系统的一种中间层软件服务,能够隐藏复杂性,简化数据处理过程。这种中间层软件服务通常被认为是一种系统集成组件,而对系统集成需求的剖析引出了服务总线的整体解决方案。

    img

    从这张服务总线解决方案图来看,我们可以知道,所有的数据都被抽象成了一种消息。而消息则在路由器、转换器和端点之间进行流转,这三者也构成了企业服务总线的三大核心组件。我们可以把这三个组件的功能和案例中的需求对应起来,就能清晰的看到每个组件能够解决什么需求:

    img

    路由器

    我们先来看路由器,路由器需要考虑的核心问题有三个,即:

    • 一次路由单条 / 多条数据?
    • 路由结果面向一个 / 多个目标?
    • 路由是否有状态?

    我们对以上三个问题进行抽象,梳理出三个维度,即输入数据数、输出数据数以及有无状态。然后结合这三个维度的不同取值就能获取多种常见的路由器。

    img

    我们来看看表中这些路由器各自的特点。

    第一个要介绍的路由器是内容路由器(Content-based Router),它的路由效果就是输入一个消息就会路由出一个消息。在这种路由器中,决定路由结果的依据是消息的内容,这里消息内容的概念可以很广,可以是位于消息头中的属性、消息体自身的类型信息,也可以是各种根据业务需要在消息体中进行传输的数据结构。

    第二个要介绍的路由器是接收表(Recipient List Router),它的路由效果是输入一个消息则可能输出 0 个或多个消息。我们可以通过设置一定的路由规则,确保消息能够路由到不同的目标对象中。显然,结合前面的案例以及系统扩展性需求,接收表可以满足我们路由到不同医院的需求。

    img

    内容路由器和接收表都是属于无状态的路由器,相对比较简单。接下来,我们来看看那些有状态的路由器。有状态是什么意思?就是路由效果依赖于与当前消息相关的多个消息,所以需要对历史消息的处理状态进行维护和管理。分解器(Splitter)和聚合器(Aggregator)就是一对常见的有状态的路由器。如果一个业务场景需要包含对多个消息进行分别处理的需求,就可以使用分解器把原始消息拆分成多个独立的消息进行发送,然后通过聚合器的特定聚合策略实现分解后消息的关联。

    这张图就是常见的一种聚合策略,也就是说根据消息头中所包含的“Task001”这个消息编号实现聚合。

    img

    转换器

    讲完路由器,我们再来看转换器(Transformer)。转换器的应用场景非常明确,就是用来完成异构系统之间数据结构之间的映射。例如在案例中,我们知道各个医院系统采用的可能是完全不同的技术实现体系,对外暴露的也是五花八门的接口定义,这时候就可以使用转换器来消除这些医院系统在数据格式上的差异性。

    和路由器一样,转换器在实现上也有多种表现形式。其中,内容扩充器(Enricher)用来完成对消息内容的扩充,也就是为它的消息头或者消息体添加新的数据内容。与内容扩充器相对应的就是内容过滤器(Filter),它用来去掉消息头或消息体中我们所不需要的部分内容。

    对应到挂号这个案例中,使用内容过滤器就可以根据用户挂号请求的目标医院信息来过滤那些不需要访问的医院系统,这是一种应用方式。再比如说,如果某家医院需要传入特定的安全标识符才能访问院内系统,那么通过扩充器也很容易在消息头中填充这种安全标识符,而不需要修改消息体本身,效果如下所示:

    img

    端点

    关于企业服务总线的第三个核心组件是端点(Endpoint),最常用的端点技术就是网关(Gateway)。当应用程序与系统集成组件进行交互时,从系统设计的角度讲我们希望应用程序中的业务代码和用于系统集成的非业务代码耦合度尽量低,也就是说应用程序应该封装对系统集成组件的访问接口,网关就是用来实现这方面需求的。

    需要注意的是,网关中应该只包含业务领域层面的接口定义,不应该出现任何与系统集成技术相关的内容,如下图所示。

    img

    企业服务总线解决方案
    现在你了解了企业服务总线的三个核心组件的作用,让我们对应到挂号案例,梳理一下移动医疗系统的实现效果图:

    img

    可以看到,我们综合应用了服务总线中的多个核心组件完成了对整个系统集成方案,包括:

    • 网关:用于降低系统实现系统集成组件与业务代码上的耦合度
    • 内容扩充器:用于完成安全认证等特定医院所需的定制化需求
    • 数据结构转换器:用于完成针对医院异构系统的数据转换
    • 接收表:用于根据消息头中携带的目标医院信息自动路由到对应的医院信息系统

    总的来说,服务总线本质上是一种架构设计方案,想要实现这一方案,我们可以借助于 Mule ESB、Apache Camel 和 Spring Integration 等主流的系统集成开发框架。

    参考文章:
    整理于极客时间每日一课对应文章

    展开全文
  • ESB(企业服务总线

    千次阅读 2022-04-21 17:24:05
    ESB全称为Enterprise Service Bus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。 大规模分布式的企业应用需要相对...

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

     

         大规模分布式的企业应用需要相对简单而实用的中间件技术来简化和统一越来越复杂、繁琐的企业级信息系统平台。面向服务体系架构(SOA)是能够将应用程序的不同功能单元通过服务之间定义良好的接口和契约联系起来。SOA使用户可以不受限制地重复使用软件、把各种资源互连起来,只要IT人员选用标准接口包装旧的应用程序、把新的应用程序构建成服务,那么其他应用系统就可以很方便的使用这些功能服务。

    展开全文
  • 企业服务总线ESB是什么

    万次阅读 多人点赞 2018-01-17 18:25:14
    在探讨信息系统的SOA架构概念时,一个非常重要的概念是:企业服务总线(ESB)。可以说,企业服务总线也是SOA的核心构成部分。... 三、银行服务总线的标准功能  四、企业服务总线的架构  一、ESB企
  • 分析Oracle Service Bus(Oracle服务总线)提供的ESB(Enterprise Service Bus,企业服务总线)和运行服务管理功能,这些功能拥有企业级的可靠性和扩展性,可用来集成和管理企业内部和企业之间的服务交互。
  • ESB企业服务总线

    2020-03-25 14:24:15
    所有的企业服务都挂接到该总线上对外公布,企业服务总线负责管理服务目录,解析服务请求者的请求、消息格式,并对服务提供者进行寻址,转发服务请求。它就是服务的请求者和服务的提供者之间的一个中间件,就是对服务...
  • 企业服务总线(EnterpriseServiceBus,ESB)是构建基于面向服务体系结构(SOA)解决方案时所使用基础架构的关键部分,是由中间件技术实现并支持SOA的一组基础架构功能。ESB支持异构环境中的服务、消息,以及基于事件的...
  • 企业事件总线 (EEB) 使用 Fuse Service Works 的企业事件总线(事件驱动的 SOA、发布者-订阅者或简称 EEB)。 默认情况下,SOAP over http 绑定是可用的,但是暴露其他绑定(REST、JMS、AMQP 等)只需在 Fuse ...
  • CSB 开放平台基于 API 服务总线、API 组织管理和 API 运维监控提供了诸多功能
  • NServiceBus 是一个.Net平台下开源的消息服务框架,这类产品有时也被称作ESB(Enterprise Service Bus)——企业服务总线。NServiceBus也是dotnet世界里面最流行的开源企业服务总线。 NServiceBus 是一个用于构建企业...
  • 面向服务的体系架构 SOA Service Oriented Architecture (SOA)是一个粗...企业服务总线 ESB Enterprise Service Bus (ESB)是由中间件技术实现的全面支持面向服务的基础软件平台,是传统中间件技术与XML、Web服务
  • ESB(企业服务总线)知识

    千次阅读 2019-12-18 20:59:38
    ESB是Enterprise Service Bus的简称,中文翻译为企业服务总线企业服务总线是一个实现系统间集成和互联互通的重要技术架构,可以理解为是一种消息和服务集成的中间件平台。 这个技术是为了解决什么问题呢? 系统...
  • SOA倡导将软件组件提供的功能尽量封装成能被其它软件组件调用的服务。组件(或服务)就是可重用的软件构建块。 SOA允许集成现存的系统,应用和用户,形成一个能够随着需求变化容易调整的灵活的架构。总之,集成的...
  • 本文介绍了创建良好的微服务体系结构所面临的挑战,要求和最佳实践 ,以及企业服务总线(ESB)在此游戏中扮演的角色。 品牌和营销:EAI,SOA,ESB,微服务 让我们从有关面向服务的体系结构(...
  • 企业架构-数据服务总线思路

    千次阅读 2020-04-20 15:14:51
    数据服务总线是快速数据集市构建工具,提供企业内部以及跨企业间不同业务主题之间数据共享和同步服务,设计的目的是对最终业务数据进行预处理,以减少业务复杂度提高访问效率。 背景描述 在常规的业务系统中数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,228
精华内容 14,891
热门标签
关键字:

企业服务总线功能