WebSphere Message Broker 不提供任何唯一的编程接口,但支持现在已经由消息传递应用程序使用的几个编程接口。
MQI 提供少量调用,允许应用程序跨越队列管理器的 WebSphere MQ 网络与其他应用程序进行交互。这些调用支持的参数范围很广,这些参数为每条消息提供了丰富的处理选项。
使用 MQI 的客户机应用程序可以在任何受支持的 WebSphere MQ 操作系统上运行,因此任何有关语言或功能的限制都由该操作系统的相关产品来定义。
WebSphere MQ Application Programming Guide 和 WebSphere MQ Application Programming Reference 对 MQI 进行了描述。这些书籍中还详细描述了可用于使用该接口的客户机的编程语言和操作系统支持。
AMI 设计为通过在应用程序外部集中可选参数的选择,来简化应用程序程序员的任务。它还提供了可从消息代理处获得更高级功能的支持。 设计 AMI 的目的是,无论是否有代理参与都可用于一般的消息传递应用程序。
AMI 的主要功能是管理员定义的一些称为策略和服务的选项包。 应用程序指定一项服务以确定所需的基本消息传递支持, 并将一个策略与发送或接收消息关联以控制消息处理的属性(如优先级)。
策略和服务表示应用程序不必了解 MQRFH2 头和 MQI 接口的详细信息。
使用 AMI 的客户机应用程序受限于该接口所支持的操作系统和程序设计语言。 查看当前级别的《WebSphere MQ 应用程序消息传递接口》一书获取详细信息,或访问 WebSphere MQ Web 站点。
JMS 是一种应用程序编程接口,提供用于处理消息的 Java 语言函数。JMS API 由消息传递供应商,包括与 Sun Microsystems, Inc. 合作的 IBM 开发;它提供公共接口来访问不同的企业消息传递系统,包括 WebSphere MQ。此接口适用于点到点和发布/预订应用程序。
JMS 中的消息传递客户机称为 JMS 客户机,而消息传递系统称为 JMS 提供程序。JMS 应用程序是一种业务系统,包含 JMS 客户机和至少一个 JMS 提供程序。 使用 JMS 接口的客户机应用程序是用 Java 编程语言编写的,并且因此受所讨论的操作系统上支持的 JVM 级别的限制。有关更多信息,请参阅《使用 Java 的 WebSphere MQ》一书,或访问 WebSphere MQ Web 站点。
在WebSphere MQ 移动传输方式中描述了这些调用。
这些消息在WebSphere MQ 遥感传输方式中进行了描述。
如果您具有写到这些接口的现有最终用户应用程序,则通常仅可以在代理环境中不变地进行运行。您必须使用相应的输入和输出节点,创建消息流来跨越所支持的协议与这些应用程序交互。WebSphere Message Broker 为其支持的协议提供内置输入和输出节点,并且如果选择,您可以创建自己的用户定义的节点来支持其他协议。
您还可以创建新的最终用户应用程序与代理交互。
WebSphere Message Broker 为大量 WebSphere MQ 头提供解析器,因此可以跨越 WebSphere MQ 企业传输方式、WebSphere MQ 移动传输方式 和 WebSphere MQ 遥感传输方式 协议接收包含这些头的消息。
消息必须包含 WebSphere MQ 消息描述符(MQMD)作为第一个头,在每条消息中它必须先于用户或应用程序数据。MQMD 包含必须与消息一起传递的基本控制信息,其中包括:
当由 WebSphere Message Broker 代理处理消息时,它通常(但不是必须的)具有一个或多个附加的头。MQMD 后面的头始终在 MQMD 内的格式字段中标识,并且它本身包含另一个格式字段来标识后面的头或用户数据的格式。
附加头包含:
在为 WebSphere Message Broker 环境编写的所有新应用程序中使用 MQRFH2 头,该环境使用基于 WebSphere MQ 技术的受支持协议。MQRFH2 头应该直接在消息的体前面(即,最后的头)。
如果未包含 MQRFH2 头(通常情况下,应用程序使用不基于 WebSphere MQ 技术的受支持协议),则必须配置处理其消息的消息流以指定消息特征(通过设置输入节点属性)。