Vous êtes sur la page 1sur 30

NFP111 — Systèmes et Applications Réparties 1 de 30

Plan

Introduction aux
applications réparties
NFP111 — Systèmes et Applications Réparties
Exemples Cours 1 - Introduction
d’applications réparties
Conception et construction
Un exemple complet

Schéma général des


Claude Duvallet
applications réparties

Université du Havre
Problèmes généraux
UFR Sciences et Techniques
25 rue Philippe Lebon - BP 540
Modèles d’exécution
76058 LE HAVRE CEDEX
Courriel : Claude.Duvallet@gmail.com
Middleware
http://litis.univ-lehavre.fr/∼duvallet/
NFP111 — Systèmes et Applications Réparties 2 de 30

Plan
Plan de la présentation
Introduction aux
applications réparties

Exemples
Introduction aux applications réparties.
d’applications réparties
Conception et construction Les appels de procédure distante (RPC).
Un exemple complet

Propriétés d’ordre, algorithmique répartie.


Schéma général des
applications réparties Objets répartis et composants (CORBA, RMI, EJB) :
Les applications réparties avec RMI.
Problèmes généraux
Les applications réparties avec CORBA.
Modèles d’exécution L’approche composant avec les EJB.
Middleware Les annuaires LDAP (peut-être).
Mémoire virtuelle, fichiers.
Tolérance aux pannes.
NFP111 — Systèmes et Applications Réparties 3 de 30

Plan
WEBlographie
Introduction aux
applications réparties
J’ai souvent eu recours aux supports disponibles sur le WEB et
Exemples notamment à ceux des personnes suivantes :
d’applications réparties
Conception et construction Pascal Molli. Maître de conférences à l’Université Henry
Un exemple complet
Poincaré.
Schéma général des
applications réparties
Roland Balter. ScalAgent Distributed Technologies.
Cyrille Bertelle. Maître de conférences à l’Université du
Problèmes généraux
Havre.
Modèles d’exécution Damien Olivier. Maître de conférences à l’Université du
Middleware
Havre.
Éric Leclercq. Université de Bourgogne.
Samia Bouzefrane. Maître de conférences au CNAM de
Paris.
Nicolas Delestre. Maître de conférences àl’INSA de Rouen.
Gérard Florin. Professeur au CNAM de Paris.
NFP111 — Systèmes et Applications Réparties 4 de 30

Plan
Plan de la présentation
Introduction aux
applications réparties

Exemples 1 Introduction aux applications réparties


d’applications réparties
Conception et construction
Un exemple complet
2 Exemples d’applications réparties
Schéma général des
applications réparties
3 Schéma général des applications réparties
Problèmes généraux

Modèles d’exécution 4 Problèmes généraux


Middleware

5 Modèles d’exécution

6 Middleware
NFP111 — Systèmes et Applications Réparties 5 de 30

Plan
Les applications réparties : principes
Introduction aux
applications réparties
Application répartie = traitements coopérants sur des
Exemples
d’applications réparties
données réparties.
Conception et construction
Coopération = communications + synchronisation :
Un exemple complet
modèle d’exécution,
Schéma général des interface de programmation,
applications réparties
outils de développement.
Problèmes généraux Distribution des données :
données distribuées, traitement centralisé.
Modèles d’exécution
Distribution du contrôle :
Middleware données centralisées, contrôle distribué.
Distribution des utilisateurs :
données et contrôle centralisé, utilisateurs distribués.
⇒ une combinaison de tout ça...
NFP111 — Systèmes et Applications Réparties 6 de 30

Plan
Exemples d’applications réparties
Introduction aux
applications réparties
Coordination d’activités :
Exemples Systèmes à flots de données (« workflow »).
d’applications réparties
Conception et construction
Systèmes à agents.
Un exemple complet
Communication et partage d’informations :
Schéma général des
Bibliothèques virtuelles.
applications réparties Collecticiels :
Problèmes généraux
Édition coopérative.
Téléconférence.
Modèles d’exécution Ingénierie concourante.
Middleware
Applications temps réel :
Contrôle de procédés industriels.
Avionique, etc.
Localisation de mobiles.
Toutes les applications qui nécessitent des utilisateurs ou des
données réparties.
NFP111 — Systèmes et Applications Réparties 7 de 30

