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

问题描述:

我的服务器上有一个大约3mb的数据库。我想用我的iPhone应用程序发布。从服务器端数据库到iPhone进行单向同步的最佳方式是什么?

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

我非常*地使用技术serverside;现在,我在服务器上安装了一个sqlite数据库,里面充满了我想要同步到iphones的数据。

尝试使用网页挂钩。

WebHook的概念很简单。 A WebHook是一个HTTP回调:HTTP POST发生在 发生某些事情时;通过HTTP POST发送一个简单的事件通知 。

Web应用程序实现 WebHooks将在发生某些情况时向URL发送消息 。当网络应用程序允许用户注册 他们自己的URL时,用户然后可以 扩展,定制并将该应用程序与它们自己的定制 扩展或甚至与其他 应用程序集成在网络上。对于 用户,WebHooks是一种在发生时收到 有价值信息的方式, 而不是连续轮询 数据并且在大多数情况下不会收到任何 宝贵数据。 WebHooks 有巨大的潜力,并且 只限于你的想象! (不, 不能洗碗呢。)

你可以在这里找到更多关于网络挂接: http://www.webhooks.org/http://webhooks.pbworks.com/

+0

陛下...的声音有趣。我理解Web钩子是如何工作的(至少,我想我是这么做的)。但与iPhone结合...我如何更新我的应用程序的用户?只有推送通知才有可能,对吧?我的意思是 - 必须在我的应用程序中注册他们的手机,并且每当有所改变时,我必须做推送通知 - 或者我错过了什么? – swalkner 2010-01-25 13:13:21

+0

是的。推送通知可以工作。无论采用哪种方式,您都必须为注册用户提供某种认证。 您基本上可以创建一个CRON作业,将通知发送给用户列表(显然已被注册和验证的用户) – feketegy 2010-01-28 20:17:24

你多久需要更新一次数据库,以及这些更改有多紧急?

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

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

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

+0

不幸的是,更新频繁,漂亮迫切...... – swalkner 2010-01-21 15:34:54

不知道你是否使用同步框架来管理考虑同步。如果您有兴趣,可以看看OpenMobster的Sync服务。你可以做以下的同步操作

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

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

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

这里是一个开源项目链接:http://openmobster.googlecode.com

这里是一个iPhone应用程序同步链接:http://code.google.com/p/openmobster/wiki/iPhoneSyncApp