CONCEPTION ET IMPLANTATION D UNE GRILLE DE CALCULS DE RISQUES TOLERANTE AUX PANNES MEMOIRE EN INFORMATIQUE PRESENTE PAR. BEZZINE Sébastien JURY

Dimension: px
Commencer à balayer dès la page:

Download "CONCEPTION ET IMPLANTATION D UNE GRILLE DE CALCULS DE RISQUES TOLERANTE AUX PANNES MEMOIRE EN INFORMATIQUE PRESENTE PAR. BEZZINE Sébastien JURY"

Transcription

1 CONSERVATOIRE NATIONAL DES ARTS ET METIERS CENTRE REGIONAL DE LORRAINE CENTRE D ENSEIGNEMENT DE METZ CONCEPTION ET IMPLANTATION D UNE GRILLE DE CALCULS DE RISQUES TOLERANTE AUX PANNES MEMOIRE EN INFORMATIQUE PRESENTE PAR BEZZINE Sébastien Soutenu à Metz le 1 er décembre 2006 JURY Président : M. J-P. Arnaud, Professeur CNAM, Membres : M. S. Vialle, RRS Informatique au CNAM de Lorraine, M. L. Watrin, Professeur au CNAM de Lorraine, Mme. V. Galtier, Enseignant Chercheur à Supélec, M. R. Anger, Directeur des SI à Pricing Partners.

2 Remerciements Je remercie tout particulièrement Monsieur Stéphane Vialle, Professeur à Supélec, de m avoir donné l opportunité d effectuer mon stage au sein de l équipe IMS, et de m avoir orienté dans mon projet. Je remercie également Madame Virginie Galtier, enseignante et chercheur à Supélec, pour son aide dans l utilisation des JavaSpaces et de Grid 5000, Monsieur Michel Ianotto, enseignant et chercheur à Supélec, pour son aide dans la modélisation en UML, et toute l équipe technique pour sa disponibilité.

3 Table des matières Introduction... 6 I Les grilles de calcul Définition Evolution des grilles de calcul Composants actuels d une grille Architecture générale Exemples de middlewares existants Quelques projets La grille dans l entreprise Les débuts Les obstacles Les produits industriels II Définition du projet de mémoire Le projet ANR "GCPMF" Contexte du projet Principaux objectifs informatiques Le sous projet Risque Choix de l environnement de développement III Introduction à ProActive Qu est ce que ProActive? Installation et utilisation de ProActive Concept d objet Actif et d objet Futur Création d un objet actif Création à l instanciation Création à partir d un objet existant Spécification des nœuds d accueil des objets actifs Enregistrement des objets actifs Concept de groupe d objets Mécanisme de déploiement Exemple de déploiement d objets ProActive Bilan IV Introduction aux JavaSpaces Qu est ce qu un JavaSpace? Fonctionnement Exemple avec des services transients Exemple avec des services persistants activables et des transactions Bilan V Architecture logicielle du projet Principaux concepts de l architecture logicielle "PicsouGrid" Page 3

4 5.2 Conséquences des conditions d exploitation en salle de marché Description de l architecture logicielle "PicsouGrid" Mécanismes de déploiement de "PicsouGrid" Mécanismes d équilibrage de charge Stratégie au niveau applicatif Exemple de mise en oeuvre Mécanismes de tolérance aux pannes Stratégie à collaboration multi niveaux Mécanismes au niveau de "PicsouGrid" Mécanismes intégrés aux middlewares sous-jacents Mécanismes au niveau applicatif Utilisation des classes "generics" (Java 1.5) Principe des "generics" Architecture logicielle générique de "PicsouGrid" Autre solution sans les "generics" Bilan des difficultés techniques rencontrées Problème résolu entre ProActive et Jini/JavaSpaces Problèmes rencontrés avec les groupes de ProActive Problème rencontré entre les "generics" et ProActive VI Plateforme d expérimentation et exemple d application Les options européennes Principe des options négociés sur les marchés Détail des options européennes Calcul du prix d une option européenne Interface graphique du client de l application Utilisation de la plateforme Grid Caractéristiques techniques Réservation de ressources Déploiement d image Linux Problèmes techniques rencontrés VII Implantation Diagramme de déploiement sur le cluster de Supélec Diagramme de classes de l application utilisant "PicsouGrid" Analyse des principales classes de "PicsouGrid" Classe générique Server Classe générique SubServer Classe générique Worker Classe générique PoolNode Analyse des principales classes de l application Classe UserServer Classe UserSubServer Classe UserWorker Classe UserData VIII Mesures de performances Performances de "PicsouGrid" sur un cluster Page 4

5 8.1.1 Performances sur un petit cluster en mode ProActive Performances sur un petit cluster en mode JavaSpace Performances sur un gros cluster en mode ProActive Performances de "PicsouGrid" sur une grille en mode ProActive "PicsouGrid" et la tolérance aux pannes Mesures de performance sur un petit cluster en mode ProActive Mesures de performance sur un petit cluster en mode JavaSpace Bilan des performances actuelles Premiers résultats avec une tolérance aux pannes renforcée Conclusion et perspectives Bibliographie Annexe A : Correspondance avec l équipe support de ProActive A.1 Difficultés rencontrées avec ProActive A.2 Problème entre ProActive et Jini/JavaSpaces Annexe B : Article publié Annexe C : Fichier XML de déploiement sur le cluster de Supélec à Metz Page 5

6 Introduction La technologie grid computing est de plus en plus adoptée par l industrie et notamment par l industrie financière (banques et assurances). Les grilles permettent de distribuer efficacement certains types de calculs et de diminuer ainsi les temps de traitement ou d augmenter la quantité de données traitées. Cette technologie intéresse particulièrement les institutions financières qui réalisent en permanence d importants calculs de risques. L objectif est de prévoir l évolution de produits financiers pour décider de conclure une transaction ou d y renoncer. Mais ces produits et leurs modèles mathématiques sont de plus en plus complexes. De plus, le calcul de risque global d une banque sur l ensemble de ses actifs (ou de gros sous-ensembles) doit être plus précis pour limiter les pertes. Toutes ces contraintes mènent à une quantité toujours plus importante de calculs à effectuer en un minimum de temps. Les grilles sont une solution potentielle aux besoins de calculs de risques, mais elles souffrent toutes d un problème inhérent aux architectures de grandes tailles : la fréquence des défaillances et des disparitions momentanées des ressources. Les middlewares de grilles professionnels actuels gèrent la tolérance aux pannes sans s inquiéter des retards engendrés. Pour pallier ces faiblesses, nous développons une architecture logicielle sur grille qui soit tolérante aux pannes tout en minimisant les surcoûts de récupération sur panne sans toutefois garantir une qualité de service («QoS») et des traitements temps réel. Elle s appuie sur des mécanismes intégrés au niveau applicatif, donc adaptés aux applications pour minimiser les temps de détection de pannes et de réparation. Ces mécanismes logiciels collaborent avec ceux existants dans le middleware de grille utilisé par le système pour effectuer les réparations sans arrêter le reste du système. Cette étude fait partie du projet "Grilles de Calcul appliqués à des Problèmes de Mathématiques Financières" du programme de recherche "Calcul Intensif et Grilles de calcul" de l Agence Nationale de la Recherche, en collaboration pour la partie informatique avec l INRIA de Sophia- Antipolis, le CERTIS de l ENPC, et des sociétés privées d informatique bancaire dont notamment Pricing Partners. Notre architecture est décrite dans un article [1] accepté à la conférence suivante : "2 nd IEEE International Conference on e-science and Grid Computing", qui aura lieu du 4 au 6 décembre 2006 à Amsterdam (voir Annexe B). Après une description des grilles de calculs, nous expliquerons le fonctionnement des technologies Java utilisées pour développer ce système : ProActive et JavaSpaces. Ensuite nous présenterons l architecture logicielle, les classes Generics utilisées, et nous expliquerons dans le détail les différentes classes du programme. Enfin nous terminerons par la présentation de performances expérimentales obtenues sur des clusters et des grilles multi sites comprenant des centaines de processeurs. Page 6

