Cours grille

Cours grille

Du Client/Serveur aux architectures de grilles de calculs et de donnes Laurent Bobelin, CS-SI Plan du cours Motivation gnrale Les diffrents types de paralllisme Les architectures parallles et distribues Les environnements de programmation parallle Les paradigmes systmes distribus grande chelle et de grille Architecture des grilles de calcul et de donnes Perspectives pour les grilles de calcul et de donnes Du client serveur aux grilles de calcul et de donnes Plan : Motivation gnrale Les besoins Physique

Sciences de la terre Analyse du gnome humain Conception Assiste par Ordinateur Observation de la terre Biologie

Des confins de la matire jusqu la simulation des surfaces Modlisation automobile Autres Dbouchs industriels Industriels intresss Les fournisseurs de services Les fournisseurs de ressources Les applications Les profils industriels Conseil Matrise duvre Conception, dploiement et administration Middlewares Application Exploitation

Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Les besoins : Physique Large Hadron Collider Modlisation de surface Applications nuclaires Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Les besoins : Physique : LHC Le CERN (Centre dEtude et de Recherche Nuclaire) 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 acclrateur de particule au monde, qui devrait tre achev en 2007. 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 Du client serveur aux grilles de calcul et de donnes

Motivation gnrale : Les besoins : Physique : LHC Le LHC est constitu dune boucle de 20km de diamtre, dans laquelle sont injects des protons. Le long de cette boucle, des capteurs sont disposs pour percevoir les traces de particules. Du client serveur aux grilles de calcul et de donnes The LHC Detectors Le LHC : ATLAS CMS ~6-8 PetaBytes / year ~108 events/year ~103 batch and interactive users LHCb

Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Les besoins : Physique : LHC Lensemble des capteurs une fois le LHC oprationnel gnrera plusieurs pta-octets de donnes par an, quil faudra analyser et stocker. Le CERN est donc de facto un des plus grands acteurs des projets de recherche de grille europen. Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Les besoins : Physique : Modlisation de surface Modliser une surface permet de prdire les changements climatiques. La structure des sols peut varier et induit des changements La vgtation une influence

Plus le modle est fin, plus la modlisation de surface est pertinente. Plus les ressources informatiques mises disposition de lapplication sont importantes, meilleure sera la modlisation. Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Les besoins : Physique : Application nuclaire Modliser le comportement du cur dun racteur nuclaire Analyse des points chauds

Modlisation des matriaux et de leur rsistance Prdire le comportement en cas dincident De mme que pour le cas prcdent, plus les ressources informatiques mises disposition de lapplication sont importantes, meilleure sera la modlisation. Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Les besoins : Observation de la terre Envoi de satellite pour observer la terre Les challenges des projets ESA : Environ 100 Gbytes de donnes par jour pour la mission(ERS 1/2) 500 Gbytes, pour la mission

ENVISAT (2002). Source: L. Fusco, June 2001 Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Les besoins : Biologie Bio-informatique : Phylogenetique Search for primers Statistiques gntiques

Parasitologie Data-mining sur des bases ADN Comparaison gometrique protinique 1. Query the medical image database and retrieve a patient image Imagerie Mdicale Modlisation et imagerie numrique Medical data and metadata

management Analyse de mammographies Exam image patient key ACL ... Medical Metadata images 2. Compute similarity measures over the database images Submit 1 job per image 3. Retrieve most similar cases Similar images Low score images Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Les besoins : Conception Assiste par Ordinateur

Automobile : Construire un prototype est dun cot trs lev Des dfauts de conception peuvent apparatre la construction du prototype De nombreux tests sur la scurit, la vitesse, etc, peuvent demander de construire de nombreux prototypes. Ncessit de modliser finement les prototypes pour baisser le cot de conception dun nouveau modle Du client serveur aux grilles de calcul et de donnes

Motivation gnrale : Les besoins : Autres Renault : simulations, modlisation, Mtorologie et climatologie Industries Aronautiques simulation et modlisation, ralit virtuelle Simulation grandes chelle : tectonique, modles atmosphriques EDF : simulation Temps-rel ONERA : simulation de phnomnes physiques Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels Industriels intresss Les fournisseurs de services Les fournisseurs de ressources

Les applications Profils industriels Conseil Matrise duvre Conception, dploiement et administration Middlewares

Application Exploitation Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels : Industriels intresss Les fournisseurs de services : Entreprise ayant pour activit de vendre des services (stockage, calcul, hbergement) IBM par exemple. Les fournisseurs de ressources Entreprise voulant rentabiliser les ressources informatiques quelle possde, comme CGG.

Les applications Entreprise voulant entreprendre des calculs de grande chelle Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels : Industriels intresss : Les fournisseurs de services Les besoins des ressources sont multiples : calcul, stockage, intgration, portage, administration, mise en uvre, dveloppement de solutions logicielles ad-hoc. Quatre types : Ressources : Grandes entreprises informatiques proposant des solutions tout-enun (IBM)

Logiciels : Entreprises fournissant des logiciels gnriques pour les grilles (Sun, Microsoft, ) et voulant dominer le march. Les SSII : conseil, dveloppement,maintenance, migration, etc. (CSSI, Atos, ) Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels : Industriels intresss : Les fournisseurs de ressources Certains industriels possdent un grand nombre de ressources (calcul, stockage) inutilises : Ordinateurs personnels

Ressources alatoires dans leur nombre et leur disponibilits Ressources contraintes par le temps Analyse un instant T demandant beaucoup de ressources, mais peu utilises le reste de la journe CGG, mtorologie Ces ressources peuvent tre vendues aux applications ncessitant beaucoup de ressources. Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels : Industriels intresss : Les applications Industriels ayant besoin dun grand nombre de ressources :

Simulation : PSA, EDF, CEA, Prdiction : mtorologie (Mteo de France, CGG) Ncessit de migrer leurs applications Ncessit damliorer les performances de leurs applications Rester/devenir les leaders sur leur march Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels : Les profils industriels Conseil :tude dopportunit, expression des besoins, ralisation de cahier des charges. Matrise duvre et assistance la matrise douvrage. Conception, dploiement et administration des infrastructures de grille.

Middlewares : dveloppement,adaptation, installation. Application : dveloppement, adaptation. Exploitation :gestion, volution. Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels : Les profils industriels : conseil Conseil : tude dopportunit : est-il utile pour une application dtre migre vers une technologie de grille ? expression des besoins : quels sont les besoins dune application ? ralisation de cahier des charges : comment peut-on faire, et dans quel dlais peut on obtenir un rsultat ?

Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels : Les profils industriels : matrise duvre et assistance la matrise douvrage Matrise duvre : Coordination, relations entre la problmatique applicative et les technologies de grille Besoins lors de la migration ou du portage dapplication sur grille Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels : Les profils industriels : Conception, dploiement et administration des infrastructures de grille Conception : quelle est la meilleure architecture pour un

ensemble dapplications donn ? Dploiement : comment utiliser les ressources ? Administration : comment faire en sorte que les ressources restent oprationnelles ? Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels : Les profils industriels : middleware Dveloppement : un middleware adapt aux besoins Adaptation : un middleware existant, ladapter aux besoins Dploiement : rendre lutilisation effective Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels : Les profils industriels : Applications Dveloppement : Les grilles ont des spcificits qui sortent du domaine du calcul

parallle classique Ncessit de dvelopper des applications tirant un profit maximum des ressources Adaptation : Des applications peuvent bnficier dune gridification : comment ladapter aux problmatiques grilles ? Du client serveur aux grilles de calcul et de donnes Motivation gnrale : Dbouchs industriels : Les profils industriels Exploitation : Gestion : grer et administrer une grille dans une entreprise, veiller a son bon fonctionnement, grer les utilisateurs

volution : redimensionner une grille, faire voluer son middleware et les logiciels associs. Du client serveur aux grilles de calcul et de donnes Plan : Les diffrents types de paralllisme Introduction au paralllisme Les diffrents types de paralllisme Granularit Du client serveur aux grilles de calcul et de donnes Introduction au paralllisme Paralllisme

utiliser plusieurs ordinateurs ensemble pour rsoudre des problmes plus gros (taille mmoire, espace disque) plus rapidement (puissance CPU) Mot cl : efficacit Diffrents domaines thoriques algorithmique

ordonnancement pratiques si supports modles on veut de l efficacit les deux sont videmment lies Du client serveur aux grilles de calcul et de donnes Les diffrents types de paralllisme Client/serveur Paralllisme de tche : application exhibant un graphe

de tches dont certaines peuvent tre effectues en parallle Paralllisme de donnes : application qui traite de la mme faon plusieurs jeux de donnes. Paralllisme mixte : application exhibant du paralllisme de donnes et de tches Paralllisme massif : application exhibant un gros potentiel parallle Du client serveur aux grilles de calcul et de donnes Granularit On appelle granularit la taille dun traitement squentiel dans une application parallle Cette granularit dpend non seulement de lapplication, mais aussi de son implmentation On parle de gros grain pour les applications ayant une forte excution squentielle Frquence de communication moins grande

Pas forcement moins gourmande en dbit ! On parle de grain fin pour les applications ayant une forte excution parallle de tche Plus sensible la latence du rseau Du client serveur aux grilles de calcul et de donnes Granularit Sous-Populations Paralllisation gros grain Population SP1 SP2 SP4

SP3 Division Paralllisation grain fin Individus ABCDEF Processeurs A B C D E F

Distribution Du client serveur aux grilles de calcul et de donnes Plan : Les architectures parallles et distribues Les multiprocesseurs Les clusters Les environnements htrognes Les centres de calcul Du client serveur aux grilles de calcul et de donnes 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 progrs constants dans les 2 domaines o les machines parallles ont le plus de

difficult: le logiciel et les interconnexions Du client serveur aux grilles de calcul et de donnes Notion dacclration Acclration = gain de temps obtenu lors de la paralllisation du programme squentiel. Dfinition : Soit T1 le temps ncessaire un programme pour rsoudre le problme A sur un ordinateur squentiel et soit Tp le temps ncessaire un programme pour rsoudre le mme problme A sur un ordinateur parallle contenant p processeurs, alors l acclration (Speed-Up) est le rapport : S(p) = T1 / Tp Cette dfinition nest pas trs prcise Pour obtenir des rsultats comparables il faut utiliser les mmes dfinitions d Ordinateur Squentiel et de Programme Squentiel Du client serveur aux grilles de calcul et de donnes Notion dacclration

S(p) Rgion des acclrations sur-linaires n io t a r l c c a 0 ire a lin

Rgion des acclrations sub-linaires P = nombre de processeurs Du client serveur aux grilles de calcul et de donnes Notion defficacit Soit T1(n) le temps ncessaire lalgorithme pour rsoudre une instance de problme de taille n avec un seul processeur, soit Tp(n) celui que la rsolution prend avec p processeurs et soit s(n,p) = T1(n) / Tp(n) le facteur dacclration. On appelle efficacit de l algorithme le nombre E(n,p) = S(n,p) / p Efficacit = normalisation du facteur d acclration Du client serveur aux grilles de calcul et de donnes Efficacit/Acclration Multiplication de matrices ( A moins bon que B) Algorithme A Temps en squentiel : 10 minutes

Nombre de processeurs : 10 Temps en // : 2 minutes Acclration : 10/2 = 5 (l'application va 5 fois plus vite) Efficacit : 5/10 = 1/2 Algorithme B Temps en squentiel : 10 minutes Nombre de processeurs : 3 Temps en // : 4 minutes Acclration : 10/4 = 5/2 = 2,5 < 5 Efficacit : (5/2)/3 = 0,8 > 0,5 Du client serveur aux grilles de calcul et de donnes Remarques Une acclration linaire correspond un gain de temps gal au nombre de processeurs (100% activit) Une acclration sub-linaire implique un taux d activit des processeurs < 100 % (communication, cot du paralllisme...) Une acclration sur-linaire implique un taux dutilisation

des processeurs > 100 % ce qui parat impossible (en accord avec la loi d Amdhal) Cela se produit parfois (architecture, mmoire cache mieux adapte que les machines mono-processeurs) Du client serveur aux grilles de calcul et de donnes Puissance de calcul Nous retrouvons couramment MIPS ou FLOPS MIPS (Machine Instructions Per Second) reprsente le nombre d instructions effectues par seconde FLOPS (FLoating Point Operations Per Second) reprsente le nombre d oprations en virgule flottante effectues par seconde Les multiplicatifs : K = 210 ; M = 220 ; G = 230 Certains processeurs vectoriels ont une puissance de calcul de 300 Mflops par exemple. Du client serveur aux grilles de calcul et de donnes Les types de multiprocesseurs

Taxonomie propose par Flynn dans les annes 60: SISD (Single Instruction Single Data): uniprocesseur SIMD (Single Instruction Multiple Data): plusieurs processeurs, qui excutent en parallle les mmes instructions sur plusieurs donnes MISD (Multiple Instruction Single Data): pas dexemple connu MIMD (Multiple Instruction Multiple Data): plusieurs processeurs qui oprent de faon indpendantes ou semi-indpendantes sur leurs donnes Du client serveur aux grilles de calcul et de donnes

Les types de multiprocesseurs Du client serveur aux grilles de calcul et de donnes Les types de multiprocesseurs SIMD (Single Instruction Multiple Data) squenceur unique tableau de processeurs MISD (Multiple Instruction Single Data) classe bizarre pipeline ? MIMD (Multiple Instruction Multiple Data) Classe la plus importante processeurs autonomes Mmoire partage ou distribue Cette classification nest pas en corrlation avec les machines relles Du client serveur aux grilles de calcul et de donnes MIMD: la mmoire Les deux classes de multiprocesseurs MIMD sont

largement rpandus ; le choix de MIMD-SD ou MIMD-DM dpendant du nombre de processeurs dans la machine Mmoire partage centralise (centralized shared memory) : petit nombre de processeurs. Mmoire distribue : grand nombre de processeurs. Du client serveur aux grilles de calcul et de donnes Classification unifie des types de multiprocesseurs SIMD-SM Contrle centralis de donnes centralises Machine vectorielles mono-processeurs Instruction unique applique de manire squentielle des donnes de type vecteur Fonctionnement en mode pipeline Pipeline :

Dcomposition de l oprateur f = f3 f2 f1 On applique successivement f1, f2 puis f3 sur cette donne circuits dans les processeurs circuit = composant lectronique qui prend d en entre et donne f(d) en sortie squence de circuits en tages Du client serveur aux grilles de calcul et de donnes Classification unifie des types de multiprocesseurs SIMD-DM : Contrle centralis, donnes distribues Processeurs de faible puissance = lments de calcul Squenceur unique MIMD-DM : Contrle distribu, donnes distribues Un processeur = entit de calcul autonome (processeur + mmoire) Communication par envoi de messages : importance du rseau d interconnexion

