如何在客户端之间保持对象同步

时间:2012-02-13 09:34:16

标签: c# sql object synchronization

假设两台客户机器召回一张票。如果一个客户端进行了更改,那么保持第二个客户端同步的最佳方法是什么?显然,我不希望第二个客户端覆盖第一个客户端的更改,但另外我希望更新第二个客户端,因为它可能会根据需要包含其他计算机所做更新的故障单执行操作。

我考虑过的一些方法:

MSMQ - 我们的应用程序实际上习惯使用它,但是当我被雇用时,它只是不再使用的死代码。我已经考虑恢复它,但我不认为MSMQ提供了我想要的功能,不仅仅是通知其他客户的变化,而且还分发了这一变化。

SQL Service Broker - 从我看过这一段时间已经有一段时间但是我当然记得这不是我想去的路线。

Web服务 - 我认为让一个Web服务中间负责形成业务对象并将其分发出去将是一个部分修复,除了我们的事实应用程序纯粹是Windows窗体。但是,确实有另一种方法可以在不需要实际的Web服务器的情况下实现它吗?

套接字 - 我考虑过只创建一个与我们的业务对象集成的Windows服务,并使用Windows套接字来a)告诉其他客户需要调用数据库进行更新或b)实际上给客户端更新所以他们不需要调用数据库。

这对我来说是一个新的领域,我不知道有任何好的书籍或文章涉及处理这个问题的设计模式,所以如果你知道它们,请指导我。

2 个答案:

答案 0 :(得分:1)

我不确定但你可以使用

Observer   - 定义对象之间的一对多依赖关系,以便当一个对象更改状态时,将自动通知和更新其所有依赖项。

enter image description here

并实施它

答案 1 :(得分:1)

关于您的网络服务选项,请注意WCF不要求网络服务器。它所需要的只是一个主持人,你可以implement one yourself琐碎。该主机可能是满足您需求的Windows服务。