Projet Sirac

previous up next contents
Précédent : Logiciels Remonter : Projet SIRAC, Systèmes Informatiques Répartis Suivant : Actions industrielles



Résultats nouveaux

 

Construction d'applications réparties, cf modules [*], [*], [*], [*], [*]

  Mots-clés : programmation par composants, agents, intégration d'applications, configuration, programmation répartie, code mobile, protection, machine virtuelle Java


Résumé : L'objectif est de fournir des outils et services pour le développement et l'exécution d'applications réparties. Deux directions sont actuellement explorées.

1.
Intégration et extension d'applications existantes. Un environnement expérimental de programmation par composants, Olan, a été réalisé. Il permet a) de construire des applications réparties par assemblage de composants, dont certains sont des applications existantes; b) de configurer ces applications à la demande et de les déployer sur des plates-formes d'usage courant. Un langage de description d'architecture décrit la structure globale d'une application, et un environnement d'exécution permet de mettre en place et de faire évoluer l'application. Les travaux en cours portent sur l'usage d'agents pour étendre les fonctions d'une application répartie existante et sur une extension graphique du langage de configuration.
2.
Applications réparties sur l'Internet. Une nouvelle action vise à fournir des services systèmes pour utiliser efficacement l'Internet comme environnement d'exécution d'applications réparties. Ces services concernent la gestion d'objets partagés, la gestion de l'exécution répartie (migration du code et des données), la gestion de la securité. Ces services s'appuient sur une extension logicielle de la machine virtuelle Java.


Intégration et extension d'applications existantes

 

Participants : Michel Riveill , Luc Bellissard , Fabienne Boyer , Vladimir Marangozov , Marie-Claude Pellegrini , Jean-Yves Vion-Dury , Roland Balter .


Le travail a d'abord porté sur la consolidation du modèle de description d'applications et sur la réalisation des outils permettant de mettre en oeuvre ce modèle.

Les éléments du modèle d'assemblage sont intégrés dans un langage de haut niveau, baptisé OCL (Olan Configuration Language), indépendant des langages de programmation. Dans sa définition actuelle, le langage OCL peut être vu comme une extension d'un langage de description d'interface (tel que l'IDL de Corba) à l'aide d'annotations. Le compilateur du langage OCL génère le code des talons (stubs) pour les composants appelant et appelé, le code qui permet d'encapsuler un module logiciel existant (wrapper), et un script d'installation pour le déploiement des composants dans leur environnement d'exécution. L'interprétation de ce script se traduit par l'installation des binaires des composants sur leur site d'implantation et par un certain nombre de contrôles portant sur l'adéquation de l'environnement d'exécution (test de la présence de certaines bibliothèques et/ou de ressources systèmes nécessaires à l'exécution du composant). Cette procédure d'installation semi-automatisée est mise en oeuvre par un protocole ad hoc entre des services de déploiement, disponibles sur chaque site concerné. Ces services constituent globalement la machine à configurations.

Contrairement aux composants utilisés dans la plupart des langages de description d'architecture et dans les calculs sur les processus, les composants du modèle Olan ne sont pas actifs. Nous avons proposé [21] une extension du calcul SCCS afin de déterminer si les interconnexions entre les composants passifs ou actifs indiquées par le programmeur d'application sont licites ou illicites.

Au cours de cette année, le langage OCL a été utilisé pour décrire plusieurs classes d'applications :

Les travaux de développement actuels portent sur la réalisation d'un environnement graphique permettant d'interconnecter de manière visuelle des composants préalablement développés, et sur la génération d'une nouvelle classe de wrappers permettant de rendre plus efficace l'encapsulation des composants.

Les travaux de recherche portent sur la définition du support système nécessaire au changement dynamique de la configuration d'une application. Ce travail est motivé par le besoin de pouvoir arrêter un site, par exemple à des fins de maintenance, tout en permettant à l'application de poursuivre son exécution mais aussi par la nécessité de changer dynamiquement un des composants de l'application, par exemple pour intégrer une nouvelle version de ce module logiciel.

Construction d'applications réparties sur l'Internet

 

Participants : Daniel Hagimont , Sacha Krakowiak , Jacques Mossière , Leila Ismail .


L'axe de recherche décrit ci-dessus ([*]) trouve sa justification dans la nécessité de réduire le coût de construction et d'administration des applications qui s'appuient sur la réutilisation de l'existant. Un axe de recherche complémentaire concerne l'utilisation de l'Internet, et plus spécifiquement du Web, comme support d'exécution de nouvelles classes d'applications réparties. Des modèles d'exécution fondés sur la mobilité du code pour l'accès à des données réparties bénéficient aujourd'hui d'un regain d'intérêt comme en témoigne le développement du langage Java. L'utilisation d'un tel modèle d'exécution pose, de nouveaux problèmes de sécurité et de gestion globale des données et des activités. Ces aspects sont explorés dans une action de Sirac en cours de démarrage.

L'objectif de cette action est de fournir un système de gestion d'objets Java répartis et partagés. Le bénéfice attendu de ce travail est la possibilité de réaliser, à l'aide du langage Java, des applications mettant en jeu des objets partagés et répartis sans souci de la localisation des objets (transparence de la distribution). La mise en oeuvre d'un environnement d'exécution pour ces applications requiert le développement de services pour : a) la désignation des objets Java; b) l'accès à des objets Java répartis, en exploitant conjointement les capacités de l'appel de méthode à distance (RMI) et de mobilité du code; c) la protection des accès aux objets partagés.

Ces services sont réalisés de façon simple à l'aide de classes Java qui constituent des extensions de la machine virtuelle. Ces classes peuvent être téléchargées à la demande sur les sites concernés par une application, ce qui permet de résoudre élégamment le problème de la disponibilité du support d'exécution sur toutes les machines d'un système réparti.

