消息传输中间件消息中间件(MOM)是一种独立的系统软件或服务程序,分布式应用系统借助这种软件在不同的技术之间共享资源,管理计算资源和网络通讯。它在计算机系统中是一个关键软件,能实现应用的互连和互操作性,且保证系统安全、可靠、高效地运行。MOM位于用户应用和操作系统及网络软件之间,它为应用提供了公用的通信手段,并且独立于网络和操作系统。中间件简化了应用之间数据的传输,屏蔽底层异构操作系统和网络平台,为开发者提供一致的通讯标准和应用程序接口,当应用程序中嵌入其函数调用,它便可利用其运行的特定操作系统和网络环境的功能,为应用执行通信功能。消息中间件有很多种,其中IBM消息中间件MQ以其独特的安全机制、可扩展性和跨平台性,以及强大的事务处理能力和消息通讯能力,成为消息中间件产品的佼佼者。
MQ(消息中间件的一种,由IBM公司开发)的基本原理如图2所示。
首先来看本地通讯的情况,应用程序A和应用程序B运行于同一系统A,它们之间可以借助消息队列技术进行彼此的通讯:应用程序A向队列1发送一条信息,而当应用程序B需要时就可以得到该信息。
其次是远程通讯的情况,如果信息传输的目标改为在系统B上的应用程序C,这种变化不会对应用程序A产生影响,应用程序A向队列2发送一条信息,系统A的MQ发现消息队列2所指向的目的队列实际上位于系统B,它将信息放到本地的一个特殊队列——传输队列(Transmission Queue)。建立一条从系统A到系统B的消息通道,消息通道代理将从传输队列中读取消息,并传递这条信息到系统B,然后等待确认。只有MQ接到系统B成功收到信息的确认之后,它才从传输队列中真正将该信息删除。如果通讯线路不通,或系统B不在运行,信息会留在传输队列中,直到被成功地传送到目的地。这是MQ最基本、最重要的技术,能确保信息传输,并且是一次且仅一次(once and only once)的传递。通过消息传输中间件MQ就能实现服务器之间的通信。