Plan
Construction d’applications réparties
Introduction aux
applications réparties

Conception de l’architecture de l’application.


Exemples
d’applications réparties Programmation des entités logicielles :
Conception et construction
Un exemple complet Utilisation d’un mécanisme de communication avec un
modèle d’exécution (socket, RMI, RPC, CORBA, etc.).
Schéma général des
applications réparties Programmation en fonction du modèle d’exécution.
Configuration des entités de diverses provenances :
Problèmes généraux
leur permettre de communiquer, d’échanger des données.
Modèles d’exécution leur permettre d’échanger des informations de contrôle.
leur permettre de se comprendre.
Middleware
Prendre en considération l’installation et le déploiement.
Administration :
Surveillance, maintenance et évolution des applications.
NFP111 — Systèmes et Applications Réparties 8 de 30

Plan
Conception d’un jeu de Morpion (1/2)
Introduction aux
applications réparties

Exemples
d’applications réparties Conception suivant une architecture Client/Serveur.
Conception et construction
Un exemple complet
Les échanges entre les clients et le serveur :
Schéma général des le client passe des commandes au serveur.
applications réparties
le serveur notifie au client les changements d’états aux clients
Problèmes généraux (joueur X a joué en (x,y)).
Choix d’un modèle d’exécution :
Modèles d’exécution
appel de procédure distante (RMI).
Middleware implémentation de méthodes d’accès au sein du serveur.
implémentation d’un client sous forme d’une applet.
NFP111 — Systèmes et Applications Réparties 9 de 30

Plan
Conception d’un jeu de Morpion (2/2)
Introduction aux
applications réparties

Exemples
d’applications réparties Configuration :
Conception et construction
Un exemple complet
mise en place des politiques de sécurité : fichiers de sécurité
et serveur d’authentification.
Schéma général des
applications réparties
configuration du serveur Web pour recevoir l’applet.
Déploiement (applet client) :
Problèmes généraux
copie des fichiers ".class".
Modèles d’exécution démarrage de rmiregistry.
démarrage du serveur HTTP.
Middleware
démarrage du serveur Morpion.
accès distant à la page Morpion.
NFP111 — Systèmes et Applications Réparties 10 de 30

Plan
Schéma général des applications réparties
Introduction aux
applications réparties

Exemples
... Applications
d’applications réparties
Conception et construction
Un exemple complet

Middleware
Schéma général des
applications réparties
Système de communication
Problèmes généraux

Site A Site B
Modèles d’exécution

Middleware
Middleware : couche logicielle destinée à
masquer l’hétérogénéité des machines et des systèmes,
masquer la répartition des données et des traitements,
fournir une API de programmation.
NFP111 — Systèmes et Applications Réparties 11 de 30

Plan
Problèmes généraux
Introduction aux
applications réparties

Exemples
d’applications réparties
Conception et construction
Tolérance aux pannes.
Un exemple complet
Passage à l’échelle.
Schéma général des
applications réparties Nommage et accès aux applications.

Problèmes généraux
Intégration de l’existant.
Déploiement des applications.
Modèles d’exécution

Sécurité et authentification.
Middleware
Disponibilité de l’application.
NFP111 — Systèmes et Applications Réparties 12 de 30

Plan
Tolérance aux pannes
Introduction aux
applications réparties

Exemples
d’applications réparties
Conception et construction
Un exemple complet
En anglais : reliability, fault tolerance.

Schéma général des


Un serveur participant à l’application tombe en panne.
applications réparties
Un serveur envoie des informations erronées.
Problèmes généraux
Un serveur n’est plus atteignable (mais pas en panne) puis le
Modèles d’exécution redevient.
Middleware Atomicité dans les applications réparties.
NFP111 — Systèmes et Applications Réparties 13 de 30

Plan
Passage à l’échelle
Introduction aux
applications réparties

Exemples
d’applications réparties
Conception et construction
Un exemple complet
En anglais : scalability.

Schéma général des


