Projet Solidor

previous up next contents
Précédent : Composition de l'équipe Remonter : Projet SOLIDOR, Construction de systèmes Suivant : Fondements scientifiques



Présentation générale et objectifs

 

Résumé : De façon générale, un système d'exploitation distribué peut être vu comme un logiciel complexe qui assure l'exécution d'applications au-dessus d'architectures matérielles composées de calculateurs et de média de communication. Aujourd'hui, force est de constater que les évolutions conjointes des architectures (puissance des processeurs, débits des réseaux,...) alliées à l'apparition de nouvelles applications orientées "grand public" génèrent sans cesse de nouveaux problèmes, relatifs au temps de réponse, à la sécurité ou encore à la disponibilité, pour lesquels des solutions doivent être apportées au niveau du système d'exploitation. L'activité de recherche du projet Solidor porte sur la mise en évidence et la recherche de solutions à ces nouveaux problèmes, à partir de l'étude d'applications significatives et des évolutions technologiques [*].

La construction d'un système distribué peut se faire suivant deux approches :

La première approche est à privilégier car son niveau d'abstraction permet une meilleure compréhension du comportement du système, éventuellement au travers de l'emploi de méthodes formelles. Il s'ensuit qu'elle facilite la construction de systèmes distribués corrects. Une telle approche n'est toutefois pas toujours exploitable ; elle requiert la maîtrise des fondements système exploitables pour satisfaire les contraintes des applications. En particulier, elle ne s'applique pas directement lorsque l'on est confronté à la gestion d'un nouveau composant matériel par le système puisque l'on ne connaît pas le comportement du système au regard de l'utilisation de ce nouveau composant. C'est pourquoi les activités de recherche du projet Solidor portent sur la construction de systèmes distribués suivant les deux approches considérées: descendante et ascendante. Dans le premier cas, il s'agit de fournir des méthodes et outils facilitant la construction de systèmes distribués corrects en exploitant les avantages de l'approche descendante. La construction de systèmes suivant l'approche ascendante découle de l'étude de solutions aux problèmes soulevés en particulier par la popularité croissante de l'Internet pour diverses applications. Il nous semble en effet crucial d'apporter des solutions systèmes dans ce domaine pour résoudre les problèmes qui se posent quant à l'extensibilité et aux temps de réponse des services. L'approche ascendante est ici nécessaire car l'extensibilité d'un système reste encore un facteur difficilement maîtrisé pour lequel il n'existe pas de réel fondement contrairement aux facteurs de disponibilité, fiabilité, performance, sécurité et de temps-réel.


Approche descendante à la construction de systèmes

Nos travaux relevant de l'approche descendante à la construction de systèmes distribués ont pour but de fournir des méthodes et outils facilitant la construction de systèmes corrects. A cette fin, nous exploitons la notion d'architecture logicielle. Les objectifs de ce travail sont introduits dans le paragraphe [*]. La construction de systèmes distribués à partir de la notion d'architecture logicielle conduit à développer un système par assemblage d'un système de gestion de distribution élémentaire avec des services implantant des fonctions systèmes élaborées (e.g., fonctions de tolérance aux fautes). Ce système élémentaire et les services associées constituent la définition d'une plate-forme d'exécution. Notre approche est par conséquent applicable lorsque l'on considére des applications pour lesquelles il existe effectivement une définition de plate-forme d'exécution adaptée. C'est en particulier le cas des applications distribuées privilégiant l'interopération grâce à des standards comme l'OMA (Object Management Architecture) de l'OMG (Object Management Group) ou TINA (Telecommunication Intelligent Network Architecture) de TINA-C (TINA-Consortium). Nous trouvons en revanche des applications pour lesquelles il n'existe pas de définition de plate-forme d'exécution satisfaisante, notamment les applications ayant des contraintes temps-réel dur. Ceci nous a conduits à proposer une telle définition pour ce dernier domaine d'applications, un besoin fort ayant été exprimé par les concepteurs de ces applications. La définition de plate-forme d'exécution en résultant comprend un noyau de système d'exploitation temps-réel et un ensemble de services pour le temps-réel tolérant aux fautes. Les objectifs de ce travail sont précisés dans le paragraphe [*].

