Architecture & protocols
Architecture
Bedework is a collection of (mostly) standards compliant modules implementing calendaring and related protocols. It is Java based and - in the main - is written according to the Java specification. All the web components act as standard Java servlets. This means, for example, all authentication is carried out outside of bedework - either by the container or by filters.
As distributed the components run on Jboss5 which is a little old. However, in the supplied configuration it works well enough though by the end of this release we hope to have moved to WildFly.
Data Formats
The following formats are supported by bedework:
- iCalendar: rfc5545 - The iCalendar specification - the formats for ics files and commonly used by most calendaring applications
- iTip: rfc5546 - specifications for scheduling requests and replies using iCalendar.
- Xcal: rfc6321 - The XML format for iCalendar
- Vcard 3: rfc2426 - vcards old format - still the most common format
- Vcard 4: rfc6350 - new specification.
- jcard: rfc7095 - json format for vcard
- jcal: rfc7265 - json format for iCalendar
Protocols
Bedework implements at least the following protocols:
- CalDAV calendar access: rfc4791 - widely used calendaring protocol.
- CalDAV scheduling: rfc6638 - extension to handle implicit (i.e. server based) scheduling
- CardDav: rfc6352 - similar to CalDAV but for vcard.
- CardDAV gateway - used by iPhone and others - specification currently expired
- WebDAV: rfc4918 - underlies CalDAV
- WebDAV acl: rfc3744 - Access control.
- Extended MKCOL: rfc5689 - creating collections
- WebDAV sync: rfc6578 - synching collections
- CalWS-SOAP: calconnect: CalWS-SOAP - equivalent to CalDAV calendar access.
- CalWS-REST: calconnect: CalWS-Rest - (very) basic RESTful protocol
- Tzdist: Timezone distribution protocol - still in draft. See draft-tzdist-service
- Calendar Sharing: Currently an Apple proprietary specification
- VPOLL: new specification for consensus scheduling - see draft-york-vpoll
Components
Bedework consists of a number of components. These include:
- Calendar Engine
- Calendar Web clients
- Public Events admin
- Public Events client
- Public events submission
- Public Events feed
- Personal events client
- Synch Engine
- Cache service
- Event Registration
- Timezone distribution service
- CardDAV
- CardDAV gateway
- Self-registration for users (incomplete)
Other Calendaring Resources
Bedework owes much to its relationship to CalConnect and the members of that organization. The calconnect.org site has links to many calendaring resources.
Bedework Enterprise Calendar Server, version 3.10