Ce qui marche pour un utilisateur, marchera-t-il pour 10 000 ?
applications réparties
Ce qui marche pour un objet, marchera-t-il pour 1 000 000 ?
Problèmes généraux
Ce qui marche pour un site, marchera-t-il pour 1000 ?
Modèles d’exécution
Exemple : les applications de gestion de commerce
Middleware électronique.
NFP111 — Systèmes et Applications Réparties 14 de 30

Plan
Nommage et accès aux applications
Introduction aux
applications réparties

Exemples
d’applications réparties
Conception et construction
En anglais : naming.
Un exemple complet

Comment retrouver les objets distants ?


Schéma général des
applications réparties Un objet = un identifiant + un état + un comportement.
Problèmes généraux Applications non réparties : nommage géré par le langage
(référence) ou par l’OS (adressage).
Modèles d’exécution
Applications réparties : nommage explicite, dynamique ?
Middleware
Exemple de nommage : DNS, URL, JNDI, LDAP, ...
NFP111 — Systèmes et Applications Réparties 15 de 30

Plan
Intégration de l’existant
Introduction aux
applications réparties

Exemples
d’applications réparties
Conception et construction
Un exemple complet

En anglais : legacy.
Schéma général des
applications réparties Connexion sur toutes les ressources d’une entreprise.
Problèmes généraux Interopérabilité des applications.
Modèles d’exécution Transactions réparties.

Middleware
NFP111 — Systèmes et Applications Réparties 16 de 30

Plan
Déploiement des applications
Introduction aux
applications réparties

Exemples
d’applications réparties
Conception et construction
Un exemple complet
Comment installer tous les composants logiciels sur
Schéma général des
applications réparties
différents clients et serveurs ?
Lorsque je change un nom de serveur ou j’en ajoute un, je
Problèmes généraux
recompile ? je redéploie ? ou je peux configurer
Modèles d’exécution
automatiquement le redéploiement ?
Middleware
NFP111 — Systèmes et Applications Réparties 17 de 30

Plan
Sécurité et authentification
Introduction aux
applications réparties

Exemples Confidentialité.
d’applications réparties
Conception et construction
Intégrité :
Un exemple complet
Droits d’accès, Pare-Feu.
Schéma général des Authentification :
applications réparties
Identification des applications partenaires.
Problèmes généraux
Non-répudiation.
Modèles d’exécution
Messages authentifiés.
Combien de personnes utilisent l’application, qui sont-ils ?
Middleware
Nécessité de se protéger contre les intrusions.
Nécessité de stocker les accès des clients dans des fichiers
journaux.
NFP111 — Systèmes et Applications Réparties 18 de 30

Plan
Disponibilité d’une application répartie
Introduction aux
applications réparties

Exemples
d’applications réparties
Conception et construction
Un exemple complet
Exemple : un serveur qui fait de la tolérance aux pannes ne
peut plus assurer d’autres tâches.
Schéma général des
applications réparties Permettre des accès simultanés sur un même objet :
Problèmes généraux Sérialiser les objets.
Paralléliser les accès.
Modèles d’exécution
Appliquer différentes politiques.
Middleware Multi-threading.
NFP111 — Systèmes et Applications Réparties 19 de 30

Plan
Les différents modèles d’exécution
Introduction aux
applications réparties
Modèle Client-Serveur :
Exemples RPC, RMI, CORBA, Servlet,...
d’applications réparties
Conception et construction Modèle de communication par messages :
Un exemple complet
MOM : Message Oriented Middleware.
Schéma général des Files de messages.
applications réparties
Modèle de communication par événements.
Problèmes généraux Modèle à base de composants :
Modèles d’exécution
Bean, EJB.
Modèle à base d’agents mobiles :
Middleware
Agglet, Voyager.
Modèles à mémoires « virtuelles » partagées :
Modèles à espace de tuples.
Modèles à objets dupliqués.
NFP111 — Systèmes et Applications Réparties 20 de 30

