SyncML, le graal de la synchronisation de données

Posté par . Modéré par Mouns.
Tags :
0
4
juil.
2007
Technologie
Vous vous êtes surement comme moi à un moment ou un autre posé la question de comment synchroniser des données entre deux applications ou deux ordinateurs. Oubliez toutes les solutions propriétaires, tous les bricolages, tous les trucs non standards et entrez dans le monde de SyncML.

SyncML est un protocole standard de synchronisation de données, et ayant été développé en prenant en compte les particularités des terminaux mobiles à accès ponctuels (i.e. les téléphones mobiles ou les PDA).

L'intérêt est d'offrir un moyen simple à tout constructeur de terminaux ou tout développeur de logiciel de se synchroniser avec le monde extérieur. Je ne développe pas plus car je pense que tout le monde ici comprend l'intérêt d'avoir un protocole standard... Il vous suffira de vérifier ce qu'est un format ouvert et ce qu'apporte l'interopérabilité.

Funambol est la référence pour les différentes implémentations de serveur SyncML : de nombreux logiciels libres sont disponibles sur le site, dont en particulier le serveur précédemment appelé Sync4j en Java. Le serveur open source Funambol fournit des services d'e-mail en push, de synchronisation de PIM et de gestion d'appareils mobiles pour les opérateurs mobiles, fournisseurs de services et les OEM.

La compagnie ScheduleWorld propose un service (gratuit pour l'instant...) reposant sur une version modifiée du serveur Funambol qui se synchronise automatiquement (enfin à chaque synchronisation avec le serveur ScheduleWorld) avec Google Calendar et qui permet donc d'avoir son agenda partout et tout le temps.

NdM : Quand bien même cette dépêche met en avant un ensemble de technologies propriétaires (voir seconde partie de cette dépêche), il nous a semblé intéressant d'avoir un exemple concret (réaliste ?) basé sur un produit libre pour l'intégration de ces technologies mobiles qui se répandent. Funambol est sous licence GPL pour le client et HPL pour le serveur, cette licence étant basée sur la GPL et qui reprend des termes semblables à l'Affero GPL pour assurer que la partie serveur reste libre. Ceux qui ont eu à mettre en oeuvre une solution mobile et assurer son intégration ont ainsi des éléments pour se départir du carcan de solutions propriétaires qui s'intégrent difficilement par nature. La problématique d'un point de vue 'agenda' : ceux qui possèdent un PDA ou un téléphone portable évolué connaissent sans doute la difficulté qu'il y a parfois à avoir un agenda cohérent avec leur PC fixe.
Ou bien vous avez beaucoup d'amis et vous avez du mal à coordonner vos disponibilités pour organiser vos soirées/fêtes/anniversaires/mariages ?

Des initiatives libres existent comme Multisync, mais sont pour l'instant assez instables (je n'ai malheureusement pas eu trop le temps de tester...). L'avantage de ScheduleWorld est d'offrir dès aujourd'hui un service qui fonctionne et permettant d'avoir ses données synchronisées entre :
  • Google Calendar
  • ScheduleWorld
  • Outlook
  • Evolution (non testé)
  • Sunbird (non testé)
  • PDA (testé avec un Palm Tungsten E2)
  • votre téléphone portable (non testé)

De mon point de vue c'est la synchronisation avec Google Calendar qui rend le tout extraordinaire !

Exemple typique :
  1. Je suis à mon travail où je suis bien obligé d'utiliser Outlook, j'enregistre une réunion et lance la synchronisation ScheduleWorld grâce au Funambol Outlook plugin qui répercute la modification sur Google Calendar
  2. Peu de temps après, des amis souhaitent organiser un pique-nique à 18h en semaine. Ils voient sur Google Calendar que le mardi ce n'est pas possible car j'ai une réunion qui se finit à 18h. ils me lancent donc une invitation (via Google Calendar) pour le mercredi
  3. Je suis en plein WE à l'autre bout de la France, sans ordinateur à l'horizon et je reçois un SMS de Google Calendar me prévenant de l'invitation ! Chouette !
  4. Je rentre chez moi et m'empresse de me connecter et d'accepter l'invitation (mes amis sont aussi prévenus par SMS que j'ai accepté) tout en synchronisant mon Palm (avec Synthesis SyncML client for Palm payant malheureusement mais pas trop cher...).
  5. Je repars en soirée et on me demande si je suis libre mercredi soir, euh... je consulte mon PDA et la réponse est hélas non !

