应用程序通信模型

应用程序可通过跨越某个受支持的传输协议将消息发送到代理或从代理接收消息来使用代理的服务。

应用程序执行该操作的方式取决于协议本身、应用程序使用的编程接口,和程序采用的通信模型。

WebSphere Message Broker 支持以下两种最终用户应用程序通信模型:

  1. 点到点
  2. 发布/预订

如果适当,单个应用程序可以混合两种样式。在混合式方案中,为该应用程序处理消息的消息流除包含一个或多个输入节点外,还至少包含一个输出节点和一个发布节点。

应用程序编程接口中对您可在应用程序中编码的编程接口进行了描述。

点到点

点到点应用程序使用请求/应答或客户机/服务器模型,或者使用分发列表将消息广播到许多目标应用程序。其他应用程序则发送单向发送/忽略消息数据报流量。这些应用程序与已知合作伙伴交换信息。每个应用程序都知道与其正在通信的一个或多个应用程序的身份。 您可创建并配置消息流以处理发送/忽略消息以及请求/应答消息,然后将它们部署到您的代理中。

下面的文字和图对发送/忽略模型以及请求/应答模型进行了描述。这些图假定应用程序使用的是 WebSphere MQ 企业传输方式协议。 虽然通过其发送或接收消息的资源不会是 WebSphere MQ 队列,但对于其他协议使用的是同一个模型。

在发送/忽略模型中,应用程序发送一条消息,但不会期待得到应答。另一个应用程序可能因第一个应用程序发送了消息而随意接收一条消息。消息流可以不发送任何消息(例如,在发送消息只为请求数据库更新时)。 图中,发送方将消息放入代理的消息流输入队列(1)。然后消息流的输出进入接收方队列(2),接收方将从该队列中获得输出(3)。


该图上方的文字描述了图的内容。

对于请求/应答消息传递,接收方会在接收到请求消息后将应答发还给发送方。请求消息的处理如发送/忽略消息所述。有两种应答方式:

  1. 接收方将应答消息直接发还给发送方,无需代理的参与。该消息发送到请求消息的消息描述符(MQMD)中的 ReplyToQ,代理不会对它进行更改而直接传递它。(如果您的应用程序使用的不是 WebSphere MQ,则必须使用其他技术以确定应答目的地。)

    在下图中,发送方将消息放入代理的消息流输入队列(1)。然后消息流的输出进入接收方队列(2),接收方将从该队列中获得输出(3)。接收方将应答直接发送到发送方的 ReplyToQ(4),发送方将从 ReplyToQ 中获得应答(5)。


    该图上方的文字描述了图的内容。
  2. 接收方将应答消息发送到代理中的应答消息流,从而使其可在到达发送方之前得以处理。在这种情况下,代理必须以应答消息流的输入队列名称替换请求消息 MQMD 中发送方的 ReplyToQ

    该应答消息流的输出必须进入发送方的 ReplyToQ。 如果名称进行了修改,表明一切顺利;如果未修改,则需要采取一些方法将该队列与应答消息进行关联。

    要执行该操作,您可以:例如,将 Database 或 DataInsert 节点包含在第一个消息流中(其中存储了有关应答目的地的信息),而第二个消息流则可对此进行检索。

    或者,消息描述符中的相关详细信息可复制到 MQRFH2 头的文件夹中,以及由消息传递。

    在下图中,发送方将消息放入代理的第一个消息流输入队列(1)。然后消息流的输出进入接收方队列(2),接收方将从该队列中获得输出(3)。接收方将应答发送到代理的第二个消息流输入队列(4)。处理应答后,代理便将其发送到发送方的 ReplyToQ(5),发送方将从 ReplyToQ 中获得应答(6)。(在这种情况下,第二个消息流的输出节点需要知道发送方的 ReplyToQ。)


    该图上方的文字描述了图的内容。

如果您用点到点模型编写的现有应用程序使用了某个受支持协议与代理进行通信,则这些应用程序可以不进行任何更改在 WebSphere Message Broker 环境中运行。

您可以通过使用代理的工具增强和扩展现有的应用程序功能以包含其他合作伙伴。例如,可以加入处理格式不同的类似数据的应用程序,因为原始消息可以由代理中的消息流转变为期望的格式,而不需要更改发送或接收应用程序。

如果识别需要额外的应用程序处理的消息,可以在消息流中创建消息的另一个副本, 并将它发送到为提供该处理而开发的新应用程序。原始应用程序不知道对消息采取的新操作,并继续不作更改地工作。

发布/预订

发布/预订应用程序通信模型包含称为发布程序的应用程序和称为订户的应用程序。发布程序通过发布特定主题使消息可用。订户通过预订主题接收消息。单个应用程序可以同时为发布程序和订户。

任何一个发布程序发布的消息都可以由任意数量的订户接收。 订户还可以接收来自任意数量的发布程序的同一主题或不同主题的消息。

在下图中,发布程序可将发布或删除发布消息发送到代理。代理会将发布消息转发到有匹配预订的订户。订户可将注册订户、注销订户或请求更新消息发送到代理。来自代理的可选响应消息会发送到发布程序和订户。


该图上方的文字描述了图的内容。

如果您具有写到发布/预订模型的现有最终用户应用程序,例如,使用 MQI 或 AMI,则可能可以将这些应用程序集成到 WebSphere Message Broker 代理域,而无须更改。

您还可以修改这些应用程序或写新的应用程序,以利用所提供的复杂的发布/预订处理(特别是对订户)。

发布/预订模型以及由 WebSphere Message Broker 提供的处理在更多主题中进行了完整的描述,可通过下面列出的相关链接了解这些主题。

相关概念
Publish/Subscribe
应用程序编程接口
相关任务
开发消息流
开发发布/预订应用程序
相关参考
最终用户应用程序支持
内置节点
Publish/subscribe
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac00450_