Documente Academic
Documente Profesional
Documente Cultură
Roland Balter
Autrans - 99
Problmatique (1)
o application rpartie = traitements cooprants sur des donnes rparties
u traitements :
v description : programme v excution : flot d'excution (processus)
u outils de dveloppement u environnement d'excution : services systmes (pour diffrents types d'infrastructures)
Autrans - 99
Page 1
Problmatique (2)
Mthodes et outils de modlisation
Modle dexcution
outils de dveloppement
Services systmes
communication, RPC, dsignation, scurit, ...
outils d administration
Modles dexcution
o Modle client-serveur
u client-serveur "traditionnel" u client-serveur "de donnes" u client-serveur " objets" : Corba, Com/Dcom ( mardi)
de communication par messages de communication par vnements composants ( mercredi ) base de code mobile (jeudi) mmoire "virtuelle" partage
Autrans - 99
Page 2
Client_b Client
met des requtes (demandes de service) mode d'excution synchrone le client est l'initiateur du dialogue clientserveur
Serveur
ensemble de services excutables excute des requtes mises par des clients -> excution des services (excution squentielle ou parallle)
Exemples :
serveur de fichiers, serveur de base de donnes, serveur d'impression, serveur de noms (annuaire des services)
Autrans - 99
o Vu du client
Service distant
o Vu du serveur
u Gestion des requtes (priorit) u Excution du service (squentiel, concurrent) u Mmorisation ou non de l'tat du client Slection Excution du service
Requtes
Rponses
Autrans - 99
Page 3
u Oprations de base
v Client v Serveur
] doOp (IN Port serverId, Name opName, Msg *arg, OUT Msg *result) ] getRequest (OUT Port clientId, Message *callMessage) ] sendReply (IN Port clientId, Message *replyMessage)
Modes de structuration dapplications rparties - 7 Autrans - 99
RPC
: principe de ralisation
Service RPC
Appelant
Protocole de communication
Protocole de communication
Service RPC
(talon serveur) ( skeleton)
appel C
A
appel rseau
B
appel
E
retour
retour
client
serveur
Autrans - 99
Page 4
u reoit lappel en mode local, u "emballe" les paramtres et le transforme en appel distant en envoyant un message, u attend les rsultats en provenance du serveur, u "dballe" les paramtres rsultats, et les retourne au programme client "comme" dans un retour de procdure local. u Liaison initiale
u reoit lappel sous forme de message, u "dballe" les paramtres d'appel, u fait raliser lexcution sur le site serveur par la procdure de service invoque, u "emballe" les paramtres rsultats et les retransmet par message. u Enregistrement initial
Autrans - 99
o Principes directeurs
u Langage dclaratif u Outils de gnration des talons (stub et skeleton)
Autrans - 99
Page 5
compilateur compilateur
talon talon client client
Dfinitions communes
Description d interface
Gnrateur de talons
bibliothque
compilateur compilateur
Autrans - 99
Page 6
u panne et/ou congestion du rseau, u panne du client pendant le traitement de la requte, u panne du serveur avant ou pendant le traitement de la requte,
o Aspects pratiques
Autrans - 99
Page 7
o Solutions
u Syntaxe abstraite de transfert ASN 1 u Reprsentation externe commune : XDR Sun (non optimal si mme reprsentation) u Reprsentation locale pour le client et conversion par le serveur u Choix d'une reprsentation parmi n (standard), conversion par le serveur u Ngociation client serveur
Modes de structuration dapplications rparties - 15 Autrans - 99
Autrans - 99
Page 8
1 serveur enregistrement
Communication client
communication physique
Communication serveur
Autrans - 99
o outils de dveloppement
u limits la gnration automatique des talons u peu (ou pas) doutils pour le dploiement et la mise au point d'applications rparties
Modes de structuration dapplications rparties - 18 Autrans - 99
Page 9
o environnement client-serveur " objet" o environnement client-serveur "de donnes" o environnement client-serveur " composant"
Autrans - 99
Outils de dveloppement
authentification
dsignation
Autrans - 99
Page 10
u chaque fonction est utilisable via une interface normalise u accs direct des fonctions volues ---> intgration gros grain
+ standard
de fait (diffusion dans la communaut industrielle) u ex. : RPC, Service de noms, service dauthentification
---> portabilit et interoprabilit
dveloppement
u ex. : utilisation des services de thread et du RPC (limitations quivalentes celles du client-serveur) u peu doutils de dveloppement disponibles aujourdhui
Autrans - 99
Environnements client-serveur
o environnement client-serveur "traditionnel"
4environnement
Autrans - 99
Page 11
o Principe de fonctionnement
objet client objet serveur
tat appel Talon client Talon serveur Methode _1 . . Methode _n
Systme de communication
Modes de structuration dapplications rparties - 23 Autrans - 99
o objets "langage"
u reprsentation propre au langage : instance d'une classe u exemple : Java RMI
o objets "systme"
u reprsentation "arbitraire" dfinie par l'environnement d'excution u exemple : CORBA (--> mardi)
Modes de structuration dapplications rparties - 24 Autrans - 99
Page 12
rfrence
Mthode_i
talon client
Talon serveur
Objet
Rsultat ou exception
Environnements client-serveur
4environnement
Autrans - 99
Page 13
le client-serveur de donnes
principes directeurs (1)
Site client
programme client
Site Serveur
Mdiateur
requte SQL
programme serveur
rsultats (tuples)
Autrans - 99
Le client-serveur de donnes
principes directeurs (2)
o fonction du client
u code de l'application non li aux donnes u dialogue avec l'utilisateur
o fonction du serveur
u stockage des donnes, gestion de la disponibilit et de la scurit u interprtation/optimisation des requtes
o fonctions du mdiateur
u procdures de connexion/dconnexion u prparation/communication de requtes u gestion de caches (requtes et rsultats)
Autrans - 99
Page 14
Le client-serveur de donnes
environnement applicatif
o Outils de dveloppement
u L4G : intgre accs aux tables, contrle, affichage, saisie, ...
indpendants des langages de programmation langage cible : C (ou Cobol)
Autrans - 99
Client-serveur de donnes :
la solution ODBC
Client
Serveur
SGBD
Adaptateur
Fichiers Dbase
FAP
FAP
Autrans - 99
Page 15
Autrans - 99
Environnements client-serveur
o environnement client-serveur "traditionnel" o environnement client-serveur " objet" o environnement client-serveur "de donnes"
Autrans - 99
Page 16
o Approche
u interoprabilit entre composants logiciels binaires
v environnements homognes v interaction de type client-serveur v format de donnes "pivot" et procdures de conversion
Autrans - 99
Lien (Linking)
texte-1
Incorporation
tableau_1
(Embedding)
copie de tableau_1
Lien (Linking)
Tableau_2
Autrans - 99
Page 17
mercredi
Autrans - 99
Modles dexcution
o Modle client-serveur
u client-serveur "traditionnel" u client-serveur "de donnes" u client-serveur " objets" : Corba, Com/Dcom ( mardi)
de communication par messages de communication par vnements composants ( mercredi ) base de code mobile (jeudi) mmoire "virtuelle" partage
Autrans - 99
Page 18
Autrans - 99
o Mode de communication
u communication directe entre processus (acteurs, agents, . . .) u communication indirecte entre processus via des "portes" (botes aux lettres)
o Mode de transmission
u messages possiblement typs
Autrans - 99
Page 19
Processus metteur
Processus rcepteur
Msg = Receive (Id_bal)
Autrans - 99
Serveur
Msg = Receive (bal_S) exec (nom_de_service, paramtres) . . Send (bal-C, rsultat)
bal_C
( rsultat)
Autrans - 99
Page 20
Autrans - 99
o Modle de programmation
u messages u queues de messages
o Proprits
u transactions u scurit
v encodage des messages v contrle d'accs aux messages v messages vus comme des ressources "transactionnelles"
Autrans - 99
Page 21
MOM : messages
o Identification unique o Structure
u Entte :
v Information permettant l'identification et l'acheminement du message v Couples (nom, valeur) utilisables par le systme ou l'application pour slectionner les messages
u Attributs : u Donnes :
o Paramtres
u dure de vie u priorit u scurit
Modes de structuration dapplications rparties - 43 Autrans - 99
send
recv
Autrans - 99
Page 22
MOM : API
Autrans - 99
u groupe : ensemble de rcepteurs identifis par un nom unique u gestion dynamique du groupe : arrive/dpart de membres u diffrentes politiques de service dans le groupe : 1/N, N/N u mise en uvre : utilisation possible de IP multicast u exemple : Isis, Horus, Ensemble (Cornell university) u applications : tolrance aux fautes (gestion de la rplication), travail coopratif
o Communication anonyme
u dsignation associative : les rcipiendaires d'un message sont identifis par leurs proprits et pas par leur nom u proprit : attribut du message ou identificateur externe indpendance entre metteur et rcepteurs
Modes de structuration dapplications rparties - 46 Autrans - 99
Page 23
Modles d'excution
o Modle client-serveur
u client-serveur "traditionnel" u client-serveur "de donnes" u client-serveur " objets" : Corba, Com/Dcom ( mardi)
de communication par messages de communication par vnements composants ( mercredi ) base de code mobile (jeudi) mmoire "virtuelle" partage
Autrans - 99
o principe dattachement
u association dynamique entre un nom dvnement et une raction
o communication anonyme
u indpendance entre lmetteur et les consommateurs dun vnement
Nom (type) d'vnement
Processus metteurs
vnements ractions
destinataires
Autrans - 99
Page 24
Processus_b
1
Subscribe (event , reaction )
. .
reaction
serveur centralis ("Hub and Spoke") serveur rparti ("Snowflake") service rparti (bus logiciel)
Modes de structuration dapplications rparties - 49 Autrans - 99
o Mode "Push"
u Une mthode prdfinie (raction) est attache chaque type de message (vnement) ; u l'occurrence d'un vnement entrane l'excution de la raction associe.
Autrans - 99
Page 25
Client Client
Client
Broker
Client
Client Client
Autrans - 99
Architecture - "Snowflake"
o Serveur rparti de gestion d'vnements
protocole de communication point--point
Autrans - 99
Page 26
Client
Client
Client
Client
Autrans - 99
o Proprits
u Point--Point u Publish/Subscribe
Autrans - 99
Page 27
Client
Client
Client
Autrans - 99
JMS - Architecture
JNDI
Destination
JMS Client
ConnectionFactory
+
Connection
MessageProducer MessageConsummer
+
Session
Modes de structuration dapplications rparties - 56
Autrans - 99
Page 28
o Infrastructures propritaires
u interface applicative et protocoles propres chaque systme ---> problmes de portabilit et dinteroprabilit
o Outils de dveloppement
u sommaires
Modes de structuration dapplications rparties - 57 Autrans - 99
Modles dexcution
o Modle client-serveur
u client-serveur "traditionnel" u client-serveur "de donnes" u client-serveur " objets" : Corba, Com/Dcom ( mardi)
de communication par messages de communication par vnements composants ( mercredi ) base de code mobile (jeudi) mmoire "virtuelle" partage
Autrans - 99
Page 29
Code mobile
o Dfinition
u programmes pouvant se dplacer d'un site un autre
Autrans - 99
o agents mobiles
u mobilit "faible"
v code excutable + donnes modifies v exemple : Aglets v code excutable, + donnes + contexte d'excution v exemples : AgentTcl
u mobilit "forte"
Autrans - 99
Page 30
Modles dexcution
o Modle client-serveur
u client-serveur "traditionnel" u client-serveur "de donnes" u client-serveur " objets" : Corba, Com/Dcom ( mardi)
de communication par messages de communication par vnements composants ( mercredi ) base de code mobile (jeudi) mmoire "virtuelle" partage
Autrans - 99
* problmatique
u utilisation des outils de dveloppement existants : langages, compilateurs, metteurs au point, . . . u mise en uvre "efficace" d'une mmoire partage distribue
Modes de structuration dapplications rparties - 62 Autrans - 99
Page 31
v espace d'objets rpartis partags v interface de programmation : langage objet "tendu" v plusieurs modes de ralisation ] objets rpliqus (exemple : Javanaise) ] objets image unique (exemple : Guide)
Autrans - 99
Page 32
JavaSpace
Autrans - 99
Autrans - 99
Page 33
Positionnement de JavaSpaces
o Les primitives
u write : dept d'une nouvelle entre u read : lit une entre conforme un template u take : lit et retire une entre conforme un template u notify : enregistre une notification envoyer lorsqu'une nouvelle entre conforme un template est crite u template : modle pour la recherche d'entres dans un JavaSpace
Autrans - 99
Page 34
u avec read
Autrans - 99
u avec notify
Autrans - 99
Page 35
o Implantations possibles
u client/serveur : requtes distantes depuis tous les clients u objets dupliqus : localit des accs la base
Autrans - 99
u langage de programmation d'applications rparties intgrant distribution, paralllisme, synchronisation, persistance, etc.
Autrans - 99
Page 36
Autrans - 99
processeur
processeur
cache
cache
mmoire commune
Modes de structuration dapplications rparties - 74 Autrans - 99
Page 37
partition monte
partition exporte
Autrans - 99
segment
processus Unix
mmoire centrale
Modes de structuration dapplications rparties - 76 Autrans - 99
Page 38
o Programmation simple
u transparence de la distribution
Autrans - 99
o Cohrence squentielle
u srialisation des accs aux donnes partages
o Cohrences relches
u associe cohrence et points de synchronisation dfinis explicitement par l'application
v cohrence faible (weak consistency ) v cohrence la sortie (release consistency) v cohrence l'entre (entry consistency)
o Cohrences non-squentielles
u cohrence causale
Autrans - 99
Page 39
Autrans - 99
Copie_1
JVM machine 1
JVM machine 2
mmoire dobjets rpartie
Image persistante
Autrans - 99
Page 40
document partag
Autrans - 99
Page 41
Autrans - 99
rfrence externe
objet global
Modes de structuration dapplications rparties - 84 Autrans - 99
Page 42
o Un compilateur
u gnre du code appelant les mcanismes systmes grant les objets ( partir des interfaces des classes globales) * code des talons
Autrans - 99
Javanaise : chargement
o Unit de chargement
u objet global u srialisation du graphe d'objets locaux
Autrans - 99
Page 43
Javanaise : cohrence
Autrans - 99
ref X
Autrans - 99
Page 44
o Limites et perspectives
u quel protocole de cohrence ? u approche mono-langage u cot du maintien de la cohrence des donnes dupliques
v adapter la stratgie de mise en uvre du partage aux besoins des applications et aux conditions de l'environnement d'excution v spcialisation de protocoles existants
Autrans - 99
Hirarchie de modles
Guide Oode
JavaSpaces
Javanaise
composants
M.V. Java
Http
Dcom
Corba
Bus logiciel
Agents mobiles
TCP/IP
Modes de structuration dapplications rparties - 90 Autrans - 99
Page 45
Autrans - 99
Autrans - 99
Page 46
Autrans - 99
http://www.software.ibm.com/ts/mqseries G. Agha, " Actors: A model of concurrent computation in distributed systems", Series in Artificial Intelligence, 1986 http://www.openhorizon.com http://www.rv.tibco.com http://www.softwired.ch/ ibus M. Rozier et al., "Chorus Distributed Operating System", Computing Systems , Vol 1, N 4, octobre 1988
Autrans - 99
Page 47
Autrans - 99
Annexes
o Modle client-serveur et RPC
u mise en uvre d'un serveur u RPC - principes de fonctionnement u RPC - traitement des dfaillances u RPC - passage des paramtres u DCE - description des services u micro-noyau u publish-subscribe u JMS
o Modle message/vnement
Autrans - 99
Page 48