Data Synchronization in Netbooks, Desktops and Mobile Devices Patrick Ohly
Total Page:16
File Type:pdf, Size:1020Kb
Data Synchronization in Netbooks, Desktops and Mobile Devices Patrick Ohly © Copyright, 2010 Intel Content • Introduction to the problem • SyncEvolution: upstream project, used in Moblin and MeeGo 1.0 Netbook • Buteo: core sync component of MeeGo >= 1.1 2 06.08.2010 © Copyright, 2010 Intel Motivation – Why Sync is important • Using many different devices: PC, laptop, Netbook, cell phone, gadgets • Must share data: • calendar: notifications of upcoming events, schedule new appointments • contacts: phone calls with cell phone, email on PC, postcard while traveling • Sync: • local data => integrate into system with native apps • modify anytime, anywhere, even while offline • synchronize when online 3 06.08.2010 © Copyright, 2010 Intel Over The Air Sync Google SyncML Server Google, ScheduleWorld, Funambol, Memotoo, Mobical, Synthesis, Vodafone/ZYB, Oracle, Nokia Ovi.com, T-Mobile ... SyncML (OMA DS): protocol vCard/vCalendar/iCalendar: payload HTTP: transport SyncEvolution - Sync PIM (Contacts, Events, Tasks, Notes) 4 06.08.2010 © Copyright, 2010 Intel Direct Sync – MeeGo Netbook 1.0 SyncEvolution 1.0: • SyncML server • OBEX/Bluetooth 5 06.08.2010 © Copyright, 2010 Intel SyncML Server SyncML Clients PIM Sync Challenges: 6 © Copyright, 2010 Intel It can eat your data?! 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 interchange formats, including legacy ones (vCalendar). 5.Must work with limited knowledge about peers (capabilities, behavior). 7 06.08.2010 © Copyright, 2010 Intel SyncML 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 8 06.08.2010 © Copyright, 2010 Intel 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. 9 06.08.2010 © Copyright, 2010 Intel 10 06.08.2010 © Copyright, 2010 Intel History SyncEvolution - “The Missing Link” • SyncEvolution: spare time project since 2006, full-time 2009-2010 • Platforms + Backends: • Evolution/Moblin/MeeGo Netbook • iPhone+Mac OS X (need maintainer) • Maemo (Ove Kaaven: Maemo 5) • KDE (under development) • XMLRPC (m-otion), plain files, … • Since 1.0: direct synchronization 11 06.08.2010 © Copyright, 2010 Intel 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 • Stable C API+ABI • LGPL 2.1+3.0 12 06.08.2010 © 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 13 libical © Copyright, 2010 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 Daemon (Netbook) Reply (Internet) Reply 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) 14 06.08.2010 © Copyright, 2010 Intel Buteo (“Hawk”) Photo cc-by 2.0 Alan Vernon 15 06.08.2010 © Copyright, 2010 Intel Buteo History • Developed by Nokia for Maemo Harmattan and Harmattan PIM storage • Source available under LGPL + BSD since end of June 2010 • Packages in MeeGo Trunk end of July, example Qt GUI added a bit later 16 06.08.2010 © Copyright, 2010 Intel MeeGo sync app/settings Handset UX D-Bus wrapper lib Buteo Framework msyncd hcontacts hcalendar SyncML OBEX MTP storage storage sync server sync plugin plugin plugin plugin plugin Buteo Plugins Buteo SyncML QtContacts KCalExtended libwbxml 17 06.08.2010 © Copyright, 2010 Intel SyncEvolution + Buteo Comparison • Built around Synthesis • Sync protocol are plugins SyncML engine • Data conversion and sync • Data conversion and sync logic provide by engine logic in PIM storage [plugins] – under discussion (BMC #4897) • Several SyncML services • SyncML service support supported and tested undecided (#3869), automatically no automatic interoperability testing • User can add custom • Services deployed by device services operator via packages (#4941) 18 06.08.2010 © Copyright, 2010 Intel Getting Involved Let’s dance sync 19 06.08.2010 © Copyright, 2010 Intel Getting Involved in SyncEvolution • http://syncevolution.org • Mailing list, also on Gmane • bugs.meego.com with enhancement ideas • “SyncML Client Do-it-yourself Style” • LWN.net article, long version on syncevolution.org 20 06.08.2010 © Copyright, 2010 Intel Getting Involved in Buteo • http://wiki.meego.com/Buteo • meego-dev mailing list • bugs.meego.com 21 06.08.2010 © Copyright, 2010 Intel any questions? 22 06.08.2010 © Copyright, 2010 Intel Legal information INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALE AND/OR USE OF INTEL PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel may make changes to specifications, product descriptions, and plans at any time, without notice. All dates provided are subject to change without notice. Intel is a trademark of Intel Corporation in the U.S. and other countries. *Other names and brands may be claimed as the property of others. Copyright © 2010, Intel Corporation. All rights are protected 23 Friday, July 16, 2010 © Copyright, 2010 Intel see ya! 24 06.08.2010 © Copyright, 2010 Intel.