Avantage : facile d augmenter le nb de proc Inconvnients : performances troitement lies au rseau et besoin d OS nouveaux. Du client serveur aux grilles de calcul et de donnes Classification unifie des types de multiprocesseurs MIMD-SM : Mmoire divise en plusieurs bancs Synchronisation des accs la mmoire, un seul processeur peut accder 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 Du client serveur aux grilles de calcul et de donnes Types de multiprocesseurs utiliss

Les premiers multiprocesseurs taient du type SIMD, et cette architecture est encore utilise pour certaines machines spcialises 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-programmes Les MIMD peuvent tre bties partir de processeurs existants Du client serveur aux grilles de calcul et de donnes Architectures parallles : exemple MIMD 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 Du client serveur aux grilles de calcul et de donnes Architectures parallles : exemple MIMD 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 ) Du client serveur aux grilles de calcul et de donnes

Architectures parallles : exemple MIMD : le Cray T3E La machine de chez CRAY, deux types de modles, refroidissement air (pas plus de 128 processeurs) ou par un liquide (jusqu' 2048 processeurs). En amalgamant les deux de 16 2048 nuds comprenant chacun : un DEC Alpha EV5 (600 MFlops) de 64 Mo 2 Go de mmoire vive un rseau d'interconnexion en tore 3D (bande passante de 2 128 Go/s). Performance de crte de 9.6 GFlops 1.2 TFlops, jusqu' 4 To de mmoire vive. Du client serveur aux grilles de calcul et de donnes Architectures parallles : exemple SIMD 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 Du client serveur aux grilles de calcul et de donnes Architectures parallles : exemple SIMD Du client serveur aux grilles de calcul et de donnes Architectures de grappes de PC Dfinition Une grappe (cluster) est une collection de machines interconnectes, utilise comme une ressource de calcul unifie Une grappe Beowulf se dfinit par les proprits suivantes : composants grande diffusion

composants rseau faible cot systme d exploitation open source hardware non propritaire logiciel open source Du client serveur aux grilles de calcul et de donnes Des grappes de rfrence : 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 Du client serveur aux grilles de calcul et de donnes Technologies : quadriproc Mono SMP ? IA64 Processeur biproc Pentium

Alpha Linux NT Ethernet SCI Rseau OS Myrinet Solaris,... Giganet, ServerNet, ... Du client serveur aux grilles de calcul et de donnes Linterconnexion rseau Infiniband SCI HIPPI

VIA Myrinet Fibre Channel PCI ... Ethernet ... SCSI SAN LAN ATM WDM FDDI MAN ... WAN

Du client serveur aux grilles de calcul et de donnes La technologie Myrinet Commutation de paquets Topologie trs souple Carte rseau muni d un processeur RISC pilotant plusieurs contrleurs DMA Local memory PCI bus PCI BRIDGE DMA controller Host interface

RISC processor Packet Interface network Du client serveur aux grilles de calcul et de donnes La technologie SCI rseau capacit dadressage adressage des mmoires distantes lecture/criture distante sans interrompre le processeur distant plus de ncessit de programmation par changes de messages

Topologie en grille Processus A Processus B PCI-SCI Espace d'adressage virtuel Bus PCI Interconnexion SCI PCI-SCI

Bus PCI Mmoire physique Espace d'adressage virtuel Du client serveur aux grilles de calcul et de donnes La technologie VIA Une interface logicielle dont lobjectif est de limiter les accs au systme et les copies de buffers. Peut tre implmente en hardware application donnes contrle

Standard industriel propos par Microsoft, Intel, Compaq. Aujourdhui par Dell, Intel, Compaq application Systme d exploitation VI contrle Systme d exploitation Contrleur rseau Contrleur rseau VIA Architecture TCP/IP

Architecture VIA donnes Du client serveur aux grilles de calcul et de donnes Les autres Memory channel : espace d adressage mmoire unique bonne latence passage l chelle par SMP donc limit

SupperHIPPI, FibreChannel, Infiniband, ATM, WDM, Quadrics, ... offre cluster balbutiante ou de luxe Du client serveur aux grilles de calcul et de donnes SCI : pour/contre espace d adressage mmoire unique latence/messages de petite taille manque de maturit monopolise le CPU quelle fiabilit en cas de panne d un nud

Myrinet : pour/contre Plus grande maturit intgrateurs en France bande passante Autant de MPI/drivers/firmware que de grappes Du client serveur aux grilles de calcul et de donnes Les autres possibles ServerNet II VIA orient haute disponibilit : contrle d erreurs en hardware, redondance

support de Compaq Giganet VIA disponible sur NT/linux dbit/messages de grande taille Mais quelle maturit ? Quel avenir pour VIA ? Du client serveur aux grilles de calcul et de donnes Les autres possibles

(Double) Fast Ethernet standard le moins cher Gigabit Ethernet standard, plusieurs fournisseurs de moins en moins cher switches 64 ports

Mais latence importante et trs forte utilisation du CPU (en attendant VIA et des cartes avec processeur) Du client serveur aux grilles de calcul et de donnes Lintgrateur/vendeur support scientifique support technique maintenance intgration hardware intgration software Minimum : intgration hardware et validation par dploiement du systme et de benchmarks Du client serveur aux grilles de calcul et de donnes Des options coteuses :

Racks contrle souhait (BIOS, wake on line, boot PXE, lien srie, ) concentrateurs d alimentation lectrique crans, switchs d cran ? disques locaux des serveurs supplmentaires : contrle, login, fichier, dveloppement, scheduler Du client serveur aux grilles de calcul et de donnes Les environnements htrognes Les environnements htrognes : dfinition Un environnement distribu htrogne est le regroupement de ressources informatiques (CPU, Disk, mmoire) dorigine, de taille et de type divers. Absence de rseau de communication spcifique Souvent appel le cluster du pauvre , la rcupration de ressources informatique inutilise, par exemple les stations de travail la nuit, pour former une machine multiprocesseurs virtuelle htrogne, est une

pratique courante des laboratoires Du client serveur aux grilles de calcul et de donnes Les environnements htrognes : Caractristiques Htrognit Rseaux (couches de communications multi-protocoles), processeurs, hirarchies mmoire profondes Systmes quilibrage des charges (ordonnancement) Distribution des donnes (statique et dynamique) valuation des performances, modlisation des architectures Simulation Du client serveur aux grilles de calcul et de donnes Les environnements htrognes : Problmatique spcifique Htrognit des performances :

Lhtrognit des performances induit davoir un modle de description des performances pour chaque architecture et des algorithmes dordonnancements ad hoc. Htrognit des systmes : Les machines peuvent tre sous Linux, Windows Perte de fiabilit : Les rseaux locaux sont moins fiables quun rseau ddi et les machines plus sujettes aux pannes. Perturbation par les utilisateurs Du client serveur aux grilles de calcul et de donnes Les centres de calcul une architecture pour le calcul intensif et le stockage de masse

: le centre de calcul de la Doua Du client serveur aux grilles de calcul et de donnes Centre de calcul de lIN2P3 IN2P3 : Institut National de la Physique Nuclaire et de la Physique des Particules Centre de calcul cre en 1986. Situ Lyon sur le campus de la DOUA 35 ingnieurs pour la conception, la mise en place et lexploitation de linfrastructure informatique Du client serveur aux grilles de calcul et de donnes Qui sont les utilisateurs ? 2500 utilisateurs rguliers issus de la physique des particules, nuclaire et astrophysique 50 expriences, dont :

- LHC : CERN Genve 3 Po/an partir de 2008 - D0 : FERMILAB Chicago 150 To/an - BABAR : SLAC en Californie 150 To/an Du client serveur aux grilles de calcul et de donnes Architecture Architecture distribue Stockage et calcul sont spars Rseau local Gbits Ethernet Du client serveur aux grilles de calcul et de donnes Cluster 1000 processeurs (90% Linux Redhat 7.2) 500 KSpecInt2000 (P3

1GHz = 400 SpecInt2000) Soumission de job : BQS Calcul parallle Du client serveur aux grilles de calcul et de donnes Stockage sur bande 6 silos grant 36000 cartouches 720 To avec cartouche 20 Go Donnes accessibles par HPSS Du client serveur aux grilles de calcul et de donnes

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 Du client serveur aux grilles de calcul et de donnes Rseau Hbergement dun nud Renater International NRI Trs bonne connectivit Domaine in2p3.fr

Du client serveur aux grilles de calcul et de donnes La bio-informatique au centre de calcul de la Doua Biomtrie volutive - CPU pour calcul darbre de philognie Prdiction de structure de protine - CPU pour comparaison de squences Aide au diagnostic pour dpistage cancer du sein - STOCKAGE des images et des mtadonnes Recherche des facteurs gntiques impliqus dans la polyarthrite rhumatode CPU pour identifier les rgions candidates - Du client serveur aux grilles de calcul et de donnes

Conclusion Le CC-IN2P3 est un centre multi-services : - Calcul, stockage de masse - Rseau haut-dbit, User Support - Service annexe : Hbergement de service web (SFP,), webcasting et visioconfrence Base de donne, informatique administrative (DSI du CNRS Du client serveur aux grilles de calcul et de donnes Les environnements de programmation parallle Logiciels gestionnaire de batch/ressources Compilateurs MPI, OpenMP : bibliothques outils de trace et de debug outils de dploiement et d administration

systmes de fichiers image unique de systme Du client serveur aux grilles de calcul et de donnes gestionnaire de batch/ressources gestionnaire de batch Logiciel coordonnant lactivit des nuds dune architecture distribue 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 Du client serveur aux grilles de calcul et de donnes Programmation parallle et rpartie Conception Modlisation Algorithmique Langage

Compilation Application Excution Gestion dactivits Communications Mise au point Rgulation de charge

Gestion de donnes Scurit Programme parallle Proc. 0 Proc. 1 Proc. 2 Proc. 3

Du client serveur aux grilles de calcul et de donnes Supports et environnements dexcution (1) Pour les utilisateurs et leurs applications Abstractions de haut niveau Portabilit Efficacit ! Applications Interface de programmation (API) Support dexcution Systmes dexploitation (OS)

Grappes, grilles, machines parallles, rseaux, Du client serveur aux grilles de calcul et de donnes Supports et environnements dexcution (2) Etendre et spcialiser les OS Centraliss et complts pour le distribu Nouveaux modles (tches, communication, fichiers,) Exemple: Stockage de fichiers, rplication, cache, Applications Interface de programmation (API) Support dexcution

Systmes dexploitation (OS) Grappes, grilles, machines parallles, rseaux Du client serveur aux grilles de calcul et de donnes Plan : Les paradigmes systmes distribus grande chelle et de grille LDAP Les systmes peer to peer Internet computing Metacomputing Grille de service Grille ASP Grille de calcul Grille de donnes Du client serveur aux grilles de calcul et de donnes Pourquoi vous parler de LDAP ? Des quon passe dune chelle locale une chelle plus large, apparat le besoin de centraliser les connaissances propos des ressources qui sont disposition

LDAP est un protocole standardis dannuaire, utilise 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) Du client serveur aux grilles de calcul et de donnes 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 1823 3 groupes de travail : LDAPEXT, LDUP, LSD Initialement: version light de DAP sur TCP/IP Evolution vers un service dannuaire complet communications serveur/serveur, scurit

Acceptation quasi globale comme protocole daccs un annuaire ... Du client serveur aux grilles de calcul et de donnes LDAP On parle dannuaire pour un systme dinformation permettant de stocker des donnes relativement statiques sur un grand nombre dentits (ressources, utilisateur) Structure arborescente Standard de communication pour linterrogation dun annuaire Implmentation : open LDAP, Active Directory Du client serveur aux grilles de calcul et de donnes Problmatiques Utilisateurs Comptes Privilges Profils Stratgies

Applications Configuration Scurit Paramtres Stratgies Donnes Messagerie Botes aux lettres Stratgies Carnets dadresses Postes Profils Rseau Stratgies Accs linformation ? Administration ? Annuaires Utilisateurs Postes Serveurs

Serveurs Profils Rseau Services Imprimantes Partages Stratgies Rseau Tlphonie Configuration QoS Scurit Firewall Configuration Scurit Internet Stratgie VPN Au sein des Fortune 500, il existe en moyenne plus de 150 rfrentiels stockant des donnes sur les composants du systme dinformation (source Gartner Group) Du client serveur aux grilles de calcul et de donnes

Rfrentiel de scurit unique Autorisation Intranet Authentification Kerberos Ressources Ressources Windows Windows 2000 2000 RADIUS X.509/PKI Tickets Kerberos

Active Directory Extranet Certificats Windows 2000 supporte plusieurs modles dauthentification et un modle dautorisation unique Active Directory fournit un point focal dadministration, des services de certificats et un serveur de cls Kerberos Facilite la liaison des Intranets & Extranets Du client serveur aux grilles de calcul et de donnes Administration des ressources Dlguer Dlguer ladministration ladministration des des utilisateurs utilisateurs au au Helpdesk Helpdesk Utilisateurs

Utilisateurs Finance Finance Domaine Domaine Machines Machines Donner Donner aux aux personnes personnes de de RH RH accs accs au au menu menu Modif Modif Salaire

Salaire de de lappli lappli de de gestion gestion des des ressources ressources humaines humaines Priphriques Priphriques Applications Applications RH RH Dployer Dployer lapplication lapplication Ressources Ressources

Humaines Humaines Du client serveur aux grilles de calcul et de donnes Disponibilit globale des donnes Seattle Trouver: Trouver: Tous Tous les les Dupont Dupont Rponse Rponse Domaine dentreprise Chicago Boston

Seattle Seattle Seattle Chicago Rplication Chicago Rplication Chicago Boston Boston Boston Rplique A

Rplique B Rplique C Chaque rplique stocke une copie des donnes du domaine Chaque rplique peut rsoudre une requte Support idal des donnes didentit des utilisateurs Du client serveur aux grilles de calcul et de donnes Intgration des applications Exchange: Exchange: stockage stockage des des informations informations de de B.A.L. B.A.L. de de lutilisateur lutilisateur

Domaine Domaine Utilisateurs Utilisateurs Finance Finance Machines Machines Priphriques Priphriques Applications Applications RH RH

Application Application RH: RH: Stockage Stockage du du profil profil mtier mtier de de lutilisateur lutilisateur Du client serveur aux grilles de calcul et de donnes Active Directory au cur de lentreprise Utilisateurs Informations compte Privilges Profils Stratgies Clients Profils de gestion

Infos rseau Stratgies Serveurs Profils de gestion Infos rseau Services Imprimantes Ressources partages Stratgies Point Central de Gestion Active Directory Utilisateurs & ressources Securit Dlgation Stratgie Du client serveur aux grilles de calcul et de donnes Services de lActive Directory Stockage hirarchique

des donnes Cration darborescences possible Sadapter la structure de lorganisation Modlisation des lments sous forme dobjets Ressources vues comme des objets Dots dattributs dfinis ds 1 Schma Interrogation souple Modes daccs aux donnes multiples Optimis pour traiter les requtes Contrle daccs volu et granulaire Scurisation au niveau des attributs Dlgation dadministration

Rplication multimatre Serveurs accessibles en lecture/criture Optimis pour un fonctionnement WAN Du client serveur aux grilles de calcul et de donnes Stockage hirarchique Domaine Domaine Utilisateurs Utilisateurs Marketing Marketing Machines Machines RH RH

Priphriques Priphriques Applications Applications = Organizational Unit = Objet Larborescence fournie un support pour modliser, chercher et administrer les informations au moyen de stratgies Du client serveur aux grilles de calcul et de donnes Modlisation sous forme dobjets Domaine Domaine Utilisateurs Utilisateurs

Machines Machines C C Marketing Marketing U U U U U U C C C C

Object Object Class: Class: User User Name: Name: Jean Jean Dupont Dupont Email: Email: [email protected] [email protected] Phone: Phone: 555-1234 555-1234 Priphriques Priphriques D D

D D D D Applications Applications A A A A A A Object Object Class: Class: Computer Computer

Name: Name: JEAND01 JEAND01 IP IP Address: Address: 12.34.56.78 12.34.56.78 OS: OS: Windows Windows 2000 2000 Du client serveur aux grilles de calcul et de donnes Mthodes daccs linformation LDAP Version 3 Standard de lindustrie des protocoles daccs aux annuaires Support natif Expose lensemble des fonctionnalits

Du client serveur aux grilles de calcul et de donnes Rplication Site de Seattle Site de Boston Limite du domaine DC 1 WAN DC 7 DC 3 DC 2 Ajout Ajout Utilisateur: Utilisateur: Bill

Bill DC 8 DC 4 DC 5 DC 9 DC 6 Site de Chicago Du client serveur aux grilles de calcul et de donnes LDAP Utilisation de LDP Du client serveur aux grilles de calcul et de donnes LDAP

Utilisation de LDP Du client serveur aux grilles de calcul et de donnes LDAP : quelques mots sur LDIF LDIF est le format le plus rpandu de stockage de LDAP. Format texte, assez lisible Autant de versions des objets prsents que dimplmentation de ldap. Du client serveur aux grilles de calcul et de donnes 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: [email protected] userPassword: janet Du client serveur aux grilles de calcul et de donnes 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 Du client serveur aux grilles de calcul et de donnes Cas pratique : utilisation de java pour lauthentification et lautorisation en Java avec JAAS Plan Les diffrents aspects de la scurit JAVA. volution de la scurit depuis JAVA 1.0 La protection de lutilisateur. La protection du systme (JAAS). Authentification

Autorisation tude dtaill Dmo Du client serveur aux grilles de calcul et de donnes La scurit JAVA. Aspect fondamentale, ds la premire version. Principe de Sand-Box.

volution => Granularit trs fine: Dfinition de stratgies de scurit. Du client serveur aux grilles de calcul et de donnes La scurit JAVA. Nouveaux dans JDK 1.4 : JCE 1.2 (Java Cryptography Extension). JSSE (Java Secure Socket Extension). JAAS (Java Authentification & Autorisation Service).

Du client serveur aux grilles de calcul et de donnes volution de la scurit JAVA JAVA 1.0 (1995) But : Protger lutilisateur du systme. Concernait principalement les applets. Apparition du principe SandBox . Un code non approuv est limit Pas daccs aux systmes de fichiers.

Pas daccs rseaux. Du client serveur aux grilles de calcul et de donnes volution de la scurit JAVA La SandBox 1.0 Du client serveur aux grilles de calcul et de donnes volution de la scurit JAVA JAVA 1.1 (1996) Raffinement du modle de SandBox. Possibilit de signer une applet.

Le code approuv possde alors les mme droits quun code local. Problme : Violation du principe du moindre privilge . Du client serveur aux grilles de calcul et de donnes volution de la scurit JAVA Du client serveur aux grilles de calcul et de donnes volution de la scurit JAVA JAVA 1.2 (1997) volution majeure en terme de scurit

Possibilit de dfinir une politique de scurit par lintermdiaire des fichiers policy . Du client serveur aux grilles de calcul et de donnes volution de la scurit JAVA Du client serveur aux grilles de calcul et de donnes La protection de lutilisateur Du client serveur aux grilles de calcul et de donnes La protection de lutilisateur Quelques exemples de tout cela : - Une applet critique excute localement fonctionne sans problme.

C:\> java WriteFileApplet Du client serveur aux grilles de calcul et de donnes La protection de lutilisateur Quelques exemples de tout cela : Une applet critique excute localement fonctionne sans problme. Si on ajoute un Security Manager , rien ne va plus. C:\>java -Djava.security.manager WriteFileApplet Du client serveur aux grilles de calcul et de donnes

La protection de lutilisateur Quelques exemples de tout cela : - Un outil permettant dcrire facilement des fichiers policy : Policytool.exe Du client serveur aux grilles de calcul et de donnes La protection de lutilisateur Quelques exemples de tout cela : Avec un fichier de configuration, le SecurityManager ne pose plus de problme. grant { permission java.io.FilePermission "<>", "write"; };

java -Djava.security.manager -Djava.security.policy=all.policy WriteFileApplet Du client serveur aux grilles de calcul et de donnes La protection de lutilisateur Quelques exemples de tout cela : Un dernier exemple avec un browser. Il est plus difficile de spcifier le fichier policy utiliser.. Du client serveur aux grilles de calcul et de donnes Java Authentification & Autorisation But :

Protger le systme de lutilisateur. Comment : Crer un objet partag par lauthentification et lautorisation. tendre le modle de scurit standard ( security policy) pour grer cet objet. Authentification Authentification Subject Subject Autorisation Autorisation Interactions

Du client serveur aux grilles de calcul et de donnes 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 acquire alors une identit virtuelle. 2. Autorisation 1. Il peut alors tenter dexcuter des actions critiques .

2. Ces actions sont soumises au systme de restrictions daccs. Du client serveur aux grilles de calcul et de donnes JAAS : Lauthentification Les classes importantes pour lidentification: Subject: Logincontext:

Fournit une API de base, permettant aux sujets de se connecter/dconnecter du systme. LoginModule: Reprsente un individu ou une organisation avec plusieurs identits de principal ; les dcisions en matires dautorisation sont prises en fonction dun sujet authentifi. Dfinit linterface que les fournisseurs de services dauthentifications qui supportent JAAS doivent implmenter. Configuration: Encapsule lentit utilise pour configurer une application avec des connexion particulirs. Du client serveur aux grilles de calcul et de donnes

JAAS : Lauthentification Les classes importantes pour lidentification: CallbackHandler: Callback: Dfinit linterface implmenter par les applications qui souhaitent autoriser le service dauthentification leur passer des informations. Dfinit une interface de marqueurs implmente par les objets qui sont passs une implmentation CallbackHandler. Lobjet Callback contient les donnes passer lapplication.

PrivilegedAction: Les actions critiques y sont stockes Du client serveur aux grilles de calcul et de donnes JAAS : Lauthentification (chronologie) LoginContext LoginContext Configuration Configuration Configuration.jaas (liste des modules new LoginContext( "Nom de configuration", MyCallbackHandler); Du client serveur aux grilles de calcul et de donnes

JAAS : Lauthentification (chronologie) LoginContext LoginContext Configuration Configuration Configuration.jaas (liste des modules) LoginModule LoginModule11 LoginModule LoginModule22 Du client serveur aux grilles de calcul et de donnes JAAS : Lauthentification (chronologie) LoginContext LoginContext

Configuration Configuration Configuration.jaas (liste des modules) Login( ) Login( ) Login( ) LoginModule LoginModule11 CallBackHandler CallBackHandler USER LoginModule LoginModule22

Du client serveur aux grilles de calcul et de donnes JAAS : Lauthentification (chronologie) LoginContext LoginContext Login( ) LoginModule LoginModule11 CallBackHandler CallBackHandler USER LoginModule LoginModule22 Subject Subject Droits.policy

Du client serveur aux grilles de calcul et de donnes JAAS : Lauthentification (chronologie) LoginContext LoginContext Login( ) LoginModule LoginModule11 CallBackHandler CallBackHandler USER LoginModule LoginModule22 Subject Subject DoAsPrivileged( )

PrivilegedAction PrivilegedAction Du client serveur aux grilles de calcul et de donnes Focus sur les CallbackHandler Le but de lauthentification est de crer un objet Subject . Pour communiquer, les objects utilisent des Callback. Ces Callback sont grs par les CallbackHandler. Du client serveur aux grilles de calcul et de donnes Focus sur les CallbackHandler - Le dialogue est dlgu : LoginContext LoginContext CallBack[] CallBack[] LoginModule

LoginModule CallbackHandler CallbackHandler USER USER Du client serveur aux grilles de calcul et de donnes Focus sur les CallbackHandler Les callback sont utiliss pour complter le Subject . LoginContext LoginContext Subject Subject GetSubject() LoginModule LoginModule CallbackHandler CallbackHandler

CallBack[] CallBack[] Du client serveur aux grilles de calcul et de donnes Focus sur les Callback Les differents types de Callbacks : Language Callback Name Callback Password Callback

TextInput Callback TextOutput Callback Choice Callback Confirmation Callback Du client serveur aux grilles de calcul et de donnes JAAS : Lauthentification Le fichier de configuration des modules de connexion: configuration.jaas

Nom de configuration { JndiLoginModule Krb5LoginModule NTLoginModule UnixLoginModule SampleLoginModule }; Autre type danalyse{ AnalyseRetineModule }; Requisite Sufficient Optional Optional Required debug=true; Required Du client serveur aux grilles de calcul et de donnes JAAS : Lauthentification

Les mots cls du fichier .jaas : Required : non bloquant Requisite : bloquant Sufficient : bloquant

Optional : non bloquant Du client serveur aux grilles de calcul et de donnes JAAS : Lauthentification Exemple : Module Criterion Pass/Fail SampleLoginModule Required OK

NTLoginModule Sufficient !OK SmartCard Requisite OK Kerberos Optional !OK Overall authentication

OK Du client serveur aux grilles de calcul et de donnes JAAS : Lauthentification Exemple : Module Criterion Pass/Fail SampleLoginModule Required !OK NTLoginModule

Sufficient OK SmartCard Requisite Kerberos Optional Overall authentication OK Du client serveur aux grilles de calcul et de donnes JAAS : Lauthentification Comment dfinir lemplacement du fichier .jaas ?

Ligne de commande : Java Djava.security.auth.login.config= Modification du fichier java.security : Login.config.url.1= Du client serveur aux grilles de calcul et de donnes JAAS : L autorisation Une fois lutilisateur reconnu...

JAAS tend le modle de scurit JAVA2. On dfinit donc une politique de scurit pour un utilisateur spcifique ou pour un domaine. Du client serveur aux grilles de calcul et de donnes 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";

}; Du client serveur aux grilles de calcul et de donnes JAAS : L autorisation Une fois identifi, le Subject utilise des PrivilegedAction . On lance le traitement avec la mthode static suivante : Static Subject.doAsPrivileged(SujetCourant s, PrivilegeAction x); Du client serveur aux grilles de calcul et de donnes 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; } } Du client serveur aux grilles de calcul et de donnes JAAS : L autorisation Comment dfinir la source du fichier .policy ? Ligne de commande : Java Djava.security.policy=

