从服务器端数据库到iPhone进行单向同步的最佳方法是什么?

时间:2010-01-21 11:47:15

标签: iphone sqlite data-synchronization

我的服务器上有一个大约3mb的数据库。我想用我的iphone应用程序运送它。

最重要的是我想推动对iphone的数据库更改(插入,更新,删除)。这样做的最佳方法是什么?我的意思是 - 什么是必要的 - 服务器 - 客户端(= iphone) - 之间;如何传输这些数据?

我很自由地使用技术服务器;现在,我在服务器上有一个sqlite数据库,里面装满了我要同步到iphone的数据。

3 个答案:

答案 0 :(得分:2)

您需要多久更新一次数据库,以及更改的紧急程度?

如果数据库更新不常见且非紧急,我会让应用程序在启动时检查数据库的新版本,如果已更改,请下载整个新文件。

应用程序始终会在启动时从已知URL下载小元数据文件。元数据文件包含最新版本的版本标识符以及可以下载该版本数据库的位置。如果版本标识符已从应用程序已有的版本更改,则将下载新版本。如果版本标识符未更改,或者无法检查,则应用程序可以继续使用它具有的版本。

专业提示:如果要显示下载的进度条,请在元数据文件中包含数据库的大小。单元网络通常具有透明代理,从HTTP响应中去除Content-Length头。

答案 1 :(得分:1)

尝试使用网络摘要。

  

WebHook的概念很简单。一个   WebHook是一个HTTP回调:一个HTTP   什么时候发生的POST   发生;一个简单的事件通知   通过HTTP POST。

     

实施的Web应用程序   WebHooks会将消息发布到URL   当某些事情发生时。当一个网络   应用程序使用户能够注册   他们自己的URL,然后用户可以   扩展,定制和集成   应用程序有自己的自定义   扩展甚至与其他扩展   网络应用程序。为了   用户,WebHooks是一种接收方式   有价值的信息发生时,   而不是继续轮询   那数据并没有收到任何信息   大部分时间都很有价值。网络挂接   具有巨大的潜力   只受你想象力的限制! (没有,   它不能洗碗。爱好。)

您可以在此处找到有关Webhooks的更多信息: http://www.webhooks.org/http://webhooks.pbworks.com/

答案 2 :(得分:1)

不知道您是否考虑过使用Sync Framework来管理同步。如果您感兴趣,可以查看开源项目OpenMobster的Sync服务。您可以执行以下同步操作

  • 双向
  • 单向客户
  • 单向设备
  • 在启动

除此之外,所有修改都会自动跟踪并与云同步。当网络连接断开时,您可以让您的应用离线。它将跟踪任何更改,并在连接返回时自动在后台与云同步。它还提供跨多个设备的iCloud同步

此外,使用推送通知同步云中的修改,因此即使数据存储在本地,数据也始终是最新的。

以下是开源项目的链接:http://openmobster.googlecode.com

以下是iPhone App Sync的链接:http://code.google.com/p/openmobster/wiki/iPhoneSyncApp