Systèmes répartis. Samuel Tardieu Samuel.Tardieu@enst.fr. Dom INF 2000/2001 Systèmes répartis 1

Documents pareils
CORBA. (Common Request Broker Architecture)

NFP111 Systèmes et Applications Réparties

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Le cadre des Web Services Partie 1 : Introduction

Intergiciel - concepts de base

L3 informatique Réseaux : Configuration d une interface réseau

Le modèle client-serveur

Intergiciels pour la répartition CORBA : Common Object Request Broker. Patrice Torguet torguet@irit.fr Université Paul Sabatier

Introduction aux Technologies de l Internet

CORBA haute performance

Programmation Réseau. ! UFR Informatique ! Jean-Baptiste.Yunes@univ-paris-diderot.fr

18 TCP Les protocoles de domaines d applications

Algorithmique et langages du Web

Composants Logiciels. Le modèle de composant de CORBA. Plan

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Génie Logiciel avec Ada. 4 février 2013

Chapitre VII : Principes des réseaux. Structure des réseaux Types de réseaux La communication Les protocoles de communication

MEAD : temps réel et tolérance aux pannes pour CORBA

RMI le langage Java XII-1 JMF

1.Introduction - Modèle en couches - OSI TCP/IP

Supervision de réseau

Arbres binaires de recherche

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Mise en œuvre des serveurs d application

Présentation du PL/SQL

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Internets. Informatique de l Internet: le(s) Internet(s) Composantes de l internet R3LR RENATER

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Évaluation et implémentation des langages

Services Réseaux - Couche Application. TODARO Cédric

FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières

OS Réseaux et Programmation Système - C5

Meta Object Facility. Plan

Introduction. Adresses

Messagerie asynchrone et Services Web

Couche application. La couche application est la plus élevée du modèle de référence.

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Introduction aux applications réparties

Programmer en JAVA. par Tama

Conception des systèmes répartis

Groupe Eyrolles, 2004 ISBN :

Cours Bases de données

Introduction aux intergiciels

//////////////////////////////////////////////////////////////////// Administration bases de données

Systèmes de fichiers répartis

SSH, le shell sécurisé

Serveurs de noms Protocoles HTTP et FTP

Sécurité des réseaux Les attaques

Etude critique de mécanismes de sécurité pour l architecture Jini

Patrons de Conception (Design Patterns)

La carte à puce. Jean-Philippe Babau

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

Traduction des Langages : Le Compilateur Micro Java

Sécurité et Firewall

WEA Un Gérant d'objets Persistants pour des environnements distribués

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Automatisation de l administration système

Programmation Internet Cours 4

Retour d expérience sur Prelude

Spécialiste Systèmes et Réseaux

Sécurisation du réseau

Présentation du modèle OSI(Open Systems Interconnection)

Prise en compte des ressources dans les composants logiciels parallèles

Le service FTP. M.BOUABID, Page 1 sur 5

1. Introduction à la distribution des traitements et des données

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

II/ Le modèle OSI II.1/ Présentation du modèle OSI(Open Systems Interconnection)

Cours des réseaux Informatiques ( )

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Systèmes d'informations historique et mutations

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Ch2 La modélisation théorique du réseau : OSI Dernière maj : jeudi 12 juillet 2007

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

NFS Maestro 8.0. Nouvelles fonctionnalités

2 Chapitre 1 Introduction

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Programme formation pfsense Mars 2011 Cript Bretagne

Stéphanie Lacerte. Document technique. Connextek. 31 mai Cloudtel

Les formations. Administrateur Systèmes et Réseaux. ENI Ecole Informatique

Algorithmique des Systèmes Répartis Protocoles de Communications

Programmation Web Avancée Introduction aux services Web

Mobile OGSI.NET: Grid Computing on Mobile Devices

Java - RMI Remote Method Invocation. Java - RMI

Les applications Internet

Le Multicast. A Guyancourt le

Chapitre 11 : Le Multicast sur IP

L annuaire et le Service DNS

Chapitre VI- La validation de la composition.

Domain Name Service (DNS)

Cours n 12. Technologies WAN 2nd partie

TP1 : Initiation à Java et Eclipse

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

L3 informatique TP n o 2 : Les applications réseau

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Software Engineering and Middleware A Roadmap

Transcription:

