-
Problème Client Serveur
Salut !
J'ai développé une application client/serveur, dont la communication est assurée par Spring RMI, le Client est une simple JFrame contenant en haut, un barre de menu (ajout, modification, suppression), au milieu une JTable, et en bas un formulaire avec le quel on peut ajouter et modifier les données.
le serveur assure seulement le lien avec une base de données, reçois la demandes des clients, et leurs envois les résultats.
jusqu'ici tout marche bien, sauf :
1) Quand un utilisateur ajout/modifié/supprime une ligne de la JTable, les autres utilisateurs ne voient pas les changement jusqu'à cliquer sur un bouton afin d'assurer la mise à jour des données de la JTable.
Y-a-il un moyen afin que la mise à jour se fera en temps réel, sans intervention explicite des utilisateurs ? (j'ai entendu parler sur le design pattern Observer/Observable, ou bien callback, mais je n'ai pas trouvé de code qui marche).
2) Lorsque plusieurs utilisateurs essaient de modifier par exemple la même ligne, seuls les changement apporté par le dernier utilisateur sont prisent en compte, ceux des autres sont peut-être ignorer.
J'ai entendu parler sur l'Optimistic Locking, mais je n'ai pas réussit à trouver un exemple qui marche.
Bien Cordialement
-
Bonjour,
Les objets écoutables (Observer/observable) sont un bon moyen de faire en sorte que ta frame se mette à jour toute seule en écoutant ton modèle de données.
Une simple recherche sur le site te fera remonter pas mal de post concernant ce pattern.
Cela dit, je pense qu'il faut que tu rajoutes un push server pour mettre à jour les données depuis ton serveur, c'est à dire que celui ci envoie la nouvelle donnée à tous les clients connectés sur lui.
La il faut que ton serveur sache qui est connecté sur lui.
Concernant le verrouillage de la bdd lors d'une modification, je pense qu'il faut mieux gérer ca avec ta bdd (transaction et verrous), mais la je me trompe probablement.