IBD : Introduction aux systèmes distribués



Documents pareils
Introduction aux applications réparties

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

Le modèle client-serveur

Software Engineering and Middleware A Roadmap

CORBA haute performance

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

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

Introduction aux systèmes temps réel

Architectures n-tiers Intergiciels à objets et services web

Plan. Department of Informatics

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Messagerie asynchrone et Services Web

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

Mise en œuvre des serveurs d application

Cedric Dumoulin (C) The Java EE 7 Tutorial

La tête dans les nuages

GPC Computer Science

Le cadre des Web Services Partie 1 : Introduction

2 Chapitre 1 Introduction

Vulgarisation Java EE Java EE, c est quoi?

Remote Method Invocation en Java (RMI)

Introduction aux intergiciels

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

Architectures d'intégration de données

Introduction à la conception de systèmes d information

TD sur JMS ) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?

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

Systèmes Répartis. Pr. Slimane Bah, ing. PhD. Ecole Mohammadia d Ingénieurs. G. Informatique. Semaine Slimane.bah@emi.ac.ma

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

NFP111 Systèmes et Applications Réparties

Forthcoming Database

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

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

Architecture distribuée

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

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

Intergiciel - concepts de base

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Cours Bases de données

Serveur d'application à la juste taille

Les environnements de calcul distribué

Sécurité des entrepôts de données dans le Cloud Un SaaS pour le cryptage des données issues d un ETL

Architecture Orientée Service, JSON et API REST

Rapport d activité. Mathieu Souchaud Juin 2007

Introduction à la plateforme J2EE

Réseaux M2 CCI SIRR. Introduction / Généralités

VTP. LAN Switching and Wireless Chapitre 4

Java et les bases de données

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

LES APPROCHES CONCRÈTES POUR LE DÉPLOIEMENT D INFRASTRUCTURES CLOUD AVEC HDS & VMWARE

Infrastructures Parallèles de Calcul

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

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Introduction aux «Services Web»

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

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

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Consolidation. Grid Infrastructure avec la 11gR2

Le passage à l échelle de serveur J2EE : le cas des EJB

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

Nouvelles Plateformes Technologiques

NSY102. Conception de logiciels Intranet Introduction

Conception des systèmes répartis

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Description de la formation

Application Web et J2EE

<Insert Picture Here> Solaris pour la base de donnés Oracle

Service de Détection de Pannes avec SNMP

La virtualisation du poste de travail

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

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

+ = OpenStack Presentation. Raphaël Ferreira - enovance. Credits : Thanks to the OpenStack Guys 1

Le cloud,c est quoi au juste?

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Passage à l échelle d applications java distribuées auto-adaptatives

Module BDR Master d Informatique (SAR)

Hébergement MMI SEMESTRE 4

Transactionnel et transactionnel réparti. Source R.CHEVANCE G.Gardarin

Un exemple de cloud au LUPM : Stratuslab

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

Le Cloud: Mythe ou Réalité?

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

10. Base de données et Web. OlivierCuré

DG-ADAJ: Une plateforme Desktop Grid

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

OFFRE DE FORMATION L.M.D.

Cours 13. RAID et SAN. 2004, Marc-André Léger

Environnements de Développement

GEI 465 : Systèmes répartis

Fusion : l interopérabilité chez Oracle

Des solutions J2EE open source professionnelles adaptées à votre système d information d entreprise

Construire le Business Case lié à l automatisation du Cloud avec vcloud Suite

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

Architectures informatiques dans les nuages

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

Bases de données cours 1

Urbanisation des Systèmes d'information

Transcription:

IBD : Introduction aux systèmes distribués Vania Marangozova-Martin Université de Grenoble, LIG Vania.Marangozova-Martin@imag.fr Web Site: http://ibd.forge.imag.fr

Objectifs u Introduction aux systèmes distribués et aux intergiciels u Considérer les principes et les aspects pratiques des systèmes distribués et des intergiciels u Travailler avec des technologies actuelles : serveurs web, bases de données V. Marangozova-Martin IBD 2

