Architecture and Planning
This effort involves determining and documenting how to go about adding CalDAV support to Sakai's calendar service. In completing this enhancement, Sakai will almost certainly be able to make use upon existing open source software libraries successfully in use in other open source software projects, such as Bedework. This component of the proposed effort is the architecture and research phase to discover these libraries and opportunities. The deliverable of this work component is an informal report of what existing Sakai APIs and implementations may continue to be used in a CalDAV-backed configuration, what new APIs and implementations will be required, whether and what CalDAV-enabling libraries are available, and how this relates to what specific features of the Zimbra product.
Establish CalDAV store for testing
Zimbra is preferred as the reference implementation for a CalDAV store against which to test the Sakai CalDAV functionality to be developed under this proposal. Unicon will initially set up a Zimbra ZCS 5 instance for testing. If testing against Zimbra proves infeasible an alternative will be identified (Bedework?).
CalDAV-backed Calendar Store Implementation
This work component involves developing a new implementation of Sakai calendar service APIs to store calendar events into and read calendar events from a CalDAV store.
Performance Testing and Improvement
Remoting Sakai's calendar event storage into a CalDAV store such as Zimbra will introduce performance issues as regards the speed with which the backing store can be queried and the load on the backing store introduced by repeated Sakai queries. This work item affords time to examine and partially address these issues, likely by introducing caching to the CalDAV-backed Sakai calendar API implementation.
As a result of this work item, these performance concerns will be more fully understood, documented, and partially addressed, and the Sakai developer community will be better positioned to continue to improve the CalDAV-backed Calendar API implementation. It cannot be guaranteed that the resulting implementation will have excellent performance characteristics, since the performance of CalDAV against particular backing stores and the 'chattiness' of this API is as of yet unexamined.