1

我是 BizTalk 的新手,我需要创建一个以特定方式广播消息的 BizTalk 2006 应用程序。我不是要一个完整的解决方案,而是要建议和指导,我应该使用 BizTalk 的哪些功能。

为简单起见,有一个消息源,例如,用户添加文件以发布它们的目录。有几个订阅者,每个订阅者都有一个目录来接收发布的文件。订阅者的数量在程序的开发过程中可能会有所不同。还有一些规则可以根据文件名确定特定订阅者是否需要接收特定文件。例如,每个订阅者都有一个文件名模式或掩码,他们收到的文件必须匹配。这些规则(例如,模式)也可以随时间改变。

我不知道该怎么做。在运行时创建一组发送端口,每个端口都用于每个目标?是否可以?使用一个端口更改其绑定?它可以与并发发送一起正常工作吗?还有其他方法吗?

编辑

我意识到我的问题可能是模糊和笼统的,更喜欢一个答案而不是另一个答案。所以我只是赞成他们。

4

2 回答 2

2

您可以考虑使用动态发送端口来实现这一点 - 如果您的订阅者是真正动态的。这会带来一些复杂性,因为您需要使用编排来根据您的规则配置发送端口的属性。

如果可以,请尝试消除复杂性。如果您知道在添加订阅者时不需要真正动态(即订阅者及其规则只能配置一次)并且您的订阅者数量可管理,那么我建议使用每个订阅者自己的发送端口配置并使用过滤器根据消息上下文属性创建订阅。这种方法的美妙之处在于您不需要创建和部署编排,这成为一种高性能和可扩展的解决方案。

于 2010-09-29T12:51:28.010 回答
1

如果目的地的变化会很频繁,那么您寻求更动态的解决方案是正确的。一个不错的解决方案是使用动态发送端口和业务规则引擎。您为收到的邮件创建规则集。这可以基于消息中的目标属性或客户 ID。使用这些事实,规则引擎可以返回一堆信息,如文件掩码、服务器名称、发送服务器的 IP 地址等。然后您可以使用这些信息来配置编排中的动态发送。这里真正的好处是您可以更新规则引擎中的规则集,而无需重新部署整个解决方案。作为新手,这些是一些高级概念,但并不像您想象的那么困难。

对于更简单的解决方案,您可能需要查看通过其属性架构(即文件名、目录等)设置文件发送适配器属性。您可以使用表达式形状内的辅助类从数据库中提取这些值。在每条消息发出时,使用属性 shcema 设置消息将发送和命名的位置。这样,您只需在事情发生变化时更新数据库。

祝你好运!

于 2010-09-30T14:07:52.043 回答