La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Laurent Bobelin, CS-SI Du Client/Serveur aux architectures de grilles de calculs et de données.

Présentations similaires


Présentation au sujet: "Laurent Bobelin, CS-SI Du Client/Serveur aux architectures de grilles de calculs et de données."— Transcription de la présentation:

1 Laurent Bobelin, CS-SI Du Client/Serveur aux architectures de grilles de calculs et de données

2 Du client serveur aux grilles de calcul et de données Plan du cours Motivation générale Les différents types de parallélisme Les architectures parallèles et distribuées Les environnements de programmation parallèle Les paradigmes systèmes distribués grande échelle et de grille Architecture des grilles de calcul et de données Perspectives pour les grilles de calcul et de données

3 Du client serveur aux grilles de calcul et de données Plan : Motivation générale Les besoins Physique Des confins de la matière jusquà la simulation des surfaces Sciences de la terre Observation de la terre Biologie Analyse du génome humain Conception Assistée par Ordinateur Modélisation automobile Autres Débouchés industriels Industriels intéressés Les fournisseurs de services Les fournisseurs de ressources Les applications Les profils industriels Conseil Maîtrise dœuvre Conception, déploiement et administration Middlewares Application Exploitation

4 Du client serveur aux grilles de calcul et de données Motivation générale : Les besoins : Physique Large Hadron Collider Modélisation de surface Applications nucléaires

5 Du client serveur aux grilles de calcul et de données Motivation générale : Les besoins : Physique : LHC Le CERN (Centre dEtude et de Recherche Nucléaire) basé en Suisse, est le plus grand centre mondial de recherche en Physique des Hautes Energies et en physique des particules. Le Large Hadron Collider (LHC) est un projet du CERN : construire le plus puissant accélérateur de particule au monde, qui devrait être achevé en Le but : faire entrer en collision des protons et analyser les traces de cette collision pour prouver lexistence de particules sous-jacente, les bosons de Higgs

6 Du client serveur aux grilles de calcul et de données Motivation générale : Les besoins : Physique : LHC Le LHC est constitué dune boucle de 20km de diamètre, dans laquelle sont injectés des protons. Le long de cette boucle, des capteurs sont disposés pour percevoir les traces de particules.

7 Du client serveur aux grilles de calcul et de données The LHC Detectors CMS ATLAS LHCb ~6-8 PetaBytes / year ~10 8 events/year ~10 3 batch and interactive users Le LHC :

8 Du client serveur aux grilles de calcul et de données Motivation générale : Les besoins : Physique : LHC Lensemble des capteurs une fois le LHC opérationnel générera plusieurs péta-octets de données par an, quil faudra analyser et stocker. Le CERN est donc de facto un des plus grands acteurs des projets de recherche de grille européen.

9 Du client serveur aux grilles de calcul et de données Motivation générale : Les besoins : Physique : Modélisation de surface Modéliser une surface permet de prédire les changements climatiques. La structure des sols peut varier et induit des changements La végétation à une influence Plus le modèle est fin, plus la modélisation de surface est pertinente. Plus les ressources informatiques mises à disposition de lapplication sont importantes, meilleure sera la modélisation.

10 Du client serveur aux grilles de calcul et de données Motivation générale : Les besoins : Physique : Application nucléaire Modéliser le comportement du cœur dun réacteur nucléaire Analyse des points chauds Modélisation des matériaux et de leur résistance Prédire le comportement en cas dincident De même que pour le cas précédent, plus les ressources informatiques mises à disposition de lapplication sont importantes, meilleure sera la modélisation.

11 Du client serveur aux grilles de calcul et de données Les challenges des projets ESA : Environ 100 Gbytes de données par jour pour la mission(ERS 1/2) 500 Gbytes, pour la mission ENVISAT (2002). Source: L. Fusco, June 2001 Motivation générale : Les besoins : Observation de la terre Envoi de satellite pour observer la terre

12 Du client serveur aux grilles de calcul et de données Medical images Exam image patient key ACL Query the medical image database and retrieve a patient image Metadata 3. Retrieve most similar cases Similar images Low score images 2. Compute similarity measures over the database images Submit 1 job per image Bio-informatique : Phylogenetique Search for primers Statistiques génétiques Parasitologie Data-mining sur des bases ADN Comparaison géometrique protéinique Imagerie Médicale Modélisation et imagerie numérique Medical data and metadata management Analyse de mammographies Motivation générale : Les besoins : Biologie

13 Du client serveur aux grilles de calcul et de données Motivation générale : Les besoins : Conception Assistée par Ordinateur Automobile : Construire un prototype est dun coût très élevé Des défauts de conception peuvent apparaître à la construction du prototype De nombreux tests sur la sécurité, la vitesse, etc, peuvent demander de construire de nombreux prototypes. Nécessité de modéliser finement les prototypes pour baisser le coût de conception dun nouveau modèle

14 Du client serveur aux grilles de calcul et de données Renault : simulations, modélisation, Météorologie et climatologie Industries Aéronautiques simulation et modélisation, réalité virtuelle Simulation grandes échelle : tectonique, modèles atmosphériques… EDF : simulation Temps-réel ONERA : simulation de phénomènes physiques Motivation générale : Les besoins : Autres

15 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels Industriels intéressés Les fournisseurs de services Les fournisseurs de ressources Les applications Profils industriels Conseil Maîtrise dœuvre Conception, déploiement et administration Middlewares Application Exploitation

16 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels : Industriels intéressés Les fournisseurs de services : Entreprise ayant pour activité de vendre des services (stockage, calcul, hébergement) IBM par exemple. Les fournisseurs de ressources Entreprise voulant rentabiliser les ressources informatiques quelle possède, comme CGG. Les applications Entreprise voulant entreprendre des calculs de grande échelle

17 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels : Industriels intéressés : Les fournisseurs de services Les besoins des ressources sont multiples : calcul, stockage, intégration, portage, administration, mise en œuvre, développement de solutions logicielles ad-hoc. Quatre types : Ressources : Grandes entreprises informatiques proposant des solutions « tout-en- un » (IBM) Logiciels : Entreprises fournissant des logiciels génériques pour les grilles (Sun, Microsoft, …) et voulant dominer le marché. Les SSII : conseil, développement,maintenance, migration, etc. (CSSI, Atos, …)

18 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels : Industriels intéressés : Les fournisseurs de ressources Certains industriels possèdent un grand nombre de ressources (calcul, stockage) inutilisées : Ordinateurs « personnels » Ressources aléatoires dans leur nombre et leur disponibilités Ressources contraintes par le temps Analyse à un instant T demandant beaucoup de ressources, mais peu utilisées le reste de la journée CGG, météorologie Ces ressources peuvent être vendues aux applications nécessitant beaucoup de ressources.

19 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels : Industriels intéressés : Les applications Industriels ayant besoin dun grand nombre de ressources : Simulation : PSA, EDF, CEA, … Prédiction : météorologie (Méteo de France, CGG) Nécessité de migrer leurs applications Nécessité daméliorer les performances de leurs applications Rester/devenir les leaders sur leur marché

20 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels : Les profils industriels Conseil :étude dopportunité, expression des besoins, réalisation de cahier des charges. Maîtrise dœuvre et assistance à la maîtrise douvrage. Conception, déploiement et administration des infrastructures de grille. Middlewares : développement,adaptation, installation. Application : développement, adaptation. Exploitation :gestion, évolution.

21 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels : Les profils industriels : conseil Conseil : étude dopportunité : est-il utile pour une application dêtre migrée vers une technologie de grille ? expression des besoins : quels sont les besoins dune application ? réalisation de cahier des charges : comment peut-on faire, et dans quel délais peut on obtenir un résultat ?

22 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels : Les profils industriels : maîtrise dœuvre et assistance à la maîtrise douvrage Maîtrise dœuvre : Coordination, relations entre la problématique applicative et les technologies de grille Besoins lors de la migration ou du portage dapplication sur grille

23 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels : Les profils industriels : Conception, déploiement et administration des infrastructures de grille Conception : quelle est la meilleure architecture pour un ensemble dapplications donné ? Déploiement : comment utiliser les ressources ? Administration : comment faire en sorte que les ressources restent opérationnelles ?

24 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels : Les profils industriels : middleware Développement : un middleware adapté aux besoins Adaptation : un middleware existant, ladapter aux besoins Déploiement : rendre lutilisation effective

25 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels : Les profils industriels : Applications Développement : Les grilles ont des spécificités qui sortent du domaine du calcul parallèle classique Nécessité de développer des applications tirant un profit maximum des ressources Adaptation : Des applications peuvent bénéficier dune « gridification » : comment ladapter aux problématiques grilles ?

26 Du client serveur aux grilles de calcul et de données Motivation générale : Débouchés industriels : Les profils industriels Exploitation : Gestion : gérer et administrer une grille dans une entreprise, veiller a son bon fonctionnement, gérer les utilisateurs Évolution : redimensionner une grille, faire évoluer son middleware et les logiciels associés.

27 Du client serveur aux grilles de calcul et de données Plan : Les différents types de parallélisme Introduction au parallélisme Les différents types de parallélisme Granularité

28 Du client serveur aux grilles de calcul et de données Introduction au parallélisme Parallélisme utiliser plusieurs ordinateurs ensemble pour résoudre des problèmes plus gros (taille mémoire, espace disque) plus rapidement (puissance CPU) Mot clé : efficacité Différents domaines théoriques algorithmique ordonnancement pratiques supports modèles si on veut de l efficacité les deux sont évidemment liées

29 Du client serveur aux grilles de calcul et de données Les différents types de parallélisme Client/serveur Parallélisme de tâche : application exhibant un graphe de tâches dont certaines peuvent être effectuées en parallèle Parallélisme de données : application qui traite de la même façon plusieurs jeux de données. Parallélisme mixte : application exhibant du parallélisme de données et de tâches Parallélisme massif : application exhibant un gros potentiel parallèle

30 Du client serveur aux grilles de calcul et de données Granularité On appelle granularité la « taille » dun traitement séquentiel dans une application parallèle Cette granularité dépend non seulement de lapplication, mais aussi de son implémentation On parle de « gros grain » pour les applications ayant une forte exécution séquentielle Fréquence de communication moins grande Pas forcement moins gourmande en débit ! On parle de « grain fin » pour les applications ayant une forte exécution parallèle de tâche Plus sensible à la latence du réseau

31 Du client serveur aux grilles de calcul et de données Granularité Parallélisation à gros grain Parallélisation à grain fin Population SP 1 Division SP 2 SP 4 SP 3 Sous-Populations Individus A B C D E F Distribution A BC DEF Processeurs

32 Du client serveur aux grilles de calcul et de données Plan : Les architectures parallèles et distribuées Les multiprocesseurs Les clusters Les environnements hétérogènes Les centres de calcul

33 Du client serveur aux grilles de calcul et de données Les multiprocesseurs – pourquoi En supposant que les microprocesseurs demeurent la technologie dominante pour les uniprocesseurs, il semble naturel dimaginer en connecter plusieurs ensemble pour augmenter la performance Il nest pas clair que le taux dinnovation au niveau de larchitecture pourra se continuer longtemps Il semble quil y ait des progrès constants dans les 2 domaines où les machines parallèles ont le plus de difficulté: le logiciel et les interconnexions

34 Du client serveur aux grilles de calcul et de données Accélération = gain de temps obtenu lors de la parallélisation du programme séquentiel. Définition : Soit T1 le temps nécessaire à un programme pour résoudre le problème A sur un ordinateur séquentiel et soit Tp le temps nécessaire à un programme pour résoudre le même problème A sur un ordinateur parallèle contenant p processeurs, alors l accélération (Speed-Up) est le rapport : S(p) = T1 / Tp Cette définition nest pas très précise Pour obtenir des résultats comparables il faut utiliser les mêmes définitions d Ordinateur Séquentiel et de Programme Séquentiel … Notion daccélération

35 Du client serveur aux grilles de calcul et de données 0 P = nombre de processeurs S(p) Région des accélérations sub-linéaires Région des accélérations sur-linéaires accélération linéaire Notion daccélération

36 Du client serveur aux grilles de calcul et de données Soit T1(n) le temps nécessaire à lalgorithme pour résoudre une instance de problème de taille n avec un seul processeur, soit Tp(n) celui que la résolution prend avec p processeurs et soit s(n,p) = T1(n) / Tp(n) le facteur daccélération. On appelle efficacité de l algorithme le nombre E(n,p) = S(n,p) / p Efficacité = normalisation du facteur d accélération Notion defficacité

37 Du client serveur aux grilles de calcul et de données Multiplication de matrices ( A moins bon que B) Algorithme A Temps en séquentiel : 10 minutes Nombre de processeurs : 10 Temps en // : 2 minutes Accélération : 10/2 = 5 (l'application va 5 fois plus vite) Efficacité : 5/10 = 1/2 Algorithme B Temps en séquentiel : 10 minutes Nombre de processeurs : 3 Temps en // : 4 minutes Accélération : 10/4 = 5/2 = 2,5 < 5 Efficacité : (5/2)/3 = 0,8 > 0,5 Efficacité/Accélération

38 Du client serveur aux grilles de calcul et de données Une accélération linéaire correspond à un gain de temps égal au nombre de processeurs (100% activité) Une accélération sub-linéaire implique un taux d activité des processeurs < 100 % (communication, coût du parallélisme...) Une accélération sur-linéaire implique un taux dutilisation des processeurs > à 100 % ce qui paraît impossible (en accord avec la loi d Amdhal) Cela se produit parfois (architecture, mémoire cache mieux adaptée que les machines mono-processeurs…) Remarques

39 Du client serveur aux grilles de calcul et de données Nous retrouvons couramment MIPS ou FLOPS MIPS (Machine Instructions Per Second) représente le nombre d instructions effectuées par seconde FLOPS (FLoating Point Operations Per Second) représente le nombre d opérations en virgule flottante effectuées par seconde Les multiplicatifs : K = 2 10 ; M = 2 20 ; G = 2 30 Certains processeurs vectoriels ont une puissance de calcul de 300 Mflops par exemple. Puissance de calcul

40 Du client serveur aux grilles de calcul et de données Les types de multiprocesseurs Taxonomie proposée par Flynn dans les années 60: SISD (Single Instruction Single Data): uniprocesseur SIMD (Single Instruction Multiple Data): plusieurs processeurs, qui exécutent en parallèle les mêmes instructions sur plusieurs données MISD (Multiple Instruction Single Data): pas dexemple connu MIMD (Multiple Instruction Multiple Data): plusieurs processeurs qui opèrent de façon indépendantes ou semi-indépendantes sur leurs données

41 Du client serveur aux grilles de calcul et de données Les types de multiprocesseurs

42 Du client serveur aux grilles de calcul et de données SIMD (Single Instruction Multiple Data) séquenceur unique tableau de processeurs MISD (Multiple Instruction Single Data) classe bizarre pipeline ? MIMD (Multiple Instruction Multiple Data) Classe la plus importante processeurs autonomes Mémoire partagée ou distribuée Cette classification nest pas en corrélation avec les machines réelles Les types de multiprocesseurs

43 Du client serveur aux grilles de calcul et de données MIMD: la mémoire Les deux classes de multiprocesseurs MIMD sont largement répandus ; le choix de MIMD-SD ou MIMD-DM dépendant du nombre de processeurs dans la machine Mémoire partagée centralisée (centralized shared memory) : « petit » nombre de processeurs. Mémoire distribuée : «grand » nombre de processeurs.

44 Du client serveur aux grilles de calcul et de données SIMD-SM Contrôle centralisé de données centralisées Machine vectorielles mono-processeurs Instruction unique appliquée de manière séquentielle à des données de type vecteur Fonctionnement en mode pipeline Pipeline : Décomposition de l opérateur f = f3 ° f2 ° f1 On applique successivement f1, f2 puis f3 sur cette donnée circuits dans les processeurs circuit = composant électronique qui prend d en entrée et donne f(d) en sortie séquence de circuits en étages Classification unifiée des types de multiprocesseurs

