Bonjour

Actuellement j'ai une application c# qui contient un web service déployé en tant que service host et un autre composant qui permet de communiquer avec des équipements externes en TCP
Le web service et l'autre composant tourne sous le même processus windows (le même exe).
Mon objectif est de séparé les 2 à savoir un process qui contiendra le web service déployé en tant que service host et un second exécutable contenant le second composant évoqué ci-dessus.
J'ai trois contraintes:
  • le web service est amené à demandé un type d'information au second composant
  • le second composant est amené à être instancier sur plusieurs serveurs
  • temps de réponses rapides car le web service entre ce dernier et le second composant (qui seront sur le même réseau) est appelé par des clients d'où le mode synchrone


Je me suis dit que le web service peut communiquer avec le second composant via une file de message synchrone (même si je sais que c'est plutôt utilisé pour des communications asynchrones). D'après la documentation de MSMQ il est possible d'envoyer un message sur plusieurs files MSMQ.
Mes questions sont les suivantes:
  • est-ce que c'est la bonne façon de procéder ? i.e. en utilisant les files de messages. Sinon quelle est selon vous la meilleure façon de procéder ou simplement si vous avez une autre approche du problème (utilisation de Socket sous forme de client/serveur où le client est mon web service et le serveur est mon second composant)
  • est-ce que vous avez des retours d’expériences sur le fait d'envoyer des messages sur différentes files et si il y a des points sur lesquels il faut être particulièrement vigilant ?




Bien évidemment je ne demande pas de code ni de solution toute faite . L'objectif est juste de partager une réflexion sur ce genre de problématique.