MQ 消息中间件:
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。
执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
面向消息的中间件 <百度百科:中间件>
MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。消息传递和排队技术有以下三个主要特点:
1、通讯程序可在不同的时间运行
程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。
2、对应用程序的结构没有约束
在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。
3、程序与网络复杂性相隔离
程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。
IBM 消息中间件概述:
MQ 消息中间件为用户和应用开发人员提供了一种直接,简单的手段以实现应用系统在不同操作系统平台之间稳定可靠地传递,交换重要的数据和信息,确保消息不丢失/不复传。 MQ 消息传输产品和企业 IT 应用的关系,就如同电子邮件和人一样,是 SOA 时代企业 IT 应用之间相互传递消息的最重要工具。但是,与由于网络原因而经常丢失消息的脆弱的电子邮件系统不同的是,MQ 消息中间件强大而稳定,永远能够确保每一个字节的消息都能够被正确地传送到目的应用之中。
---------------------------------------------------------------------------
消息中间件有点像操作系统的消息队列,可以在你的多个数据中心间进行数据的传递。
您使用消息中间件的时候,分以下几个步骤,
1, 铺设消息管道,就是定义多个队列,A到B,B到C,A到F;
2,利用其提供的简单接口编写数据到消息包的处理,把你的数据打成消息数据包,把消息数据包还原成你的完整数据。
3,根据数据内容把不同的消息压入到不同的队列,送往不同的目的地
MQ的操作程序:
第一步是让应用程序与队列管理器连接。它通过 MQConnect 调用来进行此连接。
下一步使用 MQOpen 调用为输出打开一个队列。
然后应用程序使用 MQPut 调用将其数据放到队列上。
要接收数据,应用程序调用 MQOpen 调用打开输入队列。
应用程序使用 MQGet 调用从队列上接收数据。
中间件的简单的例子:
有这样一个需求,sap有一组hr的相关信息,比如姓名,工号等等要求显示到一个portal上面,供user使用 查看信息。
数据怎么从sap到portal呢,可能的一种情况是,使用一个中间件,通过rfc或者idoc把相关信息从sap取出来,整合以后在通过jdbc插入到 portal的后台db里去。
这就是一个中间件参与数据整合 协同的简单过程。这样一个过程是由中间件完成的。所以简单的说,中间件就是在异构系统间起数据传输,整合作用的一个软件。
以刚才的例子为例,看看什么是消息中间件:
如果是消息中间件,就要把刚才例子中的hr数据看成一个消息,具体的数据结构可以根据需要和开发平台自己来定义。把从rfc出来的数据,先形成一个消息,然后发布到一个消息队列里面,然后再通过一定规则去取这个消息解析再使用jdbc插入数据库
这个过程可以是一对一,以可以是多对多。也许上面这个简单的例子并不能体现消息中间件的优点,但是在复杂的网络环境下,例如多个通讯方式,多个业务系统之间进行消息交互,他的优点是显而易见的。