IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Architecture Discussion :

Partage de document


Sujet :

Architecture

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 16
    Points
    16
    Par défaut Partage de document
    Bonjour,

    Je suis sur le développement d'un logiciel qui ordonne un graphe avec exécution des nœuds en local ou à distance.
    Ce logiciel est développé en Python et j'utilise ZMQ pour les briques réseau.

    Je cherche des ressources sur le partage de documents - ala Google docs ou équivalent. Mais je ne trouve rien, d'où la tentative sur ce forum, en espérant être dans la bonne rubrique.
    Il doit sûrement y avoir de l'information quelque part, mais je n'ai pas encore trouvé les mots clés magiques.

    Pour être plus précis sur mes intentions :

    J'ai un logiciel pour éditer des graphes.
    Je cherche à partager l'état du graphe quand d'autres personnes éditent le même graphe de leurs côtés, en "temps réels".

    Dans mes premières implémentations, je modifie directement le graphe :
    - l'UI détecte le changement et se met à jour entièrement
    - pour l'undo/redo, je sauvegarde le graph dans son intégralité

    Même avec des graphes complexes pour notre usage, la sérialisation ASCII en JSON ne dépasse pas les 500 ko.
    La réactivité de l'UI est largement suffisante - quelques millisecondes - et en contrôlant la taille de la pile des undo, je n'ai jamais explosé la mémoire.
    Jusque là, la méthode brusque de traiter l'ensemble du graph comme un état est simple et efficace.

    Dès que je suis passé sur la fonctionnalité de document partagé, en revanche, cela a commencé à être problématique.
    Je n'ai plus un utilisateur hystérique qui clic et déplace ces nœuds dans le graph (2-3 actions par seconde, je n'ai pas de mesures précises sur ce point ), mais 5 ou 6 en même temps, tous sous intraveineuse de caféine.
    Sur des petits graphes d'une dizaine de nœuds, tout va bien. Sur des graphes plus complexes d'une centaine de nœuds, je perds en fluidité.
    L'UI commence à le ressentir, et je pense surtout que mon goulot d'étranglement est le réseau.

    J'arrive aux limites de l'approche "état complet du document".
    Car même si l'utilisateur effectue une action sur un couple de nœuds, je me trimballe l'ensemble du graphe.
    Idem pour un undo qui me recharge tout.

    Je suis donc passé par l'approche Command
    Je n'édite plus le graphe directement, je construis une commande qui édite le graphe.
    Et je fais passer la commande par le réseau.

    Alors en test avec deux utilisateurs, cela va très bien, même avec un graphe volontairement gigantesque.
    Je vous épargne les problématiques de débutant : une boucle/ping-pong entre les deux utilisateurs me modifiant le document à l'infini.

    Mais dès que je monte le nombre d'utilisateurs, l'ordonnancement des commandes pose problème.
    Par exemple : le déplacement d'un nœud d'un utilisateur distant - commande réseau - qui a été supprimé entre l'émission et la réception - commande locale

    J'ai envisagé de faire un hashing de mon document, pour être sûr d'avoir le même état avant d'appliquer une commande.
    Mais que faire si justement je n'ai plus le même état...

    Je pense être sur la bonne piste par rapport à la "performance" réseau, mais il me manque des "briques" sur la partie synchronisation.
    Je suis donc à la recherche de documentations, d'exemples à étudier, de pistes sur ce genre de fonctionnalités.

    Merci de votre aide

    Stéphane

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    ma question ne doit pas être sur le bon forum, ou je n'ai pas correctement exprimé ma problématique.
    Pouvez vous m'indiquez un channel plus approprié, ou pointer les points flous ?

    Merci de vos retours

    SteF

Discussions similaires

  1. MSN Partage de documents avec un groupe
    Par Daniel_10 dans le forum Messagerie instantanée
    Réponses: 7
    Dernier message: 16/09/2008, 21h37
  2. [eZ Publish] quel CMS pour intranet partage de document ?
    Par tiamat dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 01/03/2008, 21h41
  3. Partage de documents
    Par suckthewindow dans le forum SharePoint
    Réponses: 1
    Dernier message: 02/01/2008, 15h26
  4. partage de documents
    Par jakkihm dans le forum Windows XP
    Réponses: 6
    Dernier message: 03/05/2007, 01h01
  5. [WS] pb avec favoris réseau et partage de documents
    Par bennadji amina dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 14/11/2005, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo