designDiffuser un message aux clients
Un agent serveur conserve le vote DB (SQL Server 2012) pour trouver s'il y a un changement d'horaire et/ou configuration requise pour l'agent client. L'agent client s'exécute sur toutes les machines du réseau et doit obtenir une planification et une configuration d'analyse mises à jour à partir de l'agent serveur et mettre à jour son planificateur de travaux. L'agent serveur et l'agent client sont tous deux construits en Java.
problème Déclaration
Server pour envoyer des données à un nombre n d'agents clients une fois DB est mis à jour.
Solution1
Créer webservices sur les agents de serveur et client et consomment l'autre. Chaque fois qu'il y a un changement dans la planification/configuration d'analyse dans la base de données, le serveur appelle la méthode de l'agent client et met à jour les fichiers de configuration.
Inconvénient Solution1
Dans runnable JAR, deploy Axis2/Jetty/webserrver similaires sur tous les agents clients. Considérant ceci est le déploiement de serveurs Web sur tous les agents clients où le nombre peut aller jusqu'à 150000, est-ce conseillé? En outre, s'il existe des serveurs Web sur toutes les machines clientes, l'application peut-elle effacer la certification de sécurité?
Solution2
Utilisez RMI pour communiquer entre le serveur et le client. Dans ce scénario, le client conservera le serveur d'interrogation car la communication RMI est unidirectionnelle. L'utilisation d'appels bidirectionnels doit être évitée car elle implique de nouveau des sockets de serveur sur chaque machine client.
Inconvénient Solution2
Chaque fois que DB est mis à jour, il ne peut pas envoyer directement un message à toutes les machines clientes. Il doit attendre que l'ordinateur client l'interroge. Dans le cas où une analyse immédiate est requise, tous les agents clients devront fréquemment interroger l'agent maître. est-ce conseillé étant donné que le nombre d'agents clients peut être énorme? Un autre inconvénient informé par Java architecte est que RMI est plus lent que webservice. Est-ce exact?
Je dois choisir l'une de ces deux solutions OU s'il y a une troisième solution que vous pouvez me donner. Une personne a également suggéré JMS comme moyen de diffusion.
Notre équipe d'architectes a mis au point une solution en ayant Webservice uniquement sur l'agent serveur et tous les agents clients conserveront périodiquement l'agent serveur d'interrogation. De cette façon, il évite d'avoir Webserver sur tous les agents distants. JMS a également été considéré. C'est l'une des meilleures solutions. Cependant, étant donné que la solution donnée répond à toutes les exigences du projet, le JMS a été négligé. Merci pour votre réponse si. Cela nous a encouragés à débattre et à analyser davantage. –