Il s'agit d'un système d'application client/serveur.Algorithme de synchronisation de l'ordre des entrées
L'application de la partie client peut passer en mode hors ligne et se synchronise parfois avec le serveur. (comme GMail offline)
Plus d'un client peut se connecter au serveur, ainsi chaque client peut ajouter, éditer et supprimer ses entrées et synchroniser ces changements comme SVN (la collision peut se produire, mais ce n'est pas un problème.)
L'algorithme pour ajouter, modifier et supprimer des entrées est trivial. Le serveur peut créer un identifiant unique pour chaque nouvelle entrée et les clients utilisent ces identifiants pour la mise à jour et la suppression.
La nouvelle exigence est la commande d'entrées.
Il existe deux applications client - x, y. Et ils les entrées enregistrées - A, B, C et D. Ces entrées tableau comme DRASA, de sorte que la propriété de l'ordre de A est 4, B est 3, C est 2 et D est 1.
- x: DCBA: A (4), B (3), C (2), D (1)
- y: DCBA: A (4), B (3), C (2), D (1)
client y créer une nouvelle entrée E entre D et C
- x: DCBA: A (4), B (3), C (2), D (1)
- y: D-E-C-B-A: A (5), B (4), C (3), D (1), E (2)
Après la synchronisation du client avec le serveur.
- x: DECBA: A (5), B (4), C (3), D (1), E (2)
- y: DECBA: A (5), B (4) , C (3), D (1), E (2)
Comment puis-je synchroniser ces informations de commande?
* Essai complémentaire *
Cient x enlever D et C, mais le client y créer une nouvelle entrée E entre D et C.
- x: BA: A (2) , B (1)
- y: DECBA: A (5), B (4), C (3), D (1), E (2)
Après la synchronisation. CBA:: A (5), B (4), C (3), D (1), E (2)
- x , C (3), D (1), E (2)