6.0.0-git
2024-04-16
Last Modified 2013-11-22 by Jan Schneider

Using external groupware (PIM) clients with Horde

There are several ways to access Horde applications or backends with external clients. These options can be summerized into two groups. Either both Horde and the external applications access the same shared backends as clients. Alternatively Horde can act as a backend server itself, that can be used by external clients through Synchronization.

Shared backends

Kolab server

A Kolab server is probably the most complete groupware solution with a shared backend server. Kolab is basically a stack of proven open source server systems that build a complete groupware server including web based management and wide range of supported clients. Horde is the officially supported browser frontend for Kolab 2 and supports all groupware features. There exist several clients for various platforms with native Kolab support, as well as connectors for existing groupware clients like Outlook or Thunderbird.

Homebrew servers

Kolab is probably the most comfortable way to install a groupware server for Horde. But if you already have some servers running that support open standards, chances are that you can access them with Horde applications. Horde applications support a wide range of protocols like IMAP, LDAP, CalDAV, IMSP and SQL. Due to the modular, driver-based architecture of the Horde Framework, you can even write your own drivers for backends that are currently not yet supported.

Horde as a backend

SyncML

SyncML is not really an access protocol, but a synchronization protocol. SyncML was already built into many mobile devices like mobile phones, and there exist many clients for mobile devices and desktop applications, most notably by Funambol and Synthesis. SyncML not used to access the live groupware data from the clients and manipulate them directly on the client, but to keep several copies of the same data synchronized with a push on a button. The usage of SyncML is fading out and being replaced by the ActiveSync protocol.

ActiveSync

The ActiveSync protocol provides over the air synchronization of contacts, calendar, task, notes, and email to devices supporting Exchange ActiveSync such as the iOS, Android, and Windows Mobile.

WebDAV (iCalendar/ICS)/GroupDAV/CalDAV/CardDAV

Horde has WebDAV, CalDAV and CardDAV interfaces that can be accessed by external clients like Thunderbird, Kontact, or Apple iCal or mobile devices like iOS or Android phones. The latter are standards which allow more complex access to groupware data and scale better than plain WebDAV. Support for GroupDAV doesn't exist yet, because this protocol has never grown popular.

XML-RPC

Several generic RPC interfaces exist in Horde, at the time of this writing XML-RPC, SOAP, and JSON. These can be used to access the external API of Horde and its applications and are rather targeted at developers. But there exists a wrapper around the XML-RPC interface that is compatible to the RPC interface of phpGroupWare/eGroupWare. At least one client (Kontact) supports this interface. It hasn't been tested much though.

Of course you can combine any of the scenarios mentioned here. You could use Horde as a frontend for a Kolab server and as a SyncML server for your PDAs and phones at the same time. Or you can use the Kolab server as a groupware backend, but add more address books from your company's LDAP or Active Directory servers, etc.

Authentication Caveats

If you have configured Horde to use Shibboleth or some other transparent authentication method then the RPC interface will fail as Horde will have no means to authenticate the user with the supplied HTTP authentication credentials. Most of these authentication drivers are designed for web browser based applications and hide the authentication part from Horde, providing just a trusted session and attribute data about the externally authenticated user.