Patrick Ohly
Total Page:16
File Type:pdf, Size:1020Kb
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), Akonadi (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.