Systèmes Distribués Philippe Truillet IRIT/ CENA

Slides:



Advertisements
Présentations similaires
Semaine 5 Couche Liaison de données Cours préparé par Marc Aubé
Advertisements

Les protocoles réseau.
Introduction aux environnements répartis
Objets Distribués Chronique d ’une invasion annoncée
Serveur jeu Le serveur fait partie d'un logiciel de jeu en ligne multi joueur en architecture client serveur. Il répond à des demandes.
Chapitre 1 Introduction
- Couche 7 - Couche application. Sommaire 1)Introduction 1)DNS 1)FTP et TFTP 1)HTTP 1)SNMP 1)SMTP 1)Telnet.
Object Management Architecture (OMA)
Chapitre 5 : Le Modèle OSI La Couche Liaison De Données
Vue d'ensemble Implémentation de la sécurité IPSec
Architecture de réseaux
Cours 5 : Les Web Services et WSDL Mars Version 1.0 -
Le File Transfer Protocol
Sommaire: 1- Intro/ la raison d'être du FTP/petit historique
FLSI602 Génie Informatique et Réseaux
NFE 107 : Urbanisation et architecture des systèmes d'information
UDP – User Datagram Protocol
Open System Interconnection
La voix IP : Mr.FERGOUGUI Boudouch Ali kmichou Ansar Atrassi Najoua
Introduction aux réseaux
Etude des Technologies du Web services
SECURITE DU SYSTEME D’INFORMATION (SSI)
Le modèle O.S.I..
XML-Family Web Services Description Language W.S.D.L.
Architecture Réseau Modèle OSI et TCP.
Labview Programmation réseau Communication par sockets
TRANSMISSION DES DONNEES.
Le protocole FTP.
Le modèle de référence OSI
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
CAT 2000 LES MIDDLEWARES Présenté par : Tagmouti Siham Smires Ali
Les relations clients - serveurs
Protocole 802.1x serveur radius
Le Modele OSI.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
‘‘Open Data base Connectivity‘‘
SGBD orientés Objet Standards : OMG et ODMG.
Généralités sur les réseaux
Présentation de CORBA et de IIOP
CENTRALISATION DES CANDIDATS LOCATAIRES
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
Les Réseaux Le modèle à 7 couches
Développement d’application client/serveur
CORBA Un concept de l ’OMG Mathieu Estival Biomédical, 3°Année.
Développement d’application client/serveur
PHP 5° PARTIE : LES COOKIES
© OutilsInformatique, 2014 tous droits réservés 1.Définir des termes et concepts de la gestion de réseau. 2.Comprendre les avantages d’un réseau. 3.Comprendre.
02 - Le modèle OSI* *OSI = Open Systems Interconnections.
Cours 5 Le modèle de référence.
Sommaire Dans ce chapitre, nous aborderons :
Suite.
Planification et câblage des réseaux
OSI et TCP/IP CNAM
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.

Enterprise Java Beans 3.0 Cours INF Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU.
Le web service
Mastère Professionnel Systèmes de Communication et Réseaux
Les Réseaux Informatiques Clients & Serveurs Le protocole FTP Laurent JEANPIERRE DEUST AMMILoR.
http 1.1.  connexion persistante Browser Mozilla Firefox Adresse ip.
Module 3 : Création d'un domaine Windows 2000
Les RPC remote procedure call
UE3-1 RESEAU Introduction
Web Services 17/01/2009.
Les bases du protocole Modbus
Architecture Client/Serveur
Chapitre 8 Protection du trafic réseau à l'aide de la sécurité IPSec et de certificats Module S43.
Les Réseaux Informatiques Rappels
M2.22 Réseaux et Services sur réseaux
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
Transcription de la présentation:

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

Avis (recommandations) de l’UIT ou de l’ISO (ex : X.224, ISO 8073) 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)

Modèle OSI º Boîte à outils 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

L’analogie slip chaussettes maillot de corps chemise pantalon pull chaussures sol

