SOGo Calendar Server

CESNET technical report 23/2010

Miloš Wimmer

Received 2. 12. 2010

Other formats: PDF, EPUB

Abstract

This technical report documents the choice of a Calendar Server application suitable for use by the students and staff of a mid-sized university. It also gives an overview of the properties of the chosen solution and sums up experience gathered in operation. The selected SOGo free software solution manages calendars, tasks and contacts, integrating them with external e-mail systems and directory services. Together, these services form a fully-fledged groupware solution, which can be accessed through its own webmail interface or through any client that supports CalDAV or SyncML protocols, such as Mozilla Thunderbird, iCAL, PDA devices, etc.

Keywords: calendar server, groupware, webmail, SOGo

1  Introduction

The University of West Bohemia (UWB) has been relying on e-mail communication ever since it was founded in 1990. Services accessible by IMAP, POP, or through the web-based Horde interface were considered fully sufficient and there was no demand for groupware extensions. Some demand by the university's administration services first arose after the year 2000.

Lotus Notes groupware was selected as a solution, then, for – among other reasons – its ability to support e-learning courses and to run under Linux. However, due to Lotus' expensive pricing policy, groupware was actually available to just a few dozen users. It was not accepted well, not even by those calling for a speedy introduction of a groupware system. This was caused mostly by the unusual user interface and the internal e-mail system, which could not be integrated with the university's central e-mail services.

As a result, Lotus Notes were only used on a small scale by a few select users at the UWB, failing to meet the original expectations.

2  Choosing a Calendar Server

Being the administrator of UWB's central mailing system and a supporter of the free software concept, I was approached in spring 2008 with a request to try and find a non-commercial groupware solution – in essence a calendar server. Calendar services may be useful for most users; I tend to view them as another “messaging” service and I am convinced that they should be integrated with the mailing system, which was why I agreed. There was also the challenge of proving that free software can offer a better solution even in an area typically dominated by commercial systems...

First of all I had to make clear what the requirements were for a calendar service:

Necessary conditions:

Other welcome properties:

I was hoping that the choice would be as wide as the choice of webmail systems, i. e. that there would be a selection of widely used and well-proven systems differing in design, features and integration abilities, but providing standard support for calendar services. That was a serious misconception. I have assessed a number of systems that were – on paper – supposed to meet my requirements, and I have tried to install and test as many as ten of those. The results were pathetic! Lack of features, unergonomic user interfaces, cumbersome installation, fatal failures in operation, unreliability, difficult integration with other services, incomplete support of calendar system standards resulting in reduced interoperability with clients – that was what I experienced, mostly. After a month of exhaustive trial and failure, I was forced to admit that I was indeed unable to find a free groupware system.

A year later I was again approached with the same request. Relying on previous experience, I was able to make a faster assessment. I have evaluated the following options:

Their features were compared with:

There were improvements in some systems, others remained unchanged; there were also a few new candidates. Horde and SOGo seemed suitable for our purpose, which was why I initiated testing of both of them by a group of approx. 30 people for three months.

Horde is a web-based application developed in PHP under the GNU license. It consists of a number of modules that can be used in various combinations. Our production web-mail server has been relying, up to now, on the IMP and Turba modules. Adding the Kronolith module for calendar services would represent a simple evolution of the current setup since the web-mail environment would remain the basically same, only with extended functionality.

In general, Horde is on a disadvantage since PHP makes it less responsive, slower, and it does not scale well. Its user environment does not rely on contemporary dynamic web technologies such as AJAX, which makes its use even less comfortable. It is also important to make note of the slow development (almost at a standstill during past year) and long reaction times by the developers.

The open PHP code and the concept of so-called hooks made it easy to connect to external calendars, which allowed us to include calendars containing personal timetables of all students and lecturers as generated by the study administration application.

