Biztalk客户端定义的订阅项

时间:2010-12-08 17:42:26

标签: biztalk soa publish-subscribe biztalk-2010

我正在设计一个Biztalk解决方案,该解决方案要求客户端应用程序根据用户权限订阅和接收特定的事件消息子集。订阅将通过基于主题或内容的路由完成。客户端将订阅一次并接收许多消息,直到他们选择取消订阅。

客户端应用程序将在100秒内编号,订阅主题可能会定期更改,因此从Biztalk为每个接收方定义单独的发送端口不是一个可行的解决方案。

我原以为我可以构建一个额外的消息代理服务,该服务包含各个客户端订阅并分发从biztalk端口发送的消息。

我还看到可以使用业务流程构建收件人列表模式。在我看来,仍然遵循请求 - 响应模式,并且我正在向许多返回的事件消息发送单向订阅消息。

我的消息代理解决方案在我看来应该加倍Biztalk应该擅长什么,所以我想我在某个地方缺少一些重要的功能。有没有人尝试过这样的应用程序,可以给出一些指示?我是否应该将ESB工具包作为解决方案进行投资?我已经在网上看了一下,但对于这种类型的主题订阅模式,没有什么能说得很清楚。

谢谢, 菲尔

1 个答案:

答案 0 :(得分:2)

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

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

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

还有两个样本可供查看:

  1. The Itinerary On-Ramp Sample - 构建一组SOAP标头,其中包含您在测试客户端中创建的行程,从磁盘加载特定的消息文件,将行程标头附加到消息,并通过以下方式将其提交给ESB:行程安排进行处理。
  2. The Scatter-Gather Sample - 还将包含行程的SOAP标头附加到消息中,该消息通过入口提交给ESB进行处理。 Broker业务流程分析其行程步骤的设置,检索与行程步骤相关联的解析器集合,并为每个解析器解析服务端点。之后,业务流程会激活正确的ServiceDispatcher业务流程实例以分派出站请求消息。
  3. 您还应该查看“How to: Route a Single Message to Multiple Recipients Using an Itinerary Routing Slip”或者查看创建自定义行程消息服务(documentation is here)。