Architectures logicielles pour systèmes distribués

  La construction d'un système distribué dans sa globalité reste difficilement maîtrisée et s'appuie sur des méthodes de conception et de développement rudimentaires. Or, si l'on considère que le système distribué est crucial pour le bon fonctionnement du système informatique, il est essentiel de promouvoir des méthodes de conception facilitant le développement de systèmes distribués qui soient corrects. Dans cette perspective, nous avons entrepris une étude sur la construction de systèmes distribués à partir de la notion d'architecture logicielle afin d'en faciliter le développement. Notre approche consiste à identifier les composants d'un système distribué adapté à une application donnée à partir de la description de l'architecture logicielle de cette dernière. Notre contribution dans ce cas est la proposition d'une solution à la spécification des propriétés d'exécution fournies par un système, lesquelles se subdivisent en (i) propriétés d'interaction caractérisant le protocole de communication mis en oeuvre par le système (e.g. modèle client/serveur) et (ii) propriétés de qualité de service (ou non fonctionnelles) caractérisant les politiques de gestion des ressources distribuées. La spécification des propriétés d'exécution permet ensuite d'appréhender la construction d'un système distribué particulier par interconnexion d'un système de communication et de composants logiciels implantant des mécanismes de gestion de la distribution de telle sorte que la conjonction des propriétés d'exécution fournies par ces différents éléments satisfait les exigences, en termes de propriétés d'exécution, de l'application visée. Nos travaux dans ce domaine s'articulent autour de trois axes complémentaires : la spécification de propriétés d'exécution de différente nature, l'étude de différents domaines d'applications distribuées ayant des contraintes fortes de qualité de service pour évaluer pratiquement l'intérêt de notre approche et, toujours dans un souci d'évaluation pratique, la mise en oeuvre d'un environnement de développement réalisant notre approche.

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

  Depuis trente ans, les applications issues du domaine du temps-réel à sûreté critique sont en pleine expansion. A titre d'exemple, citons les fusées et les systèmes de contrôle de vol pour le domaine spatial, les opérations boursières pour le domaine financier, les équipements de haute technologie dans le domaine médical. Concevoir des systèmes d'exploitation capables de supporter de telles applications est une tâche difficile en raison d'une qualité de service qui se décline en trois propriétés dépendantes. Tout d'abord, de tels systèmes doivent être hautement fiables de façon à garantir des probabilités de défaillance comprises entre 10-4 à 10-10 par heure de fonctionnement. Deuxièmement, de tels systèmes doivent satisfaire une exigence de promptitude en raison des temps de réponse typiques exigés : de 1 ms à 100 ms selon le type d'application considéré. Enfin, ils doivent garantir qu'en dépit des exécutions concomitantes des tâches applicatives, la cohérence des données soit assurée. Mettre en oeuvre cette qualité de service est complexe, ce qui explique que les solutions existantes sont dédiées à un domaine d'application, voire à une application donnée. Ces systèmes sont non flexibles, construits à partir de matériel spécialisé, et nécessitent un développement logiciel spécifique, ce qui les rend non réutilisables dans un autre contexte, tant logiciel que matériel.

Dans le but de diminuer significativement le coût global de telles solutions, notre objectif est ici de définir une plate-forme d'exécution distribuée, nommé HADES, offrant des services de base nécessaires à la majorité des applications distribuées embarquées temps-réel à sûreté critique. Les fonctionnalités de base offertes par ces services (e.g. politiques d'ordonnancement, communications fiables en temps borné, surveillance) permettent de décharger le concepteur d'application des détails de bas niveau pour se concentrer sur son application proprement dîte.