Planning Semaine 1 S6 2 S7 S8 3 S9 4 S10 5 S11 6 S12 7 S13 8 S14 9 S15 S16 Mercredi 13:30-18:30 Introduc7on aux systèmes et intergiciels distribués (CM), V. Marangozova, 13:30-15:00 Introduc7on à JDBC (CM), C.Labbé, 15:15-16:45 Systèmes distribués à base de RMI (CM), V.Marangozova, 13:30-15:00 Systèmes distribués à base de RMI (TP), V.Marangozova et S. Gueye, 15:15-18:30 Interrup7on Systèmes web à base de servlets (CM), V.Marangozova, 13:30-15:00 Systèmes distribués à base de RMI (TP), V.Marangozova et S. Gueye, 15:15-18:30 Introduc7on aux transac7ons (CM), C. Labbé, 13:30-15:00 Systèmes distribués mul7-7ers (CM), V.Marangozova, 13:30-15:00 Systèmes distribués à base de servlets (TP), V.Marangozova et S. Gueye, 15:15-18:30 Présenta7on du projet (CM), V.Marangozova, 13:30-15:00 Systèmes distribués mul7-7ers (TP), V.Marangozova et S. Gueye, 15:15-18:30 Support projet (TP), V.Marangozova & S. Gueye & C.Labbé, 13:30-18:30 - Soutenances projet, V.Marangozova & S. Gueye & C.Labbé, 13:30-16:45 Interrup7on V. Marangozova-Martin IBD 3

Détails d organisation u Evaluation Note de travail pratique Démonstration et évaluation de projet Examen final u Page web ibd.forge.imag.fr V. Marangozova-Martin IBD 4

Contact u Systèmes distribués et intergiciels Vania Marangozova-Martin (@imag.fr) Maître de Conférences, Université de Grenoble Laboratoire LIG, équipe Nanosim u Aspects modélisations de données et transactions Cyril Labbé (@imag.fr) Maître de Conférences, Université de Grenoble Laboratoire, équipe SIGMA V. Marangozova-Martin IBD 5

Plan 1. Qu est-ce qu un système distribué Mécanismes de communication Services et interfaces Architecture client/serveur 2. Qu est-ce qu un intergiciel (middleware) 3. Références V. Marangozova-Martin IBD 6

Qu est-ce un système distribué? u A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable. Leslie Lamport, 1987. V. Marangozova-Martin IBD 7

Pourquoi la distribution? La répartition est un état de fait pour un nombre important de systèmes u Besoins propres des systèmes Intégration de parties existantes initialement séparées Intégration massive de ressources Grilles de calcul, cloud, data centres Nouveaux domaines d application de l informatique Intégration d objets du monde réel (informatique omniprésente, ubiquitous computing) Surveillance et commande d installations u Possibilités techniques Coût et performances des machines et des communications Interconnexion généralisée Informatique+télécom+TV Réseaux de capteurs V. Marangozova-Martin IBD 8

Caractéristiques des systèmes distribués u Définition d un système distribué Ensemble composé d éléments reliés par un système de communication; les éléments ont des fonctions de traitement (processeurs); de stockage (mémoire), de relation avec le monde extérieur (capteurs, actionneurs) Les différents éléments du système ne fonctionnent pas indépendamment mais collaborent à une ou plusieurs tâches communes. V. Marangozova-Martin IBD 9

Caractéristiques des systèmes distribués (2) u Propriétés souhaitées Le système doit pouvoir fonctionner (au moins de façon dégradée) même en cas de défaillance de certains de ses éléments Le systèmes doit pouvoir résister à des perturbations du système de communication (perte de messages, déconnexion, performances dégradées) Le système doit pouvoir résister à des attaques contre sa sécurité (violation de confidentialité, de l intégrité, usage indu de ressources, déni de service) V. Marangozova-Martin IBD 10

