为混合环境选择消息传递提供程序

如果现有的或计划内的消息传递环境涉及 IBM MQWebSphere® Application Server 系统,请选择使用缺省消息传递提供程序或 IBM MQ 消息传递提供程序或同时使用两者(通过考虑消息传递要求、业务环境及每个消息传递应用程序的要求)。

关于此任务

如果要在应用程序服务器之间进行消息传递,并且要与 IBM MQ 系统进行某些交互,那么可使用缺省消息传递提供程序或 IBM MQ 提供程序。这两种提供程序一样重要。 选择哪种提供程序主要取决于与您的业务环境相关的因素和计划对该环境所作的更改,以及每个 JMS 应用程序需要执行的操作。 而且,这两种类型的消息传递提供程序不会相互排斥:

  • 可以在一个单元中配置两种类型的提供程序。
  • 不同的应用程序可以使用相同的或不同的提供程序。

与您的业务环境相关的因素包括以下各项:

  • 消息传递需求
  • 现有技能集
  • 现有消息传递基础结构
  • 计划对该基础结构所作的更改

如果只使用一种提供程序,那么配置和管理消息传递基础结构较简单。如果消息传递主要在 IBM MQ 中进行,那么可能应选择 IBM MQ 消息传递提供程序。同样,如果消息传递主要在 WebSphere Application Server 中进行,那么可能应选择缺省消息传递提供程序。

如果您的业务环境没有明确地指示您应该只使用一种提供程序,那么应该考虑使用两种提供程序的混合体以及为每个应用程序选择最合适的消息传递提供程序。 一个用于执行此操作的有用方法是标识应用程序使用的目标类型(服务集成总线或者 IBM MQ 队列或主题)。如果应用程序只使用总线目标,那么必然的选择是使用缺省消息传递提供程序(解决方案“DMP”)。如果应用程序需要与一个或多个 IBM MQ 目标进行通信,那么您可以根据您的业务环境、使用方案以及系统拓扑选择任何以下解决方案:
  • 使用 IBM MQ 消息传递提供程序(解决方案“MQP”)。
  • 使用缺省消息传递提供程序将 IBM MQ 服务器(IBM MQ 队列管理器或队列共享组)集成为总线成员(解决方案“DMP 互操作,总线成员”)。
  • 通过使用 IBM MQ 链接,使用缺省消息传递提供程序将 IBM MQ 网络集成为外部总线(解决方案“DMP 互操作,外部总线”)。

有关这些解决方案的更多信息,请参阅与 IBM MQ 的互操作:关键功能比较

为了帮助您在这些解决方案之间进行选择,以下若干个步骤中都包含表,其中每行都表示一个业务或系统需求并且星号 (*) 指示可能的满足需求的最有效解决方案。 这些表旨在提供一般指南,而不是准确标识解决方案。大部分需求有多个可能的解决方案,没有带星号也不一定表示您不能使用此解决方案。 要通过使用这些表获取最佳指南,请执行以下操作:
  • 关注反映最重要的需求的这些行。
  • 对于所考虑的所有行,计算每个解决方案的星号数。
星号最多的解决方案可能最有效。