Testing proved that the essential calendar services provided by Horde work well in its web-based client and that they integrate well with the webmail environment. On the other hand, support for external clients is complicated. Horde does not distribute any “native” external client for calendar services. We were using a desktop installation of Mozilla Thunderbird with the Lightning extension to access calendars. Calendars had to be defined manually through ICS files located on a remote HTTP server. Synchronization of contacts did not work and some other features were inaccessible by the external client, which was most inconvenient when requesting free/busy status when inviting other people to meetings or delegating access rights to other users. There were also problems with PDA synchronization. SyncML clients used in testing were Funambol and Synthesis.

SOGo is a part of the OpenGroupware.org project. It relies on GNUstep and the SOPE web application framework. It is implemented in Objective-C and distributed under the GNU license. It provides web-based environment for e-mail, calendars and contacts with remote access to calendar services and contacts.

SOGo runs as a binary with several instances being initiated simultaneously. It is fast, it has been designed for massive deployments and it scales well. Clients do not access the server directly but rather through an HTTP server. SOGo's web interface relies on state-of-the-art dynamic technologies (AJAX) and is very ergonomic. Its basic layout copies that of Mozilla Thunderbird, making both its looks and its use very similar. This is considered an advantage since Thunderbird users can work in a well-known environment even when using the web interface.

[Image]

Figure 1. Web interface of the SOGO calendar server.

SOGo is an active project with ongoing development effort. Its developers cooperate with user communities and their reaction times are usually very short. They also offer commercial support and contract-based client modifications. We have actually used that to implement several important features such as automated incorporation of external calendars containing personal timetables of individual students and lecturers.

The user community is allowed to access the development tree, which allows anyone to use the most recent versions with bug fixes and new features.

SOGo supports standard calendar formats and makes its data accessible by external clients over CalDAV or CardDAV. The SOGo development team also maintains an extended version of Lightning-Inverse Edition and another two add-ons to achieve full accessibility by Mozilla Thunderbird.

Testing proved that essential calendar services are accessible from the web interface as well as from external clients and that they integrate well with e-mail. External client support is satisfactory. CalDAV-compliant PDA devices communicate with the calendar server directly, while others can synchronize through SyncML. The Funambol application server, connected to SOGo via a connector module, was used for SyncML synchronization. Free Funambol clients and native SyncML clients distributed with their respective operating systems were used on PDAs.

Several bugs were discovered in testing but the serious ones were rapidly fixed by developers.

Upon assessing the results of testing and evaluating all criteria, we have decided to deploy the SOGo calendar server as a central service available to all students and employees – first in extended pilot mode and then as a production service.

3  Running the SOGo Calendar Server

The SOGo Calendar Server is being developed under the GNU license. It is intended for Linux and it can be used freely without the need to obtain per-user licenses. It is distributed as source code and binary packages are available from major Linux distributions.

The Calendar Server provides the following services:

The Calendar Server uses an SQL database to store all events, tasks, personal contacts and settings. PostgreSQL is used by default but MySQL and Oracle are supported alternatives. User accounts are created automatically on first logon.

The web interface integrates calendar services with e-mail accounts, connecting to the e-mail server over IMAP. This means that the e-mail server can run on a separate machine, which is a concept we have successfully applied in our environment.

Public contacts provided by LDAP are used for planning events and sending e-mail messages, which means that a standard LDAP server is another required component.

E-mail messages composed in the web environment can be sent via an SMTP server running locally, or through any remote SMTP server.

[Image]

Figure 2. SOGo Server in relation to external services.

It is also possible to deploy a Funambol server acting as a convertor between SyncML clients and the SOGo server to enable calendar synchronization for clients not compliant with CalDAV. The Funambol server is an independent SyncML application server implemented in Java and developed under the GNU license. It communicates with the SOGo server through a connector module and enables synchronization of events, contacts and tasks.

As explained earlier, clients connect to the SOGo server through an HTTP server running locally. Most suitable choices are Apache or Nginx webservers.

