为什么要用消息中间件?什么时候用?

日期: 2013-10-10 作者:Todd Biske翻译:boxi 来源:TechTarget中国 英文

消息中间件的主要类型和用户案例有哪些?

在众多技术领域里面,中间件往往是厨房的洗涤盆。正如它的名字一样,中间件一开始是用来描述“在(用户和遗留系统/后端办公系统,一般是大型主机)中间”插入的技术。消息中间件属于子领域,严格专注于系统间信息的流动,不会处理来自源系统和接收系统的信息。

随着时间的推移,尽管对它的看法已经从遗留系统集成的一员转变为任两个系统之间的集成,但越来越多的东西被集中到中间件领域。同样地,中间件领域开始变得更加复杂精细。现在的中间件已经不仅仅是哑管道了,也在朝着对两个系统之间的消息进行处理的方向扩张。因此,我们先试着对今天的中间件进行一下分类吧。

通讯和消息中间件

我把这个名称扩大的原因是我们需要有一个类别不仅能处理基于主题队列的交互,也能处理正规的基于TCP/IP及HTTP协议的消息传递。其原因是基于硬件的产品越来越多,这些产品能执行更智能的动作,令传统网络基础设施和基于软件的消息传递系统的界限越来越模糊。此外,随着虚拟化和软件定义网络使用的增加,基于软件的产品也向基础设施层蔓延。所以,用一个公共组来涵括这个领域,而不是把你的网络团队和中间件团队引向相抵触的策略,这是有好处的。

这个领域内有传统的消息中间件,如IBM的WebSphere MQ,Tibco的消息传递产品以及许多Java Messaging Service提供商。这些都是正规的基于主题和基于队列的交互,非常适合于同步型的请求—响应式的交互,尽管他们也能跟在现代TCP/IP世界里表现不佳的大型主机和遗留系统很好地对接。异步处理在涉及人工和自动活动的业务流程协调中可以扮演关键角色,因此消息中间件的确是大多数企业的一个基础要素。

在TCP/IP这边的东西就是通信中间件了。我只会把更智能的网络化方面的东西涵括加进来。包括了负载均衡器,网络优化设备和防火墙。这些产品能频繁地更深度分析网络包头以外的东西,并对消息流量运用更智能的决策。

工作流及集成中间件

应用服务器伴随着Web而流行,今天仍在用,尽管可能在形式上无法与全盛期的J2EE(现在的Java EE)相比。简而言之,这些属于通用型的系统,几乎可以开发任何类型的应用。许多这样的系统都包含有允许用户开发充当其他系统间的集成层系统库,但其主要目的是用于开发新东西。

接下来,我们还有更有针对性的集成平台。其对开发的意义不同于通用目的的平台。这里的意图是跟了解如何与不同系统对话的适配器打交道,专注于开发将适配器连接到一起的粘合剂。

尽管核心消息中间件为通讯建立了管道,这些系统的目的则是处理集成的信息方面:对消息格式进行转换,从多个来源聚合数据,协调多个系统间的交互。这些系统从本质上看交易性更强,主要是处理无状态交互及可能源自最终用户的那些。像企业应用集成工具、企业服务总线、BPEL引擎甚至集成设施等均可归为这一类型。

工作流系统的针对性更强。工作流系统增加的主要功能是处理状态。涉及到与许多系统(也可能包括人)的交互的那些长期运行的流程。

工作流与传统批处理系统之间可能会存在重合。这些系统的核心关注是协调并跟踪长期运行流程中的东西。工作流系统自身不能处理任何流程,相反,它扮演的是人、集成平台获处理所需跟踪单元的通用目的计算平台的全权代表角色。

数据中间件

任何一个大型企业都需要把大量的数据在不同的数据容器(可能还包括合作伙伴公司)间移来移去。你可能会说如果能有一个地方存放数据供各方使用就好了,但情况并非如此。在数据中间件领域,我要提到的两个东西是析取、转换、加载(ETL)技术及变化数据捕捉(CDC)技术。

ETL技术就是把数据大块大块地在两个数据系统之间搬来搬去,其步骤有如下3步:

  1. 从源系统析取数据;
  2. 转换数据格式为目的系统所需;
  3. 加载数据到目的系统中。

集成中间件跟它肯定存在功能重叠的地方,尤其是处理比批处理实时性更强的集成时。许多集成服务只是把数据按一种格式取出,再转换到另一种,然后交给目的系统进行处理。这听起来很像ETL,对吧?共同的差别是ETL工具一般与集成两端的数据容器打交道,而集成中间件则与流程系统打交道。

CDC技术则是ETL之前要经历的步骤。为了知道需要析取哪些数据并加载进墓地系统,你需要知道什么东西发生了变化。CDC工具会在一段时间后捕捉这一信息。

希望本文对你整理公司所用技术时能起到一个很好地了解概括和可能术语的作用。记住,供应商是按照功能来卖产品的,而那些产品也许并不能清晰地归到一个篮子里面。重要的是用一种对你的公司有意义的方式整理东西,这样才能帮助引导你选出所需的合适产品组合。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

翻译

boxi
boxi

相关推荐