2.3什么是Java消息服务

2.3什么是Java消息服务

    JMS是在MOM供应商核心API基础上发展的,它用来提供企业消息传送。JMS的目标是为Java提供一个标准的API来发送和接收消息,并使之成为供应商天生行为。JMS最小化了Java程序员开发企业消息应用的复杂性,同时还保留在不同JMS提供者之间移植的可能性。

    JMS并不是一个MOM。它是一个API,抽象了客户端和MOM的交互,就像JDBC抽象与数据库的交互一样。图2.4展示了客户端是如何通过JMS提供的API和特定JMS提供者交互。特定的JMS提供者使用供应商制定的API和MOM交互。不只是图示的四种,对于其它JMS提供者也是相同的。

   

    为了联合企业消息传送市场上的各厂商,Sun在1998年颁布了JMS规范的第一个版本。最后一个版本是2002年发布的,对一些必要的东西进行了改进。JMS 1.1版本整合了两种不同的消息传送领域提供了不同的API,所以现在在不同领域的工作也都使用相同的API。这是API的一个巨大的改变。不过,旧的API仍然会被支持。

    为了规范API,JMS为消息传送定义了很多概念:

  • JMS客户端----100%用Java编写的发送和接收消息的应用。
  • Non-JMS客户端----使用JMS提供者特定的客户端API而不是JMS API来发送和接收消息的应用。
  • JMS producer----创建和发送JMS消息的客户端应用。
  • JMS consumer----接收和处理JMS消息的客户端应用。
  • JMS provider----100%使用Java编写的JMS接口的实现。
  • JMS message----JMS最基础的概念;被JMS客户端发送和接收。
  • JMS domains----两者类型的消息传送,包括点对点(point-to-point)和发布/订阅(publish/subscribe)模式。
  • Administered objects----预配置的JMS对象,包含provider特定的配置信息。客户端通过JNDI来访问这些数据。
  • Connection factory----客户端使用连接工厂来连接JMS provider。
  • Destination----消息被投递的地方,以及接收者消息接收的来源。

除此之外,还有其它一些同样重要的概念。下一部分将深入这些概念并描述它们怎么构建整个JMS。