我想知道SyncML和CalDAV在功能,优点和缺点方面有什么区别。
我正在尝试确定使用哪种技术来同步Web应用和移动设备之间的事件/日历。我需要处理冲突和双向同步。
乍一看,CalDAV似乎最适合我的需求,但我不确定是否存在可能的缺点。 SyncML是一个标准,但我在Oracle的博客上阅读了一些帖子,其中说CalDAV更好......
我知道谷歌支持两者,但也提供ActiveSync(Exchange),这是Microsoft技术的主要解决方案。我对这种方式不感兴趣。
干杯, 威廉
答案 0 :(得分:7)
好吧,我可以自己回答。
CalDAV 是WebDAV之上的协议,它是 HTTP 协议的扩展。 CalDAV在RFC 4791中描述。它使用iCalendar作为数据格式。有很多实现。
关于冲突CalDAV使用409 Conflicts
状态代码(HTTP 1.1)。客户端必须处理此错误代码,据我所知, iCal (Mac客户端)只是恢复本地更改。
然后,很容易在服务器中定义规则以了解如果存在冲突该怎么做,如果你无法解决其中一个,那么我们只需要发送一个409
状态代码。
作为标准, CalDAV 专门用于管理日历数据,并且有很多客户。
不幸的是, Android 没有提供使用此协议的任何本机解决方案,实际上它不提供除Exchange ActiveSync之外的其他任何东西(由Google使用)。但Android Market上有大量的CalDAV客户端。
iOS 原生支持CalDAV。
Synchronization Mrkup Language是一种独立于平台的同步语言,用于管理由诺基亚,IBM等主要公司创建的数据......这是一个开放的标准。它使用HTTP作为传输和XML来描述信息。有各种服务器实现,例如Funambol是众所周知的。
SyncML描述了七个同步:
SyncML使用一组预定义规则处理服务器上的配置,例如Updates mades on the Client always win
,Updates mades on the Client always win
,...
SyncML专门用于同步数据,但 iOS 和 Android 都不支持。诺基亚或三星智能手机似乎都支持这种协议,以及Windows Phone 6。
Microsoft Exchange ActiveSync 是支持几乎所有智能手机和重型客户端的最佳选择。但是,它不是一个开放标准,它是商业性的,我没有因为这些原因而描述它,只记得它。
关于移动操作系统:
在法国, iOS占移动市场的60%, Android占30%。
最好的解决方案(至少对我而言)是从实施CalDAV服务器开始,该服务器具有一组自定义规则来处理冲突,然后实现SyncML服务器以覆盖其他市场。
答案 1 :(得分:0)
有几个问题可以更好地解决您的问题 -
您是否可以控制设备客户端,还是必须依赖已部署设备上的本机客户端?
您是否掌控同步服务器?
除了日历活动之外,您是否还需要同步其他类型的数据?注意:就此问题而言,日历附件(例如,联系人或文件)等内容会被视为“其他类型的数据”。
您需要支持多大程度的复杂性?重复活动,重复活动例外,共享或协作日历,具有多个单独日历的用户(例如,设备日历,Outlook日历,Gmail日历等)
您是否需要与之同步的特定桌面应用(例如,Outlook / Exchange),或者这是否完全是云< - >仅限设备?
答案 2 :(得分:0)
android确实支持syncml - 检查funambold同步应用程序在android-client_funambol(在那里查看论坛,它非常活跃并尝试快照以获得高级功能)