April 8, 2009
This article was contributed by Nick Jenkins
Users of PIM (Personal Information Manager) software, such as
Evolution,
Kontact, or Chandler, tend to accumulate more
information than just email. Typically, this is data such as notes,
tasks, calendars and contacts, collectively known as "personal
information".
Keeping all of this information synchronized between the desktop, mobile
devices and the web is difficult, but the SyncML standard may be able to
help.
SyncML (Synchronization Markup Language) is a standard for synchronizing
information. SyncML allows different kinds of devices (cell phones,
portable music players, desktops, etc.) to synchronize various contact and
scheduling information so that each device is kept up to date. It can also
synchronize with a web service so that a forgotten phone number, for
example, could be retrieved at an internet café.
SyncML is currently maintained by the OMA (Open Mobile Alliance) under
the official name OMA-DS (Data Synchronization). The specification
is available free of charge.
Usually there is a SyncML server, which provides a central master copy
of a user's personal information. All of the user's SyncML clients will
then synchronize against this central server. This central server
communicates using the platform-independent SyncML standard. This avoids
the combinatorial explosion of every device having to know how to talk to
every other device in a device-specific custom format.
For selecting a SyncML server, the options are either to use a
pre-existing public SyncML server, which is typically less effort, or to
set up a SyncML server for private use. Two examples of popular public
SyncML servers are ScheduleWorld and MyFunambol beta. ScheduleWorld is based
on Funambol, but forked from the GPL-licensed version quite a while ago,
with no code being contributed back. Since then, its author has invested a
lot of work into improving it, and in the process, rewriting the
contact and calendar support from scratch. These aspects are what
ScheduleWorld deserves
praise for, but because the code changes are kept private it has to be
considered a closed-source non-distributable server.
Alternatively, there are open-source SyncML servers for users who prefer
to set up their own local SyncML servers, such as Funambol, or for
a complete list, see the Wikipedia
article. For Funambol, the software does not seem to have been packaged
by many distributions, and is surprisingly large at 170 MB for a
distribution-independent .bin file,
which includes its own installation of Tomcat. Deploying Funambol as part
of an existing Tomcat installation is not recommended and is
unsupported.
There are also open-source SyncML connectors available for
connecting Linux PIMs to SyncML servers. Examples include SyncEvolution, and its
user-friendly Genesis-Sync
panel applet. For users wanting a quick HOWTO, this message
on the Evolution mailing list outlines how to synchronize Evolution on
Ubuntu with a Nokia N-series or E-series phone, using a public SyncML
server.
The benefits of SyncML are that it has the potential to do for personal
information what IMAP does for email; that is, make it live "in the cloud,"
and be remotely accessible, modifiable, and synchronized between a wide
variety of devices. The idea of being able to view and modify personal
information anywhere on multiple devices or on the web, and have it all
synchronized together, with an update made on any one device replicated to
all the others, is quite compelling.
A further strength of SyncML is that many cell phones, including all
Nokia N-series and E-series phones, most Sony Ericsson phones, and most
Motorola phones, have built-in SyncML clients - which means there is no
need to install extra software on these phones to synchronize personal
information. Add-on software is available for most other phones, including
BlackBerry and Windows Mobile - see the ScheduleWorld wiki for
example configuration information.
A final strength is that all of the SyncML clients can have a local
cache of information, so that even when the Internet is not available users
can still access and update their data. Two-way syncing then ensures that
those updates will be propagated at the next synchronization.
Some of the weaknesses of SyncML are partially traceable back to its
early adopters - namely, a consortium of various cell phone
manufacturers. The protocol itself is data format agnostic. So for all but
the simplest uses, like verbatim copying, the client and server need to
agree on a common format for items. Due to its history, this format is
often vCard 2.1 and vCalendar 1.0. The more capable iCalendar 2.0 format
used by all desktop PIMs is often not or only partially supported.
A good SyncML server takes the capabilities and quirks of its clients
into account when exchanging data with them. For example, a photo
associated with a contact can be preserved when receiving an update of that
contact from a client which cannot store photos. Less capable servers
themselves drop some information because their internal data model is more
limited than that of the clients they exchange data with. Client
implementations can be poor, including crashes when sent something
unexpected.
Further weaknesses are that most of the syncing interfaces seem to
assume there is exactly one contacts folder, one calendar, one notes
folder, and one tasks folder. This one-folder-only assumption makes sense
on a cell phone, but it does not hold for a desktop PIM. For example, it
is quite common to have multiple tasks folders and multiple calendars - so
this assumption means that not everything is being replicated, which
reduces the power of synchronization.
In addition, support for SyncML is not yet built into PIMs, in the same
way that IMAP comes "as standard" in email clients. However, even having it
integrated into a single PIM would be very useful for people who wanted the
same data seamlessly synchronized between a laptop and a desktop, or a work
machine and a home machine, and who ran the same PIM at both ends. The
most desirable though would be to have complete synchronization between
different PIMs.
A final weakness is that most SyncML User-Interfaces require the user to
manually initiate the two-way sync with the server. Instead, it would be
easier for the user if there was a set-and-forget option, where the SyncML
client would sync only when it needed to; namely when either when the
server push-notified the client of pending changes that it had not yet
received, or when the client uploaded changes in the background made by the
user on that device as the user made them.
In summary, it is currently possible to synchronize personal information
between a mobile phone and PIM software using open-source with SyncML, and
it currently works quite well, albeit with some limitations. However,
SyncML or a successor to it, has the potential to be so much more powerful;
it could be the next logical step beyond IMAP by providing seamless
automatic synchronization of all personal information between multiple PIM
clients. This would enable users to easily access and update all of their
personal information, wherever they were, irrespective of whether there was
Internet-access or not. There is certainly hope for further developments in
this area.
The author gratefully thanks Patrick
Ohly, the author of SyncEvolution, for his invaluable assistance in
writing this article.
(
Log in to post comments)