Modification du fichier java.security : auth.policy.url1= Du client serveur aux grilles de calcul et de donnes JAAS : Mise en place Mise en place dune authentification JAAS : Implmenter les interfaces suivants : CallBackHandler Handle()

LoginModule initialize() login() commit() Abort() Du client serveur aux grilles de calcul et de donnes JAAS : Mise en place Mise en place dune authentification JAAS :

Implmenter les interfaces suivants : Principal getName() PrivilegedAction run() Du client serveur aux grilles de calcul et de donnes Java Authentification & Autorisation O trouver JAAS ?

API dextension pour JAVA 1.3 Incorpor JAVA 1.4 Incorpor aux spcifications J2EE 1.3 Du client serveur aux grilles de calcul et de donnes Cas pratique : scuriser une application via JAAS par un LDAP 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.); } } Du client serveur aux grilles de calcul et de donnes

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 } Establish a context by which a user can be authenticated Argument references a line in a config file (later)

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.); } } Du client serveur aux grilles de calcul et de donnes 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 } Authenticate the user following steps in configuration file 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.); }

} Du client serveur aux grilles de calcul et de donnes 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.); 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 } } Du client serveur aux grilles de calcul et de donnes 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 Du client serveur aux grilles de calcul et de donnes 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

Du client serveur aux grilles de calcul et de donnes 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!) Du client serveur aux grilles de calcul et de donnes Cas pratique : Utilisation de LDAP pour une authentification/autorisation avec JAAS avec JBoss

Introduction aux Entreprise Java Beans Problme Construire des applications pour entreprises Sures Scurises Supportant la monte en charge (scalable) Disponibles

Favorisant la rutilisation Maintenables et extensibles Pour moins cher Du client serveur aux grilles de calcul et de donnes Moyen Utiliser une architecture distribue Plusieurs tiers Les clients (front end)

Les sources de donnes (back end) Un ou plusieurs tiers entre eux pour Implanter les nouveaux services Intgrer les diffrentes sources de donnes Masquer la complexit de lentreprise aux clients Du client serveur aux grilles de calcul et de donnes Architecture composants distribus Permettent la construction dapplications multi-tiers

Objectif Simplifier la cration dapplication base dobjets distribus. Promouvoir la programmation par composant pour le cot serveur Du client serveur aux grilles de calcul et de donnes Composant logiciel Doit permettre la construction de logiciel par composition Exporte des proprits et des mthodes Peut tre configur de faon externe

Un composant peut tre rutilisable diffrent degr Composants connus : COM/DCOM Java Beans Enterprise Java Beans Composants Corba Du client serveur aux grilles de calcul et de donnes Objet distribu (rmi)