Approche ascendante à la construction de systèmes

Nos travaux relevant de l'approche ascendante à la construction de systèmes ont pour but de fournir des solutions à l'optimisation du temps de réponse des applications Internet où le facteur d'extensibilité est essentiel. Deux thèmes d'étude complémentaires sont entrepris dans ce cadre : l'étude de solutions au niveau des machines clientes et des services Internet. Nous précisons nos objectifs de recherche pour ces deux thèmes dans les deux paragraphes suivants.

Systèmes pour machines clientes

La construction de systèmes distribués suivant le modèle client-serveur s'est longtemps cantonnée à des études au niveau du serveur. On admet que le système d'exploitation de la machine cliente soit en général un système standard qui n'offre aucune fonctionnalité spécialisée quant à la gestion des ressources. Les évolutions technologiques conduisent à repenser cette vision. Nous identifions différentes raisons à cela :

Toutes ces raisons motivent pleinement l'utilisation de machines clientes pour l'exécution concurrente d'applications couvrant à la fois le domaine du multimédia, l'accès à des services Internet ou encore des applications bureautiques. Des systèmes d'exploitation sont par conséquent nécessaires afin d'avoir une gestion optimisée des ressources dont la capacité reste limitée au regard de celle des serveurs. Par ailleurs, afin de supporter la disponibilité des applications, il est nécessaire que le système de la machine cliente offre des fonctions masquant la défaillance du serveur à fournir un service. Cette défaillance peut être due à une déconnexion physique, à une surcharge du serveur, voire à une défaillance effective de ce dernier.

Notre travail dans le domaine de la construction de systèmes pour machines clientes s'est jusqu'ici concentrée sur la conception d'une politique d'anticipation des accès adaptée au domaine spécifique des services en ligne. Nous envisageons à terme d'examiner la construction de systèmes d'exploitation adaptés à de tels machines.

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

L'utilisation sans cesse croissante de l'Internet et en particulier du Web, donne lieu à l'émergence de divers services distribués multimédias dans cet environnement. Toutefois, la popularité de l'Internet fait oublier l'absence de la qualité de service fournie aux applications et en particulier celle relative au temps de réponse assuré aux utilisateurs des services. Anticipant ce besoin, nous avons entrepris la conception de systèmes distribués, à partir de composants standard, permettant d'optimiser les performances à l'exécution des services au-dessus d'Internet. Nous examinons plus précisément deux classes de systèmes complémentaires : les systèmes indépendants des caractéristiques des services applicatifs et des systèmes spécialisés pour certains services.

Du point de vue de la conception de systèmes distribués, indépendants des services Internet, nous nous intéressons à la définition d'infrastructures génériques pour optimiser les temps de réponse. Nous nous sommes jusqu'ici concentrés sur la conception d'un système de caches Web qui optimise les solutions existantes en termes des coûts de communications et de la charge des serveurs induits.

Concernant la conception de systèmes spécialisés pour des services spécifiques, nous examinons plus particulièrement les systèmes de placement de données au regard du comportement des utilisateurs des services.



Notes:

...technologiques
Une contribution du projet, dans le domaine des systèmes d'exploitation, en 1997, est la venue de la conférence ACM SOSP (Symposium on Operating Systems Principles) à Saint-Malo. En étroite concertation avec le professeur Hank Levy (précédent président de l'ACM SIGOPS), le projet Solidor en a été l'instigateur et l'organisateur. Par le passé, cette conférence, considérée comme la référence dans le domaine des systèmes d'exploitation, s'était toujours déroulée aux Etats-Unis depuis 32 ans qu'elle existe. Le déroulement de SOSP en France a ainsi contribué au rapprochement des communautés européenne et américaine dans un domaine aussi stratégique que celui des systèmes d'exploitation.



previous up next contents Précédent : Composition de l'équipe Remonter : Projet SOLIDOR, Construction de systèmes Suivant : Fondements scientifiques