Forum général.général dvcs-autosync et XMPP

Posté par  (site web personnel) .
Étiquettes :
3
1
mar.
2012

Bonjour chers linuxfriens,

Je cherche à créer en ce moment un dropbox-like.

j'ai environ 30Go de données que je souhaites partager entre plusieurs collaborateurs (dans une PME) l'idée étant de pouvoir consulter les documents commun depuis n'importe où.

Après quelques recherche il s'avère que la solution la plus sérieuse de mon point de vue est dvcs-autosync qui utilise git (ou n'importe quelle dvcs) pour gérer les données et XMPP pour notifier les clients des mises à jour.

Mon problème technique réside justement dans l'utilisation de XMPP, la doc (ultra succincte malheureusement de dvcs-autosync) parle de spécifier un compte XMPP dans le fichier de conf, compte qui sera partager par toutes les machines.
l'idée étant que le script autosync détecte les modification, déclenche un commit puis un push puis envoie un message depuis le compte vers ce même compte, ce message est ensuite reçu par toutes les machines, déclenchant un pull.

c'est la que le problème intervient: je ne comprend pas comment XMPP gère les ressources, mais il s'avère que seul la dernière machine à avoir lancer le script reçoit le message déclenchant le pull.

j'ai bien parcouru tout le web et je tombe sur pas mal de pages expliquant que c'est une sorte de feature de ne pas envoyer le message sur toutes les ressources d'un même compte XMPP.

pourtant je trouve plusieurs message de personne expliquant qu'ils utilisent autosync et que "chez moi ça marche®".

faut-il utiliser un serveur jabber particulier (un conversation trouvée sur une ML expliquait que seule gtalk implémente cette possibilité)

d'autre part je doit loupé quelques chose, car je trouve ce truc absolument Génial, et pourtant assez peu de documentation et de retour d'expérience alors que dvcs-autosync et sparkleshare sont sortis il y a un petit moment déjà.

  • # une histoire de compte ?

    Posté par  . Évalué à 3.

    Mon problème technique réside justement dans l'utilisation de XMPP, la doc (ultra succincte malheureusement de dvcs-autosync) parle de spécifier un compte XMPP dans le fichier de conf, compte qui sera partager par toutes les machines.
    l'idée étant que le script autosync détecte les modification, déclenche un commit puis un push puis envoie un message depuis le compte vers ce même compte, ce message est ensuite reçu par toutes les machines, déclenchant un pull.

    ma question va sembler bete, mais pourrait expliquer le comportement que tu as.

    Perso je comprend le fonctionnement theorique de tout ca comme suit :
    - un compte pour le "serveur DVCS"
    - un compte par utilisateur/collaborateur
    - des groupes d'utilisateurs (si y a besoin)

    quand le DVCS detecte un changement, il envoie un message (broadcast) aux utilisateurs.
    ce message est alors intercepté par le logiciel sur le poste client, et declenche la mise à jour.

    si le client est hors-ligne, ton serveur XMPP doit conserver le message pour le livrer à la reconnexion du client. (c'est peut-etre ce point là que seul gtalk ferait ?)

    • [^] # Re: une histoire de compte ?

      Posté par  . Évalué à 3.

      si le client est hors-ligne, ton serveur XMPP doit conserver le message pour le livrer à la reconnexion du client. (c'est peut-etre ce point là que seul gtalk ferait ?)

      Non, c'est une fonctionnalité de base sur la plupart des serveurs.

      THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

      • [^] # Re: une histoire de compte ?

        Posté par  . Évalué à 2.

        de base, oui mais pas toujours activée par défaut.

        quant au self-notify buggé, je crois que ce serait une piste en effet.
        si tu peux essaie avec un autre serveur XMPP.

        • [^] # Re: une histoire de compte ?

          Posté par  . Évalué à 2.

          Le serveur jabber de l'APINC le fait. Prosody le fait dans sa config par défaut. Openfire également.

          THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.

          • [^] # Re: une histoire de compte ?

            Posté par  (site web personnel) . Évalué à 1.

            j'ai pourtant essayé en premier sur un compte jabber.ubuntu-fr.org, puis sur un compte im.apinc.fr et aucun n'as fonctionné correctement. je suis en train de tester sur mon serveur ejabberd mais il me manque une entrée dns pour le moment donc je ne pense pas avoir la réponse avant lundi au mieux

    • [^] # Re: une histoire de compte ?

      Posté par  (site web personnel) . Évalué à 0.

      En effet, ça m'a paru curieux, mais voila un passage de la doc officielle:
      http://mayrhofer.eu.org/dvcs-autosync

      After the push has finished, send an XMPP message to self (that is, to all clients logged in with the same account) to notify other accounts of the push.

      ce que j'en comprend est donc bien qu'on est sensé avoir un unique compte XMPP pour toutes les machines.

      après vos messages j'ai quand même (re)testé avec un compte par machine en utilisant le paramètre 'also-notify' pour prévenir l'autre compte => le résultat est pire, puisque la synchro, qui fonctionnait à sens unique, ne fonctionne plus du tout.

      par ailleurs il y a cette inquiétante ligne dans le TODO du projet:
      > * find out why the Jabber msg-to-self doesn't work in some cases

      j'ai bien peur de me retrouvé dans le "some cases"

      Merci à tout les 2

      • [^] # Re: une histoire de compte ?

        Posté par  . Évalué à 1.

        Dans gajim , il y a un paramètre "priorité" qui permet d'indiquer qui reçoit le message quand plusieurs clients sont connectés avec le même compte.
        Regarde peut-être de ce coté là.

        • [^] # Re: une histoire de compte ?

          Posté par  (site web personnel) . Évalué à 0.

          c'est pas bête, mais pour cela il me faudra vraiment mettre les mains dans le code car c'est le client jabber en python de dvcs-autosync qui gère l'envoi de message et dans la mesure ou j'ai vu des commentaire de personne chez qui "ça fonctionne" qui ne précise pas qu'ils on du modifier le client jabber, je ne suis pas sur que ça vienne de là.

  • # Subversion? ftp? ajaxexplorer?

    Posté par  (site web personnel) . Évalué à 3.

    Tu es sûr que dvcs-autosync+xmpp passe partout (même derrière un proxy nazi) et est une solution suffisamment mature et simple pour tes utilisateurs?

    Selon leur niveau technique et leur capacité à apprendre, il vaut peut être mieux se baser sur des solutions plus rodées ou plus noobs friendly non?

    Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

    • [^] # Re: Subversion? ftp? ajaxexplorer?

      Posté par  (site web personnel) . Évalué à 0.

      Non, je ne suis pas sur du tout de cela, c'est bien pour ça que je teste intensément avant (et que finalement je ne vais sûrement pas déployer cette solution).

      Nous avons actuellement un partage samba sur un vpn qui résout à peu près le problème, mais attendre 4 à 5 seconde pour enregistrer un document sur le serveur est un peu pénible.
      D'où la recherche d'une solution avec mise en cache.
      pour reprendre ton titre:
      subversion => pas d'automatisme donc pas adapté à la noobitude des utilisateur
      ftp => idem + latence
      ajaxplorer => manque de transparence (forcer l’utilisation du navigateur + impossible de glisser dépose un dossier la dernière fois que j'ai testé)

      On en arrive à la dernière partie de mon message initial:
      Ce genre de chose pourrait vraiment roxer des poneys, mais il existe finalement très peu d'alternative viable, je ne m'en plaint pas (sinon c'est vrai que c'est a moi de le faire si j'en ai besoin) par contre je m'en étonne beaucoup.

Suivre le flux des commentaires

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