Schéma d un système réparti Machine 1 Données Machine 2 Données Entité d exécution Entité d exécution Système de communication V. Marangozova-Martin IBD 11

Mécanismes de communication u Communication directe (synchrone) Programme à programme Ex. Appel de fonction à distance Programme à base de données E.g. Transactions distribuées (banque) u Communication indirecte (asynchrone) Communication par messages V. Marangozova-Martin IBD 12

Mécanismes de communication (2) u Appel de fonction à distance (ex. Application web) Machine 1 Entité d exécution (processus 1) Serveur Web (e.g. Apache) Machine 2 Entité d exécution (processus 2) 2. exécution de la fonction 3. 1. réponse demande Système de communication V. Marangozova-Martin IBD 13

Mécanismes de communication (3) u Transactions distribuées (ex. serveur de base de données) Machine 1 Entité d exécution (processus 1) DBMS (ex. Oracle) Machine 2 Entité d exécution (processus 2) 2. travail sur données 3. 1. réponse demande BD Système de communication V. Marangozova-Martin IBD 14

Mécanismes de communication (4) u Communication par messages (e.g. a chat system) Machine 1 Machine 2 Exec. Entité 1 Exec. Entité 2 Message-oriented middleware (e.g. JMS) M4 M3 M2 M1 put put message message M3 M4 Système de comm get message M1 V. Marangozova-Martin IBD 15

Plan 1. Qu est-ce qu un système distribué Mécanismes de communication Services et interfaces Architecture client/serveur 2. Qu est-ce qu un intergiciel (middleware) 3. Références V. Marangozova-Martin IBD 16

Services et interfaces u Définition de service Un système informatique est composé d éléments logiciels et matériels Chaque élément fournit un service A service is a contractually defined behavior that can be implemented and provided by any component for use by another component, based solely on the contract, Bieber el. al., Service oriented programming, http://www.openwings.org/ u Définition d interface Un service est accessible via une ou plusieurs interfaces Une interface définit les interactions possibles entre un fournisseur de service et un client V. Marangozova-Martin IBD 17

Interfaces (1/2) contrat conformité Fournisseur de service Client V. Marangozova-Martin IBD 18

Interfaces (2/2) u Un service dépend de deux interfaces Une interface requise (point de vue client) Interface fournie (point de vue serveur) u Le contrat Le contrat spécifie la conformité entre les deux interfaces Le client et le serveurs sont considérés être des boîtes noires i.e. leurs fonctionnements/implémentations ne sont pas connus. Ils peuvent donc évoluer tant que le contrat est respecté u Le contrat peut également spécifier des aspects qui ne sont pas liés aux interfaces Propriétés extra-fonctionnelles qui sont liées à la QoS V. Marangozova-Martin IBD 19

Qq exemples d interfaces importantes dans les systèmes informatiques application interface middleware interface (e.g. Java RMI) OS interface (e.g. Posix) machine interface (e.g. IA32) operating system machine application middleware communication system transport interface (e.g. TCP) physical interface (e.g. Ethernet) physical communication link V. Marangozova-Martin IBD 20

Plan 1. Qu est-ce qu un système distribué Mécanismes de communication Services et interfaces Architecture client/serveur 2. Qu est-ce qu un intergiciel (middleware) 3. Références V. Marangozova-Martin IBD 21

Architecture client/serveur (1) u Définitions L architecture client/serveur est un modèle d interaction Le serveur fourni un service Le client demande le service Dans la plupart des cas le client et le serveur sont déployées sur deux machines différentes (ce n est toutefois pas obligatoire) Exemples: RPC, Java RMI, Web Services, etc. machine 1 machine 2 1. demande 2. traitement client 3. réponse serveur communication V. Marangozova-Martin IBD 22

