systèmes distribués

75
DESS CSI Systèmes Distribués Philippe Truillet IRIT/ CENA http://www.tls.cena.fr/ ~truillet

Upload: uriah-reilly

Post on 30-Dec-2015

47 views

Category:

Documents


6 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Systèmes Distribués

DESS CSI

Systèmes Distribués

Philippe TruilletIRIT/ CENA

http://www.tls.cena.fr/~truillet

Page 2: Systèmes Distribués

DESS CSI

Plan

Rappel : Modèle OSI de l’ISO Modèle Client-Serveur

Ex : protocole http

Systèmes Distribués COM, CORBA, RMI, Ivy

Page 3: Systèmes Distribués

DESS CSI

DéfinitionsOpen 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

Page 4: Systèmes Distribués

DESS CSI

Qui, Quoi, Pourquoi ?Émanation de l’ UnionInternationale desTélécommunications

ISO

Page 5: Systèmes Distribués

DESS CSI

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

Page 6: Systèmes Distribués

DESS CSI

Modèle normalisé pour faciliter les échanges de données entre systèmes ouverts

Qui, Quoi, Pourquoi ?

Page 7: Systèmes Distribués

DESS CSI

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)

Page 8: Systèmes Distribués

DESS CSI

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

Qui, Quoi, Pourquoi ?

Page 9: Systèmes Distribués

DESS CSI

L’analogie

chaussetteschaussettes

slipslip

maillot de corpsmaillot de corpschemisechemisepantalonpantalon

pullpullchaussureschaussures

solsol

Page 10: Systèmes Distribués

DESS CSI

Le Modèle OSI

Couche 1Couche 1

NomNomNiveauNiveauRôleRôleServicesServicesProtocolesProtocoles

Ligne de transmissionLigne de transmission

Processusapplicatif

Couche 2Couche 2Couche 3Couche 3Couche 4Couche 4

Couche 5Couche 5Couche 6Couche 6Couche 7Couche 7

Page 11: Systèmes Distribués

DESS CSI

Comment ça marche ?

Principe de l’encapsulation des données

Exemple :

Page 12: Systèmes Distribués

DESS CSI

Les couches du modèle

Page 13: Systèmes Distribués

DESS CSI

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

Page 14: Systèmes Distribués

DESS CSI

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)

Page 15: Systèmes Distribués

DESS CSI

Protocol

Data

Unit

Page 16: Systèmes Distribués

DESS CSI

Page 17: Systèmes Distribués

DESS CSI

Liaison entre 2 équipements

Page 18: Systèmes Distribués

DESS CSI

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

Page 19: Systèmes Distribués

DESS CSI

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)

Page 20: Systèmes Distribués

DESS CSI

Ethernet 802.3 : collision

utilisation d’un Transceiver

détection de la collision arrêt de l’émission attente émission

Page 21: Systèmes Distribués

DESS CSI

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

Page 22: Systèmes Distribués

DESS CSI

Couche 2 : liaison

LLCLLC

RéseauRéseau

MACMAC

PhysiquePhysique

802.2802.2

802.3802.3 802.4802.4 802.5802.5 X3T9.5X3T9.5

Chaque réseau (Ethernet, …) est une solution particulière au problème de l’accès au média

Page 23: Systèmes Distribués

DESS CSI

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)

Page 24: Systèmes Distribués

DESS CSI

LLC (IEEE 802.2) : interface homogène MAC : gère et attribue à chaque instant

le droit de parole

Couche 2 : liaison

Page 25: Systèmes Distribués

DESS CSI

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

Page 26: Systèmes Distribués

DESS CSI

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é

Page 27: Systèmes Distribués

DESS CSI

Couche 4 : Transport

Assurer le contrôle de bout en bout à travers les réseaux empruntés

connexions entre processus contrôle de flux

Page 28: Systèmes Distribués

DESS CSI

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é)

Page 29: Systèmes Distribués

DESS CSI

Couche 4 : Transport

FragmentationFragmentationAssemblageAssemblage

Reprise sur erreur non signaléeReprise sur erreur non signalée

MultiplexageMultiplexage

Reprise sur erreur signaléeReprise sur erreur signalée

MultiplexageMultiplexageContrôle de fluxContrôle de flux

11

0022

3344

1, 2, 3 : réseau fiable et sans erreur4 : réseau peu fiable

Page 30: Systèmes Distribués

DESS CSI

Couche 5 : Session

Gérer le dialogue entre entités applicatives

gestion du dialogue synchronisation du dialogue

Page 31: Systèmes Distribués

DESS CSI

Couche 5 : Session

Initialisation de la communication : ouverture session

transfert données

fermeture session RPC (Remote Procedure Call)

couche souvent absente

Page 32: Systèmes Distribués

DESS CSI

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é

Page 33: Systèmes Distribués

DESS CSI

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

Page 34: Systèmes Distribués

DESS CSI

Couche 7 : Application

Rendre des services génériques aux applications

Page 35: Systèmes Distribués

DESS CSI

Couche 7 : ApplicationFonctions 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)

Page 36: Systèmes Distribués

DESS CSI

Architecture Client-Serveur

CLIENT SERVEUR

