我正在寻找使用特定方法,文件格式(例如syncML)和库(funambol,其他?)的经验/意见/学习,以便在多个移动设备和Web服务器之间同步列表?
我们希望用户能够在多个移动设备和网络中编辑列表,并定期进行同步处理,优雅地处理冲突等......而无需重新发明轮子。
syncML经验,用于syncML或其他人和体验的库(带有Apache样式许可证)将非常感激。
我们正在发展:
- 用于服务器的Java SE(appengine和其他平台) - 所以Java Servlet 2.3
- J2ME(在Symbian等上)
- iOS
- Android
所以如果可能的话,想要在这些平台上拥有广泛覆盖和良好库的解决方案。
数据
列表中的项目将是产品。这可能与用户输入的文本名称或具有许多字段的结构化产品描述一样简单。我们已经为此定义了XML格式,它将会发展它。我们倾向于同步这些XML片段的列表。
冲突
我们仍然必须准确定义冲突的解决方式,或者用户是否可以选择行为 - 有点像ActiveSync和其他PC解决方案。我们不打算在这方面做任何新的事情。
详细
我们希望列表的每个移动“副本”能够将数据存储在本地数据存储区中,其中包含上次与服务器同步的日期以及变更列表sinc。我们还希望列表中的每个项目都具有本地ID,以及用于在同步过程中提供帮助的全局(服务器ID)。
以上的非线格式
我们更喜欢在同步期间使用XML格式进行数据传输,其中包含一个或多个列表,每个列表中的项目作为元素,每个项目的ID都作为元素的属性。
答案 0 :(得分:0)
列表中的对象是什么?什么样的数据?
您希望如何处理冲突?例如,如果在设备A上删除了一个对象,则同步到服务器(因此该对象也会在服务器上删除),但设备B同时编辑该对象然后进行同步。该对象应该重新添加吗?它应该在设备B上删除吗?
答案 1 :(得分:0)
一个可能过于简单的想法是使用与SVN或CVS相同的方法。
要考虑的事情:
解释我的最后一点:
不要按照到达的顺序对url参数进行编码,而是选择一些逻辑顺序。例如,“a = 111& b = 222”和“b = 222& a = 111”应该用相同的文本存储。即使您以不同的格式接收数据,也要确保相同的数据始终具有相同的表示。
这些只是我最初的想法......