Projet Solidor

previous up next contents
Précédent : Logiciels Remonter : Projet SOLIDOR, Construction de systèmes Suivant : Actions industrielles



Résultats nouveaux

Résumé : Nous indiquons ici nos résultats de cette année pour les thèmes de recherche introduits dans le paragraphe [*]. Succinctement, ces thèmes abordent :

Parallèlement aux activités énoncées, nous avons obtenu des résultats dans le cadre d'activités en cours d'achèvement ou d'élaboration. Les résultats de ces activités sont donnés dans le paragraphe [*].


Architectures logicielles pour systèmes distribués

 

Participants : Christophe Bidan , Erwan Demairy , Valérie Issarny , Siegfried Rouvrais , Titos Saridakis , 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 trois axes complémentaires :

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

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

Du point de vue de la spécification de propriétés d'exécution, nous avons débuté une étude sur la spécification conjointe de propriétés d'interaction et de propriétés de qualité de service [24]. Toutefois, nos principaux résultats portent sur la spécification de 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é non-fonctionnelle considérée. Ceci facilite par conséquent l'analyse des architectures sachant qu'un de nos objectifs est à terme d'examiner la cohérence des différentes vues d'une architecture.

En l'état actuel de nos travaux, nous nous sommes principalement concentrés sur 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 disponibilité. 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 [39,19]. Concernant la spécification de propriétés de tolérance aux fautes, nous examinons la définition d'une méthode de spécification qui permette une décomposition récursive de ces propriétés. Une telle décomposition permet d'identifier les mécanismes élémentaires de tolérance aux fautes nécessaires à la garantie d'une propriété de disponibilité donnée [35].

Applications

Du point de vue de l'utilisation de notre méthode de construction de systèmes pour des applications concrètes, nous avons examiné deux classes d'applications : les applications de télécommunication et les applications à base d'agents mobiles dans un environnement Web.

