SyncML

De Cliss XXI
Sauter à la navigation Sauter à la recherche

Synchronisation avec eGroupWare

  • Petite configuration supplémentaire (cf. "PHP5 as an Apache Module" dans SyncMLInstallHowto)
  • Configuration sur le mobile: accédez à http://votre-egroupware.com/rpc.php puis précisez le type de synchronisation [1]
  • Consultez la partie "debug" du howto ci-dessus en cas de problème:
ls /tmp/egroupware_syncml.log
mkdir /tmp/sync && chown www-data: /tmp/sync && faites_une_synchro && ls /tmp/sync/*

Des add-ons Thunderbird pour tester?

Problème pour utiliser SyncML quand EGroupWare est derrière un SSO (authentification de type "HTTP"), à creuser:

session->create($user,$pass,...) fails:
in /var/www/egroupware/phpgwapi/inc/class.sessions.inc.php:566
called from /var/www/egroupware/phpgwapi/inc/horde/Horde/SyncML/State_egw.php:237

Intro technique SyncML

http://www.syncml.org

Basé sur la norme XML, SyncML est un protocole visant à créer un standard pour une synchronisation universelle des données.

  • Two-way sync (le client et le serveur échangent des informations sur des données modifiées ; le client envoie les modifications d’abord)
  • Slow sync (synchronisation dans les 2 sens ; chaque donnée envoyée est comparée sur les 2 bases)
  • One-way sync from client only (le client met à jour le serveur ; le serveur accepte et met à jour les données et n’envoie pas ses modifications)
  • Refresh sync from client only (les données du client recouvrent les données du serveur)
  • One-way sync from server only (le serveur met à jour le client)
  • Refresh sync from server only (les données du serveur recouvrent les données du client)
  • Server alerted sync (le serveur commande à distance le client de lancer un des types de synchronisation avec le serveur cités ci-dessus ; de cette façon, le serveur à distance commande le client)

Syncml fonctionne avec des balises, tout comme le XML

Syncml est découpé en 2 grandes parties :

  • L'entête : SyncHdr
  • Le corps : SyncBody
<SyncML>
<SyncHdr>
...
</SyncHdr>
<SyncBody>
...
</SyncBody>
</SyncMl>

Quelques commandes Syncml:

<Add>
<Alert>
<Atomic>
<Copy>
<Delete>
<Exec>
<Get>
<Map>
<Put>
<Replace>
<Results>
<Search>
<Sequence>
<Status>
<Sync>