Master Rseaux et Systmes Distribus RSD Algorithmique des
Master Réseaux et Systèmes Distribués (RSD) Algorithmique des systèmes et applications réparties Modélisation Conceptuelle des Systèmes Distribués Badr Benmammar badr. benmammar@gmail. com
Plan q Partie I : Systèmes distribués q Définition q Objectifs q Avantages q Inconvénients q Applications réparties q Partie II : Communication dans un système distribué q Manières de communication q Modèles de communication q Types de communication 2
Partie I : Systèmes distribués 3
Systèmes distribués q Système distribué en opposition à système centralisé (tout est localisé sur la même machine). q Définition 1 : ensemble d’ordinateurs indépendants qui apparaît à un utilisateur comme un système unique et cohérent. q Exemple Google : le plus grand parc de serveurs au monde avec environ 1 million de serveurs répartis sur environ 36 sites (soit près de 2 % du parc mondial). 4
Systèmes distribués q Définition 2 : ensemble d’entités logicielles communiquant entre-elles. q Entités logicielles s’exécutent sur des machines reliées entre elles par un réseau. q Exemple Skype, Viber, Whats. App : la téléphonie sur IP. 5
Objectifs d’un système distribué q Transparence (masquer la répartition) : q Localisation des ressources non perceptible. q URL www. google. com. q Duplication de ressources non visible. q Plusieurs éléments identiques pour résister à la montée en charge. q Deux serveurs de fichiers dupliqués, avec sauvegarde. q Sécurité : confidentialité, intégrité, . . q Tolérance aux pannes : permettant à un utilisateur de ne pas s’interrompre (ou même se rendre compte) à cause d’une panne d’une ressource. q Mise à l’échelle (scalability) : fonctionne efficacement dans différentes échelles : q Deux postes de travail et un serveur de fichiers. q Réseau local avec plusieurs centaines de postes de travail et serveurs de fichiers. q Plusieurs réseaux locaux reliés pour former Internet. q Ouverture : q Extensibilité (ajout/MAJ de composants sans en affecter les autres). q Flexibilité (facilité d’utilisation). 6
Avantages des systèmes distribués q Utiliser et partager des ressources distantes. q Imprimante : partagée entre toutes les machines. q Optimiser l’utilisation des ressources disponibles. q Calculs scientifiques distribués sur un ensemble de machines : les grilles informatiques. 7
Inconvénients/points faibles q Bien souvent, un élément est central au fonctionnement du système : serveur. q Si serveur plante : plus rien ne fonctionne. q Goulot potentiel d’étranglement si débit d’information très important. q Sans élément central : gestion du système totalement décentralisée et distribuée. q Nécessite la mise en place d’algorithmes +/- complexes. 8
Qu’est ce qu’une application répartie ? C sous Unix Application monolithique Une seul machine, même système et même langage de programmation Java sous Windows C++ sous Mac Application répartie q Il s’agit d’une application découpée en plusieurs unités. q Chaque unité est placée sur une machine différente. q Chaque unité peut s’exécuter sur un système différent. q Chaque unité peut être programmée dans un langage différent. 9
Partie II : Communication dans un système distribué 10
Communication dans un système distribué q Objectif : communiquer les éléments d’une application répartie. q 2 manières : q Bat niveau : directement en appelant les services des couches TCP ou UDP. q Exemple : utilisation des sockets. q Haut niveau : définition de couches offrant des services plus complexes. q Couche réalisée en s’appuyant sur les couches TCP/UDP. q Exemple : appel d’une méthode chez une entité distante. q RMI (Remote Method Invocation). q Notion de middleware (intergiciel). 11
Middleware (intergiciel) q Le terme middleware vient de l’anglais middle (du milieu) et software (logiciel). q Le middleware est une couche intermédiaire (couche logiciel) qui s’intercale entre l’infrastructure de communication d’un réseau et les éléments de l’application distribuée. Machine 1 Machine 2 Machine N Middleware Java C C++ Unix Windows Mac 12
Middleware : mécanisme de base q Les environnements répartis sont basés (pour la plupart) sur un mécanisme RPC (Remote Procedure Call) (Appel de procédure à distance). q Ce mécanisme fonctionne en mode requête / réponse. q Le client effectue une requête (demande un service ), q Le serveur traite la demande puis retourne une réponse au client serveur Emission d’une requête Traitement de la requête Renvoie d’une réponse 13
RPC : principe Programme principal (main) Proc. A() Proc. B() . . return Machine 1 Machine 2 Machine 3 14
Exemples de middleware q RPC (Remote Procedure Call). q Pas d’objets. q JAVA RMI (Remote Method invocation). q Solution purement java. q CORBA (Common Object Request Broker Architecture). q Langages de programmation distincts. q… 15
Modèles de communication q Les éléments distribués interagissent, communiquent entre eux selon plusieurs modèles possibles : q Client/Serveur. q Diffusion de messages. q Pair à pair (peer to peer). q Modèle à base de composants. q EJB (Enterprise Java. Beans). q Modèle à base d’agents mobiles. q Modèles à mémoires « virtuelles » partagées. q. 16
Client/Serveur q Modèle le plus répandu. q Interaction de type « 1 vers 1 » q 2 rôles distincts : q Client : demande que des requêtes ou des services lui soient rendus. q Serveur : répond aux requêtes des clients. q Liens forts entre le client et le serveur. q Interaction : q Message du client vers le serveur pour faire une requête. q Exécution d’un traitement par le serveur pour répondre à la requête. q Message du serveur vers le client avec le résultat de la requête. 17
Types de Client/Serveur q Client/Serveur traditionnel : q RPC (Remote procedure call). 18
Types de Client/Serveur q Client/Serveur traditionnel : q RPC (Remote procedure call). q Client/Serveur à objets : q RMI (Remote Method Invocation) : communique des objets java. q CORBA : n’importe quel langage. q … 19
Types de Client/Serveur q Client/Serveur traditionnel : q RPC (Remote procedure call). q Client/Serveur à objets : q RMI (Remote Method Invocation) : communique des objets java. q CORBA : n’importe quel langage. q … q Client/Serveur de données : q Requêtes SQL pour communiquer avec une base de donnée My. SQL par exemple. 20
Types de Client/Serveur q Client/Serveur traditionnel : q RPC (Remote procedure call). q Client/Serveur à objets : q RMI (Remote Method Invocation) : communique des objets java. q CORBA : n’importe quel langage. q … q Client/Serveur de données : q Requêtes SQL pour communiquer avec une base de donnée My. SQL par exemple. q Client/Serveur WEB : q Pages web statiques avec HTML. q Pages web dynamiques avec PHP. q Servlets (*. java) sont des classes Java exécutées par le serveur en réponse à une requête du client (en utilisant le protocole http). q JSP (Java. Server Pages) (*. jsp) représentant un code HTML dans lequel du code Java est appelé. RPC, RMI, CORBA, JSP. . : Modèles d’exécution pour le client / serveur 21
Exemple : Application web dans un environnement WAMP (Windows, Apache, My. SQL, PHP) Serveur Web : Apache (serveur HTTP) Page HTML avec du code PHP intégré HTML (1) : Demande de la page PHP (4) : Renvoi de la page HTML (2) : demande de l’aide au générateur de pages dynamiques Interpréteur PHP Poste Client Page HTML avec les résultats donnés par l’exécution du programme PHP HTML (3) : demande des données à la base de données : SQL My. SQL Serveur de base de données 22
Diffusion de messages (broadcast) q 2 rôles distincts : q Emetteur : envoie des messages (ou événements) à destination de tous les récepteurs. q Possibilité de préciser un sous-ensemble de récepteurs (multicast). q Récepteurs : reçoivent les messages envoyés. q Interaction : q Emetteur envoie un message. q Le middleware s’occupe de transmettre ce message à chaque récepteur. Multicast Broadcast q Modèle d’exécution : Message Oriented Middleware (MOM). q Package javax. jms permet d’implémenter une architecture de type MOM. q JMS : Java Message Service. 23
Diffusion de messages (broadcast) q Interaction de type « 1 vers N » . q 2 modes de réception : q Le récepteur va vérifier lui-même qu’il a reçu un message. q Boîte aux lettres. q Le récepteur est prévenu que le message est disponible et il lui est transmis. q Le facteur sonne à la porte pour remettre en main propre le courrier. q Particularités du modèle : q Dépendance plus faible entre les participants. q Pas besoin pour l’émetteur d’être directement connecté aux récepteurs ni même de savoir combien ils sont. 24
Modèle pair à pair (peer to peer / P 2 P) q Un seul rôle : pas de distinction entre les participants. q Chaque participant est connecté avec tous les participants d’un groupe et tout le monde effectue les mêmes types d’actions pour partager des données. q Exemples : q Modèles d’échanges de fichiers (e-mule, bit-torrent). q Avec parfois un mode hybride client/serveur – P 2 P. q Serveur sert à connaître la liste des fichiers et effectuer des recherches. q Le mode P 2 P est utilisé ensuite pour les transferts. q Chacun envoie une partie du fichier à d’autres participants. q Skype emploie une technique P 2 P Vo. IP (mélange de P 2 P et de Vo. IP (voix sur IP)) pour se connecter avec les autres utilisateurs de Skype. 25
Client/serveur vs P 2 P Servent est la contraction du mot serveur et client. Ce terme est souvent utilisé pour désigner les logiciels P 2 P. 26
Type de communication (synchrone/asynchrone) q Communication synchrone : même notion de temps, transmission instantanée. q Exemple : Socket TCP. 27
Type de communication (synchrone/asynchrone) Communication asynchrone q Exemple : Socket UDP. 28
- Slides: 28