精华内容
下载资源
问答
  • 企业服务总线ESB是什么

    万次阅读 2018-01-17 18:25:14
    在探讨信息系统的SOA架构概念时,一个非常重要的概念企业服务总线(ESB)。可以说,企业服务总线SOA的核心构成部分。要真正实现应用架构完善的SOA结构,简化SOA构件间的关系,就一定要建设好信息系统的企业级...

     在探讨信息系统的SOA架构概念时,一个非常重要的概念是:企业服务总线(ESB)。可以说,企业服务总线也是SOA的核心构成部分。要真正实现应用架构完善的SOA结构,简化SOA构件间的关系,就一定要建设好信息系统的企业级服务总线。

      一、ESB企业服务总线的概念

      二、建立银行的企业服务总线

      三、银行服务总线的标准功能

      四、企业服务总线的架构

      一、ESB企业服务总线的概念

      (一)总线的概念

      在世界的各种类事物里,总需要相互联系和沟通。这些事物包括人与人之间,组织与组织之间,物理设备之间,应用程序与应用程序之间。

      在没有总线的概念前,这些联系与沟通是自然发展建立起来的,一开始通常都呈现为点对点模式:

      点对点的连接方式在连接对象比较少的时候,确实是一种简单和高效的连接方式。但其最大的问题是,当连接对象多的时候,连接路径会以指数方式剧增。连接路径数与连接对象数之间的关系是:

      具体数字看下表:

      可见,点对点的连接方式有以下明显的缺陷:

      如果连接对象比较多,连接路径会非常多。连接拓扑图是一个复杂的多对多的网状结构。

      如果连接对象各自的连接方式有差异,如:对于程序的连接,如果沟通的语言、文字、格式、方法等有差异,则每一个连接方都要同时支持和维护多种连接方式。

      当某一个连接对象的连接方式发生变化,会引起其他所有与之连接的连接方有所变化。

      基于以上几点,在多点互连的情况下,点对点连接方式成本高,可用性和可维护性低。显然不是一个好的连接方式。

      随着技术的发展,另外一种连接方式开始逐步取代点对点的连接方式。这就是总线连接方式:

      与点对点连接方式最大的区别是,总线连接方式把多对多的连接方式变成一对一的方式。所有连接方均与总线连接,然后通过总线再连接到需要连接的对方。这样,无论连接对象有多少,其连接路径数与连接方的数量永远一样。整个连接拓扑图是一个简单的星形结构。

      不同连接对象如果连接方式有差异,可以通过总线完全屏蔽掉,做到对连接对象透明,无需各个连接对象关心。

      总线的连接方式最早在许多硬件设计上得到广泛的使用。如处理芯片数据总线,网络节点的交换机,大型计算机系统处理器与外围存储设备连接的集线器等。通过总线结构,把原来复杂的网状结构变成简单的星形结构,极大提高了硬件的可靠性和可用性。

      (二)服务总线

      随着计算机信息系统的发展,信息系统也越来越庞大、越来越复杂。总线的概念也引入到信息系统的架构建设上。跟随SOA的概念,信息系统的总线通常叫服务总线。其战略层的总线称之为企业服务总线(ESB)。

      关于企业服务总线的概念,业界有许多定义,但一些基本定义是一致的,归纳如下:

      企业服务总线是一个具有标准接口、实现了互连、通信、服务路由,支持实现SOA(Service Oriented Architecture,面向服务架构)的企业级信息系统基础平台。它提供消息驱动、事件驱动和文本导向的处理模式,支持基于内容的服务路由。SOA架构将各应用服务器(包括异构的服务器)上的各种服务连接到服务总线上,支持分布式的存储及分布式的处理、异步处理。为信息系统的真正松耦合提供了架构保障。简化了企业整个信息系统的复杂性,提高了信息系统架构的灵活性,降低企业内部信息共享的成本。

      (三)企业服务总线的功能

      通常认为,企业级服务总线需要具备如下功能:

      1、 服务统一管理

      为整个系统提供一个统一的、标准的、可靠的、可扩展的服务管理平台。

      2、集成服务

      提供基础的服务与定制的服务;支持集成服务模式;支持服务的分解,服务调度和路由,服务封装,服务组合。

      3、公用服务

      提供内置的各种公用服务。例如,认证服务,日志服务等。

      一些厂家提供的企业服务总线产品,还会包括如下一些功能:

      4、服务协议转换

      通过把不同的通信协议转换成标准的报文,屏蔽异构系统的底层技术差异。

      5、服务监控

      提供服务等级管理及流量管理。提供多角度的服务实时监控、报警与交易分析报表。

      6、安全体系

      提供多种安全机制并支持和第三方安全系统的有效集成,提供有效的安全监控机制。

      (四)ESB产品

      企业服务总线是一个相对新的概念,其产品也是一些较新的产品。从目前的应用案例看,能称得上成熟、完善、通用、成功的案例不多。不同的企业服务总线产品,其功能会有所侧重,使用环境也会有所限定。据了解,目前有如下定位为企业服务总线的产品:

      1、IBM

      IBM的相关产品有:WESB、WMB、WDP。

      2、Oracle

      Oracle的相关产品有:OSB、ESB。

      3、Microsoft

      微软的ESB功能是通过一组产品实现。包括BizTalk、.Net等。

      4、开源

      还有一些开源产品,如:Jboss ESB、Mule ESB、ServiceMix/FUSE ESB、Synapse/WSO2 ESB等。

      Jboss ESB架构图

      二、建立银行的企业服务总线

      企业服务总线无论在概念上还是在产品上,到目前为止,还处在成熟阶段。还没有普遍成功的案例。但金融信息系统的发展,切实需要我们实践这个概念。我们可以外购某个相对成熟的产品,通过大量的客户化形成自己的企业服务总线。另外,从发展新一代信息系统的角度,我们可以探讨如何建设自己的企业服务总线。

      假设,我们的事务处理应用系统有两大部分:渠道系统和业务处理系统。渠道系统又有两大类:柜台终端和自助终端,各自有自己的前置服务器。业务系统分为三大系统:个人系统、卡系统、法人系统,各自也是配置在不同的服务器上。每一类渠道都可以访问任一个业务系统,三个业务系统间也会有业务关联。在没有建立总线结构时,它们之间的逻辑连接如下图:

      从图-3可以看出,我们的应用系统被划分为两个层次:渠道层与业务处理层,分别用两个方框来表示。这两层共包含了五个子系统,分别用五个圆圈来表示。这种架构就是前面所说的点对点连接的架构。关系复杂且维护成本高。根据服务总线的概念,我们需要将其改造成为总线架构如下图:

      从图-4可见,应用系统在渠道层与业务处理层中增加了一层、被划分为三层。这一层就是为了实现服务总线而划分出来的。

      从服务总线的定义可知,服务总线承担的功能比较多。在服务总线里,我们可以把相关功能再进行细分。例如把企业服务总线功能中的一些辅助功能如:服务协议转换、服务认证、服务等级管理、服务流量管理等功能分拆到渠道整合去。功能进一步分拆后的服务总线如下图(图-5):

      从图-5可以看出,此时的服务总线包含了两部分,一部分是与各不同的渠道连接,接受各种各样的服务申请。另一部分与业务处理连接,根据接收到的服务申请,进行服务交付。

      从图-3变换成图-5,表面上好像变化不大,但从概念上说,是有了一个质的变化。

      从宏观上,我们把面对过程的计算机处理变成面向服务的计算机处理。图-5中的每一个圆圈,代表的是一种服务,其软件构成是一个服务构件。其中包括了:

      柜台渠道服务

      自助渠道服务

      渠道整合服务

      服务交付服务

      个人业务服务

      卡业务服务

      法人业务服务

      所有这些服务,他们之间的关系是服务申请方和服务提供方的关系。每一个服务构件,一方面接受处于服务流程上游的服务构件的服务申请,为其服务;另一方面,可以向处于服务流程下游的服务构件提出服务申请,要求其为自己服务。

      以上几个构件构成整个应用系统的几大应用板块层次:

      渠道层

      渠道整合层

      服务交付层

      业务处理层

      其中,作为企业服务总线的渠道整合与服务交付,一个对外、一个对内,实现服务总线的一系列功能。在应用系统架构划分时,可以将其划分为同一个层次,也可以把渠道整合与渠道划分为同一个层次。

      在企业服务总线的具体设计上,要注意以下几点:

      (一)渠道整合

      从总线的概念看,渠道整合应该是服务总线的一部分。建立渠道整合服务层,有几个作用。一是如上所述,把一些属于服务总线的辅助功能从服务交付构件剥离,使服务交付构件功能更为单一。二是屏蔽各种各样渠道的物理差异,使服务交付构件仅面对一个服务对象。第三点是最重要的一点,把从各渠道传递上来的服务申请信息,转换成标准的有限的服务要求信息。

      (二)标准服务接口

      从服务总线的概念可知,服务总线提供的是一种统一和标准的服务管理。为了能够做到这一点,服务交付层应该使用统一和标准的协议和报文。

      图-5中红色的连线,使用的就是标准的协议和报文。

      三、银行服务总线的标准功能

      银行信息系统的企业级服务总线只提供有关客户服务的管理功能,如:服务分析、服务分拆、服务转发、服务流程控制、服务路由控制、服务结果返回等,不提供客户服务本身的服务功能。也就是说,所有业务功能全部交给其他业务处理服务去实现。

      1、服务分析

      通常,应用系统的客户通过应用系统的各种人机交互界面,向应用系统提交服务要求。该服务要求通过系统的各种渠道送到系统的渠道整合层。渠道整合层把客户各种各样的服务要求整合为标准的服务申请报文,送到服务交付层。这些标准报文的头部通常都有相应的服务交易代码或功能代码。服务交付层通过对交易代码的分析,就能知道本服务申请的具体服务要求。

      2、服务分拆与转发

      服务交付层知道了客户服务要求的具体内容后,要把服务交给后面的具体服务构件去完成具体的服务。客户服务的构成有许多类型,有简单的服务,有复杂的服务。所谓简单服务,就是一个服务构件就能完成的服务。对于这种服务,服务交付层直接把服务要求转给相应的服务构件去完成。但对于大多数的服务要求,都不是简单服务,其服务需要通过若干个服务构件甚至一些系统外的信息系统共同服务才能完成。这时,服务交付层要把一个客户服务要求拆分为若干个子服务。把子服务有序地分别转发给相应的服务构件去完成。

      3、服务流程控制

      对于复杂服务,一方面,服务交付层要把服务分解成若干个子服务,要按一定的顺序,把这些子服务交给相应的服务构件。由于各子服务之间通常有一定的因果关系。前一个服务的输出往往是下一个服务的输入,所以,服务总线通常还要把上一流程的某些处理结果打包给下一流程。

      另一方面,服务交付层还要控制整个服务流程的走向。因为复杂服务流程比较长,每一个服务环节都会出现一些影响后续服务流程的结果。这些结果包括一些正常的流程选择条件和非正常事件。对于流程选择条件,服务总线根据不同的条件选择不同的流程,让服务正常持续下去。而对于出现的非正常事件,服务流程将不能正常完成。这些事件有些是由于提交的服务要求没有完全符合业务规则,如密码不符或余额不足等;另外也可能是环境的原因,如网络问题等。当某一个服务环节出了意外,整个服务流程也许不能完整走下去。需要转到另外的错误处理流程。

      4、服务路由控制

      服务交付层要把各子服务转发给各服务构件,要知道服务构件的物理位置。根据SOA松耦合的概念,松耦合既包含了软件模块之间的松耦合,还包含了软件与硬件之间、与地理位置的松耦合。应用系统的架构不强求规定哪一项服务配置在哪种机器里,也不强求规定该机器是在本地还是在远程。服务交付层通过解析服务配置表,找到相应构件的名称和位置,把子服务转发给该服务构件。

      5、服务结果打包与最终返回

      除了服务转换间的信息打包外,当所有的子服务返回的结果均为正确时,服务交付层把服务最终结果整理打包返回渠道整合层。相反,只要有某个子服务出现意外,服务交付层马上中断正常的服务流程,根据不同的意外情况,向渠道整合层返回不同的错误代码。

      四、企业服务总线的架构

      (一)宏观架构

      如上所述,建立了上述的服务总线后,解决了信息系统各应用大板块之间的松耦合,实现了宏观的总线架构。下一步,总线结构还可以在大板块内进一步展开。

      随着我们信息系统的各业务处理系统不断发展,其处理不光覆盖了核心银行业务,还包括了客户管理业务、代理业务、内部管理业务等。所有这些业务可以分类组成若干个大的业务板块。其中有一些板块,不光里头包含了许多业务。且板块内部的各种业务相互间关系比较密切,与板块外部业务的关系相对松散。对于这些大的业务板块,如核心银行板块,我们可以在板块内建立总线结构:

      在图-6里,对于核心银行应用,与图-5相比,服务交付由一层变为两层:服务交付与核心银行交付。这种变化,对于包括核心银行里原来的各个服务以及其他所有服务来说,完全是透明的。假设有一个客户服务是代发工资。在图-5的服务交付对应配置表里,配置了两个子服务,先是法人系统的工资转出服务,下一个是个人系统的工资转入服务。但在图-6里,服务交付对应配置表里只配置了一个核心银行服务,先把服务转发给核心银行交付。而在核心银行交付的对应配置表里,配置了两个子服务:法人、个人服务。从这个例子,可以看出服务总线的灵活与方便。

      在图-6里,从概念来说,渠道整合、服务交付以及各板块的交付合在一起,构成整个企业级服务总线。但在物理配置上,各业务板块的服务交付应该靠近各业务板块,或者与各业务板块配置在同一个服务器里。因为在板块内设置服务交付的前提是我们认为该板块内的各种应用是关系密切的,它们之间会有比较多的交互。把板块的服务交付配置在板块内,可以提高效率,减少开销。当然,如果板块内部的应用关系并不密切,我们就未必需要要设置两层的交付。

      多层的服务总线架构与多层的网络架构概念完全一样。众所周知,比较大的网络体系通常会采取三层架构:核心层、汇聚层、接入层,各层通过其节点交换机:核心交换机、汇聚交换机、接入交换机完成多层的数据传递与交换。相对于银行信息系统,如果采取两层的服务总线结构,服务交付相当于核心交换机;核心银行服务交付相当于接入交换机。通过系统的两层总线,完成服务的交付与流程的控制。

      (二)服务交付层的内部架构

      服务交付层的基本架构是由一组结构大致相同的程序组成。这一组程序我们可以把它称之为服务交易引擎。其中每一个程序通常对应一类客户服务,对应一类交易。并对应与该类服务相关的一组子服务、一组程序。而每一组流程相似的交易通常对应一个标准报文。

      服务交付层还有一组与交易相对应的配置表。配置表的内容有完成该交易所需要的各子服务名、子服务物理路由、子服务后续流程条件码、条件码对应后续服务等信息。交易引擎就是通过检索配置表,解释其中内容,以确定交易的具体服务内容。并确定服务构件名、服务构件路由、服务流程、服务返回内容等。

      通过建立完善的企业服务总线,整个信息系统形成一个以服务总线为中心、逐层往外扩展的的星型网络。分散的渠道把各种服务要求分层汇集到渠道整合,服务交付又分层地把服务分解为各子服务,再分发到各个具体的应用,然后汇集各个子服务的处理结果,原路返回服务的提交处。

      ESB注册试用

      LinkESB由厦门明延科技研发,公司十年专注企业服务总线, 我们致力于打造企业共享服务平台提供商,打造企业上下游的生态圈。传统的企业信息化都是围绕内部人员展开,是一个封闭的系统,而未来的企业信息化,不仅服务企业内部,还要保证上下游企业互联互通,同时客户通过手机可以及时查到到业务的进展。我们的解决方案

      1. 业务上以用户为中心

      2. 技术上以服务为中心

      3. 决策上以数据为中心

      解决方案图

      LinkESB自2007年经过多年的行业沉淀,研发了国内外先进的企业服务平台套件,先后应用于海南省电信、海航集团、厦门国际银行、厦门建发股份、夏商集团等大型企业的IT建设中,以及评众联与坤龙云海等全国性的行业互联网平台的应用。综合对比国内外ESB产商,厦门明延科技的LinkESB在各种行业项目中应用最为广泛,值得依赖!

      你是不是万事具备,就差一个程序员了?

      错!

      你其实差的是一整套解决方案

      了解LinkESB企业服务总线请联系我们,我们拥有全套互联网平台建设经验:平台规划+技术服务架构+开发平台+实施方案+运营思路。

      打开LinkESB网站,一分钟注册开发者账号开始试用吧!



    http://news.chinabyte.com/480/14198980.shtml


    展开全文
  • 引子ESB相信很多人都听说过,又叫企业服务总线一种传统的企业服务集成架构。最近几年入行的年轻人肯定认为它已经过时了,现在流行的微服务和分布式的体系可以完美的将其替代。下面我们来讲讲ESB,至于它是否真的...

    引子

    ESB相信很多人都听说过,又叫企业服务总线,是一种传统的企业服务集成架构。最近几年入行的年轻人肯定认为它已经过时了,现在流行的微服务和分布式的体系可以完美的将其替代。下面我们来讲讲ESB,至于它是否真的有用读者可以自己体会。

    ESB解决了什么问题

    019ef1b706bcf798cad228767bfb21ac.png

    ESB主要是为了解决多个应用系统互联所面临的的复杂性,减低集成和维护成本。

    举个例子,比如医疗业务系统可分为很多子系统,包括HIS、LIS、EMR等等,如果这些业务系统可能是由多个供应商开发的,可能会有构建语言的不同、通信协议的不同、数据传输格式的不同等问题,那么如何把这些系统用一条线串起来呢?就是ESB。ESB就是把服务的集成从系统层面提升到了平台层面,通过中间件调用各系统服务,以实现各系统通信。它需要保证多个应用系统的服务接入,协议转换,提供可靠的消息传输,数据格式转换,基于内容路由等功能。

    有人可能会有疑问,应用A发送消息给ESB,ESB再将消息转换给应用B,那么应用A直接通过SOAP协议发送给B,效率不是应该更高吗?而且如果这些IT系统都在一个网络中,提供的WebService都在统一命名空间下,就可以相互通信,为什么还要加上这一层?有两点需要考虑。第一点。点对点做服务的时候,通常需要考虑日志记录,服务访问安全、传输安全、数据安全、路由分发等一系列问题,而这些完全可以统一管理,统一验证,灵活配置;如果应用A调用了应用B,再调用了应用C等具有逻辑流程的调用时,还可以在ESB上实现流程引擎;第二点,ESB是一个中间件平台,包含了消息中间件的全部功能,有异步消息处理机制,可以实现业务系统之间真正的松耦合的结构。

    ESB的实现方式

    一.CXF

    CXF的定位不是ESB总线,而是一个服务框架(Service Framework),主要还是为关于服务的应用提供API上的支持,或者上下文上的管理。可是它的前身之中的一个的Celtix就是IONA公司捐献给开源界的ESB总线,所以总体上还是能提供ESB总线的功能。在CXF中的总线仅仅是起到一个共享资源的提供者的作用。这些贡献资源就相当于JBI规范中的绑定组件或服务引擎。即使如此CXF并没有提供了对JBI规范的完整实现。能够说它仅仅是一个相似的JBI容器。CXF支持与除了HTTP之外的其他协议的通信绑定,比如REST、JSON和CORBA等,所以对于Ajax有较强的兼容性。这相对与其他的ESB总线而言能够说是一个较大的优势。可是CXF的ESB总线是根据Spring框架来实现的,由Spring来管理Bus中的各个组件。而Spring对各个Bean或组件的管理是通过一个上下文的配置文件来实现的。这种方式相对与其它的ESB总线的方式而言,则不支持动态的热部署。也就是说CXF不是一个JBI容器,它必须依附与其它的容器来执行。现有的资料来看,CXF眼下能够部署在JBoss和Weblogic中,Tomcat因为不支持完整的J2EE规范,特别是基于JCA的EJB,所以对CXF支持的程度不理想。关于CXF的文档较为丰富,这部分是因为它本身是整合了Xfire和Celtix这两个本身较为成熟的开源项目。另外它较大的依赖于Spring框架,所以假设对Spring较为熟悉的话,在使用上一般就没有太大的障碍了。

    二.Open ESB

    OpenESB是Sun公司提出来的开源ESB项目,所以对JBI规范的支持程度就不用多说了。而GlassFish ESB则是将OpenESB的核心执行环境与GlassFish应用server以及NetBean的集成开发环境整合在一起的有一个ESB项目,当然其中还包括了一些OpenESB中已有的组件。

    在OpenESB中提供了可以支持WS-BPEL2.0的引擎。可是如今这个组件支持WSDL1.1,暂不支持WSDL2.0。并且这个引擎要依托与NetBean集成开发平台,起码仅仅能得到基于NetBean的对应开发包和组件包。可是这个组件对BPEL提供了强大的支持,当中包含支持端点状态的监控、支持多线程运行、业务流程的调试、系统错误的可靠性恢复中各个业务流程实例的数据库持久化以及负载均衡等。在资料方面仅仅有一个演示视频,主要还是基于NetBean平台的使用介绍。其它发布的资料则则较少,特别是API方面差点儿没有。所以假设要对OpenESB进行依照自身的要求进行扩展则较为困难,除非对OpenESB的源码进行全面的分析。

    三.ServiceMix

    ServiceMix是Apache基金会下的一个ESB总线,同时也是一个独立的JBI容器。说它是一个独立的JBI容器,是由于它拥有自己独立的执行环境,能像应用server一样启动,并支持动态的热部署等,这一点则差别于CXF。

    ServiceMix的容器执行环境采用内核的架构,并以Geronimo关于J2EE方面的实现为基础,所以在性能上还是较为出色的。在通信上,整合了ActiveMQ,也支持多种的通信协议,比如HTTP和JMS。同一时候在管理组件上採用了JMX的管理架构,从而可以对部署在总线上的各种组件进行动态的配置和管理,或通过Web的形式,或通过JMX远程訪问均可。ServiceMix内核可以整合到所处的操作系统中,从而作为OS的对外提供的服务。

    关于ServiceMix的资料也较为的完备,关于组件扩展方面和流程引擎整合方面的资料则不够具体。假设要做进一步的总线上的扩展,则须要对源码进行较为深入的学习和研究,当然这一切的基础是对JBI的规范有较为全面的了解。

    四.JBoss ESB

    JBoss ESB是JBoss社区为面向SOA而提出的一个EAI系统平台。它提供了非常多EAI本身所应具有的功能,比如业务流程监控、集成开发环境、工作流用户接口、业务流程管理、分布式计算架构以及作为应用容器的功能等。JBossESB在功能上是较为强大的。但相对于上面的总线而言,它的技术架构方案是最独立的。由于它除了支持J2EE标准外,对于JBI规范压根就不沾边。当然也就不存在JBI规范中的规范化消息路由、服务引擎和绑定组件了。JBossESB除了支持 Web Service外,还支持多种的远程调用协议,比如JMS。仅仅是相对于ServiceMix和CXF而言,假设要对JBossESB进行扩展,可能要花费较大的时间和精力。

    JBossESB相对上述的开源项目而言,一个非常大的优势在于文档资料是最为丰富和完备的。所以在开发和扩展上减小了不小的阻力。它而且依托于成熟的JBoss社区,周围齐全的开源项目支持,为后期的平台扩展提供了丰富的选择空间。

    ESB的各种功能

    1.ESB的服务接入方式?

    • RPC 远程过程调用(面向方法)
    • SOAP 面向服务的架构(面向消息)
    • REST 资源的状态转变(面向资源)

    目前我们公司使用的HSF实际上就是RPC,还是JSON-RPC,RPC的另一种实现还有XML-RPC,通讯方式相同,采用调用本地服务一样的调用服务器的服务的方式,只不过传输数据格式不同,JSON格式更加高效。

    XML-RPC实际上就是这三种方式的最早通信方式,基于HTTP传输协议+XML参数封装,一个XML-RPC消息就是一个请求体为xml的http-post的请求,服务端执行了之后也以XML格式的编码返回,后来这个标准演化成了SOAP,可以理解为SOAP是XML-RPC 的高级版本;

    SOAP,简单对象访问协议,是一种轻量的、简单的、基于xml的远程访问协议,可以实现多种传输层或应用层协议结合使用,如TCP/HTTP/SMTP等,实际上应用最广泛的还是基于HTTP+XML的实现,相对于XML-RPC,SOAP更好的利用了XML,有相应的服务描述语言,也是一段XML,也就是WSDL(Web Services Description Language),专门用来描述怎么访问web服务,一般包含4点,用于访问服务的地址信息,用于传输信息的传输协议,用于所有可使用功能的名称和接口方法,在所有的请求和响应中所使用的数据类型及格式;

    REST,是一种约束、或者开发方式,简单的说就是,用HTTP动词(GET,POST,DELETE,PUT)描述操作,表示资源的转换,用JSON格式传输数据。满足REST的约束叫RESTful风格。

    2.ESB的如何进行协议转换?

    现在ESB产品的实现方式基本上是二进制进行转换。

    3.数据转换

    • 在应用间交换不同格式的信息
    • 操作消息的负载内容,包括加密、压缩和编码转换
    • 在异构的传输协议的数据类型间格式化消息,此过程也是依赖工具比如Mule可以用Transformer 进行转换,比如将JMS格式message转化为其他类型的数据,JDBC Transformer可以将CSV或xml文件中的数据转移到数据库中等等

    4. 消息路由

    • 基于消息内容和复杂规则路由消息
    • 消息的过滤、聚合以及重新排列序号,此过程也是依赖工具比如Mule可以用case when 等逻辑判断,根据消息中指定的信息将消息发送到不同的服务端进行处理。

    ESB与微服务的区别

    1. 什么是ESB和注册服务管理

    • ESB主要作用是兼容各种协议接口,将各种协议的数据进行编排转换,不适用于高并发场景的应用 。
    • 服务注册时将所有的服务接口注册到一个中心的分布式服务集群上,各个业务系统直接访问分布式服务提供的调用接口位置进行调用。

    2. ESB和服务注册的特点

    • ESB是集中式转发,适合大量异构系统集成。总线上可以做流程引擎,安全监控等 。
    • 服务注册时采用分布式调用,注册中心只记录了地址信息,然后直连调用,适合并发压力比较大的情况。

    3. 总结

    • ESB侧重于系统和服务集成,不能支持特别大的并发。
    • 分布式侧重于服务治理,各服务提供各自的功能接口,由zookeeper进行服务注册发现,适合高并发及高可用场景。
    展开全文
  • 顾名思义,企业服务总线(ESB)就是一条企业架构的总线,所有的企业服务都挂接到该总线上对外公布,企业服务总线负责管理服务目录,解析服务请求者的请求方法、消息格式,并对服务提供者进行寻址,转发服务请求。...

    下面来说一下你的问题。顾名思义,企业服务总线(ESB)就是一条企业架构的总线,所有的企业服务都挂接到该总线上对外公布,企业服务总线负责管理服务目录,解析服务请求者的请求方法、消息格式,并对服务提供者进行寻址,转发服务请求。说白了,它就是服务的请求者和服务的提供者之间的一个中间件,就是对服务使用者屏蔽服务提供方的技术实现方式。如果没有这个总线,那么服务的请求者则必须自己知道它所需要的服务的地址,并要知道相应的服务调用方法,消息格式,这样的调用是点到点的,不利于服务的统一管理,不利于不同格式的服务的集成。


    ESB可以说是搭建SOA架构所必须实现的核心功能组件。总的来说,它的主要功能和职责是消息解析,验证,服务路由转换,请求的传递,服务目录管理。ESB使用SOAP消息格式,支持HTTP(S)、JMS、MQ、FTP、SMTP等传输协议。


    ESB也可以说是传统中间件技术与XML、Web服务等技术相互结合的产物。


    从软件设计的角度上来说,ESB是一个抽象的间接层,提取了服务调用过程中调用与被调用动态交互中的一些共同的东西,减轻了服务调用者的负担。要记住一句话:“所有的软件设计的问题都可以通过增加一个抽象的间接层而得到解决或者得到简化!!!”这句话在java编程思想这本书上有,但还是要通过不断的实践才能真正深入地理解它!



    http://www.jdon.com/32626



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

    千次阅读 2015-01-28 09:13:10
    什么是ESB(企业服务总线) 有了它,才能释放SOA的最大价值。因此,ESB成为厂商在SOA(面向服务的架构)竞争中的焦点。作为近两年软件领域最热门的词汇之一,SOA(Service Oriented Architecture,面向服务的架构)的...

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

    有了它,才能释放SOA的最大价值。因此,ESB成为厂商在SOA(面向服务的架构)竞争中的焦点。作为近两年软件领域最热门的词汇之一,SOA(Service Oriented Architecture,面向服务的架构)的概念以及SOA带来的好处,正在被用户逐步接受。Gartner的数据表明,到2007年,全球将有70%以上的大企业会将他们的应用转到SOA。但是目前CIO们最关心的是,如何才能真正实现基于SOA的应用? 在近一段时期,多家软件厂商如IBMSunBEAOracle等都加大了对ESB(Enterprise Service Bus,企业服务总线)产品的投入力度,并声称自己的SOA解决方案因此而更加完善,ESB成为厂商在SOA竞争中的焦点。 ESB成为一种新的诱惑 ESB是传统中间件技术与XMLWeb服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。业内对ESB的定义是:它是由中间件技术实现并支持SOA的一组基础架构,支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别和可管理性。这样的定义稍显抽象,简单地说,ESB就是试图将应用服务器上的多种逻辑层面迁移到总线以及连接点上,从而降低企业内部信息共享的成本。IBM WebSphere软件全球副总裁Sandy Carter女士介绍说,企业服务总线是SOA中的消息框架即消息相互交换和通信的方式,是业界标准与客户消息框架的整合。” ESB产品的共有特性包括:连接异构的MOM(Microsoft Operations Manager)、利用Web服务描述语言接口封装MOM协议,以及在MOM传输层上传送简单对象应用协议(SOAP)传输流的能力。大多数ESB产品支持在分布式应用之间通过中间层如集成代理实现直接对等沟通。 ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。在电信领域:ESB能够在全方位支持电信行业OSS(运营支撑系统)的应用整合概念,是理想的电信级应用软件承载平台。在电力领域:ESB能够全方位支持电力行业EMS的数据整合概念,是理想的系统数据交换平台。在金融领域:ESB能够在全方位支持银企间业务处理平台的流程整合概念,是理想的B2B交易支撑平台。SOA挑起大旗对于SOA的概念,不同的软件提供商有不同的定义方式。很多用户也都是从不同的视角来理解SOA,从程序员的角度,SOA是一种全新的开发技术,新的组件模型,比如说Web Service;从架构设计师的角度,SOA就是一种新的设计模式,方法学;从业务分析人员的角度,SOA就是基于标准的业务应用服务。 SOA不仅是Web服务,如何让业务服务最大限度地复用才是SOA的核心价值。ESB为分散服务提供了交互、组合和治理的基础架构。有了它,才能释放SOA的最大价值。我们可以这样来理解,ESB就是在SOA架构中实现服务间智能化集成与管理的中介。而它与SOA的关系是:ESB是逻辑上与SOA所遵循的基本原则保持一致的服务集成基础架构,它提供了服务管理的方法和在分布式异构环境中进行服务交互的功能。可以这样说,ESB是特定环境下(SOA架构中)实施EAI(enterprise application integration,企业应用集成)的方式。 IONA公司大中国区总裁薛志勇表示,采用IONA公司的ESB产品Artix作为SOA的切入点,将可以使企业以最小的投入将已有系统纳入SOA架构。薛志勇称,目前ESBSOA集成中最普遍采用的方法,传统的EAI和平台厂商是以服务器为中心、以“Hub”为形式的解决方案,这种方法虽然解决了信息孤岛问题,但投资大,见效慢,而且也不灵活。因为ESB是传统中间件技术与XMLWeb服务等技术结合的产物,对企业而言,采用ESB中间件系统作为企业级信息系统整合方案中的中枢技术,可以无须添加任何软硬件设备,就可把过去、现有和未来的IT系统整合在企业级的信息应用框架下,并且能为企业提供实时、大容量的信息通信和实时控制、管理和分配消息传递的能力。目前,除了IONATibco等专业的ESB公司外,SOA的两大领导厂商IBMBEA也加入了ESB的阵营。 Forrester公司分析师Mike Gilpin说:尽管人们还不十分确定如何构建出一个完整的SOA,但他们已经知道要解决集成问题,而ESB正好能帮助他们解决该问题。国内CIOSOA早已听了很多。SOA的理念和他们所面临诸多挑战,SOA 的开放性和灵活性,给了CIO一个选择它的理由。然而,不菲的平台迁移成本以及缺少成功案例的佐证,都让CIO难下决心。 CIO不但要考虑必须对现有产品进行集成以支持SOA的使用场景。还必须考虑如何构建面向未来的SOA应用。ESB的出现和应用恰好为这个难题提供了一个解决之道。甲骨文公司在去年将ESB产品内嵌在其业务流程管理产品中,今年就推出了独立的ESB产品。BEA推出了 AquaLogic Service Bus等来加强ESB的产品线。IBM在原有WBI Message BrokerWAS 6 SIBus这些集成产品之外,又推出了独立的WebSphere ESB产品。而传统的EAI厂商TibcoWebMethods也宣布了各自的ESB产品。 BEA公司中国区技术经理刘汩春认为:“SOA服务必须是可组装编排、可快速注册发布、质量可监控、生命周期可管理的。这样SOA才能在整个 IT范围内实现服务治理和优化,从而直接推动业务的优化。而从简单的服务重用框架到SOA演进的过程中,ESB就是其中最重要的催化剂之一。” ESB的兴起让SOA的渐进之路可以走得更开放和平稳,而ESB也代表了中间件产品本身的进化方向,从应用领域而言,由于ESB是基于开放的Web服务而来,在SOA的发展过程中,ESB已经当仁不让地挑起大旗。 ESB开源之路开源软件市场这几年的发展也早就显示出极其旺盛的生命力。Linux服务器、开源数据库、开源应用软件等产品的市场份额都已有了很大提高。开源软件已成为政府机构和企业用户节约成本的一种有效手段。随着Java应用服务器迅速成为一种大众化商品,企业中间件也朝着开源的方向跟进。近两年,已出现了许多极其成熟的企业服务总线实施项目。 SunJavaOne大会上发布了自己的免费ESB。这个名为Java开放式企业服务总线的项目将放在Java.net上进行,第一个版本有望在今年夏末交付。Sun还计划把来自这个社区项目的代码包装成商用产品。 Sun的应用程序以及开发者平台的市场副总经理Joe Keller说,Open ESB将会基于Java商业集成1.0规范。还提供了使用开源代码的Java系统应用程序服务器。这将是一个推动整个世界商业的应用程序服务器,”Keller说。而在SunESB开源前,Iona科技公司就公开了Celtix的源代码,这是采用GNU LGPL许可证的Java ESB,从而启动了ObjectWeb社区在ESB方面的工作。Iona方面声称,Celtix将支持Java商业智能(JBI)规范,该规范为跨应用集成明确规定了标准化的对象容器。目前市场上已经有大量BEAIBM以及Sun Microsystems等大制造商生产的ESB产品。而ObjectWeb在上星期也接收到了法国IT服务公司BULL的源代码捐赠来加速它ESB产品发展。随着开源项目的这股趋势,这个领域的所有供应商都在观望哪个ESB会获得成功。IDC的副总裁Dennis Byron说:IBM举例,如果不管什么原因ObjectWeb占据了市场

     

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

    2016-06-11 11:19:00
    对于企业服务总线(Enterprise Service Bus),目前还没有公认的定义,根据供应商和来源的不同,有很多种不同的定义,其中包含如下定义: 一种集成架构样式,支持提供者和服务用户之间通过由各种点对点连接构成的...
  • 这是一篇反对使用ESB作为集中式Hub方式的文章,作者认为一个统一的昂贵的ESB是没有必要的。下面是大意翻译:ESB激怒我并不是技术本身,而是他们所使用的方法,主要是因为每个一个架构师和他的导师似乎都认为不能没有...
  • 就是企业数据总线的意思,他的核心功能就是兼容各种协议接口,可以将数据在各种协议之间进行流转,并且可以针对数据格式进行编排转换 代表性的项目有:JBOSS ESB,Mule,Camel 以及一些其他的esb项目 2、什么是...
  • 那么什么是ESB呢?我们知道SOA体系结构要求企业里面所有的和业务相关的应用程序都应该提供webservice的接口。那么一旦这一步实现了之后,所有的应用程序面临的问题就是如何去调用这些或者说这么多接口,当然使用...
  • ESB是什么呢? ESB是Enterprise Service Bus的简称,中文翻译为企业服务总线企业服务总线是一个实现系统间集成和互联互通的重要技术架构,可以理解为是一种消息和服务集成的中间件平台。 这个技术是为了解决什么...
  • 通常,企业服务总线(ESB)或其他集成解决方案(如提取-转换-加载(ETL)工具)已用于尝试使系统脱钩。 但是,大量的连接器以及应用程序同时发布和订阅数据的要求,意味着系统始终纠缠在一起的。 结果,开发项目对其他...
  • ESB企业服务总线)的是与非ESB这个新名词让人感到既时髦又有点儿迷糊,它似乎正在被赋予许多自己不应承载的内容。那么,ESB究竟是什么呢? 中间件到底是什么东西? 它现在就好比是不断将新思想一股脑儿浇在老方法...
  • ESB这个新名词让人感到既时髦又有点儿迷糊,它似乎正在被赋予许多自己不应承载的内容。那么,ESB究竟是什么呢? 中间件到底是什么东西? 它现在就好比是不断将新思想一股脑儿浇在老方法上...ESB企业服务总线)。ESB

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 153
精华内容 61
关键字:

企业服务总线esb是什么