7 I Les grilles de calcul 1.1 Définition Le terme grid computing a été initialement utilisé en référence au réseau d électricité public (power grid) [2]. La définition des grilles informatiques donnée par le ministère français de la recherche est : Globalisation des Ressources Informatiques et des Données (GRID). L objectif est de pouvoir mutualiser des ressources, souvent réparties géographiquement sur plusieurs sites, ainsi un utilisateur dispose de la puissance de calcul, des données et de l espace de stockage dont il a besoin pour lancer des applications, sans se préoccuper de savoir quelles machines sont utilisées. Comme pour la distribution d électricité, le client ne perçoit pas l architecture sous-jacente de la grille, le middleware masque le système réel. On distingue souvent plusieurs types de grilles : Les grilles d information permettent l accès à de très grandes bases d informations réparties géographiquement et à des capacités de traitement adaptées. Les quantités de données stockées ou générées peuvent atteindre plusieurs petaoctets ou plus (comme les résultats du collisionneur du CERN), nécessitant des capacités de stockage inaccessibles pour un organisme seul. Ces grandes bases de données sont issues de nombreuses expériences scientifiques (physique des particules, biologie, observation spatiale, etc.) ou contiennent des données commerciales, économiques, techniques ou textuelles. Ces grilles d information demandent une bonne gestion des problèmes de migration et de réplication des données, et ils permettent souvent de faire du data-mining à large échelle. Les grilles de calcul permettent de distribuer des calculs sur des ressources réparties pour bénéficier d une plus grande puissance de calcul. Ces grilles sont en général formées de clusters et de serveurs, mais parfois des PC de bureau sont utilisés. Ces grilles deviennent de plus en plus nécessaires pour faire face à l augmentation constante des besoins en puissance de calcul. Ainsi, la complexité des systèmes étudiés en recherche scientifique et dans l industrie (thermique, structure, fluides, biologie, etc.) induit des besoins de puissance de calcul pouvant atteindre plusieurs téraflops. Les projets nécessitant de telles puissances de calcul sont par exemple les modèles météo et les études sur le changement climatique global, les simulations de matériaux, les simulations et outils de conceptions en aéronautique, automobile, chimie ou nucléaire, certains calculs de risques dans le domaine de la finance. Les grilles collaboratives sont utilisées pour faire collaborer des personnes éloignées géographiquement grâce à des transmissions en temps réel. Ainsi, ces personnes peuvent travailler ensemble et échanger documents, données, logiciels, résultats, etc., la cohérence de ceux-ci étant assurée au cours de l ensemble des manipulations. Les grilles réparties sur des sites éloignés ont commencé à apparaître lorsque les réseaux de communication à haut débit ont été installés. Ainsi, le réseau européen GEANT [3] fournit un débit de 10 Gbit/s aux organismes de recherche (voir figure 1.1). En France, le réseau RENATER (Réseau National de télécommunications pour la Technologie, l Enseignement et la Recherche) [4] offre un débit allant de 2,5 Gbit/s à 10 Gbits/s (migration en cours) aux chercheurs (voir figure 1.2). Page 7

8 Figure 1.1 Le réseau GEANT Figure 1.2 Le réseau RENATER Page 8

9 1.2 Evolution des grilles de calcul Le grid computing est présenté comme la suite du meta-computing. Ce terme regroupe l ensemble des techniques permettant d utiliser plusieurs supercalculateurs au sein d une même application, en tenant compte des temps de communication sur les réseaux WAN. Ainsi, le projet américain CASA a permis la distribution de simulations intensives de phénomènes chimiques et météorologiques, sur plusieurs supercalculateurs à travers un réseau Gigabit ( ) (voir figure 1.3). L objectif était de comprendre l impact des réseaux rapides longue distance sur le calcul intensif, et de tester des algorithmes et des implantations de calculs intensifs distribués sur de grandes distances. Ce projet a montré la nécessité de concevoir un middleware de grille pour prendre en charge et masquer à l utilisateur l hétérogénéité des environnements informatiques de chaque nœud du système. Il a aussi montré l efficacité des grilles pour les calculs distribués [5]. Figure 1.3 Le projet CASA Ensuite, grâce au projet GUSTO (Globus Ubiquitous Supercomputing Testbed Organization), une grille expérimentales, composée de 125 sites répartis sur 23 pays, a été créée pour tester les premiers prototypes de middleware de grille ( ). Cette grille fut un des plus grands systèmes de calcul distribué jamais construit, et montra la faisabilité d une architecture à très grande échelle. Le projet européen Data-GRID a regroupé 15 pays d Europe, 21 organisations, et 200 personnes pour créer une grille d exploitation bâtie sur Globus-II ( ). Des applications dans les domaines de la physique des particules, de la biologie et de l observation de la terre ont été expérimentées. Ce projet a montré l utilité des grilles de données et leur manque de robustesse : un fort pourcentage de nœuds étaient souvent inaccessibles (observable sur la cartographie du projet sur un site Web). 1.3 Composants actuels d une grille Architecture générale Pour construire une grille efficace, il est important d y implanter un middleware robuste et un environnement de développement contenant de nombreuses fonctionnalités. Page 9

10 Figure 1.4 Architecture de grille Il existe deux types de middleware (voir Figure 1.4) : middleware de grille générique et ambitieux (ex : Globus) middleware générique traditionnel avec un complément spécifique (ex : Java RMI + ProActive, Java/Jini + JavaSpaces) Le middleware de grille doit résoudre de nombreux problèmes : authentification unique et politique de sécurité, tolérance aux pannes, équilibrage de charge dynamique, découverte et analyse dynamique de ressources partage et allocation des différentes ressources suivant des critères techniques et économiques, cohérence des données distribuées et des versions des logiciels, évaluation des performances et mesure de la qualité de service, comptabilisation des ressources consommées (distribuées et partagées!) et facturation L environnement de développement doit posséder un certains nombres de fonctionnalités : déploiement dynamique de programmes sur la grille, recouvrement des calculs et des communications, possibilité de communications synchrones et asynchrones, accès au monitoring de la grille, Exemples de middlewares existants Des middlewares génériques et ambitieux ont été développés comme par exemple Globus aux Etats-Unis et Unicore en Europe. Le projet Globus a créé un standard d architecture de grille, OGSA (Open Grid Services Architecture). La dernière version de Globus associe les technologies de grille de OGSA et les technologies Web Services et a abouti à la norme WSRF (Web Services Resource Framework). Des middlewares associés à des environnements de développement ont Page 10

11 aussi été conçu, par exemple NetSolve, DIET, JavaSpaces/Jini, ProActive. Ils sont génériques, moins ambitieux et plus simples à déployer et à utiliser. XtremWeb est un autre type de middleware de grille, basé sur la distribution de calculs indépendants et la récupération de la puissance de calcul inutilisée des PC de bureau. Un exemple extrême de tel middleware est le projet qui, pour la recherche de signaux extra-terrestres, a réussi, en récupérant des milliers de PC sur Internet, à produire l équivalent d une machine de 54 téraflops. Des tentatives d interopérabilité entre des middlewares de grille ont été lancées comme par exemple le projet européen UniGrids. Par contre, les entreprises préfèrent utiliser des middlewares propriétaires moins ambitieux et plus opérationnels comme le SUN Grid Engine, ou les middlewares de Data Synaspe et de Platform Computing. 1.4 Quelques projets De nombreux projets de grille sont en cours de développement dans le monde. Le projet américain TeraGrid, commencé en 2001, a permis de mettre en place une infrastructure composée d un réseau rapide, de supercalculateurs et de grandes capacités de stockage [6]. Des projets scientifiques et informatiques ont testé ce système. Par exemple, des expérimentations sur les transferts de données ont été menées (voir figure 1.5). Figure 1.5 Projet TeraGrid Le projet américain Open Science Grid (OSG), bâti sur Globus, permet depuis 2004 à diverses communautés scientifiques (les virtual organizations) d accéder à une même infrastructure de grille et ainsi de partager leurs ressources [7] (voir figure 1.6). Page 11

12 Figure 1.6 Le projet Open Science Grid Le projet japonais NAREGI (National Research Grid Initiative) [8] s est donné depuis 2003 plusieurs objectifs (voir figure 1.7) : amélioration des couches réseaux pour les grilles, conception d un middleware de grille, conception d application, mise en place d un testbed, expérimentations et mesures de performances. Figure 1.7 Le projet NAREGI L Union européenne a incité la recherche sur les grilles dans le 6 ème Programme Cadre de Recherche et de Développement (PCRD ). On peut citer quelques exemples de projets financés par ce programme : UniGrids : grille associant OGSA et UNICORE pour des applications scientifiques et industrielles [9]. Akogrimo : grille de mobiles avec des services distribués pour gérer des organisations virtuelles [10]. Page 12

