`

Java Message Service 介紹

    博客分类:
  • JMS
阅读更多

                                                                               文章來源……IBM中國

企业消息系统

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

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

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

消息灵活性

应用程序 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 模型中的惟一目的地,发送应用程序 发布 自己的消息,指出消息描述的是有关分层结构中的一个主题的信息。

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

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

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

JMS 是什么?

 

Java Message Service 规范 1.1 声称:

 

JMS 是一组接口和相关语义,它定义了 JMS 客户如何访问企业消息产品的功能。

 

在 JMS 之前,每一家 MOM 厂商都用专有 API 为应用程序提供对其产品的访问,通常可用于许多种语言,其中包括 Java 语言。JMS 通过 MOM 产品为 Java 程序提供了一个发送和接收消息的标准的、便利的方法。用 JMS 编写的程序可以在任何实现 JMS 标准的 MOM 上运行。

JMS 可移植性的关键在于:JMS API 是由 Sun 作为一组接口而提供的。提供了 JMS 功能的产品是通过提供一个实现这些接口的提供者来做到这一点的。

开发人员可以通过定义一组消息和一组交换这些消息的客户机应用程序建立 JMS 应用程序。

JMS 的目标

 

更好地理解 JMS 有助于了解 JMS 规范的制定者设置的目标。

现在,市场上有许多企业消息产品,生产这些产品的几家公司也参与了 JMS 的开发。

现有的这些系统的能力和功能各不相同。这些制定者知道如果 JMS 结合所有现有系统的所有功能,那么它会变得过于复杂。同样,他们相信,他们也不能让 JMS 只局限于所有系统共有的那些特性。

制定者相信,让 JMS 包括实现“高级的企业应用程序”所需要的所有功能是很重要的。

JMS 规范中声明, JMS 的目标是:

  • 定义一组消息公用概念和实用工具。

  • 最少化程序员使用消息时必须学习的概念。

  • 最大化消息应用程序的可移植性。

  • 最小化实现一个提供者所需的工作量。

  • 为点对点和 pub/sub 提供客户机接口。“域”是用于在前面讨论的消息模型的 JMS 术语。(注意:提供者不需要实现两个域。)

JMS 1.1 中的新内容:统一域

在 JMS 1.1 以前的版本中,每一个域都有自己的特定于该域的一组客户机接口。JMS 版本 1.1 提供了单一的一组接口,它允许客户机可以在两个域中发送和接收消息。这些“域无关的接口”保留了每一个域的语义和行为,是实现 JMS 客户机的最好选择。支持特定于域的接口是为了向后兼容性,新的开发不该使用它。

统一域的好处是:

  • 它展示了用于客户机编程的更简单的编程模型。
  • 队列和主题的操作可以是同一事务的一部分。
  • 它为 JMS 提供者提供了优化其实现的机会。

哪些是 JMS 没有提供的

   

以下特性在MOM 产品中常见,但在 JMS 规范中没有出现。尽管 JMS 制定者承认它们对于开发功能强大的消息应用程序很重要,但是这些功能是特定于 JMS 提供者的。

JMS 提供者可以以任何他们愿意的方式自由实现这些功能:

  • 负载平衡和容错
  • 错误和咨询系统消息和通知
  • 管理
  • 安全性
  • Wire 协议
  • 消息类型仓库 
  • 描述: 图-1
  • 大小: 7.1 KB
  • 描述: 图-2发布和订阅模型
  • 大小: 9.7 KB
分享到:
评论

相关推荐

    Java Message Service 基础教程

    本教程向您介绍了 Java 消息服务(Java Message Service,JMS)概述,并提供了使用它开发程序的基本知识。Sun Microsystems 开发 JMS 是为 Java ?程序访问企业消息传递系统、也称面向消息的中间件(MOM)提供一种...

    JMS教程 java message service

    Java消息服务(JMS,Java Message Service)是Java平台中用于在分布式系统中进行可靠的消息传递的标准API。它提供了一种解耦应用程序的方式,使得不同的组件可以异步通信,即使它们可能在不同的时间运行,或者在不同...

    Java Message Service

    Java Message Service (JMS) 是Java平台中用于创建、发送、接收和读取消息的标准API。它为分布式环境中的应用程序提供了可靠的消息传递机制,确保消息的有序性和持久性,同时也支持发布/订阅和点对点两种消息模式。...

    JSR-000343 Java Message Service 2.0 javadocs for Evaluation

    Java Message Service(JMS)是Java平台上的一个标准接口,用于在分布式环境中交换消息。JSR-000343则是对这个标准的第2.0版本的规范定义,它详细描述了如何在Java应用程序之间可靠地发送和接收消息。Javadoc是一种...

    JMS消息服务代码(java message service)

    Java Message Service(JMS)是Java平台中用于创建、发送、接收和读取消息的应用程序接口。它提供了一种标准的方式来解耦应用程序之间的通信,使得它们可以异步地交换信息,提高了系统的可扩展性和可靠性。在JMS中,...

    《Java Message Service》 PDF英文版本下载.txt

    《Java Message Service》 PDF英文版本下载

    java message service 第二版

    《Java Message Service, Second Edition》是一本详细介绍JMS核心概念和技术细节的专业书籍,由Mark Richards、Richard Monson-Haefel和David A. Chappell合著,于2009年由O'Reilly Media出版。该书不仅涵盖了JMS的...

    JSR-000343 Java Message Service 2.0 Specification for Evaluation

    根据提供的文件内容,以下是关于“JSR-000343 Java Message Service 2.0 Specification for Evaluation”的详细知识点: ### 标题知识点 - **JSR-000343**: Java Message Service (JMS) 2.0 规范的代号,JSR(Java...

    JMS简介 Java Message Service

    【Java Message Service (JMS) 简介】 Java Message Service (JMS) 是Java平台上的一个标准API,专门设计用于在企业级消息系统中进行消息交换。它为Java应用程序提供了一种统一的方式,以便与各种不同的消息中间件...

    中文java message service

    Java 语言的客户端和Java 语言的中间层服务必须能够使用这些消息系统。JMS 为Java 语言程序提供了一个通用的方式来获取这些系统。 JMS 是一个接口和相关语义的集合,那些语义定义了JMS 客户端如何获取企业消息产品 ...

    Java Message Service中文完整版

    ### Java Message Service (JMS) 规范中文完整版解读 #### 一、概述 Java Message Service(简称JMS)是一种消息中间件的标准接口,它为应用程序提供了与消息中间件进行交互的方式。JMS规范定义了一组接口和方法,...

    深入掌握 JMS(java message service)

    ### 深入掌握 JMS(Java Message Service) #### JMS 基础概念 - **JMS**(Java Message Service)是一种Java平台中的消息中间件技术标准,它定义了一套标准API,用于应用程序之间的消息传递。JMS的出现极大地简化...

    Java Message Service (JMS) Package

    zip包中包含jms-1_1-fr-apidocs.zip和geronimo-jms_1.1_spec-1.1.1.jar。使用jms-1_1-fr-apidocs.zip与geronimo-jms_1.1_spec-1.1.1.jar可替换

    Java Message Service 2nd Edition源代码

    Java Message Service(JMS)是Java平台上的一个标准接口,用于在分布式环境中交换异步消息。它是企业级应用集成中的重要组成部分,特别是在处理大量数据、高并发和系统间解耦时。这个“Java Message Service 2nd ...

Global site tag (gtag.js) - Google Analytics