Projet : SOLIDOR

previous up next contents
Précédent : Résultats nouveaux Remonter : Résultats nouveaux Suivant : Environnement pour le développement et


Sous-sections


   
Architectures logicielles pour systèmes distribués

 

Participants : Erwan Demairy, Valérie Issarny, Christos Kloukinas, Siegfried Rouvrais, Titos Saridakis, Petr Tuma, Apostolos Zarras.

Notre activité sur le thème des architectures logicielles pour systèmes distribués a pour objectif de fournir des méthodes et outils facilitant la construction de systèmes distribués corrects. Notre approche s'appuie sur la construction de systèmes à partir de la description de l'architecture logicielle d'une application qui intègre la spécification des propriétés d'exécution devant être fournies par le système. Le système est ensuite construit par spécialisation suivant la technologie middleware, les composants d'un système donné étant identifiés à partir de la description de l'architecture de l'application. Nos travaux dans le domaine des architectures logicielles pour la construction de systèmes distribués s'articulent autour de deux axes complémentaires qui sont :

Nous précisons ci-après les résultats obtenus dans chacun de ces domaines.

Spécification de propriétés d'exécution

Succinctement, les propriétés d'exécution d'un système distribué se subdivisent en propriétés d'interaction caractérisant le protocole de communication, et en propriétés de qualité de service (ou propriétés non fonctionnelles). Jusqu'ici, nous nous sommes plus spécifiquement concentrés sur la spécification des propriétés de qualité de service.

Pour que notre approche à la construction de systèmes distribués soit applicable à des configurations d'applications réelles, nous devons fournir une méthode de spécification de propriétés de qualité de service qui sera ensuite exploitée pour l'introduction de nouvelles propriétés. A cette fin, nous considérons indépendamment les principales classes de propriétés d'un système distribué relevant en particulier de la disponibilité, de la sécurité, des temps de réponse garantis ou encore du contrôle de la concurrence. Notons que ces classes de propriétés ne sont pas indépendantes dans la pratique. Toutefois, nous avons choisi de ne pas les considérer conjointement pour différentes raisons : (i) cela nous permet de proposer des résultats concrets plus rapidement, (ii) la construction de systèmes distribués adaptés aux applications du point de vue d'une seule classe de propriétés constitue à elle seule une contribution pratiquement intéressante, (iii) les classes de propriétés évoluent continûment au gré de l'émergence de nouvelles classes d'applications. Par ailleurs, cette approche conduit naturellement à la définition de différentes vues d'une architecture logicielle, au regard de la propriété de qualité de service considérée. Ceci facilite par conséquent l'analyse des architectures.

En l'état actuel de nos travaux, nos principaux résultats ont trait à la spécification de classes de propriétés relevant de la sûreté de fonctionnement et plus précisément de la sécurité-confidentialité (simplement qualifiée de sécurité par la suite) et de la tolérance aux fautes. Notre solution au traitement de propriétés de sécurité s'appuie sur la composition de politiques de sécurité, permettant ainsi de raisonner sur l'interaction entre applications ayant différentes exigences de sécurité ainsi que sur la mise en \oeuvre de politiques de sécurité complexes à partir de celles de politiques élémentaires [[1]]. Concernant la spécification de propriétés de tolérance aux fautes, nous avons proposé une méthode de spécification qui permet une décomposition récursive de ces propriétés. Cette décomposition conduit à exhiber le raffinement d'une architecture au regard des propriétés de tolérance aux fautes fournies, et ainsi à caractériser une architecture incluant des mécanismes de tolérance aux fautes disponibles dans l'environnement de développement [[24]]. Outre l'étude de propriétés de sûreté de fonctionnement, nous avons également commencé à examiner les propriétés relatives à deux classes d'applications particulières: les applications multimédias et les applications à base d'agents mobiles.

Dans la mesure où nous examinons la spécification des propriétés d'une architecture logicielle de manière indépendante, il est nécessaire de proposer une solution à leur combinaison afin d'être à même de traiter des applications distribuées réelles. Nous avons débuté une étude sur ce point [[14]], notre solution s'appuyant sur la composition de vues architecturales.

Expérimentation

À des fins d'expérimentation, nous avons entrepris la conception et la construction de l'environnement de développement Aster réalisant notre approche. Celui-ci comprend:
(i)
le langage de description d'architectures Aster qui permet de décrire des applications en terme d'interconnexion de composants logiciels, incluant la spécification des propriétés d'exécution requises par les composants pour leurs interactions;
(ii)
un ensemble d'outils logiciels d'aide à la construction de systèmes distribués, adaptés aux applications, à partir de la description Aster de ces applications et en particulier des propriétés d'exécution spécifiées. Ces outils incluent un outil de sélection systématique de services fournissant des propriétés de qualité de service au regard des exigences de l'application, et un outil de configuration automatique de systèmes distribués spécialisés.

Nos travaux de cette année concernant le prototype de l'environnement Aster ont principalement porté sur la conception et la mise en \oeuvre d'un outil pour la configuration automatique d'un système distribué spécialisé pour une application, étant donnés une plate-forme de communication de base (ou bus logiciel) et un ensemble de services fournissant des propriétés d'exécution [[26]].



previous up next contents
Précédent : Résultats nouveaux Remonter : Résultats nouveaux Suivant : Environnement pour le développement et