面向消息的中间件(MOM)的代表JMS

当前, CORBA DCOM RMI RPC 中间件技术已广泛应用于各个领域。但是面对规模和复杂度都越来越高的分布式系统,这些技术也显示出其局限性:( 1 )同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果后才能继续执行;( 2 )客户和服务对象的生命周期紧密耦合:客户进程和服务对象进程都必须正常运行;如果由于服务对象崩溃或者网络故障导致客户的请求不可达,客户会接收到异常;( 3 )点对点通信:客户的一次调用只发送给某个单独的目标对象。

面向消息的中间件( Message Oriented Middleware MOM ) 较好的解决了以上问题。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。这种模式下,发送和接收是 异步的,发送者无需等待;二者的生命周期未必相同:发送消息的时候接收者不一定运行,接收消息的时候发送者也不一定运行;一对多通信:对于一个消息可以有 多个接收者。

已有的 MOM 系统包括 IBM MQSeries Microsoft MSMQ BEA MessageQ 等。由于没有一个通用的标准,这些系统很难实现互操作和无缝连接。 Java Message Service JMS )是 SUN 提出的旨在统一各种 MOM 系统接口的规范,它包含点对点( Point to Point PTP )和发布 / 订阅( Publish/Subscribe pub/sub )两种消息模型,提供可靠消息传输、事务和消息过滤等机制。
       1.JMS
JAVA
消息服务 (JMS) 定义了 Java 中访问消息中间件的接口。 JMS 只是接口,并没有给予实现,实现 JMS 接口的消息中间件称为 JMS Provider iLink 实现了 JMS 接口,用户可以通过使用 JMS 接口,在 iLink 中进行 JMS 编程。 iLink 支持 JMS1.0.2 版本。
       2.JMS
接口描述
JMS
支持两种消息类型 PTP Pub/Sub ,分别称作: PTP Domain Pub/Sub Domain ,这两种接口都继承统一的 JMS 父接口。
       3.JMS
消息模型
JMS
消息由以下几部分组成:消息头,属性,消息体。
消息头中定义好的标准属性外, JMS 提供一种机制增加新属性到消息头中,这种新属性包含以下几种:

1. 应用需要用到的属性 ;

2. 消息头中原有的一些可选属性 ;

3. JMS Provider 需要用到的属性。
       4.
消息的同步异步接收 消息的同步接收是指客户端主动去接收消息, JMS 客户端可以采用 MessageConsumer receive 方法去接收下一个消息。 消息的异步接收是指当消息到达时,主动通知客户端。 JMS 客户端可以通过注册一个实 MessageListener 接口的对象到 MessageConsumer ,这样,每当消息到达时, JMS Provider 会调用 MessageListener 中的 onMessage 方法。
       5. PTP
模型
PTP(Point-to-Point)
模型是基于队列的,发送方发消息到队列,接收方从队列接收消息,队列的存在使得消息的异步传输成为可能。和邮件系统中的邮箱一样,队列可以包含各种消息, JMS Provider 提供工具管理队列的创建、删除。 JMS PTP 模型定义了客户端如何向队列发送消息,从队列接收消息,浏览队列中的消息。发布和订阅消息,这些节点被称作主题 (topic) 。主题可以被认为是消息的传输中介,发布者 (publisher) 发布消息到主题,订阅者 (subscribe) 从主题订阅消息。主题使得消息订阅者和消息发布者保持互相独立,不需要接触即可保证消息的传送。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值