Darche Philippe Maître de conférences, IUT de Paris 5

Documents pareils
Évaluation et implémentation des langages

IFT2255 : Génie logiciel

Conception des systèmes répartis

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Patrons de Conception (Design Patterns)

NFP111 Systèmes et Applications Réparties

RTDS G3. Emmanuel Gaudin

UML (Paquetage) Unified Modeling Language

Analyse,, Conception des Systèmes Informatiques

CH.3 SYSTÈMES D'EXPLOITATION

Pentaho Business Analytics Intégrer > Explorer > Prévoir

Développement d un interpréteur OCL pour une machine virtuelle UML.

CORBA. (Common Request Broker Architecture)

LA VIRTUALISATION. Etude de la virtualisation, ses concepts et ses apports dans les infrastructures informatiques. 18/01/2010.

Éléments de programmation et introduction à Java

Eric Bertrand 08/11/06 Maître de conférence 1

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Planifier la migration des applications d entreprise dans le nuage

Virtual Data Center d Interoute. Prenez la main sur votre Cloud.

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Le test automatisé des applications web modernes

Quels outils pour prévoir?

Vérifier la qualité de vos applications logicielle de manière continue

Notes de mise à jour. 4D v11 SQL Release 2 (11.2) Notes de mise à jour

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Cours en ligne Développement Java pour le web

Environnements de développement (intégrés)

La technologie Java Card TM

Lutin Laboratoire des Usages en Technologies

Cours 1 : La compilation

MEAD : temps réel et tolérance aux pannes pour CORBA

FLEXIBILITE CONTINUITE LIAISON PAR INTERNET SOLUTIONS STANDARD

Intelligence Artificielle Planification

VMWare Infrastructure 3

Ingénierie des Modèles. Méta-modélisation

Accès instantané aux mots et aux locutions Le dictionnaire électronique offre une traduction rapide d'un mot ou d'une locution

Diagrammes de Package, de déploiement et de composants UML

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Résumé CONCEPTEUR, INTEGRATEUR, OPERATEUR DE SYSTEMES CRITIQUES

Programmation par aspect et Machine Virtuelle Virtuelle

Introduction à Microsoft InfoPath 2010

ARCHIVAGE DES BASES DE

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Regard sur hybridation et infogérance de production

Pour chaque projet est indiqué son titre, le ou les laboratoires participants ainsi que le coordinateur

TERMES DE REFERENCE POUR PRESTATAIRE INDIVIDUEL ET CONSULTANT

Module BD et sites WEB

Chapitre I : le langage UML et le processus unifié

Famille IBM WebSphere Application Server

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement

Projet de développement

Workflow et Service Oriented Architecture (SOA)

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Messagerie asynchrone et Services Web

UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE

Introduction aux concepts d ez Publish

La gestion du poste de travail en 2011 : Panorama des technologies

M2S. Formation Management. formation. Animer son équipe Le management de proximité. Manager ses équipes à distance Nouveau manager

Mise en œuvre des serveurs d application

Votre Réseau est-il prêt?

DotNet. Plan. Les outils de développement

L A B U S I N E S S. d a t a g i n f o r m a t i o n g a c t i o n

Cycle de vie, processus de gestion

Transformation IT de l entreprise BPM ET APPROCHE MÉTIER

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

Chapitre 2 - Architecture logicielle et construction d applications client-serveur

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

SECTION 5 BANQUE DE PROJETS

Droits d'usage et mises à jour des logiciels Microsoft - renouvellement - autorisation de signer -

Le cadre des Web Services Partie 1 : Introduction

NS1000 PANASONIC SERVEUR SIP TOUJOURS AU-DELÀ DE VOS ATTENTES DE COMMUNICATIONS UNIFIÉES

Refonte front-office / back-office - Architecture & Conception -

Machines virtuelles Cours 1 : Introduction

Plan d action SMB d une Approche Agile de la BITM Pour les PME

MATHÉMATIQUES ET SCIENCES HUMAINES

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

L I V R E B L A N C P r o t ég e r l e s a p p l i c a t i o n s m ét i e r s c r i t i q u e s M a i n f r a m e, un b e s o i n c r u c i a l

Système d information pour la gestion d un réseau d Université

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Rapport d'analyse des besoins

Pour les entreprises de taille moyenne. Descriptif Produit Oracle Real Application Clusters (RAC)

Mobile OGSI.NET: Grid Computing on Mobile Devices

Contributions à l expérimentation sur les systèmes distribués de grande taille

Meta Object Facility. Plan

Les ressources numériques

AXES DE RECHERCHE - DOMAINE D'INTERET MAJEUR LOGICIELS ET SYSTEMES COMPLEXES

