SyncML ( Synchronization Markup Language ) is a platform- independent standard for data synchronization between computers. With the data it can be any information, mostly PIM data such as addresses, calendar entries or e- mail messages.
A special form of SyncML, SyncML -DM ( for SyncML Device Management), the remote maintenance functions for mobile devices defined, so a server can manage configurations and software updates.
SyncML is description language and protocol agreement in one. The syntax is based on XML.
To enable data synchronization between different terminals on hardware and system boundaries, regardless of the manufacturer of the components used, SyncML is designed as a non-proprietary open standard. It is set to any network architecture. This make for example a possible synchronization via the Internet, mobile network or between two directly connected devices (TCP / IP, WSP or obex ).
Any device with a client SyncML -compliant can synchronize data with a SyncML -enabled server, regardless of operating system and manufacturer. Typical devices between which data can be compared, are PCs, mobile phones and handheld computers.
The protocol was designed at the initiative of leading mobile device and computer manufacturers who have joined forces to SyncML consortium in early 2000. The consortium, which is now located under the umbrella of the Open Mobile Alliance, consists of about 200 companies, including Nokia, HP Palm, IBM, Motorola, Samsung, Ericsson, Symbian and Lotus. Microsoft is not among them, for his Pocket PC but there are SyncML third-party clients.
Data synchronization is basically the process by which two different devices (whether, for example, mobile phones, handhelds and laptops or PCs) to align data to each other. It is recognized here, what device has what data, and also checks whether the respective other terminal will have this data in addition to his own. For the case that both devices have the same data content, but in different versions ( for example, when an address is changed on one side) can be defined, which change is maintained.
SyncML messages exchange client from a server data for synchronization. Typically, the client always initiates the start of a synchronization. Only a future version 1.3 should enable a real push from server to client. SyncML messages are similar in structure to any e - mail messages. There is one head with receiver and transmitter information and for the server synchronization unique IDs. The head follow the synchronization commands for adding, deleting and replacing data.
Alice and Bob each have a mobile phone and are employed as a sales representative from the same company. This company manages all customer data centrally on a server.
Alice learns to know a customer, Dave, and stores the telephone number and name in their phone off. The mobile phone from Alice automatically forwarded to the new entry to the central company server, which now saves the new contact center. Now the server sends to the mobile phone of Bob the entry immediately after the mobile phone of Alice has given the entry known to the server. The server thus synchronizes the data content between Alice and Bob. This also works with more than two participants.
Changes of the number of Dave, this is changed from Alice on her mobile phone and changed when synchronizing on the central company server, and then pass on the device by Bob at subsequent synchronizations.
From the functioning of SyncML some problems:
- Where the central server really know 100% what contact he has to update when Alice changes the number of a contact on their mobile phone?
- How can the server be sure that a change has taken place? That is, the data to be compared?
- What happens when Alice and Bob in a short time a change is made to the phone number of Dave? Whose number is considered to be the "right" and is synchronized among all the other employees?
- What should happen when a new employee enters various private numbers in his phone - this should really be uploaded to the central server and thus be available to all other accessible?
- In summary: Whose data is synchronized when and between whom?
In order to solve these problems, there are some advanced concepts for the synchronization process.
The following concepts need to be implemented for the purpose of functional data synchronization:
- ID handling: Used to uniquely identify a record ( for example contact entry ). This is a unique ID ( identification data - usually a number) realized. Thus, servers and devices ( mobile phones and so on ) recognize whether it is on two devices is the same when, for example, two contacts, or not.
- Change detection: As when a record is considered to be changed? Is it sufficient, for example if the first name is spelled differently, or even the whole phone number must be a new one? This defines the change detection, which usually also with a timestamp (exact date - date including time) is working to define the date of modification.
- Modification exchange: How will a change is made? To be deleted, replaced or rebuilt? All of this is defined herein.
- Conflict detection: This approach handles the detection of the cases described above, such as simultaneous changing various data or about whose data is to be synchronized.
- Conflict resolution: This will be decided how the identified above conflict to be solved using the principle " first come, first served ", or " The Last wins " - ie: Whose record should serve as a reference for the update.
- Slow and fast synchronization: If only the data are compared that have changed since the last full synchronization process, or all?
This is just an overview of the concepts - he was given only for the sake of completeness.
With SyncML devices obtain a uniform exchange protocol. This works independently from the type of device and the means of transmission: So so different device classes such as PDAs, handhelds, mobile phones, cameras and PCs can exchange data with the synchronization protocol SyncML support established protocols such as HTTP, WSP (Wireless Session Protocol, part of the WAP protocol ) and OBEX Bluetooth and IrDA connection.
The following diagram is intended to represent the synchronization process between a server and a client schematically. It is clearly seen that both server and client via a SyncML interface ( Interface) feature that enable smooth data exchange.
The SyncML converted data will be transmitted via any protocol from server to client and vice versa - this can both HTTP ( TCP / IP), and WSP (WAP ) or OBEX be (Bluetooth, infrared).
The Sync Client Agent initiates a synchronization process cost based on the SyncML protocol and manages the transfer operations on the client side. On the opposite side of the client, the Sync Server Agent waits for a synchronization request.
The Sync Engine takes you through an analysis and checks which data needs to be changed. These opens and modifies databases, responds to changes in schedule or updates an e -mail program folder.
On the client side, which basically means the end user side - and thus the mobile part - dominated SyncML data types, such as occur in e- mail, calendar, address books and documents. At the same SyncML is so flexible that new formats can be integrated without much effort. Specifically, the protocol does the following:
- It allows data communication over wired networks, wireless networks, infrared connections.
- It supports a variety of transport protocols and data formats.
- It allows access to data from many different devices.
- It takes into account the limited resources of mobile systems with respect to memory and processing power.
- It relies on proven network technologies.
- It supports those synchronization functions rely on the maximum number of systems.
SyncML (OMA DS) has now become established as a standard for the comparison of calendar, contacts and other PIM data, in practice, there are still challenges:
- Unlike IMAP implementations for e-mail support so far relatively few desktop applications SyncML. Microsoft Outlook or Mozilla Thunderbird for example, require additional plug-ins to synchronize calendar and contact in this way with a server. From current mobile devices, most mobile phones support this standard on smartphones with Android operating systems, Windows Mobile, Blackberry or Apple iOS it must be upgraded by additional application.
- Existing server and client programs, in particular different developers communicate do not always work together, which is partly due to immature implementations. Thus, the synchronization does not work in some situations, only after extensive configuration or faulty ( it is among other things to the formation duplicates ).
There are now solutions that dominate the smart data comparison with duplicate and conflict resolution and remove most of the work for the user.
- In Germany meanwhile put all the major wireless carriers and Internet service providers to services for data backup and adjustment- based on SyncML, especially T -Mobile with MyPhonebook, Vodafone My Address, o2 with the Communication Center, Mobilcom with the MSYNC service, or T-Home ( T-Online) with the Data Sync service. In other countries, such services are already established, such as the A1 address at Mobilkom Austria or orange address in Austria, as well as online messaging Address Book synchronization with o2 Ireland.