Architecture client/serveur (2) machine 1 1. demande machine 2 2. traitement client 3. réponse serveur u u u communication Message de demande Envoyé par le client au serveur Spécifie le service demandé (le serveur peut fournir plusieurs services) Contient les paramètres pour le service Message de retour Envoyé par le serveur au client Contient le résultat d exécution ou une erreur La communication est synchrone Le client se bloque en attendant la réponse du serveur V. Marangozova-Martin IBD 23

Architecture client/serveur (3) u Avantages Structuration Séparation entre la spécification d un service et son implémentation Par conséquent, les implémentations peuvent changer tant que la même interface est utilisée Protection/sécurité Le client et le serveur s exécutent dans des domaines différents (domaine = espace mémoire, droits, protection ) Gestion de ressources Un serveur peut (et souvent est) être partagé par plusieurs clients V. Marangozova-Martin IBD 24

Architecture client/serveur (4) u Serveur partagé Point de vue client demande client réponse serveur Point de vue serveur Choisir parmi les demandes client Gestion de requêtes (séquentielle ou parallèle) server demandes client file des demandes sélection demande traitement demande réponses serveur V. Marangozova-Martin IBD 25

Architecture client/serveur (5) u Choix de la requête client = ordonnancement Choix d une requête en attente Traitement Retour du résultat u Stratégies d ordonnancement First-In First-Out (FIFO) Le plus court d abord Priorités V. Marangozova-Martin IBD 26

Architecture client/serveur (6) u Traitement des requêtes Le client et le serveur sont deux exécutions indépendantes Pendant que le client est bloqué en attendant la réponse du serveur Le serveur peut traiter plusieurs requêtes en parallèle vrai parallélisme (e.g. multiprocessors, I/O) pseudo-parallélisme Implémentation avec Plusieurs processus ou plusieurs threads V. Marangozova-Martin IBD 27

Architecture client/serveur (7) u Gestion de ressources chez le serveur avec processus unique while (true) { } receive(client_id,message); extract(message, service_id, params); results = do_service(service_id, params); send(client_id, results); server client requests request queue request selection request processing server response V. Marangozova-Martin IBD 28

Architecture client/serveur (8) u Gestion de ressources chez le serveur avec plusieurs processus while (true) { } receive(client_id,message); extract(message, service_id, params); thr = create_thread(client_id, service_id,params); server Program executed by thread thr: results = do_service( service_id, params); send(client_id, results); exit client requests main thread request queue request selection worker thread request processing response V. Marangozova-Martin IBD 29

Architecture client/serveur (9) u Gestion de ressources chez le serveur avec un pool de processus while (true) { } receive(client_id,message); extract(message, service_id, params); work_to_do.put(client_id, service_id,params); Pool of processes: while (true) { } work_to_do.get( client_id, service_id, params); results = do_service( service_id, params); send(client_id, results); V. Marangozova-Martin IBD 30

Architecture client/serveur (10) u Gestion de ressources chez le serveur avec un pool de processus server client requests main thread request queue request selection work_to_do worker thread worker thread request worker request processing thread processing request processing response V. Marangozova-Martin IBD 31

Architecture client/serveur (11) u Utilisation de l architecture client/serveur Avec des opération de bas niveau Se basant sur des fonctions du système de communication Exemple: Sockets TCP, connected mode UDP, unconnected mode Avec des opérations de haut niveau En utilisant un intergiciel Exemple: RMI (Remote Method Invocation) dans OO V. Marangozova-Martin IBD 32

Plan 1. Qu est-ce qu un système distribué Mécanismes de communication Services et interfaces Architecture client/serveur 2. Qu est-ce qu un intergiciel (middleware) 3. Références V. Marangozova-Martin IBD 33

Intergiciel application application middleware middleware operating system communication system operating system machine physical communication link machine V. Marangozova-Martin IBD 34

Les fonctions principales d un intergiciel u Cacher la distribution u Cacher l hétérogénéité des ressources matérielles et logicielles u Fournir des services communs utiles Réutilisables u Fournir une interface (API) de haut niveau pour la programmation d applications V. Marangozova-Martin IBD 35

