| | | | | | | [文章信息] | | | 作者: | 陈小艳 陈 刚 | | 时间: | 2005-05-23 | | 出处: | 计算机与信息技术 | | 责任编辑: | 方舟 | |
| [文章导读] | | | 本文通过图示阐述了WebSphere MQ在进行通信时所采用的通信机制 | |
| |
|
| | | |
|
|
|
|
|
MQ应用于客户机/服务器模式或者分布式系统。应用程序可以工作在一个工作站上,也可以运行在不同平台的不同机器上。应用程序具有很好的移植性,能够轻松的从一个系统或者平台转移到另一个系统或者平台。程序的编写支持多种语言,包括Java。同样的,队列也适合许多不同的平台。
因为MQ通过队列进行通信,所以它可以被看成是使用间接的程序--程序方式通信。程序员可以不指定接收消息的目标程序的名称,但是可以指定接收消息的队列的名称,每一个队列和一个程序相联系,一个程序可以有一个或者多个接收队列,而且可以有多个输出队列。输出队列包含着很多信息,这些信息可以是用来供服务器处理的,也可以是返还给发送消息的客户端的回复信息。
使用MQ进行通信时程序员不必担心目标程序是否可用或是否繁忙,甚至不用考虑目标机器是否正常运行或者是否连接上了。程序员发送消息给目标队列,而目标队列是和目标程序相联系的,目标程序可能目前不可用。不用担心,MQ能够解决这种情况,如果需要,它甚至能够启动目标程序。
如果目标程序不可用,消息会停留在队列中,稍后再被处理。队列可以在发送消息的机器中,也可以在接收消息的机器中,这取决于两台机器的两个系统之间是否能够建立连接。应用程序可以整天运行,也可以采用激发机制,所谓激发,就是指当有一条或数条消息到达队列时自动启动某个程序。
 图2 消息和队列1 | 图2说明了两个应用程序A和B之间是如何进行通信的。可以看到有两个队列,各队列里面存放着要接收或者发送的消息。
程序和队列之间的方形图表示MQI(消息队列接口API)。程序就是使用MQI来和MQ的实时程序--队列管理器进行通信的。
简单地说:MQ的核心部分是一个能够存储消息的服务器及一组能够转发消息的进程,分布在多个系统(异地、异种平台)上的应用程序依靠这种机制来交换要处理的数据2。队列管理器作为一个服务器,把消息以可靠的方式存储,即使机器发生故障重新启动后依然不会丢失,其可靠级别与数据库服务器相等。队列管理器间通过特别的交换机制保证数据不会因为底层网络的故障而丢失,并且能够在多点间接力式地传送。
JMS是J2EE中的一个接口标准,为JAVA程序定义了一种标准的使用消息交换数据的编程方式,但JMS本身并不能实现消息的传送,一个调用JMS的应用程序发出消息调用后,具体的消息传送工作还需要底层的消息中间件来执行传送工作。JMS的作用就是使应用程序开发人员不需要关心底层的传送软件的种类,同一段程序,既可以用MQ传送,也可以用其他消息中间件来传送,如WEBLOGIC内含的具有消息中间件功能的部件。
|
|
|
|
|
|
|
|