Implantation d’un framework tolérant aux pannes pour la résolution de cas de
calcul numérique
Présentation générale de l’architecture MCA
Apport de notre modèle formel Les résultats obtenus dans le chapitre 2 ont abouti à la définition des exigences pour une plateforme logicielle de calcul numérique où les transparences de localisation, d’échelle et de concurrence sont respectées. Ainsi, les différents termes π-calcul écrits dans le chapitre 2 se concrétisent par les composants présentées dans ce chapitre (cf. Figure 4.1) : – Le terme CaseDirectory (eq. 2.61) se concrétise par le service MCAService ; – Le terme W orker (eq. 2.64) se concrétise par un agent MCAWorker et le terme W orkerm (eq. 2.37) se concrétise par l’ensemble des agents MCAW orker ; – le terme ComputeAgent (eq. 2.41) se concrétise par un agent mobile de type ComputeAgent ; – Le terme ComputationCase (eq. 2.58) se concrétise par le composant ComputationSpace. Celui-ci est un space et concrétise également les annuaires modélisés par les termes T askDirectory (eq. 2.20), DHDirectory (eq. 2.40) et P ropertyDirectory (eq. 2.49). Le terme M aster (eq. 2.60) est lui concrétisé par un agent mobile d’un type de ComputeAgent. Enfin, le rôle modélisé par le terme CaseHanler (eq. 2.59) se concrétise par les fonctionnalités offertes par l’utilisation d’un space. MCAService ComputationCase JavaSpace ComputeAgent JavaSpace <> <> <> MCAWorker <> WorkSpace <> MCAService <> ComputationSpace <> ComputationCase <> ComputeAgent Figure 4.1 – Diagramme de composants de l’architecture logicielle définie par le framework MCA. Notons que le composant W orkSpace n’a pas été formellement modélisé mais celui-ci est utilisé dans notre architecture pour répondre à une exigence de tolérance aux pannes des agents MCAWorker.
Survol de notre architecture logicielle
Notre framework MCA permet de mettre en place une architecture logicielle dédiée à la résolution de cas de calcul numérique. Chaque cas de calcul est associé à un ComputationSpace qui contient les différents éléments nécessaires à la résolution du cas. L’ensemble des cas de calcul, chacun représenté par un ComputationSpace, forme la plate-forme de calcul MCA. Cette plate-forme est accessible par le service MCAService dont plusieurs instances sont actives afin de rendre ce service tolérant aux pannes. Ce service offre à un utilisateur la possibilité d’ajouter, de récupérer ou de supprimer un cas de calcul de la plate-forme. De plus, les agents MCAWorker se connectent à la plate-forme de calcul par le service MCAService. Ces agents ont alors la possibilité de participer à la résolution d’un cas de calcul via le composant ComputationCase qui joue le rôle de proxy. Si le nombre d’agents MCAWorker connectés à la plate-forme de calcul est supérieur à 113 Chapitre 4. Implantation d’un framework tolérant aux pannes pour la résolution de cas de calcul numérique la demande de ressources de calcul, alors les agents MCAWorker inactifs sont considérés comme disponibles (transparence de localisation). Ces derniers seront utilisés si un cas de calcul venait à demander de nouvelles ressources ou si un nouveau cas de calcul était ajouté à la plate-forme de calcul. La figure 4.2) propose une vue d’ensemble de cette architecture avec les composants ComputationSpace, MCAService et MCAWorker. Une vue plus précise est fournie par la figure 4.16 montrant les communications entre un agent MCAWorker et le service MCAService. ComputationSpace MCAWorker MCAWorker MCAWorker ComputationSpace pool d’agents MCAWorker disponibles Différents types d’entrées Participe au cas de calcul Notifications d’évènements Figure 4.2 – Vue d’ensemble de l’architecture proposée par le framework MCA. Les composants ComputationSpace et WorkSpace (mémoire locale d’un agent MCAWorker ) sont des mémoires partagées, appelées « spaces » (cf. Section 4.3). Ils constituent le socle nécessaire pour rendre l’architecture définie par notre framework MCA tolérante aux pannes. La figure 4.1 présente les différents composants qui communiquent au sein de cette architecture. Enfin, la résolution d’un cas de calcul est réalisée par les agents MCAWorker. Ceux-ci traitent les différentes tâches présentes dans le ComputationSpace associé au cas de calcul. À chaque tâche est associé un agent mobile de type ComputeAgent (cf. Section 4.4.3). Ce dernier contient le code à exécuter pour le traitement d’une tâche. Son aspect mobile lui permet de migrer vers la machine où est exécuté l’agent MCAWorker traitant la tâche. Le code est alors exécuté en local sur la machine de l’agent MCAWorker. La suite du chapitre présente les différents éléments de notre framework en commençant par le socle logiciel sur lequel il se fonde.