WCF Web服务和客户端

时间:2009-11-03 21:41:56

标签: wcf

我对WCF服务有一些问题,我将不胜感激。我已经阅读了很多关于如何将WCF服务应用于现实场景的材料,但是有很多矛盾的观点。

我们有一个数据服务,它只不过是后端数据存储的接口。此数据服务有许多客户端,当数据服务保存的数据发生更改时,应通知这些客户端。这些客户端随后可以基于这些通知从数据服务请求数据。我们想支持最多2000个客户端(不是基于Web的解决方案,但可能是一个大型的分散网络)。

我的担忧:

·如果服务和客户端之间的连接丢失,客户端应立即知道。

·服务应在短时间内通知客户数据变更。该通知不能排队等待,也可以在以后收到。

·我们不希望客户端有大量的配置工作来使其与服务一起使用。

·如果服务和客户端不能很好地扩展,我们不希望永久连接。

我们研究过的方法:

·MSMQ

·双面装订

·轮询事件(包括Silverlight 3的新轮询绑定)

·订阅/发布方法。

我们发现所有这些都有缺点,似乎没有一种最佳方式可以做我们想要的事情。

任何帮助都将不胜感激。

由于 伊恩

2 个答案:

答案 0 :(得分:5)

完成第一个问题的唯一方法是违反第四个问题:为了让客户知道连接断开,需要一个恒定的轮询机制(“立即”“)或保持开放连接。 WFC不适合打开连接,因此首先要关注的是反对使用它。

无论您选择哪种技术,您的第二个问题都会引入规模问题。从长远来看,状态连接模式将更难实现和扩展,因此您可能希望检查问题是完整的业务需求还是仅仅是首选项。

答案 1 :(得分:3)

这不是您正在寻找的,但是当涉及基于事件的服务架构时,要咨询的人(或博客)是Udi Dahan

他的文章Event-Driven Architecture: SOA Through the Looking Glass很好地概述了他对这些问题的处理方法。虽然那篇文章没有明确讨论WCF,但他对WCF也有很多了解,所以我只能建议浏览他的博客,看看有什么东西对你有用。