快速业务通道

Java理论与实践: 应该在下一个企业应用程序中使用JMS吗? - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

Java理论与实践: 应该在下一个企业应用程序中使用JMS吗?

时间:2010-12-20 IBM Brian Goetz

最近几年,开发人员可以更广泛地得到企业消息排队(MQ)产品。适当地使 用 MQ 技术经常可以改善应用程序的组织、性能和可伸缩性。Java 消息服务 (Java Message Service (JMS))是集成到 J2EE 中的一部分,它使得 MQ 服务 可以为任何 J2EE 应用程序所用。在本文(也是本专栏系列的第一部分)中, Brian 概述了在 Java 应用程序中使用消息排队的一些好处,并探讨了能够从 MQ 技术中获益最大的问题类型。请在 论坛上(或者通过单击本文顶部或底部的 讨论)同作者及其他读者分享您对本文的想法。

消息排队(MQ)工具没有数据库工具(例如关系(SQL)数据库)为人所知或 为人理解,数据库工具是几乎所有企业应用程序和大量比较简单的应用程序中的 关键组件。开发人员总是可以采用多种类型的数据产品,其范围包括从廉价的、 只能在台式机上使用的数据库(例如 dBase 或 Microsoft Access),到工作组 数据库服务器(例如 Sybase SQL/Anywhere),再到企业数据库服务器(例如 DB2 或 Oracle)。无论您的项目是什么样子的,总有一个价格、性能及功能都 适合的数据库产品可供您使用。

和数据库相似,MQ 产品有时被称为面向消息的中间件(MOM),已经出现相 当一段时间了。然而,直到最近,MQ 服务器还一直是昂贵的、只能被资金最充 足的企业开发人员所用的高端产品。结果,只有非常少的开发人员可以享受在其 应用程序中使用消息传递所带来的好处。

大众化的消息排队

幸运的是,这一状况正在开始改变;现在市场上已经出现了几种价格较低的 MQ 服务器。1997 年,Microsoft 发布了 MSMQ,它是一个事务性消息排队产品 ,作为 Windows NT Server 中的集成部分 ― 无需额外的许可费用。Sun 将 JMS API 包括在最初的 J2EE 规范中,这极大地促进了消息传递的大众化。在 J2EE 规范的版本 1.3 中,所有的 J2EE 容器都要求包含 JMS 提供程序 (provider)。

JMS,也就是 Java 消息服务,它是一种允许 Java 应用程序通过标准化的接 口访问范围广泛的 MQ 服务器(或者,按照 JMS 的说法,是提供程序)的 API ,就象 JDBC 允许程序通过一个公共接口访问许多不同的数据库服务器一样。大 多数 J2EE 容器包含 JMS 提供程序;将来,所有 J2EE 容器都将包含 JMS 提供 程序。没有 J2EE 容器也可以使用 JMS;市场上有几种独立的 JMS 提供程序实 现。此外,EJB 2.0 规范引入了一种新的 EJB 类型 ― 消息驱动 bean ― 它使 得创建利用实体和会话 bean 的消息驱动的组件非常容易。

既然我们都可以使用 JMS 服务,我们就应该学会在应用程序中使用消息传递 的能力。Willy Farrell 是 IBM 的一名电子商务设计师,他写了一本优秀的关 于使用 JMS 的介绍性教程(参阅 参考资料)。它涉及创建消息和队列的基本知 识,以及对消息划分优先级、检索消息和编码消息的所有选项。

消息传递和数据库起了相互补充的作用,在许多情况下,同时使用消息传递 和关系数据库可以产生比只使用它们中的一个好得多的解决方案。

历史上,曾经将 MQ 服务器用于面向事件的应用程序(例如财务服务应用程 序)或者作为一种与完全不同的系统进行相互操作的方式(例如连接完全不同的 数据库应用程序或将一个企业同另一个在供应链网络中的企业相连接)。术语“ 面向消息的中间件”经常应用于 MQ 服务器,它强调 MQ 技术主要用途是连接完 全不同的系统。然而,随着 MQ 产品成本的降低,许多其它应用程序现在也可以 从消息排队中获益。

MQ 服务器做什么?

用 MQ 的说法,消息只是一个字节流(这个字节流可以是一个 XML 文档、一 个序列化的 Java 对象、一个文本字符串或甚至是一条

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号