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