IBMMQSeries通信中间件技术及应用简介

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IBMMQSeries通信中间件技术及应用简介摘要:IBMMQSeries通信中间件概念和技术介绍,并结合实际应用场

景简要说明。

关键词:MQ;中间件;队列

YANGChao

(GuangdongPostalInformationTechnologyBureauDevelopmentDepar tmentofGuangdong,Guangzhou510898,China)

Keywords:MQ;middleware;queue

IBMMQSeries是IBM的商业通讯中间键。IBMMQSeries提供一个具有

工业标准、安全、可靠的信息传输系统。它以消息为载体,以队列为媒介

进行本地、远程以及跨平台的信息传递。随着计算机网络技术的发展和分

布式计算机系统的应用,信息系统间的数据交换已经成为不可或缺的组成

部分,商业中间键在此基础上应运而生,它既可以保证消息传输的可靠性、高效率和安全性,同时可以替代系统通信模块,进而大幅度减少系统的开

发周期,使设计人员将精力更多的放到业务逻辑和数据逻辑的设计上。该

文就MQSeries的工作原理和在广东省的业务应用做一个简单的介绍。

1IBMMQSeries工作原理

MQSeries为程序提供了一种安全可靠的通信模式,支持本地应用和

分布应用,本地应用可以提供一台物理主机上的不同应用程序之间相互通信;分布应用可以提供联网的主机上不同应用程序之间相互通信。MQSeries为应用程序提供了一种可靠的通信机制,不管是本地应用还是

分布应用,参与通信的应用程序之间无需关注网络通信模块的实现,发送

方将数据组装成消息,放入消息队列,接收方从消息队列中获取消息,从

而完成一次通信过程。队列管理器负责MQSeries内部对象的管理、通信

链路的维护以及消息传递的可靠性和完整性。

MQSeries的消息传递模式见图1:

程序A要和程序B需要交换数据,程序A把数据封装成一个消息并放

入队列1中,程序B从队列1中以先进先出的顺序取出消息,处理完成后

将应答消息放入队列2中,程序A同样以先进先出的顺序从队列2中取出

应答消息,从而完成了一次数据交换。

MQSeries本地应用模式:

和本地应用情况不同的是:这里需要两个队列管理器QM1和QM2协同

工作,消息从本地系统(LocalSystem)上放入本地的队列管理器QM1的

远程队列(RemoteQueue),远程队列是一个虚拟队列,实际上消息是放

在本地的传输队列(TransmissionQueue)中,QM1将消息通过通道(MessageChannel)传输到远程系统上的队列管理器QM2的本地队列中,

远程系统(RemoteSystem)就可以从QM2的目的队列(DestinationQueue)中接收来自本地系统的消息了,这样就完成了本地系统和远程系统的一次

消息交互。由于MQ是跨平台中间件,本地和远程可以是两种不同的操作

系统。

在MQSeries的支持下,应用程序之间交换数据和传统方式有了很大

的不同,通信过程变得更为简单和易于移植,无需关注对方应用的部署位置,队列管理器负责消息的本地存储和网络传递。

2MQSeries组成模块

1)队列管理器:管理所有消息传递要素,实现消息的网络层传递,保证消息的传递安全可靠。

2)队列:存放应用程序之间传递的消息,消息以先进先出的顺序被放入和取出,队列分为本地队列和远程队列两种。

3)本地队列:它是一个实体队列,可以最大程度地保证放入队列的消息的完整性,即使系统断电消息也不会丢失。

4)远程队列:它是一个映射队列,定义了分布应用场景下远端队列管理器中的接收队列。

5)传输队列:它是一个本地队列,和远程队列绑定,保存了将要发送到远端的消息。

6)死信队列:它是一个本地队列,用于存放异常条件下无法传递的消息。

7)发送/接收通道:在两个不同系统上队列管理器之间的专用数据传输链路,和远程队列绑定,消息通过通道进行系统间相互传递,通道计数器为当前通道上传递的消息个数。

8)应用程序接口:应用程序或信息系统操作MQSeries模块的函数API接口。

分布应用模式下IBMMQSeries消息的传递过程如下:

1)发送消息时:

本地发送队列→本地传输队列→本地发送通道→对方接收通道→对方接收队列。

2)接收消息时:

对方发送队列→对方传输队列→对方发送通道→本地接收通道→本地

接收队列。

IBMMQSeries可以通过将文件拆分成消息一条条发送出去,对方收到

消息后将消息内容写入目的文件,从而实现文件的发送过程,这个过程需

要自己编写库函数,将库函数配置到本地发送通道和对方接收通道的“消

息出口名称”属性中,MQ自动进行调用。

3MQSeriesMQI简介

MQSeries提供了一套应用开发接口MQI给应用程序调用。图4显示

了MQI的调用流程。

1)MQCONN建立和队列管理器的连接,调用成功后返回一个操作句柄,通过句柄可以进行队列的操作。

2)MQOPEN打开一个队列,队列必须是调用MQCONN所连接的队列管

理器管辖的范围,队列可以是本地队列和远程队列。

3)调用MQPUT向队列中存放消息;调用MQGET从队列中获取消息;

调用MQINQ获得当前打开队列的属性;调用MQSET改变当前打开队列的属性。

4)MQPUT1是一个操作集合,它顺序执行了三个函数调用,首先调用MQOPEN打开一个队列,然后调用MQPUT向队列中放入消息,最后调用MQCLOSE关闭当前队列。

5)MQCLOSE关闭已打开队列

6)MQDISC断开和当前队列管理器的连接。

相关文档
最新文档