previous up next top index
Précédent : Action de recherche Remonter : Action de recherche Suivant : Protection et noyaux de sécurité


Architectures à métaobjets et tolérance aux fautes

  Participants : Jean-Charles Fabre, Tanguy Pérennou, Françoise Cabrolié, Cyril Delamare, Marc-Olivier Killijian, Arnaud Ladrech, Frédéric Melle, Frédéric Salles

Le développement d'applications tolérantes aux fautes nécessite la définition et l'intégration aisée de mécanismes permettant de mettre en oeuvre des caractéristiques méta-fonctionnelles (redondance, authentification, chiffrement, communication à distance). L'utilisation de techniques de développement orienté-objet présente de multiples intérêts, tant au niveau de la conception que de la mise en oeuvre. En particulier, la propriété de réflexivité de certains langages à objets présente un triple avantage :

Le développement d'applications réparties mêlant des mécanismes de tolérance aux fautes et de sécurité-confidentialité en suivant cette approche fait l'objet de nos travaux actuels. Nous l'avons abordé sous deux angles :

Un modèle d'architecture de système basé sur une utilisation récursive des métaobjets a été défini. L'expérimentation de cette architecture a été effectuée sur un réseau de stations Unix et aussi sur un réseau de stations Chorus. Le protocole à métaobjet utilisé est celui d'Open C++ et les protocoles de groupe utilisés sont ceux fournis par le logiciel xAMp. Nous avons pu constater la souplesse d'intégration procurée par cette approche, en premier lieu, l'indépendance entre la programmation de l'application et la programmation des mécanismes utilisés, et aussi la possibilité de changer de mécanisme sans incidence sur le code source de l'application. Ces prototypes proposent sous forme de métaobjets différents types de mécanismes de tolérance aux fautes (mécanismes à support stable et différents mécanismes de réplication) ainsi que des mécanismes de sécurité (authentification, chiffrement). Une application répartie de type bancaire a été développée pour évaluer la flexibilité de l'approche. Tous les cas de composition possibles des métaobjets existant à différents métaniveaux ont été testés avec succès.

Les performances du système ont pu être mesurées et ont montré que l'interaction objet-métaobjet était négligeable par rapport aux fonctionnalités de tolérance aux fautes proprement dite (coût des communications de groupe par exemple).

La conception des mécanismes de tolérance aux fautes a été effectuée en utilisant la méthode de développement orienté-objets BON et a permis de définir une hiérarchie de classes (au sens de l'héritage) en vue de leur réutilisation. Une première hiérarchie de mécanismes de tolérance aux fautes a été définie : elle a montré que l'on pouvait factoriser ces mécanismes et donc favoriser la réutilisation de classes de base et leur spécialisation.

Une analyse des dépendances entre métaniveaux (partage d'information, par exemple), des limites de l'approche à métaobjet ainsi que de son utilisation à plusieurs niveaux a été effectué. Elle a montré que si l'indépendance des métaniveaux pouvait être obtenue à l'utilisation, il n'y avait pas indépendance totale lors de la conception des métaobjets. En particulier il existe une dépendance forte entre les mécanismes répartis de tolérance aux fautes et la gestion des communication de groupe. La paramétrisation du metaniveau de communication a été étudiée et limités à quelque variables partagées.

Ces travaux et les résultats obtenus ont été concrétisés dans la thèse de Tanguy Pérennou.

Les prospectives de ce travail concernent l'évaluation de cette approche ainsi que son extension à des support d'exécution à objet standard d'une part et à d'autres caractérisques méta-fonctionnelles. Un souci tout particulier sera porté sur la réutilisation des mécanismes, l'étude d'un protocole à métaobjet plus efficace et moins figé.

Le fait de disposer aujourd'hui d'un prototype complet du système proposant au programmeur un ensemble de bibliothèques de classes de métaobjets permet d'évaluer l'approche selon différents points de vue :

Enfin, de premières investigations sur l'utilisation de support d'exécution répartis d'objets, tel que COOL-ORB (au standard CORBA), l'intégration d'un protocole à métaobjet dans ce type de support seront engagées. L'utilisation d'autres langages de programmation et aussi la prise en compte de modèles de calcul moins contraignants sera étudiée (primitives d'intéraction asynchrone, concurrence intra-objet). Enfin, nous étudions aussi des mécanismes d'injection de faute par logiciel dans des micro-noyaux pour analyser leur comportement en présence de fautes; la définition des mécanismes de tolérance aux fautes en dépendent fortement. Des expérimentations seront menées sur Chorus.



previous up next top index Précédent : Action de recherche Suivant : Protection et noyaux de sécurité Remonter : Action de recherche