Intergiciels distribués u L objectif est de simplifier le développement de systèmes distribués Implémentation, évolution and reutilisation de code applicatif Portabilité entre plate-formes Interoperabilité entre applications/plates-formes hétérogènes V. Marangozova-Martin IBD 36

Exemples d intergiciels u Sun JVM u CORBA u Microsoft.NET u Sun J2EE / EJB u OpenStack u V. Marangozova-Martin IBD 37

Types de systèmes distribués u Systèmes de traitement u Systèmes d information u Systèmes V. Marangozova-Martin IBD 38

Systèmes distribués de calcul u u u u u Objectif Calcul distribué à bonne (haute) performances Calcul sur grappe (cluster computing) Plusieurs machines interconnectées par LAN Homogènes = même OS, hardware Noeud de gestion centralisé Calcul sur grille (grid) Hétérogénéité Echelle Dispersion géographique Nuage (cloud) Applications Streaming Services Web Calcul scientifique Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5 V. Marangozova-Martin IBD 39

Systèmes d information u Objectif Fournir l accès aux données distribuées u Mise en place Transactions ACID propriétés u Applications Streaming E-Commerce M. van Steen, Lecture on Distributed Systems, Chapter 1, http://www.cs.vu.nl/~steen/ V. Marangozova-Martin IBD 40

Systèmes omniprésents u Objectif Accès à des données partagées depuis n importe où u Mise en place Support des changements de contexte, de la mobilité Architecture ad-hoc u Applications Domotique Santé (suivi médical automatisé) V. Marangozova-Martin IBD 41

Références u Chris Britton, Peter Bye. IT Architectures and Middleware: Strategies for Building Large, Integrated Systems (2nd Edition). Addison-Wesley, 2004. u George Coulouris, Jean Dollimore, Tim Kindberg. Distributed Systems: Concepts and Design (4th Edition). Addison Wesley, 2005. u Arno Puder, Kay Römer, Frank Pilhofer. Distributed Systems Architecture: A Middleware Approach. Morgan Kaufmann, 2005. u Andrew S. Tanenbaum, Maarten van Steen. Distributed Systems: Principles and Paradigms (2nd Edition). Prentice Hall, 2006. u This lecture is partly based on lectures given by Sacha Krakowiak, http://proton.inrialpes.fr/people/krakowia/ V. Marangozova-Martin IBD 42

Planning Semaine 1 S6 2 S7 S8 3 S9 4 S10 5 S11 6 S12 7 S13 8 S14 9 S15 S16 Mercredi 13:30-18:30 Introduc7on aux systèmes et intergiciels distribués (CM), V. Marangozova, 13:30-15:00 Introduc)on à JDBC (CM), C.Labbé, 15:15-16:45 Systèmes distribués à base de RMI (CM), V.Marangozova, 13:30-15:00 Systèmes distribués à base de RMI (TP), V.Marangozova et S. Gueye, 15:15-18:30 Interrup7on Systèmes web à base de servlets (CM), V.Marangozova, 13:30-15:00 Systèmes distribués à base de RMI (TP), V.Marangozova et S. Gueye, 15:15-18:30 Introduc7on aux transac7ons (CM), C. Labbé, 13:30-15:00 Systèmes distribués mul7-7ers (CM), V.Marangozova, 13:30-15:00 Systèmes distribués à base de servlets (TP), V.Marangozova et S. Gueye, 15:15-18:30 Présenta7on du projet (CM), V.Marangozova, 13:30-15:00 Systèmes distribués mul7-7ers (TP), V.Marangozova et S. Gueye, 15:15-18:30 Support projet (TP), V.Marangozova & S. Gueye & C.Labbé, 13:30-18:30 - Soutenances projet, V.Marangozova & S. Gueye & C.Labbé, 13:30-16:45 Interrup7on V. Marangozova-Martin IBD 43