2010-12-22 57 views
6

我想知道是否有人知道任何设计模式,文章或其他信息的设备之间同步设置的问题。是否有任何设计模式的配置同步

说一个网站,一个iPhone应用程序和一个iPad应用程序;随着未来的设备出现。

任何信息将不胜感激。如果您需要更多信息,要正确回答,请说出来,然后我可以详细说明问题。

+0

你的意思是*应用程序设置*为一个应用程序,可在网上和作为各种设备上的本地应用程序如果不是,你在谈论什么样的*设置?如果是这样,它是什么类型的应用程序,你只是想同步'设置'(假定是少数简单的数据对象)或更复杂的应用程序数据? – Ergwun 2010-12-23 03:43:57

+0

是的应用程序设置喜欢多个'喜欢'和'不喜欢'的各种事情很简单的对象字符串基本上。在各种在线和离线设备上可用的消费者应用程序中。像MobileMe一样,甚至谷歌同步。无法保证任何一台设备将在线并每天进行同步,并且每台设备上的内容都会被添加和删除 – Dan 2010-12-23 14:27:04

回答

2

你可以遵循这个SyncML标准的link。这可以给你一个模板来扩展框架,以容纳更多的数据和设置尚未办理This - 给出了一个开源的同步框架细节

1

原谅我,如果以下似乎太笼统,但我试图保持它的高的水平,使得它落在你的问题行。我不知道你要找的东西本身就叫做“设计模式”。这听起来像你正在寻找一个同步范例/系统。请注意,我在此回复中的假设是,您需要为您的应用程序提供在线和离线功能(因为您明确提到了同步)。如果我错了,请告诉我。

特别是,您可能要查找的内容通常是通过两件事来实现的:1)“分布式”数据库(可以在客户端应用程序(如移动应用程序)上以及在任何服务器上脱机工作)和2)同步和冲突解决机制。

一个很好的例子就是源代码管理工具Git。 Git具有上述两个特征。首先,它使用一个数据库(例如一个Git项目的文件系统)是分配(例如项目可以从一个开发者的工作站克隆到另一个独立工作的。)其次,它具有同步和冲突解决机制的机制。也就是说,如果我尝试从同事的工作站进行同步(例如,更改),她的代码和我的代码之间的差异可能会合并(自动或手动合并)。

另一个示例,也许更相关您的应用程序是Evernote。如果我没有弄错,Evernote使用相同类型的范例(平面文件数据库)来同步文档,并且有桌面客户端,网站和移动客户端。

这并不是说您需要使用平面文件数据库。您可以轻松使用关系数据库或其他数据库。此外,根据您尝试存储和同步的数据类型,您可以通过非常简单的冲突解决方案逃脱。 (例如,如果您只是存储状态更新,投票计数等,也许您只是选择数据库中的最新条目。)

简而言之,我提到的工具似乎遵循这种工作流程:

  1. 在客户端应用程序上启动会话时,通过联机并提取新数据来同步或“更新”客户端。这是您识别和解决客户端数据与服务器或“云”上的数据之间的冲突的地方。
  2. 编辑或创建客户端上的数据“离线”,无论是网站,移动应用等
  3. 同步或“更新”云的上线,推动数据你改变
+0

正确。但是我正在寻找一个系统的设计来实现你所提到的,无论它是一种“模式”还是与人们讨论实现这种系统的各种方法及其相关优点和缺点的文章的链接。你知道任何事情或任何地方这个信息可能是? – Dan 2010-12-28 23:03:36

相关问题