13 HPC4U : un middleware de grille pour clusters apportant une qualité de service [11]. SIMDAT : grille de données permettant le développement de produit utilisant la simulation numérique et la découverte de connaissance [12]. DataMiningGrid : développement d outils et de services data mining pour la grille [13]. Le projet européen EGEE (The Enabling Grids for E-sciencE) a été financé depuis 2004 par la Commission européenne pour construire une grille basée sur les dernières technologies, et s appuyant sur le réseau GEANT [14]. L objectif est de permettre aux scientifiques d utiliser les services de cette grille jour et nuit (voir figure 1.8). Figure 1.8 Le projet EGEE Le projet européen DEISA (Distributed European Infrastructure for Supercomputing Applications) a débuté en 2004 pour permettre la création d une grille de production composée de supercalculateurs, pour la recherche scientifique [15]. Cette grille s appuie sur des technologies propriétaires, principalement sur la technologie IBM : Global Parallel File System (voir figure 1.9). Figure 1.9 Le projet DEISA Page 13

14 Enfin, citons le projet français Grid 5000, commencé en 2004, et qui a permis la réalisation d une plateforme de neuf sites reliés par le réseau RENATER avec un débit allant de 2,5 Gbit/s à 10 Gbits/s [16]. Chaque nœud est composé de clusters de 94 à 1024 processeurs. Actuellement la grille possède presque 3000 processeurs, mais ce chiffre augmente continuellement pour atteindre les 5000 processeurs. L objectif est d expérimenter les différents niveaux logiciels de la grille comme les applications, les algorithmes, les middlewares, les protocoles réseaux (voir figure 1.10). Lille Rennes Paris Nancy Lyon Bordeaux Toulouse Grenoble Sophia (Nice) Figure 1.10 Le projet Grid 5000 Une grande partie de nos expérimentations ont été réalisées sur cette grille. 1.5 La grille dans l entreprise Les débuts Les grilles informatiques ont d abord été utilisées dans le monde de la recherche scientifique, car celle-ci demande une puissance de calcul et une capacité de stockage de plus en plus importantes. Mais certaines entreprises privées commencent aussi à y avoir recours pour effectuer des simulations de gros volumes de données, de l ordre du téraoctet, notamment dans les secteurs de l automobile, de l aéronautique, des biotechnologies et de la microélectronique. D autres applications apparaissent dans le domaine de la finance (diversification de portefeuilles financiers et évaluation des risques), de la santé (analyse de clichés en mammographie assistée par ordinateur), de l énergie (traitement des données d exploration pétrolière), ou de l industrie des médias (calcul d animations en images de synthèse) [17]. Parmi les premiers utilisateurs (surtout pour des besoins en calculs intensifs), on peut citer : Boeing : analyses statistiques pour la conception d engins utilisant une grille formée d un supercalculateur SGI, d un cluster Linux et de deux serveurs SUN. Browne & Co (fournisseur d informations financières) : projet pilote de grille de serveurs et de PC sous Windows pour faire tourner un module d une application de composition automatique. Diversa (recherche pharmaceutique) : fédération de clusters pour l étude de protéines. EADS : simulation numérique pour l ingénierie sur les projets Airbus. EDF : simulation de mécanique et de dynamique des fluides pour le réseau électrique. GlaxoSmithKline : utilisation de la puissance de plusieurs centaines de postes de travail de la société, au Royaume-Uni, en Italie et aux Etats-Unis pour la recherche moléculaire. Page 14

15 JP Morgan Chase : projet Compute Backbone pour faire tourner des applications de courtage et de gestion de risques. Monsanto : calcul distribué sur plusieurs clusters et PC de bureau pour la recherche génétique dans le domaine agricole. Novartis AG (groupe pharmaceutique suisse) : utilisation de PC de bureau pour des calculs de protéines. Pratt & Whitney : calculs de simulations (moteurs d avions) sur un réseau de plusieurs stations de travail réparties sur trois sites. Shell : analyses sismologiques pour la prospection pétrolière. SGCIB (branche de la Société Générale) : calculs de risques sur une ferme de serveurs gérée par le logiciel de grille de Platform Computing Les obstacles Avant de pouvoir utiliser le concept de grille, les entreprises doivent souvent surmonter un certain nombre d obstacles. Toutes les applications ne se prêtent pas au calcul distribué. Ainsi il n est pas toujours possible de paralléliser des tâches lorsque le programme original n a pas été conçu dans cette optique. Cela demande d entreprendre un travail souvent lourd et fastidieux pour développer à nouveau l application. L utilisation d une grille répartie sur plusieurs sites comporte plusieurs obstacles : les problèmes de sécurité, le temps de transfert des données et la qualité de service sur les liaisons longues distances, l harmonisation des procédures de sauvegarde, ou le refus des employés de mutualiser leur PC de bureau Les produits industriels Plusieurs grandes sociétés comme IBM, Oracle et Sun Microsystems proposent des solutions industrielles. De nombreuses jeunes sociétés informatiques se sont aussi lancées dans la conception de grilles industrielles : Avaki, Axceleon, Entropia, Grid Infrastructure, GridSystems, Parabon, United Devices etc. Certaines entreprises se sont spécialisées dans les grilles pour le monde de la finance comme Data Synaspe et Platform Computing. Oracle utilise Globus pour ses solutions de grille, il a développé le Oracle Globus Development Kit (OGDK) pour simplifier l utilisation d Oracle9i avec Globus. Sun propose le Sun Grid Engine pour gérer une grille depuis une seule interface graphique. Page 15

16 II Définition du projet de mémoire 2.1 Le projet ANR "GCPMF" Contexte du projet Notre projet d architecture logicielle de grille s inscrit dans le cadre du projet "Grilles de Calcul appliqués à des Problèmes de Mathématiques Financières" (GCPMF) du programme de recherche "Calcul Intensif et Grilles de Calcul" de l Agence Nationale de la Recherche. Ce projet est conçu en collaboration avec des laboratoires de recherche en calcul numérique probabiliste appliqué à la finance, des "quants" de Banques intervenant dans le domaine de la finance de marché, et pour la partie informatique avec l INRIA de Sophia-Antipolis, le CERTIS de l ENPC et des sociétés privées d informatique bancaire (Pricing Partners et Summit Systems) Principaux objectifs informatiques Les applications financières nécessitent de résoudre des problèmes de grandes tailles : gestion de portefeuilles composés de plusieurs milliers d actifs, évaluation de risque de crédits, contrôle du risque global de la banque, calculs d actifs exotiques complexes,...etc. On peut distinguer principalement deux types de calculs : - des calculs courts quasiment en permanence et en temps réel dans les salles de marché où se traitent très rapidement des milliers de transactions. Les traders ont besoin de calculer le risque associé à chaque transaction qu ils s apprêtent à effectuer, pour décider de conclure ou de renoncer à ces transactions. Ils effectuent donc de nombreux calculs de risques de courte durée, mais avec de fortes contraintes de temps. - des calculs plus longs : d une part certaines transactions complexes sont lourdes à évaluer (options exotiques), et d autre part il est nécessaire d analyser le risque global (c est le rôle du contrôle du risque d une banque) portant sur un ensemble d activités. Ces analyses de risques ne sont pas aussi nombreuses mais durent très longtemps et peuvent monopoliser l ensemble des ordinateurs, et leur aboutissement doit aussi être garanti en un temps prédéterminé (elles sont souvent effectuées pendant la nuit). Ainsi, les calculs de risques exigent de respecter des contraintes de temps pour prendre rapidement de nombreuses décisions et engager des actions. Ces contraintes qui ne cessent de se complexifier imposent de dépasser les limites des ordinateurs actuels. C est pourquoi le recours à des grilles de calcul est d hors et déjà courant dans ce contexte mais pose des difficultés nouvelles que ce projet se propose de résoudre. Les principaux objectifs informatiques de ce projet ANR sont : - Concevoir des algorithmes de calculs distribués à grande échelle, prenant en compte les besoins en tolérance aux pannes. La conception de versions adaptées aux grilles de problèmes d algorithmique numérique connus comme très intensifs est nécessaire (ex. : problèmes paraboliques, options américaines en grande dimension). - Concevoir des mécanismes de tolérance aux pannes engendrant de faibles surcoûts de temps d exécution afin de respecter les contraintes de temps même en cas de défaillance légère de la grille. - Concevoir un système de grille compatible avec les mécanismes de sécurité forte des institutions financières (sites sécurisés et utilisation de réseaux dédiés et sécurisés). Page 16

