只有当需要支持 Java 客户端时,才需要 JMS 提供者。但是,如图 1–6 所示,Message Queue 客户端可以使用 Java 或特定于提供者的 C API 来发送或接收消息。这些接口是在 Java 或 C 运行时环境库中实现的,这些库的实际作用是建立与代理的连接并根据所请求的连接服务来相应地包装位。
Java 客户端运行时环境为 Java 客户端提供与代理交互所需的对象。这些对象包括连接、会话、消息、消息生成方和消息使用方。
C 客户端运行时环境为 C 客户端提供与代理交互所需的功能和结构。它支持 JMS 编程模型的程序化版本。C 客户端不能使用 JNDI 来访问受管理对象,但是可以通过编程方式来创建连接工厂和目的地。
Message Queue 服务提供一个 C API,使传统 C 和 C++ 应用程序能够参与基于 JMS 的消息传送。这两个 API 所提供的功能有许多不同,Java 客户端与 C 客户端对此进行了说明。
一定要记住 JMS 规范是只适用于 Java 客户端的标准。而 C 支持则是特定于 Message Queue 提供者,因此在计划移植到其他提供者的客户端应用程序中不应该使用该支持。