1.2.1 JDBC软件

JMS客户端也可以使用JDBC API。他们可能希望在同一个事务内使用JDBC API和JMSAPI。 大多数情况下,通过将这些客户端实现为EJB组件可以自动实现这个愿望。也可能直接使用JTA来实现这个愿望。

1.2.2 JavaBean组件

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

1.2.3 EJB组件模型

JMS API是EJB组件开发者可以获得的重要资源。它可以和类似JDBC的资源一起使用来实现企业服务。EJB2.0规范定义了通过来自EJB客户端调用的方法被同步调用的bean。也定义了一种异步bean,当一个JMS 客户端向他发送消息时它被调用,称为消息驱动bean。EJB规范支持同步和异步消息消费。另外,EJB2.0指定JMS API如何参与bean管理的或容器管理的事务。EJB2.0规范限制了当实现EJB客户端时如何使用JMS 接口。参考EJB2.0规范来了解更详细的内容。

1.2.4 Java事务API(JTA)

Javax.transaction包为划分分布式事务提供了客户端API,并提供了获取要参与到分布式 事务中的资源的API。JMS客户端可以使用JTA来划分分布式事务;但是,这是运行客户端的事务环境的功能。不是JMS的功能。JMS提供商可以通过JTA支持分布式事务,也可以不支持。

1.2.5 Java事务服务(JTS)

JMS可以和JTS联合使用来组成分布式事务,这个分布式事务将消息的发送和接收与数据更新及其他JTS 感知的服务结合起来。当JMS客户端在应用服务器中(如EJB服务器)被运行时,分布式事务应当被自动处理;但是对JMS 客户端来说,显式的通过程序使用JTS也是可能的。

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

JMS客户端使用JNDI API查找已配置的JMS对象。JMS管理员使用提供商提供的工具来 创建和配置这些对象。通过将特定提供商的工作代理给管理员最大化了客户端的可移植性。它也导致了更多的 可管理应用,因为客户端不需要将管理用的值嵌入到他们的代码中。

1.2.7 J2EE平台

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

1.2.8 JMS和EJB 组件的集成

J2EE平台和EJB规范描述了要集成到J2EE平台的JMS提供商实现的附加要求。一个关键的需求集是JMS 消息生产和JMS消息消费如何与容器管理事务的事务需求进行交互。参考这两个规范来来了解JMS集成的所有要求。JMS API规范没有说明实现这些集成要求的模型。因此,不同的JMS提供商实现可以使用不同的方式来实现与J2EE 平台的集成,以及支持EJB的要求。将来,JMS集成到J2EE平台的集成点将用J2EE连接器架构来提供。