In this chapter, handshakes and other features of the Synchronization Protocol have been introduced, and impacts have been considered. All of them together create the overall functionality provided by the SyncML Synchronization Protocol. Now is a good time to closely look at two important features of the Synchronization Protocol: identifier mapping and slow synchronization. Their impact on implementations and the overall infrastructure is explored below.
As explained earlier, the whole idea of identifier mapping is to enable the Client and the Server to address data items using distinct identifiers. When synchronizing data and exchanging modifications, the identifiers allocated by a Client are used. The Server identifiers are only used when the Server adds a data item to a Client. Because of this, the Server needs to maintain identifier mapping with every Client that it synchronizes with. From the Client standpoint, this is a huge benefit because the Client does not have to store the long globally unique identifiers (GUIDs) used by the Servers.[2] For wireless devices implementing the Client functionality, using the same data identifiers as the Server would, in general, be an impossible requirement.
[2] The Servers commonly use globally unique identifiers (GUIDs) for data objects. The lengths of those GUIDs are typically in the range of 64–128 bytes. In practice, Clients use locally unique identifiers (LUIDs), whose lengths are equal to or less than 16 bytes.