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