OSCON 2006: Cosmo and Scooby: Standards-Based Open Source Calendaring
This week, Kevin Yank is reporting from OSCON 2006 in Portland, OR.
Developed by the Open Source Applications Foundation (OSAF), Cosmo is a service enabling its users to put their personal information online and share it with others via open protocols like WebDAV. Scooby is a web-based front-end for accessing your Cosmo-stored information, and currently it provides a slick calendar view. In this talk, three OSAF developers provided an overview of these projects, their current status, and their direction for the future.
Cosmo/Scooby lead engineer Brian Moseley introduced Cosmo and its architecture. In particular, he concentrated on some of the extensions to WebDAV (which itself is an extension to basic HTTP) that have been developed for providing content-type-specific features: CalDAV for calendaring data, CardDAV for contact information. In the name of interoperability, Cosmo also groks the Atom Syndication Format and the Atom Publishing Protocol, and even the APIs introduced by GData and Google Calendar, not to mention the Java Content Repository (JCR) standard API, which, though developed to lofty ideals, has yet to live up to the promise, and has forced Cosmo to investigate more practical and scalable alternatives.
SitePoint author Matthew Eernisse, who is also the lead developer of Scooby, then took over to demonstrate the web-based calendaring interface. Key in the development of this AJAX-heavy web application was keeping the interface snappy, and Eernisse demonstrated the principle of providing immediate feedback to any user action, and then awaiting confirmation from the server that the action was successful (and rolling back the action in case of error).
Rullo also presented a separate project, CalDAV4j, which is a Java library for handling the CalDAV protocol (the calendar-specific WebDAV extension I mentioned above). This library was used internally in Cosmo to handle communication with the Scooby web-based calendar front-end, but is no longer required for that purpose. This library will, however, be instrumental in synchronizing calendar information between multiple Cosmo servers, and OSAF is looking for contributors to this project.
Moseley closed with a general call for interested developers to join any of these projects. Cosmo and its various clients and APIs are still very much a work-in-progress; Moseley claimed pre-alpha status for most of this stuff, with an aim for a 1.0 release by Q2 2007. But these are projects with a potentially very exciting future for the developers involved.