Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
SYSTÈMES RÉPARTIS [email protected] 2010-11
WEBLIOGRAPHIE 2
J’ai souvent eu recours aux supports disponibles sur le WEB et notamment au cours des personnes suivantes: Claude Duvallet : maître de conférences en Informatique à
l’université de Havres. Gérard Florin: professeur en informatique au CNAM de Paris. Michel RIVEILL : professeur d'informatique à l'Ecole
Polytechnique de l'Université de Nice Yahya Slimani : professeur en informatique à la Faculté des
Sciences de Tunis Sacha Krakowiak: professeur émérite en informatique à
l’université Joseph Fourier, Grenoble
Introduction au systèmes répartis
Système centralisé 4
Tout est localisé sur la même machine 1 processeur : une horloge commune 1 mémoire centrale : un espace d’adressage
commun 1 système d’exploitation
Gestion centralisée des ressources Etat global du système facilement reconstiuable
Accès local aux ressources
Emergence du réparti
Evolution technologique machines
de plus en plus performantes avec une baisse des prix
Équipement réseau de plus en plus rapides
5
Regroupement des machines Puissance de calcul et de stockage Moins de centralisation : accès multiples + partage de
ressources Flexibilité, facilité d’extension du système (matériels, logiciels)
Systèmes répartis (1/3)
"Un ensemble de machines connectées par un réseau, et équipées d’un logiciel dédié à la coordination des activités du système ainsi qu’au partage de ses ressources."
6
"Un système réparti est un système qui s’exécute sur un ensemble de machines sans mémoire partagée, mais que pourtant l’utilisateur voit comme une seule et unique machine."
« Coulouris et al. »
« Tanenbaum »
Systèmes répartis (2/3) 7
Types de ressources Calcul Stockage Electronique
capteur, satellites, scanneurs, …
Architecture Plusieurs processeurs plusieurs horloges Plusieurs mémoires pas de mémoire partagée Réseau d’interconnexion et de communication
Systèmes répartis (3/3)
Fonctionnement collaboratif: des traitements coopérants sur des données réparties pour réaliser une tâche commune
La coopération entre les processus correspond à la communication entre eux et la synchronisation de leurs évolutions.
La répartition peut concerner les données comme les traitements (tâches).
8
Caractéristiques (1/2) 9
Absence d’état global pas de référence spatiale commune à cause de
l’absence (dans la majorité des cas) d’une mémoire partagée
Pas de référence temporelle commune à cause de l’existence de plusieurs processeurs ayant chacun sa propre horloge
Existence d’un réseau non géré par le système d’exploitation le comportement du système réparti dépend de l’état
du réseau
Caractéristiques (2/2) 10
Architecture matérielle Multi-processeurs à mémoire
partagée Clusters (grappes) d’ordinateurs
Ordinateurs puissants (serveurs dédiés) et indépendants
Ordinateurs PC en réseau
Architecture logicielle (système) Entités logicielles séparées
s’exécutant en parallèle
Exemples
Commerce électronique l'échange de biens et de services entre deux
entités sur les réseaux informatiques. Grilles informatiques
des ressources hétérogènes (ordinateurs, téléphones mobiles…) et distribuées (différents lieux) pour différents usages (calcul, espace de stockage…)
Partage de fichiers Fichiers stockés sur un serveur Accessible de n’importe quelle machine
Réseaux sociaux
11
Tolérance aux pannes Un système réparti doit pouvoir tolérer la panne des
machines : Une machine tombe en panne. Une machine envoie des informations erronées. Une machine n’est plus atteignable (problème réseau)
Propriétés 12
Propriétés 13
Hétérogénéité
Comment s’affranchir des différences matérielles et logicielles des ressources du système ?
Sources d’hétérogénéité machines (architecture matérielle) systèmes d'exploitation langages de programmation protocoles de communications
Sécurité
Confidentialité
Intégrité : Droits d’accès, Pare-Feu
Authentification Identification des applications partenaires Non-répudiation (s'assurer qu’un contrat signé via internet, ne
peut être remis en cause par l’une des parties) Messages authentifiés.
Combien de personnes utilisent l’application, qui sont-ils ? Nécessité de se protéger contre les intrusions Nécessité de stocker les accès des clients dans des fichiers
journaux
Propriétés 14
Disponibilité Prêt à l’utilisation et toujours disponible
Abstraction (séparation interface/réalisation) : accès à un
service via une interface d’accès en faisant abstraction à son implémentation.
Propriétés 15
Transparence Propriété fondamentale : Tout cacher à l’utilisateur
La répartition doit être non perceptible : une ressource distante est accédée comme une ressource locale
Cacher l'architecture et le fonctionnement du système réparti
L'ISO définit plusieurs transparences accès, localisation, concurrence, réplication, mobilité, panne,
performance, échelle
Propriétés 16
Propriétés 17
Transparence d'accès Accès à des ressources distantes aussi facilement que localement Accès aux données indépendamment de leur format de
représentation Transparence de localisation
Accès aux éléments/ressources indépendamment de leur localisation
Transparence de concurrence Exécution possible de plusieurs processus en parallèle avec
utilisation de ressources partagées Transparence de réplication
Possibilité de dupliquer certains éléments/ressources pour augmenter la fiabilité
Propriétés 18
Transparence de mobilité Possibilité de déplacer des éléments/ressources
Transparence de panne Doit supporter qu'un ou plusieurs éléments tombe en panne
Transparence de performance Possibilité de reconfigurer le système pour en augmenter les
performances Transparence d'échelle
Doit supporter l'augmentation de la taille du système (nombre d'éléments, de ressources ...)
Le passage à l’échelle (scalability) : un paramètre primordial pour la longévité (continuité
ou durée) pour tout système est sa capacité d’évolution en fonction des besoins émergents.
un système réparti doit montrer une capacité acceptable de passer à l’échelle: Ce qui marche pour un utilisateur, marchera-t-il pour des
milliers (voir des millions) ? Ce qui marche pour un site, marchera-t-il pour des milliers ?
Problèmes 19
Le nommage et l’accès Comment identifier les ressources distantes et les
retrouver? Système centralisé: nommage géré par le système
d’exploitation (adressage). Système réparti: utilisation d’annuaires et de services de
nommage
Problèmes 20
Intégration de l’existant Connexion sur toutes les ressources d’une entreprise. Interopérabilité des applications.
Déploiement des applications Comment installer tous les composants logiciels de
l’application sur les différentes machines?
La modification d’un service ou l’ajout d’un autre, nécessite la recompilation, et/ou redéploiement de l’application?
Est il possible de reconfigurer automatiquement le redéploiement ?
Problèmes 21
Applications répartis 22
Système et application répartis 23
Système : gestion des ressources communes et de l’infrastructure, lié de manière étroite au matériel sous-jacent Système d’exploitation : gestion de chaque élément Système de communication : échange d’information entre les éléments Caractéristiques communes : cachent la complexité du matériel et des
communications, fournissent des services communs de plus haut niveau d’abstraction
Application : réponse à un problème spécifique, fourniture de services à ses utilisateurs (qui peuvent être d’autres applications). Utilise les services généraux fournis par le système
La distinction n’est pas toujours évidente, car certaines applications peuvent directement travailler à bas niveau (au contact du matériel). Exemple : systèmes embarqués
Schémas de répartition (modèles d’exécution) 24
Modèle Client-Serveur Modèle de communication par messages Modèle de communication par événements Modèle à base de composants Modèle à base d’agents mobiles Modèles à mémoires partagées Modèle orienté service
Modèle Client-Serveur 25
Client : processus demandant l’exécution d’une opération à un autre processus
Serveur : processus accomplissant une opération sur demande d’un client, et lui transmettant le résultat
Modèle Requête/Réponse : Requête : message transmis par un client à un serveur
décrivant l’opération à exécuter Réponse : message transmis par un serveur à un client suite à
l’exécution d’une opération, contenant le résultat de l’opération
Mode de communication synchrone le client envoie la requête et attend la réponse. Emission bloquante
Modèle de communication par messages (1/2) 26
Une application produit des messages (producteur) et une application les consomme (consommateur)
Le producteur (l’émetteur) et le consommateur (récepteur) ne communiquent pas directement entre eux mais utilisent un objet de communication intermédiaire (boîte aux lettres ou file d’attente)
Communication asynchrone : Les deux composants n'ont pas besoin d'être connectés en
même temps grâce au système de file d'attente Emission non bloquante: l’entité émettrice émet son message,
et continue son traitement sans attendre que le récepteur confirme l'arrivée du message.
Le récepteur récupère les messages quand il le souhaite.
Modèle de communication par messages (2/2) 27
Adapté à un système réparti dont les éléments en interaction sont faiblement couplés : éloignement géographique des entités communicantes possibilité de déconnexion temporaire d’un élément
Deux modèles de communication : Point à point: Les messages ne sont lus que par un seul consommateur.
Une fois qu'un message est lu, il est retiré de la file d'attente. Multi-points ou Publish/Subscribe (par abonnement) :
les applications consommatrices des messages s'abonnent à un topic (sujet)
Les messages envoyés à ce topic restent dans la file d'attente jusqu'à ce que toutes les applications abonnées aient lu le message
Exemples: la messagerie électronique, surveillance des systèmes (changement
d’états de configuration, alertes, statistiques)
Modèle de communication par événements 28
Concepts de base Evénement = changement d'état survenant de manière asynchrone
(par rapport à ses “clients”) Réaction = exécution d’une opération prédéfinie liée à l’événement
Mode de communication asynchrone et anonyme indépendance entre l’émetteur (producteur) et les destinataires
(consommateurs) d’un événement Deux modes de consommation des messages:
« Mode Pull » - réception explicite : les clients viennent prendre régulièrement leurs messages
« Mode Push » - délivrance implicite : une méthode prédéfinie est attachée à chaque type de message et elle est appelée automatiquement à chaque occurrence de l’évènement. la réception d'un événement entraîne l'exécution de la réaction associée
Modèle à base de composants 29
Composant : module logiciel autonome et réutilisable. Caractéristiques d’un composant :
des entrées/sorties déclarées pour permettre les connexions entre plusieurs composants
des propriétés déclarées permettant de configurer le composant
Simplifier la conception et le développement des applications avec les composants: Réutilisabilité Indépendance autonomie
Modèle à base d’agents mobiles (1/2) 30
Code mobile : programme se déplaçant d’un site à un autre sur le réseau
Exemple : les applets = programme exécutable inclut dans une page
HTML et qui s’exécute sur le site (machine) qui télécharge la page.
Avantage de la mobilité : efficacité, privilégie les interactions locales moins de communications distantes effectuées pour les
échanges de messages amener le code aux données plutôt que le contraire
Modèle à base d’agents mobiles (2/2) 31
Les agents mobiles : entités logicielles permettant de construire des applications distribuées
Un agent mobile peut se déplacer d'une machine à une autre sur réseau.
Un agent qui s'exécute sur une machine peut, à tout moment, arrêter son exécution, se déplacer sur une autre machine et reprendre son exécution (à partir de son dernier état)
Modèles à mémoire partagée 32
Objectif: Replacer le programmeur dans les conditions d’un système
centralisé : utiliser un espace mémoire commun pour les communications
Avantages: transparence de la distribution pour le développeur, efficacité de développement (utilisation des paradigmes
usuels de la programmation concurrente). Inconvénient:
Complexité de mise en œuvre efficace d’une mémoire partagée distribuée
Modèle orienté service 33
Un modèle d'interaction basé sur la notion de service
Un service est un composant logiciel exécuté par un producteur à l'attention d'un consommateur
Une nouvelle vision dans la conception des applications réparties
Middleware 34
Motivations 35
Dans un système réparti, l’interface fournie par les systèmes d’exploitation et de communication est encore trop complexe pour être utilisée directement par les applications: Hétérogénéité (matérielle et logicielle) Complexité des mécanismes (bas niveau) Nécessité de gérer la répartition
Solution Introduire une couche logicielle intermédiaire (répartie) entre les
niveaux bas (systèmes et communication) et le niveau haut (applications) : c’est l’intergiciel (Middleware en anglais)
L’intergiciel joue un rôle analogue à celui d’un “super-système d’exploitation” pour un système réparti
Middleware 36
Un middleware ou « intergiciel » ou « élément du milieu » est l'ensemble des couches réseau et services logiciel qui permettent le dialogue entre les différents composants d'une application répartie.
Gartner Group définit le middleware comme une interface de communication universelle entre processus.
Représente l’élément le plus important de tout système réparti.
Middleware 37
Positionnement du middleware (couche du milieu)
Site 1 Site 2
Middleware 38
Fonctions Masquer l’hétérogénéité (des machines, systèmes,
protocoles de communication) Fournir une API (Application Programming Interface) de
haut niveau Permet de masquer la complexité des échanges Facilite le développement d'une application répartie
Rendre la répartition aussi invisible (transparente) que possible
Fournir des services répartis d’usage courant
Middleware 39
Services du middleware Conversion
permet la communication entre machines mettant en œuvre des formats différents de données
prise en charge par la FAP (Format And Protocol)
Nommage permet d'identifier la machine serveur sur laquelle est
localisé le service demandé afin d'en déduire le chemin d'accès.
fait, souvent, appel aux services d'un annuaire.
Middleware 40
Sécurité permet de garantir la confidentialité et la sécurité des
données à l'aide de mécanismes d'authentification et de cryptage des informations
Communication permet la transmission des données entre les deux
systèmes
Types de middleware 41
Middleware RPC (Remote Proceedure Call) RPC de SUN
Middlewares orientés objets distribués Java RMI, Corba
Middlewares orientés composants distribués EJB, Corba, DCOM
Middlewares orientés messages JMS de Sun, MSMQ de Microsoft, MQSeries de IBM
Middlewares orientés sevices Web Services (XML-RPC, SOAP)
Middlewares orientés SGBD ODBC (Open DataBase Connectivity), JDBC de Sun
Middlewares transactionnels JTS de Sun, MTS de Microsoft
Communications 42
Présentation 43
Elément fondamental d’un système réparti Plusieurs systèmes séparés physiquement Reliés par un réseau
Définit leur interconnexion Leur permet de communiquer entre eux
Outils de communication 44
Problématique Réaliser un service réparti en utilisant l’interface de transport
(TCP, UDP)
Mise en œuvre Bas niveau
Utilisation directe de la couche transport Sockets : mécanisme universel de bas niveau, utilisable depuis tout
langage (exemple : C, Java) Haut niveau
Utiliser les services offerts par les middlewares (Services plus complexes Appel de procédure à distance (RPC), dans un langage particulier ;
exemple : C Appel de méthode à distance, dans les langages à objets ; exemple : Java RMI
le réseau vu de l’utilisateur 45
Schéma Client/Serveur Même machine : client et serveur sur la même machine Machines différentes : client demande un service fournit par
un serveur sur une autre machine Un service est souvent désigné par un nom symbolique (email, http://...,
telnet, etc.). Ce nom doit être converti en une adresse interprétable par les
protocoles du réseau. La conversion d’un nom symbolique (http://www.google.com) en une
adresse IP (216.239.39.99) est à la charge du service DNS
le réseau vu de l’utilisateur 46
Le serveur (machine physique) peut comporter différents services: L’adresse IP du serveur ne suffit pas, il faut préciser le service demandé au moyen d’un numéro de port, qui permet
d’atteindre un processus particulier sur la machine serveur. Un numéro de port comprend 16 bits (0 à 65 535). Les numéros de 0 à 1023 sont réservés, par convention, à des services
spécifiques. Exemples :
22 : ssh, 23 :telnet (connexion à distance) 80 : serveur web, 25 : mail, 21: FTP