SyncML
SyncML (Synchronization Markup Language) is the former name for a platform-independent information synchronization standard. The project is currently referred to as Open Mobile Alliance Data Synchronization and Device Management. The purpose of SyncML is to offer an open standard as a replacement for existing data synchronization solutions, which have mostly been somewhat vendor-, application- or operating system specific.
Internals
SyncML works by exchanging commands, which can be requests and responses. As an example:
- the mobile sends an
Alert
command for signaling the wish to begin a refresh-only synchronization - the computer responds with a
Status
command for accepting the request - the mobile sends one or more
Sync
command containing an Add sub-command for each item (e.g., phonebook entry); if the number of entries is large, it does not include the <Final/> tag; - in the latter case, the computer requests to continue with an appropriate
Alert
message, and the mobile sends another chunk of items; otherwise, the computer confirms it received all data with aStatus
command
Commands (Alert
, Sync
, Status
, ecc.) are
grouped into messages. Each message and each of its commands has an identifier,
so that the pair MsgID,CmdID uniquely determine a command. Responses like
Status
commands include the pair identifying the command they are
responding to.
Before commands, messages contain a header specifying various data regarding
the transaction. An example message containing the Alert
command
for begin a refresh synchronization, like in the previous example, is:
<?xml version="1.0"?>
<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd">
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncHdr>
<VerDTD>1.1</VerDTD>
<VerProto>SyncML/1.1</VerProto>
<SessionID>1</SessionID>
<MsgID>1</MsgID>
<Target><LocURI>PC Suite</LocURI></Target>
<Source><LocURI>IMEI:3405623856456</LocURI></Source>
<Meta><MaxMsgSize xmlns="syncml:metinf">8000</MaxMsgSize></Meta>
</SyncHdr>
<SyncBody>
<Alert>
<CmdID>1</CmdID>
<Data>203</Data> <!-- 203 = mobile signals a refresh from it to computer -->
<Item>
<Target><LocURI>Events</LocURI></Target>
<Source><LocURI>/telecom/cal.vcs</LocURI></Source>
<Meta><Anchor xmlns="syncml:metinf"><Last>42</Last><Next>42</Next></Anchor></Meta>
</Item>
</Alert>
<Final/>
</SyncBody>
</SyncML>
The response from the computer could be an xml document like (comments added for the sake of explanation):
<?xml version="1.0"?>
<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd">
<SyncML>
<SyncHdr>
<VerDTD>1.1</VerDTD>
<VerProto>SyncML/1.1</VerProto>
<SessionID>1</SessionID>
<MsgID>1</MsgID>
<Target><LocURI>IMEI:3405623856456</LocURI></Target>
<Source><LocURI>PC Suite</LocURI></Source>
</SyncHdr>
<SyncBody>
<!-- accept the header of the last message from the client -->
<Status>
<CmdID>1</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>0</CmdRef> <!-- 0 = header of the message -->
<Cmd>SyncHdr</Cmd>
<TargetRef>PC Suite</TargetRef>
<SourceRef>IMEI:3405623856456</SourceRef>
<Data>200</Data> <!-- 200 = ok, accepted -->
</Status>
<!-- accept the request of the mobile for a sync -->
<Status>
<CmdID>2</CmdID> <!-- this is command #2 -->
<MsgRef>1</MsgRef>
<CmdRef>1</CmdRef> <!-- it respond to command msg=1,cmd=1 -->
<Cmd>Alert</Cmd>
<TargetRef>Events</TargetRef>
<SourceRef>/telecom/cal.vcs</SourceRef>
<Meta><Anchor xmlns="syncml:metinf"><Next>0</Next><Last>0</Last></Anchor></Meta>
<Data>200</Data> <!-- 200 = ok, accepted -->
</Status>
<Final/>
</SyncBody>
</SyncML>
The transaction then proceeds with a message from the mobile containing the
Sync
command, and so on.
This example is a refresh where the mobile sends all its data to the computer
and nothing in the other way around. Different codes in the initial
Alert
command can be used to initiate other kinds of
synchronizations. For example, in a "two-way sync", only the changes from the
last synchronization are sent to the computer, which does the same.
The Last
and Next
tags are used to keep track of a possible loss of sync. Last
represents the time of the last
operation of synchronization, as measured by each device. For example, a mobile
may use progressive numbers (1
, 2
,
3
,...) to represent time, while the computer uses strings like
20140112T213401Z
. Next
is the current time in the
same representation. This latter data is stored and then compared with
Last
in the next synchronization. Any difference indicates a loss
of sync. Appropriate actions involving sending all data can be then taken to
put the devices back in sync.
Anchors are only used to detect a loss of sync, they do not indicate which data is to be sent. Apart from the loss of sync case, in a normal (non-refresh) sync, each device sends all changes since the last synchronization.
SyncML client connectors and plugins
Name | Platform | Application | Contacts | Calendar | Memos | Tasks | Book-marks | SMS | Photo | Video | Music | Files | Notes | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Syncfriend for MS Outlook | Windows XP/Vista/7 | SyncML and ActiveSync client for Outlook 2007/10 | Yes | Yes | Also supports Google sync including feeds from Facebook, Twitter and LinkedIn. Free version synchronizes 200 contacts in any custom folder | ||||||||||
Gemalto / O3SIS AG | Windows Mobile | SyncML Client, Personal Life Mobilizer | Yes | Yes | No | Yes | No | Yes | Yes | Yes | Yes | Yes | commercial, over-the-air installable client, Videos, Photo, Ringtones, SMS, MMS, as well | ||
Gemalto / O3SIS AG | Android OS | SyncML Client, Personal Life Mobilizer | Yes | Yes | No | No | No | No | No | Yes | Yes | Yes | commercial, over-the-air installable client | ||
Gemalto / O3SIS AG | iPhone OS (iPhone, iPod, iPad) | SyncML Client, Personal Life Mobilizer | Yes | Yes | No | No | No | No | No | Yes | No | No | commercial, over-the-air installable client | ||
Gemalto / O3SIS AG | Symbian, Series 60 | SyncML Client, Life Mobilizer Push Mail Edition | Yes | Yes | No | Yes | No | Yes | Yes | Yes | Yes | Yes | commercial, over-the-air installable client | ||
Gemalto / O3SIS AG | Blackberry J2ME from OS 4.5, Nokia S40, Sony Ericsson J2ME | SyncML Client, | Yes | Yes | No | Yes | No | No | No | Yes | commercial, over-the-air installable client | ||||
SyncEvolution | Unix/Linux | Evolution, KDE/Akonadi, plain files, ... | Yes | Yes | Yes | Yes | No | No | No | free, command line, Genesis GUI frontend | |||||
libsynthesis | Linux, iOS | SyncML client+server engine library | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Open Source, LGPL+EPL, DB backend via plugins or SQL, custom content formats possible | |||||
SyncEvolution | Maemo 5 | system address book/Contacts, Dates | Yes | Yes | Yes | Yes | No | No | No | free, command line | |||||
SyncEvolution | OS X, iPhone | system address book | Yes | No | No | No | No | No | No | free, command line | |||||
Funambol | WINNER | Pocket PC, Smartphone | Yes | Yes | Yes | Yes | No | Yes | No | Yes | plus files in 'briefcase', AGPL v3 | ||||
Funambol | Symbian OS | Symbian S60 3rd/5th Edition | Yes | Yes | Yes | Yes | Yes | AGPL v3, adds push and picture sync capabilities to native client | |||||||
Funambol | Android | Android Sync Client | Yes | Yes | Yes | No | No | No | No | Yes | Open Source, AGPL v3; very specific to onemedia.com, attempts to use it with other SyncML servers have failed | ||||
Funambol | BlackBerry | BB Databases | Yes | Yes | Yes | Yes | Yes | Open Source, AGPL v3 | |||||||
Funambol | iPhone OS | AddressBook | Yes | Open Source, AGPL v3 | |||||||||||
Funambol | Java Email Client | Java ME, J2SE | Yes | Yes | Open Source, AGPL v3 | ||||||||||
Funambol | Windows | Outlook | Yes | Yes | Yes | Yes | No | No | No | Yes | Open Source, AGPL v3 | ||||
Funambol | OS X | Desktop | Yes | No | No | No | No | No | No | No | Open Source, AGPL v3 | ||||
Funambol | Multi-platform | Java ME, J2SE, C++ | Yes | Yes | Yes | Yes | * | * | * | Open Source SDK, AGPL v3 | |||||
Funambol | Palm OS | Palm Databases | Yes | No | No | No | No | No | Open Source, AGPL v3, Community Project | ||||||
Funambol Community Project | Windows, Linux | iPod | Yes | Yes | No | No | No | No | No | sync via cable, Open Source, AGPL v3 | |||||
Funambol Community Project | Windows, Linux, Mac | Thunderbird, Sunbird | Yes | Yes | Yes | No | No | Open Source, AGPL v3 | |||||||
Funambol | Yahoo!, Google | Contacts, Calendar | Yes | Yes | No | No | No | Yes | No | Open Source, AGPL v3 | |||||
Nokia | Symbian 9.x | Nokia S60 3rd/5th Edition native | Yes | Yes | Yes | Yes | Yes | No | Yes | MMS, too! | |||||
Synchronica | Windows Mobile | Pocket PC, Smartphone | Yes | Yes | No | Yes | Yes | emails, attachments and folders | |||||||
Synchronica | Sun Java Systems Communication Suite | Sun Comms 4, 5 and 6 | Yes | Yes | No | Yes | Yes | ||||||||
Synchronica | Microsoft Exchange | 2003 and 2007 | Yes | Yes | No | Yes | Yes | Using OWA (WebDAV) | |||||||
Synchronica | Lotus Domino | 6 | Yes | Yes | No | Yes | Yes | Using IMAP and CORBA | |||||||
Synchronica | Calendar, Contacts | Yes | Yes | No | No | Yes | |||||||||
Synchronica | MSN/Hotmail/WindowsLive | Contacts | Yes | No | No | No | No | ||||||||
Synchronica | Java Content Repository | Any JCR compatible server | Yes | Yes | Yes | Yes | Yes | JCR (JSR-170) back-end API | |||||||
Synchronica | Palm OS | mobile devices | Yes | Yes | No | Yes | Yes | ||||||||
Synchronica | OS X | iPhone | No | No | No | No | Yes | over the air (OTA) using IMAP/SMTP | |||||||
TSync | Windows, Linux, OS X, * | Thunderbird | Yes | No | No | No | No | No | No | free, GPL | |||||
SyncML2iPhone | iPhone | iCal | No | Yes | No | No | free | ||||||||
MyTT | Symbian | S60 all version | Yes | Yes | Yes | Yes | Yes | free, support file upload/download, only Chinese version | |||||||
MyTT | Windows Mobile | Pocket PC, Smartphone | Yes | Yes | Yes | Yes | Yes | free, support file upload/download, only Chinese version | |||||||
MyTT | Windows | Outlook | Yes | Yes | Yes | free, only Chinese version | |||||||||
MyTT | MTK | 25,26,28 | Yes | Yes | Yes | Yes | |||||||||
MyTT | Brew | Yes | Yes | ||||||||||||
plan44.ch | iOS | iOS contacts and calendar, separate tasks and calendar | Yes | Yes | No | Yes | commercial, free contacts-only version | ||||||||
Synthesis | Android | Android databases, internal tasks and notes, Astrid Tasks, Alex Baker's Tasks, OI notes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | commercial, multiple sync profiles, scheduling | |
Synthesis | Windows Phone 8 | Windows Phone 8 contacts, calendar | Yes | Yes | No | No | commercial | ||||||||
Synthesis | Palm OS | Palm Databases | Yes | Yes | Yes | Yes | No | Yes | No | commercial, multiple sync profiles, scheduling | |||||
Synthesis | Windows Mobile | Pocket PC, Smartphone | Yes | Yes | Yes | Yes | commercial | ||||||||
Synthesis | Windows | Outlook, Outlook Express | Yes | No | No | No | commercial | ||||||||
Synthesis | Windows, Linux, OS X | SQL, ODBC, SQLite3, PlainText | Yes | Yes | Yes | Yes | * | * | * | Programming SDK w/API's in C, C++, Delphi, Java, & .Net | |||||
Synthesis | Windows, OS X | Sunbird/Lightning | Yes | Yes | No | No | DEMO application included with SDK | ||||||||
Synthesis | Windows, Linux, OS X | Client Desktop DEMO/ODBC/Plugin | Yes | Yes | Yes | Yes | * | * | * | Scriptable utility to connect with any other client side application or database. | |||||
TTSync | Windows Mobile | Pocket PC, Smartphone | Yes | Yes | Yes | Yes | * | * | * | commercial | |||||
TTSync | Symbian | S60, 1,2,3 version | Yes | Yes | Yes | Yes | * | * | * | commercial | |||||
CompanionLink | Windows | Various | commercial | ||||||||||||
SyncJE by Nexthaus | Windows Mobile | Windows Mobile | Yes | Yes | No | Yes | commercial | ||||||||
SyncJE by Nexthaus | OS X | OS X | Yes | Yes | No | Yes | commercial | ||||||||
SyncJE by Nexthaus | Windows | Outlook | Yes | Yes | Yes | Yes | commercial | ||||||||
SyncJE by Nexthaus | Windows | Outlook Express | Yes | No | No | No | commercial | ||||||||
SyncJE by Nexthaus | Windows | Lotus Notes | Yes | Yes | Yes | Yes | commercial | ||||||||
SyncJE by Nexthaus | Windows | ACT | Yes | Yes | No | Yes | commercial | ||||||||
SyncJE by Nexthaus | Palm OS | Palm Databases | Yes | Yes | Yes | Yes | commercial | ||||||||
SyncJE by Nexthaus | BlackBerry | Yes | Yes | No | Yes | commercial | |||||||||
SyncJE by Nexthaus | iPhoneOS | iPhone | Yes | No | No | No | commercial | ||||||||
Critical Path (Memova) | J2ME | Phone Backup Client | Yes | Yes | Yes | Yes | Yes | commercial | |||||||
Voxmobili (An OnMobile Company) | Windows Mobile, Android, OS X, Symbian, J2ME... | SyncML Client, VoxMobili Client | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | commercial | |
Yota Contacts | Windows Mobile | SyncML Client, Address book | Yes | free, shipped with Yota HTC MAX 4G | |||||||||||
Synchronoss | Blackberry, Symbian, Palm OS, Windows Mobile, Android | SyncML Client, MightyBackup, Network Address Book | Yes | Yes | Yes | Yes | Yes | Yes | commercial, with over 10 Million clients deployed | ||||||
Synchronoss | Windows | Outlook Connector | Yes | Yes | Yes | Yes | |||||||||
Synchronoss | Exchange | Microsoft Exchange Connector | Yes | Yes | Yes | Yes | |||||||||
Pleex | Android, Bada, Blackberry OS, iOS, J2ME, Symbian (S60/S40/UIQ), Windows Mobile | Various | Yes | Yes | Yes | Yes | Yes | Yes | Media sharing and community networks too |
SyncML servers
Name | Platform | Application | Free? | Contacts | Calendar | Memos | Tasks | Book- marks | Photo | Video | MMS | Files | SAN1 | Notes | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Alt-N Technologies' MDaemon Email Server | Windows | SyncML Server | No | Yes | Yes | Yes | Yes | SMB email OTA mobile device sync | ||||||||
Group-Office | PHP | Data Synchronization but not Device Management | No | Yes | Yes | Yes | Yes | Yes | E-mail is synced with IMAP | |||||||
Funambol | Java (Linux, Windows, OS X) | Data Synchronization and Device Management | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Open Source, Java and C++ SDK, OEM & ISV Partners, AGPL v3 | |||||
mySync DM | Java (Linux) | Data Synchronization and Device Management | No | Yes | Yes | Yes | Yes | Yes | Yes | Includes SMS backup on Android and Symbian platforms. Carrier-grade. | ||||||
Synthesis | Windows, OS X, Linux x86 | SyncML Server | No | Yes | Yes | Yes | Yes | Yes | SDK - (Java, C/C++, .Net API's), OEM & ISV Partners | |||||||
syncgw | PHP | SyncML, CalDAV, CardDAV, ActiveSync Server | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | platform independent PHP SyncML server, OMA push service; Support for WebDAV (CardDav/CalDAV) and Exchange ActiveSync (EAS) | |||||
libsynthesis | Linux, iOS | SyncML client+server engine library | Yes | Yes | Yes | Yes | Yes | Yes | Open Source, LGPL+EPL, DB backend via plugins or SQL, custom content formats possible | |||||||
Compelson | ASP .Net, IIS, SQL Server | SyncML Server | No | Yes | Yes | Yes | Yes | |||||||||
IceWarp Messaging Server | Windows, Linux | SyncML Server | No | Yes | Yes | Yes | Yes | Yes | Enterprise Groupware | |||||||
Winfonie mobile 2 | Windows | Desktop SyncML Server (discontinued, no longer available) | No | Yes | Yes | Yes | Desktop SyncML server, connects with Microsoft Outlook, Lotus Notes, Lotus Organizer, Mozilla Thunderbird, Lightning, Tobit David, Palm Desktop, combit etc. | |||||||||
Synchronica | Java (Solaris, Linux, Windows, OS X) | Mobile Gateway | No | Yes | Yes | Yes | Yes | Yes | Service Providers, OEMS, Enterprise, supports OMA CP, OMA DS Push, OMA EMN and IMAP IDLE | |||||||
Horde | Linux | Horde | Yes | Yes | Yes | Yes | Yes | No | Web Groupware, open source | |||||||
Access NetFront Sync | Linux, Solaris | SyncML Server | No | Yes | Yes | Yes | Yes | Yes | Yes | Enterprise sync solution | ||||||
eGroupWare | PHP | SyncML Server | Yes | Yes | Yes | Yes | Yes | Email uses IMAP, Open Source groupware | ||||||||
TimeMaker Server | Linux | SyncML Server | No | Yes | Yes | Yes | Yes | Leadership software. E-mail is synced by using integrated POP3/SMTP. |
1SAN = Server Alert Notification. This SyncML Push technology is based on definitions by the Open Mobile Alliance and extends the existing SyncML protocol specification by offering a method of server initiated synchronization.
SyncML hosted services
Provider Name | Target Market | Price | Contacts | Calendar | Memos | Tasks | Bookmarks | E-mail to SMS | SMS | MMS | WebDAV | CalDAV | Notes | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Access NetFront Sync | Enterprise sync solution | commercial | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | SyncML standard sync server, has been deployed for Japan KDDI,China Telecom | ||||
AOL Sync Service (discontinued) | Consumer | free | yes | yes | No | No | yes | SyncML standard sync server | |||||||
basota.com | Consumers | €10/year | Yes | Yes | Yes | Yes | Yes | No | No | No | No | No | No | ||
ComEase | cell phone backup | ||||||||||||||
CompanionLink | data synching of disconnected applications | commercial | Yes | Yes | Yes | Yes | |||||||||
Compelson | demo | free | Yes | Yes | Yes | Yes | |||||||||
Contails | Provides a one address book solution to contact management. Supports sync via mobile phones and several other services like mail and Instant Messengers. | Free | Yes | SyncMl based synchronization, webmail synchronization | |||||||||||
GooSync | Beta | paid | Yes | Yes | Yes | Google Calendar Synchronisation | |||||||||
GSMSync | free / paid | Yes | Yes | Yes | Yes | Yes | Yes | ||||||||
hotpim | Service Providers, Device Manufacturers, Enterprises | free | Yes | Yes | Yes | Yes | Yes | Support media file with self client,full-text search engine,only Chinese version | |||||||
MemoToo | Consumer and business | free / paid | Yes | Yes | Yes | Yes | Yes* | No | Yes | Yes | Yes | Free services limited to 100 items stored for any category - OTA configuration, Photo for contact, Category support, Sortable tasks | |||
MightyPhone | Brew Cell Phone Owners | Yes | Yes | No | No | limited client support | |||||||||
Keep | free | Yes | No | No | No | No | No | No | No | No | No | No | formerly: Everdroid | ||
Mobilesynchro | cell phone backup | free / paid | Yes | Yes | Yes | Yes | Yes | SyncML based SMS synchronization, OMA/OTA configuration | |||||||
myFunambol | consumer | demo | Yes | Yes | Yes | Yes | No | Yes | No | No | No | No | Tasks and notes can not be viewed or edited online | ||
MyTT | Beta | free | Yes | Yes | Yes | Yes | Yes | Yes | Support media file with self client,full-text search engine,only Chinese version | ||||||
O3SIS.com | Carriers and Service Providers, Enterprises, Retail, Device Manufacturers, Partners | commercial | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | No | Showcase available with OTA configurator, downloadable clients | ||
O-Sync | Consumer | free | Yes | Yes | Yes | Yes | Yes | contact self-update feature | |||||||
PhoneCopy | consumers, community | free/paid | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | All data can be viewed, edited or deleted online. Supports all platforms (Android, BlackBerry, Apple, Windows Phone, ActiveSync, Symbian, SyncML, ...). | ||
picoBeat | consumer and SoHo | Development has halted and new users are not being accepted. Existing users can still use their account. | Yes | Yes | Yes | Yes | Elements can be edited online | ||||||||
PhoneBackup | Consumer | paid | Yes | Yes | No | No | No | OTA configuration | |||||||
ScheduleWorld | consumer | paid (service shut down on November 30, 2010) | Yes | Yes | Yes | Yes | No | Yes | No | No | No | Yes | No | calendar sharing, multiple calendars, Google calendars, Email via Over The Air (OTA) provided by IMAP/SMTP | |
Soocial | Provides a one address book solution to contact management. Supports sync via mobile phones and several other services like GMail. | SERVICE CLOSED | Yes | No | No | No | No | No | No | No | No | No | No | SyncML based Contact synchronization. Outlook client, OTA configuration & downloadable clients. | |
Synchronica | Service Providers, Device Manufacturers, Enterprises | Yes | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | Live demo available with OTA configuration | ||
Synkia | cell phone backup | paid | Yes | Yes | Yes | Yes | Yes | SyncML based SMS synchronization, OMA/OTA configuration, server alerted sync. | |||||||
syncgcal.com | Google Calendar sync service | free / paid | Yes | Google Calendar Synchronisation (including shared calendars) | |||||||||||
Syncfriend | A self updated phonebook. Supports multiple phones per each account. Automatic duplicate elimination. | Free | Yes | Yes | User friendly web interface. Not working. | ||||||||||
Voxmobili(An OnMobile Company) | Provides a complete synchronization solution. Supports sync via mobile phones and PC clients. | commercial | Yes | Yes | Yes | Yes | Yes | Yes | Yes | SyncML based Personal Data synchronisation | |||||
Yota users, online community | free | Yes | Contacts management as a part of social network | ||||||||||||
MightyBackup | paid | Yes | commercial, with over 10 Million mobile clients deployed | ||||||||||||
Network Address Book | Service Providers, Enterprise | commercial | Yes | ||||||||||||
MightyPhone | Brew Cell Phone Owners | paid | Yes | Yes | Yes | Yes |
See also
- CalDAV
- CardDAV
- Critical Path SyncML Server
- iCalendar
- The SyncML Initiative
- Yahoo! Mobile and Yahoo! Calendar - Yahoo services offered in some countries that uses SyncML technology.