Akonadi - The KDE 4.0 PIM Framework
Speaker: Tobias Koenig
PIM (also known as Personal Information Management) is an important issue for every office and home user desktop. It starts with the possibility of reading mails, managing contacts and phone numbers, and also includes group scheduling of events and to-dos.
Since KDE 3.0 was released 2002 KDE has offered, through Kontact, a usable and feature rich PIM solution. However, for historical reasons the applications were developed as standalone applications with different storage mechanisms and data handling concepts.
With the support for groupware servers, like Kolab or eGroupware, the PIM applications suddenly had to handle huge amounts of data and had to take care of asynchronous access to data storage. These requirements led to code duplication in the single storage libraries (e.g. libkabc or libkcal) and an unclean API.
Further problems were caused by the immense memory consumption, since two PIM applications, both of which wanted to access the address book or calender, had to load the data and hold them in memory twice. Another limitation was the missing change notification support, so when one application changed a contact, it was uncertain whether another application got informed of the change immediately.
To make a long story short, the PIM design of KDE 3.X served us well but now it's time for a new concept which fixes many of the known limitations. At the last KDE PIM developer meeting in Osnabrueck/Germany in January 2006 the KDE PIM team discussed and designed a new PIM data storage for KDE 4 named Akonadi.
Akonadi consists of several components:
- a data storage
- several search providers
- a notification manager
- a library for easy access
The data storage will hold all PIM data (emails, news, contacts and events) and offer access to them via an extended IMAP protocol. To allow applications to access only a subset of PIM items (like all events between January and February this year) they can ask a search provider, which will do the actual filtering on the data storage. The notification manager will send signals whenever a PIM item has changed, was added or deleted, so PIM components which are connected to these signals will always be up to date.
Since most developers do not want to work on the level of the IMAP protocol, there will be a library which encapsulates all the low-level protocols and provides a Qt-based interface for easy access.
Besides the features the KDE project gains from the new design, 3rd party developers and other desktop projects will gain from Akonadi as well, since it provides a platform-independent, fast and extensible storage and management of PIM data, so it could be a replacement for the Evolution-Data-Server (EDS).
This talk will give a deeper insight into the current status of Akonadi, the currently available APIs, different concepts of data handling and a vision of what future PIM GUIs could look like.
Tobias Koenig is a 24 year old German. He is the current maintainer of KAddressBook and co-maintainer of KSysGuard. He also did some development in kdepim (Kontact) and kdelibs (kabc, kdecore) and made some small improvements to kpdf.