Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time...
-
Upload
franklin-mckenzie -
Category
Documents
-
view
214 -
download
0
Transcript of Patrick Ohly 01.02.2012 © Copyright, 2012 Intel. History © Copyright, 2012 Intel2 Spare time...
Patrick Ohly01.02.2012
© Copyright, 2012 Intel
History
© Copyright, 2012 Intel2
• 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)
“The Missing Link”
© Copyright, 2012 Intel
HTTPPOST
Reply
OBEXGET
OBEXPUT
Server StubsSync Engine + UIs
Data Storage Transports
EvolutionData
Server
syncevo-dbus-server
SyncMLClient
(Netbook)
SyncMLServer
(Desktop)
HTTPDaemon
OBEXD
libopenobex
libsoup
Local Machine (Desktop, Netbook, Phone)
SyncMLServer
(Internet)
SyncMLClient
(Phone)
Peerscontacting
us
Peerscontacted
by us
Panel Applet
GUI: sync-ui
CLI: syncevolution
HTTPPOST
Reply
OBEXPUT
OBEXGET
3
activesyncd
© Copyright, 2012 Intel
EDS
syncevo-dbus-server
libsoup
Local Machine (Desktop, Netbook, Phone)
CalDAV/CardDAV
Server
Exchange
4
WebDAV
syncevo-local-sync
libneonvCard,
iCalendar
ActiveSync
WBXML
activesyncd API + vCard/iCalendar/emailvia D-Bus daemon
SyncML + vCard/iCalendarvia direct D-Bus connection
Evolution
libcamel
CalDAV/CardDAV + ActiveSync + PBAP + …
EDS Improvements
© Copyright, 2012 Intel5
• 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
Getting Involved© Copyright, 2012 Intel Confidential6
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
© Copyright, 2010 Intel 7
PIM Sync Challenges:
It can eat your data?!
SyncML Server
SyncML Clients
© Copyright, 2010 Intel8
• 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
Synthesis
SyncML – Freedom of Choice, No Vendor Lock-In
Over the Air
SyncML ServerGoogle, ScheduleWorld,
Funambol, Memotoo, Mobical, Synthesis, ZYB
...
SyncML ServerGoogle, ScheduleWorld,
Funambol, Memotoo, Mobical, Synthesis, ZYB
...
GoogleGoogle
SyncEvolution - Sync PIM (Contacts, Events, Tasks, Notes)
© Copyright, 2009 Intel<
Over The Air Sync
SyncML (OMA DS): protocolvCard/vCalendar/iCalendar: payload
PIM Sync + Interoperability Challenges
© Copyright, 2010 Intel10
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).
SyncML as Protocol
© Copyright, 2010 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
• Device Capability description
© Copyright, 2010 Intel12
• Command line:syncevolution --configure \ --sync-property username=foo \ --sync-property password=bar \ scheduleworldsyncevolution scheduleworldsyncevolution --sync-properties ?syncevolution --source-properties ?
• Applet: Genesis, by Frederik Elwert
• GTK GUI (“sync-ui”)
Usage
Sync-UI: Setup
© Copyright, 2010 Intel13
Sync-UI: Houston, we’ve got a problem.
© Copyright, 2010 Intel14
Sync-UI: We’ve got a solution.
© Copyright, 2010 Intel15
© Copyright, 2010 Intel
D-Bus
Evolution Backend
D-Bus Server
CommandLine
CPPUnitTesting
SyncEvolution Core
Synthesis Glue
Synthesis Core transport lib
Synthesis Glue
SyncML Server
HTTP(S)
GNOME
EvolutionData
Serverlibecal/ebookD-Bus
libical
GTK GUI
16