Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time...

16
Patrick Ohly 01.02.2012 © Copyright, 2012 Intel

Transcript of Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time...

Page 1: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

Patrick Ohly01.02.2012

© Copyright, 2012 Intel

Page 2: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

History

© Copyright, 2012 Intel2

• 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), Akonadi (experimental), XMLRPC

• Different frontends: GTK UI, command line, Qt (experimental)

“The Missing Link”

Page 3: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

© Copyright, 2012 Intel

HTTPPOST

Reply

OBEXGET

OBEXPUT

Server StubsSync Engine + UIs

Data Storage Transports

EvolutionData

Server

syncevo-dbus-server

SyncMLClient

(Netbook)

SyncMLServer

(Desktop)

HTTPDaemon

OBEXD

libopenobex

libsoup

Local Machine (Desktop, Netbook, Phone)

SyncMLServer

(Internet)

SyncMLClient

(Phone)

Peerscontacting

us

Peerscontacted

by us

Panel Applet

GUI: sync-ui

CLI: syncevolution

HTTPPOST

Reply

OBEXPUT

OBEXGET

3

Page 4: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

activesyncd

© Copyright, 2012 Intel

EDS

syncevo-dbus-server

libsoup

Local Machine (Desktop, Netbook, Phone)

CalDAV/CardDAV

Server

Exchange

4

WebDAV

syncevo-local-sync

libneonvCard,

iCalendar

ActiveSync

WBXML

activesyncd API + vCard/iCalendar/emailvia D-Bus daemon

SyncML + vCard/iCalendarvia direct D-Bus connection

Evolution

libcamel

CalDAV/CardDAV + ActiveSync + PBAP + …

Page 5: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

EDS Improvements

© Copyright, 2012 Intel5

• 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

Page 6: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

Getting Involved© Copyright, 2012 Intel Confidential6

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

Page 7: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

© Copyright, 2010 Intel 7

PIM Sync Challenges:

It can eat your data?!

SyncML Server

SyncML Clients

Page 8: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

© Copyright, 2010 Intel8

• 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

Synthesis

Page 9: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

SyncML – Freedom of Choice, No Vendor Lock-In

Over the Air

SyncML ServerGoogle, ScheduleWorld,

Funambol, Memotoo, Mobical, Synthesis, ZYB

...

SyncML ServerGoogle, ScheduleWorld,

Funambol, Memotoo, Mobical, Synthesis, ZYB

...

GoogleGoogle

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

© Copyright, 2009 Intel<

Over The Air Sync

SyncML (OMA DS): protocolvCard/vCalendar/iCalendar: payload

Page 10: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

PIM Sync + Interoperability Challenges

© Copyright, 2010 Intel10

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).

Page 11: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

SyncML as Protocol

© Copyright, 2010 Intel11

• “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

Page 12: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

© Copyright, 2010 Intel12

• Command line:syncevolution --configure \ --sync-property username=foo \ --sync-property password=bar \ scheduleworldsyncevolution scheduleworldsyncevolution --sync-properties ?syncevolution --source-properties ?

• Applet: Genesis, by Frederik Elwert

• GTK GUI (“sync-ui”)

Usage

Page 13: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

Sync-UI: Setup

© Copyright, 2010 Intel13

Page 14: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

Sync-UI: Houston, we’ve got a problem.

© Copyright, 2010 Intel14

Page 15: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

Sync-UI: We’ve got a solution.

© Copyright, 2010 Intel15

Page 16: Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time project since 2006, full-time since 2009 Initial focus SyncML,

© Copyright, 2010 Intel

D-Bus

Evolution Backend

D-Bus Server

CommandLine

CPPUnitTesting

SyncEvolution Core

Synthesis Glue

Synthesis Core transport lib

Synthesis Glue

SyncML Server

HTTP(S)

GNOME

EvolutionData

Serverlibecal/ebookD-Bus

libical

GTK GUI

16