You are on page 1of 21

Akonadi

The KDE4 PIM Framework


Tobias Koenig

KDE Akademy 2006 – p. 1


Overview

• Why a new PIM Framework


• Akonadi
⊲ History
⊲ Concepts
⊲ Current State
⊲ The Future
• Questions & Answers

KDE Akademy 2006 – p. 2


Problems with old Framework

• Bad Performance
• Synchronous Access
• Memory Consumption
• Missing Notifications
• Missing Locking

KDE Akademy 2006 – p. 3


Akonadi

• A general storage for PIM data


• Aims to solve the problems of kabc/kcal
• Modular design for robustness and easy integration

KDE Akademy 2006 – p. 4


History

• First ideas of a PIM daemon at Osnabrück meeting


2005
• Sample code for address book daemon
• General agreement for PIM service at Osnabrück
meeting 2006
• ’Akonadi’ was born

KDE Akademy 2006 – p. 5


Concepts

KDE Akademy 2006 – p. 6


Concepts

Control

DBus-Interface

libkcal
Agent (Resource)

libakonadi
Agent (Resource)

libkabc
IMAP-Interface

Storage
Search-
Provider

Application
Search-
Provider
Component
Akonadi Server

KDE Akademy 2006 – p. 7


The Storage

• Accessible via extended IMAP


=> high performance on data delivery
• Caches all PIM items of the resources
(depending on the policy)
• Informs the Control about changes
• Provides basic search features (IMAP)
• Delegates extended search requests to
SearchProviders

KDE Akademy 2006 – p. 8


The Resources

• Applications which synchronize data between the


Storage and an external data source
(e.g. groupware server or file)
• Asynchronous communication
• Profiles for grouping Resources together

KDE Akademy 2006 – p. 9


The Control

• Starts and monitors the Storage and resource


processes
• Provides D-Bus API for managing resources and
profiles

KDE Akademy 2006 – p. 10


The SearchProviders

• External applications which process more complex


search queries
• One SearchProvider for every PIM item type
• Store search results in collections inside the Storage

KDE Akademy 2006 – p. 11


Collections

• Virtual containers inside the Storage


• Contain PIM items/references
• Root collection ’/’
• Every Resource provides at least one collection
• Easy to realize virtual folders
/
/resource1
/resource1/calendar
/resource1/addressbook
/resource2
/search

KDE Akademy 2006 – p. 12


Current State

KDE Akademy 2006 – p. 13


Current State

• Storage
⊲ Provides all needed IMAP commands
⊲ Stores items in Collections
• Control
⊲ Lifetime management for Storage and Resources
⊲ D-Bus API nearly completed
• Resources
⊲ Simple iCalendar file
⊲ Dummy resource ’Knut’

KDE Akademy 2006 – p. 14


Demo...

KDE Akademy 2006 – p. 15


TO DO

• Implementing SearchProviders
(mail, calendar, address book)
• Defining asynchronous client library
• Implementing full featured resources
(remote and local file)
• Writing documentation!!!

KDE Akademy 2006 – p. 16


The Future

KDE Akademy 2006 – p. 17


The Future

• Goal: Components based PIM library


• Components as standalone views and editors of PIM
data
• Plasma applets for calendar and address book

KDE Akademy 2006 – p. 18


We need developers!

KDE Akademy 2006 – p. 19


Questions?

KDE Akademy 2006 – p. 20


Thank you

KDE Akademy 2006 – p. 21

You might also like