Notre approche s'avère adaptée pour la construction d'applications de télécommunication car elle satisfait en grande partie les spécifications de l'architecture de calcul de TINA (Telecommunication Intelligent Network Architecture), au niveau de l'organisation du système distribué (ou environnement d'exécution distribuée suivant la terminologie TINA). Nos travaux fournissent en outre une base de solution au traitement des propriétés non fonctionnelles devant être fournies par l'environnement d'exécution aux applications TINA[32].

L'exécution d'applications à base d'agents mobiles requiert de prendre en compte les caractéristiques des divers environnements d'exécution au sein desquels un même agent peut être amené à s'exécuter. Notre solution à la spécification de propriétés d'exécution permet d'aborder de manière rigoureuse l'adéquation d'un environnement d'exécution pour exécuter un agent en fonction de leurs exigences respectives en ces termes [34].

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 Aster de description d'applications en terme d'interconnexion de composants logiciels, qui permet d'associer des propriétés d'exécution relevant de la qualité de service et du protocole de communication, aux composants ;
(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.

Un premier prototype de l'environnement Aster est opérationnel depuis l'été 1996. Nos travaux de cette année dans ce contexte ont porté sur l'enrichissement des bases de données utilisées par le prototype et plus spécifiquement de celles mémorisant respectivement les spécifications de propriétés non fonctionnelles et les composants logiciels système implantant des fonctions de gestion de la distribution. Nous avons d'une part proposé une organisation conjointe des bases de propriétés et de composants système de manière à optimiser le processus de recherche des composants système nécessaires à l'adaptation du système de communication au besoin d'une application [33]. Nous avons par ailleurs mis en oeuvre des composants système particulier, s'exécutant dans un environnement CORBA. Nous avons plus précisément réalisé un composant de courtage qui est utilisé pour la réalisation d'un système distribué adapté à un système de fichiers construit par interconnexion de serveurs de fichiers distribués. Nous avons également implanté un service de reconfiguration dynamique d'applications distribuées.

Définition d'une plate-forme d'exécution pour applications à contraintes temps réel dur

 

Participants : Emmanuelle Anceaume , Michel Banâtre , Sylvain Benoît , Frédéric Bonnet , Gilbert Cabillic , Pascal Chevochot , Benoît Dupin , Mathias Herberts , Isabelle Puaut


Nos travaux sur la définition d'une plate-forme d'exécution pour applications à contraintes temps réel dur visent à fournir une plate-forme exploitable pour une large gamme d'applications distribuées temps-réel à sûreté critique, à partir de composants logiciels et matériels standard. Nos études sur ce thème ont porté sur différents aspects complémentaires :

Nous précisons ci-après nos résultats sur chacun de ces points.

Eléments de définition de la plate-forme d'exécution

De manière à permettre l'utilisation de HADES par une large gamme d'applications distribuées temps-réel à sûreté critique, les services offerts ont été divisés en deux catégories [37] : (i) les services dédiés à un domaine d'application propre, c'est-à-dire, dépendants des caractéristiques exhibées par les tâches des applications distribuées temps-réel à sûreté critique ; (ii) les services offrant des propriétés partagées par un large éventail d'applications.

La première catégorie est constituée des services propres aux politiques d'ordonnancement qui doivent être mises en jeu pour exécuter les tâches applicatives. Les propriétés offertes par de tels services sont totalement dépendantes des caractéristiques des tâches applicatives, à savoir leur loi d'arrivée, leurs priorités, leur mode de préemption, ou encore leur mode d'accès aux ressources. À titre d'exemple, HADES fournit des politiques d'ordonnancement statiques et dynamiques (e.g. Earliest Deadline First (EDF), Rate Monotonic (RM)) ainsi que des politiques d'ordonnancement à base de calendrier. La seconde catégorie de services offerts par HADES regroupe un large éventail de services exhibant des propriétés de robustesse partagées par un grand nombre d'applications. Des exemples de tels services sont l'allocation de tâches, la détection de fautes, les primitives de communication de groupe fiables en temps borné, la synchronisation d'horloges, ou encore les mécanismes de surveillance.

Sélection des composants standards

Afin d'implanter une maquette des services fournis par HADES, des critères de sélection d'un système d'exploitation destiné à servir de base pour les expérimentations ont été définis [45]. Ils concernent principalement la prévisibilité des appels au noyau et la fourniture d'un ordonnanceur compatible avec les contraintes de flexibilité d'HADES. Une action est dite prévisible si ses résultats et sa durée d'exécution pire cas peuvent être prévus avant son exécution. Généralement, les constructeurs de noyaux temps-réel "sur étagère" ne fournissent aucune garantie sur la prévisibilité de leur noyau. Face à cet état de fait, il a été nécessaire d'accomplir un examen approfondi du code source d'un système d'exploitation temps-réel sur étagère pour vérifier d'une part sa prévisibilité et d'autre part son module d'ordonnancement. Cette étude, réalisée sur le noyau Chorus, nous a permis d'isoler un sous-ensemble de modules prévisibles adaptés à nos exigences temporelles.

Concernant le choix d'un environnement matériel pour les expérimentations, nous avons évalué l'adaptation de la technologie ATM aux applications embarquées temps-réel à sûreté critique.

Définition de services

Les premiers services offerts par HADES ont été spécifiés [37]. Les principaux services sont (i) un service d'exécution de tâches flexible, dans le sens où il peut être utilisé pour l'exécution d'applications construites avec des modèles de tâche différents (tâches périodiques ou sporadiques, avec ou sans partage de ressources) ; (ii) un service de surveillance de l'exécution des applications, permettant de vérifier en cours d'exécution des propriétés sur l'exécution des applications (e.g. respect des échéances temporelles, détection des terminaisons précoces des processus et récupération des ressources ainsi libérées). Les travaux en cours portent sur la définition d'autres services à fournir par HADES, incluant des services de tolérance aux fautes compatibles avec les échéances temps-réel des applications [41], des services de communication temps-réel et un service de synchronisation des horloges [38].

Systèmes pour machines clientes

 

Participants : Michel Banâtre , Valérie Issarny , Frédéric Leleu ,


Notre activité sur le thème des systèmes pour machines clientes est jusqu'ici orientée vers l'optimisation du temps de réponse des applications en fournissant des solutions au niveau de ces machines plutôt qu'à celui des serveurs. Nous nous sommes plus spécifiquement intéressés à la conception d'un système d'anticipation des accès.

Système d'anticipation des accès 

Une solution connue à l'optimisation du temps de réponse d'une application consiste à anticiper les accès réalisés par cette application afin de minimiser le temps d'accès à des données distantes. Une telle solution a été exploitée avec succès à différents niveaux de l'architecture d'un système (e.g. processeur, gestion mémoire, gestion de fichiers). Elle a plus récemment été mise à profit dans le contexte du Web via la mise en oeuvre d'une politique d'anticipation au sein des serveurs. Toutefois, si l'anticipation des accès par les serveurs conduit à une optimisation du temps de réponse des requêtes des clients, elle s'accompagne d'un surcoût de communication non négligeable et d'une surcharge du serveur, ce qui est pénalisant dans un environnement Internet. L'étude des différentes politiques existantes d'anticipation des accès pour le Web et leur évaluation nous ont amenés à proposer une nouvelle politique non pas au niveau du serveur mais du client [8]. Cette politique est en outre dédiée à une classe d'application particulière qui donne accès à un document structuré, consulté de manière régulière et dont le contenu change périodiquement (e.g. journal électronique, service météo, service boursier, ...).

Le type de service considéré permet d'identifier un profil pour chaque client qui caractérise la séquence d'accès au service qui est réalisée par le client à chaque session. La connaissance de ce profil peut ensuite être exploitée pour anticiper les accès au service pendant une session, en fonction de l'accès en cours. Par ailleurs, l'utilisation d'une méthode statistique fondée sur les cartes de contrôle permet d'affiner la précision de l'anticipation des accès en détectant rapidement les changements de profil d'un client.

La mise en oeuvre de la politique d'anticipation des accès proposée, nous a conduits à étendre le protocole HTTP et à proposer un système de gestion mémoire particulier.

Le protocole HTTP est enrichi de manière à supporter des connexions persistantes entre le client et le serveur pendant la durée d'une session, ainsi que des requêtes avec priorité. Le premier enrichissement reprend une extension proposée par ailleurs, et le second est introduit afin de minimiser l'impact de la politique d'anticipation sur les performances en cas d'anticipation erronée. L'introduction de priorités permet de suspendre une requête correspondant à une anticipation, lorsque l'utilisateur demande un accès non anticipé à une donnée.

Le système de gestion mémoire consiste à gérer la libération des emplacements mémoire non pas en fonction d'une politique traditionnelle mais en fonction de l'anticipation des accès. Les emplacements libérés sont ceux qui contiennent des données pour lesquelles l'accès n'est pas anticipé au regard de l'accès courant.

Systèmes pour services distribués à grande échelle

 

Participants : Laurent Amsaleg , Michel Banâtre , Manuel Billot , Boris Charpiot , Paul Couderc , Valérie Issarny , Anne-Marie Kermarrec , Jean-Marc Menaud ,


Nos travaux sur le thème de la construction de systèmes pour services distribués à grande échelle se concentrent sur l'optimisation du temps de réponse de ces services dans un contexte Internet. Le système Internet peut ici être vu comme un système distribué où nous devons toutefois intégrer deux facteurs supplémentaires : l'échelle du système et l'hétérogénéité des composants qui oblige à fournir des solutions adaptables à différents environnements d'exécution. Nous étudions deux approches complémentaires à l'optimisation du temps de réponse, l'une indépendante des services et l'autre intégrant les comportements des utilisateurs du service.

Solutions indépendantes des services 

Nos travaux sur l'optimisation du temps de réponse des services, indépendamment des caractéristiques de ces derniers, ont porté sur la conception d'un système de caches Web. Les systèmes existants ont pour inconvénient majeur de générer un surcoût de communication et de la charge au niveau des serveurs du système de caches, pour un taux de réussite faible. Ceci nous a conduits à proposer une nouvelle approche à la construction d'un système de caches coopératifs qui ne souffre pas des inconvénients énoncés. Notre solution s'appuie sur une répartition équitable des informations relatives au contenu des caches du système entre ces différents caches. Nous pouvons alors avoir connaissance de la présence ou non d'une donnée dans l'un des caches du système en un nombre minimal d'échanges de messages et en limitant le nombre de caches accédés.

Solutions spécifiques aux services 

Notre approche à l'optimisation du temps de réponse des services en fonction de leurs spécificités consiste à concevoir des systèmes de placement de données en fonction du comportement des utilisateurs d'un service. Nous nous intéressons plus spécifiquement à deux types de comportement : la stabilité des accès au service par l'utilisateur d'une session à l'autre, et la possible mobilité géographique des utilisateurs.

La stabilité des accès d'un utilisateur permet de concevoir une politique de répartition de charge qui tire profit de cette caractéristique. Le principe est de regrouper les utilisateurs réalisant des accès similaires de manière à distribuer les groupes de clients sur les sites hébergeant le service, conduisant ainsi à un équilibrage de la charge mémoire et processeur des différents sites. Notre premier travail dans ce cadre a consisté en la définition d'un algorithme de regroupement dynamique de clients qui s'appuie sur la technique de data mining.

La mobilité géographique des utilisateurs doit être prise en compte si l'on veut offrir un service performant quelque soit leur localisation. Une solution est de placer les données du service en fonction de la localisation de ses utilisateurs réguliers et de leurs habitudes d'accès. Nous avons récemment débuté une étude dans ce sens où les problèmes soulevés incluent :

Autres résultats

 

Système hautement disponible pour applications multimédias

 

Participants : Michel Banâtre , Manuel Billot , Valérie Issarny , Isabelle Puaut


La gestion des ressources des applications à flux continu s'appuie généralement sur un modèle de réservation de ressources. À notre connaissance, les modèles de réservation proposés dans la littérature s'intéressaient uniquement au respect des contraintes temporelles des applications, abordant ainsi uniquement un seul type de contraintes de qualité de service. Nous avons introduit une extension d'un modèle existant de manière à également prendre en compte les exigences de disponibilité des applications [6].

Considérant une application implantant un service multimédia, la disponibilité de l'application se décompose en deux critères : (i) le respect des contraintes temporelles de l'application et (ii) l'accessibilité du service, lesquels doivent être garantis en la présence de défaillance. Notre solution à ces deux points s'appuie sur la notion de ressource fiable qui intègre la fiabilité comme paramètre de réservation des ressources et qui implante un mécanisme de réplication de manière transparente.

Nous avons par ailleurs expérimenté notre solution à la disponibilité des applications multimédias à flux continu en l'intégrant à un service de vidéo à la demande [21].

Système pour réseau sans fil

 

Participants : Françoise André , Christine Morin , Maria-Teresa Segarra ,


La prise en compte des contraintes particulières des environnements mobiles nés de la combinaison des réseaux sans fil et de la mobilité des ordinateurs conduit à reconsidérer les mécanismes des systèmes distribués traditionnels. Nos travaux de cette année ont porté d'une part sur la spécification de mécanismes système adaptés à l'exécution d'applications en environnement mobile et, d'autre part, sur leur expérimentation dans le cadre d'une application relevant du commerce électronique.

À terme, notre objectif est de concevoir une couche middleware placée entre un système d'exploitation classique et les applications pour traiter des problèmes spécifiques à un environnement mobile (eg. cohérence des données en présence de déconnexions, mobilité des sites, adaptation à des réseaux sans fil hétérogènes, ...). Dans ce cadre, nous étudions plus particulièrement la conception de mécanismes et de stratégies de migration de processus et de données adaptées aux environnements mobiles.

Administration de réseaux et systèmes distribués

 

Participants : Stéphane Billiart , Christine Morin , Akhil Sahai


Nous nous intéressons à l'apport des technologies de l'Internet pour les systèmes d'administration de réseaux et systèmes distribués. Nos travaux s'articulent autour de deux axes. Le premier concerne la conception d'un environnement d'administration système fondé sur le Web. Le second a trait à la conception d'un environnement d'administration réseau fondé sur la technologie d'agent mobile. Ces deux volets de nos travaux sont détaillés ci-après.

Conception d'un outil d'administration système par le Web

Nous avons conçu et réalisé un outil, appelé AstroWeb, pour l'administration système de la plate-forme d'expérimentation Astrolab, composée de plusieurs stations de travail hétérogènes exécutant différents systèmes d'exploitation (AIX, Solaris, Linux, NetBSD, Windows NT), et interconnectées par un réseau ATM [20]. L'originalité de notre mise en oeuvre est de réaliser les tâches d'administration depuis n'importe quelle station du réseau, de manière uniforme, quel que soit le système utilisé et pour toutes les fonctions disponibles d'une part et pour faciliter l'intégration de services d'administration existants et l'ajout de nouvelles fonctionnalités d'autre part. Pour satisfaire ces contraintes, AstroWeb s'appuie sur une interface par HTTP et un navigateur Web. Le choix des utilitaires d'administration est laissé à l'administrateur, ceux-ci étant directement interfacés avec les scripts CGI de l'environnement AstroWeb. L'environnement AstroWeb utilise une machine centrale d'administration (hôte de confiance) hébergeant un serveur Web qui donne accès à toutes les requêtes d'administration et qui les distribue sur les machines concernées. AstroWeb a été développé en PERL et est actuellement utilisé pour l'administration de la plate-forme Astrolab.

Environnement d'administration de réseaux fondé sur la technologie d'agent mobile

L'objectif de ces travaux est d'évaluer la technologie d'agent mobile pour les environnements d'administration de réseaux [30]. Cette technologie permet de distribuer les applications d'administration ce qui a pour effet de diminuer la charge de la plate-forme d'administration et de réduire l'utilisation du réseau de communication, ainsi que de permettre l'administration à partir de portables [29]. En outre, la flexibilité des agents permet de faire évoluer dynamiquement l'environnement d'administration. À titre d'exemple, pour l'observation périodique des valeurs des paramètres du réseau, les agents autorisent des fréquences plus élevées que les architectures traditionnelles client/serveur. En effet, l'agent peut séjourner sur l'élément observé pendant toute la durée d'observation ce qui évite des transmissions de requêtes à travers le réseau coûteuses en temps et rend la fréquence d'échantillonage indépendante de la charge de la plate-forme d'administration. De plus, par un filtrage local des données, la charge du réseau peut être sensiblement réduite.

Nous avons conçu et réalisé un environnement d'administration de réseau qui s'appuie sur l'environnement d'exécution d'agents mobiles "Magenta". Une évaluation de performance est en cours pour mesurer les gains obtenus par rapport à une architecture client/serveur. Plusieurs agents d'administration ont été développés : installation d'un logiciel, audit du réseau, étude du comportement d'un élément du réseau.


previous up next contents Précédent : Logiciels Remonter : Projet SOLIDOR, Construction de systèmes Suivant : Actions industrielles