SyncML和CalDAV有什么区别?

Wil*_*and 10 mobile synchronization web-applications syncml caldav

我想知道SyncML和CalDAV在功能,优点和缺点方面有什么区别.

我正在尝试确定使用哪种技术来同步Web应用和移动设备之间的事件/日历.我需要处理冲突和双向同步.

乍一看,CalDAV似乎最适合我的需求,但我不确定是否可能存在缺陷.SyncML是一个标准,但我读了Oracle博客上的一些帖子,其中说CalDAV更好......

我知道谷歌支持两者,但也提供ActiveSync(Exchange),这是一种Microsoft技术作为他们的主要解决方案.我对这种方式不感兴趣.

干杯,威廉

Wil*_*and 7

好吧,我可以自己回答.

的CalDAV

CalDAVWebDAV之上的协议,它是HTTP协议的扩展.RFC 4791中描述了CalDAV .它使用iCalendar作为数据格式.有很多实现.

关于冲突CalDAV使用409 Conflicts状态代码(HTTP 1.1).客户端必须处理此错误代码,据我所知,iCal(Mac客户端)只是恢复本地更改.然后,很容易在服务器中定义规则以了解如果存在冲突该怎么做,如果你无法解决其中一个,那么我们只需要发送一个409状态代码.

作为标准,CalDAV致力于管理日历数据,并且有很多客户端.

不幸的是,Android没有提供使用此协议的任何本机解决方案,实际上除了Exchange ActiveSync(由Google使用)之外,它没有提供任何其他解决方案.但Android Market上有大量的CalDAV客户端.

iOS具有CalDAV的原生支持.

的SyncML

同步Mrkup Language是一种独立于平台的同步语言,用于管理由诺基亚,IBM等主要公司创建的数据......这是一个开放的标准.它使用HTTP作为传输和XML来描述信息.有各种各样的服务器实现,例如Funambol是众所周知的.

SyncML描述了七个同步:

  • 双向同步:服务器和客户端共享有关更改的信息,但客户端是第一个发送更改的信息;
  • 慢同步:客户端发送其所有数据.服务器确定其数据和客户端数据之间的增量,然后服务器发送此增量.它经常用于第一次同步;
  • 单向同步,仅限客户端:客户端向服务器发送更改;
  • 从客户端刷新同步:客户端发送其所有数据,服务器发送其所有数据;
  • 单向同步,仅限服务器:服务器向客户端发送更改;
  • 刷新服务器同步:服务器发送所有数据,客户端用服务器数据替换数据;
  • 服务器警告同步:服务器要求客户端启动给定的同步.

SyncML的处理在服务器上conflits了一组类似的预定义规则Updates mades on the Client always win,Updates mades on the Client always win...

SyncML专门用于同步数据,但iOSAndroid都不支持它.诺基亚或三星智能手机似乎支持此协议,以及Windows Phone 6.

所以?

Microsoft Exchange ActiveSync是支持几乎所有智能手机和重型客户端的最佳选择.但是,它不是一个开放的标准,它是商业的,我没有因为这些原因而描述它,只记得它.

关于移动操作系统:

  • Android不支持除ActiveSync以外的任何其他功能,但存在一些优秀的CalDAV客户端;
  • iOS支持CalDAV,但不支持SyncML,据我所知,日历数据没有SyncML客户端(Funambol为联系人提供客户端);
  • Windows Phone 7不支持除ActiveSync之外的任何其他操作;
  • RIM(BlackBerry)似乎不支持CalDAV,但有SyncML客户端;
  • 我不确定其他操作系统(如Bada,......).

在法国,iOS占移动市场的60%,Android占30%.

最好的解决方案(至少对我而言)是从实现CalDAV服务器开始,该服务器具有一组自定义规则来处理冲突,然后实现SyncML服务器以覆盖其他市场.