在本文中,ESB相关技术概念和术语。其他需要了解的入门的基础知识,并介绍了一些初步的了解ESB产品。因为它是一个新的ESB。将自己的学习内容与过程,记录下来!
愿在这里与大家分享一下,共同进步与提高!
【转载使用,请注明出处:http://blog.csdn.net/mahoking】
EAI
企业应用集成(Enterprise Application Integration):是完毕在组织内、外的各种异构系统、应用和数据源之间共享、交换信息、协作的途径。方法学,标准和技术。
所连接的应用包含各种电子商务系统,企业资源规划系统,客户关系管理系统。供应链管理系统。办公自己主动化系统,数据库系统。数据仓库等。EAI的原则是集成多个系统并保证各个系统互不干扰。
ESB
企业服务总线(Enterprise Service Bus):由中间件基础设施产品技术实现的、通过事件驱动和基于xml消息引擎。为复杂的面向服务的架构提供软件架构的构造物。
企业服务总线提供可靠消息传输。服务接入。协议转换,数据格式转换。基于内容的路由等功能,屏蔽了服务的物理位置,协议和数据格式。
MQ
消息队列(Message Queue):是进行通信的中间件产品。IBM的这个产品叫MQSeries,如今又叫WebShpere MQ。微软也有产品叫MSMQ,可是微软的产品有平台的依赖性,你们都懂得!
(.net)而IBM这方面做得非常不错。多数操作系统下的版本号都有。
MB
MB即WebSphere_Message_Broker。IBM的ESB(Enterprise Service Bus企业服务总线)产品。
MQ与MB介绍
MQ是消息的中间件,MB是ESB产品。
MQ负责在两个系统之间传递消息。这两个系统能够是异构的。处于不同硬件、不同操作系统、用不同语言编写,仅仅须要简单的调用几个MQ的API。就能够互相通讯,你不必考虑底层系统和网络的复杂性。
MQ作为IBM的一个拳头产品。尽管功能看上去非常easy。就是个消息队列,但他却是IBM中间件的核心,也是相比其它厂商(比方BEA)的一个优势。
MQ不仅有非常高的性能,并且对各种平台的支持非常好,差点儿你能想到的硬件和操作系统平台以及编程语言,MQ都有专门的API支持。
但MQ的功能仅限于消息队列。至于应用A发给应用B的消息格式是如何的、能不能被应用B解析,MQ管不了。他仅仅是尽力将消息发到目的地(MQ可以应付多种异常情况。比如网络堵塞、暂时中断等等)。此外。假设应用的数目多了,那互相之间都要建立MQ连接,网络拓扑就成了蜘蛛网了(就好像是最初的电话系统)。因此,我们将网络的星型拓扑引入系统架构中。把一对一的MQ换成一个中心节点。即ESB。MB即是IBM的ESB产品。
MB处于系统的中心,起到一个总线的作用,全部应用都直接连接到MB。而不是应用之间直接互联,这种优点不言而喻,能够极大的减少应用之间的耦合性。由此引出MB的两大核心功能:消息路由和数据转换
由于各个应用都插入到MB上。所以应用A仅仅管把消息丢给MB,MB自己主动依据消息字段、以及业务逻辑。推断要把消息交给谁。这就像路由器一样。依据数据包的头把包路由到对应地址。MB内部的业务逻辑由开发者设定。当然利用MB的Toolkit,编写业务逻辑也很easy:拖一些节点,用箭头把它们连起来,就像是画流程图一样。很形象简单。
再用MB的脚本语言(类似sql的脚本)实现逻辑推断,通俗地说就是推断要走哪个逻辑分支(if...else.....)。
只是各个应用是如何与MB连接的呢?MB提供了三种方式:MQ、文件和web service。
MQ方式即是利用MQ将MB与应用互联。文件方式则是指定某个文件夹,MB会自己主动监视那个文件文件夹,一旦文件有改变则觉得是新的消息到来,MB自己主动读取指定文件的内容。而web service就不用解释了。直接利用web service进行通讯。MB支持这些互联方式也是为了最大化兼容性,特别是对于那些遗留系统或是不支持主流通讯方式的系统。
最后说说一个比較偏门的ESB产品:websphere ESB。听过的人可能不多,由于IBM在中国推广的比較少。这个WESB非常像是MB的精简版,仅仅支持JMS、WS等少数几种J2EE的通讯方式,所以是为J2EE专门准备的。
不像MB,支持数十种平台和通讯方式。比如FTP。甚至非常多你根本没听说过的非常古老的通信协议。这两者的性能相差不少,价格也有三四倍的差距。
更要命的是,原先在WESB上开发的东西,是不能迁移到MB使用的,IBM似乎铁了心要狠狠宰我们,唯一的方法是再买一个MB。然后用MQ把WESB和MB连接起来。各跑各的。
【转载使用。请注明出处:http://blog.csdn.net/mahoking】
版权声明:本文博客原创文章,博客,未经同意,不得转载。