Patrick Ohly Copyright 2009 Intel 03 02 2010
- Slides: 18
Patrick Ohly © Copyright, 2009 Intel 03. 02. 2010
Project Overview 2 © Copyright, 2009 Intel
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 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 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 • 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 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 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 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 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, 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 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 • 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 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 • 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. 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
- Internal block diagram of 8086
- Calorimetro zanichelli
- Copyright 2009 pearson education inc
- Copyright 2009 pearson education inc
- Copyright 2009 pearson education inc
- Copyright 2009 pearson education inc
- Copyright 2009
- 2009 pearson education inc
- Copyright international color consortium, 2009
- Copyright 2009
- Copyright 2009 pearson education inc
- Dell all rights reserved copyright 2009
- Calendario escolar 2009 a 2010 sep
- Variazioni finanziarie positive e negative
- C-929-a
- Copyright 2010 pearson education inc
- Nwoz
- 2010 pearson education inc
- Copyright 2010 pearson education inc