消息中间件原理与实现.pdf
文本预览下载声明
消息中间件原理与实现
桂勇哲
胡栋梁
穆斌
摘要:
现今,越来越多的企业面临着各种各样的数据集成和系统整合,CORBA、DCOM 、
RMI 等 RPC 中间件技术也应运而生,但由于采用RPC 同 步处理技术,在性能、健壮性、
可扩展性上都存在着诸多缺点。而基于消息的异步处理模型采用非阻塞的调用特性,发送者
将消息发送给消息服务器,消息服务器在合适的时候再将消息转发给接收者;发送和接收是
异步的,发送者无需等待,二者的生命周期也可以不必相同,而且发送者可以将消息间接传
给多个接收者,大大提 高了程序的性能、可扩展性及健壮性,这使得异步处理模型在分布
式应用上比起同步处理模型更具有吸引力。
本文首先介绍了消息中间件的原理,然后实现消息中间件的一些最重要的功能, 并
说明了实现方法,以及相应功能的应用,最后介绍消息中间件还可以添加哪些重要性质,以
更好的进行消息服务,保证消息的一致异步有效的技术。
关键字:消息中间件,实现,点对点,发布/订阅,持久消息
一、中间件简介
1.1 中间件的定义
中间件(middleware)是基础软件的一大类,属于可复用的软件范畴。中间件在操作系
统软件,网络和数据库之上,应用软件之下,总的作用是为处于自己上层的应用软件提供运
行于开发的环境,帮助用户灵活、高效的开发和集成复杂的应用软件。
中间件是位于平台(硬件和操作系统)和应用之间的通用服务,这些服务具有标准的程
序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实
现。
也许很难给中间件一个严格的定义,但中间件应具有如下的一些特点:
满足大量应用的需要
运行于多种硬件和OS平台
支持分布计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互
支持标准的协议
支持标准的接口
IDC 对中间件的定义为:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这
种软件在不同的技术之间共享资源,中间件定位于客户机服务器的操作系统之上,管理计算
机资源和网络通信。
因而中间件是指一类软件,是基于分布式处理的软件,最突出的特点是其网络通信功
能。也可认为中间件是位于平台和应用之间的通用服务,这些服务具有标准的程序接口和协
议。针对不同的操作系统和硬件平台,可以有符合接口和协议的多种实现。
1.2 中间件的分类
按照 IDC 的分类方法,中间件可分为六类:
1) 终端仿真/屏幕转换
2) 数据访问中间件(UDA )
3) 远程过程调用中间件(RPC )
4) 消息中间件(MOM )
5) 交易中间件(TPM )
6) 对象中间件
在实际应用中,一般将中间件分为两大类:一类是底层 中间件,用于支撑单个应用系统或
解决一类问题,包括交易中间件、应用服务器、消息中间件、数据访问中间件等;另一类是
高层中间件,更多的用于系统整合,包 括企业应用集成中间件、工作流中间件、门户中间
件等,他们通常会与多个应用系统打交道,在系统中层次较高,并大多基于前一类的底层中
间件运行。
二、面向消息的中间件
2.1 消息中间件的功能
面向消息的中间件:
MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交 流,并基于数据通
信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进
程间的通信,并支持多通讯协议、语言、应用程序、硬 件和软件平台。目前流行的MOM中
间件产品有IBM的MQSeries、BEA的MessageQ等。
主要特点:
通讯程序可在不同的时间运行 程序不在网络上直接相互通话,而是间接地将消息放
入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列
时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消
息。 对应用程序的结构没有约束 在复杂的应用场
显示全部