Java Message Service 介绍

我是否应该学习本教程 第 1 页(共2 页)


本教程提供了对 Java Message Service (JMS)的概述,并提供了用它开发程序的一些基础知识。JMS 是由 Sun Microsystems 开发的,它为 Java 程序员提供一种访问企业消息系统的方法,即 面向消息的中间件 (MOM)。MOM 通过中间媒介以间接方式在应用程序之间异步传送数据,用这种方法提供一种以松散耦合的灵活方式集成应用程序的机制。

在开始学习本教程之前,读者应该熟悉 Java 编程和面向对象编程的概念。

编写在本教程中描述的程序需要一个编辑环境,它可以是像操作系统编辑器这样的基本编译环境。在进行开发时,许多人使用集成开发环境(IDE),因为它有专门为编写和测试代码而设计的调试程序和其他特性。

编写这些程序需要 Java 编译器(javac.exe),还需要 javax.jms 包中的 JMS 类和 javax.naming 包中的 Java Naming and Directory Interface (JNDI)类。可以从 Sun 下载它们:JMSJNDI

要执行并测试这些程序,需要访问 JMS 的供应商实现。大多数 Java 2 Enterprise Edition (J2EE)供应商都会提供 JMS 的一种实现。要想获得设置 JMS 运行时程序和执行程序的有关信息,请参阅供应商文档。

有些编程决定将取决于所使用的 JMS 版本(请参阅 JMS 1.1 中的新内容:统一域)。 JMS 版本 1.1 是为了向后兼容性才而支持 点对点接口Pub/sub 接口,如果使用基于 JMS 版本 1.1 的供应商进行绝对全新的程序开发,则完全可以跳过本教程中有关这些主题的章节。

Java Message Service 是由 Sun Microsystems 开发的,它为 Java 程序提供一种访问 企业消息系统 的方法。在讨论 JMS 之前,我们分来析一下企业消息系统。

企业消息系统,即 面向消息的中间件(MOM),提供了以松散耦合的灵活方式集成应用程序的一种机制。它们提供了基于 存储和转发 的应用程序之间的异步数据发送,即应用程序彼此不直接通信,而是与作为中介的 MOM 通信。

MOM 提供了有保证的消息发送(至少是在尽可能地做到这一点),应用程序开发人员无需了解远程过程调用(PRC)和网络/通信协议的细节。

消息灵活性 第 2 页(共8 页)


如下图所示,应用程序 A 与应用程序 B 通过使用 MOM 的应用程序编程接口(API)发送消息进行通信。

消息灵活性

MOM 将消息路由给应用程序 B,这样,消息就可以存在于完全不同的计算机上,MOM 负责处理网络通信。如果网络连接不可用, MOM 会存储消息,直到连接变得可用时,再将消息转发给应用程序 B。

灵活性的另一方面体现在,当应用程序 A 发送其消息时,应用程序 B 甚至可以不处于执行状态。MOM 将保留这个消息,直到应用程序 B 开始执行并试着检索消息为止。这还防止了应用程序 A 因为等待应用程序 B 检索消息而出现阻塞。

这种异步通信要求应用程序的设计与现在大多数应用程序不同,不过,对于时间无关或并行处理,它可能是一个极其有用的方法。

企业消息系统的真正威力在于应用程序的 松散耦合。在前一页的图表中,由应用程序 A 发送消息指定一个特定目标,如“订单处理”。而现在,是由应用程序 B 提供订单处理功能。

但是在将来,我们可以用不同的订单处理程序替换应用程序 B,应用程序 A 将不再是明智之选。替换应用程序将继续发送消息完成“订单处理”,而消息也仍将得到处理。

同样,我们也可以替换应用程序 A,只要替换应用程序继续发送消息进行“订单处理”,订单处理程序就无需知道是否有一个新的应用程序在发送订单。

最初,开发企业消息系统是为了实现 点对点模型 (PTP),由一个应用程序生成的每个消息都由另一个应用程序接收。近年来,出现了一种新的模型,叫做 发布与订阅 (或者 pub/sub)。

Pub/sub 用称为 主题(topic) 的内容分层结构代替了 PTP 模型中的惟一目的地,发送应用程序 发布 自己的消息,指出消息描述的是有关分层结构中的一个主题的信息。

希望接收这些消息的应用程序 订阅了 这个主题。订阅包含子主题的分层结构中的主题的订阅者可以接收该主题和其子主题发表的所有消息。

下图展示了发布和订阅模型。

发布和订阅模型

多个应用程序可以就一个主题发布和订阅消息,而应用程序对其他人仍然是匿名的。MOM 起着 代理(broker) 的作用,将一个主题已发表的消息路由给该主题的所有订阅者。


 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值