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