KDE PIM/Akonadi - KDE Community Wiki
Jump to content
From KDE Community Wiki
KDE PIM
Akonadi - The PIM Storage Service
Mission Statement
We intend to design an extensible cross-desktop storage service for PIM data and meta data providing concurrent read, write, and query access. It will provide unique desktop wide object identification and retrieval.
Features
Common PIM data cache
Type agnostic design
Extensible
Generic offline access, change recording and replay
Generic conflict detection and resolution
Resources are groupable by profile
Items composed of independently retrievable multiple parts
Zero-copy retrieval possible
Concurrent access allows background activity independent of UI client
Syncing mail, calendar, addressbooks to remote servers
Syncing with mobile devices
Permits semantic desktop infrastructure to access PIM data
Archiving
Indexing
Out-of-process search
Multi-process design
Crash isolation
Large items can't block whole system
Linkage by IPC allows proprietary components
Thin client installations can share components for scalability
Architecture
The architecture of the overall system is described in great detail
here
Architecture of Akonadi
This diagram illustrates the basic aspects of the Akonadi architecture. It's
built around a central storage which is accessed through a language and platform
neutral protocol. On top of this protocol a set of APIs is provided which are
used to access the PIM data in the storage. There are two kinds of users of the
APIs.
First, there are the applications like
Kontact
KOffice
or
Evolution
Second, there are
resources which transfer data between the central Akonadi storage and external
sources. This can be groupware servers like OX or GroupWise, other storage
mechanisms like iCalendar files or access through standard protocols like POP or
IMAP.
The diagram only lists some example applications and resources. Akonadi is
designed to be accessible to a broad range of applications and resource
implementations. It's part of the concept that it's easy to add additional APIs
and users of the APIs.
Code
Akonadi is currently being developed in the KDE Git repositories. You find
the Akonadi server at
PIM/Akonadi
and the Akonadi client libraries at
PIM/Akonadi Calendar
PIM/Akonadi Contacts
PIM/Akonadi Mime
PIM/Akonadi Notes
, &
PIM/Akonadi Search
The server is included in the KDE Gear releases (older releases of the server can be downloaded from
Attic area of download.kde.org
). The client libraries are included in the KDE Gear releases as well (before part of regular KDE releases beginning with KDE 4.1).
Documentation
The overall design of Akonadi as well as of its building blocks is described as part of the
API documentation
Further information can be found on
KDE TechBase
Akonadi was introduced at the
4th annual KDE PIM meeting at Osnabrück
Documentation about the discussions which took place there and some more background information
can be found at the
Osnabrück 4
pages.
Akonadi also was a hot topic at the
5th Osnabrück meeting
Robert Zerus' master thesis
Storing Personal Information Management Data
talks in depth about the server architecture, focusing on the database design, PIM data storage and consistency as well as some aspects of the client/server communication.
Akonadi is also featured in Chapter 12 of "Beautiful Architecture" published by O'Reilly.
Talks
Since it's founding early 2006 there have been a number of talks and presentations all over the world that covered Akonadi or some of the approaches and technologies chosen for its implementation. The following list contains a few of them:
Tobias König: "Akonadi - The KDE 4.0 PIM Framework", aKademy 2006,
video and slides
Tobias König: "Akonadi - State and Roadmap", 5th Annual KDE PIM New Year Meeting at Osnabrück,
slides
Volker Krause: "Akonadi - Overview and State", Decibel Hackathon 2007,
slides
Till Adam, Volker Krause: "Akonadi - Pimpin' your PIM", aKademy 2007,
slides
video
Till Adam, Volker Krause: "Akonadi - Personal Information Unleashed", FOSS.IN/2007,
slides
Till Adam, Volker Krause, "Developing PIM applications with Akonadi", FOSS.IN/2007,
slides
Till Adam, "Personal Information Management with Akonadi", LinuxTag 2008,
slides
Till Adam, Volker Krause, "Akonadi Unleashed", Akademy 2008,
slides
Till Adam et al., "Akonadi Rumble", Akademy 2008,
slides
Volker Krause, "Akonadi Overview", KDE PIM/OpenSync Meeting 2008,
slides
Brad Hards, "OpenChange and KDE - bridging to Microsoft Exchange", linux.conf.au 2009,
slides
video
Till Adam, "Akonadi", Camp KDE 2009,
video
Will Stephenson, "Akonadi - the independent solution for PIM data", GCDS 2009,
slides
Kevin Krammer, "Writing an Akonadi resource in (less than) 30 minutes", GCDS 2009,
code
Thomas McGuire, "KMail 2 - The Road to Akonadi", GCDS 2009,
slides
Volker Krause, "Automated Testing in Service Oriented Environments", GCDS 2009,
slides
Szymon Tomasz Stefanek, "Akonadi Filtering Framework - Current State", GCDS 2009,
slides
Adenilson Cavalcanti da Silva, "Implementing KDE PIM support for Google calendar and contacts", FISL 10,
slides
Kevin Krammer, "Akonadi - Desktop PIM, Unixstyle", Grazer Linuxtage 2010,
slides
Till Adam, "Avalanche in your pocket - KDEPIM on mobile devices", Akademy 2010,
slides
video
Volker Krause, "Akonadi and KDE PIM - Access your personal data everywhere", conf.kde.in 2011
Interviews
Tobias König about the development of Akonadi, kubuntu-de.org in March 2008
Till Adam about Akonadi, RadioTux at LinuxTag 2008
Media
Akonadi Architecture Diagram (as PNG)
Akonadi Architecture Diagram (as SVG)
Retrieved from "