游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1801|回复: 0

中间件消息通信技术概要 wxh zt

[复制链接]

1367

主题

1993

帖子

2118

积分

金牌会员

Rank: 6Rank: 6

积分
2118
发表于 2005-9-12 18:12:00 | 显示全部楼层 |阅读模式
MQ配置说明                        

一、中间件


       中间件,就是介于应用系统与系统软件之间的一类软件,它使用系统软件所提供的基础功能,衔接于应用系统的不同部分,能够达到资源共享和功能共享的目的。


       消息中间件,是中间件众多产品分类中一个重要部分。它能够适用于任何需要进行网络通信的系统,负责建立网络通信的通道,进行数据或文件发送。消息中间件的一个重要作用是可以实现跨平台操作,为不同操作系统上的应用软件集成提供服务。




二、几种通信技术的比较


1、CPI-C


       CPI-C是一种同步对话通信模式。参加通信的一方发起一次对话,同时控制信息流动。数据既可以由发送者传递到接受者,也可以反向流动。


       参加通信的两个程序需要跟踪对话的状态,如果异常发生导致连接中断,则需要发送方重建并恢复这次通话。通信双方既可以处于主从地位,也可以处于对等地位。也就是说,CPI-C既支持客户端-服务器环境,也支持对等通信方式。


       虽然CPI-C在一般情况下是一种同步通信类型,但是在一定环境中,如CICS,可以通过“临时数据队列”实现一定程度的异步。


       TCP/IP,SNA都支持CPI-C。


       由于需要应用程序参与错误的检测与恢复,CPI-C的编程接口相当复杂。








2、RPC


       RPC,即远程过程调用,也是一种同步,对话方式的类型。一个调用程序向服务器提成申请,该调用被负责通信的转接器发往远端系统。调用者与被调用者关系是固定的,很难实现对等通信。


与CPI-C一样,通信错误需要应用程序自己维护。另外在申请服务得到响应之前,服务申请者被阻隔,这不仅是应用的瓶颈所在,更有可能遭受拒绝式服务攻击。








3、MQI(Message Queue Interface)


       消息队列接口为程序提供了一种异步通信方式。一个程序以一个队列作为中转与另一个程序相互通信,这个队列向对于该程序而言既可以是本地,也可以是远程。当程序A与程序B进行通信时,A只需要将消息放入一条与B相通信的队列即可,至于消息何时,以何种协议,何种方式到达程序B与A没有关系。底层的通信细节被接口所覆盖,甚至通信错误的恢复也由队列管理器代劳了,应用程序自身感受不到通信的发生。


       由于通信方式和使用的协议无关,因而可以使用各种标准协议,比如TCP/IP,SNA或者其他局域网协议。


       当程序A向B发送消息的时候,程序B不需要处于运行状态,消息队列负责了消息的转达。而且一个程序可以通过不同的队列与多个程序进行通信。








三、Websphere MQ简介


       Websphere MQ是IBM公司的商业通信中间件。它提供一个具有工业标准,安全、可靠的消息传输系统,用以控制和管理一个集成的商业应用。Websphere MQ基本由一个消息传输体系和一套应用程序接口组成。




       Websphere MQ主要包含以下资源:


1、消息:


消息就是一个信元单位。消息类型包含请求消息(Request Message)、应答消息(Reply Message)、报告消息(Report Message)、报文消息(Datagram Message)。另外,还有一类特殊的消息叫做触发消息,它是触发机制的重要组成部分。


消息包含两部分构成:消息描述符与应用程序数据。消息描述符标示消息,并包含其他控制信息,如消息类型和消息优先级;应用程序数据是消息的主体,它的内容与结构含义由使用它的程序定义。




2、队列


队列是消息的存储场所。消息存放在队列中,应用程序可以相互独立的运行,以不同的速度、在不同的时间地点进行消息通信。


队列按照功能划分,主要包含十个大类:本地队列、远程队列、传输队列、动态与模板队列、启动队列、群集传输队列、死信队列、命令队列、回复队列与别名队列。




3、消息传输系统


确保队列之间的消息传递。包括队列管理与调度、消息传达,并保证网络故障后的恢复。传输系统由队列、队列管理器、通道、进程、群集以及其他部分组成。


队列管理器是队列和其他对对象的容器。Websphere MQ的每一个部分都属于一个队列管理器,它是一个基本独立的执行单元,应用程序通过MQI编程接口向队列管理器申请服务。


通道,是一种提供从一个队列管理器到另外一个队列管理器的通信途径。它通过消息通道代理(Message Channel Agents)把两个队列管理器连接起来。消息通道可以分为6种类型:发送通道(Sender)、接受通道(Receiver)、服务器通道(Server)、请求器通道(Requester)、群集发送通道(Cluster Sender)和群集接受通道(Cluster Receiver)。


除了消息通道,还有一种特殊的通道,称为MQI通道。MQI通道是Websphere MQ客户端和服务器上的队列管理器的通信通道,当客户应用程序发出MQCONN或MQCONNX调用时,才开始建立连接。


消息通道与MQI通道主要存在两点差别。首先,MQI是双向通道,既可以发送请求,也可以接受响应,而消息通道只能进行单向数据通信;另外,MQI通道的通信是同步的,当MQI请求从客户端发送到服务器时,Websphere MQ的客户端在发送下一个请求必须等待来自服务器的响应。而消息通道的数据传输的异步的,与时间无关。




4、应用程序接口


消息系统与应用程序之间通过一系列Websphere MQ API来实现。API只有14个调用,2个关键字:PUT和GET。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-27 20:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表