洪翊飞个人资料:基于WebSphere MQ的收发消息程序

来源:百度文库 编辑:中财网 时间:2024/05/04 12:49:16
 
作者:佚名    文章来源:不详    点击数: 10    更新时间:2006-4-29    
1 2 3 下一页
摘 要:本文从以下几个方面简述了IBM公司的商业通信中间件WebSphere MQ,首先解释了消息、队列和队列管理器的意义,在此基础上通过图示阐述了WebSphere MQ在进行通信时所采用的通信机制,以及此通信机制和通信的各应用程序之间的关系。接着通过一个实例来说明在使用Java编写程序时,如何向队列写入消息。最后简单的介绍了一下MQ的优点及其发展前景。
关键词:通信中间件,队列,队列管理器,MQ
WebSphere MQ(以下简称MQ)是IBM公司享有盛誉的商业通信中间件。它被世界范围的许多大型企业广泛采用。它提供一个具有工业标准、安全、可靠的消息传输系统。MQ基本由一个消息传输系统和一个应用程序接口组成。应用程序使用MQ的API(消息队列接口MQI)函数和队列管理器(MQ运行时刻的程序)进行通信。队列管理器在工作时,它需要用到对象如队列和通道。同时,队列管理器也是一个对象。图1所示为MQ应用程序在运行时刻的图示。

图1 运行时刻的MQ1
消息是一个信息单元,它由两部分组成:从一个程序发往另外一个程序的应用程序数据以及消息描述符或者消息头。
消息描述符用来标识消息(message ID),同时它还包括一些控制信息,如消息类型,消息过期的时间,消息优先级等等。
一条消息的最大长度为100MB,默认的最大消息长度为4MB。消息的最大长度依赖于MQ的版本。MQ第五版支持消息的最大长度为100MB。
队列是一个安全的存储消息的地方,消息的存储一般是有顺序的。因为消息存放在队列中,所以应用程序可以以不同的速度、在不同的时间、不同的地点相互独立的运行。
消息队列通信是应用程序之间进行通信的一种方式。应用程序在没有专有连接或者物理连接的情况下,能够通过向队列写入或读出消息进行通信,也即程序之间不是通过互相调用,而是通过向队列发送数据来进行通信。在这种通信方式下,应用程序不需要具有并发性。对于异步的消息通信,程序发送方不需要专门等待已发消息的回复,而是可以处理下一个事件。与之相对的是,同步消息通信在处理下一个事件之前必须等待已发消息的回复。对于用户来说,底层的协议是透明的。用户只需要考虑会话的程序或数据入口。