SyncML Data Synchronization



Historical Background

SyncML was created to solve the problem of data synchronization between occasionally-connected devices with varying capabilities. (The term "device" is used here to indicate a participant in a SyncML conversation, regardless of its role as client or server.) SyncML is an open, XML 1.0 based standard protocol which leverages existing standards where possible and is intended to allow vendor independent solutions. (SyncML also supports WBXML, which is helpful when compact message size is important.)

The SyncML protocol currently supports transport bindings to HTTP, WSP, and OBEX. Where possible, appropriate Transport Layer Security (TLS) is recommended to ensure privacy of the SyncML payload. SyncML is intended to support devices ranging from enterprise servers to desktop PCs to PDAs and mobile handsets.

Initially, the protocol was developed by a consortium of companies (Nokia, Motorola, IBM, Palm, Ericsson, Matsushita, Starfish, Openwave, Symbian) with a mutual interest in mobile communications, synchronization and web-services. Together they formed SyncML Ltd. in early 2000 and soon afterward, other companies joined in the development of the protocol (Extended Systems, fusionOne, Pumatech, Oracle, and others.)

By April 2001, the first SyncML-conformant solutions were certified and SyncML had become the de-facto standard for data synchronization. (Competing proprietary solutions, such as Microsoft's ActiveSync, are not acceptable to the major mobile handset manufacturers.) Today, there are more than 80 compliant products.

In early 2002, SyncML Ltd. split its efforts into two separate protocols which share common elements. One is focused on data-synchronization (DataSync) and one on device management and provisioning (DevMan.) In June 2002, the Open Mobile Alliance (OMA), formerly known as the WAPForum, absorbed SyncML, the Location Independance Forum (LIF) and the Wireless Village.


Conformance & Interoperability

Interoperability between SyncML products is critical for the protocol to be a practical solution. While there is no substitute for testing with actual SyncML devices, during the early phases of development, tools and emulators can be valuable. Once an implementation is complete, SyncML Ltd. provides a process for certifying it as "conformant." This is achieved by verifying basic functionality using the SyncML Conformance Test Suite (SCTS) and by attending SyncFest Interoperability (IOP) events.

The SCTS is an application (currently Windows only) which implements the 1.x protocol and can behave as either a client or server. It is available, for a fee, from SyncML Ltd. (Credit is given for vendors which subsequently sign up for a SyncFest.) The SCTS allows an developers to validate that their parsing, transport and basic SyncML support is correct.

SyncFests are four day events which developers must physically attend. Products which have successfully acheived conformance are permitted to attend subsequent SyncFests virtually. At event, an implementation is required to successfully pass a suite consisting of about one dozen basic operations with at least two (obviously, more is better!) other implementations. ("Other" in this context means "from another vendor." Client and server implementations from the same vendor are expected to work together.) Typically, there are about 5 SyncFests per calendar year, with locations alternating between Europe, America, and Asia.

It is still important to test directly with real SyncMl devices, since there are still several grey areas in the SyncML specification, and there is a lot of variety in the way the content types are supported and handled by different devices. Alas, it's not yet possible to avoid some special casing for certain devices.


SyncML Specifications

  • SyncML 1.1.1 Common specifications

    The Common specifications describe aspects of the standard which are shared between the data synchronization and device management protocols.

    • Meta information: defines the Meta XML element and it's usage.
    • HTTP Transport Binding: required for devices using the Internet to communicate.
    • OBEX Transport Binding: required for devices using local serial mechanisms to communicate (e.g. IR, USB, or Bluetooth.)
    • WSP Transport Binding: required for devices connecting directly to WAP services.
  • SyncML 1.1.1 DataSync specifications
    • Sync Protocol: semantic description of the sync process. Defines how to form SyncML messages and packages, and how commands and statuses are handled. Describes how to authenticate, establish a session, exchange device capabilities, and perform slow & fast syncs.
    • Sync Representation: defines the XML elements used by the DataSync protocol.
    • Device Info: defines the XML namespace and elements used to represent device capabilities. This includes capacity, device identity, hardware and software versioning, supported optional SyncML features, supported datastores and content types, supported fields, and storage capacity.
    • Errata: clerical corrections to the specifications.
  • SyncML 1.1.1 DevMan specifications
    • DevMan Protocol: describes how management actions are transferred between a client and server.
    • DevMan Representation: describes how DevMan uses the SyncML Representation protocol.
    • Management Tree: describes the structure of the management tree defined by DevMan.
    • Standardised Objects: describes the set of standardized objects (leaves in the management tree) which may be manipulated and managed using the DevMan protocol.
    • Security: describes techniques which provide privacy and integrity of messages exchanged in a DevMan session.
    • Notification Initiated Session: describes the mechanism which enables a server to notify a client that a device management session is required.
    • Bootstrap: describes how a client fresh from the factory can be configured (provisioned) with the settings necessary to connect to a DevMan server (which presumably, will permit more thorough provisioning.)
    • Conformance Requirements: consolidates all of the Static Conformance Requirements (SCRs) from the various DevMan specifications.
  • SyncML 1.2
    • These specifications are currently under development and not available to the public.

Useful Standards

Communications, Transports, Security

Content Types


Other SyncML Resources

Publications

Email Lists

SyncML Open Source Projects


Data Replication & Data Synchronization


return to the ebyss

Last modified: Thursday, February 20, 2003
The SyncML logo is a registered trademark of the SyncML Consortium.
The OMA logo is a registered trademarks of the Open Mobile Alliance.
Contents of this page are copyright 2003, Brendan A. McCarthy. Link but don't steal.