04.07.2013 Views

Systèmes d'Information Répartis

Systèmes d'Information Répartis

Systèmes d'Information Répartis

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!