Patrick Ohly Copyright 2009 Intel 03 02 2010

  • Slides: 18
Download presentation
Patrick Ohly © Copyright, 2009 Intel 03. 02. 2010

Patrick Ohly © Copyright, 2009 Intel 03. 02. 2010

Project Overview 2 © Copyright, 2009 Intel

Project Overview 2 © Copyright, 2009 Intel

Over The Air Sync. ML – Freedom of Choice, No Vendor Lock-In Over the

Over The Air Sync. ML – Freedom of Choice, No Vendor Lock-In Over the Air Sync. ML Server Google, Schedule. World, Funambol, Memotoo, Mobical, Synthesis, ZYB. . . Sync. ML (OMA DS): protocol v. Card/v. Calendar/i. Calendar: payload Sync. Evolution - Sync PIM (Contacts, Events, Tasks, Notes) © Copyright, 2009 Intel< Google

History “The Missing Link” • Sync. Evolution: spare time project for >3 years, full-time

History “The Missing Link” • Sync. Evolution: spare time project for >3 years, full-time since 2009 • So far: Sync. ML client for • Evolution/Moblin • i. Phone+Mac OS X (need maintainer) • Maemo (Ove Kaaven: Maemo 5) • KDE (under development) • More to come in 1. 0: direct synchronization 4 © Copyright, 2010 Intel

Synthesis • Swiss company with >10 y experience with Sync. ML, owned by the

Synthesis • Swiss company with >10 y experience with Sync. ML, owned by the two main developers • Synthesis Sync. ML Engine: • C++ implementation of client and server, data merging and conversion • Stable C API+ABI • LGPL 2. 1+3. 0 • Funambol: three different code bases, no stable ABI, AGPL v 3 • libsyncml: only lower protocol layers, lacks synchronization engine • Open. Sync/Conduit: no/limited (? ) data conversion 5 © Copyright, 2009 Intel

Components • Sync. Evolution: • User interface (command line, GTK GUI) • Configuration handling

Components • Sync. Evolution: • User interface (command line, GTK GUI) • Configuration handling • Local data backends (Evolution Data Server, Mac OS X Address Book, files, XMLRPC, Akonadi) • Message transport (HTTP via libsoup/libcurl) • Test suite • libsynthesis: • Sync. ML protocol (up to 1. 2. 1 very complete) • Data conversion, merging, database storage (ODBC) • libsmltk (Sync. ML Toolkit): • Message encoding/decoding (XML + WBXML) 6 © Copyright, 2009 Intel

GTK GUI D-Bus Server Command Line CPPUnit Testing Sync. Evolution Core Synthesis Glue GNOME

GTK GUI D-Bus Server Command Line CPPUnit Testing Sync. Evolution Core Synthesis Glue GNOME Evolution Data Server Synthesis Core Synthesis Glue Evolution Backend D-Bus libecal/ebook libical transport lib HTTP(S) Sync. ML Server

Peers contacting us Sync. ML Client (Netbook) Server Stubs HTTP POST Reply HTTP Daemon

Peers contacting us Sync. ML Client (Netbook) Server Stubs HTTP POST Reply HTTP Daemon Sync Engine + UIs Data Storage Peers contacted by us Transports Evolution Data Server HTTP POST libsoup Reply Sync. ML Server (Internet) syncevo-dbus-server libopenobex Sync. ML Server (Desktop) OBEX PUT OBEX GET OBEX PUT Panel Applet OBEXD GUI: sync-ui CLI: syncevolution Local Machine (Desktop, Netbook, Phone) OBEX GET Sync. ML Client (Phone)

Sync. ML Server Sync. ML Clients PIM Sync Challenges: 9 © Copyright, 2010 Intel

Sync. ML Server Sync. ML Clients PIM Sync Challenges: 9 © Copyright, 2010 Intel It can eat your data? !

PIM Sync + Interoperability Challenges 1. No globally unique ID. 2. Different representation of

PIM Sync + Interoperability Challenges 1. No globally unique ID. 2. Different representation of data inside clients. 3. Offline updates allowed: what is the most recent data? 4. Must support standard formats, including legacy ones (v. Calendar). 5. Must work with limited knowledge about peers (capabilities, behavior). 10 © Copyright, 2009 Intel

Sync. ML as Protocol • “slow sync” - client sends all items, server compares,

Sync. ML 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 • Avoid overloading peer: maximum message size, flow control • Device Capability description 11 © Copyright, 2009 Intel

Sync. ML Client • Easy to implement, less complex side • List items and

Sync. ML Client • Easy to implement, less complex side • List items and changes since last sync session, using locally unique ID • Import and export items, either in standard format or Synthesis representation • Data merging optional (supported by Synthesis engine) 12 © Copyright, 2009 Intel

Sync. ML Server • Convert data between clients • Map between local IDs •

Sync. ML Server • Convert data between clients • Map between local IDs • Handle conflicts: • Fixed policy in HTTP servers • More flexible in desktop apps? ! • Merge incomplete updates received from dumb clients with complete item on server • Synthesis: same datastore API as on client side 13 © Copyright, 2009 Intel

Synthesis Data Handling • Specified via XML config: new data formats can reuse existing

Synthesis Data Handling • Specified via XML config: new data formats can reuse existing mechanisms. • Field list declares internal format and key properties for matching items. • Conversion to and from external formats via one or more profiles; can be parameterized. • Can use modification time stamps and different conflict resolution policies (duplicate, merge). • Uses Device Capabilities: solves the “property removed or not supported? ” problem. 14 © Copyright, 2009 Intel

Next Steps + Getting Involved 15 © Copyright, 2009 Intel Confidential

Next Steps + Getting Involved 15 © Copyright, 2009 Intel Confidential

Next Steps • 1. 0 release: beta available, release end of March • Sync

Next Steps • 1. 0 release: beta available, release end of March • Sync in background + recovery • Direct device-to-device sync • Beyond 1. 0: • Device database (“config templates”) • Support more local backends, including adaptors for other protocols (need contributors!) • Local sync between backends • Push sync 16 © Copyright, 2009 Intel

Getting Involved • http: //syncevolution. org • Mailing list, also on Gmane • bugzilla.

Getting Involved • http: //syncevolution. org • Mailing list, also on Gmane • bugzilla. moblin. org with enhancement ideas • “Sync. ML Client Do-it-yourself Style” • LWN. net article, long version on moblin. org 17 © Copyright, 2009 Intel

18 © Copyright, 2009 Intel

18 © Copyright, 2009 Intel