随着政府、企业信息化这么多年的发展,信息化在许多单位已经实现了业务领域的全覆盖或基本覆盖,很多时候,再做信息化已经不再是像以前那样新上个业务应用,针对现有业务应用的集成整合,越来越成为一个大的趋势。应用间的集成整合,从技术手段上来讲,可以有多种选择,而基于SOA理念的集成整合则是目前广为大家所知、所接受的一种方式。ESB作为SOA参考架构模型中的核心组件,越来越多的在应用整合集成领域发挥大的作用。
不可否认,ESB是个非常好的工具,内置各种接入组件和接入协议支持,能够方便的实现跟不同业务应用的接入,但ESB也不是万能的,在跟客户、同事交流过程中,发现有些认识上的误区。
一、ESB能干的事情是其他工具或其他方法干不了的
很多人一开始接触采用ESB做应用集成整合的思路时,通常会问,为什么要用ESB,有哪些ESB能干的事情是其他的工具或其他的方法不能干的。要理解这个问题其实很简单,ESB只是一个工具,也是一套程序,具备一定功能的程序。既然是程序,就是通过某种编程语言写代码实现的,只不过这一大堆代码可能设计良好,考虑到了很多种情况,经历了很多场景的检验,是比较成熟稳定的;时间和精力足够的前提下,相信有很多牛人或者牛公司可以从零开始实现一个ESB的全部功能。所以从这个意义上来讲,没有任何事情是ESB能干而其他工具或其他方法不能实现的。那为什么还用ESB,直接写代码多直接?理解这个问题也简单,因为ESB这堆代码是设计良好的、经历很多场景检验的、成熟稳定的,如果自己写,不能说就一定是不够设计良好、不够成熟稳定,但要达到这个目标至少需要一段比较长的时间,而时间恰恰在很多时候是个稀缺资源。
二、只要是做应用集成整合,用ESB就是最好的选择
这其实也是一个比较常见的误区,ESB适用的场景是:在多个(一般来说至少两个以上)应用之间做整合集成的情况,而且希望应用系统之间是松耦合的,因为后续系统间的接口有可能会发生变化。这种情况下就是ESB大显身手的时候,设想有10个系统,如果每个系统都有可能需要跟其他的系统有接口,你可以算一下一共得多少个接口,如果后续业务有一点点变化,你要改这些接口是不是有点欲哭无泪的感觉。而采用ESB则不然,所有应用间的集成交互都是通过工具可视化配置的,基本不需要写代码,修改起来也非常灵活。如果只有两个系统要实现数据交换,要交换的内容不是很多,而且是一成不变的(至少在可预计的将来,比如5-10年内不会变),通过写代码来实现也不失为一个可选项,毕竟采用ESB需要购买工具不是。
三、ESB内置各种接入组件和接入协议,做应用集成整合不需要应用系统原厂商支持
这个认识误区可能更具普遍性。很多人会问,你们的ESB不是可以跟各种数据库、各种协议都方便的接入吗,不是不用关心是采用什么开发语言吗,为什么还需要应用系统原厂商提供支持?首先,ESB确实可以实现跟各种数据库、各种协议方便接入,也确实不关心应用系统采用什么开发语言,但是ESB要实现对不同应用的接入,还需要这些应用系统提供接入的接口,举例来说,有A系统,ESB需要将A应用接入,把其中的某些数据提供给另外的应用使用,那这些数据ESB怎么获取到呢,总的来说无非两种方式,一种直接到数据库里取,另外一种是跟应用做接口,从接口取;如果是从数据库里取,是不是需要知道这个应用的相关表的结构和业务含义?是不是需要应用数据库对ESB放开读取权限?这些没有应用原厂商支持怎么做到?如果是跟应用做接口,那应用有没有现成的接口,如果没有是不是要开发一个接口,开发接口是不是也需要应用原厂商来做?这还只是从系统里取数据的情况,如果要往某系统里写入某些数据,是不是更需要原厂商提供接口(往应用里写数不推荐直接操作库表的方式)?所以,虽然ESB具备了开放强大的接入能力,在做应用集成时,离开了原厂商的支持,也是无法开展工作的,至少是很难开展工作。
分享到:
相关推荐
最后,《面向ESB的体系结构:一种错误的采用SOA的方式》可能讨论了一种常见的误解,即认为ESB是实施SOA的唯一途径。虽然ESB在很多场景下是有效的,但并非所有SOA项目都必须依赖ESB,有时过度依赖ESB可能会引入额外的...
在"FAQ.rar"中,可能包含了IBM WMB、WSRR、SOA和ESB使用过程中遇到的常见问题及其解答,这可以帮助开发者解决实际工作中的问题,提高工作效率。而"JavaAPI.rar"则可能包含详细的Java API文档和示例代码,帮助开发者...
### ESB原理及Mule ESB实践 #### ESB(Enterprise Service Bus)原理概述 **ESB**(企业服务总线)是SOA(面向服务架构)架构中的关键组件之一,用于实现服务间的智能集成与管理。其核心作用在于简化不同系统间的...
### 关于ESB的一些概念的介绍 #### 一、引言 随着企业级应用的日益复杂,企业服务总线(Enterprise Service Bus,简称ESB)作为一种集成架构模式,近年来受到越来越多的关注。它不仅成为了企业客户的关注焦点,也...
常见的开源ESB产品包括Apache CXF、MuleSoft Anypoint、IBM WebSphere ESB等。这些产品提供了丰富的API和工具,便于开发和部署ESB解决方案。 **源码分析:** 在深入理解ESB工作原理时,源码分析是重要的一步。这...
Enterprise Service Bus (ESB) 技术是一种关键的中间件解决方案,特别适用于构建和整合分布式企业应用。ESB 的核心理念在于提供一个平台,使得不同的服务能够高效、安全地进行交互,实现服务导向架构(Service-...
**ESB(Enterprise Service Bus)** 是企业服务总线,是一种中间件,旨在促进不同系统间的集成和通信。它提供了一种方式,使得各种应用程序和服务能够通过标准接口进行交互,而无需了解彼此的具体实现细节。ESB的...
常见服务总线ESB技术的简要与学习
【IBM ESB 介绍(IBM ESB Story)】 在IT行业中,企业服务总线(Enterprise Service Bus,简称ESB)是一种关键的中间件技术,它为企业的应用集成提供了灵活、可扩展的架构。IBM作为业界领先的技术提供商,拥有两款...
《深入解析Mule ESB源码》 Mule ESB(Enterprise Service Bus,企业服务总线)是一款开源的集成平台,旨在简化企业级应用之间的数据交互。本文将围绕Mule ESB的源码进行深入探讨,揭示其核心设计理念与工作原理。 ...
2. **服务交互**:《JBoss_ESB学习笔记7——第六个ESB应用Http_Gateway.doc》讲解了HTTP网关的应用,这是ESB中常见的服务接入方式,通过HTTP协议与其他系统进行通信,实现Web服务的消费和提供。 3. **自定义操作**...
此外,书中还包含了大量的示例代码和实践案例,这些实例涵盖了常见的集成场景,如Web服务调用、数据库访问、文件传输等,旨在帮助读者快速上手并掌握JBoss ESB的使用技巧。同时,该书还介绍了如何进行性能优化和故障...
**C# ESB 分布式处理技术 Remote** 在软件开发中,企业服务总线(Enterprise Service Bus,ESB)是一种架构模式,它提供了一种在分布式系统中集成和交互服务的方式。C#中的Remote技术是.NET框架提供的一个关键组件...
1. "ejb3.0实例教程.pdf":这是一个关于EJB3.0的实例教程,EJB3.0是Java平台上的企业级组件模型,用于构建可扩展、高性能和事务处理的服务器端应用程序。EJB3.0引入了许多简化开发的特性,如注解驱动的编程模型,...
ESB(企业服务总线)是面向服务体系架构(SOA)发展而来的,它将传统中间件技术与XML、Web服务等新兴技术相结合。ESB在企业中扮演着基础的连接中枢角色,是构成企业神经系统的必不缺少的组件。它改变了传统的软件...
**ESB.NET架构方案** 企业服务总线(Enterprise Service Bus,ESB)是一种软件架构模式,用于构建松散耦合、灵活的企业级应用系统。它作为企业内部不同系统间通信的桥梁,允许服务消费者和服务提供者之间进行高效、...
ESB 的简介和优点 ESB(Enterprise Service Bus)是指一种面向服务架构(SOA)中,用于集成多个应用系统和服务的总线式架构,它提供了一个通用的接口,用于连接和集成不同的应用系统和服务,使得不同系统之间可以...
综上所述,《OpenSourceESBsInAction》不仅为读者提供了关于开源ESB产品的全面理解,还提供了实践操作的具体指导。无论是对于ESB理论的学习者,还是希望实施或优化集成项目的工程师,这本书都是宝贵的参考资料。通过...
一、Jboss ESB的简介 1、 什么是ESB。 ESB的全称是Enterprise Service Bus,即企业服务总线。ESB是过去消息中间件的发展,ESB采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放...