2009-07-17 5 views
0

Pour le problème rencontré, voir le titre. Un certain «service de calcul» (cpu intensive) est servi aux clients de la manière suivante: toutes les demandes clients vont à une machine qui gère la file d'attente et - lorsqu'un serveur ou un processeur est libre dans le cluster - transmet la requête à un serveur d'applications java. Le serveur d'applications utilise ejb pour la gestion de son flux de travail et, à un moment donné dans le flux de travail, le service de calcul doit être appelé (*). Les résultats du calcul sont gérés dans le flux de travail.Serveur de files d'attente -> serveurs d'applications Java -> cluster de serveurs de calcul

Questions: - l'appel au service de calcul doit être une RMI ou existe-t-il d'autres options? - quels produits supportent cette architecture "out of the box" (pour ainsi dire). (*) Il est appelé en tant que programme Java autonome, qui utilise JNI en interne.

Répondre

1

N'importe quelle forme de RPC fera l'affaire. RMI est une bonne solution, mais je préfère utiliser Spring Remoting. Il vous permet de définir une interface et d'injecter une implémentation de cette interface qui permet de faire le travail à distance. Je pense que cela conviendrait parfaitement à ce que vous voulez faire.

+0

Pensez-vous que Spring Remoting nécessite le cadre Spring complet ou peut-il être utilisé indépendamment? – Gerard

+0

Le Spring Framework est décomposé en modules. Vous en auriez besoin, mais pas tous. – GaryF

0

Les instances du serveur de calcul peuvent toutes être écoutées dans la même file d'attente. Lorsqu'ils sont prêts pour un nouveau calcul, ils lisent un élément de la file d'attente, font le travail et placent la réponse dans une file d'attente de réponses.

Ceci est un moyen très simple d'activer un certain nombre de moteurs pour répondre aux demandes. Les caractéristiques de disponibilité du système de files d'attente doivent être comprises et contrôlées.

Le moteur de workflow doit envoyer la requête au serveur de calcul, puis attendre sa réponse. Cela implique que le moteur de flux de travail dispose d'une sorte de fonctionnalité de "pause pour événement externe". Comme les flux de travail peuvent aussi raisonnablement attendre que les humains répondent aux questions, c'est une caractéristique assez courante.

Il existe au moins un moteur de flux de travaux commerciaux qui fonctionnerait naturellement de la sorte.

+0

Il existe au moins un ... c'est-à-dire lequel voulez-vous dire? – Gerard

Questions connexes