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 a Status 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 E-mail 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 Google 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 E-mail 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 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

References

    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.