Le Modèle OSI Processus applicatif Nom Niveau Rôle Services Couche 7 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

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

Liaison entre 2 équipements

Acheminer les bits sur un support de transmission physique 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)

utilisation d’un Transceiver 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 LLC 802.2 MAC 802.3 802.4 802.5 X3T9.5 Physique

Modèle 802.x : scinde la couche en 2 : 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é

Assurer le contrôle de bout en bout à travers les réseaux empruntés 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é)

Couche 4 : Transport Fragmentation Multiplexage Assemblage Contrôle de flux Reprise sur erreur signalée Fragmentation Assemblage 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

Gérer le dialogue entre entités applicatives Couche 5 : Session Gérer le dialogue entre entités applicatives gestion du dialogue synchronisation du dialogue

è RPC (Remote Procedure Call) ç 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é

ASN.1 (Abstract Syntax Notation 1) 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

Rendre des services génériques aux applications Couche 7 : Application Rendre des services génériques aux applications

Fonctions de communication 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)

Architecture Client-Serveur

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 (1)

Protocole http (2) Connexion    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.

CORBA CORBA (Common Object Request Architecture) CORBA définit précisément l’architecture des environnements basés sur un ORB (Object Request Broker, courtier en requêtes sur les objets).

CORBA et OSI (1) Situé au niveau de la couche application (couche 7). fournit une architecture client/serveur “cache” au client l'hétérogénéité du système informatique, permet au programmeur de faire abstraction des couches les plus basses ; peu importe où est le serveur, quels sont son état, son processeur et son système d’exploitation.

CORBA et OSI (2) Les objets se découvrent mutuellement a l'exécution et peuvent invoquer leurs différentes fonctions. Un constructeur de systèmes devrait pouvoir sélectionner des objets venant de vendeurs différents et les connecter facilement

CORBA : ORB L‘ORB (Object Request Broker) fournit les mécanismes d'échanges transparent de requêtes et de réponses. C'est en fait un bus de communication logiciel. Les Object Services forment un ensemble de services optionnels qui peuvent être utilisés dans certains environnements objets. Les common facilities sont les services les plus utilisés dans les environnements. Les application objects sont les objets spécifiques d'une application.

Rôle de l’ORB L’ORB (Object Request Broker, courtier en requêtes d’objet en français) doit : trouver le lieu où l'objet est implémenté préparer l'objet à recevoir la requête transférer les données de la requête du client au serveur transmettre la réponse ou une exception au client.

Structure de l’ORB

L’ORB et ses interfaces

Composants Techniques (1) IDL (Interface Definition Language) définit les types des objets manipulés par l’ORB en spécifiant leurs interfaces. est le moyen par lequel une implémentation d’objet précise à ses clients potentiels quelles opérations sont disponibles et comment les invoquer.   Les clients ne sont pas implémentés en IDL mais dans leur propre langage (généralement le langage C) appelé language mapping.

Composants Techniques (2) L’interface ORB Cette interface fait directement appel à l’ORB. Elle est la même pour tous les ORB et ne dépend ni des interfaces ni de l’adaptateur d’objet. En fait, la plupart des fonctionnalités de l’ORB sont fournies par l’adaptateur d’objet, les souches IDL, les squelettes IDL et le DII. Seules quelques rares opérations sont communes à tous les objets. Cette interface est donc rarement utilisée.

Composants Techniques (3) Trois catégories d’interfaces de l’ORB : les interfaces pour les opérations identiques pour toute implémentation de l’ORB (DII, interface ORB) les interfaces pour les opérations spécifiques à un type d’objet particulier (souche et squelette IDL) les interfaces pour les opérations spécifiques à des styles particuliers d’implémentation d’objets

Les entrepôts (1) L’entrepôt d’interface C’est un service qui fournit des objets persistants représentés par de l’information IDL disponible à l’exécution. L’ORB doit avoir accès à la définition de l’objet qu’il gère ; cela peut se faire de deux façons : L’information est contenue dans la requête L’ORB prend cette information dans l’entrepôt d’interface

