Il y a un projet sur lequel je travaille qui cherche à produire une application Web qui gérera une liste de tâches entre plusieurs utilisateurs. Il s'agit d'une liste de tâches principale dont les éléments de tâche sont distribués par un utilisateur autorisé. Chaque utilisateur a son propre compte pour se connecter et voir les tâches qui lui sont assignées; il est possible pour plusieurs utilisateurs d'avoir une seule tâche en commun.
J'essaie de laisser les détails du projet en dehors de cela car je m'attaque davantage au concept global de la façon de gérer les situations suivantes, mais si cela aide, j'utilise Java, EclipseLink et GWT avec RequestFactory implémenté. La base de données est PostgreSQL.
Les problèmes conceptuels que j'essaie de concilier sont donc les suivants:
Si une seule tâche commune à plusieurs utilisateurs change de quelque manière que ce soit, par exemple une tâche terminée, supprimée, etc., la liste des tâches de tous les utilisateurs qui ont cette tâche sera mise à jour. Quels sont les modèles de conception qui aident à mettre en œuvre cette fonction?
- Certains modèles que j'ai examinés sont Observateur et Médiateur - y en a-t-il d'autres qui devraient être pris en compte par rapport à ceux-ci?
Supposons que deux utilisateurs modifient la même tâche en même temps.
Premièrement, dois-je permettre que cette situation se produise ou dois-je mettre un verrou dessus jusqu'à ce que l'une ou l'autre personne ait fait des changements?
Deuxièmement, si je ne mets pas de verrou dessus, comment puis-je concilier les modifications à accepter? Cela implique la situation en 1 car l'utilisateur 1 pourrait soumettre les données et avant que l'utilisateur 2 ne reçoive les données mises à jour, il / elle peut avoir avancé et soumis ses modifications.
Je suis vraiment à la recherche de points de repère, de conseils ou de conseils que vous pouvez fournir sur la façon de synchroniser correctement les données entre plusieurs instances de cette application Web. Je l'apprécierais beaucoup!