对ESB概念的理解_esb是一个产品吗-程序员宅基地

技术标签: 电商  

什么是 ESB?ESB 严格来说不是某一个产品,而是一种框架,设计模式。不同的提供商对 ESB 的理解也各有不同。从 IBM 的立场来说,ESB 不仅仅是一个概念,而是一种中间件模式;它不是某个产品,而是一种全新的集成应用,协调资源和操纵信息的框架。

下面来介绍 ESB 或可以称为 ESB 的中间件产品保护一些特征,有些是必须的,有些是可选的:

  1. 连接性

    ESB 必须提供一种支持服务交互的桥梁,它必须支持多协议 (protocol) 之间的连接。不仅要提供对消息和面向事件的中间件的支持,还要提供和现有 EAI 技术的连接。连接性是 ESB 不可缺少的特征之一。

  2. 服务交互

    服务交互可以理解为 ESB 的一个目的之一,ESB 作为 SOA 架构的核心,必然要支持服务的交互,要在服务的请求者和提供者架起一个坚实的桥梁,让服务的请求者和提供者只需要关心各自的业务逻辑,而不需要在发布和消费服务的环节花很大力气。服务交互也是 ESB 的必备特征。

  3. 集成

    集成的概念是对于系统而言的,ESB 不仅要能集成那些很容易封装服务的系统,也要集成不能方便地封装服务的系统,例如 SAP, ERP, CRM, Siebel 等 EAI 系统、遗留系统。集成也是 ESB 的核心特征之一。

  4. 消息处理

    在集成的过程中,必须要面对的是消息处理,在不同的应用系统中,消息的描述格式是不一样的。在集成环境中,必须要提供一种统一的格式来处理系统间的交互,从 ASBO(Application Specific Business Object ) 到 GBO(Generic Business Object) 之间的互转是 ESB 的核心特征之一。

  5. 管理

    对于一个具有 ESB 特征的产品,管理也是一个重要的方面。例如,当一个服务从一个地址切换到另一个地址,在结构等不发生任何改变的时候,ESB 产品应该提供一个方便的途径适应这种改变。

  6. QoS

    对于服务交互来说,QoS 也是一个重要的特征,比如针对不同的服务请求者提供不同质量的服务响应。有些服务的请求需要在事务中完成,有些服务的交互需要保证其可靠性。一个 ESB 产品应该提供给开发者定义 QoS 的接口。

  7. 安全

    安全的必要性不言而喻,系统和系统之间的交互必然需要认证,授权,加密,签名等安全性。一个优秀的 ESB 产品应该提供可靠的,可灵活配置的安全支持。

IBM 有三款 ESB 产品:WebSphere ESB (WESB),WebSphere Message Broker(WMB),DataPower。这三款 ESB 产品都提供了 ESB 所必备的特征,但是它们各有侧重,WESB 主要构建与 WebSphere Application Server 之上,侧重于对标准协议和消息的支持,更适合于 J2EE,Web-Service 为主要特征的集成环境;WMB 提供了一个高级的 ESB,它构建于 WebSphere Message Queue 之上,提供了百种以上协议的连接和数据格式的转换机制。Datapower 是一款比较新的 ESB 产品,除了提供必备的 ESB 的特性之外,Datapower 更侧重于安全。众所周知,在 XML 的环境中,安全对于性能的影响是巨大的,Datapower 给企业 ESB 提供了强大的安全保障。

下面对这三款 ESB 产品比较:

总结,WESB 适用于 J2EE 环境下,对性能要求不是很高的,标遵循标准协议的 SOA 集成;WMB 应用更复杂的集成环境,表现为数据格式多种,传输协议多样,性能要求很高;而在安全和性能要求都很高的应用场景下,选择 Datapower 无疑是最好的选择。下面的图表再次对文中的描述进行总结。

ESB 功能特点 WESB 的支持 MB 的支持 Datapower
消息转换 XML XML、非 XML XML、非 XML
支持的协议 HTTP,JMS, WMQ 等 多达上百种 介于前二者之间
消息路由 强大,灵活 功能强大,灵活 灵活度比前二者稍弱
Web Service 强大的支持 支持 WS 扩展 强大的支持
事件处理 CEI,可以和外部事件消费系统监控 Trace Service 用于调试 Probe
遗留系统的集成 Adapter 丰富的 SupportPac 特定的遗留系统
安全 依赖 WAS 的安全 部署和运行时两个级别的安全 超强的安全支持
性能 几十到几百每秒 几千到几万每秒 达到线速
开发和部署 WID 集成开发环境 WMB Toolkit WebGUI

  • WESB 的优势是提供了和流程服务器 WPS 以及 J2EE 服务器 WAS 良好的整合。WESB 适合使用于对性能要求不是很高,且遵循标准协议的 SOA 整合环境中。
  • WMB支持几乎大部分常用的数据格式和协议。并且提供了良好的扩展功能,开发人员可以在 WMB 基础上开发自己的数据格式解析的节点。处理性能较高。适合于信息传输量较大,信息交互频繁的场景中。
  • Datapower 使用硬件的 XML 解析和加速器,在性能上有了很大的提高。在安全和性能要求都比较高的环境中,Datapower 是一首选 ESB。

