SOA,ESB和EAI之间的联系和区别

今天和大家聊聊有关企业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

时间: 2024-10-27 06:52:27

SOA,ESB和EAI之间的联系和区别的相关文章

UNIX网络编程-recv、send、read、write之间的联系与区别

1.read ----------------------------------------------------------------------- #include <unistd.h> ssize_t read(int fd, void *buf, size_t nbyte); ----------------------------------------------------------------------- read()函数是负责从fd中读取内容.当读成功时,read(

&lt;Java中的继承和组合之间的联系和区别&gt;

1 //Java中的继承和组合之间的联系和区别 2 //本例是继承 3 4 class Animal 5 { 6 private void beat() 7 { 8 System.out.println("心胀跳动..."); 9 } 10 public void breath() 11 { 12 beat(); 13 System.out.println("吸一口气,吐一口气,呼吸中..."); 14 } 15 } 16 //继承Animal,直接复用父类的bre

JS在IE和FireFox之间常用函数的区别小结

1.event.srcElement 复制代码 代码如下: //srcElement只能在IE下使用target是FireFox使用的,下面是兼容性写法 var obj = e.srcElement ? e.srcElement : e.target; 2.e.originalEvent.x 复制代码 代码如下: // e.originalEvent.x 只能在IE下使用,FireFox只能使用e.originalEvent.layerX,下面是兼容性写法 var positionX = e.o

Linux发行版及各发行版之间的联系与区别

Linux发行版主要有三个分支:Debian.Slackware.RedHat. (1)Debian:(以社区的方式运作) 1..Ubuntu:基于Debian开发的开源Linux操作系统,主要针对桌面和服务器: 2.Linux Mint:基于Debian和Ubuntu的Linux发行版, 致力于使桌面系统对个人用户每天的工作更易用,更高效, 其目标是提供一种更完整的即刻可用体验. (2)Slackware: 1.suse:基于Slackware二次开发的一款Linux,主要用于商业桌面.服务器

Do you really know what means initialization? “初始化 定义 赋值” 之间的联系与区别

"初始化 定义 赋值" 之间的联系与区别 本来很早之前就想写个blog,说说这三个家伙的区别和联系,三者之间各种联系,很难比较清楚的讲明白,感觉当时好像分析思路还不够"完整".今天遇到别人抛出来的一个问题.根本的问题是和初始化和赋值有关系,于是留下这个blog. #include <stdio.h> struct _ANIBMP { int FirstNumber; int Count; }ANIBMP; ANIBMP Swallow = {4,5};

进程与线程之间的关系和区别 及 CPU调度

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位. 进程和线程的关系: (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程. (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源. (3)处理机分给线程,即真正在处理机上运行的是线程. (4)线程在执行过程中,需要协作同步.不同进程的线程间要利用消息通信的办法实现同步.

C# 多线程、异步、同步之间的联系与区别

C# 多线程.异步.同步之间的联系与区别 假设这样一个例子: 我想炒五样菜,但是只有两个炉子可以用,只能同时炒两样. 炉子就是线程,那同步跟异步怎么解释比较好? 同时炒是不是算异步? 如果是的话,那什么情况算同步? 其结果是: 假如5个菜分别是A,B,C,D,E 你有两个炉子 只能同时炒A跟B 所以剩下的CDE只能等AB炒完了才能开始 这个等待就是同步 我们叫做阻塞 即这个时候你只能做AB这两个菜 假如你还有一台咖啡机, 你在炒AB的时候 把咖啡豆跟水放到咖啡机里打开开关 你就可以不用去管它了我

常见Linux的发行版有哪些?并描述不同发行版之间的联系与区别。

一.按系列罗列linux的发行版,并描述不同发行版之间的联系和区别 Linux发行版=Linux内核+商业软件 linux的发行版: RedHat.Fedora.suse.红旗.debian.Ubuntu.centos 不同发行版之间的联系和区别: Red Hat ,是redhat自己的发行的企业版,是redhat的一个重要节点. Fedore是一款基于linux的操作系统,也是一组维持计算机正常运行的软件集合.由红帽公司赞助. suse linux,针对个人用户. 红旗linux的发行版,包括

常见的Linux发行版本及不同发行版本之间的联系和区别

Linux的发行版本主要有三大分支: slackware(1)SUSE Linux Enterprise Server (SLES)商业版的SUSE Linux,主要用于服务器(2)OpenSuse社区版的SUSE Linux,主要用于桌面,也可用于服务器 debian(1)Ubuntu开源的免费Linux,主要针对桌面用户,深受开发人员喜爱.也有针对服务器的Ubuntu server(2)mint基于Debian和Ubuntu开发的开源免费Linux,功能强大且易用的桌面级操作系统 redha