1

我目前正在开展一个项目,该项目涉及与另一个技术合作伙伴一起构建系统。系统将提供“监控”类型的功能,操作将长期运行,并返回和处理/返回给用户的大量“事件”。

我最初的反应是构建一个 Web 服务来完成所有这些处理,将结果放入数据库并允许其他技术合作伙伴查询它(通过某种 .NET WCF 服务接口)。这是我在过去构建许多诸如此类的解决方案时最有经验的地方。这似乎有点笨拙,因为通信实际上是通过在数据库中粘贴一些东西并让其他进程访问它们。

然而,我最近阅读了很多关于企业集成模式和消息传递解决方案的内容,我当然可以看到这个解决方案的一些好处。这将允许将事件放置在队列或总线上,然后进行相应的处理。它似乎比更多 RPC 类型的 Web 服务接口提供了更多的灵活性。

有没有人有任何想法/经验做出这种选择?在单一解决方案中使用混合方法是否合理?

4

1 回答 1

0

简短的回答是混合方法是可以的 - 假设有多种环境推动了对它们的需求。

如果同步调用是合适的(也许它是基于 Web 的 UI?),那么我会认为 Web 服务会“更好”;如果异步更合适,那么消息队列似乎是自然的答案。

使用 WCF,您可以在多种不同的绑定类型之间进行选择 - 包括 Web 服务、消息传递和远程处理 - 因此理论上您也可以随时通过配置更改绑定类型。

当然,也有一些陷阱:对服务的调用不能期望返回值;NetMsmqBinding 只支持一种方式的通信。

如果使用 WCF,这可能会很有趣:WCF Binding decision chart

于 2010-09-13T02:12:49.317 回答