Voilà cet exemple tiré de la vie réelle n'est pas exceptionnel et je pense que vous connaissez cette situation.

Toutes ces applications sont encore jeunes et demandent encore un peu de débogage mais cela fonctionne bien pour l'instant. Tous les testeurs sont donc les bienvenus (le forum de ScheduleWorld est animé par une personne très sympathique et très réactive par exemple)... Donc lancez-vous ! ;-)
  • # Petite question ...

    Posté par (page perso) . Évalué à 4.

    ScheduleWorld c'est un site de Google ? Parce que si non ils ont vachement pompé le style (je ne suis pas allé plus loin que la page de login).
  • # quel kéké !

    Posté par (page perso) . Évalué à 7.

    > Je repars en soirée et on me demande si je suis libre mercredi soir, euh... je consulte mon PDA et la réponse est hélas non !

    J'aimerais bien voir la scène !
    • [^] # Re: quel kéké !

      Posté par . Évalué à 1.

      Attend un peu que j'ai un iPhone... ;-)
      • [^] # Re: quel kéké !

        Posté par . Évalué à 10.

        Quelques expériences mon apprit a suivre quelques règles simples:

        1) On ne sait jamais comment une soirée peut finir,
        2) Moins on trimballe d'¤ d'équipement moins il y aura de perte,
        3) On ne retire rien de bon à prendre des photo passé une certaine heure,
        4) Rien ne sert de noter les n° de téléphone, 70% sont faux,

        Suivant ces préceptes il me parait aberrant d'apporter un PDA en soirée, déjà qu'un téléphone n'y a pas forcement sa place.
        • [^] # Re: quel kéké !

          Posté par . Évalué à 1.

          3) On ne retire rien de bon à prendre des photo passé une certaine heure,

          C'est une des réflexions les plus vraies (et surtout qui m'a fait écrouler de rire) que j'ai lu depuis longtemps...

          4) Rien ne sert de noter les n° de téléphone, 70% sont faux,

          Bon la c'est personnel, comme expérience et cela dépend de la personne qui demande... ;-)
  • # heu...

    Posté par (page perso) . Évalué à 10.

    avec de vrais morceaux d'humour dedans (j'espère en tous cas)
    Voilà cet exemple tiré de la vie réelle n'est pas exceptionnel et je pense que vous connaissez cette situation.


    heu... si ce genre de chose ne m'arrive jamais c'est que je suis quelqu'un exceptionnel ? ou bien un looser ?

    Non, blague à part, je trouve ce discours franchement sorti d'une école de commerce. Bravo à celui qui l'a rédigé, c'est plus agréable à lire que les trucs compliqués et techniques qui font fuir les non informaticiens.

    Mais bon, moi, il me laisse franchement froid : je suis quelqu'un de très occupé (perso & pro), mais quand même, si ca m'arrivait d'avoir un conflit entre 2 RdV, j'en rappelle un pour décommander.

    PS : bon, je suis marié et père de famille, donc je ne cherche pas à épater la copine de geek en vadrouille, c'est ptet ca...
    • [^] # Re: heu...

      Posté par (page perso) . Évalué à 5.

      Si ça peut te rassurer ça ne risque pas de m'arriver non plus :-)

      Bizarrement quand des copains font une soirée, soit ils me le disent de visu quand le les vois, soit ils me téléphonent, soit ils envoient un mail, et je leur réponds directement.

      Je n'ai pas encore un pigeon voyageur qui vient automatiquement mettre à jour un PDA qui enverra un SMS à une centrale qui préparera un fax pour mon GPS.
      • [^] # Re: heu...

        Posté par . Évalué à 5.

        Je n'ai pas encore un pigeon voyageur qui vient automatiquement mettre à jour un PDA qui enverra un SMS à une centrale qui préparera un fax pour mon GPS.

        Ca, c'est parce que tu ne connais pas encore la norme "Pigeon Over IP" qui permet de faire ça, justement :-D
        • [^] # Re: heu...

          Posté par . Évalué à 4.

          Excuse moi mais il s'agit plutot de la norme IP over Pigeon (IP over Avian Carrier) qui est décrite dans la RFC 1149. Tu as meme une version avec QoS dans la RFC 2549 :-)
          Reste à dresser le pigeon pour qu'il tape directement les SMS... Un routeur IPoAC/SMS ouuuaaaa
        • [^] # Re: heu...

          Posté par (page perso) . Évalué à 4.

          "Pigeon Over IP"


          Moi j'appelle ça du spam....
    • [^] # Re: heu...

      Posté par . Évalué à 2.

      D'accord si tu n'as pas un agenda de ministre, le coup du PDA est un peu superflu.

      Par contre la synchronisation Outlook-Google Calendar est vraiment pratique car cela permet d'associer son agenda professionnel à son agenda personnel.

      Si tu as des horaires réguliers et que tu pars en vacances pendant les vacances scolaires, ok pas de soucis pour comprendre tes disponiblités. Par contre si tu es souvent en déplacement professionnel, ça devient embêtant pour tes amis.

      Un truc tout bête : vous avez déjà réussi à réunir genre 30-40 personnes (genre gros anniversaire) sans y passer des heures et des tonnes de coups de fil ? Une fois passé la trentaine il me semble que c'est encore plus pénible (car encore plus de contraintes...).

      Le PDA c'est surtout pour ceux qui n'ont pas de mémoire comme moi. Là t'es bien content d'avoir ton agenda à jour sous le coude...

      Maintenant oui on s'en sort très bien sans, tout comme au boulot on s'en sortait très très bien avec les agendas papiers. C'est juste que maintenant tout le monde apprécie bien les calendriers partagés...

      P.S. : j'avoue cependant que pour épater la geekette, c'est top ! ;-)
      • [^] # Re: heu...

        Posté par (page perso) . Évalué à 10.

        1- J'ai 40 ans l'an prochain,
        2- ma belle-mère va féter ses 60 ans dans ... 16 jours, et vous savez quoi, nous avons envoyé des invitations sur un truc tout blanc, sur lequel nous avons gratté un objet long qui a laissé une couleur noire. Nous avons ensuite mis, après l'avoir plié en 4, cet objet dans un autre objet de forme rectangulaire, et collé dessus un petit post-it de couleur rouge, vendu (cher !) par un organisme appelé "La Poste". Ca a eu l'air de fonctionne pas mal puisque tous les invités seront présents (sauf le grand-père de 86 ans, qui est à l'hopital, mais qui a été bien content de recevoir la lettre. Je ne suis pas sûr qu'il ait l'internet à l'hopital. Ni qu'il sache s'en servir. En fait, si, je suis sûr : il ne sait pas...)


        Pour ce qui est de mes déplacements, je suis souvent en déplacement, aux 4 coins du monde même, et mon associé et moi-même partageons -depuis peu- un agenda électronique (vive sunbird 0.5 !) Ca nous suffit largement de chez largement.

        Bon, pour conclure, ce fil m'amuse : OK pour dire que c'est intéressant, mais ca reste un peu un truc de geek quand même. Enfin c'est mon avis.

        PS : Outlook, c'est quoi ca. J'ai pas ca sur ma mandriva :

        urpmi outlook
        Pas de paquetage nommé outlook
        • [^] # Re: heu...

          Posté par . Évalué à 7.

          Ah mais c'est un peu comme toutes les nouvelles technologies rendant instantané ce qui auparavant été...euh...différé ? ;-)

          L'année qui a suivi l'introduction du Bibop ou des premiers GSM, la plupart des gens étaient sceptiques (moi le premier) : genre c'est un truc pour les kékés.

          De même pour les SMS ou texto, beaucoup de personnes trouvent que ça ne sert à rien. D'autres ne peuvent plus s'en passer (les ados).

          Par exemple pour le Blackberry, je suis sûr que tu trouves aussi que cela ne sert pas à grand chose (peuh ! un Pine sur une connexion SSH de temps en temps ça suffit !). Mais il est indéniable que beaucoup ne peuvent plus s'en passer...

          On en arrive au point parfois où c'est la technologie elle-même qui change les comportements.

          Prenons un exemple : avant l'ère du téléphone portable, on se donnait rendez-vous bien avant et tout le monde se pointait à l'heure au lieu dit et sinon les retardataires devaient payer la première tournée.

          Maintenant j'observe le comportement suivant (je généralise un peu mais supposons...) : de plus en plus on ne se donne plus de rendez-vous précis mais on lance un 'Bon ! t'es libre samedi ? On s'appelle et on se fait un truc ?" ou bien les personnes ne respectent plus trop l'horaire car "On peut toujours prévenir que l'on sera en retard".

          Autre exemple (décidemment je suis en verve) : le coup des cadeaux communs. Tu envoies tes invitations par courrier : ok tout le monde est content de venir à ton anniversaire et chacun apporte son petit cadeau. Maintenant vu que de plus en plus on reçoit des emails avec tout le monde en copie, je reçois pratiquement à tous les coups juste quelques heures après l'invitation un message avec "Bon qu'est-ce qu'on peut lui offrir ?" et ça débouche souvent sur un cadeau commun. Un ami ayant envoyé son email avec des Bcc s'est vu chambré par tout le monde pour ça...

          J'avais aussi lu que dans le cas particulier du Vietnam où le GSM s'est lancé très vite dans les grandes villes, cela devenait très dur pour les familles pauvres car les enfants/ados voulaient tous un GSM car sinon ils étaient exclus : en effet tous les rendez-vous se passaient/transmettaient par GSM.

          Tout ça pour dire que les agendas partagés sont maintenant considérés comme indispensables dans les quelques entreprises où j'ai travaillé et que je pense qu'il n'y a pas de raison pour laquelle cela ne devienne pas commun aussi pour les agendas personnels.

          Se passer de ce service est une simple question d'organisation, de mémoire et de temps, j'en conviens. Par contre réserver cet usage au cercle du 'geek', je ne pense pas.

          L'avenir nous dira lequel de nous deux a raison...
          • [^] # Re: heu...

            Posté par . Évalué à 2.

            L'avenir nous dira lequel de nous deux a raison...

            Euh... celui des deux qui consomme le moins de pétrole ?

            (non non, ça n'est pas un avenir trop lointain)
            • [^] # Re: heu...

              Posté par . Évalué à 2.

              quel rapport dans le contexte ?
              • [^] # Re: heu...

                Posté par . Évalué à 3.

                la pérénité dans le temps des technique d'échanges d'information ?

                mais c'est vrai que c'est tiré par els cheveux comme réponse (le pétrole)
      • [^] # Re: heu...

        Posté par (page perso) . Évalué à 6.

        Pour réunir tes 30-40 personnes, doodle doit pouvoir t'aider ;-) http://www.doodle.ch/
  • # Opensync

    Posté par (page perso) . Évalué à 7.

    Pour information, opensync semble oublié dans la dépêche et pourtant, ce framework dispose d'un plugin de synchronisation pour les périphériques compatibles syncml. Il existe aussi un plugin googlecalendar qui devait être développé pendant un google summer of code, mais je n'en connais pas le status.
    • [^] # Re: Opensync

      Posté par (page perso) . Évalué à 2.

      Le lien d'openSync : http://www.opensync.org

      Par contre, je n'ai pas trouvé de trace de la licence (et j'ai grandement la flemme de regarder dans les sources)
      • [^] # Re: Opensync

        Posté par . Évalué à 1.

        Oups c'est ma faute : OpenSync est le successeur de MultiSync et c'est bien OpenSync que j'ai testé...

        http://en.wikipedia.org/wiki/OpenSync_(software)
        • [^] # Re: Opensync

          Posté par . Évalué à 1.

          MultiSync (v0.82) fonctionnait très bien mais n'est plus compatible avec certaines applications récentes - Evolution pour ne pas le citer...
          Et de son côté OpenSync est encore jeune - par exemple la synchronisation de mon (vieux) Ericsson lui semble mission impossible alors que MultiSync s'en sortait bien. Bref je débogue !
  • # Autre petite question

    Posté par . Évalué à 2.

    Une question qui ne porte pas vraiment sur SyncML, mais sur la synchronisation en général: connaissez-vous un gestionnaire de contacts qui permette de définir très finement ce que l'on veut synchroniser et avec quoi?

    Je m'explique: je rêve de pouvoir stocker tous mes contacts dans une seule base de données. Comme je suis secrétaire d'une association, j'y mettrais aussi les données des membres (en conformité avec la loi, ça va de soi, mais la question n'est pas là). Idem pour mes amis, idem pour mes collègues, etc.

    Bon, maintenant, supposons que j'aie un PDA et un GSM. Je voudrais pouvoir définir facilement quels contacts je veux synchroniser avec quelle machine. Il y a des champs qui n'ont de sens que pour certains contacts. Par exemple, la date de naissance n'est pas stockée pour mon médecin, mais bien pour les membres de l'asso, à des fins administratives. Mais je n'ai pas envie de la retrouver sur mon PDA pour ce type de contacts: là, je ne veux que nom, adresse, téléphone. Et je ne veux pas les membres de l'asso sur mon GSM, mais bien mon médecin. Par contre pour les amis, c'est pas mal d'avoir leur date de naissance sur le PDA et le GSM.

    Et avant qu'on me le demande: oui, il y a des membres de l'asso qui sont aussi des amis :-)
  • # Et Lotus Notes ????

    Posté par . Évalué à 2.

    Je suis le seul a endurer ce dinosaure a rêver de pouvoir le synchroniser avec Google Calendar ?
  • # Embarqué ?

    Posté par (page perso) . Évalué à 2.

    Bonjour !

    Est-ce que quelqu'un connais d'autres implémentation d'un serveur SyncML ?
    En particulier en PHP + MySQL (pour déployer facilement sur un serveur de type FAI) , et en C/C++ (pour mettre dans un routeur, par exemple avec un backend sqlite).
    Egalement, un couplage avec OpenLDAP pourrais être intéréssant..

    Les seules implémentations que j'ai vu sont Funanbol, en java, et une page PHP qui était plus un système de test qu'une réelle implémentation.

    Merci !

    OB
    • [^] # Re: Embarqué ?

      Posté par . Évalué à 5.

      Il y a tout ce qui tourne autour de opensync mais c'est encore au stade beta je pense. Par exemple :
      http://libsyncml.opensync.org/wiki/http-guide

      J'en ai trouvé un rapidos en PHP + MySQL :
      http://nicolas.bougues.net/syncml/

      On en fait un commentaire ici :
      http://www.ibm.com/developerworks/xml/library/x-syncml3.html

      Certains se posent la même question que toi :
      http://www.k-fish.de/SyncML-support.57.0.html

      Sinon il y a un truc appelé eGroupWare :
      http://www.egroupware.org/index.php?page_name=sync&wikip(...)

      Comme toujours pas mal de trucs... reste à faire le tri !

      Bon courage,
      • [^] # Re: Embarqué ?

        Posté par . Évalué à 1.

        Sauf qu'en réalité, il n'y a rien qui fonctionne vraiment et qui soit léger.

        Opensync => Ils ont sorti la version 0.30 qui casse tous les plugins actuels, donc libsyncml ne fonctionne plus avec (de toute façon, la libsyncml ne comprenait pas la majorité des clients (telephone, PDA, etc...) )

        Sync4j, c'est pas mal, sauf que c'est du Java (donc 80MB juste pour lancer le serveur, rien que pour sauvegarder les 200ko de données de ton PDA/tel/SmartPhone, ça fait peur).
        Par contre, ce sont les seuls à faire des programmes qui tournent sur tous les périphériques embarqués (en C++ généralement) qui fonctionnent.

        Synthesis, d'après mon expérience ça fonctionne pas mal, (mais sapucépalibre), le problème, c'est qu'il te faut la même GlibC qu'eux car ils fournissent que le binaire de leur serveur (donc exit Gentoo, Slackware, etc...) et surtout un proc x86. C'est payant.

        ScheduleWorld / Googlecalendar et autres requièrent tous d'avoir un serveur HTTP avec Apache + PHP + MySQL (100MB bouffé). Alors, soit tu es le Directeur Informatique d'IBM et tu te permet d'acheter leur versions serveur (GC / SW ?) vraiment cher, soit tu oublies direct (sauf si tu t'en fout que tes données ne soit pas à ta disposition, chez toi, mais consultable par je-ne-sais-quel-publicitaire).

        Bref, la synchro de données via un petit routeur / serveur de fichiers type ARM9 qui consomme rien, c'est pas encore pour aujourd'hui.
        Après j'ai pas encore testé la version Sync4j compilée en natif par gcj, faut voir.
    • [^] # Re: Embarqué ?

      Posté par . Évalué à 2.

      Il y a aussi l'excelent site http://www.memotoo.com dont le serveur syncML à été développé en php par l'auteur du site (très sympa d'ailleurs et très réactif).

      Je l'utilise en tant que test pour un client/serveur que je développe en python (http://fr.wikipedia.org/wiki/ERP5#Moteur_de_Synchronisation ) pour ERP5 (http://erp5.org/ ).
      • [^] # Re: Embarqué ?

        Posté par (page perso) . Évalué à 2.

        Merci pour tous ces pointeurs !

        Effectivement, l'objectif c'est un mini-serveur ARM9...

        OB
  • # Vive l'homme moderne

    Posté par (page perso) . Évalué à 2.

    1. Il est 18h46, je suis encore en réunion, au travail
    2. Ma femme se connecte sur mon calendrier google, voit que la réunion n'est pas terminée...
    3. Je reçois un SMS sur mon blackberry (la pizza est au micro-ondes...)
    ...
    • [^] # Re: Vive l'homme moderne

      Posté par (page perso) . Évalué à 10.

      1. Il est 18h46, je suis encore en réunion, au travail

      Normal pour un 5 à 7...
      Elle active la webcam intégrée à ta montre, joignable par UMTS
      Tu es bien en train de la tromper, une seule part de pizza au micro-onde, l'avocat a déjà reçu le mail de demande de divorce, le compte commun est fermé par ta banque sur sa demande via le site web authentifié, le TGI traitera le compromis de divorce au vu du dossier le lendemain (plus besoin de tampon encreur : le dossier est archivé électroniquement et signé numériquement), tu te retrouves à la rue : le code de la clé de la porte a été désactivé, tu es hébergé par les parents ou amis qui n'ont pas reçu la vidéo mis à dispo en P2P.

      C'est beau le numérique...
  • # Funambol sous HPL, le geste malin, les libertés en moins...

    Posté par . Évalué à 4.

    Les restrictions sur l'utilisation infligées par la licence HPL en font un produit plus difficilement intégrable dans un environnement professionnel, mais, ô miracle, il y a moyen de payer pour avoir le produit sous une autre licence afin de pouvoir l'adapter presque comme si c'était sous GPL.

    Stratégie intéressante de leur part: ils forcent la main des entreprises pour leur vendre la version commerciale, et ils se créent du même coup un monopole sur leur application là où une SSLL quelconque pourrait leur faucher le contrat de support si c'était en GPL2 ou 3...

    C'est futé de mettre son boulot sous une licence à liberté réduite... on finirait presque par se croire dans un écosystème proprio...
  • # Le graal, certes. Mais on le cherche encore

    Posté par (page perso) . Évalué à 1.

    Pour avoir travaillé un peu avec, ce protocole a deux inconvénients majeurs :

    1) la syntaxe est décrite dans un DTD et pas un XSD ce qui limite quelque peu les possibilités de contrôle.
    2) la norme n'impose pas que l'échange xml soit "well formated" et là, cela ne sert plus à rien d'utiliser xml si on n'en utilise pas les capacités.

    Enfin, j'ai ouïe dire que si on n'impose pas cette vérification, c'est parce que les clients sont mobile et donc peu pourvus en CPU.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.