Bull-IMAG. Rapport Scientifique
|
|
|
- Jean-Pierre Larivière
- il y a 9 ans
- Total affichages :
Transcription
1 Bull-IMAG ERS CNRS 106 Rapport Scientifique septembre 1995 Bull - Centre National de la Recherche Scientifique Institut National Polytechnique de Grenoble - Université Joseph Fourier
2
3 Bull-IMAG ERS CNRS 106 Rapport Scientifique L Unité Mixte Bull-IMAG a été créée pour 4 ans au 1-er janvier 1990 pour mener des recherches sur les systèmes et applications informatiques répartis et transférer les résultats de ces recherches. Le rapport scientifique final, établi en 1994, a résumé les résultats de ces 4 années de travaux. La période de 1994 à mi-1995 a été une période de transition, dans laquelle le Laboratoire Bull-IMAG a reçu le statut d Equipe en restructuration. Durant cette période, trois actions ont été menées en parallèle : Dans Bull, préparation du transfert industriel des résultats du projet Guide (plate-forme pour développement d applications réparties, réalisée à l Unité Mixte Bull-IMAG), sous la forme d un produit appelé OODE (Object Oriented Distributed Environment). Dans le projet Opéra, poursuite des activités sur le traitement de documents structurés, avec un développement important des activités autour du World Wide Web. Après la fin du projet Guide, préparation d un nouveau projet de recherche, qui a effectivement démarré en 1995 sous le nom de Sirac (Systèmes Informatiques Répartis pour Applications Coopératives). Ce projet est mené dans le cadre du nouveau Laboratoire IMAG-LSR (Logiciel, Systèmes et Réseaux), commun au CNRS, à l Institut National Polytechnique de Grenoble, et à l Université Joseph Fourier, créé au 1 er janvier Le projet Sirac est également en cours d examen par les instances d évaluation du CNRS et de l INRIA pour devenir projet commun CNRS-Universités- INRIA. Le présent rapport est donc articulé en trois parties : La première partie est une description synthétique de l historique du transfert entre Guide et OODE (les résultats scientifiques proprement dits ayant été détaillés dans le Rapport final de l Unité Mixte Bull-IMAG), et contient la bibliographie d ensemble du projet. La deuxième partie est une description des résultats et du plan de travail du projet Opéra. La troisième partie est une description des objectifs et du plan de travail du projet Sirac. Des rapports présentant les premiers résultats de ce projet seront disponibles en octobre 1995.
4
5 Bull-IMAG ERS CNRS 106 De Guide à OODE : transfert industriel d une plate-forme à objets pour applications réparties
6
7 De Guide à OODE : transfert industriel d une plate-forme à objets pour applications réparties Historique du projet En octobre 1986, une équipe mixte, associant des chercheurs du Laboratoire de Génie Informatique de l IMAG (IMAG-LGI) et des ingénieurs du Centre de Recherche Bull de Grenoble, lance un projet de conception et de réalisation d un système à objets pour le support d applications réparties sur un réseau local de stations de travail et de serveurs. Ce projet reçoit le nom de Guide (Grenoble Universities Integrated Distributed Environment). Les deux partenaires du projet sont également associés dans le projet ESPRIT Comandos (Construction and MANagement of Distributed Objet Systems), dont l objectif est également de concevoir une plate-forme distribuée pour des applications à base d objets. En novembre 1988, le premier prototype de l environnement Guide est présenté en démonstration publique à l ESPRIT Technical Week à Bruxelles. Ce prototype comporte un noyau de gestion d objets réalisé au-dessus d Unix (sur stations Sun et Bull), et un langage d écriture d applications réparties. En fin 1988, l intérêt potentiel de ces travaux est jugé suffisamment important pour motiver la création d une Unité Mixte associant Bull et les autorités de tutelle de l IMAG (CNRS, Institut National Polytechnique de Grenoble, Université Joseph Fourier). Ce Laboratoire, dénommé Bull-IMAG, est officiellement créé au 1-er janvier 1990, mais fonctionne effectivement dans ses locaux propres à partir de mai A la même époque, l Open Software Foundation (OSF), décide d installer à Grenoble le centre européen de son Institut de Recherche, dans des locaux adjacents à ceux de Bull-IMAG. L objectif de Bull-IMAG, créé pour une durée de 4 ans, est de réaliser un prototype pré-industriel issu du système Guide. Une version Guide-1, portée sur les principales machines Unix (Bull, Sun 3, Sun 4, Sun 386, DecStation), est largement diffusée à partir de 1991, et sert de support à plusieurs applications totalisant plus de lignes de programmes en langage Guide : Un éditeur coopératif, version répartie de l éditeur structuré Grif, réalisé à Bull-IMAG, Un système de circulation de documents, CIDRE, réalisé au SEPT à Caen, dans le cadre du projet Comandos, Un serveur X500, réalisé à Bull-Louveciennes, également dans le cadre de Comandos. Cette dernière application sera à l origine de la première utilisation industrielle de Guide, pour la gestion d une base de données interne au système ISM de Bull. A partir de 1991, une seconde version de Guide (Guide-2) est mise en chantier audessus du micro-noyau Mach. Elle se caractérise par sa modularité (séparation des fonctions de stockage, de gestion d objets et d exécution) et sa généricité (elle supporte les langages Guide et C++). Cette version sert de base au transfert industriel sur Bull DPX-20 et Unix-AIX, lancé en mi A partir de cette date, le personnel Bull de l Unité Mixte Bull-IMAG est progressivement réaffecté au développement de la version industrielle, qui reçoit le nom de OODE (Object-Oriented Distributed Environment). Ce noyau initial est renforcé, courant 1993, par l arrivée de 4 nouveaux ingénieurs de Bull. Au terme du mandat de l Unité Mixte, fin 1993, l objectif fixé est donc atteint. Le bilan du projet est présenté au cours de journées portes ouvertes les 13 et 14 janvier
8 Transfert Guide-OODE La première version de l environnement OODE est livrée à ses clients le 15 octobre Après une année de transition, mise à profit pour la préparation d un nouveau projet de recherche, la partie IMAG de l Unité Mixte rejoint au 1-er janvier 1995 un nouveau laboratoire de l IMAG : Logiciel, Systèmes, Réseaux. Le nouveau projet, appelé Sirac, poursuit l exploration des deux voies ouvertes dans Guide : support système pour objets répartis (avec utilisation des réseaux rapides et des grandes mémoires virtuelles) ; outils et services pour la construction d applications coopératives. La collaboration avec Bull se poursuit dans le cadre d un GIE Bull-INRIA en cours de démarrage (voir plus loin). Le projet Guide a été mené depuis 1986 sous la responsabilité conjointe de Roland Balter (Bull) et Sacha Krakowiak (IMAG). En septembre 1993, Roland Balter a rejoint l Université Joseph Fourier. La direction du groupe systèmes répartis (OSS/DCSBU) de Bull est depuis lors assurée par Gilles Bogo, le responsable du projet OODE étant Serge Lacourte. La liste des personnes participant ou ayant participé aux projets Guide et OODE est donnée in fine. Résumé technique Objectif. L objectif du projet OODE est de fournir un environnement de programmation et d exécution permettant de réduire de manière significative le coût de développement et de maintenance des applications réparties. OODE doit libérer le programmeur du souci de gérer explicitement la persistance des données et la distribution de l exécution. Il doit fournir des outils facilitant la programmation, la mise au point et l administration des applications. Choix techniques. OODE est construit autour d un modèle d objets persistants. La persistance d un objet est automatiquement déterminée par son accessibilité. Tout objet est potentiellement partageable par un nombre quelconque d activités parallèles. L appel d une méthode d un objet obéit à un mécanisme uniforme, que l objet soit local ou distant. Dans OODE, les objets sont désignés par des références internes distribuées et persistantes qui permettent, par inclusion, de construire des structures complexes réparties. Pour une application en cours d exécution, l ensemble des objets qu elle manipule est vu comme faisant partie d une mémoire d objets uniforme. La mise en œuvre de cette mémoire sur un ensemble de sites, et les mouvements d objets depuis ou vers les fichiers (NFS ou DFS), sont gérés automatiquement en respectant une politique particulière de gestion, destinée à améliorer les performances. Les objets susceptibles d être utilisés en même temps sont regroupés en grappes manipulées globalement, toujours dans le but d améliorer les performances. La protection des objets est exprimée au moyen de listes d accès, et mise en œuvre en utilisant un système original de vues qui permet de munir un même objet d interfaces multiples d accès selon les applications qui le manipulent. La synchronisation des objets partagés est réalisée au moyen de classes de base prédéfinies fournies par l environnement. Le modèle d objets de OODE est directement utilisable à partir du langage C++. Un mot-clé supplémentaire suffit pour rendre les exemplaires d une classe persistants et potentiellement partageables. Des outils de visualisation et de mise au point, utilisant directement le modèle d objets, facilitent et accélèrent la construction d applications. Applications. OODE est actuellement utilisé par un client pilote, le consortium PREVISIA, qui réunit la BNP, le CNET, EDF et l INRIA. Par ailleurs, un ensemble d actions ont été initialisées pour promouvoir la technologie OODE au travers de partenariats, soit avec des intégrateurs de systèmes, Bull-IMAG (ERS 106) 2 Rapport final
9 Transfert Guide-OODE soit des utilisateurs. Les contacts les plus avancés concernent l hôpital (gestion coordonnées de ressources hospitalières) et les industries automobiles et aéronautiques (plate-forme d intégration d outils de conception assistée et de contrôle de production). Plans de développement Les développements futurs de OODE seront menés dans le cadre d un GIE associant Bull et l INRIA, à partir de janvier Il est prévu que OODE serve de banc d essai pour des travaux de recherche et de pré-développementdont le résultat sera progressivement intégré aux produits. Les aspects couverts sont les suivants : Outils de construction d applications par assemblage de composants. Outils de configuration d applications réparties Outils de coordination, combinant événements et objets partagés, pour applications coopératives. Outils d administration et de mise au point d applications réparties. Ces outils auront comme base le langage d interface IDL-CORBA, auquel seront apportées les extensions nécessaires, sous forme d annotations pour respecter la compatibilité ascendante. Environnement de base OODE est réalisé au-dessus d Unix. La version actuelle fonctionne sur Bull DPX-20, en utilisant AIX et DCE. Une version Sun-Solaris sera livrée au 1-er semestre Un accès depuis PC-Windows est prévu ultérieurement (1996), ainsi que l intégration de OODE à un environnement CORBA. Parallèlement, des applications pilotes seront réalisées avec des utilisateurs extérieurs. Conclusion Les principales caractéristiques qui font l originalité du projet OODE sont, à notre avis, les suivantes : L environnement OODE est techniquement innovant : il combine dans un environnement unique les avantages d un modèle à objets, la gestion automatique de la persistance, la transparence vis-à-vis de la distribution, et la disponibilité d outils de développement. Les solutions adoptées se situent à la pointe de l état de l art actuel. L environnement OODE fournit un support commode et efficace de développement pour une gamme étendue d applications. Toute application répartie fondée sur le partage d objets, et notamment toute application coopérative, peut bénéficier des services de OODE. L environnement OODE est ouvert et entièrement compatible avec les standards actuels. Le principal langage supporté est un C++ pourvu d extensions permettant de gérer des objets persistants et répartis. Il est alors possible d étendre un programme Unix préexistant écrit en C ou C++, et de lui faire exploiter les possibilités de OODE. Les applications réalisées sur OODE pourront directement interagir avec toute application extérieure en respectant les interfaces définies par le standard CORBA de l OMG. L environnement OODE est le résultat d une réelle coopération Recherche- Industrie. Il est issu d un système prototype conçu et réalisé par une équipe mixte, dans laquelle la participation de Bull et de l IMAG a été équilibrée. Le prototype a été largement diffusé et utilisé à l extérieur. Le passage du prototype au produit, en revanche, a été de la seule responsabilité de l industriel. L environnement OODE constitue une base d expérimentation pour des avancées futures. Les travaux prévus dans le cadre du GIE Bull-INRIA, notamment, Bull-IMAG (ERS 106) 3 Rapport final
10 Transfert Guide-OODE doivent permettre d étendre et de renforcer la gamme d outils disponibles pour le développement, la mise au point, et l administration d applications réparties. Participants aux projets Guide et OODE Projet Guide ( ) Roland Balter, Jacques Bernadat, Fabienne Boyer, Jacques Cayuela, Annie Chabert, Pierre-Yves Chevalier, Adriana Danes, Dominique Decouchant, Andrzej Duda, François Exertier, André Freyssinet, Daniel Hagimont, Hervé Jamrozik, Sacha Krakowiak, Patrick Le Dot, Serge Lacourte, Emmanuel Lenormand, Marie Meysembourg, Jacques Mossière, Véronique Normand, Hiep Nguyen Van, Eric Paire, Rémy Prud homme, Michel Riveill, Cécile Roisin, Xavier Rousset de Pina, Miguel Santana, Frédéric Saunier, Rodrigo Scioville, Gérard Vandôme, Jean-Yves Vion-Dury. N ont pas été comptés les étudiants et stagiaires ayant travaillé dans le projet pendant une durée inférieure à un an. Projet OODE ( ) Roland Balter (jusqu en 1993), Jacques Cayuela, Philippe Coq, Philippe Durieux, André Freyssinet, Marc Herrmann, Serge Lacourte, Miguel Santana, Gérard Vandôme. Bull-IMAG (ERS 106) 4 Rapport final
11 Transfert Guide-OODE Bibliographie du projet Guide ( ) LIVRES, REVUES [Balter 91a] R. Balter, J. Bernadat, D. Decouchant, A. Duda, A. Freyssinet, S. Krakowiak, M. Meysembourg, P. Le Dot, H. Nguyen Van, E. Paire, M. Riveill, C. Roisin, X. Rousset de Pina, R. Scioville, G. Vandôme, Architecture and Implementation of Guide, an Object-Oriented Distributed System, Computing Systems, vol. 4, 1, pp [Balter 91b] R. Balter, J.-P. Banâtre, S. Krakowiak (éditeurs) Construction des systèmes d exploitation répartis, Collection Didactique de l INRIA, juin 1991 Chapitre 2 : S. Krakowiak, Systèmes de communication et machines parallèles Chapitre 4 : S. Krakowiak, Principes et mécanismes de base de la répartition Chapitre 8 : R. Balter, Gestion répartie des transactions [Balter 94] R. Balter, S. Lacourte, M. Riveill, The Guide Language: Design and Experience, The Computer Journal, Dec [Cahill 93] The Comandos Distributed Application Platform, V. Cahill, R. Balter, N. Harris, and X. Rousset de Pina (editors), Springer-Verlag, 1993 [Krakowiak 90] S. Krakowiak, M. Meysembourg, H. Nguyen Van, M. Riveill, C. Roisin, X. Rousset de Pina, Design and Implementation of an Object-Oriented, Strongly Typed Language for Distributed Applications, Journal of Object-Oriented Programming, 3,3, Sept.-Oct. 1990, pp [Riveill 94] Guide, un langage à objets pour la programmation concurrente, Calculateurs Parallèles, 6, 2, 1994 CONGRES A COMITE DE LECTURE AVEC ACTES PUBLIES [Balter 93] R. Balter, P. Y. Chevalier, A. Freyssinet, D. Hagimont, S. Lacourte, X. Rousset de Pina, Is the Microkernel Technology Well-suited for the Support of Objects-Oriented Operating Systems? The Guide Experience,Usenix Workshop on Microkernels and Other Kernel Architectures, Sept [Boyer 91a] F. Boyer, J. Cayuela, P. Y. Chevalier, A. Freyssinet, D. Hagimont, Supporting an Object- Oriented Distributed System: Experience with Unix, Chorus and Mach, Proc. Symposium on Experience with Distributed and Multiprocessor Systems, Atlanta, March 1991 [Boyer 91b] F. Boyer, A Causal Distributed Shared Memory Based on External Pagers, Proc. Mach Symposium, Monterrey, Dec [Chevalier 92b] P. Y. Chevalier, A Replicated Object Server for a Distributed Object-Oriented System, 11th Symposium on Reliable Distributed Systems, IEEE, October 1992 [Chevalier 93] P. Y. Chevalier, A. Freyssinet, D. Hagimont, S. Krakowiak, S. Lacourte, X. Rousset de Pina, Experience with Shared Object Support in the Guide System, Fourth Symposium on Experiences with Distributed and Multiprocessor Systems (SEDMS), Sept Bull-IMAG (ERS 106) 5 Rapport final
12 Transfert Guide-OODE [Chevalier 94a] P. Y. Chevalier, M. Riveill, F. Saunier, Towards a Generic Support System for Co-operative Applications, Proc WET-ICE 94, avril 1994 [Chevalier 94b] P. Y. Chevalier, A. Freyssinet, D. Hagimont, S. Krakowiak, S. Lacourte, J. Mossière, X. Rousset de Pina, Persistent Shared Object Support in the Guide System: Evaluation and Related Work, Proc. Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Portland, Oct [Danès 93] A. Danès, F. Exertier, S. Haj Houssain, Interoperability between a Distributed System and a Database System, 4th International Conf. on Database and Expert Systems Applications (DEXA 93), Prague, 6-8 Sept [Decouchant 90] D. Decouchant, A. Duda, Remote Execution and Communication in Guide, a Distributed Object-Oriented System, IEEE Workshop on Experimental Distributed Systems, Huntsville, Oct [Decouchant 91a] D. Decouchant, P. Le Dot, M. Riveill, C. Roisin, X. Rousset de Pina, A Synchronization Mechanism for Typed Objects in a Distributed System, Proc. 11th International Conf. on Distributed Systems (ICDCS), Arlington, Tx, May 1991 [Decouchant 91b] D. Decouchant, V. Normand, G. Vandôme, Application Design Using the Comandos Distributed Object-Oriented System, HCI 91, sept [Duda 93a] A. Duda, Analysis of Multicast-based Object Replication Strategies in Distributed Systems, Proc. 13th International Conf. on Distributed Systems (ICDCS), Pittsburgh, May 1993 [Duda 93b] A. Duda, J. Cayuela, System Management in the Guide Distributed System, First International Workshop on System Management, 1993 [Freyssinet 91a] A. Freyssinet, S. Krakowiak, S. Lacourte, A Generic Object-Oriented Virtual Machine, Proc. Second Int. Workshop on Object Orientation in Operating Systems, Palo Alto, Oct [Hagimont 92] D. Hagimont, S. Krakowiak, X. Rousset de Pina, Protection in an Object-Oriented Distributed Virtual Machine, 3rd Internat.Workshop on Object Orientation in Operating Systems, Paris, Sept [Hagimont 94] D. Hagimont, Protection in the Guide Object-Oriented Distributed System, Proc. ECOOP 94 (European Conf. on Object-Oriented Programming, Bologna, 4-8 July 1994 [Jamrozik 91] H. Jamrozik, M. Santana, C. Roisin, A Graphical Debugger for Object-Oriented Distributed Programs, TOOLS-USA 91, Santa Barbara, July 1991 [Krakowiak 93] S. Krakowiak, Issues in Object-Oriented Distributed Systems (invited paper), International Conf. on Decentralized and Distributed Systems, IFIP WG 10.3, Palma de Mallorca, Sept (Proceedings to be published by North Holland) [Lacourte 91a] S. Lacourte, Exceptions in Guide, an Object-Oriented Language for Distributed Applications, Proc. ECOOP 91 (European Conf. on Object-Oriented Programming), Genève, July 1991 Bull-IMAG (ERS 106) 6 Rapport final
13 Transfert Guide-OODE [Lacourte 92] S. Lacourte, M. Riveill, Generic System Support for Shared Objects Synchronization, 2nd Internat.Workshop on Object Orientation in Operating Systems, IEEE, Dourdan, Sept [Normand 90] V. Normand, A Practical Framework for Interactive Applications in Guide, an Object- Oriented Distributed System, Proc. Conf. TOOLS 90 (Technology of Object-Oriented Languages and Systems), Paris, June 1990 [Normand 92] V. Normand, J. Coutaz, Unifying the Design and Implementation of User Interfaces through the Object Paradigm, Proc. ECOOP 92 (European Conf. on Object-Oriented Programming, Utrecht, July 1992 [Vion-Dury 94] J.-Y. Vion-Dury, M. Santana, Virtual Images: Interactive Visualisation of Distributed Object- Oriented Systems, Proc. Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Portland, oct COLLOQUES A COMITE DE LECTURE [Chevalier 92a ] P. Y. Chevalier, D. Hagimont, S. Krakowiak, X. Rousset de Pina, System Support for Shared Objects, 5th ACM European SIGOPS Workshop, Le Mont-Saint-Michel, Sept [Chevalier 93] P. Y. Chevalier, D. Hagimont, Apport de la technologie micro-noyau à la construction d un système réparti à objets, Journées des Jeunes Chercheurs en Systèmes Répartis, Grenoble, avril 1993 [Decouchant 92] D. Decouchant, V. Quint, I. Vatton. L édition coopérative de documents avec Griffon. Colloque IHM 92, Paris, décembre [Krakowiak 90] S. Krakowiak, X. Rousset de Pina, Fault-tolerant Execution in the Guide system, ACM European SIGOPS Workshop on Operating Systems, Bologne, Sept [Riveill 92a] M. Riveill, X. Rousset de Pina, Reusable Synchronized Objects, Workshop on Object-Oriented Concurrent Programming, ECOOP 92, Utrecht, July 1992 [Riveill 92b] M. Riveill, An Overview of the Guide Language, Second Workshop on Objects in Large Distributed Applications (OLDA), Vancouver, oct [Riveill 93b] M. Riveill, Appels interlangages - Application aux langages Guide et C++, AFUU, Paris, mars 1993 [Veillard 93] D. Veillard, Communication Support for a Replicated Object Service, 5th European Workshop on Dependable Computing, Lisbonne, feb AUTRES PUBLICATIONS [Krakowiak 90b] S. Krakowiak, L architecture des systèmes informatiques répartis, TELECOM, 83, printemps 1990, pp [Krakowiak 93] Bull-IMAG (ERS 106) 7 Rapport final
14 Transfert Guide-OODE S. Krakowiak, Les systèmes d exploitation, Le Courrier du CNRS, 80, février 1993 HABILITATIONS A DIRIGER DES RECHERCHES [Riveill 93a] M. Riveill, Langages et systèmes pour applications réparties, Habilitation à diriger des recherches, Institut National Polytechnique de Grenoble, janvier 1993 [Rousset de Pina 93] X. Rousset de Pina, Conception et construction de noyaux de systèmes opératoires, Habilitation à diriger des recherches, Université Joseph Fourier, Grenoble, janvier 1993 [Duda 94] A. Duda, Modélisation, conception et réalisation de systèmes répartis, Habilitation à diriger des recherches, Université Joseph Fourier, Grenoble, décembre 1994 THESES [Nguyen Van 91] H. Nguyen Van, Compilation et environnement d exécution d un langage à base d objets, Thèse de Doctorat en Informatique, Institut National Polytechnique de Grenoble (février 1991) [Lacourte 91b] S. Lacourte, Traitement des exceptions dans un langage à objets, Thèse de Doctorat en Informatique, Université Joseph Fourier, Grenoble (juillet 1991) [Freyssinet 91b] A. Freyssinet, Conception et réalisation d un système réparti à objets, Thèse de Doctorat en Informatique, Université Joseph Fourier, Grenoble (juillet 1991) [Exertier 91] F. Exertier, Extension orientée objet d un SGBD relationnel, Thèse de Doctorat en Informatique (travail commun avec le groupe Base de Données), Université Joseph Fourier, Grenoble (décembre 1991) [Normand 92] V. Normand, Le modèle Siroco : de la spécification conceptuelle des interfaces utilisateur à leur réalisation, Thèse de Doctorat en Informatique (travail commun avec le groupe Interface Homme-Machine du LGI), Université Joseph Fourier, Grenoble (avril 1992) [Jamrozik 93] H. Jamrozik, Aide à la mise au point des applications parallèles et réparties à base d objets persistants, Thèse de Doctorat en Informatique, Université Joseph Fourier, Grenoble (mai 1993) [Hagimont 93] D. Hagimont, Adressage et protection dans un système réparti, Thèse de Doctorat en Informatique, Institut National Polytechnique de Grenoble (octobre 1993) [Boyer 94] F. Boyer, Coordination entre outils dans un environnement intégré de développement de logiciel, Thèse de Doctorat en Informatique, Université Joseph Fourier, Grenoble (février 1994) [Chevalier 94] P.-Y. Chevalier, Persistance et disponibilité dans les systèmes répartis : applications à Guide. Thèse de Doctorat en Informatique, Université Joseph Fourier, Grenoble (octobre 1994) RAPPORTS DE L UNITE MIXTE BULL-IMAG Bull-IMAG (ERS 106) 8 Rapport final
15 Transfert Guide-OODE [Bull-IMAG 1-90] R. Balter, J. Bernadat, D. Decouchant, A. Duda, A. Freyssinet, S. Krakowiak, M. Meysembourg, P. Le Dot, H. Nguyen Van, E. Paire, M. Riveill, C. Roisin, X. Rousset de Pina, R. Scioville, G. Vandôme, Architecture and implementation of Guide, an object-oriented distributed system [Bull-IMAG 2-90] S. Krakowiak, M. Meysembourg, H. Nguyen Van, M. Riveill, C. Roisin, X. Rousset de Pina, Design and implementation of an object-oriented, strongly typed language for distributed applications [Bull-IMAG 3-90] H. Nguyen Van, M. Riveill, C. Roisin, Manuel du langage Guide, V1.5 [Bull-IMAG 3-90bis] H. Nguyen Van, M. Riveill, C. Roisin, Guide Language Manual, V1.5 [version anglaise de 3-90] [Bull-IMAG 4-90] M. Riveill, C. Roisin, Exemples de programmes en langage Guide [Bull-IMAG 5-90] S. Lacourte, Exceptions in Guide, an object-oriented language for distributed applications [Bull-IMAG 6-90] V. Normand, A practical framework for interactive applications in Guide, an object-oriented distributed system [Bull-IMAG 7-90] F. Boyer, J. Cayuela, P.-Y. Chevalier, A. Freyssinet, D. Hagimont, Supporting an object-oriented distributed system: experience with Unix, Mach and Chorus [Bull-IMAG 8-91] C. Roisin, M. Santana, The Observer: A tool for observing Object-Oriented Distributed Applications [Bull-IMAG 9-91] D. Decouchant, P. Le Dot, M. Riveill, C. Roisin, X. Rousset de Pina, A synchronization mechanism for typed objects in a distributed system [Bull-IMAG 10-91] D. Decouchant, V. Quint, I. Vatton, Griffon, l application documents de Guide [Bull-IMAG 11-91] V. Normand, Modélisation et génération des interfaces utilisateur dans un environnement à objets [Bull-IMAG 12-92] S. Krakowiak, Spécifications d objectifs et orientations générales pour le système Guide-2 [Bull-IMAG 13-92] S. Krakowiak, X. Rousset de Pina, Architecture du système Guide-2 choix de conception [Bull-IMAG 14-92] J. Cayuela, P.-Y. Chevalier, A. Duda, A. Freyssinet, D. Hagimont, S. Lacourte, P. Le Dot, M. Riveill, X. Rousset de Pina, Spécifications et principes de réalisation de la machine Guide-2 [Bull-IMAG 15-92] L. Koneva, M. Riveill, M. Santana, Extending C++ with persistence and distribution let s do it reasonably [Bull-IMAG 16-92] F. Boyer, A causal distributed shared memory based on external pagers [Bull-IMAG 17-92] P.-Y. Chevalier, A replicated storage server for a distributed system [Bull-IMAG18-92] V. Normand, J. Coutaz, Unifying the design and implementation of user interfaces through the object paradigm [Bull-IMAG 19-92] (également R.R. INRIA 1734) V. Quint, I. Vatton, Hypertext aspects of the Grif structured editor: design and applications [Bull-IMAG 20-93] D. Decouchant, V. Quint, R. Riveill, I. Vatton, Griffon: a Cooperative, Structured, Distributed Document Editor. [Bull-IMAG 21-93] R. Balter, S. Lacourte, M. Riveill, The Guide language: Design and Experience [Bull-IMAG 22-93] M. Riveill, Synchronized Objects: Language and Systems Issues [Bull-IMAG 23-93] P. Y. Chevalier, A. Freyssinet, D. Hagimont, S. Krakowiak, S. Lacourte, X. Rousset de Pina, Experience with Shared Object Support in the Guide System [Bull-IMAG 24-93] P. Y. Chevalier, A. Freyssinet, D. Hagimont, S. Lacourte, X. Rousset de Pina, Is the Microkernel Technology Well-suited for the Support of Objects-Oriented Operating Systems? The Guide Experience Bull-IMAG (ERS 106) 9 Rapport final
16 Transfert Guide-OODE [Bull-IMAG 25-93] A. Duda, Analysis of Multicast-based Object Replication Strategies in Distributed Systems [Bull-IMAG 26-94] J.-Y. Vion-Dury, M. Santana, Virtual Images: Interactive Visualisation of Distributed Object-Oriented Systems [Bull-IMAG 27-94] P. Y. Chevalier, A. Freyssinet, D. Hagimont, S. Krakowiak, S. Lacourte, J. Mossière, X. Rousset de Pina, Persistent Shared Object Support in the Guide System: Evaluation and Related Work [Bull-IMAG 29-94] D. Hagimont, Protection in the Guide Object-Oriented Distributed System [Bull-IMAG 30-94] F. Boyer, Coordinating Software Development Tools with Indra [Bull-IMAG 31-94] F. Boyer, Environnements intégrés de développement de logiciel [Bull-IMAG 32-94] G. Coulouris, J. Dollimore, A Security Model for Cooperative Work DOCUMENTS SUR LE PROJET OODE OODE (Document Bull) Équipe OODE, OODE : une plate-forme objet pour les applications coopératives, La répartition et le parallélisme dans les systèmes d information, Journées AFCET, Paris, novembre 1994 M. Riveill, G. Vandôme, A step beyond the Client-Server Model: the OODE Approach, CODATA 94, 14th Int. Conf. Data and Knowledge in a Changing World, Chambéry, September 1994 Bull-IMAG (ERS 106) 10 Rapport final
17 Bull-IMAG ERS CNRS 106 Activité scientifique et plan de travail du projet Opéra
18
19 Activité scientifique et plan de travail du projet Opéra 1 Composition de l équipe Responsable scientifique Vincent Quint, DR1 Inria Personnel permanent Dominique Decouchant, CR1 CNRS Irène Vatton, IR2 CNRS Cécile Roisin, MdC université Pierre Mendès France Ingénieur contractuel Christian Lenne, ingénieur-expert Inria Chercheurs doctorants Nabil Layaïda, boursier Inria Manuel Romero, boursier étranger Stagiaires de longue durée Philippe Claves, stagiaire CNAM, jusqu en novembre Présentation du projet Le projet Opéra s intéresse aux documents électroniques : documents structurés, hypertextes, multimédia. Il étudie des modèles de documents qui rendent compte à la fois de leur organisation logique ou abstraite, de leur présentation graphique, de leur contenu et de leur aspect temporel (cas des documents multimédia). Il met également au point des techniques d édition qui s appuient sur ces modèles. À long terme l objectif est la conception d un environnement pour le développement de documentations complexes multimédia. Opéra est un projet commun avec l Inria ; à ce titre, il comporte une équipe à l Irisa, dont l activité n est pas présentée dans ce rapport. Objectifs scientifiques L approche retenue pour la manipulation des documents est comparable à celle utilisée en génie logiciel pour l édition des programmes : un document est d abord considéré comme une structure abstraite construite selon le modèle d une structure générique (d une grammaire, dans le cas des programmes). Il en est de même pour les objets de tout type contenus dans le document et qui s intègrent à sa structure globale : formules mathématiques, tableaux, schémas, tables d index, etc. Cette représentation abstraite des documents a été choisie pour permettre des traitements variés et puissants, qui vont bien au-delà de la simple restitution à l identique sur une imprimante ou un écran. Mais en même temps qu on cherche à représenter les documents selon un modèle abstrait, on prête une grande attention aux problèmes de présentation graphique, et particulièrement à la typographie. Le but des travaux menés dans le projet est de dégager les concepts et de définir les outils à mettre en œuvre pour construire des systèmes de production de documents
20 Activités du projet Opéra (documents conventionnels, mais aussi multimédia) qui allient la puissance d expression et de traitement due à une forte structure et le confort d utilisation que permet un haut degré d interactivité, sans compromettre pour autant la qualité graphique du résultat final. Les principaux domaines d application considérés sont la documentation scientifique et technique, l édition professionnelle et les applications multimédia. 3 Activités de recherche Les actions de recherche s appuient en grande partie sur le développement de Grif qui est un système général et paramétrable pour l édition interactive de documents et d objets structurés. Au cours de la période , les travaux ont été menés dans plusieurs domaines : transformations de structures, outils d édition, applications pour le World-Wide Web, mise en page et présentation des documents, applications coopératives basées sur les documents, documents multimédia. 3.1 Transformations de structures Participants : Philippe Claves, Cécile Roisin. La structure logique d un document peut évoluer au cours du temps. En particulier, certaines parties peuvent être amenées à changer de structure lorsqu elles sont copiées dans un contexte différent, ou lorsque la structure générique est modifiée, ou encore lorsqu on structure a posteriori un texte saisi sans structure. Une étude a été menée depuis quelques années pour recenser l ensemble des problèmes de transformation de type (ou de structure) qui se posent dans des documents structurés logiquement selon un modèle générique. Un modèle de type spécifiquement adapté aux documents a été développé (thèse de E. Akpotsui, fin 1993). Il s appuie sur une représentation fonctionnelle des caractéristiques des types permettant d identifier les différences élémentaires entre types ainsi que leurs différences structurales. Ce modèle s applique aussi bien aux documents produits et traités par le système Grif qu aux documents conformes à la norme SGML. Cette étude théorique a été suivie de réalisations pratiques. Des outils de transformation statique ont d abord été développés pour transformer automatiquement la structure logique des documents lorsque des modifications ont été effectuées sur les structures génériques, ou lorsqu on veut faire passer un document d un modèle de structure à un autre. Nous avons ensuite abordé le problème des transformations dynamiques. Il s agit principalement de transformer la structure d une partie de document lorsqu elle est copiée ou déplacée d un document à un autre ou à l intérieur du même document. Le problème est alors que la structure de la partie de document concernée n est pas, en général, conforme à la structure générique qui définit l emplacement où on veut l insérer. Il faut donc la restructurer en fonction de cette structure générique. Un des résultats pratiques est qu il est maintenant possible d effectuer dans l éditeur Grif des commandes couper/coller avec moins de contraintes. 3.2 Outils d édition Participants : Vincent Quint, Irène Vatton. Une approche structurée des documents et la notion de structure générique offrent de nombreuses possibilités qui n ont pas encore été explorées très largement. On connaît les éditeurs structurés, dont Grif est un exemple, les bases de documents (bases SGML le plus souvent) ou encore les formateurs structurés (comme LaTeX). Mais de nombreux types d applications sont encore à venir. Pour en faciliter l émergence, des Bull-IMAG (ERS 106) 14 Rapport final
21 Activités du projet Opéra outils génériques sont nécessaires ; ils permettent de construire rapidement de nouvelles applications. Le premier outil que nous avons construit est dérivé de l éditeur Grif. Il s agit d une bibliothèque qui rassemble toutes les fonctions d édition internes de l éditeur Grif. Ces fonctions peuvent être réutilisées par de nouvelles applications. Grâce au modèle de document structuré, il s agit de fonctions de haut niveau qui prennent en charge les tâches les plus complexes pour les applications interactives de traitement de documents. Les applications traitent les documents en manipulant seulement leur structure et leur contenu, et l affichage et le formatage sont effectués de façon incrémentale par les fonctions de la bibliothèque. Ces fonctions sont accessibles à travers une API (application program interface). Un deuxième outil, le mécanisme d appel externe (ECF : external call facility), complète la bibliothèque d édition et permet de construire des applications sur le concept de document actif. Un document actif est un document électronique qui, lorsque certaines commandes d édition lui sont appliquées par un utilisateur, se transforme lui-même ou agit sur l environnement informatique dans lequel il est traité. Le mécanisme ECF fait partie de l éditeur Grif et permet d étendre l éditeur avec des procédures de traitement particulières à une application, appelées actions, qui sont exécutées lorsque certaines commandes d édition sont effectuées par l utilisateur. Les actions qui constituent l application peuvent utiliser l API, et donc les fonctions d édition, pour agir sur les documents en cours de traitement. Les structures génériques jouent un rôle important dans l ECF, puisque c est en fonction du type d un élément de document, ou en fonction de ses attributs logiques, que les actions de l application peuvent être appelées. Cela donne beaucoup de souplesse dans la conception des applications. Ces deux mécanismes ont été utilisés dans le projet pour développer plusieurs applications centrées sur les documents : comparateur de documents fondé sur la structure, outil de restructuration de tableaux, éditeur pour le World-Wide Web (voir section 3.3). Ils ont aussi été utilisés par plusieurs autres équipes, dans différents types d applications : éditeur coopératif Coopscan (projet Sirac), éditeurs syntaxiques pour les langages Argos (projet Spectre, Inria/Imag), ou pour le langage de base de données Peplom (projet Aristote, Imag), application d hypertexte (projet Chloé, Inria), outil pour les bases de connaissances (projet Acacia, Inria). 3.3 Edition de documents sur le World-Wide Web Participant : Nabil Layaïda, Vincent Quint, Irène Vatton. Le World-Wide Web est un formidable outil de diffusion d informations. Les «browsers» comme Mosaic, Netscape Navigator ou Arena permettent d accéder d une façon très simple aux informations publiées sur le Web. Mais il reste un problème important, celui de la création et de la mise à jour de ces informations. C est à ce problème que le projet s attaque, en développant un outil d édition pour et sur le Web. Les documents publiés sur le Web se caractérisent par leur structuration, qui doit suivre le format HTML, leur répartition : des documents, même sémantiquement proches, peuvent se trouver sur des serveurs différents, les liens hypertextes qui les relient d un serveur à l autre. Un bon outil d édition pour le Web doit donc aider à structurer correctement les documents. Il doit aussi pouvoir accéder à des documents résidant sur un serveur distant et il doit permettre de manipuler simplement les liens inter-documents. Ce sont les objectifs d un travail entrepris en octobre 1994 pour réaliser un client WWW qui combine les fonctions d un «browser» à celles d un éditeur. Ce client est construit sur la base des outils d édition présentés plus haut. Il intègre la bibliothèque WWW pour l accès aux serveurs Web et un analyseur spécifique du langage HTML, qui construit une représentation structurée des documents venant des serveurs. Un prototype a été Bull-IMAG (ERS 106) 15 Rapport final
22 Activités du projet Opéra présenté à la conférence WWW, en avril Les développements se poursuivent pour suivre les évolutions des protocoles WWW, principalement HTML 3 et les feuilles de style. 3.4 Présentation des documents structurés Participant : Cécile Roisin C est à partir de la structure logique d un document qu on construit sa structure graphique, mais d autres paramètres, indépendants de la structure logique, entrent également en jeu, comme la dimension des pages, le nombre de colonnes par page, la taille des hauts de page, la présence de notes de bas de page ou le corps des caractères. De ce fait, la structure graphique peut être très différente de la structure logique ; en particulier le découpage en pages et en colonnes est largement indépendant du découpage en chapitres, sections et paragraphes. Dans un système interactif qui doit maintenir à la fois la structure logique du document et sa structure graphique, cette indépendance pose de nombreux problèmes. Le problème de base est de maintenir la cohérence entre deux structures différentes qui partagent la même information (le contenu du document). L étude de ce problème, menée en 1993, a débouché sur une mise en œuvre dans Grif. L approche adoptée rejoint les propositions de la norme DSSSL (Document Style Semantics and Specification Language). Les résultats obtenus permettent de gérer des structures de pages complexes dans Grif, tout en maintenant la structure logique des documents. Pratiquement, l utilisateur peut obtenir des mises en pages multi-colonnes, tout en travaillant directement au niveau logique, le système prenant en charge toute la complexité graphique. 3.5 Édition coopérative Participants : Dominique Decouchant, Manuel Romero, Irène Vatton. Un éditeur tel que Grif ne résout qu une partie du problème plus général du traitement des documents, surtout lorsqu il s agit de documents complexes, comme ceux de la documentation technique. Un problème important est celui du développement d une grosse documentation par plusieurs rédacteurs travaillant ensemble. C est pour étudier ce problème que nous travaillons sur une application appelée Alliance. Cette application permet à plusieurs utilisateurs, sur des stations de travail reliées par un réseau, d éditer simultanément et de façon coordonnée un ensemble de documents. C est typiquement une application de travail coopératif adaptée à l édition des documents dans un atelier éditorial. Une première expérience a été menée sur un réseau local. Depuis le début de 1995 le champ de l étude a été élargi aux applications coopératives fondées sur les documents. Cette étude donne maintenant lieu à une nouvelle version d Alliance, utilisable à travers l Internet. Il s agit d étendre le travail coopératif sur les documents à d autre contextes d utilisation et à une plus grande communauté d utilisateurs. Les utilisateurs (ou les groupes d utilisateurs) possèdent des rôles différents sur les différentes parties d un document : gestionnaire, rédacteur, lecteur, rôle nul. Ces rôles sont attribués par un des utilisateurs ayant le rôle de gestionnaire. C est à partir de ces rôles que le système divise le document en fragments tels que chaque utilisateur ait un rôle uniforme sur tout le fragment. Alliance s appuie sur cette division en fragments pour assurer le contrôle de la concurrence d accès et pour répartir le document sur différents sites. L application gère la cohérence du document, la protection et la confidentialité lors de l accès aux parties du document. Elle gère aussi la diffusion des contributions de chaque utilisateur : dès qu elles sont validées, les modifications faites par un rédacteur Bull-IMAG (ERS 106) 16 Rapport final
23 Activités du projet Opéra sont reflétées sur les écrans des autres utilisateurs qui le souhaitent. Sur chaque site, les fonctions d édition locale sont assurées par les outils présentés plus haut. La structuration forte des documents manipulés par Alliance facilite le partage qui peut s exprimer sur des fragments de taille très variable, sur lesquels les rôles d intervention des utilisateurs peuvent être modifiés dynamiquement. Au cours des derniers mois, une étude a été menée pour utiliser les mécanismes de base et les protocoles du World-Wide Web. La réalisation de cette extension est en cours. Elle permet de stocker les fragments d un document sur différents serveurs Web et utilise le protocole HTTP pour l échange des fragments de documents entre les sites. 3.6 Édition multimédia Participants : Nabil Layaïda. Au cours des années précédentes, le projet avait travaillé principalement sur les structures logiques, physiques (ou graphiques) et «sémantiques» (les liens hypertextes entre éléments de documents). L étude d un quatrième type de structure, les structures temporelles, a commencé en L objectif est de permettre la modélisation des documents multimédia, dans lesquels la dimension temporelle joue un rôle particulièrement important. On recherche donc un formalisme qui permette d exprimer les relations temporelles (durée d affichage relative, date de démarrage dans un intervalle de temps, synchronisation, etc.) entre les objets multimédia qui interviennent dans un même document ou une même présentation. Ce formalisme doit permettre des calculs, pour vérifier la cohérence des contraintes temporelles. Il doit aussi s adapter à des événements externes, venant de l utilisateur, et qui modifient le cours prévu de l exécution. Les trois premières structures (logique, physique, sémantique) sont maintenant traitées simultanément par les outils présentés plus haut. Cela permet de combiner dans chaque application les fonctions de traitement du contenu, de la structure logique, du formatage et des relations hypertexte. En ajoutant les structures temporelles, les applications pourront bénéficier en plus de fonctions de type multimédia. 4 Activités industrielles Grif SA La technologie d édition structurée et le prototype Grif mis au point dans le projet ont été à la base de la création de la société Grif SA qui commercialise des produits SGML et HTML pour la documentation technique normalisée et la construction d applications centrées sur les documents. Projet Symposia Les travaux présentés dans la section 3.3, menés en collaboration avec la société Grif SA ont donné lieu au produit Symposia, développé par Grif SA, dont une version est disponible par ftp. Projet Géodoc Le projet Opéra a participé avec les sociétés O2 Technology et Grif SA à une étude pour France-Télécom, en vue de réaliser un atelier d édition et de consultation coopératives utilisant le standard SGML. Programme Génie Le projet collabore avec Dassault-Aviation dans le cadre du programme Génie du MESR (Sciences de l information et ingénierie concourante) et Bull-IMAG (ERS 106) 17 Rapport final
24 Activités du projet Opéra contribue plus spécifiquement sur le thème «documentation structurée et interactive». 5 Activités nationales et internationales 5.1 Actions nationales Participation au PRC-CNRS communication homme-machine, groupe collecticiel et systèmes coopératifs (D. Decouchant, M. Romero). Participation aux travaux du SGML Users Group France (V. Quint, I. Vatton). Participation de D. Decouchant aux comités de programme des sixièmes journées sur l ingénierie des interfaces homme-machine (IHM 94, Lille, décembre 1994) et de la conférence IHM 95 (Toulouse, octobre 1995). V. Quint est membre du comité des publications et de la communication scientifique du MESR. 5.2 Actions internationales Participation au comité de rédaction de la revue Electronic Publishing (V. Quint). En particulier, préparation des numéros : vol. 6 n 4 : Electronic Publishing, vol. 7 n 3 : Active Documents. Participation aux comités de programme des conférences et workshops : EP 94, conference on Electronic Publishing and document manipulation, ECHT 94, ACM European Conference on Hypermedia Technology, PODP 94, Principles Of Document Processing, IWHD 95, International Workshop on Hypertext Design. Séjour de I. Vatton à l université du Rio Grande du Sud, Porto Allegre, Brésil, mai Diffusion des résultats 6.1 Enseignement Cours de C. Roisin et I. Vatton à l ESSI, Sophia-Antipolis, janvier et octobre 1994, janvier École romande d informatique, cours de V. Quint, Anzère, Suisse, mars École d été SGML, cours de V. Quint, Talloires, 27 juin-1er juillet École Inria Le traitement électronique du document, cours de V. Quint, Aix-en- Provence, 3-7 octobre Cours postgrade d informatique, École Polytechnique Fédérale de Lausanne, cours de V. Quint, octobre École sur la Gestion des documents électroniques, Hammamet, Tunisie, novembre Participation à des conférences et séminaires Séminaire Adira, Grenoble, 10 février V. Quint, I. Vatton, «Grif : un éditeur de documents structurés». Bull-IMAG (ERS 106) 18 Rapport final
25 Activités du projet Opéra Séminaire alpin en informatique et linguistique, Archamps, 24 février V. Quint, «Les documents structurés», I. Vatton, «Vers un atelier éditorial». Workshop on Human Interaction for Symbolic Computation, Amsterdam, mars V. Quint, «Active Structured Documents as User Interfaces». Workshop PODP 94 (Principles Of Document Processing), Darmstadt, avril C. Roisin «Implementing the Cut and Paste Operation in a Structured Editing System». Exposés et démonstrations à la conférence EP 94, Darmstadt, avril Workshop on Software Engineering and Human-Computer Interaction : Joint Research Issues, ICSE 16, Sorrento, Italie, mai V. Quint, I. Vatton «Active Documents as a Paradigm for Human-Computer Interaction». Journée thématique du GRCE sur la gestion électronique des documents, Paris, 22 novembre V. Quint, «Normalisation et langages de structuration des documents». World-Wide Web Working Group Workshop, Amsterdam, 29 novembre-1er décembre V. Quint, «Should WWW documents be structured?». Séminaire GUTenberg Diffusion des documents électroniques, Nanterre, 19 janvier 1995, V. Quint, «l édition structurée et le World-Wide Web». ERCIM/W4G International Workshop on WWW Authoring and Integration Tools, Paris, 8-10 février 1995, V. Quint, I. Vatton Séminaire du groupe GT-Scoop, Sophia-Antipolis, 10 février 1995, D. Decouchant, M. Romero. Participation au workshop Electronic Publishing in Physics, Paris, 2-3 mars 1995, V. Quint, «SGML and Electronic Publishing». Third International World-Wide Web Conference, Darmstadt, avril 1995, N. Layaïda, V. Quint, M. Romero, I. Vatton. Participation aux démonstrations Inria du CeBIT 95, Hannovre, 8-15 mars 1995, N. Layaïda. World-Wide Web for the Enterprise Workshop, OSF Research Institute / Inria, Grenoble, juin 1995, V. Quint, «Authoring tools for the Web». Conférence HCI, Yokohama, Japon, 8-13 juillet D. Decouchant, N. Layaïda. Séminaire «Concepts of structured editing, Grif, Symposia and Alliance» Rank Xerox Research Center, V. Quint, I. Vatton, Meylan, 7 juillet W3C Workshop on WWW and Collaboration, Cambridge, MA, USA, septembre 1995, V. Quint. Dagstuhl Seminar on Document Processing, Saarbrücken, RFA, octobre 1995, V. Quint, I. Vatton. Conférence IHM 95, Toulouse, octobre 1995, D. Decouchant. Workshop Effective abstractions in multimedia layout presentation and interaction, conférence ACM Multimedia 95, San Francisco, CA, USA, 4-9 novembre 1995, N. Layaïda. 6.3 Organisation de colloques ou de cours V. Quint était chairman de la conférence EP 94 (Darmstadt, avril 1994). V. Quint participe au comité d organisation du Dagstuhl Seminar on Document Processing, octobre V. Quint fait partie du comité scientifique de l école CNI-INRIA sur la gestion de documents électronique, Hammamet, Tunisie, novembre Bull-IMAG (ERS 106) 19 Rapport final
26 Activités du projet Opéra Bibliographie [1] V. Quint, I. Vatton, Active Structured Documents as User Interfaces, workshop Human Interaction for Symbolic Computation, N. Kajler, ed., CWI, Amsterdam, March [2] C. Roisin, E. Akpotsui, Implementing the Cut-and-Paste Operation in a Structured Editing System, Principles of Documents Processing, PODP 94, M. Murata and H. Gallaire, ed., Darmstadt, April [3] C. Roisin, I. Vatton, Merging Logical and Physical Structures in Documents, Electronic Publishing -- Origination, Dissemination and Design, special issue Proceedings of the Fifth International Conference on Electronic Publishing, Document Manipulation and Typography, EP94, 6(4), pp , April [4] V. Quint, I. Vatton, Active Documents as a Paradigm for Human-Computer Interaction, Workshop on Software Engineering and Human-Computer Interaction: Joint Research Issues, Preprints, R. Taylor and J. Coutaz, ed., pp , Sorrento, Italy, May [5] V. Quint, I. Vatton, Making Structured Documents Active, Electronic Publishing -- Origination, Dissemination and Design, 7(2), pp , June [6] V. Quint, Édition de documents structurés, Le traitement électronique du document, pp , ADBS éditions, Paris, octobre [7] D. Decouchant, Rétroaction de groupe et édition coopérative de documents structurés, IHM 94, Sixièmes journées sur l ingénierie des interfaces hommemachine, pp , Lille, 8-9 décembre [8] N. Layaïda, J.-Y. Vion-Dury, Interface d édition de documents structurés multimédia, IHM 94, Sixièmes journées sur l ingénierie des interfaces hommemachine, pp , Lille, 8-9 décembre [9] J. André, I. Vatton, Dynamic Optical Scaling and Variable Sized Characters, Electronic Publishing -- Origination, Dissemination and Design, 7(4), pp , December [10] E. Akpotsui, V. Quint, C. Roisin, Type Modelling for Document Transformation in Structured Editing Systems, Mathematical and Computer Modelling, à paraître. [11] V. Quint, I. Vatton, L édition structurée et le World-Wide Web, Cahiers GUTenberg, (19), pp , janvier [12] V. Quint, C. Roisin, I. Vatton, A Structured Authoring Environment for the World-Wide Web, Computer Networks and ISDN Systems, 27(6), pp , April [13] D. Decouchant, Structured Cooperative Editing and Group Awareness, HCI International 95, 6th International Conference on Human-Computer Bull-IMAG (ERS 106) 20 Rapport final
27 Activités du projet Opéra Interaction, Y. Anzai, K. Ogawa and H. Mori, ed., pp , Elsevier Science, Yokohama, 9-14 July [14] N. Layaïda, J.-Y. Vion-Dury, Multimedia Authoring: A 3D Interactive Visualization Interface based on a Structured Document Model, HCI International 95, 6th International Conference on Human-Computer Interaction, Y. Anzai, K. Ogawa and H. Mori, ed., pp , Elsevier Science, Yokohama, 9-14 July [15] D. Decouchant, V. Quint, M. Romero, Structured and Distributed Cooperative Editing in a Large Scale Network, Groupware and Authoring, R. Rada, ed., Academic Press, à paraître, [16] V. Quint, I. Vatton, J. Paoli, Active Structured Documents as User Interfaces, in Human Interaction for Symbolic Computations, Springer Verlag, Texts and Monographs in Symbolic Computation, à paraître [17] N. Layaïda, C. Kéramane, Maintaining Temporal Consistency of Multimedia Documents, Workshop Multimedia 95, San Francisco, novembre [18] D. Decouchant, V. Quint, M. Romero, Structured Cooperative Authoring on the World-Wide Web, 4th International World-Wide Web Conference, décembre Bull-IMAG (ERS 106) 21 Rapport final
28 Activités du projet Opéra Bull-IMAG (ERS 106) 22 Rapport final
29 Bull-IMAG ERS CNRS 106 Objectifs et plan de travail du projet Sirac
30
31 Systèmes Informatiques Répartis pour Applications Coopératives 1. Introduction Contexte et motivations du projet Objectifs du projet Domaines d application du projet Programme de travail Action : Construction d applications coopératives Problèmes et voies d approche Modèle d assemblage et langage d interconnexion de composants Outils de construction et d administration Services de coordination Expérimentations Plan de travail et résultats attendus Action : Gestion de données partagées persistantes réparties Problèmes et voies d approche Application pilote : service de gestion de données persistantes sur machines homogènes ) Architecture de base ) Service générique de gestion de cohérence ) Résistance aux pannes ) Protection ) Expérimentations Plan de travail et résultats attendus Collaborations industrielles Actions nationales et internationales Collaborations nationales Collaborations internationales Autres éléments de visibilité Diffusion des résultats Actions de formation Diffusion de prototypes Relations extérieures et démonstrations Publications récentes Bibliographie...53
32 Systèmes Informatiques Répartis pour Applications Coopératives Composition du projet Responsable scientifique : R. Balter, Professeur à l Université Joseph Fourier Bull-IMAG, 2 av. de Vignate, Gières, tel , fax Effectifs permanents : Universités : F. Boyer, Maître de Conférences à l Université Joseph Fourier, S. Krakowiak, Professeur à l Université Joseph Fourier, J. Mossière, Professeur à l Institut National Polytechnique de Grenoble, M. Riveill, Professeur à l Université de Savoie, X. Rousset de Pina, Professeur à l Institut National Polytechnique de Grenoble. INRIA : D. Hagimont, CR2. Boursiers de thèse (entre parenthèses, année prévue de soutenance) : S. Ben Atallah (1996), L. Bellissard (1997), E. Cortés (1996), T. Han (1996), R. Kanawati (1996), A. Knaff (1996), E. Lenormand (1996), F. Saunier (1996), Jean-Yves Vion-Dury (1997). Collaborateurs extérieurs : Personnel Bull : collaboration à temps partiel de : P. Dechamboux, A. Freyssinet, M. Herrmann, S. Lacourte, ingénieurs. Ingénieurs, personnels techniques et administratifs : B. Claudio, secrétaire sous contrat.
33 Systèmes Informatiques Répartis pour Applications Coopératives Objectifs et plan de travail Résumé. Ce document présente une proposition de projet dans le domaine des concepts, outils et services pour la construction de systèmes et applications répartis. Il est organisé ainsi : La section 1 présente le contexte, les objectifs et le domaine d application du projet. La section 2 présente le programme des actions prévues dans le projet. La section 3 présente les collaborations industrielles et les actions de valorisation envisagées. Les sections 4 et 5 présentent les actions nationales et internationales, ainsi que la diffusion des résultats scientifiques. 1. Introduction 1.1. Contexte et motivations du projet L évolution des systèmes informatiques vers des configurations réparties est un phénomène général qui concerne tous les secteurs d activité. Elle est favorisée par la généralisation des réseaux de communication et par la tendance des entreprises à décentraliser leurs structures de production et de décision. Paradoxalement, les applications réparties ayant un caractère opérationnel sont encore peu répandues, en raison de la complexité de la programmation distribuée et du manque d outils et services pour le développement de ces applications. Depuis plusieurs années, l équipe proposante effectue des recherches dans ce domaine. L objectif global de ces travaux est de fournir un environnement adapté à la construction et à l exécution d applications réparties, en vue de réduire les coûts de développement et de maintenance de ces applications. Cet environnement se compose d un ensemble d outils pour la construction d applications réparties (programmation, mise au point, administration) et des services correspondants (désignation, exécution répartie, communication, etc.) nécessaires à l exécution de ces applications sur des plate-formes d usage commun (Unix par exemple). Afin de mieux situer la nature de notre contribution par rapport à l état de l art, nous rappelons brièvement ci-dessous les étapes principales de l évolution des environnements de développement et d exécution d applications réparties. Le point de départ de cette rétrospective est l utilisation directe des mécanismes primitifs de communication (par exemple les sockets Unix). Dans un premier temps, la disponibilité de l appel de procédure à distance et de langages de description d interfaces (IDL) avec leur compilateur permet de faciliter la mise en œuvre d applications fondées sur un simple modèle client-serveur. Par la suite, une étape significative est franchie avec la disponibilité d environnements intégrant des services de communication et des services applicatifs. DCE (Distributed Computing Environment) de l OSF est un exemple d un tel environnement qui étend la plate-forme sous-jacente avec un ensemble de services
34 Proposition de projet Sirac ( threads, RPC, désignation, temps, fichiers répartis, etc.) pour la construction et l exécution d applications réparties. Cependant, la manipulation des services à travers une bibliothèque de fonctions prédéfinies ne permet pas de bénéficier pleinement de la richesse de la plate-forme étendue. Par ailleurs, le modèle de construction d applications et les outils de développement restent du niveau de l appel de procédure à distance. La description des composants d une application répartie à l aide d objets apporte un progrès grâce à la présentation uniforme des composants, et à l utilisation des propriétés des modèles à objet pour définir leurs interfaces d accès. Le langage de description d interface prend alors la forme d un langage à objets et la mise en œuvre des appels d objets est réalisée par un service particulier, le courtier d objets (Object Request Broker, ou ORB). L OMG a défini et normalisé le langage de description d interfaces (IDL) et le service ORB sous-jacent. Ce service de base est progressivement enrichi de nouvelles fonctions nécessaires à la mise en œuvre d applications, telles que la persistance, la désignation, les transactions, la gestion d événements, etc., regroupés sous le terme générique de Services Objets (Object Services). Les outils de développement, autres que le compilateur du langage IDL, sont encore peu développés. Un autre schéma d intégration de composants est celui du bus logiciel, initialement proposé pour l intégration d outils dans un environnement de développement de logiciel. Un bus logiciel réalise un service de communication par événements ou par messages, auquel peuvent se connecter des processus clients ou serveurs. Le bus réalise une diffusion sélective (les processus pouvant s abonner à des classes d événements). Des versions réparties de bus logiciels commencent à être développées, essentiellement sur des réseaux locaux. Certaines de ces réalisations s appuient sur l ORB de l OMG. Une voie parallèle et complémentaire de l approche de construction d applications par intégration de composants a été explorée par l équipe proposante dans le cadre du projet Guide ( ). Le principe directeur est la réalisation d un environnement intégré défini à partir d un schéma de construction d applications réparties. Ce schéma permet de décrire une application comme un ensemble d objets répartis coopérants, et d exprimer la communication et la synchronisation entre calculs répartis. Le schéma est mis en œuvre à l aide d un langage de programmation (C++ étendu avec la persistance et la distribution) afin de faciliter la construction des applications. Cette approche apporte un gain de conception significatif, dans la mesure où un seul langage permet d exprimer les aspects propres à l application, à la distribution et à la persistance. La plate-forme de base (Unix) est étendue avec les services nécessaires à l exécution des applications et à la gestion des objets persistants répartis. A partir du prototype de recherche réalisé dans le projet Guide, Bull a développé une plate-forme industrielle, OODE, actuellement en cours de test chez ses premiers utilisateurs. La Figure 1 schématise les principales approches disponibles aujourd hui pour la construction d applications réparties. La couche la plus basse fait référence à une plateforme Unix enrichie par des services de communication (de type DCE). Le terme Machine Virtuelle 1 fait référence à un ensemble de services de base, construits sur la plate-forme sous-jacente, pour l exécution des applications. Ces services permettent de mettre en œuvre les abstractions du modèle d exécution considéré pour la construction d une application répartie. Un modèle d exécution plus riche se traduit par un gain de productivité en termes de conception de l application d une part, et par une complexité accrue de la machine virtuelle correspondante d autre part. 1 La machine virtuelle est généralement mise en œuvre sous forme d une bibliothèque de fonctions accessible à travers une interface de programmation (API) plus ou moins intégrée dans un langage de programmation. Bull-IMAG (ERS 106) 28 Rapport final
35 Proposition de projet Sirac Modèle à objets persistants langage à objets persistants et répartis Applications Réparties Modèle Client-Serveur langage de progr. +IDL Modèle hyper-média Machine virtuelle à objets Machine virtuelle CORBA Object Services persistence événements, etc. ORB Unix étendu (DCE, ONC, etc.) + communications Machine virtuelle WWW Figure 1. Environnements pour la construction d applications réparties Trois environnements particuliers sont illustrés sur cette figure : un environnement de type OMG, orienté principalement vers l intégration d applications existantes, un environnement à la Guide, orienté vers la construction de nouvelles applications à base d objets partagés persistants, un environnement de type World Wide Web, pour des applications orientées vers l accès à des sources d informations largement réparties. Ces trois modes de construction ne sont pas incompatibles et peuvent être combinés pour la construction d une application particulière Objectifs du projet L objectif général du projet proposé est de concevoir et de réaliser un environnement pour le développement et l exécution d applications réparties. La démarche suivie s appuie sur la réalisation de prototypes expérimentaux et sur leur validation au moyen d applications réelles. La classe d applications considérée en priorité est celle des applications coopératives, caractérisée dans la section suivante. Cependant, les résultats du projet devraient aussi pouvoir trouver une application directe à d autres domaines d activité. Dans un premier temps, on s intéressera principalement à fusionner les approches de construction d application par intégration de composants existants et par développement de nouveaux composants. En effet, une application répartie est souvent réalisée comme un assemblage de composants, dont certains sont récupérés à partir d applications existantes, et dont d autres sont à construire, en utilisant des techniques à base d objets persistants, dont l expérience du projet Guide a montré l intérêt. La construction d applications réparties sur une plate-forme de type WWW est expérimentée par ailleurs dans le cadre de projets compagnons menés par des équipes entretenant des relations étroites avec l équipe proposante (voir plus loin). Le projet développera des actions de recherche dans les deux domaines suivants : Bull-IMAG (ERS 106) 29 Rapport final
36 Proposition de projet Sirac Construction d applications réparties. L objectif est de fournir des outils répondant à deux besoins : a) construire des applications réparties en combinant des techniques de programmation à base d objets et des techniques d intégration de composants ; b) faciliter l administration, la configuration et l évolution de ces applications. Les applications coopératives, et notamment les collecticiels synchrones, constituent un domaine d application privilégié pour l expérimentation et la validation des outils. Services pour le support d objets partagés persistants répartis. L objectif est de fournir un support générique et efficace utilisable pour la construction de plateformes à objets répartis et de serveurs d objets, en utilisant une mémoire virtuelle partagée répartie. Sa conception tient compte des nouvelles infrastructures matérielles (grandes mémoires virtuelles et réseaux rapides) et de l évolution des concepts (nouvelles formes de cohérence). Les deux actions qui constituent le projet proposé sont complémentaires. La première doit faciliter la construction et l administration d applications complexes à partir de composants provenant d environnements différents, et vise à améliorer la productivité des équipes de développement. La seconde doit fournir des services permettant l exécution efficace et sûre d applications, construites en termes d objets répartis communicants. Néanmoins, aucune des actions ne dépend de manière critique des résultats de l autre ; en effet, les outils pourront être utilisés sur une plate-forme standard, et les services pourront être utilisés de manière autonome comme base de nouvelles applications. L intégration forte des résultats fournis par les deux actions n est pas un objectif prioritaire du projet. L articulation entre les deux actions du projet se situe principalement dans l utilisation du concept d objets partagés répartis. En effet, le partage d information est une caractéristique essentielle de la classe d applications considérée, pour laquelle l utilisation d un modèle de programmation par mémoire partagée a montré son intérêt. Une partie des méthodes et outils de construction d applications sera donc fondée sur ce principe. Cependant, un reproche généralement adressé à cette approche concerne l efficacité de mise en œuvre sur des architectures faiblement couplées. L action concernant les services doit s attacher à démontrer qu il est possible de fournir un tel service dans de bonnes conditions de performances et de fiabilité. La structure générale du projet est décrite sur la Figure 2. Applications Coopératives Outils de construction et d'administration application = assemblage de composants Services pour objets persistants répartis ORB + Object Services Unix étendu (DCE, ONC, etc.) + communications Figure 2. Structure et contexte du projet Sirac Bull-IMAG (ERS 106) 30 Rapport final
37 Proposition de projet Sirac Afin de favoriser la valorisation et le transfert des résultats du projet, un effort particulier portera sur l utilisation de plates-formes de développement d usage commun (UNIX dans un premier temps) et d environnements en cours de normalisation, tels que CORBA de l OMG. Compte tenu de l évolution rapide du domaine des systèmes répartis à objets, d autres composants pourront être pris en considération en cours de projet si cela s avère nécessaire. Deux cibles principales sont envisagées pour valoriser les résultats du projet : les fournisseurs de technologie (constructeurs, sociétés de service) qui pourraient intégrer tout ou partie des outils et services développés par le projet dans leurs environnements propres. les utilisateurs, pour la mise en œuvre d une application particulière à l aide de la technologie développée par le projet. Il existe déjà une coopération étroite avec la société Bull, faisant suite aux collaborations antérieures établies dans le cadre de l Unité Mixte Bull-IMAG. Dans un premier temps, cette coopération se limite à l action portant sur les outils de développement d applications coopératives. Une partie des travaux correspondants se placera dans le cadre du GIE Bull-INRIA en cours de constitution. Des contacts ont été établis par ailleurs concernant les retombées potentielles de l action portant sur les services de gestion d objets répartis. Pour favoriser le transfert des résultats, il est prévu que le matériel Bull DPX-20 et la plate-forme OODE (version industrielle du système à objets Guide) soient initialement utilisés comme supports principaux du projet. D autres coopérations industrielles sont en cours de développement, en particulier avec le CNET et avec le Centre de Recherche XEROX (voir section 3). Le projet proposé prend place dans un ensemble d activités de recherche et de développement dans le domaine des systèmes et applications répartis, qui sont aujourd hui regroupées au sein du laboratoire Bull-IMAG : Gestion de documents structurés, avec extension vers les documents multimédia, l édition coopérative et la collaboration à grande distance dans le projet Opéra. Infrastructures de gestion d information (notamment multimédia) sur grands réseaux. Cette activité a été démarrée à Bull-IMAG en mi-1994 au retour d Andrzej Duda (chercheur CNRS du projet Guide ayant séjourné au MIT grâce à une bourse de l INRIA). Infrastructures de systèmes à objets, gestion de bases de données et support d activités multimédia chez Bull. Les échanges et interactions avec cet environnement, facilités par la concentration géographique, doivent faciliter la prise en compte par le projet Sirac des besoins des applications, ainsi que la caractérisation de solutions potentielles aux problèmes posés par la construction de différentes classes d applications réparties Domaines d application du projet La classe d applications considérée en priorité est celle des applications coopératives, caractérisée par la coopération autour d une tâche commune d équipes géographiquement réparties, avec partage étroit d information (éventuellement multimédia) et interaction en temps réel. Partage et interaction devront prendre une forme beaucoup plus intégrée que les modes actuels (transfert de fichiers et courrier électronique). Les domaines d application du travail coopératif sont très variés et intéressent de nombreux secteurs d activité, parmi lesquels on peut citer : formation (télé-enseignement), santé (télé-diagnostic, gestion coordonnée de ressources Bull-IMAG (ERS 106) 31 Rapport final
38 Proposition de projet Sirac hospitalières), conception assistée par ordinateur (circuits, mécanique, architecture, etc.), et plus généralement la bureautique (téléconférence, édition coopérative de documents, etc.) et les systèmes d aide à la décision. Il s agit donc d un domaine très étendu, qui fait l objet d une attention croissante de la communauté scientifique. Ces dernières années un effort particulier a porté sur la puissance et la convivialité des services de coopération offerts aux utilisateurs de ces logiciels pour un secteur d application donné. En comparaison, il y a eu beaucoup moins de travaux portant sur la conception et la mise en œuvre d infrastructures pour le développement de ces applications. La plupart des applications issues de ces travaux ont été réalisées à l aide de mécanismes ad hoc sur des plate-formes d usage commun (Unix et/ou Windows). Ceci se traduit en général par une grande hétérogénéité des solutions et par une certaine difficulté à faire évoluer ces applications pour prendre en compte l évolution des besoins et à réutiliser tout ou partie d un système existant pour construire une nouvelle classe d application. Cette absence de généricité se traduit globalement par un coût de production et de maintenance élevé. Par ailleurs, un certain nombre de produits sont aujourd hui disponibles sur le marché. Pour la plupart, ces produits combinent la fonction de communication offerte par un système de courrier électronique avec une fonction de partage d information fournie par une base de données (centralisée ou répartie). Le logiciel Lotus Notes est un exemple type d un tel produit, largement utilisé aujourd hui pour mettre en œuvre des applications simples, fondées sur des formes de coopération asynchrones. L utilisation de ces solutions pour mettre en œuvre des applications plus complexes demeure problématique. Dans le projet Sirac on s intéresse principalement aux applications coopératives présentant un niveau de complexité qui justifie l utilisation de méthodes et outils appropriés pour leur conception. De telles applications sont conçues en général pour un secteur précis et ont une diffusion limitée à quelques dizaines d exemplaires. Un exemple d une telle application est la gestion coordonnée de ressources hospitalières en cours d étude en partenariat avec l hôpital de Grenoble. Les ressources considérées dans cette application sont de différentes natures : ressources humaines (médecins, infirmières, etc.), équipements (scanner, rééducation, etc.) et salles (salle d opération, chambre de malade, etc.). Ces ressources sont gérées par des services géographiquement distribués, et présentant un degré plus ou moins grand d autonomie. Un certain nombre d applications existent déjà dans certains services pour la gestion des ressources locales. L objectif de l hôpital est d introduire une gestion coordonnée globale de ces ressources pour assurer un fonctionnement optimal (en vue d une réduction du coût global des actes médicaux). L automatisation du processus de gestion globale des ressources est difficile dans la mesure où un grand nombre d actes médicaux requièrent une combinaison de ressources dont l allocation fait souvent l objet d une négociation entre plusieurs services. Par ailleurs il est nécessaire de faire face à des demandes inattendues (pour le traitement des urgences par exemple). L objectif de l application est donc de fournir des mécanismes d interaction entre les services de l hôpital pour une meilleure adéquation des ressources à la demande. L objectif du projet Sirac n est pas d innover dans le domaine des applications. La prise en compte des applications répond à un double objectif : étude des besoins en vue d établir un cahier des charges pour l environnement de développement d une part, fournir une base expérimentale pour valider et évaluer les résultats du projet d autre part. L étude et la mise en œuvre d applications réelles devrait permettre, par ailleurs, d identifier de nouveaux problèmes de nature système, qui pourront être pris en compte en cours de projet. On trouve dans la littérature plusieurs tentatives de classification des applications coopératives [Ellis 94], [Malm 94]. Ces études utilisent divers critères (type de service offert, critère espace/temps, etc.) pour caractériser les besoins des classes d application Bull-IMAG (ERS 106) 32 Rapport final
39 Proposition de projet Sirac en termes d architecture, de méthodologies et outils de conception et de services systèmes nécessaires à leur mise en œuvre. Ces classifications ne sont pas totalement satisfaisantes dans la mesure où les applications coopératives considérées dans le projet combinent les besoins de plusieurs classes d applications. C est pourquoi nous préférons utiliser un mode de caractérisation plus large, dans lequel une application coopérative peut être représentée par une séquence d interactions entre un ensemble d entités (appelées des agents dans la suite), qui représentent des utilisateurs ou des composants logiciels. En utilisant ce modèle simple, une application coopérative est donc définie par les éléments suivants : l espace de coopération, représenté par les données partagées et réparties, qui permet une communication indirecte entre les agents coopérants. les canaux de communication, qui permettent des échanges directs entre les agents (par exemple, un canal audio dans un collecticiel synchrone) le module de coordination, qui permet de contrôler globalement les interactions entre agents via l espace de coopération et les canaux de communication. Une étude plus approfondie des applications conçues selon ce modèle permet d identifier un certain nombre de besoins, parmi lesquels on peut citer : la réutilisation d applications existantes, combinée avec le développement de logiciels additionnels. En effet, un nombre significatif d applications coopératives sont conçues à partir d applications mono-usager (existantes) pilotées par un module de coordination (à développer). la dynamicité des applications : la composition d une application évolue pendant l exécution de l application, par exemple par suite des connexions et déconnexions dynamiques de participants à l application. la mise en œuvre de l espace de coopération met en évidence l importance du partage de données, le plus souvent géographiquement distribuées. Le contrôle du partage requiert une gamme plus ou moins étendue de mécanismes de synchronisation (exclusion mutuelle, lecteurs-rédacteur, transactions, etc.). la gestion des canaux de communication directs requiert des mécanismes de gestion des ressources physiques, ainsi que des services de plus haut niveau permettant de mettre en oeuvre des schémas de coordination divers entre les agents On distingue principalement un service de communication asynchrone (événementielle), assorti d un service de désignation associative, permettant une communication anonyme entre les agents participants. l administration de l application : le déploiement de l application dans un environnement réparti donné nécessite que certaines parties de l application (placement des données et des agents, utilisation des canaux de communication, etc.) puissent être réglés en fonction de cet environnement. La fonction d administration doit, en particulier, prendre en compte les contraintes imposées par l autonomie et l hétérogénéité des sites participants. 2. Programme de travail 2.1. Action : Construction d applications coopératives Cette action est motivée par le souci de faciliter le développement et la maintenance des applications réparties, et donc de réduire le coût de ces opérations. Sont plus spécifiquement visées les applications coopératives, caractérisées plus haut PROBLEMES ET VOIES D APPROCHE Bull-IMAG (ERS 106) 33 Rapport final
40 Proposition de projet Sirac Les problèmes posés par la construction d applications coopératives sont la résultante de deux facteurs : d une part les problèmes posés de façon générique par la construction d applications réparties de taille significative, et d autre part les problèmes spécifiques engendrés par la coopération, qui ont été identifiés dans la section précédente. Les grandes applications réparties sont le plus souvent construites en assemblant des composants existants avec des composants nouveaux, au moyen d outils de connexion et d intégration. L utilisation des langages de description d interfaces (IDL) représente un premier niveau d outils, qui permet de séparer la spécification de l interface d accès des composants (identification des services rendus et de leurs paramètres) de leur réalisation. L automatisation du processus de construction d une application répartie est limitée à la génération automatique des talons pour le programme client et le programme serveur. Par ailleurs, les relations entre composants, telles qu elles sont définies informellement dans le schéma d architecture d un logiciel, sont noyées dans le code de l application et ne sont donc pas explicitées. De manière plus spécifique, les applications coopératives font intervenir des composants logiciels autonomes et hétérogènes. Les composants sont autonomes dans le sens où il est difficile de connaître au lancement d une application quels composants vont exister à un instant donné de l exécution de l application, quelles propriétés ils posséderont, et dans quelles coopérations ils interviendront 2. Ils sont hétérogènes par le fait qu ils ont été conçus et développés indépendamment les uns des autres, et qu ils sont éventuellement écrits dans des langages différents. Par ailleurs, l étude des besoins des applications coopératives, présentée brièvement dans la section précédente, a permis de mettre en évidence les problèmes engendrés par la structure dynamique de ces applications et par la mise en oeuvre de la coordination. La démarche adoptée dans le projet vise à fournir un environnement adapté à la résolution de ces problèmes. Cet environnement est composé des éléments décrits cidessous, qui constituent les axes de travail de cette action du projet Sirac. 1) La description globale d une application repose sur la définition d un modèle d assemblage, qui permet d exprimer différents types de relations (dépendance, conformité, modes d interaction) entre les composants de l application. En particulier, le modèle permet d expliciter le caractère dynamique d une application en offrant la possibilité de structurer et de contrôler l évolution des composants et les interactions entre les composants, et de les faire évoluer pour s adapter à l évolution de l application et de son environnement. Les éléments du modèle d assemblage sont mis en œuvre par un langage d interconnexion de modules (MIL) qui est indépendant de tout langage de programmation. L approche considérée consiste à compléter la description fournie par un langage de description d interfaces, tel que l IDL de CORBA, par diverses annotations permettant de spécifier des propriétés supplémentaires, telles que des conditions de synchronisation sur ses opérations, des contraintes de qualité de service ou d administration (placement par exemple), ou les interactions d un composant avec son environnement (événements émis ou attendus). Le modèle d assemblage et le langage d interconnexion de modules sont présentés au ) L utilisation du modèle d assemblage et du langage d interconnexion associé sera facilitée par la disponibilité d un certain nombre d outils de développement, qui correspondent aux diverses phases du processus de construction de logiciel : description des composants, configuration d une application, mise au point, administration. La nature et le rôle des outils de construction et d administration sont décrits au Un exemple typique de cette situation résulte de la connexion dynamique de participants dans une application de télé-conférence. Bull-IMAG (ERS 106) 34 Rapport final
41 Proposition de projet Sirac 3) L exécution d applications réparties, construites à l aide du modèle d assemblage ainsi défini, nécessite un certain nombre de fonctions pour le contrôle opérationnel des interactions entre les composants. Dans certains cas, une partie de ces fonctions peut être fournie directement par la plate-forme sous-jacente. C est le cas par exemple si on désire utiliser les fonctions d un courtier d objets (Object Request Broker) ou d un bus logiciel existant. En règle générale, les fonctions offertes par ces logiciels sont insuffisantes pour assurer, à l exécution, le contrôle fin de certaines interactions. C est pourquoi le projet développera une bibliothèque de fonctions, constituant l exécutif du langage d interconnexion de modules. Parmi les fonctions envisagées en priorité, on peut citer : un service de gestion d événements, un service de désignation associative et un service de gestion de groupes. Ces services sont désignés globalement sous le terme services de coordination et sont décrits au ) Un objectif complémentaire de l action est d expérimenter et de valider les méthodes, outils et services définis ci-dessus sur différentes applications réparties. Dans un premier temps, on s intéressera plus particulièrement aux applications coopératives synchrones et on cherchera à mettre en évidence une architecture et des services génériques pour ces applications, par opposition à l approche utilisée aujourd hui, qui consiste à construire des mécanismes sur mesure pour une plateforme particulière MODELE D ASSEMBLAGE ET LANGAGE D INTERCONNEXION DE COMPOSANTS (L. Bellissard, F. Boyer, M. Riveill) L objectif de cet axe de travail est d étendre le champ d application des langages de description d interface pour permettre aux programmeurs de construire des applications réparties et coopératives par assemblage de composants pouvant représenter des logiciels ou des portions de logiciels écrits dans des langages de programmation quelconques. Nous proposons un langage de description d interface, étendu au travers d annotations, qui permet de structurer une application comme une hiérarchie de composants logiciels coopérants. Les composants logiciels peuvent être complexes, c est à dire formés de sous-composants interconnectés, ou primitifs, encapsulant des entités logicielles programmées dans un langage quelconque. Cette structuration de l application constitue le support à partir duquel vont être exprimées explicitement l organisation dynamique et les propriétés de l application répartie. Ces propriétés peuvent être classées en cinq grandes catégories. Propriétés propres à un composant. Des informations de contrôle peuvent être associées aux points d entrée d un composant pour spécifier d une part des conditions de synchronisation sur ses opérations (exclusion mutuelle, schéma de type lecteursrédacteurs, etc.), d autre part des conditions de protection (restrictions d accès). Notons qu un composant peut être accessible à travers plusieurs interfaces, correspondant chacune à un mode particulier d utilisation (exploitation, administration, observation, configuration, etc.). Ressources nécessaires à l exécution d un composant. Cette information permet d adapter les services du système aux besoins spécifiques (et variables) des applications, en vue notamment de mieux assurer les fonctions demandées et d améliorer les performances (contraintes de qualité de service, regroupement de composants sur une même machine, sécurité, duplication, etc.). Par ailleurs, la description des services requis pour l exécution d un composant permet de vérifier, avant exécution, que le composant est correctement installé. Interactions d un composant avec son environnement. Ces informations permettent de décrire certains aspects dynamiques du composant : création dynamique du composant à l appel d une de ses méthodes, événements émis ou attendus, nature des flots de données établis entre deux composants (flots continus, synchronisation entre plusieurs flots). Bull-IMAG (ERS 106) 35 Rapport final
42 Proposition de projet Sirac Relations de conformité. Les règles de conformité permettent d exprimer que l interface d un composant correspond aux services qui en sont attendus, et définissent ainsi une équivalence entre composants. Au delà des aspects purement syntaxiques (conformité d un sous-type à un type), il est intéressant de pouvoir étendre les règles de conformité pour prendre en compte des aspects fonctionnels (performances, qualité de service, etc) ainsi que les interactions entre composants. Propriétés relatives à l administration. L intégration au sein du langage d interconnexion de propriétés propres à l administration d une application constitue un aspect novateur de l approche retenue dans le projet. L administration définit entre autres le réglage de l application de manière à exploiter au mieux les ressources de l environnement d exécution (machines, réseaux de communication, nature des utilisateurs, etc.). Le langage d interconnexion permet d exprimer certains aspects de ce réglage. La fonction d administration regroupe le placement des composants, l observation et l évaluation de leur comportement, et leur mise au point. L interprétation du langage de description d interface étendu par des annotations doit permettre d automatiser en partie la génération du code qui met en œuvre le contrôle d accès aux points d entrée d un composant, les schémas de coordination entre composants, ainsi que le code nécessaire à l utilisation des outils d administration, de configuration ou d observation OUTILS DE CONSTRUCTION ET D ADMINISTRATION (L. Bellissard, M. Riveill, J.-Y. Vion-Dury) Les outils sont destinés à aider le concepteur dans les différentes phases d élaboration d une application. La figure 3 synthétise les relations existantes entre les outils qui seront développés dans le projet. Interfaces + annotations Outils de Conception Outils de Configuration Classes + code existant Outils d' administration Application coopérative = {composants coopérants} Outils de Mise au point Figure 3. Les outils de développement Outils de conception. Ils concernent la description des interfaces des composants, étendues à l aide des annotations. Cette description peut être réalisée directement à l aide du langage d interconnexion, ou indirectement au travers d outils graphiques interactifs. Ces outils permettent de construire de nouveaux composants de manière visuelle ou de rechercher des composants déjà existants par leurs propriétés (services Bull-IMAG (ERS 106) 36 Rapport final
43 Proposition de projet Sirac fournis, qualité de service offerte, etc.). Les descriptions de composants sont stockées sous la forme de représentations intermédiaires dans une base de composants manipulée par les différents outils. Parallèlement, le programmeur définit le code des composants, stocké dans une bibliothèque de classes. Outils de configuration. A partir de la description des composants, ces outils permettent au concepteur de régler l application pour la faire fonctionner dans un environnement réparti donné, caractérisé par son organisation en termes de sites et d utilisateurs et par les propriétés qu il assure en termes de réseaux de communication. Les outils fournis comprennent des outils de vérification dont la fonction est de valider l application configurée en fonction des propriétés des composants et de celles de l environnement de déploiement. L application configurée est un code exécutable qui résulte, d une part de la compilation des classes des composants, et d autre part de la génération automatique de code associé aux interactions entre composants. Ce code additionnel peut être vu comme une extension des talons produits par un compilateur d IDL. Outils d observation, de mise au point, et d administration. Les outils de mise au point et d administration permettent de valider, d adapter ou d améliorer la conception et la configuration de l application en cours d exécution grâce à la visualisation sous une forme graphique de cette exécution. L outil d observation offre un support pour cette visualisation, au travers de différentes vues qui reflètent les différents aspects de l organisation dynamique d une application (vue axée sur les interactions entre composants, vue axée sur les communications inter-utilisateurs ou inter-sites, etc.). Ces outils dialoguent avec l application par l intermédiaire de points d entrée intégrés automatiquement dans les talons étendus lors de la génération du code. En outre, l exécution de l application repose sur un mécanisme de liaison spécifique des composants, assorti d une interprétation des règles de configuration permettant de supporter les modifications de l application en cours d exécution SERVICES DE COORDINATION (F. Boyer, E. Lenormand) Les services de coordination fournissent les mécanismes de base nécessaires à la mise en œuvre des schémas de coordination fournis par le langage d interconnexion décrit précédemment. Le terme de coordination regroupe l ensemble des techniques qui assurent la communication et la synchronisation entre des activités qui coopèrent à la réalisation d une tâche globale. La communication peut être mise en œuvre de deux manières : en utilisant un espace d information partagé, ou par échange direct de messages. Si le partage d objets, étendu à un système réparti, est adéquat pour les modes classiques de synchronisation (lecteurs-rédacteurs et variantes), il est insuffisant pour exprimer une communication de nature asynchrone et associative, dans laquelle les entités à partager ne sont pas identifiées par leur nom, mais par leurs propriétés. La communication par événements, assortie de schémas de désignation appropriés, autorise ce mode d interaction. Elle permet à une activité (ou à un groupe d activités) de réagir à l émission, par une autre activité, d une information transitoire (qui ne modifie pas l état des objets partagés). Il s agit donc d un schéma d interruptions logicielles. Cette forme de communication est rendue possible par les fonctions d un service de gestion d événements. Les problèmes à résoudre concernent la gestion des activités (interruption, activation), l association (statique ou dynamique) du ou des traitants à l événement, la définition de leur contexte d exécution, la désignation des récepteurs. La désignation des récepteurs, ou plus généralement des entités communicantes (objet ou activité) requiert un service de courtage élaboré, capable d effectuer des liaisons dynamiques entre un ensemble de propriétés et les entités satisfaisant ces propriétés. Les propriétés considérées peuvent être statiques (classe ou type d un objet Bull-IMAG (ERS 106) 37 Rapport final
44 Proposition de projet Sirac par exemple) ou dynamique (valeur d un attribut d un objet, site d exécution d un objet, etc.). La réalisation d un tel service pose des problèmes fonctionnels (définition d attributs génériques ou spécifiques, indexation, etc) et des problèmes de réalisation efficace, notamment sur de grands réseaux. La notion de groupe d activités est un outil utile pour la coopération. Un groupe fonctionne comme une unité de désignation, permettant de nommer collectivement un ensemble d activités que l on veut considérer comme un tout. Un groupe est muni de protocoles permettant de faire communiquer les activités, d inclure ou d exclure des activités, de résister aux défaillances des activités, en maintenant des relations invariantes qui expriment sa cohérence interne. Nous comptons partir d un schéma de groupe existant et l étendre pour répondre aux besoins spécifiques de nos applications. Les services de coordination sont fournis sous la forme de bibliothèques de classes prédéfinies qui mettent en œuvre les primitives de base pour la communication par objets partagés et pour la communication événementielle. Ces services peuvent être utilisés directement par le programmeur d application. Ils sont aussi appelés dynamiquement par le code résultant de l utilisation des outils définis plus haut. Selon les besoins ou les contraintes imposées par une expérimentation donnée, ces services pourront être réalisés sur différents types d environnement d accueil (par exemple : Unix, CORBA, OLE, OODE) EXPERIMENTATIONS (S. Ben Atallah, D. Hagimont, R. Kanawati, M. Riveill) La classe d applications visée dans un premier temps est celle des collecticiels synchrones. Le choix de cette classe d applications est motivé par plusieurs raisons. D une part il s agit d un domaine encore peu exploré qui offre des perspectives dans de nombreux secteurs d activité tels que l enseignement (télé-enseignement), la santé (télédiagnostic), les loisirs, etc. Par ailleurs, le caractère synchrone des interactions introduit des difficultés techniques (cohérence d informations partagées, coordination, communication avec contraintes de temps). Enfin, une étude préliminaire a montré qu un collecticiel est généralement construit par intégration d applications existantes (pour la plupart mono-usager) autour d un noyau de coordination qui permet de contrôler les interactions entre les participants. De ce fait, cette classe d applications représente un banc d essai adéquat pour les outils de construction décrits plus haut. Les collecticiels synchrones fournissent aux participants un espace d informations partagées avec interaction en temps réel. L interaction peut prendre diverses formes selon qu elle a lieu via l espace d information partagé, ou de façon plus directe par échange de messages (utilisant éventuellement des canaux multimédia). La structure générale d un collecticiel est représentée par le schéma de la Figure 4, dans lequel un module applicatif désigne une application répliquée sur chaque site participant (la distribution géographique n est pas représentée sur ce schéma). Le noyau de coordination pilote les modules applicatifs et gère les interactions entre les participants (contrôle du droit de parole, participation dynamique, etc.). 3 L environnement de base pour les premières expérimentations réalisées dans le projet SIRAC est constitué de la plate-forme à objets OODE, augmenté de l implémentation ORBIX de la norme CORBA. Bull-IMAG (ERS 106) 38 Rapport final
45 Proposition de projet Sirac Participant interface interface interface module applicatif module applicatif module applicatif noyau de coordination Autres Participants Figure 4. Schéma d un collecticiel synchrone Nous coopérons depuis janvier 1994 avec le CNET (à Paris et Caen) pour réaliser un système expérimental de réunion virtuelle simulant une réunion multi-parties sur des postes de travail, avec partage de documents (édités par Grif) et échange de commentaires vocaux (utilisant un logiciel existant). Il existe un premier prototype de cette application, qui constitue un exemple type de collecticiel synchrone, réalisé directement sur Unix avec des mécanismes ad hoc pour mettre en œuvre le noyau de coordination. Cette application servira de banc d essai initial pour tester les outils et services développés dans le projet. La validation et la valorisation des résultats du projet passent par la mise en œuvre d une application de plus grande envergure, en partenariat avec un utilisateur. Compte tenu des ressources nécessaires à une telle expérimentation, il est prévu initialement de la réaliser dans le cadre du GIE Bull-INRIA. L application hospitalière, citée plus haut, constitue un chois possible. D autres applications sont en cours d étude PLAN DE TRAVAIL ET RESULTATS ATTENDUS 1) Plan de travail La plate-forme d expérimentation initiale est constituée de l environnement CORBA et des services de gestion d objets persistants répartis offerts par l environnement OODE. Comme cela a été mentionné plus haut, les services développés dans le projet seront réalisés sous forme de classes utilisant les services de l un ou l autre de ces environnements (en particulier, il est envisagé de prendre en compte les object services issus de l OMG lorsqu ils seront disponibles). L utilisation de l IDL de CORBA comme formalisme de base pour définir les interfaces des composants d une application devrait permettre de rendre nos outils suffisamment génériques pour pouvoir être adaptés à toutes plates-formes systèmes fournissant cet IDL. Bull-IMAG (ERS 106) 39 Rapport final
46 Proposition de projet Sirac Étape 1 (année 1) a) Conception et réalisation des services de coordination sur la plate-forme de référence (AIX + OODE). b) Définition du langage d interconnexion mettant en oeuvre le modèle d assemblage par extension du langage IDL. Le langage défini est une version réduite incluant la description des composants et de leurs interactions. Réalisation d un support d exécution pour le langage d interconnexion. c) Conception et réalisation des outils graphiques de conception d applications basés sur le modèle d assemblage. Mise en œuvre expérimentale de ces outils sur la plate-forme de référence. d) Réalisation d une application pilote 4 sur la plate-forme de référence. Étape 2 (année 2) a) Extension du langage d interconnexion pour prendre en compte les aspects de configuration et d administration. Extension du support d exécution du langage d interconnexion pour prendre en compte les aspects de configuration et d administration. b) Conception et réalisation des outils graphiques de configuration, d administration, d observation et de mise au point d applications réparties sur la plate-forme étendue. Par ailleurs, les outils réalisés pendant l étape 1 seront consolidés et étendus. c) Validation et évaluation des outils à l aide d applications pilotes, en particulier les applications coopératives développées pendant l étape 1. d) Conception, réalisation et expérimentation de composants mettant en oeuvre des schémas de coordination génériques pour les collecticiels synchrones. Étape 3 (année 3) a) Consolidation des outils et services sur la plate-forme de référence. b) Évaluation de l architecture et des mécanismes, fondée sur le prototypage de l application pilote. Démonstration de l application pilote. c) Portage des services de coordination et du support d exécution du langage d interconnexion sur une plate-forme CORBA. d) Portage des services de coordination et du support d exécution du langage d interconnexion sur une plate-forme WWW 5. 2) Résultats attendus Les résultats attendus sont de deux ordres : Un environnement complet de développement et de mise en œuvre d applications coopératives. Dans un premier temps, cet environnement sera disponible sur une plate-forme Unix enrichie d un service d objets persistants (Oode). Dans une seconde phase, cet environnement sera également disponible sur une plateforme Unix-Corba. Une application coopérative de complexité significative, permettant d évaluer l applicabilité effective des outils proposés. 4 Le choix d une application de référence sera effectué durant les premiers mois du projet, en liaison avec le GIE. La réalisation de cette application devrait se prolonger sur les années suivantes. 5 La disponibilité effective de l environnement sur une plate-forme CORBA et/ou sur une plate-forme WWW sera fonction des problèmes techniques rencontrés. Selon les opportunités rencontrées, ce portage pourrait être démarré dès la deuxième année du projet. Bull-IMAG (ERS 106) 40 Rapport final
47 Proposition de projet Sirac 3) Position par rapport à l existant Il existe de nombreux projets portant sur l utilisation de la technologie à objet pour la conception d applications. Cette activité est principalement centrée sur les modèles de conception et sur les techniques de réutilisation. Les projets se ralliant aux domaines des courtiers de requêtes [OMG 91, Brockschmidt 94] et des bus de messages [Bacon 95, Beust 93, Menon 93, Purtilo 94], sont plus particulièrement concernés par la construction d application par intégration de composants hétérogènes, et permettent difficilement d expliciter l organisation dynamique de l application de manière à faciliter sa configuration, son administration et sa maintenance. Enfin, les langages existants d interconnexion de modules (MIL) [Barbacci 93, Kramer 89, Magee 94, Dulay 94] n intègrent pas, en général, les aspects relatifs à la conception, à la configuration et à l administration de l application. En outre, ils s attachent essentiellement à la structure statique d une application (composition en termes de classes ou modules). Par rapport aux travaux courants, notre proposition se caractérise par : L extension d un langage de description d interfaces vers un langage de configuration, permettant de rendre explicite la structure dynamique d une application ainsi que les relations et les interactions entre les composants qui la forment. La possibilité, au travers du langage d interconnexion, de définir des interactions complexes (synchrones, asynchrones) entre des composants logiciels désignés par leurs propriétés. L intégration d aspects liés à l administration de l application dans le langage d interconnexion, permettant la prise en compte de contraintes d administration dès la phase de conception. La possibilité de redéfinir ou d adapter dynamiquement la conception ou la configuration d une application, au travers d outils de visualisation, d administration et de mise au point fondés sur une description uniforme de l application. L automatisation partielle de la production du code mettant en œuvre les interactions entre les composants logiciels. La définition de schémas de coordination génériques, offerts au travers de bibliothèques de composants logiciels Action : Gestion de données partagées persistantes réparties L action présentée en 2.1 aborde le problème de la construction d applications fondées sur le partage d objets. Ces applications ont besoin de services fournis par le système sous-jacent pour la gestion d objets persistants répartis. Des services analogues sont requis par d autres d environnements de construction d applications tels que les SGBDOO ou les services de persistance de CORBA. En outre, un service de partage d objets peut être utilisé par des sous-systèmes logiciels qui ont besoin de partager des données persistantes, sans avoir nécessairement l usage de toutes les fonctions d un SGBD : environnements d exécution de langages à objets persistants, serveurs pour World Wide Web, bases de documents hypermédia. Nous pensons qu un grand nombre d environnements déjà existants pourront, moyennant un effort de portage et d adaptation réduit, bénéficier d un tel service. Le partage d objets persistants est ainsi identifié comme un besoin commun à une large classe d applications et d environnements d exécution répartis. Dans l action gestion de données partagées persistantes réparties, nous nous proposons de fournir des services pour réaliser ce partage de données. Un tel service doit avoir les qualités suivantes. Adaptabilité. Le service doit pouvoir être configuré pour répondre aux besoins variables des applications, et même à des besoins différents à l intérieur d une même application. La généricité est un moyen d assurer l adaptabilité, en fournissant un ensemble de fonctions élémentaires pour la construction de services à la demande. Bull-IMAG (ERS 106) 41 Rapport final
48 Proposition de projet Sirac Portabilité. Le service doit pouvoir être aisément intégré à un nouvel environnement d exécution. Cela peut être assuré en le construisant comme une extension modulaire d une plate-forme largement diffusée, comme Unix. Sécurité. Le service doit fournir les moyens de mettre en œuvre les politiques de protection d accès aux données partagées définies par les applications et de rendre les données résistantes aux pannes. Efficacité. Les performances d un service conditionnent son acceptation par les utilisateurs. Elles doivent donc être bonnes, et en rapport avec les services requis (en particulier, une application ne doit pas supporter le coût d un service qu elle n utilise pas) PROBLEMES ET VOIES D APPROCHE Pour répondre aux exigences citées, la conception d un service de gestion d objets persistants répartis implique la résolution des problèmes examinés ci-après. 1) Les besoins d efficacité et de disponibilité conduisent à dupliquer les données sur plusieurs sites, sous forme de caches logiciels. Il se pose alors le problème de garantir la cohérence mutuelle entre les données contenues dans ces caches. Diverses politiques de gestion de cache ont été définies, qui réalisent des compromis divers entre efficacité et fraîcheur des données. Les politiques les plus élaborées s appuient sur une connaissance fine, par l application, des schémas d accès aux données (voir section 2.2.2, 2). Différentes applications (ou même différentes parties d une application) peuvent nécessiter des politiques différentes. Il paraît dès lors intéressant de permettre à chaque application de réaliser ses propres protocoles de cohérence à partir de fonctions élémentaires fournies par le service. Le choix de ces fonctions doit concilier l efficacité, la commodité d utilisation, et la complétude (possibilité de programmer une gamme étendue de services). 2) La recherche d efficacité conduit en outre à effectuer un placement dynamique des objets et de l exécution, en exploitant les indications fournies par les applications et les observations faites par le système. Ces informations peuvent aussi être exploitées pour la gestion efficace des communications, au moyen de protocoles spécialisés. 3) Les exigences de sécurité liées à celles d efficacité des mécanismes proposés nécessitent une protection des données avec un grain moyen. Cela peut être obtenu par l usage de capacités logicielles associées à des segments (ensembles de pages contiguës). Un problème important est la mise en œuvre efficace de ces mécanismes de protection. Les problèmes ci-dessus se posent dans divers types de systèmes de partage de données : systèmes répartis de gestion de fichiers, mémoire virtuelle répartie, service d accès à grande distance comme le World Wide Web. Un des objectifs visés est d examiner si des solutions développées dans l un de ces environnements peuvent se transposer aux autres. Nous avons choisi comme premier champ d expérimentation la réalisation d un service de gestion de données persistantes sur une grappe de machines homogènes reliées par un réseau local à haut débit, en utilisant une mémoire virtuelle répartie de grande taille. Ce choix est motivé par les arguments suivants : Le modèle de programmation fourni par la mémoire virtuelle partagée est plus simple à utiliser que le modèle client-serveur dès lors qu il s agit de mettre en œuvre des applications gérant des données partagées. Ce fait est maintenant largement reconnu tant par la communauté des systèmes pour le parallélisme que par celle des systèmes répartis. Les outils pour la réalisation de la cohérence, de la persistance, et de la tolérance aux fautes d une mémoire virtuelle répartie peuvent être rendus génériques, et réutilisables pour d autres environnements. Bull-IMAG (ERS 106) 42 Rapport final
49 Proposition de projet Sirac La mémoire virtuelle répartie peut servir de champ d expérience pour les travaux décrits en 2.1. L adaptation des techniques de coordination, de mise au point et d observation des applications à ce nouveau support est un domaine encore peu exploré, où on peut attendre d importantes retombées. Les progrès récents aussi bien dans les méthodes de mise en œuvre des mémoires virtuelles réparties que dans les techniques de réseaux laissent espérer l obtention de bonnes performances. Cette première application est décrite dans la section qui suit APPLICATION PILOTE : SERVICE DE GESTION DE DONNEES PERSISTANTES SUR MACHINES HOMOGENES L objectif du travail est de réaliser sur un réseau local de machines homogènes une mémoire répartie de segments persistants, fournissant des services génériques pour la cohérence, la protection et le stockage des données. L expérience que nous avons acquise dans le projet Guide nous a montré qu il n était pas réaliste de faire d hypothèses au niveau du système sur le modèle d objets utilisé. La plate-forme réalisée servira de banc d essai pour l expérimentation d algorithmes de gestion de cohérence, de gestion de la persistance, et d allocation de ressources. 1) Architecture de base (D. Hagimont, J. Mossière, X. Rousset de Pina) L architecture de base est constituée d un ensemble de machines clients et de machines serveurs homogènes, connectées sur un réseau local. Ces machines sont des stations Unix munies des services de partage, persistance et répartition. Une telle configuration constitue une unité d administration désignée sous le terme de cellule. Les problèmes posés par la mise en œuvre d une cellule sur un réseau général et par l interconnexion entre cellules seront considérés dans une étape ultérieure. Les machines serveurs sont chargées de la conservation à long terme des données permanentes utilisées par les clients. Clients et serveurs communiquent au travers d une mémoire virtuelle partagée persistante. Cette mémoire ne constitue qu une partie de l espace adressable par une machine client, l autre partie étant réservée aux données privées, et notamment aux informations de protection. La mémoire virtuelle partagée persistante sert de support d adressage aux données permanentes gérées par les serveurs ; elle peut contenir en outre des données partagées n ayant pas d image sur disque. Les structures d exécution sont les processus du système Unix dans lequel ces services sont intégrés. L architecture globale du système est schématisée sur la Figure 5. Les informations sont organisées en segments, de taille fixée à la création, couplés dans la mémoire à des adresses fixes. Ainsi, les données partagées sont vues par tous les processus à la même adresse virtuelle, ce qui permet d utiliser les adresses comme identifiant unique. Cette méthode de désignation devrait se traduire par un gain de performances significatif dans la manipulation des données. Bull-IMAG (ERS 106) 43 Rapport final
50 Proposition de projet Sirac Client Client Client Mémoire partagée Mémoire virtuelle partagée persistante Mémoires privées segment Serveur Serveur Figure 5. Architecture du service de gestion de données persistantes réparties Les segments se situent à un niveau intermédiaire entre les objets, entités logiques construites par les environnements des utilisateurs, et les pages, entités physiques manipulées par les plates-formes sous-jacentes. Sauf le cas particulier de certains objets de grande taille (par exemple des objets multimédia), les segments sont des regroupements d objets. Les segments sont également des unités de protection. Nous indiquons les principaux problèmes à résoudre pour la gestion de la mémoire virtuelle et le principe des solutions envisagées. Trois aspects particuliers, liés à la cohérence, à la survie en cas de panne d un site et à la protection des données partagées sont présentés plus en détail dans les sections suivantes. Allocation de la mémoire aux segments. Le principe consiste à ne pas réallouer les adresses de segments, pour garantir leur unicité. Ceci est rendu possible par la capacité d adressage fournie par les 64 bits. Chaque serveur gère des collections de segments, et les zones d adresses de mémoire virtuelle sont réparties entre les serveurs (statiquement, avec possibilité d extension). Structuration de l espace de recherche des segments. Lors d une faute de page, le système doit retrouver les données constituant le segment. La taille des espaces virtuels interdit la gestion classique par tables hiérarchisées. Il est prévu d utiliser des méthodes de recherche des segments utilisant le hachage. Récupération des méta-données (informations de gestion des segments). Si on ne réalloue pas les adresses virtuelles des segments détruits (explicitement détruits ou récupérés), il faut être en mesure de collecter les méta-données associées aux segments. Cette récupération sera réalisée par un ramasse-miettes. Gestion de la cohérence des mémoires locales des machines clientes, contenant des portions de segments partagés. Ce point est détaillé en 2). Résistance aux pannes. Dans un premier temps nous ne nous intéressons qu à rendre permanente l image des segment persistants. Ce point est examiné en 3) Protection des segments dans un espace virtuel partagé unique. Ce point est abordé en 4) Grain du partage. L expérience tend à montrer que la taille moyenne des objets usuels est de l ordre de quelques centaines d octets, alors que la taille des pages (qui tend à augmenter) est de plusieurs milliers d octets. Cette différence cause les Bull-IMAG (ERS 106) 44 Rapport final
51 Proposition de projet Sirac problèmes dits de faux partage dans la mesure ou plusieurs entités logiques (objets) peuvent être physiquement localisés sur la même page. La solution envisagée, en cas de conflit, consiste à abandonner la page comme unité de verrouillage et de gestion de cohérence, au profit d unités logiques de plus petite taille appelées zones (zones contiguës de taille quelconque). 2) Service générique de gestion de cohérence (E. Pérez-Cortés, T. Han) La conception du service de gestion de cohérence repose sur deux principes de base : a) associer la gestion de la cohérence des informations partagées à la gestion de la synchronisation ; le service de gestion de cohérence peut ainsi disposer d informations qui lui permettent de réduire le nombre des transferts de données ; b) définir une interface générique restreinte comportant des fonctions élémentaires, et permettant de construire, à la demande, différents schémas de synchronisation. Le choix a) permet d améliorer l efficacité de la gestion de cohérence, pour les applications qui utilisent un schéma de synchronisation. Un exemple simple permet de comprendre son principe : supposons qu un processus modifie une copie locale d une donnée protégée par un verrou exclusif ; tant que le verrou est en place, il n est pas nécessaire de propager les modifications aux copies distantes de cette donnée, puisqu aucun autre processus ne peut y accéder. Il suffit de propager les modifications lors de la levée du verrou, ou même seulement lors du prochain verrouillage. En contrepartie, il est évident que seules les applications qui respectent les règles de synchronisation pour l accès aux données bénéficient d une garantie de cohérence. Le choix b) permet à tout environnement, ou même à toute application, de spécifier un schéma spécifique de gestion de cohérence. Une application ne supporte que le coût des mécanismes qu elle utilise effectivement. Les unités d information manipulées (unité de synchronisation et de mise en cohérence) sont des zones de taille quelconque. Pour chaque zone z, le système gère une copie de référence m(z) appelée copie maîtresse dont il contrôle le site de localisation s(z). L interface générique fournie permet à un site autre que s(z) d obtenir une copie locale de m(z) ou bien de modifier m(z). Des appels ascendants peuvent être attachés à ces actions, pour pouvoir leur associer des opérations spécifiées et programmer ainsi les protocoles de cohérence. Les services de synchronisation utilisent cette interface afin d intégrer la gestion de la cohérence au schéma de synchronisation. Des services de synchronisation par défaut sont fournis aux applications n ayant pas de besoins particuliers. Nous comptons réaliser notamment les services suivants. Un service de verrouillage de zones gérées en cohérence faible selon le schéma dit entry consistency. La synchronisation des accès aux zones est assurée par des verrous et la mise en cohérence des données d une zone (report des modifications effectuées sur des copies distantes) est réalisée, si nécessaire, lors du verrouillage de cette zone. Un service de verrouillage transactionnel. 3) Résistance aux pannes (A. Knaff, X. Rousset de Pina) Comme nous l avons déjà noté, nous ne nous intéressons qu à assurer la permanence des segments en cas de panne d un site. Nous avons deux solutions : imposer un mécanisme unique de sauvegarde atomique sur disque d un ensemble de zones appartenant à des segments différents, fournir les outils de base permettant de réaliser un tel mécanisme. Dans les deux cas, on a besoin de l équivalent d un système de fichiers pour gérer les images sur disque des segments permanents et d un mécanisme de journalisation pour assurer l atomicité des opérations de recopie de l espace d exécution dans Bull-IMAG (ERS 106) 45 Rapport final
52 Proposition de projet Sirac l espace de stockage. Dans la première solution, le service de journalisation est caché aux utilisateurs, le système ne leur fournissant qu une primitive de recopie atomique des zones modifiées. Le choix de cette solution obligerait donc les applications qui gèrent leurs propres services de journalisation (notamment ceux contenant des images avant) à reprogrammer ces services alors que les mécanismes existent déjà dans le système. Nous avons donc choisi de mettre en œuvre la seconde solution : nous fournissons un service de stockage qui permet de créer des images de segments sur disque, et un service générique de journalisation. Le service de stockage fournit des opérations de création ou destruction d une image permanente de segment et de copie atomique d une page de segment sur son image permanente. Le service de journalisation générique permet à l utilisateur de créer un journal en lui associant un protocole spécifique de mise à jour. L utilisateur crée dans son journal des enregistrements dont l en-tête a un format fixe prédéfini et dont le corps n est interprétable que par le protocole de mise à jour. Les enregistrements d un même journal peuvent concerner des zones de segments différents. L utilisateur peut valider ou invalider un journal. Les journaux invalidés sont détruits. Les journaux validés sont traités par un processus de fond, qui exécute les protocoles de mise à jour associés pour libérer l espace qu ils occupent sur disque. Un tel service permet d implanter indifféremment des journaux contenant des images avant, des images après, ou un mélange des deux. De la même façon, le processus de reprise après panne exécute tous les journaux validés concernant un segment donné avant de rendre le segment disponible. 4) Protection (J. Mossière, F. Saunier) L utilisation d un espace virtuel partagé unique a comme contrepartie la nécessité d assurer la protection des segments. Il n est plus possible, en effet d assurer cette protection par découpage des applications entre mémoires virtuelles séparées (isolation entre processus Unix). La protection utilise un schéma classique à base de domaines et de capacités logicielles. Un domaine regroupe un ensemble de segments, et des activités (processus légers) s exécutent dans les domaines. Un ensemble de capacités, organisé en arbre, identifie les segments du domaine et leurs droits d accès, ainsi que les autres domaines accessibles. L appel inter-domaines est une opération protégée. Les capacités sont gérées par le système et non manipulées directement par le code des applications. Ceci a le double avantage d une part de ne pas avoir à chiffrer les capacités, et d autre part de rendre le code indépendant du domaine dans lequel il s exécute. Pour assurer une mise en œuvre efficace, il est proposé de n interpréter les capacités qu au premier accès, les accès suivants utilisant directement les adresses. Un domaine est réalisé par un processus Unix ; l appel inter-domaine utilise des techniques voisines de celles de l appel de procédure à distance, avec les optimisations nécessaires (appel local, transfert de données, etc). 5) Expérimentations Les expérimentations seront réalisées en deux phases. La première phase a pour objectif de démontrer la faisabilité de l architecture présentée plus haut en réalisant un prototype expérimental sur une plate-forme DPX/20 et système AIX. Le choix de la plate-forme DPX/20 est motivé par des raisons techniques (disponibilité de fonctions de gestion de mémoire appropriées dans AIX et disponibilité prochaine du processeur Power-PC 620 à adressage 64 bits) et stratégiques (utilisation des applications développées par ailleurs sur la plate-forme OODE pour valider et évaluer les services de gestion de mémoire). L objectif est de fournir rapide- Bull-IMAG (ERS 106) 46 Rapport final
53 Proposition de projet Sirac ment (dans un délai de 12 à 18 mois) une première version intégrée à AIX. Cette version initiale sera étendue par la suite par ajout de nouveaux services. La deuxième phase vise à évaluer l architecture et les mécanismes proposés, sur les trois plans suivants : qualité et utilisabilité des fonctions fournies ; performances à l exécution ; transposabilité à d autres contextes. Cette phase débutera dès que le premier prototype expérimental des services de gestion de mémoire sera disponible. Elle consiste a) à porter (ou construire) sur la plate-forme de référence des applications réparties (ou des environnements applicatifs) manipulant des objets persistants, et à évaluer les mécanismes proposés ; b) à transposer ces mécanismes à d autres environnements (système réparti de gestion de fichiers, WWW). Pour les expériences d évaluation, nous nous proposons de porter sur notre plateforme les environnements suivants : OODE. L environnement OODE (version industrialisée du système Guide) est disponible sur le système AIX. Il fournit un environnement de développement et d exécution d applications réparties (fondé sur un modèle à objets persistants accessible à travers le langage C++). Les applications disponibles sur OODE seront utilisées comme banc d essai pour la mise au point des mécanismes proposés. Cette expérience devrait permettre d évaluer le gain de performance obtenu en gérant un espace virtuel unique. Serveur d informations. Les serveurs disponibles sur les autoroutes de l information et qui sont en général des serveurs centralisés seront probablement remplacés par des réseaux locaux serveurs. Nos services permettent ainsi de réaliser un serveur d informations réparti sur un réseau local. De plus, la mémoire virtuelle partagée se prête bien à la gestion de documents hypermédia ; les serveurs de tels documents sont un domaine d application de notre travail PLAN DE TRAVAIL ET RESULTATS ATTENDUS 1) Plan de travail Le plan de travail de l action Gestion de données partagées persistantes réparties comporte les étapes suivantes : Étape 1 (année 1) a) Conception et réalisation d un prototype de mémoire virtuelle répartie sur plate-forme DPX-20 et système AIX. b) Utilisation du protocole générique de cohérence pour la réalisation d un cache réparti pour NFS. Étape 2 (année 2) a) Portage de l environnement OODE (langage C++ réparti persistant) sur le service de mémoire virtuelle répartie. Expérimentation et évaluation du service de mémoire répartie à partir des applications disponibles sur l environnement OODE. b) Mise en œuvre d un service transactionnel sur le système de mémoire répartie. Étape 3 (année 3) a) Portage d un serveur WWW sur le système de mémoire virtuelle répartie. b) Première intégration des deux parties du projet : portage des outils de construction d applications sur le système à mémoire virtuelle répartie. Bull-IMAG (ERS 106) 47 Rapport final
54 Proposition de projet Sirac c) Transport et expérimentation d applications sur l environnement intégré : applications coopératives expérimentées dans étapes 1 et 2, serveur d informations. d) Mesure et évaluation 2) Résultats attendus Les résultats attendus sont de deux ordres. Dans une première phase, la réalisation de la mémoire virtuelle répartie sur la plateforme DPX-20 et système AIX nous permettra d évaluer l adéquation du concept pour l écriture d applications coopératives, ainsi que de disposer de mesures de performances justifiant tout particulièrement la possibilité d implantation efficace de SGBD. Dans une seconde phase, nous nous proposons de réaliser nos services sous forme de bibliothèques de procédures permettant de configurer des applications au dessus d un système Unix standard ; dans cette hypothèse, chacune des briques de base fournies peut être utilisée indépendamment des autres. 3) Position par rapport à l existant La mise en œuvre et l utilisation des mémoires virtuelles partagées sont des thèmes de recherche très actifs. Les réalisations connues Munin [Carter 91], TreadMarks [Keleher 94], Midway [Zekauskas 94], DiSOM [Neves 94] et Quarks [Carter 95] sont encore essentiellement des prototypes de recherche. Par rapport aux travaux courants, qui se concentrent en général sur un aspect ponctuel, notre proposition se caractérise par l intégration de propositions concernant la cohérence, la résistance aux pannes et la protection, avec recherche des compromis permettant d obtenir une efficacité satisfaisante. Par ailleurs, les points forts de notre projet sont les suivants : La possibilité, pour les environnements ou les applications, de réaliser leur propre schéma de gestion de cohérence, en utilisant les primitives fournies. L accent particulier mis sur la solution du problème de granularité des données, avec les techniques associées de gestion fine de données pour le verrouillage et la sauvegarde. La coexistence de données locales avec une mémoire commune, ce qui permet l intégration d applications existantes qui utilisent en général des données locales, et facilite par ailleurs la protection fine des données (les informations de protection étant gardées dans la zone locale). Le traitement de la protection, visant à utiliser la puissance des capacités tout en gardant l efficacité liée à l usage des adresses virtuelles comme mode unique de désignation des informations. 3. Collaborations industrielles Bull. Le projet Guide a été mené avec Bull depuis 1990 dans l Unité Mixte Bull- IMAG. Le transfert des résultats vers Bull s est effectué sous deux formes. Réalisation en cours d une plate-forme à objets (OODE) issue des résultats des projets Guide et Comandos, par une équipe de développement dont le noyau est formé du personnel Bull ayant participé au projet Guide dans Bull-IMAG. Utilisation d un système dérivé de Guide pour la gestion interne d objets dans le produit ISM (Integrated System Management) destiné à l administration de systèmes répartis. Cette collaboration s est également traduite par la participation commune aux projets ESPRIT Comandos ( ) et Asset ( ). Bull-IMAG (ERS 106) 48 Rapport final
55 Proposition de projet Sirac Plusieurs aspects du projet Sirac sont plus ou moins directement liés aux actions du Groupement Scientifique entre Bull et l INRIA en cours de lancement. La liaison la plus forte concerne l action portant sur la réalisation d outils de construction d applications réparties, dont l objectif général est identique à celui qui a été présenté plus haut pour le projet Sirac (section 2.1). Par ailleurs, l utilisation d une plate-forme de référence commune, à savoir Unix augmenté des services offerts par CORBA et par OODE, comme base de développement est de nature à favoriser le transfert industriel des résultats du projet Sirac. D autres aspects du projet Sirac pourraient être concernés, selon la définition de certaines actions du futur GIE. C est le cas en particulier des services de gestion de mémoire dans le contexte d une action qui s orienterait vers la mise en œuvre de serveurs de données multimédia. CNET. A la suite des travaux d un groupe Bull-CNET-INRIA en 1993, une collaboration est en cours avec le CNET Paris-A (équipe de J.-B. Stéfani) pour réaliser une application coopérative expérimentale (réunion virtuelle). Cette action de coopération s est développée, en s ouvrant à de nouveaux partenaires européens, et concerne aujourd hui l architecture des collecticiels synchrones et les mécanismes de base pour la mise en œuvre de ces classes d applications. En outre, un contrat issu de l appel d offres thématique du CNET en 1994 porte sur le développement d outils et de services pour le support d applications coopératives. Le projet entretient d autre part des relations avec le CNET-SEPT, qui a utilisé le système Guide pour réaliser une application de circulation de documents (CIDRE). Dans le cadre du consortium PREVISIA, une version industrielle de cette application (CIDRIA) est en cours de réalisation sur la plate-forme à base d objets POOL (version ad hoc du système OODE industrialisé par Bull). Compte tenu de la similarité des plate-formes utilisées, les résultats du projet Sirac seraient directement utilisables pour le développement d applications en coopération avec les acteurs du consortium PREVISIA. Rank Xerox. Une action commune, mise en œuvre grâce à une bourse CIFRE, a démarré début 95 avec le Centre de Recherche de Meylan sur les services de coordination. Un objectif de cette action consiste à valider l adéquation des services de coordination développés dans le projet pour mettre en œuvre le langage de coordination, fondé sur le modèle LO (Linear Objects), développé au centre de recherche Rank Xerox. Remarque : les actions présentées ci-dessus correspondent à des partenariats déjà établis. D autres partenariats pourront être établis en cours de projet, en particulier dans le cadre du développement d applications pilotes avec des utilisateurs. 4. Actions nationales et internationales 4.1. Collaborations nationales GDR PRS. Nous participons au GDR PRS (Parallélisme, Réseaux et Systèmes), qui a pris en 1994 la suite du PRC C 3 (Coopération, Concurrence, Communication). Le pôle Systèmes d exploitation coordonne un ensemble de projets expérimentaux dans le domaine des systèmes répartis et notamment les projets INRIA Solidor et SOR. Les résultats visibles de cette action sont : l organisation, depuis 1990, d Écoles sur les Systèmes d Exploitation Répartis (voir section 4) ; l organisation de Journées des Jeunes Chercheurs en Systèmes Informatiques Répartis (Grenoble, avril 1993), avec le Réseau Doctoral de la DRED. Relations avec les projets INRIA. Le projet Guide a mené une action commune avec la partie grenobloise du projet Opéra : la réalisation, déjà mentionnée, d un éditeur coopératif de documents structurés, à partir de l éditeur Grif. L extension des Bull-IMAG (ERS 106) 49 Rapport final
56 Proposition de projet Sirac activités d Opéra vers le traitement de documents multimédia, d une part, et vers l édition coopérative à grande distance, d autre part, crée de nouveaux thèmes de collaboration. Ainsi, l application de réunion virtuelle de Sirac (utilisant Grif pour le partage de documents) explore le domaine des collecticiels synchrones, alors que un éditeur coopératif asynchrones continue d être développé dans Opéra. Nous entretenons des relations étroites avec deux projets INRIA, Solidor (IRISA, Rennes) et SOR (Rocquencourt), actifs dans le domaine des systèmes répartis. Ces relations sont notamment formalisées dans l opération «Systèmes Répartis» du PRC C 3 et la participation commune au projet ESPRIT BRA Broadcast et à une action de coopération franco-israélienne (voir ci-après). Par rapport à ces projets, la situation de notre proposition est la suivante. a) Domaines communs projet Solidor : notre domaine d intérêt commun couvre les langages à objets pour systèmes répartis et les méthodes de synchronisation. projet SOR : notre domaine d intérêt commun est l étude des mécanismes d adressage et de partage d objets dans les systèmes répartis. b) Complémentarités projet Solidor : Un point fort du projet Solidor est la conception de systèmes tolérants aux fautes, domaine dans lequel notre expérience est relativement réduite. projet SOR : Le projet SOR concentre l essentiel de son activité sur les méthodes et algorithmes pour l adressage et la gestion d objets dans un grand système réparti, avec un accent particulier sur le ramassage de miettes réparties, aspect relativement peu traité dans notre projet. L accent est mis sur une étude en profondeur d un thème restreint, par opposition à la démarche intégratrice de Sirac. Enfin, nous participons conjointement avec le projet Rodin au projet inter-prc Systèmes à Objets (voir ci-après). Nous consultons le projet Rodéo sur des points techniques liés aux protocoles de communication, notamment pour le multimédia. Action BD3-C 3. Le projet participe depuis 1993 à une opération commune BD3-C 3 sur le thème Systèmes à Objets, retenue dans le cadre de l appel d offres inter-prc lancé en octobre Les thèmes abordés sont l architecture de machines virtuelles pour objets persistants répartis et le support système pour de telles machines. Action GDR de Programmation. Le projet a participé de 1993 à 1995 à un groupe de travail du GDR de Programmation (Pôle Parallélisme) sur le thème Systèmes à Objets pour Architectures Parallèles et Distribuées. Action Bull-CNET-INRIA. R. Balter et S. Krakowiak ont participé à un groupe de travail Bull-CNET-INRIA chargé de préparer un projet commun aux trois organismes, dans le domaine des grands systèmes répartis. Une première action issue de ce travail est décrite en Collaborations internationales Projet Broadcast (ESPRIT Basic Research). Nous participons à un projet «Basic Research» retenu lors de l appel d offres ESPRIT Intitulé BROADCAST (Basic Research On Advanced Distributed Computing: from Algorithms to SysTems), ce projet regroupe les principaux groupes de recherche actifs dans ce domaine en Europe (dont les projets INRIA ADP, Solidor et SOR), autour des aspects algorithmiques et architecturaux des grands systèmes répartis. Réseau d excellence. Nous participons au réseau d excellence de la CEE «Distributed Computing Systems Architecture», aussi appelé CaberNet. Les premières actions portent sur le renforcement des réseaux de communication et sur des échanges post-doctoraux. Bull-IMAG (ERS 106) 50 Rapport final
57 Proposition de projet Sirac Coopération franco-israélienne. Nous participons à une action de coopération franco-israélienne dans le domaine des systèmes répartis, mise en place pour par le MRT et son homologue israélien. La coopération, qui s est poursuivie en , a donné lieu à trois workshops communs, respectivement à Grenoble (mai 1992), Jérusalem (mai 1993) et Rennes (octobre 1994) Autres éléments de visibilité R. Balter a été membre du Comité de rédaction de la revue Technique et Science Informatiques (TSI) de 1990 à S. Krakowiak a été co-président du Comité de programme de l ACM SIGOPS European Workshop en Il a été membre jusqu en 1993 du Comité de rédaction de la revue Réseaux et Informatique Répartie. Pour , il a été membre des Comités de programme de : IWOOOS 93 (International Workshop on Object Orientation in Operating Systems) ; ACM SIGOPS European Workshop 1994 ; ICDCS 94 (14th IEEE International Conference on Distributed Computing Systems) ; SDNE 94 (IEEE Workshop on Services in Distributed and Networked Environments). Pour 1995, il est membre du Comité de Programme de SOSP 95 (15th ACM Symposium on Operating Systems Principles) et SDNE 95(IEEE Workshop on Services in Distributed and Networked Environments). M. Riveill est co-organisateur du Workshop on Object-based Distributed Programming, associé à ECOOP 93 (European Conference on Object-Oriented Programming, Kaiserslautern, juillet 1993). Il est co-organisateur du Colloque sur Informatique communicante et systèmes distribués des 7-èmes Entretiens du Centre Jacques Cartier (Grenoble, décembre 1994). 5. Diffusion des résultats 5.1. Actions de formation L équipe du projet Guide a activement participé à l organisation et au déroulement de l École sur les Systèmes d Exploitation Répartis, organisée dans le cadre de C 3, qui a connu trois éditions (École INRIA en 1990 et 1991 à Saint-Malo ; École Bull-IMAG- INRIA en 1993 à Autrans ; édition d un livre [Balter 91b] dans la Collection Didactique de l INRIA); École Européenne sur les Systèmes Répartis (ERSADS), dans le cadre du Pôle Universitaire et Scientifique Européen de Grenoble en avril Outre les enseignements donnés dans les diverses formations des Universités de Grenoble, des membres du projet Guide ont animé deux sessions de formation sur les Systèmes Répartis, à l usage des industriels du Programme Affilié de l IMAG Diffusion de prototypes Le système Guide (version Guide-1) a largement été diffusé en France et à l étranger. On peut noter une utilisation effective sur une douzaine de sites, et notamment : réalisation d applications pilotes à Bull (Louveciennes) et au CNET-SEPT (Caen), programmation parallèle au CNAM (Paris), support pour l enseignement de la programmation par objets dans les Universités de Lille et Nantes Relations extérieures et démonstrations Outre les publications (cf. 4.4), citons parmi les actions marquantes : participation (exposé de synthèse et démonstrations) du projet Guide au Forum des Recherches en Informatique 1993 (rencontres PRC-industrie) et à Enterprise 93, manifestation organisée à Boston en juin 1993 par Bull, le MIT et l OSF sur les applications des systèmes informatiques à l entreprise. participation (exposés et démonstrations) au premier Workshop du projet ESPRIT Broadcast, en octobre 1993 à Newcastle upon Tyne. Bull-IMAG (ERS 106) 51 Rapport final
58 Proposition de projet Sirac organisation du Workshop de clôture du projet ESPRIT Broadcast, à Grenoble en juillet 95. démonstration au SITEF 1995, Toulouse 1995, sélection pour le Trophée AFCET Publications récentes LIVRES, REVUES [Balter 94] R. Balter, S. Lacourte, M. Riveill, The Guide Language: Design and Experience, The Computer Journal, 37,6, pp , dec [Cahill 93] The Comandos Distributed Application Platform, V. Cahill, R. Balter, N. Harris, and X. Rousset de Pina (editors), Springer-Verlag, 1993 [Riveill 94] Guide, un langage à objets pour la programmation concurrente, Calculateurs Parallèles, 6, 2, 1994 CONGRES A COMITE DE LECTURE AVEC ACTES PUBLIES [Balter 93] R. Balter, P. Y. Chevalier, A. Freyssinet, D. Hagimont, S. Lacourte, X. Rousset de Pina, Is the Microkernel Technology Well-suited for the Support of Objects-Oriented Operating Systems? The Guide Experience,Usenix Workshop on Microkernels and Other Kernel Architectures, Sept [Chevalier 93] P. Y. Chevalier, A. Freyssinet, D. Hagimont, S. Krakowiak, S. Lacourte, X. Rousset de Pina, Experience with Shared Object Support in the Guide System, Fourth Symposium on Experiences with Distributed and Multiprocessor Systems (SEDMS), Sept [Chevalier 94] P. Y. Chevalier, M. Riveill, F. Saunier, Towards a Generic Support System for Co-operative Applications, Proc WET-ICE 94, avril 1994 [Hagimont 94a] D. Hagimont, Protection in the Guide Object-Oriented Dstributed System, Proc. ECOOP 94 (European Conf. on Object-Oriented Programming, Bologna, 4-8 July 1994 [Hagimont 94b] D. Hagimont, P. Y. Chevalier, A. Freyssinet, S. Krakowiak, S. Lacourte, J. Mossière, X. Rousset de Pina, Persistent Shared Object Support in the Guide System: Evaluation and Related Work, Proc. Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Portland, Oct [Krakowiak 93] S. Krakowiak, Issues in Object-Oriented Distributed Systems (invited paper), International Conf. on Decentralized and Distributed Systems, IFIP WG 10.3, Palma de Mallorca, Sept (to be published by North Holland) [Lacourte 93] S. Lacourte, M. Riveill, Distribution and Object Granularity, 2nd Internat.Workshop on Object Orientation in Operating Systems, IEEE, Asheville, Dec [Vion-Dury 94] Bull-IMAG (ERS 106) 52 Rapport final
59 Proposition de projet Sirac J.-Y. Vion-Dury, M. Santana, Virtual Images: Interactive Visualisation of Distributed Object- Oriented Systems, Proc. Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), Portland, oct COLLOQUES A COMITE DE LECTURE [Chevalier 93] P. Y. Chevalier, D. Hagimont, Apport de la technologie micro-noyau à la construction d un système réparti à objets, Journées des Jeunes Chercheurs en Systèmes Répartis, Grenoble, avril 1993 [Riveill 93b] M. Riveill, Appels interlangages - Application aux langages Guide et C++, AFUU, Paris, mars 1993 [Veillard 93] D. Veillard, Communication Support for a Replicated Object Service, 5th European Workshop on Dependable Computing, Lisbonne, feb HABILITATIONS A DIRIGER DES RECHERCHES [Riveill 93a] M. Riveill, Langages et systèmes pour applications réparties, Habilitation à diriger des recherches, Institut National Polytechnique de Grenoble, janvier 1993 [Rousset de Pina 93] X. Rousset de Pina, Conception et construction de noyaux de systèmes opératoires, Habilitation à diriger des recherches, Université Joseph Fourier, Grenoble, janvier 1993 THESES [Jamrozik 93] H. Jamrozik, Aide à la mise au point des applications parallèles et réparties à base d objets persistants, Thèse de Doctorat en Informatique, Université Joseph Fourier, Grenoble (mai 1993) [Hagimont 93] D. Hagimont, Adressage et protection dans un système réparti, Thèse de Doctorat en Informatique, Institut National Polytechnique de Grenoble (octobre 1993) [Boyer 94] F. Boyer, Coordination entre outils dans un environnement intégré de développement de logiciel, Thèse de Doctorat en Informatique, Université Joseph Fourier, Grenoble (février 1994) [Chevalier 94] P.-Y. Chevalier, Persistance et disponibilité dans les systèmes répartis : applications à Guide. Thèse de Doctorat en Informatique, Université Joseph Fourier, Grenoble (octobre 1994) 5.5. Bibliographie [Bacon 95] Bacon J., Bates J., Hayton R., Moody K., Using Events to Build Distributed Applications, Proceedings SDNE 95, Vancouver, June [Barbacci 93] Bull-IMAG (ERS 106) 53 Rapport final
60 Proposition de projet Sirac Barbacci M., Weinstock C., Doubleday D., Gardner M., Lichota R., A Structure Description Language for Developping Distributed Applications, IEEE Software Engineering Journal, Vol. 8 (No. 2), pp , March [Beust 93] Beust C., Nahaboo C., The Koala Bus Group Communication Software, Programmer s manual for version 1.28, Bull Document, pp. 1-35, Feb [Brockschmidt 94] Brockschmidt K., Inside OLE 2, Microsoft Press, Redmond, Washington , [Carter 91] Carter J. B., Bennett J. K., and Zwaenepoel W., Implementation and Performance of Munin, Proceedings of the 13th ACM Symposium on Operating Systems Principles, pp , October [Carter 95] Carter J. B., Khandekar D., Kamb L., Distributed Shared Memory: Where We Are and Where We Should Be Headed, 5th Intern. Workshop on Hot Issues inoperating Systems (HotOS 95), May [Dulay 94] Dulay N., Darwin Overview, DSE Imperial College, London, [Ellis 94] Ellis C.A., Gibbs S., Rein G., Groupware: Somme Issues and Experiences. Communications of the ACM, 34(1), pp Keleher 94] Keleher P., Dwarkadas S., Cox A., and Zwaenepoel W., Treadmarks: Distributed Shared Memory on Standard Workstations and Operating Systems, Proceedings of the 1994 Winter Usenix Conference, pp , January [Kramer89] Kramer J., Magee J., Sloman M., Constructing Distributed Systems in Conic, IEEE Transactions, Vol. 15 (No. 6), pp , 89. [Magee 94] Magee J., Dulay N., Kramer J., A Constructive Development Environment for Parallel and Distributed Programs, Proceedings of the International Workshop on Configurable Distributed Systems (IWCDS), Pittsburgh, March 94. [Malm 94] Malm P. S., The unofficial Yellow Pages of CSCW: Groupware, Prototypes, and Projects, Thesis for the degree of cand. scient in Informatics, University of Tromsö, January [Neves 94] Neves N., Castro M., and Guedes P., A Checkpoint Protocol for an Entry Consistent Shared Memory System, Proceeding of the 13th Annual Symposium on Principles of Distributed Computing, August [OMG91] Digital Equipment Corporation, Hewlett-Packard Co., HyperDesk Corp., NCR Corp., Object Design, Inc & SunSoft, Inc., The Common Object Request Broker Architecture and Specification, OMG Document Number , Dec 91. [Purtilo94] Purtilo J.M., The POLYLITH Software Bus, ACM TOPLAS, Vol. 16 (No. 1), pp , Jan 94. [Zekauskas 94] Zekauskas M. J., Sawdon W. A., and Bershad B. N., Software Write Detection for Distributed Shared Memory, Proceedings of the First Symposium on Operating Systems Design and Implementation, (OSDI) pp , November Bull-IMAG (ERS 106) 54 Rapport final
61 Proposition de projet Sirac Bull-IMAG (ERS 106) 55 Rapport final
Des solutions J2EE open source professionnelles adaptées à votre système d information d entreprise
Des solutions J2EE open source professionnelles adaptées à votre système d information d entreprise Vendredi 26 Novembre 2004 9h.00 Espace Batignolles 18 rue de la Condamine 75017 Paris www.espace-batignolles.com
Plan de cours ADM 992C Page 1. École des sciences de la gestion Département de management et technologie Université du Québec à Montréal
Plan de cours ADM 992C Page 1 École des sciences de la gestion Département de management et technologie Université du Québec à Montréal ADM-992C LES TECHNOLOGIES D'AIDE À LA PRISE DE DÉCISION DANS LES
Catalogue de Pattern pour le CSCW
Catalogue de Pattern pour le CSCW La création d application dans le cadre du CSCW (Computer Supported Cooperative Work), ou TCAO en français (Travail collaboratif assisté par ordinateur) a donné lieu à
Annexe : La Programmation Informatique
GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de
Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués
International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 7, Issue 5 (June 2013), PP.99-103 Solution A La Gestion Des Objets Java Pour Des
CURRICULUM VITAE. Informations Personnelles
CURRICULUM VITAE Informations Personnelles NOM: BOURAS PRENOM : Zine-Eddine STRUCTURE DE RATTACHEMENT: Département de Mathématiques et d Informatique Ecole Préparatoire aux Sciences et Techniques Annaba
AGROBASE : un système de gestion de données expérimentales
AGROBASE : un système de gestion de données expérimentales Daniel Wallach, Jean-Pierre RELLIER To cite this version: Daniel Wallach, Jean-Pierre RELLIER. AGROBASE : un système de gestion de données expérimentales.
THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par.
École Doctorale d Informatique, Télécommunications et Électronique de Paris THÈSE présentée à TÉLÉCOM PARISTECH pour obtenir le grade de DOCTEUR de TÉLÉCOM PARISTECH Mention Informatique et Réseaux par
Perspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect [email protected]. 2010 IBM Corporation
Perspectives pour l entreprise Desktop Cloud JC Devos IBM IT Architect [email protected] Principe technique Disposer d un poste de travail virtuel accessible par la plupart des terminaux disponibles Ce
NFP111 Systèmes et Applications Réparties
NFP111 Systèmes et Applications Réparties 1 de 34 NFP111 Systèmes et Applications Réparties Cours 7 - CORBA/Partie 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon
La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*
La démarche MDA Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)* Référence : Livrable 1.1-5 Date : Mai 2002 * : Les partenaires du projet ACCORD sont CNAM,
Forthcoming Database
DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of
Une méthode d apprentissage pour la composition de services web
Une méthode d apprentissage pour la composition de services web Soufiene Lajmi * Chirine Ghedira ** Khaled Ghedira * * Laboratoire SOIE (ENSI) University of Manouba, Manouba 2010, Tunisia [email protected],
Java et les bases de données
Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples
Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services
69 Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services M. Bakhouya, J. Gaber et A. Koukam Laboratoire Systèmes et Transports SeT Université de Technologie de Belfort-Montbéliard
Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech
Autour du web Une introduction technique Première partie : HTML Georges-André SILBER Centre de recherche en informatique MINES ParisTech [email protected] http://www.cri.ensmp.fr/people/silber/cours/2010/web
LES ACCES ODBC AVEC LE SYSTEME SAS
LES ACCES ODBC AVEC LE SYSTEME SAS I. Présentation II. SAS/ACCESS to ODBC III. Driver ODBC SAS IV. Driver ODBC SAS Universel V. Version 8 VI. Références I. Présentation Introduction ODBC, qui signifie
Curriculum Vitae 1 er février 2008
Curriculum Vitae 1 er février 2008 Informations générales Cédric MEUTER Nationalité belge Né à La Louvière, le 16 novembre 1979 Adresse personnelle : Adresse professionnelle : Ave Général Bernheim, 57
Ingénierie et gestion des connaissances
Master Web Intelligence ICM Option Informatique Ingénierie et gestion des connaissances Philippe BEAUNE [email protected] 18 novembre 2008 Passer en revue quelques idées fondatrices de l ingénierie
Un environnement de déploiement automatique pour les applications à base de composants
ICSSEA 2002-7 Lestideau Un environnement de déploiement automatique pour les applications à base de composants Vincent Lestideau Adele Team Bat C LSR-IMAG, 220 rue de la chimie Domaine Universitaire, BP
Solutions Exploitation de contenus
Solutions Exploitation de contenus Company profile Start in 2006 : 5 engineers + experimented business angels 5 years of profitable double digit growth Listed on Euronext in Nov 2009 (MLMGL FR0010827741)
Ergonomie des Interfaces Homme-Machine
Master SIAD 2 année Ergonomie des Interfaces Homme-Machine Jean-Yves Antoine http://www.sir.blois.univ-tours.fr/~antoine/ Master Informatique Ergonomie des Interfaces Homme-Machine Chapitre 1 Introduction
Une proposition d extension de GML pour un modèle générique d intégration de données spatio-temporelles hétérogènes
303 Schedae, 2007 Prépublication n 46 Fascicule n 2 Une proposition d extension de GML pour un modèle générique d intégration de données spatio-temporelles hétérogènes Samya Sagar, Mohamed Ben Ahmed Laboratoire
IPv6: from experimentation to services
IPv6: from experimentation to services - Dominique Delisle France Telecom R&D Le présent document contient des informations qui sont la propriété de France Télécom. L'acceptation de ce document par son
Extensions à la formation. Laurent Pérochon, 28-30 avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan
Extensions à la formation Diagramme de timing FinEpreuve SautBarrière CourseAvantBarrière SautMur {>2 et 10 et 2 et 10 et
PLATE- FORME MUTUALISEE DE SERVICES DIFFERENCIES POUR USAGES D ETABLISSEMENTS D ENSEIGNEMENT SUPERIEUR ET DE RECHERCHE ET APPLICATIONS METIER
Fonds National pour la Société Numérique Programme d Investissements d Avenir «AAP Cloud Computing» UnivCloud PLATE- FORME MUTUALISEE DE SERVICES DIFFERENCIES POUR USAGES D ETABLISSEMENTS D ENSEIGNEMENT
Auto-explication des Chorégraphies de Services
Mario Cortes Cornax Sophie Dupuy-Chessa Dominique Rieu Université de Grenoble, LIG Auto-explication des Chorégraphies de Services 1 Problématique Chorégraphie de services Vision globale des processus distribués
REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION
REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION THÈSE N O 2388 (2001) PRÉSENTÉE AU DÉPARTEMENT D'INFORMATIQUE ÉCOLE POLYTECHNIQUE FÉDÉRALE
Stage Ingénieur en développement logiciel/modélisation 3D
Ingénieur en développement logiciel/modélisation 3D Schlumberger recrute un(e) stagiaire ingénieur en modélisation 3D pour la plate-forme Petrel. Vous serez intégré(e) au sein d une équipe innovante, Petrel
Services sur réseaux. Trois services à la loupe. Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée
Trois services à la loupe Services sur réseaux Dominique PRESENT Dépt S.R.C. - I.U.T. de Marne la Vallée Plan du cours : 1. Services de messagerie Architecture Fonctionnement Configuration/paramétrage
sont appliquées à des fonds documentaires, sont destinées à fournir des informations pertinentes sur la structure globale plutôt que sur le contenu.
Introduction Les techniques informatiques permettent de stocker et d accéder à des quantités sans cesse croissantes de données, disponibles en ligne ou via des centres documentaires fermés. Cette profusion
Présentation Internet
Présentation Internet 09/01/2003 1 Sommaire sières 1. Qu est-ce que l Internet?... 3 2. Accéder à l Internet... 3 2.1. La station... 3 2.2. La connection... 3 2.3. Identification de la station sur Internet...
Assises de l Embarqué Projet ITEA2 Smart-Urban Spaces 28 Octobre 2013. Serge Chaumette, LaBRI, U. Bordeaux Jean-Pierre Tual, Gemalto
Assises de l Embarqué Projet ITEA2 Smart-Urban Spaces 28 Octobre 2013 Serge Chaumette, LaBRI, U. Bordeaux Jean-Pierre Tual, Gemalto Objectifs et résultats Fournir un ensemble cohérent de composants logiciels
Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.
Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational
ISTIA INNOVATION. 62, Ave ND du Lac F 49000 Angers www.istia.univ-angers.fr
ISTIA INNOVATION 62, Ave ND du Lac F 49000 Angers www.istia.univ-angers.fr DESS ITIHM RV 02/03 Geoffrey SUBILEAU Ecole des Mines de Nantes Projet européen «REPOSIT» Développement d un environnement virtuel
Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.
Proposition de stage de BAC+4 ou BAC+5 Pro ou Recherche Etude comparative des outils de vérification d'algorithmes parallèles Logiciels (LSL), localisé à Palaiseau (Essonne), développe les outils d'aide
26th of March 2014, Paris
P : 1 Continuité Numérique : un enjeu d efficacité pour l industrie supporté par les standards Standard STEP AP 242 ISO 10303 : modèles CAO 3D avec tolérancement gérés en configuration Résumé du white
Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software
Valorisez vos actifs logiciels avec Rational Asset Manager Jean-Michel Athané, Certified IT Specialist IBM Rational Software 13 Qu est-ce qu un actif logiciel (Software Asset)? Un asset est une collection
Module BD et sites WEB
Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet [email protected] 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD
Glossaire. www.themanualpage.org ( themanualpage.org) soumises à la licence GNU FDL.
Glossaire Ce glossaire contient les termes techniques et de spécialité les plus employés dans cette thèse. Il emprunte, pour certaines d entre elles, les définitions proposées par www.themanualpage.org
Estimated SMB instances 1-499 PC (Physical and Virtual) 125,000 Total instances: SMB 1-24 PC. 392,000 Total instances: SMB 25-499 PC
35 zettabytes Geography: France 832,000 Estimated Windows Server 2003 instances (Physical and Virtual) 10% 3% 40% 47% 342,000 Physical instances 490,000 Virtual instances 1 sur 6 SQL Server 2005 refonte
RTDS G3. Emmanuel Gaudin [email protected]
RTDS G3 Emmanuel Gaudin [email protected] PragmaDev Dédiée au développement d un AGL pour le développement des applications temps réel et embarquées. Réseau de partenaires: Formations, Service,
La technologie Java Card TM
Présentation interne au CESTI La technologie Java Card TM [email protected] http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages
Architecture à base de composants pour le déploiement adaptatif des applications multicomposants
Architecture à base de composants pour le déploiement adaptatif des applications multicomposants Dhouha Ayed, Chantal Taconet, et Guy Bernard GET / INT, CNRS Samovar 5157 9 rue Charles Fourier 91011 Évry,
Évaluation des logiciels et autres réalisations
DOCUMENT D ANALYSE DE LA COMMISSION D ÉVALUATION DE L INRIA Évaluation des logiciels et autres réalisations Préparé par David Margery, Jean-Pierre Merlet, Cordelia Schmid, Agnès Sulem, Paul Zimmermann
Je catalogue, tu FRBRises, il/elle googlise. L évolution des catalogues et les bibliothécaires Vendredi 29 mars 2013 Manufacture des tabacs
Je catalogue, tu FRBRises, il/elle googlise. L évolution des catalogues et les bibliothécaires Vendredi 29 mars 2013 Manufacture des tabacs Journée organisée par le CRFCB Midi-Pyrénées / Languedoc-Roussillon
Vérifier la qualité de vos applications logicielle de manière continue
IBM Software Group Vérifier la qualité de vos applications logicielle de manière continue Arnaud Bouzy Kamel Moulaoui 2004 IBM Corporation Agenda Analyse de code Test Fonctionnel Test de Performance Questions
Programmation Web Avancée Introduction aux services Web
1/21 Programmation Web Avancée Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017
Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6
Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer
Vulgarisation Java EE Java EE, c est quoi?
Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards
«Rénovation des curricula de l enseignement supérieur - Kazakhstan»
ESHA «Création de 4 Ecoles Supérieures Hôtelières d'application» R323_esha_FT_FF_sup_kaza_fr R323 : Fiche technique «formation des enseignants du supérieur» «Rénovation des curricula de l enseignement
UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE 2014-2018
UFR d Informatique FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE 2014-2018 Objectif L UFR d informatique propose au niveau du master, deux spécialités sous la mention informatique
La virtualisation, si simple!
La virtualisation, si simple! par Michel Guy Paiement Les mardi 15 juin 2010 & jeudi 17 juin 2010 Securecom Services Conseils inc. 507, Place D Armes, bureau 1160 Montréal, Québec H2Y 2W8 Tél: 514 544-0442
Direction B Unité Personnel, Administration et Budget
Unité Personnel, Administration et Budget Avanade Belgium BVBA Mr Marc Sorée Guldensporenpark 76 blok H 9820 MERELBEKE Strasbourg, 1 1 "12" 2013 Attribution du marché public n 06/2013 Configuration serveurs
Cours Bases de données
Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine [email protected] Transparents Disponibles
Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration
Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration Pluquet Frédéric July, 3rd 2012 Etude de techniques efficaces de versionnement d objets pour les langages orientés
INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)
CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.
La réalité opérationnelle du KM chez Schlumberger
La réalité opérationnelle du KM chez Schlumberger Travail collaboratif et transfert des connaissances Louis-Pierre Guillaume Process & KM Business Manager Hervé Gibert Principal Business Consultant 7 octobre
Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle [email protected] http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D
NOVA BPM «Première solution BPM intégr grée» Pierre Vignéras Bull R&D Définitions Business Process Pratiques existantes qui permettent aux personnes et systèmes de travailler ensemble Business Process
Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java
1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit
SNMP for cloud Jean Parpaillon. SNMP4cloud - 1
SNMP for cloud Jean Parpaillon SNMP4cloud - 1 SNMP4cloud - 2 API SNMP4cloud - 3 Modèle API SNMP4cloud - 4 Modèle API Mise en oeuvre SNMP4cloud - 5 Modèle Langages A, B, C API Mise en oeuvre SNMP4cloud
C U R R I C U L U M V I T A E
C U R R I C U L U M V I T A E Nom : Prénom : IDOUGHI Djilali Adresse Personnelle: Cité des 792 Logts Bt L N 690 Sidi-Ahmed, Bejaia, Algérie. Adresse professionnelle : Université A. Mira, de Béjaïa Département
Bologne à l EPFL. Réforme de Bologne Implications pour l EPFL. Prof. Dominique Bonvin, Doyen Bachelor-Master
Bologne à l EPFL Réforme de Bologne Implications pour l EPFL Prof. Dominique Bonvin, Doyen Bachelor-Master EPFL Quelques chiffres 6 600 Etudiants, 23% femmes, 38% étrangers, 109 nationalités 1 400 Doctorants
DEA ès Sciences de Gestion. DES en Sciences Economiques. Ingénieur diplômé de l'ecole Polytechnique de Paris.
Education René Demeestere Emeritus Professor, Department Accounting and Management Control DEA ès Sciences de Gestion. DES en Sciences Economiques. Ingénieur diplômé de l'ecole Polytechnique de Paris.
CONCEPTION ET DEVELOPPEMENT D ENVIRONNEMENTS VIRTUELS COLLABORATIFS
CONCEPTION ET DEVELOPPEMENT D ENVIRONNEMENTS VIRTUELS COLLABORATIFS Roberta LIMAGOMES 1 Directeur de thèse: JeanPierre COURTIAT* Laboratoire d'accueil: * LAASCNRS 7, avenue du Colonel Roche 31077 Toulouse
Problématiques de recherche. Figure Research Agenda for service-oriented computing
Problématiques de recherche 90 Figure Research Agenda for service-oriented computing Conférences dans le domaine ICWS (International Conference on Web Services) Web services specifications and enhancements
StratusLab : Le projet et sa distribution cloud
StratusLab : Le projet et sa distribution cloud M. Airaj C. Loomis (CNRS/LAL) Université Lille I 17 Mai 2010 StratusLab is co-funded by the European Community s Seventh Framework Programme (Capacities)
REPUBLIQUE TUNISIENNE MINISTERE DES TECHNOLOGIES DE LA COMMUNICATION
Programme National de certification des compétences en TIC Linux Professional Institute (LPI) Microsoft TMI (JAVA) ORADIST (ORACLE) TELNET (CATIA) COUTS REPUBLIQUE TUNISIENNE MINISTERE DES TECHNOLOGIES
Introduction aux bases de données
Introduction aux bases de données Références bibliographiques Jeff Ullman,Jennifer Widom, «A First Course in Database systems», Prentice-Hall, 3rd Edition, 2008 Hector Garcia-Molina, Jeff Ullman, Jennifer
Architectures Ouvertes pour l Adaptation des Logiciels
Architectures Ouvertes pour l Adaptation des Logiciels Frédéric Duclos 1, Jacky Estublier 2, Rémy Sanlaville 1 Published in review Génie Logiciel And proceedings ICSSEA, Paris 2001 1 Dassault Systèmes
T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5
Modélisation de la performance et optimisation d un algorithme hydrodynamique de type Lagrange-Projection sur processeurs multi-cœurs T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet
Tier 1 / Tier 2 relations: Are the roles changing?
Tier 1 / Tier 2 relations: Are the roles changing? Alexandre Loire A.L.F.A Project Manager July, 5th 2007 1. Changes to roles in customer/supplier relations a - Distribution Channels Activities End customer
Netdays 2004. Comprendre et prévenir les risques liés aux codes malicieux
1 Netdays 2004 Comprendre et prévenir les risques liés aux codes malicieux 2 Comprendre et prévenir les risques liés aux codes malicieux - Motivations - Les principaux types de codes malicieux - Les principales
eprocurement Bernard Longhi SC PDA eproc Domain Coordinator CEN/eBES Chair CLEEP French National Forum Chair Geneva, 21 April 2015
eprocurement Bernard Longhi SC PDA eproc Domain Coordinator CEN/eBES Chair CLEEP French National Forum Chair Geneva, 21 April 2015 21 April 2015/ Geneva Bernard Longhi / eproc DC/ [email protected]
GESTION D UNE BASE BIBLIOGRAPHIQUE
GESTION D UNE BASE BIBLIOGRAPHIQUE BTS Bioanalyses et contrôles Gil Voge Lycée Louise Michel, Grenoble Base de données (BD ou DB, database) Ensemble de données relatif à un domaine particulier des connaissances
Jean-Nicolas Piotrowski, Dirigeant Fondateur d ITrust
Jean-Nicolas Piotrowski, Dirigeant Fondateur d ITrust Ancien Responsable sécurité salle de marchés BNP, CISSP, Lead Auditor 27001, Ingénieur Télécom Toulouse, Expert sécurité intervenant à l'assemblée
Information utiles. [email protected]. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/
Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : [email protected] webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/
Conférence Bales II - Mauritanie. Patrick Le Nôtre. Directeur de la Stratégie - Secteur Finance Solutions risques et Réglementations
Conférence Bales II - Mauritanie Patrick Le Nôtre Directeur de la Stratégie - Secteur Finance Solutions risques et Réglementations AGENDA Le positionnement et l approche de SAS Notre légitimité dans les
Formation Webmaster : Création de site Web Initiation + Approfondissement
Contactez notre équipe commerciale au 09.72.37.73.73 Aix en Provence - Bordeaux - Bruxelles - Geneve - Lille - Luxembourg - Lyon - Montpellier - Nantes - Nice - Paris - Rennes - Strasbourg - Toulouse Formation
Programmation Internet Cours 4
Programmation Internet Cours 4 Kim Nguy ên http://www.lri.fr/~kn 17 octobre 2011 1 / 23 Plan 1. Système d exploitation 2. Réseau et Internet 3. Web 3.1 Internet et ses services 3.1 Fonctionnement du Web
Quels progrès dans le développement des composants icargo?
News letter n 5 Juin 2013 Editorial Erick Cornelisse icargo est un projet de l'union européenne du septième programme-cadre qui vise à faire progresser et à étendre l'utilisation des TIC pour soutenir
UE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie [email protected] 2 Programmation Impérative
Semestre HPC. Violaine Louvet. Institut Camille Jordan - CNRS [email protected]. Labex MILyon, Printemps 2016
Semestre HPC Violaine Louvet Institut Camille Jordan - CNRS [email protected] Labex MILyon, Printemps 2016 V. Louvet (ICJ) Semestre HPC Printemps 2016 1 / 9 Présentation du semestre Modélisation
BES WEBDEVELOPER ACTIVITÉ RÔLE
BES WEBDEVELOPER ACTIVITÉ Le web developer participe aux activités concernant la conception, la réalisation, la mise à jour, la maintenance et l évolution d applications internet/intranet statiques et
Software Engineering and Middleware A Roadmap
Software Engineering and Middleware A Roadmap Ecrit par: Dr. Wolfgang Emmerich Présenté par : Mustapha Boushaba Cours : IFT6251 Wolfgang Emmerich Enseignant à University College London: Distributed Systems
Alexandru V. Vlad RADIAN Solution Architect, Lead IT developer
Alexandru V. Vlad RADIAN Solution Architect, Lead IT developer +33 (6) 61 94 21 29 [email protected] Compétences clés Forte capacité à résoudre les problèmes Conception et implémentation de solutions
Jean-Philippe VIOLET Solutions Architect
Jean-Philippe VIOLET Solutions Architect IBM Cognos: L' Expertise de la Gestion de la Performance Acquis par IBM en Janvier 08 Rattaché au Brand Information Management Couverture Globale 23,000 clients
Le projet PALETTE et les CoPs L exemple de la CoP eprep
Pedagogically sustained Adaptive LEarning Through the exploitation of Tacit and Explicit knowledge Le projet PALETTE et les CoPs L exemple de la CoP eprep Nathalie VAN DE WIELE, directrice d eprep, partenaire
FOURNIR UN SERVICE DE BASE DE DONNÉES FLEXIBLE. Database as a Service (DBaaS)
FOURNIR UN SERVICE DE BASE DE DONNÉES FLEXIBLE Database as a Service (DBaaS) 1 The following is intended to outline our general product direction. It is intended for information purposes only, and may
The space to start! Managed by
The space to start! Managed by ESA Business Incubation Centers (ESA BICs) : un programme de soutien à la création d entreprises L Agence Spatiale Européenne (ESA) dispose d un programme de transfert de
Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires
Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires Julien Jorge, Xavier Gandibleux Laboratoire d Informatique de Nantes Atlantique
SHAREPOINT PORTAL SERVER 2013
Powered by TCPDF (www.tcpdf.org) SHAREPOINT PORTAL SERVER 2013 Sharepoint portal server 2013 DEVELOPING MICROSOFT SHAREPOINT SERVER 2013 CORE SOLUTIONS Réf: MS20488 Durée : 5 jours (7 heures) OBJECTIFS
Tél.: +1 (418) 656-2337 Tél. : +1 (418) 522-2318 Fax : +1 (418) 656-7412 Email: [email protected]. Économie mathématique.
Michel ROLAND Adresse au bureau Québec, QC G1V 0A6, Canada Adresse à domicile 3017 De la Seine Québec, QC G1W 1H8, Canada Tél.: +1 (418) 656-2337 Tél. : +1 (418) 522-2318 Fax : +1 (418) 656-7412 Email:
4. SERVICES WEB REST 46
4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,
Introduction à Microsoft InfoPath 2010
Introduction à Microsoft InfoPath 2010 Couplé à Microsoft SharePoint Designer 2010, InfoPath 2010 simplifie la création de solutions de bout en bout sur SharePoint Server 2010, qui contiennent des formulaires
Techniques d interaction dans la visualisation de l information Séminaire DIVA
Techniques d interaction dans la visualisation de l information Séminaire DIVA Zingg Luca, [email protected] 13 février 2007 Résumé Le but de cet article est d avoir une vision globale des techniques
VMware Infrastructure The New Computing Platform. Stéphane CROIX Systems Engineer
VMware Infrastructure The New Computing Platform Stéphane CROIX Systems Engineer La nouvelle plateforme informatique Une seule plateforme pour résoudre les différents «challenges» de l entreprise d aujourd
