Rails应用程序和iPhone应用程序之间的数据同步策略

Rails应用程序和iPhone应用程序之间的数据同步策略,iphone,ruby-on-rails,web-services,synchronization,Iphone,Ruby On Rails,Web Services,Synchronization,我已经编写了许多iPhone应用程序,它们从web服务中提取数据,并且我一直致力于在iPhone应用程序和web应用程序之间同步数据,但我总是觉得可能有更好的方法来处理同步 我想知道您使用了哪些策略来同步iPhone(阅读:移动)应用程序和Rails(阅读:网络)应用程序之间的数据 是否有任何策略的规模特别大 您是如何处理大量数据的?(您是否使用分页回复?) 如何确保数据不会被覆盖 有没有理由避免使用RubyonRails? 如果是的话,你能提出一个替代方案吗?替代方案有什么更好的地方 哪

我已经编写了许多iPhone应用程序,它们从web服务中提取数据,并且我一直致力于在iPhone应用程序和web应用程序之间同步数据,但我总是觉得可能有更好的方法来处理同步

我想知道您使用了哪些策略来同步iPhone(阅读:移动)应用程序和Rails(阅读:网络)应用程序之间的数据

  • 是否有任何策略的规模特别大
  • 您是如何处理大量数据的?(您是否使用分页回复?)
  • 如何确保数据不会被覆盖
  • 有没有理由避免使用RubyonRails?
    • 如果是的话,你能提出一个替代方案吗?替代方案有什么更好的地方
  • 哪些战略失败了?
    • 为什么你认为这些策略失败了
我希望能够在服务器上保留所有数据修改,但我即将开始工作的特定应用程序需要在与网络断开连接时能够运行

用户将能够更新移动设备上的数据,并通过web应用程序更新数据


当用户的移动设备连接到服务器时,任何本地更改都将被推送到服务器。

这并不是对您的整个问题的回答,但我从移动角度开始做的一件事情是在发送服务器同步数据的逻辑和web服务器本身之间设置一层

我已经创建了一个数据实体,它只是一个通用的同步对象,我正在存储一个唯一的ID、有效负载和上次尝试的交付日期。我还有一个逻辑,就是从核心数据中获取同步对象并发送它们。如果收到良好的响应(即,响应实际返回且响应文本与我预期的一致),则该同步对象将被删除。这有助于确保同步数据正确到达目的地,而不仅仅是在海上丢失。这也是脱机操作的良好模式。您可以在脱机时存储同步对象,并在重新联机后开始按顺序发送它们


从web的角度来看,Rails Metal听起来可能适合这种情况。我自己从来没有用过,但根据一些阅读资料,它看起来像金属是用于高流量的情况下可能是可能的,快速反应是至关重要的。它基本上减少了Rails路由器等的开销。希望能有所帮助。

如果你使用的是rails,你可以看看我刚写的plistifier插件:看看我的plistifier插件

我问这个问题已经两年了,情况发生了巨大的变化。现在,他们是后端即服务提供商,比如苹果发布了iCloud,一些与外部数据源同步的开源项目如雨后春笋般涌现


最终,我只需要在设备上保留最新服务器数据的副本,因此我为每个模型对象添加了一个时间戳,并设置Web服务以提供自传入时间戳以来更新的所有对象。API将以FIFO顺序输出所有对象,我可以在手机上使用这些对象,对于后续调用,我将要求所有更新的对象,因为我的设备上有最大时间戳。在实践中,效果非常好。

我一直在做类似的事情,尽管我的同步对象也处理通信。我想我更喜欢你的方法。是否正在CoreData中保存同步对象?或者只是存档?是的,它们被保存为coredata对象。这个rails插件有什么好处?