DESS CSI
Systèmes Distribués
Philippe TruilletIRIT/ CENA
http://www.tls.cena.fr/~truillet
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
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
DESS CSI
Qui, Quoi, Pourquoi ?Émanation de l’ UnionInternationale desTélécommunications
ISO
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
DESS CSI
Modèle normalisé pour faciliter les échanges de données entre systèmes ouverts
Qui, Quoi, Pourquoi ?
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)
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 ?
DESS CSI
L’analogie
chaussetteschaussettes
slipslip
maillot de corpsmaillot de corpschemisechemisepantalonpantalon
pullpullchaussureschaussures
solsol
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
DESS CSI
Comment ça marche ?
Principe de l’encapsulation des données
Exemple :
DESS CSI
Les couches du modèle
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
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)
DESS CSI
Protocol
Data
Unit
DESS CSI
DESS CSI
Liaison entre 2 équipements
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
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)
DESS CSI
Ethernet 802.3 : collision
utilisation d’un Transceiver
détection de la collision arrêt de l’émission attente émission
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
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
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)
DESS CSI
LLC (IEEE 802.2) : interface homogène MAC : gère et attribue à chaque instant
le droit de parole
Couche 2 : liaison
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
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é
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
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é)
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
DESS CSI
Couche 5 : Session
Gérer le dialogue entre entités applicatives
gestion du dialogue synchronisation du dialogue
DESS CSI
Couche 5 : Session
Initialisation de la communication : ouverture session
transfert données
fermeture session RPC (Remote Procedure Call)
couche souvent absente
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é
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
DESS CSI
Couche 7 : Application
Rendre des services génériques aux applications
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)
DESS CSI
Architecture Client-Serveur
CLIENT SERVEUR
Requête
Résultat
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).
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).
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...).
DESS CSI
Protocole http (1)
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.
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…
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, …)
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.
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
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.
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
DESS CSI
Objet distribué
Les services offerts par l’objet sont accessibles indépendamment de sa localisation
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.
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.
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).
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.
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
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.
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.
DESS CSI
Structure de l’ORB
DESS CSI
L’ORB et ses interfaces
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.
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.
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
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
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é,...
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.
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.
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
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.
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.
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.
DESS CSI
RMI
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
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.
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.
DESS CSI
Ivy (CENA)
DESS CSI
Ivy
Bus logiciel basé sur la notion de souscription à des messages
http://www.tls.cena.fr/products/ivy
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)