Jump to content

KDE PIM/Akonadi: Difference between revisions

From KDE Community Wiki
add stub for information on Akonadi
 
add information about Akonadi from pim.kde.org
Line 1: Line 1:
This will be the new home for information about Akonadi.
== Akonadi - The PIM Storage Service ==


Currently, you can find information about Akonadi at the following places:
=== Mission Statement ===
* [http://pim.kde.org/akonadi/ Old KDE PIM website]
 
* [http://techbase.kde.org/Projects/PIM/Akonadi KDE TechBase]
'''''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 ===
 
[[image:Akonadi_Architecture.png|center|alt=Architecture diagram of Akonadi|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 [http://userbase.kde.org/Kontact Kontact],
[http://www.koffice.org KOffice] or [http://www.gnome.org/projects/evolution/ 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 [http://projects.kde.org/projects/kdesupport/akonadi KDE Support/Akonadi]
and the KDE Akonadi client libraries at [https://projects.kde.org/projects/kde/kdepimlibs/repository/revisions/master/show/akonadi KDE PIM Libraries/Akonadi].
 
Releases of the server can be downloaded from [http://download.akonadi-project.org/ download.akonadi-project.org], the client libraries are included in the 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
[http://api.kde.org/4.x-api/kdepimlibs-apidocs/akonadi/html/index.html API documentation].
Further information can be found on
[http://techbase.kde.org/Projects/PIM/Akonadi KDE TechBase].
 
Akonadi was introduced at the [[KDE_PIM/Meetings/Osnabrueck_4|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 [[KDE_PIM/Meetings/Osnabrueck_4|Osnabrück 4]] pages.
 
Akonadi also was a hot topic at the [[KDE_PIM/Meetings/Osnabrueck_5|5th Osnabrück meeting]].
 
Robert Zerus' master thesis [[media:Robert_Zwerus_-_Storing_PIM_data.pdf|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.
 
=== 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, [http://conference2006.kde.org/conference/talks/9.php video and slides]
* Tobias König: "Akonadi - State and Roadmap", 5th Annual KDE PIM New Year Meeting at Osnabrück, [[media:Akonadi-20070113.pdf|slides]]
* Volker Krause: "Akonadi - Overview and State", Decibel Hackathon 2007, [[media:Akonadi-20070317.pdf|slides]]
* Till Adam, Volker Krause: "Akonadi - Pimpin' your PIM", aKademy 2007, [[media:Akonadi-aKademy2007.pdf|slides]], [http://home.kde.org/%7Eakademy07/videos/1-07-Akonadi.ogg video]
* Till Adam, Volker Krause: "Akonadi - Personal Information Unleashed", FOSS.IN/2007, [[media:Akonadi-Release-foss.in2007.pdf|slides]]
* Till Adam, Volker Krause, "Developing PIM applications with Akonadi", FOSS.IN/2007, [[media:Akonadi-Development-foss.in2007.pdf|slides]]
* Till Adam, "Personal Information Management with Akonadi", LinuxTag 2008, [[media:Akonadi-LT2008.pdf|slides]]
* Till Adam, Volker Krause, "Akonadi Unleashed", Akademy 2008, [[media:Akonadi-Akademy2008.pdf|slides]]
* Till Adam et al., "Akonadi Rumble", Akademy 2008, [[media:Akonadi-Rumble-Akademy2008.pdf|slides]]
* Volker Krause, "Akonadi Overview", KDE PIM/OpenSync Meeting 2008, [[media:Akonadi-OpenSync2008.pdf|slides]]
* Brad Hards, "OpenChange and KDE - bridging to Microsoft Exchange", linux.conf.au 2009, [http://www.frogmouth.net/lca2009-hards.pdf slides], [http://mirror.linux.org.au/pub/linux.conf.au/2009/Friday/72.ogg video]
* Till Adam, "Akonadi", Camp KDE 2009, [http://blip.tv/file/1804917 video]
* Will Stephenson, "Akonadi - the independent solution for PIM data", GCDS 2009, [[media:Akonadi-gcds2009.pdf|slides]]
* Kevin Krammer, "Writing an Akonadi resource in (less than) 30 minutes", GCDS 2009, [http://websvn.kde.org/trunk/playground/pim/akonadi/example_resource/ code]
* Thomas McGuire, "KMail 2 - The Road to Akonadi", GCDS 2009, [[media:KMail2-The_Road_to_Akonadi-gcds2009.pdf|slides]]
* Volker Krause, "Automated Testing in Service Oriented Environments", GCDS 2009, [[media:automated-testing-in-service-oriented-environments-gcds2009.pdf|slides]]
* Szymon Tomasz Stefanek, "Akonadi Filtering Framework - Current State", GCDS 2009, [[media:Akonadi-Filtering-Framework-gcds2009.pdf|slides]]
* Adenilson Cavalcanti da Silva, "Implementing KDE PIM support for Google calendar and contacts", FISL 10, [[media:fisl10_adenilson08.pdf|slides]]
* Kevin Krammer, "Akonadi - Desktop PIM, Unixstyle", Grazer Linuxtage 2010, [[media:Akonadi-GLT2010.pdf|slides]]
 
=== Interviews ===
 
* [http://www.kubuntu-de.org/english/interview-tobias-k-nig-about-development-akonadi Tobias König about the development of Akonadi, kubuntu-de.org in March 2008]
* [http://www.linuxpodcast.de/index.php?id=242 Till Adam about Akonadi, RadioTux at LinuxTag 2008]
 
=== Media ===
 
* [[media:Akonadi_Architecture.png|Akonadi Architecture Diagram (as PNG)]]
* [[media:Akonadi_Architecture.svg|Akonadi Architecture Diagram (as SVG)]]

Revision as of 22:16, 27 February 2011

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

Architecture diagram of Akonadi
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 KDE Support/Akonadi and the KDE Akonadi client libraries at KDE PIM Libraries/Akonadi.

Releases of the server can be downloaded from download.akonadi-project.org, the client libraries are included in the 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.

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

Interviews

Media