Presentation is loading. Please wait.

Presentation is loading. Please wait.

Patrick Ohly 03.02.2010 © Copyright, 2009 Intel. Project Overview © Copyright, 2009 Intel2.

Similar presentations


Presentation on theme: "Patrick Ohly 03.02.2010 © Copyright, 2009 Intel. Project Overview © Copyright, 2009 Intel2."— Presentation transcript:

1 Patrick Ohly 03.02.2010 © Copyright, 2009 Intel

2 Project Overview © Copyright, 2009 Intel2

3 SyncML – Freedom of Choice, No Vendor Lock-In Over the Air SyncML Server Google, ScheduleWorld, Funambol, Memotoo, Mobical, Synthesis, ZYB... SyncML Server Google, ScheduleWorld, Funambol, Memotoo, Mobical, Synthesis, ZYB... Google SyncEvolution - Sync PIM (Contacts, Events, Tasks, Notes) © Copyright, 2009 Intel< Over The Air Sync SyncML (OMA DS): protocol vCard/vCalendar/iCalendar: payload

4 History © Copyright, 2010 Intel4 SyncEvolution: spare time project for >3 years, full-time since 2009 So far: SyncML client for Evolution/Moblin iPhone+Mac OS X (need maintainer) Maemo (Ove Kaaven: Maemo 5) KDE (under development) More to come in 1.0: direct synchronization “The Missing Link”

5 © Copyright, 2009 Intel5 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 Stable C API+ABI LGPL 2.1+3.0 Funambol: three different code bases, no stable ABI, AGPL v3 libsyncml: only lower protocol layers, lacks synchronization engine OpenSync/Conduit: no/limited (?) data conversion Synthesis

6 Components © Copyright, 2009 Intel6 SyncEvolution: 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: SyncML protocol (up to 1.2.1 very complete) Data conversion, merging, database storage (ODBC) libsmltk (SyncML Toolkit): Message encoding/decoding (XML + WBXML)

7 D-Bus Evolution Backend D-Bus Server Command Line CPPUnit Testing SyncEvolution Core Synthesis Glue Synthesis Coretransport lib Synthesis Glue SyncML Server HTTP(S) GNOME Evolution Data Server libecal/ebook D-Bus libical GTK GUI

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

9 © Copyright, 2010 Intel9 PIM Sync Challenges: It can eat your data?! SyncML Server SyncML Clients

10 PIM Sync + Interoperability Challenges © Copyright, 2009 Intel10 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 (vCalendar). 5.Must work with limited knowledge about peers (capabilities, behavior).

11 SyncML as Protocol © Copyright, 2009 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 Avoid overloading peer: maximum message size, flow control Device Capability description

12 SyncML Client © Copyright, 2009 Intel12 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)

13 SyncML Server © Copyright, 2009 Intel13 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

14 Synthesis Data Handling © Copyright, 2009 Intel14 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.

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

16 Next Steps © Copyright, 2009 Intel16 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

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

18 © Copyright, 2009 Intel18


Download ppt "Patrick Ohly 03.02.2010 © Copyright, 2009 Intel. Project Overview © Copyright, 2009 Intel2."

Similar presentations


Ads by Google