Des résultats sur la protection ont été obtenus en réutilisant dans les environnements Java [17] et Corba [15] le schéma de protection par capacités cachées initialement développé pour la protection des objets dans un espace d'adressage virtuel partagé ([5], [18]). Les expériences réalisées montrent la viabilité de ce schéma de protection, qui doit être intégré au système d'exécution proposé.

Support système pour serveurs d'information, cf modules [*], [*]

  Mots-clés : gestion de mémoire, grappes, clusters, capacités, cohérence de caches, mémoire virtuelle répartie, SCI


Résumé : L'objectif est de fournir des services génériques et efficaces pour la construction de serveurs d'information extensibles, sur des grappes de machines homogènes (clusters fortement couplés ou stations de travail interconnectées par un réseau rapide). Deux voies sont explorées :

1.
Services de gestion de mémoire. Un service de gestion de mémoire, Arias, a été réalisé sur AIX (voir [*]). Il s'appuie sur une mémoire virtuelle partagée répartie et utilise des protocoles de gestion de mémoire adaptables en fonction des caractéristiques des applications. Les mesures montrent que cette souplesse d'utilisation est compatible avec de bonnes performances. Les applications visées sont les serveurs d'information reposant sur le partage de données (serveur de fichiers, serveur Web, serveur de bases de données).
2.
Services système pour réseaux de communication rapides. On explore l'utilisation de la technologie d'interconnexion SCI (Scalable Coherent Interface) pour construire des services efficaces de gestion de mémoire sur des serveurs en grappes. SCI permet de réaliser une communication directe entre deux mémoires distantes, avec un haut débit et une faible latence. Une plate-forme expérimentale est en cours de mise en place.


Services de gestion de mémoire

 

Participants : Xavier Rousset de Pina , Christian Jensen , Olivier Lobry .


Le projet Sirac développe depuis deux ans un service de gestion de mémoire, Arias, pour des serveurs réalisés sur des grappes de machines. Ce service, intégré au système d'exploitation Unix-AIX, a été utilisé pour la construction d'un système réparti de gestion de fichiers, CFS (Cluster File System). Ce système est destiné à des applications qui doivent manipuler une quantité importante de données (serveurs et gérants de cache pour le Web, bases et entrepôts de données).

Le travail réalisé dans ce domaine en 1997 a porté sur les points suivants.

Services systèmes pour réseaux de communication rapides

 

Participants : Xavier Rousset de Pina , Jean-Philippe Fassino , Povl Koch , Sacha Krakowiak .


L'année 1997 a vu le démarrage d'un travail visant à explorer les possibilités d'un réseau d'interconnexion utilisant l'interface SCI (Scalable Coherent Interface) pour la réalisation de serveurs performants.

L'intérêt de l'interface SCI est la communication directe de mémoire à mémoire. Cette capacité a été jusqu'ici peu exploitée, l'interface SCI ayant surtout été utilisée pour les communications avec les organes d'entrée-sortie. SCI permet de réaliser un ``couplage'' (mise en correspondance) entre des zones de mémoire de machines distantes, permettant l'écriture à distance au moyen de simples opérations d'écriture locale, avec une faible latence.

L'objectif du travail sur SCI est de construire une couche logicielle permettant l'exploitation efficace de ce mode de communication en vue de la gestion globale de ressources sur un serveur en grappes. Il est prévu de fournir les fonctions suivantes.

En octobre 1997, une plate-forme de 6 stations de type PC reliées par SCI est en cours de mise en place, et une première spécification générale du système est en cours d'élaboration. Parallèlement, des contacts sont pris avec les autres projets de l'INRIA travaillant sur les grappes de machines (projets Apache, CAPS, Remap), en vue de coordonner les recherches dans ce domaine.

Gestion de la mobilité dans l'Internet, cf module [*]

 

Participants : Claude Castelluccia , Xavier Delord .


Mots-clés : réseaux sans fil, mobilité, IPv6, IP Mobile, qualité de service


Résumé : Au début de l'année 97, le projet Sirac a lancé une nouvelle activité de recherche qui vise à fournir des services pour la gestion flexible de la mobilité afin d'accroître les performances et la souplesse d'utilisation de stations mobiles accédant à l'Internet dans le contexte de réseaux sans fil. Les travaux ont porté plus particulièrement sur les problèmes posés par la gestion de la mobilité dans la couche IP.


Le point de départ des études en cours est le protocole Mobile IP, défini par l'IETF (Internet Engineering Task Force). Dans sa définition actuelle, ce protocole permet à un utilisateur de rester accessible et connecté à l'Internet quelle que soit sa localisation physique. L'objectif est d'étendre ce protocole aux environnements mobile hétérogènes. La contribution du projet Sirac en 1997 a porté sur les points suivants :

Par ailleurs, en liaison avec les moyens informatiques de l'UR, le projet Sirac s'est doté en 97 d'un réseau expérimental IPv6, connecté au réseau d'expérimentation français, le G6, lui-même connecté au réseau international 6Bone. L'objectif de cette plate-forme est, d'une part de tester en vraie grandeur les nouvelles fonctionnalités du protocole IPv6, et d'autre part de se doter d'un environnement expérimental pour nos travaux de recherche sur la gestion de la mobilité dans l'Internet. A cet effet il est prévu d'implémenter dans un futur proche le protocole IP Mobile sur la souche IPv6 développée à l'Inria.



previous up next contents Précédent : Logiciels Remonter : Projet SIRAC, Systèmes Informatiques Répartis Suivant : Actions industrielles