Du client serveur aux grilles de calcul et de donnes 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 Du client serveur aux grilles de calcul et de donnes Middleware implicite Du client serveur aux grilles de calcul et de donnes Architecture multi-tiers Du client serveur aux grilles de calcul et de donnes

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 dploiement) Sun J2EE (spcification) OMG Corba (specification) et les composants Corba. Du client serveur aux grilles de calcul et de donnes J2EE Dfinit une architecture standard incluant Un modle de programmation (application multi-tiers, client lgers)

Une plate-forme (ensemble de spcifications et de politiques requises) Un ensemble de test de compatibilit Une implantation de rfrence Du client serveur aux grilles de calcul et de donnes Architecture dune application J2EE Du client serveur aux grilles de calcul et de donnes La plateforme J2EE EJB : dfinit la faon dont les composant doivent tre crit et le contrat quils

doivent respecter avec le serveur dapplication RMI : communication inter procds JNDI : service de nommage JDBC : connection vec les bases de donnes JTA : service de transaction JMS : service de messagerie

JSP : servlet et Java Server Page adapt la construction de composant rseau Java IDL : permet lintgration avec dautres langages (en particulier travers CORBA) JavaMail Connectors : intgration des systmes dinformation existant XML Du client serveur aux grilles de calcul et de donnes

Les technologies Du client serveur aux grilles de calcul et de donnes Enterprise Java Beans (EJB) Modle client/serveur distribu Code excut sur le serveur proche des donnes 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 rgles et fournissent des callbacks comme dfinis dans lenvironnement J2EE et les spcifications EJB. Du client serveur aux grilles de calcul et de donnes Container EJB Un container EJB est un environnement dexcution pour un composant EJB. Un EJB sexcute sur un container EJB. Un container EJB sexcute par un serveur dapplications et prend la responsabilit des problmes au niveau systme

Le container EJB gre le cycle de vie de lEJB. Le container EJB fournit aussi un nombre de services additionnels Gestion de la persistance Transactions Scurit Cadre de travail

Dimensionnement Portabilit Gestion des erreurs Du client serveur aux grilles de calcul et de donnes 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. Du client serveur aux grilles de calcul et de donnes 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 limite Du client serveur aux grilles de calcul et de donnes Structure EJB Interface home fournit un moyen pour le client EJB de rcuprer une instance dun EJB Interface distante expose les mthodes que le client EJB peut utiliser

Code EJB implmente linterface distante et linterface EJB appropri (SessionBean ou EntityBean par exemple) Du client serveur aux grilles de calcul et de donnes Les Enterprise JavaBeans Spcification dune architecture permettant la cration dapplications distribues 2 versions 1.1 : la plus courante

2.0 : la plus rcente Implantations de la spec : BEA WebLogic, Jonas, Borland Appserver, IBM Websphere, Jboss (open source) Composant dvelopp pour tre excut sur un serveur dEJB Ne pas confondre avec un java bean Du client serveur aux grilles de calcul et de donnes Objectifs des EJB Fournir une plate-forme standard pour la construction dapplications distribues en Java Simplifier lcriture de composants serveurs Portabilit

Considrer le dveloppement, le dploiement et lexcution des applications Du client serveur aux grilles de calcul et de donnes Division des responsabilits Le fournisseur de bean Produit les composants mtier Le fournisseur de conteneur EJB Fournit lenvironnement permettant lexcution des beans Le fournisseur de serveur EJB Fournit lenvironnement dexcution pour un ou plusieurs conteneurs

Lassembleur dapplication Le dployeur (installateur) Ladministrateur Du client serveur aux grilles de calcul et de donnes Les Enterprise Beans Composants qui peuvent tre dploys dans un environnement multi-tiers et distribu. Exposent une interface qui peut tre appel par ses clients Configurs de faon externe Linterface et limplantation du bean doivent tre conforme la spcification EJB Les clients peuvent tre Un servlet Une applet

Un autre bean Du client serveur aux grilles de calcul et de donnes Les types de Beans Session Beans : contiennent la logique mtier de lapplication Stateful session bean Stateless session bean Entity Beans : contiennent la logique de gestion des donnes persistantes Message bean : contiennent la logique oriente message

Du client serveur aux grilles de calcul et de donnes Session Bean Fournit un service un client Dure de vie limite celle du client Effectue des calculs ou des accs une base de donne Peut tre transactionnel Non recouvrable Peuvent tre sans tat ou conversationnel (stateless ou stateful) Du client serveur aux grilles de calcul et de donnes 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 mthode} public void removeBook(String title) throws BookException { } public Vector getContents() {} // methodes appeles par le conteneur public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext sc) {} } Du client serveur aux grilles de calcul et de donnes Linterface Linterface dcrit 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; } Du client serveur aux grilles de calcul et de donnes La factory Dfinit les mthodes permettant de crer, trouver et dtruire des objets EJB public interface CartHome extends EJBHome { Cart create(String person) throws RemoteException, CreateException; } Du client serveur aux grilles de calcul et de donnes Le descripteur de dploiement Fournit les informations ncessaires au dploiement dans le

conteneur et pour la configuration des intercepteurs CartEJB CartEJB CartHome Cart CartBean Stateful Container Du client serveur aux grilles de calcul et de donnes Dploiement (suite)

user CartEJB Remote getContents CartEJB Remote getContents Required Du client serveur aux grilles de calcul et de donnes

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 mthodes shoppingCart.addBook("The Martian Chronicles"); Vector bookList = new Vector(); bookList = shoppingCart.getContents(); shoppingCart.removeBook("Alice in Wonderland"); // suppression de lobjet session

shoppingCart.remove(); } Du client serveur aux grilles de calcul et de donnes Les entity beans Implantation dobjets mtiers persistants (client, compte,) Persistance gre par Les conteneurs (CMP) Le bean lui-mme (BMP) Le conteneur gre galement les transactions et la scurit pour le composant. Utile pour grer les accs concurrents des donnes persistantes.

Du client serveur aux grilles de calcul et de donnes Exemple dentity bean (CMP) // Mthodes requises par le conteneur public class BookEJB implements javax.ejb.EntityBean { public void ejbPostCreate(String _author,String _title) { } public String author; public void ejbRemove() { } public String titlel; public void ejbLoad() { } public int price; public void ejbStore() {}

private EntityContext context; public String getTitle() {return title;} public void setEntityContext(EntityContext context) { public String getAuthor() {return author;}; this.context = context;} public int getPrice() {return price;} public void setPrice(int _price) public void unsetEntityContext() { {price=_price;} context=null; } public String ejbCreate (String _author, String _title) throws CreateException { author=_author;

public void ejbActivate() { } title=_title; public void ejbPassivate() { } price=0; } return null; } Du client serveur aux grilles de calcul et de donnes 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; } Du client serveur aux grilles de calcul et de donnes 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; } Du client serveur aux grilles de calcul et de donnes

Le descripteur de lentity bean Book 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 Du client serveur aux grilles de calcul et de donnes Message Driven Bean (ejb2.0) Intgration des EJB et de JMS Interactions asynchrones Utilis pour ragir des messages JMS Stateless bean Une seule mthode dans linterface onMessage() Du client serveur aux grilles de calcul et de donnes 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 Du client serveur aux grilles de calcul et de donnes EJB Object Du client serveur aux grilles de calcul et de donnes Paquetage dapplication

Du client serveur aux grilles de calcul et de donnes Dploiement Cration dun paquetage contenant Les classes des beans Le fichier de description Les fichiers de configuration spcifique au serveur Dautres librairies Mise en place dans le serveur (outils spcifique ou

dploiement chaud) Du client serveur aux grilles de calcul et de donnes Intrt des EJB Simplicit de lcriture des composants Mais le design est plus complexe Portabilit des composants A lexception des adaptations des serveurs Rutilisation/Composition Il faut quand mme programmer Indpendance par rapport aux vendeurs

Du client serveur aux grilles de calcul et de donnes Bnfices dun serveur dEJB Gestion automatise des stocks de ressources Gestion automatise du cycles de vie des composants Gestion de la concurrence Scalabilit Fonctionnalits dclaratives Disponibilit et tolrance aux pannes Modle dobjet distribu Du client serveur aux grilles de calcul et de donnes Limites actuelles (variables selon les serveurs) Maturit de la spcification, des technologies, Moins vrai depuis la version 2.0 Performances ?

Environnements de dveloppement Complexit du design Exprience des dveloppeurs Du client serveur aux grilles de calcul et de donnes Bibliographie et sources des schmas 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 1999 www.theserverside.com java.sun.com/j2ee/tutorial www.jboss.org (serveur Open Source) Support de cours de Didier Donsez (universit de Valenciennes)

J2EE blueprints (java.sun.com) Mastering Enterprise JavaBeans II Ed Roman -(www.theserverside.com) Du client serveur aux grilles de calcul et de donnes Exemple dapplication J2EE Du client serveur aux grilles de calcul et de donnes 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

Du client serveur aux grilles de calcul et de donnes Jboss - serveur Du client serveur aux grilles de calcul et de donnes Cas pratique : Utilisation de LDAP pour une authentification/autorisation avec JAAS avec Tomcat Tomcat : prsentation Tomcat et les Servlets

Spcification J2EE Servlet, JSP JAX (JAX-P, JAX-B, JAX-R, JAX-RPC) JNDI, JMS EJB, JTA, JTS JavaMail, JDBC JMX, J2EE Connector, etc. Du client serveur aux grilles de calcul et de donnes Application multi-tiers Lapplication Web est dcompose en plusieurs parties (tiers) Du client serveur aux grilles de calcul et de donnes 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 Du client serveur aux grilles de calcul et de donnes Tomcat Tomcat 4.1 (Catalina) Projet Apache (Apache Apache Httpd) Open source Implantation de rfrence de la spcification Spcification Servlet 2.3 et JSP 1.2 (bientt Servlet 2.4 et JSP 2.0) Du client serveur aux grilles de calcul et de donnes Servlet & Conteneur Le conteneur de servlets associe des URLs virtuels une servlet