过程

  1. 如果您使用 IBM MQWebSphere Application Server 的经验有限,并且尝试决定最适合消息传递需要的产品,请参阅WebSphere Application Server 和 IBM MQ 消息传递的对比
    注: 无论选择哪种产品作为消息传递的重点,您都可以仍然使用缺省消息传递提供程序或 IBM MQ 提供程序以在产品之间进行互操作。
  2. 考虑您的业务环境,以了解是否可以只使用一种提供程序。
    决定使用哪种提供程序时,请考虑以下约束:
    • 当前和未来的消息传递需求
    • 现有消息传递基础结构
    • 组织中存在的技能集

    如果当天在 IBM MQ 中执行大多数消息传递,那么继续使用该方法在 WebSphere Application Server 中将 IBM MQ 配置为外部 JMS 提供程序(即,使用 IBM MQ 消息传递提供程序)。如果 WebSphere Application Server 应用程序的 JMS 需求受限,那么将服务集成总线用于这些应用程序是否会带来足够的好处尚无定论。

    如果 WebSphere Application Server 中的消息传递应用程序不需要与 IBM MQ 网络进行互操作,那么使用缺省消息传递提供程序(服务集成总线)。如果 WebSphere Application Server 的消息传递需求要求与 WebSphere Application Server 进行紧密集成,那么服务集成总线会提供以下好处:

    • 集成管理
    • WebSphere Application Server 高可用性功能
    • WebSphere Application Server 可伸缩性

    如果选择使用缺省消息传递提供程序在服务集成与 IBM MQ 之间进行互操作,那么应该知道在服务集成格式与 IBM MQ 格式之间转换消息时会产生额外的成本。

    此外,请考虑以下消息传递方案:

    • 已安装的大型 IBM MQ 队列管理器(可能带有消息代理产品)主干。

      如果要使用 WebSphere Application Server 来运行新引进的消息传递应用程序,那么可以部署 WebSphere Application Server (JMS) 消息传递应用程序,它将与使用 IBM MQ 队列或主题的现有应用程序交换消息。

    • WebSphere Application Server 安装版本,可能带有现有 Web 和企业应用程序,但没有 WebSphere Application Server 消息传递应用程序。

      如果没有现有消息传递基础结构,那么可以部署 WebSphere Application Server (JMS) 消息传递应用程序,以与使用服务集成总线目标的现有 WebSphere Application Server 消息传递应用程序交换消息。

    • 使用 WebSphere Application Server 连接 WebSphere Application Server 消息传递应用程序的基础结构。

      在一对 WebSphere Application Server 应用程序之间引入 WebSphere Application Server (JMS) 消息传递。

    • 包括 IBM MQ 和服务集成总线的基础结构。这可能是合并的结果,或者因为消息流经的方向是从 WebSphere Application Server 至 WebSphere Application Server,或从 IBM MQIBM MQ,但通常不是 WebSphere Application ServerIBM MQ 之间。

      部署 WebSphere Application Server (JMS) 消息传递应用程序,以与使用 IBM MQ 队列或主题的应用程序交换消息。

  3. 如果您的业务环境没有明确指示您应该只使用一种消息传递提供程序,那么使用两种消息传递提供程序的混合体并根据应用程序使用的目标类型为每个应用程序选择最合适的提供程序。

    应用程序可能需要与使用一个或多个已知类型的已知目标的现有伙伴应用程序或服务交换消息。 或者,这些伙伴应用程序或服务可能尚未部署以及目标类型的选项可能仍然处于打开状态,在这种情况下,解决方案架构设计师需要确定将这些应用程序或服务连接在一起的最佳方式。

    如果应用程序使用多个目标,那么会存在四种可能的结果:

    注: 如果不存在应用程序为何使用 IBM MQ 目标而非总线目标的明确业务或技术原因,并且伙伴应用程序也是 WebSphere Application Server JMS 应用程序,那么考虑将现有目标迁移至服务集成以便应用程序只使用总线目标。
  4. 如果应用程序只使用总线目标,那么将该应用程序及其 JMS 资源配置为使用缺省消息传递提供程序。
  5. 如果应用程序只使用 IBM MQ 目标(队列或主题),那么使用以下核对表来确定要使用的提供程序解决方案。
    表 1. 只使用 IBM MQ 目标的应用程序的提供程序核对表. 此表的第一列将列示仅使用 IBM MQ 目标的应用程序的业务要求或系统要求的核对表问题。在第二列中,IBM MQ 消息传递提供程序 (MQP) 解决方案满足的要求标有星号。在第三列中,缺省消息传递提供程序总线成员(DMP 互操作,总线成员)解决方案满足的要求标有星号。在第四列中,缺省消息传递提供程序外部总线(DMP 互操作,外部总线)解决方案满足的要求标有星号。在第二列到第四列中,该列中显示的解决方案不满足的所有要求未标星号。
    问题: MQP DMP 互操作,总线成员 DMP 互操作,外部总线
    性能是否重要?

    (如果重要,请直接使用 IBM MQ,而不执行消息转换。)

    *
    应用程序是否必须发送或接收大型消息(即,消息 > 500k。)? *
    位置透明性是否有利于简化应用程序的编程和部署? * *
    应用程序是否必须从 IBM MQ 队列开始处理,该队列的配置是否已修正?

    (即,无法将队列移至服务集成,并且您不希望部署推送式 IBM MQ 应用程序来将消息发送至总线目标。)

    * *
    伙伴应用程序是否为将作为总线或 IBM MQ 客户机在 WebSphere Application Server 外部运行的 JMS 应用程序?

    (不要混合服务集成与 IBM MQ(除非您必须这样做);纯 IBM MQ 或服务集成解决方案更简单并且避免了在服务集成与 IBM MQ 格式之间转换消息的成本。)

    *
    伙伴应用程序是否为非 JMS(非 WebSphere Application Server)应用程序?

    (无论在哪里都可以选择纯 IBM MQ 或服务集成解决方案。根据您的 API 首选项来使用 MQI IBM MQ 客户机、XMS IBM MQ 客户机或 XMS 总线客户机。)

    *
    是否希望将 IBM MQ 网络与 WebSphere Application Server 应用程序之间传递的流量汇集到长时间运行的单一连接? *
    是否要使用 WebSphere Application Server 的高可用性功能? *
    应用程序与 IBM MQ 队列共享组之间是否需要 XA 两阶段落实 (2PC)? * 请参阅1 * 请参阅2
    应用程序与 IBM MQ 集群之间是否需要 XA 两阶段落实 (2PC)? *
    是否要使用 WebSphere Enterprise Service Bus 调解来自 IBM MQ 队列的消息或将消息传递至该队列?

    (例如,使用 WebSphere Business Integration 适配器,或连接至 CICS® 之类的服务提供程序。)

    *
    应用程序是否必须从 IBM MQ 队列开始处理,该队列的配置是否已修正?

    (即,无法将队列移至服务集成,并且您不希望部署推送式 IBM MQ 应用程序来将消息发送至总线目标。)

    * *  
    注:
    • 1 只要使用 IBM MQ V7.0.1。
    • 2 XA 两阶段落实可与 IBM MQ 链接配合使用,但它仅适用于将消息发送至 IBM MQ 链接时。它不适用于后续使用存储转发将消息从 IBM MQ 链接发送至 IBM MQ 队列管理器时。
  6. 如果应用程序同时使用总线和 IBM MQ 目标(例如,从服务集成开始处理并发送至 IBM MQ),那么任一缺省消息传递提供程序互操作模型都可以通过使用单一连接工厂或激活规范来支持此功能。 使用以下核对表来帮助您决定是使用总线成员还是外部总线解决方案。
    表 2. 使用总线与 IBM MQ 目标的混合体的应用程序的提供程序核对表. 此表的第一列将列示同时使用总线和 IBM MQ 目标的应用程序的业务要求或系统要求的核对表问题。在第二列中,缺省消息传递提供程序总线成员(DMP 互操作,总线成员)解决方案满足的要求标有星号。在第三列中,缺省消息传递提供程序外部总线(DMP 互操作,外部总线)解决方案满足的要求标有星号。在第二列和第三列中,该列中显示的解决方案不满足的所有要求未标星号。
    问题: DMP 互操作,总线成员 DMP 互操作,外部总线
    应用程序是否必须从 IBM MQ 共享队列开始处理? *
    是否希望将 IBM MQ 网络与 WebSphere Application Server 应用程序之间传递的流量汇集到长时间运行的单一连接? *
    是否需要在 WebSphere Application Server V7 和 IBM MQ V7 之前的版本中使用 IBM MQ *
    是否要存储转发功能以在 IBM MQ 队列管理器不可用时允许应用程序继续发送消息? *
    是否不希望配置服务器连接通道?

    (这是因为它们会打开端口,这可能会被视为安全性风险。)

    * 请参阅1
    是否希望定义服务器连接通道而不是发送方和接收方通道对? *
    是否只想使用绑定连接? *  
    注:
    • 1 仅当要通过 IBM MQ 链接将消息从 IBM MQ 发送至服务集成总线时才适用(尽管您需要打开通向应用程序服务器的端口)。通过 IBM MQ 链接将消息从服务集成总线发送至 IBM MQ 需要打开穿过防火墙通向队列管理器的端口。
  7. 如果尚不知道目标类型,请确定已知问题的相对优先级,然后使用以下的核对表来评估通过可能的提供程序解决方案可以在多大程度上解决各个问题。

    需要作的最基本选择是此应用程序应该使用哪种类型的目标。尚未确定目标类型,因此,有可能会使用四种解决方案中的任意一种,但一般来说,您应该以解决方案“DMP”或“MQP”为目标,这是因为纯 IBM MQ 或服务集成解决方案更简单并且避免了在服务集成与 IBM MQ 格式之间转换消息的成本。

    表 3. 尚不知道其目标类型的应用程序的提供程序核对表. 此表的第一列将列示尚不知道其目标类型的应用程序的业务要求或系统要求的核对表问题。在第二列中,缺省消息传递提供程序 (DMP) 解决方案满足的要求标有星号。在第三列中,IBM MQ 消息传递提供程序 (MQP) 解决方案满足的要求标有星号。在第四列中,缺省消息传递提供程序总线成员(DMP 互操作,总线成员)解决方案满足的要求标有星号。在第五列中,缺省消息传递提供程序外部总线(DMP 互操作,外部总线)解决方案满足的要求标有星号。在第二列到第五列中,该列中显示的解决方案不满足的所有要求未标星号。
    问题: DMP MQP DMP 互操作,总线成员 DMP 互操作,外部总线
    您是否已有管理 IBM MQ 方面的丰富技能? * * *
    是否希望由 IBM MQ 团队来管理所有消息传递? *
    是否有熟悉 WebSphere Application Server 但不熟悉 IBM MQ 的管理员? *
    是否希望消息传递产品具有大型的安装库(包括参考)以及品种齐全的 ISV 工具? *
    WebSphere Application Server 之外,是否不愿意购买单独许可的产品? *
    WebSphere Application Server 之外,是否不愿意安装并管理单独的产品? *
    您是否已准备好使用 IBM Integration Bus(在旧发行版中称为 WebSphere Message Broker)?

    (如果已在使用该产品,那么一定需要 IBM MQ)。

    * * *
    应用程序是否必须发送或接收大型消息(即,消息 > 500k。)? *
    位置透明性是否有利于简化应用程序的编程和部署? * * *
    吞吐量需求是否需要多个并行通道或路径? * * *
    伙伴应用程序是否为还将在 WebSphere Application Server 中运行的 JMS 应用程序?

    (服务集成在 WebSphere Application Server 应用程序服务器中运行。在分布式平台上,这表示它正在运行。[z/OS]在 z/OS® 平台上,它在另一个区域中。因此,使用缺省消息传递提供程序可以在分布式平台上提供性能优势,但在 z/OS 平台上则不能提供此优势。

    *
    伙伴应用程序是否为将作为总线或 IBM MQ 客户机在 WebSphere Application Server 外部运行的 JMS 应用程序?

    (不要混合服务集成与 IBM MQ(除非您必须这样做);纯 IBM MQ 或服务集成解决方案更简单并且避免了在服务集成与 IBM MQ 格式之间转换消息的成本。)

    * *
    伙伴应用程序是否为非 JMS(非 WebSphere Application Server)应用程序?

    (无论在哪里都可以选择纯 IBM MQ 或服务集成解决方案。根据您的 API 首选项来使用 MQI IBM MQ 客户机、XMS IBM MQ 客户机或 XMS 总线客户机。)

    * *
    维持严格的消息顺序是否重要? *
    应用程序是否需要 IBM MQ 集群的灵活性和便利性?

    IBM MQ 集群使管理更简单,并提供了选择性的集群队列并行性。即,可以在 IBM MQ 集群中的任何(但不必是所有)队列管理器上创建集群队列的实例。 发送至集群队列的消息可以寻址至队列的特定实例,或允许根据工作负载管理统计信息动态地选择实例。WebSphere Application Server 集群体现了此灵活性的一部分,但是您无法在集群总线成员的部分消息传递引擎上创建总线目标的分区。)

    * * *
    应用程序是否需要 IBM MQ for z/OS 共享队列提供的高可用性级别? * * *
    是否要使用 WebSphere Application Server 集群的高可用性或可伸缩性功能? * * *

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tmj_jmsp_mixed
文件名:tmj_jmsp_mixed.html