17 2.2 Le sous projet Risque 1 Ce travail de stage ingénieur fait partie du sous projet (Work Package) Risque 1 du projet ANR qui consiste à distribuer et implanter des calculs de risques standards et à les expérimenter sur clusters et grilles. Ce sous projet doit se réaliser de janvier 2006 à janvier Les principales étapes de notre travail de mémoire d ingénieur sont les suivantes : - Conception d une architecture logicielle de grille permettant le développement d applications distribuées variées par envoi de messages ou RMI, et par mémoire partagée. - Conception d une tolérance aux pannes s appuyant simultanément sur des mécanismes développés aux niveaux applicatif et middleware pour minimiser les surcoûts de récupération sur panne. - Conception d algorithmes distribués de calculs de risques pour accélérer ces calculs et traiter de plus gros volumes de données tout en tolérant les pannes. - Implantation de cette architecture logicielle et de ces algorithmes distribués en utilisant des mécanismes «templates» pour permettre de spécialiser facilement l architecture à tout type d application. - Expérimentation de cette architecture logicielle sur un système distribué à large échelle. Deux types d environnement de programmation distribuée sous Java ont été expérimentés et utilisés : un environnement à base d envoi de messages entre objets actifs (ProActive), et un autre à base de partage de données au sein d un espace d adressage partagé virtuel (JavaSpaces). Dans les deux cas, de nombreuses expérimentations ont eu lieu sur diverses architectures distribuées (cluster de PC homogène et grille de PC multi-sites). Les calculs de risques choisis pour être distribués sont des algorithmes élémentaires de pricing. Ils permettent de fixer le prix d une transaction (d une option) en fonction de son risque propre. 2.3 Choix de l environnement de développement Dès le début du projet nous avons réfléchi au choix d un langage de développement : C++, Java ou Python. Le langage C++ (ou C) est très rapide mais il n est pas portable. Python est très portable mais il n est associé à aucun middleware de grille. Nous choisissons donc de développer une solution dans le langage de programmation Java pour bénéficier de sa portabilité sur des architectures hétérogènes et pour sa popularité dans le milieu bancaire. Java est moins rapide mais il peut utiliser du code écrit en C grâce à JNI. De plus, il est utilisé par des middlewares de grille comme ProActive et Jini/JavaSpaces. Page 17

18 III Introduction à ProActive 3.1 Qu est ce que ProActive? ProActive est un environnement de développement sur grille se présentant sous la forme d une bibliothèque Java, permettant la programmation de calculs parallèles, distribués et concurrents. Il est aussi un middleware de grille. Cette bibliothèque a été développée par l INRIA de Sophia- Antipolis dans le but de fournir une API complète simplifiant la programmation d applications distribuées sur le réseau local, sur un cluster ou sur des grilles. ProActive est construit avec des classes Java standards et n exige donc aucun changement de la machine virtuelle, il utilise cependant un class loader spécifique. Il utilise actuellement la bibliothèque Java RMI en tant que couche de transport par défaut. ProActive est open Source et s inclut dans la communauté ObjectWeb. On peut l obtenir avec une documentation détaillée sur le site Web suivant : Installation et utilisation de ProActive Pour pouvoir utiliser ProActive après l avoir installé, il faut inclure tous les fichiers jar nécessaires à son fonctionnement dans la variable d environnement Classpath. Lorsqu on lance une application avec la machine virtuelle Java, il faut indiquer un fichier de politique de sécurité donnant les droits d accès aux ressources du système. On précise aussi un fichier log4j qui configure la journalisation des erreurs de l application, sinon un fichier par défaut est utilisé. Voici un exemple de ligne de commande pour lancer un programme HelloWorld : java -Djava.security.policy=$HOME/ProActive/scripts/proactive. java.policy -Dlog4j.configuration=file:$HOME/ProActive/scripts/proactive-log4j HelloWorld 3.3 Concept d objet Actif et d objet Futur ProActive repose sur le concept d objet actif. Un objet actif est en fait un objet Java qui possède ses propres threads et sa propre file d exécution, accessible à distance. Tout autre objet passif (normal) ou actif peut donc faire appel aux méthodes de cet objet comme s il se trouvait sur la même machine que lui [18]. Lorsqu un programme fait un appel de méthode sur un objet actif renvoyant un objet en retour, l application n est pas bloquée jusqu à l arrivée de la réponse, car un objet futur est envoyé tout de suite, et sera remplacé par l objet attendu lorsqu il sera disponible. Si le programme tente d accéder à la valeur de l objet futur (avant que sa vraie valeur ne soit connue), il sera bloqué. Ce mécanisme, appelé wait-by-necessity, permet au programme de se poursuivre jusqu au moment où il aura réellement besoin du résultat, c est une communication asynchrone entre objets. Le résultat doit être sérialisable pour traverser le réseau. De plus, ce mécanisme ne peut fonctionner que si l objet résultat est réifiable (au sens de ProActive). C est-à-dire s il respecte les trois points suivants : il n est pas de type primitif (boolean, int, float ), la classe de l objet n a pas l attribut final et ne possède pas de méthode de type final il a une méthode constructeur vide et sans argument. Page 18