Requête

Résultat

Page 37: Systèmes Distribués

DESS CSI

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).

Page 38: Systèmes Distribués

DESS CSI

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).

Page 39: Systèmes Distribués

DESS CSI

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...).

Page 40: Systèmes Distribués

DESS CSI

Protocole http (1)

Page 41: Systèmes Distribués

DESS CSI

Protocole http (2)

  

ConnexionLe 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. 

Page 42: Systèmes Distribués

DESS CSI

Protocole http (3)

RequêteLa 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> CrLfFullRequest = Method <uri> ProtocolVersion CrLf

ProtocolVersion = HTTP/V1.1…

Page 43: Systèmes Distribués

DESS CSI

Protocole http (4)

RéponseLa 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, …)

Page 44: Systèmes Distribués

DESS CSI

Protocole http (5)

DéconnexionLa connexion TCP-IP se termine quand le document

entier a été transféré. Le client peut cependant terminer le transfert quand il le souhaite.

Page 45: Systèmes Distribués

DESS CSI

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

Page 46: Systèmes Distribués

DESS CSI

Systèmes répartis : avantages

1. 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.

2. 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.

3. 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.

Page 47: Systèmes Distribués

DESS CSI

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

Page 48: Systèmes Distribués

DESS CSI

Objet distribué

Les services offerts par l’objet sont accessibles indépendamment de sa localisation

Page 49: Systèmes Distribués

DESS CSI

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.

Page 50: Systèmes Distribués

DESS CSI

CORBA : Origines

L’Object Management Groupné 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.

Page 51: Systèmes Distribués

DESS CSI

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).

Page 52: Systèmes Distribués

DESS CSI

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.

Page 53: Systèmes Distribués

DESS CSI

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

Page 54: Systèmes Distribués

DESS CSI

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 optionnelsqui peuvent être utilisés dans certainsenvironnements objets.

Les common facilities sont lesservices les plus utilisés dansles environnements.

Les application objects sont les objetsspécifiques d'une application.

Page 55: Systèmes Distribués

DESS CSI

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.

Page 56: Systèmes Distribués

DESS CSI

Structure de l’ORB

Page 57: Systèmes Distribués

DESS CSI

L’ORB et ses interfaces

Page 58: Systèmes Distribués

DESS CSI

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.

Page 59: Systèmes Distribués

DESS CSI

Composants Techniques (2)

L’interface ORBCette 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.

Page 60: Systèmes Distribués

DESS CSI

Composants Techniques (3)

Trois catégories d’interfaces de l’ORB :1. les interfaces pour les opérations identiques

pour toute implémentation de l’ORB (DII, interface ORB)

2. les interfaces pour les opérations spécifiques à un type d’objet particulier (souche et squelette IDL)

3. les interfaces pour les opérations spécifiques à des styles particuliers d’implémentation d’objets

Page 61: Systèmes Distribués

DESS CSI

Les entrepôts (1)

L’entrepôt d’interfaceC’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

Page 62: Systèmes Distribués

DESS CSI

Les entrepôts (2)

L’entrepôt d’implémentationIl 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é,...

Page 63: Systèmes Distribués

DESS CSI

Côté ServeurL’implémentation de l’objet

Elle fournit la sémantique de l’objet (données pour l’objet et code pour ses méthodes).

Le squelette IDLC'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.

Page 64: Systèmes Distribués

DESS CSI

Côté Client

La souche IDLLes 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 ORBCette interface fait directement appel à l’ORB.

Page 65: Systèmes Distribués

DESS CSI

Requêtes CORBA (1)

Pour effectuer une requête, le client doit :

1. avoir accès à une référence de l’objet

2. connaître le type de l’objet

3. connaître le type d’opération à effectuer

Page 66: Systèmes Distribués

DESS CSI

Requêtes CORBA (2)Trois types de requêtes :1. 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.

2. par la souche IDL. La souche IDL dépendante du squelette IDL (interface de l’implémentation de l’objet cible).

3. en appelant directement l’ORB (par l’interface ORB) pour certaines fonctions spéciales.

Page 67: Systèmes Distribués

DESS CSI

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.

Page 68: Systèmes Distribués

DESS CSI

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.

Page 69: Systèmes Distribués

DESS CSI

RMI

Page 70: Systèmes Distribués

DESS CSI

Composants Techniques (1)

Sérialisation

permet de transformer un objet en tableau d’octets qui pourra être stocké, envoyé, transmis…puis retransformé en objet

Page 71: Systèmes Distribués

DESS CSI

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.

Page 72: Systèmes Distribués

DESS CSI

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 interfaceLe client la liera avant d’invoquer l’objet distant. Ainsi le client ne pourra utiliser que des méthodes qui

existent sur le serveur.

Page 73: Systèmes Distribués

DESS CSI

Ivy (CENA)

Page 74: Systèmes Distribués

DESS CSI

Ivy

Bus logiciel basé sur la notion de souscription à des messages

http://www.tls.cena.fr/products/ivy

Page 75: Systèmes Distribués

DESS CSI

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 busIvyInit (b, “192.126:2011”)

Envoyer un messageIvySend (b, "HELLO %s", world)