Systèmes répartis Samuel Tardieu Samuel.Tardieu@enst.fr Dom INF 2000/2001 Systèmes répartis 1

Plan Généralités Classes de systèmes répartis Exemples de systèmes répartis Autres types de systèmes répartis Conclusion Dom INF 2000/2001 Systèmes répartis 2

Qu est-ce qu un un système réparti? Un système réparti (ou distribué, de «distributed system»), est: composé de plusieurs systèmes calculatoires autonomes (sinon, non réparti) sans mémoire physique commune (sinon c'est un système parallèle, cas dégénéré) qui communiquent par l intermédiaire d un réseau (quelconque) Dom INF 2000/2001 Systèmes répartis 3

Exemples de systèmes répartis On rencontre des systèmes répartis dans la vie de tous les jours: WWW, FTP, Mail Guichet de banque, agence de voyage Téléphones portables (et bornes) Télévision interactive Agents intelligents Robots footballeurs Dom INF 2000/2001 Systèmes répartis 4

Pourquoi utiliser un système réparti? Les systèmes répartis sont populaires pour plusieurs raisons: Accès distant: un même service peut être utilisé par plusieurs acteurs, situés à des endroits différents Redondance: des systèmes redondants permettent de pallier une faute matérielle, ou de choisir le service équivalent avec le temps de réponse le plus court Dom INF 2000/2001 Systèmes répartis 5

Pourquoi? (suite) Performance: la mise en commun de plusieurs unités de calcul permet d effectuer des calculs parallélisables en des temps plus courts Confidentialité: les données brutes ne sont pas disponibles partout au même moment, seules certaines vues sont exportées Dom INF 2000/2001 Systèmes répartis 6

Comment communiquer? Les protocoles Un protocole est un «langage» de communication utilisé par deux ordinateurs pour communiquer entre eux. Des protocoles de bas niveau sont utilisés sur les réseaux: Réseaux physiques (liaison spécialisée) Réseaux virtuels de bout en bout (X25, ATM, modem/téléphone) Systèmes basés sur les paquets (IP/Ethernet, RFC 1149, téléphone cellulaire) Dom INF 2000/2001 Systèmes répartis 7

Différents types de communications Unicast Un émetteur Un récepteur Multicast Un émetteur N récepteurs Anycast Un émetteur Un récepteur parmi N Dom INF 2000/2001 Systèmes répartis 8

Exemples de protocoles Protocoles non fiables: IP, UDP Réémission et réordonnancement à la charge de l'utilisateur Meilleure utilisation d'un réseau fiable et disponible Protocoles fiables: TCP, ATM Réémission et réordonnancement automatiques Surcoût systématique au niveau du noyau Dom INF 2000/2001 Systèmes répartis 9

Plan Généralités Classes de systèmes répartis Envoi de messages Appel de sous-programme à distance Objets répartis Exemples de systèmes répartis Autres types de systèmes répartis Conclusion Dom INF 2000/2001 Systèmes répartis 10

Problèmes théoriques (non abordés ici) Le problème du temps Ordonnancement des événements Le vote ou le consensus Election d'un leader Détection de fautes, normales ou byzantines Le partitionnement Détection du partitionnement Gestion de la réconciliation Dom INF 2000/2001 Systèmes répartis 11

Communication par envoi de messages Système réparti primitif: des messages indépendants unidirectionnels sont envoyés sur un réseau, fiable ou non fiable. Exemple de tels systèmes: IRC, ICQ, FreeNet X/Window (doublement asynchrone, le client et le serveur peuvent spontanément transmettre des informations, notion de boucle d événements) Dom INF 2000/2001 Systèmes répartis 12

Localisation des services Problème: comment localiser un service sur la machine locale? Solution: utiliser le fichier /etc/services pour TCP et UDP #Nom Port Alias Commentaire ftp 21/tcp fsp 21/udp fspd Ssh 22/tcp # Secure shell Dom INF 2000/2001 Systèmes répartis 13

Systèmes hétérogènes En présence d un système hétérogène, il faut: Définir un format d échange commun pour les types de base (little-endian ou big-endian, 32 bits ou 64 bits, etc.) Utiliser des dictionnaires pour les types complexes (ordre des composants dans une structure, etc.) Ces conventions doivent être connues a priori par les deux systèmes L oubli de ces traductions fonctionnera néanmoins dans un système homogène; détection de problèmes difficile. Dom INF 2000/2001 Systèmes répartis 14

Exemple de dictionnaire: XDR XDR (external Data Representation) est un format d échange défini par Sun, qui normalise: le format (poids fort d abord) et la taille des entiers le format des nombres en virgule flottante le format des structures complexes D autres formats existent (CDR dans CORBA par exemple) Dom INF 2000/2001 Systèmes répartis 15

Données non transportables Certaines données ont une sémantique locale Pointeurs Objets actifs (tâches, fichiers) Ces objets sont difficilement transportables On peut parfois contourner ces limitations Aplatissement de liste (transformation en tableau) Encapsulation des données d une tâche Dom INF 2000/2001 Systèmes répartis 16

Observation sur les dialogues utilisant l envoi l de messages Un dialogue classique est Du côté de l appelant Envoi d une requête et de ses arguments Attente des résultats Du côté de l appelé Attente d une requête et de ses arguments Calcul Envoi des résultats Cela ressemble à un schéma connu... Dom INF 2000/2001 Systèmes répartis 17

Plan Généralités Classes de systèmes répartis Envoi de messages Appel de sous-programme à distance Objets répartis Exemples de systèmes répartis Autres types de systèmes répartis Conclusion Dom INF 2000/2001 Systèmes répartis 18

Les RPC (appels de procédures à distance) Idée: remplacer les appels réseaux par des appels de sous-programmes Solution: les RPC Dialogue question/réponse géré de manière transparente par le système Les paramètres sont empilés sur le canal de communication plutôt que dans la mémoire Dom INF 2000/2001 Systèmes répartis 19

Pourquoi utiliser les RPC? Facilité de programmation (plus besoin de coder une boucle d attente du résultat) Sujet bien maîtrisé de nos jours Facilité d adaptation d un code existant Possibilité de générer le code de l appelant et de l appelé automatiquement Dom INF 2000/2001 Systèmes répartis 20

Souches et squelettes A partir d une spécification d interface, on peut générer une souche Emballage des paramètres et envoi de la requête Attente et déballage du résultat On peut également générer un squelette Réception de la requête et déballage des arguments Appel du sous-programme réel Emballage et renvoi du résultat Dom INF 2000/2001 Systèmes répartis 21

Souches et squelette (suite) Source (déclaration) Source (corps) Compilateur Compilateur Souche Squelette Dom INF 2000/2001 Systèmes répartis 22

Schématique d un d RPC t Module A Appel Retour Module B Sous-programme P t Module A Appel Retour Souche B Emballage des paramètres Réseau Déballage des résultats Déballage des paramètres Squelette B Emballage des résultats Appel Retour Module B Sous- -programme P Dom INF 2000/2001 Systèmes répartis 23

Exemple Les RPC de Sun Microsystems Utilisation de XDR pour échanger les données entre systèmes hétérogènes Programme rpcgen pour construire les souches et squelettes à partir d une description de l interface Un service indispensable: NFS Montage de répertoires en mode sans état Fonctionne au dessus d UDP ou de TCP Dom INF 2000/2001 Systèmes répartis 24

Adresses dynamiques et adresses notoires Les RPC de Sun proposent un service de nommage plus souple que /etc/services Tout nouveau service vient s enregistrer avec son nom auprès du portmapper Toute requête à un service se fait en interrogeant d abord le portmapper afin de connaître le numéro de port utilisé Avantage: plus de liste de services à partager Contrainte: le portmapper est sur un port fixe Dom INF 2000/2001 Systèmes répartis 25

RPC évolués Il est possible d augmenter les facilités offertes par les RPC Exceptions: transmission des exceptions de l appelé vers l appelant Procédures asynchrones: aucune nécessité d attendre le résultat d un sous-programme (procédures unidirectionnelles) Dom INF 2000/2001 Systèmes répartis 26

RPC évolués, suite On peut aussi utiliser Pointeurs sur sous-programmes distants: au lieu de générer un appel statique vers un sousprogramme distant, on utilise un pointeur dont on ne sait pas a priori où il pointe Contrôle de version: vérification de la cohérence entre la souche et le squelette Dom INF 2000/2001 Systèmes répartis 27

Services associés aux RPC Possibilité d ajouter des services externes Service de nommage Enregistre les coordonnées des services distants Est appelé par le biais de RPC Doit être localisé d une autre manière (adresse notoire) Service de sécurité S assure de l identité des différents acteurs Fournit des jetons d authentification et de chiffrement Dom INF 2000/2001 Systèmes répartis 28

RPC en environnement concurrent Un client peut faire plusieurs requêtes à un serveur (environnement concurrent) Il faut soit Utiliser un canal de communication par tâche du client Utiliser un numéro de séquence pour différencier les requêtes Le serveur renvoie le numéro de séquence avec la réponse Dom INF 2000/2001 Systèmes répartis 29

Et du côté du serveur? Plusieurs possibilités pour traiter des requêtes entrantes concurrentes Lancer un serveur esclave à chaque connexion (fork(), comme les serveurs WWW) Lancer une tâche à chaque requête (NFS sous Solaris) Exécuter les requêtes les unes après les autres (sérialisation) Dom INF 2000/2001 Systèmes répartis 30

Envoi de messages vs. RPC Utiliser les RPC permet De réduire les erreurs dues à la programmation des boucles d attente De laisser les programmeurs se concentrer sur leurs domaines d activités De tester la cohérence des versions Envoyer des messages permet d optimiser certains systèmes spécifiques (homogènes) Dom INF 2000/2001 Systèmes répartis 31

Apport de chaque méthode Envoi de messages Protocole de haut-niveau (ordre des paramètres) Format des paramètres (XDR) Gestion des communications (TCP, UDP) Couche réseau (IP) Appel de sous-programme à distance Dom INF 2000/2001 Systèmes répartis 32

Plan Généralités Classes de systèmes répartis Envoi de messages Appel de sous-programme à distance Objets répartis Exemples de systèmes répartis Autres types de systèmes répartis Conclusion Dom INF 2000/2001 Systèmes répartis 33

Les objets répartis La programmation orientée objet enrichit la programmation structurée Les objets répartis enrichissent les RPC Conception orientée acteur plutôt que fonctionnalité Programmation par extensions: il est possible d étendre un service progressivement Aucune différence de concept entre les modes réparti et non-réparti (monolithique) Dom INF 2000/2001 Systèmes répartis 34

Caractéristique des objets répartis Un objet réparti Ne se déplace pas physiquement (seules les références sont échangées) N'est accédé qu'au travers de ses méthodes Peut être désigné de plusieurs manières (pointeur long par exemple) N est utilisé qu à travers un pointeur Dom INF 2000/2001 Systèmes répartis 35

Pointeur sur objet distant Pointeur Classe A Classe B Classe C Machine Adresse Dom INF 2000/2001 Systèmes répartis 36

On n insistera n jamais trop... Les objets répartis sont en fait des pointeurs sur objets distants Pas de mouvement d objets (champs et méthodes sont fixes) Possibilité d échanger des références Aucune possibilité de garder quoi que ce soit de plus que les références Dom INF 2000/2001 Systèmes répartis 37

Qui utilise les objets répartis? CORBA Basé uniquement sur les objets répartis Supporte les programmes multi-langages Ada 95 Supporte les objets répartis et les RPC Permet de définir des objets partagés (mémoire partagée virtuelle) Est limité au langage Ada Dom INF 2000/2001 Systèmes répartis 38

Les différentes techniques Programmation non structurée Envoi de messages Appel de sous-programmes RPC Mémoire partagée répartie Programmation orientée objet Objets répartis Dom INF 2000/2001 Systèmes répartis 39

Plan Généralités Classes de systèmes répartis Exemples de systèmes répartis CORBA Ada 95 Autres types de systèmes répartis Conclusion Dom INF 2000/2001 Systèmes répartis 40

Les objets dans CORBA Les objets CORBA sont originaux Les interfaces sont décrites dans le langage IDL (Interface Description Language) Chaque interface est traduite dans un Langage hôte pour le client (souche) Langage hôte pour le serveur (squelette) Le programmeur complète le squelette et utilise la souche Le programmeur ne livre que l IDL (contrat) Dom INF 2000/2001 Systèmes répartis 41

L architecture CORBA L IDL suffit à invoquer une méthode sur un objet (notion d interface-contrat) Les appels de méthodes transitent par des ORB (Object Request Broker) Les ORB constituent un bus logiciel Les ORB communiquent avec un ensemble de protocoles standardisés (IIOP, GIOP) Dom INF 2000/2001 Systèmes répartis 42

L IDL en quelques points Syntaxe similaire à celle du C++ Sous-ensemble commun à tous les langages hôtes, donc pas très expressif (pas de soustypes par exemple) Le programmeur doit connaître les détails de la traduction entre l IDL et le langage hôte choisi pour implémenter le squelette Dom INF 2000/2001 Systèmes répartis 43

Exemples d IDLd interface Echo { string echostring (in string mesg); }; Interface Buffer { exception Empty; void put (in string content); string get() raises (Empty); }; Dom INF 2000/2001 Systèmes répartis 44

Traduction Ada du service Echo with Corba.Object; package Echo is type Ref is new Corba.Object.Ref with null record; function To_Echo (Self : in Corba.Object.Ref Class) return Ref Class; function To_Ref (From in Corba.Any) return Ref; function To_Any (From : in Ref) return Corba.Any; function echostring (Self in Ref; msg : in Corba.String) return Corba.String; Null_Ref : constant Ref := (Corba.Object.Null_Ref with null record); Echo_R_Id : constant Corba.RepositoryId := Corba.To_Unbounded_String («IDL:Echo:1.0»); end Echo; Dom INF 2000/2001 Systèmes répartis 45

Les services CORBA Le noyau CORBA Est tout petit Est enrichi de nombreux services externes Les services Service de nommage hiérarchique réparti Service de persistance Service de transactions Service de sécurité Dom INF 2000/2001 Systèmes répartis 46

Le service de nommage CosNaming Adresse de la racine localisable autrement Nommage hiérarchique Une entrée pointe sur un objet CORBA Un objet peut être une liste de nœuds (répertoire) Possibilité d avoir plusieurs arbres indépendants Service normalisé par l OMG Possibilité de stocker n importe quel type de données Dom INF 2000/2001 Systèmes répartis 47

Plan Généralités Classes de systèmes répartis Exemples de systèmes répartis CORBA Ada 95 Concepts RPC et RPC évolués Objets répartis Résume des concepts Autres types de systèmes répartis Conclusion Dom INF 2000/2001 Systèmes répartis 48

Une approche langage Ada 95 Ada 95 permet de construire des systèmes répartis sans sortir du cadre du langage Répartition introduite en même temps que l orienté objet Remplace toutes les solutions propriétaires existant depuis des années Ne permet pas de coopérer avec d autres systèmes Dom INF 2000/2001 Systèmes répartis 49

Langage de description pour Ada A la différence d IDL Le langage de description est un sous-ensemble du langage de l application, Ada 95 Les règles de typage, de visibilité et de sécurité sont préservées Le langage de description est beaucoup plus riche La sémantique est déjà connue et maîtrisée L unité de répartition est le paquetage Les paquetages sont regroupés en partitions Dom INF 2000/2001 Systèmes répartis 50

Plan Généralités Classes de systèmes répartis Exemples de systèmes répartis CORBA Ada 95 Concepts RPC et RPC évolués Objets répartis Résume des concepts Autres types de systèmes répartis Conclusion Dom INF 2000/2001 Systèmes répartis 51

Catégorisation des paquetages Des directives de compilation permettent de catégoriser certains paquetages pragma Remote_Call_Interface désigne un paquetage dont les sous-programmes peuvent être appelés à distance pragma Remote_Types désigne un paquetage dont les types peuvent être transportés pragma Shared_Passive désigne un paquetage contenant des variables partagées Dom INF 2000/2001 Systèmes répartis 52

Note sur le partitionnement Le partitionnement est un processus post compilatoire Il est possible de passer de monolithique en réparti et vice-versa sans recompilation Il est possible de repartitionner une application sans recompilation Il est facile de debugger une application non répartie en la rendant monolithique Dom INF 2000/2001 Systèmes répartis 53

Comparaison: le service Echo package EchoSvc is pragma Remote_Call_Interface; -- Les ici sous-programmes seront appelables déclarés à distance function return Echo_String String; (S : String) end EchoSvc; Dom INF 2000/2001 Systèmes répartis 54

Le service Echo analysé En présence de la directive Remote_Call_Interface, le compilateur Vérifie que tous les types utilisés sont transportables (tous les types scalaires et agrégats de types transportables) Génère deux codes différents, un pour la souche, un pour le squelette Cette directive ne change pas la sémantique du paquetage à laquelle il s applique Dom INF 2000/2001 Systèmes répartis 55

Utilisation du service Echo with Ada.Text_IO; use Ada.Text_IO; with EchoSvc; use EchoSvc; procedure CallEcho is begin Put_Line -- Génère (Echo_String un appel à («abcde»)); distance end CallEcho; Dom INF 2000/2001 Systèmes répartis 56

Traitement des exceptions with Ada.Text_IO; use Ada.Text_IO; with EchoSvc; use EchoSvc; procedure CallEcho is begin Put_Line -- Génère (Echo_String un appel à («abcde»)); exception distance when Put_Line others («Error => when calling Echo»); end CallEcho; Dom INF 2000/2001 Systèmes répartis 57

Sémantique des exceptions Sémantique préservée entre appel local et appel distant Possibilité de rattraper une exception inconnue par une clause «when others» Possibilité de relever une exception inconnue, puis de la rattraper par son nom Exception prédéfinie: Communication_Error Dom INF 2000/2001 Systèmes répartis 58

Appels asynchrones Permet de ne pas attendre de résultat Toute exception est perdue Création implicite de parallélisme Ne s applique que sur certaines procédures package Log is pragma Remote_Call_Interface; procedure Log (Event : in String); pragma Asynchronous (Log); end Log; Dom INF 2000/2001 Systèmes répartis 59

Plan Généralités Classes de systèmes répartis Exemples de systèmes répartis CORBA Ada 95 Concepts RPC et RPC évolués Objets répartis Résume des concepts Autres types de systèmes répartis Conclusion Dom INF 2000/2001 Systèmes répartis 60

Objets répartis en Ada Pointeurs de types généraux Pointeurs déclarés dans un paquetage Remote_Call_Interface ou Remote_Types Type pointé tagged: sommet d une hiérarchie limited: ne peut pas être copié ou comparé private: les champs ne peuvent être modifiés qu à travers les appels de méthodes Dom INF 2000/2001 Systèmes répartis 61

Déclaration de type «pointeur sur objet distant» package pragma Alerts Remote_Types; is type abstract Alert is procedure Handle tagged (A limited : access private; procedure Log (A : access Alert) Alert); type is AlertPtr abstract; -- Pointeur sur is access objet distant all Alert Class; private -- descendant de Alert end Alerts; Dom INF 2000/2001 Systèmes répartis 62

Pointeur sur objet distant (rappel) Pointeur Classe A Classe B Classe C Machine Adresse Dom INF 2000/2001 Systèmes répartis 63

Utilisation d un d pointeur sur objet distant S utilise comme un pointeur normal pour un appel de méthode (opération primitive) Ne peut pas être déréférencé hors d un tel appel Subit un double aiguillage Détermination de la partition sur laquelle se trouve l objet distant Détermination du sous-programme à appeler sur la partition Dom INF 2000/2001 Systèmes répartis 64

Exemple d utilisationd with Alerts; use Alerts; with Pools; use Pools; -- Pour Get_Alert procedure Main_Loop is begin loop Handle (Get_Alert); -- -- Get_Alert function est Get_Alert défini comme return AlertPtr; end loop; end Main_Loop; Dom INF 2000/2001 Systèmes répartis 65

Extension d un d objet réparti Un objet ne sait pas qu il est réparti, cela dépend si un pointeur sur objet distant existe Un objet réparti est étendu comme n importe quel objet local L extension doit elle aussi être privée Pas de possibilité de modifier les champs sans passer par les méthodes Elle offre néanmoins la même interface Dom INF 2000/2001 Systèmes répartis 66

Exemple d extensiond with Alerts; use Alerts; with Types; use Types; -- Pour Person package Medium_Alerts is pragma Remote_Types; type Medium_Alert is new Alert with private; private type Medium_Alert is new Alert with record Technician : Person; end record; end Medium_Alerts; Dom INF 2000/2001 Systèmes répartis 67

Utilisation des objets répartis Un objet réparti S obtient à partir d un objet local ou d une autre référence Cette référence peut être échangée par des appels de sous-programmes distants ou des appels de méthodes Il faut donc au moins un appel de sous-programme distant Il faut donc au moins un paquetage Remote_Call_Interface dans une application répartie Ada Dom INF 2000/2001 Systèmes répartis 68

Exemple: une collection d alarmed with Alerts; use Alerts; package AlertPool is pragma Remote_Call_Interface; procedure Register (A : in AlertPtr); pragma Asynchronous (Register); function Get_Alert return AlertPtr; end AlertPool; Dom INF 2000/2001 Systèmes répartis 69

Note sur le paquetage précédent On peut enregistrer une alarme, locale ou récupérée, de n importe où Trois partitions sont potentiellement en jeu Le producteur de l alarme, qui l enregistre auprès de Register La partition gérant AlertPool La partition appelant Get_Alert L appel à Handle reviendra à la première partition Dom INF 2000/2001 Systèmes répartis 70

Plan Généralités Classes de systèmes répartis Exemples de systèmes répartis CORBA Ada 95 Concepts RPC et RPC évolués Objets répartis Résume des concepts Autres types de systèmes répartis Conclusion Dom INF 2000/2001 Systèmes répartis 71

Résumé des mécanismes en jeu Paquetages Remote_Call_Interface Présents à un seul exemplaire dans une application Localisation automatique Indispensables pour faire communiquer des acteurs Objets répartis Double aiguillage lors d un appel de méthode Peut créer des liens entre partitions ne se connaissant pas Dom INF 2000/2001 Systèmes répartis 72

Mais comment ça marche? Code source Analyse syntaxique Arbre syntaxique Analyse sémantique? Exécutif des SR Exécutif Ada Arbre décoré Code objet Génération de code Arbre expansé Expansion Dom INF 2000/2001 Systèmes répartis 73

Comparaison des mécanismes de nommage Le nommage est Manuel pour les systèmes basés sur l envoi de messages (au mieux, fichier décrivant les services locaux) Assisté pour les RPC de base Largement assisté pour le système CORBA Totalement automatique pour Ada Dom INF 2000/2001 Systèmes répartis 74

Plan Généralités Classes de systèmes répartis Exemples de systèmes répartis Autres types de systèmes répartis Conclusion Dom INF 2000/2001 Systèmes répartis 75

Autres systèmes répartis PVM Système populaire, prévu pour le calcul scientifique Basé sur l envoi de message Supporte les messages de groupe Nécessite des appels explicites aux routines d emballage et de déballage (pas de contrôle de type) Dom INF 2000/2001 Systèmes répartis 76

Autres systèmes répartis (2) DCOM Objets répartis de Microsoft Concurrent direct de CORBA RMI Objets répartis de Java Supporte la migration de code Doit devenir compatible avec CORBA Dom INF 2000/2001 Systèmes répartis 77

Autres systèmes répartis (3) Erlang Langage développé par Ericsson pour développer des autocommutateurs Basé sur l envoi de messages typés entre processus, sans distinction de localité Transforme tout événement administratif (mort d un processus, etc.) en message Supporte la migration de code Dom INF 2000/2001 Systèmes répartis 78

Autres systèmes répartis (4) XML-RPC Utilise des technologies normalisées: XML HTTP Bénéficie d'un niveau de sécurité normalisé HTTPS (SSL+X509) SOAP Basé sur XML-RPC Développé par Microsoft Dom INF 2000/2001 Systèmes répartis 79

Autres systèmes répartis (5) Les réseaux actifs Ne se contentent plus d exécuter du code dans les nœuds finaux Transportent le code sur les routeurs qui en ont besoin (nouveaux protocoles) Permettent de localiser des services équivalents par anycast (imprimante sur un réseau par exemple) Dom INF 2000/2001 Systèmes répartis 80

Coopération entre systèmes répartis Des points existent pour faire coopérer des types de systèmes répartis incompatibles CIAO: exporter des services Ada 95 vers CORBA DROOPI: intergiciel générique (CORBA, Ada 95,...) Les systèmes répartis peuvent également converger RMI va adopter IIOP (de CORBA) GLADE (une implémentation de l annexe des systèmes répartis d'ada 95) va utiliser IIOP à travers DROOPI Dom INF 2000/2001 Systèmes répartis 81

Plan Généralités Classes de systèmes répartis Exemples de systèmes répartis Autres types de systèmes répartis Conclusion Dom INF 2000/2001 Systèmes répartis 82

Conclusion Les systèmes répartis sont à la mode Il existe de nombreuses manières de développer une application répartie Il faut considérer les différents facteurs Le système doit-il être sûr? Doit-il supporter plusieurs langages? Il est difficile de comparer deux concepts de systèmes répartis complexes Dom INF 2000/2001 Systèmes répartis 83