2A-SI Introduction à la distribution des traitements et des données Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1. Introduction à la distribution des traitements et des données 1.1 Systèmes d information 1.2 Evolution des architectures applicatives 1.3 Evolution des réseaux 1.4 Evolution vers les grilles informatiques 1.5 Evolution des modèles de programmation distribuée 1
Introduction «Systèmes d'information» Plan Applications Clients, Serveurs, Sécurité Gestion Plan Réseaux Routage, Contrôle, Supervision, Plan Infrastructures Supports de transmission, Coupleurs de lignes, 1. Introduction à la distribution des traitements et des données 1.1 Systèmes d information 1.2 Evolution des architectures applicatives 1.3 Evolution des réseaux 1.4 Evolution vers les grilles informatiques 1.5 Evolution des modèles de programmation distribuée 2
Introduction : architectures applicatives Niveaux d abstraction d une appli. Les 3 niveaux d'abstraction d'une application : Interface Homme-Machine Conversationnel, Transactionnel, Web-based Logique applicative Enchaînement des traitements Applications «métiers» Gestion des données Stockage et sauvegarde Entrepôt de données Introduction : architectures applicatives «Où» découper l application? Schéma du «Gartner Group» distribuée distante Gestion distribuée des données distribués Base de données distribuée et données distribués 3
Introduction : architectures applicatives Architecture Un Tiers 1ère architecture : Application sur site central Mainframe Terminaux simples Modèle ancien Solutions propriétaires IHM rudimentaires Introduction : architectures applicatives Architecture Un Tiers 2ième architecture : Distribution d'applications autonomes Micro ordinateurs (accès distant) Réseau local Serveur de fichiers Architecture plus récente Problèmes de mise à jour et de maintenance 4
Introduction : architectures applicatives Architecture Deux Tiers Autre appellation : Modèle "Client lourd" Micro ordinateurs Logique applicative SQL, RPC, etc. Réseau local Problèmes de mise à jour et de maintenance Trafic réseau SGBD (système de Gestion de Base de ) (requêtes, cohérence) Introduction : architectures applicatives Architecture Trois Tiers Autre appellation : Modèle "Client léger" Micro ordinateurs (Navigateur Web) SGBD (requêtes, cohérence) Réseau local SQL, RPC, etc. HTTP, CGI, Applets Serveur applicatif (Serveur Web) Logique applicative Bien adapté aux petits SI 5
Introduction : architectures applicatives Architectures 4/3 et N Tiers 4 tiers N tiers Terminaux Diversifiés Serveurs de présentation Serveurs applicatifs Serveurs De données «Anything Anytime Anywhere» Interfaces multiples Equilibrage de charge Applications verticales Applications horizontales SGBD Annuaires Sécurité Introduction : architectures applicatives Notion de Middleware (intergiciel) Des services disponibles Des facilités pour développer de nouveaux services Des facilités pour trouver et appeler des services Un support de communication entre services «de quoi développer facilement des applications distribuées!» Application cliente Application cliente Middleware Dialogue Client-Serveur Plan Réseaux Routage, Contrôle, Supervision, Plan Infrastructures Supports de transmission, Coupleurs de lignes, Service distant Service distant 6
Introduction : architectures applicatives Notion de Middleware (intergiciel) Standards CORBA, Common Object Request Broker Architecture J2EE, Java 2 Entreprise Edition Produits Microsoft.Net IBM Websphere Nouveau/Futur : Middleware de Grille (et de clusters) Globus Unicore 1. Introduction à la distribution des traitements et des données 1.1 Systèmes d information 1.2 Evolution des architectures applicatives 1.3 Evolution des réseaux 1.4 Evolution vers les grilles informatiques 1.5 Evolution des modèles de programmation distribuée 7
Introduction : évolution des réseaux Taxonomie des réseaux WAN Wide Area Networks Réseaux de transport des opérateurs de télécommunications Nationaux ou internationaux Réseaux d'accès («Boucle locale») Desserte des abonnés sur "le dernier kilomètre" (W)MAN (Wireless) Metropolitan Area Networks (W)LAN (Wireless) Local Area Networks Réseaux locaux d'entreprise Réseaux locaux industriels, "bus de terrain" Wireless LAN: WiFi Home networks (W)PAN (Wireless) Personal Area Networks Interconnexion d'équipements intelligents (GSM, PDA, etc.) Bluetooth Introduction : évolution des réseaux Contexte actuel WAN Boucle Locale LAN PAN Réseaux optiques DSL GSM, GPRS, UMTS Modems téléphoniques Bluetooth Ethernet Myrinet/InfiniBand clusters 50 K 100 K 1 M 10 M 100 M 1 G 10 G 1 T De nouveaux réseaux (Bluetooth, UMTS) Des évolutions (Ethernet, FastEthernet, GigabitEthernet) 8
Introduction : évolution des réseaux La commutation par paquet Commutation par circuits : - On établit un circuit entre A et B - Une fois établi, ils dialoguent sur ce circuit uniquement - naturel, très efficace si beaucoup de ressources, coûteux Commutation par paquets : - A et B s échangent des paquets d informations - Les paquets peuvent emprunter des chemins différents - Un même lien peut propager des paquets provenant de communications différentes, dans une même période - plus complexe, plus efficace en moyenne, moins coûteux Si «flux de données» avec contraintes de temps (voix, vidéo) la commutation par paquet est moins «adaptée» mais on fait avec! Introduction : évolution des réseaux 1980 : Apparition de la commutation par paquet Terminal simple Accès mode caractère Monovoie Bas débit Réseau téléphonique Terminal intelligent Accès mode paquet Monovoie ou multivoies Moyen débit Réseau téléphonique ou LS Réseau de transport Commutateur de rattachement Commutateur de transit Réseau d'accès "Boucle locale" Unité de traitement Accès mode paquet Multivoies Haut débit Ligne Louée 9
Introduction : évolution des réseaux 2000 : Commutation par paquet et accès Internet Ordinateur personnel + Modem Boucle locale : Réseau téléphonique, ADSL, etc. Point de présence Fournisseur d'accès INTERNET Réseau local Routeur Fournisseur de services 1. Introduction à la distribution des traitements et des données 1.1 Systèmes d information 1.2 Evolution des architectures applicatives 1.3 Evolution des réseaux 1.4 Evolution vers les grilles informatiques 1.5 Evolution des modèles de programmation distribuée 10
Introduction : évolution vers les grilles informatiques Analogie avec distrib. d électricité Ian Foster (Globus 1er middleware de grille) Infrastructure pour délivrer des capacités de calcul/stockage/ communication de façon transparente à l utilisateur, quand et où il les demande. Plus pragmatique : construire des communautés dynamiques (Virtual Organizations) et fournir à leurs membres l accès aux ressources partagées. Introduction : évolution vers les grilles informatiques Réalité invisible à l utilisateur L utilisateur ne perçoit pas l architecture sous-jacente de la grille (son middleware la masque). Où sont stockées mes données? Où sont lancés mes calculs? Ne pas s en soucier!! GRID L utilisateur se contente de soumettre des requêtes à la grille! 11
Introduction : évolution vers les grilles informatiques Système «pré-grille» CASA: Distribute large computations among several supercomputers linked with a Gigabit network (1990 1995) Deux sujets d étude : Impact des réseaux rapides longue distance sur le calcul intensif distribué. Algorithmes et implantations de calculs intensifs distribués. Introduction : évolution vers les grilles informatiques 1ère exp. de middleware de grille GUSTO: Globus Ubiquitous Supercomputing Testbed Organization (1995-2000) La plate-forme de test pour les 1 er prototypes de middleware de grille 125 sites, 23 pays. Un des plus grands systèmes de calcul distribué jamais construit 12
Introduction : évolution vers les grilles informatiques 1ère génération de grille d exploitation Data-GRID: Next generation of scientific exploration, with intensive computing and analysis of shared large scale datasets, across widely distributed scientific communities (2001-2003). Projet Européen : 15 pays d Europe 21 organisations 200 personnes 100 TBytes 1 PBytes Physique, biologie, sciences de l env. Bâti sur Globus-II Introduction : évolution vers les grilles informatiques 2 ième génération de grille d exploitation Open Science Grid: «A national production-quality grid computing infrastructure for large scale science» Permet à différentes communautés d utilisateurs de partager une grille d exploitation. VOs 13
Introduction : évolution vers les grilles informatiques 2 ième génération de Grille d exploitation «Une grille de production et de supercalculateurs, pour la recherche scientifique» S appuie sur des technologies Propriétaires (IBM), et sur le réseau public GEANT. 1. Introduction à la distribution des traitements et des données 1.1 Systèmes d information 1.2 Evolution des architectures applicatives 1.3 Evolution des réseaux 1.4 Evolution vers les grilles informatiques 1.5 Evolution des modèles de programmation distribuée 14
Introduction : évolution des modèles de programmation distribuée De plus en plus de confort! Poste client Système distribué de grande taille Service «FFT» Serveur «signal» «TabRes = FFT(TabVal)» 1 «Socket» : connect(«signal», #port) ; send(data); send(code op FFT); recv(res) 2 «RPC par serveur» : res = RPC_call(«signal», «FFT», data); 3 «RPC par service» : res = RPC_call(«FFT», data); «RPC par object» : res = LocalObjet.call(«FFT»,data); (RMI) 4 «RPC par service» ou «RPC par object» en environnement hétérogène! 5 «GridRPC»: RPC_call(«FFT», data); et le middleware choisit le serveur le plus adapté si plusieurs offrent le service «FFT» (le moins chargé, le plus fiable à ce moment de la journée, ), et relance un autre serveur en cas de défaillance du premier, et 15