Patrick Ohly

© Copyright, 2012 Intel 01.02.2012 History “The Missing Link”

• Spare time project since 2006, full-time since 2009 • Initial focus SyncML, both over the air and directly over Bluetooth • “Local Sync”: connects two backends • CalDAV/CardDAV • ActiveSync • PIM storage backends: Evolution, plain files, QtContacts/KCal (Nokia N9), (experimental), XMLRPC • Different frontends: GTK UI, command line, Qt (experimental)

2 © Copyright, 2012 Intel Peers Sync Engine + UIs Peers contacting Server Stubs Data Storage Transports contacted us by us

Evolution HTTP SyncML HTTP Data POST SyncML POST HTTP Client Server Server Reply Daemon (Netbook) Reply (Internet) libsoup

syncevo-dbus-server

libopenobex OBEX PUT

OBEX SyncML PUT Panel Applet SyncML OBEX Server OBEXD GET Client OBEX (Desktop) GET GUI: sync-ui (Phone)

CLI: syncevolution

Local Machine (Desktop, Netbook, Phone)

3 © Copyright, 2012 Intel CalDAV/CardDAV + ActiveSync + PBAP + …

SyncML + vCard/iCalendar via direct D-Bus connection WebDAV CalDAV/ libneon vCard, CardDAV iCalendar Server syncevo-dbus-server syncevo-local-sync

activesyncd API + EDS vCard/iCalendar/email via D-Bus daemon

Evolution activesyncd ActiveSync libsoup Exchange libcamel WBXML Local Machine (Desktop, Netbook, Phone)

4 © Copyright, 2012 Intel EDS Improvements

• Store and pass photos as files, managed by EDS • Avoid redundant item parsing • Global DB revision string (similar to CTag in DAV) • Retrieve item meta data for change detection in sync

5 © Copyright, 2012 Intel http://syncevolution.org

In development: •Better local sync •syncevo-dbus-server rewrite •Automatic syncing •PBAP backend (BMW CarIT)

Needs help: •KDE •Google Data API •GTK UI

Getting Involved

6 © Copyright, 2012 Intel Confidential SyncML Server

SyncML Clients

PIM Sync Challenges:

7 © Copyright, 2010 Intel It can eat your data?! Synthesis

• Swiss company with >10y experience with SyncML, owned by the two main developers • Synthesis SyncML Engine: • C++ implementation of client and server, data merging and conversion • LGPL 2.1+3.0

8 © Copyright, 2010 Intel SyncMLOver The – Freedom Air Sync of Choice, No Vendor Lock-In Over the Air GoogleGoogle SyncMLSyncML Server Server Google,Google, ScheduleWorld, ScheduleWorld, Funambol,Funambol, Memotoo, Memotoo, Mobical,Mobical, Synthesis, Synthesis, ZYBZYB ......

SyncML (OMA DS): protocol vCard/vCalendar/iCalendar: payload

SyncEvolution - Sync PIM (Contacts, Events, Tasks, Notes)

© Copyright, 2009 Intel< PIM Sync + Interoperability Challenges

1.No globally unique ID. 2.Different representation of data. 3.Offline updates allowed: what is the most recent data? 4.Must support standard formats, including legacy ones (vCalendar). 5.Must work with limited knowledge about peers (capabilities, behavior).

10 © Copyright, 2010 Intel SyncML as Protocol

• “slow sync” – client sends all items, server compares, sends updates back • “normal sync” – exchange of updates • Resilient – suspend&resume (voluntarily or due to loss of connection), resend messages • Device Capability description

11 © Copyright, 2010 Intel Usage

• Command line: syncevolution --configure \ --sync-property username=foo \ --sync-property password=bar \ scheduleworld syncevolution scheduleworld syncevolution --sync-properties ? syncevolution --source-properties ? • Applet: Genesis, by Frederik Elwert

• GTK GUI (“sync-ui”)

12 © Copyright, 2010 Intel Sync-UI: Setup

13 © Copyright, 2010 Intel Sync-UI: Houston, we’ve got a problem.

14 © Copyright, 2010 Intel Sync-UI: We’ve got a solution.

15 © Copyright, 2010 Intel Command GTK GUI Line D-Bus CPPUnit D-Bus Server Testing

SyncEvolution Core

Synthesis Glue

GNOME Synthesis Core transport lib

Synthesis Glue HTTP(S) Evolution Data Evolution Backend Server SyncML Server D-Bus libecal/ebook

16 libical © Copyright, 2010 Intel