2011-05-13 148 views
0

我正在寻找.NET解决方案以下方案。期望任何已知的框架,解决方案或一些设计想法来设计这个组件。服务层设计问题

我们有一个WCF服务,可以通过回叫客户端来更新他们的UI。一个简单的例子:当让我们说10个用户连接到这个服务,并且1个用户更新一个网格记录并保存它时,服务会回拨一个电话来更新其他9个客户端的UI。这项服务做了很多事情,因此这种与客户的直接联系减缓了这种情况,随着客户数量的增长,我们预见到了一些问题。所以,我们正在考虑在客户端和服务交谈处添加另一层来监听和广播他们的消息/事件。

我正在寻找一种解决方案,其中像消息总线或消息代理或pub-sub模型框架或想法,其中客户端和服务是分离的。这也可以用于分布式环境设施。想知道WCF提供任何设施或一些已知的解决方案或设计想法会帮助或也想知道像ESB这样的解决方案是过度的这种情况下,或者我们有什么像ESB但重量轻的MS或MSMQ只是解决这种情况。

非常感谢, 玛尼

+0

它可能有助于更详细地描述客户端(即WinForm,基于浏览器的应用程序,Java等)。推动消息总线/代理方案的要求是是否需要有保证的交付。如果客户偶尔会错过通知,那么可以使用更轻量级的东西。这里有一些好的想法(http://www.udidahan.com/2008/11/01/soa-eda-and-cep-a-winning-combo/)。 – 2011-05-13 17:34:45

+0

这是一个基于winforms的交易平台。 – 2011-05-14 21:35:42

回答

0

这真的很难回答,因为,与这样多的问题,这一切都取决于很多的因素都没有给出。

  1. 客户数量。在10到500.000.000(并发)客户端之间有许多级别和解决方案。了解并发客户端的数量以及是否需要在重新联机时发送未连接的客户端信号也很重要。

  2. 技术。如果必须支持多个客户端平台,选择将会有很大的不同。

  3. 建筑。你提到了一个ESB。你描述的场景几乎不是开发ESB的(主要)原因。所以如果没有其他的理由来开发ESB,我会远离那条路。另一方面,如果存在ESB,它可以很容易地根据给定的ESB解决您的问题。 (我可能在这里是错误的,因为我可能会认为ESB与你想要的完全不同)

  4. 安全性。在多平台环境中,安全可以成为一种驯服的野兽,但同时也是至关重要的。所以安全要求可能是一个非常有影响力的因素。

  5. 可靠性。客户错过信息有多糟糕?根据答案,设计可能会非常不同。

  6. 耐用性。如果您需要通过加载备份来恢复系统,您希望消息传递系统做什么?

  7. 表现。它应该多快?这里有很多后果。一天发送的消息与10秒内发送的消息之间的差异是巨大的。

只要这些因素(和我遗漏了很多)都是未知的,几乎不可能提供一个合适的解决方案。

你提到的所有技术都是有效的,但还有很多,有各种配置和组合可能。

+0

这是一个基于winforms的交易平台。我们也在考虑可以在两种服务之间使用相同的解决方案。我们有一个服务A1将消息发送给其他服务A的scnearios,我们正在考虑为分布式场景创建服务A2,A3,A4。所以,我们预计同样的解决方案也适合这种情况。 – 2011-05-14 21:51:07

+0

我很抱歉,但这并没有回答我的任何问题。 – 2011-05-15 05:40:53