3

I am designing a Biztalk solution which requires client applications to subscribe and receive only a certain subset of event messages depending on their user permissions. Subscription will be done through topic or content based routing. The client will subscribe once and receive many messages until they choose to unsubscribe.

Client applications will number in the 100s and subscribed topics could change on a regular basis, so defining an individual send port from Biztalk for each reciever isn't a viable solution.

I have thought I could build an additional message broker service which holds the individual client subscriptions and distributes messages sent from a biztalk port.

I have also seen that a recipient list pattern can be build using orchestrations. This appears to me to still follow a request-response pattern though and I am after 1 way subscribe message to many returned event messages.

My message broker solution seems to me to be doubling up on what Biztalk should be good at so I imagine I am missing some important functionality somewhere. Has anyone tried such an application before and can give some pointers? Should I be investingating the ESB toolkit as a solution? I have had a look on the net but nothing makes it very clear for this type of topic-subscription model.

Thanks, Phil

4

1 回答 1

2

请查看 ESB 工具包。您可以使用它添加到 BizTalk 的行程功能,可以与内置解析器之一(例如,UDDI)或您自己的自定义解析器一起使用。这允许您根据配置(存储在业务规则或其他地方)路由消息。

您将在 MSDN 上找到一个面向开发人员的 ESB 工具包概述视频,该视频对设计过程和工具进行了不错的介绍。那里还有其他几个有用的视频。

您的特定场景可以通过单个行程完成,如此所述。使用带有 ESB Dispatch Disassembler 组件的接收管道,配置多个解析器,并为每个解析器生成一条新消息。

还有两个样本可供查看:

  1. Itinerary On-Ramp Sample - 构建一组包含您在测试客户端中创建的行程的 SOAP 标头,从磁盘加载特定的消息文件,将行程标头附加到消息中,并通过行程将其提交给 ESB用于处理的入口。
  2. Scatter-Gather 示例- 还将包含行程的 SOAP 标头附加到消息中,该消息通过入口匝道提交给 ESB 进行处理。Broker 编排分析其行程步骤的设置,检索与行程步骤关联的解析器集合,并为每个解析器解析服务端点。之后,编排激活适当的 ServiceDispatcher 编排实例来分派出站请求消息。

您还应该查看“如何:使用行程路由单将单个消息路由到多个收件人”,或者查看创建自定义行程消息服务(文档在此处)。

于 2010-12-17T21:53:24.500 回答