2. Le protocole de synchronisation SyncML
Aussi appelé SyncML Sync Protocol, il est en charge d'initialiser les synchronisations entre le client et le serveur. Ainsi, chacune des entités disposent d'un agent dont le rôle est d'invoquer les fonctions de l'interface du SyncML framework:
2.1. Les bases du sync protocole
2.1.1. Les Sync Anchors
Afin de pouvoir constamment savoir quelles sont les informations qui ont été modifiées depuis la dernière synchronisation, les deux entités tiennent à jour un journal des modifications (Change Log). C'est grâce à ce journal que lors d'une synchronisation, les entités s'échangent des chaînes de caractères (Sync Anchors) représentant la dernière synchronisation (Last Anchors) et l'état actuel de leur base de données(Next Anchors). Ces Sync Anchors ne sont rien de plus qu’une concaténation de données de format Timestamp.

La résolution des conflits de synchronisation (modification d'une même donnée à la fois sur le client et le serveur) revient à la charge du Sync Engine et s’effectue à l’appuie des Sync Anchors.
NB: Dans certains types de configuration, l'application cliente peut prendre en charge un Sync Engine.
2.1.2. L’adressage
Enfin l'adressage est encore un rôle du SyncML Sync Protocol. Selon le SyncML DTD, il doit se présenter comme suit :
Source et Target sont les balises qui indiquent respectivement l’origine et la destination du SyncML Message et doivent contenir une balise LocURI où sera stockée l’adresse. Puisque le SyncML permet de communiquer à travers différents réseaux, les formats d'adresses peuvent varier (ici une adresse WEB et un numero IMEI).
N.B : L’IMEI est un numéro d’identification unique pour un téléphone portable (comparable à une adresse MAC pour du materiel réseau).
2.1.3.Devices Management
Comme évoqué dans l'introduction, le SyncML est à la fois un protocole de synchronisation de données (Data Sync, DS) mais aussi de gestion des entités (Device Management, DM). Ainsi, lors des synchronisations, les entités sont capables de s'informer sur les disponibilités mémoires de l'appareil distant, permettant ainsi de gérer les surcharges (fonction principalement recommandée aux entités clientes).

2.2. Les modes de synchronisation
Le SyncML met à disposition de l'utilisateur plusieurs types de synchronisations:
- Slow sync: Proche du Two-way sync à l'exception près que le serveur effectue une analyse champ-par-champ des données transmisent par le client. Ce mode de synchronisation est utilisé en cas de perte ou de corruption des Sync Anchors.
2.3. Initialisation d'une synchronisation
L'initialisation des synchronisations se divise en 3 étapes:
- L'authentification entre le client et le serveur: cette étape est sécurisé, les informations transmises sont encodés avec un algorithme MD5 par le protocole de représentation.
- La sélection de la base de données pour la synchronisation: car l'entité cliente est en mesure de synchroniser plusieurs types d'informations qui ne sont pas stockés dans la même base de données. (Ex: pour un téléphone portable, la listes des contacts, le calendrier, les mémos, etc.)
-
L'échange d'informations sur le service a fournir.