data synchronization
Data synchronization is the process of establishing consistency between source and target data stores, and the continuous harmonization of the data over time. It is fundamental to a wide variety of applications, including file synchronization a ...
and device management. The project is currently referred to as ''
Open Mobile Alliance
OMA SpecWorks, previously the Open Mobile Alliance (OMA), is a standards organization which develops open, international technical standards for the mobile phone industry. It is a nonprofit Non-governmental organization (NGO), not a formal govern ...
Data Synchronization and Device Management''. The purpose of SyncML is to offer an
open standard
An open standard is a standard that is openly accessible and usable by anyone. It is also a common prerequisite that open standards use an open license that provides for extensibility. Typically, anybody can participate in their development due to ...
as a replacement for existing
data synchronization
Data synchronization is the process of establishing consistency between source and target data stores, and the continuous harmonization of the data over time. It is fundamental to a wide variety of applications, including file synchronization a ...
solutions; which have mostly been somewhat
vendor
In a supply chain, a vendor, supplier, provider or a seller, is an enterprise that contributes goods or services. Generally, a supply chain vendor manufactures inventory/stock items and sells them to the next link in the chain. Today, these term ...
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
specific. SyncML 1.0
specification
A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service. A specification is often a type of technical standard.
There are different types of technical or engineering specificati ...
was released on December 17, 2000, and 1.1 on February 26, 2002.
A SyncML message is a well-formed
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
SyncML works by exchanging commands, which can be requests and responses. As an example:
* the
mobile phone
A mobile phone or cell phone is a portable telephone that allows users to make and receive calls over a radio frequency link while moving within a designated telephone service area, unlike fixed-location phones ( landline phones). This rad ...
sends an Alert command for signaling the wish to begin a refresh-only
synchronization
Synchronization is the coordination of events to operate a system in unison. For example, the Conductor (music), conductor of an orchestra keeps the orchestra synchronized or ''in time''. Systems that operate with all parts in synchrony are sa ...
* the
computer
A computer is a machine that can be Computer programming, programmed to automatically Execution (computing), carry out sequences of arithmetic or logical operations (''computation''). Modern digital electronic computers can perform generic set ...
responds with a Status command for accepting the request
* the phone 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 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, etc.) are grouped into messages. Each message and each of its commands has an identifier, so that the pair (MsgID, CmdID) uniquely determines 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:
1.1SyncML/1.111PC SuiteIMEI:340562385645680001
203
Events/telecom/cal.vcs4242
The response from the
computer
A computer is a machine that can be Computer programming, programmed to automatically Execution (computing), carry out sequences of arithmetic or logical operations (''computation''). Modern digital electronic computers can perform generic set ...
could be an
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
document like (comments added
for the sake of explanation):
1.1SyncML/1.111IMEI:3405623856456PC Suite110SyncHdrPC SuiteIMEI:3405623856456
200
211AlertEvents/telecom/cal.vcs00
200
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
Synchronization is the coordination of events to operate a system in unison. For example, the Conductor (music), conductor of an orchestra keeps the orchestra synchronized or ''in time''. Systems that operate with all parts in synchrony are sa ...
are sent to the
computer
A computer is a machine that can be Computer programming, programmed to automatically Execution (computing), carry out sequences of arithmetic or logical operations (''computation''). Modern digital electronic computers can perform generic set ...
, 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-synchronization situation, in a normal (non-refresh) synchronization, each device sends a log of changes since the last synchronization.
SyncML client connectors and plugins
SyncML servers
1SAN = Server Alert Notification. This SyncML Push technology is based on definitions by the
Open Mobile Alliance
OMA SpecWorks, previously the Open Mobile Alliance (OMA), is a standards organization which develops open, international technical standards for the mobile phone industry. It is a nonprofit Non-governmental organization (NGO), not a formal govern ...
and extends the existing SyncML protocol specification by offering a method of server initiated synchronization.
SyncML hosted services
See also
*
CalDAV
Calendaring Extensions to WebDAV, or CalDAV, is an Internet standard allowing a client to access and manage calendar data along with the ability to schedule meetings with users on the same or on remote servers. It lets multiple users in differe ...
*
CardDAV
vCard Extensions to WebDAV (CardDAV) is an address book client/server protocol designed to allow users to access and share contact data on a server.
The CardDAV protocol was developed by the IETF and was published as in August 2011. CardDAV is ...
iCalendar
The Internet Calendaring and Scheduling Core Object Specification (iCalendar) is a media type which allows users to store and exchange calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information, ...
Yahoo
Yahoo (, styled yahoo''!'' in its logo) is an American web portal that provides the search engine Yahoo Search and related services including My Yahoo, Yahoo Mail, Yahoo News, Yahoo Finance, Yahoo Sports, y!entertainment, yahoo!life, an ...
services offered in some countries that uses SyncML technology.