5 votes

Quelle est la meilleure façon d'informer les clients d'une mise à jour ?

Ok, du côté serveur il y a une application de bureau qui est utilisée pour insérer des informations dans une base de données (nouvelles, images, etc.) et j'ai des clients qui recueillent ces informations de la base de données et les stockent dans leur XML local.

Ainsi, chaque client télécharge les nouvelles de la base de données et les affiche.

Le problème est de savoir comment je peux informer les clients de l'existence d'une mise à jour.

Ma solution

J'ai pensé utiliser un fichier de base de données comme UpdateID, et à chaque mise à jour de données dans la base de données UpdateID devrait être incrémenté de +1, puis chaque client devrait avoir un attribut UpdateID dans leur XML, et vérifier si leur UpdateID correspond à l'UpdateID du serveur, si non, c'est une nouvelle mise à jour. À chaque mise à jour réussie, les clients doivent placer l'UpdateID du serveur dans leur UpdateID XML.

Existe-t-il un meilleur moyen d'y parvenir ?

PS : La couche de re-présentation des données que j'utilise est un service WCF.

7voto

Avada Kedavra Points 3127

Je pense que le modèle de traction que vous proposez est probablement la solution la plus simple à mettre en œuvre et la plus directe au problème. Sachant que vous utilisez des webservices WCF, vous avez cependant la possibilité de mettre en œuvre un modèle push en utilisant WCF Callbacks . Dans ce modèle, vous écrivez des contrats de service comme d'habitude, mais ici les clients s'enregistrent eux-mêmes sur le serveur. Lors de la mise à jour des données sur le serveur, celui-ci appelle une fonction de rappel pour tous les clients enregistrés, qui répondent en récupérant les nouvelles données.

L'application de démonstration typique de ce modèle est un système de billetterie, où les billets sont réservés et libérés fréquemment. Cette approche élimine la nécessité pour les clients d'interroger constamment le serveur.

L'article intitulé Éliminer l'interrogation du serveur avec les Callbacks WCF donne plus de détails sur le sujet et s'accompagne également d'un exemple de système de billetterie. Cet article décrit également cette méthode.

Je ne dis pas que c'est mieux que ce que vous proposez vous-même, mais cela peut valoir la peine de s'y intéresser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X