760 likes | 914 Views
Systèmes Distribués. Philippe Truillet IRIT/ CENA http://www.tls.cena.fr/~truillet. Plan. Rappel : Modèle OSI de l’ISO Modèle Client-Serveur Ex : protocole http Systèmes Distribués COM, CORBA, RMI, Ivy. Définitions.
E N D
Systèmes Distribués Philippe Truillet IRIT/ CENA http://www.tls.cena.fr/~truillet
Plan • Rappel : Modèle OSI de l’ISO • Modèle Client-Serveur • Ex : protocole http • Systèmes Distribués • COM, CORBA, RMI, Ivy
Définitions Open Systems Interconnexion de l’International Standardization Organisation Système ouvert : se dit d’un système informatique qui désire échanger des données avec un autre
Qui, Quoi, Pourquoi ? Émanation de l’ Union Internationale des Télécommunications ISO
Principes de normalisation • Constructeur > équipement > fonctions • publications de travaux • norme “de fait” • proposition des travaux pour une normalisation ([inter]nationale) • modifications mineures spécifications normalisées
Qui, Quoi, Pourquoi ? Modèle normalisé pour faciliter les échanges de données entre systèmes ouverts
Qui, Quoi, Pourquoi ? • norme de structure (nombre de couches, rôles, …) • norme de services (fonctions rendues) • normes protocolaires Avis (recommandations) de l’UIT ou de l’ISO (ex : X.224, ISO 8073)
Qui, Quoi, Pourquoi ? Expliquer simplement, logiquement, de manière structurée comment les échanges de données peuvent s’effectuer entre systèmes ouverts à travers un réseau Modèle OSI º Boîte à outils
slip chaussettes maillot de corps chemise pantalon pull chaussures L’analogie sol
Le Modèle OSI Processus applicatif Nom Niveau Rôle Services Protocoles Couche 7 Couche 6 Couche 5 Couche 4 Couche 3 Couche 2 Couche 1 Ligne de transmission
Comment ça marche ? Principe de l’encapsulation des données Exemple :
Les couches du modèle • Couches hautes (5 à 7) • interfaces utilisateur, niveau stations émettrices et réceptrices • Couches intermédiaires (3, 4) • recherche d’un chemin, fiabilité du chemin • Couches basses (1, 2) : normes associées aux réseaux locaux
Circulation verticale des données Chaque couche s’interface avec les couches adjacentes • une couche N-1 rend des services à la couche N (ex : la couche 3 rend un service d’acheminement des paquets dans le réseau à la couche 4)
Protocol Data Unit
Couche 1 : physique Acheminer les bits sur un support de transmission physique • mise du signal en série • synchronisation du signal • gestion du dialogue entre DCE et DTE • adaptation du signal au support
Ethernet IEEE 802.3 • écoute du média • attente éventuelle tant que le média n’est pas libre • émission délai entre les trames : 96 bits-time (pour un débit de 10 Mb/s, bit-time = 0,1 micro-seconde)
Ethernet 802.3 : collision utilisation d’un Transceiver • détection de la collision • arrêt de l’émission • attente • émission
Couche 2 : liaison de données Assurer le transfert de blocs de données entre équipements directement connectés avec un taux d’erreur résiduel négligeable • formatage d’une trame • assurance de la transparence du protocole • contrôle des erreurs de transmission • gestion du dialogue
Couche 2 : liaison Chaque réseau (Ethernet, …) est une solution particulière au problème de l’accès au média Réseau 802.2 LLC MAC 802.3 802.4 802.5 X3T9.5 Physique
Couche 2 : liaison • Ethernet (CSMA/CD) IEEE 802.3 • Token Bus IEEE 802.4 • Token Ring IEEE 802.5 • FDDI ANSI X3T9.5 Modèle 802.x : scinde la couche en 2 : • LLC (Logical Link Control) • MAC (Medium Access Control)
Couche 2 : liaison • LLC (IEEE 802.2) : interface homogène • MAC : gère et attribue à chaque instant le droit de parole
Couche 3 : Réseau Offrir les moyens d’accéder à un réseau et les procédures pour acheminer les données • établissement d’une connexion • gestion d’un format d’adresse • gestion de la fragmentation • gestion des priorités d’acheminement
Couche 3 : Réseau • Datagramme : paquets indépendants • Circuit virtuel : chemin unique le choix a des conséquences sur la couche 4 (ordonnancement des paquets) ex : X.25 : mode connecté, circuits virtuels IP : datagramme non connecté
Couche 4 : Transport Assurer le contrôle de bout en bout à travers les réseaux empruntés • connexions entre processus • contrôle de flux
Couche 4 : Transport • Transport des messages de bout en bout • modes connectés / non connectés • Complément de service / aux couches 1, 2 et 3 (classes 0 à 4) • niveaux de services (0 : simple ; 4 : sophistiqué)
Multiplexage Contrôle de flux Fragmentation Assemblage Reprise sur erreur signalée Couche 4 : Transport 0 2 1, 2, 3 : réseau fiable et sans erreur 4 : réseau peu fiable 1 Multiplexage 3 4 Reprise sur erreur non signalée
Couche 5 : Session Gérer le dialogue entre entités applicatives • gestion du dialogue • synchronisation du dialogue
Couche 5 : Session • Initialisation de la communication : ouverture session • transfert données • fermeture session è RPC (Remote Procedure Call) ç couche souvent absente
Couche 6 : Présentation Assurer l’adaptation des données entre les systèmes hétérogènes — Gérer la représentation des données • négociation de la syntaxe de transfert • confidentialité
Couche 6 : Présentation • Représentation des données ASN.1 (Abstract Syntax Notation 1) • Compression en pratique, au niveau des couches 2, 3, 4 • Sécurité, Confidentialité DES (Data Encryption Standard) couche souvent absente ou peu importante
Couche 7 : Application Rendre des services génériques aux applications
Couche 7 : Application Fonctions de communication • Transfert de fichiers (norme FTAM (File Transfert Access et Management), FTP) • Messagerie électronique (X400, X500, SMTP) • Emulation de terminal virtuel (VTS (Virtuel Terminal Service), Telnet)
Client/Serveur (1) Les Serveurs • On appelle logiciel serveur un programme qui offre un service sur le réseau. Le serveur accepte des requêtes, les traite et renvoie le résultat au demandeur. Le terme serveur s’applique aussi à la machine sur lequel s’exécute le logiciel serveur. Pour pouvoir offrir ces services en permanence, le serveur doit être sur un site avec accès réseau permanent et s’exécuter en permanence (daemon - suffixe d pour le nom du logiciel ex : ftpd). Les Clients • On appelle logiciel client un programme qui utilise le service offert par un serveur. Le client envoie une requête et reçoit la réponse. Le client peut-être raccordé par une liaison temporaire (liaison modem par exemple).
Client/Serveur (2) Architecture client/Serveur • C’est la description du fonctionnement coopératif entre le serveur et le client. Les services Internet sont conçus selon cette architecture. Ainsi, chaque application est composée d’un logiciel serveur et d’un logiciel client. A un logiciel serveur, peut correspondre plusieurs logiciels clients développés dans différents environnements : Unix, Mac, PC... ; la seule obligation est le respect du protocole entre les deux processus communicants. Ce protocole étant décrit dans une RFC (Request For Comment).
Client/Serveur (3) Identification d’un service • Un site peut offrir plusieurs services. Chacun de ces services est fourni sur un port de communication identifié par un numéro. Ce numéro identifie le service quelque soit le site (ex : le service FTP est offert sur le port numéro 21, Telnet sur le port 23...).
Protocole http (2) Connexion Le client ouvre une connexion TCP-IP en indiquant le nom de domaine ou l’adresse IP de l’hôte ainsi que le numéro de port. Si le numéro de port n’est pas spécifié, le numéro de port 80 est utilisé. Le serveur accepte la connexion.
Protocole http (3) Requête La requête est lancée avec une première ligne contenant la méthode à appliquer à l’objet demandé. Request = Simple Request | FullRequest SimpleRequest = GET <uri> CrLf FullRequest = Method <uri> ProtocolVersion CrLf ProtocolVersion = HTTP/V1.1 …
Protocole http (4) Réponse La réponse à un GET est un message en HTML : c’est un flot de données en caractères ASCII. Le message se termine par la fermeture de la connexion par le serveur. La réponse du serveur commence avec la syntaxe suivante : <status line> ::= <version http> <code statut> <raison> De l’information peut suivre en format MIME. La signification de ces données dépend du code statut. (2xx : succès, 4xx : codes d’erreur, …)
Protocole http (5) Déconnexion La connexion TCP-IP se termine quand le document entier a été transféré. Le client peut cependant terminer le transfert quand il le souhaite.
Systèmes répartis La distribution d’objets est un concept qui permet à des objets d’être utilisables à travers des réseaux hétérogènes par d’autres objets distants
Systèmes répartis : avantages • Les programmeurs peuvent distribuer les objets qui forment une application sur des ordinateurs optimisés pour l’utilisation de ces objets sans avoir à changer l’application. • Comme les objets distribués apparaissent comme étant locaux, l’utilisateur de ces objets ne sait rien sur l’ordinateur distant qui les exécute. • Le but des systèmes distribués est de rendre le traitement de l’information plus efficace et plus flexible sans être plus complexe. Les systèmes distribués répondent aux problèmes posés par les architectures lourdes client/serveur.
Objet C'est l’encapsulation au sein d'une même entité des données et des traitements. L’objet est manipulable, dans son contexte, au travers de son interface
Objet distribué Les services offerts par l’objet sont accessibles indépendamment de sa localisation
COM COM fournit la technologie composant pour les architectures d’applications distribuées Windows de Microsoft (Windows DNA). Ces architectures permettent d’intégrer des applications web client/serveur dans une architecture unique et unifiée. En utilisant COM, les développeurs peuvent créer des composants distribués écrits dans n’importe quel langage et qui inter-agissent à travers n’importe quels réseaux.
CORBA : Origines L’Object Management Group • né en avril 1989 (Helwett Packard, Sun, Canon, American Airlines, Unisys, Philips, 3COM,…) Buts de l'OMG • But principal promotion de la “technologie objet”. • Modèle de référence de l’OMA (Object Management Architecture) Ce modèle fournit la trame qui aspire à la philosophie de la technologie objet vue par l'OMG.