19 Si on souhaite retourner un résultat de type primitif, il faut l encapsuler dans un objet réifiable (voir l exemple de la section 3.7). La figure 3.1 (extraite de la documentation ProActive) nous montre que les méthodes des objets actifs peuvent être facilement appelées par d autres objets se trouvant sur une autre JVM de la même machine ou d une autre machine. Figure Modèle ProActive (extraite de la documentation web de ProActive) 3.4 Création d un objet actif Création à l instanciation Nous allons illustrer la création d un objet actif en considérant une classe A dont l instance peut être définie de la manière suivante : A a = new A(26, "essai"); Une première méthode pour créer une instance active de la classe A est de créer directement un objet actif en utilisant la méthode newactive() de la classe ProActive. On passe comme argument le nom de la classe et un tableau d objets contenant les arguments du constructeur : Object[] params = new Object[] {new Integer(26), "essai" ; Try { A a = (A) ProActive.newActive(A.class.getName(), params); catch (Exception e) { e.printstacktrace(); Si un des arguments du constructeur est un type primitif Java (int, boolean ), il faut mettre à la place un objet de la classe enveloppe correspondante : Integer dans l exemple ci-dessus. Comme pour les objets retournés par les appels de méthodes asynchrones, les classes des objets actifs doivent être réifiables (voir section 3.3). Rappel : elles ne sont pas de type primitif (int, boolean, float, ), elles ne sont pas des classes de type final, et ne possèdent aucune méthode de type final. elles possèdent une méthode constructeur vide et sans argument : public A() {, Page 19

20 En fait, lorsqu un objet actif est créé, une sous classe de A appelé Stub-A est aussi créé, qui redéfinit toutes les méthodes de A. Ceci serait impossible avec une classe de type final, ou possédant des méthodes de type final Création à partir d un objet existant Il est aussi possible de rendre actif un objet passif, grâce à la méthode turnactive() : A a = new A(26, "essai"); a = (A) ProActive.turnActive(a); Spécification des nœuds d accueil des objets actifs Dans les deux méthodes de création d objets actifs que nous venons de décrire, nous n avons précisé aucune adresse de machine : les objets ont été créés localement. Cependant, il est possible d ajouter un argument précisant une adresse de machine d accueil : une adresse de noeud. Un nœud doit contenir les services nécessaires au bon fonctionnement de ProActive, comme ceux permettant le dialogue entre la machine virtuelle locale et celle où se trouve l objet actif. Une adresse de nœud est identifiée par le protocole utilisé (par exemple "RMI"), l URL de la machine et un nom de nœud. Exemple : A a = (A) ProActive.newActive(A.class.getName(), params, rmi://sh04.metz.supelec.fr/anode ); En fait, le noeud spécifié doit d abord exister pour que l on puisse y installer un objet actif. En pratique, on crée des noeuds avec un descripteur de déploiement (voir section 3.6). On obtient ainsi des objets nœud que l on passe en paramètre lors de la création des objets. On peut ensuite faire des appels de méthodes sur les objets distants comme s ils étaient locaux Enregistrement des objets actifs Un objet actif créé peut être utilisé par un autre objet se trouvant sur un autre nœud. Mais pour cela il faut qu il soit enregistré grâce à la méthode register() de ProActive. Cette opération d enregistrement ne peut se faire que localement sur le nœud où est créé l objet. Par exemple, un objet Obj_a est créé localement sur la machine sh00: A Obj_a = (A) ProActive.newActive(A.class.getName(), params); Ensuite il est enregistré sur la machine sh00 avec l identifiant "TheObj_a" : ProActive.register(Obj_a, "//localhost/theobj_a"); L objet distant utilise alors la méthode lookupactive() pour rechercher l objet Obj_a identifié "TheObj_a" et obtenir une référence sur celui-ci. Par exemple, on exécute sur la machine sh01: A Obj_a1 = (A) ProActive.lookupActive(A.class.getName(), "//sh00/theobj_a"); Page 20

21 Donc (à ce stade) pour retrouver un objet actif, il faut connaître l adresse du nœud qui l héberge. 3.5 Concept de groupe d objets ProActive permet de construire des groupes d objets. Ces objets doivent être de même type, c està-dire appartenir à la même classe ou bien à des classes filles de la même classe mère, et peuvent être actifs ou passifs. On peut alors faire un appel de méthode sur le groupe et obtenir un groupe de résultats. Cependant la méthode appelée doit être exactement la même, elle doit être commune à tous les objets du groupe (appartenir à la classe mère si ils sont de classes différentes). De plus, les objets du groupe doivent être réifiables, ainsi que les objets résultats car le groupe de résultats est obligatoirement construit avec des objets futurs [19]. On utilise la méthode ProActiveGroup.newGroup() pour créer un groupe et obtenir une représentation fonctionnelle du groupe (du même type que les objets composant le groupe), propre à ProActive. En revanche, la méthode ProActiveGroup.getGroup() appelée avec la représentation fonctionnelle, permet d obtenir une représentation standard du groupe. Cette représentation standard (de type Group) utilise l interface Collection de Java, qui fournit des méthodes très utiles telles que add(), remove(), size() On utilise la représentation fonctionnelle pour appeler les méthodes de groupe, et la représentation standard pour modifier la composition du groupe (voir section 3.7 pour un exemple). 3.6 Mécanisme de déploiement ProActive fournit une fonctionnalité très pratique pour répandre rapidement des objets actifs sur de nombreuses machines. On utilise un fichier XML pour décrire le déploiement de l application. On définit à l intérieur de ce fichier tous les paramètres nécessaires à ProActive pour créer les machines virtuelles et les nœuds sur les ordinateurs distants. Le fichier commence par un XML Namespaces (xmlns), un espace de nommage, associé à une URL pour l identifier, et par une adresse de Schéma définissant la grammaire XML utilisé : <ProActiveDescriptor xmlns:xsi=" XMLSchemainstance" xsi:nonamespaceschemalocation="descriptorschema.xsd"> Avant d expliquer ce fichier en détail, on peut représenter une hiérarchie des balises de déploiement : <ProActiveDescriptor > <componentdefinition> <virtualnodesdefinition> <!--définir le nom des noeuds virtuels--> </virtualnodesdefinition> <!--et ses propriétés--> </componentdefinition> <deployment> <mapping> <map> <jvmset> <!--associer des noms de JVM à chaque--> </map> </mapping> <jvms> </jvms> </jvmset> <!--noeud virtuel--> <!--chaque JVM est associé à un nom de--> <!--processus--> Page 21

22 </deployment> <infrastructure> <processes> <processdefinition> <!--indication de l adresse des classes--> </jvmprocess> <!--des programmes et des fichiers--> <classpath> <!--pour le fonctionnement des JVM--> </classpath> <javapath> </javapath> <policyfile> </policyfile> <log4jpropertiesfile> </log4jpropertiesfile> </jvmprocess> </processdefinition> <processdefinition> <!--chaque JVM est associé à une adresse--> <rshprocess> <!--de machine et à un protocol d accès--> </rshprocess> <!--à distance (ici rsh)--> </processdefinition> </processes> </infrastructure> </ProActiveDescriptor> Avec la balise <componentdefinition> on commence par définir un ou plusieurs nœuds virtuels auquel on attachera un groupe de nœuds à créer. <componentdefinition> <virtualnodesdefinition> <virtualnode name="noeudsalut" property="multiple"/> </virtualnodesdefinition> </componentdefinition> La propriété multiple permet d indiquer que plusieurs nœuds seront associés à ce nœud virtuel. Puis avec la balise <deployment> on définit les machines virtuelles Java associé à ce nœud virtuel ("Jvm1" ), sur lesquelles un noeud sera créé. On associe à chaque machine virtuelle un processus s occupant de la connexion à une machine et de la création d un nœud ("rshprocess1" ). <deployment> <mapping> <!--définition des JVM associées aux nœuds virtuels--> <map virtualnode="noeudsalut"> <jvmset> <vmname value="jvm1"/> <vmname value="jvm2"/> <vmname value="jvm7"/> <vmname value="jvm8"/> </jvmset> </map> </mapping> <jvms> <!--définition des processus s occupant de la connexion--> <jvm name="jvm1"> <!--à une machine et de la création d un noeud--> <creation> <processreference refid="rshprocess1"/> </creation> </jvm> Page 22

23 <jvm name="jvm2"> <creation> <processreference refid="rshprocess2"/> </creation> </jvm> <jvm name="jvm7"> <creation> <processreference refid="rshprocess7"/> </creation> </jvm> <jvm name="jvm8"> <creation> <processreference refid="rshprocess8"/> </creation> </jvm> </jvms> </deployment> La balise <infrastructure> permet d abord d associer à un processus d exécution d une JVM "MyJvmProcess" l adresse de l interpréteur Java et de tous les fichiers nécessaires au fonctionnement d une machine virtuelle et de son nœud : classes, jar, politique de sécurité et journalisation des erreurs. Ensuite, à chaque processus de création des machines virtuelles (par exemple "rshprocess1") est associé le programme de connexion (utilisant un protocole de connexion à distance : rsh, ssh ) avec le nom de la machine à atteindre, et le processus d exécution d une JVM permettant de lancer la machine virtuelle et de créer le nœud. <!--dernière partie du fichier xml pour définir les processus de--> <!--création des JVM--> <infrastructure> <processes> <!--définition du processus d exécution d une JVM--> <processdefinition id="myjvmprocess"> <jvmprocess class="org.objectweb.proactive.core.process.jvmnodeprocess"> <classpath> <absolutepath value="/usr/users/staginfo/bezzine/proactive/classes"/> <absolutepath value="/usr/users/staginfo/bezzine/proactive/proactive.jar"/> <absolutepath value="/usr/users/staginfo/bezzine/proactive/lib/bcel.jar"/> <absolutepath value="/usr/users/staginfo/bezzine/proactive/lib/jsch.jar"/> </classpath> <javapath> <absolutepath value="/usr/lib/jre/bin/java"/> </javapath> <policyfile> <absolutepath value="/usr/users/staginfo/bezzine/proactive/scripts /proactive.java.policy"/> </policyfile> <log4jpropertiesfile> <absolutepath value="/usr/users/staginfo/bezzine/proactive/scripts/proactive -log4j"/> Page 23

24 </log4jpropertiesfile> </jvmprocess> </processdefinition> <processdefinition id="rshprocess1"> <!--définition du processus--> <rshprocess <!--de création d une JVM distante--> class="org.objectweb.proactive.core.process.rsh.rshjvmprocess" hostname="sh01"> <processreference refid=" MyJvmProcess"/> </rshprocess> </processdefinition> <processdefinition id="rshprocess8"> <rshprocess class="org.objectweb.proactive.core.process.rsh.rshjvmprocess" hostname="sh08"> <processreference refid=" MyJvmProcess"/> </rshprocess> </processdefinition> </processes> </infrastructure> Il faut faire attention à un point important en ce qui concerne ce fichier XML. En principe une machine virtuelle recherche des classes en se référant au classpath du système d exploitation. Mais lorsque des objets actifs créés sur un nœud ont besoin des classes d un projet pour instancier des objets, l adresse du projet doit être précisée dans le classpath du processus de création de la machine virtuelle et du nœud du descripteur de déploiement. En fait la machine virtuelle créée à distance par ProActive ne se réfère qu aux fichiers indiqués dans le descripteur XML sans tenir compte du classpath de la machine hôte. 3.7 Exemple de déploiement d objets ProActive Nous allons voir dans un exemple comment utiliser le descripteur de déploiement pour créer des objets actifs distants et des groupes. On crée tout d abord la classe Salut permettant de créer les futurs objets actifs, cette classe possède une méthode retournant la chaîne "Salut de : " concaténée avec l adresse de la machine envoyant le message : //la classe Salut permettant la création d objets actifs public class Salut { //constructeur vide pour créer des objets actifs public Salut() { //une méthode retournant un objet réifiable public ContainerString saysalut() { return new ContainerString ("Salut de : " + ProActive.getBodyOnThis().getNodeURL()); On utilise ContainerString comme objet de retour et non String car ce dernier n est pas réifiable (la classe String possède l attribut final), donc on ne pourrait pas en faire un objet futur Page 24

25 et utiliser la communication de groupe. La classe ContainerString peut être écrite très simplement comme suit : //classe permettant la création d objets réifiables de type String public class ContainerString implements Serializable{ private String string; public ContainerString() { public ContainerString (String string){ this.string=string; public String getstring(){ return(string); Puis dans une autre partie de l application on va déployer et utiliser des objets actifs de la classe Salut sur un cluster. On associe un fichier XML à une variable ProActive (pad = getproactivedescriptor()). Ensuite on active la création des nœuds distants définis dans le descripteur de déploiement (pad.activatemappings()). On récupère le nœud virtuel (pad.getvirtualnode("noeudsalut")) qui vient d être créé. On l utilise comme argument pour créer un groupe d objets actifs (ProActiveGroup.newGroup( )) : un objet actif est créé sur chaque nœud associé au nœud virtuel. Dans le descripteur de déploiement huit nœuds sont associés au nœud virtuel obtenu, donc huit objets actifs sont créés. Dans cet exemple on crée aussi un objet passif et un objet actif en local, puis on les ajoute au groupe (groupstdsalut.add( )) grâce à la représentation standard du groupe (groupstdsalut). Après avoir lancé la méthode saysalut() sur le groupe, on obtient un groupe de messages résultats, on récupère chaque résultat du groupe de résultat avec la méthode get(), ensuite avec la méthode getstring() de ContainerString on peut obtenir le vrai message de chaque message résultat (donc de chaque nœud dans cet exemple). Enfin la méthode killall(false) associé au descripteur ProActive pad permet de détruire tous les nœuds et machine virtuelles créés. //extrait de code d une application déployant et utilisant des objets //actifs Salut try { //déploiement des noeuds décrits dans le fichier Salut.xml ProActiveDescriptor pad = ProActive.getProactiveDescriptor( "/usr/users/staginfo/bezzine/proactive/descriptors/salut.xml"); pad.activatemappings(); VirtualNode virtuelnoeudsalut = pad.getvirtualnode("noeudsalut"); //creation d un groupe d objets actifs Salut sur les noeuds associés //au noeud virtuel VirtuelNoeudSalut Salut groupsalut = (Salut) ProActiveGroup.newGroup( Salut.class.getName(), new Object[] {, virtuelnoeudsalut); //création d un objet classique sur la machine local Salut salut1 = new Salut(); //création d un objet actif sur la machine local Salut salut2 = (Salut) ProActive.newActive( Salut.class.getName(), new Object[] {); Page 25

26 //création de la représentation standard du groupe pour ajouter 2 //objets au groupe Group groupstdsalut = ProActiveGroup.getGroup(groupSalut); groupstdsalut.add(salut1); groupstdsalut.add(salut2); //méthode saysalut() lancée sur le groupe et récupération des //résultats ContainerString groupmessageres = GroupSalut.saysalut(); Group groupstdmessageres = ProActiveGroup.getGroup(groupMessageRes); for(int i=0;i< groupstdmessageres.size();i++) { System.out.println( ((ContainerString) groupstdmessageres.get(i)).getstring()); //destruction des nœuds et des objets associés pad.killall(false); System.exit(1); catch (Exception e) { System.err.println("Error: " + e.getmessage()); e.printstacktrace(); Voici le résultat affiché sur la console du poste utilisateur : Salut de : //sh03.metz.supelec.fr/noeudsalut Salut de : //sh01.metz.supelec.fr/noeudsalut Salut de : //sh06.metz.supelec.fr/noeudsalut Salut de : //sh07.metz.supelec.fr/noeudsalut Salut de : //sh04.metz.supelec.fr/noeudsalut Salut de : //sh05.metz.supelec.fr/noeudsalut Salut de : //sh08.metz.supelec.fr/noeudsalut Salut de : //sh02.metz.supelec.fr/noeudsalut Salut de : LOCAL Salut de : //sh00.metz.supelec.fr/node Un autre exemple consiste à obtenir un tableau des nœuds associés à un nœud virtuel grâce à la méthode getnodes() et à créer seulement quelques objets actifs (sur certains nœuds). Par exemple on peut alors créer un objet actif sur un des nœuds obtenus, et appeler sa méthode saysalut() même s il est sur une machine distante. VirtualNode NoeudSalut = pad.getvirtualnode("noeudsalut"); Node[] nodes = NoeudSalut.getNodes(); Salut salut = (Salut) ProActive.newActive( Salut.class.getName(), new Object[] {, nodes[0]); System.out.println(salut.saysalut().getString()); Page 26

27 3.8 Bilan La documentation ProActive permet assez facilement de commencer à installer et à utiliser ProActive sur un exemple simple fourni, mais elle n est malheureusement pas assez détaillée pour maîtriser rapidement des opérations plus complexes comme les communications de groupes et le fichier de déploiement. Il faut passer beaucoup de temps à expérimenter soi-même sur de petits programmes pour vraiment bien comprendre le fonctionnement de ProActive. Il nous a fallu environ un mois pour bien se former. Une fois assimilé, ProActive est très pratique pour distribuer des calculs et déployer des objets sur un grand nombre de machines, mais comporte malheureusement des limites d utilisation avec d autres bibliothèques Java : - on nous demande d utiliser les threads avec précaution pour éviter des conflits avec ProActive, - les generics de Java 1.5 ne sont pas encore bien supportés par ProActive (voir section 5.7.3), - nous avons rencontré des difficultés à utiliser les JavaSpaces (Sun) avec ProActive, à cause d un problème lié au class loader de ProActive. Ce problème a finalement été résolu par l équipe Oasis qui développe ProActive (voir section 5.7.2). Page 27

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr http://www.metz.supelec.

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr http://www.metz.supelec. 3A-IIC - Parallélisme & Grid Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Principes et Objectifs Evolution Leçons du passé Composition d une Grille Exemple d utilisation

Plus en détail

Plan du cours. Incarnations/applications du Grid Computing. Super-calcul virtuel

Plan du cours. Incarnations/applications du Grid Computing. Super-calcul virtuel Plan du cours Les grilles informatiques : concepts et infrastructures La grille nationale Grid5000 Modèles de programmation et intergiciels pour le grilles Etude de cas : Globus, MPICH-G2 et GridRPC Taxinomie

Plus en détail

Grid 5000 : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau

Grid 5000 : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau : Administration d une infrastructure distribuée et développement d outils de déploiement et d isolation réseau Nicolas Niclausse - INRIA Sophia Antipolis Méditerranée - projet Aladdin Grid 5000 2 juillet

Plus en détail

ViSaGe. Virtualisation du Stockage dans les Grilles. Informatiques. RenPar 16, 6-8 Avril 2005 Thiebolt François thiebolt@irit.fr

ViSaGe. Virtualisation du Stockage dans les Grilles. Informatiques. RenPar 16, 6-8 Avril 2005 Thiebolt François thiebolt@irit.fr 1 ViSaGe Virtualisation du Stockage dans les Grilles Informatiques RenPar 16, 6-8 Avril 2005 Thiebolt François thiebolt@irit.fr IRIT Projet RNTL labellisé pré-compétitif Solution ViSaGe ViSaGe Accès transparent

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Rapport d activité. Mathieu Souchaud Juin 2007

Rapport d activité. Mathieu Souchaud Juin 2007 Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix

Plus en détail

Mobile OGSI.NET: Grid Computing on Mobile Devices

Mobile OGSI.NET: Grid Computing on Mobile Devices Mobile OGSI.NET: Grid Computing on Mobile Devices David C.Chu Université de Californie, Berkeley Marty Humphrey Université de Virginie Publié en Novembre 2004 lors de la 5ième conférence IEEE/ACM International

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

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

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Introduction au Grid computing. Introduction au Grid computing. Grid-Computing. 1-Introduction Motivations Différents objectifs Leçons du passé

Introduction au Grid computing. Introduction au Grid computing. Grid-Computing. 1-Introduction Motivations Différents objectifs Leçons du passé Introduction au Grid computing Introduction au Grid computing Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1. Introduction 2. Exemple d utilisation d une Grille 3. 4. Une

Plus en détail

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source Jérôme Petit, Serge Petit & Serli Informatique, ITMatic Jérôme Petit, Serge Petit & SERLI & ITMatic Serli : SSII

Plus en détail

CORBA haute performance

CORBA haute performance CORBA haute performance «CORBA à 730Mb/s!» Alexandre DENIS PARIS/IRISA, Rennes Alexandre.Denis@irisa.fr Plan Motivations : concept de grille de calcul CORBA : concepts fondamentaux Vers un ORB haute performance

Plus en détail

3A-IIC - Parallélisme & Grid GRID : Middleware

3A-IIC - Parallélisme & Grid GRID : Middleware 3A-IIC - Parallélisme & Grid GRID : Middleware Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Grid : Middleware 1. Globus 2. UniGrids 3. NES 4. XtremWeb 5. JavaSpaces/Jini

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

«clustering» et «load balancing» avec Zope et ZEO

«clustering» et «load balancing» avec Zope et ZEO IN53 Printemps 2003 «clustering» et «load balancing» avec Zope et ZEO Professeur : M. Mignot Etudiants : Boureliou Sylvain et Meyer Pierre Sommaire Introduction...3 1. Présentation générale de ZEO...4

Plus en détail

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...

Plus en détail

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

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES FAMILLE EMC VPLEX Disponibilité continue et mobilité des données dans et entre les datacenters DISPONIBLITÉ CONTINUE ET MOBILITÉ DES DONNÉES DES APPLICATIONS CRITIQUES L infrastructure de stockage évolue

Plus en détail

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction Plan du cours Autres modèles pour les applications réparties Introduction Riveill@unice.fr http://rangiroa.polytech.unice.fr Notre terrain de jeu : les systèmes répartis Un rappel : le modèle dominant

Plus en détail

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department DB GT CF Grid ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Group Information Department Journée de la communauté FUSE, Paris, 2010 CERN IT Department CH-1211 Geneva 23 Switzerland

Plus en détail

Les environnements de calcul distribué

Les environnements de calcul distribué 2 e Atelier CRAG, 3 au 8 Décembre 2012 Par Blaise Omer YENKE IUT, Université de Ngaoundéré, Cameroun. 4 décembre 2012 1 / 32 Calcul haute performance (HPC) High-performance computing (HPC) : utilisation

Plus en détail

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

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters FAMILLE EMC VPLEX Disponibilité continue et mobilité des données dans et entre les datacenters DISPONIBILITE CONTINUE ET MOBILITE DES DONNEES DES APPLICATIONS CRITIQUES L infrastructure de stockage évolue

Plus en détail

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

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information. PACBASE «Interrogez le passé, il répondra présent.». Le Module e-business Les entreprises doivent aujourd hui relever un triple défi. D une part, elles ne peuvent faire table rase de la richesse contenue

Plus en détail

1. Introduction à la distribution des traitements et des données

1. Introduction à la distribution des traitements et des données 2A SI 1 - Introduction aux SI, et à la distribution des traitements et des données Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Support de cours élaboré avec l aide de

Plus en détail

Unitt www.unitt.com. Zero Data Loss Service (ZDLS) La meilleure arme contre la perte de données

Unitt www.unitt.com. Zero Data Loss Service (ZDLS) La meilleure arme contre la perte de données Zero Data Loss Service (ZDLS) La meilleure arme contre la perte de données La meilleure protection pour les données vitales de votre entreprise Autrefois, protéger ses données de manière optimale coûtait

Plus en détail

Patrons de Conception (Design Patterns)

Patrons de Conception (Design Patterns) Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques

Plus en détail

DG-ADAJ: Une plateforme Desktop Grid

DG-ADAJ: Une plateforme Desktop Grid DG-ADAJ: Une plateforme pour Desktop Grid Olejnik Richard, Bernard Toursel Université des Sciences et Technologies de Lille Laboratoire d Informatique Fondamentale de Lille (LIFL UMR CNRS 8022) Bât M3

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud. Grid and Cloud Computing

Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud. Grid and Cloud Computing Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud Grid and Cloud Computing Problématique Besoins de calcul croissants Simulations d'expériences coûteuses ou dangereuses Résolution de

Plus en détail

Architecture d un service de partage de données modifiables sur une infrastructure pair-à-pair

Architecture d un service de partage de données modifiables sur une infrastructure pair-à-pair Architecture d un service de partage de données modifiables sur une infrastructure pair-à-pair Mathieu Jan Mathieu.Jan@irisa.fr Superviseurs : Gabriel Antoniu, Luc Bougé, Thierry Priol {Gabriel.Antoniu,Luc.Bouge,Thierry.Priol}@irisa.fr

Plus en détail

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures Le stockage 1. Architecture de stockage disponible a. Stockage local ou centralisé L architecture de stockage à mettre en place est déterminante pour l évolutivité et la performance de la solution. Cet

Plus en détail

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants

Plus en détail

Introduction aux applications réparties

Introduction aux applications réparties Introduction aux applications réparties Noël De Palma Projet SARDES INRIA Rhône-Alpes http://sardes.inrialpes.fr/~depalma Noel.depalma@inrialpes.fr Applications réparties Def : Application s exécutant

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

10 tâches d administration simplifiées grâce à Windows Server 2008 R2. 1. Migration des systèmes virtuels sans interruption de service

10 tâches d administration simplifiées grâce à Windows Server 2008 R2. 1. Migration des systèmes virtuels sans interruption de service 10 tâches d administration simplifiées grâce à Windows Server 2008 R2 Faire plus avec moins. C est l obsession depuis plusieurs années de tous les administrateurs de serveurs mais cette quête prend encore

Plus en détail

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE I N T E RS Y S T E M S INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE David Kaaret InterSystems Corporation INTERSySTEMS CAChé CoMME ALTERNATIvE AUx BASES de données RéSIdENTES

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN 1. DÉVELOPPEMENT D'APPLICATION (CONCEPTEUR ANALYSTE) 1.1 ARCHITECTURE MATÉRIELLE DU SYSTÈME INFORMATIQUE 1.1.1 Architecture d'un ordinateur Processeur,

Plus en détail

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

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence É C O L E D I N G É N I E U R D E S T E C H N O L O G I E S D E L I N F O R M A T I O N E T D E L A C O M M U N I C A T I O N Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION Mentions

Plus en détail

Dix bonnes raisons de choisir ExpressCluster en environnement virtualisé

Dix bonnes raisons de choisir ExpressCluster en environnement virtualisé Dix bonnes raisons de choisir ExpressCluster en environnement virtualisé Les technologies de virtualisation de serveurs séduisent les organisations car elles permettent de réduire le Coût Total de Possession

Plus en détail

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

La gestion du poste de travail en 2011 : Panorama des technologies La gestion du poste de travail en 2011 : Panorama des technologies François Clémence C.R.I Université Paul Verlaine Metz UFR Sciences Humaines et Arts clemence@univ-metz.fr Olivier Mathieu C.R.I Université

Plus en détail

Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription

Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription Présentée par Leila Abidi Sous la direction de Mohamed Jemni & Christophe Cérin Plan Contexte Problématique Objectifs

Plus en détail

Business Process Execution Language

Business Process Execution Language Business Process Execution Language Rapport du projet de systèmes distribués d information Markus Lindström 6 mai 2009 Motivation personnelle Le sujet que j ai retenu et présenté dans le cadre du cours

Plus en détail

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

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

Plus en détail

Le modèle client-serveur

Le modèle client-serveur Le modèle client-serveur Olivier Aubert 1/24 Sources http://www.info.uqam.ca/~obaid/inf4481/a01/plan.htm 2/24 Historique architecture centralisée terminaux passifs (un seul OS, systèmes propriétaires)

Plus en détail

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1 SysCom - CReSTIC Université de Reims 17/02/2011 1 Motivation Gestion des expérimentations Avec les workflows Simulation Simulation des Systèmes Distribués ANR USS SimGrid Campagne de Test et gestion de

Plus en détail

Grid5000 aujourd'hui : Architecture & utilisation

Grid5000 aujourd'hui : Architecture & utilisation 1 Grid5000 aujourd'hui : Architecture & utilisation aurelien.dumez@labri.fr 11 octobre 2005 Contexte 2 Grid5000 est : Une plateforme expérimentale pour le grid computing Ouverte à de nombreux thèmes de

Plus en détail

Programmation parallèle et distribuée (Master 1 Info 2015-2016)

Programmation parallèle et distribuée (Master 1 Info 2015-2016) Programmation parallèle et distribuée (Master 1 Info 2015-2016) Hadoop MapReduce et HDFS Note bibliographique : ce cours est largement inspiré par le cours de Benjamin Renaut (Tokidev SAS) Introduction

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

SÉCURISATION DES CONNEXIONS À DISTANCE SUR LES RÉSEAUX DE CONTRÔLE

SÉCURISATION DES CONNEXIONS À DISTANCE SUR LES RÉSEAUX DE CONTRÔLE PUBLICATION CPA-2011-102-R1 - Mai 2011 SÉCURISATION DES CONNEXIONS À DISTANCE SUR LES RÉSEAUX DE CONTRÔLE Par : François Tremblay, chargé de projet au Centre de production automatisée Introduction À l

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Cours Bases de données

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 antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry. : Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

CQP Développeur Nouvelles Technologies (DNT)

CQP Développeur Nouvelles Technologies (DNT) ORGANISME REFERENCE STAGE : 26572 20 rue de l Arcade 75 008 PARIS CONTACT Couverture géographique : M. Frédéric DIOLEZ Bordeaux, Rouen, Lyon, Toulouse, Marseille Tél. : 09 88 66 17 40 Nantes, Lille, Strasbourg,

Plus en détail

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2 Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

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

Virtual Data Center d Interoute. Prenez la main sur votre Cloud. Virtual Data Center d Interoute. Prenez la main sur votre Cloud. Faites évoluer vos ressources informatiques à la demande Choisissez la localisation d hébergement de vos données en Europe Le réseau européen

Plus en détail

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE Igor Rosenberg 30 ans DEA «Image-Vision» de l Université de Nice Sophia-Antipolis POSTES PRECEDENTS MMA: Développement Web/Grails sur démonstrateur

Plus en détail

Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy

Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy Evolution des technologies et émergence du cloud computing Drissa HOUATRA, Orange Labs Issy Séminaire Aristote, 17 Déc. 2009 Ecole Polytechnique Palaiseau Plan L'univers du cloud Ressources Grilles, middleware

Plus en détail

Eric Bertrand ebertrand@ixis-cib.com. 08/11/06 Maître de conférence 1

Eric Bertrand ebertrand@ixis-cib.com. 08/11/06 Maître de conférence 1 Calcul parallèle des options MC. Eric Bertrand ebertrand@ixis-cib.com 1 Plan Contexte du calcul parallèle Qualités requises Architecture Outillage Problèmes rencontrés perspectives 2 Contexte du calcul

Plus en détail

Programmation par composants (1/3) Programmation par composants (2/3)

Programmation par composants (1/3) Programmation par composants (2/3) Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant

Plus en détail

Serveurs de noms Protocoles HTTP et FTP

Serveurs de noms Protocoles HTTP et FTP Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et

Plus en détail

CloudBees AnyCloud : Valeur, Architecture et Technologie cloud pour l entreprise

CloudBees AnyCloud : Valeur, Architecture et Technologie cloud pour l entreprise CloudBees AnyCloud : Valeur, Architecture et Technologie cloud pour l entreprise Alors que les plates-formes PaaS (Platform as a Service) commencent à s imposer comme le modèle privilégié auprès des entreprises

Plus en détail

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

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 Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation

Plus en détail

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing Les Clusters Les Mainframes Les Terminal Services Server La virtualisation De point de vue naturelle, c est le fait de regrouper

Plus en détail

Générer du code à partir d une description de haut niveau

Générer du code à partir d une description de haut niveau Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,

Plus en détail

INDUSTRIALISATION ET RATIONALISATION

INDUSTRIALISATION ET RATIONALISATION INDUSTRIALISATION ET RATIONALISATION A. LA PROBLEMATIQUE La mission de toute production informatique est de délivrer le service attendu par les utilisateurs. Ce service se compose de résultats de traitements

Plus en détail

Le moteur de workflow JBPM

Le moteur de workflow JBPM Le moteur de workflow Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com http://litis.univ-lehavre.fr/ duvallet/

Plus en détail

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

Diagrammes de Package, de déploiement et de composants UML labsticc.univ-brest.fr/pages_perso/babau/ Diagrammes de Package, de déploiement et de composants UML Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Description

Plus en détail

LES SOLUTIONS OPEN SOURCE RED HAT

LES SOLUTIONS OPEN SOURCE RED HAT LES SOLUTIONS OPEN SOURCE RED HAT Red Hat, le fournisseur leader Linux et de l open source mondial a son siège à Raleigh, en Caroline du Nord, avec des bureaux dans le monde entier. Red Hat propose les

Plus en détail

Présentation de la Grille EGEE

Présentation de la Grille EGEE Présentation de la Grille EGEE Introduction aux grilles La grille EGEE Exemples d applications en physique des particules et en sciences de la vie Le cercle vertueux Conclusion Guy Wormser Directeur de

Plus en détail

Windows Internet Name Service (WINS)

Windows Internet Name Service (WINS) Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2

Plus en détail

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis Copyright Acronis, Inc. 2000 2009 Table des matières Résumé... 3 Qu est-ce que la déduplication?... 4 Déduplication au

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 CNAM 2010-2011 Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 Déploiement d une application dans le cloud. 1. Cloud Computing en 2010 2. Offre EC2

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

Virtualisation des Serveurs et du Poste de Travail

Virtualisation des Serveurs et du Poste de Travail Virtualisation des Serveurs et du Poste de Travail Les enjeux de la virtualisation Les acteurs du segment La virtualisation de serveurs Les concepts Les technologies d architectures L offre La virtualisation

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

Plus en détail

PLAN DE FORMATION TECHNICIEN(NE) D'ASSISTANCE EN INFORMATIQUE TAI

PLAN DE FORMATION TECHNICIEN(NE) D'ASSISTANCE EN INFORMATIQUE TAI PLAN DE FORMATION TECHNICIEN(NE) D'ASSISTANCE EN INFORMATIQUE TAI Technicien(ne) d'assistance en Informatique Titre professionnel Ministère du travail : TP-00476 Niveau : IV Date de parution au JO : 26

Plus en détail

IBM Tivoli Monitoring, version 6.1

IBM Tivoli Monitoring, version 6.1 Superviser et administrer à partir d une unique console l ensemble de vos ressources, plates-formes et applications. IBM Tivoli Monitoring, version 6.1 Points forts! Surveillez de façon proactive les éléments

Plus en détail

Java Naming and Directory Interface

Java Naming and Directory Interface Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard

Plus en détail

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1 Les clusters Linux 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com white-paper-cluster_fr.sxw, Version 74 Page 1 Table des matières Introduction....2 Haute performance (High

Plus en détail

Bonjour. Yohan PARENT, Cyprien FORTINA, Maxime LEMAUX, Hyacinthe CARTIAUX

Bonjour. Yohan PARENT, Cyprien FORTINA, Maxime LEMAUX, Hyacinthe CARTIAUX Bonjour I.Le contexte II.Le cloud computing III.L'expérimentation des solutions libres sur Grid'5000 1.Eucalyptus 2.OpenNebula 3.OpenStack IV.Tableau Comparatif V.Conclusion I.Le contexte 1)Le projet

Plus en détail

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

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

Plus en détail

Hébergement MMI SEMESTRE 4

Hébergement MMI SEMESTRE 4 Hébergement MMI SEMESTRE 4 24/03/2015 Hébergement pour le Web Serveurs Mutualités Serveurs Dédiés Serveurs VPS Auto-Hébergement Cloud Serveurs Mutualités Chaque Serveur héberge plusieurs sites Les ressources

Plus en détail

Conception et contrôle des SMA tolérants aux fautes

Conception et contrôle des SMA tolérants aux fautes Conception et contrôle des SMA tolérants aux fautes Une plate-forme multiagents tolérante aux fautes à base de réplication Nora FACI Contexte SMA large échelle Nombre important d agents Ressources éloignées

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures Software propose une offre d intégration unique, qui apporte l équilibre parfait entre investissements et performances pour les entreprises qui doivent sans cesse améliorer leurs processus. Des caractéristiques

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

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

Pour les entreprises de taille moyenne. Descriptif Produit Oracle Real Application Clusters (RAC) Pour les entreprises de taille moyenne Descriptif Produit Oracle Real Application Clusters (RAC) POURQUOI VOTRE ENTREPRISE A BESOIN DE CLUSTERISER LES SERVEURS La continuité opérationnelle est cruciale

Plus en détail

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

Prise en compte des ressources dans les composants logiciels parallèles Prise en compte des ressources dans les composants logiciels parallèles Aperçus de l action RASC et du projet Concerto F. Guidec Frederic.Guidec@univ-ubs.fr Action RASC Plan de cet exposé Contexte Motivations

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

VMWare Infrastructure 3

VMWare Infrastructure 3 Ingénieurs 2000 Filière Informatique et réseaux Université de Marne-la-Vallée VMWare Infrastructure 3 Exposé système et nouvelles technologies réseau. Christophe KELLER Sommaire Sommaire... 2 Introduction...

Plus en détail

Panorama des solutions analytiques existantes

Panorama des solutions analytiques existantes Arnaud LAROCHE Julien DAMON Panorama des solutions analytiques existantes SFdS Méthodes et Logiciels - 16 janvier 2014 - Données Massives Ne sont ici considérés que les solutions autour de l environnement

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Tendances Techniques et compétences des laboratoires

Tendances Techniques et compétences des laboratoires Journées Informatiques de l IN2P3 et du DAPNIA Tendances Techniques et compétences des laboratoires Synthèse des informations récoltées auprès des responsables informatiques des laboratoires de l IN2P3

Plus en détail