1

场景:我有一个桌面应用程序使用的通用数据遍布全球。公用数据会频繁更改,需要分发到全球范围内的桌面应用程序。

方法

  1. 从全球分布的桌面应用程序调用 Web 服务,每次都获取公共数据进行处理。 缺点:服务器每次调用一个桌面是非常昂贵的操作。
  2. 将公共数据作为xml文件下载到全球所有桌面应用程序中,如果公共数据发生任何变化,则需要下载更改的数据(应该是推送技术) 缺点:如果不是推送技术,那么成本会很高

是否有任何推送技术来处理上述情况。(即,如果在服务器中进行了任何更改,则仅关闭更改)

以上哪种方法比较好,或者有比这更好的方法吗?

4

1 回答 1

0

桌面应用程序是修改数据还是仅仅是“服务器”定义的东西?

如果服务器修改数据并且客户端只读使用,则有很多选项:

  • 您可以将数据存储在共享的 DropBox 文件夹中。

  • 您可以向 Web 服务添加一个方法,该方法在每次数据更改时返回一个新的 GUID,让客户端知道应该再次下载数据。从服务器获取单个 GUID 应该不会很昂贵(尤其是与一次性下载所有数据相比)

  • 您可以使用 RabbitMQ 之类的东西来扇出对所有客户端的更改(如果有一个开放的 TCP 连接是一个选项

如果允许桌面客户端修改数据并且有多个客户端同时修改该数据,您可能需要采用完全不同的方法。但在这种情况下,您的问题中没有足够的信息来真正给您一个好的答案。

于 2012-12-25T09:16:11.280 回答