WebSphere ESB 与 SIBus 的比较:
1.WAS v6中的服务集成总线 (SIBus) 技术可以创建ESB。
2.ESB 的基本功能回顾
  总的来说,ESB 通过一组丰富的功能(包括智能路由、协议中介和其他转化机制)集成服务,实现对应用程序之间交互的管理和监视,从而提供了在企业内部和企业之间连接新的和现有软件应用程序的功能。ESB 支持服务可视化,从而在服务请求者和服务提供者之间提供了多方面的分离。
  以下是比较关键的ESB 功能
  1).首先,ESB 能够通过各种方式与服务请求者和服务提供者交互:可以通过持久性消息中枢(特别是 MQ)发送和接收消息,并能够通过 HTTP 和 JMS发送和接收 Web 服务请求和响应消息。
  2).其次,能够在不同消息和传输协议之间转换,如将 HTTP 上的 SOAP 转换为 JMS 上的 SOAP。
  3).然后,能够使用流行的转换语言 XSLT 转换 XML 消息。
  4).能够应用消息中介(如日志记录)。提供高级功能包括消息的监视、在服务注册中心中查询端点和异步请求/响应。
3.ESB 的现有功能:
  1).ESB 非常重视标准,可以对 XML 和 SOAP 提供一流的支持。
  2).ESB 的核心是中介流组件,它是特定类型的 SCA 组件,支持SCA/SDO 编程模型。可以使ESB与WPS组件轻松集成。
  3).ESB 需要SDO 的扩展——服务消息对象(Service Message Objects,SMO)——它使我们能够访问所需的消息上下文和内容。
  4).ESB 需要XSLT转换语言转换 XML 消息。
  5).需要连接不支持现成的 SOAP 或 XML 的现有系统时,WebSphere Adapters 可以为我们节省许多开发时间,因为可以将它们用作能够“连接”到 WebSphere ESB 中介的另一个 SCA 组件类型。
4.ESB 与 SIBus 的比较
  1).ESB 和 WID 提供了 SIBus 没有的功能,SIBus配置过程可能非常麻烦;ESB 可以通过WID进行可视化中介流组件的开发。ESB 支持不同的交互模式与请求和响应消息的自动关联。SIBus只能通过代码实现,开发速度无法比;
  2).ESB的缺省 JMS 提供程序即SIBus的JMS 提供程序,ESB基于WAS,ESB安装也自动含有SIBus功能。
  3).SIBus 中介和 ESB 中介之间的差异,二者的中介框架实现、API、包装和管理模型是不同的。SIBus 和 ESB 将 SDO 用作通过总线的消息流的表现机制。但ESB使用称为 Service Message Objects (SMO) 的 SDO 扩展。
  4).将 SIBus MQLink 与 WebSphere ESB 一起使用,SIBus 通过其 MQLink 功能提供到 MQ 的连接,ESB 也可以使用MQ SCA 本地绑定连接MQ。
  5).SIBus 和 WebSphere ESB 基础结构的共存和集成,ESB 和 SIBus 可以共存,并且可以互相迁移。

面向 ESB 的体系结构:一种错误的采用 SOA 的方式
  面向 ESB 的体系结构并不带来业务价值。基于面向 ESB 的体系结构的项目需要成为基于 SOA 的项目,才能帮助确保成功地提供业务价值。
  SOA 的主要目标是在业务领域与 IT 领域之间保持一致,从而同时提高二者的效率。SOA 基于业务需求。SOA 可保持 IT 与业务的一致性,所以SOA还要有很复杂的分析,而ESB并不需要业务需求来实现服务总线。ESB是在真正需要的时候实现所需的内容,而不要在预计会使用时进行实现。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhongguomao/article/details/51523608

智能推荐

解决win10/win8/8.1 64位操作系统MT65xx preloader线刷驱动无法安装_mt65驱动-程序员宅基地

文章浏览阅读1.3w次。转载自 http://www.miui.com/thread-2003672-1-1.html 当手机在刷错包或者误修改删除系统文件后会出现无法开机或者是移动定制(联通合约机)版想刷标准版,这时就会用到线刷,首先就是安装线刷驱动。 在XP和win7上线刷是比较方便的,用那个驱动自动安装版,直接就可以安装好,完成线刷。不过现在也有好多机友换成了win8/8.1系统,再使用这个_mt65驱动

SonarQube简介及客户端集成_sonar的客户端区别-程序员宅基地

文章浏览阅读1k次。SonarQube是一个代码质量管理平台,可以扫描监测代码并给出质量评价及修改建议,通过插件机制支持25+中开发语言,可以很容易与gradle\maven\jenkins等工具进行集成,是非常流行的代码质量管控平台。通CheckStyle、findbugs等工具定位不同,SonarQube定位于平台,有完善的管理机制及强大的管理页面,并通过插件支持checkstyle及findbugs等既有的流..._sonar的客户端区别

