Ce document intitulé "Développement d'Applications Réparties" est destiné aux étudiants de Master 1 Réseaux et Systèmes Distribués de l'Université Abdelhamid Mehri – Constantine 2. Il couvre les notions suivantes:
- Organisations niveau matériel
- Organisations niveau OS
- Organisations niveau applicatif
- Architectures des systèmes distribués
- Classification de Flynn
- Architectures matérielles
- Vision matérielle d'un système distribué
- Organisations logicielles Niveau OS
- Organisations logicielles Niveau applicatif
- Client-serveur
- Peer-to-peer (P2P)
Cours Organisations des SD Architectures -Développement d'applications réparties
Télécharger PDFOrganisations des Systèmes Distribués (Architectures)
Sommaire
- Organisations niveau matériel
- Organisations niveau OS
- Organisations niveau applicatif
- Client/serveur
- Basé proxy
- Le peer-to-peer (p2p)
Les niveaux d’organisations des systèmes distribués
Couches de matériel et de logiciel
Architectures des systèmes distribués
- Architectures au niveau matériel
- Architectures au niveau systèmes d’exploitation
- Architectures au niveau applications réparties
Classification de Flynn (1972)
La classification de Flynn partage les machines en quatre catégories selon :
- Flot d’instruction : séquence d’instruction exécutée par la machine
- Flot de données : séquence des données appelées par le flux d’instructions
Architectures matérielles
- SISD : un seul flux d'instruction et un seul flux de données (ordinateurs centralisés), ordinateur séquentiel de Von Neumann.
- SIMD : un seul flux d'instruction et de multiples flux de données (machines //, vectorielles), parallélisme au niveau de la mémoire.
- MISD : multiples flux d'instruction et un seul flux de données.
- MIMD : multiples flux d'instruction et de multiples flux de données. L'architecture parallèle la plus utilisée.
Vision matérielle d'un système distribué
Critères de classifications:
- Selon l’adressage: Mémoire partagée / mémoire distincte
- Selon le type du réseau d’interconnexion: Bus / Commuté
Multiprocesseurs vs Multicalculateurs
Les multiprocesseurs (MIMD à mémoire partagée) échangent leurs données à la vitesse de la mémoire partagée.
Les multicalculateurs (MIMD à mémoire distribuée): chaque CPU a sa propre mémoire et son propre système d'exploitation. Il nécessite un middleware pour la synchronisation et la communication.
Organisations matérielles
Différentes organisations de base dans les systèmes distribués.
Vision logicielle d'un système distribué
Composé de plusieurs entités s'exécutant indépendamment et en parallèle sur un ensemble d'ordinateurs connectés en réseau.
Organisations logicielles Niveau OS
- Architecture au niveau systèmes d’exploitation
- Systèmes fortement couplés (systèmes d’exploitation distribués): vue globale unique des ressources.
- Systèmes faiblement couplés (systèmes d’exploitation réseau): plusieurs plateformes disposant de plusieurs systèmes d’exploitation différents qui coopèrent pour rendre leurs services et leurs ressources disponibles les uns aux autres.
- Systèmes basés middleware
Organisations logicielles Niveau OS
- Systèmes d’exploitation répartis
- Système d’exploitation réseau
- Middleware (intergiciel)
Comparaison entre organisations
Organisations logicielles Niveau applicatif
- Systèmes répartis
- Client/Serveur
- Basé Proxy (chapitres suivants)
- Peer to Peer
Client-serveur 2 niveaux (2-tiers)
- Le poste de travail n’héberge que l’interface homme-machine.
- Le serveur héberge les données et les traitements.
- Architecture dénommée «client léger» (années : 80 -> 85).
- Le poste de travail héberge l’ensemble de la gestion d’interface homme-machine et le traitement.
- Le serveur est un serveur de base de données.
- Architecture dénommée «client lourd-Fat».
Avantages et inconvénients
- Avantage
- Interface utilisateur riche
- Données centralisées
- Efficace pour un nombre réduit de clients.
- Inconvénients
- Fat client
- Mises à jours difficiles
- Montée en charge: (saturation rapide)
- Nombre de clients limité
Client-serveur 3 niveaux (3-tiers)
- Le poste de travail héberge la gestion d’interface homme-machine et une partie des traitements.
- Le serveur d’applications gère l’autre partie des traitements.
- Le serveur de données gère les accès aux données.
- Architecture dénommée « traitements coopératifs».
Avantages
- Première infrastructure informatique pour un travail coopératif.
- Centralisation des traitements au niveau du serveur.
- Pas de duplication des données (état global observable).
- Gestion plus simple de la cohérence et de l'intégrité des données.
- Maîtrise globale des processus.
- Workflow relativement élémentaires.
Inconvénient
- Surcharge du serveur applicatif.
Client-serveur n niveaux (n-tiers)
- Le poste de travail héberge la gestion d’interface homme-machine et une partie des traitements.
- Les serveurs d’applications gèrent les autres parties des traitements. Notion de spécialisation logique métier.
- Les serveurs de données gèrent les accès aux données.
Exemple du WWW
Client
Serveurs
User Navigateur Création Traitement BD Décodage Clic/URL Visualisation et envoi de la requête Décodage de la réponse Réseau de communication de la requête Construction de la réponse et envoi BD
Exemple
Le WWW: Les applications Web sont en général des applications multi-tiers qui se caractérisent par:
- Des clients identiques (navigateurs Web).
- Des serveurs: serveur Web + des programmes d’application (moteur PHP, …) + éventuellement un serveur de BD.
- Des échanges entre les tiers qui respectent des protocoles standards comme HTTP….
Le peer-to-peer (P2P)
Une autre façon de répartir des données et des services.
- Architecture point à point, adapté à l'envoi de message.
- Robuste par définition : pas de serveur; pas de client.
- Pour communiquer les participants (tout le monde peut devenir serveur).
- Il existe quand même des serveurs (≠ "peer-to-peer pur").
- Gère les index documents/@IP cliente.
- Optimise les recherches dans la répartition.
- Améliore la bande passante utilisée.
Exemples
- Napster (1 serveur central).
- Edonkey, Emule (plusieurs serveurs).
- Freenet et overnet (pas de serveur).
Le peer-to-peer (P2P)
Les composants (processus) d’un système distribué jouent des rôles similaires et coopèrent d’égal à égal pour réaliser une activité répartie.
Processus Requête de service et réponse Processus Processus
Le peer-to-peer (P2P)
Dans le cas serveur : protocole en 2 étapes.
- Demande au serveur les clients possédant un document.
- Etabli une communication client/client pour télécharger le document morceau par morceau.
- Indisponibilité d'un client🡪 routage vers un autre client.
Dans le cas sans serveur : protocole de propagation.
- Demande à un "ami" (client privilégié) un document si il ne peut pas ou pour équilibré la charge alors routage vers un autre client.
- La réponse suit le chemin inverse.
Exemples
Gnutella : protocole à base d’inondation TTL: time to live.
FAQ
Qu'est-ce qu'un système distribué ?
Un système distribué est un ensemble d'ordinateurs indépendants qui apparaissent aux utilisateurs comme un seul système cohérent.
Quelle est la différence entre un multiprocesseur et un multicalculateur ?
Les multiprocesseurs partagent une mémoire centrale, tandis que les multicalculateurs ont chacun leur propre mémoire et système d'exploitation.
Quels sont les avantages et inconvénients de l'architecture client-serveur ?
Les avantages incluent une interface utilisateur riche et des données centralisées, tandis que les inconvénients incluent des mises à jour difficiles et une saturation rapide.