Статьи

OSCON 2006: Cosmo и Scooby: основанный на стандартах календарь с открытым исходным кодом

Cosmo — это служба, разработанная Фондом приложений с открытым исходным кодом (OSAF), позволяющая пользователям размещать свою личную информацию в сети и делиться ею с другими через открытые протоколы, такие как WebDAV. Scooby — это веб-интерфейс для доступа к вашей информации, хранящейся в Cosmo, и в настоящее время он предоставляет удобный вид календаря. В этом выступлении три разработчика OSAF представили обзор этих проектов, их текущее состояние и направление на будущее.

Ведущий инженер Cosmo / Scooby Брайан Мозли представил Cosmo и его архитектуру. В частности, он сконцентрировался на некоторых расширениях WebDAV (которое само по себе является расширением базового HTTP), которые были разработаны для предоставления функций, специфичных для типа контента: CalDAV для данных календаря, CardDAV для контактной информации. Во имя совместимости Cosmo также использует формат синдикации Atom и протокол публикации Atom , и даже API, представленные GData и Google Calendar , не говоря уже о стандартном API Java Content Repository (JCR), который, хотя и был разработан для высоких идеалов еще не выполнил свое обещание и заставил Cosmo изучить более практичные и масштабируемые альтернативы.

Автор SitePoint Мэтью Эрниссе , который также является ведущим разработчиком Scooby, затем занялся демонстрацией веб-интерфейса календаря. Ключевым моментом в разработке этого AJAX-тяжелого веб-приложения было поддержание интерфейса быстрым, и Eernisse продемонстрировал принцип предоставления немедленной обратной связи любому действию пользователя, а затем ожидание подтверждения от сервера, что действие было успешным (и откат действия в случай ошибки).

Затем разработчик Cosmo Бобби Рулло рассказал о публичном API Cosmo, который позволяет любому внешнему интерфейсу (включая сторонние веб-приложения) получать данные из репозитория Cosmo и из него, используя дружественный для JavaScript формат данных JSON. Он отметил, что другие форматы RPC (такие как XML-RPC) могут быть легко добавлены в систему по мере необходимости.

Рулло также представил отдельный проект CalDAV4j , который представляет собой библиотеку Java для обработки протокола CalDAV (расширение WebDAV для конкретного календаря, о котором я упоминал выше). Эта библиотека использовалась внутри Cosmo для связи с веб-интерфейсом календаря Scooby, но больше не требуется для этой цели. Эта библиотека, однако, будет способствовать синхронизации календарной информации между несколькими серверами Cosmo, и OSAF ищет участников для этого проекта.

Мозли закончил с общим призывом заинтересованных разработчиков присоединиться к любому из этих проектов. Cosmo и его различные клиенты и API все еще находятся в стадии разработки; Мозли претендовал на пре-альфа-статус для большинства этих вещей, с целью выпуска 1.0 к 2-му кварталу 2007 года. Но это проекты с потенциально очень захватывающим будущим для вовлеченных разработчиков.