Sun Java System Calendar Server includes the following internal subsystems:
The following graphic shows the logical flow through these subsystems.
Clients retrieve calendar data by submitting requests using the HTTP protocol layer. This is a minimal HTTP server implementation, streamlined to support calendar requests. This is done by appending Web Calendar Access Protocol (WCAP) commands to the URL.
WCAP is an open protocol that allows you to write your own interface to Calendar Server. Using WCAP commands (.wcap extension), you can perform most server commands, except for certain administrative commands. You can use WCAP commands to request output as XML or iCalendar wrapped in HTML.
For information about WCAP commands, see the Sun Java System Calendar Server 6.3 WCAP Developer’s Guide.
The Core subsystem includes an access control component, a WCAP command interpretation component, and data translators to format data coming from the calendar database component. The Core subsystem processes calendar requests and generates XML and iCalendar output. The Core subsystem can also handle user authentication.
The Database subsystem uses the Berkeley DB from Sleepycat Software (the database API is not public). The Database subsystem stores and retrieves calendar data to and from the database, including events, todos (tasks), and alarms. Calendar data is based on iCalendar format, and the schema used for Calendar Server data is a super set of the iCalendar standard.
The Database subsystem returns data in a low-level format, and the Core UI generator then translates the low-level data and sends it through WCAP.
For a distributed calendar database, Calendar Server uses the Distributed Wire Protocol (DWP) to provide a networking capability. For more information, see 1.10.5 Distributed Database Service: csdwpd in Calendar Server Version 6.3.
For information about the calendar database, refer to Chapter 16, Administering Calendar Server Databases with the csdb Utility.