Cours 1
Cours 1
propriétés (1)
Tarek Melliti
IBISC (Informatique, Biologie Intégrative et Systèmes Complexes)
LIS (Langage Interaction et Simulation)
[Link]@[Link]
1
Plan du cours
Introduction
définitions
problématiques
architectures de distribution
Distribution intra-applications
notion de processus
programmation multi-thread
Distribution inter-applications et inter-machines
sockets
middlewares par appel de procédures distantes
middlewares par objets distribués (Java RMI, CORBA)
Conclusion
2
Plan du cours
Introduction
définitions
problématiques
architectures de distribution
Distribution intra-applications
notion de processus
programmation multi-thread
Distribution inter-applications et inter-machines
sockets
middlewares par appel de procédures distantes
middlewares par objets distribués (Java RMI, CORBA)
Conclusion
3
Plusieurs exemples pour commencer
Coordination d'activités:
Systèmes à flots de données («WorkFlow » )
Communication et partage d'information
Bibliothèques Virtuelles
Collecticiels:
édition coopérative
Téléconférence
Ingénierie Concourante (PSA)
Nouveau services grand public
Presse électronique
Télévision interactive
Commerce électronique
4
Exemple 1 : Flot de données (WorkFlow)
5
Traitement d'une commande
6
Architecture des systèmes à flot de données
8
Exemple 2 : Les collecticiels (« Groupware »).
9
Exemple 2 : rédaction coopératif de document(1)
10
Exemple 3 : rédaction coopératif de document(1)
12
Quelques remarques
Cohérence de l'information
Laisser à la charge des utilisateur (gestion lâche)
Structure du système
Chaque utilisateur possède un exemplaire du document
Conséquence, action d'édition local : communication seulement pour la
coordination
On est dans un cas de collecticiel Asynchrone
Cas Synchrone : e.g Vidéo conférence
Tableau un objet de coopération où la cohérence doit être synchrone
Plus de communication pour assurer la cohérence
Données de nature Multimédia (quantité importante)
Problème pour assurer la qualité de services (Qos)
Nécessité d'un processus local pour chaque intervenant
La gestion de l'interaction synchrone se fait par interception local des
événement et notification a des processus « représentants »
13
Exemple 3 : Télévision interactive
14
Architecture d'un système de TV interactif (1)
15
Architecture d'un système de TV interactif (2)
16
Quelque remarques
17
Un dernier pour la route : commerce Electronique
Agence
PH Ibis
B
18
Particularité du commerce électronique
19
Quelques remarques : la sécurité
20
Récapitulons : qu'est ce qu'une application répartie?
22
Application répartie
Introduction
Différentes formes de distribution
Distribution physique
fonctionnement en réseaux (LANs, WANs)
architectures multi-processeurs
Distribution structurelle
programmation structurée
programmation objet
programmation par composants
programmation par aspects
Distribution fonctionnelle
décomposition en services indépendants (affichage, calcul, stockage de
données, etc.)
services Web
23
Introduction
Différents niveaux de distribution
25
Introduction
Caractéristiques des application répartie
Hétérogénéité
Ouverture
Sécurité
« Scalabilité »
Tolérance aux pannes
Concurrence
Transparence pour l’utilisateur
26
Introduction / Objectifs et caractéristiques
Hétérogénéité
27
Introduction / Objectifs et caractéristiques
Hétérogénéité – approches possibles
28
Introduction / Objectifs et caractéristiques
Ouverture
Avantages
développement collaboratif
permet une indépendance vis-à-vis des constructeurs et éditeurs de
logiciels
29
Introduction / Objectifs et caractéristiques
Sécurité
Capacité à assurer la sécurité des données qui transitent, l’authentification
des participants et à empêcher les intrusions
Sécurité des informations
Confidentialité
– protection contre les destinataires indésirables
Intégrité
– protection contre l'altération ou la corruption des données
Authentification, signature électronique
– identification des partenaires
– non-déni d’envoi ou de réception
– messages authentifiés
– respect possible de l’anonymat
Disponibilité
– protection contre les interférences aux moyens d’accès
31
Introduction / Objectifs et caractéristiques
Tolérance aux pannes
32
Introduction / Objectifs et caractéristiques
Tolérance aux pannes – approches possibles
la détection de pannes
but = détecter que les données reçues ne sont pas celles attendues
ex. : bit de contrôle pour l’envoi de données
le masquage des pannes
but = limiter l’impact des pannes
ex. : retransmission de messages, systèmes de cache
la tolérance aux pannes
alerter si panne trop importante pour être corrigée
ex. : serveur Web en panne
la reprise sur erreur
rétablir les données suite à une panne
ex. : systèmes de sauvegardes des données permanentes
la redondance
duplication de composants pour en avoir toujours au moins un de disponible
ex. : plusieurs chemins entre routeurs, plusieurs BDs
33
Introduction / Objectifs et caractéristiques
Concurrence
34
Introduction / Objectifs et caractéristiques
Transparence (1)
Séparation des composants dans un système distribué de
manière à ce que l'utilisateur perçoive ce système comme un
tout plutôt que comme une interconnexion de composants actifs
caractère intégré de l’application, qui permet d’en cacher la
complexité à l’utilisateur
ressources
moyens de communication
architecture interne organisationnelle
Le standard ISO identifie huit types de transparences
La transparence d'accès
– les ressources locales et distantes doivent pouvoir être accessibles de la même
manière
– ex. : système de montage de volumes Unix
La transparence de localisation
– les ressources doivent être accessibles quelle que soit leur localisation physique
– ex. : URL Web
35
Introduction / Objectifs et caractéristiques
Transparence (2)
La transparence de concurrence
– plusieurs processus doivent pouvoir opérer de manière concurrentielle sans
interférences entre eux
La transparence de réplication
– plusieurs instances des ressources doivent être déployées pour assurer la fiabilité du
système
La transparence de panne
– une panne ne doit pas bloquer le fonctionnement global du système
La transparence de mobilité
– les ressources et clients doivent pouvoir être mobiles sans affecter le fonctionnement
global
La transparence de performance
– le système doit pouvoir être reconfigurable pour assurer les montées en charge
La transparence d'échelle
– le système et les applications doivent pouvoir supporter les changements d'échelles
sans modification interne des algorithmes par exemple
36
Applications réparties : Mais où est le problème?
Difficultés
Propriété d’asynchronisme du système de communication (pas de
borne supérieure stricte pour le temps de transmission d’un
message)
– Conséquence : difficulté pour détecter les défaillances
Dynamisme (la composition du système change en permanence)
– Conséquences : difficulté pour définir un état global
– Difficulté pour administrer le système
Grande taille (nombre de composants, d’utilisateurs, dispersion
géographique)
– Conséquence : la capacité de croissance (scalability) est une propriété
importante, mais difficile à réaliser
37
Voies d'études des sytèmes répaties
Approche “descriptive”
Étude des divers modèles de conception et de construction
d’applications répartis (client-serveur, événements et messages,
objets répartis, composants répartis, etc.)
Étude des diverses classes de systèmes, intergiciels et applications,
et de leurs modes d’organisation et de fonctionnement
– Modèles d'architecture
– Modèles de communication
C’est l’objet du cours “Construction d’applications réparties et
parallèles” (CR)
Approche “fondamentale”
Étude des principes de base des systèmes répartis ; les problèmes
fondamentaux (et leur origine), les solutions connues, les limites
“intrinsèques”
Application de ces principes à quelques situations concrètes
C’est l’objet du présent cours
38
1. Approche Fondamentales : problématique des
systèmes réparties
39
Aperçus sur les problèmes fondamentaux
40
Voie d'approche pour les problèmes « fondamentaux »
41
Propriétés des systèmes et le cas répartie
42
Sûreté et Vivacité
43
Un mot sur les messages
émetteur Destinataire
Délivrance
Système de Réception
communication
44
Le modèle asynchrone (fiable)
45
Système répartie : Modèle Asynchrone
e11 e12 temps
P1
e21 e22 m1
m2
P2
e31
P3
Les processus (sur différents sites) Les processus sur le même site
ne communiquent que par messages
Les processus sur des sites différents
Trois type d'évènement : Pas d'horloge globale
Locaux Pas de borne:
Envoies de message – La réception de message
Réception de message – le rapport des vitesses
d'exécution des processus
46
Événement , histoire et Synchronisation
C1
C2
47
Rélation de pércédence
Le problème :
1)Définir une relation globale de précédence (donner un sens
l'opérateur précède ci-dessus)
2)Définir un ordre entre deux événements sur la seule base
d!informations locales
Solution pour 1) utiliser le principe de causalité : la cause
précède l'effet.
Une relation de précédence est dite causale si elle est
compatible avec ce principe. Application ici :
– Sur un processus : un événement local ne peut agir
localement que sur les événements postérieurs
– Entre deux processus : l'envoi d'un message précède sa
réception
– Composition : la relation de causalité est transitive
48
Causalité selon Lamport[78]
49
Représentation amusante de la causalité
V= ∞
x
v=vmax
Alibi certain
x0
Culpabilité
possible
V= - vmax
t0 t
Si Z… a été vu au lieu x au temps t par un témoin digne de foi, peut-il
avoir été au lieu x0 au temps t0 ?
N.B. t peut être antérieur ou postérieur à t0
50
Histooir et causalité
e'
e||e'
e
e'->e e->e'
51
Vers un système de datation
Le Problème
Vérifier nécessite une observation local
Distribution plusieurs temps....
Solution
Mettre en place un Observateur P0
Vision global mais il faut construire un système de datation des
événements compatible avec la causalité
Garantie la validité de l'observation par rapport a ce qui sepasse pour pouvoir vérifier réellement le système
O O O
(e (e (e
P0 11
)
12
)
22
)
Le Problème
Garantie la validité de l'observation par rapport a ce qui sepasse
pour pouvoir vérifier réellement le système
La complétude être sûr d'avoir toute observé
Et c'est ce qu'on va voir dans ce cours
Horloge virtuelle
Estampillage par de Horloge locaux
Sauvegarde des états cohérent d'un système Répartie
Etc...
O O O
(e (e (e
P0 11
)
12
)
22
)
e1 e1 temps
P1 1 2
e2 e2 m1
m2
P2 1 2
e3
P3 1
53
2- Approche Descriptive : Solution conceptuel et
technique
Modèles architecturaux &
Modèle de communications
54
Modèles d’architecture logique : Mais avant le physique ou
matériel
Systèmes Multi-Processeurs (SMP)
mémoire partagée avec accès direct pour tous les CPUs
mémoire cache pour assurer un accès rapide aux données et éviter les
goulots d’étranglement entre les calculs
Machines parallèles homogènes
noeuds de calcul montés dans des « racks » reliés par un réseau
d’interconnexion unique et très haute performance
ex. : super-calculateurs, clusters
Machines parallèles hétérogènes
ordinateurs variés en termes de processeurs, de mémoire, de bande
passante, etc.
généralement associés à une couche logicielle type middleware
55
Introduction
Modèles d’architecture logique
Définition
L'architecture d'un système est sa structure en termes de composants
spécifiquement séparés, conçue dans le but d'assurer un bon fonctionnement en
fonction des demandes présentes mais aussi futures
Le système doit être fiable, gérable, adaptable et tout cela à un coût réaliste. Un tel
modèle est décrit par :
– le placement des entités sur le réseau (distribution des données, charge effective)
– les relations existantes entre ces entités (rôles fonctionnels, communications)
Principales architectures
client/serveur
– architectures 2-tiers
– architectures 3-tiers
– architectures n-tiers
métacomputing
– P2P
– clusters
– grilles
– agents autonomes
56
Introduction - Modèles d’architecture
Le modèle client-serveur (1)
Le modèle client/serveur
l’interviewé fournit des services c’est le serveur
l’interviewer requiert des services c’est le client
57
Introduction - Modèles d’architecture
Le modèle client-serveur (2)
Fonctionnement
le client émet un message contenant une requête à destination d’un
serveur
le serveur exécute le service associé à la requête émise par le client
le serveur retourne au client un message contenant le résultat du service
effectué
client a
service 1
client b service n
58
Introduction - Modèles d’architecture – Client-serveur
Architecture 2-tiers
serveur serveur
de BD BD de calcul
tiers serveur
tiers client
59
Introduction - Modèles d’architecture
Le modèle client-serveur (3)
Serveur
exécution
interface
requêtes sélection
du service
réponses
60
Introduction - Modèles d’architecture
Le modèle client-serveur – Remarques
la communication est toujours initiée par le client
– le serveur est en mode réactif
mode d’exécution synchrone
chaque entité peut jouer les deux rôles (client et serveur)
on ne se préoccupe pas de la manière dont la communication est réalisée
– on suppose seulement qu’il existe un moyen d’échanger des messages
– la plupart des protocoles classiques (FTP, HTTP, etc.) sont basés sur ce principe
l’interface du serveur est un élément essentiel de la communication
– définit les requêtes autorisées
concept simple mais base théorique pour des architectures beaucoup
plus compliquées
61
Introduction - Modèles d’architecture – Client-serveur
Architecture 3-tiers
serveur
de BD BD
tiers serveur
tiers intermédiaire
serveur de serveur de
traitement traitement
tiers intermédiaire
tiers client
63
Introduction - Modèles d’architecture – Client-serveur
Vers les architecture n-tiers
64
Introduction - Modèles d’architecture – Client-serveur
Exemple d’architecture n-tiers : application Web
serveur
de BD BD
tiers serveur de données
tiers intermédiaire
serveurs
d’application CGI
tiers intermédiaire
tiers intermédiaire
serveur
Web
tiers intermédiaire
tiers client
66
Introduction - Modèles d’architecture - Modèles du « meta-computing »
P2P et « Internet computing »
67
Introduction - Modèles d’architecture - Modèles du « meta-computing »
Avantages du P2P
réduction du coût global par répartition
accroissement de la scalabilité et de la sûreté de fonctionnement
– pas d'autorité centrale
agrégation des ressources et interopérabilité des systèmes
accroissement de l'autonomie
– les utilisateurs ne dépendent pas d'un seul fournisseur centralisé
anonymat et respect de la vie privée
très grande dynamicité
– les ressources entrent et sortent du système de manière totalement continue
– la communication ne s'en trouve généralement pas affectée.
« Internet Computing »
applications P2P parallélisables
– une même tâche est effectuée sur chaque Peer avec différents paramètres
utiliser les ressources inutilisées des noeuds
si un noeud détecte une inactivité, il informe un client maître
activité complètement transparente pour l'utilisateur
Exemples d'implantations
P2P pur : KaZaa, FreeHeaven, JXTA, Gnutella, Freenet
P2P hybride : Napster
Internet Computing : SETI@Home, RSA-135
68
Introduction - Modèles d’architecture - Modèles du « meta-computing »
Clusters
ensemble d'ordinateurs complets (processeur, mémoire, périphériques d'E/S)
en général interconnectés par l'intermédiaire d'un LAN
utilisé comme une seule ressource de calcul unifiée
les composants d'un cluster sont typiquement des stations de travail ou des PCs
et sont généralement homogènes
premier cluster « Beowulf » créé en 1994 pour la NASA
Architecture
tiers d'accès = fournit les services d'accès et d'authentification
tiers de gestion = responsable des fonctionnalités basiques du cluster (service de
fichiers, gestion des sauvegardes, ...)
tiers de calcul = fournit la puissance de calcul du cluster
– travaux exécutés sur un ou plusieurs noeuds
deux services critiques
– « Batch Queing System » = reçoit les demandes de travaux
– « Job Scheduler » = détermine l'ordre d'exécution des travaux en fonction de la charge
processeur moyenne, la charge mémoire moyenne, ...
69
Introduction - Modèles d’architecture - Modèles du « meta-computing »
Grilles
partage de ressources et de puissance de calcul dans de très larges
organisations multi-institutionnelles
infrastructure capable d'unifier diverses ressources
met en oeuvre un grand nombre de ressources hétérogènes
peuvent s'accroître de quelques ressources à plusieurs millions
probabilité de ressources défaillantes élevée
Architecture
une fabrique de grille
– toutes les ressources (PCs, SANs, clusters,...) distribués géographiquement
un middleware de grille
– offre les services de base (gestion des processus distants, co-allocation des ressources, accès au
stockage, ...)
un environnement de développement de grille
– offre des services de très haut niveau permettant aux développeurs de développer des
applications et des brokers agissant de manière globale
des applications de grille et des portails de grille
ex. : Globus, Legion, CERN Data Grid ou Unicore
70
Introduction - Modèles d’architecture - Modèles du « meta-computing »
Agents autonomes [Wooldridge]
Définition
entités matérielles ou logicielles dotées des propriétés suivantes
– autonomie
les agents agissent sans l’intervention directe d’humains ou d’autres agents, et ont le
contrôle de leurs actions et de leur état interne
– capacité sociale
les agents interagissent avec d’autres agents (et éventuellement des humains) grâce à des
langages de communication agent
– reactivité
les agents perçoivent leur environnement (le monde physique, un utilisateur via une
interface graphique, un ensemble d’autres agents, Internet, une combinaison de tout cela),
et répondent en permanence aux changements qui s’y produisent
– pro-activité
les agents n’agissent pas seulement en réponse aux sollicitations de l’environnement mais
peuvent exhiber un comportement orienté par un but en prenant l’initiative d’agir
Caractéristiques
à la frontière des systèmes distribués et de l’IA
inspiration sociologique
71
Introduction
Modèle de communication - les middlewares
But = cacher l'hétérogénéité des plate-formes mises en oeuvre
pour les applications
intergiciel = bus de communication auquel les applications se
connectent par l’intermédiaire d’une interface
Middleware
72
Introduction - Modèle de communication - les middlewares
Positionnement du middleware
couche indépendante
– des systèmes d’exploitation
– des machines
– du réseau de transmission
repose sur
– les structures de communication de plus
Applications
bas niveau telles que les protocoles
réseau (TCP/IP, DECnet, SNA, etc.)
– les mécanismes offerts par les systèmes application 1 application 2
d’exploitation (gestion d’interruptions,
etc.)
Application Application
Présentation Présentation
Middleware
Session Session
Transport Transport
Service de
Réseau Réseau
transport des
données Données Données
Physique Physique
73
Introduction - Modèle de communication - les middlewares
Services du middleware
Disponibilité sur différentes machines
Fiabilité du transfert
assurance que le message...
– atteindra le destinataire
– en un seul exemplaire
– même en cas de panne d’une machine ou de liens réseau
Adaptation au trafic
variation du nb d’applications, du nb et du type de machines
Support de différents schémas de communication
communication 1-1, 1-n
communication synchrone/asynchrone
Service de nommage
conversion d’un nom en adresse physique
Support de la notion de transaction
si plusieurs entités appartiennent à une transaction, toutes doivent pouvoir
exécuter leur travail ou alors aucune d’elles
etc.
74
Introduction - Modèle de communication - les middlewares
Différentes approches possibles
considérer tous les composants en tant que fichiers
périphériques traités en tant que fichiers : Plan 9
systèmes de fichiers distribués : NFS
pb = transparence limitée à l’échange de fichiers
appel de procédures à distance : RPC
appel d’une fonction dont l’implantation est sur une autre ressource
objets distribués : RMI, CORBA, DCOM, etc.
dissociation entre l’interface et l’implantation
seule l’interface est distribuée
échange de messages : JMS
envoi de messages entre les participants
agents mobiles : Aglet, AgentTcl, etc.
le code à exécuter et les données se déplacent d’une ressource à une
autre sur le réseau
75
Introduction - Modèle de communication - les middlewares
Echange de messages : JMS
77
Introduction - Modèle de communication - les middlewares
Objets distribués (Java RMI, CORBA, DCOM, etc.)
Objets distribués
encapsulation des attributs et des méthodes
séparation entre les interfaces et les objets les implémentant
l’interface est placée sur une machine tandis que l'objet lui-même réside
sur une autre
Principe
quand un client s'associe à un objet distribué
– une implantation de l'interface de l'objet appelée proxy est chargé dans l'espace
d'adressage du client
– ce proxy assure l'invocation des méthodes en communiquant avec l'implantation
réelle de l'objet qui peut se trouver n'importe où dans le système au moyen d'un
squelette agissant comme un médiateur
Important
l’état du système n'est pas distribué : il réside sur une machine et une seule
seules les interfaces des objets rendues disponibles sont accessibles par les
processus tournant sur les autres machines.
78
Introduction - Modèle de communication - les middlewares
Agents mobiles (Aglet, MOA, AgentTcl, etc.)
Code mobile
programme pouvant se déplacer d’un site à un autre sur un réseau
ex. : Postscript, SQL, applets, etc.
caractéristique = code interprétable
Motivations
rapprocher le traitement des données
– réduire le volume de données échangées sur le réseau
– partage de charge
function shipping versus data shipping
79
Introduction - Modèle de communication - les middlewares
Agents mobiles (Aglet, MOA, AgentTcl, etc.)
Agent mobile
processus, incluant du code et des données, pouvant se déplacer entre
des machines pour réaliser une tâche
Principe de migration (en Java)
– sérialisation de l’état de l’agent
– envoi du code et de l’état de l’agent
– destruction de l’agent sur le site origine
– création d’un thread sur le site de destination
– chargement du code de l’agent
– dé-sérialisation de l’agent
– exécution
Limites
coût important de la migration
– intéressant si réseaux lents et données à traiter volumineuses
problèmes de sécurité
problèmes d’autonomie
gestion de l’état, adressage des agents
80
Les services Web
81
Introduction
Quelques références
[Link]
collection très importante de supports de cours et liens en tous genres
sur
– la programmation
– les réseaux, Internet
– les systèmes d’exploitation
– les systèmes répartis et la construction d’applications réparties
[Link]
Distribues/[Link]
systèmes d’exploitation et applications réparties
[Link]
supports de cours de
– systèmes distribués
– programmation système
– CORBA
82