JMS入门教程(—)

JMS 给java 程序员提供了一种通用的方式来创建、发送、接收和查看企业消息系统消息。

 

JMS 是一个接口和相关语义的集合,那些语义定义了JMS 客户端如何获取企业消息产品的功能。

 

由于消息是点对点的,所以JMS 的所有用户都称为客户端(clients)。JMS应用由定义消息的应用和一系列与他们交互的客户端组成。

 

这里描述的消息是由企业应用而不是人来处理的异步请求、报告或事件。他们包含了协同这些应用所必需的信息。他们包含了描述特定业务动作的格式化的数据。应用通过交换消息来跟踪企业的过程。

 

现存的消息系统

消息系统是点对点的工具。通常情况下,每个客户端可以发送消息到另一个客户端,也可以从任何客户端接收消息。每个客户端连接到提供创建、发送和接受消息的消息代理。

 

个系统都提供了定位消息的方式。每个系统都提供了创建消息并给他填充数据的途径。

有些系统可以想多个目的地广播消息。其他的系统也可以只支持向一个目的地发送消息。

 

某些系统提供了异步接收消息的功能(当消息到达时被转发到客户端)。其他的系统可以支持同步接收(客户端必须请求每个消息)。

 

每个消息系统通常提供多种服务供不同的消息来选择。重要的问题是系统能保证转发的长度是多少。它们可能不是一次就能转发完全的。其他重要的问题是消息是有时效、有优先
级和是否要求响应。

 

JMS 目标

如果JMS 提供了现有消息系统的所有特性,那么对用户来讲它就太复杂了。在另一个方面,JMS更多是所有消息产品公共特性的交集。重要的是JMS 要包含实现专业企业应用需要的功能。

 

JMS 定义了一系列通用的企业消息概念和工具。它试图最小化Java语言程序员使用企业消息产品而必须了解的概念集。它致力于最大化消息应用的可移植性。

 

JMS提供商

JMS 提供商是一个在消息产品实现JMS 的实体。

理想情况下,JMS 提供商用纯Java 来实现消息产品,这样它就能运行在applet 中,简化安装,并且可以架构和OS工作。JMS 的一个重要目标是最小化实现一个提供商所需要的工作。

 

JMS 消息

JMS 定义了一系列消息接口。
客户端使用由JMS 提供商提供的消息实现。
JMS 的一个主要目标是客户端使用统一的API 来创建和与独立于JMS 提供商的消息一起工作。

 

JMS 域

消息产品可以广义上可以分为点对点或发布‐订阅系统。

点对点(PTP)产品围绕着消息队列创建。每个消息被放置在一个特定的队列中;客户端从队列中取出消息。

 

发布和订阅(Pub/Sub)客户端将消息放置到某个内容继承层次上的节点上。发布者和订阅者通常都是匿名的,通常可以动态的发布或订阅内容层级。系统关注将来自一个节点的多个发布者的消息分发到这个节点的多个订阅者。

 

实现客户端的最好方式是使用不依赖域的接口。这些接口称为“通用接口”是域特有接口的父类。

 

可移植性

最主要的可移植目标是新的只有JMS 的应用可以在同一个消息域内可以跨产品。

 

MS 客户端跨机器架构和操作系统是期望的可移植性(当时有同一个JMS 提供商时)。

 

尽管设计JMS的目的是让客户端可以和现存的在混合语言应用中使用的消息格式一起工作,但是这种客户端通常是不可移植的(将一个混合语言应用从一个产品移植到另一个产品超出了JMS的范围)。

 

JMS 不包含什么

JMS <wbr>教程 <wbr>学习笔记 <wbr>(一).1 <wbr>简介

 

JMS 的要求是什么

JMS 点对点功能的提供商不要求提供发布/订阅功能,反之亦然。


JMS 也可以用在J2EE 平台。参加章节1.4 ,“与其他Java API 的关系”来了解当JMS 被集成到那种软件环境时对JMS的附加要求。

与其他 Java API 的关系

JDBC 软件

JavaBean 组件

JavaBean 组件可以使用JMS 会话来发送/接收消息。JMS 本身是一个API,它定义的接口
没有打算直接作为JavaBean 组件来使用。

EJB 组件模型

Java 事务API(JTA)

Java 事务服务(JTS)

Java 命名和目录接口API(JNDI)

J2EE 平台

J2EE 平台规范(版本1.3)要求将JMS API 作为J2EE 平台的一部分。J2EE平台规范对JMS的实现提出了附加的要求,这些要求超出了JMS规范中描述的要求,包括既要支持点对点域又要支持发布/订阅域。

 

JMS 和EJB 组件的集成

JMS1.1 的新特性是什么?

 

在JMS 的以前版本中,用于点对点和Pub/Sub 域的客户端编程都是类似的,但使用不同的类层次。在JMS1.1中,现在有一个不依赖域的方式来编写客户端应用。这有以下几个好处:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章