Today's users have an ever-expanding array of personal communications options, including devices such as mobile phones, PDAs and PCs, and a growing number of new services, such as VOIP and instant messaging, on top of traditional e-mail. As a result, there is an increasing need for synchronisation of contacts, calendars and to-do lists across multiple applications and devices. Managing personal data across devices is time-consuming and complex, and users need a good way to ensure that information is available wherever and whenever they need it.

Synchronisation Markup Language (SyncML), also known as data synchronisation and device management, is a platform-agnostic synchronisation standard from the Open Mobile Alliance that enables information stored on network servers and multiple user devices to be easily and automatically synchronised. For example, users could add a contact to a mobile phone during a business meeting, synchronise with a network and instantly have that contact available on their desktop e-mail client and PDA and via the Web.

Leading mobile phones support SyncML. These phones can be used, along with SyncML servers and SyncML desktop clients, to synchronise data on a network and multiple applications and devices. The current version, SyncML 1.2, provides server-initiated synchronisation, which enables new personal information to be synchronised to a mobile device without prompting from a user or device client.

The SyncML standard works via the SyncML representation protocol and SyncML synchronisation protocol.

The SyncML representation protocol defines a standard format for SyncML messages in an XML document. The body of the document contains one or more SyncML commands, defined by a set of request commands and a set of response commands.

The SyncML synchronisation protocol defines actions between a SyncML client and a SyncML server. Features include synchronisation anchors that represent the current and last synchronisation event and let a fresh synchronisation occur if they don't match, and ID mapping that utilises locally unique IDs and globally unique IDs for each data item in the client and server.

Other capabilities of SyncML include security, addressing schemes and the presentation of information about the capabilities of the device to be synchronised. In addition, there are seven synchronisation types supported, of which three are key:

- Two-way synchronisation, which allows new changes to be exchanged between client and server.

- Slow synchronisation, which enables all items in client and server databases to be compared field by field.

- Server-alerted synchronisation, which notifies a mobile device when an update occurs on the network, to prompt a new synchronisation session.

SyncML can be implemented in a variety of applications and devices. It can be used by developers at a company or by application vendors to create SyncML clients and servers. Different transport bindings can be used to allow for use with different systems, such as HTTP and Object Exchange for infrared. SyncML is built on existing Internet and Web technologies, and has been optimised for wireless networks and mobile devices, addressing the issues of high network latency and limited bandwidth with features such as a single request-response message model and Wireless Application Protocol Binary XML to reduce the size of messages.

Any data format can be synchronised using SyncML, including files, thus making a broad range of content available to users via their mobile phones, PDAs or PCs.

Jon Newman is a product manager for Critical Path.