Browser HTTP Requte /admin/* servlet 1 /vignette/*.html Rponse /examples/*.html servlet 2 Conteneur de Servlets Du client serveur aux grilles de calcul et de donnes Rpertoire de Tomcat Organisation des rpertoires de Tomcat

scripts startup & shutdown /bin /common/lib /conf /logs /server/lib /shared/lib /webapps jar utiliss 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 dploiement Du client serveur aux grilles de calcul et de donnes Configuration Tomcat Le fichier server.xml

Server Racine, spcifie le port de shutdown. Service Associe des connecteurs un engine. Connector Ils correspondent un point daccs un service, soit via un serveur soit en connexion directe. Engine correspond au conteneur de servlet en lui-mme. Logger Ils effectuent la journalisation. Host Dclare o sont stockes les servlets pour un nom de machine. Context Chaque Context reprsente la configuration associe un chemin dans la hirarchie Du client serveur aux grilles de calcul et de donnes

Configuration Tomcat (2) port dcoute Un Connector point daccs utilisable par un client : port="8080" nombre de threads minimum minProcessors="5" maxProcessors="75" nombre de threads maximum enableLookups="true" acceptCount="100" DNS inverse connectionTimeout="20000" nombre de connections pendantes Le conteneur Engine

name="Standalone" defaultHost="localhost" Nom de lhost si pas HTTP 1.1 Du client serveur aux grilles de calcul et de donnes Configuration Tomcat (3) Le Logger effectue la journalisation des requtes prefix="catalina_log. " suffix=".txt" timestamp="true" Le tag Host dfinit les paramtres pour un host virtuel name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true" Du client serveur aux grilles de calcul et de donnes Configuration Tomcat (4) Gestion des associations entre un URI et un chemin sur le disque Un Context reprsente lassociation entre un chemin sur le serveur (URI) et un chemin sur le disque URI daccs path= "/examples" docBase="examples" Chemin daccs des fichiers reloadable="true" (relatif ou absolu par rapport webapps)

Dtection automatique des changements et rechargement si besoin Du client serveur aux grilles de calcul et de donnes Architecture dune appli Web Une application Web possde dans un repertoire lui-mme dans webapps une architecture spcifique *.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 rpertoire peut tre mis dans un war (Web Archive) grce la commande jar. Le war est automatiquement d-jarr sil est plac

dans le rpertoire webapps. Du client serveur aux grilles de calcul et de donnes Configuration dune appli Web Le fichier web.xml Mon application Web maServlet fr.umlv.myservlet.MaServlet nom de la servlet maServlet *.test

maServlet /toto URI daccs Du client serveur aux grilles de calcul et de donnes Configuration dune appli Web Paramtres dinitialisation dune servlet association name/value maServlet fr.umlv.myservlet.MaServlet parametre1 valeur1

parametre2 valeur2 Du client serveur aux grilles de calcul et de donnes 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 Du client serveur aux grilles de calcul et de donnes Cycle de vie dune servlet Le cycle de vie d'une servlet : 1. la mthode init() est appele aprs le chargement ; 2. une mthode service() est appele chaque requte dans une nouvelle thread. 3. la mthode destroy() est appele pour le dchargement.

La synchronisation est gre par lobjet Response Du client serveur aux grilles de calcul et de donnes HelloServlet La mthode service() est appele avec un objet requte et un objet rponse 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"; } } Information textuelle sur la servlet

Lobjet rponse permet dobtenir le flux de sortie en criture Du client serveur aux grilles de calcul et de donnes Linterface Request L'interface ServletRequest permet de rcuprer les paramtres de la requte : 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 serveur

Description du client Il est possible de rajouter des attributs (non HTTP) Du client serveur aux grilles de calcul et de donnes Linterface Response L'interface ServletResponse permet de renvoyer une rponse : public abstract void setContentLength(int length) public abstract void setContentType(String type) public abstract ServletOutputStream getOutputStream() throws IOException Taille de la rponse (peut tre omis) Type de contenu au format MIME Lobjet rponse permet dobtenir le flux de sortie en criture Du client serveur aux grilles de calcul et de donnes

Fichier de configuration Le fichier web.xml correspondant Appli de Demo Ceci est une srie de servlets de dmo hello fr.umlv.servletdemo.HelloServlet hello /hello.html Le / ici est par rapport lapplication Web

Du client serveur aux grilles de calcul et de donnes Hello World Le conteneur de servlets fait lassociation entre lURL et la servlet Du client serveur aux grilles de calcul et de donnes Hello World (2) Rpertoires sur le serveur Du client serveur aux grilles de calcul et de donnes Les servlets HTTP La mthode service de la classe HttpServlet est dj implante et redirige les requtes vers les mthodes do*

Les mthodes sont doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace protected void do*(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException Du client serveur aux grilles de calcul et de donnes HTTP HelloWorld HelloWorld rcrit 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() { Lobjet rponse permet dobtenir return "HTTP Hello World Servlet"; } le flux de sortie en criture Du client serveur aux grilles de calcul et de donnes Informations sur la requte protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain"); GET, POST, PUT etc. PrintWriter out= response.getWriter(); out.println("Protocol: " + request.getProtocol()); out.println("Scheme: " + request.getScheme()); out.println("ServerName: " + request.getServerName()); out.println("ServerPort: " + request.getServerPort()); Chemin virtuel complet out.println("RemoteAddr: " + request.getRemoteAddr()); out.println("RemoteHost: " + request.getRemoteHost()); out.println("Method: " + request.getMethod());

out.println("requestuestURI: " + request.getRequestURI()); Chemin de la servlet out.println("ServletPath: " + request.getServletPath()); out.println("PathInfo: " + request.getPathInfo()); out.println("PathTranslated: " + request.getPathTranslated()); Chemin de la out.println("QueryString: " + request.getQueryString()); out.println("RemoteUser: " + request.getRemoteUser()); ressource out.println("AuthType: " + request.getAuthType()); } Chemin sur le serveur Du client serveur aux grilles de calcul et de donnes Informations sur la requte (2) Dclaration de la servlet header Dfinition des servlets header fr.umlv.servletdemo.HeaderServlet

Chemin de la servlet ... header /header/* Dfinition des associations Du client serveur aux grilles de calcul et de donnes Informations sur la requte (3) URL complte Informations sur la requte Du client serveur aux grilles de calcul et de donnes

Enttes de la requte En-tte = Informations envoyes par le browser protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Ensemble des noms des enttes 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)); } } Valeur dun entte Du client serveur aux grilles de calcul et de donnes En-ttes de la requte

Enttes Informations sur la requte Du client serveur aux grilles de calcul et de donnes Rponse 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 Du client serveur aux grilles de calcul et de donnes Paramtres dinitialisation Les paramtres sont dclars dans le fichier web.xml initParam fr.umlv.servletdemo.InitParamServlet count 5 message hello config Du client serveur aux grilles de calcul et de donnes

Paramtres dinitialisation (2) Lobjet ServletConfig permet de rcuprer les paramtres 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

} Du client serveur aux grilles de calcul et de donnes Paramtres dinitialisation (3) Le destroy doit librer les ressources !! protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Stockage des paramtres } 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;

Libration des paramtres Du client serveur aux grilles de calcul et de donnes Les formulaires Deux mthodes de passage de paramtres : GET (dans lURL) POST (dans la requte HTTP) Gestion uniforme au niveau des servlets Du client serveur aux grilles de calcul et de donnes Les formulaires GET HTML pour la mthode GET

Titre :

Nom : Prnom :


Du client serveur aux grilles de calcul et de donnes Les formulaires GET (2) Utilisation des mthodes getParameter*() protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out= response.getWriter(); out.println(""); Ensemble des paramtres de la requte Enumeration e=request.getParameterNames();

for(;e.hasMoreElements();) { String name=(String)e.nextElement(); String value=request.getParameter(name); out.println(name+'='+value+"
"); } out.println(""); Valeurs dun paramtre de la requte } Du client serveur aux grilles de calcul et de donnes Les formulaires POST HTML pour la mthode POST

Titre :

Nom : Prnom :


Du client serveur aux grilles de calcul et de donnes Les formulaires POST (2) Utilisation des mthodes getParameter*() protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out= response.getWriter(); out.println(""); Ensemble des paramtres de la requte Enumeration e=request.getParameterNames();

for(;e.hasMoreElements();) { String name=(String)e.nextElement(); String value=request.getParameter(name); out.println(name+'='+value+"
"); } out.println(""); Valeurs dun paramtre de la requte } Du client serveur aux grilles de calcul et de donnes Inclusion & Redirection Linterface RequestDispatcher : - include(request,response) - forward(request,response)

Obtenir un RequestDispatcher : getServletContext().getRequestDispatcher(path) Chemin correspondant soit une servlet soit un fichier Du client serveur aux grilles de calcul et de donnes Inclusion & Redirection (2) La redirection nest pas visible au niveau du client protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { getServletContext().getRequestDispatcher("/index.html"). forward(request,response); fichier } Linclusion permet dinclure plusieurs fois des ressources protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { response.setContentType("text/html"); getServletContext().getRequestDispatcher("/hello.html"). include(request,response); getServletContext().getRequestDispatcher("/hello.html"). include(request,response); } servlet Du client serveur aux grilles de calcul et de donnes Inclusion & Redirection (3) Plusieurs problmes : Forward : - ne pas faire de setContentType() avant - ne rien faire aprs un forward sur le flux de sortie Inclusion : - eviter setContentType() aprs, - enlever les balises et

dans la ressource inclue Du client serveur aux grilles de calcul et de donnes Session Permettre de garder des informations dune requte lautre Problme : HTTP est un protocole sans tat Solutions : Authentification Session (Cookie, URL rewriting) Du client serveur aux grilles de calcul et de donnes Session (2) Lobjet HttpSession gre les sessions

Cr une session si non existante Cration : request.getSession() request.getSession(boolean create) Gestion dassociation cl/valeur : session.getAttributeNames() session.getAttribute(String name) session.setAttribute(String name, Object value) session.removeAttribute(String name) Destruction : session. invalidate() session. logout() Invalide toutes les sessions pour un client Du client serveur aux grilles de calcul et de donnes Session (3)

Ouverture et fermeture dune session Du client serveur aux grilles de calcul et de donnes Session (4) Requte GET sur la servlet protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintStream out = new PrintStream(response.getOutputStream()); out.println(""); HttpSession session=request.getSession(false); if (session!=null) { out.println("

Welcome "+session.getAttribute("username")+ ' '+session.getAttribute("firstname")+"


"); } getServletContext().getRequestDispatcher("/session-part.html"). include(request,response); out.println(""); }

Demande une session sans cration automatique Du client serveur aux grilles de calcul et de donnes Session (5) Requte 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 cration automatique

Du client serveur aux grilles de calcul et de donnes Authentification : les rles login-config: schma dauthentification security-role: rles de lappli Web BASIC univ-mlv Client Rle client Du client serveur aux grilles de calcul et de donnes Authentification : Tomcat Services dauthentification fournis : Fichier XML (tomcat-user.xml)

JDBC (base de donnes) LDAP Dfinition des rles Dfinition des utilisateurs Du client serveur aux grilles de calcul et de donnes Authentification : Servlet Linterface java.security.Principal correspond lutilisateur et ses diffrents rles public class Authentication2Servlet extends HttpServlet { protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { Nom de lutilisateur

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")); } } Lutilisateur possde-t-il le rle Regroupe un utilisateur et ses rles Du client serveur aux grilles de calcul et de donnes Authentification : Servlet (2) Authentification avant lappel la servlet Du client serveur aux grilles de calcul et de donnes Les filtres Requte Requte

Requte Rponse Rponse Rponse Filtre Filtre Servlet Hello World Hello World Filtr Du client serveur aux grilles de calcul et de donnes Les filtres Il est possible dajouter des filtres qui seront excuts avant les servlets footer

fr.umlv.servletdemo.FooterFilter footer /filter/* footer hello Filtre partir dun URL Filtre partir dune servlet Du client serveur aux grilles de calcul et de donnes 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("

"); Excut avant HttpServletResponseWrapper newResponse=new HttpServletResponseWrapper( (HttpServletResponse)response) { public void setContentType(String contentType) { } Appelle les autres filtres }; ou la servlet chain.doFilter(request,newResponse); // context.getRequestDispatcher("/footer.html").include(request,response); out.println("

"); } Excut aprs Du client serveur aux grilles de calcul et de donnes Administration de Tomcat

Tomcat possde un outil dadministration distance Pour lactiver il est ncessaire de rajouter un utilisateur ayant le rle admin Du client serveur aux grilles de calcul et de donnes Administration de Tomcat Mme informations que dans le fichier server.xml Du client serveur aux grilles de calcul et de donnes Ajouter un nouveau rle Cr un nouveau rle Sur les Rles Rle manager cr

Du client serveur aux grilles de calcul et de donnes Ajouter un rle un utilisateur Lutilisateur admin devient un manager de servlets Du client serveur aux grilles de calcul et de donnes Manager de Servlet Permet de deployer/ dmarrer/ arrter/ recharger des servlets Trois modes dexcutions : - dans une URL - dans le HTML - avec Ant

Reload dmand directement dans lURL Du client serveur aux grilles de calcul et de donnes Manager de Servlet Du client serveur aux grilles de calcul et de donnes 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 diffrent de la pile JAAS classique : union des droits, pas intersection Dans le server.xml :

Du client serveur aux grilles de calcul et de donnes Modles de dploiement des grilles : le modle distribu pair--pair Essentiellement utilis dans pour les grilles de stockage Ne pas tre vulnrable Pas dtat global Dcouverte des ressources par diffusion Exemples:

Gnutella, Freenet KaZaA, JXTA OceanStore FreeHaven PC PC PC PC Table des voisins : @IP 1 @IP 2 @IP x PC Diffusion Diffusion

Diffusion PC PC PC PC PC Table des voisins : @IP a @IP b @IP z Du client serveur aux grilles de calcul et de donnes Modle client/serveur pour les grilles de stockage : le cas Napster

Entre le client/serveur et le P2P Accs des donnes via un site unique contenant un index Stockage de donnes Partage des donnes Donnes inaltrables

Copies multiples sans aucun contrle Limites de lapproche Plutt du client/serveur que rellement du P2P Serveur vulnrable Par les tribunaux Ou par dautres Serveur Napster Association

Utilisateur A Napster (Client + Serveur) Utilisateur B Napster (Client + Serveur) Du client serveur aux grilles de calcul et de donnes Modle par annuaire OceanStore Annuaire distribu Pairs sur Internet Exemple de Napster Un seul serveur central

Liens statiques pairs-serveur Annuaire NomDeFichier <-> Pair Annonce de prsence Ressources locales Capacits de communication Charge en cours Serveur dannuaire www.napster.com Communication continue

Heartbeat Du client serveur aux grilles de calcul et de donnes Recherche dun fichier Le Pair A veut un fichier Requte au serveur central Pair A Une liste complte est aussi disponible Search *.mp3

Rponse du serveur Fichiers sur C et D Sassure que les machines sont actives Requte Rponse Pair C Pair D Du client serveur aux grilles de calcul et de donnes

Rcupration du fichier Connexion directe De A C Pair A Get *.mp3 Protocole de download direct Gestion derreurs triviale Pas de gestion des reprises Pas de hammering Demande

Download Pair C Une seule source Beaucoup mieux aujourdhui Kazaa, eDonkey2000, WinXP Pair D Du client serveur aux grilles de calcul et de donnes Modle par inondation Cest un modle isotropique Les pairs sont libres et gaux en dignit et en droit Chacun dispose de donnes locales

Aucune notion de rplication Chaque recherche repart de zro Diffusion en vague dune requte Du client serveur aux grilles de calcul et de donnes Gnutella Liste de pairs Locale chacun Quelques centaines

Evolutive En fonction dvnements divers Sessions permanentes Sur 5 9 pairs Routage des messages Continuel Du client serveur aux grilles de calcul et de donnes Gnutella : Les messages

Messages Ping Pong Rponse au ping IP/port du rceptionnaire attache File padding Query

Annonce de prsence Requte de recherche Vitesse minimum du rpondant QueryHits Rponse au message Query Nombre de fichiers en rponse avec leurs index Du client serveur aux grilles de calcul et de donnes Gnutella : Query Routage par broadcast contraint 1 Requte en vague (ou inondation)

Vers tous les voisins Chacun fait une recherche locale et relaie la requte tous ses voisins Les messages dj reus sont ignors 2 3 2

Evite les cycles Chaque message a un Time-To-Live 3 4 4 Du client serveur aux grilles de calcul et de donnes Gnutella : QueryHit Recherche locale Par chaque pair lors du Query Download 3

Relais inverse Adresse / Descripteur de fichier Rponses positives seulement Aggrgation des retours Padding ou stuffing 2 hit 1 Lmetteur original choisit un

fichier (et le pair associ) Le download se fait alors en direct Du client serveur aux grilles de calcul et de donnes Passage a lchelle de Gnutella Ca ne marchera jamais ! Au passage des 20 000 utilisateurs, croulement Observ en t 2000 Why Gnutella Can't Scale. No, Really. [Ritter2000] Les leons tires

Ncessit de modliser/simuler/muler Hubs BearShare SuperPeers permettant dtendre le systme Mais pas en O(log(N)) ! Du client serveur aux grilles de calcul et de donnes Modle client/serveur pour les grilles de calcul : lInternet Computing

Principe Des millions de PC en attente Rcupration des cycles processeurs inutiliss (environ 47% en moyenne dans une entreprise*) via un conomiseur dcran) Exemples (ce nest pas du P2P !) Dcrypthon

Recherche de signaux extra-terrestres 33,79 Teraflop/s ( comparer aux 12,3 Teraflop/s de lordinateur le plus puissant au monde au LLNL !) Etablir la carte des 500 000 protines du vivant RSA-155 Casser des codes cryptographiques * daprs une enqute dOmni Consulting Group Du client serveur aux grilles de calcul et de donnes Modle client/serveur pour les grilles de calcul : le metacomputing / ASP Client

Principe Acheter du service de calcul sur lInternet Service = applications pr-installes + calculateurs Requte S2 ! NINF (Univ. Tsukuba) DIET (ENS Lyon/INRIA) )

(C Netsolve (Univ. Tennessee) se A, B, C on p R Exemples AGENT(S)

Op(C, A, B) S1 Serveur S2 Serveur S3 Serveur S4 Serveur Du client serveur aux grilles de calcul et de donnes Plan : Architecture des grilles de calcul et de donnes Dfinition Vue gnrale : les principaux composants dune grille

Systme dinformation Gestion de ressources Scurit & Organisations virtuelles Environnement dune application Rseaux Du client serveur aux grilles de calcul et de donnes Dfinition Approche pour la distribution de la puissance lectrique = le rseaux lectrique et la haute-tension Du client serveur aux grilles de calcul et de donnes Dfinition Approche pour la distribution de la puissance informatique = le rseau Internet et la haute-performance (paralllisme et distribution) Du client serveur aux grilles de calcul et de donnes

Et ses diffrentes incarnations Du client serveur aux grilles de calcul et de donnes Vue gnrale : les principaux composants dune grille Dans tous les systmes dj prsents, certains besoins sont apparus : Systme dinformation : comment savoir quelles ressources sont disponibles ? Gestion des ressources : pourquoi et comment attribuer les ressources aux diffrentes applications Scurit : assurer authentification, confidentialit, non-rpudiation, autorisation, etc

Environnement dune application : comment assurer un ensemble de services des applications ? Du client serveur aux grilles de calcul et de donnes Architecture gnrale : vue logique Interface utilisateur Scurit Gestion de ressources Systme d'information Allocation S.I. chargement Publi

Htrognit C.M.P.P. DSM MPI Environnements de communication File System Stockage Transfert HD Migration des donnes Environnement dexcution Du client serveur aux grilles de calcul et de donnes Architecture gnrale : Dploiement possible Machines noyau

Machines ressources Chargement S.I. U.I e-Toile Publi Allocation C.M.P.P. Htrognit Du client serveur aux grilles de calcul et de donnes Architecture des grilles de calcul et de donnes : systmes dinformation Le besoin dinformations Systme dinformation point crucial pour les oprations

sur la grille et la construction dapplications Comment une application dtermine quelles ressources sont disponibles ? Quel est ltat de la grille Besoin dun systme dinformation gnral pour rpondre ces questions Du client serveur aux grilles de calcul et de donnes Quelques informations utiles Caractristiques dun serveur de calcul Adresse IP, logiciels disponibles, administrateur systme, connections aux rseaux, version dOS, charge

Caractristiques dun rseau Bande passante et latence, protocoles, topologie logique Caractristiques de linfrastructure logicielle gestionnaire de ressources, etc. Du client serveur aux grilles de calcul et de donnes Service dinformation Fournir un accs des informations statiques et dynamiques sur les composants Base pour la configuration et ladaptation de systmes dynamiques et htrognes Besoins et caractristiques Accs uniforme et flexible linformation

Accs efficace et extensible aux donnes dynamiques Accs des sources dinformations multiples Maintenance dcentralise Du client serveur aux grilles de calcul et de donnes Approche MDS Base sur LDAP Lightweight Directory Access Protocol v3 (LDAPv3)

Modle de donnes standard Protocole de requte standard Application Middleware API LDAP Schma spcifique Globus Reprsentation centre sur lhte GRIS

GIIS Outils spcifiques Globus GRIS, GIIS Dcouverte, publication de donnes SNMP NWS NIS LDAP Du client serveur aux grilles de calcul et de donnes

Le MDS Metacomputing Directory Service Annuaire de ressource de Globus Contient toutes les informations sur tous les nuds globus Consultable sur Internet http://www.globus.org/mds Distribu depuis la version 1.1.3 Permet de crer son propre sous-Globus Du client serveur aux grilles de calcul et de donnes Metacomputing directory service MDS Representation c=US

Ethernet sunny hot Carl WAN LAN Steve USC/ISI IBM SP Switch dark

o=globus LAN cold Ian Gregor Steve Warren ANL/MCS Structure physique o=USC o=ANL ou=ISI ou=MCS nn=WAN

nn=MCS-lan cn=Carl cn=Steve nn=SP-switch nn=SP-ether cn=Ian cn=Gregor cn=Steve cn=Warren hn=sp1.mcs.anl.gov hn=spN.mcs.anl.gov

Du client serveur aux grilles de calcul et de donnes Du client serveur aux grilles de calcul et de donnes Architecture des grilles de calcul et de donnes : gestion de ressources Gestion de ressources Un langage de spcification de ressources flexible qui fournit la puissance ncessaire pour exprimer les contraintes requises Des services pour la co-allocation de ressources, lorganisation dexcutables, laccs des donnes distantes et la gestion des flux dentres/sorties Intgration de ces services dans des outils de haut niveau Globus : MPICH-G: un MPI pour la grille

globus-job-*: commandes flexible dexcution distance Du client serveur aux grilles de calcul et de donnes 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 lhtrognit locale Une architecture en couche permet de dfinir des courtiers de ressources et des co-allocateurs spcifiques aux applications comme tant des services GRAM Du client serveur aux grilles de calcul et de donnes Modle dordonnancement GRAM supporte le modle suivant

suspendu actif termin chec Suspendu : ressources non encore alloues Actif : ressources alloues, excution en cours chec : terminaison prmature (erreur ou arrt) Termin : terminaison avec succs Du client serveur aux grilles de calcul et de donnes Composants GRAM Appels MDS pour localiser les ressources Client MDS: Grid Index Info Server

Appels MDS pour avoir des infos sur les ressources Appels GRAM pour requte dallocation de ressources et cration de processus. Globus Security Infrastructure Limite du site MDS: Grid Resource Info Server Requte sur ltat de la ressource Mise jour GRAM Local Resource Manager Requte

Cration Gatekeeper Allocation & cration des processus Job Manager Parse Bibliothque RSL Monitoring & contrle Processus Processus Processus Du client serveur aux grilles de calcul et de donnes Architecture de la gestion de ressources

spcialisation RSL Courtier RSL Requtes Application & Info Ground RSL Service dInformation Co-allocateur Simple ground RSL Gestionnaires de ressources locaux

GRAM GRAM GRAM LSF EASY-LL NQE Du client serveur aux grilles de calcul et de donnes Langage de spcification de ressource Notation commune pour lchange dinformation entre composants RSL fournit deux types dinformations : Besoins en ressources : type de machine, nombre de nuds, mmoire, etc.

Configuration dun job : Rpertoire, excutable, arguments, environnement API fournie pour manipuler RSL Du client serveur aux grilles de calcul et de donnes Syntaxe RSL Forme lmentaire : clauses parenthses (attribut op valeur [ valeur ] ) Oprateurs supports: <, <=, =, >=, > , != Quelques attributs supports :

excutable, arguments, environnement, stdin, stdout, stderr, resourceManagerContact, resourceManagerName Les attributs inconnus sont ignors Peut-tre grs par dautres outils Du client serveur aux grilles de calcul et de donnes Contraintes : & Par exemple : & (count>=5) (count<=10) (max_time=240) (memory>=64) (executable=myprog) Crer entre 5-10 instances de myprog, chacune sur une machine with ayant au moins 64 MB de mmoire et disponible pour moi pendant 4 heures

Du client serveur aux grilles de calcul et de donnes Multi-requtes : + Une multi-requte permet de spcifier plusieurs besoins de ressources, par exemple : + (& (count=5)(memory>=64) (executable=p1)) (&(network=atm) (executable=p2)) Excuter 5 instances de p1 sur une machine ayant au moins 64Mb de mmoire Excuter p2 sur une machine ayant une connexion ATM Multi-requtes sont le cur de la co-allocation Du client serveur aux grilles de calcul et de donnes GRAM

Globus Resource Allocation Manager Permet un programme dtre lanc sur des ressources distantes malgr lhtrognit locale Utilise le langage de spcification de ressources (RSL) Du client serveur aux grilles de calcul et de donnes DUROC Dynamically Updated Request Online Co-allocator Co-allocation : allocation simultane dun ensemble de ressources Base sur des prdictions concernant les nuds libres et la taille des files dattentes Du client serveur aux grilles de calcul et de donnes Architecture des grilles de calcul et de

donnes : scurit Mcanismes primitifs Sommaire Introduction Cryptographie Authentification Certification Microsoft .NET Passport Kerberos SSL Du client serveur aux grilles de calcul et de donnes Authentification & Application Introduction Apparition des systmes distribus Rseaux grande chelle prserver la confidentialit des donnes

prserver l'intgrit des donnes authentifier le correspondant Assurer la non-rpudiation Du client serveur aux grilles de calcul et de donnes Sommaire Introduction Cryptographie Authentification Certification Microsoft .NET Passport Kerberos SSL Du client serveur aux grilles de calcul et de donnes Cryptographie Dfinition Science du chiffrement

Meilleur moyen de protger une information = la rendre illisible ou incomprhensible Bases Une cl = chane de nombres binaires (0 et 1) Un Algorithme = fonction mathmatique qui va combiner la cl et le texte crypter pour rendre ce texte illisible Du client serveur aux grilles de calcul et de donnes Cryptographie Chiffrement Symtrique Une Cl Secrte (Unique) partage entre les 2 parties qui

sert pour le chiffrement et le dchiffrement du message Du client serveur aux grilles de calcul et de donnes Cryptographie Chiffrement Symtrique Algorithmes utilisant ce systme : DES (Data Encryption Standard, trs rpandu) : les donnes sont dcoupes en blocs de 64 bits et codes grce la cl secrte de 56 bits propre un couple dutilisateurs IDEA, RC2, RC4 Avantage : Rapide

Inconvnients : Il faut autant de paires de cls que de couples de correspondants La non-rpudiation nest pas assure. Mon correspondant possdant la mme cl que moi, il peut fabriquer un message en usurpant mon identit Transmission de cl Du client serveur aux grilles de calcul et de donnes Cryptographie Chiffrement Asymtrique

Cl publique Sert chiffrer le message Cl prive Sert dchiffrer le message Du client serveur aux grilles de calcul et de donnes Cryptographie Chiffrement Asymtrique Algorithmes utilisant ce systme : RSA (Rivest, Shamir, Adelman)

DSA ElGamal Diffie-Helmann Avantage : pas besoin de se transmettre les cls au dpart par un autre vecteur de transmission. Inconvnient : Lenteur

Du client serveur aux grilles de calcul et de donnes Cryptographie Combinaison des 2 Chiffrements Chiffrement symtrique Problmes dchanges de cls Chiffrement asymtrique Problme de lenteur combinaison des 2 = cl de session Du client serveur aux grilles de calcul et de donnes Sommaire Introduction

Cryptographie Authentification Certification Microsoft .NET Passport Kerberos SSL Du client serveur aux grilles de calcul et de donnes Authentification Dfinition 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 ? Du client serveur aux grilles de calcul et de donnes Authentification Technique dIdentification

Prouveur Celui qui sidentifie, qui prtend tre Vrifieur Fournisseur du service Challenge Le Vrifieur va lancer un challenge au prouveur que ce dernier doit raliser Du client serveur aux grilles de calcul et de donnes Technique A Cl Publique Principe Algorithme RSA = Rversible

((Mess)CPu)CPr = ((Mess)CPr)CPu Confidentialit Authentification Du client serveur aux grilles de calcul et de donnes Technique A Cl Publique Confidentialit Le Texte est totalement confidentiel car le destinataire est le seul a avoir la cl prive Du client serveur aux grilles de calcul et de donnes Technique A Cl Publique Authentification

On est sr de lidentit de lmetteur car il est le seul pouvoir chiffrer un message avec cette cl prive Du client serveur aux grilles de calcul et de donnes Technique A Cl Publique Protocole 1) F demande la Cl Publique de D 2) S envoie la Cl Publique de D F Serveur dauthentification Annuaire 3) F envoie le challenge D: Dcrypte mon message M1(If) et renvoie mon If pour me le prouver! 4) D dcrypte M1 et demande S la Cl Publique de F

(Cl Publiques de F & D) 5) S envoie la Cl Publique de F D 1 4 6) A son tour D envoie un challenge F: Dcrypte mon message M2(If, Id) et renvoie mon Id ! 5 2 3 M1 6 M2 7) F dcrypte M2 et renvoie M3(Id) D pour lui montrer quil y est

arriv 7 M3 F 8 D 8) F & D peuvent maintenant par ex senvoyer des messages en crant une Cl Prive partir de (If,Id) Du client serveur aux grilles de calcul et de donnes Technique A Cl Secrte Protocole de Needham Schroeder 1) F demande une Cl de Session

pour pouvoir parler avec D 2) S envoie F M1 crypt par la Cl Secrte de F: Serveur dauthentification Annuaire M1 = une Cl de Session CSfd en clair et une crypte par la Cl Secrte de D (CSfd)CPd (Cls Secrtes de F & D) 3) F envoie le challenge D: Dcrypte mon message M2((CSfd)CPd) et renvoie un Id crypt par CSfd 1 4) D dcrypte M2 et envoie son challenge : Dcrypte mon

message M3((Id)CSfd) et renvoie Id-1 2 M1 3 M2 5) F dcrypte M3 et renvoie M4((Id-1)CSfd) 4 M3 5 M4 6 F D 6) F & D peuvent donc senvoyer des messages avec la Cl de Session (MESSAGE)CSfd Du client serveur aux grilles de calcul et de donnes

Signature lectronique (1) Comment savoir que le message na pas t altr ? fonction de hachage algorithmes de hachage les plus utiliss: MD5 (128 bits) et SHA (160 bits) Du client serveur aux grilles de calcul et de donnes Signature lectronique (2) Pb du hachage : on est pas sur de lexpditeur Scellement des donnes Du client serveur aux grilles de calcul et de donnes Sommaire Introduction Cryptographie

Authentification Certification Microsoft .NET Passport Kerberos SSL Du client serveur aux grilles de calcul et de donnes Certification Principes Besoins Chiffrement asymtrique = bas sur la distribution de cls publiques (Annuaire) rien ne garantit que la cl est bien celle de l'utilisateur a qui elle est associe

Certificats Certificats Carte didentit lectronique, compose de la cl publique du porteur et dinformations relatives ce dernier. Dlivr par une autorit appele tiers de confiance, qui, par sa signature, en garantit lauthenticit. Du client serveur aux grilles de calcul et de donnes Certification Certificat X509 Du client serveur aux grilles de calcul et de donnes Certification Exemple Certificat X509

Du client serveur aux grilles de calcul et de donnes Certification PKI (Public Key Infrastructure) IGC (Infrastructure de Gestion de Cls) Systme permettant la gestion de cls de chiffrement et la dlivrance de certificats numriques Repose sur lutilisation de la cryptographie cl publique Du client serveur aux grilles de calcul et de donnes PKI - Organisation Du client serveur aux grilles de calcul et de donnes Sommaire Introduction Cryptographie Authentification

Certification Microsoft .NET Passport Kerberos SSL Du client serveur aux grilles de calcul et de donnes Microsoft .NET Passport service en ligne gratuit permet de se connecter (en toute scurit ?) n'importe quel service ou site Web Passport participant Utilisation dune adresse de messagerie et dun mot de passe unique Du client serveur aux grilles de calcul et de donnes Microsoft .NET Passport Contenu obligatoire

Email (nom dutilisateur) Mot de passe Contenu optionnel Phrase de rappel Cl de scurit Numro de mobile Date de naissance, coordonnes

Informations bancaires Du client serveur aux grilles de calcul et de donnes Microsoft .NET Passport Lutilisateur contacte un site P a rtic ip a tin g S ite B P a rtic ip a tin g P a rtic ip atin g S ite A S ite C In te rn e t

U se r P a ss p o rt (C o- B ra n d ed b y re f e rrin g site ) Lutilisateur est redirige sur le site PassPort Lutilisateur Sauthentifie et reoit un cookie chiffr LUtilisateur est redirig vers le premier site qui lit le cookie Lutilisateur reste authentifi pour tout autre site Du client serveur aux grilles de calcul et de donnes Sommaire

Introduction Cryptographie Authentification Certification PGP Microsoft .NET Passport Kerberos SSL Du client serveur aux grilles de calcul et de donnes Kerberos Introduction Conditions de fonctionnement Les serveurs ne font aucune confiance aux clients

Les clients naccordent quune confiance limite aux serveurs Authentification contrle par des serveurs spcialiss Du client serveur aux grilles de calcul et de donnes Kerberos Service dAuthentification Pr-requis Le serveur Kerberos dtient les mots de passe utilisateurs Le serveur dtient la cl prive du serveur de tickets

Le serveur de tickets dtient les cls privs de tous les serveurs Du client serveur aux grilles de calcul et de donnes Kerberos Lexique Ticket Caractrise une session entre un client C et un serveur S Tcs={S, C, adr, Td, dure, Kcs}Ks Adr : adresse IP du client Td : heure de dbut de session Dure : dure max de session

Kcs : cl de session partage par C et S Ks : cl permanente (secrte) de S Du client serveur aux grilles de calcul et de donnes Kerberos Lexique Authentifieur caractrise 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 Du client serveur aux grilles de calcul et de donnes Sommaire Introduction Cryptographie Authentification Certification PGP Microsoft .NET Passport Kerberos SSL Du client serveur aux grilles de calcul et de donnes SSL (Secure Sockets Layer) Dfinition

Couche de Sockets Scurise Protocole dchange de donnes au dessus de TCP/IP qui assure: Confidentialit des changes entre 2 applications Authentification des serveurs Indpendant du protocole Utilis (HTTP, FTP, ) Du client serveur aux grilles de calcul et de donnes SSL (Secure Sockets Layer) Principe

Utilise RSA (cl publique) pour schanger des cls DES (cl Secrte) Protocole de ngociation (choix cls) Protocole dchange (chiffr par DES) Authentifie un navigateur, pas une personne Compatibilit Presque Tous les Navigateurs

Affichage du cadenas en bas pour les sites Scuriss Un serveur scuris possde une URL commencant par https:// Du client serveur aux grilles de calcul et de donnes SSL Phase de Ngociation 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

Gnration des cls de session Technique cl publique vue prcdemment Cration des cls de session Fin de ngociation Client & serveur sont authentifis mutuellement Ils ont leurs cls secrtes pour la phase dchange Du client serveur aux grilles de calcul et de donnes mcanismes

Infrastructure de Gestion de Cls Infrastructure de Gestion des Privilges Dlgation Du client serveur aux grilles de calcul et de donnes Infrastructure de Gestion de Cls (1) Infrastructure de Gestion cls Publique (PKI) AE : Autorit dEnregistrement enregistre et vrifie les informations propres aux utilisateurs AC : Autorit de Certification dlivre les certificats aux utilisateurs

Annuaire de publication des certificats fournit les donnes de validation des certificats des utilisateurs politiques de certification Utilisation des Certificats X.509 cls publiques PKI (long time certificate) Certificat PKC: utilis pour mettre en place un service didentification des utilisateurs Protection des cls prives des utilisateurs (carte puce, ) validation et rvocation des certificats dauthentification (CRLs, ARLs, ..)

Du client serveur aux grilles de calcul et de donnes Authentification forte des utilisateurs (2) Certificat dauthentification pice didentit lectronique permettant lauthentification des utilisateurs Certificat dauthentification contient des informations prennes (dure de vie 1 2 ans) Format du certificat dauthentification RFC 2459, 3280 DN du sujet Nom distinct de lutilisateur DN de lmetteur Nom distinct de la communaut de lutilisateur

KeyUsage utilisation de la cl = authentification CertificatePolicies politique de certification Du client serveur aux grilles de calcul et de donnes Certificat dattributs Il est sign par une autorit dattributs qui nest pas ncessairement une autorit de certification Il ne permet pas didentifier un utilisateur ou un process Il spcifie les attributs dun utilisateur

Rle (objet (permission)*)* Il est associ un certificat dauthentification Unification des DN Du client serveur aux grilles de calcul et de donnes Infrastructure de gestion des privilges (1) PMI Composantes Autorit dAttribut (AA)

Source dAutorit (SOA) Vrificateur de privilges Dclarant de privilges Politique de privilges Du client serveur aux grilles de calcul et de donnes Infrastructure de gestion des privilges (2) Utilisation des certificats dauthentification dans PMI

Utilisation de lExtension SubjectDirectoryAttribute pour dfinir les attributs des utilisateurs dans leurs certificats dauthentification Dure de validit du certificat = dure de validit des attributs Rvocation des attributs Rvocation du certificat lauthentification Autorit dattribut (AA)= Autorit de gestion des certificats (AC) Du client serveur aux grilles de calcul et de donnes Infrastructure de gestion des privilges (3) Utilisation des certificats dattributs Dfinition X509 ISO IEC 9594-8 (cf aussi RFC 3281) les attributs sont des OID (rle, groupe, ACL)

dure de vie du certificat dattributs est diffrente du certificat dauthentification Verification le certificat dattribut est vrifi par un vrificateur qui peut un moniteur Droits et privilges non publis ( complter) Remonte dune chane de signature jusquau SOA Du client serveur aux grilles de calcul et de donnes

Dlgation Transfert d'un privilge d'une entit associ dtentrice vers une autre entit. Dlgation du droit dauthentification dun utilisateur par la cration de certificat proxy attributs associs au certificat proxy sont inclus dans les attributs associs au certificat PKC. Att PKC Att

Sign par Proxy Att Sign par Att proxy Att Du client serveur aux grilles de calcul et de donnes 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 diffrent du bi-cl du certificat utilisateur metteur le certificat proxy dauthentification trace (mmorise) lidentit de son metteur le certificat proxy contient une extension spcifique Extension ProxyCertInfo qui le distingue des autres certificats. Du client serveur aux grilles de calcul et de donnes Architecture de confiance Architecture de confiance

Architecture PKI Architecture PMI Association PKI et PMI Application Au Grid Du client serveur aux grilles de calcul et de donnes Architecture PKI Architecture PKI (1) Communaut Architecture PKI structure arborescente (1 communaut ) Gnration du certificat MTC Root pour toute la communaut

Gnration dun certificat AC dlgue pour chaque entit de la communaut Gnration des certificats des utilisateurs Validation dun certificat par la validation du chemin de certification menant au MTC LAR MTC LCR

CA 1 user 1 user 2 CA 2 user 3 user 4 Du client serveur aux grilles de calcul et de donnes Architecture PKI (2) Communaut Architecture PKI

structure arborescente LAR mme source de confiance pour tous les utilisateurs une gestion simplifie une infrastructure simple politique de certification commune MTC

LCR CA 1 user 1 user 2 CA 2 user 3 user 4 Du client serveur aux grilles de calcul et de donnes Architecture PKI (3)

MTC Architecture rseaux de PKI u 1 Plusieurs communauts Plusieurs MTC plusieurs politiques de certification Cross Certification

MTC Cross Certification mutuelle entre les communauts u 2 L A R CA 1 MTC u 1 LCR u2

CA 1 Critres de cross certification entre les communaut u 1 u2 CA 2 u3 u4 MTC des quivalences de politiques de certification

u 1 u 2 Du client serveur aux grilles de calcul et de donnes Architecture PKI (4) MTC Architecture rseaux de PKI

u 1 La complexit de larchitecture augmente avec le nombre des communauts Gestion de linfrastructure devient complexe Cross Certification MTC Chanes de certification complexe (multiples) L A

R CA 1 MTC u 1 LCR u2 CA 1 u 1 Problmes dinteroprabilit entre les PKI La validation des certificats devient plus complexe. u

2 u2 CA 2 u3 u4 MTC u 1 u 2 Du client serveur aux grilles de calcul et de donnes Architecture PKI (5)

Architecture Bridge CA Cration dune communaut virtuelle tablir des relations de Cross certification entre la communaut virtuelle et lensemble des communauts Simplification des itinraires de certification MTC MTC u

1 CA 1 u 1 u 2 Cross Certification u2 Communaut Virtuelle MTC u 1

L A R MTC LCR u 2 CA 1 u 1 u2 CA 2 u3

u4 Du client serveur aux grilles de calcul et de donnes Architecture PMI Architecture PMI Principe dArborescence PMI une Source dAutorit de confiance SOA plusieurs Autorits dAttributs AA

Certificats dAttributs signe par les AA la validation dun certificat dattribut par la validation du chemin menant au SOA SOA AA 1 A 1 AA 2 A 2 A

3 A 4 Du client serveur aux grilles de calcul et de donnes Association PKI et PMI Association PKI et PMI Architecture avec mme source de confiance pour les deux infrastructures PKI et PMI Indpendance des deux infrastructures PKI et PMI Du client serveur aux grilles de calcul et de donnes Architecture avec mme source de confiance PKI et PMI Origines de confiance des droits didentification et des privilges sont confondues : MTC = SOA

politiques de certification et politiques de privilge sont sous la responsabilit de la mme Autorit Compromission du MTC Compromission du SOA la validation des droits didentification et dattributs peut tre effectue par lensemble des composantes de linfrastructure (visibilit globale) La dlgation des droits dauthentification et des privilges des utilisateurs peut tre effectue dans lensemble de linfrastructure Du client serveur aux grilles de calcul et de donnes Architecture avec mme source de confiance PKI et PMI Fusion des architectures PKI et PMI

MTC SOA lautorit de certification est lautorit dattribut : les administrations des droits didentification et des attributs sont fusionns les Certificats PKC et Certificat dAttributs dun utilisateurs sont mis par la mme Autorit rvocation de lAC rvocation de AA AC 1 AA 1 U1 U2 AC 2

AA 2 A1 A2 A3 A4 U3 A1 U4 A2 A3 Du client serveur aux grilles de calcul et de donnes Architecture avec mme source de confiance PKI et PMI

Sparation de ladministration des droits dauthentification et dattribut MTC SOA lautorit de certification et lautorit dattribut sont indpendante ladministrateur de certification # administrateur des privilges

rvocation de lAC # rvocation de AA AC U1 AA U2 A1 An Du client serveur aux grilles de calcul et de donnes Architecture avec mme source de confiance PKI et PMI dlgation du droit de gnration des certificats

dattributs MTC SOA lautorit de certification et lautorit dattribut sont indpendante dlgation de lAA du droit de gnration des certificats dattributs lAC Dlgation AC AA U2

U1 A1 A2 Du client serveur aux grilles de calcul et de donnes Indpendance des Architectures PKI et PMI Origines de confiance des droits didentification et des privilges sont diffrentes: MTC # SOA Politiques de certification et politiques de privilge sont sous la responsabilit de plusieurs autorits diffrentes Compromission du MTC na aucune consquence sur le SOA et rciproquement La validation des droits didentification est globale PKI, la validation des certificats dattributs est locale PMI La dlgation des droits dauthentification peut se faire dans lensemble de linfrastructure PKI La dlgation dattributs ne peut pas tre effectue Du client serveur aux grilles de calcul et de donnes

Indpendance des Architectures PKI et PMI PKI Origine de confiance des droits didentification et des privilges sont spare MTC AC1 les autorits de certification et les autorits dattributs sont indpendantes les chemins de certification et dattributs sont indpendants PMI U1

SOA 1 PMI AA1 les rvocations des droits didentification est indpendante de la rvocation des privilges AC2 U2 U3 U4 SOA 2

AA2 AA3 A1 A2 A3 AA4 A4 A5 A6 A7 A8 Du client serveur aux grilles de calcul et de donnes

Grids Grid : Quelques caractristiques (1) Composant physique chaque organisation peut tre compose de plusieurs entits chaque organisation a un ensemble dutilisateurs chaque organisation possde le contrle total sur lattribution et la rvocation des droits didentification des utilisateurs (administration des droits I&A) chaque entit dune organisation possde un ensemble de ressources qui lui sont propres

chaque entit veut possde un contrle total sur lattribution et la rvocation des doits daccs (privilges) des utilisateurs ces ressources (administration des des droits daccs aux ressources) . Du client serveur aux grilles de calcul et de donnes Grid : Quelques caractristiques (2) utilisateurs un utilisateur appartient une seule organisation physique un utilisateur peut appartenir plusieurs entits physiques dune mme organisation physique

le droit dauthentification dun utilisateur lui est dlivr par une autorit de certification de son organisation un utilisateur bnficie de lensemble des privilges qui lui sont ncessaires pour effectuer ces tches dans son organisation les privilges dun utilisateur lui sont dlivrs par les administrateurs des droits daccs aux ressources de chaque entit de son organisation Du client serveur aux grilles de calcul et de donnes Grid : Quelques caractristiques (3) organisation virtuelle

une organisation virtuelle regroupe des utilisateurs de plusieurs organisations physiques afin deffectuer des travaux ncessitant laccs aux ressources de une ou plusieurs entits ; chaque entit appartient une organisation physique. Lutilisateur dune organisation virtuelle doit bnficier pour effectuer son travail des droits I&A dans plusieurs organisations physiques, et des droits daccs aux ressources dans plusieurs entits des organisations physiques Du client serveur aux grilles de calcul et de donnes Grid : Contraintes fonctionnelles I&A lI&A dun utilisateur dans une organisation virtuelle est effectue grce au droit dI&A qui lui ont t attribus par son organisation physique

au cours dune mme session un utilisateur dune organisation virtuelle na pas besoin de se re-authentifier chaque accs une organisation physique La protection des changes lectroniques entre lutilisateur et les entits ne ncessite pas la re-utilisation du droit dI&A de lutilisateur Du client serveur aux grilles de calcul et de donnes Grid : dfinitions Allocateur des ressources : dispositif permettant dallouer ..

Statique dynamique Moniteur : dispositif charg de contrler la lgitimit des tentatives d'accs des utilisateurs sur les ressources Base dinformations dattributs Chargeur : Du client serveur aux grilles de calcul et de donnes Architecture de scurit

Dfinir les objectifs de scurit I&A : Toutes les actions autorises sur le Grid ne peuvent tre excutes que par des utilisateurs dment authentifis Etc.. Droits daccs : Les utilisateurs authentifis peuvent accder uniquement aux ressources sur lesquelles ils bnficient dune autorisation. Etc.. Communication :

Lensembles des changes lectroniques doivent tre protger en intgrit et confidentialit Etc Audit Etc.. Du client serveur aux grilles de calcul et de donnes Dfinitions complmentaires Client proxy utilisateur : dispositif qui utilise un certificat proxy dlgu dun utilisateur pour effectuer des demandes de tche (ou job) un allocateur des ressources, ou un serveur proxy ressource Serveur proxy ressource : serveur proxy permettant dauthentifier les demandes daccs 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 cls publiques des utilisateurs Du client serveur aux grilles de calcul et de donnes Architecture de scurit : dlgation (1) tape 1 User tape 2 Serveur Serveur Serveur I&A Serveur I&A I&A

I&A Moniteur Client Client Proxy 1 Proxy 1 Client Client Proxy 1 Proxy 1 Authentification du user Gnration dun nouveau bi-cl Gnration dun certificat proxy dlgu par le user Lancement dun client proxy sur le poste du user requte dexcution dun job de luser Base dinformation

des attributs Allocateur Serveu Serveu r I&A r I&A Chargeur rception de la Requte dexcution du job par lallocateur Authentification mutuelle entre client proxy 1 et serveur I&A Demande de vrification des attributs du user au moniteur vrification des attributs du user par le moniteur (accs la base dinformation dattributs) rponse de vrification des attributs du user Demande de chargement des taches au chargeur Du client serveur aux grilles de calcul et de donnes Architecture de scurit : dlgation (2) tape 4

User tape 3 Serveur Serveur I&A I&A Moniteur Base dinformation des attributs Allocateur Client Client Proxy 1 Proxy 1

Rception de la demande de certificat dlgu Gnration dun certificat proxy dlgu 2 par le le client proxy 1 envoie du certificat proxy 2 Serveu Serveu r I&A r I&A Chargeur Client Client Proxy 2 Proxy 2 gnration dun certificat proxy 2 pour le lancement des taches sur les serveurs distants gnration dun nouveau bi-cl demande dun certificats proxy dlgu au client proxy 1 pour

effectue le lancement des taches distantes rception du certificat proxy 2 du client proxy 1 Lancement du client proxy 2 Du client serveur aux grilles de calcul et de donnes Architecture de scurit : dlgation (3) tape 6 tape 5 User Serveur Serveur I&A I&A Moniteur Base dinformation

des Attributs Tche Allocateur Client Client Proxy 1 Proxy 1 Serveu Serveu r I&A r I&A Chargeur Client Client Proxy 2 Proxy 2

demande de lancement dune tche distante Serveur Serveur Proxy Proxy Ressource Ressource rception de la demande de lancement de la tche authentification mutuelle entre client proxy 2 et serveur proxy ressource lancement de la tache Du client serveur aux grilles de calcul et de donnes Architecture de scurit : dlgation (4) User Serveur

Serveur I&A I&A Moniteur Base dinformation des Attributs Tche Allocateur Client Client Proxy 1 Proxy 1 Serveu Serveu r I&A r I&A

Chargeur Client Client Proxy 2 Proxy 2 Serveur Serveur Proxy Proxy Ressource Ressource Canal scuris TLS Du client serveur aux grilles de calcul et de donnes Architecture de scurit : dlgation (5) User

Serveur Serveur I&A I&A Moniteur Base dinformation des Attributs Tche Allocateur Client Client Proxy 1 Proxy 1 Serveu Serveu r I&A

r I&A Chargeur Serveur Serveur Proxy Proxy Ressource Ressource Client Client Proxy 2 Proxy 2 Client Client Proxy Proxy 3 3

Itinraire de dlgation des droits dauthentification de longueur 3 Serveur Serveur Proxy Proxy Ressource Ressource Liaison TLS Serveur Serveur Proxy Proxy Ressource Ressource Tche Tche

Tche Tche Du client serveur aux grilles de calcul et de donnes Architecture de scurit : dlgation (6) Organisation 1 Moniteur Serveur Serveur I&A I&A User Allocateur Client Client Proxy

Proxy 1 1 Serveur Serveur I&A I&A Base des Attributs Chargeur Client Client Proxy Proxy 2 2 Serveur Serveur

Proxy Proxy Tche Serveur Serveur Proxy Proxy Tche Client Client Proxy Proxy 3 3 Tche Serveur Serveur Proxy

Proxy Serveur Serveur Proxy Proxy Tche Tche Organisation 2 Client Client Proxy Proxy 3 3 Serveur Serveur Proxy

Proxy Serveur Serveur Proxy Proxy Tche Tche Serveur Serveur I&A I&A Chargeur Client Client Proxy Proxy 3 3

Allocateur Allocateur Tche Tche Base des Attributs Moniteur Serveur Serveur I&A I&A Moniteur Organisation 3

Client Client Proxy Proxy 2 2 Client Client Proxy Proxy 2 2 Serveur Serveur Proxy Proxy Tche Base des Attributs

Chargeur Serveur Serveur Proxy Proxy Tche Tche Tche Du client serveur aux grilles de calcul et de donnes Dispositifs de scurit PKI :

module CA (gnration de certificat PKC, rvocation, ), module RA module de publication PMI : modules AA (gnration des certificats dattributs, rvocation, ) module de publication Base dinformation de certification par exp : Annuaires LDAP Base dinformation dattribut par exp : Annuaires LDAP Moniteurs par exp : un vrificateur des certificats dattributs

Du client serveur aux grilles de calcul et de donnes Dispositifs de scurit Serveurs Proxy ressources : TLS (serveur) Module de lancement des proxy client Proxy client Module de gnration des bi-cls TLS dlgation protocol client (requte des certificats proxy)

Module de gnration des certificats proxy (pour dautres clients proxy) TLS dlgation protocol Serveur (rponse des demandes de certificats proxy) Du client serveur aux grilles de calcul et de donnes Environnement dune application Environnement des communications Problmes Support des architectures grilles Routage

Multiplexage Dynamicit Du client serveur aux grilles de calcul et de donnes Support grille Exploitation des Grappes de grappes Rseaux intra-grappes rapides Liens inter-grappes rapides

Htrognit au niveau rseau Rseau haute performance Rseau haut dbit Rseau haute performance Du client serveur aux grilles de calcul et de donnes Principe Canaux rels Lis un rseau

Ne couvrent pas ncessairement tous les noeuds Canaux virtuels Couvrent tous les noeuds Contiennent plusieurs canaux rels Virtuel SCI Myrinet Du client serveur aux grilles de calcul et de donnes Infrastructure Processus

Gestionnaire de communications Du client serveur aux grilles de calcul et de donnes Dynamicit Support darchitectures volutives Points cls Granularit Niveau processus Niveau grappes La dynamicit a un cot Scrutations supplmentaires

Prise en compte du changement de topologie La dynamicit est parfois impossible Interfaces de communication lanceur propritaire Interfaces sans primitives/potentiel de connexion dynamique Du client serveur aux grilles de calcul et de donnes Changement de topologie Propagation toute la configuration Serveur de gestion des communications

Processus applicatifs Deux consquences Vraisemblablement une synchronisation globale Impact fort sur lexcution Prise en charge dvnements asynchrones de la gestion des communications sur les nuds applicatifs Ncessit dun thread ddi Verrouillages dlicats

Du client serveur aux grilles de calcul et de donnes Changement de topologie Cas du routage multi-rseau Ncessit dun recalcul des routes Opration coteuse Problme pour les blocs de donnes en transit sur les passerelles Routage dynamique ? Ordre des messages Refaire IP ? Du client serveur aux grilles de calcul et de donnes

Conclusion support dynamicit Ralisable pour une dynamicit gros grain (grappes) pour une faible dynamicit au niveau processus Prohibitif pour une forte dynamicit au niveau processus Impossible Interfaces lanceurs spcifiques

Interfaces sans possibilits de connexions dynamiques MPI, BIP Du client serveur aux grilles de calcul et de donnes Plan : Perspectives pour les grilles de calcul et de donnes Perspectives Prochain standards Projets en cours Tendances actuelles Du client serveur aux grilles de calcul et de donnes MPICH-G - Description & Technologie MPICH est une implmentation libre et disponible du standard MPI qui peut sexcuter sur un large panel de

systmes. MPICH est driv de MPI et de Chameleon; Camlon parce que MPICH peut sexcuter sur un large panel denvironnements et aussi parce que limplmentation initiale de MPICH utilise le Chameleon message-passing portability system. Du client serveur aux grilles de calcul et de donnes Perspectives Prochains standards Une organisation, le Global Grid Forum, a t depuis quelques annes et dfini 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 dfinis actuellement ne seront pas les derniers. Du client serveur aux grilles de calcul et de donnes

Projets en cours Plusieurs projets de recherche en France via lAction Concert Incitative GRID Globalisation des Ressources Informatiques et des Donnes et en Europe via la PCRD. Le projet faisant suite DataGrid, dans loptique de lexploitation pour le LHC dune grille de donnes, vient de passer sa premire revue annuelle. Il compte 72 partenaires rpartis en Europe, industriels et scientifiques. Du client serveur aux grilles de calcul et de donnes Perspectives Les grilles gnriques, ddies a tout type dapplications, tendent disparatre pour tre remplacs par des projets communautaire, soit par spcialit (physique, biologie) soit par type dapplication (stockage de donnes grande chelle, calcul matriciel et algbre linaire. Les projets de grande ampleur semblent ralentir pour laisser la place aux grilles dentreprises.

Du client serveur aux grilles de calcul et de donnes Quelques mots sur ce cours/rfrences Ce cours ayant t prpar en peu de temps, lessentiel des transparents prsent ici proviennent dautres sources. Je prie les auteurs de me pardonner cet emprunt. Liste des auteurs/prsentations : Architectures de grappes de PC Philippe Augerat ID-IMAG Les architectures parallles et leur programmation pour le calcul scientifique Yves Denneulin GRAAL Algorithmique pour les plateformes distribues et htrognes LIP ENS Lyon INRIA Rhne-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 Du client serveur aux grilles de calcul et de donnes Liste des sources/auteurs (suite)

Bioinformatique distribue : 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 Rhne-AlpesLIP ENS Lyon, France S. Contassot, F. Lombard, J.-M. Nicod, L. Philippe LIFC Besanon, France Supports dexcution parallles et rpartis Raymond Namyst LaBRI Universit de Bordeaux I Jean-Franois Mhaut 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 Rpartie Tronc commun Module rseau Philippe Laleve IAAI 2004 tude de la paralllisation de mthodes heuristiques doptimisation combinatoire. Application au recalage dimages mdicales. LSIIT-ICPS Illkirch, le 11 dcembre 2001 Michel Salomon Du client serveur aux grilles de calcul et de donnes

Liste des sources/auteurs (fin ?) Et tout ceux que jai pu oublier Du client serveur aux grilles de calcul et de donnes Pour en savoir plus Applications scientifiques : http://public.eu-egee.org/ Architectures parallles : Algorithme et architecture parallles, Michel Cosnard, InterEdition. LDAP :

http://www.openldap.org/ (OpenLDAP) http://www.microsoft.com/windowsserver2003/technologies/directory/activedirectory/default.ms px (Active Directory) JBoss: http://www.jboss.org/ Tomcat : http://jakarta.apache.org/tomcat/ JAAS : http://java.sun.com/products/jaas/ Du client serveur aux grilles de calcul et de donnes

Annexe : scnario utilisateur Un scnario utilisateur : soumission d'application S.I.C. Application utilisateur Chargeur G.U.I.D.E. e-Toile Allocateur S.P.A.M. Globus Gram C.M.P.P. Du client serveur aux grilles de calcul et de donnes

Recently Viewed Presentations

  • Question 1: Richard has Spilled the juice glass and now he is ...

    Question 1: Richard has Spilled the juice glass and now he is ...

    Question 7.A company is firstly producing Penicillin G (R=H) is first protected as its silyl ester [R = Si(Me) 3] then reacted with phosphorusA pentachloride at -40oC to form the chlorimidate1 subsequent hydrolysis gives the desired 6-APA from which semi-synthetic...
  • Unit 2 The Atomic Model of Matter - Lundquist Labs

    Unit 2 The Atomic Model of Matter - Lundquist Labs

    Unit 2.1 Note Quiz Questions. 1. Describing Matter. Substance. has a definite composition (always the same) ... Dalton's Theory. Elements are atoms. Atoms of an element are the same* ... At the atomic level there is no solid. To test...
  • Welcome to Yr 7 - Osmund

    Welcome to Yr 7 - Osmund

    Skills of drawing, painting, observation, collage, printing, modelling and sculpture are practised using a variety of materials including paints, pastels, chalks, textiles and developed through the themes of Perspective, the human form and Australian Aboriginal design.
  • Victorian period - caldewlit.weebly.com

    Victorian period - caldewlit.weebly.com

    Literature in the Victorian era. Authors at the time…. Charles Dickens . Bronte Sisters. William Thackeray. Alfred Tennyson- poetry. Thomas Hardy. Algernon Swineburne . Victorian novels tend to be idealised portraits of difficult lives in which hard work, perseverance and...
  • Advanced Crew Served Weapons (ACSW) 2004 Small Arms

    Advanced Crew Served Weapons (ACSW) 2004 Small Arms

    Additionally, the ACSW tripod does not require sandbags for a stable firing position because of reduced recoil. Situation: Platoons of the UA continue combat operations in the GWOT. The Commander of the Unit of Employment ordered a deep penetration Air...
  • Dorothea Orem&#x27;s Self-Care Framework

    Dorothea Orem's Self-Care Framework

    Our group has chosen to analyze Dorothea Orem's Self-Care Framework, also known as the Self-Care Deficit Theory of Nursing. In today's world, people are living longer, becoming sicker and hospital stays are much shorter then they use to be.
  • OPEN ACCESS PUBLICATIONS WELCOME o Facilitator name  Position

    OPEN ACCESS PUBLICATIONS WELCOME o Facilitator name Position

    Contact info. Introduce. yourself and explain your role at the school. You may edit slide to insert name, position, contact info. If this is the first of a series of modules, spend a little bit of time giving overview of...
  • City_of_Austin_Agile_Experience

    City_of_Austin_Agile_Experience

    Moving parts with other projects. People still assigned to tasks. Estimated 52 weeks; completed in 48. WBS had 18 months. ... Still have governance debt of large waterfall projects. Projects going on hold, which throws off commitment . The Agile...