Les entrepôts (2) L’entrepôt d’implémentation Il contient les informations qui permettent à l’ORB de localiser et activer les implémentations d’objet Cet entrepôt contient aussi des informations supplémentaires concernant les implémentations, comme par exemple des informations sur le debugging, la sécurité,...

Côté Serveur L’implémentation de l’objet Le squelette IDL Elle fournit la sémantique de l’objet (données pour l’objet et code pour ses méthodes). Le squelette IDL C'est l’interface pour l’accès aux méthodes qui implémentent l’objet. L’existence d’un squelette IDL n’implique pas obligatoirement l’existence d’une souche IDL associée. Le squelette IDL est différent pour chaque type d’objet. L’adaptateur d'objets Il adapte la référence d’objet à l’objet.

Côté Client La souche IDL Les souches IDL font des appels aux autres éléments de l’ORB en utilisant des interfaces qui lui sont privées. La DII (Dynamic Invocation Interface, interface d'invocation dynamique) La DII, comme son nom l’indique, permet la construction et l’invocation dynamique des requêtes d'objet. L’interface ORB Cette interface fait directement appel à l’ORB.

Requêtes CORBA (1) Pour effectuer une requête, le client doit : avoir accès à une référence de l’objet connaître le type de l’objet connaître le type d’opération à effectuer

Requêtes CORBA (2) Trois types de requêtes : par le DII (Dynamic Invocation Interface), qui est totalement indépendant de l’objet cible et reste le même quelle que soit l’implémentation de l’ORB. par la souche IDL. La souche IDL dépendante du squelette IDL (interface de l’implémentation de l’objet cible). en appelant directement l’ORB (par l’interface ORB) pour certaines fonctions spéciales.

Requêtes CORBA (3) Exécution de la requête : L’ORB situe le code nécessaire à la satisfaction de la requête, et la transmet avec ses paramètres au squelette IDL. Pendant le traitement de la requête, le code qui implémente l’objet peut faire appel à des services de l’ORB via l’adaptateur d’objet. L’implémentation de l’objet peut choisir quel adaptateur d'objet à utiliser. Cela dépend du type de service dont elle a besoin. Quand le traitement de la requête est fini, les valeurs de sortie sont renvoyées au client.

RMI Remote Method Invocation (RMI) système d’objets distribués de JAVA fournit des mécanismes pour pouvoir invoquer à partir d’une JVM des Objets résidents dans une autre JVM.  Les objets ainsi distribués se comportent comme des objets locaux (appel de méthodes et autres manipulations…) alors qu’ils sont distants.

RMI

Composants Techniques (1) Sérialisation permet de transformer un objet en tableau d’octets qui pourra être stocké, envoyé, transmis…puis retransformé en objet

Composants Techniques (2) Stub et Skeleton   Lors d’un appel d’objet distribué, le serveur envoie non pas une copie de l’objet mais un objet spécial appelé “Stub”. Ce Stub communique avec un objet sur le serveur appelé “Skeleton”.  Stub et Skeleton se chargent de la communication entre client et serveur, de façon transparente pour les utilisateurs.

Composants Techniques (3) Interface    L’utilisation des objets partagés n’est possible que si client et serveur voient la même définition d’un objet. Utilisation d’interfaces (définitions des méthodes et attributs d’un objet). Le serveur implémente cette interface Le client la liera avant d’invoquer l’objet distant.  Ainsi le client ne pourra utiliser que des méthodes qui existent sur le serveur.

Ivy (CENA)

 http://www.tls.cena.fr/products/ivy Ivy Bus logiciel basé sur la notion de souscription à des messages  http://www.tls.cena.fr/products/ivy

Ivy Implémenté dans plusieurs langages sur de multiples plateformes.  Langage C (Unix and Windows), C++ (Mac, Unix, Windows), Java and Perl. Messages formatés en texte, souscription basée sur des expressions régulières. Quelques fonctions : Connexion à un bus IvyInit (b, “192.126:2011”) Envoyer un message IvySend (b, "HELLO %s", world)