“ Chapitre 1
Introduction aux applications
réparties
M1 EMIG Genie Logiciel
Introduction
Systèmes répartis ?
Ø Un système réparti est un ensemble de composants
matériels (ordinateurs, capteurs, caméras, ….)
interconnecté entre eux par un réseau de communication
(qui communiquent entre eux via un réseau)
Ø Les différents composants ne se partagent pas une
mémoire centrale (pas de mémoire partagée).
2 September 24, 2024
Introduction
Système répartis ?
Ø Ensemble composé d’éléments reliés par un système de
communication ;
Les éléments ont des fonctions:
Ø de traitement (processeurs)
Ø de stockage (mémoire)
Ø et de relation avec le monde extérieur (capteurs, actionneurs,
périphériques..)
3 September 24, 2024
Introduction
Système répartis ?
Autres définition
Ø Tanenbaum (2012) : a défini un système réparti comme un système qui
s'exécute sur un ensemble de machines sans mémoire partagée, mais
l'utilisateur les voit comme une seule et unique machine.
Ø Coulouris et al(2012: un système réparti est défini comme étant un
ensemble de sites(machines) autonomes connectés par un réseau de
communication, et équipés d'un logiciel dédié à la coordination des
activités du système ainsi qu'au partage de ressources.
4 September 24, 2024
Introduction
Système centralisé ?
Un système informatique centralisé est un système dans lequel tous les
calculs sont effectués par un seul ordinateur, au même endroit.
Ø Tout est localisé sur la même machine et accessible par le programme
Ø L’exécution s’effectue sur une seule machine
Ø Accès local aux ressources (données, code, périphériques, mémoire...)
5 September 24, 2024
Introduction
Architecture centralisée et architecture répartie
6 September 24, 2024
Introduction
Architecture centralisée et architecture répartie
7 September 24, 2024
Introduction
En conclusion
Ø Système réparti: est un système composé de plusieurs
machines autonomes qui communiquent à
l'intermédiaire d'un réseau quelconque (filaire ou sans
fil), par l'échange de messages.
8 September 24, 2024
Pourquoi un systéme reparti ?
• Aspects économiques (rapport prix/performance)
• Adaptation de la structure d’un système à celle des applications
(géographique ou fonctionnelle)
• Besoin d’intégration (applications existantes)
• Besoin de communication et de partage d’information
• Réalisation de systèmes à haute disponibilité
• Partage de ressources (programmes, données, services)
• Réalisation de systèmes à grande capacité d’évolution
9 September 24, 2024
Pourquoi un systéme reparti ?
Systéme centralisé Systéme réparti
Un seul OS Differents OS
Espace mémoire partagé Mémoire individuelles
Pas de reseau Reseau, firewall
Service local Retrouvé le service ? Qui le propose ?
Un seul langage de programmation Differents langage
Les users travaillent sur une seule machine Les users ont l’impression de travailler sur une seule
machine: Transparence
10 September 24, 2024
Objectifs de la répartition
Très variés
§ Partage de ressources
§ Tolérance aux fautes (disponibilité, fiabilité...)
§ Plus de capacités de stockage
§ Plus de capacités de traitement
§ Répartition géographique de l’environnement du système informatique
§ Extensibilité et développement incrémental
§ Flexibilité
§ Réduction des coûts
11 September 24, 2024
Domaines d’applications
Très diversifiés
ü – Calcul scientifique
ü – Simulation distribuée
ü – Multimédia
ü – Téléconférence
ü – Travail coopératif
ü – Installations industrielles
ü – Robotique
ü – Télécommunications
ü – Bourse, finance
ü – Réalité virtuelle
ü – Intelligence artificielle, Multi-agents – Jeux en réseaux
12 September 24, 2024
Domaines d’applications
Coordination d’activités
•
• Systèmes de workflow
• Systèmes à agents
13 September 24, 2024
Domaines d’applications
Communica)on et partage d’informa)on
Ø Collecticiels : pour le travail coopératif, les bibliothèques, musées et magasins virtuels sur
Internet,la presse et le commerce électronique, etc.
Ø Édition coopérative.
Ø Téléconférence.
Ø Ingénierie concourante.
14 September 24, 2024
Domaines d’applications
Applications temps réel
• Contrôle de procédés industriels
• Localisation de mobiles
Toutes les applications qui nécessitent des utilisateurs ou des données réparties
15 September 24, 2024
Avantages de la répartition
Ø Sécurité
Ø Accélération des calculs
Ø Transparence
Ø Flexibilité
Ø Fiabilité
Ø Accès distant
Ø Redondance
16 September 24, 2024
Avantages de la répartition
Sécurité
Les applications sont conçues selon une approche modulaire
permettant d'isoler les données, et donc protéger les accès.
17 September 24, 2024
Avantages de la répartition
Accélération des calculs
un calcul peut être découpé en sous calculs réalisables en même
temps (en parallèle), le système réparti permet alors de répartir les
calculs sur les différents processus afin de les exécuter
simultanément.
Lorsqu'un site est surchargé, certaines tâches peuvent être
déplacées ou allouées à un site moins chargé (la répartition des
charges).
18 September 24, 2024
Avantages de la répartition
Transparence
L'utilisation des ressources n'influe pas sur leurs états.
19 September 24, 2024
Avantages de la répartition
Flexibilité
L'ajout ou la suppression d'un site est une opération simple, et
n'influe pas sur le fonctionnement total du système.
20 September 24, 2024
Avantages de la répartition
Fiabilité
Un des buts des systèmes répartis est d'obtenir des systèmes plus
fiables que les monoprocesseurs.
Si une machine tombe en panne, une autre machine devrait prendre
la relève, cette situation entraîne généralement la duplication des
données partagées pour accroître la robustesse du système.
21 September 24, 2024
Avantages de la répartition
Accès distant
Un même service peut être utilisé par plusieurs sites, situés à des
endroits différents.
22 September 24, 2024
Avantages de la répartition
Redondance
Des systèmes redondants permettent de palier une faute matérielle,
où de choisir le service équivalent avec le temps de réponse le plus
court.
23 September 24, 2024
Inconvénients de la répartition
Les inconvénients des systèmes répartis sont des (pseudos) inconvénients,
Ce sont des problèmes concernant surtout la communication,
- L'absence d'une horloge globale
- La lenteur de la communication
- La perte des messages
24 September 24, 2024
Inconvénients de la répartition
L'absence d'une horloge globale
Chaque noeud possède sa propre horloge pour dater les événements qui lui sont locaux.
Par conséquent, si les horloges indépendantes de chaque noeud ne sont pas
parfaitement synchronisées, l'ordre des événements n'est pas déductible à partir des
datations locales.
Cette difficulté conduira à définir des datations logiques qui permettent de corriger ce
problème.
25 September 24, 2024
Inconvénients de la répartition
La lenteur de la communication
malgré le degré de fiabilité offert par les réseaux de communication, et les vitesses de
transmission qu'ils proposent(avec l'arrivée des fibres optiques), les réseaux restent relativement,
et on dit bien relativement lents par rapport à la vitesse de calcul sur les machines, ce qui implique
un grand temps d'attente dans le cas d'un travail coopératif entre les processus, et donc on obtient
une perte concernant la performance du système.
26 September 24, 2024
Inconvénients de la répartition
La perte des messages
parfois, les réseaux de communication ne sont pas fiables, quelques messages transportés par ces
réseaux peuvent être perdus, et donc on doit réémettre ces messages, les protocoles de détection,
de perte, et la génération des nouveaux messages reste jusqu' à maintenant un des domaines de
recherche dans les systèmes répartis
27 September 24, 2024
Autres Inconvénients des applications
reparties
v La gestion du système est totalement décentralisée et distribuée
v Une mise en œuvre plus délicate
v Les applications réparties sont plus difficiles à à concevoir, à programmer, à déployer et à administrer
v Les applications réparties imposent un mode de développement spécifique, et alourdissent le test et le
déploiement du logiciel.
v Problèmes réseaux: Si problème au niveau du réseau, le système peut tomber en panne.
v Problème serveur: En générale un serveur est central au fonctionnement du système. Si le serveur
plante, le système ne fonctionne pas.
28 September 24, 2024
Distinction entre “système” et
“application” ?
Système
Gestion des ressources communes et de l’infrastructure, lié de manière étroite au matériel sous-
jacent.
Ex: Système d’exploitation : gestion de chaque élément
29 September 24, 2024
Distinction entre “système” et
“application” ?
Application
Réponse à un problème spécifique, fourniture de services à ses utilisateurs (qui peuvent être
d’autres applications). Utilise les services généraux fournis par le système.
La distinction n’est pas toujours évidente, car certaines applications peuvent directement travailler à
bas niveau (au contact du matériel). Exemple : systèmes embarqués, réseaux de capteurs
30 September 24, 2024
Programmation “classique” vs. Informatique Répartie.
•Programma'on classique : En programma+on classique lorsque qu’un
programme a besoin d’un service, il appelle une fonc+on d’une librairie, une
méthode d’un objet, etc.
•Informa'que Répar'e
•Proposer des méthodes et ou+ls pour simplifier le développement d’applica+ons réseau Client-Serveur,
en essayant de s’abstraire de l’aspect “distant” : proposer une programma+on “naturelle”
• Pour les applica+ons “lourdes” :
• Décomposer les applica+ons en ensembles de services
• Ra+onaliser la répar++on des services pour limiter les échanges d’informa+ons
31 September 24, 2024
Applications réparties: Rappels
Applica'on informa'que
v Une application informatique est un programme exécutable sur une machine ou plusieurs machines qui
représente la logique de traitement des données manipulées.
• 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
• L’application émet un résultat sou forme de données soit affichées, soit enregistrées sur un disque
v Un grand nombre d’applications ne s’exécutent pas intégralement sur un seul nœud de calcul. Il s’agit
d’applications reparties (distribuées).
v Application repartie = traitements coopérants sur des données reparties.
32 September 24, 2024
Application réparties
Une application informatique est dite répartie lorsqu'elle met en jeu des parties qui s'exécutent sur
plusieurs machines reliées par un système de communication.
Applications réparties : Ensemble de processus (d’objets, d’agents, d’acteurs) qui : Communiquent
entre eux via un réseau, Évoluent de manière cohérente, Remplissent une fonction identifiable, Ne
sont pas forcément interdépendants.
33 September 24, 2024
Application réparties
Une application répartie est composée de plusieurs entités s'exécutant indépendamment et en
parallèle sur un ensemble d'ordinateurs connectés en réseau pour répondre à un problème
spécifique en utilisant les services généraux fournis par le système.
Les applications réparties ne se résument pas à l’échange de données en réseau. Mais mettent
en œuvre réellement une coopération des programmes entre eux.
34 September 24, 2024
Exemples d’applications réparties
Exemple recherche sur le web: un navigateur Internet
Exemple: -Echange sur Internet : Système de réservation d’avion et d’hôtel,
Échange à l’intérieur des réseaux d’entreprise: outils de production industrielle
o Réseaux sociaux o Jeux en ligne o Systèmes de traitement de données
o Applica;ons IoT (Internet des objets) o Systèmes bancaires et financiers
35 September 24, 2024
Application réparties
1. Besoins
2. Caractéristiques
36 September 24, 2024
Application réparties: Besoins
La construction d’applications réparties met en évidence plusieurs besoins
généraux:
v Transparence: Ce terme s’applique à la propriété d’indépendance, par rapport à
la localisation physique, pour l’accès aux informations et aux services.
v Abstraction: Ce terme désigne la séparation entre interface d’accès à un service et
la réalisation de ce service. (assemblage des composantes)
v Récupération de l’existant : ajout des capacités d’accès à distance ou
d’intercommunication à des applications existantes.
37 September 24, 2024
Caracté r istiques des applications ré p arties
Ø Diversite ́des applications réparties!
Ø Il est possible de les analyser selon une grille commune, qui permet de mettre en évidence les
aspects communs et les différences :
1. Organisation de l’application,
2. Coordination,
3. Communications,
4. Génie logiciel des applications réparties,
5. Sécurité,
6. Disponibilité.
38 September 24, 2024
Caractéristiques des applications
réparties
1. Organisation de l’application
Elle concerne les interactions entre les entités qui composent une application, qui peuvent prendre des
différentes formes :
par exemples.
•Client-serveur. Serveurs coopérants(P2P).
•Objets partagés (actifs ou passifs). Agents(logiciel autonome)
39 September 24, 2024
Caractéristiques des applications
réparties
1. Organisation de l’application
Il n’existe pas de modèle d’organisation unique couvrant toutes les applications réparties, mais
une grande diversité de schémas. Néanmoins, un petit nombre de techniques de base, au
niveau du système, permettent de mettre ces schémas en œuvre.
40 September 24, 2024
Caractéristiques des applications
réparties
2. Coordination
v Ensemble des méthodes et outils qui permettent aux composants d’une application
d’interagir en respectant les règles fixées.
v Il recouvre donc des notions liées à la synchronisation et à la communication.
41 September 24, 2024
Caractéristiques des applications
réparties
3. Communications
Le bon fonctionnement des applications impose des contraintes sur les performances de
communications.
Ø Les flots discrets: ces contraintes peuvent porter sur le débit, le temps de latence (décalage de
temps entre un stimulus et une réaction), le taux de pertes.
Ø Les flots continus: la bonne restitution des médias transportés (audio et vidéo) impose des
contraintes temporelles supplémentaires.
Le respect de ces contraintes fait partie de la "qualité de service" imposée par certaines classes
d’applications.
42 September 24, 2024
Caractéristiques des applications
réparties
4. Génie logiciel des applications réparties.
Applications de taille et de complexité souvent élevées, les aspects de génie logiciel sont importants.
Deux points sont à noter plus spécialement :
o Dans beaucoup de cas la construction d’une application répartie impose de réutiliser du logiciel existant,
qu’il serait trop coûteux de récrire. Cette réutilisation n’avait généralement pas été prévue lors de l’écriture
initiale du logiciel.
o Les applications réparties doivent s’adapter à une grande variété d’environnements ou de conditions
d’utilisation (renouvellement des matériels, évolution des réseaux, variations de la charge ou de la quantité
de ressources disponibles). On voit ainsi apparaître une fonction d’administration d’applications, qui doit
permettre de répondre à ces contraintes, notamment par interaction entre l’application et l’infrastructure
43 September 24, 2024
d’exécution.
Caractéristiques des applications
réparties
5. Sécurité
o Confidentialité
o Authentification
44 September 24, 2024
Caractéristiques des applications
réparties
6. Disponibilité
La disponibilité des services est une qualité essentielle, aussi bien pour les applications grand public
(pour des raisons de confort) que pour les applications professionnelles (pour des raisons de
productivité).
Duplication des serveurs/des services etc.
45 September 24, 2024
Travaux Dirigés & Travaux Pratiques
Prérequis
Ø POO
Ø UML
Ø JAVA
46 September 24, 2024
“ Construction d’application répartie
OUMAROU SALEY Ibrahim M1 EMIG Genie Logiciel
“ Rappels
Application répartie
M1 EMIG Genie Logiciel
Qu’est ce qu’un environnement réparti ?
Un environnement pour faciliter la construction
d’applications réparties
49 September 24, 2024
Qu’est ce qu’une application répartie ?
Il s’agit d’une application découpée en plusieurs unités
Ø Chaque unité peut être placée sur une machine différente
Ø Chaque unité peut s’exécuter sur un système différent
Ø Chaque unité peut être programmée dans un langage différent
50 September 24, 2024
Pourquoi des applications réparties?
1. Besoins propres des applications :
Communication, coopération
Partage d’information, accès à des ressources distantes
Répartition intrinsèque des applications
2. Possibilités techniques :
• Coût et performances des machines et des communications
• Interconnexion généralisée
• Interpénétration Informatique-télécom-télévision :
Ø Les applications informatiques utilisent les technologies télécom
Ø Les réseaux de télécom sont des systèmes informatiques
Ø La télévision devient numérique et interactive
51 September 24, 2024
Conception d’application ré p artie
Problème Définir une application complexe mettant en jeu
plusieurs sites, plusieurs acteurs, plusieurs
applications.
Spécifier l’architecture logicielle globale avant toute
Solution implémentation et limiter les dimensions
technologiques.
52 September 24, 2024
Spécification de l’architecture globale
o Fonctions de l’application
o Répartition
o Dimension technologique
o Speć ification au niveau d’un site par le deć oupage en composant
o Spécification inter-site
53 September 24, 2024
Spécification de l’architecture globale
Fonctions de l’application
Identification des acteurs et leurs fonctions (cas d’utilisation UML)
54 September 24, 2024
Spécification de l’architecture globale
Répartition
Identification des sites et/ou types de site : Rôle de chaque site et les communications inter-sites
55 September 24, 2024
Spécification de l’architecture globale
Dimension technologique
Choisir quelle technologie utilisée (Entreprise Java Bean, .Net, etc...) en prenant en considération les
Critères d’interopérabilité et les performances ...
56 September 24, 2024
Spécification de l’architecture globale
Spécification au niveau d’un site par le découpage en composant
Types de composants (session, web, entité, ...), Quels composants visibles ? Quels composants internes ?
Comment accéder aux composants ?
57 September 24, 2024
Spécification de l’architecture globale
Spécification inter-site
Communication entre composants inter-sites, Comment accéder aux composants : Spécifier et introduire
un ou plusieurs serveurs de noms Décrire une procédure d’enregistrement des composants à ces serveurs
58 September 24, 2024