基于WCF搭建的ESB (二)

    技术2025-01-21  15

    EAI的意思就是企业应用整合, 定义参考 http://en.wikipedia.org/wiki/Enterprise_application_integration

    整合可以分成三个层次的整合。

     

    数据层整合 (Data Integration) :也就是数据库整合。具体的数据整合定义可以参考 http://en.wikipedia.org/wiki/Data_integration 这里我不得不说到一个我认为的微小的区别。不管是 EAI还是 ESB,很多人都很讨厌科学家们为什么时常的提出一些相似又让人不好区别的概念,而且我们更愿意相信:这都是炒作!其实我也认为这是商家的炒作。上一节我说我认为EAI=ESB+BPM,也就是流程管理下的ESB就是在做EAI的工作。但说到数据层面的整合,整合和数据交换其实有一定的区别,或者说是强调的重点不同。打个比方(敏捷里有个概念隐喻就相当与打比方,打比方才能把事情说的更通俗易懂):我从A数据库里得到城市信息,B数据库里得到天气信息,C数据库里得到机票信息,稍作处理,然后把这些信息整合起来呈现给客户。这就是一个典型的数据整合。那么数据交换更倾向于,A数据库中某数据的变动后,B数据库中某几项数据产生变动,这也正好是ESB最为擅长的地方。 数据整合的手段 : 触发器是一种比较容易实现的方式,但更适用于点到点的整合,每新加一个整合点,就会导致重新修改一次触发器 ETL:定时的数据抽取 数据库适配器,这应该是我推荐的方式,ESB的数据库适配器(侦听数据库,说白了就是轮训)把变化信息交给ESB,所以不管加多少个整合点,都在ESB端做改动而不用动数据库 应用层整合 (Application/Function/Method Integration) :应用整合, 我们说的基于WCF搭建ESB也就是在说应用的整合(这里的应用不能是传统的CS应用,CS应用是很难做应用整合的,或者说很难做安全的应用整合。这里主要说的是BS或者是基于服务的应用) 如果ESB走的是红线那么我们就是直接进行了数据层面的整合,如果走的是绿线就是正宗的应用整合了。从技术方案上来讲,走红线要容易些,走绿线要难些。从根上直接操作数据库要方便很多,但操作应用系统就要在于应用系统做的有多么的开放了。但是在每个应用都是信息孤岛的前提下,应用整合比数据整合来得要安全。因为对数据库的直接修改并不会将运行中进程里的对象做相应的修改,这种对象数据与数据库数据的不同步会导致不必要的混乱以及日后可能产生的沉重的维护成本。而对应用程序的调用是非常安全的,因为这些API会跟数据库做操作,不然这个应用程序本身就有bug。 展现层整合(Presentation/User Interface Integration) :展现层的整合应该是最难做的整合,涉及到的修改是最多的。有时候干脆就直接做过一个界面以达到把各个系统整合在一起。Portal是一种相对容易的方式,微软的sharepoint portal(我稍微熟悉些,其他的也有等效的功能)可以通过简单的二次开发比较好的实现展现层的整合

    概念我们先说到这里了,接下来正儿八经进入我们的主题,如何基于WCF构建自己的ESB

    最新回复(0)