I.5. Caractéristiques
des systèmes distribués
La performance d'un système distribué se
révèle dans ces caractéristiques. Ces
caractéristiques ci-dessous devraient être prises en compte lors
de la conception d'un système distribué.
I.5.1.
Interopérabilité
Dans un système distribué, ilse pose un vrai
problème de coopération entre différents composants du
système. En effet, ce problème peut être vu au niveau de la
couche matériel (différents réseaux physiques et
plateforme matérielle), de la couche système d'exploitation
(divers OS utilisés(UNIX, Windows, Mac OS, Solaris)), de la couche
application (langages de programmation différents) et de la couche
middleware (.NET pour Microsoft, Corba pour le Consortium OMG). On parle de
l'hétérogénéité, un problème dans le
partage des ressources dans un système distribué.
L'interopérabilité est une
caractéristique importante qui désigne la capacité
à rendre compatibles deux systèmes quelconques. A son tour, la
compatibilité est la capacité qu'ont deux systèmes
à communiquer sans ambiguïté.
En effet, l'interopérabilité vise à
réduire le vrai problème de
l'hétérogénéité en la masquant par
l'utilisation d'un protocole unique de communication (exemple de TCP/IP pour
l'Internet). Pour les échanges des messages, il faut utiliser des
standards qui cachent les différences entre les différentes
plateformes.
Actuellement, il existe deux approches principales de
standardisation pour masquer
l'hétérogénéité : les middlewares et
les machines virtuelles.
Concrètement, un middleware est
représenté par des processus et des ressources d'un ensemble
d'ordinateurs, qui interagissent les uns avec les autres. Ils middlewares
améliorent la communication en offrant des abstractions telles
que :
· Le RMI (Remote Method Invocation) qui est la
possibilité, pour un objet, d'invoquer la méthode d'un autre
objet situé sur une plateforme distante ;
· La notification d'événement pour la
propagation d'informations d'une plateforme vers une autre ou plusieurs autres
plateformes ou composants d'une application distribuée ;
· La communication entre groupe de processus ;
· La gestion de la duplication des données
partagées ;
· La transmission de données multimédia en
temps réel.
Les machines virtuelles permettent de supporter le code mobile
désignant la possibilité de transfert de code d'une machine
source à une machine de destination et son exécution sur cette
machine. Au cas des différentes plateformes, le code produit sur l'une
ne peut fonctionner sur l'autre. Pour éviter ce problème, le code
mobile est généré d'un langage source pour une machine
virtuelle donnée (exemple de la JVM). En effet, chaque plateforme doit
disposer d'une couche logicielle qui implémente la machine virtuelle car
cette dernière représente une généralisation des
middlewares offrant les mêmes services.
Figure 2: exemple d'un système
distribué
|