元学习系列(六):神经图灵机详细分析_神经图灵机方法改进-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏27次。神经图灵机是LSTM、GRU的改进版本,本质上依然包含一个外部记忆结构、可对记忆进行读写操作,主要针对读写操作进行了改进,或者说提出了一种新的读写操作思路。神经图灵机之所以叫这个名字是因为它通过深度学习模型模拟了图灵机,但是我觉得如果先去介绍图灵机的概念,就会搞得很混乱,所以这里主要从神经图灵机改进了LSTM的哪些方面入手进行讲解,同时,由于模型的结构比较复杂,为了让思路更清晰,这次也会分开几..._神经图灵机方法改进

【机器学习】机器学习模型迭代方法(Python)-程序员宅基地

文章浏览阅读2.8k次。一、模型迭代方法机器学习模型在实际应用的场景,通常要根据新增的数据下进行模型的迭代,常见的模型迭代方法有以下几种:1、全量数据重新训练一个模型,直接合并历史训练数据与新增的数据,模型直接离线学习全量数据,学习得到一个全新的模型。优缺点:这也是实际最为常见的模型迭代方式,通常模型效果也是最好的,但这样模型迭代比较耗时,资源耗费比较多,实时性较差,特别是在大数据场景更为困难;2、模型融合的方法,将旧模..._模型迭代

base64图片打成Zip包上传,以及服务端解压的简单实现_base64可以装换zip吗-程序员宅基地

文章浏览阅读2.3k次。1、前言上传图片一般采用异步上传的方式,但是异步上传带来不好的地方,就如果图片有改变或者删除,图片服务器端就会造成浪费。所以有时候就会和参数同步提交。笔者喜欢base64图片一起上传,但是图片过多时就会出现数据丢失等异常。因为tomcat的post请求默认是2M的长度限制。2、解决办法有两种:① 修改tomcat的servel.xml的配置文件,设置 maxPostSize=..._base64可以装换zip吗

Opencv自然场景文本识别系统(源码&教程)_opencv自然场景实时识别文字-程序员宅基地

文章浏览阅读1k次,点赞17次,收藏22次。Opencv自然场景文本识别系统(源码&教程)_opencv自然场景实时识别文字

随便推点

ESXi 快速复制虚拟机脚本_exsi6.7快速克隆centos-程序员宅基地

文章浏览阅读1.3k次。拷贝虚拟机文件时间比较长,因为虚拟机 flat 文件很大,所以要等。脚本完成后,以复制虚拟机文件夹。将以下脚本内容写入文件。_exsi6.7快速克隆centos

好友推荐—基于关系的java和spark代码实现_本关任务:使用 spark core 知识完成 " 好友推荐 " 的程序。-程序员宅基地

文章浏览阅读2k次。本文主要实现基于二度好友的推荐。数学公式参考于:http://blog.csdn.net/qq_14950717/article/details/52197565测试数据为自己随手画的关系图把图片整理成文本信息如下:a b c d e f yb c a f gc a b dd c a e h q re f h d af e a b gg h f bh e g i di j m n ..._本关任务:使用 spark core 知识完成 " 好友推荐 " 的程序。

南京大学-高级程序设计复习总结_南京大学高级程序设计-程序员宅基地

文章浏览阅读367次。南京大学高级程序设计期末复习总结,c++面向对象编程_南京大学高级程序设计

4.朴素贝叶斯分类器实现-matlab_朴素贝叶斯 matlab训练和测试输出-程序员宅基地

文章浏览阅读3.1k次,点赞2次,收藏12次。实现朴素贝叶斯分类器,并且根据李航《统计机器学习》第四章提供的数据训练与测试,结果与书中一致分别实现了朴素贝叶斯以及带有laplace平滑的朴素贝叶斯%书中例题实现朴素贝叶斯%特征1的取值集合A1=[1;2;3];%特征2的取值集合A2=[4;5;6];%S M LAValues={A1;A2};%Y的取值集合YValue=[-1;1];%数据集和T=[ 1,4,-1;..._朴素贝叶斯 matlab训练和测试输出

Markdown 文本换行_markdowntext 换行-程序员宅基地

文章浏览阅读1.6k次。Markdown 文本换行_markdowntext 换行

错误:0xC0000022 在运行 Microsoft Windows 非核心版本的计算机上,运行”slui.exe 0x2a 0xC0000022″以显示错误文本_错误: 0xc0000022 在运行 microsoft windows 非核心版本的计算机上,运行-程序员宅基地

文章浏览阅读6.7w次,点赞2次,收藏37次。win10 2016长期服务版激活错误解决方法:打开“注册表编辑器”;(Windows + R然后输入Regedit)修改SkipRearm的值为1:(在HKEY_LOCAL_MACHINE–》SOFTWARE–》Microsoft–》Windows NT–》CurrentVersion–》SoftwareProtectionPlatform里面,将SkipRearm的值修改为1)重..._错误: 0xc0000022 在运行 microsoft windows 非核心版本的计算机上,运行“slui.ex