Java技术回顾之JMS:JMS概念和模型
您现在的位置: 学网 >> 程序开发 >> Java >> Java实例 >> 正文
学网教程

Java:Java技术回顾之JMS:JMS概念和模型

[ 来源:Java | 作者:Java | 时间:2007-7-20 | 去论坛]

一、JMS相关概念

1、企业消息系统:
也称消息中间件(MOM,Message-Oriented Middleware),它允许应用程序之间通过消息的方式进行通信,它具有两个显著的特点:
应用程序之间通过虚拟的通道Destination来交换消息,发送者和接收者不必了解对方,只需知道对方的Destination和消息格式即可通信。
消息是异步传送的,每个消息都是一个自包含的单元,发送者无需等待接收者接收和处理消息。

2、JMS:
JMS(Java Message Service)是Java程序与企业消息系统进行交互的规范,它提供了一组API用于创建、发送、接收和读取消息。JMS定义了一组通用的消息概念和功能,旨在降低开发者访问企业消息系统的难度,同时最大化应用程序的可移植性。

3、JMS应用的几种角色:
JMS客户端(JMS Clients):利用JMS API访问消息服务的Java程序。
非JMS客户端(Non-JMS Clients):利用特定消息系统的专有API访问消息服务的程序。
消息(Messages):JMS应用之间发送和接收的数据实体。
JMS提供者(JMS Provider):实现JMS规范的企业消息系统。
管理对象(Administered Objects):企业消息系统中管理员预先配置供客户端调用的与具体实现无关的JMS对象。

4、管理对象:
JMS提供者内部实现各有不同,为了使JMS客户端不和特定的JMS提供者耦合,JMS通过管理对象来隔离JMS提供者的内部实现。主要有两种类型的管理对象:
ConnectionFactory:用于创建到JMS提供者的连接的工厂对象。
Destination:用来表示发送消息的目的地和接收到的消息的来源的对象。
消息系统的管理员将管理对象配置到指定的JNDI命名空间上。JMS客户端通过标准JNDI接口就可以访问这些管理对象。

二、JMS消息模型

1、Pub/Sub模型:
一对多广播消息模式。在Pub/Sub模型中,消息发送方称为Publisher,消息接收方称为Subscriber。主题Topic充当Publisher和Subscriber之间的中介,对某个Topic感兴趣的Subscriber在Topic上注册,Publisher将消息发送到指定的Topic,Topic上的消息将递送给所有注册的Subscriber。
Pub/Sub模型的主要特点:
对Topic上的一个消息,注册的每个Subscriber均得到该消息的一个拷贝。
Topic上的消息是自动递送给Subscriber的,不需要Subscriber去主动获取新消息,这种方式也称为推模式(Push Model)。
Publisher和Subscriber可以在运行时刻动态添加和删除。

2、P2P模型:
一对一消息模式。在P2P模型中,消息发送方称为Sender,消息接收方称为Receiver。队列Queue充当Sender和Receiver之间的中介,Sender将消息发送到指定的Queue,Receiver从指定的Queue上获取消息。
P2P模型的主要特点:
对Queue上的每个消息,即使有多个Receiver请求该消息,有且只有一个Receiver接收到该消息。即每个消息只能被一个Receiver消费,消费之后消息就从Queue上删除了。
Receiver需要到Queue上请求消息,而不是自动递给它的,这种方式也称为拉模式(Pull Model)。
Queue上的消息是有顺序的,消息按照它发送到Queue上的顺序被Receiver取走。

JMS提供了两组API来支持上面两组模型的应用。 

文章整理:学网 http://www.xue5.com (本站) [1] [2]

学网·特别声明:
本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。本站所有文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题,请联系编辑人员Xababy#Gmail.com,我们尽快予以更正。
设为首页 - 收藏学网 - 关于学网 - RSS订阅 - 版权申明 - 友情链接 - 联系学网 - 网站地图 - 投稿学网
学网·2004-2008版权所有
© CopyRight 2004-2008 WwW.Xue5.CoM.Inc All Rights Reserved
合作、建议、联系::cainiaoo.cn#live.cn QQ:329700200,1103290

学网_致力于提供优质免费的电脑学习教程
陕ICP备05000834号