Cours de Système et Réseaux Maîtrise Informatique 4 ème année Partie II : Programmation d Applications Réparties Yahya SLIMANI Dept Informatique Faculté des Sciences de Tunis Yahya.slimani@fst.rnu.tn Y. SLIMANI, FST Tunis 1
Introduction (1) Motivations du réparti Evolution technologique Machines Intégration d une plus grande puissance Réseaux Accessibles financièrement Bonnes performances Débit, QoS Y. SLIMANI, FST Tunis 2
Introduction (2) Applications modernes Intégration d applications Faible pourcentage de développement proprement dit Adaptation d applications existantes Composition d applications Y. SLIMANI, FST Tunis 3
Source: M. Quinson (ESIAL) Y. SLIMANI, FST Tunis 4
Introduction (3) Application répartie Ensemble d applicatifs Fonctionnement collaboratif Communication + Synchronisation Aspects d une application répartie Traitement Stockage Echange avec l extérieur Y. SLIMANI, FST Tunis 5
Applications (1) Composant de base Procédure Elément d exécution et d échange Encapsulation du fonctionnement interne Accessible par son interface Plate-forme Locale Distante Y. SLIMANI, FST Tunis 6
Applications (2) Utilisation Appel de procédure Local Distant Modèle RPC (Remote Procedure Call) Y. SLIMANI, FST Tunis 7
Modèles d exécution Plusieurs modèles Client/Serveur Communication par messages Communication par événements Objet Composant Services Services Web (Web services) Y. SLIMANI, FST Tunis 8
Modèle Client/Serveur Fonctionnalités Client Envoi de requêtes Demande de service Exécution synchrone Serveur Fournit un ou plusieurs services Exemples Serveur de fichiers, de BD, de noms, Y. SLIMANI, FST Tunis 9
Plate-forme d exécution (1) Centralisée Client et Serveur sur la même machine Appel de procédure classique Invocation de méthode (objet) Partage de ressources Communication par ressources partagées Signaux, Tubes (pipes) Y. SLIMANI, FST Tunis 10
Plate-forme d exécution (2) Répartie Client et Serveur sur deux machines distantes Pas de partage Communication par messages Hétérogénéité ou homogénéité Modèle de fonctionnement RPC (Remote Procedure Call) Appel de procédure à distance Y. SLIMANI, FST Tunis 11
Modèle RPC (1) Y. SLIMANI, FST Tunis 12
Modèle RPC (2) Avantages Unification entre local et distant Même forme d appel Même scénario d exécution Modèle abstrait Transparence de la distribution N apparaît pas en programmation Indépendance vis-à-vis des protocoles de communication Y. SLIMANI, FST Tunis 13
Modèle RPC (3) Caractéristiques Modèle défini en 1984 par Birel et Nelson Implémenté par SUN en 1988 Utilisé à large échelle Exemple: Protocole NFS Y. SLIMANI, FST Tunis 14
Modèle RPC (5) Source: Martin Quinson (ESIAL) Y. SLIMANI, FST Tunis 15
Modèle RPC (6) Source: Austran 99 Y. SLIMANI, FST Tunis 16
Modèle RPC (7) Mise en œuvre Gère l hétérogénéité des environnements d exécution Assure une certaine sécurité Authentification Confidentialité des échanges Gère les problèmes de défaillances Client, Serveur, Réseau Y. SLIMANI, FST Tunis 17
Conception (1) Découpage d une application Déterminer les procédures qui la composent Découpage fin (granularité fine) Augmentation du nombre d appels Peu de calcul interne Augmentation de la charge réseau Effet sur le temps de traitement Y. SLIMANI, FST Tunis 18
Conception (2) Augmenter le grain Trouver un équilibre entre calcul et communication Améliorer le ratio Coût/Communication Structuration applicative Découpage au sens entreprise L application correspond à une activité de l entreprise Y. SLIMANI, FST Tunis 19
Conception (3) 3 niveaux Présentation Interfaces essentiellement graphiques Logique applicative Traitements Applications métiers Données Gestion (stockage, accès, ) Y. SLIMANI, FST Tunis 20
Modèle à 1 niveau Source: S. Krakowiak Y. SLIMANI, FST Tunis 21
Modèle à 2 niveaux Source: S. Krakowiak Y. SLIMANI, FST Tunis 22
Modèle à 3 niveaux Source: S. Krakowiak Y. SLIMANI, FST Tunis 23
Modèle à 3 niveaux ( (Suite Suite) Source: S. Krakowiak Y. SLIMANI, FST Tunis 24
Modèle à 4 niveaux Source: S. Krakowiak Y. SLIMANI, FST Tunis 25
Schémas de conception (1) Conception et programmation d applications réparties Architecture de l application Définir les éléments de l application Relations entre ces éléments Désignation et liaison Comment nommer et découvrir Machines, Services, Y. SLIMANI, FST Tunis 26
Schémas de conception (2) Sécurité Différents niveaux Applicatif, OS, Données, etc. Gestion des erreurs Gestion des pannes Réseau, Client, Serveur Qualité de services (QoS) Gestion des transactions Transfert, exécution, erreurs, etc. Y. SLIMANI, FST Tunis 27
Application répartie Conception et mise en œuvre 3 concepts fondamentaux Encapsulation Séparation entre l interface et la partie programmation interne Abstraction Etre le plus indépendant possible Décomposition en niveaux Schémas de conception Patterns Y. SLIMANI, FST Tunis 28
Schéma Pattern (1) Design Patterns (Patrons de conception) Définition de règles qui tiennent compte de deux aspects Classe de besoins précise Environnement de mise en œuvre Caractéristiques Basés sur le passé (expériences) Solutions réutilisables Schéma de conception réutilisable Y. SLIMANI, FST Tunis 29
Schéma Pattern (2) Principes de conception Ne font aucune référence à l implémentation Solution à un problème récurrent Ne décrit pas toute la solution Dépendance vis-à-vis de l environnement Y. SLIMANI, FST Tunis 30
Schéma Pattern (3) Qu est ce qui n est pas pattern Brique de base Dépend de l environnement Une règle Ne s applique pas mécaniquement Une méthode Ne dit pas comment prendre une décision Le pattern est la solution Y. SLIMANI, FST Tunis 31
Schéma Pattern (4) Exemple MVC Modèle (Données) Vue (Représentation des données) Contrôle (Traitement sur les données) Motifs Adapter, Factory Y. SLIMANI, FST Tunis 32
Schéma Proxy Présentation Appelé aussi Schéma mandataire Eléments de l application Objets répartis Accessibles à distance par des clients Transparence totale pour le client Localisation Réseaux Protocoles, Routages, etc Y. SLIMANI, FST Tunis 33
Y. SLIMANI, FST Tunis 34
Schéma Factory (1) Schéma Fabrique Application Ensemble d objets distants Problèmes Créer dynamiquement plusieurs instances d une même classe Pas d espace partagé Paramétrer les instances Instances évolutives Pas de codage en dur Y. SLIMANI, FST Tunis 35
Schéma Factory (2) Solution Définition d une interface et d une organisation pour créer des objets Distinguer entre création fictive et création réelle Création réelle Déléguée à une fabrique qui implémente les méthodes de création Objectif d une factory Renvoyer des objets concrets qui implémentent une interface commune Y. SLIMANI, FST Tunis 36
Schéma Factory (3) Exemple Application où les utilisateurs doivent pouvoir exporter les données de plusieurs types d'objets (Personne, Société, Voiture, ) dans un format spécifique Ces objets ne doivent pas savoir qu'ils peuvent être exportés Contiennent juste des variables d'instance, des getters et setters mais jamais de méthode export() ou équivalent public static ExportObject createexportable(object source) Y. SLIMANI, FST Tunis 37
Schémas Wrapper (1) Schéma Adapter Fournisseurs délivrent des services Services accessibles par les clients Services définis par des interfaces Possibilité de modifier l interface d un serveur Convertir l interface d une classe vers une autre «interface» que le client connaît Y. SLIMANI, FST Tunis 38
Schémas Wrapper (2) Motivations Création de classes pour être réutilisées Contexte d utilisation de l objet n est pas dans le même domaine d utilisation que l application Exemple : Utiliser un objet Cercle dans un contexte d objets carrés Utilisation du code applicatif mais pas son interface Y. SLIMANI, FST Tunis 39
Schémas Wrapper (3) Principe Utilisation de l héritage multiple Créer un objet tiers (troisième objet) qui réunira deux objets de domaines différents Y. SLIMANI, FST Tunis 40
Schémas Interceptor (1) Schéma Intercepteur Basé sur la notion de service Contextes C/S, P2P, Synchrone, Asynchrone, Problèmes liés au service Modification, Mobilité, Y. SLIMANI, FST Tunis 41
Schémas Interceptor (2) Objectif Transformer un service sans modifier les clients et les serveurs Solution Créer des objets d interposition Interceptent les appels (retours) et insèrent des traitements spécifiques Y. SLIMANI, FST Tunis 42
Applications Web (1) Définition Manière standard d'invoquer une application distante et récupérer les résultats de son exécution à travers le web Web Support d exécution des applications Support de communication Indépendant de tout langage et de plate-forme Y. SLIMANI, FST Tunis 43
Applications Web (2) Motivations Intégration d applications Qu est ce que l on intègre? Service Spécialisation d une tâche Service courrier Problématiques Applications indépendantes Applications hétérogènes Y. SLIMANI, FST Tunis 44
Applications Web (3) Objectifs Interopérabilité entre applications Couplage faible Coopération à travers des interfaces Outil de base XML Y. SLIMANI, FST Tunis 45
Applications Web (4) Propriétés d un service Auto-descriptif Repérable ou identifiable à partir d une description Eléments d un service web WSDL Web Services Description Language Langage de description d une interface Y. SLIMANI, FST Tunis 46
Applications Web (5) Accès à un service Web SOAP Simple Object Access Protocol Protocole Internet pour la communication Annuaire des Services UDDI Universal Description, Discovery and Integration Protocole pour l enregistrement et la découverte de services Y. SLIMANI, FST Tunis 47
Mise en oeuvre Source: S. Krakowiak Y. SLIMANI, FST Tunis 48
WSDL Y. SLIMANI, FST Tunis 49
SOAP Présentation Mécanisme d échange d informations typées et structurées Description à l aide d XML Y. SLIMANI, FST Tunis 50
Source: S. Krakowiak Y. SLIMANI, FST Tunis 51
Source: S. Krakowiak Y. SLIMANI, FST Tunis 52
UDDI Présentation Annuaire de description des services Assure plusieurs fonctions Pages jaunes Fournisseurs de services (catégorie) Pages blanches Fournisseurs de services (nom) Pages vertes Définition des Services fournis Y. SLIMANI, FST Tunis 53