Bonjour à tous,

Je viens de développer un logiciel web et je souhaite que les utilisateurs puissent avoir un système online et offline (car utilisation future sur Windows, via des Surface, Android et iOS).
Plusieurs utilisateurs utiliserons le même logiciels avec un accès au mêmes données pouvant être ajoutées, modifiées et/ou supprimées.

Mais comment mettre en place ce système de synchro ?

Exemple :

Utilisateur A (connecté) : Il modifie une personne A à 11h (modification prise en compte tout de suite)
Utilisateur B (non connecté) : Il modifie une personne A à 11h30 (modification mise en attente pour être mise lors de la prochaine connexion)
Utilisateur A (connecté) : Il modifie une personne A à 11h45 (modification prise en compte tout de suite)
Utilisateur B (connecté) : Il se connecté à 12h, comment je fais pour savoir qui prendre en compte, car si les informations ne sont pas les mêmes ou que l'un à mis des infos plus pertinantes que l'autre ?

Des infos ? Des idées ?

Car là je suis totalement perdu et je ne comprends pas du tout comment fonctionne un système de synchro.

D'autre en ont mis en place avant moi, dont Google, Evernote ... Mais comment cela fonctionne.

Je suis en train de m'arrachez les cheveux et déjà que j'en ai pas beaucoup ...

Merci d'avance pour vos réponses

5 réponses


il te faut

  • stocker l'heure a laquelle l'utilisateur a récupéré les données.
    • stocker la date de dernière modification de l'objet.
    • si l'heure de recup est < a l'heure de dernière modif tu affiche un message et demande a l'utilisateur de verifier et confirmer qu'il veut ecraser l'objet.

Ok je stock déjà la date de modif en base de données pour dire à l'utilisateur qui a fait quoi et quand

Et le systeme de Google et des autres, ils fonctionnent comment ?

Je pense que tu devrais créer un fichier Json, et lorsque qu'il n'est pas connecté, toutes les infos sont sur le jSon, et quand il se connecte tout est telecharger en Base de donnée

Merci pour l'idée.
D'autres en ont ? Histoire que je puisse avoir divers points de reflexion

J'ai trouvé ce billet (en anglais) où l'auteur à justement eu cette longue réflexion : http://ianhowson.com/file-synchronisation-algorithms.html

Mais sinon pour ma propre reflexion, j'aurais dit comme arnich :)