4

Je suis en train de mettre en œuvre un projet java où plusieurs modules découplés interagissent avec un service partagé (base de données/service web).Modèle de conception pour le module qui vérifie en permanence si d'autres modules du système fonctionnent?

Il existe un module de vérification de l'intégrité qui interroge en permanence tous les modules pour voir s'ils fonctionnent ou non. Si un module est inactif ou ne fonctionne pas correctement, le module Vérificateur d'intégrité effectue une réparation et le redémarre.

De quel modèle de comportement appartiendrait-il?

Répondre

2

Le Health Checker doit essentiellement garder une trace de tous comment les autres modules travail.

Ainsi, le vérificateur de santé peut être une observation pour les changements et donc vous pouvez aller avec Observer Design Pattern. Les modules doivent contenir une méthode qui doit notifier le Vérificateur d'intégrité chaque fois qu'il y a un changement.

Pour conserver la ressource partagée dans le contrôle, vous pouvez utiliser Design Pattern ou la gestion des ressourcesSingleton Pattern Design.

Vous pouvez également lire ce blog MSDN qui traite d'un type d'application similaire dont vous parlez.

Un autre modèle de conception similaire peut être this.

+2

Vous n'êtes pas sûr que Observer soit ici. Je pense que le modèle Observer est l'endroit où un module notifie les observateurs, alors qu'ici le vérificateur de santé interroge les autres modules, n'attendant pas d'être notifié par eux. – ajb

+0

@ajb. Oui. Ma faute. Changé ma réponse. –

0

Je ne recommanderais pas d'observateur dans ce cas. Dans le cas où vous n'avez pas de notifications, vous ne pouvez pas faire la différence entre un module brisé et un module de travail qui ne crée pas d'événements. Healthchecker doit utiliser le planificateur et interroger chaque module de temps à autre.

Il est à la fois plus facile d'écrire et fonctionne mieux.