Précédent : Logiciels Remonter : Projet SOLIDOR, Construction de
systèmes Suivant : Actions industrielles
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 :
- la construction de systèmes distribués suivant une approche descendante, au travers de deux activités portant respectivement sur l'exploitation de la notion d'architecture logicielle pour faciliter le développement de systèmes corrects (§
) et sur la définition d'une plate-forme d'exécution pour applications à contraintes temps-réel dur (§
).
- la construction de systèmes distribués suivant une approche ascendante afin d'apporter des solutions aux problèmes d'extensibilité et de temps de réponse posés par l'utilisation d'Internet. Nous menons ici deux activités qui ont respectivement trait à la construction de systèmes pour machines clientes (§
) et pour services distribués à grande échelle (§
).
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
.
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.
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].
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].
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.
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.
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.
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.
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.
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.
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.
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 :
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].
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.
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.
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.