LDAP, C.A.S or SQL can be used to authenticate users wishing to access the service. The University of West Bohemia uses WebAuth as a Single Sign-on (SSO) solution. There is a direct support for that service by an Apache HTTP server module, which is why our deployment of SOGo relies on Apache as well. We have arranged with SOGo developers to add code that would accept WebAuth-based authentication, which allowed us to include the SOGo server into our SSO domain.

The overall groupware solution as deployed in the UWB environment consists of the following servers:

Users may use standard WWW browsers for accessing the web interface over HTTPS. Native e-mail clients use IMAPs or POPs to access mail accounts, and CalDAV (used for example by Thunderbird+Lightning or Apple iCAL) or SyncML (MS Outlook, PDA) to access calendars.

[Image]

Figure 3. Client access.

The SOGo web interface has multi-language support. We were not fully satisfied with the original Czech localization and we have modified it to match the Czech localization for Thunderbird as closely as possible. Obviously, we have submitted our contribution back to the project.

The SOGo Server is in production and available to all users with an account at the UWB. At the moment there are almost 15 000 user accounts. In average there are 3,500 users accessing the web interface every day, and another 500 users relying on CalDAV clients – usually Thunderbird with the Lightning extension.

The application has a surprisingly low demand for resources and does not impose significant load on the server hardware (2×CPU X5560 @ 2.8 GHz, 32 GB RAM). Its operation is stable and trouble free.

Another important factor is reception by users and that was very good. Users like the fast, Thunderbird-inspired web interface and appreciate the fast response. Acceptance by users relying on Thunderbird/Lightning was equally positive.

SOGo is a vigorous, relatively young project. All problems encountered can be reported to the developers' bug tracking system, and their reaction time is satisfactory.

Migration of calendar data from the old Lotus Notes-based system into the new SOGo environment concerned just a few users. It was done successfully by exporting events from Lotus Notes into ICS files and importing them to SOGo.

The quality of PDA data synchronization is satisfactory, although it depends on individual SyncML client implementations on the respective devices. Synchronization works without serious glitches in devices capable of running the Funambol client (Operating systems such as Windows Mobile, Android, Nokia...). It works equally well with native SyncML clients installed in recent devices by Nokia and with iPhone's native CalDAV clients.

The groupware solution outlined above obviously consists of several independent components, which are being developed independently. Unlike in monolithic systems, mutual interoperability has been achieved by nothing else than adherence to standards.

Although I am by no means inclined to question the obvious advantages of monolithic designs, I am still in favor of modular solutions. I see their main advantage in their ability to evolve in smaller steps, without the risk of paralyzing the whole system with a single bottleneck. Consequently, when a bottleneck is identified in production, it can be fixed by replacing the given component without impacting the rest of the system. In our setup, for instance, I would not dare replace the central mail server with another alternative if it was a part of a monolithic groupware server. I would be put off by the risk of losing efficiency or reliability.

Another fact worth mentioning is the upcoming release of a connector module for the freely available OpenChange Server, which is going to make SOGo accessible by Microsoft Outlook users. From their point of view, SOGo will act as an Exchange Server.

4  Conclusion

The SOGo Calendar Server has met and sometimes even surpassed our expectations. Many users access the service daily through web mail, their Thunderbird/Lightning clients or on their PDAs. SOGo allowed us to integrate calendar services with our network environment seamlessly. It cooperates directly with the existing e-mail system and LDAP directory. It allows us to provide calendar services to thousands of users with no license fees at all.

As far as operation is concerned, the system is very stable and demands little resources. There are certain shortcomings compared to well known state-of-the-art mailing services such as postfix or dovecot, but this is typical of all contemporary office solutions and it is justifiable by the greater complexity and difficulty of implementing calendar-related standards as well as many bugs in client-side implementations. That said, SOGo is a very active project and the quality of its product is growing.

5  Acknowledgments

This work has been carried out in cooperation between the Multimedia transmissions and collaborative environment group of CESNET and University of West Bohemia, Centre for Information Technology.

další weby:fond rozvojemetacentrumCzechLightpřenosyvideoservereduroameduID.cz