45 Du client serveur aux grilles de calcul et de données SIMD-DM : Contrôle centralisé, données distribuées Processeurs de faible puissance = éléments de calcul Séquenceur unique MIMD-DM : Contrôle distribué, données distribuées Un processeur = entité de calcul autonome (processeur + mémoire) Communication par envoi de messages : importance du réseau d interconnexion Avantage : facile d augmenter le nb de proc Inconvénients : performances étroitement liées au réseau et besoin d OS nouveaux. Classification unifiée des types de multiprocesseurs

46 Du client serveur aux grilles de calcul et de données MIMD-SM : Mémoire divisée en plusieurs bancs Synchronisation des accès à la mémoire, un seul processeur peut accéder en lecture ou écriture à un banc Machine multi-processeurs : Cray 2, NEC SX-3 Faible nombre de processeurs Puissance de la machine repose sur la puissance des processeurs et non sur le nombre Classification unifiée des types de multiprocesseurs

47 Du client serveur aux grilles de calcul et de données Types de multiprocesseurs utilisés Les premiers multiprocesseurs étaient du type SIMD, et cette architecture est encore utilisée pour certaines machines spécialisées Le type MIMD semble être la cible de choix de nos jours pour des ordinateurs dapplication courante: Les MIMD sont flexibles: on peut les utiliser comme machines à un seul utilisateur, ou comme machines multi-programmées Les MIMD peuvent être bâties à partir de processeurs existants

48 Du client serveur aux grilles de calcul et de données IBM SP IBM SP-2 (from MHPCC) IBM SP IBM SP 680 IBM SP 680 specs IBM X server Cray T3E Compaq (DEC) Alpha Chips ( Alpha white paper ) Cray white paper SGI Origin 2000, (3000) performance Tuning for the Origin2000 R10000 Chip, R10000 Brief, Other MIPS Chips, MIPS Architectures parallèles : exemple MIMD

49 Du client serveur aux grilles de calcul et de données Compaq Servers, GS320 server Distributed Memory Vector NEC (Japan) Fujitsu (Japan) Hitachi (Japan) Beowulf Projects Beowulf slides (Modi) Intel Teraflop Machine, ( Performance Tuning ) Linux Intro, Installing Linux, Linux Palmtops Windows NT/2000 based Beowulf Systems, ( MPICH ) Architectures parallèles : exemple MIMD

