|
|
1
0
关于系统设计方向: 首先,如果没有真正的需求,不要创建两个不同的应用程序,一个是GWT,另一个是iPhone。 创建一个写得很好的GWT应用程序。它将离线工作,没有问题,并将管理您的数据使用 HTML feature -- offline application cache 如果必须创建两个单独的应用程序 至少要省力,不要把服务器写两次,就好像你用标准的GWT软件一样,你几乎无法从独立的应用程序与服务器对话(它是通过HTTP压缩JSON的,有一些棘手的头…)或者写一些twise的东西,所以请看 RestLet library 它得到了GAE的大力支持。 关于与脱机/联机切换保持同步的方法: 有几条围裙需要考虑,它们都不完美。所以当你同意你的要求时,想想你的期望…不要做微软的Word。不要试图胜过用户。 如果在用例中至少有一个场景需要用户干预来合并更改(并且会有——把它带到银行)——那么您将为此拥有实现UI——而不是经常使用它——那么用户将习惯它。从他开始使用这个应用程序后不久,它会更好地看到它,因为很少需要它,因为您实现了一个超级duper合并逻辑,只在非常特殊的情况下要求用户……不要这样做。 平衡努力。因为这样的代码中的一个bug将给用户带来的混乱比所有的好处都要痛苦得多。 所以如何: 一种方法是执行撤消操作。 离线时-记录用户对数据所做的操作,并按时间顺序记录用户所做的操作。 一旦连接-发送到服务器并执行它们。从服务器到客户端相同。 在大多数情况下,只要你不是在编写一种每项操作都有大量数据的photoshop软件,就可以很好地工作。也被称为神经节的动作模式。 另一种方法是源代码管理方法。-版本,甚至可能是锁。非常依赖于应用程序。DBMS内部有时将其用于事务实现。 并且始终有一个只读选项,当OFline:-) |
|
|
2
2
我想你把问题弄得模糊不清了。
|
|
|
3
0
想知道您是否考虑过使用同步框架来管理同步。如果你感兴趣的话,可以看看开源项目OpenMobster的同步服务。您可以执行以下同步操作
此外,所有修改都会自动跟踪并与云同步。当网络连接断开时,您可以使应用程序脱机。它将跟踪任何更改,并在后台在连接返回时自动与云端同步。它还跨多个设备提供类似iCloud的同步 此外,云中的修改是使用推送通知同步的,因此即使数据存储在本地,数据也始终是最新的。 以下是到开源项目的链接: http://openmobster.googlecode.com 以下是iPhone应用程序同步的链接: http://code.google.com/p/openmobster/wiki/iPhoneSyncApp |