Plan
Le modèle Client-Serveur (1/2)
Introduction aux
applications réparties
Coté serveur :
Exemples Externalisation de services.
d’applications réparties
Conception et construction
Attente de requêtes en provenances de clients puis exécution
Un exemple complet
des requêtes en séquentiel ou en parallèle.
Schéma général des
Interface : Skeleton
applications réparties reçoit l’appel sous forme de « stream »
décapsule les paramètres
Problèmes généraux
demande l’exécution
Modèles d’exécution
renvoi les paramètres (par références) et les résultats
Coté client :
Middleware É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
NFP111 — Systèmes et Applications Réparties 21 de 30

Plan
Le modèle Client-Serveur (2/2)
Introduction aux
applications réparties

Exemples
d’applications réparties
Conception et construction
Client/Serveur « traditionnel » :
Un exemple complet
RPC
Schéma général des Client/Serveur « à objets » :
applications réparties
RMI, CORBA, DCOM
Problèmes généraux
Client/Serveur « de données » :
Modèles d’exécution Requêtes SQL

Middleware
Client/Serveur « WEB » :
CGI, Servlet, asp, jsp, php,...
NFP111 — Systèmes et Applications Réparties 22 de 30

Plan
Le modèle de communication par messages
Introduction aux
applications réparties
Module de synchronisation :
Exemples Communication asynchrone
d’applications réparties
émission non bloquante,
Conception et construction
Un exemple complet réception bloquante (attente jusqu’à réception d’un message).
Mode de communication :
Schéma général des
applications réparties Communication directe entre processus (agents).
Communication indirecte (boîtes aux lettres).
Problèmes généraux
Mode de transmission :
Modèles d’exécution Peut-être typé
Les environnements :
Middleware
les sockets sous Unix.
la programmation parallèle en MPI, PVM.
les Middlewares à messages (MOM).
la normalisation JMS (Java Messenging Service).
NFP111 — Systèmes et Applications Réparties 23 de 30

Plan
Le modèle de communication par événements
Introduction aux
applications réparties
Concepts de bases :
Exemples événements, réactions.
d’applications réparties
Conception et construction
Principe d’attachement :
Un exemple complet
association dynamique entre un type d’évènement et une
Schéma général des
réaction.
applications réparties Communication anonyme :
Problèmes généraux
indépendance entre l’émetteur et les « consommateurs » d’un
évènement.
Modèles d’exécution Deux modes : PULL et PUSH
PULL : les clients viennent prendre régulièrement leurs
Middleware
messages.
PUSH : une méthode prédéfinie est attachée à chaque type
de message et elle est appelée automatiquement à chaque
occurrence de l’évènement.
NFP111 — Systèmes et Applications Réparties 24 de 30

Plan
Le modèle à base de composants
Introduction aux
applications réparties
Définition d’un composant :
Exemples module logiciel autonome et réutilisable.
d’applications réparties
Conception et construction
composable visuellement et donc dynamiquement pour
Un exemple complet
construire une application.
Schéma général des Beans, EJB, CORBA Component.
applications réparties
Caractéristiques d’un composant :
Problèmes généraux
des entrées/sorties déclarées pour permettre les connexions
entre plusieurs composants.
Modèles d’exécution
des propriétés déclarées permettant de configurer le
Middleware
composant.
Composant Java Beans :
Bean = classe + conventions d’écriture :
Entrées : les méthodes publiques.
Propriétés : variables d’instances et accesseurs/modificateurs.
Sorties : les événements émis.
On connecte et on configure des instances.
Les instances sont crées par un BeanContainer (modèle par
composition).
NFP111 — Systèmes et Applications Réparties 25 de 30

Plan
Les composants Beans
Introduction aux
applications réparties
Le BeanContainer doit être capable d’interroger les instances
Exemples pour :
d’applications réparties
Conception et construction
découvrir les propriétés qui peuvent être manipulées,
Un exemple complet
comment elles doivent l’être,
Schéma général des
découvrir les événements qui doivent être émis,
applications réparties utilisation de l’introspection (au moyen de la classe class).
Problèmes généraux
Conventions d’écriture :
constructeur de la classe sans paramètres,
Modèles d’exécution méthodes commençant par set ou get pour manipuler les
propriétés,
Middleware
méthodes commençant par add et remove pour manipuler les
événements.
Un bean n’est pas forcément un composant visuel : il remplit
une fonction (entrées/sorties/propriétés).
Un bean peut accéder à un objet distant (RMI, CORBA, etc.),
se connecter à une base de données.
NFP111 — Systèmes et Applications Réparties 26 de 30

