我想知道SyncML和CalDAV在功能、优缺点方面有什么不同。
我正在尝试确定使用哪种技术,以便在web应用程序和移动设备之间同步事件/日历。我需要处理冲突和双向同步。
乍一看,CalDAV似乎最适合我的需求,但我不确定是否存在可能的缺点。SyncML是一个标准,但我在甲骨文的博客上看到一些文章说CalDAV更好……
我知道谷歌支持这两种技术,但也提供了ActiveSync (交换),这是微软的一项技术作为他们的主要解决方案。我对这种方式不感兴趣。
干杯,威廉
发布于 2012-01-21 21:18:23
好吧,我可以自己回答。
CalDAV
CalDAV是WebDAV之上的协议,后者是HTTP协议的扩展。RFC 4791中描述了CalDAV。使用iCalendar作为数据格式。有很多实现。
关于冲突,CalDAV使用409 Conflicts状态代码(HTTP1.1)。客户端必须处理这个错误代码,据我所知,iCal ( Mac客户端)只是恢复本地更改。然后,很容易在服务器中定义规则,以便知道如果存在冲突该怎么办,如果您不能解决其中一个冲突,那么我们只需要发送一个409状态码。
作为一个标准,CalDAV致力于管理日历数据,并且有很多客户端。
不幸的是,Exchange 没有提供任何原生解决方案来使用这个协议,实际上它除了 ActiveSync (谷歌使用的)之外也没有提供任何其他的解决方案。但是在安卓市场上有大量的CalDAV客户端。
iOS具有对CalDAV的本机支持。
SyncML
同步Mrkup语言是一种独立于平台的同步语言,用于管理数据,由诺基亚、IBM、…等大公司创建这是一个开放的标准。它使用HTTP作为传输协议,使用XML来描述信息。有各种各样的服务器实现,Funambol就是一个众所周知的例子。
SyncML描述了七种同步:
SyncML使用一组预定义的规则(如Updates mades on the Client always win、Updates mades on the Client always win、…)来处理服务器上的冲突
SyncML致力于同步数据,但是iOS和Android都不支持它。诺基亚或三星智能手机似乎都支持这一协议,Windows phone6也是如此。
所以?
Microsoft Exchange ActiveSync是支持几乎所有智能手机和繁重客户端的最佳选择。但是,它不是一个开放的标准,它是商业的,我没有出于这些原因来描述它,只需要记住这一点。
关于移动操作系统:
在法国,iOS占据了移动市场市场60%的份额,安卓占据了30%的。
最好的解决方案(至少对我而言)是首先实现一个具有一组处理冲突的自定义规则的CalDAV服务器,然后实现一个SyncML服务器来覆盖市场的其余部分。
发布于 2012-01-20 01:37:04
有几个问题可以更好地回答你的问题-
发布于 2012-02-18 23:37:13
android确实支持syncml --查看funambold应用
在android-client_funambol (查看那里的论坛,它相当活跃,并尝试快照的高级功能)
https://stackoverflow.com/questions/8828453
复制相似问题