Mr. Mehrez Boulares, Mr. Nour Ben Yahia Systèmes Répartis Mr. Mehrez Boulares, Mr. Nour Ben Yahia Institut Supérieure d’informatqiue du KEF 2013-2014
Introduction aux systèmes répartis Les ordinateurs ont subi des changements incroyables depuis leur mise en opération vers 1945: plus en plus de puissance, coût de fabrication a constamment diminué permettant aux usagers de disposer d'un objet peu dispendieux compte tenu de ce qu'il nous offre en retour. Les appareils subissent des changements constants et de plus en plus rapides tant du point de vue logiciel que matériel. Depuis très peu de temps, nous retrouvons sur le marché des systèmes multiprocesseurs, des systèmes d'exploitation pour le traitement parallèle et des réseaux puissants d'interconnexion. C'est là l'importance de prendre brièvement connaissance avec le système d'exploitation de demain. Nous sommes déjà entrés quelque peu dans l'informatique répartie qui elle nous amènera vers l'informatique distribuée. ISI Kef - 2013/2014
Introduction aux systèmes répartis L'informatique répartie s'oppose à la fois à l'informatique centralisée, celle des gros ordinateurs, et à l'informatique individuelle, celle des micro-ordinateurs. Elle pallie certains désavantages de cette dernière par : Le partage des données grâce à un accès individuel, en lecture, par le réseau à des fichiers communs situés sur un disque quelconque ainsi que par le transfert de fichiers d'un disque à un autre. Le partage des applications. Pour l'exploitation individuelle, par le réseau, d'un seul logiciel de base de données sur le disque d'une des machines connectées. Le partage des ressources : chaque utilisateur connecté peut utiliser une même imprimante. les communications : envoi par le réseau de courrier dans une boîte aux lettres électronique à un ou plusieurs utilisateurs connectés. Accès par le réseau téléphonique à des services d'informations : annuaires, banques de données, etc. ISI Kef - 2013/2014
Introduction aux systèmes répartis ISI Kef - 2013/2014
Introduction aux systèmes répartis ISI Kef - 2013/2014
Exemple de Système Réparti : Un intranet Source : Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001 ISI Kef - 2013/2014
Pourquoi une informatique répartie Raisons budgétaires : économie de logiciels, de matériels Raisons intrinsèques : adapter le système à l’application – BDD réparties, Web, systèmes bancaires… Besoin de partager – des informations : fichiers, BDD, messages – des ressources : unités de stockage, imprimantes, serveurs – Des services Accélérer le calcul – Parallélisation de tâches Alléger la charge : réduire les goulots d'étranglement Augmenter la fiabilité : duplication de machines, de données ⇒ réalisation de systèmes à haute disponibilité Qualité de service : diminuer les coûts, les délais, augmenter la disponibilité Réaliser des systèmes ouverts, évolutifs : adjonction facile de matériels et logiciels. ISI Kef - 2013/2014
Inconvénients Très peu de logiciels existent sur le marché. Le réseau peut très vite saturer. La sécurisation des données sensibles est compliquée. La mise en œuvre est difficile. ISI Kef - 2013/2014
Définitions (1) Un système à plusieurs processeurs n’est pas forcément un système réparti Qu’est-ce qu’un système réparti, distribué, parallèle ? Classification de flynn [1972]: On différencie les systèmes sur la base du flux d’instructions et de données. SISD : PC monoprocesseur SIMD : machines vectorielles MISD : pipeline MIMD : machines multiprocesseurs faiblement et fortement couplées (systèmes parallèles, systèmes distribués, systèmes d’exploitation réseaux) ISI Kef - 2013/2014
ISI Kef - 2013/2014
Classification de Flynn L'acronyme PU, de l'anglais, signifie processeur. Le terme « Instruction Pool » représente l'ensemble des instructions disponibles pour le ou les PU. Le terme « Data Pool » représente l'ensemble des données nécessaires aux calculs. ISI Kef - 2013/2014
Définitions (1) MIMD à mémoire partagée MIMD à mémoire distribuée Les processeurs ont accès à la mémoire comme un espace d'adressage global. Tout changement dans une case mémoire est vu par les autres CPU. La communication inter-CPU est effectuée via la mémoire globale. MIMD à mémoire distribuée Chaque CPU a sa propre mémoire et son propre système d'exploitation. Ce second cas de figure nécessite un middleware pour la synchronisation et la communication. Un système MIMD hybride est l'architecture la plus utilisée par les superordinateurs. Ces systèmes hybrides possèdent l'avantage d'être très extensibles, performants et à faible coût. ISI Kef - 2013/2014
Définitions (2) Un système réparti est un ensemble de sites reliés par un réseau, comportant chacun une ou plusieurs machines. "Un système réparti est un système qui vous empêche de travailler quand une machine dont vous n’avez jamais entendu parler tombe en panne" Lamport "Du point de vue utilisateur, un système réparti se comporte comme un système traditionnel, mais s’exécute sur de multiples unités indépendantes" Tanenbaum Un système d’exploitation réparti fournit et contrôle l’accès aux ressources du système réparti. Un système d’exploitation parallèle contrôle l’exécution de programmes sur une machine parallèle (multiprocesseurs). Un système d’exploitation de réseaux fournit une plateforme de machines reliées par un réseau chacune exécutant son propre système d’exploitation. ISI Kef - 2013/2014
Exemples de SRs WWW, FTP, Mail. Guichet de banque, agence de voyage. Téléphones portables (et bornes). Télévision interactive. Agents intelligents. Robots footballeurs. ISI Kef - 2013/2014
Les différentes structures Les structures centralisées Tous les courriers sont stockés sur C (station centrale). 1 usager = 1 boîte aux lettres sur C. Volume de stockage important sur C. Disponibilité du service = disponibilité de C. 1 opération = 1 transfert d'informations. L'architecture centralisée consiste en un noyau central fort autour duquel tous les périphériques sont regroupés (ou centralisées). Ce noyau central prend la plupart des actions. L'avantage est une facilité d'administration. ISI Kef - 2013/2014
Les différentes structures Structure décentralisée-ou répartie les architectures de réseau informatique se sont de plus en plus orientées vers une distribution des ressources et de la puissance informatique. Internet est sans doute l'exemple le plus marquant d'un réseau à architecture distribuée puisqu'il ne possède aucun site central. Dans la mise en œuvre de réseaux de moins grande ampleur, le degré de distribution (ou de centralisation) de la puissance de calcul, des périphériques, des bases de données dépend de différentes considérations stratégiques, humaines et professionnelles. ISI Kef - 2013/2014
Les différentes structures Structure parallèles (Systèmes de haute performance) Les ordinateurs parallèles sont des machines qui comportent une architecture parallèle, constituée de plusieurs processeurs identiques, ou non, qui concourent au traitement d'une application. La performance d'une architecture parallèle est la combinaison des performances de ses ressources et de leur agencement. (Latence, débit). ISI Kef - 2013/2014
Les différentes structures Structure parallèles (Systèmes de haute performance) Architectures parallèles : Pas de limite de mémoire. Pas de limite de processeurs. Accélération des calculs complexes ou coûteux en temps d'occupation CPU (calcul matriciel, simulation numérique, transformée de fourrier...). Calcul répétitif sur un large ensemble de données structuré. Traitement indépendant. ISI Kef - 2013/2014
Les différentes structures Structure parallèles (Systèmes de haute performance) Le parallélisme est la conséquence : Besoin des applications. Calcul scientifique. Traitement d'images. Bases de données qui demandent des ressources en CPU et en temps de calcul de plus en plus importantes. Limites des architectures séquentielles. Performance. Capacité d'accès à la mémoire. Tolérance aux pannes. ISI Kef - 2013/2014
Comparaison entre différentes architectures Comparaison des deux architectures de Systèmes de haute performance et de Systèmes distribués Un système parallèle de HP est une réponse à un besoin de HP : Une solution au problème. Un système distribué est une solution à un problème de distribution géographique (historiquement). Mais … de nos jours, la distribution peut résoudre un problème de HP. Donc, dans certains cas, un SD peut être considéré comme un système de HP. ISI Kef - 2013/2014
Comparaison entre différentes architectures Comparaison des deux architectures centralisée et distribuée L'architecture centralisée supporte un noyau central alors que l'architecture distribuée peut supporter plusieurs. Le coût de l'une ou l'autre architecture varie suivant le domaine. En règle générale, si les périphériques ne sont pas utilisés à plein temps (par exemple, une imprimante), l'architecture centralisée est plus économique (car on économise en se basant sur le fait que tous les périphériques ne seront jamais tous utilisés en même temps). Dans le cas contraire (carte vidéo, réseau de PC), c'est l'architecture distribuée la plus économique (un gros ordinateur coûte plus cher que 10 petits ordinateurs 10 fois moins puissants). ISI Kef - 2013/2014
Comparaison entre différentes architectures Comparaison des deux architectures centralisée et distribuée Du point de vu de l’architecture : Pas parallèle/Pas distribué : Machine séquentielle (un seul processeur). Parallèle/Pas Distribué : Machines vectorielles, Machines à mémoires partagées, Machines SIMD. Pas Parallèle/Distribué : Réseau d’ordinateurs avec communication lente exemple : Internet. Parallèle/Distribué : Réseau haut débit. ISI Kef - 2013/2014
ISI Kef - 2013/2014
ISI Kef - 2013/2014
Systèmes parallèles Systèmes répartis Systèmes d’exploitation de réseaux Processeurs Sites Ressources Homogènes Hétérogènes Partage ou non de mémoire Mémoires individuelles Couplage fort Couplage failbe Topologie du réseau d’interconnexion Réseau LAN + WAN Réseau LAN Les users sont au courant de la multiplicité des Processeurs Les users ont l’impression d’être dans un système centralisé Les users sont au courant de la multiplicité des Machines ISI Kef - 2013/2014
Identification des problèmes Que doit résoudre un système réparti ? Tolérance aux pannes. Passage à l’échelle. Nommage et accès aux applications. Intégration de l’existant. Déploiement des applications. Sécurité et authentification. Disponibilité de l’application ISI Kef - 2013/2014
Tolérance aux pannes En anglais : reliability, fault tolerance. Un serveur participant à l’application tombe en panne. Un serveur envoie des informations erronées. Un serveur n’est plus atteignable (mais pas en panne) puis le redevient. Atomicité dans les applications réparties. ISI Kef - 2013/2014
Passage à l’échelle En anglais : scalability. Ce qui marche pour un utilisateur, marchera-t-il pour 10 000 ? Ce qui marche pour un objet, marchera-t-il pour 1 000 000 ? Ce qui marche pour un site, marchera-t-il pour 1000 ? Exemple : les applications de gestion de commerce électronique. ISI Kef - 2013/2014
Nommage et accès aux applications En anglais : naming. Comment retrouver les objets distants ? Un objet = un identifiant + un état + un comportement. Applications non réparties : nommage géré par le langage (référence) ou par l’OS (adressage). Applications réparties : nommage explicite, dynamique ? Exemple de nommage : DNS, URL, … ISI Kef - 2013/2014
Intégration de l’existant En anglais : legacy. Connexion sur toutes les ressources d’une entreprise. Interopérabilité des applications. Transactions réparties. ISI Kef - 2013/2014
Déploiement des applications Comment installer tous les composants logiciels sur différents clients et serveurs ? Lorsque je change un nom de serveur ou j’en ajoute un, je recompile ? je redéploie ? ou je peux configurer automatiquement le redéploiement ? ISI Kef - 2013/2014
Sécurité et authentification Confidentialité. Intégrité : Droits d’accès, Pare-Feu. Authentification : Identification des applications partenaires. Non-répudiation. 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. ISI Kef - 2013/2014
Disponibilité d’une application répartie Exemple : un serveur qui fait de la tolérance aux pannes ne peut plus assurer d’autres tâches. Permettre des accès simultanés sur un même objet : Sérialiser les objets. Paralléliser les accès. Appliquer différentes politiques. Multi-threading. ISI Kef - 2013/2014
Notions de Middleware Middleware = Intergiciel = classe de logiciels systèmes agissant en qualité d’infrastructure pour le développement ou le déploiement d’applications reparties: exemple CORBA Supporte des applications tournant sur des plateformes matérielles et logicielles différentes. Le middleware fournit : – un support de haut niveau pour la distribution exemple invocation de méthodes à distance. – Des services de désignation, sécurité, transactionnels ISI Kef - 2013/2014
Le Middleware conceptualise et réalise les fonctions suivantes : communications entre les applications réparties, échanges de données, facilités de mise en œuvre. Il résout les problèmes d’intégration et d’interopérabilité : indépendance entre les applications et le système d’exploitation, portabilité des applications, partage des services distribués. Services d’un Middleware : communication, localisation, transactions, sécurité, administration ISI Kef - 2013/2014
Types de Middleware Middleware de bases de données (ODBC) Middleware à messages MOM Message OrientedMiddleware : IBM MQSeries, Microsoft Message Queues. Middleware à objets répartis (CORBA, JAVA RMI) Middleware à composants (EJB, COM/DCOM, Web services) Middleware à environnement : XML ISI Kef - 2013/2014
Historique et état de l’art • 1960 Syst. temps partagé(unix), envir. Graphiques, réseaux 1970 Ordinateurs personnels, Stations de travail Client/serveur, Réseaux locaux : Ethernet XeroxDFS 1980 Systèmes ouverts,Tolérance aux fautes Premiers serveurs de fichiers Évolution du C/S : Appel de procédures àdistance DNS en 85, Amoebaen 84, Mach en 86, Chorus en 88 1990 Internet, E-commerce AFS, NFS, LDAP DCE, corba, com/dcom ISI Kef - 2013/2014
Le modèle Client-Serveur (1/2) Coté serveur : Externalisation de services. Attente de requêtes en provenances de clients puis exécution des requêtes en séquentiel ou en parallèle. Interface : Skeleton reçoit l’appel sous forme de « stream » décapsule les paramètres demande l’exécution renvoi les paramètres (par références) et les résultats Coté client : Émission de requêtes puis attente de la réponse. Initiateur du dialogue. Interface : Stub Reçoit l’appel en local encapsule les paramètres attends les résultats du serveur décapsule les résultats redonne la main à la fonction appelante ISI Kef - 2013/2014
Le modèle Client-Serveur (2/2) Client/Serveur « traditionnel » : RPC Client/Serveur « à objets » : RMI, CORBA, DCOM Client/Serveur « de données » : Requêtes SQL Client/Serveur « WEB » : CGI, Servlet, asp, jsp, php,... ISI Kef - 2013/2014
Du centralisé vers le réparti ISI Kef - 2013/2014