Message Queue & Message Broker

MQ & MB

Websphere MQ是IBM的商业通讯中间件(Commercial Messaging Middleware)。Websphere MQ提供一个具有工业标准、安全、可靠的消息传输系统。它的功能是控制和管理一个集成的商业应用,使得组成这个商业应用的多个分支程序(模块)之间通过传递消息完成整个工作流程。Websphere MQ基本由一个消息传输系统和一个应用程序接口组成,其资源是消息和队列(Messaging and Queuing)。

Websphere Message Broker是 IBM 应用整合家族的另外一个重要组成部分,基于WebSphere MQ开发,其产品部件如图 1。WebSphere Message Broker采用WebSphere MQ提供的可靠消息服务(不丢失,不复传)在应用系统之间通过基于消息的异步方式集成各应用系统。针对不同系统所处理的消息格式各不相同的特点,WebSphere Message Broker 提供了专门的格式代码转换器(Formatter)在不同的消息格式之间按照预先定义好的转换规则进行自动的格式转换,然后将结果自动路由到目标应用系统。在消息转换的过程中WebSphere Message Broker能够识别XML,C结构,JMS,SOAP等多种消息格式;对消息的各种操作包括消息的来源、消息的目标应用、所期望的消息格式等通过定义各种操作规则(Rules)进行。

Websphere Message Broker中通过Message Flow(消息流)来实现对消息的运算处理、格式转换和路由等功能。每个消息从进入MB开始到从MB中输出,都在一个消息流中进行一步步的处理。消息流由各种消息处理节点(Message Processing Node) 组成,每个消息处理节点可对消息进行某种特定的处理,MB为消息处理提供了丰富的内置节点,主要包括数据的输入与输出、检查和过滤、触发和初始化、消息处理、外部数据库操作、决策和路径选择、错误处理和跟踪以及其他类型的消息处理节点,通过这些内置节点能够实现丰富的处理功能。

基本概念

消息:消息就是一个信息单元,这个信息单元可以是一个请求(Request message),也可以是一个应答(Reply message),或者是一个报告(Report message)或一份报文(Datagram   messge)。一个消息包含两个因素——消息描述(用于定义诸如消息传输目标等)和数据消息(如应用程序数据或数据库查询等)。程序之间的通信通过传递消息而非直接调用程序。
队列:一个安全的存储消息的地方,消息的存储一般是顺序的,队列是消息分阶段地传送和接收。因为消息存放在队列中,所以应用程序可以相互独立的运行,以不同的速度,在不同的时间,在不同的地点。
消息传输系统:用于确保队列之间的消息提供,包括网络中不同系统上的远程队列之间的消息提供。并保证网络故障或关闭后的恢复。
应用程序接口:应用程序和消息系统之间通过Websphere MQ API实现的接口Websphere MQ API在所有Websphere MQ平台上是一致的。API只有14个调用,2个关键动词:发送(PUT)和接收(GET)。

wps_clip_image-1708

如图所示:虽然应用程序A和应用程序B运行于同一系统A,它们不需要直接的通讯。应用程序A向队列1发送一条消息,而当应用程序B需要时就可以得到该消息。
如果消息传输的目标改为在系统B上的应用程序C,这种变化不会对应用程序A产生影响,应用程序A向队列Q2发送一条消息,系统A的Websphere MQ发现Q2实际上在系统B,它将消息放到本地的一个特殊队列-传输队列(Transmission Queue)。系统A的Websphere MQ然后建立一条到系统B通讯联接,传递这条消息到系统B,并等待确认。只有Websphere MQ接到系统B成功地收到消息的确认后,才从传输队列中移走消息。如果通讯线路不通,或系统B不在运行,消息会留在传输队列中,直到被成功地传送到目的地。这是Websphere MQ最基本而最重要的技术—可靠消息传输。

posted @ 2013-06-09 15:54  阿炎  阅读(639)  评论(0编辑  收藏  举报