CalDAV
CalDAV (англ. Calendaring Extensions to WebDAV) — сетевой протокол прикладного уровня, расширяющий возможности WebDAV и предназначенный для доступа, синхронизации и управления календарными данными. Он основан на формате iCalendar и позволяет клиентским приложениям взаимодействовать с календарными серверами по HTTP, поддерживая совместную работу, планирование встреч (англ. scheduling) и синхронизацию между устройствами. Протокол разработан как открытый стандарт и опубликован в 2007 году в виде RFC 4791 под эгидой IETF. Для расширения функций планирования используется RFC 6638, а управление доступом реализовано на основе RFC 3744.
История
[править | править код]В 2003 году Лиза Дюссо инициировала разработку спецификации CalDAV, представив её на рассмотрение Инженерному совету Интернета.
Спецификация вызвала интерес среди разработчиков календарного программного обеспечения. В январе 2005 года были успешно протестированы два сервера и три клиента, корректно взаимодействующие между собой.
В марте 2007 года CalDAV был официально опубликован IETF в качестве стандарта под номером RFC 4791 («Calendaring Extensions to WebDAV (CalDAV)»). Авторами спецификации стали Сайрус Дабу (Apple), Бернар Дезруиссо (Oracle) и Лиза Дюссо (CommerceNet).
CalDAV был впоследствии внедрён в ряд программных продуктов, ориентированных на управление календарями и событиями[источник не указан 96 дней].
Описание
[править | править код]CalDAV представляет собой открытый стандарт, расширяющий протокол WebDAV и использующий формат iCalendar для обмена календарными данными между клиентскими приложениями и серверами.
Протокол предназначен для управления календарными событиями, включая встречи, расписания и другие записи, синхронизируемые между сервером и клиентом. Кроме того, CalDAV поддерживает создание так называемых «неличных» календарей, например, для помещений или групп пользователей. Для поддержки функций планирования встреч (англ. scheduling) используется расширение CalDAV, стандартизированное в RFC 6638.
Пользователь может синхронизировать свой календарь с сервером CalDAV и использовать его на нескольких устройствах. Протокол также поддерживает создание неличных календарей, таких как календари для комнат или организаций.
Данные CalDAV организуются в виде коллекций (каталогов), содержащих ресурсы: события, задачи, напоминания и свободное/занятое время. Для управления доступом используются ACL на основе WebDAV Access Control Protocol (RFC 3744), позволяющие задавать права (чтение, редактирование, удаление) для отдельных пользователей.
Сервер CalDAV должен уметь разбирать записи в формате iCalendar, поскольку это необходимо для выполнения специфических календарных операций — например, расширения повторяющихся событий или составления отчётов о занятости (англ. free-busy).
В то же время CalDAV подвергался критике за относительную сложность реализации, что может вызывать затруднения при интеграции с некоторыми программными продуктами.[источник не указан 96 дней]
Критика
[править | править код]Несмотря на широкое распространение и поддержку в различных программных решениях, спецификации CalDAV и iCalendar подвергаются критике за устаревание и ограниченную применимость в корпоративной среде. В частности, исследователи из Университета Цинхуа отмечают, что текущие версии этих протоколов не учитывают ряд современных требований[1]:
- отсутствие встроенной поддержки механизмов безопасности и аутентификации;
- отсутствие интерфейсов для выполнения массовых операций с событиями;
- недостаточная проработка сценариев, связанных с масштабированием, делегированием и ролевым управлением доступом, характерных для корпоративных информационных систем.
В связи с этим, применение CalDAV в крупных организациях требует дополнительной реализации служебной логики на уровне серверной инфраструктуры или сторонней интеграции с корпоративными системами управления доступом и данными.
Будущее
[править | править код]В качестве потенциальной замены формата iCalendar рассматривается jCal — структурированное представление календарных данных в формате JSON, стандартизированное в RFC 7265. jCal отличается лучшей читаемостью и удобством обработки, что делает его перспективным кандидатом для будущего развития календарных протоколов.[1]
Пример
[править | править код]Пример основан на RFC 4791:
Запрос:
REPORT /bernard/work/ HTTP/1.1 Host: cal.example.com Depth: 1 Content-Type: application/xml; charset="utf-8" Content-Length: xxxx <?xml version="1.0" encoding="utf-8" ?> <C:free-busy-query xmlns:C="urn:ietf:params:xml:ns:caldav"> <C:time-range start="20060104T140000Z" end="20060105T220000Z"/> </C:free-busy-query>
Ответ:
HTTP/1.1 200 OK Date: Sat, 11 Nov 2006 09:32:12 GMT Content-Type: text/calendar Content-Length: xxxx BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Example Corp.//CalDAV Server//EN BEGIN:VFREEBUSY DTSTAMP:20050125T090000Z DTSTART:20060104T140000Z DTEND:20060105T220000Z FREEBUSY;FBTYPE=BUSY-TENTATIVE:20060104T150000Z/PT1H FREEBUSY:20060104T190000Z/PT1H END:VFREEBUSY END:VCALENDAR
Программное обеспечение
[править | править код]Клиент
[править | править код]Список CalDAV-клиентов включает:[2]:
- DAVx⁵ (Android 4.4+)[3]
- CalDAV-Sync for Android[4]
- AgenDAV (CalDAV WebClient с открытым кодом, поддержкой различных языков, и AJAX интерфейсом)
- iPhone
- Atmail (начиная с версии 6.0)
- CalDavZAP (Web-based HTML5 / JavaScript приложение, открытый код)[5]
- EVO Collaborator for Outlook добавить caldav совместимость синхронизации с Outlook[6]
- Evolution (Linux, Unix, Windows)
- Horde Groupware[7]
- Korganizer (приложение календаря от KDE)
- Sunbird или Thunderbird с Lightning плагином (Linux, Windows, Unix, Mac OS X)
- eM Client (Windows)
- iCal4OL (больше не доступен для новых пользователей)
- iCal (начиная с версии Mac OS X Leopard !V 10.5)
- iCal Import/Export CalDAV for Android[8]
- One Calendar (Android, Windows, другими вариантами не пользовался)
Сервер
[править | править код]Список CalDAV-серверов включает:[9]:
- Apples Darwin Calendar Server — Сервер календарей
- Baikal[10] Легкий CalDAV+CardDAV сервер на PHP
- Bedework (ehemals UWCalendar)[11]
- Bynari Collaboration Suite[12]
- DPCalendar[13]
- DavMaild
- Daylite CalDAV Server[14]
- Dingo Calendar Server
- EGroupware — начиная с версии 1.6
- EVO Mail Server[15]
- Fabasoft Folio Cloud
- Google Calendar[16]
- Horde Groupware[7]
- Icewarp-E-Mail-Server — начиная с версии 8.х
- Kerio Connect[17]
- Nextcloud[18]
- SOGo[19]
- SabreDAV[20]
- Scalix[21]
- Sun Java Calendar Server
- Synovel CollabSuite[22]
- Yahoo Calendar
- Zarafa — начиная с версии 6.30.0
- Zimbra — начиная с версии 4.5[23]
- mod_caldav[24]
- ownCloud[25]
- CommuniGate Pro
Сервис-провайдеры
[править | править код]Примечания
[править | править код]- ↑ 1 2 Ma E., Liu N., Zhang Y., Peng Y. The Design and Architecture of CalDAV-based Enterprise Calendar Service. Proceedings of the International Conference on Intelligent Control and Computer Application (ICCA 2016), Atlantis Press.
- ↑ CalDAV Клиенты (Русский) (18 сентября 2010). Дата обращения: 17 декабря 2010. Архивировано из оригинала 23 мая 2016 года.
- ↑ DAVx⁵ . Дата обращения: 5 мая 2022. Архивировано 3 января 2019 года.
- ↑ CalDAV-Sync . Дата обращения: 10 ноября 2015. Архивировано 4 ноября 2015 года.
- ↑ CalDavZAP . Дата обращения: 10 ноября 2015. Архивировано 10 ноября 2015 года.
- ↑ EVO Collaborator for Outlook . Дата обращения: 10 ноября 2015. Архивировано 7 декабря 2015 года.
- ↑ 1 2 Horde Groupware . Дата обращения: 10 ноября 2015. Архивировано 13 ноября 2015 года.
- ↑ iCal Import/Export CalDAV
- ↑ CalDAV Сервера (Русский) . Дата обращения: 7 января 2014. Архивировано 24 октября 2008 года.
- ↑ Baikal . Дата обращения: 10 ноября 2015. Архивировано из оригинала 14 ноября 2015 года.
- ↑ Bedework Архивировано 2 декабря 2011 года.
- ↑ Bynari Collaboration Suite . Дата обращения: 10 ноября 2015. Архивировано из оригинала 4 августа 2012 года.
- ↑ DPCalendar . Дата обращения: 10 ноября 2015. Архивировано 8 декабря 2015 года.
- ↑ Daylite CalDAV Server Архивировано 15 октября 2015 года.
- ↑ EVO Mail Server . Дата обращения: 10 ноября 2015. Архивировано 21 октября 2015 года.
- ↑ Google Calendar . Дата обращения: 10 ноября 2015. Архивировано 28 октября 2015 года.
- ↑ Kerio Connect . Дата обращения: 10 ноября 2015. Архивировано 28 марта 2014 года.
- ↑ Nextloud . Дата обращения: 30 ноября 2019. Архивировано 10 июля 2016 года.
- ↑ SOGo . Дата обращения: 5 мая 2022. Архивировано 5 мая 2022 года.
- ↑ sabre/dav . Дата обращения: 10 ноября 2015. Архивировано 1 апреля 2021 года.
- ↑ Scalix . Дата обращения: 10 ноября 2015. Архивировано 10 ноября 2015 года.
- ↑ Synovel . Дата обращения: 10 ноября 2015. Архивировано 9 ноября 2015 года.
- ↑ Zimbra . Дата обращения: 10 ноября 2015. Архивировано 6 ноября 2015 года.
- ↑ mod_caldav auf SourceForge . Дата обращения: 10 ноября 2015. Архивировано 16 ноября 2015 года.
- ↑ ownCloud . Дата обращения: 10 ноября 2015. Архивировано 24 сентября 2015 года.