2014-02-27 86 views
0

在我们的应用程序中有多个客户端应用程序。跨多台服务器(机器)同步xml文件

一个客户端应用程序在单独的服务器(机器)上安装。

有一个名为reconciliation的模块,该模块的首选项(设置)保存在每个服务器的硬盘上的xml文件中。

我的要求是,我想分享一台服务器的偏好到另一台服务器仅用于查看目的。 即服务器A上的用户u1可以查看服务器B的偏好,但不能编辑这些偏好。

最重要的是首选项应该与服务器实时同步。 即服务器A上的用户u1正在查看偏好,并且此时服务器B上的用户改变偏好,那么偏好应该在服务器A上为所有用户更新。

回答

1

您可以使用每种应用程序正在侦听的某种pub/sub系统。当保存首选项时,它将发布一条消息,其中包含哪些首选项已更改的信息。每个应用程序也订阅了该系统,并会收到消息说有所改变。您可以发布首选项,并将消息存储在某个集中的地方,然后让每个应用程序都去并检索它们。

另一种方法是将首选项存储在共享文件夹中(可能是一个文件用户首选项),并让您的应用程序观察更改文件夹。当用户文件更改时,您可以重新加载文件。

如果您选择将首选项保存到数据库中,那么您需要不时轮询数据库以查看是否有任何更改。如果您使用发布/订阅系统,则可以避免轮询,但如果您不这样做,则需要考虑多久进行一次轮询数据库,以及在考虑您的实例数量时它将如何扩展应用程序正在运行以及您检查数据库的频率。

+0

酒吧子可能是一个困难的方法,因为发布到不同的机器可能是一项艰巨的任务。第二种方法意味着使用共享文件夹共享偏好很多。你能指导我,如果我保存这些偏好数据库或不。我认为首选项可以使用数据库同步。 –

+0

@NarendraJangir - 我已经添加了一些更多的信息给答案 – Sean

+0

共享文件夹中的文件对我来说工作正常,因为我们可以在文件上应用锁定机制。 –