Caractéristiques des systèmes distribués Chargé de cours : Lévis Thériault Département de génie logiciel et des TI LOG730
Sommaire Définition des systèmes distribués Conséquences de la définition Motivations pour les systèmes distribués Exemples de systèmes distribués Les défis à relever 2
Objectif du chapitre Définir et identifier les caractéristiques des systèmes distribués Placer les systèmes distribués dans un contexte réaliste par des exemples Atteindre des connaissances sur les défis reliés à l hétérogénéité, l ouverture (openness), la sécurité, l extensibilité (scalability), la gestion des défaillances, la concurrence et la transparence 3
Définition des systèmes distribués Maarten Van Steen, Andrew S. Tanenbaum: «Ensemble d ordinateurs indépendants qui paraissent à l utilisateur comme étant un seul système cohérent» 4
Définition des SD Coulouris, Dollimore, Kindberg (2nd edition): «Ensemble d ordinateurs autonomes liés par réseau, avec des logiciels conçus pour produire des caractéristiques de traitement intégrés» Exclut les clients légers 5
Définition des SD Coulouris, Dollimore, Kindberg (3rd and 4th edition): «Système formé de composants matériels ou logiciels localisés sur des ordinateurs reliés par réseau qui communiquent et coordonnent leurs actions par seulement le passage de messages» Exclut les systèmes fortement couplés 6
Processus Flux d instruction S exécutent en concurrence Interagissent dans le but d atteindre un but Coordonnent leurs activités en échangeant des informations par moyens de messages transférés à travers de réseau 7
Conséquences de la définition Concurrence: - Processus concurrents et autonomes - Permet le partage de ressources entre utilisateurs: données, services et matériels - Problèmes typiques des systèmes concurrents: impasse (deadlock), communication moins fiable 8
Conséquences de la définition Absence d horloge globale: - Coordination par passage de messages asynchrone - Limite la précision de synchronisation d horloge Pas d état globale: - Aucun processus dans un SD ne peut savoir l état courante globale du système 9
Conséquences de la définition Défaillances indépendantes: - Processus s exécutent en indépendance et en isolation - Défaillance d un processus peut rester indétectable par un autre - Défaillance du réseau isolent les processus et les parties du système 10
Motivations pour les SD Partage de ressources: - Ressources rares ou coûteuses peuvent être partagées Balancement de charge - Pour avoir plus de performance - Les machines les plus sollicitées peuvent être allégées en ajoutant plusieurs machines miroirs 11
Motivations pour les SD Puissance de calcul parallèle (Clusters): - Plusieurs processeurs travaillent le même problème afin de le résoudre rapidement Séparation physique entraîne une fiabilité - Pour quelle raison? Économie: - Les processeurs distribués offrent le meilleur rapport performance / prix que les mainframes (10 rapide, 1000 cher) 12
Exemples de SD Internet Intranet Périphériques d information sans fil Système multimédia distribué Clusters Etc. 13
Exemple: Internet Ordinateurs, applications et réseaux hétérogènes ISP intranet backbone satellite link desktop computer: server: network link: 14
Exemple: Intranet Réseau administré localement Propriété (ex., réseau de l ÉTS) Connecté à l Internet à travers le router Fournit des services internes et externes print and other servers email server Desktop computers Web server Local area network email server File server print other servers the rest of the Internet router/firewall 15
Exemple: Périphériques d information sans fil Téléphones cellulaires Portables dans un LAN sans fil Internet Host intranet Wireless LAN WAP gateway Home intranet Printer Camera Mobile phone Laptop Host site 16
Les défis à relever 1. Hétérogénéité 2. Ouverture (openness) 3. Sécurité 4. Extensibilité (scalability) 5. Gestion des défaillances 6. Concurrence 7. Transparence 17
Défi 1: hétérogénéité Hétérogénéité: variété et différence Hétérogénéité doit être masquée Hétérogénéité à plusieurs niveaux: - Réseaux - Système d exploitation - Langages de programmation Les normes sont exigées 18
Défi 1: hétérogénéité Logiciels à couche intermédiaire (Middleware): - Permettent de masquer les couches logicielles - Permettent à des nœud hétérogènes de se communiquer - Uniformisent les modèles de traitement - Fournissent un support pour les applications distribuées: - Appel des objets distants - Accès distant à SQL - Traitement des transactions distribuées Exemples: CORBA, Java RMI, Microsoft DCOM 19
Défi 1: hétérogénéité Code mobile: code conçu pour migrer entre plusieurs ordinateurs - Besoin de surmonter l hétérogénéité du matériel Machine virtuelle: - Compilateurs génère un code intermédiaire (bytecode) pour la MV - MV implémentée pour chaque type de matériels 20
Défi 2: ouverture Systèmes ouverts: - Assurent l extensibilité et la maintenabilité - Facilitent l ajout de nouvelles ressources partagées Facteurs importants: - Spécification et documentation - Publication des interfaces - Mécanismes de communication uniformes - Tests de vérification et validation de tous les périphériques 21
Défi 2: ouverture Exemple historique: UNIX & C ouvert pour - Développeurs d applications: tous les outils disponibles à travers les interfaces des appels systèmes - Vendeurs de matériels et administrateurs des systèmes : facilité d étendre pour de nouveaux périphériques - Vendeurs de logiciels et utilisateurs: indépendance du matériel 22
Défi 2: ouverture Autres exemples: - Protocole Internet: RFC (Request For Comments) - Discussion - Spécification du protocole - CORBA (Common Objects Request Broker Architecture) - Spécification des interfaces - www.omg.org 23
Défi 3: sécurité Trois composantes: - Confidentialité (protection contre divulgation d information à des individus non-autorisés - Intégrité (protection contre les modifications nonautorisées) - Disponibilité (protection contre les attaques) Le défi: - Envoyer des informations sensibles à travers le réseau d une façon efficace et fiable 24
Défi 3: sécurité Exemple 1: accéder des informations sur les examens par un système de fichier à travers le réseau - Authentification: comment peut on être sur que seul le professeur peut accéder aux données? Exemple 2: envoyer un numéro de carte de crédit à travers l Internet - Confidentialité: seul le site recevant peut lire les données Solution: cryptographie 25
Défi 3: sécurité Problèmes non résolus: - Rupture d un service par des messages de bombardement - Sécurité du code mobile: - Effets imprévisibles - Comportement du cheval de Troie 26
Défi 4: extensibilité Un SD est extensible s il reste efficace quand le nombre d usagers ou de ressources augmente Défis: - Contrôler les coûts de ressources - Contrôler les pertes de performance - Prévenir la rupture de ressources - Éviter les goulots d étranglement des performances 27
Défi 4: extensibilité Augmentation exponentielle des ordinateurs dans l Internet Date Ordinateurs Serveurs Web Percentage 1993, Juillet 1,776,000 130 0.008 1995, Juillet 6,642,000 23,500 0.4 1997, Juillet 19,540,000 1,203,096 6 1999, Juillet 56,218,000 6,598,697 12 Voir aussi le site Web: http://www.wallonie-isoc.org/internet_documents-enfrancais/hobbes_internet-timeline_trad.htm 28
Défi 5: gestion des défaillances Détection - Erreurs possibles (e.g. : vérification de la somme de contrôle) - Erreurs impossibles (serveur brisé, serveur lent) - Défi: gérer les défaillances indétectables 29
Défi 5: gestion des défaillances Masquage - Des défauts peuvent être masqués - Duplication - Espace: e.g..: écrire sur plusieurs disques - Time: e.g.: transmission de messages multiples 30
Défi 5: gestion des défaillances Tolérance (e.g: fureteur qui détecte des erreurs) Recouvrement: - Restaurer l état correcte du système - Revenir en arrière en utilisant un fichier journal (log files) 31
Défi 5: gestion des défaillances Redondance: - Tolérer les défauts en utilisant des composants redondants - Possible avec la duplication - Peut exister à plusieurs niveaux: matériels, logiciels et conception - E.g.: routes redondantes dans le réseau, duplication des tables de noms dans plusieurs serveurs de noms 32
Défi 6: concurrence Gérer plusieurs requêtes simultanées pour la même ressource Synchroniser les processus ou les fils d exécution (Threads) Les objets et ressources partagés doivent garantir l exactitude Éviter les impasses ou interblocages (deadlock) 33
Défi 7: transparence Masquer l hétérogénéité et la nature distribuée du système pour paraître à l usager comme un seul système 8 types de transparence (ANSA / ISO) - Accès, localisation, concurrence, duplication, défaillance, mobilité, performance et l extensibilité 34
Défi 7: transparence Accès: permet aux ressources locaux et distantes d être accédées en utilisant les mêmes opérations Localisation: permet aux ressources d être accédées sans connaître leurs localisations Concurrence: permet à plusieurs tâches d opérer en concurrence sans interférence Duplication: permet à plusieurs instances du ressource d être utilisées pour augmenter la fiabilité et la performance sans connaissance de la duplication de la part des utilisateurs et des applications 35
Défi 7: transparence Défaillance: permet la dissimulation des défauts. Mobilité: permet le mouvement des ressources et des clients du système sans affecter le fonctionnement des programmes. Performance: permet au système de se configurer pour améliorer la performance lorsque la charge varie. Extensibilité: permet au système et aux applications de s étendre sans changer la structure du système ou les algorithmes des applications. 36
Conclusion Système distribué - Autonome, ordinateurs interconnectés Plusieurs motivations pour l utilisation des SD SD sont très communes de nos jours: - E.g.: Internet, LAN Défis: hétérogénéité, ouverture, sécurité, extensibilité (scalability), gestion des défaillances, concurrence, transparence 37
À faire Les exercices 1.1, 1.2, 1.7 et 1.11 pour le prochain cours 38