首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SyncML和CalDAV有什么不同?

SyncML和CalDAV有什么不同?
EN

Stack Overflow用户
提问于 2012-01-12 07:57:13
回答 3查看 5.5K关注 0票数 10

我想知道SyncML和CalDAV在功能、优缺点方面有什么不同。

我正在尝试确定使用哪种技术,以便在web应用程序和移动设备之间同步事件/日历。我需要处理冲突和双向同步。

乍一看,CalDAV似乎最适合我的需求,但我不确定是否存在可能的缺点。SyncML是一个标准,但我在甲骨文的博客上看到一些文章说CalDAV更好……

我知道谷歌支持这两种技术,但也提供了ActiveSync (交换),这是微软的一项技术作为他们的主要解决方案。我对这种方式不感兴趣。

干杯,威廉

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-21 21:18:23

好吧,我可以自己回答。

CalDAV

CalDAVWebDAV之上的协议,后者是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描述了七种同步:

  • Two-way Sync:服务器和客户端都共享有关更改的信息,但客户端是第一个发送
    • Two-way同步的:客户端发送其所有数据。服务器确定其数据和客户端数据之间的增量,然后服务器发送此增量。它通常用于第一次synchronization;
    • One-way同步,仅客户端同步:客户端从客户端发送对server;
    • Refresh同步的更改:客户端发送其所有数据,服务器发送其所有data;
    • One-way同步,服务器仅:服务器从服务器向client;
    • Refresh同步发送更改:服务器发送其所有数据,客户端将其数据替换为服务器的数据;
    • Server alerted sync:服务器请求客户端启动给定的同步

SyncML使用一组预定义的规则(如Updates mades on the Client always winUpdates mades on the Client always win、…)来处理服务器上的冲突

SyncML致力于同步数据,但是iOS和Android都不支持它。诺基亚或三星智能手机似乎都支持这一协议,Windows phone6也是如此。

所以?

Microsoft Exchange ActiveSync是支持几乎所有智能手机和繁重客户端的最佳选择。但是,它不是一个开放的标准,它是商业的,我没有出于这些原因来描述它,只需要记住这一点。

关于移动操作系统:

  • Android不支持ActiveSync以外的任何东西,但是一些好的CalDAV客户端Funambol支持CalDAV但不支持SyncML,而且据我所知,没有用于日历数据的SyncML客户端(Funambol为contacts);
  • Windows Phone 7提供了一个客户端,除了Funambol之外,不支持其他任何客户端(BlackBerry)似乎不支持CalDAV,但有SyncML客户端;
  • 我对其他操作系统(如Bada,…)不确定)。

在法国,iOS占据了移动市场市场60%的份额,安卓占据了30%的。

最好的解决方案(至少对我而言)是首先实现一个具有一组处理冲突的自定义规则的CalDAV服务器,然后实现一个SyncML服务器来覆盖市场的其余部分。

票数 7
EN

Stack Overflow用户

发布于 2012-01-20 01:37:04

有几个问题可以更好地回答你的问题-

  1. 您是否正在控制设备客户端,或者您是否必须依赖已部署设备上的本机客户端?
  2. 您是否正在控制同步服务器?
  3. 您是否需要同步日历事件以外的其他类型的数据?注意:在这个问题中,像日历附件(例如,联系人或文件)这样的东西被算作“其他类型的数据”。
  4. 你需要支持什么程度的复杂性?定期事件、定期事件例外、共享或协作日历、具有多个独立日历(例如,设备日历、Outlook日历、Gmail日历等)的用户
  5. 是否有需要与之同步的特定桌面应用程序(例如,Outlook/Exchange),还是仅限云<->设备?
票数 0
EN

Stack Overflow用户

发布于 2012-02-18 23:37:13

android确实支持syncml --查看funambold应用

android-client_funambol (查看那里的论坛,它相当活跃,并尝试快照的高级功能)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8828453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档