La directive INSPIRE en Wallonie: le géoportail et l infrastructure de diffusion des géodonnées en Région wallonne (InfraSIG(

Le matériel informatique

Prise en compte des ressources dans les composants logiciels parallèles

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Conservation des documents numériques

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Atteindre la flexibilité métier grâce au data center agile

Chapitre I Notions de base et outils de travail

Transcription:

SYSTÈMES RÉPARTIS ET COOPÉRATIFS SRC Girault Claude Professeur, UPMC Cheminaud Marc Maître de conférences, UPMC Darche Philippe Maître de conférences, IUT de Paris 5 Folliot Bertil Professeur, UPMC Gervais Marie-Pierre Professeur, Université de Paris 10 Ilié Jean-Michel Maître de conférences, IUT de Paris 5 Kordon Fabrice Maître de conférences, HDR, UPMC Le Roch Marie-France Maître de conférences, UPMC Nowak Gérard Maître de conférences, UPMC Paviot-Adet Emmanuel Maître de conférences, IUT de Paris 5 Poitrenaud Denis Maître de conférences, IUT de Paris 5 Seinturier Lionel Maître de conférences, UPMC Sens Pierre Maître de conférences, UPMC Vernier-Mounier Isabelle Maître de conférences, UPMC ITA/IATOS Bonnaire Xavier Costes Brigitte Kurinckx Raymonde 1 Mounier Jean-Luc 2 Narboni-Collet Jacqueline 3 Palmeira Guy 4 Perrichon Chantal 5 Varenne Véronique 6 Ingénieur d études, CNRS Adjoint administratif, UPMC Technicienne, UPMC Ingénieur de recherche, UPMC Adjoint administratif, UPMC Technicien, UPMC Ingénieur d'études, CNRS Adjoint administratif, UPMC Personnel temporaire Belkouch Fatima ATER, UPMC Bretelle Bruno ATER, IUT de Paris 5 Cadinot Philippe 1/2 ATER, UPMC Piumarta Ian Post-Doc, B.CNET Touag Athmane 1/2 ATER, Université de Reims Doctorants présents 80 % du temps au LIP6 Ajami Khalil (Girault C./Ilié J.M., 1995) Arantes-Bezerra Luciana (Folliot B., 1996) Blanc Xavier (Gervais M.P., 1998) Boutros-Saab Céline (Girault C., 1997) Collard Damien (Minoux M., 1998) Khoury Christian (Folliot B., 1999) Klai Kais (Girault C./Ilié J.M., 1998) Muscutariu Florin (Gervais M.P.,1998) Regep Dan (Kordon F., 1998) Tnazefti Insaf (Girault C., 1995) Doctorants présents moins de 80 % du temps au LIP6 Baillarguet Carine (Folliot B., 1999) Bouaziz Philippe (Girault C., 1999) Calvet Jean-Thierry (Girault C., 1998) Dorta Santiago Pereira (Girault C., 1996) Patarin Simon (Folliot B., 1999) Quinot Thomas (Kordon F., 1999) Richer Nicolas (Folliot B., 1997) Associés au LIP6 Bari Moncef Professeur associé, Université de Montréal (CRIM) Boufaida Mahmoud Professeur associé, Université de Constantine Popentiu Florin Professeur associé, Londres Rifflet Jean-Marie Professeur associé, Université de Paris 7 1. Mi-temps, partagée entre les thèmes ANP, SRC et RP 2. Partagé entre l UFR 922, le LIP6 et le thème SRC 3. Partagée entre l UFR 922 et le thème SRC 4. Partagé entre les thèmes ANP, SRC et RP 5. Partagée entre ANP, ASIM, SRC et RP 6. partagée entre les thèmes ANP, SRC et RP 263

Invités au LIP6 Buchs Didier Professeur invité, École Polytechnique Fédérale, Lausanne (Suisse) (janvier 1998) Donatelli Susanna Professeur invité, Université de Turin (Italie) (février 1998) Druschel Peter Professeur invité, (mai 2000) Hamacher Carl Professeur invité, Université de Queen (Canada) (janvier 1997) Moldt Daniel Professeur invité, Université d'hambourg (Allemagne) (mars 1997) Scherson Isaac Zwaenepoel Willy Professeur invité, (juin 1999) Professeur invité, Université d'irvine Californie (USA) (janvier à juin 1997) 264

SRC PROSPECTIVE L évolution conjuguée de la technologie des télécommunications et de la structure des organisations conduit à l émergence d applications réparties de grande complexité. Pour conquérir des marchés industriels, ces applications doivent être novatrices, mais sûres et efficaces. Les applications doivent s exécuter sur une grande variété d architectures, de systèmes, et de réseaux. De plus l environnement d exécution relève de domaines d organisation multiples, avec des objectifs, des politiques d usage et de gestion et des contraintes différentes. Les problèmes d interopérabilité, de coopération correcte et d adaptation efficace aux environnements d exécution contribuent fortement à la crise actuelle de développement des systèmes. Les besoins instantanés des applications et leurs supports d exécution évoluent si rapidement que seule une adaptation dynamique est efficace. Les systèmes traditionnels conduisent à accumuler des modules d interface et des serveurs spécialisés. Leur développement devient lourd et coûteux pour une efficacité faible. L adaptation efficace aux environnements d exécution et l extension rapide des fonctionnalités deviennent indispensables pour le développement des applications à large échelle. De nombreux domaines d applications sont critiques (développement matériel, communication, aérospatiale, énergies ). Leur complexité est accrue par la répartition et la coopération de composants hétérogènes, ou encore par l introduction de contraintes temporelles. Le remplacement des processeurs spécialisés ou de composants informatiques embarqués ou enfouis dans les équipements est très onéreux. Leur développement et leur évolution doivent être rapides et sûrs, donc systématisés. Nous voulons donc baser la conception de systèmes et d applications parallèles réparties et coopératives sur de nouveaux concepts et méthodes pour aboutir à la réalisation de nouveaux mécanismes et environnements de développement. Cela nécessite une symbiose entre les axes de recherche sur l interopérabilité, la réalisation de systèmes répartis et la vérification des systèmes. Les objectifs du thème SRC sont d accroître ses compétences méthodologiques et leur synergie dans ces trois axes. Les projets suivants ont été déterminés soit comme des facteurs clés de remise en cause de la conception des systèmes (programmation par aspects, machine virtuelle virtuelle, conception orientée agents d applications ouvertes, vérification formelle de systèmes complexes), soit comme des réalisations ambitieuses pour expérimenter les approches proposées (tolérance aux fautes, synchronisation en temps réel de documents musicaux), soit comme des environnements accélérant la réalisation et la diffusion de systèmes (prototypage rapide de systèmes distribués). La programmation par aspects concerne la programmation de fonctionnalités (mobilité, réplication, synchronisation ) basée sur une architecture de composants réflexive. Elle simplifie la conception en permettant de résoudre différents types de problèmes séparément puis d intégrer leurs solutions. L intégration efficace des aspects nécessite de résoudre de nombreux problèmes de langages et de compilation pour les systèmes répartis. La machine virtuelle virtuelle (MVV) est une architecture cible de l axe précédent. Elle définit et réalise une plate-forme d exécution multi-langages réunissant les propriétés de flexibilité en fonction des environnements matériels et logiciels, d adaptabilité lorsque les besoins changent et d interopérabilité entre des applications écrites dans différents langages pour différents systèmes. La tolérance aux fautes d applications critiques, de longue durée ou à large échelle est cruciale. Les modifications techniques, les mises à jour, les surcharges, les erreurs humaines nécessitent des méthodes de sauvegarde et de reprise. Nous cherchons à adapter leur coût aux besoins effectifs des applications et à exploiter des agents fiables pour choisir dynamiquement les stratégies efficaces en fonction des besoins et des caractéristiques hétérogènes des systèmes et des réseaux. La conception d applications ouvertes a émergé pour supporter l intégration permanente de services sophistiqués et interaction dans de multiples environnements eux mêmes évolutifs en permanence. Leur construction, leur déploiement, leur fonctionnement, leur maintenance posent des problèmes difficiles pour lesquels les solutions actuelles sont jugées insuffisantes par les utilisateurs et coûteuses par les opérateurs de services. Le saut conceptuel visé est de passer en amont de l interopérabilité des composants à celle de leur spécification. La synchronisation en temps réel de documents musicaux répartis vise le travail coopératif à distance de compositeurs et interprètes pour construire et écouter en temps réel de manière cohérente des partitions. Il faut donc assurer l interopérabilité non seulement des logiciels d édition et des formats d échanges mais aussi des périphériques sonores. Quelques points clés sont la gestion extrêmement fine du temps, la spécification de synchronisations multimédia, l élaboration d une sémantique des documents musicaux, le passage à l échelle de l orchestre. La coopération avec l IRCAM est un atout essentiel et les perspectives de valorisation sont importantes. Les méthodes de vérification formelle se sont répandues avec succès dans des domaines d applica- 265

tions critiques (développement matériel, communication, aérospatiale, énergies ) dont la complexité est accrue par la répartition et la coopération de composants hétérogènes, ou encore l introduction de contraintes temporelles. Leur rôle croît dans de nouveaux domaines (systèmes embarqués et enfouis, domotique, commerce électronique, objets "intelligents" ). Le coût de ces méthodes limite cependant leur utilisation. Notre objectif est de diminuer leur complexité en réussissant la synergie de plusieurs approches telles que la définition de nouveaux formalismes, la composition et la réduction des modèles, la réduction de leurs graphes d états, l adaptation de la vérification aux propriétés demandées. Programmation par aspects La programmation par aspects (AOP pour Aspect Oriented Programming) est un style de programmation radicalement novateur qui a pour but d intégrer et de configurer de façon souple les différentes fonctionnalités d une application. C est un enjeu majeur pour les applications système du futur qui tendent à incorporer de plus en plus de composants. Les aspects recouvrent aussi bien des fonctionnalités des systèmes (tolérance aux fautes, mobilité, réplication, etc.), que celles des langages de programmation (gestion d exceptions, conversions de type, etc.). Alors que le principe dit de séparation des préoccupations (separation of concerns) est maintenant bien connu en génie logiciel, la programmation par aspects est une des rares approches existantes qui tentent de l appliquer aux langages de programmation. Plutôt que de concevoir une application dans son ensemble, elle suggère de se concentrer sur un problème à la fois, en isolant les composants et stratégies nécessaires à sa réalisation. L intégration des différents aspects, appelée tissage, pose de nombreux problèmes de spécification, de compilation et de définition de langages adaptés. C est un axe de recherche de nombreuses équipes internationales (par exemple au Xerox PARC ou au IBM Thomas J. Watson Research Center). La notion d aspect constitue un complément naturel à d autres situées plus en amont dans le cycle de développement d une application comme celle de point de vue introduite par la norme ODP. L AOP est rendue nécessaire par la complexité croissante des applications système construites autour des bus logiciels (CORBA, DCOM, EJB, etc.) et par l hétérogénéité de leurs besoins: communication faiblement couplée ou à haut débit; sûreté de fonctionnement ou haute disponibilité ; mobilité ou la réplication des données. Trop rigides, les approches actuelles répondent mal à l ensemble de ces besoins. L objectif de l AOP est d apporter une réponse à ce problème. Le développement rapide des systèmes sûrs doit être étayé par un support intensif d outils de modélisation et de vérification et aboutir à un code opérationnel conforme aux spécifications vérifiées. Toutefois la difficulté et le coût de ces méthodes restent des freins à leur vulgarisation. Nos recherches portent d abord sur l exploitation des techniques assurant la qualité des logiciels, sur l émergence de formalismes et d outils commodes ou transparents pour les utilisateurs, sur l extensibilité des environnements logiciels par intégration rapide d outils hétérogènes ou par leur exploitation sur des sites distants. De plus pour préserver la conformité globale des spécifications, nos travaux intègrent l optimisation et le déploiement sur des architectures multiples. Nous nous intéressons à trois problèmes majeurs ouverts par l AOP: Elle inverse la dépendance entre l implantation des services systèmes (vus comme des aspects) et les programmes applicatifs. Cette idée est plus attractive que de concevoir des librairies système dont le programmeur doit maîtriser la syntaxe et la sémantique afin de les intégrer à son application: une conception naïve de librairies par aspects ramènerait le tissage à des imbroglios d appels. Notre approche reporte donc sur le concepteur de l aspect système la mise à disposition d outils pour que cet aspect s intègre correctement, facilement, et automatiquement aux applications en épargnant un temps considérable aux programmeurs. Il faut résoudre les nombreux conflits entre un découpage modulaire d une application issu d un processus classique d analyse/conception et un découpage en termes d aspects. En effet, les aspects systèmes sont intrinsèquement transverses à plusieurs composants logiciels et viennent donc se superposer au découpage fonctionnel propre à l application. L intégration inter-aspects au sein d une même application pose de nouveaux problèmes lorsque les aspects considérés ne sont pas complètement orthogonaux (par exemple, réplication de données et mobilité de code). L AOP devrait dans un avenir proche, avoir un impact comparable à celui de la programmation orientée objets et de la programmation réflexive. Son étude dans le cadre des systèmes répartis est porteuse de nombreuses perspectives entre autres pour la synchronisation et l observation d états globaux. Nos premières expérimentations concerneront des domaines tels que la mobilité et la réplication. 266 Prospective

SRC Systèmes Virtuels Systèmes tolérants aux fautes La tolérance aux fautes est depuis une vingtaine d années l une des préoccupations majeures de l informatique répartie. De nombreuses plates-formes telles que Isis puis Horus et Ensemble de l Université de Cornell ont été développées par l équipe de L aspect virtualisation d un système d exploitation suscite de nombreux projets de recherches. Les machines virtuelles permettent l extensibilité et la portabilité sur différentes plates-formes matérielles et systèmes. La conférence HotOS, consacrée à la prospective des systèmes, contenait près d un tiers des travaux liés aux machines virtuelles (pour l extensibilité, la sécurité, les systèmes embarqués, etc.) sans que se soit dégagée une solution unifiée d environnement d exécution basé sur une machine virtuelle. La sémantique d un langage étendu, vérifiable directement sur le code exécutable facilite le développement incrémental, la mise au point et la sécurité. Le succès de Java confirme ces avantages. Toutefois la consommation de processeur et de mémoire est importante bien que la traduction, la réorganisation et la recompilation de code à la volée puissent redonner des performances comparables à des codes compilés. L hétérogénéité des machines virtuelles (Java, Emacs, Squeak, Smalltalk, Word ) limite l interopérabilité. La Machine Virtuelle Universelle d IBM permet la réutilisation et l interopérabilité de composants de composants écrits en Java, Smalltalk et Visual Basic. Cependant, cette approche reste une extension statique de la machine virtuelle Smalltalk et rendra difficile l adaptation dynamique à des langages bytecodés arbitraires. SPIN (Université de Washington), ExoKernel (MIT) and FLUX (Utah) sont de telles architectures reconfigurables et adaptables mais basées sur un langage fortement typé (MO- DULA 3) et un compilateur propriétaire. SPIN permet aux applications d ajouter de manière sûre et dynamique de nouvelles fonctions au système. Trop rigides, ces approches ne permettent pas d intégrer facilement des aspects applicatifs (qualité de service, sûreté de fonctionnement, degré de cohérence). Notre but est de concevoir un environnement d exécution multilangages, flexible, simple, portable audessus de divers systèmes d exploitation natifs, spécialisable en fonction des besoins des applications (systèmes embarqués, travail coopératif, calculs scientifiques). L extensibilité dynamique (ajout de fonction ou de langages à la volée) est essentielle pour supporter efficacement plusieurs langages de programmation "bytecodés" et permettre la réutilisabilité de composants logiciels. L idée novatrice de notre machine virtuelle virtuelle (MVV) est de pousser le concept de spécialisation dynamique jusqu au niveau des langages de programmation eux-mêmes. Sa plateforme d exécution extensible permet de compiler, charger et modifier dynamiquement des VMlet qui sont des spécifications structurées mais exécutables de nouvelles machines virtuelles. Chaque VMlet introduit des primitives de langage spécifiques et de nouveaux services pour changer le noyau du système et l adapter efficacement à chaque application. L unicité du mécanisme d exécution des VMlet permet un partage efficace des ressources physiques et une optimisation très poussée. Chacune est optimisable à deux niveaux: statiquement pour produire du bytecode compact et tenir compte des dépendances inter-variables, dynamiquement pour instancier efficacement la MV correspondante en fonction du noyau d exécution cible (bibliothèques natives, interruptions et contrôle de processus, mémoire virtuelle et fichiers, périphériques et communications). Une application aux réseaux actifs (PLAN) a permis une densification considérable du code engendré et une simplification spectaculaire du coût de développement. Nous expérimentons une Machine Virtuelle Adaptative (MVA) offrant déjà une spécialisation statique de l interface avec le système d accueil, la spécification des modèles de mémoire et d exécution et une spécialisation dynamique des jeux d instructions. La MVV, beaucoup plus ambitieuse, permettra les interactions entre VMlet et assurera l équilibre de leurs différentes stratégies. Les applications visées sont les systèmes embarqués, les systèmes mobiles, les réseaux actifs, les cartes à puces. D autres domaines informatiques pourront bénéficier de ces avancées (routeurs de réseau, téléphones mobiles, cartes à puces, réalité virtuelle, domotique, systèmes embarqués, robots d exploration). L approche MVV sera poussée jusqu au niveau de la haute intégration, directement dans le matériel, tout en gardant l adaptation des spécifications exécutables, chargeables ou optimisables dynamiquement. En collaboration avec l Observatoire de Meudon, une application spatiale va concerner le futur satellite COROT (pour l observation des exo-planètes). L objectif critique est d adapter, en orbite, ses missions en fonction des résultats d expérimentation. L extrême limitation des créneaux et des débits de transmissions ainsi que les contraintes drastiques de l architecture rendent cruciale l efficacité des méthodes d évolution dynamiques dont il faut munir le système embarqué. K. Birman et S. Toueg essentiellement pour supporter l exécution d applications fiables sur des réseaux locaux. Les outils développés dans l équipe de A. Schiper à l EPFL (Lausanne), de P. Verissimo à l INESC (Lisbonne) ou de O. Babaoglu à l Université Systèmes Virtuels 267

de Bologne, ont maîtrisé la réplication et la diffusion fiable dans les réseaux à large échelle. Les concepteurs sont souvent démunis pour choisir la bonne stratégie au bon moment, en fonction de la charge des serveurs et du réseau ou des besoins instantanés des applications. Nous privilégions donc cet axe de recherche. Pour la tolérance aux fautes, nous concevons et évaluons le protocole de maintien de cohérence et de placement des réplicats en fonction des latences d accès des serveurs, de leur charge et du niveau de criticité désiré. Généralement, cette stratégie est fixée par l application et reste donc figée pendant l exécution. Quelques supports d exécution comme Voyager d Object Space, Bast de l EPFL ou MetaXa de l Université d Erlangen-Nürnberg, permettent de changer dynamiquement une partie des stratégies. Seules quelques approches (LAAS - Toulouse) définissent la stratégie de tolérance aux fautes. de manière semi-automatique à la compilation. Très peu abordent la remise en cause de ce choix à l exécution. La plupart sont peu adaptées à un passage à grande échelle. L équipe SRC a une expertise dans les techniques de tolérance aux fautes et d adaptation à la charge. Deux plates-formes STAR et GatoStar ont été réalisées pour supporter l exécution d applications scientifiques sur des réseaux locaux. Avec le thème OASIS du LIP6, nous étudions une nouvelle plateforme, DarX, pour construire des applications réparties en utilisant des agents fiables communiquants. Par leur mobilité et leur autonomie les agents constituent un paradigme particulièrement bien adapté aux grands réseaux. DarX est réflexif et la stratégie de réplication des agents peut être modifiée à tout moment. Les applications, l extensibilité et l optimisation de DarX introduisent de nombreux problèmes ouverts. Nous travaillerons d abord sur des nouveaux algorithmes auto-stabilisants de quorum et de réplication ainsi que sur la mise au point d heuristiques pour choisir dynamiquement les composants de stratégies de réplication les mieux adaptés à chaque application et aux paramètres des systèmes répartis supports. Construction d applications réparties ouvertes Le projet ODAC (Open Distributed Applications Construction) a pour objectif de fournir des méthodes et outils pour maîtriser la complexité du processus de construction d applications réparties. Cette méthodologie vise à supporter la validation et le déploiement d une application au sein d environnements de type plate-forme à agents mobiles. Construire une application par assemblage cohérent de composants certes autonomes mais interagissant et localisés sur des sites distants, pose des problèmes d intégration et d interopérabilité. Ces composants, développés par des organisations distinctes ou écrits dans des langages différents, ne sont pas toujours homogènes ni propriétaires. Nos recherches concernent la définition de modèles, de méthodes et d outils pour maîtriser l interopérabilité dès la spécification et la maintenir pendant tout le cycle de vie très long de ces applications. Pour prendre en compte à la fois l élaboration et l échange des spécifications, notre approche repose sur l utilisation de la norme de traitement réparti ouvert (ODP), du paradigme agent, des méthodes formelles et de la méta-modélisation. Elle vise à utiliser des normes et techniques existantes et provenant de différents domaines pour les faire converger et définir une méthodologie de construction d applications réparties fondée sur ODP. L objectif est double: d une part établir une méthodologie de spécification, de validation et de déploiement de systèmes à base d agents mobiles fondée sur ODP et d autre part permettre l interopérabilité de spécifications en vue de leur réutilisation. La norme ODP, développée par l ISO et l ITU-T, fournit un modèle de référence pour la construction de systèmes répartis. L architecture ODP définit le concept de point de vue, subdivision d une spécification d un système complexe. Elle comprend cinq points de vue: entreprise, information, traitement, ingénierie et technologie. À chacun correspond un langage qui définit un ensemble de concepts et de règles pour la construction d un système. Notre méthodologie ODAC s appuie sur le point de vue entreprise pour analyser les besoins du système, le point de vue traitement pour concevoir le système et le point de vue information pour exprimer les informations nécessaires. Ces trois points de vue sont décrits au moyen de la notation UML. L outil logiciel de spécification de systèmes à base d agents que nous avons déjà développé permet d élaborer la spécification comportementale d un système indépendamment de tout environnement cible. Nous voulons raffiner le parallèle informel entre étapes de cycle de vie et points de vue ODP afin de préciser les étapes de notre méthodologie. De plus, des points stables dans les étapes doivent être identifiés pour garantir la cohérence des spécifications de ces points de vue et éviter leur remise en cause. La vérification formelle permet d analyser et d améliorer la qualité de la spécification avant le développement. La spécification comportementale dissocie les propriétés en séparant les divers aspects de la conception et simplifie ainsi la tâche de la vérification. La vérification globale s obtient à partir de celle des comportements de l ensemble des agents. On s assure ainsi qu il n y a pas violation de règles de sûreté, que les états spécifiés sont accessibles, que les objectifs des agents seront atteints, qu il y a bien adéquation entre les points de vue. On recherche les com- 268 Prospective

SRC portements non prévus, on vérifie les bornes des données et on identifie les comportements anormaux. L étape ultérieure prend en compte des cibles de type plates-formes à agents mobiles et réseaux actifs. La génération de composants et leur déploiement doivent tenir compte de leur répartition et intégrer le code nécessaire aux interactions. Nous allons d abord définir une notation pour les caractériser selon le point de vue ingénierie d ODP puis élaborer une spécification opérationnelle en associant la spécification comportementale à la caractérisation d un environnement. Une originalité d ODAC est de prendre en compte l échange de spécifications pour permettre d intégrer des spécifications existantes, même établies dans des formalismes différents. Nous posons ainsi le problème inexploré de l interopérabilité des spécifications. De même qu un bus logiciel, de type CORBA, permet l interopérabilité des objets, nous proposons de définir un méta-bus de connaissances. Ainsi un concepteur accédera à la spécification d un composant pour l intégrer dans la spécification de sa propre application. De même que l interopérabilité des objets est assurée par l IDL (Interface Definition Language), celle des spécifications nécessite un langage universel. Nous avons choisi la norme ODP et le standard XML (extended Markup Language) établi par le W3C. ODP fournit les concepts et règles de structuration, donc une sémantique, mais sans notation associée, tandis qu XML nous fournit un mode adéquat de représentation des concepts ODP. Nous proposerons des règles de transformation d une spécification source établies dans un formalisme quelconque pour obtenir la spécification ODP correspondante, puis une spécification cible. Pour établir le méta-modèle ODP, nous nous référons aux travaux de l OMG sur la métamodélisation à travers le standard MOF (Meta Object Facility). Les questions soulevées concernent la faisabilité de l interopérabilité de spécifications, les risques de pertes lors de leur traduction, les limitations de leur réutilisation. Le succès des bus logiciels est un argument majeur pour vouloir les étendre au niveau des spécifications. Synchronisation en temps réel de documents musicaux répartis En collaboration avec l IRCAM, un nouveau projet concerne l édition coopérative, la synchronisation et l exécution en temps réel de partitions musicales distribuées. Il s appuie sur des résultats sur la qualité graphique d une partition (Electronic Publishing 1998) et sur leur édition distribuée à travers des navigateurs (Journées d Informatique Musicales 1999 et 2000). Un des problèmes est l interopérabilité non seulement des logiciels d édition et des formats d échanges mais aussi des périphériques sonores. Une sémantique précise des coopérations en temps réel devient indispensable pour une gestion consensuelle des versions. Une première application vise les médiathèques des conservatoires de musique et assimilés, désireuses de communiquer leur fond à travers le Web, les partitions pouvant défiler à l écran pour un exercice de déchiffrage avec une cadence imposée, supprimant le vieux problème jamais résolu de la tourne, la notion de page ayant disparue. Il s agirait de remplacer par des écrans les pupitres des musiciens de tout un orchestre, le défilement de la partition étant assuré par le chef d orchestre. À plus long terme, on peut espérer suffisamment de progrès dans le domaine de la reconnaissance des formes pour subordonner cette application à un pisteur de séquence sonore. Les systèmes d exploitation des ordinateurs ont amélioré leur qualité de service, notamment dans le temps de réponse des périphériques, et en particulier les matériels de traitement du son en temps réel (les services de la 4X, machine mise au point par l IRCAM il y a quinze ans, sont aujourd hui offerts par des cartes son standards pour un prix 100 fois inférieur). La refonte de la partie du noyau Linux s occupant de ces périphériques, financée et bientôt distribuée par Suse, montre à quel point ces questions sont d actualité. Les débits offerts par les cartes réseaux d aujourd hui permettent d envisager des applications musicales réparties, évidemment en temps réel à condition de bien négocier la qualité de service nécessaire. Parallèlement à cette évolution, les langages de programmation se sont successivement intéressés aux nombres, aux structures de données (Algol, C, Ada) aux programmes eux-mêmes (Lisp, Scheme, ML) puis aux documents graphiques (PostScript puis ses épigones). Ces enrichissements ont toutefois rarement débordé le cadre algorithmique classique. L évolution des systèmes montre que les problèmes de la programmation concernent ici la gestion extrêmement fine du temps, le résultat d un programme n étant plus un document prévu pour l impression sur papier, mais une séquence, visuelle et/ou sonore, dont la temporalité doit être réglable à volonté. Méthodes de vérification formelle Notre équipe a été l une des pionnières pour la théorie des réseaux de Petri de haut niveau et la vérification structurelle des systèmes répartis. La vérification structurelle dégage des propriétés macroscopiques d un système par une analyse directe de son modèle sans explorer son graphe d états et donc sans explosion combinatoire. Pour des propriétés plus fines les méthodes dites de model-checking rencontrent un fort Synchronisation en temps réel de documents musicaux répartis 269

succès mais nécessitent l exploration du graphe d états. L explosion combinatoire est retardable par la réduction du modèle, la construction partielle ou la réduction de l espace d états, et des représentations efficaces par BDD ou MBD. Les environnements classiques, entre autres SMV (CMU), Murphi (SRI), Cospan (Bell Labs), ont permis de vérifier des systèmes de plus de 10**100 états. Nos résultats majeurs portent sur des améliorations du model-checking et ses applications à des systèmes paramétrés. Nos techniques exploitant l expression des propriétés, les symétries de comportement ou l ordre partiel des actions concurrentes ont permis un facteur de réduction exponentiel. Les symétries partielles sont très fréquentes. Nous voulons étendre leur exploitation qui est difficile. Moyennant des hypothèses supplémentaires, nous viserons la réduction des chaînes de Markov pour évaluer les performances de réseaux de Petri temporisés et effectuer des vérifications probabilistes. Avec le LAMSADE (Paris 9 - Dauphine), nous automatisons le filtrage des symétries admissibles. Les techniques de vérification à la volée, permettront de réduire plus finement le graphe d états en fonction des propriétés à vérifier en exploitant simultanément des résultats d analyse structurelle. Chacune exploite une particularité du système étudié, leurs gains devraient être combinables. Développer leur synergie est donc notre axe majeur mais exige un travail théorique important pour garantir leur compatibilité ou définir les adaptations nécessaires. Un axe classique consiste à combiner les méthodes exploratoires avec la démonstration de théorèmes. Nous avons préféré une voie originale mariant la démonstration de propriétés structurelles et le modelchecking. Avec le CEDRIC (CNAM) nos travaux visent à réduire la structure d un système avant de construire son espace d états pour vérifier des propriétés de logique temporelle. Avec le LaBRI (Bordeaux), nous étendrons l utilisation des relations d ordre partiel en préservant la vérification des propositions atomiques de propriétés. Nous comptons tirer de l analyse structurelle des réseaux de Petri (invariants, réductions, compositions modulaires) des optimisations significatives du model-checking. L analyse incrémentale d un système amène à vérifier des formules voisines sur des spécifications proches, nous voulons donc caractériser des familles de formules vérifiables à partir des mêmes simplifications du graphe. Les approches modulaires butent sur la méthode de découpage d un modèle. Nous proposons un découpage au niveau le plus fin: celui de l action élémentaire. Une nouvelle structure de données exploite un ordre partiel pour simplifier la construction d un graphe complet à partir des graphes d états des modules. Elle devrait permettre des densifications mieux exploitables pour l analyse que celles obtenues par les diagrammes binaires de décisions (BDD). Cette approche sera étendue à d autres formalismes munis d une sémantique opérationnelle et si possible étendue aux vérifications quantitatives. Un dilemme porte sur l expressivité des formalismes considérés et la décidabilité des algorithmes de vérification. Avec le LAMSADE (Paris 9-Dauphine), nous avons défini les réseaux de Petri récursifs (RdP- R) qui sont bien adaptés à la modélisation de systèmes à structure dynamique (planification dans des systèmes multi-agents, systèmes tolérants aux fautes, programmation orientée buts). Notre étude théorique montre que les RdP-R sont une extension stricte de l union des réseaux de Petri et des grammaires "context-free". Leur vérification générale n est pas décidable mais le devient pour une sous-classe qui préserve une grande part du pouvoir d expression. Notre objectif est de déterminer des méthodes et des algorithmes de validation efficaces. Spécification et génération de codes sûrs Nous capitalisons plus de 10 années de persévérance de développement d une infrastructure pour intégrer nos techniques de vérification et les faire coopérer avec celles d autres universités. Notre plateforme FrameKit accélère la réalisation des outils et l évolution des procédés d analyse. L environnement CPN-AMI fait coopérer nos propres techniques de vérification des RdP et celles d autres universités européennes. Il est diffusé sur Internet et exploité sous licence libre dans une soixantaine d universités. Les objectifs sont une standarisation des formats d échanges ainsi que le travail coopératif sur des modèles distribués. Pour rendre les méthodes formelles accessibles aux ingénieurs, la communauté scientifique étudie des associations avec des représentations de plus haut niveau (UML, OMT par exemple). Nous proposons de rendre ces méthodes formelles transparentes en définissant des représentations adaptées aux systèmes répartis. Avec le Laboratoire de Génie Logiciel de l EPFL (Lausanne), nous étudions le comportement d un système conçu avec une approche orientée objets complétée par des spécifications algébriques, pour vérifier formules définies au niveau de la représentation initiale, en particulier des propriétés comme l interopérabilité pour finalement produire du code exécutable. Les besoins, les enjeux et les contraintes industrielles de développement d applications réparties sûres imposent le prototypage pour disposer très tôt d un produit logiciel exécutable et évaluable dans un environnement réaliste. Les environnements de génie lo- 270 Prospective

SRC giciel sont donc munis de générateurs automatiques de code (Rational/Rose, VERILOG, ICASE (DoD)). Rational/Rose génère un squelette d application (essentiellement les interfaces) qu il faut "remplir". La Postgraduate Naval School (San-Diego) réalise un prototypage par utilisation efficace de bibliothèques de fonctions et étudie l apport de méthodes formelles. Aérospatiale et Boeing élaborent des environnements de ce type (modélisation, analyse, génération) pour produire le code embarqué sur leurs avions. Nous voulons optimiser les programmes générés et de plus les intégrer dans des environnements cibles. Seuls quelques centres font cela dans le cadre d une approche co-design où l aspect matériel est crucial: University of Washington, TIMA (Grenoble). Un projet tel que Ptolemy (Berkeley) utilise des méthodes similaires en intégrant des outils interfacés avec des bibliothèques graphiques. Pour permettre l interopérabilité, nous éviterons de dépendre d une architecture cible particulière (Unix, Windows NT, l environnement Java ou l environnement Small- Talk). Notre originalité est de paramétrer des environnements multiples pour l exécution répartie et d intégrer ces aspects dans un langage de spécification "frontal" de nos approches formelles. Notre plate-forme FrameKit devra faire coopérer des méthodes basées sur des formalismes hétérogènes pour l ensemble du cycle de vie des systèmes en visant particulièrement les environnements hétérogènes. La transformation générique de spécifications, de modèles et de résultats visera l optimisation des systèmes produits et leur administration à distance. Une application industrielle est la gestion de configurations dans des réseaux de commutateurs situés sur des plates-formes hétérogènes et communiquant via des bus de type CORBA ou Java/RMI. Spécification et génération de codes sûrs 271

272 Prospective

SRC BILAN SYNTHÉTIQUE DES RECHERCHES La coopération d applications réparties dans toutes les branches d activités industrielles, commerciales, médicales, administratives ou grand public fait interférer de plus en plus de composants d origines diverses sur des systèmes hétérogènes distants via de multiples types de communications. La multiplicité de ces interactions est une source de complexité et d inefficacité. Nos recherches visent à maîtriser la complexité de la conception de ces applications, l efficacité de leur exécution et la sûreté de leur réalisation. La conception des systèmes ouverts pose des problèmes de spécification, d hétérogénéité, de performances, de fiabilité. Pour maîtriser les processus de construction et de développement, nous approfondissons l architecture de ces systèmes en les basant sur de nouveaux concepts tels que ceux de points de vue, d agents mobiles, de spécification du contrôle, de hiérarchies de groupes d objets. L adaptation des applications réparties hétérogènes aux caractéristiques des environnements d exécution doit être dynamique pour rendre efficace leur exploitation. Nous avons développé des méthodes d équilibrage dynamique des charges requises par les différents utilisateurs, et de réplication des composants sensibles ou surchargés. Pour systématiser les mécanismes d extension dynamique des noyaux des systèmes, nous avons généralisé la notion de machine virtuelle. Cette approche s est avérée très efficace pour la réalisation de messages actifs. La vérification d applications coopératives est justifiée par des utilisations critiques et des objectifs de qualité. Les systèmes enfouis ou embarqués dans des appareils sont aussi coûteux à maintenir de sorte que leur vérification est très rentable. Les méthodes de vérification de modèles de comportement sont de plus utilisées industriellement mais soulèvent des problèmes de complexité d analyse des graphes d états. Nous avons proposé de nouvelles méthodes pour optimiser la représentation et la construction de ces graphes. Nous les avons appliquées pour valider l interopérabilité de services de télécommunication et la composition de commandes avioniques. Pour simplifier et sécuriser la génération de code, nous avons exploité les propriétés vérifiées formellement pour optimiser les méthodes de prototypage de systèmes répartis. Enfin nous avons développé des environnements logiciels pour faciliter la réalisation et la mise en œuvre d outils de vérification et de prototypage. Conception orientée agents de systèmes ouverts Nos recherches concernent la construction d applications réparties ouvertes et coopératives. Elles se focalisent sur la maîtrise de l intégration, de Conception orientée agent de services de télécommunications. l interopérabilité et du contrôle des composants d une application. Nous définissons des méthodes et des outils pour construire des services de télécommunication sous forme de composants interagissants assemblés selon un schéma d interaction. Les composants sont spécifiés sous forme d agents logiciels, qui facilitent l intégration d une application dans un système opérationnel, la combinaison d applications et l automatisation de l usage des applications. La norme ODP (Open Distributed Processing) développée par l ISO et l ITU-T, nous fournit un modèle de référence pour construire des applications réparties. L architecture ODP définit le concept de point de vue, subdivision d une spécification d un système complexe, qui permet la séparation des préoccupations. Pour vérifier que l assemblage fournit bien les fonctionnalités attendues, nous avons enrichi le paradigme agent. Le formalisme de spécification et de validation OF-Class permet une traduction automatique de la spécification des composants en réseaux de Petri colorés modulaires. On peut alors vérifier incrémentalement la sûreté et la fiabilité d une application. Un langage, appelé AF-Class, permet de spécifier une application sous la forme d un ensemble d agents interagissants. Un modèle a été défini pour structurer les interactions, pour inclure un mode d emploi au gabarit d une interaction puis pour définir une qualité de service associée. Cette approche a été illustrée sur le suivi de contrat dans le cadre d une agence électronique de voyages et sur les services de télécommunication dans le cadre de la consultation thématique CNET CARISMA. Nous avons établi les fondations d une méthodologique ODAC (Open Distributed Applications Construction) pour le développement d applications réparties. Elle est basée sur l intégration des concepts issus de la norme ODP et des approches de génie logiciel. Sa version actuelle décrit les trois points de vue ODP entreprise, information et traitement au moyen de la notation standardisée UML (Unified Modeling Language). Ces travaux contribuent au programme Télécommunications du CNRS au projet RNRT Amarrage. Un partenariat avec EDF a été instauré dans le domaine des systèmes d information. Conception orientée agents de systèmes ouverts 273

Spécification et implantation du contrôle dans les applications réparties coopératives Les environnements de programmation répartie actuels (CORBA, EJB, DCOM, etc.) et les systèmes d exploitation répartis (Amoeba, GUIDE, JavaOS, etc.) fournissent des outils de gestion des communications et d utilisation de processus concurrents. Les applications telles que les collecticiels pour la rédaction coopérative de documents, la vidéoconférence ou l intelligence artificielle distribuée, mettent en jeu de nombreux objets munis de schémas d interaction et de contrôle complexes. Nous avons défini la notion de programme de groupe pour des applications réparties orientées objet. Un programme de groupe abstrait le comportement d un ensemble d objets répartis et leurs échanges de messages. Avec l équipe Objets, temps et ordre dans les systèmes répartis du laboratoire CEDRIC-CNAM, nous avons défini une syntaxe pour ces programmes et une méthode semi-formelle basée sur une logique modale dite logique épistémique. Son intérêt est de formaliser la notion de connaissance pour un groupe d entités réparties. La conception d applications coopératives oblige à se préoccuper des synchronisations, des contraintes temps réel, des communications, de la répartition de ressources, du contrôle des accès partagés, de la tolérance aux fautes, des interfaces avec les utilisateurs et avec des bases de connaissances. Une structuration en couches permet de traiter ces facettes techniques au moyen de squelettes d interaction ( Frameworks ) définis par des composants abstraits et des protocoles de collaboration. Ces squelettes garantissent l interopérabilité et la réutilisabilité des implantations. Les optimisations locales (compilation à la volée) ou réparties (équilibrage de charge, contrôle de congestion) ainsi que le comportement des composants (instanciation dynamique, mobilité, adaptation) conduisent à l exécution de code dans des environnements non connus à la compilation. Nous avons défini une plate-forme coopérative rendant accessibles des observations et une abstraction de l environnement d exécution des composants. Elles permettent aux composants applicatifs de négocier l usage des ressources. Systèmes dynamiquement adaptables Équilibrage de charge et tolérance aux fautes L équilibrage de charge et le placement en environnement réparti visent à exploiter de manière transparente l ensemble des ressources distantes. Notre plate-forme GatoStar permet de développer des applications parallèles et de les répartir automatiquement sur un ensemble de sites hétérogènes puis de les exécuter efficacement. Des algorithmes multi-critères prennent en compte la charge des machines et le comportement des applications. De plus, en unifiant le placement dynamique et la tolérance aux fautes, GatoStar fournit un support complet et cohérent pour l exécution d applications parallèles à longue durée de vie. Pour améliorer les stratégies de placement, nous avons défini un modèle à base de files d attente. L originalité est d affiner le modèle en le rapprochant le plus possible des résultats réels mesurés dans GatoStar. Les algorithmes sont évalués et modifiés directement dans le modèle puis intégrés dans GatoStar. La conception d applications réparties sur de grands réseaux nécessite de gérer dynamiquement des ressources distantes en fonction des variations de la charge des systèmes et des réseaux ainsi que de l irrégularité des besoins des applications. Notre système GatoStar rend cette exécution transparente, tolérante aux fautes et cependant efficace. Nous étendons ces stratégies à de nouvelles architectures telles que les réseaux à haut débit et les réseaux à large échelle. Nous adaptons les stratégies de placement au maintien de la cohérence dans des mémoires partagées réparties qui déchargent les programmeurs de la localisation des données. L adaptation à la volée d applications sur des systèmes et réseaux spécifiques ou hétérogènes nécessite des méthodes nouvelles de conception normalisant les interactions avec les noyaux des systèmes supports. En collaboration avec le projet Système à Objets Répartis de l INRIA-Rocquencourt, nous concevons un environnement d exécution extensible dynamiquement et multi-langages (Machine Virtuelle Virtuelle). Nous gérons ainsi des seuils dynamiques de placement et de migration de tâches. Nous avons décrit d autres environnements (multi-réseaux, réseaux hybrides comportant des machines parallèles, réseaux à haut débit) pour choisir les algorithmes de gestion en fonction des architectures. Un outil générique d observation avec une granularité variable et adaptable aux applications collecte efficacement des informations fines et analyse leur comportement en termes d utilisation du processeur, de la mémoire et des communications. Avec le thème ANP du LIP6, nous étudions comment engendrer un placement, à partir d une description fine d une application, en utilisant des heuristiques de recherche opérationnelle de type tabou. Les réseaux à large échelle présentent des taux élevés de fautes, de grandes variations des débits et des temps de latence. C est pourquoi nous avons conçu de nouveaux algorithmes de tolérance aux fautes. Pour 274 Bilan synthétique des recherches

SRC Mémoires partagées réparties Pour améliorer la localité donc les performances d applications parallèles communicantes par mémoires partagées réparties (MPR), nous combinons le placement de processus et celui de données. Nous avons introduit le concept d affinités de processeur, de mémoire et de communication pour caractériser les forces qui lient les programmes aux différentes stations. Une première implantation a été faite dans le système de MPR Millipede, développé au-dessus de Windows NT par l Institut Technion d Haifa (Israël). L exécution de systèmes de MPR sur plusieurs réseaux et un grand nombre de sites augmente leur puissance mais le coût des accès distants devient l obstacle principal. Nous réduisons ce coût au moyen de nouveaux protocoles, hiérarchiques et extensibles, de maintien de cohérence. Une adaptation originale conserver de bonnes performances nous changeons dynamiquement d algorithme de réplication ou de sauvegarde en fonction de l évolution des délais de transmission, de la disponibilité des sites et des besoins de qualité de services des applications. Nous avons défini une plate-forme DarX qui fiabilise le système multi-agents DIMA développé par le thème OA- SIS du LIP6. Chaque agent peut contrôler sa stratégie de réplication et changer son nombre de copies. Une nouvelle stratégie à base de quorum auto-stabilisant est en cours de développement. du concept d estampilles vectorielles les rend indépendantes du nombre de sites tout en continuant à capturer la causalité des mises à jour de la mémoire. Une version hiérarchique du protocole de cohérence Lazzy Release Consistency a été intégrée dans la MPR TreadMarks de Rice University. Nous étudions de nouvelles stratégies de swap et de pagination en mémoire distante sur des réseaux à haut débit, ce qui est plus efficace que sur des disques locaux. Cette étude a abouti au développement de la plate-forme Maïs développée dans le cadre du projet MPC du thème ASIM du LIP6. Un prototype a été développé dans FreeBSD sur un réseau Ethernet 100 Mb/s avec une émulation du réseau High Speed Link utilisé dans MPC. Machine Virtuelle Virtuelle Les technologies de répartition sont parvenues à un bon degré de maturité, avec l apparition des produits de standardisation (CORBA), ou de standards de fait (Java de SUN Microsystem ou DCOM de Microsoft). Cependant ces supports d exécution restent mal adaptés aux applications ayant de fortes contraintes de qualité de service (taille, temps réel, sûreté de fonctionnement) et difficilement spécialisables. Nous avons défini et réalisé un environnement d exécution flexible multi-langages, la Machine Virtuelle Virtuelle (MVV), qui est un saut conceptuel par rapport à l approche traditionnelle des systèmes. La MVV est basée sur une machine virtuelle générique ayant un jeu de services systèmes extensible dynamiquement. Son jeu d instructions bytecodées (représentation intermédiaire entre le langage de programmation et le langage machine) est spécialisable en fonction des besoins des applications. À la différence de la Java Virtual Machine (JVM), la MVV peut supporter plusieurs modèles d exécution, chacun étant spécifiée sous forme d une Machine Virtuelle MV compilée sous forme d une MVlet bycodée. Une MVlet est chargeable et optimisable dynamiquement selon les contraintes du matériel cible et les besoins des applications. Pour la flexibilité, la MVV peut se comparer à SPIN (University of Washington), Exo- Kernel et Fluke (Utah University) et Aegis (M.I.T.) qui proposent des architectures reconfigurables et adaptables dynamiquement. Pour l interopérabilité, la Machine Virtuelle Universelle (UVM) d IBM et Taligent, sont une extension d une machine virtuelle existante (Smalltalk). L avantage de la MVV est l acceptation dynamique de nouveaux langages, et la simplicité du procédé. Nous avons réalisé une Machine Virtuelle Adaptative (MVA). Elle possède des mécanismes d exécution compatibles, indépendants des langages, des bibliothèques réutilisables de fonctions de base, une spécification du langage, du modèle mémoire et d exécution d une MV mais une interface externe dépendante de la plate-forme d accueil et du système d exploitation. La modification dynamique des jeux d instructions et des fonctionnalités offertes aux applications, facilite la spécialisation et la mise à jour incrémentales. Les expérimentations ont montré des gains considérables en compacité de code des applications et en simplification de conception pour réaliser un réseau actif. La MVV transposera la philosophie des systèmes d exploitation configurables au domaine des langages bytecodés. D autres domaines informatiques pourront bénéficier de ces avancées (routeurs de réseau, téléphones mobiles, cartes à puces, réalité virtuelle, domotique, systèmes embarqués, systèmes enfouis dans des équipements, lourds, lointains ou mal accessibles, robots d exploration). L approche MVV sera poussée jusqu au niveau de la haute intégration, directement dans le matériel, tout en gardant l adaptation des spécifications exécutables, chargeables ou optimisables dynamiquement. Systèmes dynamiquement adaptables 275