Systèmes d'Information Répartis
Systèmes d'Information Répartis
Systèmes d'Information Répartis
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Introduction au<br />
Middleware, aux systèmes distribués<br />
et au système d'information<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 1
Système d'informations<br />
• Ensemble des applications nécessaires au bon<br />
fonctionnement de l'entreprise<br />
• Applications dédiées (edt)<br />
• Applications standards (mail)<br />
• Applications d'infrastructures (ldap)<br />
➢ Ensemble de l'infrastructure supportant ces<br />
applications<br />
• Machines : Clients, Serveurs, Backup...<br />
• Réseau : ...<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 2
• <strong>Systèmes</strong> centralisés :<br />
Mise en oeuvre du SI<br />
– 1970-80, IBM, machine unique<br />
– AS 400/OS 390<br />
– Liaison série vers les postes<br />
– Enterprise Resource Planning<br />
• <strong>Systèmes</strong> client / serveur :<br />
– 80-90, IBM, base de données<br />
– NS/DK, BusinessObject, Oracle<br />
– L'application est décomposée en une partie cliente et une partie<br />
serveur<br />
– Le rôle du client et du serveur a largement évolué dans le temp<br />
• Client lourd (90) : client = Affichage, serveur= traitement + Data<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 3
Un système d'information médical<br />
• Des bases de données<br />
– Administratives<br />
– Dossier médical<br />
– Données médicales<br />
• Une infrastructure réseau<br />
– Liaisons Ethernet<br />
– Liaisons modem<br />
• Des postes de travail<br />
– MacIntosh, PC (WIN98, PC…)<br />
– Bureau du médecin, des infirmières…<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 4
• Gestion :<br />
Des applications médicales<br />
– administrative<br />
– du dossier médical<br />
– des médicaments<br />
– des lits<br />
– des actes<br />
– des examens<br />
– du courrier électronique<br />
– des annuaires<br />
– …<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 5
M a c I I<br />
C o m p a t i b l e I B M<br />
C o m p a t i b l e I B M<br />
Le système d'information<br />
M a c I I<br />
C o m p a t i b l e I B M M a c I I<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 6<br />
M a c I I<br />
M a c I I<br />
M a c I I
Les besoins du SI pour l'entreprise<br />
• Echange de données entre applications hétérogènes<br />
• Répartition des données sur des sites géographiques distants<br />
• Interopérabilité des plates-formes (ouverture)<br />
• Gestion des accès concurrents<br />
• Gestion de la Tolérance de panne<br />
• Persistance des données<br />
• Intégration des systèmes légacy<br />
• Sécurité<br />
==> Urbanisation du système d'information<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 7
• Application :<br />
Application<br />
– Logiciel s'exécutant sur une ou plusieurs machines et<br />
rendant un ou plusieurs services<br />
– Elle s'exécute en mémoire vive au dessus d'un système<br />
d'exploitation<br />
– Avant exécution, elle est stockée sur un support<br />
persistant (DD)<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 8
Exemple commande sur Internet<br />
• Authentification sur le réseau local<br />
• Connexion sur le serveur distant<br />
• Passage de la commande<br />
• Gestion du suivi<br />
• Gestion de relance<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 9
Un modèle d'exécution standard<br />
Application<br />
Système d'exploitation<br />
Processus<br />
Données<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 10
Applications distribuées<br />
• Un grand nombre d'applications ne s'exécutent pas<br />
intégralement sur un seul noeud de calcul<br />
– Il s'agit d'applications distribuées<br />
• L'intégration de la dimension réseau dans une<br />
application soulève un certain nombre de problèmes<br />
– Calcul distribué, Bases de données distribuées, Interfaces<br />
utilisateurs distantes...<br />
– Temps de réponse, consensus...<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 11
La distribution du SE (Processus)<br />
Système<br />
d'exploitation<br />
Données<br />
Application<br />
Système<br />
d'exploitation<br />
Données<br />
Clusters : Beowulf,<br />
SE distribués : Mach, Mosix...<br />
Grid Computing : http://www.gridforum.org<br />
Système<br />
d'exploitation<br />
Données<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 12
La distribution du SE (les données)<br />
Application<br />
Système<br />
d'exploitation<br />
Données Données<br />
Données<br />
Disques RAID<br />
Mémoire partagée<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 13
La distribution du SE (l'affichage)<br />
Application<br />
Cliente<br />
Système<br />
d'exploitation<br />
Telnet<br />
X11<br />
Ica/Vnc<br />
Application<br />
Serveur<br />
Système<br />
d'exploitation<br />
Données<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 14
Application<br />
Système d'exploitation<br />
Processus<br />
Données<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 15
Répartition "horizontale" d'une application<br />
Application de<br />
Présentation<br />
Système<br />
d'exploitation<br />
Données<br />
Application de<br />
traitement<br />
Système<br />
d'exploitation<br />
Données<br />
Application de<br />
Données<br />
Système<br />
d'exploitation<br />
Données<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 16
Client<br />
de<br />
présentation<br />
Répartition d'une application : e-<br />
Serveur de<br />
requêtes web<br />
Serveur de<br />
présentation<br />
Serveur de<br />
traitements<br />
Serveur de<br />
données<br />
mozilla apache tomcat jonas oracle<br />
Http<br />
html<br />
Client<br />
de<br />
présentation<br />
Serveur Web<br />
Serveur de traitement<br />
mozilla Apache<br />
php<br />
Http<br />
html<br />
php_jdbc<br />
Connecteur jk2 RMI<br />
Interface Java<br />
Serveur de<br />
données<br />
Mysql<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 17<br />
Jdbc<br />
Sql
Répartition "verticale" d'une application<br />
Application de<br />
Application<br />
traitement<br />
de<br />
Application<br />
traitement<br />
de<br />
Présentation<br />
Système<br />
d'exploitation<br />
Données<br />
Application de<br />
Application<br />
traitement<br />
de<br />
Application<br />
traitement<br />
de<br />
traitement<br />
Système<br />
d'exploitation<br />
Données<br />
Application de<br />
Application Donnéesde<br />
Application<br />
Données<br />
de<br />
Données<br />
Système<br />
d'exploitation<br />
Données<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 18
Client<br />
de<br />
présentation<br />
Proxy de<br />
répartition de<br />
charge<br />
Serveur de<br />
présentation<br />
Serveur de<br />
présentation<br />
Serveur de<br />
présentation<br />
Serveur de<br />
présentation<br />
Serveur de<br />
traitements<br />
Serveur de<br />
traitements<br />
Serveur de<br />
traitements<br />
Serveur de<br />
traitements<br />
Moniteur<br />
Transactionnel<br />
Serveur de<br />
données<br />
Serveur de<br />
données<br />
Serveur de<br />
données<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 19
La distribution indépendante du SE<br />
• Base de données :<br />
– Répliquées / Réparties<br />
• Moniteurs transactionnels<br />
• Web<br />
• Serveurs d'applications<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 20
Middleware<br />
• Le middleware est couche intermédiaire<br />
entre le système d'exploitation et<br />
l'application afin d'en améliorer sa mise en<br />
oeuvre<br />
Machine 1 Machine 2 Machine 3<br />
SE local<br />
Applications distribuées<br />
Middleware<br />
SE local<br />
SE local<br />
Réseau<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 21
Défis pour les systèmes distribués<br />
d'une manière générale<br />
• Modèles de connexion des ressources, des<br />
traitements, des données ou des utilisateurs<br />
• Gestion de l'hétérogénéité<br />
• Ouverture<br />
• Sécurité<br />
• Capacité de croissance<br />
• Gestion des pannes<br />
• Gestion de la concurrence<br />
• Gestion de la transparence<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 22
• Concepts<br />
Modèles de communication<br />
– C/S : Le client serveur, le modèle de base<br />
– Évènements : Principes des canaux de communication<br />
• P2P : les entités d'exécution sont identiques<br />
• Orienté Message : Synchrone/Asynchrone<br />
– Orienté Flux<br />
• Techniques<br />
– Communication de groupes<br />
– Espaces partagés : tableau blanc/tuple space<br />
– Protocole de validation distribuée : 2 phase commit<br />
– Tube Unix : IPC<br />
– Copier/Coller<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 23
• Réseau,<br />
• Matériel,<br />
Gestion de l'hétérogénéité<br />
• Système d'exploitation,<br />
• Langages de programmation,<br />
• Génie logiciel<br />
==> Le Middleware<br />
Machines virtuelles<br />
Plates-formes à composants<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 24
• Extensible,<br />
• Ré-implantation,<br />
Ouverture<br />
==> Interfaces publiques : posix<br />
==> Support de communication standard<br />
==> Normes : ISO, Ietf, OMG...<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 25
• Confidentialité<br />
• Intégrité<br />
Sécurité<br />
– Protection par contrôle des droits d'accès<br />
– Isolation (pare-feux)<br />
• Authentification, signature électronique<br />
– Identification des partenaires<br />
– Non-deni d'envoi ou de réception<br />
– Messages authentifiés<br />
– Respect possible de l'anonymat<br />
• Une méthode de base : la cryptographie<br />
– Aspects techniques<br />
– Aspects sociaux, juridiques et législatifs<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 26
Capacité de croissance (1)<br />
• Propriété souhaitables : éviter la dégradation des<br />
performances lorsque augmentent :<br />
– le nombre de sites et la distance entre les sites<br />
– le nombre d'utilisateurs / de processus<br />
– Le nombre de domaines de reponsabilité<br />
– le volume des données<br />
– la fréquence des interactions<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 27
Capacité de croissance (2)<br />
Techniques<br />
• Distribution : Répartir les données et les calculs entre plusieurs machines<br />
– Déplacement du calcul vers les clients (Applet Java)<br />
– <strong>Systèmes</strong> de nommage décentralisés (DNS)<br />
– <strong>Systèmes</strong> d'information décentralisés (WWW)<br />
• Réplication : Rendre des copies de données disponibles à plusieurs endroits<br />
– Serveurs de fichiers répliqués (Principalement pour la tolérance de pannes)<br />
– Bases de données répliquées<br />
– Site Web miroirs<br />
– <strong>Systèmes</strong> de mémoire partagées large échelle<br />
• Mise en cache : Permettre aux clients d'accéder à des copies locales<br />
– Caches Web (Proxy web)<br />
– Caches de fichiers (au niveau serveur et client)<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 28
• Quelques heuristiques<br />
Capacités de croissance (2)<br />
– Eviter la centralisation des données<br />
– Eviter les algorithmes nécessitant la participation de tous les sites<br />
– Déléguer et décentraliser les décisions<br />
• Mettre en oeuvre des techniques de croissance est facile à part un détail<br />
– Posséder de multiples copies (en cache ou répliqué) conduit à des<br />
inconsistances. Modifier une copie la rend différent du reste<br />
– Maintenir toutes les copies consistantes demande une synchronisation<br />
globale à chaque modification<br />
– La synchronisation globale empêche les solutions large-échelle<br />
• Remarque 1 : Si on tolère les inconsistances, le besoin de synchronisation<br />
global n'est pas nécessaire<br />
• Remarque 2 : Accepter les inconsistances est dépendant des applications !<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 29
Gestion des pannes<br />
• Système de pannes partiel<br />
– Détection de pannes<br />
– Masquage de pannes<br />
– Tolérance de pannes<br />
– Récupération de pannes<br />
– Redondance<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 30
Gestion de la concurrence<br />
• Plusieurs clients accèdent simultanément à<br />
une donnée partagée<br />
– Mécanisme de synchronisation<br />
– Mécanisme de transaction<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 31
Transparence de la distribution<br />
• Accès Masquer les différence de représentation de données et des<br />
mécanismes d'invocation (RPC)<br />
• Localisation On cache la localisation d'un objet<br />
• Migration Permettre à un système de changer l'emplacement d'un objet<br />
sans qu'il ne soit perturbé (migration à froid)<br />
• Relocalisation Masquer à un client la migration d'un objet qu'il est en<br />
train d'utiliser (migration à chaud)<br />
• Replication L'objet est présent sous la forme de plusieurs réplicats<br />
• Concurrence L'accès à un objet se fait par de multiples clients. La<br />
consistance globale doit être préservée<br />
• Panne Masquer la panne et éventuellement la reprise d'un objet<br />
• Persistance Masquer le fait qu'un objet est régulièrement sauvegardé<br />
==> La transparence peut être un but, sa réalisation est une autre histoire<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 32
Degré de transparence<br />
• La transparence totale c'est un peu trop<br />
– Les utilisateurs sont naturellement répartis, pourquoi<br />
masquer la distribution ?<br />
– Masquer complètement les pannes du réseau et des<br />
noeuds est impossible (résultat théorique)<br />
• Impossible de distinguer un ordinateur lent d'un ordinateur en panne<br />
• Impossible d'être certain qu'un ordinateur a réalisè une certaine<br />
opération avant de tomber en panne<br />
– La transparence totale a un coût<br />
• Conserver les caches exactement à jour à chaque MAJ de<br />
la copie principale<br />
• A chaque écriture en cache mémoire on écrit sur le disque<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 33
<strong>Systèmes</strong> distribués : Une vision globale<br />
•Caractéristiques des <strong>Systèmes</strong> distribués<br />
•Modèles de systèmes distribués<br />
•Réseaux<br />
Fondements<br />
•Communication Interprocessus<br />
•Objets distribués et Invocation distante<br />
•Sécurité<br />
•Nommage<br />
•Exemple : les EJB / Webservices<br />
Infrastructure Système<br />
•Support pour système d'exploitation<br />
•<strong>Systèmes</strong> de fichiers distribués<br />
•<strong>Systèmes</strong> multimédia distribués<br />
•Mémoire partagée distribuée<br />
•Exemple : Le système MACH<br />
Middleware<br />
•Temps et états globaux<br />
Algorithmes distribués<br />
•Coordination et Accords<br />
•Transaction et Contrôle de concurrence<br />
•Transactions distribuées<br />
•Réplication<br />
Données partagées<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 34
Biblio<br />
• Kenneth P. Birman, "Reliable Distributed Systems", Springer, 2005<br />
• George Coulouris, Jean Dollimore, Tim Kindberg "Distributed Systems : Concepts and Design »,<br />
Addison-Wesley<br />
• Michel raynald, Tous...<br />
• Andrew S. Tanenbaum "Distributed Operating Systems", Prentice-Hall<br />
• Sape Mullender, 2nd Edition "Distributed Systems », Addison-Wesley<br />
• Clemens Szyperski with Dominik Gruntz and Stephan Murer, "Component-Software Beyond Object-<br />
Oriented Programming"<br />
• Richard Monson-Haefel, "Enterprise JavaBeans"<br />
• Thierry Brethes, François Hisquin and Pierre Pezziardi "Serveurs d'applications", Eyrolles<br />
• Jean-Marie Chauvet, "Services Web avec SOAP, WSDL, UDDI, ebXML", Eyrolles<br />
• James Goodwill, "Mastering Jakarta Struts"<br />
Stéphane Frénot -MID - V.0.0.3 I-Intro 35