将服务器中的公共数据分发到全球的桌面应用程序的最佳方法

时间:2012-12-25 03:33:22

标签: c# .net algorithm

方案:我有一个全球范围内桌面应用程序使用的公共数据。公共数据将以频繁的方式进行更改,需要分发到全球范围内的桌面应用程序。

途径

  1. 从全局传播的桌面应用程序调用Web服务,每次都获取公共数据进行处理。 缺点:每次服务器调用桌面都是非常昂贵的操作。
  2. 将作为xml文件的公共数据下载到全局传播的所有桌面应用程序中,如果常见数据发生任何变化,则需要下载更改的数据(应该是推送技术) 缺点:如果不是推技术,则成本高昂
  3. 是否有任何推送技术可以处理上述情况。 (即,如果在服务器中进行了任何更改,那么只会更改)

    哪种方法对上述方法有好处,还是有比这更好的方法?

1 个答案:

答案 0 :(得分:0)

桌面应用程序是否会修改数据,或者只是修改数据 由“服务器”定义?

如果服务器修改了数据,那么它只供客户端使用 有很多选择:

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

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

  • 你可以使用像RabbitMQ这样的东西来扇动对所有客户端的更改(如果有一个开放的TCP连接是一个选项

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