Plan
Les Enterprise Java Beans
Introduction aux
applications réparties
Un environnement pour la répartition des objets répartis :
Exemples un serveur qui gère tous les problèmes de répartitions.
d’applications réparties
Conception et construction
le développement d’objets métiers conforme au modèle de
Un exemple complet
l’environnement.
Schéma général des
Les serveurs d’EJB ou serveurs d’applications : il s’agit d’un
applications réparties cadre d’exécution pour des composants obéissant à un
Problèmes généraux
modèle (COM ou EJB), c’est-à-dire un ensemble de services
permettant la bonne exécution des composants :
Modèles d’exécution les services de base ;
l’administration, l’exploitation, la sécurité ;
Middleware
les passerelles vers l’existant ;
la persistances.
Quatre services de base :
accès aux composants,
optimisation de l’accès aux ressources locales et distantes,
gestion transactionnelle,
répartition de charge.
NFP111 — Systèmes et Applications Réparties 27 de 30

Plan
Les modèles par agents mobiles
Introduction aux
applications réparties
Code mobile = programme se déplaçant d’un site à un autre
Exemples
d’applications réparties
sur le réseau.
Conception et construction
Un exemple complet
Exemple : les applets = programme exécutable inclut dans
une page HTML et qui s’exécute sur le site qui télécharge la
Schéma général des
applications réparties page.
Avantage de la mobilité :
Problèmes généraux
efficacité, privilégie les interactions locales,
Modèles d’exécution moins de communications distantes effectuées pour les
échanges de messages,
Middleware
amener le code aux données plutôt que le contraire,
permet à des clients d’étendre les fonctions d’un serveur pour
des besoins spécifiques.
Les agents mobiles :
entités logicielles permettant de construire des applications
naturellement distribuées,
utilisation de ressources allouées,
autonomie et déplacement sur différents sites d’un réseau.
NFP111 — Systèmes et Applications Réparties 28 de 30

Plan
Modèles à mémoires « virtuelles » partagées
Introduction aux
applications réparties (1/2)
Exemples
d’applications réparties Objectifs :
Conception et construction
Un exemple complet Replacer le programmeur dans les conditions d’un système
centralisé :
Schéma général des
applications réparties
utiliser un espace mémoire commun pour les communications,
synchronisation des applications par variables partagées.
Problèmes généraux Avantages :
Modèles d’exécution
transparence de la distribution pour le développeur,
efficacité du développement car utilisation des paradigmes
Middleware usuels de la programmation concurrente.
Problématique :
Utilisation des outils de développement existant.
Mise en œuvre efficace d’une mémoire partagée distribuée.
NFP111 — Systèmes et Applications Réparties 29 de 30

Plan
Modèles à mémoires « virtuelles » partagées
Introduction aux
applications réparties (2/2)
Exemples
d’applications réparties
Conception et construction
Un exemple complet
Approches utilisées :
Modèles à espace de tuples :
Schéma général des
applications réparties bases de données relationnelles partagées,
modèle de programmation à la « linda » : dépôt, retrait et
Problèmes généraux consultation d’objets.

Modèles d’exécution
Modèles à objets répartis partagées :
espace d’objets répartis partagés,
Middleware interface de programmation : langage à objets « étendus »,
plusieurs modes de réalisation : objets répliqués ou objets à
image unique.
NFP111 — Systèmes et Applications Réparties 30 de 30

Plan
Middleware
Introduction aux
applications réparties
Le Middleware conceptualise et réalise les fonctions
Exemples suivantes :
d’applications réparties
Conception et construction
communications entre les applications réparties,
Un exemple complet
échanges de données,
Schéma général des
facilités de mise en œuvre.
applications réparties Il résout les problèmes d’intégration et d’interopérabilité :
Problèmes généraux
indépendance entre les applications et le système
d’exploitation,
Modèles d’exécution portabilité des applications,
partage des services distribués.
Middleware
Services d’un Middleware :
communication,
localisation,
transactions,
sécurité,
administration.