2. Introduction
01
Naissance des systèmes distribues
Définition
Les avantages et les désavantages
Critères des systèmes distribué
Présentation des systèmes distribuées
02
Architectures et fonctionnement
03
Communication dans les systèmes
distribuées
04
PLAN
Conclusion
05
Le Modèle OSI
Les Sockets
RPC
3. Naissance des systèmes distribues
les premiers ordinateurs ont été réalisés
après la Seconde Guerre mondiale,
leur conception repose sur le résultat de
divers prototypes tels que l'Harvard
Mark I et le Z3(calculateur ).
.
le Micral conçu par François Gernelle de
la société R2E dirigée par André Truong
Trong Thi. Basé sur le premier
microprocesseur, l'Intel 8008 8 bits, ses
performances en font le plus petit
ordinateur moderne de l'époque (500
kHz, mémoire RAM de 8 ko en version
de base)
début de 1ere moderne
des ordinateurs
En janvier 1973 est présenté le
premier
micro-ordinateur Micro-processeurs
puissants en quantité (faible
cout).
Avènement des micro-
ordinateurs
L'ENIAC, vers 1950.
1945 1973 1980
IBM Personal Computer, à l'origine
des PC modernes.
-Interconnexion d’un grand
nombre de machines
-Transport d’informatique à
10 Mbits/seconde
-Technologies: Ethernet
(Xerox), Token Ring (IBM)
Réseaux locaux (LAN)
Il devient facile
d’interconnecter des
ordinateurs
4. Système informatique distribué:
Content A - 40%
Définition:
Un système informatique distribué se compose de plusieurs composants
logiciels qui se trouvent sur plusieurs ordinateurs, mais qui s'exécutent
comme un système unique. Les ordinateurs qui se trouvent dans un
système distribué peuvent être physiquement proches les uns des autres
et connectés par un réseau local, ou ils peuvent être géographiquement
éloignés et connectés par un réseau étendu. Un système distribué peut
comprendre un nombre quelconque de configurations possibles, telles que
des ordinateurs centraux, des ordinateurs personnels, des postes de
travail, des mini-ordinateurs.
5. Le second fait référence au logiciel qui laisse apparaitre le système
distribue comme une seule entité cohérente. C’est un aspect qui suppose
une interconnexion des ordinateurs moyennant un réseau de
communication physique.
Le premier est de nature matérielle, il s’agit de l’autonomie des
ordinateurs ou chacun peut exécuter des taches en concurrence (au
même moment) avec les autres.
Système informatique distribué:
L'objectif de l'informatique distribuée est de faire fonctionner un tel
réseau comme un seul ordinateur.
On a deux aspects :
6. Puissance de calcul
Un système pluri-
processeur offre une
puissance de calcul
supérieure a celle d’un seul
processeur.
Economique
Excellent rapport
performance/prix des
microprocesseurs
Haute disponibilité
La défaillance d’une
machine n’affecte pas les
autres
Distribution naturelle de
certaines applications
-Système de contrôle d’une
chaine de production
-Distribution géographique
d’agences bancaires
Les avantages des systèmes
distribués :
Par rapport aux systèmes
centralises :
7. You can simply
impress your
audience and add a
unique zing.
Content Here
E v o l u t i o n
p r o g r e s s i v e
Evolution de la technologie des processeurs
8. Partage des
périphériques
Partage des
périphériques couteux :
Exemple : imprimante
laser couleur,
périphériques
d’archivage
Partage des
données
Partage des données
entre les utilisateurs :
Exemple : système de
réservation aérienne
Flexibilité
distribution de la charge
Facilitation des communications
entre personnes
-Courrier électronique :
communication
asynchrone
-Modification possible
des documents
échangés
Les avantages des systèmes
distribués :
Par rapport à des postes de
travail indépendants :
9. Réseau de
communication
-Saturation
-Perte de messages
Logiciel
-Relativement peu
d’expérience de
conception, mise en
œuvre et utilisation de
logiciels distribués
-La distribution doit elle
être transparente aux
utilisateurs ?
Sécurité
Facilite de partage de
données rend
nécessaire la protection
des données
confidentielles
Facilitation des communications
entre personnes
-Courrier électronique :
communication
asynchrone
-Modification possible
des documents
échangés
Les inconvénients des systèmes
distribués :
10. la différence entre un système centralisé et un système
distribué
un système centralisé
11. la différence entre un système centralisé et un système
distribué
Systèmes distribués :
12. Les caractéristique des système distribué
Partage des
ressources
Traitement
simultané
Évolutivité
Détection des
erreurs
Transparence
13. Les types des systèmes distribués
Cluster Computing
L’informatique en cluster : Ensemble d'ordinateurs connectés qui fonctionnent
ensemble comme une unité pour effectuer des opérationsensemble, fonctionnant
dans un système unique. Les clusters sont généralementconnectés rapidementvia
des réseaux locaux et chaque nœud exécute le même système d'exploitation.
14. Les propriétés et cas d’utlisations de cluster computing
Les propriétés
Haute performance
Facile à gérer
Évolutif
Extensibilité
Disponibilité
Souplesse
Rentabilité
Cas utilisation
15. Les types des systèmes distribués
Gride Computing
Informatique en grille : Dans l'informatique en grille, le sous-groupe se compose de systèmes distribués, qui
sont souvent configurés comme un réseau de systèmes informatiques, chaque système peut appartenir à un domaine
administratif différent et peut différer considérablement en termes de matériel, de logiciel et de technologie de réseau de
mise en œuvre. .
Les différents départements ont un ordinateur différent avec un système d'exploitation différent pour rendre le nœud de
contrôle présent, ce qui aide différents ordinateurs avec un système d'exploitation différent à communiquer entre eux et à
transférer des messages pour fonctionner.
16. Les propriétés et cas d’utlisations de gride computing
Peut résoudre des problèmes plus
importants et plus complexes dans un
délai plus court. Collaboration facilitée
avec d'autres organisations et
meilleure utilisation des équipements
existants
Le matériel existant est utilisé au
maximum.
La collaboration avec les organisations
facilitée
Les propriétés Cas utilisation
Les organisations qui développent
des normes et des pratiques de
grille pour la ligne de guilde
Fonctionne comme une solution
middleware pour connecter différentes
entreprises.
19. Système multiprocesseur Multiprocesseur a bus
Dans ce cas tout les processeur
accède a la mémoire physique a
travers un bus
Problème: le bus baisse sa
performances considérablement si on
atteins 4 ou 5 processeurs.
Solution: La solution consiste à
ajouter une mémoire cache
21. Système multi ordinateur Multi Ordinateur a bus
Le système a mémoire locales basés
bus sont construits a partir
d'ordinateurs(processeurs+ mémoire),
Ies processeurs sont reliée par un
réseau multi accès partagé et
communiquant par diffusion de
messages.
22. Système multi ordinateur Topologies en hypercube
Un hypercube est un cube a n
dimension ou chaque nœuds est relies
a l’autre n autre nœuds
24. Système d’exploitation distribue Multiprocesseur MPOS
• Hautes Performances .
• Utilisant des processeur
Multiples
• Son but et de rendre le
nombre des processeur
transparent pour les
application
26. Système d’exploitation distribue Multi ordinateur MCOS
• structure complexe et différent de
MPOS .
• possédant un mécanisme de
communication interprocessus
unique et global .
• les machines possèdent le même
système d'exploitation.
• L'unique moyenne de
Communication est d'envoyer des
messages .
31. Protocole de communication dans les systèmes à grande
échelle Modèle en couche OSI (open system interconnexion)
Application
Session
Présentation
Transport
Réseau
Liaison de données
Physique
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
fournit l’interface pour l’utilisateur final qui utilise un appareil connecté à un
réseau.
s’occupe de la transmission des bits de façon brute sur un canal de
communication
Son rôle est un rôle de « liant » : elle va transformer la couche physique en
une liaison a priori exempte d’erreurs de transmission pour la couche
réseau
permet de gérer le sous-réseau, i.e. le routage des paquets sur ce sous-
réseau et l’interconnexion des différents sous-réseaux entre eux
responsable du bon acheminement des messages complets au destinataire
organise et synchronise les échanges entre tâches distantes. Elle réalise le
lien entre les adresses logiques et les adresses physiques des tâches
réparties.
c’est elle qui traite l’information de manière à la rendre compatible entre
tâches communicantes. Elle va assurer l’indépendance entre l’utilisateur et
le transport de l’information.
1
3
2
5
4
6
7
33. Modèle multi clients/serveur (requête / réponse )
Les sockets / API (Application Program Interface)
Les sockets fournissent une interface d’accès, à partir d’un hôte,
aux interfaces de transport, notamment TCP et UDP
Les port des sockets TCP et UDP sont les principaux transport
dans les sockets
TCP Transmission Control
Protocol (mode connecté)
une liaison est établie au
préalable entre deux hôtes,
et ensuite un flot d’octets est
échangé sur cette liaison
UDP User Datagram Protocol
(mode non connecté)
Aucune liaison n’est établie.
Les messages sont échangés
individuellement.
34. La connexion en fonction Les Sockets
Serveur créer une socket et se positionne en
écoute de demande de connexion
Serveur en gestion multi-clients
CLIENT1 SERVEUR CLIENT2
Un client faire une demande de connexion
(création d’une socket locale )
Le serveur accepte la connexion
Le client et le serveur sont connectés par le tube ainsi
crée et peuvent lire ou écrire dans leurs sockets
respectives
35. RPC
J’ai besoin
de faire un
calcul en
utilisons F(x)
J’ai F(x)
RPC (Remote Procedure Call)
Permet de distribuer facilement certaines parties d’une application sur des machines différente
de la même manière que si l’appel était local
Exemple système reparti
connexion
36. RPC
J’ai besoin
de faire un
calcul en
utilisons F(x)
J’ai F(x)
RPC (Remote Procedure Call)
Permet de distribuer facilement certaines parties d’une application sur des machines différente
de la même manière que si l’appel était local
Exemple système reparti
connexion
Cas normale
Process A
F(X)
F(X)
Process B
Résultat
L’appel et le retour ont lieu
dans un site
L’exécution ce déroule
dans un outre site
37. Serveur Client
Interpréter la requête Appel de la procédure
Appel de la procédure
Exécution
Résultat
Envoi de l’appel
Envoi de la réponse
Résultat
Paradigme client serveur
Le client
envoie les
paramètrex
d’appels de la
fonction
Le calcul est
effecué coté
serveur et le
résultat est
envoyé au
client
P(x,y)
P(x,y)
R
R
38. Serveur Client
Interpréter la requête Appel de la procédure
Appel de la procédure
Exécution
Résultat
Envoi de l’appel
Envoi de la réponse
Résultat
Principe
P(x,y) P(x,y)
R
R
39. RPC étendu
Le modèle RPC a été étendu et adapté sous d’autres noms, mais le paradigme de programmation
reste le même :
COBRA : Common Object Request Broker Architecture ,langage C++ et java (1991);
41. Le modèle objet Client/Serveur
en CORBA
Objet CORBA
Bus CORBA
O
R
B
O
R
B
Référence
d’objet
Code
d’implantation
Application cliente Application serveur
Interface
d’objet
Etat d’objet
Requête
Activation
42. Le modèle RPC a été étendu et adapté sous d’autres noms, mais le paradigme de programmation
reste le même :
COBRA : Common Object Request Broker Architecture ,langage C++ et java (1991);
RPC étendu
RMI : Remote Method Invocation,langage et java (1997);
Opérations (méthodes):
• Débiter
• Consulter
• Transférer…
Java cards : system d’exploitation destiné aux application pour carte à puce
Compte bancaire
43. Client
Appel de la procédure
Envoi de l’appel
Envoi de la réponse
Résultat
Stub et skelton
Stub ou Souche clinet
• procédure qui porte le nom de
la vraie procédure qu’il
remplace
• donne l’illusion au programme
principal que la procèdure est
bien locale
• gère la connexion
Stub client
44. Serveur
Interpréter la requête
Appel de la procédure
Exécution
Résultat
Envoi de l’appel
Envoi de la réponse
Stub et skelton
Skelton serveur
Stub ou Tallon,Skelton serveur
• Gère la communication avec
le stub client
• Active la procédure désugnée
en lui transmettant les
paramètres d’appel
• Retourne les valeures de
résultat au stub client
Notas do Editor
Dans les systèmes reparties, chaque node prend sa propre décision. Le comportement final du système est l’agrégat des décisions des nodes individuels. Notez qu’il n’y a pas d’entité unique qui reçoit et répond à la demande.
Exemple –
Système de recherche Google. Chaque requête est traitée par des centaines d’ordinateurs qui parcourent le Web et renvoient les résultats pertinents. Pour l’utilisateur, Google semble être un système, mais il s’agit en fait de plusieurs ordinateurs travaillant ensemble pour accomplir une seule tâche (renvoyer les résultats à la requête de recherche).
Les systèmes informatiques distribués présentent les caractéristiques suivantes :
Partage des ressources : un système distribué peut partager du matériel, des logiciels ou des données.
Traitement simultané : plusieurs machines peuvent traiter la même fonction simultanément.
Évolutivité : la capacité de calcul et de traitement peut être mise à l'échelle selon les besoins lorsqu'elle est étendue à des machines supplémentaires.
Détection des erreurs : les défaillances peuvent être détectées plus facilement.
Transparence : un nœud peut accéder aux autres nœuds du système et communiquer avec eux.
D'un point de vu abstrait, un ordinateur, se compose de deux types d'entités essentielles les mémoires et tes processeurs. un système distribué physique est comme une collection de mémoires et de processeurs interconnectés de telle sorte de pouvoir communiquer. Quel que soit le système distribué considéré, il est possible de le classer dans les quatre catégories suivantes :
C’est le modèle le plus utilisé et le plus important. Les processus représentant le système reparti, jouent les rôles de client pour un service et de serveur pour un autre. Dans le modèle Client/serveur, on distingue deux modèles selon que le service est effectué par un ou plusieurs serveurs. Dans ce dernier cas, plusieurs serveurs coopèrent pour exécuter une requête d’un client donnée.
Un cache est un espace mémoire qui maintient une copie des objets récemment utilisés proches, vis-à-vis du client, que les objets originaux. Un objet reçu est ajouté au cache remplaçant éventuellement un objet existant. Lorsqu’un client demande un objet, le gestionnaire du cache essaye d’abord de le trouver dans le cache et le transmet au client. Si l’objet n’est pas dans le cache, le gestionnaire transmet la demande au serveur qui détient l’objet. Le cache peut être gère par le client lui-même comme il peut être gère par un gestionnaire indépendant dit serveur Mandataire (appelé aussi Proxy). Dans ce dernier cas, le cache peut être utilisé par plusieurs clients. Par exemple, dans le web, les mandataires maintiennent des caches des pages récemment visitées mais avant de livrer une page à un client, le mandataire vérifie au moyen d’une requête spéciale, du protocole HTTP, si la page qu’il a est conforme à l’originale. Les mandataires permettent d’augmenter les performances en diminuant le temps de réponse
Dans ce type d’architecture, il n’existe pas de distribution, en termes de clients et de serveurs, entre les composants (processus) d’un système distribué. Les processus jouent des rôles similaires et coopèrent d’égal à égal pour réaliser une activité repartie. Le terme Peer-to-Peer désigne tout simplement où les participants (les pairs) mettent en partage des ressources locales (qui peuvent être des capacités de traitement, des fichiers, des espaces de stockage, des moyens de communication, ...) sans utilisation de serveurs M1:R&SD Page 19 spécifiques. Les participants partagent les ressources locales en établissant des communications directes entre eux moyennant les protocoles TCP/IP. Ainsi, chaque participant est à la fois un client et un serveur. Il est un serveur de ce qu’il possède et souhaite partager et client de ce que les autres mettent à sa disposition.
Maintenant que nous connaissons les différentes structures des systèmes distribués nous interviennons les details de la communication dans les systemes
Distribués.
On commence par protocole de communication (modele en couche Osi develooppé par iso(international standards organization)
Le modèle est utilisé pour décrire chaque composant de la communication de données pour pouvoir établir des règles et des normes pour les applications et l'infrastructure du réseau.
Le modèle OSI permet aux fabricants de créer leurs propres protocoles et normes d'équipement tout en permettant l'interconnexion avec d'autres fabricants.
Les couches basses (1, 2, 3 et 4) sont nécessaires à l’acheminement des informations entre les extrémités concernées et dépendent du support physique. Les couches hautes (5, 6 et 7) sont responsables du traitement de l’information relative à la gestion des échanges entre systèmes informatiques. Par ailleurs, les couches 1 à 3 interviennent entre machines voisines, et non entre les machines d’extrémité qui peuvent être séparées par plusieurs routeurs. Les couches 4 à 7 sont au contraire des couches qui n’interviennent qu’entre hôtes distants.
Transmission de données au travers du modèle OSI
Le processus émetteur remet les données à envoyer au processus récepteur à la couche application qui leur ajoute un entête application AH (éventuellement nul). Le résultat est alors transmis à la couche présentation.
La couche présentation transforme alors ce message et lui ajoute (ou non) un nouvel entête (éventuellement nul). La couche présentation ne connaît et ne doit pas connaître l’existence éventuelle de AH ; pour la couche présentation, AH fait en fait partie des données utilisateur. Une fois le traitement terminé, la couche présentation envoie le nouveau « message » à la couche session et le même processus recommence.
Les données atteignent alors la couche physique qui va effectivement transmettre les données au destinataire. A la réception, le message va remonter les couches et les entêtes sont progressivement retirés jusqu’à atteindre le processus récepteur :
-----Le concept important est le suivant : il faut considérer que chaque couche est programmée comme si elle était vraiment horizontale, c’est à dire qu’elle dialoguait directement avec sa couche paire réceptrice. Au moment de dialoguer avec sa couche paire, chaque couche rajoute un entête et l’envoie (virtuellement, grâce à la couche sous-jacente) à sa couche paire.
Les sockets sont utilisé dans bon nombre d’applications structurées en Client/serveur
Par exeple l’ettablissemen d’une cnnexion entre deux processus se fait de la manière suivante :
Une socket d'écoute sert à attendre les connexions des clients
• A la connexion d'un client,
une socket de service est initialisée pour communiquer avec ce client
pour faire maintenire une conexion entre deux processus se fait de la manière suivantes:
-Envoi de données à un client serveur
on précise l'adresse du client dans le paquet à envoyer (UDP)
utilise la socket correspondant au client(TCP)
-Réception de données venant d'un client quelconque
se met en attente d'un paquet et regarde de qui il vient (UDP )
doit se mettre en attente de données sur toutes les sockets actives (TCP)
À partir de chaque processus (ou thread ) peut être producteur ou consommateur de données
On entend par Remote Procedure Call ou bien communication synchrone tout procédé qui permet
Et bien sur L’exécution se fait de facon séquentielle vis-à-vis d’un programme
Pour bien comprire on va donc faire un exemlpe D’un système reparti dans lequel les machine sans interconnecté et collabore pour réalisé un calcule en commun , une machine a besoin d’une fonction F(x) sauf que cette fonction et implémenté dans une autre machine , donc au lieu de réécrire le code de cette fonction dans la machine qui a un besoin on peux profiter de cette connexion entre les deux machine pour résoudre cette problème ou besoin
Alors au lieu de faire rappel au fonction localement comme on 'a dans le cas normale , on peux dans notre cas appeler la fonction via le réseaux connecter l’exécution ce fait selon la machine B après l’exécution il retourne le résulta a la machine qui a fait l’appel
Alors on peux déduire que l’objective d’RPC et de dissimuler l’appel qui été réaliser a distance et donnée l’impréssion au programmeur qui a été réaliser localement c’est-à-dire un appel de procédure normale ce qui’est en effet une sollution moderne pour les problem du socket , qui est simple a utiliser et donne des resultat plus vite et identique a ceux d’un eppel local
En effet il y a une grande différence entre les socket et RPC
Les socket est un moyen de faire une communication inter-processus
Sauf que RPC est une technique de programmation mais les deux suivie le paradigme client serveur c’est-à-dire le programme qui est entrain de faire l’appel de procédure est concèderai comme étant le client et l’a qu’on trouve le procedure a distance est concidére comme serveur
Le RPC suive le Paradigme client serveur
Principe: l’orsque le client est besoin d’un procédure par exemple P(x,y) il va faire un appel , il a l’impression de faire l’appel localement sauf que cette appel va être envoi via le réseaux puis le serveur va interpréter cette requête voir de quelle procédure il s'agit puis l’executé ensuite il retourne le résultat au client bien sur grâce a la connectivite des deux system client et serveur
COBRA : Common Object Request Broker Architecture
La CORBA (Common Object Request Broker Architecture) est une technologie qui permet aux applications logicielles de communiquer entre elles. Pour ce faire, il fournit un moyen standard à différents programmes d'envoyer et de recevoir des messages. Cela permet aux entreprises de créer des systèmes capables d'interagir, quelles que soient les langues de programmation dans lesquelles ils ont été écrits ou le système d'exploitation sur lequel ils fonctionnent.
CORBA présente des avantages importants pour les systèmes distribués comme: •La transparence; •La portabilité; •L’interopérabilité; •L’adaptabilité; •La disponibilité; •La stabilité.
CORBA propose un modèle de coopération :
La notion de client/serveur n’intervient qu’uniquement lors de l’utilisation d’un objet : l’application implantant l’objet est le serveur, l’application utilisant l’objet est le client.
Application cliente : programme qui invoque les méthodes des objets à travers le bus CORBA.
Référence de l’objet : structure désignant l’objet CORBA et contenant l’information nécessaire pour le localiser sur le bus.
Interface de l’objet : type abstrait spécifiant l’objet par ses méthodes et ses attributs, se définit au moyen du langage IDL.
Requête : le mécanisme d’invocation d’une méthode ou d’un accès à un attribut de l’objet.
Bus CORBA : achemine les requêtes de l’application cliente vers l’objet en masquant tous les problèmes d’hétérogénéité (langages, systèmes d’exploitation, matériels, réseaux).
Objet CORBA : objet logiciel cible (entité virtuelle gérée par le bus CORBA).
Activation : processus d’association d’un objet d’implantation à un objet CORBA.
Code d’implantation : regroupe les traitements associés à l’implantation de l’objet CORBA. Par exemple, une classe Java ou un ensemble de fonctions C.
Application serveur : structure d’accueil des objets d’implantation et des exécutions des opérations : un processus Unix par exemple.
COBRA : Common Object Request Broker Architecture
^^^Pour qu'il y ait une communication entre un client et un serveur CORBA, il faut que le client et le serveur possèdent chacun un ORB : une application client-serveur possède au minimum deux ORB.
ORB est L’Object Request Architecture (ORB) est un bus logiciel permettant le dialogue entre les objets serveurs et les différents clients qui s’y connectent.
Alors après l’adaptation de cobra en vient de crée RMI qui sont spécifiques au langage JAVA. Cela impose utilisation d’un seul langage sur ensemble des hôtes qui désirent utiliser ce procédé , et ainsi il' est devenue le conquerront de cobra
L’implimentation la plus connut du RMI c’est de Java cards qu’est un …
Alors on’a une carte a puce implementer par java cards qui suive la technique de RMI avec cette puce on peux faire appel a des operation au méthodes
Toute c’est methode son realizer don un serveur a distance la ou ce trouve le compte bancaire sur lequel les methode s’aplique
Cette technique de programation vient d’introduire de nouveux concepte dans RPC c’est stub et skelton , il faut savoir qu’au niveau du client c’est pas le programme principal qui fait l’Appel de la procédure ou bien qui recoi le resultat c’est plutôt un sous programme qu’on appel stub client
Gère la connexion : transmet les paramètres vers la machine ou se trouve la procèdure
Et récupère les résultat
Pour la coté serveur celui qui va Interpréter la requête determiner de qu’elle procedure il sagit et donner resultat c’est