今天和你们聊聊有关企业EAI,ESB和SOA这三者之间的关系.固然由于全凭我的工做经验对着三者的理解若是有什不对的还请各位通路中人一块探讨.网络
首先说实话我的感受这三个概念(貌似说概念也不是特别准确)仍是蛮高大上的,都是针对如今企业信息化过程当中遇到的瓶颈中的一种解决方案,都是特别实用的,特别是针对大中型制造生产企业.架构
如今分开来讲一下,就先按照EAI-àESB--àSOA这个顺序来讲.
运维
EAI:异步
如今我以为大多数IT工做者对企业EAI并不陌生,什么是EAI???,其实EAI就是解决各个应用软件之间的互联、互相传输数据的一种解决方案。为何要出现这种解决方案?答案就是在企业的信息化发展过程当中出现了各类各样的应用软件好比ERP、PLM、财物系统、CRM等等,这样就出现了每个软件都是独立的,这样企业就造成了信息孤岛!分布式
接下来咱们看看企业EAI解决方案如图所示,很简单就是把各个软件链接起来让他们可以相互交互。ide
说到这里我们再说说一下目前市场上能够实现该解决方案的产品IBM MQ、Biztalk(该软件到目前的版本不仅仅能实现EAI、还能够实现ESB、SOA)等等。我这里就选了两个部署简单、功能强大,运维简单的产品。其余那些乱七八糟的就不列举了。spa
MQ比较熟悉的可能知道它是经过Client和Server进行各个系统之间相互传递数据的,各个系统之间的业务逻辑就实现不了,仅仅能进行数据的传递!固然和Biztalk 相比实现EAI,MQ的运维和部署说实话很繁琐,这里我就要吐曹一下IBM的官方文档——太简洁!!!中间件
ESB:blog
接下来我们聊聊ESB也就是企业服务总线。这个说实话就很高达上了,相比EAI要高大不少而且它自己能够包含EAI功能。ESB就是传统的中间件和XML、WEB服务等技术结合的产物。ESB提供了网络中最基本的链接中枢,也是企业神经系统的必要元素,ESB 的出现改变了现有的传统企业架构,能够提供更好的解决方案相比以前的EAI。同时它还能够消除不一样应用之间的技术差别,让不一样的应用协调运做。ESB采用了“总线”这样一种模式来管理和简化应用之间的集成拓扑结构,以广为接受的开放标准为基础来支持应用之间在消息、事件和服务级别上动态的互连互通,是一种在松散耦合的服务和应用之间标准的集成方式。它能够做用于:事件
①面向服务的架构—分布式的应用由可重用的服务组成;
②面向消息的架构—应用之间经过ESB发送和接受消息;
③事件驱动的架构—应用之间异步地产生和接收消息。
因此总结一下ESB相比EAI它变得更加松散耦合,并且加入了业务流程、数据格式转换、消息处理的方式增多(基于内容和规则的消息路由、消息过滤、消息合并和消息的从新排序)
对于ESB典型的表明就是微软的Biztalk。
SOA:
其实我的我对SOA的理解就是SOA=ESB+EAI的概念,SOA的产品其实就是ESB。