Systèmes Répartis
Systèmes Répartis
Systèmes Répartis
Une application est une solution logicielle à un problème spécifique pour un ensemble d’utilisateur
MIDDLEWARE Serveur itératif traite séquentiellement les données (adapté aux requêtes rapide à exécuter)
Serveur concurrent accepte les requêtes puis les délègue à un processus fils (requête longue…)
Service avec états : le serveur conserve localement un état pour chacun des clients connectés :
tolérance aux pannes
Middleware
Service sans états : aucune informations sur l’enchaînement des requêtes sauvegardées :
- Fournit une couche logicielle pour permettre la répartition d'applications (services) de
performance
manière transparente
- Intermédiaire de communication entre plusieurs applications
Les stubs représentent un objet côté client, transmettent les appels de méthode à l’ORB(sérialise les
SUN RPC : une programme serveur se lance sur une machine, il indique au daemon portmapper paramètres et désérialise les résultat)
quels types de services RPC il fournira aux clients qui souhaitent se connecter à lui. Le client se Les skeletons sont les stubs côté serveur, désérialise les paramètre d’appel, sérialise les résultats
connecte au portmapper de la machine distante qui lui donnera les coordonnées du service à Le protocole d’échange GIOP permet le communication entre l’ORB du client et l’ORB du
contacter et pourra récupérer le résultat de façon transparente. serveur
IDL Interface Definition Language est un terme générique, il y a autant d’IDL que de
middleware différents ! Object Adapter (OA) crée une référence unique associée à chaque objet IOR
XDR définit les types utilisés pour l’échange de variables entre le client et le serveur qui ne sont pas Le bus CORBA est la composante centrale d'une architecture logicielle complète pour la
nécessairement sur la même plateforme et ne sont pas écrits dans le même langage (utilisation de construction d'applications distribuées à base d'objets, appelée OMA (Object Management
filtres XDR qui convertissent du format local à XDR et vis-versa) Architecture). Ce n’est pas simplement un middleware mais toute une paletted’outils
cohérents pour développer une application distribuée
DCE Distributed Computing Environnement : assemblage de technologies connues
séparément : DCE threads, DCE RPC, DC Directory Service compatible avec LDAP…
OMA 5 couches :
DCE est un environnement complet développement :création de RPC à travers un IDL - Fondamentaux de l’ORB
- COS (Common Object Services, CORBAservices) :ensemble de spécifications
pour les services fondamentaux
XML RPC : tous les échanges sont formalisés en XML donc lisibles, les requêtes et réponses sont - Common Facilities (CORBAfacilities) : spécification de services de plus haut
effectuées en http, pas de précompilation comme XDR, simplicité d’uilitsation niveau
- Domain Interfaces(Domain CORBAfacilities) : spécifications de hiérarchies
VOIR LES FEUILLES POUR LES ETAPES DE CONSTRUCTION D’UN PROGRAMME d’objets dédiées à un secteur industriel particulier
- Application Objects : extension des Domain Interfaces pour des appli dédiées
Deux modes de fonctrionnement : Accès distant aux fichiers(SQL, ODBC, JDBC)
- Mode statique : décrire d’abord des fonctionnalités distribuées - ODBC permet d’interfacer de façon standard une application à n’importe quel serveur
- Mode dynamique : découverte des services disponibles de bases de données(ODBC vise toutes les BD supportant le langage SQL)
- L’API JDBC permet aux appli java d’accéder par le biais d’une interface commune à
Le langage IDL permet de définir : des sources de données
- Une inclusion autorise à référencer dans un fichier IDL des types définis dans un autre o permet la connexion/déconnexion a des BD
fichier IDL o permet l’envoi de requêtes SQL et la gestion des transactions
- Un pragma permet de fixer les identifiants désignant les définitions OMG-IDL à
l’intérieur du référentiel des interfaces 4 types des pilotes JDBC :
- Un module sert à regrouper des définitions de types qui sont logiquement liés - Pilotes agissant comme passerelle
- Une constante, une structure, un tableau, une séquence, une exception, une opération, un - Pilotes d’API natifs
paramètre, un attribut - Pilotes convertissant les appels JDBC en un protocole indépendant de la base de
données
Un exemple de service CORBA : le service de nommage(facilite l’accès aux objets distants en - Pilotes convertissant les appels JDBC directement en un protocole réseau exploité par
permettant de les retrouver par leur nom, abstraction de la localisation totale la BD
Remote Method Invocation (RMI) permet à un langage java d’utiliser des objets PROTOCOLE JABBER utilisé comme middleware générique, sert à transporter n’importe
(fonctionmt proche de CORBAcoté client un stub, coté serveur le skeleton, service de nommage quel type de données
rmiregistry)
Deuxcouches : 1. La couche des références d’objets RRL 2. Le stub et le skeleton communiquent Choix d’un middleware :
via une couche de transport De quoi ai-je besoin ? Quelles sont mes contraintes ? Comment s’effectuera la mise en production ?
Comment le système risque-t-il d’évoluer ? Quels sont les facteurs humains ?
CORBA VS RMI : RMI est limité au monde Java, les points forts de CORBA sont la richesse des
services proposés et l’ouverture à tout langage de programmation
JMS Java Message Service est la spécification de Sun pour la gestion des messages
But des services web : fournir une architecture générale pour les applications réparties sur
internet, faiblement couplées, supportant la montée en charge
Evolution de l’architecture :
- Sécurité
o Identifier l’envoyeur
o Garantir l’intégrité du contenant
- Fiabilité : être sûr que les messages arrivent