50 Du client serveur aux grilles de calcul et de données La machine de chez CRAY, deux types de modèles, refroidissement à air (pas plus de 128 processeurs) ou par un liquide (jusqu'à 2048 processeurs). En amalgamant les deux de 16 à 2048 nœuds comprenant chacun : un DEC Alpha EV5 (600 MFlops) de 64 Mo à 2 Go de mémoire vive un réseau d'interconnexion en tore 3D (bande passante de 2 à 128 Go/s). Performance de crête de 9.6 GFlops à 1.2 TFlops, jusqu'à 4 To de mémoire vive. Architectures parallèles : exemple MIMD : le Cray T3E

51 Du client serveur aux grilles de calcul et de données CM-1, CM-2, & CM-200 ( NPAC ) Maspar MP-1 & MP-2 Cambridge Parallel Processing ( NPAC pages, Overview ) Oxford Micro Pentium 4 Intel SIMD Intel MMX SIMD (UBC) Motorola 7450 Motorola 7400 processor Motorola Altivec Architectures parallèles : exemple SIMD

52 Du client serveur aux grilles de calcul et de données Architectures parallèles : exemple SIMD

53 Architectures de grappes de PC

54 Du client serveur aux grilles de calcul et de données Définition Une grappe (cluster) est une collection de machines interconnectées, utilisée comme une ressource de calcul unifiée Une grappe « Beowulf » se définit par les propriétés suivantes : composants à grande diffusion composants réseau à faible coût système d exploitation « open source » hardware non propriétaire logiciel « open source »

55 Du client serveur aux grilles de calcul et de données Des grappes de référence : le Top500 Sandia 592 procs alphas, myrinet, linux, #44 NCSA 256 pentiums, myrinet, NT, #68 Cornell 256 pentiums, giganet, NT, #198 Los Alamos 140 alphas, Ether100/1000, linux, #265 Paderborn 192 pentiums, SCI, solaris, #351 Bonn 144 pentiums, myrinet, linux, #454 Chiba, Los Lobos, CEA, FSL, … en 2000

56 Du client serveur aux grilles de calcul et de données Processeur Pentium Alpha NTLinux OS Solaris,... SCI Réseau Ethernet Giganet, ServerNet,... Myrinet SMP biproc quadriproc Mono Technologies : ? IA64

57 Du client serveur aux grilles de calcul et de données Linterconnexion réseau SCI VIA Fibre Channel HIPPI FDDI WDM Infiniband Ethernet PCI SAN WAN MAN LAN... ATM... SCSI Myrinet...

58 Du client serveur aux grilles de calcul et de données La technologie Myrinet Commutation de paquets Topologie très souple Carte réseau muni d un processeur RISC pilotant plusieurs contrôleurs DMA PCI BRIDGE DMA controller RISC processor Host interface Packet Interface Local memory PCI bus network

59 Du client serveur aux grilles de calcul et de données La technologie SCI réseau à capacité dadressage adressage des mémoires distantes lecture/écriture distante sans interrompre le processeur distant plus de nécessité de programmation par échanges de messages Topologie en grille

60 Du client serveur aux grilles de calcul et de données La technologie VIA Une interface logicielle dont lobjectif est de limiter les accès au système et les copies de buffers. Peut être implémentée en hardware Standard industriel proposé par Microsoft, Intel, Compaq. Aujourdhui par Dell, Intel, Compaq application Système d exploitation Contrôleur réseauContrôleur réseau VIA Système d exploitation VI contrôle données Architecture TCP/IP Architecture VIA

61 Du client serveur aux grilles de calcul et de données Les autres Memory channel : espace d adressage mémoire unique bonne latence passage à l échelle par SMP donc limité SupperHIPPI, FibreChannel, Infiniband, ATM, WDM, Quadrics,... offre cluster balbutiante ou de luxe

62 Du client serveur aux grilles de calcul et de données SCI : pour/contre espace d adressage mémoire unique latence/messages de petite taille manque de maturité monopolise le CPU quelle fiabilité en cas de panne d un nœud Myrinet : pour/contre Plus grande maturité intégrateurs en France bande passante Autant de MPI/drivers/firmware que de grappes

63 Du client serveur aux grilles de calcul et de données Les autres possibles ServerNet II VIA orienté haute disponibilité : contrôle d erreurs en hardware, redondance support de Compaq Giganet VIA disponible sur NT/linux débit/messages de grande taille Mais quelle maturité ? Quel avenir pour VIA ?

64 Du client serveur aux grilles de calcul et de données Les autres possibles (Double) Fast Ethernet standard le moins cher Mais latence importante et très forte utilisation du CPU (en attendant VIA et des cartes avec processeur) Gigabit Ethernet standard, plusieurs fournisseurs de moins en moins cher switches 64 ports

65 Du client serveur aux grilles de calcul et de données Lintégrateur/vendeur support scientifique support technique maintenance intégration hardware intégration software Minimum : intégration hardware et validation par déploiement du système et de benchmarks

66 Du client serveur aux grilles de calcul et de données Des options coûteuses : Racks contrôle souhaité (BIOS, wake on line, boot PXE, lien série, …) concentrateurs d alimentation électrique écrans, switchs d écran ? disques locaux des serveurs supplémentaires : contrôle, login, fichier, développement, scheduler

67 Les environnements hétérogènes

68 Du client serveur aux grilles de calcul et de données Les environnements hétérogènes : définition Un environnement distribué hétérogène est le regroupement de ressources informatiques (CPU, Disk, mémoire) dorigine, de taille et de type divers. Absence de réseau de communication spécifique Souvent appelé « le cluster du pauvre », la récupération de ressources informatique inutilisée, par exemple les stations de travail la nuit, pour former une machine multiprocesseurs virtuelle hétérogène, est une pratique courante des laboratoires

69 Du client serveur aux grilles de calcul et de données Les environnements hétérogènes : Caractéristiques Hétérogénéité –Réseaux (couches de communications multi-protocoles), processeurs, hiérarchies mémoire profondes –Systèmes –Équilibrage des charges (ordonnancement) –Distribution des données (statique et dynamique) –Évaluation des performances, modélisation des architectures –Simulation

70 Du client serveur aux grilles de calcul et de données Les environnements hétérogènes : Problématique spécifique Hétérogénéité des performances : Lhétérogénéité des performances induit davoir un modèle de description des performances pour chaque architecture et des algorithmes dordonnancements ad hoc. Hétérogénéité des systèmes : Les machines peuvent être sous Linux, Windows Perte de fiabilité : Les réseaux locaux sont moins fiables quun réseau dédié et les machines plus sujettes aux pannes. Perturbation par les utilisateurs

71 Du client serveur aux grilles de calcul et de données Les centres de calcul une architecture pour le calcul intensif et le stockage de masse : le centre de calcul de la Doua

72 Du client serveur aux grilles de calcul et de données Centre de calcul de lIN2P3 IN2P3 : Institut National de la Physique Nucléaire et de la Physique des Particules Centre de calcul crée en Situé à Lyon sur le campus de la DOUA 35 ingénieurs pour la conception, la mise en place et lexploitation de linfrastructure informatique

73 Du client serveur aux grilles de calcul et de données Qui sont les utilisateurs ? 2500 utilisateurs réguliers issus de la physique des particules, nucléaire et astrophysique 50 expériences, dont : - LHC : CERN à Genève 3 Po/an à partir de D0 : FERMILAB à Chicago 150 To/an - BABAR : SLAC en Californie 150 To/an

74 Du client serveur aux grilles de calcul et de données Architecture Architecture distribuée Stockage et calcul sont séparés Réseau local Gbits Ethernet

75 Du client serveur aux grilles de calcul et de données Cluster 1000 processeurs (90% Linux Redhat 7.2) 500 KSpecInt2000 (P3 1GHz = 400 SpecInt2000) Soumission de job : BQS Calcul parallèle

76 Du client serveur aux grilles de calcul et de données Stockage sur bande 6 silos gérant cartouches 720 To avec cartouche 20 Go Données accessibles par HPSS

77 Du client serveur aux grilles de calcul et de données Espace occupé sur serveur Serveur AFS 3 To Montage NFS 1,5 To Cache HPSS 6 To Serveur Objectivity 20 To Capacité totale 60 To

78 Du client serveur aux grilles de calcul et de données Réseau Hébergement dun nœud Renater International NRI Très bonne connectivité Domaine in2p3.fr

79 Du client serveur aux grilles de calcul et de données La bio-informatique au centre de calcul de la Doua Biométrie évolutive - CPU pour calcul darbre de philogénie Prédiction de structure de protéine - CPU pour comparaison de séquences Aide au diagnostic pour dépistage cancer du sein - STOCKAGE des images et des métadonnées Recherche des facteurs génétiques impliqués dans la polyarthrite rhumatoïde - CPU pour identifier les régions candidates

80 Du client serveur aux grilles de calcul et de données Conclusion Le CC-IN2P3 est un centre multi-services : - Calcul, stockage de masse - Réseau à haut-débit, User Support - Service annexe : Hébergement de service web (SFP,…), webcasting et visioconférence Base de donnée, informatique administrative (DSI du CNRS

81 Les environnements de programmation parallèle

82 Du client serveur aux grilles de calcul et de données Logiciels gestionnaire de batch/ressources Compilateurs MPI, OpenMP : bibliothèques outils de trace et de debug outils de déploiement et d administration systèmes de fichiers image unique de système

83 Du client serveur aux grilles de calcul et de données gestionnaire de batch/ressources gestionnaire de batch Logiciel coordonnant lactivité des nœuds dune architecture distribuée Responsable de lordonnancement effectif, et du partage des ressources entre utilisateur Fournit une abstraction dun ensemble de queues dans lesquelles sont mises en attente les applications des utilisateurs PBS, BQS, Mosix, Sun Grid Engine …

84 Du client serveur aux grilles de calcul et de données Programmation parallèle et répartie Conception Modélisation Algorithmique Langage Compilation Exécution Gestion dactivités Communications Mise au point Régulation de charge Gestion de données Sécurité … Application Programme parallèle Proc. 0Proc. 1Proc. 2Proc. 3

85 Du client serveur aux grilles de calcul et de données Supports et environnements dexécution (1) Pour les utilisateurs et leurs applications Abstractions de haut niveau Portabilité Efficacité ! Support dexécution Grappes, grilles, machines parallèles, réseaux,… Systèmes dexploitation (OS) Interface de programmation (API) Applications

86 Du client serveur aux grilles de calcul et de données Supports et environnements dexécution (2) Etendre et spécialiser les OS Centralisés et complétés pour le distribué Nouveaux modèles (tâches, communication, fichiers,…) Exemple: Stockage de fichiers, réplication, cache, … Support dexécution Grappes, grilles, machines parallèles, réseaux Systèmes dexploitation (OS) Interface de programmation (API) Applications

87 Du client serveur aux grilles de calcul et de données Plan : Les paradigmes systèmes distribués grande échelle et de grille LDAP Les systèmes peer to peer Internet computing Metacomputing Grille de service Grille ASP Grille de calcul Grille de données

88 Du client serveur aux grilles de calcul et de données Pourquoi vous parler de LDAP ? Des quon passe dune échelle locale à une échelle plus large, apparaît le besoin de centraliser les connaissances à propos des ressources qui sont à disposition LDAP est un protocole standardisé dannuaire, utilisée dans la plupart des entreprises qui ont au moins plusieurs agences LDAP est utilisé comme protocole de communication dans plusieurs produits dannuaires (Active Directory de Microsoft, Novell Directory Server (NDS), Sun One)

89 Du client serveur aux grilles de calcul et de données LDAP Lightweight Directory Access Protocol A lorigine un projet de lUniversité du Michigan Popularisé par Netscape Normalisé par lIETF LDAP v2 : RFCs 1777 à 1779, RFC 1798, RFC 1960 LDAP v3 Core : RFCs 2251 à 2256 LDAP C API : RFC groupes de travail : LDAPEXT, LDUP, LSD Initialement: version «light» de DAP sur TCP/IP Evolution vers un service dannuaire complet communications serveur/serveur, sécurité… Acceptation quasi globale comme protocole daccès à un annuaire...

90 Du client serveur aux grilles de calcul et de données LDAP On parle dannuaire pour un système dinformation permettant de stocker des données relativement statiques sur un grand nombre dentités (ressources, utilisateur) Structure arborescente Standard de communication pour linterrogation dun annuaire Implémentation : open LDAP, Active Directory

91 Du client serveur aux grilles de calcul et de données Problématiques Au sein des Fortune 500, il existe en moyenne plus de 150 référentiels stockant des données sur les composants du système dinformation (source Gartner Group)Utilisateurs ComptesComptes PrivilègesPrivilèges ProfilsProfils StratégiesStratégies Applications ConfigurationConfiguration SécuritéSécurité ParamètresParamètres StratégiesStratégies DonnéesDonnées Postes ProfilsProfils RéseauRéseau StratégiesStratégiesServeurs ProfilsProfils RéseauRéseau ServicesServices ImprimantesImprimantes PartagesPartages StratégiesStratégies InternetFirewall ConfigurationConfiguration SécuritéSécurité Stratégie VPNStratégie VPN Réseau TéléphonieTéléphonie ConfigurationConfiguration QoSQoS SécuritéSécurité Messagerie Boîtes aux lettresBoîtes aux lettres StratégiesStratégies Carnets dadressesCarnets dadresses Annuaires UtilisateursUtilisateurs PostesPostes ServeursServeurs Accès à linformation ? Administration ? Accès à linformation ? Administration ?

92 Du client serveur aux grilles de calcul et de données Windows2000Windows2000RessourcesRessources Kerberos RADIUS X.509/PKI Certificats AuthentificationAutorisation Active Directory Référentiel de sécurité unique Intranet Extranet Tickets Kerberos Windows 2000 supporte plusieurs modèles dauthentification et un modèle dautorisation unique Active Directory fournit un point focal dadministration, des services de certificats et un serveur de clés Kerberos Facilite la liaison des Intranets & Extranets

93 Du client serveur aux grilles de calcul et de données Administration des ressources DomaineDomaine UtilisateursUtilisateursMachinesMachines ApplicationsApplications FinanceFinanceRHRH PériphériquesPériphériques Déployer lapplication Ressources Humaines Déléguer ladministration des utilisateurs au Helpdesk Donner aux personnes de RH accès au menu Modif Salaire de lappli de gestion des ressources humaines

94 Du client serveur aux grilles de calcul et de données Réplique A Boston Seattle SeattleChicago Seattle Réplique C Boston Boston BostonChicago Seattle Disponibilité globale des données Chaque réplique stocke une copie des données du domaine Chaque réplique peut résoudre une requête Support idéal des données didentité des utilisateurs… RéplicationRéplication Domaine dentreprise Réplique B Boston Chicago ChicagoChicago Seattle Trouver: Tous les Dupont Trouver: RéponseRéponse

95 Du client serveur aux grilles de calcul et de données Intégration des applications DomaineDomaine UtilisateursUtilisateursMachinesMachines ApplicationsApplications FinanceFinanceRHRH PériphériquesPériphériques Application RH: Stockage du profil métier de lutilisateur Exchange: stockage des informations de B.A.L. de lutilisateur

96 Du client serveur aux grilles de calcul et de données Active Directory au cœur de lentreprise Utilisateurs Informations compteInformations compte PrivilègesPrivilèges ProfilsProfils StratégiesStratégies Clients Profils de gestionProfils de gestion Infos réseauInfos réseau StratégiesStratégies Serveurs Profils de gestionProfils de gestion Infos réseauInfos réseau ServicesServices ImprimantesImprimantes Ressources partagéesRessources partagées StratégiesStratégies Point Central de Gestion Utilisateurs & ressourcesUtilisateurs & ressources SecuritéSecurité DélégationDélégation StratégieStratégie ActiveDirectory

97 Du client serveur aux grilles de calcul et de données Stockage hiérarchique des données Création darborescences possibleCréation darborescences possible Sadapter à la structure de lorganisationSadapter à la structure de lorganisation Services de lActive Directory Modélisation des éléments sous forme dobjets Ressources vues comme des objetsRessources vues comme des objets Dotés dattributs définis ds 1 SchémaDotés dattributs définis ds 1 Schéma Interrogation souple Modes daccès aux données multiplesModes daccès aux données multiples Optimisé pour traiter les requêtesOptimisé pour traiter les requêtes Contrôle daccès évolué et granulaire Sécurisation au niveau des attributsSécurisation au niveau des attributs Délégation dadministrationDélégation dadministration Réplication multi- maître Serveurs accessibles en lecture/écritureServeurs accessibles en lecture/écriture Optimisé pour un fonctionnement WANOptimisé pour un fonctionnement WAN

98 Du client serveur aux grilles de calcul et de données MachinesMachines ApplicationsApplicationsPériphériquesPériphériques Stockage hiérarchique DomaineDomaine UtilisateursUtilisateurs MarketingMarketingRHRH = Organizational Unit = Objet Larborescence fournie un support pour modéliser, chercher et administrer les informations au moyen de stratégies

99 Du client serveur aux grilles de calcul et de données UUUUUU AAAAAA Modélisation sous forme dobjets DomaineDomaine UtilisateursUtilisateursMachinesMachines ApplicationsApplications CCCCCC MarketingMarketing PériphériquesPériphériques DDDDDD Object Class: User Name: Jean DupontName: Jean Dupont Phone: Phone: Object Class: User Name: Jean DupontName: Jean Dupont Phone: Phone: Object Class: Computer Name: JEAND01Name: JEAND01 IP Address: IP Address: OS: Windows 2000OS: Windows 2000 Object Class: Computer Name: JEAND01Name: JEAND01 IP Address: IP Address: OS: Windows 2000OS: Windows 2000

100 Du client serveur aux grilles de calcul et de données Méthodes daccès à linformation LDAP Version 3 Standard de lindustrie des protocoles daccès aux annuairesStandard de lindustrie des protocoles daccès aux annuaires Support natifSupport natif Expose lensemble des fonctionnalitésExpose lensemble des fonctionnalités

101 Du client serveur aux grilles de calcul et de données Limite du domaine WAN Site de Seattle DC 2 DC 1 DC 3 Site de Boston DC 7 DC 9 DC 8 Site de Chicago DC 5 DC 4 DC 6 Ajout Utilisateur: Bill Réplication

102 Du client serveur aux grilles de calcul et de données LDAP Utilisation de LDP

103 Du client serveur aux grilles de calcul et de données LDAP Utilisation de LDP

104 Du client serveur aux grilles de calcul et de données LDAP : quelques mots sur LDIF LDIF est le format le plus répandu de stockage de LDAP. Format texte, assez lisible Autant de versions des objets présents que dimplémentation de ldap.

105 Du client serveur aux grilles de calcul et de données Exemple de LDIF: # Define top-level entry dn: dc=mycompany,dc=com objectClass: dcObject dc:mycompany # Define an entry to contain people # searches for users are based on this entry dn: ou=people,dc=mycompany,dc=com objectClass: organizationalUnit ou: people # Define a user entry for Janet Jones dn: uid=jjones,ou=people,dc=mycompany,dc=com objectClass: inetOrgPerson uid: jjones sn: jones cn: janet jones mail: userPassword: janet

106 Du client serveur aux grilles de calcul et de données LDIF : exemple (suite) # Define an entry to contain LDAP groups # searches for roles are based on this entry dn: ou=groups,dc=mycompany,dc=com objectClass: organizationalUnit ou: groups # Define an entry for the "tomcat" role dn: cn=tomcat,ou=groups,dc=mycompany,dc=com objectClass: groupOfUniqueNames cn: tomcat uniqueMember: uid=jjones,ou=people,dc=mycompany,dc=com uniqueMember: uid=fbloggs,ou=people,dc=mycompany,dc=com # Define an entry for the "role1" role dn: cn=role1,ou=groups,dc=mycompany,dc=com objectClass: groupOfUniqueNames cn: role1 uniqueMember: uid=fbloggs,ou=people,dc=mycompany,dc=com

107 Cas pratique : utilisation de java pour lauthentification et lautorisation en Java avec JAAS

108 Du client serveur aux grilles de calcul et de données Plan Les différents aspects de la sécurité JAVA. Évolution de la sécurité depuis JAVA 1.0 La protection de lutilisateur. La protection du système (JAAS). Authentification Autorisation Étude détaillé Démo

109 Du client serveur aux grilles de calcul et de données La sécurité JAVA. Aspect fondamentale, dès la première version. Principe de Sand-Box. Évolution => Granularité très fine: Définition de stratégies de sécurité.

110 Du client serveur aux grilles de calcul et de données La sécurité JAVA. Nouveaux dans JDK 1.4 : JCE 1.2 (Java Cryptography Extension). JSSE (Java Secure Socket Extension). JAAS (Java Authentification & Autorisation Service).

111 Du client serveur aux grilles de calcul et de données Évolution de la sécurité JAVA JAVA 1.0 (1995) But : Protéger lutilisateur du système. Concernait principalement les applets. Apparition du principe « SandBox ». Un code non approuvé est limité Pas daccès aux systèmes de fichiers. Pas daccès réseaux.

112 Du client serveur aux grilles de calcul et de données Évolution de la sécurité JAVA La SandBox 1.0

113 Du client serveur aux grilles de calcul et de données Évolution de la sécurité JAVA JAVA 1.1 (1996) Raffinement du modèle de SandBox. Possibilité de «signer» une applet. Le code approuvé possède alors les même droits quun code local. Problème : Violation du principe du « moindre privilège ».

114 Du client serveur aux grilles de calcul et de données Évolution de la sécurité JAVA

115 Du client serveur aux grilles de calcul et de données Évolution de la sécurité JAVA JAVA 1.2 (1997) Évolution majeure en terme de sécurité Possibilité de définir une politique de sécurité par lintermédiaire des fichiers « policy ».

116 Du client serveur aux grilles de calcul et de données Évolution de la sécurité JAVA

117 Du client serveur aux grilles de calcul et de données La protection de lutilisateur

118 Du client serveur aux grilles de calcul et de données La protection de lutilisateur Quelques exemples de tout cela : - Une applet critique exécutée localement fonctionne sans problème. C:\> java WriteFileApplet

119 Du client serveur aux grilles de calcul et de données La protection de lutilisateur Quelques exemples de tout cela : Une applet critique exécutée localement fonctionne sans problème. Si on ajoute un « Security Manager », rien ne va plus. C:\>java -Djava.security.manager WriteFileApplet

120 Du client serveur aux grilles de calcul et de données La protection de lutilisateur Quelques exemples de tout cela : - Un outil permettant décrire facilement des fichiers « policy » : Policytool.exe

121 Du client serveur aux grilles de calcul et de données La protection de lutilisateur Quelques exemples de tout cela : Avec un fichier de configuration, le SecurityManager ne pose plus de problème. grant { permission java.io.FilePermission " >", "write"; }; java -Djava.security.manager -Djava.security.policy=all.policy WriteFileApplet

122 Du client serveur aux grilles de calcul et de données La protection de lutilisateur Quelques exemples de tout cela : Un dernier exemple avec un browser. Il est plus difficile de spécifier le fichier « policy » à utiliser…..

123 Du client serveur aux grilles de calcul et de données Java Authentification & Autorisation But : Protéger le système de lutilisateur. Comment : Créer un objet partagé par lauthentification et lautorisation. Étendre le modèle de sécurité standard ( security policy) pour gérer cet objet. Authentification Autorisation Subject Interactions

124 Du client serveur aux grilles de calcul et de données Java Authentification & Autorisation Comment ça marche ? 1.Authentification 1. On « branche » des modules de connexion à une entité. 2. Si lutilisateur « passe » tout ces modules, il acquière alors une identité virtuelle. 2.Autorisation 1. Il peut alors tenter dexécuter des actions « critiques ». 2. Ces actions sont soumises au système de restrictions daccès.

125 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification Les classes importantes pour lidentification: Subject: Représente un individu ou une organisation avec plusieurs identités de principal ; les décisions en matières dautorisation sont prises en fonction dun sujet authentifié. Logincontext: Fournit une API de base, permettant aux sujets de se connecter/déconnecter du système. LoginModule: Définit linterface que les fournisseurs de services dauthentifications qui supportent JAAS doivent implémenter. Configuration: Encapsule lentité utilisée pour configurer une application avec des connexion particulièrs.

126 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification Les classes importantes pour lidentification: CallbackHandler: Définit linterface à implémenter par les applications qui souhaitent autoriser le service dauthentification à leur passer des informations. Callback: Définit une interface de marqueurs implémentée par les objets qui sont passés à une implémentation CallbackHandler. Lobjet Callback contient les données à passer à lapplication. PrivilegedAction: Les actions critiques y sont stockées

127 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification (chronologie) new LoginContext("Nom de configuration", MyCallbackHandler); LoginContext Configuration Configuration.jaas (liste des modules

128 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification (chronologie) LoginContext Configuration Configuration.jaas (liste des modules) LoginModule 1 LoginModule 2

129 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification (chronologie) LoginContext Configuration Configuration.jaas (liste des modules) LoginModule 1 LoginModule 2 Login( ) USER CallBackHandler Login( )

130 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification (chronologie) LoginContext LoginModule 1 LoginModule 2 Login( ) USER CallBackHandler Subject Droits.policy

131 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification (chronologie) LoginContext LoginModule 1 LoginModule 2 Login( ) USER CallBackHandler Subject DoAsPrivileged( ) PrivilegedAction

132 Du client serveur aux grilles de calcul et de données Focus sur les CallbackHandler Le but de lauthentification est de créer un objet « Subject ». Pour communiquer, les objects utilisent des Callback. Ces Callback sont gérés par les CallbackHandler.

133 Du client serveur aux grilles de calcul et de données Focus sur les CallbackHandler - Le dialogue est délégué : LoginContext LoginModule CallbackHandler USER CallBack[]

134 Du client serveur aux grilles de calcul et de données Focus sur les CallbackHandler Les callback sont utilisés pour compléter le « Subject ». LoginContext LoginModule CallbackHandler CallBack[] Subject GetSubject()

135 Du client serveur aux grilles de calcul et de données Focus sur les Callback Les differents types de Callbacks : Language Callback Name Callback Password Callback TextInput Callback TextOutput Callback Choice Callback Confirmation Callback

136 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification Le fichier de configuration des modules de connexion: configuration.jaas Nom de configuration { JndiLoginModule Requisite Krb5LoginModule Sufficient NTLoginModule Optional UnixLoginModule Optional SampleLoginModule Required debug=true; }; Autre type danalyse{ AnalyseRetineModule Required };

137 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification Les mots clés du fichier.jaas : Required : non bloquant Requisite : bloquant Sufficient : bloquant Optional : non bloquant

138 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification Exemple : Failed ModuleCriterionPass/Fail SampleLoginModuleRequired OK NTLoginModuleSufficient !OK SmartCardRequisite OK KerberosOptional !OK Overall authentication OK

139 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification Exemple : Failed ModuleCriterionPass/Fail SampleLoginModuleRequired !OK NTLoginModuleSufficient OK SmartCardRequisite KerberosOptional Overall authentication OK

140 Du client serveur aux grilles de calcul et de données JAAS : Lauthentification Comment définir lemplacement du fichier.jaas ? Ligne de commande : Java –Djava.security.auth.login.config= Modification du fichier java.security : Login.config.url.1=

141 Du client serveur aux grilles de calcul et de données JAAS : L autorisation Une fois lutilisateur reconnu... JAAS étend le modèle de sécurité JAVA2. On définit donc une politique de sécurité pour un utilisateur spécifique ou pour un domaine.

142 Du client serveur aux grilles de calcul et de données JAAS : L autorisation Pour cela, on utilise des fichiers.policy : Exemple : grant Principal Administrateur "root" { permission java.util.PropertyPermission "java.home", "read"; permission java.util.PropertyPermission "user.home", "read"; permission java.io.FilePermission "c:\\foo.txt", "write,read"; }; grant Principal Etudiant { permission java.io.FilePermission "c:\\foo.txt", "read"; };

143 Du client serveur aux grilles de calcul et de données JAAS : L autorisation Une fois identifié, le «Subject » utilise des « PrivilegedAction ». On lance le traitement avec la méthode static suivante : Static Subject.doAsPrivileged(SujetCourant s, PrivilegeAction x);

144 Du client serveur aux grilles de calcul et de données JAAS : L autorisation Exemple : public class SampleAction implements PrivilegedAction { public Object run() { try{ FileWriter writer = new FileWriter(new File("c:/foo.txt")); writer.write("blabla"); }catch (IOException ioe){} return null; }

145 Du client serveur aux grilles de calcul et de données JAAS : L autorisation Comment définir la source du fichier.policy ? Ligne de commande : Java –Djava.security.policy= Modification du fichier java.security : auth.policy.url1=

146 Du client serveur aux grilles de calcul et de données JAAS : Mise en place Mise en place dune authentification JAAS : Implémenter les interfaces suivants : CallBackHandler Handle() LoginModule initialize() login() commit() Abort()

147 Du client serveur aux grilles de calcul et de données JAAS : Mise en place Mise en place dune authentification JAAS : Implémenter les interfaces suivants : Principal getName() PrivilegedAction run()

148 Du client serveur aux grilles de calcul et de données Java Authentification & Autorisation Où trouver JAAS ? API dextension pour JAVA 1.3 Incorporé à JAVA 1.4 Incorporé aux spécifications J2EE 1.3

149 Cas pratique : sécuriser une application via JAAS par un LDAP

150 Du client serveur aux grilles de calcul et de données Example import javax.security.auth.*; import javax.security.auth.login.*; public class CountFiles { public static void main(String[] args) { LoginContext lc = null; try { lc = new LoginContext(CountFiles); } catch (LoginException le) { // handle it } try { lc.login(); } catch (Exception e) { // login failed -- handle and exit } Object o = Subject.doAs (lc.getSubject(), new CountFilesAction()); System.out.println(User +lc.getSubject()+ found +o+ files.); }

151 Du client serveur aux grilles de calcul et de données Example import javax.security.auth.*; import javax.security.auth.login.*; public class CountFiles { public static void main(String[] args) { LoginContext lc = null; try { try { lc = new LoginContext(CountFiles); lc = new LoginContext(CountFiles); } catch (LoginException le) { } catch (LoginException le) { // handle it // handle it } try { lc.login(); } catch (Exception e) { // login failed -- handle and exit } Object o = Subject.doAs (lc.getSubject(), new CountFilesAction()); System.out.println(User +lc.getSubject()+ found +o+ files.); } Establish a context by which a user can be authenticated Argument references a line in a config file (later)

152 Du client serveur aux grilles de calcul et de données Example import javax.security.auth.*; import javax.security.auth.login.*; public class CountFiles { public static void main(String[] args) { LoginContext lc = null; try { lc = new LoginContext(CountFiles); } catch (LoginException le) { // handle it } try { lc.login(); lc.login(); } catch (Exception e) { } catch (Exception e) { // login failed -- handle and exit // login failed -- handle and exit } Object o = Subject.doAs (lc.getSubject(), new CountFilesAction()); System.out.println(User +lc.getSubject()+ found +o+ files.); } Authenticate the user following steps in configuration file

153 Du client serveur aux grilles de calcul et de données Example import javax.security.auth.*; import javax.security.auth.login.*; public class CountFiles { public static void main(String[] args) { LoginContext lc = null; try { lc = new LoginContext(CountFiles); } catch (LoginException le) { // handle it } try { lc.login(); } catch (Exception e) { // login failed -- handle and exit } Object o = Subject.doAs (lc.getSubject(), (lc.getSubject(), new CountFilesAction()); new CountFilesAction()); System.out.println(User +lc.getSubject()+ found +o+ files.); } A Subject represents an authenticated user Uses an array of Principal objects A Principal is an identifying characteristic Username Group Database username doAs attempts to execute the run method of the named object on behalf of the Subject

154 Du client serveur aux grilles de calcul et de données An example action import java.security.*; class CountFilesAction implements PrivilegedAction { public Object run() { File f = new File(File.separatorChar+files); File farray[] = f.listFiles(); return new Integer(farray.length); } Note partitioning of development into checks and actions

155 Du client serveur aux grilles de calcul et de données Configuration 1. Login CountFiles { com.sun.security.auth.module.LDAPLoginModule required; } pluggable: loaded dynamically, poss 3rd party, so code is not tied to a particular type of authentication, and can introduce new ones as technology improves (eg retinal scans, fingerprints) stackable: more than one can be specified each returns one or more Principals

156 Du client serveur aux grilles de calcul et de données Configuration 1. Login CountFiles { com.sun.security.auth.module.SolarisLoginModule required; com.sun.security.auth.module.JndiLoginModule optional; } required : user must pass authentication sufficient : if user passes this, no others need to be called requisite : if user passes, others called but dont need to pass optional : user allowed to fail this (but must pass at least one!)

157 Cas pratique : Utilisation de LDAP pour une authentification/autorisation avec JAAS avec JBoss

158 Introduction aux Entreprise Java Beans

159 Du client serveur aux grilles de calcul et de données Problème Construire des applications pour entreprises Sures Sécurisées Supportant la montée en charge (scalable) Disponibles Favorisant la réutilisation Maintenables et extensibles Pour moins cher

160 Du client serveur aux grilles de calcul et de données Moyen Utiliser une architecture distribuée Plusieurs tiers Les clients (front end) Les sources de données (back end) Un ou plusieurs tiers entre eux pour Implanter les nouveaux services Intégrer les différentes sources de données Masquer la complexité de lentreprise aux clients

161 Du client serveur aux grilles de calcul et de données Architecture à composants distribués Permettent la construction dapplications multi-tiers Objectif Simplifier la création dapplication à base dobjets distribués. Promouvoir la programmation par composant pour le coté serveur

162 Du client serveur aux grilles de calcul et de données Composant logiciel Doit permettre la construction de logiciel par composition Exporte des propriétés et des méthodes Peut être configuré de façon externe Un composant peut être réutilisable à différent degré Composants connus : COM/DCOM Java Beans Enterprise Java Beans Composants Corba

163 Du client serveur aux grilles de calcul et de données Objet distribué (rmi)

164 Du client serveur aux grilles de calcul et de données Middleware Explicite transfer(Account account1, Account account2, long amount) { // 1: Call middleware API to perform a security check // 2: Call middleware API to start a transaction // 3: Call middleware API to load rows from the database // 4: Subtract the balance from one account, add to the other // 5: Call middleware API to store rows In the database // 6: Call middleware API to end the transaction }

165 Du client serveur aux grilles de calcul et de données Middleware implicite

166 Du client serveur aux grilles de calcul et de données Architecture multi-tiers

167 Du client serveur aux grilles de calcul et de données Les solutions existantes Microsoft DNA (Distributed interNet Applications Architecture) Windows NT + DCOM + MSMQ (message queue) + MTS (transactions) + Wolfpack (clustering) + IIS (web server)+ MMC (administration et déploiement) Sun J2EE (spécification) OMG Corba (specification) et les composants Corba.

168 Du client serveur aux grilles de calcul et de données J2EE Définit une architecture standard incluant Un modèle de programmation (application multi-tiers, client légers) Une plate-forme (ensemble de spécifications et de politiques requises) Un ensemble de test de compatibilité Une implantation de référence

169 Du client serveur aux grilles de calcul et de données Architecture dune application J2EE

170 Du client serveur aux grilles de calcul et de données La plateforme J2EE EJB : définit la façon dont les composant doivent être écrit et le contrat quils doivent respecter avec le serveur dapplication RMI : communication inter procédés JNDI : service de nommage JDBC : connection vec les bases de données JTA : service de transaction JMS : service de messagerie JSP : servlet et Java Server Page adapté à la construction de composant réseau Java IDL : permet lintégration avec dautres langages (en particulier à travers CORBA) JavaMail Connectors : intégration à des systèmes dinformation existant XML

171 Du client serveur aux grilles de calcul et de données Les technologies

172 Du client serveur aux grilles de calcul et de données Enterprise Java Beans (EJB) Modèle client/serveur distribué Code exécuté sur le serveur proche des données serveur souvent plus puissant que le client Code localisé sur le serveur changer le code du serveur ne change pas le code du client Un EJB est juste une collection de classes Java et dun fichier XML. Les classes Java suivent un certains nombre de règles et fournissent des callbacks comme définis dans lenvironnement J2EE et les spécifications EJB.

173 Du client serveur aux grilles de calcul et de données Container EJB Un container EJB est un environnement dexécution pour un composant EJB. Un EJB sexécute sur un container EJB. Un container EJB sexécute par un serveur dapplications et prend la responsabilité des problèmes au niveau système Le container EJB gère le cycle de vie de lEJB. Le container EJB fournit aussi un nombre de services additionnels Gestion de la persistance Transactions Sécurité Cadre de travail Dimensionnement Portabilité Gestion des erreurs

174 Du client serveur aux grilles de calcul et de données Beans entité Un bean entité est un objet persistant Un bean entité peut avoir plusieurs clients Bean Managed Persistance (BMP) : le container EJB est responsable de la persistance du bean. Container Manager Persistance (CMP) : le bean est responsable de sa propre persistance.

175 Du client serveur aux grilles de calcul et de données Beans session Un bean session pour chaque client Il y a deux types de beans session sans état pas d état entre les invocations rapide et efficace avec état maintient les états entre les invocations persistance limitée

176 Du client serveur aux grilles de calcul et de données Structure EJB Interface home fournit un moyen pour le client EJB de récupérer une instance dun EJB Interface distante expose les méthodes que le client EJB peut utiliser Code EJB implémente linterface distante et linterface EJB approprié (SessionBean ou EntityBean par exemple)

177 Du client serveur aux grilles de calcul et de données Les Enterprise JavaBeans Spécification dune architecture permettant la création dapplications distribuées 2 versions 1.1 : la plus courante 2.0 : la plus récente Implantations de la spec : BEA WebLogic, Jonas, Borland Appserver, IBM Websphere, Jboss (open source) Composant développé pour être exécuté sur un serveur dEJB Ne pas confondre avec un java bean

178 Du client serveur aux grilles de calcul et de données Objectifs des EJB Fournir une plate-forme standard pour la construction dapplications distribuées en Java Simplifier lécriture de composants serveurs Portabilité Considérer le développement, le déploiement et lexécution des applications

179 Du client serveur aux grilles de calcul et de données Division des responsabilités Le fournisseur de bean Produit les composants métier Le fournisseur de conteneur EJB Fournit lenvironnement permettant lexécution des beans Le fournisseur de serveur EJB Fournit lenvironnement dexécution pour un ou plusieurs conteneurs Lassembleur dapplication Le déployeur (installateur) Ladministrateur

180 Du client serveur aux grilles de calcul et de données Les Enterprise Beans Composants qui peuvent être déployés dans un environnement multi-tiers et distribué. Exposent une interface qui peut être appelé par ses clients Configurés de façon externe Linterface et limplantation du bean doivent être conforme à la spécification EJB Les clients peuvent être Un servlet Une applet Un autre bean

181 Du client serveur aux grilles de calcul et de données Les types de Beans Session Beans : contiennent la logique métier de lapplication Stateful session bean Stateless session bean Entity Beans : contiennent la logique de gestion des données persistantes Message bean : contiennent la logique orientée message

182 Du client serveur aux grilles de calcul et de données Session Bean Fournit un service à un client Durée de vie limitée à celle du client Effectue des calculs ou des accès à une base de donnée Peut être transactionnel Non recouvrable Peuvent être sans état ou conversationnel (stateless ou stateful)

183 Du client serveur aux grilles de calcul et de données Exemple de Session bean public class CartBean implements SessionBean { String customerName; Vector contents; public void ejbCreate(String person) throws CreateException { … initialisation du bean } // business method public void addBook(String title) { … // code de la méthode} public void removeBook(String title) throws BookException {… } public Vector getContents() {…} // methodes appelées par le conteneur public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext sc) {} }

184 Du client serveur aux grilles de calcul et de données Linterface Linterface décrit le contrat avec les clients public interface Cart extends EJBObject { public void addBook(String title) throws RemoteException; public void removeBook(String title) throws BookException, RemoteException; public Vector getContents() throws RemoteException; }

185 Du client serveur aux grilles de calcul et de données La factory Définit les méthodes permettant de créer, trouver et détruire des objets EJB public interface CartHome extends EJBHome { Cart create(String person) throws RemoteException, CreateException; }

186 Du client serveur aux grilles de calcul et de données Le descripteur de déploiement Fournit les informations nécessaires au déploiement dans le conteneur et pour la configuration des intercepteurs CartEJB CartHome Cart CartBean Stateful Container

187 Du client serveur aux grilles de calcul et de données Déploiement (suite) user CartEJB Remote getContents CartEJB Remote getContents Required

188 Du client serveur aux grilles de calcul et de données Le client public class CartClient { public static void main(String[] args) { Context initial = new InitialContext(); // context JNDI CartHome home = initial.lookup("java:comp/env/ejb/SimpleCart"); // Recherche de linterface de la factory // Creation de lobjet session Cart shoppingCart = home.create("Duke DeEarl« xs); // appel de quelques business méthodes shoppingCart.addBook("The Martian Chronicles"); Vector bookList = new Vector(); bookList = shoppingCart.getContents(); shoppingCart.removeBook("Alice in Wonderland"); // suppression de lobjet session shoppingCart.remove(); }

189 Du client serveur aux grilles de calcul et de données Les entity beans Implantation dobjets métiers persistants (client, compte,…) Persistance gérée par Les conteneurs (CMP) Le bean lui-même (BMP) Le conteneur gère également les transactions et la sécurité pour le composant. Utile pour gérer les accès concurrents à des données persistantes.

190 Du client serveur aux grilles de calcul et de données Exemple dentity bean (CMP) public class BookEJB implements javax.ejb.EntityBean { public String author; public String titlel; public int price; private EntityContext context; public String getTitle() {return title;} public String getAuthor() {return author;}; public int getPrice() {return price;} public void setPrice(int _price) {price=_price;} public String ejbCreate (String _author, String _title) throws CreateException { author=_author; title=_title; price=0; return null; } … // Méthodes requises par le conteneur public void ejbPostCreate(String _author,String _title) { } public void ejbRemove() { } public void ejbLoad() { } public void ejbStore() {} public void setEntityContext(EntityContext context) { this.context = context;} public void unsetEntityContext() { context=null; } public void ejbActivate() { } public void ejbPassivate() { } }

191 Du client serveur aux grilles de calcul et de données Home interface public interface BookHome extends EJBHome { public Book create(String id, String url) throws RemoteException, CreateException; public Book findByPrimaryKey (String id) throws RemoteException, FinderException; public Collection findAll() throws RemoteException, FinderException; Public Collection findByAuthor(String author) throws RemoteException, FinderException; }

192 Du client serveur aux grilles de calcul et de données Interface de lEntity Bean public interface Book extends EJBObject { public String getAuthor() throws RemoteException; public String getTitle() throws RemoteException; public int getPrice() throws RemoteException; public void setPrice(int mode) throws RemoteException; }

193 Du client serveur aux grilles de calcul et de données Le descripteur de lentity bean Book BookHome Book BookEJB Container java.lang.String False title author price title findByAuthor java.lang.String select distinct object(b) from Book b where b.author=?1

194 Du client serveur aux grilles de calcul et de données Message Driven Bean (ejb2.0) Intégration des EJB et de JMS Interactions asynchrones Utilisé pour réagir à des messages JMS Stateless bean Une seule méthode dans linterface onMessage()

195 Du client serveur aux grilles de calcul et de données Exemple de message bean ValueContainerListener hero.container.ValueContainerListener JMSType='ValueContainer' Container Value Container Home ejb/valuecontainer Entity ValueContainer hero.container.ValueContainerHome hero.container.ValueContainer javax.jms.Topic NonDurable

196 Du client serveur aux grilles de calcul et de données EJB Object

197 Du client serveur aux grilles de calcul et de données Paquetage dapplication

198 Du client serveur aux grilles de calcul et de données Déploiement Création dun paquetage contenant Les classes des beans Le fichier de description Les fichiers de configuration spécifique au serveur Dautres librairies Mise en place dans le serveur (outils spécifique ou déploiement à chaud)

199 Du client serveur aux grilles de calcul et de données Intérêt des EJB Simplicité de lécriture des composants Mais le design est plus complexe Portabilité des composants A lexception des adaptations des serveurs Réutilisation/Composition Il faut quand même programmer Indépendance par rapport aux vendeurs

200 Du client serveur aux grilles de calcul et de données Bénéfices dun serveur dEJB Gestion automatisée des stocks de ressources Gestion automatisée du cycles de vie des composants Gestion de la concurrence Scalabilité Fonctionnalités déclaratives Disponibilité et tolérance aux pannes Modèle dobjet distribué …

201 Du client serveur aux grilles de calcul et de données Limites actuelles (variables selon les serveurs) Maturité de la spécification, des technologies,… Moins vrai depuis la version 2.0 Performances ? Environnements de développement Complexité du design Expérience des développeurs

202 Du client serveur aux grilles de calcul et de données Bibliographie et sources des schémas J2EE Specification Java.sun.com/products/j2ee Enterprise Java Beans Specification 1.1 et 2.0 Java.sun.com/products/ejb Mastering Enterprise JavaBeans and the Java 2 Platform Enterprise Edition – Ed Roman – Wiley Computer publishing java.sun.com/j2ee/tutorial (serveur Open Source)www.jboss.org Support de cours de Didier Donsez (université de Valenciennes) J2EE blueprints (java.sun.com) Mastering Enterprise JavaBeans II – Ed Roman -(www.theserverside.com)

203 Du client serveur aux grilles de calcul et de données Exemple dapplication J2EE

204 Du client serveur aux grilles de calcul et de données Jboss - client sampleApp { // jBoss LoginModule org.jboss.security.LDAPLoginModule required; // Put your login modules that need jBoss here }; Idem que pour une application classique dans un fichier policy

205 Du client serveur aux grilles de calcul et de données Jboss - serveur

206 Cas pratique : Utilisation de LDAP pour une authentification/autorisation avec JAAS avec Tomcat

207 Tomcat : présentation Tomcat et les Servlets

208 Du client serveur aux grilles de calcul et de données Spécification J2EE Servlet, JSP JAX (JAX-P, JAX-B, JAX-R, JAX-RPC) JNDI, JMS EJB, JTA, JTS JavaMail, JDBC JMX, J2EE Connector, etc.

209 Du client serveur aux grilles de calcul et de données Application multi-tiers Lapplication Web est décomposée en plusieurs parties (tiers)

210 Du client serveur aux grilles de calcul et de données Conteneurs de Servlet Tomcat 4.1 IronFlare Orion 1.5 Jetty 4.1 Caucho Resin 2.1 Sun ONE 7.0 IBM WebSphere 4.0 BEA WebLogic 7.0

211 Du client serveur aux grilles de calcul et de données Tomcat Tomcat 4.1 (Catalina) Projet Apache (Apache Apache Httpd) Open source Implantation de référence de la spécification Spécification Servlet 2.3 et JSP 1.2 (bientôt Servlet 2.4 et JSP 2.0)

212 Du client serveur aux grilles de calcul et de données Servlet & Conteneur Le conteneur de servlets associe à des URLs virtuels une servlet Browser HTTP Conteneur de Servlets /admin/* /vignette/*.html /examples/*.html servlet 1 servlet 2 Requête Réponse

213 Du client serveur aux grilles de calcul et de données Répertoire de Tomcat Organisation des répertoires de Tomcat /bin /common/lib /conf /logs /server/lib /shared/lib /webapps scripts startup & shutdown jar utilisés par Tomcat (Ant, Servlet, etc.) configuration: server.xml, web.xml, users.xml fichiers de logs fichiers jar propres à tomcat fichiers jar communs à toutes les servlets zone de déploiement

214 Du client serveur aux grilles de calcul et de données Configuration Tomcat Le fichier server.xml Server Racine, spécifie le port de shutdown. Service Associe des connecteurs à un engine. Connector Ils correspondent à un point daccès à un service, soit via un serveur soit en connexion directe. Engine correspond au conteneur de servlet en lui-même. Logger Ils effectuent la journalisation. Host Déclare où sont stockées les servlets pour un nom de machine. Context Chaque Context représente la configuration associée à un chemin dans la hiérarchie

215 Du client serveur aux grilles de calcul et de données Un Connector point daccès utilisable par un client : port="8080" minProcessors="5" maxProcessors="75" enableLookups="true" acceptCount="100" connectionTimeout="20000" Le conteneur Engine name="Standalone" defaultHost="localhost" Configuration Tomcat (2) port découte nombre de threads minimum nombre de threads maximum DNS inverse nombre de connections pendantes Nom de lhost si pas HTTP 1.1

216 Du client serveur aux grilles de calcul et de données Configuration Tomcat (3) Le Logger effectue la journalisation des requêtes prefix="catalina_log. " suffix=".txt" timestamp="true" Le tag Host définit les paramètres pour un host virtuel name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"

217 Du client serveur aux grilles de calcul et de données Configuration Tomcat (4) Gestion des associations entre un URI et un chemin sur le disque URI daccès Chemin daccès des fichiers (relatif ou absolu par rapport à webapps) Détection automatique des changements et rechargement si besoin Un Context représente lassociation entre un chemin sur le serveur (URI) et un chemin sur le disque path= "/examples" docBase="examples" reloadable="true"

218 Du client serveur aux grilles de calcul et de données Architecture dune appli Web Une application Web possède dans un repertoire lui-même dans webapps une architecture spécifique *.html, *.jsp /WEB-INF/web.xml /WEB-INF/classes/ /WEB-INF/lib/ fichiers HTML fichier de configuration (XML) classes des servlets fichiers jar des servlets Lensemble des fichiers et répertoire peut être mis dans un war (Web Archive) grâce à la commande jar. Le war est automatiquement dé-jarré sil est placé dans le répertoire webapps.

219 Du client serveur aux grilles de calcul et de données Configuration dune appli Web Le fichier web.xml Mon application Web maServlet fr.umlv.myservlet.MaServlet maServlet *.test maServlet /toto nom de la servlet URI daccès

220 Du client serveur aux grilles de calcul et de données Configuration dune appli Web Paramètres dinitialisation dune servlet maServlet fr.umlv.myservlet.MaServlet parametre1 valeur1 parametre2 valeur2 association name/value

221 Du client serveur aux grilles de calcul et de données Generic vs HTTP Servlet Il existe deux types de servlets Les GenericServlet qui ne pré-suppose pas dun protocole Les HttpServlet qui repondent à des clients par le protocole HTTP GenericServlet est une classe du paquetage javax.servlet tandis que HttpServlet est une classe du paquetage javax.servlet.http

222 Du client serveur aux grilles de calcul et de données La synchronisation est gérée par lobjet Response Cycle de vie dune servlet Le cycle de vie d'une servlet : 1.la méthode init() est appelée après le chargement ; 2.une méthode service() est appelée à chaque requête dans une nouvelle thread. 3.la méthode destroy() est appelée pour le déchargement.

223 Du client serveur aux grilles de calcul et de données HelloServlet La méthode service() est appelée avec un objet requête et un objet réponse import java.io.*; import javax.servlet.*; public class HelloServlet extends GenericServlet { public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { PrintStream out = new PrintStream(response.getOutputStream()); out.println("Hello World!"); } public String getServletInfo() { return "Hello World Servlet"; } Lobjet réponse permet dobtenir le flux de sortie en écriture Information textuelle sur la servlet

224 Du client serveur aux grilles de calcul et de données Linterface Request L'interface ServletRequest permet de récupérer les paramètres de la requête : public abstract int getContentLength() public abstract String getContentType() public abstract String getProtocol() public abstract String getScheme() public abstract String getServerName() public abstract int getServerPort() public abstract String getRemoteAddr() public abstract String getRemoteHost() public abstract ServletInputStream getInputStream() throws IOException public abstract String getParameter(String name) public abstract String[] getParameterValues(String name) public abstract Enumeration getParameterNames() public abstract Object getAttribute(String name) Description du client Il est possible de rajouter des attributs (non HTTP) Description du serveur

225 Du client serveur aux grilles de calcul et de données Linterface Response L'interface ServletResponse permet de renvoyer une réponse : public abstract void setContentLength(int length) public abstract void setContentType(String type) public abstract ServletOutputStream getOutputStream() throws IOException Lobjet réponse permet dobtenir le flux de sortie en écriture Type de contenu au format MIME Taille de la réponse (peut être omis)

226 Du client serveur aux grilles de calcul et de données Fichier de configuration Le fichier web.xml correspondant Appli de Demo Ceci est une série de servlets de démo hello fr.umlv.servletdemo.HelloServlet hello /hello.html Le / ici est par rapport à lapplication Web

227 Du client serveur aux grilles de calcul et de données Hello World Le conteneur de servlets fait lassociation entre lURL et la servlet

228 Du client serveur aux grilles de calcul et de données Hello World (2) Répertoires sur le serveur

229 Du client serveur aux grilles de calcul et de données Les servlets HTTP La méthode service de la classe HttpServlet est déjà implantée et redirige les requêtes vers les méthodes do* Les méthodes sont doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace protected void do*(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException

230 Du client serveur aux grilles de calcul et de données HTTP HelloWorld HelloWorld réécrit avec une servlet HTTP import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloHttpServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain"); PrintWriter out = response.getWriter(); out.println("HTTP Hello World!"); } public String getServletInfo() { return "HTTP Hello World Servlet"; } Lobjet réponse permet dobtenir le flux de sortie en écriture

231 Du client serveur aux grilles de calcul et de données Informations sur la requête protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain"); PrintWriter out= response.getWriter(); out.println("Protocol: " + request.getProtocol()); out.println("Scheme: " + request.getScheme()); out.println("ServerName: " + request.getServerName()); out.println("ServerPort: " + request.getServerPort()); out.println("RemoteAddr: " + request.getRemoteAddr()); out.println("RemoteHost: " + request.getRemoteHost()); out.println("Method: " + request.getMethod()); out.println("requestuestURI: " + request.getRequestURI()); out.println("ServletPath: " + request.getServletPath()); out.println("PathInfo: " + request.getPathInfo()); out.println("PathTranslated: " + request.getPathTranslated()); out.println("QueryString: " + request.getQueryString()); out.println("RemoteUser: " + request.getRemoteUser()); out.println("AuthType: " + request.getAuthType()); } GET, POST, PUT etc. Chemin virtuel complet Chemin de la ressource Chemin sur le serveur Chemin de la servlet

232 Du client serveur aux grilles de calcul et de données Informations sur la requête (2) Déclaration de la servlet « header » header fr.umlv.servletdemo.HeaderServlet …... header /header/* Définition des servlets Chemin de la servlet Définition des associations

233 Du client serveur aux grilles de calcul et de données Informations sur la requête (3) Informations sur la requête URL complète

234 Du client serveur aux grilles de calcul et de données Entêtes de la requête En-tête = Informations envoyées par le browser protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain"); PrintWriter out= response.getWriter(); Enumeration e= request.getHeaderNames(); for (; e.hasMoreElements();) { String name= (String) e.nextElement(); out.println(name + ' ' + request.getHeader(name)); } Ensemble des noms des entêtes Valeur dun entête

235 Du client serveur aux grilles de calcul et de données En-têtes de la requête Entêtes Informations sur la requête

236 Du client serveur aux grilles de calcul et de données Réponse HTTP Lobjet HttpServletResponse permet en plus de renvoyer des codes derreurs public class HttpRedirectServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if ("/index.html".equals(request.getPathInfo())) response.sendRedirect("/demo/header/index.html"); else response.sendError(HttpServletResponse.SC_NOT_FOUND); } Redirection HTTP SC = Status Code

237 Du client serveur aux grilles de calcul et de données Paramètres dinitialisation Les paramètres sont déclarés dans le fichier web.xml initParam fr.umlv.servletdemo.InitParamServlet count 5 message hello config

238 Du client serveur aux grilles de calcul et de données Paramètres dinitialisation (2) Lobjet ServletConfig permet de récupérer les paramètres public class InitParamServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain"); PrintWriter out= response.getWriter(); for(int i=0;i

239 Du client serveur aux grilles de calcul et de données Paramètres dinitialisation (3) Le destroy doit libérer les ressources !! protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { … } public void init(ServletConfig config) throws ServletException { super.init(config); count = Integer.parseInt(config.getInitParameter("count")); message = config.getInitParameter("message"); } public void destroy() { message=null; } private int count; private String message; Stockage des paramètres Libération des paramètres

240 Du client serveur aux grilles de calcul et de données Les formulaires Deux méthodes de passage de paramètres : GET (dans lURL) POST (dans la requête HTTP) Gestion uniforme au niveau des servlets

241 Du client serveur aux grilles de calcul et de données Les formulaires GET HTML pour la méthode GET

Titre : Mr Mme Nom : Prénom :

242 Du client serveur aux grilles de calcul et de données Les formulaires GET (2) Utilisation des méthodes getParameter*() protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out= response.getWriter(); out.println(" "); Enumeration e=request.getParameterNames(); for(;e.hasMoreElements();) { String name=(String)e.nextElement(); String value=request.getParameter(name); out.println(name+'='+value+" "); } out.println(" "); } Ensemble des paramètres de la requète Valeurs dun paramètre de la requète

252 Du client serveur aux grilles de calcul et de données Session (5) Requête POST sur la servlet protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session=request.getSession(); if (request.getParameter("logout")==null) { session.setAttribute("username", request.getParameter("username")); session.setAttribute("firstname", request.getParameter("firstname")); } else session.invalidate(); doGet(request,response); } Demande une session avec création automatique

253 Du client serveur aux grilles de calcul et de données Authentification : les rôles login-config: schéma dauthentification security-role: rôles de lappli Web BASIC univ-mlv Client Rôle client

254 Du client serveur aux grilles de calcul et de données Authentification : Tomcat Services dauthentification fournis : Fichier XML (tomcat-user.xml) JDBC (base de données) LDAP Définition des rôles Définition des utilisateurs

255 Du client serveur aux grilles de calcul et de données Authentification : Servlet Linterface java.security.Principal correspond à lutilisateur et ses différents rôles public class Authentication2Servlet extends HttpServlet { protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain"); PrintWriter out=response.getWriter(); out.println("RemoteUser "+request.getRemoteUser()); out.println("UserPrincipal "+request.getUserPrincipal()); out.println("is a client ? "+request.isUserInRole("client")); } Nom de lutilisateur Lutilisateur possède-t-il le rôle Regroupe un utilisateur et ses rôles

256 Du client serveur aux grilles de calcul et de données Authentification : Servlet (2) Authentification avant lappel à la servlet

257 Du client serveur aux grilles de calcul et de données Les filtres ServletFiltre Requête Réponse Hello World Hello World Filtré

258 Du client serveur aux grilles de calcul et de données Les filtres Il est possible dajouter des filtres qui seront exécutés avant les servlets footer fr.umlv.servletdemo.FooterFilter footer /filter/* footer hello Filtre à partir dun URL Filtre à partir dune servlet

259 Du client serveur aux grilles de calcul et de données Les filtres Des wrappers permettent dinteragir avec la servlet public void doFilter(ServletRequest request,ServletResponse response, FilterChain chain) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out=response.getWriter(); out.println(" "); HttpServletResponseWrapper newResponse=new HttpServletResponseWrapper( (HttpServletResponse)response) { public void setContentType(String contentType) { } }; chain.doFilter(request,newResponse); // context.getRequestDispatcher("/footer.html").include(request,response); out.println(" "); } Appelle les autres filtres ou la servlet Exécuté avant Exécuté après

260 Du client serveur aux grilles de calcul et de données Administration de Tomcat Tomcat possède un outil dadministration à distance Pour lactiver il est nécessaire de rajouter un utilisateur ayant le rôle admin

261 Du client serveur aux grilles de calcul et de données Administration de Tomcat Même informations que dans le fichier server.xml

262 Du client serveur aux grilles de calcul et de données Ajouter un nouveau rôle Sur les Rôles Créé un nouveau rôle Rôle manager créé

263 Du client serveur aux grilles de calcul et de données Ajouter un rôle à un utilisateur Lutilisateur admin devient un manager de servlets

264 Du client serveur aux grilles de calcul et de données Manager de Servlet Permet de deployer/ démarrer/ arrêter/ recharger des servlets Trois modes dexécutions : - dans une URL - dans le HTML - avec Ant Reload démandé directement dans lURL

265 Du client serveur aux grilles de calcul et de données Manager de Servlet

266 Du client serveur aux grilles de calcul et de données Tomcat : utilisation de LDAP pour lauthentification et lautorisation On passe par le JNDIRealm ou le JAASRealm Un realm est une base dutilisateurs, de droits et de passwords JAASRealm : Fonctionnement différent de la pile JAAS classique : union des droits, pas intersection Dans le server.xml :

267 Du client serveur aux grilles de calcul et de données Modèles de déploiement des grilles : le modèle distribué pair-à-pair Essentiellement utilisé dans pour les grilles de stockage Ne pas être vulnérable Pas détat global Découverte des ressources par diffusion PC Diffusion Table des voisins x Table des voisins z Exemples: Gnutella, Freenet KaZaA, JXTA OceanStore FreeHaven

268 Du client serveur aux grilles de calcul et de données Modèle client/serveur pour les grilles de stockage : le cas Napster Entre le client/serveur et le P2P Accès à des données via un site unique contenant un index Stockage de données Partage des données Données « inaltérables » Copies multiples sans aucun contrôle Limites de lapproche Plutôt du client/serveur que réellement du P2P Serveur « vulnérable » Par les tribunaux… Ou par dautres… Utilisateur B Napster (Client + Serveur) Serveur Napster Association Utilisateur A Napster (Client + Serveur)

269 Du client serveur aux grilles de calcul et de données Modèle par annuaire OceanStore Annuaire distribué Exemple de Napster Un seul serveur central Annuaire NomDeFichier Pair Liens statiques pairs-serveur Annonce de présence Ressources locales Capacités de communication Charge en cours Communication continue Heartbeat Serveur dannuaire Pairs sur Internet

270 Du client serveur aux grilles de calcul et de données Recherche dun fichier Le Pair A veut un fichier Requête au serveur central Une liste complète est aussi disponible « Search *.mp3 » Réponse du serveur Fichiers sur C et D Sassure que les machines sont actives Pair A Pair C Pair D RequêteRéponse

271 Du client serveur aux grilles de calcul et de données Récupération du fichier Connexion directe De A à C « Get *.mp3 » Protocole de download direct Gestion derreurs triviale Pas de gestion des reprises Pas de hammering Une seule source Beaucoup mieux aujourdhui Kazaa, eDonkey2000, WinXP Pair A Pair C Pair D DemandeDownload

272 Du client serveur aux grilles de calcul et de données Modèle par inondation Cest un modèle isotropique Les pairs sont libres et égaux en dignité et en droit Chacun dispose de données locales Aucune notion de réplication Chaque recherche repart de zéro Diffusion en vague dune requête

273 Du client serveur aux grilles de calcul et de données Gnutella Liste de pairs Locale à chacun Quelques centaines Evolutive En fonction dévénements divers Sessions permanentes Sur 5 à 9 pairs Routage des messages Continuel

274 Du client serveur aux grilles de calcul et de données Gnutella : Les messages Messages Ping Annonce de présence Pong Réponse au ping IP/port du réceptionnaire attachée File padding Query Requête de recherche Vitesse minimum du répondant QueryHits Réponse au message Query Nombre de fichiers en réponse avec leurs index

275 Du client serveur aux grilles de calcul et de données Gnutella : Query Routage par broadcast contraint Requête en vague (ou inondation) Vers tous les voisins Chacun fait une recherche locale… …et relaie la requête à tous ses voisins Les messages déjà reçus sont ignorés Evite les cycles Chaque message a un Time-To-Live

276 Du client serveur aux grilles de calcul et de données hit Gnutella : QueryHit Recherche locale Par chaque pair lors du Query Relais inverse Adresse / Descripteur de fichier Réponses positives seulement Aggrégation des retours Padding ou stuffing Lémetteur original choisit un fichier (et le pair associé) Le download se fait alors en direct 32 1 Download

277 Du client serveur aux grilles de calcul et de données Passage a léchelle de Gnutella Ca ne marchera jamais ! Au passage des utilisateurs, écroulement Observé en été 2000 Why Gnutella Can't Scale. No, Really. [Ritter2000] Les leçons tirées Nécessité de modéliser/simuler/émuler Hubs BearShare SuperPeers permettant détendre le système Mais pas en O(log(N)) !

278 Du client serveur aux grilles de calcul et de données Modèle client/serveur pour les grilles de calcul : lInternet Computing Principe Des millions de PC en attente… Récupération des cycles processeurs inutilisés (environ 47% en moyenne dans une entreprise*) via un économiseur décran) Exemples (ce nest pas du P2P !) Recherche de signaux extra-terrestres 33,79 Teraflop/s (à comparer aux 12,3 Teraflop/s de lordinateur le plus puissant au monde au LLNL !) Décrypthon Etablir la carte des protéines du vivant RSA-155 Casser des codes cryptographiques * daprès une enquête dOmni Consulting Group

279 Du client serveur aux grilles de calcul et de données Modèle client/serveur pour les grilles de calcul : le metacomputing / ASP Principe Acheter du service de calcul sur lInternet Service = applications pré-installées + calculateurs Exemples Netsolve (Univ. Tennessee) NINF (Univ. Tsukuba) DIET (ENS Lyon/INRIA) AGENT(S) S1 S2 S3S4 Client A, B, C Réponse (C) S2 ! Requête Op(C, A, B) Serveur

280 Du client serveur aux grilles de calcul et de données Plan : Architecture des grilles de calcul et de données Définition Vue générale : les principaux composants dune grille Système dinformation Gestion de ressources Sécurité & Organisations virtuelles Environnement dune application Réseaux

281 Du client serveur aux grilles de calcul et de données Définition Approche pour la distribution de la puissance électrique = le réseaux électrique et la haute-tension

282 Du client serveur aux grilles de calcul et de données Définition Approche pour la distribution de la puissance informatique = le réseau Internet et la haute-performance (parallélisme et distribution)

283 Du client serveur aux grilles de calcul et de données Et ses différentes incarnations…

284 Du client serveur aux grilles de calcul et de données Vue générale : les principaux composants dune grille Dans tous les systèmes déjà présentés, certains besoins sont apparus : Système dinformation : comment savoir quelles ressources sont disponibles ? Gestion des ressources : pourquoi et comment attribuer les ressources aux différentes applications Sécurité : assurer authentification, confidentialité, non- répudiation, autorisation, etc … Environnement dune application : comment assurer un ensemble de services à des applications ?

285 Du client serveur aux grilles de calcul et de données Architecture générale : vue logique Interface utilisateur Gestion de ressources chargement Allocation Système d'information Publi S.I. Sécurité Hétérogénéité C.M.P.P. Migration des données Environnements de communication Transfert HD StockageFile SystemDSMMPI Environnement dexécution

286 Du client serveur aux grilles de calcul et de données S.I. Architecture générale : Déploiement possible Allocation Machines noyau Machines ressources e-Toile Publi C.M.P.P.Hétérogénéité Chargement U.I

287 Architecture des grilles de calcul et de données : systèmes dinformation

288 Du client serveur aux grilles de calcul et de données Le besoin dinformations Système dinformation point crucial pour les opérations sur la grille et la construction dapplications Comment une application détermine quelles ressources sont disponibles ? Quel est « létat » de la grille Besoin dun système dinformation général pour répondre à ces questions

289 Du client serveur aux grilles de calcul et de données Quelques informations utiles Caractéristiques dun serveur de calcul Adresse IP, logiciels disponibles, administrateur système, connections aux réseaux, version dOS, charge Caractéristiques dun réseau Bande passante et latence, protocoles, topologie logique Caractéristiques de linfrastructure logicielle gestionnaire de ressources, etc.

290 Du client serveur aux grilles de calcul et de données Service dinformation Fournir un accès à des informations statiques et dynamiques sur les composants Base pour la configuration et ladaptation de systèmes dynamiques et hétérogènes Besoins et caractéristiques Accès uniforme et flexible à linformation Accès efficace et extensible aux données dynamiques Accès à des sources dinformations multiples Maintenance décentralisée

291 Du client serveur aux grilles de calcul et de données Approche MDS Basée sur LDAP Lightweight Directory Access Protocol v3 (LDAPv3) Modèle de données standard Protocole de requête standard Schéma spécifique à Globus Représentation centrée sur lhôte Outils spécifiques Globus GRIS, GIIS Découverte, publication de données GRIS NIS NWS LDAP API LDAP Middleware … Application GIIS… SNMP

292 Du client serveur aux grilles de calcul et de données Le MDS Metacomputing Directory Service Annuaire de ressource de Globus Contient toutes les informations sur tous les nœuds globus Consultable sur Internet Distribué depuis la version Permet de créer son propre « sous-Globus »

293 Du client serveur aux grilles de calcul et de données Metacomputing directory service nn=SP-switch MDS Representation Carl Steve Switch Ethernet Ian Gregor Steve Warren sunny hot IBM SP dark cold LAN WAN USC/ISI ANL/MCS c=US o=globus o=USCo=ANL ou=MCSou=ISI nn=WAN cn=Ian cn=Gregor cn=Warren cn=Steve nn=SP-ether nn=MCS-lan hn=sp1.mcs.anl.gov hn=spN.mcs.anl.gov cn=Carl cn=Steve … … … … Structure physique

294 Du client serveur aux grilles de calcul et de données

295 Architecture des grilles de calcul et de données : gestion de ressources

296 Du client serveur aux grilles de calcul et de données Gestion de ressources Un langage de spécification de ressources flexible qui fournit la puissance nécessaire pour exprimer les contraintes requises Des services pour la co-allocation de ressources, lorganisation dexécutables, laccès à des données distantes et la gestion des flux dentrées/sorties Intégration de ces services dans des outils de haut niveau Globus : MPICH-G: un MPI pour la grille globus-job-*: commandes flexible dexécution à distance

297 Du client serveur aux grilles de calcul et de données Gestion de ressources Resource Specification Language (RSL) est utilisé pour communiquer les besoins LAPI du Globus Resource Allocation Manager (GRAM) permet de lancer les programmes sur des ressources distantes, sans tenir compte de lhétérogénéité locale Une architecture en couche permet de définir des courtiers de ressources et des co-allocateurs spécifiques aux applications comme étant des services GRAM

298 Du client serveur aux grilles de calcul et de données Modèle dordonnancement GRAM supporte le modèle suivant suspendu actifterminé échec Suspendu : ressources non encore allouées Actif : ressources allouées, exécution en cours Échec : terminaison prématurée (erreur ou arrêt) Terminé : terminaison avec succès

299 Du client serveur aux grilles de calcul et de données Composants GRAM Globus Security Infrastructure Job Manager Appels GRAM pour requête dallocation de ressources et création de processus. Appels MDS pour localiser les ressources Requête sur létat de la ressource Création Bibliothèque RSL Parse Requête Allocation & création des processus Processus Monitoring & contrôle Limite du site ClientMDS: Grid Index Info Server Gatekeeper MDS: Grid Resource Info Server Local Resource Manager Appels MDS pour avoir des infos sur les ressources Mise à jour GRAM

300 Du client serveur aux grilles de calcul et de données GRAM LSFEASY-LLNQE Application RSL Simple ground RSL Service dInformation Gestionnaires de ressources locaux spécialisation RSL Courtier Ground RSL Co-allocateur Requêtes & Info Architecture de la gestion de ressources

301 Du client serveur aux grilles de calcul et de données Langage de spécification de ressource Notation commune pour léchange dinformation entre composants RSL fournit deux types dinformations : Besoins en ressources : type de machine, nombre de nœuds, mémoire, etc. Configuration dun job : Répertoire, exécutable, arguments, environnement API fournie pour manipuler RSL

302 Du client serveur aux grilles de calcul et de données Syntaxe RSL Forme élémentaire : clauses parenthésées (attribut op valeur [ valeur … ] ) Opérateurs supportés: =, >, != Quelques attributs supportés : exécutable, arguments, environnement, stdin, stdout, stderr, resourceManagerContact, resourceManagerName Les attributs inconnus sont ignorés Peut-être gérés par dautres outils

303 Du client serveur aux grilles de calcul et de données Contraintes : & Par exemple : & (count>=5) (count<=10) (max_time=240) (memory>=64) (executable=myprog) Créer entre 5-10 instances de myprog, chacune sur une machine with ayant au moins 64 MB de mémoire et disponible pour moi pendant 4 heures

304 Du client serveur aux grilles de calcul et de données Multi-requêtes : + Une multi-requête permet de spécifier plusieurs besoins de ressources, par exemple : + (& (count=5)(memory>=64) (executable=p1)) (&(network=atm) (executable=p2)) Exécuter 5 instances de p1 sur une machine ayant au moins 64Mb de mémoire Exécuter p2 sur une machine ayant une connexion ATM Multi-requêtes sont le cœur de la co-allocation

305 Du client serveur aux grilles de calcul et de données GRAM Globus Resource Allocation Manager Permet à un programme dêtre lancé sur des ressources distantes malgré lhétérogénéité locale Utilise le langage de spécification de ressources (RSL)

306 Du client serveur aux grilles de calcul et de données DUROC Dynamically Updated Request Online Co-allocator Co-allocation : allocation simultanée dun ensemble de ressources Basée sur des prédictions concernant les nœuds libres et la taille des files dattentes

307 Architecture des grilles de calcul et de données : sécurité

308 Mécanismes primitifs

309 Du client serveur aux grilles de calcul et de données Sommaire Introduction Cryptographie Authentification Certification Microsoft.NET Passport Kerberos SSL

310 Du client serveur aux grilles de calcul et de données Authentification & Application Introduction Apparition des systèmes distribués Réseaux à grande échelle préserver la confidentialité des données préserver l'intégrité des données authentifier le correspondant Assurer la non-répudiation

311 Du client serveur aux grilles de calcul et de données Sommaire Introduction Cryptographie Authentification Certification Microsoft.NET Passport Kerberos SSL

312 Du client serveur aux grilles de calcul et de données Cryptographie Définition Science du chiffrement Meilleur moyen de protéger une information = la rendre illisible ou incompréhensible Bases Une clé = chaîne de nombres binaires (0 et 1) Un Algorithme = fonction mathématique qui va combiner la clé et le texte à crypter pour rendre ce texte illisible

313 Du client serveur aux grilles de calcul et de données Une Clé Secrète (Unique) partagée entre les 2 parties qui sert pour le chiffrement et le déchiffrement du message Cryptographie Chiffrement Symétrique

314 Du client serveur aux grilles de calcul et de données Algorithmes utilisant ce système : DES (Data Encryption Standard, très répandu) : les données sont découpées en blocs de 64 bits et codées grâce à la clé secrète de 56 bits propre à un couple dutilisateurs IDEA, RC2, RC4 Avantage : Rapide Inconvénients : Il faut autant de paires de clés que de couples de correspondants La non-répudiation nest pas assurée. Mon correspondant possédant la même clé que moi, il peut fabriquer un message en usurpant mon identité Transmission de clé Cryptographie Chiffrement Symétrique

315 Du client serveur aux grilles de calcul et de données Clé publique Sert à chiffrer le message Clé privée Sert à déchiffrer le message Cryptographie Chiffrement Asymétrique

316 Du client serveur aux grilles de calcul et de données Cryptographie Chiffrement Asymétrique Algorithmes utilisant ce système : RSA (Rivest, Shamir, Adelman) DSA ElGamal Diffie-Helmann Avantage : pas besoin de se transmettre les clés au départ par un autre vecteur de transmission. Inconvénient : Lenteur

317 Du client serveur aux grilles de calcul et de données Chiffrement symétrique Problèmes déchanges de clés Chiffrement asymétrique Problème de lenteur combinaison des 2 = clé de session Cryptographie Combinaison des 2 Chiffrements

318 Du client serveur aux grilles de calcul et de données Sommaire Introduction Cryptographie Authentification Certification Microsoft.NET Passport Kerberos SSL

319 Du client serveur aux grilles de calcul et de données Authentification Définition La personne à qui j'envoie un message crypté est-elle bien celle à laquelle je pense ? La personne qui m'envoie un message crypté est-elle bien celle à qui je pense ?

320 Du client serveur aux grilles de calcul et de données Prouveur Celui qui sidentifie, qui prétend être… Vérifieur Fournisseur du service Challenge Le Vérifieur va lancer un challenge au prouveur que ce dernier doit réaliser Authentification Technique dIdentification

321 Du client serveur aux grilles de calcul et de données Algorithme RSA = Réversible ((Mess)CPu)CPr = ((Mess)CPr)CPu Confidentialité Authentification Technique A Clé Publique Principe

322 Du client serveur aux grilles de calcul et de données Technique A Clé Publique Confidentialité Le Texte est totalement confidentiel car le destinataire est le seul a avoir la clé privée

323 Du client serveur aux grilles de calcul et de données Technique A Clé Publique Authentification On est sûr de lidentité de lémetteur car il est le seul à pouvoir chiffrer un message avec cette clé privée

324 Du client serveur aux grilles de calcul et de données Technique A Clé Publique Protocole Serveur dauthentification – Annuaire (Clé Publiques de F & D…) M M2 7 M3 1) F demande la Clé Publique de D F D 2) S envoie la Clé Publique de D à F 3) F envoie le « challenge » à D: Décrypte mon message M1(If) et renvoie mon If pour me le prouver! 4) D décrypte M1 et demande à S la Clé Publique de F 5) S envoie la Clé Publique de F à D 6) A son tour D envoie un « challenge » à F: Décrypte mon message M2(If, Id) et renvoie mon Id ! 7) F décrypte M2 et renvoie M3(Id) à D pour lui montrer quil y est arrivé 8) F & D peuvent maintenant par ex senvoyer des messages en créant une Clé Privée à partir de (If,Id) 8

325 Du client serveur aux grilles de calcul et de données Technique A Clé Secrète Protocole de Needham – Schroeder 1 2 M1 3 M2 4 M3 5 M4 F D Serveur dauthentification – Annuaire (Clés Secrètes de F & D) 1) F demande une Clé de Session pour pouvoir parler avec D 2) S envoie à F M1 crypté par la Clé Secrète de F: M1 = une Clé de Session CSfd en clair et une cryptée par la Clé Secrète de D (CSfd)CPd 3) F envoie le « challenge » à D: Décrypte mon message M2((CSfd)CPd) et renvoie un Id crypté par CSfd 4) D décrypte M2 et envoie son « challenge » : Décrypte mon message M3((Id)CSfd) et renvoie Id-1 5) F décrypte M3 et renvoie M4((Id- 1)CSfd) 6 6) F & D peuvent donc senvoyer des messages avec la Clé de Session (MESSAGE)CSfd

326 Du client serveur aux grilles de calcul et de données – Comment savoir que le message na pas été altéré ? fonction de hachage – algorithmes de hachage les plus utilisés: MD5 (128 bits) et SHA (160 bits) Signature électronique (1)

327 Du client serveur aux grilles de calcul et de données –Pb du hachage : on est pas sur de lexpéditeur Scellement des données Signature électronique (2)

328 Du client serveur aux grilles de calcul et de données Sommaire Introduction Cryptographie Authentification Certification Microsoft.NET Passport Kerberos SSL

329 Du client serveur aux grilles de calcul et de données Certification Principes Besoins Chiffrement asymétrique = basé sur la distribution de clés publiques (Annuaire) rien ne garantit que la clé est bien celle de l'utilisateur a qui elle est associée… Certificats Carte d identit é é lectronique, compos é e de la cl é publique du porteur et d informations relatives à ce dernier. D é livr é par une autorit é appel é e tiers de confiance, qui, par sa signature, en garantit l authenticit é.

330 Du client serveur aux grilles de calcul et de données Certification Certificat X509

331 Du client serveur aux grilles de calcul et de données Certification Exemple Certificat X509

332 Du client serveur aux grilles de calcul et de données C ertification PKI (Public Key Infrastructure) IGC (Infrastructure de Gestion de Clés) Système permettant la gestion de clés de chiffrement et la délivrance de certificats numériques Repose sur lutilisation de la cryptographie à clé publique

333 Du client serveur aux grilles de calcul et de données PKI - Organisation

334 Du client serveur aux grilles de calcul et de données Sommaire Introduction Cryptographie Authentification Certification Microsoft.NET Passport Kerberos SSL

335 Du client serveur aux grilles de calcul et de données Microsoft.NET Passport service en ligne gratuit permet de se connecter (en toute s é curit é ?) à n'importe quel service ou site Web Passport participant Utilisation d une adresse de messagerie et d un mot de passe unique

336 Du client serveur aux grilles de calcul et de données Microsoft.NET Passport Contenu obligatoire (nom dutilisateur) Mot de passe Contenu optionnel Phrase de rappel Clé de sécurité Numéro de mobile Date de naissance, coordonnées Informations bancaires

337 Du client serveur aux grilles de calcul et de données –Lutilisateur contacte un site –Lutilisateur est redirige sur le site PassPort –Lutilisateur Sauthentifie et reçoit un cookie chiffré –LUtilisateur est redirigé vers le premier site qui lit le cookie –Lutilisateur reste authentifié pour tout autre site Microsoft.NET Passport

338 Du client serveur aux grilles de calcul et de données Sommaire Introduction Cryptographie Authentification Certification PGP Microsoft.NET Passport Kerberos SSL

339 Du client serveur aux grilles de calcul et de données Conditions de fonctionnement Les serveurs ne font aucune confiance aux clients Les clients naccordent quune confiance limitée aux serveurs Authentification contrôlée par des serveurs spécialisés Kerberos Introduction

340 Du client serveur aux grilles de calcul et de données Kerberos Service dAuthentification Pré-requis Le serveur Kerberos détient les mots de passe utilisateurs Le serveur détient la clé privée du serveur de tickets Le serveur de tickets détient les clés privés de tous les serveurs

341 Du client serveur aux grilles de calcul et de données Kerberos Lexique Ticket Caractérise une session entre un client C et un serveur S Tcs={S, C, adr, Td, durée, Kcs}Ks Adr : adresse IP du client Td : heure de début de session Durée : durée max de session Kcs : clé de session partagée par C et S Ks : clé permanente (secrète) de S

342 Du client serveur aux grilles de calcul et de données Kerberos Lexique Authentifieur caractérise le client à un instant, vis à vis dun serveur Acs(t)={C, adr, t}Kcs Engendré par le client Permet une authentification permanente par le serveur

343 Du client serveur aux grilles de calcul et de données Sommaire Introduction Cryptographie Authentification Certification PGP Microsoft.NET Passport Kerberos SSL

344 Du client serveur aux grilles de calcul et de données SSL (Secure Sockets Layer) Définition « Couche de Sockets Sécurisée » Protocole déchange de données au dessus de TCP/IP qui assure: Confidentialité des échanges entre 2 applications Authentification des serveurs Indépendant du protocole Utilisé (HTTP, FTP, …)

345 Du client serveur aux grilles de calcul et de données SSL (Secure Sockets Layer) Principe Utilise RSA (clé publique) pour séchanger des clés DES (clé Secrète) Protocole de négociation (choix clés) Protocole déchange (chiffré par DES) Authentifie un navigateur, pas une personne Compatibilité Presque Tous les Navigateurs Affichage du cadenas en bas pour les sites Sécurisés Un serveur sécurisé possède une URL commencant par https://

346 Du client serveur aux grilles de calcul et de données SSL Phase de Négociation Authentification Utilise des certificats émis par une autorité de certification Authentifier le serveur vis à vis du client (navigateur) Authentifier le navigateur vis à vis du serveur Génération des clés de session Technique à clé publique vue précédemment Création des clés de session Fin de négociation Client & serveur sont authentifiés mutuellement Ils ont leurs clés secrètes pour la phase déchange

347 Du client serveur aux grilles de calcul et de données mécanismes Infrastructure de Gestion de Clés Infrastructure de Gestion des Privilèges Délégation

348 Du client serveur aux grilles de calcul et de données Infrastructure de Gestion de Clés (1) Infrastructure de Gestion à clés Publique (PKI) AE : Autorité dEnregistrement enregistre et vérifie les informations propres aux utilisateurs AC : Autorité de Certification délivre les certificats aux utilisateurs Annuaire de publication des certificats fournit les données de validation des certificats des utilisateurs politiques de certification Utilisation des Certificats X.509 à clés publiques « PKI » (long time certificate) Certificat PKC: utilisé pour mettre en place un service didentification des utilisateurs Protection des clés privées des utilisateurs (carte à puce, …) validation et révocation des certificats dauthentification (CRLs, ARLs,..) …

349 Du client serveur aux grilles de calcul et de données Authentification forte des utilisateurs (2) Certificat dauthentification pièce didentité électronique permettant lauthentification des utilisateurs Certificat dauthentification contient des informations pérennes (durée de vie 1 à 2 ans) Format du certificat dauthentification RFC 2459, 3280 DN du sujet Nom distinct de lutilisateur DN de lémetteur Nom distinct de la communauté de lutilisateur KeyUsage utilisation de la clé = authentification CertificatePolicies politique de certification …

350 Du client serveur aux grilles de calcul et de données Certificat dattributs Il est signé par une autorité dattributs qui nest pas nécessairement une autorité de certification Il ne permet pas didentifier un utilisateur ou un process Il spécifie les attributs dun utilisateur Rôle (objet (permission)*)* Il est associé à un certificat dauthentification Unification des DN

351 Du client serveur aux grilles de calcul et de données Infrastructure de gestion des privilèges (1) PMI Composantes Autorité dAttribut (AA) Source dAutorité (SOA) Vérificateur de privilèges Déclarant de privilèges Politique de privilèges

352 Du client serveur aux grilles de calcul et de données Infrastructure de gestion des privilèges (2) Utilisation des certificats dauthentification dans PMI Utilisation de lExtension SubjectDirectoryAttribute pour définir les attributs des utilisateurs dans leurs certificats dauthentification Durée de validité du certificat = durée de validité des attributs Révocation des attributs Révocation du certificat lauthentification Autorité dattribut (AA)= Autorité de gestion des certificats (AC)

353 Du client serveur aux grilles de calcul et de données Infrastructure de gestion des privilèges (3) Utilisation des certificats dattributs Définition X509 ISO IEC (cf aussi RFC 3281) les attributs sont des OID (rôle, groupe, ACL) durée de vie du certificat dattributs est différente du certificat dauthentification Verification le certificat dattribut est vérifié par un « vérificateur » qui peut un moniteur Droits et privilèges non publiés (à compléter) Remontée dune chaîne de signature jusquau SOA

354 Du client serveur aux grilles de calcul et de données Délégation Transfert d'un privilège d'une entité détentrice vers une autre entité. Délégation du droit dauthentification dun utilisateur par la création de certificat proxy attributs associés au certificat proxy sont inclus dans les attributs associés au certificat PKC. Att PKC Proxyproxy Att associé Signé par

355 Du client serveur aux grilles de calcul et de données Certificats proxy Le certificat est signé par un certificat utilisateur X.509. Le certificat proxy peut signé par un autre certificat proxy le bi-clé du certificat proxy est différent du bi-clé du certificat utilisateur émetteur le certificat proxy dauthentification trace (mémorise) lidentité de son émetteur le certificat proxy contient une extension spécifique Extension ProxyCertInfo qui le distingue des autres certificats.

356 Architecture de confiance

357 Du client serveur aux grilles de calcul et de données Architecture de confiance Architecture PKI Architecture PMI Association PKI et PMI Application Au Grid

358 Architecture PKI

359 Du client serveur aux grilles de calcul et de données Architecture PKI (1) Architecture PKI structure arborescente (1 communauté ) Génération du certificat MTC Root pour toute la communauté Génération dun certificat « AC déléguée » pour chaque entité de la communauté Génération des certificats des utilisateurs Validation dun certificat par la validation du chemin de certification menant au MTC user 1 MTC CA 1 CA 2 user 2 user 3 user 4 LAR LCR Communauté

360 Du client serveur aux grilles de calcul et de données Architecture PKI (2) Architecture PKI structure arborescente même source de confiance pour tous les utilisateurs une gestion simplifiée une infrastructure simple politique de certification commune user 1 MTC CA 1 CA 2 user 2 user 3 user 4 LAR LCR Communauté

361 Du client serveur aux grilles de calcul et de données Architecture PKI (3) Architecture réseaux de PKI Plusieurs communautés Plusieurs MTC Cross Certification mutuelle entre les communautés plusieurs politiques de certification Critères de cross certification entre les communauté des équivalences de politiques de certification u1u1 CA 1 CA 2 u2u3u4 MTC LARLAR LCR u1u1 MTC CA 1 u2 MTC u1u1 u2 Cross Certification MTC u1u1 u2

362 Du client serveur aux grilles de calcul et de données Architecture PKI (4) Architecture réseaux de PKI La complexité de larchitecture augmente avec le nombre des communautés Chaînes de certification complexe (multiples) Gestion de linfrastructure devient complexe Problèmes dinteropérabilité entre les PKI La validation des certificats devient plus complexe. u1u1 CA 1 CA 2 u2u3u4 MTC LARLAR LCR u1u1 MTC CA 1 u2 MTC u1u1 u2 Cross Certification MTC u1u1 u2

363 Du client serveur aux grilles de calcul et de données Architecture PKI (5) Architecture Bridge CA Création dune communauté virtuelle Établir des relations de Cross certification entre la communauté virtuelle et lensemble des communautés Simplification des itinéraires de certification u1u1 CA 1 CA 2 u2u3u4 MTC LARLAR LCR u1u1 MTC CA 1 u2 MTC u1u1 u2 Cross Certification MTC u1u1 u2 Communauté Virtuelle

364 Architecture PMI

365 Du client serveur aux grilles de calcul et de données Architecture PMI Principe d Arborescence PMI une Source dAutorité de confiance SOA plusieurs Autorités dAttributs AA Certificats dAttributs signée par les AA la validation dun certificat dattribut par la validation du chemin menant au SOA A1A1 SOA AA 1 AA 2 A2A2 A3A3 A4A4

366 Association PKI et PMI

367 Du client serveur aux grilles de calcul et de données Association PKI et PMI Architecture avec même source de confiance pour les deux infrastructures PKI et PMI Indépendance des deux infrastructures PKI et PMI

368 Du client serveur aux grilles de calcul et de données Architecture avec même source de confiance PKI et PMI Origines de confiance des droits didentification et des privilèges sont confondues : MTC = SOA politiques de certification et politiques de privilège sont sous la responsabilité de la même Autorité Compromission du MTC Compromission du SOA la validation des droits didentification et dattributs peut être effectuée par lensemble des composantes de linfrastructure (visibilité globale) La délégation des droits dauthentification et des privilèges des utilisateurs peut être effectuée dans lensemble de linfrastructure

369 Du client serveur aux grilles de calcul et de données Architecture avec même source de confiance PKI et PMI Fusion des architectures PKI et PMI lautorité de certification est lautorité dattribut : les administrations des droits didentification et des attributs sont fusionnés les Certificats PKC et Certificat dAttributs dun utilisateurs sont émis par la même Autorité révocation de lAC révocation de AA MTC SOA U 4 A3 AC 2 AA 2 U 3 A1A2 AC 1 AA 1 A1 A2 U 1 U 2 A3 A4

370 Du client serveur aux grilles de calcul et de données Séparation de ladministration des droits dauthentification et dattribut lautorité de certification et lautorité dattribut sont indépendante ladministrateur de certification # administrateur des privilèges révocation de lAC # révocation de AA AC U1 U2 AA MTC SOA A1 An Architecture avec même source de confiance PKI et PMI

371 Du client serveur aux grilles de calcul et de données Architecture avec même source de confiance PKI et PMI délégation du droit de génération des certificats dattributs lautorité de certification et lautorité dattribut sont indépendante délégation de lAA du droit de génération des certificats dattributs à lAC AC A1 A2 AA MTC SOA U 1U 2 Délégation

372 Du client serveur aux grilles de calcul et de données Indépendance des Architectures PKI et PMI Origines de confiance des droits didentification et des privilèges sont différentes: MTC # SOA Politiques de certification et politiques de privilège sont sous la responsabilité de plusieurs autorités différentes Compromission du MTC na aucune conséquence sur le SOA et réciproquement La validation des droits didentification est globale PKI, la validation des certificats dattributs est locale PMI La délégation des droits dauthentification peut se faire dans lensemble de linfrastructure PKI La délégation dattributs ne peut pas être effectuée

373 Du client serveur aux grilles de calcul et de données Indépendance des Architectures PKI et PMI Origine de confiance des droits didentification et des privilèges sont séparée les autorités de certification et les autorités dattributs sont indépendantes les chemins de certification et dattributs sont indépendants les révocations des droits didentification est indépendante de la révocation des privilèges AC1 U1U2 AA2 SOA 1 A3 A4 AA1 A1A2 MTC AC2 U3U4 AA4 SOA 2 A7A8 AA3 A5A6 PKI PMI

374 Grids

375 Du client serveur aux grilles de calcul et de données Grid : Quelques caractéristiques (1) Composant physique chaque organisation peut être composée de plusieurs entités chaque organisation a un ensemble dutilisateurs chaque organisation possède le contrôle total sur lattribution et la révocation des droits didentification des utilisateurs (administration des droits I&A) chaque entité dune organisation possède un ensemble de ressources qui lui sont propres chaque entité veut possède un contrôle total sur lattribution et la révocation des doits daccès (privilèges) des utilisateurs à ces ressources (administration des des droits daccès aux ressources) …….

376 Du client serveur aux grilles de calcul et de données Grid : Quelques caractéristiques (2) utilisateurs un utilisateur appartient à une seule organisation physique un utilisateur peut appartenir à plusieurs entités physiques dune même organisation physique le droit dauthentification dun utilisateur lui est délivré par une autorité de certification de son organisation un utilisateur bénéficie de lensemble des privilèges qui lui sont nécessaires pour effectuer ces tâches dans son organisation les privilèges dun utilisateur lui sont délivrés par les administrateurs des droits daccès aux ressources de chaque entité de son organisation

377 Du client serveur aux grilles de calcul et de données Grid : Quelques caractéristiques (3) organisation virtuelle une organisation virtuelle regroupe des utilisateurs de plusieurs organisations physiques afin deffectuer des travaux nécessitant laccès aux ressources de une ou plusieurs entités ; chaque entité appartient à une organisation physique. Lutilisateur dune organisation virtuelle doit bénéficier pour effectuer son travail des droits I&A dans plusieurs organisations physiques, et des droits daccès aux ressources dans plusieurs entités des organisations physiques

378 Du client serveur aux grilles de calcul et de données Grid : Contraintes fonctionnelles I&A lI&A dun utilisateur dans une organisation virtuelle est effectuée grâce au droit dI&A qui lui ont été attribués par son organisation physique au cours dune même session un utilisateur dune organisation virtuelle na pas besoin de se re-authentifier à chaque accès à une organisation physique La protection des échanges électroniques entre lutilisateur et les entités ne nécessite pas la re-utilisation du droit dI&A de lutilisateur ……

379 Du client serveur aux grilles de calcul et de données Grid : définitions Allocateur des ressources : dispositif permettant dallouer.. Statique dynamique Moniteur : dispositif charg é de contrôler la l é gitimit é des tentatives d'acc è s des utilisateurs sur les ressources Base dinformations dattributs Chargeur :

380 Architecture de sécurité

381 Du client serveur aux grilles de calcul et de données Définir les objectifs de sécurité I&A : Toutes les actions autoris é es sur le Grid ne peuvent être ex é cut é es que par des utilisateurs d û ment authentifi é s Etc.. Droits d acc è s : Les utilisateurs authentifi é s peuvent acc é der uniquement aux ressources sur lesquelles ils b é n é ficient d une autorisation. Etc.. Communication : L ensembles des é changes é lectroniques doivent être prot é ger en int é grit é et confidentialit é Etc … Audit Etc..

382 Du client serveur aux grilles de calcul et de données Définitions complémentaires Client proxy utilisateur : dispositif qui utilise un certificat proxy délégué dun utilisateur pour effectuer des demandes de tâche (ou job) à un allocateur des ressources, ou à un serveur proxy ressource Serveur proxy ressource : serveur proxy permettant dauthentifier les demandes daccès à des ressources Base dinformation dattributs : base de stockage des informations de validation des certificats dattributs dun ensemble dutilisateur Base dinformation de certification : base de stockage des information de validation des certificats à clés publiques des utilisateurs

383 Du client serveur aux grilles de calcul et de données Architecture de sécurité : délégation (1) Authentification du user Génération dun nouveau bi-clé Génération dun certificat proxy délégué par le user Lancement dun client proxy sur le poste du user requête dexécution dun job de luser Étape 2 réception de la Requête dexécution du job par lallocateur Authentification mutuelle entre client proxy 1 et serveur I&A Demande de vérification des attributs du user au moniteur vérification des attributs du user par le moniteur (accès à la base dinformation dattributs) réponse de vérification des attributs du user Demande de chargement des taches au chargeur Serveu r I&A Allocateur Moniteur Base dinformation des attributs Chargeur User Client Proxy 1 Étape 1 Serveur I&A Serveur I&A Client Proxy 1 Étape 1 Serveur I&A Serveur I&A

384 Du client serveur aux grilles de calcul et de données Architecture de sécurité : délégation (2) Étape 3 génération dun certificat proxy 2 pour le lancement des taches sur les serveurs distants génération dun nouveau bi-clé demande dun certificats proxy délégué au client proxy 1 pour effectuée le lancement des taches distantes réception du certificat proxy 2 du client proxy 1 Lancement du client proxy 2 Étape 4 User Client Proxy 1 Serveur I&A Serveur I&A Serveu r I&A Allocateur Moniteur Base dinformation des attributs Chargeur Réception de la demande de certificat délégué Génération dun certificat proxy délégué 2 par le le client proxy 1 envoie du certificat proxy 2 Client Proxy 2

385 Du client serveur aux grilles de calcul et de données Architecture de sécurité : délégation (3) demande de lancement dune tâche distante Étape 5 User Client Proxy 1 Serveur I&A Serveur I&A Serveu r I&A Allocateur Moniteur Base dinformation des Attributs Chargeur Client Proxy 2 Serveur Proxy Ressource Serveur Proxy Ressource réception de la demande de lancement de la tâche authentification mutuelle entre client proxy 2 et serveur proxy ressource lancement de la tache Tâche Étape 6

386 Du client serveur aux grilles de calcul et de données Architecture de sécurité : délégation (4) Canal sécurisé TLS User Client Proxy 1 Serveur I&A Serveur I&A Serveu r I&A Allocateur Moniteur Base dinformation des Attributs Chargeur Client Proxy 2 Serveur Proxy Ressource Serveur Proxy Ressource Tâche

387 Du client serveur aux grilles de calcul et de données Architecture de sécurité : délégation (5) User Client Proxy 1 Serveur I&A Serveur I&A Serveu r I&A Allocateur Moniteur Base dinformation des Attributs Chargeur Client Proxy 2 Serveur Proxy Ressource Serveur Proxy Ressource Tâche Serveur Proxy Ressource Serveur Proxy Ressource Tâche Client Proxy 3 Serveur Proxy Ressource Serveur Proxy Ressource Tâche Itinéraire de délégation des droits dauthentification de longueur 3 Liaison TLS

388 Du client serveur aux grilles de calcul et de données Architecture de sécurité : délégation (6) User Serveur I&A Serveur I&A Client Proxy 1 Serveur I&A Allocateur Moniteur Base des Attributs Chargeur Client Proxy 2 Tâche Client Proxy 3 Serveur Proxy Serveur Proxy Tâche Serveur Proxy Serveur Proxy Tâche Serveur Proxy Serveur Proxy Tâche Client Proxy 3 Serveur Proxy Serveur Proxy Tâche Client Proxy 3 Serveur Proxy Serveur Proxy Tâche Serveur Proxy Serveur Proxy Tâche Serveur Proxy Serveur Proxy Tâche Serveur Proxy Serveur Proxy Tâche Serveur I&A Allocateur Moniteur Base des Attributs Chargeur Client Proxy 2 Serveur I&A Allocateur Moniteur Base des Attributs Chargeur Client Proxy 2 Organisation 1 Organisation 2 Organisation 3

389 Du client serveur aux grilles de calcul et de données Dispositifs de sécurité PKI : module CA (génération de certificat PKC, révocation, … ), module RA module de publication PMI : modules AA (génération des certificats dattributs, révocation, …) module de publication Base dinformation de certification par exp : Annuaires LDAP Base dinformation dattribut par exp : Annuaires LDAP Moniteurs par exp : un vérificateur des certificats dattributs

390 Du client serveur aux grilles de calcul et de données Dispositifs de sécurité Serveurs Proxy ressources : TLS (serveur) Module de lancement des proxy client Proxy client Module de génération des bi-clés TLS délégation protocol client (requête des certificats proxy) Module de génération des certificats proxy (pour dautres clients proxy) TLS délégation protocol Serveur (réponse des demandes de certificats proxy)

391 Environnement dune application

392 Du client serveur aux grilles de calcul et de données Environnement des communications Problèmes Support des architectures grilles Routage Multiplexage Dynamicité

393 Du client serveur aux grilles de calcul et de données Support grille Exploitation des Grappes de grappes Réseaux intra-grappes rapides Liens inter-grappes rapides Hétérogénéité au niveau réseau Réseau à haut débit Réseau haute performance

394 Du client serveur aux grilles de calcul et de données Principe Canaux réels Liés à un réseau Ne couvrent pas nécessairement tous les noeuds Canaux virtuels Couvrent tous les noeuds Contiennent plusieurs canaux réels Myrinet SCI Virtuel

395 Du client serveur aux grilles de calcul et de données Infrastructure Processus Gestionnaire de communications

396 Dynamicité Support darchitectures évolutives

397 Du client serveur aux grilles de calcul et de données Points clés Granularité Niveau processus Niveau grappes La dynamicité a un coût Scrutations supplémentaires Prise en compte du changement de topologie La dynamicité est parfois impossible Interfaces de communication à lanceur propriétaire Interfaces sans primitives/potentiel de connexion dynamique

398 Du client serveur aux grilles de calcul et de données Changement de topologie Propagation à toute la configuration Serveur de gestion des communications Processus applicatifs Deux conséquences Vraisemblablement une synchronisation globale Impact fort sur lexécution Prise en charge dévénements asynchrones de la gestion des communications sur les nœuds applicatifs Nécessité dun thread dédié Verrouillages délicats

399 Du client serveur aux grilles de calcul et de données Changement de topologie Cas du routage multi-réseau Nécessité dun recalcul des routes Opération coûteuse Problème pour les blocs de données en transit sur les passerelles Routage dynamique ? Ordre des messages Refaire IP ?

400 Du client serveur aux grilles de calcul et de données Conclusion – support dynamicité Réalisable pour une dynamicité à gros grain (grappes) pour une faible dynamicité au niveau processus Prohibitif pour une forte dynamicité au niveau processus Impossible Interfaces à lanceurs spécifiques Interfaces sans possibilités de connexions dynamiques MPI, BIP

401 Du client serveur aux grilles de calcul et de données Plan : Perspectives pour les grilles de calcul et de données Perspectives Prochain standards Projets en cours Tendances actuelles

402 Du client serveur aux grilles de calcul et de données MPICH-G - Description & Technologie MPICH est une implémentation libre et disponible du standard MPI qui peut sexécuter sur un large panel de systèmes. MPICH est dérivé de MPI et de Chameleon; Caméléon parce que MPICH peut sexécuter sur un large panel denvironnements et aussi parce que limplémentation initiale de MPICH utilise le Chameleon message-passing portability system.

403 Perspectives

404 Du client serveur aux grilles de calcul et de données Prochains standards Une organisation, le Global Grid Forum, a été depuis quelques années et défini les standards de demain, le dernier étant une extension dOGSA, WSRF (Web Service Resource Framework), basé sur la notion de lexposition de ressources comme étant des WS à état. La technologie nest pas encore stable, et il est probable que les standards définis actuellement ne seront pas les derniers.

405 Du client serveur aux grilles de calcul et de données Projets en cours Plusieurs projets de recherche en France via lAction Concerté Incitative GRID Globalisation des Ressources Informatiques et des Données et en Europe via la PCRD. Le projet faisant suite à DataGrid, dans loptique de lexploitation pour le LHC dune grille de données, vient de passer sa première revue annuelle. Il compte 72 partenaires répartis en Europe, industriels et scientifiques.

406 Du client serveur aux grilles de calcul et de données Perspectives Les grilles génériques, dédiées a tout type dapplications, tendent à disparaître pour être remplacés par des projets communautaire, soit par spécialité (physique, biologie) soit par type dapplication (stockage de données à grande échelle, calcul matriciel et algèbre linéaire. Les projets de grande ampleur semblent ralentir pour laisser la place aux grilles dentreprises.

407 Du client serveur aux grilles de calcul et de données Quelques mots sur ce cours/références Ce cours ayant été préparé en peu de temps, lessentiel des transparents présenté ici proviennent dautres sources. Je prie les auteurs de me pardonner cet emprunt. Liste des auteurs/présentations : Architectures de grappes de PC Philippe Augerat ID-IMAG Les architectures parallèles et leur programmation pour le calcul scientifique Yves Denneulin GRAAL Algorithmique pour les plateformes distribuées et hétérogènes LIP ENS Lyon INRIA Rhône-Alpes Madeleine - Marcel Olivier Aumage Raymond Namyst LIP - ENS Lyon Introduction to Grid computing and overview of the EU Data Grid Project The European DataGrid Project Team

408 Du client serveur aux grilles de calcul et de données Liste des sources/auteurs (suite) Bioinformatique distribuée : application dans le domaine de la parasitologie N. Jacq, E. Cornillot Laboratoire de Biologie des Protistes - CNRS - Clermont-Ferrand DIET Une approche extensible pour les serveurs de calcul E. Fleury, E. Jeannot INRIA Lorraine LORIA Nancy, France E. Caron, F. Desprez, M. Quinson, F. Suter INRIA Rhône-AlpesLIP ENS Lyon, France S. Contassot, F. Lombard, J.-M. Nicod, L. Philippe LIFC Besançon, France Supports dexécution parallèles et répartis Raymond Namyst LaBRI Université de Bordeaux I Jean-François Méhaut GRIMAAG Université des Antilles-Guyane Le centre de calcul de l'IN2P3 : une architecture pour le calcul intensif et le stockage de masse Pascal Calvat Programmation Répartie Tronc commun – Module réseau Philippe Lalevée IAAI – 2004 Étude de la parallélisation de méthodes heuristiques doptimisation combinatoire. Application au recalage dimages médicales. LSIIT- ICPS Illkirch, le 11 décembre 2001 Michel Salomon

409 Du client serveur aux grilles de calcul et de données Liste des sources/auteurs (fin ?) … Et tout ceux que jai pu oublier

410 Du client serveur aux grilles de calcul et de données Pour en savoir plus … Applications scientifiques : Architectures parallèles : Algorithme et architecture parallèles, Michel Cosnard, InterEdition. LDAP : (OpenLDAP) efault.mspx (Active Directory) efault.mspx JBoss: Tomcat : JAAS :

411 Annexe : scénario utilisateur

412 Du client serveur aux grilles de calcul et de données Allocateur Un scénario utilisateur : soumission d'application S.I.C. e-Toile S.P.A.M. Globus GramC.M.P.P. Chargeur G.U.I.D.E. Application utilisateur


Télécharger ppt "Laurent Bobelin, CS-SI Du Client/Serveur aux architectures de grilles de calculs et de données."

Présentations similaires


Annonces Google