开源日历 ,邮件协议历史和编程库
iCalendar是开源日历协议,目前版本是ietf的rfc5545,历史版本是ietf的rfc2445
vCalendar也是一种日历数据交换格式,乃iCalendar的前身,为因特网邮件联盟(IMC)所发布。
苹果首先为iOS 4加入了CalDAV和CardDAV支持,苹果同时也大力提倡使用这两种协议进行日历和联系人信息同步,CalDAV和CardDAV都是基于WebDAV标准建立的,对于第三方来说,支持这种协议非常简单。目前谷歌也支持了.
Exchange ActiveSync真正的对手是苹果、脸谱和谷歌主推的CalDAV和CardDAV。作恶多端的Google居然不顾用户的反对强行关闭Gmail对Exchange ActiveSync的支持,使得Windows Phone用户无法正常使用Gmail,还好微软爸爸及时支持了CalDAV和CardDAV。
现在大多数设备上的邮件同步系统都支持IMAP、POP3、Exchange服务,而Exchange服务可以同步日历,那么该服务是如何实现的呢?为了开发我们要进一步摸清其中的原理。
让我们先通过一个图纵观系统结构
ExchangeActiveSync协议 标准:该协议不是国际标准,但却是事实上的协议,该协议的技术来源于微软 功能描述:该协议可实现从服务器到客户端的电子邮件,联系人,日历,任务和便笺的同步(国内厂商大部分都只看中邮件同步的功能) 基础协议:XML,HTTP,HTTPS 支援软件:谷歌家Gmail、微软家Outlook、腾讯家的Foxmail等 协议应用:可引导用户向Gmail或者Outlook中添加日程订阅,并将邮件账户通过Exchange |
||
WebCal ( http urI ) 标准:该协议不是国际标准,但却是事实上的标准 功能描述:用于访问iCalendar文件的非官方统一资源标识符(URI)方案。简单来说就是一种自定义的URL标识,但是该标识被不少软件所认可,通过该协议可以访问服务器上的日程资源,也就是访问iCalendar文件。 基础协议:未知 支援软件:Google Calendar、Microsoft Outlook、Mozilla Lightning 协议应用:该标准最早被设计用于苹果的iCal应用程序,应用程序发起的请求以webcal://为开头,被服务器上的外部协议处理程序所捕获,并通过WebDav协议操作iCalendar文件。这种非国际标准的请求可能会被不兼容的应用程序拦截并认定为下载iCalendar文件(后缀为.ics)。所以综合来说,基本上可以认为下载*.ics文件并导入应用程序和直接使用链接webcal://xxx.xxx.xxx/....导入的是相同的行为。 |
||
CalDav ( 交互+存储, 存储格式是iCalendar格式) 标准:RFC 4791 功能描述:远程日程信息访问(共享)协议。允许客户端访问共享服务器上的日程信息。简单来说就是允许具有权限的用户访问一份共享的日程。 基础协议:扩展了WebDav协议的规范, 并使用iCalendar格式的数据 支援软件:CalDav服务器与操作系统(国内安卓基本都不支持) 协议应用:该协议被各大邮件系统所支持,利用该协议可引导用户订阅日程信息流,并将日程信息通过邮箱帐号同步至绑定的设备中。但是,国内的邮件系统基本不支持日程的订阅服务属于阉割版本,应有条件的采用国际大厂的日程订阅服务。这种日程订阅的方案虽然没有即时通讯那么快,但是和邮件的同步速度旗鼓相当。 |
CardDav (交互+存储, 存储格式是vCard格式) 标准:RFC 6352 功能描述:远程地址簿信息访问(共享)协议。允许客户端访问共享服务器上的联系人数据。简单来说就是允许具有权限的用户访问一份共享的地址簿。 基础协议:扩展了WebDav协议的规范, 并使用vCard格式的数据 支援软件:Apple Contacts、Outlook CalDav Synchronizer、GMail 协议应用:该协议可认为是CalDav协议的孪生兄弟,一般支持CalDav同步的邮箱系统都可以支持CardDav的同步。 |
|
iCalendar 标准: RFC 5545 功能描述:日程信息文件交换格式 。允许用户通过各种方法共享或发送此格式的文件,将会议请求和任务发送给其他用户。简单来说就是规范的将"时间、地点、人物"等日程中的要素写入文件中,方便多用户之间的信息传输。 基础协议:媒体类型应为text/calendar,扩展名为*.ics 支援软件:好多好多,但是兼容性各有千秋 协议应用:使用方式 1.可以引导用户下载ics文件并导入在邮件系统的日程订阅中已完成日程信息的数据同步,2. 不过用webcal链接访问更妙一些。建议使用时多关注一下文件协议的格式版本,部分不兼容的版本可能会被订阅程序所拒绝。 |
||
WebDav 标准:RFC 4918 功能描述:基于HTTP的数据操作协议,提供分布式创作与版本控制功能。简单来说就是允许客户端发布、锁定和管理服务器中的部分资源,而且该操作可以是有权限的、多用户的。 基础协议:基于HTTP1.1的扩展 支援软件: Dropbox、坚果云、OwnCloud等服务 协议应用:该协议常见于网盘系统(服务器)并被常见的操作系统所支持(客户端),允许用户将云盘以网络驱动器的形式挂载到客户端系统上,可自由的上传、修改和下载文件资源。该协议是CalDav协议的基础。 |
||
1. iCalendar 编程基础:了解和使用 iCal4j
2. 简单认识EAS/WebDav/CalDav/CardDav/WebCal/iCalendar的含义
3. ding 使用 iCalendar